トップ :: B 処理操作 運輸 :: B25 手工具;可搬型動力工具;手工具用の柄;作業場設備;マニプレ−タ

【発明の名称】 アームを誘導可能な移動体およびアームを誘導する方法
【発明者】 【氏名】李 海妍

【氏名】中島 裕一朗

【氏名】野村 秀樹

【要約】 【課題】移動する本体とその本体に移動可能となっているアームの両者を目標物へ誘導する際に、必要以上に大きなデータを扱う必要がなく、アームを適切な経路で目標物へ誘導することが可能な技術を提供する。

【構成】本発明の移動体は、移動可能な本体と、本体に移動可能に連結されたアームを備えており、そのアームを目標物へ誘導することができる。その移動体においては、本体の移動経路はグローバルマップに基づいて生成され、アームの移動経路はローカルマップに基づいて生成される。ローカルマップは、周囲の環境の形状とアームの位置に基づいて更新される。周囲の環境の形状は、移動体の本体から周囲の環境までの距離を計測することによって認識される。
【特許請求の範囲】
【請求項1】
移動可能な本体と、その本体に移動可能に連結されているアームを備えており、そのアームを目標物に向けて誘導可能な移動体であって、
目標物の位置を取得する目標物位置取得手段と、
本体の位置を計測する本体位置計測手段と、
取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新手段と、
更新したグローバルマップを記憶するグローバルマップ記憶手段と、
記憶したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成手段と、
生成した本体の移動経路に従って本体を移動する移動手段と、
本体から周囲の環境までの距離を計測する距離計測手段と、
計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識手段と、
アームの位置を取得するアーム位置取得手段と、
認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新手段と、
更新したローカルマップを記憶するローカルマップ記憶手段と、
記憶したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成手段と、
生成したアームの移動経路に従ってアームを駆動するアーム駆動手段と、
を備えている移動体。
【請求項2】
取得したアームの位置に基づいて、アームによって距離計測手段から遮蔽される領域(アーム遮蔽領域)の範囲を決定する遮蔽領域決定手段をさらに備えており、
前記環境認識手段が、計測した周囲の環境までの距離から、アーム遮蔽領域を除く周囲の環境の形状を認識し、
前記ローカルマップ更新手段が、アーム遮蔽領域を除く周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新することを特徴とする請求項1の移動体。
【請求項3】
前記ローカルマップ更新手段が、ローカルマップを更新する際に、アームから見て目標物よりも遠方に位置する部分をローカルマップから除去することを特徴とする請求項2の移動体。
【請求項4】
前記ローカルマップが、目標物に近い部分ほど細かい分解能でメッシュ分割されていることを特徴とする請求項3の移動体。
【請求項5】
移動可能な本体に移動可能に連結されているアームを目標物へ向けて誘導する方法であって、
目標物の位置を取得する目標物位置取得工程と、
本体の位置を計測する本体位置計測工程と、
取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新工程と、
更新したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成工程と、
生成した本体の移動経路に従って本体を移動する本体移動工程と、
本体から周囲の環境までの距離を計測する距離計測工程と、
計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識工程と、
アームの位置を取得するアーム位置取得工程と、
認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新工程と、
更新したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成工程と、
生成したアームの移動経路に従ってアームを駆動するアーム駆動工程と、
を備えている方法。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、移動可能な本体に移動可能に連結されたアームを誘導する技術に関する。特に、本体とアームの両方の移動を制御して、アームを目標物に向けて誘導する技術に関する。
【背景技術】
【0002】
現在、家庭やオフィスなどで人間の代わりに作業したり、人間が行う作業の補助をすることを目的としたパートナーロボットの開発が盛んに行われている。このようなロボットでは、人間と同じ様に、種々の動作を行うことが期待されている。例えば、人間の代わりに荷物を搬送する動作をロボットが行う場合、まずロボット本体がその荷物の近傍まで移動し、次いでロボット本体に搭載されているアームをその荷物まで移動し、その後にアームに設けられている把持部によってその荷物を把持し、荷物を把持した状態でロボット本体を移動する。このような動作を実現するためには、ロボット本体と、ロボット本体に移動可能に搭載されているアームを目標物まで誘導する技術が必要とされる。
【0003】
従来から、周囲の環境を記述する地図データ(マップ)を利用してロボット等の移動体を目標物へ向けて誘導する技術が開発されている。
特許文献1には、予め設定された出発点と到達目標点と、出発点から到達目標点に至る経路の周囲に存在する環境を記述する地図を利用してロボットの移動経路を計画する技術が開示されている。
特許文献2には、ロボットの周囲の環境を観測した結果から障害物情報と現在位置情報と目的位置情報を取得し、取得した障害物情報と現在位置情報と目的位置情報から障害物地図を作成し、作成した障害物地図に基づいてロボットの移動経路を計画する技術が開示されている。
特許文献3には、周囲の環境を記述する地図に基づいて移動経路を計画するロボットにおいて、ロボットの差分移動量が地図のグリッドの大きさよりも大きいときに地図を更新する技術が開示されている。
【0004】
【特許文献1】特開平11−249734号公報
【特許文献2】特開2003−266345号公報
【特許文献3】特開2003−266349号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
一般に、移動体の本体を目標物へ誘導するために利用されるマップは、本体のサイズと同程度の分解能のものが用いられる。本体のサイズに比べて大きな分解能のマップを利用する場合、障害物が存在する範囲を大きめに評価してしまうため、障害物の周囲を大きく迂回する経路が生成されることになり、無駄の多い経路を生成してしまう。逆に、本体のサイズに比べて小さな分解能のマップを利用すると、必要以上に精密な経路を生成することになり、本体の誘導のために処理することが必要となるデータ量の増大を招く。移動体に搭載できる計算資源は限られているから、移動体を誘導する処理のために必要以上に大きなデータを扱うと、他の様々な処理の遅延を招いてしまう。従って、移動する本体を目標物へ誘導するためのマップは、本体のサイズと同程度の分解能を持つことが好ましい。
【0006】
本体を目標物へ向けて誘導するために利用されるマップを用いてアームを誘導すると、アームのサイズは本体のサイズに比べて小さいから、マップの分解能が粗すぎてアームの移動経路を適切に生成することができないという問題が生じる。
移動する本体の目標物への誘導と、その移動体に移動可能に搭載されているアームの目標物への誘導の両方を適切に行うことが可能な技術が待望されている。
【0007】
本発明は、上述した問題を解決するためのものであり、移動する本体とその本体に移動可能に連結されているアームの両者を目標物へ誘導する際に、必要以上に大きなデータを扱う必要がなく、アームを適切な経路で目標物へ誘導することが可能な技術を提供する。
【課題を解決するための手段】
【0008】
本発明は、移動可能な本体と、その本体に移動可能に連結されているアームを備えており、そのアームを目標物に向けて誘導可能な移動体として具現化される。その移動体は、目標物の位置を取得する目標物位置取得手段と、本体の位置を計測する本体位置計測手段と、取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新手段と、更新したグローバルマップを記憶するグローバルマップ記憶手段と、記憶したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成手段と、生成した本体の移動経路に従って本体を移動する移動手段と、本体から周囲の環境までの距離を計測する距離計測手段と、計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識手段と、アームの位置を取得するアーム位置取得手段と、認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新手段と、更新したローカルマップを記憶するローカルマップ記憶手段と、記憶したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成手段と、生成したアームの移動経路に従ってアームを駆動するアーム駆動手段を備えている。
【0009】
本明細書でグローバルマップとは、移動体の周囲の環境の形状を記述するマップであって、グリッド状にメッシュ分割されており、環境に対する目標物の位置と移動体の本体の位置がそれぞれ対応するグリッドに関連付けられたものをいう。
【0010】
本明細書でローカルマップとは、移動体の周囲の環境のうちで移動体の本体から目標物までアームを誘導する際に必要とされる領域のみについての形状を記述するマップであって、グリッド状にメッシュ分割されており、環境に対する目標物の位置とアームの位置が対応するグリッドにそれぞれ関連付けられたものをいう。
【0011】
上記の移動体では、目標物に向けて本体を移動し、本体が目標物に近接する位置まで到達すると、本体に搭載されているアームを目標物に向けて駆動する。本体を移動する際には、グローバルマップを用いて本体の移動経路を生成し、生成した本体の移動経路に従って本体を移動させる。アームを駆動する際には、ローカルマップを用いてアームの移動経路を生成し、生成したアームの移動経路に従ってアームを駆動する。
【0012】
上記の移動体では、本体の誘導に用いるマップ(グローバルマップ)と、アームの誘導に用いるマップ(ローカルマップ)を別個に用意している。この構成とすると、グローバルマップを本体の誘導に適した分解能(例えば本体のサイズと同程度の分解能)とし、ローカルマップをアームの誘導に適した分解能(例えばアームの先端部分のサイズと同程度の分解能)とすることができる。グローバルマップは本体の周囲に存在する環境の全体を記述するものである必要があるのに対し、ローカルマップはアームが到達可能な領域についてのみ用意すればよい。従って、ローカルマップの分解能を細かくしても、扱うべきデータ量はそれほど増加しない。従って、処理の負担をそれほど増大させることなく、アームの適切な移動経路を生成することができる。
また、ローカルマップはアームが到達可能な領域についてのみ用意すればよいため、アームを誘導している間に実時間でローカルマップを繰り返し更新しても、処理の負担をそれほど増大させることがない。アームを誘導する際に扱うデータ量を不要に増大させることなく、目標物に向けてアームを確実に誘導することができる。
【0013】
上記の移動体では、本体から周囲の環境までの距離を計測し、計測した距離から周囲の環境の形状を認識し、認識した形状に基づいてローカルマップを更新する。このような構成とすると、本体が移動したことによって環境内における本体の位置が変化した場合でも、移動後の本体の位置を基準としたローカルマップを生成することができる。
【0014】
上記の移動体は、取得したアームの位置に基づいて、アームによって距離計測手段から遮蔽される領域(アーム遮蔽領域)の範囲を決定する遮蔽領域決定手段をさらに備えていることが好ましい。この場合、環境認識手段が、計測した周囲の環境までの距離から、アーム遮蔽領域を除く周囲の環境の形状を認識し、ローカルマップ更新手段が、アーム遮蔽領域を除く周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新することが好ましい。
【0015】
距離計測手段によって周囲の環境までの距離を計測する際に、誤ってアームが環境の一部として扱われてしまうと、周囲の環境の形状を正確に認識することができず、アームの適切な移動経路を生成することができない。上記の移動体によれば、距離計測手段から見てアームの背後に隠れてしまったアーム遮蔽領域に関しては、環境認識手段は周囲の環境として認識せず、ローカルマップ更新手段はローカルマップを更新せずにそれまでのローカルマップを流用する。これによって、ローカルマップを生成する際に、誤ってアームを環境の一部として扱ってしまう事態の発生を防ぐことができる。
【0016】
上記の移動体では、ローカルマップ更新手段が、ローカルマップを更新する際に、アームから見て目標物より遠方に位置する部分をローカルマップから除去することが好ましい。
【0017】
アームから見て目標物より遠方にある領域については、アームを目標物に向けて誘導する際に、そこに障害物があるか否かを配慮する必要がない。従って、ローカルマップにおいてアームから見て目標物より遠方にある部分については、障害物が存在するか否かの情報を保持しておく必要がない。上記の移動体では、アームから見て目標物より遠方にある部分を、ローカルマップを更新する際にローカルマップから除去する。これによって、アームの誘導のために扱うべきデータ量をさらに低減することができる。
【0018】
上記の移動体においては、ローカルマップが目標物に近い部分ほど細かい分解能でメッシュ分割されていることが好ましい。
【0019】
目標物に向けてアームを誘導するに際して、アームが目標物から離れている間はそれほど正確な経路でアームを誘導する必要はなく、アームを目標物へ向けて近づけていくことができればよい。それに対して、アームが目標物に近づいた後ではアームを正確な経路で誘導する必要がある。上記の移動体によれば、アームを正確に誘導することが必要とされる目標物の近傍では、細かい分解能でメッシュ分割したローカルマップを計算し、それによってアームの精密な移動経路を生成する。また、アームを正確に誘導することがそれほど必要とされていない目標物から離れた領域では、粗い分解能でメッシュ分割したローカルマップを計算し、アームを誘導するために扱うデータ量を低減する。
【0020】
本発明は方法としても具現化される。本発明の方法は、移動可能な本体に移動可能に連結されているアームを目標物へ向けて誘導する方法である。その方法は、目標物の位置を取得する目標物位置取得工程と、本体の位置を計測する本体位置計測工程と、取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新工程と、更新したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成工程と、生成した本体の移動経路に従って本体を移動させる本体移動工程と、本体から周囲の環境までの距離を計測する距離計測工程と、計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識工程と、アームの位置を取得するアーム位置取得工程と、認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新工程と、更新したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成工程と、生成したアームの移動経路に従ってアームを駆動するアーム駆動工程を備えている。
【発明の効果】
【0021】
本発明によれば、移動する本体とその本体に移動可能に連結されているアームの両者を目標物へ誘導する際に、必要以上に大きなデータを扱う必要がなく、アームを適切な経路で目標物へ誘導することができる。
【発明を実施するための最良の形態】
【0022】
本発明の好適な実施形態を例示する。
(形態1)前記距離計測手段が、
本体の周囲の環境を撮影する2以上のカメラと、
それぞれのカメラで撮影された画像から、ステレオ視によって、本体から周囲の環境までの距離を計算する距離計算手段を備えている。
【実施例】
【0023】
本発明のロボットに係る実施例について、図面を参照しながら説明する。
図1に示すように、ロボット100は、カメラ102、104、画像処理部106、位置計測部108、主制御部110、アーム制御部112、車輪制御部114、アクチュエータ116、モータ118、120、アーム122、右車輪124、左車輪126を備えている。
【0024】
ロボット100の本体は、右車輪124、左車輪126および図示されない補助輪によって支持されており、右車輪124、左車輪126をそれぞれモータ118、モータ120によって回転させることによって、転倒することなく移動することができる。右車輪124はモータ118の駆動によって回転し、左車輪126はモータ120の駆動によって回転する。右車輪124と左車輪126は互いに独立して回転可能である。右車輪124と左車輪126の回転を制御することによって、ロボット100の本体は前進したり、後進したり、旋回したりすることができる。
【0025】
車輪制御部114は、モータ118およびモータ120の駆動を制御する。車輪制御部114は、主制御部110から右車輪124と左車輪126の回転角の時系列データが入力されると、その回転角の時系列データに従って、モータ118およびモータ120を駆動する。
【0026】
アーム122は、複数の関節を備えるリンク機構であり、その基部は関節によってロボット100の本体に対して揺動可能となっている。アーム122は、その先端に把持部(図示されない)を備えている。アーム122の把持部は、それぞれが複数の関節を備える指部材を備えている。ロボット100は、アーム122の各関節をアクチュエータ116によって回転させることで、ロボット100の本体に対してアーム122の先端の把持部を所望の移動経路に沿って移動させることができる。アーム122の先端の移動経路は、把持部に対して固定された基準点の位置の変化として与えられる。またロボット100は、アーム122の先端の把持部の指部材の各関節をアクチュエータ116によって回転させることで、アーム122の先端の把持部で目標物を把持することができる。
【0027】
アーム制御部112は、アクチュエータ116の駆動を制御する。アーム制御部112は、主制御部110からアーム122の各関節の関節角の時系列データが入力されると、その関節角の時系列データに従って、アクチュエータ116を駆動する。
【0028】
カメラ102とカメラ104は、一般的なCCDカメラである。カメラ102とカメラ104は、ロボット100の本体に、左右に並んで搭載されている。カメラ102およびカメラ104は、所定の時間間隔で撮影を行う。カメラ102およびカメラ104で撮影された画像は、画像処理部106へ送信される。
【0029】
画像処理部106は、カメラ102とカメラ104が同時刻に撮影した画像から、ステレオ視の原理によって、ロボット100から周囲の環境までの距離を計測する。周囲の環境までの距離は、ロボット100の本体に設けられている基準点からの距離として算出される。本実施例では、ロボット100の基準点はロボット100の本体に対して固定されている。また画像処理部106は、カメラ102とカメラ104で撮影された画像から、目標物の位置と形状、およびアーム122の位置と形状を認識する。画像処理部106は、カメラ102およびカメラ104で撮影された画像を表現するデータと、それらの画像に基づいて計測された周囲の環境までの距離のデータと、目標物の位置と形状のデータと、アーム122の位置と形状のデータを、主制御部110へ送信する。
【0030】
位置計測部108は、ロボット100の現在の位置を計測する。ロボット100の現在の位置の計測は、例えばGPS受信機を利用する既知の技術を用いて行うことができる。位置計測部108は計測されたロボット100の現在の位置を主制御部110へ送信する。
【0031】
主制御部110は、位置計測部108から入力されるロボット100の現在の位置に基づいて、ロボット100の誘導に利用する環境マップ(グローバルマップ)を更新して、ロボット100の移動経路を更新する。
【0032】
図2は主制御部110がロボット100の本体の誘導に利用するグローバルマップ200を例示している。グローバルマップ200は、ロボット100が移動する環境を上方から平面視したものである。図2に示すように、グローバルマップ200は複数のグリッドの集合(メッシュ)として表現されている。グローバルマップ200の1つのグリッドは、ロボット100のサイズと同程度のサイズの領域を表現している。それぞれのグリッドには、そのグリッドの属性が付されており、グリッドの属性を参照することによって、障害物が含まれているグリッドなのか、目標物が含まれているグリッドなのか、ロボット100が含まれているグリッドなのか、あるいはそれ以外のグリッドなのかを判別することができる。本実施例では、ロボット100の現在の位置202に関する情報を除いて、グローバルマップ200は予め設定されて主制御部110に記憶されている。主制御部110は、ロボット100の現在の位置が新たに入力されるたびに、ロボット100の現在の位置をグローバルマップ200に反映する。
【0033】
主制御部110は、ロボット100の現在の位置が反映されたグローバルマップ200に基づいて、ロボット100の移動経路を生成する。主制御部110は、ロボット100の現在の位置202を始点とし、目標物の位置204に近接する位置206を到達目標点として、ロボット100の移動経路208を生成する。グローバルマップ200に基づくロボット100の移動経路208の生成は、例えばRRT(Rapidly-exploring Random Tree)法といった種々の従来技術を用いて行うことができる。ロボット100の移動経路208は、図2に示すように、グローバルマップ200のグリッドの中心間を接続する線分の連鎖として生成される。
【0034】
ロボット100の移動経路が生成されると、主制御部110はその移動経路に沿ってロボット100を移動させるための右車輪124と左車輪126の回転角の時系列データを生成する。生成された右車輪124と左車輪126の回転角の時系列データは、車輪制御部114に出力される。車輪制御部114は、入力された右車輪124と左車輪126の回転角の時系列データに基づいて、モータ118およびモータ120を駆動して、右車輪124および左車輪126を回転させる。これによって、ロボット100は生成された移動経路に沿って移動を行う。
【0035】
ロボット100が目標物の近傍へ向けて移動している間は、アーム122を動作させる必要はない。そこで、本実施例のロボット100では、ロボット100の本体が目標物に向けて移動している間は、アーム122の誘導に利用する環境マップ(ローカルマップ)は生成されない。ローカルマップの生成のために時間を要してロボット100の移動が遅れてしまうことがない。
【0036】
ロボット100が目標物の近傍まで到達すると、主制御部110は、画像処理部106から入力される周囲の環境までの距離の情報に基づいて、ローカルマップの生成を行う。
【0037】
図3の(A)は、カメラ102およびカメラ104の一方(例えばカメラ102)で撮影される画像を例示している。図3の(A)では、置き台304の上に載置された目標物302と、障害物となる壁308、壁310および箱306が画像に写っている。図3の(B)は、カメラ102およびカメラ104によって撮影された画像に基づいて推定される周囲の環境の形状を上方から見た平面図である。図3の(B)では、カメラ102およびカメラ104によって撮影された画像からは認識することができない領域を斜線で表現している。図3の(B)に示すように、壁308、壁310および箱306といった障害物の背後に隠れている領域や、目標物302の背後に隠れている領域は、カメラ102およびカメラ104によって撮影される画像に写らないため、認識することができない。従って、このような領域については、アーム122が障害物と干渉することなく移動することが可能な領域なのか、あるいはアーム122が障害物と干渉してしまう領域なのか、判断することはできない。本実施例のロボット100では、アーム122の先端の移動経路を計画する際には、このような領域についても障害物が存在する領域として扱う。
【0038】
図4は主制御部110が周囲の環境までの距離の情報に基づいて、ローカルマップを生成する様子を示している。図4では図示の簡略化のためにローカルマップを2次元的に表現しているが、実際には主制御部110はローカルマップを3次元的に生成する。ローカルマップを生成する際には、まず図4の(A)に示すように、周囲の環境までの距離の情報に基づいて、周囲の環境の形状を認識して、認識された周囲の環境を複数のグリッドにメッシュ分割する。それぞれのグリッドには、そのグリッドの属性が付されており、グリッドの属性を参照することによって、障害物が含まれているグリッドなのか、目標物が含まれているグリッドなのか、アーム122が含まれているグリッドなのか、あるいはそれ以外のグリッドなのかを判別することができる。図4の(A)に示すように、ローカルマップにおいてはグリッドのサイズが場所によって異なり、目標物が含まれるグリッドと同じ行のグリッドと、目標物が含まれるグリッドと同じ列のグリッドは、小さなサイズに分割されている。本実施例のロボット100では、目標物が含まれるグリッドのサイズは、アーム122の先端の把持部と同程度のサイズとされている。グリッドのサイズは、目標物から離れるにつれて大きなサイズとなるように調整されている。
【0039】
ローカルマップ402は、アーム122の先端を目標物302へ誘導する目的で利用されるから、アーム122の先端の現在の位置から目標物302の位置までの領域についての情報のみが含まれていればよい。従って、アーム122の先端から見て目標物302よりも遠方にある領域や、アーム122の先端から見て目標物302とは異なる方向にある領域については、ローカルマップとして情報を保持しておく必要がない。そこで、本実施例のロボット100では、認識された環境をグリッドに分割した後に、図4の(A)の点線で囲む領域404に含まれるグリッドをローカルマップ402から削除する。これによって、図4の(B)に示すようなローカルマップ406が生成される。
【0040】
主制御部110は、上記のように生成されたローカルマップ406に基づいて、ロボット100のアーム122の先端の移動経路を生成する。主制御部110は、アーム122の先端の現在の位置412を始点とし、目標物に近接する位置416を到達目標点として、アーム122の先端の移動経路418を生成する。ローカルマップ406に基づくアーム122の先端の移動経路の生成は、例えばRRT(Rapidly-exploring Random Tree)法といった種々の従来技術を用いて行うことができる。アーム122の先端の移動経路は、図4の(B)に示すように、ローカルマップ406のグリッドの中心間を接続する線分の連鎖として生成される。
【0041】
アーム122の先端の移動経路が生成されると、主制御部110はその移動経路に沿ってアーム122の先端を移動させるための、アーム122の各関節の関節角の時系列データを生成する。本実施例では、主制御部110は逆キネマティクス演算を行うことによって、アーム122の各関節の関節角の時系列データを生成する。生成された各関節の関節角の時系列データは、アーム制御部112に出力される。アーム制御部112は、入力された各関節の関節角の時系列データに基づいて、アクチュエータ116を駆動する。これによって、アーム122の先端は、生成された移動経路に沿って移動する。
【0042】
アーム122の先端が目標物に向けて移動している間も、本実施例のロボット100は実時間でローカルマップの更新を繰り返し行う。図6に、ローカルマップを実時間で更新していく様子を示している。アーム122の先端を目標物に向けて移動している際にも、図6の(A)に示すように、周囲の環境までの距離の情報に基づいて、周囲の環境の形状を認識して、認識された周囲の環境の形状からローカルマップ602を生成する。そして、ローカルマップとして情報を保持しておく必要がない、アーム122の先端から見て目標物とは異なる方向にある領域604については、生成されたローカルマップ602から削除する。これによって、図6の(B)に示すようにローカルマップ606が生成される。なお、ローカルマップ606においては、アーム122が占有する領域については削除されない。ローカルマップ606が新たに生成されると、アームの先端の位置612から目標物の近傍の位置616に向けた移動経路618が新たに生成される。
【0043】
アーム122の先端を目標物へ向けて移動させている間に、図5の(A)に示すように、カメラ102およびカメラ104で撮影される画像に、アーム122が写りこむことがある。アーム122が写りこんだ画像をそのまま用いて周囲の環境までの距離のデータを計測してしまうと、アーム122が環境の一部として扱われてしまう。また、図5の(B)に示すように、アーム122の向こう側に隠れてしまった環境については、その様子を画像からは認識することができない。従って、アーム122が写りこんだ画像に基づいてローカルマップを生成すると、アーム122が環境の一部として扱われてしまい、アーム122の先端の移動経路を適切に計画することができない。
【0044】
本実施例のロボット100では、主制御部110は画像処理部106から入力される周囲の環境までの距離のデータの経時的な変化に着目して、アーム122が写りこんだことによる環境の誤認識を防止する。主制御部110は、周囲の環境までの距離のデータが新たに入力されると、その直前に入力されていた周囲の環境までの距離のデータと比較を行い、距離の変化が所定のしきい値を越えている部分を特定する。主制御部110は、距離の変化が所定のしきい値を越えている部分については、目標物に向かってその先端を移動させているアーム122であると判断する。
【0045】
画像からアーム122が抽出されると、主制御部110は、そのアーム122によって隠されている領域(アーム遮蔽領域)を特定する。アーム遮蔽領域は、カメラ102およびカメラ104の位置と、画像においてアーム122が占める領域に基づいて、幾何学的に算出される。主制御部110は、ローカルマップを更新する際に、上記によって特定されるアーム遮蔽領域に関しては、以前のローカルマップの情報を更新することなく、そのまま流用する。これによって、カメラ102および104で撮影される画像にアーム122が写りこんだ場合でも、環境の誤認識を起こすことがない。
【0046】
アーム122の先端が目標物まで到達すると、主制御部110はアーム122の先端の把持部に把持動作を行わせる。これによって、ロボット100は目標物を把持することができる。
【0047】
本実施例のロボット100では、アーム122が目標物に向けて移動している間も、アーム122の移動経路は実時間で更新されていく。従って、アーム122を誘導している際に何らかの外乱がロボット100やアーム122に作用した場合でも、アーム122の先端を目標物に向けて確実に誘導することができる。
【0048】
本実施例のロボット100では、ローカルマップの分解能を、目標物から近い領域では細かい分解能とし、目標物から遠い領域では粗い分解能としている。これによって、ローカルマップのデータ量を低減して、主制御部110における処理量を軽減することができる。
【0049】
図7は本実施例のロボット100において、目標物へ向けてアームを誘導する処理を説明するフローチャートである。
ステップS702では、カメラ102およびカメラ104を用いて、周囲の環境を撮影する。
ステップS704では、カメラ102およびカメラ104によって撮影された画像から、ステレオ視の原理によって、被写体までの距離を計測する。
ステップS706では、カメラ102およびカメラ104によって撮影された画像から、目標物を抽出して、その目標物の位置と形状を特定する。画像における目標物の抽出は、例えば公知のパターンマッチングの手法によって行うことができる。画像における被写体までの距離はステップS704で計測されているから、画像から目標物を抽出することによって、その目標物の位置と形状を算出することができる。
ステップS708では、ステップS704で計測された被写体までの距離の経時的な変化から、アーム122の位置と姿勢を特定する。
ステップS710では、特定されたアーム122の位置と姿勢に基づいて、アーム遮蔽領域を特定する。
ステップS712では、ローカルマップを更新する。
ステップS714では、更新されたローカルマップに基づいて、アーム122の先端の移動経路を計画する。
ステップS716では、計画された移動経路に従って、アーム122を駆動する。
ステップS718では、アーム122の先端が目標物まで到達したか否かを判断する。アーム122の先端が目標物まで到達した場合(ステップS718でYESの場合)、アーム122の誘導処理を終了する。アーム122の先端が目標物まで到達していない場合(ステップS718でNOの場合)、ステップS702からステップS716までの一連の処理を繰り返し実行する。
【0050】
以上のように、本実施例のロボット100は、移動可能な本体と、その本体に移動可能に連結されているアーム122を備えており、そのアーム122を目標物に向けて誘導可能な移動体である。ロボット100は、目標物の位置を取得する目標物位置取得手段(カメラ102、カメラ104および画像処理部106)と、本体の位置を計測する本体位置計測手段(位置計測部108)と、取得した目標物の位置と計測した本体の位置に基づいて、グローバルマップを更新するグローバルマップ更新手段(主制御部110)と、更新したグローバルマップを記憶するグローバルマップ記憶手段(主制御部110)と、記憶したグローバルマップに基づいて、本体の移動経路を生成する本体経路生成手段(主制御部110)と、生成した本体の移動経路に従って本体を移動する移動手段(主制御部110、車輪制御部114、モータ118、モータ120、右車輪124、左車輪126)と、本体から周囲の環境までの距離を計測する距離計測手段(カメラ102、カメラ104および画像処理部106)と、計測した周囲の環境までの距離から、周囲の環境の形状を認識する環境認識手段(主制御部110)と、アームの位置を取得するアーム位置取得手段(カメラ102、カメラ104および画像処理部106)と、認識した周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新するローカルマップ更新手段(主制御部110)と、更新したローカルマップを記憶するローカルマップ記憶手段(主制御部110)と、記憶したローカルマップに基づいて、アームの移動経路を生成するアーム経路生成手段(主制御部110)と、生成したアームの移動経路に従ってアームを駆動するアーム駆動手段(主制御部110、アーム制御部112、アクチュエータ116、アーム122)を備えている。
【0051】
本実施例のロボット100は、取得したアーム122の位置に基づいて、アーム122によって距離計測手段(カメラ102、カメラ104および画像処理部106)から遮蔽される領域(アーム遮蔽領域)の範囲を決定する遮蔽領域決定手段(主制御部110)をさらに備えており、前記環境認識手段(主制御部110)が、計測した周囲の環境までの距離から、アーム遮蔽領域を除く周囲の環境の形状を認識し、前記ローカルマップ更新手段(主制御部110)が、アーム遮蔽領域を除く周囲の環境の形状と取得したアームの位置に基づいて、ローカルマップを更新する。
【0052】
本実施例のロボット100では、前記ローカルマップ更新手段(主制御部110)が、ローカルマップを更新する際に、アームから見て目標物よりも遠方に位置する部分をローカルマップから除去する。
【0053】
本実施例のロボット100では、前記ローカルマップが、目標物に近い部分ほど細かい分解能でメッシュ分割されている。
【0054】
なお、上記の実施例では、ロボット100が右車輪124と左車輪126と補助輪を備えており、右車輪124と左車輪126の回転を制御することによってロボット100の本体を移動する例を説明した。ロボット100の本体を移動する手段はこれに限られない。例えば、補助輪を用いることなく、ロボット100を倒立二輪制御して、右車輪124と左車輪126の回転によって移動させてもよい。この場合でも、ロボット100は転倒することなく移動することができる。あるいは、これらの車輪を用いる代わりに、一対の脚リンクをロボット100の本体下部に設けて、それらの脚リンクを交互に振り出して接地させる動作を繰り返すことによって歩行するように、ロボット100を制御してもよい。
【0055】
上記の実施例では、位置計測部108がGPS受信機を利用してロボット100の現在の位置を計測する例を説明した。ロボット100の現在の位置を計測する手法はこれに限らない。例えば、ロボット100が移動可能な環境全体にわたって環境の形状が既知である場合には、カメラ102およびカメラ104によって撮影される画像から、現在のロボット100の周囲の環境の形状を認識して、既知である環境の形状とのマッチングを行うことによって、ロボット100の現在の位置を計測することもできる。
【0056】
上記の実施例では、画像から計測される距離の経時的な変化に着目して、アーム遮蔽領域を特定する例を説明した。アーム遮蔽領域を特定する手法はこれに限らず、例えば、アーム122の彩色を環境中には存在しないものとしておいて、カメラ102およびカメラ104で撮影される画像においてアーム122の色を検出することで、アーム遮蔽領域を特定することもできる。
【0057】
上記の実施例では、周囲の環境までの距離を計測する際に、2台のカメラ102、104を利用したステレオ視によって距離を計測する例を説明した。周囲の環境までの距離を計測する手法はこれに限らず、例えばレーザースキャナを用いた3次元計測によって、周囲の環境までの距離を計測してもよい。
【0058】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時の請求項に記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【0059】
【図1】図1はロボット100の構成を概略的に示す図である。
【図2】図2はロボット100の誘導に利用されるグローバルマップ200を例示する図である。
【図3】図3の(A)はカメラ102またはカメラ104によって撮影される画像を例示する図である。図3の(B)はカメラ102およびカメラ104によって撮影された画像に基づいて推定される周囲の環境の形状を上方から見た平面図である。
【図4】図4の(A)は周囲の環境の形状に基づいて生成されたローカルマップ402を例示する図である。図4の(B)はローカルマップ402について不要な部分を削除した後のローカルマップ406を例示する図である。
【図5】図5の(A)はカメラ102またはカメラ104によって撮影される画像において、アーム122が写りこんでいる場合を例示する図である。図5の(B)はカメラ102およびカメラ104によって撮影された画像にアーム122が写りこんでいる場合の、それらの画像に基づいて推定される周囲の環境の形状を上方から見た平面図である。
【図6】図6の(A)は周囲の環境の形状に基づいて生成されたローカルマップ602を例示する図である。図6の(B)はローカルマップ602について不要な部分を削除した後のローカルマップ606を例示する図である。
【図7】図7はロボット100がアーム122の先端を目標物へ向けて誘導する処理を説明するフローチャートである。
【符号の説明】
【0060】
100:ロボット
102、104:カメラ
106:画像処理部
108:位置計測部
110:主制御部
112:アーム制御部
114:車輪制御部
116:アクチュエータ
118、120:モータ
122:アーム
124:右車輪
126:左車輪
200:グローバルマップ
202:現在の位置
204:目標物の位置
206:目標物の位置に近接する位置
208:ロボットの移動経路
302:目標物
304:置き台
306:箱
308、310:壁
402、406、602、606:ローカルマップ
404、604:削除される領域
412、612:アームの先端の位置
416、616:目標物の近傍の位置
418、618:アームの先端の移動経路
504:遮蔽された領域
【出願人】 【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
【出願日】 平成18年7月19日(2006.7.19)
【代理人】 【識別番号】110000110
【氏名又は名称】特許業務法人快友国際特許事務所


【公開番号】 特開2008−23630(P2008−23630A)
【公開日】 平成20年2月7日(2008.2.7)
【出願番号】 特願2006−196912(P2006−196912)