以下に、本発明の実施の形態にかかるロボットの動作調整装置、動作制御システムおよびロボットシステムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1にかかる動作調整装置を備えたロボットシステム100のシステム構成の一例を示すブロック図である。図1に示す通り、ロボットシステム100は、動作制御システム110、ロボット120、エンドエフェクタ130、内界センサ141、及び外界センサ142を備える。また、動作制御システム110は、ロボット制御装置111及び動作調整装置112を備える。ロボット制御装置は、ロボットコントローラとも呼ばれる。
ロボット制御装置111は、内界センサ141及び外界センサ142の検出結果に基づいて、ロボット120の動作を制御するための動作指令値をロボット120に送信し、ロボット120の動作を制御する。ロボット120には、ロボットハンド等のエンドエフェクタ130が装着される。エンドエフェクタ130は、作業対象200に直接働きかける。エンドエフェクタ130は、ロボットシステム100が行う各作業に応じて適切な種類のものが選択される。作業対象200の周辺には、周辺環境300が存在する。
周辺環境300は、例えば、作業対象200を組み付ける先となる部品、作業対象200を位置決めするジグ、作業対象200に加工を施す電動ドライバ等の工具、作業対象200を供給するパーツフィーダ、ロボット120を取り囲む安全カバー、作業対象200を搬送するベルトコンベア等である。また、作業対象を撮像するカメラなど、外界センサ142も周辺環境300の一部として扱う場合もある。これは、外界センサ142がロボット120の周辺の所定の位置に固定されている場合などに、ロボット120またはエンドエフェクタ130が外界センサ142に接触する可能性があるためである。
ロボット制御装置111から出力される動作指令値は、例えば、ロボット120に装着されたエンドエフェクタ130の各時刻における目標位置および目標姿勢を表す情報、すなわち位置指令値である。動作指令値が、各時刻におけるエンドエフェクタ130の目標位置を表す場合、動作指令値によって各時刻間のエンドエフェクタ130の移動速度も表されている。したがって、位置指令値は、ロボット120の目標動作速度を表す速度指令値であると考えることもできる。
また、ロボット制御装置111から出力される動作指令値は、ロボット120の目標動作速度、またはエンドエフェクタ130の目標移動速度を表す速度指令値であってもよい。目標動作速度または目標移動速度は、ロボット120の動作の各時点の間の速度、または経路の各地点の間の速度で与えられる。さらに、動作指令値は、ロボット120の動作の目標加速度、またはエンドエフェクタ130の移動の目標加速度を表す加速度指令値であってもよい。動作指令値は、ロボット120の動作を直接的に制御するものであればよく、様々な形態が考えられる。
動作調整装置112は、外界センサ142の検出結果と、外部から与えられる制約条件とに基づいて、ロボット制御装置111で生成される動作指令値を調整し、更新する。すなわち、動作調整装置112は、ロボット120の動作を調整する。言い換えると、動作調整装置112は、内界センサ141及び外界センサ142の検出結果と、ロボット制御装置111から出力される動作指令値との対応関係を調整し、調整結果を反映して対応関係を更新することになる。なお、動作指令値の調整は、動作指令値の修正、または動作指令値の補正と言い換えることもできる。
更新された動作指令値が存在する場合、ロボット制御装置111は、更新された動作指令値をロボット120へと出力する。動作調整装置112は、外界センサ142の検出結果だけではなく、内界センサ141の検出結果も参照して動作指令値を更新してもよい。なお、制約条件は、動作調整装置112またはロボット制御装置111の内部に予め記憶されていてもよい。
本実施の形態のロボットシステム100は、動作指令値を調整して更新する調整処理と、更新された動作指令値を用いて作業対象200に対する作業を行う作業処理との2つの処理を行う。言い換えると、ロボットシステム100の動作には、調整フェーズと作業フェーズとがあり、調整処理は、調整フェーズにおけるロボットシステム100の処理である。また、作業処理は、作業フェーズにおけるロボットシステム100の処理である。動作調整装置112は、調整処理において、最適な動作指令値に近づくように動作指令値を調整する。ただし、調整処理と作業処理とは完全に分離される必要はない。例えば、作業対象200に対する作業が行われている間にも、動作調整装置112が最適な動作指令値を随時算出するように、ロボットシステム100が構成されてもよい。この構成においては、ロボットシステム100は、現在使用している動作指令値よりも適切な動作指令値を算出した場合など、更新が必要な所定のタイミングで動作指令値を更新する。この点は、以降の実施の形態でも同様である。
図2は、ロボット制御装置111および動作調整装置112を実現するハードウェア構成の一例を示す図である。ロボット制御装置111及び動作調整装置112は、メモリ402に記憶されるプログラムをプロセッサ401で実行することで実現される。プロセッサ401とメモリ402とは、データバス403で接続される。メモリ402には、揮発性のメモリ及び非揮発性のメモリが備えられ、一時的な情報は揮発性のメモリに記憶される。なお、ロボット制御装置111及び動作調整装置112は一体として構成してもよいし、別体として構成してもよい。例えば、ロボット制御装置111と動作調整装置112とが、ネットワークなどを介して接続されていてもよい。以降の実施の形態においても、ロボット制御装置111及び動作調整装置112は同様のハードウェア構成で実現できる。
ロボットシステム100は、内界センサ141及び外界センサ142で取得されたデータに基づいて動作制御システム110が動作指令値を出力し、動作指令値に追従してロボット120が動作する制御系を構成している。内界センサ141としては、ロボット120の関節の位置を取得するセンサ、関節の動作速度を取得するセンサ、関節を動作させるためのモータの電流値を取得するセンサ等がある。ロボットシステム100は、ロボット制御装置111、ロボット120、及び内界センサ141によって、エンドエフェクタ130の位置決めを行う位置制御系を構成している。ロボット120の関節の位置を取得するセンサとしては、例えば、モータの回転量を検出するエンコーダ、レゾルバ、ポテンショメータなどが考えられる。また、関節の動作速度を取得するセンサとしては、タコメータなどが考えられる。内界センサ141としては、他にも、ロボット120自身の情報として、ジャイロセンサ、慣性センサ等が使用される場合がある。
内界センサ141に基づくフィードバック制御によって、ロボットシステム100は、マテハン作業などを行う位置制御ロボットシステムを構成する。ここで、マテハン作業とは、資材および部品といった対象物を移送または搬送する作業である。この位置制御ロボットシステムを内界センサ141に基づくフィードバック制御システムと呼ぶ。内界センサ141に基づくフィードバック制御において、制御パラメータとしては、位置制御のゲイン、速度制御のゲイン、電流制御のゲイン、フィードバック制御に用いられるフィルタの設計パラメータ等が存在する。フィードバック制御に用いられるフィルタとしては、移動平均フィルタ、ローパスフィルタ、バンドパスフィルタ、ハイパスフィルタ等が考えられる。なお、内界センサ141に基づくフィードバック制御は、ロボット120が動作指令値に従って動作するための制御となる。言い換えると、内界センサ141に基づくフィードバック制御は、動作指令値の調整を実現するために行われる制御となる。
一方で、外界センサ142としては、力覚センサ、カメラ等のビジョンセンサ、触覚センサ、タッチセンサ等がある。外界センサ142は、ロボット120と、作業対象200または周辺環境300との接触状態および位置関係の一方または双方を計測する。ロボットシステム100は、ロボット制御装置111、動作調整装置112、ロボット120、及び外界センサ142によって、外界センサ142に基づくセンサフィードバック制御システムを構成している。また、ロボットシステム100は、外界センサ142から出力されるセンサ信号に基づいてセンサフィードバック制御を実施するのではなく、外界センサ142からのセンサ信号を単にトリガー信号として利用する場合もある。この場合、ロボットシステム100は、トリガー信号を起点として、内界センサ141によるフィードバック制御の制御パラメータを切り替える。外界センサ142に基づくセンサフィードバック制御システムは、位置制御ロボットシステムのアウターループとして構築されている。
外界センサ142に基づくセンサフィードバック制御システムは、加速度、速度、位置姿勢、距離、力、モーメント等によって、ロボット120、ロボットアームまたはエンドエフェクタ130と、作業対象200または周辺環境300との位置関係、接触挙動等をセンシングする。さらに、外界センサ142に基づくセンサフィードバック制御システムは、センシング結果に基づいて、所望の位置関係または力応答を得るようにロボット120の動作を制御する。言い換えると、外界センサ142に基づくセンサフィードバック制御システムは、所望の位置関係または力応答を得るように動作指令値を修正する。外界センサ142に基づくセンサフィードバック制御システムにおいて、制御パラメータとしては、力覚制御に関する力制御ゲイン、インピーダンスパラメータ、ビジュアルサーボ制御に関するゲイン、ビジュアルインピーダンスパラメータ、フィードバック制御に用いられるフィルタの設定パラメータなどがある。
内界センサ141および外界センサ142に基づいて制御を行う場合に、調整が必要となる制御パラメータを、以後では単にパラメータと呼ぶことがある。ここで、内界センサ141または外界センサ142として使用されるセンサとしては、具体的には、電流値センサ、関節位置センサ、関節速度センサ、温度距離センサ、カメラ、RGB−Dセンサ、近接覚センサ、触覚センサ、力センサ等が考えられる。また、内界センサ141または外界センサ142の計測対象は、ロボット120の位置姿勢、エンドエフェクタ130の位置姿勢、作業対象200となるワークの位置姿勢、作業者の位置姿勢等が考えられる。
図3は、本発明の実施の形態1にかかる動作調整装置112の構成例および周辺のブロックを示すブロック図である。図3は、ロボットシステム100の構成の一部を抽出して示したものである。動作調整装置112は、指令値学習部113および物理制約演算部151を備える。なお、図3において、センサ140は、図1に示す内界センサ141及び外界センサ142を1つにまとめたものである。上述のように、センサ140としては多様なものが考えられる。しかし、本実施の形態のロボットシステム100は、センサ140として、ロボット120の動作に起因してエンドエフェクタ130に作用する外力を検出する力覚センサを少なくとも備える。この力覚センサは、外界センサ142となる。なお、センサ140として少なくとも力覚センサを含むことは、以降の実施の形態でも同様である。
力覚センサは、エンドエフェクタ130に作用する外力を計測する。力覚センサによる外力の計測結果は、力制御あるいはインピーダンス制御を実施するのに用いられる。力覚センサで計測される外力は力覚情報の検出値F(t)として、時刻tに関する値として表現できる。ここでは、センサのデータを取得するユニットが取得するデータを制御周期tcycごとに演算に利用するものとしてt=count*tcyc(count=0,1,2,…)で表現することが出来る。なお、センサのサンプリング周期をtscycとするとき、t=count*tscyc(count=0,1,2,…)と表現して力覚情報の検出値F(t)を取扱うことも出来る。動作調整装置112は、ロボット120の状態量として関節位置またはロボットエンドエフェクタ位置を利用するため、ロボットコントローラの制御周期trcycと力覚情報の検出値F(t)は同期した形で処理されるのが望ましい。そのため、実施の形態1の中ではtrcyc=tcycとして処理されるものとする。なお、エンドエフェクタ130が作業対象200または周辺環境300に与える力を制御することを力制御と呼ぶ。また、力覚センサの検出結果に従ってロボット120の動作を制御することを力覚制御と呼ぶ。力制御においては、目標作業力が設定され、作業対象200または周辺環境300に与えられる力の大きさが制御される。
一方、インピーダンス制御においては、エンドエフェクタ130と作業対象200とが接触した場合などに発生する接触力に関するインピーダンス特性(バネ、ダンパ、慣性)が定義され、制御に利用される。接触力が発生する場合としては、エンドエフェクタ130と周辺環境300とが接触した場合、エンドエフェクタ130に把持された作業対象200と周辺環境300とが接触した場合などが考えられる。また、インピーダンス特性は、インピーダンスパラメータで表される。
力制御においては、上述した目標作業力である力制御の目標値を決定する必要がある。また、インピーダンス制御においては、インピーダンスパラメータを用いて制御特性を決定する必要がある。さらに、力制御及びインピーダンス制御のいずれにおいても、制御の応答性に寄与するゲインなども決定する必要があり、調整項目は多い。従来のロボットシステムでは、作業を安定的に行うことを目的としたパラメータ調整が多くなされてきた。この場合、ロボット120の動作の応答性、機械剛性等を含めたシステム特性を同定して、条件または状態によらず安定して応答するパラメータセットを1つ見つけることになる。しかし、作業対象200との接触を伴うロボット120の動作では、動作の進行によって、作業対象200とエンドエフェクタ130との間の接触状態が変化する。したがって、パラメータセットの調整は、接触状態の遷移を考慮して行われる必要がある。この調整は試行錯誤的に行われることになり、容易ではなかった。
以下、動作調整装置112の各構成による処理について説明する。まず、指令値学習部113による基本的な学習処理に関して説明し、その後に物理制約演算部151による物理制約条件の演算処理、および、物理制約条件を指令値学習部113に反映する処理について説明する。
本実施の形態のロボットシステム100においては、動作調整装置112が動作指令値を更新することで、ロボット120の動作が適切となるように制御する。動作調整装置112には、制約条件が入力される。制約条件には、力覚センサで検出される力覚情報の上限値または下限値が含まれる。また、制約条件には、目的に応じて大きさが異なる水準が存在する。本実施の形態では、制約条件1(Flim)および制約条件2(FlimHW)の2つを定義する。制約条件1は、ユーザが指定する作業品質を保つための条件とする。制約条件1では、組立に必要な最小限の力より大きく、かつ組み立てるパーツに損傷が生じない最大限の力が設定される。後述するとおり、動作調整装置112では、制約条件1(Flim)を超えない学習結果となるように、試行実験のたびに作用外力F(t)の評価を行い、速度パターンの更新を進める。なお、速度パターンの更新を進めることは、学習を進めることに相当する。速度パターンは、ロボット120の可動部の動作速度、エンドエフェクタ130の移動速度、または作業対象200の移動速度を時間の経過とともにどのように変化させるかを示す。ロボット制御装置111は、速度パターンに従ってロボット120の動作を制御する。そのため、速度パターンは、ロボット120の動作を示す情報といえる。また、作用外力F(t)の評価とは、作用外力F(t)とFlimを比較し、作用外力F(t)が制約条件1を満たす状態か否か、すなわち、「F(t)<Flim」が成り立つか否かを確認する処理である。
ここで、作用外力F(t)の値は、動作指令値および制御パラメータの更新が続いている状態、すなわち、学習中には、制約条件1(Flim)を超えることが禁止されていない。動作調整装置112が学習を進めるにあたり、速度パターンを評価してより高速な動作を実現可能な速度パターンを探索するために、作業時間が短いということと作用外力F(t)がFlimよりも小さいということを同時に満たしている解を探すことになる。ただし、作業時間と作用外力F(t)の大きさはトレードオフの関係になるため、作業時間を短くしようとすると作用外力F(t)の値は大きくなる。つまり、作業時間を短くし過ぎると、作用外力F(t)がFlimを超えてしまい、組み立てるパーツに損傷が生じるおそれがある。動作指令値および制御パラメータの学習過程では、作用外力F(t)が、Flimを超えた速度パターンと超えていない速度パターンを比較したときに、作用外力F(t)がFlimを超えていない速度パターンがよりよい学習結果であるという高い評価値を与える。作業時間に関しては、作用外力F(t)がFlimを超えない範囲で短いものを高い評価値とすることができる。
作用外力F(t)の評価方法としては、例えば、「F(t)<Flim」を満たさない場合は0点、満たす場合はF(t)の最大値F(t)maxを用いてF(t)max/Flimを算出し、これを評価点(最大で1)とする方法が考えられる。この評価方法とすることで、満たすべきFlimをギリギリで超えない高速な速度パターンを高評価して調整を実施することができる。ただし、作用外力F(t)の評価方法をこれに限定するものではない。
また、制約条件2(FlimHW)は、システムに含まれる要素の破損リスクに関する水準とする。すなわち、作業品質ではなく、ロボットシステム100が破損するリスクを取り扱う制約条件が制約条件2である。高速な動作を実現可能な速度パターンの探索をできるだけ限界に近い速度で行う場合、すなわち、探索処理の所要時間をできるだけ短くする場合、制約条件1(Flim)を超える範囲も探索する方がよいが、一方で、ロボットシステム100を破損するレベルの高速動作は抑制する必要がある。そこで、制約条件2(FlimHW)を「Flim<FlimHW」として設定し、力覚センサで検出される力覚情報が制約条件2(FlimHW)を超える場合、センサ、エンドエフェクタ、ロボット本体、対象部品のいずれかに破損するリスクがあるレベルの過大な力がかかっているものとして取扱う。すなわち、Flimに出来るだけ近い解を求めようとして、様々な指令値あるいはパラメータの調整結果を学習により獲得していく際、ロボットシステム100が破損するのを防止するために、調整の過程ではFlimHWを超えないという条件の元で学習を進めることが本発明の目的である。なお、破損リスク評価値あるいは破損リスクとは、破損リスク評価値Rbrk=F/FlimHWとして定義することができる。この値が1を超える場合には破損リスクがあるものとして、これを避けるように、動作調整装置112は学習を進める。以降では、動作制御システム110から出力される動作指令値が速度指令値であるものとして説明する。速度指令値は、エンドエフェクタ130の移動経路上の各地点に対する、エンドエフェクタ130の目標移動速度とする。この時、時系列の速度指令値は、各地点に対する速度パターンとなる。速度指令値は、作業中の各時点に対するロボット120の目標動作速度であってもよい。
以下、指令値学習部113の基本的な処理について説明する。
指令値学習部113では、試行実験を実施したのちに次に動作を開始する前に速度パターンを調整して所望の作業時間および作用外力を満たすようにする。なお、速度パターンの調整は、動作指令値および制御パラメータの少なくとも一方を調整することを意味する。従来、動作中にセンサの出力に基づいて力制御などのフィードバック制御を行って作用外力を調整する方法もあるが、繰り返し作業においては本実施の形態のように動作開始前に動作指令値を更新することで高速化を図ることが可能となる。速度パターンでは、目標速度Vi(i=1,2,3,…)と目標速度の切り替わり位置Pi(i=1,2,3,…)が定義される。目標速度Viはロボット120の目標動作速度、または、エンドエフェクタ130の目標移動速度である。
なお、切り替わり位置Piは、切り替わり時間、または、後述する切り替わりのためのパラメータで設定してもよい。ロボット制御装置111は、試行実験として動作を行う前に速度パターンを決定し、決定した速度パターンに従ってロボット120に動作指令値を出力する。試行実験後に、指令値学習部113は、センサ140に相当する力覚センサから得られた力覚情報に基づいて評価値を計算し、次の試行実験が開始となる前に、ロボット制御装置111から出力される動作指令値を更新する。目標速度Viと切り替わり位置Piにより、速度パターンは複数の区間に分かれる。本実施の形態の特徴として複数の区間に分け、複数の区間の切り替わり位置および、当該区間における目標速度が複数回の試行によって学習される。同処理については後述する。
上記の切り替わりのためのパラメータとしては、位置または時間を基準とした動作指令値の進捗率が例示される。このパラメータは図3に示す区分情報として指令値学習部113に入力される情報に基づいて定義される。進捗率とは、動作指令値のひとまとまりについて、動作指令値開始から現時点までの移動距離または関節軸の回転量が、動作指令値開始から完了時点までの総移動距離または総回転量に対してどの程度かをパーセンテージで表現した量、あるいは、完了時点までに指令値実行に要する補間命令を出す回数N回を100%としたときに、k番目(k=1,2,…,N)の補間命令によって実現される移動距離、回転量、あるいはk番目の実行に要する補間命令を出す回数k回をパーセンテージで表現した量となる。具体的には、N=100である場合に、k=10であれば、動作指令値の進捗率は10%である。また、エンドエフェクタ130が位置P1から位置P2に移動する場合であれば、並進方向の補間距離あるいは回転方向については各回転軸周り(X軸周りA[deg.]、Y軸周りB[deg.]、Z軸周りC[deg.])の回転量をみて、位置P1で(X,Y,Z,A,B,C)=(0,0,0,180,0,180)、位置P2で(X,Y,Z,A,B,C)=(0,0,100,180,30,180)とするとき、指令してきた合計距離について、各軸で進捗率を定義すると、位置Px=(0,0,40,180,12,180)が進捗率40%である。補間方法はさまざまあり、一定比率で移動する場合だけではなく、指令値は加減速するので、初期位置と目的位置の間の進捗率の定義は以上に挙げたものに限定しない。
ここでは、距離に基づく進捗率だけを説明したが、速度台形で補間処理を行う場合もある。具体的には、縦軸に速度、横軸に時間をとった場合の位置P1の動作開始から位置P2で停止するまでの速度指令パターンに対し、その速度指令の状態に対応する時間経過を速度指令値の全体所要時間で割った比率に基づいて進捗率として表現することも出来る。また、目標速度の切り替わり位置Piは、目標速度の切り替えの開始点であってもよいし、目標速度の切り替えの完了点であってもよい。また、目標速度の切り替わり位置Piは、内界センサ141で検出される動作速度が、目標速度から所定の誤差範囲内に収まることが保証される点であってもよい。
図4は、本発明の実施の形態1にかかる動作調整装置112の動作を説明するための図である。図4に示すように、本実施の形態では、ロボット120に装着されたエンドエフェクタ130が位置P0から位置P3まで移動する場合を想定する。ロボット120には、図1に示す外界センサ142として力覚センサ143が取り付けられ、力覚センサ143は、エンドエフェクタ130に作用する外力を計測するものとする。なお、後述する他の実施の形態でも同様に、ロボット120に装着されたエンドエフェクタ130が位置P0から位置P3まで移動する場合を想定し、また、力覚センサ143がエンドエフェクタ130に作用する外力を計測するものとする。以下の説明では、エンドエフェクタ130に作用する外力を「作用外力」または単に「力」と表現する場合がある。
図5は、本発明の実施の形態1にかかるロボットシステム100における速度パターンの更新動作のイメージを示す図である。図5において横軸はエンドエフェクタ130の位置P、縦軸はエンドエフェクタ130の目標移動速度Vである。図5に示す更新前の速度パターンでは、エンドエフェクタ130が位置P0から位置P3に移動する間の目標移動速度はV1で一定である。一方、更新後の速度パターンでは、エンドエフェクタ130が位置P0から位置P3に移動する間に、目標移動速度がV1からV2に変化している。動作調整装置112は、力覚センサ143の検出結果に基づいて速度パターン、すなわち目標移動速度Vを更新する。このとき、速度パターンを示す動作指令値だけでなく、制御パラメータを同時に調整してもよい。具体的には、制御パラメータとして力覚制御におけるインピーダンスパラメータを調整して応答性を上げて、発生する反力を下げるような調整が考えられる。また、この調整は、試行実験を繰り返し実施して、それぞれの試行実験で得られる一連の力の値F(t)および動作速度の情報を用いて評価値を計算し、評価値に基づいてパラメータを再度更新する、といった手順で行う。このときの評価値は、下記の式(1)を用いて評価関数Fqの計算結果として求めることができる。式(1)において、F(t)は力覚センサ143による力の検出値、Flimは制約条件1で制約される力の上限値[N]、Tは作業に要した作業時間[s]、wfおよびwtは重み付け係数である。
Fq(F,T)=wf*Σ(Flim−F(t))+wt*T …(1)
指令値の調整では、例えば、評価値を最良とする分割点Piの位置、各地点における目標移動速度、および、力覚制御における制御パラメータを求めるために、評価関数を用いた機械学習あるいは最適化手法を使用する。例えば、強化学習(RL:Reinforcement Learning)、ベイズ最適化、粒子群最適化などの手法が例示される。これらの手法を用いることにより、評価値を最良とする動作指令値になるように試行ごとに制御パラメータを更新することができる。例えば、作業中の各時点で検出されるF(t)および作業時間Tを用いて式(1)で表される評価関数Fqが定義されているとする。指令値学習部113は、評価関数Fqで算出される評価値が小さくなるように動作指令値を調整することで、作用外力F(t)および作業時間Tが小さくなるような動作指令値を求めることができる。評価関数Fqが、ユーザが設定した閾値Fqtを下回った際に収束したと判断し、調整は終了する。この評価関数Fqの閾値Fqtは出荷前にメーカーが設定してもよい。
図6は、本発明の実施の形態1にかかる動作制御システム110の処理の流れの一例を示すフローチャートである。ここで、上述の制約条件1としては、力覚センサ143で検出される力覚情報に対して、生産システム内で作業品質を管理するための力覚情報の上限値及び下限値と、作業時間の上限値が含まれているものとする。
まず、ステップS10において、ロボット制御装置111は、速度パターンの初期値を決定する。次に、ステップS11において、ロボット制御装置111が、ロボット120の動作を制御して作業を試行する。なお、前述のように調整処理と作業処理とは完全に分離されていない場合など、ロボットシステム100における通常の作業の一部が試行として扱われる場合もある。
次に、ステップS12において、指令値学習部113は、制約条件1が満たされているかを判定する。すなわち、ステップS12において、指令値学習部113は、力覚センサ143の検出値が制約条件1で規定される上限値と下限値との間に入っているかと、作業時間の制約が満たされているかを判定する。指令値学習部113は、力覚センサ143の検出値を判定する際には、例えば、検出値F(t)の最大値を制約条件1の上限値と比較し、検出値の最小値を制約条件1の下限値と比較する。なお、ステップS12において、指令値学習部113は、力覚センサ143の検出値そのものではなく、検出値から演算によって求められる評価値を用いてもよい。この評価値の一例としては、力覚センサ143の検出値と、タクトタイムとを入力とした評価関数で演算される評価値が考えられる。ステップS12において、指令値学習部113は、この評価値が制約条件1で示される制限範囲内か否かを判定してもよい。
ステップS12において、制約条件1を満たしていると指令値学習部113が判定した場合(ステップS12:Yes)、動作制御システム110の処理は一旦終了し、以降は、更新された速度パターンまたは速度パターンの初期値での作業が行われる。一方、ステップS12において、制約条件1を満たしていないと指令値学習部113が判定した場合(ステップS12:No)、ステップS13の処理へと移行して速度パターンを更新する。ステップS13において、指令値学習部113は、ロボット制御装置111が出力する速度パターンを調整し、速度パターンを更新する。ステップS13において、指令値学習部113は、例えば補正するための補正係数を算出し、試行を行った際の速度パターンに乗算することで、速度パターンを調整する。ステップS13の処理が終了すると、動作制御システム110の処理はステップS11へと戻る。
ところで、学習を用いて速度パターンを調整する過程で、過大な負荷を生じるリスクのある速度パターン近傍を学習におけるパラメータ探索範囲として取らなければ、目標とする作業時間を達成できないことがある。過大な負荷を生じるリスクの例について、図7を用いて説明する。図7は、学習を用いて速度パターンを調整する過程で過大な負荷を生じるリスクの例を示す図である。図7では、3つのパターン(Ptn1〜Ptn3)が、過大な負荷を生じるリスクを含む3つの事例を表している。図7では、上段に速度パターン(指令値)を示し、この速度パターンで動作したときの力覚情報を下段に示している。
下段に示す力覚情報の波形の立ち上がりは、作業中に想定しなくてはいけない、組み立て作業での作業対象間の接触により生じる反力を例示している。たとえば、従来の速度パターンの探索範囲が図7の上段に示すように0〜Va[m/s]の範囲であるとする。この場合、Ptn1は探索範囲内の非常に高速な速度を学習しており、これを達成することがひとつの優良な解となる。ただし、ステップS13で速度パターンの更新を行う際に、Ptn2のように力波形でみると制約条件2を超えてしまい破損リスクを伴う速度パターンになってしまうこともある。一方で、Ptn3のように全体として低速で動作しているにもかかわらず、反力が制約条件1を満たさないという場合もある。それぞれのパターン情報を用いることで、次にどういった指令値を候補としたらよいのか、ということを学習アルゴリズム、すなわち、上述した強化学習、ベイズ最適化、粒子群最適化などを使用して決定することが出来る。
学習アルゴリズムは、作業時間Tと力覚情報の検出値F(t)を入力として、上記の式(1)に示す演算を実施して評価値を最小化する勾配降下法を用いたパラメータセットの更新、あるいは、強化学習を用いて報酬が多く得られる方策(Policy)を探索し、次に実施する動作の指令値の候補と制御パラメータの候補を出力することが例示される。このとき、Ptn1,Pth3は許容できるが、Ptn2は探索中にも試行すべきでないという状況がある。これは、Ptn2では、エンドエフェクタ130または周辺環境300に作用する力が制約条件2を超越するため、試行実験時でも避けなければ、センサおよびエンドエフェクタの一方または双方が破損するリスクが高いためである。
このようなリスクを低減するために、本実施の形態にかかる動作調整装置112は、図6に示したステップS10〜S13で速度パターンを更新するという処理に加えて、図8に示すフローチャートに従った処理を行い、物理制約条件を設定する。この処理は物理制約演算部151が行う。図8は、本発明の実施の形態1にかかる動作制御システム110の動作調整装置112が物理制約条件を設定する処理の流れの一例を示すフローチャートである。
動作調整装置112は、図8に示す処理を開始する前に、上述したステップS11での試行実験で得られる複数個の力覚情報およびその時の実際の速度パターン情報を試行結果として記録しておく。一例としてN回の試行結果を記録しておく。動作調整装置112は、ステップS14において、記録しておいたN回の試行結果から制約条件2を超えないために満たさなければならない位置と速度の関係を物理制約条件として演算する。物理制約演算部151は、物理制約条件を演算した後、ステップS15において、物理制約条件が存在するか、すなわち、物理制約条件を求めることができたかを確認する。
物理制約条件が存在する場合(ステップS15:Yes)、物理制約演算部151は、ステップS16において、図6のステップS13の処理に物理制約条件を入力する。すなわち、物理制約演算部151は、求めた物理制約条件を指令値学習部113に出力し、ステップS13での速度パターンの更新処理で使用させる。指令値学習部113は、速度パターンの更新処理において、物理制約条件を満たしている速度パターンになっているか否かを判別し、満たしている場合はその速度パターン(指令値)となるようにロボット制御装置111が出力する速度パターンを更新する。
一方、物理制約条件が存在しない場合(ステップS15:No)、図8に示す処理は終了となる。この場合、上述したステップS11の処理、すなわち、作業の試行を再びN回繰り返す。その後、物理制約演算部151が、図8に示す処理を再度実施する。これら一連の処理は、物理制約条件が演算できるまで繰り返される。ここで、物理制約条件が演算できないと場合とは、試行の結果の倣い動作開始点Pcとその地点における接触速度Vcとの関係が、力覚情報の検出値F(t)と相関を持たないと判断した場合である。相関をもつか持たないかは、接触速度Vcおよび動作開始点Pcにおける力覚情報の検出値F(t)を用いて相関係数を評価して、0.9以上が相関を持つとするような判定方法で判定を行うことができる。
指令値学習部113は、ステップS13において、物理制約条件に基づき、速度パターンが制約条件2(FlimHW)を超えない範囲で、高速な動作に更新する。この更新動作の一例として、ベアリングに軸を挿入する作業を行う場合の速度パターンの更新動作を説明する。ベアリングに軸を挿入する場合、すなわち、軸をベアリングの穴部に対して挿入する場合、軸心があっていなければ倣い面(テーパなど)において軸心との衝突が生じる。指令値学習部113は、まず、この倣い面に対して衝突が生じる位置に向かうようにロボット動作指令値を調整する。すなわち、事前に作業対象であるベアリングと軸が意図的に倣い動作を生じるような、ぶつけ方で挿入動作を実施する。ここでは、速度パターンは速度V1まで固定可速度A1で加速し、一定速度V1で移動した後に、そのまま減速して停止する台形速度パターンを例示しておく。ここで例示しているのは一般の台形速度パターンであり、一定速度V1で移動する区間の長さは、総移動距離S1に基づいて規定される。具体的には、T1=V1/A1で表される加速時間に基づいて、総移動距離S1がT1*V1を超える大きさ(T1*V1<S1)である場合、T2=(S1−T1*V1)/V1の時間だけ一定速度区間を移動する。一方、S1≦T1*V1である場合、台形速度パターンにおいて加速している区間で距離が半分(S1/2)の状態に到達した地点から減速が始まる。減速を開始後は速度0に到達するまで−A1の加速度で減速する。
ステップS13において、指令値学習部113は、まず、目標移動速度をV1に設定して、ステップS11でロボット制御装置111が実施する試行実験において、倣い面と軸の衝突を生じさせ、倣いながら軸の挿入が完了するまでの力覚情報の検出値F(t)を取得する。指令値学習部113は、次に、取得したF(t)を用いてFqを求め、Fqが閾値Fqtを満たすか、すなわちFqが閾値Fqtを下回っているかどうかを確認して速度パターンを更新する。指令値学習部113は、Fqと閾値Fqtとの差が定められた値よりも大きく、Fqが閾値Fqtよりも十分に小さい状態の場合は、目標移動速度V1を変化させてステップS11の試行実験を実施する。以上の動作を繰り返すことで、指令値学習部113は学習と速度パターンの更新を進める。目標移動速度の調整方法として、指令値学習部113は、一定刻み幅ΔVで目標移動速度を上げて試行実験を実施してFqを求め、このFqが閾値Fqtよりも小さいかを確認する、という動作を繰り返す。幅ΔVで目標移動速度を上昇させたことによりFqが閾値Fqtを超えてしまう状態に到達した場合、指令値学習部113は、ΔV/2だけ目標移動速度を下降させ、ステップS11の試行実験を実施する。指令値学習部113は、試行実験の後に、得られたFqの評価を実施し、Fqが閾値Fqtを超えてしまう状態の場合には、速度を下降させる調整を行って試行実験を実施した回数(以下、試行回数とする)kに応じて、ΔV/(k+1)(k=1,2,3,…)だけ目標移動速度を下降させてさらに試行実験およびFqの評価を行う。指令値学習部113は、この動作を、Fqが閾値Fqtを超えなくなるまで繰り返す。再びFqが閾値Fqtを超えない状態になった後、指令値学習部113は、さらに、試行回数kに基づいてi=k+1として、ΔV/iだけ目標移動速度を増やしてステップS11の試行実験およびFqの評価を繰り返す。また、次に再びFqが閾値Fqtを超える状態になった後には、同一条件のバラつきについて考慮するために、指令値学習部113は、それまでに試行実験を実施した条件と同条件で複数回ずつ試行実験を実施する。
指令値学習部113は、最後に、それまでに実施した複数回の試行実験および目標移動速度の調整結果から、すなわち、Fqが閾値Fqtを超えないという条件を満たす目標移動速度の中から、対応する検出値F(t)が制約条件1(Flim)を超えない目標移動速度を、ステップS11で実施した試行実験の有効な試行結果として抽出する。
物理制約演算部151は、複数回の試行実験で得られた有効な試行結果、すなわち、指令値学習部113が抽出した試行結果を用いて、物理制約条件を設定する。具体的には、物理制約演算部151は、指令値学習部113が抽出した目標移動速度を用いて、倣い動作を開始する速度V1を上昇させたときの、制約条件1(Flim)を満たすFlim近傍の接触反力、すなわち、Flimを超えないFlim近傍の接触反力になる接触地点における速度を接触速度Vcとし、このときの接触地点Pcを取得する。そして、物理制約演算部151は、取得した接触地点Pcをエンドエフェクタ130が通過する際に、接触速度Vcよりも小さい速度で通過するような条件を物理制約条件として設定する。
指令値学習部113は、物理制約条件を考慮して速度パターンを更新する場合は、生成する速度パターンが上記の接触位置Pcにおいて上記の接触速度Vcよりも小さい速度を示すかどうかチェックし、接触位置Pcにおける速度パターン(目標移動速度)が接触速度Vcよりも小さい場合、この目標移動速度を指令値として次の試行実験に適用する。指令値学習部113は、接触位置Pcにおける速度パターン(目標移動速度)が接触速度Vc以上の場合、速度パターンを棄却し、速度パターンを再度更新して、更新後の速度パターンが示す、接触位置Pcにおける目標移動速度が接触速度Vcよりも小さいかチェックする。指令値学習部113は、以下、同様に、接触位置Pcにおける目標移動速度が接触速度Vcよりも小さい状態となるまで、速度パターンの更新動作を繰り返す。
本実施の形態では、ベアリングに軸を挿入する際のベアリングと軸の衝突を例として物理制約条件を説明したが、ロボットの関節位置の各軸の角度、角速度、角加速度、電流情報、ロボットのエンドエフェクタの手先位置情報、手先加速度情報なども物理制約条件として取扱うことが出来る。ある位置(関節角度、手先位置)における速度、加速度は代表的な物理制約条件であるが、物理制約条件をこれに限定することはない。
本発明の実施の形態1による動作制御システム110は、以上のような処理を行う。上述したように、本発明の実施の形態1による動作制御システム110は、複数回の試行によって得られるデータに基づいて学習を行いつつ速度パターンの調整を行う。言い換えると、本発明の実施の形態1による動作制御システム110は、機械学習または最適化手法を用いて動作指令値である速度パターンの調整を行う。
なお、以上の説明では、作業時間の上限値が制約条件1に含まれているものとしたが、作業時間の上限値は必須の条件ではなく、他の条件であってもよい。また、制約条件1として作業時間の上限値が与えられる代わりに、他の条件を満たした上で作業時間が最短となることを制約条件1としてもよい。さらに、以上の説明では、与えられた制約条件1を満たすように動作制御システム110が動作指令値を更新する場合について説明したが、動作制御システム110が制御パラメータを調整して更新する構成とすることも考えられる。さらに、図1では、ロボット制御装置111と動作調整装置112とを別に備える構成例を示しているが、ロボット制御装置111が動作調整装置112を内蔵するように構成することもできる。
本実施の形態の動作調整装置112、動作制御システム110及びロボットシステム100は、以上のように構成される。本実施の形態の動作調整装置112、動作制御システム110及びロボットシステム100によれば、力覚センサ143の検出値が所定の範囲内となるようにロボット120の動作が調整される。ここで、力覚センサ143の検出値は、エンドエフェクタ130に作用する外力の大きさを表している。言い換えると、力覚センサ143の検出値は、ロボット120の動作に起因して作業対象200又は周辺環境300に加えられる力の大きさを表す情報である。したがって、本実施の形態の動作調整装置112、動作制御システム110及びロボットシステム100によれば、作業対象200または周辺環境300に加えられる力が適切な大きさとなるように、すなわち作業対象200または周辺環境300に過大な負荷が作用することがないようにロボット120の動作を調整でき、また、ロボット120の動作の調整を容易化できる。
以上のように、本実施の形態にかかるロボットシステム100においては、力覚センサ143を用いて力応答が所望の範囲内に収まる様に動作指令値を学習的に調整することで、作業対象となるアイテムを破損しない高品質なロボット作業を実現することができる。特に、物理制約条件を考慮し、さらに、作業時間を制約条件1に加えて作業時間を考慮して動作を調整することで、高速な作業の実現も可能となる。
また、本実施の形態の動作調整装置112、動作制御システム110及びロボットシステム100は、制約条件1として力覚センサ143で検出される力の大きさを用いたが、モーメント、トルク、電流値などを検出し、これらの上限あるいは下限のいずれかを制約条件1に用いることもできる。これにより、ロボット120またはエンドエフェクタ130と外界との接触状況に物理的な制限を設けることができ、所望の範囲内での動作指令値を探索することが可能となる。その結果、作業対象200を傷つけないような作業を実現することができる。
また、本実施の形態の動作調整装置112、動作制御システム110及びロボットシステム100は、ロボット120の位置姿勢、エンドエフェクタ130の位置姿勢、作業対象の位置姿勢などを検出し、これらの上限あるいは下限のいずれかを制約条件に加えることもできる。これにより、高品質な作業を実現しつつも、周辺環境300との干渉を抑制したロボット作業を実現できる。その結果として、システムの稼働率を上げるといった、格別の効果を得ることができる。以上で述べた効果は、他の実施の形態でも同様に得られるものである。
実施の形態2.
実施の形態2にかかるロボットシステムについて説明する。実施の形態2にかかるロボットシステムの構成は実施の形態1にかかるロボットシステム100と同様である。ただし、ロボット120の動作を調整する動作調整装置の構成および動作が実施の形態1とは異なる。本実施の形態では、実施の形態1と異なる構成である動作調整装置について説明し、実施の形態1にかかるロボットシステム100と同様の構成については説明を省略する。以下の説明では、実施の形態2にかかるロボットシステムの動作調整装置を動作調整装置112aと記載する。
図9は、本発明の実施の形態2にかかるロボットシステムが備える動作調整装置112aの構成例を示す図である。図9に示すように、実施の形態2にかかる動作調整装置112aは、実施の形態1にかかる動作調整装置112に調整範囲定義部152を追加した構成である。
調整範囲定義部152は、指令値学習部113の学習対象である指令値あるいは制御パラメータについて、ロボット、センサ、エンドエフェクタ等の破損リスクがない第1の調整範囲と、破損リスクがある第2の調整範囲と、を定義し、指令値学習部113に出力する。指令値学習部113は、物理制約演算部151で物理制約条件が演算される前は、調整範囲定義部152で定義された第1の調整範囲内で速度パターンの調整を行い、物理制約条件が演算された後は、第2の調整範囲内で速度パターンの調整を行う。なお、以降の説明では、便宜上、調整範囲を探索範囲と表現する場合がある。すなわち、これ以降の説明では、調整範囲と探索範囲とは同じ意味で用いられる。
つづいて、調整範囲定義部152を備える動作調整装置112aの動作の具体例について、図10を参照しながら説明する。図10は、本発明の実施の形態2にかかる動作調整装置112aの動作を説明するための図である。
動作調整装置112aにおいては、まず、物理制約演算部151が、エンドエフェクタ130の動作範囲から、図10に示す高感度領域を抽出する。高感度領域は、制約条件1(Flim)に対して感度が高い位置および近傍、あるいは感度が高い時間および時間幅を示す。高感度領域は、動作指令値あるいは制御パラメータを変更した場合のF(t)の変動量が大きい領域である。言い換えると、高感度領域は、動作指令値あるいは制御パラメータの変更が制約条件1を満たすか否かに大きく影響する領域である。高感度領域以外の領域では、動作指令値あるいは制御パラメータを変更した場合のF(t)の変動量が小さい。すなわち、本実施の形態では、動作指令値または制御パラメータとF(t)との相関が高く、動作指令値または制御パラメータを変更するとF(t)が大きく変化する場合に感度が高いといい、動作指令値または制御パラメータとF(t)との相関が低い場合に感度が低いという。
物理制約演算部151は、図4に示す力覚センサ143から出力される力覚情報と、実際の指令値あるいはフィードバック量とを用いて、演算により高感度領域を求める。物理制約演算部151は、例えば、力覚センサ143から取得した力覚情報と、ロボット制御装置111からフィードバックされたエンドエフェクタ130の位置の履歴を用いて演算した速度情報と、に基づき、特定の地点Pjについて、速度情報を横軸に、力覚情報を縦軸にプロットする。そして、物理制約演算部151は、相関係数を計算し、相関係数が定められた閾値以上の場合、地点Pjを高感度領域に加える。この処理をすべての地点Pjについて繰り返し実行することで、物理制約演算部151は高感度領域を算出する。なお、処理を繰り返す際には速度パターンを変更する。すなわち、物理制約演算部151は、様々な速度パターンを使用して同じ処理を繰り返し実行することで、高感度領域を算出する。
物理制約を定義する前の状態、すなわち、物理制約演算部151による物理制約条件の演算が終了して指令値学習部113に物理制約条件が入力される前の状態のときに実施する複数回の試行実験においては、調整範囲定義部152が、指令値学習部113が速度パターンを探索する範囲を、破損リスクが無い探索範囲である第1の探索範囲に予め設定しておく。第1の探索範囲の設定方法の一例を示す。第1の探索範囲を設定する場合、例えば、予備実験として、組立作業、挿入作業などを実施して、接触反力と速度の関係のデータをユーザが取得する。このデータに基づいて、ユーザが安全率を定義するとともに、安全率を満たすように、破損リスクが無い範囲を第1の探索範囲に設定する。第1の探索範囲は、目標移動速度に関する探索範囲であり、図6に示すステップS10あるいはステップS13で速度パターンを設定する際の目標移動速度の下限値と上限値とで挟まれた範囲である。第1の探索範囲の特徴は、目標移動速度の上限値が、指令値学習部113の更新の結果として期待されている目標移動速度Vdに比べて小さいことである。調整範囲定義部152は、仮に、第1の探索範囲に含まれる速度で、ロボット120のエンドエフェクタ130、エンドエフェクタ130が把持している部品などの作業対象200が周辺環境300に衝突した場合でも、上述した制約条件2を満たすように、第1の探索範囲を定義する。
次に、物理制約演算部151が、図11に示すように、高感度領域において、制約条件1を超えないが、一方で作業時間を最短にするということを同時に満たすための物理制約条件として、ある地点(または時点)における、加速度(または速度)の条件を求める。ここでは、一例として、速度の条件(物理制約条件)を求める場合の物理制約演算部151の動作について説明する。速度の条件を求める場合、物理制約演算部151は、高感度領域の力のピークが現れる位置よりも時刻的に手前の位置にPcという地点を設定し、さらに、地点Pcにおける上限速度をVcに設定する。ここでは、高感度領域の力のピークが制約条件1以下の速度パターンを指令値学習部113が抽出する場合の物理制約条件(上限速度Vc)を、物理制約演算部151が求めることを想定している。ただし、力のピークが制約条件1を超えたものであっても、地点Pcを設定して上限速度Vcを求め、上限速度Vcに基づいて第1の探索範囲を更新して学習時間を短縮する目的に活用することが出来る。この際、制約条件1に最も近く、かつ制約条件1を超えていない値となる速度を上限速度Vcに設定することも出来る。力のピークは接触開始から少し遅れて現れるため、接触が発生した地点、すなわち、力のピークよりも前の時刻で力が0から立ち上がりの始めた位置をPcに設定することができる。また、複数の試行結果から上限速度Vcを求める場合は、複数の試行で得られたPcとVcの組み合わせの中の最悪条件としてVcが最も小さい場合を選ぶことも出来る。ここでの最悪条件は、最も安全側に考えた制約である。
また、図6および図8を用いた指令値の学習を実施する場合における図6のステップS13では、指令値学習部113が、Pc近傍のΔPの範囲において、速度がVcを超えない速度パターンになっているかどうかをチェックし、これを満たしていない速度パターン候補については棄却する。なお「Pc近傍のΔPの範囲」とは、Pcとの距離がΔP以内となる範囲、すなわち、(Pc−ΔP)〜(Pc+ΔP)の範囲である。また、このとき、指令値学習部113は、Pc近傍のΔPの範囲以外の範囲においては図12に示す第2の探索範囲に含まれる速度パターンを探索する。言い換えると、ステップS13において、指令値学習部113は、Pc近傍のΔPの範囲ではVc未満であり、かつ、それ以外の範囲では第2の探索範囲内の任意の速度となる速度パターンを生成する。第2の探索範囲は、第1の探索範囲と違い、破損リスクが生じる制約条件2を超える可能性のある速度帯を含む。
このように、本実施の形態にかかる動作調整装置112aにおいて、指令値学習部113は、物理制約演算部151が物理制約条件を求める前に速度パターンを調整する場合、調整範囲定義部152で定義された第1の調整範囲内で速度パターンを調整して学習を進める。これにより、動作調整装置112aは、対象としている作業においてやむをえず発生し得る高感度領域における反力を制約条件1よりも小さく抑え、高感度領域以外の領域では作業時間がより短くなる速度パターンを、比較的少ない試行回数すなわち短い時間で得られるようになる。
実施の形態3.
実施の形態2では、動作調整装置112aの物理制約演算部151が抽出する高感度領域が1つの場合の例について説明したが、高感度領域が複数存在する場合も考えられる。すなわち、物理制約演算部151が複数の高感度領域を抽出する場合がある。この場合、指令値学習部113は、抽出された複数の高感度領域のそれぞれについて物理制約条件を求め、求めた物理制約条件を使用して速度パターンを生成する。
例えば、図13の下段に示すように、第1の探索範囲内での速度パターンを調整した時の作用外力F(t)の変動が大きい領域である高感度領域が、2箇所存在することがある。以下の説明では、高感度領域が複数存在する場合は、それぞれについて第1の高感度領域、第2の高感度領域、といった名づけかたをして第kの高感度領域と呼ぶものとする。また、速度パターンがそれぞれの高感度領域において制約条件1を満たすようにするため、指令値学習部113は、ある地点における速度制限である物理制約条件を算出する場合も、高感度領域ごとに、第1の物理制約条件、第2の物理制約条件、…というかたちで複数定義する。
指令値学習部113は、高感度領域のそれぞれに対して個別に物理制約条件を設定し、物理制約条件および第2の探索範囲に基づいて、速度パターンを調整する。速度パターンの調整手順は、実施の形態1と同様である。すなわち、指令値学習部113は、速度パターンを更新して試行実験を行い、力覚センサ143による検出値F(t)が制約条件1を満足するか確認する。制約条件1を満足しない場合は、速度パターンの更新、試行実験の実施、および、検出値F(t)が制約条件1を満足するかの確認を、制約条件1を満足するまで繰り返す。このとき、物理制約条件は位置と速度の経由点の制約条件になっていると解釈できる。すなわち、指令値学習部113は、速度パターンを調整する際に、これらの経由点が物理制約条件を満たすあらゆる速度パターンを生成する。
高感度領域か否かの判定については、それぞれの試行実験における速度変化量に対する力変化量の割合が大きいもののみを高感度領域と判定するように構成してもよい。また、高感度領域か否かの判定については、複数回の試行実験で得られた複数のデータを使用し、機械学習を用いて、速度変化量と反力の変化量と地点情報の関係をモデル化しておき、このモデルを使用して高感度領域を求めるようにしてもよい。他にも、他のロボットシステムの試行実験で得られたデータを元にして、高感度領域とするための判定基準を機械学習で事前に獲得し、獲得したモデルと試行実験で取得したデータを比較して高感度領域か否かを判定してもよい。
以上のように、本実施の形態にかかる動作調整装置112aは、複数の高感度領域に対してそれぞれ物理制約条件を求め、これら全ての条件を満たすような速度パターンを求める。これにより、繰り返し行う試行実験の全てにおいて、制約条件2を超える大きな反力をシステムに与えて損傷することがないようにすることができる。
実施の形態4.
本実施の形態では、実施の形態3と同様に、高感度領域が複数存在する場合を想定する。本実施の形態にかかる動作調整装置112aは、実施の形態3とは異なる動作を行い、速度パターンを調整して学習を行う。
本実施の形態にかかる動作調整装置112aにおいて、指令値学習部113は、指令値および制御パラメータを調整する際に、複数のパラメータを2つ以上のグループに分けて、交互に、あるいは複数のグループを同時に学習することを繰り返す。これにより、破損リスクを低減させた状態で学習を進めていくことができるという格別の効果が得られる。
図14は、本発明の実施の形態4にかかる動作調整装置112aの動作の一例を示す図である。図14に示すように、指令値学習部113は、まず、STEP1において、速度指令値のみを第1の探索範囲を利用して学習する。速度が大きくなるほど力覚センサ143で検出される作用外力F(t)が大きくなる。そこで、指令値学習部113は、次に、STEP2において、インピーダンスパラメータのみを第1の探索範囲を利用して学習する。これにより適切な応答となるようにインピーダンスパラメータが調整され、作用外力F(t)が低下する。指令値学習部113は、次に、STEP3において、STEP1およびSTEP2で調整を行い得られた結果(速度指令値,インピーダンスパラメータ)を初期値として速度指令値およびインピーダンスパラメータの学習を進める。図14では、STEP3において速度指令値とインピーダンスパラメータとを同時に変更する場合を例示しており、それぞれ第2の探索範囲を用いて学習を進める。速度指令値の学習ではより大きなパラメータ(速度指令値)を選択している。インピーダンスパラメータの調整は、例えばダンピングに関する変数を変化させて行う。本実施の形態では、2つ以上のパラメータグループに分けて段階的に調整していくことで破損リスクを下げることを特徴としており、探索範囲の設定方法は特に限定しない。図14に示す例では、速度指令値が1つ目のパラメータグループに相当し、インピーダンスパラメータが2つ目のパラメータグループに相当する。パラメータグループは3つ以上となる場合もある。
本実施の形態にかかる動作調整装置112aによれば、破損リスクを避けた試行実験が出来るという格別の効果が得られる。また、調整対象のパラメータをグループに分けて調整することで、各グループに対する調整動作において調整するパラメータの数が少数に絞られるため、1つのグループの調整動作に要する時間が短くなる。本実施の形態によれば、多数のパラメータを同時に調整する場合と比較して、トータルの調整時間の短縮化が期待できる。
実施の形態5.
本実施の形態では、実施の形態3,4と同様に、高感度領域が複数存在する場合を想定する。実施の形態2にかかる動作調整装置112aは、高感度領域を抽出して物理制約条件を設定するとともに第1の探索範囲を設定し、第1の探索範囲内で速度パターンの調整を行い、次に、第2の探索範囲内で速度パターンを調整するものであった。
これに対して、本実施の形態にかかる動作調整装置112aは、実施の形態2と同様の手順で第2の探索範囲内で速度パターンを調整した後、さらに、第2の探索範囲を新たな第1の探索範囲に定義しなおし、新たな第1の探索範囲を対象として、同様の処理を繰り返し行う。このようにして、動作調整装置112aは、逐次的に指令値および調整パラメータを調整していく。
図15および図16は、本発明の実施の形態5にかかる動作調整装置112aの動作の一例を示す図である。
図15では、動作調整装置112aが1回目の物理制約条件を演算した後に設定した第2の探索範囲で速度パターンを探索した結果、高感度領域に相当する領域が現れていることを示している。動作調整装置112aは、これらを第2の高感度領域として抽出する処理を実施し、第2の高感度領域(1)および(2)を抽出する。
動作調整装置112aは、第2の高感度領域(1)および(2)を抽出後、図16に示すように、第2の高感度領域(1)および(2)に対して再度、物理制約条件を求める。図16では、制約条件1を満たすような第2の物理制約条件を求め、これに伴い、第1の高感度領域における目標移動速度の第2の探索範囲をVc1以下の範囲、第2の高感度領域(1)および(2)における目標移動速度の第2の探索範囲をVc2_2以上Vc2_1以下の範囲に狭めた結果を示している。具体的には、動作調整装置112aは、第2の物理制約条件として、第2の高感度領域(1)および(2)で力のピークよりも時刻的に手前の位置においてPc2_1およびPc2_2という地点を設定し、その地点における上限速度Vc2_1およびVc2_2を設定する。地点Pc2_1および地点Pc2_2の近傍領域ΔPの範囲に関しては、第2の調整範囲としてVc2_1およびVc2_2よりも小さい速度領域を第2の探索範囲として定義する。
このように、本実施の形態にかかる動作調整装置112aは、第1の探索範囲および第2の探索範囲を更新しながら物理制約条件の設定および速度パターンの学習を繰り返し行う。第1の探索範囲および第2の探索範囲の更新では、それまでの第2の探索範囲を第1の探索範囲に設定しなおす。これにより、全ての領域で制約条件1に対して十分小さな反力で作業が出来る学習結果を獲得できるという格別の効果が得られる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
上述した課題を解決し、目的を達成するために、本発明は、エンドエフェクタが装着されたロボットと、ロボットの動作を制御するロボット制御装置とを備え、ロボットが作業対象に対して作業を行うロボットシステムにおいて、ロボット制御装置が制御するロボットの動作を調整するロボットの動作調整装置であって、ロボットシステムが備える外界センサで検出された、エンドエフェクタに作用する力である作用外力を入力とする学習を行って、ロボットの動作を示す速度パターンの調整を行う指令値学習部を備える。また、ロボットの動作調整装置は、作業の開始から終了までの間を分割した複数の区分のそれぞれに対して、それぞれの区分における速度パターンを調整して試行実験を実施し、複数回実施した試行実験のそれぞれで得られた、動作指令値および外界センサで検出された作用外力に基づいて、ロボットシステムの破損リスク評価値を基準以下とするためにロボットが動作中に満たすべき物理制約条件を計算する物理制約演算部と、物理制約演算部で物理制約条件が算出される前に学習を行うときの速度パターンの調整範囲として、破損リスク評価値が常に基準以下におさまる第1の調整範囲と、破損リスク評価値が基準を超える場合を含む第2の調整範囲とを定義する調整範囲定義部と、を備える。指令値学習部は、物理制約演算部で物理制約条件が算出される前は第1の調整範囲で速度パターンの調整を繰り返し行って学習を進め、物理制約演算部で物理制約条件が算出された後は第2の調整範囲で速度パターンの調整を繰り返し行って学習を進める。