(57)【要約】【課題】拡張現実と複合現実を効率的に利用して使用者の作業を補助するロボット制御装置を提供する。【解決手段】ロボット制御装置１０は、コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又はその情報を、その環境を撮像して得た画像に重ね合わせて表示可能である表示装置１８と、その環境に含まれるロボット１４と表示装置１８との相対的な位置及び姿勢を取得する位置姿勢取得部２０と、ロボット１４、ロボット１４の可動部または可動部で支持される物体などの仮想モデルを表示装置１８に表示させる表示制御部２４と、表示装置１８に表示された仮想モデルを操作する操作制御部２６と、操作された仮想モデルの位置及び姿勢の少なくとも一方と、ロボット１４と表示装置１８との相対的な位置及び姿勢とに基づいて、ロボット１４の位置及び姿勢の少なくとも一方を規定する位置姿勢規定部２８とを備える。【選択図】図１
2020055075.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又は該情報を、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示装置と、
前記環境に含まれるロボットと前記表示装置との相対的な位置及び姿勢を取得する位置姿勢取得部と、
前記ロボット、前記ロボットの可動部、当該可動部で支持される物体及び当該可動部の作業対象物の少なくとも一つの仮想モデルを、前記表示装置に表示させる表示制御部と、
前記表示装置に表示された前記仮想モデルを操作する操作制御部と、
前記操作制御部によって操作された前記仮想モデルの位置及び姿勢の少なくとも一方と、前記位置姿勢取得部が取得した前記相対的な位置及び姿勢とに基づいて、前記ロボットの位置及び姿勢の少なくとも一方を規定する位置姿勢規定部と、
を備えるロボット制御装置。
【請求項２】
前記表示装置は、前記現実の環境を撮像するカメラと、前記カメラが取得した現実画像をリアルタイムで表示するディスプレイとを有する頭部装着型表示装置又は携帯端末である、請求項１に記載のロボット制御装置。
【請求項３】
前記表示装置は、透過型ディスプレイを備えた頭部装着型表示装置である、請求項１に記載のロボット制御装置。
【請求項４】
前記位置姿勢規定部は、前記操作制御部によって操作された前記仮想モデルの位置及び姿勢の少なくとも一方と、前記位置姿勢取得部が取得した前記相対的な位置及び姿勢とに基づいて、前記仮想モデルの位置及び姿勢の少なくとも一方で指定される前記ロボットの位置及び姿勢の少なくとも一方に前記ロボットが実際に到達可能かを判定し、到達可能であれば、前記仮想モデルの位置及び姿勢の少なくとも一方に基づいて前記ロボットの位置及び姿勢の少なくとも一方を規定する、請求項１〜３のいずれか１項に記載のロボット制御装置。
【請求項５】
前記位置姿勢規定部が規定した前記ロボットの位置及び姿勢の少なくとも一方に基づいて、前記ロボットの動作プログラムを生成するプログラム生成部をさらに有する、請求項１〜４のいずれか１項に記載のロボット制御装置。
【請求項６】
前記ロボットと前記表示装置の少なくとも一方に、前記相対的な位置及び姿勢を追随して求める追随装置を備えた請求項１〜５のいずれか１項に記載のロボット制御装置。
【請求項７】
コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又は該情報を、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示装置と、
前記現実の環境に含まれるロボット、前記ロボットの可動部、当該可動部で支持される物体及び当該可動部の作業対象物の少なくとも一つの物体の仮想モデルを、前記表示装置に表示させる表示制御部と、
前記表示装置に表示された前記仮想モデルを操作する操作制御部と、
前記現実の環境に含まれる前記物体と前記表示装置に表示された前記仮想モデルとが一致するか、または前記表示装置に表示された前記現実画像に表された前記物体と前記仮想モデルとが一致するときの、前記現実の環境に含まれる前記物体の位置及び姿勢の少なくとも一方、または、前記表示装置に表示された前記仮想モデルの位置及び姿勢の少なくとも一方に基づいて、前記ロボットと前記表示装置との相対的な位置及び姿勢の少なくとも一方を取得する位置姿勢取得部と、
を備えるロボット制御装置。
【請求項８】
前記位置姿勢取得部は、前記ロボットの制御部により設定された座標系と前記表示装置の制御部により設定された座標系との相対位置関係と、前記現実の環境に含まれる前記物体と前記表示装置に表示された前記仮想モデルとが一致するか、または前記表示装置に表示された前記現実画像に表された前記物体と前記仮想モデルとが一致するときの、前記現実の環境に含まれる前記物体の位置及び姿勢の少なくとも一方、または、前記表示装置に表示された前記仮想モデルの位置及び姿勢の少なくとも一方に基づいて、前記ロボットと前記表示装置の相対的な位置及び姿勢の少なくとも一方を取得する、請求項７に記載のロボット制御装置。
【請求項９】
コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又は該情報を、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示部と、
前記環境に含まれるロボットと前記表示部との相対的な位置及び姿勢を取得する位置姿勢取得部と、
前記ロボット、前記ロボットの可動部、当該可動部で支持される物体及び当該可動部の作業対象物の少なくとも一つの仮想モデルを、前記表示部に表示させる表示制御部と、
前記表示部に表示された前記仮想モデルを操作する操作制御部と、
前記操作制御部によって操作された前記仮想モデルの位置及び姿勢の少なくとも一方と、前記位置姿勢取得部が取得した前記相対的な位置及び姿勢とに基づいて、前記ロボットの位置及び姿勢の少なくとも一方を規定する位置姿勢規定部と、
を備える表示装置。
【請求項１０】
コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又は該情報を、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示部と、
前記現実の環境に含まれるロボット、前記ロボットの可動部、当該可動部で支持される物体及び当該可動部の作業対象物の少なくとも一つの物体の仮想モデルを、前記表示部に表示させる表示制御部と、
前記表示部に表示された前記仮想モデルを操作する操作制御部と、
前記現実の環境に含まれる前記物体と前記表示部に表示された前記仮想モデルとが一致するか、または前記表示部に表示された前記現実画像に表された前記物体と前記仮想モデルとが一致するときの、前記現実の環境に含まれる前記物体の位置及び姿勢の少なくとも一方、または、前記表示部に表示された前記仮想モデルの位置及び姿勢の少なくとも一方に基づいて、前記ロボットと前記表示部との相対的な位置及び姿勢の少なくとも一方を取得する位置姿勢取得部と、
を備える表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張現実と複合現実を用いたロボット制御装置及び表示装置に関する。
【背景技術】
【０００２】
従来のロボットシステムには、仮想現実（Virtual Reality：ＶＲ）に関する技術を利用して、ロボットの状態や作業者の操作のナビゲーションを行えるものがある。しかし仮想現実では、ロボットやその周辺物のモデルデータ等を事前に用意する必要があり、正確なモデルを構築するのは時間と労力がかかる。また、ロボット等の仮想モデルと現実との乖離が大きいと、正確なナビゲーション等が困難となる。
【０００３】
そこで近年のロボットシステムには、拡張現実（Augmented Reality：ＡＲ）に関する手段（ＡＲ対応ディスプレイ等）や技術を用いて、ロボットの状態表示や作業者の操作補助（ナビゲーション）を行うものがある（例えば特許文献１−６参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１０７３７９号公報
【特許文献２】特開２０１７−１３８６０９号公報
【特許文献３】特開２０１２−１７１０２４号公報
【特許文献４】特開２０１７−１０４９４４号公報
【特許文献５】特開２００４−２０９６４１号公報
【特許文献６】特表２０１７−５２３０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
拡張現実を利用してロボットの教示等の作業を行う場合、作業者は実在するロボットに重畳表示された画像または情報を見ながら作業を行うことができるが、教示等を行うときは従来と同様、現実のロボットを動かす必要がある。従って従来の拡張現実を利用した作業は、十分に使い勝手のよいものとは言えず、拡張現実と複合現実（Mixed Reality：ＭＲ）の長所をより効率的に利用して、使用者の作業を補助する技術が望まれている。
【課題を解決するための手段】
【０００６】
本開示の一態様は、コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又は該情報を、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示装置と、前記環境に含まれるロボットと前記表示装置との相対的な位置及び姿勢を取得する位置姿勢取得部と、前記ロボット、前記ロボットの可動部、当該可動部で支持される物体及び当該可動部の作業対象物の少なくとも一つの仮想モデルを、前記表示装置に表示させる表示制御部と、前記表示装置に表示された前記仮想モデルを操作する操作制御部と、前記操作制御部によって操作された前記仮想モデルの位置及び姿勢の少なくとも一方と、前記位置姿勢取得部が取得した前記相対的な位置及び姿勢とに基づいて、前記ロボットの位置及び姿勢の少なくとも一方を規定する位置姿勢規定部と、を備えるロボット制御装置である。
【０００７】
本開示の他の態様は、コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又は該情報を、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示装置と、前記現実の環境に含まれるロボット、前記ロボットの可動部、当該可動部で支持される物体及び当該可動部の作業対象物の少なくとも一つの物体の仮想モデルを、前記表示装置に表示させる表示制御部と、前記表示装置に表示された前記仮想モデルを操作する操作制御部と、前記現実の環境に含まれる前記物体と前記表示装置に表示された前記仮想モデルとが一致するか、または前記表示装置に表示された前記現実画像に表された前記物体と前記仮想モデルとが一致するときの、前記現実の環境に含まれる前記物体の位置及び姿勢の少なくとも一方、または、前記表示装置に表示された前記仮想モデルの位置及び姿勢の少なくとも一方に基づいて、前記ロボットと前記表示装置との相対的な位置及び姿勢の少なくとも一方を取得する位置姿勢取得部と、を備えるロボット制御装置である。
【０００８】
本開示のさらに他の態様は、コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又は該情報を、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示部と、前記環境に含まれるロボットと前記表示部との相対的な位置及び姿勢を取得する位置姿勢取得部と、前記ロボット、前記ロボットの可動部、当該可動部で支持される物体及び当該可動部の作業対象物の少なくとも一つの仮想モデルを、前記表示部に表示させる表示制御部と、前記表示部に表示された前記仮想モデルを操作する操作制御部と、前記操作制御部によって操作された前記仮想モデルの位置及び姿勢の少なくとも一方と、前記位置姿勢取得部が取得した前記相対的な位置及び姿勢とに基づいて、前記ロボットの位置及び姿勢の少なくとも一方を規定する位置姿勢規定部と、を備える表示装置である。
【０００９】
本開示のさらに他の態様は、コンピュータによって生成された情報を、現実の環境に重ね合わせて表示可能であるか、又は該情報を、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示部と、前記現実の環境に含まれるロボット、前記ロボットの可動部、当該可動部で支持される物体及び当該可動部の作業対象物の少なくとも一つの物体の仮想モデルを、前記表示部に表示させる表示制御部と、前記表示部に表示された前記仮想モデルを操作する操作制御部と、前記現実の環境に含まれる前記物体と前記表示部に表示された前記仮想モデルとが一致するか、または前記表示部に表示された前記現実画像に表された前記物体と前記仮想モデルとが一致するときの、前記現実の環境に含まれる前記物体の位置及び姿勢の少なくとも一方、または、前記表示部に表示された前記仮想モデルの位置及び姿勢の少なくとも一方に基づいて、前記ロボットと前記表示部との相対的な位置及び姿勢の少なくとも一方を取得する位置姿勢取得部と、を備える表示装置である。
【発明の効果】
【００１０】
本開示によれば、実在するロボットではなく、現実の環境に重畳表示されたロボットの仮想モデルを使用者の動作に基づいて動かすので、使用者は現実のロボットを動かす場合とほぼ同じ感覚で、直感的に教示等の作業を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】好適な実施形態に係るロボット制御装置の機能ブロック図である。
【図２】使用者がロボットの教示を行っている状態を示す図である。
【図３】表示装置の一例であるヘッドマウントディスプレイを示す図である。
【図４】表示装置の一例である携帯端末を示す図である。
【図５】使用者がロボットに表示装置を向けたときの、表示装置における画面表示例を示す図である。
【図６】メニューに表示されるツールの画像の一例を示す図である。
【図７】実際のワークを簡単なモデルで表示した例を示す図である。
【図８】ロボットのモデルに、各軸を回転させるためのバーを表示した例を示す図である。
【図９】ツールモデルの近傍に、ツール座標系と操作ボタンを表示した例を示す図である。
【図１０】ツールモデルの近傍に、モデルを並進移動させるための直交ジョグを表示した例を示す図である。
【図１１】ツールモデルの近傍に、モデルを回転移動させるための直交ジョグを表示した例を示す図である。
【図１２】仮想モデルの位置に基づいてロボットの教示点を設定するときの、表示装置における画面表示例を示す図である。
【図１３】ロボットと表示装置との相対位置関係を計測する例を示す図である。
【発明を実施するための形態】
【００１２】
図１は、好適な実施形態に係るロボット制御装置１０の一構成例を示す機能ブロック図であり、図２はロボット制御装置１０の適用例として、使用者（作業者）１２がロボット１４の教示を行う場合を示す図である。ロボット制御装置１０は、予めコンピュータによって生成された情報（３Ｄモデル等）を、ロボット１４を含む現実の環境（工場、作業現場等）に重ね合わせて表示可能であるか、又は該情報を、環境を撮像して得た画像（現実画像）に重ね合わせて表示可能である表示装置１８と、環境に含まれるロボット１４と表示装置１８との相対的な位置及び姿勢（相対位置関係）を取得する位置姿勢取得部２０と、ロボット１４の可動部（アーム、該アームに取り付けたツール等）２２などのモデル（仮想モデル）を表示装置１８に表示させる表示制御部２４と、表示装置１８に表示された仮想モデルを操作する操作制御部２６と、操作制御部２６によって操作された仮想モデルの位置及び姿勢の少なくとも一方と、位置姿勢取得部２０が取得した上記相対位置関係とに基づいて、ロボット１４の位置及び姿勢の少なくとも一方（例えば教示点）を規定する位置姿勢規定部２８とを備える。またロボット制御装置１０は、位置姿勢規定部２８が規定したロボット１４の位置及び姿勢の少なくとも一方に基づいて、ロボット１４の動作プログラムを生成するプログラム生成部３０をさらに有してもよい。なおここでの可動部は、ロボットの各軸の動作によって移動する物体を意味し、例えば、ロボットアームまたはアーム先端に取り付けたハンド、ツール等を含む。また、仮想モデルは、ロボット１４など、現実の環境に含まれるロボット、ロボットの可動部、ロボットの可動部で支持される物体及びロボットの可動部の作業対象物の少なくとも一つの物体の仮想的なモデルとすることができる。なお、作業対象物には、ロボットによる加工などの作業の対象となる物体だけでなく、ロボットのキャリブレーション作業においてロボットの可動部が接触するといった、キャリブレーション作業において使用される物体も含まれる。
【００１３】
なお図１の例では、位置姿勢取得部２０、表示制御部２４、操作制御部２６、位置姿勢規定部２８及びプログラム生成部３０は、ロボット１４に有線又は無線で接続された筐体（図示せず）内に設けたＣＰＵ、メモリ、センサ若しくは表示装置１８と無線通信可能な通信機、又はこれらの組み合わせによって実現可能であるが、これらの少なくとも一部を表示装置１８に設けることも可能である。すなわち、表示装置１８が、位置姿勢取得部２０、表示制御部２４、操作制御部２６、位置姿勢規定部２８及びプログラム生成部３０を有してもよい。また表示装置１８及び該筐体はそれぞれ、表示装置１８及びロボット１４の動作全般を制御する制御部（ＣＰＵ、メモリ等）をさらに備えることができる。
【００１４】
図３は、表示装置１８の一具体例であるヘッドマウントディスプレイ（頭部装着型表示装置）を示す。ヘッドマウントディスプレイ１８は、現実環境を撮像するカメラ３２と、カメラ３２が取得（撮像）した画像・映像をリアルタイムで表示するディスプレイ３４とを有する。ディスプレイ３４は、表示部の一例である。使用者１２は、ヘッドマウントディスプレイ１８を装着してカメラ３２を現実のロボット１４に向けることにより、ロボット１４を含む環境を撮像し、その環境の映像をリアルタイムで取得（キャプチャ）することができ、ディスプレイ３４を介して、拡張現実化された画像を視認することができる。或いは、ヘッドマウントディスプレイ１８は、透過型ディスプレイを備え、使用者１２が現実の環境を、その透過型ディスプレイを介して視認できるようにしてもよい。なおディスプレイ３４に表示された仮想モデルは、後述するジェスチャー操作等の使用者１２の動作によって、ディスプレイ内で操作（並進移動、回転、拡大／縮小等）することができる。
【００１５】
図４は、表示装置１８の他の具体例である携帯端末（タブレット）を示す。携帯端末１８は、現実環境を撮像するカメラ３６と、カメラ３６が取得（撮像）した画像・映像をリアルタイムで表示するディスプレイ３８とを有する。ディスプレイ３８は、表示部の他の一例である。使用者１２は、携帯端末１８を保持してカメラ３６を現実のロボット１４に向けることにより、ロボット１４を含む環境を撮像し、その環境の映像をリアルタイムで取得（キャプチャ）することができ、ディスプレイ３８を介して、拡張現実化された画像を視認することができる。なおディスプレイ３４に表示された仮想モデルは、使用者が指やスタイラスペン４１等をディスプレイ３８に対して接触・摺動させることにより、ディスプレイ３８内で操作（移動等）することができる。
【００１６】
次に、ロボット制御装置１０を用いた操作・処理の流れの具体例を説明する。ここでは、図２に示すように、使用者１２は表示装置１８として図３に示したような頭部装着型（ヘッドマウント）ディスプレイを装着し、環境（ここでは作業現場）の床面４０に設置されたロボット１４が、床面４０上の所定位置に配置された実在する物品（ワーク）４２を把持式ツール（ここではハンド２２）で把持する操作を教示するものとする。なお図２では３つのハンド２２、２２ａ及び２２ｂが図示されているが、後述するように、実在するハンドはロボット１４の先端に取り付けられているハンド２２のみであり、他の２つのハンド２２ａ及び２２ｂは実在しない仮想画像（モデル）である。またロボット１４のハンド２２以外のロボット本体部分、ワーク４２、及び環境内の他の周辺物（図示せず）も実在のものである。
【００１７】
先ず使用者１２が、表示装置１８をロボット１４の方向に向けると、図５に示すように、表示装置１８のディスプレイ３４に、ロボット１４において使用可能なハンド等のツールまたはロボット１４の先端（ロボット先端Ｒ）などのモデルの一覧（メニュー）を表す画像（ウインドウ等）５０が表示される。次に使用者１２は、表示されたモデルの中から適当なモデルを、ジェスチャー操作により選択（例えばドラッグアンドドロップ）することにより、現実環境の所定位置に予め定義された基準座標系８６の特定の位置に選択したモデルが表示される。ここでは、使用者１２がハンドＢをメニュー５０から、実在するハンド２２の左方にドラッグアンドドロップすることにより、ハンド２２の仮想モデル２２ａが表示される。ここで表示される仮想モデル２２ａの大きさは、該仮想モデルがドロップされた位置に応じて適宜、自動的に変更することができる。
【００１８】
メニュー５０は、選択可能なツールをテキスト形式で表示してもよいし、或いは又はこれに加え、画像として表示してもよい。またツールは単品として表示してもよいし、ツールが物品を把持した状態で表示してもよい。例えば、メニュー５０においてハンドＢ単品を「ハンドＢ」として表示し、ハンドＢがワーク４２を把持した状態を「ハンドＢ１」として表示してもよい。例えば「ハンドＢ１」が選択された場合、ハンド２２の仮想モデルは、ワーク４２を把持した状態で表示される。
【００１９】
図６は、メニュー５０に表示されるツールの画像の一例を示す図である。図６に示されるように、画像６０１〜画像６０４は、それぞれ、「ハンドＡ」、「ハンドＢ」、「ハンドＢ１」及び「ハンドＣ」の画像を表す。「ハンドＡ」は、例えば、ワークを吸着することで把持するツールである。また「ハンドＢ」は、例えば、二本の爪を持ち、その二本の爪の間にワークを挟むことでワークを把持するツールである。「ハンドＢ１」は、上記のように、ハンドＢがワークを把持した状態を表すものである。そして「ハンドＣ」は、例えば、三本の爪を持ち、その三本の爪の間にワークを挟むことでワークを把持するツールである。
【００２０】
またモデルの一覧は３Ｄ（３次元）モデルとして表示してもよく、３Ｄモデルとしてはロボットの一部、ロボットに取り付けるツール（ハンド、溶接ガン、シーリングガン等）、ツールによる操作の対象物（ハンドによって把持・搬送されるワーク、被溶接物等）等が表示可能である。
【００２１】
さらにモデル一覧には、使用者が予め又は現場で定義した直方体などの仮想的な物体も表示可能である。例えば図７に示すように、実際のワーク５２が円柱形状であり、ワーク５２の上面を吸着式のハンド５４で吸着して搬送する場合、使用者１２が予め又は現場でワーク５２を、ワーク５２を内包し得る直方体の３Ｄのワークモデル５６としてロボット制御装置１０に設定・記録しておき、ワークモデル５６を表示装置１８のディスプレイ３４に表示させることができる。この場合、ワークモデル５６は直方体に限られないが、少なくともワークモデル５６の上面及び下面はそれぞれ、実際のワーク５２の上面及び下面と同一面となるように設定されることが好ましい。実際のワークの形状が複雑である場合や、実際のワークを用意できない（環境内に配置できない）場合は、このようにワークのモデルを利用することで、後述する教示等の作業がより簡単になる。
【００２２】
また図７のように、ワーク５２を箱５８に対して出し入れするような用途に対する教示を行う場合、実際に箱５８を現実環境内に配置すると、その内部のワークは使用者に視認できないことがあるので、そのような場合にもワークのモデリングを行うことで、ワークの輪郭を点線で表示する等、箱に隠れていることがわかるような表示が可能となる。その結果、使用者は、ロボット制御装置１０を用いて、ロボットを直感的によりわかり易く教示できる。通常、教示の際には、使用者は、ロボット制御装置に現実のロボットの動作プログラムを実行させて、教示点間のロボットの搬送経路が現実の物体と干渉するか否か確認する。この確認では、使用者は、ロボット制御装置に、低い速度から始めて目的の教示速度まで段階的に速度を上げるよう、プログラムを何度か実行させる。一方、本実施形態では、上記のようなワークのモデリングをした上で教示することで、ロボット制御装置１０がロボットプログラムを実行した時の動作の様子は、仮想的なロボットの画像が現実の世界に重ね合わせて表示可能となる。そのため、使用者は、ロボットの搬送経路と箱など現実物体との干渉を気にせずに、最初から目的の教示速度でワークモデル５６の動作映像を再生して教示点間においてロボットが干渉するか否かを確認することが容易になるため、ロボット制御装置１０は、教示時間を短縮できる。
【００２３】
モデルの一覧（メニュー）５０は、使用者１２の体に固定されたユーザ座標系上に表示される。すなわちメニュー５０は、使用者１２の動作に追随して移動し、常に使用者１２に対して一定の位置に表示される。一方、一旦現実環境に重畳表示（ドロップ）されたモデル２２ａは、基準座標系８６に設定されるので、使用者１２が動いてもその動きには追随せず、現実環境の特定の位置に表示されたままである。
【００２４】
図５に示したように仮想モデル２２ａが現実環境の画像に重畳表示されたら、使用者１２は、仮想モデル２２ａが所望の位置及び姿勢となるように、ジェスチャー操作等の動作を行う。以下、ジェスチャー操作の具体例を説明する。
【００２５】
（ドラッグ操作）
（Ａ１）使用者１２がハンド２２又はロボット先端に取り付けたツールの仮想モデル２２ａに視線を合わせ、仮想モデル２２ａを指でつまむジェスチャーをすることにより、表示制御部２４は、モデル２２ａを動かせる状態にする。
（Ａ２）使用者１２は、仮想モデル２２ａをつまんだ状態のまま手を動かし、モデル２２ａを教示したい位置及び姿勢に移動させる。表示制御部２４は、使用者１２の手の動きに合わせてモデル２２ａを動かす。なお移動距離が比較的長い場合は、使用者１２が現場（環境内）を移動してもよい。
（Ａ３）モデル２２ａが所望の位置に到達したら、使用者１２は手を開くジェスチャーを行い、位置姿勢規定部２８は、そのときのモデル２２ａの位置及び姿勢を教示点等として設定（メモリに記憶）する。
【００２６】
（ロボット全体のドラッグ操作）
表示制御部２４は、表示装置１８（のディスプレイ３４）にロボット１４全体の仮想モデルを表示させる。使用者１２は、該全体のモデルも移動させて教示したい場合は、例えば次のような動作を行う。
（Ｂ１）図８に例示するように、使用者１２がロボット１４全体の仮想（３Ｄ）モデル５９をジェスチャー操作等によって現実のロボット１４に重畳表示させ、モデル５９に視線を合わせてエアタップすると、ロボットモデル５９の近傍の空間上に各軸の位置を調整するためのバー６０が表示される。なおここではロボット１４は６軸の多関節ロボットなので、６つのバー６０がモデル５９の各軸の近傍に表示される。
（Ｂ２）使用者１２がある軸（対象軸）に視線を合わせてエアタップし、バー６０を指でつまむジェスチャーにより、表示制御部２４は、モデル５９を動かせる状態にする。
（Ｂ３）使用者１２は、バー６０をつまんだ状態のまま円弧を描くように手を動かし、モデル５９の対象軸の位置を教示したい位置に動かす。表示制御部２４は、使用者１２の手の動きに合わせてモデル５９を動かす。このとき、実際のロボット１４を動かす必要はない。
（Ｂ４）対象軸が所望の位置に移動したら、使用者１２は手を開くジェスチャーを行い、位置姿勢規定部２８は、対象軸をその位置に固定（設定）する。
（Ｂ５）（Ｂ３）−（Ｂ４）の処理を必要に応じて他の軸についても行い、最後に、使用者１２が各軸以外のロボットの部分に視線を合わせてエアタップすると、そのときのロボットモデル５９の位置及び姿勢（各軸の位置）が教示点等として設定される。
【００２７】
（ボタン操作）
（Ｃ１）使用者１２が、ハンド２２ａ等のツールに視線を合わせてエアタップすると、図９に例示するように、ツール近傍の空間に、そのツールに定義されたツール座標系６２と、そのツールの仮想モデルを操作する複数の操作ボタン６４及び適用されるジョグのモードが表示される。例えば、この例では、適用されるジョグのモードが直交ジョグであることを表す「直交」が示される。なお、表示されるジョグのモード表示には、直交ジョグの他、例えば、各軸ジョグであることを表す「各軸」、または、特定の座標系で定義される直交ジョグであることを表すその特定の座標系の表記（例えば、ツール座標系で定義される場合には、「ツール」など）が含まれてもよい。また、適用されるジョグのモードに応じて、表示される操作ボタン６４の表記が変更されてもよい。例えば、直交ジョグが適用される場合の「＋Ｘ」、「−Ｘ」等の代わりに、操作対象となる軸を表す「＋Ｊ１」等が表示されてもよい。さらに、表示される操作ボタン６４の数は、ロボット１４が有する軸の数または付加軸の数に応じて変更されてもよい。
（Ｃ２）使用者１２がボタン６４のいずれかに視線を合わせてエアタップすると、ボタン６４の近傍に表示された割合（図示例では１０％）に応じてモデル２２ａが所定距離移動する。モデル２２ａを連続的に移動させたい場合は、使用者１２は、対象のボタンに視線を合わせた状態で所定の動作（例えば握り拳（いわゆるグー）を作るジェスチャー）をする。この移動でも、ボタン６４の近傍に表示された割合（図示例では１０％）に応じた速度でモデル２２ａが移動する。例えば、ロボット１４の最大移動速度（例えば、２５０ｍｍ／ｓ）が１００％として設定され、かつ、１０％と表示されているときは、モデルが指定された方向に最大速度の１０％（例えば２５ｍｍ／ｓ）の速度で移動する。これは後述する直交ジョグ操作でも同様である。この場合は例えば、手を開く動作（いわゆるパーを作るジェスチャー）をしたときに、モデル２２ａの移動を停止させることができる。なお割合（％）を変更したい場合は、使用者１２が％表示６５に視線を合わせてエアタップすることにより、数値入力を受け付けるボタン（図示せず）等を表示させることができる。
（Ｃ３）ハンド２２ａ又はツールを教示すべき位置に移動させたら、使用者１２はモデル２２ａに視線を合わせてエアタップし、これによりモデル２２ａの位置及び姿勢が設定（メモリ等に記憶）され、ツール座標系６２とボタン６４は非表示となる。
【００２８】
（直交ジョグ操作）
（Ｄ１）使用者１２が、ハンド２２ａ等のツールに視線を合わせてエアタップすると、図１０又は図１１に例示するように、ツール近傍の空間に、そのツールの仮想モデルを操作する直交ジョグ６６又は６８と、モデルを移動させる速度を割合で示す情報７０又は７２が表示される。
（Ｄ２）使用者１２が直交ジョグ６６に視線を合わせてエアタップすると、直交ジョグ６６のボタン７４をつまんで操作できるようになり、ボタン７４をつまんで所望の方向（図示例では＋Ｘ、−Ｘ、＋Ｙ、−Ｙ、＋Ｚ、−Ｚのいずれか）に移動させることにより、ツールをその方向に指定された速度（例えば最高速度の１０％）で移動させることができる。同様に、使用者１２が直交ジョグ６８に視線を合わせてエアタップすると、直交ジョグ６８のＸ軸７６、Ｙ軸７８及びＺ軸８０のいずれかをつまんで操作できるようになり、使用者１２がつまんだ軸を時計回り又は反時計回りのいずれかに回転させることにより、所望の方向（図示例では＋Ｘ、−Ｘ、＋Ｙ、−Ｙ、＋Ｚ、−Ｚのいずれか）に指定された速度でハンド２２などの仮想モデルを回転移動させることができる。
（Ｄ３）ハンド２２ａ又はツールを教示すべき位置に移動させたら、使用者１２はモデル２２ａに視線を合わせてエアタップし、これによりモデル２２ａの位置及び姿勢が確定（一時的に記憶）され、直交ジョグ６６又は６８、及び情報７０又は７２は非表示となる。なお、図１０では、ボタン７４、図１１では、Ｘ軸７６、Ｙ軸７８及びＺ軸８０の何れかをつまむことでツールが操作されるが、図１０または図１１に示されている矢印が操作用のボタンとして表示されてもよい。この場合には、図９に示されるボタン操作と同様の操作が実行可能とされてもよい。
【００２９】
なお使用者１２の視線方向は、周知の技術を利用して求めることができ、例えば、ヘッドマウントディスプレイ１８に設けたジャイロセンサ等のセンサ６７（図３参照）や、タブレット１８に設けたジャイロセンサ等のセンサ６９（図４参照）を用いて、表示装置１８の姿勢（すなわち使用者１２の頭部やカメラ３６がどの方向を向いているか）を検出することで求めてもよいし、視線検出センサ等を用いて使用者の視線を直接検出してもよい。
【００３０】
また上述のジェスチャー操作では、使用者１２はグー、パー、エアタップ、指でつまむ、手を開く等のジェスチャーを行うが、これら以外のジェスチャーによってモデルを操作することももちろん可能である。またジェスチャー操作以外にも、教示操作盤又は（ジョイスティック若しくはタッチパネル等の）ポインティングデバイスを用いた操作も利用可能である。
【００３１】
上述のジェスチャー操作によってツール仮想モデル２２ａが所望の（例えば、教示点として設定すべき）位置に移動したら、使用者１２のエアタップ等の動作により、図１２に示すように、モデル選択メニュー５０がプログラム編集画面８２に切り替えられる。プログラム編集画面８２もメニュー５０と同様、使用者１２の体に固定されたユーザ座標系上に表示され、使用者１２は編集画面８２と現実環境とを同時に視認することができる。
【００３２】
使用者１２は、前述したジェスチャー操作や、後述するジェスチャー操作等により、モデル２２ａを教示したい位置及び姿勢となるように操作し、そのときのロボット１４の位置及び姿勢を、プログラム編集画面８２を利用して規定する（より具体的には、ロボット１４の教示（教示点の生成・設定）を行う）。例えば図２の例では、ハンド２２が仮想画像２２ａで示されている位置（イチ[1]）から、現実のハンドの位置（イチ[2]）を経由して、仮想画像２２ｂで示されている、ワーク４２を把持可能な位置（イチ[3]、図２参照）に移動する動作を教示することができる。
【００３３】
プログラム編集画面８２による位置教示操作は、例えば表示された動作メニューから、ロボットの動作指令文を選択することによって行うことができる。使用者１２が指令文を選択すると、ツールの仮想モデル（以下、ツールモデルと呼ぶ）の位置及び姿勢と、現実のツールの位置及び姿勢とがそれぞれ一致するようなロボットの位置及び姿勢が規定され、規定されたロボットの位置及び姿勢が教示点として教示（適当なメモリに記録）される。例えば、図７に例示したような箱５８の中からワーク５２を吸着式のハンド５４で保持して取り出すような作業を行うロボットシステムでは、以下の手順で教示を行うことができる。
【００３４】
（Ｅ１）使用者１２が予め又は現場で、ワーク５２の３Ｄのワークモデル５６を定義する。ここでは、ワークモデル５６は、ワーク５２を内包するようなモデルとして定義する。
（Ｅ２）表示制御部２４は、定義したワークモデル５６を、現実のワーク５２に重畳表示させる。
（Ｅ３）図７に示すように、表示制御部２４は、吸着ハンド５４のモデルを現実の世界に投影して、使用者１２は、ワーク５２を吸着するときのハンド５４の位置及び姿勢を教示する。すると、表示制御部２４によって表示装置（拡張現実対応ディスプレイ）１８は、その時の吸着ハンド５４のモデルと使用者１２が定義したモデル５６とが所望の位置関係で配置された状態のモデルを、その教示点の位置番号（ここではイチ[1]−[3]）とともにモデル一覧に表示することができる。このようにすることで、ロボット制御装置１０は、現実のロボット１４を実際に動かすことなく、ロボット１４が周辺物等と干渉しないような搬送経路の教示を、視覚的にわかり易く行うことができる。また、周知の画像認識技術を使用することにより、現実のワークのどの部位を吸着・保持すべきかを教示する必要がないシステムにおいては、ハンドの中心点に対して使用者がモデルを定義し、モデルの一覧に加えることができる。
【００３５】
なお、７軸以上の冗長軸を持つロボットの位置及び姿勢をモデルの位置から教示する場合は、該冗長軸の位置を使用者が指定してもよく、冗長軸のモデルは指定された位置とともに表示可能である。例えば、ロボットの第６軸（先端）に冗長軸が取り付けられている場合、表示制御部２４は、ロボットの先端を冗長軸とともに表示させる際は、該先端に対する該冗長軸のモデルの位置を、使用者が指定した冗長軸の位置に応じて変化させることができる。
【００３６】
次に、上述の位置姿勢規定部２８が、操作制御部２６による仮想モデルの操作と、位置姿勢取得部２０が取得したロボット１４と表示装置１８との相対位置関係（後述）とを用いて、移動した仮想モデルの各位置にロボット１４（ハンド２２）が実際に到達可能かを判定し、到達可能であれば、教示された位置（ロボットの位置及び姿勢）を教示点として規定し、メモリ等に記録する。プログラム生成部３０は、当該教示点を含むロボットの動作プログラムを生成することができる。生成された動作プログラムは、ロボットの教示の他、ロボットの動作確認や干渉チェック等の動作シミュレーションに使用することができる。なおこの例では各教示点を決定するが、複数の教示点からなる軌跡（点列）として教示することも可能である。例えば、３Ｄモデルを空間内でドラッグして得られる軌跡を教示点列とすれば、ロボットの動作を軌跡として教示することができる。
【００３７】
位置姿勢規定部２８は、例えば、到達可能か否かの判定を次のように行う。
図９に示されるように、ツールモデルに表示するツール座標系６２は、ツールモデルごとにいくつか設定でき、その座標系は、ロボットの端点に定義されている座標系に対してどのような相対関係にあるかで定義される。ツールモデルごとにツール座標系を定義するため、モデルの一覧が表示されるメニュー５０では、ツールモデルは、そのツール座標系を定義した番号とともに表示される。このようにツール座標系６２とともに定義されたツールモデルを現実の世界に投影した時、表示装置の制御部が任意に定義する基準座標系上でツールモデルがどのような位置及び姿勢で存在するかは、行列で表すことができる。ここで、ロボット制御装置の制御部(図示せず)が任意に定義するワールド座標系上でのツールモデルの位置及び姿勢（ワールド座標系から見たツール座標系の位置及び姿勢）は、位置姿勢取得部２０で取得した表示装置とロボットの相対位置関係から得られる、ワールド座標系から見た基準座標系の位置及び姿勢を表す変換行列Aと、基準座標系から見たツールモデルの位置及び姿勢を表す行列Bの積で表せる。このワールド座標系上でのツールモデルの位置及び姿勢に基づいて逆運動学を解くことで、位置姿勢規定部２８は、ロボットの各軸位置を算出できる。位置姿勢規定部２８は、この算出した各軸位置がロボットごとに定義される各軸の動作制限や自己干渉式による動作制限の範囲内であればロボットが到達可能であると判定できる。
ロボット制御装置の制御部と表示装置の制御部の機能が一つにまとめられている場合など、表示装置の基準座標系がワールド座標系と一致する場合には、位置姿勢規定部２８は、ツールモデルの位置及び姿勢に基づいて逆運動学を解くことで、ロボットの各軸位置を求め、それによって到達可能か否かを判定すればよい。
【００３８】
上述の実施形態では、ロボット制御装置１０は、モデルの位置及び姿勢を用いてロボットの位置及び姿勢を教示するが、ロボットの位置又は姿勢のみを教示してもよい。例えば、位置のみを含む教示点（教示情報）は、ロボットの姿勢を指定する必要がない場合に使われる。この場合、教示点の姿勢は、その教示点の前後の教示点の姿勢に基づく補間計算によって決定することができる。一方、姿勢のみを含む教示点（教示情報）は、例えば、ロボットが保持した物品を、所定の大きさの領域内の任意の場所に特定の姿勢で配置すべき場合に、その特定の姿勢の教示に使用される。
【００３９】
また上記実施形態では、ツールのモデルを用いて教示する例を説明したが、ロボット制御装置１０は、ロボット全体、ロボットの一部、溶接ガン若しくはシーリングガンなどのロボットに取り付け可能なツール、又は、そのツールによる作業対象物若しくは加工対象物のモデルを用いて教示することもできる。なお、上述したように、作業対象物には、ロボットによる加工などの作業の対象となる物体だけでなく、ロボットのキャリブレーション作業においてロボットの可動部が接触するといった、キャリブレーション作業において使用される物体も含まれる。また本開示に係るロボット制御装置は、教示以外にも、ロボットを実際に動作させずにロボットの動作確認や干渉有無のチェック等（動作プログラムに基づくシミュレーション）を行う際にも使用可能である。例えば、上記実施形態ではモデルによってロボットの位置及び姿勢を特定し、プログラムの教示に使用する例を説明したが、ロボット制御装置は、特定した位置及び姿勢の情報を用いて仮想的なロボット全体の画像を現実の環境に重ね合わせて表示装置に表示させ、その時ロボットが現実の物体と干渉しているか否か確認するためにロボット制御装置は使用されてもよい。
また、特定したロボットの位置及び姿勢の情報は本実施例のように教示以外の用途に使用されてもよい。
【００４０】
次に、ロボット１４と表示装置１８との相対位置関係を取得（計測）する位置姿勢取得部２０の具体的構成例について説明する。先ず、周知の例としては、ロボット１４にＡＲマーカ等の視覚的マーカ（図示せず）が取り付けられる。位置姿勢取得部２０は、表示装置１８に搭載したカメラ３２又は３６（図３−４）で該マーカを撮像することで得られた画像を認識（画像処理）することによって、画像上でのマーカの位置、向き及びサイズから、カメラとロボットとの相対位置関係を計算することが挙げられる。
【００４１】
しかし上述の周知例では、予めマーカをロボットに、貼付や印刷等によって設けておく必要があり、例えばロボットが比較的汚れやすい環境に設置されている場合は、ロボット（少なくともマーカ）の定期的な清掃が不可欠となる。さらに使用者は、マーカが撮像できる位置で表示装置を操作する必要があるので、使用者の移動可能範囲に制約が生じる。一方、マーカの代わりにロボット本体の画像を利用することも可能ではあるが、この場合はロボットを同定するために、該ロボットを複数の方向から撮像して、多数の画像を予め用意する必要がある。
【００４２】
そこで、本開示のように、コンピュータによって生成された情報を、ロボットを含む現実の環境に重ね合わせて表示可能であるか、該環境を撮像して得た現実画像に重ね合わせて表示可能である表示装置を使用する場合、位置姿勢取得部２０は、該表示装置に表示されたロボット又は該ロボットに付属する物体の３Ｄモデルと、現実のロボット又は該ロボットに付属する物体が重なったときの条件（パラメータ）から、該表示装置と該ロボットの相対位置関係を特定することができる。
【００４３】
以下、表示装置とロボットとの相対位置関係を特定する構成の具体例（実施例１−３）を説明するが、先ず、以降の説明に使用する主たる用語について説明する。「ロボットの制御点」とは、ロボットの動作を制御する際に使用する代表点を指し、ツール先端点（ＴＣＰ）がその好適例である。また「ワールド座標系」とは、ロボットの（ベース等に設定された）基準位置を原点とする、ロボットに定義された座標系であり、例えば図２の参照符号８４で表されるような、環境内に固定された座標系である。
【００４４】
「基準座標系」とは、拡張現実対応ディスプレイ等の表示装置の制御部が任意に定義し得る座標系であり、例えば図２の参照符号８６で示すように、ここでは教示操作等を開始するとき（表示装置を起動したとき）のカメラ（使用者）の位置を原点とする、環境内に固定された座標系である。より詳細には、例えば表示装置が３Ｄセンサを内蔵している場合、使用者が居る空間の３次元データを取得することができ、該空間内のどの位置にハンド等の３Ｄモデルを表示するかを表示装置の制御部が決めることができるが、その位置を決める際の基準として、上記基準座標系を使用することができる。
【００４５】
（実施例１）
図１３は、表示装置１８を介して使用者１２に見えている画像であり、実在するロボット１４のハンド２２に対し、ハンド２２の仮想（３Ｄ）モデル２２ａを重畳表示した状態を示す。ここで、使用者１２の操作に応じて、基準座標系８６に対してどの位置及び姿勢で３Ｄモデル２２ａを表示するかは、表示装置１８の制御部等によって予め決められており、一方、使用者１２の操作やプログラムの実行に応じて、ワールド座標系に対してどの位置及び姿勢でロボットの制御点を制御するかは、ロボットを制御する制御部等によって予め決められている。従って使用者１２が、ツール（ハンド）の３Ｄモデル２２ａと現実のツール２２とを表示装置１８の画面３４上で一致させることにより、位置姿勢取得部２０は、以下の手順でロボット１４に対する表示装置１８の相対位置関係を計測できる。
【００４６】
表示装置１８は、図１３のハンド２２ａのような、ロボット１４の先端部分のモデルやツールのモデル等の、ロボット１４の一部分のモデルを表示し、使用者１２が上述のジェスチャー操作等を行うことによって操作制御部２６がモデル２２ａを移動させて、現実のハンド２２とモデル２２ａとが、一致して見えるようにする。このとき、表示装置１８の制御部は、ロボット１４の制御部からロボット１４の各軸位置と、必要に応じツール座標系の情報とを受信することで、ロボット１４（ワールド座標系８４）の原点位置を計算することができる。この処理によって表示装置１８の制御部は、３Ｄモデル２２ａの位置を、現実にロボット１４のツール２２が存在する位置として認識できる。なお、操作制御部２６は、例えば、カメラ３２またはカメラ３６により得られた画像と、様々なジェスチャーに対応するテンプレートとの間でテンプレートマッチングを実行することにより、あるいは、画像に表されたジェスチャーを識別するように予め学習された識別器（例えば、ニューラルネットワークによる識別器）に画像を入力することで、使用者１２により実行されたジェスチャーを認識できる。
【００４７】
表示装置１８の制御部は、ワールド座標系８４と基準座標系８６との相対位置関係に関する情報（例えば、ワールド座標系８４から基準座標系８６への変換行列）と、基準座標系８６と表示装置１８との位置関係の情報（例えば、基準座標系８６における表示装置１８の位置及び姿勢）を、ロボット１４の制御部に送信することができる。位置姿勢取得部２０は、受信した情報から、ワールド座標系８４のどこに表示装置１８が位置しているかを求めることができる。
【００４８】
ここで「重なる」又は「一致」とは、現実画像及び仮想画像の位置、姿勢及び大きさが全て同一であるか、両画像の位置、姿勢及び大きさのそれぞれの差が（使用者が両者を実質一つの画像として視認できる程度に）所定の誤差範囲内にあることを意味し、またこのような状態は、例えばテンプレートマッチングを利用して自動的に判別可能である。但し、使用者が、両者を実質一つの画像として認識したときに、ジェスチャー操作やスイッチ操作等によって、両画像が一致した（重なった）ことをロボット又は表示装置の制御部に入力できるようにしてもよい。
【００４９】
実施例１では、ロボットの先端部分のモデルやツールのモデルなど一部分を表示すると記載したが、このモデルはハンドでつかむ物体、あるいは、ロボットに取り付けたガン等による加工対象物といった、ロボットの動作範囲内に存在する作業対象物体のモデルとともに表示してもよい。この場合は、ロボット又はロボットに取り付けたツール等の物体に一致するように、使用者は、表示したモデルのロボット又はロボットに取り付けたツール等の部分を移動させればよい。
【００５０】
（実施例２）
実施例１では、ロボットの一部について現実の環境又は画像に仮想画像を一致させたが、実施例２では、表示装置１８は、ロボット全体の３Ｄモデルを表示し、使用者は、そのモデルを現実のロボットと一致する（重なる）ように移動させる。この状態で、表示装置１８の制御部は、３Ｄモデルの位置（の原点等）を、現実にロボット１４（の原点等）が存在する位置として認識できる。また位置姿勢取得部２０は、実施例１と同様の手順で、ワールド座標系８４における表示装置１８の位置を求めることができる。
【００５１】
このように、位置姿勢取得部２０は、ワールド座標系８４と基準座標系８６との相対位置関係と、表示装置１８に表示された現実画像と仮想モデルとが一致しているときの表示装置１８における仮想画像（モデル）の位置とに基づいて、ロボット１４に対する表示装置１８の相対位置関係を取得することができる。なお表示装置１８は、基準座標系８６に対する表示装置１８の位置及び姿勢の少なくとも一方を測定する３Ｄセンサ等のセンサを有していることが好ましい。また、実施例１、２では、ロボット制御装置は、仮想的なモデルと現実の物体が一致するように仮想的なモデルを操作したが、仮想的なモデルと現実の物体が一致するように現実のロボットを操作してもよい。なお、位置姿勢取得部２０は、現実の環境に含まれる物体または現実画像に表されたその物体とその物体の仮想モデルが一致した時のその物体の現実の位置及び姿勢に基づいても、上記と同様の処理により、表示装置１８とロボット１４間の相対位置関係を取得することができる。また、位置姿勢取得部２０は、必要に応じて、表示装置１８とロボット１４との相対的な位置及び相対的な姿勢のうちの何れか一方のみを取得してもよい。
【００５２】
（実施例３）
実施例１及び２では、一つの位置において、ロボット制御装置１０は、ロボット全体又は一部について現実の環境又は画像に仮想画像を一致させたが、複数の位置を用いて誤差を平均化し、精度を上げることができる。具体的な方法としては、座標系をロボットに教示する際に使われる３点教示法（後述）や４点教示法が挙げられる。
【００５３】
３点教示法では先ず、使用者は、任意の第１の位置で、実在するロボット１４のハンド２２と仮想モデル２２ａとを一致させ、実施例１と同様の手順で、ロボットと表示装置との相対位置関係を表示装置の制御部に記憶する。次に、ロボット制御装置１０が、現実のロボット１４（のハンド２２）を第１の位置から、ワールド座標系８４のＸ軸方向に任意の距離移動させた第２の位置で、同様に使用者はハンド２２と仮想モデル２２ａとを一致させ、ロボットと表示装置との相対位置関係を制御部に記憶する。さらに、ロボット制御装置１０が、現実のロボット１４（のハンド２２）を第２の位置から、ワールド座標系８４のＹ軸方向に任意の距離移動させた第３の位置で、同様に使用者はハンド２２と仮想モデル２２ａとを一致させ、ロボットと表示装置との相対位置関係を制御部に記憶する。以上の処理によって得られた複数の相対位置を平均する等の処理により、位置姿勢取得部２０はワールド座標系８４と基準座標系８６のより正確な相対位置関係を求めることができる。なお実施例３において、表示装置の制御部をロボットの制御部に置換し、ワールド座標系を基準座標系に置換しても同様の結果が得られる。従来からロボットのツール座標系の設定に使用されている４点教示法についても同様に流用できる。
【００５４】
実施例１−３によれば、拡張現実対応ディスプレイ等の表示装置と現実のロボットとの相対位置関係を高精度に取得することができ、さらに、画像認識による方法に比べ、保守の手間や処理時間を大幅に減らすことができる。なお上述した各実施例では、ワールド座標系と基準座標系との位置関係に関連し、ロボットと表示装置がそれぞれ制御部を有する例を説明したが、両制御部の機能を具備した実質一つの制御部を、ロボット又は表示装置のいずれかに設けてもよいし、或いはパーソナルコンピュータ等の別個の装置として設けてもよい。なお上述した各実施例におけるモデルの操作は、ジェスチャー、タッチパネル、ジョイパッドやジョイスティックといったゲーム機の操作にも使用可能なポインティングデバイス、又は教示操作盤等を用いて行うことができる。
【００５５】
さて使用者は、表示装置を用いて上述のジェスチャー操作や教示等の作業をしている間、意図的か無意識かを問わず、現実のロボットに対して移動し、ロボットと表示装置との相対位置関係が変化する場合がある。一方、ロボットが可動式の台車等に搭載されている場合は、使用者が動かずとも、ロボットが使用者に対して移動する場合もある。そのような場合、表示装置とロボットの相対位置関係を再計測する必要が生じ得る。
【００５６】
そこで使用者（表示装置）とロボットとの相対位置関係が変化しても、その変化量に応じて、現実環境に表示されたモデルが適切に移動できるように、ロボット及び表示装置の少なくとも一方に、ロボットと表示装置間の相対的な位置及び姿勢を追随して求める追随装置を設けることが好ましい。例えば、レーザや赤外線等の光を利用したセンサ、超音波センサ、磁気式センサ、慣性センサ、又はジャイロセンサ等を使用した追随装置（例えば表示装置１８の参照符号６７（図２）又は６９（図３）を参照）を、表示装置及びロボットの一方又は双方に設けることで、両者の相対位置関係が変化した場合に、該相対位置関係の再計測を行わずとも、正確な相対位置関係を取得し続けることができる。
【００５７】
ロボットが台車に搭載されている場合、該台車に上述の追随装置を設けておけば、ロボットと表示装置との相対位置関係を一旦計測した後は、ロボットが移動してもその位置を取得でき、教示された位置に現実のロボットが到達可能か否かを的確に判定できる。また、ロボットの動作シミュレーションとしてロボットの３Ｄモデルを表示する場合も、その３Ｄモデルの動作を正確に表示することができる。なおロボットは台車ではなく、サーボモータ等により駆動するとともに、移動量が取得できるレールや回転円盤等の上に設置されてもよい。その場合は、該移動量を検出する手段（エンコーダ等）を追随装置として使用することができる。
【００５８】
なお上述の実施形態では、頭部装着型の表示装置を使用した例を説明したが、タブレット端末を使用した場合も同様の操作・処理が可能であることはもちろんである。
【００５９】
上述の実施形態では、6軸と7軸のロボットを例に説明したが、本開示に係るロボット制御装置が適用されるロボットは、これらの軸数のロボットに限定されるものではなく、これ以外の軸数のロボットでも本開示に係るロボット制御装置は使用可能である。
【００６０】
また、上述の実施形態では、拡張現実と複合現実を利用することにより、使用者は、ジェスチャーによって、現実の環境に重畳表示された仮想モデルの操作（移動、回転等）を行うことで、実際のロボットまたは物体を動かす感覚でロボットを教示できるので、より直感的に素早く教示等の作業を行うことができる。またワークや周辺機器等のロボット周りに実在するものについては、予めモデリングをしておく必要がないので、仮想現実に比べ手間を少なくすることができることに加え、教示やシミュレーションの精度や信頼性を向上させることができる。さらに、使用者は教示操作盤またはロボット本体といった現実の物体を持ったり、現実のロボットを手動やジョグ操作で動かす必要がないので、このロボット制御装置は、使用者の負担及び疲労を軽減できるとともに、作業時間を短縮でき、かつ、エネルギーコストも節約できる。
【符号の説明】
【００６１】
１０    ロボット制御装置
１２    使用者
１４    ロボット
１８    表示装置
２０    位置姿勢取得部
２２、２２ａ、２２ｂ    ハンド
２４    表示制御部
２６    操作制御部
２８    位置姿勢規定部
３０    プログラム生成部
３２、３６    カメラ
３４、３８    ディスプレイ
４２、５２    ワーク
５０    メニュー画面
５６    ワークモデル
５８    箱
６０    バー
６２    ツール座標系
６４    操作ボタン
６６、６８    直交ジョグ
８２    プログラム編集画面
８４    ワールド座標系
８６    基準座標系
【図１】
2020055075.tif 000003
【図２】
2020055075.tif 000004
【図３】
2020055075.tif 000005
【図４】
2020055075.tif 000006
【図５】
2020055075.tif 000007
【図６】
2020055075.tif 000008
【図７】
2020055075.tif 000009
【図８】
2020055075.tif 000010
【図９】
2020055075.tif 000011
【図１０】
2020055075.tif 000012
【図１１】
2020055075.tif 000013
【図１２】
2020055075.tif 000014
【図１３】
2020055075.tif 000015