(57)【特許請求の範囲】
【請求項１】
駆動対象機器の３次元データおよび構造物の３次元データに基づいて、前記構造物の３次元データが規定する仮想空間内において、前記駆動対象機器に設定された制御点を通る第１の直線を含む照準座標軸の３次元データを生成する情報処理部と、
前記駆動対象機器の３次元データ、前記構造物の３次元データおよび情報処理部が生成した前記照準座標軸の３次元データに基づいて、前記照準座標軸を出力装置に表示するための制御情報を生成する出力制御部とを備え、
前記第１の直線は、前記制御点と前記構造物の表面との交点までの部分の線分である表示制御装置。
【請求項２】
前記照準座標軸は、前記第１の直線に加え、それぞれ前記第１の直線上に位置する照準点を通る第２の直線および第３の直線で構成されたことを特徴とする請求項１記載の表示制御装置。
【請求項３】
前記第１の直線は、前記駆動対象機器に取り付けられたツールに応じて設定された方向に延びる直線であることを特徴とする請求項１記載の表示制御装置。
【請求項４】
前記第１の直線は、鉛直方向に延びる直線であることを特徴とする請求項１記載の表示制御装置。
【請求項５】
前記第２の直線および前記第３の直線は、互いに直交するｘ軸およびｙ軸と、鉛直方向のｚ軸を含むグローバル座標における、前記ｘ軸および前記ｙ軸の軸方向と同一方向に延びる直線であることを特徴とする請求項２記載の表示制御装置。
【請求項６】
前記第２の直線および前記第３の直線は、互いに直交するｘ軸、ｙ軸およびｚ軸を含むローカル座標における、前記ｘ軸および前記ｙ軸と同一方向に延びる直線であることを特徴とする請求項２記載の表示制御装置。
【請求項７】
前記照準点は、前記仮想空間内において、前記第１の直線と、前記構造物の表面とが交わる点であることを特徴とする請求項２記載の表示制御装置。
【請求項８】
前記第２の直線および前記第３の直線は、前記構造物の表面形状に沿った線であって、特定の一方向からみた場合に直線形状且つ互いに直交する形状となる線であることを特徴とする請求項２記載の表示制御装置。
【請求項９】
前記第２の直線および前記第３の直線は、前記仮想空間内において、真っ直ぐに延びる線であることを特徴とする請求項２記載の表示制御装置。
【請求項１０】
前記出力制御部は、前記第１の直線、前記第２の直線および前記第３の直線のうち、前記駆動対象機器の駆動が制限される方向と同一方向に延びる直線の表示形態を変化させて表示するための制御情報を生成することを特徴とする請求項２記載の表示制御装置。
【請求項１１】
前記出力制御部は、前記制御点の座標値を表示するための制御情報を生成することを特徴とする請求項１記載の表示制御装置。
【請求項１２】
前記出力制御部は、前記照準点の座標値を表示するための制御情報を生成することを特徴とする請求項２記載の表示制御装置。
【請求項１３】
駆動対象機器の３次元データおよび構造物の３次元データに基づいて、前記構造物の３次元データが規定する仮想空間内において、前記駆動対象機器に設定された制御点を通る第１の直線を含む照準座標軸の３次元データを生成する情報処理部と、
前記駆動対象機器の３次元データ、前記構造物の３次元データおよび情報処理部が生成した前記照準座標軸の３次元データに基づいて、前記照準座標軸を出力装置に表示するための制御情報を生成する出力制御部と、
前記駆動対象機器の駆動限界に基づいて、前記駆動対象機器の駆動可能領域を設定する駆動領域設定部を備え、
前記第１の直線は、前記駆動可能領域内に位置する部分の線分であることを特徴とする表示制御装置。
【請求項１４】
前記照準座標軸は、前記第１の直線に加え、それぞれ前記第１の直線上に位置する照準点を通る第２の直線および第３の直線で構成され、
前記第２の直線、および前記第３の直線は、前記駆動可能領域内に位置する部分の線分であることを特徴とする請求項１３記載の表示制御装置。
【請求項１５】
前記駆動対象機器の通過点を指定する操作情報に基づいて、前記指定された通過点を経由する前記駆動対象機器の駆動軌道を生成する軌道生成部を備え、
前記出力制御部は、前記軌道生成部が生成した前記駆動軌道および前記駆動軌道上の通過点を表示するための制御情報を生成することを特徴とする請求項１又は１３記載の表示制御装置。
【請求項１６】
前記軌道生成部が生成した前記駆動軌道に沿って、前記駆動対象機器が駆動する動作を算出し、前記駆動対象機器の動きを示すシミュレーション情報を生成する再生処理部を備え、
前記出力制御部は、前記再生処理部が生成した前記シミュレーション情報を再生するための制御情報を生成することを特徴とする請求項１５記載の表示制御装置。
【請求項１７】
前記再生処理部は、前記軌道生成部が生成した前記駆動軌道に沿って、前記駆動対象機器が駆動した場合に、前記駆動対象機器と前記構造物とが干渉するか否か判定を行い、
前記出力制御部は、前記再生処理部が前記駆動対象機器と前記構造物とが干渉すると判定した場合に、前記干渉が発生する箇所を表示するための制御情報を生成することを特徴とする請求項１６記載の表示制御装置。
【請求項１８】
情報処理部が、駆動対象機器の３次元データおよび構造物の３次元データに基づいて、前記構造物の３次元データが規定する仮想空間内において、前記駆動対象機器に設定された制御点と前記構造物の表面との交点までの部分の線分である第１の直線を含む照準座標軸の３次元データを生成するステップと、
出力制御部が、前記駆動対象機器の３次元データ、前記構造物の３次元データおよび前記生成された前記照準座標軸の３次元データに基づいて、前記照準座標軸を出力装置に表示するための制御情報を生成するステップとを備えた表示制御方法。
【請求項１９】
駆動対象機器の３次元データおよび構造物の３次元データに基づいて、前記構造物の３次元データが規定する仮想空間内において、前記駆動対象機器に設定された制御点と前記構造物の表面との交点までの部分の線分である第１の直線を含む照準座標軸の３次元データを生成する手順と、
前記駆動対象機器の３次元データ、前記構造物の３次元データおよび前記生成された前記照準座標軸の３次元データに基づいて、前記照準座標軸を出力装置に表示するための制御情報を生成する手順とをコンピュータに実行させるための表示制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、機器の操作を支援するための情報を表示するための技術に関するものである。
【背景技術】
【０００２】
従来、定められた作業等を機器（以下では、機器がロボットの場合を例に説明する）に行わせるための教示データに基づいて、ロボットの動作をシミュレート演算して表示するロボットシミュレータが種々提案されている。ロボットシミュレータを用いることにより、オペレータは、実際にロボットを動作させることなく、ロボットが周囲の構造物に干渉しないか等の検証を行いながら、教示データを作成することができる。オペレータは、ロボットのアームの先端部が通過する３次元空間上のポイントまたは軌道を指定することにより、教示データを作成する。【０００３】
教示データの作成方法として、数値入力によりロボットのアームを動かして作成する方法、矢印ボタンまたはジョイスティック等を用いた間接的な操作でロボットのアームを動かして作成する方法、およびオペレータがロボットのアームを掴んで直接動かして作成する方法等が存在する。
しかし、数値入力によりロボットのアームを動かして教示データを作成する場合、教示データの結果がオペレータの意図通りになるまで、数値入力を繰り返す必要があり、時間を要するという問題があった。【０００４】
また、間接的な操作でロボットのアームを動かして教示データを作成する場合、オペレータは、自身に対する上下左右の方向と、ロボットのアームに対する上下左右方向とを一致させて操作する必要がある。そのため、オペレータは直感的にロボットのアームを操作することができず、誤操作を誘発する可能性があるという問題があった。
また、オペレータがロボットのアームを掴んで直接動かすことにより教示データを作成する場合、各オペレータの能力に依存する作業であるため、作成された教示データにバラつきが生じ、高精度な教示データを得ることが困難であるという問題があった。また、ロボットが稼動している場合、またはロボットの周辺領域への立ち入りが禁止されている場合には、オペレータが教示データを作成する作業を行うことができないという問題があった。【０００５】
この問題を解消するための技術として、ロボットシミュレータにおいて、画面上に仮想空間を表示し、当該仮想空間内に位置するロボットのアームを操作して駆動させることにより、教示データを作成する技術が存在する。例えば、特許文献１に開示された装置は、コンピュータによって支援された情報を視覚装置上にある画像受取装置によって検出される現実環境の画像に視覚化するための装置である。当該特許文献１に開示された装置では、画像受け取り装置の位置および方向付け、またはポーズについての判定が行われ、当該判定に対応するロボット特有の情報、例えば少なくとも１つのロボットに特有の座標系の表示を含む情報が視覚装置上の現実環境の画像に重ねて表示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２４３５１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１に記載された装置では、情報が現実環境の画像に重ねられて表示されるため、直感的にロボットのアームを操作することができる。しかし、ロボットの現在位置と、ロボットを移動させる目的位置との関係を把握することが困難であるという課題があった。【０００８】
この発明は、上記のような課題を解決するためになされたもので、操作する機器の現在位置と、操作する機器を移動させる目的位置との関係を視覚的に把握可能な情報を提示することを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る表示制御装置は、駆動対象機器の３次元データおよび構造物の３次元データに基づいて、構造物の３次元データが規定する仮想空間内において、駆動対象機器に設定された制御点を通る第１の直線を含む照準座標軸の３次元データを生成する情報処理部と、駆動対象機器の３次元データ、構造物の３次元データおよび情報処理部が生成した照準座標軸の３次元データに基づいて、照準座標軸を出力装置に表示するための制御情報を生成する出力制御部とを備え、第１の直線は、制御点と構造物の表面との交点までの部分の線分である。
【発明の効果】
【００１０】
この発明によれば、操作する機器の現在位置と、操作する機器を移動させる目的位置との関係を視覚的に把握可能な情報を提示することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る表示制御装置を備えた教示システムの構成を示す図である。
【図２】教示システムに適用されるロボットの構成例を示す図である。
【図３】ロボットのフランジ部へのツールの取り付け例を示す図である。
【図４】実施の形態１に係る表示制御装置の構成を示すブロック図である。
【図５】図５Ａ、図５Ｂは、実施の形態１に係る表示制御装置のハードウェア構成例を示す図である。
【図６Ａ】実施の形態１に係る表示制御装置による照準座標軸の設定例を示す図である。
【図６Ｂ】実施の形態１に係る表示制御装置による照準座標軸の設定例を示す図である。
【図６Ｃ】実施の形態１に係る表示制御装置による照準座標軸の設定例を示す図である。
【図７Ａ】実施の形態１に係る表示制御装置による照準座標軸の表示例を示す図である。
【図７Ｂ】実施の形態１に係る表示制御装置による照準座標軸の表示例を示す図である。
【図７Ｃ】実施の形態１に係る表示制御装置による照準座標軸の表示例を示す図である。
【図８】実施の形態１に係る表示制御装置の動作を示すフローチャートである。
【図９】実施の形態１に係る表示制御装置の情報処理部の動作を示すフローチャートである。
【図１０】実施の形態１に係る表示制御装置の情報処理部の動作を示すフローチャートである。
【図１１】図１１Ａ、図１１Ｂは、実施の形態１に係る表示制御装置による照準座標軸のその他の表示例を示す図である。
【図１２】実施の形態２に係る表示制御装置の構成を示すブロック図である。
【図１３】実施の形態２に係る表示制御装置におけるロボットの駆動可能領域および照準座標軸を示す図である。
【図１４】実施の形態２に係る表示制御装置におけるロボットの駆動可能領域および照準座標軸を示す図である。
【図１５】実施の形態２に係る表示制御装置の情報処理部の動作を示すフローチャートである。
【図１６】実施の形態３に係る表示制御装置の構成を示すブロック図である。
【図１７】図１７Ａ、図１７Ｂ、図１７Ｃは、実施の形態３に係る表示制御装置の軌道生成部が生成する駆動軌道の種別を示す図である。
【図１８】実施の形態３に係る表示制御装置の軌道生成部の動作を示すフローチャートである。
【図１９】実施の形態３に係る表示制御装置の再生処理部の動作を示すフローチャートである。
【図２０】実施の形態３に係る発明の表示制御装置による干渉箇所の表示例を示す図である。
【図２１】実施の形態１から実施の形態３で示した表示制御装置の制御情報を、拡張現実空間の出力装置に出力した場合の表示例を示す図である。
【発明を実施するための形態】
【００１２】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、実施の形態１に係る表示制御装置１を備えた教示システムの構成を示す図である。図１では、表示制御装置１を、ロボット（駆動対象機器）の教示データを作成する教示システムに適用した場合を例に示している。なお、表示制御装置１は、ロボットの教示システムへの適用に限定されるものではなく、機器を操作するための種々のシステムへの適用が可能である。
【００１３】
また、表示制御装置１は、表示手段に表示された３次元データまたは拡張現実（Augmented Reality、ＡＲ）コンテンツに、生成した教示データを重ね合わせて表示する用途に使用される。具体的には、表示制御装置１は、パソコン、タブレット、スマートフォンおよび専用の教示装置等に表示された３次元データ、または拡張現実メガネに表示された拡張現実コンテンツに、教示データを重ね合わせて表示する制御を行う。拡張現実メガネは、ユーザの頭部に装着されて、ユーザの眼前に画像を表示するヘッドマウントディスプレイ（Head Mounted Display、ＨＭＤ）である。ヘッドマウントディスプレイは、非透過型であってもよいし、透過型であってもよい。表示制御装置１は、例えば、上述したパソコン、タブレット、スマートフォン、専用の教示装置および拡張現実メガネ等の処理回路またはチップ等として実装される。
【００１４】
教示システムは、表示制御装置１、ロボット２、周辺情報取得装置３、教示装置４およびロボット制御装置７で構成される。教示装置４は、出力装置５および入力装置６を備える。
ロボット２は、制御プログラムに従って動作して、目的とする作業を行う装置である。制御プログラムとは、ロボット２の動作を指令する情報である。ロボット２の動作を指令する情報には、ロボット２が駆動する際の通過点、軌道、速度および動作回数等の情報が含まれる。オペレータが、当該制御プログラムを入力または修正する操作をロボット教示という。また、ロボット教示により得られたデータを、教示データという。
【００１５】
周辺情報取得装置３は、ロボット２の３次元データ、および、ロボット２の周辺環境の３次元データを取得して表示制御装置１に出力する。３次元データとは、ロボット２および周辺環境の、外形、位置および動きを数値で示したデータである。周辺情報取得装置３は、カメラ、３次元スキャナまたはサーバ等で構成される。周辺情報取得装置３が、例えばカメラまたは３次元スキャナで構成される場合、現実環境のロボット２および周辺環境を撮影またはスキャンし、ロボット２および周辺環境の３次元データを取得し、表示制御装置１に出力する。また、周辺情報取得装置３が、例えばサーバで構成される場合、予め記憶装置等に記憶されたロボット２および周辺環境の３次元データを取得し、表示制御装置１に出力する。
周辺環境とは、ロボット２が設置される空間における床、壁、柱、台、関連する機器、配線およびワーク等（以下、構造物という）である。ここで、ワークとは、ロボット２の作業対象をいう。ロボット２が、例えば、組み立てまたは搬送を行う装置である場合、ワークは、ロボット２に取り付けられた把持用のツールが把持する対象である。また、ロボット２が、例えば、バリ取りを行う装置である場合、ワークは、ロボット２に取り付けられたバリ取り用のツールを押し当てる対象である。なお、ツールの詳細は後述する。
【００１６】
表示制御装置１は、周辺情報取得装置３から、ロボット２の３次元データおよび構造物の３次元データを取得する。表示制御装置１内の情報処理において仮想的に構築される空間であって、構造物の３次元データにより規定される空間を、仮想空間という。表示制御装置１は、構造物の３次元データに基づいて、仮想空間を規定する構造物を出力装置５に表示させるための制御を行う。また、表示制御装置１は、仮想空間内に配置されたロボット２を示す画像および操作支援情報を出力装置５に表示させるための制御を行う。表示制御装置１は、制御情報を教示装置４に出力する。
【００１７】
教示装置４の出力装置５は、例えば、パソコンまたはタブレット端末等のディスプレイ、またはヘッドマウントディスプレイで構成される。出力装置５は、表示制御装置１から入力された制御情報に基づいて、仮想空間、ロボット２および操作支援情報等を表示する。また、出力装置５は、表示制御装置１からの指令に基づき、ロボット２の制御プログラムを表示してもよい。
【００１８】
教示装置４の入力装置６は、例えばマウス、タッチパネル、専用の教示端末、またはヘッドマウントディスプレイの入力手段で構成され、出力装置５で表示された情報に対する操作入力を受け付ける。入力装置６は、受け付けた操作入力に応じた操作情報を表示制御装置１に出力する。表示制御装置１は、入力装置６から入力された操作情報に基づいて、操作後のロボット２の状態に応じた制御情報を生成する。
また、入力装置６は、出力装置５に制御プログラムが表示されている場合、表示された制御プログラムの修正等の操作入力を受け付ける。表示制御装置１は、入力装置６から入力された操作情報に基づいて、ロボット２の制御プログラムを修正する。
【００１９】
表示制御装置１は、オペレータによる操作入力が終了すると、ロボット２の制御プログラムを確定する。表示制御装置１は、確定した制御プログラムをロボット制御装置７に出力する。ロボット制御装置７は、表示制御装置１から入力された制御プログラムを保存し、保存した制御プログラムをロボット２の駆動信号に変換してロボット２に送信する。ロボット２は、ロボット制御装置７から受信した駆動信号に基づいて駆動し、定められた作業等を行う。
【００２０】
次に、ロボット２の構成について説明する。
図２は、教示システムに適用されるロボット２の構成例を示す図である。
図２に例示されたロボット２は、６軸の自由度を有するいわゆる垂直多関節形のロボットであり、据付部２ａ、第１アーム２ｂ、第２アーム２ｃ、第３アーム２ｄ、第４アーム２ｅ、第５アーム２ｆおよびフランジ部２ｇを備える。
据付部２ａは、床に固定される。第１アーム２ｂは、軸線Ｊ１を回転軸として、据付部２ａに対して回動する。第２アーム２ｃは、軸線Ｊ２を回転軸として、第１アーム２ｂに対して回動する。第３アーム２ｄは、軸線Ｊ３を回転軸として、第２アーム２ｃに対して回動する。第４アーム２ｅは、軸線Ｊ４を回転軸として、第３アーム２ｄに対して回動する。第５アーム２ｆは、軸線Ｊ５を回転軸として、第４アーム２ｅに対して回動する。フランジ部２ｇは、軸線Ｊ６を回転軸として、第５アーム２ｆに対して回動する。フランジ部２ｇは、第５アーム２ｆとの接続側と反対側の端部に、種々のツールを取り付けて固定する機構を備える。ツールは、ロボット２の作業内容に応じて選択される。ツールは、ワークを把持する器具およびワークを研磨するグラインダ等の工具である。
【００２１】
図３は、ロボット２のフランジ部２ｇへのツール８の取り付け例を示す図である。
図３Ａは、フランジ部２ｇにツール８として、ワークを把持する器具８ａを取り付けた場合を示す図である。図３Ｂは、フランジ部２ｇにツール８として、グラインダ８ｂを取り付けた場合を示す図である。図３Ａおよび図３Ｂで示した点Ａは、ツール８に応じて設定された制御点を示している（以下、制御点Ａという）。制御点Ａは、オペレータが、出力装置５に表示された仮想空間内でロボット２を動かす場合に、表示されたロボット２上またはロボット２近傍のどの位置を操作すべきかを示すものである。制御点Ａは、出力装置５に表示された仮想空間内に例えば円形または矩形の形状で表示される。ツール８が、図３Ａで示したワークを把持する器具８ａの場合、制御点Ａは器具８ａがワークを把持する点に設定される。ツール８が、図３Ｂで示したグラインダ８ｂの場合、制御点Ａはグラインダ８ｂの研磨点に設定される。図３Ｂの例のように、ツール８がワークに対して加工を行う工具である場合、制御点Ａは当該工具の加工点または加工領域に設定される。
【００２２】
次に、表示制御装置１の内部構成について説明する。
図４は、実施の形態１に係る表示制御装置１の構成を示すブロック図である。
表示制御装置１は、３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４を備える。また、図４で示した表示制御装置１は、周辺情報取得装置３、入力装置６および出力装置５に接続されている。
【００２３】
３次元データ取得部１０１は、周辺情報取得装置３から、ロボット２の３次元データおよび構造物の３次元データを取得する。３次元データ取得部１０１は、取得した３次元データを情報処理部１０３に出力する。操作情報取得部１０２は、入力装置６を介して、オペレータの操作情報を取得する。操作情報取得部１０２は、取得した操作情報を情報処理部１０３に出力する。
【００２４】
情報処理部１０３は、３次元データ取得部１０１から入力された３次元データから、仮想空間内のロボット２の制御点Ａの位置座標を取得する。情報処理部１０３は、取得した制御点Ａの位置座標および構造物の３次元データから、仮想空間内に設定する照準座標軸の位置および方向等を算出し、当該照準座標軸の３次元データを生成する。照準座標軸は、直線Ｘ（第２の直線）、直線Ｙ（第３の直線）および直線Ｚ（第１の直線）の３軸で構成される座標軸である。照準座標軸は、オペレータがロボット２の教示データを作成する際に参照する操作支援情報である。なお、照準座標軸の詳細については後述する。
【００２５】
また、情報処理部１０３は、操作情報取得部１０２が取得した操作情報に応じて、仮想空間内のロボット２をオペレータの操作入力に追従させて駆動させた場合の、ロボット２の３次元データおよび照準座標軸の３次元データを生成する。なお、情報処理部１０３は、仮想空間内でのロボット２の移動を算出するために必要なロボット２の仕様データを予め適宜の方法で取得しているものとする。情報処理部１０３は、構造物の３次元データ、ロボット２の３次元データおよび照準座標軸の３次元データを出力制御部１０４に出力する。
【００２６】
出力制御部１０４は、情報処理部１０３から取得した構造物の３次元データ、ロボット２の３次元データおよび照準座標軸の３次元データに基づいて、構造物、ロボット２および照準座標軸を表示する制御情報を生成する。制御情報は、仮想空間内の構造物、ロボット２および照準座標軸を、仮想空間内の特定の位置からみた場合の画像を、出力装置５に表示させるための情報である。仮想空間内の特定の位置とは、例えば、現実環境におけるユーザの視点の位置と対応する、仮想空間内の位置である。出力制御部１０４は、生成した制御情報を出力装置５に出力する。
【００２７】
次に、表示制御装置１のハードウェア構成例を説明する。
図５Ａおよび図５Ｂは、実施の形態１に係る表示制御装置１のハードウェア構成例を示す図である。
表示制御装置１における３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４の各機能は、処理回路により実現される。即ち、３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４は、上記各機能を実現するための処理回路を備える。当該処理回路は、図５Ａに示すように専用のハードウェアである処理回路１ａであってもよいし、図５Ｂに示すようにメモリ１ｃに格納されているプログラムを実行するプロセッサ１ｂであってもよい。
【００２８】
図５Ａに示すように、３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４が専用のハードウェアである場合、処理回路１ａは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-programmable Gate Array）、またはこれらを組み合わせたものが該当する。３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４の各部の機能それぞれを処理回路で実現してもよいし、各部の機能をまとめて１つの処理回路で実現してもよい。
【００２９】
図５Ｂに示すように、３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４がプロセッサ１ｂである場合、各部の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ１ｃに格納される。プロセッサ１ｂは、メモリ１ｃに記憶されたプログラムを読み出して実行することにより、３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４の各機能を実現する。即ち、表示制御装置１の３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４は、プロセッサ１ｂにより実行されるときに、後述する図８から図１０に示す各ステップが結果的に実行されることになるプログラムを格納するためのメモリ１ｃを備える。また、これらのプログラムは、３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４の手順または方法をコンピュータに実行させるものであるともいえる。
【００３０】
ここで、プロセッサ１ｂとは、例えば、ＣＰＵ（Central Processing Unit）、処理装置、演算装置、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、またはＤＳＰ（Digital Signal Processor）などのことである。
メモリ１ｃは、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（Electrically EPROM）等の不揮発性または揮発性の半導体メモリであってもよいし、ハードディスク、フレキシブルディスク等の磁気ディスクであってもよいし、ミニディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）等の光ディスクであってもよい。
【００３１】
なお、３次元データ取得部１０１、操作情報取得部１０２、情報処理部１０３および出力制御部１０４の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。このように、表示制御装置１における処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
【００３２】
次に、情報処理部１０３が３次元データを生成する照準座標軸について、図６Ａ、図６Ｂ、図６Ｃ、図７Ａ、図７Ｂおよび図７Ｃを参照しながら説明する。
図６Ａから図６Ｃは、実施の形態１に係る表示制御装置１による照準座標軸の設定例を示す図である。
具体的には、図６Ａから図６Ｃでは、表示制御装置１がロボット２、ツール８およびロボット２の設置面Ｂを表示する制御を行い、さらに、制御点Ａおよび照準座標軸を表示する制御を行った場合の例を示している。
図６Ａから図６Ｃにおいて、照準座標軸は、制御点Ａを通る直線Ｚと、当該直線Ｚ上の照準点Ｃで互いに直交する直線Ｘおよび直線Ｙで構成された座標軸である。照準点Ｃは、仮想空間内において、直線Ｚと構造物の表面とが交わる点である。そのため、直線Ｚと構造物とが交わる点が存在しない場合、情報処理部１０３は、照準点Ｃは存在しないと判断し、直線Ｚのみの３次元データを生成する。
【００３３】
この発明における直線Ｘおよび直線Ｙには、一般的な定義による直線（以下、真直線という）が含まれるほか、照準点Ｃを含む構造物の表面形状に沿った線であって、特定の一方向からみた場合に直線形状、且つ互いに直交する形状となる線が含まれる。すなわち、直線Ｘおよび直線Ｙが上記のように構造物の表面形状に沿った線である場合、両直線の３次元形状は、当該構造物の表面形状に依存するため、必ずしも真直線とはならない。同様に、直線Ｘおよび直線Ｙが上記のように構造物の表面形状に沿った線である場合、直線Ｘと直線Ｙとが３次元空間である仮想空間内において交わる角度は、当該構造物の表面の形状に依存するため、必ずしも直角とはならない。なお、特定の一方向とは、例えば、後述するグローバル座標またはローカル座標のｚ座標の方向である。
【００３４】
直線Ｚの方向は、フランジ部２ｇに取り付けられたツール８に応じて設定される。ツール８が、例えば、図３Ａで示したワークを把持する器具８ａである場合、図６Ａおよび図６Ｂに示すように、直線Ｚは、矢印８ａ１で示した器具８ａの把持部の開閉方向と直交し且つ把持部が延びる方向（例えば、図２の軸線Ｊ６の方向）と平行な方向であり、且つ制御点Ａを通る直線となる。ツール８が、例えば、図３Ｂで示したグラインダ８ｂである場合、図６Ｃに示すように、直線Ｚは、矢印８ｂ１で示したグラインダ８ｂをワーク等に押し当てる方向と同一方向であり、且つ制御点Ａを通る直線となる。このように、直線Ｚの方向は、フランジ部２ｇに取り付けられたツール８が、ワークに対してどのような作業を行うか等に基づいて適宜設定される。
【００３５】
直線Ｚの方向からみた場合の直線Ｘと直線Ｙの方向は、グローバル座標またはローカル座標に基づいて設定される。グローバル座標とは、３次元空間そのものに対して設定される座標であり、３次元空間に固定して設定されたロボット２本体または３次元空間に固定されたいずれかの構造物が持つ座標である。ローカル座標とは、３次元空間において移動可能な物体を基準とする座標であり、例えば、ロボット２のフランジ部２ｇに取り付けられたツール８を基準として設定された座標である。図６Ａはグローバル座標に基づいて方向が設定された直線Ｘおよび直線Ｙによる照準座標軸を示し、図６Ｂおよび図６Ｃはローカル座標に基づいて方向が設定された直線Ｘおよび直線Ｙによる照準座標軸を示している。
【００３６】
図６Ａは、ロボット２が持つｘ軸、ｙ軸およびｚ軸をグローバル座標とし、当該グローバル座標に基づいて照準座標軸の直線Ｘおよび直線Ｙの方向を設定した場合の例を示している。グローバル座標のｚ軸はロボット２の軸線Ｊ１と重なる位置および方向の座標軸とし、当該ｚ軸とロボット２の設置面Ｂとの交点を原点Ｏとする。グローバル座標のｙ軸は、原点Ｏを通り、ロボット２の設置面Ｂと平行であり、且つ予め定められたロボット２の正面方向と平行な座標軸である。グローバル座標のｘ軸は、原点Ｏでｚ軸およびとｙ軸と直交する座標軸である。照準座標軸の直線Ｘおよび直線Ｙは、それぞれグローバル座標のｘ軸およびｙ軸の軸方向と一致するように設定される。
【００３７】
図６Ｂは、フランジ部２ｇに取り付けられた器具８ａに設定されたｘ軸、ｙ軸およびｚ軸をローカル座標とし、当該ローカル座標に基づいて照準座標軸の直線Ｘおよび直線Ｙの方向を設定した場合の例を示している。ローカル座標のｚ軸は、器具８ａの把持部の開閉方向（矢印８ａ１参照）と直交し、且つ把持部が延びる方向（図２の軸線Ｊ６の方向）と平行な方向であり、且つ制御点Ａを通る座標軸である。この場合の原点は制御点Ａとなる。ローカル座標のｘ軸は、器具８ａの把持部の開閉方向（矢印８ａ１参照）と同一方向、且つ制御点Ａを通る座標軸である。ローカル座標のｙ軸は、制御点Ａでｘ軸およびｚ軸と直交する座標軸である。照準座標軸の直線Ｘおよび直線Ｙは、それぞれローカル座標のｘ軸およびｙ軸の軸方向一致するように設定される。
【００３８】
図６Ｃは、フランジ部２ｇに取り付けられたグラインダ８ｂに設定されたｘ軸、ｙ軸およびｚ軸をローカル座標とし、当該ローカル座標に基づいて照準座標軸の直線Ｘおよび直線Ｙを設定した場合の例を示している。ローカル座標のｚ軸は、グラインダ８ｂをワーク等に押し当てる方向（矢印８ｂ１参照）に延び、且つ制御点Ａを通る座標軸である。ローカル座標のｘ軸は、制御点Ａを通り、且つｚ軸と直交する座標軸である。ローカル座標のｙ軸は、制御点Ａでｘ軸およびｚ軸と直交する座標軸である。照準座標軸の直線Ｘおよび直線Ｙは、それぞれローカル座標のｘ軸およびｙ軸の軸方向と一致するように設定される。
【００３９】
図６Ａから図６Ｃでは、照準座標軸の直線Ｘおよび直線Ｙの方向が、グローバル座標またはローカル座標のｘ軸とｙ軸の軸方向と同一方向である場合を示した。しかし、照準座標軸の直線Ｘおよび直線Ｙの軸方向は、グローバル座標またはローカル座標が有するｘ軸とｙ軸の軸方向と同一方向である必要はない。すなわち、直線Ｘおよび直線Ｙの方向は、それぞれがグローバル座標またはローカル座標が有するｘ軸およびｙ軸の軸方向と同一方向に向いた状態に対して、直線Ｚを回転軸として任意の角度だけ回転した方向に設定されてもよい。
【００４０】
図７Ａから図７Ｃは、実施の形態１に係る表示制御装置１による照準座標軸の表示例を示す図である。
図７Ａおよび図７Ｂは、出力装置５における照準座標軸の表示例を示している。情報処理部１０３は、仮想空間内のロボット２の制御点Ａの位置情報および構造物の３次元データを用いて、仮想空間内における直線Ｚの方向および直線Ｚ上の照準点Ｃを算出する。また、情報処理部１０３は、直線Ｘおよび直線Ｙについて、仮想空間内においてそれぞれが延びる方向と形状等とを算出する。さらに、情報処理部１０３は、算出した照準座標軸について、構造物の３次元データを参照し、３次元データを生成する。これにより、図７Ａおよび図７Ｂに示すように、照準座標軸の直線Ｘおよび直線Ｙは、仮想空間内に存在するワークＤａまたは構造物Ｄｂの表面形状、およびロボット２の設置面Ｂの表面形状に沿うように、出力装置５に表示される。
【００４１】
直線Ｘおよび直線Ｙは、構造物の表面形状に沿った形状でなくてもよい。図７Ｃは、照準座標軸の直線Ｘおよび直線Ｙを真直線とした場合の表示例を示している。照準座標軸の直線Ｘおよび直線Ｙを真直線とする場合、図７Ｃに示すように、照準座標軸の両直線は、照準点Ｃを通る真直線として、出力装置５に表示される。
表示制御装置１は、オペレータが、照準座標軸の直線Ｘおよび直線Ｙを構造物に沿った形状として表示するか、または真直線の形状で表示するかを選択できる構成としてもよい。これにより、表示制御装置１は、オペレータの選択した表示方法に応じた照準座標軸の表示制御を行うことができる。
【００４２】
上述した説明では、直線Ｚは、ロボット２のフランジ部２ｇに取り付けられたツール８が、ワークに対してどのような作業を行うか等に基づいて適宜設定される場合を示した。しかし、直線Ｚの設定方法は上述した方法に限定されることなく、直線Ｚは制御点Ａから鉛直下向きあるいは鉛直上向き方向に延びる直線に設定されてもよい。また、直線Ｚは制御点Ａから任意に設定された方向に延びる直線と設定されてもよい。
【００４３】
次に、表示制御装置１の動作について、図８のフローチャートを参照しながら説明する。
図８は、実施の形態１に係る表示制御装置１の動作を示すフローチャートである。
３次元データ取得部１０１は、周辺情報取得装置３から、ロボット２および構造物の３次元データを取得する（ステップＳＴ１）。３次元データ取得部１０１は、取得した３次元データを情報処理部１０３に出力する。情報処理部１０３は、ステップＳＴ１で取得された３次元データに基づいて、照準座標軸の位置および方向等を算出する（ステップＳＴ２）。情報処理部１０３は、算出した照準座標軸の位置および方向等に基づいて、照準座標軸の３次元データを生成する（ステップＳＴ３）。情報処理部１０３は、ステップＳＴ３で生成した３次元データと、ロボット２および構造物の３次元データとを、出力制御部１０４に出力する。
【００４４】
出力制御部１０４は、情報処理部１０３から入力された３次元データに基づいて、仮想空間内の構造物、ロボット２および照準座標軸を表示する制御情報を生成する（ステップＳＴ４）。出力制御部１０４は、ステップＳＴ４で生成した制御情報を出力装置５に出力する（ステップＳＴ５）。続いて、情報処理部１０３は、操作情報取得部１０２から操作情報が入力されたか否か判定を行う（ステップＳＴ６）。操作情報が入力された場合（ステップＳＴ６；ＹＥＳ）、情報処理部１０３は入力された操作情報で示された位置情報に基づいて、前回生成したロボット２および照準座標軸の３次元データを修正する（ステップＳＴ７）。情報処理部１０３は、ステップＳＴ７で修正した３次元データを、出力制御部１０４に出力する。
【００４５】
出力制御部１０４は、ステップＳＴ７で修正された３次元データに基づいて、仮想空間内のロボット２および照準座標軸を表示する制御情報を生成する（ステップＳＴ８）。出力制御部１０４は、ステップＳＴ８で生成した制御情報を出力装置５に出力する（ステップＳＴ９）。その後、フローチャートはステップＳＴ６の処理に戻る。一方、操作情報が入力されなかった場合（ステップＳＴ６；ＮＯ）、前回の操作情報が入力されてから所定時間経過したか否か判定を行う（ステップＳＴ１０）。所定時間経過した場合（ステップＳＴ１０；ＹＥＳ）、処理を終了する。一方、所定時間経過していない場合（ステップＳＴ１０；ＮＯ）、ステップＳＴ６の判定処理に戻る。
【００４６】
次に、図８のフローチャートのステップＳＴ３の処理の詳細について、図９のフローチャートを参照しながら説明する。
図９は、実施の形態１に係る表示制御装置１の情報処理部１０３の動作を示すフローチャートである。
なお、以下の説明において、情報処理部１０３は、フランジ部２ｇに取り付けられたツール８の種別を予め認識しているものとする。また、情報処理部１０３には、照準座標軸の直線Ｘおよび直線Ｙを、グローバル座標またはローカル座標のどちらに基づいて設定するのか、予め設定されているものとする。さらに、情報処理部１０３には、照準座標軸を構造物の表面形状に沿った線として表示するか、または真直線として表示するか、予め設定されているものとする。
【００４７】
情報処理部１０３は、ステップＳＴ２でロボット２および構造物の３次元データを生成すると、フランジ部２ｇに取り付けられたツール８の種別に応じて、当該ツール８の制御点Ａ、および当該制御点Ａを通る直線Ｚを決定して３次元データを生成する（ステップＳＴ１１）。情報処理部１０３は、例えば、ツール８の種別と、制御点Ａの位置および直線Ｚの方向を示す情報とを関連付けて記憶したデータベース（図示しない）を参照し、制御点Ａおよび直線Ｚを決定する。ここで、直線Ｚの方向を示す情報とは、例えば、ツール８が器具８ａである場合に、当該器具８ａの把持部の開閉方向と直交し、且つ制御点Ａを通る直線を直線Ｚとすることを示す情報である。
【００４８】
情報処理部１０３は、ステップＳＴ１１で決定した直線Ｚの３次元データと、構造物の３次元データとを参照し、仮想空間内で直線Ｚと構造物の表面とが交わる点が存在するか否か判定を行う（ステップＳＴ１２）。直線Ｚと構造物の表面とが交わる点が存在しない場合（ステップＳＴ１２；ＮＯ）、情報処理部１０３は、制御点Ａの３次元データを生成し（ステップＳＴ１３）、ステップＳＴ２１の処理に進む。
【００４９】
一方、直線Ｚと構造物の表面とが交わる点が存在する場合（ステップＳＴ１２；ＹＥＳ）、情報処理部１０３は、直線Ｚと構造物の表面とが交わる点を全て算出する（ステップＳＴ１４）。
例えば、図７Ａで示したようにロボット２の設置面Ｂ上にワークＤａが置かれている場合、ステップＳＴ１４の処理では、情報処理部１０３は、直線ＺがワークＤａの表面と交わる点、および直線Ｚがロボット２の設置面Ｂの表面と交わる点等を算出する。
【００５０】
情報処理部１０３は、ステップＳＴ１４で算出した点から、制御点Ａまでの距離を算出し、算出した距離が最短となる点を照準点Ｃに設定する（ステップＳＴ１５）。情報処理部１０３は、グローバル座標またはローカル座標を用いて、ステップＳＴ１５で設定した照準点Ｃにおいて互いに直交する直線Ｘおよび直線Ｙの方向を決定する（ステップＳＴ１６）。情報処理部１０３は、予め設定された条件を参照して、直線Ｘおよび直線Ｙを構造物の表面形状に沿う線とするか否か判定を行う（ステップＳＴ１７）。直線Ｘおよび直線Ｙを構造物の表面形状に沿う線とする場合（ステップＳＴ１７；ＹＥＳ）、情報処理部１０３は、構造物の３次元データを参照し、ステップＳＴ１１で決定した直線Ｚを照準点Ｃまでの長さとすると共に、ステップＳＴ１６で方向を決定した直線Ｘおよび直線Ｙを、当該構造物の表面形状に沿う線とする照準座標軸の３次元データを生成する（ステップＳＴ１８）。
【００５１】
一方、直線Ｘおよび直線Ｙを構造物の表面形状に沿う線としない場合（ステップＳＴ１７；ＮＯ）、すなわち直線Ｘおよび直線Ｙを真直線とする場合、情報処理部１０３は、ステップＳＴ１１で決定した直線Ｚを照準点Ｃまでの長さとすると共に、ステップＳＴ１６で方向を決定した直線Ｘおよび直線Ｙを真直線とする照準座標軸の３次元データを生成する（ステップＳＴ１９）。情報処理部１０３は、制御点Ａの３次元データを生成する（ステップＳＴ２０）。情報処理部１０３は、ステップＳＴ１８からステップＳＴ２０で生成した照準座標軸および制御点Ａの３次元データ、またはステップＳＴ１１で生成した直線Ｚの３次元データおよびステップＳＴ１３で生成した制御点Ａの３次元データを、出力制御部１０４に出力する（ステップＳＴ２１）。その後、フローチャートは、図８のフローチャートのステップＳＴ４の処理に進む。
【００５２】
次に、図８のフローチャートのステップＳＴ７の処理の詳細について、図１０のフローチャートを参照しながら説明する。
図１０は、実施の形態１に係る表示制御装置１の情報処理部１０３の動作を示すフローチャートである。
なお、以下では、仮想空間に表示されたロボット２を動かす操作として、制御点Ａに重畳して表示されたポインタを移動させる操作が入力された場合を例に説明する。
ポインタを移動させる操作情報が入力されると（ステップＳＴ６；ＹＥＳ）、情報処理部１０３は、入力された操作情報と、３次元データ取得部１０１から入力された３次元データとを参照し、仮想空間におけるポインタの位置情報を取得する（ステップＳＴ３１）。情報処理部１０３は、バッファ等に格納された前回の制御点Ａの位置情報と、ステップＳＴ３１で取得したポインタの位置情報とから、直線Ｘ、直線Ｙ、および直線Ｚにおけるポインタの移動方向および移動量を算出する（ステップＳＴ３２）。
【００５３】
情報処理部１０３は、前回算出した照準座標軸を、ステップＳＴ３２で算出した移動方向および移動量を用いて移動させ、新たな照準座標軸の位置及び方向等を算出し、当該新たな照準座標軸の３次元データを生成する（ステップＳＴ３３）。なお、直線Ｘおよび直線Ｙを構造物の表面形状に沿う線とするように設定されている場合、情報処理部１０３は、構造物の３次元データも参照して、照準座標軸の直線Ｘおよび直線Ｙを構造物の表面形状に沿うような線とした３次元データを生成する。情報処理部１０３は、新たな制御点Ａの３次元データを生成する（ステップＳＴ３４）。
【００５４】
情報処理部１０３は、ステップＳＴ３２からステップＳＴ３４の処理と並行して、以下のステップＳＴ３５およびステップＳＴ３６の処理を行う。情報処理部１０３は、ステップＳＴ３１で取得されたポインタの位置情報と、ロボット２の３次元データとから、ロボット２の移動方向および移動量を算出する（ステップＳＴ３５）。情報処理部１０３は、ステップＳＴ３５で算出したロボット２の移動方向および移動量を用いて、移動後のロボット２の３次元データを生成する（ステップＳＴ３６）。次に、情報処理部１０３は、ステップＳＴ３３で生成した新たな照準座標軸の３次元データ、ステップＳＴ３４で生成した新たな制御点Ａの３次元データ、およびステップＳＴ３６で生成した移動後のロボット２の３次元データを、出力制御部１０４に出力する（ステップＳＴ３７）。その後、フローチャートは、図８のフローチャートのステップＳＴ８の処理に進む。
【００５５】
オペレータは、制御点Ａにカーソルを重ね合わせて選択状態とし、ジョグレバー、操作キーまたはマウスなどで目的の位置に移動させる。また、教示装置４がタブレット端末の場合、オペレータは、タッチパネルに表示された制御点Ａに指を重ね合わせて選択状態とし、当該指を目的とする位置に移動させる。オペレータが制御点Ａを選択すると、出力制御部１０４は、制御点Ａの形状を拡大させる、または制御点Ａの色を変化させるなどの強調表示を行い、制御点Ａが選択中であることを知らせる表示制御を行う。また、出力制御部１０４は、制御点Ａが選択された場合、または制御点Ａが移動されている場合に、効果音を出力する制御を行ってもよい。制御点Ａの移動に応じて情報処理部１０３が、図１０のフローチャートで示した処理を行うことにより、ロボット形状をインタラクティブに変化させる処理を行う。オペレータは、照準座標軸を参考にしながら、制御点Ａを移動させて仮想空間内のロボット２を駆動させると共に、ロボット２の通過点の登録等を行う。
【００５６】
出力制御部１０４は、直線Ｘおよび直線Ｙを構造物の表面形状に沿う線とした照準座標軸、または直線Ｘおよび直線Ｙを真直線とした照準座標軸に対して、図１１に示すような表示方法を適用してもよい。
図１１は、実施の形態１に係る表示制御装置１の照準座標軸のその他の表示例を示す図である。
図１１Ａは、出力制御部１０４が、ロボット２の駆動が制限された方向の照準座標軸を破線で示す表示制御を行った場合を示している。オペレータがジョグレバーを操作して、出力装置５に表示されたロボット２を駆動する場合、ロボット２の一方向のみへの直線駆動を認識し易くするために、表示制御装置１はロボット２の駆動方向を一方向に制限した上で、ジョグレバーへの操作を受け付ける場合がある。その場合、出力制御部１０４は、直線Ｘ、直線Ｙおよび直線Ｚのうち、ロボットの駆動が制限された方向の直線を、破線、非表示または半透過で表示する制御情報を生成する。これにより、表示制御装置１は、ロボット２を駆動させることが可能な方向をオペレータに明示する表示制御を行うことができる。オペレータは、図１１Ａに示した表示を参照しながらジョグレバーの操作を行うことにより、ロボット２を駆動させることができる方向を直感的に認識しながら操作することができる。
【００５７】
図１１Ｂは、出力制御部１０４が、照準座標軸の表示に加えて、制御点Ａの座標値および照準点Ｃの座標値を表示する制御を行った場合の表示例を示している。
出力制御部１０４は、情報処理部１０３から入力された３次元データから、制御点Ａおよび照準点Ｃの座標値を取得する。出力制御部１０４は、取得した座標値を表示する表示領域Ｅａおよび表示領域Ｅｂを、制御点Ａおよび照準点Ｃの近傍に表示する制御情報を生成する。また、出力制御部１０４は、制御点Ａおよび照準点Ｃの座標値の数値を修正可能に表示する制御情報を生成してもよい。この場合、オペレータは、座標値の修正を希望する表示領域を選択し、新たな座標値を入力する。操作情報取得部１０２が座標値を修正する操作情報を取得すると、情報処理部１０３は当該操作情報に基づいて、新たな照準座標軸、新たな制御点Ａおよび駆動後のロボット２の３次元データを生成する。これにより、オペレータは、座標値を入力することにより、ロボット２を駆動させることができる。
【００５８】
以上のように、この実施の形態１によれば、ロボット２の３次元データおよび構造物の３次元データに基づいて、構造物の３次元データが規定する仮想空間内において、ロボット２に設定された制御点Ａを通る直線Ｚを含む照準座標軸の３次元データを生成する情報処理部１０３と、ロボット２の３次元データ、構造物の３次元データおよび情報処理部１０３が生成した照準座標軸の３次元データに基づいて、照準座標軸を出力装置５に表示するための制御情報を生成する出力制御部１０４とを備えるように構成したので、操作する機器の現在位置と、操作する機器を移動させる目的位置との関係を視覚的に把握可能な情報を提示することができる。
【００５９】
また、この実施の形態１によれば、照準座標軸を、直線Ｚに加え、それぞれ直線Ｚ上に位置する照準点Ｃを通る直線Ｘおよび直線Ｙで構成したので、表示された画像から奥行き方向の空間も容易に把握可能な情報を提示することができる。
【００６０】
また、この実施の形態１によれば、直線Ｚは、ロボット２に取り付けられたツール８に応じて設定された方向に延びる直線であるので、ロボットに取り付けられたツールがワークに対してどのような操作を行うか、またはワークに対してどのような加工を行うかに応じて照準座標軸の直線を決定することができる。これにより、ロボットが行う作業に適した照準座標軸を表示することができる。
【００６１】
また、この実施の形態１によれば、直線Ｚは鉛直方向に延びる直線であるので、照準座標軸の直線Ｚの軸方向が常に一定となり、オペレータは自身に対する上下方向と、ロボットに対する上下方向とを、容易に一致させて操作することができる。
【００６２】
また、この実施の形態１によれば、照準点Ｃは、仮想空間内において、第１の直線と、構造物の表面とが交わる点であるので、照準点が構造物上の点となり、オペレータが操作の目標とする点を提示することができる。
【００６３】
また、この実施の形態１によれば、直線Ｘおよび直線Ｙは、構造物の表面形状に沿った線であって、特定の一方向からみた場合に直線形状且つ互いに直交する形状となる線であるので、構造物の形状に合わせて移動する座標軸を提示することができる。
【００６４】
また、この実施の形態１によれば、直線Ｘおよび直線Ｙは、仮想空間内において、真っ直ぐに延びる線であるように構成したので、ロボットを構造物に衝突させないように移動する座標軸を提示することができる。
【００６５】
また、この実施の形態１によれば、出力制御部１０４が、直線Ｚ、直線Ｘおよび直線Ｙのうち、ロボット２の駆動が制限される方向と同一方向に延びる直線の表示形態を変化させて表示するための制御情報を生成するように構成したので、オペレータはロボットを駆動させることができる方向を直感的に認識しながら操作することができる。
【００６６】
また、この実施の形態１によれば、出力制御部１０４が、制御点Ａの座標値および照準点Ｃの座標値を表示するための制御情報を生成するように構成したので、オペレータは座標値を確認しながら操作を行うことができる。
【００６７】
実施の形態２．
この実施の形態２では、ロボット２の駆動限界を考慮して照準座標軸を表示する構成を示す。
図１２は、実施の形態２に係る表示制御装置１Ａの構成を示すブロック図である。
表示制御装置１Ａは、図４で示した実施の形態１の表示制御装置１の情報処理部１０３に、駆動領域設定部１０５を追加して構成している。以下では、実施の形態１に係る表示制御装置１の構成要素と同一または相当する部分には、実施の形態１で使用した符号と同一の符号を付して説明を省略または簡略化する。
【００６８】
駆動領域設定部１０５は、ロボット２が駆動できる限界の位置を示す情報（以下、駆動限界情報という）を取得する。駆動領域設定部１０５は、駆動限界情報を表示制御装置１Ａ内の記憶領域（図示しない）から取得してもよいし、表示制御装置１Ａの外部から取得してもよい。駆動領域設定部１０５は、取得した駆動限界情報に基づいて、仮想空間内に、ロボット２が駆動可能な領域（以下、駆動可能領域という）を設定する。情報処理部１０３ａは、駆動領域設定部１０５が設定した駆動可能領域に基づいて、照準座標軸の３次元データを生成する。情報処理部１０３ａは、補正した照準座標軸、制御点Ａ、ロボット２および構造物の３次元データを出力制御部１０４に出力する。
【００６９】
次に、表示制御装置１００Ａのハードウェア構成例を説明する。なお、実施の形態１と同一の構成の説明は省略する。
表示制御装置１００Ａにおける情報処理部１０３ａおよび駆動領域設定部１０５は、図５Ａで示した処理回路１ａ、または図５Ｂで示したメモリ１ｃに格納されるプログラムを実行するプロセッサ１ｂである。
【００７０】
図１３および図１４は、実施の形態２に係る表示制御装置１Ａにおけるロボット２の駆動可能領域および照準座標軸を示す図である。
駆動可能領域Ｆは、第１の曲面Ｇと、第２の曲面Ｈと、ロボット２の設置面Ｂのうちの一部の面Ｂａとで囲まれた領域の内側の領域である。第１の曲面Ｇは、駆動限界情報が示す面であり、ロボット２が駆動できる最外域を示す曲面である。第２の曲面Ｈは、駆動限界情報が示す面であり、ロボット２が駆動できる最内域を示す曲面である。第１の曲面Ｇの外側、すなわちロボット２が存在していない側の領域、および第２の曲面の内側、すなわちロボット２の据付部２ａが位置する側の領域には、ロボット２の制御点Ａが位置することができない。面Ｂａは、設置面Ｂにおいて、第１の曲面Ｇとロボット２の設置面Ｂとが交わる際に形成される第１の円Ｇａの外側、且つ第２の曲面Ｈとロボット２の設置面Ｂとが交わる際に形成される第２の円Ｈａの内側の領域である。
【００７１】
駆動領域設定部１０５は、上述した駆動限界情報と、構造物の３次元データとから、仮想空間内の駆動可能領域Ｆを示す３次元データを生成する。情報処理部１０３ａは、駆動領域設定部１０５が生成した駆動可能領域Ｆの３次元データに基づいて、生成済みの直線Ｘ、直線Ｙ、および直線Ｚからなる照準座標軸（図６参照）の３次元データを、駆動可能領域Ｆ内の線分Ｘａ、線分Ｙａおよび線分Ｚａからなる照準座標軸の３次元データに補正する（図１３Ａ参照）。
図１３Ａで示すように、表示制御装置１Ａが、駆動可能領域Ｆ内の照準座標軸のみを表示することにより、線分Ｘａ、線分Ｙａおよび線分Ｚａの直線の長さによって、ロボット２が駆動可能な範囲を表示することができる。
【００７２】
図１３Ａにおいて、線分Ｚａは現在のロボット２の状態から、ロボット２を線分Ｚａ方向にどの程度駆動させることができるかを示している。また、図１３Ａにおいて、線分Ｘａおよび線分Ｙａは、現在のロボット２の状態から、ロボット２を線分Ｚａ方向に駆動して制御点Ａと照準点Ｃとが最も近づいた場合に、それぞれ線分Ｘａ方向および線分Ｙａ方向にどの程度駆動させることができるかを示している。オペレータは、例えば図１３Ａの表示例を視認することにより、現在の状態から、線分Ｚａ方向に、ロボット２をどの程度駆動させることができるかを容易に認識することができる。また、例えば、現在の状態からロボット２を線分Ｚａ方向に駆動させて、制御点Ａと照準点Ｃとを最も近づけた場合に、オペレータはロボット２を線分Ｘａ方向および線分Ｙａ方向に、どの程度駆動させることができるかを認識することができる。
【００７３】
また、情報処理部１０３ａは、図１３Ｂに示すように、補正後の照準座標軸である線分Ｚａを、制御点Ａを通過して第１の曲面Ｇと交差する点まで延ばした線分Ｚｂとし、生成済みの直線Ｘ、直線Ｙ、および直線Ｚからなる照準座標軸の３次元データを、線分Ｘａ、線分Ｙａおよび線分Ｚｂからなる照準座標軸に補正してもよい。
図１３Ｂで示すように、駆動可能領域Ｆ内の照準座標軸のみを表示し、且つ線分Ｚｂを表示することにより、オペレータはロボット２を線分Ｚｂ方向にどの程度駆動させることができるかを認識することができる。
【００７４】
また、情報処理部１０３ａは、図１４に示すように、照準座標軸の照準点Ｃが、駆動可能領域Ｆ内に位置しない場合には、生成済みの直線Ｘ、直線Ｙ、および直線Ｚからなる照準座標軸の３次元データを、駆動可能領域Ｆ内に存在する線分Ｚｃのみの３次元データとする補正を行う。
図１４に示すように、駆動可能領域Ｆ内に線分Ｚｃのみを表示することにより、オペレータは、現在の線分Ｚｃの方向では駆動可能領域Ｆ内にワーク等の構造物が存在していないこと、およびロボット２を線分Ｚｃ方向にどの程度駆動させることができるかを認識することができる。
また、情報処理部１０３ａは、線分Ｚｃが第１の曲面Ｇと交わる点に接する任意の仮想平面を設定し、当該仮想平面上における線分Ｘおよび線分Ｙの３次元データを生成することで、線分Ｘ、線分Ｙ、および線分Ｚｃからなる照準座標軸の３次元データを生成してもよい。
【００７５】
出力制御部１０４は、情報処理部１０３ａから入力された３次元データに基づいて、構造物、ロボット２、補正後の照準座標軸、および制御点Ａを、出力装置５に表示するための制御を行う。また、出力制御部１０４は、駆動可能領域Ｆを出力装置５に表示するための制御を行ってもよい。
【００７６】
次に、表示制御装置１Ａの動作について説明する。
図１５は、実施の形態２に係る表示制御装置１Ａの情報処理部１０３ａの動作を示すフローチャートである。
以下では、実施の形態１に係る表示制御装置１と同一のステップには、図９で示した符号と同一の符号を付し、説明を省略または簡略化する。
ステップＳＴ１３またはステップＳＴ２０において、制御点Ａの３次元データが生成されると、駆動領域設定部１０５は駆動限界情報から駆動可能領域Ｆの３次元データを生成する（ステップＳＴ４１）。
【００７７】
情報処理部１０３ａは、ステップＳＴ４１で生成された駆動可能領域Ｆの３次元データに基づいて、ステップＳＴ１８またはステップＳＴ１９で生成した照準座標軸を構成する直線Ｘ、直線Ｙおよび直線Ｚの３次元データ、またはステップＳＴ１１で生成された直線Ｚの３次元データを、駆動可能領域Ｆ内の線分の３次元データに補正する（ステップＳＴ４２）。情報処理部１０３ａは、ステップＳＴ４２で補正した後の照準座標軸の３次元データ、およびステップＳＴ２０またはステップＳＴ１３で生成した制御点Ａの３次元データを、出力制御部１０４に出力する（ステップＳＴ４３）。その後、フローチャートは、図８のフローチャートのステップＳＴ４の処理に進む。
【００７８】
以上のように、この実施の形態２によれば、ロボット２の駆動限界に基づいて、ロボット２の駆動可能領域Ｆを設定する駆動領域設定部１０５を備え、直線Ｚを駆動可能領域Ｆ内に位置する部分の線分としたので、照準座標軸を構成する線分Ｚの直線の長さによって、ロボット２が駆動可能な範囲を表示することができる。これにより、オペレータは、線分Ｚの方向に、ロボット２をどの程度駆動させることができるかを容易に認識することができる。
【００７９】
また、この実施の形態２によれば、ロボット２の駆動限界に基づいて、ロボット２の駆動可能領域Ｆを設定する駆動領域設定部１０５を備え、直線Ｚ、直線Ｘ、および直線Ｙを、駆動可能領域Ｆ内に位置する部分の線分としたので、線分の直線の長さによって、ロボットが駆動可能な範囲を表示することができる。これにより、オペレータは各線分の方向に、ロボット２をどの程度駆動させることができるかを容易に認識することができる。
【００８０】
実施の形態３．
この実施の形態３では、ロボット２の教示データを作成する構成を示す。
図１６は、実施の形態３に係る表示制御装置１Ｂの構成を示すブロック図である。
表示制御装置１Ｂは、図４で示した実施の形態１の表示制御装置１に、位置情報記憶部１０６、軌道生成部１０７および再生処理部１０８を追加して構成している。また、図４で示した実施の形態１の表示制御装置１の情報処理部１０３および出力制御部１０４に替えて、情報処理部１０３ｂおよび出力制御部１０４ａを設けて構成している。
以下では、実施の形態１に係る表示制御装置１の構成要素と同一または相当する部分には、実施の形態１で使用した符号と同一の符号を付して説明を省略または簡略化する。
【００８１】
操作情報取得部１０２は、実施の形態１で示した、オペレータの操作情報として制御点Ａに重畳して表示されたポインタを移動させる操作情報に加えて、以下の操作情報を取得する。操作情報取得部１０２は、オペレータの操作情報として、ロボット２の教示データを作成する際に、ロボット２に設定された制御点Ａが通過すべき通過点を指定する操作情報を取得する。また、操作情報取得部１０２は、オペレータの操作情報として、ロボット２の駆動軌道の生成を指示する操作情報、および生成されたロボット２のシミュレーション再生を指示する操作情報を取得する。
【００８２】
情報処理部１０３ｂは、操作情報取得部１０２から、通過点を指定する操作情報が入力されると、当該操作情報が入力された際の制御点Ａの位置情報を、通過点の位置情報として位置情報記憶部１０６に記憶させる。また、情報処理部１０３ｂは、通過点の位置情報に基づいて、通過点の３次元データを生成する。情報処理部１０３ｂは、ロボット２、構造物および照準座標軸の３次元データに加えて、通過点の３次元データを出力制御部１０４ａに出力する。また、情報処理部１０３ｂは、ロボット２の３次元データを再生処理部１０８に出力する。
【００８３】
軌道生成部１０７は、操作情報取得部１０２から、ロボット２の駆動軌道の生成指示が入力されると、位置情報記憶部１０６に記憶された通過点の位置情報を取得する。軌道生成部１０７は、取得した通過点の位置情報を用いて、当該通過点を通る軌道を示す位置座標の群である駆動軌道を生成する。駆動軌道の生成方法の詳細は後述する。軌道生成部１０７は、生成した駆動軌道を出力制御部１０４ａおよび再生処理部１０８に出力する。
【００８４】
再生処理部１０８は、操作情報取得部１０２から、ロボット２のシミュレーション再生を指示する操作情報が入力されると、軌道生成部１０７から入力された駆動軌道と、情報処理部１０３ｂから入力されたロボット２の３次元データとに基づいて、ロボット２が駆動軌道に沿って駆動する動作を算出する。再生処理部１０８は、算出した動作から、ロボット２の動きを示すシミュレーション情報を生成する。再生処理部１０８は、生成したシミュレーション情報を出力制御部１０４ａに出力する。また、再生処理部１０８は、生成したシミュレーション情報と、情報処理部１０３ｂから入力された構造物の３次元データとを照合し、仮想空間においてロボット２と構造物とが干渉するか否か判定を行う。再生処理部１０８は、仮想空間において、ロボット２と構造物とが干渉すると判定した場合、干渉が発生する箇所の位置情報も合わせて出力制御部１０４ａに出力する。
【００８５】
出力制御部１０４ａは、情報処理部１０３ｂから入力された３次元データに基づいて、仮想空間内のロボット２、構造物、照準座標軸および通過点を表示する制御情報を生成する。また、出力制御部１０４ａは、軌道生成部１０７が生成した駆動軌道を、出力装置５に表示する制御情報を生成する。また、出力制御部１０４ａは、再生処理部１０８から入力されたシミュレーション情報を出力装置５において再生表示する制御情報を生成する。また、出力制御部１０４ａは、干渉が発生する箇所を点または線などで強調表示する制御情報を生成する。また、出力制御部１０４ａは、干渉が発生することを音声によってオペレータに通知する制御情報を生成してもよい。
【００８６】
出力制御部１０４ａが制御情報を出力する教示装置４は、図１で示したように出力装置５および入力装置６で構成される。教示装置４は、出力制御部１０４ａから入力された制御情報に基づいて、ロボット２および構造物を表示し、表示したロボット２に対して操作入力を行うことが可能な装置である。教示装置４は、汎用パソコン、タッチパネルで操作するタブレット端末、ヘッドマウントディスプレイなどを適用可能である。
出力装置５のディスプレイ５１には、ロボット２および構造物が表示され、さらに操作入力を受け付ける教示ボタン等のグラフィックインタフェースが表示される。教示ボタンは、教示装置４に設けられたボタン、またはパソコンのキーボード等、ハードウェアのボタンであってもよい。教示ボタンは複数存在し、教示処理の開始または終了を入力するボタン、通過点の決定または削除を入力するボタン、生成された駆動軌道を確認するためのシミュレーションの再生または停止を入力するボタン、操作手順を進めるまたは戻すためのボタン等で構成される。
【００８７】
次に、表示制御装置１００Ｂのハードウェア構成例を説明する。なお、実施の形態１と同一の構成の説明は省略する。
表示制御装置１００Ｂにおける情報処理部１０３ｂ、軌道生成部１０７、再生処理部１０８および出力制御部１０４ａは、図５Ａで示した処理回路１ａ、または図５Ｂで示したメモリ１ｃに格納されるプログラムを実行するプロセッサ１ｂである。
【００８８】
次に、軌道生成部１０７の詳細について説明する。
軌道生成部１０７は、ロボット２の駆動開始点と、通過点と、目的地点であるロボット２の駆動終了点とを結ぶ、ロボット２の駆動軌道を生成する。駆動開始点および駆動終了点は、予め設定された地点であってもよいし、オペレータが任意に設定した地点であってもよい。軌道生成部１０７は、位置情報記憶部１０６に、少なくとも１点の通過点が記憶されれば、ロボット２の駆動軌道を生成することが可能である。ロボット２の駆動開始点は、制御プログラムの開始点としてもよい。
【００８９】
軌道生成部１０７は、例えば直動軌道、接線軌道または手動軌道によって駆動軌道を生成する。
図１７は、実施の形態３に係る表示制御装置１Ｂの軌道生成部１０７が生成する駆動軌道の種別を示す図である。図１７Ａは直動軌道の一例、図１７Ｂは接線軌道の一例、および図１７Ｃは手動軌道の一例を示している。
直動軌道は、２つの通過点間を直線で結んで得られる駆動軌道である。具体的には、図１７Ａに示すように、第１の通過点Ｐ１と第２の通過点Ｐ２とを直線で結び、第２の通過点Ｐ２と第３の通過点Ｐ３とを直線で結んで得られる軌道Ｑａである。
接線軌道は、開始点と１つ目の通過点を直線で結び、２つ目以降の通過点については接線の連続性を維持して滑らかに結んで得られる駆動軌道である。具体的には、図１７Ｂに示すように、第１の通過点Ｐ１と第２の通過点Ｐ２とを直線で結び、第２の通過点Ｐ２および第３の通過点Ｐ３において接点の連続性を維持して滑らかに結んで得られた軌道Ｑｂである。
【００９０】
手動軌道は、オペレータが、ジョグレバー、操作キーまたはマウスなどを操作して生成した軌道を、そのまま駆動軌道としたものである。具体的には、図１７Ｃに示すように、第１の通過点Ｐ１と第２の通過点Ｐ２とをオペレータが出力装置５のディスプレイ５１上で描画した線分で結び、第２の通過点Ｐ２と第３の通過点Ｐ３とをオペレータが描画した線分で結んで得られる軌道Ｑｃである。
軌道生成部１０７は、生成した駆動軌道、および当該駆動軌道上の通過点の位置情報を、出力制御部１０４ａおよび再生処理部１０８に出力する。
【００９１】
通過点は、図１７Ａから図１７Ｃで示した円形、または矩形等の形状で強調表示される。これにより、オペレータは、通過点を容易に認識することができる。出力制御部１０４ａは、表示する通過点の近傍に、通過点の識別を示す文字、例えば「通過点１」、「Ｐｏｉｎｔ１」または「Ｐ１」等を表示する制御情報を生成してもよい。オペレータが通過点を決定すると、出力制御部１０４ａは、通過点の確定を印象付ける効果音を出力する制御を行ってもよい。オペレータが複数の通過点を決定した場合、各通過点は、決定された順に識別を示す文字が付され、例えば「通過点１」、「通過点２」および「通過点３」等の連番で表示される。
【００９２】
軌道生成部１０７は、ディスプレイ５１に表示された駆動軌道上の通過点を移動させる操作情報が入力されると、当該通過点の位置情報を操作情報に従って移動させる修正を行う。また、軌道生成部１０７は、駆動軌道を、修正した通過点を結ぶ軌道に修正する。軌道生成部１０７は、出力制御部１０４ａを介してディスプレイ５１に表示された駆動軌道上の通過点を選択して削除する操作情報が入力されると、当該通過点の位置情報を削除する。また、軌道生成部１０７は、駆動軌道を削除した通過点を通過しない軌道に修正し、各通過点に付した識別を示す文字を修正する。軌道生成部１０７は、修正した駆動軌道、および修正した駆動軌道上の通過点の位置情報を、出力制御部１０４ａおよび再生処理部１０８に出力する。なお、軌道生成部１０７は、ディスプレイ５１に表示された駆動軌道を選択して移動させる操作情報の入力を受け付け、駆動軌道を移動させる修正を行ってもよい。
【００９３】
教示装置４は、駆動軌道の修正が完了したことを示す、例えば完了ボタンの押下操作を受け付ける。また、教示装置４は、通過点を移動または削除する操作情報の入力が完了すると、駆動軌道の修正が完了したと判断し、完了ボタンの押下操作を不要としてもよい。教示装置４は、駆動軌道の修正が完了したことを、表示制御装置１に通知する。表示制御装置１は、駆動軌道の修正が完了したことが通知されると、生成した駆動軌道に沿ってロボット２を駆動させる制御プログラムをロボット制御装置７に出力する。
【００９４】
次に、再生処理部１０８の詳細について説明する。
再生処理部１０８は、軌道生成部１０７から入力された駆動軌道を示す情報と、情報処理部１０３ｂから取得したロボット２の３次元データとから、ロボット２が駆動軌道に沿って駆動する動作を算出し、シミュレーション情報を生成する。再生処理部１０８は、生成したシミュレーション情報を出力制御部１０４ａに出力する。出力制御部１０４ａは、再生処理部１０８から入力されたシミュレーション情報と、情報処理部１０３ｂから入力された３次元データとに基づいて、仮想空間においてロボット２が駆動軌道に沿って駆動する動画を表示する制御情報を生成し、出力装置５に出力する。
【００９５】
また、再生処理部１０８は、シミュレーション情報を生成する処理と並行して、シミュレーション情報と、情報処理部１０３ｂから入力された構造物の３次元データとの照合を行う。再生処理部１０８は、照合結果を参照し、仮想空間においてロボット２と構造物とが干渉するか否か判定を行う。ここでロボット２と構造物との干渉には、図３で示したロボット２のフランジ部２ｇに取り付けられたツール８と構造物との干渉も含まれるものとする。詳細には、再生処理部１０８は、ロボット２が駆動軌道に沿って駆動した際に、ロボット２のアーム、ロボット２の軸部材、ロボット２のフランジ部２ｇ、およびツール８等のいずれかが、構造物と干渉するか否か判定を行う。再生処理部１０８は、干渉すると判定した場合に、干渉が発生する箇所の位置情報を取得し、出力制御部１０４ａに出力する。出力制御部１０４ａは、再生処理部１０８から干渉が発生する箇所の位置情報が入力されると、当該干渉が発生する箇所を明示するための制御情報を生成する。
【００９６】
出力制御部１０４ａは、シミュレーション情報を再生している際に干渉が発生する箇所を明示する制御情報を生成してもよいし、シミュレーション情報を再生することなく、ロボット２の駆動軌道を表示する際に干渉が発生する箇所を明示する制御情報を生成してもよい。例えば、軌道生成部１０７が、直動軌道または接線軌道を生成する場合、再生処理部１０８はシミュレーション情報を生成することなく、仮想空間においてロボット２と構造物とが干渉するか否かの判定を行う。再生処理部１０８は、干渉すると判定した場合に、干渉が発生する箇所の位置情報を出力制御部１０４ａに出力する。これにより、出力制御部１０４ａは、瞬時に駆動軌道上において干渉が発生する箇所を明示する制御を行うことができる。
【００９７】
出力制御部１０４ａは、ロボット２の制御点Ａが駆動軌道の開始点に位置する姿勢で表示し、次に駆動軌道に沿ってロボット２が駆動する動画を表示する制御を生成する。出力制御部１０４ａは、ロボット２の駆動が終了すると、ロボット２の制御点Ａが駆動軌道の終点に位置する姿勢で静止させて表示する制御情報を生成する。また、ロボット２が駆動軌道に沿って駆動する表示を行っている際に、操作情報取得部１０２が、例えば停止ボタンを押下する操作情報を取得すると、出力制御部１０４ａは、情報処理部１０３ｂおよび再生処理部１０８を介して、停止ボタンが押下された際の姿勢で停止したロボット２を表示する制御情報を生成する。また、ある姿勢でロボット２が停止している表示を行っている際に、操作情報取得部１０２が、例えば再生ボタンを押下する操作情報を取得すると、出力制御部１０４ａは、情報処理部１０３ｂおよび再生処理部１０８を介して、停止した姿勢から再度ロボット２の駆動を再開させる表示制御を行う。
【００９８】
出力制御部１０４ａは、再生処理部１０８から干渉が発生する箇所の位置情報が入力されると、ロボット２との干渉箇所を、駆動軌道上で点または線等で強調表示する表示制御を行う。また、出力制御部１０４ａは、駆動軌道の線の太さを変化させる、または線の色を変化させる等により、干渉箇所を強調表示する表示制御を行う。さらに、出力制御部１０４ａは、仮想空間においてロボット２と構造物とが干渉する際に、スピーカ５２から効果音を出力する制御を行ってもよい。
【００９９】
次に、表示制御装置１Ｂの軌道生成部１０７、再生処理部１０８および出力制御部１０４ａの動作について、図１８および図１９のフローチャートを参照しながら説明する。
図１８は、実施の形態３に係る表示制御装置１Ｂの軌道生成部１０７の動作を示すフローチャートである。なお、以下では、位置情報記憶部１０６に新たな通過点の位置情報が記憶されると、軌道生成部１０７が駆動軌道を生成するものとして説明する。
位置情報記憶部１０６に新たな通過点の位置情報が記憶されると（ステップＳＴ５１）、軌道生成部１０７は位置情報記憶部１０６に記憶された通過点の位置情報を取得する（ステップＳＴ５２）。軌道生成部１０７は、ステップＳＴ５２で取得した通過点の位置情報を用いて、ロボット２の駆動軌道を生成する（ステップＳＴ５３）。軌道生成部１０７は、生成した駆動軌道を示す情報を出力制御部１０４ａに出力する。
【０１００】
一方、出力制御部１０４ａは、入力された駆動軌道を示す情報に基づいて、駆動軌道および駆動軌道上の通過点を、仮想空間内に表示する制御情報を生成する（ステップＳＴ５４）。出力制御部１０４ａは、生成した制御情報を出力装置５に出力する。その後、軌道生成部１０７は、駆動軌道を修正する指示、または通過点を修正指示が入力されたか否か判定を行う（ステップＳＴ５５）。ここで、修正指示には、通過点の修正と、通過点の削除とが含まれるものとする。修正指示が入力された場合（ステップＳＴ５５；ＹＥＳ）、軌道生成部１０７は、修正指示に基づいて、前回生成した駆動軌道を修正する（ステップＳＴ５６）。軌道生成部１０７は、修正した駆動軌道を示す情報を、出力制御部１０４ａに出力し、ステップＳＴ５４の処理に戻る。
【０１０１】
一方、修正指示が入力されない場合（ステップＳＴ５５；ＮＯ）、軌道生成部１０７は、生成または修正した駆動軌道を示す情報を再生処理部１０８に出力する。再生処理部１０８は、軌道生成部１０７から入力された駆動軌道を示す情報をバッファ等の一時格納領域に格納し（ステップＳＴ５７）、処理を終了する。
【０１０２】
図１９は、実施の形態３に係る表示制御装置１Ｂの再生処理部１０８によるシミュレーション情報の生成を示すフローチャートである。なお、以下では、シミュレーション情報の生成指示が入力された場合に、再生処理部１０８がシミュレーション情報を生成するものとして説明する。
【０１０３】
操作情報取得部１０２からシミュレーション再生指示が入力されると（ステップＳＴ６１）、再生処理部１０８は、図１８のフローチャートのステップＳＴ５７でバッファ等に格納した駆動軌道を示す情報と、情報処理部１０３ｂから入力されたロボット２および構造物の３次元データとから、ロボット２が駆動軌道に沿って駆動するシミュレーション情報を生成する（ステップＳＴ６２）。
【０１０４】
また、再生処理部１０８は、仮想空間において、ロボット２が駆動軌道に沿って駆動した場合に、ロボット２と構造物とが干渉するか否か判定を行う（ステップＳＴ６３）。干渉しないと判定した場合（ステップＳＴ６３；ＮＯ）、再生処理部１０８は、ステップＳＴ６２で生成したシミュレーション情報を出力制御部１０４ａに出力する。出力制御部１０４ａは、再生処理部１０８から入力されたシミュレーション情報を再生する制御情報を生成する（ステップＳＴ６４）。
【０１０５】
一方、干渉すると判定した場合（ステップＳＴ６３；ＹＥＳ）、再生処理部１０８は干渉が発生する箇所の位置情報を取得する（ステップＳＴ６５）。再生処理部１０８は、ステップＳＴ６２で生成したシミュレーション情報およびステップＳＴ６３で取得した干渉が発生する箇所の位置情報を、出力制御部１０４ａに出力する。出力制御部１０４ａは、シミュレーション情報を再生すると共に、干渉が発生する箇所を駆動軌道上に表示する制御情報を生成する（ステップＳＴ６６）。出力制御部１０４ａは、ステップＳＴ６４またはステップＳＴ６６で生成した制御情報を出力装置５に出力し、処理を終了する。
【０１０６】
図２０は、実施の形態３に係る発明の表示制御装置１Ｂによる干渉箇所の表示例を示す図である。
駆動軌道Ｑｄは、ロボット２の制御点Ａが、第１の通過点Ｐ１、第２の通過点Ｐ２および第３の通過点Ｐ３を通過する軌道である。領域Ｒａは、ロボット２と構造物Ｄｃとが干渉する箇所を示す領域である。領域Ｒｂは、ロボット２が領域Ｒａで構造物Ｄｃと干渉する際に、制御点Ａが駆動軌道Ｑｄ上のどこを駆動しているかを示す領域である。領域Ｒａは、円形状で干渉箇所を明示している。一方、領域Ｒｂは、駆動軌道Ｑｄの一部を線分の太さを太く描画して干渉が発生する駆動軌道の箇所を明示している。
【０１０７】
出力装置５において、図２０で示す表示が行われた場合に、オペレータは当該表示を確認しながら、駆動軌道Ｑｄを修正する指示を、入力装置６を介して入力するように構成してもよい。その場合、軌道生成部１０７は、入力された修正指示に基づいて、前回生成した駆動軌道を修正する。再生処理部１０８は、修正した駆動軌道に沿ってロボット２が駆動した場合に、ロボット２と構造物とに干渉が発生するか判定を行う。出力制御部１０４ａは、判定結果に応じた制御情報を生成し、出力装置５に出力する。これにより、オペレータは、干渉箇所を視認しながら、駆動軌道の修正を行うことができる。
【０１０８】
また、上述したシミュレーション再生において、オペレータは、ロボット２の駆動速度、各通過点における静止時間、駆動の繰り返し回数およびツール８の制御条件などを設定可能である。再生処理部１０８は、設定された条件に基づいて、シミュレーション情報を生成する。
上述したシミュレーション再生が終了する、または教示データの生成が終了すると、再生処理部１０８は現在設定されているロボット２の駆動軌道に沿ってロボット２を駆動させる制御プログラムをロボット制御装置７に出力する。
なお、シミュレーション再生の終了、または教示データ生成の終了は、例えばオペレータによる終了ボタンの押下によって判断してもよいし、ロボット２と構造物との干渉する駆動軌道が生成された場合に教示データの生成が終了したと判断してもよい。
【０１０９】
以上のように、この実施の形態３によれば、ロボット２の通過点を指定する操作情報に基づいて、指定された通過点を経由するロボット２の駆動軌道を生成する軌道生成部１０７を備え、出力制御部１０４ａは、軌道生成部１０７が生成した駆動軌道および駆動軌道上の通過点を表示するための制御情報を生成するように構成したので、設定した通過点を経由する駆動軌道を確認するための情報を提示することができる。
【０１１０】
また、この実施の形態３によれば、軌道生成部１０７が生成した駆動軌道に沿って、ロボット２が駆動する動作を算出し、ロボット２の動きを示すシミュレーション情報を生成する再生処理部１０８を備え、出力制御部１０４ａは、再生処理部１０８が生成したシミュレーション情報を再生するための制御情報を生成するように構成したので、駆動軌道に沿ってロボットが駆動する際の動きを確認するための情報を提示することができる。
【０１１１】
また、この実施の形態３によれば、再生処理部１０８は、軌道生成部１０７が生成した駆動軌道に沿って、ロボット２が駆動した場合に、ロボット２と構造物とが干渉するか否か判定を行い、出力制御部１０４ａは、再生処理部１０８がロボット２と構造物とが干渉すると判定した場合に、干渉が発生する箇所を表示するための制御情報を生成するように構成したので、駆動軌道に沿ってロボットが駆動した際に干渉が発生することを示す情報を提示することができる。
【０１１２】
なお、上述した説明では、実施の形態１で示した表示制御装置１に、位置情報記憶部１０６、軌道生成部１０７、再生処理部１０８および干渉判定部１０９を追加して構成する例を示したが、実施の形態２で示した表示制御装置１Ａに、位置情報記憶部１０６、軌道生成部１０７、再生処理部１０８および干渉判定部１０９を追加して構成してもよい。
【０１１３】
上述した実施の形態１から実施の形態３の表示制御装置１，１Ａ，１Ｂから出力された制御情報を、出力装置５を介して拡張現実空間で表示する場合が想定される。この場合、現実環境のロボット２に対して、制御点Ａ、照準座標軸、通過点、駆動軌道および干渉領域等の情報を重畳表示する。また、現実環境にロボット２が存在しない場合には、現実環境の情報に対して、表示制御装置１，１Ａ，１Ｂが生成したロボット２の情報も合わせて重畳表示する。
このように拡張現実空間で表示を行う場合、出力装置５として、３次元スキャニング用デバイスと加速度センサとを備えたタブレット端末またはヘッドマウントディスプレイ等を使用する。拡張現実空間の出力装置５は、ステレオカメラまたは深度センサ等を用いて、現実環境のロボット２および構造物の形状をスキャニングして３次元データを生成する。拡張現実空間の出力装置５は、生成した３次元データと、予め入力された教示データを入力するためのロボット２および構造物の３次元データとに、共通する特徴点を検出し、２つの３次元データの位置を一致させる。
【０１１４】
拡張現実空間の出力装置５として、タブレット端末、または密閉式ヘッドマウントディスプレイを適用する場合、３次元スキャニング用デバイスの近傍に備えた画像入力用のカメラで撮像した現実環境のロボット２および周辺環境の画像に、予め入力された教示データを入力するためのロボット２および構造物の３次元データを重畳表示する。
一方、拡張現実空間の出力装置５として、透過式ヘッドマウントディスプレイを適用する場合、表示用のレンズを通して見える実物のロボット２および周辺環境に、予め入力された教示データを入力するためのロボット２および構造物を重畳表示する。
【０１１５】
拡張現実空間の出力装置５は、３次元スキャニングを定期的に行い、加速度センサによるオペレータの動きの検出結果と合わせて演算を行い、上述したロボット２および構造物の重畳表示をリアルタイムに更新する。なお、実物のロボット２および構造物の形状をスキャニングした情報は表示しない。
３次元データが重畳表示されたデータは、仮想現実空間で教示データの生成およびシミュレーション情報の作成と同様に、通過点、駆動軌道および操作ボタン等の重畳表示を行うことができる。
【０１１６】
また、拡張現実空間の出力装置５は、予め入力された教示データを入力するためのロボット２および構造物を表示しない設定としてもよい。これにより、ロボット２と構造物との干渉を確認する場合に、実物の構造物と、３次元データのロボット２とが実際に干渉しているかのように、オペレータに実感させることができる。
【０１１７】
図２１は、実施の形態１から実施の形態３で示した表示制御装置１００，１００Ａ，１００Ｂの制御情報を、拡張現実空間の出力装置５に出力した場合の表示例を示す図である。
図２１では、現実環境のロボット２Ａおよび現実環境の周辺環境に、ロボット２の３次元データ２Ｂ、制御点Ａ、照準座標軸、第１の通過点Ｐ１および駆動軌道Ｑｅを重畳表示した場合の表示例を示している。
上述した説明では、出力制御部１０４が生成する制御情報は、ロボット２および照準座標軸を、仮想空間内の特定の位置から見た場合の画像を、出力装置５に表示させるための情報である場合を示した。しかし、図２１で示したように、制御情報は、少なくとも照準座標軸を、仮想空間内の特定の位置から見た場合の画像を、出力装置５に表示させるための情報であってもよい。
【０１１８】
上述した実施の形態１から実施の形態３で示した表示制御装置１，１Ａ，１Ｂは、機器を遠隔操作する制御プログラムを生成するための装置として適用することも可能である。
【０１１９】
上記以外にも、本発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、各実施の形態の任意の構成要素の変形、または各実施の形態の任意の構成要素の省略が可能である。
【産業上の利用可能性】
【０１２０】
この発明に係る表示制御装置は、作業等を行わせるロボットの制御プログラムを生成するための機器、または機器を遠隔操作する制御プログラムを生成するための機器等に適用可能である。
【符号の説明】
【０１２１】
１，１Ａ，１Ｂ  表示制御装置、１０１  ３次元データ取得部、１０２  操作情報取得部、１０３，１０３ａ，１０３ｂ  情報処理部、１０４，１０４ａ  出力制御部、１０５  駆動領域設定部、１０６  位置情報記憶部、１０７  軌道生成部、１０８  再生処理部。
【要約】
ロボット（２）の３次元データおよび構造物の３次元データに基づいて、構造物の３次元データが規定する仮想空間内において、ロボット（２）に設定された制御点（Ａを）通る直線Ｚを含む照準座標軸の３次元データを生成する情報処理部（１０３）と、ロボット（２）の３次元データ、構造物の３次元データおよび情報処理部（１０３）が生成した照準座標軸の３次元データに基づいて、照準座標軸を出力装置（５）に表示するための制御情報を生成する出力制御部（１０４）とを備える。【図１】
0006385627.tif 000002
【図２】
0006385627.tif 000003
【図３】
0006385627.tif 000004
【図４】
0006385627.tif 000005
【図５】
0006385627.tif 000006
【図６Ａ】
0006385627.tif 000007
【図６Ｂ】
0006385627.tif 000008
【図６Ｃ】
0006385627.tif 000009
【図７Ａ】
0006385627.tif 000010
【図７Ｂ】
0006385627.tif 000011
【図７Ｃ】
0006385627.tif 000012
【図８】
0006385627.tif 000013
【図９】
0006385627.tif 000014
【図１０】
0006385627.tif 000015
【図１１】
0006385627.tif 000016
【図１２】
0006385627.tif 000017
【図１３】
0006385627.tif 000018
【図１４】
0006385627.tif 000019
【図１５】
0006385627.tif 000020
【図１６】
0006385627.tif 000021
【図１７】
0006385627.tif 000022
【図１８】
0006385627.tif 000023
【図１９】
0006385627.tif 000024
【図２０】
0006385627.tif 000025
【図２１】
0006385627.tif 000026