JP2013013950A - ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム - Google Patents

ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム Download PDF

Info

Publication number
JP2013013950A
JP2013013950A JP2011147186A JP2011147186A JP2013013950A JP 2013013950 A JP2013013950 A JP 2013013950A JP 2011147186 A JP2011147186 A JP 2011147186A JP 2011147186 A JP2011147186 A JP 2011147186A JP 2013013950 A JP2013013950 A JP 2013013950A
Authority
JP
Japan
Prior art keywords
time
image data
image
arm
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011147186A
Other languages
English (en)
Other versions
JP5834545B2 (ja
Inventor
Yukihiro Yamaguchi
如洋 山口
Shingo Kagami
慎吾 鏡
Masaru Morita
賢 森田
Koichi Hashimoto
浩一 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2011147186A priority Critical patent/JP5834545B2/ja
Publication of JP2013013950A publication Critical patent/JP2013013950A/ja
Application granted granted Critical
Publication of JP5834545B2 publication Critical patent/JP5834545B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良く制御可能なロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラムを提供することを目的としている。
【解決手段】撮像装置60と、第1〜第4の時刻にロボットのアームに設けられた撮像装置が出力する第1〜第4の画像データを取得する画像取得部103と、第1と第2の画像データとに基づき第3の時刻の画像データを推定し、推定した第3の時刻の画像データと取得された第3の時刻の画像データとの誤差を算出し、算出した誤差に基づき第4の時刻の画像データに含まれる誤差を算出する画像推定部109と、アームを制御するアーム制御部101とを備え、画像推定部は算出した第4の時刻における画像データに含まれる誤差を補正して第4の時刻の画像データを推定し、アーム制御部は推定された第4の時刻の画像データを用いてアームを制御する。
【選択図】図3

Description

本発明は、ロボット、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関する。
近年、製造現場等では、スカラロボットや多軸ロボット等が製品の組み立てや検査等に用いられている。製品の組み立てや検査を行なう際のロボットの制御方法としてビジュアルサーボがある。ビジュアルサーボは、目標物との相対的な位置の変化を視覚情報として計測し、それをフィードバック情報として用いることによって目標物を追跡するサーボ系の一種である。
画像取得には、露光、アナログ−デジタル変換、カメラからパソコンのインターフェースへの画像データ転送などが含まれる。したがって、通常は露光開始の瞬間からCPUが画像を読み出し可能となるまでには、最低でも1フレーム分の遅れが発生する。さらにCPUでは、画像処理に時間がかかるため、画像処理が終了するまで最低でももう1フレームの遅れが発生する。
このため、ビジュアルサーボでは、画像を露光した時の情報を使って、ロボットに次に移動する指令値を生成するが、ロボットに指令値を送る時は露光した時間から最低でも2フレーム分以上の時間が経過してしまう。
これに対して、ロボットのアームの手先位置・姿勢を出力するエンコーダーの情報は、高速取り込みが可能である。このため、非特許文献1では、このエンコーダーの情報と過去の画像情報を用いて現在の予測画像を生成することで、画像転送にかかる時間(遅れ時間)を待たずに、ロボットの指令値を生成している。
また、特許文献1では、画像転送処理時間のタイムラグを誤差として予測し補正するために、メモリーにセンサー情報を記憶させて、記憶させたセンサー情報を用いて、取得時刻が同じになるようにそれぞれのセンサー情報を近似補正している。近似補正は、メモリーに記憶されている算出したい時刻の前後の位置情報を用いて算出している。また、特許文献1では、センサー情報の取り込み間隔が微小な場合、算出したい時刻に最も近い時刻に取得された位置情報を用いて近似している。
特開平9−300264号公報
Abdul Hafez, Piyush Janawadkar and C.V. Jawahar, "Novel view prediction for improved visual servoing", NCC 2006, New Delhi, India
しかしながら、非特許文献1に記載の発明では、実際は、エンコーダー情報から計算されるロボット手先位置・姿勢と実際のロボットの手先位置・姿勢には誤差がある。この誤差は、例えば、重力の影響やモーターの回転誤差により発生する。このため、現在の画像を精度良く予測できないため、この画像を用いた場合、精度の良いビジュアルサーボが行えない。
また、特許文献1に記載の発明では、算出したい時刻の位置情報を、その時刻の前後の位置情報を用いて算出しているため、現在時刻における位置を算出できない。また、センサー情報の取り込み間隔が微小な場合、算出したい時刻に最も近い時刻に取得された位置情報を用いて近似するためには、画像情報も位置情報と同じ間隔で取得する必要があり、高価なカメラが必要である。
この場合においても、エンコーダー情報から計算されるロボット手先位置・姿勢と実際のロボットの手先位置・姿勢には、重力の影響等によるロボットキャリブレーション誤差が残る。このため、現在の画像を精度良く予測できないため、この画像を用いた場合、精度の良いビジュアルサーボが行えない。
また、ビジュアルサーボを行うために、予めキャリブレーションを行っても、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等が残り、これらが誤差要因となる。この結果、精度の良いビジュアルサーボが行えない。
本発明は、上記の課題に鑑みてなされたものであって、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良く制御可能なロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラムを提供することを目的としている。
上記目的を達成するため、本発明に係るロボットは、ロボットの可動可能なアームに設けられ、撮像した画像データを出力する撮像装置と、第4の時刻より前の異なる第1の時刻と第2の時刻及び第3の3つの時刻と、前記第4の時刻とに、第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを取得する画像取得部と、前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定し、前記第2の画像データ及び前記第3の画像データに基づき前記第4の時刻に撮像される画像データを推定し、前記推定した前記第3の時刻の画像データと、前記画像取得部が取得した前記第3の時刻に撮像される画像データとの誤差を算出し、前記算出した誤差に基づき前記第4の時刻に撮像される画像データに含まれる誤差を算出する画像推定部と、前記アームを制御するアーム制御部と、を備え、前記画像推定部は、前記算出した前記画像データに含まれる誤差を用いて前記推定した第4の時刻の画像データを補正し、前記アーム制御部は、前記画像推定部が補正した前記第4の時刻に撮像される画像データを用いて前記アームを制御することを特徴とする。
本発明によれば、画像取得部は、第4時刻より前の異なる3つの時刻である第1〜第3の時刻と第4の時刻に、それぞれ撮像装置が出力する画像データを取得する。第4の時刻は、例えば現在時刻である。そして、画像推定部は、第4の時刻より前の2つの異なる時刻の各画像データに基づいて、第3の時刻の画像データを推定する。そして、画像推定部は、推定した第3の時刻の画像データと、第3の時刻に取得された画像データ間の誤差を算出し、算出した画像データ間の誤差を用いて、第4の時刻の画像データを推定する。そして、アーム制御部は、現在時刻である第4の時刻の推定された画像を用いてアームを制御する。
この結果、撮像装置が撮像してから画像取得部に出力するまでに遅れ時間があり、現在時刻である第4の時刻に撮像された画像データが取得されていない状態であっても、現在時刻である第4の時刻の画像データの誤差を考慮して推定することができるので、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良く制御可能なロボットを提供できる。
また、本発明のロボットにおいて、前記画像取得部は、前記第1の時刻に前記撮像装置が出力する第1の画像データを取得し、前記第1の時刻より後の第2の時刻に前記撮像装置が出力する第2の画像データを取得し、前記第2の時刻より後の第3の時刻に前記撮像装置が出力する第3の画像データを取得し、前記第3の時刻より後の第4の時刻に前記撮像装置が出力する第4の画像データを取得し、前記画像推定部は、前記画像取得部が取得した第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを用いて、前記第3の時刻に撮像される画像データと前記第4の時刻に撮像される画像データとを推定するようにしてもよい。
また、本発明のロボットにおいて、前記アームの位置を検出し、前記検出されたアームの手先位置と姿勢を示す情報を前記画像推定部に出力するエンコーダーを備え、前記画像推定部は、前記第1の画像データが撮像された時刻における前記エンコーダーが出力する前記アームの手先位置と姿勢を示す情報と、前記第2の画像データが撮像された時刻における前記エンコーダーが出力する前記アームの手先位置と姿勢を示す情報と、前記撮像装置の焦点距離を含む内部パラメーターを表す行列と、前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定し、前記第2の画像データが撮像された時刻における前記エンコーダーが出力する前記アームの手先位置と姿勢を示す情報と、前記第3の画像データが撮像された時刻における前記エンコーダーが出力する前記アームの手先位置と姿勢を示す情報と、前記撮像装置の焦点距離を含む内部パラメーターを表す行列と、前記第2の画像データ及び前記第3の画像データに基づき前記第4の時刻に撮像される画像データを推定し、前記算出した画像データに含まれる誤差を用いて前記推定した第4の時刻に撮像される画像データを補正するようにしてもよい。
本発明によれば、画像推定部は、アームが備えるエンコーダーが出力するアームの手先位置と姿勢を示す情報と、撮像装置の焦点距離を含む内部パラメーターを表す行列と、第1の画像データと、第2の画像データとを用いて第3の時刻の画像データを推定する。そして、画像推定部は、推定した第3の時刻の画像データと、第3の時刻に取得された画像データ間の誤差を算出し、算出した画像データ間の誤差を算出する。さらに、画像推定部は、エンコーダーが出力するアームの手先位置と姿勢を示す情報と、撮像装置の焦点距離を含む内部パラメーターを表す行列と、第2の画像データと、第3の画像データと、算出した誤差に基づき第4の時刻の画像データを推定する。そして、アーム制御部は、現在時刻である第4の時刻の推定された画像を用いてアームを制御する。
この結果、撮像装置が撮像してから画像取得部に出力するまでに遅れ時間があり、現在時刻である第4の時刻に撮像された画像データが取得されていない状態であっても、現在時刻である第4の時刻の画像データの誤差を考慮して推定することができるので、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良く制御可能なロボットを提供できる。
また、本発明のロボットにおいて、前記画像推定部は、前記第1の時刻と第2の時刻及び前記第3の時刻における前記アームの位置と姿勢に基づく第1の回転を表す行列及び第1の並進を表す行列と、前記撮像装置の焦点距離を含む内部パラメーターを表す行列を用いて、第1の基礎行列を算出し、前記第2の時刻から前記第3の時刻における前記アームの位置と姿勢に基づく第2の回転を表す行列及び第2の並進を表す行列と、前記撮像装置の焦点距離を含む内部パラメーターを表す行列を用いて、第2の基礎行列とを算出し、前記算出した前記第1の基礎行列、前記第2の基礎行列、前記第1の画像データ及び前記第2の画像データを用いて前記第3の時刻の画像データを推定し、前記第3の時刻において、前記推定した前記第3の時刻の画像データと前記画像取得部が取得した前記第3の時刻の画像データとの画像データ間の誤差を算出するようにしてもよい。
本発明によれば、画像推定部は、第1の時刻から第3の時刻及び第2の時刻から第3の時刻におけるアームが備えるエンコーダーが出力するアームの手先位置と姿勢に基づく各回転を表す行列及び各並進を表す行列と、撮像装置の焦点距離を含む内部パラメーターを表す行列とを用いて各基礎行列を算出する。また、各基礎行列と、第1の画像データと、第2の画像データとに基づき第3の時刻の画像データを推定する。そして、画像推定部は、推定した第3の時刻の画像データと、第3の時刻に取得された画像データ間の誤差を算出し、算出した画像データ間の誤差を算出する。
この結果、撮像装置が撮像してから画像取得部に出力するまでに遅れ時間があり、現在時刻である第4の時刻に撮像された画像データが取得されていない状態であっても、第4の時刻の画像データを補正するための第3の時刻の画像データの誤差を算出することができるので、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良く制御可能なロボットを提供できる。
また、本発明のロボットにおいて、前記画像推定部は、前記誤差が時間や前記アームの手先位置と姿勢に依存しない場合、前記推定した前記第3の時刻の画像データと前記画像取得部が取得した前記第3の時刻の画像データ間との誤差を、前記第4の時刻における画像データに含まれる誤差として算出し、前記画像データに含まれる誤差を用いて前記第4の時刻に撮像される画像データを補正するようにしてもよい。
本発明によれば、画像データ間の誤差が時間や前記アームの手先位置と姿勢に依存しない場合、画像推定部は、第3の時刻の推定した画像データと取得された画像データ間の誤差を現在時刻である第4の時刻の画像データの誤差として算出する。そして、画像推定部は、この誤差を用いて、現在時刻である第4の時刻の推定した画像データを補正する。
この結果、撮像装置が撮像してから画像取得部に出力するまでに遅れ時間があり、現在時刻である第4の時刻に撮像された画像データが取得されていない状態であっても、第3の時刻の画像データの誤差を第4の時刻の画像データの補正値に用いることができるので、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良く制御可能なロボットを提供できる。
また、本発明のロボットにおいて、前記画像推定部は、前記撮像装置が撮像を行うフレームレートの間隔より短い周期で前記第4の時刻の画像データを推定し、前記アーム制御部は、前記画像推定部が推定した前記第4の時刻の画像データを用いて、前記撮像装置が撮像を行うフレームレートの間隔より短い周期で前記アームを制御するようにしてもよい。
また、本発明のロボットにおいて、前記画像推定部は、前記エンコーダーが前記アーム位置を示す情報を前記画像推定部に出力する周期で前記第4の時刻の画像データを推定し、前記アーム制御部は、前記画像推定部が、前記第4の時刻の画像データを用いて、前記エンコーダーが前記アーム位置を示す情報を前記画像推定部に出力する周期で前記アームを制御するようにしてもよい。
本発明によれば、画像推定部が、撮像装置のフレームレートより速い周期で、第4の時刻の画像を推定する。撮像装置のフレームレートより速い周期は、例えば、アームが備えるエンコーダーが検出したアームの実測位置を出力する周期である1[msec]である。このため、撮像装置のフレームレートが、例えば33[msec]であっても、画像指定部は1[msec]毎に撮像された画像を推定する。そして、アーム制御部は、この推定された画像を用いてアームを制御するので、低速な撮像装置を用いても、速いフレームレートの撮像装置を使った場合と同様に、アームを高速で制御することができる。
上記目的を達成するため、本発明のロボットにおいて、前記画像推定部は、前記第1の画像が撮像された時刻を、前記第1の画像が取得された第1の時刻と前記撮像装置が撮像してから画像データを出力するまでの遅延時間を用いて算出し、前記第2の画像が撮像された時刻を、該第2の画像が取得された第2の時刻と前記撮像装置が撮像してから画像データを出力するまでの遅延時間を用いて算出するようにしてもよい。
本発明によれば、誤差算出部は、取得済みの画像データが撮像された各時刻を、画像が取得された時刻から撮像装置が撮像してから画像データを出力するまでの遅延時間を減算して算出する。この結果、撮像装置が撮像してから画像取得部に出力するまでに遅れ時間があり、現時刻である第3の時刻の画像が取得されていない状態であっても、取得済みの各画像データが撮像された各時刻を算出できるので、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良く制御可能なロボットを提供できる。
上記目的を達成するため、本発明は、可動可能なアームに設けられ、撮像した画像データを出力する撮像装置を有するロボットのアームを制御するロボット制御装置であり、第4の時刻より前の異なる第1の時刻と第2の時刻及び第3の3つの時刻と、前記第4の時刻とに、第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを取得する画像取得部と、前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定し、前記第2の画像データ及び前記第3の画像データに基づき前記第4の時刻に撮像される画像データを推定し、前記推定した前記第3の時刻の画像データと、前記画像取得部が取得した前記第3の時刻に撮像される画像データとの誤差を算出し、前記算出した誤差に基づき前記第4の時刻に撮像される画像データに含まれる誤差を算出する画像推定部と、前記アームを制御するアーム制御部と、を備え、前記画像推定部は、前記算出した前記画像データに含まれる誤差を用いて前記推定した第4の時刻に撮像される画像データを補正し、前記アーム制御部は、前記画像推定部が補正した前記第4の時刻の画像データを用いて前記アームを制御することを特徴とする。
上記目的を達成するため、ロボットの可動可能なアームに設けられ画像撮像して画像データを出力する撮像装置を有し、可動するアームを制御するロボット制御方法であり、撮像装置が、撮像して画像データを出力する撮像工程と、画像取得部が、第4の時刻より前の異なる第1の時刻と第2の時刻及び第3の3つの時刻と、前記第4の時刻とに、第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを取得する画像取得工程と、画像推定部が、前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定し、前記第2の画像データ及び前記第3の画像データとに基づき前記第4の時刻に撮像される画像データを推定し、前記推定した前記第3の時刻の画像データと、前記画像取得部が取得した前記第3の時刻に撮像される画像データとの誤差を算出し、前記算出した誤差に基づき前記第4の時刻に撮像される画像データに含まれる誤差を算出する画像推定工程と、アーム制御部が、前記アームを制御するアーム制御工程と、を含み、前記画像推定工程は、前記算出した前記画像データに含まれる誤差を用いて前記推定した第4の時刻の画像データを補正し、前記アーム制御工程は、前記画像推定部が補正した前記第4の時刻に撮像される画像データを用いて前記アームを制御することを特徴とする。
上記目的を達成するため、本発明は、ロボットの可動可能なアームに設けられ画像撮像して画像データを出力する撮像装置を有し、可動するアームを制御する処理をコンピューターに実行させるためのプログラムであり、前記撮像装置が撮像して画像データを出力する撮像手順と、第4の時刻より前の異なる第1の時刻と第2の時刻及び第3の3つの時刻と、前記第4の時刻とに、第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを取得する画像取得手順と、前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定する第1画像推定手順と、前記第1画像推定手順により推定された前記第3の時刻の画像データと、前記画像取得手順により取得された前記第3の時刻の画像データとの誤差を算出し、前記算出した誤差に基づき前記第4の時刻の画像データに含まれる誤差を算出する誤差算出手順と、前記第2の画像データと、前記第3の画像データとに基づき前記第4の時刻に撮像される画像データを推定し、前記誤差算出手順が算出した前記画像データに含まれる誤差を用いて前記第4の時刻に撮像される画像データを補正する第2画像推定手順と、前記第2画像推定手順により補正された前記第4の時刻の画像データを用いて前記アームを制御するアーム制御手順と、をコンピューターに実行させる。
本発明によれば、画像取得部は、第4時刻より前の異なる3つの時刻である第1〜第3の時刻と第4の時刻に、それぞれ撮像装置が出力する画像データを取得する。第4の時刻は、例えば現在時刻である。そして、画像推定部は、第4の時刻より前の時刻の第1の時刻の画像データと第2の時刻の各画像データに基づいて、第3の時刻の画像データを推定する。そして、画像推定部は、推定した第3の時刻の画像データと、第3の時刻に取得された画像データ間の誤差を算出し、算出した画像データ間の誤差を用いて、第4の時刻の画像データを推定する。そして、アーム制御部は、現在時刻である第4の時刻の推定された画像を用いてアームを制御する。
この結果、撮像装置が撮像してから画像取得部に出力するまでに遅れ時間があり、現在時刻である第4の時刻に撮像された画像データが取得されていない状態であっても、現在時刻である第4の時刻の画像データの誤差を考慮して推定することができるので、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良く制御可能なロボット制御装置、ロボット制御方法、及びロボット制御プログラムを提供できる。
第1実施形態に係るロボット1の概略構成を示す斜視図である。 同実施形態に係るアーム部20とエンコーダー90の概念図である。 同実施形態に係る制御部100のブロック図である。 過去の2つの時刻における画像とカメラ位置、現在の時刻における画像とカメラ位置を説明する図である。 同実施形態に係る撮像装置60が撮像するタイミングとエンコーダー情報が取得されるタイミングを説明する図である。 同実施形態に係るアーム2の手先位置・姿勢を説明する図である。 同実施形態に係る各時刻におけるパラメーター、アーム2の相対移動量、画像の関係を説明する図である。 同実施形態に係る現在時刻dの画像Iを推定する手順のフローチャートである。 第2実施形態に係る現在時刻dの画像Iを推定する手順のフローチャートである。 第3実施形態に係るロボット1aの概略構成を示す斜視図である。 同実施形態に係るアーム部20−1及び20−2と力センサー、エンコーダーの概念図である。
[第1実施形態]
図1は、本実施形態に係るロボット1の概略構成を示す斜視図である。図1に示すように、ロボット1は、1本のアーム2を備えている。アーム2は、固定部10、アーム部20、及びエンドエフェクター40を備える。また、ロボット1は、制御部100の制御により動作する。また、対象物70は、ステージ72の上面に配置されている。
固定部10は、例えば床、壁、天井、移動可能な台車の上などに固定される。固定部10は、内部に、制御部100(破線にて図示)を備える。
制御部100は、アーム部20、エンドエフェクター40を制御する。制御部100の詳細は後述する。なお、制御部100は、固定部10の内部ではなく、固定部10の外部に設けるようにしてもよい。
撮像装置60は、エンドエフェクター40の先端部に取り付けられている。撮像装置60は、例えばCCD(Charge Coupled Device)カメラである。撮像装置60は、対象物を撮影し、撮影したアナログ値の画像データを制御装置100に出力する。すなわち、本実施形態では、ロボット1の手先位置に、撮像装置60が固定設置されているハンドアイ・ロボットである。また、撮像される対象物70は固定されている。
なお、このようなハンドアイではなく、撮像装置60をステージ72に固定し、ロボット1のエンドエフェクター40に非図示のハンドを取り付け、このハンドが対象物72を把持して移動させるようにしてもよい。
制御部100は、ロボット1のアーム2を後述するように制御する。また、制御部100は、撮像装置60が出力した画像データとアーム2の手先位置・姿勢情報とに基づき、後述するように、現在時刻の画像情報を推定する。また、制御部100は、推定した現在時刻の画像情報を、画像表示装置65に出力する。
図2は、本実施形態に係るアーム部20とエンコーダー90の概念図である。
図2に示すように、アーム2のアーム部20は、第1リンク21、第2リンク22、第3リンク23、第4リンク24および第5リンク25がこの順に連結されたものである。また、アーム部20は、回転部82、83及び85と、屈折部81、84及び86とを有している。
屈折部81は、固定部10と第1リンク21との間に設けられている。回転部82は、第1リンク21と第2リンク22との間に設けられている。回転部83は、第2リンク22と第3リンク23との間に設けられている。屈折部84は、第3リンク23と第4リンク24との間に設けられている。回転部85は、第4リンク24と第5リンク25との間に設けられている。屈折部84は、第5リンク25のうち第4リンク24が設けられた他方に設けられている。
図2に示すように、アーム部20は、6自由度を有する6軸アームである。すなわち、アーム部20の先端のエンドエフェクター40は、これらの各軸の回転部と屈折部の動作により、移動する。アーム部20が6軸アームであるため、制御部100は、互いに独立な6つの変数で制御することが可能であり、例えば、位置(x、y、z)の3つの変数(成分)、姿勢を表す角度(α、β、γ)の3つの成分(変数)に対応して制御することができる。
また、図2に示すように、回転部82、83及び85と、屈折部81、84及び86は、各々エンコーダー91〜96を備えている。例えば、回転部82が備えるエンコーダー92は、回転角度、速度を検出し、検出した回転角度および速度を示す情報を制御部100に出力する。以下、エンコーダー91〜96を、エンコーダー90という。エンコーダー90は、例えば光学式エンコーダーであり、アブソリュート(絶対値)エンコーダーまたはインクリメンタル(相対値)エンコーダーである。
図3は、本実施形態に係る制御部100のブロック図である。
図3に示すように、制御部100は、アーム制御部101、駆動部102、画像取得部103、クロック発生部104、画像処理部105、記憶部106、位置情報取得部107、位置姿勢算出部108、および、画像推定部109を備えている。また、制御部100には、撮像装置60、エンコーダー90、ロボット1(アーム2含む)、および、画像表示装置65が接続されている。なお、画像推定部とは、位置姿勢算出部108と画像推定部109である。
制御部100のアーム制御部101は、撮像装置60の画像中心(アーム2の手先ともいう)を移動させる駆動信号を生成し、駆動部102に出力する。また、アーム制御部101は、画像推定部109が推定した画像データを用いて、アーム2をビジュアルサーボにより制御する。
駆動部102は、アーム制御部101が出力する駆動信号に応じて、ロボット1のアーム2を駆動する。
画像取得部103は、撮像装置60が出力する画像データを取得し、取得した画像データをデジタルデータに変換する。例えば、撮像装置60の撮影タイミングが30fps(フレーム/秒)の場合、画像取得部103は、撮像装置60が撮像した画像を33[msec]毎に取得する。画像取得部103は、撮像された画像データを取得した時刻を、クロック発生部104が出力するクロック信号から取得する。また、画像取得部103は、変換した画像データと、取得した時刻を示す情報とを画像処理部105に出力する。
なお、撮像装置60が出力する画像情報がデジタル信号の場合、画像取得部103は、取得した画像情報を、変換せずにそのまま画像処理部105に出力する。
クロック発生部104は、一定周期のクロック信号を発生させ、発生させたクロック信号を、アーム制御部101、画像取得部103、および位置情報取得部107に出力する。
画像処理部105は、画像取得部103が出力する画像データに対して画像処理を行い、特徴量を抽出する。画像処理部105は、例えば、2値化処理により対象物70の輪郭を抽出し、エッジ検出により特徴量を抽出する。画像処理部105は、画像取得部103が出力する時刻を示す情報を、実際の画像を撮像した時刻に補正する。例えば、取得した画像を取得した時刻と、その画像が実際に撮像された時刻が1フレーム分ずれている場合、撮像した時刻に対して取得した時刻のずれを遅れ時間という。そして、遅れ時間が1フレームの場合、取得した時刻から1フレーム分の時間を減算することで取得した時刻を算出する。画像処理部105は、抽出した特徴量を示す情報と算出した時刻を示す情報とを関連づけて、記憶部106に記憶させる。
記憶部106には、撮像された画像の特徴量を示す情報と、撮像された時刻を示す情報とが関連付けられて記憶されている。
位置情報取得部107は、エンコーダー90が出力するアーム2の手先位置・姿勢を示す情報を取得する。また、位置情報取得部107は、アーム2の手先位置・姿勢を示す情報を取得した時の時刻を、クロック発生部104が出力するクロック信号から取得する。また、位置情報取得部107は、取得したアーム2の手先位置・姿勢を示す情報と、取得した時刻を示す情報とを位置姿勢算出部108に出力する。
位置姿勢算出部108は、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報を用いて、後述するように基礎行列を算出し、算出した基礎行列を画像推定部109に出力する。また、位置姿勢算出部108は、画像推定部109が出力する実測された画像と推定された推定画像を用いて、例えば最小化問題を解いて、実測画像と推定画像間の誤差を算出し、算出した実測画像と推定画像間の誤差を画像推定部109に出力する。
画像推定部109は、記憶部106に記憶されている各時刻の画像データを読み出す。また、画像推定部109は、後述するように、読み出した画像データの各座標の情報と、位置姿勢算出部108が出力する基礎行列を用いて、現在時刻の画像を推定し、推定した現在時刻の画像データをアーム制御部101に出力する。
ビジュアルサーボ、カメラの内部パラメーター(透視変換行列)、及び基礎行列等については、公知であるため(例えば、橋本浩一. ビジュアルサーボ-ii- コンピュータビジョンの基礎、計測自動制御学会、システム/制御/情報(講座), Vol. 53, No. 11, pp. 476-483, 2009.参照)、導出過程などの説明は省略する。
図4は、過去の2つの時刻における画像とカメラ位置、現在の時刻における画像とカメラ位置を説明する図である。図4に示すように、撮像装置60は、過去の時刻d(第1の時刻)において、座標mを含む画像を撮像し、過去のある時刻d(第2の時刻)において、座標mを含む画像を撮像し、現在時刻d(第3の時刻)において、座標mを含む画像を撮像する。なお、図4において、例えば、時刻dの実際の画像は、撮像装置60が撮像して出力するまでに1フレームの遅延がある場合、時刻dの時に撮像された画像である。
そして、過去の時刻dから現在時刻dにおける回転分がR20、並進分がt20である。同様に、過去の時刻dから現在時刻dにおける回転分がR10、並進分がベクトルt10である。同様に、過去の時刻dから過去の時刻dにおける回転分がR21、並進分がt21である。
また、過去の時刻dで撮像された画像Iは、座標m2i(i=1、・・・、N)の集まりである。同様に、過去の時刻dで撮像された画像Iは、座標m1i(i=1、・・・、N)の集まりである。同様に、現在時刻dで撮像された画像Iは、座標m1i(i=1、・・・、N)の集まりである。
時刻dとdにおけるエピポーラ拘束の関係は、次式(1)のように表される。同様に、時刻dとdにおけるエピポーラ拘束の関係は、次式(2)のように表される。同様に、時刻dとdにおけるエピポーラ拘束の関係は、次式(3)のように表される。なお、エピポーラ拘束とは、基準カメラに写ったある点がもう一方の画像上のある直線(エピポーラライン)上に射影され、異なる視点から得られた2つの画像の対応する点同士が満たす条件である。
Figure 2013013950
Figure 2013013950
Figure 2013013950
現在時刻dの画像Iの座標mは、次式(4)により推定できる。
Figure 2013013950
図5は、本実施形態に係る撮像装置60が撮像するタイミングとエンコーダー情報が取得されるタイミングを説明する図である。
図5に示すように、撮像装置60の撮影タイミングが30fps(フレーム/秒)の場合、撮像装置60が撮像した画像は、33[msec]毎に更新される。図5において、時刻d、d、dは、撮像装置60が撮像するタイミングであり、33[msec]間隔である。一方、エンコーダー90が生成するロボット1の手先位置・姿勢を示すエンコーダー情報は、例えば1[msec]毎に取得される。図5において、時刻de、de、・・・は、エンコーダー情報が取得されるタイミングであり、1[msec]間隔である。また、時刻dは現在時刻であり、時刻dは時刻tより33[msec]前、時刻dは、時刻dより33[msec]前である。
次に、現在時刻dの画像を予測する手順の概略について、図面を用いて説明する。
図6は、本実施形態に係るアーム2の手先位置・姿勢を説明する図である。図7は、本実施形態に係る各時刻におけるパラメーター、アーム2の相対移動量、画像の関係を説明する図である。
図6において、アーム部20を簡略化して示している。図6、図7に示すように、時刻dにおいて、撮像装置60を備えるアーム2の手先位置・姿勢は、ロボット座標(x,y,z,α,β,γ)の位置・姿勢にある。この時刻dにおいて、撮像装置60は、対象物体70の画像Iを撮像する。なお、推定した画像Iを、以下、推定画像I’という。同様に、推定した画像Iを、推定画像I'、推定した画像Iを、推定画像I'、推定した画像Iを、推定画像I'という。
次に、時刻dにおいて、アーム2の手先位置・姿勢は、ロボット座標(x,y,z,α,β,γ) から(x,y,z,α,β,γ)の位置・姿勢に移動する。時刻dからdにおいて、アーム2の手先位置・姿勢の相対移動量は、回転分がR21、並進分がt21である。この場合、時刻dからdにおける基礎行列F21は、次式(5)のように表される。
Figure 2013013950
この時刻dにおいて、撮像装置60は、対象物体70の画像Iを撮像する。
次に、時刻dにおいて、アーム2の手先位置・姿勢は、ロボット座標(x,y,z,α,β,γ) から(x,y,z,α,β,γ)の位置・姿勢に移動する。時刻dからdにおいて、アーム部20の手先位置・姿勢の相対移動量は、回転分がR10、並進分がt10である。この場合、時刻dからdにおける基礎行列F10は、次式(6)のように表される。
Figure 2013013950
式(5)と(6)において、符号Tは、並進を表す行列であり、次式(7)のように表される。なお、並進ベクトルtは、[t(Tは転置行列を表す)である。また、行列Aは、撮像装置60の内部パラメーターを表す行列であり、画像中心座標、直交性、縦軸と横軸のスケール、焦点距離などにより表される、例えば3行3列の行列である。
Figure 2013013950
そして、制御部100の画像推定部109は、これらの基礎行列(fundamental matrix)F21(式(5))、F10(式(6))、撮像された画像I、およびIを用いて、現在時刻dの画像Iを推定する。なお、基礎行列とは、2つの画像の対応する点の座標上の関係(写像関係)を示す行列である。
なお、従来技術では、各時刻におけるアーム2の手先位置・姿勢の回転を表す行列R、並進を表す行列T、及び撮像装置60の内部パラメーターを表す行列Aにキャリブレーション誤差がなく、正確な場合を想定している。しかしながら、実際には、各行列には、ロボット1のロボットキャリブレーション誤差や、カメラキャリブレーション誤差等を有している場合がある。なお、ロボットキャリブレーション誤差とは、ロボットが有する幾何学的な誤差要因と非幾何学的な誤差要素に対してキャリブレーションを行った後の誤差である。幾何学的な誤差要因とは、ロボットの機構の要素加工時の製造誤差等であり、非幾何学的な誤差要素とは、負荷時の重力による各関節のたわみや歯車間の伝達誤差等である。また、カメラキャリブレーション誤差とは、撮像装置60の内部パラメーターを表す行列Aと、撮像装置60の外部パラメーターを表す行列を決定することである。なお、撮像装置60の外部パラメーターとは、並進ベクトルt、回転を表す行列Rを要素に持つ、カメラ座標系でのベクトルをワールド座標系に変換する同次行列である。また、撮像装置60が撮像してから、出力されるまでの遅れ時間による誤差がある。このような場合、誤差を考慮せずに現在時刻の画像データを推定してしまうと、推定した画像データに誤差を含んでしまうため、精度良くアーム2の制御ができない。これらの誤差を考慮して、現在時刻の画像データを推定するには、回転を表す行列R、並進を表す行列T、及び撮像装置60の内部パラメーターを表す行列Aの各行列の誤差(ΔR、ΔT、ΔA)を算出することで補正できる。誤差は、例えば、現在時刻dより前の過去の時刻dに取得された画像データと過去の時刻dの、推定された画像データ間の誤差を算出することで求められる。この場合、推定された画像データと、実際に取得された画像データとが一致するような最小化問題を、例えばニュートン法などを用いて解くことで、誤差情報を算出する。
次に、本実施形態における時刻dにおける画像Iに含まれる誤差εの算出方法について説明する。誤差εは、時刻dにおける(回転を表す行列R、並進を表す行列T、撮像装置60の内部パラメーターを表す行列A)の誤差として、次式(8)のように表される。
なお、式(8)において、ベクトルxは、ワールド座標における時刻dにおけるアーム2の手先位置・姿勢、ベクトルxは、時刻dにおけるアーム2の手先位置・姿勢、誤差εは、時刻dにおける画像Iの誤差、誤差εは、時刻dにおける画像Iの誤差である。
Figure 2013013950
式(8)において、一定の誤差がある場合、すなわち、誤差が時間や位置に依存しない場合の誤差は一定値とみなせる。このため、誤差の偏微分成分である次式(9)は、0と見なせるため、時刻dにおける誤差εは、次式(10)のように、時刻dにおける誤差εと等しい。
Figure 2013013950
Figure 2013013950
また、式(8)において、誤差が時間や位置に依存する場合、式(9)を、過去の時系列データから求めるようにしてもよい。
時刻dにおける画像Iの誤差εは、時刻dに取得した画像Iと、時刻dに取得される画像を推定した推定画像(以下、時刻dの推定画像という)I’との差を、ニュートン法などを用いて最小化問題を解くことで算出する。例えば、画像Iから、推定した推定画像I にΔR、ΔT、ΔAを加えて、推定画像I’を更新した推定画像を減算し、減算結果が最小になるΔR、ΔT、ΔAを算出することで、誤差ε(ΔR、ΔT、ΔA)を算出する。
時刻dの推定画像I’は、上述したように式(4)に基づき、次式(11)を用いて、各画素を算出することで推定する。ただし、この場合、推定された推定画像I’は、誤差を有している。なお、撮像装置60の内部パラメーターを表す行列Aの各パラメーターは、予めキャリブレーション処理により算出しておく。
Figure 2013013950
式(11)において、座標mは、画像Iの各座標、座標mは、画像Iの各座標である。また、基礎行列F21は、時刻dから時刻dに移動した場合の基礎行列、基礎行列F31は、時刻dから時刻dに移動した場合の基礎行列である。すなわち、推定画像I’は、画像I、I、基礎行列F31、及び基礎行列F21を用いて推定する。
次に、現在時刻dの画像Iを推定する手順について、図8のフローチャートを用いて説明する。なお、本実施形態では、撮像装置60が画像データを撮像してから、撮像された画像データを画像取得部103が取得するまで、1フレームの遅延量があるとして説明する。
(ステップS1)制御部100のアーム制御部101は、撮像装置60が取り付けられているアーム2の手先位置・姿勢を(x,y,z,α,β,γ)から(x,y,z,α,β,γ)に移動させる駆動信号を生成し、駆動部102を介してロボット1のアーム2を駆動する。また、アーム制御部101は、生成した駆動信号に基づく情報を位置姿勢算出部108に出力する。なお、駆動信号に基づく情報とは、例えば、アーム2の手先位置・姿勢(x,y,z,α,β,γ)とアーム2の手先位置・姿勢(x,y,z,α,β,γ)を示す情報である。
この駆動信号により、アーム2の手先位置・姿勢は、時刻dの時に(x,y,z,α,β,γ)に移動し、時刻dの時に(x,y,z,α,β,γ)に移動する。また、アーム2の手先位置・姿勢は、時刻dの時に(x,y,z,α,β,γ)に移動し、時刻dの時に(x,y,z,α,β,γ)に移動する。そして、時刻d〜dの各間隔は、撮像装置60のフレームレートであり、例えば33[msec]である。ステップS1終了後、ステップS2に進む。
(ステップS2)次に、時刻d(第2の時刻)の時、画像取得部103は、対象物70を撮像した画像Iを撮像装置60から取得する。取得した画像Iは、上述したように内部処理による遅れにより、画像を取得した時刻dに対して、1フレーム分の33[msec]遅れている。このため、取得した画像Iは、時刻dより33[msec]前の位置の画像、すなわち、時刻d(第3の時刻)の時の画像である。
また、画像取得部103は、画像Iを取得したときの時刻dをクロック発生部104から取得する。次に、画像取得部103は、画像Iをアナログ信号からデジタル信号に変換し、変換した画像Iと取得した時刻dとを画像処理部105に出力する。ステップS2終了後、ステップS3に進む。
(ステップS3)画像処理部105は、画像取得部103が出力する画像Iに対して画像処理を行い、特徴量を抽出する。画像処理部105は、例えば、2値化処理により対象物70の輪郭を抽出し、エッジ検出により特徴量を抽出する。画像処理部105は、画像取得部103が出力する時刻dに基づき、実際の画像を撮像した時刻d(=d−33[msec])を算出する。画像処理部105は、抽出した特徴量と算出した時刻dとを関連づけて、記憶部106に記憶させる。ステップS3終了後、ステップS4に進む。
(ステップS4)時刻dの時、位置情報取得部107は、エンコーダー90が出力するアーム2の手先位置・姿勢を示す情報を取得し、取得したアーム2の手先位置・姿勢を示す情報を位置姿勢算出部108に出力する。ステップS4終了後、ステップS5に進む。
(ステップS5)次に、時刻d(第3の時刻)の時、画像取得部103は、対象物70を撮像した画像Iを撮像装置60から取得する。取得した画像Iは、時刻dより33[msec]前の位置の画像、すなわち、時刻d(第2の時刻)の時の画像である。
また、画像取得部103は、画像Iを取得したときの時刻dをクロック発生部104から取得する。次に、画像取得部103は、画像Iをアナログ信号からデジタル信号に変換し、変換した画像Iと取得した時刻dとを画像処理部105に出力する。ステップS5終了後、ステップS6に進む。
(ステップS6)画像処理部105は、画像取得部103が出力する画像Iに対して画像処理を行い、特徴量を抽出する。画像処理部105は、画像取得部103が出力する時刻dに基づき、実際の画像を撮像した時刻d(=d−33[msec])を算出する。画像処理部105は、抽出した特徴量と算出した時刻dとを関連づけて、記憶部106に記憶させる。ステップS6終了後、ステップS7に進む。
(ステップS7)時刻dの時、位置情報取得部107は、エンコーダー90が出力するアーム2の手先位置・姿勢を示す情報を取得し、取得したアーム2の手先位置・姿勢を示す情報を位置姿勢算出部108に出力する。ステップS7終了後、ステップS8に進む。
(ステップS8)次に、時刻d(第4の時刻)の時、画像取得部103は、対象物70を撮像した画像Iを撮像装置60から取得する。取得した画像Iは、時刻dより33[msec]前の位置の画像、すなわち、時刻d(第3の時刻)の時の画像である。
また、画像取得部103は、画像Iを取得したときの時刻dをクロック発生部104から取得する。次に、画像取得部103は、画像Iをアナログ信号からデジタル信号に変換し、変換した画像Iと取得した時刻dとを画像処理部105に出力する。ステップS8終了後、ステップS9に進む。
(ステップS9)画像処理部105は、画像取得部103が出力する画像Iに対して画像処理を行い、特徴量を抽出する。画像処理部105は、画像取得部103が出力する時刻dから画像の遅れに基づく時間33[msec]を減算して、実際の画像を撮像した時刻d(=d−33[msec])を算出する。画像処理部105は、抽出した特徴量と算出した時刻dとを関連づけて、記憶部106に記憶させる。ステップS9終了後、ステップS10に進む。
(ステップS10)時刻dの時、位置情報取得部107は、エンコーダー90が出力するアーム2の手先位置・姿勢を示す情報を取得し、取得したアーム2の手先位置・姿勢を示す情報を位置姿勢算出部108に出力する。ステップS10終了後、ステップS11に進む。
(ステップS11)次に、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R31と並進を表す行列T31を、時刻dとdの時のアーム制御部101が出力する駆動信号に基づく情報と、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報とを用いて算出する。位置姿勢算出部108は、算出した回転を表す行列R31と並進を表す行列T31、及び撮像装置60の内部パラメーターを表す行列Aを用いて基礎行列F31を上述した式(5)においてR21をR31、T21をT31に置き換えて算出する。位置姿勢算出部108は、算出した基礎行列F31を画像推定部109に出力する。
次に、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R21と並進を表す行列T21を、時刻dとdの時のアーム制御部101が出力する駆動信号に基づく情報と、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報とを用いて算出する。位置姿勢算出部108は、算出した回転を表す行列R21と並進を表す行列T21、及び撮像装置60の内部パラメーターを表す行列Aを用いて基礎行列F21を、上述した式(5)により算出する。位置姿勢算出部108は、算出した基礎行列F21を画像推定部109に出力する。
ステップS11終了後、ステップS12に進む。
(ステップS12;第1画像推定手順)次に、画像推定部109は、記憶部106に記憶されている画像IとIの画像データを読み出す。画像推定部109は、位置姿勢算出部108が出力する基礎行列F31と基礎行列F21、記憶部106から読み出した画像IとIの画像データを用いて、上述した式(11)により時刻dの推定画像I’を推定する。なお、式(11)において、画像情報mは、時刻dの推定画像I’の画像情報であり、画像情報mは、時刻dで取得された画像Iの画像情報であり、画像情報mは、時刻dで取得された画像Iの画像情報である。画像推定部109は、時刻dで実測された画像Iと式(11)で推定した推定画像I’を位置姿勢算出部108に出力する。ステップS12終了後、ステップS13に進む。
(ステップS13)次に、位置姿勢算出部108は、画像推定部109が出力する実測された画像Iと推定された推定画像I’を用いて、例えば最小化問題を解いて誤差εである(ΔR、ΔT、ΔA)を算出する。ステップS13終了後、ステップS14に進む。
(ステップS14)次に、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R10と並進を表す行列T10を、時刻dとdの時のアーム制御部101が出力する駆動信号に基づく情報と、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報とを用いて算出する。次に、位置姿勢算出部108は、算出した回転を表す行列R10と並進を表す行列T10、及び撮像装置60の内部パラメーターを表す行列Aを用いて基礎行列F10を、上述した式(6)により算出する。
ステップS14終了後、ステップS15に進む。
(ステップS15)次に、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R20と並進を表す行列T20を、時刻dとdの時のアーム制御部101が出力する駆動信号に基づく情報と、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報とを用いて算出する。
次に、位置姿勢算出部108は、算出した回転を表す行列R20と並進を表す行列T20、及び撮像装置60の内部パラメーターを表す行列Aを用いて基礎行列F20を、次式(12)により算出する。
ステップS15終了後、ステップS16に進む。
Figure 2013013950
(ステップS16)次に、誤差が時間や位置に依存しない場合、位置姿勢算出部108は、上述した式(10)により、誤差εをステップS12で算出した誤差εとして算出し、算出した誤差ε(ΔR、ΔT、ΔA)を画像推定部109に出力する。ステップS16終了後、ステップS17に進む。
(ステップS17;第2画像推定手順)次に、画像推定部109は、記憶部106に記憶されている時刻dの時の画像Iと、時刻dの時のIを読み出す。なお、画像情報mは、時刻dの推定される推定画像I’の画像情報であり、画像情報mは、時刻dで取得された画像Iの画像情報であり、画像情報mは、時刻dで取得された画像Iの画像情報である。
次に、画像推定部109は、ステップS16で算出した誤差ε(ΔR、ΔT、ΔA)を各基礎行列F10、F20に加算して、各基礎行列F10、F20を更新する。なお、回転行列Rについては、誤差ΔRを乗じることで更新する。ステップS17終了後、ステップS18に進む。
(ステップS18;第2画像推定手順)次に、画像推定部109は、読み出した画像I、Iの各画素の情報m、mと、更新した基礎行列F10、F20を用いて、次式(13)により、時刻dの画像mを推定する。
Figure 2013013950
全ての画素の情報について算出することで、画像推定部109は、時刻dの推定画像I’を推定する。
以上により、時刻dの画像Iの推定を終了する。
このようにして推定された現在時刻dの推定画像I’を用いて、制御部100が、ビジュアルサーボを行う。
なお、ステップS18では、時刻d、dに撮像された画像I、Iを用いて、現在時刻dの画像Iを推定する方法を説明した。撮像装置60の遅れ時間が長く、画像処理により最低でも2フレームの遅れ時間が発生する場合は、例えば、時刻d(現在時刻dより3フレーム前の時刻)に撮像された画像Iと、時刻d(現在時刻dより2フレーム前の時刻)に撮像された画像Iとを用いて、現在時刻dの画像Iを推定する。この結果、現在時刻dにおける画像Iが直接得られなくても、誤差を含めて精度良く画像Iを推定できるので、遅れ時間があっても精度良く制御できる。
また、遅れ時間が1フレームの場合であっても、時刻d(現在時刻dより3フレーム前の時刻)、d(現在時刻dより2フレーム前の時刻)に撮像された画像I、Iを用いて、現在時刻dの画像Iを推定するようにしてもよい。
また、なお、本実施形態では、ステップS18とS19で、時刻dの画像mを推定した後、推定した推定画像I’に誤差を加算して推定画像I’を更新する例を説明した。しかしながら、ステップS17で算出した誤差ε(ΔR、ΔT、ΔA)を基礎行列F10に加算して基礎行列F10を更新し、更新したF10を用いて式(13)により時刻dの推定画像I’を算出するようにしてもよい。
以上のように、本実施形態では、画像推定部109は、現在時刻dより1フレーム前の時刻dの推定画像I’を推定する。そして、位置姿勢算出部108は、現在時刻dより1フレーム前の時刻dに取得された画像Iと推定画像I’との誤差ε0を誤差εとして算出する。そして、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R20、並進を表す行列T20、撮像装置60の内部パラメーターを表す行列Aを用いて、基礎行列F20を算出する。また、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R20、並進を表す行列T20、撮像装置60の内部パラメーターを表す行列Aを用いて、基礎行列F20を算出する。そして、画像推定部109は、現在時刻dより2フレーム前の時刻dに撮像された画像I、現在時刻dより1フレーム前の時刻dに撮像された画像I、誤差を考慮した基礎行列F20、基礎行列F10を用いて、現在時刻dの推定画像I’を推定する。そして、推定した推定画像I’に算出した誤差εを加算して、推定画像I’を更新する。
この結果、撮像装置60による遅れ誤差、ロボットキャリブレーション誤差、及びカメラキャリブレーション誤差を考慮した現在時刻dにおける推定画像I’を精度良く推測できる。そして、この推定された画像を用いてロボット1を制御できるため、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度の良いビジュアルサーボを行うことができる。
[第2実施形態]
本実施形態では、エンコーダー90が出力するアーム2の手先位置・姿勢を示す情報が取得できるタイミング毎に画像を推定する。
本実施形態に係る現在時刻dの画像Iを推定する手順について、図9のフローチャートを用いて説明する。エンコーダー90からの出力は、1[msec]毎に取得できるとして、以下の説明をする。
(ステップS101)まず、制御部100のアーム制御部101は、アーム2の手先位置・姿勢を(x,y,z,α,β,γ)から(x,y,z,α,β,γ)に移動させる駆動信号を生成し、駆動部102を介してロボット1のアーム2を駆動する。また、アーム制御部101は、生成した駆動信号に基づく情報を位置姿勢算出部108に出力する。
この駆動信号により、アーム2の手先位置・姿勢は、時刻dの時に(x,y,z,α,β,γ)に移動し、時刻dの時に(x,y,z,α,β,γ)に移動する。また、アーム2の手先位置・姿勢は、時刻dの時に(x,y,z,α,β,γ)に移動し、時刻dの時に(x,y,z,α,β,γ)に移動する。そして、時刻d〜dの間隔は、撮像装置60のフレームレートであり、例えば33[msec]である。ステップS101終了後、ステップS102に進む。
(ステップS102)次に、位置情報取得部107は、エンコーダー90が出力するアーム2の手先位置・姿勢を示す情報を1[msec]毎に取得し、取得したアーム2の手先位置・姿勢を示す情報を位置姿勢算出部108に出力する。ステップS102終了後、ステップS103に進む。
(ステップS103)次に、画像取得部103は、クロック発生部104が出力するクロック信号に基づき、33[msec]経過したか否かを判定する。
33[msec]経過した場合(ステップS103;Yes)、ステップS104に進む。33[msec]経過していない場合(ステップS103;No)、ステップS106に進む。
(ステップS104)画像取得部103は、時刻dに画像Iを撮像装置60から取得する。また、画像取得部103は、画像Iを取得したときの時刻dをクロック発生部104から取得する。次に、画像取得部103は、画像Iをアナログ信号からデジタル信号に変換し、変換した画像Iと取得した時刻dとを画像処理部105に出力する。ステップS104終了後、ステップS105に進む。
(ステップS105)画像処理部105は、画像取得部103が出力する画像Iに対して画像処理を行い、特徴量を抽出する。画像処理部105は、例えば、2値化処理により対象物70の輪郭を抽出し、エッジ検出により特徴量を抽出する。画像処理部105は、画像取得部103が出力する時刻dから画像の遅れに基づく時間33[msec]を減算して、実際の画像を撮像した時刻d(=d−33[msec])を算出する。画像処理部105は、抽出した特徴量と算出した時刻dとを関連づけて、記憶部106に記憶させる。ステップS105終了後、ステップS106に進む。
(ステップS106)次に、画像推定部109は、記憶部106に画像データが3つ以上記憶されているか否かを判別する。
記憶部106に画像データが3つ以上記憶されている場合(ステップS106;Yes)、ステップS107に進む。記憶部106に画像データが3つ以上記憶されていない場合(ステップS106;No)、ステップS102に戻る。
この場合、記憶部106には、まだ画像Iしか記憶されていないため、ステップS102に戻り、ステップS102〜S106を繰り返す。そして、ステップS104において、画像取得部103は、対象物70を撮像した時刻dにおける画像Iを撮像装置60から取得する。ステップS105において、画像処理部105は、抽出した特徴量と算出した時刻dとを関連づけて、記憶部106に記憶させる。さらに、ステップS104において、画像取得部103は、対象物70を撮像した時刻dにおける画像Iを撮像装置60から取得する。ステップS105において、画像処理部105は、抽出した特徴量と算出した時刻dとを関連づけて、記憶部106に記憶させる。
(ステップS107)次に、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R31と並進を表す行列T31を、時刻dとdの時のアーム制御部101が出力する駆動信号に基づく情報と、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報とを用いて算出する。位置姿勢算出部108は、算出した回転を表す行列R31と並進を表す行列T31、及び撮像装置60の内部パラメーターを表す行列Aを用いて基礎行列F31を上述した式(5)においてR21をR31、T21をT31に置き換えて算出する。位置姿勢算出部108は、算出した基礎行列F31を画像推定部109に出力する。
次に、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R21と並進を表す行列T21を、時刻dとdの時のアーム制御部101が出力する駆動信号に基づく情報と、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報とを用いて算出する。位置姿勢算出部108は、算出した回転を表す行列R21と並進を表す行列T21、及び撮像装置60の内部パラメーターを表す行列Aを用いて基礎行列F21を、上述した式(5)により算出する。位置姿勢算出部108は、算出した基礎行列F21を画像推定部109に出力する。
ステップS107終了後、ステップS108に進む。
(ステップS108)次に、画像推定部109は、記憶部106に記憶されている画像IとIの画像データを読み出す。画像推定部109は、位置姿勢算出部108が出力する基礎行列F21と基礎行列F31、記憶部106から読み出した画像IとIの画像データを用いて、上述した式(11)により時刻dの推定画像I’を推定する。画像推定部109は、実測された画像Iと推定した推定画像I’を位置姿勢算出部108に出力する。ステップS10終了後、ステップS109に進む。
(ステップS109)次に、位置姿勢算出部108は、画像推定部109が出力する実測された画像Iと推定された推定画像I’を用いて、例えば最小化問題を解いて誤差εである(ΔR、ΔT、ΔA)を算出する。ステップS109終了後、ステップS110に進む。
(ステップS110)次に、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転R10と並進を表す行列T10を、時刻dとdの時のアーム制御部101が出力する駆動信号に基づく情報と、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報とを用いて算出する。次に、位置姿勢算出部108は、算出した回転を表す行列R10と並進を表す行列T10、及び撮像装置60の内部パラメーターを表す行列Aを用いて基礎行列F10を、上述した式(6)により算出する。
ステップS110終了後、ステップS111に進む。
(ステップS111)次に、位置姿勢算出部108は、時刻dから時刻dにおけるアーム2の手先位置・姿勢の回転を表す行列R20と並進を表す行列T20を、時刻dとdの時のアーム制御部101が出力する駆動信号に基づく情報と、位置情報取得部107が出力するアーム2の手先位置・姿勢を示す情報とを用いて算出する。次に、位置姿勢算出部108は、算出した回転を表す行列R20と並進を表す行列T20、及び撮像装置60の内部パラメーターを表す行列Aを用いて基礎行列F20を、上述した式(12)により算出する。
ステップS111終了後、ステップS112に進む。
(ステップS112)次に、誤差が時間や位置に依存しない場合、位置姿勢算出部108は、上述した式(10)により、誤差ε(ΔR、ΔT、ΔA)をステップS109で算出した誤差ε(ΔR、ΔT、ΔA)として算出する。ステップS112終了後、ステップS113に進む。
(ステップS113)次に、画像推定部109は、記憶部106に記憶されている画像I、Iを読み出す。
次に、画像推定部109は、ステップS112で算出した誤差ε(ΔR、ΔT、ΔA)を各基礎行列F10、F20に加算して、各基礎行列F10、F20を更新する。なお、回転行列Rについては、誤差ΔRを乗じることで更新する。ステップS113終了後、ステップS114に進む。
(ステップS114)次に、画像推定部109は、読み出した画像I、Iの各画素の情報m、mと、更新した基礎行列F10、F20を用いて、上述した式(13)により、時刻dの画像mを推定する。
全ての画素の情報について算出することで、画像推定部109は、時刻dの推定画像I’を推定する。
ステップS114終了後、ステップS102に戻る。
このようにして推定された現在時刻dの推定画像I’を用いて、制御部100が、エンコーダー90がアーム2の手先位置・姿勢を示す情報を出力するタイミング毎に、ビジュアルサーボを行う。
本実施形態によれば、位置姿勢算出部108は、撮像装置60のフレームレートが33[msec]の場合、撮像装置60から取得できる画像データを33[msec]でしか得られなくても、現在時刻より前に取得した画像データ、アーム2の手先位置・姿勢を示す情報に基づき、アーム2の手先位置・姿勢の誤差を算出できる。そして、画像推定部109は、現在時刻より前の時刻dに取得した画像データと時刻dの推定画像I’との誤差εを現在時刻dの誤差εとして算出する。そして、算出した誤差を用いて、現在時刻の画像を推定するようにしたので、エンコーダー90がアーム2の手先位置・姿勢を示す情報を出力するタイミング毎(例えば、1[msec]毎)に、ロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良くビジュアルサーボを行うことができる。
例えば、低いフレームレートの撮像装置60を用いたロボット1では、ロボット1の制御におけるサーボループのゲインを上げないと高速に制御できない。しかしながら、低いフレームレートの撮像装置60を用いたロボット1では、サーボループのゲインを上げると振動が発生するため、サーボループのゲインを上げられず、このためロボット1を高速に制御することができない。また、高速な制御を行うために高いフレームレートの撮像装置60を用いた場合、撮像装置60が高価であるため、ロボット1のコストアップになってしまう。
本実施形態によれば、低いフレームレートの撮像措置60を用いた場合でも、撮像装置60のフレームレートより速い間隔で、予測した画像を用いてロボット1を制御することができる効果がある。
なお、本実施形態では、ステップS103で、画像取得部103が、クロック発生部104が出力するクロック信号に基づき、33[msec]毎に撮像された画像データを取得する例を説明したが、撮像装置60が撮像した画像データを出力するタイミング毎に画像データを取得するようにしてもよい。
また、本実施形態では、エンコーダー90がアーム2の手先位置・姿勢を示す情報を出力するタイミング毎(例えば、1[msec]毎)に現在時刻の画像を推定する例を説明したが、画像を推定する間隔は、制御する用途に応じて任意でもよい。
[第3実施形態]
図10は、本実施形態に係るロボット1aの概略構成を示す斜視図である。図10に示すように、ロボット1aは、2本のアーム2−1と2−2を備えている。アーム2−1と2−2は、本体部500に連結されている。また、本体部500は、固定部10aに連結されている。
アーム2−1は、アーム部20−1、及びエンドエフェクター40−1を備える。アーム2−2は、アーム部20−2、力センサー30−2、及びエンドエフェクター40−2を備える。また、ロボット1は、制御部100aの制御により動作する。
撮像装置60は、エンドエフェクター40−1の先端部に取り付けられている。撮像装置60は、対象物を撮影し、撮影したアナログ値の画像データを制御装置100aに出力する。
アーム部20−1は、第1実施形態の構成と同様である。
アーム部20−2は、第1実施形態と同様に第1リンク21−2、第2リンク22−2、第3リンク23−2、第4リンク24−2および第5リンク25−2がこの順に連結されたものである。アーム部20−2の第5リンク25−2の他方端には、エンドエフェクター40−2が設けられている。アーム部20−2の第5リンク25−2とエンドエフェクター40−2の間には、力センサー30−2が介挿されている。力センサー30−2は、検出したアーム2−2のエンドエフェクター40−2に加わる力成分とトルク成分を含む情報を制御部100aに出力する。なお、エンドエフェクター40−2は、例えば把持部(ハンド部)である。
図11は、本実施形態に係るアーム部20−1及び20−2と力センサーとエンコーダーの概念図である。
図11に示すように、ロボット1aは、各アーム2−1、2−2がそれぞれ6自由度を有し、さらに本体部500が1自由度を有している。図11に示すように、アーム2−1と同様に、アーム2−1のアーム部20−1は、回転部82−1、83−1及び85−1と、屈折部81−1、84−1及び86−1とを有している。そして、アーム2−1のアーム部20−1は、エンドエフェクター40−1との間に力センサー30を有している。
また、図11に示すように、第1実施形態と同様に回転部82−1、83−1及び85−1と、屈折部81−1、84−1及び86−1は、各々エンコーダー91−1〜96−1を備えている。また、図11に示すように、アーム2−1と同様に、アーム2−2のアーム部20−2は、回転部82−2、83−2及び85−2と、屈折部81−2、84−2及び86−2は、各々エンコーダー91−2〜96−2を備えている。
本実施形態では、アーム2−1に取り付けられている撮像装置60により、ワーク72の上に置かれている対象物70を撮像して、制御部100aが、第1実施形態と同様に現在時刻の画像データを推定する。そして、制御部100aは、推定した画像データを用いて、アーム2−2のエンドエフェクター40−2のハンドが把持している物体の位置を制御する。制御部100aは、例えば、対象物70に把持されている部品を組み付けるように、推定された画像データを用いてアーム2−2を制御する。
この結果、本実施形態のロボット1は、第1実施形態と同様に、撮像装置60が出力する画像データに遅れ時間があり現在時刻の画像データが取得できず、さらにロボットキャリブレーション誤差やカメラキャリブレーション誤差等があっても精度良くアームを制御して例えば部品の取り付け等の作業を、精度良く行うことができる。また、第2実施形態の処理方法を組み合わせることで、本実施形態のロボット1は、撮像装置60のフレームレートより高いレートで画像データの推定を行うことで、撮像装置60が低いフレームレートであっても、高速でアームを精度良く制御することができる。
なお、本実施形態では、撮像装置が撮像してから撮像した画像を出力するまで、1フレームの遅れがある例を説明した。しかしながら、撮像装置のフレームレートが高速であり、撮像してから撮像された画像が出力されるまでの遅れ時間による誤差がほとんど無い場合でも、上述したようにロボットキャリブレーション誤差やカメラキャリブレーション誤差が存在する。本実施形態のロボットによれば、このような場合でも、異なる時刻に撮像された画像間の誤差を算出して、算出した誤差を用いて、現在時刻の画像を推定することで、ロボットキャリブレーション誤差やカメラキャリブレーション誤差があっても、それらを補正して現在時刻の画像を精度良く推定することができる。この結果、推定された画像を用いて精度良くビジュアルサーボを行うことができる。
なお、実施形態の図3または図10の制御部の各部の機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピューターシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD−ROM等の可搬媒体、USB(Universal Serial Bus) I/F(インタフェース)を介して接続されるUSBメモリー、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、サーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
1・・・ロボット 10・・・固定部 20・・・アーム部
30・・・力センサー 40・・・エンドエフェクター 60・・・撮像装置
70・・・対象物 100・・・制御部 101・・・アーム制御部
102・・・駆動部 103・・・画像取得部 104・・・クロック発生部
105・・・画像処理部 106・・・記憶部 107・・・位置情報取得部
108・・・位置姿勢算出部(誤差算出部) 109・・・画像推定部
01、F02、F12・・・基礎行列
R・・・回転を表す行列 T・・・並進を表す行列 t・・・並進
A・・・カメラ(撮像装置60)の内部パラメーターを表す行列
ベクトルx、ベクトルx、ベクトルx・・・アームの手先位置・姿勢
ε・・・実際に取得された画像と推定された画像との誤差
、I・・・撮像された画像 I’・・・現在時刻dの推定画像
、m・・・I、Iの各画素

Claims (11)

  1. ロボットの可動可能なアームに設けられ、撮像した画像データを出力する撮像装置と、
    第4の時刻より前の異なる第1の時刻と第2の時刻及び第3の3つの時刻と、前記第4の時刻とに、第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを取得する画像取得部と、
    前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定し、前記第2の画像データ及び前記第3の画像データに基づき前記第4の時刻に撮像される画像データを推定し、前記推定した前記第3の時刻の画像データと、前記画像取得部が取得した前記第3の時刻に撮像される画像データとの誤差を算出し、前記算出した誤差に基づき前記第4の時刻の画像データに含まれる誤差を算出する画像推定部と、
    前記アームを制御するアーム制御部と、
    を備え、
    前記画像推定部は、
    前記算出した前記画像データに含まれる誤差を用いて前記推定した第4の時刻に撮像される画像データを補正し、
    前記アーム制御部は、
    前記画像推定部が補正した前記第4の時刻に撮像される画像データを用いて前記アームを制御する
    ことを特徴とするロボット。
  2. 前記画像取得部は、
    前記第1の時刻に前記撮像装置が出力する第1の画像データを取得し、前記第1の時刻より後の第2の時刻に前記撮像装置が出力する第2の画像データを取得し、前記第2の時刻より後の第3の時刻に前記撮像装置が出力する第3の画像データを取得し、前記第3の時刻より後の第4の時刻に前記撮像装置が出力する第4の画像データを取得し、
    前記画像推定部は、
    前記画像取得部が取得した第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを用いて、前記第3の時刻に撮像される画像データと前記第4の時刻に撮像される画像データとを推定する
    ことを特徴とする請求項1に記載のロボット。
  3. 前記アームの位置を検出し、前記検出されたアームの手先位置と姿勢を示す情報を前記画像推定部に出力するエンコーダー
    を備え、
    前記画像推定部は、
    前記第1の画像データが撮像された時刻における前記エンコーダーが出力する前記アームの手先位置と姿勢を示す情報と、前記第2の画像データが撮像された時刻における前記エンコーダーが出力する前記アームの手先位置と姿勢を示す情報と、前記撮像装置の焦点距離を含む内部パラメーターを表す行列と、前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定し、
    前記第2の画像データが撮像された時刻における前記エンコーダーが出力する前記アームの手先位置と姿勢を示す情報と、前記第3の画像データが撮像された時刻における前記エンコーダーが出力する前記アームの手先位置と姿勢を示す情報と、前記撮像装置の焦点距離を含む内部パラメーターを表す行列と、前記第2の画像データと、前記第3の画像データとに基づき前記第4の時刻に撮像される画像データを推定し、
    前記算出した画像データに含まれる誤差を用いて前記推定した第4の時刻に撮像される画像データを補正する
    ことを特徴とする請求項1または請求項2に記載のロボット。
  4. 前記画像推定部は、
    前記第1の時刻と第2の時刻及び前記第3の時刻における前記アームの位置と姿勢に基づく第1の回転を表す行列及び第1の並進を表す行列と、前記撮像装置の焦点距離を含む内部パラメーターを表す行列を用いて、第1の基礎行列を算出し、前記第2の時刻から前記第3の時刻における前記アームの位置と姿勢に基づく第2の回転を表す行列及び第2の並進を表す行列と、前記撮像装置の焦点距離を含む内部パラメーターを表す行列を用いて、第2の基礎行列とを算出し、
    前記算出した前記第1の基礎行列、前記第2の基礎行列、前記第1の画像データ及び前記第2の画像データを用いて前記第3の時刻の画像データを推定し、前記第3の時刻において、前記推定した前記第3の時刻の画像データと前記画像取得部が取得した前記第3の時刻の画像データとの画像データ間の誤差を算出する
    ことを特徴とする請求項1から請求項3のいずれか1項に記載のロボット。
  5. 前記画像推定部は、
    前記誤差が時間や前記アームの手先位置と姿勢に依存しない場合、前記推定した前記第3の時刻の画像データと前記画像取得部が取得した前記第3の時刻の画像データとの間の誤差を、前記第4の時刻における画像データに含まれる誤差として算出し、前記画像データに含まれる誤差を用いて前記第4の時刻に撮像される画像データを補正する
    ことを特徴とする請求項1から請求項4のいずれか1項に記載のロボット。
  6. 前記画像推定部は、
    前記撮像装置が撮像を行うフレームレートの間隔より短い周期で前記第4の時刻の画像データを推定し、
    前記アーム制御部は、
    前記画像推定部が推定した前記第4の時刻の画像データを用いて、前記撮像装置が撮像を行うフレームレートの間隔より短い周期で前記アームを制御する
    ことを特徴とする請求項1から請求項5のいずれか1項に記載のロボット。
  7. 前記画像推定部は、
    前記エンコーダーが前記アーム位置を示す情報を前記画像推定部に出力する周期で前記第4の時刻の画像データを推定し、
    前記アーム制御部は、
    前記画像推定部が、前記第4の時刻の画像データを用いて、前記エンコーダーが前記アーム位置を示す情報を前記画像推定部に出力する周期で前記アームを制御する
    ことを特徴とする請求項2から請求項6のいずれか1項に記載のロボット。
  8. 前記画像推定部は、
    前記第1の画像が撮像された時刻を、前記第1の画像が取得された第1の時刻と前記撮像装置が撮像してから画像データを出力するまでの遅延時間を用いて算出し、前記第2の画像が撮像された時刻を、該第2の画像が取得された第2の時刻と前記撮像装置が撮像してから画像データを出力するまでの遅延時間を用いて算出する
    ことを特徴とする請求項1から請求項7のいずれか1項に記載のロボット。
  9. 可動可能なアームに設けられ、撮像した画像データを出力する撮像装置を有するロボットのアームを制御するロボット制御装置であり、
    第4の時刻より前の異なる第1の時刻と第2の時刻及び第3の3つの時刻と、前記第4の時刻とに、第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを取得する画像取得部と、
    前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定し、前記第2の画像データ及び前記第3の画像データに基づき前記第4の時刻に撮像される画像データを推定し、前記推定した前記第3の時刻の画像データと、前記画像取得部が取得した前記第3の時刻に撮像される画像データとの誤差を算出し、前記算出した誤差に基づき前記第4の時刻に撮像される画像データに含まれる誤差を算出する画像推定部と、
    前記アームを制御するアーム制御部と、
    を備え、
    前記画像推定部は、
    前記算出した前記画像データに含まれる誤差を用いて前記推定した第4の時刻の画像データを補正し、
    前記アーム制御部は、
    前記画像推定部が補正した前記第4の時刻に撮像される画像データを用いて前記アームを制御する
    ことを特徴とするロボット制御装置。
  10. ロボットの可動可能なアームに設けられ画像撮像して画像データを出力する撮像装置を有し、可動するアームを制御するロボット制御方法であり、
    撮像装置が、撮像して画像データを出力する撮像工程と、
    画像取得部が、第4の時刻より前の異なる第1の時刻と第2の時刻及び第3の3つの時刻と、前記第4の時刻とに、第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを取得する画像取得工程と、
    画像推定部が、前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定し、前記第2の画像データ及び前記第3の画像データに基づき前記第4の時刻に撮像される画像データを推定し、前記推定した前記第3の時刻の画像データと、前記画像取得部が取得した前記第3の時刻に撮像される画像データとの誤差を算出し、前記算出した誤差に基づき前記第4の時刻の画像データに含まれる誤差を算出する画像推定工程と、
    アーム制御部が、前記アームを制御するアーム制御工程と、
    を含み、
    前記画像推定工程は、
    前記算出した前記画像データに含まれる誤差を用いて前記推定した第4の時刻に撮像される画像データを補正し、
    前記アーム制御工程は、
    前記画像推定部が補正した前記第4の時刻に撮像される画像データを用いて前記アームを制御する
    ことを特徴とするロボット制御方法。
  11. ロボットの可動可能なアームに設けられ画像撮像して画像データを出力する撮像装置を有し、可動するアームを制御する処理をコンピューターに実行させるためのプログラムであり、
    前記撮像装置が撮像して画像データを出力する撮像手順と、
    第4の時刻より前の異なる第1の時刻と第2の時刻及び第3の3つの時刻と前記第4の時刻とに、第1の画像データと第2の画像データと第3の画像データ及び第4の画像データを取得する画像取得手順と、
    前記第1の画像データ及び前記第2の画像データに基づき前記第3の時刻に撮像される画像データを推定する第1画像推定手順と、
    前記第1画像推定手順により推定された前記第3の時刻の画像データと、前記画像取得手順により取得された前記第3の時刻の画像データとの誤差を算出し、前記算出した誤差に基づき前記第4の時刻の画像データに含まれる誤差を算出する誤差算出手順と、
    前記第2の画像データと、前記第3の画像データとに基づき前記第4の時刻に撮像される画像データを推定し、前記誤差算出手順が算出した前記画像データに含まれる誤差を用いて前記第4の時刻に撮像される画像データを補正する第2画像推定手順と、
    前記第2画像推定手順により補正された前記第4の時刻の画像データを用いて前記アームを制御するアーム制御手順と、
    をコンピューターに実行させるためのロボット制御プログラム。
JP2011147186A 2011-07-01 2011-07-01 ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム Expired - Fee Related JP5834545B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011147186A JP5834545B2 (ja) 2011-07-01 2011-07-01 ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011147186A JP5834545B2 (ja) 2011-07-01 2011-07-01 ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム

Publications (2)

Publication Number Publication Date
JP2013013950A true JP2013013950A (ja) 2013-01-24
JP5834545B2 JP5834545B2 (ja) 2015-12-24

Family

ID=47687148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011147186A Expired - Fee Related JP5834545B2 (ja) 2011-07-01 2011-07-01 ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム

Country Status (1)

Country Link
JP (1) JP5834545B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014180736A (ja) * 2013-03-21 2014-09-29 Toyota Motor Corp 遠隔操作ロボットシステム
JP2015089575A (ja) * 2013-11-05 2015-05-11 セイコーエプソン株式会社 ロボット、制御装置、ロボットシステム及び制御方法
JP2015089598A (ja) * 2013-11-06 2015-05-11 セイコーエプソン株式会社 教示装置、ロボット、ロボットシステム、方法、及びプログラム
CN104802174A (zh) * 2013-10-10 2015-07-29 精工爱普生株式会社 机器人控制系统、机器人、程序以及机器人控制方法
CN104950816A (zh) * 2015-06-29 2015-09-30 贵州桂荣科技有限公司 一种电子手环组装设备智能编码控制方法
JP2019188550A (ja) * 2018-04-26 2019-10-31 オムロン株式会社 制御システム、制御方法、および制御プログラム
JP2019188551A (ja) * 2018-04-26 2019-10-31 オムロン株式会社 制御システム、制御方法、および制御プログラム
WO2022091328A1 (ja) * 2020-10-30 2022-05-05 株式会社ニコン ロボットシステム、ロボットアーム、エンドエフェクタ、およびアダプタ

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244519A (ja) * 1994-03-04 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> 画像による可動物体の運動制御方法
JP2002189519A (ja) * 2000-12-21 2002-07-05 Mitsubishi Heavy Ind Ltd 追跡システム、及び、追跡方法
JP2003211381A (ja) * 2002-01-16 2003-07-29 Denso Wave Inc ロボット制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244519A (ja) * 1994-03-04 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> 画像による可動物体の運動制御方法
JP2002189519A (ja) * 2000-12-21 2002-07-05 Mitsubishi Heavy Ind Ltd 追跡システム、及び、追跡方法
JP2003211381A (ja) * 2002-01-16 2003-07-29 Denso Wave Inc ロボット制御装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAIFENG LI,JINGTAI LIU,YAN LI,XIANG LU,LEI SUN: ""Visual Servo of Uncalibrated Eye-in-hand System withTime-delay Compensation"", PROCEEDINGS OF THE 8THWORLD CONGRESS ON INTELLIGENT CONTROL AND AUTOMATION, JPN6015022123, 7 July 2010 (2010-07-07), pages 1322 - 1328, XP031737382, ISSN: 0003167458 *
ITSUSHI KINBARA,SATOSHI KOMADA,JUNJI HIRAI: ""Visual Servo of Active Cameras and Manipulators by Time DelayCompensation of Image Features with Si", SICE-ICASE INTERNATIONAL JOINT CONFERENCE 2006, JPN6015022124, 18 October 2006 (2006-10-18), pages 5317 - 5322, XP031050489, ISSN: 0003167459 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014180736A (ja) * 2013-03-21 2014-09-29 Toyota Motor Corp 遠隔操作ロボットシステム
CN104802174A (zh) * 2013-10-10 2015-07-29 精工爱普生株式会社 机器人控制系统、机器人、程序以及机器人控制方法
JP2015089575A (ja) * 2013-11-05 2015-05-11 セイコーエプソン株式会社 ロボット、制御装置、ロボットシステム及び制御方法
JP2015089598A (ja) * 2013-11-06 2015-05-11 セイコーエプソン株式会社 教示装置、ロボット、ロボットシステム、方法、及びプログラム
CN104950816A (zh) * 2015-06-29 2015-09-30 贵州桂荣科技有限公司 一种电子手环组装设备智能编码控制方法
JP2019188550A (ja) * 2018-04-26 2019-10-31 オムロン株式会社 制御システム、制御方法、および制御プログラム
JP2019188551A (ja) * 2018-04-26 2019-10-31 オムロン株式会社 制御システム、制御方法、および制御プログラム
WO2022091328A1 (ja) * 2020-10-30 2022-05-05 株式会社ニコン ロボットシステム、ロボットアーム、エンドエフェクタ、およびアダプタ

Also Published As

Publication number Publication date
JP5834545B2 (ja) 2015-12-24

Similar Documents

Publication Publication Date Title
JP5834545B2 (ja) ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム
JP6108860B2 (ja) ロボットシステム及びロボットシステムの制御方法
US8326460B2 (en) Robot system comprising visual sensor
US8977395B2 (en) Robot control apparatus, robot control method, program, and recording medium
JP6429473B2 (ja) ロボットシステム、ロボットシステムの校正方法、プログラム、およびコンピュータ読み取り可能な記録媒体
JP3733364B2 (ja) 教示位置修正方法
JP4021413B2 (ja) 計測装置
JP6180087B2 (ja) 情報処理装置及び情報処理方法
JP7326911B2 (ja) 制御システムおよび制御方法
US20180161984A1 (en) Control device, robot, and robot system
JP6572262B2 (ja) 教示位置修正装置および教示位置修正方法
JP6661028B2 (ja) 作業位置補正方法
JP2016198828A (ja) ロボット制御方法、ロボット装置、プログラム及び記録媒体
CN110253574B (zh) 一种多任务机械臂位姿检测和误差补偿方法
JP2013036987A (ja) 情報処理装置及び情報処理方法
JPWO2018043525A1 (ja) ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
JP2015089575A (ja) ロボット、制御装置、ロボットシステム及び制御方法
JP6922204B2 (ja) 制御装置、ロボットおよびロボットシステム
JP6044511B2 (ja) ロボットの制御方法及びロボットシステム
US20190376860A1 (en) Visuo-haptic sensor
JP2018001393A (ja) ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2013049102A (ja) ロボットの制御装置及びロボットの姿勢決定方法
JP2019119027A (ja) ロボットシステムの制御方法、およびロボットシステム
JP2019038040A (ja) ロボットシステム
JP5849477B2 (ja) ロボット、ロボット制御装置、ロボット制御方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150730

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151019

R150 Certificate of patent or registration of utility model

Ref document number: 5834545

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees