(57)【要約】【課題】所定の空間領域内に配置された複数の対象物の状態を認識することができる技術を提供する。【解決手段】互いに異なる手法によって所定の空間領域における対象物の姿勢状態を算出する複数の演算処理部（２１，２２）と、前記空間領域に配置されている複数の対象物全体の配置状態を認識する状態認識部（２３）と、前記状態認識部（２３）による認識結果に応じて、前記演算処理部（２１，２２）による算出結果の利用方法を決定する方法決定部（２４）と、決定された算出結果の利用方法によって、前記対象物の姿勢状態を認識する対象物認識部（２５）とを備える。【選択図】図３
2020042421.tif 000002
【特許請求の範囲】
【請求項１】
複数の対象物が配置されることが可能な所定の空間領域における、前記対象物の姿勢状態を算出する複数の演算処理部であって、各演算処理部は互いに異なる手法によって前記対象物の姿勢状態を算出する複数の演算処理部と、
前記空間領域に配置されている複数の対象物全体の配置状態を認識する状態認識部と、
前記状態認識部による認識結果に応じて、前記複数の演算処理部による算出結果の利用方法を決定する方法決定部と、
前記方法決定部によって決定された算出結果の利用方法によって、前記対象物の姿勢状態を認識する対象物認識部とを備える対象物認識装置。
【請求項２】
前記複数の演算処理部は、
前記空間領域を撮像した２次元画像のエッジ検出を行い、該エッジ検出結果と、前記対象物の形状、およびテスクチャの少なくとも何れか一方とのパターンマッチングを行うことによって前記対象物の姿勢状態を算出する２次元画像演算処理部と、
前記空間領域に対して所定の３次元形状算出手法によって前記姿勢状態を算出する３次元画像演算処理部と、
を含んでいる請求項１記載の対象物認識装置。
【請求項３】
前記方法決定部は、前記状態認識部による認識結果に応じて、前記複数の演算処理部の中から特定の演算処理部を選択し、
前記対象物認識部は、前記方法決定部によって選択された演算処理部による算出結果に基づいて、前記対象物の姿勢状態を認識する請求項１または２に記載の対象物認識装置。
【請求項４】
前記方法決定部は、前記状態認識部による認識結果に応じて、前記複数の演算処理部による算出結果に対して重み付けを付与し、
前記対象物認識部は、前記方法決定部によって重み付けを付与された、各演算処理部による算出結果に基づいて、前記対象物の姿勢状態を認識する請求項１または２に記載の対象物認識装置。
【請求項５】
前記状態認識部は、前記複数の演算処理部のうち、所定の演算処理部による算出結果に基づいて算出された、前記空間領域に含まれる面の法線方向の分布状態に基づいて、前記複数の対象物全体の配置状態を認識する請求項１〜４のいずれか一項に記載の対象物認識装置。
【請求項６】
前記状態認識部は、前記空間領域を撮像した２次元画像のエッジ検出を行い、該エッジ検出結果と、前記対象物の形状、およびテクスチャの少なくとも何れか一方とのパターンマッチングを行うことによって前記対象物の姿勢状態を算出する２次元画像演算処理部による算出結果の信頼度を算出し、該信頼度に基づいて、前記複数の対象物全体の配置状態を認識する請求項１〜４のいずれか一項に記載の対象物認識装置。
【請求項７】
前記状態認識部は、前記複数の演算処理部のうち、所定の演算処理部による算出結果に関して、前記複数の対象物全体の所定の配置状態毎に機械学習を行った学習結果を参照して、前記複数の対象物全体の配置状態を認識する請求項１〜４のいずれか一項に記載の対象物認識装置。
【請求項８】
対象物に対する把持動作を行うロボットアームと、
請求項１〜７のいずれか一項に記載の対象物認識装置と、
前記対象物認識装置による対象物認識結果に基づいて前記ロボットアームの動作を制御する制御部と、
を備えるマニピュレータ。
【請求項９】
請求項８に記載のマニピュレータと
前記マニピュレータを搬送する無人搬送車とを備える移動ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物認識装置、マニピュレータ、および移動ロボットに関する。
【背景技術】
【０００２】
従来、隣接して荷積した複数のワークのそれぞれをロボットでピッキングすることで、ワークを把持、及び搬送する技術が知られている。これらの技術では、ワークの位置を、予めロボットにティーチングし、ティーチング位置にワークを並べることで、ロボットは、ワークをピッキングする。一方で、複数のワークを並べる位置にずれが生じた場合や、荷積された複数のワークに荷崩れが生じ、ばら積み状態となった場合には、ロボットが各ワークをピッキングすることができなくなる。
【０００３】
そこで、荷積された複数のワークを撮影した全体画像から各ワークのエッジ部分を検出し、エッジ部分を境界として、各ワークの位置と姿勢を認識して、ワークをロボットでピッキングする技術が提案されている。（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５４２９６１４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ワークに荷崩れが生じ、ばら積み状態となった場合、照明条件の悪化や、背景に同色のワークがあること等により各ワークのエッジ部分の検出が困難となる。そのため、ばら積み状態のワークには、撮影画像からワークのエッジを検出して、ワークの位置と姿勢を認識する手法は有効ではなく、ワークの状態を認識することができる技術が望まれていた。
【０００６】
本発明の一態様は、上述した事情に鑑みてなされたものであり、所定の空間領域内に配置された複数の対象物の状態を認識することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記の課題を解決するために、本発明の一態様に係る対象物認識装置は、複数の対象物が配置されることが可能な所定の空間領域における、前記対象物の姿勢状態を算出する複数の演算処理部であって、各演算処理部は互いに異なる手法によって前記対象物の姿勢状態を算出する複数の演算処理部と、前記空間領域に配置されている複数の対象物全体の配置状態を認識する状態認識部と、前記状態認識部による認識結果に応じて、前記複数の演算処理部による算出結果の利用方法を決定する方法決定部と、前記方法決定部によって決定された算出結果の利用方法によって、前記対象物の姿勢状態を認識する対象物認識部とを備える構成である。
【０００８】
前記の構成によれば、所定の空間領域内に配置された複数の対象物全体の配置状態に適した算出手法を用いて、各対象物の形状、位置、向き、傾き等を示す姿勢状態を認識することが可能となる。よって、複数の対象物が整列状態であっても、ばら積み状態であっても、その配置状態によらず、各対象物の姿勢状態を正確に認識することができる。
【０００９】
また、本発明の一態様に係る対象物認識装置は、前記複数の演算処理部は、前記空間領域を撮像した２次元画像のエッジ検出を行い、該エッジ検出結果と、前記対象物の形状、およびテスクチャの少なくとも何れか一方とのパターンマッチングを行うことによって前記対象物の姿勢状態を算出する２次元画像演算処理部と、前記空間領域に対して所定の３次元形状算出手法によって前記対象物の姿勢状態を算出する３次元画像演算処理部と、を含んでいてもよい。
【００１０】
前記の構成によれば、２次元画像演算処理部によって算出された対象物の姿勢状態と、３次元画像演算処理部によって算出された対象物の姿勢状態と、の算出結果のうち少なくとも何れか一方を用いて、各対象物の姿勢状態を認識することができる。よって、複数の対象物全体の配置状態によらず、各対象物の姿勢状態を正確に認識することができる。
【００１１】
また、本発明の一態様に係る対象物認識装置は、前記方法決定部は、前記状態認識部による認識結果に応じて、前記複数の演算処理部の中から特定の演算処理部を選択し、前記対象物認識部は、前記方法決定部によって選択された演算処理部による算出結果に基づいて、前記対象物の姿勢状態を認識してもよい。
【００１２】
前記の構成によれば、２次元画像演算処理部の算出結果と、３次元画像演算処理部の算出結果と、のうち複数の対象物全体の配置状態に応じて、適した算出結果を用いて各対象物の姿勢状態を正確に認識することができる。
【００１３】
また、本発明の一態様に係る対象物認識装置は、前記方法決定部は、前記状態認識部による認識結果に応じて、前記複数の演算処理部による算出結果に対して重み付けを付与し、前記対象物認識部は、前記方法決定部によって重み付けを付与された、各演算処理部による算出結果に基づいて、前記対象物の姿勢状態を認識してもよい。
【００１４】
前記の構成によれば、２次元画像演算処理部の算出結果と、３次元画像演算処理部の算出結果と、の両方を複数の対象物全体の配置状態に応じた配分に応じて重み付けをして用いて、各対象物の姿勢状態を認識することができる。これにより、複数の対象物の配置状態によらず、各対象物の姿勢状態を正確に認識することができる。
【００１５】
また、本発明の一態様に係る対象物認識装置は、前記状態認識部は、前記複数の演算処理部のうち、所定の演算処理部による算出結果に基づいて算出された、前記空間領域に含まれる面の法線方向の分布状態に基づいて、前記複数の対象物全体の配置状態を認識してもよい。
【００１６】
前記の構成によれば、２次元画像演算処理部の算出結果と、３次元画像演算処理部の算出結果との少なくとも何れかの算出結果に基づいて複数の対象物全体の配置状態を認識し、配置状態に適した算出結果を利用して各対象物の姿勢状態を正確に認識することができる。
【００１７】
また、本発明の一態様に係る対象物認識装置は、前記状態認識部は、前記空間領域を撮像した２次元画像のエッジ検出を行い、該エッジ検出結果と、前記対象物の形状、およびテクスチャの少なくとも何れか一方とのパターンマッチングを行うことによって前記対象物の姿勢状態を算出する２次元画像演算処理部による算出結果の信頼度を算出し、該信頼度に基づいて、前記複数の対象物全体の配置状態を認識してもよい。
【００１８】
前記の構成によれば、複数の対象物全体の配置状態を正確に認識することができ、配置状態に応じて適した算出結果を用いて、各対象物の姿勢状態を正確に認識することができる。
【００１９】
また、本発明の一態様に係る対象物認識装置は、前記状態認識部は、前記複数の演算処理部のうち、所定の演算処理部による算出結果に関して、前記複数の対象物全体の所定の配置状態毎に機械学習を行った学習結果を参照して、前記複数の対象物全体の配置状態を認識してもよい。
【００２０】
前記の構成によれば、複数の対象物全体の配置状態を機械学習を行った学習結果を参照して正確に認識することができ、配置状態に応じて適した算出結果を用いて、各対象物の姿勢状態を正確に認識することができる。
【００２１】
前記の課題を解決するために、本発明の一態様に係るマニピュレータは、対象物に対する把持動作を行うロボットアームと、前記対象物認識装置と、前記対象物認識装置による対象物認識結果に基づいて前記ロボットアームの動作を制御する制御部と、を備える構成である。
【００２２】
前記の構成によれば、ロボットアームの動作により、複数の対象物全体の配置状態に因らず、対象物を適切にピッキングすることができる。
【００２３】
前記の課題を解決するために、本発明の一態様に係る移動ロボットは、前記マニピュレータと、前記マニピュレータを搬送する無人搬送車とを備える構成である。
【００２４】
前記の構成によれば、無人搬送車、およびロボットアームの動作により、複数の対象物全体の配置状態に因らず、対象物を適切にピッキングすることができる。
【発明の効果】
【００２５】
本発明の一態様によれば、所定の空間領域内に配置された複数の対象物の状態を認識することができる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態に係る対象物認識装置が使用されるシステム環境の概要を示す図である。
【図２】対象物認識装置のハードウェア構成図である。
【図３】対象物認識装置の要部構成を示すブロック図である。
【図４】（ａ）は整列状態の複数の対象物全体の配置状態を模式的に示し、（ｂ）はばら積み状態の複数の対象物全体の配置状態を模式的に示す図である。
【図５】対象物認識装の処理の流れを示すフローチャートである。
【図６】マニピュレータ、およびマニピュレータを備える移動ロボットの要部構成を示すブロック図である。
【図７】移動ロボットの外観構成を示す斜視図である。
【発明を実施するための形態】
【００２７】
以下、本発明の一側面に係る実施形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。
【００２８】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る対象物認識装置１０が使用されるシステム環境の概要を示す図である。対象物認識装置１０は、ロボットアーム５０で把持し、搬送する複数の対象物２の状態を認識するために用いられる装置である。複数の対象物２は、例えばコンテナー３、またはパレット等によって規定される所定の空間領域に載置されている。対象物認識装置１０は、センサ５から取得したセンサ情報を参照して、所定の空間領域における対象物２の配置状態を認識する。
【００２９】
また、対象物認識装置１０は、所定の空間領域における対象物２の姿勢状態を算出する演算処理部を複数備え、各演算処理部による算出結果の利用方法を、複数の対象物２全体の配置状態に応じて決定する。これにより、対象物認識装置１０は、複数の対象物２全体の配置状態に応じた手法で、各対象物２の姿勢状態（位置、及び姿勢）を正確に認識する。
【００３０】
対象物認識装置１０は、対象物２に対する把持動作を行うロボットアーム５０と、ロボットアーム５０の動作を制御するロボット制御部と、共に、マニピュレータ１２０を構成してもよい。マニピュレータ１２０は、対象物認識装置１０によって認識された対象物２の姿勢状態に応じて、ロボットアーム５０を動かして、対象物２を把持し、搬送する。
【００３１】
また、対象物認識装置１０は、マニピュレータ１２０の機能部として、マニピュレータ１２０を搬送する無人搬送車１５０に搭載され、移動ロボット１００を構成してもよい。
【００３２】
§２  構成例
〔実施形態１〕
以下、本発明の実施形態１に係る対象物認識装置１０の構成について、図１、図２、および図３に基づいて詳細に説明する。図１は、対象物認識装置１０の概略構成を模式的に示す図である。図２は、対象物認識装置１０のハードウェア構成図である。図３は、対象物認識装置１０の要部構成を示すブロック図である。
【００３３】
図１に示すように、対象物認識装置１０は、センサ５、及びＰＬＣ４（Programmable Logic Controller）に接続されている。対象物認識装置１０は、センサ５からのセンサ情報を取得する。また、対象物認識装置１０は、センサ５から取得したセンサ情報に応じた情報をＰＬＣ４に提供する。なお、図１では、１つのセンサ５を示しているが、対象物認識装置１０には、複数のセンサ５が接続されていてもよい。
【００３４】
センサ５は、２次元画像を撮像するカメラ５ａ、ステレオ撮影する２台のカメラ５ａ、および不図示の光照射部から照射された光の反射光をセンシングするセンサの少なくとも何れかを備えている。センサ５は、ロボットアーム５０によって把持、及び搬送される（以下、把持、及び搬送を、ピッキングともいう）複数の対象物２（ワークとも称する）の状態を検出する。対象物２は、対象物２を配置可能な空間領域を既定するコンテナー３内に収容されている。センサ５は、例えば、コンテナー３内に収容されている複数の対象物２の状態を示す画像を撮影し、撮影画像を出力する。
【００３５】
〔対象物認識装置１０のハードウェア構成について〕
図２に示すように、対象物認識装置１０では、ＣＰＵ（Central Processing Unit）１０ａ、メインメモリ１０ｂ、バッファ１０ｃ、ハードディスク１０ｅ、入力インターフェイス１０ｆ、表示コントローラ１０ｇ、ＰＬＣインターフェイス１０ｈ、通信インターフェイス１０ｉ、およびデータリーダ／ライタ１０ｊが、バス１０ｋを介して接続されている。
【００３６】
ＣＰＵ１０ａは、例えばＲＡＭやフラッシュメモリなどの記憶素子に記憶されたプログラムを実行することにより、対象物認識装置１０内の各種構成を統括的に制御するものである。
【００３７】
メインメモリ１０ｂは、ＣＰＵ１０ａが使用する各種データ、及びＣＰＵ１０ａの演算結果などを一時的に記憶する。メインメモリ１０ｂは、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリ等の不揮発性メモリにより構成されている。
【００３８】
バッファ１０ｃは、複数のセンサ５から取得したセンサ情報を一時的に保持する。バッファ１０ｃは、複数のセンサ５から取得した、カメラ５ａが撮像した画像データを一時的に保持する画像バッファ１０ｄを含んでいてもよい。
【００３９】
ハードディスク１０ｅは、対象物認識装置１０で使用される情報を記録し、読み出す記憶装置である。
【００４０】
入力インターフェイス１０ｆは、対象物認識装置１０にマウス１３を接続し、マウス１３からの入力を受け付ける。入力インターフェイス１０ｆは、無線通信（近距離無線通信）、または有線通信を介して、マウス１３を対象物認識装置１０に接続する。
【００４１】
表示コントローラ１０ｇは、対象物認識装置１０にディスプレイ１２を接続し、ディスプレイ１２の表示を制御する。
【００４２】
ＰＬＣインターフェイス１０ｈは、対象物認識装置１０にＰＬＣ４を接続し、ＰＬＣ４間でのデータ送受信を行う。ＰＬＣインターフェイス１０ｈは、無線通信、または有線通信を介して、ＰＬＣ４と通信する。
【００４３】
通信インターフェイス１０ｉは、対象物認識装置１０に、例えばコンソール等の外部機器を接続する。通信インターフェイス１０ｉは、無線通信、または有線通信を介して、外部機器と通信する。
【００４４】
データリーダ／ライタ１０ｊは、対象物認識装置１０に外部のメモリカード１４等の記憶装置を接続し、メモリカード１４間でデータの読み出しと書き込みを行う。
【００４５】
〔対象物認識装置１０の機能構成について〕
図３に示すように、対象物認識装置１０は、取得部１５、通信部１６、記憶部１８、および制御部２０を備えている。
【００４６】
取得部１５は、複数のセンサ５から出力されるセンサ情報を取得する。センサ５は、３Ｄカメラ、および２Ｄカメラの少なくとも何れかを備えている。センサ５は、複数のカメラを備えている構成であってもよい。また、センサ５は、温度センサ、光センサ、エッジセンサおよび赤外線カメラなどのセンサを備えていてもよい。複数のセンサ５は、それぞれ、対象物の画像を取得したり、対象物のエッジ、対象物の表面のテクスチャ、対象物の表面の輝度、および対象物の所定の点までの距離を計測したりすることができてもよい。取得部１５は、センサ５から取得したセンサ情報を制御部２０に提供する。
【００４７】
通信部１６は、対象物認識装置１０、センサ５、およびロボットアーム５０を統括的に制御するＰＬＣ４と通信する。通信部１６は、ＰＬＣ４から受信した制御情報を制御部２０に提供すると共に、制御部２０による認識結果をＰＬＣ４に送信する。
【００４８】
記憶部１８は、制御部２０が用いる各種データを記憶している。
【００４９】
制御部２０は、対象物認識装置１０の全体を統括的に制御する。制御部２０は、２次元画像演算処理部２１、３次元画像演算処理部２２、状態認識部２３、方法決定部２４、対象物認識部２５を含んでいる。なお、以下の説明において、２次元画像演算処理部２１、および３次元画像演算処理部２２をまとめて演算処理部とも称する。
【００５０】
２次元画像演算処理部２１は、取得部１５を介してセンサ５から取得した、所定の空間領域に配置された複数の対象物の２次元画像から、各対象物のエッジ検出を行う。２次元画像演算処理部２１は、２次元画像から検出した対象物のエッジを、記憶部１８に記憶されている対象物の形状のモデルとのパターンマッチングを行うことによって対象物の３次元位置姿勢を認識する。また、２次元画像演算処理部２１は、２次元画像から検出した、対象物の表面のテスクチャのモデルとのパターンマッチングを行うことによって対象物の３次元位置姿勢を認識してもよい。
【００５１】
３次元画像演算処理部２２は、取得部１５を介してセンサ５から取得したセンサ情報に基づいて、所定の３次元形状計測手法により、所定の空間領域に配置された複数の対象物の姿勢状態を算出する。
【００５２】
例えば、センサ５は、不図示の光照射部を備え、当該光照射部から所定の空間領域に配置された複数の対象物に対して２次元パターン（定周期模様）の光、または、直線状の光を照射する。そして、センサ５は、対象物に対して照射した光のパターンの歪みを撮影した画像、または光センサの出力を３次元画像演算処理部２２に提供する。３次元画像演算処理部２２は、対象物に対して照射した光のパターンの歪みに基づいて、所定の空間領域に配置された複数の対象物の３次元形状を計測し、計測した対象物の３次元形状に基づいて、対象物の姿勢状態を算出してもよい。３次元画像演算処理部２２は、センサ５から取得したセンサ情報に基づいて、光の送信から対象に反射して受信するまでの時間によって画素毎に距離を測るＴＯＦ（time of flight）方式によって、所定の空間領域に配置された複数の対象物の姿勢状態を算出してもよい。
【００５３】
また、センサ５は、所定の空間領域に配置された複数の対象物をステレオ撮影する２台のカメラを備え、３次元画像演算処理部２２は、取得部１５を介してセンサ５から取得した、対象物をステレオ撮影した画像を参照して、所定の空間領域に配置された複数の対象物の姿勢状態を算出してもよい。
【００５４】
なお、センサ５は、２次元画像演算処理部２１、および３次元画像演算処理部２２のそれぞれにセンサ出力を提供する構成であってもよい。また、対象物認識装置１０には、２次元画像演算処理部２１、および３次元画像演算処理部２２のそれぞれに対応するセンサ５が複数設けられていてもよい。
【００５５】
このように、対象物認識装置１０は、複数の対象物が配置されることが可能な所定の空間領域における姿勢状態を算出する複数の演算処理部２１，２２を備えている。そして、各演算処理部２１，２２は、互いに異なる手法によって所定の空間領域に配置された複数の対象物の姿勢状態の算出を行う。
【００５６】
状態認識部２３は、演算処理部２１，２２の少なくとも何れかの算出結果に基づいて、空間領域に配置されている複数の対象物全体の配置状態が、整列した状態で配置されている状態である整列状態であるのか、ばらばらに山積みされた状態であるばら積み状態であるのかを認識する。
【００５７】
状態認識部２３は、演算処理部２１，２２の少なくとも何れか一方による、複数の対象物の姿勢状態の算出結果に基づいて、空間領域に含まれる面の法線方向の分布状態を算出し、算出した空間領域に含まれる面の法線方向の分布状態に基づいて、複数の対象物全体の配置状態が整列状態であるのか、ばら積み状態であるのかを認識する。
【００５８】
また、状態認識部２３は、２次元画像演算処理部２１による３次元位置姿勢認識結果の信頼度を算出し、該信頼度が所定値以上であれば整列状態であると判定し、該信頼度が所定値未満であれば、ばら積み状態であると判定することによって、複数の対象物全体の配置状態を認識してもよい。
【００５９】
また、状態認識部２３は、演算処理部２１，２２のうち、所定の演算処理部２１，２２による姿勢状態の算出に関して、複数の対象物全体の所定の配置状態毎に事前に機械学習した学習結果を参照して、現在の複数の対象物全体の配置状態を認識してもよい。記憶部１８には、複数の対象物全体の配置状態が整列状態であるのか、ばら積み状態であるのかを識別するための識別器としての機械学習の学習結果が保存されている。状態認識部２３は、記憶部１８に記憶されている識別器と、演算処理部２１，２２の少なくとも何れか一方による対象物の姿勢状態の算出結果と、を比較することで、現在の複数の対象物全体の配置状態を認識する。
【００６０】
なお、記憶部１８には、複数の対象物全体の配置状態が整列状態である場合について事前に機械学習した学習結果と、複数の対象物全体の配置状態がばら積み状態である場合について事前に機械学習した学習結果と、がそれぞれ記憶されていてもよい。そして、状態認識部２３は、記憶部１８に記憶されている複数の対象物全体の所定の配置状態毎の機械学習の学習結果と、演算処理部２１，２２の少なくとも何れか一方による対象物の姿勢状態の算出結果と、を比較することで、現在の複数の対象物全体の配置状態を認識してもよい。
【００６１】
記憶部１８には、複数の整列状態の画像データ（２Ｄ、３Ｄ）の候補と、複数のばら積み状態の画像データ（２Ｄ、３Ｄ）の候補とが記憶されていてもよい。状態認識部２３は、演算処理部２１，２２によって算出された現在の複数の対象物全体の配置状態と、記憶部１８に記憶されている複数の対象物全体の配置状態毎の複数の画像データとの一致度、または類似度に基づいて、現在の複数の対象物全体の配置状態を認識してもよい。
【００６２】
方法決定部２４は、状態認識部２３による認識結果に応じて、演算処理部２１，２２のそれぞれによる算出結果の利用方法を決定する。
【００６３】
図４は、複数の対象物全体の所定の空間領域における配置状態の例を示す図であり、図４の（ａ）は整列状態の例を示し、図４の（ｂ）はばら積み状態の例を示している。図４の（ａ）に示すように、複数の対象物全体の配置状態が整列状態である場合、複数の対象物の配置領域が、画像では１つの平面のようになる。このため、３次元画像演算処理部２２による算出結果を用いた場合、各対象物の形状、および姿勢を認識するのは困難である。一方で、２次元画像演算処理部２１による算出結果を用いることにより、各対象物の境界、および各対象物の表面のテクスチャ、模様、および文字等の特徴を用いて、各対象物の形状、および対象物の向き、または傾きなどの姿勢を認識することができる。
【００６４】
また、図４の（ｂ）に示すように、複数の対象物全体の配置状態がばら積み状態である場合、複数の対象物のそれぞれの境界、および形状が見えにくくなる。また、センサ５に対して傾いて配置されている対象物では、光照射部からの光の照明条件が変化する。さらに、表面が無地である対象物では、表面のテクスチャ、模様、および文字等を用いて対象物の向き、および傾きを２次元画像算出の結果からは、認識することができない。このため、２次元画像演算処理部２１による算出結果を用いた場合、各対象物の形状、および姿勢を認識するのは困難である。一方で、３次元画像演算処理部２２による算出結果を用いることにより、各対象物の形状、および姿勢を認識することができる。
【００６５】
方法決定部２４は、状態認識部２３による複数の対象物全体の配置状態の認識結果が、整列状態である場合には、２次元画像演算処理部２１による算出結果を用いることを選択し、状態認識部２３による複数の対象物全体の配置状態の認識結果が、ばら積み状態である場合には、３次元画像演算処理部２２による算出結果を用いることを選択してもよい。
【００６６】
また、状態認識部２３による認識結果が整列状態である場合でも、対象物をロボットアーム５０でピッキングするためには、対象物の３次元空間での位置と姿勢に関する奥行情報を取得する必要がある。さらに、箱形状の対象物が複数段重ねて配置されていたり、大きさの違う箱形状の対象物が段違いで並べられていたりする場合には、対象物の重なり状態に関する情報を取得する必要がある。このため、方法決定部２４は、２次元画像演算処理部２１による算出結果を用いて対象物の境界、および対象物の向き等の状態を認識し、さらに、３次元画像演算処理部２２による算出結果を用いて対象物の奥行、および重なり状態を認識するように、算出結果の利用方法を決定してもよい。
【００６７】
また、複数の対象物がばら積み状態である場合でも、２次元の特徴量が対象物の状態を認識するのに有効な場合もある。このため、方法決定部２４は、状態認識部２３による認識結果が、整列状態であるか、ばら積み状態であるかに応じて、２次元画像演算処理部２１による算出結果と、３次元画像演算処理部２２による算出結果とのそれぞれに対して重み付けを付与してもよい。方法決定部２４は、対象物の配置状態について事前に機械学習した学習結果に基づいて、２次元画像演算処理部２１による算出結果と、３次元画像演算処理部２２による算出結果とのそれぞれに対して付与する重みを変化させることができてもよい。
【００６８】
また、方法決定部２４は、状態認識部２３によって算出された、現在の対象物の配置状態と、対象物の所定の配置状態毎に機械学習を行った学習結果との一致度、または類似度を用いて、２次元画像演算処理部２１による算出結果を重視するか、３次元画像演算処理部２２による算出結果を重視するかを決定してもよい。さらに、方法決定部２４は、現在の対象物の配置状態と、配置状態毎の機械学習の学習結果との一致度、または類似度を用いて、２次元画像演算処理部２１による算出結果と、３次元画像演算処理部２２による算出結果とをそれぞれどのくらい重視するかを決定してもよい。
【００６９】
このように、方法決定部２４は、各対象物の状態を認識するために、２次元画像演算処理部２１による算出結果を利用するべきか、３次元画像演算処理部２２による算出結果を利用するべきか、２次元画像演算処理部２１による算出結果と、３次元画像演算処理部２２による算出結果との間を利用するべきかを決定する。
【００７０】
対象物認識部２５は、方法決定部２４によって決定された算出結果の利用方法によって、複数の対象物のうち、特定の対象物の位置、形状、向き、傾き等の状態である姿勢状態を認識する。対象物認識部２５は、ロボットアーム５０によって次にピッキングする対象物の姿勢状態を認識し、認識結果を通信部１６を介してＰＬＣ４に提供する。
【００７１】
対象物認識部２５は、方法決定部２４によって選択された演算処理部２１，２２による対象物の姿勢状態の算出結果の利用方法によって、特定の対象物の姿勢状態を認識する。対象物認識部２５は、方法決定部２４によって、２次元画像演算処理部２１による算出結果を利用することが選択された場合には、２次元画像演算処理部２１による姿勢状態の算出結果を用いて、特定の対象物の位置、形状、向き、傾き等の姿勢状態を認識する。また、対象物認識部２５は、方法決定部２４によって、３次元画像演算処理部２２による算出結果を利用することが選択された場合には、３次元画像演算処理部２２による姿勢状態の算出結果を用いて、特定の対象物の位置、形状、向き、傾き等の姿勢状態を認識する。
【００７２】
また、対象物認識部２５は、方法決定部２４によって重み付けを付与された、各演算処理部２１，２２による対象物の３次元形状の算出結果に基づいて、特定の対象物の姿勢状態を認識してもよい。
【００７３】
〔対象物認識装置１０の処理の流れについて〕
図５は、対象物認識装置１０の処理の流れを示すフローチャートである。
【００７４】
（ステップＳ１）
対象物認識装置１０の制御部２０は、取得部１５を介してセンサ５の出力を取得する。センサ５の出力は、センサ５が備えるカメラによって撮影されたコンテナー３内の対象物２の２Ｄ画像を含んでいてもよい。また、センサ５の出力は、センサ５が備える複数のカメラによってステレオ撮影されたコンテナー３内の対象物２の３Ｄ画像を含んでいてもよい。
【００７５】
（ステップＳ２）
制御部２０は、演算処理部２１，２２の機能により、コンテナー３における複数の対象物２の姿勢状態を算出する。
【００７６】
（ステップＳ３）
制御部２０は、状態認識部２３の機能により、演算処理部２１，２２の少なくとも何れかの算出結果を参照して、コンテナー３に配置されている複数の対象物２全体の配置状態を認識する。
【００７７】
（ステップＳ４）
制御部２０は、方法決定部２４の機能により、ステップ３にて状態認識部２３が認識した複数の対象物２全体の配置状態が、整列状態であるか否かを判定する。方法決定部２４は、複数の対象物２の配置状態が整列状態であると判定すると（ステップＳ４でＹｅｓ）、２次元画像演算処理部２１による姿勢状態の算出結果を利用することを選択して、ステップＳ５に進む。方法決定部２４は、複数の対象物２の配置状態が整列状態ではないと判定すると（ステップＳ４でＮｏ）、３次元画像演算処理部２２による姿勢状態の算出結果を利用することを選択して、ステップＳ６に進む。
【００７８】
（ステップＳ５）
対象物認識部２５は、２次元画像演算処理部２１による姿勢状態の算出結果を利用して、コンテナー３における複数の対象物２のうち、特定の対象物の位置、形状、向き、傾き等の状態である姿勢状態を認識する。
【００７９】
（ステップＳ６）
対象物認識部２５は、３次元画像演算処理部２２による姿勢状態の算出結果を利用して、コンテナー３における複数の対象物２のうち、特定の対象物の位置、形状、向き、傾き等の状態である姿勢状態を認識する。
【００８０】
（ステップＳ７）
制御部２０は、対象物認識部２５の認識結果を通信部１６を介してＰＬＣ４に送信する。ＰＬＣ４は、対象物認識装置１０から提供された対象物２の姿勢状態を参照して、コンテナー３における特定の対象物２を、ロボットアーム５０により把持し、搬送する。
【００８１】
（ステップＳ８）
対象物認識装置１０の制御部２０は、センサ５からのセンサ出力を参照して、コンテナー３は空か（コンテナー３内に対象物２は無いか？）否かを判定する。制御部２０は、コンテナー３に対象物２が残っている場合には（ステップＳ８でＮｏ）、ステップＳ１〜ステップＳ８の処理を繰り返す。制御部２０は、コンテナー３に対象物２が残っていない場合には（ステップＳ８でＹｅｓ）、処理を終了する。
【００８２】
コンテナー３における複数の対象物２の配置状態を示す特徴量は、ロボットアーム５０により特定の対象物をピッキングする都度変わっていく。そのため、制御部２０は、ロボットアーム５０によるピッキングを行う度に、コンテナー３おける複数の対象物２の配置状態を認識して、演算処理部２１，２２の算出結果のどちらを、どれくらい利用するかの配分を決定する。これにより、制御部２０は、所定の空間領域における複数の対象物のうち、特定の対象物の位置、形状、向き、傾き等の状態である姿勢状態を、ロボットアーム５０によるピッキングの度に正確に認識することができる。
【００８３】
〔実施形態２〕
本発明の実施形態２について、以下に説明する。なお、説明の便宜上、上記実施形態１にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【００８４】
図６は、実施形態２に係るマニピュレータ１２０、およびマニピュレータ１２０を備える移動ロボット１００の要部構成を示すブロック図である。図７は、移動ロボット１００の外観構成を示す斜視図である。
【００８５】
図６、および図７に示すように、マニピュレータ１２０は、ロボットアーム５０と、対象物認識装置１０と、ロボット制御部５５（制御部）と、を備えている。
【００８６】
ロボットアーム５０は、コンテナー３内に配置された対象物２に対する把持動作を行う。センサ５は、例えば、ロボットアーム５０における、対象物２を把持する把持部の近傍に設けられている。
【００８７】
ロボット制御部５５は、ＰＬＣ４から提供される、対象物認識装置１０による対象物認識結果に基づく制御情報に応じて、ロボットアーム５０の動作を制御する。また、ロボット制御部５５は、センサ５によって、コンテナー３内に配置された複数の対象物２全体の画像を撮影できるように、センサ５が取り付けられたロボットアーム５０を動作させることができてもよい。
【００８８】
マニピュレータ１２０は、マニピュレータ１２０を搬送する無人搬送車１５０に搭載されていてもよい。移動ロボット１００は、マニピュレータ１２０と、無人搬送車１５０とを備えて構成されている。
【００８９】
無人搬送車１５０は、駆動部１５６と、搬送車制御部１５５と、を備え、自律走行可能なロボットである。
【００９０】
駆動部１５６は、駆動輪、モータ、バッテリー、セーフティーセンサー等の、無人搬送車１５０の走行を実現するための各種ハードウェアを備えている。
【００９１】
搬送車制御部１５５は、ＰＬＣ４からの制御情報に応じて、駆動部１５６の各部を駆動し、無人搬送車１５０を走行させる。
【００９２】
移動ロボット１００は、対象物認識装置１０の制御部２０、ロボット制御部５５、および搬送車制御部１５５が、それぞれＰＬＣ４と通信し、対象物２の認識、ロボットアーム５０による対象物２の把持、および、無人搬送車１５０による対象物２の搬送を、自律して行うことができる。
【００９３】
このように、移動ロボット１００は、対象物認識装置１０の機能により、所定の空間領域に配置された複数の対象物２全体の配置状態を認識し、認識した配置状態に適した算出手法を用いて、ロボットアーム５０で次にピッキンングする特定の対象物２の姿勢状態を認識することができる。そして、移動ロボット１００は、対象物認識装置１０による認識結果におじて、ロボットアーム５０を制御し、対象物２をピッキングするとともに、無人搬送車１５０を制御して、対象物２を所定の場所に搬送することができる。また、移動ロボット１００は、無人搬送車１５０を制御し、複数の対象物２が配置された所定の空間領域からロボットアーム５０により対象物２をピッキングすることができるように、自律して移動することができる。
【００９４】
〔ソフトウェアによる実現例〕
対象物認識装置１０の制御部２０の制御ブロック（特に２次元画像演算処理部２１、３次元画像演算処理部２２、状態認識部２３、方法決定部２４、および対象物認識部２５）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【００９５】
後者の場合、対象物認識装置１０は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、前記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、前記コンピュータにおいて、前記プロセッサが前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。前記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明の一態様は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００９６】
なお、演算処理部２１，２２による対象物の姿勢状態の算出、状態認識部２３による対象物の配置状態の認識、方法決定部２４による姿勢状態の算出に用いる演算処理部２１，２２の算出結果の利用方法、および対象物認識部２５による対象物の姿勢状態の認識の具体構成は本実施形態を限定するものではなく、例えば、以下のような機械学習的手法の何れかまたはそれらの組み合わせを用いることができる。
【００９７】
・サポートベクターマシン（SVM: Support Vector Machine）
・クラスタリング（Clustering）
・帰納論理プログラミング（ILP: Inductive Logic Programming）
・遺伝的アルゴリズム（GP: Genetic Programming）
・ベイジアンネットワーク（BN: Baysian Network）
・ニューラルネットワーク（NN: Neural Network）
ニューラルネットワークを用いる場合、データをニューラルネットワークへのインプット用に予め加工して用いるとよい。このような加工には、データの１次元的配列化、または多次元的配列化に加え、例えば、データオーグメンテーション（Data Augmentation）等の手法を用いることができる。
【００９８】
また、ニューラルネットワークを用いる場合、畳み込み処理を含む畳み込みニューラルネットワーク（CNN: Convolutional Neural Network）を用いてもよい。より具体的には、ニューラルネットワークに含まれる１又は複数の層（レイヤ）として、畳み込み演算を行う畳み込み層を設け、当該層に入力される入力データに対してフィルタ演算（積和演算）を行う構成としてもよい。またフィルタ演算を行う際には、パディング等の処理を併用したり、適宜設定されたストライド幅を採用したりしてもよい。
【００９９】
また、ニューラルネットワークとして、数十〜数千層に至る多層型又は超多層型のニューラルネットワークを用いてもよい。
【０１００】
また、演算処理部２１，２２による対象物の姿勢状態の算出、状態認識部２３による対象物の配置状態の認識、方法決定部２４による姿勢状態の算出に用いる演算処理部２１，２２の算出結果の利用方法、および対象物認識部２５による対象物の姿勢状態の認識に用いられる機械学習は、教師あり学習であってもよいし、教師なし学習であってもよい。
【０１０１】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１０２】
２  対象物
３  コンテナー（所定の空間領域）
５  センサ
１０  対象物認識装置
１５  取得部
１６  通信部
１８  記憶部
２０  制御部
２１  ２次元画像演算処理部（演算処理部）
２２  ３次元画像演算処理部（演算処理部）
２３  状態認識部
２４  方法決定部
２５  対象物認識部
５０  ロボットアーム
５５  ロボット制御部（制御部）
１００  移動ロボット
１２０  マニピュレータ
１５０  無人搬送車
【図１】
2020042421.tif 000003
【図２】
2020042421.tif 000004
【図３】
2020042421.tif 000005
【図４】
2020042421.tif 000006
【図５】
2020042421.tif 000007
【図６】
2020042421.tif 000008
【図７】
2020042421.tif 000009