(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-07
(45)【発行日】2024-05-15
(54)【発明の名称】画像処理装置、画像処理装置の制御方法およびプログラム
(51)【国際特許分類】
B25J 9/10 20060101AFI20240508BHJP
B25J 13/08 20060101ALI20240508BHJP
【FI】
B25J9/10 A
B25J13/08 A
(21)【出願番号】P 2020056366
(22)【出願日】2020-03-26
【審査請求日】2023-03-17
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】塚辺 直希
(72)【発明者】
【氏名】郡司 大介
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特表平03-505924(JP,A)
【文献】特開平06-218684(JP,A)
【文献】特開平10-202569(JP,A)
【文献】特開2003-211382(JP,A)
【文献】特開2009-214265(JP,A)
【文献】特開2012-125871(JP,A)
【文献】特開2014-180707(JP,A)
【文献】米国特許出願公開第2018/0361589(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/00-13/08
G01B 11/00
(57)【特許請求の範囲】
【請求項1】
可動式のアームに取り付けられた撮像装置が撮像した画像を処理する画像処理装置であって、
前記アームを用いて指定された複数の教示点を示す教示点情報に基づいて、前記
アームの作業範囲を特定する第1の特定手段と、
特定された前記作業範囲を含むよう、前記撮像装置の撮像範囲を特定する第2の特定手段と、
特定された前記作業範囲と前記撮像範囲とに基づいて、前記
アームの制御を補正する補正パラメータを決定する決定手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記第1の特定手段は、前記
アームに取り付けられている前記撮像装置の位置と前記撮像装置が撮像する画角とに基づいて、前記作業範囲を特定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記決定手段は、前記画像の分解能が最も高い前記
アームの撮像姿勢を決定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記撮像装置が撮像している画像および前記作業範囲を特定するための設定項目を含む画面が表示装置に表示されている状態で、前記作業範囲の特定に用いられる前記教示点を指定可能であることを特徴とする請求項1乃至3のうち何れか1項に記載の画像処理装置。
【請求項5】
前記画面の前記画像に、前記作業範囲を示す情報と前記教示点とのうち一方または両方が重畳して表示されることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記撮像範囲に対する前記作業範囲のマージンを指定することができることを特徴とする請求項1乃至5のうち何れか1項に記載の画像処理装置。
【請求項7】
前記撮像範囲を特定する情報が、複数の光学特性のそれぞれに対応して記憶されることを特徴とする請求項1乃至6のうち何れか1項に記載の画像処理装置。
【請求項8】
前記決定手段は、前記
アームがワークを取得するときの位相が指定された場合、指定された前記位相に基づいて前記補正パラメータを決定することを特徴とする請求項1乃至7のうち何れか1項に記載の画像処理装置。
【請求項9】
前記決定手段は、ワークの高さが指定された場合、指定された前記ワークの高さと前記作業範囲との高さの差に基づいて前記補正パラメータを決定することを特徴とする請求項1乃至8のうち何れか1項に記載の画像処理装置。
【請求項10】
前記補正パラメータに基づく前記
アームの仮想的な先端部分が前記画面の前記画像に重畳表示されることを特徴とする請求項4に記載の画像処理装置。
【請求項11】
前記決定手段は、前記
アームの移動時間と前記
アームの可操作性との何れか一方または両方に基づいて、前記補正パラメータを決定することを特徴とする請求項1乃至10のうち何れか1項に記載の画像処理装置。
【請求項12】
複数の前記作業範囲の情報が、それぞれ対応する前記補正パラメータと関連付けて記憶されることを特徴とする請求項1乃至11のうち何れか1項に記載の画像処理装置。
【請求項13】
前記
アームに対する前記撮像装置の取り付け位置と前記撮像装置の画角と前記撮像装置のフォーカスとは変更可能であることを特徴とする請求項1乃至12のうち何れか1項に記載の画像処理装置。
【請求項14】
可動式のアームに取り付けられた撮像装置が撮像した画像を処理する画像処理装置であって、
前記
アームの1以上の教示点の入力に用いられる入力部と、入力された前記教示点を示す教示点情報に基づいて特定される作業範囲を含むよう、前記撮像装置の撮像範囲を特定して、前記作業範囲と前記撮像範囲とに基づいて、前記
アームの制御を補正する補正パラメータを決定する処理を実行させるボタンとを含む画面を表示する制御を行う表示制御手段、を備えることを特徴とする画像処理装置。
【請求項15】
可動式のアームに取り付けられた撮像装置が撮像した画像を処理する画像処理装置の制御方法であって、
前記アームを用いて指定された複数の教示点を示す教示点情報に基づいて、前記
アームの作業範囲を特定する工程と、
特定された前記作業範囲を含むよう、前記撮像装置の撮像範囲を特定する工程と、
特定された前記作業範囲と前記撮像範囲とに基づいて、前記
アームの制御を補正する補正パラメータを決定する工程と、
を備えることを特徴とする制御方法。
【請求項16】
請求項1乃至14のうち何れか1項に記載の画像処理装置の各手段をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の制御方法およびプログラムに関する。
【背景技術】
【0002】
製品の生産や品質確認、運搬等を目的として、カメラが取り付けられたロボットが用いられている。カメラが撮像した画像を画像処理することで、例えば、作業対象であるワークの検査や測定等を行うことができる。ロボットは所定の範囲内で自由に動作できる。ロボットが所定の作業範囲内でワークに対して作業を行う場合、カメラによる作業範囲の撮影が行われる。そして、カメラの撮像した結果がロボットの制御にフィードバックされることで、ワークの変化や変位に応じた補正を行いながら、ロボットは作業を行うことができる。しかし、画像における変化量や変位量をロボットの制御にフィードバックするためには、画像におけるロボットの位置および姿勢を、ロボット座標の位置および姿勢に変換するための各種補正パラメータを決定する必要がある。
【0003】
関連する技術として、特許文献1のロボット装置が提案されている。このロボット制御装置は、マニピュレータの手先と作業対象が設置される平面と同一平面上にある接触点との接触を検知し、撮像手段により平面状に設けられたマーカを撮像することで、ロボット装置の位置の補正を行っている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像におけるロボットの位置および姿勢を、ロボット座標における位置および姿勢に変換するための各種補正パラメータを決定するための手法の1つとして、例えば、光学式マーカを用いた校正がある。光学式マーカを用いた校正を用いる場合、ユーザは、予め形状が既知である光学式マーカを作業範囲内に設置する。そして、カメラが撮像した画像に対して所定の画像処理が行われることで、各種補正パラメータを行うことができる。この場合、ユーザは、光学式マーカを作成し、光学式マーカを用いた校正作業を行う必要があり、補正作業が煩雑になる。
【0006】
本発明の目的は、撮像された画像の座標をロボットの座標に変換するための補正パラメータを決定する作業を簡略化することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の画像処理装置は、可動式のアームに取り付けられた撮像装置が撮像した画像を処理する画像処理装置であって、前記アームを用いて指定された複数の教示点を示す教示点情報に基づいて、前記アームの作業範囲を特定する第1の特定手段と、特定された前記作業範囲を含むよう、前記撮像装置の撮像範囲を特定する第2の特定手段と、特定された前記作業範囲と前記撮像範囲とに基づいて、前記アームの制御を補正する補正パラメータを決定する決定手段と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、撮像された画像の座標をロボットの座標に変換するための補正パラメータを決定する作業を簡略化することができる。
【図面の簡単な説明】
【0009】
【
図1】ロボットシステムの全体構成を示す図である。
【
図2】撮像姿勢を決定するまでの流れを示す図である。
【
図3】画像処理装置、ロボットおよび撮像装置のハードウェア構成図である。
【
図4】画像処理装置、ロボットおよび撮像装置の機能を示すブロック図である。
【
図5】補正パラメータ決定画面の一例を示す図である。
【
図6】補正パラメータの決定に関する処理の流れを示すフローチャートである。
【
図7】ロボットおよび撮像装置のモデル例を示す図である。
【
図8】補正パラメータを決定するまでの詳細な処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。しかしながら、以下の実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は実施の形態に記載されている構成によって限定されることはない。
【0011】
以下、図面を参照して、本実施形態について説明する。
図1は、ロボットシステム10の全体構成を示す図である。ロボットシステム10は、全体として、ロボット装置とも称されることがある。ロボットシステム10は、画像処理装置100、ロボット110および撮像装置120を有する。ロボットシステム10の構成は、
図1の例には限定されない。撮像装置120は、撮像範囲160内の電磁波情報(光情報)を画像(撮像画像、カメラ画像)として取得するカメラである。撮像装置120は、ロボット110の所定位置に取り付けられている。
図1の例では、撮像装置120は、ロボット110の先端近傍に取り付けられている。ロボット110における撮像装置120の取り付け位置と撮像装置120の位置との相対関係は固定されている。
図1の例では、ロボット110は、多関節を有するアームでおり、所定の可動範囲で動作を行うことができる。ロボット110の位置および姿勢は、ユーザ等が手動で変更することができ、また後述する駆動部214が変更することができる。なお、本実施形態でいうロボット110の位置は、ロボット110のアームの先端部の位置を所定の座標系(X、Y、Z)で示すものとし、ロボット110の姿勢は、アームの先端部の姿勢を所定の座標系(ピッチ、ロール、ヨー)で示すものとする。
【0012】
画像処理装置100とロボット110と撮像装置120とは相互に通信可能に接続されており、情報の授受が可能である。作業範囲140は、ワークに対してロボット110が作業を行うことを想定して用意された領域である。ワーク150は、ロボット110が作業を行う対象であり、作業範囲140の内部に様々な状態(方向)で配置される。撮像装置120は、予め定められた撮像位置からワーク150の撮像画像を取得する。画像処理装置100は、取得された撮像画像に基づいて、ワークの位置および姿勢、或いはワークの種類等を推定することができる。
【0013】
画像処理装置100は、各種の処理を行い、ロボット110に対して、例えばワーク150の位置へ移動させるような制御量を送信する。ロボット110は、受信した制御量に基づいて、ワーク150の位置に移動する。画像処理装置100は、ワーク150の状態に応じて制御量を変更することで、ワーク150の状態に応じて異なる作業をロボット110に実施させることができる。なお、作業範囲140に含まれるワーク150は2つ以上であってもよい。
【0014】
ここで、上述した撮像姿勢について説明する。撮像姿勢は、ワーク150の認識等を行う際に撮像を行う際のロボット110の先端の位置および姿勢であり(さらにアームの関節の姿勢等を考慮してもよい)、ワーク150に対する作業を行う前に予め決定されるものとする。本実施形態におけるロボット110は、撮像を行う際には必ず撮像姿勢に移動し、同じ画角で撮像を行う。そして詳細は後述するが、カメラ座標におけるワークの位置(画像内のワークの位置)をロボット座標におけるワークの位置に変換し、ワーク150に対するロボット110の作業を可能とする。この撮像姿勢は、ワーク150に近いほど、つまり撮像装置120が作業範囲140の面に近い姿勢であるほど、撮像されるワーク150の画像の分解能が高くなり、認識等の精度が向上する。一方で、撮像装置120を作業範囲140の面に近づけるほど撮像画角は狭くなり、ワーク150を画角内に収めることができない可能性が増える。つまり、撮像姿勢の決定においては、ワーク150を確実に画角内に収めることができ、且つなるべくワーク150を近い位置で撮像できる姿勢を決定することが好ましい。
【0015】
上記を踏まえた上で、本実施形態における撮像画像での位置および姿勢をロボット座標での位置および姿勢に変換するための各種補正パラメータを決定方法について説明する。各種補正パラメータは、ロボット110の制御を補正するために用いられる。
図2は、撮像姿勢を決定するまでの流れを示す図である。ユーザは、作業範囲140内のワーク150をロボット110が操作可能な任意の位置にロボット110を設置する。つまり、ユーザは、作業範囲140がロボット110の可動範囲となると想定される位置にロボット110を設置する(
図2(a))。ここで、本実施形態では、ロボット110は、ユーザが移動させることができる、例えば20kg以下のポータブルなロボットであるものとする。ただし、ロボット110は、ポータブルではないロボットであってもよい。ロボット110の設置後、ユーザは、作業範囲140(ロボット作業エリア)をロボット110が動作可能であるかを確認する。このとき、ユーザは、ロボット110を動作させる(例えば、作業範囲140の四隅に順番にアームを伸ばし、作業可能な姿勢とする)ことで確認を行う(
図2(b))。そして、画像処理装置100は、作業範囲140が撮像範囲160内に収まるような撮像姿勢を特定し、特定した撮像姿勢を登録する(
図2(c))。その後、ユーザ操作に応じて、画像処理装置100は、作業範囲情報と撮像範囲情報とに基づいて撮像画像での位置および姿勢をロボット座標での位置および姿勢に変換するための各種補正パラメータを決定する(
図2(d))。
【0016】
図2(b)に示す動作の際、ユーザは、ロボット110を動かした点(例えば、作業範囲140の四隅)を、教示点として登録することができる。画像処理装置100は、これらの教示点から作業範囲を示す作業範囲情報を特定する。さらに、画像処理装置100は、
図2(c)で登録された撮像姿勢から撮像範囲160を特定する。撮像範囲160を示す情報が、上述した撮像範囲情報である。画像処理装置100は、特定された撮像範囲情報と作業範囲情報とに基づいて、撮像画像における位置および姿勢を、ロボット座標における位置および姿勢に変換するための各種補正パラメータを決定する。つまり、画像処理装置100は、作業範囲情報の範囲が撮像画像にどのように投影されるかを算出することで画像座標からロボット座標への変換パラメータを決定する。これは、ワーク150が作業範囲内に存在するという考えに基づく。従って、光学式マーカを要することなく、画像処理装置100は、撮像画像における位置および姿勢をロボット座標における位置および姿勢に変換するための各種補正パラメータを決定することができる。
【0017】
図3は、本実施形態の画像処理装置100、ロボット110および撮像装置120のハードウェア構成図である。画像処理装置100とロボット110と撮像装置120とは、相互に情報の伝送が可能なように、信号伝送部130により接続されている。画像処理装置100は、画像処理機能を有したコンピュータである。画像処理装置100は、演算装置201、記憶装置202、表示装置203、入力装置204、外部インタフェース205および内部バス206を有する。
図3において、インタフェースは「I/F」と表記される。演算装置201は、CPU(中央演算処理装置)やGPU(画像演算処理装置)等の演算回路で構成される。記憶装置202は、ROM(Read Only Memory)やRAM(Random Access Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージ等で構成される。表示装置203は、ディスプレイやプロジェクタ等である。入力装置204は、マウスやキーボードやタッチパネル等である。外部インタフェース205は、USB(Universal Serial Bus)やEthernet等により構成され、情報の入出力に用いられる。内部バス206は、画像処理装置100の内部の各部を結ぶデータバスやアドレスバス等の制御線である。
【0018】
記憶装置202には、実施形態の各種制御を行うプログラムが記憶されている。例えば、該プログラムを演算装置201が実行することで、実施形態の各種処理が実現される。これにより、画像処理装置100は、例えば、画像処理や、ロボット110に対するロボット動作命令の送信、撮像装置120からの画像取得等を行う。また、表示装置203および入力装置204を用いて、ユーザは、各種設定や処理の実行指示等を行うことができる。
【0019】
次に、ロボット110について説明する。ロボット110は、演算装置211、記憶装置212、入力装置213、駆動部214、外部インタフェース215および内部バス216を有する。駆動部214以外の各部は、画像処理装置100の各部と同様であるため、説明を省略する。駆動部214は、アクチュエータや減速機、リンク機構等を有して構成されている。演算装置211は、記憶装置212に記憶されているプログラムを実行することで、駆動部214の制御や外部インタフェース215の応答等の各種の制御を行う。
【0020】
記憶装置212は、ロボット110の制御に必要な各リンクの長さやリンク間を繋ぐ間接の可動方向、可動域等の情報を記憶している。演算装置211は、ロボット110の各関節やアクチュエータへの動作指令値から、ロボット110の手先(先端)の位置および姿勢を推定する。また、ロボット110の手先の位置および姿勢は指定することができる。演算装置211は、ロボット110について指定された手先位置の位置および姿勢からロボット110の各関節に対して入力する動作指令値を推定する。
【0021】
また、記憶装置212は、ロボット110の位置および姿勢の情報を記憶することが可能であり、これによりロボット110の教示点を記憶する。ロボット110の位置および姿勢の情報は、入力装置213を用いたユーザ操作や外部から数値により入力されてもよい。また、記憶装置212は、ユーザ操作により、現在のロボット110の位置および姿勢を記憶することもできる。教示点は、ロボット座標系における原点(ロボット原点)に対するXYZ直交座標やオイラー角による姿勢表現、冗長姿勢のための間接方向フラグ、各軸の関節角度等で表現されるロボット110の位置および姿勢を特定するために用いられる情報である。
【0022】
次に、撮像装置120について説明する。撮像装置120は、外部インタフェース221、演算装置222、記憶装置223、撮像素子224および光学機器225を有する。撮像素子224および光学機器225以外の各部は、画像処理装置100およびロボット110の各部と同様であるため、説明を省略する。撮像素子224は、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等で構成される。また、撮像素子224は、MOS(Metal Oxide Semiconductor)イメージセンサ等で構成される。光学機器225は、撮像装置120への入射光を撮像素子224に導く。演算装置222は、例えば、外部インタフェース221の応答や撮像素子224から取得された情報に基づく画像生成、光学機器225のフォーカスや画角変化等の光学特性の制御等を行う。
【0023】
図1および
図3は、画像処理装置100とロボット110と撮像装置120とはそれぞれ異なる装置とした構成した例を示しているが、各装置は1つの装置で実現されてもよい。また、実施形態の各処理は、所定の外部装置(例えば、クラウドサーバやエッジコンピュータ等)で行われてもよい。例えば、画像処理装置100と所定の外部装置とが通信可能であるとする。画像処理装置100は、実施形態の処理に必要な情報を所定の外部装置に送信し、所定の外部装置は実施形態の処理を行い、処理結果を画像処理装置100に送信する。このような構成でも、実施形態の処理は実現できる。また、実施形態の処理は、シミュレータ等の仮想環境により実現されてもよい。
【0024】
次に、画像処理装置100、ロボット110および撮像装置120の機能について説明する。
図4は、画像処理装置100、ロボット110および撮像装置120の機能を示すブロック図である。ロボット110は、ロボット教示部311、ロボット制御部313および駆動部315を有する。ロボット教示部311およびロボット制御部313の機能は、演算装置211が実行するプログラムにより実現される。最初に、ロボット制御部313について説明する。ロボット制御部313は、ロボット110の各アクチュエータの制御量を駆動部315に指令する。駆動部315は、
図3の駆動部214に対応する。ロボット110の記憶装置212には、ロボット110の各リンクの長さやリンク間を繋ぐ間接の可動方向、可動域等の情報であるロボットパラメータ情報が予め記憶されている。ロボット制御部313は、ロボットパラメータ情報および所定の運動学的手法(順運動学や逆運動学等)を用いて、各アクチュエータの制御量とロボット110の手先の位置および姿勢とを相互に変換することができる。
【0025】
ロボット110の外部インタフェース215に所定の入力端末が接続されている場合、ユーザは、該入力端末を操作することで、ロボット110を任意の位置および姿勢に移動させることができる。入力端末は、例えば、ティーチングペンダントや該ティーチングペンダントの機能を有するタブレット端末等である。ロボット制御部313は、入力端末に対する操作を受け付けて、ロボット110を任意の位置および姿勢に移動させる。
【0026】
ここで、ロボット110の先端(アーム先端)に効果器や道具等の所定の機器が取り付けられていることがある。この場合、ロボット110の先端の位置および姿勢は、ロボット110のアームの先端に取り付けられている機器の形状により変化する。この場合、ロボット110の先端位置から機器の位置までの長さの分をオフセットとして加える補正が行われてもよい。また、ロボット制御部313は、運動学計算に使用する節の長さを変更することで、機器の先端の位置および姿勢を、ロボット110の手先の位置および姿勢として制御してもよい。
【0027】
次に、ロボット教示部311について説明する。ロボット教示部311は、ロボット110の特定の位置および姿勢の情報を教示点情報(教示点を示す情報)として記憶装置212に記憶することができる。これにより、教示点が登録される。また、ロボット教示部311が、記憶装置212に記憶されている教示点情報を読み出すことで、ロボット制御部313は、読み出された教示点情報が示すロボット110の位置および姿勢を再現するように、ロボット110を移動させることができる。例えば、ユーザが手動でロボット110を動かして、教示点を登録する操作を行うことで、操作を行った時点のロボット110の位置および姿勢を教示点として登録することができる。なお、教示点の登録は、ロボット110の現在の位置および姿勢には限定されない。教示点の登録は、数値の入力により行われてもよいし、仮想空間におけるシミュレーションにより行われてもよい。
【0028】
図4の画像処理装置100について説明する。画像処理装置100は、撮像装置120が撮像した撮像画像を取得し、画像処理を行う。また、画像処理装置100は、補正パラメータ決定部301、作業範囲特定部303、撮像範囲特定部305および表示制御部307を有する。最初に、撮像範囲特定部305について説明する。撮像範囲特定部305は、第2の特定手段に対応する。撮像範囲特定部305は、記憶装置202に記憶されている各種情報を使用して、撮像範囲160を特定する。以下、撮像範囲160を特定するために用いられる各種情報は、画像処理装置100の記憶装置202に記憶されているものとして説明する。ただし、撮像範囲160を特定するために用いられる各種情報は外部の装置に記憶されており、画像処理装置100は、通信により各種情報を取得してもよい。
【0029】
画像処理装置100の記憶装置202は、撮像装置120の撮像部321が撮像を行ったときに、視野内にある三次元空間上の点が、撮像画像上のどの位置に投影されるかの関係を推定するために用いられる各種情報を記憶している。ここで、撮像部321が撮像する三次元空間上の位置と撮像画像上の位置との関係は、内部パラメータと撮像部321の位置および姿勢により決定される外部パラメータとにより表現することができる。また、撮像装置120の光学機器225の画角変化等の光学特性の変化により、内部パラメータが変化することがある。記憶装置202は、上記の各種情報を、各光学特性のそれぞれに対応したテーブルとして記憶してもよいし、光学特性を係数とする値として記憶してもよい。
【0030】
外部パラメータは、駆動部315において接続部370が取り付けられたリンクまでのロボットパラメータ情報と、接続部370により固定されるリンクに対する撮像装置120の相対的な位置および姿勢とから、所定の運動学的手法により求めることができる。記憶装置202に記憶されている各種情報は、光学機器225の光学特性により決定される内部パラメータを含む。また、各種情報は、上述したロボットパラメータ情報および接続部370により固定されている撮像装置120のロボット110のリンクに対する座標系原点の位置および姿勢の情報を含む。接続部370は、例えば、ロボット110のリンクと撮像装置120とを接続する軸である。
【0031】
上記各種情報は、設計値により求められてもよいし、任意の同定手法により求められてもよい。ロボットパラメータ情報は、ロボット制御部313と撮像範囲特定部305で共有する部分(外部パラメータの推定に用いられるロボットパラメータ情報等)がある。ロボットパラメータ情報は、画像処理装置100の記憶装置202とロボット110の記憶装置212とのうち何れか一方に記憶されてもよいし、両方に記憶されてもよい。ロボットパラメータ情報が一方の記憶装置に記憶されている場合、画像処理装置100またはロボット110が、他方の記憶装置に記憶されているロボットパラメータ情報を参照するようにしてもよい。
【0032】
作業範囲特定部303は、ユーザが指定した複数の教示点情報を使用して作業範囲情報を生成する。作業範囲特定部303は、第1の特定手段に対応する。作業範囲情報は、複数の教示点により構築されるロボット教示点群またはロボット教示点群を拡張、接続または近似することにより生成される点群、面または立体情報である。作業範囲情報の詳細については後述する。ここで、画像処理装置100の表示制御部307は、表示装置203に、
図5に示されるようなGUI(Graphical User Interface)の操作画面を表示する。該GUIは、作業範囲情報の生成に使用される教示点情報の入力等を行う際に用いられる。
【0033】
上記GUIでは、教示点情報に関連付けられた番号を指定することができ、作業範囲特定部303は、指定された教示点情報に基づいて、ポリゴンメッシュや各種近似手法を用いて作業範囲情報を生成する。また、上記GUIでは、作業範囲140に対するマージンを任意に指定可能であり、作業範囲特定部303は、指定されたマージンに従って作業範囲情報を拡大または縮小する。例えば、画像処理により検出する対象のワーク150の特徴が、該ワーク150の幅の分だけ作業範囲より外側に存在する可能性がある。この場合でも、マージンの指定により、このようなワーク150を作業範囲内として扱うことができる。また、作業範囲特定部303は、検出する対象のワーク150のサイズ情報やロボット110に取り付けられる機器のサイズ等を利用して、作業範囲情報を拡大または縮小することができる。これにより、設定の手間が省かれる。
【0034】
次に、補正パラメータ決定部301について説明する。補正パラメータ決定部301は、決定手段に対応する。補正パラメータ決定部301は、特定された作業範囲情報と撮像範囲情報とに基づいて、撮像画像における位置および姿勢をロボット座標における位置および姿勢に変換するための各種補正パラメータを決定する。ここでは、補正パラメータ決定部301は、作業範囲情報とロボットパラメータ情報と撮像範囲情報とに基づいて、ロボット110の姿勢に対して作業範囲140がどのように画像に投影されるかの関係を求める。これにより、補正パラメータ決定部301は、画像座標に対応する作業範囲を特定し補正パラメータを決定する。補正パラメータの決定方法については、後述する。
【0035】
補正パラメータ決定部301は、ロボット110の先端(アーム先端)に取り付けられた任意の効果器における拘束条件や解法等を選択可能なGUIに入力された条件を満たした補正パラメータを決定してもよい。
図5は、上述したGUIの操作画面(補正パラメータ決定画面400)の一例を示す図である。表示制御部307は、表示装置203に表示される画面の表示制御を行う。表示制御部307は、表示制御手段に対応する。ユーザは、補正パラメータ決定画面400が表示装置203に表示されている状態で、入力装置204を操作して、各種の入力や選択を行うことができる。補正パラメータ決定画面400は、画像表示領域401、領域設定インタフェース402、実行ボタン403、撮像姿勢設定インタフェース404および補正条件設定インタフェース405を含む。補正パラメータ決定画面400において、領域設定インタフェース402、撮像姿勢設定インタフェース404および補正条件設定インタフェース405は、設定項目として設けられている。
【0036】
補正パラメータ決定画面400の画面例は、
図5の例には限定されない。画像表示領域401には、撮像装置120の撮像部321が撮像している撮像画像が表示される。
図5の例では、撮像画像は、カメラ画像と表記される。領域設定インタフェース402は、作業範囲140を特定するためのインタフェースである。領域設定インタフェース402は、教示点入力部411およびマージン設定部413を含む。
【0037】
教示点入力部411は、作業範囲情報を生成するための教示点を入力するための入力部である。
図5の例では、教示点入力部411はボックスの例を示しているが、教示点入力部411はボックスには限定されない。ロボット110の記憶装置212には、複数の教示点情報が記憶されている。本実施形態では、複数の教示点情報にはそれぞれ番号が関連付けられて、記憶装置212に記憶されている。教示点入力部411に教示点の番号が入力されることで、作業範囲特定部303は、作業範囲140を特定することができる。
図5の例では、「P6」、「P9」、「P10」、「P15」の番号に対応する各教示点情報により構築される領域が、作業範囲情報が示す範囲となる。教示点は、教示点入力部411に対して入力された番号により特定されてもよいし、リスト形式のダイアログ等の中から選択されることで特定されてもよい。教示点入力部411に対する教示点の番号の入力は、カンマまたはハイフンで行うことができる。ハイフンによる番号の入力の場合、複数の教示点の番号を一括して指定することが可能である。
【0038】
マージン設定部413は、撮像範囲160に対する作業範囲140のマージンを入力するために設けられる。初期値としては、「0」が設定されている。マージンが「0」である場合、教示点入力部411が占める教示点から求めた作業範囲情報が示す範囲が撮像範囲160となる。マージン設定部413には正の値および負の値を入力することができる。マージン設定部413に正の値が入力されると、教示点から求めた作業範囲情報が示す範囲が拡大される。一方、マージン設定部413に負の値が入力された場合、教示点から求めた作業範囲情報が示す範囲は縮小される。
【0039】
ここで、作業範囲140は、教示点に基づいて特定される。例えば、ロボット110が作業を行う対象であるワーク150が、
図1のような搭載台(例えば、トレー)に搭載されている場合、トレーの縁140Aは、実質的にロボット110の作業範囲とはならない。このとき、教示点が、トレーの縁140Aに指定された場合(
図2(b)でユーザがトレーの縁にロボットを移動させた場合)、複数の教示点により特定される作業範囲は、実際の作業範囲140より広い。そこで、補正パラメータ決定画面400では、マージン設定部413に対して、作業範囲情報を縮小させる入力が許容される。これにより、画像処理装置100が記憶している作業範囲情報と実際の作業範囲140とを容易に合わせこむことが可能となる。
【0040】
作業範囲特定部303は、領域設定インタフェース402に対する入力が更新される度に、作業範囲情報の生成を行ってもよい。この場合、表示制御部307は、領域設定インタフェース402に対する入力が更新される度に、画像表示領域401のカメラ画像に対して、作業範囲情報と作業範囲情報の生成に使用される教示点とのうち一方または両方を重複表示する制御を行ってもよい。これにより、領域設定インタフェース402に対する設定内容をグラフィカルにユーザに通知されるため、設定ミスが減少し、作業効率が向上する。
【0041】
実行ボタン403は、撮像姿勢を決定するための処理を実行するためのボタンである。上述したように領域設定インタフェース402で、作業範囲140を特定するための各種の設定がされる。画像処理装置100が、実行ボタン403(ボタン)の押下操作を受け付けると、作業範囲情報および撮像範囲情報に基づいて、補正パラメータ決定部301は、補正パラメータを決定する。
【0042】
撮像姿勢設定インタフェース404は、撮像姿勢の登録に用いられるインタフェースである。撮像姿勢設定インタフェース404は、算出ボタン416および移動ボタン417を有する。撮像姿勢設定インタフェース404では、例えば、テキストボックスにより、教示点の番号を指定することができる。
図5の例では、教示点の番号が「P1」に指定されている。算出ボタン416は、撮像範囲情報に基づいて撮像姿勢を算出し選択した教示点に登録するためのボタンである。算出ボタン416が押下操作されると、演算装置201は、撮像範囲情報が撮像範囲に収まり且つ分解能が最大となるような撮像位置および姿勢を算出し、教示点「P1」に登録する。なお、撮像姿勢は、手動により設定されてもよい。移動ボタン417は、指定された教示点(
図5では「P1」)に、ロボット110を移動させるためのボタンである。
【0043】
補正条件設定インタフェース405は、補正パラメータを求める際の条件を設定するインタフェースである。補正条件設定インタフェース405は、位相入力部421、高さ入力部422、モデル登録ボタン423および詳細設定ボタン424を含む。補正条件設定インタフェース405では、例えば、作業範囲304とワーク150とのマッチング結果に対する、ワーク150の取得時(例えば、ワーク150を把持するタイミング)のロボット110の姿勢を設定することができる。
【0044】
位相入力部421は、マッチング結果に対して、ワーク150の取得時の位相を入力するために設けられている。演算装置201は、位相入力部421に入力された位相から、ロボット110の姿勢を設定することができる。例えば、ロボット110の先端に、ワーク150の取得時に、ロボット110の先端の姿勢が重要な効果器(例えば、二指ハンド等)が取り付けられている場合でも、位相が設定されることで、適切な補正が行われる。
【0045】
高さ入力部422は、ワーク150の上面の高さとロボット110の先端の座標位置との差を求めるために設けられている。ここでは、高さ入力部422には、ワーク150の上面の高さが入力されるものとする。演算装置201は、ロボット110の先端の座標位置と高さ入力部422に入力されたワーク150の上面の高さとの差を算出する。補正パラメータ決定部301は、算出された高さの差に基づいて、該高さの差による投影誤差を考慮した補正パラメータを決定することができる。高さ入力部422には、上記の高さの差が直接的に入力されてもよい。この場合、補正パラメータ決定部301は、入力された高さの差を考慮した補正パラメータを決定する。モデル登録ボタン423は、補正条件設定インタフェース405で設定されたマッチングモデルを登録するためのボタンである。本実施形態では、複数のマッチングモデルを登録できるものとする。
図5の例は、マッチングモデルとして「モデルA」の設定が行われている例を示しているが、他のモデルについての設定が行われる場合、プルダウンメニューから、対象となるモデルが選択されてもよい。詳細設定ボタン425は、補正条件をさらに詳細に設定するためのボタンである。
【0046】
補正パラメータ決定画面400が、画像表示領域401、領域設定インタフェース402、実行ボタン403および撮像姿勢設定インタフェース404を一括して表示することで、画面遷移の回数を低減することができる。上述したように、画像表示領域401には、撮像装置120が撮像している撮像画像が表示される。画像処理装置100は、画像表示領域401に表示されているカメラ画像に、作業範囲情報が示す範囲を任意の態様で重畳して表示してもよい。本実施形態の例であれば、作業範囲140にほぼ重畳される形で作業範囲情報が示す範囲が表示されることになる。
図5の画像表示領域401には、ワークおよび二指ハンドを含む画像が表示されている。
【0047】
また、表示制御部307は、画像表示領域401に表示されているカメラ画像に、教示点を示す教示点情報を任意の態様で重畳して表示してもよい。これにより、ユーザは、作業範囲情報や教示点情報の設定ミス、或いはカメラ画像上の作業範囲140が所望の状態でないといった事態を素早く認識することができる。また、表示制御部307は、画像表示領域401に表示されているカメラ画像に、補正条件設定インタフェース405で指定された姿勢の仮想的なハンド(先端部分)やマッチングモデルを任意の態様で重畳して表示してもよい。例えば、
図5の例では、補正パラメータ決定画面400に設定された内容で決定された補正パラメータに基づく仮想的な二指ハンドが重畳して表示される。これにより、ユーザは、自身の設定内容が意図した設定であるか素早く認識することができる。
【0048】
次に、本実施形態における補正パラメータの決定に関する処理を記憶するための処理について説明する。
図6は、補正パラメータの決定に関する処理の流れを示すフローチャートである。例えば、画像処理装置100の外部インタフェース205に、タブレット端末等の入力端末が接続されている場合、ユーザは、入力端末を操作する。ユーザが入力端末を操作すると、ロボット110は、入力端末に対する操作に応じて動作する。上述したように、ユーザは、登録する教示点の位置および姿勢までロボット110を動作させて、教示点を登録する操作を行う。ロボット教示部311は、該操作を受け付けると、記憶装置212に教示点情報を記憶する。これにより、教示点が登録される(S501)。教示点の登録の手法は、上述の例には限定されない。例えば、ユーザが、ロボット110を教示点の位置および姿勢となるまで手動で動かした後に登録作業を行うことで、教示点が登録されてもよい。また、教示点の登録は、数値の入力等により行われてもよい。
【0049】
次に、ユーザが、画像処理装置100の入力装置204を操作して、補正パラメータ決定画面400を表示させる操作を行うと、表示制御部307は、補正パラメータ決定画面400を表示装置203に表示させる。ユーザは、領域設定インタフェース402に対して、作業範囲140を指定する操作を行う。このとき、ユーザは、少なくとも教示点入力部411に、教示点を入力する操作を行う。また、ユーザは、マージン設定部413等の指定操作を行うこともできる。ここで、補正パラメータ決定画面400の領域設定インタフェース402に教示点登録機能が設けられている場合、ユーザは教示点の指定を直接行うこともできる。この場合、S501の処理と後述のS502の処理とは一括して行うことができる。
【0050】
領域設定インタフェース402に対して教示点の入力がされると、作業範囲特定部303は、入力された教示点に基づく教示点情報から作業範囲を特定する(S502)。S501において正しく作業範囲140が指定されていれば、S502で特定される作業範囲は、作業範囲140と同様になる。そして、特定された作業範囲に対応する作業範囲情報が生成される。作業範囲情報は、実際の三次元空間における座標系で表される情報である。次に、撮像姿勢設定インタフェース404の算出ボタン416が押下操作されると、演算装置201は、撮像範囲情報が撮像範囲に収まり且つ分解能が最大となるような撮像位置および姿勢を撮像姿勢として算出し、算出した撮像姿勢を登録する(S503)。S503で撮像姿勢が登録されると、撮像範囲特定部305は、上述した各種情報(内部パラメータ等)を用いて、撮像姿勢から撮像範囲情報を特定する。(S504)。
【0051】
そして、補正パラメータ決定部301は、特定された作業範囲情報と撮像範囲情報とに基づいて補正パラメータを決定する(S505)。演算装置201は、ユーザによる実行ボタン403の押下操作を受け付けると、特定された作業範囲情報と撮像範囲情報とに紐づく補正パラメータを記憶装置202に記憶させる(S506)。
【0052】
S502~S505の処理の詳細については、後述する。上述したように、移動ボタン417が押下されると、ロボット110は、決定された撮像姿勢に移動する。画像表示領域401には、撮像装置120が撮像した撮像画像が表示される。ユーザは、撮像画像を確認することで、決定されたロボット110の撮像姿勢が、ユーザの所望の撮像姿勢であるかを確認できる。撮像姿勢設定インタフェース404に対する操作が、領域設定インタフェース402に対する操作より先に行われた場合、S503およびS504の処理は、S501およびS502の処理よりも先行して行われることがある。
【0053】
次に、本実施形態のロボット110および撮像装置120のモデルについて説明する。
図7は、ロボット110および撮像装置120のモデル例を示す図である。
図7の例では、ロボット110は6軸のロボットであり、第5リンクL5に撮像装置120が取り付けられている。ロボット110の構成や撮像装置120の取り付け位置等は、
図7の例には限定されない。
図7(a)は、ロボット110および撮像装置120の全体のモデルを示す図である。
図7(b)は、モデルにおける各座標系を示す図である。ロボット座標系601は、ロボット110の座標系である。また、ロボットハンド座標系602は、ロボットハンドの座標系である。撮像装置座標系603は、撮像装置120の座標系である。
【0054】
ここで、ロボット110のリンクL0~L6と関節J1~J6までのパラメータが既知である場合、順運動学計算によりロボット座標系601からロボットハンド座標系602までの同時変換行列rHhを求めることができる。同様に、ロボット110のリンクL0~L5’と関節J1~J5までのパラメータが既知である場合、順運動学計算によりロボット座標系601から撮像装置座標系603までの同時変換行列rH(c)も求めることができる。また、各種撮像装置の校正手法により、撮像面上の座標(u,v)と撮像装置座標系603上の三次元位置(x,y,z)との対応関係を表す内部パラメータMiを求めることができる。
図7(c)および
図7(d)は、撮像装置120のカメラ原点、撮像装置座標系603における撮像面と三次元位置との関係を示す図である。撮像面上の座標(u,v)と撮像装置座標系上の三次元位置(x,y,z)との関係は、内部パラメータMiにより、以下の「数1」で表される。
【0055】
【0056】
ここでsは撮像面上の位置と画素との関係を表すスケールファクターである。そして、ロボット座標系601から見た位置pと撮像面上に投影されるpの位置(up,vp)の関係は、以下の「数2」で表される。
【0057】
【0058】
次に、作業範囲140の特定から画像での位置および姿勢をロボット座標での位置および姿勢に変換するための各種補正パラメータを決定するまでの詳細な処理の流れについて説明する。
図8は、補正パラメータを決定するまでの詳細な処理の流れを示すフローチャートである。
図8の処理は、実行ボタン403が押下された後に開始される。ただし、一部の処理は、実行ボタン403が押下される前に行われてもよい。例えば、S502の処理(作業範囲を特定する処理)は、領域設定インタフェース402に所定の設定がされれば、実行ボタン403が押下されなくても、実行することが可能である。このように、画像処理装置100が、実行ボタン403が押下される前に、S502の処理をバックグランドで予め行っておくことで、全体の処理時間の短縮化を図ることができる。また、
図8の各処理は、領域設定インタフェース402や撮像姿勢設定インタフェース404、補正条件設定インタフェース405に対する操作(値の変更等)をトリガとして実行されてもよい。
【0059】
作業範囲特定部303は、教示点入力部411に入力された教示点の番号に関連付けられている教示点情報から作業範囲情報を生成する(S701)。
図9は、作業範囲の一例を示す図である。
図9(a)は、三次元空間における各教示点を示す図である。
図9(b)は、モデルにおける各教示点を示す図である。
図9の例では、5つの教示点801~805が指定されている。作業範囲特定部303は、各教示点801~805を結ぶメッシュ面を、ドロネー三角形分割等の各種メッシュ化手法により生成する。生成されたメッシュ面が作業範囲情報となる。上述したように、マージン設定部413にマージンを設定することができる。マージン設定部413に正の値または負の値が設定された場合、作業範囲特定部303は、設定されたマージンに応じて作業範囲情報が示す範囲を拡大または縮小する。
【0060】
ここで、教示点入力部411に入力された教示点が2つ以下の状態であり、マージン設定部413に正の値が設定された状態で、領域設定インタフェース402に対する操作が停止されたとする。例えば、上記の状態において、入力装置204がマウスであり、マウス操作に応じたカーソル(フォーカス)が、領域設定インタフェース402から離れたとする。このような場合、作業範囲特定部303は、点または線を中心としてロボット110の先端方向を法線とする面方向に、指定されたマージンでメッシュ面を拡大することで、作業範囲情報を生成してもよい。作業範囲特定部303は、平面または高次曲面による近似を用いて、作業情報を生成してもよい。以下、作業範囲情報は三次元空間上の面情報として取り扱われる例について説明するが、指定された各教示点の群はロボット110の位置および姿勢の群情報のまま作業範囲情報として取り扱われてもよい。また、作業範囲情報は、指定された教示点群から生成される三次元空間上の立体情報として取り扱われてもよい。
【0061】
次に、補正パラメータ決定部301は、作業範囲に対する計測範囲901を生成する(S702)。
図10は、計測範囲901を示す計測範囲情報の生成を説明する図である。
図10(a)の例において、作業範囲304とワーク150とのマッチングが行われる場合、作業範囲304とワーク150(対象)の上面との間には差が生じている。補正パラメータ決定部301は、作業範囲304の教示点群や面、立体情報等に対して、高さの差の分だけ、作業範囲304を高さ方向にシフトさせて、計測範囲901を算出する。つまり、計測範囲901は、作業範囲304に対して、ワーク150の高さを考慮した範囲である。作業範囲304と計測範囲901との高さの差については、上述したように、高さ入力部422に入力されたワーク150の高さの値に基づいて算出することができる。なお、
図10(a)において、ワーク150は「対象」として示されており、ロボット110の先端に取り付けられている効果器が「ハンド」と示されている。
【0062】
補正パラメータ決定部301は、作業範囲304が三次元空間上の面情報である場合、法線方向に作業範囲304をシフトさせることで計測範囲901を算出してもよい。また、補正パラメータ決定部301は、作業範囲304を生成する際に用いられた教示点群を、ロボット110の先端方向にシフトさせてから、作業範囲304を特定する方法と同様の方法を用いて、計測範囲901を算出してもよい。ここで、計測範囲901を示す計測範囲情報は作業範囲情報に基づいて生成されるため、両者の情報の対応関係は容易に算出可能である。また、ワーク150が布や紙等の薄い部材であり、ロボット110の先端に取り付けられた吸着ハンドが布等のワーク150を吸着する場合等においては、作業範囲304と計測範囲901とは実質的に同一である。このような場合、作業範囲304と計測範囲901とは、同じであるものとして取り扱われてよい。表示制御部307は、画像表示領域401に表示されるカメラ画像に対して、計測範囲901を重畳表示してもよい。
図10(b)の例では、計測範囲901は「対象上面」として示されている。
【0063】
図8に示されるように、補正パラメータ決定部301は、撮像姿勢から撮像範囲情報を生成する(S703)。補正パラメータ決定部301は、上述した各種情報(内部パラメータ等)と撮像姿勢(ロボットパラメータ情報から順運動学的手法により求まる外部パラメータ等)とに基づいて撮像範囲情報を特定する。ここで、上述した「数2」により計測範囲情報や作業範囲情報、教示点の撮像画像への投影関係は明らかとなる。そして、補正パラメータ決定部301は、姿勢変換情報を生成する。(S704)。上述したように、補正条件設定インタフェース405は、位相入力部421を含む。補正パラメータ決定部301は、位相入力部421に入力されたマッチング結果に対するワーク150の取得時におけるロボット110の姿勢に基づいて、画像上における計測結果をロボット座標での姿勢に変換する姿勢変換情報を生成する。
【0064】
例えば、ロボット110の先端に二指ハンドのような効果器が取り付けられており、ワーク150の姿勢が所定の位相を有している場合を想定する。この場合において、ロボット110の二指ハンドが直上からワーク150を把持するときに、画像上でのワーク150の姿勢が、作業範囲情報におけるロボット110の手先方向の回転姿勢に変換される。これにより、ロボット110の二指ハンドが、所定の位相におけるワーク150を把持することができる。ロボット110の先端に吸着ハンド等のような効果器が取り付けられている場合には、位相を考慮する必要がない。このような場合、S704の処理を省略することができ、また姿勢の特定を行う処理も省略できることから、処理の高速化が図られる。
【0065】
補正パラメータ決定部301は、S701で作業範囲情報を生成し、S702で計測範囲情報を生成し、S703で撮像範囲情報を生成し、S704で計測結果に対する姿勢変換情報を生成する。そして、補正パラメータ決定部301は、生成された各情報に基づいて、撮像画像における位置および姿勢をロボット座標における位置および姿勢に変換するための各種補正パラメータを決定する(S707)。本実施形態では、補正パラメータ決定部301は、生成された撮像範囲情報および計測範囲情報から、上述した「数2」の式を用いて、画像から計測範囲情報までの変換行列を算出する。そして、補正パラメータ決定部301は、計測範囲情報から作業範囲情報までの変換行列を算出し、算出された変換行列を、上記の画像から計測範囲情報までの変換行列と結合する。これにより、補正パラメータ決定部301は、撮像画像における位置および姿勢をロボット座標での位置および姿勢に変換する補正パラメータを決定することができる。
【0066】
さらに、補正パラメータ決定部301は、上記の変換行列の結合結果に対して、作業範囲情報に対してロボット110の手先方向に姿勢制約条件を付与してもよい。例えば、ロボット110と作業範囲304との位置関係によっては、ロボット110が取れる姿勢に制約が生じることがある。このような場合、補正パラメータ決定部301は、ロボット110と作業範囲304との位置関係に基づいて、ロボット110の姿勢の制約を考慮した補正パラメータを決定してもよい。そして、補正パラメータ決定部301は、姿勢制約条件を付与する手法に応じて、ロボット110の姿勢に冗長性を持たせてもよい。また、補正パラメータ決定部301は、計測結果に対する姿勢変換情報の制約に基づいて、補正パラメータを一意に決定してもよい。
【0067】
さらに、補正パラメータ決定部301は、ロボット110の移動時間とロボット110の可操作性との何れかまたは一方または両方に基づいて、補正パラメータを一意に決定してもよい。ロボット110の移動時間(例えば、アームが移動する時間)は、補正パラメータを決定するためのファクターとなる。また、ロボット110の可操作性も、補正パラメータを決定するためのファクターとなる。従って、補正パラメータ決定部301は、ロボット110の移動時間や可操作性に基づいて、補正パラメータを決定してもよい。
【0068】
以上のように、画像処理装置100は、教示点が指定されると、指定された教示点に基づいて作業範囲を特定し、予め記憶されている各種情報と指定される撮像姿勢を用いて撮像範囲を特定する。そして、画像処理装置100は、特定された作業範囲と撮像範囲とから撮像画像における位置および姿勢を、ロボット座標における位置および姿勢に変換する補正パラメータを決定する。これにより、光学式マーカの作成や光学式マーカを使った校正作業を要することなく、画像処理装置100は、撮像された画像の座標をロボットの座標に自動的に変換することができる。従って、撮像された画像の座標をロボットの座標に変換するための補正パラメータを決定する作業を簡略化することができ、ロボット110の制御が補正される。また、本実施形態では、光学式マーカを要しないため、作業平面を撮像する撮像方向の制約(例えば、光学式マーカに対して、撮像装置120を作業平面に対して垂直するにするといった制約)がない。さらに、本実施形態は、特定された作業範囲と撮像範囲とから補正パラメータを決定するため、作業範囲が平面でなくても適用することができる。
【0069】
以上の実施形態では、1つの作業範囲と1つの補正パラメータが特定される例について説明したが、複数の作業範囲または補正パラメータが特定されてもよい。例えば、ロボット110が、第1の作業範囲Aに置かれたワーク150を把持し、第1の作業範囲Aとは異なる第2の作業範囲Bにある箱の中にワーク150を置く動作を行う場合がある。この場合、補正パラメータ決定部301は、ワーク150を把持する第1の作業範囲Aにおける第1の補正パラメータを決定する。同様に、補正パラメータ決定部301は、ワーク150を置く第2の作業範囲Bにおける第2の補正パラメータを決定する。そして、補正パラメータ決定部301は、記憶装置202に、第1の作業範囲Aの情報と第1の補正パラメータの情報とを関連付けて、また第2の作業範囲Bの情報と第2の補正パラメータの情報とを関連付けて、テーブル等で記憶する。これにより、1台のロボット110が異なる作業範囲で作業を行う場合でも、本実施形態を適用できる。
【0070】
また、上述した実施形態では、ロボット110に撮像装置120が取り付けられている例について説明したが、座標系の推定が可能であれば、作業を行うロボットと撮像装置が取り付けられたロボットとは異なっていてもよい。そして、撮像装置120は、フォーカスや画角変化等が変更可能であり、またロボット110に対する撮像装置120の取り付け位置も任意に変更可能である。
【0071】
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0072】
100 画像処理装置
110 ロボット
120 撮像装置
301 補正パラメータ決定部
303 作業範囲特定部
305 撮像範囲特定部
307 表示制御部