(57)【要約】【課題】ロボットの動作に要する時間を短縮する。【解決手段】ロボット制御装置は、ハンドアイカメラを用いて、ロボットの第１の動作目標を決定するための画像処理に用いられる第１の画像と、第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影するステップ３０１，３０４と、第１の画像及び第２の画像に基づいて、第１の動作目標及び第２の動作目標をそれぞれ決定するための画像処理を行うステップ３０２，３０５と、第１の動作目標又は第２の動作目標に基づいて、ロボットの動作を制御するステップ３０３を実行する。ここで、ステップ３０５は、第１の動作目標に基づくロボットの動作が行われているときに、第２の画像に基づいて第２の動作目標を決定するための画像処理を行う。第１の動作目標に基づくロボット６０の動作が終わる前に、撮影装置８２は、第２の画像を撮影する。【選択図】図３
2020142323.tif 000002
【特許請求の範囲】
【請求項１】
ロボットに取り付けられた撮影装置であって、前記ロボットの第１の動作目標を決定するための画像処理に用いられる第１の画像と、前記ロボットの前記第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影する撮影装置と、
前記第１の画像及び前記第２の画像に基づいて、前記第１の動作目標及び前記第２の動作目標をそれぞれ決定するための画像処理を行う画像処理装置と、
前記１の動作目標又は前記第２の動作目標に基づいて、前記ロボットの動作を制御するコントローラと、を備え、
前記第１の動作目標に基づく前記ロボットの動作が行われているときに、前記画像処理装置は、前記第２の画像に基づいて前記第２の動作目標を決定するための画像処理を行い、
前記第１の動作目標に基づく前記ロボットの動作が終わる前に、前記撮影装置は、前記第２の画像を撮影する、ロボット制御装置。
【請求項２】
請求項１に記載のロボット制御装置であって、
前記第１の画像は、第１の物体の画像であり、
前記第２の画像は、前記第１の物体とは異なる第２の物体の画像であり、
前記第１の動作目標は、前記ロボットが前記第１の物体を操作するための前記ロボットの目標位置及び目標姿勢であり、
前記第２の動作目標は、前記ロボットが前記第２の物体を操作するための前記ロボットの目標位置及び目標姿勢である、ロボット制御装置。
【請求項３】
ロボット制御装置が、
ロボットに取り付けられた撮影装置を用いて、前記ロボットの第１の動作目標を決定するための画像処理に用いられる第１の画像と、前記ロボットの前記第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影するステップと、
前記第１の画像及び前記第２の画像に基づいて、前記第１の動作目標及び前記第２の動作目標をそれぞれ決定するための画像処理を行うステップと、
前記１の動作目標又は前記第２の動作目標に基づいて、前記ロボットの動作を制御するステップと、を実行し、
前記画像処理を行うステップは、前記第１の動作目標に基づく前記ロボットの動作が行われているときに、前記第２の画像に基づいて前記第２の動作目標を決定するための画像処理を行うことを含み、
前記第１の動作目標に基づく前記ロボットの動作が終わる前に、前記撮影装置は、前記第２の画像を撮影する、ロボット制御方法。
【請求項４】
ロボットに取り付けられた撮影装置に、前記ロボットの第１の動作目標を決定するための画像処理に用いられる第１の画像と、前記ロボットの前記第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影することを指示するステップと、
前記第１の画像及び前記第２の画像に基づいて、前記第１の動作目標及び前記第２の動作目標をそれぞれ決定するための画像処理を行うことを画像処理装置に指示するステップと、
前記１の動作目標又は前記第２の動作目標に基づいて、前記ロボットの動作を制御することをコントローラに指示するステップと、
をコンピュータシステムに実行させるロボット制御プログラムであって、
前記画像処理を行うステップは、前記第１の動作目標に基づく前記ロボットの動作が行われているときに、前記第２の画像に基づいて前記第２の動作目標を決定するための画像処理を行うことを含み、
前記第１の動作目標に基づく前記ロボットの動作が終わる前に、前記撮影装置は、前記第２の画像を撮影する、ロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボット制御装置、ロボット制御方法、及びロボット制御プログラムに関わる。
【背景技術】
【０００２】
ファクトリーオートメーションの分野では、ワークを撮影して得られる画像からロボットに対するワークの相対的な位置及び姿勢を計算するための画像処理を行い、その計算結果に基づいて、ロボットがワークを把持するためのロボットの目標位置及び目標姿勢を計算することにより、ロボットによるワークのピッキング動作を制御している。この種の画像撮影に用いられるカメラは、ロボットビジョンと呼ばれており、その取り付け方式には、種々の方式がある。例えば、特許文献１に記載されているように、ロボットにロボットビジョンを取り付ける方式が知られている。ロボットに取り付けられたロボットビジョンは、ハンドアイカメラとも呼ばれる。ハンドアイカメラによれば、ロボットの動作を通じてカメラ視点を自由に動かすことができるため、ロボット上に設置された固定型のカメラから認識し難い位置にあるワークの位置及び姿勢を十分に特定できるという利点を有する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−９３０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の方式では、ワークを撮影して得られる画像から、ロボットがワークを把持するためのロボットの目標位置及び目標姿勢を計算するための画像処理が終わるまでロボットの動作は停止しており、画像処理の完了後にロボットによるワークのピッキング動作を開始している。このため、画像処理に要する時間の分だけロボットの動作開始に遅れが生じることとなり、ピッキング動作に要する時間が長引いてしまう。
【０００５】
そこで、本発明はこのような問題を解決し、ロボットの動作に要する時間を短縮することのできるロボット制御装置、ロボット制御方法、及びロボット制御プログラムを提案することを課題とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明に関わるロボット制御装置は、ロボットに取り付けられた撮影装置であって、ロボットの第１の動作目標を決定するための画像処理に用いられる第１の画像と、ロボットの第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影する撮影装置と、第１の画像及び第２の画像に基づいて、第１の動作目標及び第２の動作目標をそれぞれ決定するための画像処理を行う画像処理装置と、第１の動作目標又は第２の動作目標に基づいて、ロボットの動作を制御するコントローラと、を備える。第１の動作目標に基づくロボットの動作が行われているときに、画像処理装置は、第２の画像に基づいて第２の動作目標を決定するための画像処理を行う。第１の動作目標に基づくロボットの動作が終わる前に、撮影装置は、第２の画像を撮影する。このように、第１の動作目標に基づくロボットの動作と、第１の動作目標に続く第２の動作目標を決定するための画像処理とを同時に並行して行うことにより、画像処理に要する時間の分だけロボットの動作開始を遅らせる必要がなく、ロボットの動作に要する時間を短縮することができる。
【０００７】
第１の画像は、例えば、第１の物体の画像でもよい。第２の画像は、例えば、第１の物体とは異なる第２の物体の画像でもよい。第１の動作目標は、例えば、ロボットが第１の物体を操作するためのロボットの目標位置及び目標姿勢でもよい。第２の動作目標は、例えば、ロボットが第２の物体を操作するためのロボットの目標位置及び目標姿勢でもよい。これにより、ロボットが第１の物体及び第２の物体のそれぞれを操作するのに要する時間を短縮できる。
【０００８】
本発明に関わるロボット制御方法は、ロボット制御装置が、ロボットに取り付けられた撮影装置を用いて、ロボットの第１の動作目標を決定するための画像処理に用いられる第１の画像と、ロボットの第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影するステップと、第１の画像及び第２の画像に基づいて、第１の動作目標及び第２の動作目標をそれぞれ決定するための画像処理を行うステップと、第１の動作目標又は第２の動作目標に基づいて、ロボットの動作を制御するステップと、を実行する。ここで、画像処理を行うステップは、第１の動作目標に基づくロボットの動作が行われているときに、第２の画像に基づいて第２の動作目標を決定するための画像処理を行うことを含む。第１の動作目標に基づくロボットの動作が終わる前に、撮影装置は、第２の画像を撮影する。このように、第１の動作目標に基づくロボットの動作と、第１の動作目標に続く第２の動作目標を決定するための画像処理とを同時に並行して行うことにより、画像処理に要する時間の分だけロボットの動作開始を遅らせる必要がなく、ロボットの動作に要する時間を短縮することができる。
【０００９】
本発明に関わるロボット制御プログラムは、ロボットに取り付けられた撮影装置に、ロボットの第１の動作目標を決定するための画像処理に用いられる第１の画像と、ロボットの第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影することを指示するステップと、第１の画像及び第２の画像に基づいて、第１の動作目標及び第２の動作目標をそれぞれ決定するための画像処理を行うことを画像処理装置に指示するステップと、第１の動作目標又は第２の動作目標に基づいて、ロボットの動作を制御することをコントローラに指示するステップと、をコンピュータシステムに実行させる。ここで、画像処理を行うステップは、第１の動作目標に基づくロボットの動作が行われているときに、第２の画像に基づいて第２の動作目標を決定するための画像処理を行うことを含む。第１の動作目標に基づくロボットの動作が終わる前に、撮影装置は、第２の画像を撮影する。このように、第１の動作目標に基づくロボットの動作と、第１の動作目標に続く第２の動作目標を決定するための画像処理とを同時に並行して行うことにより、画像処理に要する時間の分だけロボットの動作開始を遅らせる必要がなく、ロボットの動作に要する時間を短縮することができる。
【発明の効果】
【００１０】
本発明によれば、ロボットの動作に要する時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に関わるロボット制御装置の構成を示す説明図である。
【図２】本実施形態に関わるロボットの動作を示す説明図である。
【図３】本実施形態に関わるロボット制御方法の処理の流れの一例を示すフローチャートである。
【図４】本実施形態に関わるロボット制御装置のハードウェア構成の一例を示す説明図である。
【図５】本実施形態に関わるロボット制御方法の処理の流れの一例を示すフローチャートである。
【図６】本実施形態に関わるロボット制御方法の処理の流れの一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一側面に関わる実施形態を図面に基づいて説明する。本発明の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更又は改良され得るととともに、本発明には、その等価物も含まれる。なお、同一符号は、同一の構成要素を示すものとし、重複する説明は省略する。
【００１３】
［適用例］
まず、図１乃至図３を参照しながら、本発明の適用例について説明する。
図１は本実施形態に関わるロボット制御装置１００の構成を示す説明図である。ロボット制御装置１００は、そのハードウェア資源として、コンピュータシステム１０と、ロボット６０の手首に取り付けられたハンドアイカメラ８０と、ロボット６０の動作を制御するコントローラ７０とを備える。ロボット６０は、物体９０（例えば、仕掛け品又は部品などのワーク）を操作（例えば、把持、吸着、移動、組み立て、又は挿入など）するためのロボットハンド６２を備えている。ロボット制御装置１００は、ハンドアイカメラ８０を用いて撮影された画像の画像処理を通じて、ロボット６０の動作目標を決定する。ロボット６０の動作目標を決定するための画像処理に用いられる画像は、例えば、ロボット６０によって操作される物体９０の画像でもよく、或いはロボット６０の動作環境９１（例えば、ロボット６０によって操作される物体９０の置き場）の画像でもよい。
【００１４】
物体９０の画像は、２次元の画像でもよく、或いは３次元の画像でもよい。３次元の画像は、ハンドアイカメラ８０と物体９０との間の距離情報（奥行情報）を有する画像を意味する。２次元の画像は、そのような奥行情報を有しない。３次元の画像の例として例えば、物体９０の３次元形状に関する情報を高さマップと呼ばれる形式で提供する３次元点群を挙げることができる。ハンドアイカメラ８０は、２次元又は３次元の画像を撮影するように構成されている。３次元の画像を撮影するように構成されるハンドアイカメラは、例えば、（i）２次元の画像を撮影するイメージセンサの撮影位置を変えながら複数の２次元の画像を撮影し、ステレオ立体視の画像処理により、奥行情報を含む３次元の画像を得るように構成されているイメージセンサ、（ii）物体を複数の異なる方向から同時に撮影することにより奥行情報を含む３次元の画像を得るように構成されているステレオカメラ、及び（iii）３次元点群を得るように構成されている距離センサを含む。距離センサの方式としては、例えば、三角法方式、飛行時間方式（タイム・オブ・フライト方式）、又は位相差方式などを用いることができる。
【００１５】
ロボット制御装置１００は、例えば、ハンドアイカメラ８０を視点とする物体９０の画像の見え方からロボット６０に対する物体９０の相対的な位置及び姿勢を計算するための画像処理を行い、その計算結果に基づいてロボット６０の動作目標を計算してもよい。ロボット６０の動作目標は、例えば、ロボット６０が物体を操作するために要求されるロボット６０の目標位置及び目標姿勢である。この種の画像処理として、例えば、モデルベーストマッチングと呼ばれるアルゴリズムを用いることができる。ロボット６０が物体９０をピッキングし、所定の位置にプレイスする操作（以下、「ピックアンドプレイス」と呼ぶ）においては、ロボット６０の動作目標は、ロボット６０が物体９０をピックアンドプレイスするために要求されるロボット６０の目標位置及び目標姿勢である。ロボット６０の動作目標を決定するための画像処理に用いられる画像に複数の物体９０が映っている場合には、ロボット６０の動作目標を決定するための画像処理は、複数９０の物体の中からどの物体９０を選択するのかを決定する計算処理を含んでもよい。なお、ハンドアイカメラ８０として、物体９０の２次元の画像を撮影するように構成されているものを用いて、物体９０をピックアンドプレイスする場合には、物体９０の形状が既知であり、且つ、物体９０同士が重ならないように配置されている必要がある。
【００１６】
ロボット制御装置１００は、例えば、ロボット６０の動作環境９１の画像から物体９０の置き場所を計算するための画像処理を行い、その計算結果に基づいてロボット６０の動作目標を計算してもよい。この例では、ロボット６０の動作目標は、ロボット６０が物体９０を置き場所に置くために要求されるロボット６０の目標位置及び目標姿勢である。
【００１７】
なお、図１において、符号２０１は、ロボット６０を基準とする座標系を示し、符号２０２は、ロボットハンド６２を基準とする座標系を示し、符号２０３は、ハンドアイカメラ８０を基準とする座標系を示す。ハンドアイカメラ８０を視点とする物体９０の画像の見え方から、ハンドアイカメラ８０に対する物体９０の相対的な位置及び姿勢（座標系２０３における物体９０の位置及び姿勢）を計算により求めることができる。座標系２０３と座標系２０２との関係は既知であるため、座標系２０３における物体９０の位置及び姿勢を、変換行列を用いて、座標系２０２における物体９０の位置及び姿勢に変換することができる。ロボット６０には、各関節の角度を示す検出情報を出力するエンコーダが組み込まれており、エンコーダから出力される検出情報が示す各関節の角度に基づいて、座標系２０２における物体９０の位置及び姿勢を座標系２０１における物体９０の位置及び姿勢に変換することができる。
【００１８】
ロボット６０の目標姿勢（各関節のジョイント角）の候補は、逆運動学により決定される。ロボット６０の目標姿勢の候補が複数存在する場合は、評価関数の評価値を基に何れかの候補を選択してもよい。このような評価関数として、例えば、ロボット６０の移動経路の長さに応じて変化する評価値を出力する評価関数を用いてもよい。
【００１９】
図２は本実施形態に関わるロボット６０の動作を示す説明図である。図３は本実施形態に関わるロボット制御方法の処理の流れの一例を示すフローチャートである。この例では、ロボット６０が、複数の異なる物体９０のうち何れか一つの物体９０（以下、「第１の物体９０Ａ」と呼ぶ）をピックアンドプレイスし、続いて、何れか一つの物体９０（以下、「第２の物体９０Ｂ」と呼ぶ）をピックアンドプレイスする場合を説明する。ロボット６０が第１の物体９０Ａをピックアンドプレイスするためにために要求されるロボット６０の目標位置及び目標姿勢を「第１の動作目標」と呼ぶ。ロボット６０が第２の物体９０Ｂをピックアンドプレイスするためにために要求されるロボット６０の目標位置及び目標姿勢を「第２の動作目標」と呼ぶ。第１の動作目標を決定するための画像処理に用いられる第１の物体９０Ａの画像を「第１の画像」と呼ぶ。第２の動作目標を決定するための画像処理に用いられる第２の物体９０Ｂの画像を「第２の画像」と呼ぶ。
【００２０】
ステップ３０１において、ロボット制御装置１００は、ロボット６０の第１の動作目標を決定するための画像処理に用いられる第１の物体９０Ａの第１の画像を撮影する。
【００２１】
ステップ３０２において、ロボット制御装置１００は、第１の動作目標を決定するための画像処理を行う。このステップでは、ロボット制御装置１００は、第１の物体９０Ａの第１の画像の見え方から、上述の座標変換を通じて、ロボット６０に対する第１の物体９０Ａの相対的な位置及び姿勢を計算し、ロボット６０が第１の物体９０Ａをピックアンドプレイスするために要求されるロボット６０の第１の動作目標（第１の目標位置及び第１の目標姿勢）を計算する。
【００２２】
ステップ３０３において、ロボット制御装置１００は、第１の動作目標に基づいて、ロボット６０の動作を制御する。このステップでは、ロボット制御装置１００は、ロボット６０の現在の位置及び姿勢がそれぞれ第１の目標位置及び第１の目標姿勢に一致するように、ロボット６０の各関節を駆動するモータの回転角を制御するための駆動指令をロボット６０に出力する。
【００２３】
ステップ３０４において、ロボット制御装置１００は、ロボット６０の第２の動作目標を決定するための画像処理に用いられる第２の画像を撮影する。このステップでは、第１の動作目標に基づくロボット６０の動作（ステップ３０３）が終わる前に、ロボット制御装置１００は、ハンドアイカメラ８０による第２の物体９０Ｂの撮影が可能となるようにロボット６０の位置及び姿勢を制御し、ハンドアイカメラ８０を第２の物体９０Ｂに向けて第２の画像を撮影すればよい。例えば、第１の動作目標に基づくロボット６０の動作（ステップ３０３）が行われている最中に、ロボット制御装置１００は、第２の画像を撮影してもよい。或いは、第１の動作目標に基づくロボット６０の動作（ステップ３０３）が行われる前に、ロボット制御装置１００は、第２の画像を撮影してもよい。
【００２４】
ステップ３０５において、ロボット制御装置１００は、第２の動作目標を決定するための画像処理を行う。このステップでは、ロボット制御装置１００は、第２の物体９０Ｂの第２の画像の見え方から、上述の座標変換を通じて、ロボット６０に対する第２の物体９０Ｂの相対的な位置及び姿勢を計算し、ロボット６０が第２の物体９０Ｂを操作するために要求されるロボット６０の第２の動作目標（第２の目標位置及び第２の目標姿勢）を計算する。
【００２５】
ステップ３０６において、ロボット制御装置１００は、第２の動作目標に基づく動作を行わずに作業を終了するか否かを判定する。このステップでは、ロボット制御装置１００は、例えば、ロボット６０の動作を継続する指令がメインプログラム又は操作者から入力されているか否かを基準に、ロボット６０の動作継続の要否を判定してもよい。
【００２６】
ステップ３０６において、第２の動作目標に基づく動作が行われるものと判定されると（ステップ３０６；ＮＯ）、ロボット制御装置１００は、ステップ３０３において、第２の動作目標に基づいて、ロボット６０の動作を制御する。このステップでは、ロボット制御装置１００は、ロボット６０の現在の位置及び姿勢がそれぞれ第２の目標位置及び第２の目標姿勢に一致するように、ロボット６０の各関節を駆動するモータの回転角を制御するための駆動指令をロボットに出力する。
【００２７】
本実施形態によれば、ロボット制御装置１００は、第１の動作目標に基づいて、ロボット６０の動作を制御するステップ３０３と、第１の動作目標に続く第２の動作目標を決定するための画像処理を行うステップ３０５とを同時に並行して行うことにより、画像処理に要する時間の分だけロボット６０の動作開始を遅らせる必要がなく、ロボット６０の動作に要する時間を短縮することができる。
【００２８】
なお、ステップ３０３における第２の動作目標に基づくロボット６０の動作が終わる前に、ロボット制御装置１００は、第２の動作目標に続く動作目標を決定するための画像処理に用いられる画像を撮影する（ステップ３０４）。次いで、ロボット制御装置１００は、第２の動作目標に基づいて、ロボット６０の動作を制御するステップ３０３と、第２の動作目標に続く動作目標を決定するための画像処理を行うステップ３０５とを同時に並行して行う。以後、ロボット６０の動作が継続する限り、ロボット制御装置１００は、ステップ３０３〜３０５の処理を繰り返す。
【００２９】
上述の説明では、ロボット６０が複数の異なる物体９０を操作する場合を例に、物体９０の撮影画像の画像処理を通じてロボット６０の動作目標を決定する処理について説明したが、ロボット制御装置１００は、例えば、ロボット６０の動作環境９１の画像から物体９０の置き場所を計算するための画像処理を行い、その計算結果に基づいてロボット６０の動作目標を計算してもよい。物体９０の置き場所を計算するための画像処理の例として、複数の物体９０を整列配置させるための画像処理や、予め定められた特定の場所に物体９０を置くための画像処理などを挙げることができる。
【００３０】
［ハードウェア構成］
次に、図４を参照しながら、本実施形態に関わるロボット制御装置１００のハードウェア構成の一例について説明する。
ロボット制御装置１００は、そのハードウェア資源として、コンピュータシステム１０と、ロボット６０の手首に取り付けられたハンドアイカメラ８０と、ロボット６０の動作を制御するコントローラ７０とを備える。ハンドアイカメラ８０は、撮影装置８１と、画像処理装置８２とを備える。撮影装置８１は、ロボット６０の動作目標を決定するための画像処理に用いられる画像（例えば、２次元の画像又は３次元点群）を撮影する。撮影装置８１は、２次元の画像を撮影するイメージセンサでもよく、或いは３次元点群を撮影する距離センサでもよい。画像処理装置８２は、画像処理用に設計されたＦＰＧＡ（Field Programmable Gate Array）を備える。コントローラ７０は、コンピュータシステム１０からの指示（ロボット６０の動作目標を示す指示）に応答してロボット６０の各関節を駆動する信号をロボット６０に出力するロボットコントローラである。
【００３１】
ロボット６０は、例えば、垂直多関節ロボット、水平多関節ロボット、直交ロボット、又はパラレルリンクロボットなどの各種ロボットである。ロボット６０は、自律的に動作するマニピュレータとして動作し、例えば、ワークのピッキング、組み立て、搬送、塗装、検査、研磨、又は洗浄などの様々な用途に用いることができる。ロボット６０には、各関節の角度を示す検出情報を出力するエンコーダ６１が組み込まれている。
【００３２】
コンピュータシステム１０は、演算装置２０と、記憶装置３０と、入出力インタフェース４０と、表示装置５０とを備える。演算装置２０は、ＣＰＵ（Central Processing Unit）２１と、ＲＯＭ（Read Only Memory）２２と、ＲＡＭ（Random Access Memory）２３とを備えている。記憶装置３０は、ディスク媒体（例えば、磁気記録媒体又は光磁気記録媒体）又は半導体メモリ（例えば、揮発性メモリ又は不揮発性メモリ）などのコンピュータ読み取り可能な記録媒体である。このような記録媒体は、例えば、非一過性の記録媒体と呼ぶこともできる。記憶装置３０は、ロボット６０の動作を制御するためのロボット制御プログラム３１を格納している。このロボット制御プログラム３１は、ロボット６０の動作を制御するメインプログラムとして機能し、ロボット制御装置１００の各部（撮影装置８１、画像処理装置８２、コントローラ７０、及びロボット６０）を制御する。ロボット制御プログラム３１は、記憶装置３０からＲＡＭ２３に読み込まれ、ＣＰＵ２１によって解釈及び実行される。
【００３３】
入出力インタフェース４０は、画像処理装置８２によって画像処理された結果の情報である、ロボット６０の動作目標を示す情報をハンドアイカメラ８０から入力するとともに、ロボット６０の現在の位置及び姿勢を示す情報である、エンコーダ６１からの検出情報を入力する。ＣＰＵ２１は、ハンドアイカメラ８０及びエンコーダ６１から出力されるこれらの情報に基づいて、ロボット６０の動作指示（ロボット６０の動作目標を示す指示）をロボット制御プログラム３１に従って生成し、これを、入出力インタフェース４０を通じてコントローラ７０に出力する。
【００３４】
表示装置５０は、例えば、画像処理装置８２によって画像処理された結果やロボット６０の作業の結果などを表示する。表示装置は、例えば、液晶ディスプレイである。
【００３５】
[ロボット制御方法]
次に、バラ積みされた複数の物体９０の中から何れか一つの物体９０を選択してこれをピッキングし、その後、所定の位置にプレイスする動作をロボット６０に実行させるための処理の流れの一例について、図５のフローチャートを参照しながら説明する。
【００３６】
第１の動作目標に基づくロボット６０の動作は、第１の物体９０Ａをピッキングする動作（ステップ５０３）と、ピッキングした第１の物体９０Ａをプレイスする動作（ステップ５０５）とに分けられる。このため、図５のステップ５０３，５０５の処理は、図３のステップ３０３の処理に相当する。図５のステップ５０１，５０２，５０４，５０６，５０７の処理は、それぞれ、図３のステップ３０１，３０２，３０４，３０５，３０６の処理に相当する。
【００３７】
この例によれば、ロボット制御装置１００は、ピッキングした第１の物体９０Ａをプレイスする動作（ステップ５０５）と、第２の物体９０Ｂをピックアンドプレイス処理するためのロボット６０の動作目標を決定するための画像処理（ステップ５０６）とを同時に並行して行うことにより、画像処理に要する時間の分だけロボット６０の動作開始を遅らせる必要がなく、ロボット６０の動作に要する時間を短縮することができる。
【００３８】
なお、ピッキングした第１の物体９０Ａをプレイスする動作（ステップ５０５）が終わる前に、ロボット制御装置１００は、第２の画像を撮影すればよい（ステップ５０４）。図５に示すフローチャートでは、ピッキングした第１の物体９０Ａをプレイスする動作（ステップ５０５）の前に、ロボット制御装置１００は、第２の画像を撮影しているが、ピッキングした第１の物体９０Ａをプレイスしながら、同時に、第２の画像を撮影してもよい。ロボット制御装置１００は、ピッキングした第１の物体９０Ａをプレイスする前に或いはプレイスしながら、ハンドアイカメラ８０による第２の物体９０Ｂの撮影が可能となるようにロボット６０の位置及び姿勢を制御し、ハンドアイカメラ８０を第２の物体９０Ｂに向けて第２の画像を撮影してもよい。
【００３９】
図６は、図５のピックアンドプレイス処理のタイミングチャートの一例を示す。
ステップ６０１において、ロボット制御プログラム３１は、ロボット６０の第１の動作目標を決定するための画像処理に用いられる第１の画像の撮影を撮影装置８１に指示する。
ステップ６０２において、撮影装置８１は、第１の画像を撮影する。
図６のステップ６０１，６０２の処理は、図５のステップ５０１の処理に相当する。
【００４０】
ステップ６０３において、ロボット制御プログラム３１は、第１の画像に基づいて第１の動作目標を決定するための画像処理を行うことを画像処理装置８２に指示する。
ステップ６０４において、画像処理装置８２は、第１の動作目標を決定するための画像処理を行う。
図６のステップ６０３，６０４の処理は、図５のステップ５０２の処理に相当する。
【００４１】
ステップ６０５において、ロボット制御プログラム３１は、第１の物体をピッキングすることをコントローラ７０に指示する。
ステップ６０６において、コントローラ７０は、第１の物体をピッキングすることを指令する信号をロボット６０に出力する。
ステップ６０７において、ロボット６０は、第１の物体をピッキングする。
ステップ６０８において、コントローラ７０は、第１の物体のピッキングが終了したことをロボット制御プログラム３１に通知する。
図６のステップ６０５，６０６，６０７，６０８の処理は、図５のステップ５０３の処理に相当する。
【００４２】
ステップ６０９において、ロボット制御プログラム３１は、ロボット６０の第２の動作目標を決定するための画像処理に用いられる第２の画像の撮影を撮影装置８１に指示する。
ステップ６１０において、撮影装置８１は、第２の画像を撮影する。
図６のステップ６０９，６１０の処理は、図５のステップ５０４の処理に相当する。
【００４３】
ステップ６１１において、ロボット制御プログラム３１は、第１の物体９０Ａをプレイスすることをコントローラ７０に指示する。
ステップ６１２において、コントローラ７０は、第１の物体９０Ａをプレイスすることを指令する信号をロボット６０に出力する。
ステップ６１３において、ロボット６０は、第１の物体９０Ａをプレイスする。
ステップ６１４において、コントローラ７０は、第１の物体９０Ａのプレイシングが終了したことをロボット制御プログラム３１に通知する。
図６のステップ６１１，６１２，６１３，６１４の処理は、図５のステップ５０５の処理に相当する。
【００４４】
ステップ６１５において、ロボット制御プログラム３１は、第２の画像に基づいて第２の動作目標を決定するための画像処理を行うことを画像処理装置８２に指示する。
ステップ６１６において、画像処理装置８２は、第２の動作目標を決定するための画像処理を行う。
図６のステップ６１５，６１６の処理は、図５のステップ５０６の処理に相当する。
【００４５】
なお、ロボット６０の動作がピックアンドプレイス以外の動作（例えば、把持、吸着、移動、組み立て、又は挿入など）である場合においても、ロボット制御プログラム３１、撮影装置８１、画像処理装置８２、コントローラ７０、及びロボット６０の間における通信のタイミングチャートは、例えば、図６のタイミングチャートと同様である。
【００４６】
コンピュータシステム１０は、画像処理装置８２の機能を備えてもよい。また、ロボット制御プログラム３１によって実現される機能の全部又は一部を専用のハードウェア資源（例えば、特定用途向け集積回路、又はフィールドプログラマブルゲートアレイなど）を用いて実現してもよい。
【００４７】
また、ロボット６０の動作目標を決定するための画像処理に用いられる画像の撮影は、ハンドアイカメラ８０を停止又は移動させながら行ってもよい。また、ロボット６０の一つの動作目標を決定するための画像処理に用いられる画像の数は、１つに限らず、２つ以上でもよい。
【００４８】
また、ロボット６０は、ファクトリーオートメーションに用いられる産業ロボットのアームに限定されるものではなく、例えば、サービス業に用いられるロボット（例えば、オペレーティングロボット、医療用ロボット、掃除ロボット、レスキューロボット、セキュリティロボットなど）のアームでもよい。
【００４９】
上述の実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
（付記１）
ロボット６０に取り付けられた撮影装置８１であって、ロボット６０の第１の動作目標を決定するための画像処理に用いられる第１の画像と、ロボット６０の第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影する撮影装置８１と、
第１の画像及び第２の画像に基づいて、第１の動作目標及び第２の動作目標をそれぞれ決定するための画像処理を行う画像処理装置８２と、
第１の動作目標又は第２の動作目標に基づいて、ロボット６０の動作を制御するコントローラ７０と、を備え、
第１の動作目標に基づくロボット６０の動作が行われているときに、画像処理装置８２は、第２の画像に基づいて第２の動作目標を決定するための画像処理を行い、
第１の動作目標に基づくロボット６０の動作が終わる前に、撮影装置８２は、第２の画像を撮影する、ロボット制御装置１００。
（付記２）
付記１に記載のロボット制御装置１００であって、
第１の画像は、第１の物体の画像であり、
第２の画像は、第１の物体とは異なる第２の物体の画像であり、
第１の動作目標は、ロボット６０が第１の物体を操作するためのロボット６０の目標位置及び目標姿勢であり、
第２の動作目標は、ロボット６０が第２の物体を操作するためのロボット６０の目標位置及び目標姿勢である、ロボット制御装置１００。
（付記３）
ロボット制御装置１００が、
ロボット６０に取り付けられた撮影装置８１を用いて、ロボット６０の第１の動作目標を決定するための画像処理に用いられる第１の画像と、ロボット６０の第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影するステップ１０１，１０４と、
第１の画像及び第２の画像に基づいて、第１の動作目標及び第２の動作目標をそれぞれ決定するための画像処理を行うステップ１０２，１０５と、
１の動作目標又は第２の動作目標に基づいて、ロボット６０の動作を制御するステップ１０３と、を実行し、
画像処理を行うステップ１０５は、第１の動作目標に基づくロボット６０の動作が行われているときに、第２の画像に基づいて第２の動作目標を決定するための画像処理を行うことを含み、
第１の動作目標に基づくロボット６０の動作が終わる前に、撮影装置８２は、第２の画像を撮影する、ロボット制御方法。
（付記４）
ロボット６０に取り付けられた撮影装置８１に、ロボット６０の第１の動作目標を決定するための画像処理に用いられる第１の画像と、ロボット６０の第１の動作目標に続く第２の動作目標を決定するための画像処理に用いられる第２の画像とを撮影することを指示するステップ４０１，４０９と、
第１の画像及び第２の画像に基づいて、第１の動作目標及び第２の動作目標をそれぞれ決定するための画像処理を行うことを画像処理装置８２に指示するステップ４０３，４１５と、
１の動作目標又は第２の動作目標に基づいて、ロボット６０の動作を制御することをコントローラに指示するステップ４０５，４１１と、
をコンピュータシステムに実行させるロボット制御プログラム３１であって、
画像処理を行うステップ４１６は、第１の動作目標に基づくロボット６０の動作が行われているときに、第２の画像に基づいて第２の動作目標を決定するための画像処理を行うことを含み、
第１の動作目標に基づくロボット６０の動作が終わる前に、撮影装置８２は、第２の画像を撮影する、ロボット制御プログラム３１。
【符号の説明】
【００５０】
１０…コンピュータシステム  ２０…演算装置  ２１…ＣＰＵ  ２２…ＲＯＭ  ２３…ＲＡＭ  ３０…記憶装置  ３１…ロボット制御プログラム  ４０…入出力インタフェース  ５０…表示装置  ６０…ロボット  ６１…エンコーダ  ７０…コントローラ  ８０…ハンドアイカメラ  ８１…撮影装置  ８２…画像処理装置  １００…ロボット制御装置
【図１】
2020142323.tif 000003
【図２】
2020142323.tif 000004
【図３】
2020142323.tif 000005
【図４】
2020142323.tif 000006
【図５】
2020142323.tif 000007
【図６】
2020142323.tif 000008