(57)【特許請求の範囲】
【請求項１】
認識手段と、記憶手段と、ハンド部が設けられたアームと、を備え、周囲に障害物が存在する対象物に前記ハンド部を接近させるように前記アームの動きを制御するロボットの制御方法であって、
前記記憶手段には、オフセット量が予め格納されており、
前記認識手段により、前記対象物の位置情報と、前記障害物の固有の情報である障害物の形状情報と、を取得し、
前記障害物から当該障害物の形状に応じた方向に前記オフセット量だけ離れた位置の位置情報を、前記ハンド部が前記障害物を回避して前記対象物に向かうために経由する経路中継点の位置情報として決定することにより経路中継点の位置情報を生成し、生成した前記経路中継点の位置情報を前記記憶手段に格納し、
前記記憶手段から前記経路中継点の位置情報を取得し、
前記対象物の位置情報と前記経路中継点の位置情報とに基づいて、前記ハンド部が前記経路中継点を経由し、前記対象物に向かう軌道を算出し、
算出した前記軌道に基づいて、前記アームの動きを制御するロボットの制御方法。
【請求項２】
認識手段と、記憶手段と、ハンド部が設けられたアームと、を備え、周囲に障害物が存在する対象物に前記ハンド部を接近させるように前記アームの動きを制御するロボットの制御方法であって、
前記ハンド部の姿勢を制御することにより前記対象物を把持可能に構成され、
前記ハンド部が前記障害物を回避して前記対象物に向かうために経由する経路中継点の位置情報と、前記障害物の固有の情報である識別情報とが関連付けられて前記記憶手段に予め格納されており、
前記経路中継点における前記ハンド部の姿勢を決定する姿勢情報が前記記憶手段に予め格納されており、
前記認識手段により、前記対象物の位置情報と、前記障害物の識別情報と、を取得し、
前記記憶手段から前記障害物の前記識別情報に対応した前記経路中継点の位置情報を取得し、
前記対象物の位置情報と前記経路中継点の位置情報とに基づいて、前記ハンド部が前記経路中継点を経由し、前記対象物に向かう軌道を算出し、
算出した前記軌道に基づいて、前記アームの動きを制御し、
前記ハンド部が前記経路中継点を経由する際に、前記ハンド部の姿勢が前記姿勢情報に対応する姿勢となるように制御するロボットの制御方法。
【請求項３】
前記対象物の形状情報に基づいて、前記経路中継点における前記ハンド部の姿勢情報を調整する請求項２に記載のロボットの制御方法。
【請求項４】
前記経路中継点の位置情報と前記対象物の位置情報とに基づいて、前記経路中継点と前記対象物とが干渉するか否かを判定し、
前記経路中継点と前記対象物とが干渉する場合、前記障害物の形状に基づいて、前記経路中継点と前記対象物とが干渉せず、かつ、前記障害物を回避する軌道を算出できるように、前記経路中継点の位置情報を調整する請求項１〜３のいずれか一項に記載のロボットの制御方法。
【請求項５】
認識手段と、記憶手段と、ハンド部が設けられたアームと、を備え、周囲に障害物が存在する対象物に前記ハンド部を接近させるように前記アームの動きを制御するロボットの制御方法であって、
前記ハンド部が前記障害物を回避して前記対象物に向かうために経由する経路中継点の位置情報と、前記障害物の固有の情報である識別情報とが関連付けられて前記記憶手段に予め格納されており、
前記認識手段により、前記対象物の位置情報と、前記障害物の識別情報と、を取得し、
前記記憶手段から前記障害物の前記識別情報に対応した複数の前記経路中継点の位置情報を取得し、
前記障害物の前記識別情報に対応する複数の前記経路中継点のそれぞれと前記対象物との距離を算出し、
算出した前記距離に基づいて、複数の前記経路中継点のうち、一の前記経路中継点を選択し、
前記対象物の位置情報と前記経路中継点の位置情報とに基づいて、前記一の前記経路中継点を前記ハンド部が経由し、前記対象物に向かう軌道を算出し、
算出した前記軌道に基づいて、前記アームの動きを制御するロボットの制御方法。
【請求項６】
前記経路中継点と前記対象物との距離に加え、前記対象物の形状に基づいて、前記複数の前記経路中継点のうち、前記一の前記経路中継点を選択する請求項５に記載のロボットの制御方法。
【請求項７】
前記障害物の周囲に物体が存在する場合、
前記認識手段により、前記障害物の周囲の物体の位置情報を取得し、
選択した前記一の前記経路中継点の位置情報と、前記障害物の周囲の物体の位置情報とに基づいて、当該一の前記経路中継点と前記障害物の周囲の物体とが干渉するか否かを判定し、
当該一の前記経路中継点と前記障害物の周囲の物体とが干渉する場合、複数の前記経路中継点のうち、当該一の前記経路中継点とは異なる前記経路中継点を選択する請求項５または６に記載のロボットの制御方法。
【請求項８】
ハンド部が設けられたアームを備え、周囲に障害物が存在する対象物に前記ハンド部を接近させるように前記アームの動きを制御するロボットであって、
前記ハンド部は、前記ハンド部の姿勢を制御することにより前記対象物を把持可能に構成され、
前記対象物の位置情報と、前記障害物の識別情報と、を取得する認識手段と、
前記ハンド部が前記障害物を回避して前記対象物に向かうために経由する経路中継点の位置情報である軌道情報と、前記障害物の識別情報と、が関連付けられて予め格納され、前記経路中継点における前記ハンド部の姿勢を決定する姿勢情報が予め格納されている記憶手段と、
前記認識手段が取得した前記障害物の識別情報に基づいて、前記記憶手段から当該識別情報に対応する前記軌道情報を取得する軌道情報取得手段と、
前記ハンド部が前記対象物へ向かう軌道であって、前記軌道情報取得手段が取得した前記経路中継点を経由する軌道を算出する軌道算出手段と、
前記軌道算出手段が算出した軌道に基づいて、前記アームの動きを制御し、前記ハンド部が前記経路中継点を経由する際に、前記姿勢情報に基づいて、前記ハンド部の姿勢を制御するアーム制御手段と、
を備えるロボット。
【請求項９】
前記対象物の形状情報に基づいて、前記経路中継点における前記ハンド部の前記姿勢情報を調整する中継点姿勢調整手段をさらに備え、
前記アーム制御手段は、前記中継点姿勢調整手段が調整した前記姿勢情報に基づいて、前記ハンド部の姿勢を制御する請求項８に記載のロボット。
【請求項１０】
前記軌道情報取得手段が取得した前記経路中継点の位置情報と、前記対象物の位置情報とに基づいて、前記経路中継点と前記対象物とが干渉するか否かを判定する対象物干渉判定手段と、
前記軌道情報取得手段が取得した前記経路中継点の位置情報を調整する中継点位置調整手段と、をさらに備え、
前記中継点位置調整手段は、前記対象物干渉判定手段が前記経路中継点と前記対象物とが干渉すると判定した場合、前記経路中継点と前記対象物とが干渉せず、かつ、前記障害物を回避する前記軌道を算出できるように、前記経路中継点の位置情報を調整する請求項８または９に記載のロボット。
【請求項１１】
ハンド部が設けられたアームを備え、周囲に障害物が存在する対象物に前記ハンド部を接近させるように前記アームの動きを制御するロボットであって、
前記対象物の位置情報と、前記障害物の識別情報と、を取得する認識手段と、
前記ハンド部が前記障害物を回避して前記対象物に向かうために経由する経路中継点の位置情報と、前記障害物の識別情報と、が関連付けられて予め格納されている記憶手段と、
前記認識手段が取得した前記障害物の識別情報に基づいて、前記記憶手段から当該識別情報に対応する複数の前記経路中継点の位置情報を取得する軌道情報取得手段と、
前記障害物の前記識別情報に対応する複数の前記経路中継点のそれぞれと前記対象物との距離に基づいて、複数の前記経路中継点のうち、一の前記経路中継点を選択する経路中継点選択手段と、
前記一の前記経路中継点を経由して前記ハンド部が前記対象物へ向かう軌道を算出する軌道算出手段と、
前記軌道算出手段が算出した軌道に基づいて、前記アームの動きを制御するアーム制御手段と、
を備えるロボット。
【請求項１２】
前記経路中継点選択手段は、前記経路中継点と前記対象物との距離に加え、前記対象物の形状に基づいて、前記一の前記経路中継点を選択する請求項１１に記載のロボット。
【請求項１３】
前記障害物の周囲に物体が存在する場合、前記認識手段は、前記障害物の周囲の物体の位置情報を取得し、
前記経路中継点選択手段が選択した前記一の前記経路中継点の位置情報と、前記障害物の周囲の物体の位置情報とに基づいて、当該一の前記経路中継点と前記障害物とが干渉するか否かを判定する物体干渉判定手段をさらに備え、
前記経路中継点選択手段は、前記物体干渉判定手段が、当該一の前記経路中継点と前記障害物とが干渉すると判定した場合、複数の前記経路中継点のうち、当該一の前記経路中継点とは異なる前記経路中継点を選択する請求項１１または１２に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボット及びその制御方法に関し、特にアームを備えたロボット及びその制御方法に関する。
【背景技術】
【０００２】
物体を把持するロボットハンドを備えるロボットが知られている。このロボットは、ロボットハンドが把持対象物に向かう経路を計画して、その経路に沿うようにロボットハンドを制御する。ロボットと把持対象物との間に障害物が存在する場合、ロボットは、当該障害物を回避する経路を計画する。
【０００３】
特許文献１には、空間上に経路のスタートとゴールとを結ぶ直線の中点を求め、当該中点をロボットが経由する中継点の候補として経路を計画する技術が開示されている。中点と障害物とが干渉する場合、当該中点から所定の方向に新たな中継点の候補を複数生成する。そして、新たな中継点候補のうち、障害物との干渉がない中継点候補を探索する。障害物と干渉しない中継点候補が存在する場合、当該中継点候補を中継点として経路計画を行う。これにより、ロボットと障害物との干渉を回避する経路を計画できる。
【０００４】
特許文献２には、ロボットの作業空間上に所定の距離間隔で離散化された格子点を定義して、当該格子点を中継点として経路を計画する技術が開示されている。隣接格子点を結んで得られる経路のうち、作業空間上に存在する障害物と干渉しない経路をグラフ探索手法により探索する。これにより、ロボットと障害物との干渉を回避する経路を計画できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２０１１７号公報
【特許文献２】特開２０００−１８１５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の経路計画は、中継点候補全てについて障害物との干渉の有無を判定する必要がある。さらに、障害物との干渉がなくなるまで、中継点の候補を増やし続けなければならない。一方、特許文献２に記載の経路計画は、ロボットの作業空間全体に格子点を定義し、全経路を探索しなければならない。
【０００７】
つまり、特許文献１及び２に記載の経路計画においては、中継点候補及び経路の全てについて探索を行うため、経路計画の計算量が増大するという問題があった。
【０００８】
本発明はこのような問題を解決するためになされたものであり、経路計画の計算量を低減することができるロボット及びその制御方法を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明の第１の形態は、認識手段と、記憶手段と、ハンド部が設けられたアームと、を備え、周囲に障害物が存在する対象物に前記ハンド部を接近させるように前記アームの動きを制御するロボットの制御方法であって、前記認識手段により、前記対象物の位置情報と、前記障害物の固有の情報と、を取得し、前記障害物の固有の情報に対応して前記記憶手段に予め格納され、前記ハンド部が前記障害物を回避して前記対象物に向かう軌道に関する軌道情報を取得し、前記軌道情報に基づいて、前記アームの動きを制御するロボットの制御方法である。このような構成により、アームが通過し得る全中継点候補または全経路を探索する必要がないため、計算量の低減を図ることができる。
【００１０】
また、前記軌道情報は、前記ハンド部が前記障害物を回避して前記対象物に向かうために経由する経路中継点の位置情報であり、前記経路中継点の位置情報と、前記障害物の固有の情報である識別情報とは関連付けられて前記記憶手段に格納されており、前記記憶手段から前記障害物の前記識別情報に対応した前記経路中継点の位置情報を取得し、前記対象物の位置情報と前記経路中継点の位置情報とに基づいて、前記ハンド部が前記経路中継点を経由し、前記対象物に向かう軌道を算出し、算出した前記軌道に基づいて、前記アームの動きを制御するものであってもよい。これにより、予め記憶手段に格納された経路中継点を経由する経路のみを探索すればよいため、計算量を減らすことができる。
【００１１】
また、前記記憶手段には、オフセット量が予め格納されており、前記障害物固有の情報である障害物の形状情報と前記オフセット量とに基づいて、前記経路中継点の位置情報を生成し、生成した前記経路中継点の位置情報を前記記憶手段に格納するものであってもよい。これにより、記憶手段に予め複数の経路中継点の位置情報を格納しておく必要がないため、メモリコストを削減することができる。
【００１２】
また、前記経路中継点の位置情報の生成は、前記障害物から当該障害物の形状に応じた方向に前記オフセット量だけ離れた位置の位置情報を、前記経路中継点の位置情報として決定することにより行うものであってもよい。これにより、障害物の形状が認識できれば、機械的に経路中継点の位置情報を決定することができる。
【００１３】
また、前記ハンド部は、前記ハンド部の姿勢を制御することにより前記対象物を把持可能に構成され、前記記憶手段には、前記経路中継点における前記ハンド部の姿勢を決定する姿勢情報が予め格納されており、前記ハンド部が前記経路中継点を経由する際に、前記ハンド部の姿勢が前記姿勢情報に対応する姿勢となるように制御するものであってもよい。これにより、ロボットは把持動作に適した姿勢でハンド部を対象物に近づけることができる。
【００１４】
また、前記対象物の形状情報に基づいて、前記経路中継点における前記ハンド部の姿勢情報を調整するものであってもよい。対象物が予め予想された形状と異なる形状である場合であっても、ロボットは把持動作に適した姿勢でハンド部を対象物に近づけることができる。
【００１５】
また、前記経路中継点の位置情報と前記対象物の位置情報とに基づいて、前記経路中継点と前記対象物とが干渉するか否かを判定し、前記経路中継点と前記対象物とが干渉する場合、前記障害物の形状に基づいて、前記経路中継点と前記対象物とが干渉せず、かつ、前記障害物を回避する軌道を算出できるように、前記経路中継点の位置情報を調整するものであってもよい。これにより、対象物が予め予想された大きさよりも大きい場合であっても、経路中継点と対象物とが干渉することを回避できる。
【００１６】
また、前記障害物の前記識別情報に対応する前記経路中継点が複数存在する場合、それぞれの前記経路中継点と前記対象物との距離を算出し、算出した前記距離に基づいて、複数の前記経路中継点のうち、一の前記経路中継点を選択し、前記一の前記経路中継点を前記ハンド部が経由し、前記対象物に向かう前記軌道を算出するものであってもよい。これにより、距離が近い経路中継点を選択できるため、アームの動作距離のロスを減らすことができる。
【００１７】
また、前記経路中継点と前記対象物との距離に加え、前記対象物の形状に基づいて、前記複数の前記経路中継点のうち、前記一の前記経路中継点を選択するものであってもよい。これにより、対象物を把持するために、ハンド部の姿勢の大きな変更が必要な経路中継点を選択することを回避できる。そのため、把持動作にかかる時間を短縮できる。
【００１８】
また、前記障害物の周囲に物体が存在する場合、前記認識手段により、前記障害物の周囲の物体の位置情報を取得し、選択した前記一の前記経路中継点の位置情報と、前記障害物の周囲の物体の位置情報とに基づいて、当該一の前記経路中継点と前記障害物の周囲の物体とが干渉するか否かを判定し、当該一の前記経路中継点と前記障害物の周囲の物体とが干渉する場合、複数の前記経路中継点のうち、当該一の前記経路中継点とは異なる前記経路中継点を選択するものであてもよい。これにより、障害物の周囲の物体と経路中継点とが干渉することを回避することができる。
【００１９】
本発明の第２の態様は、ハンド部が設けられたアームを備え、周囲に障害物が存在する対象物に前記ハンド部を接近させるように前記アームの動きを制御するロボットであって、前記対象物の位置情報と、前記障害物の識別情報と、を取得する認識手段と、前記ハンド部が前記障害物を回避して前記対象物に向かう軌道に関する軌道情報と、前記障害物の識別情報と、が関連付けられて予め格納されている記憶手段と、前記認識手段が取得した前記障害物の識別情報に基づいて、前記記憶手段から当該識別情報に対応する前記軌道情報を取得する軌道情報取得手段と、前記軌道情報取得手段が取得した前記軌道情報に基づいて、前記アームの動きを制御するアーム制御手段と、を備えるロボットである。本態様にかかるロボットは、上記第１の態様にかかるロボットの制御方法と共通する技術的特徴を有するため、上記のロボットの制御方法と同一の作用、効果を奏する。
【発明の効果】
【００２０】
本発明により、経路計画の計算量を低減することができるロボット及びその制御方法を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１にかかるロボットを示す図である。
【図２】実施の形態１にかかるロボットの制御部のブロック図である。
【図３】実施の形態１にかかるロボットの把持動作のフローチャートである。
【図４】実施の形態１にかかる経路中継点の取得処理を説明するための図である。
【図５】実施の形態１にかかる経路中継点の調整処理のフローチャートである。
【図６】実施の形態１にかかる経路中継点の調整処理を説明するための図である。
【図７】実施の形態１にかかる経路中継点の調整処理を説明するための図である。
【図８】実施の形態１にかかる経路中継点の選択処理のフローチャートである。
【図９】実施の形態１にかかるアーム軌道の算出処理を説明するための図である。
【図１０】実施の形態２にかかるロボットの制御部のブロック図である。
【図１１】実施の形態２にかかるロボットの把持動作のフローチャートである。
【図１２】実施の形態２にかかる経路中継点の自動生成処理のフローチャートである。
【図１３】実施の形態２にかかる経路中継点の自動生成処理を説明するための図である。
【発明を実施するための形態】
【００２２】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかるロボット１を図１に示す。ロボット１は、ロボット本体１１、センサ１２、アーム１３、移動部１４を備える。以下の説明においては、ロボット１が、障害物９１の中に置かれた対象物９０を把持するための経路計画について説明する。なお、障害物９１は上面のみが開いている箱型の障害物である。
【００２３】
センサ１２は、例えば、レーザレンジセンサ、周波数センサ、カメラ等であり、ロボット１の頭部に設けられている。センサ１２は、ロボット１と周囲の物体との距離情報を取得する。
【００２４】
アーム１３は、関節１３１、アーム部材１３２、ハンド部１３３を有する。図１においては、２つのアーム部材１３２が、関節１３１を介して回転可能に接続されている。アーム１３の一端は、ロボット本体１１と連結されている。一方、アーム１３の他端には、ハンド部１３３が接続されている。ハンド部１３３は、図示しない関節を有する。当該関節に設けられたモータの駆動によりハンド部１３３の姿勢が制御される。ハンド部１３３は、姿勢の制御によって、物体を把持することができる。なお、移動部１４は、車輪を有する。ロボット１は、車輪の駆動により移動可能である。
【００２５】
次に、図２を用いてロボット１の制御部について説明する。ロボット１の制御部は、認識部２１、記憶部２２、軌道情報取得部２３、干渉判定部２４、経路中継点調整部２５、経路中継点選択部２６、軌道算出部２７、アーム制御部２８を有する。
【００２６】
認識部２１は、ロボット１の周囲に存在する物体（対象物９０、障害物９１等）の位置情報を取得する。具体的には、認識部２１は、センサ１２が取得した距離情報に基づいて、対象物９０や障害物９１の位置情報を生成する。ここで、位置情報とは、空間における物体の位置、大きさ、範囲の特定に関する情報である（例えば、三次元座標等）。位置とは、ロボット１に対して相対的な位置であってもよいし、絶対的な位置であってもよい。
【００２７】
さらに、認識部２１は、対象物９０の形状情報を取得する。具体的には、認識部２１は、センサ１２が取得した距離情報に基づいて、対象物９０の形状情報を生成する。形状情報とは、物体の形状に関する情報であり、例えば、エッジの位置や個数等である。
【００２８】
そして、認識部２１は、対象物９０の形状情報に基づいて対象物９０を特定し、当該対象物９０が置かれている障害物９１の識別情報を取得する。より詳細には、対象物９０の形状情報と関連付けられた障害物９１の識別情報を記憶部２２から取得する。ここで、記憶部２２には、対象物９０の形状情報と、当該対象物９０が置かれている障害物９１の識別情報とが関連付けられて予め格納されているものとする。なお、対象物９０が置かれている障害物９１に変更があった場合は、その都度対象物９０が置かれている障害物９１の識別情報を更新する。
【００２９】
このとき、障害物９１の識別情報とは、障害物９１と他の物体とを識別するための障害物９１固有の情報である。以下の説明においては、識別情報とは、障害物９１の形状情報を意味する。なお、認識部２１による障害物９１の形状情報の取得は、記憶部２２からの取得に限られない。認識部２１は、センサ１２から入力される距離情報に基づいて、自ら障害物９１の形状を認識することにより、障害物９１の形状情報を取得してもよい。
【００３０】
勿論、識別情報は形状情報に限られない。例えば、識別情報は、障害物９１の色彩に関する情報（例えば、色相、明度、彩度等）でもよいし、障害物９１の一部に付されたＩＤ（Identification）情報であってもよい。加えて、障害物９１の絶対的な位置（ロボット１の動作環境における障害物９１の位置）に関する情報を識別情報としてもよい。
【００３１】
記憶部２２は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等のメモリである。記憶部２２には、上述したように、対象物９０の形状情報と、障害物９１の識別情報とが関連付けられて格納されている。加えて、記憶部２２には、経路中継点の位置情報と、障害物９１の識別情報とが関連付けられて予め格納されている。経路中継点とは、軌道情報の一例であり、ハンド部１３３が障害物９１を回避して対象物９０に向かうために経由する空間上の点を意味する。つまり、経路中継点の位置情報とは、当該空間上の点の座標である。なお、軌道情報とは、経路中継点に限られず、ハンド部１３３が障害物９１を回避して対象物９０に向かう軌道に関する情報を意味する。
【００３２】
さらに、記憶部２２には、経路中継点におけるハンド部１３３の姿勢情報が格納されている。より詳細には、経路中継点の位置情報と、当該経路中継点における姿勢情報とが関連付けられて格納されている。なお、姿勢情報とは、経路中継点におけるハンド部１３３の姿勢を決定するための情報である（例えば、経路中継点におけるハンド部１３３の関節の目標角度等）。経路中継点におけるハンド部１３３の姿勢を予め決定しておくことにより、ハンド部１３３は把持姿勢に適した姿勢で経路中継点を通過することができる。
【００３３】
軌道情報取得部２３は、認識部２１が取得した障害物９１の識別情報に基づいて、軌道情報である経路中継点を記憶部２２から取得する。つまり、軌道情報取得部２３は、障害物９１の形状情報を参照して、当該識別情報に関連付けられた経路中継点を記憶部２２から取得する。
【００３４】
干渉判定部２４（対象物干渉判定手段及び物体干渉判定手段）は、経路中継点の位置情報と、対象物９０や周囲の物体の位置情報とに基づいて、経路中継点と対象物９０等とが干渉しているか否かを判定する。
【００３５】
経路中継点調整部２５（中継点位置調整手段、中継点姿勢調整手段）は、経路中継点の位置情報や、経路中継点におけるハンド部１３３の姿勢情報を調整する。具体的には、経路中継点調整部２５は、干渉判定部２４が経路中継点と対象物９０とが干渉していると判定した場合、経路中継点と対象物９０とが干渉せず、かつ、障害物９１を回避するアーム１３の軌道を算出できるように、経路中継点の位置情報を調整する。さらに、経路中継点調整部２５は、対象物９０の形状に基づいて、経路中継点におけるハンド部１３３の姿勢情報を調整する。
【００３６】
経路中継点選択部２６は、障害物９１の識別情報に関連付けられた経路中継点が複数存在する場合、それぞれの経路中継点と対象物９０との距離に基づいて、複数の経路中継点のうち、一の経路中継点を選択する。
【００３７】
軌道算出部２７は、経路中継点選択部２６が選択した経路中継点を経由して、ハンド部１３３が対象物９０に向かうアーム１３の軌道を算出する。
【００３８】
アーム制御部２８は、軌道算出部２７が算出したアーム１３の軌道に基づいて、アーム１３の動きを制御する。具体的には、軌道算出部２７により算出された軌道に、アーム１３が沿うように、アーム１３の関節１３１に設けられたモータ（図示省略）に対して制御信号を送る。さらに、アーム制御部２８は、ハンド部１３３の関節に設けられたモータに対しても制御信号を送る。これにより、アーム制御部２８は、ハンド部１３３の姿勢を制御する。
【００３９】
続いて、図３に示したフローチャートを用いて、ロボット１が対象物９０を把持するまでの一連の動作について説明する。まず、認識部２１が対象物９０を認識する（ステップＳ１０１）。具体的には、認識部２１は、センサ１２が取得した距離情報に基づいて、認識部２１が対象物９０の位置情報、形状情報を生成する。加えて、認識部２１は、障害物９１の有無を認識する。
【００４０】
次に、認識部２１は、ロボット１と対象物９０との間に、障害物９１が存在するか否かを判定する（ステップＳ１０２）。障害物９１が無い場合（ステップＳ１０２：Ｎｏ）、軌道算出部２７は、対象物９０の位置情報に基づいて、ハンド部１３３が対象物９０へ向かう最短軌道（直線軌道）を算出する（ステップＳ１０７）。
【００４１】
一方、ロボット１と対象物９０との間に、障害物９１が存在する場合（ステップＳ１０２：Ｙｅｓ）、認識部２１は、対象物９０の形状情報を参照して、障害物９１の形状情報（識別情報）を記憶部２２から取得する（ステップＳ１０３）。そして、認識部２１は、障害物９１の形状情報を軌道情報取得部２３に出力する。さらに、認識部２１は、対象物９０の位置情報を干渉判定部２４に出力する。加えて、認識部２１は、対象物９０の形状情報を経路中継点調整部２５に出力する。
【００４２】
軌道情報取得部２３は、認識部２１から入力された障害物９１の形状情報と関連付けられた経路中継点の位置情報を、記憶部２２から取得する（ステップＳ１０４）。経路中継点の位置情報の取得処理を図４に示す。図４は、例として、障害物９１の上方に経路中継点１００が９つ存在している場合を示す。軌道情報取得部２３は、当該９つの経路中継点１００の位置情報を干渉判定部２４に出力する。なお、経路中継点１００の個数は９個に限られない。１個であってもよいし、１０個以上であってもよい。
【００４３】
次に、経路中継点調整部２５が、対象物９０の大きさ及び形状に基づいて、経路中継点１００に対応する位置情報及び姿勢情報を調整する（ステップＳ１０５）。ここで、図５及び図６を用いて、経路中継点調整部２５の調整処理について詳細に説明する。図５は、経路中継点１００の調整処理のフローチャートである。図６は、経路中継点１００の位置情報の調整処理を示す図である。
【００４４】
まず、干渉判定部２４は、認識部２１から入力された対象物９０の位置情報から、対象物９０の位置及び大きさを認識する（ステップＳ１０５１）。そして、干渉判定部２４は、軌道情報取得部２３から入力された経路中継点１００の位置情報と、対象物９０の位置及び大きさと、に基づいて、経路中継点１００と、対象物９０とが干渉するか否かを判定する（ステップＳ１０５２）。
【００４５】
経路中継点１００と、対象物９０とが干渉する場合（ステップＳ１０５２：Ｙｅｓ）、経路中継点調整部２５は、経路中継点１００を上方に移動する（ステップＳ１０５３）。つまり、経路中継点調整部２５は、経路中継点１００と、対象物９０とが干渉しないように、経路中継点１００の位置情報を調整する。このとき、経路中継点１００を移動させる距離は、予め定められているものとする。経路中継点１００の位置情報を調整することにより、対象物９０が予想以上に大きい場合であっても、対象物９０とハンド部１３３とが干渉しない軌道を算出できる。干渉判定部２４は、移動後の経路中継点１００が対象物９０と干渉するか否か再度判定する（ステップＳ１０５２）。
【００４６】
なお、経路中継点１００の移動方向は、上方に限られるものではない。移動後の経路中継点１００を経由することにより、ハンド部１３３が障害物９１を回避しつつ、対象物９０へ向かうことができれば、他の方向であってもよい。例えば、障害物９１の開いている面が上面ではなく、右面であった場合は、経路中継点１００を右方向に移動させてもよい（図７参照）。
【００４７】
一方、経路中継点１００と、対象物９０とが干渉しない場合（ステップＳ１０５２：Ｎｏ）、経路中継点調整部２５は、認識部２１から入力された対象物９０の形状情報から、対象物９０の形状を認識する（ステップＳ１０５４）。具体的には、経路中継点調整部２５は、対象物９０の把持位置を認識する。例えば、対象物９０が取手付きのコップ形状である場合や、上部が尖っている形状である場合は、ハンド部１３３は、対象物９０を上部から把持することは困難である。そのため、対象物９０の把持位置は対象物９０の側部となる。これに対して、対象物９０の形状が、鍋蓋のように上部に取手を備える形状である場合や、側部が尖っている場合は、対象物９０の把持位置は対象物９０の上部となる。
【００４８】
そして、経路中継点調整部２５は、経路中継点１００における姿勢情報を調整する必要があるか否かを判定する（ステップＳ１０５５）。つまり、経路中継点調整部２５は、予め記憶部２２に格納されている姿勢情報により定まるハンド部１３３の姿勢でハンド部１３３が経路中継点１００を通過した場合に、ハンド部１３３が対象物９０を把持できるか否かを判定する。
【００４９】
姿勢情報の調整が必要な場合（ステップＳ１０５５：Ｙｅｓ）、経路中継点調整部２５は、経路中継点１００における姿勢情報を調整する（ステップＳ１０５６）。一方、姿勢情報の調整が必要ない場合（ステップＳ１０５５：Ｎｏ）、経路中継点調整部２５は、調整処理を終了する。経路中継点調整部２５は、経路中継点１００の位置情報または姿勢情報に調整処理を行った場合は、調整後の位置情報及び姿勢情報を経路中継点選択部２６に出力する（ステップＳ１０５７）。なお、経路中継点調整部２５は、調整処理を行わなかった場合でも、入力された経路中継点１００の位置情報及び姿勢情報を、そのまま経路中継点選択部２６に出力する。このように、経路中継点調整部２５が、経路中継点１００の位置情報及び姿勢情報を調整することにより、対象物９０の大きさ、形状が予め予想していたものと異なる場合であっても、ロボット１は、当該対象物９０の大きさ、形状に適した経路中継点１００の位置情報及び姿勢情報を取得できる。
【００５０】
図３のフローチャートに戻り、経路中継点選択部２６が、複数の経路中継点１００のうち、把持動作に最適な一の経路中継点１００を選択する（ステップＳ１０６）。ここで、図８に示すフローチャートを用いて、経路中継点選択部２６の選択処理について詳細に説明する。
【００５１】
まず、経路中継点選択部２６は、経路中継点調整部２５から入力された経路中継点１００の位置情報と、認識部２１から入力された対象物９０の位置情報と、に基づいて、各経路中継点１００と対象物９０との距離を算出する（ステップＳ１０６１）。
【００５２】
経路中継点選択部２６は、把持動作に最適な経路中継点１００を選択する（ステップＳ１０６２）。より詳細には、経路中継点選択部２６は、ステップＳ１０６１で算出した距離が最も短い経路中継点１００を選択する。さらに、経路中継点選択部２６は、対象物９０までの距離に加えて、対象物９０の把持位置を考慮してもよい。つまり、把持位置が対象物９０の上部である場合は、経路中継点選択部２６は、対象物９０の直上付近に位置する経路中継点１００を選択する。これに対して、把持位置が対象物９０の側部である場合、経路中継点選択部２６は、対象物９０の把持位置側に位置する経路中継点１００を選択する。このように、最適な経路中継点１００を選択することにより、遠回りとなる軌道やハンド部１３３の姿勢の大きな変更が必要となる軌道の算出を回避できる。そのため、アーム１３の移動距離のロスが少なくなる。さらに、把持動作にかかる時間を短縮することができる。
【００５３】
次に、干渉判定部２４は、認識部２１が取得した障害物９１の周囲の物体の位置情報と、選択した経路中継点１００の位置情報と、に基づいて、当該周囲の物体と経路中継点１００とが干渉するか否かを判定する（ステップＳ１０６３）。周囲の物体と経路中継点１００とが干渉する場合（ステップＳ１０６３：Ｙｅｓ）、経路中継点選択部２６は、選択した経路中継点１００とは異なる経路中継点１００のうちから、最適な経路中継点１００を再度選択する（ステップＳ１０６２）。
【００５４】
一方、周囲の物体と経路中継点１００とが干渉しない場合（ステップＳ１０６３：Ｎｏ）、経路中継点選択部２６は、選択した経路中継点１００の位置情報及び姿勢情報を軌道算出部２７に出力する（ステップＳ１０６４）。
【００５５】
図３のフローチャートに戻り、軌道算出部２７は、経路中継点選択部２６により入力された経路中継点１００の位置情報及び姿勢情報に基づいて、ハンド部１３３が経路中継点１００を経由して対象物９０に向かう軌道を算出する（ステップＳ１０７）。そして、軌道算出部２７は、算出した軌道に関する情報を、アーム制御部２８に出力する。なお、軌道算出部２７が算出した軌道に関する情報には、経路中継点１００におけるハンド部１３３の姿勢を定める姿勢情報も含まれる。
【００５６】
図９に、障害物９１の周囲の物体９２が存在する場合（例えば、障害物９１が机の引き出しで周囲の物体９２が机である場合）のステップＳ１０６、１０７の処理動作を示す。周囲の物体９２と干渉する経路中継点１００は斜線で示している。この場合、経路中継点１０１は、周囲の物体９２と干渉していない。加えて、対象物９０との距離が最も短い。そのため、経路中継点選択部２６は、経路中継点１０１を最適な経路中継点として選択する。そして、軌道算出部２７は、ハンド部１３３が経路中継点１０１を経由して対象物９０に向かう軌道（図９の矢印）を算出する。
【００５７】
アーム制御部２８は、軌道算出部２７から入力された軌道に関する情報に基づいて、アーム１３を制御する（ステップＳ１０８）。具体的には、アーム制御部２８は、アーム１３の関節１３１に設けられたモータに対して制御信号を出力する。加えて、アーム制御部２８は、経路中継点１００におけるハンド部１３３の姿勢が姿勢情報により定まる姿勢となるように、ハンド部１３３の関節に設けられたモータに制御信号を出力する。これにより、ハンド部１３３は、障害物９１との接触を回避して、対象物９０に接近する。そして、アーム制御部２８からの制御信号により、ハンド部１３３が対象物９０を把持する。
【００５８】
以上のように、本実施の形態にかかるロボット１においては、軌道算出部２７が、記憶部２２に予め格納された経路中継点１００を経由する軌道を算出する。このとき、経路中継点１００とは、当該経路中継点１００を経由すれば、障害物９１を回避できる点である。つまり、ハンド部１３３が障害物９１を回避して、対象物９０に向かうことができる軌道、言い換えると、正解ルートを算出するための情報を、ロボット１自身が有している。そのため、ロボット１は、自らが取り得る経路の全てを探索する必要がなく、予め記憶部２２に格納された経路中継点１００のいずれかを選択するだけでよい。そのため、経路計画に要する計算量を削減でき、計算時間も短縮できる。
【００５９】
さらに、ロボット１は、特許文献１及び２に記載の技術のように、探索すべき全ての中継点候補及び格子点のデータを格納する必要がない。そのため、記憶部２２に格納しておくデータ量を減らすことができる。したがって、メモリコストを削減できる。
【００６０】
なお、上記の実施の形態１においては、ロボット１の制御部が干渉判定部２４、経路中継点調整部２５、経路中継点選択部２６を有しているが、これらの構成は必ずしも必要ではない。対象物９０の大きさが予め一定の大きさであると定められていれば、経路中継点１００と対象物９０との干渉は起こらないため、干渉を判定する必要はない。干渉しなければ経路中継点１００の位置情報を調整する必要もない。対象物９０の形状についても予め一定の形状であると定められていれば、形状に伴って経路中継点１００における姿勢情報を調整する必要はない。さらに、障害物９１に対応する経路中継点１００を１つと定めておけば、経路中継点１００を選択する必要もない。つまり、障害物９１に対応する経路中継点１００の位置情報を記憶部２２から取得して、当該位置情報に基づいてアーム１３の軌道を算出し、算出した軌道に基づいてアーム１３を制御するという構成のみで経路計画に要する計算量を削減できる。
【００６１】
加えて、上記の実施の形態１においては、軌道情報として、経路中継点１００を用いたが、これに限られるものではない。障害物９１を回避するために通過すべき平面領域や空間領域を軌道情報としてもよい。更には、障害物９１を回避可能な軌道そのものを軌道情報としてもよい。この場合、当該軌道情報に基づいてアーム制御部２８が、アーム１３を制御する。つまり、軌道を算出する必要がないため、ロボット１は軌道算出部２７を備えることなく障害物９１を回避することができる。したがって、記憶部２２から軌道情報（軌道そのものの情報）を取得し、当該軌道情報に基づいて、アーム１３を制御するという構成のみで経路計画に要する計算量を削減できる。
【００６２】
実施の形態２
本発明にかかる実施の形態２について説明する。図１０は、本実施の形態にかかるロボット２の制御部のブロック図である。ロボット２は、ロボット１が備える経路中継点調整部２５に代えて、経路中継点生成部２９を備える。なお、その他の構成についてはロボット１と同様であるので、説明を省略する。ただし、記憶部２２には、経路中継点１００の位置情報ではなくオフセット量が軌道情報として予め格納されている。
【００６３】
続いて、図１１に示すフローチャートを用いて、本実施の形態にかかるロボット２の動作について説明する。なお、図１１に示すフローチャートにおいて、ステップＳ１０１〜Ｓ１０３、Ｓ１０６〜Ｓ１０８は、上述した実施の形態２と同様であるため、適宜説明を省略する。
【００６４】
まず、認識部２１が、対象物９０を認識し（ステップＳ１０１）、ロボット２と対象物９０との間に障害物９１があるか否かを判定する（ステップＳ１０２）。障害物９１がある場合（ステップＳ１０２：Ｙｅｓ）、認識部２１は、記憶部２２から障害物９１の形状情報を取得する（ステップＳ１０３）。そして、認識部２１は、障害物９１の形状情報を経路中継点生成部２９に出力する。
【００６５】
経路中継点生成部２９は、認識部２１から入力された障害物９１固有の情報である形状情報及びオフセット量に基づいて、経路中継点１００を自動生成する（ステップＳ２０１）。ここで、図１２及び図１３を用いて、経路中継点生成部２９の自動生成処理について詳細に説明する。図１２は、自動生成処理のフローチャートである。図１３は、経路中継点１００の自動生成処理を示す図である。
【００６６】
まず、経路中継点生成部２９は、障害物９１の底面形状を認識する（ステップＳ２０１１）。つまり、障害物９１の底面の横幅９１１及び縦幅９１２を取得する。そして、経路中継点生成部２９は、横幅及び縦幅が障害物９１と同一のグリッド２００を生成する（ステップＳ２０１２）。経路中継点生成部２９は、障害物９１の上端から上方に、オフセット量２０１だけ離れた位置にグリッド２００を生成する。言い換えると、グリッド２００は、障害物９１の高さ９１３に、オフセット量２０１を加算した位置に生成される。勿論、障害物９１の上面は塞がれていて、右面が開いている場合（図７参照）は、経路中継点生成部２９は、障害物９１の右端から右方向にオフセット量離れた位置に、左側面と同一形状のグリッド２００を生成する。
【００６７】
このとき、経路中継点生成部２９は、予め定められた経路中継点１００の個数に基づいて、各経路中継点１００を等間隔に配置可能なグリッドを生成する。図１３は、経路中継点１００が予め９個と定められていた場合を示す。つまり、経路中継点生成部２９は、格子点を９個有するグリッド２００を生成する。
【００６８】
次に、経路中継点生成部２９は、各格子点に経路中継点１００を配置する（ステップＳ２０１３）。具体的には、経路中継点生成部２９は、グリッド２００の格子点の位置情報を取得する。そして、経路中継点生成部２９は、グリッド２００の格子点の位置情報、つまり、経路中継点１００の位置情報を記憶部２２に格納する（ステップＳ２０１４）。加えて、経路中継点生成部２９は、経路中継点１００における姿勢情報も記憶部２２に格納する。なお、各経路中継点１００の姿勢情報は、同一の姿勢情報であるとする。例えば、経路中継点１００において、既にハンド部１３３が対象物９０を把持する姿勢となるように姿勢情報を決定してもよい。軌道情報取得部２３は、記憶部２２に格納された経路中継点１００の位置情報を取得し、経路中継点選択部２６に出力する。
【００６９】
図１１のフローチャートに戻り、経路中継点選択部２６は、軌道情報取得部２３により入力された９個の経路中継点１００の位置情報に基づいて、最適な一の経路中継点１００を選択する（ステップＳ１０６）。そして、軌道算出部２７が、経路中継点選択部２６により選択されたアーム１３の軌道を算出する（ステップＳ１０７）。さらに、アーム制御部２８が、軌道算出部２７により算出された軌道に基づいて、アーム１３を制御する（ステップＳ１０８）。
【００７０】
以上のように、本実施の形態にかかるロボット２においては、経路中継点生成部２９が、障害物９１の形状及びオフセット量２０１に基づいて、機械的に経路中継点１００を生成（自動生成）する。そのため、経路中継点１００の位置情報と障害物９１の識別情報とを関連付けて、予め記憶部２２に格納する必要はない。つまり、記憶部２２には、予めオフセット量２０１だけ格納すればよい。その結果、記憶部２２に格納するデータ量をさらに減らすことができる。したがって、メモリコストをさらに削減することができる。
【００７１】
さらに、ロボット２が経路中継点調整部２５を備える構成としてもよい。加えて、経路中継点生成部２９は、経路中継点１００をオフセットさせる方向を障害物９１の形状に基づいて決定しているが、これに限られるものではない。ロボット２の活動範囲における全ての障害物９１が、対象物９０の上方を塞がない形状である場合、オフセット方向を予め上方と設定してもよい。
【００７２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更及び組み合わせをすることが可能である。例えば、障害物９１の形状は箱型形状に限られるものではない。筒形状でもよいし、ロボットと対象物９０との間に設けられた平面形状（壁等）であってもよい。
【符号の説明】
【００７３】
１、２  ロボット
１１  ロボット本体
１２  センサ
１３  アーム
１４  移動部
２１  認識部
２２  記憶部
２３  軌道情報取得部
２４  干渉判定部
２５  経路中継点調整部
２６  経路中継点選択部
２７  軌道算出部
２８  アーム制御部
２９  経路中継点生成部
９０  対象物
９１  障害物
９２  周囲の物体
１００、１０１  経路中継点
１３１  関節
１３２  アーム部材
１３３  ハンド部
２００  グリッド
２０１  オフセット量
【図１】
0005621483.tif 000002
【図２】
0005621483.tif 000003
【図３】
0005621483.tif 000004
【図４】
0005621483.tif 000005
【図５】
0005621483.tif 000006
【図６】
0005621483.tif 000007
【図７】
0005621483.tif 000008
【図８】
0005621483.tif 000009
【図９】
0005621483.tif 000010
【図１０】
0005621483.tif 000011
【図１１】
0005621483.tif 000012
【図１２】
0005621483.tif 000013
【図１３】
0005621483.tif 000014