(57)【要約】【課題】ロボットによる対象物体の保持をより短時間で行うための情報処理装置を提供する。【解決手段】情報処理装置２０は、対象物体４１を保持するためのロボット１０の動作を制御する。情報処理装置２０は、対象物体４１の画像に基づいて、位置毎の対象物体４１の保持成否確率分布を決定し、保持成否確率分布に基づいて対象物体４１の保持位置を決定する。情報処理装置２０は、決定した保持位置に基づいてロボット１０を移動させて、ロボット１０に対象物体４１の保持動作を行わせる。情報処理装置２０は、ロボット１０による対象物体４１の保持が失敗した場合に、保持成否確率分布に基づいて前回とは異なる保持位置を決定して、再度、ロボット１０に対象物体４１の保持動作を行わせる。【選択図】図１
2019188580.tif 000002
【特許請求の範囲】
【請求項１】
操作対象である対象物体を保持するためのロボットの動作を制御する情報処理装置であって、
前記対象物体の視覚情報を取得する取得手段と、
前記視覚情報に基づいて、位置毎の前記対象物体の保持の成否の確率分布を決定する確率分布決定手段と、
前記確率分布に基づいて前記対象物体の保持位置を決定する保持位置決定手段と、
前記保持位置に基づいて前記ロボットを移動させて、前記ロボットに前記対象物体の保持動作を行わせる制御手段と、
前記ロボットによる前記対象物体の保持の成否を判定する判定手段と、を備え、
前記保持位置決定手段は、前記判定手段が、前記ロボットによる前記対象物体の保持が失敗したと判定した場合に、前記確率分布に基づいて前回とは異なる保持位置を決定することを特徴とする、
情報処理装置。
【請求項２】
前記確率分布決定手段は、前記ロボットによる前記対象物体の保持の成否に基づいて作成された学習モデルを用いて、前記確率分布を決定することを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記保持位置決定手段は、前記確率分布で成功の確率が所定値より高く前記保持位置を含む範囲内の前記保持位置とは異なる位置、或いは前記確率分布で成功の確率が前記所定値より高く前記範囲外の位置を、前回とは異なる保持位置に決定することを特徴とする、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記ロボットが物体に接触したときに作用する外力を表す力覚情報を取得する力覚情報取得手段をさらに備えており、
前記保持位置決定手段は、前記力覚情報及び前記確率分布に基づいて前回とは異なる保持位置を決定することを特徴とする、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記ロボットと前記対象物体との近接距離を表す近接覚情報を取得する近接覚情報取得手段をさらに備えており、
前記保持位置決定手段は、前記近接覚情報及び前記確率分布に基づいて前回とは異なる保持位置を決定することを特徴とする、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項６】
前記ロボットの運用時に優先する制約条件を格納する格納手段をさらに備えており、
前記保持位置決定手段は、前記制約条件及び前記確率分布に基づいて前回とは異なる保持位置を決定することを特徴とする、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項７】
前記格納手段は、前記ロボットの移動に関するパラメータ或いは前記対象物体を含む物体の配置に関する条件を前記制約条件として格納することを特徴とする、
請求項６に記載の情報処理装置。
【請求項８】
前記保持位置決定手段は、前記確率分布に基づいて前記保持位置の候補となる複数の保持位置候補と各保持位置候補の優先順位とを決定し、
前記制御手段は、前記保持位置決定手段に代わって、前記優先順位に基づいて前記複数の保持位置候補から前記保持位置を決定し、該保持位置に基づいて前記ロボットを移動させて、前記ロボットに前記対象物体の保持動作を行わせることを特徴とする、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項９】
前記制御手段は、前記判定手段が、前記ロボットによる前記対象物体の保持が失敗したと判定した場合に、前記保持位置決定手段に代わって、前記優先順位に基づいて前回とは異なる保持位置を前記複数の保持位置候補から決定することを特徴とする、
請求項８に記載の情報処理装置。
【請求項１０】
前記判定手段が、前記ロボットによる前記対象物体の保持が失敗したと判定した場合にそのときの保持位置を記憶する記憶手段をさらに備えており、
前記保持位置決定手段は、該対象物体の状態が変化するまで、該保持位置を保持位置に決定しないことを特徴とする、
請求項１〜９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記取得手段は、前記視覚情報として、前記対象物体の画像情報及び前記対象物体の距離情報のいずれかを取得することを特徴とする、
請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
操作対象である対象物体を保持するためのロボットの動作を制御する情報処理装置により実行される方法であって、
前記対象物体の視覚情報に基づいて、位置毎の前記対象物体の保持の成否の確率分布を決定し、
前記確率分布に基づいて前記対象物体の保持位置を決定し、
前記保持位置に基づいて前記ロボットを移動させて、前記ロボットに前記対象物体の保持動作を行わせ、
前記ロボットによる前記対象物体の保持が失敗したと判定した場合に、前記確率分布に基づいて前回とは異なる保持位置を決定して、この前回とは異なる保持位置に基づいて、再度、前記ロボットを移動させて、前記ロボットに前記対象物体の保持動作を行わせることを特徴とする、
制御方法。
【請求項１３】
操作対象である対象物体を保持するためのロボットと、
前記ロボットの動作を制御する情報処理装置と、を備え、
前記情報処理装置は、
前記対象物体の視覚情報を取得する取得手段と、
前記視覚情報に基づいて、位置毎の前記対象物体の保持の成否の確率分布を決定する確率分布決定手段と、
前記確率分布に基づいて前記対象物体の保持位置を決定する保持位置決定手段と、
前記保持位置に基づいて前記ロボットを移動させて、前記ロボットに前記対象物体の保持動作を行わせる制御手段と、
前記ロボットによる前記対象物体の保持の成否を判定する判定手段と、を備え、
前記保持位置決定手段は、前記判定手段が、前記ロボットによる前記対象物体の保持が失敗したと判定した場合に、前記確率分布に基づいて前回とは異なる保持位置を決定することを特徴とする、
ロボットシステム。
【請求項１４】
前記ロボットは、前記対象物体を保持するための保持装置が着脱可能に取り付けられたマニピュレータと、
前記対象物体の前記視覚情報を生成する視覚センサと、をさらに備えることを特徴とする、
請求項１３に記載のロボットシステム。
【請求項１５】
前記ロボットは、前記保持装置に作用する外力を検出して、検出した前記外力を表す力覚情報を生成する力覚センサをさらに備え、
前記保持位置決定手段は、前記力覚情報及び前記確率分布に基づいて前回とは異なる保持位置を決定することを特徴とする、
請求項１４に記載のロボットシステム。
【請求項１６】
前記ロボットは、前記保持装置と前記対象物体との近接距離を検出して、検出した前記近接距離を表す近接覚情報を生成する近接覚センサをさらに備え、
前記保持位置決定手段は、前記近接覚情報及び前記確率分布に基づいて前回とは異なる保持位置を決定することを特徴とする、
請求項１４に記載のロボットシステム。
【請求項１７】
操作対象である対象物体を保持するためのロボットの動作を制御するコンピュータを、
前記対象物体の視覚情報を取得する取得手段、
前記視覚情報に基づいて、位置毎の前記対象物体の保持の成否の確率分布を決定する確率分布決定手段、
前記確率分布に基づいて前記対象物体の保持位置を決定する保持位置決定手段、
前記保持位置に基づいて前記ロボットを移動させて、前記ロボットに前記対象物体の保持動作を行わせる制御手段、
前記ロボットによる前記対象物体の保持の成否を判定する判定手段、として機能させ、
前記保持位置決定手段に、前記判定手段が、前記ロボットによる前記対象物体の保持が失敗したと判定した場合に、前記確率分布に基づいて前回とは異なる保持位置を決定させる、
コンピュータプログラム。
【請求項１８】
請求項１７に記載のコンピュータプログラムを記憶する、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作対象となる対象物体を操作するロボットの制御技術に関する。
【背景技術】
【０００２】
アーム等の保持装置を備えるロボットを用いて対象物体を保持する場合、ロボットの動作を制御するコンピュータ等の情報処理装置は、対象物体を三次元計測した画像情報に基づいて対象物体の保持位置を推定する。情報処理装置は、例えば画像情報から対象物体のＣＡＤ（Computer-Aided Design）モデルを生成して、保持位置の推定を行う。保持位置の推定を行うことで、ロボットは、例えば乱雑にバラ積みされた対象物体の保持を行うことができる。これに対して特許文献１は、ＣＡＤモデルを生成せずに、対象物体の保持位置の推定を行う機械学習装置を用いたロボットシステムを提示する。機械学習装置は、深層学習を使って認識から保持まで画像情報や保持実行結果といった事例データを学習することにより、ＣＡＤモデルデータなしで保持位置を推定する。機械学習装置は、推定結果に基づいてロボットによりバラ積み状態から対象物体を保持することが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−３０１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
保持装置による対象物体の保持の失敗は、作業効率が低下する原因となる。バラ積みの対象物体がビニール袋や緩衝材に包まれている場合、光の反射や表面形状が変化することで、情報処理装置は、保持位置を正確に推定することが困難である。保持位置を正確に推定することができないために、ロボットは対象物体の保持に失敗する可能性が高くなる。そのためにロボットは、複数回の保持動作を繰り返すことが必要な場合がある。その場合、高い位置にある対象物体から順に保持したり、再度三次元計測を行うといった方法が考えられるが、作業効率が低い。
【０００５】
本発明は、このような従来の問題を解決するため、ロボットによる対象物体の保持をより短時間で行うことで、作業効率を向上させることができる情報処理装置を提供することを主たる目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、操作対象である対象物体を保持するためのロボットの動作を制御する情報処理装置であって、前記対象物体の視覚情報を取得する取得手段と、前記視覚情報に基づいて、位置毎の前記対象物体の保持の成否の確率分布を決定する確率分布決定手段と、前記確率分布に基づいて前記対象物体の保持位置を決定する保持位置決定手段と、前記保持位置に基づいて前記ロボットを移動させて、前記ロボットに前記対象物体の保持動作を行わせる制御手段と、前記ロボットによる前記対象物体の保持の成否を判定する判定手段と、を備え、前記保持位置決定手段は、前記判定手段が、前記ロボットによる前記対象物体の保持が失敗したと判定した場合に、前記確率分布に基づいて前回とは異なる保持位置を決定することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ロボットによる対象物体の保持をより短時間で行うことが可能となり、作業効率を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】ロボットシステムの構成例示図。
【図２】情報処理装置のハードウェア構成図。
【図３】情報処理装置の機能説明図。
【図４】ロボットシステムの制御処理を表すフローチャート。
【図５】（ａ）〜（ｃ）は、保持成否確率分布の説明図。
【図６】座標系の説明図。
【図７】（ａ）〜（ｃ）は、保持成否確率分布と保持位置との関係の説明図。
【図８】情報処理装置の機能説明図。
【図９】ロボットシステムの制御処理を表すフローチャート。
【図１０】（ａ）〜（ｃ）は、保持位置の決定方法の説明図。
【図１１】情報処理装置の機能説明図。
【図１２】ロボットシステムの制御処理を表すフローチャート。
【図１３】（ａ）〜（ｄ）は、保持位置の決定方法の説明図
【図１４】情報処理装置の機能説明図。
【図１５】ロボットシステムの制御処理を表すフローチャート。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態を詳細に説明する。
【００１０】
（第１実施形態）
図１は、本実施形態の情報処理装置を有するロボットシステムの構成例示図である。図１は機器構成の一例であり、本発明の適用範囲を限定するものではない。ロボットシステム１００は、ロボット１０及び情報処理装置２０を備える。
【００１１】
ロボット１０は、例えば多関節ロボットであり、ロボットアーム等のマニピュレータ１及びロボットハンド等の保持装置３を備える。ロボット１０は、マニピュレータ１の各関節の角度を変更することで、保持装置３の位置姿勢を変更可能な位置姿勢変更機構を備える。位置姿勢変更機構は、駆動装置として、電動モータ或いは油圧や空気圧等の流体圧で作動するアクチュエータを備える。位置姿勢変更機構は、情報処理装置２０の制御により駆動される。
【００１２】
保持装置３は、ロボット１０による操作対象である対象物体の種類に応じた操作を実現するためのツールである。保持装置３は、モータ駆動可能なチャック機構を有して対象物体を把持可能なハンドや、空気圧で対象物体を吸着する吸着パッドを用いたハンドを用いて、対象物体を保持することができる。「保持」とは、対象物体を把持或いは吸着することであり、対象物体を搬送できる状態にすることである。保持装置３は、マニピュレータ１に対して着脱可能に取り付けられており、対象物体の種類に応じて交換可能である。なお、ロボット１０は、多関節ロボットに限定されるものではなく、数値制御（ＮＣ：Numerical Control）可能な可動式の機械であってもよい。
【００１３】
ロボット１０は、情報処理装置２０の制御により行動を実行し、対象物体４１の搬送や保持等の操作を行う。本実施形態において、「行動」は、対象物体４１を認識或いは操作するためのロボット１０の動作である。対象物体４１は、ビニール袋に包まれているケーブルのような、ロボット１０によって保持されて搬送されることが想定される部品である。対象物体４１は、バラ積みされた複数の物体のうち、保持対象の物体であり、保持位置或いは保持対象の変更に伴い変化する。対象物体４１の周辺には、周辺物体４２が存在する。周辺物体４２は、対象物体４１の周辺に位置する対象物体４１以外の全ての物体である。周辺物体４２は、例えば、対象物体４１の周辺に存在する対象物体４１と同じ種類のバラ積みされた物体や、対象物体４１を収容している容器、箱、その容器、箱の周辺の物体も含む。
【００１４】
ロボットシステム１００は、撮像装置２及び光源４をさらに備える。撮像装置２は、カメラや、光を検出するセンサやフォトダイオード等で構成される視覚センサである。撮像装置２は、対象物体４１及び周辺物体４２の視覚情報として、例えば画像情報を生成する。「画像情報」は、例えば二次元カラー画像情報や距離画像情報である。撮像装置２は、取得した画像情報を情報処理装置２０へ送信する。光源４は、例えばプロジェクタによって構成され、可視光や赤外光を出射することで、対象物体４１及び周辺物体４２に対して均一照明光やパターン光を投射する。撮像装置２は、光源４によって光が投射された対象物体４１及び周辺物体４２の画像を撮像する。なお、撮像装置２は、光源４によって光が投射されていない状態で、対象物体４１及び周辺物体４２の画像を撮像することも可能である。距離画像の撮像方法は、Ｌｉｇｈｔ  Ｃｏｄｉｎｇ方式、ＴｏＦ（Time of Flight）方式、三角測量の原理によりステレオカメラを使った視差情報から距離情報を得る方式等がある。Ｌｉｇｈｔ  Ｃｏｄｉｎｇ方式は、光源４から投光した赤外線パターンを撮像装置２で読み取り、三角測量の原理で距離情報を得る方式である。ＴＯＦ方式は、投光した赤外線パルスが反射して戻ってくるまでの時間から距離情報を得る方式である。
撮像装置２及び光源４は、図１に示すように、ロボット１０に搭載される他に、撮像対象空間の上方への固定配置や、他の作業機械へ搭載されていてもよい。また、撮像装置２は複数配置されていてもよい。
【００１５】
図２は、情報処理装置２０のハードウェア構成図である。情報処理装置２０は、ロボット１０の動作を制御するロボット制御装置であり、例えばパーソナルコンピュータにより実現される。情報処理装置２０は、ＣＰＵ（Central Processing Unit）２１と、ＲＯＭ（Read Only Memory）２２と、ＲＡＭ（Random Access Memory）２３と、を備える。情報処理装置２０は、外部メモリ２４と、入力部２５と、表示部２６と、通信Ｉ／Ｆ２７と、システムバス２８とを備える。
【００１６】
ＣＰＵ２１は、ＲＯＭ２２及び外部メモリ２４の少なくとも一方に格納されるコンピュータプログラムを、ＲＡＭ２３を作業領域に用いて実行することで、ロボットシステム１００の動作を制御する。外部メモリ２４は、例えば、ＣＰＵ２１が処理を行う際に必要な各種データや各種情報を記憶している。また、外部メモリ２４には、ＣＰＵ２１が処理を行うことにより得られた各種データや各種情報が記憶される。入力部２５は、例えばキーボード、マウス等のポインティングデバイス、タッチパネル等により構成される。オペレータは、入力部２５を介して情報処理装置２０に指示を入力することができるようになっている。表示部２６は、液晶ディスプレイ等のモニタにより構成される。通信Ｉ／Ｆ２７は、外部機器と通信するためのインターフェースである。システムバス２８は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、外部メモリ２４、入力部２５、表示部２６及び通信Ｉ／Ｆ２７を通信可能に接続する。このような構成の情報処理装置２０は、通信Ｉ／Ｆ２７を介して、ロボット１０等の外部機器の動作を制御する。
【００１７】
本実施形態では、情報処理装置２０は、視覚センサである撮像装置２から取得する対象物体の視覚情報（画像情報）に基づいて、位置毎の対象物体の保持成否確率分布を生成する。情報処理装置２０は、保持成否確率分布に基づいて、保持位置を決定し、決定した保持位置に基づいてロボット１０による保持動作を実行する。その際、情報処理装置２０は、保持実行結果の成否判定を行う。保持が失敗した場合、情報処理装置２０は、保持成否確率分布に基づいて、前回の保持位置とは異なる保持位置を決定し、再度、保持動作を行う処理を繰り返す。これによりロボットシステム１００は、対象物体の保持を、より少ない回数で成功させることができるために、作業効率を向上させることができる。
【００１８】
本実施形態において、対象物体４１とは、上記の通りロボットによる保持の対象となる物体である。対象物体４１は、例えば、ビニール袋や緩衝材に包まれたケーブルのような光の反射や形状が変化する物体を含む。「保持成否確率分布」は、視覚情報や、ロボット１０の保持成否判定結果のいずれか一つ以上に基づいて作成された学習モデルを利用して決定される、保持に成功する確率を位置毎に示した分布である。
【００１９】
視覚情報に基づいて学習モデルが作成される場合、例えば、情報処理装置２０は、画像に対して、対象物体４１の保持が成功しそうな位置に人間が付けた真値を保持成功予測位置として学習する。このとき、入力は画像情報、出力は画像における位置となる。ロボット１０の保持成否判定結果に基づいて学習モデルが作成される場合、例えば、情報処理装置２０は、対象物体４１の認識を画像処理によって行う。情報処理装置２０は、認識された画像中の位置毎に、ロボット１０で保持できるかを試した結果に基づいて真値を付けて、保持成功位置或いは保持失敗位置として学習が行われる。このとき、入力は画像処理されたデータ、出力はそのデータに対して保持が成功するか失敗するかといった推定結果となる。視覚情報とロボット１０の保持成否に基づき学習モデルが生成される場合、例えば、情報処理装置２０は、画像を入力として、ロボット１０が対象物体を保持できるか否かで学習する。このとき、入力は画像情報、出力は画像情報から決定した位置における保持が成功するか失敗するかといった推定結果となる。保持位置とは、対象物体を保持するための位置であり、例えば保持装置３として装着する吸着機構の吸着位置のことである。
【００２０】
図３は、このような動作を実現するための、情報処理装置２０の機能説明図である。情報処理装置２０は、画像情報取得部２０１、保持成否確率分布決定部２０２、保持位置決定部２０３、制御部２０４、及び保持成否判定部２０５として機能する。これらの各機能は、ＣＰＵ２１がコンピュータプログラムを実行することで実現される他に、少なくとも一部がハードウェアにより実現されてもよい。
【００２１】
画像情報取得部２０１は、撮像装置２から視覚情報として画像情報を取得する。画像情報取得部２０１は、取得した画像情報を保持成否確率分布決定部２０２へ送信する。画像情報取得部２０１は、例えばキャプチャボードやメモリによって構成される。
【００２２】
保持成否確率分布決定部２０２は、画像情報取得部２０１から取得した画像情報に基づいて、ロボット１０による対象物体４１の保持が成功／失敗する確率分布を画像内の位置毎に決定する。保持成否確率分布決定部２０２は、決定した保持成否確率分布を保持位置決定部２０３へ送信する。保持成否確率分布決定部２０２は、保持成否確率分布を生成する際に、学習モデルとして例えば深層学習モデルの一例であるＣＮＮ（Convolutional Neural Network）を用いて推定を行ってもよい。この場合、保持成否確率分布決定部２０２は、適宜、データベースＤＢを参照する。保持成否確率分布決定部２０２は、データベースＤＢに保存されたモデルを利用して、保持成否確率分布を決定する。保持成否確率分布の確率値は、例えば０〜１の間の数値で表され、保持に成功する確率が高い方が大きい値で表される。
【００２３】
保持位置決定部２０３は、保持装置３による保持のためのマニピュレータ１の保持位置或いは保持位置姿勢を決定する。保持位置決定部２０３は、保持位置或いは保持位置姿勢だけでなく、保持位置への軌道を決定してもよい。保持位置或いは保持位置姿勢は、保持成否確率分布決定部２０２により決定された保持成否確率分布に基づいて決定される。保持位置決定部２０３は、決定した保持位置或いは保持位置姿勢を制御部２０４へ送信する。
【００２４】
制御部２０４は、マニピュレータ１、撮像装置２、及び保持装置３の動作を制御する。制御部２０４は、撮像時に、撮像装置２に対象物体４１や周辺物体４２を撮像させるため、マニピュレータ１の位置姿勢を制御する。制御部２０４は、撮像装置２が移動すると、撮像装置２に撮像トリガーを送信する。撮像トリガーにより、撮像装置２が撮像動作を行う。なお、制御部２０４は、撮像に合わせて光源４の発光制御も適宜行う。制御部２０４は、対象物体４１の保持時に、保持装置３に対象物体４１を保持させるために、マニピュレータ１を保持位置姿勢になるよう制御する。保持装置３が移動すると、制御部２０４は、保持装置３に保持トリガーを送信する。保持トリガーにより、保持装置３が保持動作を行う。
【００２５】
保持成否判定部２０５は、保持装置３が対象物体４１の保持動作を行ったときに、保持に成功したか、或いは失敗したかの判定を行う。例えば、保持装置３が吸着機構の場合、保持成否判定部２０５は、吸着時の真空到達度を計測することによって、この判定を行う。具体的には、保持成否判定部２０５は、吸着成功と判定するための真空到達度の閾値を予め設定する。保持成否判定部２０５は、吸着動作実行時に真空到達度を計測し、計測結果が閾値に達していれば吸着できているために吸着成功（保持成功）と判定し、閾値に達していなければ吸着できていないために吸着失敗（保持失敗）と判定する。
【００２６】
図４は、以上のような構成の情報処理装置２０によるロボットシステム１００の制御処理を表すフローチャートである。この処理は、例えばオペレータがロボットシステム１００を起動したときに開始される。ただし、開始のタイミングは、ロボットシステム１００の起動時に限定されるものではない。
【００２７】
ＣＰＵ２１は、処理を開始すると、まずロボットシステム１００の初期化処理を行う（Ｓ１）。初期化処理では、ＣＰＵ２１は、ＲＯＭ２２及び外部メモリ２４のいずれかに格納されたコンピュータプログラムをロードしてＲＡＭ２３上に展開し、実行可能な状態とする。また、ＣＰＵ２１は、情報処理装置２０に接続された各機器のパラメータの読み込みや初期位置への復帰を行い、各機器を使用可能な初期状態にする。
【００２８】
制御部２０４は、撮像装置２による撮像のためにマニピュレータ１を移動させる位置姿勢を取得する（Ｓ２）。この位置姿勢は、例えばＣＰＵ２１が撮像位置姿勢決定部として機能して決定する。決定される位置姿勢は、撮像装置２が対象物体４１や周辺物体４２を撮像することができるような位置姿勢であれば、どのような方法で決定されてもよい。例えば位置姿勢は、乱数による決定、設計者が予め固定値で決定、又は範囲を指定して、その範囲内において乱数で決定される。
【００２９】
制御部２０４は、撮像のためにマニピュレータ１の動作を制御する（Ｓ３）。具体的には、制御部２０４は、Ｓ２の処理で取得した位置姿勢にマニピュレータ１をどのように動かせばいいかを決定する。例えば、制御部２０４は、Ｓ２の処理で取得された位置姿勢にマニピュレータ１を移動させるために、目標となる位置姿勢情報を順運動学によってマニピュレータ１の関節角度情報に変換する。制御部２０４は、関節角度情報に応じてマニピュレータ１の各関節のアクチュエータを動作させるための指令値を算出する。制御部２０４は、指令値に応じてマニピュレータ１を動作させる。
【００３０】
制御部２０４は、撮像のために撮像装置２の動作を制御する（Ｓ４）。撮像装置２は、制御部２０４による制御に基づいて、対象物体４１や周辺物体４２の撮像を行う。この際、制御部２０４は、適宜、光源４の発光制御を行う。画像情報取得部２０１は、撮像装置２から対象物体４１及び周辺物体４２の画像情報を取得する（Ｓ５）。画像情報取得部２０１は、取得した画像情報を保持成否確率分布決定部２０２へ送信する。
【００３１】
保持成否確率分布決定部２０２は、画像情報取得部２０１から取得した画像情報に基づいて、対象物体４１の保持に成功／失敗する位置毎の確率分布を決定する（Ｓ６）。保持成否確率分布決定部２０２は、決定した保持成否確率分布を保持位置決定部２０３へ送信する。撮像装置２から得られる画像情報は、二次元カラー画像と距離画像の情報である。確率分布の決定方法は、例えば深層学習による推定結果を利用して行われる。具体的には、保持装置３が吸着パッドである場合、事前の学習として、バラ積み状態のケーブルの二次元カラー画像に対して、画像中のどの位置を吸着すれば対象物体４１を保持できるかの真値を、人間が入力部２５により画像上で与える。
【００３２】
「真値」は、学習における正解データのことである。本実施形態では、真値は、深層学習の一種であるＣＮＮに入力する画像において、保持に成功すると学習される画像中の位置である。真値の与え方は、例えば、人間が入力部２５であるマウス等のポインティングデバイスにより表示部２６に表示される画像を画面上で位置指定することで行われる。このとき、バラ積み状態が異なる複数の異なる画像に対して、１つ或いは複数の真値が与えられる。保持成否確率分布決定部２０２は、入力部２５で指示された画素を注目画素として、取得した画像から、注目画素近傍画像となる適当なサイズの画像（例えば１２８×１２８画素のＲＧＢ画像）を切り出す。保持成否確率分布決定部２０２は、切り出した注目画素近傍画像に対して、与えられた真値を正解ラベルとして学習データを蓄積する。保持成否確率分布決定部２０２は、蓄積した学習データを用い、例えばＣＮＮによって学習することで、学習モデルを生成する。
【００３３】
保持成否確率分布決定部２０２は、作成したモデルを使い、カラー画像を入力として、保持成否の確率を深層学習により推定する。推定方法は、例えば以下のようになる。保持成否確率分布決定部２０２は、画像内で対象物体４１が存在する範囲が分かる場合、例えば対象物体４１が箱に入っているとして、その箱内だけが推定範囲内になるようにＲＯＩ（Region of Interest）を設定する。ＲＯＩを設定すると、保持成否確率分布決定部２０２は、ＲＯＩ範囲内全体をスキャンするように、スライディングウィンドウにより画像を切り出す。このとき保持成否確率分布決定部２０２は、画像内の所定の画素を推定位置とし、この推定位置を中心として、該画像から、適当なサイズ（例えば１２８×１２８画素）を切り出して、推定画素近傍画像とする。
【００３４】
保持成否確率分布決定部２０２は、推定画素近傍画像をＣＮＮに入力し、それぞれの推定画素近傍の画像毎に保持成否確率を推定する。保持成否確率は、推定画素であるスライディングウィンドウの中心画素に対して与えられる。その際、保持成否確率分布決定部２０２は、ＲＯＩ範囲外は保持が失敗する位置として確率を推定する。ただし、ＲＯＩは必ずしも設定しなくてもよく、画像全体に対して推定を行ってもよい。なお、保持成否確率分布決定部２０２は、保持成否確率を求める際に必ずしも１画素毎に推定する必要はなく、計算時間等とのトレードオフを考慮して適切なストライドを設定して、スライディングウィンドウにより推定してもよい。
【００３５】
保持成否確率分布決定部２０２は、このように求めた推定画素近傍の画像に対する保持成否確率を用いて、二次元カラー画像に対する保持成否確率の分布を決定する。決定される保持成否確率分布は、例えば、二次元カラー画像の画素毎に０〜１までの連続的な値となる。図５は、二次元カラー画像から決定された保持成否確率分布の説明図である。図５（ａ）は、図１に示すようなロボット１０と対象物体４１との相対的位置関係における、撮像装置２から対象物体４１と周辺物体４２とを撮像したときに得られる二次元カラー画像の例示図である。図５（ｂ）は、図５（ａ）の二次元カラー画像から決定された保持成否確率分布を、図５（ａ）の二次元カラー画像に重畳表示した画像を表す。図中、色が濃い部分ほど、保持の成功確率が高いと推定される位置である。保持成否確率には閾値ｔｈが設定されており、閾値以下の位置は一定の濃さで表される。図５（ｃ）は、図５（ｂ）の図において、Ａ−Ａ’の断面で見たときの保持成否確率分布の高さを示した図である。なお、図５（ｂ）、図５（ｃ）には色の濃い部分が複数あるが、これは保持する対象物体４１の候補が複数あることを意味している。
【００３６】
ここでは深層学習を認識の処理に対して利用する方法を記載したが、深層学習は、認識の処理以外に利用されてもよい。例えば、深層学習は、認識から保持までの処理に利用されてもよい。具体的には、保持装置３に吸着パッドを用いた場合、保持位置決定部２０３は、事前の学習として、バラ積み状態のケーブルの二次元カラー画像を入力として、ロボット１０が画像内のどの位置を保持するかの保持位置を決定する。このとき保持位置は、画像処理により決定されてもよく、乱数で決定されてもよく、設計者が予め範囲を指定して、その範囲内において乱数で決定されてもよい。
【００３７】
保持位置を決定すると、制御部２０４は、保持位置にロボット１０を移動させて保持動作を実行させる。保持動作の実行後、保持成否確率分布決定部２０２は、保持に成功したか否かの結果に基づいて、入力とした二次元カラー画像の一部である、保持した位置を注目画素として、注目画素近傍画像に対して保持成功／失敗のラベルを付ける。ラベルを付ける範囲は、保持装置３に吸着パッドを用いている場合、入力とした二次元カラー画像における吸着パッドの直径分の範囲の画素に対して付けてもよく、適宜調整してもよい。このような方法によって、保持成否確率分布決定部２０２は、学習データを蓄積し、学習モデルを作成する。
【００３８】
保持成否確率分布決定部２０２は、作成したモデルを用い、二次元カラー画像を入力として保持成否の確率を深層学習により推定する。認識の処理を深層学習により学習した方法では、入力は二次元カラー画像であり、出力は人が保持に成功するであろうと考えて付けた真値を推定する結果である。これに対して、認識から保持までの処理を学習した場合、入力は同じ二次元カラー画像であるが、出力はロボット１０が実際に保持を行う場合の推定結果となる。推定時は、認識の処理を深層学習により学習した方法同様に、ＲＯＩを設定したりスライディングウィンドウを使用したりしてもよい。二次元カラー画像を入力することで、ロボット１０により保持する時の保持成否確率分布が決定される。
【００３９】
また、深層学習を保持だけの処理に対して利用してもよい。具体的には、認識処理は画像処理によって行い、処理された画像情報を入力として、ロボット１０が保持動作を実行する。この画像情報とは、例えば、二次元カラー画像からクロップされた所定のサイズの画像情報であり、注目画素近傍の画像でもよい。ロボット１０が保持動作を実行すると、保持に成功したか否かの結果に基づいて、入力とした画像情報に対して保持成功／失敗のラベルが付けられる。このような方法によって、保持成否確率分布決定部２０２は、学習データを蓄積して学習モデルを作成してもよい。この方法では、深層学習への入力は、例えば認識処理が行われた画像、出力はロボット１０で実際に保持を行う場合の推定結果となる。推定時は、認識の処理或いは認識と保持の処理を深層学習により学習した方法と同様に、ＲＯＩを設定したりスライディングウィンドウを使用してもよい。認識処理が行われた画像を入力することで、ロボット１０により保持する位置が推定される。推定された結果を用いて、保持成否確率分布が決定される。
【００４０】
ここでは主に二次元カラー画像を用いて保持成否確率分布を決定したが、二次元カラー画像でなく距離画像を用いてもよいし、あるいは二次元カラー画像と距離画像の両方を用いてもよい。
【００４１】
保持位置決定部２０３は、Ｓ６において保持成否確率分布決定部２０２により決定された保持成否確率分布に基づいて、１回目の保持位置を決定する（Ｓ７）。保持位置決定部２０３は、例えば、保持成否確率分布において最も保持成功の確率が高い位置を１回目の保持位置として決定する。保持成否確率分布は、図５に示すように、二次元カラー画像に対応して決定される。そのために保持成否確率分布から決定された位置の座標は、二次元カラー画像の同座標の位置と一致する。保持位置決定部２０３は、二次元カラー画像において保持位置を決定すると、距離画像において、二次元カラー画像の保持位置に対応する位置を求める。保持位置決定部２０３は、これらの二次元カラー画像、距離画像における決定された保持位置の情報を、制御部２０４へ送信する。
【００４２】
保持位置へのロボット１０のアプローチの際の軌道は、例えば、保持位置に対して最短距離となるような軌道、ロボット１０の移動速度が最大となるような軌道、保持成否確率分布に基づいた軌道等である。保持成否確率分布に基づいた軌道とは、例えば、保持成否確率分布の高い領域を含んだアプローチ動作のことである。具体的には、まず、保持位置決定部２０３が、保持成否確率分布に対して一定の閾値を設けておき、保持成否確率が閾値を上回っている領域のうち最も保持成否確率が高い位置を１回目の保持位置として決定する。ここで、保持成否確率が高いとは、確率が所定値より大きく、保持に成功しやすいと推定したということである。決定した保持位置の周囲半径ｒの範囲の保持成否確率が閾値を上回っている場合、保持位置決定部２０３は、その範囲内が保持に成功する確率が高いと判定する。そのため、ロボット１０は、保持位置へアプローチ動作をする際に、半径ｒの範囲内或いは範囲を含んで、円弧状の螺旋軌道、或いはランダムな軌道を移動する。これによりロボット１０は、保持位置の周辺の保持成否確率が高い領域を、１回のアプローチ動作で保持対象の範囲に含んで移動することができる。
【００４３】
制御部２０４は、保持動作のためにマニピュレータ１を制御する（Ｓ８）。具体的には、制御部２０４は、保持位置決定部２０３により決定された保持位置、保持位置姿勢、或いは軌道に基づいて、マニピュレータ１をどのように動かせばいいかを決定する。制御部２０４は、保持位置決定部２０３で決定された保持位置が画像内における位置であるため、マニピュレータ１を制御するに、この位置をロボット座標系に変換する必要がある。
【００４４】
図６は、座標系の説明図である。撮像装置２の座標系Σｃ、マニピュレータ１の座標系Σｒ、マニピュレータ１の先端座標系Σｔ、保持装置３の座標系Σｆ、及び対象物体４１の座標系Σｏが統一して扱われる。そのために、図６に示すように、作業空間内で基準となる座標系として、ワールド座標系Σｗが設定される。
【００４５】
ワールド座標系Σｗからマニピュレータ座標系Σｒまでの変位を（ＲＸ，ＲＹ，ＲＺ）とする。マニピュレータ１の姿勢を表す３×３の回転行列をＲＭとする。マニピュレータ座標系Σｒからマニピュレータ先端座標系Σｔまでの変位を（ＴＸ，ＴＹ，ＴＺ）とする。マニピュレータ先端の姿勢を表す３×３の回転行列をＴＭとする。マニピュレータ先端座標系Σｔから保持装置３の座標系Σｆまでの変位を（ＦＸ，ＦＹ，ＦＺ）とする。保持装置３の先端の姿勢を表す３×３の回転行列をＦＭとする。保持装置３の先端は、保持装置３が対象物体４１或いは周辺物体４２に接触する部分である。マニピュレータ先端座標系Σｔから撮像装置座標系Σｃまでの変位を（ＣＸ，ＣＹ，ＣＺ）とする。撮像装置２の姿勢を表す３×３の回転行列をＣＭとする。撮像装置座標系Σｃから対象物体４１の対象物体座標系Σｏまでの変位を（ＯＸ，ＯＹ，ＯＺ）とする。対象物体４１の姿勢を表す３×３の回転行列をＯＭとする。ワールド座標系Σｗから見た対象物体４１の変位を（ＷＸ，ＷＹ，ＷＺ）、姿勢を表す３×３の回転行列をＷＭとする。
【００４６】
マニピュレータ１の先端に取り付けられた保持装置３が対象物体４１に接触しているときのマニピュレータ座標系Σｒからマニピュレータ先端座標系Σｔまでの変位を（ＴＸ１，ＴＹ１，ＴＺ１）とする。また、マニピュレータ先端の姿勢を表す３×３の回転行列をＴＭ１とする。この場合、以下の式が成り立つ。
【００４７】
【数１】
2019188580.tif 000003
【００４８】
撮像装置２により対象物体４１が撮像されたときのマニピュレータ座標系Σｒからマニピュレータ先端座標系Σｔまでの変位を（ＴＸ２，ＴＹ２，ＴＺ２）とする。また、マニピュレータ先端の姿勢を表す３×３の回転行列をＴＭ２とする。この場合、以下の式が成り立つ。
【００４９】
【数２】
2019188580.tif 000004
【００５０】
以上の２つの式は、ワールド座標系Σｗにおける対象物体４１の位置姿勢を表している。そのために、以下の式が成り立つ。
【００５１】
【数３】
2019188580.tif 000005
【００５２】
この式により、制御部２０４は、対象物体４１を保持するときのマニピュレータ１の位置姿勢を算出する。この場合、撮像時のマニピュレータ１の位置姿勢、マニピュレータ先端座標系Σｔと撮像装置座標系Σｃの位置姿勢の関係、撮像装置座標系Σｃと対象物体４１の位置姿勢の関係、マニピュレータ先端座標系Σｔと保持装置３の位置姿勢の関係が既知である。このように制御部２０４は、撮像装置２が対象物体４１を撮像した画像から、マニピュレータ１が対象物体４１を保持するときの位置姿勢を求めることができる。
【００５３】
各変位、回転行列の求め方の一例を説明する。（ＲＸ，ＲＹ，ＲＺ）及びＲＭは、マニピュレータ１の設置時に設定したワールド座標系Σｗとの位置関係から求められる。（ＴＸ，ＴＹ，ＴＺ）及びＴＭは、マニピュレータ１の関節角度情報から順運動学によって求められる。（ＦＸ，ＦＹ，ＦＺ）及びＦＭは、保持装置３の寸法から求められる。（ＣＸ，ＣＹ，ＣＺ）及びＣＭは、撮像装置２の寸法から求められる。或いは、（ＦＸ，ＦＹ，ＦＺ）及びＦＭは、撮像装置２とマニピュレータ１との相対的な位置姿勢関係からキャリブレーションにより求められる。例えば、（ＦＸ，ＦＹ，ＦＺ）及びＦＭは、マニピュレータ１が異なる複数の位置姿勢を取ったそれぞれの状態において、撮像装置２により、既知の二次元マーカーを撮像することによって求まるマニピュレータ１との相対的位置関係に応じて求められる。（ＯＸ，ＯＹ，ＯＺ）及びＯＭは、撮像装置２により対象物体４１を撮像することにより求められる。例えば、（ＯＸ，ＯＹ，ＯＺ）及びＯＭは、保持位置決定部２０３が保持位置を二次元カラー画像により決定した場合、保持位置に対応する距離画像における座標の値から保持位置までの距離が決定されることから求められる。なお、ここではワールド座標系Σｗとマニピュレータ１の座標系Σｒとを分けて考えたが、それらを一致させて考えてもよい。
【００５４】
制御部２０４は、保持動作のために保持装置３を制御する（Ｓ９）。制御部２０４の制御により、マニピュレータ１は保持位置姿勢に移動し、保持装置３は対象物体４１の保持動作を行う。
【００５５】
保持成否判定部２０５は、保持装置３が対象物体４１の保持に成功したか否かを判定する（Ｓ１０）。保持成否の判定は、例えば、保持装置３が吸着装置である場合、吸着しているときのエジェクターの真空到達度を評価することで行うことができる。具体的には、保持成否判定部２０５は、予め吸着成功と判定する真空到達度の閾値を設定しておき、吸着動作実行時に真空到達度を計測する。保持成否判定部２０５は、計測結果が閾値に達していれば吸着成功（保持成功）、閾値に達していなければ吸着失敗（保持失敗）と判定する。保持装置３が把持装置である場合、保持成否の判定は、把持幅を評価することで行うことができる。具体的には、保持成否判定部２０５は、保持動作実行時の保持装置３の把持幅を計測し、計測結果が対象物体４１の大きさに合致するようであれば保持成功と判定する。計測結果が対象物体４１の大きさに対して閉じ過ぎていたり開き過ぎていたりする場合、保持装置３は、何も保持できていなかったり対象物体４１とは異なる物体、或いは複数の物体を保持していたり、意図しない状態で保持していたりする可能性がある。そのために保持成否判定部２０５は、保持失敗と判定する。
【００５６】
保持装置が保持に失敗した場合（Ｓ１０：N）、保持成否判定部２０５は、保持位置決定部２０３へ保持に失敗したことを表す情報を送信する。この情報を受信した保持位置決定部２０３は、保持成否確率分布に基づいて前回とは異なる保持位置を決定する（Ｓ７）。保持位置を再び決定する際の保持位置決定部２０３の処理を説明する。
【００５７】
保持位置決定部２０３は、保持失敗と判定された場合、保持成否確率分布に基づいて、前回までの保持位置とは異なる位置を次の保持位置として決定する。例えば、前回の保持位置が、保持位置中心だけが保持成否確率が高く、保持位置中心の周辺の保持成否確率が低い場合、保持位置中心の周辺を保持しようとしても、保持に失敗する可能性が高い。図７は、保持成否確率分布と保持位置との関係の説明図である。
【００５８】
図７（ａ）は、保持成否確率と、保持位置中心、保持位置中心の周辺、及び保持範囲の関係を例示する。保持位置中心は、保持装置３に吸着パッドを用いた場合、吸着パッドの直径Ｄｐ内に設定した範囲Ｄｃのことである。保持位置中心の周辺は、吸着パッドの直径Ｄｐ範囲内かつＤｃ範囲外の範囲のことである。保持範囲は、吸着パッドの直径Ｄｐ範囲内のことである。ただし、保持位置中心及び保持位置中心の周辺は、必ずしも吸着パッドの直径Ｄｐを基準にせず、任意に設定してもよく、値は適宜変更されてもよい。図７（ｂ）に示すように、前回の保持位置中心の周辺の保持成否確率が、保持範囲外の保持成否確率よりも低い場合、保持位置決定部２０３は、次の保持位置を前回の保持範囲外から決定する。例えば、保持位置決定部２０３は、保持成否確率分布から前回の保持範囲を除き、保持成否確率が最も高い位置を次の保持位置として決定する。図７（ｃ）に示すように、前回の保持位置中心の周辺の保持成否確率分布が、前回の保持範囲外の保持成否確率より高い場合、前回の保持位置中心の周辺が、保持に成功する可能性が高いと考えられる。その場合、保持位置決定部２０３は、保持成否確率分布に従って、前回の保持位置中心の周辺の範囲から次の保持位置を決定する。なお、前回の保持位置中心の周辺の保持成否確率分布が高い場合とは、必ずしも、前回の保持位置中心の周辺の保持成否確率が、前回の保持範囲外の保持成否確率よりも高いことを意味しない。例えば、保持成否確率に対して、一定の閾値を設けておき、前回の保持位置中心の周辺の保持成否確率が、その閾値を上回っている場合は、前回の保持位置中心の周辺の保持成否確率分布が高い場合と判定してもよい。
【００５９】
次の保持位置を前回の保持位置中心の周辺から決定する場合、保持位置決定部２０３は、次の保持位置を前回の保持位置中心の周辺のうち、保持成否確率が高い位置から決定する。例えば、前回の保持位置中心を含んで、楕円状に保持成否確率が高い範囲が存在する場合、保持位置決定部２０３は、その楕円状範囲内で次の保持位置を決定する。保持位置決定部２０３は、次の保持位置を、楕円状範囲内から、保持成否確率が高い位置から順に決定してもよく、ランダムに決定してもよく、設定した規則に従って決定してもよい。
【００６０】
次の保持位置を決定する際、画像処理を併用し、対象物体４１が存在しない範囲に応じて保持成否確率分布が更新されてもよい。例えば、画像処理によって対象物体４１が存在しない範囲を認識する方法を併用して、次の保持位置が決定される。具体的には、対象物体４１が箱に入っている場合、保持成否確率分布決定部２０２は、画像情報に基づいて画像処理によって対象物体４１が存在しない範囲を求めて、保持成否確率が「０」であると決定する。対象物体４１が存在しない範囲は、例えば、二次元カラー画像の箱が見えている範囲と、箱だけ撮像した画像との差分画像から求めことができる。或いは、距離画像から箱の底よりも近くに物体が存在しない範囲は、対象物体４１が存在しない範囲であってもよい。
【００６１】
次の保持位置を決定する際、保持装置３の姿勢が変更されてもよい。例えば、保持動作で対象物体４１へアプローチする際、保持装置３は、図１に示すように鉛直下方向の対象物体４１に向かってアプローチするだけでなく、ロボット１０の姿勢の変更を伴ってアプローチしてもよい。具体的には、保持位置決定部２０３は、保持成否確率分布に基づいて次の保持位置を決定する際に、保持成否確率に加えて対象物体４１の簡易モデルを用意してモデルフィッティングした結果を併用する。対象物体４１がビニール袋や緩衝材に包まれたケーブルのように形状が変化する部品である場合、正確なモデルフィッティングが困難である。しかし、おおよその寸法からモデルを用意することができるため、保持位置決定部２０３は、二次元カラー画像と距離画像とによって、対象物体４１の長軸方向をおおよそ推定し、対象物体４１の中心軸を推定することができる。保持装置３に吸着パッドを用いる場合、制御部２０４が中心軸に対して垂直にアプローチするようにロボット１０を制御することで、保持装置３は、対象物体４１の表面の法線にならってアプローチできる。そのために対象物体４１の表面と吸着パッド表面とが、隙間ができにくく接触することができる。これにより保持装置３は、吸着時の空気のリークが少なくなり、保持に成功しやすくなる。さらに、保持装置３は、対象物体４１と周辺物体４２との間を保持することが少なくなり、対象物体４１と周辺物体４２を一緒に保持してしまう可能性も少なくなる。この場合、保持位置決定部２０３が決定する値は保持位置ではなく保持位置姿勢となる。
【００６２】
保持に失敗したものの、対象物体４１を持ち上げるまでは保持に成功していたような場合、保持装置３は、対象物体４１までの距離が足りなかったと判断される。この場合、保持位置決定部２０３は、保持装置３の箱の底に対する平面方向の位置は変化させずに、距離方向の位置を、より対象物体４１に近づける方向へ変化させて、次の保持位置とする。
【００６３】
なお、Ｓ１０の保持成否判定処理は、Ｓ８の処理と同時に行われてもよい。例えば、Ｓ７の処理で決定した保持位置に応じて、Ｓ８の処理でマニピュレータ１が移動する。保持装置３が吸着装置である場合、保持成否判定部２０５は、移動中にも常に真空到達度を計測する。保持成否判定部２０５が吸着（保持）に成功したと判定した時点で、制御部２０４は、マニピュレータ１の保持を行うための移動動作を中断し、次の処理に移行する。
【００６４】
対象物体４１の保持に成功した場合（Ｓ１０：Y）、保持成否判定部２０５は、制御部２０４へ保持に成功したことを表す情報を送信する。この情報を受信した制御部２０４は、対象物体４１を搬送・配置するために、マニピュレータ１の動作を制御する（Ｓ１１）。制御部２０４は、搬送の経由点や配置の位置を、事前に設定しておいてもよいし、撮像装置２によって得られた搬送経路・配置場所の画像情報に基づいて決定してもよい。
【００６５】
ＣＰＵ２１は、対象物体４１の搬送・配置が終了すると、次の対象物体４１の有無を判定する（Ｓ１２）。ＣＰＵ２１は、対象物体４１が存在しない場合には処理を終了する（Ｓ１２：Y）。ＣＰＵ２１は、対象物体４１が存在する場合（Ｓ１２：N）、Ｓ２以降の処理を対象物体４１が存在しなくなるまで繰り返し実行する。対象物体４１の有無の判定は、例えば、事前に処理回数を設定しておき、保持の成功回数がその回数に達したか否かで行ってもよく、対象物体４１の供給場所にセンサを配置しておき、該センサの検出結果に基づいて行ってもよい。センサは、例えば対象物体４１の供給場所に配置される重量センサを用いることができる。重量センサが供給場所の重さを計測することで、秤量によって対象物体４１の残りの個数が計測可能である。また、撮像装置２によって対象物体４１の供給場所を撮像し、得られた画像情報によって対象物体４１の有無を判定することも可能である。
【００６６】
以上のように本実施形態のロボットシステム１００は、情報処理装置２０により、撮像装置２が撮像した画像に基づいて保持成否確率分布を生成する。情報処理装置２０の保持成否確率分布決定部２０２は、画像情報から保持に成功／失敗する保持成否確率分布を決定する。情報処理装置２０の保持位置決定部２０３は、決定した保持成否確率分布に基づいて対象物体４１の保持位置を決定する。情報処理装置２０の制御部２０４は、決定した保持位置に基づいてロボット１０の動作を制御して、ロボット１０に対象物体４１を保持する動作を実行させる。情報処理装置２０の保持成否判定部２０５は、ロボット１０の保持動作の成功／失敗を判定する。失敗した場合、保持位置決定部２０３は、保持成否確率分布決定部２０２で決定された分布に基づいて、前回までの保持位置とは異なる次の保持位置を決定する。情報処理装置２０は、対象物体４１を保持するまで、繰り返し保持位置を更新しながらロボット１０に保持動作を行わせることになる。
【００６７】
情報処理装置２０は、保持成否確率分布に基づいて保持位置を決定することで、１回で保持に失敗しても、２回目以降も保持の成功確率が高い位置を保持位置として決定することができる。このような制御により、撮像装置２によって位置および姿勢を正確に認識できず、保持装置３が保持に失敗する可能性があるような、ビニール袋や緩衝材に包まれた対象物体４１であっても、保持に失敗したときに撮像からやり直す必要が無くなる。また、保持装置３は、対象物体４１を高い位置にある物体から順に取り出す必要がなくなる。そのためにロボットシステム１００は、短時間で対象物体４１の保持が可能となり、作業の効率化を図ることができる。
【００６８】
情報処理装置２０は、保持成否確率分布を決定するための情報として、二次元のカラー画像情報に限らず、距離画像情報やグレー画像情報等を用いることもできる。また、情報処理装置２０は、視覚センサから得られる情報に基づいて保持成否確率分布を決定してもよい。距離画像を用いる場合、保持成否確率分布決定部２０２は、三次元的な情報を取得できるために、位置姿勢の保持成否確率を決定することが可能となる。また、情報処理装置２０は、対象物体４１の保持に失敗したときの保持位置の履歴をＲＡＭ２３に記憶しておき、該対象物体４１の状態が変化するまで、該保持位置を新たな対象物体４１の保持位置に決定しないように構成されてもよい。対象物体４１の状態が変化は、保持の成功、所定回数の視覚情報（画像情報）の取得、保持失敗による位置の変化などである。
【００６９】
（第２実施形態）
第２実施形態のロボットシステムは、第１実施形態のロボットシステム１００に、視覚センサ以外の検出装置による検出結果を併用して対象物体４１の保持位置を決定する。具体的には、第２実施形態のロボットシステムは、第１実施形態と同様に、視覚センサにより撮像された対象物体４１の視覚情報（画像情報）に基づいて対象物体４１の保持成否確率分布を決定する。次に、ロボットシステムは、保持成否確率分布に基づいて保持位置を決定して、保持動作を実行する。その際、ロボットシステムは、保持実行結果の成否判定を行い、保持が失敗した場合、保持成否確率分布とロボット１０が物体に接触したときの力覚情報とに基づいて前回の保持位置とは異なる保持位置を決定して、再度、保持動作を行う。これにより画像情報だけでは分かりにくいビニール内の物体の位置情報を考慮して次の保持位置が決定される。そのためにロボットシステムは、より短時間で対象物体４１の保持に成功することができ、作業効率を向上することができる。
【００７０】
図８は、第２実施形態の情報処理装置の機能説明図である。第２実施形態のロボットシステム１０１は、第１実施形態のロボットシステム１００の構成に力覚センサ５が追加された構成である。情報処理装置２００１のハードウェア構成は、図２に示す第１実施形態の情報処理装置２０のハードウェア構成と同様である。情報処理装置２００１の機能ブロックは、図３に示す第１実施形態の情報処理装置２０の機能ブロックに、力覚情報取得部２０６を追加した構成である。また、情報処理装置２００１は、保持位置決定部２０３１の機能が第１実施形態の保持位置決定部２０３とは異なる。情報処理装置２００１には、力覚センサ５が接続される。他の構成は同様である。ここでは、相違する部分について説明し、同様の構成、処理については説明を省略する。
【００７１】
力覚センサ５は、保持装置３に作用する外力を計測可能な位置に取り付けられている。例えば、力覚センサ５は、保持装置３の基端や、マニピュレータ１の先端に取り付けられる。力覚センサ５は、歪みゲージや圧電素子によって構成され、保持装置３が対象物体４１或いは周辺物体４２に接触しているときに保持装置３に作用する力（反力）、モーメントを検出する。力覚センサ５は、検出結果から力覚情報を生成して、情報処理装置２００１へ送信する。力覚センサ５は、例えば６軸力覚センサ（Force/Torqueセンサ）や、３軸力覚センサである。また、力覚センサ５は、１次元の圧力センサや、接触の有無を判別する接触センサを複数配置して力、モーメントを検出してもよい。
【００７２】
力覚情報取得部２０６は、力覚センサ５から力覚情報を取得し、取得した力覚情報を保持位置決定部２０３１へ送信する。力覚情報取得部２０６は、例えばメモリによって構成される。保持位置決定部２０３１は、力覚情報取得部２０６から取得した力覚情報及び保持成否確率分布に基づいて、保持位置を決定する。
【００７３】
図９は、以上のような構成の情報処理装置２００１によるロボットシステム１０１の制御処理を表すフローチャートである。図９では、図４に示す第１実施形態の処理と同じ処理については、同じステップ番号を付してある。同じ処理については説明を省略する。
【００７４】
Ｓ８の処理で制御部２０４が保持動作のためにマニピュレータ１を制御すると、力覚情報取得部２０６は、力覚センサ５から力覚情報を取得する（Ｓ２２）。力覚情報取得部２０６は、取得した力覚情報を保持位置決定部２０３１へ送信する。なお、この処理は、Ｓ８の処理でマニピュレータ１が移動している際に、同時に行われてもよい。例えば、保持位置へマニピュレータ１が移動する際に、力覚情報取得部２０６は、移動中に常に力覚情報を取得する。制御部２０４は、力覚情報の値が設定した閾値以上の力及びモーメントの少なくとも一方となった時点で、マニピュレータ１の移動を中断して、Ｓ９の保持動作を実行する。
【００７５】
図１０は、保持位置の決定方法の説明図である。図１０（ａ）に示すように、画像情報から決定された保持位置が実際の対象物体４１の高さよりも低い場合、マニピュレータ１が保持位置まで移動する途中で、保持装置３が対象物体４１に接触する。この場合、対象物体４１の保持が失敗であるために、保持位置が、力覚センサ５から取得した力覚情報に基づいて修正される。
【００７６】
保持位置にマニピュレータ１が移動した後に取得した力覚情報が閾値以上の力及びモーメントの少なくとも一方を満たさない場合、制御部２０４は、マニピュレータ１の移動を継続してから保持動作を実行してもよい。図１０（ｂ）に示すように、画像情報から決定された保持位置が実際の対象物体４１の高さよりも高い場合、マニピュレータ１が保持位置に移動しても保持装置３が対象物体４１に接触しないことがある。この場合、制御部２０４は、力覚情報が閾値以上になるまでマニピュレータ１の移動動作を継続する。このとき、予め動作を継続する距離や時間が設定されていてもよく、力覚情報が閾値以上になるまではマニピュレータ１の移動動作を継続し続けてもよい。
【００７７】
保持位置の決定処理（Ｓ２１）について説明する。保持位置決定部２０３１は、力覚情報と保持成否確率分布とに基づいて保持位置の決定を行う。ただし、初回の保持位置決定時には、保持装置３が対象物体４１或いは周辺物体４２に接触していないため、力覚情報が得られない。そのために保持位置決定部２０３１は、保持成否確率分布にのみ基づいて初回の保持位置を決定する。２回目以降の保持位置は、例えば、Ｓ２２の処理で取得した力覚情報を用いて決定される。力覚情報が図１０（ｃ）に示すように＋ｘ方向の回転モーメントであった場合、保持位置決定部２０３１は、現在の保持位置よりも＋ｙ方向に並進移動した位置が保持に成功する確率が高いと推定する。これは、保持装置３が対象物体４１に接触したとき、保持装置３に＋ｘ方向回転のモーメントが作用するということは、＋ｙ方向に物体があると推測されるためである。このように、保持位置決定部２０３１は、力覚情報から保持に成功しやすいと思われる位置を推定し、保持成否確率分布と合わせて次の保持位置を決定する。
【００７８】
例えば、保持成否確率分布では、現在の保持位置の＋ｙ方向、−ｙ方向のいずれの方向でも保持の成功確率が変わらない場合、力覚情報から＋ｙ方向の方が物体のある可能性が高いと推測されれば、＋ｙ方向を優先して保持位置が決定される。保持成否確率分布では＋ｙ方向よりも−ｙ方向の方が保持の成功確率が高いが、力覚情報では＋ｙ方向の方が保持の成功確率が高いと判定されるように、両者から相反する推定が行われた場合がある。この場合、保持位置決定部２０３１は、予め両者の推定結果に対して重み付けをして、保持位置を決定する。例えば、取得した力覚情報がモーメントである場合、保持位置決定部２０３１は、予め閾値を設定しておき、その閾値以上のモーメントであれば保持成否確率分布よりも力覚情報を優先するといった方法を採用することができる。また、保持位置決定部２０３１は、重み付けを用いずに保持成否確率分布の値と力覚情報の値とを直接、推定の入力として用いてもよい。その場合、保持位置決定部２０３１は、保持成否確率分布の値及び力覚情報の値を入力、保持成否結果を出力として学習を行い、その学習モデルを利用して保持位置を決定する。
【００７９】
以上のように本実施形態のロボットシステム１０１は、情報処理装置２００１により、撮像装置２が撮像した画像（画像情報）に基づいて保持成否確率分布を生成する。情報処理装置２００１の保持成否確率分布決定部２０２は、画像情報から保持に成功／失敗する保持成否確率分布を決定する。情報処理装置２０の保持位置決定部２０３１は、決定した保持成否確率分布に基づいて対象物体４１の保持位置を決定する。情報処理装置２０の制御部２０４は、決定した保持位置に基づいてロボット１０の動作を制御して、ロボット１０に対象物体４１を保持する動作を実行させる。この際、力覚センサ５は、保持装置３に作用する力或いはモーメントに応じた力覚情報を生成する。情報処理装置２００１は、力覚センサ５から力覚情報を取得して、対象物体４１の保持を失敗したときの保持位置の修正に利用する。情報処理装置２００１の保持成否判定部２０５は、ロボット１０の保持動作の成功／失敗を判定する。失敗した場合、保持位置決定部２０３１は、力覚情報及び保持成否確率分布に基づいて、前回までの保持位置とは異なる次の保持位置を決定する。情報処理装置２００１は、対象物体４１を保持するまで、繰り返し保持位置を更新しながらロボット１０に保持動作を行わせることになる。
【００８０】
情報処理装置２００１は、力覚センサ５を併用することで、ビニール袋や緩衝材の内部の位置情報を取得できる。そのために情報処理装置２００１は、ビニール袋や緩衝材の内部の対象物体４１の位置を推定して保持位置を決定することができる。このような制御により、画像情報によって位置及び姿勢を正確に認識できず、保持装置３が保持に失敗する可能性があるようなビニール袋や緩衝材に包まれた対象物体４１であっても、対象物体４１の位置情報を決定することができる。ロボットシステム１０１は、ビニール袋や緩衝材の内部のどの位置に対象物体４１があるかまで推定して保持位置を決定できるため、短時間で対象物体４１の保持が可能となり、作業の効率化を図ることができる。
【００８１】
ロボットシステム１０１は、力覚センサ５に代えて物体と保持装置３との近接距離を検出する近接覚センサを備えてもよい。力覚センサ５を用いた場合、接触により対象物体４１の位置が検出されるが、近接覚センサを用いた場合、対象物体４１の表面の法線が検出される。近接近センサは、物体と保持装置３との近接距離を表す近接覚情報を生成して、情報処理装置２００１へ送信する。近接近センサは、撮像装置２が撮像した画像だけでは検出が困難な対象物体４１表面の法線を正確に検出できる。近接覚センサは複数用いられてもよい。情報処理装置２００１は、近接覚情報取得部により近接覚情報を取得して、対象物体４１の保持を失敗したときの保持位置の修正に利用する。対象物体４１の保持を失敗した場合、保持位置決定部２０３１は、近接覚情報及び保持成否確率分布に基づいて、前回までの保持位置とは異なる次の保持位置を決定することになる。
【００８２】
対象物体４１の表面の法線が検出されるために、対象物体４１に対して法線方向に保持装置３がアプローチを行うことができるようになる。これにより、例えば保持装置３が吸着パッドの場合、保持装置３は、エアーのリークが少なくなるように対象物体４１にアプローチできる。そのために保持の成功確率が向上する。情報処理装置２００１は、近接覚センサ６による検出結果から対象物体４１の位置や表面の法線方向の情報を取得して、該情報と保持成否確率分布とに基づいて保持位置を決定する。
【００８３】
（第３実施形態）
第３実施形態のロボットシステムは、第１実施形態のロボットシステム１００において、システム制約条件も考慮して対象物体４１の保持位置を決定する構成である。具体的には、第３実施形態のロボットシステムは、第１実施形態と同様に、視覚センサにより撮像して得られた対象物体４１の視覚情報（画像情報）に基づいて対象物体４１の保持成否確率分布を決定する。次に、ロボットシステムは、保持成否確率分布にシステム制約条件を考慮して保持位置を決定して、保持動作を実行する。「システム制約条件」は、ロボット１０の運用時に優先する制約条件である。システム制約条件は、例えばシステムのチョコ停の防止優先や、システムのタクトを短くすることを優先する、といった条件である。
【００８４】
チョコ停とは、短時間のシステムの停止であり、重大な故障ではないが、システムを再稼働させるために人手作業が必要になり、一時的に生産ラインが止まってしまう現象である。チョコ停を防止するためのパラメータは、周辺物体４２へのロボット１０の干渉のしにくさや、対象物体４１を保持しているときの周辺物体４２への対象物体４１の干渉のしにくさである。そのために、チョコ停の防止を優先する場合、例えばロボット１０が周辺物体４２にできるだけ干渉しないように保持位置が決定される。
【００８５】
タクトとは、システムが生産対象の物品を１つ作成するのに必要な時間であり、１日あたりの稼働時間を１日あたりの生産数で除した値である。タクトを短くするためのパラメータは、移動距離の短さや速度の出しやすさである。移動距離は、例えば保持位置間の距離である。速度の出しやすさは、例えばマニピュレータ１の関節角度から求まる可操作度（マニュピレータ１先端の位置や姿勢を、どの程度自由に操作できるのかを表す指標）である。そのために、タクトを短くことを優先する場合、例えばロボット１０の移動距離を短くしたり、速度を速くしやすい状態を保ったりするよう保持位置が決定される。
【００８６】
ロボットシステムは、保持動作後に保持実行結果の成否判定を行う。保持が失敗した場合、ロボットシステムは、保持成否確率分布及びシステム制約条件に基づいて前回の保持位置とは異なる保持位置を決定して、再び保持動作を行う。これによりロボットシステムに求められる機能を優先して次の保持位置が決められるために、作業効率が向上する。
【００８７】
図１１は、第３実施形態の情報処理装置の機能説明図である。第３実施形態のロボットシステム１０２は、第１実施形態のロボットシステム１００と同じ構成である。情報処理装置２００２のハードウェア構成は、図２に示す第１実施形態の情報処理装置２０のハードウェア構成と同様である。情報処理装置２００２の機能ブロックは、図３に示す第１実施形態の情報処理装置２０の機能ブロックと同じ構成であるが、保持位置決定部２０３２及び制御部２０４１の機能が第１実施形態の保持位置決定部２０３及び制御部２０４とは異なる。制御部２０４１は、予め設定されるシステム制約条件を保持位置決定部２０３２へ送信する。保持位置決定部２０３２は、システム制約条件を考慮した保持位置の決定を行う。他の構成は同様である。ここでは、相違する部分について説明し、同様の構成、処理については説明を省略する。
【００８８】
制御部２０４１は、システム制約条件に関する情報を保持位置決定部２０３２へ送信する。保持位置決定部２０３２は、制御部２０４１から取得したシステム制約条件に関する情報を考慮して、保持成否確率分布に基づいて保持位置を決定する。システム制約条件は、設計者やオペレータに適宜設定されて、例えば予めＲＡＭ２３や外部メモリ２４に格納される。上記の通り、システム制約条件は、システムのチョコ停の防止優先や、システムのタクトを短くすることを優先する、といった条件である。
【００８９】
チョコ停の原因には、以下のようなものがある。例えば、ロボット１０が周辺物体４２に干渉することで対象物体４１が入った箱が動いて対象物体４１が箱から落下すると、チョコ停が発生する。また、撮像装置２や保持装置３の相対的位置関係が変化してキャリブレーションをやり直す必要が発生すると、チョコ停が発生する。そのため、ロボット１０が周辺物体４２に干渉しないように保持位置を決定する必要がある。ロボット１０が周辺物体４２に干渉しにくい保持位置とは、例えば、マニピュレータ１の可動領域が十分に確保できている位置姿勢である。マニピュレータ１が可動領域の限界近くで動作する場合、ひねるような動作を行い、オペレータの意図とは異なる軌道によりロボット１０が周辺物体４２に干渉してしまう可能性がある。そのために制御部２０４１は、チョコ停を防止するためのシステム制約条件として、マニピュレータ１の関節角度情報或いは位置姿勢情報を保持位置決定部２０３２へ送信する。
【００９０】
タクトを短くする要因には、ロボット１０の移動距離を短くしたり、ロボット１０が速度を出しやすい状態を保ったりすることがあげられる。そのために保持位置間の距離を短くしたり、マニピュレータ１の可操作度を高く保ったりできるように保持位置が決定される。保持位置間の距離を短くするには、現在のマニピュレータ１の位置姿勢情報からの差分を取る必要がある。そのために制御部２０４１は、タクトを短くするためのシステム制約条件として、マニピュレータ１の関節角度情報或いは位置姿勢情報を保持位置決定部２０３２へ送信する。マニピュレータ１の可操作度を高く保つには、マニピュレータ１の関節角度情報から可操作度を計算する必要があるため、制御部２０４１は、マニピュレータ１の関節角度情報を保持位置決定部２０３２へ送信する。
【００９１】
図１２は、以上のような構成の情報処理装置２００２によるロボットシステム１０１の制御処理を表すフローチャートである。図１２では、図４に示す第１実施形態の処理と同じ処理については、同じステップ番号を付してある。同じ処理については説明を省略する。
【００９２】
Ｓ６の処理で保持成否確率分布決定部２０２が保持成否確率分布を決定すると、保持位置決定部２０３２は、システム制約条件及び保持成否確率分布に基づいて保持位置を決定する（Ｓ３１）。図１３は、この場合の保持位置の決定方法の説明図である。図１３（ａ）は、撮像装置２から取得した画像を例示する。図１３（ｂ）は、この画像から得られる保持成否確率分布を例示する。
【００９３】
システム制約条件がチョコ停防止の場合、保持位置は、できるだけ箱の中心付近となる方が、ロボット１０が箱に干渉する可能性が低くなる。具体的には、図１３（ｃ）に示すように、箱の中から周囲に向かって１〜４の順番で保持位置の候補となる位置の優先順位が付けられる。この順番で保持動作が実行されると、ロボット１０は、箱の中心付近から順に保持動作を行うことになる。そのためにロボット１０が箱に干渉する可能性の低い位置から順番に、保持動作を行うことができる。なお、図１３（ｃ）の優先順位４のように箱の壁面から一定距離内の位置の場合、ロボット１０が箱に干渉する可能性が高い。この場合、この位置が優先順位から除外されてもよい。
【００９４】
優先順位が付される保持位置の候補となる位置は、例えば、保持成否確率が所定の閾値を上回っている位置に関しては同等に扱われて、保持位置候補として決定される。決定された複数の保持位置候補に対して、システム制約条件を考慮して、優先順位付けが行われる。或いは、保持成否確率とシステム制約条件との重み付けを行って保持位置候補の優先順位を決定してもよい。例えば、保持位置候補は、箱の中央に近いほど「１」に近いスコアが付けられ、箱の隅に近いほど「０」に近いスコアが付けられる。スコアは線形でも非線形でもよい。その際、各位置に対して、保持成否確率とスコアの乗算した結果から各位置の優先順位が付けられてもよい。
【００９５】
保持に失敗して再度保持動作を行う場合、保持装置３は、周辺物体４２に干渉しないように考慮される。具体的には、保持装置３は、保持動作時に対象物体４１及び周辺物体４２に近い位置にある。保持に失敗して次の保持位置へ移動する場合、そのまま横にスライドさせるように保持装置３を動かすと、保持装置３が対象物体４１や周辺物体４２に干渉する。これにより対象物体４１や周辺物体４２に傷がついたり、保持装置３が壊れてしまう恐れがある。そのためにロボット１０が対象物体４１や周辺物体４２に干渉しないようにロボット１０の軌道が決定される。例えば、撮像装置２により撮像された画像から確認される周辺物体４２の配置に基づいて、周辺物体４２に干渉しないように軌道が決定される。
【００９６】
また、保持装置３は、保持動作時の干渉だけでなく、保持後の搬送・配置動作も考慮される。例えば、保持装置３は、保持動作後に対象物体４１を保持している状態で周辺物体４２に対象物体４１が干渉することがある。この場合、対象物体４１が、落下したり傷ついたりする可能性がある。そのため、対象物体４１が周辺物体４２に干渉しないようにロボット１０の軌道が決定される。例えば、撮像装置２により撮像された画像から確認される周辺物体４２の配置に基づいて、保持装置３により保持されている対象物体４１が周辺物体４２に干渉しないように軌道が決定される。
【００９７】
システム制約条件がタクトを短くする場合、前回と今回の保持位置間の距離をできるだけ短くする方がタクトは短くなる。例えば、図１３（ｂ）に示すような保持成否確率分布の場合、まずは図１３（ｄ）に示すように、保持成否確率が最も高い保持位置候補が１番目の保持位置に決定される。次に、１番目の保持位置からの距離を考慮して、２番目の保持位置が決定される。２番目の保持位置を図１３（ｄ）のように決定する理由は、１番目の保持位置から他の３つの保持位置候補得までの距離を比較したとき、１番目の保持位置に最も近いためである。保持位置候補が複数ある場合、単に１番目の保持位置に応じて２番目の保持位置を決定するだけでなく、その後の３、４番目以降の保持位置候補までの距離を総合的に判断して、２番目以降の保持位置を決定してもよい。また、１番目の保持位置は、その他の保持位置候補との位置関係を考慮して、必ずしも保持成否確率が最も高い保持位置候補としなくてもよい。
【００９８】
また、システム制約条件がタクトを短くする場合の他の例として、ロボット１０の速度が出しやすい状態を保てるよう保持位置を決定することで、タクトを短くすることができる。例えば、移動距離が略同じの複数の保持位置候補が存在する場合、現在のマニピュレータ１の可操作性楕円体や、移動後のマニピュレータ１の位置姿勢を考慮して優先度が決定される。可操作性楕円体は、可操作度を空間において表現しており、主軸半径の長い方向が速度を出しやすく、主軸半径の短い方向が速度を出しにくい楕円体である。可操作性楕円体を考慮することで、速度の出しやすい方向にある保持位置候補の優先度を高くする。移動後のマニピュレータ１の位置姿勢を考慮することで、より可操作度が高い位置姿勢で保持を行える保持位置候補の優先度が上げられる。このようにしてマニピュレータ１の速度をできるだけ出しやすい位置姿勢を取りながら保持動作を行えるため、タクトの短縮が可能となる。
【００９９】
以上のように本実施形態のロボットシステム１０２は、情報処理装置２００２により、撮像装置２が撮像した画像に基づいて保持成否確率分布を生成する。情報処理装置２００２の保持成否確率分布決定部２０２は、画像情報から保持に成功／失敗する保持成否確率分布を決定する。情報処理装置２０の保持位置決定部２０３２は、決定した保持成否確率分布及び制御部２０４１から取得するシステム制約条件に基づいて対象物体４１の保持位置を決定する。情報処理装置２０の制御部２０４１は、決定した保持位置に基づいてロボット１０の動作を制御して、ロボット１０に対象物体４１を保持する動作を実行させる。情報処理装置２００２の保持成否判定部２０５は、ロボット１０の保持動作の成功／失敗を判定する。失敗した場合、保持位置決定部２０３２は、システム制約条件及び保持成否確率分布に基づいて、前回までの保持位置とは異なる次の保持位置を決定する。情報処理装置２００２は、対象物体４１を保持するまで、繰り返し保持位置を更新しながらロボット１０に保持動作を行わせることになる。
【０１００】
情報処理装置２００２は、チョコ停防止やタクト短縮などのシステム制約条件を考慮することで、より目的にあったロボットシステム１０２の運用を行うことができる。このような制御により、撮像装置２によって位置及び姿勢を正確に認識できず、保持装置３が保持に失敗する可能性があるような、ビニール袋や緩衝材に包まれた対象物体４１であっても、システム制約条件を考慮することで目的に応じた運用が可能となる。そのためにロボットシステム１０２は、作業の効率化を図ることができる。
【０１０１】
（第４実施形態）
第４実施形態のロボットシステムは、保持に失敗したときに、再度、保持成否確率分布に基づいて保持位置を決定することなく、マニピュレータ・保持制御を行う。具体的には、第４実施形態のロボットシステムは、第１実施形態と同様に、視覚センサにより撮像して得られた対象物体４１の視覚情報（画像情報）に基づいて対象物体４１の保持成否確率分布を決定する。次に、ロボットシステムは、保持成否確率分布に基づいて、保持位置の候補となる複数の保持位置候補と各保持位置候補の優先順位を決定し、保持動作を実行する。
【０１０２】
ロボットシステムは、対象物体４１の保持を失敗した場合に、複数の保持位置候補の優先順位に応じて次の保持位置を決定し、再び保持動作を行う。これによりロボットシステムは、保持位置の決定処理の回数が少なくなり、より短時間で保持動作を行うことが可能となり、作業効率が向上する。つまり、保持成否確率分布に基づく保持位置の決定処理が一回だけであり、保持位置の決定処理を繰り返さないため、より短時間で保持に成功することができ、作業効率が向上する。
【０１０３】
図１４は、第４実施形態の情報処理装置の機能説明図である。第４実施形態のロボットシステム１０３は、第１実施形態のロボットシステム１００と同じ構成である。情報処理装置２００３のハードウェア構成は、図２に示す第１実施形態の情報処理装置２０のハードウェア構成と同様である。情報処理装置２００３の機能ブロックは、図３に示す第１実施形態の情報処理装置２０の機能ブロックと同じ構成であるが、保持位置決定部２０３３、制御部２０４２、及び保持成否判定部２０５１の機能が第１実施形態とは異なる。
【０１０４】
保持位置決定部２０３３は、保持成否確率分布決定部２０２で決定された保持成否確率分布に基づいて、複数の保持位置候補とその優先順位を決定する。保持位置決定部２０３３は、決定した複数の保持位置候補とその優先順位を制御部２０４２へ送信する。
保持成否判定部２０５１は、保持装置３が対象物体４１を保持したときに、保持の成否を判定する。判定方法は、第１実施形態で説明した通りである。保持成否判定部２０５１は、判定結果を制御部２０４２へ送信する。
【０１０５】
制御部２０４２は、撮像時に、マニピュレータ１の位置姿勢を制御して、撮像装置２が移動すると撮像装置２に撮像トリガーを送信する。制御部２０４２は、保持時に、マニピュレータ１を保持位置姿勢になるよう制御して、保持装置３が移動すると保持装置３に保持トリガーを送信する。制御部２０４２は、マニピュレータ１の保持位置姿勢を決定するための保持位置候補を、保持位置決定部２０３３から取得する。保持位置候補が複数ある場合、制御部２０４２は、複数の保持位置候補を優先順位とともに取得する。制御部２０４２は、保持成否判定部２０５１から保持に失敗したことを表す情報を取得した場合、保持位置決定部２０３３から取得した保持位置候補の優先順位に応じた保持位置で再度保持動作を行うように、マニピュレータ・保持制御を行う。
【０１０６】
図１５は、以上のような構成の情報処理装置２００３によるロボットシステム１０３の制御処理を表すフローチャートである。図１５では、図４に示す第１実施形態の処理と同じ処理については、同じステップ番号を付してある。同じ処理については説明を省略する。
【０１０７】
Ｓ６の処理で保持成否確率分布決定部２０２が保持成否確率分布を決定すると、保持位置決定部２０３２は、保持成否確率分布に基づいて複数の保持位置候補及びそれらの優先順位を決定する（Ｓ４１）。保持位置決定部２０３２は、決定した複数の保持位置候補及び優先順位を制御部２０４２へ送信する。
【０１０８】
複数の保持位置候補は、例えば、保持成否確率分布から確率の高い位置を抽出してクラスタリングすることで所定数の候補範囲を決定し、候補範囲の中心を保持位置候補とすることで決定される。クラスタリングする際の範囲は、保持装置３に吸着パッドを用いている場合、吸着パッドの直径とすることができる。複数の保持位置候補の優先順位は、各候補範囲内において、保持成否確率分布の確率が所定の閾値以上である位置の数の多さや、保持成否確率分布の確率の最大値の大きさから決定することができる。
【０１０９】
また、複数の保持位置候補は、最初に一つ保持位置候補を決定し、この保持位置候補に対して所定の動作で周囲を保持するように他の保持位置候補を決定してもよい。例えば、最初に決定した保持位置候補を中心とした半径ｒの円周上で、角度θの間隔の各位置が保持位置候補に決定される。保持成否確率の高い範囲の形に応じて、最初に決定した保持位置候補の周囲を保持位置候補としてもよい。例えば、最初の保持位置候補を中心として保持成否確率の高い範囲が楕円形状になっている場合、その楕円形状の範囲内から保持位置候補が決定される。最初の保持位置候補に対して、対象物体４１までの距離（平面に配置している場合は高さ）のみを変化させて、他の保持位置候補を決定してもよい。
【０１１０】
制御部２０４２は、保持動作のためにマニピュレータ１の動作を制御する（Ｓ４２）。具体的には、制御部２０４２は、保持位置決定部２０３３が決定した位置姿勢や軌道に基づいてマニピュレータ１をどのように動かせばいいかを決定して、マニピュレータ１を動作させる。
【０１１１】
保持成否判定部２０５１は、保持装置３が対象物体４１の保持に成功したか否かを判定する（Ｓ４３）。保持成否判定の方法は、第１実施形態と同様である。保持成否判定部２０５１が保持に成功したと判定した場合（Ｓ４３：Y）、情報処理装置２００３は、Ｓ１１以降の処理を行う。保持に失敗したと判定された場合（Ｓ４３：N）、保持成否判定部２０５１は、制御部２０４２に保持に失敗したという情報を送信する。制御部２０４２は、保持に失敗したという情報を取得すると、再度、保持動作を行うために、保持位置決定部２０３３により決定された複数の保持位置候補から優先順位に応じて保持位置を決定する。制御部２０４２は。該保持位置による保持動作を行うようにマニピュレータ１を制御する（Ｓ４２）。
【０１１２】
以上のように本実施形態のロボットシステム１０３は、情報処理装置２００３により、撮像装置２が撮像した画像に基づいて保持成否確率分布を生成する。情報処理装置２００３の保持成否確率分布決定部２０２は、画像情報から保持に成功／失敗する保持成否確率分布を決定する。情報処理装置２０の保持位置決定部２０３２は、決定した保持成否確率分布に基づいて対象物体４１の複数の保持位置候補及び各保持位置候補の優先順位を決定する。情報処理装置２０の制御部２０４１は、保持位置候補から決定した保持位置に基づいてロボット１０の動作を制御して、ロボット１０に対象物体４１を保持する動作を実行させる。情報処理装置２００３の保持成否判定部２０５は、ロボット１０の保持動作の成功／失敗を判定する。失敗した場合、制御部２０４２は、優先順位に基づいて、前回までの保持位置とは異なる次の保持位置を保持位置候補から決定する。情報処理装置２００３は、対象物体４１を保持するまで、繰り返し保持位置を更新しながらロボット１０に保持動作を行わせることになる。
【０１１３】
情報処理装置２００３は、保持成否確率分布に基づいて複数の保持位置候補と各保持位置候補の優先順位を一度に決定する。このような制御により、決定処理の回数が低減され、短時間で対象物体４１の保持が可能となる。そのためにロボットシステム１０２は、作業の効率化を図ることができる。
【０１１４】
以上のような第１〜第４実施形態では、保持位置を決定するための情報として、距離画像の信頼度が用いられてもよい。ビニール袋や緩衝材に包まれたような距離画像が正確に得にくい対象物体４１に対して、距離画像の信頼度に基づいて保持位置を決定することで、対象物体４１へのアプローチがより成功しやすくなる。そのために短時間で保持が成功でき、作業効率が向上する。また、第１〜第４実施形態では、対象物体４１は、例えば、変形や光の反射が原因で保持位置の正確な推定が困難な物体、電源コードのような柔軟物体や金属、半透明の物体であってもよい。
【０１１５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019188580.tif 000006
【図２】
2019188580.tif 000007
【図３】
2019188580.tif 000008
【図４】
2019188580.tif 000009
【図５】
2019188580.tif 000010
【図６】
2019188580.tif 000011
【図７】
2019188580.tif 000012
【図８】
2019188580.tif 000013
【図９】
2019188580.tif 000014
【図１０】
2019188580.tif 000015
【図１１】
2019188580.tif 000016
【図１２】
2019188580.tif 000017
【図１３】
2019188580.tif 000018
【図１４】
2019188580.tif 000019
【図１５】
2019188580.tif 000020