(57)【特許請求の範囲】
【請求項１】
複数のリンク部材が連結されてなるアーム部と、前記アーム部の先端に設けられ、第１のワークを把持して第２のワークに組み付けるハンド部とを有するロボット本体を制御するロボット制御装置において、
前記ロボット本体、前記第１のワーク及び前記第２のワークを撮像して得られる画像データを出力するカメラと、
前記画像データから前記カメラのカメラ座標系における前記ハンド部の位置姿勢を示す第１の座標系を算出する第１の座標系算出部と、
前記画像データから前記カメラのカメラ座標系における前記第１のワークの位置姿勢を示す第２の座標系を算出する第２の座標系算出部と、
前記画像データから前記カメラのカメラ座標系における前記第２のワークの位置姿勢を示す第３の座標系を算出する第３の座標系算出部と、
前記第２の座標系を前記第１の座標系に変換する第１の座標変換行列を算出する第１の座標変換行列算出部と、
前記第３の座標系を前記第１の座標系に変換する第２の座標変換行列を算出する第２の座標変換行列算出部と、
前記第１のワークに対して一定の位置姿勢である注目点の座標データを、前記第１のワークの座標系で設定する注目点設定部と、
前記第２のワークに対して一定の位置姿勢で前記注目点を通過させるための教示点の座標データを、前記第２のワークの座標系で設定する教示点設定部と、
前記注目点設定部で設定された前記注目点の座標データを、前記第１の座標変換行列を用いて座標変換する第１の座標変換部と、
前記教示点設定部で設定された前記教示点の座標データを、前記第２の座標変換行列を用いて座標変換する第２の座標変換部と、
前記第１の座標変換部で座標変換された前記注目点の座標データが、前記第２の座標変換部で座標変換された前記教示点の座標データと一致する軌道をたどるように前記ロボット本体を動作させるための動作指令を作成する動作指令作成部と、
前記ロボット本体に前記動作指令作成部で作成した動作指令を出力する動作指令出力部と、を備えたことを特徴とするロボット制御装置。
【請求項２】
複数のリンク部材が連結されてなるアーム部と、前記アーム部の先端に設けられ、第１のワークを把持して第２のワークに組み付けるハンド部とを有するロボット本体を制御するロボット制御方法において、
前記ロボット本体、前記第１のワーク及び前記第２のワークをカメラで撮像して画像データを取得する撮像工程と、
前記画像データから前記カメラのカメラ座標系における前記ハンド部の位置姿勢を示す第１の座標系を算出する第１の座標系算出工程と、
前記画像データから前記カメラのカメラ座標系における前記第１のワークの位置姿勢を示す第２の座標系を算出する第２の座標系算出工程と、
前記画像データから前記カメラのカメラ座標系における前記第２のワークの位置姿勢を示す第３の座標系を算出する第３の座標系算出工程と、
前記第２の座標系を前記第１の座標系に変換する第１の座標変換行列を算出する第１の座標変換行列算出工程と、
前記第３の座標系を前記第１の座標系に変換する第２の座標変換行列を算出する第２の座標変換行列算出工程と、
前記第１のワークに対して一定の位置姿勢である注目点の座標データを、前記第１のワークの座標系で設定する注目点設定工程と、
前記第２のワークに対して一定の位置姿勢で前記注目点を通過させるための教示点の座標データを、前記第２のワークの座標系で設定する教示点設定工程と、
前記注目点設定工程にて設定された前記注目点の座標データを、前記第１の座標変換行列を用いて座標変換する第１の座標変換工程と、
前記教示点設定工程にて設定された前記教示点の座標データを、前記第２の座標変換行列を用いて座標変換する第２の座標変換工程と、
前記第１の座標変換工程にて座標変換された前記注目点の座標データが、前記第２の座標変換工程にて座標変換された前記教示点の座標データと一致する軌道をたどるように前記ロボット本体を動作させるための動作指令を作成する動作指令作成工程と、
前記ロボット本体に前記動作指令作成工程にて作成された動作指令を出力する動作指令出力工程と、を備えたことを特徴とするロボット制御方法。
【請求項３】
ベースに固定され、複数のリンク部材が連結されてなるアーム部と、前記アーム部の先端に設けられ、第１のワークを把持して第２のワークに組み付けるハンド部とを有するロボット本体を制御するロボット制御方法において、
前記ベース、前記第１のワーク及び前記第２のワークをカメラで撮像して画像データを取得する撮像工程と、
前記画像データから前記カメラのカメラ座標系における前記ベースの位置姿勢を示すベース座標系を算出した後、前記ベース座標系から前記カメラのカメラ座標系における前記ハンド部の位置姿勢を示す第１の座標系を順運動学に基づいて算出する第１の座標系算出工程と、
前記画像データから前記カメラのカメラ座標系における前記第１のワークの位置姿勢を示す第２の座標系を算出する第２の座標系算出工程と、
前記画像データから前記カメラのカメラ座標系における前記第２のワークの位置姿勢を示す第３の座標系を算出する第３の座標系算出工程と、
前記第２の座標系を前記第１の座標系に変換する第１の座標変換行列を算出する第１の座標変換行列算出工程と、
前記第３の座標系を前記第１の座標系に変換する第２の座標変換行列を算出する第２の座標変換行列算出工程と、
前記第１のワークに対して一定の位置姿勢である注目点の座標データを、前記第１のワークの座標系で設定する注目点設定工程と、
前記第２のワークに対して一定の位置姿勢で前記注目点を通過させるための教示点の座標データを、前記第２のワークの座標系で設定する教示点設定工程と、
前記注目点設定工程にて設定された前記注目点の座標データを、前記第１の座標変換行列を用いて座標変換する第１の座標変換工程と、
前記教示点設定工程にて設定された前記教示点の座標データを、前記第２の座標変換行列を用いて座標変換する第２の座標変換工程と、
前記第１の座標変換工程にて座標変換された前記注目点の座標データが、前記第２の座標変換工程にて座標変換された前記教示点の座標データと一致する軌道をたどるように前記ロボット本体を動作させるための動作指令を作成する動作指令作成工程と、
前記ロボット本体に前記動作指令作成工程にて作成された動作指令を出力する動作指令出力工程と、を備えたことを特徴とするロボット制御方法。
【請求項４】
前記注目点設定工程では、前記第２の座標系算出工程に先立って、複数の注目点の座標データを、前記第１のワークにおけるそれぞれ異なる特徴点で規定される座標系で設定し、
前記複数の注目点のうち、前記教示点を未通過の注目点を選択する選択工程を備え、
前記第２の座標系算出工程では、前記画像データから、前記選択工程で選択された注目点の座標系を規定する特徴点を抽出し、抽出した特徴点から前記第２の座標系を算出し、
前記第１の座標変換工程では、前記注目点設定工程にて設定された前記複数の注目点のうち前記選択工程で選択された注目点の座標データを、前記第１の座標変換行列を用いて座標変換することを特徴とする請求項２又は３に記載のロボット制御方法。
【請求項５】
複数のリンク部材が連結されてなるアーム部と、前記アーム部の先端に設けられ、第１のワークを把持して第２のワークに組み付けるハンド部とを有するロボット本体を制御するコンピュータに、
前記ロボット本体、前記第１のワーク及び前記第２のワークをカメラで撮像して画像データを取得する撮像工程と、
前記画像データから前記カメラのカメラ座標系における前記ハンド部の位置姿勢を示す第１の座標系を算出する第１の座標系算出工程と、
前記画像データから前記カメラのカメラ座標系における前記第１のワークの位置姿勢を示す第２の座標系を算出する第２の座標系算出工程と、
前記画像データから前記カメラのカメラ座標系における前記第２のワークの位置姿勢を示す第３の座標系を算出する第３の座標系算出工程と、
前記第２の座標系を前記第１の座標系に変換する第１の座標変換行列を算出する第１の座標変換行列算出工程と、
前記第３の座標系を前記第１の座標系に変換する第２の座標変換行列を算出する第２の座標変換行列算出工程と、
前記第１のワークに対して一定の位置姿勢である注目点の座標データを、前記第１のワークの座標系で設定する注目点設定工程と、
前記第２のワークに対して一定の位置姿勢で前記注目点を通過させるための教示点の座標データを、前記第２のワークの座標系で設定する教示点設定工程と、
前記注目点設定工程にて設定された前記注目点の座標データを、前記第１の座標変換行列を用いて座標変換する第１の座標変換工程と、
前記教示点設定工程にて設定された前記教示点の座標データを、前記第２の座標変換行列を用いて座標変換する第２の座標変換工程と、
前記第１の座標変換工程にて座標変換された前記注目点の座標データが、前記第２の座標変換工程にて座標変換された前記教示点の座標データと一致する軌道をたどるように前記ロボット本体を動作させるための動作指令を作成する動作指令作成工程と、
前記ロボット本体に前記動作指令作成工程にて作成された動作指令を出力する動作指令出力工程と、を実行させるためのプログラム。
【請求項６】
ベースに固定され、複数のリンク部材が連結されてなるアーム部と、前記アーム部の先端に設けられ、第１のワークを把持して第２のワークに組み付けるハンド部とを有するロボット本体を制御するコンピュータに、
前記ベース、前記第１のワーク及び前記第２のワークをカメラで撮像して画像データを取得する撮像工程と、
前記画像データから前記カメラのカメラ座標系における前記ベースの位置姿勢を示すベース座標系を算出した後、前記ベース座標系から前記カメラのカメラ座標系における前記ハンド部の位置姿勢を示す第１の座標系を順運動学に基づいて算出する第１の座標系算出工程と、
前記画像データから前記カメラのカメラ座標系における前記第１のワークの位置姿勢を示す第２の座標系を算出する第２の座標系算出工程と、
前記画像データから前記カメラのカメラ座標系における前記第２のワークの位置姿勢を示す第３の座標系を算出する第３の座標系算出工程と、
前記第２の座標系を前記第１の座標系に変換する第１の座標変換行列を算出する第１の座標変換行列算出工程と、
前記第３の座標系を前記第１の座標系に変換する第２の座標変換行列を算出する第２の座標変換行列算出工程と、
前記第１のワークに対して一定の位置姿勢である注目点の座標データを、前記第１のワークの座標系で設定する注目点設定工程と、
前記第２のワークに対して一定の位置姿勢で前記注目点を通過させるための教示点の座標データを、前記第２のワークの座標系で設定する教示点設定工程と、
前記注目点設定工程にて設定された前記注目点の座標データを、前記第１の座標変換行列を用いて座標変換する第１の座標変換工程と、
前記教示点設定工程にて設定された前記教示点の座標データを、前記第２の座標変換行列を用いて座標変換する第２の座標変換工程と、
前記第１の座標変換工程にて座標変換された前記注目点の座標データが、前記第２の座標変換工程にて座標変換された前記教示点の座標データと一致する軌道をたどるように前記ロボット本体を動作させるための動作指令を作成する動作指令作成工程と、
前記ロボット本体に前記動作指令作成工程にて作成された動作指令を出力する動作指令出力工程と、を実行させるためのプログラム。
【請求項７】
請求項５又は６に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラを用いて測定した位置情報に基づき、ロボットで把持した把持物を物品に組み付けるロボット制御装置、ロボット制御方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
複数のリンク部材からなる多関節のアーム部と、アーム部の先端に設けられたハンド部とを有するロボット本体を備え、ハンド部により第１のワークである把持物を把持して第２のワークである物品に把持物を組み付けるロボットが知られている。
【０００３】
また、カメラで位置を測定する技術は、ステレオ法など多数知られており、カメラで撮像した画像の物品の特徴点について３次元的な位置を測定できる。一つの物品について複数の特徴点を測定することにより、物品の位置と姿勢を測定できることも知られている。また、カメラではなく、投光器と受光器の組合せで位置を測定する技術も多数知られている。
【０００４】
従来、これら把持物及び物品の位置姿勢を測定するために、把持物及び物品を撮像するカメラを、ロボット本体により把持物を部品に組付ける作業位置の上方のカメラ取付台に固定したものが知られている（特許文献１参照）。また、カメラをロボット本体のハンド部に固定したものも知られている（特許文献２参照）。
【０００５】
ところで、ハンド部による把持物の把持位置にばらつきがあると、把持物を物品に組み付ける精密な組立が困難となる。したがって、把持物及び物品の位置姿勢の測定結果をフィードバックして、ロボット本体の軌道を示す動作指令を作成する必要がある。
【０００６】
ここで、カメラを用いて算出する把持物及び物品の位置姿勢は、カメラ座標系を基準としているが、ロボット本体を所定の軌道で動作させるために作成する動作指令は、ロボット座標系を基準としている。したがって、測定した把持物及び物品の位置姿勢を示す座標データを、カメラ座標系からロボット座標系に変換するための座標変換行列を求めておく必要であった。
【０００７】
そこで従来、カメラをカメラ取付台に固定した場合には、ロボット座標系に対してカメラ座標系の位置姿勢は一定と想定されるので、予め設定された一定値の座標変換行列を用いていた。
【０００８】
また、カメラをハンド部に固定した場合には、ロボット本体の動作に応じて、ロボット座標系に対するカメラ座標系の位置姿勢が変化する。したがって、ロボット本体の関節角度より順運動学に基づいて求まるハンド先端の位置姿勢から、ロボット座標系に対するカメラ座標系の位置姿勢を想定することができる。このように想定されるカメラ座標系とロボット座標系との関係から座標変換行列を算出していた。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平５−１０８１２６号公報
【特許文献２】特開平８−１７４４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
近年、ロボット本体に更に精密な組立作業を行わせる要求が高まっている。例えばフレキシブルケーブルの先端に設けたコネクタを、電子機器のコネクタに接続する作業を行わせる要求などがある。
【００１１】
しかし、従来は、カメラ取付台やハンド部等の固定対象物に対してカメラの相対位置が一定である、つまり、ロボット座標系に対するカメラ座標系は既知又は導出できるとして扱っており、カメラ座標系の位置姿勢がずれることは想定されていなかった。
【００１２】
ところが、現実には、カメラ座標系の位置姿勢は様々な原因によってばらつく。例えばカメラ取付台がロボットの動作に伴って揺れたり、環境温度の変化やカメラ自身の温度変化によって取付位置がずれたりすることがある。カメラをハンド部に固定した場合も同様にカメラの位置がハンド部に対してばらつくことがある。つまり、現実的観点に立つと、カメラの位置は必ずばらつくものであるので、ロボット座標系基準のカメラ座標系の位置姿勢を精確に特定することは困難であり、カメラの位置ずれにより組立位置もずれるため、精密な組立作業ができなかった。
【００１３】
特に、ハンド部が把持する把持物が剛体ではなくフレキシブルケーブル等の可撓体（柔軟体）である場合は、ハンド部の姿勢や把持位置の違い等で把持物の位置姿勢が大きく変化する。したがって、フィードバック制御に用いる、ロボット座標系に変換した把持物の位置姿勢の座標データの精確性が特に重要であるが、カメラの位置がばらついてしまうと、算出されるロボット座標系における座標データの精度が低下してしまう。そのため、精密な組立作業ができず、可撓体である場合は特に深刻であった。
【００１４】
そこで、本発明は、カメラの位置がばらついても、カメラ座標系とロボット座標系と校正を行うことなく、ハンド部による第１のワークの把持位置がばらついたり第１のワークが変形したりしても、精密組立が可能なものを提供することを目的とするものである。
【課題を解決するための手段】
【００１５】
本発明のロボット制御装置は、複数のリンク部材が連結されてなるアーム部と、前記アーム部の先端に設けられ、第１のワークを把持して第２のワークに組み付けるハンド部とを有するロボット本体を制御するロボット制御装置において、前記ロボット本体、前記第１のワーク及び前記第２のワークを撮像して得られる画像データを出力するカメラと、前記画像データから前記カメラのカメラ座標系における前記ハンド部の位置姿勢を示す第１の座標系を算出する第１の座標系算出部と、前記画像データから前記カメラのカメラ座標系における前記第１のワークの位置姿勢を示す第２の座標系を算出する第２の座標系算出部と、前記画像データから前記カメラのカメラ座標系における前記第２のワークの位置姿勢を示す第３の座標系を算出する第３の座標系算出部と、前記第２の座標系を前記第１の座標系に変換する第１の座標変換行列を算出する第１の座標変換行列算出部と、前記第３の座標系を前記第１の座標系に変換する第２の座標変換行列を算出する第２の座標変換行列算出部と、前記第１のワークに対して一定の位置姿勢である注目点の座標データを、前記第１のワークの座標系で設定する注目点設定部と、前記第２のワークに対して一定の位置姿勢で前記注目点を通過させるための教示点の座標データを、前記第２のワークの座標系で設定する教示点設定部と、前記注目点設定部で設定された前記注目点の座標データを、前記第１の座標変換行列を用いて座標変換する第１の座標変換部と、前記教示点設定部で設定された前記教示点の座標データを、前記第２の座標変換行列を用いて座標変換する第２の座標変換部と、前記第１の座標変換部で座標変換された前記注目点の座標データが、前記第２の座標変換部で座標変換された前記教示点の座標データと一致する軌道をたどるように前記ロボット本体を動作させるための動作指令を作成する動作指令作成部と、前記ロボット本体に前記動作指令作成部で作成した動作指令を出力する動作指令出力部と、を備えたことを特徴とする。
【００１６】
また、本発明のロボット制御方法は、複数のリンク部材が連結されてなるアーム部と、前記アーム部の先端に設けられ、第１のワークを把持して第２のワークに組み付けるハンド部とを有するロボット本体を制御するロボット制御方法において、前記ロボット本体、前記第１のワーク及び前記第２のワークをカメラで撮像して画像データを取得する撮像工程と、前記画像データから前記カメラのカメラ座標系における前記ハンド部の位置姿勢を示す第１の座標系を算出する第１の座標系算出工程と、前記画像データから前記カメラのカメラ座標系における前記第１のワークの位置姿勢を示す第２の座標系を算出する第２の座標系算出工程と、前記画像データから前記カメラのカメラ座標系における前記第２のワークの位置姿勢を示す第３の座標系を算出する第３の座標系算出工程と、前記第２の座標系を前記第１の座標系に変換する第１の座標変換行列を算出する第１の座標変換行列算出工程と、前記第３の座標系を前記第１の座標系に変換する第２の座標変換行列を算出する第２の座標変換行列算出工程と、前記第１のワークに対して一定の位置姿勢である注目点の座標データを、前記第１のワークの座標系で設定する注目点設定工程と、前記第２のワークに対して一定の位置姿勢で前記注目点を通過させるための教示点の座標データを、前記第２のワークの座標系で設定する教示点設定工程と、前記注目点設定工程にて設定された前記注目点の座標データを、前記第１の座標変換行列を用いて座標変換する第１の座標変換工程と、前記教示点設定工程にて設定された前記教示点の座標データを、前記第２の座標変換行列を用いて座標変換する第２の座標変換工程と、前記第１の座標変換工程にて座標変換された前記注目点の座標データが、前記第２の座標変換工程にて座標変換された前記教示点の座標データと一致する軌道をたどるように前記ロボット本体を動作させるための動作指令を作成する動作指令作成工程と、前記ロボット本体に前記動作指令作成工程にて作成された動作指令を出力する動作指令出力工程と、を備えたことを特徴とする。
【００１７】
また、本発明のプログラムは、複数のリンク部材が連結されてなるアーム部と、前記アーム部の先端に設けられ、第１のワークを把持して第２のワークに組み付けるハンド部とを有するロボット本体を制御するコンピュータに、前記ロボット本体、前記第１のワーク及び前記第２のワークをカメラで撮像して画像データを取得する撮像工程と、前記画像データから前記カメラのカメラ座標系における前記ハンド部の位置姿勢を示す第１の座標系を算出する第１の座標系算出工程と、前記画像データから前記カメラのカメラ座標系における前記第１のワークの位置姿勢を示す第２の座標系を算出する第２の座標系算出工程と、前記画像データから前記カメラのカメラ座標系における前記第２のワークの位置姿勢を示す第３の座標系を算出する第３の座標系算出工程と、前記第２の座標系を前記第１の座標系に変換する第１の座標変換行列を算出する第１の座標変換行列算出工程と、前記第３の座標系を前記第１の座標系に変換する第２の座標変換行列を算出する第２の座標変換行列算出工程と、前記第１のワークに対して一定の位置姿勢である注目点の座標データを、前記第１のワークの座標系で設定する注目点設定工程と、前記第２のワークに対して一定の位置姿勢で前記注目点を通過させるための教示点の座標データを、前記第２のワークの座標系で設定する教示点設定工程と、前記注目点設定工程にて設定された前記注目点の座標データを、前記第１の座標変換行列を用いて座標変換する第１の座標変換工程と、前記教示点設定工程にて設定された前記教示点の座標データを、前記第２の座標変換行列を用いて座標変換する第２の座標変換工程と、前記第１の座標変換工程にて座標変換された前記注目点の座標データが、前記第２の座標変換工程にて座標変換された前記教示点の座標データと一致する軌道をたどるように前記ロボット本体を動作させるための動作指令を作成する動作指令作成工程と、前記ロボット本体に前記動作指令作成工程にて作成された動作指令を出力する動作指令出力工程と、を実行させるためのものである。
【００１８】
また、本発明の記録媒体は、上記プログラムを記録したコンピュータ読み取り可能なものである。
【発明の効果】
【００１９】
本発明によれば、ハンド部による第１のワークの把持位置がばらついたり、第１のワークが変形したりしても精密な組立ができる。また、カメラの位置がばらついても精密な組立ができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１実施形態に係るロボットの概略構成を示す説明図である。
【図２】本発明の第１実施形態に係るロボットコントローラの機能ブロック図である。
【図３】本発明の第１実施形態に係るロボット制御装置の動作を示す動作フローチャートである。
【図４】画像データにおけるコネクタを表す説明図である。
【図５】本発明の第１実施形態に係るロボットにおいて導出される第１のワークの軌道を説明するための図である。
【図６】本発明の第２実施形態に係るロボットにおいて導出される第１のワークの軌道を説明するための図である。
【図７】本発明の第３実施形態に係るロボットの概略構成を示す説明図である。
【図８】本発明の第４実施形態に係るロボットにおいて、長尺の第１のワークを第２のワークに形成した貫通孔にくぐらせる作業を示す説明図である。
【図９】本発明の第４実施形態に係るロボット制御装置の動作を示す動作フローチャートである。
【図１０】本発明の第５実施形態に係るロボットの概略構成を示す説明図である。
【発明を実施するための形態】
【００２１】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００２２】
［第１実施形態］
図１は、本発明の第１実施形態に係るロボットの概略構成を示す説明図である。ロボット１００は、ロボット本体１０１と、ロボット本体１０１を制御するロボット制御装置１０２とを備えて構成される。
【００２３】
ロボット本体１０１は、複数のリンク部材６ａ〜６ｆからなる多関節のアーム部６と、アーム部６の先端に設けられたハンド部１とを備えている。アーム部６は、複数のリンク部材６ａ〜６ｆが直列に連結されてなり、各関節部で旋回又は回転可能となっている。
【００２４】
複数のリンク部材６ａ〜６ｆのうちアーム部６の基端（一端）に配置されたリンク部材６ａは、ベース５の固定面（上面）に固定されている。また、複数のリンク部材６ａ〜６ｆのうちアーム部６の先端（他端）に配置されたリンク部材６ｆには、ハンド部１が取り付けられている。本実施形態のハンド部１は、一対のフィンガー１ａ，１ｂを有し、一対のフィンガー１ａ，１ｂを開閉することで、把持物を把持又は把持開放することができる。また、ロボット本体１０１は、複数のリンク部材６ａ〜６ｆ及びハンド部１を回転又は旋回駆動する複数の駆動部７ａ〜７ｆを有している。各駆動部７ａ〜７ｆは、例えば電動モータである。
【００２５】
本実施形態では、ハンド部１に把持される把持物（第１のワーク）は、先端にコネクタ２ａを有するフレキシブルケーブル２である場合について説明する。そして、ケーブル２のコネクタ２ａを物品（第２のワーク）であるコネクタ３ａに組み付ける（接続する）場合について説明する。このコネクタ３ａは、電子機器３の一部であり、電子機器３は、ベース５の固定面に固定されている。
【００２６】
ロボット制御装置１０２は、カメラ４と、カメラ４から出力された画像データを取得し、座標変換行列を演算して、ロボット本体１０１（駆動部）を制御するロボットコントローラ（以下、「コントローラ」という）１０とを有している。なお、カメラ４は、所謂デジタルカメラであり、視覚センサ、ビジョンなどと呼ばれることもあるが、本実施形態では同じ意味に捉えてカメラという。カメラ４は、ロボット本体１０１（特にハンド部１）、ケーブル２（特にコネクタ２ａ）及びコネクタ３ａを撮像可能な位置（同一画像内に納まる位置）、例えばベース５の直上の位置に配置されるよう、不図示のカメラ取付台に固定されている。
【００２７】
コントローラ１０は、コンピュータとしてのＣＰＵ１０ａと、ＲＯＭ１０ｂと、ＲＡＭ１０ｃとを有する。ＲＯＭ１０ｂには、ＣＰＵ１０ａがロボット１００全体を制御するためのプログラムと、ロボット言語で記述された複数のコマンドとが記憶されている。このコマンドは、ロボット本体１０１を動作させるためのものであり、ロボット本体１０１の座標系（ロボット座標系）を基準として記述されている。ＲＡＭ１０ｃは、一時的にデータ等が格納されるメモリである。
【００２８】
図２は、コントローラ１０の機能ブロック図である。コントローラ１０は、第１の座標系算出部１１、第２の座標系算出部１２、第３の座標系算出部１３、第１の座標変換行列算出部１４、第２の座標変換行列算出部１５を有する。また、コントローラ１０は、注目点設定部１６、教示点設定部１７、第１の座標変換部１８、第２の座標変換部１９、動作指令作成部２０、動作指令出力部２１を有する。つまり、ＣＰＵ１０ａは、ＲＯＭ１０ｂに記録されたプログラムを読み出して実行することにより、各部１１〜２１として機能する。なお、コントローラ１０は、図１に示すように、１つのＣＰＵ１０ａを備えているが、これに限らず、複数のＣＰＵを備え、各ＣＰＵで分担して各部１１〜２１として機能するようにしてもよい。例えばコントローラ１０が２つのＣＰＵを備える場合には、一方のＣＰＵが各部１１〜１９として機能し、他方のＣＰＵが各部２０，２１として機能するようにしてもよい。
【００２９】
以下、ロボット制御装置１０２の動作について図３に示した動作フローチャートを参照しながら説明する。まず、ＣＰＵ１０ａは、カメラ４を動作させ、カメラ４にロボット本体１０１（特にハンド部１）、ケーブル２及びコネクタ３ａを撮像させる。この撮像動作により得られる画像データには、ロボット本体１０１（特にハンド部１）、ケーブル２及びコネクタ３ａが写されている。そして、カメラ４は、撮像結果である画像データを出力し、ＣＰＵ１０ａは、カメラ４から出力された画像データを取得する（Ｓ１：撮像工程）。ここでは、ハンド部１がケーブル２を把持した直後の状態でこれらが撮像される。
【００３０】
次に、第１の座標系算出部１１は、カメラ４より取得した画像データから、ハンド部１に固定した第１の座標系ＣＡを算出する（Ｓ２：第１の座標系算出工程）。また、第２の座標系算出部１２は、カメラ４より取得した画像データから、ケーブル２のコネクタ２ａに固定した第２の座標系ＣＢを算出する（Ｓ３：第２の座標系算出工程）。また、第３の座標系算出部１３は、カメラ４より取得した画像データから、コネクタ３ａに固定した第３の座標系ＣＣを算出する（Ｓ４：第３の座標系算出工程）。なお、これらステップＳ２〜Ｓ４の処理の順番はこれに限るものではなく、どのステップから処理を行ってもよい。
【００３１】
ステップＳ２〜Ｓ４で求められる第１の座標系ＣＡ、第２の座標系ＣＢ及び第３の座標系ＣＣは、カメラ４のカメラ座標系を基準とした相対的な座標系であり、ハンド部１、ケーブル２（コネクタ２ａ）、コネクタ３ａのカメラ座標系における位置姿勢を示している。
【００３２】
以下、第３の座標系ＣＣを求める動作について具体例を挙げて説明する。なお、第１の座標系ＣＡ、第２の座標系ＣＢについても同様に求められるので、第３の座標系ＣＣについてのみ説明する。図４は、画像データにおけるコネクタ３ａを表す説明図である。まず、第３の座標系算出部１３は、カメラ４より取得した画像データから、コネクタ３ａの複数の特徴点、例えば直方体の３つの頂点（特徴点）の３次元座標位置Ｐ０，Ｐ１，Ｐ２を計測する。これは、周知の画像処理により行われる。
【００３３】
次に、３つの特徴点の座標位置Ｐ０，Ｐ１，Ｐ２を含む平面の法線方向をＺ軸とする。Ｚ軸の向きは、座標位置Ｐ０、座標位置Ｐ１、座標位置Ｐ２の順番に右ネジが回転したときに進む方向とする。次に、２つの特徴点の座標位置Ｐ０，Ｐ２を通る軸をＸ軸とし、Ｘ軸の向きは、座標位置Ｐ０から座標位置Ｐ２に向かう方向とする。次に、Ｘ軸及びＺ軸に直交する軸をＹ軸とする。原点を座標位置Ｐ０とする。
【００３４】
こうして第３の座標系ＣＣが求められる。具体的には第３の座標系ＣＣは次の式（１）のような４行４列の行列で表現される。
【００３５】
【数１】
0005744587.tif 000002
【００３６】
ここで、（ｘ０，ｙ０，ｚ０）はＸ軸方向の単位ベクトル、（ｘ１，ｙ１，ｚ１）はＹ軸方向の単位ベクトル、（ｘ２，ｙ２，ｚ２）はＺ軸方向の単位ベクトルを、カメラ座標系で表現したものであり、（ｘ，ｙ，ｚ）は原点を表す。
【００３７】
他の２つの座標系ＣＡ，ＣＢについても同様である。つまり合計３×３の９個の測定点から、３つの座標系ＣＡ，ＣＢ，ＣＣを求める。
【００３８】
次に、第１の座標変換行列算出部１４は、座標系ＣＡ，ＣＢ間の相対的な位置姿勢である第１の座標変換行列ＡＴＢを算出する（Ｓ５：第１の座標変換行列算出工程）。また、第２の座標変換行列算出部１５は、座標系ＣＡ，ＣＣ間の相対的な位置姿勢である第２の座標変換行列ＡＴＢを算出する（Ｓ６：第２の座標変換行列算出工程）。なお、これらステップＳ５、Ｓ６の処理の順番はこれに限るものではなく、どのステップから処理を行ってもよい。
【００３９】
ここで、第１の座標変換行列ＡＴＢは、第１の座標系ＣＡからみた第２の座標系ＣＢの位置姿勢を表し、第２の座標変換行列ＡＴＣは、第１の座標系ＣＡからみた第３の座標系ＣＣの位置姿勢を表す。つまり、第１の座標変換行列ＡＴＢは、第２の座標系ＣＢで表現された位置姿勢を示す座標データを、第１の座標系ＣＡで表現される位置姿勢を示す座標データに変換することができる。また、第２の座標変換行列ＡＴＣは、第３の座標系ＣＣで表現された位置姿勢を示す座標データを、第１の座標系ＣＡで表現される位置姿勢を示す座標データに変換することができる。
【００４０】
ロボット工学で多用される４行４列の座標変換行列の表記に従うと、３つの座標系ＣＡ，ＣＢ，ＣＣ間の相対的な位置姿勢、すなわち座標変換を次の式（２）のように表すことができる。
【００４１】
【数２】
0005744587.tif 000003
【００４２】
カメラ４で座標系ＣＡ，ＣＢ，ＣＣ間の相対位置姿勢を求めるとは、この２つの座標変換行列ＡＴＢ，ＡＴＣを求めることと同じことである。相対位置を表す２つの座標変換行列ＡＴＢ，ＡＴＣを、式（２）を変形した次の式（３）から計算する。この座標変換行列は４行４列である。
【００４３】
【数３】
0005744587.tif 000004
【００４４】
ここで、ｉｎｖ（）は逆行列を表す。なお、第３の座標系ＣＣ、第２の座標系ＣＢからみた第３の座標系ＣＣの位置姿勢を表す第３の座標変換行列ＢＴＣは、以下の式（４）で表される。
【００４５】
【数４】
0005744587.tif 000005
【００４６】
したがって、第２の座標変換行列ＡＴＣを以下の式（５）で算出してもよいが、算出結果は、式（３）と同じである。
【００４７】
【数５】
0005744587.tif 000006
【００４８】
一方、ロボット本体１０１の動きは、図１において、ケーブル２のコネクタ２ａに固定した注目点８と、コネクタ３ａに固定した教示点９から作成できる。簡単な軌道の作成方法は注目点８が教示点９を点つなぎのようにたどる方法である。
【００４９】
そこで、まず、注目点設定部１６は、ケーブル２に対して一定の位置姿勢である注目点８の座標データＢＰｔを、ケーブル２の座標系で設定する（Ｓ７：注目点設定工程）。ここで、ケーブル２の座標系は、ロボット本体１０１の座標系（ロボット座標系）を基準とした相対的な座標系である。このロボット座標系におけるケーブル２の座標系（行列）は未知であるが、ケーブル２の座標系における注目点８の座標データＢＰｔは、ケーブル２の位置姿勢にかかわらず一定値として設定される。
【００５０】
また、教示点設定部１７は、コネクタ３ａに対して一定の位置姿勢で注目点８を通過させるための教示点９の座標データＣＰｎ１，ＣＰｎ２を、コネクタ３ａの座標系で設定する（Ｓ８：教示点設定工程）。本実施形態では、教示点９の座標データを複数（２つ）設定する。ここで、コネクタ３ａの座標系は、ロボット座標系を基準とした相対的な座標系である。このロボット座標系におけるコネクタ３ａの座標系（行列）は未知であるが、コネクタ３ａの座標系における教示点９の座標データＣＰｎ１，ＣＰｎ２は、コネクタ３ａの位置姿勢にかかわらず一定値として設定される。図１では、コネクタ２ａがコネクタ３ａに接続されるまでの一連の動作を教示する複数の教示点９が設定される。
【００５１】
これら注目点８の座標データＢＰｔ及び教示点９の座標データＣＰｎ１，ＣＰｎ２は、ロボット言語で記述されたコマンドとしてＲＯＭ１０ｂに記憶されている。ステップＳ７，Ｓ８においてＣＰＵ１０ａは、そのコマンドをＲＯＭ１０ｂから読み出して解釈し、座標データＢＰｔ，ＣＰｎ１，ＣＰｎ２としてＲＡＭ１０ｃに格納する。
【００５２】
なお、これらステップＳ７，Ｓ８の処理の順番はこれに限るものではなく、どのステップから処理を行ってもよい。また、これらステップＳ７，Ｓ８は、ステップＳ６の処理よりも前に行ってもよい。
【００５３】
ところで、ステップＳ５で算出した座標変換行列ＡＴＢは、カメラ座標系を基準にして算出されたものであるが、ハンド部１の座標系に対するケーブル２の座標系の相対的な位置姿勢は、カメラ座標系及びロボット座標系のいずれであっても同じである。同様に、ステップＳ６で算出した座標変換行列ＡＴＣは、カメラ座標系を基準にして算出されたものであるが、ハンド部１の座標系に対するコネクタ３ａの座標系の相対的な位置姿勢は、カメラ座標系及びロボット座標系のいずれであっても同じである。
【００５４】
そこで、第１の座標変換部１８は、注目点設定部１６で設定された注目点８の座標データＢＰｔを、第１の座標変換行列ＡＴＢを用いて座標データＡＰｔに座標変換する（Ｓ９：第１の座標変換工程）。具体的には、第１の座標変換部１８は、次の式（６）を用いて座標データＡＰｔを算出する。
【００５５】
【数６】
0005744587.tif 000007
【００５６】
これにより、注目点８の座標データは、ケーブル２の座標系からハンド部１の座標系に変換される。このとき、ＲＡＭ１０ｃに格納されていた座標データＢＰｔは座標データＡＰｔに書き換えられる。ここで、ハンド部１の座標系は、ロボット座標系を基準とした相対的な座標系である。
【００５７】
また、第２の座標変換部１９は、教示点設定部１７で設定された教示点９の座標データＣＰｎ１，ＣＰｎ２を、第２の座標変換行列ＡＴＣを用いて座標データＡＰｎ１，ＡＰｎ２に座標変換する（Ｓ１０：第２の座標変換工程）。具体的には、第２の座標変換部１９は、次の式（７）を用いて座標データＡＰｎ（ＡＰｎ１，ＡＰｎ２）を算出する。
【００５８】
【数７】
0005744587.tif 000008
【００５９】
これにより、教示点９の座標データは、コネクタ３ａの座標系からハンド部１の座標系に変換される。このとき、ＲＡＭ１０ｃに格納されていた座標データＣＰｎ１，ＣＰｎ２は座標データＡＰｎ１，ＡＰｎ２に書き換えられる。
【００６０】
次に、動作指令作成部２０は、第１の座標変換部１８で座標変換された注目点８の座標データＡＰｔが、第２の座標変換部１９で座標変換された教示点９の座標データＡＰｎ１，ＡＰｎ２と一致する軌道をたどる図５に表すような軌道Ｏ１を作成する。つまり、ＣＰＵ１０ａは、ＲＡＭ１０ｂに格納された座標データＡＰｔ及び座標データＡＰｎ１，ＡＰｎ２から軌道Ｏ１を計算する。なお、軌道Ｏ１の作成手法としては、直線補間法やスプライン補間法、円弧補間法等があるが、特にこれらの方法に限定するものではない。動作指令作成部２０は、この軌道Ｏ１からハンド部１の軌道を計算し、逆運動学に基づき、各リンク部材６ａ〜６ｆ及びハンド部１の関節角度を計算する。ここで、ハンド部１の軌道は、ハンド部１に対するケーブル２の相対的な位置姿勢が変化しないものとして計算する。そして、動作指令作成部２０は、各リンク部材６ａ〜６ｆ及びハンド部１が演算した各関節角度となるようにロボット本体１０１の各駆動部７ａ〜７ｆを動作させるための動作指令を作成する（Ｓ１１：動作指令作成工程）。この動作指令は、各リンク部材６ａ〜６ｆやハンド部１の関節角度を示す指令である。本実施形態では、ハンド部１の座標系に対するケーブル２の座標系が相対的に変化しないものとして、ハンド部１にてケーブル２を把持したときからコネクタ２ａがコネクタ３ａに接続されるまでの一連の動作指令を一度に作成する。
【００６１】
そして、動作指令出力部２１は、ロボット本体１０１の各駆動部７ａ〜７ｆに動作指令作成部２０で作成した動作指令を出力する（Ｓ１２：動作指令出力工程）。この指令を受信した駆動部７ａ〜７ｆは、その指令に応じて各リンク部材６ａ〜６ｆやハンド部１を旋回又は回転させる。
【００６２】
以上のステップＳ１〜Ｓ１２の処理により、ロボット本体１０１のハンド部１にて把持されたケーブル２のコネクタ２ａを、コネクタ３ａに組み付けることができ、精密組立が可能となる。
【００６３】
具体的には、ハンド部１におけるケーブル２の把持位置がばらついたとしても、計算される第２の座標系ＣＢが変化することとなり、その座標系ＣＢの変化が座標変換行列ＡＴＢに反映され、最終的に注目点８の座標データＡＰｔに反映される。即ち、ハンド部１におけるケーブル２の把持位置のばらつきがロボット本体１０１の動作に反映され、ロボット本体１０１の軌道が補正されることとなる。また、コネクタ３ａの位置がばらついたとしても、計算される第３の座標系ＣＣが変化することとなり、その座標系ＣＣの変化が座標変換行列ＡＴＣに反映され、最終的に教示点９の座標データＡＰｎ１，ＡＰｎ２に反映される。即ち、コネクタ３ａの位置のばらつきがロボット本体１０１の動作に反映され、ロボット本体１０１の軌道が補正されることとなる。これにより、ロボット本体１０１を高精度に動作させることができ、精密組立が可能となる。
【００６４】
また、把持物であるケーブル２が可撓体であり、ケーブル２が変形するような場合でも、ケーブル２が変形した際には、第２の座標系ＣＢが変化するので、上記と同様、精密組立が可能となる。
【００６５】
さらに、本実施形態では、カメラ座標系におけるハンド部１とケーブル２及びコネクタ３ａとの相対的な座標変換行列ＡＴＢ，ＡＴＣを求めている。そして、これら座標変換行列ＡＴＢ，ＡＴＣを用いて、ロボット座標系を基準としたケーブル２の座標系及びコネクタ３ａの座標系での注目点８及び教示点９の座標データを、ハンド部１の座標系に変換している。このようにして求めた座標データＡＰｔ，ＡＰｎ１，ＡＰｎ２に基づいて動作指令を作成しているので、最終的に作成される動作指令が、カメラ４の位置姿勢の影響を受けない。つまり、カメラ座標系をロボット座標系に変換する座標変換行列を使用していないため、カメラ４がばらついても、最終的に作成される動作指令に影響せず、カメラ４の位置姿勢を精確に測定して校正しなくても、精密組立が可能となる。
【００６６】
ここで、ハンド部１を移動させるときにハンド部１に対するケーブル２の位置が変動する可能性がある場合は、これらルーチンを複数回行うようにしてもよい。つまり、ハンド部１でケーブル２を把持してからコネクタ２ａがコネクタ３ａに接続されるまでの全行程を一度に行うのではなく、分割して順次行えばよい。その際、分割して実行する分だけ、ステップＳ１〜Ｓ１２の処理が実行されることとなる。したがって、第１のワークである把持物としてのケーブル２が変形するような場合でも、精密組立が可能となる。
【００６７】
［第２実施形態］
次に、本発明の第２実施形態に係るロボットについて説明する。図６は、本発明の第２実施形態に係るロボットにおいて導出される第１のワークの軌道を説明するための図である。なお、本第２実施形態におけるロボットの構成は、上記第１実施形態と同様であり、同一符号を用いて説明するが、ロボット本体１０１の動作、即ちＲＯＭ１０ｂに格納されているプログラムが異なるものである。
【００６８】
上記第１実施形態では、設定される注目点８が１つで、教示点９が複数の場合について説明した。そして、注目点８が複数の教示点９を通過するようにロボット本体１０１の軌道、つまり動作指令を作成した。本第２実施形態では、設定される注目点８が複数で、教示点９が１つとしている。この場合もＣＰＵ１０ａは上記第１実施形態の図３に示すフローと略同一の処理を実行するが、ステップＳ７において設定される注目点８が複数あり、それらの座標データをＢＰｔ１，ＢＰｔ２とする。ステップＳ９では、ＣＰＵ１０ａは、座標データＡＰｔ１，ＡＰｔ２に変換する。また、ステップＳ８において設定される教示点９が１つであり、その座標データをＣＰｎとする。ステップＳ１０では、ＣＰＵ１０ａは、座標データＡＰｎに変換する。
【００６９】
そして、ステップＳ１１では、ＣＰＵ１０ａは、各注目点８が座標データＡＰｎの教示点９を通過する図６に示すような軌道Ｏ２を作成する。そして、ＣＰＵ１０ａは、この軌道Ｏ２からハンド部１の軌道を計算し、逆運動学に基づき、各リンク部材６ａ〜６ｆ及びハンド部１の角度を計算する。そして、ＣＰＵ１０ａは、各リンク部材６ａ〜６ｆ及びハンド部１が演算した各角度となるようにロボット本体１０１の各駆動部７ａ〜７ｆを動作させるための動作指令を作成する。
【００７０】
このように、設定される注目点８の座標データが複数であり、設定される教示点９の座標データが１つであっても同様に軌道Ｏ２が作成され、動作指令が作成される。したがって、上記第１実施形態と同様の作用効果を奏するものである。なお、注目点８が１つで教示点９が１つの場合や注目点８が複数で教示点９が複数の場合でも同様の作用効果を奏する。
【００７１】
［第３実施形態］
次に、本発明の第３実施形態に係るロボットについて説明する。図７は、本発明の第３実施形態に係るロボット１００Ｂの概略構成を示す説明図である。上記第１実施形態では、カメラ４を不図示のカメラ取付台に固定した場合について説明したが、本第３実施形態では、カメラ４をハンド部１に固定している。このようにカメラ４をハンド部１に固定しても、カメラ４の位置姿勢にかかわりなく、座標変換行列ＡＴＢ，ＡＴＣを用いた座標変換により、ハンド部１の座標系における注目点８及び教示点９の座標データが算出され、これらの結果から動作指令が作成される。つまり、カメラ座標系からロボット座標系に変換する変換行列を用いずに、相対的な座標変換行列ＡＴＢ，ＡＴＣを用いて座標変換された注目点８及び教示点９の座標データに基づき動作指令が作成される。したがって、ロボット座標系に対するカメラ座標系の位置姿勢を求めなくても動作指令を作成できるので、カメラ４をハンド部１に固定するなど、カメラ４をどの位置に設置しても、上記第１実施形態と同様の作用効果を奏するものである。
【００７２】
［第４実施形態］
次に、本発明の第４実施形態に係るロボットについて説明する。図８は、長尺の第１のワークを第２のワークに形成した貫通孔にくぐらせる作業を示す説明図であり、図９は、本発明の第４実施形態に係るロボットのロボット制御装置の動作を示す動作フローチャートである。なお、上記第１実施形態と同様の構成及び動作については、同一の符号を用いて説明する。
【００７３】
第１のワークである把持物２Ａは長尺の可撓体である。第２のワークである物品３Ａには、把持物２Ａが挿通される貫通孔３ｂが形成されている。本第４実施形態のロボットは、把持物２Ａをハンド部１で把持して物品３Ａの貫通孔３ｂに挿通する作業を行うものである。
【００７４】
本第４実施形態では、把持物２Ａに固定した座標系と注目点８の座標データＢＰｔの組が複数ある点が上記実施形態と異なる。図８では３つの組を示した。つまり図８では、把持物２Ａに固定した座標系をＣＢ１，ＣＢ２，ＣＢ３とし、これに対して設定される注目点８の座標データを、Ｂ１Ｐｔ，Ｂ２Ｐｔ，Ｂ３Ｐｔとした。まず注目点設定部としてのＣＰＵ１０ａは、複数の注目点８１，８２，８３の座標データＢ１Ｐｔ，Ｂ２Ｐｔ，Ｂ３Ｐｔを、把持物２Ａにおけるそれぞれ異なる特徴点で規定される座標系ＣＢ１，ＣＢ２，ＣＢ３で設定する（Ｓ２１）。この注目点設定工程であるステップＳ２１では、複数の注目点８１，８２，８３が把持物２Ａの長手方向に沿って設定される。このステップＳ２１は、第２の座標系算出工程であるステップＳ３の処理に先立って行われるものである。
【００７５】
また、教示点設定部として機能するＣＰＵ１０ａは、教示点９の座標データＣＰｎ１，ＣＰｎ２を、物品３Ａの座標系で設定する（Ｓ２２）。
【００７６】
次に、ＣＰＵ１０ａは、座標系ＣＢ１，ＣＢ２，ＣＢ３と注目点の座標データＢ１Ｐｔ，Ｂ２Ｐｔ，Ｂ３Ｐｔとの組の中から一つの組を順次選択する（Ｓ２３：選択工程）。つまり、ＣＰＵ１０ａは、複数の注目点８１，８２，８３のうち、教示点を未通過の注目点（図８では、教示点に最も近い注目点８１）を１つ選択する。ＣＰＵ１０ａは、把持物２Ａが紐のように長い可撓体なので、最初は座標系ＣＢ１と注目点８１の座標データＢ１Ｐｔとの組を選択する。次は座標系ＣＢ２と注目点８２の座標データＢ２Ｐｔの組、その次は座標系ＣＢ３と注目点８３の座標データＢ３Ｐｔの組といったように順番に選択する。
【００７７】
ステップＳ１〜Ｓ１２では、上記第１実施形態と略同一の処理を行うが、ステップＳ３では、選択された組の第２の座標系ＣＢの算出を行う。即ち、ＣＰＵ１０ａは、ステップＳ３において、画像データから、ステップＳ２３で選択した注目点８１の座標系ＣＢ１を規定する特徴点を抽出し、抽出した特徴点から第２の座標系ＣＢを算出する。
【００７８】
そして、ＣＰＵ１０ａは、ステップＳ９において、ステップＳ２１にて設定した複数の注目点８１，８２，８３のうちステップＳ２３で選択された注目点の座標データを、第１の座標変換行列ＡＴＢを用いて座標変換する。例えばＣＰＵ１０ａは、選択された組の注目点８１の座標データＢ１Ｐｔを座標データＡ１Ｐｔに座標変換する。
【００７９】
ステップＳ１１の処理により、注目点８と教示点９とからロボット本体１０１の軌道、つまり動作指令が計算され、ステップＳ１２の処理でロボット本体１０１が動作指令に従って動作する。その結果、紐状の把持物２Ａが物品３Ａの貫通孔３ｂをくぐらせる動作の一部が実現できる。
【００８０】
次に、判断部として機能するＣＰＵ１０ａは、座標系ＣＢと注目点８との組を全部処理したか判断し（Ｓ２４：判断工程）、まだ残っている場合（Ｓ２４：Ｎｏ）はステップＳ１に戻って処理を続ける。つまり、ＣＰＵ１０ａは、ステップＳ１〜Ｓ１２を再実行する再実行処理を行う。
【００８１】
その再実行処理の際、ＣＰＵ１０ａは、前回のステップＳ２３で座標系ＣＢ１と座標データＢ１Ｐｔとの組を選択していたら、今回のステップＳ２３で座標系ＣＢ２と座標データＢ２Ｐｔとの組を選択する。前回のステップＳ２３で座標系ＣＢ２と座標データＢ２Ｐｔとの組を選択していたら、今回のステップＳ２３で座標系ＣＢ３と座標データＢ３Ｐｔとの組を選択する。全部の組を処理することによって、上記第１実施形態と同様の作用効果を奏すると共に、紐状の把持物２Ａを物品３Ａの貫通孔３ｂにくぐらせる動作の全体が実現できる。
【００８２】
［第５実施形態］
次に、本発明の第５実施形態に係るロボットについて説明する。図１０は、本発明の第５実施形態に係るロボット１００Ｄの概略構成を示す説明図である。なお、図１０において上記第１実施形態と同様の構成については、同一符号を付している。
【００８３】
上記第１実施形態に対し本第５実施形態では、ロボット本体１０１の動作指令の作成に用いる座標系を設置する位置が異なる。精度が高いロボットを使える場合は、ロボット本体１０１の動作指令に使う座標系をハンド部１に固定する必要が無い。
【００８４】
本第５実施形態では、図１０に示すように、ベース５にベース特徴点である３つの位置マーク３１が設けられている。これら位置マーク３１と、ロボット本体１０１の取付位置との相対位置は、予め測定しておき、既知とする。
【００８５】
本第５実施形態においても、ロボット制御装置１０２の動作は上記第１実施形態と略同一であり図３に示す動作と同様の動作を行うが、ステップＳ１における撮像対象とステップＳ２における第１の座標系ＣＡを算出する過程が上記第１実施形態と異なる。
【００８６】
本第５実施形態では、ＣＰＵ１０ａは、ステップＳ１において、ベース５におけるロボット本体１０１（具体的にはその取付位置）との相対位置関係が既知の位置マーク３１、ケーブル２及びコネクタ３ａをカメラ４で撮像して画像データを取得する。
【００８７】
次に、ＣＰＵ１０ａは、ステップＳ２において、まず、撮像により得られた画像データから位置マーク３１を抽出してカメラ４のカメラ座標系におけるベース５の位置姿勢を示すベース座標系ＣＤを算出する。３つの位置マーク３１からベース座標系ＣＤを求める方法は、上記第１実施形態で図４を用いて説明した方法と同様である。なお、位置マーク３１は画像データを解析しやすくするため黒い円盤形状などが好ましい。次に、ＣＰＵ１０ａは、ベース座標系ＣＤを算出した後、ベース座標系ＣＤからカメラ４のカメラ座標系におけるハンド部１の位置姿勢を示す第１の座標系ＣＡを順運動学に基づいて算出する。つまり、ロボット本体１０１の各関節角度は既知であるので、ハンド部１の座標系ＣＡを求めることができる。これはロボット工学における順機構学問題であり、定式化されている。
【００８８】
このように、ハンド部１の座標系ＣＡを直接求める代わりに、ベース５に固定した座標系ＣＤを求めても、順運動学に基づいて座標系ＣＡが求まる。後のステップＳ３〜Ｓ１２は、上記第１実施形態と同様であり、説明を省略する。
【００８９】
以上、精度が高いロボットでは、座標系ＣＤから座標系ＣＡへの変換に含まれる誤差が小さいので、この方法が有効である。したがって、本第５実施形態によれば、カメラ４でロボット本体１０１が取り付けられたベース５のベース特徴点を測定すれば、ハンド部１を測定する必要がなくなる。
【００９０】
なお、第５実施形態では、ベース５に位置マーク３１を設けた場合について説明したが、カメラ４でロボット本体１０１が取り付けられているベース５の位置姿勢がわかればよいので、位置マーク３１は必ずしも必要ではない。ベース５の適当なベース特徴点、例えば角や稜線をベース特徴点としてもよい。この場合もベース座標系ＣＤを求めることができる。
【００９１】
また、第５実施形態では、ベース座標系ＣＤをベース５に固定したが、ロボット本体１０１の一部、アーム部６の手首部や、肘部などに設置しても同じことである。ロボット工学の機構学（順運動学）に基づけば、ロボット本体１０１の一部に固定した座標系ＣＤと関節角度から、ハンド部１の座標系ＣＡを求めることができる。つまり、座標系ＣＤの算出に用いるための特徴点をロボット本体１０１のアーム部６に設定してもよい。
【００９２】
以上、上記第１〜第５実施形態に基づいて本発明を説明したが、本発明はこれに限定されるものではない。
【００９３】
３つの座標系ＣＡ，ＣＢ，ＣＣのうち、一度測定した座標系の位置をメモリに記憶し、測定する工程を省略するように構成してもよい。即ち、３つの座標系のうち、毎回同じ、つまりカメラに対して動かないものは一度測定すれば、毎回測定する必要がない。したがって、測定する３つの座標系のうち、何度測定しても位置が変わらないものは一度測定すればその値をメモリに記憶しておくことによって測定を省略することができる。これにより、測定にかかる時間が必要なくなるので組立作業の時間短縮が可能になる。例えばオンハンドカメラの場合、いつもハンド部が同じ位置に撮像されるなら、毎回測定する必要はなく、最初の１回目を除き、測定を省略し前回の測定値を使うことができる。また、第２のワークがカメラに対して動かないのであれば、最初の一回を除き、測定を省略して前回の測定値を使うことができる。
【００９４】
また、コンピュータに読み出されるプログラムが格納される記録媒体は、ＲＯＭに限らず、ＨＤＤやＣＤ，ＤＶＤ等のメディア、ＵＳＢメモリ等の不揮発性メモリであってもよい。つまり、コンピュータにプログラムを読み出し可能に記録されるものであればいかなる記録媒体でもよく、これらに限定するものではない。
【００９５】
そして、上記第１〜第５実施形態の機能をコンピュータに実現させるプログラムを、ネットワーク又は各種記録媒体を介してコンピュータに供給し、そのコンピュータがプログラムコードを読み出して実行するようにすればよい。この場合、そのプログラム、及び該プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明を構成することになる。
【符号の説明】
【００９６】
１…ハンド部、２…フレキシブルケーブル（第１のワーク）、２ａ…コネクタ、３ａ…コネクタ（第２のワーク）、４…カメラ、５…ベース、６…アーム部、６ａ〜６ｆ…リンク部材、１０…ロボットコントローラ、１０ａ…ＣＰＵ、１０ｂ…ＲＯＭ、１０ｃ…ＲＡＭ、１１…第１の座標系算出部、１２…第２の座標系算出部、１３…第３の座標系算出部、１４…第１の座標変換行列算出部、１５…第２の座標変換行列算出部、１６…注目点設定部、１７…教示点設定部、１８…第１の座標変換部、１９…第２の座標変換部、２０…動作指令作成部、２１…動作指令出力部、１０１…ロボット本体、１０２…ロボット制御装置
【図１】
0005744587.tif 000009
【図２】
0005744587.tif 000010
【図３】
0005744587.tif 000011
【図４】
0005744587.tif 000012
【図５】
0005744587.tif 000013
【図６】
0005744587.tif 000014
【図７】
0005744587.tif 000015
【図８】
0005744587.tif 000016
【図９】
0005744587.tif 000017
【図１０】
0005744587.tif 000018