(57)【特許請求の範囲】
【請求項１】
第１カメラにより生成された第１画像データ、ロボットアームの状態に関する状態情報、及び第１学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成する軌道生成部と、
第２カメラにより生成された第２画像データ、前記状態情報、及び第２学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成する処理動作生成部と、
前記ロボットアームが所定の目標位置に移動するまでは前記軌道情報を用いて前記ロボットアームを制御し、前記ロボットアームが前記目標位置まで移動した後は前記処理動作情報を用いて前記ロボットアームを制御する制御部と、
を備え、
前記軌道生成部は、
前記ロボットアームの処理対象である対象物と該ロボットアームとの位置関係が所定の条件を満たす前記ロボットアームの位置を前記目標位置として決定し、該目標位置までの前記ロボットアームの軌道を示す軌道情報を生成し、
前記対象物の特性、前記対象物に対して前記ロボットアームが行う処理動作の種類、及び障害物の位置のうちの少なくともいずれか一つを用いて、前記条件を変更する情報処理装置。
【請求項２】
前記軌道生成部は、前記ロボットアームが前記目標位置に移動するまで前記軌道情報の生成処理を繰り返し実行する、
請求項１に記載の情報処理装置。
【請求項３】
前記軌道生成部は、前記対象物と前記ロボットアームのエンドエフェクタとの位置関係が前記条件を満たす前記ロボットアームの位置を前記目標位置として決定し、該目標位置までの前記ロボットアームの軌道を示す軌道情報を生成する、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記軌道生成部は、前記ロボットアームのエンドエフェクタから前記対象物までの距離が前記条件を満たす前記ロボットアームの位置を、前記目標位置として決定する、
請求項３に記載の情報処理装置。
【請求項５】
前記第２カメラは、前記ロボットアームに設けられており、
前記軌道生成部は、前記対象物と前記第２カメラの撮影方向との位置関係が前記条件を満たす前記ロボットアームの位置を目標位置として決定し、前記目標位置までの前記ロボットアームの軌道を示す軌道情報を生成する、
請求項１又は２に記載の情報処理装置。
【請求項６】
前記軌道生成部は、前記第２カメラの撮影範囲に前記対象物の一部又は全部が含まれる位置を前記目標位置として決定する、
請求項５に記載の情報処理装置。
【請求項７】
前記軌道生成部は、前記第２カメラが撮影する画像における前記対象物の領域の割合が所定の条件を満たす位置を前記目標位置として決定する、
請求項６に記載の情報処理装置。
【請求項８】
前記第２カメラは、前記ロボットアームに設けられている、
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項９】
前記第１カメラは深度センサを備え、前記第１画像データは深度を表す画像データを含む、
請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
第１カメラにより生成された第１画像データ、ロボットアームの状態に関する状態情報、及び第１学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成するステップと、
第２カメラにより生成された第２画像データ、前記状態情報、及び第２学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成するステップと、
前記ロボットアームが所定の目標位置に移動するまでは前記軌道情報を用いて前記ロボットアームを制御し、前記ロボットアームが前記目標位置まで移動した後は前記処理動作情報を用いて前記ロボットアームを制御するステップと、
を情報処理装置が実行する方法であって、
前記軌道情報を生成するステップにおいては、
前記ロボットアームの処理対象である対象物と該ロボットアームとの位置関係が所定の条件を満たす前記ロボットアームの位置を前記目標位置として決定し、該目標位置までの前記ロボットアームの軌道を示す軌道情報を生成し、
前記対象物の特性、前記対象物に対して前記ロボットアームが行う処理動作の種類、及び障害物の位置のうちの少なくともいずれか一つを用いて、前記条件を変更する、
方法。
【請求項１１】
請求項１から９のいずれか１項に記載の情報処理装置としてコンピュータを機能させるためのプログラムであって、前記各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームを制御する情報処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
物品の把持又は塗装等の対象物に対する各種の処理動作を行うロボットアームが知られている。このようなロボットアームの制御として、ロボットアームを対象物の近くまで移動させる制御や、対象物に対するロボットアームの処理動作の制御が行われている。また、ロボットアームの移動に係る軌道の生成を機械学習により行う技術が研究されている。例えば非特許文献１には、ロボットアームの軌道を機械学習により生成するためのＭＰＮet（Motion Planning Networks）と呼ばれるアルゴリズムが開示されている。ＭＰＮｅｔでは、ロボットアームの作業空間をカメラで撮影した画像を用いて、ロボットアームの軌道が生成される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ahmed H. Qureshi, Anthony Simeonov, Mayur J. Bency and Michael C. Yip, Motion Planning Networks, 13 Jul, 2019
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では、ロボットアームが現在位置から目標位置まで移動するまでの軌道を計算することができるものの、対象物に対するロボットアームの処理動作（物品の把持、塗装等）の精度を向上させることは困難であった。
【０００５】
本発明の一態様は、ロボットアームがトレースすべき軌道の生成の精度、及びロボットアームの対象物に対する処理動作の生成の精度の両方を向上させることができる情報処理装置、方法及びプログラムを実現することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明の一態様に係る情報処理装置は、第１カメラにより生成された第１画像データ、ロボットアームの状態に関する状態情報、及び第１学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成する軌道生成部と、第２カメラにより生成された第２の画像データ、前記状態情報、及び第２学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成する処理動作生成部と、を備える。
【発明の効果】
【０００７】
本発明の一態様によれば、ロボットアームがトレースすべき軌道の生成の精度、及びロボットアームの対象物に対する処理動作の生成の精度の両方を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る制御システムの概略構成を示すブロック図である。
【図２】本発明の一実施形態に係る制御システムの外観を模式的に示す図である。
【図３】本発明の一実施形態に係る制御システムによるロボットアームの制御の流れの一例を示すフローチャートである。
【図４】ロボットアームの軌道を例示する図である。
【図５】本発明の一実施形態に係る制御システムの概略構成を示すブロック図である。
【図６】本発明の一実施形態に係る情報処理装置の物理的構成を例示するブロック図である。
【発明を実施するための形態】
【０００９】
〔実施形態１〕
図１は、本発明の一実施形態に係る制御システム１の概略構成を示すブロック図である。制御システム１は、ロボットアーム１０を制御するためのシステムである。制御システム１は、ロボットアーム１０、第１カメラ２０、第２カメラ３０、及び情報処理装置４０を備える。ロボットアーム１０は、対象物に関する処理動作を行う装置である。対象物に関する処理動作は例えば、物品の把持、塗装、研磨、切削、穴あけ、又は組み付けである。
【００１０】
第１カメラ２０及び第２カメラ３０は、ロボットアーム１０の作業空間を撮影するカメラである。
第１カメラ２０は、ロボットアーム１０がトレースすべき軌道を示す情報（以下「軌道情報」という）の生成に適した画像を撮影可能なように、例えば、ロボットアーム１０及びロボットアーム１０の作業空間が撮影範囲に含まれる位置に固定される。第１カメラ２０は撮影した画像を表す第１画像データを出力する。
【００１１】
第２カメラ３０は、ロボットアーム１０が行うべき処理動作を示す情報(以下「処理動作情報」という)の生成に適した画像を撮影可能なように、例えば、ロボットアーム１０の周囲の少なくとも一部（例えば、前方）が撮影範囲に含まれる位置に固定される。第２カメラ３０は撮影した画像を表す第２画像データを出力する。
【００１２】
情報処理装置４０は、軌道生成部４１、処理動作生成部４２、第１学習済モデル４３、及び第２学習済モデル４４を備える。
【００１３】
軌道生成部４１は、第１カメラ２０により生成された第１画像データ、ロボットアーム１０の状態に関する情報（以下「状態情報」という）、及び第１学習済モデル４３を用いて、軌道情報を生成する。状態情報は、ロボットアーム１０の状態に関する任意の情報である。状態情報は、関節１２及びエンドエフェクタ１１のジョイント角度、及びエンドエフェクタ１１を含むロボットアーム１０の各部の座標を示す情報を含むが、これに限られない。軌道情報は、ロボットアーム１０が現在位置（軌道の始点）から目標位置（軌道の終点）に移動するまでの、ロボットアーム１０の各部がトレースする軌道（状態の変化）を示す情報である。軌道情報は、現在位置から目標位置までのロボットアーム１０の状態情報の時系列データであり得る。
【００１４】
また、以下の説明において、ロボットアーム１０の現在位置は、各処理時点におけるロボットアーム１０の位置及びロボットアーム１０の状態をいう。目標位置は、ロボットアーム１０が処理動作の対象である対象物の周囲まで移動したときのロボットアーム１０の状態をいう。目標位置は例えば、ロボットアーム１０が処理動作を開始可能な位置まで移動したときのロボットアーム１０の状態である。
【００１５】
処理動作生成部４２は、第２カメラ３０により生成された第２画像データ、ロボットアーム１０の状態情報、及び第２学習済モデルを用いて、処理動作情報を生成する。
【００１６】
第１学習済モデル４３は、現在位置及び目標位置におけるロボットアーム１０の状態情報及びロボットアーム１０の作業空間に関する情報（以下「空間情報」という）と軌道情報との相関関係を機械学習させた学習済モデルである。この実施形態において、空間情報は例えば、ロボットアーム１０の作業空間に含まれる障害物の座標、ロボットアーム１０の処理対象である対象物の座標を示す情報を含む。空間情報は例えば、ロボットアーム１０の作業空間を撮影した撮影画像から特定される。第１学習済モデル４３は、例えば、ＭＰＮetであるが、これに限られない。第１学習済モデル４３は、状態情報及び空間情報に基づいて軌道情報を生成可能な任意の機械学習モデルであり得る。例えば、第１学習済モデル４３は、ＣＮＮ（Convolutional Neural Network）、ＲＮＮ（Recurrent Neural Network）、ＬＳＴＭ（Long Short-Term Memory）、ＤＮＮ（Deep Neural Network）、又はこれらの組み合わせで実現可能である。
【００１７】
第２学習済モデル４４は、第１学習済モデル４３とは異なるモデルであり、第２画像データ及び状態情報と処理動作情報との相関関係を機械学習させた学習済モデルである。第２学習済モデル４４は、第２画像データ及び状態情報から処理動作情報を生成可能な任意の機械学習モデルであり得る。例えば、第２学習済モデル４４は、ＣＮＮ、ＲＮＮ、ＬＳＴＭ、ＤＮＮ、又はこれらの組み合わせで実現可能である。
【００１８】
以上のように構成された情報処理装置４０は、第１学習済モデル４３を用いてロボットアーム１０の軌道情報を生成するとともに、第２学習済モデル４４を用いてロボットアーム１０の処理動作情報を生成する。このように軌道情報の生成と処理動作情報の生成とにおいて、それぞれに適した学習済モデルを用いることで、軌道情報の生成及び処理動作情報の生成の両方の精度を向上させることができる。また、この実施形態では、軌道情報の生成と処理動作情報の生成とにおいて、それぞれに適した撮影画像を用いることで、軌道情報の生成及び処理動作情報の生成の両方の精度を向上させることができる。
【００１９】
〔実施形態２〕
（構成）
図２は、本発明の一実施形態に係る制御システム１の外観を模式的に示す図である。なお、説明の便宜上、上記実施形態１にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【００２０】
制御システム１は、ロボットアーム１０を対象物５０の付近に移動させて対象物５０を把持する一連の動作を制御するシステムである。本実施形態において、ロボットアーム１０の端部にはエンドエフェクタ１１が設けられている。エンドエフェクタ１１は、例えば多指ハンド、又はグリッパである。この実施形態において、エンドエフェクタ１１は、物品を把持する機構を有する。なお、ロボットアーム１０が行う処理動作は、物品の把持に限定されず、エンドエフェクタ１１を交換することによって他の処理動作が可能になるように構成されていてもよい。
【００２１】
ロボットアーム１０は、１以上の関節１２を備えており、各関節１２が駆動されることによって動作する。関節１２は、アームの関節であってもよいし、エンドエフェクタ１１（例えば、多指ハンド）の関節であってもよい。ロボットアーム１０はまた、１以上のセンサ１３（図１参照）を備える。各センサ１３には、例えば、各関節１２のジョイント角度を検知する角度センサ、ロボットアーム１０の特定の箇所における力覚を検知する力覚センサなどが含まれ得る。各センサ１３の検知結果は情報処理装置４０に出力される。
【００２２】
第１カメラ２０は、ロボットアーム１０の作業空間を撮影し、撮影画像を表す撮影データ（第１画像データ）を生成する。第１カメラ２０は、ロボットアーム１０及びロボットアーム１０の作業空間が撮影範囲に含まれる位置に固定される。本実施形態において、第１カメラ２０は、深度センサを備え、ＲＧＢ色空間により表される撮影画像（以下「ＲＧＢ画像」という）及びピクセルごとの距離データを有する深度画像を表す撮影データを出力する。なお、撮影画像は、カラー画像に限らず、モノクロ画像であってもよい。図２には１台の第１カメラ２０が図示されているが、ロボットアーム１０の作業空間を撮影する第１カメラ２０として、複数のカメラが設けられてもよい。
【００２３】
第２カメラ３０は、ロボットアーム１０に固定されたカメラであり、撮影画像を表す撮影データ（第２画像データ）を出力する。第２カメラ３０は、エンドエフェクタ１１の少なくとも一部及びエンドエフェクタ１１の周囲が撮影範囲に含まれる位置（例えば、ロボットアーム１０の第５軸）に設けられている。第２カメラ３０は例えば、ロボットアーム１０の第５軸の軸方向と撮影方向とが平行になる向きで固定される。なお、第２カメラ３０は、深度センサを備えていてもよい。この場合、第２カメラ３０が出力する撮影データは、深度画像を表すデータを含んでもよい。また、図２には１台の第２カメラ３０が図示されているが、第２カメラ３０として、複数のカメラが設けられていてもよい。また、第２カメラ３０は、ロボットアーム１０の第４軸又は第６軸に固定されてもよい。
【００２４】
対象物５０は、ロボットアーム１０が行う処理動作の目的物であり、例えばロボットアーム１０が把持する物品である。障害物６１、６２は、ロボットアーム１０の作業空間に存在する、対象物５０以外の任意のものである。障害物６１、６２は、ロボットアーム１０の移動又はロボットアームの処理動作において障害となり得る。障害物６１、６２は、例えば物品である。なお、図２の例では、２つの障害物６１、６２が図示されているが、ロボットアーム１０の作業空間に含まれる障害物の数は２に限定されず、これより多くても少なくてもよい。
【００２５】
情報処理装置４０は、軌道生成部４１、処理動作生成部４２、第１学習済モデル４３、第２学習済モデル４４、ロボット制御部４５、及び軌道記憶部４６を備える。
【００２６】
軌道生成部４１は、第１画像データ、状態情報、及び第１学習済モデル４３を用いて、ロボットアーム１０の現在位置から目標位置までの軌道を示す軌道情報を生成する。作業空間に障害物がある場合、軌道生成部４１は、ロボットアーム１０が現在位置から目標位置まで、障害物６１、６２を避けながら移動する経路を示す軌道情報を生成する。また、軌道生成部４１は、ロボットアーム１０が現在位置から目標位置まで移動するまでの期間に亘って、軌道情報の生成処理を繰り返し実行する。生成した軌道情報は軌道記憶部４６に記憶される。
【００２７】
処理動作生成部４２は、第２画像データ、状態情報、及び第２学習済モデル４４を用いて、処理動作情報を生成する。処理動作情報は例えば、ロボットアーム１０の状態情報の時系列データであり得る。この実施形態において、処理動作生成部４２が生成する処理動作情報は、軌道生成部４１が生成した軌道に沿ってロボットアーム１０が目標位置まで移動した後に、ロボットアーム１０が行うべき処理動作を示す情報である。
【００２８】
第１学習済モデル４３は、現在位置及び目標位置におけるロボットアーム１０の状態情報及び空間情報と軌道情報との相関関係を機械学習させた学習済モデルである。この実施形態において、空間情報は、障害物の座標情報、及び対象物の座標情報を含む。なお、第１学習済モデル４３の入力情報は、状態情報及び空間情報に限られず、他の情報を含んでいてもよい。例えば、入力情報は、第１画像データを含んでいてもよい。第１学習済モデル４３は、情報処理装置４０又は他の装置により予め生成される。情報処理装置４０又は他の装置は、状態情報及び空間情報と軌道情報との組を用いて、状態情報及び空間情報と軌道情報との相関関係を機械学習させた第１学習済モデル４３を生成する。
【００２９】
第２学習済モデル４４は、情報処理装置４０又は他の装置により予め生成される。この実施形態において、第２学習済モデル４４は、エンドエフェクタ１１が対象物５０を把持する処理動作を行ったときの第２画像データ及び状態情報と処理動作情報との相関関係が機械学習された学習済モデルである。情報処理装置４０又は他の装置は、第２画像データ及び状態情報と処理動作情報との組を用いて、第２画像データ及び状態情報と処理動作情報との相関関係を、例えば強化学習により機械学習させた第２学習済モデル４４を生成する。
【００３０】
ロボット制御部４５は、軌道生成部４１が生成した軌道情報、及び処理動作生成部４２が生成した処理動作情報を用いてロボットアーム１０を制御する。すなわち、ロボット制御部４５は、軌道情報を用いてロボットアーム１０の状態を変化させ、ロボットアーム１０の状態を軌道情報の示す状態に近づけるようにロボットアーム１０を制御する。また、ロボット制御部４５は、処理動作情報を用いて、ロボットアーム１０の状態を変化させる。
【００３１】
軌道記憶部４６には、軌道生成部４１が生成した軌道情報が記憶される。この実施形態では、軌道記憶部４６には、軌道情報としてロボットアーム１０の状態情報が時系列に記憶される。
【００３２】
（動作）
図３は、制御システム１によるロボットアーム１０の制御の流れの一例を示すフローチャートである。なお、一部のステップは並行して、または、順序を替えて実行してもよい。
【００３３】
ステップＳ１０１において、第１カメラ２０で作業空間が撮影される。第１カメラ２０は、撮影した作業空間を表す第１画像データを情報処理装置４０に供給する。
【００３４】
ステップＳ１０２において、軌道生成部４１は、第１画像データに含まれるＲＧＢ画像及び深度画像を用いて、作業空間に存在する物体（対象物及び障害物）の認識を行う。物体認識の手法としては、種々の方法が利用可能であり、例えば、ＣＮＮを用いた３次元物体認識の手法であるＭＭＳＳ（Multi-model Sharable and Specific Feature Learning for RGB-D Object Recognition）が用いられる。この場合、３Ｄデータ（ＲＧＢ画像及び深度画像）と物体の種類（ラベル）との相関関係を機械学習させた学習済モデルに、３Ｄデータを入力することにより、作業空間に存在する物体の座標と各物体の種類（空間情報）が推定される。推定された空間情報は、各物体の種類（ラベル）を付されたポイントクラウドとして出力され得る。図２の例では、作業空間に存在する物体として、対象物５０、障害物６１及び障害物６２が認識される。なお、障害物については、種類の特定が行われなくてもよい。
【００３５】
ステップＳ１０３において、軌道生成部４１は、ロボットアーム１０の移動の目標位置を決定する。目標位置の決定は、例えば以下のようにして行われる。軌道生成部４１は、ステップＳ１０２で認識された物体の種類に基づいて、作業空間に存在する物体の中から対象物を特定する。この場合、対象物の種類がユーザにより予め設定されていてもよい。図２の例では、対象物５０が特定される。
【００３６】
次いで、軌道生成部４１は、対象物５０とロボットアーム１０のエンドエフェクタ１１との位置関係が所定の条件を満たすロボットアーム１０の状態（位置）を、移動の目標位置として決定する。所定の条件は例えば、エンドエフェクタ１１から対象物５０までの距離が所定の閾値以下である、といった条件であってもよい。エンドエフェクタ１１から対象物５０までの距離とは、例えば、エンドエフェクタ１１の所定の部分から対象物５０の重心までの距離、又はエンドエフェクタ１１の所定の部分から対象物５０の表面までの最短距離である。すなわち、ロボットアーム１０の目標位置とは、例えば、エンドエフェクタ１１の所定の部分から対象物５０の表面までの最短距離が所定の閾値以下となるロボットアーム１０の状態をいう。
【００３７】
ステップＳ１０４において、軌道生成部４１は、ロボットアーム１０の現在位置及び目標位置におけるにおける状態情報、空間情報（対象物５０及び障害物６１，６２の座標情報、ロボットアーム１０の目標位置における状態情報）、及び第１学習済モデル４３を用いて、軌道情報を生成する。この実施形態では、軌道生成部４１は、ロボットアーム１０の現在位置及び目標位置におけるにおける状態情報及び空間情報を第１学習済モデル４３に入力し、第１学習済モデル４３から出力される軌道情報を取得する。この実施形態では、軌道生成部４１は、センサ１３の検知結果を、現在のロボットアーム１０の状態情報として取得してもよいし、当該検知結果から状態情報を算出してもよいし、第１画像データを画像解析することにより、状態情報を特定してもよい。軌道生成部４１は、取得した軌道情報を軌道記憶部４６に記憶するとともに、軌道情報をロボット制御部４５に供給する。
【００３８】
ステップＳ１０５において、ロボット制御部４５は、供給される軌道情報に従ってロボットアーム１０を制御し、ロボットアーム１０を移動させる。すなわち、ロボット制御部４５は、ロボットアーム１０が軌道情報の示す軌道に沿って移動するようにロボットアーム１０を制御する。このとき、センサ１３の検知結果がロボットアーム１０の制御に用いられてもよい。
【００３９】
ステップＳ１０６において、ロボット制御部４５は、ロボットアーム１０の現在位置と目標位置とを比較することにより、ロボットアーム１０が目標位置まで移動したかを判定する。現在位置と目標位置が一致する、又は現在位置と目標位置との差が閾値未満である場合、ロボット制御部４５はロボットアーム１０が目標位置に移動したと判定する。一方、現在位置と目標位置との差が閾値以上である場合、ロボット制御部４５はロボットアーム１０が目標位置まで移動していないと判定する。
【００４０】
ロボットアーム１０が目標位置まで移動した場合（ステップＳ１０６；ＹＥＳ）、情報処理装置４０はステップＳ１０７の処理に進む。一方、目標位置まで移動していない場合（ステップＳ１０６；ＮＯ）、情報処理装置４０は、ステップＳ１０１の処理に戻り、第１画像データを第１カメラ２０から取得する。すなわち、情報処理装置４０は、ステップＳ１０１〜Ｓ１０６の処理を、ロボットアーム１０が目標位置に到達するまで所定の時間間隔で繰り返す。
【００４１】
上述のように、ロボットアーム１０が目標位置に移動するまで、ステップＳ１０１〜Ｓ１０６の処理が繰り返し実行される。すなわち、軌道生成部４１は、ロボットアーム１０が目標位置に移動するまで軌道情報の生成処理を繰り返し実行する。これらの処理が繰り返し実行されることにより、ロボットアーム１０が障害物６１及び障害物６２に衝突しないような軌道で少しずつ移動していき、対象物５０に近づいていく。
【００４２】
図４は、ロボットアーム１０のエンドエフェクタ１１の軌道を例示する図である。図４の例では、エンドエフェクタ１１は、ロボット制御部４５の制御に従い、障害物６１及び障害物６２に衝突しないように生成された軌道に沿って徐々に移動し、対象物５０に近づいていく。軌道ｑ１１〜ｑ１９は、軌道生成部４１により生成されるエンドエフェクタ１１の軌道を示す。なお、図４においては、図面が煩雑になるのを防ぐため、エンドエフェクタ１１の軌道のみを図示し、ロボットアーム１０全体の軌道については図示を省略している。
【００４３】
ロボットアーム１０が目標位置に到達すると、制御に用いられる撮影画像が第１カメラ２０の撮影画像から第２カメラ３０の撮影画像に切り替えられ、ステップＳ１０７〜Ｓ１１０の処理が実行される。ステップＳ１０７において、第２カメラ３０で撮影が行われ、第２カメラ３０の第２画像データが情報処理装置４０に供給される。
【００４４】
ステップＳ１０８において、処理動作生成部４２は、ロボットアーム１０の現在位置における状態情報、第２画像データ、及び第２学習済モデル４４を用いて、処理動作情報を生成する。この実施形態では、処理動作生成部４２は、ロボットアーム１０の現在位置における状態情報、第２画像データを第２学習済モデル４４に入力し、第２学習済モデル４４から出力される処理動作情報を取得する。取得された処理動作情報はロボット制御部４５に供給される。
【００４５】
ステップＳ１０９において、ロボット制御部４５は、供給される処理動作情報に従ってロボットアーム１０、特にエンドエフェクタ１１を制御し、ロボットアーム１０に把持動作を行わせる。
【００４６】
ステップＳ１１０において、情報処理装置４０は、ロボットアーム１０が処理動作を完了したかを判定する。処理動作が完了した場合（ステップＳ１１０；ＹＥＳ）、情報処理装置４０は図３の処理を終了する。一方、処理動作が完了していない場合（ステップＳ１１０；ＮＯ）、情報処理装置４０は、ステップＳ１０７の処理に戻り、第２画像データを用いた処理動作制御を継続する。すなわち、ロボットアーム１０の処理動作が完了するまで、情報処理装置４０は所定の時間間隔でステップＳ１０７〜Ｓ１０９の処理を繰り返し実行する。これらの処理が繰り返し実行されることにより、ロボットアーム１０が対象物５０の把持動作を行う。
【００４７】
制御システム１が図３に示す処理を実行してロボットアーム１０を制御することにより、ロボットアーム１０が対象物５０を把持する。ロボットアーム１０が対象物５０の把持動作を完了した後、ロボットアーム１０は他の動作を実行してもよい。
【００４８】
例えば、ロボットアーム１０は対象物５０を他の場所に移動させる動作を実行してもよい。この場合、情報処理装置４０のロボット制御部４５は、軌道記憶部４６に記憶された軌道情報を用いてロボットアーム１０を制御し、ロボットアーム１０に対象物５０を把持させたまま、対象物５０を移動させる。ロボット制御部４５は例えば、軌道記憶部４６に記憶された時系列の状態情報を逆順に読み出し、読み出した状態情報に従いロボットアーム１０を制御することで、ロボットアーム１０の状態を目標位置から初期位置まで戻す制御を行うことができる。
【００４９】
また、情報処理装置４０は、新たな目標位置を設定し、ロボットアーム１０の現在位置及び新たな目標位置における状態情報、第１画像データから取得した空間情報、及び第１学習済モデル４３を利用して、新たな目標位置までの軌道情報を生成し、当該軌道情報に沿ってロボットアーム１０を移動させてもよい。
【００５０】
本実施形態では、情報処理装置４０は、第１カメラ２０の撮影画像と第１学習済モデル４３とを用いてロボットアーム１０の軌道情報を生成するとともに、第２カメラ３０の撮影画像と第２学習済モデル４４とを用いてロボットアーム１０の処理動作情報を生成する。このように軌道情報の生成と処理動作情報の生成とにおいて、それぞれに適した学習済モデル及び撮影画像を用いることで、軌道情報の生成の精度の向上及び処理動作情報の生成の精度の向上を両立させることができる。
【００５１】
また、一般に、ロボットアーム１０の処理動作制御は、ロボットアーム１０の移動制御よりも細かい制御が必要となる。処理動作制御においては、数ミリ程度のわずかなずれが生じた場合であっても、ロボットアーム１０が対象物５０に衝突してしまい、対象物５０にキズが付いてしまったり、対象物５０が破損してしまったりするためである。本実施形態では、対象物５０とエンドエフェクタ１１との位置関係が所定の条件を満たすロボットアーム１０の位置が目標位置とされ、ロボットアーム１０が目標位置まで移動したときに、ロボットアーム１０の制御が移動制御から処理動作制御に切り替えられる。このように、処理動作制御より粗い制御である移動制御を目標位置で終了することにより、エンドエフェクタ１１と対象物５０との接触を抑制することができる。また、目標位置から処理動作制御を開始することにより、第２カメラ３０に確実に対象物５０を撮影し、処理動作制御を実行することができる。
【００５２】
また、従来は数学的な探索によりロボットアーム１０の軌道情報が生成される場合があった。しかしながら、この場合、作業空間の次元に応じて計算量が指数関数的に増加して探索に時間がかかってしまうため、リアルタイムでの軌道情報の生成を行うことは困難であった。これに対し本実施形態では、情報処理装置４０が第１学習済モデル４３を用いて軌道情報の生成を行うことにより、短時間で軌道情報を生成することができる。そのため、ロボットアーム１０のリアルタイムな軌道情報の生成が可能となる。すなわち、ロボットアーム１０の移動中に障害物６１や対象物５０が移動する場合であっても、情報処理装置４０がロボットアーム１０の軌道情報をリアルタイムに更新することができる。
【００５３】
また、この実施形態では、第１カメラ２０が深度センサを備えることにより、軌道生成部４１は、障害物６１及び６２に衝突しない軌道情報を精度よく生成することができる。
【００５４】
また、１のカメラの撮影画像で軌道情報の生成と処理動作情報の生成を行う場合、深度センサを備えた高解像度のカメラを、作業空間を撮影可能な位置に設置する必要がある。このようなカメラは高価である。これに対して、この実施形態では、高価なカメラを利用することなく、２つの安価なカメラの組み合わせにより、軌道情報の生成と処理動作情報の生成を行うことができる。この結果、制御システム１を安価に構成することができる。
【００５５】
〔実施形態３〕
本発明の他の実施形態を説明する。本実施形態が上述した実施形態２と異なる点は、情報処理装置４０が行う、ロボットアーム１０の目標位置の決定処理（図３のステップＳ１０３）の内容が異なる点である。なお、説明の便宜上、上記実施形態２にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【００５６】
この実施形態では、軌道生成部４１は、対象物５０と第２カメラ３０の撮影方向との位置関係が所定の条件を満たすロボットアーム１０の位置を目標位置として決定し、この目標位置までのロボットアーム１０の軌道を示す軌道情報を生成する。この場合、軌道生成部４１は例えば、第２カメラ３０の撮影範囲に対象物５０の一部又は全部が含まれる位置を目標位置として決定する。より具体的には例えば、軌道生成部４１は、第２カメラ３０の画角に対象物５０全体が含まれるロボットアーム１０の位置を目標位置として決定する。
【００５７】
この場合、情報処理装置４０のロボット制御部４５は、ロボットアーム１０が目標位置まで移動したかの判定処理（図３のステップＳ１０６の処理）を、現在位置と目標位置との比較ではなく、例えば以下のようにして行ってもよい。ロボット制御部４５は、第１カメラ２０の撮影画像を解析することにより物体認識を行い、第１カメラ２０の撮影画像に含まれる対象物５０と第２カメラ３０の撮影方向との位置関係を特定する。ロボット制御部４５は、特定した位置関係が所定の条件を満たすかを判定する。特定した位置関係が所定の条件を満たす場合、ロボット制御部４５はロボットアーム１０が目標位置に移動したと判定する。一方、位置関係が所定の条件を満たしていない場合、ロボット制御部４５はロボットアーム１０が目標位置に移動していないと判定する。
【００５８】
また、ロボットアーム１０の目標位置の決定方法は上述の実施形態で示したものに限られず、他の手法が用いられてもよい。例えば、軌道生成部４１は、第２カメラ３０の撮影画像における対象物５０の領域の割合が所定の条件を満たす位置を目標位置として決定してもよい。例えば、軌道生成部４１は、第２カメラの撮影画像において対象物５０が占める割合が５０％以上となる位置を目標位置として決定する。
【００５９】
この場合、情報処理装置４０のロボット制御部４５は、ロボットアーム１０が目標位置まで移動したかの判定処理（図３のステップＳ１０６の処理）を、現在位置と目標位置との比較ではなく、例えば以下のようにして行ってもよい。ロボット制御部４５は、第１カメラ２０の撮影画像を解析し、第１カメラ２０の撮影画像に含まれる対象物５０と第２カメラ３０とを認識する。ロボット制御部４５は、認識した対象物５０と第２カメラ３０との位置関係、第２カメラの撮影方向、及び第２カメラの画角等の情報を用いて、第２カメラの撮影画像において対象物５０が占める割合を算出する。算出した割合が５０％以上である場合、ロボット制御部４５は、ロボットアーム１０が目標位置に移動したと判定する。一方、算出した割合が５０％未満である場合、ロボット制御部４５は、ロボットアーム１０が目標位置に移動していないと判定する。
【００６０】
この実施形態では、処理動作制御の開始時における、第２カメラ３０による対象物５０の所望の撮影状態に応じて、目標位置を決定することができる。これにより、処理動作制御をスムーズに実施することができる。
【００６１】
〔実施形態４〕
次いで、本発明の他の実施形態を説明する。本実施形態が上述した実施形態２と異なる点は、情報処理装置４０が行う、ロボットアーム１０の目標位置の決定処理（図３のステップＳ１０３）の内容が異なる点である。なお、なお、説明の便宜上、上記実施形態２にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【００６２】
この実施形態では、軌道生成部４１は、対象物５０の特性、対象物５０に対してロボットアーム１０が行う処理動作の種類、並びに、障害物６１及び障害物６２の位置のうちの少なくともいずれか一つを用いて、目標位置の決定方法を変更する。対象物５０の特性は、対象物５０の特徴又は性質であり、例えば対象物５０のサイズ又は形状である。ロボットアーム１０が行う処理動作は例えば、物品の把持、塗装、研磨、切削、穴あけ、又は組み付けである。この場合、軌道生成部４１は例えば、対象物５０の大きさが大きいほどエンドエフェクタ１１と対象物５０との距離の閾値が大きくなるように目標位置を決定してもよい。また、他の例として、軌道生成部４１は、ロボットアーム１０が行う処理動作の種類によって上記閾値や目標位置における対象物５０に対するロボットアーム１０の角度を異ならせてもよい。また、他の例として、軌道生成部４１は、障害物６１又は障害物６２が対象物５０の近くにある場合（対象物５０と障害物６１又は６２との距離が所定の閾値以下である場合）に、対象物５０と第２カメラ３０との位置関係から目標位置を決定する一方、それ以外の場合に対象物５０とエンドエフェクタ１１との位置関係から目標位置を決定してもよい。
【００６３】
この実施形態によれば、情報処理装置４０は、例えば対象物５０の大きさに適した目標位置を決定することができる。これにより、情報処理装置４０はロボットアーム１０の対象物５０に対する処理動作の制御をスムーズに開始することができる。
【００６４】
〔実施形態５〕
図５は、本実施形態に係る制御システム１Ａの概略構成を示すブロック図である。なお、説明の便宜上、上記実施形態２にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【００６５】
図５に示す制御システム１Ａが上述の実施形態２に係る制御システム１と異なる点は、第１カメラ２０及び第２カメラ３０に代えて、カメラ７０を備える点、及び、情報処理装置４０に代えて、情報処理装置４０Ａを備える点である。この実施形態において、カメラ７０は、ロボットアーム１０の作業空間を撮影する。カメラ７０は、ＲＧＢ画像及び深度画像を表す撮影データを出力する。
【００６６】
情報処理装置４０Ａは、軌道生成部４１及び処理動作生成部４２に代えて、軌道生成部４１Ａ及び処理動作生成部４２Ａを備える。軌道生成部４１Ａは、状態情報、カメラ７０の撮影データ、及び第１学習済モデル４３を用いて軌道情報を生成する。また、処理動作生成部４２Ａは、状態情報、カメラ７０の撮影データ、及び第２学習済モデル４４を用いて、処理動作情報を生成する。このように、この実施形態では、ロボットアーム１０の軌道情報の生成と処理動作情報の生成とにおいて、共通のカメラ７０の撮影データが用いられる。
【００６７】
この実施形態では、軌道情報の生成と処理動作情報の生成とでそれぞれに適した学習済モデルが用いられる。これにより、軌道情報の生成及び処理動作情報の生成の両方の精度を向上させることができる。
【００６８】
（変形例）
上述の実施形態２では、第２カメラ３０はロボットアーム１０に設置されていたが、第２カメラ３０が設置される位置は上述の実施形態で示したものに限られない。例えば、第２カメラ３０は、ロボットアーム１０以外のものに固定されていてもよい。また、第２カメラは、エンドエフェクタ１１の端部に固定されていてもよい。この場合、第２カメラ３０の撮影範囲にロボットアーム１０（又はエンドエフェクタ１１）が含まれていなくてもよい。
【００６９】
上述の実施形態２では、軌道生成部４１は、ロボットアーム１０が現在位置から目標位置まで移動するまでの期間に亘って、軌道情報の生成処理を繰り返し実行した（図３のステップＳ１０４）。軌道生成部４１は、軌道情報の生成処理を繰り返し実行することなく、ロボットアーム１０の初期位置で１回だけ軌道情報の生成処理を行ってもよい。この場合、ロボット制御部４５は、ロボットアーム１０の初期位置で生成された軌道情報に従ってロボットアーム１０を制御し、ロボットアーム１０を目標位置まで徐々に移動させる制御を行う。
【００７０】
上述の各実施形態に係る情報処理装置４０により実現される機能は、複数の装置により分担されて実現されてもよい。例えば、軌道生成部４１及び処理動作生成部４２を備える第１の装置と、ロボット制御部４５を備える第２の装置とが別体の装置として構成されていてもよい。また、この場合において、複数の装置のうちの一部が、他の装置と通信ネットワークに接続されたいわゆるクラウドサーバであってもよい。
【００７１】
〔ソフトウェアによる実現例〕
情報処理装置４０の制御ブロック（特に、軌道生成部４１、処理動作生成部４２、及びロボット制御部４５）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。後者の場合、情報処理装置４０は、例えば、コンピュータ（電子計算機）を用いて構成される。
【００７２】
図６は、情報処理装置４０として用いられるコンピュータの物理的構成を例示したブロック図である。情報処理装置４０は、図６に示すように、バス４１０と、プロセッサ４０１と、主メモリ４０２と、補助メモリ４０３と、入出力インタフェース４０４とを備えたコンピュータによって構成可能である。プロセッサ４０１、主メモリ４０２、補助メモリ４０３、および入出力インタフェース４０４は、バス４１０を介して互いに接続されている。
【００７３】
プロセッサ４０１としては、例えば、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、またはこれらの組み合わせ等が用いられる。主メモリ４０２としては、例えば、半導体ＲＡＭ（random access memory）等が用いられる。
【００７４】
補助メモリ４０３としては、例えば、フラッシュメモリ、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、またはこれらの組み合わせ等が用いられる。補助メモリ４０３には、上述した情報処理装置４０の動作をプロセッサ４０１に実行させるためのプログラムが格納されている。プロセッサ４０１は、補助メモリ４０３に格納されたプログラムを主メモリ４０２上に展開し、展開したプログラムに含まれる各命令を実行する。入出力インタフェース４０４としては、例えば、ＵＳＢインタフェース、赤外線やBluetooth（登録商標）等の近距離通信インタフェース、またはこれらの組み合わせが用いられる。
【００７５】
（まとめ）
本発明の態様１に係る情報処理装置は、第１カメラにより生成された第１画像データ、ロボットアームの状態に関する状態情報、及び第１学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成する軌道生成部と、第２カメラにより生成された第２の画像データ、前記状態情報、及び第２学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成する処理動作生成部と、を備える。
【００７６】
本発明の態様２に係る情報処理装置は、前記態様１において、前記軌道生成部は、前記ロボットアームが所定の目標位置まで移動するまで前記軌道情報の生成処理を繰り返し実行することとしてもよい。
【００７７】
本発明の態様３に係る情報処理装置は、前記態様１又は２において、前記処理動作生成部が生成する処理動作情報は、前記軌道に沿って所定の目標位置まで移動した後に前記ロボットアームが行うべき処理動作を示す情報であることとしてもよい。
【００７８】
本発明の態様４に係る情報処理装置は、前記態様３において、前記軌道生成部は、前記ロボットアームの処理対象である対象物と該ロボットアームのエンドエフェクタとの位置関係が所定の条件を満たす前記ロボットアームの位置を前記目標位置として決定し、該目標位置までの前記ロボットアームの軌道を示す軌道情報を生成することとしてもよい。
【００７９】
本発明の態様５に係る情報処理装置は、前記態様４において、前記軌道生成部は、前記ロボットアームのエンドエフェクタから前記対象物までの距離が前記条件を満たす前記ロボットアームの位置を、前記目標位置として決定することとしてもよい。
【００８０】
本発明の態様６に係る情報処理装置は、前記態様３において、前記第２カメラは、前記ロボットアームに設けられており、
前記軌道生成部は、前記ロボットアームの処理対象である対象物と前記第２カメラの撮影方向との位置関係が所定の条件を満たす前記ロボットアームの位置を目標位置として決定し、前記目標位置までの前記ロボットアームの軌道を示す軌道情報を生成することとしてもよい。
【００８１】
本発明の態様７に係る情報処理装置は、前記態様６において、前記軌道生成部は、前記第２カメラの撮影範囲に前記対象物の一部又は全部が含まれる位置を前記目標位置として決定することとしてもよい。
【００８２】
本発明の態様８に係る情報処理装置は、前記態様７において、前記軌道生成部は、前記第２カメラが撮影する画像における前記対象物の領域の割合が所定の条件を満たす位置を前記目標位置として決定することとしてもよい。
【００８３】
本発明の態様９に係る情報処理装置は、前記態様４〜８において、前記軌道生成部は、前記対象物の特性、前記対象物に対して前記ロボットアームが行う処理動作の種類、及び障害物の位置のうちの少なくともいずれか一つを用いて、前記条件を変更することとしてもよい。
【００８４】
本発明の態様１０に係る情報処理装置は、前記態様１〜５において、前記第２カメラは、前記ロボットアームに設けられていることとしてもよい。
【００８５】
本発明の態様１１に係る情報処理装置は、前記態様１〜１０において、前記第１カメラは深度センサを備え、前記第１画像データは深度を表す画像データを含むこととしてもよい。
【００８６】
本発明の態様１２に係る方法は、第１カメラにより生成された第１画像データ、ロボットアームの状態に関する状態情報、及び第１学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成するステップと、第２カメラにより生成された第２の画像データ、前記状態情報、及び第２学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成するステップと、を情報処理装置が実行する方法である。
【００８７】
本発明の態様１３に係るプログラムは、上述の情報処理装置としてコンピュータを機能させるためのプログラムであって、前記各部としてコンピュータを機能させるためのプログラムである。
【００８８】
本発明の各態様に係る情報処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記情報処理装置が備える各部（ソフトウェア要素）として動作させることにより上記情報処理装置をコンピュータにて実現させる情報処理装置の学習プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【００８９】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【００９０】
１、１Ａ  制御システム
１０  ロボットアーム
４０、４０Ａ  情報処理装置
１１  エンドエフェクタ
１２  関節
１３  センサ
２０  第１カメラ
３０  第２カメラ
４１、４１Ａ  軌道生成部
４２、４２Ａ  処理動作生成部
４３  第１学習済モデル
４４  第２学習済モデル
４５  ロボット制御部
４６  軌道記憶部
５０  対象物
６１、６２  障害物
７０  カメラ
４０１  プロセッサ
４０２  主メモリ
４０３  補助メモリ
４０４  入出力インタフェース
４１０  バス
【要約】
【課題】ロボットアームがトレースすべき軌道の生成の精度、及びロボットアームの対象物に対する処理動作の生成の精度の両方を向上させる。
【解決手段】情報処理装置（４０）は、第１カメラ（２０）により生成された第１画像データ、ロボットアームの状態に関する状態情報、及び第１学習済モデル（４３）を用いて、ロボットアーム（１０）がトレースすべき軌道を示す軌道情報を生成する軌道生成部（４１）と、第２カメラ（３０）により生成された第２の画像データ、状態情報及び第２学習済モデル（４４）を用いて、ロボットアーム（１０）が行うべき処理動作を示す処理動作情報を生成する処理動作生成部（４２）と、を備える。
【選択図】図１【図１】
0006792230.tif 000002
【図２】
0006792230.tif 000003
【図３】
0006792230.tif 000004
【図４】
0006792230.tif 000005
【図５】
0006792230.tif 000006
【図６】
0006792230.tif 000007