(57)【要約】      （修正有）【課題】ロボットが操作者の期待通りに動作するように調整できるロボット制御装置を提案する。【解決手段】ロボット制御装置は、複数種類の物体の中からロボット２０が操作する対象となる特定種類の物体７０を指定する情報の入力と、指定された特定種類の物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定する情報の入力とを受け付ける。ロボット制御装置は、複数種類の物体とその周辺の環境を撮影して得られる画像情報から特定種類の物体７０を抽出して物体７０の位置及び姿勢を示す情報を生成する。ロボット制御装置は、物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるための動作指令を学習モジュールの学習結果から生成してロボット２０に出力する。【選択図】図５
2020075337.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の物体の中からロボットが操作する対象となる特定種類の物体を指定する情報の入力と、前記指定された特定種類の物体と前記ロボットの手先との間の目標とする相対的位置関係を指定する情報の入力とを受け付ける入力部と、
前記複数種類の物体とその周辺の環境を撮影する撮影装置と、
前記撮影装置による撮影により得られた画像情報から、前記指定された特定種類の物体を抽出して前記特定種類の物体の位置及び姿勢を示す情報を生成する抽出部と、
前記ロボットの位置及び姿勢を検出する検出装置と、
前記指定された特定種類の物体と前記手先との間の相対的位置関係を前記目標とする相対的位置関係に一致させるための前記ロボットの動作の機械学習がなされた学習済みモデル又は前記学習済モデルと入出力関係が同等のモデルを含む学習モジュールと、
前記抽出部により生成された前記特定種類の物体の位置及び姿勢を示す情報と、前記検出装置により検出された前記ロボットの位置及び姿勢を示す情報とから定まる前記物体と前記手先との間の相対的位置関係を前記目標とする相対的位置関係に一致させるための前記ロボットの動作を指示する動作指令を前記学習モジュールの学習結果から生成して前記ロボットに出力する出力部と、
を備えるロボット制御装置。
【請求項２】
請求項１に記載のロボット制御装置であって、
前記物体と前記手先との間の目標とする相対的位置関係は、前記ロボット及び前記物体のそれぞれの位置及び姿勢に関わらず一定である、ロボット制御装置。
【請求項３】
請求項１又は２に記載のロボット制御装置であって、
前記物体と前記手先との間の目標とする相対的位置関係は、操作者の指定により変更可能である、ロボット制御装置。
【請求項４】
請求項１乃至３のうち何れか１項に記載のロボット制御装置であって、
前記入力部は、前記物体と前記手先との間の目標とする相対的位置関係を指定するためのグラフィカルユーザインタフェースを備える、ロボット制御装置。
【請求項５】
請求項１乃至４のうち何れか１項に記載のロボット制御装置であって、
前記特定種類の物体を指定する情報は前記抽出部に入力される、ロボット制御装置。
【請求項６】
コンピュータシステムが、
複数種類の物体の中からロボットが操作する対象となる特定種類の物体を指定する情報の入力を受け付けるステップと、
前記指定された特定種類の物体と前記ロボットの手先との間の目標とする相対的位置関係を指定する情報の入力を受け付けるステップと、
前記複数種類の物体とその周辺の環境を撮影するステップと、
前記撮影により得られた画像情報から、前記指定された特定種類の物体を抽出して前記特定種類の物体の位置及び姿勢を示す情報を生成するステップと、
前記ロボットの位置及び姿勢を検出するステップと、
前記指定された特定種類の物体と前記手先との間の相対的位置関係を前記目標とする相対的位置関係に一致させるための前記ロボットの動作の機械学習がなされた学習済みモデル又は前記学習済モデルと入出力関係が同等のモデルを含む学習モジュールを準備するステップと、
前記特定種類の物体の位置及び姿勢を示す情報と、前記ロボットの位置及び姿勢を示す情報とから定まる前記物体と前記手先との間の相対的位置関係を前記目標とする相対的位置関係に一致させるための前記ロボットの動作を指示する動作指令を前記学習モジュールの学習結果から生成して前記ロボットに出力するステップと、
を実行するロボット制御方法。
【請求項７】
コンピュータシステムに、
複数種類の物体の中からロボットが操作する対象となる特定種類の物体を指定する情報の入力を受け付けるステップと、
前記指定された特定種類の物体と前記ロボットの手先との間の目標とする相対的位置関係を指定する情報の入力を受け付けるステップと、
前記複数種類の物体とその周辺の環境を撮影するステップと、
前記撮影により得られた画像情報から、前記指定された特定種類の物体を抽出して前記特定種類の物体の位置及び姿勢を示す情報を生成するステップと、
前記ロボットの位置及び姿勢を検出するステップと、
前記指定された特定種類の物体と前記手先との間の相対的位置関係を前記目標とする相対的位置関係に一致させるための前記ロボットの動作の機械学習がなされた学習済みモデル又は前記学習済モデルと入出力関係が同等のモデルを含む学習モジュールを準備するステップと、
前記特定種類の物体の位置及び姿勢を示す情報と、前記ロボットの位置及び姿勢を示す情報とから定まる前記物体と前記手先との間の相対的位置関係を前記目標とする相対的位置関係に一致させるための前記ロボットの動作を指示する動作指令を前記学習モジュールの学習結果から生成して前記ロボットに出力するステップと、
を実行させるロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボット制御装置、ロボット制御方法、及びロボット制御プログラムに関わる。
【背景技術】
【０００２】
近年、機械学習に関する研究が幅広く行われている。特に、ニューラルネットワークを用いた深層学習と呼ばれる技術の発展により、人の認識能力と同等又はそれ以上の性能を示す学習モジュールが利用可能となってきている。このような背景の下、機械学習のアルゴリズムをロボットの動作指令の生成に適用する研究が行われている。例えば、非特許文献１は、ロボットが物体を把持するための機械学習を提案している。この機械学習は、学習モジュールに入力される情報として、把持対象となる物体を撮像するカメラから取得される画像データと、ロボットを駆動するモータの指令値の候補データとを用い、把持対象となる物体の把持確率が最も高くなるモータへの指令値を出力するように学習を行うものである。このように、従来の機械学習では、例えば、把持対象となる物体をロボットが操作者の期待通りに把持するように仕向けられた多数の画像データを用いて学習が行われる。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】Sergey Levine et al.,"Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection", ISER 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような従来の機械学習では、一旦、学習を終えた後に、ロボットの動作を微調整するには、ロボットが操作者の期待通りに微調整された動作をするように仕向けられた多数の画像データを用いて再学習する必要があった。このような微調整は、例えば、操作者の意図しないロボットの誤作動を低減したい場合や、或いは、操作者の事後的な都合により、ロボットの動作を変更したい（例えば、ロボットが物体を把持する位置を変更したい）場合などに必要となることがある。このため、一旦、学習を終えた後に、再学習することなく、ロボットが操作者の期待通りに動作するように人為的に調整するのは困難であった。
【０００５】
そこで、本発明は、このような問題を解決し、ロボットが操作者の期待通りに動作するように調整できるロボット制御装置、ロボット制御方法、及びロボット制御プログラムを提案することを課題とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明に関わるロボット制御装置は、複数種類の物体の中からロボットが操作する対象となる特定種類の物体を指定する情報の入力と、指定された特定種類の物体とロボットの手先との間の目標とする相対的位置関係を指定する情報の入力とを受け付ける入力部と、複数種類の物体とその周辺の環境を撮影する撮影装置と、撮影装置による撮影により得られた画像情報から、指定された特定種類の物体を抽出して特定種類の物体の位置及び姿勢を示す情報を生成する抽出部と、ロボットの位置及び姿勢を検出する検出装置と、指定された特定種類の物体と手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボットの動作の機械学習がなされた学習済みモデル又は学習済モデルと入出力関係が同等のモデルを含む学習モジュールと、抽出部により生成された特定種類の物体の位置及び姿勢を示す情報と、検出装置により検出されたロボットの位置及び姿勢を示す情報とから定まる物体と手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボットの動作を指示する動作指令を学習モジュールの学習結果から生成してロボットに出力する出力部とを備える。
【０００７】
このように、ロボットが操作する物体とロボットの手先との間の目標とする相対的位置関係を指定する情報を入力として、両者の相対的位置関係を、その目標とする相対的位置関係に一致させるためのロボットの動作の機械学習がなされた学習モジュールを用いることにより、学習モジュールを再学習させることなく、ロボットが操作者の期待通りに動作するように調整することができる。
【０００８】
物体と手先との間の目標とする相対的位置関係は、ロボット及び物体のそれぞれの位置及び姿勢に関わらず一定でもよい。これにより、一定の物理量の操作に関わる動作をロボットに実行させることができる。
【０００９】
物体と手先との間の目標とする相対的位置関係は、操作者の指定により変更可能でもよい。これにより、学習モジュールを再学習させることなく、ロボットが操作者の期待通りに動作するように調整することができる。
【００１０】
入力部は、物体と手先との間の目標とする相対的位置関係を指定するためのグラフィカルユーザインタフェースを備えてもよい。操作者は、グラフィカルユーザインタフェースを通じて、物体と手先との間の目標とする相対的位置関係を直感的に指定することができる。
【００１１】
特定種類の物体を指定する情報は、抽出部に入力されてもよい。これにより、抽出部は、複数種類の物体の中からロボットが操作する対象として指定された特定種類の物体を、撮影装置の撮影により得られた画像情報から抽出することができる。
【００１２】
本発明に関わるロボット制御方法は、コンピュータシステムが、複数種類の物体の中からロボットが操作する対象となる特定種類の物体を指定する情報の入力を受け付けるステップと、指定された特定種類の物体とロボットの手先との間の目標とする相対的位置関係を指定する情報の入力を受け付けるステップと、複数種類の物体とその周辺の環境を撮影するステップと、撮影により得られた画像情報から、指定された特定種類の物体を抽出して特定種類の物体の位置及び姿勢を示す情報を生成するステップと、ロボットの位置及び姿勢を検出するステップと、指定された特定種類の物体と手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボットの動作の機械学習がなされた学習済みモデル又は学習済モデルと入出力関係が同等のモデルを含む学習モジュールを準備するステップと、特定種類の物体の位置及び姿勢を示す情報と、ロボットの位置及び姿勢を示す情報とから定まる物体と手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボットの動作を指示する動作指令を学習モジュールの学習結果から生成してロボットに出力するステップと、を実行する。
【００１３】
このように、ロボットが操作する物体とロボットの手先との間の目標とする相対的位置関係を指定する情報を入力として、両者の相対的位置関係を、その目標とする相対的位置関係に一致させるためのロボットの動作の機械学習がなされた学習モジュールを用いることにより、学習モジュールを再学習させることなく、ロボットが操作者の期待通りに動作するように調整することができる。
【００１４】
本発明に関わるロボット制御プログラムは、コンピュータシステムに、複数種類の物体の中からロボットが操作する対象となる特定種類の物体を指定する情報の入力を受け付けるステップと、指定された特定種類の物体とロボットの手先との間の目標とする相対的位置関係を指定する情報の入力を受け付けるステップと、複数種類の物体とその周辺の環境を撮影するステップと、撮影により得られた画像情報から、指定された特定種類の物体を抽出して特定種類の物体の位置及び姿勢を示す情報を生成するステップと、ロボットの位置及び姿勢を検出するステップと、指定された特定種類の物体と手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボットの動作の機械学習がなされた学習済みモデル又は学習済モデルと入出力関係が同等のモデルを含む学習モジュールを準備するステップと、特定種類の物体の位置及び姿勢を示す情報と、ロボットの位置及び姿勢を示す情報とから定まる物体と手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボットの動作を指示する動作指令を学習モジュールの学習結果から生成してロボットに出力するステップと、を実行させる。
【００１５】
このように、ロボットが操作する物体とロボットの手先との間の目標とする相対的位置関係を指定する情報を入力として、両者の相対的位置関係を、その目標とする相対的位置関係に一致させるためのロボットの動作の機械学習がなされた学習モジュールを用いることにより、学習モジュールを再学習させることなく、ロボットが操作者の期待通りに動作するように調整することができる。
【発明の効果】
【００１６】
本発明によれば、ロボットが操作者の期待通りに動作するように調整することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態に関わる学習モジュールを用いたロボットの動作制御の説明図である。
【図２】本実施形態に関わるロボット制御装置及びロボットの構成を示す説明図である。
【図３】本実施形態に関わるロボット制御装置のハードウェア構成の一例を示す説明図である。
【図４】本実施形態に関わるロボット制御装置の機能の一例を示すブロック図である。
【図５】本実施形態に関わるグラフィカルユーザインタフェースの一例を示す説明図である。
【図６】本実施形態に関わるロボット制御方法の処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の一側面に関わる実施形態を図面に基づいて説明する。本発明の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更又は改良され得るととともに、本発明には、その等価物も含まれる。なお、同一符号は、同一の構成要素を示すものとし、重複する説明は省略する。
【００１９】
［適用例］
まず、図１を参照しながら、本発明の適用例について説明する。
本実施形態は、学習モジュール１０３を用いてロボット２０の動作を制御する。ロボット２０の具体例として、垂直多関節ロボット、水平多関節ロボット、直交ロボット、又はパラレルリンクロボットなどを挙げることができる。ロボット２０は、自律的に動作するマニピュレータとして動作し、例えば、部品の組み立て、搬送、塗装、検査、研磨、又は洗浄などの何れかの用途に用いることができる。ロボット２０の動作の例として、ロボット２０が物体７０を操作（例えば、把持、吸着、移動、又は姿勢制御など）するための動作を挙げることができる。ロボット２０が操作する対象となる物体７０の一例として、仕掛け品又は部品などのワークを挙げることができる。また、ロボット２０の動作の一例として、バラ積みされている複数種類の物体の中から特定種類の物体をピッキングするための把持動作を挙げることができる。
【００２０】
まず、学習モジュール１０３の学習方法の概要について説明する。ここでは、バラ積みされている、外観特徴（例えば、形状、大きさ、又は色などの組み合わせ）の異なる複数種類の物体の中から特定種類の物体７０をピッキングするための把持動作の機械学習を例にとって説明する。
【００２１】
抽出部１０２は、複数種類の物体の中からロボット２０が操作する対象となる特定種類の物体７０を指定する情報２０１を入力するとともに、複数種類の物体及びその周辺の環境を撮影して得られる画像情報５０１を入力し、複数種類の物体の中から指定された特定種類の物体７０を抽出して特定種類の物体７０の位置及び姿勢を示す情報３０１を出力する。抽出部１０２は、抽出エンジン１０２Ａ，１０２Ｂを備えている。抽出エンジン１０２Ａは、各種類の物体の外観特徴を画像認識により識別する機能を備えており、特定種類の物体７０を指定する情報２０１に基づいて、画像情報５０１から特定種類の物体７０の画像情報３０１Ａを抽出する。物体の外観特徴を識別する機能として、例えば、モデルベーストマッチングと呼ばれるアルゴリズムを用いることができる。抽出エンジン１０２Ｂは、画像情報５０１から特定種類の物体７０の周囲の環境の画像情報３０１Ｂを抽出する。画像情報３０１Ａ，３０１Ｂから画像解析を通じて特定種類の物体７０の位置及び姿勢を求めることができる。画像情報３０１Ａ，３０１Ｂを含む情報３０１は、特定種類の物体７０の位置及び姿勢を示す。なお、抽出エンジン１０２Ａ，１０２Ｂは、例えば、後述するロボット制御プログラムに含まれるソフトウェアモジュールである。
【００２２】
学習モジュール１０３には、情報２０１により指定された物体７０の位置及び姿勢を示す情報３０１と、情報２０１により指定された物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定する情報２０２と、ロボット２０の位置及び姿勢を示す情報３０２とが入力される。物体７０とロボット２０の手先との間の相対的位置関係は、例えば、ロボット２０の手先から見た物体７０の相対的な位置座標情報（例えば、ＸＹＺ座標系におけるＸ座標、Ｙ座標、及びＺ座標）及び姿勢情報（例えば、ロール角α、ピッチ角β、及びヨー角γ）を用いて特定することができる。情報３０２は、ロボット２０の各関節の角度を検出する検出装置（例えば、エンコーダ）から出力される情報である。
【００２３】
物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定する情報２０２が入力されると、ロボット２０及び物体７０のそれぞれの現在の位置及び姿勢を基に、目標とする相対的位置関係を実現するロボット２０の姿勢（各関節のジョイント角）の候補が逆運動学により決定される。目標とする相対的位置関係を実現するロボット２０の姿勢の候補が複数存在する場合には、評価関数の評価値を基に何れかの候補を選択してもよい。このような評価関数として、例えば、ロボット２０の移動経路の長さに応じて変化する評価値を出力する評価関数を用いてもよい。このようにして、物体７０とロボット２０の手先との間の目標とする相対的位置関係を実現するロボット２０の姿勢が決定されると、その決定された姿勢をロボット２０にとらせるための動作指令４０１が決定される。動作指令４０１は、例えば、ロボット２０の各関節を駆動するモータに与えられる指令信号である。学習モジュール１０３は、情報２０１，２０２，３０１，３０２と、動作指令４０１との組み合わせを教師あり学習する。
【００２４】
ここで、ロボット２０の手先が物体７０を把持する動作の学習について補足する。図１は、ロボット２０の手先が物体７０を把持する部分として、３つの異なる部分７１，７２，７３を把持する動作を学習する例を示している。例えば、ロボット２０の手先が物体７０の部分７１を把持する動作を行うように学習させるには、情報２０１として、複数種類の物体の中から操作対象となる特定種類の物体７０を指定する情報を用い、情報２０２として、物体７０の部分７１とロボットの手先との間の目標とする相対的位置関係を指定する情報を用いる。同様に、ロボット２０の手先が物体７０の部分７２を把持する動作を行うように学習させるには、情報２０１として、複数種類の物体の中から操作対象となる特定種類の物体７０を指定する情報を用い、情報２０２として、物体７０の部分７２とロボット２０の手先との間の目標とする相対的位置関係を指定する情報を用いる。また、同様に、ロボット２０の手先が物体７０の部分７３を把持する動作を行うように学習させるには、情報２０１として、複数種類の物体の中から操作対象となる特定種類の物体７０を指定する情報を用い、情報２０２として、物体７０の部分７３とロボット２０の手先との間の目標とする相対的位置関係を指定する情報を用いる。ロボット２０の手先と物体７０との間の相対的な位置関係は、それぞれの部分７１，７２，７３毎に異なる。このようにして、それぞれの部分７１，７２，７３について、学習モジュール１０３は、情報２０１，２０２，３０１，３０２と、動作指令４０１との組み合わせを教師あり学習する。
【００２５】
説明の便宜上、図１に示す例では、物体７０の３つの異なる部分を把持する動作を学習する例を示しているが、物体７０の細分化された多数の微小な部分のそれぞれを把持する動作を学習してもよい。また、学習段階では、ロボット２０の位置及び姿勢を示すパラメータ値と物体７０の位置及び姿勢を示すパラメータ値とをそれぞれランダムな値に変更しながら、ロボット２０及び物体７０がそれぞれ取り得る全ての位置及び姿勢について学習モジュール１０３の機械学習を行ってもよい。なお、複数種類の物体のうち物体７０以外の各物体についても、上述の方法により、学習モジュール１０３の機械学習が行われる。
【００２６】
このようにして機械学習が行われると、情報２０１，２０２，３０１，３０２の組み合わせに応じて定まる動作指令４０１が学習モジュール１０３の学習結果から生成されてロボット２０に出力される。例えば、情報２０１として、複数種類の物体の中から操作対象となる特定種類の物体７０を指定する情報が用いられ、情報２０２として、物体７０の部分７１とロボットの手先との間の目標とする相対的位置関係を指定する情報が用いられる場合、複数種類の物体の中から何れかの物体７０を選択し、選択した物体７０の部分７１をロボットに把持させるための動作指令４０１がロボットに出力される。ロボット２０は、動作指令４０１に応答して、複数種類の物体の中から何れかの物体７０を選択し、選択した物体７０の部分７１を把持する。
【００２７】
このようなロボット２０の動作制御においては、操作者の事後的な都合により、ロボット２０の動作を変更したい場合が生じ得る。例えば、物体７０の部分のうち、部分７１はキズがつき易いのに対して、部分７３はキズが付き難い場合には、物体７０の部分７３とロボット２０の手先との間の目標とする相対的位置関係を指定する情報を情報２０２として学習モジュール１０３に入力することにより、ロボットが物体７０を把持する部分を部分７１から部分７３に変更することができる。
【００２８】
また、機械学習により、ロボット２０が物体７０の部分７２を把持するように学習させたにも関わらず、誤差などの影響により、ロボットが部分７２から僅かにずれた箇所にある部分７２Ａを把持してしまうような場合には、物体７０の部分７２から誤差の方向及び誤差の程度を加味して定まる、物体のある部分７２Ｂとロボットの手先との間の目標とする相対的位置関係を指定する情報を情報２０２として学習モジュール１０３に入力することにより、ロボット２０が物体７０を把持する部分が部分７２に一致するように微調整することも可能である。
【００２９】
このように、物体７０とロボット２０の手先との間の目標とする相対的位置関係は、操作者の指定により変更可能である。
【００３０】
本実施形態によれば、ロボット２０が操作する物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定する情報２０２を入力として、両者の相対的位置関係を、情報２０２により指定される目標とする相対的位置関係に一致させるためのロボット２０の動作の機械学習がなされた学習モジュール１０３を用いることにより、学習モジュール１０３を再学習させることなく、ロボット２０が操作者の期待通りに動作するように人為的に調整することができる。
【００３１】
なお、物体７０とロボット２０の手先との間の目標とする相対的位置関係は、ロボット２０及び物体７０のそれぞれの位置及び姿勢に関わらず一定であるため、情報２０２を用いた学習モジュール１０３の機械学習は、物体を把持する動作に限られるものではなく、例えば、液体を収容する物体の姿勢を一定角度変化させて一定の体積の液体をその物体から流すための動作をロボット２０に実行させるための機械学習や、その他一定の物理量の操作に関わる動作をロボット２０に実行させるための機械学習にも適用可能である。
【００３２】
学習モジュール１０３は、ロボット２０の動作制御を機械学習によって学習する能力を備えた専用若しくは汎用のハードウェア若しくはソフトウェアの一単位又はこれらを任意に組み合わせた一単位を含むものである。学習モジュール１０３は、ロボット２０の動作制御を機械学習によって学習する能力を備えた学習済みモデルを含むソフトウェアプログラムを備えてもよい。学習モジュール１０３は、そのソフトウェアプログラムが保存された記憶装置と、そのソフトウェアプログラムを記憶装置から読み出すハードウェアプロセッサとを備えてもよい。学習モジュール１０３は、学習済みモデルの複製物又は蒸留物を含んでもよい。ここで、学習済みモデルの複製物は、モデルの内部構造を複製したもののみならず、学習が完了した学習済みの学習モジュール又は当該学習済みの学習モジュールの複製物に対して追加学習を行ったものを含む。蒸留物は、いわゆる蒸留によって得られる学習済みモデルを意味する。蒸留は、学習済みモデルの機能を保つように、学習済みモデルと構造が異なる他の学習モデルを学習させ、学習済みの当該他の学習済みモデルを得ることを含む。ここで、当該他の学習済みモデル（蒸留物）は、その基礎となった学習済みモデルよりも内部構造が単純であり、よりディプロイに適したものでもよい。なお、学習済みモデルの複製物や蒸留物は、必ずしも学習能力を備えることを要しない。学習モジュール１０３は、パラメータに従って入力（例えば、情報２０１，２０２，３０１，３０２）を出力（例えば、動作指令４０１）に変換する関数の機能を有する所定の構造を含んでもよい。そのような構造の一例として、ニューラルネットワークを挙げることができる。
【００３３】
［ハードウェア構成］
次に、図２及び図３を参照しながら、本実施形態に関わるロボット制御装置１０のハードウェア構成の一例について説明する。
ロボット制御装置１０は、ロボット２０の動作を制御する。図２に示す例では、ロボット２０は、六軸垂直多関節ロボットである。ロボット２０は、台座２１と、第１リンク２２と、第２リンク２３と、第３リンク２４と、第４リンク２５と、第５リンク２６と、第６リンク２７と、エンドエフェクタ２８とを備える。ロボット２０は、それぞれのリンクを回転運動させる可動軸（駆動用モータ）を備えている。これにより、ロボット２０は、台座２１及び複数のリンク２１〜２７が、駆動用モータを介して互いに接続されて構成されている。なお、エンドエフェクタ２８は、ロボット２０の手先の一例である。
【００３４】
台座２１は、ロボット２０が設置される構造物に取り付けられる。台座２１は、その上面に垂直な第１の可動軸を通じて第１リンク２２と接続されている。第１リンク２２は、台座２１に対して、この第１の可動軸を中心として回転することができる。第１リンク２２は、一端が互いに接続されている二枚の板状部材である。第１リンク２２は、二枚の板状部材の互いに対向している面と垂直な第２の可動軸を通じて第２リンク２３と接続されている。第２リンク２３は、第１リンク２２に対し、この第２の可動軸を中心として回転することができる。
【００３５】
第２リンク２３は、一端が互いに接続されている二枚の板状部材である。第２リンク２３は、二枚の板状部材により第３リンク２４を挟んでいる。第２リンク２３は、二枚の板状部材の互いに対向している面と垂直な第３の可動軸を通じて第３リンク２４と接続されている。第３リンク２４は、第２リンク２３に対し、この第３の可動軸を中心として回転することができる。第３リンク２４は、第２リンク２３の二枚の板状部材の互いに対向している面と並行な第４の可動軸を通じて第４リンク２５と接続されている部材である。第４リンク２５は、第３リンク２４に対し、この第４の可動軸を中心として回転することができる。
【００３６】
第４リンク２５は、一端が互いに接続されている二枚の板状部材である。第４リンク２５の二枚の板状部材は、互いに対向している。第４リンク２５は、二枚の板状部材により第５リンク２６を挟んでいる。第４リンク２５は、二枚の板状部材の互いに対向している面と垂直な第５の可動軸を通じて第５リンク２６と接続されている。第５リンク２６は、第４リンク２５に対し、この第５の可動軸を中心として回転することができる。第５リンク２６は、第４リンク２５の二枚の板状部材の互いに対向している面と垂直な第６の可動軸を通じて第６リンク２７と接続される部材である。
【００３７】
第６リンク２７は、第６の可動軸を介して第５リンク２６と接続される部材である。第５リンク２６と第６リンク２７は、円筒状に構成されている。また、第５リンク２６と第６リンク２７とは、共通する中心軸を有し、第６リンク２７は第５リンク２６に対し、第７の可動軸を中心として回転する。第６リンク２７は、第５リンク２６が接続される端部とは反対側の端部に、エンドエフェクタ２８を、直接的に、又は接続部材（アタッチメント）を介して間接的に、取りつけるための接続構造を有し、当該接続構造を介してエンドエフェクタ２８と接続される部材である。
【００３８】
エンドエフェクタ２８は、物体７０を把持する機構である。この機構は、物体７０を把持することができる構造を有していればよい。また、エンドエフェクタ２８は、物体７０を把持する代わりに、物体７０を吸着する機構を備えてもよい。なお、ロボット２０は、六軸垂直多関節ロボットに限定されるものではなく、二つ以上の可動軸を有していればよい。ロボット２０は、例えば、五軸垂直多関節ロボット又は七軸垂直多関節ロボットでもよい。
【００３９】
ロボット制御装置１０には、複数種類の物体及びその周辺の環境を撮影する撮影装置（例えば、カメラ）３０が接続されている。撮影装置３０による撮影により得られた画像情報５０１は、例えば、情報２０１により指定された物体７０とロボット２０との間の相対的な位置関係が把握できる画像を含む。
【００４０】
図３はロボット制御装置１０のハードウェア構成の一例を示す説明図である。ロボット制御装置１０は、そのハードウェア資源として、演算装置１１と、記憶装置１２と、入出力インタフェース１３と、入力装置１４と、出力装置１５と、撮影装置３０と、検出装置４０とを備えるコンピュータシステムである。検出装置４０は、例えば、ロボット２０の各関節の角度を検出するエンコーダである。演算装置１１は、ＣＰＵ（Central Processing Unit）１１１と、ＲＯＭ（Read Only Memory）１１２と、ＲＡＭ（Random Access Memory）１１３とを備えている。記憶装置１２は、ディスク媒体（例えば、磁気記録媒体又は光磁気記録媒体）又は半導体メモリ（例えば、揮発性メモリ又は不揮発性メモリ）などのコンピュータ読み取り可能な記録媒体である。このような記録媒体は、例えば、非一過性の記録媒体と呼ぶこともできる。記憶装置１２は、ロボット制御プログラム１２０を格納している。ロボット制御プログラム１２０は、記憶装置１２からＲＡＭ１１３に読み込まれ、ＣＰＵ１１１によって解釈及び実行される。このとき、入出力インタフェース１３は、画像情報５０１を撮影装置３０から入力するとともに、ロボット２０の位置及び姿勢を示す情報３０２を検出装置４０から入力し、動作指令４０１をロボット２０に出力する。入力装置１４は、操作者がロボット制御装置１０に情報２０１，２０２を入力するためのデバイスである。入力装置１４の例として、キーボード、マウス、又はタッチパネルを挙げることができる。出力装置１５は、学習モジュール１０３の機械学習の設定又は変更（例えば、物体７０とロボット２０の手先との間の目標とする相対的位置関係の指定、ロボット２０が物体７０を把持する位置の学習、又はロボット２０が物体７０を把持する位置の変更又は微調整）を操作者が行うための情報を、例えば、グラフィカルユーザインタフェースを通じて提供するためのデバイスである。出力装置１５の例として、表示装置（ディスプレイ）を挙げることができる。
【００４１】
［機能構成］
図４はロボット制御装置１０の機能の一例を示すブロック図である。ロボット制御装置１０のハードウェア資源とロボット制御プログラム１２０との協働により、入力部１０１、抽出部１０２、学習モジュール１０３、及び出力部１０４としての機能が実現される。
入力部１０１は、操作者５０からの情報２０１，２０２の入力を受け付ける。入力部１０１の機能は、例えば、演算装置１１、入力装置１４、出力装置１５、及びロボット制御プログラム１２０の協働により実現される。入力部１０１は、例えば、操作者５０による情報２０１，２０２の入力を受け付けるためのグラフィカルユーザインタフェース（ＧＵＩ）を提供してもよい。図５は、このようなグラフィカルユーザインタフェースの一例を示す。この例では、情報２０２を入力するためのウィンドウ６１が出力装置１５の画面６０に表示されている。操作者５０は、ロボット２０の手先から見た物体７０の相対的な位置座標情報（Ｘ，Ｙ，Ｚ）として、例えば、Ｘ＝Ｘ０，Ｙ＝Ｙ０，Ｚ＝Ｚ０の値を、ウィンドウ６１を通じて設定することができる。同様に、操作者５０は、ロボット２０の手先から見た物体７０の相対的な姿勢情報（α，β，γ）として、例えば、α＝α０，β＝β０，γ＝γ０の値を、ウィンドウ６１を通じて設定することができる。なお、α，β，γは、それぞれ、ロボット２０の手先から見た物体７０のロール角、ピッチ角、及びヨー角である。
【００４２】
ここで、再び図４の説明に戻る。抽出部１０２は、情報２０１で指定された特定種類の物体７０を画像情報５０１から抽出して特定種類の物体７０の位置及び姿勢を示す情報３０１を生成する。抽出部１０２の機能は、例えば、演算装置１１、入出力インタフェース１３、及びロボット制御プログラム１２０の協働により実現される。出力部１０４は、動作指令４０１を学習モジュール１０３の学習結果から生成してロボット２０に出力する。出力部１０４の機能は、例えば、演算装置１１、入出力インタフェース１３、及びロボット制御プログラム１２０の協働により実現される。
【００４３】
なお、ロボット制御装置１０の各機能（入力部１０１、抽出部１０２、学習モジュール１０３、及び出力部１０４）は、必ずしも、ロボット制御装置１０のハードウェア資源とロボット制御プログラム１２０との協働によって実現される必要はなく、例えば、ロボット制御装置１０の専用のハードウェア資源（例えば、特定用途向け集積回路（ＡＳＩＣ）、又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）など）を用いて実現されてもよい。
【００４４】
［ロボット制御方法］
図６は本実施形態に関わるロボット制御方法の処理の流れの一例を示すフローチャートである。この処理においては、ロボット制御装置１０が、ロボット制御プログラム１２０に従って、学習済みの学習モジュール１０３を用いて、ロボット２０の動作を制御する。
ステップ６０１において、ロボット制御装置１０は、複数種類の物体の中からロボット２０が操作する対象となる特定種類の物体７０を指定する情報２０１の入力を受け付ける。
ステップ６０２において、ロボット制御装置１０は、情報２０１で指定された特定種類の物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定する情報２０２の入力を受け付ける。
ステップ６０３において、ロボット制御装置１０は、複数種類の物体とその周辺の環境を撮影する。
ステップ６０４において、ロボット制御装置１０は、撮影により得られた画像情報５０１から、情報２０１で指定された特定種類の物体７０を抽出して特定種類の物体７０の位置及び姿勢を示す情報３０１を生成する。
ステップ６０５において、ロボット制御装置１０は、ロボット２０の位置及び姿勢を示す情報３０２を検出する。
ステップ６０６において、ロボット制御装置１０は、情報２０１で指定された特定種類の物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボット２０の動作の機械学習がなされた学習済みモデル又は学習済モデルと入出力関係が同等のモデルを含む学習モジュール１０３を準備する。
ステップ６０７において、ロボット制御装置１０は、特定種類の物体７０の位置及び姿勢を示す情報３０１と、ロボット２０の位置及び姿勢を示す情報３０２とから定まる物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボット２０の動作を指示する動作指令４０１を学習モジュール１０３の学習結果から生成してロボット２０に出力する。
なお、ロボット２０が操作する対象となる物体の種類が特定の一種類であるときや、操作対象となる物体の数が１つであるときなど、操作対象となる物体の種類を特定する必要がないときは、ロボット制御装置１０への情報２０１の入力を省略してもよい。
【００４５】
なお、本実施形態に関わるロボット２０は、ファクトリーオートメーションに用いられる産業ロボットに限定されるものではなく、例えば、サービス業に用いられるロボット（例えば、オペレーティングロボット、医療用ロボット、掃除ロボット、レスキューロボット、セキュリティロボットなど）でもよい。
【００４６】
上述の実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
（付記１）
複数種類の物体の中からロボット２０が操作する対象となる特定種類の物体７０を指定する情報２０１の入力と、指定された特定種類の物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定する情報２０２の入力とを受け付ける入力部１０１と、
複数種類の物体とその周辺の環境を撮影する撮影装置３０と、
撮影装置３０による撮影により得られた画像情報５０１から、指定された特定種類の物体７０を抽出して特定種類の物体７０の位置及び姿勢を示す情報３０１を生成する抽出部１０２と、
ロボット２０の位置及び姿勢を検出する検出装置４０と、
指定された特定種類の物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボット２０の動作の機械学習がなされた学習済みモデル又は前記学習済モデルと入出力関係が同等のモデルを含む学習モジュール１０３と、
抽出部１０２により生成された特定種類の物体７０の位置及び姿勢を示す情報３０１と、検出装置４０により検出されたロボット２０の位置及び姿勢を示す情報３０２とから定まる物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボット２０の動作を指示する動作指令４０１を学習モジュール１０３の学習結果から生成してロボット２０に出力する出力部１０４と、
を備えるロボット制御装置１０。
（付記２）
付記１に記載のロボット制御装置１０であって、
物体７０とロボット２０の手先との間の目標とする相対的位置関係はロボット２０及び物体７０のそれぞれの位置及び姿勢に関わらず一定である、ロボット制御装置１０。
（付記３）
付記１又は２に記載のロボット制御装置１０であって、
物体７０とロボット２０の手先との間の目標とする相対的位置関係は、操作者５０の指定により変更可能である、ロボット制御装置１０。
（付記４）
付記１乃至３のうち何れかに記載のロボット制御装置１０であって、
入力部１０１は、物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定するためのグラフィカルユーザインタフェース（ＧＵＩ）を備える、ロボット制御装置１０。
（付記５）
付記１乃至４のうち何れかに記載のロボット制御装置１０であって、
特定種類の物体７０を指定する情報２０１は、抽出部１０２に入力される、ロボット制御装置１０。
（付記６）
コンピュータシステムが、
複数種類の物体の中からロボット２０が操作する対象となる特定種類の物体７０を指定する情報２０１の入力を受け付けるステップ６０１と、
指定された特定種類の物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定する情報２０２の入力を受け付けるステップ６０２と、
複数種類の物体とその周辺の環境を撮影するステップ６０３と、
撮影により得られた画像情報５０１から、指定された特定種類の物体７０を抽出して特定種類の物体７０の位置及び姿勢を示す情報３０１を生成するステップ６０４と、
ロボット２０の位置及び姿勢を検出するステップ６０５と、
指定された特定種類の物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボット２０の動作の機械学習がなされた学習済みモデル又は前記学習済モデルと入出力関係が同等のモデルを含む学習モジュール１０３を準備するステップ６０６と、
特定種類の物体７０の位置及び姿勢を示す情報３０１と、ロボット２０の位置及び姿勢を示す情報３０２とから定まる物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボット２０の動作を指示する動作指令４０１を学習モジュール１０３の学習結果から生成してロボット２０に出力するステップ６０７と、
を実行するロボット制御方法。
（付記７）
コンピュータシステムに、
複数種類の物体の中からロボット２０が操作する対象となる特定種類の物体７０を指定する情報２０１の入力を受け付けるステップ６０１と、
指定された特定種類の物体７０とロボット２０の手先との間の目標とする相対的位置関係を指定する情報２０２の入力を受け付けるステップ６０２と、
複数種類の物体とその周辺の環境を撮影するステップ６０３と、
撮影により得られた画像情報５０１から、指定された特定種類の物体７０を抽出して特定種類の物体７０の位置及び姿勢を示す情報３０１を生成するステップ６０４と、
ロボット２０の位置及び姿勢を検出するステップ６０５と、
指定された特定種類の物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボット２０の動作の機械学習がなされた学習済みモデル又は前記学習済モデルと入出力関係が同等のモデルを含む学習モジュール１０３を準備するステップ６０６と、
特定種類の物体７０の位置及び姿勢を示す情報３０１と、ロボット２０の位置及び姿勢を示す情報３０２とから定まる物体７０とロボット２０の手先との間の相対的位置関係を目標とする相対的位置関係に一致させるためのロボット２０の動作を指示する動作指令４０１を学習モジュール１０３の学習結果から生成してロボット２０に出力するステップ６０７と、
を実行させるロボット制御プログラム１２０。
【符号の説明】
【００４７】
１０…ロボット制御装置  １１…演算装置  １２…記憶装置  １３…入出力インタフェース  １４…入力装置  １５…出力装置  ２０…ロボット  ３０…撮影装置  ４０…検出装置  ５０…操作者  ６０…画面  ６１…ウィンドウ  ７０…物体  ７１…部分  ７２…部分  ７３…部分  １０１…入力部  １０２…抽出部  １０３…学習モジュール  １０４…出力部  １２０…ロボット制御プログラム
【図１】
2020075337.tif 000003
【図２】
2020075337.tif 000004
【図３】
2020075337.tif 000005
【図４】
2020075337.tif 000006
【図５】
2020075337.tif 000007
【図６】
2020075337.tif 000008