(57)【要約】【課題】  カメラの撮像範囲を作業者がより判別しやすい視界画像を生成することができるシミュレーション装置及びプログラム等の提供。【解決手段】  シミュレーション装置は、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部１０と、３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部２０を含む。そして、処理部１０は、カメラの位置及び撮像方向に基づき、カメラの視野を表すビューボリュームを設定し、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、ビューボリュームとの３次元オブジェクト空間における交線を求める。さらに、画像生成部２０は、求められた交線が描画された視界画像を生成する。【選択図】  図１
2014186588.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部と、
前記３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部と、
を含み、
前記処理部は、
カメラの位置及び前記カメラの撮像方向に基づいて、前記カメラの視野を表すビューボリュームを設定し、
前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記ビューボリュームとの前記３次元オブジェクト空間における交線を求め、
前記画像生成部は、
求められた前記交線が描画された前記視界画像を生成することを特徴とするシミュレーション装置。
【請求項２】
請求項１において、
前記画像生成部は、
求められた前記交線の一端の位置と他端の位置とを求めて、前記一端の位置と前記他端の位置とを結ぶ線分を描画して、前記視界画像を生成することを特徴とするシミュレーション装置。
【請求項３】
請求項１又は２において、
前記画像生成部は、
求められた前記交線により設定されるポリゴンを描画して、前記カメラの撮像範囲を表す画像が描画された前記視界画像を生成することを特徴とするシミュレーション装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記処理部は、
第１のカメラと第２のカメラが前記ロボットに取り付けられている場合に、前記第１のカメラの視野を表す第１のビューボリュームと、前記第２のカメラの視野を表す第２のビューボリュームとを設定し、
前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記第１のビューボリュームとの前記３次元オブジェクト空間における第１の交線を求め、
さらに、前記少なくとも一つのオブジェクトと、前記第２のビューボリュームとの前記３次元オブジェクト空間における第２の交線を求め、
前記画像生成部は、
求められた前記第１の交線と前記第２の交線とが異なる表示態様で描画された前記視界画像を生成することを特徴とするシミュレーション装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記処理部は、
第１のカメラと第２のカメラが前記ロボットに取り付けられている場合に、前記第１のカメラの視野を表す第１のビューボリュームと、前記第２のカメラの視野を表す第２のビューボリュームとを設定し、
前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記第１のビューボリュームとの前記３次元オブジェクト空間における第１の交線を求め、
さらに、前記少なくとも一つのオブジェクトと、前記第２のビューボリュームとの前記３次元オブジェクト空間における第２の交線を求め、
前記画像生成部は、
求められた前記第１の交線により設定される第１のポリゴンと、前記第２の交線により設定される第２のポリゴンとが、異なる表示態様で描画された前記視界画像を生成することを特徴とするシミュレーション装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記画像生成部は、
前記ロボットに取り付けられる前記カメラの撮像方向を表す線分が描画された前記視界画像を生成することを特徴とするシミュレーション装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記処理部は、
前記３次元オブジェクト空間上において、前記仮想カメラとして第１の仮想カメラを設定し、さらに、前記ロボットに取り付けられる前記カメラの位置に第２の仮想カメラを設定し、
前記画像生成部は、
前記第２の仮想カメラの第２の視界画像を生成し、
前記第１の仮想カメラの前記視界画像として、前記処理部により求められた前記交線と、前記第２の視界画像の上下方向を表すマークとが描画された第１の視界画像を生成することを特徴とするシミュレーション装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記ロボットは、
作業台に対して姿勢を変えることができるアームを有し、
前記カメラは、
前記ロボットの前記アームに取り付けられることを特徴とするシミュレーション装置。
【請求項９】
ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部と、
前記３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部と、
を含み、
前記画像生成部は、
前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、カメラの視野を表すビューボリュームとの交差部分には線分が描画され、非交差部分には線分が非描画とされた前記視界画像を生成することを特徴とするシミュレーション装置。
【請求項１０】
ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部と、
前記３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部と、
を含み、
前記画像生成部は、
前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトの面と、カメラの撮像方向とがなす角に応じて、前記少なくとも一つのオブジェクトと、前記カメラの視野を表すビューボリュームとの交線の形状が異なる前記視界画像を生成することを特徴とするシミュレーション装置。
【請求項１１】
ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトがある３次元オブジェクト空間において、前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、カメラの視野を表すビューボリュームとの交差部分には線分が描画され、非交差部分には線分が非描画とされた画像を生成する画像生成部を含むことを特徴とするシミュレーション装置。
【請求項１２】
ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部と、
前記３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部として、
コンピューターを機能させ、
前記処理部は、
カメラの位置及び撮像方向に基づいて、前記カメラの視野を表すビューボリュームを設定し、
前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記ビューボリュームとの前記３次元オブジェクト空間における交線を求め、
前記画像生成部は、
求められた前記交線が描画された前記視界画像を生成することを特徴とするプログラム。
【請求項１３】
ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定し、
カメラの位置及び前記カメラの撮像方向に基づいて、前記カメラの視野を表すビューボリュームを設定し、
前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記ビューボリュームとの前記３次元オブジェクト空間における交線を求め、
前記３次元オブジェクト空間において、仮想カメラから見え、求められた前記交線が描画された視界画像を生成することを特徴とする画像生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置、プログラム及び画像生成方法等に関係する。
【背景技術】
【０００２】
近年、工場などの作業現場において、人間の代わりに組み付け作業などを行う産業用ロボットを導入することが増えてきた。
【０００３】
このようなロボットを動作させる際には、ロボットの各部が、作業台やワークなどの他の物体と衝突しないように、注意して動作させる必要がある。また、ロボットの制御方法の一つとしては、ビジュアルサーボが知られており、ビジュアルサーボを行う場合には、カメラをどこに配置するかが重要になる。
【０００４】
ロボットを動作させても他の物体に衝突しないか否かや、ビジュアルサーボにおけるカメラ位置が適切かどうかは、実際にロボットを動作させながら人間が判断し、逐一調整してもよいが、これらは非常に手間がかかる作業である。
【０００５】
そこで、ロボットの動作をコンピューターの計算により、あらかじめシミュレーションするシミュレーション装置が用いられている。
【０００６】
このようなシミュレーション装置に関する従来技術としては、特許文献１に開示される技術が知られている。特許文献１において開示される発明では、少なくともロボット、ワーク及びカメラの３次元モデル（オブジェクト）を画面に配置して同時に表示し、ロボットの動作シミュレーションを行う。そして、カメラの視野を３次元形状（以下では、視体積又はビューボリュームと呼ぶ）で画面上に表示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１３５２７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１において開示される発明では、カメラの視野を四角錐で表現しているが、四角錐の底面以外の辺が背景に混在してしまい、作業環境の把握に悪影響を及ぼす可能性がある。四角錐を表示せずに、視野が捉える画像のみを表示部に表示することも可能であるが、作業環境のどの部分が撮影されているかを、３次元的にとらえることが困難であった。
【０００９】
本発明の幾つかの態様によれば、カメラの撮像範囲を作業者がより判別しやすい視界画像を生成することができるシミュレーション装置、プログラム及び画像生成方法等を提供することができる。
【課題を解決するための手段】
【００１０】
本発明の一態様は、ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部と、前記３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部と、を含み、前記処理部は、カメラの位置及び前記カメラの撮像方向に基づいて、前記カメラの視野を表すビューボリュームを設定し、前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記ビューボリュームとの前記３次元オブジェクト空間における交線を求め、前記画像生成部は、求められた前記交線が描画された前記視界画像を生成することを特徴とするシミュレーション装置に関係する。
【００１１】
本発明の一態様では、処理部１０が、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つを含む複数のオブジェクトを３次元オブジェクト空間に設定する。そして、画像生成部２０が、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、ロボットに取り付けられるカメラの視野を表すビューボリュームとの交差部分には線分が描画され、非交差部分には線分が非描画とされた視界画像を生成する。
【００１２】
これにより、カメラの撮像範囲を作業者がより判別しやすい視界画像を生成することが可能となる。
【００１３】
また、本発明の一態様では、前記画像生成部は、求められた前記交線の一端の位置と他端の位置とを求めて、前記一端の位置と前記他端の位置とを結ぶ線分を描画して、前記視界画像を生成してもよい。
【００１４】
これにより、例えばＯｐｅｎＧＬ（Open Graphics Library）などを用いて撮像範囲を描画すること等が可能になる。
【００１５】
また、本発明の一態様では、前記画像生成部は、求められた前記交線により設定されるポリゴンを描画して、前記カメラの撮像範囲を表す画像が描画された前記視界画像を生成してもよい。
【００１６】
これにより、撮像範囲をより目立たせて、作業者が判別しやすいように表示すること等が可能になる。
【００１７】
また、本発明の一態様では、前記処理部は、第１のカメラと第２のカメラが前記ロボットに取り付けられている場合に、前記第１のカメラの視野を表す第１のビューボリュームと、前記第２のカメラの視野を表す第２のビューボリュームとを設定し、前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記第１のビューボリュームとの前記３次元オブジェクト空間における第１の交線を求め、さらに、前記少なくとも一つのオブジェクトと、前記第２のビューボリュームとの前記３次元オブジェクト空間における第２の交線を求め、前記画像生成部は、求められた前記第１の交線と前記第２の交線とが異なる表示態様で描画された前記視界画像を生成してもよい。
【００１８】
これにより、作業者が第１のカメラの撮像範囲と第２のカメラの撮像範囲とをより容易に判別すること等が可能になる。
【００１９】
また、本発明の一態様では、前記処理部は、第１のカメラと第２のカメラが前記ロボットに取り付けられている場合に、前記第１のカメラの視野を表す第１のビューボリュームと、前記第２のカメラの視野を表す第２のビューボリュームとを設定し、前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記第１のビューボリュームとの前記３次元オブジェクト空間における第１の交線を求め、さらに、前記少なくとも一つのオブジェクトと、前記第２のビューボリュームとの前記３次元オブジェクト空間における第２の交線を求め、前記画像生成部は、求められた前記第１の交線により設定される第１のポリゴンと、前記第２の交線により設定される第２のポリゴンとが、異なる表示態様で描画された前記視界画像を生成してもよい。
【００２０】
これにより、作業者が第１のカメラの撮像範囲と第２のカメラの撮像範囲とをより容易に判別すること等が可能になる。
【００２１】
また、本発明の一態様では、前記画像生成部は、前記ロボットに取り付けられる前記カメラの撮像方向を表す線分が描画された前記視界画像を生成してもよい。
【００２２】
これにより、ロボットに取り付けられたカメラがどの方向を撮像しているかを作業者が容易に判別すること等が可能になる。
【００２３】
また、本発明の一態様では、前記処理部は、前記３次元オブジェクト空間上において、前記仮想カメラとして第１の仮想カメラを設定し、さらに、前記ロボットに取り付けられる前記カメラの位置に第２の仮想カメラを設定し、前記画像生成部は、前記第２の仮想カメラの第２の視界画像を生成し、前記第１の仮想カメラの前記視界画像として、前記処理部により求められた前記交線と、前記第２の視界画像の上下方向を表すマークとが描画された第１の視界画像を生成してもよい。
【００２４】
これにより、第１の視界画像において、第２の視界画像に映る像がどの方向を向いているかを、作業者が容易に判別すること等が可能になる。
【００２５】
また、本発明の一態様では、前記ロボットは、作業台に対して姿勢を変えることができるアームを有し、前記カメラは、前記ロボットの前記アームに取り付けられてもよい。
【００２６】
これにより、ロボットが、第１のアーム及び第２のアームが作業台に対して、平行にならないような姿勢を取ること等が可能になる。
【００２７】
また、本発明の他の態様では、ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部と、前記３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部と、を含み、前記画像生成部は、前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、カメラの視野を表すビューボリュームとの交差部分には線分が描画され、非交差部分には線分が非描画とされた前記視界画像を生成するシミュレーション装置に関係する。
【００２８】
また、本発明の他の態様では、ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部と、前記３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部と、を含み、前記画像生成部は、前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトの面と、カメラの撮像方向とがなす角に応じて、前記少なくとも一つのオブジェクトと、前記カメラの視野を表すビューボリュームとの交線の形状が異なる前記視界画像を生成するシミュレーション装置に関係する。
【００２９】
これにより、ロボットが作業台に対して姿勢を変えることができるアームを有している場合であっても、正確な撮像範囲を描画すること等が可能になる。
【００３０】
また、本発明の他の態様では、ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトがある３次元オブジェクト空間において、前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、カメラの視野を表すビューボリュームとの交差部分には線分が描画され、非交差部分には線分が非描画とされた画像を生成する画像生成部を含むシミュレーション装置に関係する。
【００３１】
また、本発明の他の態様では、上記各部としてコンピューターを機能させるプログラムに関係する。
【００３２】
また、本発明の他の態様では、ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定し、カメラの位置及び前記カメラの撮像方向に基づいて、前記カメラの視野を表すビューボリュームを設定し、前記ロボットオブジェクトと前記ワークオブジェクトと前記作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、前記ビューボリュームとの前記３次元オブジェクト空間における交線を求め、前記３次元オブジェクト空間において、仮想カメラから見え、求められた前記交線が描画された視界画像を生成する画像生成方法に関係する。
【図面の簡単な説明】
【００３３】
【図１】本実施形態のシステム構成例。
【図２】図２（Ａ）〜図２（Ｃ）は、第１の視界画像と第２の視界画像の説明図。
【図３】ビューボリュームとオブジェクトの交線の描画処理の説明図。
【図４】図４（Ａ）〜図４（Ｃ）は、ポリゴンとマークが描画された第１の視界画像と第２の視界画像の説明図。
【図５】図５（Ａ）〜図５（Ｃ）は、カメラの撮像範囲が重複する場合の第１の視界画像と第２の視界画像の説明図。
【図６】図６（Ａ）〜図６（Ｃ）は、カメラの姿勢を変更した時の第１の視界画像と第２の視界画像の説明図。
【図７】本実施形態の処理の流れを説明するフローチャート。
【図８】図８（Ａ）〜図８（Ｃ）は、オブジェクトの面と交差しないビューボリュームの面がある場合の第１の視界画像と第２の視界画像の説明図。
【発明を実施するための形態】
【００３４】
以下、本実施形態について説明する。まず、本実施形態の概要を説明し、次に本実施形態のシステム構成例について説明する。そして、本実施形態の手法について具体例を交えつつ詳細に説明し、最後に、フローチャートを用いて本実施形態の処理の流れについて説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３５】
１．概要
近年、工場などの作業現場において、人間の代わりに組み付け作業などを行う産業用ロボットを導入することが増えてきた。このようなロボットを動作させる際には、ロボットの各部が、作業台やワークなどの他の物体と衝突しないように、注意して動作させる必要がある。
【００３６】
また、ロボットの制御方法の一つとして、ビジュアルサーボが知られている。ビジュアルサーボを行う際には、あらかじめロボットや作業現場にカメラを取り付けておき、取り付けられたカメラから得られる撮像画像に基づいて、ロボットの各部を動作させる。そのため、カメラの配置位置によっては、ロボットを動作させるために有用な撮像画像が得られないこともあり、この場合には期待通りにロボットを動作させることができない。よって、ビジュアルサーボを行う場合には、カメラをどこに配置するかが重要になる。
【００３７】
ロボットを動作させても他の物体に衝突しないか否かや、ビジュアルサーボにおけるカメラ位置が適切かどうかは、実際にロボットを動作させながら人間が判断し、逐一調整してもよいが、これらは非常に手間がかかる作業である。特にビジュアルサーボを行う場合には、あらかじめ大量の参照画像を準備しておく必要がある。そのため、カメラ位置が変更された場合には、参照画像も再度準備しなおす必要があり、コスト面から現実的ではない。
【００３８】
そこで、ロボットの動作をコンピューターの計算により、あらかじめシミュレーションするシミュレーション装置が用いられている。このシミュレーション装置を用いれば、衝突判定をあらかじめ行って、衝突する危険があると分かった場合には、ロボットの動作プログラムを変更したり、ビジュアルサーボにおける最適なカメラ位置を作業者が容易に探し出したりすることができる。また、シミュレーションの結果、ビジュアルサーボにおけるカメラ位置を変更することになっても、ＣＧ（Computer Graphics）を用いたシミュレーションであれば、参照画像の準備コストをほとんどかけずに再検証ができるという利点がある。
【００３９】
前述した特許文献１において開示されるシミュレーション装置では、少なくともロボット、ワーク及びカメラの３次元モデル（オブジェクト）を画面に配置して同時に表示し、ロボットの動作シミュレーションを行う。そして、特許文献１の図７などに示すように、カメラの視野を３次元形状（以下では、視体積又はビューボリュームと呼ぶ）で画面上に表示する。なお、ビューボリュームの形状は、典型的には四角錐となる。
【００４０】
しかし、特許文献１において開示される発明では、カメラの視野を四角錐で表現しているが、四角錐の底面以外の辺が背景に混在してしまい、作業環境の把握に悪影響を及ぼす可能性がある。四角錐を表示せずに、視野が捉える画像のみを表示部に表示することも可能であるが、作業環境のどの部分が撮影されているかを、３次元的にとらえることが困難であった。
【００４１】
そこで、本実施形態では、ロボットオブジェクト、ワークオブジェクト及び作業台オブジェクトのうちの少なくとも一つのオブジェクトと、ビューボリュームとの３次元オブジェクト空間における交線により、カメラの視野範囲を表す。そして、求めた交線が描画された視界画像を生成する。
【００４２】
これにより、カメラの撮像範囲をより判別しやすいように、表示することが可能になる。その結果として、オフラインで作成されたロボットの動作プログラムの評価、修正及び編集等を行う際に生じていた種々の不便さと作業効率の低下を緩和又は解消することができるようになる。
【００４３】
また、以下で説明する本実施形態のシミュレーション装置と、特許文献１に示すシミュレーション装置とでは、撮像範囲を表す画像の生成処理が明確に異なる。特許文献１に示す発明では、四角錐により表されるビューボリュームをそのまま撮像範囲を表す画像として表示するが、本実施形態では、配置されるオブジェクトとビューボリュームとの交線を求めて、撮像範囲を特定する処理を行って、撮像範囲を表す画像を生成する。
【００４４】
これにより、カメラの撮像範囲をより正確に表現することが可能となる。例えば、カメラが作業台に対して斜めに配置されている場合には、作業台に対して平行に配置されている場合に比べて、撮像範囲が広くなる。特許文献１に示される発明を用いた場合には、どちらの場合にも同じ四角錐を、向きを変えて表示するだけであるが、本実施形態では、それぞれ異なる撮像範囲を表現することができる。また、本実施形態のシミュレーション装置を用いれば、撮像範囲をワークの形状に沿って、変形して表示すること等も可能になる。
【００４５】
２．システム構成例
次に、本実施形態のシミュレーション装置の構成例を図１に示す。
【００４６】
シミュレーション装置は、処理部１０と、画像生成部２０と、を含む。なお、シミュレーション装置は、図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
【００４７】
次に各部で行われる処理について説明する。
【００４８】
処理部１０は、各種の判定処理や制御処理などを行うものであり、オブジェクト空間設定部１２と、仮想カメラ設定部１４と、を含む。
【００４９】
オブジェクト空間設定部１２は、オブジェクトを３次元オブジェクト空間に配置設定する処理等を行う。具体的には、ワールド座標系でのオブジェクトの位置や回転角度を決定し、その位置にその回転角度でオブジェクトを配置する。
【００５０】
ここで、オブジェクトとは、ロボット等の衝突検出対象物や、周辺構造物や周辺機器などの被衝突検出対象物を、モデル化したものであり、ポリゴンや自由曲面などのプリミティブ面で構成される。
【００５１】
また、仮想カメラ設定部１４は、オブジェクト空間内の所与（任意）の視点から見える画像（視界画像）を生成するための仮想カメラ（視点、基準仮想カメラ）の設定処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を設定する処理（視点位置、撮像方向あるいは画角を制御する処理）を行う。
【００５２】
次に、画像生成部２０は、３次元オブジェクト空間において、仮想カメラから見える視界画像の生成処理（描画処理）を行う。この画像生成部２０での描画処理は、頂点シェーダープログラムにより実現される頂点シェーダーや、ピクセルシェーダープログラムにより実現されるピクセルシェーダーにより実現してもよい。頂点シェーダーでは、頂点の移動処理、座標変換処理、クリッピング処理などが行われる。そして、頂点処理後の頂点データに基づいてラスタライズ処理が行われる。また、ピクセルシェーダーでは、ラスタライズ処理後に、画像を構成するピクセル（フラグメント）単位での処理であるピクセル処理（フラグメント処理）が行われる。即ち、シェーディング言語によって記述されたシェーダープログラムによって、プログラマブルシェーダー処理が実現される。
【００５３】
なお、処理部１０及び画像生成部２０の機能は、各種プロセッサー（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアーや、プログラムなどにより実現できる。
【００５４】
３．本実施形態の手法
次に、本実施形態の手法について説明する。
【００５５】
以上の本実施形態のシミュレーション装置は、ロボットの３次元モデルを表すロボットオブジェクトと、ワークの３次元モデルを表すワークオブジェクトと、作業台の３次元モデルを表す作業台オブジェクトとのうちの少なくとも一つのオブジェクトを３次元オブジェクト空間に設定する処理部１０と、３次元オブジェクト空間において、仮想カメラから見える視界画像を生成する画像生成部２０と、を含む。そして、処理部１０は、カメラの位置及びカメラの撮像方向に基づいて、カメラの視野を表すビューボリュームを設定し、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、ビューボリュームとの３次元オブジェクト空間における交線を求める。さらに、画像生成部２０は、求められた交線が描画された視界画像を生成する。
【００５６】
ここで、撮像方向とは、カメラが撮像する方向を意味し、例えば、カメラの撮像レンズの中心点を通る光軸の方向である。
【００５７】
本実施形態において、処理部１０は、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つを含む複数のオブジェクトを３次元オブジェクト空間に設定する。
【００５８】
そして、画像生成部２０は、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、ロボットに取り付けられるカメラの視野を表すビューボリュームとの交差部分には線分が描画され、非交差部分には線分が非描画とされた視界画像を生成する。
【００５９】
ここで、ビューボリュームとは、３次元オブジェクト空間の部分空間であって、カメラが撮像する範囲を表す領域のことを言う。前述した特許文献１の図７においては、四角錐３０によって表される。
【００６０】
図２（Ａ）を用いて具体例を説明する。本例において、動作シミュレーションの対象となるロボットの３次元モデルを表すロボットオブジェクトＲＢは、第１のアームＡＭ１と第２のアームＡＭ２を有しており、第１のアームＡＭ１の先端には第１のハンドＨＤ１が設けられ、第２のアームＡＭ２の先端には第２のハンドＨＤ２が設けられている。さらに、第１のハンドＨＤ１の周辺位置には、第１のカメラＣＭ１が設けられており、第２のハンドＨＤ２の周辺位置には、第２のカメラＣＭ２が設けられている。また、作業台の３次元モデルを表す作業台オブジェクトＷＢの上には、ワークの３次元モデルを表すワークオブジェクトＷＫ１〜ＷＫ４が置かれており、ロボットオブジェクトＲＢがこれらに対して作業を行うものとする。
【００６１】
そして、このようなロボットオブジェクトＲＢとワークオブジェクト（ＷＫ１〜ＷＫ４）と作業台オブジェクトＷＢとを３次元オブジェクト空間に配置設定し、同じく３次元オブジェクト空間に配置設定された仮想カメラから、これらのオブジェクトを見た時の図２（Ａ）に示すような視界画像ＩＭ１を描画する。
【００６２】
本例では、視界画像ＩＭ１に示すように、第１のハンドＨＤ１の周辺位置に設けられた第１のカメラＣＭ１の視野範囲を四角形ＰＡ１により表し、第２のハンドＨＤ２の周辺位置に設けられた第２のカメラＣＭ２の視野範囲を四角形ＰＡ２により表す。
【００６３】
これにより、カメラの撮像範囲を作業者がより判別しやすい視界画像を生成することが可能となる。このように本実施形態では、前述した特許文献１において開示される発明とは異なり、ビューボリュームを表す四角錐の底面以外の辺（又は側面）を表示しないため、底面以外の辺が背景に混在し、作業環境の把握に悪影響を及ぼすことを防ぐことが可能になる。
【００６４】
また、画像生成部２０は、求められた交線の一端の位置と他端の位置とを求めて、一端の位置と他端の位置とを結ぶ線分を描画して、視界画像を生成してもよい。
【００６５】
具体例を図３に示す。図３は、四角錐の形状をしたビューボリュームＶＢが任意のオブジェクトＯＢと交差している様子を表している。この時、本例では、ビューボリュームＶＢの各側面とオブジェクトＯＢの表面との交線（ＣＬ１〜ＣＬ４）を求め、この各交線の端点を求める。具体的に、交線ＣＬ１については端点ＣＰ１及びＣＰ２が、交線ＣＬ２については端点ＣＰ２及びＣＰ３が、交線ＣＬ３については端点ＣＰ３及びＣＰ４が、交線ＣＬ４については端点ＣＰ４及びＣＰ１が求められる。そして、実際にこれらの端点を結ぶ線分を描画して、図２（Ａ）に示すような視野範囲（ＰＡ１及びＰＡ２）が描画された視界画像ＩＭ１を生成する。
【００６６】
これにより、例えばＯｐｅｎＧＬ（Open Graphics Library）などを用いて撮像範囲を描画すること等が可能になる。
【００６７】
また、画像生成部２０は、求められた交線により設定されるポリゴンを描画して、カメラの撮像範囲を表す画像が描画された視界画像を生成してもよい。
【００６８】
交線により設定されるポリゴンの具体例を図４（Ａ）に示す。図４（Ａ）では、第１のカメラＣＭ１のビューボリュームと各オブジェクトとの交線により四角形のポリゴンＰＡ１が設定され、ポリゴンＰＡ１が第１のカメラＣＭ１の視野範囲を表す。同様に、第２のカメラＣＭ２のビューボリュームと各オブジェクトとの交線により四角形のポリゴンＰＡ２が設定され、ポリゴンＰＡ２が第２のカメラＣＭ２の視野範囲を表す。
【００６９】
これにより、撮像範囲をより目立たせて、作業者が判別しやすいように表示すること等が可能になる。
【００７０】
また、処理部１０は、図２（Ａ）に示すように、第１のカメラＣＭ１と第２のカメラＣＭ２がロボットに取り付けられている場合に、第１のカメラＣＭ１の視野を表す第１のビューボリュームと、第２のカメラＣＭ２の視野を表す第２のビューボリュームとを設定してもよい。そして、処理部１０は、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つのオブジェクトと、第１のビューボリュームとの３次元オブジェクト空間における第１の交線を求めてもよい。さらに、処理部１０は、前述した少なくとも一つのオブジェクトと、第２のビューボリュームとの３次元オブジェクト空間における第２の交線を求めてもよい。この時に、画像生成部２０は、求められた第１の交線と第２の交線とが異なる表示態様で描画された視界画像を生成してもよい。
【００７１】
例えば図２（Ａ）では、第１の交線はＰＡ１のことを指し、第２の交線はＰＡ２のことを指す。また、表示態様とは、色、太さ、輝度、及び実線や点線などの線のパターン等を指す。図２（Ａ）の第１の交線ＰＡ１と第２の交線ＰＡ２は、線のパターンが異なる。
【００７２】
これにより、作業者が第１のカメラの撮像範囲と第２のカメラの撮像範囲とをより容易に判別すること等が可能になる。また、第１の交線と第２の交線の表示態様を変えることは、図５（Ａ）のように、第１のカメラの撮像範囲と第２のカメラの撮像範囲とが重複しており、２つのカメラが同じワークＷＫ５を撮像している場合などに特に有用である。
【００７３】
同様に、画像生成部２０は、求められた第１の交線により設定される第１のポリゴンと、第２の交線により設定される第２のポリゴンとが、異なる表示態様で描画された視界画像を生成してもよい。
【００７４】
ここで、例えば図４（Ａ）では、第１のポリゴンはＰＡ１のことを指し、第２のポリゴンはＰＡ２のことを指す。
【００７５】
この場合にも交線の表示態様を変える例と同様に、作業者が第１のカメラの撮像範囲と第２のカメラの撮像範囲とをより容易に判別すること等が可能になる。
【００７６】
また、画像生成部２０は、第１の交線と第２の交線とが異なる色で描画され、かつ第１のポリゴンと第２のポリゴンとが異なる色で描画された視界画像を生成してもよい。他にも、交線の表示態様とポリゴンの表示態様とを任意の組み合わせで変更した視界画像を生成してもよく、様々な変形実施が可能である。
【００７７】
また、画像生成部２０は、ロボットに取り付けられるカメラの撮像方向を表す線分が描画された視界画像を生成してもよい。
【００７８】
具体的には、図２（Ａ）、図４（Ａ）及び図５（Ａ）に示すように、カメラの撮像方向を表す線分ＶＤ１と、線分ＶＤ２とを描画してもよい。図２（Ａ）、図４（Ａ）及び図５（Ａ）では、線分ＶＤ１は第１のカメラＣＭ１の撮像方向を表し、線分ＶＤ２は第２のカメラＣＭ２の撮像方向を表す。
【００７９】
これにより、ロボットに取り付けられたカメラがどの方向を撮像しているかを作業者が容易に判別すること等が可能になる。
【００８０】
また、処理部１０は、３次元オブジェクト空間上において、仮想カメラとして第１の仮想カメラを設定し、さらに、ロボットに取り付けられるカメラの位置に第２の仮想カメラを設定してもよい。そして、画像生成部２０は、第２の仮想カメラの第２の視界画像を生成し、第１の仮想カメラの視界画像として、処理部１０により求められた交線と、第２の視界画像の上下方向を表すマークとが描画された第１の視界画像を生成してもよい。
【００８１】
例えば、図２（Ａ）の場合では、第２の仮想カメラが二つ配置設定されている。そして、第１のカメラＣＭ１と同じ位置に第２の仮想カメラ１を設定し、図２（Ｂ）に示すように、第２の仮想カメラ１から見た第２の視界画像ＩＭ２１を描画する。同様に、第２のカメラＣＭ２と同じ位置にも第２の仮想カメラ２を設定し、図２（Ｃ）に示すように、その第２の仮想カメラ２から見た第２の視界画像ＩＭ２２を描画する。なお、図４（Ｂ）及び図５（Ｂ）に示す第２の視界画像ＩＭ２１と、図４（Ｃ）及び図５（Ｃ）に示す第２の視界画像ＩＭ２２も、図２（Ｂ）及び図２（Ｃ）に示すものと同様に描画される。
【００８２】
そして、本例では、図４（Ａ）に示すように、第２の視界画像ＩＭ２１の上下方向を表すマークＭＫ１と、第２の視界画像ＩＭ２２の上下方向を表すマークＭＫ２を、第１の視界画像ＩＭ１においてそれぞれの撮像範囲の近傍に表示する。
【００８３】
これにより、第１の視界画像において、第２の視界画像に映る像がどの方向を向いているかを、作業者が容易に判別すること等が可能になる。
【００８４】
また、ロボットは、作業台に対して姿勢を変えることができるアームを有してもよい。そして、カメラは、ロボットのアームに取り付けられてもよい。
【００８５】
これにより、図６（Ａ）のように、ロボットＲＢは、第１のアームＡＭ１及び第２のアームＡＭ２が作業台ＷＢに対して、平行にならないような姿勢を取ること等が可能になる。
【００８６】
しかし、この際には、アームが作業台に対して平行である図２（Ａ）や図４（Ａ）の場合とは異なり、実際の撮像範囲が長方形にならず、歪んだ四角形になる。
【００８７】
そこで、画像生成部２０は、ロボットオブジェクトとワークオブジェクトと作業台オブジェクトとのうちの少なくとも一つのオブジェクトの面と、カメラの撮像方向とがなす角に応じて、少なくとも一つのオブジェクトと、カメラの視野を表すビューボリュームとの交線の形状が異なる視界画像を生成してもよい。
【００８８】
このように、ビューボリュームとオブジェクトの交線を求めて、撮像範囲を描画する本実施形態では、図６（Ａ）のように歪んだ撮像範囲も再現すること等が可能になる。なお、図６（Ｂ）及び図６（Ｃ）は、図６（Ａ）に示す３次元オブジェクト内に配置設定された各第２の仮想カメラの視界画像を表す。
【００８９】
これにより、ロボットが作業台に対して姿勢を変えることができるアームを有している場合であっても、正確な撮像範囲を描画すること等が可能になる。
【００９０】
なお、本実施形態のシミュレーション装置等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態のシミュレーション装置等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【００９１】
４．処理の詳細
以下では、図７のフローチャートを用いて、本実施形態の処理の流れについて説明する。
【００９２】
まず、複数のオブジェクトを表示部に表示し（Ｓ１）、カメラのビューボリュームを定義（設定）する（Ｓ２）。
【００９３】
次に、カメラを移動し（Ｓ３）、カメラの移動に従って、ビューボリュームを移動する（Ｓ４）。そして、カメラが撮像した画像を表示部に表示する（Ｓ５）。
【００９４】
ここで、以下のステップＳ８〜ステップＳ１１の繰り返し回数を数えるカウンターｎを１で初期化する（Ｓ６）。
【００９５】
次に、カウンターｎが４未満であるか否かを判定する（Ｓ７）。カウンターｎが４未満であると判定した場合には、３次元オブジェクト空間においてビューボリュームの側面ｎと交差するオブジェクトがあるか否かを判定する（Ｓ８）。なお、本例のビューボリュームは、四角錐の形状をしているものとし、四角錐の４つの側面をそれぞれ側面１〜側面４と呼ぶこととする。
【００９６】
ステップＳ８において、３次元オブジェクト空間でビューボリュームの側面ｎと交差するオブジェクトがないと判定した場合には、カウンターｎをインクリメントする（Ｓ９）。
【００９７】
一方で、ステップＳ８において、３次元オブジェクト空間でビューボリュームの側面ｎと交差するオブジェクトがあると判定した場合には、側面ｎと交差した箇所の端点を算出し（Ｓ１０）、算出した端点を結び線分を表示する（Ｓ１１）。
【００９８】
そして、カウンターｎをインクリメントして（Ｓ９）、ステップＳ７に戻り、カウンターｎが４に達したと判定した場合には、処理を終了する。
【００９９】
このように、３次元オブジェクト空間においてビューボリュームの側面ｎと交差するオブジェクトがある場合にのみ、交線を描画するため、ビューボリュームの全ての側面において交差するオブジェクトがある場合には、カメラの視野範囲を表す四角形が描画されることになる。例えば、前述した図２（Ａ）のＰＡ１及びＰＡ２に示すようなものである。一方で、どのオブジェクトとも交差しないビューボリュームの側面については、交線が描画されないため、図８（Ａ）に示すような視野範囲（ＰＡ１及びＰＡ２）が描画されることになる。なお、図８（Ｂ）及び図８（Ｃ）は、図８（Ａ）に示す３次元オブジェクト内に配置設定された各第２の仮想カメラの視界画像を表す。
【０１００】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、シミュレーション装置及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１０１】
１０  処理部、１２  オブジェクト空間設定部、１４  仮想カメラ設定部、
２０  画像生成部
【図１】
2014186588.tif 000003
【図２】
2014186588.tif 000004
【図３】
2014186588.tif 000005
【図４】
2014186588.tif 000006
【図５】
2014186588.tif 000007
【図６】
2014186588.tif 000008
【図７】
2014186588.tif 000009
【図８】
2014186588.tif 000010