(57)【特許請求の範囲】
【請求項１】
第一のロボットの動作を制御する制御手段と、
前記第一のロボットの動作を観察者の視点位置で撮像した撮像画像と前記観察者の視点位置及び姿勢とを取得する取得手段と、
前記観察者の視点位置及び姿勢と表示装置の内部パラメータとに基づいて前記第一のロボットを含む前記観察者の視野を特定し、前記第一のロボットと干渉する可能性がある第二のロボットの動作データに基づいて前記特定された視野に表示する前記第二のロボットの動作画像を生成し、前記第一のロボットの動作を撮像した撮像画像に前記第二のロボットの動作画像を重畳した重畳画像を生成するとともに、前記第一のロボットの動作のトリガ情報を出力する生成手段と、
前記重畳画像を前記表示装置に出力する出力手段と、を有し、
前記制御手段は、前記トリガ情報に基づいて、前記第一のロボットの動作を、前記第二のロボットの動作画像における動作と同期させる情報処理装置。
【請求項２】
前記第二のロボット及び周辺機器の３次元形状情報を取得する形状情報取得手段を更に有し、
前記生成手段は、前記第二のロボットの動作データと前記３次元形状情報とに基づいて前記第二のロボットの動作画像を生成する請求項１記載の情報処理装置。
【請求項３】
前記第二のロボット及び周辺機器の３次元形状情報及び動作情報を取得する形状・動作取得手段を更に有し、
前記生成手段は、前記３次元形状情報及び動作情報に基づいて前記第二のロボットの動作画像を生成する請求項１記載の情報処理装置。
【請求項４】
前記生成手段は、前記特定された視野の前記第二のロボットの配置されるべき位置に表示する前記第二のロボットの動作画像を生成する請求項１乃至３何れか１項記載の情報処理装置。
【請求項５】
前記制御手段は、制御データに基づき前記第一のロボットの動作を制御し、
前記制御データを修正する修正手段を更に有する請求項１乃至４何れか１項記載の情報処理装置。
【請求項６】
前記第二のロボットの実際の動きのデータを入力する動作入力手段を更に有し、
前記生成手段は、前記入力されたデータを前記第二のロボットの動作データとして前記第二のロボットの動作画像を生成する請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記第一のロボットの動作シミュレーションと前記第二のロボットの動作シミュレーションとを行い、前記第一のロボットと前記第二のロボットとが設定された閾値以下の距離になる箇所があるか否かを判定する干渉判定手段を更に有する請求項１乃至６何れか１項記載の情報処理装置。
【請求項８】
前記生成手段は、前記干渉判定手段により前記箇所があると判定された場合、前記箇所を強調表示した前記第二のロボットの動作画像を生成する請求項７記載の情報処理装置。
【請求項９】
情報処理装置が実行する情報処理方法であって、
第一のロボットの動作を制御する制御ステップと、
前記第一のロボットの動作を観察者の視点位置で撮像した撮像画像と前記観察者の視点位置及び姿勢とを取得する取得ステップと、
前記観察者の視点位置及び姿勢と表示装置の内部パラメータとに基づいて前記第一のロボットを含む前記観察者の視野を特定し、前記第一のロボットと干渉する可能性がある第二のロボットの動作データに基づいて前記特定された視野に表示する前記第二のロボットの動作画像を生成し、前記第一のロボットの動作を撮像した撮像画像に前記第二のロボットの動作画像を重畳した重畳画像を生成するとともに、前記第一のロボットの動作のトリガ情報を出力する生成ステップと、
前記重畳画像を前記表示装置に出力する出力ステップと、を含み、
前記制御ステップでは、前記トリガ情報に基づいて、前記第一のロボットの動作を、前記第二のロボットの動作画像における動作と同期させる情報処理方法。
【請求項１０】
表示システムが実行する情報処理方法であって、
第一のロボットの動作を制御する制御ステップと、
前記第一のロボットの動作を観察者の視点位置で撮像した撮像画像と前記観察者の視点位置及び姿勢とを取得する取得ステップと、
前記観察者の視点位置及び姿勢と表示装置の内部パラメータとに基づいて前記第一のロボットを含む前記観察者の視野を特定し、前記第一のロボットと干渉する可能性がある第二のロボットの動作データに基づいて前記特定された視野に表示する前記第二のロボットの動作画像を生成し、前記第一のロボットの動作を撮像した撮像画像に前記第二のロボットの動作画像を重畳した重畳画像を生成するとともに、前記第一のロボットの動作のトリガ情報を出力する生成ステップと、
前記重畳画像を前記表示装置に出力する出力ステップと、を含み、
前記制御ステップでは、前記トリガ情報に基づいて、前記第一のロボットの動作を、前記第二のロボットの動作画像における動作と同期させる情報処理方法。
【請求項１１】
コンピュータを、請求項１乃至８何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御に係る情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
複数の腕を持つ産業用ロボットによる製品の自動組み立てが行われている。この場合、腕同士の衝突やワーク等、作業領域に存在する物体との衝突を避けるようにロボットの動作を教示する必要がある。特に腕同士の衝突を避けるようにタイミングを調整して教示するには非常に手間がかかる。そこで、ロボットやワーク等の３次元モデルを用いて、ロボットの動作をシミュレーションで干渉確認しながら教示する技術がある（特許文献１）。しかし、シミュレーションと実際のロボットの３次元形状や動作とには差異があり、シミュレーションだけでは干渉の確認が正確にはできない。そのため最終的にはロボットの実機で制御データを実行させ干渉を確認する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６０−２１７４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、干渉確認が不十分なロボットの制御データを実機で再生するとロボットが衝突する可能性が高い。また複数の腕が僅差で複雑に交差するような状況において腕同士が干渉しているかを実機で確認する場合には、ロボットの実機が邪魔になって干渉の可能性がある箇所が本当に接触しているかどうかを確認することが難しい。
本発明は、干渉確認においてロボットが衝突する可能性を軽減すると共に干渉の可能性がある箇所に確認作業の効率を向上させることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、第一のロボットの動作を制御する制御手段と、前記第一のロボットの動作を観察者の視点位置で撮像した撮像画像と前記観察者の視点位置及び姿勢とを取得する取得手段と、前記観察者の視点位置及び姿勢と表示装置の内部パラメータとに基づいて前記第一のロボットを含む前記観察者の視野を特定し、前記第一のロボットと干渉する可能性がある第二のロボットの動作データに基づいて前記特定された視野に表示する前記第二のロボットの動作画像を生成し、前記第一のロボットの動作を撮像した撮像画像に前記第二のロボットの動作画像を重畳した重畳画像を生成するとともに、前記第一のロボットの動作のトリガ情報を出力する生成手段と、前記重畳画像を前記表示装置に出力する出力手段と、を有し、前記制御手段は、前記トリガ情報に基づいて、前記第一のロボットの動作を、前記第二のロボットの動作画像における動作と同期させる。
【発明の効果】
【０００６】
本発明によれば、干渉確認においてロボットが衝突する可能性を軽減すると共に干渉の可能性がある箇所に確認作業の効率を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】表示システムのシステム構成の一例を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】表示装置のハードウェア構成の一例を示す図である。
【図４】実施形態１の情報処理装置のソフトウェア構成の一例を示す図である。
【図５】表示装置のソフトウェア構成の一例を示す図である。
【図６】実施形態１の情報処理装置の情報処理の一例を示すフローチャートである。
【図７】実施形態２の情報処理装置のソフトウェア構成の一例を示す図である。
【図８】実施形態２の情報処理装置の情報処理の一例を示すフローチャートである。
【図９】実施形態３の情報処理装置のソフトウェア構成の一例を示す図である。
【図１０】実施形態３の情報処理装置の情報処理の一例を示すフローチャートである。
【図１１】実施形態４の情報処理装置のソフトウェア構成の一例を示す図である。
【図１２】実施形態４の情報処理装置の情報処理の一例を示すフローチャートである。
【図１３】実施形態５の情報処理装置のソフトウェア構成の一例を示す図である。
【図１４】実施形態５の情報処理装置の情報処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
＜＜実施形態１＞＞
＜概要＞
実施形態１では、腕同士が衝突する可能性を軽減しながら、２つの腕を持つロボットの干渉を調べる方法について述べる。図１は、表示システムの概要を説明するための図である。図１のように、表示システムでは、第一のロボットアーム１００３が動作する様子に、第二のロボットアーム１００４の動作をＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）で再生したＣＧ画像１０５３を重畳して観察者１００１に提示する。このことにより、観察者１００１は、ロボットの腕の干渉を確認する。これにより、干渉確認の際にロボットの腕同士が接触し、ロボットが壊れる可能性を軽減することができる。更に、一方の腕が物理的に邪魔になって他方の腕との干渉の可能性がある箇所の視認を妨げることを軽減できるため、作業効率が向上する。ＣＧ画像１０５３は、動作画像の一例である。また、本実施形態の第一のロボットアーム１００３は、第一のロボットの一例である。また、本実施形態の第二のロボットアーム１００４は、第二のロボットの一例である。また、本実施形態の第二のロボットアーム１００４は、本実施形態の第一のロボットアーム１００３と干渉する可能性があるロボットアームの一例である。
【０００９】
＜システム構成＞
実施形態１の構成を、図１を用いて説明する。図１に示されるように、表示システムは、情報処理装置１と、第一のロボットアーム１００３と、第二のロボットアーム１００４と、観察者１００１の視点位置・姿勢を計測するセンサ１０１３と、を含む。また、表示システムは、観察者１００１の左右の視点位置に相当する部分にそれぞれカメラと液晶ディスプレイとを内蔵した表示装置（ＨＭＤ：Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）１０５１を含む。観察者１００１は、センサ１０１３や表示装置１０５１を装着している。表示装置１０５１は、例えば、観察者１００１の視点に配置される。また、対象物１００６は、ワークスペース１００５上にある。情景１０５２は、観察者１００１に観察される情景である。ＣＧ画像１０５３は、第二のロボットアーム１００４の動作のＣＧ画像である。
情報処理装置１は、第一のロボットアーム１００３の動きを制御すると共に、センサ１０１３からの信号を基に観察者１００１の視点位置及び姿勢を算出する。そして、情報処理装置１は、観察者１００１の視点位置及び姿勢と表示装置１０５１の内部パラメータとから観察者の視野を特定する。ここで、表示装置１０５１の情報とは、表示装置１０５１の投影モデルを表すパラメータであり、焦点距離や解像度、画素ピッチ等の情報を含む。情報処理装置１は、特定した視野の第二のロボットアーム１００４の表示位置に、第一のロボットアーム１００３の実際の動作と同期させて第二のロボットアーム１００４の動作のＣＧ画像を生成する。そして、情報処理装置１は、このＣＧ画像を表示装置１０５１に内蔵されたカメラより取得された映像に重畳した、重畳画像を生成し、表示装置１０５１に送信する。表示装置１０５１は、前記重畳画像を液晶ディスプレイに表示する。ここで、表示装置１０５１の種類等に応じて、観察者１００１の視点位置及び姿勢と、表示装置１０５１との間のキャリブレーションは行われているものとする。
本実施形態及び以下に示す実施形態において、ロボットは、１つ以上の稼働部位があるロボットであればどのような形態であっても良い。腕が何本あっても良く、腕でも足でも稼働する部位であれば良く、複数のロボットで構成しても良い。ロボットは６軸ロボットであっても、スカラロボットやパラレルリンクロボットであっても良く、その形態は問わない。
【００１０】
＜ハードウェア構成＞
図２は、情報処理装置１のハードウェア構成の一例を示す図である。情報処理装置１は、ハードウェア構成として、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、通信Ｉ／Ｆ１４と、表示装置１５と、入力装置１６と、ＨＤＤ１７と、を含む。ＣＰＵ１１は、システムバスに接続された情報処理装置１の各種デバイスの制御を行う。ＲＯＭ１２は、ＢＩＯＳのプログラムやブートプログラムを記憶する。ＲＡＭ１３は、ＣＰＵ１１の主記憶装置として使用される。通信Ｉ／Ｆ１４は、情報処理装置１をネットワークに接続し、ネットワークを介した情報通信を制御する。ネットワークには有線を介して接続されていても良いし、無線を介して接続されていても良いし、有線及び無線を介して接続されていても良い。表示装置１５は、ＣＰＵ１１等における処理結果を表示する。入力装置１６は、操作者による入力等を受け付ける。入力装置１６としては、例えば、マウスやキーボード等であっても良いし、後述するリモコン等であっても良い。ＨＤＤ１７は、ＯＳのプログラムやＯＳ上で動作する各種アプリケーションのプログラム等が格納される。
上記構成において、情報処理装置１の電源がＯＮになると、ＣＰＵ１１は、ＲＯＭ１２に格納されたブートプログラムに従って、ＨＤＤ１７からＯＳのプログラム等をＲＡＭ１３に読み込み、処理を実行することによって、情報処理装置１の機能を実現する。つまり、情報処理装置１のＣＰＵ１１がプログラムに基づき処理を実行することによって、情報処理装置１のソフトウェア構成及び後述するフローチャートの処理が実現される。
【００１１】
図３は、表示装置１０５１のハードウェア構成の一例を示す図である。表示装置１０５１は、ハードウェア構成として、ＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、通信Ｉ／Ｆ２４と、表示装置２５と、入力装置２６と、撮影装置２７と、を含む。ＣＰＵ２１は、システムバスに接続された表示装置１０５１の各種デバイスの制御を行う。ＲＯＭ２２は、ＯＳのプログラムやＯＳ上で動作する各種アプリケーション等を記憶する。ＲＡＭ２３は、ＣＰＵ２１の主記憶装置として使用される。通信Ｉ／Ｆ２４は、表示装置１０５１をネットワークに接続し、ネットワークを介した情報通信を制御する。ネットワークには有線を介して接続されていても良いし、無線を介して接続されていても良いし、有線及び無線を介して接続されていても良い。表示装置２５は、例えば、液晶ディスプレイ等であって、情報処理装置１で生成されたＣＧ画像等を表示する。入力装置２６は、操作者による入力等を受け付ける。撮影装置２７は、現実空間の画像を撮影する。
上記構成において、表示装置１０５１の電源がＯＮになると、ＣＰＵ２１は、ＲＯＭ２２に格納されたプログラム等をＲＡＭ２３に読み込み、処理を実行することによって、表示装置１０５１の機能を実現する。つまり、表示装置１０５１のＣＰＵ２１がプログラムに基づき処理を実行することによって、表示装置１０５１のソフトウェア構成等が実現される。
【００１２】
＜ソフトウェア構成＞
図４は、情報処理装置１のソフトウェア構成の一例を示す図である。図４に示されるように、情報処理装置１は、ソフトウェア構成として、データ保持部１００と、設定部１０１と、画像取得部１０２と、視点位置姿勢取得部１０３と、重畳画像生成部１０４と、出力部１０５と、ロボット制御部１０６と、を有する。
データ保持部１００は、ロボットを含む作業環境の３次元形状情報と、ロボットの制御データ、ロボットの動作を表すデータ（以降、動作データと称す）と、をＨＤＤ１７等に保持する。ロボットを含む作業環境の３次元形状情報は、ロボットを含む作業環境の３次元形状のメッシュモデルと、ロボットの関節情報と、からなる。但し、３次元形状情報は、ＣＡＤモデルのような解析曲面モデルであっても良い。ロボットの制御データは、経由点の位置及び経由点でのロボットの関節角やエンドエフェクタの開閉等のアクションを記述したデータのリストからなる。但し、ロボットの制御データは、経由点でのエンドエフェクタの位置姿勢やアクションのデータのリストであっても良い。ロボットの制御データは、スクリプトやプログラミング言語のようなロボット用の言語で書かれたテキスト形式であっても良いし、ロボットへ送信する信号の集合であっても良い。ロボットの制御データは、ロボットの動作を再生できるデータであればどのようなものであっても良い。
動作データは、事前にロボットの実機の動作を計測して得たロボットの動作を表すデータで、時系列的にロボットの関節角やエンドエフェクタの開閉等のアクションを記述したデータのリストからなる。ロボットの動作は公知のモーションキャプチャ―技術を用いて取得することができる。但し、動作データはロボットの動作を表すデータであればどのようなものであっても良い。動作データは、ロボットを複数の撮像装置や３次元計測装置で時系列的に撮影して構築した任意視点画像群や３次元計測データ群であっても良い。
【００１３】
設定部１０１は、重畳画像生成部１０４で描画するロボットの腕や、ロボットの動作の再生速度や再生位置等のパラメータを設定する。本実施形態では、ＤＶＤプレイヤー等の動画再生装置のリモコンと同様の入力装置を介した設定操作に応じて、設定部１０１は、表示する腕や再生速度や再生位置等の再生情報を設定する。より具体的には、再生ボタンの選択操作に応じて、設定部１０１は、ロボットの実機及び重畳画像の動きの再生を開始させるパラメータを設定する。また、停止ボタンの選択操作に応じて、設定部１０１は、再生を停止させるパラメータを設定する。また、スロー再生ボタンや早送りボタンの選択操作に応じて、設定部１０１は、動作速度を変更して再生させるパラメータを設定する。また、チャンネルボタンの選択操作に応じて、設定部１０１は、仮想表示させる腕、又は実機で動作させる腕を選択するパラメータを設定するようにしても良い。設定に用いる入力装置はリモコンに限らずマウスやキーボード、タッチパネルであっても良い。また、設定部１０１は、表示装置１５に表示されたボタンや動作シーケンス、カーソルを通してパラメータ等を設定しても良い。また情報処理装置１は、観察者１００１の動きをセンシングし、設定部１０１は、観察者１００１が行うジェスチャーに応じて、パラメータ等を設定しても良い。設定されたパラメータ等は表示装置１５やリモコン等の入力装置１６のディスプレイに表示されても良い。また仮想表示又は実機動作する腕は所定のルールに従って設定部１０１が自動で決めても良い。例えば、設定部１０１は、各腕のＩＤの順に仮想表示又は実機動作する腕を決めても良い。
画像取得部１０２は、視点位置姿勢取得部１０３で観察者１００１の視点位置及び姿勢を取得するのに合わせて、表示装置１０５１に内蔵されたカメラから観察者１００１に提示する映像を取得する。画像取得部１０２が取得する画像は、撮像画像の一例である。
視点位置姿勢取得部１０３は、観察者１００１の視点位置及び姿勢を取得する。図１に示したセンサ１０１３は、磁界発生器から発せられた磁力を計測することにより位置と姿勢とを計測できる６自由度センサである。視点位置姿勢取得部１０３は、センサ１０１３からの情報を基に観察者１００１の視点位置及び姿勢を取得する。
【００１４】
重畳画像生成部１０４は、視点位置姿勢取得部１０３で取得した視点位置及び姿勢と、データ保持部１００で保持する３次元形状情報及び動作データと、設定部１０１で設定されたパラメータとに基づいて、以下の画像を生成する。即ち、重畳画像生成部１０４は、視点位置及び姿勢や表示装置１０５１の画角情報に基づき、観察者１００１の視野を特定し、前記特定した視野の第二のロボットアーム１００４の表示位置に、第二のロボットアーム１００４が動作する様子を再生した画像を生成する。そして、重畳画像生成部１０４は、画像取得部１０２で取得した画像にロボットの腕の動作を再生した画像を重畳した画像を生成する。本実施形態では、重畳画像生成部１０４は、前記動作データを再生し、設定部１０１で設定された再生情報に基づいて再生位置（時刻）を決定し、再生位置における第二のロボットアーム１００４の状態を描画する。重畳画像生成部１０４は、描画視点として視点位置姿勢取得部１０３で取得した視点位置及び姿勢を利用する。また、重畳画像生成部１０４は、ロボットの形状は３次元形状情報に含まれるメッシュモデルを利用する。画角情報は表示装置の内部パラメータの一例である。
出力部１０５は、重畳画像生成部１０４で生成された画像を表示装置１０５１に送信する。
ロボット制御部１０６は、データ保持部１００で保持するロボットの制御データと設定部１０１で設定されたパラメータとに基づいて、第一のロボットアーム１００３を動作させる。ロボット制御部１０６は、制御データを再生し、設定部１０１で設定されたパラメータに基づいて重畳画像生成部１０４で決定した再生位置におけるロボットアームの状態になるように、第一のロボットアーム１００３の関節角等のパラメータを制御する。ロボット制御部１０６は、前記再生位置が制御データの経由点間である場合は、前後の経由点でのパラメータを補間した値でロボットの位置姿勢を制御する。
本実施形態では、図３の構成をソフトウェア構成として説明を行ったが、図３の全構成又は一部の構成をハードウェア構成として情報処理装置１に実装するようにしても良い。以下の実施形態においても同様である。
【００１５】
図５は、表示装置１０５１のソフトウェア構成の一例を示す図である。図５に示される様に、表示装置１０５１は、ソフトウェア構成として、受信部１１１と、表示部１１２と、を含む。
受信部１１１は、情報処理装置１から送信された画像を受信する。表示部１１２は、受信部１１１で受信された画像を表示装置２５に表示する。
本実施形態では、図５の構成をソフトウェア構成として説明を行ったが、図５の全構成又は一部の構成をハードウェア構成として表示装置１０５１に実装するようにしても良い。以下の実施形態においても同様である。
【００１６】
＜処理の流れ＞
図６のフローチャートを用いて、情報処理装置１の情報処理の流れを説明する。
Ｓ１０１０では、重畳画像生成部１０４は、データ保持部１００で保持している３次元形状情報、制御データ、動作データを取得する。
Ｓ１０２０では、設定部１０１は、重畳画像生成部１０４で描画するロボットアーム（及びロボット制御部１０６で実機動作させるロボットアーム）の選択、ロボットの再生速度や再生位置等のパラメータを設定する。観察者１００１は、再生位置をコマ送りで進めても良いし、早送りやスロー再生のように再生速度を指定して連続動作させても良い。観察者１００１は、干渉確認の難しいところでは再生位置を一時停止して、様々な視点から干渉を観測しても良い。
Ｓ１０３０では、画像取得部１０２は、表示装置１０５１を介して観察者１００１に提示する現実空間の画像を撮影する。
Ｓ１０４０では、視点位置姿勢取得部１０３は、センサ１０１３を介して重畳画像を生成するための観察者１００１の視点位置や姿勢を取得する。
Ｓ１０５０では、重畳画像生成部１０４は、Ｓ１０１０〜Ｓ１０４０で取得された、又は設定された情報等に基づいて、観察者１００１の視野を特定し、観察者１００１に提示する重畳画像を生成する。重畳画像生成部１０４は、出力部１０５に重畳画像を出力すると共に、ロボット制御部１０６に第一のロボットアーム１００３を動作するためのトリガ情報を出力する。
Ｓ１０６０では、出力部１０５は、表示装置１０５１にＳ１０４０で生成した画像を、例えば、無線等を介して送信する。
【００１７】
Ｓ１０７０では、ロボット制御部１０６は、Ｓ１０１０で取得した３次元形状情報、制御データ、Ｓ１０２０で設定されたパラメータ及び、Ｓ１０５０で出力されたトリガ情報に基づいて、第一のロボットアーム１００３を動作させる。これにより、第一のロボットアーム１００３を、重畳画像で描画される第二のロボットアーム１００４と同期させて動かすことができる。なお、本実施形態では、重畳画像生成部１０４からのトリガにより第一のロボットアーム１００３の動作の開始タイミングを制御したが、これに限られるものではない。例えば、観察者が手に持つコントローラで制御しても良い。
Ｓ１０８０では、設定部１０１は、観察者１００１の選択操作等に基づいて干渉確認が完了したか否かを判定する。設定部１０１は、干渉確認が完了していないと判定した場合、処理をＳ１０２０に戻し、干渉確認が完了したと判定した場合、図４に示すフローチャートの処理を終了する。処理がＳ１０２０に戻った場合、観察者１００１は、視点位置、姿勢とロボットの動作の再生位置とを変更しながら様々な視点で観測して干渉確認を行う。観察者１００１は、ＨＭＤ内蔵カメラで撮影された第一のロボットアーム１００３の画像に第二のロボットアーム１００４のＣＧ画像が重畳された画像を観察することにより、ロボットアーム同士の干渉やワーク等の実環境との干渉を確認することができる。
【００１８】
＜バリエーション＞
本実施形態では、２本の腕を持つロボットの一方の腕の干渉を確認する例を説明した。しかし上記の例に限らず、ＣＧで仮想表示する腕と実機動作させる腕を入れ替えて更に干渉を確認しても良い。また３本以上の腕を持つロボットであっても、仮想表示する腕と実機動作させる腕を順番に切り替えれば同様に干渉確認できる。
ロボットは１つ以上の稼働部位があるロボットであればどのような形態であっても良い。腕でも足でも稼働する部位があれば良い。ロボットは６軸ロボットであっても、スカラロボットやパラレルリンクロボットであっても良いし、複数のロボットの組合せデモ良い。
データ保持部１００は、ロボットを含む作業環境の３次元形状情報、ロボットの制御データ、ロボットの動作を表すデータを保持していれば良い。３次元形状情報はＣＡＤモデルのような解析曲面モデルであっても良い。制御データは経由点でのエンドエフェクタの位置姿勢やアクションのデータのリストであっても良い。制御データはスクリプトやプログラミング言語のようなロボット用の言語で書かれたテキスト形式であっても良いし、ロボットへ送信する信号の集合であっても良い。制御データはロボットの動作を再生できる情報であれば、どのようなものであっても良い。動作データはロボットの動作を表すデータであれば良い。動作データは実測したロボットの関節角等のパラメータのリストでなくとも、ロボットを複数の撮像装置や３次元計測装置で時系列的に撮影して構築した任意視点画像群や３次元計測データ群であっても良い。データ保持部１００が保持するデータはＨＤＤ１７に記憶されるものとして説明を行ったが、例えば、ネットワークを介して情報処理装置１と通信可能な他の装置のメモリ等に記憶されても良い。また干渉を確認する際には、仮想表示する一方の腕の実機は配置していなくても良い。
【００１９】
設定部１０１は、ロボットの動作の再生情報を設定できればどのような入力装置を介した操作に応じてパラメータ等を設定しても良い。再生情報は仮想表示、実機動作させる腕や再生速度、再生位置等の情報を含む。観察者１００１による設定方法はリモコンのボタンを用いて設定しても良いし、ジョグダイヤル等で再生位置を設定しても良い。設定部１０１は、設定された再生情報を表示装置１５に表示するようにしても良い。また、リモコン等の入力装置のＣＰＵが入力装置のディスプレイに再生情報を表示するようにしても良い。入力装置もリモコンに限らずマウスやキーボード、ジェスチャーを撮影しジェスチャーを解析し、ジェスチャーの意味を特定する装置であっても良い。また、設定部１０１は、表示装置１５に表示したボタンや動作シーケンス、カーソルにおける観察者の設定操作に応じて、パラメータを設定しても良い。例えば、設定部１０１は、観察者１００１が表示装置１５に表示されたロボットの腕の名前のリストから、マウスやタッチパネル、カーソルキー等の入力装置を用いて、仮想表示又は実機動作させる腕を選択しても良い。また、設定部１０１は、観察者１００１の動きをセンシングし、観察者１００１が触ったり、指さしたりしたロボットの腕を仮想表示する、又は実機を用いる腕として選択しても良い。
【００２０】
画像取得部１０２は、観察者１００１に提示する映像を取得できれば良い。但し、表示装置１０５１として光学シースルー型のディスプレイを用いる場合、画像取得部１０２は、情報処理装置１のソフトウェア構成として無くても良い。撮像装置としてカラーカメラを用いても良いし、濃淡カメラや赤外線カメラ等を用いても良い。また撮像装置は表示装置１０５１に取り付けても良いし、取り付けられていなくても良い。
また、表示装置１０５１として２次元液晶ディスプレイ等を利用する場合、位置姿勢が取得可能なカメラを任意の位置に配置することにより観察者１００１は自分の位置を変更することなくディスプレイの画面上で様々な位置・方向からの干渉チェックが可能となる。
視点位置姿勢取得部１０３は、観察者１００１の視点の３次元位置姿勢を取得できればどのような方法であっても良い。視点位置姿勢取得部１０３は、モーションキャプチャ技術を用いても良いし、観察者１００１が装着等している装置のＧＰＳや姿勢センサ、加速度センサ等の計測値から視点位置、姿勢を推定しても良い。また、視点位置姿勢取得部１０３は、画像マーカーを用いる方法や画像取得部１０２より取得された画像から抽出した特徴的な点をトラッキングする方法で観察者１００１の視点の３次元位置姿勢を取得するようにしても良い。また、視点位置姿勢取得部１０３は、視点位置、姿勢や視点位置、姿勢を算出するための映像やセンサのデータをＨＤＤ１７から読み出し、視点位置、姿勢を取得しても良い。
【００２１】
重畳画像生成部１０４は、視点位置姿勢取得部１０３で取得された視点位置姿勢に基づいて、現実環境の座標と仮想表示するロボットの座標とを合わせ、設定された再生位置（時刻）におけるロボットの腕が動作する画像を生成する。再生位置は動作データを取得したときと同じ速度で再生した場合の時刻であっても良いし、設定された倍率でゆっくり、又は速く再生した場合の時刻であっても良い。また再生位置は設定部１０１で設定された任意の再生位置であっても良い。重畳表示する画像はロボットやワーク等の３次元形状情報からポリゴンで描画さえた画像であっても良いし、ワイヤーフレームで描画された画像であっても良く、表現方法はどのようなものであっても良い。光学シースルー型の表示部を用いる場合、重畳画像生成部１０４は、ロボットが動作する様子の画像を生成すれば良い。また、ビデオシースルー型の表示部を用いる場合、重畳画像生成部１０４は、撮像部で撮影された画像にロボットが動作する様子の画像を重畳した画像を生成すれば良い。表示装置１０５１が光学シースルー型、ビデオシースルー型かの情報は、例えば、無線等を介して、情報処理装置１が表示装置１０５１より取得してもよし、観察者１００１の操作に応じて、設定部１０１が取得しても良い。例えば、重畳画像生成部１０４は、表示装置１０５１が光学シースルー型、ビデオシースルー型かの情報に応じて、対応する重畳画像を生成する。
【００２２】
出力部１０５は、前記重畳画像を表示装置１０５１に出力できればどのようなものであっても良い。例えば、出力部１０５は、前記重畳画像を表示装置１０５１に無線等を介して送信し、前記重畳画像を表示装置１０５１に表示させる。表示装置１０５１は、光学シースルー型でも、ビデオシースルー型でも良い。また、表示装置１０５１は、ＨＭＤであっても、ディスプレイやプロジェクタ、タブレット端末やスマートフォン、ロボットのティーチングペンダントに付属するディスプレイであっても良い。
ロボット制御部１０６は、重畳画像生成部１０４と同じ再生位置（時刻）における、制御データを再生したときのロボットの腕の位置姿勢に、ロボットの腕を移動できれば良い。ここでロボットの腕の位置姿勢とは、ロボットの腕の各関節の関節角と同義である。
【００２３】
以上述べた構成によれば、情報処理装置１は、予め計測しておいたロボットアームの実際の動作軌跡を使ってロボットアームの動作を重畳画像で生成する。そして、もう一方のロボットアームを実際に動作させた様子を撮影した画像に前記重畳画像を重畳する。このように処理することで、シミュレーションでは再現できないようなロボットアームの動きを、ロボットが衝突するかもしれないという思いを伴わずに、干渉チェック等が行えるという効果がある。また、一方のロボットアームが物理的に邪魔になって他方のアームとの干渉の確認が難しくなることが軽減できるため、作業効率が向上する。
【００２４】
＜＜実施形態２＞＞
＜概要＞
実施形態２では、２つの腕を持つロボットの動作を教示する場合について述べる。本実施形態では観察者１００１がロボットの腕を直接持って移動させて動作を入力するダイレクトティーチングを用いてロボットの動作を教示する。観察者１００１は、１腕ずつ教示する。教示済みのロボットの腕は実機で動作させない。本実施形態の情報処理装置は、観察者１００１の視界に教示済みの腕の動作シミュレーションの画像を重畳表示させるよう画像を生成し、表示装置に送信する。これにより、教示済みの腕が観察者１００１や他の腕に接触する可能性を軽減できる。更に、教示済みの腕が邪魔になって干渉の確認が難しくなることを軽減するため、作業効率が向上する。
＜構成＞
本実施形態における情報処理装置２の構成を図７に示す。情報処理装置２は、実施形態１の情報処理装置１と同様のハードウェア構成を有する。ロボット制御部２０６は、第一のロボットアーム１００３と第二のロボットアーム１００４とを備えたロボットを制御する。データ保持部２００、設定部２０１、画像取得部２０２、視点位置姿勢取得部２０３、重畳画像生成部２０４、出力部２０５は、実施形態１の対応する各部と同様である。実施形態２の情報処理装置２は、これらに加えて、動作入力部２０７を有する。以下では実施形態１との差を中心に説明する。本実施形態の第二のロボットアーム１００４は、第三のロボットの一例である。本実施形態の第一のロボットアーム１００３は、第四のロボットの一例である。また、本実施形態の第一のロボットアーム１００３は、本実施形態の第二のロボットアーム１００４と干渉する可能性があるロボットアームの一例である。
動作入力部２０７は、ダイレクトティーチングにより観察者１００１がロボットの腕を直接持って移動させたロボットのデータを情報処理装置２に入力する。より具体的に説明すると、動作入力部２０７は、移動後のロボットの各関節の関節角やアクション等のパラメータを経由点のパラメータとして制御データに追加し、データ保持部２００で保持させる。
【００２５】
＜処理の流れ＞
図８のフローチャートを用いて、情報処理装置２の情報処理の流れを説明する。
Ｓ２０１０〜Ｓ２０４０及びＳ２０５０〜２０６０の処理は実施形態１のＳ１０１０〜Ｓ１０４０及びＳ１０５０〜１０６０の処理と同様である。
Ｓ２０４５では、動作入力部２０７は、Ｓ２０２０で選択された実機動作させる第二のロボットアーム１００４の制御データを作成する。観察者１００１は表示装置１０５１に表示される第一のロボットアームの重畳画像を見ながら、第一のロボットアームと腕が干渉しないようにダイレクトティーチングにより第二のロボットアーム１００４の教示を行う。動作入力部２０７は、１ループ前のＳ２０４５で入力された第二のロボットアーム１００４の位置姿勢（初回の場合は第二のロボットアーム１００４の初期位置姿勢）から観察者１００１がロボットの腕を直接触って移動させた後のデータを入力する。即ち、動作入力部２０７は、移動後の第二のロボットアーム１００４の位置姿勢（各関節の関節角やアクション等のパラメータ）を経由点として制御データに追加し、データ保持部２００で保持させる。
【００２６】
Ｓ２０５０では、重畳画像生成部２０４は、Ｓ２０４０で取得された視点位置、姿勢、Ｓ２０１０で取得されたロボットの３次元形状情報及び動作データ、Ｓ２０２０で設定されたパラメータ、Ｓ２０４５で入力されたロボットの移動に係る情報等に基づいて、仮想表示する第一のロボットアーム１００３が動作する画像を作成する。より具体的には、重畳画像生成部２０４は、Ｓ２０４５で移動した第二のロボットアーム１００４を、１ループ前のＳ２０４５での位置姿勢から今回のＳ２０４５で入力した位置姿勢に移動する動作をシミュレーションし、移動にかかる時間（移動時間）を算出する。重畳画像生成部２０４は、動作データ等に従って、１ループ前のＳ２０５０で生成した重畳画像における仮想表示する第一のロボットアーム１００３の位置姿勢から、前記移動時間の分進めた再生位置における、第一のロボットアーム１００３の動作を再生した画像を生成する。
Ｓ２０８０では、動作入力部２０７は、観察者１００１のダイレクトティーチングによる第二のロボットアーム１００４の教示が終了したか否かを判定する。例えば、動作入力部２０７は、所定の間、ダイレクトティーチングによる動作入力がない場合、教示が終了したと判定する。動作入力部２０７は、教示が終了したと判定した場合、図８に示すフローチャートの処理を終了し、教示が終了していないと判定した場合、処理をステップＳ２０２０に戻す。
【００２７】
＜バリエーション＞
本実施形態では、干渉を確認しながら、２本の腕を持つロボットの一方の腕の動作を入力する例を説明した。しかし上記の例の処理の後に、観察者１００１は、仮想表示する腕と動作入力する腕とを入れ替えて更に動作入力をしても良い。また観察者１００１は、３本以上の腕を持つロボットであっても、仮想表示する腕と動作入力する腕を順番に切り替えれば同様に動作入力できる。
動作入力部２０７は、ロボットの動作を制御できればどのようなものであっても良い。動作入力部２０７は、上述したように観察者１００１がロボットの腕を直接持って移動させた動作のデータを入力しても良いし、観察者１００１がティーチングペンダントを用いて入力した経由点におけるロボットの位置や関節角、アクション等を入力しても良い。また、動作入力部２０７は、計測された観察者１００１の動作に基づいてロボットの制御データを生成しても良い。動作入力部２０７は、エンドエフェクタや把持物体を移動させる様子をカメラや三次元計測装置で観測した結果の計測データから、エンドエフェクタや把持物体の位置姿勢を推定し、その位置姿勢に基づいてロボットの制御データを作成しても良い。また、観察者１００１は、実施形態１や２の方法で干渉確認を行って干渉が確認された場合に、上記の方法によってロボットの動作を入力し、制御データを修正するようにしても良い。例えば、観察者１００１は、修正したい動作の経由点を指定し、その経由点でのロボットの制御パラメータ（関節角や位置、アクション等）をティーチングペンダントや、ダイレクトティーチング、コンピュータ端末等を用いて編集しても良い。情報処理装置は、ティーチングペンダントや、ダイレクトティーチング、コンピュータ端末等を用いた観察者１００１による編集に係る操作を受け取り、制御データを編集する。編集する制御データは仮想表示する第一のロボットアーム１００３のものであっても、実機動作させる第二のロボットアーム１００４のものであっても良い。
以上述べた構成によれば、複数の腕を持つロボットの動作教示において、教示済みの腕が観察者１００１や他の腕に接触する可能性を軽減できる。更に、教示済みの腕が邪魔になって干渉の確認が難しくなることを軽減するため、教示作業の効率が向上する。
【００２８】
＜＜実施形態３＞＞
＜概要＞
実施形態３では、干渉を確認する際に、注意して干渉を確認すべき箇所を強調して重畳表示する例について説明する。このような構成とすることにより、観察者は明らかに干渉しない箇所の干渉を確認する手間を軽減でき、作業効率が向上する。
本実施形態における情報処理装置３の構成を図９に示す。情報処理装置３は、実施形態１と同様のハードウェア構成を有する。ロボット制御部３０６は、第一のロボットアーム１００３と第二のロボットアーム１００４とを備えたロボットを制御する。データ保持部３００、設定部３０１、画像取得部３０２、視点位置姿勢取得部３０３、重畳画像生成部３０４、出力部３０５は、実施形態１の対応する各部と同様である。実施形態３の情報処理装置３は、これらに加えて、干渉判定部３０８を有する。以下では実施形態１との差を中心に説明する。
干渉判定部３０８は、ロボットの腕同士に干渉しそうな箇所があるかどうかを判定し、その干渉の可能性のある箇所を検出する。より具体的には、干渉判定部３０８は、データ保持部３００で保持するロボットの腕の３次元形状情報、制御データ、動作データ及び設定部３０１で設定されたパラメータから決定される再生位置（時刻）に基づき、ロボットの動作のシミュレーションを行う。干渉判定部３０８は、所定の再生位置におけるシーンのシミュレーションを行い、ロボットの腕同士に事前に設定された閾値以下の距離になる箇所が存在すれば、干渉の可能性があると判定し、その干渉箇所を検出する。
【００２９】
＜処理の流れ＞
図１０のフローチャートを用いて、情報処理装置３の情報処理の流れを説明する。
Ｓ３０１０〜Ｓ３０４０及びＳ３０５０〜Ｓ３０８０の処理は実施形態１のＳ１０１０〜Ｓ１０４０及びＳ１０５０〜Ｓ１０８０の処理と同様である。
Ｓ３０４７では、干渉判定部３０８は、ロボットの腕同士に接触しそうな箇所があるかどうかを判定し、干渉の可能性のある箇所を検出する。より具体的には、干渉判定部３０８は、データ保持部３００で保持する３次元形状と動作データとに基づいて仮想表示する第二のロボットアーム１００４の動作のシミュレーションをする。また、干渉判定部３０８は、３次元形状と制御データとに基づいて実機動作させる第一のロボットアーム１００３との動作をシミュレーションし、干渉判定を行う。干渉判定部３０８は、１ループ前の再生位置におけるロボットの位置姿勢から、設定部３０１で設定された再生速度に応じて進めた再生位置における、ロボットのシミュレーションを行う。そして、干渉判定部３０８は、ロボットの腕やワーク、ワークスペース等の間に事前に設定された閾値以下の距離になる箇所が存在すれば、干渉の可能性があると判定し、その箇所を検出する。
Ｓ３０５０では、重畳画像生成部３０４は、Ｓ３０４０で取得された視点位置、姿勢、Ｓ３０１０で取得された３次元形状情報及び動作データ、Ｓ３０２０で設定されたパラメータから、仮想表示する第二のロボットアーム１００４が動作する画像を作成する。更に、重畳画像生成部３０４は、Ｓ２０４７で検出された接触の可能性のある個所を強調して画像を生成する。より具体的には、重畳画像生成部３０４は、検出された箇所周辺のロボットの３次元形状モデルの色を赤色で表示する。
【００３０】
＜バリエーション＞
干渉判定部３０８は、ロボットの３次元情報と動作データとからロボットの動作シミュレーションを行って、干渉の可能性がある箇所を検出できれば良い。例えば、干渉判定部３０８は、本実施形態のように、実機動作させる第一のロボットアーム１００３のシミュレーションの結果を用いなくとも良い。干渉判定部３０８は、実機動作させる第一のロボットアーム１００３の３次元計測結果と仮想表示する第二のロボットアーム１００４のシミュレーション結果との干渉判定を行っても良い。例えば、所定の再生位置で再生させたロボットの実機の第一のロボットアーム１００３を移動し、環境に設置した３次元計測装置を用いて、ロボットを含むワークスペースを３次元計測する。干渉判定部３０８は、取得した３次元計測データと、動作データと、３次元形状情報と、に基づいて再生した仮想表示する第二のロボットアーム１００４との距離が所定の閾値以下になる個所を干渉箇所として検出しても良い。また、干渉判定部３０８が用いる干渉の判定基準は距離でも良いし、３次元形状の包含関係であっても良い。また、干渉判定部３０８は、干渉箇所を検出した際に音声を発生させて通知しても良い。
重畳画像生成部３０４は、干渉箇所を強調表示する際は、干渉箇所が分かればどのように画像を生成しても良い。重畳画像生成部３０４は、干渉箇所の色を変えた画像を生成しても良いし、点滅させた画像を生成しても良い。また、重畳画像生成部３０４は、干渉箇所を矢印等で示した画像を生成しても良いし、半透明の球や直方体で囲んだ画像を生成しても良いし、文章を表示した画像を生成しても良い。
また実施形態２のように動作入力部を情報処理装置に実装し、干渉を確認しながら制御データの入力や修正を行っても良い。
以上述べた構成によれば、明らかに干渉しない箇所の干渉を確認する手間を軽減でき、作業効率が向上する。
【００３１】
＜＜実施形態４＞＞
＜概要＞
実施形態４では、実際のロボットやその周辺機器、作業環境等の形状が、ロボットの動作画像を生成するための３次元形状情報と異なる場合の一例を説明する。この場合、情報処理装置は、ロボットやその周辺機器、作業環境等を３次元計測し、計測した３次元形状情報に基づいてロボットの動作画像を生成する。このような構成とすることにより、実際のロボットや周辺機器、作業環境の３次元形状を反映した動作画像を観測しながら、正確性高く干渉確認を行うことができ、作業効率が向上する。
本実施形態における情報処理装置４のソフトウェア構成の一例を図１１に示す。情報処理装置４は、実施形態１と同様のハードウェア構成に加えて、ロボットやその周辺機器、環境等の３次元形状を計測する不図示の計測装置を有する。本実施形態では計測装置としてＲＧＢＤカメラ（カラー画像と距離画像とを同時に撮影可能なカメラ）を例に説明を行う。ロボット制御部４０６は、第一のロボットアーム１００３と第二のロボットアーム１００４とを備えたロボットを制御する。データ保持部４００、設定部４０１、画像取得部４０２、視点位置姿勢取得部４０３、重畳画像生成部４０４、出力部４０５は、実施形態１の対応する各部と同様である。情報処理装置４は、これらに加えて、形状計測部４０９をソフトウェア構成として有する。以下では実施形態１との差を中心に説明する。
形状計測部４０９は、計測装置を用いて、実際のロボットや、ケーブル、作業に用いる冶具等の周辺機器、作業環境の３次元形状情報を計測、取得する。本実施形態では、形状計測部４０９は、計測装置を移動させ、様々な視点からロボットや周辺機器、作業環境を計測したカラー画像及び距離画像を取得する。情報処理装置４は、取得したカラー画像及び距離画像から特徴を抽出、マッチングすることで撮影視点の位置姿勢を算出し、各カラー画像及び距離画像から生成した色つきの３次元点群を1つの座標系に統合、メッシュ化する。このことで、ロボットや周辺機器、作業環境の３次元形状情報を生成する。更に、情報処理装置４は、生成した３次元形状情報とデータ保持部４００で保持する３次元形状情報との位置合わせを行い、生成した３次元形状情報の座標系をデータ保持部４００で保持するロボットの３次元形状情報の座標系に合わせる。このとき、情報処理装置４は、ロボット等の動作データを持つ３次元形状に関しては、可動部分ごとで対応付け、位置合わせを行う。
【００３２】
＜処理の流れ＞
図１２のフローチャートを用いて、情報処理装置４の情報処理の流れを説明する。
Ｓ４０１０及び、Ｓ４０２０〜Ｓ４０８０の処理は実施形態１のＳ１０１０及びＳ１０２０〜Ｓ１０８０の処理と同様である。
Ｓ４０１５では、形状計測部４０９は、実際のロボットや周辺機器、作業環境を計測した３次元形状情報を取得する。Ｓ４０１５の処理は、３次元形状情報取得の処理の一例である。
Ｓ４０５０では、重畳画像生成部４０４は、以下のデータ等から仮想表示する第二のロボットアーム１００４が動作する画像を作成する。即ち、重畳画像生成部４０４は、Ｓ４０４０で取得された視点位置、姿勢、Ｓ４０１０で取得された動作データ、Ｓ４０１５で取得された３次元形状情報、Ｓ４０２０で設定されたパラメータから、仮想表示する画像を作成する。
【００３３】
＜バリエーション＞
形状計測部４０９は、実際のロボットやその周辺機器、作業環境等の３次元形状情報が取得できれば良い。形状計測部４０９は、ＲＧＢＤカメラやＴｏＦセンサ、ステレオカメラを用いて３次元形状を計測しても良い。また、形状計測部４０９は、計測装置を動かしたり、複数の計測装置を利用したりして、複数視点で計測した３次元形状情報を組み合わせて利用しても良い。複数の計測装置は予めその撮影位置姿勢を校正しておいても良い。３次元形状情報は３次元点群であっても良いし、サーフェル（Ｓｕｒｆｅｌ： Ｓｕｒｆａｃｅ  Ｅｌｅｍｅｎｔ）の集合やメッシュモデル、ＣＡＤモデルであっても良い。テクスチャ情報を含んでいても良い。また、計測した３次元形状情報とデータ保持部で保持する３次元形状情報とを組み合わせて利用しても良い。
本実施形態は実施形態１と同じ構成の場合について説明したが、実施形態２や３と組み合わせても良い。より具体的には、情報処理装置４は、データ保持部で保持する３次元形状情報の代わりに、形状計測部４０９で計測した３次元形状情報を利用して、実施形態２や３を実施すれば良い。
ロボット制御部４０６は、データ保持部４００で保持するロボットの制御データと設定部４０１で設定されたパラメータとに基づいて、ロボット及び周辺機器を制御し、動作させる。ロボット及び周辺機器が動作するにあたり、形状計測部４０９で計測した作業環境等と接触する可能性がある場合は、接触を回避するように、例えば、ロボット制御部４０６は、ロボット及び周辺機器の動作データを変更しても良い。
【００３４】
以上述べた構成によれば、情報処理装置４は、実際に計測したロボット及び周辺機器、作業環境の３次元形状情報を用いてロボットアームや周辺機器の動作を重畳画像で生成する。そして、情報処理装置４は、もう一方のロボットアームを実際に動作させた様子を撮影した画像に前記重畳画像を重畳する。このように処理することで、事前のシミュレーションでは再現できていなかったロボットや周辺機器、作業環境等の３次元形状をシミュレーション及び重畳画像に反映することができ、正確な干渉チェック等が行えるという効果があり、作業効率が向上する。
【００３５】
＜＜実施形態５＞＞
＜概要＞
実際のロボットやその周辺機器、作業環境等の形状及びその動作が、ロボットの動作画像を生成するための３次元形状情報及び動作と異なる場合がある。そこで実施形態５では、情報処理装置は、ロボットやその周辺機器、作業環境等の３次元形状及び動作を計測し、計測した３次元形状情報及び動作に基づいてロボットの動作画像を生成する。このような構成とすることにより、実際のロボットや周辺機器、作業環境の３次元形状及び動作を反映した動作画像を観測しながら、正確性高く干渉確認を行うことができ、作業効率が向上する。
本実施形態における情報処理装置５のソフトウェア構成の一例を図１３に示す。情報処理装置５は、実施形態４と同様のハードウェア構成を有する。ロボット制御部５０６は、第一のロボットアーム１００３と第二のロボットアーム１００４とを備えたロボットを制御する。データ保持部５００、設定部５０１、画像取得部５０２、視点位置姿勢取得部５０３、重畳画像生成部５０４、出力部５０５は、実施形態４の対応する各部と同様である。情報処理装置５は、これらに加えて、形状・動作計測部５１０をソフトウェア構成として有する。以下では実施形態４との差を中心に説明する。
本実施形態における形状・動作計測部５１０は、不図示の計測装置を用いて、実際のロボットや、ケーブル、作業に用いる冶具等の周辺機器、作業環境の３次元形状情報及び動作情報を計測、取得する。本実施形態では計測装置として複数のＲＧＢＤカメラを例に説明を行う。複数のＲＧＢＤカメラの位置姿勢の関係は事前に校正し、既知としておく。複数のＲＧＢＤカメラは同期して、複数の視点からロボットや周辺機器、作業環境を計測する。
ロボット制御部５０６は、計測する際に、データ保持部５００で保持する動作データに基づいて、ロボットや冶具等の周辺機器を制御して動作させる。情報処理装置５は、計測して得られたカラー画像及び距離画像から色つきの３次元点群を生成する。事前校正により各計測視点位置は既知であるので、情報処理装置５は、各３次元点群を統合した３次元点群を３次元形状情報として逐次取得する。これを一連の動作が終了するまで、逐次繰り返し、情報処理装置５は、時系列に並んだ３次元形状情報を、３次元形状情報及び動作情報として取得する。
【００３６】
＜処理の流れ＞
図１３のフローチャートを用いて、情報処理装置５の情報処理の流れを説明する。
Ｓ５０１０及び、Ｓ５０２０〜Ｓ５０８０の処理は実施形態１のＳ１０１０及びＳ１０２０〜Ｓ１０８０の処理と同様である。
Ｓ５０１３では、設定部５０１は、ロボットの再生速度や再生位置等のパラメータを設定する。
Ｓ５０１５では、形状・動作計測部５１０は、実際のロボットや周辺機器、作業環境を計測した３次元形状情報を逐次、取得する。Ｓ５０１５の処理は、形状・動作取得の処理の一例である。
Ｓ５０１６では、ロボット制御部５０６は、Ｓ５０１０で取得した３次元形状情報、制御データ、Ｓ５０１３で設定されたパラメータに基づいて、ロボット及び作業に用いる冶具等の周辺機器を制御し、動作させる。
Ｓ５０１７では、形状・動作計測部５１０は、一連のロボット及び周辺機器の動作の再生が完了したか否かを判定する。形状・動作計測部５１０は、再生が完了していないと判定した場合、処理をＳ５０１５に戻し、干渉確認が完了したと判定した場合、処理をＳ５０１８に移す。
Ｓ５０１８では、形状・動作計測部５１０は、Ｓ５０１５で逐次取得した３次元形状情報を３次元動画に変換し、ロボットの動作データとして保持する。形状・動作計測部５１０は、ロボットの動作データとして保持した３次元動画を、データ保持部５００に保存しても良い。
Ｓ５０５０では、重畳画像生成部５０４は、画像を作成する。即ち、重畳画像生成部５０４は、Ｓ５０４０で取得された視点位置、姿勢、Ｓ５０１０で取得された動作データ、Ｓ５０１８で取得された３次元動画、Ｓ５０２０で設定されたパラメータから、仮想表示する第二のロボットアーム１００４が動作する画像を作成する。
【００３７】
＜バリエーション＞
形状・動作計測部５１０は、実際のロボットやその周辺機器、作業環境等の３次元形状情報及び動作が取得できれば良い。形状・動作計測部５１０は、ＲＧＢＤカメラやＴｏＦセンサ、ステレオカメラを用いて３次元形状を計測しても良い。また、形状・動作計測部５１０は、複数の計測装置を利用して、複数視点で計測した３次元形状情報を組み合わせて利用しても良い。複数の計測装置は予めその撮影位置姿勢を校正しておいても良い。３次元形状情報は３次元点群であっても良いし、サーフェル（Ｓｕｒｆｅｌ： Ｓｕｒｆａｃｅ  Ｅｌｅｍｅｎｔ）の集合やメッシュモデル、ＣＡＤモデルであっても良い。テクスチャ情報を含んでいても良い。また、計測した３次元形状情報とデータ保持部で保持する３次元形状情報とを組み合わせて利用しても良い。動作データは前記３次元形状情報を時系列的に並べた３次元動画であっても良い。形状・動作計測部５１０で取得した時系列に並べた３次元形状情報を、データ保持部で保持する３次元形状情報（例えばロボットの３次元形状モデルと関節情報）に当てはめ、ロボットの制御データに変換しても良い。そして、重畳画像生成部５０４は、形状・動作計測部５１０で取得した３次元形状情報と変換した制御データとに基づいて、仮想表示する第二のロボットアーム１００４が動作する画像を作成しても良い。
ロボット制御部５０６は、データ保持部５００で保持するロボットの制御データと設定部５０１で設定されたパラメータとに基づいて、ロボット及び周辺機器を制御し、動作させる。ロボット及び周辺機器の再生速度は、設定部５０１で変更しても良い。またロボット及び周辺機器が動作するにあたり、形状・動作計測部５１０で計測した作業環境に接触する可能性がある場合は、作業環境との接触を回避するように、例えば、ロボット制御部４０６は、ロボット及び周辺機器の動作データを変更しても良い。そして、その変更した動作を形状・動作計測部５１０で計測すれば良い。
本実施形態は実施形態１と同じ構成の場合について説明したが、実施形態２や３と組み合わせても良い。より具体的にはデータ保持部で保持する３次元形状情報の代わりに、形状・動作計測部５１０で計測した３次元形状情報及び動作を利用して、実施形態２や３を実施すれば良い。
【００３８】
以上述べた構成によれば、情報処理装置５は、実際に計測したロボット及び周辺機器、作業環境の３次元形状情報及び動作情報を用いてロボットアームや周辺機器の動作を重畳画像で生成する。そして、情報処理装置５は、もう一方のロボットアームを実際に動作させた様子を撮影した画像に前記重畳画像を重畳する。このように処理することで、事前のシミュレーションでは再現できていなかったロボットや周辺機器、作業環境等の３次元形状及び動作をシミュレーション及び重畳画像に反映することができ、正確な干渉チェック等が行えるという効果があり、作業効率が向上する。
【００３９】
＜＜その他の実施形態＞＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００４０】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
【００４１】
以上、上述した各実施形態によれば、ロボットを教示する際にロボットが衝突する可能性を軽減し、教示作業の効率を向上させることができる。
【符号の説明】
【００４２】
１１  ＣＰＵ、１２  ＲＯＭ、１３  ＲＡＭ、１７  ＨＤＤ
【図１】
0006723738.tif 000002
【図２】
0006723738.tif 000003
【図３】
0006723738.tif 000004
【図４】
0006723738.tif 000005
【図５】
0006723738.tif 000006
【図６】
0006723738.tif 000007
【図７】
0006723738.tif 000008
【図８】
0006723738.tif 000009
【図９】
0006723738.tif 000010
【図１０】
0006723738.tif 000011
【図１１】
0006723738.tif 000012
【図１２】
0006723738.tif 000013
【図１３】
0006723738.tif 000014
【図１４】
0006723738.tif 000015