(57)【要約】【課題】把持対象となる物体の一部が障害物で隠れている場合であっても、障害物を移動させることなく、把持対象となる物体を適確に把持すること。【解決手段】本発明に係る把持方法は、把持対象物の一部が障害物により隠されていた場合であっても把持対象物を把持装置により認識して把持する把持方法である。把持対象物を含む周辺の環境情報を取得するステップと、取得された環境情報により、周辺の環境から把持対象物を認識するステップと、把持対象物の一部分が認識された場合に、把持対象物であると決定するステップと、把持対象物であると決定された物体の把持領域を決定するステップと、決定された把持領域を把持するステップとを備える。把持領域を決定するステップは、把持対象物を認識するステップにおいて把持対象物の一部分として認識された領域を、把持領域として決定する。【選択図】図３
2015104796.tif 000002
【特許請求の範囲】
【請求項１】
把持装置が取得した３次元情報である環境情報を取得し、取得した環境情報の中から把持対象物を認識し、認識した前記把持対象物の一部が障害物により隠されていた場合であっても前記把持対象物を把持装置により認識して把持する把持方法であって、
前記把持対象物を含む周辺の環境情報を取得するステップと、
取得された環境情報により、周辺の環境から前記把持対象物を認識するステップと、
前記把持対象物の一部分が認識された場合に、把持対象物であると決定するステップと、
前記把持対象物であると決定された物体の把持領域を決定するステップと、
決定された把持領域を把持するステップとを備え、
前記把持領域を決定するステップは、
前記把持対象物を認識するステップにおいて前記把持対象物の一部分として認識された領域を、前記把持領域として決定する
把持方法。
【請求項２】
前記把持対象物を認識するステップは、前記環境情報から特徴点を抽出し、抽出された特徴点と、前記把持対象物の特徴点として予め記憶されたモデルの特徴点とのマッチング処理を実行することにより、前記把持対象物を認識し、
前記把持領域を決定するステップは、前記把持対象物のうち、前記モデルの特徴点が前記把持対象物の特徴点と一致する領域を前記把持領域として決定する、
ことを特徴とする請求項１に記載の把持方法。
【請求項３】
前記把持領域を決定するステップは、前記把持対象物のうち、前記モデルの特徴点と一致する複数の特徴点の重心を前記把持領域として決定する、
ことを特徴とする請求項２に記載の把持方法。
【請求項４】
前記把持方法は、さらに、前記把持対象物において、前記把持対象物の一部分として認識されていない未観測領域から前記把持対象物の一部分として認識された観測領域に向かう方向に移動させ、前記把持対象物のより多くの部分を認識するステップを備える
ことを特徴とする請求項２又は３に記載の把持方法。
【請求項５】
前記把持対象物のより多くの部分を認識するステップは、
定期的に、周辺の環境情報を取得し、取得された環境情報により、前記把持対象物の特徴点を抽出し、
前記把持対象物の特徴点と前記モデルの特徴点との間で一致しない特徴点の数が所定の閾値以下となるまで、前記把持対象物を移動させる、
ことを特徴とする請求項４に記載の把持方法。
【請求項６】
前記把持対象物のより多くの部分を認識するステップは、前記未観測領域の重心、又は、前記未観測領域に前記モデルの特徴点を当てはめた場合における当該未観測領域の特徴点の重心から、前記観測領域の重心、又は、前記観測領域の特徴点の重心に向かう方向に、前記把持対象物を移動させる、
ことを特徴とする請求項４又は５に記載の把持方法。
【請求項７】
請求項４乃至６のいずれか１項に記載の把持方法によって把持した把持対象物を運搬先に運搬する運搬方法であって、
前記把持対象物のより多くの部分を認識するステップによって認識された把持対象物のより多くの部分が障害物を回避する軌道を決定し、その軌道で前記把持対象物を運搬するステップ
を備えることを特徴とする運搬方法。
【請求項８】
前記把持対象物を運搬するステップは、
周辺の環境情報を取得し、取得された環境情報により、前記把持装置が把持した状態において当該把持装置により隠されていない前記把持対象物の認識可能部分から前記把持対象物の姿勢を特定し、
特定した把持対象物の姿勢の前記運搬先の設置面に対する傾きが、より少なくなるように前記把持対象物の姿勢を補正する、
ことを特徴とする請求項７項に記載の運搬方法。
【請求項９】
３次元情報である環境情報を取得し、取得した環境情報の中から把持対象物を認識し、認識した前記把持対象物の一部が障害物により隠されていた場合であっても前記把持対象物を認識してロボットアームによって把持するロボットであって、
前記把持対象物を含む周辺の環境情報を取得する環境情報取得部と、
取得された環境情報により、周辺の環境から前記把持対象物の一部分が認識された場合に、把持対象物であると決定する認識部と、
前記把持対象物であると決定された物体の把持領域を決定する把持領域決定部と、を備え、
前記把持領域決定部は、前記把持対象物の一部分として認識された領域を、前記把持領域として決定する
ことを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持方法、運搬方法及びロボットに関し、特に、物体を認識して把持する技術に関する。
【背景技術】
【０００２】
特許文献１には、把持対象となる目標物が障害物に隠れている場合であっても、目標物を画像認識して把持することができるロボットが開示されている。このロボットは、カメラにより撮影された画像に基づいて障害物が存在すると判定した場合には、障害物をロボットアームによって移動させ、目標物の再認識処理を行う。そして、ロボットは、目標物を認識した場合に、その目標物を把持する動作を実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２９００５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示のロボットは、障害物をわざわざ移動してからでないと目標物を把持することができず、効率が良くないという問題がある。また、障害物となる物体の位置を勝手に変更することが望まれない場合もあり得る。
【０００５】
本発明は、上述のような問題を解決するためになされたものであり、把持対象となる物体の一部が障害物で隠れている場合であっても、障害物を移動させることなく、把持対象となる物体を適確に把持することができる把持方法、運搬方法及びロボットを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様に係る把持方法は、把持装置が取得した３次元情報である環境情報を取得し、取得した環境情報の中から把持対象物を認識し、認識した前記把持対象物の一部が障害物により隠されていた場合であっても前記把持対象物を把持装置により認識して把持する把持方法であって、前記把持対象物を含む周辺の環境情報を取得するステップと、取得された環境情報により、周辺の環境から前記把持対象物を認識するステップと、前記把持対象物の一部分が認識された場合に、把持対象物であると決定するステップと、前記把持対象物であると決定された物体の把持領域を決定するステップと、決定された把持領域を把持するステップとを備え、前記把持領域を決定するステップは、前記把持対象物を認識するステップにおいて前記把持対象物の一部分として認識された領域を、前記把持領域として決定するものである。
【０００７】
本発明の第２の態様に係る運搬方法は、上述の態様に係る把持方法によって把持した把持対象物を運搬先に運搬する運搬方法であって、前記把持対象物の全体を認識するステップによって認識された把持対象物の全体が障害物を回避する軌道を決定し、その軌道で前記把持対象物を運搬するステップを備えるものである。
【０００８】
本発明の第３の態様に係るロボットは、３次元情報である環境情報を取得し、取得した環境情報の中から把持対象物を認識し、認識した前記把持対象物の一部が障害物により隠されていた場合であっても前記把持対象物を認識してロボットアームによって把持するロボットであって、前記把持対象物を含む周辺の環境情報を取得する環境情報取得部と、取得された環境情報により、周辺の環境から前記把持対象物の一部分が認識された場合に、把持対象物であると決定する物体認識部と、前記把持対象物であると決定された物体の把持領域を決定する把持領域決定部と、を備え、前記把持領域決定部は、前記把持対象物の一部分として認識された領域を、前記把持領域として決定することを特徴とするものである。
【０００９】
物体の一部が障害物によって隠れている場合には、障害物によって隠れていない部分が認識されることになる。したがって、上述した本発明の各態様のように、把持対象物の一部分として認識された領域を把持領域として決定することで、障害物で隠れていない領域を把持することができるため、把持対象となる物体を把持する際における把持装置（ロボット）と障害物との接触を回避することができる。
【発明の効果】
【００１０】
上述した本発明の各態様によれば、把持対象となる物体の一部が障害物で隠れている場合であっても、障害物を移動させることなく、把持対象となる物体を適確に把持することができる把持方法、運搬方法及びロボットを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るロボットの外部構成図である。
【図２】実施の形態１に係るロボットの内部構成図である。
【図３】実施の形態１に係るロボットの処理ブロック図である。
【図４】実施の形態１に係るロボットの処理を示すフローチャートである。
【図５】把持対象となる物体の一例を示す図である。
【図６】実施の形態２に係るロボットの処理ブロック図である。
【図７】実施の形態２に係るロボットの処理を示すフローチャートである。
【図８】障害物回避の一例を示す図である。
【図９】実施の形態３に係るロボットの処理ブロック図である。
【図１０】実施の形態３に係るロボットの処理を示すフローチャートである。
【図１１】物体の目標地点への配置の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に図面を参照しながら、本発明の好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項等については、適宜、省略及び簡略化がなされている。
【００１３】
＜発明の実施の形態１＞
本実施の形態１に係るロボット１について説明する。まず、図１を参照して、本実施の形態１に係るロボット１の外部構成について説明する。図１は、本実施の形態１に係るロボット１の外部構成図である。
【００１４】
ロボット１は、ロボット本体１０、移動台車２０、把持部３０、及び頭部４０を有している。ロボット１は、例えば、工場において人が行う荷物（物体）を運搬する作業を代行する産業ロボットとして利用することができる。また、ロボット１は、家庭内において物（物体）を人に拾い届ける作業を実行するサービスロボットとしても利用することができる。
【００１５】
移動台車２０は、その上方でロボット本体１０を支持するように、その上部がロボット本体１０の下部に連結されている。移動台車２０は、その下部に設けられた車輪（図示せず）を駆動することでロボット１を移動させる。
【００１６】
把持部３０は、ロボット本体１０の前方に突出するように、ロボット本体１０の前部に接続されている。把持部３０は、多関節のアーム（ロボットアーム）である。把持部３０は、その先端部に、任意の物体を把持できるハンド６０を含む。これにより、ロボット１は、把持部３０の各関節の角度を調整することで、ハンド６０を所望の位置に移動させ、その位置に存在する物体を把持することができる。
【００１７】
頭部４０は、ロボット本体１０の上方でロボット本体１０に支持されるように、ロボット本体１０の上部に連結されている。頭部４０は、その前方を撮像部５０によって観測可能となるように、その前部に撮像部５０が取り付けられている。撮像部５０は、ロボット１の周辺の環境を観測し、観測した環境を示す環境情報を生成（取得）する。撮像部５０は、環境情報取得部として機能する。
【００１８】
撮像部５０は、所定の角度範囲（画角）を測定可能となっている。一方、頭部４０とロボット本体１０との連結部は、頭部４０を動作可能となるように多自由度の関節構造となっている。例えば、関節構造として少なくとも２自由度以上を有するようにすることで、頭部４０は、少なくとも上下左右に動作させることが可能とされている。これにより、撮像部５０の測定可能な角度範囲が限られていても、頭部４０を動作させることで広範囲を観測することを可能としている。
【００１９】
ここで、撮像部５０は、具体的には周辺の環境を撮像するカメラとなる。よって、撮像部５０は、ロボット１の周辺を撮像して、ロボット１の周辺の画像を示す画像情報を環境情報として生成する。カメラは、単眼カメラ及びステレオカメラ等の各種カメラのうち、任意のカメラを使用するようにしてよい。
【００２０】
上述した構成により、ロボット１は、撮像部５０によって取得した画像情報が示す画像に基づいて周辺の環境に含まれる物体を認識する。そして、ロボット１は、認識した物体を把持部３０によって把持して、その物体の運搬先となる目標地点へ移動台車２０の車輪を駆動することで運搬する。
【００２１】
続いて、図２を参照して、本実施の形態１に係るロボット１の内部構成について説明する。図２は、本実施の形態１に係るロボット１の内部構成図である。
【００２２】
ロボット１は、制御部１１、記憶部１２、アクチュエータ２１ａ、２１ｂ、車輪２２ａ、２２ｂ、及びアクチュエータ３１ａ、３１ｂを有する。制御部１１及び記憶部１２は、ロボット本体１０に含まれる。アクチュエータ２１ａ、２１ｂ及び車輪２２ａ、２２ｂは、移動台車２０に含まれる。アクチュエータ３１ａ、３１ｂは、把持部３０に含まれる。
【００２３】
制御部１１は、ロボット１を統括的に制御する。制御部１１は、ＣＰＵ（Central Processing Unit）を有しており、そのＣＰＵが記憶部１２に格納されたプログラムを実行することで、制御部１１としての各種処理を実現する。すなわち、このプログラムは、制御部１１が有するＣＰＵに制御部１１としての各種処理を実行させるためのコードを含んでいる。
【００２４】
記憶部１２は、上記プログラムや、その他の制御部１１が使用する各種情報が格納される。記憶部１２は、上記プログラムや各種情報を格納可能な記憶装置の少なくとも１つを含む。記憶装置として、例えば、メモリ及びハードディスク等の少なくとも１つを任意に使用してよい。
【００２５】
アクチュエータ２１ａ、２１ｂは、ロボット１の車輪２２ａ、２２ｂを駆動する。アクチュエータ２１ａは、制御部１１からの制御によって駆動され、車輪２２ａを回転させる。アクチュエータ２１ｂは、制御部１１からの制御によって駆動され、車輪２２ｂを回転させる。
【００２６】
車輪２２ａ及び車輪２２ｂは、上述した移動台車２０の下部に取り付けられた車輪に該当する。すなわち、制御部１１は、アクチュエータ２１ａ、２１ｂを制御して、車輪２２ａ、２２ｂを回転させることでロボット１を移動させる。
【００２７】
アクチュエータ３１ａ、３１ｂは、ロボット１の把持部３０を駆動する。アクチュエータ３１ａ、３１ｂは、制御部１１からの制御によって駆動され、把持部３０を動作させるアクチュエータ３１ａ、３１ｂのそれぞれは、把持部３０の関節として設けられている。なお、ここでは、把持部３０が、アクチュエータ３１ａとアクチュエータ３１ｂとの２つの関節を有する例について説明するが、把持部３０の関節数は、これに限られない。
【００２８】
ハンド６０は、制御部１１からの制御によって駆動され、物体を把持もしくは解放する。制御部１１は、ハンド６０によって把持対象の物体を把持する場合、各アクチュエータ３１ａ、３１ｂ、２１ａ、２１ｂの少なくとも１つを駆動し、撮像部５０から出力された画像情報が示す画像に基づいて認識した物体までハンド６０を導く。
【００２９】
続いて、図３を参照して、本実施の形態１に係るロボット１の処理ブロックについて説明する。図３は、本実施の形態１に係るロボット１の処理ブロック図である。
【００３０】
制御部１１は、特徴抽出部１１１、特徴間対応付け部１１２、物体認識部１１３、及び把持可能部検出部１１４として機能する。
【００３１】
また、記憶部１２は、物体情報格納部１２１として機能する。物体情報格納部１２１には、ロボット１が動作する環境に存在する複数の物体のそれぞれについて、物体認識用特徴情報、物体３Ｄモデル情報（物体形状情報）、特徴点位置情報、及び物体ＩＤが格納されている。物体認識用特徴情報、物体３Ｄモデル情報、特徴点位置情報、及び物体ＩＤは、同一の物体について相互に対応付けられている。これらの情報は、物体の種類毎に用意するようにしてもよい。
【００３２】
物体認識用特徴情報は、物体のモデルを特徴点（特徴点群）によって示す情報である。物体３Ｄモデル情報は、物体の３Ｄモデル（モデルとなる三次元形状）を示す情報である。特徴点位置情報は、物体３Ｄモデル情報が示す物体の３Ｄモデルに対する、物体認識用特徴情報が示す各特徴点の位置関係を示す情報である。物体ＩＤは、各物体を一意に示す情報である。
【００３３】
特徴抽出部１１１は、撮像部５０から出力された画像情報が示す画像において特徴点（特徴点群）を抽出する。なお、特徴点を抽出するために利用する画像特徴として、ＳＵＲＦ特徴、エッジ特徴、及びＨＯＧ（Histogram of Oriented Gradient）特徴等の特徴のうち、任意の特徴を利用するようにしてよい。
【００３４】
特徴点対応付け部１１２は、特徴抽出部１１１によって抽出された特徴点と、物体認識用特徴情報が示す物体のモデルの特徴点との対応付けを行う。すなわち、特徴点対応付け部１１２は、抽出された特徴点と、物体のモデルの特徴点とを照合（マッチング）することで、抽出された特徴点の中から物体のモデルの特徴点と一致する特徴点を特定し、相互に対応付ける。すなわち、これにより、画像の特徴点の中から、物体の特徴点が認識される。言い換えると、物体のモデルによって、画像中の物体が認識される。
【００３５】
物体認識部１１３は、特徴点対応付け部１１２によって特定された特徴点の対応関係に基づいて、物体の位置・姿勢を認識する。特徴認識部１１３は、物体の一部でも認識された場合には、その位置に物体が存在すると決定する。例えば、物体認識部１１３は、抽出された特徴点と物体のモデルの特徴点との間で対応付けられた（一致した）特徴点が、物体のモデルの全ての特徴点に対して所定の割合を超えている場合に、その位置にその物体が存在するものと認識してもよい。また、物体認識部１１３は、特徴点位置情報が示す物体の３Ｄモデルと物体の特徴点との位置関係に基づいて、抽出された物体の特徴点から、物体の姿勢（傾き）を特定する。なお、物体の位置には、ロボット１から物体までの距離も含まれる。ここで、ロボット１から物体までの距離は、撮像部５０が単眼カメラであれば、特徴点間の距離に基づいて推定するようにすればよく、２つの以上の画像を撮像するステレオカメラであれば、２つの画像間の同一地点のズレ量（例えば同一特徴点のズレ量等）に基づいて算出するようにすればよい。
【００３６】
把持可能部検出部１１４は、物体の認識結果に基づいて、把持部３０によって把持可能な部分を検出する。具体的には、把持可能部検出部１１４は、物体の一部として認識できている領域を、把持部３０によって把持可能な領域として決定する。すなわち、把持可能部検出部１１４は、物体のうち、抽出された物体の特徴点と、物体のモデルの特徴点とが一致している領域を、把持部３０によって把持可能な領域として決定する。そして、把持可能部検出部１１４は、その領域のいずれかの部分を、把持部３０によって把持可能な部分（把持する部分）として決定する。例えば、物体において、抽出された物体の特徴点のうち、物体のモデルの特徴点群と一致する特徴点の重心となる部分を把持可能な部分として決定する。物体認識部１１３及び把持可能部検出部１１４は、認識部として機能する。
【００３７】
ここで、物体が障害物で隠れている領域では障害物の特徴点が抽出されるため、抽出された物体の特徴点と、物体のモデルの特徴点は一致しない。一方、物体が障害物で隠れていない領域では物体の特徴点が抽出されるため、抽出された物体の特徴点と、物体のモデルの特徴点が一致する。よって、上述のように、抽出された物体の特徴点と、物体のモデルの特徴点とが一致する領域で、物体を把持する部分を決定するようにすることで、障害物に隠れていない部分を、物体を把持する部分として決定することができる。
【００３８】
そして、把持可能部検出部１１４は、決定した部分を把持するように把持部３０を駆動して、物体を把持する。具体的には、把持可能部検出部１１４は、アクチュエータ３１ａ、３１ｂを駆動することで、把持すると決定した部分に、把持部３０のハンド６０の中心をアプローチする。そして、把持可能部検出部１１４は、ハンド６０を駆動することで、物体を把持する。
【００３９】
ここで、各物体について複数の把持パターンを予め生成しておき、その複数の把持パターンのうち、把持すると決定した部分を把持する把持パターンを選択して、選択した把持パターンで物体を把持するようにしてもよい。把持パターンとは、ハンド６０のサイズ及び形状等を考慮して、物体を把持することができる把持の仕方を定義したものである。例えば、物体において把持する部分、及び、物体に対するハンド６０の傾き等が定義される。例えば、この把持パターンを示す情報を記憶部１２に予め格納しておき、把持可能部検出部１１４がその情報に基づいてアクチュエータ３１ａ、３１ｂを駆動することで実現するようにすればよい。
【００４０】
以上に説明した処理によれば、物体の一部に未観測領域（障害物に隠れている領域）が存在する場合であっても、物体を把持する部分として観測領域（障害物に隠れていない領域）が決定される。よって、物体を把持する際に把持部３０が障害物と接触しない適確な把持をすることができる。
【００４１】
続いて、図４及び図５を参照して、本実施の形態１に係るロボット１の処理について説明する。図４は、本実施の形態１に係るロボット１の処理を示すフローチャートである。ここでは、図５に示すように、把持対象とする物体の一部が障害物に隠れている場合について説明する。
【００４２】
撮像部５０は、その画角内で周辺の環境を撮像し、撮像した環境の画像（カメラ画像）を示す画像情報を生成して特徴抽出部１１１に出力する（Ｓ１）。特徴抽出部１１１は、撮像部５０から出力された画像情報が示す画像について特徴点を抽出する（Ｓ２）。
【００４３】
特徴間対応付け部１１２は、特徴抽出部１１１によって抽出された特徴点と、物体情報格納部１２１に格納された物体認識用特徴情報が示す物体のモデルの特徴点とをマッチングし、相互に一致する特徴点を特定する（Ｓ３）。
【００４４】
物体認識部１１３は、特徴間対応付け部１１２によって特定された特徴点の対応関係に基づいて、マッチングの取れた特徴点から物体の位置・姿勢を導出する（Ｓ４）。具体的には、図５に示すように、障害物に隠れてない物体の特徴点から物体の位置・姿勢を認識する。すなわち、物体のモデルの特徴点に対して、一部でも特徴点の一致が見られるのであれば、その一致する特徴点を基準として物体のモデルの特徴点を当てはめた場合に、その物体のモデルの位置に物体が存在すると推定することができる。また、一致する特徴点を基準として当てはめられた物体のモデルの特徴点から、特徴点位置情報が示す物体の３Ｄモデルと物体の特徴点との位置関係に基づいて物体が存在する領域（物体全体の領域）も特定することができる。よって、例えば、その当てはめられた物体のモデルの特徴点における各特徴点の重心、又は、物体が存在する領域の重心等として、物体の位置を認識することができる。
【００４５】
また、物体の姿勢（傾き）は、一致する特徴点について、物体の特徴点のモデルにおける特徴点の分布に対する、抽出された物体の特徴点の分布の傾きとして特定することができる。この傾きは、例えば、物体の特徴点のモデルにおいて、物体が傾きなく水平面に置かれた状態における方向を定義しておくことで特定するようにすればよい。これによれば、特徴点位置情報に基づいて、物体のモデルの特徴点における特徴点の分布に対する、抽出された物体の特徴点の分布の傾きとして、物体の姿勢を特定することができる。
【００４６】
把持可能部検出部１１４は、物体認識部１１３によって認識された物体の位置・姿勢に応じて、物体を把持できるハンド６０の位置・傾きを導出し、ハンド６０がその位置・傾きとなるような把持部３０の軌道を導出する。
【００４７】
この際に、把持可能部検出部１１４は、障害物との接触を避けるために、マッチングの取れた特徴点から把持可能部分（把持可能場所）を特定し、その把持可能部分を把持する軌道を導出する（Ｓ５）。具体的には、把持可能部検出部１１４は、上述したように、物体のうち、抽出された物体の特徴点と、物体のモデルの特徴点とが一致している領域を、把持部３０によって把持可能部分として決定する。すなわち、例えば、抽出された物体の特徴点のうち、物体のモデルの特徴点群と一致する特徴点の重心となる部分を把持可能部分として決定する。
【００４８】
そして、把持可能部検出部１１４は、決定した把持可能部分を把持する（Ｓ６）。すなわち、把持可能部検出部１１４は、アクチュエータ３１ａ、３１ｂ、ハンド６０を駆動することで、導出した軌道で把持部３０を動作させ、物体を把持する。
【００４９】
以上に説明したように、本実施の形態１では、把持対象物の一部分として認識された領域を、把持領域として決定するようにしている。ここで、物体の一部が障害物によって隠れている場合には、障害物によって隠れていない部分が認識されることになる。したがって、把持対象物の一部分から物体を認識した場合であっても、その物体全体のうち、把持対象物の一部分として認識された領域を把持領域として決定することで、障害物で隠れていない領域を把持することができる。そのため、把持対象となる物体を把持する際における把持装置（ロボット）と障害物との接触を回避することができる。
【００５０】
＜発明の実施の形態２＞
続いて、実施の形態２に係るロボット１について説明する。本実施の形態２に係るロボット１の外部構成及び内部構成については、図１及び図２と同様であるため説明を省略する。図６を参照して、本実施の形態２に係るロボット１の処理ブロックについて説明する。図６は、本実施の形態２に係るロボット１の処理ブロック図である。
【００５１】
本実施の形態２に係る制御部１１は、実施の形態１に係る制御部１１と比較して、さらに、未観測領域導出部１１５及び移動方向算出部１１６として機能する。
【００５２】
未観測領域導出部１１５は、物体３Ｄモデル情報が示す物体の３Ｄモデルに基づいて、物体の未観測領域（障害物に隠された領域）を導出する。具体的には、未観測領域導出部１１５は、上述したように物体認識部１３によって特定される物体全体の領域から、特徴間対応付け部１１２によって特徴点が一致すると特定された領域（観測領域）を除いた領域を、物体の未確認領域として導出する。
【００５３】
移動方向算出部１１６は、未観測領域導出部１１５によって導出された未観測領域がなくなるように、把持部３０で把持した物体の移動方向を算出する。具体的には、移動方向算出部１１６は、未観測領域導出部１１５によって特定された物体の未観測領域から、物体の観測領域に向かう方向を、物体の移動方向として算出する。
【００５４】
ここで、物体の移動方向は、物体の未観測領域から物体の観測領域に向かう方向となるのであれば、任意の方法により決定するようにしてよい。例えば、未観測領域の重心から、観測領域の重心に向かう方向としてもよい。ここで、未観測領域の重心は、未観測領域に物体のモデルの特徴点を当てはめた場合における、その未観測領域の特徴点の重心としてもよい。また、観測領域の重心は、観測領域における特徴点（一致する特徴点）の重心としてもよい。
【００５５】
そして、移動方向算出部１１６は、算出した移動方向に、把持した物体を移動させる。具体的には、把持可能部検出部１１４は、アクチュエータ３１ａ、３１ｂを駆動することで、算出した移動方向に把持部３０を動作させ、物体を移動する。これにより、物体の未観測領域が障害物に隠れていない状態にして、物体のより多くの部分を認識することができる。そのため、この後に物体を運搬する場合であっても、より確実に障害物を回避可能な軌道を導出することが可能となる。
【００５６】
続いて、図７及び図８を参照して、本実施の形態２に係るロボット１の処理について説明する。図７は、本実施の形態２に係るロボット１の処理を示すフローチャートである。ここでは、実施の形態１において説明した処理の続きについて説明する。すなわち、ステップＳ１〜Ｓ６については、実施の形態１の説明と同様であるため、説明を省略する。図８に示すように、把持した物体を障害物を回避するように移動させる場合について説明する。
【００５７】
未観測領域導出部１１５は、物体の未観測領域（障害物に隠された領域）を導出する。移動方向算出部１１６は、未観測領域導出部１１５によって導出された未観測領域が少なくなる方向を物体の移動方向として決定する。すなわち、上述したように、移動方向算出部１１６は、未観測領域導出部１１５によって特定された物体の未観測領域から、物体の観測領域に向かう方向を、物体の移動方向として算出する。この移動方向の算出は、例えば、図５に示すような把持前の状態において行われる。移動方向算出部１１６は、アクチュエータ３１ａ、３１ｂを駆動することで、決定した方向に物体を移動させる（Ｓ７）。これにより、図８に示すように、物体の未観測領域が少なくなる方向に、物体が移動される。
【００５８】
一方で、移動方向算出部１１６は、物体の移動中に、定期的に、障害物によって隠れている特徴点の数が、所定の閾値以下となったか否かを判定する（Ｓ８）。すなわち、撮像部５０、特徴抽出部１１１、特徴間対応付け部１１２、及び物体認識部１１３も、定期的に動作して物体の認識内容を更新することになる。ここで、具体的には、移動方向算出部１１６は、障害物によって隠れている特徴点の数として、物体のモデルの特徴点の数から、特徴間対応付け部１１２によって対応付けられた特徴点の数を減算した数を算出することになる。
【００５９】
障害物によって隠れている特徴点の数が、所定の閾値以下となっていないと判定した場合（Ｓ８：Ｎｏ）、移動方向算出部１１６は、未観測領域が少なくなる方向への物体の移動を継続する（Ｓ７）。
【００６０】
障害物によって隠れている特徴点の数が、所定の閾値以下となったと判定した場合（Ｓ８：Ｎｏ）、移動方向算出部１１６は、未観測領域が少なくなる方向への物体の移動を停止し、物体の運搬先となる目標地点への物体の移動を開始する（Ｓ９）。
【００６１】
ここで、理論上は、物体の全体が認識できた場合には、障害物によって隠れている特徴点の数は０となる。しかしながら、実際上は、物体の認識状況によっては、物体の全体を認識したとしても、必ずしも、抽出された物体の特徴点の数と、物体のモデルの特徴点の数とが一致するとは限らない場合もある。また、図８に示すように、物体を把持した場合にはハンド６０によって隠れてしまう特徴点も存在し得る。そのため、上述したように、障害物によって隠れている特徴点の数が０よりも大きい閾値以下となったことをもって、物体の全体が認識されたものとして、算出した移動方向への動作を停止するとよい。
【００６２】
また、物体の全体が認識されたとの判定は、上述の閾値による判定のみに限られない。例えば、移動方向算出部１１６は、未観測領域導出部１１５によって導出された未観測領域から物体全体が認識される移動量を推定し、推定した移動量だけ物体を移動するようにしてもよい。
【００６３】
以上に説明したように、本実施の形態２では、把持対象物の一部分として認識されていない領域から把持対象物の一部分として認識された領域に向かう方向に移動させ、把持対象物のより多くの部分を認識するようにしている。これによれば、物体の未観測領域が障害物に隠れていない状態にして、物体のより多くの部分を認識することができる。そのため、この後に物体を運搬する場合であっても、より確実に障害物を回避可能な軌道を導出することが可能となる。
【００６４】
よって、例えば、物体の移動前に、特徴間対応付け部１１２によって対応付けられる物体のモデルが誤っている場合に、物体の移動後に正しい物体のモデルに対応付けられることになる。したがって、物体認識部１１３によって正しい物体の位置・姿勢を認識することができ、その後に物体を運搬する際に、より確実に障害物を回避可能な軌道を導出することが可能となる。
【００６５】
＜発明の実施の形態３＞
続いて、実施の形態３に係るロボット１について説明する。本実施の形態３に係るロボット１の外部構成及び内部構成については、図１及び図２と同様であるため説明を省略する。図９を参照して、本実施の形態３に係るロボット１の処理ブロックについて説明する。図９は、本実施の形態３に係るロボット１の処理ブロック図である。
【００６６】
本実施の形態２に係る制御部１１は、実施の形態２に係る制御部１１と比較して、さらに、姿勢補正量算出部１１７として機能する。
【００６７】
姿勢補正量算出部１１７は、物体認識部１１３が認識した物体の姿勢が目標地点の設置面に対して傾いている場合に、その傾きがより少なくなるように物体の姿勢を補正する。なお、好ましくは、物体認識部１１３が認識した物体の姿勢と物体の３Ｄモデルに基づいて物体の底面の傾きを算出し、物体の底面と設置面とが平行となる補正量を算出するとよい。
【００６８】
続いて、図１０及び図１１を参照して、本実施の形態３に係るロボット１の処理について説明する。図１１は、本実施の形態３に係るロボット１の処理を示すフローチャートである。ここでは、実施の形態２において説明した処理の続きについて説明する。すなわち、ステップＳ１〜Ｓ９については、実施の形態２の説明と同様であるため、説明を省略する。図１１に示すように、目標地点への物体の移動が概ね完了し、目標地点に物体を置く場合について説明する。
【００６９】
物体認識部１１３は、物体を目標地点に置く場合、把持部３０で隠れていない特徴点から物体の位置・姿勢を認識する（Ｓ１０）。上述したように、障害物によって物体が隠れている場合と同様に、特徴点対応付け部１１２によって物体が認識され、物体認識部１１３によってその位置・姿勢も認識することができる。
【００７０】
姿勢補正量算出部１１７は、物体認識部１１３が認識した物体の姿勢に基づいて、物体の姿勢が目標地点の設置面に対して傾いている場合に、その傾きがより少なくなるように物体の姿勢を補正した後、物体を目標地点に置く（Ｓ１１）。
【００７１】
以上に説明したように、把持部３０（把持装置）により隠されていない把持対象物の認識可能部分から把持対象物の姿勢を特定し、特定した把持対象物の姿勢の前記運搬先の設置面に対する傾きが、より少なくなるように前記把持対象物の姿勢を補正するようにしている。これによれば、物体を倒れることなく安定して置くことができる。
【００７２】
＜本発明の他の実施の形態＞
上述の実施の形態では、撮像部５０として、画像情報を生成するカメラを利用する場合について説明したが、これに限られない。撮像部５０として、周辺の環境の各点までの距離（３次元点群）を示す距離情報を生成するセンサを利用するようにしてもよい。センサとして、例えば、レーザレンジファインダ及び距離画像センサ等のセンサのうち、任意のセンサを利用するようにしてよい。この場合、特徴抽出部１１１は、距離情報が示す３次元点群から特徴点を抽出する。なお、特徴点を抽出するために利用する特徴として、Point Pair Feature等の特徴のうち、任意の特徴を利用するようにしてよい。
【００７３】
なお、本発明は上記の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００７４】
１  ロボット
１０  ロボット本体
２０  移動台車
３０  把持部
４０  頭部
５０  撮像部
６０  ハンド
１１  制御部
１２  記憶部
２１ａ、２１ｂ  アクチュエータ
２２ａ、２２ｂ  車輪
３１ａ、３１ｂ  アクチュエータ
１１１  特徴抽出部
１１２  特徴間対応付け部
１１３  物体認識部
１１４  把持可能部検出部
１１５  未観測領域導出部
１１６  移動方向算出部
１１７  姿勢補正量算出部
１２１  物体情報格納部
【図１】
2015104796.tif 000003
【図２】
2015104796.tif 000004
【図３】
2015104796.tif 000005
【図４】
2015104796.tif 000006
【図５】
2015104796.tif 000007
【図６】
2015104796.tif 000008
【図７】
2015104796.tif 000009
【図８】
2015104796.tif 000010
【図９】
2015104796.tif 000011
【図１０】
2015104796.tif 000012
【図１１】
2015104796.tif 000013