(57)【特許請求の範囲】
【請求項１】
第１及び第２撮像手段と、
前記第１撮像手段から供給される撮像データに基づいて認識された物体が前記第２撮像手段から供給される撮像データに基づいて認識できないとき、前記第１撮像手段の撮像方向に対して前記第２撮像手段の撮像方向が一致する状態となる方向へ、前記第２撮像手段を移動させる駆動手段と、を備えるロボット。
【請求項２】
前記駆動手段は、前記第１及び第２撮像手段それぞれから供給される撮像データに基づいて物体を認識する物体認識手段を含むことを特徴とする請求項１に記載のロボット。
【請求項３】
前記駆動手段は、前記第１撮像手段から供給された撮像データに基づいて認識された物体を撮像可能と推定される位置に前記第２撮像手段を移動させ、その後、前記第２撮像手段から供給された撮像データに基づいてその物体を認識できないとき、前記第１撮像手段の撮像方向に対して前記第２撮像手段の撮像方向が一致する状態となる方向へ、前記第２撮像手段を移動させることを特徴とする請求項１又は２に記載のロボット。
【請求項４】
前記駆動手段は、前記第１撮像手段から供給される撮像データに基づいて認識した物体を前記第２撮像手段から供給される撮像データに基づいて認識できたとき、前記第２撮像手段により前記物体が撮像される状態を維持し続ける態様にて前記第２撮像手段を前記物体側へ移動させることを特徴とする請求項１乃至３のいずれか一項に記載のロボット。
【請求項５】
前記駆動手段は、空間内に配置される物体に対して割り当てられた識別値と当該識別値に対して関連付けられた情報とを記憶する記憶手段を含む、請求項１乃至４のいずれか一項に記載のロボットであって、
前記駆動手段は、前記第１撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識し、かつ前記第２撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識する。
【請求項６】
前記駆動手段は、空間内に配置される物体に対して割り当てられた識別値と当該識別値に対して関連付けられた情報とを記憶する記憶手段を含み、かつ
前記駆動手段は、前記第１撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識し、かつ前記第２撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識する、請求項１乃至５のいずれか一項に記載のロボットであって、
前記情報は、当該情報が関連づけられた物体の形状を示す情報を含む。
【請求項７】
前記駆動手段により駆動されて前記第２撮像手段と共に空間変位するハンド部を更に備え、
前記駆動手段は、空間内に配置される物体に対して割り当てられた識別値と当該識別値に対して関連付けられた情報とを記憶する記憶手段を含み、かつ
前記駆動手段は、前記第１撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識し、かつ前記第２撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識する、請求項１乃至６のいずれか一項に記載のロボットであって、
前記情報は、当該情報が関連づけられた物体を把持可能な精度の得られる範囲を示す情報を含み、当該範囲を示す情報に基づいて、前記駆動手段により物体側へ移動される前記第２撮像手段及び前記ハンド部の停止位置が決定される。
【請求項８】
前記第１撮像手段は、ロボット本体に対して設けられ、
前記第２撮像手段は、ロボットに設けられたアーム部の先端側に設けられ、
前記アーム部は、複数の関節を介して接続された複数のリンクを含み、
前記アーム部の先端側には物体を把持可能なハンド部が設けられていることを特徴とする請求項１乃至７のいずれか一項に記載のロボット。
【請求項９】
前記第２撮像手段は、前記第１撮像手段よりも解像度が低い撮像素子を用いて撮像動作することを特徴とする請求項１乃至８のいずれか一項に記載のロボット。
【請求項１０】
第１及び第２撮像手段それぞれから供給される撮像データに基づいて物体を認識し、
前記第１撮像手段から供給される撮像データに基づいて認識した物体が前記第２撮像手段から供給される撮像データに基づいて認識できないとき、前記第１撮像手段の撮像方向に対して前記第２撮像手段の撮像方向が一致する状態となる方向へ、前記第２撮像手段を移動させるための情報を生成する、ロボットの動作方法。
【請求項１１】
請求項１０に記載の方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボットの動作方法、及びプログラムに関する。
【背景技術】
【０００２】
ヒトの住環境内にロボットを導入し、このロボットによりヒトの生活をアシストする取り組みが従来から行われている。例えば、特許文献１には、ロボットのボディー部上に設けられたメインカメラ２２と、ロボットの指３４〜３８近傍に設けられたカラーカメラ２４とを具備するロボット１０を開示する（同文献の図１参照）。同文献では、白色ＬＥＤ２３をカラーカメラ２４に近接配置し、白色ＬＥＤ２３の点灯を制御する。同文献の段落００４８には、発光の前後の輝度を比較することで、セグメント化、及びワークまでの距離推定を実行することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２１３００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ヒトの住環境等に例示されるように様々な物体が存在する空間内にロボットを導入する場合、あるカメラを介してロボットにより認識された物体が、他のカメラを介してはロボットにより認識されない場合が想定される。例えば、障害物、ワークに対する光照射により生じる陰影等の影響によって、上述の状況が招来され得る。
【０００５】
上述の説明から明らかなように、ある撮像手段を介して認識された物体を他の撮像手段を介して認識させる動作を的確に行うことが強く要望されている。なお、この課題の原因は、様々なものが考えられ、上述の例示（障害物による遮断、及びワークに対する光照射により生じる陰影）に限定されるべきものではない。
【課題を解決するための手段】
【０００６】
本発明に係るロボットは、第１及び第２撮像手段と、前記第１撮像手段から供給される撮像データに基づいて認識された物体が前記第２撮像手段から供給される撮像データに基づいて認識できないとき、前記第１撮像手段の撮像方向に対して前記第２撮像手段の撮像方向が一致する状態となる方向へ、前記第２撮像手段を移動させる駆動手段と、を備える。
【０００７】
前記駆動手段は、前記第１及び第２撮像手段それぞれから供給される撮像データに基づいて物体を認識する物体認識手段を含む、と良い。
【０００８】
前記駆動手段は、前記第１撮像手段から供給された撮像データに基づいて認識した物体を撮像可能と推定される位置に前記第２撮像手段を移動させ、その後、前記第２撮像手段から供給された撮像データに基づいてその物体を認識できないとき、前記第１撮像手段の撮像方向に対して前記第２撮像手段の撮像方向が一致する状態となる方向へ、前記第２撮像手段を移動させる、と良い。
【０００９】
前記駆動手段は、前記第１撮像手段から供給される撮像データに基づいて認識した物体を前記第２撮像手段から供給される撮像データに基づいて認識できたとき、前記第２撮像手段により前記物体が撮像される状態を維持し続ける態様にて前記第２撮像手段を前記物体側へ移動させる、と良い。
【００１０】
前記駆動手段は、空間内に配置される物体に対して割り当てられた識別値と当該識別値に対して関連付けられた情報とを記憶する記憶手段を含む、上述のいずれかに記載のロボットであって、前記駆動手段は、前記第１撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識し、かつ前記第２撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識する、と良い。
【００１１】
前記駆動手段は、空間内に配置される物体に対して割り当てられた識別値と当該識別値に対して関連付けられた情報とを記憶する記憶手段を含み、かつ前記駆動手段は、前記第１撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識し、かつ前記第２撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識する、上述のいずれかに記載のロボットであって、前記情報は、当該情報が関連づけられた物体の形状を示す情報を含む、と良い。
【００１２】
前記駆動手段により駆動されて前記第２撮像手段と共に空間変位するハンド部を更に備え、前記駆動手段は、空間内に配置される物体に対して割り当てられた識別値と当該識別値に対して関連付けられた情報とを記憶する記憶手段を含み、かつ前記駆動手段は、前記第１撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識し、かつ前記第２撮像手段から供給される撮像データ及び前記記憶手段に格納された情報に基づいて物体を認識する、上述のいずれかに記載のロボットであって、前記情報は、当該情報が関連づけられた物体を把持することが可能な認識精度が十分に得られる範囲を示す情報を含み、当該範囲を示す情報に基づいて、前記駆動手段により物体側へ移動される前記第２撮像手段及び前記ハンド部の停止位置が決定される、と良い。
【００１３】
前記第１撮像手段は、ロボット本体に対して設けられ、前記第２撮像手段は、ロボットに設けられたアーム部の先端側に設けられ、前記アーム部は、複数の関節を介して接続された複数のリンクを含み、前記アーム部の先端側には物体を把持可能なハンド部が設けられている、と良い。
【００１４】
前記第２撮像手段は、前記第１撮像手段よりも解像度が低い撮像素子を用いて撮像動作する、と良い。
【００１５】
本発明に係るロボットの動作方法は、第１及び第２撮像手段それぞれから供給される撮像データに基づいて物体を認識し、前記第１撮像手段から供給される撮像データに基づいて認識した物体が前記第２撮像手段から供給される撮像データに基づいて認識できないとき、前記第１撮像手段の撮像方向に対して前記第２撮像手段の撮像方向が一致する状態となる方向へ、前記第２撮像手段を移動させるための情報を生成する。本発明に係るプログラムは、左記した方法をコンピュータに実行させる。
【発明の効果】
【００１６】
本発明によれば、ある撮像手段を介して認識された物体を他の撮像手段を介して認識させる動作を的確に行うことが可能となる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１にかかる所定空間へロボットを導入した状態を示す模式図である。
【図２】実施の形態１にかかる手先カメラの位置調整態様を示す模式図である。
【図３】実施の形態１にかかる手先カメラの位置調整態様を示す模式図である。
【図４】実施の形態１にかかるワーク及びカメラの空間位置を示す模式図である。
【図５】実施の形態１にかかるロボットの概略構成を示すブロック図である。
【図６】実施の形態１にかかる物体情報データベースの構造を示す模式図である。
【図７】実施の形態１にかかる把持可能エリア情報を説明するための模式図である。
【図８】実施の形態１にかかる手先カメラの移動位置の算出を説明するための模式図である。
【図９】実施の形態１にかかる手先カメラの移動位置の算出を説明するための模式図である。
【図１０】実施の形態１にかかるロボットの動作を説明するための概略的なフローチャートである。
【図１１】実施の形態１にかかる俯瞰カメラにより撮像された画像を示す模式図である。
【図１２】実施の形態１にかかる手先カメラにより撮像された画像を示す模式図である。
【図１３】実施の形態１にかかる手先カメラにより撮像された画像を示す模式図である。
【図１４】実施の形態１にかかる手先カメラにより撮像された画像を示す模式図である。
【図１５】課題を説明するための説明図である。
【発明を実施するための形態】
【００１８】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。本実施形態に係るロボット１００は、図１に示すように、俯瞰カメラ１０、及び手先カメラ４０を備える。ロボット１００は、俯瞰カメラ１０から供給される撮像データに基づいてワーク（作業対象物、物体）２０１を認識する。ロボット１００は、俯瞰カメラ１０から供給される撮像データに基づいて認識したワーク２０１を、手先カメラ４０から供給される撮像データに基づいて認識することができない。ワーク２０１と手先カメラ４０との間に障害物２０２が存在しているためである。この場合、ロボット１００は、手先カメラ４０の撮像方向が俯瞰カメラ１０の撮像方向に対して一致する状態となる方向へ、手先カメラ４０を移動させる（図２参照）。これによって、ワーク２０１と手先カメラ４０間に障害物２０２が存在している状態等であっても、より的確／迅速に手先カメラ４０を介してワーク２０１を認識することが可能となる。ロボット１００のハンド部３０によりワーク２０１を把持する場合、より短時間にワーク２０１を把持することが可能となる。
【００１９】
なお、障害物２０２の種類、大きさ、配置状態等は様々な態様が考えられる。従って、仮にロボット１００の存在位置／手先カメラ３０の位置姿勢をランダムに変更したとしても、必ずしも的確／迅速に手先カメラ４０を介してワーク２０１を認識することには至らない。
【００２０】
以下、図面を参照しつつ、より具体的に説明する。図１は、所定空間へロボットを導入した状態を示す模式図である。図２及び図３は、手先カメラの位置調整態様を示す模式図である。図４は、ワーク及びカメラの空間位置を示す模式図である。図５は、ロボットの概略構成を示すブロック図である。図６は、物体情報データベースの構造を示す模式図である。図７は、把持可能エリア情報を説明するための模式図である。図８及び図９は、手先カメラの移動位置の算出を説明するための模式図である。図１０は、ロボットの動作を説明するための概略的なフローチャートである。図１１は、俯瞰カメラにより撮像されたフレーム画像を示す模式図である。図１２乃至図１４は、手先カメラにより撮像されたフレーム画像を示す模式図である。図１５は、課題を説明するための説明図である。
【００２１】
図１に示すように、ロボット１００は、俯瞰カメラ（第１撮像手段／撮像部）１０、アーム部（位置調整手段／位置調整部）２０、ハンド部（作用手段／作用部）３０、及び手先カメラ（第２撮像手段／撮像部）４０を具備する。俯瞰カメラ１０は、ヒトの目として機能するべく、ロボット１００のボディー上面に設けられている。アーム部２０は、ヒトの腕として機能するべく、ロボット１００のボディー側面に設けられている。ハンド部３０は、ヒトの手として機能するべく、アーム部２０の先端に設けられている。手先カメラ４０は、ハンド部３０の周囲を観察するべく、ハンド部３０に設けられている。
【００２２】
俯瞰カメラ１０は、ＣＣＤ(Charge Coupled Device)、ＣＭＯＳ(Complementary Metal Oxide Semiconductor)等の一般的な撮像素子を具備するカメラである。俯瞰カメラ１０は、周囲の環境を連続撮像し、ビデオ信号（撮像データ）を出力する。
【００２３】
アーム部２０は、複数の関節を介してリンクが連続した構造を有し、ロボット１００の本体側から供給される駆動力によって、各リンク間の相対位置を調整可能に構成されている。換言すれば、アーム部２０の姿勢は、ロボット１００のコンピュータにより制御される。アーム部２０を構成するリンク間の関節は、柔らかく構成されている。これにより、アーム部２０のリンクが障害物に当たると、リンクが反対側へ押し戻されることとなり、アーム部２０により障害物が倒されること等が効果的に抑制される。
【００２４】
ハンド部３０は、アーム部２０の先端に設けられ、ワーク２０１を把持可能なように構成されている。
【００２５】
手先カメラ４０は、俯瞰カメラ１０と同様、ＣＣＤ(Charge Coupled Device)、ＣＭＯＳ(Complementary Metal Oxide Semiconductor)等の一般的な撮像素子を具備するカメラである。手先カメラ４０は、ハンド部３０の周囲の環境を連続撮像し、ビデオ信号（画像データ）を出力する。手先カメラ４０内に組み込まれる撮像素子の分解能は、俯瞰カメラ１０に組み込まれる撮像素子の分解能よりも低い。これは、手先カメラ４０は、専ら、狭い範囲を撮像するために設けられているためである。各カメラを設ける目的に則って各カメラ内に組み込まれる撮像素子の撮像性能に相違をつけることは、コストダウンの観点から望ましい。なお、俯瞰カメラ１０及び手先カメラ４０内には、レンズ系が設けられている。各カメラに対してズーム／オートフォーカス等の機構を具備させる場合には、各機能を実現するために適したレンズ系を採用すれば良い。
【００２６】
当業者には周知のように、ロボット１００のボディー内には、様々な電気／機械要素が内蔵されている。例えば、ロボット１００のボディー内には、コンピュータ、各種センサ（ジャイロセンサ、加速度センサ、温度センサ、エンコーダ等）、電磁モーター、伝達機構、バッテリー等の要素が内蔵されている。ロボット１００に内蔵されるコンピュータは、例えば、ＣＰＵ(Central Processing Unit)、ＲＡＭ(Random Access Memory)等のメモリ、バス、ハードディスク、インターフェイス、ＡＳＩＣ(Application Specific Integrated Circuit)等から構成される。コンピュータが、記憶領域から読みだしたプログラムをＣＰＵにより実行して、様々な機能を実現すること（これは、ソフトウェア制御と呼ばれることもある）は、当業者には広く知られている。なお、プログラムは、ＣＤ、ＤＶＤ、Ｂｌｕｅ−ｒａｙ等の光学的記録媒体に格納されて拡販されたりする。プログラムの格納媒体は、これに限らず、その他にも様々な種類が存在する。
【００２７】
ロボット１００は、ビジュアルサーボに基づいて、ハンド部３０の位置を制御する（なお、ビジュアルサーボに基づく制御を"ビジュアルフィードバック"と呼ぶこともある）。ビジュアルサーボは、手先カメラ４０を介してコンピュータにより認識されたワークを手先カメラ４０が取得したフレーム画像内（好ましくは、フレーム画像の中心）に捉えながら、認識されたワーク側へハンド部３０を推進移動する処理を示す。ビジュアルサーボ処理は、手先カメラ４０が取得したフレーム画像中に含まれるワークを認識する処理と、認識したワークを手先カメラ４０が取得するフレーム画像の中心に捉えながら、ワーク側へハンド部３０を移動させる処理とを含む。この点は、後で改めて説明する。
【００２８】
図１に示すとき、俯瞰カメラ１０でワーク２０１を認識することでロボット１００とワーク２０１の３次元的な位置関係を算出する。これにより、俯瞰カメラ１０の視軸Ｌ１を、ワーク２０１を臨む方向に一致させる。なお、視軸Ｌ１は、俯瞰カメラ１０に内蔵されるレンズ系の光軸に一致する軸であり、俯瞰カメラ１０の撮像方向に一致する。同様にして、図１に示すとき、ワーク２０１の位置が俯瞰カメラ１０により既知となる。手先カメラ４０の視軸Ｌ２も、手先カメラ４０がワーク２０１を臨む方向に一致させることができる。なお、視軸Ｌ２は、好適には、手先カメラ４０に内蔵されるレンズ系の光軸に一致する軸であり、手先カメラ４０の撮像方向に一致する。
【００２９】
図１に示すとき、俯瞰カメラ１０により撮像されるワーク２０１は、ワーク２０１と手先カメラ４０間の障害物２０２の存在によって手先カメラ４０により撮像し得ない状態にある。このような場合、ロボット１００を如何様に移動したら良いのか、手先カメラ４０を如何様に移動したら良いのか不明な状態にある。
【００３０】
本実施形態では、このような問題を解決するべく、図２に模式的に示すように、俯瞰カメラ１０の視軸Ｌ１（俯瞰カメラ１０の撮像方向）に対して手先カメラ４０の視軸Ｌ２（手先カメラ４０の撮像方向）が一致する状態となる方向へ手先カメラ４０を移動させる。具体的には、ロボット１００は、アーム部２０の姿勢を調整することによって、図２の矢印にて模式的に示された方向へ手先カメラ４０を移動させる。これによって、俯瞰カメラ１０によって捉えたワーク２０１を手先カメラ４０によって的確／迅速に捉えることが可能となる。ロボット１００／手先カメラ４０をランダムに移動させることを抑制することで、手先カメラ４０によりワーク２０１を捉えることに要するエネルギー／時間を低減することが可能となる。
【００３１】
図２に模式的に示したように手先カメラ４０の位置を変更した後、図３に模式的に示すように、ロボット１００は、上述のビジュアルサーボの原理に基づいて、ワーク２０１側へハンド部３０／手先カメラ４０を推進移動させる。ロボット１００は、ハンド部３０によりワーク２０１が把持されることが可能となる位置にてハンド部３０／手先カメラ４０を停止させる。ハンド部３０によりワーク２０１を把持する際、手先カメラ４０によりワーク２０１が適当に撮像されている。ロボット１００は、手先カメラ４０を介してワーク２０１の位置姿勢を的確に認識している。従って、ハンド部３０によるワーク２０１の把握をより的確に行うことができ、ハンド部３０によるワーク２０１の把持性能を効果的に高めることができる。図２に模式的に示したように手先カメラ４０を移動させることで、より迅速に手先カメラ４０によってワーク２０１を捉えることができる。従って、ワーク２０１をハンド部３０により把持することに要する全体時間も効果的に短縮することが可能となる。
【００３２】
なお、ワーク２０１側へハンド部３０／手先カメラ４０を推進移動させる具体的なメカニズムは任意であり、ビジュアルサーボ原理に基づく推進移動に限定されるべきものではない。なお、上述のように、ハンド部３０／手先カメラ４０の移動は、ロボット１００内のコンピュータによるアーム部２０の姿勢制御により具現化される。
【００３３】
より一般的には、俯瞰カメラ１０、手先カメラ４０、ワーク２０１は、図４に模式的に示すような３次元的関係（配置関係）にあり、ワーク２０１の中心を原点Ｏとした極座標を設定することによって、ワーク２０１、俯瞰カメラ１０、手先カメラ４０の相対的な位置関係を把握することができる。図４に模式的に示すように、俯瞰カメラ１０の視軸Ｌ１と手先カメラ４０の視軸Ｌ２は、ワーク２０１の中心（原点Ｏ）を通過するように設定されている。原点から等しい距離にある曲面を観念すると、曲面と視軸Ｌ１の交点をＰＡとし、曲面と視軸Ｌ２の交点をＰＢと設定することができる。俯瞰カメラ１０の位置は、交点ＰＡと原点Ｏを結ぶ直線が極座標のｚ軸に対して為す角度θＡ、交点ＰＡと原点Ｏを結ぶ直線を鉛直方向へ投影した線が極座標のｘ軸に対して為す角度φＡによって定まる。手先カメラ４０の位置は、交点ＰＢと原点Ｏを結ぶ直線が極座標のｚ軸に対して為す角度θＢ、交点ＰＢと原点Ｏを結ぶ直線を鉛直方向へ投影した線が極座標のｘ軸に対して為す角度φＢによって定まる。角度θＢが角度θＡに一致し、かつ角度φＢが角度φＡに一致するとき、俯瞰カメラ１０の視軸Ｌ１と手先カメラ４０の視軸Ｌ２とが一致している状態にある。図２で手先カメラ４０を移動させるのは、３次元的には、原点Ｏ、交点ＰＡ、ＰＢを含む面（平面）内に拘束して視軸Ｌ２を移動させることに相当する。このように、ワークに対して極座標を設定し、この極座標により各カメラの位置を算出することによって、カメラ間の位置調整を好適に実施することができる。
【００３４】
図５に、ロボット１００の概略的なブロック構成を示す。なお、図５は、ロボットの構成を概略的に示すに留まり、その細部の構成までも開示していない。ロボット１００の具体的な構成方法は任意であり、図５に開示する構成に限られるべきものではない。
【００３５】
図５に示すように、ロボット１００は、俯瞰カメラ１０、手先カメラ４０、及び駆動部（駆動手段）６５を有する。駆動部６５は、物体認識処理部６０、物体情報ＤＢ（DataBase）６１、認識視点候補抽出部６２、及びロボット制御部６３を含む。駆動部６５は、俯瞰カメラ１０から供給される撮像データに基づいて認識したワークを手先カメラ４０により撮像するべく、手先カメラ４０を空間的に変位させる。駆動部６５は、上述のビジュアルサーボによりハンド部３０／手先カメラ４０をワーク側へ推進移動させる。
【００３６】
俯瞰カメラ１０が出力するビデオ信号は、物体認識処理部６０へ供給される。手先カメラ４０が出力するビデオ信号は、物体認識処理部６０へ供給される。物体認識処理部６０は、物体情報ＤＢ６１に対してアクセス可能に接続されている。物体認識処理部６０の出力は、認識視点候補抽出部６２へ供給される。認識視点候補抽出部６２の出力は、ロボット制御部６３へ供給される。認識視点候補抽出部６２は、物体情報ＤＢ６１に対してアクセス可能に接続されている。
【００３７】
物体認識処理部６０は、各カメラからビデオ信号を受信し、任意の方法によりフレーム画像内にワークが存在することを認識する。物体認識処理部６０によるワークの認識方法は任意である。本例では、物体情報ＤＢ６１内に、ワーク単位でワークの形状を示す形状データが予め格納されている（図６参照）。物体認識処理部６０は、物体情報ＤＢ６１に格納された形状情報に対応する形状がフレーム画像内に含まれているか否かを判定する。例えば、物体認識処理部６０は、フレーム画像に対してエッジ抽出処理を施し、抽出したエッジ形状が物体情報ＤＢ６１から読みだした形状情報に対応するものか否かを判定する。この判定により、物体認識処理部６０は、フレーム内にワークが含まれることを検知する。
【００３８】
図６に示すように、物体情報ＤＢ６１には、ワーク単位で、ワークを識別する物体ＩＤ、ワークの物体名、ワークの形状情報、ワークの過去の存在位置姿勢を示す履歴、およびワークの把持可能エリア情報が格納されている。１番目のワークは、ＩＤ＝１のペットボトルであり、これに関連づけて、ＣＡＤ形式の形状データ、履歴、および把持可能エリア情報が格納されている。２番目のワークは、ＩＤ＝２の携帯電話であり、これに関連づけて、ＣＡＤ形式の形状データ、履歴、および把持可能エリア情報が格納されている。冗長な説明を避けるため、図６では、２つのワークに限って開示している。物体情報ＤＢ６１に格納されるデータ構造／データ量は任意であり、図６の開示に限定されるべきものではない。
【００３９】
図６に示された把持可能エリア情報は、図７に模式的に示すように把握される。図７に示す点線範囲Ｒ０〜Ｒ４は、手先カメラ４０がこれらの範囲内にあれば把持のために十分な認識精度が得られると考えられる領域を示している。つまり、手先カメラ４０がその点線範囲Ｒ０〜Ｒ４内に位置していれば、ハンド部３０によりワークが把持可能である。なお、図７では、ワークは、斜線を施した円柱として表示されている。
【００４０】
各点線範囲Ｒ０〜Ｒ４は、任意の面内において存在する。点線範囲の形状は、ワークの中心を原点として設定された極座標により表現される。例えば、図７に模式的に示すように、点線範囲Ｒ１の外周位置は、式（１）により表わされる。
【数１】
0005609760.tif 000002
θは、外周位置と原点とを結ぶ直線がｚ軸に対して為す角度である。φは、外周位置と原点とを結ぶ直線がｘ軸に対して為す角度である。Rは、外周位置と原点間の間隔である。各ワークに設定された各把持可能エリア情報は、把持可能な範囲を規定する点線範囲を構成する外周位置情報の集合により構成される。
【００４１】
図５に示した認識視点候補抽出部６２は、物体認識処理部６０により認識されたワークを手先カメラ４０により捉えるべく、手先カメラ４０の移動先の位置を算出する。この点について、図８及び図９を参照して説明する。
【００４２】
図８に示すように、まず、物体認識処理部６０は、上述のように、物体情報ＤＢに格納された情報を活用しつつ、俯瞰カメラ１０から供給されたビデオ信号に基づいてワークを認識する。物体認識処理部６０により認識されたワークの情報（例えば、物体ＩＤ、フレーム中に占める高さ、幅、形状等）は、認識視点候補抽出部６２に供給される。認識視点候補抽出部６２は、物体認識処理部６０から供給されたワークの情報と、これに対応する物体情報ＤＢ６１に格納された情報とに基づいて、俯瞰カメラ１０により撮像されたワークの位置姿勢を算出する。例えば、フレーム内のワーク（例えば、物体ＩＤ＝１のペットボトル）の幅と、物体情報ＤＢ６１に格納されたワーク（物体ＩＤ＝１のペットボトル）の幅との比率を算出することによって、俯瞰カメラ１０とワーク２０１間の距離ｄ１が算出される。
【００４３】
俯瞰カメラ１０の画角αは既知である。従って、俯瞰カメラ１０により観察されるワーク２０１が位置する平面範囲、すなわち俯瞰カメラ１０の視野範囲Ｗ１も計算式Ｗ１＝２×ｄ１・ｔａｎ（α／２）により求められる。
【００４４】
このように認識視点候補抽出部６２により算出されたワークの位置姿勢は、同次変換行列の形式（式（２））により表現される。ワーク側から見た俯瞰カメラ１０の位置姿勢は、左記した行列の逆行列、式（３）となる。
【数２】
0005609760.tif 000003
【数３】
0005609760.tif 000004
【００４５】
認識視点候補抽出部６２は、次に、ワーク２０１を手先カメラ４０により捉えることが可能であり、かつ手先カメラ４０の視野範囲が俯瞰カメラ１０の視野範囲と一致する位置を算出する。俯瞰カメラ１０の視野範囲に対して手先カメラ４０の視野範囲を一致させることで、手先カメラ４０によりワーク２０１をより確実に捉えることが可能となる。
【００４６】
ワークの位置姿勢は既に求まっているので、ワーク中心を通過する視軸Ｌ２は決まる。視軸Ｌ２上のワークから手先カメラまでの距離ｄ２を次のように求める。図９に示すように、手先カメラ４０の画角βとすると、視野範囲Ｗ２＝視野範囲Ｗ１の条件を満たす間隔ｄ２は、Ｗ１＝２×ｄ２・ｔａｎ（β／２）を解くことで求めることができる。認識視点候補抽出部６２は、ワーク２０１まで間隔ｄ２をあけた位置を示す位置情報を生成する。ロボット制御部６３は、認識視点候補抽出部６２により生成された位置情報が示す位置まで手先カメラ４０を移動させる。これにより、手先カメラ４０は、ビジュアルサーボ駆動の開始点に配置される。
【００４７】
認識視点候補抽出部６２により生成される位置情報は、例えば、ロボット１００の現在位置を中心とする座標系により表現される。ロボット１００の現在位置を中心とする座標系におけるワーク２０１の位置は、物体認識処理部６０により算出され、認識視点候補抽出部６２へ供給される。認識視点抽出部６２は、ワーク２０１の座標位置から、上述のように算出した間隔ｄ２だけ離れた位置を算出する。認識視点候補抽出部６２により算出された位置情報は、ロボット制御部６３へ供給される。ロボット制御部６３は、手先カメラ４０を現在の位置から算出された位置まで移動させることに要するアーム部２０の姿勢変化を求める。ロボット制御部６３により算出されたようにアーム部２０が姿勢変化されることによって、図９に示すように手先カメラ４０は位置付けられる。
【００４８】
図８及び図９に提示した手法によって、手先カメラ４０の初期位置を求めることができるが、この方法に限定されるべきものではない。つまり、図８及び図９を参照して説明した方法以外の方法を採用して、手先カメラ４０の初期位置を求めても良い。例えば、各カメラの視野範囲を一致させることなく、単に、ワーク２０１の中心を向くように手先カメラ４０を姿勢変化させても良い。ワーク２０１の中心を向くように手先カメラ４０を位置付ける場合には、ワーク２０１に対する手先カメラ４０の間隔が手先カメラ４０内のレンズの被写界深度の範囲内となる位置とすることが望ましい。
【００４９】
図５に示したロボット制御部６３は、自律的又はユーザーの指示に基づいて、ロボット１００の全体姿勢を制御する。具体的には、ロボット制御部６３は、自律的又はユーザーの指示に基づいて、俯瞰カメラ１０の姿勢を調整する。ロボット制御部６３は、自律的又はユーザーの指示に基づいて、アーム部２０の姿勢を調整する。ロボット制御部６３は、自律的又はユーザーの指示に基づいて、ハンド部３０の把持動作を制御する。
【００５０】
上述のビジュアルサーボに基づく制御は、物体認識処理部６０、認識視点候補抽出部６２、及びロボット制御部６３が協働することにより実行される。具体的には、認識視点候補抽出部６２は、物体認識処理部６０により認識されたワーク２０１が手先カメラ４０により取得されたフレームの中心に位置する状態を保ちつつ、ワーク２０１側へ手先カメラ４０を近づけるための位置情報を生成し、ロボット制御部６３は、その生成された位置情報に応じて、アーム部２０の姿勢を変化させる。このサイクルを繰り返すことによって、ワーク２０１近傍にハンド部３０を位置づけさせることが可能となる。ビジュアルサーボを移動制御の原理として採用することによって、把持対象のワーク２０１が手先カメラ４０の撮像範囲から外れることなく、好適に、ワーク２０１の近傍にハンド部３０を位置付けることが可能となる。
【００５１】
ハンド部３０の停止位置は、物体情報ＤＢ６１に格納された把持可能エリア情報に基づいて決定される。具体的には、認識視点候補抽出部６２は、次の位置情報を算出するたびに、この位置情報により移動される手先カメラ４０が、物体情報ＤＢ６１に格納された把持可能エリア情報から定まる範囲内に存在することになるか否かを判定する。物体情報ＤＢ６１に格納された把持可能エリア情報から定まる範囲内に手先カメラ４０が入ることを検出すると、認識視点候補抽出部６２は、物体認識処理部６０と協働して実行してきた位置情報の算出サイクルを停止する。なお、最終的に算出された位置情報は、認識視点候補抽出部６２からロボット制御部６３に供給され、これに応じて、ロボット制御部６３は、手先カメラ４０を移動させる。
【００５２】
次に、図１０のフローチャートを参照して、ロボット１００の動作について説明する。
【００５３】
まず、ロボット１００は、俯瞰カメラ１０を介してワークを認識する（Ｓ１００）。具体的には、俯瞰カメラ１０は、視軸Ｌ１の近傍に存在しているワークを撮像し、これに応じたビデオ信号を生成する。物体認識処理部６０は、俯瞰カメラ１０から供給されるフレーム画像に含まれるワークを抽出し、抽出したワークと物体情報ＤＢ６１に格納されたワーク情報（ワークの形状情報等）とを比較することによって撮像フレーム内にワークが存在することを認識する。物体認識処理部６０は、認識したワークの位置姿勢等も算出する。なお、物体情報ＤＢ６１等のデータベースを用いることなく、ワークを認識しても良い。
【００５４】
次に、ワークの中心に対して視軸Ｌ１を合わせるように俯瞰カメラの姿勢を調整する（Ｓ１０１）。この処理は、例えば、物体認識処理部６０とロボット制御部６３との協働により実現される。俯瞰カメラ１０の姿勢調整と同時に、俯瞰カメラ１０をワーク側に対して近付け、これにより、俯瞰カメラ１０によりワークをより十分に認識可能としても良い。
【００５５】
次に、ロボット１００は、手先カメラ４０の移動位置を算出する（Ｓ１０２）。具体的には、図８及び図９を参照して説明したように、認識視点候補抽出部６２は、俯瞰カメラ１０の視野範囲と同範囲となる視野範囲にて手先カメラ４０によりワークを捉えることが可能となる手先カメラ４０の位置姿勢を算出する。
【００５６】
次に、ロボット１００は、算出した位置姿勢へ手先カメラ４０を移動する（Ｓ１０３）。具体的には、ロボット制御部６３は、認識視点候補抽出部６２から位置姿勢情報に応じて、アーム部２０を姿勢変化させ、所定の位置姿勢にまでハンド部３０を移動させる。
【００５７】
次に、ロボット１００は、手先カメラ４０でワークを認識したか否かを判定する（Ｓ１０４）。具体的には、物体認識処理部６０は、手先カメラ４０から供給されるフレーム画像に含まれるワークを抽出する。次に、物体認識処理部６０は、抽出したワークが、上述のＳ１００で俯瞰カメラ１０を介して認識されたワークに等しいか判定する。例えば、物体認識処理部６０は、上述のＳ１００で俯瞰カメラ１０を介して認識されたワークの識別ＩＤをもとに物体情報ＤＢ６１から形状情報を読み出す。次に、物体認識処理部６０は、読みだした情報と上述のように手先カメラ４０から供給されるフレーム画像から抽出されたワークの情報とを比較し、両者の一致性を判定する。所定条件を満足するとき、物体認識処理部６０は、両者が一致すると判定する。このようにして、ロボット１００は、俯瞰カメラ１０で撮像されたワーク２０１が手先カメラ４０によって撮像されている状態を検出する。
【００５８】
ステップＳ１０４の判定結果がＮＯの場合、ロボット１００は、手先カメラ４０の視軸Ｌ２が俯瞰カメラ１０の視軸Ｌ１に一致するような状態となる方向へ手先カメラ４０を移動する（Ｓ１０５）。具体的には、図２を参照して説明したように、ロボット１００は、ハンド部３０／手先カメラ４０の位置姿勢を変更するべく、アーム部２０の姿勢を制御する。
【００５９】
この動作は、図４の模式図を参照することで理解することができる。図４においては、上述のように、角度θＢが角度θＡに一致し、かつ角度φＢが角度φＡに一致するとき、俯瞰カメラ１０の視軸Ｌ１と手先カメラ４０の視軸Ｌ２とが一致している状態にある。従って、このような状態に近づくように、手先カメラ４０の軌道を算出すればよい。例えば、ロボット制御部６３は、自身を中心とする座標系において、俯瞰カメラ１０の位置、ワーク２０１の位置、手先カメラ４０の位置を認識している。これらの位置情報を用いることによって、ロボット制御部６３は、手先カメラ４０を移動すべき方向を算出する。ステップＳ１０５の後、再び、ステップＳ１０４の判定が実行される。
【００６０】
好適には、所定距離だけハンド部３０／手先カメラ４０を移動させる度に、Ｓ１０４の判定処理を実行するようなサイクルを採用する。これにより、必要以上にハンド部３０／手先カメラ４０を移動させることを効果的に回避し、より短時間で手先カメラ４０によりワークを捉えることが可能となる。
【００６１】
ステップＳ１０４の判定結果がＹＥＳの場合、ロボット１００は、手先カメラ４０をビジュアルサーボにより移動制御する（Ｓ１０６）。具体的には、図３を参照して説明したように、物体認識処理部６０、認識視点候補抽出部６２、及びロボット制御部６３が協働することにより、手先カメラ４０の中心にワークを捉えながら、ハンド部３０／手先カメラ４０がワーク側へ近づくようにアーム部２０の姿勢が制御される。
【００６２】
次に、ロボット１００は、ハンド部３０でワークを把持可能な認識精度が得られる位置に手先カメラが存在するか否かを判定する（Ｓ１０７）。具体的には、認識視点候補抽出部６２は、ステップＳ１０６において次の位置情報を算出するたびに、この位置情報により移動される手先カメラ４０が、物体情報ＤＢ６１に格納された把持可能エリア情報から定まる範囲内に存在することになるか否かを判定する。物体情報ＤＢ６１に格納された把持可能エリア情報から定まる範囲内に手先カメラ４０が入ることを検出すると、認識視点候補抽出部６２は、物体認識処理部６０と協働して実行してきた位置情報の算出サイクルを停止する。
【００６３】
次に、ステップＳ１０７の判定結果がＹＥＳの場合、ロボット１００は、ワークを把持する（Ｓ１０８）。具体的には、ロボット制御部６３は、物体認識処理部６０により算出された位置姿勢情報に応じてアーム部２０を姿勢変化させ、所望の位置にハンド部３０／手先カメラ４０を移動させる。その後、ロボット制御部６３は、ハンド部３０によりワークを把持するべく、ハンド部３０のハンド状態を変化させる。なお、ステップＳ１０７においてＮＯの場合、ステップＳ１０４にまで戻る。
【００６４】
図１１乃至図１４を参照して、各カメラにより撮像されたフレーム画像を示す。図１１は、図１０のステップＳ１００において、俯瞰カメラ１０により撮像されたフレーム画像を模式的に示す。図１２は、図１０のステップＳ１０４において、手先カメラ４０により撮像されたフレーム画像を模式的に示す。図１０と図１２との対比から明らかなように、俯瞰カメラ１０により捉えられたワーク２０１は、手先カメラ４０から見ると、障害物２０２により遮られている。
【００６５】
図１３は、図１０のステップＳ１０５により手先カメラ４０の位置を図２に模式的に示したように変更した後、手先カメラ４０により撮像されたフレーム画像を模式的に示す。図１２と図１３との対比から明らかなように、手先カメラ４０の位置を図２に模式的に示したように調整することによって、手先カメラ４０によりワーク２０１を捉えることが可能となる。
【００６６】
図１４は、図１０のステップＳ１０６の後、手先カメラ４０により撮像されたフレーム画像を示す。図１３と図１４との対比から明らかなように、ロボット１００は、ワーク２０１をフレームの中心に位置付けながらビジュアルサーボに基づいて手先カメラ４０を移動する。これにより、手先カメラ４０の移動に伴って、手先カメラ４０の視野からワーク２０１が外れることを効果的に抑制することができる。
【００６７】
上述の説明から明らかなように、本実施形態では、ロボット１００は、俯瞰カメラ１０から供給される撮像データに基づいて認識したワーク２０１が手先カメラ４０から供給される撮像データに基づいて認識することができないとき、手先カメラ４０の撮像方向が俯瞰カメラ１０の撮像方向に対して一致する状態となる方向へ、手先カメラ４０を移動させる。このように制御することによって、ワーク２０１と手先カメラ４０間に障害物２０２が存在している状態であっても、より的確に手先カメラ４０を介してワーク２０１を認識することが可能となる。ロボット１００のハンド部３０によりワーク２０１を把持する場合には、より短時間にワーク２０１を把持することが可能となる。
【００６８】
なお、俯瞰カメラ１０により捉えられたワーク２０１が手先カメラ４０により捉えることができない原因は、障害物の存在以外にも他に様々なものが考えられる。例えば、図１５に模式的に示すように、光源２５０によりワーク２６０に陰影が付与されている場合、手先カメラ４０によりワーク２６０の形状を正確に捉えることができず、物体認識処理部６０によりワーク２６０を認識することができない。
【００６９】
このような場合であっても、本実施形態のように、手先カメラ４０の視軸が俯瞰カメラ１０の視軸に一致するような状態となるような方向へ手先カメラ４０を移動させることによって、ワーク２６０を的確に認識することが可能となる。俯瞰カメラ１０を介してワーク２６０が既にロボット１００により認識されているためである。
【００７０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、ロボット１００がワーク２０１に対して行う動作は、把持に限らず、他の様々な動作態様が想定される。ロボット１００の構成は、図示したものに限らず、他の様々な態様が想定される。図５に示した物体認識処理部６０、認識視点候補抽出部６２、ロボット制御部６３が発揮する機能は、好適には、ＣＰＵによるプログラムの実行により具現化される。俯瞰カメラ１０の撮像方向に対して手先カメラ４０の撮像方向が一致した状態となる方向へ手先カメラ４０を移動させる態様は任意である。例えば、手先カメラ４０の移動軌跡は、直線状、波状、又はその他の態様であったりする。
【符号の説明】
【００７１】
１００    ロボット
１０    俯瞰カメラ
２０    アーム部
３０    ハンド部
４０    手先カメラ
６０    物体認識処理部
６１    物体情報ＤＢ
６２    認識視点候補抽出部
６３    ロボット制御部
２０１    ワーク
２０２    障害物
２５０    光源
２６０    ワーク
【図１】
0005609760.tif 000005
【図２】
0005609760.tif 000006
【図３】
0005609760.tif 000007
【図４】
0005609760.tif 000008
【図５】
0005609760.tif 000009
【図６】
0005609760.tif 000010
【図７】
0005609760.tif 000011
【図８】
0005609760.tif 000012
【図９】
0005609760.tif 000013
【図１０】
0005609760.tif 000014
【図１１】
0005609760.tif 000015
【図１２】
0005609760.tif 000016
【図１３】
0005609760.tif 000017
【図１４】
0005609760.tif 000018
【図１５】
0005609760.tif 000019