(57)【要約】【課題】実装が容易で高速な手法により、周囲の障害物と干渉を起こすこと無く物体を把持し、ハンドリングすることができる。【解決手段】実施形態の物体ハンドリング装置は、ハンドを用いて把持した物体を配置先の配置容器内に移送して配置する物体ハンドリング装置であって、ハンドの他の物体に対する干渉領域であるハンド干渉領域及びハンドが把持している物体の他の物体に対する干渉領域である把持物体干渉領域を複合した拡張干渉領域を算出する拡張干渉領域算出部と、配置容器内の障害物情報及び拡張干渉領域に基づいて配置容器内における物体の配置位置及び姿勢のうち、少なくとも物体の配置位置を算出する配置位置算出部と、物体の配置位置に基づいてハンドが把持した物体を解放する解放位置を算出する解放位置算出部と、を備える。【選択図】図１
2020040158.tif 000002
【特許請求の範囲】
【請求項１】
ハンドを用いて把持した物体を配置先の配置容器内に移送して配置する物体ハンドリング装置であって、
前記ハンドの他の物体に対する干渉領域であるハンド干渉領域及び前記ハンドが把持している物体の前記他の物体に対する干渉領域である把持物体干渉領域を複合した拡張干渉領域を算出する拡張干渉領域算出部と、
前記配置容器内の障害物情報及び前記拡張干渉領域に基づいて前記配置容器内における前記物体の配置位置及び姿勢のうち、少なくとも前記物体の配置位置を算出する配置位置算出部と、
前記物体の配置位置に基づいて前記ハンドが前記把持した物体を解放する解放位置を算出する解放位置算出部と、
を備えた物体ハンドリング装置。
【請求項２】
ハンドを用いて把持した物体を配置先の配置容器内に移載する物体ハンドリング装置であって、
前記配置容器内の障害物情報、前記ハンドの他の物体に対する干渉領域であるハンド干渉領域及び前記ハンドが把持している物体の前記他の物体に対する干渉領域である把持物体干渉領域に基づいて前記配置容器内における前記物体の配置位置を算出する配置位置算出部と、
前記配置位置の鉛直方向上方に所定距離以内で離間した位置を前記把持した物体の解放位置である物体解放位置として算出する上方解放位置算出部と、
を備えた物体ハンドリング装置。
【請求項３】
前記上方解放位置算出部は、前記物体の配置位置の鉛直方向真上に把持物体が存在するように、前記物体解放位置を設定する、
請求項２記載の物体ハンドリング装置。
【請求項４】
前記上方解放位置算出部は、前記ハンド干渉領域が容器または容器内の障害物と干渉しないように前記物体解放位置を算出する、
請求項３記載の物体ハンドリング装置。
【請求項５】
前記上方解放位置算出部は、前記解放対象の物体の幾何的または動力学的な特徴量を算出し、前記配置位置と解放時の前記解放対象の物体の位置との距離を算出し、解放後の前記解放対象の物体の物理的安定性を維持して前記物体解放位置の高さを算出する、
請求項２乃至請求項４のいずれか一項に記載の物体ハンドリング装置。
【請求項６】
ハンドを用いて把持した物体を配置先の配置容器内に移載する物体ハンドリング装置であって、
前記配置容器内の障害物情報に基づく既に前記配置容器内に配置されている直方体形状の既配置物体に前記配置容器内に新たに配置する直方体形状の物体を押し当てた状態で配置する場合に、前記既配置物体と前記新たに配置する物体との接触面の面積がより大きくなり、かつ、前記既配置物体の前記接触面に対応する面の面積と、前記新たに配置する物体の前記接触面に対応する面の面積との差がより小さくなる面を前記接触面に対応する二つの面として探索する接触面探索部と、
前記探索の結果に基づいて、前記配置容器内における前記物体の配置位置及び姿勢のうち、少なくとも前記物体の配置位置を算出する配置位置算出部と、
を備えた、
物体ハンドリング装置。
【請求項７】
接触面探索部は、前記既配置物体において前記新たに配置する物体が押し当てられる面の面積を押当先面積ＳＴｏとし、前記新たに配置する物体において既配置物体に押し当てる面の面積を押当元面積ＳＦｒｏｍとし、前記新たに配置する物体において押当方向とは直交する方向に位置する側面の面積を押当元側面積ＳＳｉｄｅとし、前記既配置物体ＰＯＢＪと前記新たに配置する物体の接触面積をＳＣｏｍとした場合に式（１）により押当面スコアＳＣＲを算出し、より押当面スコアＳＣＲが大きい値を有する面を前記接触面に対応する二つの面として探索する請求項４記載の物体ハンドリング装置。
【数１】
2020040158.tif 000004
【請求項８】
前記配置容器内に前記物体の配置位置を設定する配置エリアを複数設け、前記移送対象の物体の種類に応じて前記配置エリアを割り当てるエリア割当部を備えた、
請求項１乃至請求項７のいずれか一項記載の物体ハンドリング装置。
【請求項９】
前記配置位置算出部は、配置対象の前記物体の配置後における前記物体が配置された前記容器全体の重心がより低くなる位置を前記前記物体の配置位置として算出する、
請求項１乃至請求項８のいずれか一項記載の物体ハンドリング装置。
【請求項１０】
前記配置容器内に配置した物体の履歴情報と、前記配置容器内の前記実際に配置されているセンシングデータとを統合し、前記配置容器内の障害物情報を算出する、
請求項１乃至請求項９のいずれか一項記載の物体ハンドリング装置。
【請求項１１】
予め取得した前記ハンドで把持予定の直方体形状の物体のサイズに基づいて、直方体形状の物体のいずれの面を把持した場合に前記配置容器内に配置可能か否かを判定し、
前記判定結果に基づいて、前記配置容器内に配置可能である面を把持対象として前記ハンドで把持する、
請求項１乃至請求項９のいずれか一項記載の物体ハンドリング装置。
【請求項１２】
ハンドを用いて把持した物体を配置先の配置容器内に移送して配置する物体ハンドリング装置をコンピュータにより制御するためのプログラムであって、
前記コンピュータを、
前記ハンドの他の物体に対する干渉領域であるハンド干渉領域及び前記ハンドが把持している物体の前記他の物体に対する干渉領域である把持物体干渉領域を複合した拡張干渉領域を算出する手段と、
前記配置容器内の障害物情報及び前記拡張干渉領域に基づいて前記配置容器内における前記物体の配置位置及び姿勢のうち、少なくとも前記物体の配置位置を算出する手段と、
前記物体の配置位置に基づいて前記ハンドが前記把持した物体を解放する解放位置を算出する手段と、
して機能させるプログラム。
【請求項１３】
ハンドを用いて把持した物体を配置先の配置容器内に移載する物体ハンドリング装置をコンピュータにより制御するためのプログラムであって、
前記コンピュータを、
前記配置容器内の障害物情報、前記ハンドの他の物体に対する干渉領域であるハンド干渉領域及び前記ハンドが把持している物体の前記他の物体に対する干渉領域である把持物体干渉領域に基づいて前記配置容器内における前記物体の配置位置を算出する手段と、
前記配置位置の鉛直方向上方に所定距離以内で離間した位置を前記把持した物体の解放位置である物体解放位置として算出する手段と、
して機能させるプログラム。
【請求項１４】
ハンドを用いて把持した物体を配置先の配置容器内に移載する物体ハンドリング装置をコンピュータにより制御するためのプログラムであって、
前記コンピュータを、
前記配置容器内の障害物情報に基づく既に前記配置容器内に配置されている直方体形状の既配置物体に前記配置容器内に新たに配置する直方体形状の物体を押し当てた状態で配置する場合に、前記既配置物体と前記新たに配置する物体との接触面の面積がより大きくなり、かつ、前記既配置物体の前記接触面に対応する面の面積と、前記新たに配置する物体の前記接触面に対応する面の面積との差がより小さくなる面を前記接触面に対応する二つの面として探索する手段と、
前記探索の結果に基づいて、前記配置容器内における前記物体の配置位置及び姿勢のうち、少なくとも前記物体の配置位置を算出する手段と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、物体ハンドリング装置及びプログラムに関する。
【背景技術】
【０００２】
物流・製造現場等の自動化に向けて、ロボットアーム等を用いたハンドリングシステムの導入が進んでいる。
例えば、把持した物体を容器に移載する用途においては、把持物体だけでなくロボットハンド自体が周囲の障害物と干渉しないことが求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−８５５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このため、ロボットモデルのＣＡＤデータ等から動作経路での干渉をチェックする方法が提案されているが、モデルの作成等にかかる実装コストが大きく、探索的手法のため処理時間が長いという問題点があった。
【０００５】
本発明は、上記に鑑みてなされたものであり、実装が容易で高速な手法により、周囲の障害物と干渉を起こすこと無く物体を把持し、ハンドリングすることが可能な物体ハンドリング装置及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
実施形態の物体ハンドリング装置は、ハンドを用いて把持した物体を配置先の配置容器内に移送して配置する物体ハンドリング装置であって、ハンドの他の物体に対する干渉領域であるハンド干渉領域及びハンドが把持している物体の他の物体に対する干渉領域である把持物体干渉領域を複合した拡張干渉領域を算出する拡張干渉領域算出部と、配置容器内の障害物情報及び拡張干渉領域に基づいて配置容器内における物体の配置位置及び姿勢のうち、少なくとも物体の配置位置を算出する配置位置算出部と、物体の配置位置に基づいてハンドが把持した物体を解放する解放位置を算出する解放位置算出部と、を備える。
【図面の簡単な説明】
【０００７】
【図１】図１は、物体ハンドリングシステムの概略構成図である。
【図２】図２は、制御装置の概要構成ブロック図である。
【図３】図３は、制御装置が実行する配置対象の物体を把持し、移動して、解放するハンドリング処理の手順を示すフローチャートである。
【図４】図４は、既配置物体情報生成部の処理フローチャートである。
【図５】図５は、既配置物体情報の生成処理の処理フローチャートである。
【図６】図６は、統合既配置物体情報の利用の一例の説明図である。
【図７】図７は、事前箱詰め計算及び容器溢れ予測の処理の処理フローチャートである。
【図８】図８は、立方体形状の配置対象の物体の箱詰め姿勢のパターンの説明図である。
【図９】図９は、容器内へ物体を詰める箱詰め方向のパターンの説明図である。
【図１０】図１０は、解放計画生成部の処理フローチャートである。
【図１１】図１１は、箱詰め計画における配置可能位置の算出処理の処理フローチャートである。
【図１２】図１２は、既配置物体と２次元平面との対応関係説明図（その１）である。
【図１３】図１３は、既配置物体と２次元平面との対応関係説明図（その２）である。
【図１４】図１４は、２次元ＢＬ位置の算出フローチャートの一例の説明図である。
【図１５】図１５は、２次元ＢＬ位置の算出動作の説明図である。
【図１６】図１６は、配置可能位置の具体例の説明図である。
【図１７】図１７は、力制御による押し当て制御の一例の説明図である。
【図１８】図１８は、押し当て制御が不可の場合の一例の説明図である。
【図１９】図１９は、アプローチ方向算出処理における判定領域の設定の説明図である。
【図２０】図２０は、アプローチ方向算出処理の説明図である。
【図２１】図２１は押し当て可能面の判定説明図（その１）である。
【図２２】図２２は、押し当て可能面の判定説明図（その２）である。
【図２３】図２３は、押し当て方向及びアプローチ方向の決定の説明図である。
【図２４】図２４は、押し当て方向及びアプローチ方向の決定の他の説明図である。
【図２５】図２５は、物体解放位置の上方で物体を解放する場合の説明図である。
【図２６】図２６は、物体の物理的安定性の考慮を行う場合の原理説明図である。
【図２７】図２７は、ハンドを駆動して、物体解放位置に到達することができない場合の一例の説明図である。
【図２８】図２８は、拡張干渉領域の説明図である。
【図２９】図２９は、ハンドを駆動して物体解放位置に到達することができる場合の一例の説明図である。
【図３０】図３０、拡張干渉領域を用いる場合のハンドと障害物とが干渉するか否かの判定処理の説明図である。
【図３１】図３１は、拡張干渉領域を用いた場合の不具合を解消するための処理の説明図である。
【図３２】図３２は、同一の物体を向きを揃える場合の処理の説明図である。
【図３３】図３３は、空き領域スコアの説明図である。
【図３４】図３４は、複数種類の物体が配置対象として存在する場合の物体配置位置の設定の一例の説明図である。
【図３５】図３５は、重心位置を考慮した配置位置設定の一例の説明図である。
【発明を実施するための形態】
【０００８】
次に実施形態について図面を参照して説明する。
【０００９】
［システム全体構成］
図１は、物体ハンドリングシステムの概略構成図である。
物体ハンドリングシステム１は、制御装置１０、マニピュレータ（ロボットアーム）２０、センサ３０及び筐体４０を備えている。
物体ハンドリングシステム１は、配置対象の物体ＯＢＪを把持位置ＨＰで把持して搬送し、解放位置ＲＰで解放する。このような動作は、配置対象の物体ＯＢＪのピッキング（搬送）と呼ばれている。
【００１０】
マニピュレータ２０は、アーム２１と、ハンド（エンドエフェクタ）２２と、を備えている。アーム２１は、例えば、複数（例えば６個）のサーボモータで回転駆動される回転部２１ａ〜２１ｆを有した多関節ロボットとして構成されている。
また、マニピュレータ２０は、ハンド２２を交換可能に構成されてもよい。その場合、ハンド２２の交換には、図示しないツールチェンジャーのような機構が用いられてもよい。
アーム２１は、多関節ロボットには限定されず、スカラロボットあるいは直動ロボットであってもよい。また、アーム２１は、多関節ロボット、スカラロボット、および直動ロボットのうち少なくとも二つの組み合わせであってもよい。
【００１１】
ハンド２２は、図１の例においては、配置対象の物体ＯＢＪを把持するための吸着機構としての吸着パッド２２ａを有しており、図示しない圧力センサが設けられている。また、吸着パッド２２ａの数、配置、形状、大きさのようなスペックは、種々に変更することができる。
【００１２】
また、配置対象の物体ＯＢＪの把持機構としては、吸着機構に限定されず、例えば、ジャミング機構、挟み込み機構、または多指機構を有してもよい。また、ハンド２２は、吸着機構、ジャミング機構、挟み込み機構あるいは多指機構のうち、少なくとも二つを有してもよい。
【００１３】
ハンド２２は、屈曲部２２ｂを有している。なお、ハンド２２は、屈曲部２２ｂ以外にも、例えば、回転部や伸縮部のような可動部を有することができる。
【００１４】
また、ハンド２２は、センサ３０として、力センサ３１を有している。力センサ３１の位置は、図示の位置には限定されない。また、ハンド２２は、力センサ３１以外の各種センサを有してもよい。
【００１５】
センサ３０は、力センサ３１の他、回転部２１０ａ〜２１０ｆ（図１）に設けられるモータのトルクセンサ、回転センサあるいは電流センサであってもよい。
この場合において、制御装置１０は、ハンド２２に作用する力を、力センサ３１の検出値から得てもよいし、各モータの電流値や回転値（回転センサの検出値）から算出してもよい。
【００１６】
また、物体ハンドリングシステム１は、複数のカメラ３２−１〜３２−４を備えている。カメラ３２−１〜３２−４は、例えば、ＲＧＢ画像カメラや、距離画像カメラ、レーザーレンジファインダ、laser  imaging  detection  and  ranging（ＬｉＤＡＲ）など、画像情報や距離情報（３次元情報）を取得可能に構成されている。
【００１７】
物体ハンドリングシステム１は、例えば、把持用のカメラ３２−１、把持状態確認用あるいはキャリブレーション用のカメラ３２−２、解放用のカメラ３２−３及び一時載置用のカメラ３２−４を、備えている。
【００１８】
把持用のカメラ３２−１は、把持（搬出）する配置対象の物体ＯＢＪが存在している把持位置ＨＰにおいて、配置対象の物体ＯＢＪおよびその周辺領域を撮影かつ検出する。当該把持位置ＨＰにおいて、配置対象の物体ＯＢＪは、例えばコンテナやパレットのような把持用の容器１４ａ内に収容されている。その場合、把持用のカメラ３２−１は、容器１４ａ内の一部または全部を撮影かつ検出する。把持位置ＨＰは、配置対象の物体ＯＢＪの移動開始位置や出発位置とも称することができる。なお、図１においては、容器１４ａは、ベルトコンベアのような搬送機構上に載置されているが、これに限定されるものではない。
【００１９】
キャリブレーション用のカメラ３２−２は、把持用の容器１４ａ外であるとともに把持位置ＨＰよりも上方に設定された配置対象の物体ＯＢＪのキャリブレーション位置において、配置対象の物体ＯＢＪを撮影かつ検出する。
【００２０】
解放用のカメラ３２−３は、配置対象の物体ＯＢＪを解放（搬入）する解放位置ＲＰにおいて、当該解放位置ＲＰおよびその周辺領域を撮影かつ検出する。解放位置ＲＰにおいて、配置対象の物体ＯＢＪは、例えばコンテナやパレットのような解放用の容器１４ｂ内に収容される。その場合、解放用のカメラ３２−３は、容器１４ｂ内の一部または全部を撮影かつ検出する。解放位置ＲＰは、配置対象の物体ＯＢＪの移動終了位置や到着位置とも称することができる。なお、図１では、容器１４ｂは、ベルトコンベアのような搬送機構上に載置されているが、これに限定されるものではない。
【００２１】
仮置き用のカメラ３２−４は、把持位置ＨＰと解放位置ＲＰとの間で配置対象の物体ＯＢＪを一時的に置いておく仮置位置Ｐｔおよびその周辺領域を撮影かつ検出する。仮置位置Ｐｔにおいて、配置対象の物体ＯＢＪは、例えばテーブルやステージのような仮置き面１５上に置かれる。その場合、仮置き用のカメラ３２−４は、仮置き面１５の一部または全部を撮影かつ検出する。仮置位置Ｐｔは、配置対象の物体ＯＢＪの途中位置や経由位置とも称することができる。なお、仮置位置Ｐｔは、載置面で無くてもよい。
【００２２】
筐体４０内には、例えば、モータのような電動アクチュエータを駆動させるための電源装置、流体アクチュエータを駆動させるためのボンベ、タンク、およびコンプレッサー、各種安全機構など、物体ハンドリングシステム１の種々の部品や機器類が収容されうる。なお、筐体４０内に、制御装置１０が収容されるようにすることも可能である。
【００２３】
［制御装置］
図２は、制御装置の概要構成ブロック図である。
制御装置１０は、例えば、統合部５１、画像処理部５２、信号処理部５３、把持計画生成部５４、解放計画生成部５５、動作計画生成部５６、ロボット制御部５７、周辺機器・Ｉ／Ｏ制御部５８（I／Ｏ：インプットアウトプット）、学習制御部５９、エラー検出部６０及び内部ＤＢ６１を有している。
【００２４】
統合部５１は、外部Ｉ／Ｆ７０（Ｉ／Ｆ：インタフェース）からのユーザー入力情報や、物体ハンドリングシステム１の状態、センサ３０による検出値に基づいて、物体ハンドリングシステム１の作業計画の生成や、運用、管理を実行する。
【００２５】
画像処理部５２は、カメラ３２から得られた画像や情報（検出値）を処理し、動作計画や、動作制御、エラー検出、学習等に必要な情報を生成する。
【００２６】
信号処理部５３は、センサ３０から得られた情報（検出値）を処理し、動作計画や、動作制御、エラー検出、等に必要な情報を生成する。信号処理部５３は、検出値取得部の一例である。
【００２７】
把持計画生成部５４は、マニピュレータ２０による配置対象の物体ＯＢＪの把持方法や、把持位置ＨＰや把持姿勢、周囲環境に干渉することなく把持位置ＨＰおよび把持姿勢に移動可能な経路および経由点を算出する処理を、実行する。把持計画生成部５４は、計画生成部の一例であり、把持姿勢決定部の一例でもある。また、把持姿勢は、第一把持姿勢の一例である。
【００２８】
解放計画生成部５５は、マニピュレータ２０が把持した配置対象の物体ＯＢＪを容器１４ｂに箱詰めしたり設置したりする場所における例えば押し付けのような設置方法や、把持方法、解放方法、解放位置ＲＰや解放姿勢、周囲環境に干渉することなく解放位置ＲＰおよび解放姿勢に移動可能な経路および経由点を算出する処理を、実行する。解放計画生成部５５は、計画生成部の一例である。
【００２９】
動作計画生成部５６は、統合部５１からの指示に従って、マニピュレータ２０が現在位置から移動可能な経路（経由点）を経由して把持位置ＨＰや、仮置位置Ｐｔ、解放位置ＲＰ等に移動するよう、動作方法や、動作速度、動作経路等のロボット動作情報の算出を実行する。動作計画生成部５６は、計画生成部の一例である。
【００３０】
ロボット制御部５７は、把持計画生成部５４、解放計画生成部５５、あるいは動作計画生成部５６で生成されたロボット動作情報および統合部５１からの各種の動作切り替え指示等に従って、マニピュレータ２０を含む物体ハンドリングシステム１を制御する。また、ロボット制御部５７は、統合部５１から取得した各種姿勢情報や軌道計画情報等に従い、マニピュレータ２０を制御する。ロボット制御部５７は、動作制御部の一例である。
【００３１】
周辺機器・Ｉ／Ｏ制御部５８は、各種搬送機器の制御や、安全ドアなどの周辺機器７０の制御、各種センサ情報の取得、照明の制御等のための、インプットアウトプット（Ｉ／Ｏ）制御を実行する。
【００３２】
学習制御部５９は、マニピュレータ２０の振動抑制など動作精度向上のためのロボットモデル学習や、対象物５の把持性能向上のための把持制御パラメータ学習、把持データベース学習、作業計画の実施性能を向上のためのエラー検知学習、等の学習機能を制御する。本実施形態では、状況に応じて、後に詳しく述べる力制御において、パラメータの最適な値を選択する。これらの値は人間が経験値から設定してもよいが、機械学習の結果を適用することで、より省力化しながら、より効率の高い処理を実現することができる。
【００３３】
エラー検出部６０は、物体ハンドリングシステム１の状態、作業計画の実施状態、駆動制御状態、配置対象の物体ＯＢＪの把持、搬送の状態等を観測し、エラーを検知する。このエラー検知は、例えば、力センサ３１や力センサ３１の出力を手先座標に変換した値、それらの値をローパスフィルタに通したものを観測し、既定の値を超えたらエラーと判断することで実現できる。この結果、処理中の作業を中断し、その後リカバリ動作に移るなどの処理が可能となる。
【００３４】
内部データベース（ＤＢ）６１は、例えば、いずれも図示しないロボットデータベース、ハンドデータベース、物品データベース、把持データベース及び環境データベースを含んでいる。
【００３５】
ロボットデータベース（ロボットＤＢ）には、例えば、物体ハンドリングシステム１の構造、各部の寸法や重量、慣性モーメント、各駆動部の動作範囲や速度、およびトルク性能が、保存されている。
【００３６】
ハンドデータベース（ハンドＤＢ）には、例えば、ハンド２２の機能、およびハンド２２の把持の特性に関する情報が、保存されている。
【００３７】
物品データベース（物品ＤＢ）には、例えば、配置対象の物体ＯＢＪの名称、識別番号、カテゴリ、全面の画像情報、ＣＡＤモデル情報、重量情報、および把持時の特性情報（柔らかい、壊れやすい、形が変わる等）が、保存されている。
【００３８】
把持データベース（把持ＤＢ）には、例えば、配置対象の物体ＯＢＪについて、ハンド２２の把持方法ごとに、把持可能位置、把持可能姿勢、把持のしやすさなどのスコア情報、把持時の押し込み可能量、把持判定のための判定閾値、およびエラー検知のための判定閾値が、保存されている。ここで、把持方法は、例えば、吸着方式、並行２指方式、平行４指方式、または多関節方式である。
【００３９】
環境データベース（環境ＤＢ）には、例えば、物体ハンドリングシステム１が対応している作業台情報、および物体ハンドリングシステム１の動作範囲や周囲の障害物Ｏを示すような周囲環境情報が、保存されている。
【００４０】
また、外部Ｉ／Ｆ７１は、統合部５１（制御装置１０）と外部機器（不図示）との間のデータの送信および受信を実行する。
【００４１】
［ハンドリング処理の手順］
図３は、制御装置が実行する配置対象の物体を把持し、移動して、解放するハンドリング処理の手順を示すフローチャートである。
【００４２】
まず、統合部５１は、外部Ｉ／Ｆ７１を経て、外部機器から配置対象の物体ＯＢＪの搬送指示（ハンドリング指示）を受け取る（ステップＳ１）。
【００４３】
統合部５１は、カメラ３２１の撮影した画像や、光電センサやマイクロスイッチのような他のセンサ３００の検出値に基づいて、配置対象の物体ＯＢＪまたは当該配置対象の物体ＯＢＪを収容した容器１４ａが把持位置ＨＰに到達したことを検出する（ステップＳ２）。
【００４４】
統合部５１は、配置対象の物体ＯＢＪの把持位置ＨＰおよびその周辺、例えば配置対象の物体ＯＢＪが収容されている容器１４ａ内を、撮像するよう、カメラ３２−１を制御する（ステップＳ３）。
【００４５】
続いて画像処理部５２は、カメラ３２−１が撮影した画像から、配置対象の物体ＯＢＪの有無の判定、配置対象の物体ＯＢＪの把持可能面の識別を実行する。さらに、画像処理部５２は、配置対象の物体ＯＢＪの把持可能面の形状や大きさ、３次元空間内での位置や姿勢等の把持面情報を算出する（ステップＳ４）。
【００４６】
把持計画生成部５４は、把持面情報に基づいて、容器１４ａ内の配置対象の物体ＯＢＪ以外の物品（周辺部品）などの把持位置ＨＰの周辺情報や、把持面情報や物品ＤＢの情報に基づいて、例えば、後述の力制御を実行する際のハンド２２の移動方向や、押付力の大きさ、移動許容範囲のような付加情報を算出する（ステップＳ５）。
【００４７】
把能持計画生成部５４は、把持面情報に基づいて、マニピュレータ２０が配置対象の物体ＯＢＪの把持可面を把持するための複数の把持情報を算出し、算出した複数の把持情報に基づいて、把持対象とする配置対象の物体ＯＢＪ、その把持位置ＨＰ及び把持姿勢を選択あるいは決定する。そして、動作計画生成部５６は、マニピュレータ２０の現在位置から、把持位置ＨＰおよび把持姿勢に至るロボット動作情報を生成する（ステップＳ６）。
この場合において、把持情報には、把持位置情報や把持姿勢情報の他、ステップＳ５で算出した周辺情報及び付加情報が把持情報に含められている。
【００４８】
ステップＳ６の処理において、統合部５１は、把持情報ロボット動作情報の生成については、例えば、マニピュレータ２０配置対象の物体ＯＢＪ以外の物体との干渉あるいは衝突の虞が無いあるいは確率が比較的低い領域では、高速な動作が選択される。他方、例えば、ハンド２２が容器１４ａに近付いたり容器１４ａ内に入ったりするなど、ハンド２２または配置対象の物体ＯＢＪと当該配置対象の物体ＯＢＪ以外の物体との干渉あるいは衝突の虞があるあるいは確率が比較的高い領域では、速度を抑えた動作が選択される。さらに、動作計画生成部５６は、この領域でハンド２２に発生する力の目標値を決定する。
【００４９】
続いて、ロボット制御部５７は、生成されたロボット動作情報に従って動作し、把持位置ＨＰおよび把持姿勢で配置対象の物体ＯＢＪを把持するよう、マニピュレータ２０およびハンド２２を制御する。配置対象の物体ＯＢＪの把持位置ＨＰの周辺領域では、力制御のみによるハンド２２の押付動作が実行され、例えば、吸着パッド２２ａが配置対象の物体ＯＢＪに十分に接触した状態で、吸着等の把持動作が実行される（ステップＳ７）。
【００５０】
この場合において、把持位置ＨＰの周辺領域では、ハンド２２が、配置対象の物体ＯＢＪ以外の物体のような障害物に当たった場合には、与えられた動作方式や力の目標値に従って、ハンド２２が障害物から逃げる動作等が実行される。また、配置対象の物体ＯＢＪの把持面が比較的大きな傾きを持っているような場合にあっても、与えられた押付方法や押付力により、ハンド２２を配置対象の物体ＯＢＪの把持面に倣わせる動作が実行される。
【００５１】
統合部５１またはロボット制御部５７は、マニピュレータ２０やハンド２２の動作や把持の状態を監視し、配置対象の物体ＯＢＪの把持が成功したか否かを判定する（ステップＳ８）。
【００５２】
ステップＳ８の判定において、把持の失敗が確認された場合には（ステップＳ８；Ｎｏ）、統合部５１は、マニピュレータ２０の退避動作や、把持の失敗を示す情報を物品ＤＢに登録する登録処理などのリトライ準備動作を実行する（ステップＳ９）。そして、把持のリトライ動作を行うため、処理を再びステップＳ３に移行する。
【００５３】
ステップＳ８の判定において、把持の成功が確認された場合には（ステップＳ８；Ｙｅｓ）、ロボット制御部５７は、ハンド２２による配置対象の物体ＯＢＪの把持状態が撮影可能な位置に移動するよう、マニピュレータ２０を制御する。また、統合部５１は、当該位置で、配置対象の物体ＯＢＪを把持したハンド２２を撮影するよう、カメラ３２−２を制御する（ステップＳ１０）。
【００５４】
画像処理部５２は、カメラ３２−２が撮影した画像から、例えば、ハンド２２に対する配置対象の物体ＯＢＪの相対位置、ハンド２２に対する配置対象の物体ＯＢＪの相対姿勢、および配置対象の物体ＯＢＪの状態や形状のような、配置対象の物体ＯＢＪ情報を生成する（ステップＳ１１）。
【００５５】
続いて統合部５１は、配置対象の物体ＯＢＪの解放位置ＲＰおよびその周辺、例えば把持されている配置対象の物体ＯＢＪが解放され収容される容器１４ｂ内を、撮影するよう、カメラ３２−３を制御する（ステップＳ１２）。
【００５６】
画像処理部５２は、統合部５１と共働して、カメラ３２−３が撮影した画像から、解放位置ＲＰおよびその周辺における、配置対象の物体ＯＢＪ以外の物体（既配置物体）の有無の判定、当該既配置物体の大きさや、位置、当該既配置物体の表面の位置等の、周辺情報を生成する（ステップＳ１３）。解放位置ＲＰの周辺情報は、障害物情報とも称される。
この場合において、画像処理部５２及び統合部５１は、既配置物体情報生成部として機能している。
【００５７】
図４は、既配置物体情報生成部の処理フローチャートである。
画像処理部５２は、カメラ３２−３が撮影した容器１４ｂを撮影した容器撮影データ（ステレオ画像データ）が入力されると、容器１４ｂ内の画像から既配置物体の配置位置、各既配置物体の大きさ、各既配置物体の向き等の既配置物体情報を生成する。
【００５８】
図５は、既配置物体情報の生成処理の処理フローチャートである。
まず画像処理部５２は、ステレオ画像データである容器撮影データに基づいて３次元データＤ３Ｄを生成し、生成した３次元データに基づいて、既配置物体の配置位置、大きさ、向き等の既配置物体情報ＤＰＯＢＪを生成する（ステップＳ３１）。
【００５９】
この既配置物体情報ＤＰＯＢＪの生成と並行して、統合部５１は、後述の解放計画生成部５５が生成した解放計画に則って、既に配置位置に配置するために解放した物体ＯＢＪの種類、配置位置、向き等の解放物体情報ＤＲＯＢＪを取得する（ステップＳ３２）。
【００６０】
これらの結果、統合部５１は、既配置物体情報ＤＰＯＢＪと、制御装置１０が解放計画処理（ステップＳ３２）を行って実際に容器１４ｂ内に解放した物体ＯＢＪに対応する解放物体情報ＤＲＯＢＪと、を統合し統合既配置物体情報ＤＴＰＯＢＪを生成する（ステップＳ３３）。
【００６１】
図６は、統合既配置物体情報の利用の一例の説明図である。
制御装置１０は、既配置物体情報ＤＰＯＢＪ及び解放物体情報ＤＲＯＢＪを統合し統合既配置物体情報ＤＴＰＯＢＪを生成するに際し、それらの差分に基づいて、図６（ａ）に示すように、既配置物体情報ＤＰＯＢＪに基づけば存在するが、解放物体情報ＤＲＯＢＪに基づけば存在しない物体ＰＯＢＪＮは、実際には存在しないとして除去対象としたり、既配置物体ＰＯＢＪＳの既配置物体情報ＤＰＯＢＪに基づくサイズと、解放物体情報ＤＲＯＢＪに基づくサイズとが異なる場合に、当該既配置物体ＰＯＢＪＳのサイズを解放物体情報ＤＲＯＢＪに基づくサイズに確定したりすることが可能となる。
【００６２】
また、図６（ｂ）に示すように、既配置物体情報ＤＰＯＢＪに基づけば、最も解放用のカメラ３２側に位置する既配置物体ＰＯＢＪＴのみしか認識できない場合に、既配置物体ＰＯＢＪＴの下方側に位置する既配置物体ＰＯＢＪＵ１及び既配置物体ＰＯＢＪＵ２の配置を解放物体情報ＤＲＯＢＪに基づいて推定し、荷崩れ判定に用いるようにすることが可能となる。
【００６３】
続いて解放計画生成部５５は、配置対象の物体ＯＢＪ情報、把持ＤＢの情報、周辺情報等に基づいて、マニピュレータ２０が把持している配置対象の物体ＯＢＪの解放情報を生成する（ステップＳ１４）。解放情報には、解放位置情報や、解放姿勢情報、経由点位置情報、経由点姿勢情報等が含まれる。ここで、解放計画生成部５５は、力制御を伴うハンド２２の押付方向や押付力の大きさ、力制御の移動許容範囲等の付加情報を算出し、これを解放情報に付加する。
【００６４】
ところで、解放計画生成部５５が解放計画を生成するのに先だって、事前箱詰め計算及び容器溢れ予測が必要である。
【００６５】
ここで、事前箱詰め計算及び容器溢れ予測の処理について説明する。
図７は、事前箱詰め計算及び容器溢れ予測の処理の処理フローチャートである。
まず、解放計画生成部５５は、次に把持すべき１個の物体ＯＢＪ、すなわち、新たに容器１４ｂ内に配置しようとする１個の物体ＯＢＪを容器１４ｂ内に入れられるかどうか、容器溢れが起こるか否かを予測する必要がある。
【００６６】
このために、新たに容器１４ｂ内に配置しようとする１個の物体ＯＢＪが発生した場合には、容器溢れ予測要求がなされるので（ステップＳ４１）、解放計画生成部５５は、当該物体ＯＢＪの箱詰め姿勢の６パターンを生成する（ステップＳ４２）。
【００６７】
図８は、立方体形状の配置対象の物体の箱詰め姿勢のパターンの説明図である。
本実施形態においては、立方体形状の物体ＯＢＪの３つの面Ａ１、Ａ２、Ａ３のいずれかを上面とする３つのパターンと、これらの３つの面を９０°回転させた面Ａ１ｒ、Ａ２ｒ、Ａ３ｒの３つの面のうちいずれかを上面とする３つのパターンと、の合計６パターンが存在する。
【００６８】
図９は、容器内へ物体を詰める箱詰め方向のパターンの説明図である。
容器１４ｂ内へ物体ＯＢＪを箱詰めしていく方向のパターンとしては、図９に矢印Ｄ１〜Ｄ８に示すように、以下の８パターンが存在する。
Ｄ１：上端−右端を開始位置とし、左方向に順次箱詰めし、左端まで箱詰めが完了したら、再び右端に戻って左方向に順次箱詰めし、徐々に下側に向かうパターン。
Ｄ２：上端−右端を開始位置とし、下方向に順次箱詰めし、下端まで箱詰めが完了したら、再び上端に戻って下方向に順次箱詰めし、徐々に左側に向かうパターン。
Ｄ３：下端−右端を開始位置とし、左方向に順次箱詰めし、左端まで箱詰めが完了したら、再び右端に戻って左方向に順次箱詰めし、徐々に上側に向かうパターン。
【００６９】
Ｄ４：下端−右端を開始位置とし、上方向に順次箱詰めし、上端まで箱詰めが完了したら、再び下端に戻って上方向に順次箱詰めし、徐々に左側に向かうパターン。
Ｄ５：上端−左端を開始位置とし、右方向に順次箱詰めし、右端まで箱詰めが完了したら、再び左端に戻って右方向に順次箱詰めし、徐々に下側に向かうパターン。
【００７０】
Ｄ６：上端−左端を開始位置とし、下方向に順次箱詰めし、下端まで箱詰めが完了したら、再び上端に戻って下方向に順次箱詰めし、徐々に右側に向かうパターン。
Ｄ７：下端−左端を開始位置とし、右方向に順次箱詰めし、右端まで箱詰めが完了したら、再び左端に戻って右方向に順次箱詰めし、徐々に上側に向かうパターン。
Ｄ８：下端−左端を開始位置とし、上方向に順次箱詰めし、上端まで箱詰めが完了したら、再び下端に戻って上方向に順次箱詰めし、徐々に右側に向かうパターン。
【００７１】
上述したように、箱詰めのパターン数としては、物体ＯＢＪの向き６パターンと、箱詰め方向の８パターンとを掛け合わせて、合計４８（＝６×８）パターンがあり得るので、解放計画生成部５５は、上記４８パターンのうち、いずれかのパターンで箱詰めが可能でるか否かを判定し（ステップＳ４４）、いずれかのパターンで箱詰めが可能である場合には容器溢れはないものとして、容器溢れ予測結果をＯＫとする容器溢れ予測結果を出力し、いずれのパターンでも箱詰めが行えない場合には、容器溢れ予測結果をＮＧとする容器溢れ予測結果を出力する（ステップＳ４５）。
【００７２】
ここで、解放情報の生成について詳細に説明する。
図１０は、解放計画生成部の処理フローチャートである。
まず、解放計画生成部５５は、配置対象の物体ＯＢＪの単体（＝配置対象の物体ＯＢＪを把持しているハンド２２の周辺あるいは周囲物体への干渉を考慮せずにの意）で配置対象の物体ＯＢＪが解放され収容される容器１４ｂへの箱詰め計画を行う（ステップＳ５１）。
【００７３】
次に解放計画生成部は、配置可能位置としての解放位置（ＲＰ）を算出する（ステップＳ５２）。
図１１は、箱詰め計画における配置可能位置の算出処理の処理フローチャートである。
この場合において、解放計画生成部５５には、容器１４ｂのサイズ及び配置物体である配置対象の物体ＯＢＪのサイズ、並びに容器１４ｂ内における既配置物体の位置及びサイズが入力されるものとする。
【００７４】
まず既配置物体を２次元平面に投影する（ステップＳ７１）。
ここで、２次元平面は、容器１４ｂの内底面及び各既配置物体の上面を含む一又は複数の平面である。
【００７５】
図１２は、既配置物体と２次元平面との対応関係説明図（その１）である。
図１２（ａ）に示すように、容器１４ｂの角に一つの既配置物体ＰＯＢＪ１が位置している場合には、図１２（ｂ）が既配置物体ＰＯＢＪ１の上面を含み、容器１４ｂの内底面の形状（長方形状）に規定される２次元平面ＰＬ１であり、図１２（ｃ）が容器１４ｂの内底面に対応した２次元平面ＰＬ２である。
この場合において、既配置物体ＰＯＢＪ１を各２次元平面ＰＬ１、ＰＬ２に対し、上方から投影するものとする。
【００７６】
２次元平面ＰＬ１の上方には、既配置物体ＰＯＢＪ１が存在していないので、図１２（ｂ）に示すように、２次元平面ＰＬ１には、既配置物体ＰＯＢＪ１は投影されていない。これに対し、２次元平面ＰＬ２の上方には、既配置物体ＰＯＢＪ１が存在するため、図１２（ｃ）に示すように、２次元平面ＰＬ２には、既配置物体ＰＯＢＪ１が投影されている。
【００７７】
図１３は、既配置物体と２次元平面との対応関係説明図（その２）である。
図１３（ａ）に示すように、容器１４ｂの角に二つの既配置物体ＰＯＢＪ１１、ＰＯＢＪ１２が位置している場合には、図１３（ｂ）が既配置物体ＰＯＢＪ１２の上面に対応し、容器１４ｂの内底面の形状（長方形状）に規定される２次元平面ＰＬ１１であり、図１３（ｃ）が既配置物体ＰＯＢＪ１１の上面に対応し、容器１４ｂの内底面の形状（長方形状）に規定される２次元平面ＰＬ１２であり、図１３（ｄ）が容器１４ｂの内底面に対応する２次元平面ＰＬ１３である。
【００７８】
この場合においても、２次元平面ＰＬ１１の上方には、既配置物体ＰＯＢＪ１１及び既配置物体ＰＯＢＪ１２のいずれも存在していないので、図１３（ｂ）に示すように、２次元平面ＰＬ１には、既配置物体ＰＯＢＪ１及び既配置物体ＰＯＢＪ１２のいずれも投影されていない。
【００７９】
これに対し、２次元平面ＰＬ１２の上方には、既配置物体ＰＯＢＪ１２が存在するため、図１３（ｃ）に示すように、２次元平面ＰＬ１２には、既配置物体ＰＯＢＪ１２が投影されている。
【００８０】
さらに２次元平面ＰＬ１３の上方には、既配置物体ＰＯＢＪ１１及び既配置物体ＰＯＢＪ１２が存在するため、図１３（ｄ）に示すように、２次元平面ＰＬ１３には、既配置物体ＰＯＢＪ１１及既配置物体ＰＯＢＪ１２が投影されている。
【００８１】
ここで、容器１４ｂの奥行き方向（図１２（ａ）における紙面に交差する方向）をｘ軸とし、容器１４ｂの幅方向（図１２（ａ）における左右方向）をｙ軸とし、容器１４ｂの高さ方向（図１２（ａ）における上下方向）をｚ軸とし、図１２の場合を例として、配置可能位置の算出処理を説明する。
まず、解放計画生成部５５は、座標ｐｚとして、各投影面ＰＬ１、ＰＬ２のＺ座標のうち、最も小さい投影面のｚ座標を設定する（ステップＳ７２）。この場合には、投影面ＰＬ２のｚ座標が設定される。
次に解放計画生成部５５は、２次元ＢＬ（bottom-left）位置を算出する（ステップＳ７３）。
【００８２】
ここで、２次元ＢＬ位置とは、参考文献［「３次元パッキングに対する効率的なbottom-left法」川島ら、数理解析研究所講究録、第１７２６巻、２０１１年、ｐ５０−６１］に開示されている「配置可能位置」であって、所定の２次元平面上の位置のことである。
【００８３】
この場合において、「配置可能位置」とは、直方体を既配置の物体に重なりなく配置可能な位置の中で、以下の３つの条件のうち、少なくともいずれか一つを満たす位置のことである。
【００８４】
（１）  ｚ座標が他のどの位置よりも小さい
（２）  ｚ座標が最小で、ｘ座標が他のどの位置よりも小さい
（３）  ｚ座標及びｘ座標が最小で、ｙ座標が他のどの位置よりも小さい
したがって、２次元ＢＬ位置とは、例えば、ｚ軸に垂直なｘ−ｙ平面上のｘ座標及びｙ座標で表される配置可能位置である。
【００８５】
ここで、２次元ＢＬ位置の算出例について説明する。
図１４は、２次元ＢＬ位置の算出フローチャートの一例の説明図である。
図１５は、２次元ＢＬ位置の算出動作の説明図である。
２次元ＢＬ位置の算出が指示されると、図１５（ａ）に示すように、平面視長方形状の配置対象の物体ＯＢＪの左上の座標を座標（ｐｘ，ｐｙ）とした場合に、ｘ座標ｐｘの初期値を０とし、ｘ方向の長さの増分パラメータを１とし、容器内のｘ方向長さ−配置対象の物体ＯＢＪのｘ方向長さとなるまで処理を繰り返す（ステップＳ８１〜ステップＳ８５）。
【００８６】
同様にｙ座標ｐｙの初期値を０とし、ｙ方向の長さの増分パラメータを１とし、容器内のｙ方向長さ−配置対象の物体ＯＢＪのｙ方向長さとなるまで処理を繰り返す（ステップＳ８２〜ステップＳ８４）。
そしてステップＳ８２の処理が終わった時点で、配置対象の物体ＯＢＪの配置予定位置が既配置物体ＰＯＢＪの配置位置と重複した状態となったか否かを判定する（ステップＳ８３）。
【００８７】
ステップＳ８３の判定において、配置対象の物体ＯＢＪの配置予定位置が、図１５（ｂ）に示すように、既配置物体ＰＯＢＪの配置位置と重複した状態となった場合には（ステップＳ８３；Ｙｅｓ）、ｐｙ＝ｐｙ＋１とし（ステップＳ８４）、再び処理をステップＳ８２に移行する。
【００８８】
ステップＳ８３の判定において、配置対象の物体ＯＢＪの配置予定位置が既配置物体ＰＯＢＪの配置位置と重複していない状態である場合には（ステップＳ８３；Ｎｏ）、当該時点における座標（ｐｘ，ｐｙ）を２次元ＢＬ位置として出力して（ステップＳ８６）、処理を終了する。
【００８９】
一方、容器１４ｂにおいて、全ての座標（ｐｘ，ｐｙ）において、配置対象の物体ＯＢＪの配置予定位置が、図１５（ｂ）に示すように、既配置物体ＰＯＢＪの配置位置と重複した状態となった場合には、２次元ＢＬ位置は存在しないとして（ステップＳ８７）、処理を終了する。
【００９０】
図１６は、配置可能位置の具体例の説明図である。
図１６（ａ）に示すようにｘ軸、ｙ軸及びｚ軸が定義された場合、既配置物体が存在しない場合には、図１６（ｂ）に示すように上記（１）〜（３）の全てを満たすｘ座標、ｙ座標及びｚ座標が最小の位置が配置可能位置ＰＰ１となる。
図１６（ｃ）に示すように、既配置物体ＰＯＢＪが存在する場合には、（３）を満たすｚ座標及びｘ座標が最小で、ｙ座標が他のどの位置よりも小さい位置が配置可能位置ＰＰ２となる。
【００９１】
また、図１６（ｄ）に示すように、既配置物体ＰＯＢＪ１〜ＰＯＢＪ３が存在する場合には、３）を満たすｚ座標及びｘ座標が最小で、ｙ座標が最小となる位置が配置可能位置ＰＰ３となる。
【００９２】
続いて、解放計画生成部５５は、ｚ座標＝ｐｚの平面上の２次元ＢＬ位置（ｐｘ、ｐｙ）が存在するか否かを判定する（ステップＳ７４）。
ステップＳ７４の判定において、２次元ＢＬ位置（ｐｘ、ｐｙ）が存在する場合には、解放計画生成部５５は、座標（ｐｘ、ｐｙ、ｐｚ）を配置可能位置として出力して（ステップＳ７６）、処理を終了する。
【００９３】
ステップＳ７４の判定において、２次元ＢＬ位置（ｐｘ、ｐｙ）が存在しない場合には、解放計画生成部５５は、処理を再びステップＳ７２に移行し、次にｚ座標＝ｐｚが小さい次の投影面について２次元ＢＬ位置、ひいては、配置可能位置を算出する処理を行う。
そして、全ての投影面について配置可能位置が存在しない場合には、配置可能位置なしとして（ステップＳ７７）、処理を終了する。
【００９４】
続いて、解放計画生成部５５は、配置可能位置としても解放位置（ＲＰ）が算出された場合には、配置対象の物体ＯＢＪをハンド２２により把持したままで、解放位置ＲＰまでハンド２２を移動可能か否かを判定する（ステップＳ５３）。
【００９５】
ステップＳ５３の判定において、配置対象の物体ＯＢＪをハンド２２により把持したままで、解放位置ＲＰまでハンド２２を移動可能であると判定された場合には（ステップＳ５３；Ｙｅｓ）、解放計画生成部５５は、当該解放位置ＲＰを当該配置対象の物体ＯＢＪの解放位置リストに追加する（ステップＳ５４）。
続いて解放計画生成部５５は、力制御押し当て面及びアプローチ方向を決定する（ステップＳ５５）。
【００９６】
まず、力制御押し当て面の決定について説明する。
制御装置１０の解放計画生成部５５は、物体解放位置の周囲に容器１４ｂの壁（内底面を含む）あるいは既配置物体があれば、新たに配置しようとする物体ＯＢＪを配置するに際し、物体ＯＢＪを力制御により容器１４ｂの壁あるいは既配置物体に押し当てるように制御している。
【００９７】
図１７は、力制御による押し当て制御の一例の説明図である。
図１７（ａ）は、新たに配置しようとする物体ＯＢＪの下面には、容器１４Ｂの内定面が位置し、ｘ方向及びｙ方向には、容器１４Ｂの壁が位置する場合である。この場合には、制御装置１０は、ハンド２２の力制御を行って、ｘ方向、ｙ方向及びz方向の全ての方向に押し当てるように制御を行う。
【００９８】
図１７（ｂ）は、新たに配置しようとする物体ＯＢＪの下面には、容器１４Ｂの内底面が位置し、ｙ方向には、既配置物体ＰＯＢＪが位置し、ｘ方向には、容器１４Ｂの壁が位置する場合である。この場合には、制御装置１０は、ハンド２２の力制御を行って、ｘ方向、ｙ方向及びz方向の全ての方向に押し当てるように制御を行う。
【００９９】
図１７（ｃ）は、新たに配置しようとする物体ＯＢＪの下面には、既配置物体ＰＯＢＪが位置し、ｘ方向には、容器１４Ｂの壁が位置し、ｙ方向には、容器１４ｂの壁も既配置物体ＰＯＢＪも位置していない場合である。この場合には、制御装置１０は、ハンド２２の力制御を行って、ｘ方向及びz方向に押し当てるように制御を行う。
【０１００】
図１７（ｄ）は、新たに配置しようとする物体ＯＢＪの下面には、既配置物体ＰＯＢＪが位置し、ｘ方向及びｙ方向には、容器１４ｂの壁も既配置物体ＰＯＢＪも位置していない場合である。この場合には、制御装置１０は、ハンド２２の力制御を行って、z方向のみに押し当てるように制御を行う。
【０１０１】
図１８は、押し当て制御が不可の場合の一例の説明図である。
力制御による押し当て制御を行おうとする場合に、図１８（ａ）に示すように、既配置物体ＰＯＢＪの寸法が新たに配置しようとする物体ＯＢＪの寸法よりも小さい場合や、図１８（ｂ）に示すように、既配置物体ＰＯＢＪの押し当て面の面積が小さい場合には、荷崩れが生じたり、新たに配置しようとする物体ＯＢＪが回り込んでしまう虞があることとなるが、この場合には、後述する他の処理で配置不可の判定がなされるため問題は生じない。
【０１０２】
ここで、力制御押し当て面と、新たに配置しようとする物体ＯＢＪの配置位置へのアプローチ方向の算出について説明する。
図１９は、アプローチ方向算出処理における判定領域の設定の説明図である。
【０１０３】
新たに配置しようとする物体ＯＢＪの配置予定位置の周囲に、物体ＯＢＪの側面の平行に所定幅ｗ１の第１判定領域ＤＡ１（ＤＡ１１〜ＤＡ１４）と、物体ＯＢＪの対角線方向に設けた所定幅ｗ１の第２判定領域ＤＡ２（ＤＡ２１〜ＤＡ２４）を設定する。ここで、所定幅ｗ１は、通常物体ＯＢＪを配置する場合に隣接する容器１４ｂの壁、あるいは、既配置物体から離間させることがない距離として設定されている。すなわち、容器１４ｂの壁、あるいは、既配置物体を確実に検出できる距離とされている。
【０１０４】
図２０は、アプローチ方向算出処理の説明図である。
図２０（ａ）に示すように、第２判定領域ＤＡ２としての第２判定領域ＤＡ２２及び当該第２判定領域ＤＡ２２に隣接する第１判定領域ＤＡ１としての第１判定領域ＤＡ１１及び第１判定領域ＤＡ１２の全てにおいて、障害物となる容器１４ｂの壁、あるいは、既配置物体が位置していない場合には、制御装置１０は、図２０（ａ）に矢印で示すように、物体ＯＢＪは配置予定位置に向けて斜めアプローチが可能であると判定を行う。
【０１０５】
また、斜めアプローチができない場合であって、図２０（ｂ）に示すように、第１判定領域ＤＡ１としての第１判定領域ＤＡ１１に障害物となる容器１４ｂの壁、あるいは、既配置物体が位置していない場合には、制御装置１０は、図２０（ｂ）に矢印で示すように、物体ＯＢＪは配置予定位置に向けて横アプローチが可能であるとの判定を行う。
【０１０６】
さらに斜めアプローチ及び横アプローチができない場合であって、図２０（ｃ）に示すように、第１判定領域ＤＡ１のいずれにおいても、障害物となる容器１４ｂの壁、あるいは、既配置物体が位置している場合には、制御装置１０は真上アプローチが可能であると判定する。
【０１０７】
したがって、アプローチ方向算出においては、アプローチ方向の優先順位は、斜めアプローチが最も高く、横アプローチが次に優先順位が高く、真上アプローチが低くなっている。
【０１０８】
次に押し当て可能面の判定について説明する。
図２１は押し当て可能面の判定説明図（その１）である。
この場合において、制御装置１０は、図２１に示すように、図１９に示した第１判定領域ＤＡ１（ＤＡ１１〜ＤＡ１４）内に位置している容器１４ｂの壁面、あるいは、既配置物体ＰＯＢＪの面を探索する。なお、この探索には、第１判定領域ＤＡ１とは幅が異なる判定領域を用いるようにしてもよい。
そして、制御装置１０は、解放位置ＲＰから上下方向に延長した直線上にあって、上下方向の位置が新たに配置しようとする物体ＯＢＪの図心の上下方向の位置と一致する点に押し当て中心点ＴＣＰを設定する。
【０１０９】
図２２は、押し当て可能面の判定説明図（その２）である。
そして、制御装置１０は、押し当て中心点ＴＣＰに対し、押し当て面に沿った水平方向（図２２では、左右方向）の双方に容器１４ｂの壁面、あるいは、既配置物体ＰＯＢＪの面が存在するか否かを判定し、押し当て面に沿った水平方向の双方に容器１４ｂの壁面、あるいは、既配置物体ＰＯＢＪの面が存在する場合に押し当て可能面が存在する（押し当て可能である）と判定する。
【０１１０】
具体的には、図２２（ａ）に示すように、押し当て中心点ＴＣＰに対し、押し当て面に沿った水平方向の双方に既配置物体ＰＯＢＪの面が存在する場合には、制御装置１０は、押し当て可能面が存在する（押し当て可能である）と判定する。
【０１１１】
また、図２２（ｂ）に示す場合も押し当て中心点ＴＣＰに対し、押し当て面に沿った水平方向の双方に既配置物体ＰＯＢＪの面が存在するので、制御装置１０は、押し当て可能面が存在する（押し当て可能である）と判定する。
【０１１２】
また、図２２（ｃ）に示す場合も押し当て中心点ＴＣＰに対し、押し当て面に沿った水平方向の一方に既配置物体ＰＯＢＪ１の面が存在し、押し当て面に沿った水平方向の他方に既配置物体ＰＯＢＪ２の面が存在するので、この場合にも、制御装置１０は、押し当て可能面が存在する（押し当て可能である）と判定する。
【０１１３】
これらに対し、図２２（ｄ）に示す場合には、押し当て面に沿った水平方向の一方には既配置物体ＰＯＢＪの面が存在するが、押し当て面に沿った水平方向の他方には、容器１４ｂの壁面及び既配置物体ＰＯＢＪの面のいずれも存在しないので、制御装置１０は、押し当て可能面が存在しない（押し当て不能である）と判定する。
【０１１４】
次に押し当て方向及びアプローチ方向の決定方法について説明する。
図２３は、押し当て方向及びアプローチ方向の決定の説明図である。
【０１１５】
まず、押し当て方向の決定について説明する。
制御装置１０は、上述した各処理により斜めアプローチ可能、かつ、アプローチ先の２面に押し当て可能面が存在する場合には、押し当て方向を斜め押し当てと決定する。
【０１１６】
また、制御装置１０は、上述した各処理により横アプローチ可能、かつ、アプローチ先の１面に押し当て可能面が存在する場合には、押し当て方向を横押し当てと決定する。
また、制御装置１０は、上述した各処理によりアプローチ可能、かつ、アプローチ先に押し当て可能面が存在しない場合には、押し当て方向を真上押し当てと決定する。
【０１１７】
次にアプローチ方向の決定について説明する。
制御装置１０は、上述した押し当て方向の決定において、押し当て方向が斜め押し当てである場合には、アプローチ方向を斜めアプローチと決定する。
制御装置１０は、上述した押し当て方向の決定において、押し当て方向が横押し当てである場合には、アプローチ方向を斜めアプローチあるいは横アプローチであると決定する。
【０１１８】
制御装置１０は、上述した押し当て方向の決定において、押し当て方向が真上押し当てである場合には、アプローチ方向を斜めアプローチ、横アプローチあるいは真上アプローチのいずれかであると決定する。
従って、押し当て方向とアプローチ方向の組合せは、図２３に示すように６通りとなる。
【０１１９】
以上の押し当て方向及びアプローチ方向の決定方法の説明は、新たに配置しようとする物体ＯＢＪの配置予定位置の近傍に当該物体ＯＢＪよりも高さの高い既配置物体がアプローチに影響を与える範囲内に存在しない場合であるが、新たに配置しようとする物体ＯＢＪの配置予定位置の近傍に当該物体ＯＢＪよりも高さの高い既配置物体がアプローチに影響を与える範囲内に存在する場合には、以下の通りとなる。
【０１２０】
図２４は、押し当て方向及びアプローチ方向の決定の他の説明図である。
以下、図２３と異なる部分のみ説明する。
図２４が図２４と異なる点は、上述した各処理により横アプローチ可能、かつ、アプローチ先の１面に押し当て可能面が存在する場合には、押し当て方向を真上押し当てあるいは横押し当てと決定する点である。
【０１２１】
この結果、上述の例の場合には、押し当て方向が横でアプローチ方向が横アプローチであった場合に、本例では、押し当て方向が横でアプローチ方向が真上アプローチとなる場合がある。
【０１２２】
そして、解放計画生成部５５は、力制御押し当て面及びアプローチ方向を決定すると、次に解放位置ＲＰに到達するまでのハンド２２の経由点を計算する（ステップＳ５６）。
続いて、解放計画生成部５５は、解放位置リストに基づいて、実際に採用する解放位置ＲＰ及び解放位置ＲＰにおけるハンド２２の姿勢を決定して処理を終了する（ステップＳ５７）。
【０１２３】
一方、ステップＳ５３の判定において、配置対象の物体ＯＢＪをハンド２２により把持したままで、解放位置ＲＰまでハンド２２を移動可能ではないと判定された場合には（ステップＳ５３；Ｎｏ）、解放計画生成部５５は、上方解放用の解放位置ＲＰを計算する（ステップＳ５８）。
【０１２４】
すなわち、新たに配置する物体の解放位置まで当該物体をハンドに把持して搬送する場合に、ハンドが既配置物体ＰＯＢＪや容器１４ｂの壁と干渉する場合であっても、物体解放位置の上方から物体ＯＢＪを解放（リリース）すれば配置可能な場合が存在する。
図２５は、物体解放位置の上方で物体を解放する場合の説明図である。
図２５に示すように、新たに配置する物体の物体解放位置がＡＲＬである場合に、ハンド２２の下面が、物体解放位置ＡＲＬの上方の上方解放位置ＵＲＰに到った場合に物体を解放しようとする場合に、物体解放位置ＡＲＬに物体を配置した場合の物体の上面位置ＵＦＰと、上方解放位置ＵＲＰとの差である上方解放距離ＤＵＲが所定の設定値以下である場合に、上方解放を行うようにしている。
【０１２５】
さらも上方解放を行う場合には、物体の物理的安定性を考慮して上方解放を行うか否かを決定している。
【０１２６】
図２６は、物体の物理的安定性の考慮を行う場合の原理説明図である。
配置対象の物体が直方体である場合に、図２６（ａ）及び図２６（ｂ）に示すように、配置対象の物体に対応する物体解放位置ＡＲＬに配置する場合に、配置対象の物体ＯＢＪの側面において、対角線ＤＧＬと鉛直方向（ｚ軸に平行な方向）の辺とのなす角度θ（＝θ１，θ２）が所定の基準角度θｒｅｆより大きいか否かに基づいて、物理的安定性を判定する。
【０１２７】
具体的には、図２６（ａ）に示すように、対角線ＤＧＬと鉛直方向の辺とのなす角度θ１が所定の基準角度θｒｅｆより大きい場合には、配置対象の物体ＯＢＪは、横長に配置されることとなるので、物理的安定性が高く、上方解放を行っても倒れる虞が無いとして、上方解放の対象となる。
【０１２８】
これに対し、図２６（ｂ）に示すように、対角線ＤＧＬと鉛直方向の辺とのなす角度θ２が所定の基準角度θｒｅｆ以下である場合には、配置対象の物体ＯＢＪは、横長に配置されることとなるので、物理的安定性が低く、上方解放を行った場合には、倒れる虞があるとして、上方解放の対象から除かれることとなる。
【０１２９】
そして、解放計画生成部５５は、上述したように物体解放位置ＡＲＬに物体を配置した場合の物体の上面位置ＵＦＰと、上方解放位置ＵＲＰとの差である上方解放距離ＤＵＲが所定の設定値以下であるか否かを判定して、上方解放可能か否かを判定する（ステップＳ５９）。
【０１３０】
ステップＳ５９の判定において、上方解放可能ではない場合には（ステップＳ５９；Ｎｏ）、解放計画生成部５５は、処理をステップＳ５５に移行する。
ステップＳ５９の判定において、上方解放可能である場合には（ステップＳ５９；Ｙｅｓ）、解放計画生成部５５は、当該上方解放位置に対応する解放位置ＲＰを当該配置対象の物体ＯＢＪの解放位置リストに追加する（ステップＳ６０）。
【０１３１】
そして、解放計画生成部５５は、処理をステップＳ５５に移行して、上述したのと同様の処理を行う（ステップＳ５５〜Ｓ５７）。
【０１３２】
ところで、物体を容器内に配置する場合に物体単体では配置可能な状況であっても、物体を搬送するハンドの他の物体（容器の壁、既配置物体等）の存在により干渉が生じ、所望の物体解放位置にハンドを駆動することができない場合がある。
そこで、本実施形態においては、上述したステップＳ５１〜ステップＳ６０の処理と並行してハンドが干渉しないように解放位置ＲＰを求める処理を行っている。
【０１３３】
図２７は、ハンドを駆動して、物体解放位置に到達することができない場合の一例の説明図である。
容器内には、既配置物体が存在しており、新たに配置する物体が当該既配置物体に隣接する位置に存在している。
この場合に図２７（ａ）に示すように、新たに配置する物体を容器底面に設定した物体解放位置まで到達するようにハンドを下降させた場合、図２７（ｂ）に示すように、既配置物体の上面にハンドが当接し、ハンドに把持された新たに配置する物体の物体解放位置に到達することはできない。
【０１３４】
図２８は、拡張干渉領域の説明図である。
そこで、図２８に示すように、上方（ｚ軸方向）からハンド２２を見た場合のハンド２２の干渉領域ＡＲＩ１と、上方から新たに配置する物体ＯＢＪを見た場合の新たに配置する物体の干渉領域ＡＲＩ２の論理和をとった形状に対し、新たに配置する物体の干渉領域ＡＲＩ２の各辺に対応する辺が平行となるように（＝物体の配置時の向きが所望の向きとなるように）長方形状の領域とした拡張干渉領域ＡＲＩＣとして設定する。
【０１３５】
この場合において、新たに配置する物体を平面視した場合に、新たに配置する物体の形状が長方形状ではない場合には新たに配置する物体の干渉領域ＡＲＩ２は、新たに配置する物体の形状に外接する長方形状の領域とする。
【０１３６】
例えば、新たに配置する物体の平面視形状が円である場合には、外接四角形状の領域を干渉領域ＡＲＩ２とする。また、新たに配置する物体の平面視形状が楕円である場合には、長辺の長さが楕円の長軸の長さと等しく、短辺の長さが楕円の短軸の長さと等しい長方形状を干渉領域ＡＲＩ２とする。
【０１３７】
このような構成として、干渉領域ＡＲＩ１と干渉領域ＡＲＩ２との論理和に基づいて拡張干渉領域ＡＲＩＣとして設定することにより、ハンド及び新たに配置する物体のいずれも他の物体と干渉すること無く、確実に物体解放位置まで新たに配置する物体を搬送できる。
【０１３８】
図２９は、ハンドを駆動して物体解放位置に到達することができる場合の一例の説明図である。
より具体的には、図２９（ａ）に示すように、新たに配置する物体を容器底面に設定した物体解放位置まで到達するようにハンド２２を下降させた場合、物体解放位置に至る途中においてもハンドが既配置物体ＰＯＢＪ及び容器１４ｂと干渉することはない。
【０１３９】
そして、最終的には、図２９（ｂ）に示すように、既配置物体の上面や容器１４ｂにハンド２２が当接することなく、ハンド２２に把持された新たに配置する物体ＯＢＪの物体解放位置ＡＲＬに到達し、配置が完了することとなる。
【０１４０】
ところで、上述した拡張干渉領域ＡＲＩＣを用いて物体のハンドリングを行う場合に、既配置物体と新たに配置する物体との間の隙間を詰めてもハンド２２が容器１４の壁や、既配置物体と干渉しない場合に、新たに配置すべき物体を既配置物体と隙間を空けて（離間して）配置する可能性が生じる。
そこで、このような場合に隙間を減らすことが可能であるか否かを判定するようにしている。
【０１４１】
原理的には、新たに配置しようとする物体ＯＢＪを所定の位置に配置したと仮定した場合に、当該物体ＯＢＪの上面にハンド２２を他の障害物（容器１４ｂあるいは既配置物体）と干渉せずに配置できるか否かを判定し、配置できる場合には、隙間を空けずに配置するように制御するのである。
【０１４２】
拡張干渉領域ＡＲＩＣを用いて物体のハンドリングを行う場合に、ハンド２２が障害物と干渉するか否かを判定する処理について説明する。
図３０、拡張干渉領域を用いる場合のハンドと障害物とが干渉するか否かの判定処理の説明図である。
【０１４３】
まず、制御装置１０は、図３０（ａ）に示すように、既配置物体ＰＯＢＪ及び容器１４ｂの壁の情報にもとづいて、新たに配置する物体ＯＢＪを所定の配置予定位置に配置した場合に当該物体ＯＢＪの上面より上にある部分を直方体形状を有する抽出領域ＥＡＲとして抽出する。
続いて図３０（ｂ）に示すように、上面視した場合に抽出領域内にある既配置物体ＰＯＢＪの輪郭及び容器１４ｂの壁を抽出する。
【０１４４】
つぎに、ハンド２２の干渉領域ＡＲＩ１と既配置物体ＰＯＢＪの輪郭及び容器１４ｂの壁とが交差する（共通領域を有する）か否かを判定し、図３０（ｃ）に示すような状態とならず、ハンド２２の干渉領域ＡＲＩ１が既配置物体ＰＯＢＪの輪郭及び容器１４ｂの壁のいずれとも交差しなければ、当該物体ＯＢＪの上面にハンド２２を他の障害物（容器１４ｂあるいは既配置物体）と干渉せずに配置できると判定して、制御装置１０は、隙間を減らすように配置処理を行うこととなる。
【０１４５】
図３１は、拡張干渉領域を用いた場合の不具合を解消するための処理の説明図である。
図３１（ａ）に示すように拡張干渉領域ＡＲＩＣを用いて物体ＯＢＪを配置しようとする場合には、既配置物体ＰＯＢＪとの間に、図３１（ａ）中、両矢印で示すように、隙間が生じることとなる。
【０１４６】
そこで、このような場合には、図３１（ｂ）で示すように、既配置物体ＰＯＢＪの隣りに物体ＯＢＪを単体で配置したと仮定し、図３１（ｃ）に示すように、物体ＯＢＪの上面にハンド２２を配置できるか否かを判定する。
【０１４７】
この判定の結果、図３１（ｃ）に示すように、物体ＯＢＪの上面にハンド２２を配置できると判定した場合には、拡張干渉領域ＡＲＩＣを用いずに解放位置を算出して隙間を詰めるようにしている。
【０１４８】
続いて、解放計画生成部５５は、解放情報に基づいて、把持している配置対象の物体ＯＢＪの解放位置ＲＰおよび解放姿勢を決定する（ステップＳ１５）。
【０１４９】
この場合において、解放計画生成部５５は、は、１個の物体ＯＢＪの配置位置の算出時に解放位置スコアを算出して、最も解放位置スコアの高い配置位置を実際に物体ＯＢＪを配置しようとする位置として確定する。
【０１５０】
例えば、解放位置スコアを、解放方式スコア及びサブスコアをパラメータとする関数で定義する。
関数の一例としては、以下の通りである。
解放位置スコア＝解放方式スコア＋０．１×サブスコア
【０１５１】
ここで、解放方式としては、上方解放及び拡張干渉領域を考慮することなく、物体ＯＢＪ単体で箱詰めが可能な物体単体解放の場合、上方解放の場合及び拡張干渉領域を用いる場合があり、各解放方式の解放方式スコアとしては、例えば、以下の様に設定される。
【０１５２】
解放方式スコア
物体単体解放の場合    ：    ０．３（点）
上方解放の場合        ：    ０．２（点）
拡張干渉領域考慮の場合：    ０．１（点）
【０１５３】
また、サブスコアとしては、例えば、自然姿勢スコア、押当面スコア、空き領域スコアなどが挙げられる。
自然姿勢スコアは、ハンド２２がより自然な姿勢となるほど高い点数となるスコアである。
押当面スコアは、物体の向きが揃う（同じ方向を向いている）ほど高い点数となるスコアである。
空き領域スコアは、物体配置の後の空きスペースが広いほど高い点数となるスコアである。
【０１５４】
ここで、押し当て面スコアについて説明する。
容器１４ｂ内に物体ＯＢＪを配置する場合、同じ物体ＯＢＪの場合には、向きを揃えて配置する方が、充填率が向上する。
このため、同じ物体ＯＢＪを複数、同一の容器１４ｂに配置する場合には、向きを揃えるように配置できるように物体解放位置を選択している。
【０１５５】
図３２は、同一の物体を向きを揃える場合の処理の説明図である。
本実施形態においては、物体解放位置を評価するために後述する押当面スコアを算出し、より押当面スコアが高くなるように新たに配置する物体ＯＢＪの向きを既配置物体ＰＯＢＪの向きに基づいて算出している。
この場合において、図３２（ａ）に示すように、既配置物体ＰＯＢＪに対し、新たに配置する物体ＯＢＪを押し当て方向ＤＲＰから押し当てて配置を行うものとする。
【０１５６】
まず、制御装置１０は、既配置物体ＰＯＢＪの配置情報に基づいて、物体ＯＢＪを押当方向ＤＲＰから押し当てた場合の押し当て面ＰＰＬを抽出し、抽出した押し当て面ＰＰＬに基づいて、新たに配置する物体ＯＢＪの向きを算出するために以下の処理を行う。
【０１５７】
以下の説明においては、図３２（ｂ）に示すように、既配置物体ＰＯＢＪにおいて新たに配置する物体ＯＢＪが押し当てられる面ＰＰ１の面積を押当先面積ＳＴｏとし、新たに配置する物体ＯＢＪにおいて既配置物体ＰＯＢＪに押し当てる面ＰＰ２の面積を押当元面積ＳＦｒｏｍとし、物体ＯＢＪにおいて押当方向ＤＲＰとは直交する方向に位置する側面ＰＰＳの面積を押当元側面積ＳＳｉｄｅとし、既配置物体ＰＯＢＪと新たに配置する物体ＯＢＪの接触面積をＳＣｏｍとする。
そして、次式（１）により押当面スコアＳＣＲを算出する。
【０１５８】
【数１】
2020040158.tif 000003
【０１５９】
この場合において、押当面スコアＳＣＲの算出式の第１項を構成している新たに配置する物体ＯＢＪにおける押当元面積ＳＦｒｏｍと押当元側面積ＳＳｉｄｅとの和は一定値である。そこで、接触面積ＳＣｏｍが一定の場合を想定すると、押当面スコアＳＣＲが最大となるのは、押当面スコアＳＣＲの算出式の第２項を構成している括弧内の式のうち、分数部分の分子が最小となる場合である。すなわち、押当元面積ＳＦｒｏｍと押当先面積ＳＴｏとの差が０、すなわち、押当元面積ＳＦｒｏｍと押当先面積ＳＴｏとが等しい場合である。
【０１６０】
換言すれば、既配置物体ＰＯＢＪと新たに配置する物体ＯＢＪの向きが一致した場合に押当面スコアＳＣＲが最大となるということである。
さらに既配置物体ＰＯＢＪと新たに配置する物体ＯＢＪの接触面積ＳＣｏｍが最大である場合とは、次式（２）を満たす場合である。
ＳＣｏｍ＝ＳＦｒｏｍ＝ＳＴｏ        （２）
【０１６１】
すなわち、既配置物体ＰＯＢＪと新たに配置する物体ＯＢＪが一列に並んでいる場合である。
これらの結果、押当面スコアＳＣＲが実質的に最大となるのは、既配置物体ＰＯＢＪと新たに配置する物体ＯＢＪが同じ向きに一列に並んでいる場合である。
【０１６２】
以上の説明は、既配置物体ＰＯＢＪが一つの場合であったが既配置物体ＰＯＢＪが二つある場合には、各押し当て面についてそれぞれ押当面スコアＳＣＲを算出し、それらの和が最も大きくなる場合が新たに配置する物体ＯＢＪの最適配置位置ということとなる。
また、以上の説明は、既配置物体ＰＯＢＪと新たに配置する物体ＯＢＪが等しい場合であったが、既配置物体ＰＯＢＪと新たに配置する物体ＯＢＪとが異なる場合であってもより押当面スコアＳＣＲがより大きくなるように配置位置を決定すれば、同様に適用が可能であり、より充填率が上がる配置位置を決定することができる。
【０１６３】
次に空き領域スコアについて説明する。
図３３は、空き領域スコアの説明図である。
図３３（ａ）は、新たに配置しようとする物体ＯＢＪの配置計画時の容器１４ｂ内の既配置物体の説明図である。
【０１６４】
図３３（ａ）に示すように、容器１４ｂ内には、既に既配置物体ＰＯＢＪ１〜ＰＯＢＪ４の４個が存在しているものとする。
この場合に物体ＯＢＪを既配置物体ＰＯＢＪ１の上面に配置しようとした場合には、容器１４ｂの上端から物体ＯＢＪを配置したとした場合の物体ＯＢＪの下面位置（＝既配置既配置物体ＰＯＢＪ１の上面位置）に到る高さＥＳＰＨの立方体形状の空間を抽出し、抽出空間ＥＳＰとする。
そして抽出空間ＥＳＰ内に位置する既配置物体を抽出する。
【０１６５】
図３３（ａ）の場合には、抽出空間ＥＳＰ内に位置する既配置物体は、既配置物体ＰＯＢＪ２及び既配置物体ＰＯＢＪ３の二つである。
続いて図３３（ｂ）に示すように、容器１４ｂを上面視した場合に、抽出した既配置物体ＰＯＢＪ２、ＰＯＢＪ３、物体ＯＢＪ及び容器１４ｂによって囲まれており、かつ、既配置物体が存在しない領域を抽出し、空き領域ＶＡＲとする。
【０１６６】
この空き領域ＶＡＲの面積に高さＥＳＰＨを乗じて空きスペースの体積を求める。
続いて空きスペースの体積及び容器１４ｂの内容積（容器１４ｂの物体配置可能部分の総体積）を用いて、空き領域スコアを、例えば、次式により算出する。
空き領域スコア＝空きスペースの体積／容器１４ｂの内容積
【０１６７】
このようにして解放計画生成部５５は、空き領域スコアを算出し、物体ＯＢＪの配置しようとする位置を変えて、より空き領域スコアの高い配置位置を探索することとなる。
常住したように、空き領域スコアを高くするには、空きスペースの体積が大きくすれば良いこととなるので、実効的に制御装置１０は、空き領域をできるだけ確保できるように物体ＯＢＪを中央寄りへの配置を避けるように物体ＯＢＪの位置を探索することとなる。
【０１６８】
また空きスペースの体積を大きくするには、物体ＯＢＪを出来る限り低い場所に配置するのが良いので、実効的に制御装置１０は、物体ＯＢＪをより低い場所に配置しようとすることとなるので、高さ方向に沿って縦に積んでしまうような配置を避けるように物体ＯＢＪの配置位置を探索することとなる。
【０１６９】
これらの結果、解放計画生成部５５は、より充填率の高くなるように物体ＯＢＪの配置位置を探索できるようになっている。
【０１７０】
そして、解放計画生成部５５により解放計画が生成されると、動作計画生成部５６は、マニピュレータ２０の現在位置から、解放位置ＲＰおよび解放姿勢に至るロボット動作情報を生成する。この場合も、ロボット動作情報の生成については、例えば、マニピュレータ２０と配置対象の物体ＯＢＪ以外の物体との干渉あるいは衝突の虞が無いあるいは確率が比較的低い領域では、高速な動作が選択される。他方、例えば、ハンド２２が容器１４ｂに近付いたり容器１４ｂ内に入ったりするなど、ハンド２２または配置対象の物体ＯＢＪと当該配置対象の物体ＯＢＪ以外の物体との干渉あるいは衝突の虞があるあるいは確率が比較的高い領域では、速度を抑えた動作が選択される。さらに、動作計画生成部５６は、この領域でハンド２２に発生する力の目標値を決定する。
【０１７１】
ロボット制御部５７は、生成されたロボット動作情報に従って動作し、解放位置ＲＰへ配置対象の物体ＯＢＪを移動させ当該解放位置ＲＰで配置対象の物体ＯＢＪを解放するよう、マニピュレータ２０およびハンド２２を制御する（ステップＳ１６）。配置対象の物体ＯＢＪの解放位置ＲＰの周辺領域では、配置対象の物体ＯＢＪを容器１４ｂにより高密度に配置するために、容器１４ｂの壁や、既に置かれている十分な大きさの物品がある場合には、ハンド２２により当該壁や物品の被押付面に対して配置対象の物体ＯＢＪを押し付ける動作が、実行される。また、被押付面が比較的大きな傾きを持っているような場合にあっても、与えられた押付方法や押付力により、配置対象の物体ＯＢＪを被押付面に倣わせて、密着した状態で解放する動作が実行される。
【０１７２】
配置対象の物体ＯＢＪの解放後、ロボット制御部５７は、容器１４ｂから脱出するようハンド２２を制御し、待機姿勢をとるようマニピュレータ２０を制御する（ステップＳ１７）。
【０１７３】
重力補償部５７ｄは、力センサ３１の検出値のリセット（この状態での検出値を０とする）のような重力補償を実行する（ステップＳ１８）。ここで、次の配置対象の物体ＯＢＪの把持姿勢が既に決定している場合には、ロボット制御部５７は、ハンド２２が、把持姿勢と略同じキャリブレーション姿勢となるよう、マニピュレータ２０およびハンド２２を制御し、この状態で、重力補償部５７ｄは、重力補償を実行する。
【０１７４】
続いて統合部５１は、外部Ｉ／Ｆ７１を経て、外部機器から次の配置対象の物体ＯＢＪの搬送指示（ハンドリング指示）を受け取ったか否かを判定する（ステップＳ１９）。
【０１７５】
ステップＳ１９の判定において、統合部５１は、外部Ｉ／Ｆ１３０を経て、外部機器から次の配置対象の物体ＯＢＪの搬送指示（ハンドリング指示）を受け取った場合には（ステップＳ１９；Ｙｅｓ）、処理をステップＳ２へ移行し、次の配置対象の物体ＯＢＪに対する一連の制御を開始する。
一方ステップＳ１９の判定において、次の配置対象の物体ＯＢＪについての搬送指示を受け取っていない場合には（ステップＳ１９；Ｎｏ）、一連の制御を終了する。
【０１７６】
以上の説明のように、本実施形態によれば、実装が容易で高速な手法により、周囲の障害物と干渉を起こすこと無く物体を把持し、ハンドリングすることが可能となる。
【０１７７】
次に実施形態の変形例について説明する。
図３４は、複数種類の物体が配置対象として存在する場合の物体配置位置の設定の一例の説明図である。
【０１７８】
図３４に示すように、複数種類の物体ＯＢＪ１、ＯＢＪ２が配置対象として存在する場合には、それぞれの種類が同一配置エリアに配置されるように、物体解放位置ＡＲＬ１〜ＡＲＬ３が設定される。
具体的には、物体ＯＢＪ１に対しては、配置エリアＤＡＲ１が割り当てられ、物体ＯＢＪ２に対しては配置エリアＤＡＲ２が割り当てられる。
【０１７９】
ここで、配置エリアＤＡＲ１には、物体ＯＢＪ１に対応する物体解放位置ＡＲＬ１及び物体解放位置ＡＲＬ２が割り当てられる。
また、配置エリアＤＡＲ２には、物体ＯＢＪ２に対応する物体解放位置ＡＲＬ３が割り当てられる。
【０１８０】
この結果、同一の物体解放位置には同種の物体のみが配置されることとなるので、容器内における物体充填率が向上し、荷崩れしにくくなる。
【０１８１】
また、新たに配置する物体ＯＢＪを配置可能な位置が複数存在する場合には、制御装置１０は、容器１４ｂ内の配置物の重心位置がより低くなるように配置位置を設定している。
【０１８２】
図３５は、重心位置を考慮した配置位置設定の一例の説明図である。
新たに配置する物体ＯＢＪの配置位置設定に際し、図３５（ａ）に示すように、容器１４ｂの底面に位置する第１の物体解放位置ＡＲＬ１１と、図３５（ｂ）に示すように、容器１４ｂの底面上に既に配置されている既配置物体ＰＯＢＪの上面に位置する第２の物体解放位置ＡＲＬ１２と、が存在する場合、容器１４ｂ内に物体ＯＢＪを配置後の配置物全体の重心位置がより低くなるのは、図（ａ）に示す場合である。
【０１８３】
したがって、制御装置１０は、新たに配置する物体ＯＢＪの配置位置設定に際し容器１４ｂ内の配置物の重心位置がより低くなる第１の物体解放位置ＡＲＬ１１を第２の物体解放位置ＡＲＬ１２よりも優先して選択するようになっている。
この選択に従って、実際に物体ＯＢＪを配置するようにすれば、容器１４ｂの搬送時（運搬時）の安定性が向上し、荷崩れをより一層防止することが可能となる。
【０１８４】
本実施形態の制御装置は、ＣＰＵなどの制御装置と、ＲＯＭ（Read  Only  Memory）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１８５】
本実施形態の制御装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＵＳＢメモリ、ＳＳＤ等の半導体メモリ装置、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１８６】
また、本実施形態の制御装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の制御装置で実行される〜プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施形態の制御装置のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１８７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１８８】
１  物体ハンドリングシステム
１０  制御装置（物体ハンドリング装置）
２２  ハンド
３２−１〜３２−４  カメラ
５５  解放計画生成部
ＯＢＪ  物体
ＰＯＢＪ  既配置物体
【図１】
2020040158.tif 000005
【図２】
2020040158.tif 000006
【図３】
2020040158.tif 000007
【図４】
2020040158.tif 000008
【図５】
2020040158.tif 000009
【図６】
2020040158.tif 000010
【図７】
2020040158.tif 000011
【図８】
2020040158.tif 000012
【図９】
2020040158.tif 000013
【図１０】
2020040158.tif 000014
【図１１】
2020040158.tif 000015
【図１２】
2020040158.tif 000016
【図１３】
2020040158.tif 000017
【図１４】
2020040158.tif 000018
【図１５】
2020040158.tif 000019
【図１６】
2020040158.tif 000020
【図１７】
2020040158.tif 000021
【図１８】
2020040158.tif 000022
【図１９】
2020040158.tif 000023
【図２０】
2020040158.tif 000024
【図２１】
2020040158.tif 000025
【図２２】
2020040158.tif 000026
【図２３】
2020040158.tif 000027
【図２４】
2020040158.tif 000028
【図２５】
2020040158.tif 000029
【図２６】
2020040158.tif 000030
【図２７】
2020040158.tif 000031
【図２８】
2020040158.tif 000032
【図２９】
2020040158.tif 000033
【図３０】
2020040158.tif 000034
【図３１】
2020040158.tif 000035
【図３２】
2020040158.tif 000036
【図３３】
2020040158.tif 000037
【図３４】
2020040158.tif 000038
【図３５】
2020040158.tif 000039