(57)【要約】      （修正有）【課題】マスターアームの動作に対してスレーブアームが遅れた場合においても、対象物を把持し続けながらスムースに運搬することができるロボット、ロボットの制御方法、及びロボットの制御システムを提供する。【解決手段】ロボット１は、２本のアームにそれぞれ設けられた把持部によって対象物２０を把持し、当該対象物２０を目標位置・姿勢まで移動させるロボットであって、一方のアームをマスターアームとし、他方のアームをスレーブアームとしたとき、マスターアームを対象物２０の目標位置・姿勢に向けての軌道に沿って動くように制御するマスターアーム制御部と、対象物２０を介してスレーブアームの把持部１３Ｓに作用する外力を検知し、当該外力に基づいて、スレーブアームをマスターアームに追従して動くように制御するスレーブアーム制御部とを備えるものである。【選択図】図４
2009018380.tif 000002
【特許請求の範囲】
【請求項１】
２本のアームを有し、それぞれのアームに設けられた把持部によって対象物を把持し、当該対象物を目標位置・姿勢まで移動させるロボットであって、
一方のアームをマスターアームとし、他方のアームをスレーブアームとしたとき、
前記マスターアームを前記対象物の目標位置・姿勢に向けての軌道に沿って動くように制御するマスターアーム制御部と、
前記対象物を介して前記スレーブアームの把持部に作用する外力を検知し、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動くように制御するスレーブアーム制御部と
を備えるロボット。
【請求項２】
前記スレーブアーム制御部は、
前記対象物を介して前記スレーブアームの把持部に作用する外力を検知して、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動作させるための目標値を生成する目標値生成部を備え、
当該目標値を満たすように前記スレーブアームを制御する
ことを特徴とする請求項１記載のロボット。
【請求項３】
前記マスターアーム制御部は、
前記対象物の目標位置・姿勢に基づいて、前記マスターアームを移動させる軌道を算出する軌道計画部と、
算出された前記軌道に沿って前記マスターアームを動作させるための目標値を生成する目標値生成部と、
前記対象物を介して前記マスターアームの把持部に作用する外力を検知して、当該外力に基づいて前記目標値を修正する目標値修正部を備え、
修正された前記目標値を満たすように前記マスターアームを制御する
ことを特徴とする請求項１又は２記載のロボット。
【請求項４】
前記目標値修正部は、
前記対象物を弾力的に把持するインピーダンス制御を行うように前記目標値を修正する
ことを特徴とする請求項３記載のロボット。
【請求項５】
前記ロボットは、
前記対象物の現在位置・姿勢及び目標位置・姿勢に基づいて、マスターアームを選択するマスターアーム選択部を更に備える
ことを特徴とする請求項１乃至４いずれか１項記載のロボット。
【請求項６】
２本のアームにそれぞれ設けられた把持部によって対象物を把持し、当該対象物を目標位置・姿勢まで移動させるロボットの制御方法であって、
一方のアームをマスターアームとし、他方のアームをスレーブアームとしたとき、
前記マスターアームを前記対象物の目標位置・姿勢に向けての軌道に沿って動くように制御するマスターアーム制御ステップと、
前記対象物を介して前記スレーブアームの把持部に作用する外力を検知し、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動くように制御するスレーブアーム制御ステップと
を備えるロボットの制御方法。
【請求項７】
前記スレーブアーム制御ステップは、
前記対象物を介して前記スレーブアームの前記把持部に作用する外力を検知して、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動作させるための目標値を生成する目標値生成ステップを備え、
当該目標値を満たすように前記スレーブアームを制御する
ことを特徴とする請求項６記載のロボットの制御方法。
【請求項８】
前記マスターアーム制御ステップは、
前記対象物の目標位置・姿勢に基づいて、前記マスターアームを移動させる軌道を算出する軌道計画ステップと、
算出された前記軌道に沿って前記マスターアームを動作させるための目標値を生成する目標値生成ステップと、
前記対象物を介して前記マスターアームの把持部に作用する外力を検知して、当該外力に基づいて前記目標値を修正する目標値修正ステップを備え、
修正された前記目標値を満たすように前記マスターアームを制御する
ことを特徴とする請求項６又は７記載のロボットの制御方法。
【請求項９】
前記目標値修正ステップは、
前記対象物を弾力的に把持するインピーダンス制御を行うように前記目標値を修正する
ことを特徴とする請求項８記載のロボットの制御方法。
【請求項１０】
前記対象物の現在位置・姿勢及び目標位置・姿勢に基づいて、マスターアームを選択するマスターアーム選択ステップを更に備える
ことを特徴とする請求項６乃至９いずれか１項記載のロボットの制御方法。
【請求項１１】
２本のアームを有し、それぞれのアームに設けられた把持部によって対象物を把持し、当該対象物を目標位置・姿勢まで移動させるロボットの制御システムであって、
一方のアームをマスターアームとし、他方のアームをスレーブアームとしたとき、
前記マスターアームを前記対象物の目標位置・姿勢に向けての軌道に沿って動くように制御するマスターアーム制御部と、
前記対象物を介して前記スレーブアームの把持部に作用する外力を検知し、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動くように制御するスレーブアーム制御部と
を備えるロボットの制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボット、ロボットの制御方法、及びロボットの制御システムに関する。
【背景技術】
【０００２】
ロボットアームによって対象物を制御する数多くの技術が知られている。特許文献１には、２つのロボットアームを協調動作させて、同じ対象物を保持して移動させる技術が開示されている。特許文献１に開示された技術は、マスターロボットのアームによって対象物の位置・姿勢を制御すると共に、他方のロボットのアームを対象物の重力補償を行うスレーブアームとすることによって、対象物を操作する際に生じる相対誤差を吸収している。
【特許文献１】特開２００３−１５９６８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に開示された技術では、スレーブロボットのアームは対象物を把持しておらず重力方向に支えているのみであるため、対象物を適切に保持し続けることができない虞がある。例えば、スレーブロボットのアームが障害物と衝突してマスターロボットの動作に対して遅れが生じた場合には、対象物を保持し続けることができずに対象物を落下させてしまう、又は対象物の姿勢を維持することができない。また、マスターロボットのアームとスレーブロボットのアームとの間の相対誤差について、ある程度の相対誤差は吸収できるものの、吸収可能な誤差には限界がある。従って、スレーブロボットのアームが対象物を常に保持できる範囲となるように、動作計画時に事前に限界値を考慮してマスターロボットのアームの動作速度などを決定する必要がある。このため、ロボットの作業速度は制限され、スムースな作業を実現することができないという問題がある。
【０００４】
このように、従来のロボット制御によれば、マスターアームの動作に対してスレーブアームが遅れた場合には、対象物を把持し続けることができない虞があると共に、対象物を把持しながらスムースに運搬することができないという問題があった。
【０００５】
本発明は、かかる課題を解決するためになされたものであり、マスターアームの動作に対してスレーブアームが遅れた場合においても、対象物を把持し続けながらスムースに運搬することができるロボット、ロボットの制御方法、及びロボットの制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明にかかる第一のロボットは、２本のアームを有し、それぞれのアームに設けられた把持部によって対象物を把持し、当該対象物を目標位置・姿勢まで移動させるロボットであって、一方のアームをマスターアームとし、他方のアームをスレーブアームとしたとき、前記マスターアームを前記対象物の目標位置・姿勢に向けての軌道に沿って動くように制御するマスターアーム制御部と、前記対象物を介して前記スレーブアームの把持部に作用する外力を検知し、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動くように制御するスレーブアーム制御部とを備えるものである。
【０００７】
このようなロボットによれば、スレーブアームでは、重力方向に限らず全方向に対して対象物を把持することで、安定して対象物を運搬することができると共に、対象物を介してスレーブアームの把持部に作用する外力を正確に検知することができる。このため、対象物を介して検出する外力に基づいて、スレーブアームをマスターアームの動作に追従させることで、スレーブアームの遅れによる相対誤差の発生を抑制・吸収することができる。従って、マスターアームの動作に対してスレーブアームが遅れた場合においても、対象物を把持し続けながらスムースに運搬することができる。
【０００８】
また、前記スレーブアーム制御部は、前記対象物を介して前記スレーブアームの把持部に作用する外力を検知して、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動作させるための目標値を生成する目標値生成部を備え、当該目標値を満たすように前記スレーブアームを制御するようにしてもよい。これにより簡便な構成によりスレーブアームを追従動作させることができる。
【０００９】
さらにまた、前記マスターアーム制御部は、前記対象物の目標位置・姿勢に基づいて、前記マスターアームを移動させる軌道を算出する軌道計画部と、算出された前記軌道に沿って前記マスターアームを動作させるための目標値を生成する目標値生成部と、前記対象物を介して前記マスターアームの把持部に作用する外力を検知して、当該外力に基づいて前記目標値を修正する目標値修正部を備え、修正された前記目標値を満たすように前記マスターアームを制御するようにしてもよい。このように、ロボットはマスターアーム及びスレーブアームの両方を用いて対象物を把持することで、マスターアームは対象物を介してスレーブアームからの外力を正確に検知することができる。このため、マスターアームの動作に対してスレーブアームが大きく遅れた場合においても、マスターアームの動作をスレーブアームに合わせて修正することで、対象物を把持し続けながらスムースに運搬することができる。
【００１０】
また、前記目標値修正部は、前記対象物を弾力的に把持するインピーダンス制御を行うように前記目標値を修正するようにしてもよい。このようにすれば、外乱に対してより柔軟に把持することができる。例えば、マスターアームの動作に対してスレーブアームが遅れた場合においても、対象物に倣ってマスターアームを移動させることでより安定して把持し続けることができる。
【００１１】
さらにまた、前記ロボットは、前記対象物の現在位置・姿勢及び目標位置・姿勢に基づいて、マスターアームを選択するマスターアーム選択部を更に備えるようにしてもよい。このように対象物の現在位置・姿勢及び目標位置・姿勢に基づいてマスターアームを選択することで、次の目標位置・姿勢へと対象物をより安定して移動させることができる。例えば、対象物を右前方へと移動させたい場合には、ロボットの右側のアーム（右手）をマスターアームとして右手により対象物を右前方へと引っ張る場合に比べて、ロボットの左側のアーム（左手）をマスターアームとして左手により対象物を右前方へと押し出すように移動させることで、マスターアームに対してスレーブアームをより容易に安定して追従させることができる。
【００１２】
本発明にかかる第二のロボットの制御方法は、２本のアームにそれぞれ設けられた把持部によって対象物を把持し、当該対象物を目標位置・姿勢まで移動させるロボットの制御方法であって、一方のアームをマスターアームとし、他方のアームをスレーブアームとしたとき、前記マスターアームを前記対象物の目標位置・姿勢に向けての軌道に沿って動くように制御するマスターアーム制御ステップと、前記対象物を介して前記スレーブアームの把持部に作用する外力を検知し、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動くように制御するスレーブアーム制御ステップとを備えるものである。
【００１３】
このようなロボットの制御方法によれば、スレーブアームでは、重力方向に限らず全方向に対して対象物を把持することで、安定して対象物を運搬することができると共に、対象物を介してスレーブアームの把持部に作用する外力を正確に検知することができる。このため、対象物を介して検出する外力に基づいて、スレーブアームをマスターアームの動作に追従させることで、スレーブアームの遅れによる相対誤差の発生を抑制・吸収することができる。従って、マスターアームの動作に対してスレーブアームが遅れた場合においても、対象物を把持し続けながらスムースに運搬することができる。
【００１４】
また、前記スレーブアーム制御ステップは、前記対象物を介して前記スレーブアームの把持部に作用する外力を検知して、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動作させるための目標値を生成する目標値生成ステップを備え、当該目標値を満たすように前記スレーブアームを制御するようにしてもよい。これにより簡便な構成によりスレーブアームを追従動作させることができる。
【００１５】
さらにまた、前記マスターアーム制御ステップは、前記対象物の目標位置・姿勢に基づいて、前記マスターアームを移動させる軌道を算出する軌道計画ステップと、算出された前記軌道に沿って前記マスターアームを動作させるための目標値を生成する目標値生成ステップと、前記対象物を介して前記マスターアームの把持部に作用する外力を検知して、当該外力に基づいて前記目標値を修正する目標値修正ステップを備え、修正された前記目標値を満たすように前記マスターアームを制御するようにしてもよい。このように、ロボットはマスターアーム及びスレーブアームの両方を用いて対象物を把持することで、マスターアームは対象物を介してスレーブアームからの外力を正確に検知することができる。このため、マスターアームの動作に対してスレーブアームが大きく遅れた場合においても、マスターアームの動作をスレーブアームに合わせて修正することで、対象物を把持し続けながらスムースに運搬することができる。
【００１６】
また、前記目標値修正ステップは、前記対象物を弾力的に把持するインピーダンス制御を行うように前記目標値を修正するようにしてもよい。このようにすれば、外乱に対してより柔軟に把持することができる。例えば、マスターアームの動作に対してスレーブアームが遅れた場合においても、対象物に倣ってマスターアームを移動させることでより安定して把持し続けることができる。
【００１７】
さらにまた、前記対象物の現在位置・姿勢及び目標位置・姿勢に基づいて、マスターアームを選択するマスターアーム選択ステップを更に備えるようにしてもよい。このように対象物の現在位置・姿勢及び目標位置・姿勢に基づいてマスターアームを選択することで、次の目標位置・姿勢へと対象物をより安定して移動させることができる。例えば、対象物を右前方へと移動させたい場合には、右手をマスターアームとして右手により対象物を右前方へと引っ張る場合に比べて、左手をマスターアームとして左手により対象物を右前方へと押し出すように移動させることで、マスターアームに対してスレーブアームをより容易に安定して追従させることができる。
【００１８】
本発明にかかる第三のロボットの制御システムは、２本のアームを有し、それぞれのアームに設けられた把持部によって対象物を把持し、当該対象物を目標位置・姿勢まで移動させるロボットの制御システムであって、一方のアームをマスターアームとし、他方のアームをスレーブアームとしたとき、前記マスターアームを前記対象物の目標位置・姿勢に向けての軌道に沿って動くように制御するマスターアーム制御部と、前記対象物を介して前記スレーブアームの把持部に作用する外力を検知し、当該外力に基づいて、前記スレーブアームを前記マスターアームに追従して動くように制御するスレーブアーム制御部とを備えるものである。
【００１９】
このようなロボットの制御システムによれば、スレーブアームでは、重力方向に限らず全方向に対して対象物を把持することで、安定して対象物を運搬することができると共に、対象物を介してスレーブアームの把持部に作用する外力を正確に検知することができる。このため、対象物を介して検出する外力に基づいて、スレーブアームをマスターアームの動作に追従させることで、スレーブアームの遅れによる相対誤差の発生を抑制・吸収することができる。従って、マスターアームの動作に対してスレーブアームが遅れた場合においても、対象物を把持し続けながらスムースに運搬することができる。
【発明の効果】
【００２０】
本発明によれば、対象物を把持し続けながらスムースに運搬することができるロボット、ロボットの制御方法、及びロボットの制御システムを提供することを目的とする。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。尚、各図面において、同一要素には同一の符号を付しており、説明の明確化のため、必要に応じて重複説明を省略する。
【００２２】
発明の実施の形態１．
図１（ａ）は、本実施の形態１に係るロボット１を模式的に示す上面図である。ロボット１は、２本のアームを有する双腕ロボットであり、アームはアーム部１２及び把持部１３を有する。アーム部１２の先端に対象物２０を把持するための把持部１３が設けられている。ロボット１は、車輪などの移動手段（不図示）を有しており、対象物２０を目標軌道に沿って運搬する。また、ロボット１の各関節には、ロボット１を動作させるためのモータと、各関節の動作量を検出するエンコーダが配設される。各関節に設けられたエンコーダの検出信号によって、動作中の把持部１３の位置・姿勢を求めることができる。
【００２３】
アーム部１２は本体部１０に接続されている。本体部１０には、アーム部１２を制御する制御部１１などが収納されている。制御部１１は、ＣＰＵやメモリ等の記憶領域を備えるコンピュータである。例えば、制御部１１は、演算処理部であるＣＰＵ（Central Processing Unit）、記憶領域であるＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）、通信用のインターフェースなどを有し、ロボット１の各種動作を制御する。例えば、ＲＯＭには、制御するための制御プログラムや、各種の設定データ等が記憶されている。そして、ＣＰＵは、このＲＯＭに記憶されている制御プログラムを読み出し、RAMに展開する。そして、設定データや、センサ等からの出力に応じてプログラムを実行する。
【００２４】
図１（ｂ）は、対象物２０を把持するロボット１を模式的に示す正面図である。図１（ｂ）においては、把持部１３として２本の指を持つ多指ハンドを用いて対象物２０を把持する様子を示している。図１（ｂ）に示すように、アーム部１２によって把持部１３の位置・姿勢が実現され、把持部１３Ｒ及び１３Ｌによって対象物２０が把持される。対象物２０の姿勢を保ちながら目標位置へと移動させることによって運搬が行われる。尚、把持部１３として例えば多指ハンドを用いることで、対象物２０を把持した状態で対象物２０の位置・姿勢を容易に変更することができる。
【００２５】
外力検知部１４が、アーム部１２及び把持部１３との間に設けられている。外力検知部１４は、アーム部１２及び把持部１３にかかる外力を検知する。例えば、外力検知部１４Ｒは、把持部１３Ｒにおいて、把持部１３Ｌから対象物２０を介して把持部１３Ｒに加えられる外力を検知する。外力検知部１４は、例えば自身の歪み量により、受けた力の大きさを表す検出信号を送信可能な力センサであり、６軸力センサなどを用いることができる。
【００２６】
図２は、本発明の実施の形態１にかかるロボット１が有する制御系のブロック構成図である。制御部１１は、マスターアーム選択部３０、マスターアーム制御部３１、及びスレーブアーム制御部３２を有する。マスターアーム選択部３０は、対象物２０の現在位置・姿勢及び目標とする位置・姿勢などの状況に基づいて、マスターアームとなるべきアームを選択する。このように、状況に応じてマスターアームを切替えることで、特定のアームに対して無理な動作を強いることが無く、全体として効率の良い動作を行うことができる。尚、マスターアーム選択方法の詳細については後述する。
【００２７】
マスターアーム制御部３１は、軌道計画部３１１、目標値生成部３１２、目標値修正部３１３、及びアーム制御部３１４を有し、マスターアームの動作を制御する。また、マスターアーム制御部３１は、マスターアームの外力検知部１４Ｍにより検出した外力に基づいて、アーム部１２の先端（把持部１３）の目標値を修正する。
【００２８】
マスターアームは、通常（マスターアームの動作に対してスレーブアームが大きく遅れていない場合）では、所定のプログラムによって生成された手先軌道に沿って、対象物２０を把持しながら移動する。このとき、エンコーダでの検出値によって、ロボット１に設けられた各関節軸の角度が検出され、これに基づいて把持部１３の位置（アーム部１２の先端位置）が把握される。マスターアーム制御部３１において、把握された把持部１３の位置に基づき、位置比例制御、逆ヤコビ行列、角度比例制御等といった所定のアーム制御処理を行うことでアーム部１２の各関節軸の目標速度が検出され、アーム制御部３１４に対して伝達される。すると、アーム制御部３１４は、伝達された目標速度に応じ、アーム部１２の各関節軸のモータを駆動し、これによって、マスターアームのアーム部１２及び把持部１３が、生成された手先軌道に沿って動作する。
【００２９】
軌道計画部３１１は、対象物２０の目標位置・姿勢に基づいて、把持部１３の手先軌道を算出する。より詳細には、対象物２０の目標位置・姿勢に応じた把持部１３の位置・姿勢が与えられ、対象物２０をその目標位置・姿勢へと運搬するための把持部１３の手先軌道が算出される。尚、スレーブアームは外力検知部１４Ｓで検知された外力に従ってマスターアームに追従動作するため、ここでは、マスターアームの把持部１３についての手先軌道のみを算出する。
【００３０】
対象物２０の目標位置・姿勢は、対象物２０の目標軌道と対象物２０の現在位置・姿勢とに基づいて算出される。対象物２０の現在位置・姿勢は、例えば、各関節に設けられたモータの回転角度を検出するエンコーダにより求めることができる。例えば、対象物２０の現在位置をｘｙｚ座標値として求める。また、例えば、エンコーダの変化量から、各関節の角速度を算出して、対象物２０の現在速度を求めることもできる。
【００３１】
対象物２０の目標軌道とは、対象物２０に固定された基準点を移動させるべき軌道を指定するデータである。基準点とは、ロボット１が有する特定部位との間で位置関係が固定されている点である。本実施の形態１における具体的な基準点は、ロボット１に保持された状態で運搬される対象物２０に固定された点であり、対象物２０を保持する把持部１３と基準点との間の位置関係が固定されている。即ち、本実施の形態１における目標軌道は、ロボット１が対象物２０を運搬する際に、把持部１３に保持された対象物２０を追従させるべき軌道である。このような目標軌道に沿って、把持部１３の手先軌道が与えられる。
【００３２】
目標軌道の入力は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、磁気ディスク・ドライブ、光磁気ディスク・ドライブ等の記憶された目標軌道データを読み出すことによって行うことができる。また、キーボード、マウス、ジョイスティック等の入力装置を介して操作者による入力を受け付けてもよい。
【００３３】
尚、対象物２０を運搬する際の時間に拘束条件を設けない場合、目標軌道は基準点の位置及び時間を指定する時系列に沿った軌道情報ではなく、時間要素を含まない基準点位置のみの情報として入力してもよい。また、目標軌道は、基準点の位置ではなく、基準点の位置及び姿勢、基準点の速度、角速度、角速度又は角加速度等を時系列的に記録したデータでもよい。
【００３４】
目標値生成部３１２は、軌道計画部３１１により算出された把持部１３の手先軌道における位置・姿勢を実現するための各関節の目標値を算出する。目標値としては、例えば位置制御系の場合には各関節の角度を算出し、速度制御系の場合には各関節の速度を算出し、トルク制御の場合には各関節のトルク値を算出する。
【００３５】
目標値修正部３１３は、マスターアームの外力検知部１４Ｍにより検知された外力に基づいて、目標値生成部３１２により生成された各関節の目標値を修正する。例えば、外力検知部１４Ｍに検知された外力が、所定の閾値を越えているか否かを判定し、越えている場合には、目標値に対する現在値との差分について、その差分に適切なゲインを乗じて目標値に加えることで目標値を修正する。
【００３６】
また、目標値修正部３１３は、対象物２０を弾力的に把持するインピーダンス制御を行うように目標値を修正することができる。インピーダンス制御として、例えば、コンプライアンス制御を行うことができる。コンプライアンス制御は、把持部１３の位置、及び把持部１３に作用する力を用いて、ロボット１に柔らかい動きをさせる制御手法である。この手法は、バネ、ダンパ、慣性パラメータを仮想的に設定したモデル系の運動をロボット１の動きにより実現するもので、パラメータの値を変えることによりロボット１の見かけ上の応答特性を自由に設定することができる。本実施の形態１においては、マスターアームの把持部１３に加わる外力を外力検知部１４Ｍによって検出し、モデルに従って、把持部１３が追従すべき位置を求めて制御する。
【００３７】
コンプライアンス制御を行うことで、マスターアームに対してスレーブアームの動作が遅れて、対象物２０がスレーブアームからの外力によってその位置・姿勢を変えるのと同時に、マスターアームの把持部１３にかかる外力が目標値と等しくなるようにマスターアームの把持部１３がその位置・姿勢を変更することができる。このため、スレーブアームの遅れをマスターアームの動作によって柔軟に吸収することができる。
【００３８】
尚、把持部１３として多指ハンドを用いる場合には、多指ハンドの各関節においてコンプライアンス制御を利用することで、アーム部１２に設けられた関節のみにコンプライアンス制御を用いる場合に比較して、環境の変化や誤差に対してより高速かつ柔軟に対応することができる。また、本発明は把持部１３自体をコンプライアンス制御する手法に限定されず、アーム部１２の各関節をコンプライアンス制御する手法、及びそれらを組み合わせた手法を用いることで、環境の誤差などを吸収してより高精度な作業を実現することができる。
【００３９】
アーム制御部３１４は、目標値修正部３１３により修正された目標値に従って、アーム部１２及び把持部１３を制御する。より具体的には、アーム制御部３１４からの駆動信号によって、アーム部１２及び把持部１３に設けられた各関節が、所定の駆動速度で駆動する。アーム部１２の先端に設けられた把持部１３が、目標とする位置・姿勢まで移動すると、各関節の駆動が停止する。
【００４０】
このようなマスターアーム制御部３１によれば、マスターアームは、スレーブアームからの外力を検知し、その状況に応じて対象物２０の位置・姿勢が破綻をきたさないように目標速度などを修正することによって、運搬作業を安定して継続することができる。また、スレーブアームを外力に対して追従するよう追従制御を行っているため、マスターアームに対して微小な遅れなどが生じ、それが外力としてマスターアームに伝わった場合には、マスターアームの目標値修正部３１３により、マスターアームがスレーブアームに近寄るように動作を調整することで、運搬作業を破綻させずに安定して継続することができる。
【００４１】
スレーブアーム制御部３２は、目標値生成部３２１及びアーム制御部３２２を有し、マスターアームの動作に追従するようにスレーブアームを制御する。スレーブアームは、スレーブアームの外力検知部１４Ｓにより、対象物２０を介してスレーブアームに作用する外力を検知してマスターアームの動きを推定し、これに追従するようにスレーブアームのアーム部１２及び把持部１３を動作させる。
【００４２】
目標値生成部３２１は、対象物２０を介してスレーブアームに作用する外力を検知することによって、マスターアームの動きを推定し、これに追従するための各関節の目標値を算出する。目標値としては、例えば位置制御系の場合には各関節の角度を算出し、速度制御系の場合には各関節の速度を算出し、トルク制御の場合には各関節のトルク値を算出する。
【００４３】
アーム制御部３２２は、目標値生成部３２１により算出された目標値に従って、アーム部１２及び把持部１３を制御する。より具体的には、アーム制御部３１４は、アーム部１２及び把持部１３の各関節を駆動する目標値を出力する。関節モータの動作は、それぞれの関節に設けたエンコーダにより検出され、アーム部１２及び把持部１３の動作が目標値に近づくように関節の位置・姿勢や駆動速度がフィードバック制御される。
【００４４】
このようなスレーブアーム制御部３２によれば、スレーブアームでは、重力方向に限らず全方向に対して対象物２０を把持することで、安定して対象物２０を運搬することができる。また、スレーブアームにおいても対象物２０を把持することで、対象物２０を介してスレーブアームの把持部１３に作用する外力を正確に検知することができる。このため、対象物２０を介して検出する外力に基づいて、スレーブアームをマスターアームの動作に追従させることで、スレーブアームの遅れによる相対誤差の発生を抑制・吸収することができる。従って、マスターアームの動作に対してスレーブアームが遅れた場合においても、対象物２０を把持し続けて支障なく円滑に運搬作業を継続することができる。また、スレーブアームをマスターアームの手先軌道に追従させることで、スレーブアーム用の軌道を別途生成する必要が無く、様々な環境、外乱に対して、よりロバストに対応することができる。
【００４５】
次に、本実施の形態にかかる制御方法の概要について、図３を用いて説明する。図３は、本実施の形態にかかるロボットアームの制御方法を示すフローチャートである。図３では、ロボット１が把持部１３により対象物２０を把持しており、対象物２０の目標位置・姿勢へと向けて運搬を開始する際の処理について示している。
【００４６】
まず、把持部１３により把持している対象物２０の目標軌道と、対象物２０の現在位置・姿勢とに基づいて、対象物２０の目標位置・姿勢を算出する（ステップＳ１０１）。次に、マスターアーム選択部３０は、Ｓ１０１において算出した対象物２０の目標位置・姿勢と、対象物２０の現在位置・姿勢とに基づいて、マスターアームを選択する（ステップＳ１０２）。より具体的には、マスターアーム選択部３０は、対象物２０の現在位置・姿勢と目標位置・姿勢から対象物２０を次に移動させる方向を判定する。判定の結果、例えば対象物２０を右前方へと移動させる場合には、ロボット１の左側のアーム（左手）をマスターアームとして選択する。一方、左前方へと移動させる場合には、ロボット１の右側のアーム（右手）をマスターアームとして選択する。把持部１３Ｒ、Ｌにより対象物２０を把持して移動させる場合、対象物２０を引くよりも押す方が対象物２０を落とす危険度が低くなる。このため、対象物２０を押すことが可能なアームをマスターアームとして選択することで、対象物２０をより安定的に運搬することができる。
【００４７】
図４は、把持部１３により対象物２０を保持したロボット１が、対象物２０に固定された基準点の目標軌道５０に沿って対象物２０を運搬する様子を示した図である。図４（ａ）に示すように、ロボット１が対象物２０を保持したまま右前方（白抜き矢印４０Ｒ）へ移動しようとする場合には、対象物２０の現在位置・姿勢に対して、その目標位置・姿勢は右前方（白抜き矢印４０Ｒ）に配置される。そこで、左手の把持部１３Ｌによって対象物２０を押すようにして運搬させるために、左手１３Ｌをマスターアーム１３Ｍとして選択する。一方、図４（ｂ）に示すように、ロボット１が対象物２０を保持したまま左前方（白抜き矢印４０Ｌ）へ移動しようとする場合には、対象物２０の現在位置・姿勢に対して、その目標位置・姿勢は左前方（白抜き矢印４０Ｌ）に配置される。そこで、右手の把持部１３Ｒによって対象物２０を押すようにして運搬させるために、右手１３Ｒをマスターアーム１３Ｍとして選択する。図４（ｃ）では、ロボット１が紙面上にいて左方向から右方向へと、対象物２０をその目標軌道５０に沿って運搬する際には、ロボット１は、対象物２０の現在位置・姿勢及び目標位置・姿勢に基づいて、図４（ａ）及び図４（ｂ）において示すようにして、マスターアームを順次選択して切替えてゆく。
【００４８】
図３に戻って説明を続ける。次に、マスターアームはマスターアーム制御部３１により手先軌道を追従するように制御され、スレーブアームはスレーブアーム制御部３２によりマスターアームの動作を追従するように制御される（ステップＳ１０３）。即ち、ロボット１は、マスターアーム及びスレーブアームに設けられた把持部１３によって対象物２０を把持し、目標軌道に従って対象物２０を移動させる。このように対象物２０を運搬している場合に、例えば、スレーブアームが障害物と衝突してマスターアームの動作に対して遅れが生じた場合には、マスターアームは対象物２０を介してスレーブアームの動作を検出し、対象物２０を弾力的に把持するインピーダンス制御を行う。尚、マスターアーム及びスレーブアームによる制御方法の詳細は後述する。
【００４９】
次に、対象物２０の現在位置・姿勢と目標位置・姿勢とを比較し、対象物２０が目標位置・姿勢へと到達したか否かを判定する（ステップＳ１０４）。即ち、対象物２０の現在位置・姿勢と目標位置・姿勢との間の差が、所定の範囲と比較して当該範囲に含まれるか否かを判定する。上記差が範囲に含まれない間は、ステップＳ１０３へと戻り、マスターアーム及びスレーブアームに設けられた把持部１３によって対象物２０を把持し、目標位置・姿勢へと向かって対象物２０を移動させる。一方、上記差が範囲に含まれる場合には、目標位置・姿勢へと到達したものと判定し、次の目標位置・姿勢に基づいて移動処理を行うべく制御部１１に対して次の目標値（目標軌道上の次の位置・姿勢データ）を転送するように指示する。
【００５０】
続いて、本実施の形態にかかるマスターアーム及びスレーブアームの制御方法の詳細について、図５を用いて説明する。図５は、本実施の形態にかかるロボットアームの制御方法を示すフローチャートであり、上述の図３において説明したステップＳ１０３における制御処理の詳細を説明するものである。図５では、ロボット１が把持部１３により対象物２０を把持しており、対象物２０の目標位置・姿勢へと向けて運搬を開始する際の処理について示している。
【００５１】
マスターアームとして選択されたアームは、把持している対象物２０を目標軌道に沿って移動させるための手先軌道を軌道計画部３１１によって算出し（ステップＳ２０１）、算出された手先軌道に基づいて各関節に与える目標値を目標値生成部３１２により生成する（ステップＳ２０２）。生成された目標値に応じて、マスターアームのアーム制御部３１４がアーム部１２Ｍ及び把持部１３Ｍを駆動する（ステップＳ２０３）。このように、マスターアームのマスターアーム制御部３１により、対象物２０が目標軌道を追従するように制御される。
【００５２】
マスターアームとして選択されなかったアーム（スレーブアーム）は、対象物２０を介して把持部１３Ｓに伝わる力を外力検知部１４Ｓにより検出し、マスターアームの動作を推定する（ステップＳ３０１）。外力検知部１４Ｓにより外力が検出された場合には、目標値生成部３２１により、マスターアームの動作に追従するための目標値を外力に応じて生成する（ステップＳ３０２）。生成された目標値に応じて、スレーブアームのアーム制御部３２２が力制御によりアーム部１２Ｓ及び把持部１３Ｓを駆動する（ステップＳ３０３）。
【００５３】
このようにしてロボット１は、マスターアーム及びスレーブアームに設けられた把持部１３によって対象物２０を把持し、目標軌道に従って対象物２０を移動させる。対象物２０を運搬する際に、外乱などによって対象物２０の目標軌道に対して急激なずれが生じた場合には、マスターアームが手先軌道を追従することだけを目標としていると、力センサや力制御器の性能によっては、スレーブアームの対応遅れなどにより運搬作業に破綻をきたす可能性がある。例えば、スレーブアームが障害物などに接触して、対象物２０の目標位置・姿勢と現在位置・姿勢とが大きく異なる状況となった場合に、マスターアームに対象物２０を把持させたまま目標軌道に従って移動させようとすると、マスターアームに対して遅れたスレーブアームでは、対象物２０を把持し続けることができない虞がある。また、同様にして対象物２０の目標位置・姿勢と現在位置・姿勢とが大きく異なる状況となった場合に、マスターアーム及びスレーブアームによって対象物２０を把持し続けようとすると、対象物２０に対して必要以上に過大な力を及ぼす虞がある。
【００５４】
そこで、マスターアームに設けられた外力検知部１４Ｍを用いて、対象物２０を介してスレーブアームの動作を推定する。即ち、ロボット１が対象物２０を運搬している場合に、マスターアームは、外力検知部１４Ｍによって対象物２０を介してスレーブアームの動作を検出する（ステップＳ２０４）。
【００５５】
例えば、スレーブアームが障害物と衝突して、ステップＳ２０４においてマスターアームの外力検知部１４Ｍが外力を検知した場合には、マスターアームの目標値修正部３１３により、手先の柔らかさを実現するインピーダンス制御器によって目標値を修正する（ステップＳ２０５）。修正された目標値に応じて、マスターアームのアーム制御部３１４が対象物２０を弾力的に把持するようにアーム部１２Ｍ及び把持部１３Ｍを駆動する（ステップＳ２０６）。尚、ステップＳ２０４においてマスターアームの外力検知部１４Ｍが外力を検知しない場合には、ステップＳ２０２において生成された目標値に応じてマスターアームのアーム制御部３１４がアーム部１２Ｍ及び把持部１３Ｍを駆動する。
【００５６】
これにより、マスターアームに対してスレーブアームの動作が遅れて、対象物２０がスレーブアームからの外力によってその位置・姿勢を変えるのと同時に、マスターアームの把持部１３Ｍにかかる外力が目標値と等しくなるようにマスターアームの把持部１３Ｍがその位置・姿勢を変更することができるため、スレーブアームの遅れをマスターアームの動作によって柔軟に吸収することができる。従って、修正された目標値に従ってマスターアーム制御部３１は、アームを手先軌道に沿いながら、対象物２０を落とさないように安定して運搬することができる。
【００５７】
尚、インピーダンス制御として、例えば、コンプライアンス制御を行うことができる。エンコーダで検出するアーム部１２の角度と外力検知部１４によって検出する外力とに基づいて、コンプライアンス制御を行う。コンプライアンス制御では、受けた力の方向にアーム部１２を自動的に変位させ、なじませるためのアーム部１２の目標とする位置・姿勢を算出する（ここでは、当該目標位置・姿勢に応じて目標値を修正する）。
【００５８】
また、エンコーダで検出する把持部１３の角度と外力検知部１４によって検出する外力とに基づいて、コンプライアンス制御を行うようにしてもよい。この場合には、コンプライアンス制御では、受けた力の方向に把持部１３を自動的に変位させ、なじませるための把持部１３の目標とする位置・姿勢を算出する（ここでは、当該目標位置・姿勢に応じて目標値を修正する）。さらにまた、修正した目標値に基づいて、マスターアームのアーム部１２及び把持部１３を同時に移動させてもよいし、把持部１３のみを移動させるようにしてもよい。即ち、修正した目標値に基づいて、マスターアームの把持部１３のみを対象物２０に倣うように移動させてもよい。把持部１３自体にこのようなコンプライアンス制御を行わせることで、多少の外乱についてはマスターアームの把持部１３のみを移動させることによって吸収することができる。このため、アーム部１２全体の目標値を修正する必要がなく、大きな回避動作を伴わずに容易に運搬動作を継続することができる。
【００５９】
このようなコンプライアンス制御の適用により、アームは手先（把持部１３）と対象物２０における接触点との間に仮想的なバネダンパがあるかのようにふるまう。また、外力検知部１４により検出され、制御部へと入力する外力にセンサノイズ等の誤差要因が含まれている場合には、カルマンフィルタを設けて入力される外力を推定し、推定結果をコンプライアンス制御の入力としてもよい。
【００６０】
以上に説明したように、本実施の形態にかかるロボット１は、アーム部１２に設けられた把持部１３によって対象物２０を把持し、当該対象物２０を目標位置・姿勢まで移動させる。移動の際、ロボット１のアームのうち、一方のアームをマスターアームとし、他方のアームをスレーブアームとしたとき、マスターアーム制御部３１によりマスターアームを対象物２０の目標位置・姿勢に向けての軌道に沿って動くように制御すると共に、スレーブアーム制御部３２により対象物２０を介してスレーブアームの把持部１３Ｓに作用する外力を検知し、当該外力に基づいて、スレーブアームをマスターアームに追従して動くように制御する。即ち、２本のアームの把持部１３により対象物２０を把持して、一方のアームは対象物２０の目標軌道に沿って動作すると共に、他方のアームは当該アームに作用する外力を検知して追従動作を行う。
【００６１】
従来技術では、スレーブアームは重力方向のみに対象物２０を支持しており、また、スレーブアーム用の軌道を別途独立に算出し、当該軌道に従ってそれぞれのアームを移動させている。このため、マスターアームに対してスレーブアームが遅れた場合には、アーム間の誤差の発生を抑制又は吸収することは困難であり、対象物２０を把持し続けることができないという虞がある。一方、本実施の形態にかかるロボット１では、スレーブアームは、重力方向に限らず全方向に対して対象物２０をしっかりと握ることで、安定して対象物２０を運搬することができると共に、対象物２０を介してスレーブアームの把持部１３Ｓに作用する外力を正確に検知することができる。このため、対象物２０を介して検出する外力に基づいて、スレーブアームをマスターアームの動作に追従させることで、スレーブアームの遅れによる相対誤差の発生を抑制・吸収することができる。従って、マスターアームの動作に対してスレーブアームが遅れた場合においても、支障なく円滑に運搬作業を継続することができる。
【００６２】
その他の実施の形態．
発明の実施の形態１は、移動手段として車輪などを有するロボットに本発明を適用した一例を示したが、これに限定されず、ロボットは足を有し、自律歩行可能な移動ロボットであってもよい。また、アーム部１２の先端に設けられた把持部１３は、物体の把持に限定されず、例えば物体の塗装、溶接など所定の動作を行うようにしてもよい。
【００６３】
また、上述の実施の形態においては、外力検知部は、力センサにより検出される外力によって把持部１３が受ける外力を検知するものとしたが、本発明はこれに限定されない。例えば、各関節のモータを駆動する駆動電流値から、把持部１３に作用する外力を検知してもよい。さらに、力センサを用いず、各関節の角速度から、把持部１３に作用する外力を検知してもよい。また、駆動電流値や、関節角速度による推定値を、力センサでの検出値を検証するために用いてもよい。
【００６４】
さらにまた、上述の実施の形態においては、アーム制御部がアーム部１２及び把持部１３の各関節の制御を行うものとしたが、把持部１３の制御は、アーム制御部による制御から独立して制御されるものとしてもよいし、アーム部１２の動きに合わせて制御されるものとしてもよい。例えば、アーム制御部３１４、３２２とは独立した把持部制御部を備え、把持部制御部は、目標値に従って、把持部１３を制御する。より具体的には、把持制御部からの駆動信号によって、把持部１３に設けられた各関節が、所定の駆動速度で駆動する。把持部１３が、目標とする位置・姿勢まで移動すると、各関節の駆動が停止する。
【００６５】
また、上述の実施の形態においては、マスターアームについてのみ手先軌道を与えるものとしたが本発明はこれに限定されない。即ち、マスターアームの手先軌道に加えて、スレーブアームの手先軌道を算出してもよい。スレーブアームについての手先軌道を算出することで、当該スレーブアームの手先軌道上の目標位置・姿勢とスレーブアームの把持部１３Ｓの現在位置・姿勢とに基づいて、スレーブアームが手先軌道に沿って動作しているか否かを容易に判定することができる。即ち、マスターアームの動作に対するスレーブアームの遅れをより精度良く検出することができる。
【００６６】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態にかかるロボットの構成を示す構成図である。
【図２】本発明の実施の形態にかかるロボットが有する制御系のブロック構成図である。
【図３】本発明の実施の形態にかかるロボットによる制御処理の処理内容を示すフローチャートである。
【図４】本発明の実施の形態にかかるロボットによるマスターアーム選択処理を説明するための図である。
【図５】本発明の実施の形態にかかるロボットによるマスター・スレーブ制御処理の処理内容を示すフローチャートである。
【符号の説明】
【００６８】
１  ロボット、
１０  本体部、１１  制御部、
１２  アーム部、１３  把持部、１４  外力検知部、
２０  対象物、
３０  マスターアーム選択部、
３１  マスターアーム制御部、
３１１  軌道計画部、
３１２  目標値生成部、３１３  目標値修正部、
３１４  アーム制御部、
３２  スレーブアーム制御部、
３２１  目標値生成部、３２２  アーム制御部、
５０  目標軌道
【図１】
2009018380.tif 000003
【図２】
2009018380.tif 000004
【図３】
2009018380.tif 000005
【図４】
2009018380.tif 000006
【図５】
2009018380.tif 000007