(57)【要約】【課題】撮像部もしくは物体を動かすことなくヤコビ行列を算出することができるロボットを提供すること。【解決手段】ロボットは、第１位置に配置された撮像部が撮像した第２位置に配置された物体の第１画像を取得し、物体を前記第１位置とは異なる複数の位置から撮像した画像に相当する複数の第２画像を用いて動作する。【選択図】図３
2016013610.tif 000002
【特許請求の範囲】
【請求項１】
第１位置に配置された撮像部が撮像した第２位置に配置された物体の第１画像を取得し、
前記物体を前記第１位置とは異なる複数の位置から撮像した画像に相当する複数の第２画像を用いて動作する、
ロボット。
【請求項２】
請求項１に記載のロボットであって、
複数の前記第２画像を用いて算出されたヤコビ行列に基づいて動作する、
ロボット。
【請求項３】
請求項２に記載のロボットであって、
前記ヤコビ行列は、前記物体のリファレンスモデルと、前記第１画像との差分画像に基づいてステップサイズを算出し、算出された前記ステップサイズに基づいて算出される、
ロボット。
【請求項４】
請求項１又は２に記載のロボットであって、
複数の前記第２画像は、前記第１画像に含まれる前記物体に微小回転を行うことで生成される、
ロボット。
【請求項５】
請求項４に記載のロボットであって、
複数の前記第２画像は、前記微小回転を行った後、前記第１画像に含まれる前記物体に微小並進を行うことで生成される、
ロボット。
【請求項６】
第１位置に配置された撮像部が撮像した第２位置に配置された物体の第１画像を取得し、
前記物体を前記第１位置とは異なる複数の位置から撮像した画像に相当する複数の第２画像を用いて、ロボットを動作させる、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、及び制御方法に関する。
【背景技術】
【０００２】
撮像部により撮像された撮像画像に基づいてロボットに所定の作業を行わせる技術が研究・開発されている。特に、工場における組立作業の自動化において、撮像部により撮像された撮像画像から作業対象の位置及び姿勢を推定することは、必要不可欠である。
【０００３】
これに関連し、ＥＳＭ（Efficient  Second-order  Minimization  Method）法を用いて作業対象の位置及び姿勢を推定するロボット装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１８５７５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のロボット装置が三次元物体の位置及び姿勢を推定するためには、その三次元物体のヤコビ行列を導出する必要がある。ヤコビ行列を導出するためには、一般的には、撮像部もしくは物体を微小に動かす必要がある。そのため、撮像部もしくは物体を微小に動かすことができない状況下では、ヤコビ行列を導出することができず、ＥＳＭ法を用いた、三次元物体の位置及び姿勢を推定することができなかった。
【０００６】
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、撮像部もしくは物体を動かすことなく作業を行うことができるロボット、及び制御方法を提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様は、第１位置に配置された撮像部が撮像した第２位置に配置された物体の第１画像を取得し、前記物体を前記第１位置とは異なる複数の位置から撮像した画像に相当する複数の第２画像を用いて動作する、ロボットである。
この構成により、ロボットは、第１位置に配置された撮像部が撮像した第２位置に配置された物体の第１画像を取得し、物体を第１位置とは異なる複数の位置から撮像した画像に相当する複数の第２画像を用いて動作する。これにより、ロボットは、撮像部もしくは物体を動かすことなく作業を行うことができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、複数の前記第２画像を用いて算出されたヤコビ行列に基づいて動作する、構成が用いられてもよい。
この構成により、ロボットは、複数の第２画像を用いて算出されたヤコビ行列に基づいて動作する。これにより、ロボットは、撮像部もしくは物体を動かすことなく算出されたヤコビ行列によって作業を行うことができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記ヤコビ行列は、前記物体のリファレンスモデルと、前記第１画像との差分画像に基づいてステップサイズを算出し、算出された前記ステップサイズに基づいて算出される、構成が用いられてもよい。
この構成により、ロボットは、物体のリファレンスモデルと、前記第１画像との差分画像に基づいてステップサイズを算出し、算出された前記ステップサイズに基づいてヤコビ行列を算出する。これにより、ロボットは、最適化の進行度に応じた適切なステップサイズに基づいてヤコビ行列を算出することができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、複数の前記第２画像は、前記第１画像に含まれる前記物体に微小回転を行うことで生成される、構成が用いられてもよい。
この構成により。ロボットは、第１画像に含まれる物体に微小回転を行うことで、複数の第２画像を生成する。これにより、ロボットは、撮像部１０を動かすことなく、撮像部１０を動かした場合に得られる複数の画像を得ることができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、複数の前記第２画像は、前記微小回転を行った後、前記第１画像に含まれる前記物体に微小並進を行うことで生成される、構成が用いられてもよい。
この構成により、ロボットは、第１画像に含まれる物体に微小回転を行った後、第１画像に含まれる物体に微小並進を行うことで、複数の前記第２画像を生成する。これにより、ロボットは、誤差の小さな画像であって撮像部を動かした場合に得られるであろう複数の画像を得ることができる。
【００１２】
また、本発明の他の態様は、第１位置に配置された撮像部が撮像した第２位置に配置された物体の第１画像を取得し、前記物体を前記第１位置とは異なる複数の位置から撮像した画像に相当する複数の第２画像を用いて、ロボットを動作させる、制御方法である。
この構成により、制御方法は、第１位置に配置された撮像部が撮像した第２位置に配置された物体の第１画像を取得し、物体を第１位置とは異なる複数の位置から撮像した画像に相当する複数の第２画像を用いて、ロボットを動作させる。これにより、制御方法は、撮像部もしくは物体を動かすことなく作業を行うことができる。
【００１３】
以上により、ロボット、及び制御方法は、第１位置に配置された撮像部が撮像した第２位置に配置された物体の第１画像を取得し、物体を第１位置とは異なる複数の位置から撮像した画像に相当する複数の第２画像を用いて動作する。これにより、ロボット、及び制御方法は、撮像部もしくは物体を動かすことなく作業を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係るロボットシステム１の一例を示す構成図である。
【図２】制御装置３０のハードウェア構成の一例を示す図である。
【図３】制御装置３０の機能構成の一例を示す図である。
【図４】制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【図５】画像生成部３８により生成される６枚の異方向画像のうちの３枚の異方向画像と、ホモグラフィー変換による微小回転が行われる前の撮像画像を例示する図である。
【発明を実施するための形態】
【００１５】
＜実施形態＞
以下、本発明の本実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボットシステム１の一例を示す構成図である。ロボットシステム１は、撮像部１０と、ロボット２０と、制御装置３０を具備する。
【００１６】
ロボットシステム１は、テーブルＴＢ上に設置された物体Ｏを撮像部１０により撮像し、撮像された撮像画像に基づいて、物体Ｏの位置及び姿勢を算出する。テーブルＴＢは、物体Ｏが配置される台等である。物体Ｏとは、ロボット２０により行われる作業に係る物体であり、例えば、ネジやボルト、歯車、治具等の工業用の部品や、工業部品等を入れる容器等であるが、これらに限られず、ロボット２０により行われる作業に係る物体であれば他の物体であってもよい。図１では、この物体Ｏを、直方体形状の物体として表す。なお、以下では、説明の便宜上、物体Ｏの位置及び姿勢を物体位置姿勢と称して説明する。また、物体Ｏが設置されるテーブルＴＢ上の位置は、第２位置の一例である。
【００１７】
ロボットシステム１は、物体位置姿勢を算出すると、算出された物体位置姿勢に基づいてロボット２０に物体Ｏを把持させる。そして、ロボットシステム１は、ロボット２０に物体Ｏを図示しない所定の配置位置Ｘに配置させる。以下では、説明の便宜上、撮像部１０による物体Ｏの撮像から、物体Ｏを配置位置Ｘに配置させるまでのロボットシステム１の一連の動作を所定の作業と称して説明する。
【００１８】
撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。また、撮像部１０は、１台のカメラによって構成される単眼のカメラであるが、例えば、２台以上のカメラによって構成されてもよい。
【００１９】
撮像部１０は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、撮像部１０と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００２０】
撮像部１０には、光学中心を原点とする三次元座標系Σが設定される。三次元座標系ΣのＺ軸は、撮像部１０の光軸方向と一致するように設定される。また、三次元座標系ΣのＸ軸及びＹ軸は、互いに直交し、且つＺ軸と直交するように設定される。この三次元座標系Σは、撮像部１０により撮像された撮像画像（すなわち、撮像素子）上の座標を表す。撮像部１０は、例えば、光軸（すなわち、Ｚ軸）が物体Ｏに予め設定される仮想的な平面と直交するように設置される。
【００２１】
この仮想的な平面は、物体Ｏと対応付けられた点を含む面であり、例えば、物体Ｏの角等を含む平面である。また、撮像部１０は、テーブルＴＢ上に設置された物体Ｏを含む範囲（以下、撮像範囲と称する）を撮像可能な位置に設置される。撮像範囲を撮像可能な撮像部１０が設置される位置は、第１位置の一例である。なお、ロボットシステム１において、撮像部１０は、ロボット２０の腕（例えば、マニピュレーターＭＮＰと把持部ＨＮＤの間等）に設置される構成であってもよい。
【００２２】
ロボット２０は、例えば、把持部ＨＮＤと、マニピュレーターＭＮＰと、図示しない複数のアクチュエーターを備えた単腕のロボットである。単腕のロボットとは、把持部ＨＮＤとマニピュレーターＭＮＰにより構成される１本の腕を有するロボットを示す。また、ロボットシステム１は、単腕のロボットを具備する構成に代えて、スカラーロボット（水平多関節ロボット）や双腕のロボット等であってもよい。スカラーロボットとは、マニピュレーターが水平方向にのみ動き、マニピュレーターの先端のスライド軸のみが上下に動くロボットである。また、双腕のロボットとは、把持部ＨＮＤとマニピュレーターＭＮＰによりそれぞれ構成される２本の腕を有するロボットを示す。
【００２３】
ロボット２０の腕は、６軸垂直多関節型となっており、支持台とマニピュレーターＭＮＰと把持部ＨＮＤとがアクチュエーターによる連携した動作よって６軸の自由度の動作を行うことができる。なお、ロボット２０の腕は、５自由度（５軸）以下で動作するものであってもよいし、７自由度（７軸）以上で動作するものであってもよい。以下では、把持部ＨＮＤ及びマニピュレーターＭＮＰを備えた腕によって行われるロボット２０の動作について説明する。
ロボット２０の把持部ＨＮＤは、物体を把持可能な爪部を備える。把持部ＨＮＤは、ハンドの一例である。
【００２４】
ロボット２０は、例えばケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、ロボット２０と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続されてもよい。また、ロボットシステム１では、ロボット２０は、図１に示したようにロボット２０の外部に設置された制御装置３０と接続されている構成とするが、この構成に代えて、制御装置３０がロボット２０に内蔵されている構成であってもよい。
ロボット２０は、制御装置３０から制御信号を取得し、取得した制御信号に基づいて物体Ｏを把持し、把持した物体Ｏを配置位置Ｘに配置する。
【００２５】
制御装置３０は、撮像部１０に前述の撮像範囲を静止画像又は動画像として撮像させ、撮像された撮像画像（前述の静止画像又は動画像）に基づいてビジュアルサーボによって物体Ｏをロボット２０に把持させ、把持させた物体Ｏを配置位置Ｘに配置させる。より具体的には、制御装置３０は、撮像部１０により撮像された撮像画像と、図１に示した距離ｄとに基づいて物体位置姿勢を算出する。
【００２６】
ここで、距離ｄとは、撮像部１０に設定された三次元座標系Σの原点と、前述した物体Ｏに予め設定された仮想的な面との間の距離を示す。なお、制御装置３０には、この距離ｄを示す情報が予め登録されているとする。制御装置３０は、撮像部１０により撮像された撮像画像と、予め登録されている距離ｄと、予め登録されている物体Ｏのリファレンスモデルとに基づいて、物体Ｏのヤコビ行列を算出する。なお、距離ｄは、近似的に撮像部１０とテーブルＴＢとの間の距離としてもよく、撮像部１０とテーブルＴＢとの間の距離よりも所定の距離だけ短い又は長い距離としてもよい。
【００２７】
リファレンスモデルとは、物体Ｏ又は物体Ｏの形状、色彩、模様等を三次元モデル化して得られた三次元モデルデータのことである。リファレンスモデルは、撮像部１０により撮像された物体Ｏとの比較対象となるものであり、例えば、三次元コンピューターグラフィックス（Computer  Graphics；ＣＧ）で表現される。この三次元ＣＧは、例えば、ポリゴンデータの集合として表される。
【００２８】
制御装置３０は、算出された物体Ｏのヤコビ行列に基づいて物体位置姿勢を算出する。制御装置３０は、算出された物体位置姿勢に基づいて把持部ＨＮＤにより物体Ｏを把持するようにロボット２０を制御する。そして、制御装置３０は、把持部ＨＮＤにより把持された物体Ｏを配置位置Ｘに配置するようにロボット２０を制御する。
【００２９】
次に、図２を参照して、制御装置３０のハードウェア構成について説明する。図２は、制御装置３０のハードウェア構成の一例を示す図である。制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４を備え、通信部３４を介して制御装置３０と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
【００３０】
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）などを含み、制御装置３０が処理する各種情報や画像、プログラム、前述した距離ｄを示す情報、前述したリファレンスモデルを示す情報等を格納する。なお、記憶部３２は、制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
【００３１】
入力受付部３３は、例えば、キーボードやマウス、タッチパッド、その他の入力装置である。なお、入力受付部３３は、表示部として機能することでタッチパネルとして構成されてもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
【００３２】
次に、図３を参照して、制御装置３０の機能構成について説明する。図３は、制御装置３０の機能構成の一例を示す図である。制御装置３０は、記憶部３２と、画像取得部３５と、制御部３６を備える。制御部３６が備える機能部のうち一部又は全部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００３３】
画像取得部３５は、撮像部１０から撮像画像を取得する。画像取得部３５は、取得された撮像画像を制御部３６に出力する。
制御部３６は、制御装置３０の全体を制御する。制御部３６は、撮像制御部３７と、画像生成部３８と、ヤコビ行列算出部３９と、ロボット制御部４０を備える。
撮像制御部３７は、撮像部１０に物体Ｏを含む範囲を撮像させる。
【００３４】
画像生成部３８は、記憶部３２から距離ｄを示す情報を読み込む。また、画像生成部３８は、記憶部３２からリファレンスモデルを示す情報を読み込む。また、画像生成部３８は、画像取得部３５から撮像画像を取得する。画像生成部３８は、画像取得部３５から取得された撮像画像と、記憶部３２から読み込まれた距離ｄと、記憶部３２から読み込まれたリファレンスモデルとに基づいて、物体Ｏが異なる方向から撮像された場合に得られる撮像画像（以下、異方向画像と称する）を画像処理によって生成する。以下では、画像生成部３８が行うこれらの処理をまとめて画像生成処理と称して説明する。なお、画像取得部３５から取得される撮像画像は、第１画像の一例である。また、画像生成部３８により生成される異方向画像は、第２画像の一例である。
【００３５】
ヤコビ行列算出部３９は、記憶部３２からリファレンスモデルを示す情報を読み込み、読み込まれたリファレンスモデルに基づいて、物体位置姿勢をＥＳＭ法によって算出するためのヤコビ行列を算出する。本発明におけるヤコビ行列とは、画像特徴ベクトルを剛体運動パラメーターで微分したもの (画像特徴ベクトルは，単純に画素値を並べたものでもよい)を示す。以下では、説明の便宜上、このヤコビ行列を基準ヤコビ行列と称して説明する。
【００３６】
なお、ヤコビ行列は、例えば、物体位置姿勢を推定するために利用される非線形最小化手法に必要なパラメーターを含む行列である。非線形最小化手法とは、例えば、ＥＳＭ法やレーベンバーグ・マルカート法、ニュートン法、ガウス・ニュートン法等である。これらの非線形最小化手法のうち、ＥＳＭ法は、他の手法に比べて反復計算の回数が少ないため、物体位置姿勢をより高速に推定したい場合に、好適に用いることができる。そこで、以下では、非線形最小化手法としてＥＳＭ法を採用し、算出したヤコビ行列は、ＥＳＭ法に用いるパラメーターであるものとして説明する。
【００３７】
また、ヤコビ行列算出部３９は、読み込まれたリファレンスモデルと、画像取得部３５により取得された撮像画像と、画像生成部３８により生成された複数の異方向画像とに基づいて、物体Ｏに係るヤコビ行列を算出する。以下では、説明の便宜上、このヤコビ行列を算出ヤコビ行列と称して説明する。なお、ヤコビ行列算出部３９は、算出部の一例である。
【００３８】
ロボット制御部４０は、ヤコビ行列算出部３９により算出された基準ヤコビ行列と、ヤコビ行列算出部３９により算出された算出ヤコビ行列に基づいてＥＳＭ法により物体位置姿勢を算出する。また、ロボット制御部４０は、算出された物体位置姿勢に基づいて把持部ＨＮＤにより物体Ｏを把持するようにロボット２０を制御する。ロボット２０が把持部ＨＮＤにより物体Ｏを把持した後、ロボット制御部４０は、物体Ｏを配置位置Ｘに配置するようにロボット２０を制御する。
【００３９】
以下、図４を参照して、制御装置３０がロボット２０に所定の作業を行わせる処理について説明する。図４は、制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。まず、撮像制御部３７は、物体Ｏを含む範囲を撮像するように撮像部１０を制御する（ステップＳ１００）。
【００４０】
次に、画像取得部３５は、撮像部１０により撮像された撮像画像を撮像部１０から取得する（ステップＳ１１０）。次に、画像生成部３８は、画像取得部３５により取得された撮像画像に対して画像生成処理を行う（ステップＳ１２０）。ここで、画像生成処理について説明する。画像生成部３８は、記憶部３２から距離ｄを示す情報を読み込む。画像生成部３８は、読み込まれた距離ｄに基づいて画像取得部３５により取得された撮像画像に対してホモグラフィー変換を行う。
【００４１】
ホモグラフィー変換とは、第１平面を、射影変換を用いて第１平面とは異なる第２平面に射影する変換のことである。画像生成部３８は、このホモグラフィー変換により、ある方向から撮像部１０により物体Ｏを含む範囲が撮像された撮像画像（前述の第１平面）を、他の方向から撮像部１０により物体Ｏを含む範囲が撮像された時に取得される撮像画像（前述の第２平面）に近似的に変換する。
【００４２】
換言すると、画像生成部３８は、他の方向から撮像部１０により物体Ｏを含む範囲を撮像した場合に画像取得部３５から取得されるであろう撮像画像を、画像取得部３５から取得された撮像画像に対してホモグラフィー変換を行うことによって近似的に生成する。なお、画像生成部３８は、このホモグラフィー変換を、撮像画像に含まれる物体Ｏに対して行う。これにより、画像生成部３８は、ホモグラフィー変換を撮像画像全体に対して行う場合と比較して、このホモグラフィー変換に伴う計算量を抑制することができる。
【００４３】
他の方向とは、図１に示した三次元座標系ΣのＸ軸、Ｙ軸、Ｚ軸のうちいずれか一つの軸周りで撮像部１０を仮想的に微小回転及び微小並進させた時に、撮像部１０の光軸が向く方向である。以下では、他の方向から撮像部１０により物体Ｏを含む範囲が撮像された撮像画像を、異方向画像と称して説明する。撮像部１０を仮想的に微小回転及び微小並進させた時の複数の仮想的な撮像部１０の位置は、第１位置とは異なる複数の位置の一例である。
【００４４】
なお、三次元座標系ΣのＸ軸、Ｙ軸、Ｚ軸のそれぞれの周りで撮像部１０を微小回転させる方向は、正方向と負方向の２つの方向がある。従って、画像生成部３８は、撮像画像に含まれる物体Ｏを、三次元座標系ΣのＸ軸、Ｙ軸、Ｚ軸のそれぞれの周りで正方向と負方向に微小回転させるため、ホモグラフィー変換によって６枚の異方向画像を生成する。なお、画像生成部３８は、予め記憶部３２に記憶されたＸ軸、Ｙ軸、Ｚ軸のそれぞれに係る微小回転量を読み込み、読み込まれた微小回転量に基づいて撮像画像に映る物体Ｏを微小回転させる。
【００４５】
ここで、図５を参照して、画像生成部３８が異方向画像を生成する処理について説明する。図５は、画像生成部３８により生成される６枚の異方向画像のうち、ホモグラフィー変換により前述した三次元座標系ΣのＸ軸、Ｙ軸、Ｚ軸のそれぞれの周りで正方向に撮像部１０を微小回転させた時に撮像される画像として近似的に利用可能な３枚の異方向画像と、ホモグラフィー変換による微小回転が行われる前の画像取得部３５から取得された撮像画像を例示する図である。なお、Ｘ軸、Ｙ軸、Ｚ軸のそれぞれの周りで負方向に撮像部１０を微小回転させた時に撮像される画像として近似的に利用可能な３枚の異方向画像の生成に係る処理は、図５に示した３枚の異方向画像の生成に係る処理と同様なため、説明を省略する。
【００４６】
図５（Ａ）に示した画像Ｐは、ホモグラフィー変換が行われる前の画像取得部３５から取得された撮像画像の一例である。画像Ｐには、物体Ｏが含まれている（映っている）。図５（Ｂ）に示した画像ＰＸは、Ｘ軸の周りで正方向に撮像部１０を微小回転させた時に撮像される画像として近似的に利用可能な異方向画像の一例である。画像ＰＸには、画像Ｐに含まれる物体Ｏにホモグラフィー変換による微小回転が行われた後の物体Ｏが映っている。また、画像ＰＸ上の点線ＰＯは、ホモグラフィー変換による微小回転が行われる前の物体Ｏの輪郭（すなわち、画像Ｐに含まれる物体Ｏの輪郭）を示す。
【００４７】
図５（Ｂ）に示したように、画像ＰＸは、ホモグラフィー変換による微小並進が行われる前の画像であるため、物体Ｏは、点線ＰＯからずれている。このずれは、撮像部１０の光軸と前述した仮想的な平面とが交差する位置が、ホモグラフィー変換による微小回転の影響で、その微小回転の前後でずれてしまうことにより生じる。また、このずれの大きさΔｄｙは、ホモグラフィー変換によって微小角度Δθだけ微小回転を行った場合、撮像部１０と前述の仮想的な平面との間の距離ｄに応じて、以下に示した式（１）によって算出することができる。
【００４８】
Δｄｙ＝ｄ×ｔａｎ（Δθ）≒ｄΔθ  ・・・（１）
【００４９】
ここで、上記の式（１）の最右辺は、Δθが微小角度であることによる近似を示す。従って、画像生成部３８は、ホモグラフィー変換によって三次元座標系ΣのＸ軸の周りで正方向に撮像部１０を微小角度Δθだけ微小回転させた時に撮像される画像として近似的に利用可能な異方向画像を生成する時、画像Ｐに含まれる物体Ｏにホモグラフィー変換による微小回転を行って画像ＰＸを生成した後、上記の式（１）に基づいてＹ軸方向にΔｄｙだけ画像ＰＸに含まれる物体Ｏを、撮像部１０を微小角度Δθだけ微小回転させた時に撮像部１０の光軸が動いた方向と反対方向に微小並進させる。これにより、画像生成部３８は、ヤコビ行列を算出するために必要な異方向画像のうち、三次元座標系ΣのＸ軸の周りで正方向に撮像部１０を微小角度Δθだけ微小回転させた時に撮像される画像として利用可能な異方向画像を生成する。
【００５０】
また、図５（Ｂ）に示した画像ＰＹは、Ｙ軸の周りで正方向に撮像部１０を微小回転させた時に撮像される画像として近似的に利用可能な異方向画像の一例である。画像ＰＹには、画像Ｐに含まれる物体Ｏにホモグラフィー変換による微小回転が行われた後の物体Ｏが映っている。また、画像ＰＹ上の点線ＰＯは、ホモグラフィー変換が行われる前の物体Ｏの輪郭を示す。
【００５１】
画像ＰＸの場合と同様に、画像生成部３８は、ホモグラフィー変換によって三次元座標系ΣのＹ軸の周りで正方向に撮像部１０を微小角度Δφだけ微小回転させた時に撮像される画像として近似的に利用可能な異方向画像を生成する時、画像Ｐに含まれる物体Ｏにホモグラフィー変換による微小回転を行って画像ＰＹを生成した後、以下の式（２）に基づいてＸ軸方向にΔｄｘだけ画像ＰＸに含まれる物体Ｏを、撮像部１０を微小角度Δφだけ微小回転させた時に撮像部１０の光軸が動いた方向と反対方向に微小並進させる。
【００５２】
Δｄｘ＝ｄ×ｔａｎ（Δφ）≒ｄΔφ  ・・・（２）
【００５３】
ここで、上記の式（１）の最右辺は、Δθが微小角度であることによる近似を示す。これにより、画像生成部３８は、ヤコビ行列を算出するために必要な異方向画像のうち、三次元座標系ΣのＹ軸の周りで正方向に撮像部１０を微小角度Δφだけ微小回転させた時に撮像される画像として利用可能な異方向画像を生成する。
【００５４】
また、図５（Ｂ）に示した画像ＰＺは、Ｚ軸の周りで正方向に撮像部１０を微小回転させた時に撮像される画像として近似的に利用可能な異方向画像の一例である。画像ＰＺには、画像Ｐに含まれる物体Ｏに対してホモグラフィー変換による微小回転が行われた後の物体Ｏが映っている。また、画像ＰＺ上の点線ＰＯは、ホモグラフィー変換が行われる前の物体Ｏの輪郭を示す。
【００５５】
Ｚ軸周りに撮像部１０を回転させた場合、撮像部１０の光軸周りに撮像部１０を回転させることになるため、撮像部１０の光軸と前述した仮想的な平面とが交差する位置が、ホモグラフィー変換による微小回転の影響でずれてしまうことがない。従って、画像生成部３８は、ヤコビ行列を算出するために必要な異方向画像のうち、画像ＰＸや画像ＰＹの場合と異なり、微小並進を行うことなく三次元座標系ΣのＺ軸の周りで正方向に撮像部１０を微小角度Δφだけ微小回転させた時に撮像される画像として近似的に利用可能な異方向画像を生成する。
【００５６】
次に、ヤコビ行列算出部３９は、基準ヤコビ行列と、算出ヤコビ行列を算出する（ステップＳ１３０）。より具体的には、ヤコビ行列算出部３９は、記憶部３２からリファレンスモデルを読み込む。なお、ヤコビ行列算出部３９は、画像生成部３８によりリファレンスモデルが読み込まれている場合、それを用いて以下で説明する処理を行ってもよい。ヤコビ行列算出部３９は、基準ヤコビ行列を算出していない場合、リファレンスモデルに基づいて基準ヤコビ行列を算出する。
【００５７】
ここで、基準ヤコビ行列の導出について説明する。ヤコビ行列算出部３９は、リファレンスモデルを読み込み、読み込まれたリファレンスモデルがある任意の位置に存在するときのヤコビ行列を導出する。なお、ヤコビ行列算出部３９は、基準ヤコビ行列を算出するための処理を全てＣＧ上で行うため、算出ヤコビ行列を導出する際に行ったようなホモグラフィー変換を行う必要は無く、ＣＧ上で撮像部を微小移動させた時に得られる画像を生成する。この時、ＣＧ上においても微小回転変化に伴うずれが発生するため、ヤコビ行列算出部３９は、算出ヤコビ行列を求める際に行う微小並進させる処理（段落［００４６］〜［００５４］）を、基準ヤコビ行列を導出するときについてもＣＧ上で行う必要がある。
【００５８】
基準ヤコビ行列を算出した後、ヤコビ行列算出部３９は、記憶部３２に基準ヤコビ行列を示す情報を出力して記憶させる。ヤコビ行列算出部３９は、すでに基準ヤコビ行列を算出している場合、記憶部３２から基準ヤコビ行列を読み込む。また、ヤコビ行列算出部３９は、画像取得部３５から取得された撮像画像と、画像生成部３８により生成された６枚の異方向画像とに基づいて、算出ヤコビ行列を算出する。
【００５９】
なお、ヤコビ行列算出部３９は、予め登録されているステップサイズに基づいてヤコビ行列の計算に用いる数値微分を行い、三次元算出ヤコビ行列を算出する。ただし、リファレンスモデルと、画像取得部３５から取得された撮像画像との隔たりが大きい場合、ヤコビ行列算出部３９は、ヤコビ行列の計算に用いる数値微分のステップサイズΔを以下の式（３）に基づいて算出する構成であってもよい。
【００６０】
Δ＝ｕ（ｘ）×（１．０＋α×（Ｅ／Ｅ０）×Δ０）  ・・・（３）
【００６１】
ここで、αは、設計定数を示し、例えば、２００である。Ｅは、リファレンスモデルと、画像取得部３５から取得された撮像画像との差分画像における非ゼロ画素数を示す。Ｅ０は、画像取得部３５から取得された撮像画像中の物体Ｏの輪郭内に含まれる全画素数を示す。ｕ（ｘ）は、階段関数であり、例えば、引数ｘの値に応じて１、２、４、８のいずれかの値となる関数である。例えば、ｕ（ｘ）は、ｘ＞８の時に８、４＜ｘ≦８の時に４、２＜ｘ≦４の時に２、ｘがその他の値の時に１となる。Δ０は、設計段階で設定する基本ステップサイズを示す。なお、α、ｕ（ｘ）、Δ０のそれぞれは、パラメーター情報として予め記憶部３２に記憶されているとする。
【００６２】
上記の式（３）に基づいてステップサイズΔを算出する場合、ヤコビ行列算出部３９は、記憶部３２からリファレンスモデルを読み込む。画像生成部３８は、記憶部３２から読み込まれたリファレンスモデルと、画像取得部３５から取得された撮像画像との差分画像を生成する。そして、ヤコビ行列算出部３９は、記憶部３２からパラメーター情報を読み込み、読み込まれたパラメーター情報と、生成された差分画像と、画像取得部３５から取得された撮像画像とに基づいて、上記の式（３）を用いてステップサイズΔを算出する。
【００６３】
ヤコビ行列算出部３９は、算出されたステップサイズΔを用いて算出ヤコビ行列を算出する。これにより、ヤコビ行列算出部３９は、上記の式（３）に基づいてステップサイズΔを算出しない場合と比較して、ステップサイズΔを大きくすることができる。その結果、ヤコビ行列算出部３９は、画像取得部３５から取得される撮像画像に映る物体Ｏと、リファレンスモデルとの隔たりを収束させるために掛かる計算量を抑制することができる。
【００６４】
次に、ロボット制御部４０は、ステップＳ１３０で算出された基準ヤコビ行列と、算出ヤコビ行列とに基づいて物体位置姿勢を算出する。そして、ロボット制御部４０は、算出された物体位置姿勢に基づいて把持部ＨＮＤにより物体Ｏを把持するようにロボット２０を制御する（ステップＳ１４０）。次に、ロボット制御部４０は、把持部ＨＮＤにより把持された物体Ｏを前述の配置位置Ｘに配置するようにロボット２０を制御する（ステップＳ１５０）。
【００６５】
以上説明したように、本実施形態におけるロボットシステム１は、撮像画像であってテーブルＴＢ上に設置された物体Ｏを含む撮像画像を取得し、物体Ｏを撮像部１０が設置された位置とは異なる複数の位置から撮像した画像に相当する複数の異方向画像を生成し、生成された複数の異方向画像を用いてロボット２０を動作させる。これにより、ロボットシステム１は、撮像部１０もしくは物体Ｏを動かすことなくロボット２０に作業を行わせることができる。
【００６６】
また、ロボットシステム１は、複数異方向画像を用いて算出されたヤコビ行列に基づいてロボット２０を動作させる。これにより、ロボットシステム１は、撮像部１０もしくは物体Ｏを動かすことなく算出されたヤコビ行列によってロボット２０に作業を行わせることができる。
【００６７】
また、ロボットシステム１は、物体Ｏのリファレンスモデルと、画像取得部３５から取得された撮像画像との差分画像に基づいてステップサイズを算出し、算出されたステップサイズに基づいて算出ヤコビ行列を算出する。これにより、ロボットシステム１は、算出ヤコビ行列を算出するための計算量を抑制することができる。
【００６８】
また、ロボットシステム１は、画像取得部３５から取得される撮像画像に含まれる物体Ｏに微小回転を行うことで、複数の異方向画像を生成する。これにより、ロボットシステム１は、撮像部１０を動かすことなく、撮像部１０を動かした場合に得られるであろう複数の画像を得ることができる。
【００６９】
また、ロボットシステム１は、画像取得部３５から取得される撮像画像に含まれる物体Ｏに微小回転を行った後、その撮像画像に含まれる物体Ｏに微小並進を行うことで、複数の異方向画像を生成する。これにより、ロボットシステム１は、誤差の小さな画像であって撮像部１０を動かした場合に得られるであろう複数の画像を複数の異方向画像として得ることができる。
【００７０】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００７１】
また、以上に説明した装置（例えば、ロボットシステム１の制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７２】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００７３】
１  ロボットシステム、１０  撮像部、２０  ロボット、３０  制御装置、３１  ＣＰＵ、３２  記憶部、３３  入力受付部、３４  通信部、３５  画像取得部、３６  制御部、３７  撮像制御部、３８  画像生成部、３９  ヤコビ行列算出部、４０  ロボット制御部
【図１】
2016013610.tif 000003
【図２】
2016013610.tif 000004
【図３】
2016013610.tif 000005
【図４】
2016013610.tif 000006
【図５】
2016013610.tif 000007