(57)【要約】【課題】対象物体を保持するための学習データを容易に生成する。【解決手段】情報処理装置１２０は、マニピュレータによる撮像および保持の対象となる対象物体に関する、学習データの生成に必要な学習情報として、対象物体の保持を行うときのマニピュレータの保持位置姿勢と、当該保持位置姿勢における対象物体の保持成否情報とを含む情報を取得する第一の取得手段と、対象物体が撮像された画像を取得する第二の取得手段と、第一の取得手段により取得された学習情報と、第二の取得手段により取得された画像と、第二の取得手段により取得された画像の撮像を行ったときのマニピュレータの撮像位置姿勢とに基づいて学習データを生成する生成手段と、を備える。【選択図】      図２
2018161692.tif 000002
【特許請求の範囲】
【請求項１】
マニピュレータによる撮像および保持の対象となる対象物体に関する、学習データの生成に必要な学習情報として、前記対象物体の保持を行うときの前記マニピュレータの保持位置姿勢と、当該保持位置姿勢における前記対象物体の保持成否情報とを含む情報を取得する第一の取得手段と、
前記対象物体が撮像された画像を取得する第二の取得手段と、
前記第一の取得手段により取得された学習情報と、前記第二の取得手段により取得された画像と、前記第二の取得手段により取得された画像の撮像を行ったときの前記マニピュレータの撮像位置姿勢とに基づいて前記学習データを生成する生成手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記学習データは、前記第二の取得手段により取得された画像と教師信号となるラベルとの組であり、
前記ラベルは、前記画像の撮像を行ったときの前記マニピュレータの撮像位置姿勢と前記対象物体の保持を行うときの前記マニピュレータの保持位置姿勢との相対的な位置姿勢情報と、前記保持成否情報とを含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記対象物体の保持を行うための目標の保持位置姿勢を決定する第一の決定手段と、
前記第一の決定手段により決定された保持位置姿勢に基づいて、前記マニピュレータを移動し、保持を指示する第一の制御手段と、
前記対象物体の保持の成否を判定する判定手段と、をさらに備え、
前記第一の取得手段は、
前記第一の制御手段により保持が指示されたときの前記マニピュレータの位置姿勢を前記保持位置姿勢として取得し、前記判定手段による判定の結果を前記保持成否情報として取得することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記第一の取得手段は、
前記マニピュレータの前記対象物体との接触情報に基づいて前記保持位置姿勢を取得することを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第一の制御手段は、
前記マニピュレータの前記対象物体との接触情報に基づいて前記対象物体を保持可能であると判定したときに、前記保持を指示することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記第二の取得手段により取得された画像における重力方向を示す重力方向情報を取得する第三の取得手段をさらに備え、
前記生成手段は、さらに前記第三の取得手段により取得された重力方向情報に基づいて前記学習データを生成することを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記対象物体を撮像するための目標の撮像位置姿勢を決定する第二の決定手段と、
前記第二の決定手段により決定された撮像位置姿勢に基づいて、前記対象物体を撮像する撮像装置および前記対象物体の少なくとも一方を移動し、前記撮像装置に撮像を指示する第二の制御手段と、をさらに備えることを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記第二の決定手段は、
ユーザが指定した撮像位置姿勢の範囲内で前記目標の撮像位置姿勢を決定することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記第二の制御手段は、さらに前記撮像装置による前記対象物体の撮像時における照明の状態を制御することを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
前記生成手段により生成された学習データを用いてモデルを学習する学習手段と、
前記学習手段により学習されたモデルに基づいて、画像中の前記対象物体を認識し、認識された前記対象物体を保持の対象として決定する認識手段と、をさらに備えることを特徴とする請求項１から９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記認識手段は、
前記画像を入力とし、前記学習手段により学習されたモデルに基づいて、前記第一の取得手段によって取得される前記保持位置姿勢と、前記第二の取得手段によって取得される画像の撮像を行う前記撮像位置姿勢とを決定することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記第一の取得手段は、前記マニピュレータによる複数回の撮像の対象となる前記対象物体に関する前記学習情報として、前記保持位置姿勢と、前記保持成否情報とを含む情報を取得し、
前記第二の取得手段は、前記対象物体が複数回撮像された複数の画像を取得し、
前記生成手段は、前記第一の取得手段により取得された学習情報と、前記第二の取得手段により取得された複数の画像と、前記撮像位置姿勢とに基づいて、前記学習データを生成することを特徴とする請求項１から１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記対象物体を撮像する撮像装置と、
前記撮像装置を移動可能な前記マニピュレータと、をさらに備えることを特徴とする請求項１から１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記マニピュレータの姿勢を取得する姿勢センサをさらに備えることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記対象物体を保持可能な保持装置と、
前記保持装置を移動可能な前記マニピュレータと、をさらに備えることを特徴とする請求項１から１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記保持装置が物体に接触したときの反力を取得する力覚センサをさらに備えることを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
マニピュレータによる撮像および保持の対象となる対象物体に関する、学習データの生成に必要な学習情報として、前記対象物体の保持を行うときの前記マニピュレータの保持位置姿勢と、当該保持位置姿勢における前記対象物体の保持成否情報とを含む情報を取得するステップと、
前記対象物体が撮像された画像を取得するステップと、
前記学習情報と、前記画像と、前記画像の撮像を行ったときの前記マニピュレータの撮像位置姿勢とに基づいて前記学習データを生成するステップと、を含むことを特徴とする情報処理方法。
【請求項１８】
コンピュータを、請求項１から１６のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来、対象物体を撮像した画像やデプス画像（距離画像）から、対象物体の特徴やパターンを学習し、対象物体を認識する手法がある。ここで、対象物体の認識能力を向上させるためには、対象物体を様々な向きや大きさで撮像し、各撮像画像に対して認識に適したラベルを教師信号として与えた学習データが必要である。例えば、対象物体の中心位置を認識するためには、対象物体を様々な位置姿勢から撮像し、各画像中の対象物体の中心位置を与えなければならない。このように、学習データの生成には大きな手間がかかる。
そこで、学習データの収集に関連する技術として、仮想的に見えのバリエーションを増やす方法が提案されている。特許文献１には、撮像した画像に拡大縮小や回転などの画像処理を加えることでバリエーションを増やす方法が開示されている。また、非特許文献１には、ＣＧ（コンピュータグラフィックス）を用いて仮想的な撮像画像を作成する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−８８７８７号公報
【非特許文献】
【０００４】
【非特許文献１】土屋成光、外２名、「人検出のための生成型学習とNegative-Bag MILBoostによる学習の効率化」、画像の認識・理解シンポジウム（ＭＩＲＵ２０１２）、２０１２年８月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ロボットを用いて対象物体を保持するロボットシステムにおいては、対象物体の認識に成功しても、対象物体の保持に失敗することがある。そこで、対象物体の認識と保持とを併せて学習することで、保持成功率を向上させることが考えられる。しかしながら、対象物体の保持を学習する場合、１回の保持動作に対して１つの学習データを得ることしかできず、学習に時間がかかるという問題がある。
そこで、本発明は、対象物体を保持するための学習データを容易に生成することを目的としている。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る情報処理装置の一態様は、
マニピュレータによる撮像および保持の対象となる対象物体に関する、学習データの生成に必要な学習情報として、前記対象物体の保持を行うときの前記マニピュレータの保持位置姿勢と、当該保持位置姿勢における前記対象物体の保持成否情報とを含む情報を取得する第一の取得手段と、前記対象物体が撮像された画像を取得する第二の取得手段と、前記第一の取得手段により取得された学習情報と、前記第二の取得手段により取得された画像と、前記第二の取得手段により取得された画像の撮像を行ったときの前記マニピュレータの撮像位置姿勢とに基づいて前記学習データを生成する生成手段と、を備える。
【発明の効果】
【０００７】
本発明によれば、対象物体を保持するための学習データを容易に生成することができる。
【図面の簡単な説明】
【０００８】
【図１】第一の実施形態におけるロボットシステムの構成例を示す図である。
【図２】第一の実施形態における情報処理装置の構成を示す図である。
【図３】情報処理装置のハードウェア構成の一例である。
【図４】ロボットシステムによる処理を示すフローチャートである。
【図５】情報処理装置による処理を示すフローチャートである。
【図６】ロボットシステムの座標系を説明する図である。
【図７】第二の実施形態における認識装置による処理を示すフローチャートである。
【図８】第二の実施形態のマニピュレータ制御の動作を示すフローチャートである。
【図９】第三の実施形態における情報処理装置の構成を示す図である。
【図１０】第三の実施形態の情報処理装置による処理を示すフローチャートである。
【図１１】第四の実施形態における情報処理装置の構成を示す図である。
【図１２】第四の実施形態のマニピュレータ制御を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
【００１０】
（第一の実施形態）
図１は、本実施形態における情報処理装置１２０を備える物体認識保持装置２０００の構成例を示す図である。本実施形態では、物体認識保持装置２０００を、ロボットによる対象物体の認識および保持動作を行うロボットシステムに適用した場合について説明する。
情報処理装置１２０は、マニピュレータ４００による撮像および保持の対象となる対象物体を複数の所定の撮像位置姿勢から撮像した画像に基づいて、学習データ（ラベルを付与した画像）を生成する。ロボットシステム２０００は、情報処理装置１２０により生成された学習データを用いてモデルを機械学習し、学習したモデルを用いて画像中の対象物体を認識して保持動作を行う。本実施形態では、ロボットシステム２０００は、ディープラーニングの一種であるＣＮＮ（Convolutional Neural Network）によってモデルを学習する。そして、ロボットシステム２０００は、学習した学習モデル（ＣＮＮモデル）を用いて画像中の対象物体を認識し、対象物体の保持位置姿勢を求め、保持動作を行う。
【００１１】
本実施形態では、情報処理装置１２０は、対象物体に対して実際に一回保持動作を行う。また、情報処理装置１２０は、実際に対象物体の保持を行うときのマニピュレータ４００の保持位置姿勢（保持動作時の保持位置姿勢）と、その保持位置姿勢における対象物体の保持の成功／失敗を示す保持成否結果（保持成否情報）とを学習情報として取得する。そして、情報処理装置１２０は、取得した学習情報をもとに学習データを生成する。
本実施形態では、情報処理装置１２０は、所定の撮像位置姿勢にて対象物体が撮像された画像を取得し、取得した画像に対して学習情報を対応付けることで学習データを生成する。このとき、情報処理装置１２０は、取得した画像の撮像を行ったときのマニピュレータ４００の撮像位置姿勢と学習情報として取得した保持位置姿勢とに基づいて、取得した画像に、当該画像おける上記保持位置姿勢と保持成否情報とを対応付ける。ここで、上記の画像における保持位置姿勢は、画像の撮像位置姿勢から見た実際の保持位置姿勢である。つまり、上記の画像における保持位置姿勢は、画像の撮像を行ったときのマニピュレータ４００の位置姿勢と、上記の実際に対象物体の保持を行うときのマニピュレータ４００の位置姿勢との相対的な位置姿勢情報である。
【００１２】
学習情報は、学習データの生成に必要となる情報であり、画像に対応付けられる情報である。本実施形態では、学習情報は、保持動作時の保持位置姿勢と保持成否情報とを含む。学習データは、学習に用いる画像とラベルとの組である。ラベルは、学習に用いる教師信号であり、画像における保持位置姿勢と保持成否情報とを含む。
また、保持位置姿勢は、対象物体を保持するときのマニピュレータ４００の位置姿勢であり、例えば保持装置６００が吸着機構によって対象物体を吸着する場合、吸着パッドを対象物体に接触させた状態でのマニピュレータ４００の位置姿勢をいう。ここで、保持とは、対象物体を把持したり吸着したりする操作であり、その後、対象物体を搬送できる状態にする操作をいう。なお、マニピュレータ４００と保持装置６００との位置関係が既知である場合、保持位置姿勢として、対象物体を保持するときの保持装置６００の位置姿勢を用いてもよい。
また、撮像位置姿勢は、対象物体の画像の撮像を行ったときのマニピュレータ４００の位置姿勢である。なお、マニピュレータ４００と撮像装置５００との位置関係が既知である場合、撮像位置姿勢として、画像の撮像を行ったときの撮像装置５００の位置姿勢を用いてもよい。上記画像は、ＲＧＢのカラー画像、デプス画像（距離画像）およびモノクロ画像のうち少なくとも１つを含む。
【００１３】
（システム構成）
図１に示すように、ロボットシステム２０００は、情報処理装置１２０と、学習装置２２０と、認識装置３２０と、マニピュレータ４００と、撮像装置５００と、光源５１０と、保持装置６００と、を備える。
情報処理装置１２０は、マニピュレータ４００に対して制御値を出力し、マニピュレータ４００を制御する。マニピュレータ４００は、対象物体１を任意の位置姿勢から撮像したり、対象物体１を操作したりするために、撮像装置５００、光源５１０および保持装置６００を移動可能に構成されている。また、情報処理装置１２０は、撮像装置５００に対して撮像トリガー（撮像の指示）を出力し、撮像トリガーを受け取った撮像装置５００が撮像した画像を取得することができる。情報処理装置１２０は、撮像装置５００から取得した画像を学習データの生成に用いる。
【００１４】
撮像装置５００は、対象物体のカラー画像およびデプス画像を撮像することができる。撮像装置５００は、情報処理装置１２０からの撮像トリガーを受け取ったタイミングで撮像を行い、情報処理装置１２０に画像信号を送信する。また、撮像装置５００は、後述する認識装置３２０からの撮像トリガーを受け取ったタイミングでも撮像を行い、認識装置３２０に画像信号を送信する。
【００１５】
学習装置２２０は、情報処理装置１２０により生成された学習データを用いて、学習モデル（ＣＮＮモデル）を学習し、保存する。認識装置３２０は、撮像装置５００に対して撮像トリガーを出力し、撮像トリガーを受け取った撮像装置５００が撮像した画像を取得することができる。認識装置３２０は、撮像装置５００から取得した画像を対象物体の操作に用いる。認識装置３２０は、学習装置２２０が保存した学習モデルと、撮像装置５００から取得した画像とを用いて、画像中の対象物体を認識し操作する。
マニピュレータ４００は、例えば、多関節ロボット等により構成することができる。マニピュレータ４００は、各関節の角度を変更することで撮像装置５００、保持装置６００および光源５１０の位置姿勢を変更可能な位置姿勢変更機構を備える。位置姿勢変更機構は、電動モータによって駆動されてもよいし、油圧や空気圧等の流体圧で作動するアクチュエータによって駆動されてもよい。この位置姿勢変更機構は、情報処理装置１２０から出力される動作指示情報に従って駆動される。
【００１６】
保持装置６００は、ロボットが対象物体の種類に応じた操作を実現するためのツールであり、モータ駆動可能なチャック機構を有し対象物体を把持可能なハンドや、空気圧で対象物体を吸着する吸着パッドを用いたハンドを用いることができる。なお、保持装置６００はマニピュレータ４００に対して着脱可能に取り付けられており、ワークの種類に応じて交換可能であってよい。また、マニピュレータ４００は、多関節ロボットに限定されるものではなく、数値制御（Numerical Control：ＮＣ）可能な可動式の機械であってもよい。撮像装置５００および光源５１０は、保持装置６００付近に設置することができる。
ロボットシステム２０００は、情報処理装置１２０によって決定された行動を実施し、対象物体１および周辺物体２を撮像したり、対象物体１を保持したり搬送したりする操作を実行する。本実施形態において、行動とは、対象物体１を撮像あるいは操作するためのロボットシステム２０００の動作のことである。
【００１７】
対象物体１は、カメラのアクセサリーなどのような、マニピュレータ４００による操作対象となることが想定される部品である。対象物体１の周辺には、周辺物体２が存在する。周辺物体２は、対象物体１の周辺に位置する対象物体１以外の全ての物体であり、例えば図１に示すように、バラ積みされた対象物体１の周辺に存在する対象物体１と同じ種類の物体や、対象物体１を収容している容器を含む。また、周辺物体２は、対象物体１を収容している容器の周辺に置かれた物体を含んでもよい。
【００１８】
撮像装置５００は、カメラや、光を検出するセンサ、フォトダイオードなどで構成される視覚センサであり、対象物体１および周辺物体２の画像を撮像し、撮像した画像を情報処理装置１２０に出力する。光源５１０は、例えばプロジェクタによって構成され、可視光を出射したり、レーザ光源から赤外光を出射したりすることで、対象物体１および周辺物体２に対して均一照明光やパターン光を投射する。撮像装置５００は、光源５１０によって光が投射された対象物体１および周辺物体２の画像を撮像することで、三角測量の原理により、対象物体１および周辺物体２までの距離を表す距離画像を取得することができる。
なお、撮像装置５００は、光源５１０によって光が投射されていない状態で、対象物体１および周辺物体２の画像を撮像することもできる。撮像装置５００および光源５１０は、図１に示すように、マニピュレータ４００に搭載してもよいし、撮像対象空間の上方に固定配置したり、他の作業機械に搭載したりしてもよい。また、撮像装置５００および光源５１０は複数配置してもよい。
【００１９】
（装置の構成）
図２は、本実施形態における情報処理装置１２０を備えるロボットシステム２０００の構成を示す図である。情報処理装置１２０は、学習情報取得部１２１と、目標位置姿勢生成部１２２と、制御部１２３と、画像取得部１２４と、学習データ生成部１２５と、学習データ蓄積部１２６と、保持成否判定部１２７と、を備える。
目標位置姿勢生成部１２２は、撮像装置５００による撮像のためのマニピュレータ４００の目標位置姿勢（目標の撮像位置姿勢）や、保持装置６００による保持のためのマニピュレータ４００の目標位置姿勢（目標の保持位置姿勢）を生成する。これらの目標位置姿勢は、ランダムで生成されてもよいし、設計者（ユーザ）が予め範囲を指定したり、具体的な値を指定したりすることで生成されてもよい。目標位置姿勢生成部１２２は、生成した目標位置姿勢を制御部１２３に出力する。
【００２０】
制御部１２３は、目標位置姿勢生成部１２２から撮像位置姿勢が入力された場合、その撮像位置姿勢にマニピュレータ４００を移動するようマニピュレータ４００に対して制御値を出力することで、撮像装置５００を移動する。そして、マニピュレータ４００が指示された撮像位置姿勢に移動したら、制御部１２３は、撮像装置５００に対して撮像トリガーを出力する。また、制御部１２３は、目標位置姿勢生成部１２２から保持位置姿勢が入力された場合、その保持位置姿勢にマニピュレータ４００を移動するようマニピュレータ４００に対して制御値を出力することで、保持装置６００を移動する。そして、マニピュレータ４００が指示された保持位置姿勢に移動したら、制御部１２３は、保持装置６００に対して保持トリガー（保持の指示）を出力する。さらに、制御部１２３は、マニピュレータ４００の位置姿勢を示す情報をマニピュレータ４００から取得可能である。
【００２１】
画像取得部１２４は、撮像装置５００から画像を取得し、取得した画像を学習データ生成部１２５に出力する。画像取得部１２４は、例えばキャプチャボードやメモリ（ＲＡＭ）によって構成することができる。保持成否判定部１２７は、保持装置６００が対象物体１の保持動作を行ったときに、保持に成功したか失敗したかを判定する。例えば、保持装置６００が吸着機構の場合、吸着時の真空到達度を計測することによって、上記判定を行うことができる。具体的には、予め吸着成功とする真空到達度の閾値を設定しておき、吸着動作実行時に真空到達度を計測し、閾値に達していれば吸着できているため吸着成功、閾値に達していなければ吸着できていないため吸着失敗と判定する。
学習情報取得部１２１は、撮像装置５００による撮像時に制御部１２３がマニピュレータ４００から取得した撮像位置姿勢と、保持装置６００による保持動作時に制御部１２３がマニピュレータ４００から取得した保持位置姿勢とを取得する。また、学習情報取得部１２１は、保持成否判定部１２７による判定結果である保持成否情報を取得する。そして、学習情報取得部１２１は、取得した保持動作時の保持位置姿勢および保持成否情報を学習情報として学習データ生成部１２５に出力する。また、学習情報取得部１２１は、取得した撮像位置姿勢を、学習データの生成に必要な情報として学習データ生成部１２５に出力する。
【００２２】
学習データ生成部１２５は、学習情報取得部１２１から入力された撮像位置姿勢に基づいて、画像取得部１２４から入力された画像に、学習情報取得部１２１から入力された学習情報を対応付ける。このとき、学習データ生成部１２５は、学習情報として取得した保持動作時の保持位置姿勢を、画像の撮像位置姿勢に基づいて、画像における保持位置姿勢に変換して当該画像と対応付ける。そして、学習データ生成部１２５は、画像と当該画像に対応付けられた学習情報（保持位置姿勢および保持成否情報）とに基づいて学習データを生成し、生成した学習データを学習データ蓄積部１２６に出力する。学習データ蓄積部１２６は、学習データ生成部１２５から入力された学習データを保存する。学習データ蓄積部１２６は、メモリなどの記憶媒体に学習データを保存する。
なお、本実施形態では、情報処理装置１２０と、学習装置２２０と、認識装置３２０とが別々の装置である場合について説明するが、情報処理装置１２０が学習装置２２０および認識装置３２０の機能を有していてもよい。
【００２３】
図３は、情報処理装置１２０のハードウェア構成の一例を示す図である。
情報処理装置１２０は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、外部メモリ１４と、表示部１５と、入力部１６と、通信Ｉ／Ｆ１７と、システムバス１８とを備える。
ＣＰＵ１１は、情報処理装置１２０における動作を統括的に制御するものであり、システムバス１８を介して、各構成部（１２〜１７）を制御する。ＲＯＭ１２は、ＣＰＵ１１が処理を実行するために必要な制御プログラム等を記憶する不揮発性メモリである。なお、当該プログラムは、外部メモリ１４や着脱可能な記憶媒体（不図示）に記憶されていてもよい。ＲＡＭ１３は、ＣＰＵ１１の主メモリ、ワークエリア等として機能する。つまり、ＣＰＵ１１は、処理の実行に際してＲＯＭ１２から必要なプログラム等をＲＡＭ１３にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
外部メモリ１４は、ＣＰＵ１１がプログラムを用いた処理を行う際に必要な各種データや各種情報を記憶することができる。また、外部メモリ１４は、ＣＰＵ１１がプログラムを用いた処理を行うことにより得られる各種データや各種情報等を記憶することができる。外部メモリ１４は、上記の学習データを保存してもよい。
【００２４】
表示部１５は、液晶ディスプレイ（ＬＣＤ）等のモニタにより構成される。入力部１６は、キーボードやマウス等のポインティングデバイスにより構成され、情報処理装置１００のユーザが情報処理装置１００に対して指示を与えることができるように構成される。通信Ｉ／Ｆ１７は、外部装置（本実施形態では、学習装置２２０、マニピュレータ４００、撮像装置５００、保持装置６００）と通信するためのインタフェースである。通信Ｉ／Ｆ１７は、例えばＬＡＮインタフェースとすることができる。システムバス１８は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、外部メモリ１４、表示部１５、入力部１６および通信Ｉ／Ｆ１７を通信可能に接続する。
図２に示す情報処理装置１２０の各部の機能は、ＣＰＵ１１がプログラムを実行することで実現することができる。ただし、図２に示す情報処理装置１２０の各部のうち少なくとも一部が専用のハードウェアとして動作するようにしてもよい。この場合、専用のハードウェアは、ＣＰＵ１１の制御に基づいて動作する。
【００２５】
（認識処理）
以下、ロボットシステム２０００の動作について、図４を参照しながら説明する。この図４の処理は、例えばオペレータがロボットシステム２０００を起動したときに開始される。ただし、開始のタイミングは、ロボットシステム２０００の起動時に限定されるものではない。以降、アルファベットＳはフローチャートにおけるステップを意味するものとする。
まずＳ２１において、情報処理装置１２０は、学習データを生成し保存する。学習データ生成処理の詳細については後述する。情報処理装置１２０が学習データを生成し終えたら、Ｓ２２に移行する。Ｓ２２では、学習装置２２０は、情報処理装置１２０によって保存された学習データを用いて学習モデルの学習を行い、学習モデルを保存する。この学習モデルを用いることで、対象物体１が撮像された画像を入力として、画像中の対象物体１を保持するためのマニピュレータ４００の位置姿勢を得ることができる。つまり、どのような位置姿勢であれば対象物体１の保持が成功しやすいかという情報を得ることができる。
【００２６】
Ｓ２３では、認識装置３２０は、撮像装置５００から画像を取得し、学習装置２２０に保存された学習モデルを用いて画像中の対象物体１を認識する。このとき入力する画像の撮像位置姿勢は、ランダムで生成してもよいし、設計者（ユーザ）が予め範囲を指定したり、具体的な値を指定したりすることで生成してもよい。また、これら以外の方法で生成してもよい。認識装置３２０は、上記の認識結果をもとに、学習装置２２０に保存された学習モデルを用いて、認識された対象物体１を保持するための保持位置姿勢を生成する。そして、認識装置３２０は、生成された保持位置姿勢にマニピュレータ４００を移動するようマニピュレータ４００を制御することで、保持装置６００を移動する。マニピュレータ４００が指示された保持位置姿勢に移動したら、認識装置３２０は、保持装置６００に対して保持トリガーを出力し、保持装置６００による対象物体１の保持動作を実行させる。
【００２７】
（学習データ生成処理）
図５は、図４のＳ２１において情報処理装置１２０が実行する学習データ生成処理の手順を示すフローチャートである。情報処理装置１２０は、ＣＰＵ１１が必要なプログラムを読み出して実行することにより、図５に示す処理を実現することができる。ただし、上述したように、図２に示す情報処理装置１２０の各要素のうち少なくとも一部が専用のハードウェアとして動作することで図５の処理が実現されるようにしてもよい。この場合、専用のハードウェアは、情報処理装置１２０のＣＰＵ１１の制御に基づいて動作する。
【００２８】
まずＳ２１１において、情報処理装置１２０は、システムの初期化処理を行う。すなわち、ＣＰＵ１１は、ＲＯＭ１２もしくは外部メモリ１４に格納されたプログラムをロードし、ＲＡＭ１３上に展開して実行可能な状態とする。また、情報処理装置１２０に接続された各機器のパラメータの読み込みや初期位置への復帰を行い、使用可能な状態にする。
次にＳ２１２において、目標位置姿勢生成部１２２は、撮像のためのマニピュレータ４００の目標位置姿勢である目標の撮像位置姿勢を生成し、制御部１２３に出力する。ここで、目標の撮像位置姿勢は、乱数で決定してもよいし、設計者（ユーザ）が予め固定値で決めておいてもよいし、範囲を指定してその範囲内で乱数により決定してもよいし、これら以外の方法で生成してもよい。例えば、図１に示すように対象物体１を含む物体がバラ積みされている場合、バラ積みされている領域の所定位置を中心した半球状に位置し、当該所定位置付近を注視点とする撮像位置姿勢をランダムに生成してもよい。
【００２９】
Ｓ２１３では、制御部１２３は、マニピュレータ４００を制御し、マニピュレータ４００をＳ２１２において生成された撮像位置姿勢へ移動する。具体的には、制御部１２３は、Ｓ２１２において生成された撮像位置姿勢にマニピュレータ４００を移動するために、マニピュレータ４００をどのように動かせばよいかを決定する。例えば、目標の撮像位置姿勢の情報を順運動学によってマニピュレータ４００の関節角度情報に変換し、マニピュレータ４００の各関節のアクチュエータを動作させるための指令値を計算し、上記アクチュエータを制御するロボットコントローラへ出力する。これにより、マニピュレータ４００が移動し、撮像装置５００が撮像時の位置姿勢となる。
Ｓ２１４では、制御部１２３は、撮像装置５００に対して撮像トリガーを出力し、画像取得部１２４は、撮像装置５００から画像を取得する。そして、画像取得部１２４は、取得した画像を学習データ生成部１２５に出力する。
【００３０】
Ｓ２１５では、学習情報取得部１２１は、Ｓ２１４において撮像装置５００が撮像を行ったときのマニピュレータ４００の位置姿勢を撮像時の撮像位置姿勢として取得し、学習データ生成部１２５に出力する。例えば、学習情報取得部１２１は、マニピュレータ４００の各関節にあるエンコーダから撮像時における各関節の角度情報を取得し、逆運動学によりマニピュレータ４００の位置姿勢を計算することで撮像位置姿勢を取得することができる。
Ｓ２１６では、情報処理装置１２０は、対象物体１の保持動作に移行するか、撮像を継続するかの判定を行う。情報処理装置１２０は、例えば撮像回数を予め設定しておき、その回数の撮像が行われている場合に、対象物体１の保持動作に移行すると判定することができる。なお、情報処理装置１２０は、指定範囲内を予め決められた間隔で撮像していき、当該指定範囲内を撮像し尽したら対象物体１の保持動作に移行すると判定するようにしてもよいし、他の判定方法を用いてもよい。情報処理装置１２０は、撮像を継続すると判定した場合はＳ２１２に戻り、対象物体１の保持動作に移行すると判定した場合はＳ２１７に移行する。
【００３１】
Ｓ２１７では、目標位置姿勢生成部１２２は、保持のためのマニピュレータ４００の目標位置姿勢である目標の保持位置姿勢を生成し、制御部１２４に出力する。ここで、目標の保持位置姿勢は、乱数で決定してもよいし、設計者（ユーザ）が予め固定値で決めておいてもよいし、範囲を指定してその範囲内で乱数により決定してもよいし、これら以外の方法で生成してもよい。
例えば、対象物体１が平積みされている場合、撮像装置５００により撮像した画像を用いて背景差分によって対象物体１の位置姿勢を推定し、その重心位置を吸着位置と決定し、距離画像から吸着位置の高さを求めて、目標の保持位置姿勢を生成してもよい。一方、対象物体１がバラ積みされている場合は、撮像装置５００により撮像した画像を用いて平面を検出し、その中で距離が近い位置を吸着するように目標の保持位置姿勢を生成してもよい。また、すでに対象物体１の吸着位置を学習している場合は、生成されている学習モデルを参照することで目標の保持位置姿勢を生成してもよい。さらに、これら以外の方法で対象物体１を認識し、目標の保持位置姿勢を生成してもよい。
【００３２】
Ｓ２１８では、制御部１２３は、マニピュレータ４００を制御し、保持動作を実行する。具体的には、制御部１２３は、Ｓ２１７において生成された保持位置姿勢にマニピュレータ４００を移動するために、マニピュレータ４００をどのように動かせばよいかを決定する。決定方法は、Ｓ２１３における決定方法と同様である。制御部１２３は、マニピュレータ４００が目標の保持位置姿勢に移動し、保持装置６００が保持動作時の位置姿勢に移動したら、保持装置６００に保持トリガーを出力して保持動作を行わせる。例えば、保持装置６００が吸着装置である場合、保持装置６００は吸着動作を実施して対象物体１を吸着する動作を行う。また、保持装置６００が把持装置である場合は、保持装置６００は把持動作を実施して対象物体１を把持する動作を行う。
【００３３】
Ｓ２１９では、保持成否判定部１２７は、保持成否判定を行う。例えば、マニピュレータ４００に取り付けられた保持装置６００が吸着装置である場合、保持成否判定部１２７は、保持装置６００が吸着動作を行っているときのエジェクターの真空到達度を評価することで保持成否判定を行う。具体的には、保持成否判定部１２７は、予め吸着成功とする真空到達度の閾値を設定しておき、吸着動作実行時に真空到達度を計測し、閾値に達していれば吸着できているため吸着成功、閾値に達していなければ吸着できていないため吸着失敗と判定する。
一方、保持装置６００が把持装置である場合は、保持成否判定部１２７は、把持幅を評価することで保持成否判定を行う。具体的には、保持成否判定部１２７は、保持動作実行時に把持幅を計測し、把持幅が対象物体１の大きさに合致するようであれば保持成功と判定する。そして、把持幅が閉じ過ぎていたり開きすぎている場合は、何も保持できていなかったり、目標とは異なる物体を保持していたり、意図しない状態で保持していたりする可能性があるので保持失敗と判定する。このように、保持成否判定部１２７は、保持成否を判定し、その結果を保持成否情報として学習情報取得部１２１に出力する。
【００３４】
Ｓ２２０では、学習情報取得部１２１は、Ｓ２１９において保持成否判定部１２７が出力した保持成否情報を学習情報として取得し、学習データ生成部１２５に出力する。また、Ｓ２２１では、学習情報取得部１２１は、Ｓ２１８において保持装置６００が保持動作を行ったときのマニピュレータ４００の位置姿勢を保持動作時の保持位置姿勢として取得し、これを学習情報として学習データ生成部１２５に出力する。このように、学習情報取得部１２１は、制御部１２３が保持装置６００に保持トリガーを出力したときのマニピュレータ４００の位置姿勢を保持動作時の保持位置姿勢として取得する。したがって、何らかの事情によりマニピュレータ４００が目標の保持位置姿勢からずれた位置で保持装置６００による保持動作が行われた場合であっても、実際に保持動作が行われたときのマニピュレータ４００の位置姿勢を適切に取得することができる。
Ｓ２２２では、学習データ生成部１２５は、Ｓ２２０およびＳ２２１において学習情報取得部１２１から取得した学習情報と、Ｓ２１４において画像取得部１２４から取得した画像との対応付けを行い、学習データを生成する。そして、学習データ生成部１２５は、生成した学習データを学習データ蓄積部１２６に出力する。以下、学習データの生成方法について具体的に説明する。
【００３５】
学習情報として入力されるのは、保持動作時のマニピュレータ４００の保持位置姿勢および保持成否情報であり、これらの学習情報が画像に対して対応付けられることで学習データが生成され、蓄積される。このとき画像に対応付けられる保持位置姿勢は、当該画像における保持位置姿勢であり、撮像位置姿勢に基づいて、学習情報として取得された保持動作時の保持位置姿勢を撮像位置姿勢から見た相対的な保持位置姿勢に変換することにより得られる。
本実施形態では、学習データの生成に際し、図６に示すように、それぞれの座標系を設定する。つまり、撮像装置５００の座標系をΣｃ、マニピュレータ４００の座標系をΣｒ、マニピュレータ４００の先端座標系Σｔ、保持装置６００の座標系をΣｆ、作業空間内で基準となる座標系として、ワールド座標系Σｗを設定する。そして、ワールド座標系Σｗからマニピュレータ座標系Σｒまでの変位を（ＲＸ，ＲＹ，ＲＺ）とし、マニピュレータ４００の姿勢を表す３×３の回転行列をＲＭとする。
【００３６】
また、マニピュレータ座標系Σｒからマニピュレータ４００の先端座標系Σｔまでの変位は（ＴＸ，ＴＹ，ＴＺ）、マニピュレータ４００の先端の姿勢を表す３×３の回転行列はＴＭとする。さらに、先端座標系Σｔから保持装置座標系Σｆまでの変位は（ＦＸ，ＦＹ，ＦＺ）、保持装置６００先端の姿勢を表す３×３の回転行列はＦＭとする。なお、保持装置６００先端は、保持装置６００が対象物体１あるいは周辺物体２に接触する部分である。
また、マニピュレータ座標系Σｒから撮像装置座標系Σｃまでの変位は（ＣＸ，ＣＹ，ＣＺ）、撮像装置５００の姿勢を表す３×３の回転行列はＣＭとする。さらに、撮像装置座標系Σｃから対象物体座標系Σｏまでの変位は（ＯＸ，ＯＹ，ＯＺ）、対象物体１の姿勢を表す３×３の回転行列はＯＭとする。また、ワールド座標系Σｗから見た対象物体１の変位は（ＷＸ，ＷＹ，ＷＺ）、姿勢を表す３×３の回転行列はＷＭとする。
【００３７】
マニピュレータ４００の先端に取り付けられた保持装置６００が対象物体１に接触しているとき、マニピュレータ４００の先端に取り付けられた保持装置６００先端の位置は、撮像装置５００により撮像された対象物体１の位置と一致する。したがって、保持装置６００先端が対象物体１に接触しているとき、以下の（１）式および（２）式が成り立つ。
【００３８】
【数１】
2018161692.tif 000003
【００３９】
上記（１）、（２）式より、撮像装置５００が対象物体１を撮像した画像における、保持装置６００が対象物体１を保持したときのマニピュレータ４００の位置姿勢を求めることができる。そのため、撮像装置座標系Σｃ、対象物体座標系Σｏ、先端座標系Σｔ、保持装置座標系Σｆの関係をもとに、撮像装置座標系Σｃから見た対象物体１の位置に保持装置６００を移動させるために、マニピュレータ４００をどのように制御すればよいのかが分かる。これは任意の撮像位置姿勢において成り立つので、複数の所定の撮像位置姿勢において撮像された複数の画像それぞれに対して、保持装置６００が対象物体１を保持したときのマニピュレータ４００の位置姿勢を求めることができる。
なお、本実施形態では、撮像装置５００と保持装置６００とが同一のマニピュレータ４００に設置されているが、撮像装置５００を移動可能なマニピュレータと保持装置６００を移動可能なマニピュレータとが異なる場合にも適用可能である。
【００４０】
上述したように、学習データは、学習に用いる画像とラベルとが組になったデータであり、異なる複数の撮像位置姿勢において撮像された複数の画像に対応して複数存在する。ラベルは、学習に用いる教師信号であり、それぞれの画像における保持位置姿勢と保持成否情報とを含む。つまり、学習データ生成部１２５は、複数の画像それぞれに対して、各画像におけるどの位置姿勢で対象物体１の保持を行ったかという情報と、その保持は成功したか失敗したかという情報とを持たせ、学習データとして生成する。
【００４１】
図５に戻って、Ｓ２２３では、学習データ蓄積部１２６は、Ｓ２２２において生成された学習データを保存する。Ｓ２２４では、情報処理装置１２０は、対象物体１の保持動作を終了するか、継続するかの判定を行う。情報処理装置１２０は、例えば保持回数を予め設定しておき、その回数の保持が行われている場合に、保持動作を終了すると判定することができる。なお、情報処理装置１２０は、指定範囲内において予め決められた間隔で設定された目標の保持位置姿勢について保持動作を行っていき、すべての保持位置姿勢にて保持動作を行ったら保持動作を終了すると判定するようにしてもよい。また、他の判定方法を用いてもよい。情報処理装置１２０は、保持動作を継続すると判定した場合はＳ２１２に戻り、保持動作を終了すると判定した場合は学習データ生成処理を終了する。
【００４２】
以上のように、本実施形態における情報処理装置１２０は、操作対象となる対象物体１に関する、学習データの生成に必要な学習情報として、対象物体１の保持を行う保持位置姿勢と、当該保持位置姿勢における保持成否情報とを含む情報を取得する。このとき、情報処理装置１２０は、対象物体１の保持を行う目標の保持位置姿勢を決定し、決定された保持位置姿勢となるように、マニピュレータ４００を制御して保持装置６００を移動し、保持装置６００に保持を指示する。そして、情報処理装置１２０は、保持装置６００が保持動作を行ったときの保持位置姿勢を取得するとともに、保持装置６００による対象物体１の保持の成否を判定し、保持成否情報を取得する。
また、情報処理装置１２０は、対象物体１を撮像する所定の撮像位置姿勢を決定し、決定された撮像位置姿勢となるように、マニピュレータ４００を制御して撮像装置５００を移動し、撮像装置５００に撮像を指示する。そして、情報処理装置１２０は、上記所定の撮像位置姿勢にて対象物体１が撮像された画像を取得し、取得された画像と学習情報とに基づいて学習データを生成する。
【００４３】
これにより、操作対象となる対象物体１の保持動作の結果を、所定の撮像位置姿勢にて対象物体１が撮像された画像に対応付けて学習データを生成することができる。例えば、複数の撮像位置姿勢が決定されている場合、撮像を複数回行った後、対象物体１の保持動作を１回行い、その１回の保持動作の結果を異なる複数条件で撮像した画像にそれぞれ対応付けて、複数の学習データを生成することができる。したがって、学習データを生成する時間の短縮が図れる。また、学習時間を短縮できることで、マニピュレータ４００や保持装置６００の消耗を小さくすることができるので、機器をより長期間使用することができ、コストの削減が図れる。
【００４４】
ここで、学習データは、ラベルを付与した画像である。また、ラベルは、対象物体１の撮像時の撮像位置姿勢と対象物体１の保持動作時の保持位置姿勢との相対的な位置姿勢情報と、対象物体１の保持動作時の保持位置姿勢における保持成否情報との組とすることができる。つまり、情報処理装置１２０は、実際に対象物体１に対する保持動作を行ったときの保持位置姿勢を、撮像された画像における保持位置姿勢に変換して画像に対応付ける。ここで、異なる複数の撮像条件で複数の画像が撮像された場合、情報処理装置１２０は、実際に対象物体１に対する保持動作を行ったときの保持位置姿勢を、複数の画像それぞれにおける保持位置姿勢に変換して画像に対応付けることができる。このように、１回の保持動作で得られた学習情報を、複数の画像に容易かつ適切に対応付けることができる。
【００４５】
このように、本実施形態によれば、対象物体１を保持するための学習データを容易に大量に生成することができるので、対象物体１を保持するための学習モデルの生成の手間を低減することができる。
【００４６】
（第二の実施形態）
次に、本発明の第二の実施形態について説明する。
上述した第一の実施形態では、情報処理装置１２０が認識装置３２０による認識・保持動作の前に学習データを生成する場合について説明した。この第二の実施形態では、さらに認識装置３２０の認識・保持動作中（ランタイム時）にも学習データを生成する場合について説明する。
（システム構成）
本実施形態におけるロボットシステム２０００の構成は、図１の構成と同様である。
（装置の構成）
本実施形態における情報処理装置１２０の構成は、図２に示す構成と同様である。ただし、本実施形態では、認識装置３２０の構成が第一の実施形態とは異なる。認識装置３２０は、撮像装置５００から画像を取得し、学習装置２２０に保存された学習モデルを参照して画像中の対象物体を認識し、当該対象物体を保持するための目標位置姿勢（目標の保持位置姿勢）を生成する。そして、認識装置３２０は、生成された目標の保持位置姿勢にマニピュレータ４００を移動するようマニピュレータ４００を制御し、保持装置６００に保持動作を行わせる。本実施形態では、認識装置３２０は、保持装置６００が保持動作を行うまでのマニピュレータ４００の移動中にも、対象物体１および周辺物体２の撮像を複数回行い、撮像された画像を用いて学習データを生成する。
【００４７】
認識装置３２０の構成は、図２に示す情報処理装置１２０の構成と学習装置２２０の構成とを含む。つまり、認識装置３２０は、学習データの生成機能と、学習モデルの生成機能とを有する。ただし、認識装置３２０における図２の目標位置姿勢生成部２１２、制御部２１３および画像取得部２１４に相当する各部の処理は、ランタイム時の学習データ生成処理を行う点で第一の実施形態の情報処理装置１２０とは異なる。
【００４８】
（認識処理）
本実施形態のロボットシステム２０００による認識処理の流れは、図４と同様である。ただし、図４のＳ２３の処理が上述した第一の実施形態とは異なる。  
図７は、図４のＳ２３において認識装置３２０が実行する認識・保持動作処理の手順を示すフローチャートである。認識装置３２０のハードウェア構成は、図３に示す情報処理装置１２０のハードウェア構成と同様であり、認識装置３２０のＣＰＵが必要なプログラムを読み出して実行することにより、図７に示す処理を実現することができる。ただし、認識装置３２０の各要素のうち少なくとも一部が専用のハードウェアとして動作することで図７の処理が実現されるようにしてもよい。この場合、専用のハードウェアは、認識装置３２０のＣＰＵ１１の制御に基づいて動作する。
【００４９】
この図７の処理は、図４のＳ２３に該当する処理であり、情報処理装置１２０における学習データ生成、学習装置２２０における学習モデル生成の後に実施される処理である。本実施形態では、認識装置３２０が、Ｓ２２において学習装置２２０が保存した学習モデルを参照し、学習データの生成に用いる目標位置姿勢（撮像、保持）を生成する場合について説明する。しかしながら、認識装置３２０が学習装置２２０によって保存された学習モデルを利用せずに、他の方法によって上記目標位置姿勢を生成する場合は、必ずしもＳ２１、Ｓ２２の処理の直後に図７の処理を行わなくてもよい。
ここで、図７のＳ２３１〜Ｓ２３５およびＳ２３９〜Ｓ２４４の処理は、図５のＳ２１１〜Ｓ２１５およびＳ２１９〜Ｓ２２４の処理と同様であるため、以下、処理内容が異なる部分を中心に説明する。
【００５０】
Ｓ２３６では、認識装置３２０は、Ｓ２３４において取得された画像をもとに、学習装置２２０の学習モデルを参照して画像中の対象物体１を認識し、認識された対象物体１を保持可能であるか否かを判定する。具体的には、認識装置３２０は、学習装置２２０の学習モデルを参照しても、上記の認識された対象物体１を保持可能な位置姿勢を生成できない場合、対象物体１を保持できないと判定し、再度、撮像を行うためにＳ２３２に戻る。一方、学習モデルを参照した結果、対象物体１を保持可能な位置姿勢を生成できた場合、対象物体１を保持可能であると判定してＳ２３７に移行する。なお、上述した第一の実施形態では、Ｓ２１２からＳ２１５の処理を複数回行うとしたが、本実施形態においては必ずしも複数回行う必要はない。
【００５１】
Ｓ２３７では、認識装置３２０は、保持・撮像動作のための目標位置姿勢を生成する。上述した第一の実施形態では、Ｓ２１７において保持のための目標位置姿勢の生成のみを行った。これに対して、本実施形態では、学習データの追加生成のために、保持位置姿勢への移動中にも撮像を行う。そのため、認識装置３２０は、保持のための目標位置姿勢に加えて、保持位置姿勢への移動中における撮像のための目標位置姿勢を複数生成する。
このとき、目標の保持位置姿勢への移動が最短距離になったり最短時間になったりするようにマニピュレータ４００の軌跡が生成されてもよいが、より多くの撮像画像が得られるようにマニピュレータ４００の軌跡を生成してもよい。例えば、対象物体１を中心にして多くの位置姿勢から撮像できるような軌跡を決定してもよいし、他の方法で軌跡を決定してもよい。
【００５２】
Ｓ２３８では、認識装置３２０は、保持・撮像動作のためにマニピュレータ４００を制御する。具体的には、Ｓ２３７において生成された目標の保持位置姿勢に向けてマニピュレータ４００を移動し、保持動作を行う処理が実施される。その際、Ｓ２３７において目標の保持位置姿勢までの軌跡が決定されている場合には、その軌跡を通りながらマニピュレータ４００を目標の保持位置姿勢へ移動するようにする。そして、マニピュレータ４００の目標の保持位置姿勢への移動中には、Ｓ２３７において生成された複数の撮像位置姿勢での画像の取得と撮像位置姿勢の取得とをそれぞれ行う。
【００５３】
図８は、図７のＳ２３８において実行されるマニピュレータ制御処理の詳細を示すフローチャートである。
Ｓ２３８ａでは、認識装置３２０は、図７のＳ２３７において生成された目標位置姿勢のうちの１つを選択し、マニピュレータ４００を選択された目標位置姿勢に移動する。ただし、このとき、目標の保持位置姿勢は最後に選択されるようにする。Ｓ２３８ｂでは、認識装置３２０は、マニピュレータ４００がＳ２３８ａにおいて選択された目標位置姿勢に移動された状態で、撮像装置５００に対して撮像トリガーを出力し、撮像トリガーを受け取った撮像装置５００が撮像した画像を取得する。Ｓ２３８ｃでは、認識装置３２０は、Ｓ２３８ｂにおいて取得された画像の撮像位置姿勢を取得する。
Ｓ２３８ｄでは、認識装置３２０は、マニピュレータ４００が目標の保持位置姿勢に達しているか否かを判定する。そして、マニピュレータ４００が目標の保持位置姿勢に達している場合はＳ２３８ｅに移行し、認識装置３２０は、保持装置６００に対象物体１の保持動作を行わせる。一方、認識装置３２０は、Ｓ２３８ｄにおいてマニピュレータ４００が目標の保持位置姿勢に達していないと判定すると、引き続きマニピュレータ移動動作を行うとしてＳ２３８ａに戻る。つまり、認識装置３２０は、Ｓ２３７において生成された目標位置姿勢のうち、撮像動作が行われていない目標位置姿勢にマニピュレータ４００を移動し、画像の取得と撮像位置姿勢の取得とを行う。この処理は、マニピュレータ４００が目標の保持位置姿勢に達するまで繰り返し行われる。
【００５４】
図７に戻って、Ｓ２４５では、認識装置３２０は、Ｓ２１３において蓄積された学習データを用いて学習モデルの学習を行い、学習モデルを学習装置２２０に保存する。このＳ２４５における処理は、図４のＳ２２における処理と同様である。
なお、図７において、Ｓ２３２の撮像位置姿勢の生成およびＳ２３３の撮像動作のためのマニピュレータ制御は、マニピュレータ４００が対象物体１を撮像可能な位置姿勢にある場合、必ずしも実行しなくてよい。また、Ｓ２３５の撮像位置姿勢の取得は、図８のＳ２３８ｃにおいて撮像位置姿勢が取得されるため、必ずしも実行しなくてもよい。さらに、本実施形態では、保持位置姿勢が決定された後に学習データ生成のための撮像を行う場合について説明したが、保持位置姿勢が決定される前にも撮像を行い、学習データ生成に用いる画像を取得するようにしてもよい。
【００５５】
以上のように、本実施形態では、認識装置３２０は、対象物体１を撮像した画像を入力し、学習装置２２０により学習されたモデルに基づいて、上記画像中の対象物体１を認識し、認識された対象物体１の保持を行う保持位置姿勢を決定する。さらに、認識装置３２０は、学習装置２２０により学習されたモデルに基づいて、認識された対象物体１を撮像する撮像位置姿勢を決定する。そして、認識装置３２０は、決定された保持位置姿勢にマニピュレータ４００が移動するまでの間に、決定された撮像位置姿勢にて対象物体１を撮像して画像を取得するとともに、撮像時のマニピュレータ４００の位置姿勢を随時取得する。決定された保持位置姿勢にマニピュレータ４００が移動すると、認識装置３２０は保持装置６００に保持を指示し、そのときのマニピュレータ４００の位置姿勢と保持成否情報とを学習情報として取得する。そして、認識装置３２０は、情報処理装置１２０と同様に学習データを生成する。
このように、認識装置３２０は、対象物体１の認識・保持を行うランタイム時に、学習データの生成に必要な学習情報と学習に用いる画像とを取得し、学習データを生成することができる。したがって、効率的に学習データを生成することができ、学習データを生成する時間の短縮が図れる。
【００５６】
（第三の実施形態）
次に、本発明の第三の実施形態について説明する。
上述した第一の実施形態および第二の実施形態では、画像に対して保持位置姿勢と保持成否情報とを対応付けて学習データを生成する場合について説明した。この第三の実施形態では、さらに画像における重力方向を示す重力方向情報を対応付けて学習データを生成する場合について説明する。
【００５７】
（装置の構成）
図９は、本実施形態におけるロボットシステム２０００Ａの構成を示すブロック図である。この図９において、図２と同様の構成を有する部分には図２と同一符号を付し、以下、構成の異なる部分を中心に説明する。
ロボットシステム２０００Ａは、情報処理装置１２０Ａを備える。情報処理装置１２０Ａは、図２に示す情報処理装置１２０に、重力方向情報取得部１２８が追加された構成を有する。また、図２の学習データ生成部１２５、学習データ蓄積部１２６、学習装置２２０および認識装置３２０は、処理内容が異なる学習データ生成部１２９、学習データ蓄積部１３０、学習装置２２０Ａおよび認識装置３２０Ａに置換されている。
また、ロボットシステム２０００Ａは、マニピュレータ４００の姿勢を計測する姿勢センサ７００を新たに備える。
【００５８】
本実施形態では、マニピュレータ４００の姿勢が変化し得る場合について説明する。マニピュレータ４００の姿勢が変化し得る場合とは、マニピュレータ４００がドローンに取り付けられていたり、ＡＧＶ（Automatic Guided Vehicle）の一部として利用されていたりする場合などである。
上述した第一の実施形態および第二の実施形態では、画像に対して保持位置姿勢と保持成否情報とを対応付けて学習データを生成した。そのため、マニピュレータ４００と対象物体１との相対的な位置姿勢情報のみが考慮されていた。
しかしながら、対象物体１が画像に同じように写っていたとしても、対象物体１が上から撮像されて壁に接しているのか、あるいは横から撮像されて床に置かれているのかといった、画像からは状況を判断するのが困難な場合がある。上から撮像されているならば、上から吸着すればピッキングできるが、横から撮像されている場合、横から吸着すると搬送中に落下してしまうなどといった違いが生じる可能性がある。このように、画像だけで判断すると同じような状況であっても、姿勢が異なっていることでより良いピッキング方法が異なる場合がある。
【００５９】
そこで、本実施形態では、姿勢センサ７００を用い、画像に対して重力方向情報も対応付けて学習データを生成する。つまり、マニピュレータ４００と対象物体１との相対的な位置姿勢情報だけでなく、絶対的な位置姿勢情報を画像に対応付けて学習データを生成する。
姿勢センサ７００は、ジャイロセンサ、加速度センサなどにより構成され、マニピュレータ４００の姿勢を計測して、情報処理装置１２０Ａへ姿勢情報を出力する。姿勢センサ７００は、マニピュレータ４００の姿勢を計測可能な位置に取り付けられる。例えば、姿勢センサ７００は、マニピュレータ４００のベースや、マニピュレータ４００の先端に取り付けることができる。姿勢センサ７００がマニピュレータ４００先端に取り付けられている場合、マニピュレータ４００の位置姿勢情報を用い、マニピュレータ４００のベースの座標に変換するようにしてもよい。なお、姿勢センサ７００は、マニピュレータ４００との位置姿勢関係が一意に求まるのであれば、マニピュレータ４００に直接取り付けられていなくてもよい。
【００６０】
重力方向情報取得部１２８は、姿勢センサ７００により計測された姿勢情報を入力として、重力方向を取得し、重力方向情報を学習データ生成部１２９に出力する。重力方向情報取得部１２８は、例えばメモリ（ＲＡＭ）によって構成することができる。重力方向情報取得部１２８は、撮像装置５００が画像を撮像したときの撮像位置姿勢の取得と同期して、重力方向情報を取得する。したがって、重力方向情報取得部１２８は、撮像装置５００が画像を撮像したときのマニピュレータ４００の重力方向を示す情報を取得することができる。
そして、学習データ生成部１２９は、画像に対して保持位置姿勢および保持成否情報を対応付けると同時に、その画像における重力方向情報を対応付ける。学習データ蓄積部１３０は、画像と、当該画像の重力方向情報と、当該画像における保持位置姿勢と、保持成否情報との組により構成される学習データを蓄積する。また、学習装置２２０Ａは、学習データ蓄積部１３０によって蓄積された上記の学習データをＣＮＮモデル（学習モデル）の学習に用い、認識装置３２０Ａは、学習装置２２０Ａに保存された学習モデルを用いて対象物体１の認識・保持動作を行う。
【００６１】
（認識処理）
本実施形態のロボットシステム２０００Ａによる認識処理の流れは、図４と同様である。ただし、各処理の内容は上述した第一の実施形態とは異なる。
図１０は、図４のＳ２１に対応するステップにおいて情報処理装置１２０Ａが実行する学習データ生成処理の手順を示すフローチャートである。この図１０の処理は、図５のＳ２１５の後にＳ２２５の処理が追加され、Ｓ２２２およびＳ２２３の処理がＳ２２２ａおよびＳ２２３ａの処理に置換されていることを除いては、図５の処理と同様である。したがって、図５と同一処理を実行する部分には図５と同一ステップ番号を付し、以下、処理の異なる部分を中心に説明する。
【００６２】
Ｓ２２５では、重力方向情報取得部１２８は、重力方向情報を取得する。Ｓ２１３においてマニピュレータ４００の制御が行われた後、Ｓ２１４における画像の取得、Ｓ２１５における撮像位置姿勢の取得が行われるが、それと同時に重力方向情報の取得が行われる。画像が複数回撮像される場合は、重力方向情報取得部１２８は、撮像の度に撮像位置姿勢と同時に重力方向情報を取得する。
【００６３】
Ｓ２２２ａでは、学習データ生成部１２９は、学習情報取得部１２１から入力された学習情報と、重力方向情報取得部１２８から入力された重力方向情報と、画像取得部１２４から入力された画像との対応付けを行い、学習データを生成する。そして、学習データ生成部１２９は、生成した学習データを学習データ蓄積部１３０に出力する。Ｓ２２３ａでは、学習データ蓄積手段１３０は、Ｓ２２２ａにおいて生成された学習データを保存する。
【００６４】
図４のＳ２２に対応するステップでは、学習装置２２０Ａは、情報処理装置１２０Ａによって保存された学習データを用いて学習モデルの学習を行い、学習モデルを保存する。具体的には、学習装置２２０Ａは、図１０のＳ２２３ａにおいて蓄積された学習データをもとに、学習モデルを生成する。このモデルを用いることで、画像を入力として、画像に対してマニピュレータ４００が対象物体１を保持するための位置姿勢が出力され、どのような位置姿勢であれば対象物体１の保持が成功しやすいかという情報を得ることができる。本実施形態では、学習データに重力方向情報が追加されているため、上述した第一の実施形態において説明したＳ２２に対して、重力方向まで考慮したうえで保持位置姿勢が出力される点で異なる。
【００６５】
図４のＳ２３に対応するステップでは、認識装置３２０Ａは、撮像装置５００から画像を取得し、学習装置２２０Ａに保存された学習モデルを用いて画像中の対象物体を認識し、対象物体の保持のためのマニピュレータ４００の位置姿勢を生成する。このとき、認識装置３２０Ａは、画像と重力方向情報とを入力として、保持位置姿勢を生成する。このように、認識装置３２０Ａは、重力方向情報まで考慮したうえで保持位置姿勢を生成する。そして、認識装置３２０Ａは、生成された保持位置姿勢にマニピュレータ４００を移動するようマニピュレータ４００を制御し、保持装置６００に対して保持トリガーを出力することで保持装置６００による対象物体１の保持動作を実行させる。
【００６６】
以上のように、本実施形態におけるロボットシステム２０００Ａは、撮像装置５００を移動可能なマニピュレータ４００の姿勢を取得する姿勢センサ７００をさらに備え、情報処理装置１２０Ａは、姿勢センサ７００から姿勢情報を取得する。そして、情報処理装置１２０Ａは、姿勢センサ７００から取得された姿勢情報をもとに、撮像装置５００により撮像された画像における重力方向を示す重力方向情報を取得し、学習情報とともに重力方向情報を対応付けて学習データを生成する。
これにより、マニピュレータ４００と対象物体１との相対的な位置姿勢情報に加えて、絶対的な位置姿勢情報も対応付けて学習データを生成することができる。このように、学習に用いる画像に対して重力方向情報も付加することで、マニピュレータ４００の姿勢が変化する場合であっても、画像だけでは分からない状況を踏まえてより良い保持位置姿勢を学習することができ、保持成功率を向上させることができる。
【００６７】
（第三の実施形態の変形例）
本実施形態においては、姿勢センサ７００により取得した重力方向情報を用いる場合について説明したが、他のセンサからの他の情報を用いてもよい。例えば、磁気センサを用いて磁場の情報を取得し、画像と対応付けてもよい。
【００６８】
（第四の実施形態）
次に、本発明の第四の実施形態について説明する。
上述した第一の実施形態から第三の実施形態では、学習データ生成の際の保持動作実行時、単純にマニピュレータ４００を目標の保持位置姿勢に移動して保持動作を行う場合について説明した。この第四の実施形態では、上記の保持動作実行時に、保持装置６００の物体との接触情報を取得し、その接触情報に基づいて保持動作を行う場合について説明する。
【００６９】
（装置の構成）
図１１は、本実施形態におけるロボットシステム２０００Ｂの構成を示すブロック図である。この図１１において、図２と同様の構成を有する部分には図２と同一符号を付し、以下、構成の異なる部分を中心に説明する。
ロボットシステム２０００Ｂは、情報処理装置１２０Ｂを備える。情報処理装置１２０Ｂは、図２に示す情報処理装置１２０に、力覚情報取得部１３１が追加された構成を有する。また、図２の制御部１２３は、処理内容が異なる制御部１３２に置換されている。
また、ロボットシステム２０００Ｂは、マニピュレータ４００が対象物体１を保持するときの力覚情報を計測する力覚センサ８００を新たに備える。
【００７０】
上述した第一の実施形態から第三の実施形態では、学習データ生成に際し、Ｓ２１７において生成された目標の保持位置姿勢に向けてマニピュレータ４００を移動し、保持動作時の保持位置姿勢を学習情報として取得する場合について説明した。しかしながら、対象物体１がビニールに包まれているような場合、ハレーションにより距離情報が正確に計測できなかったり、ビニール内部にある物体の位置姿勢が誤って算出されたりする場合がある。このような場合、Ｓ２１７において生成された保持位置姿勢にマニピュレータ４００を移動できなかったり、Ｓ２１７において生成された保持位置姿勢に移動しても対象物体１を保持できなかったりする。
そこで、本実施形態では、マニピュレータ４００の先端で保持装置６００の根本にあたる部分に力覚センサ８００を取り付け、保持動作実行時に、保持装置６００が対象物体１に接触したかどうかを判定する。そして、その判定結果を用いて、上記の対象物体１の認識の誤差に起因する目標の保持位置姿勢のずれを修正するようにする。
【００７１】
力覚センサ８００は、保持装置６００にかかる外力が計測できる位置に取り付けられる。この力覚センサ８００は、歪みゲージや圧電素子により構成され、保持装置６００が対象物体１あるいは周辺物体２に接触しているときの保持装置６００にかかる力（反力）を計測し、計測結果である力覚情報（接触情報）を情報処理装置１２０Ｂへ出力する。力覚センサ８００は、６軸力覚センサ（Force/Torqueセンサ）であってもよいし、３軸力覚センサであってもよい。また、力覚センサ８００は、１次元の圧力センサであってもよいし、接触の有無を判別する接触センサであってもよい。
【００７２】
力覚情報取得部１３１は、力覚センサ８００から出力される力覚情報を取得し、取得した力覚情報を制御部１３２へ出力する。力覚情報取得部１３１は、例えばメモリ（ＲＡＭ）によって構成することができる。制御部１３２は、力覚情報取得部１３１から入力した力覚情報に基づいて、対象物体１あるいは周辺物体２に保持装置６００が接触しているか否かを判定することができる。
【００７３】
（認識処理）
本実施形態のロボットシステム２０００Ｂによる認識処理の流れは、図４と同様である。また、図４のＳ２１では、図５と同様の処理を実行する。ただし、図５のＳ２１８の処理の内容は上述した第一の実施形態とは異なる。Ｓ２１８の処理は、制御部１３２が、保持動作のためにマニピュレータ４００を制御する処理である。以下、Ｓ２１８における処理の詳細について、図１２を参照しながら説明する。
【００７４】
図１２は、図５のＳ２１８において情報処理装置１２０Ｂが実行するマニピュレータ制御処理の手順を示すフローチャートである。なお、このＳ２１８において実行される処理は、サンプリングタイムの間隔で高速に処理が繰り返される。
まずＳ２１８ａにおいて、制御部１３２は、マニピュレータ４００を制御し、図５のＳ２１７において生成された保持位置姿勢に向けて移動する。次にＳ２１８ｂでは、力覚情報取得部１３１は、力覚センサ８００から力覚情報を取得する。Ｓ２１８ｃでは、制御部１３２は、マニピュレータ４００の保持位置姿勢を取得する。
【００７５】
Ｓ２１８ｄでは、制御部１３２は、マニピュレータ４００の移動動作を継続するか否かを判定する。具体的には、制御部１３２は、Ｓ２１８ｃにおいて取得された現在の保持位置姿勢とＳ２１７において生成された目標の保持位置姿勢とを比較し、マニピュレータ４００が目標の保持位置姿勢に達しているか否かを判定する。また、制御部１３２は、Ｓ２１８ｂにおいて取得された力覚情報をもとに、保持装置６００が物体に接触しているか否かを判定する。そして、制御部１３２は、マニピュレータ４００が目標の保持位置姿勢に達しており、かつ保持装置６００が物体に接触していると判定された場合、移動動作を終了すると判定してＳ２１８ｅに移行する。
【００７６】
一方、制御部１３２は、マニピュレータ４００が目標の保持位置姿勢に達していないと判定した場合は、引き続きマニピュレータ移動動作を継続すると判定してＳ２１８ａに戻る。ただし、マニピュレータ４００が目標の保持位置姿勢に達していない場合であっても、取得された力覚情報が予め設定した値を上回っている場合は、それ以上マニピュレータ４００は目標の保持位置姿勢に近づけないと判定し、Ｓ２１８ｅに移行する。この場合、マニピュレータ４００は目標の保持位置姿勢に達していないが、その時点でのマニピュレータ４００の位置姿勢を保持動作時の保持位置姿勢として扱う。つまり、後で実行されるＳ２２１では、学習情報取得部１２１は、この時点での保持位置姿勢を学習情報として取得する。
【００７７】
また、マニピュレータ４００が目標の保持位置姿勢に達しているにもかかわらず、取得された力覚情報の値から保持装置６００が物体に接触していないと判定される場合もある。この場合は、マニピュレータ移動動作を継続すると判定してＳ２１８ａに戻る。ここで、マニピュレータ移動動作の継続条件は、目標の保持位置姿勢に対してさらにどの程度の距離をどの方向に移動するかを設定しておいてもよいし、接触時の力が閾値を上回るまで動作を継続するといった力の閾値を設定しておいてもよい。また、他の条件を設定しておいてもよい。接触時の力が閾値を上回る場合は、その時点でのマニピュレータ４００の位置姿勢を保持動作時の保持位置姿勢として扱う。
【００７８】
Ｓ２１８ｅでは、制御部１３２は、マニピュレータ４００による保持動作を実施するか否かを判定する。このとき、制御部１３２は、Ｓ２１８ｄからの移行条件を参照し、保持動作を実施するか否かを判定する。具体的には、以下のようにして保持動作を実施するか否かを判定する。ただし、判定方法は必ずしも以下の条件でなくてもよい。
制御部１３２は、Ｓ２１８ｄにおいて、マニピュレータ４００が目標の保持位置姿勢に達しており、かつ保持装置６００が物体に接触していると判定されてＳ２１８ｅに移行してきた場合は、保持動作を実施すると判定する。また、制御部１３２は、マニピュレータ４００が目標の保持位置姿勢に達していないが、取得された力覚情報が予め設定した値を上回っていたためにＳ２１８ｅに移行してきた場合にも、対象物体１を保持できる状態にあるとして保持動作を実施すると判定する。
【００７９】
一方、マニピュレータ４００が目標の保持位置姿勢に達しているにもかかわらず、取得された力覚情報の値から保持装置６００が物体に接触していない場合に、設定条件を満たしてＳ２１８ｅに移行してきた場合は、設定条件に応じて判定が異なる。例えば、目標の保持位置姿勢に対してさらにどの程度の距離を移動するかを設定していた場合、設定した距離を移動した後も、対象物体１に接触していないので、保持動作を実施しないと判定する。この場合は、図５のＳ２１７に戻り、保持動作のための目標位置姿勢の生成をやり直す。また、接触時の力が閾値を上回るまで動作を継続するといった力の閾値を設定していた場合は、対象物体１に接触している可能性があるので、保持動作を実施すると判定する。
制御部１３２は、このＳ２１８ｅにおいてマニピュレータ４００による保持動作を実施すると判定した場合、Ｓ２１８ｆに移行し、保持装置６００を制御して対象物体１の保持動作を行わせる。
【００８０】
以上のように、本実施形態におけるロボットシステム２０００Ｂは、保持装置６００が物体に接触したときの反力を取得する力覚センサ８００をさらに備え、情報処理装置１２０Ｂは、力覚センサ８００からの力覚情報（接触情報）を取得する。そして、情報処理装置１２０Ｂは、力覚センサ８００から取得された力覚情報をもとに、保持動作時に保持装置６００が対象物体１に接触しているかどうかを判定する。
これにより、情報処理装置１２０Ｂは、マニピュレータ４００が保持動作のための目標の保持位置姿勢に達する前に対象物体１に接触した場合や、目標の保持位置姿勢に達しているにもかかわらず対象物体１に接触していない場合を判定することができる。つまり、情報処理装置１２０Ｂは、目標の保持位置姿勢が対象物体１を保持可能な位置姿勢であるか否かを判定することができる。
【００８１】
そして、情報処理装置１２０Ｂは、上記判定の結果を踏まえて保持動作を実施するかどうかを判定することができる。例えば、情報処理装置１２０Ｂは、目標の保持位置姿勢が対象物体１を保持可能な位置姿勢ではないと判定した場合、マニピュレータ４００を目標保持位置姿勢からさらに移動し、対象物体１を保持可能な位置姿勢において保持動作を実施することができる。また、情報処理装置１２０Ｂは、目標の保持位置姿勢に達する前に対象物体１を保持可能な位置姿勢となったと判定した場合、その時点で保持動作を実施することができる。したがって、対象物体１の保持成功率を向上させることができる。
このように、情報処理装置１２０Ｂは、力覚センサ８００から得られる力覚情報（接触情報）をもとに、対象物体１の保持成功率の高い保持位置姿勢を決定し、学習情報として取得する。つまり、情報処理装置１２０Ｂは、学習情報（保持位置姿勢）の修正・補完を行うことができる。したがって、目標の保持位置姿勢が実際に対象物体１を保持可能な位置姿勢からずれている場合であっても、保持動作が成功する保持位置姿勢において保持動作を実施することができ、保持成功の学習情報を効率的に集めることができる。その結果、学習時間を短縮することができる。
【００８２】
（第四の実施形態の変形例）
本実施形態においては、学習情報を修正・補完するために、力覚センサ８００から取得した力覚情報を用いる場合について説明したが、他のセンサからの他の情報を用いて学習情報を修正・補完してもよい。例えば、近接センサを用いて近接覚情報を取得し、学習情報を修正・補完してもよい。
【００８３】
（変形例）
上記各実施形態においては、撮像装置５００がＲＧＢのカラー画像とデプス画像とを取得する場合について説明したが、撮像装置５００は、モノクロ画像を取得する装置であってよい。また、撮像装置５００は、赤外線画像を取得する装置であってもよい。
また、上記各実施形態においては、マニピュレータ４００が多関節ロボットである場合について説明したが、マニピュレータ４００は、撮像装置５００および対象物体の少なくとも一方を移動可能であればよい。つまり、マニピュレータ４００は、６軸ロボットやパラレルリンクロボットであってもよいし、直交ロボットであってもよい。また、マニピュレータ４００は、ロボット以外の移動機構であってもよい。
【００８４】
さらに、上記各実施形態においては、学習データ蓄積部により学習データを保存してから学習装置によりＣＮＮモデルの学習を行う場合について説明したが、上記に限定されるものではない。例えば、学習データを生成しつつＣＮＮモデルに入力することで、学習を行うようにしてもよい。
また、上記各実施形態においては、ディープラーニングの一種であるＣＮＮを学習して、認識器を構成する場合について説明したが、上記に限定されるものではない。特徴量としては、ＬＢＰ（Local Binary Pattern）を用いてもよいし、ＢｏＦ（Bag of Features）などを用いてもよい。また、識別器としては、決定木を用いてもよいし、ＳＶＭ（Support Vector Machine）などを用いてもよい。
【００８５】
さらに、上記各実施形態においては、画像取得部１２４が取得する画像は、静止画であってもよいし、動画であってもよい。動画の場合は、動画の時刻におけるマニピュレータ４００の位置姿勢を、撮像位置姿勢として扱う。
また、上記各実施形態においては、学習対象は、画像における保持位置姿勢としたが、保持可能な位置姿勢が存在しなかった場合、次の撮像候補となる位置姿勢を学習対象としてもよい。こうすることで、保持可能な位置姿勢が判定できない場合でも、別の撮像位置姿勢から保持位置姿勢を求められる可能性が高まる。
【００８６】
さらにまた、上記各実施形態においては、設計者（ユーザ）が予め指定した撮像位置姿勢の範囲内において、撮像装置５００が撮像を行うようにマニピュレータ４００の撮像位置姿勢を決定してもよい。
また、上記各実施形態においては、情報処理手段１２０は、光源５１０を制御し、撮像時における照明の状態を制御してもよい。例えば、同じ撮像位置姿勢においても、光源５１０のオン、オフや、光源５１０からの光の強弱の状態などを変化させて、より多くの状況を撮像してもよい。さらに、光源５１０に同軸照明を用いることで、異なる位置姿勢から撮像しても、対象物体１が同じように撮像できるようにしてもよい。
【００８７】
また、上記各実施形態においては、学習データの生成に際し、撮像装置５００によって撮像された画像に対して画像処理を行った複数の画像に基づいて学習データを生成してもよい。ここで、画像処理は、拡大縮小または回転といった幾何変換、あるいはノイズの付与または明るさ（輝度値）や色の変更といった処理を含む。この場合、画像処理前の画像に対応する保持位置姿勢を、画像処理後の複数の画像に対しても同様に対応付けることで学習データを生成する。これにより、１枚の撮像画像から複数の学習データを生成できるので、学習データの生成に用いる画像を撮像する時間を低減することができる。
【００８８】
さらに、上記各実施形態においては、撮像を複数回行う際に、マニピュレータ４００の位置姿勢だけを変化させるのではなく、例えば、照明条件を変化させたり、背景を変化させたり、その他の条件を変化させたりしてもよい。
また、上記各実施形態においては、保持位置姿勢として学習するのは、必ずしもマニピュレータ４００の位置姿勢でなくてもよい。例えば、対象物体１の底面が平面の上に置かれているような場合は、保持位置と法線方向だけでもよい。
さらに、上記各実施形態においては、保持装置６００は対象物体１を保持可能な構成であれば、任意の装置を用いることができる。例えば、保持装置６００は、吸着装置であってもよいし、開閉ハンドのような把持装置であってもよい。保持装置６００が吸着装置である場合、保持位置姿勢は、吸着装置が対象物体１に接触する点とすればよいし、保持装置６００が把持装置である場合は、保持位置姿勢は、把持中心と把持方向とすればよい。
【００８９】
また、上記各実施形態においては、撮像装置５００は、マニピュレータ４００に取り付けられたオンハンドカメラであってもよいし、マニピュレータ４００に取り付けられていなくてもよいし、マニピュレータ４００以外のアクチュエータで可動してもよい。つまり、撮像装置５００は、マニピュレータ４００との相対的な位置関係が分かれば、どのように取り付けられていてもよい。
さらに、上記各実施形態においては、保持成否は、対象物体１を保持できたか否かだけで判断する場合について説明したが、タスクとしての成否結果をもって判断してもよい。保持は成功でも、タスクとして失敗のため保持成否結果を失敗と判断する例の一つとしては、対象物体１が箱に入っており、対象物体１の保持には成功したものの、保持後に箱がずれてしまうような場合がある。この場合、箱にマーカーを付けておき、マーカーを認識することで箱のずれを求め、許容範囲以上に箱がずれている場合は保持失敗と判断し、教師信号として与える保持成否情報は失敗とする。また、対象物体１が箱に入っており、対象物体１の保持には成功したものの、対象物体１を持ち上げる際に、箱の中の対象物体１以外のものが落下したり、箱の中の対象物体１以外のものに過剰な力がかかって壊れたりするような場合も同様である。
【００９０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記録媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９１】
１２０…情報処理装置、２２０…学習装置、３２０…認識装置、１２１…学習情報取得部、１２２…目標位置姿勢生成部、１２３…制御部、１２４…画像取得部、１２５…学習データ生成部、１２６…学習データ蓄積部、２０００…ロボットシステム（物体認識保持装置）
【図１】
2018161692.tif 000004
【図２】
2018161692.tif 000005
【図３】
2018161692.tif 000006
【図４】
2018161692.tif 000007
【図５】
2018161692.tif 000008
【図６】
2018161692.tif 000009
【図７】
2018161692.tif 000010
【図８】
2018161692.tif 000011
【図９】
2018161692.tif 000012
【図１０】
2018161692.tif 000013
【図１１】
2018161692.tif 000014
【図１２】
2018161692.tif 000015