(57)【特許請求の範囲】
【請求項１】
エンドエフェクタが装着されたロボットの動作を制御するロボット制御装置を用いて前記ロボットが作業対象に対して作業を行うロボットシステムで用いられる前記ロボットの動作調整装置であって、
前記作業の開始から終了までの間を分割して複数の区分を生成する指令値区分部と、
前記ロボットシステムが備える外界センサで検出された前記エンドエフェクタに作用する力を入力として、前記指令値区分部で前記生成された前記区分毎に前記ロボットの動作を制御するために前記ロボット制御装置から前記ロボットに送信される動作指令値の学習を行う指令値学習部とを備えることを特徴とする動作調整装置。
【請求項２】
前記指令値学習部は、前記エンドエフェクタに作用する力の範囲を制約条件とした学習を行って、前記動作指令値を調整することを特徴とする請求項１に記載の動作調整装置。
【請求項３】
前記指令値学習部は、前記作業に要する時間の上限を制約条件とした学習を行って、前記動作指令値を調整することを特徴とする請求項１または請求項２に記載の動作調整装置。
【請求項４】
前記動作指令値は、前記エンドエフェクタの移動速度の目標値または前記ロボットの動作速度の目標値である速度指令値であることを特徴とする請求項１から３のいずれか１項に記載の動作調整装置。
【請求項５】
前記指令値区分部は、前記作業を前記区分に分割するための分割点の位置を調整することを特徴とする請求項１から４のいずれか１項に記載の動作調整装置。
【請求項６】
前記指令値学習部は、力、モーメント、トルク、または電流値の上限あるいは下限のいずれかを制約条件とした学習を行って、前記動作指令値を調整することを特徴とする請求項１から５のいずれか１項に記載の動作調整装置。
【請求項７】
前記指令値学習部は、前記ロボットの位置姿勢、または周辺環境との相対位置姿勢の上限あるいは下限のいずれかを制約条件として学習を行って、前記動作指令値を調整することを特徴とする請求項１から６のいずれか１項に記載の動作調整装置。
【請求項８】
前記指令値学習部は、Ｍ回の前記作業の試行（Ｍは自然数）ごとに評価関数に基づいた評価を行い、前記動作指令値を調整することを特徴とする請求項１から７のいずれか１項に記載の動作調整装置。
【請求項９】
前記ロボットシステムが備える内界センサに基づくフィードバック制御および前記外界センサに基づくフィードバック制御の少なくとも一方における制御パラメータの学習を行うパラメータ学習部を備え、
前記パラメータ学習部は、前記区分に関する情報である区分情報と、複数回の試行で前記外界センサから得られたセンサ情報とに基づいた学習を行って、前記制御パラメータを更新することを特徴とする請求項１から８のいずれか１項に記載の動作調整装置。
【請求項１０】
エンドエフェクタが装着されたロボットの動作を制御するロボット制御装置を用いて前記ロボットが作業対象に対して作業を行うロボットシステムで用いられる前記ロボットの動作調整装置であって、
前記ロボットシステムが備える外界センサで検出された前記エンドエフェクタに作用する力を入力とした学習を行って、前記ロボットシステムが備える内界センサに基づく前記ロボットの動作のフィードバック制御および前記外界センサに基づく前記ロボットの動作のフィードバック制御の少なくとも一方における制御パラメータの学習を行うパラメータ学習部と、
前記作業の開始から終了までの間を分割して複数の区分を生成する指令値区分部とを備え、
前記パラメータ学習部は、前記指令値区分部で生成された前記区分のそれぞれに対して、前記制御パラメータを調整することを特徴とする動作調整装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、産業用ロボットや非製造業向けのサービスロボットなどに関するものである。特に、この発明は、ロボットに装着されたエンドエフェクタを目標となる位置姿勢に到達させるためのロボットの動作を調整する動作調整装置及び動作制御システムと、当該動作調整装置及び動作制御システムを備えたロボットシステムに関するものである。
【背景技術】
【０００２】
従来の産業用ロボットシステムでは、ロボットと作業対象の関係が精密に位置決めされ、位置決めされた環境下でロボットが高速・高精度で作業を繰り返すようなシステム構成が多かった。これに対して近年では、力覚センサあるいはビジョンセンサなどの複数の外界センサを活用するロボットシステムが増加しつつある。このようなロボットシステムは、ロボットと作業対象とが精密に位置決めされていない環境で使用され、外界センサの検出結果に応じてロボット動作を制御する。【０００３】
例えば、このようなロボットシステムは、作業対象となる物体の位置姿勢あるいは周辺環境が未知の状況で使用される。また、別の例としては、このようなロボットシステムは、作業対象となる物体の位置姿勢あるいは周辺環境が変化する状況で使用される。具体的な事例としては、ビンピッキング作業、表面倣い動作を伴う挿入作業、コネクタ等の部品の嵌め合い作業などが挙げられる。また、非製造業向けのサービスロボットの分野では、様々に変化する環境下での作業が前提とされており、同様に複数のセンサを用いてロボットの動作が制御されている。【０００４】
これらのセンサを活用したロボットの制御系では、ロボットの動作を調整するために、複数の制御パラメータの調整が必要となる。制御パラメータが適切に調整されることで、ロボットの動作が適切となり、ロボットシステムの性能が確保される。しかし、制御パラメータの調整は容易ではなく、専門的な知識が要求されることが多い。そこで、制御パラメータの調整を容易化するために、いくつかの自動調整手段が提案されている。例えば、特許文献１には、学習によってロボットの動作を高速化させるロボットシステムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−９４４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のロボットシステムでは、学習において、ロボットの動作に起因して作業対象に作用する負荷の大きさが考慮されていない。したがって、学習で得られたロボットの動作において、作業対象に作用する負荷が適切な大きさとならず、作業対象に過大な負荷が作用する場合があった。本発明は、作業対象に過大な負荷が作用することがないようにロボットの動作を調整でき、ロボットの動作の調整を容易化できる動作調整装置、動作制御システム及びロボットシステムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明のロボット動作調整装置は、エンドエフェクタが装着されたロボットの動作を制御するロボット制御装置を用いてロボットが作業対象に対して作業を行うロボットシステムで用いられ、外界センサで検出されたエンドエフェクタに作用する力を入力とした学習を行って、ロボットの動作を制御するためにロボット制御装置からロボットに送信される動作指令値を調整する指令値学習部を備える。
【０００８】
また、本発明の動作制御システムは、エンドエフェクタが装着されたロボットが作業対象に対して作業を行うロボットシステムで用いられ、ロボットに動作指令値を送信してロボットの動作を制御するロボット制御装置と、センサで検出されたエンドエフェクタに作用する力を入力とした学習を行って、動作指令値を調整する指令値学習部とを備える。【０００９】
また、本発明のロボットシステムは、エンドエフェクタが装着されたロボットと、ロボットに動作指令値を送信してロボットの動作を制御するロボット制御装置と、センサで検出されたエンドエフェクタに作用する力を入力とした学習を行って、動作指令値を調整する指令値学習部とを備え、ロボットが作業対象に対して作業を行う。
【発明の効果】
【００１０】
本発明の動作調整装置、動作制御システム及びロボットシステムによれば、作業対象に過大な負荷が作用することがないようにロボットの動作を調整でき、ロボットの動作の調整を容易化できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１による動作調整装置を備えたロボットシステムのシステム構成の一例を示すブロック図である。
【図２】本発明の実施の形態１によるロボット制御装置及び動作調整装置を実現するための具体的なハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態１による動作調整装置の構成例及び周辺のブロックを示すブロック図である。
【図４】本発明の実施の形態１による動作調整装置の動作を説明するための図である。
【図５】本発明の実施の形態１によるロボットシステムにおける更新前の速度パターンの一例を示す図である。
【図６】本発明の実施の形態１による動作制御システムの処理の流れの一例を示すフロー図である。
【図７】本発明の実施の形態２による動作調整装置の動作を説明するための図である。
【図８】本発明の実施の形態２によるロボットシステムにおける速度パターンの初期値の一例を示す図である。
【図９】本発明の実施の形態２によるロボットシステムにおける力覚センサの検出値の一例を示す図である。
【図１０】本発明の実施の形態２によるロボットシステムにおける更新後の速度パターンの一例を示す図である。
【図１１】本発明の実施の形態２によるロボットシステムにおける更新後の速度パターンの別の例を示す図である。
【図１２】本発明の実施の形態３による動作調整装置の構成例及び周辺のブロックを示すブロック図である。
【図１３】本発明の実施の形態３による指令値学習部の構成例及び周辺のブロックを示すブロック図である。
【図１４】本発明の実施の形態３によるロボットシステムが実施する作業の一例を示す図である。
【図１５】本発明の実施の形態３による学習処理部の処理の流れの一例を示すフロー図である。
【図１６】本発明の実施の形態３による学習処理部で行われる前処理の流れの一例を示すフロー図である。
【図１７】本発明の実施の形態３による学習処理部で行われる学習処理の流れの一例を示すフロー図である。
【図１８】本発明の実施の形態３によるロボットシステムにおける試行時の速度パターンの一例を示す図である。
【図１９】本発明の実施の形態３によるロボットシステムにおける試行時に取得される力情報の一例を示す図である。
【図２０】本発明の実施の形態４による動作調整装置の構成例及び周辺のブロックを示すブロック図である。
【図２１】本発明の実施の形態４による動作調整装置で行われる前処理の流れの一例を示すフロー図である。
【図２２】本発明の実施の形態４による動作調整装置で行われる学習処理の流れの一例を示すフロー図である。
【図２３】本発明の実施の形態５による動作調整装置の構成例及び周辺のブロックを示すブロック図である。
【図２４】本発明の実施の形態５による動作学習部の構成例を示すブロック図である。
【図２５】本発明の実施の形態５による動作調整装置の別の構成例及び周辺のブロックを示すブロック図である。
【発明を実施するための形態】
【００１２】
実施の形態１.
図１は本発明の実施の形態１による動作調整装置を備えたロボットシステム１００のシステム構成の一例を示すブロック図である。図１に示す通り、ロボットシステム１００は、動作制御システム１１０、ロボット１２０、エンドエフェクタ１３０、内界センサ１４１、及び外界センサ１４２を備える。また、動作制御システム１１０は、ロボット制御装置１１１及び動作調整装置１１２を備える。ロボット制御装置は、ロボットコントローラとも呼ばれる。
【００１３】
ロボット制御装置１１１は、内界センサ１４１及び外界センサ１４２の検出結果に基づいて、ロボット１２０の動作を制御するための動作指令値をロボット１２０に送信し、ロボット１２０の動作を制御する。ロボット１２０には、ロボットハンド等のエンドエフェクタ１３０が装着される。エンドエフェクタ１３０は、作業対象２００に直接働きかける。エンドエフェクタ１３０は、ロボットシステム１００が行う各作業に応じて適切な種類のものが選択される。作業対象２００の周辺には、周辺環境３００が存在する。
【００１４】
周辺環境３００は、例えば、作業対象２００を組み付ける先となる部品、作業対象２００を位置決めするジグ、作業対象２００に加工を施す工具（電動ドライバ等）、作業対象２００を供給するパーツフィーダ、ロボット１２０を取り囲む安全カバー、作業対象２００を搬送するベルトコンベア等である。また、作業対象を撮像するカメラなど、外界センサ１４２も周辺環境の一部として扱う場合もある。これは、外界センサ１４２がロボット１２０の周辺の所定の位置に固定されている場合などに、ロボットが１２０またはエンドエフェクタ１３０が外界センサ１４２に接触する可能性があるためである。
【００１５】
ロボット制御装置１１１から出力される動作指令値は、例えば、ロボット１２０に装着されたエンドエフェクタ１３０の各時刻における目標位置および目標姿勢を表す情報、すなわち位置指令値である。動作指令値が、各時刻におけるエンドエフェクタ１３０の目標位置を表す場合、動作指令値によって各時刻間のエンドエフェクタの１３０の移動速度も表されている。したがって、位置指令値は、ロボットの目標動作速度を表す速度指令値であると考えることもできる。
【００１６】
また、ロボット制御装置１１１から出力される動作指令値は、ロボット１２０の目標動作速度、またはエンドエフェクタ１３０の目標移動速度を表す速度指令値であっても良い。目標動作速度または目標移動速度は、ロボット１２０の動作の各時点の間の速度、または経路の各地点の間の速度で与えられる。さらに、動作指令値は、ロボット１２０の動作の目標加速度、またはエンドエフェクタ１３０の移動の目標加速度を表す加速度指令値であっても良い。動作指令値は、ロボット１２０の動作を直接的に制御するものであれば、様々な形態が考えられる。
【００１７】
動作調整装置１１２は、外界センサ１４２の検出結果と、外部から与えられる制約条件とに応じて、ロボット制御装置１１１で生成される動作指令値を調整し、更新する。すなわち、動作調整装置１１２は、ロボットの動作を調整する。言い換えると、動作調整装置１１２は、内界センサ１４１及び外界センサ１４２の検出結果と、ロボット制御装置１１１から出力される動作指令値との対応関係を調整し、調整結果を反映して対応関係を更新することになる。なお、動作指令値の調整は、動作指令値の修正、または動作指令値の補正と言い換えることもできる。
【００１８】
更新された動作指令値が存在する場合、ロボット制御装置１１１は、更新された動作指令値をロボット１２０へと出力する。動作調整装置１１２は、外界センサ１４２の検出結果だけではなく、内界センサ１４１の検出結果も参照して動作指令値を更新しても良い。なお、制約条件は、動作調整装置１１２またはロボット制御装置１１１の内部に予め記憶されていても良い。
【００１９】
本実施の形態のロボットシステム１００は、動作指令値を調整して更新する調整処理と、更新された動作指令値を用いて作業対象２００に対する作業を行う作業処理との２つの処理を行う。言い換えると、ロボットシステム１００の動作には、調整フェーズと作業フェーズとがあり、調整処理は、調整フェーズにおけるロボットシステム１００の処理である。また、作業処理は、作業フェーズにおけるロボットシステム１００の処理である。動作調整装置１１２は、調整処理において、最適な動作指令値になるように動作指令値を調整する。ただし、調整処理と作業処理とは完全に分離される必要はない。例えば、作業対象２００に対する作業が行われている間にも、動作調整装置１１２が最適な動作指令値を随時算出するように、ロボットシステム１００が構成されても良い。この構成においては、ロボットシステム１００は、現在使用されている動作指令値よりも適切な動作指令値が算出された場合など、必要に応じて所定のタイミングで動作指令値を更新する。この点は、以降の実施の形態でも同様である。
【００２０】
図２は、ロボット制御装置１１１及び動作調整装置１１２を実現するための具体的なハードウェア構成の一例を示す図である。ロボット制御装置１１１及び動作調整装置１１２は、メモリ４０２に記憶されるプログラムをプロセッサ４０１で実行することで実現される。プロセッサ４０１とメモリ４０２とは、データバス４０３で接続される。メモリ４０２には、揮発性のメモリ及び非揮発性のメモリが備えられ、一時的な情報は揮発性のメモリに記憶される。なお、ロボット制御装置１１１及び動作調整装置１１２は一体として構成しても良いし、別体として構成しても良い。例えば、ロボット制御装置１１１と動作調整装置１１２とが、ネットワークなどを介して接続されていても良い。以降の実施の形態においても、ロボット制御装置１１１及び動作調整装置１１２は同様のハードウェア構成で実現できる。
【００２１】
ロボットシステム１００は、内界センサ１４１及び外界センサ１４２で取得されたデータに基づいて動作制御システム１１０が動作指令値を出力し、動作指令値に追従してロボット１２０が動作する制御系を構成している。内界センサ１４１としては、ロボットの関節の位置を取得するセンサ、関節の動作速度を取得するセンサ、関節を動作させるためのモータの電流値を取得するセンサ等がある。ロボットシステム１００は、ロボット制御装置１１１、ロボット１２０、及び内界センサ１４１によって、エンドエフェクタ１３０の位置決めを行う位置制御系を構成している。ロボットの関節の位置を取得するセンサとしては、例えば、モータの回転量を検出するエンコーダ、レゾルバ、ポテンショメータなどが考えられる。また、関節の動作速度を取得するセンサとしては、タコメータなどが考えられる。内界センサとしては、他にも、ロボット１２０自身の情報として、ジャイロセンサ、慣性センサ等が使用される場合がある。
【００２２】
内界センサ１４１に基づくフィードバック制御によって、ロボットシステム１００は、マテハン作業などを行う位置制御ロボットシステムを構成する。ここで、マテハン作業とは、資材や部品などの移送や搬送する作業である。この位置制御ロボットシステムを内界センサ１４１に基づくフィードバック制御システムと呼ぶ。内界センサ１４１に基づくフィードバック制御において、制御パラメータとしては、位置制御のゲイン、速度制御のゲイン、電流制御のゲイン、フィードバック制御に用いられるフィルタの設計パラメータ等が存在する。フィードバック制御に用いられるフィルタとしては、移動平均フィルタ、ローパスフィルタ、バンドパスフィルタ、ハイパスフィルタ等が考えられる。なお、内界センサ１４１に基づくフィードバック制御は、ロボット１２０が動作指令値に従って動作するための制御となる。言い換えると、内界センサ１４１に基づくフィードバック制御は、動作指令値を実現するために行われる制御となる。
【００２３】
一方で、外界センサ１４２としては、力覚センサ、カメラ等のビジョンセンサ、触覚センサ、タッチセンサ等がある。外界センサ１４２は、ロボット１２０と、作業対象２００または周辺環境３００との接触状態や位置関係を計測する。ロボットシステム１００は、ロボット制御装置１１１、動作調整装置１１２、ロボット１２０、及び外界センサ１４２によって、外界センサ１４２に基づくセンサフィードバック制御システムを構成している。また、ロボットシステム１００は、外界センサ１４２から出力されるセンサ信号に基づいてセンサフィードバック制御を実施するのではなく、外界センサ１４２からのセンサ信号を単にトリガー信号として利用する場合もある。この場合、ロボットシステム１００は、トリガー信号を起点として、内界センサ１４１によるフィードバック制御の制御パラメータを切り替える。外界センサ１４２に基づくセンサフィードバック制御システムは、位置制御ロボットシステムのアウターループとして構築されている。
【００２４】
外界センサ１４２に基づくセンサフィードバック制御システムは、加速度、速度、位置姿勢、距離、力、モーメント等によって、ロボット１２０、ロボットアームまたはエンドエフェクタ１３０と、作業対象２００または周辺環境３００との位置関係、接触挙動等をセンシングする。さらに、外界センサ１４２に基づくセンサフィードバック制御システムは、センシング結果に基づいて、所望の位置関係または力応答を得るようにロボット１２０の動作を制御する。言い換えると、外界センサ１４２に基づくセンサフィードバック制御システムは、所望の位置関係または力応答を得るように動作指令値を修正する。外界センサ１４２に基づくセンサフィードバック制御システムにおいて、制御パラメータとしては、力覚制御に関する力制御ゲイン、インピーダンスパラメータ、ビジュアルサーボ制御に関するゲイン、ビジュアルインピーダンスパラメータ、フィードバック制御に用いられるフィルタの設定パラメータなどがある。
【００２５】
内界センサ１４１および外界センサ１４２に基づいて制御を行う場合に、調整が必要となる制御パラメータを、以後では単にパラメータと呼ぶことがある。ここで、内界センサ１４１または外界センサ１４２として使用されるセンサとしては、具体的には、電流値センサ、関節位置センサ、関節速度センサ、温度距離センサ、カメラ、ＲＧＢ−Ｄセンサ、近接覚センサ、触覚センサ、力センサ等が考えられる。また、内界センサ１４１または外界センサ１４２の計測対象は、ロボット１２０の位置姿勢、エンドエフェクタ１３０の位置姿勢、作業対象２００となるワークの位置姿勢、作業者の位置姿勢等が考えられる。
【００２６】
図３は、本発明の実施の形態１による動作調整装置１１２の構成例及び周辺のブロックを示すブロック図である。図３は、ロボットシステム１００の構成の一部を抽出して示したものである。動作調整装置１１２は、指令値学習部１１３を備える。なお、図３において、センサ１４０は、内界センサ１４１及び外界センサ１４２を１つにまとめたものである。上述のように、センサ１４０としては多様なものが考えられる。しかし、本実施の形態のロボットシステム１００は、センサ１４０には、ロボット１２０の動作に起因してエンドエフェクタ１３０に作用する外力を検出する力覚センサを少なくとも備える。この力覚センサは、外界センサ１４２となる。なお、センサ１４０として少なくとも力覚センサを含むことは、以降の実施の形態でも同様である。
【００２７】
力覚センサは、エンドエフェクタ１３０に作用する外力を計測し、力制御あるいはインピーダンス制御を実施するのに用いられる。なお、エンドエフェクタ１３０が作業対象２００または周辺環境３００に与える力を制御することを力制御と呼ぶ。また、力覚センサの検出結果に従ってロボット１２０の動作を制御することを力覚制御と呼ぶ。力制御においては、目標作業力が設定され、作業対象２００または周辺環境３００に与えられる力の大きさが制御される。
【００２８】
一方、インピーダンス制御においては、エンドエフェクタ１３０と作業対象２００とが接触した場合などに発生する接触力に関するインピーダンス特性（バネ、ダンパ、慣性）が定義され、制御に利用される。接触力が発生する場合としては、エンドエフェクタ１３０と周辺環境３００とが接触した場合、エンドエフェクタ１３０に把持された作業対象２００と周辺環境３００とが接触した場合なども考えられる。また、インピーダンス特性は、インピーダンスパラメータで表される。
【００２９】
力制御においては、力制御の目標値を決定する必要がある。また、インピーダンス制御においては、インピーダンスパラメータを用いて制御特性を決定する必要がある。さらに、力制御及びインピーダンス制御のいずれにおいても、制御の応答性に寄与するゲインなども決定する必要があり、調整項目は多い。従来のロボットシステムでは、作業を安定的に行うことを目的としたパラメータ調整が多くなされてきた。この場合、ロボット１２０の動作の応答性、機械剛性等を含めたシステム特性を同定して、条件または状態によらず安定して応答するパラメータセットを１つ見つけることになる。しかし、作業対象２００との接触を伴うロボット１２０の動作では、動作の進行によって、作業対象２００とエンドエフェクタ１３０との間の接触状態が変化する。したがって、パラメータセットの調整は、接触状態の遷移を考慮して行われる必要がある。この調整は試行錯誤的に行われることになり、容易ではなかった。
【００３０】
本実施の形態のロボットシステム１００においては、動作調整装置１１２が動作指令値を更新することで、ロボット１２０の動作が適切となるように制御する。動作調整装置１１２には、制約条件が入力される。制約条件には、力覚センサで検出される力情報の上限値または下限値が含まれる。以降では、動作制御システム１１０から出力される動作指令値が速度指令値であるものとして説明する。速度指令値は、エンドエフェクタ１３０の移動経路上の各地点に対する、エンドエフェクタ１３０の目標移動速度とする。この時、時系列の速度指令値は、各地点に対する速度パターンとなる。速度指令値は、作業中の各時点に対するロボット１２０の目標動作速度であっても良い。
【００３１】
速度パターンでは、目標速度Ｖｉ（ｉ＝１，２，３，・・・）と目標速度の切り替わり位置Ｐｉ（ｉ＝１，２，３，・・・）が定義される。なお、切り替わり位置は、切り替わり時間や、切り替わりのためのパラメータで設定してよい。切り替わりのためのパラメータとしては、位置や時間を基準とした動作指令値の進捗率が例示される。また、目標速度の切り替わり位置Ｐｉは、目標速度の切り替えの開始点であっても良いし、目標速度の切り替えの完了点であっても良い。また、目標速度の切り替わり位置Ｐｉは、内界センサ１４１で検出される動作速度が、目標速度から所定の誤差範囲内に収まることが保証される点であっても良い。
【００３２】
図４は、本発明の実施の形態１による動作調整装置１１２の動作を説明するための図である。図４に示すように、ロボット１２０に装着されたエンドエフェクタ１３０が位置Ｐ０から位置Ｐ３まで移動する場合を考える。ロボット１２０には、外界センサ１４２として力覚センサ１４３が取り付けられている。力覚センサ１４３は、エンドエフェクタ１３０に作用する外力を計測する。
【００３３】
図５は、本発明の実施の形態１によるロボットシステム１００における更新前の速度パターンの一例を示す図である。図５において横軸はエンドエフェクタ１３０の位置Ｐ、縦軸はエンドエフェクタ１３０の目標移動速度Ｖである。図５の速度パターンでは、エンドエフェクタ１３０がＰ０からＰ３に移動する間に、目標速度が変化している。動作調整装置１１２は、力覚センサ１４３の検出結果に基づいて速度パターンを更新する。
【００３４】
図６は、本発明の実施の形態１による動作制御システム１１０の処理の流れの一例を示すフロー図である。ここで、制約条件としては、力覚センサ１４３で検出される力情報の上限値及び下限値と、作業時間の上限値が含まれているものとする。まず、ステップＳ１０において、ロボット制御装置１１１は、速度パターンの初期値を決定する。次に、ステップＳ１１において、ロボット制御装置１１１は、ロボット１２０の動作を制御して作業を試行する。なお、前述のように調整処理と作業処理とは完全に分離されていない場合など、ロボットシステム１００における通常の作業の一部が試行として扱われる場合もある。
【００３５】
次に、ステップＳ１２において、動作調整装置１１２は、制約条件が満たされているかを判定する。すなわち、ステップＳ１２において、動作調整装置１１２は、力覚センサ１４３の検出値が制約条件で規定される上限値及び下限値の間に入っているかと、作業時間の制約が満たされているかを判定する。力覚センサ１４３の検出値を判定する際には、例えば、検出値の最大値を制約条件の上限値と比較し、検出値の最小値を制約条件の下限値と比較する。なお、ステップＳ１２において、動作調整装置１１２は、力覚センサ１４３の検出値そのものではなく、検出値から演算によって求められる評価値を用いても良い。この評価値の一例としては、力覚センサ１４３の検出値と、タクトタイムとを入力とした評価関数で演算される評価値が考えられる。ステップＳ１２では、動作調整装置１１２は、この評価値を制限範囲内か否かを判定しても良い。
【００３６】
ステップＳ１２において、制約条件が満たされていると判定された場合には、動作制御システム１１０の処理は一旦終了し、以降は更新された速度パターンでの作業が行われる。一方、ステップＳ１２において、制約条件が満たされていないと判定された場合には、動作制御システム１１０の処理はステップＳ１３へと移行する。ステップＳ１３では、動作調整装置１１２は、速度パターンを調整し、速度パターンを更新する。ステップＳ１３では、動作調整装置１１２は、例えば補正するための補正係数を算出し、試行を行った際の速度パターンに乗算することで、速度パターンを調整する。ステップＳ１３の処理が終了すると、動作制御システム１１０の処理はステップＳ１１へと戻る。
【００３７】
本発明の実施の形態１による動作制御システム１１０は、以上のような処理を行う。以上のように、本発明の実施の形態１による動作制御システム１１０は、複数回の試行によって得られるデータに基づいて学習的に速度パターンの調整を行う。言い換えると、本発明の実施の形態１による動作制御システム１１０は、機械学習または最適化手法を用いて動作指令値である速度パターンの調整を行う。
【００３８】
なお、以上の説明では、作業時間の上限値が制約条件に含まれているものとしたが、必須の条件ではなく、他の条件であっても良い。また、制約条件として作業時間の上限値が与えられる代わりに、他の条件を満たした上で作業時間が最短となることを制約条件としても良い。さらに、以上の説明では、与えられた制約条件を満たすように動作制御システム１１０が動作指令値を更新する場合について説明したが、動作制御システム１１０が制御パラメータを調整して更新する構成とすることも考えられる。さらに、図１では、ロボット制御装置１１１と動作調整装置１１２とを別に備える構成例を示しているが、ロボット制御装置１１１が動作調整装置１１２を内蔵するように構成することもできる。
【００３９】
本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００は、以上のように構成される。本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００によれば、力覚センサ１４３の検出値が所定の範囲内となるようにロボット１２０の動作が調整される。ここで、力覚センサ１４３の検出値は、エンドエフェクタ１３０に作用する外力の大きさを表している。言い換えると、力覚センサ１４３の検出値は、ロボット１２０の動作に起因して作業対象２００又は周辺環境３００に加えられる力の大きさを表す情報である。したがって、本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００によれば、作業対象２００または周辺環境３００に加えられる力が適切な大きさとなるように、すなわち作業対象２００または周辺環境３００に過大な負荷が作用することがないようにロボット１２０の動作を調整でき、また、ロボット１２０の動作の調整を容易化できる。
【００４０】
以上のように、力覚センサ１４３を用いて力応答が所望の範囲内に収まる様に動作指令値を学習的に調整することで、作業対象となるアイテムを破損しない高品質なロボット作業を実現することができる。さらに、作業時間を制約条件に加えることで、高速な作業も実現可能でとなる。
【００４１】
また、本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００は、制約条件として力覚センサ１４３で検出される力の大きさを用いたが、モーメント、トルク、電流値などを検出し、これらの上限あるいは下限のいずれかを制約条件に用いることもできる。これらによって、ロボット１２０またはエンドエフェクタ１３０と外界との接触状況に制限値を設けることができ、所望の範囲内での動作指令値を探索することが可能となる。その結果、作業対象２００を傷つけないような作業を実現することができる。
【００４２】
さらに、制約条件としては、周辺環境３００との相対位置姿勢やロボット１２０の位置姿勢を加えることもできる。これらの上限あるいは下限のいずれかを制約条件に加えることで、高品質な作業を実現しつつも、周辺環境３００との干渉を抑制したロボット作業を実現できる。その結果として、システムの稼働率を上げるといった、格別の効果を得ることができる。以上で述べた効果は、他の実施の形態でも同様に得られるものである。
【００４３】
実施の形態２.
本実施の形態の動作調整装置、動作制御システム及びロボットシステムの構成は、図１に示されたものと同様である。本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００は、一連の作業のためにロボット１２０に与えられる動作指令を複数の区分に分割し、区分毎に動作指令値を調整するものである。なお、以降では動作制御システムから出力される動作指令値が速度指令値であるものとして説明する。
【００４４】
図７は、本発明の実施の形態２による動作調整装置１１２の動作を説明するための図である。図７に示すように、ロボット１２０に装着されたエンドエフェクタ１３０を位置Ｐ０から位置Ｐ３まで移動させる作業を考える。初期位置である位置Ｐ０が作業の開始点であり、位置Ｐ３が作業の終了点である。エンドエフェクタ１３０は、位置Ｐ０から位置Ｐ３まで移動する間に、位置Ｐ１、位置Ｐ２を経由する。
【００４５】
本実施の形態のロボットシステム１００において、作業の開始点から作業の終了点までの経路は、複数の区分に分割される。言い換えると、本実施の形態のロボットシステム１００において、１つの作業の開始から作業の終了までのロボット１２０の動作は、複数の区分に分割される。ここで、位置Ｐ０から位置Ｐ１までを区分Ｓ１、位置Ｐ１から位置Ｐ２までを区分Ｓ２、位置Ｐ２から位置Ｐ３までを区分Ｓ３とする。また、区分Ｓ１の目標移動速度をＶ１とし、区分Ｓ２の目標移動速度をＶ２とし、区分Ｓ３の目標移動速度をＶ３とする。本実施の形態のロボットシステム１００は、分割された区分毎に動作指令値を調整して更新する。具体的には、ロボットシステム１００は、区分Ｓ１の目標移動速度、区分Ｓ２の目標移動速度、区分Ｓ３の目標移動速度をそれぞれ調整する。
【００４６】
なお、本実施の形態のロボットシステム１００において、区分に分割するための分割点となる位置Ｐ１、Ｐ２は、作業内容に応じて予め定められるものとする。位置Ｐ１、Ｐ２は、区分が切り替わる位置であり、切り替え位置と呼ばれる場合もある。また、ここでは区分の数を３つとして例示しているが、３つに限定されるわけではない。さらに、ここでは位置によって空間的に区分を定義しているが、作業の開始時点から作業の終了時点までを時間的に分割しても良い。
【００４７】
本実施の形態の動作制御システム１１０には、制約条件として力覚センサ１４３の検出結果の上限値Ｆｌｉｍが与えられるものとする。本実施の形態の動作制御システム１１０の処理の流れは、基本的に図６に示すフロー図と同様である。ただし、速度パターンは区分毎に調整されることになる。まず、図６のステップＳ１０において、ロボット制御装置１１１は、速度パターンの初期値を決定する。図８は、本発明の実施の形態２によるロボットシステム１００における速度パターンの初期値の一例を示す図である。図８において横軸はエンドエフェクタ１３０の位置Ｐ、縦軸はエンドエフェクタ１３０の目標移動速度Ｖである。図８において、速度パターンの初期値は、Ｖ１＝Ｖ２＝Ｖ３＝Ｖｉｎｉである。
【００４８】
次に、ステップＳ１１において、ロボット制御装置１１１は、ロボット１２０の動作を制御して作業を試行する。図９は、本発明の実施の形態２によるロボットシステム１００における力覚センサ１４３の検出値の一例を示す図である。図９において横軸はエンドエフェクタ１３０の位置Ｐ、縦軸は力覚センサ１４３の検出値Ｆである。図９は、図８に示す速度パターンの初期値でロボット１２０を動作させた場合に、力覚センサ１４３で検出される値を表している。
【００４９】
次に、ステップＳ１２において、動作調整装置１１２は、制約条件が満たされているかを判定する。すなわち、ステップＳ１２において、動作調整装置１１２は、各区分における力覚センサ１４３の検出値が制約条件で規定される上限値Ｆｌｉｍ以下であるかを判定する。判定に用いる力覚センサ１４３の検出値としては、例えば、各区分における力覚センサ１４３の検出値のうちの最大値を用いる。ステップＳ１２において、全ての区分で力覚センサ１４３の検出値がＦｌｉｍ以下であった場合には、動作調整装置１１２は制約条件が満たされていると判定する。一方、ステップＳ１２において、力覚センサ１４３の検出値が上限値Ｆｌｉｍを超えた区分が１つでも存在する場合には、動作調整装置１１２は制約条件が満たされていないと判定する。
【００５０】
ステップＳ１２において、制約条件が満たされていると判定された場合には、動作制御システム１１０の処理は一旦終了し、以降は更新された速度パターンでの作業が行われる。一方、ステップＳ１２において、制約条件が満たされていないと判定された場合には、動作制御システム１１０の処理はステップＳ１３へと移行する。ステップＳ１３では、動作調整装置１１２は、力覚センサ１４３の検出値が上限値Ｆｌｉｍを超えた区分の目標速度が小さくなるように速度パターンを調整し、速度パターンを更新する。
【００５１】
図９に示す例では、区分Ｓ２において、力覚センサ１４３の検出値Ｆｍａｘ２が、上限値Ｆｌｉｍを超えている。一方、区分Ｓ１における力覚センサ１４３の検出値Ｆｍａｘ１、及び区分Ｓ３における力覚センサ１４３の検出値Ｆｍａｘ３は、上限値Ｆｌｉｍを超えていない。したがって、ステップＳ１２において、動作調整装置１１２は制約条件が満たされていないと判定する。ステップＳ１３では、動作調整装置１１２は、区分Ｓ２における目標速度Ｖ２が小さくなるように速度パターンを調整する。本発明の実施の形態２による動作制御システム１１０は、以上のような処理を行う。図１０は、本発明の実施の形態２によるロボットシステム１００における更新後の速度パターンの一例を示す図である。図１０において横軸はエンドエフェクタ１３０の位置Ｐ、縦軸はエンドエフェクタ１３０の目標移動速度Ｖである。
【００５２】
なお、以上の説明では、制約条件として力覚センサ１４３の検出結果の上限値Ｆｌｉｍが与えられるものとしたが、さらに作業時間が最短となることを制約条件として加えても良い。この場合、図９において、Ｆｍａｘ１及びＦｍａｘ３は、上限値Ｆｌｉｍを超えていないので、ステップＳ１３において、動作調整装置１１２は、区分Ｓ１における目標速度Ｖ１、及び区分Ｓ３における目標速度Ｖ３が大きくなるように速度パターンを調整する。このように速度パターンを調整することで、作業時間をより短くすることが可能となる。図１１は、本発明の実施の形態２によるロボットシステム１００における更新後の速度パターンの別の例を示す図である。図１１において横軸はエンドエフェクタ１３０の位置Ｐ、縦軸はエンドエフェクタ１３０の目標移動速度Ｖである。
【００５３】
なお、動作指令値が速度指令値である場合、図１０、図１１に示す通り、分割点Ｐ１、Ｐ２は、目標速度が切り換えられる位置となる。分割点Ｐ１、Ｐ２は、目標速度の切り替えの開始点であっても良いし、目標速度の切り替えの完了点であっても良い。また、分割点Ｐ１、Ｐ２は、内界センサ１４１で検出される動作速度が、目標速度から所定の誤差範囲内に収まることが保証される点であっても良い。
【００５４】
本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００は、以上のように構成される。本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００によれば、区分毎にロボット１２０の動作が調整される。力覚センサ１４３の検出値が所定の値よりも大きくなる区分のみ動作が遅くなるように調整されるので、作業全体の動作を不要に遅くすることなく、しかも作業対象２００または周辺環境３００に過大な負荷が作用することがないように、ロボット１２０の動作を調整でき、また、ロボット１２０の動作の調整を容易化できる。さらに、力覚センサ１４３の検出値が所定の値よりも小さくなる区分については動作が早くなるように調整されるように構成すれば、作業全体の動作をより早くすることも可能となる。
【００５５】
以上のように、本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００によれば、区間ごとに最適な動作指令値を学習し、更新することで、従来の調整では実現できなかった細やかな動作指令値の設計が可能となり、結果として高速かつ高品質なロボット作業を実現することができる。
【００５６】
実施の形態３．
図１２は、本発明の実施の形態３による動作調整装置１１２ｂの構成例及び周辺のブロックを示すブロック図である。図１２は、ロボットシステム１００の構成の一部を抽出して示したものである。動作調整装置１１２ｂは、指令値学習部１１３ｂを備える。本実施の形態の動作調整装置、動作制御システム及びロボットシステムの構成は、動作調整装置１１２が動作調整装置１１２ｂに置き換えられる以外は、図１に示されたものと同様である。本実施の形態における動作調整装置１１２ｂは、実施の形態２における動作調整装置１１２と比較して、区分情報が入力される点が異なる。区分情報には、区分位置の初期値、および各区分における動作指令値の初期値の情報が含まれる。なお、区分位置とは、各区分の両端の分割点Ｐｉの位置であり、例えば、動作速度の目標値が切り換えられる位置である。内界センサ１４１または外界センサ１４２によって、エンドエフェクタ１３０が所定の位置に到達したことが検出されると、動作速度の目標値が切り換えられる。
【００５７】
本実施の形態の動作調整装置、動作制御システム及びロボットシステムは、実施の形態２におけるものと同様に、区分毎に動作指令値を調整する。区分毎に動作指令値を調整することで、指令値学習部１１３ｂを、衝突などが生じる区分は低速な動作となるように調整し、それ以外の区分は高速な動作となるように調整する学習器とすることができる。この学習器によれば、高速な作業が実現される動作指令値を自動的に学習できる。指令値学習部１１３ｂは、各区分に対応する動作指令値を自動的に学習していく。簡単のため、動作調整装置１１２ｂは制御パラメータを調整せず、動作指令値のみを調整するものとして説明する。
【００５８】
本実施の形態の動作調整装置、動作制御システム及びロボットシステムにおいて、指令値学習部１１３ｂは、区分情報、制約条件、センサ１４０の検出値、および更新前の動作指令値を入力として、動作指令値をそれぞれ更新する。区分情報は、動作指令値をＮ個の区分に分割するために定義されている。区分に分割するためのそれぞれの分割点をＰｉ（ｉ＝０，１，２，・・・，Ｎ＋１）と定義する。ここで、Ｎは自然数である。また、ここでは、動作の開始点および終了点も分割点に含まれるものとし、開始点をＰ０とする。分割点Ｐｉの１つ前の分割点と分割点Ｐｉとの間の区間を区分Ｓｉ（ｉ＝０，１，２，・・・，Ｎ）と呼ぶ。
【００５９】
本実施の形態の動作調整装置、動作制御システム及びロボットシステムにおいて、区分は、作業状態が変化するたびに定義されることを想定している。例えば、力覚センサを用いた嵌合作業を考えると、分割点Ｐｉは嵌合される部品間の接触現象が生じる前後、接触状態が変化する前後で定義される。予想される接触状態の変化に応じて分割点Ｐｉは定義され、それぞれにふさわしい位置、速度、加速度、といった動作指令の目標値に変更することで、作業全体の高速化が図られる。この際、過去の試行情報から適切な分割点Ｐｉの位置と、それぞれの区分Ｓｉの指令値パターンを定義することが本実施の形態の動作調整装置、動作制御システム及びロボットシステムの特徴である。
【００６０】
指令値学習部１１３ｂに入力される制約条件は、高速化した作業に関して、作業成功と作業失敗の境界を定義する条件である。高速化した作業動作では、エンドエフェクタ１３０の位置制御の誤差などから、エンドエフェクタ１３０が作業対象２００に強く衝突するリスクがある。強い衝突が生じると、エンドエフェクタ１３０あるいは作業対象２００が破損し、作業失敗になってしまう場合がある。このような過去の作業失敗を考慮し、設計時点でユーザが制約条件を定義すること、あるいは過去の試行データによって制約条件を定義することで、高速かつ低衝撃な作業を行う動作指令値の生成が実現可能となる。
【００６１】
制約条件としては、位置の制限範囲、姿勢の制限範囲、動作速度の上限値、動作速度の下限値、力の上限値、力の下限値、モーメントの上限値、モーメントの下限定値などがある。特に、ロボット１２０や作業対象２００の位置姿勢を取得可能な場合に、制約条件としてロボット１２０の位置姿勢、ロボット１２０と周辺環境３００との相対的な位置姿勢の上限あるいは下限のいずれかで定義される制限値を入力することができる。
【００６２】
また、内界センサ１４１または外界センサ１４２で取得したデータをセンサ情報と呼ぶ。センサ情報に対しては、フィルタ処理によってノイズを除去する処理、閾値を超えた値だけを抽出する処理などの前処理が必要に応じて行われる。
【００６３】
動作指令値とは、ロボットシステム１００の位置制御系に入力可能な制御指令値のことを指す。動作指令値は、単に指令値と呼ばれる場合もある。ロボット１２０の動作は、各軸のモータの動作によって制御されている。動作指令値には、例えば、モータの動作を制御するための位置指令値、速度指令値、電流指令値なども含まれる。また、時間と速度との関係を表すプロファイルから生成された速度パターンから、動作調整装置１１２ｂが等価的に位置指令値の時系列データを生成し、ロボット制御装置１１１に入力することもできる。動作指令値はロボット制御装置１１１の内部で生成することもできる。
【００６４】
本実施の形態の動作調整装置１１２ｂは、ロボット制御装置１１１の内部の指令値を取り出し、ロボット１２０が作業を実施した際の応答として得られるセンサ情報に応じて、動作指令値を調整し、更新する。この点は、他の実施の形態でも同様である。以降では動作制御システムから出力される動作指令値が速度指令値であるものとして説明する。なお、他の構成として、動作調整装置１１２ｂが、動作指令値そのものではなく、動作指令値の生成に必要なパラメータをロボット制御装置１１１に渡す構成も考えられる。例えば、動作調整装置１１２ｂは、区分位置および各区分における動作速度の目標値だけをロボット制御装置１１１に入力することもできる。この場合、ロボット制御装置が、入力された区分位置および動作速度の目標値を元にして動作指令値を生成する。
【００６５】
動作調整装置１１２ｂは、指令値学習部１１３ｂを備えている。指令値学習部１１３ｂは、動作指令値を調整し、更新する。指令値学習部１１３ｂは、区分情報、制約条件、更新前の動作指令値、センサ１４０の検出値に基づいて、新しい動作指令値を求める。指令値学習部１１３ｂは、新しい動作指令値を求める際に、評価関数によって作業の高速性と作業品質を評価し、作業対象２００が壊れにくく高速な動作を探索するよう設計される。なお、また、動作調整装置１１２ｂは、ロボット制御装置１１１で用いられる制御パラメータも調整、更新する構成としても良い。制御パラメータの調整、更新も、指令値学習部１１３ｂで行われる。
【００６６】
図１３は、本発明の実施の形態３による指令値学習部１１３ｂの構成例及び周辺のブロックを示すブロック図である。図１３は、ロボットシステム１００の構成の一部を抽出して示したものである。指令値学習部１１３ｂは、記憶部１１４及び学習処理部１１５を備える。図１３を用いて、指令値学習部１１３ｂにおける探索の方法の一例について述べる。ここで、予め区分の数がＮ＝４と定義されているものとする。また、各区分で定義された目標速度の値である速度目標値が動作指令値として用いられるものとする。また、指令値学習部１１３ｂは、各区分における速度目標値を調整することで、高速な作業を実現するものとする。
【００６７】
図１４は、本発明の実施の形態３によるロボットシステム１００が実施する作業の一例を示す図である。図１４に示す通り、ロボットシステム１００は、第１の部品２１０を第２の部品３１０に挿入する作業を行う。図１４は、作業の進行に伴う第１の部品２１０と第２の部品３１０との相対位置の変化を図示したものであり、（ａ）、（ｂ）、（ｃ）、（ｄ）の順に作業が進行していく様子を表している。第１の部品２１０が作業対象２００に相当し、第２の部品３１０が周辺環境３００に相当する。
【００６８】
第１の部品２１０には、穴２１１が設けられている。一方、第２の部品３１０には、突起３１１が設けられている。第１の部品２１０を第２の部品３１０に挿入する際には、穴２１１に突起３１１が挿入される。第１の部品２１０は、第１の素材で構成される。一方、第２の部品３１０は、第１の素材で構成される部分３１２と第２の素材で構成される部分３１３とを備えている。第１の部品２１０を第２の部品３１０に挿入する際には、第１の部品２１０と第２の部品３１０との接触状態に変化が生じる。
【００６９】
図１４に示す例では、（ｂ）から（ｄ）にかけての作業の進行に応じて、部品間で接触する部位および接触状態が変化する。接触状態としては、接触部分の各部品の素材、接触部分の広さなどが挙げられる。接触状態が変化することで、接触部分に生じる摩擦力が変化する。図１４の（ｂ）では、第１の部品２１０及び第２の部品３１０の外形同士の摩擦力が発生する。図１４の（ｃ）では、さらに、穴２１１と突起３１１との接触が加わるため、摩擦力が大きくなる。部品間に発生する摩擦力の変化によって、力覚センサ１４３の検出結果も変化することになる。すなわち、部品のはめあい作業やコネクタの挿入作業などにおいては、作業の進行に応じて部品間の反力が変化する。力覚センサは、この部品間の反力を検出している。
【００７０】
図１３に示す通り、指令値学習部１１３ｂは、センサ１４０で検出された力情報、およびロボット制御装置１１１から取得した速度パターンを記憶部１１４に記憶する。ロボットシステム１００は、動作指令値の調整のために作業を試行する際に、速度パターンを指定してロボット１２０を動作させることができるものとする。記憶部１１４に記憶された力情報、速度パターン、区分情報、および制約条件に基づいて、学習処理部１１５が速度パターンを更新して、オフライン処理としてロボット制御装置１１１に出力する。
【００７１】
ここで、ロボット制御装置１１１には１つの速度パターンが記憶されているが、動作指令値の調整の際には、動作調整装置１１２ｂは、基準となる１つの速度パターンに対しても、複数種類の速度パターンを用いて作業を試行するように促す。この結果、動作指令値の調整の際に、ロボットシステム１００は、様々な条件で試行することになる。動作調整装置１１２ｂは、様々な条件での試行で得られたデータに基づいて動作指令値を調整する。例えば、ロボットシステム１００は、ロボット制御装置１１１に記憶されている動作指令値とは異なる動作指令値を含め、それぞれ異なる動作指令値によってＮａ回の試行を行う。動作調整装置１１２ｂは、Ｎａ回の試行の結果として得られるデータを入力して１回学習し、動作指令値を更新する。Ｎａ回の試行を１セットとして、Ｎｂセットの試行を実施すると、多くの場合において動作指令値は収束し、それ以上の改善が発生しなくなる。ここで、Ｎａ、Ｎｂは、１以上の整数である。
【００７２】
以上に示した通り、本実施の形態のロボットシステム１００では、設定した１つあるいは１つ以上の複数の動作指令値を用いて試行し、得られた力センサデータに基づいて評価値を生成する。動作調整装置１１２ｂは、それぞれの評価値に基づいて、動作指令値の更新を行う。動作指令値の更新において、動作調整装置１１２ｂは、１つあるいは１つ以上の複数の動作指令値を生成し、再び試行を実施する。動作指令値が１つである場合には、評価値をプロットしたグラフにおいて評価値が収束していれば、動作調整装置１１２ｂは動作指令値の更新を終了する。動作指令値が複数である場合には、動作指令値に対応する評価値が最小となる結果のみをプロットしたグラフにおいて評価値が収束していれば、動作調整装置１１２ｂは動作指令値の更新を終了する。この場合、複数の動作指令値を更新していた場合は、動作調整装置１１２ｂは評価値が最小となった動作指令値に更新する。
【００７３】
図１５は、本発明の実施の形態３による学習処理部１１５の処理の流れの一例を示すフロー図である。図１５に示す通り、まずステップＳ１００において、学習処理部１１５は準備段階としての前処理を行う。次にステップＳ２００において、学習処理部１１５は学習処理を行う。
【００７４】
図１６は、本発明の実施の形態３による学習処理部１１５で行われる前処理の流れの一例を示すフロー図である。なお、動作の説明のために、図１６には学習処理部１１５以外のブロックが行う動作も記載されている。まず、ステップＳ１０１において、ロボット制御装置１１１は、力覚制御を行うための制御パラメータを設定する。次に、ステップＳ１０２において、ロボット制御装置１１１は、ロボット１２０を動作させて作業を試行する。次に、ステップＳ１０３において、指令値学習部１１３ｂは、その試行で得られたデータを取得する。各試行によって得られたデータを試行データと呼ぶ。試行データには、各試行で検出された力情報、各試行で使用された速度パターンを含む。力情報は、各試行において、所定の時間間隔で力覚センサ１４３によって取得された時系列のデータであり、力波形とも呼ばれる。次に、ステップＳ１０４において、記憶部１１４は、ステップＳ１０３で取得されたデータを記憶する。
【００７５】
次に、ステップＳ１０５において、学習処理部１１５は、試行データがＫ個以上取得されたか否かを判定する。ここで、Ｋは自然数であり、予め設定される。まだＫ個以上の試行データが取得されていなければ、処理はステップＳ１０２に戻る。一方、Ｋ個以上の試行データが取得されていれば場合、処理はステップＳ１０６に進む。したがって、ステップＳ１０６に処理が進んだ時点では、Ｋ個の試行データＤ１ｊ（ｊ＝１，２，３，・・・Ｋ）が取得され、記憶部１１４に記憶されている。
【００７６】
次に、ステップＳ１０６において、学習処理部１１５は、記憶部１１４に記憶されているＫ個の試行データに基づいて区分位置を定義する。区分位置とは、各区分の両端の分割点の位置である。分割点の位置は、例えば、エンドエフェクタ１３０の位置に対応する。分割点の位置が、速度目標値の切り替え位置となる。分割点の位置は、目標速度の切り替えの開始点であっても良いし、目標速度の切り替えの完了点であっても良い。また、分割点の位置は、内界センサ１４１で検出される動作速度が、目標速度から所定の誤差範囲内に収まることが保証される点であっても良い。
【００７７】
学習処理部１１５は、例えば、Ｋ個の試行データの平均や分散に基づいて区分位置を定義する。学習処理部１１５は、力波形の変化率に注目し、力波形が大きく変化する前後に分割点を設定することで、自動的に分割点の位置を決定することができる。あるいは、ユーザが作業内容に合わせて状態変化の生じる点を分割点として、手動で決定することもできる。
【００７８】
次に、ステップＳ１０７において、学習処理部１１５は、区分位置が定義されているか否かを判定する。区分位置が定義されていなければ、処理はステップＳ１０６に戻る。区分位置が定義されていれば、処理はステップＳ１０８に進む。次に、ステップＳ１０８において、学習処理部１１５は、各区分に対して速度目標値を定義する。速度目標値は、ユーザによって指定される力の上限値、および、目標タクトタイムに基づいて算出される。
【００７９】
具体的には、学習処理部１１５は、目標タクトタイムまでに作業を完了させるための標準作業速度を全体の速度目標値Ｖｄｎとして設定する。次に、学習処理部１１５は、力の上限値に基づいて、速度上限値Ｖｍａｘを定義する。エンドエフェクタ１３０が作業対象２００または周辺環境３００と衝突したときの速度と、その際にエンドエフェクタ１３０に加えられる外力との関係は、作業対象の剛性情報などに基づいて予め求めることができる。学習処理部１１５は、この関係を記憶したテーブル等を参照して速度上限値Ｖｍａｘを求めることができる。
【００８０】
学習処理部１１５は、全体の速度目標値Ｖｄｎと速度上限値Ｖｍａｘとを用いて、目標速度Ｖｄを決定する。速度目標値Ｖｄは、０より大きく、速度上限値Ｖｍａｘより小さい。目標速度Ｖｄは、徐々にＶｄｎに近づくように設定される。例えば、学習処理部１１５は、０＜Ｖｄ＜Ｖｄｎ＜Ｖｍａｘの条件下で、速度パラメータがある程度バラけるように、乱数を利用して複数個の速度目標値Ｖｄを定義する。このように、ステップＳ１０８において、学習処理部１１５は、決められた範囲内でバラけた値となるように速度目標値Ｖｄを決定する。次に、ステップＳ１０９において、学習処理部１１５は、速度目標値が定義されているか否かを判定する。速度目標値が定義されていなければ、処理はステップＳ１０８に戻る。速度目標値が定義されていれば、前処理は終了となる。前処理によって、学習処理を行う際の初期値が決定される。
【００８１】
図１７は、本発明の実施の形態３による学習処理部１１５で行われる学習処理の流れの一例を示すフロー図である。なお、動作の説明のために、図１７には学習処理部１１５以外のブロックが行う動作も記載されている。まず、ステップＳ２０１において、ロボット制御装置１１１は、ロボット１２０を動作させて作業を試行する。次に、ステップＳ２０２において、指令値学習部１１３ｂは、その試行で得られた試行データを取得する。次に、ステップＳ２０３において、記憶部１１４は、ステップＳ２０２で取得された試行データを記憶する。
【００８２】
次に、ステップＳ２０４において、学習処理部１１５は、試行データがＭ個以上取得されたか否かを判定する。ここで、Ｍは自然数であり、予め設定される。まだＭ個以上の試行データが取得されていなければ、処理はステップＳ２０１に戻る。一方、Ｍ個以上の試行データが取得されていれば、処理はステップＳ２０５に進む。したがって、ステップＳ２０５に処理が進んだ時点では、Ｍ個の試行データＤ２ｊ（ｊ＝１，２，３，・・・Ｍ）が取得され、記憶部１１４に記憶されている。なお、Ｍ組の区分位置、速度目標値が定義されていれば、ステップＳ２０１における試行はそれぞれ異なる組の区分位置、速度目標値を用いて実行される。したがって、ステップＳ２０５に処理が進んだ時点では、Ｍ組の区分位置、速度目標値に対応するＭ個の試行データＤ２ｊが記憶されることになる。
【００８３】
次に、ステップＳ２０５において、学習処理部１１５は、制約条件に基づいて、Ｍ個の試行データのそれぞれに対して評価値を演算する。演算された評価値は記憶される。次に、ステップＳ２０６において、学習処理部１１５は、Ｍ個の試行データのうち、評価値が最良となった試行データに対応する区分位置および速度目標値を求める。次に、ステップＳ２０７において、学習処理部１１５は、新しく求められたＭ個の評価値の中で最良の評価値と、過去に求められた評価値とを比較して、評価値が最良となる結果に収束したか否かを判定する。収束していれば、処理はステップＳ２０９に進み、調整を完了するための処理が行われ、動作指令値の調整は完了となる。動作指令値の調整が完了した時点で、最良の評価値が得られた区分位置および速度目標値が、動作指令値の調整結果となる。一方、まだ収束していなければ、処理はステップＳ２０８に進む。
【００８４】
次に、ステップＳ２０８において、学習処理部１１５は、新たにＭ組の区分位置および速度目標値を定義し、区分位置および速度目標値を更新する。Ｍ組の区分位置および速度目標値は、互いに区分位置または速度目標値が異なる。すなわち、ステップＳ２０８において、学習処理部１１５は、新たにＭ組の動作指令値を設定する。Ｍ組の動作指令値のそれぞれは、区分位置と各区分位置に対応する速度目標値をパラメータとして有している。各組の動作指令値においては、区分数よりも１つ多い区分位置が存在し、区分数と同じ数の速度目標値が存在する。ステップＳ２０８の処理が完了すると、処理はステップＳ２０１に戻る。
【００８５】
以上のように、学習処理において、ロボットシステム１００は、設定された区分位置と、各区分に対して設定された速度目標値とに基づいて、Ｍ回の試行作業を実施する。Ｍ回の試行作業は、それぞれ区分位置または速度目標値が異なる条件下で実施される。Ｍ回の試行が終了する度に、学習処理部１１５は、各区分に対する分割点の位置および各区分に対する速度目標値を更新する。
【００８６】
図１８は、本発明の実施の形態３によるロボットシステム１００における試行時の速度パターンの一例を示す図である。また、図１９は、本発明の実施の形態３によるロボットシステム１００における試行時に取得される力情報の一例を示す図である。図１８及び図１９において、Ｐ０〜Ｐ３は分割点の位置であり、Ｓ１〜Ｓ４は４つの区分を表している。また、図１８において、Ｖ１〜Ｖ４は、各区分における速度目標値を表している。図１９は、図１８に示す速度パターンによる試行において取得された力情報を表している。  
【００８７】
図１４に示すような組立作業においては、部品間の接触が発生する位置の付近で、第１の部品２１０を保持するエンドエフェクタ１３０と第２の部品３１０との作用反力が制限値よりも大きくなることがある。この場合、制限値を超えた力の量を制限超過量で評価できる。図１９においては、区分Ｓ２において、力覚センサ１４３で検出された力の大きさＦが制限値Ｌ０を超えている。制限超過量ＤＨは、検出された力の大きさＦが制限値Ｌ０を超えている場合に、検出された力の大きさＦと制限値Ｌ０との差分で求められる。制限超過量ＤＨが設定する閾値より大きい区分がある場合は、その区分の速度目標値を調整する必要がある。
【００８８】
図１９では区分Ｓ２で検出された力Ｆが大きくなっている。したがって、図１８に示す速度パターンに対して、学習処理部１１５は、区分Ｓ２における速度目標値Ｖ２が小さくなるように速度パターンを調整する。さらに、学習処理部１１５は、区分Ｓ２の両端となる分割点Ｐ１およびＰ２の位置も調整する。図１８に示す速度パターンにおいて、分割点Ｐ１は速度目標値を下げ始める点であり、分割点Ｐ２は速度目標値を上げ始める点である。すなわち、学習処理部１１５は、速度目標値の変化を開始する点の位置も調整する。これらの調整は、制約条件に基づいて行われる。
【００８９】
例えば、制約条件として、力の大きさＦに制限値Ｌ０を設定した場合、上限となる制限値Ｌ０を超えていない試行に対しては力の大きさＦに関する評価値が０となるように評価関数を定義する。力の大きさＦに関する評価値が０にならない場合は、学習処理部１１５は、速度目標値Ｖ２、分割点Ｐ１、Ｐ２の位置を更新し続けて、動作指令値を調整する。この調整と同時に、なるべく高速な作業が実施されるように評価関数を定義することもできる。図１９においては、区分Ｓ１、Ｓ３及びＳ４では、検出された力の大きさＦは、制限値Ｌ０に対して余裕量ＤＬが存在する。ここで、余裕量ＤＬは制限値Ｌ０までの量、もしくは制限値Ｌ０までの量を指標化したものとする。制限値Ｌ０までの量は、制限値Ｌ０と検出された力の大きさＦとの差分で定義される。余裕量ＤＬが０より大きい場合は、速度目標値を上げる方向に調整、更新することができる。このような調整によって、なるべく高速に作業を行うような調整が可能となる。
【００９０】
これらの調整を図１７におけるステップＳ２０５およびステップＳ２０６で行う。このとき、評価値を最良とする分割点Ｐｉの位置および速度目標値を求めるために、評価関数を用いた機械学習あるいは最適化手法を適用することができる。例えば、強化学習、ベイズ最適化、粒子群最適化などの手法が例示される。これらの手法によって、評価値を最良とする動作指令値を設定することができる。例えば、作業中の各時点で検出される力Ｆ（ｔ）および作業時間Ｔを用いた式（１）で表される評価関数Ｆｑが定義されているとする。学習処理部１１５は、評価関数Ｆｑで算出される評価値が小さくなるように動作指令値を調整することで、力Ｆ（ｔ）および作業時間Ｔが小さくなるような動作指令値を求めることができる。図１７に示すとおり、評価関数によって求められる評価値が収束したところで、調整は完了となる。
【００９１】
【数１】
0006696627.tif 000002
【００９２】
本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００は、以上のように構成される。本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００によれば、区分毎にロボット１２０の動作が調整される。したがって、作業全体の動作を不要に遅くすることなく、しかも作業対象２００または周辺環境３００に過大な負荷が作用することがないように、ロボット１２０の動作を調整でき、また、ロボット１２０の動作の調整を容易化できる。さらに、力覚センサ１４３の検出値が所定の値よりも小さくなる区分については動作が早くなるように調整されるように構成すれば、作業全体の動作をより早くすることも可能となる。
【００９３】
以上のように、本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００によれば、区間ごとに最適な動作指令値を学習し、更新することで、従来の調整では実現できなかった細やかな動作指令値の設計が可能となり、結果として高速かつ高品質なロボット作業を実現することができる。具体的には、本実施の形態の動作調整装置１１２、動作制御システム１１０及びロボットシステム１００によれば、部品のはめあい作業やコネクタの挿入作業などにおいて、はめあう部品間の反力を抑制しながら作業時間を短縮することができる。
【００９４】
実施の形態４．
図２０は、本発明の実施の形態４による動作調整装置１１２ｃの構成例及び周辺のブロックを示すブロック図である。本実施の形態の動作調整装置、動作制御システム及びロボットシステムにおいて、他の構成は図１に示されたものと同様である。図２０は、ロボットシステム１００の構成の一部を抽出して示したものである。本実施の形態の動作調整装置１１２ｃは、指令値学習部１１３ｂおよび指令値区分部１１６を備える。
【００９５】
指令値区分部１１６には、更新前の動作指令値がロボット制御装置１１１から入力され、センサ１４０の検出値であるセンサ情報がセンサ１４０から入力され、制約条件が外部から入力される。指令値区分部１１６は、これらの入力に対して、エンドエフェクタ１３０等の位置あるいは指令値進捗率を用いて動作指令値を区分する分割点Ｐｉ（ｉ＝０，１，２，・・・，Ｎ＋１）を定義し、これを区分情報として出力する。指令値学習部１１３ｂは、図１２に示されたものと同様のものである。
【００９６】
本実施の形態の動作調整装置１１２ｃは、センサ情報の特徴量や制約条件を用いて、たとえば機械学習を適用して分割すべき空間を決定し、ここで分割された特徴量空間上のクラス情報を利用して現在の分割点Ｐｉを生成する。動作調整装置１１２ｃは、図１５に示す処理と同様に、前処理及び学習処理を行う。図２１は、本発明の実施の形態４による動作調整装置１１２ｃで行われる前処理の流れの一例を示すフロー図である。また、図２２は、本発明の実施の形態４による動作調整装置１１２ｃで行われる学習処理の流れの一例を示すフロー図である。
【００９７】
図２１に示す前処理は、図１６に示す処理と比較すると、ステップＳ１０６ｂにおいて、区分位置に加えて、区分数も定義する点が異なる。例えば、波形的な特徴に基づいて自動的に区分を生成することが出来る。波形的な特徴として例えば、時系列で取得した位置データ、速度データ、力データおよび力変化率データに関して、一定時間毎Ｔｓｍｐのデータの最大値あるいは度数分布を入力とし、入力に基づいてクラスタリングを実施する。クラスタリングには、機械学習の一種であるｋ−ｍｅａｎｓ法などクラスタリング手法を用いて波形の特徴的な履歴毎に区切れ目を定義することが出来る。これに基づいて例えばＸ個の種類の波形特徴を定義したとする。
【００９８】
次に、取得したクラスタに基づいて、元のデータに対してラベル付けを実施することができる。例えば、Ｘ個存在するクラスタそれぞれに対する、対象としている入力の類似度Ｓ（ｉ）（ここで、ｉ＝１，２，３，・・・，Ｘ）を定義して、どのグループの属性の特徴に最も近いかということをパーセンテージで表現することが出来る。その場合、最もパーセンテージが大きなグループとして、ラベル付けすることができる。時間ｔを変数して定義された各時刻のラベルＬ（ｔ）とする。ステップＳ１０６ｂにおいて、ラベルの変化が生じる全てあるいはいくつかの部分で区切り目として、区分数・区分位置を定義することできる。
【００９９】
一方、図２２に示す学習処理は、図１７に示す処理と比較すると、ステップＳ２１１、ステップＳ２１２、ステップＳ２１３の３つの処理が異なる。図２２に示す学習処理は、ステップＳ２１１において、センサ情報、動作指令値および制御パラメータ、制約条件に基づき、区分数と区分位置とを学習するための評価関数を用いて第１の評価値を求める。また、図２２に示す学習処理は、ステップＳ２１２において、第１の評価値に基づいて区分数および区分位置を学習し、更新する。さらに、図２２に示す学習処理は、ステップＳ２１３において、動作指令値を学習するための第２の評価値を求める。したがって、図２２に示す学習処理は、区分数および区分位置を学習した後に、動作指令値を学習することになる。
【０１００】
以上の処理を含むことで、区分情報を自動的に学習する枠組みが追加され、区分情報を予め事前知識を活用して設計する必要が無くなることになり、設計時間を短くするという格別の効果を得ることができる。
【０１０１】
実施の形態５．
図２３は、本発明の実施の形態５による動作調整装置１１２ｄの構成例及び周辺のブロックを示すブロック図である。本実施の形態の動作調整装置、動作制御システム及びロボットシステムにおいて、他の構成は図１に示されたものと同様である。図２３は、ロボットシステム１００の構成の一部を抽出して示したものである。本実施の形態の動作調整装置１１２ｄは、指令値区分部１１６および動作学習部１１７を備える。指令値区分部１１６は、図２０に示されたものと同様のものである。
【０１０２】
図２４は、本発明の実施の形態５による動作学習部１１７の構成例を示すブロック図である。動作学習部１１７は、指令値学習部１１３ｂおよびパラメータ学習部１１８を備える。指令値学習部１１３ｂは、図２０に示されたものと同様のものである。動作学習部１１７には、ロボット制御装置１１１から更新前の動作指令値および制御パラメータが入力される。また、動作学習部１１７には、外部から制約条件が入力される。また、動作学習部１１７には、センサ１４０からセンサ情報が入力される。また、動作学習部１１７には、指令値区分部１１６から区分情報が入力される。入力された信号は、指令値学習部１１３ｂおよびパラメータ学習部１１８に入力される。
【０１０３】
パラメータ学習部１１８は、位置指令値、速度指令値、加速度指令値といった直接的なロボットの振る舞いではなく、外界センサに基づくセンサフィードバック制御系のゲイン、インピーダンスパラメータ、フィルタ設計パラメータなどを調整する。すなわち、パラメータ学習部１１８は、フィードバック制御系の制御パラメータを調整する。パラメータ学習部１１８は、区分情報、センサ情報、制約条件、指令値および制御パラメータを入力として、これらを用いて、入力された制御パラメータを、制約条件を満たすような制御パラメータに更新する。制御パラメータを更新する際には、機械学習を用いることができる。例示として、パラメータ学習部１１８は、予め定義された評価関数で得られる評価値が大きくなるように制御パラメータを更新し、漸近的に収束するまで演算を繰り返す。なお、定義される評価関数によっては、パラメータ学習部１１８は、評価値が小さくなるように制御パラメータを更新することになる。
【０１０４】
ここで、図２４において、パラメータ学習部１１８は、指令値学習部１１３ｂとは独立した構成として例示されている。しかし、パラメータ学習部１１８及び指令値学習部１１３ｂは、必ずしもそれぞれが独立した処理を行う必要はない。例えば、パラメータ学習部１１８及び指令値学習部１１３ｂ、１つの評価関数を用いて同時に処理を行うこともできる。なお、パラメータ学習部１１８は、制御パラメータを区分毎に調整する。また、指令値学習部１１３ｂで使用される区分数と、パラメータ学習部１１８で使用される区分数とは、必ずしも同じではない。例えば、指令値学習部１１３ｂで使用される区分数と比較して、パラメータ学習部１１８で使用される区分数の方が多い場合が考えられる。
【０１０５】
また、パラメータ学習部１１８は、外界センサ１４２に基づくセンサフィードバック制御システムにおける制御パラメータだけではなく、内界センサ１４１に基づくフィードバック制御システムにおける制御パラメータも更新することができ、この結果、より高品質で高速なロボット作業を実現することが可能となる。
【０１０６】
図２５は、発明の実施の形態５による動作調整装置１１２ｄの別の構成例及び周辺のブロックを示すブロック図である。図２５では、指令値学習部１１３ｂを備えない構成例を示している。この構成例では、動作調整装置１１２ｄは、動作指令値の更新は行わず、制御パラメータのみを更新する。
【０１０７】
実施の形態６．
本実施の形態の動作調整装置、動作制御システム及びロボットシステムは、速度パターンを調整するに際し、各区分Ｓｉにおける速度目標値に対して、上限値または下限値を定め、それぞれの区分における探索空間を作業対象の剛性や作業対象の組立て品質上の制約に基づいて定義する。本実施の形態の動作調整装置、動作制御システム及びロボットシステムによれば、探索空間の中で、実現可能であるが組立て品質上の問題が生じる動作指令値あるいは制御パラメータを探索しなくなる。したがって、ユーザが求める作業品質を規定した範囲で、高速な組立を実現する動作指令値あるいは制御パラメータに収束させることができる。これにより、調整後のロボットは、作業対象に作用させる反力を大きくせず傷つけない作業品質を確保することができるという、格別な効果を得ることができる。
【符号の説明】
【０１０８】
１００  ロボットシステム、１１０  動作制御システム、１１１  ロボット制御装置、１１２、１１２ｂ、１１２ｃ、１１２ｄ  動作調整装置、１１３、１１３ｂ  指令値学習部、１１４  記憶部、１１５  学習処理部、１１６  指令値区分部、１１７  動作学習部、１２０  ロボット、１３０  エンドエフェクタ、１４０  センサ、１４１  内界センサ、１４２  外界センサ、１４３  力覚センサ、２００  作業対象、２１０  第１の部品、２１１  穴、３００  周辺環境、３１０  第２の部品、３１１  突起、４０１  プロセッサ、４０２  メモリ、４０３  データバス。
【図１】
0006696627.tif 000003
【図２】
0006696627.tif 000004
【図３】
0006696627.tif 000005
【図４】
0006696627.tif 000006
【図５】
0006696627.tif 000007
【図６】
0006696627.tif 000008
【図７】
0006696627.tif 000009
【図８】
0006696627.tif 000010
【図９】
0006696627.tif 000011
【図１０】
0006696627.tif 000012
【図１１】
0006696627.tif 000013
【図１２】
0006696627.tif 000014
【図１３】
0006696627.tif 000015
【図１４】
0006696627.tif 000016
【図１５】
0006696627.tif 000017
【図１６】
0006696627.tif 000018
【図１７】
0006696627.tif 000019
【図１８】
0006696627.tif 000020
【図１９】
0006696627.tif 000021
【図２０】
0006696627.tif 000022
【図２１】
0006696627.tif 000023
【図２２】
0006696627.tif 000024
【図２３】
0006696627.tif 000025
【図２４】
0006696627.tif 000026
【図２５】
0006696627.tif 000027