(57)【要約】【課題】  移動する本体とその本体に移動可能となっているアームの両者を目標物へ誘導する際に、必要以上に大きなデータを扱う必要がなく、アームを適切な経路で目標物へ誘導することが可能な技術を提供する。【解決手段】  本発明の移動体は、移動可能な本体と、本体に移動可能に連結されたアームを備えており、そのアームを目標物へ誘導することができる。その移動体においては、本体の移動経路はグローバルマップに基づいて生成され、アームの移動経路はローカルマップに基づいて生成される。ローカルマップは、周囲の環境の形状とアームの位置に基づいて更新される。周囲の環境の形状は、移動体の本体から周囲の環境までの距離を計測することによって認識される。【選択図】  図１
2008023630.tif 000002
【特許請求の範囲】
【請求項１】
移動可能な本体と、その本体に移動可能に連結されているアームを備えており、そのアームを目標物に向けて誘導可能な移動体であって、
目標物の位置を取得する目標物位置取得手段と、
本体の位置を計測する本体位置計測手段と、
取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新手段と、
更新したグローバルマップを記憶するグローバルマップ記憶手段と、
記憶したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成手段と、
生成した本体の移動経路に従って本体を移動する移動手段と、
本体から周囲の環境までの距離を計測する距離計測手段と、
計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識手段と、
アームの位置を取得するアーム位置取得手段と、
認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新手段と、
更新したローカルマップを記憶するローカルマップ記憶手段と、
記憶したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成手段と、
生成したアームの移動経路に従ってアームを駆動するアーム駆動手段と、
を備えている移動体。
【請求項２】
取得したアームの位置に基づいて、アームによって距離計測手段から遮蔽される領域（アーム遮蔽領域）の範囲を決定する遮蔽領域決定手段をさらに備えており、
前記環境認識手段が、計測した周囲の環境までの距離から、アーム遮蔽領域を除く周囲の環境の形状を認識し、
前記ローカルマップ更新手段が、アーム遮蔽領域を除く周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新することを特徴とする請求項１の移動体。
【請求項３】
前記ローカルマップ更新手段が、ローカルマップを更新する際に、アームから見て目標物よりも遠方に位置する部分をローカルマップから除去することを特徴とする請求項２の移動体。
【請求項４】
前記ローカルマップが、目標物に近い部分ほど細かい分解能でメッシュ分割されていることを特徴とする請求項３の移動体。
【請求項５】
移動可能な本体に移動可能に連結されているアームを目標物へ向けて誘導する方法であって、
目標物の位置を取得する目標物位置取得工程と、
本体の位置を計測する本体位置計測工程と、
取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新工程と、
更新したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成工程と、
生成した本体の移動経路に従って本体を移動する本体移動工程と、
本体から周囲の環境までの距離を計測する距離計測工程と、
計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識工程と、
アームの位置を取得するアーム位置取得工程と、
認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新工程と、
更新したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成工程と、
生成したアームの移動経路に従ってアームを駆動するアーム駆動工程と、
を備えている方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動可能な本体に移動可能に連結されたアームを誘導する技術に関する。特に、本体とアームの両方の移動を制御して、アームを目標物に向けて誘導する技術に関する。
【背景技術】
【０００２】
現在、家庭やオフィスなどで人間の代わりに作業したり、人間が行う作業の補助をすることを目的としたパートナーロボットの開発が盛んに行われている。このようなロボットでは、人間と同じ様に、種々の動作を行うことが期待されている。例えば、人間の代わりに荷物を搬送する動作をロボットが行う場合、まずロボット本体がその荷物の近傍まで移動し、次いでロボット本体に搭載されているアームをその荷物まで移動し、その後にアームに設けられている把持部によってその荷物を把持し、荷物を把持した状態でロボット本体を移動する。このような動作を実現するためには、ロボット本体と、ロボット本体に移動可能に搭載されているアームを目標物まで誘導する技術が必要とされる。
【０００３】
従来から、周囲の環境を記述する地図データ（マップ）を利用してロボット等の移動体を目標物へ向けて誘導する技術が開発されている。
特許文献１には、予め設定された出発点と到達目標点と、出発点から到達目標点に至る経路の周囲に存在する環境を記述する地図を利用してロボットの移動経路を計画する技術が開示されている。
特許文献２には、ロボットの周囲の環境を観測した結果から障害物情報と現在位置情報と目的位置情報を取得し、取得した障害物情報と現在位置情報と目的位置情報から障害物地図を作成し、作成した障害物地図に基づいてロボットの移動経路を計画する技術が開示されている。
特許文献３には、周囲の環境を記述する地図に基づいて移動経路を計画するロボットにおいて、ロボットの差分移動量が地図のグリッドの大きさよりも大きいときに地図を更新する技術が開示されている。
【０００４】
【特許文献１】特開平１１−２４９７３４号公報
【特許文献２】特開２００３−２６６３４５号公報
【特許文献３】特開２００３−２６６３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般に、移動体の本体を目標物へ誘導するために利用されるマップは、本体のサイズと同程度の分解能のものが用いられる。本体のサイズに比べて大きな分解能のマップを利用する場合、障害物が存在する範囲を大きめに評価してしまうため、障害物の周囲を大きく迂回する経路が生成されることになり、無駄の多い経路を生成してしまう。逆に、本体のサイズに比べて小さな分解能のマップを利用すると、必要以上に精密な経路を生成することになり、本体の誘導のために処理することが必要となるデータ量の増大を招く。移動体に搭載できる計算資源は限られているから、移動体を誘導する処理のために必要以上に大きなデータを扱うと、他の様々な処理の遅延を招いてしまう。従って、移動する本体を目標物へ誘導するためのマップは、本体のサイズと同程度の分解能を持つことが好ましい。
【０００６】
本体を目標物へ向けて誘導するために利用されるマップを用いてアームを誘導すると、アームのサイズは本体のサイズに比べて小さいから、マップの分解能が粗すぎてアームの移動経路を適切に生成することができないという問題が生じる。
移動する本体の目標物への誘導と、その移動体に移動可能に搭載されているアームの目標物への誘導の両方を適切に行うことが可能な技術が待望されている。
【０００７】
本発明は、上述した問題を解決するためのものであり、移動する本体とその本体に移動可能に連結されているアームの両者を目標物へ誘導する際に、必要以上に大きなデータを扱う必要がなく、アームを適切な経路で目標物へ誘導することが可能な技術を提供する。
【課題を解決するための手段】
【０００８】
本発明は、移動可能な本体と、その本体に移動可能に連結されているアームを備えており、そのアームを目標物に向けて誘導可能な移動体として具現化される。その移動体は、目標物の位置を取得する目標物位置取得手段と、本体の位置を計測する本体位置計測手段と、取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新手段と、更新したグローバルマップを記憶するグローバルマップ記憶手段と、記憶したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成手段と、生成した本体の移動経路に従って本体を移動する移動手段と、本体から周囲の環境までの距離を計測する距離計測手段と、計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識手段と、アームの位置を取得するアーム位置取得手段と、認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新手段と、更新したローカルマップを記憶するローカルマップ記憶手段と、記憶したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成手段と、生成したアームの移動経路に従ってアームを駆動するアーム駆動手段を備えている。
【０００９】
本明細書でグローバルマップとは、移動体の周囲の環境の形状を記述するマップであって、グリッド状にメッシュ分割されており、環境に対する目標物の位置と移動体の本体の位置がそれぞれ対応するグリッドに関連付けられたものをいう。
【００１０】
本明細書でローカルマップとは、移動体の周囲の環境のうちで移動体の本体から目標物までアームを誘導する際に必要とされる領域のみについての形状を記述するマップであって、グリッド状にメッシュ分割されており、環境に対する目標物の位置とアームの位置が対応するグリッドにそれぞれ関連付けられたものをいう。
【００１１】
上記の移動体では、目標物に向けて本体を移動し、本体が目標物に近接する位置まで到達すると、本体に搭載されているアームを目標物に向けて駆動する。本体を移動する際には、グローバルマップを用いて本体の移動経路を生成し、生成した本体の移動経路に従って本体を移動させる。アームを駆動する際には、ローカルマップを用いてアームの移動経路を生成し、生成したアームの移動経路に従ってアームを駆動する。
【００１２】
上記の移動体では、本体の誘導に用いるマップ（グローバルマップ）と、アームの誘導に用いるマップ（ローカルマップ）を別個に用意している。この構成とすると、グローバルマップを本体の誘導に適した分解能（例えば本体のサイズと同程度の分解能）とし、ローカルマップをアームの誘導に適した分解能（例えばアームの先端部分のサイズと同程度の分解能）とすることができる。グローバルマップは本体の周囲に存在する環境の全体を記述するものである必要があるのに対し、ローカルマップはアームが到達可能な領域についてのみ用意すればよい。従って、ローカルマップの分解能を細かくしても、扱うべきデータ量はそれほど増加しない。従って、処理の負担をそれほど増大させることなく、アームの適切な移動経路を生成することができる。
また、ローカルマップはアームが到達可能な領域についてのみ用意すればよいため、アームを誘導している間に実時間でローカルマップを繰り返し更新しても、処理の負担をそれほど増大させることがない。アームを誘導する際に扱うデータ量を不要に増大させることなく、目標物に向けてアームを確実に誘導することができる。
【００１３】
上記の移動体では、本体から周囲の環境までの距離を計測し、計測した距離から周囲の環境の形状を認識し、認識した形状に基づいてローカルマップを更新する。このような構成とすると、本体が移動したことによって環境内における本体の位置が変化した場合でも、移動後の本体の位置を基準としたローカルマップを生成することができる。
【００１４】
上記の移動体は、取得したアームの位置に基づいて、アームによって距離計測手段から遮蔽される領域（アーム遮蔽領域）の範囲を決定する遮蔽領域決定手段をさらに備えていることが好ましい。この場合、環境認識手段が、計測した周囲の環境までの距離から、アーム遮蔽領域を除く周囲の環境の形状を認識し、ローカルマップ更新手段が、アーム遮蔽領域を除く周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新することが好ましい。
【００１５】
距離計測手段によって周囲の環境までの距離を計測する際に、誤ってアームが環境の一部として扱われてしまうと、周囲の環境の形状を正確に認識することができず、アームの適切な移動経路を生成することができない。上記の移動体によれば、距離計測手段から見てアームの背後に隠れてしまったアーム遮蔽領域に関しては、環境認識手段は周囲の環境として認識せず、ローカルマップ更新手段はローカルマップを更新せずにそれまでのローカルマップを流用する。これによって、ローカルマップを生成する際に、誤ってアームを環境の一部として扱ってしまう事態の発生を防ぐことができる。
【００１６】
上記の移動体では、ローカルマップ更新手段が、ローカルマップを更新する際に、アームから見て目標物より遠方に位置する部分をローカルマップから除去することが好ましい。
【００１７】
アームから見て目標物より遠方にある領域については、アームを目標物に向けて誘導する際に、そこに障害物があるか否かを配慮する必要がない。従って、ローカルマップにおいてアームから見て目標物より遠方にある部分については、障害物が存在するか否かの情報を保持しておく必要がない。上記の移動体では、アームから見て目標物より遠方にある部分を、ローカルマップを更新する際にローカルマップから除去する。これによって、アームの誘導のために扱うべきデータ量をさらに低減することができる。
【００１８】
上記の移動体においては、ローカルマップが目標物に近い部分ほど細かい分解能でメッシュ分割されていることが好ましい。
【００１９】
目標物に向けてアームを誘導するに際して、アームが目標物から離れている間はそれほど正確な経路でアームを誘導する必要はなく、アームを目標物へ向けて近づけていくことができればよい。それに対して、アームが目標物に近づいた後ではアームを正確な経路で誘導する必要がある。上記の移動体によれば、アームを正確に誘導することが必要とされる目標物の近傍では、細かい分解能でメッシュ分割したローカルマップを計算し、それによってアームの精密な移動経路を生成する。また、アームを正確に誘導することがそれほど必要とされていない目標物から離れた領域では、粗い分解能でメッシュ分割したローカルマップを計算し、アームを誘導するために扱うデータ量を低減する。
【００２０】
本発明は方法としても具現化される。本発明の方法は、移動可能な本体に移動可能に連結されているアームを目標物へ向けて誘導する方法である。その方法は、目標物の位置を取得する目標物位置取得工程と、本体の位置を計測する本体位置計測工程と、取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新工程と、更新したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成工程と、生成した本体の移動経路に従って本体を移動させる本体移動工程と、本体から周囲の環境までの距離を計測する距離計測工程と、計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識工程と、アームの位置を取得するアーム位置取得工程と、認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新工程と、更新したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成工程と、生成したアームの移動経路に従ってアームを駆動するアーム駆動工程を備えている。
【発明の効果】
【００２１】
本発明によれば、移動する本体とその本体に移動可能に連結されているアームの両者を目標物へ誘導する際に、必要以上に大きなデータを扱う必要がなく、アームを適切な経路で目標物へ誘導することができる。
【発明を実施するための最良の形態】
【００２２】
本発明の好適な実施形態を例示する。
（形態１）前記距離計測手段が、
本体の周囲の環境を撮影する２以上のカメラと、
それぞれのカメラで撮影された画像から、ステレオ視によって、本体から周囲の環境までの距離を計算する距離計算手段を備えている。
【実施例】
【００２３】
本発明のロボットに係る実施例について、図面を参照しながら説明する。
図１に示すように、ロボット１００は、カメラ１０２、１０４、画像処理部１０６、位置計測部１０８、主制御部１１０、アーム制御部１１２、車輪制御部１１４、アクチュエータ１１６、モータ１１８、１２０、アーム１２２、右車輪１２４、左車輪１２６を備えている。
【００２４】
ロボット１００の本体は、右車輪１２４、左車輪１２６および図示されない補助輪によって支持されており、右車輪１２４、左車輪１２６をそれぞれモータ１１８、モータ１２０によって回転させることによって、転倒することなく移動することができる。右車輪１２４はモータ１１８の駆動によって回転し、左車輪１２６はモータ１２０の駆動によって回転する。右車輪１２４と左車輪１２６は互いに独立して回転可能である。右車輪１２４と左車輪１２６の回転を制御することによって、ロボット１００の本体は前進したり、後進したり、旋回したりすることができる。
【００２５】
車輪制御部１１４は、モータ１１８およびモータ１２０の駆動を制御する。車輪制御部１１４は、主制御部１１０から右車輪１２４と左車輪１２６の回転角の時系列データが入力されると、その回転角の時系列データに従って、モータ１１８およびモータ１２０を駆動する。
【００２６】
アーム１２２は、複数の関節を備えるリンク機構であり、その基部は関節によってロボット１００の本体に対して揺動可能となっている。アーム１２２は、その先端に把持部（図示されない）を備えている。アーム１２２の把持部は、それぞれが複数の関節を備える指部材を備えている。ロボット１００は、アーム１２２の各関節をアクチュエータ１１６によって回転させることで、ロボット１００の本体に対してアーム１２２の先端の把持部を所望の移動経路に沿って移動させることができる。アーム１２２の先端の移動経路は、把持部に対して固定された基準点の位置の変化として与えられる。またロボット１００は、アーム１２２の先端の把持部の指部材の各関節をアクチュエータ１１６によって回転させることで、アーム１２２の先端の把持部で目標物を把持することができる。
【００２７】
アーム制御部１１２は、アクチュエータ１１６の駆動を制御する。アーム制御部１１２は、主制御部１１０からアーム１２２の各関節の関節角の時系列データが入力されると、その関節角の時系列データに従って、アクチュエータ１１６を駆動する。
【００２８】
カメラ１０２とカメラ１０４は、一般的なＣＣＤカメラである。カメラ１０２とカメラ１０４は、ロボット１００の本体に、左右に並んで搭載されている。カメラ１０２およびカメラ１０４は、所定の時間間隔で撮影を行う。カメラ１０２およびカメラ１０４で撮影された画像は、画像処理部１０６へ送信される。
【００２９】
画像処理部１０６は、カメラ１０２とカメラ１０４が同時刻に撮影した画像から、ステレオ視の原理によって、ロボット１００から周囲の環境までの距離を計測する。周囲の環境までの距離は、ロボット１００の本体に設けられている基準点からの距離として算出される。本実施例では、ロボット１００の基準点はロボット１００の本体に対して固定されている。また画像処理部１０６は、カメラ１０２とカメラ１０４で撮影された画像から、目標物の位置と形状、およびアーム１２２の位置と形状を認識する。画像処理部１０６は、カメラ１０２およびカメラ１０４で撮影された画像を表現するデータと、それらの画像に基づいて計測された周囲の環境までの距離のデータと、目標物の位置と形状のデータと、アーム１２２の位置と形状のデータを、主制御部１１０へ送信する。
【００３０】
位置計測部１０８は、ロボット１００の現在の位置を計測する。ロボット１００の現在の位置の計測は、例えばＧＰＳ受信機を利用する既知の技術を用いて行うことができる。位置計測部１０８は計測されたロボット１００の現在の位置を主制御部１１０へ送信する。
【００３１】
主制御部１１０は、位置計測部１０８から入力されるロボット１００の現在の位置に基づいて、ロボット１００の誘導に利用する環境マップ（グローバルマップ）を更新して、ロボット１００の移動経路を更新する。
【００３２】
図２は主制御部１１０がロボット１００の本体の誘導に利用するグローバルマップ２００を例示している。グローバルマップ２００は、ロボット１００が移動する環境を上方から平面視したものである。図２に示すように、グローバルマップ２００は複数のグリッドの集合（メッシュ）として表現されている。グローバルマップ２００の１つのグリッドは、ロボット１００のサイズと同程度のサイズの領域を表現している。それぞれのグリッドには、そのグリッドの属性が付されており、グリッドの属性を参照することによって、障害物が含まれているグリッドなのか、目標物が含まれているグリッドなのか、ロボット１００が含まれているグリッドなのか、あるいはそれ以外のグリッドなのかを判別することができる。本実施例では、ロボット１００の現在の位置２０２に関する情報を除いて、グローバルマップ２００は予め設定されて主制御部１１０に記憶されている。主制御部１１０は、ロボット１００の現在の位置が新たに入力されるたびに、ロボット１００の現在の位置をグローバルマップ２００に反映する。
【００３３】
主制御部１１０は、ロボット１００の現在の位置が反映されたグローバルマップ２００に基づいて、ロボット１００の移動経路を生成する。主制御部１１０は、ロボット１００の現在の位置２０２を始点とし、目標物の位置２０４に近接する位置２０６を到達目標点として、ロボット１００の移動経路２０８を生成する。グローバルマップ２００に基づくロボット１００の移動経路２０８の生成は、例えばＲＲＴ（Rapidly-exploring Random Tree）法といった種々の従来技術を用いて行うことができる。ロボット１００の移動経路２０８は、図２に示すように、グローバルマップ２００のグリッドの中心間を接続する線分の連鎖として生成される。
【００３４】
ロボット１００の移動経路が生成されると、主制御部１１０はその移動経路に沿ってロボット１００を移動させるための右車輪１２４と左車輪１２６の回転角の時系列データを生成する。生成された右車輪１２４と左車輪１２６の回転角の時系列データは、車輪制御部１１４に出力される。車輪制御部１１４は、入力された右車輪１２４と左車輪１２６の回転角の時系列データに基づいて、モータ１１８およびモータ１２０を駆動して、右車輪１２４および左車輪１２６を回転させる。これによって、ロボット１００は生成された移動経路に沿って移動を行う。
【００３５】
ロボット１００が目標物の近傍へ向けて移動している間は、アーム１２２を動作させる必要はない。そこで、本実施例のロボット１００では、ロボット１００の本体が目標物に向けて移動している間は、アーム１２２の誘導に利用する環境マップ（ローカルマップ）は生成されない。ローカルマップの生成のために時間を要してロボット１００の移動が遅れてしまうことがない。
【００３６】
ロボット１００が目標物の近傍まで到達すると、主制御部１１０は、画像処理部１０６から入力される周囲の環境までの距離の情報に基づいて、ローカルマップの生成を行う。
【００３７】
図３の（Ａ）は、カメラ１０２およびカメラ１０４の一方（例えばカメラ１０２）で撮影される画像を例示している。図３の（Ａ）では、置き台３０４の上に載置された目標物３０２と、障害物となる壁３０８、壁３１０および箱３０６が画像に写っている。図３の（Ｂ）は、カメラ１０２およびカメラ１０４によって撮影された画像に基づいて推定される周囲の環境の形状を上方から見た平面図である。図３の（Ｂ）では、カメラ１０２およびカメラ１０４によって撮影された画像からは認識することができない領域を斜線で表現している。図３の（Ｂ）に示すように、壁３０８、壁３１０および箱３０６といった障害物の背後に隠れている領域や、目標物３０２の背後に隠れている領域は、カメラ１０２およびカメラ１０４によって撮影される画像に写らないため、認識することができない。従って、このような領域については、アーム１２２が障害物と干渉することなく移動することが可能な領域なのか、あるいはアーム１２２が障害物と干渉してしまう領域なのか、判断することはできない。本実施例のロボット１００では、アーム１２２の先端の移動経路を計画する際には、このような領域についても障害物が存在する領域として扱う。
【００３８】
図４は主制御部１１０が周囲の環境までの距離の情報に基づいて、ローカルマップを生成する様子を示している。図４では図示の簡略化のためにローカルマップを２次元的に表現しているが、実際には主制御部１１０はローカルマップを３次元的に生成する。ローカルマップを生成する際には、まず図４の（Ａ）に示すように、周囲の環境までの距離の情報に基づいて、周囲の環境の形状を認識して、認識された周囲の環境を複数のグリッドにメッシュ分割する。それぞれのグリッドには、そのグリッドの属性が付されており、グリッドの属性を参照することによって、障害物が含まれているグリッドなのか、目標物が含まれているグリッドなのか、アーム１２２が含まれているグリッドなのか、あるいはそれ以外のグリッドなのかを判別することができる。図４の（Ａ）に示すように、ローカルマップにおいてはグリッドのサイズが場所によって異なり、目標物が含まれるグリッドと同じ行のグリッドと、目標物が含まれるグリッドと同じ列のグリッドは、小さなサイズに分割されている。本実施例のロボット１００では、目標物が含まれるグリッドのサイズは、アーム１２２の先端の把持部と同程度のサイズとされている。グリッドのサイズは、目標物から離れるにつれて大きなサイズとなるように調整されている。
【００３９】
ローカルマップ４０２は、アーム１２２の先端を目標物３０２へ誘導する目的で利用されるから、アーム１２２の先端の現在の位置から目標物３０２の位置までの領域についての情報のみが含まれていればよい。従って、アーム１２２の先端から見て目標物３０２よりも遠方にある領域や、アーム１２２の先端から見て目標物３０２とは異なる方向にある領域については、ローカルマップとして情報を保持しておく必要がない。そこで、本実施例のロボット１００では、認識された環境をグリッドに分割した後に、図４の（Ａ）の点線で囲む領域４０４に含まれるグリッドをローカルマップ４０２から削除する。これによって、図４の（Ｂ）に示すようなローカルマップ４０６が生成される。
【００４０】
主制御部１１０は、上記のように生成されたローカルマップ４０６に基づいて、ロボット１００のアーム１２２の先端の移動経路を生成する。主制御部１１０は、アーム１２２の先端の現在の位置４１２を始点とし、目標物に近接する位置４１６を到達目標点として、アーム１２２の先端の移動経路４１８を生成する。ローカルマップ４０６に基づくアーム１２２の先端の移動経路の生成は、例えばＲＲＴ（Rapidly-exploring Random Tree）法といった種々の従来技術を用いて行うことができる。アーム１２２の先端の移動経路は、図４の（Ｂ）に示すように、ローカルマップ４０６のグリッドの中心間を接続する線分の連鎖として生成される。
【００４１】
アーム１２２の先端の移動経路が生成されると、主制御部１１０はその移動経路に沿ってアーム１２２の先端を移動させるための、アーム１２２の各関節の関節角の時系列データを生成する。本実施例では、主制御部１１０は逆キネマティクス演算を行うことによって、アーム１２２の各関節の関節角の時系列データを生成する。生成された各関節の関節角の時系列データは、アーム制御部１１２に出力される。アーム制御部１１２は、入力された各関節の関節角の時系列データに基づいて、アクチュエータ１１６を駆動する。これによって、アーム１２２の先端は、生成された移動経路に沿って移動する。
【００４２】
アーム１２２の先端が目標物に向けて移動している間も、本実施例のロボット１００は実時間でローカルマップの更新を繰り返し行う。図６に、ローカルマップを実時間で更新していく様子を示している。アーム１２２の先端を目標物に向けて移動している際にも、図６の（Ａ）に示すように、周囲の環境までの距離の情報に基づいて、周囲の環境の形状を認識して、認識された周囲の環境の形状からローカルマップ６０２を生成する。そして、ローカルマップとして情報を保持しておく必要がない、アーム１２２の先端から見て目標物とは異なる方向にある領域６０４については、生成されたローカルマップ６０２から削除する。これによって、図６の（Ｂ）に示すようにローカルマップ６０６が生成される。なお、ローカルマップ６０６においては、アーム１２２が占有する領域については削除されない。ローカルマップ６０６が新たに生成されると、アームの先端の位置６１２から目標物の近傍の位置６１６に向けた移動経路６１８が新たに生成される。
【００４３】
アーム１２２の先端を目標物へ向けて移動させている間に、図５の（Ａ）に示すように、カメラ１０２およびカメラ１０４で撮影される画像に、アーム１２２が写りこむことがある。アーム１２２が写りこんだ画像をそのまま用いて周囲の環境までの距離のデータを計測してしまうと、アーム１２２が環境の一部として扱われてしまう。また、図５の（Ｂ）に示すように、アーム１２２の向こう側に隠れてしまった環境については、その様子を画像からは認識することができない。従って、アーム１２２が写りこんだ画像に基づいてローカルマップを生成すると、アーム１２２が環境の一部として扱われてしまい、アーム１２２の先端の移動経路を適切に計画することができない。
【００４４】
本実施例のロボット１００では、主制御部１１０は画像処理部１０６から入力される周囲の環境までの距離のデータの経時的な変化に着目して、アーム１２２が写りこんだことによる環境の誤認識を防止する。主制御部１１０は、周囲の環境までの距離のデータが新たに入力されると、その直前に入力されていた周囲の環境までの距離のデータと比較を行い、距離の変化が所定のしきい値を越えている部分を特定する。主制御部１１０は、距離の変化が所定のしきい値を越えている部分については、目標物に向かってその先端を移動させているアーム１２２であると判断する。
【００４５】
画像からアーム１２２が抽出されると、主制御部１１０は、そのアーム１２２によって隠されている領域（アーム遮蔽領域）を特定する。アーム遮蔽領域は、カメラ１０２およびカメラ１０４の位置と、画像においてアーム１２２が占める領域に基づいて、幾何学的に算出される。主制御部１１０は、ローカルマップを更新する際に、上記によって特定されるアーム遮蔽領域に関しては、以前のローカルマップの情報を更新することなく、そのまま流用する。これによって、カメラ１０２および１０４で撮影される画像にアーム１２２が写りこんだ場合でも、環境の誤認識を起こすことがない。
【００４６】
アーム１２２の先端が目標物まで到達すると、主制御部１１０はアーム１２２の先端の把持部に把持動作を行わせる。これによって、ロボット１００は目標物を把持することができる。
【００４７】
本実施例のロボット１００では、アーム１２２が目標物に向けて移動している間も、アーム１２２の移動経路は実時間で更新されていく。従って、アーム１２２を誘導している際に何らかの外乱がロボット１００やアーム１２２に作用した場合でも、アーム１２２の先端を目標物に向けて確実に誘導することができる。
【００４８】
本実施例のロボット１００では、ローカルマップの分解能を、目標物から近い領域では細かい分解能とし、目標物から遠い領域では粗い分解能としている。これによって、ローカルマップのデータ量を低減して、主制御部１１０における処理量を軽減することができる。
【００４９】
図７は本実施例のロボット１００において、目標物へ向けてアームを誘導する処理を説明するフローチャートである。
ステップＳ７０２では、カメラ１０２およびカメラ１０４を用いて、周囲の環境を撮影する。
ステップＳ７０４では、カメラ１０２およびカメラ１０４によって撮影された画像から、ステレオ視の原理によって、被写体までの距離を計測する。
ステップＳ７０６では、カメラ１０２およびカメラ１０４によって撮影された画像から、目標物を抽出して、その目標物の位置と形状を特定する。画像における目標物の抽出は、例えば公知のパターンマッチングの手法によって行うことができる。画像における被写体までの距離はステップＳ７０４で計測されているから、画像から目標物を抽出することによって、その目標物の位置と形状を算出することができる。
ステップＳ７０８では、ステップＳ７０４で計測された被写体までの距離の経時的な変化から、アーム１２２の位置と姿勢を特定する。
ステップＳ７１０では、特定されたアーム１２２の位置と姿勢に基づいて、アーム遮蔽領域を特定する。
ステップＳ７１２では、ローカルマップを更新する。
ステップＳ７１４では、更新されたローカルマップに基づいて、アーム１２２の先端の移動経路を計画する。
ステップＳ７１６では、計画された移動経路に従って、アーム１２２を駆動する。
ステップＳ７１８では、アーム１２２の先端が目標物まで到達したか否かを判断する。アーム１２２の先端が目標物まで到達した場合（ステップＳ７１８でＹＥＳの場合）、アーム１２２の誘導処理を終了する。アーム１２２の先端が目標物まで到達していない場合（ステップＳ７１８でＮＯの場合）、ステップＳ７０２からステップＳ７１６までの一連の処理を繰り返し実行する。
【００５０】
以上のように、本実施例のロボット１００は、移動可能な本体と、その本体に移動可能に連結されているアーム１２２を備えており、そのアーム１２２を目標物に向けて誘導可能な移動体である。ロボット１００は、目標物の位置を取得する目標物位置取得手段（カメラ１０２、カメラ１０４および画像処理部１０６）と、本体の位置を計測する本体位置計測手段（位置計測部１０８）と、取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新手段（主制御部１１０）と、更新したグローバルマップを記憶するグローバルマップ記憶手段（主制御部１１０）と、記憶したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成手段（主制御部１１０）と、生成した本体の移動経路に従って本体を移動する移動手段（主制御部１１０、車輪制御部１１４、モータ１１８、モータ１２０、右車輪１２４、左車輪１２６）と、本体から周囲の環境までの距離を計測する距離計測手段（カメラ１０２、カメラ１０４および画像処理部１０６）と、計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識手段（主制御部１１０）と、アームの位置を取得するアーム位置取得手段（カメラ１０２、カメラ１０４および画像処理部１０６）と、認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新手段（主制御部１１０）と、更新したローカルマップを記憶するローカルマップ記憶手段（主制御部１１０）と、記憶したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成手段（主制御部１１０）と、生成したアームの移動経路に従ってアームを駆動するアーム駆動手段（主制御部１１０、アーム制御部１１２、アクチュエータ１１６、アーム１２２）を備えている。
【００５１】
本実施例のロボット１００は、取得したアーム１２２の位置に基づいて、アーム１２２によって距離計測手段（カメラ１０２、カメラ１０４および画像処理部１０６）から遮蔽される領域（アーム遮蔽領域）の範囲を決定する遮蔽領域決定手段（主制御部１１０）をさらに備えており、前記環境認識手段（主制御部１１０）が、計測した周囲の環境までの距離から、アーム遮蔽領域を除く周囲の環境の形状を認識し、前記ローカルマップ更新手段（主制御部１１０）が、アーム遮蔽領域を除く周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新する。
【００５２】
本実施例のロボット１００では、前記ローカルマップ更新手段（主制御部１１０）が、ローカルマップを更新する際に、アームから見て目標物よりも遠方に位置する部分をローカルマップから除去する。
【００５３】
本実施例のロボット１００では、前記ローカルマップが、目標物に近い部分ほど細かい分解能でメッシュ分割されている。
【００５４】
なお、上記の実施例では、ロボット１００が右車輪１２４と左車輪１２６と補助輪を備えており、右車輪１２４と左車輪１２６の回転を制御することによってロボット１００の本体を移動する例を説明した。ロボット１００の本体を移動する手段はこれに限られない。例えば、補助輪を用いることなく、ロボット１００を倒立二輪制御して、右車輪１２４と左車輪１２６の回転によって移動させてもよい。この場合でも、ロボット１００は転倒することなく移動することができる。あるいは、これらの車輪を用いる代わりに、一対の脚リンクをロボット１００の本体下部に設けて、それらの脚リンクを交互に振り出して接地させる動作を繰り返すことによって歩行するように、ロボット１００を制御してもよい。
【００５５】
上記の実施例では、位置計測部１０８がＧＰＳ受信機を利用してロボット１００の現在の位置を計測する例を説明した。ロボット１００の現在の位置を計測する手法はこれに限らない。例えば、ロボット１００が移動可能な環境全体にわたって環境の形状が既知である場合には、カメラ１０２およびカメラ１０４によって撮影される画像から、現在のロボット１００の周囲の環境の形状を認識して、既知である環境の形状とのマッチングを行うことによって、ロボット１００の現在の位置を計測することもできる。
【００５６】
上記の実施例では、画像から計測される距離の経時的な変化に着目して、アーム遮蔽領域を特定する例を説明した。アーム遮蔽領域を特定する手法はこれに限らず、例えば、アーム１２２の彩色を環境中には存在しないものとしておいて、カメラ１０２およびカメラ１０４で撮影される画像においてアーム１２２の色を検出することで、アーム遮蔽領域を特定することもできる。
【００５７】
上記の実施例では、周囲の環境までの距離を計測する際に、２台のカメラ１０２、１０４を利用したステレオ視によって距離を計測する例を説明した。周囲の環境までの距離を計測する手法はこれに限らず、例えばレーザースキャナを用いた３次元計測によって、周囲の環境までの距離を計測してもよい。
【００５８】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時の請求項に記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００５９】
【図１】図１はロボット１００の構成を概略的に示す図である。
【図２】図２はロボット１００の誘導に利用されるグローバルマップ２００を例示する図である。
【図３】図３の（Ａ）はカメラ１０２またはカメラ１０４によって撮影される画像を例示する図である。図３の（Ｂ）はカメラ１０２およびカメラ１０４によって撮影された画像に基づいて推定される周囲の環境の形状を上方から見た平面図である。
【図４】図４の（Ａ）は周囲の環境の形状に基づいて生成されたローカルマップ４０２を例示する図である。図４の（Ｂ）はローカルマップ４０２について不要な部分を削除した後のローカルマップ４０６を例示する図である。
【図５】図５の（Ａ）はカメラ１０２またはカメラ１０４によって撮影される画像において、アーム１２２が写りこんでいる場合を例示する図である。図５の（Ｂ）はカメラ１０２およびカメラ１０４によって撮影された画像にアーム１２２が写りこんでいる場合の、それらの画像に基づいて推定される周囲の環境の形状を上方から見た平面図である。
【図６】図６の（Ａ）は周囲の環境の形状に基づいて生成されたローカルマップ６０２を例示する図である。図６の（Ｂ）はローカルマップ６０２について不要な部分を削除した後のローカルマップ６０６を例示する図である。
【図７】図７はロボット１００がアーム１２２の先端を目標物へ向けて誘導する処理を説明するフローチャートである。
【符号の説明】
【００６０】
１００：ロボット
１０２、１０４：カメラ
１０６：画像処理部
１０８：位置計測部
１１０：主制御部
１１２：アーム制御部
１１４：車輪制御部
１１６：アクチュエータ
１１８、１２０：モータ
１２２：アーム
１２４：右車輪
１２６：左車輪
２００：グローバルマップ
２０２：現在の位置
２０４：目標物の位置
２０６：目標物の位置に近接する位置
２０８：ロボットの移動経路
３０２：目標物
３０４：置き台
３０６：箱
３０８、３１０：壁
４０２、４０６、６０２、６０６：ローカルマップ
４０４、６０４：削除される領域
４１２、６１２：アームの先端の位置
４１６、６１６：目標物の近傍の位置
４１８、６１８：アームの先端の移動経路
５０４：遮蔽された領域
【図１】
2008023630.tif 000003
【図２】
2008023630.tif 000004
【図３】
2008023630.tif 000005
【図４】
2008023630.tif 000006
【図５】
2008023630.tif 000007
【図６】
2008023630.tif 000008
【図７】
2008023630.tif 000009