<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
<ロボットシステムの構成>
まず、ロボットシステム1の構成について説明する。
図1は、本実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、撮像部10と、第1ロボット21と、第2ロボット22と、情報処理装置30と、制御装置40を備える。
撮像部10は、例えば、集光された光を電気信号に変換する撮像素子であるCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を備えたカメラである。この一例において、撮像部10は、第1ロボット21及び第2ロボット22のそれぞれが作業を行うことが可能な領域を含む範囲を撮像可能な位置に設置される。
撮像部10は、ケーブルによって制御装置40と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる。なお、撮像部10は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
第1ロボット21は、アームA1と、アームA1を支持する支持台BS1を備える単腕ロボットである。単腕ロボットは、この一例におけるアームA1のような1本のアーム(腕)を備えるロボットである。なお、第1ロボット21は、単腕ロボットに代えて、複腕ロボットであってもよく、ガントリロボットのような直動ロボットであってもよく、スカラロボットであってもよく、その他のロボットであってもよい。複腕ロボットは、2本以上のアーム(例えば、2本以上のアームA1)を備えるロボットである。なお、複腕ロボットのうち、2本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、第1ロボット21は、2本のアームを備える双腕ロボットであってもよく、3本以上のアーム(例えば、3本以上のアームA1)を備える複腕ロボットであってもよい。
アームA1は、エンドエフェクターE1と、マニピュレーターM1と、力検出部211を備える。アームA1は、第1可動部の一例である。
エンドエフェクターE1は、物体を把持するエンドエフェクターである。この一例において、エンドエフェクターE1は、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を把持する。なお、エンドエフェクターE1は、これに代えて、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を把持する構成であってもよい。すなわち、この一例において、把持するとは、物体を持ち上げることが可能な状態にすることを意味する。エンドエフェクターE1の指部には、図1に示すように、ツールTL1が設けられている。
ツールTL1は、線状物体を把持可能な道具である。また、ツールTL1は、エンドエフェクターE1の指部に着脱可能に設けることが可能な道具であり、エンドエフェクターE1の指部の動作に応じて線状物体の把持及び解放を行うことが可能な道具である。線状物体の解放は、この一例において、把持している線状物体を離すことを意味する。線状物体は、破断させることなく曲げることが可能な物体である。例えば、線状物体は、通信用のケーブル、給電用のケーブル、他の配線、配管、血管のような生体の管等である。以下では、一例として、線状物体が図1に示したケーブルCである場合について説明する。
ここで、図2を参照し、ツールTL1について説明する。図2は、ツールTL1の一例を示す図である。図2に示したように、この一例におけるツールTL1は、ケーブルCを挟んで持ち上げることが可能なクリッププライヤーである。ツールTL1は、グリップ部GLと、クリップ部CLとを有する。グリップ部GLは、2本の棒状の物体によって構成されており、ツールTL1の部位のうちのエンドエフェクターE1の指部に設けることが可能な部位である。クリップ部CLは、2本の棒状の物体によって構成されており、ツールTL1の部位のうちのケーブルCを把持することが可能な部位である。クリップ部CLがケーブルCを把持することは、クリップ部CLが有する2本の棒状の物体によってケーブルCを挟んで保持することを意味する。
ツールTL1は、エンドエフェクターE1の指部によるグリップ部GLの開閉に応じて、クリップ部CLを開閉させる。グリップ部GLの開閉は、この一例において、グリップ部GLが有する2本の棒状の物体間の距離を変化させることである。また、クリップ部CLの開閉は、この一例において、クリップ部CLが有する2本の棒状の物体間の距離を変化させることである。図2に示した例では、グリップ部GLを開く、すなわちグリップ部GLが有する2本の棒状の物体間の距離を離した場合、クリップ部CLが開く、すなわちクリップ部CLが有する2本の棒状の物体間の距離が離れる。また、グリップ部GLを閉じる、すなわちグリップ部GLが有する2本の棒状の物体間の距離を近づけた場合、クリップ部CLが閉じる、すなわちクリップ部CLが有する2本の棒状の物体間の距離が近づく。ツールTL1は、このような動作によって、ケーブルCをクリップ部CLによって把持することができる。
また、ツールTL1が最も長くなる場合、すなわちツールTL1のグリップ部及びクリップ部が閉じている場合において、ツールTL1の端部のうちのグリップ部GL側の端部からツールTL1の端部のうちのクリップ部CL側の端部までの長さは、この一例において、長さLT1である。長さLT1は、例えば、10センチメートル程度である。なお、長さLT1は、これに代えて、他の長さであってもよい。また、ツールTL1がケーブルCを把持している場合において、クリップ部CLのうちのケーブルCを挟んでいる面(ケーブルCと接触している面)の少なくとも一部には、複数の凹凸(ギザギザ状の段差)が設けられている。これにより、ツールTL1は、ケーブルCが滑って落ちてしまうことを抑制することが可能であるとともに、複数のケーブルCを同時に挟んで保持することが可能である。ツールTL1は、把持部の一例である。
このようなツールTL1が設置されたエンドエフェクターE1は、ケーブルによって制御装置40と通信可能に接続されている。これにより、エンドエフェクターE1は、制御装置40から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、エンドエフェクターE1は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
マニピュレーターM1は、6つの関節を備える。また、6つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターM1を備えるアームA1は、6軸垂直多関節型のアームである。アームA1は、支持台BS1と、エンドエフェクターE1と、マニピュレーターM1と、マニピュレーターM1が備える6つの関節それぞれのアクチュエーターとによる連携した動作によって6軸の自由度の動作を行う。なお、アームA1は、5軸以下の自由度で動作する構成であってもよく、7軸以上の自由度で動作する構成であってもよい。
マニピュレーターM1が備える6つの(関節に備えられた)アクチュエーターはそれぞれ、ケーブルによって制御装置40と通信可能に接続されている。これにより、当該アクチュエーターは、制御装置40から取得される制御信号に基づいて、マニピュレーターM1を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、マニピュレーターM1が備える6つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
力検出部211は、エンドエフェクターE1とマニピュレーターM1の間に備えられる。力検出部211は、例えば、力センサーである。力検出部211は、エンドエフェクターE1、又はエンドエフェクターE1により把持された物体に作用した力やモーメント(トルク)を検出する。力検出部211は、検出した力やモーメントの大きさを示す値を出力値として含む第1力検出情報を通信により制御装置40へ出力する。
第1力検出情報は、制御装置40によるアームA1の第1力検出情報に基づく制御に用いられる。第1力検出情報に基づく制御は、例えば、インピーダンス制御等のコンプライアントモーション制御のことである。なお、力検出部211は、トルクセンサー等のエンドエフェクターE1、又はエンドエフェクターE1により把持された物体に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。
力検出部211は、ケーブルによって制御装置40と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、力検出部211と制御装置40とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
第2ロボット22は、アームA2と、アームA2を支持する支持台BS2を備える単腕ロボットである。単腕ロボットは、この一例におけるアームA2のような1本のアーム(腕)を備えるロボットである。なお、第2ロボット22は、単腕ロボットに代えて、複腕ロボットであってもよく、ガントリロボットのような直動ロボットであってもよく、スカラロボットであってもよく、その他のロボットであってもよい。複腕ロボットは、2本以上のアーム(例えば、2本以上のアームA2)を備えるロボットである。なお、複腕ロボットのうち、2本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、第2ロボット22は、2本のアームを備える双腕ロボットであってもよく、3本以上のアーム(例えば、3本以上のアームA2)を備える複腕ロボットであってもよい。
アームA2は、エンドエフェクターE2と、マニピュレーターM2と、力検出部221を備える。
エンドエフェクターE2は、物体を把持するエンドエフェクターである。この一例において、エンドエフェクターE2は、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を把持する。なお、エンドエフェクターE2は、これに代えて、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を把持する構成であってもよい。すなわち、この一例において、把持するとは、物体を持ち上げることが可能な状態にすることを意味する。エンドエフェクターE2の指部には、図1に示すように、ツールTL2が設けられている。
ツールTL2は、ツールTL1に把持されたケーブルCがツールTL1とともに動いている際、ケーブルCの一部に接触させることによって当該一部が可動範囲(可動域)を制限する道具である。ここで、図3を参照し、ツールTL2について説明する。図3は、ツールTL2の一例を示す図である。図3に示したように、この一例におけるツールTL2は、2本の棒状の物体を有する。これら2本の棒状の物体は、それぞれの一端が互いに回動可能なように接続されており、当該一端と反対側の端部のそれぞれがエンドエフェクターE2の指部に設けられる。また、ツールTL2は、当該一端から所定の方向に向かう当接部LDが当該一端に設けられている。所定の方向は、当該2本の棒状の物体のそれぞれが延伸する方向を含む面に対して直交する方向である。当接部LDは、ケーブルCの可動範囲を制限するためにケーブルCに接触させる棒状の部位である。
ツールTL2が有する2本の棒状の物体と当接部LDとの接合部には、バネが備えられており、当接部LDに対して所定の閾値以上の力が加わった場合、当該バネによって当該力が加わった方向に当接部LDが弾性変形する。なお、ツールTL1は、力センサーと、当該物体に対して当接部LDを回動させるアクチュエーターを備えており、当接部LDに対して所定の閾値以上の力が加わった場合、当該アクチュエーターによって当該力が加わった方向に当接部LDを回動させる構成等、当接部LDに加わった力に応じて当接部LDを弾性変形させる他の構成であってもよい。
ツールTL2は、エンドエフェクターE2の指部の動作に応じてツールTL2が有する2本の棒状の物体間を開閉させた場合、当該物体間の開閉に応じてエンドエフェクターE2の重心からツールTL2が有する2本の棒状の物体と当接部LDとの接合部までの距離を変化させる。当該物体間の開閉は、この一例において、当該物体間の距離を変化させることである。図3に示した例では、当該物体間を開く、すなわち当該物体間の距離を離した場合、当該重心から当該接合部までの距離が短くなる。また、当該物体間を閉じる、すなわち当該物体間の距離を近づけた場合、当該重心から当該接合部までの距離が長くなる。以下では、一例として、当該物体間を常に閉じた状態を保持したままツールTL2が使用される場合について説明する。なお、ツールTL2が最も長くなる場合、すなわちツールTL2が有する2本の棒状の物体間が閉じている場合において、ツールTL2の端部のうちのエンドエフェクターE2側の端部から当該接合部までの長さは、この一例において、長さLT2である。長さLT2は、前述のツールTL1における長さLT1よりも長い長さであり、例えば、15センチメートル程度である。これにより、ロボットシステム1では、ツールTL1とツールTL2とが干渉してしまうことを抑制することができる。なお、長さLT2は、これに代えて、長さLT1よりも長い他の長さであってもよい。
当接部LDの少なくとも一部(例えば、当接部LDの部位のうちの図3に示した円WDによって囲まれた範囲の部位)は、図4に示したように曲面を有する。図4は、当接部LDの一例を示す三面図である。図4において、当接部LDが備えるバネは、省略している。この一例における当接部LDの形状は、当接部LDが延伸する方向に直交する面で当接部LDを切った場合の断面が半円である半円柱形状である。また、当該半円柱形状は、ツールTL2が有する2本の棒状の物体と当接部LDとの接合部から当接部LDの先端にかけて細くなる半円柱形状である。これにより、ツールTL2は、ケーブルCの可動範囲を制限するだけではなく、半円柱の円弧と直線との間の角によってケーブルCに折り目を付けることもできる。なお、当接部LDの形状は、これに代えて、当接部LDの少なくとも一部に曲面を有していれば他の形状であってもよく、当該接合部から当該先端にかけて同じ太さであってもよい。
このようなツールTL2が設けられたエンドエフェクターE2は、ケーブルによって制御装置40と通信可能に接続されている。これにより、エンドエフェクターE2は、制御装置40から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、エンドエフェクターE2は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
マニピュレーターM2は、6つの関節を備える。また、6つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターM2を備えるアームA2は、6軸垂直多関節型のアームである。アームA2は、支持台BS2と、エンドエフェクターE2と、マニピュレーターM2と、マニピュレーターM2が備える6つの関節それぞれのアクチュエーターとによる連携した動作によって6軸の自由度の動作を行う。なお、アームA2は、5軸以下の自由度で動作する構成であってもよく、7軸以上の自由度で動作する構成であってもよい。
マニピュレーターM2が備える6つの(関節に備えられた)アクチュエーターはそれぞれ、ケーブルによって制御装置40と通信可能に接続されている。これにより、当該アクチュエーターは、制御装置40から取得される制御信号に基づいて、マニピュレーターM2を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、マニピュレーターM2が備える6つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
力検出部221は、エンドエフェクターE2とマニピュレーターM2の間に備えられる。力検出部221は、例えば、力センサーである。力検出部221は、エンドエフェクターE2、又はエンドエフェクターE2により把持された物体に作用した力やモーメント(トルク)を検出する。力検出部221は、検出した力やモーメントの大きさを示す値を出力値として含む第2力検出情報を通信により制御装置40へ出力する。
第2力検出情報は、制御装置40によるアームA2の第2力検出情報に基づく制御に用いられる。第2力検出情報に基づく制御は、例えば、インピーダンス制御等のコンプライアントモーション制御のことである。なお、力検出部221は、トルクセンサー等のエンドエフェクターE2、又はエンドエフェクターE2により把持された物体に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。
力検出部221は、ケーブルによって制御装置40と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、力検出部221と制御装置40とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
制御装置40は、この一例において、ロボットコントローラー(ロボット制御装置)である。制御装置40は、エンドエフェクターE1に予め対応付けられた位置に、エンドエフェクターE1とともに動くTCP(Tool Center Point)である制御点T1を設定する。エンドエフェクターE1に予め対応付けられた位置は、例えば、エンドエフェクターE1を回動させるマニピュレーターM1のアクチュエーターの回動軸上の位置であって、グリップ部GLを閉じた状態のツールTL1におけるクリップ部CL側の端部の位置である。なお、エンドエフェクターE1に対応付けられた位置は、これに代えて、他の位置であってもよい。
制御点T1には、制御点T1の位置を示す情報である第1制御点位置情報と、制御点T1の姿勢を示す情報である第1制御点姿勢情報とが対応付けられている。なお、制御点T1には、これらに加えて、他の情報が対応付けられる構成であってもよい。第1制御点位置情報及び第1制御点姿勢情報を制御装置40が指定(決定)すると、制御点T1の位置及び姿勢が決まる。制御装置40は、第1制御点位置情報を指定し、指定した第1制御点位置情報が示す位置に制御点T1の位置が一致するようにアームA1を動作させる。また、制御装置40は、第1制御点姿勢情報を指定し、指定した第1制御点姿勢情報が示す姿勢に制御点T1の姿勢が一致するようにアームA1を動作させる。
この一例において、制御点T1の位置は、制御点座標系TC1の原点のロボット座標系RCにおける位置によって表される。また、制御点T1の姿勢は、制御点座標系TC1の各座標軸の方向によって表される。制御点座標系TC1は、制御点T1とともに動くように制御点T1に対応付けられた三次元局所座標系である。
制御装置40は、予めユーザーから入力された第1制御点設定情報に基づいて制御点T1を設定する。第1制御点設定情報は、例えば、エンドエフェクターE1の重心の位置及び姿勢と制御点T1の位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、第1制御点設定情報は、これに代えて、エンドエフェクターE1に対応付けられた何らかの位置及び姿勢と制御点T1の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターM1に対応付けられた何らかの位置及び姿勢と制御点T1の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ツールTL1に対応付けられた何らかの位置及び姿勢と制御点T1の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
制御装置40は、情報処理装置30から経由点情報を取得する。経由点情報は、経由点を示す情報である。経由点は、制御装置40がアームA1を動作させる際に制御点T1を経由(通過)させる複数の点である。経由点には、経由点位置情報と、経由点姿勢情報と、経由点順番情報と、経由点速さ情報と、経由点把持力情報が対応付けられている。経由点位置情報は、経由点の位置を示す情報である。また、経由点姿勢情報は、経由点の姿勢を示す情報である。また、経由点順番情報は、経由点に対応付けられた順番を示す情報である。経由点速さ情報は、経由点に対応付けられた速さを示す情報である。当該速さは、制御点T1(又はエンドエフェクターE1)を移動させる速さである。経由点把持力情報は、経由点に対応付けられた把持力を示す情報である。当該把持力は、エンドエフェクターE1の指部の動作によってツールTL1のクリップ部が物体を把持する力である。
この一例において、各経由点の位置は、各経由点に対応付けられた三次元局所座標系である経由点座標系の原点のロボット座標系RCにおける位置によって表される。また、経由点の姿勢は、経由点座標系の各座標軸の方向によって表される。
制御装置40は、第1制御点位置情報及び第1制御点姿勢情報を指定し、制御点T1の位置及び姿勢が経由点の位置及び姿勢と一致するようにアームA1を動作させることにより、制御点T1と経由点を一致させる。この一例において、制御点T1と経由点とを一致させることは、制御点T1の位置及び姿勢と経由点の位置及び姿勢とを一致させることを意味する。また、制御装置40は、経由点の順番に基づいて当該順番の順に各経由点に制御点T1を一致させる。また、制御装置40は、経由点の速さに基づいて、各経由点から次の順番の経由点まで移動する際の制御点T1の速さを決定する。また、制御装置40は、経由点の把持力に基づいて、各経由点から次の順番の経由点まで移動する際の把持力であってツールTL1のクリップ部が物体を把持する把持力を決定する。これらにより、制御装置40は、アームA1を動作させ、エンドエフェクターE1の位置及び姿勢を変化させる。
制御装置40は、取得した経由点情報に基づいて、各経由点に制御点T1が一致するようにマニピュレーターM1のアクチュエーターを制御する信号を含む制御信号を生成する。当該制御信号には、エンドエフェクターE1の指部を動かす信号等の他の信号も含まれる。そして、制御装置40は、生成した制御信号を第1ロボット21に送信し、第1ロボット21に所定の第1作業を行わせる。
また、制御装置40は、エンドエフェクターE2に予め対応付けられた位置に、エンドエフェクターE2とともに動くTCPである制御点T2を設定する。エンドエフェクターE2に予め対応付けられた位置は、例えば、当接部LDの先端の位置である。なお、エンドエフェクターE2に予め対応付けられた位置は、これに代えて、他の位置であってもよい。
制御点T2には、制御点T2の位置を示す情報である第2制御点位置情報と、制御点T2の姿勢を示す情報である第2制御点姿勢情報とが対応付けられている。なお、制御点T2には、これらに加えて、他の情報が対応付けられる構成であってもよい。第2制御点位置情報及び第2制御点姿勢情報を制御装置40が指定(決定)すると、制御点T2の位置及び姿勢が決まる。制御装置40は、第2制御点位置情報を指定し、指定した第2制御点位置情報が示す位置に制御点T2の位置が一致するようにアームA2を動作させる。また、制御装置40は、第2制御点姿勢情報を指定し、指定した第2制御点姿勢情報が示す姿勢に制御点T2の姿勢が一致するようにアームA2を動作させる。
この一例において、制御点T2の位置は、制御点座標系TC2の原点のロボット座標系RCにおける位置によって表される。また、制御点T2の姿勢は、制御点座標系TC2の各座標軸の方向によって表される。制御点座標系TC2は、制御点T2とともに動くように制御点T2に対応付けられた三次元局所座標系である。
制御装置40は、予めユーザーから入力された第2制御点設定情報に基づいて制御点T2を設定する。第2制御点設定情報は、例えば、エンドエフェクターE2の重心の位置及び姿勢と制御点T2の位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、第2制御点設定情報は、これに代えて、エンドエフェクターE2に対応付けられた何らかの位置及び姿勢と制御点T2の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターM2に対応付けられた何らかの位置及び姿勢と制御点T2の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ツールTL2に対応付けられた何らかの位置及び姿勢と制御点T2の位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
また、制御装置40は、情報処理装置30から補助経由点情報を取得する。補助経由点情報は、補助経由点を示す情報である。補助経由点は、制御装置40がアームA2を動作させる際に制御点T2を経由(通過)させる複数の点である。補助経由点には、補助経由点位置情報と、補助経由点姿勢情報と、補助経由点順番情報が対応付けられている。補助経由点位置情報は、補助経由点の位置を示す情報である。また、補助経由点姿勢情報は、補助経由点の姿勢を示す情報である。また、補助経由点順番情報は、補助経由点に対応付けられた順番を示す情報である。
この一例において、各補助経由点の位置は、各補助経由点に対応付けられた三次元局所座標系である補助経由点座標系の原点のロボット座標系RCにおける位置によって表される。また、補助経由点の姿勢は、補助経由点座標系の各座標軸の方向によって表される。
制御装置40は、第2制御点位置情報及び第2制御点姿勢情報を指定し、制御点T2の位置及び姿勢が補助経由点の位置及び姿勢と一致するようにアームA2を動作させることにより、制御点T2と補助経由点を一致させる。この一例において、制御点T2と補助経由点とを一致させることは、制御点T2の位置及び姿勢と補助経由点の位置及び姿勢とを一致させることを意味する。また、制御装置40は、補助経由点の順番に基づいて当該順番の順に各補助経由点に制御点T2を一致させる。これらにより、制御装置40は、アームA2を動作させ、エンドエフェクターE2の位置及び姿勢を変化させる。
制御装置40は、取得した補助経由点情報に基づいて、各補助経由点に制御点T2を一致させるようにマニピュレーターM2のアクチュエーターを制御する信号を含む制御信号を生成する。当該制御信号には、エンドエフェクターE2の指部を動かす信号等の他の信号も含まれる。そして、制御装置40は、生成した制御信号を第2ロボット22に送信し、第2ロボット22に所定の第2作業を行わせる。
制御装置40は、この一例において、第1ロボット21及び第2ロボット22の外部に設置されている。なお、制御装置40は、第1ロボット21及び第2ロボット22の外部に設置される構成に代えて、第1ロボット21と第2ロボット22のうちいずれか一方に内蔵される構成であってもよい。また、制御装置40は、第1ロボット21と第2ロボット22の両方に内蔵される構成であってもよい。この場合、第1ロボット21に内蔵される制御装置40である第1制御装置は、情報処理装置30から経由点情報を取得し、取得した経由点情報に基づいて第1ロボット21を動作させる。また、第2ロボット22に内蔵される制御装置40である第2制御装置は、情報処理装置30から補助経由点情報を取得し、取得した補助経由点情報に基づいて第2ロボット22を動作させる。
情報処理装置30は、例えば、ノートPC(Personal Computer)である。なお、情報処理装置30は、これに代えて、ティーチングペンダント、デスクトップPC、タブレットPC、多機能携帯電話端末(スマートフォン)、携帯電話端末、PDA(Personal Digital Assistant)等の他の情報処理装置であってもよい。
情報処理装置30は、この一例において、ユーザーが教示点を入力する教示画面を表示する。教示点は、情報処理装置30が経由点情報及び補助経由点情報を生成するために用いる点である。教示点には、教示点位置情報と、教示点姿勢情報と、教示点順番情報と、教示点速さ情報と、教示点把持力情報と、教示点種類情報とが対応付けられている。教示点位置情報は、教示点の位置を示す情報である。また、教示点姿勢情報は、教示点の姿勢を示す情報である。また、教示点順番情報は、教示点に対応付けられた順番を示す情報である。教示点速さ情報は、教示点に対応付けられた速さを示す情報である。教示点把持力情報は、教示点に対応付けられた把持力を示す情報である。
教示点種類情報は、教示点の種類を示す情報である。教示点の種類は、始教示点、終教示点、第1教示点、第2教示点、第3教示点の5種類である。始教示点と、終教示点と、第1教示点と、第2教示点のそれぞれは、経由点情報を生成するために用いる教示点である。第3教示点は、補助経由点情報を生成するために用いる教示点である。以下では、説明の便宜上、種類が始教示点である教示点を始教示点と称し、種類が終教示点である教示点を終教示点と称し、種類が第1教示点である教示点を第1教示点と称し、種類が第2教示点である教示点を第2教示点と称し、種類が第3教示点である教示点を第3教示点と称して説明する。これらの教示点についての詳細は、後述する。
情報処理装置30は、教示画面からユーザーが入力したこれらの情報を受け付ける。情報処理装置30は、受け付けた当該情報に基づいた教示点を生成する。情報処理装置30は、生成した教示点に基づいて経由点情報及び補助経由点情報を生成する。情報処理装置30は、生成した経由点情報及び補助経由点情報を制御装置40に出力する。
情報処理装置30は、ケーブルによって制御装置40と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、情報処理装置30と制御装置40とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。また、情報処理装置30は、制御装置40と一体に構成されてもよい。この場合、制御装置40は、以下において説明する情報処理装置30の各機能を有する。
<第1ロボットが行う第1作業と第2ロボットが行う第2作業との概要>
以下、第1ロボット21が行う第1作業と第2ロボット22が行う第2作業との概要について説明する。
まず、第1ロボット21が行う第1作業について説明する。第1ロボット21は、物体にケーブルCを引き回す作業を所定の作業として行う。ケーブルCを物体に引き回す作業は、この一例において、当該物体に応じた経由点軌跡に沿って線状物体を引っ張りながら当該物体に取り付ける(配置する)作業のことである。経由点軌跡は、情報処理装置30が生成する経由点情報が示す各経由点を、各経由点の順番の順に線で結ぶことによって得られる軌跡である。当該線は、この一例において、直線である。なお、当該線は、曲線を含む構成であってもよい。ケーブルCを引っ張りながら当該物体に取り付ける作業の例としては、何らかの装置の筐体内部の壁面に設けられた1以上のケーブルクランプにケーブルCを引っ掛けながら筐体に配線(配置)する作業等が挙げられる。
ケーブルCが引き回される物体は、例えば、プリンターやプロジェクター等の産業用の装置や当該装置の部品、産業用ではない日用品の装置や当該装置の部品、臓器等の生体等である。以下では、一例として、当該物体が図1に示した第1物体Oである場合について説明する。
この一例において、第1物体Oは、図1に示したように作業台TBの上面に載置されている。第1物体Oは、板状の物体である。第1物体Oの上面には、2つの係止部である係止部O1及び係止部O2が形成されている。係止部O1及び係止部O2のそれぞれは、例えば、ケーブルCを第1物体Oに引き回す際にケーブルCを引っ掛けるためのケーブルクランプである。なお、第1物体Oは、係止部O1と係止部O2のうちのいずれか一方のみが形成されている構成であってもよく、係止部O1及び係止部O2に加えて他の係止部が形成されている構成であってもよい。第1物体Oの上面は、第1面の一例である。
係止部O1及び係止部O2のそれぞれは、第1物体Oの上面から鉛直上方に向かって延伸する第1部位と、第1部位の端部のうちの当該上面側と反対側の端部から当該上面に対して水平な方向に延伸する第2部位とを有する。当該上面と第2部位との間の距離は、少なくともケーブルCの太さよりも長い距離である。係止部O1と係止部O2のそれぞれは、当該間にケーブルCの一部が挿入されることによって当該一部を係止することができる。以下では、説明の便宜上、係止部O1と係止部O2のそれぞれにおける当該間のうちの第1部位と反対側の端部を入口と称し、当該間のうちの第1部位側の端部を奥と称して説明する。また、以下では、説明の便宜上、係止部O1の入口から奥にケーブルCが挿入されることを、係止部O1にケーブルCが挿入されると称し、係止部O2の入口から奥にケーブルCが挿入されることを、係止部O2にケーブルCが挿入されると称して説明する。当該入口は、係止部の先端の一例である。また、当該奥は、係止部の基端の一例である。
なお、第1物体Oの形状は、上記において説明した形状に代えて、他の形状であってもよい。また、係止部O1と係止部O2のうちいずれか一方又は両方の形状は、上記において説明した形状に代えて、入口と奥を有する他の形状であってもよい。作業台TBは、この一例において、テーブルである。なお、作業台TBは、テーブルに代えて、床面や棚等の第1物体Oを配置可能な物体であれば他の物体であってもよい。
この一例において、第1ロボット21は、ケーブルCの2つの端部のうちの一方である端部C1をツールTL1によって予め把持している。なお、第1作業には、所定のケーブル置き場に置かれたケーブルCをツールTL1によって把持する動作が含まれる構成であってもよい。
第1ロボット21は、制御装置40から取得した制御信号に基づいて、各経由点の順番の順に各経由点と制御点T1とを一致させていくことにより、端部C1を把持したツールTL1を移動させる。これにより、第1ロボット21は、制御装置40が情報処理装置30から取得した経由点情報に基づく経由点軌跡に沿ってケーブルCを引っ張りながら第1物体Oに取り付ける。すなわち、第1ロボット21は、制御装置40から取得した経由点情報に基づいて、ケーブルCを第1物体Oに引き回す。
ここで、図5を参照し、第1ロボット21が行う第1作業について説明する。図5は、第1物体Oの上面図の一例である。図5において、係止部O1と係止部O2とのそれぞれは、図を見やすくするために二点鎖線によって外形のみが示されている。例えば、第1ロボット21は、ツールTL1によって端部C1が把持されたケーブルCを、図5に示した経由点軌跡L0に沿って引っ張る。そして、第1ロボット21は、ケーブルCを係止部O1と係止部O2のそれぞれに引っ掛けて係止させながら第1物体Oに取り付ける。第1物体Oに取り付けられた後のケーブルCは、係止部O1及び係止部O2のそれぞれに係止(挿入)されながら引き回されたことによって図5に示したように経由点軌跡L0からずれる。以上のように、第1ロボット21は、ケーブルCを第1物体Oに引き回す作業を第1作業として行う。なお、第1作業は、これに代えて、何らかの経由点軌跡に沿ってケーブルCを引っ張りながら行う他の作業であってもよい。
第1作業において第1ロボット21がケーブルCを引き回した場合、ケーブルCの一部は、ケーブルCに加わる力に応じて第1物体Oの上面から浮き上がることがある。このような場合、第1ロボット21は、第1作業において係止部O1と係止部O2のうちいずれか一方又は両方へのケーブルCの挿入に失敗する場合がある。これを抑制するため、第2ロボット22は、第2作業を行うことによって第1ロボット21の第1作業による係止部O1及び係止部O2へのケーブルCの挿入を補助する。
以下、図6を参照し、第2ロボット22が行う第2作業について説明する。図6は、係止部O1にケーブルCが挿入される直前の様子の一例を係止部O1の側面から見た図である。当該側面は、係止部O1の入口から奥に向かう方向と直交する方向から係止部O1を見た場合に見える係止部O1の面のことである。図6において、図を簡略化するため、ケーブルCは、ケーブルCの断面を示す二点鎖線のみによって示している。ケーブルCは、第1作業によって、図6に示した矢印が示す方向AR1に向かって移動する。これにより、ケーブルCは、係止部O1に挿入される。この際、前述したように、ケーブルCが第1物体Oの上面OMから浮き上がる場合がある。
図6に示した例では、第2ロボット22は、制御点T2と、係止部O1とケーブルCとの間に設定された補助経由点とを一致させ、当該間における第1物体Oの上面OMに当接部LDを当接させる。この際、補助経由点の姿勢は、制御点T1が当該補助経由点に一致した場合に、当接部LDと上面OMとが成す角度のうちケーブルC側の角度θが鋭角(90°未満)となる姿勢である。角度θが鋭角である場合、ケーブルCの一部は、第1作業によるケーブルCの移動によって上面OMと当接部LDとに挟まれた空間に入る。当該空間は、上面OMの直上から上面OMに向かって光を当てた場合に当接部LDによって当該光が遮られている空間(影の空間)のことである。当該空間に入った当該一部は、第1作業によるケーブルCの移動によって当該一部が上面OMから浮き上がったとしても、当接部LDと干渉するために当接部LDに沿って当接部LDの先端の方向へと移動する。
また、前述したように、当接部LDは、ケーブルCの移動によって所定の閾値以上の力が加わった場合、弾性変形する。図6に示した例では、ケーブルCが方向AR1に向かって移動することによって当接部LDに所定の閾値以上の力を加えた場合、当接部LDは、図6に示した矢印が示す方向AR2に向かって弾性変形する。これにより、ケーブルCは、第1物体Oの上面OMから浮き上がることが制限(抑制)され、係止部O1に挿入される。このように、第2ロボット22は、当接部LDによってケーブルCが上面OMから浮き上がることを制限する作業を第2作業として行う。
なお、第2作業は、これに代えて、ケーブルCが所望の位置において曲がるように当接部LDを当該位置に配置する構成であってもよい。当該位置は、上面OM内における位置であってもよく、上面OMよりも鉛直上方の位置であってもよい。
このように、ロボットシステム1では、第1ロボット21が第1作業を行い、第2ロボット22が第2作業を行う。これにより、第1ロボット21及び第2ロボット22は、ケーブルCを第1物体Oに引き回す作業を行うことができる。また、ロボットシステム1は、第1ロボット21及び第2ロボット22にケーブルCを引き回させるため、複数の第1物体Oのそれぞれに対して所定の作業を行った場合であっても、第1物体O毎に引き回されたケーブルCの状態をばらつかせずに一定の品質を保つことができる。その結果、ロボットシステム1は、当該状態がばらついてしまうことによる不具合が生じる可能性を抑制することができる。
<情報処理装置が経由点情報及び補助経由点情報を生成する処理の概要>
以下、情報処理装置30が経由点情報及び補助経由点を生成する処理の概要について説明する。
情報処理装置30は、表示した教示画面からユーザーにより、教示点位置情報と、教示点姿勢情報と、教示点順番情報と、教示点速さ情報と、教示点把持力情報と、教示点種類情報を入力される。情報処理装置30は、入力されたこれらの情報に基づいて教示点を生成する。そして、情報処理装置30は、生成した教示点に基づいて経由点及び補助経由点を生成する。
ここで、教示点の種類、すなわち始教示点、終教示点、第1教示点、第2教示点、第3教示点のそれぞれについて説明する。始教示点は、情報処理装置30が生成する経由点のうちの1番目(始点)の経由点の位置及び姿勢と、当該経由点の速さと、当該経由点の把持力とを指定する教示点である。終教示点は、情報処理装置30が生成する経由点のうちの最後(終点)の経由点の位置及び姿勢と、当該経由点の速さと、当該経由点の把持力とを指定する教示点である。
第1教示点は、係止部O1と係止部O2のそれぞれの入口の位置を示す教示点である。第2教示点は、係止部O1と係止部O2のそれぞれの奥の位置を示す教示点である。始教示点、終教示点、第1教示点、第2教示点のそれぞれの順番、速さ、把持力は、情報処理装置30が生成する経由点の順番、速さ、把持力のそれぞれを算出するために用いられる。第3教示点は、情報処理装置30が生成する補助経由点の位置及び姿勢と、当該補助経由点の順番とを指定する教示点である。
情報処理装置30は、これらの種類の教示点に基づいて経由点及び補助経由点を生成する。情報処理装置30は、生成した経由点を示す経由点情報と、生成した補助経由点を示す補助経由点情報を生成する。そして、情報処理装置30は、経由点情報及び補助経由点情報を制御装置40に出力する。これにより、ユーザーは、情報処理装置30を利用することによって、第1ロボット21及び第2ロボット22にケーブルCを引き回す作業を容易に行わせることができる。
<制御装置が行う処理の概要>
以下、制御装置40が行う処理の概要について説明する。
制御装置40は、第1物体OにケーブルCを引き回す場合、アームA1に設けられたツールTL1によりケーブルCを把持させ、且つ、アームA2に設けられた当接部LDとケーブルCとを当接させるように、アームA1とアームA2との少なくとも一方を制御する。具体的には、制御装置40は、情報処理装置30から経由点情報及び補助経由点情報を取得する。そして、制御装置40は、取得した経由点情報に基づいて第1ロボット21に第1作業を行わせる。また、制御装置40は、情報処理装置30から取得した補助経由点情報に基づいて第2ロボット22に第2作業を行わせる。これらにより、制御装置40は、ケーブルCを引き回す作業を容易に行うことができる。また、制御装置40は、第1ロボット21及び第2ロボット22にケーブルCを引き回させるため、複数の第1物体Oのそれぞれに対して所定の作業を行った場合であっても、第1物体O毎に引き回されたケーブルCの状態をばらつかせずに一定の品質を保つことができる。その結果、制御装置40は、当該状態がばらついてしまうことによる不具合が生じる可能性を抑制することができる。
本実施形態では、情報処理装置30が経由点情報及び補助経由点情報を生成する処理と、制御装置40が第1ロボット21に第1作業を行わせるとともに第2ロボット22に第2作業を行わせる処理について詳しく説明する。
<ロボット制御装置のハードウェア構成>
以下、図7を参照し、情報処理装置30及び制御装置40のハードウェア構成について説明する。図7は、情報処理装置30及び制御装置40のハードウェア構成の一例を示す図である。図7は、情報処理装置30のハードウェア構成(30番台の符号が付された機能部)と、制御装置40のハードウェア構成(40番台の符号が付された機能部)とを便宜的に重ねて示した図である。
情報処理装置30は、例えば、CPU(Central Processing Unit)31と、記憶部32と、入力受付部33と、通信部34と、表示部35を備える。また、情報処理装置30は、通信部34を介して制御装置40と通信を行う。これらの構成要素は、バスBusを介して相互に通信可能に接続されている。
制御装置40は、例えば、CPU41と、記憶部42と、入力受付部43と、通信部44と、表示部45を備える。また、制御装置40は、通信部44を介してロボット20及び情報処理装置30と通信を行う。これらの構成要素は、バスBusを介して相互に通信可能に接続されている。
CPU31は、記憶部32に格納された各種プログラムを実行する。
記憶部32は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。なお、記憶部32は、情報処理装置30に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部32は、情報処理装置30が処理する各種情報や画像、プログラムを格納する。
入力受付部33は、例えば、表示部35と一体に構成されたタッチパネルである。なお、入力受付部33は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部34は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネルである。
CPU41は、記憶部42に格納された各種プログラムを実行する。
記憶部42は、例えば、HDDやSSD、EEPROM、ROM、RAM等を含む。なお、記憶部42は、制御装置40に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部42は、制御装置40が処理する各種情報や画像、プログラムを格納する。
入力受付部43は、例えば、表示部45と一体に構成されたタッチパネルである。なお、入力受付部43は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部44は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部45は、例えば、液晶ディスプレイパネル、あるいは、有機ELディスプレイパネルである。
<情報処理装置及び制御装置の機能構成>
以下、図8を参照し、情報処理装置30及び制御装置40の機能構成について説明する。図8は、情報処理装置30及び制御装置40の機能構成の一例を示す図である。
情報処理装置30は、記憶部32と、通信部34と、表示部35と、制御部36を備える。
制御部36は、情報処理装置30の全体を制御する。制御部36は、表示制御部361と、撮像制御部362と、画像取得部363と、軌跡生成部364と、経由点生成部365と、補助経由点生成部366と、情報出力部367を備える。制御部36が備えるこれらの機能部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
表示制御部361は、表示部35に表示させる各種の画面を生成する。表示制御部361は、生成した画面を表示部35に表示させる。
撮像制御部362は、撮像部10が撮像可能な範囲を撮像部10に撮像させる。
画像取得部363は、撮像部10が撮像した撮像画像を撮像部10から取得する。
軌跡生成部364は、入力受付部33によってユーザーから入力された(受け付けた)教示点に基づいて、仮軌跡を生成する。仮軌跡は、経由点生成部365が経由点を生成する際に用いる曲線である。
経由点生成部365は、軌跡生成部364が生成した仮軌跡に基づいて経由点を生成する。また、経由点生成部365は、生成した経由点に基づいて、当該経由点を示す経由点情報を生成する。
補助経由点生成部366は、入力受付部33によってユーザーから入力された(受け付けた)教示点に基づいて補助経由点を生成する。また、補助経由点生成部366は、生成した補助経由点に基づいて、当該補助経由点を示す補助経由点情報を生成する。
情報出力部367は、経由点生成部365が生成した経由点情報を通信部34により制御装置40に出力する。また、情報出力部367は、補助経由点生成部366が生成した補助経由点情報を通信部34により制御装置40に出力する。
制御装置40は、記憶部42と、通信部44と、制御部46を備える。
制御部46は、制御装置40の全体を制御する。制御部46は、力検出情報取得部461と、情報取得部462と、第1ロボット制御部463と、第2ロボット制御部464を備える。制御部46が備えるこれらの機能部は、例えば、CPU41が、記憶部42に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSIやASIC等のハードウェア機能部であってもよい。
力検出情報取得部461は、力検出部211から第1力検出情報を取得する。また、力検出情報取得部461は、力検出部221から第2力検出情報を取得する。
情報取得部462は、情報処理装置30から経由点情報を取得する。また、情報取得部462は、情報処理装置30から補助経由点情報を取得する。
第1ロボット制御部463は、情報取得部462が取得した経由点情報に基づいて第1ロボット21を動作させ、第1ロボット21に第1作業を行わせる。
第2ロボット制御部464は、情報取得部462が取得した補助経由点情報に基づいて第2ロボット22を動作させ、第2ロボット22に第2作業を行わせる。
<情報処理装置が教示画面を表示する処理>
以下、図9を参照し、情報処理装置30が教示画面を表示する処理について説明する。図9は、情報処理装置30が教示画面を表示する処理の流れの一例を示すフローチャートである。
表示制御部361は、記憶部32から教示画面情報を読み出す。教示画面情報は、教示画面を生成するために必要な情報であり、例えば、HTML(HyperText Markup Language)やCSS(Cascading Style Sheets)によって構成される情報である。また、教示画面情報は、記憶部32に予め記憶された情報である。表示制御部361は、記憶部32から読み出した教示画面情報に基づいて教示画面を生成する(ステップS110)。次に、表示制御部361は、ステップS110において生成した教示画面を表示部35に表示させ(ステップS120)、処理を終了する。
<教示画面においてユーザーにより行われる操作に基づいて情報処理装置が行う処理>
以下、図10〜14を参照し、教示画面と、ユーザーにより行われる操作に基づいて情報処理装置30が行う処理とについて説明する。図10は、教示画面の一例を示す図である。図10に示した教示画面G1には、撮像画像表示領域VSと、ボタンB1と、ボタンB2と、ボタンB3が含まれている。なお、教示画面G1には、これらに加えて、他のGUI(Graphical User Interface)が含まれる構成であってもよい。
撮像画像表示領域VSは、撮像部10が撮像した撮像画像を表示する領域である。表示制御部361は、教示画面G1を表示部35に表示させる際、撮像制御部362によって撮像部10が撮像可能な範囲を撮像部10に撮像させる。当該範囲には、少なくとも第1物体Oの上面が含まれている。画像取得部363は、撮像部10が撮像した撮像画像を撮像部10から取得する。表示制御部361は、画像取得部363が取得した撮像画像を撮像画像表示領域VSに表示させる。なお、撮像画像上における位置を示す座標は、キャリブレーションによりロボット座標系RCにおける位置を示す座標と対応付けられている。また、ロボット座標系RCにおける位置を示す座標は、キャリブレーションにより実空間(ワールド座標系)における位置を示す座標と対応付けられている。
また、ユーザーは、撮像画像表示領域VS上をタップすることによって、タップした位置が示す撮像画像上の位置に教示点を追加(入力、生成)することができる。表示制御部361は、ユーザーにより撮像画像表示領域VS上をタップされた場合、タップされた位置が示す撮像画像上の位置に、当該位置を示す教示点位置情報が対応付けられた教示点を生成する。当該位置は、撮像画像上のX軸方向及びY軸方向における位置に対応付けられたロボット座標系RCのX軸方向及びY軸方向における位置である。この一例では、教示点にはロボット座標系RCのZ軸方向における位置が後から対応付けられる。なお、教示点には、撮像画像上のX軸方向、Y軸方向、Z軸方向のそれぞれにおける位置に対応付けられたロボット座標系RCのX軸方向、Y軸方向、Z軸方向のそれぞれにおける位置を示す教示点位置情報が、当該教示点が生成された際に対応付けられる構成であってもよい。また、この一例において、撮像画像上のX軸方向及びY軸方向は、この一例において、撮像画像に含まれる第1物体Oの上面に沿った方向である。なお、撮像画像上のX軸方向及びY軸方向は、これに代えて、撮像画像に含まれる第1物体Oの上面に沿っていない他の方向であってもよい。
また、表示制御部361は、教示点を生成したことをユーザーに知らせるため、生成した教示点に対応付けられたロボット座標系RCのX軸方向及びY軸方向における位置に基づいて、当該位置に対応付けられた撮像画像上のX軸方向及びY軸方向における位置に教示点を表す情報を追加する(表示させる)。図10に示した例では、撮像画像上において追加(表示)された教示点を表す情報は、円SP、円EP、円TP1、円TP11、円TP2、円TP21、円HP1、円HP2のそれぞれによって表されている。なお、当該情報は、例えば、星印等の印や光の明滅等の他の情報であってもよい。
また、表示制御部361は、撮像画像上に教示点を表す情報を追加した(表示させた)後、追加(表示)された当該情報が表わす教示点の姿勢を示す教示点姿勢情報と、当該教示点の順番を示す教示点順番情報と、当該教示点の種類を示す教示点種類情報とを入力する情報入力画面を撮像画像表示領域VSに表示された撮像画像に重ねて表示させる。図10に示した例では、表示制御部361は、円EPを撮像画像表示領域VSに表示させた後、撮像画像表示領域VSに表示された撮像画像に情報入力画面G2を重ねて表示させている。
ユーザーは、情報入力画面G2を用いて、所望の姿勢を円EPが表わす教示点に対応付けることができる。すなわち、表示制御部361は、情報入力画面G2から受け付けられた教示点姿勢情報を、円EPが表わす教示点に対応付ける。また、ユーザーは、情報入力画面G2を用いて、所望の順番を円EPが表わす教示点に対応付けることができる。すなわち、表示制御部361は、情報入力画面G2から受け付けられた教示点順番情報を、円EPが表わす教示点に対応付ける。また、ユーザーは、情報入力画面G2を用いて、所望の種類を円EPが表わす教示点に対応付けることができる。すなわち、表示制御部361は、情報入力画面G2から受け付けられた教示点種類情報を、円EPが表わす教示点に対応付ける。
図10に示した例では、円EPが表わす教示点は、終教示点である。また、円SPが表わす教示点は、始教示点である。また、円TP1と円TP2のそれぞれが表わす教示点は、第1教示点である。また、円TP11、円TP21のそれぞれが表わす教示点は、第2教示点である。また、円HP1、円HP2のそれぞれが表わす教示点は、第3教示点である。
表示制御部361は、情報入力画面G2においてユーザーにより教示点姿勢情報と、教示点順番情報と、教示点種類情報とが入力された後、情報入力画面G2を撮像画像表示領域VSから削除する。例えば、表示制御部361は、情報入力画面G2を所定の時間内において2回タップされた場合、情報入力画面G2における教示点姿勢情報と教示点順番情報と教示点種類情報との入力が終了したと判定する。所定の時間は、例えば、1秒程度である。なお、所定の時間は、他の時間であってもよい。
ボタンB1は、教示点の追加(撮像画像内に教示点を表す情報の追加)を終了させるボタンである。ユーザーがボタンB1をタップした場合、表示制御部361は、ユーザーによる教示点の追加が終了したと判定する。表示制御部361は、当該追加が終了したと判定した場合、図11に示す付加情報入力画面G3を撮像画像表示領域VSに重ねて表示させる。図11は、付加情報入力画面G3が表示された状態の教示画面G1の一例を示す図である。
付加情報入力画面G3には、最小半径情報入力欄GP1と、付加情報入力欄GP2と、ボタンB4が含まれている。
最小半径情報入力欄GP1は、最小半径情報を入力する欄である。最小半径情報は、この一例において、表示制御部361が生成した教示点に基づいて軌跡生成部364が軌跡を生成する際に用いられる最小半径を指定する情報のことである。従って、ユーザーは、最小半径を最小半径情報入力欄GP1から入力することができる。最小半径情報は、第3情報の一例である。
付加情報入力欄GP2は、付加情報を入力する欄である。付加情報には、この一例において、表示制御部361が生成した教示点に対応付ける教示点高さ情報と、教示点速さ情報と、教示点把持力情報との3つの情報が含まれる。教示点高さ情報は、教示点に対応付ける教示点位置情報のうちのロボット座標系RCのZ軸方向の位置を示す情報である。なお、付加情報には、これらに加えて、他の情報が含まれる構成であってもよい。付加情報入力欄GP2には、表示制御部361が生成した教示点を識別する教示点IDが予め表示されている。ユーザーは、各教示点IDが示す教示点の教示点高さ情報と教示点速さ情報と教示点把持力情報とを付加情報入力欄GP12から入力することができる。
ボタンB4は、最小半径情報入力欄GP1と付加情報入力欄GP2のそれぞれにおけるユーザーによる情報の入力を終了させるボタンである。ユーザーがボタンB4をタップした場合、表示制御部361は、ユーザーにより最小半径情報入力欄GP1に入力された最小半径情報を記憶部32に記憶させる。また、表示制御部361は、付加情報入力欄GP2に入力された教示点高さ情報と教示点速さ情報と教示点把持力情報とを、それぞれに対応付けられた教示点IDが示す教示点に対応付ける。そして、表示制御部361は、付加情報入力画面G3を削除する。
図10に戻る。ボタンB2は、表示制御部361が生成した教示点に基づいて経由点軌跡及び補助経由点を生成させ、生成された経由点軌跡及び補助経由点を撮像画像表示領域VSに表示させるボタンである。ボタンB2がユーザーによりタップされた場合、軌跡生成部364は、表示制御部361が生成した教示点のうちの始教示点、終教示点、第1教示点、第2教示点のそれぞれと、記憶部32に記憶された最小半径情報とに基づいて、仮軌跡を生成する。仮軌跡は、軌跡生成部364が経由点を生成するために用いる曲線である。具体的には、軌跡生成部364は、当該教示点のうちの第1教示点、第2教示点のそれぞれに基づいて、図12に示したように中継点を生成する。図12は、中継点が表示された状態の教示画面G1の一例を示す図である。
中継点は、第1教示点及び第2教示点と、所定のルールとに基づいて軌跡生成部364が生成する点であり、軌跡生成部364が生成する仮軌跡が必ず通過する点である。ここで、所定のルールについて説明する。軌跡生成部364は、第1教示点のそれぞれについて、当該第1教示点と、当該第1教示点に最も近い第2教示点とを対応付ける。以下では、説明の便宜上、このように対応付けられた2つの教示点を教示点セットと称して説明する。図12に示した例では、軌跡生成部364は、円TP1が表わす第1教示点と、円TP11が表わす第2教示点とを1つ目の教示点セットとして対応付け、円TP2が表わす第1教示点と、円TP21が表わす第2教示点とを2つ目の教示点セットとして対応付ける。
軌跡生成部364は、教示点セットの組み合わせ毎に、教示点セットに対応付けられた中継点を生成する。また、軌跡生成部364は、生成した中継点に対し、当該中継点に対応付けられた教示点セットに含まれる第1教示点の順番を示す教示点順番情報を対応付ける。具体的には、軌跡生成部364は、教示点セットに含まれる第1教示点と第2教示点とを通る直線上の位置であって、当該第1教示点から最小半径情報が示す半径だけ離れた位置を示す中継点位置情報が対応付けられた第1中継点を生成する。当該第1中継点は、当該教示点セットに対応付けられた中継点である。当該最小半径情報は、ユーザーにより最小半径情報入力欄GP1に入力された最小半径情報である。最小半径は、例えば、5センチメートルである。また、軌跡生成部364は、生成した第1中継点に対して、当該第1中継点に対応付けられた教示点セットに含まれる第1教示点の順番を示す中継点順番情報を対応付ける。なお、最小半径は、これに代えて、5センチメートル未満の半径であってもよく、5センチメートルより大きな半径であってもよい。また、最小半径は、軌跡生成部364が生成する第1中継点毎に異なる構成であってもよい。この場合、最小半径情報には、教示点セット毎の最小半径を示す情報が含まれる。当該情報は、最小半径情報入力欄GP1においてユーザーにより入力される。
また、表示制御部361は、軌跡生成部364が生成した第1中継点を表す情報を、撮像画像上における第1中継点の位置に表示させる。図12に示した例では、当該情報は、円AP1、円AP2のそれぞれによって表されている。なお、当該情報は、例えば、星印等の印や光の明滅等の他の情報であってもよい。円AP1が表わす第1中継点の位置は、円TP11が表わす第2教示点と円TP1が表わす第1教示点を通る直線上の位置であって、円TPが表わす第1教示点から最小半径だけ離れた位置である。また、円AP2が表わす第1中継点の位置は、円TP21が表わす第2教示点と円TP2が表わす第1教示点とを通る直線上の位置であって、円TP2が表わす第1教示点から最小半径だけ離れた位置である。
また、軌跡生成部364は、教示点セットのそれぞれについて、当該教示点セットに含まれる第1教示点を中心として、当該教示点セットに対応付けられた第1中継点を第1方向に90°回転させた位置を示す中継点位置情報が対応付けられた第2中継点を生成する。当該第2中継点は、当該教示点セットに対応付けられた中継点である。第1方向は、当該教示点から当該教示点よりも順番が小さい教示点に向かう方向である。また、軌跡生成部364は、生成した第2中継点に対して、当該第2中継点に対応付けられた教示点セットに含まれる第1教示点の順番を示す中継点順番情報を対応付ける。
また、表示制御部361は、軌跡生成部364が生成した第2中継点を表す情報を、撮像画像上における第2中継点の位置に表示させる。図12に示した例では、当該情報は、円BP1、円BP2のそれぞれによって表されている。なお、当該情報は、例えば、星印等の印や光の明滅等の他の情報であってもよい。円BP1が表わす第2中継点の位置は、円AP1が表わす第1中継点を第1方向に90°回転させた位置である。なお、この一例において、円TP1が表わす教示点の順番より小さい順番の教示点は、円SPが表わす始教示点である。また、円BP2が表わす第2中継点の位置は、円AP2が表わす第1中継点を第1方向に90°回転させた位置である。なお、この一例において、円TP2が表わす教示点の順番より小さい順番の教示点は、円TP1が表わす第1教示点である。
また、軌跡生成部364は、教示点セットのそれぞれについて、当該教示点セットに含まれる第1教示点を中心として、第1中継点を第2方向に90°回転させた位置を示す中継点位置情報が対応付けられた第3中継点を生成する。当該第3中継点は、当該教示点セットに対応付けられた中継点である。第2方向は、当該教示点から当該教示点よりも順番が大きい教示点に向かう方向である。また、軌跡生成部364は、生成した第3中継点に対して、当該第3中継点に対応付けられた教示点セットに含まれる第1教示点の順番を示す中継点順番情報を対応付ける。
また、表示制御部361は、軌跡生成部364が生成した第3中継点を表す情報を、撮像画像上における第3中継点の位置に表示させる。図12に示した例では、当該情報は、円CP1、円CP2のそれぞれによって表されている。なお、当該情報は、例えば、星印等の印や光の明滅等の他の情報であってもよい。円CP1が表わす第3中継点の位置は、円AP1が表わす第1中継点を第2方向に90°回転させた位置である。なお、この一例において、円TP1が表わす教示点の順番より大きい順番の教示点は、円TP2が表わす第2教示点である。また、円CP2が表わす第3中継点の位置は、円AP2が表わす第1中継点を第2方向に90°回転させた位置である。なお、この一例において、円TP2が表わす教示点の順番より大きい順番の教示点は、円EPが表わす終教示点である。
また、軌跡生成部364は、教示点セットのそれぞれについて、当該教示点セットに含まれる第2教示点を通って当該教示点セットに含まれる第1教示点と第2教示点とを結ぶ直線と直交する直線上の位置であって、当該第2教示点から最小半径だけ離れた位置を示す中継点位置情報が対応付けられた第4中継点を生成する。当該第4中継点は、当該教示点セットに対応付けられた中継点である。また、軌跡生成部364は、生成した第4中継点に対して、当該第4中継点に対応付けられた教示点セットに含まれる第1教示点の順番を示す中継点順番情報を対応付ける。
また、表示制御部361は、軌跡生成部364が生成した第4中継点を表す情報を、撮像画像上における第4中継点の位置に表示させる。図12に示した例では、当該情報は、円DP1、円DP2のそれぞれによって表されている。なお、当該情報は、例えば、星印等の印や光の明滅等の他の情報であってもよい。円DP1が表わす第4中継点の位置は、円TP11が表わす第2教示点を通って円TP1が表わす第1教示点と当該第2教示点とを結ぶ直線と直交する直線上の位置であって、当該第2教示点から最小半径だけ離れた位置である。また、円DP2が表わす第4中継点の位置は、円TP21が表わす第2教示点を通って円TP2が表わす第1教示点と当該第2教示点とを結ぶ直線と直交する直線上の位置であって、当該第2教示点から最小半径だけ離れた位置である。
上記において説明したルールに基づいて、軌跡生成部364は、第1中継点〜第4中継点のそれぞれを生成する。そして、軌跡生成部364は、生成した第1中継点〜第4中継点のそれぞれと、種類が始教示点である教示点と、種類が終教示点である教示点とに基づいて、図13に示したように仮軌跡を生成する。
具体的には、軌跡生成部364は、生成した中継点を、ある第2中継点から第1中継点、第1中継点から第3中継点、第3中継点から第4中継点、第4中継点から当該第2中継点の順番の次に大きな順番の第2中継点の順に結ばれるようにベジェ曲線を仮軌跡として生成する。当該ベジェ曲線を生成する際、軌跡生成部364は更に、当該ベジェ曲線が、始教示点から最も小さな順番の第2中継点までと、最も大きな順番の第4中継点から終教示点までとを結ぶベジェ曲線として生成する。
図13は、図12に示した始教示点、終教示点、第1中継点〜第4中継点のそれぞれに基づいて生成された仮軌跡が表示された教示画面G1の一例を示す図である。図13に示した例では、軌跡生成部364は、円SPが表わす始教示点、円BP1が表わす第2中継点、円AP1が表わす第1中継点、円CP1が表わす第3中継点、円DP1が表わす第4中継点、円BP2が表わす第2中継点、円AP2が表わす第1中継点、円CP2が表わす第3中継点、円DP2が表わす第4中継点、円EPが表わす終教示点を順に結ぶベジェ曲線を仮軌跡として生成する。
軌跡生成部364が仮軌跡を生成した後、経由点生成部365は、所定の条件に基づいて、仮軌跡上において各経由点が等間隔に離れて位置するように所定の数Nの経由点を生成する。所定の条件は、この一例において、生成する所定の数Nの経由点には、仮軌跡が通過する始教示点、終教示点、第1中継点〜第4中継点のそれぞれと一致する経由点が含まれていることである。所定の数Nは、例えば、100である。なお、所定の数Nは、これに代えて、他の数であってもよい。また、経由点生成部365は、所定の条件に基づいて、仮軌跡上において各経由点が不等間隔に離れて位置するように所定の数Nの経由点を生成する構成であってもよい。
図13は、軌跡生成部364が仮軌跡に基づいて生成した経由点を経由点の位置に基づいて教示画面G1に重ねた場合のイメージ図である。図13に示した点線であって円SPが表わす始教示点、円BP1が表わす第2中継点、円AP1が表わす第1中継点、円CP1が表わす第3中継点、円DP1が表わす第4中継点、円BP2が表わす第2中継点、円AP2が表わす第1中継点、円CP2が表わす第3中継点、円DP2が表わす第4中継点、円EPが表わす終教示点を順に通過する点線が有する点P1〜点PNは、所定の数Nの経由点のそれぞれを表す情報である。なお、図13に示した点P1〜点PNは、図の簡略化のため、この一例における所定の数Nである100よりも少なく描かれている。
経由点生成部365は、生成した経由点のうちの始教示点と一致している経由点に、始教示点の位置を示す教示点位置情報を経由点位置情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの始教示点と一致している経由点に、始教示点の姿勢を示す教示点姿勢情報を経由点姿勢情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの始教示点と一致している経由点に、始教示点の速さを示す情報を経由点速さ情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの始教示点と一致している経由点に、始教示点の把持力を示す情報を経由点把持力情報として対応付ける。
また、経由点生成部365は、生成した経由点のうちの終教示点と一致している経由点に、終教示点の位置を示す情報を経由点位置情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの終教示点と一致している経由点に、終教示点の姿勢を示す情報を経由点姿勢情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの終教示点と一致している経由点に、終教示点の速さを示す情報を経由点速さ情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの終教示点と一致している経由点に、終教示点の把持力を示す情報を経由点把持力情報として対応付ける。
また、経由点生成部365は、生成した経由点のうちの第1中継点と一致している経由点に、第1中継点の位置を示す情報を経由点位置情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの第1中継点と一致している経由点に、第1中継点に対応付けられている教示点セットに含まれる第1教示点の姿勢を示す情報を経由点姿勢情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの第1中継点と一致している経由点に、第1中継点に対応付けられている教示点セットに含まれる第1教示点の速さを示す情報を経由点姿勢情報として対応付ける。また、経由点生成部365は、生成した経由点のうちの第1中継点と一致している経由点に、第1中継点に対応付けられている教示点セットに含まれる第1教示点の把持力を示す情報を経由点把持力情報として対応付ける。
ここで、以下では、説明の便宜上、経由点生成部365が生成した経由点のうち、始教示点、終教示点、第1中継点のいずれかと一致している経由点を、一致点と称して説明する。経由点生成部365は、各一致点について、始教示点と一致している一致点から終教示点と一致している一致点まで順に昇順となる順番を示す経由点順番情報を対応付ける。図13に示した例では、円SPが表わす一致点の順番が1番目であり、円AP1が表わす一致点の順番が2番目であり、円AP2が表わす一致点の順番が3番目であり、円EPが表わす一致点の順番が4番目である。
経由点生成部365は、生成した経由点のうちの一致点を除く経由点のそれぞれについて、当該経由点の姿勢を、各一致点の姿勢に基づいて算出する。具体的には、経由点生成部365は、一致点のそれぞれから1つずつ一致点を対象一致点として選択し、選択した対象一致点の姿勢から対象一致点の順番の次に大きな順番の一致点の姿勢に至るまでの姿勢の変化量と、対象一致点から当該一致点までの各経由点間の姿勢の変化量の総和とが一致するように対象一致点から当該一致点までの間に含まれる各経由点の姿勢を算出する。例えば、図13に示した例では、経由点生成部365は、円SPが表わす一致点を対象一致点として選択した場合、円SPが表わす一致点の姿勢から当該一致点の順番の次に大きな順番の一致点である円AP1が表わす一致点の姿勢に至るまでの姿勢の変化量と、円SPが表わす一致点から円AP1が表わす一致点までの各経由点間の姿勢の変化量の総和とが一致するように円SPが表わす一致点から円AP1が表わす一致点までの間に含まれる各経由点の姿勢を算出する。そして、経由点生成部365は、経由点のそれぞれについて、算出した当該経由点の姿勢を示す経由点姿勢情報を当該経由点に対応付ける。
また、経由点生成部365は、生成した経由点のうちの一致点を除く経由点のそれぞれについて、当該経由点の速さを、各一致点の速さに基づいて算出する。具体的には、経由点生成部365は、一致点のそれぞれから1つずつ一致点を対象一致点として選択し、選択した対象一致点の速さから対象一致点の順番の次に大きな順番の一致点の速さに至るまでの速さの変化量と、対象一致点から当該一致点までの各経由点間の速さの変化量の総和とが一致するように対象一致点から当該一致点までの間に含まれる各経由点の速さを算出する。例えば、図13に示した例では、経由点生成部365は、円SPが表わす一致点を対象一致点として選択した場合、円SPが表わす一致点の速さから当該一致点の順番の次に大きな順番の一致点である円AP1が表わす一致点の速さに至るまでの速さの変化量と、円SPが表わす一致点から円AP1が表わす一致点までの各経由点間の速さの変化量の総和とが一致するように円SPが表わす一致点から円AP1が表わす一致点までの間に含まれる各経由点の速さを算出する。そして、経由点生成部365は、経由点のそれぞれについて、算出した当該経由点の速さを示す経由点速さ情報を当該経由点に対応付ける。
また、経由点生成部365は、生成した経由点のうちの一致点を除く経由点のそれぞれについて、当該経由点の把持力を、各一致点の把持力に基づいて算出する。具体的には、経由点生成部365は、一致点のそれぞれから1つずつ一致点を対象一致点として選択し、選択した対象一致点の把持力から対象一致点の順番の次に大きな順番の一致点の把持力に至るまでの把持力の変化量と、対象一致点から当該一致点までの各経由点間の把持力の変化量の総和とが一致するように対象一致点から当該一致点までの間に含まれる各経由点の把持力を算出する。例えば、図13に示した例では、経由点生成部365は、円SPが表わす一致点を対象一致点として選択した場合、円SPが表わす一致点の把持力から当該一致点の順番の次に大きな順番の一致点である円AP1が表わす一致点の把持力に至るまでの把持力の変化量と、円SPが表わす一致点から円AP1が表わす一致点までの各経由点間の把持力の変化量の総和とが一致するように円SPが表わす一致点から円AP1が表わす一致点までの間に含まれる各経由点の把持力を算出する。そして、経由点生成部365は、経由点のそれぞれについて、算出した当該経由点の把持力を示す経由点把持力情報を当該経由点に対応付ける。
また、経由点生成部365は、生成した各経由点(一致点を含む)の順番を、当該各一致点の順番に基づいて算出する。具体的には、経由点生成部365は、所定の数Nが100の場合、1番目の一致点の順番を1番目として特定し、順番が最後の一致点の順番が100番目となるように1番目の一致点の隣の経由点から順に当該最後の一致点まで順番を示す経由点順番情報を対応付ける。
経由点生成部365は、このようにして経由点位置情報、経由点姿勢情報、経由点順番情報、経由点速さ情報、経由点把持力情報のそれぞれが対応付けられた経由点を生成する。そして、経由点生成部365は、生成した当該経由点に基づいて経由点情報を生成する。
経由点生成部365が経由点情報を生成した後、表示制御部361は、当該経由点情報に基づいて、当該経由点情報が示す各経由点を各経由点の順番の順に線で結ぶことによって経由点軌跡を算出する。表示制御部361は、当該各経由点の位置に基づいて、算出した経由点軌跡を撮像画像表示領域VSに表示させる。図14は、撮像画像表示領域VSに経由点軌跡が表示された状態の教示画面G1の一例を示す図である。図14に示したように、表示制御部361は、経由点軌跡L1を撮像画像表示領域VSに表示させる。これにより、情報処理装置30は、ユーザーが入力した各教示点に基づいて制御装置40が第1ロボット21を動作させる場合に、第1ロボット21がケーブルCを引き回す軌跡をユーザーに対して視覚的に提供することができる。
また、ボタンB2がユーザーによりタップされた場合、経由点生成部365は、上記において説明した経由点を生成する処理とともに、表示制御部361が生成した教示点のうちの第3教示点のそれぞれに基づいて、補助経由点を生成する処理を実行する。具体的には、経由点生成部365は、第3教示点のそれぞれと一致する補助経由点を生成する。すなわち、経由点生成部365に生成された補助経由点のそれぞれには、各補助経由点と一致する第3教示点に対応付けられた各情報が対応付けられている。当該各情報は、教示点位置情報と、教示点姿勢情報と、教示点順番情報のそれぞれである。経由点生成部365は、このように生成した補助経由点に基づいて、補助経由点を示す補助経由点情報を生成する。
図10に戻る。ボタンB3は、経由点生成部365が生成した経由点情報及び補助経由点情報を制御装置40に出力させるボタンである。ボタンB3がユーザーによりタップされた場合、情報出力部367は、通信部34に現在の経由点情報及び補助経由点情報を制御装置40へ出力させる。
以上のように、情報処理装置30は、経由点の数に比べて数が少ない教示点をユーザーにより教示(入力)されることによって経由点及び補助経由点を生成し、生成した経由点に基づく経由点情報と、生成した補助経由点に基づく補助経由点情報とを制御装置40に出力することができる。その結果、情報処理装置30は、ユーザーが経由点及び補助経由点を制御装置40に教示する作業の時間を短縮することができ、当該作業に関する時間的コストや人的コストの増大を抑制することができる。
<制御装置がロボットに所定の作業を行わせる処理>
以下、図15を参照し、制御装置40が第1ロボット21に第1作業を行わせるとともに第2ロボット22に第2作業を行わせる処理について説明する。図15は、制御装置40が第1ロボット21に第1作業を行わせるとともに第2ロボット22に第2作業を行わせる処理の流れの一例を示すフローチャートである。図15に示したフローチャートでは、情報処理装置30から制御装置40に経由点情報及び補助経由点情報が出力された後の処理について説明する。
情報取得部462は、情報処理装置30から経由点情報及び補助経由点情報を取得する(ステップS210)。情報取得部462は、取得した経由点情報及び補助経由点情報を記憶部42に記憶させる。次に、第2ロボット制御部464は、ステップS210において情報取得部462が記憶部42に記憶させた補助経由点情報を記憶部42から読み出す。そして、第2ロボット制御部464は、読み出した補助経由点情報に基づいて第2ロボット22を動作させ、最も小さな順番の補助経由点に制御点T2を一致させる(ステップS220)。具体的には、第2ロボット制御部464は、制御点T2の位置及び姿勢を、当該補助経由点の位置及び姿勢と一致させる。
次に、第1ロボット制御部463は、ステップS210において情報取得部462が記憶部42に記憶させた経由点情報に基づいて第1ロボット21を動作させ、各経由点の順番の順に制御点T1を経由点に一致させる動作であるケーブルCの引き回し動作を開始する(ステップS230)。そして、第1ロボット制御部463は、所定の条件が満たされるまで当該引き回し動作を続ける(ステップS240)。
所定の条件は、この一例において、第1ロボット21により引き回されたケーブルCによってツールTL2の当接部LDに対して所定の閾値以上の力を加わり、当接部LDが有するバネによって当接部LDが弾性変形した後に、当接部LDに沿ってケーブルCが係止部O1に挿入されることである。なお、所定の条件は、これに代えて、他の条件であってもよい。
例えば、第1ロボット制御部463は、ケーブルCの張力が所定の閾値以上となった後に当該張力が所定の閾値未満になったと判定した場合、所定の条件が満たされたと判定する。なお、第1ロボット制御部463は、撮像部10によって撮像された撮像画像に基づいて、所定の条件が満たされたか否かを判定する構成等、他の方法によって所定の条件が満たされたか否かを判定する構成であってもよい。この場合、制御部46は、撮像部10が撮像可能な範囲を撮像部10に撮像させる撮像制御部、及び撮像部10が撮像した撮像画像を撮像部10から取得する画像取得部を備える。
ステップS240において所定の条件が満たされたと判定した場合(ステップS240−YES)、第1ロボット制御部463は、所定の条件が満たされたと判定した直後に制御点T1が一致している経由点において、制御点T1の動作、すなわちケーブルCの引き回し動作を停止させる(ステップS250)。次に、第2ロボット制御部464は、ステップS220において記憶部42から読み出した補助経由点情報に基づいて第2ロボット22を動作させ、現在制御点T2が一致している補助経由点の順番の次に大きな順番の補助経由点に制御点T2を一致させる(ステップS260)。具体的には、第2ロボット制御部464は、制御点T2の位置及び姿勢を、当該補助経由点の位置及び姿勢と一致させる。
次に、第1ロボット制御部463は、ステップS250において停止させた制御点T1の動作、すなわちケーブルCの引き回し動作を再開させる(ステップS270)。具体的には、第1ロボット制御部463は、現在制御点T1が一致している経由点の順番の次の順番の経由点から順に制御点T1を経由点に一致させる。そして、第1ロボット制御部463は、制御点T1を一致させていない経由点がゼロになるまで当該引き回し動作を続ける(ステップS280)。第1ロボット制御部463は、制御点T1を一致させていない経由点がゼロになったと判定した場合(ステップS280−YES)、処理を終了する。
このように、制御装置40は、情報処理装置30から取得した経由点情報及び補助経由点情報に基づいて第1ロボット21に第1作業を行わせるとともに第2ロボット22に第2作業を行わせる。これにより、制御装置40は、線状物体を引き回す作業を容易に行うことができる。また、制御装置40は、ロボット20に線状物体を引き回させるため、引き回された線状物体の状態をばらつかせずに一定の品質を保つことができる。その結果、制御装置40は、当該状態がばらついてしまうことによる不具合が生じる可能性を抑制することができる。
また、上記において説明した例では、第1ロボット21がエンドエフェクターE1の指部により把持されたツールTL1によってケーブルCを把持する場合について説明したが、ケーブルCは、エンドエフェクターE1の指部によって把持される構成であってもよい。この場合、例えば、ツールTL1がエンドエフェクターE1としてマニピュレーターM1に設けられる。
なお、第1教示点(又は第1教示点に対応付けられた各種の情報)は、第1情報の一例である。また、第2教示点(又は第2教示点に対応付けられた各種の情報)は、第2情報の一例である。また、補助経由点の位置は、当接位置の一例である。
<実施形態の変形例>
以下、図16を参照し、実施形態の変形例について説明する。図16は、本実施形態に係るロボットシステム2の構成の一例を示す図である。ロボットシステム2は、ロボットシステム1における第1ロボット21及び第2ロボット22に代えて、ロボット23を備えたロボットシステム1であって撮像部10を備えていないロボットシステム1である。なお、ロボットシステム2は、撮像部10を備える構成であってもよい。また、本実施形態の変形例では、上記において説明した実施形態と同様な構成部に対して同じ符号を付して説明を省略する。
ロボット23は、例えば、双腕ロボットである。ロボット23は、2つのアームとして第1アームと第2アームを備える。第1アームは、本実施形態の変形例において、上記において説明した実施形態における第1ロボット21に相当する。第2アームは、本実施形態の変形例において、上記において説明した実施形態における第2ロボット22に相当する。また、ロボット23は、第1アーム及び第2アームを支持する支持台BSと、制御装置40を備える。
第1アームは、エンドエフェクターE11と、マニピュレーターM11と、第1撮像部11と、力検出部211を備える。第1アームは、第1可動部の一例である。
エンドエフェクターE11は、物体を把持するエンドエフェクターである。この一例において、エンドエフェクターE11は、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を把持する。なお、エンドエフェクターE11は、これに代えて、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を把持する構成であってもよい。すなわち、この一例において、把持するとは、物体を持ち上げることが可能な状態にすることを意味する。エンドエフェクターE11の指部には、図16に示すように、ツールTL1が設けられている。
エンドエフェクターE11は、ケーブルによって制御装置40と通信可能に接続されている。これにより、エンドエフェクターE11は、制御装置40から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、エンドエフェクターE11は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
マニピュレーターM11は、7つの関節を備える。また、7つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターM11を備える第1アームは、7軸垂直多関節型のアームである。第1アームは、支持台BSと、エンドエフェクターE11と、マニピュレーターM11と、マニピュレーターM11が備える7つの関節それぞれのアクチュエーターとによる連携した動作によって7軸の自由度の動作を行う。なお、第1アームは、6軸以下の自由度で動作する構成であってもよく、8軸以上の自由度で動作する構成であってもよい。
第1アームが7軸の自由度で動作する場合、第1アームは、6軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第1アームは、例えば、動作が滑らかになり、更に第1アームの周辺に存在する物体との干渉を容易に回避することができる。また、第1アームが7軸の自由度で動作する場合、第1アームの制御は、第1アームが8軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
マニピュレーターM11が備える7つの(関節に備えられた)アクチュエーターはそれぞれ、ケーブルによって制御装置40と通信可能に接続されている。これにより、当該アクチュエーターは、制御装置40から取得される制御信号に基づいて、マニピュレーターM11を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、マニピュレーターM11が備える7つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
第1撮像部11は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。この一例において、第1撮像部11は、マニピュレーターM11の一部に備えられる。そのため、第1撮像部11は、第1アームの動きに応じて移動する。また、第1撮像部11が撮像可能な範囲は、第1アームの動きに応じて変化する。第1撮像部11は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
また、第1撮像部11は、ケーブルによって制御装置40と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第1撮像部11は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
力検出部211は、この一例において、エンドエフェクターE11とマニピュレーターM11の間に備えられる。
第2アームは、エンドエフェクターE22と、マニピュレーターM22と、第2撮像部12と、力検出部221を備える。第2アームは、第2可動部の一例である。
エンドエフェクターE22は、物体を把持するエンドエフェクターである。この一例において、エンドエフェクターE22は、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を把持する。なお、エンドエフェクターE22は、これに代えて、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を把持する構成であってもよい。すなわち、この一例において、把持するとは、物体を持ち上げることが可能な状態にすることを意味する。エンドエフェクターE22の指部には、図16に示すように、ツールTL2が設けられている。
エンドエフェクターE22は、ケーブルによって制御装置40と通信可能に接続されている。これにより、エンドエフェクターE22は、制御装置40から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、エンドエフェクターE22は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
マニピュレーターM22は、7つの関節を備える。また、7つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターM22を備える第2アームは、7軸垂直多関節型のアームである。第2アームは、支持台BSと、エンドエフェクターE22と、マニピュレーターM22と、マニピュレーターM22が備える7つの関節それぞれのアクチュエーターとによる連携した動作によって7軸の自由度の動作を行う。なお、第2アームは、6軸以下の自由度で動作する構成であってもよく、8軸以上の自由度で動作する構成であってもよい。
第2アームが7軸の自由度で動作する場合、第2アームは、6軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第2アームは、例えば、動作が滑らかになり、更に第2アームの周辺に存在する物体との干渉を容易に回避することができる。また、第2アームが7軸の自由度で動作する場合、第2アームの制御は、第2アームが8軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
マニピュレーターM22が備える7つの(関節に備えられた)アクチュエーターはそれぞれ、ケーブルによって制御装置40と通信可能に接続されている。これにより、当該アクチュエーターは、制御装置40から取得される制御信号に基づいて、マニピュレーターM22を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、マニピュレーターM11が備える7つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
第2撮像部12は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。この一例において、第2撮像部12は、マニピュレーターM22の一部に備えられる。そのため、第2撮像部12は、第2アームの動きに応じて移動する。また、第2撮像部12が撮像可能な範囲は、第2アームの動きに応じて変化する。第2撮像部12は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
また、第2撮像部12は、ケーブルによって制御装置40と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2撮像部12は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
力検出部221は、この一例において、エンドエフェクターE22とマニピュレーターM22の間に備えられる。
また、ロボット23は、第3撮像部13と、第4撮像部14を備える。
第3撮像部13は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。第3撮像部13は、第4撮像部14が撮像可能な範囲を第4撮像部14とともにステレオ撮像可能な部位に備えられる。第3撮像部13は、ケーブルによって制御装置40と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第3撮像部13は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
第4撮像部14は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。第4撮像部14は、第3撮像部13が撮像可能な範囲を第3撮像部13とともにステレオ撮像可能な部位に備えられる。第4撮像部14は、ケーブルによって通信可能に制御装置40と接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第4撮像部14は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって制御装置40と接続される構成であってもよい。
制御装置40は、この一例において、ロボット23に内蔵される。制御装置40は、ロボット23に制御信号を送信することにより、ロボット23を動作させる。これにより、制御装置40は、ロボット23の第1アームに第1作業を行わせるとともに第2アームに第2作業を行わせる。
なお、制御装置40は、ロボット23に内蔵される構成に代えて、ロボット23の外部に設置される構成であってもよい。この場合、ロボット23と制御装置40は、ケーブルによりイーサネット(登録商標)やUSB等の規格によって行われる有線通信、又はWi−Fi(登録商標)等の通信規格により行われる無線通信によって接続され、ロボットシステムを構成する。
また、ロボット23は、第1撮像部11と、第2撮像部12と、第3撮像部13と、第4撮像部14のうちの一部又は全部を備えない構成であってもよい。ロボット23が第1撮像部11と、第2撮像部12と、第3撮像部13と、第4撮像部14の全部を備えない場合、ロボットシステム2は、ロボット23の外部に設置される撮像部10を備える。
この一例において、制御装置40が備える第1ロボット制御部463は、第1アームを動作させ、第1アームに第1作業を行わせる。また、制御装置40が備える第2ロボット制御部464は、第2アームを動作させ、第2アームに第2作業を行わせる。これにより、本実施形態の変形例に係るロボットシステム2(又は制御装置40、又はロボット23)は、第1作業及び第2作業をロボット23に行わせることができ、線状物体を引き回す作業を容易に行うことができる。また、ロボットシステム2は、ロボット23にケーブルCを引き回させるため、複数の第1物体Oのそれぞれに対して第1作業及び第2作業を行った場合であっても、第1物体O毎に引き回されたケーブルCの状態をばらつかせずに一定の品質を保つことができる。その結果、ロボットシステム2は、当該状態がばらついてしまうことによる不具合が生じる可能性を抑制することができる。
以上説明したように、本実施形態における制御装置40は、第1物体(この一例において、第1物体O)に線状物体(この一例において、ケーブルC)を引き回す場合、第1可動部(この一例において、アームA1又は第1アーム)に設けられた把持部(この一例において、ツールTL1)により線状物体を把持させ、且つ、第2可動部(この一例において、アームA2又は第2アーム)に設けられた当接部(この一例において、当接部LD)と線状物体とを当接させるように、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、第1可動部と第2可動部との少なくとも一方を制御して、線状物体を係止部(この一例において、係止部O1及び係止部O2)に係止させる。これにより、制御装置40は、線状物体を係止部に係止させながら引き回す作業を容易に行うことができる。
また、制御装置40は、受付部(この一例において、入力受付部33)により受け付けられた第1情報(この一例において、第1教示点又は第1教示点に対応付けられた各種の情報)に基づいて、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、受付部により受け付けられた第1情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、受付部により受け付けられた第2情報(この一例において、第2教示点又は第2教示点に対応付けられた各種の情報)に基づいて、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、受付部により受け付けられた第1情報及び第2情報に基づいて、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、受付部により受け付けられた第3情報(この一例において、最小半径情報)に基づいて、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、第1情報と第2情報と第3情報とに基づいて、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、受付部により受け付けられた当接部の当接位置(この一例において、補助経由点の位置)に基づいて、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、受付部により受け付けられた当接部の当接位置に基づいて、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、第1物体に線状物体を引き回す場合、第1可動部に設けられた把持部により線状物体を把持させ、且つ、第2可動部に設けられた当接部であって少なくとも一部が曲面である当接部と線状物体とを当接させるように、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、少なくとも一部が曲面である当接部と線状物体とを当接させることによって、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、第1物体に線状物体を引き回す場合、第1可動部に設けられた把持部により線状物体を把持させ、且つ、第2可動部に設けられた当接部であって少なくとも一部が弾性を有する当接部と線状物体とを当接させるように、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、少なくとも一部が弾性を有する当接部と線状物体とを当接させることによって、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、第1物体に線状物体を引き回す場合、第1可動部に設けられた把持部により線状物体を把持させ、且つ、第2可動部に設けられた当接部であって基端(ツールTL2の端部のうちのエンドエフェクターE2側の端部)から先端(ツールTL2が有する2本の棒状の物体と当接部LDとの接合部)までの長さが把持部の基端(この一例において、ツールTL1の端部のうちのグリップ部GL側の端部)から先端(この一例において、ツールTL1の端部のうちのクリップ部CL側の端部)までの長さよりも長い当接部と線状物体とを当接させるように、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、基端から先端までの長さが把持部の基端から先端までの長さよりも長い当接部と線状物体とを当接させることによって、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、第1物体に線状物体を引き回す場合、第1可動部に設けられた把持部により線状物体を把持させ、且つ、第2可動部に設けられた当接部であって第1物体の第1面(この一例において、第1物体Oの上面)に当接した当接部と線状物体とを当接させるように、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、第1物体の第1面に当接した当接部と線状物体とを当接させることによって、線状物体を引き回す作業を容易に行うことができる。
また、制御装置40は、第1物体に線状物体を引き回す場合、ロボット(この一例において、第1ロボット21又はロボット23)に設けられた第1可動部に設けられた把持部により線状物体を把持させ、且つ、ロボット(この一例において、第2ロボット22又はロボット23)に設けられた第2可動部に設けられた当接部と線状物体とを当接させるように、第1可動部と第2可動部との少なくとも一方を制御する。これにより、制御装置40は、ロボットに設けられた第1可動部とロボットに設けられた第2可動部との少なくとも一方により、線状物体を引き回す作業を容易に行うことができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、情報処理装置30や制御装置40)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。