ロボットシミュレーション画像表示システム
【課題】ロボットの3次元画像モデルの動画像を、必要に応じて柔軟な形態で表示できるロボットシミュレーション画像表示システムを提供する。
【解決手段】QRコード4にロボットの型番情報Tと3次元画像モデルMを動作させるデモ用プログラムSPを記録し、パソコン2は、カメラ1が撮像したQRコード4の画像データ中の4点Q1〜Q4に対応するスクリーン上の4点P1〜P4から、基準点C0を3次元座標の原点とし、原点からQ1,Q2に沿う方向をX軸,Y軸,XY平面上で原点に立つ法線をZ軸として、QRコード4の3次元空間における姿勢情報:回転行列Mrを取得し、回転行列Mrを3次元画像データRに乗算して3次元画像モデルMをディスプレイ5に表示させる。カメラ1により撮像されるQRコード4の位置・姿勢が変化すると3次元画像モデルMの位置・姿勢も変化させ、デモ用プログラムSPに従い3次元空間表示で動作させる。
【解決手段】QRコード4にロボットの型番情報Tと3次元画像モデルMを動作させるデモ用プログラムSPを記録し、パソコン2は、カメラ1が撮像したQRコード4の画像データ中の4点Q1〜Q4に対応するスクリーン上の4点P1〜P4から、基準点C0を3次元座標の原点とし、原点からQ1,Q2に沿う方向をX軸,Y軸,XY平面上で原点に立つ法線をZ軸として、QRコード4の3次元空間における姿勢情報:回転行列Mrを取得し、回転行列Mrを3次元画像データRに乗算して3次元画像モデルMをディスプレイ5に表示させる。カメラ1により撮像されるQRコード4の位置・姿勢が変化すると3次元画像モデルMの位置・姿勢も変化させ、デモ用プログラムSPに従い3次元空間表示で動作させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの3次元画像モデルを表示させて、その動作をシミュレーションするための画像表示システムに関する。
【背景技術】
【0002】
現在、産業用ロボットの売り込みを行う営業マンは、製品カタログに掲載されているロボットの写真を用いたり、パーソナルコンピュータのディスプレイにロボットの3次元画像モデルを表示させ、ロボットの動作を3次元的な動画像で表示させるようにしている。ところが、3次元画像モデルを表示させる操作は容易ではなく習熟度に個人差があり、人によっては製品説明を十分に行うことができないという問題がある。
【0003】
例えば特許文献1には、識別可能な複数個の位置決めパターンが配置されている物体教示指標の画像をカメラにより撮像して得られるデータに基づいて、対応する物品の3次元画像モデルデータをハードディスクやネットワーク上のサーバなどから読み出して、実際の背景画像に重ねて表示させる技術が開示されている。また、特許文献2には、人型のロボットにより物体を把持させて移動させるため、前記物体に2次元コードを貼付し、カメラにより撮像した2次元コードの画像から、2次元コードの位置・姿勢を把握する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−256876号公報
【特許文献2】特開2007−090448号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、産業用ロボットの場合は、実際の動作がどのようになるかを動画で表示させた方が特徴を示し易く、特許文献1のように単に3次元画像モデルを表示させるだけではプレゼンテーションが不十分となってしまう。また、3次元画像モデルの表示形態を変更する、例えばある軸を中心に3次元画像モデルを回転させて表示させるには、やはりパソコンを操作する必要があり、取扱いが簡単になるとは言えない。また、特許文献2に開示されている技術は、人型のロボットにより搬送対象とする物体を把持させることを目的としたもので、3次元画像モデルをどのように表示させるか、という技術との関連性は低い。
【0006】
本発明は上記事情に鑑みてなされたものであり、その目的は、ロボットの3次元画像モデルの動画像を、必要に応じて柔軟な形態で表示できるロボットシミュレーション画像表示システムを提供することにある。
【課題を解決するための手段】
【0007】
請求項1記載のロボットシミュレーション画像表示システムによれば、2次元コードにロボットの型番情報と、そのロボットの3次元画像モデルを動作させるデモ用プログラムとを記録しておく。また、前記2次元コードは、データ領域内に存在する4点の位置が特定可能であり、それらの内1点は基準点として他の3点との識別が可能で、且つそれら4点間の位置関係が特定されているものを使用する。
画像表示装置の画像データ処理手段は、カメラが撮像した2次元コードの画像データに含まれている前記4点の位置から、位置・姿勢情報取得手段が、基準点を3次元座標の原点とし、基準点の両隣にある2点の一方に沿う方向をX軸,他方に沿う方向をY軸,XY平面上において前記原点に立つ法線をZ軸として定め、前記姿勢情報に対応する回転行列を求めると、その回転行列を3次元画像モデルのデータに乗算して、X,Y,Zの各軸に3次元画像モデルの対応する3軸を適応させて表示手段に表示させる。
【0008】
そして、カメラにより撮像される2次元コードの位置・姿勢が変化すると、その変化に合わせて表示させる3次元画像モデルの位置・姿勢も変化させ、2次元コードに記録されているデモ用プログラムに従い3次元画像モデルを3次元空間表示で動作させる。
斯様に構成すれば、ロボットの3次元画像モデルは、カメラの視点から見た2次元コードの位置・姿勢のまま立体画像として表示手段に表示され、デモ用プログラムに従って動く様子が動画表示される。そして、カメラの視点が移動すれば、それに伴って3次元画像モデルの表示形態:位置・姿勢も変化するので、例えばロボットの製品説明を行う場合など、顧客に対するデモンストレーションを視覚的に判り易く行うことができる。
【0009】
請求項2記載のロボットシミュレーション画像表示システムによれば、画像データ処理手段が備える移動量算出手段は、カメラが初期の撮像位置から移動されたことによる移動量を、当該カメラにより撮像された2次元コードの画像データのサイズ変化より算出する。そして、自動モードが設定されると、請求項1と同様に2次元コードに記録されているデモ用プログラムに従い3次元画像モデルを動作させるが、手動モードが設定されると、2次元コードの位置・姿勢の変化に合わせて3次元画像モデルの位置・姿勢を変化させる処理を禁止すると共に、移動量算出手段により算出されたカメラの移動量に比例(正比例,反比例を含む)させて、3次元画像モデルの手先表示位置を移動させる。
すなわち、デモ用プログラムに従った動画表示だけでなく、カメラを移動させた状態に従ってロボットの手先表示位置を動かすことができるので、ロボットの動作状態をより多様に表示させることができる。
【0010】
請求項3記載のロボットシミュレーション画像表示システムによれば、画像データ処理手段が備える変化量検出手段は、カメラにより撮像された2次元コードの画像サイズが変化した場合の変化量を検出し、動作速度可変モードが設定されると、2次元コードの位置・姿勢の変化に合わせて3次元画像モデルの位置・姿勢を変化させる処理を禁止すると共に、2次元コードの画像サイズの変化量に比例させて3次元画像モデルがデモ用プログラムに応じて動作する速度を変化させる。したがって、3次元画像モデルの動画速度をダイナミックに変化させることができる。
【図面の簡単な説明】
【0011】
【図1】本発明の第1実施例であり、ロボットシミュレーション画像表示システムの全体構成を示す図
【図2】QRコードに記録されているデータを説明する図
【図3】QRコードの座標と、ロボットの3次元画像モデルの座標とを一致させる処理を説明する図
【図4】カメラによる撮像位置が変化した場合の、3次元画像モデルの表示状態を示す図
【図5】スピード設定モードを説明する図
【図6】手動モードを説明する図
【図7】各モードの切替え設定を行うための処理を示すフローチャート
【図8】(a)は自動モードの処理内容を示すフローチャート、(b)はステップS13の処理を説明する図
【図9】回転行列Mrを決定する処理を示すフローチャート
【図10】動作スピード設定処理を示すフローチャート
【図11】手動モードの処理内容を示すフローチャート
【図12】ステップS14,S15の処理を説明する図(その1)
【図13】ステップS14,S15の処理を説明する図(その2)
【図14】ステップS14,S15の処理を説明する図(その3)
【図15】ステップS14,S15の処理を説明する図(その4)
【図16】本発明の第2実施例であり、本発明を適用できる2次元コードを例示した図
【図17】そのままでは本発明を適用できない2次元コードを例示した図
【発明を実施するための形態】
【0012】
(第1実施例)
以下、本発明の第1実施例について図1乃至図15を参照して説明する。図1は、ロボットシミュレーション画像表示システムの全体構成を示す。このシステムは、CCD(Charge Coupled Device)やCMOSイメージセンサなどを用いたカメラ1と、このカメラ1によって撮像された画像データが送信されて画像処理を行うパーソナルコンピュータ(パソコン,デコード手段,画像データ記憶手段,画像表示装置,画像データ処理手段,位置・姿勢情報取得手段,モード設定手段,移動量算出手段,変化量算出手段)2とで構成されている。
【0013】
例えば複数の産業用ロボットが掲載されているカタログ3には、各ロボットの外観を映した写真と共にQRコード(登録商標,2次元コード)4が掲載されている。このQRコード4には、図2に示すように、各ロボットの型番(例えばVS−6577G,HS−4553G)と、ロボットの3次元画像モデルMをパソコン2のディスプレイ(表示手段)5に表示させた状態で、上記画像モデルを動作させるためのシミュレーション動作プログラムとが情報として記録されている。
【0014】
上記動作プログラムは、図2(a)に一部を示すように、ロボットアームの手先を、座標点P1,P2,P1,P3,P4…等に順次移動させる命令(move P1など)を列記したものとなっている。パソコン2には、各ロボットに対応する3次元画像モデルの画像データや、画像データを処理して表示させるためのプログラム,QRコード4に記録されている情報データをデコードするためのプログラム等がハードディスク等の記憶装置にインストールされている。
【0015】
そして、カメラ1が、例えばテーブル上に載置されたカタログ3に印刷されているQRコード4の画像を撮像してパソコン4に送信すると、パソコン2は、QRコード4に記録されているデータをデコードし、ロボットの型番に対応する3次元画像モデルMのデータを読み出してディスプレイ5に表示させると共に、シミュレーションプログラムに応じて上記画像モデルの動作をアニメーションで表示させる。このようにして、例えば営業マンSHが客先に出向いた場合に、ロボットが実際にどのような動きをするのかを、パソコン2のディスプレイ5により顧客CHに対して提示することができる。
またその際に、パソコン2は、カメラ1によって撮像されたQRコード4の画像が、カメラ1の視点から見て3次元的に傾いている状態に応じて、ロボットの画像モデルを実際の背景映像に合成し、図1や図4に示すように、カタログ3平面上のQRコード4の位置に合わせて傾いた状態で表示させる。
【0016】
次に、パソコン2が上述した画像処理をどのようにして行うかを、図7乃至図15も参照して説明する。図7は、パソコン2において、ユーザが3次元画像モデルをどのような形態で動作させるか、モードの切替え設定を行うための処理を示すフローチャートである。この処理は、ディスプレイ5にモード切替え設定用の画面を表示させ、ユーザが例えばマウスなどのポインティングデバイスを用いることで選択する。
【0017】
パソコン2は、ユーザによるモード切替えをチェックし(ステップS1)、続くステップS2において、自動モードを選択したか(YES),手動モードを選択したか(NO)を判断する。そして、自動モード,手動モードに応じた動作(それぞれステップS3、S5)を行う。ステップS4では、当該アプリケーションプログラムの終了が選択されたか否かを判断する。ここで「自動モード」とは、ロボットの3次元画像モデルMを、QRコード4に記録されている動作プログラムに応じて動作させるモードであり、「手動モード」は上記動作プログラムを使用せず、画像モデルMを、カメラ1の移動状態に応じて動作させるモードである(詳細については後述する)。
【0018】
図8(a)は、自動モードの処理内容を示すフローチャートである。先ず、2次元コード(ここではQRコード4)のデータをデコードして、ロボットの型番情報Tと動作プログラムSPとを読み取ると(ステップS11)、型番情報Tに対応したロボットの3次元画像データRを記憶装置より読み込む(ステップS12)。
次に、カメラ1により画像モデルMを表示させるため、2次元コードの画像Aを撮像すると(ステップS13)、その画像Aを、図8(b)に示すようにピクセル単位でスキャンする。それにより、カメラ1の焦点(視点)Fを基準とする、画像Aの3次元的な位置・姿勢を求めるために使用する4点:P1〜P4を特定する(ステップS14)。それから、それら4点:P1〜P4を用いて、2次元コードの平面の位置C0と、回転行列Mrとを求める(ステップS15)。
【0019】
ここで、ステップS14,S15の詳細を、図9及び図12乃至図15を参照して説明する。図12に示すように、上記の4点:P1〜P4とは、画像Aがパソコン4のディスプレイ5の平面(スクリーン平面と称す)に投影された場合に、2次元コードの四角の位置Q1〜Q4がスクリーン平面上の座標として特定される位置である。QRコード4の場合、その四角のうち3個所には位置決めマーカ(切り出しシンボル)が配置されており、それらの角が例えばQ1〜Q3となる。位置決めマーカの角Q1〜Q3を特定できれば残る1つのQ4はそれらに基づいて特定することができる。また、これら4点Q1〜Q3の内、基準となる1点(基準点)が上記「平面の位置C0」に対応するが(第2実施例の図16(a)参照)、この場合、Q1−P1が上記の位置COに対応する。そして、回転行列Mrは、カメラ1によって2次元コードを撮像した場合に、スクリーン上に投影される2次元コードの画像の位置姿勢に対応して求められる。
【0020】
図9は、ステップS15において、回転行列Mrを決定する処理を示すフローチャートである。また、図13乃至図15は、図9の処理に対応したイメージを示す。先ず、カメラ1の焦点Fと、スクリーン平面上の2点P1,P2を含む平面の法線ベクトルV12を求める(ステップS31)。ここで、スクリーン上の2点を通過する直線の一般式は、スクリーン座標を(xc,yc)とすると、
axc+byc+c=0 …(1)
で表わされる。
【0021】
また、カメラ座標を(Xc,Yc,Zc)とし、カメラ1内部のパラメータ行列をKとすると、カメラ座標からスクリーン座標への変換式は(2)式となる。
【0022】
【数1】
尚、パラメータ行列Kは、カメラ1内部の撮像素子とレンズとの組み合わせによって決まるもので、行列の要素P11,P13,P22,P23は、焦点距離係数,画像の角度係数,レンズの歪み係数等である。
【0023】
(2)式を展開した式より変数hを消去し、xc,ycをXc,Yc,Zcで表わす式を求めて(1)式に代入すると、(3)式となる。
【0024】
【数2】
(3)式を整理すると、
aP11Xc+bP22Yc+(aP13+bP23+c)Zc=0 …(4)
となる。(4)式で表わされる平面の法線ベクトルは、
(aP11,bP22,aP13+bP23+c) …(5)
である。
【0025】
また、スクリーン上の2点P1(x1,y1),P2(x2,y2)を通る直線の式は、
(x2−x1)(y−y1)=(y2−y1)(x−x1) …(6)
で表わすことができるから、(6)式を展開して(1)式と同様の形にすれば、(1)式における係数a,b,cが以下のように決まる。
a=(y2−y1),b=(x1−x2),c=−ax1−by1 …(7)
したがって、(7)式を(5)に代入すれば、スクリーン平面上の2点P1,P2を含む平面の法線ベクトルV12が求められる。
【0026】
続くステップS32では、同様にして、カメラ1の焦点Fと、スクリーン平面上の2点P3,P4を含む平面の法線ベクトルV34を求め、得られた2つの法線ベクトルV12,V34の外積より、2次元コードの点Q1→点Q2の方向ベクトルV3a(X軸方向単位ベクトル)が得られる(ステップS33)。図13は、ステップS31〜S33の処理に対応したイメージを示している。
【0027】
続くステップS34〜S36では、ステップS31〜S33と同様にして、カメラ1の焦点Fと、スクリーン平面上の2点P1,P3を含む平面の法線ベクトルV13を求め(ステップS34)、焦点Fと、2点P2,P4を含む平面の法線ベクトルV24を求め(ステップS35)、2つの法線ベクトルV13,V24の外積より、2次元コードの点Q1→点Q3の方向ベクトルV3b(Y軸方向単位ベクトル)を得る(ステップS36)。図14は、ステップS34〜S36の処理に対応したイメージを示している。
【0028】
更に、ステップS33,S36でそれぞれ得られた方向ベクトルV3a,V3bの外積から、方向ベクトルV3a,V3bの双方に直交する方向ベクトルV3c(Z軸方向単位ベクトル)が得られる(ステップS37)。図15は、この処理に対応したイメージを示している。そして、得られた3つの方向ベクトルV3a,V3b,V3cを正規化して各成分を配置することで、回転行列Mrが得られる(ステップS38)。
回転行列Mrは、カメラ1の視点からQRコード4の画像を捉えた場合に、カタログ3を平面とするQRコード4のX(Q1→Q2),Y(Q1→Q3),Z(Q1に立つXY平面の法線)の各軸が傾いている状態に対応しており、「平面の位置C0」が位置情報,回転行列Mrが姿勢情報となる。
【0029】
再び、図9を参照する。ステップS15において回転行列Mrを求めると、ステップS12で読み込んだロボットの3次元画像データRの原点を、2次元コードの平面の位置C0に移動させると、回転行列Mrを適用(乗算)する(ステップS16,図3参照)。これにより、3次元画像データRは、カメラ1により撮像された2次元コードがスクリーン上に投影された場合の位置姿勢と同じ位置姿勢で表わされる画像データとなる。尚、3次元画像データRの原点はC0に対応するシンボルの角に一致させるか、または図3に示すように、前記シンボルの中心に一致させても良い。
【0030】
次に、ステップS11で読み取った動作プログラムSPを解釈して、プログラムSPに対応したロボットの姿勢を求め、その姿勢を3次元画像データRに適用すると(ステップS17)、3次元画像データRに基づいて、スクリーンに表示させるロボットの3次元画像Bを作成する(ステップS18)。この時、ロボットの画像の背景は透明にする。それから、ステップS13で得られた画像Aにおいて、2次元コードの位置にロボットの3次元画像Bを合成して画像Cを作成すると(ステップS19)、その画像Cをパソコン2のディスプレイ5(スクリーン)に表示させる(ステップS20)。これにより、ロボットの3次元画像モデルM(最終的にディスプレイ5に表示されるロボットの画像)は、スクリーン上で2次元コードの位置姿勢と同じ位置姿勢の3次元画像となり、動作プログラムSPに応じた3Dアニメーションとして表示される。
【0031】
以降は、ステップS21において、ユーザの設定に応じて上記アニメーション画像の動作スピードを設定する処理を行う(詳細は後述)。そして、自動モードが継続される場合には(ステップS22:NO)ステップS13に戻る。この時点で、カメラ1による2次元コードの撮像位置が図4(b)→(b)に示すように変化すると、それに応じて回転行列Mrが再計算され、3次元画像データRに適用される。したがって、スクリーンに表示される3次元画像モデルMの位置姿勢は、2次元コードの位置姿勢の変化に伴って変化する。
以上の処理により、パソコン2のディスプレイ5には、カタログ3上でQRコード4が配置されているポイント上に3次元画像モデルMが合成された状態の画像が表示され、顧客CHは、カタログ3に写真として掲載されているロボットが、実際には3次元的にどのような構造でどのような動きをするのかを視覚的に把握することができる。
【0032】
図10は、ステップS21の動作スピード設定処理を示すフローチャートである。カメラ1により2次元コードの画像Aが撮像されている状態で、例えばパソコン2のキーボードで「Shift」キーが押されている場合に(ステップS41:YES)スピード設定モード(動作速度可変モード)に移行する。そして、ユーザ(営業マンSHなど)がカメラ1の位置を移動させた後、その時点でカメラ1により2次元コードの画像Dを撮像する(ステップS42)。
この場合のイメージを図5に示す。図5(a)は、最初に2次元コードの画像Aを撮像した位置からカメラ1を寄せて、画像Dのサイズをより大きく写し込んだ場合であり、図5(b)は逆に、最初に画像Aを撮像した位置からカメラ1を引いて、画像Dのサイズをより小さく写し込んだ場合である。
【0033】
次のステップS43では、画像A,D間の移動量L(x,y,z)を求める。移動量Lは、2次元コードの重心や特定の位置P等の変化量でx,yを求め、2次元コードの画像サイズの差からzを求めて特定する(ここではzのみ求めても良い)。そして、動作プログラムSPに基づいて動いている3次元画像Mの動作速度Vm(画像の変化速度)に、移動量Lのz分を加えて更新すると(ステップS44)、更新した速度Vmを3次元画像Mの動作に適用させる(ステップS45)。
これにより、図5(a)に示すように画像Dのサイズが大きくなるように変化した場合は(移動量Lが減少する方向)3次元画像Mの動作速度が遅くなり(例えば10%低下)、図5(b)に示すように画像Dのサイズが小さくなるように変化した場合は3次元画像Mの動作速度が速くなる(例えば80%上昇)。
【0034】
図11は、図7のステップS5における「手動モード」の処理を示すフローチャートである。また、図6は手動モードの場合の動作イメージを示す。ステップS51〜S56は、自動モードの場合とほぼ同様の処理であるが、ステップS51ではロボットの型番情報Tのみを読み取り、動作プログラムSPは読み取らない。
そして、ユーザは、例えば図6に示すように、画像Aを撮像した位置からカメラ1を移動させて2次元コードの画像Dを撮像し(ステップS57)、スピード設定モードのステップS43と同様にして画像A,D間の移動量Lを求める(ステップS58)。それから、移動量Lに応じて、ロボットの手先を移動させた姿勢Jを3次元データRに適用すると(ステップS59)、適用後の3次元データRから3次元画像Bを作成する(ステップS60)。以降は、ステップS19,S20,S22と同様の処理になる(ステップS61〜S63)。
【0035】
以上のように本実施例によれば、QRコード4にロボットの型番情報Tと、そのロボットの3次元画像モデルMを動作させるデモ用プログラムSPを記録しておき、パソコン2は、カメラ1が撮像したQRコード4の画像データに含まれている4点Q1〜Q4に対応するスクリーン上の4点P1〜P4の位置から、基準点C0(P1,Q1)を3次元座標の原点とし、原点からQ1に沿う方向をX軸,同Q2に沿う方向をY軸,XY平面上で原点に立つ法線をZ軸として定め、QRコード4の3次元空間における姿勢情報である回転行列Mrを取得し、その回転行列Mrを3次元画像モデルMのデータRに乗算して、3次元画像モデルMの対応する3軸を適応させてディスプレイ5に表示させる。
【0036】
そして、カメラ1により撮像されるQRコード4の位置・姿勢が変化すると、その変化に合わせて表示させる3次元画像モデルMの位置・姿勢も変化させ、デモ用プログラムSPに従い3次元画像モデルMを3次元空間表示で動作させるようにした。したがって、ロボットの製品説明を行う場合などに、顧客に対するデモンストレーションを視覚的に判り易く行うことができる。例えば営業マンなどに2次元コードが印刷されたカタログを渡せば、その営業マンのパソコン2による3次元画像モデルMの操作能力に関係なく、客先等の出先においてデモンストレーションを容易に行わせることができ、ロボットが具体的にどのような動きをするかを顧客に提示できる。
【0037】
また、パソコン2は、カメラ1が、初期の撮像位置から移動されたことによる移動量Lを、当該カメラ1により撮像されたQRコード4の画像データのサイズ変化より算出し、自動モードが設定されると、デモ用プログラムSPに従い3次元画像モデルMを動作させ、手動モードが設定されると、QRコード4の位置・姿勢の変化に合わせて3次元画像モデルMの位置・姿勢を変化させる処理を禁止して、算出されたカメラ1の移動量Lに比例させて、3次元画像モデルMの手先表示位置を移動させるようにした。したがって、デモ用プログラムSPに従った動画表示だけでなく、カメラ1を移動させた状態に従ってロボットの手先表示位置を動かすことができ、ロボットの動作状態をより多様に表示させることができる。
【0038】
更に、パソコン2は、カメラ1により撮像されたQRコード4の画像サイズが変化した場合の変化量Lを検出し、スピード設定モードが設定されると、QRコード4の位置・姿勢の変化に合わせて3次元画像モデルMの位置・姿勢を変化させる処理を行わず、QRコード4の画像サイズの変化量Lに比例させて3次元画像モデルMがデモ用プログラムSPに応じて動作する速度を変化させる。したがって、3次元画像モデルの動画速度をダイナミックに変化させることができる。
【0039】
(第2実施例)
図16及び図17は本発明の第2実施例を示す。第2実施例は、2次元コードの一例としてQRコード4を用いたが、その他の2次元コードについても同様に適用できることを示す。本発明が適用できる2次元コードは、図16(a)に示すように、コード領域内において4点C0,CR,CL,CX(第1実施例のQ1〜Q4に対応)を特定できることが必要である。更に、それらのうち1点例えばC0が、その他の点CR,CL,CXと区別して特定できることと、C0を基準として、その他の点CR,CL,CXの配置が相対的に固定であることも必要である。
【0040】
上記の条件を満たす2次元コードとしては、図16(b)〜(f)に示すマイクロQRコード(登録商標),Veri Code(登録商標),Data Matrix(登録商標),CODE49(登録商標),PDF417(登録商標)などがある。図16(b)に示すマイクロQRコードは、切り出しシンボルが1個だけ配置されているが、その四角の位置で上記の4点を特定できる。同じくマトリックス型である、図16(c)に示すVeri Codeは、正方形状の4辺がラインで囲まれているので、その四角の位置で上記の4点を特定できる。
図16(d)に示すData Matrixは、正方形状の2辺をなすL字型のラインを備えているので、それらにより3点を特定でき、残りの1点も前記3点に基づいて特定できる。また、図16(e),(f)に示すスタック型のCODE49,PDF417も、矩形をなす外形の四角の位置で上記の4点を特定できる。
【0041】
また図17には、そのままでは適用できない2次元コードとして、(a)MaxiCode(登録商標),(b)AztecCode(登録商標)を示している。これらについては、中心に配置されるシンボルにより1点は特定できるが、コード領域の四角の内少なくとも3点にマーカ10を張り付けるようにすれば、本発明を同様に適用できる。尚、マーカ10の面積は、マーカ10によって覆われたデータ領域が、これらのコードが備えている誤り訂正機能によって訂正可能な面積よりも小さく設定する必要がある。
【0042】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
ロボットの型番や3次元画像モデルMは、パソコン2に内蔵される記憶装置に記憶されるものに限らず、例えばパソコン2に接続されるUSB(Universal Serial Bus)メモリに記憶されているものや、或いはLANやインターネットなどの通信ネットワークを介して通信が可能なハードディスクドライブやサーバ上に記憶されているものを読み出すようにしても良い。
スピード設定モードにおける2次元コードのサイズと動作速度との対応関係は、逆にしても良い。
手動モードやスピード設定モードを実施するか否かは、必要に応じて適宜選択すれば良い。
【符号の説明】
【0043】
図面中、1はカメラ、2はパーソナルコンピュータ(デコード手段,画像データ記憶手段,画像表示装置,画像データ処理手段,位置・姿勢情報取得手段,モード設定手段,移動量算出手段,変化量算出手段)、4はQRコード(2次元コード)、5はディスプレイ(表示手段)を示す。
【技術分野】
【0001】
本発明は、ロボットの3次元画像モデルを表示させて、その動作をシミュレーションするための画像表示システムに関する。
【背景技術】
【0002】
現在、産業用ロボットの売り込みを行う営業マンは、製品カタログに掲載されているロボットの写真を用いたり、パーソナルコンピュータのディスプレイにロボットの3次元画像モデルを表示させ、ロボットの動作を3次元的な動画像で表示させるようにしている。ところが、3次元画像モデルを表示させる操作は容易ではなく習熟度に個人差があり、人によっては製品説明を十分に行うことができないという問題がある。
【0003】
例えば特許文献1には、識別可能な複数個の位置決めパターンが配置されている物体教示指標の画像をカメラにより撮像して得られるデータに基づいて、対応する物品の3次元画像モデルデータをハードディスクやネットワーク上のサーバなどから読み出して、実際の背景画像に重ねて表示させる技術が開示されている。また、特許文献2には、人型のロボットにより物体を把持させて移動させるため、前記物体に2次元コードを貼付し、カメラにより撮像した2次元コードの画像から、2次元コードの位置・姿勢を把握する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−256876号公報
【特許文献2】特開2007−090448号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、産業用ロボットの場合は、実際の動作がどのようになるかを動画で表示させた方が特徴を示し易く、特許文献1のように単に3次元画像モデルを表示させるだけではプレゼンテーションが不十分となってしまう。また、3次元画像モデルの表示形態を変更する、例えばある軸を中心に3次元画像モデルを回転させて表示させるには、やはりパソコンを操作する必要があり、取扱いが簡単になるとは言えない。また、特許文献2に開示されている技術は、人型のロボットにより搬送対象とする物体を把持させることを目的としたもので、3次元画像モデルをどのように表示させるか、という技術との関連性は低い。
【0006】
本発明は上記事情に鑑みてなされたものであり、その目的は、ロボットの3次元画像モデルの動画像を、必要に応じて柔軟な形態で表示できるロボットシミュレーション画像表示システムを提供することにある。
【課題を解決するための手段】
【0007】
請求項1記載のロボットシミュレーション画像表示システムによれば、2次元コードにロボットの型番情報と、そのロボットの3次元画像モデルを動作させるデモ用プログラムとを記録しておく。また、前記2次元コードは、データ領域内に存在する4点の位置が特定可能であり、それらの内1点は基準点として他の3点との識別が可能で、且つそれら4点間の位置関係が特定されているものを使用する。
画像表示装置の画像データ処理手段は、カメラが撮像した2次元コードの画像データに含まれている前記4点の位置から、位置・姿勢情報取得手段が、基準点を3次元座標の原点とし、基準点の両隣にある2点の一方に沿う方向をX軸,他方に沿う方向をY軸,XY平面上において前記原点に立つ法線をZ軸として定め、前記姿勢情報に対応する回転行列を求めると、その回転行列を3次元画像モデルのデータに乗算して、X,Y,Zの各軸に3次元画像モデルの対応する3軸を適応させて表示手段に表示させる。
【0008】
そして、カメラにより撮像される2次元コードの位置・姿勢が変化すると、その変化に合わせて表示させる3次元画像モデルの位置・姿勢も変化させ、2次元コードに記録されているデモ用プログラムに従い3次元画像モデルを3次元空間表示で動作させる。
斯様に構成すれば、ロボットの3次元画像モデルは、カメラの視点から見た2次元コードの位置・姿勢のまま立体画像として表示手段に表示され、デモ用プログラムに従って動く様子が動画表示される。そして、カメラの視点が移動すれば、それに伴って3次元画像モデルの表示形態:位置・姿勢も変化するので、例えばロボットの製品説明を行う場合など、顧客に対するデモンストレーションを視覚的に判り易く行うことができる。
【0009】
請求項2記載のロボットシミュレーション画像表示システムによれば、画像データ処理手段が備える移動量算出手段は、カメラが初期の撮像位置から移動されたことによる移動量を、当該カメラにより撮像された2次元コードの画像データのサイズ変化より算出する。そして、自動モードが設定されると、請求項1と同様に2次元コードに記録されているデモ用プログラムに従い3次元画像モデルを動作させるが、手動モードが設定されると、2次元コードの位置・姿勢の変化に合わせて3次元画像モデルの位置・姿勢を変化させる処理を禁止すると共に、移動量算出手段により算出されたカメラの移動量に比例(正比例,反比例を含む)させて、3次元画像モデルの手先表示位置を移動させる。
すなわち、デモ用プログラムに従った動画表示だけでなく、カメラを移動させた状態に従ってロボットの手先表示位置を動かすことができるので、ロボットの動作状態をより多様に表示させることができる。
【0010】
請求項3記載のロボットシミュレーション画像表示システムによれば、画像データ処理手段が備える変化量検出手段は、カメラにより撮像された2次元コードの画像サイズが変化した場合の変化量を検出し、動作速度可変モードが設定されると、2次元コードの位置・姿勢の変化に合わせて3次元画像モデルの位置・姿勢を変化させる処理を禁止すると共に、2次元コードの画像サイズの変化量に比例させて3次元画像モデルがデモ用プログラムに応じて動作する速度を変化させる。したがって、3次元画像モデルの動画速度をダイナミックに変化させることができる。
【図面の簡単な説明】
【0011】
【図1】本発明の第1実施例であり、ロボットシミュレーション画像表示システムの全体構成を示す図
【図2】QRコードに記録されているデータを説明する図
【図3】QRコードの座標と、ロボットの3次元画像モデルの座標とを一致させる処理を説明する図
【図4】カメラによる撮像位置が変化した場合の、3次元画像モデルの表示状態を示す図
【図5】スピード設定モードを説明する図
【図6】手動モードを説明する図
【図7】各モードの切替え設定を行うための処理を示すフローチャート
【図8】(a)は自動モードの処理内容を示すフローチャート、(b)はステップS13の処理を説明する図
【図9】回転行列Mrを決定する処理を示すフローチャート
【図10】動作スピード設定処理を示すフローチャート
【図11】手動モードの処理内容を示すフローチャート
【図12】ステップS14,S15の処理を説明する図(その1)
【図13】ステップS14,S15の処理を説明する図(その2)
【図14】ステップS14,S15の処理を説明する図(その3)
【図15】ステップS14,S15の処理を説明する図(その4)
【図16】本発明の第2実施例であり、本発明を適用できる2次元コードを例示した図
【図17】そのままでは本発明を適用できない2次元コードを例示した図
【発明を実施するための形態】
【0012】
(第1実施例)
以下、本発明の第1実施例について図1乃至図15を参照して説明する。図1は、ロボットシミュレーション画像表示システムの全体構成を示す。このシステムは、CCD(Charge Coupled Device)やCMOSイメージセンサなどを用いたカメラ1と、このカメラ1によって撮像された画像データが送信されて画像処理を行うパーソナルコンピュータ(パソコン,デコード手段,画像データ記憶手段,画像表示装置,画像データ処理手段,位置・姿勢情報取得手段,モード設定手段,移動量算出手段,変化量算出手段)2とで構成されている。
【0013】
例えば複数の産業用ロボットが掲載されているカタログ3には、各ロボットの外観を映した写真と共にQRコード(登録商標,2次元コード)4が掲載されている。このQRコード4には、図2に示すように、各ロボットの型番(例えばVS−6577G,HS−4553G)と、ロボットの3次元画像モデルMをパソコン2のディスプレイ(表示手段)5に表示させた状態で、上記画像モデルを動作させるためのシミュレーション動作プログラムとが情報として記録されている。
【0014】
上記動作プログラムは、図2(a)に一部を示すように、ロボットアームの手先を、座標点P1,P2,P1,P3,P4…等に順次移動させる命令(move P1など)を列記したものとなっている。パソコン2には、各ロボットに対応する3次元画像モデルの画像データや、画像データを処理して表示させるためのプログラム,QRコード4に記録されている情報データをデコードするためのプログラム等がハードディスク等の記憶装置にインストールされている。
【0015】
そして、カメラ1が、例えばテーブル上に載置されたカタログ3に印刷されているQRコード4の画像を撮像してパソコン4に送信すると、パソコン2は、QRコード4に記録されているデータをデコードし、ロボットの型番に対応する3次元画像モデルMのデータを読み出してディスプレイ5に表示させると共に、シミュレーションプログラムに応じて上記画像モデルの動作をアニメーションで表示させる。このようにして、例えば営業マンSHが客先に出向いた場合に、ロボットが実際にどのような動きをするのかを、パソコン2のディスプレイ5により顧客CHに対して提示することができる。
またその際に、パソコン2は、カメラ1によって撮像されたQRコード4の画像が、カメラ1の視点から見て3次元的に傾いている状態に応じて、ロボットの画像モデルを実際の背景映像に合成し、図1や図4に示すように、カタログ3平面上のQRコード4の位置に合わせて傾いた状態で表示させる。
【0016】
次に、パソコン2が上述した画像処理をどのようにして行うかを、図7乃至図15も参照して説明する。図7は、パソコン2において、ユーザが3次元画像モデルをどのような形態で動作させるか、モードの切替え設定を行うための処理を示すフローチャートである。この処理は、ディスプレイ5にモード切替え設定用の画面を表示させ、ユーザが例えばマウスなどのポインティングデバイスを用いることで選択する。
【0017】
パソコン2は、ユーザによるモード切替えをチェックし(ステップS1)、続くステップS2において、自動モードを選択したか(YES),手動モードを選択したか(NO)を判断する。そして、自動モード,手動モードに応じた動作(それぞれステップS3、S5)を行う。ステップS4では、当該アプリケーションプログラムの終了が選択されたか否かを判断する。ここで「自動モード」とは、ロボットの3次元画像モデルMを、QRコード4に記録されている動作プログラムに応じて動作させるモードであり、「手動モード」は上記動作プログラムを使用せず、画像モデルMを、カメラ1の移動状態に応じて動作させるモードである(詳細については後述する)。
【0018】
図8(a)は、自動モードの処理内容を示すフローチャートである。先ず、2次元コード(ここではQRコード4)のデータをデコードして、ロボットの型番情報Tと動作プログラムSPとを読み取ると(ステップS11)、型番情報Tに対応したロボットの3次元画像データRを記憶装置より読み込む(ステップS12)。
次に、カメラ1により画像モデルMを表示させるため、2次元コードの画像Aを撮像すると(ステップS13)、その画像Aを、図8(b)に示すようにピクセル単位でスキャンする。それにより、カメラ1の焦点(視点)Fを基準とする、画像Aの3次元的な位置・姿勢を求めるために使用する4点:P1〜P4を特定する(ステップS14)。それから、それら4点:P1〜P4を用いて、2次元コードの平面の位置C0と、回転行列Mrとを求める(ステップS15)。
【0019】
ここで、ステップS14,S15の詳細を、図9及び図12乃至図15を参照して説明する。図12に示すように、上記の4点:P1〜P4とは、画像Aがパソコン4のディスプレイ5の平面(スクリーン平面と称す)に投影された場合に、2次元コードの四角の位置Q1〜Q4がスクリーン平面上の座標として特定される位置である。QRコード4の場合、その四角のうち3個所には位置決めマーカ(切り出しシンボル)が配置されており、それらの角が例えばQ1〜Q3となる。位置決めマーカの角Q1〜Q3を特定できれば残る1つのQ4はそれらに基づいて特定することができる。また、これら4点Q1〜Q3の内、基準となる1点(基準点)が上記「平面の位置C0」に対応するが(第2実施例の図16(a)参照)、この場合、Q1−P1が上記の位置COに対応する。そして、回転行列Mrは、カメラ1によって2次元コードを撮像した場合に、スクリーン上に投影される2次元コードの画像の位置姿勢に対応して求められる。
【0020】
図9は、ステップS15において、回転行列Mrを決定する処理を示すフローチャートである。また、図13乃至図15は、図9の処理に対応したイメージを示す。先ず、カメラ1の焦点Fと、スクリーン平面上の2点P1,P2を含む平面の法線ベクトルV12を求める(ステップS31)。ここで、スクリーン上の2点を通過する直線の一般式は、スクリーン座標を(xc,yc)とすると、
axc+byc+c=0 …(1)
で表わされる。
【0021】
また、カメラ座標を(Xc,Yc,Zc)とし、カメラ1内部のパラメータ行列をKとすると、カメラ座標からスクリーン座標への変換式は(2)式となる。
【0022】
【数1】
尚、パラメータ行列Kは、カメラ1内部の撮像素子とレンズとの組み合わせによって決まるもので、行列の要素P11,P13,P22,P23は、焦点距離係数,画像の角度係数,レンズの歪み係数等である。
【0023】
(2)式を展開した式より変数hを消去し、xc,ycをXc,Yc,Zcで表わす式を求めて(1)式に代入すると、(3)式となる。
【0024】
【数2】
(3)式を整理すると、
aP11Xc+bP22Yc+(aP13+bP23+c)Zc=0 …(4)
となる。(4)式で表わされる平面の法線ベクトルは、
(aP11,bP22,aP13+bP23+c) …(5)
である。
【0025】
また、スクリーン上の2点P1(x1,y1),P2(x2,y2)を通る直線の式は、
(x2−x1)(y−y1)=(y2−y1)(x−x1) …(6)
で表わすことができるから、(6)式を展開して(1)式と同様の形にすれば、(1)式における係数a,b,cが以下のように決まる。
a=(y2−y1),b=(x1−x2),c=−ax1−by1 …(7)
したがって、(7)式を(5)に代入すれば、スクリーン平面上の2点P1,P2を含む平面の法線ベクトルV12が求められる。
【0026】
続くステップS32では、同様にして、カメラ1の焦点Fと、スクリーン平面上の2点P3,P4を含む平面の法線ベクトルV34を求め、得られた2つの法線ベクトルV12,V34の外積より、2次元コードの点Q1→点Q2の方向ベクトルV3a(X軸方向単位ベクトル)が得られる(ステップS33)。図13は、ステップS31〜S33の処理に対応したイメージを示している。
【0027】
続くステップS34〜S36では、ステップS31〜S33と同様にして、カメラ1の焦点Fと、スクリーン平面上の2点P1,P3を含む平面の法線ベクトルV13を求め(ステップS34)、焦点Fと、2点P2,P4を含む平面の法線ベクトルV24を求め(ステップS35)、2つの法線ベクトルV13,V24の外積より、2次元コードの点Q1→点Q3の方向ベクトルV3b(Y軸方向単位ベクトル)を得る(ステップS36)。図14は、ステップS34〜S36の処理に対応したイメージを示している。
【0028】
更に、ステップS33,S36でそれぞれ得られた方向ベクトルV3a,V3bの外積から、方向ベクトルV3a,V3bの双方に直交する方向ベクトルV3c(Z軸方向単位ベクトル)が得られる(ステップS37)。図15は、この処理に対応したイメージを示している。そして、得られた3つの方向ベクトルV3a,V3b,V3cを正規化して各成分を配置することで、回転行列Mrが得られる(ステップS38)。
回転行列Mrは、カメラ1の視点からQRコード4の画像を捉えた場合に、カタログ3を平面とするQRコード4のX(Q1→Q2),Y(Q1→Q3),Z(Q1に立つXY平面の法線)の各軸が傾いている状態に対応しており、「平面の位置C0」が位置情報,回転行列Mrが姿勢情報となる。
【0029】
再び、図9を参照する。ステップS15において回転行列Mrを求めると、ステップS12で読み込んだロボットの3次元画像データRの原点を、2次元コードの平面の位置C0に移動させると、回転行列Mrを適用(乗算)する(ステップS16,図3参照)。これにより、3次元画像データRは、カメラ1により撮像された2次元コードがスクリーン上に投影された場合の位置姿勢と同じ位置姿勢で表わされる画像データとなる。尚、3次元画像データRの原点はC0に対応するシンボルの角に一致させるか、または図3に示すように、前記シンボルの中心に一致させても良い。
【0030】
次に、ステップS11で読み取った動作プログラムSPを解釈して、プログラムSPに対応したロボットの姿勢を求め、その姿勢を3次元画像データRに適用すると(ステップS17)、3次元画像データRに基づいて、スクリーンに表示させるロボットの3次元画像Bを作成する(ステップS18)。この時、ロボットの画像の背景は透明にする。それから、ステップS13で得られた画像Aにおいて、2次元コードの位置にロボットの3次元画像Bを合成して画像Cを作成すると(ステップS19)、その画像Cをパソコン2のディスプレイ5(スクリーン)に表示させる(ステップS20)。これにより、ロボットの3次元画像モデルM(最終的にディスプレイ5に表示されるロボットの画像)は、スクリーン上で2次元コードの位置姿勢と同じ位置姿勢の3次元画像となり、動作プログラムSPに応じた3Dアニメーションとして表示される。
【0031】
以降は、ステップS21において、ユーザの設定に応じて上記アニメーション画像の動作スピードを設定する処理を行う(詳細は後述)。そして、自動モードが継続される場合には(ステップS22:NO)ステップS13に戻る。この時点で、カメラ1による2次元コードの撮像位置が図4(b)→(b)に示すように変化すると、それに応じて回転行列Mrが再計算され、3次元画像データRに適用される。したがって、スクリーンに表示される3次元画像モデルMの位置姿勢は、2次元コードの位置姿勢の変化に伴って変化する。
以上の処理により、パソコン2のディスプレイ5には、カタログ3上でQRコード4が配置されているポイント上に3次元画像モデルMが合成された状態の画像が表示され、顧客CHは、カタログ3に写真として掲載されているロボットが、実際には3次元的にどのような構造でどのような動きをするのかを視覚的に把握することができる。
【0032】
図10は、ステップS21の動作スピード設定処理を示すフローチャートである。カメラ1により2次元コードの画像Aが撮像されている状態で、例えばパソコン2のキーボードで「Shift」キーが押されている場合に(ステップS41:YES)スピード設定モード(動作速度可変モード)に移行する。そして、ユーザ(営業マンSHなど)がカメラ1の位置を移動させた後、その時点でカメラ1により2次元コードの画像Dを撮像する(ステップS42)。
この場合のイメージを図5に示す。図5(a)は、最初に2次元コードの画像Aを撮像した位置からカメラ1を寄せて、画像Dのサイズをより大きく写し込んだ場合であり、図5(b)は逆に、最初に画像Aを撮像した位置からカメラ1を引いて、画像Dのサイズをより小さく写し込んだ場合である。
【0033】
次のステップS43では、画像A,D間の移動量L(x,y,z)を求める。移動量Lは、2次元コードの重心や特定の位置P等の変化量でx,yを求め、2次元コードの画像サイズの差からzを求めて特定する(ここではzのみ求めても良い)。そして、動作プログラムSPに基づいて動いている3次元画像Mの動作速度Vm(画像の変化速度)に、移動量Lのz分を加えて更新すると(ステップS44)、更新した速度Vmを3次元画像Mの動作に適用させる(ステップS45)。
これにより、図5(a)に示すように画像Dのサイズが大きくなるように変化した場合は(移動量Lが減少する方向)3次元画像Mの動作速度が遅くなり(例えば10%低下)、図5(b)に示すように画像Dのサイズが小さくなるように変化した場合は3次元画像Mの動作速度が速くなる(例えば80%上昇)。
【0034】
図11は、図7のステップS5における「手動モード」の処理を示すフローチャートである。また、図6は手動モードの場合の動作イメージを示す。ステップS51〜S56は、自動モードの場合とほぼ同様の処理であるが、ステップS51ではロボットの型番情報Tのみを読み取り、動作プログラムSPは読み取らない。
そして、ユーザは、例えば図6に示すように、画像Aを撮像した位置からカメラ1を移動させて2次元コードの画像Dを撮像し(ステップS57)、スピード設定モードのステップS43と同様にして画像A,D間の移動量Lを求める(ステップS58)。それから、移動量Lに応じて、ロボットの手先を移動させた姿勢Jを3次元データRに適用すると(ステップS59)、適用後の3次元データRから3次元画像Bを作成する(ステップS60)。以降は、ステップS19,S20,S22と同様の処理になる(ステップS61〜S63)。
【0035】
以上のように本実施例によれば、QRコード4にロボットの型番情報Tと、そのロボットの3次元画像モデルMを動作させるデモ用プログラムSPを記録しておき、パソコン2は、カメラ1が撮像したQRコード4の画像データに含まれている4点Q1〜Q4に対応するスクリーン上の4点P1〜P4の位置から、基準点C0(P1,Q1)を3次元座標の原点とし、原点からQ1に沿う方向をX軸,同Q2に沿う方向をY軸,XY平面上で原点に立つ法線をZ軸として定め、QRコード4の3次元空間における姿勢情報である回転行列Mrを取得し、その回転行列Mrを3次元画像モデルMのデータRに乗算して、3次元画像モデルMの対応する3軸を適応させてディスプレイ5に表示させる。
【0036】
そして、カメラ1により撮像されるQRコード4の位置・姿勢が変化すると、その変化に合わせて表示させる3次元画像モデルMの位置・姿勢も変化させ、デモ用プログラムSPに従い3次元画像モデルMを3次元空間表示で動作させるようにした。したがって、ロボットの製品説明を行う場合などに、顧客に対するデモンストレーションを視覚的に判り易く行うことができる。例えば営業マンなどに2次元コードが印刷されたカタログを渡せば、その営業マンのパソコン2による3次元画像モデルMの操作能力に関係なく、客先等の出先においてデモンストレーションを容易に行わせることができ、ロボットが具体的にどのような動きをするかを顧客に提示できる。
【0037】
また、パソコン2は、カメラ1が、初期の撮像位置から移動されたことによる移動量Lを、当該カメラ1により撮像されたQRコード4の画像データのサイズ変化より算出し、自動モードが設定されると、デモ用プログラムSPに従い3次元画像モデルMを動作させ、手動モードが設定されると、QRコード4の位置・姿勢の変化に合わせて3次元画像モデルMの位置・姿勢を変化させる処理を禁止して、算出されたカメラ1の移動量Lに比例させて、3次元画像モデルMの手先表示位置を移動させるようにした。したがって、デモ用プログラムSPに従った動画表示だけでなく、カメラ1を移動させた状態に従ってロボットの手先表示位置を動かすことができ、ロボットの動作状態をより多様に表示させることができる。
【0038】
更に、パソコン2は、カメラ1により撮像されたQRコード4の画像サイズが変化した場合の変化量Lを検出し、スピード設定モードが設定されると、QRコード4の位置・姿勢の変化に合わせて3次元画像モデルMの位置・姿勢を変化させる処理を行わず、QRコード4の画像サイズの変化量Lに比例させて3次元画像モデルMがデモ用プログラムSPに応じて動作する速度を変化させる。したがって、3次元画像モデルの動画速度をダイナミックに変化させることができる。
【0039】
(第2実施例)
図16及び図17は本発明の第2実施例を示す。第2実施例は、2次元コードの一例としてQRコード4を用いたが、その他の2次元コードについても同様に適用できることを示す。本発明が適用できる2次元コードは、図16(a)に示すように、コード領域内において4点C0,CR,CL,CX(第1実施例のQ1〜Q4に対応)を特定できることが必要である。更に、それらのうち1点例えばC0が、その他の点CR,CL,CXと区別して特定できることと、C0を基準として、その他の点CR,CL,CXの配置が相対的に固定であることも必要である。
【0040】
上記の条件を満たす2次元コードとしては、図16(b)〜(f)に示すマイクロQRコード(登録商標),Veri Code(登録商標),Data Matrix(登録商標),CODE49(登録商標),PDF417(登録商標)などがある。図16(b)に示すマイクロQRコードは、切り出しシンボルが1個だけ配置されているが、その四角の位置で上記の4点を特定できる。同じくマトリックス型である、図16(c)に示すVeri Codeは、正方形状の4辺がラインで囲まれているので、その四角の位置で上記の4点を特定できる。
図16(d)に示すData Matrixは、正方形状の2辺をなすL字型のラインを備えているので、それらにより3点を特定でき、残りの1点も前記3点に基づいて特定できる。また、図16(e),(f)に示すスタック型のCODE49,PDF417も、矩形をなす外形の四角の位置で上記の4点を特定できる。
【0041】
また図17には、そのままでは適用できない2次元コードとして、(a)MaxiCode(登録商標),(b)AztecCode(登録商標)を示している。これらについては、中心に配置されるシンボルにより1点は特定できるが、コード領域の四角の内少なくとも3点にマーカ10を張り付けるようにすれば、本発明を同様に適用できる。尚、マーカ10の面積は、マーカ10によって覆われたデータ領域が、これらのコードが備えている誤り訂正機能によって訂正可能な面積よりも小さく設定する必要がある。
【0042】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
ロボットの型番や3次元画像モデルMは、パソコン2に内蔵される記憶装置に記憶されるものに限らず、例えばパソコン2に接続されるUSB(Universal Serial Bus)メモリに記憶されているものや、或いはLANやインターネットなどの通信ネットワークを介して通信が可能なハードディスクドライブやサーバ上に記憶されているものを読み出すようにしても良い。
スピード設定モードにおける2次元コードのサイズと動作速度との対応関係は、逆にしても良い。
手動モードやスピード設定モードを実施するか否かは、必要に応じて適宜選択すれば良い。
【符号の説明】
【0043】
図面中、1はカメラ、2はパーソナルコンピュータ(デコード手段,画像データ記憶手段,画像表示装置,画像データ処理手段,位置・姿勢情報取得手段,モード設定手段,移動量算出手段,変化量算出手段)、4はQRコード(2次元コード)、5はディスプレイ(表示手段)を示す。
【特許請求の範囲】
【請求項1】
撮像した画像のデータを出力するカメラと、
複数のロボットの型番情報に対応した3次元画像モデルのデータが記憶されている画像データ記憶手段と、
前記カメラにより撮像された画像データが入力されると共に、前記画像データ記憶手段に記憶されている画像データを取得可能である画像表示装置とを備え、
前記画像表示装置は、画像を表示する表示手段と、明暗セルで表わされるデータ領域内において4点の位置が特定可能であると共に、それらの内1点は基準点として他の3点との識別が可能であり、且つそれら4点間の位置関係が特定されている2次元コードの画像データをデコードするデコード手段と、前記表示手段に表示させる画像のデータを画像処理する画像データ処理手段とを備え、
前記画像データ処理手段は、
前記カメラが、ロボットの型番情報及び前記ロボットの3次元画像モデルを動作させるデモ用プログラムが記録されている2次元コードを撮像した場合に、前記2次元コードの画像データに含まれている前記4点の位置から、前記2次元コードの3次元空間における位置・姿勢情報を取得する位置・姿勢情報取得手段を備え、
前記カメラが前記2次元コードを撮像した場合、前記デコード手段がデコードして得られた前記ロボットの型番情報に対応する3次元画像モデルのデータを前記画像データ記憶手段より読み出し、
前記位置・姿勢情報取得手段が、前記基準点を3次元座標の原点とし、前記4点のうち基準点の両隣にある2点の一方に沿う方向をX軸,他方に沿う方向をY軸,XY平面上において前記原点に立つ法線をZ軸として定め、前記姿勢情報に対応する回転行列を求めると、前記回転行列を前記3次元画像モデルのデータに乗算して、前記X,Y,Zの各軸に前記3次元画像モデルの対応する3軸を適応させて前記表示手段に表示させ、
前記カメラにより撮像される前記2次元コードの位置・姿勢が変化すると、その変化に合わせて前記表示手段に表示させる前記3次元画像モデルの位置・姿勢を変化させ、
前記2次元コードに記録されている前記ロボットのデモ用プログラムに従い、前記3次元画像モデルを3次元空間表示で動作させることを特徴とするロボットシミュレーション画像表示システム。
【請求項2】
ユーザにより自動モード,手動モードの何れかを設定させるモード設定手段を備え、
前記画像データ処理手段は、
前記カメラが、初期の撮像位置から移動されたことによる移動量を、当該カメラにより撮像された前記2次元コードの画像データのサイズ変化より算出する移動量算出手段を備え、
前記自動モードが設定されると、前記2次元コードに記録されている前記ロボットのデモ用プログラムに従い前記3次元画像モデルを動作させ、
前記手動モードが設定されると、前記2次元コードの位置・姿勢の変化に合わせて前記表示手段に表示させる前記3次元画像モデルの位置・姿勢を変化させる処理を禁止すると共に、前記移動量算出手段により算出された前記カメラの移動量に比例させて、前記3次元画像モデルの手先表示位置を移動させることを特徴とする請求項1記載のロボットシミュレーション画像表示システム。
【請求項3】
ユーザによる動作速度可変モードの設定が可能であるモード設定手段を備え、
前記画像データ処理手段は、
前記カメラにより撮像された前記2次元コードの画像サイズが変化した場合の変化量を検出する変化量検出手段を備え、
前記動作速度可変モードが設定されると、前記2次元コードの位置・姿勢の変化に合わせて前記表示手段に表示させる前記3次元画像モデルの位置・姿勢を変化させる処理を禁止すると共に、前記2次元コードの画像サイズの変化量に比例させて、前記3次元画像モデルが前記デモ用プログラムに応じて動作する速度を変化させることを特徴とする請求項1又は2記載のロボットシミュレーション画像表示システム。
【請求項1】
撮像した画像のデータを出力するカメラと、
複数のロボットの型番情報に対応した3次元画像モデルのデータが記憶されている画像データ記憶手段と、
前記カメラにより撮像された画像データが入力されると共に、前記画像データ記憶手段に記憶されている画像データを取得可能である画像表示装置とを備え、
前記画像表示装置は、画像を表示する表示手段と、明暗セルで表わされるデータ領域内において4点の位置が特定可能であると共に、それらの内1点は基準点として他の3点との識別が可能であり、且つそれら4点間の位置関係が特定されている2次元コードの画像データをデコードするデコード手段と、前記表示手段に表示させる画像のデータを画像処理する画像データ処理手段とを備え、
前記画像データ処理手段は、
前記カメラが、ロボットの型番情報及び前記ロボットの3次元画像モデルを動作させるデモ用プログラムが記録されている2次元コードを撮像した場合に、前記2次元コードの画像データに含まれている前記4点の位置から、前記2次元コードの3次元空間における位置・姿勢情報を取得する位置・姿勢情報取得手段を備え、
前記カメラが前記2次元コードを撮像した場合、前記デコード手段がデコードして得られた前記ロボットの型番情報に対応する3次元画像モデルのデータを前記画像データ記憶手段より読み出し、
前記位置・姿勢情報取得手段が、前記基準点を3次元座標の原点とし、前記4点のうち基準点の両隣にある2点の一方に沿う方向をX軸,他方に沿う方向をY軸,XY平面上において前記原点に立つ法線をZ軸として定め、前記姿勢情報に対応する回転行列を求めると、前記回転行列を前記3次元画像モデルのデータに乗算して、前記X,Y,Zの各軸に前記3次元画像モデルの対応する3軸を適応させて前記表示手段に表示させ、
前記カメラにより撮像される前記2次元コードの位置・姿勢が変化すると、その変化に合わせて前記表示手段に表示させる前記3次元画像モデルの位置・姿勢を変化させ、
前記2次元コードに記録されている前記ロボットのデモ用プログラムに従い、前記3次元画像モデルを3次元空間表示で動作させることを特徴とするロボットシミュレーション画像表示システム。
【請求項2】
ユーザにより自動モード,手動モードの何れかを設定させるモード設定手段を備え、
前記画像データ処理手段は、
前記カメラが、初期の撮像位置から移動されたことによる移動量を、当該カメラにより撮像された前記2次元コードの画像データのサイズ変化より算出する移動量算出手段を備え、
前記自動モードが設定されると、前記2次元コードに記録されている前記ロボットのデモ用プログラムに従い前記3次元画像モデルを動作させ、
前記手動モードが設定されると、前記2次元コードの位置・姿勢の変化に合わせて前記表示手段に表示させる前記3次元画像モデルの位置・姿勢を変化させる処理を禁止すると共に、前記移動量算出手段により算出された前記カメラの移動量に比例させて、前記3次元画像モデルの手先表示位置を移動させることを特徴とする請求項1記載のロボットシミュレーション画像表示システム。
【請求項3】
ユーザによる動作速度可変モードの設定が可能であるモード設定手段を備え、
前記画像データ処理手段は、
前記カメラにより撮像された前記2次元コードの画像サイズが変化した場合の変化量を検出する変化量検出手段を備え、
前記動作速度可変モードが設定されると、前記2次元コードの位置・姿勢の変化に合わせて前記表示手段に表示させる前記3次元画像モデルの位置・姿勢を変化させる処理を禁止すると共に、前記2次元コードの画像サイズの変化量に比例させて、前記3次元画像モデルが前記デモ用プログラムに応じて動作する速度を変化させることを特徴とする請求項1又は2記載のロボットシミュレーション画像表示システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2010−179403(P2010−179403A)
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2009−24794(P2009−24794)
【出願日】平成21年2月5日(2009.2.5)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願日】平成21年2月5日(2009.2.5)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]