(57)【要約】【課題】画像から取得されてからロボットのエンドエフェクタが目標位置に到達するまでの遅延時間において、ロボットのエンドエフェクタとワークとの相対位置が変化した場合であっても、相対位置の変化に追随することができ、より正確かつ高速にエンドエフェクタをワークに近づけること。【解決手段】本開示に係るロボットシステム１は、ワークＷに対してエンドエフェクタ７により所定作業を行うロボット１０と、ワークＷを撮像するビジョンセンサ３と、撮像した画像に基づいてエンドエフェクタ７が移動すべき位置を示す目標位置を生成周期で生成する目標位置生成部１５１と、少なくとも相対位置に関連する相対位置情報に基づいてエンドエフェクタ７とワークＷとの相対位置の変化量を推定周期で推定する推定部１５２と、生成した目標位置と推定した変化量とに基づいてロボット１０を制御する制御部１５３とを有する。【選択図】図２
2020121373.tif 000002
【特許請求の範囲】
【請求項１】
相対位置が変化するワークに対して、エンドエフェクタにより所定作業を行うロボットと、
前記ワークを撮像するビジョンセンサと、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する目標位置生成部と、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する推定部と、
前記目標位置生成部が生成した前記目標位置と前記推定部が推定した前記変化量とに基づいて、前記ロボットを制御する制御部と、
を有する、ロボットシステム。
【請求項２】
前記推定部は、前記生成周期よりも短い前記推定周期で、前記変化量を推定する、請求項１に記載のロボットシステム。
【請求項３】
前記推定部は、前記相対位置情報としての前記エンドエフェクタと前記ワークとの相対速度と前記目標位置生成部による前記目標位置の生成に要する画像処理時間以上の遅延時間とに基づいて、前記変化量を推定する、請求項２に記載のロボットシステム。
【請求項４】
前記ロボットにおける位置指令に対する応答の遅れを示す追従遅延時間を設定する追従遅延時間設定部と、
少なくとも前記画像処理時間と前記追従遅延時間とに基づいて、前記遅延時間を算出する遅延時間算出部と、
を更に備え、
前記推定部は、前記相対速度と前記遅延時間算出部が算出した前記遅延時間とに基づいて、前記変化量を推定する、請求項３に記載のロボットシステム。
【請求項５】
前記追従遅延時間設定部は、少なくとも前記ロボットの動作開始状態と前記ロボットの動作安定状態との間で異なる追従遅延時間を設定する、請求項４に記載のロボットシステム。
【請求項６】
前記ロボットを積載して、前記ワークに対して移動する移動体と、
前記移動体において、前記ロボットよりも進行方向の前側に配置され、前記移動体の振動を検出する移動体振動センサと、
を更に有し、
前記推定部は、更に前記移動体振動センサが検出した前記振動に関連する移動体振動情報に基づいて、前記変化量を推定する、請求項１〜５のいずれか一項に記載のロボットシステム。
【請求項７】
前記ロボットに配置され、前記ロボットの振動を検出するロボット振動センサを更に有し、
前記推定部は、前記移動体振動センサが検出した前記移動体振動情報と前記ロボット振動センサが検出した前記振動に関連するロボット振動情報とに基づいて、前記変化量を推定する、請求項６に記載のロボットシステム。
【請求項８】
前記制御部は、
前記生成周期で前記目標位置生成部が生成した前記目標位置に、前記推定周期で前記推定部が推定した前記変化量を加算して、前記エンドエフェクタの仮想目標位置を算出する仮想目標位置算出部と、
前記仮想目標位置と前記エンドエフェクタの指令位置とが一致するように、前記ロボットを制御するロボット制御部と、を有する、請求項１に記載のロボットシステム。
【請求項９】
相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムにおいて、前記ロボットを制御するロボット制御方法であって、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する工程Ａと、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する工程Ｂと、
前記工程Ａで生成した前記目標位置と前記工程Ｂで推定した前記変化量とに基づいて、前記ロボットを制御する工程Ｃと、
を有する、ロボット制御方法。
【請求項１０】
相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムにおいて、前記ロボットを制御するロボットコントローラであって、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する目標位置生成部と、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する推定部と、
前記目標位置生成部が生成した前記目標位置と前記推定部が推定した前記変化量とに基づいて、前記ロボットを制御する制御部と、
を有する、ロボットコントローラ。
【請求項１１】
相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムを構成するロボットコントローラで用いるプログラムであって、コンピュータに、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する工程Ａと、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する工程Ｂと、
前記工程Ａで生成した前記目標位置と前記工程Ｂで推定した前記変化量とに基づいて、前記ロボットを制御する工程Ｃと、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ロボットシステム、ロボット制御方法、ロボットコントローラ及びプログラムに関する。
【背景技術】
【０００２】
従来、ビジョンセンサや外界センサで撮影した画像に基づいてロボットの位置や姿勢を制御するビジュアルフィードバック（ＶＦＢ：Ｖｉｓｕａｌ  ＦｅｅｄＢａｃｋ）と呼ばれる技術が知られている（例えば、特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４２２２３３８号
【特許文献２】特開２００７-０１１９７８号公報
【特許文献３】特許第５３０６３１３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のビジュアルフィードバックを用いて相対位置が変化するワークに対して位置決めを行う制御では、エンドエフェクタが目標位置に到達するまでの遅延時間におけるエンドエフェクタとワークとの相対位置の変化に起因する目標位置の変化に追随することができないため、高速にエンドエフェクタをワークに近づけることができないという問題点があった。
【０００５】
そこで、本開示は、上述の課題に鑑みてなされたものであり、画像から取得されてからロボットのエンドエフェクタが目標位置に到達するまでの遅延時間において、ロボットのエンドエフェクタとワークとの相対位置が変化した場合であっても、相対位置の変化に追随することができ、より正確かつ高速にエンドエフェクタをワークに近づけることができるロボットシステム、ロボット制御方法、ロボットコントローラ及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の第１の特徴は、ロボットシステムであって、相対位置が変化するワークに対して、エンドエフェクタにより所定作業を行うロボットと、前記ワークを撮像するビジョンセンサと、前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する目標位置生成部と、少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する推定部と、前記目標位置生成部が生成した前記目標位置と前記推定部が推定した前記変化量とに基づいて、前記ロボットを制御する制御部と、を有することを要旨とする。
【０００７】
本開示の第２の特徴は、ロボット制御方法であって、相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムにおいて、前記ロボットを制御するロボット制御方法であって、前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する工程Ａと、少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する工程Ｂと、前記工程Ａで生成した前記目標位置と前記工程Ｂで推定した前記変化量とに基づいて、前記ロボットを制御する工程Ｃと、を有することを要旨とする。
【０００８】
本開示の第３の特徴は、ロボットコントローラであって、相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムにおいて、前記ロボットを制御するロボットコントローラであって、前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する目標位置生成部と、少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する推定部と、前記目標位置生成部が生成した前記目標位置と前記推定部が推定した前記変化量とに基づいて、前記ロボットを制御する制御部と、を有することを要旨とする。
【０００９】
本開示の第４の特徴は、プログラムであって、相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムを構成するロボットコントローラで用いるプログラムであって、コンピュータに、前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する工程Ａと、少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する工程Ｂと、前記工程Ａで生成した前記目標位置と前記工程Ｂで推定した前記変化量とに基づいて、前記ロボットを制御する工程Ｃと、を実行させることを要旨とする。
【発明の効果】
【００１０】
本開示によれば、画像から取得されてからロボットのエンドエフェクタが目標位置に到達するまでの遅延時間において、ロボットのエンドエフェクタとワークとの相対位置が変化した場合であっても、相対位置の変化に追随することができ、より正確かつ高速にエンドエフェクタをワークに近づけることができるロボットシステム、ロボット制御方法、ロボットコントローラ及びプログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、一実施形態に係るロボットシステムの全体構成の一例を表す説明図である。
【図２】図２は、一実施形態に係るロボットシステムのロボットコントローラの機能構成の一例を表す図である。
【図３】図３は、一実施形態に係るロボットシステムにおけるセンサの配置の一例を表す図である。
【図４】図４は、一実施形態に係るロボット制御方法の一例を表すフローチャートである。
【図５】図５は、一実施形態に係るロボットシステムのロボットコントローラのハードウェア構成の一例を表す説明図である。
【発明を実施するための形態】
【００１２】
以下、一実施形態について図面を参照しつつ説明する。
【００１３】
＜ロボットシステムの全体構成＞
まず、図１を参照しつつ、実施形態に係るロボットシステム１の全体構成の一例について説明する。本実施形態において、ロボットシステム１は、移動体２０によりロボット１０を移動させながら所定作業を行うことが可能である。
【００１４】
図１に示すように、本実施形態に係るロボットシステム１は、ロボット１０と、ロボットコントローラ１５と、ビジョンセンサ３と、ビジョンセンサコントローラ３５と、移動体２０と、移動体コントローラ３０とを有する。
【００１５】
本実施形態において、ロボット１０は、相対位置が変化するワークＷに対して、エンドエフェクタ７により所定作業を行う。例えば、ロボット１０は、６つの関節部を備えた垂直多関節型の６軸ロボットである。なお、ロボット１０は、６軸以外（例えば、５軸や７軸等）のロボットであってもよい。また、ロボット１０は、水平多関節型やパラレルリンクロボット等、垂直多関節型以外のロボットであってもよい。
【００１６】
ここで、本実施形態において、ロボット１０の先端には、エンドエフェクタ７が取り付けられていてもよい。例えば、エンドエフェクタ７は、ハンドや、溶接トーチや、工具等であってもよい。
【００１７】
本実施形態において、上述の所定作業は、例えば、エンドエフェクタ７によりテーブル４０上のワークＷを把持して移送先テーブルに移送するワークＷの移送作業であってもよい。なお、かかる所定作業は、ワークＷの移送作業に限定されるものではなく、例えば、複数のワークＷを組み合わせて部品の組み立て等を実行する作業であってもよい。また、かかる所定作業は、エンドエフェクタ７の種類を適宜変更した場合には、例えば、塗装、リベット打ち、くぎ打ち、スポット溶接、ステープル留め、ボルト締め等の作業であってもよい。
【００１８】
本実施形態において、ビジョンセンサ３は、所定の撮像周期で、ワークＷを撮像する。ここで、ビジョンセンサ３は、視覚センサとも呼ばれ、２次元や３次元で対象物の映像を捉えて画像処理することで対象物の特徴量を算出して画像等で出力するセンサである。ビジョンセンサ３の一例としては、２次元カメラや３次元カメラ等があげられる。なお、ビジョンセンサ３は、時間的に連続して撮像を行ってもよいし、断続的に複数回の撮像を行ってもよい。ビジョンセンサ３は、移動体２０に設置されたビジョンセンサコントローラ３５に接続されており、ビジョンセンサ３によって撮像された画像は、ビジョンセンサコントローラ３５に送信される。
【００１９】
ビジョンセンサ３は、ロボット１０が所定作業をする際のワークＷの３次元位置をリアルタイムに検出するために、例えば、ロボット１０の手首部にエンドエフェクタ７の手先側を視野とする姿勢で設置されていてもよい。なお、ビジョンセンサ３は、ロボット１０の他の箇所や移動体２０上に取り付けられてもよい。また、ビジョンセンサ３の設置台数は、１台に限定されるものではなく、２台以上としてもよい。
【００２０】
本実施形態において、移動体２０は、ロボット１０を積載して、ワークＷに対して移動する。なお、以下において、移動体２０等の構成の説明の便宜上、上下左右前後等の方向を適宜使用するが、移動体２０等の各構成の位置関係を限定するものではない。また、前及び後の方向は、移動体２０の進行方向における前方及び後方に対応している。
【００２１】
例えば、移動体２０は、移動体コントローラ３０の制御により、例えば、工場内等を無軌道に移動可能な、所謂、無人搬送車（ＡＧＶ）であってもよいし、コンベア等であってもよい。
【００２２】
図１に示すように、移動体２０は、例えば、直方体状の筐体２１を備え、筐体２１の内部に移動体コントローラ３０を内蔵している。図１の例では、筐体２１の上面２１ａにおいて、例えば、後側寄りの位置にロボット１０が搭載され、例えば、前方右側寄りの位置にビジョンセンサコントローラ３５が搭載されている。筐体２１の下面の四隅には、車輪２２が設けられている。
【００２３】
図１に示すように、移動体２０において、ロボット１０よりも進行方向の前側（前方）に、移動体２０の振動を検出する移動体振動センサ５１が配置されていてもよい。また、図１に示すように、ロボット１０において、ロボット１０の振動を検出するロボット振動センサが配置されていてもよい。
【００２４】
本実施形態において、図１に示すように、ロボットコントローラ１５は、例えば、ロボット１０の基台１０１に取り付けられており、ロボット１０を制御する。また、ロボットコントローラ１５は、ロボット１０と分離して配置されてもよい。
【００２５】
図２に示すように、ロボットコントローラ１５は、目標位置生成部１５１と、推定部１５２と、制御部１５３と、追従遅延時間設定部１５４と、遅延時間算出部１５５とを有する。
【００２６】
目標位置生成部１５１は、ビジョンセンサ３が撮像した画像に基づいて、所定の生成周期で、エンドエフェクタ７が移動すべき位置を示す目標位置（図３における「Ｘｔ（ｉ）ａ」）を生成するように構成されている。ここで、かかる生成周期は、画像の撮像周期と同等の周期であってもよい。
【００２７】
追従遅延時間設定部１５４は、ロボット１０における位置指令に対する応答の遅れを示す追従遅延時間ｄｔａを設定するように構成されている。具体的には、追従遅延時間設定部１５４は、ロボット１０の加減速情報に基づいて、追従遅延時間ｄｔａを算出する。例えば、追従遅延時間ｄｔａは、ロボット１０の周波数応答をフィルタに近似することにより、時定数から同定することが可能である。
【００２８】
なお、位置指令は、かかる位置指令に含まれる指令位置にエンドエフェクタ７を動かすことができるように、ロボット１０の各軸のモータを制御するための指令である。
【００２９】
ここで、追従遅延時間設定部１５４は、少なくともロボット１０の動作開始状態とロボット１０の動作安定状態との間で異なる追従遅延時間ｄｔａを設定するように構成されていてもよい。
【００３０】
遅延時間算出部１５５は、目標位置生成部１５１による目標位置の生成に要する画像処理時間ｄｔａ以上の遅延時間を算出するように構成されている。ここで、遅延時間は、画像処理時間ｄｔｂのみであってもよいし、画像処理時間ｄｔｂ及び追従遅延時間ｄｔａの合計であってもよい。
【００３１】
なお、かかる画像処理時間ｄｔｂは、予め設定されていてもよく、別途計測されてもよい。また、かかる画像処理時間ｄｔｂは、タイムスタンプにて計測可能である。
【００３２】
推定部１５２は、少なくともエンドエフェクタ７とワークＷとの相対位置に関連する相対位置情報に基づいて、所定の推定周期で、エンドエフェクタ７とワークＷとの相対位置の変化量（すなわち、オフセット）を推定するように構成されている。
【００３３】
ここで、相対位置情報は、エンドエフェクタ７とワークＷとの相対位置であってもよいし、エンドエフェクタ７とワークＷとの相対速度Ｖであってもよい。
【００３４】
具体的には、推定部１５２は、ビジョンセンサコントローラ３５から取得した画像の時系列データから、現在の時刻である時刻ｔ（ｉ）において、ワークＷとエンドエフェクタ７との相対速度Ｖの時間変化を推定する。
【００３５】
そして、推定部１５２は、かかる相対速度Ｖの時間変化を、時刻ｔ（ｉ）と時刻ｔ（ｉ）＋ｄｔａ＋ｄｔｂとの間で積分することによって、エンドエフェクタ７とワークＷとの相対位置の変化量であるオフセットＯｆｆ（ｔ（ｉ）＋ｄｔ（ｎ））を算出する。
【００３６】
換言すると、推定部１５２は、画像処理時間ｄｔｂ及び追従遅延時間ｄｔａを合わせた時間分の相対速度Ｖの時間変化を積分することで、オフセットＯｆｆ（ｔ（ｉ）＋ｄｔ（ｎ））を算出する。
【００３７】
すなわち、推定部１５２は、ロボット１０とワークＷとの相対速度Ｖと遅延時間算出部１５５によって算出された遅延時間ｄｔｂとに基づいて、上述の変化量を推定していてもよい。
【００３８】
また、推定部１５２は、非ビジョンセンサ情報（移動体２０の速度や加速度に係る情報等）を組み合わせて、カルマンフィルタ等の推定器により、かかる推定の信頼度を上げることが可能である。或いは、推定部１５２は、既知の移動体２０の移動パターンを利用して、推定結果からノイズ成分を除去することも可能である。
【００３９】
上述のように、推定部１５２は、上述の相対位置の変化量（オフセット）を算出するにあたって、相対速度Ｖの時間変化を時刻ｔ（ｉ）と時刻ｔ（ｉ）＋ｄｔａ＋ｄｔｂとの間で積分する必要があるため、未来の移動体２０の速度を予測する必要がある。
【００４０】
したがって、推定部１５２は、既知の移動体２０の速度の時系列データ（すなわち、既知の移動体２０の移動パターン）が存在する場合には、かかる時系列データを積極的に活用する。
【００４１】
かかる時系列データが存在しない場合には、推定部１５２は、過去の移動体２０の速度の時系列データについて周波数解析し、低周波成分（すなわち、ロボット１０が追従可能な周波数成分）を抽出した後、現在の推定速度を直流成分として低周波成分を合成することによって、未来の時系列データを予測する。かかる予測処理は、移動体２０の速度の変動が回転機構や摩擦によるもので、基本的には周期的となることを期待した処理である。
【００４２】
ここで、推定部１５２は、更に移動体振動センサ５１が検出した移動体２０の振動に関連する移動体振動情報に基づいて、上述の変化量を推定するように構成されていてもよい。
【００４３】
また、推定部１５２は、移動体振動センサ５１が検出した移動体２０の振動に関連する移動体振動情報とロボット振動センサ５２が検出したロボット１０の振動に関連するロボット振動情報とに基づいて、上述の変化量を推定するように構成されていてもよい。
【００４４】
推定部１５２は、振動に関連する情報を用いて変化量を推定する場合、図３に示すように、移動体振動センサ５１が検出した移動体振動情報を直接用いても、かかる移動体振動情報が制御に反映されるまでに遅延が発生するため、安定しないと想定される。
【００４５】
そのため、推定部１５２は、移動体振動センサ５１でリアルタイムに取得した移動体振動情報でなく、システムの遅れを見越した振動の予測値（すなわち、制御に反映されるタイミングでの振動）を制御に用いる必要がある。すなわち、推定部１５２は、現在の情報から、未来の情報を予測する必要がある。
【００４６】
したがって、図３に示すように、ロボット振動センサ５２が検出したロボット１０の振動に関連するロボット振動情報は、移動体振動センサ５１が検出した移動体振動情報から見ると未来の情報であるため、推定部１５２は、移動体振動情報とロボット振動情報とを合わせて変化量を推定することで、高精度な予測を実現することができる。
【００４７】
或いは、変化量の推定対象の移動体２０に先行する移動体が存在する場合、推定部１５２は、先行する移動体によって取得された非ビジョンセンサ情報を用いることで、同様に、高精度な予測を実現することができる。
【００４８】
ここで、推定部１５２は、目標位置生成部１５１によって目標位置が生成される生成周期よりも短い推定周期で、上述の変化量を推定するように構成されていてもよい。
【００４９】
なお、推定部１５２の一部又は全ての機能は、ロボットコントローラ１５の外部の機能として設けられてもよい。
【００５０】
制御部１５３は、目標位置生成部１５１が生成した目標位置と推定部１５２が推定した変化量とに基づいて、ロボット１０を制御するように構成されている。
【００５１】
具体的には、図２に示すように、制御部１５３は、仮想目標位置算出部１５３Ｂと、ロボット制御部１５３Ｂとを有する。
【００５２】
仮想目標位置算出部１５３Ｂは、上述の生成周期で目標位置生成部１５１が生成した目標位置に、上述の推定周期で推定部１５２が推定した変化量を加算して、エンドエフェクタ７の仮想目標位置を算出するように構成されている。
【００５３】
ロボット制御部１５３Ｂは、仮想目標位置算出部１５３Ｂが算出した仮想目標位置とエンドエフェクタ７の指令位置とが一致するように、ロボット１０を制御するように構成されている。
【００５４】
＜ロボット制御方法＞
次に、図４を参照して、ロボットシステム１を制御するロボット制御方法の一例について説明する。
【００５５】
図４に示すように、ステップＳ１００１において、ロボットコントローラ１５（目標位置生成部１５１）は、ビジョンセンサコントローラ１５からワークＷの画像Ｐ（ｔ（ｉ））を取得する。かかる画像Ｐ（ｔ（ｉ））は、時刻ｔ（ｉ）においてビジョンセンサ３によって撮像された画像である。ここで、ｉ＝１,２,３…である。
【００５６】
なお、画像の撮像周期は、ｔ（ｉ＋１）−ｔ（ｉ）である。
【００５７】
ステップＳ１００２において、ロボットコントローラ１５（目標位置生成部１５１）は、ワーク座標系（認識対象座標）におけるエンドエフェクタ７の目標位置Ｘｇｗが登録されているか否かについて判定する。ここで、登録されている場合には、本方法は、ステップＳ１００４に進み、登録されていない場合には、本方法は、ステップＳ１００３に進む。
【００５８】
ここで、ワーク座標系とは、ワークに固定された座標系である。したがって、ワークＷとエンドエフェクタ７との相対位置が変化したとしても、ワーク座標系でみるとワークＷの位置は常に同じ位置にあることになる。
【００５９】
ステップＳ１００３において、ロボットコントローラ１５（目標位置生成部１５１）は、画像Ｐ（ｔ（ｉ））から、ワーク座標系におけるエンドエフェクタ７の目標位置Ｘｇｗを算出する。
【００６０】
例えば、ロボットコントローラ１５（目標位置生成部１５１）は、予め判っているワークＷの画像Ｐ（ｔ（ｉ））及びワークＷに対するエンドエフェクタ７のアプローチ点（把持位置）を登録しておき、画像Ｐ（ｔ（ｉ））中からワークＷを判別し、画像Ｐ（ｔ（ｉ））のアプローチ点を目標位置Ｘｇｗとして算出する。
【００６１】
ロボットコントローラ１５（目標位置生成部１５１）は、例えば、画像Ｐ（ｔ（ｉ））を入力としてアプローチ点を出力するニューラルネットを用いて、かかる一連の処理について行ってもよいし、ニューラルネットを用いて、かかるワークＷの判別だけを行ってもよい。
【００６２】
ステップＳ１００４において、ロボットコントローラ１５（目標位置生成部１５１）は、画像Ｐ（ｔ（ｉ））から、ワーク座標系における時刻ｔ（ｉ）のエンドエフェクタ７の現在位置Ｘｔ（ｉ）ｗを算出する。
【００６３】
ステップＳ１００５において、ロボットコントローラ１５（目標位置生成部１５１）は、ワーク作業系において、制御量ｐを算出する。ここで、ロボットコントローラ１５は、「（目標位置Ｘｇｗ）−（現在位置Ｘｔ（ｉ）ｗ）」によって制御量ｐを算出する。
【００６４】
ステップＳ１００６において、ロボットコントローラ１５（目標位置生成部１５１）は、制御量ｐが所定閾値（偏差）よりも小さいか否かについて判定する。ここで、小さいと判定された場合には、本方法は、終了し、小さいと判定されない場合には、本方法は、ステップＳ１００７に進む。
【００６５】
ステップＳ１００７において、ロボットコントローラ１５（目標位置生成部１５１）は、制御量ｐを、絶対座標系におけるエンドエフェクタ７の目標位置Ｘｔ（ｉ）ａに変換する。ここで、絶対座標系は、任意の場所に固定され得る座標系である。本実施形態では、（テーブル４０が固定されており移動体２０が移動する）地面に固定されているものとする。
【００６６】
ステップＳ１００８において、ロボットコントローラ１５（追従遅延時間設定部１５４）は、ロボット１０の加減速情報に基づいて、ロボット１０における位置指令に対する応答の遅れを示す追随遅延時間ｄｔａを算出する。
【００６７】
ステップＳ１００９において、ロボットコントローラ１５（遅延時間算出部１５５）は、画像処理にかかっている時間に基づいて、画像Ｐ（ｔ（ｉ））を取得してから制御量ｐを算出するまでの画像処理時間ｄｔｂを算出する。
【００６８】
ステップＳ１０１０において、ロボットコントローラ１５（推定部１５２）は、時刻ｔ(ｉ)＋ｄｔ（ｎ）における非ビジョンセンサ情報Ｖ（ｔ（ｉ）＋ｄｔ（ｎ））を取得する。かかる非ビジョンセンサ情報は、例えば、移動体２０の速度や加速度である。ここで、ｔ（ｉ）≦ｔ（ｉ）＋ｄｔ（ｎ）＜ｔ（ｉ＋１）（ｎ＝０，１，２，３…、ｔ（０）＝０）の関係が成立する。
【００６９】
ここで、ｄｔ（ｎ）は、非ビジョンセンサ情報の取得周期である。本実施形態において、非ビジョンセンサ情報の取得周期は、画像の撮像周期以下である。
【００７０】
ステップＳ１０１１において、ロボットコントローラ１５（推定部１５２）は、非ビジョンセンサ情報Ｖ（ｔ（ｉ）＋ｄｔ（ｎ））とＰ（ｔ（ｉ））と画像Ｐｔ（ｉ）とに基づいて、時刻ｔ（ｉ）からのワークＷとエンドエフェクタ７との相対速度Ｖの時間変化を予測する。
【００７１】
例えば、ロボットコントローラ１５（推定部１５２）は、非ビジョンセンサの出力波形を外挿等することで、非ビジョンセンサ情報Ｖ（ｔ（ｉ）＋ｄｔ（ｎ））とＰ（ｔ（ｉ））を予測して、時刻ｔ（ｉ）からのワークＷとエンドエフェクタ７との相対速度Ｖの時間変化を予測する。
【００７２】
ステップＳ１０１２において、ロボットコントローラ１５（推定部１５２）は、相対速度Ｖの時間変化を、時刻ｔ（ｉ）と時刻ｔ（ｉ）＋ｄｔａ＋ｄｔｂとの間で積分することによって、オフセットＯｆｆ（ｔ（ｉ）＋ｄｔ（ｎ））を算出する。
【００７３】
ステップＳ１０１３において、ロボットコントローラ１５（仮想目標位置算出部１５３Ａ）は、絶対座標系におけるエンドエフェクタ７の目標位置Ｘｔ（ｉ）ａに対してオフセットＯｆｆ（ｔ（ｉ）＋ｄｔ（ｎ））を加算することによって、エンドエフェクタ７の仮想目標位置Ｘ’ｔ（ｉ）ａを算出する。
【００７４】
ステップＳ１０１４において、ロボットコントローラ１５（ロボット制御部１５３Ｂ）は、エンドエフェクタ７の仮想目標位置Ｘ’ｔ（ｉ）ａと現在時刻におけるエンドエフェクタ７の指令位置Ｘｏ（ｔ（ｉ）＋ｄｔ（ｎ）＋ｄｄｔ（ｍ））との間の偏差ｄＸを算出する。ここで、ｔ（ｉ）＋ｄｔ（ｎ）≦ｔ（ｉ）＋ｄｔ（ｎ）＋ｄｄｔ（ｍ）＜ｔ（ｉ）＋ｄｔ（ｎ＋１）（ｍ＝１，２，３…）の関係が成立する。
【００７５】
ここで、ｄｄｔ（ｍ）は、ロボット１０の制御周期である。
【００７６】
ステップＳ１０１５において、ロボットコントローラ１５（ロボット制御部１５３Ｂ）は、偏差ｄＸにゲインＧを乗算することによって、エンドエフェクタ７の指令位置Ｘｏ（ｔ（ｉ）＋ｄｔ（ｎ）＋ｄｄｔ（ｍ））を算出する。
【００７７】
ステップＳ１０１６において、ロボットコントローラ１５（ロボット制御部１５３Ｂ）は、エンドエフェクタ７の指令位置Ｘｏ（ｔ（ｉ）＋ｄｔ（ｎ）＋ｄｄｔ（ｍ））に基づいて、ロボット１０を制御する。
【００７８】
ステップＳ１０１７において、ロボットコントローラ１５は、ビジョンセンサ３による画像の撮像周期が到来したか否かについて判定する。到来したと判定された場合、ｉ＝ｉ＋１として、本方法は、ステップＳ１００１に戻り、到来していないと判定された場合、本方法は、ステップＳ１０１８に進む。
【００７９】
ステップＳ１０１８において、ロボットコントローラ１５は、非ビジョンセンサ情報Ｖ（ｔ（ｉ）＋ｄｔ（ｎ））の取得周期が到来したか否かについて判定する。到来したと判定された場合、ｎ＝ｎ＋１として、本方法は、ステップＳ１０１０に戻り、到来していないと判定された場合、本方法は、ステップＳ１０１９に進む。
【００８０】
ステップＳ１０１９において、ロボットコントローラ１５は、ロボット１０の制御周期が到来したか否かについて判定する。到来したと判定された場合、ｍ＝ｍ＋１として、本方法は、ステップＳ１０１４に戻り、到来していないと判定された場合、本方法は、ステップＳ１０１７に戻る。
【００８１】
＜本実施形態の効果＞
以上説明したように、本実施形態に係るロボットシステム１は、ワークＷに対してエンドエフェクタ７により所定作業を行うロボット１０と、ワークＷを撮像するビジョンセンサ３と、撮像した画像に基づいてエンドエフェクタ７が移動すべき位置を示す目標位置を生成周期で生成する目標位置生成部１５１と、少なくとも相対位置に関連する相対位置情報に基づいてエンドエフェクタ７とワークＷとの相対位置の変化量を推定周期で推定する推定部１５２と、生成した目標位置と推定した変化量とに基づいてロボット１０を制御する制御部１５３とを有する。
【００８２】
かかる構成によれば、画像から取得されてから、ロボット１０のエンドエフェクタ７が目標位置に到達するまでの遅延時間（画像処理時間、制御遅延時間等を含む）において、ロボット１０のエンドエフェクタ７とワークＷとの相対位置が変化した場合であっても、かかる相対位置の変化量に応じた制御が行われるため、かかる相対位置の変化に追随することができる。従って、より正確かつ高速にエンドエフェクタ７をワークＷに近づけることができる。
【００８３】
また、本実施形態に係るロボットシステム１では、推定部１５２は、上述の生成周期よりも短い推定周期で、上述の変化量を推定する。
【００８４】
かかる構成によれば、上述の目標位置の生成よりも早い周期で変化量を推定することができ、推定された変化量をロボット１０の制御に反映させることができるため、上述の生成周期の間隔における遅延時間を適切に補正することができ、より正確かつ高速にエンドエフェクタ７をワークＷに近づけることができる。
【００８５】
また、本実施形態に係るロボットシステム１では、推定部１５２は、上述の相対位置情報としてのエンドエフェクタ７とワークＷとの相対速度と目標位置生成部１５１による目標位置の生成に要する画像処理時間以上の遅延時間とに基づいて、上述の変化量を推定する。かかる構成によれば、少なくとも画像処理に要する時間分の遅延を補完することができ、より正確にエンドエフェクタ７をワークＷに近づけることができる。
【００８６】
また、本実施形態に係るロボットシステム１は、ロボット１０における位置指令に対する応答の遅れを示す追従遅延時間を設定する追従遅延時間設定部１５４と、少なくとも画像処理時間と追従遅延時間とに基づいて、上述の遅延時間を算出する遅延時間算出部１５５と、を更に備え、推定部１５２は、上述の相対速度と遅延時間算出部１５５が算出した遅延時間とに基づいて、上述の変化量を推定する。かかる構成によれば、画像処理に要する時間だけでなく、ロボット１０における位置指令に対する応答の遅れも補完することができ、より正確にエンドエフェクタ７をワークＷに近づけることができる。
【００８７】
また、本実施形態に係るロボットシステム１では、追従遅延時間設定部１５４は、少なくともロボット１０の動作開始状態とロボット１０の動作安定状態との間で異なる追従遅延時間を設定する。かかる構成によれば、ロボット１０の状態に応じて追従遅延時間が変化する場合であっても、ロボットシステム１に設定する追従遅延時間をロボット１０の状態ごとに変更することによって高速にエンドエフェクタ７をワークＷに近づけることができる。
【００８８】
また、本実施形態に係るロボットシステム１は、ロボット１０を積載して、ワークＷに対して移動する移動体２０と、移動体２０において、ロボット１０よりも進行方向の前側に配置され、移動体２０の振動を検出する移動体振動センサ５１と、を更に有し、推定部１５２は、更に移動体振動センサ５１が検出した移動体２０の振動に関連する移動体振動情報に基づいて、上述の変化量を推定する。
【００８９】
また、本実施形態に係るロボットシステム１は、ロボット１０に配置され、ロボット１０の振動を検出するロボット振動センサ５２を更に有し、推定部１５２は、移動体振動センサ５１が検出した移動体振動情報とロボット振動センサ５２が検出したロボット１０の振動に関連するロボット振動情報とに基づいて、上述の変化量を推定する。
【００９０】
かかる構成によれば、現在の情報及び未来の情報に基づいて、エンドエフェクタ７とワークＷとの相対位置の変化量を推定することができるため、より高精度で変化量を推定することができる。
【００９１】
さらに、本実施形態に係るロボットシステム１では、制御部１５３は、上述の生成周期で目標位置生成部１５１が生成した目標位置に、上述の推定周期で推定部１５２が推定した変化量を加算して、エンドエフェクタ７の仮想目標位置を算出する仮想目標位置算出部１５３Ａと、かかる仮想目標位置とロボット１０に対する指令位置とが一致するように、ロボット１０を制御するロボット制御部１５３Ｂと、を有する。
【００９２】
かかる構成によれば、変化量が加算された仮想目標位置に指令位置が一致するようにロボット１０が制御される。つまり、指令位置が仮想目標位置に追従し、実際のロボット１０の位置が指令位置に追従する。従って、変化量が離散的な値になったときであっても、ロボット１０は、エンドエフェクタ７をより滑らかにワークＷに近づけることができる。
【００９３】
＜ロボットコントローラ１５のハードウェア構成例＞
次に、図４を参照しつつ、上記で説明したロボットコントローラ１５のハードウェア構成例について説明する。
【００９４】
図４に示すように、ロボットコントローラ１５は、例えば、ＣＰＵ９０１と、ＲＯＭ９０３と、ＲＡＭ９０５と、ＡＳＩＣ又はＦＰＧＡ等の特定の用途向けに構築された専用集積回路９０７と、入力装置９１３と、出力装置９１５と、記録装置９１７と、ドライブ９１９と、接続ポート９２１と、通信装置９２３とを有する。これらの構成は、バス９０９や入出力インターフェース９１１を介して相互に信号を伝達可能に接続されている。
【００９５】
プログラムは、例えば、ＲＯＭ９０３やＲＡＭ９０５や記録装置９１７等に記録され得る。記録装置９１７は、例えば、ハードディスク等であり、格納部等として機能する。
【００９６】
また、プログラムは、例えば、フレキシブルディスク等の磁気ディスク、各種のＣＤ・ＭＯディスク・ＤＶＤ等の光ディスク、半導体メモリ等のリムーバブルな記録媒体９２５に、一時的又は非一時的（永続的）に記録され得る。このような記録媒体９２５は、いわゆるパッケージソフトウエアとして提供され得る。この場合、これらの記録媒体９２５に記録されたプログラムは、ドライブ９１９により読み出されて、入出力インターフェース９１１やバス９０９等を介して記録装置９１７に記録されてもよい。
【００９７】
また、プログラムは、例えば、ダウンロードサイト・他のコンピュータ・他の記録装置等（図示せず）に記録され得る。この場合、プログラムは、ＬＡＮやインターネット等のネットワークＮＷを介して転送され、通信装置９２３が、このプログラムを受信する。そして、通信装置９２３によって受信されたプログラムは、入出力インターフェース９１１やバス９０９等を介して記録装置９１７に記録されてもよい。
【００９８】
また、プログラムは、例えば、適宜の外部接続機器９２７に記録され得る。この場合、プログラムは、適宜の接続ポート９２１を介して転送され、入出力インターフェース９１１やバス９０９等を介して記録装置９１７に記録されてもよい。
【００９９】
そして、ＣＰＵ９０１が、記録装置９１７に記録されたプログラムに従い各種の処理を実行することにより、目標位置生成部１５１、推定部１５２、制御部１５３（仮想目標位置算出部１５３Ａ及びロボット制御部１５３Ｂ）、追従遅延時間設定部１５４及び遅延時間算出部１５５等による処理が実現される。すなわち、ＣＰＵ９０１が、記録装置９１７に記録されたプログラムに従い各種の処理を実行することにより、図４に示すロボット制御方法による処理が実現される。
【０１００】
この際、ＣＰＵ９０１は、例えば、記録装置９１７からプログラムを直接読み出して実行してもよいし、かかるプログラムをＲＡＭ９０５に一旦ロードした上で実行してもよい。更にＣＰＵ９０１は、例えば、プログラムを通信装置９２３やドライブ９１９や接続ポート９２１を介して受信する場合、受信したプログラムを記録装置９１７に記録せずに直接実行してもよい。
【０１０１】
また、ＣＰＵ９０１は、必要に応じて、例えば、マウスやキーボードやマイク（図示せず）等の入力装置９１３から入力する信号や情報に基づいて各種の処理を行ってもよい。
【０１０２】
そして、ＣＰＵ９０１は、上述の処理を実行した結果を、例えば、表示装置や音声出力装置等の出力装置９１５から出力してもよく、更に、ＣＰＵ９０１は、必要に応じてこの処理結果を通信装置９２３や接続ポート９２１を介し送信してもよく、記録装置９１７や記録媒体９２５に記録させてもよい。
【０１０３】
なお、以上の説明において、「垂直」「平行」「平面」等の記載がある場合には、当該記載は厳密な意味ではない。すなわち、それら「垂直」「平行」「平面」とは、設計上、製造上の公差、誤差が許容され、「実質的に垂直」「実質的に平行」「実質的に平面」という意味である。
【０１０４】
また、以上の説明において、外観上の寸法や大きさ、形状、位置等が「同一」「同じ」「等しい」「異なる」等の記載がある場合は、当該記載は厳密な意味ではない。すなわち、それら「同一」「同じ」「等しい」「異なる」とは、設計上、製造上の公差、誤差が許容され、「実質的に同一」「実質的に同じ」「実質的に等しい」「実質的に異なる」という意味である。
【０１０５】
また、以上既に述べた以外にも、上記実施形態による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【０１０６】
１…ロボットシステム
３…ビジョンセンサ
３５…ビジョンセンサコントローラ
７…エンドエフェクタ
１０…ロボット
１５…ロボットコントローラ
１５１…目標位置生成部
１５２…推定部
１５３…制御部
１５３Ａ…仮想目標位置算出部
１５３Ｂ…ロボット制御部
１５４…追従遅延時間設定部
１５５…遅延時間算出部
２０…移動体
２１…筐体
２２…車輪
３０…移動体コントローラ
４０…テーブル
５１…移動体振動センサ
５２…ロボット振動センサ
Ｗ…ワーク
【図１】
2020121373.tif 000003
【図２】
2020121373.tif 000004
【図３】
2020121373.tif 000005
【図４】
2020121373.tif 000006
【図５】
2020121373.tif 000007
【手続補正書】
【提出日】令和2年5月22日(2020.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
相対位置が変化するワークに対して、エンドエフェクタにより所定作業を行うロボットと、
前記ワークを撮像するビジョンセンサと、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する目標位置生成部と、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する推定部と、
前記目標位置生成部が生成した前記目標位置と前記推定部が推定した前記変化量とに基づいて、前記ロボットを制御する制御部と、
を有し、
前記推定部は、前記生成周期よりも短い前記推定周期で、前記変化量を推定し、
前記推定部は、前記相対位置情報としての前記エンドエフェクタと前記ワークとの相対速度と前記目標位置生成部による前記目標位置の生成に要する画像処理時間以上の遅延時間とに基づいて、前記変化量を推定する、ロボットシステム。
【請求項２】
前記ロボットにおける位置指令に対する応答の遅れを示す追従遅延時間を設定する追従遅延時間設定部と、
少なくとも前記画像処理時間と前記追従遅延時間とに基づいて、前記遅延時間を算出する遅延時間算出部と、
を更に備え、
前記推定部は、前記相対速度と前記遅延時間算出部が算出した前記遅延時間とに基づいて、前記変化量を推定する、請求項１に記載のロボットシステム。
【請求項３】
前記追従遅延時間設定部は、少なくとも前記ロボットの動作開始状態と前記ロボットの動作安定状態との間で異なる追従遅延時間を設定する、請求項２に記載のロボットシステム。
【請求項４】
前記ロボットを積載して、前記ワークに対して移動する移動体と、
前記移動体において、前記ロボットよりも進行方向の前側に配置され、前記移動体の振動を検出する移動体振動センサと、
を更に有し、
前記推定部は、更に前記移動体振動センサが検出した前記振動に関連する移動体振動情報に基づいて、前記変化量を推定する、請求項１〜３のいずれか一項に記載のロボットシステム。
【請求項５】
前記ロボットに配置され、前記ロボットの振動を検出するロボット振動センサを更に有し、
前記推定部は、前記移動体振動センサが検出した前記移動体振動情報と前記ロボット振動センサが検出した前記振動に関連するロボット振動情報とに基づいて、前記変化量を推定する、請求項４に記載のロボットシステム。
【請求項６】
前記制御部は、
前記生成周期で前記目標位置生成部が生成した前記目標位置に、前記推定周期で前記推定部が推定した前記変化量を加算して、前記エンドエフェクタの仮想目標位置を算出する仮想目標位置算出部と、
前記仮想目標位置と前記エンドエフェクタの指令位置とが一致するように、前記ロボットを制御するロボット制御部と、を有する、請求項１に記載のロボットシステム。
【請求項７】
相対位置が変化するワークに対して、エンドエフェクタにより所定作業を行うロボットと、
前記ワークを撮像するビジョンセンサと、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する目標位置生成部と、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する推定部と、
前記目標位置生成部が生成した前記目標位置と前記推定部が推定した前記変化量とに基づいて、前記ロボットを制御する制御部と、
前記ロボットを積載して、前記ワークに対して移動する移動体と、
前記移動体において、前記ロボットよりも進行方向の前側に配置され、前記移動体の振動を検出する移動体振動センサと、
を有し、
前記推定部は、更に前記移動体振動センサが検出した前記振動に関連する移動体振動情報に基づいて、前記変化量を推定する、ロボットシステム。
【請求項８】
相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムにおいて、前記ロボットを制御するロボット制御方法であって、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する工程Ａと、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する工程Ｂと、
前記工程Ａで生成した前記目標位置と前記工程Ｂで推定した前記変化量とに基づいて、前記ロボットを制御する工程Ｃと、
を有し、
前記工程Ｂにおいて、前記生成周期よりも短い前記推定周期で、前記変化量を推定し、
前記工程Ｂにおいて、前記相対位置情報としての前記エンドエフェクタと前記ワークとの相対速度と前記目標位置生成部による前記目標位置の生成に要する画像処理時間以上の遅延時間とに基づいて、前記変化量を推定する、ロボット制御方法。
【請求項９】
相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムにおいて、前記ロボットを制御するロボットコントローラであって、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する目標位置生成部と、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する推定部と、
前記目標位置生成部が生成した前記目標位置と前記推定部が推定した前記変化量とに基づいて、前記ロボットを制御する制御部と、
を有し、
前記推定部は、前記生成周期よりも短い前記推定周期で、前記変化量を推定し、
前記推定部は、前記相対位置情報としての前記エンドエフェクタと前記ワークとの相対速度と前記目標位置生成部による前記目標位置の生成に要する画像処理時間以上の遅延時間とに基づいて、前記変化量を推定する、ロボットコントローラ。
【請求項１０】
相対位置が変化するワークに対してエンドエフェクタにより所定作業を行うロボットと前記ワークを撮像するビジョンセンサとを具備するロボットシステムを構成するロボットコントローラで用いるプログラムであって、コンピュータに、
前記ビジョンセンサが撮像した画像に基づいて、前記エンドエフェクタが移動すべき位置を示す目標位置を、生成周期で生成する工程Ａと、
少なくとも前記相対位置に関連する相対位置情報に基づいて、前記エンドエフェクタと前記ワークとの相対位置の変化量を、推定周期で推定する工程Ｂと、
前記工程Ａで生成した前記目標位置と前記工程Ｂで推定した前記変化量とに基づいて、前記ロボットを制御する工程Ｃと、
を実行させ、
前記工程Ｂにおいて、前記生成周期よりも短い前記推定周期で、前記変化量を推定させ、
前記工程Ｂにおいて、前記相対位置情報としての前記エンドエフェクタと前記ワークとの相対速度と前記目標位置生成部による前記目標位置の生成に要する画像処理時間以上の遅延時間とに基づいて、前記変化量を推定させる、プログラム。