(57)【要約】【課題】接触する対象物に対して過剰に負荷がかかるのを防止しつつ、作業の高速化を図ることができる制御方法およびロボットシステムを提供すること。【解決手段】力検出部からの検出値を取得する力取得工程と、検出値、第１力制御パラメーターおよび目標力から求めた第１補正量を位置の指令値に合算し、第１指令値を求める第１指令値算出工程と、検出値および第２力制御パラメーターから求めた第２補正量を、第１指令値に合算し、第２指令値を求める第２指令値算出工程と、を有し、第１力制御パラメーターの質量係数をｍ１とし、第１力制御パラメーターの粘性係数をｄ１とし、第２力制御パラメーターの質量係数をｍ２とし、第２力制御パラメーターの粘性係数をｄ２とし、第２力制御パラメーターの弾性係数をｋ２としたとき、ｍ２＜ｍ１またはｄ２＜ｄ１を満足し、かつ、ｋ２＞０を満足することを特徴とする制御方法。【選択図】図４
2020157459.tif 000002
【特許請求の範囲】
【請求項１】
アームと、前記アームに加わる力を検出する力検出部と、を有するロボットを制御する制御方法であって、
前記力検出部からの検出値を取得する力取得工程と、
前記検出値、第１力制御パラメーターおよび目標力から求めた第１補正量を位置の指令値に合算し、第１指令値を求める第１指令値算出工程と、
前記検出値および第２力制御パラメーターから求めた第２補正量を、前記第１指令値に合算し、第２指令値を求める第２指令値算出工程と、
前記第２指令値に基づいて、前記ロボットを動作する実行工程と、を有し、
前記第１力制御パラメーターおよび前記第２力制御パラメーターは、質量係数、粘性係数および弾性係数を含み、
前記第１力制御パラメーターの質量係数をｍ１とし、前記第１力制御パラメーターの粘性係数をｄ１とし、前記第２力制御パラメーターの質量係数をｍ２とし、前記第２力制御パラメーターの粘性係数をｄ２とし、前記第２力制御パラメーターの弾性係数をｋ２としたとき、
ｍ２＜ｍ１またはｄ２＜ｄ１を満足し、かつ、ｋ２＞０を満足することを特徴とする制御方法。
【請求項２】
前記第１力制御パラメーターの弾性係数をｋ１としたとき、
ｋ２＞ｋ１を満足する請求項１に記載の制御方法。
【請求項３】
前記第２指令値算出工程では、前記第２補正量に応じて前記第２力制御パラメーターの質量係数または粘性係数を大きくする請求項１または２に記載の制御方法。
【請求項４】
アームと、
前記アームに加わる力を検出する力検出部と、
前記アームの作動を制御する制御部と、を備え、
前記制御部は、前記力検出部からの検出値を取得し、
前記検出値、第１力制御パラメーターおよび目標力から求めた第１補正量を位置の指令値に合算し、第１指令値を求め、
前記検出値および第２力制御パラメーターから求めた第２補正量を、前記第１指令値に合算し、第２指令値を求め、
前記第２指令値に基づいて、前記ロボットを動作するものであり、
前記第１力制御パラメーターおよび前記第２力制御パラメーターは、質量係数、粘性係数および弾性係数を含み、
前記第１力制御パラメーターの質量係数をｍ１とし、前記第１力制御パラメーターの粘性係数をｄ１とし、前記第２力制御パラメーターの質量係数をｍ２とし、前記第２力制御パラメーターの粘性係数をｄ２とし、前記第２力制御パラメーターの弾性係数をｋ２としたとき、
ｍ２＜ｍ１またはｄ２＜ｄ１を満足し、かつ、ｋ２＞０を満足することを特徴とするロボットシステム。
【請求項５】
前記アームに接続され、前記アームの固有振動数よりも大きい固有振動数を有する付加部材を備える請求項４に記載のロボットシステム。
【請求項６】
前記付加部材は、前記アームの先端部に接続されている請求項４または５に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御方法およびロボットシステムに関する。
【背景技術】
【０００２】
例えば特許文献１には、アームと、力検出部とを備えるロボットを制御する力制御装置が開示されている。この特許文献１に記載の力制御装置では、アームが作業を行うに際し、アームが対象物から遠い位置に位置している場合、移動速度が速いパラメーターを用いて第１力制御を行い、アームが対象物から近い位置まで移動すると、移動速度が遅いパラメーターで第２力制御を行う。また、第１力制御から第２力制御に切り替える切替地点を設定しておくことにより、上記制御を実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１０４７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、第１力制御から第２力制御に切り替える切替地点が、対象物に近すぎると、比較的移動速度が速い第１力制御の状態でアームが対象物と接触するおそれがあり、この場合、対象物に過剰な負荷がかかるおそれがある。一方、切替地点が、対象物から遠すぎると、比較的移動速度が遅い第２力制御の状態でアームを作動させる距離が長くなり、作業に時間がかかる。このように、対象物に過剰な負荷がかかるのを防止しつつ、作業の高速化を図るのは難しい。
【課題を解決するための手段】
【０００５】
本発明は、上述の課題を解決するためになされたものであり、以下のものとして実現することが可能である。
【０００６】
本発明の制御方法は、アームと、前記アームに加わる力を検出する力検出部と、を有するロボットを制御する制御方法であって、
前記力検出部からの検出値を取得する力取得工程と、
前記検出値、第１力制御パラメーターおよび目標力から求めた第１補正量を位置の指令値に合算し、第１指令値を求める第１指令値算出工程と、
前記検出値および第２力制御パラメーターから求めた第２補正量を、前記第１指令値に合算し、第２指令値を求める第２指令値算出工程と、
前記第２指令値に基づいて、前記ロボットを動作する実行工程と、を有し、
前記第１力制御パラメーターおよび前記第２力制御パラメーターは、質量係数、粘性係数および弾性係数を含み、
前記第１力制御パラメーターの質量係数をｍ１とし、前記第１力制御パラメーターの粘性係数をｄ１とし、前記第２力制御パラメーターの質量係数をｍ２とし、前記第２力制御パラメーターの粘性係数をｄ２とし、前記第２力制御パラメーターの弾性係数をｋ２としたとき、
ｍ２＜ｍ１またはｄ２＜ｄ１を満足し、かつ、ｋ２＞０を満足する。
【０００７】
本発明のロボットシステムは、アームと、
前記アームに加わる力を検出する力検出部と、
前記アームの作動を制御する制御部と、を備え、
前記制御部は、前記力検出部からの検出値を取得し、
前記検出値、第１力制御パラメーターおよび目標力から求めた第１補正量を位置の指令値に合算し、第１指令値を求め、
前記検出値および第２力制御パラメーターから求めた第２補正量を、前記第１指令値に合算し、第２指令値を求め、
前記第２指令値に基づいて、前記ロボットを動作するものであり、
前記第１力制御パラメーターおよび前記第２力制御パラメーターは、質量係数、粘性係数および弾性係数を含み、
前記第１力制御パラメーターの質量係数をｍ１とし、前記第１力制御パラメーターの粘性係数をｄ１とし、前記第２力制御パラメーターの質量係数をｍ２とし、前記第２力制御パラメーターの粘性係数をｄ２とし、前記第２力制御パラメーターの弾性係数をｋ２としたとき、
ｍ２＜ｍ１またはｄ２＜ｄ１を満足し、かつ、ｋ２＞０を満足する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１実施形態のロボットシステムの全体構成を示す図である。
【図２】図２は、図１に示すロボットシステムのブロック図である。
【図３】図３は、図２に示す制御装置が行う制御動作を説明するためのフローチャートである。
【図４】図４は、作用力と時間との関係を示すグラフである。
【図５】図５は、作用力と時間との関係を示すグラフである。
【図６】図６は、作用力と時間との関係を示すグラフである。
【図７】図７は、第２実施形態のロボットシステムの全体構成を示す図である。
【図８】図８は、ロボットシステムについてハードウェアを中心として説明するためのブロック図である。
【図９】図９は、ロボットシステムのハードウェアを中心とした変形例１を示すブロック図である。
【図１０】図１０は、ロボットシステムのハードウェアを中心とした変形例２を示すブロック図である。
【発明を実施するための形態】
【０００９】
＜第１実施形態＞
以下、本発明の制御方法およびロボットシステムを添付図面に示す好適な実施形態に基づいて詳細に説明する。なお、以下では、説明の便宜上、図１中の＋Ｚ軸方向、すなわち、上側を「上」、−Ｚ軸方向、すなわち、下側を「下」とも言う。また、ロボットアームについては、図１中の基台１１側を「基端」、その反対側、すなわち、エンドエフェクター２０側を「先端」とも言う。また、図１中のＺ軸方向、すなわち、上下方向を「鉛直方向」とし、Ｘ軸方向およびＹ軸方向、すなわち、左右方向を「水平方向」とする。
【００１０】
図１に示すように、ロボットシステム１００は、ロボット１と、ロボット１を制御するロボット制御装置（以下単に「制御装置３」と言う）と、を備え、本発明の制御方法を実行する。
【００１１】
ロボット１は、本実施形態では単腕の６軸垂直多関節ロボットであり、その先端部にエンドエフェクター２０を装着することができる。なお、ロボット１は、単腕型の多関節ロボットであるが、これに限定されず、例えば、双腕型の多関節ロボットであってもよい。
【００１２】
制御装置３は、ロボット１から離間して配置されており、プロセッサーの１例であるＣＰＵ（Central Processing Unit）が内蔵されたコンピューター等で構成することができる。ロボット１は、基台１１と、可動部１０と、を有している。
【００１３】
基台１１は、可動部１０を下側から駆動可能に支持する支持体であり、例えば工場内の床に固定されている。ロボット１は、基台１１が中継ケーブル１８を介して制御装置３と電気的に接続されている。なお、ロボット１と制御装置３との接続は、図１に示す構成のように有線による接続に限定されず、例えば、無線による接続であってもよく、さらには、インターネットのようなネットワークを介して接続されていてもよい。
【００１４】
本実施形態では、可動部１０は、第１アーム１２と、第２アーム１３と、第３アーム１４と、第４アーム１５と、第５アーム１６と、第６アーム１７とを有し、これらのアームが基台１１側からこの順に連結されている。なお、可動部１０が有するアームの数は、６つに限定されず、例えば、１つ、２つ、３つ、４つ、５つまたは７つ以上であってもよい。また、各アームの全長等の大きさは、それぞれ、特に限定されず、適宜設定可能である。
【００１５】
基台１１と第１アーム１２とは、関節１７１を介して連結されている。そして、第１アーム１２は、基台１１に対し、鉛直方向と平行な第１回動軸を回動中心とし、その第１回動軸回りに回動可能となっている。第１回動軸は、基台１１が固定される床の法線と一致している。
【００１６】
第１アーム１２と第２アーム１３とは、関節１７２を介して連結されている。そして、第２アーム１３は、第１アーム１２に対し、水平方向と平行な第２回動軸を回動中心として回動可能となっている。第２回動軸は、第１回動軸に直交する軸と平行である。
【００１７】
第２アーム１３と第３アーム１４とは、関節１７３を介して連結されている。そして、第３アーム１４は、第２アーム１３に対して水平方向と平行な第３回動軸を回動中心として回動可能となっている。第３回動軸は、第２回動軸と平行である。
【００１８】
第３アーム１４と第４アーム１５とは、関節１７４を介して連結されている。そして、第４アーム１５は、第３アーム１４に対し、第３アーム１４の中心軸方向と平行な第４回動軸を回動中心として回動可能となっている。第４回動軸は、第３回動軸と直交している。
【００１９】
第４アーム１５と第５アーム１６とは、関節１７５を介して連結されている。そして、第５アーム１６は、第４アーム１５に対して第５回動軸を回動中心として回動可能となっている。第５回動軸は、第４回動軸と直交している。
【００２０】
第５アーム１６と第６アーム１７とは、関節１７６を介して連結されている。そして、第６アーム１７は、第５アーム１６に対して第６回動軸を回動中心として回動可能となっている。第６回動軸は、第５回動軸と直交している。
【００２１】
また、第６アーム１７は、可動部１０の中で最も先端側に位置するロボット先端部となっている。この第６アーム１７は、可動部１０の駆動により、エンドエフェクター２０ごと回動することができる。
【００２２】
ロボット１は、駆動部としてのモーターＭ１、モーターＭ２、モーターＭ３、モーターＭ４、モーターＭ５およびモーターＭ６と、エンコーダーＥ１、エンコーダーＥ２、エンコーダーＥ３、エンコーダーＥ４、エンコーダーＥ５およびエンコーダーＥ６とを備える。モーターＭ１は、関節１７１に内蔵され、基台１１と第１アーム１２とを相対的に回転させる。モーターＭ２は、関節１７２に内蔵され、第１アーム１２と第２アーム１３とを相対的に回転させる。モーターＭ３は、関節１７３に内蔵され、第２アーム１３と第３アーム１４とを相対的に回転させる。モーターＭ４は、関節１７４に内蔵され、第３アーム１４と第４アーム１５とを相対的に回転させる。モーターＭ５は、関節１７５に内蔵され、第４アーム１５と第５アーム１６とを相対的に回転させる。モーターＭ６は、関節１７６に内蔵され、第５アーム１６と第６アーム１７とを相対的に回転させる。
【００２３】
また、エンコーダーＥ１は、関節１７１に内蔵され、モーターＭ１の位置を検出する。エンコーダーＥ２は、関節１７２に内蔵され、モーターＭ２の位置を検出する。エンコーダーＥ３は、関節１７３に内蔵され、モーターＭ３の位置を検出する。エンコーダーＥ４は、関節１７４に内蔵され、モーターＭ４の位置を検出する。エンコーダーＥ５は、関節１７５に内蔵され、モーターＭ５の位置を検出する。エンコーダーＥ６は、関節１７６に内蔵され、モーターＭ６の位置を検出する。
【００２４】
エンコーダーＥ１〜Ｅ６は、制御装置３と電気的に接続されており、モーターＭ１〜モーターＭ６の位置が制御装置３に電気信号として送信される。そして、この位置情報に基づいて、制御装置３は、モーターＭ１〜モーターＭ６を、図示しないモータードライバーを介して駆動させる。すなわち、可動部１０を制御するということは、モーターＭ１〜モーターＭ６を制御することである。
【００２５】
また、ロボット１は、可動部１０に、力を検出する力検出部１９が着脱自在に設置される。そして、可動部１０は、力検出部１９が設置された状態で駆動することができる。力検出部１９は、本実施形態では、６軸力覚センサーである。力検出部１９は、互いに直交する３個の検出軸上の力の大きさと、当該３個の検出軸まわりのトルクの大きさとを検出する。すなわち、互いに直交するＸ軸、Ｙ軸、Ｚ軸の各軸方向の力成分と、Ｘ軸回りとなるＷ方向の力成分と、Ｙ軸回りとなるＶ方向の力成分と、Ｚ軸回りとなるＵ方向の力成分とを検出する。なお、本実施形態では、Ｚ軸方向が鉛直方向となっている。また、各軸方向の力成分を「並進力成分」と言い、各軸回りの力成分を「トルク成分」と言うこともできる。また、力検出部１９は、６軸力覚センサーに限定されず、他の構成のものであってもよい。
【００２６】
本実施形態では、力検出部１９は、第６アーム１７に設置されている。なお、力検出部１９の設置箇所としては、第６アーム１７、すなわち、最も先端側に位置するアームに限定されず、例えば、他のアームや、隣り合うアーム同士の間であってもよい。
【００２７】
力検出部１９には、エンドエフェクター２０を着脱可能に装着することができる。エンドエフェクター２０は、挟持、吸引、ネジ締め等を行う機能を有する。また、ロボットシステム１００では、ロボット座標系において、エンドエフェクター２０の先端に、ツールセンターポイントＴＣＰが設定されている。
このようなロボット１は、制御装置３によって、作動が制御される。
【００２８】
次に、制御装置３について説明する。
制御装置３と、教示装置４（ティーチングペンダント）と、を備えている。制御装置３は、本発明のロボット制御装置の構成例である。制御装置３は中継ケーブル１８によりロボット１と通信可能に接続される。なお、制御装置３の構成要素がロボット１に備えられていても良い。制御装置３と教示装置４とはケーブルで、または無線通信可能に接続される。教示装置４は、専用のコンピューターであってもよいし、ロボット１を教示するためのプログラムがインストールされた汎用のコンピューターであってもよい。例えばロボット１を教示するための専用装置であるティーチングペンダントを教示装置４の代わりに用いても良い。さらに、制御装置３と教示装置４とは、図１に示すように別々の筐体を備えていてもよいし、一体に構成されていてもよい。
【００２９】
教示装置４には、制御装置３に後述する目標位置Ｓｔと目標力ｆＳｔとを引数とする実行プログラムを生成して制御装置３にロードするための教示プログラムがインストールされている。教示装置４は、ディスプレイ４１やプロセッサーやＲＡＭやＲＯＭを備え、これらのハードウェア資源が教示プログラムと協働して実行プログラムを生成する。
【００３０】
図２に示すように、制御装置３は、ロボット１の制御を行うための制御プログラムがインストールされたコンピューターである。制御装置３は、プロセッサーや図示しないＲＡＭやＲＯＭを備え、これらのハードウェア資源がプログラムと協働することによりロボット１を制御する。
【００３１】
また、制御装置３は、座標変換部３１と、座標変換部３２と、補正部３３と、第１力制御部３４と、第２力制御部３５と、指令統合部３６と、位置制御部３７とを有する。この制御装置３は、ロボット１の動作を力制御等で制御することが可能である。「力制御」とは、力検出部１９の検出結果に基づいて、エンドエフェクター２０の位置、すなわち、ツールセンターポイントＴＣＰの位置や、第１アーム１２〜第６アーム１７の姿勢を変更したりするロボット１の動作の制御のことである。力制御には、例えば、インピーダンス制御と、フォーストリガー制御とが含まれている。
【００３２】
フォーストリガー制御では、力検出部１９により力検出を行い、その力検出部１９により所定の力を検出するまで、可動部１０に移動や姿勢の変更の動作をさせる。
【００３３】
インピーダンス制御は、倣い制御を含む。まず、簡単に説明すると、インピーダンス制御では、可動部１０の先端部に加わる力を可能な限り所定の力に維持、すなわち、力検出部１９により検出される所定方向の力を可能な限り目標力ｆＳｔに維持するように可動部１０の動作を制御する。これにより、例えば、可動部１０に対してインピーダンス制御を行うと、可動部１０は、対象物に対し、前記所定方向について倣う動作を行う。なお、目標力ｆＳｔには、０も含まれる。例えば、倣い動作の場合には、目標値を「０」とすることができる。なお、目標力ｆＳｔを０以外の数値とすることもできる。この目標力ｆＳｔは、作業者が適宜設定可能である。
【００３４】
制御装置３は、モーターＭ１〜モーターＭ６の回転角度の組み合わせと、ロボット座標系におけるツールセンターポイントＴＣＰの位置との対応関係を記憶している。また、制御装置３は、ロボット１が行う作業の工程ごとに目標位置Ｓｔと目標力ｆＳｔとの少なくとも一方をコマンドに基づいて記憶する。目標位置Ｓｔと目標力ｆＳｔを引数（パラメーター）とするコマンドはロボット１が行う作業の工程ごとに設定される。
【００３５】
制御装置３は、設定された目標位置Ｓｔと目標力ｆＳｔとがツールセンターポイントＴＣＰにて一致されるように、コマンドに基づいて第１アーム１２〜第６アーム１７を制御する。目標力ｆＳｔとは、第１アーム１２〜第６アーム１７の動作に応じて力検出部１９が検出すべき力である。ここで、「Ｓ」の文字は、ロボット座標系を規定する軸の方向（Ｘ，Ｙ，Ｚ，Ｕ，Ｖ，Ｗ）のいずれか１つの方向を表すこととする。また、Ｓは、Ｓ方向の位置も表すこととする。例えば、Ｓ＝Ｘの場合、ロボット座標系にて設定された目標位置のＸ方向成分がＳｔ＝Ｘｔとなり、目標力のＸ方向成分がｆＳｔ＝ｆＸｔとなる。
【００３６】
また、制御装置３では、モーターＭ１〜モーターＭ６の回転角度を取得すると、図２に示す座標変換部３１が、対応関係に基づいて、当該回転角度をロボット座標系におけるツールセンターポイントＴＣＰの位置Ｓ（Ｘ，Ｙ，Ｚ，Ｖ，Ｗ，Ｕ）に変換する。そして、座標変換部３２が、ツールセンターポイントＴＣＰの位置Ｓと、力検出部１９の検出値とに基づいて、力検出部１９に現実に作用している作用力ｆＳをロボット座標系において特定する。
【００３７】
作用力ｆＳの作用点は、ツールセンターポイントＴＣＰとは別に原点Ｏとして定義される。原点Ｏは、力検出部１９が力を検出している点に対応する。なお制御装置３は、ロボット座標系におけるツールセンターポイントＴＣＰの位置Ｓごとに、力検出部１９のセンサー座標系における検出軸の方向を規定した対応関係を記憶している。従って、制御装置３は、ロボット座標系におけるツールセンターポイントＴＣＰの位置Ｓと対応関係とに基づいて、ロボット座標系における作用力ｆＳを特定できる。また、ロボットに作用するトルクは、作用力ｆＳと、ツール接触点（エンドエフェクター２０とワークの接触点）から力検出部１９までの距離とから算出することができ、トルク成分として特定される。
【００３８】
補正部３３は、作用力ｆＳに対して重力補償を行う。重力補償とは、作用力ｆＳから重力に起因する力やトルクの成分を除去することである。重力補償を行った作用力ｆＳは、エンドエフェクター２０に作用している重力以外の力と見なすことができる。
【００３９】
また、補正部３３は、作用力ｆＳに対して慣性補償を行う。慣性補償とは、作用力ｆＳから慣性力に起因する力やトルクの成分を除去することである。慣性補償を行った作用力ｆＳは、エンドエフェクター２０に作用している慣性力以外の力と見なすことができる。
【００４０】
次に、インピーダンス制御について説明する。
インピーダンス制御は、仮想の機械的インピーダンスをモーターＭ１〜モーターＭ６によって実現する能動インピーダンス制御である。制御装置３は、このようなインピーダンス制御を、ワークの嵌合作業、螺合作業、研磨作業等、エンドエフェクター２０が対象物であるワークから力を受ける接触状態の工程で実行する。なお、このような工程以外であっても、例えば、人がロボット１に接触した際にインピーダンス制御を行うことにより、安全性を高めることができる。
【００４１】
インピーダンス制御では、目標力ｆＳｔを後述する運動方程式に代入してモーターＭ１〜モーターＭ６の回転角度を導出する。制御装置３がモーターＭ１〜モーターＭ６を制御する信号は、ＰＷＭ（Pulse Width Modulation）変調された信号である。運動方程式に基づいて目標力ｆＳｔから回転角度を導出してモーターＭ１〜モーターＭ６を制御するモードを力制御モードという。また制御装置３は、エンドエフェクター２０が外力を受けない非接触状態の工程では、目標位置Ｓｔから線形演算で導出する回転角度でモーターＭ１〜モーターＭ６を制御する。目標位置Ｓｔから線形演算で導出する回転角度でモーターＭ１〜モーターＭ６を制御するモードを位置制御モードという。また制御装置３は、目標位置Ｓｔから線形演算で導出する回転角度と目標力ｆＳｔを運動方程式に代入して導出する回転角度とを例えば線型結合によって統合し、統合した回転角度でモーターＭ１〜モーターＭ６を制御するハイブリッドモードでもロボット１を制御する。制御装置３は、位置制御モードと力制御モードとハイブリッドモードとを力検出部１９またはエンコーダーＥ１〜Ｅ６の検出値に基づいて自律的に切り替え可能であり、また、入力されたコマンドに応じて位置制御モードと力制御モードとハイブリッドモードを切り替えることもできる。以上の構成より制御装置３は、エンドエフェクター２０が目標の位置において目標の姿勢となり、かつ、エンドエフェクター２０に目標の力とモーメントとが作用するように可動部１０を駆動することができる。
【００４２】
制御装置３は、目標力ｆＳｔと作用力ｆＳとをインピーダンス制御の運動方程式に代入することにより、力由来補正量ΔＳを特定する。力由来補正量ΔＳとは、ツールセンターポイントＴＣＰが機械的インピーダンスを受けた場合に、目標力ｆＳｔとの力偏差ΔｆＳ（ｔ）を解消するために、ツールセンターポイントＴＣＰが移動すべき位置Ｓの大きさを意味する。下記の式（１）は、インピーダンス制御の運動方程式である。
【００４３】
【数１】
2020157459.tif 000003
【００４４】
式（１）の左辺は、ツールセンターポイントＴＣＰの位置Ｓの２階微分値に仮想慣性係数ｍ（以下、「質量係数ｍ」という）を乗算した第１項と、ツールセンターポイントＴＣＰの位置Ｓの微分値に仮想粘性係数ｄ（以下、「粘性係数ｄ」という）を乗算した第２項と、ツールセンターポイントＴＣＰの位置Ｓに仮想弾性係数ｋ（以下、「弾性係数ｋ」という）を乗算した第３項とによって構成される。式（１）の右辺は、目標力ｆＳｔから現実の力ｆを減算した力偏差ΔｆＳ（ｔ）によって構成される。式（１）における微分とは、時間による微分を意味する。ロボット１が行う工程において、目標力ｆＳｔとして一定値が設定される場合もあるし、目標力ｆＳｔとして時間の関数が設定される場合もある。
【００４５】
質量係数ｍは、ツールセンターポイントＴＣＰが仮想的に有する質量を意味し、粘性係数ｄは、ツールセンターポイントＴＣＰが仮想的に受ける粘性抵抗を意味し、弾性係数ｋは、ツールセンターポイントＴＣＰが仮想的に受ける弾性力のバネ定数を意味する。
【００４６】
質量係数ｍの値が大きくなるにつれて、動作の加速度が小さくなり、質量係数ｍの値が小さくなるにつれて動作の加速度が大きくなる。粘性係数ｄの値が大きくなるにつれて、動作の速度が遅くなり、粘性係数ｄの値が小さくなるにつれて動作の速度が速くなる。弾性係数ｋの値が大きくなるにつれて、バネ性が大きくなり、弾性係数ｋの値が大きくなるにつれて、バネ性が小さくなる。
【００４７】
本明細書では、質量係数ｍ、粘性係数ｄおよび弾性係数ｋを制御パラメーターと言う。これら質量係数ｍ、粘性係数ｄおよび弾性係数ｋは、方向ごとに異なる値に設定されてもよいし、方向に関わらず共通の値に設定されてもよい。また、質量係数ｍ、粘性係数ｄおよび弾性係数ｋは、作業者が、作業前に適宜設定可能である。
【００４８】
このように、ロボットシステム１００では、力検出部１９の検出値と、予め設定された制御パラメーターと、予め設定された目標力から求めた補正量を求める。この補正量は、前述した力由来補正量ΔＳのことであり、外力を受けたその位置からツールセンターポイントＴＣＰを移動すべき位置との差のことである。そして、この力由来補正量ΔＳを、外力を受けた位置に移動させるために用いていた位置制御指令値（以下、単に「指令値」と言う）に合算して、新たな指令値を求める。そしてこの新たな指令値によりロボットを制御することにより、力由来補正量ΔＳを加味した位置にツールセンターポイントＴＣＰを移動させて、外力が加わった衝撃を緩和し、ロボットに接触した対象物に対し、それ以上負荷がかかるのを緩和することができる。その結果、作業を安全かつ安定的に行うことができる。
【００４９】
また、後述するように、第１力制御部３４が第１補正量ΔＳ１を算出し、第２力制御部３５が第２補正量ΔＳ２を算出する。また、位置制御部３７は、位置制御指令取得部３７１を有し、作業者により設定された目標位置Ｓｔに応じて位置指令を生成する。また、第１補正量ΔＳ１、第２補正量ΔＳ２および位置指令は、指令統合部３６によって統合され、実行部３６１により実行されることにより本発明の制御方法が実行される。
【００５０】
ここで、質量係数ｍ、粘性係数ｄおよび弾性係数ｋの設定によって、比較的早く動作を行うが、外力を受けた際に、力由来補正量ΔＳを加味した位置にツールセンターポイントＴＣＰを移動させるのに比較的時間がかかるモードと、比較的遅く動作を行うが、外力を受けた際に、力由来補正量ΔＳを加味した位置にツールセンターポイントＴＣＰを移動させるのに比較的時間がかからないモードと、を実現することができる。特許文献１に記載されている力制御装置では、アームが作業を行うに際し、アームが対象物から遠い位置に位置している場合、移動速度が速いパラメーターを用いて第１力制御を行い、アームが対象物から近い位置まで移動すると、移動速度が遅いパラメーターで第２力制御を行う。また、第１力制御から第２力制御に切り替える切替地点を設定しておくことにより、上記制御を実現している。
【００５１】
しかしながら、第１力制御から第２力制御に切り替える切替地点が、対象物に近すぎると、比較的移動速度が速い第１力制御の状態でアームが対象物と接触するおそれがあり、この場合、対象物に過剰な負荷がかかる恐れがある。一方、切替地点が、対象物から遠すぎると、比較的移動速度が遅い第２力制御の状態でアームを作動させる距離が長くなり、作業に時間がかかる。このように、対象物に過剰な負荷がかかるのを防止しつつ、作業の高速化を図るのは難しい。
【００５２】
そこで、ロボットシステム１００では、制御装置３が下記のような制御を行うことにより、対象物に過剰な負荷がかかるのを防止しつつ、作業の高速化を実現することができる。以下、ロボットシステム１００の制御動作について説明する。なお、一例としてエンドエフェクター２０の先端が対象物に当接した場合に行う力制御について説明する。また、以下では、作業者が目標位置Ｓｔ、目標力ｆＳｔ、質量係数ｍ、粘性係数ｄおよび弾性係数ｋの設定を行い、ロボット１の作動を開始した状態から説明する。
【００５３】
まず、図３に示すように、ステップＳ１０１において、エンコーダー値の取得を開始する。具体的には、エンコーダーＥ１〜エンコーダーＥ６のエンコーダー値の取得を開始する。
【００５４】
次いで、ステップＳ１０２において、ロボット１に加わる力を検出し、取得する。この工程が、力取得工程である。力検出部１９が外力を検出し、それを取得すると、ステップＳ１０３において、力検出部１９に加わった力を座標変換する。すなわち、力検出部１９に現実に作用している力をロボット座標系において特定し、ツールセンターポイントＴＣＰに加わった作用力ｆＳに変換する。そして、ステップＳ１０４では、作用力ｆＳに対して重力補償を行う。すなわち、作用力ｆＳから重力に起因する力やトルクの成分を除去する。そして、ステップＳ１０５において、作用力ｆＳに対して慣性力補償を行う。すなわち、作用力ｆＳから慣性力に起因する力やトルクの成分を除去する。
【００５５】
ステップＳ１０６において、位置制御指令値を計算する。具体的には、外力が加わった瞬間から次にどこの位置に移動しようとしているかを計算する。本ステップでは、外力を受けたときの方向および速度から、次に出す位置制御指令値を予測する。この予測した位置制御指令値をＰｎｅｘｔとする。
【００５６】
そして、ステップＳ１０７において、作用力ｆＳと、第１力制御パラメーターおよび目標力ｆＳｔから第１補正量ΔＳ１を求める。すなわち、これらを上記式（１）に代入する。第１補正量ΔＳ１は、外力を受けたその位置と、外力を受けてツールセンターポイントＴＣＰを移動すべき位置との差のことである。そして、第１補正量ΔＳ１を、外力を受けた位置に移動させるために用いていた指令値に合算して、第１指令値を求める。なお、第１力制御パラメーターは、質量係数ｍ＝ｍ１とし、粘性係数ｄ＝ｄ１とし、弾性係数ｋ＝ｋ１とする。
【００５７】
次いで、ステップＳ１０８において、作用力ｆＳおよび第２力制御パラメーターから求めた第２補正量ΔＳ２を、第１指令値に合算し、第２指令値を求める。すなわち、これらを上記式（１）に代入する。なお、第２力制御パラメーターは、質量係数ｍ＝ｍ２とし、粘性係数ｄ＝ｄ２とし、弾性係数ｋ＝ｋ２とする。また、目標力ｆＳｔは０とする。すなわち、無視することができる。
【００５８】
ここで、本発明では、ｍ２＜ｍ１またはｄ２＜ｄ１を満足し、かつ、ｋ２＞０である。これにより、接触する対象物に対して過剰に負荷がかかるのを防止しつつ、作業の高速化を図ることができる。以下、具体的に説明する。
【００５９】
仮に、第１力制御パラメーターのみを用いて算出した指令値で力制御を実行した場合、ｍ２＜ｍ１およびｄ２＜ｄ１であるため、加速度および速度が比較的遅いモードの力制御となる。この比較的遅いモードを、横軸が時間、縦軸が作用力のグラフで表すと図４に示すようなグラフとなる。このモードは、作用力ｆＳが目標力ｆＳｔとなるまでに比較的時間がかかるが、安定して作用力ｆＳが目標力ｆＳｔに近づいていく。
【００６０】
仮に、第２力制御パラメーターのみを用いて算出した指令値で力制御を実行した場合、ｍ２＜ｍ１およびｄ２＜ｄ１を満足し、かつ、ｋ２＞０であるため、加速度および速度が比較的速く、かつ、バネ性を有するモードの力制御となる。この加速度および速度が比較的速く、かつ、バネ性を有するモードを、横軸が時間、縦軸が作用力のグラフで表すと図５に示すようなグラフとなる。ただし、目標力ｆＳｔを０ではなく、Ｓ１０７と同じ値にした場合である。このモードは、作用力ｆＳが目標力ｆＳｔに到達するまでの時間が比較的短いが、作用力の振れ幅が比較的大きく、また、作用力ｆＳが目標力ｆＳｔと同じ値に安定するまでに比較的時間がかかる。
【００６１】
そこで、前述したように、本発明では、作用力ｆＳおよび第２力制御パラメーターから求めた第２補正量ΔＳ２を、作用力ｆＳ、目標力ｆＳｔおよび第１力制御パラメーターから求めた第１指令値に合算し、第２指令値を求める。そして、この第２指令値で力制御を実行することにより、図４に示すようなモードと、図５に示すようなモードとを合算したモードで力制御を行うことができる。これにより、図６に示すように、作用力ｆＳが目標力ｆＳｔに到達するまでの時間が比較的短く、かつ、作用力ｆＳの振れ幅を抑制し、さらに、作用力ｆＳが目標力ｆＳｔと同じ値に安定するまでの時間を短縮することができる。以上より、前述した従来の課題を解決することができる、すなわち、従来のような切替地点の設定を行う必要が無く、接触する対象物に対して過剰に負荷がかかるのを防止しつつ、作業の高速化を図ることができる。
【００６２】
なお、ｍ２＜ｍ１およびｄ２＜ｄ１のうちの一方のみを満足し、かつ、ｋ２＞０を満足すれば、本発明の効果を十分に得られる。
【００６３】
また、第１力制御パラメーターの弾性係数をｋ１としたとき、ｋ２＞ｋ１を満足するのが好ましい。これにより、作業の高速化に寄与する。
【００６４】
そして、ステップＳ１０９において、ステップＳ１０６で算出した位置制御指令値Ｐｎｅｘｔと、ステップＳ１０７で算出した第１補正量ΔＳ１とを加算して第１補正後指令値を算出する。この工程が、第１指令値算出工程である。
【００６５】
そして、ステップＳ１１０において、ステップＳ１０９で算出した第１補正後指令値と、第２補正量ΔＳ２とを加算して第２補正後指令値を算出する。この工程が、第２指令値算出工程である。
【００６６】
次いで、ステップＳ１１１において、第２補正後指令値を関節１７１〜関節１７６の指令値に変換し、ステップＳ１１２において、モーターＭ１〜モーターＭ６に対応した最終指令値に変換して実行する。この工程が、第２指令値に基づいて、ロボット１を動作する実行工程である。
【００６７】
以上説明したように、ロボットシステム１００は、アームである第１アーム１２〜第６アーム１７と、第１アーム１２〜第６アーム１７に加わる力を検出する力検出部１９と、第１アーム１２〜第６アーム１７の作動を制御する制御部である制御装置３と、を備える。また、制御装置３は、力検出部１９からの検出値を取得し、検出値、第１力制御パラメーターおよび目標力から求めた第１補正量を位置の指令値に合算し、第１指令値を求め、検出値および第２力制御パラメーターから求めた第２補正量を、第１指令値に合算し、第２指令値を求め、第２指令値に基づいて、ロボット１を動作するものである。そして、第１力制御パラメーターおよび第２力制御パラメーターは、質量係数、粘性係数および弾性係数を含み、第１力制御パラメーターの質量係数をｍ１とし、第１力制御パラメーターの粘性係数をｄ１とし、第２力制御パラメーターの質量係数をｍ２とし、第２力制御パラメーターの粘性係数をｄ２とし、第２力制御パラメーターの弾性係数をｋ２としたとき、ｍ２＜ｍ１またはｄ２＜ｄ１を満足し、かつ、ｋ２＞０を満足する。これにより、接触する対象物に対して過剰に負荷がかかるのを防止しつつ、作業の高速化を図ることができる。
【００６８】
また、ロボットシステム１００により実行される本発明の制御方法は、アームである第１アーム１２〜第６アーム１７と、第１アーム１２〜第６アーム１７に加わる力を検出する力検出部１９と、を有するロボット１を制御する制御方法である。また、この制御方法は、力検出部１９からの検出値を取得する力取得工程と、検出値、第１力制御パラメーターおよび目標力から求めた第１補正量を位置の指令値に合算し、第１指令値を求める第１指令値算出工程と、検出値および第２力制御パラメーターから求めた第２補正量を、前記第１指令値に合算し、第２指令値を求める第２指令値算出工程と、第２指令値に基づいて、ロボット１を動作する実行工程と、を有する。そして、第１力制御パラメーターおよび第２力制御パラメーターは、質量係数、粘性係数および弾性係数を含み、第１力制御パラメーターの質量係数をｍ１とし、第１力制御パラメーターの粘性係数をｄ１とし、第２力制御パラメーターの質量係数をｍ２とし、第２力制御パラメーターの粘性係数をｄ２とし、第２力制御パラメーターの弾性係数をｋ２としたとき、ｍ２＜ｍ１またはｄ２＜ｄ１を満足し、かつ、ｋ２＞０を満足する。これにより、接触する対象物に対して過剰に負荷がかかるのを防止しつつ、作業の高速化を図ることができる。
【００６９】
また、第２指令値算出工程では、第２補正量ΔＳ２に応じて第２力制御パラメーターの質量係数ｍまたは粘性係数ｄを大きくしてもよい。これにより、第２力制御パラメーターを予め設定するという工程を省略することができ、より簡単な方法で、本発明の効果が得られる。
【００７０】
＜第２実施形態＞
以下、図７を参照して本発明の制御方法およびロボットシステムの第２実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。
【００７１】
図７に示すように、本実施形態のロボット１は、付加部材２１をさらに有する。付加部材２１は、第６アーム１７に接続され、第１アーム１２〜第６アーム１７の固有振動数よりも大きい固有振動数を有する。これにより、エンドエフェクター２０を振動させやすくすることができ、前述したｋ２＞０との相乗効果で、力制御における応答性を高めることができる。
【００７２】
また、付加部材２１は、第６アーム１７の先端部に接続され、かつ、エンドエフェクター２０の基端側に接続されている。すなわち、第１アーム１２〜第６アーム１７の中では、最も先端側に位置している。これにより、ツールセンターポイントＴＣＰと付加部材２１とを可及的に近づけることができ、力制御における応答性をさらに高めることができる。
【００７３】
＜ロボットシステムの他の構成例＞
図８は、ロボットシステムについてハードウェアを中心として説明するためのブロック図である。
【００７４】
図８には、ロボット１とコントローラー６１とコンピューター６２が接続されたロボットシステム１００Ａの全体構成が示されている。ロボット１の制御は、コントローラー６１にあるプロセッサーによりメモリーにある指令を読み出して実行されてもよいし、コンピューター６２に存在するプロセッサーによりメモリーにある指令を読み出してコントローラー６１を介して実行されてもよい。
【００７５】
従って、コントローラー６１とコンピューター６２とのいずれか一方または両方を「制御装置」として捉えることができる。
【００７６】
＜変形例１＞
図９は、ロボットシステムのハードウェアを中心とした変形例１を示すブロック図である。
【００７７】
図９には、ロボット１に直接コンピューター６３が接続されたロボットシステム１００Ｂの全体構成が示されている。ロボット１の制御は、コンピューター６３に存在するプロセッサーによりメモリーにある指令を読み出して直接実行される。
従って、コンピューター６３を「制御装置」として捉えることができる。
【００７８】
＜変形例２＞
図１０は、ロボットシステムのハードウェアを中心とした変形例２を示すブロック図である。
【００７９】
図１０には、コントローラー６１が内蔵されたロボット１とコンピューター６６が接続され、コンピューター６６がＬＡＮ等のネットワーク６５を介してクラウド６４に接続されているロボットシステム１００Ｃの全体構成が示されている。ロボット１の制御は、コンピューター６６に存在するプロセッサーによりメモリーにある指令を読み出して実行されてもよいし、クラウド６４上に存在するプロセッサーによりコンピューター６６を介してメモリーにある指令を読み出して実行されてもよい。
【００８０】
従って、コントローラー６１とコンピューター６６とクラウド６４とのいずれか１つ、または、いずれか２つ、または、３つを「制御装置」として捉えることができる。
【００８１】
以上、本発明の制御方法およびロボットシステムを図示の実施形態について説明したが、本発明は、これに限定されるものではない。また、ロボットシステムを構成する各部は、同様の機能を発揮し得る任意の構成のものと置換することができる。また、任意の構成物が付加されていてもよい。
【符号の説明】
【００８２】
１…ロボット、３…制御装置、４…教示装置、１０…可動部、１１…基台、１２…第１アーム、１３…第２アーム、１４…第３アーム、１５…第４アーム、１６…第５アーム、１７…第６アーム、１８…中継ケーブル、１９…力検出部、２０…エンドエフェクター、２１…付加部材、３１…座標変換部、３２…座標変換部、３３…補正部、３４…第１力制御部、３５…第２力制御部、３６…指令統合部、３７…位置制御部、４１…ディスプレイ、６１…コントローラー、６２…コンピューター、６３…コンピューター、６４…クラウド、６５…ネットワーク、６６…コンピューター、１００…ロボットシステム、１００Ａ…ロボットシステム、１００Ｂ…ロボットシステム、１００Ｃ…ロボットシステム、１７１…関節、１７２…関節、１７３…関節、１７４…関節、１７５…関節、１７６…関節、３６１…実行部、３７１…位置制御指令取得部、Ｅ１…エンコーダー、Ｅ２…エンコーダー、Ｅ３…エンコーダー、Ｅ４…エンコーダー、Ｅ５…エンコーダー、Ｅ６…エンコーダー、Ｍ１…モーター、Ｍ２…モーター、Ｍ３…モーター、Ｍ４…モーター、Ｍ５…モーター、Ｍ６…モーター、Ｏ…原点
【図１】
2020157459.tif 000004
【図２】
2020157459.tif 000005
【図３】
2020157459.tif 000006
【図４】
2020157459.tif 000007
【図５】
2020157459.tif 000008
【図６】
2020157459.tif 000009
【図７】
2020157459.tif 000010
【図８】
2020157459.tif 000011
【図９】
2020157459.tif 000012
【図１０】
2020157459.tif 000013