(57)【要約】【課題】ロボットの把持動作の効率化に有効な把持システム、把持ロボット、学習装置、把持方法、及び、モデルの製造方法を提供する。【解決手段】本開示の一側面に係る把持システムは、ワークを把持するハンドと、ハンドを支持し、ハンドの位置及び姿勢の少なくとも一方を変更するロボットと、ハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得する画像センサと、画像センサにより取得された画像情報と、ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とに基づいてロボットの動作指令を特定する過程における少なくとも一部であるモデルを、収集データに基づいて機械学習により構築する構築部と、画像情報と、ハンド位置情報と、モデルとに基づいて、ロボットの動作指令を演算する演算部と、演算部により演算されたロボットの動作指令に基づいて、ロボットを動作させるロボット制御部と、を備える。【選択図】図１
2019093461.tif 000002
【特許請求の範囲】
【請求項１】
ワークを把持するハンドと、
前記ハンドを支持し、前記ハンドの位置及び姿勢の少なくとも一方を変更するロボットと、
前記ハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得する画像センサと、
前記画像センサにより取得された前記画像情報と、前記ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とに基づいて前記ロボットの動作指令を特定する過程における少なくとも一部であるモデルを、収集データに基づいて機械学習により構築する構築部と、
前記画像情報と、前記ハンド位置情報と、前記モデルとに基づいて、前記ロボットの動作指令を演算する演算部と、
前記演算部により演算された前記ロボットの動作指令に基づいて、前記ロボットを動作させるロボット制御部と、
を備える把持システム。
【請求項２】
前記演算部は、
前記画像情報と、前記画像情報に含まれる前記ワークの位置情報とに基づいて、前記ワークに対応する特徴量を抽出する抽出部と、
前記抽出部により抽出された前記特徴量と、前記ハンド位置情報とに基づいて、前記ロボットの動作指令を出力する出力部と、
を有する、請求項１に記載の把持システム。
【請求項３】
前記抽出部は、前記視点の相異なる複数の前記画像情報と、前記複数の画像情報それぞれに含まれる同一の前記ワークの前記位置情報とに基づいて、前記ワークに対応する特徴量を抽出する、請求項２に記載の把持システム。
【請求項４】
前記構築部は、
前記画像情報と前記位置情報との入力を受けて、前記特徴量を出力する抽出モデルを、前記収集データに基づいて機械学習により構築する抽出モデル構築部と、
前記特徴量と前記ハンド位置情報との入力を受けて、前記動作指令を出力する指令モデルを、前記収集データに基づいて機械学習により構築する指令モデル構築部と、
を有し、
前記抽出部は、前記抽出モデルを用いて前記特徴量を抽出し、
前記出力部は、前記指令モデルを用いて前記動作指令を出力する、請求項２〜３の何れか一項に記載の把持システム。
【請求項５】
前記ハンドは、グリッパであり、
前記指令モデル構築部は、前記特徴量及び前記ハンド位置情報に加えて前記グリッパの開閉度の入力を受けて、前記動作指令に加えて、前記グリッパの目標開閉度を出力する前記指令モデルを構築し、
前記出力部は、前記指令モデルを用いて、前記特徴量と前記ハンド位置情報と前記開閉度とに基づいて前記動作指令と前記目標開閉度を出力し、
前記ロボット制御部は、前記目標開閉度に応じて前記グリッパを動作させる、請求項４に記載の把持システム。
【請求項６】
前記画像センサは、前記ハンドの先端が前記画像情報に含まれるように配置される、請求項２〜５の何れか一項に記載の把持システム。
【請求項７】
前記演算部は、
前記ロボットの動作指令と、前記ワークに対応する特徴量とに基づいて、前記ハンドで把持できる確率を表す把持確率を算出する算出部を更に有し、
前記ロボット制御部は、前記算出部により算出された前記把持確率に基づいて、前記ロボットを動作させる、請求項２〜６の何れか一項に記載の把持システム。
【請求項８】
前記構築部は、前記収集データに基づいて機械学習により、前記ロボットの動作指令と、前記ワークに対応する特徴量との入力を受けて、前記把持確率を出力する把持確率モデルを構築する把持確率モデル構築部を更に有し、
前記算出部は、前記把持確率モデルを用いて前記把持確率を算出する、請求項７に記載の把持システム。
【請求項９】
前記ロボット制御部は、
前記把持確率が予め定められた閾値以上である場合、前記ロボットに把持動作をさせ、
前記把持確率が前記閾値未満である場合、前記抽出部による前記ワークに対応する特徴量の抽出と、前記出力部による前記ロボットの動作指令の出力とを再度実行させる、請求項７又は８に記載の把持システム。
【請求項１０】
前記演算部は、
前記画像センサにより取得された前記画像情報に基づいて、複数のワークの位置情報と、前記複数のワークそれぞれの把持期待度とを生成する位置生成部と、
前記把持期待度に基づいて、把持対象とする１のワークを決定する決定部と、
を更に有し、
前記抽出部は、前記画像情報と前記１のワークの位置情報とに基づいて、当該１のワークに対応する特徴量を抽出する、請求項２〜９の何れか一項に記載の把持システム。
【請求項１１】
前記構築部は、前記収集データに基づいて機械学習により、前記画像情報の入力を受けて、前記複数のワークの位置情報と、前記複数のワークそれぞれの把持期待値とを出力する位置モデルを構築する位置モデル構築部を更に有し、
前記位置生成部は、前記位置モデルを用いて前記位置情報と前記把持期待値とを生成する、請求項１０に記載の把持システム。
【請求項１２】
少なくとも前記ロボットと前記ハンドと前記演算部と前記ロボット制御部とを１セットとして備え、
前記構築部は、前記収集データとして、前記１セットとは異なるセットの動作履歴を収集したデータに基づいて、前記モデルを機械学習により構築し、
前記１セットの前記演算部は、前記モデルに基づいて、前記１セットの前記ロボットの動作指令を演算する、請求項１〜１１の何れか一項に記載の把持システム。
【請求項１３】
ワークを把持するハンドと、
前記ハンドを支持し、前記ハンドの位置及び姿勢の少なくとも一方を変更するロボットと、
前記ハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得する画像センサと、
前記画像情報と、前記ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報と、収集データに基づいて機械学習により構築された、前記ロボットの動作指令を特定する過程における少なくとも一部であるモデルとに基づいて、前記ロボットの動作指令を演算する演算部と、
前記演算部により演算された前記ロボットの動作指令に基づいて、前記ロボットを動作させるロボット制御部と、
を備える把持システム。
【請求項１４】
ワークを把持するハンドの位置及び姿勢の少なくとも一方と連動する視点から撮像された画像情報と、前記ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とを取得する取得部と、
前記画像情報と前記ハンド位置情報とに基づいてロボットの動作指令を特定する過程における少なくとも一部であるモデルを、前記取得部により取得された前記画像情報及び前記ハンド位置情報を含む収集データに基づいて機械学習により構築する構築部と、
を備える学習装置。
【請求項１５】
ワークを把持するハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得することと、
前記画像情報と、前記ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とに基づいて、ロボットの動作指令を特定する過程における少なくとも一部であるモデルを、収集データに基づいて機械学習により構築することと、
前記画像情報と、前記ハンド位置情報と、前記モデルとに基づいて、前記ロボットの動作指令を演算することと、
演算された前記ロボットの動作指令に基づいて、前記ロボットを動作させることと、
を含む、把持方法。
【請求項１６】
ワークを把持するハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得することと、
前記画像情報と、前記ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報と、収集データに基づいて機械学習により構築された、ロボットの動作指令を特定する過程における少なくとも一部であるモデルとに基づいて、前記ロボットの動作指令を演算することと、
演算された前記ロボットの動作指令に基づいて、前記ロボットを動作させることと、
を含む、把持方法。
【請求項１７】
ワークを把持するハンドの位置及び姿勢の少なくとも一方と連動する視点から撮像された画像情報と、前記ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とを取得することと、
前記画像情報と前記ハンド位置情報とに基づいてロボットの動作指令を特定する過程における少なくとも一部であるモデルを、前記画像情報及び前記ハンド位置情報とを含む収集データに基づいて機械学習により構築することと、
を含む、モデルの製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、把持システム、学習装置、把持方法、及び、モデルの製造方法に関する。
【背景技術】
【０００２】
特許文献１は、バラ積みされた複数のワークをロボットのハンドで把持する把持方法を開示する。この方法では、ワークの上方に固定配置された距離センサによりワークの距離が計測され、計測結果とワークの３ＤＣＡＤモデルとが照合されることによって、個別のワークの３次元位置と姿勢とが認識される。個別のワークの３次元位置と姿勢とが認識された後、ワークの把持動作が開始される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−０６９５４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、ロボットの把持動作の効率化に有効な把持システム、把持ロボット、学習装置、把持方法、及び、モデルの製造方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本開示の一側面に係る把持システムは、ワークを把持するハンドと、ハンドを支持し、ハンドの位置及び姿勢の少なくとも一方を変更するロボットと、ハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得する画像センサと、画像センサにより取得された画像情報と、ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とに基づいてロボットの動作指令を特定する過程における少なくとも一部であるモデルを、収集データに基づいて機械学習により構築する構築部と、画像情報と、ハンド位置情報と、モデルとに基づいて、ロボットの動作指令を演算する演算部と、演算部により演算されたロボットの動作指令に基づいて、ロボットを動作させるロボット制御部と、を備える。
【０００６】
本開示の他の側面に係る把持システムは、ワークを把持するハンドと、ハンドを支持し、ハンドの位置及び姿勢の少なくとも一方を変更するロボットと、ハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得する画像センサと、画像情報と、ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報と、収集データに基づいて機械学習により構築された、ロボットの動作指令を特定する過程における少なくとも一部であるモデルとに基づいて、ロボットの動作指令を演算する演算部と、演算部により演算されたロボットの動作指令に基づいて、ロボットを動作させるロボット制御部と、を備える。
【０００７】
本開示の他の側面に係る学習装置は、ワークを把持するハンドの位置及び姿勢の少なくとも一方と連動する視点から撮像された画像情報と、ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とを取得する取得部と、取得部により取得された画像情報とハンド位置情報とに基づいてロボットの動作指令を特定する過程における少なくとも一部であるモデルを、画像情報及びハンド位置情報とを含む収集データに基づいて機械学習により構築する構築部と、を備える。
を備える。
【０００８】
本開示の他の側面に係る把持方法は、ワークを把持するハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得することと、画像情報と、ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とに基づいて、ロボットの動作指令を特定する過程における少なくとも一部であるモデルを、収集データに基づいて機械学習により構築することと、画像情報と、ハンド位置情報と、モデルとに基づいて、ロボットの動作指令を演算することと、演算されたロボットの動作指令に基づいて、ロボットを動作させることと、を含む。
【０００９】
本開示の他の側面に係る把持方法は、ワークを把持するハンドの位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得することと、画像情報と、ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報と、収集データに基づいて機械学習により構築された、ロボットの動作指令を特定する過程における少なくとも一部であるモデルとに基づいて、ロボットの動作指令を演算することと、演算されたロボットの動作指令に基づいて、ロボットを動作させることと、を含む。
【００１０】
本開示の他の側面に係るモデルの製造方法は、ワークを把持するハンドの位置及び姿勢の少なくとも一方と連動する視点から撮像された画像情報と、ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とを取得することと、画像情報とハンド位置情報とに基づいてロボットの動作指令を特定する過程における少なくとも一部であるモデルを、画像情報及びハンド位置情報とを含む収集データに基づいて機械学習により構築することと、を含む。
【発明の効果】
【００１１】
本開示によれば、ロボットの把持動作の効率化に有効な把持システム、学習装置、把持方法、及び、モデルの製造方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、把持システムの全体構成の一例を示す模式図である。
【図２】図２は、動作指令装置のハードウェア構成を例示するブロック図である。
【図３】図３は、学習装置のハードウェア構成を例示するブロック図である。
【図４】図４は、動作指令装置の機能的な構成の一例を示すブロック図である。
【図５】図５は、ロボットの把持動作の一例を説明する模式図である。
【図６】図６は、ワークＷの認識結果の一例である。
【図７】図７は、モデルを構成するニューラルネットワークの一例である。
【図８】図８は、学習装置の機能的な構成の一例を示すブロック図である。
【図９】図９は、把持手順のフローチャートの一例である。
【図１０】図１０は、位置モデル学習手順のフローチャートの一例である。
【図１１】図１１は、把持確率モデル学習手順のフローチャートの一例である。
【図１２】図１２は、抽出モデル、指令モデル、及び、把持確率モデルの学習手順のフローチャートの一例である。
【発明を実施するための形態】
【００１３】
以下、実施形態について、図面を参照して詳細に説明する。図面の説明においては、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する場合がある。
【００１４】
［把持システムの構成］
図１は、把持システム１の全体構成の一例を示す模式図である。図１に示される把持システム１は、把持対象であるワークＷを把持する動作をロボット２に実行させることにより、加工、組立等の様々な作業を自動化するシステムである。把持システム１は、ロボット２の把持動作に関する学習を行うとともに、学習結果に基づいてロボット２に把持動作を実行させる。
【００１５】
把持システム１は、ロボット２と、ハンド３と、画像センサ４と、ロボットコントローラ５（ロボット制御部の一例）と、動作指令装置６と、学習装置７とを有する。
【００１６】
ロボット２は、ワークＷを把持するハンド３を支持し、ハンド３の位置及び姿勢の少なくとも一方を変更する。ロボット２は、例えば、多軸（例えば６軸又は７軸）のシリアルリンク型の垂直多関節ロボットであり、その先端部２ａにハンド３を支持した状態で様々な作業を実行できるように構成される。ロボット２は、所定の範囲内において、ハンド３の位置及び姿勢を自在に変更し得るロボットであればよく、必ずしも６軸の垂直多関節ロボットに限られない。例えばロボット２は、６軸に１軸の冗長軸を追加した７軸の垂直多関節ロボットであってもよい。
【００１７】
ハンド３は、ワークＷを把持するエンドエフェクタである。ハンド３の一例は、一対の爪部材３ａの開閉動作によって把持対象を把持するグリッパである。ハンド３は、把持機能を有していればよく、一対の爪部材を有するグリッパに限られない。例えばハンド３は、３本以上の爪部材を有するグリッパであってもよいし、吸着式のエンドエフェクタであってもよい。
【００１８】
ロボット２は、一例として、バケット４０内に配置された複数のワークＷの中から、１つのワークＷを把持する。ワークＷは、種々の形状及び大きさを有する。ワークＷの一例は、ボルト、ナット、電子部品などである。バケット４０内のワークＷは、整列されていない状態（いわゆるバラ積みの状態）である。ワークＷは、把持可能なワークであればよく、数量、形状、大きさ、配列は限定されない。例えば、バケット４０内に配置されたワークＷは、１つであってもよい。バケット４０内に配置された複数のワークＷは、同一形状であってもよいし、形状の異なる複数種類のワークを混載したものでも構わない。バケット４０内のワークＷは、整列されていてもよい。ワークＷは、剛体に限られず、弾性体であってもよい。ワークＷは、バケット４０内に配置されたワークに限られず、作業台などに配置されたワークであってもよい。
【００１９】
画像センサ４は、画像情報を取得する検出器である。画像センサ４は、例えば、カメラ、ＣＣＤ（Charge-Coupled Device）イメージセンサ、ＣＭＯＳ（ComplementaryMOS）イメージセンサなどである。画像センサ４は、画像情報の一例として画素値を取得する。画素値とは、色調や階調などの色情報であり、例えば輝度値である。
【００２０】
画像センサ４は、ハンド３の位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得する。視点とは、画像センサ４の撮像方向の起点となる位置である。ハンド３の位置及び姿勢の少なくとも一方と連動する視点とは、ハンド３の位置及び姿勢の少なくとも一方に応じて視点が変更されることを意味する。一例として、画像センサ４は、ハンド３に固定される。この場合、画像センサ４は、ハンド３の位置及び姿勢の両方と連動する視点から画像情報を取得することになる。画像センサ４は、ロボット２のアーム部２１の先端部２ａに固定されてもよい。画像センサ４は、一例として、ハンド３の先端が画像情報に含まれるように配置されてもよい。
【００２１】
ロボットコントローラ５は、ロボット２の動作指令に基づいて、ロボット２を動作させる。動作指令は、ロボット２を動作させるための情報である。動作指令は、把持動作に関する情報を含む。動作指令は、一例として把持目標位置及び目標姿勢角度である。把持目標位置は、ワークＷが把持されるタイミングにおけるハンド３の最終的な位置である。把持目標位置は、例えばロボット２に設定されたロボット座標系において定義される。ロボット座標系の一例として、ロボット２が配置された配置面に対して垂直な方向がＺ方向、配置面に平行な方向がＸ方向、Ｘ方向及びＺ方向に直交する方向がＹ方向と設定されてもよい。また、例えば、配置面に対してロボット２を固定した点が固定点Ｐとされ、固定点Ｐがロボット座標系の原点に設定されてもよい。把持目標位置は、相対位置で表現されてもよい。ロボットコントローラ５は、ハンド３の位置姿勢を把持目標位置及び目標姿勢角度に一致させるための関節角度目標値（ロボット２の各関節の角度目標値）を算出し、当該関節角度目標値に従ってロボット２を動作させる。なお、動作指令は、把持目標位置でなくてもよい。
【００２２】
動作指令装置６は、上述した動作指令を生成する装置である。動作指令装置６は、画像センサ４により取得された画像情報と、ハンド３の位置及び姿勢の少なくとも一方を表すハンド位置情報と、モデルとに基づいて、ロボット２の動作指令を演算することを実行可能に構成される。
【００２３】
モデルとは、例えば入力に対して出力を生成するプログラムモジュールである。モデルは、一例として、ノードとパラメータによって特定されるニューラルネットワークである。モデルは、収集データに基づいて機械学習により構築される対象であり、ロボット２の動作指令を特定する過程における少なくとも一部に対応する。動作指令を特定する過程は、一例として、画像情報からワークＷを認識する認識過程、画像情報からワークＷに対応する特徴量を抽出する抽出過程、ワークＷに対応する特徴量とハンド３の位置とに基づいて動作指令を出力する指令出力過程、及び、ワークＷに対応する特徴量と動作指令とに基づいて把持確率を算出する把持確率算出過程のうち少なくとも１つを含む。把持確率とは、ワークＷを把持できる確率である。なお、モデルの一例として、ニューラルネットワークを挙げたが、ベイジアンネットワーク（確実な情報の環境下において，ユーザの意志決定を支援する知能システム）を用いてもよいし、あるいは入出力テーブルを用いても構わない。
【００２４】
ロボット２の動作指令を特定する過程における少なくとも一部とは、抽出過程であってもよい。ロボット２の動作指令を特定する過程における少なくとも一部とは、指令出力過程であってもよい。ロボット２の動作指令を特定する過程における少なくとも一部とは、抽出工程と指令出力工程とであってもよい。ロボット２の動作指令を特定する過程における少なくとも一部とは、抽出過程と、指令出力過程と、把持確率算出過程とであってもよい。
【００２５】
収集データとは、学習前に予め収集されたデータであり、把持動作に関するデータである。収集データは、一例として、ロボット２の履歴データや、ワークＷを認識するための学習データである。ロボット２の履歴データは、画像センサ４によって取得された画像情報、動作指令装置６によって画像情報から取得された特徴量、動作指令装置６によって出力される動作指令及び把持確率、ロボットコントローラ５によって出力されるハンド位置情報などを含む。ハンド位置情報とは、ハンド３の位置及び姿勢の少なくとも一方を表す情報である。ハンド位置情報は、ハンド３の位置及び姿勢を導くことができる情報であれば位置座標に限定されず、相対ベクトルであってもよいし、モータトルクであってもよい。
【００２６】
学習装置７は、上述したモデルを構築する装置である。学習装置７は、ワークＷを把持するハンド３の位置及び姿勢の少なくとも一方と連動する視点から撮像された画像情報と、ハンド３の位置及び姿勢の少なくとも一方を表すハンド位置情報とを取得することと、画像情報とハンド位置情報とに基づいてロボット２の動作指令を特定する過程における少なくとも一部であるモデルを、画像情報及びハンド位置情報とを含む収集データに基づいて機械学習により構築することと、を実行可能に構成される。
【００２７】
［動作指令装置のハードウェア構成］
図２は、動作指令装置６のハードウェア構成を例示するブロック図である。図２に示されるように、動作指令装置６は回路６０を有し、回路６０は、一つ又は複数のプロセッサ６１と、記憶部６２と、通信ポート６５と、入出力ポート６６とを有する。記憶部６２は、メモリ６３及びストレージ６４を含む。ストレージ６４は、動作指令装置６の機能部を構成するためのプログラムを記録している。ストレージ６４は、コンピュータ読み取り可能であればどのようなストレージであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ６３は、ストレージ６４からロードしたプログラム及びプロセッサ６１の演算結果等を一時的に記憶する。プロセッサ６１は、メモリ６３と協働してプログラムを実行することで、各機能部を構成する。
【００２８】
通信ポート６５は、プロセッサ６１からの指令に応じ、ロボットコントローラ５、画像センサ４及び学習装置７との間で電気信号の入出力を行う。入出力ポート６６は、プロセッサ６１からの指令に応じ、ユーザインタフェース８０との間で電気信号の入出力を行う。ユーザインタフェース８０は、モニタ８１及び入力デバイス８２を含む。
【００２９】
［学習装置のハードウェア構成］
図３は、学習装置７のハードウェア構成を例示するブロック図である。図３に示されるように、学習装置７は回路７０を有し、回路７０は、一つ又は複数のプロセッサ７１と、記憶部７２と、通信ポート７５と、入出力ポート７６とを有する。記憶部７２は、メモリ７３及びストレージ７４を含む。ストレージ７４は、学習装置７の機能部を構成するためのプログラムを記録している。ストレージ７４は、コンピュータ読み取り可能であればどのようなストレージであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ７３は、ストレージ７４からロードしたプログラム及びプロセッサ７１の演算結果等を一時的に記憶する。プロセッサ７１は、メモリ７３と協働してプログラムを実行することで、各機能部を構成する。
【００３０】
通信ポート７５は、プロセッサ７１からの指令に応じ、動作指令装置６との間で電気信号の入出力を行う。入出力ポート７６は、プロセッサ７１からの指令に応じ、ユーザインタフェース９０との間で電気信号の入出力を行う。ユーザインタフェース９０は、モニタ９１及び入力デバイス９２を含む。
【００３１】
［動作指令装置の機能的構成］
図４は、動作指令装置６の機能的な構成の一例を示すブロック図である。図４に示されるように、動作指令装置６は、演算部６００及びモデル取得部６１０を有する。
【００３２】
演算部６００は、画像情報と、ハンド位置情報と、収集データに基づいて機械学習により構築された、ロボット２の動作指令を特定する過程における少なくとも一部であるモデルとに基づいて、ロボット２の動作指令を演算する。演算部６００は、画像センサ４から画像情報を取得し、ロボットコントローラ５からハンド３のハンド位置情報を取得する。演算部６００は、ロボット２の把持動作中において、動作指令を逐次演算する。
【００３３】
演算部６００による動作指令の逐次演算は、図５を用いて説明される。図５は、ロボット２の把持動作の一例を説明する模式図である。図５の（Ａ）は、把持動作開始時におけるロボット２の位置姿勢を示す図である。図中では、把持動作開始時刻を０としている。図５の（Ｂ）は、時刻ｔ（０＜ｔ＜Ｔ）におけるロボット２の位置姿勢を示す図である。図５の（Ｃ）は、時刻Ｔにおけるロボット２の位置姿勢を示す図である。時刻Ｔにおいて、ロボット２はワークＷを把持した把持状態となる。演算部６００は、時刻ｔにおいて、時刻ｔにおける画像情報に基づいて、ワークＷが把持されるタイミング（時刻Ｔ）におけるハンド３の最終的な位置である把持目標位置を演算する。演算部６００は、時刻ｔごとに画像情報を取得して把持目標位置を演算する。このように、演算部６００は、時刻ｔごとに動作指令を逐次演算して、ロボットコントローラ５へ出力する。
【００３４】
演算部６００は、一例として、位置生成部６０１、決定部６０２、抽出部６０３、出力部６０４、及び、算出部６０５を有する。演算部６００は、位置生成部６０１、決定部６０２、抽出部６０３、出力部６０４、及び、算出部６０５の全てを備える必要はなく、位置生成部６０１、決定部６０２、抽出部６０３、出力部６０４、及び、算出部６０５のうち少なくとも１つを備えればよい。
【００３５】
位置生成部６０１は、画像センサ４により取得された画像情報に基づいて、ワークＷの認識結果を生成する。ワークＷの認識結果は、ワークＷの位置情報を含む。ワークＷの位置情報は、画像情報に基づいて生成される画像内におけるワークＷの位置である。ワークＷの認識結果は、一例としてワークＷの位置及び大きさを含む。ワークＷの位置及び大きさは、バウンディングボックスを用いて表現されてもよい。
【００３６】
図６は、ワークＷの認識結果の一例である。図６に示される画像Ｇ１は、画像センサ４によって取得された画像情報に基づいて生成された画像である。画像Ｇ１には、複数のワーク（例えば第１ワークＷ１、第２ワークＷ２、第３ワークＷ３）が描画されている。画像Ｇ１には、第１ワークＷ１を認識した結果であるバウンディングボックス３５０が表示される。第１ワークＷ１の位置及び大きさは、画像の座標軸においてバウンディングボックス３５０の左隅の座標及び縦横の長さで表現される。なお、図６には、ハンド３の先端である爪部材３ａが画像情報に含まれている。
【００３７】
ワークＷの認識結果は、ワークＷの種別を含んでもよい。ワークＷの認識結果として、予め設定された複数の種別の中から１つの種別が選択される。ワークＷの認識結果は、把持期待度を含んでもよい。把持期待度は、把持のしやすさを示す指標である。位置生成部６０１は、時刻ｔにおける画像情報を入力とし、時刻ｔにおいて画像内に描画される全てのワークＷの認識結果を出力する。つまり、複数のワークＷが画像内に描画されている場合、位置生成部６０１は、画像情報に基づいて複数のワークＷそれぞれの認識結果を生成する。
【００３８】
位置生成部６０１は、位置モデルを用いてワークＷの認識結果を生成してもよい。位置モデルは、ロボット２の動作指令を特定する過程における少なくとも一部である。位置モデルは、画像情報からワークＷを認識する認識過程に対応するモデルである。位置モデルは、画像情報の入力を受けて、ワークＷの認識結果を出力する。位置モデルは、一例として、画像情報の入力を受けて、複数のワークＷの位置情報と、複数のワークＷそれぞれの把持期待値とを出力する。位置モデルは、位置モデル記憶部６１１に格納されている。
【００３９】
位置モデルは、一例として、ニューラルネットワークで構成される。図７は、モデルを構成するニューラルネットワークの一例である。図７に示されるように、位置モデルＭＤ１は、ノード３３０の集合体で構成される。ノード３３０それぞれは、少なくとも１つ以上のノード３３０と接続される。接続されたノード間には、重みが設定される。ノードの集合体は、データの入力を受ける入力層３３１として機能する集合体、重みを用いて演算を実行する中間層３３２として機能する集合体、結果を出力する出力層３３３として機能する集合体を有する。入力層３３１は、入力データの数に応じたノード数を有する。出力層３３３は、出力結果の内容の数に応じたノード数を有する。中間層３３２は、入力層３３１及び出力層３３３の数に応じて適宜設定される。ニューラルネットワークは、複数の中間層３３２を備えてもよい。位置モデルＭＤ１では、入力層３３１は、画像情報の入力を受け、出力層３３３は、ワークＷの認識結果を出力する。
【００４０】
決定部６０２は、把持対象とする１のワークＷを決定する。決定部６０２は、一例として、位置生成部６０１により認識されたワークＷの認識結果に基づいて、把持対象を決定する。より具体的な一例としては、決定部６０２は、位置生成部６０１により認識されたワークＷの把持期待度に基づいて、把持対象を決定する。例えば、決定部６０２は、複数のワークのうち、把持期待度が最も高いワークを把持対象として決定する。
【００４１】
抽出部６０３は、画像センサ４により取得された画像情報と、画像情報に含まれるワークＷの位置情報とに基づいて、ワークＷに対応する特徴量を抽出する。特徴量の抽出対象となるワークＷは、一例として、決定部６０２によって決定された１のワークＷである。抽出部６０３は、一例として、画像センサ４により取得された画像情報と、位置生成部６０１により認識されたワークＷの位置情報とに基づいて、ワークＷに対応する特徴量を抽出する。ワークＷに対応する特徴量とは、ワークＷの画像情報から導出された値である。特徴量は、輪郭、形状、大きさ、色などの人間が認識可能な情報に限定されない。つまり、特徴量は、人間が視覚的に認識する情報と対応付けられている必要はない。特徴量は、例えば時刻ｔにおける画像情報、つまり、時刻ｔにおける視点からみて得られるワークＷの特徴量となる。
【００４２】
抽出部６０３は、視点の相異なる複数の画像情報と、複数の画像情報それぞれに含まれる同一のワークＷの位置情報とに基づいて、ワークＷに対応する特徴量を抽出してもよい。視点の相違なる複数の画像情報とは、第１の視点から撮像された画像情報と、第１の視点とは別の第２の視点から撮像された画像情報とを少なくとも含む、複数の画像情報のことである。第１の視点から撮像された画像情報は、例えば把持動作開始時（図５の（Ａ）；時刻０）に画像センサ４によって取得された画像情報である。第２の視点から撮像された画像情報は、例えば把持動作中（図５の（Ｂ）；時刻ｔ）に画像センサ４によって取得された画像情報である。同一のワークＷとは、第１の視点から撮像された画像情報に基づいて認識されたワークと、第１の視点とは別の第２の視点から撮像された画像情報に基づいて認識されたワークが同一であるという意味である。
【００４３】
抽出部６０３は、抽出モデルを用いて特徴量を抽出してもよい。抽出モデルは、ロボット２の動作指令を特定する過程における少なくとも一部である。抽出モデルは、画像情報からワークＷに対応する特徴量を抽出する抽出過程に対応するモデルである。抽出モデルは、画像情報とワークＷの位置情報との入力を受けて、ワークＷに対応する特徴量を出力する。抽出モデルは、抽出モデル記憶部６１３に格納されている。
【００４４】
抽出モデルは、一例として、ニューラルネットワークで構成される。ニューラルネットワークの構成は、図７の位置モデルＭＤ１と同様に、入力層、中間層、及び、出力層を有する。抽出モデルでは、入力層は、画像情報とワークＷの位置情報との入力を受け、出力層は、ワークＷに対応する特徴量を出力する。
【００４５】
出力部６０４は、画像センサ４により取得された画像情報から抽出されたワークＷの特徴量と、ハンド位置情報とに基づいて、ロボット２の動作指令を出力する。出力部６０４は、一例として、抽出部６０３により抽出されたワークＷの特徴量と、ハンド位置情報とに基づいて、ロボット２の動作指令を出力する。ハンド位置情報は、画像情報が取得された時刻におけるハンド３の位置及び姿勢の少なくとも一方の情報である。例えば、出力部６０４は、時刻ｔの画像情報と時刻ｔのハンド位置情報とを入力として受ける。出力部６０４は、動作指令の一例として、目標把持位置を出力する。
【００４６】
出力部６０４は、指令モデルを用いて動作指令を出力してもよい。指令モデルは、ロボット２の動作指令を特定する過程における少なくとも一部である。指令モデルは、把持対象の特徴量とハンド３の位置とに基づいてロボット２の動作指令を出力する指令出力過程に対応するモデルである。指令モデルは、画像センサ４により取得された画像情報から抽出されたワークＷの特徴量とハンド位置情報との入力を受けて、ロボット２の動作指令を出力する。指令モデルは、指令モデル記憶部６１４に格納されている。
【００４７】
指令モデルは、一例として、ニューラルネットワークで構成される。ニューラルネットワークの構成は、図７の位置モデルＭＤ１と同様に、入力層、中間層、及び、出力層を有する。指令モデルでは、入力層は、画像センサ４により取得された画像情報から抽出されたワークＷの特徴量とハンド位置情報との入力を受け、出力層は、ロボット２の動作指令を出力する。
【００４８】
ハンド３がグリッパである場合、指令モデルは、ワークＷの特徴量及びハンド位置情報に加えてグリッパの開閉度の入力を受けて、動作指令に加えて、グリッパの目標開閉度を出力してもよい。目標開閉度とは、グリッパの爪部材３ａの間隔の目標値である。この場合、出力部６０４は、指令モデルを用いて、ワークＷの特徴量とハンド位置情報と開閉度とに基づいて動作指令と目標開閉度を出力する。ロボットコントローラ５は、目標開閉度に応じてグリッパを動作させる。
【００４９】
算出部６０５は、ロボット２の動作指令と、ワークＷに対応する特徴量とに基づいて、ハンド３で把持できる確率を表す把持確率を算出する。算出部６０５は、一例として、出力部６０４により出力されたロボット２の動作指令と、抽出部６０３により抽出された、ワークＷに対応する特徴量とに基づいて、ハンド３で把持できる確率を表す把持確率を算出する。
【００５０】
算出部６０５は、把持確率算出モデルを用いて把持確率を出力してもよい。把持確率算出モデルは、ロボット２の動作指令を特定する過程における少なくとも一部である。把持確率算出モデルは、ワークＷに対応する特徴量とロボット２の動作指令とに基づいて把持確率を算出する把持確率算出過程に対応するモデルである。把持確率算出モデルは、ワークＷに対応する特徴量とロボット２の動作指令との入力を受けて把持確率を出力する。把持確率算出モデルは、把持確率モデル記憶部６１５に格納されている。
【００５１】
把持確率算出モデルは、一例として、ニューラルネットワークで構成される。ニューラルネットワークの構成は、図７の位置モデルＭＤ１と同様に、入力層、中間層、及び、出力層を有する。把持確率算出モデルでは、入力層は、ワークＷに対応する特徴量とロボット２の動作指令との入力を受け、出力層は、把持確率を出力する。
【００５２】
演算部６００は、ロボット２の動作指令を特定する過程において算出されたデータを履歴データとして履歴記憶部６２０へ出力する。履歴データは、例えば、出力部６０４によりハンド位置情報が取得された時刻、位置生成部６０１により画像センサ４から取得された画像情報、位置生成部６０１により生成されたワークＷの位置、抽出部６０３により抽出されたワークＷの特徴量、出力部６０４により生成された動作指令、算出部６０５によって算出された把持確率、把持成否などを含む。履歴データは、学習装置７が参照することができるように構成されている。
【００５３】
履歴記憶部６２０に記憶された把持確率は、一例として、ロボット２の把持動作をやり直すか否かを判定するために用いられる。例えば、出力部６０４は、把持確率が増加傾向であるか、減少傾向であるかを判定し、減少傾向である場合には、ロボット２の把持動作をやり直す動作指令を出力する。一例として、出力部６０４は、所定時間前のハンド３の位置まで戻るようにロボット２を動作させる動作指令を出力する。これにより、ロボットコントローラ５は、算出部６０５により算出された把持確率に基づいて、ロボット２を動作させてもよい。
【００５４】
把持確率は、ロボットコントローラ５がハンド３をワークＷに近づけるか否かを判定するためのパラメータとして用いられてもよい。例えば、ロボットコントローラ５は、把持確率が予め定められた閾値以上である場合、ロボット２に把持動作をさせ、把持確率が閾値未満である場合、抽出部６０３によるワークＷに対応する特徴量の抽出と、出力部６０４によるロボット２の動作指令の出力とを再度実行させてもよい。一例として、ロボットコントローラ５は、ハンド３の位置をワークＷから離れるように所定距離だけ移動させて、抽出部６０３によるワークＷに対応する特徴量の抽出と、出力部６０４によるロボット２の動作指令の出力とを再度実行させてもよい。あるいは、ロボットコントローラ５は、一例として、学習装置７によって学習されたニューラルネットワークの重みの更新タイミングを経過した後に、抽出部６０３によるワークＷに対応する特徴量の抽出と、出力部６０４によるロボット２の動作指令の出力とを再度実行させてもよい。
【００５５】
モデル取得部６１０は、学習装置７から学習結果を取得する。モデル取得部６１０は、学習結果として、位置モデル、抽出モデル、指令モデル、把持確率算出モデルのネットワーク構成及び重みデータを取得する。モデル取得部６１０は、取得された位置モデルを、位置モデル記憶部６１１へ記憶する。モデル取得部６１０は、取得された抽出モデルを、抽出モデル記憶部６１３へ記憶する。モデル取得部６１０は、取得された指令モデルを、指令モデル記憶部６１４へ記憶する。モデル取得部６１０は、取得された把持確率算出モデルを、把持確率モデル記憶部６１５へ記憶する。
【００５６】
［学習装置の機能的構成］
図８は、学習装置７の機能的な構成の一例を示すブロック図である。図８に示されるように、学習装置７は、取得部７２０及び構築部７００を有する。
【００５７】
取得部７２０は、動作指令装置６の履歴記憶部６２０から履歴データを取得する。一例として、取得部７２０は、ワークＷを把持するハンド３の位置及び姿勢の少なくとも一方と連動する視点から撮像された画像情報と、ハンド３の位置及び姿勢の少なくとも一方を表すハンド位置情報とを含む収集データを取得する。取得部７２０は、履歴データ記憶部７２２に履歴データを収集データとして格納する。
【００５８】
収集データは、動作指令装置６から取得されたデータに限られず、他のデバイスから取得されてもよい。例えば、把持システム１は少なくともロボット２とハンド３と演算部６００とロボットコントローラ５とを１セットとして備える場合、取得部７２０は、この１セットとは異なるセットの動作履歴を収集データとして取得してもよい。つまり、取得部７２０は、把持システム１に含まれる他のセットの動作履歴を収集データとして取得してもよいし、他の把持システムに含まれるセットの動作履歴を収集データとして取得してもよい。
【００５９】
構築部７００は、画像センサ４により取得された画像情報と、ハンドの位置及び姿勢の少なくとも一方を表すハンド位置情報とに基づいてロボット２の動作指令を特定する過程における少なくとも一部であるモデルを、収集データに基づいて機械学習により構築する。
【００６０】
構築部７００は、位置モデル構築部７０１、抽出モデル構築部７０３、指令モデル構築部７０４及び把持確率モデル構築部７０５を有する。構築部７００は、位置モデル構築部７０１、抽出モデル構築部７０３、指令モデル構築部７０４及び把持確率モデル構築部７０５の全てを備える必要はなく、位置モデル構築部７０１、抽出モデル構築部７０３、指令モデル構築部７０４及び把持確率モデル構築部７０５のうち少なくとも１つを備えればよい。
【００６１】
位置モデル構築部７０１は、ワーク学習データに基づいた機械学習により、位置モデルを構築する。ワーク学習データは、ワークＷを認識するための教師データであり、ワーク学習データ記憶部７２１に予め記憶される。ワーク学習データの一例としては、ワークＷの画像の画像情報と、プロファイル（例えば、画像内のワークＷの位置、種別、及び、把持しやすさ）とが関連付けられたデータである。位置モデル構築部７０１は、ワークＷの画像の画像情報からワークＷを認識することができるように、ニューラルネットワークの重みを調整する。位置モデル構築部７０１は、構築された位置モデルを位置モデル記憶部７１１に格納する。位置モデル記憶部７１１は、動作指令装置６が参照することができるように構成されている。位置モデル記憶部７１１は、位置モデル記憶部６１１を更新するために用いられる。
【００６２】
把持確率モデル構築部７０５は、把持確率学習データに基づいた機械学習により、把持確率モデルを構築する。把持確率学習データは、把持確率を算出するための教師データであり、把持確率学習データ記憶部７２３に予め記憶される。把持確率学習データの一例としては、ワークＷの画像の画像情報と、動作指令と、把持成否とが関連付けられたデータである。把持確率モデル構築部７０５は、把持確率の高低が履歴の把持成否に近づくように、ニューラルネットワークの重みを調整する。履歴データ記憶部７２２に学習可能な程度の履歴データが蓄積された場合、把持確率モデル構築部７０５は、履歴データ記憶部７２２に記憶された履歴データに基づいた機械学習により、把持確率モデルをさらに調整する。把持確率モデル構築部７０５が参照する履歴データの一例としては、ワークＷの特徴量、動作指令、及び、把持成否である。把持確率モデル構築部７０５は、ワークＷの特徴量と動作指令とに基づいて、把持確率の高低が履歴の把持成否に近づくように、ニューラルネットワークの重みをさらに調整する。把持確率モデル構築部７０５は、構築された把持確率モデルを把持確率モデル記憶部７１５に格納する。把持確率モデル記憶部７１５は、動作指令装置６が参照することができるように構成されている。把持確率モデル記憶部７１５は、把持確率モデル記憶部６１５を更新するために用いられる。
【００６３】
抽出モデル構築部７０３は、履歴データ記憶部７２２に記憶された履歴データに基づいた機械学習により、抽出モデルを構築する。抽出モデル構築部７０３は、履歴データ記憶部７２２に学習可能な程度の履歴データが蓄積された場合に、抽出モデルを構築する。抽出モデル構築部７０３が参照する履歴データの一例としては、画像情報、ワークＷの位置情報、把持確率である。参照する履歴データは、把持確率に替えて、把持成否を含んでもよい。抽出モデル構築部７０３は、ワークＷの位置情報に基づいて、把持確率が高くなるワークＷの特徴量を画像情報から抽出することができるように、ニューラルネットワークの重みを調整する。抽出モデル構築部７０３は、構築された抽出モデルを抽出モデル記憶部７１３に格納する。抽出モデル記憶部７１３は、動作指令装置６が参照することができるように構成されている。抽出モデル記憶部７１３は、抽出モデル記憶部６１３を更新するために用いられる。
【００６４】
指令モデル構築部７０４は、履歴データ記憶部７２２に記憶された履歴データに基づいた機械学習により、指令モデルを構築する。指令モデル構築部７０４は、履歴データ記憶部７２２に学習可能な程度の履歴データが蓄積された場合に、指令モデルを構築する。指令モデル構築部７０４が参照する履歴データの一例としては、ワークＷの特徴量、ハンド位置情報、動作指令、及び、把持確率である。履歴データは、把持確率に替えて、把持成否を含んでもよい。指令モデル構築部７０４は、ワークＷの特徴量とハンド位置情報とに基づいて把持確率が高くなる動作指令を出力することができるように、ニューラルネットワークの重みを調整する。指令モデル構築部７０４は、構築された指令モデルを指令モデル記憶部７１４に格納する。指令モデル記憶部７１４は、動作指令装置６が参照することができるように構成されている。指令モデル記憶部７１４は、指令モデル記憶部６１４を更新するために用いられる。
【００６５】
把持システム１は、上述したハードウェア構成に限られず、上述したロボットコントローラ５、動作指令装置６及び学習装置７の機能を発揮可能なハードウェア構成であれば何でもよい。例えば、動作指令装置６及び学習装置７は、１つのハードウェアリソースであってもよいし、ロボットコントローラ５と動作指令装置６とが１つのハードウェアリソースであってもよいし、ロボットコントローラ５と学習装置７とが１つのハードウェアリソースであってもよいし、ロボットコントローラ５と動作指令装置６と学習装置７とが１つのハードウェアリソースであってもよい。１つのハードウェアリソースとは、外観上一体的に纏められたリソースである。
【００６６】
動作指令装置６及び学習装置７の内部のハードウェア構成は、上述した機能的構成ごとに分離している必要はない。動作指令装置６及び学習装置７のハードウェア構成は、プログラムの実行により各機能を発揮する構成に限られない。例えば、各機能部の少なくとも一部はその機能に特化した論理回路により構成されていてもよいし、当該論理回路を集積したＡＳＩＣ（Application Specific Integrated Circuit）により構成されていてもよい。
【００６７】
動作指令装置６及び学習装置７のモデルは、１つのニューラルネットワークで構成されていてもよい。１つのニューラルネットワークは、一連の機械学習により構築されてもよい。
【００６８】
（把持手順）
把持方法の一例として、動作指令装置６が実行する把持手順を説明する。図９は、把持手順のフローチャートの一例である。
【００６９】
図９に示されるように、最初に、動作指令装置６は、ステップＳ１０を実行する。ステップＳ１０では、位置生成部６０１が画像センサ４から画像情報を取得する。
【００７０】
次に、動作指令装置６は、ステップＳ１２を実行する。ステップＳ１２では、出力部６０４が、ロボットコントローラ５からハンド位置情報を取得する。
【００７１】
次に、動作指令装置６は、ステップＳ１４を実行する。ステップＳ１４では、位置生成部６０１が、ステップＳ１０で取得された画像情報に基づいて、ワークＷの位置情報を生成する。
【００７２】
次に、動作指令装置６は、ステップＳ１６を実行する。ステップＳ１６では、決定部６０２が、ステップＳ１４で生成されたワークＷの位置情報に基づいて、１のワークＷを決定する。
【００７３】
次に、動作指令装置６は、ステップＳ１８を実行する。ステップＳ１８では、抽出部６０３が、ステップＳ１０で取得された画像情報に基づいて、ステップＳ１６で決定された１のワークＷの特徴量を抽出する。
【００７４】
次に、動作指令装置６は、ステップＳ２０を実行する。ステップＳ２０では、出力部６０４が、ハンド位置情報とステップＳ１８で抽出されたワークＷの特徴量とに基づいて、ロボット２の動作指令を算出する。
【００７５】
次に、動作指令装置６は、ステップＳ２２を実行する。ステップＳ２２では、出力部６０４が、ステップＳ２０で算出された動作指令をロボットコントローラ５へ出力する。
【００７６】
次に、動作指令装置６は、ステップＳ２４を実行する。ステップＳ２４では、算出部６０５が、ステップＳ１８で抽出されたワークＷの特徴量と、ステップＳ２０で算出された動作指令とに基づいて、把持確率を算出する。
【００７７】
次に、動作指令装置６は、ステップＳ２６を実行する。ステップＳ２６では、出力部６０４が、ステップＳ２４で算出された把持確率が減少傾向であるか否かを判定する。
【００７８】
ステップＳ２６において、ステップＳ２４で算出された把持確率が減少傾向であると判定された場合、動作指令装置６は、ステップＳ２８を実行する。ステップＳ２８では、出力部６０４が、所定時間前のハンド３の位置まで戻るように、動作指令を出力する。
【００７９】
ステップＳ２６において、ステップＳ２４で算出された把持確率が減少傾向でないと判定された場合、及び、ステップＳ２８が終了した場合、動作指令装置６は、処理を終了する。
【００８０】
図９において、ステップＳ１０は、ステップＳ１４よりも前のタイミングで実行されればよく、ステップＳ１２とステップＳ１４との間に実行されてもよい。ステップＳ１２は、ステップＳ２０よりも前に前のタイミングであれば、どのタイミングで行ってもよい。ステップＳ２２は、ステップＳ２４の後に実行してもよい。この場合、ステップＳ２６及びステップＳ２８は実施せずに、ステップＳ２４で算出された把持確率が予め定められた閾値以上である場合にステップＳ２２が実行され、把持確率が閾値未満である場合、ステップＳ１４、ステップＳ１６、又は、ステップＳ１８から処理が再度実行されてもよい。
【００８１】
（位置モデル学習手順）
学習方法の一例として、学習装置７が実行する位置モデル学習手順（モデルの製造方法の一例）を説明する。図１０は、位置モデル学習手順のフローチャートの一例である。
【００８２】
図１０に示されるように、最初に、学習装置７は、ステップＳ３０を実行する。ステップＳ３０では、位置モデル構築部７０１がワーク学習データ記憶部７２１からワーク学習データを読み込む。
【００８３】
次に、学習装置７は、ステップＳ３２を実行する。ステップＳ３２では、位置モデル構築部７０１が位置モデルを構築する。位置モデル構築部７０１は、ワークＷの画像の画像情報からワークＷを認識することができるように、ニューラルネットワークの重みを調整する。位置モデル構築部７０１は、学習結果を位置モデル記憶部７１１に格納する。
【００８４】
ステップＳ３２が終了した場合、学習装置７は、処理を終了する。
【００８５】
（把持確率モデル学習手順）
学習方法の一例として、学習装置７が実行する把持確率モデル学習手順（モデルの製造方法の一例）を説明する。図１１は、把持確率モデル学習手順のフローチャートの一例である。
【００８６】
図１１に示されるように、最初に、学習装置７は、ステップＳ４０を実行する。ステップＳ４０では、把持確率モデル構築部７０５が把持確率学習データ記憶部７２３から把持確率学習データを読み込む。把持確率学習データの一例は、画像情報、動作指令、及び、把持成否である。
【００８７】
次に、学習装置７は、ステップＳ４２を実行する。ステップＳ４２では、把持確率モデル構築部７０５が把持確率モデルを構築する。把持確率モデル構築部７０５は、画像情報、動作指令、及び、把持成否に基づいて、把持確率の高低が履歴の把持成否に近づくように、ニューラルネットワークの重みを調整する。把持確率モデル構築部７０５は、学習結果を把持確率モデル記憶部７１５に格納する。
【００８８】
ステップＳ４２が終了した場合、学習装置７は、処理を終了する。
【００８９】
（抽出モデル、指令モデル、把持確率モデルの学習手順）
学習方法の一例として、学習装置７が実行する抽出モデル、指令モデル、把持確率モデルの学習手順（モデルの製造方法の一例）を説明する。図１２は、抽出モデル、指令モデル、把持確率モデルの学習手順のフローチャートの一例である。
【００９０】
図１２に示されるように、最初に、学習装置７は、ステップＳ５０を実行する。ステップＳ５０では、抽出モデル構築部７０３、指令モデル構築部７０４、及び、把持確率モデル構築部７０５それぞれが、履歴データ記憶部７２２に学習可能な程度の履歴データ（所定量のデータ）が蓄積されているか否かを判定する。抽出モデル構築部７０３、指令モデル構築部７０４、及び、把持確率モデル構築部７０５が一体として学習する場合には、一例として抽出モデル構築部７０３が履歴データ記憶部７２２に学習可能な程度の履歴データ（所定量のデータ）が蓄積されているか否かを判定する。
【００９１】
ステップＳ５０において、履歴データ記憶部７２２に学習可能な程度の履歴データ（所定量のデータ）が蓄積されていると判定された場合、学習装置７は、ステップＳ５２を実行する。ステップＳ５２では、抽出モデル構築部７０３、指令モデル構築部７０４、及び、把持確率モデル構築部７０５それぞれが履歴データを読み込む。例えば、抽出モデル構築部７０３は、履歴データであるワークＷの位置情報、画像情報、把持確率を読み込む。例えば、指令モデル構築部７０４は、ワークＷの特徴量、ハンド位置情報、把持確率の履歴データを読み込む。把持確率モデル構築部７０５は、ワークＷの特徴量、動作指令、把持成否を読み込む。
【００９２】
次に、学習装置７は、ステップＳ５４を実行する。ステップＳ５４では、抽出モデル構築部７０３が抽出モデルを構築する。抽出モデル構築部７０３は、画像情報、ワークの位置情報、及び、把持確率に基づいて、把持確率が高くなるワークＷの特徴量を画像情報から抽出することができるように、ニューラルネットワークの重みを調整する。抽出モデル構築部７０３は、学習結果を抽出モデル記憶部７１３に格納する。
【００９３】
次に、学習装置７は、ステップＳ５６を実行する。ステップＳ５６では、指令モデル構築部７０４が指令モデルを構築する。指令モデル構築部７０４は、ワークの特徴量、ハンド位置情報、及び、把持確率に基づいて、把持確率が高くなる動作指令を出力することができるように、ニューラルネットワークの重みを調整する。指令モデル構築部７０４は、学習結果を指令モデル記憶部７１４に格納する。
【００９４】
次に、学習装置７は、ステップＳ５８を実行する。ステップＳ５８では、把持確率モデル構築部７０５が把持確率モデルを構築する。把持確率モデル構築部７０５は、ワークＷの特徴量と動作指令とに基づいて、把持確率の高低が履歴の把持成否に近づくように、ニューラルネットワークの重みをさらに調整する。把持確率モデル構築部７０５は、構築された把持確率モデルを把持確率モデル記憶部７１５に格納する。
【００９５】
ステップＳ５０において、履歴データ記憶部７２２に学習可能な程度の履歴データ（所定量のデータ）が蓄積されていないと判定された場合、又は、ステップＳ５８が終了した場合、学習装置７は、処理を終了する。
【００９６】
上述したステップＳ５２〜Ｓ５８では、抽出モデル構築部７０３、指令モデル構築部７０４、及び、把持確率モデル構築部７０５が一体として学習してもよい。この場合、一例として抽出モデル構築部７０３が、ワークＷの位置情報、画像情報、ハンド位置情報、把持確率、把持成否を読み込む。そして、抽出モデル構築部７０３、指令モデル構築部７０４、及び、把持確率モデル構築部７０５を１つのニューラルネットワークとして一連の機会学習によって、学習される。このように、抽出モデル、指令モデル、及び、把持確率モデルを組み合わせて学習してもよい。
【００９７】
［実施形態の効果］
以上に説明したように、把持システム１は、ワークＷを把持するハンド３と、ハンド３を支持し、ハンド３の位置及び姿勢の少なくとも一方を変更するロボット２と、ハンド３の位置及び姿勢の少なくとも一方と連動する視点から画像情報を取得する画像センサ４と、画像センサ４により取得された画像情報と、ハンド３の位置及び姿勢の少なくとも一方を表すハンド位置情報とに基づいてロボット２の動作指令を特定する過程における少なくとも一部であるモデルを、収集データに基づいて機械学習により構築する構築部７００と、画像情報と、ハンド位置情報と、モデルとに基づいて、ロボット２の動作指令を演算する演算部６００と、演算部６００により演算されたロボット２の動作指令に基づいて、ロボット２を動作させるロボットコントローラ５と、を備える。
【００９８】
構築部７００による機械学習によって、ハンド３と連動する視点とした画像情報及びハンド３の位置に基づいてモデルが構築され、モデルから動作指令が出力される。ハンド３の位置及び姿勢の少なくとも一方と連動する視点とした画像情報に基づいた機械学習により、動作指令を得ているため、距離センサ及び３ＤＣＡＤモデルを備える必要がなく、距離センサの検出結果と３ＤＣＡＤモデルとの照合処理が不要になる。また、機械学習を行うことで、作業員による教示が不要になる。このため、この把持システム１は、ロボットの把持動作の効率化に有効である。
【００９９】
演算部６００は、画像情報と、画像情報に含まれるワークＷの位置情報とに基づいて、ワークＷに対応する特徴量を抽出する抽出部６０３と、抽出部６０３により抽出された特徴量と、ハンド位置情報とに基づいて、ロボット２の動作指令を出力する出力部６０４と、を有してもよい。この場合、抽出部６０３により、画像情報とワークＷの位置情報とから特徴量を抽出でき、その抽出量とハンド位置情報とから、ロボット２の動作指令を出力できるため、学習効率がよくなり、把持の成功確率も向上する。
【０１００】
抽出部６０３は、視点の相異なる複数の画像情報と、複数の画像情報それぞれに含まれる同一のワークＷの位置情報とに基づいて、ワークＷに対応する特徴量を抽出してもよい。この場合、視点が異なる画像に含まれるワークＷの位置を使用することで、より正確に特徴量を抽出でき、ひいては、より正確な動作指令を出力できる。
【０１０１】
構築部７００は、画像情報と位置情報との入力を受けて、特徴量を出力する抽出モデルを、収集データに基づいて機械学習により構築する抽出モデル構築部７０３と、特徴量とハンド位置情報との入力を受けて、動作指令を出力する指令モデルを、収集データに基づいて機械学習により構築する指令モデル構築部７０４と、を有し、抽出部６０３は、抽出モデルを用いて特徴量を抽出し、出力部６０４は、指令モデルを用いて動作指令を出力してもよい。この場合、把持対象の特徴量の抽出と、把持対象を把持する動作の決定を自動で行うことができる。特に、この２つのモデルの組み合わせによれば、動作指令の精度が向上する。
【０１０２】
ハンド３は、グリッパであり、指令モデル構築部７０４は、特徴量及びハンド位置情報に加えてグリッパの開閉度の入力を受けて、動作指令に加えて、グリッパの目標開閉度を出力する指令モデルを構築し、出力部６０４は、指令モデルを用いて、特徴量とハンド位置情報と開閉度とに基づいて動作指令と目標開閉度を出力し、ロボットコントローラ５は、目標開閉度に応じてグリッパを動作させてもよい。この場合、把持対象に対して適切なグリッパの開閉度を出力することができる。
【０１０３】
画像センサ４は、ハンド３の先端が画像情報に含まれるように配置されてもよい。この場合、ハンド３の先端形状を画像情報から認識して、機械学習することができる。このため、把持精度を更に向上させることができる。特に、ハンド３がグリッパの場合、グリッパの開閉の正確性も向上する。
【０１０４】
演算部６００は、ロボット２の動作指令と、ワークＷに対応する特徴量とに基づいて、ハンドで把持できる確率を表す把持確率を算出する算出部を更に有し、ロボットコントローラ５は、算出部６０５により算出された把持確率に基づいて、ロボット２を動作させてもよい。この場合、把持確率に応じてロボットを動作させることができる。この際、特徴量を使用することで、把持確率の精度を向上させることができる。
【０１０５】
構築部７００は、収集データに基づいて機械学習により、ロボット２の動作指令と、ワークＷに対応する特徴量との入力を受けて、把持確率を出力する把持確率モデルを構築する把持確率モデル構築部７０５を更に有し、算出部６０５は、把持確率モデルを用いて把持確率を算出してもよい。この場合、決定された動作による把持確率を機械学習により自動で取得することができる。
【０１０６】
ロボットコントローラ５は、把持確率が予め定められた閾値以上である場合、ロボット２に把持動作をさせ、把持確率が閾値未満である場合、抽出部によるワークに対応する特徴量の抽出と、出力部６０４によるロボットの動作指令の出力とを再度実行させてもよい。この場合、把持失敗の確率を低減できる。
【０１０７】
演算部６００は、画像センサ４により取得された画像情報に基づいて、複数のワークＷの位置情報と、複数のワークそれぞれの把持期待度とを生成する位置生成部６０１と、把持期待度に基づいて、把持対象とする１のワークを決定する決定部６０２と、を更に有し、抽出部６０３は、画像情報と１のワークの位置情報とに基づいて、当該１のワークに対応する特徴量を抽出してもよい。把持期待度を用いることで、把持しやすさを考慮して把持対象を決定することができる。結果として、把持の成功確率を向上させることができる。
【０１０８】
構築部７００は、収集データに基づいて機械学習により、画像情報の入力を受けて、複数のワークの位置情報と、複数のワークそれぞれの把持期待値とを出力する位置モデルを構築する位置モデル構築部７０１を更に有し、位置生成部６０１は、位置モデルを用いて位置情報と把持期待値とを生成してもよい。この場合、各ワークの把持期待値を機械学習により自動で取得することができる。
【０１０９】
少なくともロボット２とハンド３と演算部６００とロボットコントローラ５とを１セットとして備え、構築部は、収集データとして、１セットとは異なるセットの動作履歴を収集したデータに基づいて、モデルを機械学習により構築し、１セットの演算部６００は、モデルに基づいて、１セットのロボット２の動作指令を演算してもよい。この場合、他のロボットから得られる学習結果を流用できるため、学習結果の可搬性を高めることができる。
【０１１０】
以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
【符号の説明】
【０１１１】
１…把持システム、Ｗ…ワーク、２…ロボット、３…ハンド、４…画像センサ、５…ロボットコントローラ、６…動作指令装置、７…学習装置、６００…演算部、６１０…モデル取得部、６０１…位置生成部、６０２…決定部、６０３…抽出部、６０４…出力部、６０５…算出部、７００…構築部、７０１…位置モデル構築部、７０３…抽出モデル構築部、７０４…指令モデル構築部、７０５…把持確率モデル構築部。
【図１】
2019093461.tif 000003
【図２】
2019093461.tif 000004
【図３】
2019093461.tif 000005
【図４】
2019093461.tif 000006
【図５】
2019093461.tif 000007
【図６】
2019093461.tif 000008
【図７】
2019093461.tif 000009
【図８】
2019093461.tif 000010
【図９】
2019093461.tif 000011
【図１０】
2019093461.tif 000012
【図１１】
2019093461.tif 000013
【図１２】
2019093461.tif 000014