(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044796
(43)【公開日】2024-04-02
(54)【発明の名称】画像生成装置
(51)【国際特許分類】
B25J 9/22 20060101AFI20240326BHJP
G05B 19/42 20060101ALI20240326BHJP
【FI】
B25J9/22 A
G05B19/42 J
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022150544
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】000000262
【氏名又は名称】株式会社ダイヘン
(74)【代理人】
【識別番号】100115749
【弁理士】
【氏名又は名称】谷川 英和
(74)【代理人】
【識別番号】100121223
【弁理士】
【氏名又は名称】森本 悟道
(72)【発明者】
【氏名】鳴川 雄太
(72)【発明者】
【氏名】古川 直樹
(72)【発明者】
【氏名】檀上 梓紗
(72)【発明者】
【氏名】久保 正樹
(72)【発明者】
【氏名】北野 豊和
【テーマコード(参考)】
3C269
3C707
【Fターム(参考)】
3C269AB33
3C269BB09
3C269SA15
3C269SA17
3C269SA33
3C707AS11
3C707JU03
3C707KS17
3C707KS20
3C707KT03
3C707KT06
3C707LS20
3C707MT04
(57)【要約】
【課題】ロボットの配置検討を行うための画像生成装置を提供する。
【解決手段】画像生成装置3は、基準マーカ6と表示装置4の相対的な位置関係を用いて仮想ロボットの3次元モデルの表示画像を生成する画像生成部36と、表示画像を表示装置4に出力する出力部37と、登録指示の受け付けに応じて仮想ロボットのエンドエフェクタの位置及び姿勢を登録する登録部34と、移動指示の受け付けに応じて基準マーカ6と仮想ロボットの新たな位置関係を取得するロボット位置関係取得部35とを備え、画像生成部36は、移動指示に応じて、基準マーカ6と新たな位置関係となるように配置された、エンドエフェクタが登録された位置及び姿勢である仮想ロボットの3次元モデルの表示画像を生成する。このような構成により、エンドエフェクタの位置及び姿勢を固定した状態で、仮想ロボットの配置位置を検討することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
実ロボットに対応する仮想ロボットの3次元モデルが記憶される記憶部と、
実環境に存在する基準マーカと、画像を実環境の画像または実環境そのものに重ねて表示する表示装置との相対的な位置関係を取得するマーカ位置関係取得部と、
前記仮想ロボットの3次元モデルへの操作、前記仮想ロボットのエンドエフェクタの位置または位置及び姿勢の登録指示、及び前記仮想ロボットの移動指示を受け付ける受付部と、
前記仮想ロボットの3次元モデルと前記相対的な位置関係とに基づいて、前記基準マーカと所定の位置関係となるように配置された前記仮想ロボットの3次元モデルを、受け付けられた操作に応じて表示するための表示画像を生成する画像生成部と、
前記表示画像を前記表示装置に出力する出力部と、
登録指示が受け付けられた際の前記仮想ロボットの3次元モデルにおけるエンドエフェクタの位置または位置及び姿勢を登録する登録部と、
移動指示の受け付けに応じて、前記基準マーカと前記仮想ロボットとの新たな位置関係を取得するロボット位置関係取得部と、を備え、
前記画像生成部は、前記ロボット位置関係取得部によって新たな位置関係が取得された場合に、前記基準マーカと新たな位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された位置または位置及び姿勢である仮想ロボットの3次元モデルを表示するための表示画像を生成する、画像生成装置。
【請求項2】
前記画像生成部は、前記ロボット位置関係取得部によって新たな位置関係が取得された際に、前記基準マーカと新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された位置または位置及び姿勢である状態で各関節の角度を逆運動学によって算出することができる場合に、当該新たな位置関係に応じた表示画像を生成し、そうでない場合に、当該新たな位置関係に応じた表示画像を生成しない、請求項1記載の画像生成装置。
【請求項3】
前記出力部は、前記基準マーカと新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された位置または位置及び姿勢である状態で各関節の角度を逆運動学によって算出することができない場合に、当該新たな位置関係に移動できない旨を出力する、請求項2記載の画像生成装置。
【請求項4】
前記画像生成部は、前記登録部によってエンドエフェクタの2以上の位置または位置及び姿勢が登録され、前記ロボット位置関係取得部によって新たな位置関係が取得された場合に、前記基準マーカと新たな位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された2以上の位置または位置及び姿勢である2以上の仮想ロボットの3次元モデルを表示するための表示画像を生成する、請求項1記載の画像生成装置。
【請求項5】
前記ロボット位置関係取得部は、前記登録部によってエンドエフェクタの2以上の位置または位置及び姿勢が登録された場合に、所定間隔で設定された複数の新たな位置関係を取得し、
前記画像生成部は、前記複数の新たな位置関係のうち、前記仮想ロボットのエンドエフェクタが登録された2以上の位置または位置及び姿勢である各状態で各関節の角度を逆運動学によって算出することができる新たな位置関係を特定し、前記基準マーカと特定した位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された2以上の位置または位置及び姿勢である2以上の仮想ロボットの3次元モデルを表示するための表示画像を生成する、請求項2または請求項3記載の画像生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エンドエフェクタが登録された位置または位置及び姿勢である仮想ロボットの3次元モデルを表示するための表示画像を生成する画像生成装置に関する。
【背景技術】
【0002】
従来、ロボットの導入時における配置検討では、カタログスペックを参考にしていた。また、ロボットの最適配置を出力できるシミュレータも用いられていた(特許文献1参照)。このシミュレータでは、ロボット以外にワークや周辺機器を設置することができ、さらに実環境とシミュレータ内の仮想環境との誤差を考慮した最適配置検討を行うことができる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、シミュレータを用いる場合には、ロボット以外にワークや周辺機器などの3次元モデルを準備する必要があり、コストが増大するという問題があった。また、実環境と仮想環境との誤差を考慮した配置検討において、想定以上の誤差があった場合には、実環境でのロボットの動作時に周辺機器に干渉する可能性があった。そのため、ロボットの配置検討を、低コストかつ高い精度で行うことが要望されていた。
【0005】
本発明は、上記状況に応じてなされたものであり、低コストかつ高い精度でロボットの配置検討を行うための画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の一態様による画像生成装置は、実ロボットに対応する仮想ロボットの3次元モデルが記憶される記憶部と、実環境に存在する基準マーカと、画像を実環境の画像または実環境そのものに重ねて表示する表示装置との相対的な位置関係を取得するマーカ位置関係取得部と、仮想ロボットの3次元モデルへの操作、仮想ロボットのエンドエフェクタの位置または位置及び姿勢の登録指示、及び仮想ロボットの移動指示を受け付ける受付部と、仮想ロボットの3次元モデルと相対的な位置関係とに基づいて、基準マーカと所定の位置関係となるように配置された仮想ロボットの3次元モデルを、受け付けられた操作に応じて表示するための表示画像を生成する画像生成部と、表示画像を表示装置に出力する出力部と、登録指示が受け付けられた際の仮想ロボットの3次元モデルにおけるエンドエフェクタの位置または位置及び姿勢を登録する登録部と、移動指示の受け付けに応じて、基準マーカと仮想ロボットとの新たな位置関係を取得するロボット位置関係取得部と、を備え、画像生成部は、ロボット位置関係取得部によって新たな位置関係が取得された場合に、基準マーカと新たな位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された位置または位置及び姿勢である仮想ロボットの3次元モデルを表示するための表示画像を生成する、ものである。
【発明の効果】
【0007】
本発明の一態様による画像生成装置によれば、仮想ロボットの3次元モデルにおけるエンドエフェクタの位置または位置及び姿勢を固定した状態で、仮想ロボットの配置位置を変更した仮想ロボットの表示画像を実環境と一緒に見ることができるようになる。そのため、ロボットの配置検討を低コストかつ高精度で実現することができる。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施の形態による情報処理システムの構成を示す模式図
【
図2】同実施の形態による画像生成装置の動作を示すフローチャート
【
図3】同実施の形態による画像生成装置の動作を示すフローチャート
【
図4】同実施の形態における移動前の仮想ロボットを示す図
【
図5】同実施の形態における移動後の仮想ロボットを示す図
【
図6】同実施の形態における仮想ロボットの移動先の複数の候補を示す図
【発明を実施するための形態】
【0009】
以下、本発明による画像生成装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態による画像生成装置は、仮想ロボットのエンドエフェクタの位置及び姿勢を登録し、エンドエフェクタが登録した位置及び姿勢である仮想ロボットの3次元モデルを、新たな配置位置に表示する表示画像を生成するものである。
【0010】
図1は、本実施の形態による情報処理システム100の構成を示す模式図である。本実施の形態による情報処理システム100は、画像生成装置3と表示装置4とを備える。なお、画像生成装置3と表示装置4とは、例えば、有線または無線で接続されていてもよい。
【0011】
操作対象の仮想ロボットは、仮想環境に存在する3次元モデルによって構成されるものであり、実ロボットに対応したものである。すなわち、仮想ロボットは、3次元モデルで構成されている以外は、実ロボットと同じであり、例えば、実ロボットと同じサイズ及び構成であってもよく、実ロボットと同様に、複数のアームの関節の角度などを変更可能になっていてもよい。その仮想ロボットの先端には、エンドエフェクタが装着されている。そのエンドエフェクタは、3次元モデルで構成されている以外は、実環境のエンドエフェクタと同じであり、例えば、実環境のエンドエフェクタと同じサイズ及び構成であってもよく、実環境のエンドエフェクタが可動箇所を有している場合には、その実環境のエンドエフェクタと同様に、可動箇所を有していてもよい。エンドエフェクタは、例えば、溶接トーチや、搬送対象を把持するための把持部を有するハンド、搬送対象の載置されるハンド、組み立てや塗装などの機能を有するツールなどであってもよい。
【0012】
実ロボットは、通常、産業用ロボットであり、モータにより駆動される関節によって連結された複数のアーム(リンク)を有するマニピュレータであってもよい。実ロボットは、例えば、垂直多関節ロボットであってもよく、水平多関節ロボットであってもよい。また、実ロボットは、例えば、搬送ロボットであってもよく、溶接ロボットであってもよく、組立ロボットであってもよく、塗装ロボットであってもよく、または、その他の用途のロボットであってもよい。なお、実ロボットは、一例として、実環境に存在するロボットである。実環境とは、実空間の環境のことである。
【0013】
画像生成装置3は、仮想ロボットのエンドエフェクタの位置及び姿勢を登録し、仮想ロボットの移動指示の受け付けに応じて基準マーカ6と仮想ロボットとの新たな位置関係を取得すると、基準マーカ6と新たな位置関係となるように配置された仮想ロボットであって、エンドエフェクタが登録された位置及び姿勢となる仮想ロボットの3次元モデルを表示するための表示画像を生成するものである。このようにして、手先の位置や姿勢を固定した状態で、仮想ロボットの配置位置を検討することができる。例えば、仮想ロボットの手先を所望の位置や姿勢とした際に周辺機器などとの干渉が発生している場合には、その手先の位置や姿勢を固定した状態で、干渉の発生しない仮想ロボットの配置位置を検討することができる。画像生成装置3の詳細については後述する。
【0014】
基準マーカ6は、2次元の所定の画像である。基準マーカ6は、例えば、ARマーカであってもよく、QRコード(登録商標)であってもよく、2次元のあらかじめ形状の決まっているその他の画像であってもよい。基準マーカ6のサイズは、例えば、あらかじめ決まっていてもよい。本実施の形態では、基準マーカ6がシート6aに表示されている場合について主に説明する。基準マーカ6は、例えば、紙や樹脂製のシート6aに印刷されていてもよい。
【0015】
基準マーカ6と仮想ロボットの3次元モデルとの所定の位置関係は、例えば、あらかじめ決められた位置関係であってもよく、仮想ロボットを操作する作業者等が変更することができる位置関係であってもよい。所定の位置関係は、例えば、仮想ロボットの3次元モデルが基準マーカ6の位置に表示される位置関係であってもよく、仮想ロボットの3次元モデルが基準マーカ6と異なる位置に表示される位置関係であってもよい。前者の場合には、画像生成装置3は、基準マーカ6の位置に仮想ロボットの3次元モデルを配置してもよい。仮想ロボットの3次元モデルが基準マーカ6の位置に配置されるとは、基準マーカ6の位置に実ロボットを配置した状況が仮想的に再現されるように仮想ロボットの3次元モデルが仮想空間に配置されることであってもよく、例えば、仮想ロボットの3次元モデルの基端側の端面(例えば、床面などへの取り付け面)が、基準マーカ6の面と一致するように仮想ロボットの3次元モデルが配置されることであってもよい。仮想ロボットの3次元モデルが基準マーカ6と異なる位置に配置されるとは、例えば、基準マーカ6の隣に仮想ロボットの3次元モデルが配置されることであってもよい。
【0016】
表示装置4は、画像を実環境の画像または実環境そのものに重ねて表示する。すなわち、仮想ロボットを操作する作業者は、表示装置4によって、実環境と仮想環境の画像との両方を見ることができる。表示装置4は、仮想ロボットを操作する作業者が頭部に装着する装着型の表示装置であってもよく、または、タブレット端末などの可搬型の情報処理端末である表示装置であってもよい。装着型の表示装置は、例えば、ヘッドマウントディスプレイであってもよい。また、表示装置4は、例えば、透過型ディスプレイを有するものであってもよい。この場合には、表示装置4は、画像を実環境そのものに重ねて表示することになる。透過型ディスプレイを有する装着型の表示装置4としては、例えば、HoloLens(登録商標)等が知られている。このような透過型ディスプレイを有する表示装置4は、複合現実(MR:Mixed Reality)を実現するための表示装置であると考えることもできる。また、表示装置4は、例えば、非透過型ディスプレイを有するものであってもよい。この場合には、表示装置4は、画像を実環境の画像に重ねて表示することになる。したがって、非透過型ディスプレイを有する表示装置4は、実環境を撮影するためのカメラを有しているか、または、実環境を撮影するカメラと接続されていることが好適である。カメラで撮影された実環境の画像は、リアルタイムで非透過型ディスプレイに表示される。非透過型ディスプレイを有する装着型の表示装置4としては、例えば、Oculus Quest等が知られている。このような非透過型ディスプレイを有する表示装置4は、拡張現実(AR:Augmented Reality)を実現するための表示装置であると考えることもできる。タブレット端末などの可搬型の情報処理端末である表示装置4は、例えば、カメラとディスプレイとを有しており、カメラで撮影した実環境の画像をリアルタイムでティスプレイに表示してもよい。本実施の形態では、表示装置4が透過型のディスプレイを有するヘッドマウントディスプレイである場合について主に説明する。
【0017】
図1で示されるように、画像生成装置3は、記憶部31と、マーカ位置関係取得部32と、受付部33と、登録部34と、ロボット位置関係取得部35と、画像生成部36と、出力部37とを備える。
【0018】
記憶部31では、仮想ロボットの3次元モデルが記憶される。仮想ロボットの3次元モデルは、例えば、導入を検討している実ロボットに対応するものであってもよい。導入の検討対象が複数存在する場合には、例えば、複数の仮想ロボットの3次元モデルが記憶部31で記憶されていてもよい。この場合には、複数の仮想ロボットの3次元モデルを適宜、切り替えながら表示画像が生成されてもよい。なお、仮想ロボットの3次元モデルの手先には、エンドエフェクタが装着されているものとする。また、3次元モデル以外の情報が記憶部31で記憶されてもよい。例えば、教示データ等が記憶部31で記憶されてもよい。
【0019】
記憶部31に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が記憶部31で記憶されるようになってもよく、通信回線等を介して送信された情報が記憶部31で記憶されるようになってもよい。記憶部31は、不揮発性の記録媒体によって実現されることが好適であるが、揮発性の記録媒体によって実現されてもよい。記録媒体は、例えば、半導体メモリや磁気ディスク、光ディスクなどであってもよい。
【0020】
マーカ位置関係取得部32は、実環境に存在する基準マーカ6と表示装置4との相対的な位置関係を取得する。基準マーカ6と表示装置4との相対的な位置関係を取得するとは、例えば、基準マーカ6のローカル座標系であるマーカ座標系と、表示装置4のローカル座標系である表示座標系との相対的な位置関係を取得することであってもよい。この相対的な位置関係は、例えば、両座標系間の変換を示す同次変換行列によって示されてもよい。マーカ位置関係取得部32が、この相対的な位置関係を取得する方法は問わない。マーカ位置関係取得部32は、例えば、表示装置4のカメラで撮影された画像を受け取り、その画像に含まれる基準マーカ6の3以上の特徴点を用いて、マーカ座標系と表示座標系との間の変換を示す同次変換行列を取得してもよい。その同次変換行列の取得は、表示装置4において行われてもよい。この場合には、マーカ位置関係取得部32は、マーカ座標系と表示座標系との間の変換を示す同次変換行列を表示装置4から受け付けてもよい。すなわち、マーカ位置関係取得部32による相対的な位置関係の取得は、相対的な位置関係の受け付けであってもよい。
【0021】
受付部33は、仮想ロボットの3次元モデルへの操作を受け付ける。また、受付部33は、仮想ロボットのエンドエフェクタの位置及び姿勢の登録指示を受け付ける。登録指示は、例えば、仮想ロボットの3次元モデルの表示画像において、エンドエフェクタが所望の位置や姿勢となっている際に受け付けられてもよい。また、受付部33は、仮想ロボットの移動指示を受け付ける。移動指示は、例えば、現在の仮想ロボットの配置位置においてエンドエフェクタが登録された位置及び姿勢となった際に生じている周辺機器などとの干渉を解消するために入力されてもよく、その他の理由に応じて入力されてもよい。
【0022】
3次元モデルに対する操作は、例えば、3次元モデルの少なくとも一部の位置や姿勢を変化させるための操作であってもよい。操作の指示の受け付けは、例えば、実環境に存在するティーチングペンダントなどの入力デバイスを介して行われてもよく、表示装置4のディスプレイに表示された仮想ボタンや仮想ティーチングペンダントなどの仮想入力インターフェースを介して行われてもよい。仮想入力インターフェースは、例えば、エアタップなどの動作に応じて表示装置4のディスプレイに表示され、作業者の指やポインティングデバイスによってボタン等が選択された場合に、そのボタン等の操作に応じた入力が表示装置4から受付部33に渡されてもよい。また、作業者の手などのジェスチャによって、仮想ロボットの3次元モデルの少なくとも一部(例えば、エンドエフェクタなどの手先など)の位置や姿勢を変更できてもよい。この場合には、例えば、作業者がディスプレイに表示された3次元モデルを手でつまむ動作(ホールド動作)を行うことによって、その手でつまんだ部分が操作の対象として特定され、その手の位置や姿勢を変化させることによって、特定された対象の位置や姿勢を変化させる操作が行われ、そのつまむ動作を終了させることによって、特定された対象への操作が終了されてもよい。この場合には、例えば、操作の対象を示す情報(例えば、3次元モデルにおける位置や部分を示す情報)と、操作の内容を示す情報(例えば、位置の変更や姿勢の変更などを示す情報)とが表示装置4から受付部33に渡されてもよく、または、表示装置4において取得されたハンドトラッキングの結果が受付部33に渡され、画像生成装置3において、操作の対象や操作の内容が特定されてもよい。表示装置4において操作の対象を示す情報と操作の内容を示す情報とが取得される場合には、表示装置4は、画像生成装置3で保持されている、仮想空間における仮想ロボットの現時点の3次元モデルの情報にアクセス可能であってもよい。なお、作業者の手を用いた操作が行われる場合には、表示装置4はカメラを有しており、そのカメラで撮影された作業者の手のハンドトラッキングが行われることによって、作業者の手が、ディスプレイ上のどの位置に存在するのかが特定されてもよい。また、作業者の手などのジェスチャに応じた3次元モデルの表示画像への操作を、3次元仮想空間における3次元モデルの位置や姿勢の変化に変換する方法はすでに公知であり、その詳細な説明を省略する。
【0023】
仮想ロボットのエンドエフェクタの位置及び姿勢の登録指示の受け付けは、例えば、実環境の入力デバイスを介して行われてもよく、表示装置4のディスプレイに表示された仮想入力インターフェースを介して行われてもよい。また、仮想ロボットの移動指示の受け付けは、例えば、実環境の入力デバイスや、表示装置4のディスプレイに表示された仮想入力インターフェースを介して行われてもよく、または、ジェスチャ操作によって仮想ロボットの3次元モデルを移動させることによって行われてもよい。入力デバイスや仮想入力インターフェースを介して受け付けられる仮想ロボットの移動指示は、例えば、移動の方向や移動の程度を数値で示すものであってもよい。この場合には、例えば、移動の方向及び程度を示すベクトルに応じた数値が受け付けられてもよい。ジェスチャ操作によって受け付けられる仮想ロボットの移動指示は、例えば、仮想ロボットの3次元モデルの基端側の部分を手でつまむ動作と、その手の位置を変化させる動作と、そのつまむ動作を終了させる動作とを含んでいてもよい。受け付けられた移動指示は、結果として仮想ロボットの配置位置がどのように変化するのかを示す情報であれば特に限定されないが、例えば、移動前のロボット座標系と移動後のロボット座標系との間の変換を示す同次変換行列であってもよく、その他の移動内容を示す情報であってもよい。
【0024】
受付部33は、上記した以外の情報や指示などを受け付けてもよい。受付部33は、例えば、入力デバイスや表示装置4から入力された情報を受け付けてもよく、有線または無線の通信回線を介して送信された情報を受信してもよい。なお、受付部33は、受け付けを行うためのデバイス(例えば、入力デバイスや通信デバイスなど)を含んでもよく、または含まなくてもよい。また、受付部33は、ハードウェアによって実現されてもよく、または所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0025】
登録部34は、受付部33によって登録指示が受け付けられた際の仮想ロボットの3次元モデルにおけるエンドエフェクタの位置及び姿勢を登録する。エンドエフェクタの位置及び姿勢とは、例えば、エンドエフェクタの一部の位置及び姿勢であってもよい。例えば、エンドエフェクタが溶接トーチである場合には、エンドエフェクタの位置及び姿勢は、溶接トーチの先端の位置、及び溶接トーチの先端部分の姿勢であってもよい。また、エンドエフェクタの位置は、例えば、仮想ロボットのTCP(Tool Center Point)の位置であってもよい。エンドエフェクタの位置及び姿勢は、例えば、ワールド座標系における位置及び姿勢であってもよい。ワールド座標系は、一例として、マーカ座標系であってもよい。登録部34は、例えば、ロボット座標系におけるエンドエフェクタの位置及び姿勢を、画像生成部36から取得することができる。また、ロボット座標系と、マーカ座標系などのワールド座標系との位置関係は、例えば、あらかじめ決められている位置関係、またはロボット位置関係取得部35によって取得された位置関係となる。したがって、登録部34は、それらの情報を用いて、マーカ座標系などのワールド座標系におけるエンドエフェクタの位置及び姿勢を特定することができる。エンドエフェクタの位置は、例えば、所定の座標系における座標値で示されてもよい。また、エンドエフェクタの姿勢は、例えば、ロール、ピッチ、ヨー角や、オイラー角などによって示されてもよい。また、登録部34によって登録される位置や姿勢の情報は、結果としてエンドエフェクタの位置及び姿勢を特定できる情報であれば、どのようなものであってもよい。エンドエフェクタの位置及び姿勢を登録するとは、例えば、位置や姿勢を示す情報を記憶部に蓄積することであってもよい。その記憶部は、例えば、記憶部31であってもよく、その他の記録媒体であってもよい。本実施の形態では、後者の場合について主に説明する。
【0026】
ロボット位置関係取得部35は、受付部33による移動指示の受け付けに応じて、基準マーカ6と仮想ロボットとの新たな位置関係を取得する。基準マーカ6と仮想ロボットとの新たな位置関係は、例えば、ワールド座標系における仮想ロボットの移動指示に応じた移動後の配置位置を示す情報であってもよい。移動前後の仮想ロボットの位置関係(例えば、移動前後の仮想ロボットのロボット座標系に関する同次変換行列など)は、移動指示に基づいて特定することができる。また、マーカ座標系などのワールド座標系における移動前の仮想ロボットのロボット座標系の位置は既知である。そのため、それらの情報を用いて、ロボット位置関係取得部35は、マーカ座標系などのワールド座標系における移動後の仮想ロボットのロボット座標系の位置を特定することができる。すなわち、ロボット位置関係取得部35は、基準マーカ6と仮想ロボットとの新たな位置関係を取得することができる。この新たな位置関係は、一例として、マーカ座標系と、移動後の配置位置における仮想ロボットのロボット座標系との間の変換を示す同次変換行列であってもよい。
【0027】
画像生成部36は、記憶部31で記憶されている仮想ロボットの3次元モデルと、マーカ位置関係取得部32によって取得された相対的な位置関係とに基づいて、基準マーカ6と所定の位置関係となるように配置された仮想ロボットの3次元モデルを、受付部33によって受け付けられた操作に応じて表示するための表示画像を生成する。また、画像生成部36は、ロボット位置関係取得部35によって新たな位置関係が取得された場合に、基準マーカ6と新たな位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された位置及び姿勢である仮想ロボットの3次元モデルを表示するための表示画像を生成する。
【0028】
基準マーカ6と表示装置4との相対的な位置関係は、マーカ位置関係取得部32によって取得される。また、基準マーカ6と仮想ロボットの3次元モデルとの移動前の位置関係、すなわち初期の位置関係は決まっており、移動指示に応じた移動後の位置関係、すなわち新たな位置関係は、ロボット位置関係取得部35によって取得される。したがって、これらの情報を用いて、画像生成部36は、仮想ロボットの3次元モデルと表示装置4との相対的な位置関係を特定することができる。そのため、画像生成部36は、仮想空間において仮想ロボットの3次元モデルを配置し、その3次元モデルに対して、初期の位置関係または新たな位置関係となる表示装置4の位置及び向きを特定することができる。そして、画像生成部36は、仮想空間における仮想ロボットの3次元モデルを、表示装置4の位置及び向きを基準としてレンダリングすることによって、3次元モデルを表示するための2次元の表示画像を生成することができる。なお、仮想ロボットの各関節の角度は、操作が行われていない場合には初期値となり、操作が行われた場合には操作後の値となる。また、エンドエフェクタが登録された位置及び姿勢である仮想ロボットの表示画像を生成する際には、各関節の角度は、そのエンドエフェクタの登録された位置及び姿勢に応じたものとなる。登録部34によって登録されたエンドエフェクタの位置及び姿勢は、例えば、マーカ座標系などのワールド座標系における位置及び姿勢である。また、マーカ座標系などのワールド座標系における仮想ロボットの新たな配置位置は、ロボット位置関係取得部35によって取得された新たな位置関係によって特定することができる。したがって、画像生成部36は、仮想ロボットの新たな配置位置のローカル座標系(例えば、ロボット座標系)におけるエンドエフェクタの位置及び姿勢を特定することができ、それに応じた各関節の角度を取得することができる。操作後の各関節の角度や、エンドエフェクタの登録された位置及び姿勢に応じた各関節の角度は、例えば、実ロボットと同様に、仮想ロボットの3次元モデルにおける手先の位置及び姿勢を用いた逆運動学によって算出されてもよい。仮想ロボットが操作されると、仮想空間における3次元モデルの形状が、それに応じて変更されることになる。また、表示装置4の位置や向きが実環境において変化した場合には、それに応じて仮想空間上の視点の位置や方向が変更されることになる。そして、その変更後にレンダリングが行われることによって、操作後の3次元モデルの表示画像や、表示装置4の位置や向きの変化後の3次元モデルの表示画像が生成されることになる。なお、画像生成部36は、仮想ロボットの3次元モデルの表示画像が表示装置4のディスプレイに表示された際に、その表示画像の大きさが実環境と整合するように、表示画像を生成するものとする。すなわち、表示装置4のディスプレイに表示された仮想ロボットの3次元モデルと、その3次元モデルと同じ相対的な位置関係となるように実環境に配置された実ロボットとが、表示装置4を介して見たときに同じ大きさになるように、表示画像が生成されることになる。
【0029】
なお、画像生成部36は、ロボット位置関係取得部35によって新たな位置関係が取得された際に、基準マーカ6と新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された位置及び姿勢である状態で各関節の角度を逆運動学によって算出することができる場合に、新たな位置関係に応じた表示画像を生成し、そうでない場合に、新たな位置関係に応じた表示画像を生成しなくてもよい。仮想ロボットの各関節の角度を逆運動学によって算出できないとは、例えば、逆運動学の計算において解のない場合であってもよく、または、逆運動学の計算において解はあるが、その解の少なくともいずれかが、あらかじめ設定されている各関節の動作範囲を超えている場合であってもよい。各関節の動作範囲は、例えば、仮想ロボットの筐体などの干渉を防止するために設けられてもよく、ケーブルの断線防止や特異点の回避などのために設けられてもよい。
【0030】
また、受け付けられた操作に応じて仮想ロボットを操作できないこともあり得る。例えば、仮想ロボットの手先を、移動可能な範囲を超えて移動させる操作または回転可能な範囲を超えて回転させる操作が受け付けられることもある。このような場合には、画像生成部36は、その操作に応じた表示画像を生成しなくてもよく、または、可能な範囲内で移動または回転を行った仮想ロボット等の3次元モデルの表示画像を生成してもよい。
【0031】
なお、仮想ロボットは、実環境に配置された基準マーカ6と所定の位置関係(例えば、初期の位置関係、または取得された位置関係)となるように表示されることになる。したがって、表示装置4の向きが変化されたとしても、実環境における仮想ロボットの3次元モデルの表示位置は変化しないことになる。また、画像生成部36によって生成される表示画像は、例えば、背後の画像を見ることができない不透明な画像であってもよく、背後の画像も見ることができる半透明の画像であってもよい。
【0032】
出力部37は、画像生成部36によって生成された表示画像を表示装置4に出力する。出力部37は、表示画像を出力する際に、表示画像のみを出力してもよい。この場合には、表示装置4において、実環境の画像または実環境そのものに表示画像が重ねられて表示されることになる。一方、表示装置4が非透過型ディスプレイを有する場合であって、表示装置4で撮影された実環境の画像が画像生成装置3で受け付けられている場合には、実環境の画像と表示画像とが合成された結果が、表示装置4に出力されてもよい。この合成は、例えば、画像生成装置3が有する図示しない合成部によって行われてもよい。
【0033】
基準マーカ6と異なる位置に仮想ロボットの3次元モデルが表示される場合には、例えば、
図1で示されるように、基準マーカ6の隣に仮想ロボットの3次元モデル10が表示されてもよい。
図1における基準マーカ6及び仮想ロボットの3次元モデル10は、仮想ロボットを操作する作業者が表示装置4を介して見ている状況を模式的に示したものである。
【0034】
なお、仮想ロボットの3次元モデルを表示することや、その仮想ロボットの3次元モデルを表示デバイスの仮想入力インターフェースや作業者のジェスチャ等を用いて操作することなどについては、例えば、次の文献1~3で示されるようにすでに公知であり、その詳細な説明を省略する。
文献1:特開2017-100234号公報
文献2:特開2020-055075号公報
文献3:特開2020-069538号公報
【0035】
また、出力部37は、基準マーカ6と新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された位置及び姿勢である状態で各関節の角度を逆運動学によって算出することができない場合に、新たな位置関係に移動できない旨を出力してもよい。なお、新たな位置関係に移動できない旨の出力は、例えば、新たな位置関係に対応する新たな配置位置に移動できない旨の出力であってもよい。この出力は、例えば、表示装置4への画像や音声の出力であってもよく、他の表示デバイスへの表示であってもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、出力部37は、出力を行うデバイス(例えば、表示デバイスやスピーカなど)を含んでもよく、または含まなくてもよい。また、出力部37は、ハードウェアによって実現されてもよく、または、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0036】
次に、画像生成装置3の動作について
図2のフローチャートを用いて説明する。
(ステップS101)画像生成部36は、仮想ロボットの3次元モデルの表示画像を生成し、出力部37は、生成された表示画像を表示装置4に出力する。また、受付部33は、表示された仮想ロボットのエンドエフェクタに対する操作を受け付けてもよい。操作が受け付けられた際には、その操作に応じてエンドエフェクタの位置や姿勢の変更された仮想ロボットの3次元モデルの表示画像が生成されて出力されてもよい。なお、この処理の詳細については、
図3のフローチャートを用いて後述する。
【0037】
(ステップS102)受付部33は、登録指示を受け付けたかどうか判断する。そして、登録指示を受け付けた場合には、ステップS103に進み、そうでない場合には、ステップS101に戻る。
【0038】
(ステップS103)登録部34は、その時点の仮想ロボットの3次元モデルにおけるエンドエフェクタの位置及び姿勢を登録する。
【0039】
(ステップS104)受付部33は、仮想ロボットの移動指示を受け付けたかどうか判断する。そして、移動指示を受け付けた場合には、ステップS105に進み、そうでない場合には、移動指示を受け付けるまでステップS104の処理を繰り返す。
【0040】
(ステップS105)ロボット位置関係取得部35は、移動指示の受け付けに応じて、基準マーカ6と移動後の仮想ロボットとの新たな位置関係を取得する。
【0041】
(ステップS106)画像生成部36は、新たな位置関係に応じた表示画像を生成するかどうか判断する。画像生成部36は、例えば、基準マーカ6と新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された位置及び姿勢である状態で、各関節の角度を逆運動学によって算出することができる場合に、新たな位置関係に応じた表示画像を生成すると判断してステップS107に進み、そうでない場合に、新たな位置関係に応じた表示画像を生成しないと判断してステップS104に戻ってもよい。ステップS104に戻る際に、出力部37は、例えば、仮想ロボットを新たな位置関係に移動できない旨を出力してもよい。
【0042】
(ステップS107)画像生成部36は、基準マーカ6と、ステップS105で取得された新たな位置関係となるように配置された仮想ロボットであって、エンドエフェクタが登録された位置及び姿勢である仮想ロボットの3次元モデルを表示するための表示画像を生成する。なお、この処理の詳細については、
図3のフローチャートを用いて後述する。
【0043】
(ステップS108)受付部33は、一連の処理に関する終了の指示を受け付けたかどうか判断する。そして、終了の指示を受け付けた場合には、ステップS101に戻り、そうでない場合には、ステップS109に進む。
【0044】
(ステップS109)受付部33は、仮想ロボットの移動指示を受け付けたかどうか判断する。そして、移動指示を受け付けた場合には、ステップS105に戻り、そうでない場合には、ステップS107に戻る。
【0045】
なお、
図2のフローチャートでは、仮想ロボットの初期位置においてのみエンドエフェクタの位置や姿勢を登録できる場合について示しているが、仮想ロボットの移動後の配置位置においても、エンドエフェクタの位置や姿勢を登録できるようにしてもよい。また、
図2のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。また、
図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0046】
次に、
図3のフローチャートを用いて、
図2のフローチャートにおける仮想ロボットの表示画像の生成の処理(ステップS101,S107)について説明する。なお、ステップS101では、操作や表示の対象となるのは基準マーカ6と初期の位置関係となるように配置された仮想ロボットの3次元モデルであり、ステップS107では、操作や表示の対象となるのは基準マーカ6と新たな位置関係となるように配置された仮想ロボットの3次元モデルであるが、
図3では、両者を特に区別しないで説明する。
【0047】
(ステップS201)受付部33は、3次元モデルへの操作を受け付けたかどうか判断する。そして、操作を受け付けた場合には、ステップS203に進み、そうでない場合には、ステップS202に進む。
【0048】
(ステップS202)画像生成部36は、表示画像の生成を行うかどうか判断する。そして、表示画像を生成する場合には、ステップS203に進み、そうでない場合には、
図2のフローチャートに戻る。なお、画像生成部36は、例えば、表示画像の生成を行うと定期的に判断してもよい。この判断が行われることによって、例えば、操作が行われていなくても、表示装置4の位置や向きが変更された場合には、その変更後の位置や向きに応じた表示画像が表示装置4で表示されるようになる。
【0049】
(ステップS203)マーカ位置関係取得部32は、基準マーカ6と表示装置4との相対的な位置関係を取得する。
【0050】
(ステップS204)画像生成部36は、記憶部31で記憶されている仮想ロボットの3次元モデル、及びステップS203で取得された相対的な位置関係を用いて、3次元モデルを表示するための表示画像を生成する。また、操作が受け付けられた場合には、その操作に応じて変化させた後の3次元モデルを表示するための表示画像が生成されることになる。また、ステップS107において表示画像を生成する際には、エンドエフェクタが登録された位置及び姿勢である仮想ロボットの3次元モデルを表示するための表示画像が生成されることになる。また、表示装置4の位置や向きが変更された場合には、その変更後の表示装置4の位置や向きに応じた3次元モデルの表示画像が生成されることになる。なお、仮想ロボットの3次元モデルを表示するための表示画像は、基準マーカ6と初期の位置関係または新たな位置関係となるように生成されるものとする。
【0051】
(ステップS205)出力部37は、生成された表示画像を表示装置4に出力する。そして、
図2のフローチャートに戻る。この出力に応じて、例えば、仮想ロボットの3次元モデルが表示されることになる。
【0052】
次に、本実施の形態による画像生成装置3の動作について、具体例を用いて説明する。まず、作業者は、導入予定の実ロボットを配置する位置に、基準マーカ6の表示されたシート6aを配置する。次に、作業者は、頭部装着型の表示装置4を頭部に装着し、画像生成装置3の処理を開始させる。すると、画像生成装置3は、仮想ロボットの表示画像を生成して表示装置4に出力する(ステップS101)。具体的には、画像生成部36は、表示画像の生成を行うと判断し、マーカ位置関係取得部32に、基準マーカ6と表示装置4との相対的な位置関係を取得する旨の指示を渡す(ステップS202)。その指示に応じて、マーカ位置関係取得部32は相対的な位置関係を取得して画像生成部36に渡す(ステップS203)。相対的な位置関係を受け取ると、画像生成部36は、その相対的な位置関係と、記憶部31で記憶されている仮想ロボットの3次元モデルとを用いて、あらかじめ決められた初期位置及び初期姿勢で、その3次元モデルを表示するための表示画像を生成して出力部37に渡す(ステップS204)。出力部37は、その受け取った表示画像を表示装置4に出力する(ステップS205)。その結果、作業者は、実空間に重ねて配置された仮想ロボットを見ることができる。
【0053】
その後、作業者は、ティーチングペンダントなどの入力デバイスを用いた操作や、ジェスチャ操作などによって、
図4で示されるように、表示されたエンドエフェクタである溶接トーチの先端部分が所望の位置及び姿勢となるように移動させる(ステップS201、S203~S205)。なお、
図4では、基準マーカ6と仮想ロボットの3次元モデル10以外の実環境に配置されているワークや周辺機器などの表示は省略している。後述する
図5についても同様である。この時点において、作業者が、登録指示を入力デバイスや仮想入力インターフェースを介して入力すると、その入力は受付部33で受け付けられ、登録部34に渡される(ステップS102)。そして、登録部34は、その時点のエンドエフェクタの位置及び姿勢を取得して図示しない記録媒体に蓄積する(ステップS103)。
【0054】
次に、作業者は、入力デバイスや仮想入力インターフェース、またはジェスチャ操作などによって、表示された仮想ロボットの移動指示を入力する。この移動指示は、例えば、エンドエフェクタが所望の位置及び姿勢である仮想ロボットの3次元モデル10が、周辺機器等と干渉している際に、その干渉を解消するために入力されてもよい。その移動指示は受付部33で受け付けられ、ロボット位置関係取得部35に渡される(ステップS104)。移動指示を受け取ると、ロボット位置関係取得部35は、基準マーカ6と仮想ロボットとの新たな位置関係を取得して、画像生成部36に渡す(ステップS105)。
【0055】
基準マーカ6と仮想ロボットとの新たな位置関係を受け取ると、画像生成部36は、登録部34からエンドエフェクタの登録された位置及び姿勢を取得し、基準マーカ6とその新しい位置関係となるように配置した仮想ロボットのエンドエフェクタを登録された位置及び姿勢とした状態において、仮想ロボットの各関節の角度を逆運動学によって算出できるかどうか判断する(ステップS106)。この場合には、各関節の角度を逆運動学によって算出できたとする。すると、画像生成部36は、基準マーカ6とその新しい位置関係となるように配置した仮想ロボットの3次元モデルであって、エンドエフェクタの位置及び姿勢が登録された位置及び姿勢となる仮想ロボットの3次元モデルを表示するための表示画像を生成し、出力部37は、その表示画像を表示装置4に出力する(ステップS107、S202~S205)。その結果、作業者は、
図5で示されるように、エンドエフェクタの3次元モデル10aが登録された位置及び姿勢であり、移動後の位置に配置された仮想ロボットの3次元モデル10の表示画像を見ることができ、例えば、移動させた仮想ロボットのエンドエフェクタが所望の位置及び姿勢となった場合の状況を、実環境において確認することができる。そして、例えば、仮想ロボットが実環境に配置されている周辺機器等と干渉しないかどうかなどを確認することもできる。
【0056】
また、作業者が移動指示を入力する際に、例えば、仮想ロボットを移動させすぎたことによって、新しい位置に配置した仮想ロボットのエンドエフェクタを登録された位置及び姿勢とした状態において、仮想ロボットの各関節の角度を逆運動学によって算出できない場合には(ステップS106)、再度、移動指示の入力を受け付けることになる。また、その際に、新たな位置に移動できない旨を出力することによって、移動可能な範囲を超える移動指示を入力したことを、作業者に知らせるようにしてもよい。
【0057】
なお、作業者が、表示された仮想ロボットの3次元モデル10を操作することによって、仮想ロボットの3次元モデル10の表示が変更される(ステップS107,S201,S203~S205)。したがって、作業者は、仮想ロボットの新たな配置位置における動作について確認することもできる。また、作業者が、新たな移動指示を入力することによって、その移動指示が受付部33で受け付けられ(ステップS109)、新たな位置関係の取得や、新たな位置関係に応じた仮想ロボットの表示などが行われる(ステップS105~S107)。なお、この場合にも、新たな位置に配置された仮想ロボットの3次元モデルであって、エンドエフェクタの位置及び姿勢が登録された位置及び姿勢となる仮想ロボットの3次元モデルを表示するための表示画像が生成され、表示装置4で表示されることになる。
【0058】
以上のように、本実施の形態による画像生成装置3によれば、エンドエフェクタの位置及び姿勢を固定した状態で、配置位置を変更した仮想ロボットの3次元モデルの表示画像を生成して出力することができるようになる。したがって、例えば、溶接ロボットである仮想ロボットの溶接トーチの位置及び姿勢を溶接開始位置に固定した状態で、仮想ロボットの配置位置を変更することによって、実環境に配置されている周辺機器等と干渉しないロボットの配置位置を検討することができるようになる。なお、仮想ロボットの3次元モデル10の表示画像を、実環境の画像または実環境そのものと重ねて表示することができるため、高精度な配置検討を行うことができる。また、実環境のワークや周辺機器などの3次元モデルを用意する必要がないため、低コストで配置検討を行うこともできる。また、基準マーカ6と新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された位置及び姿勢である状態で各関節の角度を逆運動学によって算出できるかどうかによって、その新たな位置関係に応じた表示画像を生成するかどうかを判断することができる。例えば、新たな配置位置において、仮想ロボットの表示画像が表示されないことによって、作業者は、その配置位置に仮想ロボットを移動できないこと、すなわち、その配置位置に配置された仮想ロボットは、エンドエフェクタが登録された位置及び姿勢となることができないことを知ることができる。また、各関節の角度を逆運動学によって算出できない場合に、新たな位置に移動できない旨を出力することによって、移動可能な範囲を超える移動指示を入力したこと作業者に通知することができ、再度の移動指示の入力を促すことができる。
【0059】
なお、本実施の形態では、エンドエフェクタの1個の位置及び姿勢が登録される場合について主に説明したが、そうでなくてもよい。エンドエフェクタの2以上の位置及び姿勢が登録部34によって登録されてもよい。例えば、エンドエフェクタが溶接トーチである場合に、溶接の開始位置における溶接トーチの位置及び姿勢と、溶接の終了位置における溶接トーチの位置及び姿勢とが登録されてもよい。このように、登録部34によってエンドエフェクタの2以上の位置及び姿勢が登録された場合には、画像生成部36は、ロボット位置関係取得部35によって新たな位置関係が取得された際に、基準マーカ6と新たな位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された2以上の位置及び姿勢である2以上の仮想ロボットの3次元モデルをそれぞれ表示するための表示画像を生成してもよい。
【0060】
より具体的には、エンドエフェクタの第1の位置及び姿勢と、第2の位置及び姿勢とが登録された場合には、画像生成部36は、基準マーカ6と新たな位置関係となるように配置された、エンドエフェクタが登録された第1の位置及び姿勢である第1の仮想ロボットの3次元モデルと、基準マーカ6と新たな位置関係となるように配置された、エンドエフェクタが登録された第2の位置及び姿勢である第2の仮想ロボットの3次元モデルとを表示するための表示画像を生成してもよい。また、画像生成部36は、基準マーカ6と新たな位置関係となるように配置された第1の仮想ロボットのエンドエフェクタが登録された第1の位置及び姿勢である状態で各関節の角度を逆運動学によって算出することができ、かつ、基準マーカ6と新たな位置関係となるように配置された第2の仮想ロボットのエンドエフェクタが登録された第2の位置及び姿勢である状態で各関節の角度を逆運動学によって算出することができる場合に、その新たな位置関係に応じた表示画像を生成し、そうでない場合に、その新たな位置関係に応じた表示画像を生成しなくてもよい。
【0061】
このように、エンドエフェクタのN個の位置及び姿勢が登録された場合には、画像生成部36は、N個の仮想ロボットの3次元モデルを表示するための表示画像を生成してもよい。Nは、2以上の整数である。なお、N個の仮想ロボットの3次元モデルは、基端側の位置、すなわち配置位置が同じであり、手先の位置及び姿勢が異なる仮想ロボットの3次元モデルである。また、画像生成部36は、基準マーカ6と新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された第1から第Nの位置及び姿勢である状態で各関節の角度を逆運動学によってそれぞれ算出することができる場合に、その新たな位置関係に応じたN個の仮想ロボットの表示画像を生成し、そうでない場合に、その新たな位置関係に応じた表示画像を生成しなくてもよい。
【0062】
エンドエフェクタの2つの位置及び姿勢の登録等の処理は、一例として、次のように行われてもよい。まず、作業者は、1つ目のエンドエフェクタの位置及び姿勢を登録する。この登録が終了すると、1つ目のエンドエフェクタの位置や姿勢が登録された状態の仮想ロボットの3次元モデルが表示された状態で、同じ配置位置に新たな仮想ロボットの3次元モデルが表示される。そして、作業者は、新たな仮想ロボットの3次元モデルを操作して、2つ目のエンドエフェクタの位置及び姿勢を登録する。その後、作業者が2個の仮想ロボットの3次元モデルの配置位置を移動指示によって移動させると、それに応じて2個の仮想ロボットの3次元モデルが新たな配置位置に表示される。なお、各仮想ロボットの3次元モデルの手先の位置や姿勢は、それぞれ登録された位置や姿勢になる。ここでは、新たな配置位置において、逆運動学によって各関節の角度が算出できるものとしている。
【0063】
なお、エンドエフェクタの2以上の位置及び姿勢が登録された場合には、エンドエフェクタが登録された2以上の位置及び姿勢となることができる仮想ロボットの配置位置を見つけることが容易でないこともあり得る。そのため、例えば、登録部34によってエンドエフェクタの2以上の位置及び姿勢が登録された場合には、ロボット位置関係取得部35は、所定間隔で設定された複数の新たな位置関係を取得してもよい。そして、画像生成部36は、複数の新たな位置関係のうち、仮想ロボットのエンドエフェクタが登録された2以上の位置及び姿勢である各状態で各関節の角度を逆運動学によって算出することができる新たな位置関係を特定してもよい。なお、この新たな位置関係は、基準マーカ6と仮想ロボットとの位置関係である。その後、画像生成部36は、基準マーカ6と特定した位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された2以上の位置及び姿勢である2以上の仮想ロボットの3次元モデルをそれぞれ表示するための表示画像を生成してもよい。このようにして、エンドエフェクタが登録された2以上の位置及び姿勢となることができる仮想ロボットの配置位置を自動的に見つけて、その配置位置における複数の仮想ロボットの表示画像が生成されてもよい。この場合には、作業者は、エンドエフェクタが登録された2以上の位置及び姿勢となることができる仮想ロボットの配置位置を容易に知ることができるようになる。
【0064】
より具体的には、ロボット位置関係取得部35は、例えば、現時点の仮想ロボットの配置位置の周辺に、あらかじめ決められた間隔で複数の新たな配置位置を設定し、その複数の新たな配置位置について、基準マーカ6との新たな位置関係をそれぞれ取得してもよい。例えば、
図6で示されるように、現在の配置位置30が基準マーカ6の位置である場合には、ロボット位置関係取得部35は、その現在の配置位置30を中心として、所定間隔で配置された複数の格子点を、新たな配置位置31としてもよい。複数の格子点は、一例として、基準マーカ6の配置されている面上に配置されてもよい。
図6において、現在の配置位置30以外の黒丸は、すべて新たな配置位置31である。例えば、その新たな配置位置31は、その時点のロボット座標系に設定されてもよい。ロボット座標系と、マーカ座標系との関係は既知であるため、ロボット位置関係取得部35は、その複数の新たな配置位置31について、基準マーカ6との複数の新たな位置関係をそれぞれ取得することができる。なお、配置位置30,31はそれぞれ、例えば、仮想ロボットが配置される際に、仮想ロボットの3次元モデルの基端側の端面における中心点が位置するところであってもよい。また、各配置位置30,31に仮想ロボットの3次元モデルが配置される際の仮想ロボットの向きは、例えば、基準マーカ6の向きに応じて決まっていてもよく、または、他の基準に応じて決まっていてもよい。
【0065】
画像生成部36は、取得された複数の新たな位置関係のうち、1つの新たな位置関係を選択し、基準マーカ6とその選択した新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された2以上の位置及び姿勢である各状態で各関節の角度を逆運動学によって算出することができる場合に、その選択した新たな位置関係を、表示画像を生成するための位置関係として特定してもよい。そして、画像生成部36は、基準マーカ6と特定した位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された2以上の位置及び姿勢である2以上の仮想ロボットの3次元モデルを表示するための表示画像を生成してもよい。一方、基準マーカ6と選択した新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された2以上の位置及び姿勢である各状態で各関節の角度を逆運動学によって算出することができない場合には、画像生成部36は、それまでに選択していない新たな位置関係を選択し、同様の処理を繰り返してもよい。なお、新たな位置関係の選択は、例えば、あらかじめ決められた順番に行われてもよく、または、ランダムに行われてもよい。画像生成部36は、例えば、エンドエフェクタの登録された2以上の位置及び姿勢について、逆運動学によって各関節の角度を計算することができる新たな位置関係が1つ見つかった場合に、その新たな位置関係に応じて配置された仮想ロボットに関する表示画像を生成してもよく、エンドエフェクタの登録された2以上の位置及び姿勢について、逆運動学によって各関節の角度を計算することができる新たな位置関係を複数見つけた後に、その複数の新たな位置関係のうち、1つの新たな位置関係を特定し、その特定した新たな位置関係に応じて配置された仮想ロボットに関する表示画像を生成してもよい。後者の場合には、例えば、複数の新たな位置関係から、ランダムに1つの新たな位置関係が特定されてもよく、複数の新たな位置関係に対応する複数の配置位置のうち、その複数の配置位置の重心に最も近い配置位置に対応する新たな位置関係が特定されてもよく、複数の新たな位置関係に対応する複数の配置位置のうち、エンドエフェクタの先端の位置から最も遠い配置位置に対応する新たな位置関係が特定されてもよく、その他の新たな位置関係が特定されてもよい。
【0066】
なお、上記したように、仮想ロボットの各関節の動作範囲が設定されていることによって、仮想ロボットの第1軸、すなわち基端側の関節が360度回転できないこともある。例えば、第1軸の動作範囲が、-160度から160度の範囲、すなわち合計320度の範囲に限定されていることもある。このような場合には、画像生成部36は、仮想ロボットの各配置位置において、仮想ロボットを(360/K)度ずつ回転させたK個の角度においてそれぞれ逆運動学の計算を行い、そのいずれかで各関節の角度を算出することができたときに、その配置位置において各関節の角度を逆運動学によって算出することができるとしてもよい。なお、Kは、次式で計算される1以上の整数である。次式において、ceilは天井関数であり、Mは、仮想ロボットの第1軸の動作範囲の角度(deg)である。
K=ceil(360/M)
【0067】
例えば、上記のようにM=320度である場合には、K=2となり、画像生成部36は、ある配置位置に仮想ロボットを任意の角度で配置して逆運動学の計算を行い、その計算で各関節の角度を算出することができなかったときに、その配置位置において仮想ロボットを180度(=360/K)回転させて逆運動学の計算を行ってもよい。そして、その計算で各関節の角度を算出することができたときに、その配置位置において、各関節の角度を逆運動学によって算出することができるとしてもよい。なお、仮想ロボットの回転は、仮想ロボットの配置面の法線方向の軸を中心として行われるものとする。また、K=1の場合には、各配置位置において、仮想ロボットを回転させなくてもよいことになる。
【0068】
また、画像生成部36は、エンドエフェクタの登録された2以上の位置及び姿勢について逆運動学の計算を行う場合に、エンドエフェクタの登録された2以上の位置及び姿勢の間をエンドエフェクタが連続して移動できないときにも、エンドエフェクタが登録された2以上の位置及び姿勢である各状態で各関節の角度を逆運動学によって算出することができないと判断してもよい。エンドエフェクタの登録された2以上の位置及び姿勢の間をエンドエフェクタが連続して移動できないとは、例えば、エンドエフェクタが登録された第1の位置及び姿勢から、登録された第2の位置及び姿勢にまで移動する際に、-180度から180度までの動作範囲である関節の角度が、-179度、-180度、-181度のように変化することであってもよい。-180度から-181度への関節の角度は、実ロボットでは、関節が359度回転することを意味しており、そのような動作をすることはできないからである。
【0069】
また、本実施の形態では、移動指示の受け付けに応じて、移動後の仮想ロボットが表示される場合について主に説明したが、移動の途中においても仮想ロボットがリアルタイムで表示されるようにしてもよい。この場合には、画像生成部36は、例えば、仮想ロボットの移動指示がジェスチャ操作によって入力される際に、移動の途中においてもリアルタイムで移動中の仮想ロボットの表示画像を生成してもよい。すなわち、仮想ロボットの移動開始から移動終了まで、ステップS104~S107の処理が繰り返されてもよい。なお、この場合において、移動が終了するまでは、ステップS107では、ステップS203~S205の処理のみが行われてもよい。このようにすることで、作業者は、移動の途中においても、仮想ロボットの姿勢などを確認することができるようになる。
【0070】
また、本実施の形態では、仮想ロボットのエンドエフェクタの位置及び姿勢が登録される場合について主に説明したが、仮想ロボットのエンドエフェクタの位置のみが登録されてもよい。この場合には、上記説明におけるエンドエフェクタの位置及び姿勢は、エンドエフェクタの位置となってもよい。より具体的には、受付部33は、仮想ロボットのエンドエフェクタの位置の登録指示を受け付けてもよく、登録部34は、仮想ロボットの3次元モデルにおけるエンドエフェクタの位置を登録してもよく、画像生成部36は、基準マーカ6と新たな位置関係となるように配置された仮想ロボットの3次元モデルであって、エンドエフェクタが登録された位置である仮想ロボットの3次元モデルを表示するための表示画像を生成してもよい。その表示画像におけるエンドエフェクタの姿勢は、任意の姿勢であってもよい。このように、エンドエフェクタの位置のみが登録された場合には、エンドエフェクタが登録された位置であるときに、そのエンドエフェクタの姿勢は任意である。また、この場合には、基準マーカ6と新たな位置関係となるように配置された仮想ロボットのエンドエフェクタが登録された位置である状態で各関節の角度を逆運動学によって算出することができる場合に、その新たな位置関係に応じた表示画像が生成され、そうでない場合に、その新たな位置関係に応じた表示画像が生成されなくてもよい。仮想ロボットのエンドエフェクタが登録された位置である状態とは、仮想ロボットのエンドエフェクタが登録された位置であり、任意の姿勢である状態であってもよい。
【0071】
また、エンドエフェクタの位置及び姿勢の登録は、エンドエフェクタと所定の位置関係にある箇所の位置及び姿勢の登録であってもよい。ただし、その箇所の位置及び姿勢と、エンドエフェクタの位置及び姿勢とは一対一の関係にあるものとする。すなわち、その箇所の位置及び姿勢が決まれば、エンドエフェクタの位置及び姿勢も一意に決まるものとする。この場合には、その箇所の位置及び姿勢を登録することによって、エンドエフェクタの位置及び姿勢を登録したことと実質的に同じになるからである。したがって、エンドエフェクタの位置及び姿勢の登録は、そのような箇所の登録も含んでいると考えてもよい。また、その箇所の位置及び姿勢を用いて、表示画像の生成等が行われてもよい。その箇所は、例えば、エンドエフェクタから所定の方向に所定の距離だけ離間した位置であってもよい。その箇所は、一例として、仮想ロボット上の位置であってもよい。エンドエフェクタの位置のみが登録される場合にも同様である。
【0072】
また、本実施の形態では、仮想ロボットが床面に配置される場合、すなわち床置きされる場合について主に説明したが、仮想ロボットの配置位置は問わない。例えば、仮想ロボットは、壁に配置される壁掛け式の仮想ロボットであってもよく、または、天井に取り付けられる天吊り式の仮想ロボットであってもよい。これらの場合には、移動指示によって、仮想ロボットの配置面を床面以外の壁や天井に変更できてもよい。
【0073】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。例えば、画像生成装置3の少なくとも一部の構成は、物理的には、ディスプレイを有する装置などに含まれてもよい。したがって、
図1で示される装置の切り分けは、物理的な装置に応じたものではなく、機能に応じた便宜上のものであると考えてもよい。
【0074】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【0075】
また、上記実施の形態において、画像生成装置3に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
【0076】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【0077】
また、以上の実施の形態は、本発明を具体的に実施するための例示であって、本発明の技術的範囲を制限するものではない。本発明の技術的範囲は、実施の形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲の文言上の範囲及び均等の意味の範囲内での変更が含まれることが意図される。
【符号の説明】
【0078】
3 画像生成装置、4 表示装置、6 基準マーカ、31 記憶部、32 マーカ位置関係取得部、33 受付部、34 登録部、35 ロボット位置関係取得部、36 画像生成部、37 出力部