(57)【要約】【課題】  状況に応じて、振動による影響を抑止した高精度での制御を行うロボット、ロボットの制御装置及びロボットの制御方法等を提供すること。【解決手段】  ロボット１００は、エンドエフェクター１２０が設けられるアーム１１０と、アーム１１０の振動を検出するセンサー１３０と、アーム１１０の制御を行う制御部１４０を含み、制御部１４０は、アーム１１０に第１の工程を行わせ、センサー１３０からのセンサー情報に基づいて、アーム１１０の振動が所与の閾値以下であるか否かを判定し、振動が閾値以下であると判定されたことを条件に、アーム１１０に第２の工程を行わせる。【選択図】      図１
2017154221.tif 000002
【特許請求の範囲】
【請求項１】
エンドエフェクターが設けられるアームと、
前記アームの振動を検出するセンサーと、
前記アームの制御を行う制御部と、
を含み、
前記制御部は、
前記アームに第１の工程を行わせ、前記センサーからのセンサー情報に基づいて、前記アームの前記振動が所与の閾値以下であるか否かを判定し、前記振動が前記閾値以下であると判定されたことを条件に、前記アームに第２の工程を行わせる制御を行うことを特徴とするロボット。
【請求項２】
請求項１に記載のロボットにおいて、
前記制御部は、
前記第１の工程を終了し、前記アームを動作させるアクチュエーターを停止させた後に、前記センサー情報に基づいて、前記アームの前記振動が前記閾値以下であるか否かを判定し、
前記振動が前記閾値以下であると判定されたことを条件に、前記アームに前記第２の工程を行わせる制御を行うことを特徴とするロボット。
【請求項３】
請求項１に記載のロボットにおいて、
前記制御部は、
前記第１の工程の終了判定期間において、前記アームを動作させるアクチュエーターの制御量を、前記終了判定期間以前の前記制御量に比べて小さくするとともに、前記センサー情報に基づいて、前記アームの前記振動が前記閾値以下であるか否かを判定し、
前記振動が前記閾値以下であると判定されたことを条件に、前記アームに前記第２の工程を行わせる制御を行うことを特徴とするロボット。
【請求項４】
請求項１乃至３のいずれか一項に記載のロボットにおいて、
前記アームは、固定部により他の部材と固定され、
前記制御部は、
前記エンドエフェクターと前記固定部との距離に基づいて、前記閾値を変更する制御を行うことを特徴とするロボット。
【請求項５】
請求項１乃至３のいずれか一項に記載のロボットにおいて、
前記アームは、固定部により他の部材と固定され、
前記制御部は、
前記第１の工程の開始後、前記第２の工程の終了前の少なくとも一部の期間において、前記アームのうち、前記固定部よりも前記エンドエフェクター側の所与の位置を、固定物に接触させる制御を行うことを特徴とするロボット。
【請求項６】
請求項１乃至３のいずれか一項に記載のロボットにおいて、
第２のエンドエフェクターが設けられる第２のアームをさらに含み、
前記アームは、固定部により他の部材と固定され、
前記制御部は、
前記第１の工程の開始後、前記第２の工程の終了前の少なくとも一部の期間において、前記アームのうち、前記固定部よりも前記エンドエフェクター側の所与の位置を、前記第２のアームにより保持させる制御を行うことを特徴とするロボット。
【請求項７】
請求項６に記載のロボットにおいて、
前記第２のアームは、第２の固定部により他の部材と固定され、
前記制御部は、
前記第１の工程の開始後、前記第２の工程の終了前の少なくとも一部の期間において、前記第２のアームのうち、前記第２の固定部よりも前記第２のエンドエフェクター側の所与の位置を、固定物に接触させる制御を行うことを特徴とするロボット。
【請求項８】
請求項１乃至３のいずれか一項に記載のロボットにおいて、
第２のアームをさらに含み、
前記制御部は、
前記第１の工程の開始後、前記第２の工程の終了前の少なくとも一部の期間において、前記第２のアーム又は前記第２のアームに設けられる第２のエンドエフェクターの所与の位置を、固定物に接触させる制御を行うことを特徴とするロボット。
【請求項９】
請求項１乃至３のいずれか一項に記載のロボットにおいて、
第２のアームをさらに含み、
前記制御部は、
前記センサー情報に基づいて、前記アームの前記振動として、前記第２のアームの第２の振動との相対的な振動を表す差分情報を求め、前記差分情報が所与の閾値以下であると判定されたことを条件に、前記第２の工程を行わせる制御を行うことを特徴とするロボット。
【請求項１０】
請求項１乃至９のいずれか一項に記載のロボットにおいて、
前記第２の工程は、前記第１の工程に比べて、前記アームに設けられる前記エンドエフェクターの移動速度が小さい工程であることを特徴とするロボット。
【請求項１１】
請求項１乃至９のいずれか一項に記載のロボットにおいて、
前記第２の工程は、対象物に対する作業を行う工程であり、
前記第１の工程は、前記アームを前記作業の開始位置姿勢に移動させる工程であることを特徴とするロボット。
【請求項１２】
請求項１１に記載のロボットにおいて、
前記作業は、組み付け作業であることを特徴とするロボット。
【請求項１３】
請求項１乃至１２のいずれか一項に記載のロボットにおいて、
前記センサーは、前記振動の情報として角速度情報を検出するジャイロセンサーであることを特徴とするロボット。
【請求項１４】
請求項１３に記載のロボットにおいて、
前記振動の情報は、前記角速度情報に基づく前記振動の振幅を含むことを特徴とするロボット。
【請求項１５】
第１のアームと、
第２のアームと、
前記第１のアーム及び前記第２のアームの振動を検出するセンサーと、
前記第１のアーム及び前記第２のアームの制御を行う制御部と、
を含み、
前記制御部は、
前記第１のアーム及び前記第２のアームにより協調作業を行う場合において、前記センサーにより検出された前記第１のアームの第１の振動と、前記第２のアームの第２の振動との差分情報を求め、前記差分情報が所与の閾値以下であると判定されたことを条件に、前記協調作業を行わせる制御を行うことを特徴とするロボット。
【請求項１６】
ロボットのアームの振動を検出するセンサーからのセンサー情報を取得するセンサー情報取得部と、
前記アームの制御を行う制御部と、
を含み、
前記制御部は、
前記アームに第１の工程を行わせ、前記センサーからのセンサー情報に基づいて、前記振動が所与の閾値以下であるか否かを判定し、前記振動が前記所与の閾値以下であると判定されたことを条件に、前記アームに第２の工程を行わせる制御を行うことを特徴とするロボットの制御装置。
【請求項１７】
アームを有するロボットの制御方法であって、
前記アームに第１の工程を行わせ、
前記アームの振動を検出するセンサーからのセンサー情報を取得し、
前記センサー情報に基づいて、前記アームの前記振動が所与の閾値以下であるか否かを判定し、
前記振動が前記所与の閾値以下であると判定されたことを条件に、前記アームに第２の工程を行わせる制御を行う、
ことを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボットの制御装置及びロボットの制御方法等に関する。
【背景技術】
【０００２】
従来、アームを有するロボットに種々の動作を行わせる手法が知られている。ロボットに所望の動作を行わせるためには、アームを狙った位置に精度よく移動させる必要がある。例えば、アームに設けられるハンドにより第１のワークを把持し、把持した第１のワークを第２のワークに組み付ける作業を行う場合であれば、第１のワークを第２のワークの組み付け位置まで正確に移動させる必要がある。そのためには、第１のワークを把持するハンドを、精度よく移動させなくてはならない。
【０００３】
しかし、ハンドが所望の位置姿勢となることが期待されるアームの制御（例えば各関節角の制御）を行ったとしても、ハンドが当該所望の位置姿勢で安定しない場合がある。例えば、アームに振動が生じた場合、ハンドの位置姿勢は一定とならず、変動してしまう。振動によりハンドの位置がぶれてしまうと、組み付けのような高い精度が要求される作業を実行することは困難である。
【０００４】
これに対して、特許文献１では、ブレ（振動）を検出し、ブレが大きかった場合にはフィードバック制御を行うことでブレを停止させる手法が開示されている。また、特許文献２には、地震等の振動を検出し、振動が大きい場合にはロボットを停止させる手法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−７１７６７号公報
【特許文献２】特開２０１４−２２６７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、振動が大きいことが問題となるのは、高い精度が要求される作業を実行する場合である。逆に言えば、精度がさほど必要でない作業を行うのであれば、振動している状況であっても当該作業を実行してしまって問題ない。すなわち、振動の抑制を図るか否かは、ロボットにより実行する工程（動作、作業）に依存する。
【０００７】
しかし、特許文献１はブレの大きさに応じて制振を行う手法を開示するのみであり、ロボットにより実行する工程、作業内容を考慮していない。また、特許文献２は地震等の異常発生時に動作を停止する手法であり、動作を実行（継続）するための振動検出手法とは根本的に異なる。
【０００８】
本発明の幾つかの態様によれば、状況に応じて、振動による影響を抑止した高精度での制御を行うロボット、ロボットの制御装置及びロボットの制御方法等を提供できる。
【課題を解決するための手段】
【０００９】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または態様として実現することが可能である。
【００１０】
本発明の一態様は、エンドエフェクターが設けられるアームと、前記アームの振動を検出するセンサーと、前記アームの制御を行う制御部と、を含み、前記制御部は、前記アームに第１の工程を行わせ、前記センサーからのセンサー情報に基づいて、前記アームの前記振動が所与の閾値以下であるか否かを判定し、前記振動が前記閾値以下であると判定されたことを条件に、前記アームに第２の工程を行わせる制御を行うロボットに関係する。
【００１１】
本発明の一態様では、複数の工程から構成される動作を実行する場合に、制御部は、アームの振動が閾値以下と判定されたことを条件に第２の工程を実行する。これにより、第２の工程における振動の影響を抑止することができ、所望の工程を精度よく実行すること等が可能になる。
【００１２】
また、本発明の一態様では、前記制御部は、前記第１の工程を終了し、前記アームを動作させるアクチュエーターを停止させた後に、前記センサー情報に基づいて、前記アームの前記振動が前記閾値以下であるか否かを判定し、前記振動が前記閾値以下であると判定されたことを条件に、前記アームに前記第２の工程を行わせる制御を行ってもよい。
【００１３】
これにより、第１の工程の完了後に、振動が閾値以下であるかの判定を行うことが可能になる。
【００１４】
また、本発明の一態様では、前記制御部は、前記第１の工程の終了判定期間において、前記アームを動作させるアクチュエーターの制御量を、前記終了判定期間以前の前記制御量に比べて小さくするとともに、前記センサー情報に基づいて、前記アームの前記振動が前記閾値以下であるか否かを判定し、前記振動が前記閾値以下であると判定されたことを条件に、前記アームに前記第２の工程を行わせる制御を行ってもよい。
【００１５】
これにより、第１の工程内の終了判定期間に、振動が閾値以下であるかの判定を行うことが可能になる。
【００１６】
また、本発明の一態様では、前記アームは、固定部により他の部材と固定され、前記制御部は、前記エンドエフェクターと前記固定部との距離に基づいて、前記閾値を変更してもよい。
【００１７】
これにより、アームの振動しやすさに応じて適切な閾値を設定することが可能になる。
【００１８】
また、本発明の一態様では、前記アームは、固定部により他の部材と固定され、前記制御部は、前記第１の工程の開始後、前記第２の工程の終了前の少なくとも一部の期間において、前記アームのうち、前記固定部よりも前記エンドエフェクター側の所与の位置を、固定物に接触させる制御を行ってもよい。
【００１９】
これにより、アームの振動を抑制し、アームの高精度での動作が可能になる。
【００２０】
また、本発明の一態様では、第２のエンドエフェクターが設けられる第２のアームをさらに含み、前記アームは、固定部により他の部材と固定され、前記制御部は、前記第１の工程の開始後、前記第２の工程の終了前の少なくとも一部の期間において、前記アームのうち、前記固定部よりも前記エンドエフェクター側の所与の位置を、前記第２のアームにより保持させる制御を行ってもよい。
【００２１】
これにより、アームの振動を抑制し、アームの高精度での動作が可能になる。
【００２２】
また、本発明の一態様では、前記第２のアームは、第２の固定部により他の部材と固定され、前記制御部は、前記第１の工程の開始後、前記第２の工程の終了前の少なくとも一部の期間において、前記第２のアームのうち、前記第２の固定部よりも前記第２のエンドエフェクター側の所与の位置を、固定物に接触させる制御を行ってもよい。
【００２３】
これにより、第２のアームの振動も抑制されるため、アームの振動の抑制効果を高めることが可能になる。
【００２４】
また、本発明の一態様では、第２のアームをさらに含み、前記制御部は、前記第１の工程の開始後、前記第２の工程の終了前の少なくとも一部の期間において、前記第２のアーム又は前記第２のアームに設けられる第２のエンドエフェクターの所与の位置を、固定物に接触させる制御を行ってもよい。
【００２５】
これにより、アームの振動を抑制し、アームの高精度での動作が可能になる。
【００２６】
また、本発明の一態様では、第２のアームをさらに含み、前記制御部は、前記センサー情報に基づいて、前記アームの前記振動として、前記第２のアームの第２の振動との相対的な振動を表す差分情報を求め、前記差分情報が所与の閾値以下であると判定されたことを条件に、前記第２の工程を行わせる制御を行ってもよい。
【００２７】
これにより、複数のアームを用いて第１の工程、第２の工程を実行する場合に、相対的な振動が閾値以下と判定されたことを条件に、第２の工程を実行することが可能になる。
【００２８】
また、本発明の一態様では、前記第２の工程は、前記第１の工程に比べて、前記アームに設けられる前記エンドエフェクターの移動速度が小さい工程であってもよい。
【００２９】
これにより、第２の工程を精度よく実行すること等が可能になる。
【００３０】
また、本発明の一態様では、前記第２の工程は、対象物に対する作業を行う工程であり、前記第１の工程は、前記アームを前記作業の開始位置姿勢に移動させる工程であってもよい。
【００３１】
これにより、対象物に対する作業を行う工程を、開始位置姿勢までの移動工程に比べて高い精度で実行することが可能になる。
【００３２】
また、本発明の一態様では、前記作業は、組み付け作業であってもよい。
【００３３】
これにより、組み付け作業を高い精度で実行することが可能になる。
【００３４】
また、本発明の一態様では、前記センサーは、前記振動の情報として角速度情報を検出するジャイロセンサーであってもよい。
【００３５】
これにより、角速度情報を検出するジャイロセンサーにより、アームの振動を判定することが可能になる。
【００３６】
また、本発明の一態様では、前記振動の情報は、前記角速度情報に基づく前記振動の振幅を含んでもよい。
【００３７】
これにより、アームの振動の判定を、ジャイロセンサーからの角速度情報に基づく振動の振幅を用いて行うことが可能になる。
【００３８】
本発明の他の態様は、第１のアームと、第２のアームと、前記第１のアーム及び前記第２のアームの振動を検出するセンサーと、前記第１のアーム及び前記第２のアームの制御を行う制御部と、を含み、前記制御部は、前記第１のアーム及び前記第２のアームにより協調作業を行う場合において、前記センサーにより検出された前記第１のアームの第１の振動と、前記第２のアームの第２の振動との差分情報を求め、前記差分情報が所与の閾値以下であると判定されたことを条件に、前記協調作業を行わせる制御を行うロボットに関係する。
【００３９】
本発明の他の態様では、制御部は、複数のアームにより協調作業を行う場合において、各アームの振動の差分情報が閾値以下であると判定されたことを条件に協調作業を実行する。これにより、協調作業に影響を与える振動の状態を考慮して、協調作業を高い精度で実行すること等が可能になる。
【００４０】
本発明の他の態様は、ロボットのアームの振動を検出するセンサーからのセンサー情報を取得するセンサー情報取得部と、前記アームの制御を行う制御部と、を含み、前記制御部は、前記アームに第１の工程を行わせ、前記センサーからのセンサー情報に基づいて、前記振動が所与の閾値以下であるか否かを判定し、前記振動が前記所与の閾値以下であると判定されたことを条件に、前記アームに第２の工程を行わせる制御を行うロボットの制御装置に関係する。
【００４１】
本発明の他の態様は、アームを有するロボットの制御方法であって、前記アームに第１の工程を行わせ、前記アームの振動を検出するセンサーからのセンサー情報を取得し、前記センサー情報に基づいて、前記アームの前記振動が所与の閾値以下であるか否かを判定し、前記振動が前記所与の閾値以下であると判定されたことを条件に、前記アームに第２の工程を行わせる制御を行うロボットの制御方法に関係する。
【図面の簡単な説明】
【００４２】
【図１】本実施形態に係るロボットのシステム構成例。
【図２】第１の工程の説明図。
【図３】第２の工程の説明図。
【図４】本実施形態に係るロボットの構造の例。
【図５】本実施形態に係るロボットの他の構造の例。
【図６】第１の工程から第２の工程への移行を説明する図。
【図７】第１の工程から第２の工程への移行を説明する他の図。
【図８】整流波形に基づいて閾値判定を行う変形例の説明図。
【図９】固定部とエンドエフェクターとの距離が遠い場合の例。
【図１０】固定部とエンドエフェクターとの距離が近い場合の例。
【図１１】アームの一部を固定物に接触させる手法の説明図。
【図１２】アームの一部を第２のアームにより保持する手法の説明図。
【図１３】アームの一部を第２のアームにより保持し、且つ、第２のアームの所与の位置を固定物に接触させる手法の説明図
【図１４】第２のアームの所与の位置を固定物に接触させる手法の説明図。
【図１５】アームと第２のアームを用いた協調作業の例。
【図１６】アームと第２のアームを用いた協調作業の他の例。
【発明を実施するための形態】
【００４３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４４】
１．本実施形態の手法
まず本実施形態の手法について説明する。近年、ロボットに精密な作業を行わせる場面が増えている。例えば、電子部品の組み立てを行う場合、基板に設けられたミリメートル単位、或いはそれよりも小さい穴に、棒状のパーツを差し込む作業をロボットに行わせる。この場合、穴の位置とパーツの位置のずれが大きいと組み付けに失敗するため、パーツを規定の位置まで適切に移動する制御をロボットに実行させなくてはならない。
【００４５】
例えば、アームの先端（エンドポイント）にハンド（広義にはエンドエフェクター）が設けられるロボットの場合、ハンドによりパーツを把持し、基板の穴に差し込む作業を行う。つまりハンドを狙った位置に適切に移動させることが重要となる。
【００４６】
アームが複数の関節を有する場合、各関節の角度を設定すれば、ハンドの位置はフォワードキネマティクスにより一意に決定される。例えば、複数のフレームが関節を介して接続される７自由度のアームの場合、７つの関節角の組（θ１，θ２，θ３，θ４，θ５，θ６，θ７）が決定されれば、関節の位置やフレーム長に基づいて、ハンドの位置姿勢（ｘ，ｙ，ｚ，ｕ，ｖ，ｗ）を一意に決定できる。なお、ｘｙｚはＸ軸、Ｙ軸、Ｚ軸による直交座標系における各座標値であり、ｕｖｗは各軸回りの回転角を表す。制御の手順としては、例えば所望のハンド位置姿勢を決定し、インバースキネマティクスにより当該ハンド位置姿勢を実現するための関節角の値の組を求め、各関節が求められた角度となるような信号を、各関節を動作させるアクチュエーターに出力することで、ハンドを所望の位置姿勢に移動させればよい。
【００４７】
しかし、実際のロボットは種々の力を受けるため、所望の関節角を実現するための制御を実行したとしても、ハンドは所望の位置姿勢で安定するとは限らない。なぜなら、アーム（アームを構成する複数のフレーム）自体や、アームに設けられるエンドエフェクターは質量を有するため、ハンドの位置姿勢は、重力による影響を受ける。また、アームの移動には加速（減速）を伴うため、ハンドの位置姿勢は、慣性力による影響も受ける。結果として、関節に所与の角度となるような制御信号を出力したはずなのに、当該所与の角度にならなかったり、フレームがたわんでしまったりすることで、ハンドの位置姿勢にずれが生じる。具体的には、ハンドが所望の位置姿勢の周辺で振動してしまう。関節角のずれやフレームの変形が生じないような剛性の高い構成とすることで振動を抑制できるが、コストが増大するし、振動の完全な抑制は現実的には困難である。
【００４８】
これに対して、特許文献１では、ブレに応じたフィードバック制御を行うことで、ブレを抑制する手法が開示されている。しかし特許文献１は振動が大きいときに振動を抑制する手法を開示しているに過ぎず、ロボットの動作、作業内容を考慮していない。
【００４９】
ロボットに対して一連の動作を行わせる場合、高精度での制御が必要な場面もあれば、比較的低精度でも問題が生じにくい場面もある。上記の基板にパーツを差し込む例の場合、パレット上に配置されていたパーツをハンドで把持した後、ハンドを穴の位置まで直接的に移動させることは一般的ではない。この場合、まずハンドをある程度基板に近いアプローチ開始位置（例えば穴のほぼ真上）まで移動させ、そこから穴に向かってアプローチを行う。このようにすれば、実際にパーツを穴に差し込む作業では、ハンドをほぼ真下方向に移動させればよく、実現が容易となるためである。
【００５０】
以上の例であれば、ハンドをアプローチ開始位置まで移動させている間は、穴のような非常に狭い領域がゴールとなるわけではないため、振動がある程度生じていても問題とならない。一方、アプローチ開始位置から穴に向かってアプローチを行っている間は、振動を小さく抑えなければ、パーツが穴に入らないおそれが出てくる。
【００５１】
また、基板をロボットの作業エリアに持ってくる給材作業では、位置決め治具を用いればハンドが振動していても基板を所望位置に精度よく配置できる。或いはパーツ差し込み後の完成基板を作業エリアから除く除材作業では、除材用パレットの任意の位置に完成基板を置けばよいことも多く、その場合、多少の振動は問題とならない。ただし、給材作業、除材作業においても、位置決め治具を使用できなかったり、決められた位置に高精度で配置しないとそれ以降の作業に支障を来す場合には、振動の抑止が必要となる。
【００５２】
以上のように、ロボットの動作では状況に応じて振動が問題となる場合、ならない場合がある。特許文献１の手法を常時実行した場合、振動があってもよい場面で振動抑制用の制御が実行されるため、不要な処理により作業時間が増大したり、消費電力が増大してしまう。特に、特許文献１はフィードバック制御により振動と逆方向の移動をするようにアクチュエーターを制御するため、部品の磨耗が激しく、不要な場面での振動抑制は好ましくない。
【００５３】
そこで本出願人は、ロボットの動作状況を考慮した振動検出を行う手法を提案する。本実施形態に係るロボット１００は、図１に示したように、エンドエフェクター１２０が設けられるアーム１１０と、アーム１１０の振動を検出するセンサー（センサー部、センサーユニット）１３０と、アーム１１０の制御を行う制御部１４０を含む。そして制御部１４０は、アーム１１０に第１の工程と第１の工程の次の第２の工程を行わせる場合に、センサー１３０からのセンサー情報に基づいて、アーム１１０の振動が所与の閾値以下であるか否かを判定し、振動が閾値以下であると判定されたことを条件に、アーム１１０に第２の工程を行わせる制御を行う。
【００５４】
ここで、第１の工程及び第２の工程とは、ロボット１００がアーム１１０を用いて実行する動作の一部を表す。すなわちロボット１００の一連の動作は複数の工程により構成され、当該複数の工程を所定の順序で実行することで、上記一連の動作が実現される。
【００５５】
また、ここでの振動とは、第１の工程に伴って発生する種々の振動を含む。例えば移動による加速減速に伴う振動や、アクチュエーターを可動することによる機械的な振動、アーム１１０等が何らかの物体に衝突することによる振動等を含む。また、ここでの振動は第１の工程に伴う振動に限定されるものではなく、例えば地震により発生するロボット１００全体の振動であってもよい。
【００５６】
このようにすれば、少なくとも第２の工程を開始するタイミングにおいて、振動の大きさが閾値よりも小さくなることが保証される。つまり、第２の工程として精度の高い作業を行う場合にも、振動の影響を抑止し、所望の作業を適切に実現することが可能になる。なお、後述するように第２の工程でのアーム１１０（具体的にはアーム１１０に設けられるエンドエフェクター１２０）の移動速度は、第１の工程に比べて小さいことが想定される。そのため、第２の工程での移動に伴い発生する振動は、第１の工程での移動に伴い発生する振動に比べて小さい。つまり、第２の工程の開始時点で振動が閾値以下となっていれば、それ以降のアーム１１０の移動に伴い発生する振動は問題にならない程度に小さいと考えてよい。
【００５７】
また、第２の工程以外の工程であって、高い精度が求められない工程については、振動が閾値以下であることを開始条件としないことも可能である。つまり、不要な振動判定の実行を抑止することも可能である。
【００５８】
具体的には、本実施形態における第２の工程は、対象物（被作業物、ワーク）に対する作業を行う工程であり、第１の工程は、アーム１１０を前記作業の開始位置姿勢に移動させる工程であってもよい。そして、第２の工程における作業は、組み付け作業であってもよい。
【００５９】
対象物に対する作業は比較的高い精度が求められる。特に組み付け作業では２以上の部品を組み合わせて１つの完成品を構成する。完成状態での各部品の相対的な位置関係が決定されているため、組み付け作業では当該位置関係を実現する必要があり、高精度の制御が必要となる。特に、穴に棒状部材を差し込む場合、挿入方向が限定されるように、組み付け方向、組み付け角度等が制限される場合も多く、精度が低いと組み付け作業は失敗する可能性が高い。例えば上述した部品の差し込みの例であれば、アーム１１０が振動している場合には部品を所望の位置に差し込むことができない。或いは、ハンドによりドライバーを把持したり、ドライバー型のエンドエフェクターを用いてネジ締めを行う場合、ドライバーの先端がネジ山の位置となるように制御しなければネジを回転させることができない。それに対して、作業を開始する位置姿勢までの移動においては、多少ずれが生じても影響が少ない。
【００６０】
図２は第１の工程でのロボット１００の動きの例を示す図であり、図３は第２の工程でのロボット１００の動きの例を示す図である。実行したいロボット１００の動作は、図３に示したように、第１の対象物ＯＢ１の第２の対象物ＯＢ２への組み付けである。この場合、ロボット１００の動作は、第１の対象物ＯＢ１を把持して、第２の対象物ＯＢ２の近傍まで移動させる第１の工程（図２）と、図２の完了時の位置から、第１の対象物ＯＢ１を第２の対象物ＯＢ２に近づけていき、組付けを行う第２の工程（図３）により実現される。この２つの工程を比較した場合、第２の工程は第２の対象物ＯＢ２に対する第１の対象物ＯＢ１の相対位置を精度よく決定しなくてはならないが、第１の工程は比較的精度が必要ない。
【００６１】
また別観点から捉えると、本実施形態に係る第２の工程は、第１の工程に比べて、アーム１１０に設けられるエンドエフェクター１２０の移動速度が小さい工程であると考えることもできる。
【００６２】
第２の工程においてもアーム１１０を動かすことになるため、第２の工程でのロボット１００の動きに起因して、振動が発生する。この振動は、エンドエフェクター１２０の移動速度が大きいほど大きいと考えられる。つまり、精度が求められる工程では、エンドエフェクター１２０の移動速度は相対的に小さくする必要がある。逆に、精度が求められない工程では、エンドエフェクター１２０の移動速度を相対的に大きくすることで、工程完了までの時間を短縮することが可能になる。このように、振動が閾値以下であることを、エンドエフェクター１２０の移動速度が小さい工程の開始条件にすることで、高い精度が必要な工程に対する振動の影響を抑止することが可能になる。
【００６３】
以下、本実施形態に係るロボット１００等のシステム構成例を説明した後、第１の工程から第２の工程への具体的な移行例を説明する。さらに、振動の判定に用いる閾値を可変に設定する手法を説明し、最後にロボットとして双腕ロボット（より広義には多腕ロボット）を用いる場合の変形例について説明する。
【００６４】
２．システム構成例
ロボット１００の構成例は図１に示したとおりであり、ロボット１００は、エンドエフェクター１２０が設けられるアーム１１０と、センサー１３０と、制御部１４０と、センサー情報取得部１５０を含む。アーム１１０やエンドエフェクター１２０の具体例については図４や図５を用いて後述する。
【００６５】
センサー１３０は、少なくともアーム１１０の振動を検出する振動センサー（モーションセンサー）を含む。センサー１３０は、アーム１１０の振動の情報として角速度情報を検出するセンサーであってもよい。具体的には、センサー１３０は、角速度情報を検出するジャイロセンサーを含む。アーム１１０或いはエンドエフェクター１２０の振動は、角速度情報の時系列的な変化に現れる。よって角速度情報の値の大きさから振動の振幅がわかる。すなわち、ジャイロセンサーが検出する振動の情報とは、角速度情報に基づく振動の振幅を含む情報である。また制御部１４０は、時系列的に取得される角速度情報に対して、周波数解析を行うことで振動の周波数を求めることも可能である。ただし、振動を検出するセンサーはジャイロセンサーに限定されるものではなく、加速度センサー等を用いてもよいし、撮像センサーを用いて画像から振動を検出してもよいし、複数のセンサーを組み合わせてもよい。
【００６６】
また、振動センサーはアーム１１０を用いた動作に最も影響を与える振動を検出することが望ましいことを考えれば、アーム１１０のエンドエフェクター１２０に近い位置に設けるとよい。本実施形態では、図２に示すように、振動センサーを含むセンサー１３０は、アーム１１０のエンドエフェクター１２０に最も近いフレームの配置されている。より詳細には、エンドエフェクター１２０に最も近いフレームの先端側（エンドエフェクター１２０側）に配置されている。これに限らず、振動センサーを他のフレームに配置してもよいし、エンドエフェクター１２０に配置してもよい。また、１つのアーム１１０に対して複数の振動センサーを設けたり、ロボット１００の複数の位置に振動センサーを設ける等の変形実施も可能である。一例としては、図５のようなアーム１１０と胴体部２３０を有するロボット１００の場合、アーム１１０及び胴体部２３０にそれぞれ振動センサーを設けてもよい。このようにすれば、検出された振動がアーム１１０の移動に起因するアーム１１０の振動であるか、地震等によるロボット１００全体の振動であるかを区別することも可能になる。
【００６７】
センサー情報取得部１５０は、センサー１３０からのセンサー情報を取得する。センサー情報取得部１５０は、例えばセンサー１３０の出力であるアナログ信号に対して、増幅処理を行う増幅器や、Ａ／Ｄ変換処理を行うＡ／Ｄ変換器等のハードウェアとして実現される。或いは、センサー情報取得部１５０は、センサー１３０からの情報を通信により受信する受信処理部（通信部）として実現されてもよい。
【００６８】
制御部１４０は、アーム１１０やエンドエフェクター１２０等、ロボット１００の各部の制御を行う。具体的には、アーム１１０やエンドエフェクター１２０の移動経路の生成や、当該移動経路に沿った移動を行うための制御信号の出力等を行う。移動経路の生成は、例えば周囲環境のセンシング結果やユーザーからの入力に基づいて行う。また、移動のための制御信号とは、アーム１１０やエンドエフェクター１２０を駆動するアクチュエーター（図１には不図示）を動作させるための信号である。また、アーム１１０やエンドエフェクター１２０には不図示のエンコーダーが設けられ、制御部１４０はエンコーダーの情報に基づいて、アーム１１０やエンドエフェクター１２０の状態（角度、位置姿勢）を認識できる。
【００６９】
また、制御部１４０は、具体的な移動経路の生成のために、ロボット１００の一連の動作を工程分けして管理する。各工程は、「組み付け作業開始位置までの移動」、「組み付け作業」等、当該工程で実行すべき内容が規定されている。各工程を実現するための具体的な移動経路については、あらかじめ作り込まれていてもよいし、センシング結果等を用いて逐次生成してもよい。そして、制御部１４０では上述したように、第２の工程の開始条件として、アーム１１０の振動が閾値以下であるかの判定を行う。
【００７０】
図４は、本実施形態に係るロボット１００の構造例である。ロボット１００は、ロボット本体２００と、制御装置３００を含み、ロボット本体２００と制御装置３００とは、例えばケーブル１０により接続される。ただし、ロボット本体２００と制御装置３００との接続は有線に限定されず、無線接続でもよい。或いは、ロボット本体２００と制御装置３００は、ネットワークを介して接続してもよく、ネットワークはＷＡＮ（Wide Area Network）、ＬＡＮ（(Local Area Network）、近距離無線通信等、種々のネットワークを利用可能である。図１に示した制御部１４０及びセンサー情報取得部１５０は、制御装置３００に設けられる。
【００７１】
ロボット本体２００は、アーム１１０と、エンドエフェクター１２０と、台座部２１０とを含む。台座部２１０は床面、壁面、天井、作業台等に設置され、台座部２１０に対してアーム１１０が接続され、アーム１１０にエンドエフェクター１２０が設けられる。
【００７２】
図５は、本実施形態に係るロボット１００の他の構造例である。ロボット１００は、ロボット本体２００と、ベースユニット部４００を含んでもよい。ロボット本体２００は双腕ロボットであってもよく、頭部２２０、胴体部２３０、第１のアーム１１０、第２のアーム１１０−２を含む。図５では第１のアーム１１０は、関節１１１，１１２，１１３と、関節の間に設けられるフレーム１１４，１１５から構成され、第２のアーム１１０−２についても同様のものとしたがこれに限定されない。
【００７３】
ベースユニット部４００は、ロボット本体２００の下部に設けられ、ロボット本体２００を支持する。図５の例では、ベースユニット部４００には車輪等が設けられ、ロボット１００全体が移動可能な構成となっている。ただし、ベースユニット部４００が車輪等を持たず、床面等に固定される構成であってもよい。図５のロボットでは、ベースユニット部４００に制御装置３００が格納されることで、ロボット本体２００と制御装置３００とが一体として構成される。
【００７４】
なお、図４では１本のアーム１１０を有する単腕ロボットの例を示し、図５では２本のアーム（１１０、１１０−２）を有する双腕ロボットの例を示したが、本実施形態のロボットは３本以上のアームを有してもよい。また、図４の制御装置３００に対して、図４に示したロボット本体２００を複数接続することで、複数のアームを有するロボット１００を実現してもよい。その他、本実施形態に係るロボット１００の具体的な構造は種々の変形実施が可能である。
【００７５】
また、本実施形態の手法はロボット１００に適用するものには限定されず、ロボット１００の制御装置３００に適用してもよい。ロボット１００の制御装置３００は、ロボット１００のアーム１１０の振動を検出するセンサー１３０からのセンサー情報を取得するセンサー情報取得部１５０と、アーム１１０の制御を行う制御部１４０を含む。そして、制御部１４０は、アーム１１０に第１の工程を行わせ、センサー１３０からのセンサー情報に基づいて、振動が所与の閾値以下であるか否かを判定し、振動が所与の閾値以下であると判定されたことを条件に、アーム１１０に第２の工程を行わせる制御を行う。
【００７６】
本実施形態に係る制御装置３００は、ロボット本体２００の近傍に設けられてもよいし、距離的に離れた位置に設けられてもよい。例えば、制御装置３００は、１又は複数のロボット本体２００とネットワークを介して通信を行うサーバーシステムとして実現されてもよく、その場合、ロボット本体２００と制御装置３００との位置関係は限定されない。また、図４では単腕ロボットに接続される制御装置３００を示したが、本実施形態に係る制御装置３００は複数のアームを有するロボット１００を制御する制御装置であってもよい。
【００７７】
なお、本実施形態の制御装置３００は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態の制御装置３００が実現される。具体的には、非一時的な情報記憶装置に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶装置（コンピュータにより読み取り可能な装置）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶装置に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶装置には、本実施形態の各部としてコンピューター（センサー情報取得部、制御部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【００７８】
また、本実施形態の制御装置３００は、情報（例えばプログラムや各種のデータ）を記憶するメモリーと、メモリーに記憶された情報に基づいて動作するプロセッサーと、を含む。プロセッサーは、ロボット１００のアーム１１０の振動を検出するセンサー１３０からのセンサー情報を取得する処理と、アーム１１０の制御を行う。特にプロセッサは、アーム１１０に第１の工程と第１の工程の次の第２の工程を行わせる場合に、センサー１３０からのセンサー情報に基づいて、振動が所与の閾値以下であるか否かを判定し、振動が所与の閾値以下であると判定されたことを条件に、アーム１１０に第２の工程を行わせる制御を行う。
【００７９】
プロセッサーは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。プロセッサーは、例えばＣＰＵ（Central Processing Unit）であってもよい。ただしプロセッサーはＣＰＵに限定されるものではなく、ＧＰＵ（Graphics Processing Unit）、或いはＤＳＰ（Digital Signal Processor）等、各種のプロセッサーを用いることが可能である。またプロセッサーはＡＳＩＣ（Application Specific Integrated Circuit）によるハードウェア回路でもよい。メモリーは、例えばＳＲＡＭ、ＤＲＡＭなどの半導体メモリであってもよいし、レジスターであってもよいし、ハードディスク装置等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリーはコンピューターにより読み取り可能な命令を格納しており、当該命令がプロセッサーにより実行されることで、制御装置３００の各部の機能が実現されることになる。ここでの命令は、プログラムを構成する命令セットの命令でもよいし、プロセッサーのハードウェア回路に対して動作を指示する命令であってもよい。
【００８０】
本実施形態の動作は例えば以下のように実現される。プロセッサーは、センサー１３０からのセンサー情報を取得し、メモリーに記憶する。また、プロセッサーはメモリーからセンサー情報を読み出し、アームの振動が閾値以下であるかの判定を行い判定結果をメモリーに記憶する。さらにプロセッサーは、第２の工程の実行前に判定結果を読み出し、振動が閾値以下であるという判定結果が得られている場合に、第２の工程を実行する。
【００８１】
また、本実施形態の制御装置３００の各部は、プロセッサ上で動作するプログラムのモジュールとして実現される。例えば、センサー情報取得部１５０は、ロボット１００のアーム１１０の振動を検出するセンサー１３０からのセンサー情報を取得するセンサー情報取得モジュールとして実現される。制御部１４０は、アーム１１０の制御を行う制御モジュールとして実現され、制御モジュールは、アーム１１０に第１の工程と第１の工程の次の第２の工程を行わせる場合に、センサー１３０からのセンサー情報に基づいて、振動が所与の閾値以下であるか否かを判定し、振動が所与の閾値以下であると判定されたことを条件に、アーム１１０に第２の工程を行わせる制御を行う。
【００８２】
３．第１の工程から第２の工程への移行例
第１の工程から第２の工程へ移行する際の具体的な制御手順について２つの手法を説明する。ここでは図２、図３を用いて上述したように、第１の工程が作業開始位置まで移動する工程、第２の工程が作業開始位置から実際に対象物への作業を行う工程であるものとして説明する。
【００８３】
まず第１の手法としては、制御部１４０は、第１の工程を終了し、アーム１１０を動作させるアクチュエーターを停止させた後に、センサー情報に基づいて、アーム１１０の振動が閾値以下であるか否かを判定する。そして制御部１４０は、振動が閾値以下であると判定されたことを条件に、アーム１１０に第２の工程を行わせる制御を行う。
【００８４】
つまり、第１の手法では、第１の工程実行中には振動が閾値以下となるか否かは問わず、アーム１１０、エンドエフェクター１２０の作業開始位置までの移動、及び作業開始位置での停止を実行する。この場合、第１の工程の終了時には、それまで移動していたアーム１１０、エンドエフェクター１２０が停止するため、減速度が生じ、慣性により振動が発生する。そのため、第１の手法では第１の工程の終了後、即座に第２の工程を実行するのではなく待機期間を設ける。制御部１４０は、待機期間においてセンサー情報を用いて振動の監視を行う。待機期間ではアーム１１０、エンドエフェクター１２０の駆動を行わないため、振動は減衰していくことになり、時間経過により振動が閾値以下になることが期待される。制御部１４０は、待機期間において振動が閾値以下になったと判定された場合に、第２の工程を実行すればよい。
【００８５】
図６は、第１の手法におけるセンサー出力の時間変化例である。図６の横軸は時間を表し、縦軸はセンサー情報の値を表す。センサー１３０としてジャイロセンサーを用いる場合、縦軸は角加速度、或いは角加速度から求められる角速度等の情報である。また、ジャイロセンサーが多軸（例えば３軸）のジャイロセンサーである場合、閾値との判定は各軸ごとに行ってもよいし、１つの合成信号（例えば自乗和の平方根）を用いて行ってもよい。
【００８６】
図６のＡ１の範囲が第１の工程の実行期間に対応する。第１の工程では、アーム１１０、エンドエフェクター１２０の移動によりアーム１１０は大きく振動する。特に、第１の工程は精度よりも作業時間の短縮が重視される工程であるため、エンドエフェクター１２０の移動速度が相対的に大きく、振動は大きくなりやすい。
【００８７】
図６のＡ２がアーム１１０、エンドエフェクター１２０の作業開始位置への移動が完了し、第１の工程が終了したタイミングである。このタイミングで、制御部１４０は、アーム１１０やエンドエフェクター１２０を駆動するアクチュエーターを停止する。
【００８８】
図６のＡ３が待機期間に対応し、Ａ３の期間では、Ａ２での停止の減速度で生じた振動が、時間とともに減衰していく。ここでは、正の値であるＴｈ１と、負の値であるＴｈ２（狭義にはＴｈ２＝−Ｔｈ１）を閾値としている。よって制御部１４０は、センサー情報の値がＴｈ２以上、Ｔｈ１以下の範囲に収まっている場合に、振動が閾値以下であると判定する。具体的な判定手法は種々考えられるが、例えば制御部１４０は、センサー情報の波形のエンベロープ（包絡線）を求め、当該包絡線での値が、Ｔｈ１以下或いはＴｈ２以上となった場合に、振動が閾値以下と判定すればよい。包絡線は、ソフトウェア処理により求めてもよいし、広く知られた包絡線検波回路を用いて求めてもよい。
【００８９】
図６の例では、Ａ４のタイミングで振動が閾値以下となったため、制御部１４０は待機期間を終了し、Ａ４以降のＡ５の期間で第２の工程を実行する制御を行う。上述したように、高い精度が求められる第２の工程では、エンドエフェクター１２０の移動速度を小さく設定するため、移動による振動の発生は小さく抑えられる。
【００９０】
ただし、上記第１の手法では、第１の工程の完了時に移動していたアーム１１０、エンドエフェクター１２０を急停止することになる。そのため、図６のＡ２に示したように、第１の工程完了時にはある程度大きい振動が発生し、振動が閾値以下となるまでに時間を要するおそれがある。
【００９１】
第２の手法では、制御部１４０は、第１の工程の終了判定期間において、アーム１１０を動作させるアクチュエーターの制御量を、終了判定期間以前の制御量に比べて小さくするとともに、センサー情報に基づいて、アームの振動が前記閾値以下であるか否かを判定する。そして制御部１４０は、振動が閾値以下であると判定されたことを条件に、アームに第２の工程を行わせる制御を行う。
【００９２】
つまり第２の手法では、制御部１４０は、第１の工程完了後に振動の大きさを判定するのではなく、第１の工程内でアーム１１０、エンドエフェクター１２０の制御量を小さくしながら振動判定を行う。アクチュエーターの制御量とは、関節角の変化量に対応し、例えばアクチュエーターに対して出力される電流、電圧の大きさである。アクチュエーターの制御量を小さくすることで、エンドエフェクター１２０の移動速度が小さくなるため、第１の工程での作業開始位置までの移動においても、振動の大きさが小さくなっていくことが期待される。本実施形態では、アクチュエーターの制御量をそれ以前に比べて小さくし、且つ、センサー情報に基づく振動の判定を行う期間を終了判定期間を表記する。上述したように、終了判定期間は第１の工程の実行期間の一部である。そして、終了判定期間において振動が閾値以下になったと判定された場合に、第１の工程を終了するとともに、第２の工程を実行すればよい。
【００９３】
図７は、第２の手法におけるセンサー出力の時間変化例である。図６と同様に、図７の横軸は時間を表し、縦軸はセンサー情報の値を表す。
【００９４】
図７のＢ１の範囲が第１の工程の実行期間に対応し、そのうちのＢ１２が終了判定期間であり、Ｂ１１は終了判定期間以外の期間である。第１の工程のうちのＢ１１の期間では、アーム１１０、エンドエフェクター１２０の移動速度が大きいため、アーム１１０は大きく振動する。ただし、移動速度を大きくできる分、作業開始位置に短時間で近づくことが可能である。
【００９５】
第１の工程の終了判定期間（Ｂ１２）では、Ｂ１１の期間に比べてエンドエフェクター１２０の移動速度が小さくなるため、振動の度合いがＢ１１に比べて小さくなる。具体的な制御は種々考えられるが、例えば制御部１４０は、終了判定期間において時間とともにアクチュエーターの制御量を小さくしていってもよい。アクチュエーターの制御量が充分小さくなることで、アーム１１０の振動が閾値以下という条件を満たすことになると考えられる。
【００９６】
図７の例では、制御部１４０は、Ｂ２のタイミングで振動が閾値以下であると判定している。よって、Ｂ２のタイミングで第２の工程の実行が可能になる。ただし、第２の手法では振動が閾値以下となるタイミングＢ２では、アーム１１０、エンドエフェクター１２０が本来の目標位置（本来の作業開始位置）に到達していない可能性がある。
【００９７】
例えば制御部１４０は、タイミングＢ２でのアーム１１０、エンドエフェクター１２０の位置を、新たな作業開始位置として設定し、Ｂ２のタイミングで第１の工程の終了、及び第２の工程の開始を行う。つまり第２の工程を「作業開始位置から作業完了位置までを低速度で精度よく移動する作業」とし、作業開始位置を変更可能なプログラムにより実現しておく。この場合、Ｂ２のタイミングでのアーム１１０、エンドエフェクター１２０の位置を第２の工程における作業開始位置として入力することで、制御部１４０は第２の工程を実現するための具体的な移動経路の生成と、当該移動経路に沿った移動制御を実行することになる。図７はこの場合の例であり、Ｂ２のタイミングで第１の工程を終了し、第２の工程を開始している。第２の工程はＢ３に示した期間で実行される。
【００９８】
或いは、タイミングＢ２で第１の工程を終了せず、本来の作業開始位置までのアーム１１０、エンドエフェクター１２０の移動を行ってもよい。Ｂ２のタイミングにおいて振動が閾値以下となっているため、Ｂ２の時点での速度、或いはそれよりも小さい速度をエンドエフェクター１２０の移動速度とすれば、振動が閾値以下の状態を保ったまま、本来の作業開始位置までの移動が可能と考えられる。そして、本来の作業開始位置までエンドエフェクター１２０が移動できたタイミングで、第１の工程を終了し、第２の工程を開始すればよい。この場合、第２の工程は、本来の作業開始位置から作業完了位置までの移動を実現できればよく、動的な移動経路生成を行わなくてもよい。
【００９９】
なお、図６及び図７では、センサー情報の値と２つの閾値Ｔｈ１，Ｔｈ２の比較処理を行ったがこれには限定されない。例えば、図８に示したように、制御部１４０は、センサー情報を整流した整流波形を取得し、整流波形の包絡線と、閾値Ｔｈ３との比較を行ってもよい。制御部１４０は、包絡線の値がＴｈ３以下の場合に振動が閾値以下と判定する。
【０１００】
４．閾値の設定例
以上では、閾値を用いて振動の大小を判定する手法を説明した。ただし、この閾値は一定の値を用いるものには限定されず、状況に応じて値を可変としてもよい。閾値が相対的に小さい場合、振動が充分小さくならなければ振動が閾値以下という条件を満たさなくなる。よって、第２の工程を行う際に、より振動の影響を抑止した精度のよい制御が可能になるが、場合によっては第２の工程を開始するまでに時間がかかってしまうし、最悪の場合、第２の工程をいつまでも開始できないおそれがある。逆に、閾値が相対的に大きい場合、第２の工程開始時にある程度の振動を許容することになるため、精度は低下するが、第２の工程の開始は容易である。
【０１０１】
本実施形態では、このような閾値による特性の違いを考慮し、状況に応じた閾値設定を行う。具体的には、アーム１１０の安定度合いに基づいて閾値を設定する。アーム１１０が安定しており、振動が発生しにくい状況では、閾値を相対的に小さくする。このようにすれば、第２の工程の精度を高くできるし、振動が発生しにくい以上、第２の工程を実行できない可能性も低い。つまり、制御部１４０では精度を重視した制御を行う。
【０１０２】
一方、アーム１１０が不安定であり、振動が発生しやすい状況では、閾値を相対的に大きくする。このようにすれば、第２の工程を適切に実行でき、ロボット１００の動作時間の短縮化が可能になる。つまり、制御部１４０では作業速度を重視した制御を行う。
【０１０３】
さらに具体的には、アーム１１０は、固定部１６０により他の部材と固定され、制御部１４０は、エンドエフェクター１２０と固定部１６０との距離に基づいて、閾値を変更する制御を行う。
【０１０４】
具体例を図９、図１０に示す。図９、図１０は、図４に示した単腕ロボットを簡略化した図であり、アーム１１０と、エンドエフェクター１２０と、台座部２１０とを含む。図９、図１０では、アーム１１０は、台座部２１０と接続され固定される。よって、固定部１６０とは、狭義には、アーム１１０のうちの台座部２１０との接続部分Ｃ１となる。
【０１０５】
ただし、振動の要因としてアーム１１０のフレームの変形と、関節等の可動部の動きとが考えられるが、振動の主たる発生要因は可動部に起因するものである。つまり、アーム１１０のうち、最も接続部分Ｃ１に近い関節Ｃ４よりも接続部分側の構成（図９のＣ２）については、それ以外の構成（図９のＣ３）に比べて振動は充分小さいと考えてよい。よって本実施形態に係る固定部１６０とは、アーム１１０と他の部材の接続部分に限定せず、接続部分と当該接続部分に最も近い関節までの構成を含んでもよい。この場合、接続部分に最も近い関節の回転軸は、他の部材に対して固定された軸と捉えることができる。図９の例であれば、固定部１６０は、Ｃ１であってもよいし、Ｃ２であってもよい。
【０１０６】
ここでの他の部材とは、図４の台座部２１０や、図５の胴体部２３０であり、台座部２１０や胴体部２３０は、壁面、床面、天井、作業台等、アーム１１０に比べて振動の発生度合いが充分小さい部材と直接的又は間接的に接続される。或いは、アーム１１０が台座部２１０等を介さずに壁面等の振動発生度合いが小さい部材と接続される。いずれにせよ、アーム１１０のうちの固定部１６０についても、アーム１１０の他の部分に比べて振動が発生しにくい安定した部分と考えられる。
【０１０７】
そのため、アーム１１０の振動とは、固定部１６０を固定軸（回転軸）とする回転運動と捉えることが可能であり、固定部１６０とエンドエフェクター１２０の距離は、モーメントの大きさを決定するパラメーターとなる。つまり、固定部１６０とエンドエフェクター１２０の距離が大きいほど、アーム１１０、エンドエフェクター１２０は振動が発生しやすく、距離が小さいほど振動が発生しにくい。
【０１０８】
図９は固定部１６０とエンドエフェクター１２０の距離（Ｌ１）が相対的に大きい例であり、図１０は固定部１６０とエンドエフェクター１２０の距離（Ｌ２）が相対的に小さい例である。なお、図９、図１０では固定部１６０（固定軸）を関節Ｃ４の中心としたが、異なる変形実施が可能な点は上述したとおりである。
【０１０９】
図９の場合、固定部１６０とエンドエフェクター１２０の距離Ｌ１が比較的大きいため、閾値を大きくする。このようにしなければ、振動が閾値以下という条件を迅速に満たすことができず、作業時間が増大するおそれがある。図１０の場合、固定部１６０とエンドエフェクター１２０の距離Ｌ２が比較的小さいため、閾値を小さくする。このようにすれば、第２の工程の開始条件をより厳しくできるため、第２の工程の作業精度を高くできる。
【０１１０】
なお、ロボット１００の一連の動作を計画（プログラミング）する段階では、上記を考慮するとよい。すなわち、高い精度が求められる工程は、エンドエフェクター１２０と固定部１６０との距離を近くし、精度が低くてもよい工程は、エンドエフェクター１２０と固定部１６０との距離を問わない。ロボット１００は、多数のワークやツールを対象とするし、作業台やその近傍には、種々の治具や他のロボット１００等が配置される。理想的には、ロボット１００の全工程で、エンドエフェクター１２０と固定部１６０との距離を近くすればよいが、現実的には実現が困難な場面も多い。その場合、高い精度が必要か否かという観点から各工程でのロボット１００の位置姿勢を決定することで、状況に応じた適切な制御（適切な閾値設定）が可能になる。なお、固定部１６０は、他の部材に対してネジ止めやロック機構を用いて固定されることが想定され、その位置を柔軟に変更することは難しいことに鑑みれば、エンドエフェクター１２０の位置姿勢を状況に応じて決定することが望ましい。また、エンドエフェクター１２０と固定部１６０との距離を可変にするためには、固定部１６０に設けられる関節（図５の例では関節Ｃ４）とは異なる関節（図５の例では関節Ｃ５や関節Ｃ６）が必要となる。
【０１１１】
ただし、固定部１６０ほどの厳密な固定を行わなくても、簡易的にアーム１１０を固定してアーム１１０の安定度合いを高められる。具体的には、制御部１４０は図１１に示したように、アーム１１０のうち、固定部１６０よりもエンドエフェクター１２０側の所与の位置を、固定物ＯＢＦ１に接触させる制御を行う。
【０１１２】
ここで、固定物ＯＢＦ１とは、作業台であってもよいし、作業台上に配置される固定用治具であってもよいし、壁面、床面、天井面等であってもよく、アーム１１０に比べて振動しにくい種々の部材を用いることが可能である。
【０１１３】
このようにすれば、アーム１１０のうち、固定物ＯＢＦ１との接触点ＣＰ１は固定部１６０と同様に、振動が充分小さい部分と考えることができる。つまり、本来の固定部１６０でない接触点ＣＰ１（及びＣＰ１を含むフレームＦＲ１）の振動を抑制することで、アーム１１０の振動を抑制することが可能になる。なお、接触させる位置を固定部１６０よりもエンドエフェクター１２０側に限定しているのは、固定部１６０や、固定部１６０よりもエンドエフェクター１２０と反対側の位置はそもそも振動を考慮する必要がなく、そのような位置を接触させても、アーム１１０の安定化への寄与が低いためである。
【０１１４】
なお、接触させるタイミング、期間については種々の手法が考えられ、制御部１４０は、第１の工程の開始後、第２の工程の終了前の少なくとも一部の期間において、アーム１１０のうち、固定部１６０よりもエンドエフェクター１２０側の所与の位置を、固定物ＯＢＦ１に接触させる制御を行う。
【０１１５】
閾値を小さくし、第２の工程の開始条件を厳しくすることで精度を向上させるという観点からすれば、図６の待機期間Ａ３や、図７の終了判定期間Ｂ１２において、アーム１１０を固定物ＯＢＦ１に接触させるとよい。言い換えれば、制御部１４０は、第１の工程の終了後であって第２の工程の開始前の期間（待機期間）、又は、第１の工程の終了判定期間において、アーム１１０のうち、固定部１６０よりもエンドエフェクター１２０側の所与の位置を、固定物ＯＢＦ１に接触させる制御を行うとともに、接触させない場合に比べて閾値を小さくする制御を行う。
【０１１６】
或いは、高い精度が求められる第２の工程における振動軽減を図るという観点からすれば、第２の工程の実行期間（図６のＡ５、図７のＢ３）において、アーム１１０を固定物ＯＢＦ１に接触させるとよい。或いは、第１の工程を安定させることで待機期間や終了判定期間開始時の振動を軽減するという観点からすれば、図６のＡ１や図７のＢ１１の期間において、アーム１１０を固定物ＯＢＦ１に接触させるとよい。つまり、アーム１１０の一部を固定物ＯＢＦ１に接触させる期間は、種々の変形実施が可能である。
【０１１７】
５．双腕ロボットによるアームの安定化
また、図１１では単腕ロボットを例にとって、接触によりアーム１１０を安定させる手法を説明した。ただし、これらの手法は単腕ロボットに適用するものに限定されず、２本以上のアームを有するロボット１００に適用できる。
【０１１８】
例えば、複数のアームのうち、第１の工程及び第２の工程を実行するアーム１１０を、図１１に示したように固定物ＯＢＦ１に接触させればよい。この場合、複数のアームのうちの第１の工程及び第２の工程を実行しないアームについては、任意の動きが可能である。
【０１１９】
或いは、第１の工程及び第２の工程を実行しないアーム（以下、第２のアーム１１０−２とする）を用いて、第１の工程及び第２の工程を実行するアーム１１０の安定化を図ってもよい。具体的な手法を図１２〜図１４を用いて説明する。
【０１２０】
例えば制御部１４０は、図１２に示したように、アーム１１０のうち、固定部１６０よりもエンドエフェクター１２０側の所与の位置を、第２のアーム１１０−２により保持させる制御を行う。
【０１２１】
このようにすれば、アーム１１０のうち、第２のアーム１１０−２により保持される点ＣＰ２（及びＣＰ２を含むフレームＦＲ２）は、ＣＰ２よりもエンドエフェクター１２０側の部分（例えばフレームＦＲ３）に比べて振動しにくい状態となる。つまり、図１１の例と同様に、アーム１１０の振動を抑制することが可能になる。
【０１２２】
なお、図１２では第２のエンドエフェクター１２０−２であるハンドにより、アーム１１０を把持する例を示したが、第２のアーム１１０−２によるアーム１１０の保持手法はこれに限定されない。例えば、第２のアーム１１０−２の一部を接触させてもよいし、第２のエンドエフェクター１２０−２としてハンド以外の構造を用いてもよい。第２のアーム１１０−２或いは第２のエンドエフェクター１２０−２がアーム１１０に接触していれば、少なくとも接触していない場合に比べてアーム１１０の振動抑制が可能である。
【０１２３】
ただし、図１２の手法では、第２のアーム１１０−２の振動が大きい場合、アーム１１０の振動抑制効果が充分でないことがある。よって、アーム１１０を把持する第２のアーム１１０−２についても、振動を抑制してもよい。
【０１２４】
例えば、第２のアーム１１０−２が、第２の固定部１６０−２により他の部材と固定される場合に、制御部１４０は、図１３に示したように、第２のアーム１１０−２のうち、第２の固定部１６０−２よりも第２のエンドエフェクター１２０−２側の所与の位置を、固定物ＯＢＦ２に接触させる制御を行う。
【０１２５】
図１３の例では、第２のアーム１１０−２は、第２のエンドエフェクター１２０−２によりアーム１１０のＣＰ２の位置を把持するとともに、所与の位置ＣＰ３を固定物ＯＢＦ２に接触させている。固定物ＯＢＦ２は、図１１の固定物ＯＢＦ１と同様に、作業台、作業台上に配置される固定用治具、壁面、床面、天井面等の部材により実現できる。これにより、第２のアーム１１０−２は、固定物ＯＢＦ２と接触しない場合に比べて振動が抑制される。そのため、第２のアーム１１０−２により保持されるアーム１１０の振動の抑制効果を高くすることが可能である。
【０１２６】
なお、６自由度のアームの場合、エンドエフェクターが所望の位置姿勢となる場合のアームの姿勢（６つの関節角の組）が限定されてしまう。そのため、第２のエンドエフェクター１２０−２によりアーム１１０のＣＰ２の位置を把持しつつ、位置ＣＰ３を固定物ＯＢＦ２に接触させることができない場合も出てきてしまう。その点から、エンドエフェクターに所望の位置姿勢を取らせつつ、アームの姿勢に柔軟性を持たせられる７自由度のアームを、第２のアーム１１０−２として用いてもよい。
【０１２７】
或いは、ロボット１００（ロボット本体２００）全体の振動を抑制するという観点から、異なる手法を用いてもよい。例えば、制御部１４０は、図１４に示したように、第２のアーム１１０−２又は第２のエンドエフェクター１２０−２の所与の位置を固定物ＯＢＦ３に接触させる制御を行う。
【０１２８】
ここでの固定物ＯＢＦ３も、図１１の固定物ＯＢＦ１、図１３の固定物ＯＢＦ２と同様に、作業台、作業台上に配置される固定用治具、壁面、床面、天井面等の部材により実現できる。図１４では固定物ＯＢＦ３が作業台（特に作業台の端部）である例を示している。
【０１２９】
図１４では、図１３の例と異なり、第２のアーム１１０−２はアーム１１０を保持しない。そのため、図１４の手法は、第２のアーム１１０−２により、直接的にアーム１１０の振動を抑制するものではない。しかし、第２のアーム１１０−２と固定物ＯＢＦ３とを接触させることで、ロボット１００全体の振動が抑制されることになり、結果としてアーム１１０の振動抑制が可能になる。図１２や図１３の手法では、第２のアーム１１０−２によりアーム１１０を保持する必要があるため、場合によっては第２のアーム１１０−２がアーム１１０の動作（第１の工程、第２の工程の実行）を阻害してしまうおそれがある。しかし図１４の手法であれば、制御部１４０は第２のアーム１１０−２をアーム１１０に近づけなくてもよく、作業スペースに余裕がない場合等でも容易に実行が可能である。なお、図１４では、ハンドである第２のエンドエフェクター１２０−２により作業台の端部を把持する例を示したが、接触させるのは異なる形状のエンドエフェクターでもよいし、第２のアーム１１０−２でもよい。
【０１３０】
なお、図１２〜図１４に示した第２のアーム１１０−２を用いたアーム１１０の安定化手法、すなわち（１）アーム１１０のうち、固定部１６０よりもエンドエフェクター１２０側の所与の位置ＣＰ２を、第２のアーム１１０−２により保持させる制御、（２）第２のアーム１１０−２のうち、第２の固定部１６０−２よりも第２のエンドエフェクター１２０−２側の所与の位置を、固定物ＯＢＦ２に接触させる制御を上記（１）とともに行う制御、（３）第２のアーム１１０−２又は第２のエンドエフェクター１２０−２の所与の位置を固定物ＯＢＦ３に接触させる制御、のいずれかは、図１１の手法と同様に、アーム１１０による第１の工程の開始後、第２の工程の終了前の少なくとも一部の期間において実行される。
【０１３１】
つまり、上記（１）〜（３）の制御は、図６の待機期間Ａ３や、図７の終了判定期間Ｂ１２において行われてもよい。この場合、制御部１４０は、第１の工程の終了後であって第２の工程の開始前の期間（待機期間）、又は、第１の工程の終了判定期間において、（１）〜（３）のいずれかの制御を行うとともに、当該制御を行わない場合に比べて閾値を小さくする制御を行うとよい。
【０１３２】
或いは、上記（１）〜（３）のいずれかの制御は、第２の工程の実行期間において実行してもよいし、図６のＡ１や図７のＢ１１の期間において、実行してもよい。
【０１３３】
６．双腕ロボットの複数のアームによる協調作業
以上では、第１の工程及び第２の工程を１つのアーム（アーム１１０）により行う実施形態を説明した。しかし本実施形態の手法では、複数のアームにより協調して第１の工程及び第２の工程が実行されてもよい。
【０１３４】
図１５、図１６に、複数のアームによる協調作業の例を示す。図１５に示したように、協調作業とは対象物ＯＢ３を、アーム１１０と第２のアーム１１０−２の一方のアームから他方のアームへと受け渡す（持ち替える）作業であってもよい。以下、アーム１１０から第２のアーム１１０−２へと対象物ＯＢ３を受け渡す例について説明する。
【０１３５】
例えば、対象物ＯＢ３を給材エリアから除材エリアまで移動させる作業を行う場合であって、給材エリアがアーム１１０のエンドエフェクター１２０は到達可能であるが第２のアーム１１０−２の第２のエンドエフェクター１２０−２では到達不可であり、且つ、除材エリアが第２のエンドエフェクター１２０−２は到達可能であるがエンドエフェクター１２０では到達不可である場合を考える。この場合、エンドエフェクター１２０を用いて給材エリアの対象物ＯＢ３を把持し、対象物ＯＢ３をエンドエフェクター１２０から第２のエンドエフェクター１２０−２に持ち替え、第２のエンドエフェクター１２０−２を用いて対象物ＯＢ３を除材エリアに配置する、という動作が必要になり、アーム間での受け渡し作業が発生する。
【０１３６】
或いは、対象物ＯＢ３が所定面を下にして作業台に配置されているが、次の作業のためには、第２のエンドエフェクター１２０−２により上記所定面側から対象物ＯＢ３を把持しなくてはならない、といった場面も考えられる。その場合、対象物ＯＢ３の所定面が露出するような状態にしなければ、所望の方向からの把持を実現できない。このような要求を満たすための１つの例としては、まずアーム１１０のエンドエフェクター１２０により対象物ＯＢ３を把持して所定面を露出させ、露出した所定面側から第２のアーム１１０−２の第２のエンドエフェクター１２０−２を近づけて受け渡しを行う、という作業を実行すればよい。
【０１３７】
その他、アーム間での対象物の受け渡しが必要な場面は多く、図１５に示した作業を精度よく行うことによる利点は大きい。受け渡しの際にアーム１１０の振動が大きいと、受け渡しに失敗して対象物ＯＢ３が脱落し、対象物ＯＢ３の損傷や、脱落先に配置されていたワークやツールの損傷につながるためである。
【０１３８】
図１５に示すアーム１１０と第２のアーム１１０−２の協調作業を行う場合、第２の工程とは、アーム１１０から第２のアーム１１０−２への対象物ＯＢ３の受け渡し実行工程である。第２の工程は、具体的には、第２のエンドエフェクター１２０−２により対象物ＯＢ３を把持可能な位置関係となるようにアーム１１０と第２のアーム１１０−２とを近づける工程２−１、第２のエンドエフェクター１２０−２により対象物ＯＢ３を把持する工程２−２、エンドエフェクター１２０により対象物ＯＢ３を開放する工程２−３、を順次実行することで実現できる。また、第１の工程とは、第２の工程（狭義には工程２−１）の作業開始位置まで、アーム１１０及び第２のアーム１１０−２を移動させる工程である。
【０１３９】
この場合、第２の工程を開始する条件を、アーム１１０と、第２のアーム１１０−２とで独立に判定してもよい。具体的には、アーム１１０の振動と閾値との比較処理、及び第２のアーム１１０−２の振動と閾値の比較処理をそれぞれ行い、アーム１１０の振動が閾値以下、且つ、第２のアーム１１０−２の振動が閾値以下であることを条件に、第２の工程を実行する。
【０１４０】
ただし、図１５に示した協調作業で問題となる振動は、アーム１１０と第２のアーム１１０−２の相対的な振動、狭義にはエンドエフェクター１２０と第２のエンドエフェクター１２０−２の相対的な振動である。仮に、エンドエフェクター１２０と第２のエンドエフェクター１２０−２とが、同じ振幅、同じ周期、同じ位相での振動をしている場合、それぞれのエンドエフェクター単体を見ると振動しているかもしれないが、相対的には位置関係が変化しない。つまりこの場合、相対的に停止している２つのエンドエフェクターにより作業を行うため、作業精度を高くすることが可能である。
【０１４１】
よって１つの変形例としては、各アーム単体の振動ではなく、複数のアームの相対的な振動を用いた制御を行ってもよい。制御部１４０は、センサー情報に基づいて、アーム１１０の振動として、第２のアーム１１０−２の第２の振動との相対的な振動を表す差分情報を求め、差分情報が所与の閾値以下であると判定されたことを条件に、第２の工程を行わせる制御を行う。
【０１４２】
ここでの差分情報とは、アーム１１０の振動を検出するセンサーからのセンサー情報と、第２のアーム１１０−２の振動を検出するセンサーからのセンサー情報の単純な差分であってもよい。或いは、エンドエフェクター１２０と第２のエンドエフェクター１２０−２の姿勢を考慮した変換を行い、変換結果の差分を用いてもよい。一例としては、各センサー情報に対して重力方向を基準として座標変換処理を行ってから差分情報を求めてもよい。
【０１４３】
このようにすれば、アーム間の相対的な振動を対象として制御を行うことが可能になる。すなわち、本質的に精度に影響を与える振動を用いた第２の工程の開始判定が可能になるため、第２の工程を高精度で実行することが可能になる。
【０１４４】
なお、図１５では対象物ＯＢ３の受け渡し作業について説明したが、複数のアームによる協調作業はこれに限定されない。例えば、図１６に示すように、対象物ＯＢ４と対象物ＯＢ５との組み付け作業を複数のアームの協調作業として実行してもよい。図２、図３を用いて上述した組み付け作業では、一方の対象物ＯＢ１をアーム１１０で把持し、他方の対象物ＯＢ２を安定した作業台上に配置していた。これに対して図１６では、一方の対象物ＯＢ４をアーム１１０のエンドエフェクター１２０で把持するとともに、他方の対象物ＯＢ５を第２のアーム１１０−２の第２のエンドエフェクター１２０−２で把持する。図１６の手法を用いた場合、図２、図３の手法と比較して、両方の対象物の位置姿勢を柔軟に変更できる、或いは作業台に対象物を配置しなくてよいためスペースに余裕がない場合にも実行できるといった利点がある。
【０１４５】
この場合、第２の工程は対象物ＯＢ４と対象物ＯＢ５の組み付け作業を行う工程であり、第１の工程は組み付け作業の作業開始位置までの移動を行う工程である。組み付け作業は、上述したように高い精度が求められるため、第２の工程の開始時には振動が収まっていることを条件にするとよい。図１６の場合も、図１５の例と同様に、アーム１１０の振動として、第２のアーム１１０−２との相対的な振動を用いることが可能である。
【０１４６】
また、本実施形態の手法は、第１のアーム（アーム１１０）と、第２のアーム１１０−２と、第１のアーム１１０及び第２のアーム１１０−２の振動を検出するセンサー１３０と、第１のアーム１１０及び第２のアーム１１０−２の制御を行う制御部１４０を含み、制御部１４０は、第１のアーム１１０及び第２のアーム１１０−２により協調作業を行う場合において、センサー１３０により検出された第１のアーム１１０の第１の振動と、第２のアーム１１０−２の第２の振動との差分情報を求め、差分情報が所与の閾値以下であると判定されたことを条件に、協調作業を行わせる制御を行うロボットに適用できる。
【０１４７】
このようにすれば、協調作業において本質的に精度に影響を与える振動である相対的な振動を差分情報から求めることができる。そして差分情報に基づき振動を判定することで、相対的な振動が小さいことを条件に協調作業を実行できるため、協調作業の作業精度を高くすることが可能になる。
【０１４８】
以上、本発明を適用した実施形態およびその変形例について説明したが、本発明は、各実施形態やその変形例そのままに限定されるものではなく、実施段階では、発明の要旨を逸脱しない範囲内で構成要素を変形して具体化することができる。また、上記した各実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、各実施形態や変形例に記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態や変形例で説明した構成要素を適宜組み合わせてもよい。また、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能である。
【符号の説明】
【０１４９】
１０…ケーブル、１００…ロボット、１１０…アーム、１１０−２…第２のアーム、
１１１，１１２，１１３…関節、１１４，１１５…フレーム、
１２０…エンドエフェクター、１２０−２…第２のエンドエフェクター、
１３０…センサー、１４０…制御部、１５０…センサー情報取得部、
１６０，１６０−２…固定部、２００…ロボット本体、２１０…台座部、
２２０…頭部、２３０…胴体部、３００…制御装置、４００…ベースユニット、
ＯＢ１〜ＯＢ６…対象物、ＯＢＦ１〜ＯＢＦ３…固定物
【図１】
2017154221.tif 000003
【図２】
2017154221.tif 000004
【図３】
2017154221.tif 000005
【図４】
2017154221.tif 000006
【図５】
2017154221.tif 000007
【図６】
2017154221.tif 000008
【図７】
2017154221.tif 000009
【図８】
2017154221.tif 000010
【図９】
2017154221.tif 000011
【図１０】
2017154221.tif 000012
【図１１】
2017154221.tif 000013
【図１２】
2017154221.tif 000014
【図１３】
2017154221.tif 000015
【図１４】
2017154221.tif 000016
【図１５】
2017154221.tif 000017
【図１６】
2017154221.tif 000018