(58)【調査した分野】(Int.Cl.,DB名)
第1カメラにより生成された第1画像データ、ロボットアームの状態に関する状態情報、及び第1学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成する軌道生成部と、
第2カメラにより生成された第2画像データ、前記状態情報、及び第2学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成する処理動作生成部と、
前記ロボットアームが所定の目標位置に移動するまでは前記軌道情報を用いて前記ロボットアームを制御し、前記ロボットアームが前記目標位置まで移動した後は前記処理動作情報を用いて前記ロボットアームを制御する制御部と、
を備え、
前記軌道生成部は、
前記ロボットアームの処理対象である対象物と該ロボットアームとの位置関係が所定の条件を満たす前記ロボットアームの位置を前記目標位置として決定し、該目標位置までの前記ロボットアームの軌道を示す軌道情報を生成し、
前記対象物の特性、前記対象物に対して前記ロボットアームが行う処理動作の種類、及び障害物の位置のうちの少なくともいずれか一つを用いて、前記条件を変更する情報処理装置。
第1カメラにより生成された第1画像データ、ロボットアームの状態に関する状態情報、及び第1学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成するステップと、
第2カメラにより生成された第2画像データ、前記状態情報、及び第2学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成するステップと、
前記ロボットアームが所定の目標位置に移動するまでは前記軌道情報を用いて前記ロボットアームを制御し、前記ロボットアームが前記目標位置まで移動した後は前記処理動作情報を用いて前記ロボットアームを制御するステップと、
を情報処理装置が実行する方法であって、
前記軌道情報を生成するステップにおいては、
前記ロボットアームの処理対象である対象物と該ロボットアームとの位置関係が所定の条件を満たす前記ロボットアームの位置を前記目標位置として決定し、該目標位置までの前記ロボットアームの軌道を示す軌道情報を生成し、
前記対象物の特性、前記対象物に対して前記ロボットアームが行う処理動作の種類、及び障害物の位置のうちの少なくともいずれか一つを用いて、前記条件を変更する、
方法。
【発明を実施するための形態】
【0009】
〔実施形態1〕
図1は、本発明の一実施形態に係る制御システム1の概略構成を示すブロック図である。制御システム1は、ロボットアーム10を制御するためのシステムである。制御システム1は、ロボットアーム10、第1カメラ20、第2カメラ30、及び情報処理装置40を備える。ロボットアーム10は、対象物に関する処理動作を行う装置である。対象物に関する処理動作は例えば、物品の把持、塗装、研磨、切削、穴あけ、又は組み付けである。
【0010】
第1カメラ20及び第2カメラ30は、ロボットアーム10の作業空間を撮影するカメラである。
第1カメラ20は、ロボットアーム10がトレースすべき軌道を示す情報(以下「軌道情報」という)の生成に適した画像を撮影可能なように、例えば、ロボットアーム10及びロボットアーム10の作業空間が撮影範囲に含まれる位置に固定される。第1カメラ20は撮影した画像を表す第1画像データを出力する。
【0011】
第2カメラ30は、ロボットアーム10が行うべき処理動作を示す情報(以下「処理動作情報」という)の生成に適した画像を撮影可能なように、例えば、ロボットアーム10の周囲の少なくとも一部(例えば、前方)が撮影範囲に含まれる位置に固定される。第2カメラ30は撮影した画像を表す第2画像データを出力する。
【0012】
情報処理装置40は、軌道生成部41、処理動作生成部42、第1学習済モデル43、及び第2学習済モデル44を備える。
【0013】
軌道生成部41は、第1カメラ20により生成された第1画像データ、ロボットアーム10の状態に関する情報(以下「状態情報」という)、及び第1学習済モデル43を用いて、軌道情報を生成する。状態情報は、ロボットアーム10の状態に関する任意の情報である。状態情報は、関節12及びエンドエフェクタ11のジョイント角度、及びエンドエフェクタ11を含むロボットアーム10の各部の座標を示す情報を含むが、これに限られない。軌道情報は、ロボットアーム10が現在位置(軌道の始点)から目標位置(軌道の終点)に移動するまでの、ロボットアーム10の各部がトレースする軌道(状態の変化)を示す情報である。軌道情報は、現在位置から目標位置までのロボットアーム10の状態情報の時系列データであり得る。
【0014】
また、以下の説明において、ロボットアーム10の現在位置は、各処理時点におけるロボットアーム10の位置及びロボットアーム10の状態をいう。目標位置は、ロボットアーム10が処理動作の対象である対象物の周囲まで移動したときのロボットアーム10の状態をいう。目標位置は例えば、ロボットアーム10が処理動作を開始可能な位置まで移動したときのロボットアーム10の状態である。
【0015】
処理動作生成部42は、第2カメラ30により生成された第2画像データ、ロボットアーム10の状態情報、及び第2学習済モデルを用いて、処理動作情報を生成する。
【0016】
第1学習済モデル43は、現在位置及び目標位置におけるロボットアーム10の状態情報及びロボットアーム10の作業空間に関する情報(以下「空間情報」という)と軌道情報との相関関係を機械学習させた学習済モデルである。この実施形態において、空間情報は例えば、ロボットアーム10の作業空間に含まれる障害物の座標、ロボットアーム10の処理対象である対象物の座標を示す情報を含む。空間情報は例えば、ロボットアーム10の作業空間を撮影した撮影画像から特定される。第1学習済モデル43は、例えば、MPNetであるが、これに限られない。第1学習済モデル43は、状態情報及び空間情報に基づいて軌道情報を生成可能な任意の機械学習モデルであり得る。例えば、第1学習済モデル43は、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、LSTM(Long Short-Term Memory)、DNN(Deep Neural Network)、又はこれらの組み合わせで実現可能である。
【0017】
第2学習済モデル44は、第1学習済モデル43とは異なるモデルであり、第2画像データ及び状態情報と処理動作情報との相関関係を機械学習させた学習済モデルである。第2学習済モデル44は、第2画像データ及び状態情報から処理動作情報を生成可能な任意の機械学習モデルであり得る。例えば、第2学習済モデル44は、CNN、RNN、LSTM、DNN、又はこれらの組み合わせで実現可能である。
【0018】
以上のように構成された情報処理装置40は、第1学習済モデル43を用いてロボットアーム10の軌道情報を生成するとともに、第2学習済モデル44を用いてロボットアーム10の処理動作情報を生成する。このように軌道情報の生成と処理動作情報の生成とにおいて、それぞれに適した学習済モデルを用いることで、軌道情報の生成及び処理動作情報の生成の両方の精度を向上させることができる。また、この実施形態では、軌道情報の生成と処理動作情報の生成とにおいて、それぞれに適した撮影画像を用いることで、軌道情報の生成及び処理動作情報の生成の両方の精度を向上させることができる。
【0019】
〔実施形態2〕
(構成)
図2は、本発明の一実施形態に係る制御システム1の外観を模式的に示す図である。なお、説明の便宜上、上記実施形態1にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0020】
制御システム1は、ロボットアーム10を対象物50の付近に移動させて対象物50を把持する一連の動作を制御するシステムである。本実施形態において、ロボットアーム10の端部にはエンドエフェクタ11が設けられている。エンドエフェクタ11は、例えば多指ハンド、又はグリッパである。この実施形態において、エンドエフェクタ11は、物品を把持する機構を有する。なお、ロボットアーム10が行う処理動作は、物品の把持に限定されず、エンドエフェクタ11を交換することによって他の処理動作が可能になるように構成されていてもよい。
【0021】
ロボットアーム10は、1以上の関節12を備えており、各関節12が駆動されることによって動作する。関節12は、アームの関節であってもよいし、エンドエフェクタ11(例えば、多指ハンド)の関節であってもよい。ロボットアーム10はまた、1以上のセンサ13(
図1参照)を備える。各センサ13には、例えば、各関節12のジョイント角度を検知する角度センサ、ロボットアーム10の特定の箇所における力覚を検知する力覚センサなどが含まれ得る。各センサ13の検知結果は情報処理装置40に出力される。
【0022】
第1カメラ20は、ロボットアーム10の作業空間を撮影し、撮影画像を表す撮影データ(第1画像データ)を生成する。第1カメラ20は、ロボットアーム10及びロボットアーム10の作業空間が撮影範囲に含まれる位置に固定される。本実施形態において、第1カメラ20は、深度センサを備え、RGB色空間により表される撮影画像(以下「RGB画像」という)及びピクセルごとの距離データを有する深度画像を表す撮影データを出力する。なお、撮影画像は、カラー画像に限らず、モノクロ画像であってもよい。
図2には1台の第1カメラ20が図示されているが、ロボットアーム10の作業空間を撮影する第1カメラ20として、複数のカメラが設けられてもよい。
【0023】
第2カメラ30は、ロボットアーム10に固定されたカメラであり、撮影画像を表す撮影データ(第2画像データ)を出力する。第2カメラ30は、エンドエフェクタ11の少なくとも一部及びエンドエフェクタ11の周囲が撮影範囲に含まれる位置(例えば、ロボットアーム10の第5軸)に設けられている。第2カメラ30は例えば、ロボットアーム10の第5軸の軸方向と撮影方向とが平行になる向きで固定される。なお、第2カメラ30は、深度センサを備えていてもよい。この場合、第2カメラ30が出力する撮影データは、深度画像を表すデータを含んでもよい。また、
図2には1台の第2カメラ30が図示されているが、第2カメラ30として、複数のカメラが設けられていてもよい。また、第2カメラ30は、ロボットアーム10の第4軸又は第6軸に固定されてもよい。
【0024】
対象物50は、ロボットアーム10が行う処理動作の目的物であり、例えばロボットアーム10が把持する物品である。障害物61、62は、ロボットアーム10の作業空間に存在する、対象物50以外の任意のものである。障害物61、62は、ロボットアーム10の移動又はロボットアームの処理動作において障害となり得る。障害物61、62は、例えば物品である。なお、
図2の例では、2つの障害物61、62が図示されているが、ロボットアーム10の作業空間に含まれる障害物の数は2に限定されず、これより多くても少なくてもよい。
【0025】
情報処理装置40は、軌道生成部41、処理動作生成部42、第1学習済モデル43、第2学習済モデル44、ロボット制御部45、及び軌道記憶部46を備える。
【0026】
軌道生成部41は、第1画像データ、状態情報、及び第1学習済モデル43を用いて、ロボットアーム10の現在位置から目標位置までの軌道を示す軌道情報を生成する。作業空間に障害物がある場合、軌道生成部41は、ロボットアーム10が現在位置から目標位置まで、障害物61、62を避けながら移動する経路を示す軌道情報を生成する。また、軌道生成部41は、ロボットアーム10が現在位置から目標位置まで移動するまでの期間に亘って、軌道情報の生成処理を繰り返し実行する。生成した軌道情報は軌道記憶部46に記憶される。
【0027】
処理動作生成部42は、第2画像データ、状態情報、及び第2学習済モデル44を用いて、処理動作情報を生成する。処理動作情報は例えば、ロボットアーム10の状態情報の時系列データであり得る。この実施形態において、処理動作生成部42が生成する処理動作情報は、軌道生成部41が生成した軌道に沿ってロボットアーム10が目標位置まで移動した後に、ロボットアーム10が行うべき処理動作を示す情報である。
【0028】
第1学習済モデル43は、現在位置及び目標位置におけるロボットアーム10の状態情報及び空間情報と軌道情報との相関関係を機械学習させた学習済モデルである。この実施形態において、空間情報は、障害物の座標情報、及び対象物の座標情報を含む。なお、第1学習済モデル43の入力情報は、状態情報及び空間情報に限られず、他の情報を含んでいてもよい。例えば、入力情報は、第1画像データを含んでいてもよい。第1学習済モデル43は、情報処理装置40又は他の装置により予め生成される。情報処理装置40又は他の装置は、状態情報及び空間情報と軌道情報との組を用いて、状態情報及び空間情報と軌道情報との相関関係を機械学習させた第1学習済モデル43を生成する。
【0029】
第2学習済モデル44は、情報処理装置40又は他の装置により予め生成される。この実施形態において、第2学習済モデル44は、エンドエフェクタ11が対象物50を把持する処理動作を行ったときの第2画像データ及び状態情報と処理動作情報との相関関係が機械学習された学習済モデルである。情報処理装置40又は他の装置は、第2画像データ及び状態情報と処理動作情報との組を用いて、第2画像データ及び状態情報と処理動作情報との相関関係を、例えば強化学習により機械学習させた第2学習済モデル44を生成する。
【0030】
ロボット制御部45は、軌道生成部41が生成した軌道情報、及び処理動作生成部42が生成した処理動作情報を用いてロボットアーム10を制御する。すなわち、ロボット制御部45は、軌道情報を用いてロボットアーム10の状態を変化させ、ロボットアーム10の状態を軌道情報の示す状態に近づけるようにロボットアーム10を制御する。また、ロボット制御部45は、処理動作情報を用いて、ロボットアーム10の状態を変化させる。
【0031】
軌道記憶部46には、軌道生成部41が生成した軌道情報が記憶される。この実施形態では、軌道記憶部46には、軌道情報としてロボットアーム10の状態情報が時系列に記憶される。
【0032】
(動作)
図3は、制御システム1によるロボットアーム10の制御の流れの一例を示すフローチャートである。なお、一部のステップは並行して、または、順序を替えて実行してもよい。
【0033】
ステップS101において、第1カメラ20で作業空間が撮影される。第1カメラ20は、撮影した作業空間を表す第1画像データを情報処理装置40に供給する。
【0034】
ステップS102において、軌道生成部41は、第1画像データに含まれるRGB画像及び深度画像を用いて、作業空間に存在する物体(対象物及び障害物)の認識を行う。物体認識の手法としては、種々の方法が利用可能であり、例えば、CNNを用いた3次元物体認識の手法であるMMSS(Multi-model Sharable and Specific Feature Learning for RGB-D Object Recognition)が用いられる。この場合、3Dデータ(RGB画像及び深度画像)と物体の種類(ラベル)との相関関係を機械学習させた学習済モデルに、3Dデータを入力することにより、作業空間に存在する物体の座標と各物体の種類(空間情報)が推定される。推定された空間情報は、各物体の種類(ラベル)を付されたポイントクラウドとして出力され得る。
図2の例では、作業空間に存在する物体として、対象物50、障害物61及び障害物62が認識される。なお、障害物については、種類の特定が行われなくてもよい。
【0035】
ステップS103において、軌道生成部41は、ロボットアーム10の移動の目標位置を決定する。目標位置の決定は、例えば以下のようにして行われる。軌道生成部41は、ステップS102で認識された物体の種類に基づいて、作業空間に存在する物体の中から対象物を特定する。この場合、対象物の種類がユーザにより予め設定されていてもよい。
図2の例では、対象物50が特定される。
【0036】
次いで、軌道生成部41は、対象物50とロボットアーム10のエンドエフェクタ11との位置関係が所定の条件を満たすロボットアーム10の状態(位置)を、移動の目標位置として決定する。所定の条件は例えば、エンドエフェクタ11から対象物50までの距離が所定の閾値以下である、といった条件であってもよい。エンドエフェクタ11から対象物50までの距離とは、例えば、エンドエフェクタ11の所定の部分から対象物50の重心までの距離、又はエンドエフェクタ11の所定の部分から対象物50の表面までの最短距離である。すなわち、ロボットアーム10の目標位置とは、例えば、エンドエフェクタ11の所定の部分から対象物50の表面までの最短距離が所定の閾値以下となるロボットアーム10の状態をいう。
【0037】
ステップS104において、軌道生成部41は、ロボットアーム10の現在位置及び目標位置におけるにおける状態情報、空間情報(対象物50及び障害物61,62の座標情報、ロボットアーム10の目標位置における状態情報)、及び第1学習済モデル43を用いて、軌道情報を生成する。この実施形態では、軌道生成部41は、ロボットアーム10の現在位置及び目標位置におけるにおける状態情報及び空間情報を第1学習済モデル43に入力し、第1学習済モデル43から出力される軌道情報を取得する。この実施形態では、軌道生成部41は、センサ13の検知結果を、現在のロボットアーム10の状態情報として取得してもよいし、当該検知結果から状態情報を算出してもよいし、第1画像データを画像解析することにより、状態情報を特定してもよい。軌道生成部41は、取得した軌道情報を軌道記憶部46に記憶するとともに、軌道情報をロボット制御部45に供給する。
【0038】
ステップS105において、ロボット制御部45は、供給される軌道情報に従ってロボットアーム10を制御し、ロボットアーム10を移動させる。すなわち、ロボット制御部45は、ロボットアーム10が軌道情報の示す軌道に沿って移動するようにロボットアーム10を制御する。このとき、センサ13の検知結果がロボットアーム10の制御に用いられてもよい。
【0039】
ステップS106において、ロボット制御部45は、ロボットアーム10の現在位置と目標位置とを比較することにより、ロボットアーム10が目標位置まで移動したかを判定する。現在位置と目標位置が一致する、又は現在位置と目標位置との差が閾値未満である場合、ロボット制御部45はロボットアーム10が目標位置に移動したと判定する。一方、現在位置と目標位置との差が閾値以上である場合、ロボット制御部45はロボットアーム10が目標位置まで移動していないと判定する。
【0040】
ロボットアーム10が目標位置まで移動した場合(ステップS106;YES)、情報処理装置40はステップS107の処理に進む。一方、目標位置まで移動していない場合(ステップS106;NO)、情報処理装置40は、ステップS101の処理に戻り、第1画像データを第1カメラ20から取得する。すなわち、情報処理装置40は、ステップS101〜S106の処理を、ロボットアーム10が目標位置に到達するまで所定の時間間隔で繰り返す。
【0041】
上述のように、ロボットアーム10が目標位置に移動するまで、ステップS101〜S106の処理が繰り返し実行される。すなわち、軌道生成部41は、ロボットアーム10が目標位置に移動するまで軌道情報の生成処理を繰り返し実行する。これらの処理が繰り返し実行されることにより、ロボットアーム10が障害物61及び障害物62に衝突しないような軌道で少しずつ移動していき、対象物50に近づいていく。
【0042】
図4は、ロボットアーム10のエンドエフェクタ11の軌道を例示する図である。
図4の例では、エンドエフェクタ11は、ロボット制御部45の制御に従い、障害物61及び障害物62に衝突しないように生成された軌道に沿って徐々に移動し、対象物50に近づいていく。軌道q11〜q19は、軌道生成部41により生成されるエンドエフェクタ11の軌道を示す。なお、
図4においては、図面が煩雑になるのを防ぐため、エンドエフェクタ11の軌道のみを図示し、ロボットアーム10全体の軌道については図示を省略している。
【0043】
ロボットアーム10が目標位置に到達すると、制御に用いられる撮影画像が第1カメラ20の撮影画像から第2カメラ30の撮影画像に切り替えられ、ステップS107〜S110の処理が実行される。ステップS107において、第2カメラ30で撮影が行われ、第2カメラ30の第2画像データが情報処理装置40に供給される。
【0044】
ステップS108において、処理動作生成部42は、ロボットアーム10の現在位置における状態情報、第2画像データ、及び第2学習済モデル44を用いて、処理動作情報を生成する。この実施形態では、処理動作生成部42は、ロボットアーム10の現在位置における状態情報、第2画像データを第2学習済モデル44に入力し、第2学習済モデル44から出力される処理動作情報を取得する。取得された処理動作情報はロボット制御部45に供給される。
【0045】
ステップS109において、ロボット制御部45は、供給される処理動作情報に従ってロボットアーム10、特にエンドエフェクタ11を制御し、ロボットアーム10に把持動作を行わせる。
【0046】
ステップS110において、情報処理装置40は、ロボットアーム10が処理動作を完了したかを判定する。処理動作が完了した場合(ステップS110;YES)、情報処理装置40は
図3の処理を終了する。一方、処理動作が完了していない場合(ステップS110;NO)、情報処理装置40は、ステップS107の処理に戻り、第2画像データを用いた処理動作制御を継続する。すなわち、ロボットアーム10の処理動作が完了するまで、情報処理装置40は所定の時間間隔でステップS107〜S109の処理を繰り返し実行する。これらの処理が繰り返し実行されることにより、ロボットアーム10が対象物50の把持動作を行う。
【0047】
制御システム1が
図3に示す処理を実行してロボットアーム10を制御することにより、ロボットアーム10が対象物50を把持する。ロボットアーム10が対象物50の把持動作を完了した後、ロボットアーム10は他の動作を実行してもよい。
【0048】
例えば、ロボットアーム10は対象物50を他の場所に移動させる動作を実行してもよい。この場合、情報処理装置40のロボット制御部45は、軌道記憶部46に記憶された軌道情報を用いてロボットアーム10を制御し、ロボットアーム10に対象物50を把持させたまま、対象物50を移動させる。ロボット制御部45は例えば、軌道記憶部46に記憶された時系列の状態情報を逆順に読み出し、読み出した状態情報に従いロボットアーム10を制御することで、ロボットアーム10の状態を目標位置から初期位置まで戻す制御を行うことができる。
【0049】
また、情報処理装置40は、新たな目標位置を設定し、ロボットアーム10の現在位置及び新たな目標位置における状態情報、第1画像データから取得した空間情報、及び第1学習済モデル43を利用して、新たな目標位置までの軌道情報を生成し、当該軌道情報に沿ってロボットアーム10を移動させてもよい。
【0050】
本実施形態では、情報処理装置40は、第1カメラ20の撮影画像と第1学習済モデル43とを用いてロボットアーム10の軌道情報を生成するとともに、第2カメラ30の撮影画像と第2学習済モデル44とを用いてロボットアーム10の処理動作情報を生成する。このように軌道情報の生成と処理動作情報の生成とにおいて、それぞれに適した学習済モデル及び撮影画像を用いることで、軌道情報の生成の精度の向上及び処理動作情報の生成の精度の向上を両立させることができる。
【0051】
また、一般に、ロボットアーム10の処理動作制御は、ロボットアーム10の移動制御よりも細かい制御が必要となる。処理動作制御においては、数ミリ程度のわずかなずれが生じた場合であっても、ロボットアーム10が対象物50に衝突してしまい、対象物50にキズが付いてしまったり、対象物50が破損してしまったりするためである。本実施形態では、対象物50とエンドエフェクタ11との位置関係が所定の条件を満たすロボットアーム10の位置が目標位置とされ、ロボットアーム10が目標位置まで移動したときに、ロボットアーム10の制御が移動制御から処理動作制御に切り替えられる。このように、処理動作制御より粗い制御である移動制御を目標位置で終了することにより、エンドエフェクタ11と対象物50との接触を抑制することができる。また、目標位置から処理動作制御を開始することにより、第2カメラ30に確実に対象物50を撮影し、処理動作制御を実行することができる。
【0052】
また、従来は数学的な探索によりロボットアーム10の軌道情報が生成される場合があった。しかしながら、この場合、作業空間の次元に応じて計算量が指数関数的に増加して探索に時間がかかってしまうため、リアルタイムでの軌道情報の生成を行うことは困難であった。これに対し本実施形態では、情報処理装置40が第1学習済モデル43を用いて軌道情報の生成を行うことにより、短時間で軌道情報を生成することができる。そのため、ロボットアーム10のリアルタイムな軌道情報の生成が可能となる。すなわち、ロボットアーム10の移動中に障害物61や対象物50が移動する場合であっても、情報処理装置40がロボットアーム10の軌道情報をリアルタイムに更新することができる。
【0053】
また、この実施形態では、第1カメラ20が深度センサを備えることにより、軌道生成部41は、障害物61及び62に衝突しない軌道情報を精度よく生成することができる。
【0054】
また、1のカメラの撮影画像で軌道情報の生成と処理動作情報の生成を行う場合、深度センサを備えた高解像度のカメラを、作業空間を撮影可能な位置に設置する必要がある。このようなカメラは高価である。これに対して、この実施形態では、高価なカメラを利用することなく、2つの安価なカメラの組み合わせにより、軌道情報の生成と処理動作情報の生成を行うことができる。この結果、制御システム1を安価に構成することができる。
【0055】
〔実施形態3〕
本発明の他の実施形態を説明する。本実施形態が上述した実施形態2と異なる点は、情報処理装置40が行う、ロボットアーム10の目標位置の決定処理(
図3のステップS103)の内容が異なる点である。なお、説明の便宜上、上記実施形態2にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0056】
この実施形態では、軌道生成部41は、対象物50と第2カメラ30の撮影方向との位置関係が所定の条件を満たすロボットアーム10の位置を目標位置として決定し、この目標位置までのロボットアーム10の軌道を示す軌道情報を生成する。この場合、軌道生成部41は例えば、第2カメラ30の撮影範囲に対象物50の一部又は全部が含まれる位置を目標位置として決定する。より具体的には例えば、軌道生成部41は、第2カメラ30の画角に対象物50全体が含まれるロボットアーム10の位置を目標位置として決定する。
【0057】
この場合、情報処理装置40のロボット制御部45は、ロボットアーム10が目標位置まで移動したかの判定処理(
図3のステップS106の処理)を、現在位置と目標位置との比較ではなく、例えば以下のようにして行ってもよい。ロボット制御部45は、第1カメラ20の撮影画像を解析することにより物体認識を行い、第1カメラ20の撮影画像に含まれる対象物50と第2カメラ30の撮影方向との位置関係を特定する。ロボット制御部45は、特定した位置関係が所定の条件を満たすかを判定する。特定した位置関係が所定の条件を満たす場合、ロボット制御部45はロボットアーム10が目標位置に移動したと判定する。一方、位置関係が所定の条件を満たしていない場合、ロボット制御部45はロボットアーム10が目標位置に移動していないと判定する。
【0058】
また、ロボットアーム10の目標位置の決定方法は上述の実施形態で示したものに限られず、他の手法が用いられてもよい。例えば、軌道生成部41は、第2カメラ30の撮影画像における対象物50の領域の割合が所定の条件を満たす位置を目標位置として決定してもよい。例えば、軌道生成部41は、第2カメラの撮影画像において対象物50が占める割合が50%以上となる位置を目標位置として決定する。
【0059】
この場合、情報処理装置40のロボット制御部45は、ロボットアーム10が目標位置まで移動したかの判定処理(
図3のステップS106の処理)を、現在位置と目標位置との比較ではなく、例えば以下のようにして行ってもよい。ロボット制御部45は、第1カメラ20の撮影画像を解析し、第1カメラ20の撮影画像に含まれる対象物50と第2カメラ30とを認識する。ロボット制御部45は、認識した対象物50と第2カメラ30との位置関係、第2カメラの撮影方向、及び第2カメラの画角等の情報を用いて、第2カメラの撮影画像において対象物50が占める割合を算出する。算出した割合が50%以上である場合、ロボット制御部45は、ロボットアーム10が目標位置に移動したと判定する。一方、算出した割合が50%未満である場合、ロボット制御部45は、ロボットアーム10が目標位置に移動していないと判定する。
【0060】
この実施形態では、処理動作制御の開始時における、第2カメラ30による対象物50の所望の撮影状態に応じて、目標位置を決定することができる。これにより、処理動作制御をスムーズに実施することができる。
【0061】
〔実施形態4〕
次いで、本発明の他の実施形態を説明する。本実施形態が上述した実施形態2と異なる点は、情報処理装置40が行う、ロボットアーム10の目標位置の決定処理(
図3のステップS103)の内容が異なる点である。なお、なお、説明の便宜上、上記実施形態2にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0062】
この実施形態では、軌道生成部41は、対象物50の特性、対象物50に対してロボットアーム10が行う処理動作の種類、並びに、障害物61及び障害物62の位置のうちの少なくともいずれか一つを用いて、目標位置の決定方法を変更する。対象物50の特性は、対象物50の特徴又は性質であり、例えば対象物50のサイズ又は形状である。ロボットアーム10が行う処理動作は例えば、物品の把持、塗装、研磨、切削、穴あけ、又は組み付けである。この場合、軌道生成部41は例えば、対象物50の大きさが大きいほどエンドエフェクタ11と対象物50との距離の閾値が大きくなるように目標位置を決定してもよい。また、他の例として、軌道生成部41は、ロボットアーム10が行う処理動作の種類によって上記閾値や目標位置における対象物50に対するロボットアーム10の角度を異ならせてもよい。また、他の例として、軌道生成部41は、障害物61又は障害物62が対象物50の近くにある場合(対象物50と障害物61又は62との距離が所定の閾値以下である場合)に、対象物50と第2カメラ30との位置関係から目標位置を決定する一方、それ以外の場合に対象物50とエンドエフェクタ11との位置関係から目標位置を決定してもよい。
【0063】
この実施形態によれば、情報処理装置40は、例えば対象物50の大きさに適した目標位置を決定することができる。これにより、情報処理装置40はロボットアーム10の対象物50に対する処理動作の制御をスムーズに開始することができる。
【0064】
〔実施形態5〕
図5は、本実施形態に係る制御システム1Aの概略構成を示すブロック図である。なお、説明の便宜上、上記実施形態2にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0065】
図5に示す制御システム1Aが上述の実施形態2に係る制御システム1と異なる点は、第1カメラ20及び第2カメラ30に代えて、カメラ70を備える点、及び、情報処理装置40に代えて、情報処理装置40Aを備える点である。この実施形態において、カメラ70は、ロボットアーム10の作業空間を撮影する。カメラ70は、RGB画像及び深度画像を表す撮影データを出力する。
【0066】
情報処理装置40Aは、軌道生成部41及び処理動作生成部42に代えて、軌道生成部41A及び処理動作生成部42Aを備える。軌道生成部41Aは、状態情報、カメラ70の撮影データ、及び第1学習済モデル43を用いて軌道情報を生成する。また、処理動作生成部42Aは、状態情報、カメラ70の撮影データ、及び第2学習済モデル44を用いて、処理動作情報を生成する。このように、この実施形態では、ロボットアーム10の軌道情報の生成と処理動作情報の生成とにおいて、共通のカメラ70の撮影データが用いられる。
【0067】
この実施形態では、軌道情報の生成と処理動作情報の生成とでそれぞれに適した学習済モデルが用いられる。これにより、軌道情報の生成及び処理動作情報の生成の両方の精度を向上させることができる。
【0068】
(変形例)
上述の実施形態2では、第2カメラ30はロボットアーム10に設置されていたが、第2カメラ30が設置される位置は上述の実施形態で示したものに限られない。例えば、第2カメラ30は、ロボットアーム10以外のものに固定されていてもよい。また、第2カメラは、エンドエフェクタ11の端部に固定されていてもよい。この場合、第2カメラ30の撮影範囲にロボットアーム10(又はエンドエフェクタ11)が含まれていなくてもよい。
【0069】
上述の実施形態2では、軌道生成部41は、ロボットアーム10が現在位置から目標位置まで移動するまでの期間に亘って、軌道情報の生成処理を繰り返し実行した(
図3のステップS104)。軌道生成部41は、軌道情報の生成処理を繰り返し実行することなく、ロボットアーム10の初期位置で1回だけ軌道情報の生成処理を行ってもよい。この場合、ロボット制御部45は、ロボットアーム10の初期位置で生成された軌道情報に従ってロボットアーム10を制御し、ロボットアーム10を目標位置まで徐々に移動させる制御を行う。
【0070】
上述の各実施形態に係る情報処理装置40により実現される機能は、複数の装置により分担されて実現されてもよい。例えば、軌道生成部41及び処理動作生成部42を備える第1の装置と、ロボット制御部45を備える第2の装置とが別体の装置として構成されていてもよい。また、この場合において、複数の装置のうちの一部が、他の装置と通信ネットワークに接続されたいわゆるクラウドサーバであってもよい。
【0071】
〔ソフトウェアによる実現例〕
情報処理装置40の制御ブロック(特に、軌道生成部41、処理動作生成部42、及びロボット制御部45)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。後者の場合、情報処理装置40は、例えば、コンピュータ(電子計算機)を用いて構成される。
【0072】
図6は、情報処理装置40として用いられるコンピュータの物理的構成を例示したブロック図である。情報処理装置40は、
図6に示すように、バス410と、プロセッサ401と、主メモリ402と、補助メモリ403と、入出力インタフェース404とを備えたコンピュータによって構成可能である。プロセッサ401、主メモリ402、補助メモリ403、および入出力インタフェース404は、バス410を介して互いに接続されている。
【0073】
プロセッサ401としては、例えば、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、またはこれらの組み合わせ等が用いられる。主メモリ402としては、例えば、半導体RAM(random access memory)等が用いられる。
【0074】
補助メモリ403としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、またはこれらの組み合わせ等が用いられる。補助メモリ403には、上述した情報処理装置40の動作をプロセッサ401に実行させるためのプログラムが格納されている。プロセッサ401は、補助メモリ403に格納されたプログラムを主メモリ402上に展開し、展開したプログラムに含まれる各命令を実行する。入出力インタフェース404としては、例えば、USBインタフェース、赤外線やBluetooth(登録商標)等の近距離通信インタフェース、またはこれらの組み合わせが用いられる。
【0075】
(まとめ)
本発明の態様1に係る情報処理装置は、第1カメラにより生成された第1画像データ、ロボットアームの状態に関する状態情報、及び第1学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成する軌道生成部と、第2カメラにより生成された第2の画像データ、前記状態情報、及び第2学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成する処理動作生成部と、を備える。
【0076】
本発明の態様2に係る情報処理装置は、前記態様1において、前記軌道生成部は、前記ロボットアームが所定の目標位置まで移動するまで前記軌道情報の生成処理を繰り返し実行することとしてもよい。
【0077】
本発明の態様3に係る情報処理装置は、前記態様1又は2において、前記処理動作生成部が生成する処理動作情報は、前記軌道に沿って所定の目標位置まで移動した後に前記ロボットアームが行うべき処理動作を示す情報であることとしてもよい。
【0078】
本発明の態様4に係る情報処理装置は、前記態様3において、前記軌道生成部は、前記ロボットアームの処理対象である対象物と該ロボットアームのエンドエフェクタとの位置関係が所定の条件を満たす前記ロボットアームの位置を前記目標位置として決定し、該目標位置までの前記ロボットアームの軌道を示す軌道情報を生成することとしてもよい。
【0079】
本発明の態様5に係る情報処理装置は、前記態様4において、前記軌道生成部は、前記ロボットアームのエンドエフェクタから前記対象物までの距離が前記条件を満たす前記ロボットアームの位置を、前記目標位置として決定することとしてもよい。
【0080】
本発明の態様6に係る情報処理装置は、前記態様3において、前記第2カメラは、前記ロボットアームに設けられており、
前記軌道生成部は、前記ロボットアームの処理対象である対象物と前記第2カメラの撮影方向との位置関係が所定の条件を満たす前記ロボットアームの位置を目標位置として決定し、前記目標位置までの前記ロボットアームの軌道を示す軌道情報を生成することとしてもよい。
【0081】
本発明の態様7に係る情報処理装置は、前記態様6において、前記軌道生成部は、前記第2カメラの撮影範囲に前記対象物の一部又は全部が含まれる位置を前記目標位置として決定することとしてもよい。
【0082】
本発明の態様8に係る情報処理装置は、前記態様7において、前記軌道生成部は、前記第2カメラが撮影する画像における前記対象物の領域の割合が所定の条件を満たす位置を前記目標位置として決定することとしてもよい。
【0083】
本発明の態様9に係る情報処理装置は、前記態様4〜8において、前記軌道生成部は、前記対象物の特性、前記対象物に対して前記ロボットアームが行う処理動作の種類、及び障害物の位置のうちの少なくともいずれか一つを用いて、前記条件を変更することとしてもよい。
【0084】
本発明の態様10に係る情報処理装置は、前記態様1〜5において、前記第2カメラは、前記ロボットアームに設けられていることとしてもよい。
【0085】
本発明の態様11に係る情報処理装置は、前記態様1〜10において、前記第1カメラは深度センサを備え、前記第1画像データは深度を表す画像データを含むこととしてもよい。
【0086】
本発明の態様12に係る方法は、第1カメラにより生成された第1画像データ、ロボットアームの状態に関する状態情報、及び第1学習済モデルを用いて、前記ロボットアームがトレースすべき軌道を示す軌道情報を生成するステップと、第2カメラにより生成された第2の画像データ、前記状態情報、及び第2学習済モデルを用いて、前記ロボットアームが行うべき処理動作を示す処理動作情報を生成するステップと、を情報処理装置が実行する方法である。
【0087】
本発明の態様13に係るプログラムは、上述の情報処理装置としてコンピュータを機能させるためのプログラムであって、前記各部としてコンピュータを機能させるためのプログラムである。
【0088】
本発明の各態様に係る情報処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記情報処理装置が備える各部(ソフトウェア要素)として動作させることにより上記情報処理装置をコンピュータにて実現させる情報処理装置の学習プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【0089】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【解決手段】情報処理装置(40)は、第1カメラ(20)により生成された第1画像データ、ロボットアームの状態に関する状態情報、及び第1学習済モデル(43)を用いて、ロボットアーム(10)がトレースすべき軌道を示す軌道情報を生成する軌道生成部(41)と、第2カメラ(30)により生成された第2の画像データ、状態情報及び第2学習済モデル(44)を用いて、ロボットアーム(10)が行うべき処理動作を示す処理動作情報を生成する処理動作生成部(42)と、を備える。