(57)【要約】【課題】制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができるロボットを提供すること。【解決手段】撮像画像に基づいて制御対象の状態を目標の状態にするロボットであって、前記制御対象の状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、前記目標の状態に速く近づける、ロボット。【選択図】図４
2018015856.tif 000002
【特許請求の範囲】
【請求項１】
撮像画像に基づいて制御対象の状態を目標の状態にするロボットであって、
前記制御対象の状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、前記目標の状態に速く近づける、
ロボット。
【請求項２】
前記第１自由度には、前記制御対象の状態のうち前記制御対象の姿勢を変化させる３つの自由度のうちの少なくとも１つの自由度が含まれる、
請求項１に記載のロボット。
【請求項３】
前記制御対象の状態を変化させる前記複数の前記自由度のそれぞれ毎に、前記撮像画像に含まれる前記制御対象の状態における前記自由度の値と前記目標の状態における前記自由度の値との差分と、前記自由度に応じたゲインとに基づいて、前記自由度に応じた量であって前記制御対象を動かす変位量を算出し、算出した当該変位量に基づいて前記第１自由度を前記第２自由度と比べて、前記目標の状態に速く近づける、
請求項１又は２に記載のロボット。
【請求項４】
前記第１自由度に応じた前記ゲインは、前記第２自由度に応じた前記ゲインと比べて大きい、
請求項３に記載のロボット。
【請求項５】
前記撮像画像に含まれる前記制御対象の状態における前記第１自由度の値と前記目標の状態における前記第１自由度の値との差分が所定閾値未満であると判定された場合、前記第２自由度に応じた前記ゲインを大きくする、
請求項３又は４に記載のロボット。
【請求項６】
前記第１自由度には、前記制御対象の状態のうち前記制御対象の位置を変化させる３つの自由度のうちのいずれか１つの自由度が含まれる、
請求項１から５のうちいずれか一項に記載のロボット。
【請求項７】
前記第１自由度には、前記制御対象の状態のうち前記制御対象の姿勢を変化させる３つの自由度が含まれ、
前記第２自由度には、前記制御対象の状態のうち前記制御対象の位置を変化させる３つの自由度が含まれる、
請求項１から５のうちいずれか一項に記載のロボット。
【請求項８】
前記制御対象の状態のうち前記制御対象の位置を変化させる３つの前記自由度の少なくとも１つの前記自由度について、前記撮像画像に含まれる前記制御対象の状態における当該自由度の値と前記目標の状態における当該自由度の値との差分に応じた速さに基づいて、前記制御対象の状態を前記目標の状態に近づける、
請求項１から７のうちいずれか一項に記載のロボット。
【請求項９】
前記差分が小さくなるほど当該差分に応じた速さを遅くする、
請求項８に記載のロボット。
【請求項１０】
請求項１から９のうちいずれか一項に記載のロボットを制御する、
ロボット制御装置。
【請求項１１】
前記撮像画像を撮像する撮像部と、
請求項１から９のうちいずれか一項に記載のロボットと、
請求項１０に記載のロボット制御装置と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、ロボット制御装置、及びロボットシステムに関する。
【背景技術】
【０００２】
撮像部により撮像された撮像画像に基づいてロボットに所定の作業を行わせる技術の研究や開発が行われている。
【０００３】
これに関し、ロボットにより把持された対象物を撮像部により撮像し、撮像された撮像画像と、対象物の位置及び姿勢が目標の位置及び姿勢と一致した状態における対象物が撮像された撮像画像との差分を算出し、算出した当該差分に基づいてロボットを制御し、対象物の位置及び姿勢を目標の位置及び姿勢と一致させる方法（ビジュアルサーボ）が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１２７０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような方法では、対象物の姿勢が目標の姿勢に近づくよりも速く、対象物の位置が目標の位置に近づいてしまう場合がある。このような場合において目標の位置の周辺に他の物体が存在していると、ロボットは、対象物の姿勢を目標の姿勢に近づけることによって対象物を当該物体に接触させてしまうことがある。その結果、ロボットは、対象物と当該物体との少なくとも一方を変形させてしまう場合がある。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、撮像画像に基づいて制御対象の状態を目標の状態にするロボットであって、前記制御対象の状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、前記目標の状態に速く近づける、ロボットである。
この構成により、ロボットは、制御対象の状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボットは、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【０００７】
また、本発明の他の態様は、ロボットにおいて、前記第１自由度には、前記制御対象の状態のうち前記制御対象の姿勢を変化させる３つの自由度のうちの少なくとも１つの自由度が含まれる、構成が用いられてもよい。
この構成により、ロボットは、制御対象の状態のうち制御対象の姿勢を変化させる３つの自由度のうちの少なくとも１つの自由度が含まれる第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボットは、制御対象の姿勢を変化させる３つの自由度のうちの少なくとも１つの自由度を、制御対象の状態を変化させる複数の自由度のうちの他の自由度よりも先に目標の状態に近づけることができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、前記制御対象の状態を変化させる前記複数の前記自由度のそれぞれ毎に、前記撮像画像に含まれる前記制御対象の状態における前記自由度の値と前記目標の状態における前記自由度の値との差分と、前記自由度に応じたゲインとに基づいて、前記自由度に応じた量であって前記制御対象を動かす変位量を算出し、算出した当該変位量に基づいて前記第１自由度を前記第２自由度と比べて、前記目標の状態に速く近づける、構成が用いられてもよい。
この構成により、ロボットは、制御対象の状態を変化させる複数の自由度のそれぞれ毎に、撮像画像に含まれる制御対象の状態における自由度の値と目標の状態における自由度の値との差分と、自由度に応じたゲインとに基づいて、自由度に応じた量であって制御対象を動かす変位量を算出し、算出した当該変位量に基づいて第１自由度を第２自由度と比べて、目標の状態に速く近づける。これにより、ロボットは、自由度毎の差分及びゲインに基づいて、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記第１自由度に応じた前記ゲインは、前記第２自由度に応じた前記ゲインと比べて大きい、構成が用いられてもよい。
この構成により、ロボットは、撮像画像に含まれる制御対象の状態における第１自由度の値と目標の状態における第１自由度の値との差分と、第２自由度に応じたゲインよりも大きいゲインである第１自由度に応じたゲインとに基づいて、第１自由度に応じた量であって制御対象を動かす変位量を算出し、撮像画像に含まれる制御対象の状態における第２自由度の値と目標の状態における第２自由度の値との差分と、第２自由度に応じたゲインとに基づいて、第２自由度に応じた量であって制御対象を動かす変位量を算出する。これにより、ロボットは、第１自由度に応じたゲインと第２自由度に応じたゲインとに基づいて、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、前記撮像画像に含まれる前記制御対象の状態における前記第１自由度の値と前記目標の状態における前記第１自由度の値との差分が所定閾値未満であると判定された場合、前記第２自由度に応じた前記ゲインを大きくする、構成が用いられてもよい。
この構成により、ロボットは、撮像画像に含まれる制御対象の状態における第１自由度の値と目標の状態における第１自由度の値との差分が所定閾値未満であると判定された場合、第２自由度に応じたゲインを大きくする。これにより、ロボットは、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけてから、当該他の自由度を目標の状態に近づけることができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記第１自由度には、前記制御対象の状態のうち前記制御対象の位置を変化させる３つの自由度のうちのいずれか１つの自由度が含まれる、構成が用いられてもよい。
この構成により、ロボットは、制御対象の状態のうち制御対象の位置を変化させる３つの自由度のうちのいずれか１つの自由度が含まれる第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボットは、対象物の位置を変化させる３つの自由度のうちのいずれか１つの自由度を、対象物の状態を変化させる複数の自由度のうちの他の自由度よりも先に目標の状態に近づけることができる。
【００１２】
また、本発明の他の態様は、ロボットにおいて、前記第１自由度には、前記制御対象の状態のうち前記制御対象の姿勢を変化させる３つの自由度が含まれ、前記第２自由度には、前記制御対象の状態のうち前記制御対象の位置を変化させる３つの自由度が含まれる、構成が用いられてもよい。
この構成により、ロボットは、制御対象の状態のうち制御対象の姿勢を変化させる３つの自由度が含まれる第１自由度を、制御対象の状態のうち制御対象の位置を変化させる３つの自由度が含まれる第２自由度と比べて、目標の状態に速く近づける。これにより、ロボットは、制御対象の姿勢を目標の状態に近づけてから制御対象の位置を目標の状態に近づけることができる。
【００１３】
また、本発明の他の態様は、ロボットにおいて、前記制御対象の状態のうち前記制御対象の位置を変化させる３つの前記自由度の少なくとも１つの前記自由度について、前記撮像画像に含まれる前記制御対象の状態における当該自由度の値と前記目標の状態における当該自由度の値との差分に応じた速さに基づいて、前記制御対象の状態を前記目標の状態に近づける、構成が用いられてもよい。
この構成により、ロボットは、制御対象の状態のうち制御対象の位置を変化させる３つの自由度の少なくとも１つの自由度について、撮像画像に含まれる制御対象の状態における当該自由度の値と目標の状態における当該自由度の値との差分に応じた速さに基づいて、制御対象の状態を目標の状態に近づける。これにより、ロボットは、撮像画像に含まれる制御対象の状態における当該自由度の値と目標の状態における当該自由度の値との差分に応じた速さに基づいて、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を目標の状態に近づける時間を変化させることができる。
【００１４】
また、本発明の他の態様は、ロボットにおいて、前記差分が小さくなるほど当該差分に応じた速さを遅くする、構成が用いられてもよい。
この構成により、ロボットは、制御対象の状態のうち制御対象の位置を変化させる３つの自由度の少なくとも１つの自由度について、撮像画像に含まれる制御対象の状態における当該自由度の値と目標の状態における当該自由度の値との差分が小さくなるほど、当該差分に応じた速さを遅くする。これにより、ロボットは、撮像画像に含まれる制御対象の状態における当該自由度の値と目標の状態における当該自由度の値との差分に応じて当該差分に応じた速さを遅くすることにより、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を精度よく目標の状態に近づけることができる。
【００１５】
また、本発明の他の態様は、上記に記載のロボットを制御する、ロボット制御装置である。
この構成により、ロボット制御装置は、制御対象の状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット制御装置は、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【００１６】
また、本発明の他の態様は、前記撮像画像を撮像する撮像部と、上記に記載のロボットと、上記に記載のロボット制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムは、制御対象の状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボットシステムは、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【００１７】
以上により、ロボット、ロボット制御装置、及びロボットシステムは、制御対象の状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット、ロボット制御装置、及びロボットシステムは、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】制御点Ｔの姿勢が終了姿勢に近づくよりも先に制御点Ｔの位置が目標位置に近づいた場合における対象物Ｏ１及び対象物Ｏ２の一例を示す図である。
【図３】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図４】ロボット制御装置３０の機能構成の一例を示す図である。
【図５】ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【図６】制御点Ｔの位置が終了位置に近づくよりも先に制御点Ｔの姿勢が目標姿勢に近づいた場合における対象物Ｏ１及び対象物Ｏ２の一例を示す図である。
【図７】差分Δｘの変化に対する関数λｔ１（Δｘ）の変化を表すグラフの一例を示す図である。
【発明を実施するための形態】
【００１９】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００２０】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、撮像部１０と、ロボット２０と、ロボット制御装置３０を備える。
【００２１】
撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）、ＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。撮像部１０は、ロボット２０により把持された対象物Ｏ１と、作業台ＴＢの上面に載置された対象物Ｏ２とを含む範囲を撮像可能な位置に設置される。
【００２２】
対象物Ｏ１は、対象物Ｏ２に嵌合する物体であり、例えば、製品に組み付けるネジ、ボルト等の産業用の部品や部材である。図１では、図の簡略化のため、対象物Ｏ１を直方体形状の物体として表している。なお、対象物Ｏ１は、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Ｏ１の形状は、直方体形状に代えて、他の形状であってもよい。
【００２３】
対象物Ｏ２は、対象物Ｏ１に嵌合される物体であり、例えば、製品に組み付けるプレート等の産業用の部品や部材である。対象物Ｏ２には、対象物Ｏ１が嵌合する嵌合部Ｈ１が形成されている。図１では、図の簡略化のため、嵌合部Ｈ１が形成された平板形状の物体として対象物Ｏ２を表している。なお、対象物Ｏ２は、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Ｏ２の形状は、平板形状に代えて、他の形状であってもよい。
【００２４】
作業台ＴＢは、例えば、テーブル等の台である。なお、作業台ＴＢは、テーブルに代えて、対象物Ｏ２を載置することが可能な台であれば、他の台であってもよい。
【００２５】
撮像部１０は、ケーブルによってロボット制御装置３０と通信可能に接続されている。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、撮像部１０は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２６】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボット、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
【００２７】
アームＡは、エンドエフェクターＥと、マニピュレーターＭを備える。
エンドエフェクターＥは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターＥは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【００２８】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２９】
マニピュレーターＭは、６つの関節を備える。また、当該６つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、６軸垂直多関節型のアームである。アームＡは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える６つの関節それぞれのアクチュエーターとによる連携した動作によって６軸の自由度の動作を行う。なお、アームＡは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。
【００３０】
マニピュレーターＭが備える６つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える６つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３１】
ロボット制御装置３０は、この一例において、ロボットを制御する（動作させる）コントローラーである。ロボット制御装置３０は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる。ロボット制御装置３０は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。ロボット制御装置３０は、取得した撮像画像に基づいて、ロボット２０に所定の作業を行わせる。所定の作業は、この一例において、エンドエフェクターＥにより把持された対象物Ｏ１を対象物Ｏ２の嵌合部Ｈ１に嵌合させる作業である。なお、所定の作業は、これに代えて、他の作業であってもよい。
【００３２】
＜ロボット制御装置がロボットに所定の作業を行わせる処理の概要＞
以下、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の概要について説明する。
【００３３】
ロボット制御装置３０は、エンドエフェクターＥに予め対応付けられた位置に、エンドエフェクターＥとともに動く制御対象を設定する。以下では、一例として、当該制御対象が制御点Ｔである場合について説明する。なお、制御対象は、制御点Ｔに代えて、対象物Ｏ１等のエンドエフェクターＥとともに動く他の物体、エンドエフェクターＥとともに動く仮想的な点等であってもよい。エンドエフェクターＥに予め対応付けられた位置は、ロボット座標系ＲＣにおける位置である。エンドエフェクターＥに予め対応付けられた位置は、例えば、エンドエフェクターＥにより把持された対象物Ｏ１の重心の位置である。制御点Ｔは、例えば、ＴＣＰ（Tool  Center  Point）である。なお、制御点Ｔは、ＴＣＰに代えて、アームＡの一部に対応付けられた仮想的な点等の他の仮想的な点であってもよい。すなわち、制御点Ｔは、エンドエフェクターＥに対応付けられた位置に代えて、エンドエフェクターＥの他の部位の位置に設定される構成であってもよく、マニピュレーターＭに対応付けられた何らかの位置に設定される構成であってもよい。
【００３４】
制御点Ｔには、制御点Ｔの位置を示す情報である制御点位置情報と、制御点Ｔの姿勢を示す情報である制御点姿勢情報とが対応付けられている。当該位置は、ロボット座標系ＲＣにおける位置である。当該姿勢は、ロボット座標系ＲＣにおける姿勢である。なお、制御点Ｔには、これらに加えて、他の情報が対応付けられる構成であってもよい。制御点位置情報及び制御点姿勢情報をロボット制御装置３０が指定（決定）すると、制御点Ｔの位置及び姿勢が決まる。当該位置及び当該姿勢は、ロボット座標系ＲＣにおける位置及び姿勢である。ロボット制御装置３０は、この一例において、撮像部１０から取得した撮像画像に基づいて、制御点位置情報及び制御点姿勢情報を指定する。ロボット制御装置３０は、アームＡを動作させ、ロボット制御装置３０が指定した制御点位置情報が示す位置に制御点Ｔの位置を一致させるとともに、ロボット制御装置３０が指定した制御点姿勢情報が示す姿勢に制御点Ｔの姿勢を一致させる。以下では、説明の便宜上、ロボット制御装置３０が指定した制御点位置情報が示す位置を目標位置（目標の位置）と称し、ロボット制御装置３０が指定した制御点姿勢情報が示す姿勢を目標姿勢（目標の姿勢）と称して説明する。すなわち、ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット２０を動作させ、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢と一致させる。
【００３５】
この一例において、制御点Ｔの位置は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔの姿勢は、制御点座標系ＴＣの各座標軸のロボット座標系ＲＣにおける方向によって表される。制御点座標系ＴＣは、制御点Ｔとともに動くように制御点Ｔに対応付けられた三次元局所座標系である。ここで、この一例では、制御点Ｔとともに対象物Ｏ１が動くため、制御点Ｔの位置及び姿勢は、対象物Ｏ１の位置及び姿勢を表す。
【００３６】
ロボット制御装置３０は、ユーザーから予め入力された制御点設定情報に基づいて制御点Ｔを設定する。制御点設定情報は、例えば、エンドエフェクターＥの重心の位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターＥに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターＭに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ロボット２０の他の部位に対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
【００３７】
ロボット制御装置３０は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる。ロボット制御装置３０は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。ロボット制御装置３０は、取得した撮像画像に基づいて、制御点Ｔの状態を目標の状態にすることにより所定の作業を行う。制御点Ｔの状態は、制御点Ｔの位置及び姿勢によって表される。また、目標の状態は、所定の作業が行われた後の対象物Ｏ１の位置及び姿勢、すなわち対象物Ｏ１が嵌合部Ｈ１に嵌合された状態における対象物Ｏ１の位置及び姿勢である終了位置及び終了姿勢によって表される。従って、ロボット制御装置３０は、制御点Ｔの位置及び姿勢を終了位置及び終了姿勢と一致させることにより、制御点Ｔの状態を目標の状態にする。
【００３８】
より具体的には、ロボット制御装置３０は、撮像部１０から取得した撮像画像と、ロボット制御装置３０に予め記憶された終了画像とに基づいて、当該撮像画像に含まれる対象物Ｏ１の位置及び姿勢と、終了位置及び終了姿勢との差分を算出する。終了画像は、所定の作業が行われた後の対象物Ｏ１、すなわち対象物Ｏ１が嵌合部Ｈ１に嵌合された状態における対象物Ｏ１が撮像部１０により撮像された撮像画像である。ロボット制御装置３０は、算出した差分に基づいて目標位置及び目標姿勢を算出する。ロボット制御装置３０は、算出した目標位置を示す制御点位置情報と、算出した目標姿勢を示す制御点姿勢情報とを指定することによって制御点Ｔの位置及び姿勢を目標位置及び目標姿勢と一致させることにより、制御点Ｔの状態を変化させる。このような撮像部１０による撮像から制御点Ｔの状態を変化させるまでの処理を繰り返すことにより、ロボット制御装置３０は、制御点Ｔの位置及び姿勢を終了位置及び終了姿勢と一致させ、制御点Ｔの状態を目標の状態にする。すなわち、ロボット制御装置３０は、ビジュアルサーボによってロボット２０を制御し、ロボット２０に所定の作業を行わせる。
【００３９】
ここで、ロボット制御装置３０がビジュアルサーボによってロボット２０に所定の作業を行わせた場合、制御点Ｔの位置は、制御点Ｔの姿勢が終了姿勢に近づくよりも先に目標位置に近づいてしまうことがある。その結果、対象物Ｏ１は、図２に示したように、対象物Ｏ２の部位のうち嵌合部Ｈ１と異なる部位に接触する場合がある。図２は、制御点Ｔの姿勢が終了姿勢に近づくよりも先に制御点Ｔの位置が目標位置に近づいた場合における対象物Ｏ１及び対象物Ｏ２の一例を示す図である。なお、図２において、図が煩雑になることを避けるため、対象物Ｏ１を把持しているエンドエフェクターＥを省略している。
【００４０】
図２において、対象物ＶＯ１は、対象物Ｏ１の位置及び姿勢が終了位置及び終了姿勢に近づく前のあるタイミングにおける対象物Ｏ１の輪郭を表している。また、制御点座標系ＶＴＣは、当該タイミングにおける対象物Ｏ１（すなわち、対象物ＶＯ１）の位置及び姿勢を表している。また、図２には、制御点Ｔの姿勢が終了姿勢に近づくより先に制御点Ｔの位置が終了位置に近づいた後のタイミングにおける対象物Ｏ１が示されている。
【００４１】
ここで、ロボット制御装置３０は、制御点Ｔの位置と終了位置との差分が第１所定閾値未満である場合、制御点Ｔの位置が終了位置に近づいたと判定する。また、ロボット制御装置３０は、制御点Ｔの姿勢と終了姿勢との差分が第２所定閾値未満である場合、制御点Ｔの姿勢が終了姿勢に近づいたと判定する。
【００４２】
図２に示したように、制御点Ｔの姿勢が終了姿勢に近づくより先に制御点Ｔの位置が終了位置に近づいた後のタイミングでは、対象物Ｏ１の姿勢が終了姿勢（この一例において、対象物Ｏ１が嵌合部Ｈ１に嵌合された状態における対象物Ｏ１の姿勢）に近づいていないため、対象物Ｏ１の一部が対象物Ｏ２の部位のうち嵌合部Ｈ１と異なる部位に接触する場合がある。この場合、ロボット２０は、所定の作業において、対象物Ｏ１と対象物Ｏ２のうちの少なくとも一方を変形させてしまう場合がある。
【００４３】
そこで、ロボット制御装置３０は、制御点Ｔの状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット制御装置３０は、制御点Ｔの状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。その結果、ロボット制御装置３０は、制御点Ｔとともに動く物体（この一例において、対象物Ｏ１）を変形させてしまうことを抑制することができる。ここで、制御点Ｔの状態を変化させる複数の自由度には、制御点Ｔの位置を変化させる自由度であるＸ軸座標、Ｙ軸座標、Ｚ軸座標の３つの自由度と、制御点Ｔの姿勢を変化させる自由度であるＵ軸座標、Ｖ軸座標、Ｗ軸座標の３つの自由度とが含まれている。当該Ｘ軸座標は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおけるＸ軸の座標のことである。当該Ｙ軸座標は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおけるＹ軸の座標のことである。当該Ｚ軸座標は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおけるＺ軸の座標のことである。当該Ｕ軸座標は、制御点座標系ＴＣにおけるＸ軸周りの姿勢（回転角度）を表す座標軸であるＵ軸の座標のことである。当該Ｖ軸座標は、制御点座標系ＴＣにおけるＹ軸周りの姿勢（回転角度）を表す座標軸であるＶ軸の座標のことである。当該Ｗ軸座標は、制御点座標系ＴＣにおけるＺ軸周りの姿勢（回転角度）を表す座標軸であるＷ軸の座標のことである。以下では、一例として、第１自由度に制御点Ｔの姿勢を変化させる自由度であるＵ軸座標、Ｖ軸座標、Ｗ軸座標の３つの自由度が含まれ、第２自由度に制御点Ｔの位置を変化させる自由度であるＸ軸座標、Ｙ軸座標、Ｚ軸座標の３つの自由度が含まれる場合について説明する。なお、第１自由度には、制御点Ｔの状態のうち制御点Ｔの姿勢を変化させる３つの自由度のうちの少なくとも１つの自由度が含まれる構成であってもよく、制御点Ｔの状態のうち制御点Ｔの位置を変化させる３つの自由度のうちのいずれか１つの自由度が含まれる構成であってもよい。以下では、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理のうち、第１自由度を第２自由度と比べて、目標の状態に速く近づける処理について詳しく説明する。
【００４４】
＜ロボット制御装置のハードウェア構成＞
以下、図３を参照し、ロボット制御装置３０のハードウェア構成について説明する。図３は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００４５】
ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。また、ロボット制御装置３０は、通信部３４を介して撮像部１０、ロボット２０のそれぞれと通信を行う。
【００４６】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部３２は、ロボット制御装置３０が処理する各種情報、ロボット２０を動作させる動作プログラムを含む各種プログラム、各種画像等を格納する。
【００４７】
入力受付部３３は、例えば、表示部３５と一体に構成されたタッチパネルである。なお、入力受付部３３は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００４８】
＜ロボット制御装置の機能構成＞
以下、図４を参照し、ロボット制御装置３０の機能構成について説明する。図４は、ロボット制御装置３０の機能構成の一例を示す図である。
【００４９】
ロボット制御装置３０は、記憶部３２と、制御部３６を備える。
【００５０】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、撮像制御部４１と、画像取得部４３と、ロボット制御部４５を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００５１】
撮像制御部４１は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる。
画像取得部４３は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。
ロボット制御部４５は、画像取得部４３が取得した撮像画像に基づくビジュアルサーボによってロボット２０に所定の作業を行わせる。
【００５２】
＜ロボット制御装置がロボットに所定の作業を行わせる処理＞
以下、図５を参照し、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理について説明する。図５は、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【００５３】
撮像制御部４１は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる（ステップＳ１１０）。次に、画像取得部４３は、ステップＳ１１０において撮像部１０が撮像した撮像画像を撮像部１０から取得する（ステップＳ１２０）。次に、ロボット制御部４５は、記憶部３２に予め記憶された終了画像を記憶部３２から読み出す。そして、ロボット制御部４５は、読み出した終了画像と、ステップＳ１２０において画像取得部４３が取得した撮像画像とに基づいて、撮像画像に含まれる対象物Ｏ１の位置及び姿勢と、終了画像に含まれる対象物Ｏ１の位置及び姿勢である終了位置及び終了姿勢との差分Δｐを算出する（ステップＳ１３０）。差分Δｐは、Ｘ軸方向の差分Δｘを１つ目の成分、Ｙ軸方向の差分Δｙを２つ目の成分、Ｚ軸方向の差分Δｚを３つ目の成分、Ｕ軸方向の差分Δｕを４つ目の成分、Ｖ軸方向の差分Δｖを５つ目の成分、Ｗ軸方向の差分Δｗを６つ目の成分として有する６次元のベクトルである。差分Δｘは、当該撮像画像に含まれる対象物Ｏ１のロボット座標系ＲＣにおけるＸ軸方向の位置を表すＸ軸座標と、終了位置の当該Ｘ軸方向の位置を表すＸ軸座標との差分である。差分Δｙは、当該撮像画像に含まれる対象物Ｏ１のロボット座標系ＲＣにおけるＹ軸方向の位置を表すＹ軸座標と、終了位置の当該Ｙ軸方向の位置を表すＹ軸座標との差分である。差分Δｚは、当該撮像画像に含まれる対象物Ｏ１のロボット座標系ＲＣにおけるＺ軸方向の位置を表すＺ軸座標と、終了位置の当該Ｚ軸方向の位置を表すＺ軸座標との差分である。差分Δｕは、当該撮像画像に含まれる対象物Ｏ１のロボット座標系ＲＣにおけるＵ軸方向の姿勢（回転角度）を表すＵ軸座標と、終了姿勢の当該Ｕ軸方向の姿勢（回転角度）を表すＵ軸座標との差分である。差分Δｖは、当該撮像画像に含まれる対象物Ｏ１のロボット座標系ＲＣにおけるＶ軸方向の姿勢（回転角度）を表すＶ軸座標と、終了姿勢の当該Ｖ軸方向の姿勢（回転角度）を表すＶ軸座標との差分である。差分Δｗは、当該撮像画像に含まれる対象物Ｏ１のロボット座標系ＲＣにおけるＷ軸方向の姿勢（回転角度）を表すＷ軸座標と、終了姿勢の当該Ｗ軸方向の姿勢（回転角度）を表すＷ軸座標との差分である。すなわち、差分Δｐを横ベクトルとして表した場合、差分Δｐは、（Δｘ，Δｙ，Δｚ，Δｕ，Δｖ，Δｗ）と表される。なお、ステップＳ１３０においてロボット制御部４５が当該撮像画像と当該終了画像とに基づいて差分Δｐを算出する方法は、ビジュアルサーボにおける既知の方法であってもよく、これから開発される方法であってもよい。また、ロボット制御部４５は、終了画像に代えて、対象物Ｏ１が嵌合部Ｈ１に嵌合された状態における対象物Ｏ１の位置及び姿勢を表すＣＧ（Computer  Graphic）に基づいて、差分Δｐを算出する構成であってもよい。この場合、記憶部３２には、終了画像に代えて、当該ＣＧが予め記憶される。
【００５４】
ステップＳ１３０の処理が行われた後、ロボット制御部４５は、ステップＳ１３０において算出した差分Δｐのうち対象物Ｏ１の姿勢を変化させる３つの自由度（すなわち、ｕ軸座標、ｖ軸座標、ｗ軸座標）のそれぞれについての差分（すなわち、差分Δｕ、差分Δｖ、差分Δｗ）が所定条件を満たすか否かを判定する（ステップＳ１４０）。所定条件は、この一例において、当該差分のうちの最も大きな差分が前述の第２所定閾値未満であることである。すなわち、ステップＳ１４０の処理は、対象物Ｏ１の姿勢が目標姿勢に近づいたか否かを判定する処理である。なお、所定条件は、これに代えて、当該３つの自由度についての差分の平均が第２所定閾値未満であること等の当該差分に基づく他の条件であってもよい。第２所定閾値は、所定閾値の一例である。
【００５５】
差分Δｐのうち対象物Ｏ１の姿勢を変化させる３つの自由度についての差分が所定条件を満たさないと判定した場合（ステップＳ１４０−ＮＯ）、ロボット制御部４５は、対象物Ｏ１の姿勢が目標姿勢に近づいていないと判定する。そして、ロボット制御部４５は、対象物Ｏ１の姿勢を、対象物Ｏ１の位置が終了位置に近づくより先に終了姿勢へと近づけるため、記憶部３２に予め記憶された第１ゲイン行列を記憶部３２から読み出す（ステップＳ１５０）。ここで、この一例におけるビジュアルサーボによる目標位置及び目標姿勢の算出方法と、第１ゲイン行列とについて説明する。
【００５６】
この一例におけるビジュアルサーボでは、ロボット制御部４５は、算出した差分Δｐと、画像ヤコビアン行列Ｊｉｍｇとに基づいて、現在の制御点Ｔの位置及び姿勢から終了位置及び終了姿勢までの変位量ΔＰを算出する。画像ヤコビアン行列Ｊｉｍｇは、ステップＳ１２０において画像取得部４３が取得した撮像画像に基づく画像ヤコビアン行列である。ロボット制御部４５は、当該撮像画像に基づいて画像ヤコビアン行列Ｊｉｍｇを算出する。ロボット制御部４５が当該撮像画像に基づいて画像ヤコビアン行列Ｊｉｍｇを算出する方法は、ビジュアルサーボにおける既知の方法であってもよく、これから開発される方法であってもよい。ロボット制御部４５は、画像ヤコビアン行列Ｊｉｍｇに対して右から差分Δｐを乗算することにより、変位量ΔＰを算出する。すなわち、変位量ΔＰは、Ｘ軸方向の変位量ΔＸを１つ目の成分、Ｙ軸方向の変位量ΔＹを２つ目の成分、Ｚ軸方向の変位量ΔＺを３つ目の成分、Ｕ軸方向の変位量ΔＵを４つ目の成分、Ｖ軸方向の変位量ΔＶを５つ目の成分、Ｗ軸方向の変位量ΔＷを６つ目の成分として有する６次元のベクトルである。このようにして算出された変位量ΔＰは、現在の制御点Ｔの位置及び姿勢から終了位置及び終了姿勢まで制御点Ｔの位置及び姿勢を変位させる量である。
【００５７】
ここで、ロボット制御部４５は、算出した変位量ΔＰに対して、０以上１以下の値であるゲインλを乗算し、後述するステップＳ１７０の処理において制御点Ｔの位置及び姿勢を変位させる変位量ΔＰ’を０以上ΔＰ以下の範囲内の量として算出する。すなわち、ロボット制御部４５は、以下に示した式（１）に基づいて変位量ΔＰ’を算出する。
【００５８】
【数１】
2018015856.tif 000003
【００５９】
上記の式（１）における画像ヤコビアンＪｉｍｇの−１乗は、画像ヤコビアンＪｉｍｇの逆行列を表している。ここで、上記の式（１）におけるゲインλがスカラー量である場合、変位量ΔＰ’の算出方法は、既存のビジュアルサーボによる方法と同じである。一方、この一例におけるビジュアルサーボでは、上記の式（１）におけるゲインλがスカラー量ではなく、以下の式（２）に示すような対角行列となっている。
【００６０】
【数２】
2018015856.tif 000004
【００６１】
上記の式（２）に示した行列が、ステップＳ１５０においてロボット制御部４５が記憶部３２から読み出す第１ゲイン行列の一例である。すなわち、ロボット制御部４５は、ステップＳ１５０において、第１ゲイン行列を上記の式（１）におけるゲインλとして記憶部３２から読み出す。第１ゲイン行列の成分λｔ１は、変位量ΔＰの成分のうちの変位量ΔＸ、変位量ΔＹ、変位量ΔＺのそれぞれに乗算されるゲインである。変位量ΔＸに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＸ軸座標に応じたゲインである。変位量ΔＹに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＹ軸座標に応じたゲインである。変位量ΔＺに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＺ軸座標に応じたゲインである。また、第１ゲイン行列の成分λｒ１は、変位量ΔＰの成分のうちの変位量ΔＵ、変位量ΔＶ、変位量ΔＷのそれぞれに乗算されるゲインである。変位量ΔＵに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＵ軸座標に応じたゲインである。変位量ΔＶに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＶ軸座標に応じたゲインである。変位量ΔＷに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＷ軸座標に応じたゲインである。なお、変位量ΔＸに乗算されるλｔ１と、変位量ΔＹに乗算されるλｔ１と、変位量ΔＺに乗算されるλｔ１とのそれぞれは、この一例において、互いに同じ値であるが、これに代えて、互いに異なる値であってもよい。また、変位量ΔＵに乗算されるλｒ１と、変位量ΔＶに乗算されるλｒ１と、変位量ΔＷに乗算されるλｒ１とのそれぞれは、この一例において、互いに同じ値であるが、これに代えて、互いに異なる値であってもよい。
【００６２】
ここで、第１ゲイン行列の成分のうち制御点Ｔの位置を変位させる変位量に乗算される成分は、第１ゲイン行列の成分のうち制御点Ｔの姿勢を変位させる変位量に乗算される成分よりも小さい。具体的には、この一例では、λｔ１とλｒ１との間には、λｔ１＜λｒ１という関係がある。第１ゲイン行列の成分が当該関係を有することにより、ロボット制御部４５は、制御点Ｔの状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づけることができる。前述した通り、この一例では、第１自由度には、制御点Ｔの姿勢を変化させる自由度であるＵ軸座標、Ｖ軸座標、Ｗ軸座標の３つの自由度が含まれる。また、第２自由度には、制御点Ｔの位置を変化させる自由度であるＸ軸座標、Ｙ軸座標、Ｚ軸座標の３つの自由度が含まれる。従って、この一例では、第１自由度に応じたゲインが第２自由度に応じたゲインよりも大きいため、ロボット制御部４５は、図６に示したように、制御点Ｔの状態を変化させる複数の自由度のうちの制御点Ｔの姿勢を変化させる自由度である第１自由度を、制御点Ｔの位置を変化させる自由度である第２自由度と比べて、目標の状態に速く近づけることができる。
【００６３】
図６は、制御点Ｔの位置が終了位置に近づくよりも先に制御点Ｔの姿勢が目標姿勢に近づいた場合における対象物Ｏ１及び対象物Ｏ２の一例を示す図である。なお、図６において、図が煩雑になることを避けるため、対象物Ｏ１を把持しているエンドエフェクターＥを省略している。
【００６４】
図６において、対象物ＶＯ１は、対象物Ｏ１の位置及び姿勢が終了位置及び終了姿勢に近づく前のあるタイミングにおける対象物Ｏ１の輪郭を表している。また、制御点座標系ＶＴＣは、当該タイミングにおける対象物Ｏ１（すなわち、対象物ＶＯ１）の位置及び姿勢を表している。また、図６には、制御点Ｔの位置が終了位置に近づくより先に制御点Ｔの姿勢が終了姿勢に近づいた後のタイミングにおける対象物Ｏ１が示されている。
【００６５】
図６に示したように、制御点Ｔの位置が終了位置に近づくより先に制御点Ｔの姿勢を終了姿勢に近づけた場合、ロボット制御部４５は、対象物Ｏ１の一部が対象物Ｏ２の部位のうち嵌合部Ｈ１と異なる部位に接触してしまうことを抑制することができる。その結果、ロボット制御部４５は、制御点Ｔの位置を終了位置に近づけること、すなわち対象物Ｏ１を図６に示した矢印Ａ１の方向に移動させることにより、対象物Ｏ１と対象物Ｏ２の両方を変形させることなく対象物Ｏ１を嵌合部Ｈ１に嵌合させることができる。図６に示した例では、当該方向は、制御点座標系ＴＣにおけるＺ軸の負方向である。
【００６６】
ステップＳ１５０の処理が行われた後、ロボット制御部４５は、ステップＳ１２０において画像取得部４３が取得した撮像画像に基づいて画像ヤコビアン行列Ｊｉｍｇを算出する。ロボット制御部４５は、算出した画像ヤコビアン行列Ｊｉｍｇと、ステップＳ１５０において記憶部３２から読み出した第１ゲイン行列と、ステップＳ１３０において算出した差分Δｐと、上記の式（１）とに基づいて変位量ΔＰ’を算出する。そして、ロボット制御部４５は、算出した変位量ΔＰ’に基づいて、制御点Ｔの位置及び姿勢を変化させる目標となる目標位置及び目標姿勢（図５において目標位置姿勢と称している）を算出する（ステップＳ１６０）。具体的には、ロボット制御部４５は、ステップＳ１２０において画像取得部４３が取得した撮像画像に基づいて、撮像画像に含まれる対象物Ｏ１の位置及び姿勢を算出する。ここで、ロボット制御部４５には、撮像画像上における位置と、ロボット座標系ＲＣにおける位置とを対応付けるキャリブレーションが予め行われている。ロボット制御部４５は、算出した対象物Ｏ１の位置及び姿勢と、算出した変位量ΔＰ’とに基づいて、変位量ΔＰ’によって当該位置及び当該姿勢を変位させた後の位置及び姿勢を目標位置及び目標姿勢として算出する。
【００６７】
次に、ロボット制御部４５は、ステップＳ１６０において算出された目標位置を示す制御点位置情報と、ステップＳ１６０において算出された目標姿勢を示す制御点姿勢情報とを指定し、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢と一致させる（ステップＳ１７０）。
【００６８】
次に、ロボット制御部４５は、所定の終了条件が満たされたか否かを判定する（ステップＳ１８０）。終了条件は、この一例において、以下の条件１）、条件２）の２つの条件を満たすことである。
【００６９】
条件１）現在の制御点Ｔの位置（すなわち、ステップＳ１７０における目標位置）と、終了位置との差分のうち最も大きな差分が前述の第１所定閾値未満であること
条件２）現在の制御点Ｔの姿勢（すなわち、ステップＳ１７０における目標姿勢）と、終了姿勢との差分のうち最も大きな差分が前述の第２所定閾値未満であること
【００７０】
すなわち、ステップＳ１８０の処理は、制御点Ｔ１の状態が目標の状態に近づいたか否かを判定する処理である。なお、終了条件は、上記の条件に代えて、他の条件であってもよい。終了条件が満たされていないとロボット制御部４５が判定した場合（ステップＳ１８０−ＮＯ）、撮像制御部４１は、ステップＳ１１０に遷移し、再び撮像部１０が撮像可能な範囲を撮像部１０に撮像させる。一方、終了条件が満たされているとロボット制御部４５が判定した場合（ステップＳ１８０−ＹＥＳ）、ロボット制御部４５は、所定の作業を完了させたと判定し、処理を終了する。
【００７１】
一方、ステップＳ１４０において、差分Δｐのうち対象物Ｏ１の姿勢を変化させる３つの自由度についての差分が所定条件を満たすと判定した場合（ステップＳ１４０−ＹＥＳ）、ロボット制御部４５は、対象物Ｏ１の姿勢が目標姿勢に近づいていると判定する。そして、ロボット制御部４５は、対象物Ｏ１の位置を終了位置に近づけるため、記憶部３２に予め記憶された第２ゲイン行列を前述のゲインλとして記憶部３２から読み出す（ステップＳ１９０）。ここで、第２ゲイン行列について説明する。
【００７２】
第２ゲイン行列は、以下に示した式（３）のように、第１ゲイン行列が有する成分と異なる成分を有する対角行列である。
【００７３】
【数３】
2018015856.tif 000005
【００７４】
ロボット制御部４５は、ステップＳ１９０において、第２ゲイン行列を上記の式（１）におけるゲインλとして記憶部３２から読み出す。第２ゲイン行列の成分λｔ２は、変位量ΔＰの成分のうちの変位量ΔＸ、変位量ΔＹ、変位量ΔＺのそれぞれに乗算されるゲインである。変位量ΔＸに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＸ軸座標に応じたゲインである。変位量ΔＹに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＹ軸座標に応じたゲインである。変位量ΔＺに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＺ軸座標に応じたゲインである。また、第２ゲイン行列の成分λｒ２は、変位量ΔＰの成分のうちの変位量ΔＵ、変位量ΔＶ、変位量ΔＷのそれぞれに乗算されるゲインである。変位量ΔＵに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＵ軸座標に応じたゲインである。変位量ΔＶに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＶ軸座標に応じたゲインである。変位量ΔＷに乗算されるゲインは、制御点Ｔの状態を変化させる自由度のうちのＷ軸座標に応じたゲインである。なお、変位量ΔＸに乗算されるλｔ２と、変位量ΔＹに乗算されるλｔ２と、変位量ΔＺに乗算されるλｔ２とのそれぞれは、この一例において、互いに同じ値であるが、これに代えて、互いに異なる値であってもよい。また、変位量ΔＵに乗算されるλｒ２と、変位量ΔＶに乗算されるλｒ２と、変位量ΔＷに乗算されるλｒ２とのそれぞれは、この一例において、互いに同じ値であるが、これに代えて、互いに異なる値であってもよい。
【００７５】
ここで、第２ゲイン行列の成分のうち制御点Ｔの位置を変位させる変位量に乗算される成分は、第１ゲイン行列の成分のうち制御点Ｔの姿勢を変位させる変位量に乗算される成分よりも大きい。具体的には、この一例では、λｔ２とλｒ２との間には、λｔ２＞λｒ２という関係がある。第２ゲイン行列の成分が当該関係を有することにより、ロボット制御部４５は、第１自由度を目標の状態に近づけた後に第２自由度を目標の状態に近づけることができる。
【００７６】
ステップＳ１９０の処理が行われた後、ロボット制御部４５は、ステップＳ１６０に遷移し、第１ゲイン行列に代えて第２ゲイン行列を用いてステップＳ１６０の処理を行う。このため、ステップＳ１９０の処理が行われた後のステップＳ１６０の処理については、省略する。
【００７７】
このように、ロボット制御装置３０は、ステップＳ１１０〜ステップＳ１９０の処理を行うことにより、制御点Ｔの状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット制御装置３０は、制御点Ｔの状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。その結果、ロボット２０の制御点Ｔとともに動く物体（この一例において、対象物Ｏ１）を変形させてしまうことを抑制することができる。
【００７８】
なお、前述した通り、第１自由度には、制御点Ｔの状態のうち制御点Ｔの姿勢を変化させる３つの自由度のうちの少なくとも１つの自由度（すなわち、Ｕ軸座標、Ｖ軸座標、Ｗ軸座標のうちの少なくとも１つ）が含まれる構成であってもよい。これにより、ロボット制御装置３０は、制御点Ｔの姿勢を変化させる３つの自由度のうち所望の自由度を、制御点Ｔの状態を変化させる自由度のうちの他の自由度と比べて目標の状態に速く近づけることができる。
【００７９】
また、前述した通り、第１自由度には、制御点Ｔの状態のうち制御点Ｔの位置を変化させる３つの自由度のうちのいずれか１つの自由度（すなわち、Ｘ軸座標、Ｙ軸座標、Ｚ軸座標のうちの少なくとも１つ）が含まれる構成であってもよい。これにより、ロボット制御装置３０は、対象物Ｏ１を嵌合部Ｈ１に対して所望の角度から嵌合させることができる。その結果、ロボット制御装置３０は、ロボット２０の制御点Ｔとともに動く物体（この一例において、対象物Ｏ１）を変形させてしまうことを、より確実に抑制することができる。
【００８０】
また、第１自由度には、制御点Ｔの状態のうち制御点Ｔの姿勢を変化させる３つの自由度と、制御点Ｔの状態のうち制御点Ｔの位置を変化させる３つの自由度とのうちの一部又は全部の組み合わせが含まれる構成であってもよい。これにより、ロボット制御装置３０は、制御点Ｔの状態を所望の状態にした後、制御点Ｔの状態を目標の状態にすることができる。
【００８１】
＜実施形態の変形例＞
以下、実施形態の変形例について説明する。
実施形態の変形例に係るロボット制御装置３０は、制御点Ｔの状態のうち制御点Ｔの位置を変化させる３つの自由度の少なくとも１つの自由度について、撮像画像に含まれる制御点Ｔの状態における当該自由度の値と目標の状態における当該自由度の値との差分に応じた速さによって、制御点Ｔの状態を目標の状態に近づける。以下では、一例として、当該少なくとも１つの自由度が、Ｘ軸座標である場合について説明する。なお、当該自由度は、Ｙ軸座標であってもよく、Ｚ軸座標であってもよく、Ｘ軸座標、Ｙ軸座標、Ｚ軸座標の一部又は全部の組み合わせであってもよい。
【００８２】
具体的には、第１ゲイン行列の成分のうち変位量ΔＸに乗算されるλｔ１は、差分Δｘの関数λｔ１（Δｘ）である場合、ロボット制御装置３０は、制御点Ｔの状態のうち制御点Ｔの位置を変化させる３つの自由度のうちのＸ軸座標について、撮像画像に含まれる制御点Ｔの状態におけるＸ軸座標の値と目標の状態におけるＸ軸座標の値との差分に応じた速さによって、制御点Ｔの状態を目標の状態に近づけることができる。
【００８３】
関数λｔ１（Δｘ）の関数形は、例えば、以下に示した式（４）によって表されるシグモイド関数である。
【００８４】
【数４】
2018015856.tif 000006
【００８５】
なお、関数λｔ１（Δｘ）の関数形は、シグモイド関数に代えて、他の関数形であってもよい。上記の式（４）における係数ａは、関数λｔ１（Δｘ）の変化率を示す係数であり、制御点Ｔの状態のうち制御点ＴのＸ軸座標を変化させる速さに応じてユーザーにより決定される係数である。
【００８６】
ここで、図７は、差分Δｘの変化に対する関数λｔ１（Δｘ）の変化を表すグラフの一例を示す図である。図７に示したグラフの横軸は、差分Δｘを示す。当該グラフの縦軸は、関数λｔ１（Δｘ）の値を示す。図７に示したように、上記の式（４）に示した関数λｔ１（Δｘ）は、差分Δｘが小さくなるほど小さくなる。これにより、ロボット制御装置３０は、制御点Ｔの状態のうち制御点ＴのＸ軸座標を変化させる速さを、制御点ＴのＸ軸座標が終了位置におけるＸ軸座標に近づくほど（すなわち、差分Δｘが小さくなるほど）遅くすることができる。
【００８７】
なお、ロボット制御装置３０は、制御点Ｔの状態のうち制御点Ｔの姿勢を変化させる３つの自由度の少なくとも１つの自由度について、撮像画像に含まれる制御点Ｔの状態における当該自由度の値と目標の状態における当該自由度の値との差分に応じた速さによって、制御点Ｔの状態を目標の状態に近づける構成であってもよい。この場合、第１ゲイン行列の成分のうち変位量ΔＵ、変位量ΔＶ、変位量ΔＷの少なくとも１つに乗算されるゲインが、上記の式（４）のような関数となる。
【００８８】
以上のように、ロボット２０は、制御対象（この一例において、制御点Ｔ）の状態を変化させる複数の自由度のうちの少なくとも１つの自由度である第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット２０は、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【００８９】
また、ロボット２０は、制御対象の状態のうち制御対象の姿勢を変化させる３つの自由度（この一例において、Ｕ軸座標、Ｖ軸座標、Ｗ軸座標）のうちの少なくとも１つの自由度が含まれる第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット２０は、制御対象の姿勢を変化させる３つの自由度のうちの少なくとも１つの自由度を、制御対象の状態を変化させる複数の自由度のうちの他の自由度よりも先に目標の状態に近づけることができる。
【００９０】
また、ロボット２０は、制御対象の状態を変化させる複数の自由度のそれぞれ毎に、撮像画像に含まれる制御対象の状態における自由度の値と目標の状態における自由度の値との差分と、自由度に応じたゲインとに基づいて、自由度に応じた量であって制御対象を動かす変位量を算出し、算出した当該変位量に基づいて第１自由度を第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット２０は、自由度毎の差分及びゲインに基づいて、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【００９１】
また、ロボット２０は、撮像画像に含まれる制御対象の状態における第１自由度の値と目標の状態における第１自由度の値との差分と、第２自由度に応じたゲインよりも大きいゲインである第１自由度に応じたゲインとに基づいて、第１自由度に応じた量であって制御対象を動かす変位量を算出し、撮像画像に含まれる制御対象の状態における第２自由度の値と目標の状態における第２自由度の値との差分と、第２自由度に応じたゲインとに基づいて、第２自由度に応じた量であって制御対象を動かす変位量を算出する。これにより、ロボット２０は、第１自由度に応じたゲインと第２自由度に応じたゲインとに基づいて、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけることができる。
【００９２】
また、ロボット２０は、撮像画像に含まれる制御対象の状態における第１自由度の値と目標の状態における第１自由度の値との差分が所定閾値未満であると判定された場合、第２自由度に応じたゲインを大きくする。これにより、ロボット２０は、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を他の自由度よりも先に目標の状態に近づけてから、当該他の自由度を目標の状態に近づけることができる。
【００９３】
また、ロボット２０は、制御対象の状態のうち制御対象の位置を変化させる３つの自由度（この一例において、Ｘ軸座標、Ｙ軸座標、Ｚ軸座標）のうちのいずれか１つの自由度が含まれる第１自由度を他の自由度である第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット２０は、対象物の位置を変化させる３つの自由度のうちのいずれか１つの自由度を、対象物の状態を変化させる複数の自由度のうちの他の自由度よりも先に目標の状態に近づけることができる。
【００９４】
また、ロボット２０は、制御対象の状態のうち制御対象の姿勢を変化させる３つの自由度が含まれる第１自由度を、制御対象の状態のうち制御対象の位置を変化させる３つの自由度が含まれる第２自由度と比べて、目標の状態に速く近づける。これにより、ロボット２０は、制御対象の姿勢を目標の状態に近づけてから制御対象の位置を目標の状態に近づけることができる。
【００９５】
また、ロボット２０は、制御対象の状態のうち制御対象の位置を変化させる３つの自由度の少なくとも１つの自由度について、撮像画像に含まれる制御対象の状態における当該自由度の値と目標の状態における当該自由度の値との差分に応じた速さに基づいて、制御対象の状態を目標の状態に近づける。これにより、ロボット２０は、撮像画像に含まれる制御対象の状態における当該自由度の値と目標の状態における当該自由度の値との差分に応じた速さに基づいて、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を目標の状態に近づける時間を変化させることができる。
【００９６】
また、ロボット２０は、制御対象の状態のうち制御対象の位置を変化させる３つの自由度の少なくとも１つの自由度について、撮像画像に含まれる制御対象の状態における当該自由度の値と目標の状態における当該自由度の値との差分が小さくなるほど、当該差分に応じた速さを遅くする。これにより、ロボット２０は、撮像画像に含まれる制御対象の状態における当該自由度の値と目標の状態における当該自由度の値との差分に応じて当該差分に応じた速さを遅くすることにより、制御対象の状態を変化させる複数の自由度のうちの所望の自由度を精度よく目標の状態に近づけることができる。
【００９７】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００９８】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００９９】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１００】
１…ロボットシステム、１０…撮像部、２０…ロボット、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、４１…撮像制御部、４３…画像取得部、４５…ロボット制御部
【図１】
2018015856.tif 000007
【図２】
2018015856.tif 000008
【図３】
2018015856.tif 000009
【図４】
2018015856.tif 000010
【図５】
2018015856.tif 000011
【図６】
2018015856.tif 000012
【図７】
2018015856.tif 000013