(57)【要約】【課題】様々な形状の物体を把持するためのモデルを生成する。【解決手段】把持装置が物体を把持するための制御アルゴリズムを学習する計算機システムであって、物体の把持成功確率を出力する第一モデルを生成するための第一学習処理と、基準物体の形状を変形させた物体の物体データを出力する第二モデルを生成するための第二学習処理と、を実行し、第二学習処理において、第二モデルに基づいて、基準物体の形状を変形した第一物体の物体データを生成し、第一物体の把持点を決定し、第一物体の物体データ及び第一物体の把持点の複数の組を第一モデルに入力し、第一モデルより出力された第一物体の把持成功確率の最大値と目標確率との比較結果に基づいて、第二モデルを更新する。【選択図】図１
2020179438.tif 000002
【特許請求の範囲】
【請求項１】
把持装置が物体を把持するための制御アルゴリズムを学習する計算機システムであって、
前記計算機システムは、演算装置及び前記演算装置に接続される記憶装置を有する少なくとも一つの計算機を備え、
前記少なくとも一つの計算機は、
前記物体の形状に関する情報を含む物体データ、当該物体を把持する位置の基準となる把持点、及び前記物体の把持の成否を示す情報を含む学習データを用いて、当該物体の把持成功確率を出力する第一モデルを生成するための第一学習処理と、
基準物体の形状を変形させた物体の前記物体データを出力する第二モデルを生成するための第二学習処理と、を実行し、
前記少なくとも一つの計算機は、前記第二学習処理において、
前記第二モデルに基づいて、前記基準物体の形状を変形した第一物体の前記物体データを生成し、
前記第一物体の把持点を決定し、
前記第一物体の物体データ及び前記第一物体の把持点の複数の組を前記第一モデルに入力し、
前記第一モデルより出力された前記第一物体の把持成功確率の最大値及び目標確率の差に基づいて、前記第二モデルを更新することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記少なくとも一つの計算機は、前記第二学習処理において、
前記第一モデルの学習が停滞している場合、前記基準物体からの形状の変化量が前記第一物体より小さい物体の前記物体データが生成されるように前記第二モデルを更新し、
前記第一モデルの学習が進捗している場合、前記基準物体からの形状の変化量が前記第一物体より大きい物体の前記物体データが生成されるように前記第二モデルを更新することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記少なくとも一つの計算機は、前記第二学習処理において、
前記第二モデルに基づいて生成された前記物体データに対応する物体の形状と前記基準物体の形状との間の類似度の目標範囲を設定し、
前記第一物体の把持成功確率の最大値及び前記目標確率の差が小さくなり、かつ、前記更新された第二モデルに基づいて生成された前記物体データに対応する第二物体の形状と前記基準物体の形状との間の類似度が前記目標範囲内になるように前記第二モデルを更新することを特徴とする計算機システム。
【請求項４】
請求項１に記載の計算機システムであって、
前記第一モデルの更新履歴を管理するための履歴管理情報を保持し、
前記少なくとも一つの計算機は、前記第二学習処理において、
前記第一モデルより出力された前記第一物体の把持成功確率の最大値が目標確率以下である場合、前記第一物体の把持成功確率の統計値及び前記第一物体の把持成功確率の最大値の変化量のいずれかを評価値として算出し、
前記評価値に基づいて、前記第一モデルの学習が停滞しているか否かを判定し、
前記第一モデルの学習が停滞していると判定された場合、前記履歴管理情報を用いて、前記第一モデルを更新することを特徴とする計算機システム。
【請求項５】
把持装置が物体を把持するための制御アルゴリズムを学習する計算機システムが実行する機械学習方法であって、
前記計算機システムは、演算装置及び前記演算装置に接続される記憶装置を有する少なくとも一つの計算機から構成され、
前記機械学習方法は、
前記少なくとも一つの計算機が、前記物体の形状に関する情報を含む物体データ、当該物体を把持する位置の基準となる把持点、及び前記物体の把持の成否を示す情報を含む学習データを用いて、当該物体の把持成功確率を出力する第一モデルを生成するための第一学習処理を実行するステップと、
基準物体の前記物体データに基づいて、前記基準物体の形状を変形させた物体の前記物体データを出力する第二モデルを生成するための第二学習処理を実行するステップと、を含み、
前記第二学習処理は、
前記少なくとも一つの計算機が、前記第二モデルに基づいて、前記基準物体の形状を変形した第一物体の前記物体データを生成する第１のステップと、
前記少なくとも一つの計算機が、前記第一物体の把持点を決定する第２のステップと、
前記少なくとも一つの計算機が、前記第一物体の物体データ及び前記第一物体の把持点の複数の組を前記第一モデルに入力する第３のステップと、
前記第一モデルより出力された前記第一物体の把持成功確率の最大値及び目標確率の差に基づいて、前記第二モデルを更新する第４のステップと、を含むことを特徴とする機械学習方法。
【請求項６】
請求項５に記載の機械学習方法であって、
前記第４のステップは、
前記第一モデルの学習が停滞している場合、前記少なくとも一つの計算機が、前記基準物体からの形状の変化量が前記第一物体より小さい物体の前記物体データが生成されるように前記第二モデルを更新するステップと、
前記第一モデルの学習が進捗している場合、前記少なくとも一つの計算機が、前記基準物体からの形状の変化量が前記第一物体より大きい物体の前記物体データが生成されるように前記第二モデルを更新するステップと、を含むことを特徴とする機械学習方法。
【請求項７】
請求項６に記載の機械学習方法であって、
前記第４のステップは、
前記少なくとも一つの計算機が、前記第二モデルに基づいて生成された前記物体データに対応する物体の形状と前記基準物体の形状との間の類似度の目標範囲を設定するステップと、
前記少なくとも一つの計算機が、前記第一物体の把持成功確率の最大値及び前記目標確率の差が小さくなり、かつ、前記更新された第二モデルに基づいて生成された前記物体データに対応する第二物体の形状と前記基準物体の形状との間の類似度が前記目標範囲内になるように前記第二モデルを更新するステップと、を含むことを特徴とする機械学習方法。
【請求項８】
請求項５に記載の機械学習方法であって、
前記計算機システムは、前記第一モデルの更新履歴を管理するための履歴管理情報を保持し、
前記機械学習方法は、
前記少なくとも一つの計算機が、前記第一物体の把持成功確率の統計値及び前記第一物体の把持成功確率の最大値の変化量のいずれかを評価値として算出するステップと、
前記少なくとも一つの計算機が、前記評価値に基づいて、前記第一モデルの学習が停滞しているか否かを判定するステップと、
前記第一モデルの学習が停滞していると判定された場合、前記少なくとも一つの計算機が、前記履歴管理情報を用いて、前記第一モデルを更新するステップと、を含むことを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体を把持する装置の制御モデルを生成するための機械学習の技術に関する。
【背景技術】
【０００２】
機械学習の技術の高度化に伴って、自動車及びロボット等を制御するためのアルゴリズム（モデル）の開発が進展している。例えば、物体を把持する装置（把持装置）を制御するためのアルゴリズムを開発する技術として特許文献１に記載の技術が知られている。
【０００３】
特許文献１には、「ＤＢ１の過去の取り出し成否の情報をもとに、計測特徴識別部５２で、センサ２で計測したワークの一部の掴みやすさを推定し、把持動作演算部５３、開閉動作演算部５４において、掴みにくそうなものは優先して掴まないが、他に掴めそうなものがないときは、ハンドの開閉量・動作速度・把持力のうち少なくとも一つを調整し、より丁寧な取り出し動作をおこなう」装置が記載されている。また、特許文献１には、ニューラルネットワーク等の識別器を用いてワークのつかみやすさを推定することが記載されている。
【０００４】
従来技術では、既知の形状の物体に関する学習データを用いて識別器が生成される。そのため、既知の形状の物体については把持の可否を予測できるが、未知の形状の物体については把持の可否を予測できない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−５２４９０号公報
【非特許文献】
【０００６】
【非特許文献１】Hiroharu Kato, Yoshitaka Ushiku, Tatsuya Harada、"Neural 3D Mesh Renderer"、［online］、２０１７年１１月２０日、［２０１９年３月２５日検索］、インターネット＜https://arxiv.org/abs/1711.07566＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
識別器の精度を向上させるためには、様々な形状の物体に関する学習データを用いた学習が必要である。
【０００８】
本発明は、様々な形状の物体に関する学習データを自動的に生成し、当該学習データを用いて効率的に識別器の精度を向上させるための技術を提供する。
【課題を解決するための手段】
【０００９】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、把持装置が物体を把持するための制御アルゴリズムを学習する計算機システムであって、前記計算機システムは、演算装置及び前記演算装置に接続される記憶装置を有する少なくとも一つの計算機を備え、前記少なくとも一つの計算機は、前記物体の形状に関する情報を含む物体データ、当該物体を把持する位置の基準となる把持点、及び前記物体の把持の成否を示す情報を含む学習データを用いて、当該物体の把持成功確率を出力する第一モデルを生成するための第一学習処理と、基準物体の形状を変形させた物体の前記物体データを出力する第二モデルを生成するための第二学習処理と、を実行し、前記少なくとも一つの計算機は、前記第二学習処理において、前記第二モデルに基づいて、前記基準物体の形状を変形した第一物体の前記物体データを生成し、前記第一物体の把持点を決定し、前記第一物体の物体データ及び前記第一物体の把持点の複数の組を前記第一モデルに入力し、前記第一モデルより出力された前記第一物体の把持成功確率の最大値及び目標確率の差に基づいて、前記第二モデルを更新する。
【発明の効果】
【００１０】
本発明によれば、様々な形状の物体に関する学習データを識別器（第一モデル）の学習状態に合わせて自動的に生成し、当該学習データを用いた学習処理を実行することにより識別器の精度を効率的に向上させることができる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】実施例１の計算機システムの構成例を示す図である。
【図２】実施例１の学習対象のモデルの一例を示す図である。
【図３】実施例１の計算機のハードウェア構成を示す図である。
【図４】実施例１の計算機システムによって提示される設定画面の一例を示す図である。
【図５】実施例１の第一学習部が実行する処理の一例を説明するフローチャートである。
【図６】実施例１の第一学習部が実行する第一学習処理の一例を説明するフローチャートである。
【図７】実施例１の第二学習部が実行する処理の一例を説明するフローチャートである。
【図８】実施例１の第二学習部が実行する第二学習処理の一例を説明するフローチャートである。
【図９】実施例１の把持装置の制御の一例を説明するフローチャートである。
【図１０】実施例２の第二学習部が実行する処理の一例を説明するフローチャートである。
【図１１】実施例２の第二学習部が実行する第二学習処理の一例を説明するフローチャートである。
【図１２】実施例３の計算機システムの構成例を示す図である。
【図１３】実施例３の第一学習部が実行する処理の一例を説明するフローチャートである。
【図１４】実施例３の第二学習部が実行する処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
まず、本発明の概要について説明する。本発明では、ＧＡＮ（Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋｓ）を応用して、把持装置の制御アルゴリズム（モデル）を学習する。ＧＡＮでは、画像を生成するＧｅｎｅｒａｔｏｒと、Ｇｅｎｅｒａｔｏｒによって生成された画像であるか否かを識別するＤｉｓｃｒｉｍｉｎａｔｏｒとがそれぞれ学習される。
【００１３】
本発明の計算機システムは、任意の把持点で任意の形状の物体を把持できる確率（把持成功確率）を算出する確率モデルと、任意の形状の物体の形状に関する情報を含む物体データを生成する物体データ生成モデルとをそれぞれ学習する。
【００１４】
確率モデルの学習では、物体データ生成モデルによって生成された物体データを用いて、任意の形状の物体の把持成功確率の最大値が閾値（目標確率）より大きくなるように確率モデルが学習される。これによって、様々な形状の物体を把持するための確率モデルを効率的に学習できる。
【００１５】
物体データ生成モデルの学習では、目標確率及び把持成功確率の最大値の差が小さくなるように物体データ生成モデルが学習される。すなわち、確率モデルの学習の進捗状態に合わせるように物体データ生成モデルが更新される。これによって、把持成功確率が目標確率と近くなるような物体データを効率的に生成できる。したがって、より効率的な確率モデルの学習を実現できる。
【００１６】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１７】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【００１８】
本明細書等における「第１」、「第２」、「第３」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【００１９】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例１】
【００２０】
図１は、実施例１の計算機システムの構成例を示す図である。図２は、実施例１の学習対象のモデルの一例を示す図である。図３は、実施例１の計算機１００のハードウェア構成を示す図である。
【００２１】
まず、図２を用いて、実施例１の計算機システムが学習するモデルについて説明する。
【００２２】
倉庫及び工場等の作業空間において、把持装置２００が物体２１０の把持作業を行う。把持装置２００は、制御装置２０１及びアーム２０２から構成される。なお、把持装置２００は、カメラ等のセンサ、並びに、タイヤ及びモータ等の移動装置を有してもよい。
【００２３】
制御装置２０１は、把持装置２００全体を制御する。制御装置２０１には、図示しないコントローラ及び駆動装置等が含まれる。アーム２０２は、制御装置２０１による制御に従って物体を把持する。アーム２０２は、力覚センサ及び触覚センサ等を有してもよい。なお、本発明は、アーム２０２の形態に限定されない。物体２１０を把持できる形態であればどのような形態でもよい。
【００２４】
ここで、把持装置２００の把持作業における処理の概要について説明する。
【００２５】
制御装置２０１は、センサ等から物体２１０が存在する空間の画像を取得する。制御装置２０１は、確率モデルに基づいて、物体２１０の把持点２２０を選択する。ここで、把持点２２０は、例えば、アーム２０２が物体２１０を把持する位置の基準となる座標である。
【００２６】
制御装置２０１は、把持点２２０への軌道計画を生成する。ここで、軌道計画は、アーム２０２を把持点２２０まで移動させるためのアーム２０２及び把持装置２００の移動軌道に関する情報である。
【００２７】
制御装置２０１は、軌道計画に基づいて、把持装置２００の動作を制御するための制御情報を生成し、出力する。把持装置２００は、制御情報に基づいて、アーム２０２が把持点２２０において物体２１０を把持するように動く。
【００２８】
実施例１の計算機システムは、把持装置２００が物体を把持するための制御アルゴリズムである確率モデルを生成するための学習処理を実行する。図１の説明に戻る。
【００２９】
計算機システムは、複数の計算機１００−１、１００−２から構成される。各計算機１００−１、１００−２は、直接又はネットワークを介して互いに接続される。
【００３０】
計算機１００−１は、任意の把持点２２０で任意の形状の物体２１０を把持できる確率（把持成功確率）を算出する確率モデルを生成するための学習処理を実行する。
【００３１】
確率モデルは、物体２１０の形状に関する情報を含む物体データ及び把持点２２０を含む入力データから把持成功確率を算出するモデルである。なお、計算機１００−１は、物体データそのものを確率モデルに入力してもよいし、ＶＡＥ（Ｖａｒｉａｔｉｏｎａｌ  ＡｕｔｏＥｎｃｏｄｅｒ）等を用いて抽出された物体データの特徴量を確率モデルに入力してもよい。
【００３２】
計算機１００−２は、学習用物体データ１７０を生成する物体データ生成モデルを生成するための学習処理を実行する。計算機１００−２には、学習用物体データ１７０を生成するために用いる基準物体データ１０１が入力される。基準物体データ１０１は、基準となる物体に関するデータである。基準物体データ１０１及び学習用物体データ１７０は、例えば、ポリゴンメッシュをレンダリングすることによって生成された画像データである。
【００３３】
物体データ生成モデルは、基準物体データ１０１を入力データとして受け付けて、学習用物体データ１７０を生成するモデルである。
【００３４】
ここで、図３を用いて計算機１００−１、１００−２のハードウェア構成について説明する。図３では、計算機１００−１のハードウェア構成を説明する。なお、計算機１００−２のハードウェア構成は計算機１００−１と同一である。
【００３５】
計算機１００−１は、プロセッサ３００、主記憶装置３０１、副記憶装置３０２、ネットワークインタフェース３０３、及びＩＯインタフェース３０４を有する。各ハードウェアは内部バスを介して互いに接続される。
【００３６】
なお、図２に示す計算機１００−１のハードウェア構成は一例であってこれに限定されない。例えば、計算機１００−１は、図示しないハードウェアを有してもよいし、副記憶装置３０２及びＩＯインタフェース３０４等の一部のハードウェアを有していなくてもよい。
【００３７】
プロセッサ３００は、主記憶装置３０１に格納されるプログラムを実行する。プロセッサ３００がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部（モジュール）として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ３００が当該モジュールを実現するプログラムを実行していることを示す。
【００３８】
主記憶装置３０１は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の記憶装置であり、プロセッサ３００が実行するプログラム及びプログラムが使用する情報を格納する。また、主記憶装置３０１は、プログラムが使用するワークエリアとしても用いられる。計算機１００−１、１００−２の主記憶装置３０１に格納されるプログラム及び情報については後述する。
【００３９】
なお、プログラム及び情報は副記憶装置３０２等、主記憶装置３０１以外のデバイス又は装置に格納されてもよい。この場合、プロセッサ３００が、デバイス又は装置からプログラム及び情報を読み出し、主記憶装置３０１にロードする。
【００４０】
副記憶装置３０２は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置であり、データを永続的に格納する。
【００４１】
ネットワークインタフェース３０３は、ネットワーク３１０を介して端末３２０等の外部装置と通信するためのインタフェースである。
【００４２】
ＩＯインタフェース３０４は、入力装置３３０及び出力装置３３１等に接続するためのインタフェースである。なお、入力装置３３０は、キーボード、マウス、及びタッチパネル等であり、出力装置３３１は、ディスプレイ及びプリンタ等である。
【００４３】
図１の説明に戻る。次に、計算機１００−１、１００−２の主記憶装置３０１に格納されるプログラム及び情報について説明する。
【００４４】
計算機１００−１の主記憶装置３０１は、第一学習部１１０を実現するプログラム及び確率モデル管理情報１３０を格納する。
【００４５】
確率モデル管理情報１３０は、確率モデルを管理するための情報である。確率モデル管理情報１３０は、少なくとも確率モデルを定義するパラメタを含む。確率モデル管理情報１３０には、確率モデルの構造等に関する情報が含まれてもよい。例えば、確率モデルがニューラルネットワークである場合、確率モデル管理情報１３０には、階層の構造等に関する情報が含まれてよい。
【００４６】
第一学習部１１０は、確率モデルを生成するための学習処理（第一学習処理）を実行する。第一学習部１１０は、把持確率算出部１１１、パラメタ更新部１１２、及びシミュレーション部１１３を含む。
【００４７】
把持確率算出部１１１は、把持点及び物体データの組と、確率モデル管理情報１３０によって定義される確率モデルとに基づいて、把持点における物体の把持成功確率を算出する。パラメタ更新部１１２は、確率モデルを定義するパラメタを更新する。すなわち、パラメタ更新部１１２は確率モデルを更新する。
【００４８】
シミュレーション部１１３は、学習用物体データ１７０を用いたシミュレーションを実行することによって学習データ１５０及び確率データ１６０を生成する。シミュレーションは、例えば、物理シミュレーションが考えられる。ここで、学習データ１５０は、学習用物体データ１７０及び把持点（座標）を含む。確率データ１６０は、把持点及び把持成功確率を含む。
【００４９】
計算機１００−２の主記憶装置３０１は、第二学習部１２０を実現するプログラム及び物体データ生成モデル管理情報１４０を格納する。
【００５０】
物体データ生成モデル管理情報１４０は、物体データ生成モデルを管理するための情報である。物体データ生成モデル管理情報１４０は、少なくとも物体データ生成モデルを定義するパラメタを含む。物体データ生成モデル管理情報１４０には、物体データ生成モデルの構造等に関する情報が含まれてもよい。例えば、物体データ生成モデルがニューラルネットワークである場合、物体データ生成モデル管理情報１４０には、階層の構造等に関する情報が含まれてよい。
【００５１】
第二学習部１２０は、物体データ生成モデルを生成するための学習処理（第二学習処理）を実行する。第二学習部１２０は、物体データ生成部１２１、パラメタ更新部１２２、及び把持点データ生成部１２３を含む。
【００５２】
物体データ生成部１２１は、基準物体データ１０１と、物体データ生成モデル管理情報１４０によって定義される物体データ生成モデルとに基づいて学習用物体データ１７０を生成する。物体データ生成部１２１は、内部で、自身の生成したデータも含めた繰り返し処理により学習用物体データ１７０を生成してもよい。パラメタ更新部１２２は、物体データ生成モデルを定義するパラメタを更新する。すなわち、パラメタ更新部１２２は物体データ生成モデルを更新する。
【００５３】
把持点データ生成部１２３は、学習用物体データ１７０に対応する物体の把持点を決定し、学習用物体データ１７０及び把持点を含む評価用入力データ１８０を生成する。
【００５４】
なお、計算機１００−１、１００−２が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。また、一つの計算機上で稼働する仮想計算機を用いて各機能部を実現してもよい。
【００５５】
なお、第一学習部１１０の一部の機能部が第二学習部１２０に含まれてもよいし、第二学習部１２０の一部の機能部が第一学習部１１０に含まれてもよい。例えば、第二学習部１２０がシミュレーション部１１３を含んでもよい。
【００５６】
なお、図１の実線は、第一学習処理におけるデータの入出力を示し、図１の点線は、第二学習処理におけるデータの入出力を示す。本明細書では、第一学習処理及び第二学習処理が循環するように実行されることを敵対的学習と記載する。
【００５７】
図４は、実施例１の計算機システムによって提示される設定画面４００の一例を示す図である。
【００５８】
設定画面４００は、第一学習部１１０及び第二学習部１２０が実行する学習処理に必要な設定を行うための画面であり、端末３２０又は出力装置３３１に表示される。なお、設定画面４００は、第一学習部１１０及び第二学習部１２０のどちらが提示してもよい。また、第一学習部１１０及び第二学習部１２０とは異なる機能部が設定画面４００を提示してもよい。
【００５９】
設定画面４００は、基準物体データ欄４０１、確率モデル欄４０２、物体データ生成モデル欄４０３、学習回数欄４０４、学習回数欄４０５、目標確率欄４０６、設定ボタン４１０、及び開始ボタン４１１を含む。
【００６０】
基準物体データ欄４０１は、第二学習部１２０に入力する基準物体データ１０１を設定する欄である。確率モデル欄４０２は、確率モデルを格納する確率モデル管理情報１３０を設定する欄である。物体データ生成モデル欄４０３は、物体データ生成モデルを格納する物体データ生成モデル管理情報１４０を設定する欄である。
【００６１】
基準物体データ欄４０１、確率モデル欄４０２、及び物体データ生成モデル欄４０３には、例えば、ファイルパス等が設定される。
【００６２】
学習回数欄４０４は、確率モデルの更新回数の上限値（学習回数の上限値）を設定する欄である。学習回数欄４０５は、物体データ生成モデルの更新回数の上限値（学習回数の上限値）を設定する欄である。目標確率欄４０６は、目標確率を設定する欄である。
【００６３】
設定ボタン４１０は、計算機１００−１、１００−２に、各欄に設定された値を設定するための操作ボタンである。ユーザが設定ボタン４１０を操作した場合、各欄に設定された値を含む設定指示が計算機システムに送信される。
【００６４】
このとき、第一学習部１１０は、初期の確率モデルを確率モデル管理情報１３０に登録し、学習回数欄４０４及び目標確率欄４０６に設定された値をワークエリアに格納する。また、第二学習部１２０は、初期の物体データ生成モデルを物体データ生成モデル管理情報１４０に登録し、基準物体データ１０１及び目標確率欄４０６に設定された値をワークエリアに格納する。
【００６５】
開始ボタン４１１は、計算機システムに学習開始指示を入力するための操作ボタンである。当該学習開始指示は、計算機１００−１及び計算機１００−２のいずれかに送信される。
【００６６】
図５は、実施例１の第一学習部１１０が実行する処理の一例を説明するフローチャートである。
【００６７】
第一学習部１１０は、学習開始指示を受信した場合、以下で説明する処理を開始する。学習開始指示は、入力装置３３０、端末３２０、又は第二学習部１２０から送信される。なお、入力装置３３０及び端末３２０は、設定画面４００を介して学習開始指示を送信する。
【００６８】
まず、第一学習部１１０は、学習用物体データ１７０を取得する（ステップＳ１０１）。
【００６９】
具体的には、第一学習部１１０は、学習用物体データ１７０の生成指示を第二学習部１２０に送信する。第二学習部１２０の物体データ生成部１２１は、基準物体データ１０１及び物体データ生成モデル管理情報１４０に基づいて学習用物体データ１７０を生成し、第一学習部１１０に学習用物体データ１７０を送信する。
【００７０】
次に、第一学習部１１０は、取得した学習用物体データ１７０を用いて学習データ１５０及び確率データ１６０を生成する（ステップＳ１０２）。具体的には、以下のような処理が実行される。
【００７１】
シミュレーション部１１３は、仮想的な空間に、学習用物体データ１７０に対応する物体を配置する。仮想的な空間における物体の位置及び向き等は任意に設定される。シミュレーション部１１３は、物体の把持点を決定し、当該把持点を基準に物体を把持できるか否かをシミュレーションする。なお、シミュレーション部１１３は、同一の把持点について複数回シミュレーションを実行してもよい。
【００７２】
シミュレーション部１１３は、学習用物体データ１７０及び把持点を含む学習データ１５０を生成し、把持確率算出部１１１に学習データ１５０を送信する。
【００７３】
シミュレーション部１１３は、シミュレーションの結果に基づいて、把持点毎の把持成功確率を算出する。以下の説明では、シミュレーション部１１３によって算出される把持成功確率を比較用確率とも記載する。
【００７４】
シミュレーション部１１３は、把持点及び比較用確率を含む確率データ１６０を生成し、パラメタ更新部１１２に確率データ１６０を送信する。以上がステップＳ１０２の処理の説明である。
【００７５】
次に、第一学習部１１０は、学習データ１５０及び確率データ１６０を用いて第一学習処理を実行する（ステップＳ１０３）。第一学習処理の詳細は図６を用いて後述する。
【００７６】
次に、第一学習部１１０は、敵対的学習を終了するか否かを判定する（ステップＳ１０４）。
【００７７】
例えば、第一学習部１１０は、第一学習処理の実行回数が閾値より大きい場合、敵対的学習を終了すると判定する。
【００７８】
敵対的学習を継続すると判定された場合、第一学習部１１０は、第二学習部１２０に学習開始指示を送信し（ステップＳ１０５）、その後、処理を終了する。敵対的学習を終了すると判定された場合、第一学習部１１０は処理を終了する。
【００７９】
なお、シミュレーション部１１３は、物体データ、把持点、及びシミュレーションの結果の組を学習データ１５０として生成し、把持確率算出部１１１及びパラメタ更新部１１２に出力してもよい。
【００８０】
図６は、実施例１の第一学習部１１０が実行する第一学習処理の一例を説明するフローチャートである。
【００８１】
把持確率算出部１１１は、学習データ１５０を確率モデルに入力することによって、任意の把持点における物体の把持成功確率を算出する（ステップＳ２０１）。把持確率算出部１１１は、各把持点の把持成功確率をパラメタ更新部１１２に送信する。
【００８２】
次に、パラメタ更新部１１２は、各把持点の把持成功確率及び比較用確率に基づいて確率モデルを更新する（ステップＳ２０２）。
【００８３】
例えば、パラメタ更新部１１２は、各把持点の把持成功確率及び比較用確率の差が小さくなるように確率モデルを定義するパラメタ（確率モデル管理情報１３０）を更新する。
【００８４】
次に、パラメタ更新部１１２は、確率モデルの学習を終了するか否かを判定する（ステップＳ２０３）。
【００８５】
例えば、確率モデルの更新回数が学習回数欄４０４の値より大きい場合、パラメタ更新部１１２は確率モデルの学習を終了すると判定する。また、パラメタ更新部１１２は、テスト用入力データを把持確率算出部１１１に入力し、把持確率算出部１１１より出力された把持成功確率の最大値が目標確率より大きい場合、確率モデルの学習を終了すると判定する。
【００８６】
確率モデルの学習を継続すると判定された場合、第一学習部１１０は、ステップＳ２０１に戻り、同様の処理を実行する。確率モデルの学習を終了すると判定された場合、第一学習部１１０は第一学習処理を終了する。
【００８７】
図７は、実施例１の第二学習部１２０が実行する処理の一例を説明するフローチャートである。
【００８８】
第二学習部１２０は、学習開始指示を受信した場合、以下で説明する処理を開始する。学習開始指示は、入力装置３３０、端末３２０、又は第一学習部１１０から送信される。
【００８９】
まず、第二学習部１２０は、評価用入力データ１８０を生成する（ステップＳ３０１）。具体的には、以下のような処理が実行される。
【００９０】
物体データ生成部１２１は、基準物体データ１０１及び物体データ生成モデルに基づいて、任意の形状の物体のポリゴンメッシュを生成する。物体データ生成部１２１は、ポリゴンメッシュをレンダリングすることによって画像データを生成する。物体データ生成部１２１は、画像データを含む学習用物体データ１７０を生成し、把持点データ生成部１２３に送信する。
【００９１】
レンダリングの手法としては例えば非特許文献１に記載の手法を用いる。なお、本発明は、レンダリングの手法に限定されない。
【００９２】
把持点データ生成部１２３は、学習用物体データ１７０に対応する物体の複数の把持点を決定し、学習用物体データ１７０及び把持点を含む評価用入力データ１８０を生成する。なお、学習用物体データ１７０及び一つの把持点の組に対して一つの評価用入力データ１８０が生成される。以上がステップＳ３０１の処理の説明である。
【００９３】
次に、第二学習部１２０は、評価用入力データ１８０を第一学習部１１０に送信し、参照用確率データ１９０を取得する（ステップＳ３０２）。
【００９４】
第一学習部１１０の把持確率算出部１１１は、評価用入力データ１８０を受信した場合、各把持点における物体の把持成功確率を算出し、算出された把持成功確率を含む参照用確率データ１９０を第二学習部１２０に送信する。一つの評価用入力データ１８０に対して一つの参照用確率データ１９０が生成される。
【００９５】
次に、第二学習部１２０は、第二学習処理を実行する（ステップＳ３０３）。第二学習処理の詳細は図８を用いて後述する。
【００９６】
次に、第二学習部１２０は、敵対的学習を終了するか否かを判定する（ステップＳ３０４）。
【００９７】
例えば、第二学習部１２０は、第二学習処理の実行回数が閾値より大きい場合、敵対的学習を終了すると判定する。
【００９８】
敵対的学習を終了すると判定された場合、第二学習部１２０は処理を終了する。
【００９９】
敵対的学習を継続すると判定された場合、第二学習部１２０は、第一学習部１１０に学習開始指示を送信する（ステップＳ３０５）。その後、第二学習部１２０は処理を終了する。
【０１００】
図８は、実施例１の第二学習部１２０が実行する第二学習処理の一例を説明するフローチャートである。
【０１０１】
パラメタ更新部１２２は、各把持点の把持成功確率及び目標確率に基づいて物体データ生成モデルを更新する（ステップＳ４０１）。
【０１０２】
具体的には、パラメタ更新部１２２は、把持成功確率の最大値及び目標確率の差が小さくなるように物体データ生成モデルを定義するパラメタ（物体データ生成モデル管理情報１４０）を更新する。例えば、ランダムに物体データ生成モデルを定義するパラメタ（物体データ生成モデル管理情報１４０）を更新してもよいし、ユーザが手動でパラメタを更新してもよい。なお、前述した更新方法は一例であってこれに限定されない。このように物体データ生成モデルを更新することによって、確率モデルから出力される把持成功確率の最大値が目標確率と近くなるような物体データを効率的に生成することができる。
【０１０３】
次に、パラメタ更新部１２２は、確率モデルの学習を終了するか否かを判定する（ステップＳ４０２）。
【０１０４】
例えば、物体データ生成モデルの更新回数が学習回数欄４０５の値より大きい場合、パラメタ更新部１２２は物体データ生成モデルの学習を終了すると判定する。また、パラメタ更新部１２２は、テスト用入力データを把持確率算出部１１１に入力し、把持確率算出部１１１より出力された把持成功確率の最大値が目標確率より大きい場合、確率モデルの学習を終了すると判定する。
【０１０５】
物体データ生成モデルの学習を継続すると判定された場合、第二学習部１２０は、ステップＳ４０１に戻り、同様の処理を実行する。物体データ生成モデルの学習を終了すると判定された場合、第二学習部１２０は第二学習処理を終了する。
【０１０６】
次に、確率モデルに基づく把持装置２００の制御の一例を説明する。図９は、実施例１の把持装置２００の制御の一例を説明するフローチャートである。
【０１０７】
制御装置２０１は、物体２１０が存在する空間（作業空間）の画像データを取得する（ステップＳ５０１）。
【０１０８】
次に、制御装置２０１は、画像データ及び確率モデルを用いて、対象空間における把持成功確率の分布を算出する（ステップＳ５０２）。
【０１０９】
具体的には、制御装置２０１は、画像データ及び座標を確率モデルに入力し、各座標の把持成功確率を算出する。制御装置２０１は、公知の画像処理を用いて、画像データに含まれる物体を抽出する処理等を実行してもよい。
【０１１０】
次に、制御装置２０１は、作業空間における把持成功確率の分布に基づいて、物体２１０の把持点を決定し、決定された把持点の軌道計画を生成する（ステップＳ５０３）。
【０１１１】
次に、制御装置２０１は、軌道計画に基づいてアーム２０２を制御する（ステップＳ５０４）。これによって、把持装置２００が物体２１０を把持する。
【０１１２】
以上で説明したように、実施例１によれば、第一学習処理において、物体データ生成モデルに基づいて生成された物体データを用いることによって様々な形状の物体を把持するための確率モデルを生成できる。また、把持成功確率の最大値及び目標確率の差に基づいて物体データ生成モデルを更新することによって、把持成功確率の最大値が目標確率と近くなるような物体データを効率的に生成できる。これによって、より効率的な確率モデルの学習を実現できる。
【実施例２】
【０１１３】
実施例２では、第二学習部１２０が実行する処理が一部異なる。以下、実施例１との差異を中心に実施例２について説明する。
【０１１４】
実施例２の計算機システムの構成は実施例１と同一である。計算機１００のハードウェア構成は実施例１と同一である。実施例２の計算機１００のソフトウェア構成は実施例１と同一である。
【０１１５】
ただし、実施例２の第二学習部１２０は進捗フラグを管理する。進捗フラグには、「０」、「１」、「２」のいずれかが設定される。進捗フラグの初期値は「０」に設定されているものとする。「１」は確率モデルの学習が停滞している状態を示し、「２」は確率モデルの学習が進捗している状態を示す。「０」は、前述のいずれにも該当しない状態を示す。
【０１１６】
実施例２では、確率モデルの学習の進捗状況に応じて第二学習処理の学習を調整する。これによって、効率的な確率モデルの学習を実現できる。
【０１１７】
実施例２の第一学習部１１０が実行する処理は実施例１と同一である。実施例２では、第二学習部１２０が実行する処理が一部異なる。図１０は、実施例２の第二学習部１２０が実行する処理の一例を説明するフローチャートである。
【０１１８】
ステップＳ３０１、ステップＳ３０２の処理は実施例１と同一である。ステップＳ３０２の処理が実行された後、第二学習部１２０は、確率モデルの学習が停滞しているか否かを判定する（ステップＳ３５１）。判定方法としては以下のような方法が考えられる。
【０１１９】
（判定方法１）第二学習部１２０は、各把持点の把持成功確率から把持成功確率の平均値を算出し、当該平均値が閾値より小さいか否かを判定する。把持成功確率の平均値が閾値より小さい場合、第二学習部１２０は確率モデルの学習が停滞していると判定する。なお、平均値以外の統計値を用いてもよい。
【０１２０】
（判定方法２）第二学習部１２０は、把持成功確率の最大値を履歴として管理し、前回の最大値及び今回の最大値に基づいて変化率を算出する。第二学習部１２０は、把持成功確率の最大値及び目標確率の差が第一閾値より小さく、かつ、変化率が第二閾値より小さいか否かを判定する。前述の条件を満たす場合、第二学習部１２０は、確率モデルの学習が停滞していると判定する。
【０１２１】
確率モデルの学習が停滞していると判定された場合、第二学習部１２０は、進捗フラグに「１」を設定し（ステップＳ３５２）、第二学習処理を実行する（ステップＳ３０３）。
【０１２２】
確率モデルの学習が停滞していないと判定された場合、第二学習部１２０は、第二学習処理を実行する（ステップＳ３０３）。
【０１２３】
ステップＳ３０４において敵対的学習を終了しないと判定された場合、第二学習部１２０は、確率モデルの学習が進捗しているか否かを判定する（ステップＳ３５３）。
【０１２４】
例えば、第二学習部１２０は、把持成功確率の最大値が目標確率より大きくなる回数が閾値より大きい場合、確率モデルの学習が進捗していると判定する。
【０１２５】
確率モデルの学習が進捗していないと判定された場合、第二学習部１２０は、第一学習部１１０に学習開始指示を送信する（ステップＳ３０５）。その後、第二学習部１２０は処理を終了する。
【０１２６】
確率モデルの学習が進捗していると判定された場合、第二学習部１２０は、進捗フラグに「２」を設定し（ステップＳ３５４）、第一学習部１１０に学習開始指示を送信する（ステップＳ３０５）。その後、第二学習部１２０は処理を終了する。
【０１２７】
実施例２では第二学習処理も異なる。図１１は、実施例２の第二学習部１２０が実行する第二学習処理の一例を説明するフローチャートである。
【０１２８】
第二学習部１２０は、進捗フラグが「０」であるか否かを判定する（ステップＳ４５１）。
【０１２９】
進捗フラグが「０」であると判定された場合、第二学習部１２０は、ステップＳ４５３に進む。
【０１３０】
進捗フラグが「０」でないと判定された場合、第二学習部１２０は、目標範囲を更新する（ステップＳ４５２）。
【０１３１】
具体的には、第二学習部１２０は変数α及び変数βを変更する。変数α及び変数βは、基準物体と、更新後の物体データ生成モデルに基づいて生成された物体との間の類似度の範囲を指定するための変数である。なお、第二学習部１２０は、変数α及び変数βの初期値を保持しているものとする。変数α及び変数βの初期値は設定画面４００を介して設定されてもよい。
【０１３２】
第二学習部１２０は、把持成功確率の最大値及び目標確率の差に基づいて、変数α、βを更新する。具体的には以下のように設定される。
【０１３３】
進捗フラグが「１」である場合、第二学習部１２０は、当該差に基づいて、前回の変数α、βより大きな値を設定する。これによって、更新前の物体データ生成モデルに基づいて生成された物体より、基準物体からの変化量が小さい物体の物体データが生成されるように物体データ生成モデルを更新できる。
【０１３４】
進捗フラグが「２」である場合、第二学習部１２０は、当該差に基づいて、前回の変数α、βより小さい値を設定する。これによって、更新前の物体データ生成モデルに基づいて生成された物体より、基準物体からの変化量が大きい物体の物体データが生成されるように物体データ生成モデルを更新できる。
【０１３５】
前述のような処理を実行することによって、把持成功確率の最大値及び目標確率の差を、物体データ生成モデルの更新に伝搬させることができる。以上がステップＳ４５２の処理の説明である。
【０１３６】
ステップＳ４５３では、第二学習部１２０は、目標範囲を設定する（ステップＳ４５３）。
【０１３７】
次に、パラメタ更新部１２２は、物体データ生成モデルを更新する（ステップＳ４５４）。物体データ生成モデルの更新方法は実施例１と同一である。
【０１３８】
次に、物体データ生成部１２１は、更新後の物体データ生成モデルに基づいて、学習用物体データ１７０を生成する（ステップＳ４５５）。
【０１３９】
次に、パラメタ更新部１２２は、基準物体と学習用物体データ１７０に対応する物体との間の類似度を算出する（ステップＳ４５６）。
【０１４０】
次に、パラメタ更新部１２２は、物体データ生成モデルの学習を終了するか否かを判定する（ステップＳ４５７）。具体的には、以下のような処理が実行される。
【０１４１】
パラメタ更新部１２２は、類似度が目標範囲内であるか否かを判定する。具体的には、パラメタ更新部１２２は、類似度が変数α以上、かつ、変数β以下であるか否かを判定する。類似度が目標範囲内である場合、パラメタ更新部１２２は、物体データ生成モデルの学習を終了すると判定する。
【０１４２】
類似度が目標範囲外であると判定された場合、パラメタ更新部１２２は、物体データ生成モデルの更新回数が学習回数欄４０５の値より大きいか否かを判定する。
【０１４３】
物体データ生成モデルの更新回数が学習回数欄４０５の値より大きい場合、パラメタ更新部１２２は、物体データ生成モデルの学習を終了すると判定する。物体データ生成モデルの更新回数が学習回数欄４０５の値以下であると判定された場合、パラメタ更新部１２２は、物体データ生成モデルの学習を継続すると判定する。以上がステップＳ４５７の処理の説明である。
【０１４４】
物体データ生成モデルの学習を継続すると判定された場合、第二学習部１２０は、ステップＳ４５４に戻り、同様の処理を実行する。
【０１４５】
物体データ生成モデルの学習を終了すると判定された場合、第二学習部１２０は、進捗フラグに「０」を設定し（ステップＳ４５８）、その後、第二学習処理を終了する。
【０１４６】
変数αの値又は変数βを小さくした場合、基準物体からの変化量が大きい物体の物体データを生成する物体データ生成モデルに更新される。変数α又は変数βを大きくした場合、基準物体からの変化量が小さい物体の物体データを生成する物体データ生成モデルに更新される。
【０１４７】
変数βを調整は、物体の多様性を調整することに対応する。変数αを調整は、変化量が非常に大きい物体の生成を抑止することに対応する。目標範囲の幅の調整は、物体データ生成モデルの変化量の調整に対応する。
【０１４８】
複雑な形状の物体の物体データを学習データとして入力した場合、確率モデルの学習が停滞する可能性がある。そこで、実施例２の計算機システムは、確率モデルの学習が停滞している場合、簡易な形状の物体が生成されるように物体データ生成モデルを更新する。すなわち、基準物体からの形状の変化量が更新前の物体データ生成モデルから生成された物体より小さくなるように、物体データ生成モデルが更新される。簡易な形状の物体の物体データを入力することによって、確率モデルの学習の停滞を防止できる。
【０１４９】
一方、確率モデルの学習が進捗している場合、第二学習部１２０は、より複雑な形状の物体が生成されるように物体データ生成モデルを更新する。すなわち、基準物体からの形状の変化量が更新前の物体データ生成モデルから生成された物体より大きくなるように、物体データ生成モデルが更新される。これによって、より複雑な形状の物体を把持するための確率モデルを効率的に生成することができる。
【０１５０】
実施例２によれば、確率モデルの学習の停滞を防止し、かつ、効率的な学習を実現できる。
【実施例３】
【０１５１】
実施例３では、確率モデルの学習処理の停滞が検出された場合、第二学習部１２０の指示に基づいて、第一学習部１１０が確率モデルの再学習処理を実行する。以下、実施例１との差異を中心に実施例３について説明する。
【０１５２】
図１２は、実施例３の計算機システムの構成例を示す図である。
【０１５３】
実施例３の計算機システムの構成は実施例１と同一である。計算機１００のハードウェア構成は実施例１と同一である。実施例３の計算機１００−２のソフトウェア構成は実施例１と同一である。
【０１５４】
実施例３では、計算機１００−１の主記憶装置３０１に履歴管理情報１２００が格納される。その他の構成は実施例１と同一である。
【０１５５】
履歴管理情報１２００は、確率モデル管理情報１３０の履歴を管理するための情報である。履歴管理情報１２００では、確率モデル管理情報１３０及び更新日時が対応づけて管理される。
【０１５６】
実施例３では、第一学習部１１０及び第二学習部１２０が実行する処理が一部異なる。
【０１５７】
図１３は、実施例３の第一学習部１１０が実行する処理の一例を説明するフローチャートである。
【０１５８】
第一学習部１１０は、受信した指示が再学習開始指示であるか否かを判定する（ステップＳ１５１）。
【０１５９】
受信した指示が学習開始指示であると判定された場合、第一学習部１１０はステップＳ１０１に進む。
【０１６０】
受信した指示が再学習開始指示であると判定された場合、第一学習部１１０のパラメタ更新部１１２は、履歴管理情報１２００に格納される履歴に基づいて確率モデルを更新する（ステップＳ１５２）。その後、第一学習部１１０はステップＳ１０１に進む。
【０１６１】
例えば、パラメタ更新部１１２は、更新日時が最も新しい確率モデルの履歴を読出し、確率モデルを更新する。なお、前述の更新方法は一例であって、これに限定されない。例えば、一定期間前の確率モデルの履歴に基づいて確率モデルが更新されてもよい。
【０１６２】
実施例３のステップＳ１０１からステップＳ１０５までの処理は実施例１と同一である。
【０１６３】
図１４は、実施例３の第二学習部１２０が実行する処理の一例を説明するフローチャートである。
【０１６４】
実施例１のステップＳ３０１からステップＳ３０２、ステップＳ３０３からステップＳ３０５の処理は実施例１の処理と同一である。ステップＳ３５１の処理は実施例２の処理と同一である。
【０１６５】
ステップＳ３５１において、確率モデルの学習が停滞していないと判定された場合、第二学習部１２０はステップＳ３０３に進む。
【０１６６】
ステップＳ３５１において、確率モデルの学習が停滞していると判定された場合、第二学習部１２０は第一学習部１１０に再学習開始指示を出力する（ステップＳ３６１）。その後、第二学習部１２０は処理を終了する。
【０１６７】
実施例３によれば、確率モデルの学習が停滞している場合、第一学習部１１０は、過去の確率モデルに戻した上で学習処理を実行する。これによって、学習の停滞を回避することができる。
【０１６８】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１６９】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１７０】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｐｙｔｈｏｎ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１７１】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１７２】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１７３】
１００  計算機
１０１  基準物体データ
１１０  第一学習部
１１１  把持確率算出部
１１２、１２２  パラメタ更新部
１１３  シミュレーション部
１２０  第二学習部
１２１  物体データ生成部
１２３  把持点データ生成部
１３０  確率モデル管理情報
１４０  物体データ生成モデル管理情報
１５０  学習データ
１６０  確率データ
１７０  学習用物体データ
１８０  評価用入力データ
１９０  参照用確率データ
２００  把持装置
２０１  制御装置
２０２  アーム
２１０  物体
２２０  把持点
３００  プロセッサ
３０１  主記憶装置
３０２  副記憶装置
３０３  ネットワークインタフェース
３０４  ＩＯインタフェース
３１０  ネットワーク
３２０  端末
３３０  入力装置
３３１  出力装置
４００  設定画面
１２００  履歴管理情報
【図１】
2020179438.tif 000003
【図２】
2020179438.tif 000004
【図３】
2020179438.tif 000005
【図４】
2020179438.tif 000006
【図５】
2020179438.tif 000007
【図６】
2020179438.tif 000008
【図７】
2020179438.tif 000009
【図８】
2020179438.tif 000010
【図９】
2020179438.tif 000011
【図１０】
2020179438.tif 000012
【図１１】
2020179438.tif 000013
【図１２】
2020179438.tif 000014
【図１３】
2020179438.tif 000015
【図１４】
2020179438.tif 000016