(57)【要約】【課題】ロボットアームの操作性を向上させること。【解決手段】バイラテラル制御される多関節ロボットアームの重力補償方法であって、ロボットアーム７、８に作用する重力を相殺させるための基礎重力補償量を関節７１〜７７、８１〜８７ごとに算出し、関節７１〜７７、８１〜８７における重力補償量を、基礎重力補償量と、関節ごとに定められた適用割合とを積算することにより算出し、適用割合は、ロボットアーム７、８の末端側の関節が本体側の関節における適用割合より小さい値である。【選択図】図１
2016022559.tif 000002
【特許請求の範囲】
【請求項１】
バイラテラル制御される多関節ロボットアームの重力補償方法であって、
前記ロボットアームに作用する重力を相殺させるための基礎重力補償量を関節ごとに算出し、
各関節における重力補償量を、前記基礎重力補償量と、関節ごとに定められた適用割合とを積算することにより算出し、
前記適用割合は、前記ロボットアームの末端側の関節が本体側の関節における適用割合より小さい値である、
多関節ロボットアームの重力補償方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バイラテラル制御される多関節ロボットアームの重力補償方法に関する。
【背景技術】
【０００２】
従来、このような分野の技術として、特開２００３−０３９３４８号公報がある。この公報に記載された遠隔操縦ロボットの制御装置には、ジョイスティックやマスターアーム等を制御するマスタ制御部と、ロボットを制御するロボット制御部と、マスタ制御部とロボット制御部の通信を行う通信部と、を有する。ロボット制御部には、関節角度を検出し、作業座標系での位置指令をもとに、位置や作業のフィードバックを行うモータ制御手段を有している。
【０００３】
このモータ制御手段には、ロボットアームの先端に取り付けられた作業工具などの自重さによって加わる各軸の重力トルクをロボットの姿勢に応じて演算し、重力補償トルクを発生させるための重力補償部が設けられている。すなわち重力補償部では、重力によって各関節に発生するトルクを算出し、その逆のトルクをモータで発生させることにより、あたかも無重力状態の動作をロボットに実行させることができる。これにより、ロボットアームでは、重力バランスを保つことができるため、動作を行う際には重力分のトルクを考慮する必要がなく、ロボットを軽い力で動作させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−０３９３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した従来の遠隔操縦ロボットの制御装置では、各関節軸にかかる重力トルクを、リンク重量、重心、慣性テンソル等を、ＣＡＤにより得られる既知のパラメータにより算出する場合、重力補償のモデル誤差により姿勢変動が生じる場合がある。例えば、ＣＡＤ上ではケーブル等を厳密に扱うことが難しいために誤差を生じ、この誤差により必要以上のトルクが発生した場合には、ある特定の方向に徐々に動いてしまう。
本発明は、ロボットアームの操作性を向上させることができる多関節ロボットアームの重力補償方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明にかかるロボットアームの重力補償方法は、バイラテラル制御される多関節ロボットアームの重力補償方法であって、前記ロボットアームに作用する重力を相殺させるための基礎重力補償量を関節ごとに算出し、各関節における重力補償量を、前記基礎重力補償量と、関節ごとに定められた適用割合とを積算することにより算出し、前記適用割合は、前記ロボットアームの末端側の関節が本体側の関節における適用割合より小さい値である。
これにより、末端部における重力補償が抑えられることにより、手の平の向きの変化を抑制することができる。
【発明の効果】
【０００７】
これにより、ロボットアームの操作性を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】バイラテラル制御されるマスタスレーブ型ロボットの遠隔操作システムの模式図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施の形態について説明する。
【００１０】
図１に示すように、遠隔操作システム１は、人が操作を行うマスターロボット２と、遠隔地においてマスターロボット２の動作に応じて動作するスレーブロボット３と、マスターロボット２とスレーブロボット３の動作を制御するホストコントローラ４と、マスターロボット２のロボットアームに与えられる力を調製するマスターアンプ部５と、スレーブロボット３のロボットアームに与えられる力を調整するスレーブアンプ部６と、を備える。
【００１１】
マスターロボット２は、上腕部、下腕部、手先部を有し、各部位の間に関節が設けられたロボットアーム７を備える。具体的には、ロボットアーム７は、上腕部を動作させる関節軸である肩ピッチ７１と、肩ロール７２と、肩ヨー７３と、下腕部を動作させる関節軸である肘ピッチ７４と、手先部を動作させる関節軸である手首ピッチ７５と、手首ロール７６と、手首ヨー７７と、を備える。マスターロボット２とスレーブロボット３とは、マスターアンプ部５及びスレーブアンプ部６を介することによってバイラテラル制御されている。すなわち、マスターロボット２のロボットアーム７は、人が装着することにより操作を行うことで、スレーブロボット３のロボットアーム８の動作を制御することができると共に、スレーブロボット３のロボットアーム８において位置の変化や障害物への衝突等が発生した場合には、ロボットアーム７でその力覚を再現することができる。なお、マスターロボット２は、マスターアンプ部５から受信したトルク指令を受信する受信部（図示せず）や、受信部で受信したトルク指令に基づいて、後述する各モータ７１ａ〜７７ａが駆動するように制御する制御部（図示せず）、ロボットアーム７に発生した力の情報を取得する力センサ（図示せず）、ロボットアーム７の位置情報を取得する位置センサ（図示せず）を有している。
【００１２】
肩ピッチ７１は、上腕部をロール軸周りに回転させる関節軸である。肩ピッチ７１には、後述するマスターアンプ５１から入力されたトルク指令に基づいてトルクを発生させるモータ７１ａが設けられている。このモータ７１ａの駆動により、上腕部がピッチ方向に回動する。
【００１３】
肩ロール７２は、上腕部をピッチ軸周りに回転させる関節軸である。肩ロール７２には、後述するマスターアンプ５２から入力されたトルク指令に基づいてトルクを発生させるモータ７２ａが設けられている。このモータ７２ａの駆動により、上腕部がロール方向に回動する。
【００１４】
肩ヨー７３は、上腕部をヨー軸周りに回転させる関節軸である。肩ヨー７３には、後述するマスターアンプ５３から入力されたトルク指令に基づいてトルクを発生させるモータ７３ａが設けられている。このモータ７３ａの駆動により、上腕部がヨー方向に回動する。
【００１５】
肘ピッチ７４は、下腕部をピッチ軸周りに回転させる関節軸である。肘ピッチ７４には、後述するマスターアンプ５４から入力されたトルク指令に基づいてトルクを発生させるモータ７４ａが設けられている。このモータ７４ａの駆動により、下腕部がピッチ方向に回動する。
【００１６】
手首ピッチ７５は、手先部をロール軸周りに回転させる関節軸である。手首ピッチ７５には、後述するマスターアンプ５５から入力されたトルク指令に基づいてトルクを発生させるモータ７５ａが設けられている。このモータ７５ａの駆動により、手先部がピッチ方向に回動する。
【００１７】
手首ロール７６は、手先部をピッチ軸周りに回転させる関節軸である。手首ロール７６には、後述するマスターアンプ５６から入力されたトルク指令に基づいてトルクを発生させるモータ７６ａが設けられている。このモータ７６ａの駆動により、手先部がロール方向に回動する。
【００１８】
手首ヨー７７は、手先部をヨー軸周りに回転させる関節軸である。手首ヨー７７には、後述するマスターアンプ５７から入力されたトルク指令に基づいてトルクを発生させるモータ７７ａが設けられている。このモータ７７ａの駆動により、手先部がヨー方向に回動する。
【００１９】
スレーブロボット３は、マスターロボット２と同様の構成を備える。すなわち、スレーブロボット３は、上腕部、下腕部、手先部を有し、各部位と部位の間に関節が設けられたロボットアーム８を備える。ロボットアーム８は、上腕部を動作させる関節である肩ピッチ８１と、肩ロール８２と、肩ヨー８３と、下腕部を動作させる関節である肘ピッチ８４と、手先部を動作させる関節である手首ピッチ８５と、手首ロール８６と、手首ヨー８７と、を備える。各関節８１〜８７には、それぞれ後述するスレーブアンプ６１〜６７から入力された制御信号に基づいてトルクを発生させるモータ６１ａ〜６７ａが設けられている。スレーブロボット３のロボットアーム８に設けられた各関節８１〜８７については、マスターロボット２に設けられたロボットアーム７に設けられた各関節７１〜７７と同様であるため説明を省略する。典型的には、スレーブロボット３は、遠隔地に設置されたロボットであり、マスターロボット２の動作に応じて動作する。なお、スレーブロボット３は、スレーブアンプ部６から受信したトルク指令を受信する受信部（図示せず）や、受信部で受信したトルク指令に基づいて、各モータ８１ａ〜８７ａが駆動するように制御する制御部（図示せず）、ロボットアーム８に発生した力の情報を取得する力センサ（図示せず）、ロボットアーム８の位置情報を取得する位置センサ（図示せず）を有している。
【００２０】
ホストコントローラ４は、ロボットアーム７及びロボットアーム８の各部位の重力補償量を算出する基礎重力補償演算部４１と、各部位への重力補償の適用割合を決定する適用割合演算部４２と、を備える。
【００２１】
基礎重力補償演算部４１は、ロボットアーム７及びロボットアーム８の自重等による重力の影響を補償するための、各関節における基礎重力補償量ＧＭ１〜７，ＧＳ１〜７を算出する。ここで基礎重力補償量とは、ロボットアーム７及びロボットアーム８に作用する重力を相殺する重力補償量である。基礎重力補償演算部４１では、ロボットアーム７及びロボットアーム８の自重等の情報を、ＣＡＤ情報を用いて入力する。これにより、基礎重力補償演算部４１には、ロボットアーム７及びロボットアーム８の上腕部、下腕部、手先部の質量、重心位置、慣性テンソルに関する情報が入力され、ロボットアーム７及びロボットアーム８を無重力状態で動作させるような重力補償量を、基礎重力補償量ＧＭ１〜７，ＧＳ１〜７として算出する。
【００２２】
適用割合演算部４２は、ロボットアーム７及びロボットアーム８の各関節に適用する重力補償量の適用割合ｒＭ１〜ｒＭ７を決定する。なお、適用割合演算部４２に定められる適用割合の個数は、ロボットアーム７に設けられた関節の軸の個数と同数であると共に、ロボットアーム８に設けられた関節の軸の個数と同数である。例えば、適用割合演算部４２では、肩関節の適用割合ｒＭ１〜ｒＭ３を０．９５、肘関節の適用割合ｒＭ４を０．８、手首の関節の適用割合ｒＭ５及びｒＭ６を０．８、ｒＭ７を０．６とする。この適用割合は、１より小さい値であると共に、肘関節の適用割合ｒＭ４が肩関節の適用割合ｒＭ１〜ｒＭ３のいずれの値よりも小さく、手首関節の適用割合ｒＭ５〜ｒＭ７のいずれの値も肘関節の適用割合ｒＭ４より小さくなるように決定される。なお、上記では適用割合ｒＭ１〜ｒＭ３の値を同一の値としたが、異なる値であってもよい。手首関節の適用割合ｒＭ５〜ｒＭ７についても同様に、同一の値であってもよく、異なる値であってもよい。
【００２３】
また適用割合演算部４２は、基礎重力補償演算部４１により算出されたロボットアーム７の肩ピッチ７１にかかる基礎重力補償量ＧＭ１に対し、適用割合ｒＭ１を積算することにより、重力補償量を算出する。適用割合演算部４２は、算出した重力補償量を、マスターアンプ部５とスレーブアンプ部６に出力する。より具体的には、適用割合演算部４２は、ロボットアーム７の肩ピッチ７１に関して算出した重力補償値をマスターアンプ５１に出力し、肩ロール７２に関して算出した重力補償値をマスターアンプ５２に出力し、肩ヨー７３に関して算出した重力補償値をマスターアンプ５３に出力し、肘ピッチ７４に関して算出した重力補償値をマスターアンプ５４に出力し、手首ピッチ７５に関して算出した重力補償値をマスターアンプ５５に出力し、手首ロール７６に関して算出した重力補償値をマスターアンプ５６に出力し、手首ヨー７７に関して算出した重力補償値をマスターアンプ５７に出力する。ロボットアーム８に関し、適用割合演算部４２が適用割合ｒＳ１〜ｒＳ７を用いて算出した重力補償値のスレーブアンプ部６への出力についても同様である。
【００２４】
マスターアンプ部５は、複数のマスターアンプ５１〜５７を備える。マスターアンプ５１には、適用割合演算部４２により適用割合rＭ１を用いて算出された重力補償値が入力されると共に、肩ピッチ７１に関し、位置制御に基づくトルク指令、及び力制御に基づくトルク指令が入力される。例えばこれらのトルク指令は、スレーブロボット３のロボットアーム８の位置や、ロボットアーム８が障害物に衝突することによって発生する力に応じて、マスターアンプ５１に入力される。マスターアンプ５１は、入力された重力補償量とトルク指令に基づいて肩ピッチ７１にモータ７１ａを動作させるためのトルク指令値を算出し、肩ピッチ７１に出力する。
【００２５】
同様にして、マスターアンプ５２は、適用割合rＭ２を用いて算出された重力補償値と、肩ロール７２に関する位置制御及び力制御に基づくトルク指令が入力され、肩ロール７２にモータ７２ａを動作させるトルク指令を出力する。マスターアンプ５３は、適用割合rＭ３を用いて算出された重力補償値と、肩ヨー７３に関する位置制御及び力制御に基づくトルク指令が入力され、肩ヨー７３にモータ７３ａを動作させるトルク指令を出力する。マスターアンプ５４は、適用割合rＭ４を用いて算出された重力補償値と、肘ピッチ７４に関する位置制御及び力制御に基づくトルク指令が入力され、肘ピッチ７４にモータ７４ａを動作させるトルク指令を出力する。マスターアンプ５５は、適用割合rＭ５を用いて算出された重力補償値と、手首ピッチ７５に関する位置制御及び力制御に基づくトルク指令が入力され、手首ピッチ７５にモータ７５ａを動作させるトルク指令を出力する。マスターアンプ５６は、適用割合rＭ６を用いて算出された重力補償値と、手首ロール７６に関する位置制御及び力制御に基づくトルク指令が入力され、手首ロール７６にモータ７６ａを動作させるトルク指令を出力する。マスターアンプ５７は、適用割合rＭ７を用いて算出された重力補償値と、手首ヨー７７に関する位置制御及び力制御に基づくトルク指令が入力され、手首ヨー７７にモータ７７ａを動作させるトルク指令を出力する。なお、マスターアンプ部５に設けられるマスターアンプの個数は、ロボットアーム７に設けられた軸の個数に対応している。
【００２６】
スレーブアンプ部６は、複数のスレーブアンプ６１〜６７を備える。スレーブアンプ６１には、適用割合演算部４２から適用割合rＳ１を用いて算出された重力補償値が入力されると共に、肩ピッチ８１に関し、位置制御に基づくトルク指令、及び力制御に基づくトルク指令が入力される。例えばこれらのトルク指令は、マスターロボット２において、使用者がロボットアーム８を動かしたことによる位置の変化や、ロボットアーム７の位置を変位させるために発生させた力に応じて、スレーブアンプ６１に入力される。スレーブアンプ６１は、入力された重力補償量とトルク指令に基づいて肩ピッチ８１にモータ８１ａを動作させるためのトルク指令値を算出し、肩ピッチ８１に出力する。
【００２７】
同様にして、スレーブアンプ６２は、適用割合rＳ２を用いて算出された重力補償値と、肩ロール８２に関する位置制御及び力制御に基づくトルク指令が入力され、肩ロール８２にモータ８２ａを動作させるトルク指令を出力する。スレーブアンプ６３は、適用割合rＳ３を用いて算出された重力補償値と、肩ヨー８３に関する位置制御及び力制御に基づくトルク指令が入力され、肩ヨー８３にモータ８３ａを動作させるトルク指令を出力する。スレーブアンプ６４は、適用割合rＳ４を用いて算出された重力補償値と、肘ピッチ８４に関する位置制御及び力制御に基づくトルク指令が入力され、肘ピッチ８４にモータ８４ａを動作させるトルク指令を出力する。スレーブアンプ６５は、適用割合rＳ５を用いて算出された重力補償値と、手首ピッチ８５に関する位置制御及び力制御に基づくトルク指令が入力され、手首ピッチ８５にモータ８５ａを動作させるトルク指令を出力する。スレーブアンプ６６は、適用割合rＳ６を用いて算出された重力補償値と、手首ロール８６に関する位置制御及び力制御に基づくトルク指令が入力され、手首ロール８６にモータ８６ａを動作させるトルク指令を出力する。スレーブアンプ６７は、適用割合rＳ７を用いて算出された重力補償値と、手首ヨー８７に関する位置制御及び力制御に基づくトルク指令が入力され、手首ヨー８７にモータ８７ａを動作させるトルク指令を出力する。
【００２８】
次に、遠隔操作システム１による重力補償を行う際の動作について説明する。
【００２９】
最初に、基礎重力補償演算部４１において、ロボットアーム７及びロボットアーム８のＣＡＤデータ等に基づいて、各関節における基礎重力補償量ＧＭ１〜７，ＧＳ１〜７を算出する。
【００３０】
適用割合演算部４２は、重力補償量を算出する。具体的には、適用割合演算部４２は、あらかじめ決定された適用割合ｒＭ１〜Ｍ７及びｒＳ１〜Ｓ７と、基礎重力補償演算部４１により算出された基礎重力補償量ＧＭ１〜７，ＧＳ１〜７とを積算することにより、ロボットアーム７の各関節、及びロボットアーム８の各関節に発生させる重力補償量を算出する。その後、適用割合演算部４２は、算出したロボットアーム７の各関節の重力補償量をマスターアンプ部５に出力する。また同様に、適用割合演算部４２は、算出したロボットアーム８の各関節の重力補償量をスレーブアンプ部６に出力する。ここで、適用割合ｒＭ１〜Ｍ７及びｒＳ１〜Ｓ７は１より小さい値である。したがって、適用割合演算部４２により算出される重力補償量は、ロボットアーム７及びロボットアーム８が無重力状態となるような重力補償量ではなく、重力の影響が低減された状態を作り出すための重力補償量となる。
【００３１】
マスターアンプ部５は、入力された重力補償値と、位置制御に基づくトルク指令、及び力制御に基づくトルク指令が入力される。例えば、マスターアンプ５１には、適用割合演算部４２により適用割合rＭ１を用いて算出された重力補償値が入力されると共に、肩ピッチ７１に関し、位置制御に基づくトルク指令、及び力制御に基づくトルク指令が入力される。マスターアンプ５１は、肩ピッチ７１にモータ７１ａを動作させるためのトルク指令値を算出して出力する。他のマスターアンプ５２〜５７も同様に、算出したトルク指令値を各関節軸７２〜７７に出力する。
【００３２】
ロボットアーム７は、マスターアンプ部５から入力されたトルク指令値に基づいて、重力補償及びその他の動作を行う。例えば、肩ピッチ７１では、マスターアンプ５１から入力されたトルク指令に基づいてモータ７１ａが駆動する。これにより、肩ピッチ７１では、重力による影響を低減する重力補償を行うと共に、スレーブロボット３のロボットアーム８の位置の変化等に基づいて動作が行われる。他の関節７２〜７７についても同様に、重力補償及びスレーブロボット３のロボットアーム８の位置の変化や加えられた力に基づいて動作が行われる。
【００３３】
また、スレーブアンプ部６にも、マスターアンプ部５と同様に、入力された重力補償値と、位置制御に基づくトルク指令、及び力制御に基づくトルク指令が入力される。例えば、スレーブアンプ６１には、適用割合演算部４２から適用割合rＳ１を用いて算出された重力補償値が入力されると共に、肩ピッチ８１に関し、位置制御に基づくトルク指令、及び力制御に基づくトルク指令が入力される。スレーブアンプ６１は、肩ピッチ８１にモータ８１ａを動作させるためのトルク指令値を算出して出力する。他のスレーブアンプ６２〜６７も同様に、算出したトルク指令値を各関節軸８２〜８７に出力する。
【００３４】
ロボットアーム８は、スレーブアンプ部６から入力されたトルク指令値に基づいて、重力補償及びその他の動作を行う。例えば、肩ピッチ８１では、スレーブアンプ６１から入力されたトルク指令に基づいてモータ８１ａが駆動する。これにより、肩ピッチ８１では、重力による影響を低減する重力補償を行うと共に、使用者によるマスターロボット２のロボットアーム７の位置の変化等に基づいて移動させる力が発生する。他の関節８２〜８７についても同様に、重力補償及びマスターロボット２のロボットアーム７の位置の変化や加えられた力に基づいて動作が行われる。
【００３５】
これにより、ロボットアーム７、８において、重力による影響を低減するように重力補償を行うことができる。本実施の形態では、各関節における適用割合が１より小さい値であるため、重力補償が強すぎることによってロボットアーム７、８が浮き上がるような力が発生することはなく、重力補償によって低減はされるが、重力によってロボットアーム７、８に下向きの力が発生し続けている状態となる。これは、重力を受けながら腕を動作させる通常の感覚と合致するため、使用者はロボットアーム７、８の操作がしやすくなる。
【００３６】
また、適用割合演算部４２による適用割合は、ロボットアーム７、８の末端に近づくにしたがって小さくなるように設定されている。これにより、ロボットアーム７、８は、手先側が常に垂れ下がる傾向になる。そのため、重力補償のために手の平の向きが意図せずに変化することがなく、ロボットアーム７、８を操作しやすくなる。
【００３７】
なお、ロボットアーム７、８の末端に近いほど適用割合ほど小さい値となっているため、手首の関節にかかる重力補償量は小さなものとなる。しかしながら、ロボットアーム７、８の手先部の重量は元々小さいので、重力補償量が小さくても十分に操作可能である。
【００３８】
本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記では７軸で動作するロボットアームとして説明したが、軸の数は７つで無くてもよい。また軸の数に応じて、マスターアンプ部５に設けられたマスターアンプの個数や、スレーブアンプ部６に設けられたスレーブアンプの個数、適用割合演算部４２で使用される適用割合をそれぞれ変更することができる。また、マスターアンプ部５及びスレーブアンプ部６は、それぞれマスターロボット２及びスレーブロボット３内に設けられていても良い。また、ホストコントローラ４において、１つの演算部により、基礎重力補償演算部４１と適用割合演算部４２で行う演算を実行しても良い。
【符号の説明】
【００３９】
１…遠隔操作システム  ２…マスターロボット  ３…スレーブロボット  ４…ホストコントローラ  ５…マスターアンプ部  ６…スレーブアンプ部  ７…ロボットアーム  ８…ロボットアーム  ４１…基礎重力補償演算部  ４２…適用割合演算部  ５１-５７…マスターアンプ  ６１-６７…スレーブアンプ  ７１…肩ピッチ  ７２…肩ロール  ７３…肩ヨー  ７４…肘ピッチ  ７５…手首ピッチ  ７６…手首ロール  ７７…手首ヨー  ８１…肩ピッチ  ８２…肩ロール  ８３…肩ヨー  ８４…肘ピッチ  ８５…手首ピッチ  ８６…手首ロール  ８７…手首ヨー
【図１】
2016022559.tif 000003