(57)【要約】【課題】ロボット装置の位置姿勢データの入力、編集、修正を行うユーザーインターフェースを改善する。【解決手段】表示装置Ｃは、位置姿勢データによって特定されるロボット１０１の状態を仮想表示する仮想環境画面１０と、位置姿勢データを数値表示するパラメータ設定画面２０と、を含む。操作入力部Ｄで位置姿勢データの一部を変更する操作入力が行われた場合、操作入力の内容に応じて当該の一部の位置姿勢データを変更する。また、この変更された一部の位置姿勢データに基づき、ロボット１０１の各部位の位置または姿勢をそれぞれ特定する位置姿勢演算を行い、その位置姿勢演算の結果に基づき新たな位置姿勢データを計算する。さらに変更された一部の位置姿勢データ、および新たな位置姿勢データに基づき、表示装置Ｃの仮想環境画面１０の仮想表示、または、パラメータ設定画面２０の数値表示の内容を更新する。【選択図】図１
2020089970.tif 000002
【特許請求の範囲】
【請求項１】
ロボット装置の各部位の位置または姿勢をそれぞれ特定する複数の位置姿勢データによって特定される前記ロボット装置の状態を仮想表示する仮想環境表示部と、前記位置姿勢データを数値表示するパラメータ表示部と、を含む表示装置と、前記位置姿勢データの内容を編集する操作入力部と、前記操作入力部の操作入力に応じて前記表示装置の表示を制御する情報処理を行う制御装置と、を用いた情報処理方法において、
前記制御装置が、前記操作入力部で前記位置姿勢データの一部を変更する操作入力が行われた場合、前記操作入力の内容に応じて当該の一部の位置姿勢データを変更する第１の演算工程と、
前記制御装置が、前記第１の演算工程において変更された前記一部の位置姿勢データに基づき、前記ロボット装置の各部位の位置または姿勢をそれぞれ特定する位置姿勢演算を行い、その位置姿勢演算の結果に基づき新たな位置姿勢データを計算する第２の演算工程と、
前記制御装置が、前記第１の演算工程において変更された前記一部の位置姿勢データ、および前記第２の演算工程において計算された前記新たな位置姿勢データに基づき、前記表示装置の前記仮想環境表示部の仮想表示、または、前記パラメータ表示部の数値表示の内容を更新する表示更新工程と、
を含むことを特徴とする情報処理方法。
【請求項２】
請求項１に記載の情報処理方法において、前記位置姿勢データが、前記ロボット装置の特定部位の位置に対応する座標値を含むことを特徴とする情報処理方法。
【請求項３】
請求項２に記載の情報処理方法において、前記操作入力部は、前記パラメータ表示部で前記位置姿勢データに対応する座標値を表示する場合に用いる座標系として前記ロボット装置に関して用いられる異なる座標系の１つを指定する座標系指定手段を含むことを特徴とする情報処理方法。
【請求項４】
請求項３に記載の情報処理方法において、前記制御装置は、前記第２の演算工程で前記新たな位置姿勢データを計算する場合、前記座標系指定手段により指定された座標系における座標値への座標変換を行い、前記表示更新工程において前記新たな位置姿勢データを数値表示する際、前記座標変換を経て計算された座標値を表示するよう前記パラメータ表示部の数値表示の内容を更新することを特徴とする情報処理方法。
【請求項５】
請求項２から４のいずれか１項に記載の情報処理方法において、前記操作入力部は、前記位置姿勢データに対応する座標値を入力する場合、相対座標値により表現された座標値の入力を受け付けることを特徴とする情報処理方法。
【請求項６】
請求項１から５のいずれか１項に記載の情報処理方法において、複数の位置姿勢データを格納する記憶手段を備え、前記ロボット装置の異なる部位が前記ロボット装置の構造によって特定される特定の依存関係にある場合、前記異なる部位に対応する複数の位置姿勢データが、前記記憶手段に階層構造データとして記憶されることを特徴とする情報処理方法。
【請求項７】
請求項６に記載の情報処理方法において、前記制御装置は、前記第１の演算工程において、前記記憶手段に記憶された階層構造データの上位の位置姿勢データが変更された場合、前記第２の演算工程において、前記上位の位置姿勢データの下位にある位置姿勢データを計算することを特徴とする情報処理方法。
【請求項８】
請求項６または７に記載の情報処理方法において、前記表示装置は、前記記憶手段に階層構造データとして記憶された前記位置姿勢データが構成する階層構造を表示する管理表示部を有することを特徴とする情報処理方法。
【請求項９】
請求項１から８のいずれか１項に記載の情報処理方法において、前記第１の演算工程において変更された前記一部の位置姿勢データ、および前記第２の演算工程において計算された前記新たな位置姿勢データを他の装置に出力することを特徴とする情報処理方法。
【請求項１０】
請求項１から９のいずれか１項に記載の情報処理方法において、前記位置姿勢データが、前記ロボット装置の関節の位置または姿勢を特定する関節データを含むことを特徴とする情報処理方法。
【請求項１１】
請求項１から１０のいずれか１項に記載の情報処理方法において、前記仮想環境表示部は、前記位置姿勢データにより特定される前記ロボット装置の状態を、前記ロボット装置の作動環境に擬した仮想空間中に前記位置姿勢データにより特定される位置姿勢にある前記ロボット装置の３Ｄ画像をレンダリングして成る３Ｄモデル表現により仮想表示することを特徴とする情報処理方法。
【請求項１２】
請求項１から１１のいずれか１項に記載の情報処理方法において、前記操作入力部は前記仮想環境表示部に表示されている前記ロボット装置の位置姿勢を変更する操作手段を含み、前記操作手段によって行われた前記ロボット装置の位置姿勢の変更に応じて前記表示装置の前記仮想環境表示部の仮想表示、または、前記パラメータ表示部の数値表示の内容を更新することを特徴とする情報処理方法。
【請求項１３】
請求項１から１２のいずれか１項に記載の情報処理方法において、前記制御装置は、前記第２の演算工程における前記計算の結果、得られた位置姿勢データが前記ロボット装置の機構の制約の範囲内にあるか否かを判定し、当該の位置姿勢データが前記ロボット装置の機構の制約の範囲内を超える場合、編集エラーを報知するエラー情報を生成することを特徴とする情報処理方法。
【請求項１４】
前記制御装置に、請求項１から１３のいずれか１項に記載の情報処理を実行させるための情報処理プログラム。
【請求項１５】
請求項１４に記載の情報処理プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１６】
ロボット装置の各部位の位置または姿勢をそれぞれ特定する複数の位置姿勢データによって特定される前記ロボット装置の状態を仮想表示する仮想環境表示部と、前記位置姿勢データを数値表示するパラメータ表示部と、を含む表示装置と、前記位置姿勢データの内容を編集する操作入力部と、前記操作入力部の操作入力に応じて前記表示装置の表示を制御する情報処理を行う制御装置と、を備えた情報処理装置において、
制御装置は、
前記操作入力部で前記位置姿勢データの一部を変更する操作入力が行われた場合、前記操作入力の内容に応じて当該の一部の位置姿勢データを変更し、
変更された前記一部の位置姿勢データの一部に基づき、前記ロボット装置の各部位の位置または姿勢をそれぞれ特定する位置姿勢演算を行い、その位置姿勢演算の結果に基づき新たな位置姿勢データを計算し、
変更された前記一部の位置姿勢データ、および前記位置姿勢演算の結果に基づき計算した新たな位置姿勢データに基づき、前記表示装置の前記仮想環境表示部の仮想表示、または、前記パラメータ表示部の数値表示の内容を更新する、
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置の各部位の位置または姿勢をそれぞれ特定する複数の位置姿勢データの編集、および位置姿勢データにより特定されるロボットの状態の表示を行う情報処理方法、および情報処理装置に関するものである。
【背景技術】
【０００２】
近年、例えば産業用のロボット装置による人の動作を模した組立を行う自動生産システムの開発が進んでおり、人の動作と同様に、周囲環境に配置されている障害物の間を縫うように動作させるようプログラミング（教示）することが必要になってきた。ロボット装置のプログラミング（教示）には、配置環境において実際にロボットに動作を行わせながら、その動作を実行させる位置姿勢データを蓄積、記録する、いわゆるティーチングペンダントなどと呼ばれる装置が用いられることがある。
【０００３】
また、ロボット装置のプログラミング（教示）には、ＰＣ（パーソナルコンピュータ）とほぼ同様のハードウェア構成を有する情報処理装置が用いられることがある。このようなロボット装置のプログラム（教示）用の情報処理装置は、表示装置、コンピュータ、キーボード、ポインティングデバイスなどのハードウェアから構成される。この種の装置は、ロボット制御用のプログラム言語の形式や、位置姿勢データの数値などの形式でロボット動作をプログラム（教示）できるよう構成される。ロボット装置のプログラム（教示）用の情報処理装置は、実際にロボット装置と接続されていないようなオフライン環境において使用することもできる。
【０００４】
一方、上記のように周囲環境との干渉を考慮しながら、例えば人の動作を模した組立作業をロボット装置に行わせるには、教示作業は極めて複雑になり教示する工数が増大したり、教示ミスが多発する傾向がある。特に、上記のようなロボット装置のプログラム（教示）用の情報処理装置を用いて、実際のロボットの動作確認を行えないようなオフライン環境で行う教示作業は困難を伴ない、上記の工数増大や教示ミスなどの問題を生じがちである。
【０００５】
ここで、複雑なロボット動作の例として、箱の中に複数の仕切りがあり、その異なる仕切りの中にそれぞれ１点ずつ収容されているワーク（部品）を逐一ロボット装置により取得（し、あるいはさらに他の場所に移動）するパレタイジング工程の動作を考える。このようなパレタイジングの動作では、実際には、異なる位置に収容された１個のワークにつき取得位置と取得前の上空位置の計２点の教示点が必要である。この教示点は、ロボットアーム先端の所定の基準部位の位置姿勢データのような形式で記述される。そして、複数のワークを処理するのであれば、その個々のワークに関して、少なくとも上記２点の教示点を教示する必要がある。もし、手動の教示操作によりこれら全ての教示点を教示するのであれば、ワークの数が多ければ多いほど、教示工数が増大し、その作業は極めて煩雑なものになる。
【０００６】
そこで、教示を簡略化する手段として、１つの基準教示点から次の教示点までの相対的な移動量を設計値等から求め、その相対値をオフセットとして設定する教示手法がある。この手法によると、上記のパレタイジング動作の場合、１つの基準となるワークに対応する基準教示点を教示した後、他のワークに対してはオフセットを設定するだけでワークに対応する教示点を教示できるようになる。
【０００７】
下記の特許文献１および特許文献２は、上記の基準教示点のオフセットとして相対値を設定する手段を用い、それぞれ異なる座標系方向の相対値をオフセットとして設定する技術を開示している。特許文献１は、基準となる教示点からロボットのベース座標系方向に対するオフセットを、動作プログラムの中のオフセット変数で設定し、軌道計算を行うことでオフセット先の位置姿勢に移動させる方法を記している。このオフセットの利点は、ロボットの上下、前後、左右方向の移動が行い易いという点である。しかし、斜め方向や並進と回転を多用したオフセットを行う場合には、方向や角度に応じた行列計算を行う必要があり、計算や設定ミスなどが発生し易い問題がある。
【０００８】
一方、特許文献２では、基準となる教示点から、ロボットのツール先端に定義したツール座標系方向に対するオフセットを動作プログラムの中のオフセット変数で設定し、軌道計算を行うことでオフセット先の位置姿勢に移動させる方法を開示している。このツール座標系は、例えば作業者が任意に設定できるＴＣＰ（ツールセンターポイント）を原点とした座標系である。この手法によると、例えば基準部位の斜め方向の移動では、斜め方向とツール座標系の一方向が同一直線上になる様にＴＣＰを設定し、一方向に移動量となる相対値を設定することにより所期の斜め方向の移動を実現できる。
【０００９】
特許文献２のように、ベース座標系以外の作業者が把握し易い座標系、例えば上記のツール座標系を用いることにより、例えば数値入力などにより教示点を設定する作業が楽になり、設定ミスを低減できると考えられる。例えば、上記のツール座標系を用いれば、現在のロボットの姿勢に対する手先方向、のように作業者がイメージしやすい座標系における相対値情報によって教示点を入力、あるいは編集することができる。これにより、例えば設計値から相対値情報を算出するようなデータ操作が容易になり、教示工数や作業ミスを削減できる。パレタイジング工程であれば、ワークを取得位置の１つを基準となる教示点として設定し、残りのワークの取得位置と取得前位置を、例えばベース座標系のオフセットとして相対的に等間隔で設定することで教示を行える。
【００１０】
ここで、設置現場でティーチングペンダントなどを用いて実際のロボットを動作させながら教示を行う場合と、上述のような情報処理装置を用いてオフラインで教示を行う場合では、それぞれに一長一短がある。例えば、上記のパレタイジング工程の場合、設定したオフセット後の位置姿勢を実機のロボットで確認すると、確認中に箱の仕切りに干渉してしまう可能性があった。一方、オフラインで用いられる情報処理装置には、上記のオフセットなどを用いた教示点の入力方式を豊富に用意することができる。また、実際のロボットを動作させなくてもプログラミングで可能であるため、配置環境との干渉などを生じることなく動作確認を行える利点がある。
【００１１】
そこで、近年では、オフラインで利用する情報処理装置において、オフラインで教示、および動作確認を行える構成が提案されている。例えば、作成した教示データを用いて、実機を動作させるのではなく、教示データに基づく軌道計算や３Ｄモデルのレンダリングを行って、仮想表示によるロボットを表示画面中で動作させて動作確認を行う。下記の特許文献３は、仮想環境で教示点の作成を行い、作成した教示点を利用して動作プログラムを作成し、ロボットの動作軌道を仮想環境で再生することで、ロボットの動作と干渉の状態を確認できる表示装置、および教示点作成方法を開示している。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平８−３２８６３７号公報
【特許文献２】特開２０１０−１８８４８５号公報
【特許文献３】特開２０１４−１１７７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１および特許文献２により作成された動作軌道を、特許文献３の仮想環境で再生すれば、実機のロボットを用いずに複雑な位置姿勢の状態を確認できる、と考えられる。
【００１４】
しかし、このような仮想環境を利用したロボットの教示（プログラミング）の手法には、いくつかの技術課題がある。
【００１５】
例えば、上記のオフセット演算や複数の異なるロボット座標系を利用した情報処理では、軌道計算によりオフセット後の位置姿勢を求める。この場合、オフセット後の位置姿勢がロボットアームのハードウェア的な制限による可動範囲内であれば、実際にロボットを動かしても問題はない。しかしながら、動作プログラムの作成ミスによって、途中の軌道でロボットの可動範囲外となる場合もある。また、軌道計算エラーが発生すると、発生したエラーを解決しないと、それ以上の確認表示を行うことができない。また、パレタイジング工程において、基準となる教示点を修正すると関連するオフセット後の位置姿勢も変化し、オフセット後の位置姿勢が可動範囲外になる場合がある。
【００１６】
しかし、従来技術では、オフセット入力によって位置姿勢データを変更したり新たに生成したりする場合のエラー処理が充分に行えない問題があった。例えば、従来のロボット制御データ（教示データ）に係る情報処理では、例えば位置姿勢データは、次々とロボットの基準部位を移動させる時系列に沿って配置された単なるフラットなデータリストとして記憶装置に格納されることが多い。ところが、実際のロボット制御データ（教示データ）では、ある特定の教示点の位置姿勢データの変更が、他の１ないし複数の教示点の位置姿勢データに影響を与える関係となっていることがある。例えば、パレタイジングの基準教示点と、オフセットを介して関係づけられた他の教示点の関係はその一例である。
【００１７】
従来技術では、位置姿勢データが単なるフラットなデータリストとして格納されることが多く、このため特定の教示点の位置姿勢データの変更が他の位置姿勢データのどこからどこまでが影響を受けるのかを特定するのは容易ではない。従って、従来のロボット制御データ（教示データ）に係る情報処理では、特定の教示点の位置姿勢データの変更が行われたとしても、軌道計算や動作が可動範囲内にあるか否かのチェック処理を行う範囲を特定するのが容易ではなかった。このため、特定の教示点の位置姿勢データの入力、編集や、修正が行われたとしても、従来では、その変更に関する動作確認表示を直ちに、あるいは充分に実施できていなかった。
【００１８】
また、軌道計算のエラーチェックに関しても、上記のような教示点（位置姿勢データ）の格納形式によると、例えばユーザが軌道計算すべき格納されている教示点の範囲を指定しないと演算を行えない可能性がある。従来では、この指定範囲に対する軌道計算を行ってようやく軌道計算エラー（例えば特定部位の位置姿勢が可動範囲外となる）が生じるか否かを判定できる。このため、ある特定の教示点の入力、編集、修正が行われたとしても、即座に軌道計算エラーのチェックなどを実施することができず、ユーザは当該の入力、編集、修正のタイミングで軌道計算エラーなどの確認を行うことができなかった。
【００１９】
本発明の課題は、上記の問題に鑑み、ロボット装置の位置姿勢データの入力、編集、修正などが行われた場合、即座に影響のある位置姿勢データの範囲を特定でき、その範囲にある位置姿勢データの軌道計算などを含むエラーチェックを行えるようにする。そして、教示点に係る位置姿勢データの入力、編集、修正の過程で、例えば仮想表示出力や数値表示によって、実行中の入力、編集、修正の経過をほぼその操作に応じてリアルタイムで確認できるようにする。また、位置姿勢データの入力、編集、修正では、オフセットとなる相対値による位置姿勢データの指定や、複数のロボット座標系から把握の容易なロボット座標系を任意に用いることができるようにする。また、ロボット装置の位置姿勢データを格納するためのデータ構造を改善する。
【課題を解決するための手段】
【００２０】
上記課題を解決するため、本発明においては、情報処理方法、ないしは情報処理装置において、ロボット装置の各部位の位置または姿勢をそれぞれ特定する複数の位置姿勢データによって特定される前記ロボット装置の状態を仮想表示する仮想環境表示部と、前記位置姿勢データを数値表示するパラメータ表示部と、を含む表示装置と、前記位置姿勢データの内容を編集する操作入力部と、前記操作入力部の操作入力に応じて前記表示装置の表示を制御する情報処理を行う制御装置と、を用い、前記制御装置は、前記操作入力部で前記位置姿勢データの一部を変更する操作入力が行われた場合、前記操作入力の内容に応じて当該の一部の位置姿勢データを変更し、この変更された前記一部の位置姿勢データに基づき、前記ロボット装置の各部位の位置または姿勢をそれぞれ特定する位置姿勢演算を行い、その位置姿勢演算の結果に基づき新たな位置姿勢データを計算し、変更された前記一部の位置姿勢データ、および前記新たな位置姿勢データに基づき、前記表示装置の前記仮想環境表示部の仮想表示、または、前記パラメータ表示部の数値表示の内容を更新する構成を採用した。
【００２１】
あるいはさらに、記憶手段に前記位置姿勢データを記憶させる場合のデータ構造としては、前記ロボット装置の異なる部位が前記ロボット装置の構造によって特定される特定の依存関係にある場合、前記異なる部位に対応する複数の位置姿勢データを階層構造データとして記憶させる構成を採用した。
【発明の効果】
【００２２】
上記構成によれば、ロボット装置の位置姿勢データの入力、編集、修正などが行われた場合、即座に影響のある位置姿勢データの範囲を特定でき、その範囲にある位置姿勢データの軌道計算などを含むエラーチェックを行えるようになる。また、教示点に係る位置姿勢データの入力、編集、修正の過程で、仮想表示出力や数値表示によって、実行中の入力、編集、修正の経過をほぼその操作に応じてリアルタイムで確認することができ、作業工数の削減が可能となる。また、ロボット装置の複数の位置姿勢データを階層構造データとして記憶させることにより、入力、編集、修正の操作に応じて、関連した位置姿勢データを適切に自動編集することができ、その結果を仮想表示出力や数値表示に適切に反映させることができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施例１に係わる表示装置を示した説明図である。
【図２】本発明の実施例１に係わるオフライン教示システムのブロック図である。
【図３】本発明の実施例１に係わるオフセット教示点の作成を示したフローチャート図である。
【図４】本発明の実施例１に係わる仮想環境画面の説明図である。
【図５】本発明の実施例１に係わるパラメータ設定画面の説明図である。
【図６】本発明の実施例１に係わる異なるパラメータ設定画面の説明図である。
【図７】本発明の実施例１に係わる管理画面を示した説明図である。
【図８】本発明の実施例１に係わるエラー画面の説明図である。
【図９】本発明の実施例１に係わるオフセット教示点の編集処理を示したフローチャート図である。
【図１０】本発明の実施例１に係わる異なるパラメータ設定画面を示したフローチャート図である。
【図１１】本発明の実施例２に係わるノード管理画面を示した説明図である。
【図１２】本発明の実施例２に係わるオフセット教示点の編集処理を示したフローチャート図である。
【図１３】本発明の実施例２に係わるワークの配置変更処理を示したフローチャート図である。
【図１４】本発明の実施例２に係わる仮想環境画面の説明図である。
【図１５】本発明の実施例２に係わる仮想環境画面の説明図である。
【図１６】本発明の実施例２に係わるパラメータ設定画面の説明図である。
【図１７】本発明の実施例３に係わるオフセット教示点の編集処理を示したフローチャート図である。
【図１８】本発明の実施例３に係わる仮想環境画面の説明図である。
【図１９】本発明の実施例３に係わるパラメータ設定画面の説明図である。
【図２０】本発明の実施例３に係わるパラメータ設定画面の説明図である。
【図２１】本発明の実施例４に係わるオフセット教示点の編集処理を示したフローチャート図である。
【図２２】本発明の実施例４に係わる仮想環境画面の説明図である。
【図２３】本発明の実施例５に係わるオフセット教示点の編集処理を示したフローチャート図である。
【図２４】本発明の実施例５に係わる仮想環境画面を示した説明図である。
【図２５】本発明の実施例５に係わるパラメータ設定画面の説明図である。
【発明を実施するための形態】
【００２４】
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値の例示に過ぎない。
【実施例１】
【００２５】
以下、図１から図１０を参照して、本発明を採用したロボット装置の教示（プログラミング）用の情報処理装置および情報処理方法の一実施例につき説明する。
【００２６】
図１および図２は、本実施例に係る情報処理装置Ａの構成を示している。図１に示すように、本実施例の情報処理装置Ａは、例えばパソコン（パーソナルコンピュータ）Ｂに、ユーザーインターフェースとして表示装置Ｃと、操作入力部Ｄを装着して構成することができる。操作入力部Ｄには、マウスやトラックパッドその他のポインティングデバイス、およびキーボードなどの操作デバイスを用いることができる。
【００２７】
表示装置Ｃは、ＬＣＤ（あるいは他の表示方式によるディスプレイ装置）などの表示装置により構成される。表示装置Ｃは、その表示面にいわゆるタッチパネルを積層して構成することもできる。その場合には、操作入力部Ｄのポインティングデバイス、やキーボードなどの操作デバイスと同等の入力操作をタッチパネルにより行うことができ、場合によっては操作入力部Ｄを省略した構成とすることもできる。
【００２８】
本実施例の情報処理装置Ａは、実際にロボット装置と接続してこれを動作させるようなオンライン環境よりも、主にオフライン環境でロボット装置の教示データの入力、編集、変更などに用いることができるよう構成される。本実施例の情報処理装置Ａはロボット装置の教示データの入力、編集、変更の操作は、操作入力部Ｄによって行えるよう構成され、表示装置Ｃには、例えば図１に示すようなオフライン教示システムの表示画面Ｅを表示させることができる。
【００２９】
図１の表示画面Ｅは、少なくとも仮想環境画面１０、およびパラメータ設定画面２０、および管理画面４０を含む構成となっている。
【００３０】
仮想環境画面１０、パラメータ設定画面２０、管理画面４０はグラフィックユーザインターフェース（ＧＵＩ）として構成することができる。その場合、操作入力部Ｄのマウスなどのポインティングデバイス（ないし上記のタッチパネル）により、表示画面Ｅを構成する表示オブジェクト（メニュー、数値や文字の入力フィールド、ロボットアームの仮想表示など）を操作できるよう構成される。このようなＧＵＩ環境の実装手法の細部は概ね公知であるため、ここでは詳細な説明は省略する。
【００３１】
仮想環境画面１０（仮想環境表示部）には、本装置でプログラム（教示）する実機のロボット装置と同等の配置環境を再現した仮想環境を表示する。例えば、仮想環境画面１０は、位置姿勢データにより特定されるロボット１０１装置の状態を３ＤＣＡＤモデルのような３Ｄモデル表現により仮想表示する。その場合、後述のＣＰＵ（３３）の表示装置Ｃを制御する表示制御機能によって、例えば、ロボット１０１の作動環境に擬した仮想空間中に位置姿勢データにより特定される位置姿勢にあるロボット１０１の３Ｄ画像をレンダリングして仮想表示を行う。このように位置姿勢データからロボット１０１を３ＤＣＡＤモデル表現などにより仮想表示するための（画像）表示制御については公知であるから、ここでは詳細な説明は省略する。
【００３２】
図１の場合、仮想環境画面１０には本装置でプログラム（教示）する実機のロボット装置に相当するロボット１０１と、ロボット１０１の先端に取り付けたツール１０２、ワーク１０３が配置され表示されている。本実施例では、ユーザ（作業者）がロボットプログラムや教示データ（位置姿勢データ）に対する入力、編集などを行った場合、その変更に応じて仮想環境画面１０の仮想環境の表示を更新する。これにより、ユーザ（作業者）は、仮想環境画面１０の仮想環境の表示を介して容易に入力や編集の内容を確認することができる。
【００３３】
多くのロボット装置では、位置姿勢データの表現に座標データが用いられる。この座標データの表現には、いくつかの異なる座標系における座標データが用いられる。例えば、本装置で取り扱うロボット１０１では、ベース座標系１０４（絶対座標系１００）、およびツール座標系１０５が用いられる。本実施例では、ロボット１０１のベース座標系１０４は、仮想環境の絶対座標系１００と一致した位置に配置されている。また、ツール１０２の先端にはツール座標系１０５が存在している。これらの座標系は、３次元座標系であり、仮想環境画面１０中では、必要に応じて図示のように３軸（Ｘ、Ｙ、Ｚ）の座標軸を表示することができる。
【００３４】
図１に例示した仮想環境画面１０では、ワーク１０３の上空に基準となる教示点１０６が表示されている。この教示点１０６は、例えば既に入力済みの教示点である。ここで、例えばツール１０２を教示点１０６から下降させてワーク１０３に対してアプローチさせる動作を考える。
【００３５】
この場合、例えば基準となる教示点１０６よりオフセットとなる相対値を用いて設定したオフセット教示点１０７をワーク１０３の上面に教示する手法が用いられる。この場合、教示点１０６に対して用いられるオフセットの相対値は、例えばＺ軸方向の移動量（距離）などの数値によって表現される。なお、図１の仮想環境画面１０では、ロボット１０１の位置姿勢は、その所定部位（例えばツール１０２の把持中心やツール装着面の中心など）が基準となる教示点１０６と一致した時の位置姿勢が表示されている。
【００３６】
さらに、表示装置Ｃの表示画面Ｅ中には、パラメータ設定画面２０を表示させている。本実施例においては、パラメータ設定画面２０は、位置姿勢データの数値表示を行うパラメータ表示部の機能と、ＧＵＩ操作によってその値を設定するパラメータ設定部の機能を兼ねている。このパラメータ設定画面２０には、現在のロボット１０１の位置姿勢を表したパラメータが数値表現の形式でそれぞれの表示位置に表示されている。パラメータ設定画面２０の各パラメータに相当する数値の表示位置は、例えば数値（文字）入力のためのいわゆる入力ボックスとして構成される。これらのパラメータの入力ボックスの数値（あるいは文字）は、操作入力部Ｄを操作することにより、新たに入力したり、既に入力されている値を変更したりすることができるよう構成される。なお、このような入力ボックスを用いたユーザーインターフェースを実現するためのハードウェアやソフトウェアの細部については公知であり、ここでは詳細な説明は省略する。
【００３７】
ロボット装置（ロボット１０１）を制御する教示データ（教示点や位置姿勢データ数値データの実体）や、３Ｄモデル表現などにより仮想環境画面１０中にモデリングないしレンダリングするためのモデル情報は、階層データの形式で格納、管理する。
【００３８】
記憶装置３５のＲＡＭ３５ｂや外部記憶装置３５ｃは、複数の位置姿勢データを格納する記憶手段として用いられる。例えば、ロボット１０１の異なる部位がロボット装置の構造によって特定される特定の依存関係にある場合、異なる部位に対応する複数の位置姿勢データは記憶装置３５に階層構造データとして記憶する。
【００３９】
この階層構造データの構造や内容については、例えば以下の管理画面４０（管理表示部）の説明を通して理解されよう。
【００４０】
即ち、本実施例では、表示装置Ｃの表示画面Ｅ中には、教示データ（教示点や位置姿勢データ）やモデル情報のデータ構造を表示するための管理画面４０（管理表示部）を表示させる。管理画面４０には、仮想環境画面１０で表示されているモデル情報と教示点情報が一括でノード管理され、その状態がいわゆる樹形図の形式で表示されている。
【００４１】
本実施例における教示データやモデル情報に関するノード管理では、一番上の根のモデル情報を絶対座標系１００（ＲＯＯＴ）とし、絶対座標系（１００）から枝と階層構造で複数のモデル情報の関連を示すデータ構造を用いる。本実施例の位置姿勢データのデータ構造においては、根に近いモデルを親のモデル、葉に近いモデルを子のモデルと呼ぶ。
【００４２】
関連付けとして管理する情報は、親と子のモデル情報の関係性、親から子までのモデルの位置姿勢となる相対値情報を保有しているものとする。だたし、本実施例の教示データやモデル情報に関するノード管理で管理する情報は相対値情報に限定されない。例えば、根から子までのモデルの位置姿勢に相当する絶対値情報を格納するようにしても良い。
【００４３】
本実施例における教示データやモデル情報を管理するための（階層）ノード形式のデータ格納形式には、各ノードのデータを例えばアドレスポインタなどを介して関係づけた上でメモリ中に格納する、例えばリンクトリストの形式などを利用できる。あるいは、教示データやモデル情報をＨＤＤやＳＳＤのような外部記憶装置上のファイルシステムに格納する場合には、各種リレーショナルデータベースシステムにおけるデータ格納形式を利用してもよい。
【００４４】
なお、本明細書を通して、管理画面４０の表示は、記憶装置３５上に格納された教示データ（位置姿勢データ）のノードから成る階層的なツリー構造を視覚的に表示したものとして取り扱う。また、同時に管理画面４０の図示は、記憶装置３５上に格納された上記ツリー構造の教示データ（位置姿勢データ）のメモリマップ表示と考えてもよい。
【００４５】
上記のようなノード管理によれば、親のモデルの位置姿勢となる相対値情報を変更した場合、子のモデルは、親から子までのモデルの位置姿勢に相当する相対値情報を保有しているため、親のモデルに従って追従することができる。
【００４６】
図１の管理画面４０に表示しているデータ構造では、絶対座標系１００（ＲＯＯＴ）の子のモデル情報の下位にロボット１０１（ＲＯＢＯＴ）とワーク１０３（Ｗｏｒｋ）が位置している。さらに、ロボット１０１の子のモデル情報に、ツール１０２（Ｔｏｏｌ）と、ツール座標系１０５（ＴＣＰ）が位置している。さらに、ロボット１０１の子のモデルには教示点が関連づけられる。例えばロボット１０１の子のモデルの１つとして、基準となる教示点１０６（Ｐ００１）が関連づけられている。さらに、基準となる教示点１０６の子のモデルには、オフセット教示点１０７（Ｐ１００）が関連づけられている。
【００４７】
次に、図１の情報処理装置Ａのパソコン（パーソナルコンピュータ）Ｂにより構成された制御系の構成を図２に示す。図２に示すように、図１の情報処理装置Ａを構成するパソコンＢは、ハードウェア的には、ＣＰＵ３３と、ＲＯＭ３５ａ、ＲＡＭ３５ｂ、外部記憶装置３５ｃなどから成る記憶装置３５を含む。さらに、パソコンＢは、操作入力部Ｄと接続するためのインターフェース３２ａ、表示装置Ｃと接続するためのインターフェース３２ｂ、外部装置と例えばファイルＦの形式でデータを送受信するためのインターフェース３６を含む。これらのインターフェースは、例えば各種シリアルバスやパラレルバス、ネットワークインターフェースなどから構成される。
【００４８】
図２では、ＣＰＵ３３とともに計算部３４が示してあるが、この計算部３４は、実際にはＣＰＵ３３が後述の制御演算を行うための制御プログラムを実行することにより実現される。表示装置Ｃには、上述の仮想環境画面１０やパラメータ設定画面２０、管理画面４０などから構成されるＧＵＩ形式の表示画面Ｅを表示する。操作入力部Ｄは、表示装置Ｃの表示画面ＥとともにＧＵＩ（グラフィカルユーザーインターフェース）を構成し、操作入力部ＤのポインティングデバイスやキーボードによるユーザのＧＵＩ操作を受けつける。
【００４９】
ＣＰＵ３３は情報処理装置Ａ全体のシステム制御を行う。ＣＰＵ３３は、操作入力部Ｄで行われた入力、編集操作に基づき、計算部３４の制御演算を行う。この計算部３４の制御演算によって、表示装置Ｃの表示を更新するための表示制御情報が生成されるとともに、記憶装置３５に格納された教示データおよびモデル情報の更新を行う。
【００５０】
記憶装置３５は、仮想環境画面１０に表示されている３ＤＣＡＤモデル情報や配置環境情報、教示データなどを格納する。特に、教示データやモデル情報は、上記の（階層）ノード形式で格納される。記憶装置３５に格納された各種データは、ＣＰＵ３３からの要求に応じて出力され、また、ＣＰＵ３３からの要求に応じて更新される。
【００５１】
また、外部装置からの要求、あるいは操作入力部Ｄにおける特定の操作に応じて、ＣＰＵ３３は記憶装置３５に保存された各種データをファイルＦの形式でインターフェース３６から送信させることができる。また、インターフェース３６を介して外部からファイルＦを必要に応じて読み込むこともできる。例えば、情報処理装置Ａの起動時やレストア（復元）処理では、外部装置（例えば外部のＨＤＤ、ＳＤＤ、ＮＡＳなどの外部記憶装置）から過去に出力したファイルＦを読込み、記憶装置３５を更新し、以前の記憶の状態を再現することができる。
【００５２】
なお、本実施例において、ロボット１０１の教示データやモデル情報を格納する記憶装置３５の記憶領域は任意であり、例えばＲＡＭ３５ｂ上の所定領域や、外部記憶装置３５ｃの（例えば所定ファイルに対応する）記憶領域を用いることができる。
【００５３】
以上が、情報処理装置Ａの全体構成の一例である。なお、以上では、例えばオフライン教示に適したシステムの例として、パソコンＢのようなハードウェア構成を例示した。しかしながら、情報処理装置Ａはオフライン教示システムに限定されることなく、ロボット装置とともに現場に設置されるティーチングペンダントなどのハードウェア構成であっても構わない。その場合、ティーチングペンダントの表示装置が上述と同等の仮想環境画面を表示できるよう構成されていれば、本実施例と同等の構成を実施することができる。
【００５４】
次に、本実施例における作成および編集処理の一例として、上記構成におけるオフセット教示点１０７の作成および編集処理を説明する。オフセット教示点１０７の作成・編集処理については、操作入力部Ｄおよび表示装置ＣのＧＵＩで行われた操作に応じて異なる処理と表示を行う。
【００５５】
例えば、この種の情報処理装置Ａでは、図１のオフセット教示点１０７に関しては、位置姿勢データを異なる座標系における座標値を用いた入力ないし編集に対応できる必要がある。また、一旦、位置姿勢データを入力された後、ユーザがパラメータ表示に用いる座標系を切り替えた場合や、ユーザが元の基準となる教示点１０６の位置姿勢データを編集した場合にも対応できる必要がある。
【００５６】
そこで、以下では、オフセット教示点１０７の作成・編集処理については、次の４つのケースについて説明する。これらは、「ツール座標系１０５を選択した場合」、「ベース座標系１０４を選択した場合」、「座標系を切り替えた場合」、「基準となる教示点１０６を編集した場合」の作成・編集処理である。
【００５７】
（ツール座標系を用いたオフセット教示点の作成）
まず、１つ目のケース、ツール座標系１０５を選択してオフセット教示点１０７の作成手順と処理につき、図３から図５、図７から図８を参照して説明する。この例では、基準となる教示点１０６よりＺ軸方向に「３０ｍｍ」オフセットしたオフセット教示点１０７を作成する。
【００５８】
図３は、オフセット教示点１０７を新規作成した場合のＣＰＵ３３が実行する制御手順の流れを示している。図示の手順はＣＰＵ３３が実行可能なプログラムの形式で、例えば記憶装置３５のＲＯＭ３５ａや外部記憶装置３５ｃに格納しておくことができる。この点については、後述の他のフローチャート図に示した制御手順でも同様である。
【００５９】
なお、ＲＯＭ３５ａは、後述のような情報処理プログラムを記憶するための、コンピュータ（ＣＰＵ３３）により読み取り可能な記録媒体に相当する。ＣＰＵ３３は、例えばＲＯＭ３５ａに格納された情報処理プログラムを実行することにより、後述のようなトルク制御を含むロボット制御を実行する。なお、ＲＯＭ３５ａの一部は、Ｅ（Ｅ）ＰＲＯＭのような書き換え可能な不揮発領域により構成できる。その場合、当該の不揮発領域を不図示のフラッシュメモリや光ディスクのようなコンピュータ読み取り可能なメモリデバイス（記録媒体）で構成することもでき、例えばそのメモリデバイスの交換により情報処理プログラムのインストールや更新が可能である。また、ネットワークなどを介して取得した情報処理プログラムを新たに上記書き換え可能な不揮発領域にインストールすることもできる。また、上記書き換え可能な不揮発領域に格納されている情報処理プログラムは、上記コンピュータ読み取り可能な記録媒体や、ネットワークなどを介して取得したデータによって更新することもできる。
【００６０】
図４（ａ）〜（ｄ）はオフセット教示点１０７の作成・編集処理に係わるロボット１０１の仮想環境画面１０における表示状態を示している。図１では前方からの斜視図のような表示であるが、図４（ａ）〜（ｄ）の仮想環境画面１０の表示では理解を容易にするため、側方からの表示を採用している。
【００６１】
図４（ａ）は、ロボット１０１の初期姿勢であり、図３のオフセット教示点１０７の作成を行う処理の開始時の位置姿勢を示している。なお、基準となる教示点１０６は、例えばロボット１０１のベース座標系１０４からの相対値により表現された教示点であり、ここでは既に作成されている状態とする。
【００６２】
また、図５（ａ）〜（ｄ）（後述の図６（ａ）〜（ｄ）も同様）は、オフセット教示点１０７の作成・編集処理中のＧＵＩ、特にパラメータ設定画面２０における入力、表示の状態を示している。
【００６３】
図３の処理手順において、ステップＳ０では、操作入力部Ｄで所定の操作を行い、新規にオフセット教示点１０７を作成する処理を指定する。このオフセット教示点（１０７）の作成では、図５（ａ）〜（ｄ）に示すようなパラメータ設定画面２０が用いられる。
【００６４】
図５（ａ）〜（ｄ）のパラメータ設定画面２０では、絶対値設定部２０１と、相対値設定部２０２と、教示点設定部２０３と、座標系選択部２０４を表示している。図５（ａ）の初期状態では、新規にオフセット教示点を作成する操作をまだ行っておらず、まだパラメータは何も入力されていない。
【００６５】
絶対値設定部２０１は、例えば絶対座標系（例えばベース座標系１０４）における絶対座標値の入力に用いられる。また、相対値設定部２０２は、例えば相対座標系（例えばツール座標系１０５）における相対座標値の入力に用いられる。座標系選択部２０４は、パラメータ設定画面２０で位置姿勢データに対応する座標値を表示する場合に用いる座標系としてロボット１０１に関して用いられる異なる座標系の１つを指定するための座標系指定手段を構成する。
【００６６】
オフセット教示点の新規作成では、基準となる教示点（１０６）を設定する必要がある。基準となる教示点１０６を設定する（教示点設定手段、図３のステップＳ１）場合、図５（ａ）のようにして、基準となる教示点１０６の設定操作を行う。
【００６７】
例えば、ユーザは図５（ａ）の教示点設定部２０３を操作入力部Ｄのマウスのカーソル２０５でクリックする。これに応じて、ＣＰＵ３３は、表示装置Ｃを制御して、パラメータ設定画面２０の教示点設定部２０３を例えばプルダウンメニューのように用いて選択可能な教示点リスト２０６を表示させる。ユーザ（作業者）は、この教示点リスト２０６より、基準となる教示点１０６をマウスクリックなどにより選択することができる。
【００６８】
このようにして基準となる教示点１０６の選択が完了すると、ＣＰＵ３３は記憶装置３５に記録された選択した教示点「Ｐ００１」のパラメータを読み出し、読み出したパラメータに基づき表示装置Ｃの表示画面Ｅを更新する。具体的には、教示点リスト２０６の「基準」の表示を、図５（ｂ）のように教示点「Ｐ００１」に対応する表示に切り替える。
【００６９】
また、この時、同時に表示装置Ｃの仮想環境画面１０の表示も例えば図４（ｂ）のように更新することができる。図４（ｂ）は、更新後の表示装置Ｃの仮想環境画面１０に表示されているロボット１０１の位置姿勢を側方から示している。図４（ｂ）の仮想環境画面１０では、ロボット１０１のアームの基準部位が（基準）教示点１０６と一致する位置姿勢を表示している。
【００７０】
本実施例では、新規のオフセット教示点１０７を入力するために任意の座標系を選択することができる（座標系選択手段、ステップＳ２）。
【００７１】
例えば、ユーザは図５（ｂ）に示すように、座標系選択部２０４をマウスのカーソル２０５でクリックする。これに応じて、ＣＰＵ３３は、表示装置Ｃを制御して、パラメータ設定画面２０の座標系選択部２０４を例えばプルダウンメニューのように用いて選択可能な座標系リスト２０７を表示させる。ユーザ（作業者）は、この座標系選択部２０４に表示される座標系リスト２０７にある座標系を選択することができる。ここで、ユーザは座標系リスト２０７から、例えばツール座標系１０５を選択する。
【００７２】
図５（ａ）〜（ｄ）に示すように、パラメータ設定画面２０（の左側）には絶対値設定部２０１、相対値設定部２０２を表示する。ユーザは、これら絶対値設定部２０１、相対値設定部２０２を用い、上記のようにして指定した教示点に関して、指定した座標系における位置姿勢データを数値入力することができる。位置姿勢データとしては、絶対値設定部２０１、相対値設定部２０２は、例えば、Ｘ、Ｙ、Ｚ、α、β、γで示すように３次元座標値と軸廻りの回転角により指定することができる。このうち、座標値の単位は例えばｍｍ、また、軸廻りの回転角には、例えばオイラー角ＺＹＸ（αβγ）表現を用いる。
【００７３】
この段階で、ユーザは新規のオフセット教示点１０７のオフセットとなる相対値を設定することができる（パラメータ設定手段、ステップＳ３）。
【００７４】
絶対値設定部２０１、相対値設定部２０２の上部は、作成する教示点名を入力・表示する教示点名設定部２１２となっている。ここで、ユーザは、教示点名設定部２１２に所望の教示点名（例えば図５の例では「Ｐ１００」）を入力する。また、この段階で、教示点名設定部２１２にはＣＰＵ３３が自動的に生成した教示点名を入力済みの状態で表示するようにしてもよい。
【００７５】
また、新規のオフセット教示点１０７の入力において、相対値設定部２０２の全てのフィールドの初期状態は０（図５（ｂ））で、この時、絶対値設定部２０１には、例えば基準となる教示点１０６の位置姿勢データと同じ値（コピー）を表示することができる。
【００７６】
また、この段階では、前述のようにして図４（ｂ）のようにアームの基準部位が（基準）教示点１０６と一致した状態となっており、教示点１０６（Ｐ００１）に対するオフセットの指定には、例えばツール座標系１０５を用いることができる。そこで、ここでは、（上記のように指定済みの）ツール座標系１０５を用いて、Ｚ軸方向に前述の「３０ｍｍ」のオフセットするオフセット教示点１０７を指定し、作成する。
【００７７】
ユーザは、例えば、図５（ｃ）のように操作入力部Ｄのマウスを用いて相対値設定部２０２のＺ座標値のフィールドに対応する設定欄２０８を選択し、操作入力部Ｄのキーボードから「３０」の値を入力し、同キーボードの［Ｅｎｔｅｒ］キーを押下する。
【００７８】
ＣＰＵ３３は、相対値設定部２０２への数値入力に応じて、記憶装置３５の例えばＲＡＭなどに配置された相対値設定部２０２に対応するメモリ領域の内容を更新する。即ち、操作入力部Ｄで位置姿勢データの一部を変更する操作入力が行われると、操作入力の内容に応じて当該の一部の位置姿勢データを変更する（第１の演算工程）。
【００７９】
操作入力部Ｄのキーボードで［Ｅｎｔｅｒ］キーを押下すると、ＣＰＵ３３のソフトウェアにより構成された計算部３４の位置姿勢演算が開始される（姿勢計算手段）。
【００８０】
ここでは、まず、オフセット教示点１０７に関して選択されている座標系がツール座標系１０５か判断する（図３ステップＳ４）。ここで選択されている座標系がツール座標系１０５の場合、ステップＳ５に進み、ツール座標系１０５の姿勢計算処理を実行する（関節値計算処理、ステップＳ５）。
【００８１】
なお、ここで関節値とは、ロボット１０１のある関節の曲げ（回転）角度などにより表現され、その関節の位置（または姿勢）を特定する関節データである。このような関節データは、本実施例においては、後述の制約エラーのチェックなどのために演算の途中で利用されるが、明示的に位置姿勢データの一部として関節データを直接、入力、編集する例については、後述の実施例５で説明する。
【００８２】
ここで、ツール座標系１０５を選択している場合の計算は、以下の式（１）のように行う（座標変換）。ここでは、基準となる教示点１０６の相対値の姿勢行列Ｔ１と、オフセットとなる相対値の姿勢行列Ｔ２の積より、ロボット１０１のベース座標系１０４からオフセット教示点１０７までの相対値の姿勢行列Ｔ３を計算する。
【００８３】
【数１】
2020089970.tif 000003
【００８４】
ここで姿勢行列Ｔは、次式（２）の如く４行４列の行列とし、１行・１列から３行・３列までのパラメータを回転行列Ｒ、１行から３行までの４列目を位置行列Ｐ、４行・１列から４行・３列までを０行列、４行・４列を１としたものである。
【００８５】
【数２】
2020089970.tif 000004
【００８６】
そして、式（１）の計算結果より逆運動学計算を行い、ロボット１０１の各軸の関節値を計算する。即ち、ステップＳ５（あるいは後述のＳ６）において、ＣＰＵ３３は、上記第１の演算工程において変更された一部の（オフセット教示点１０７の）位置姿勢データに基づき、ロボット装置の各部位の位置または姿勢をそれぞれ特定する位置姿勢演算を行う。この位置姿勢演算の結果に基づき新たな位置姿勢データ（例えば関節値）を求める（第２の演算工程）。
【００８７】
さらに、ＣＰＵ３３は、逆運動学計算結果より表示装置Ｃの表示画面Ｅの表示を更新する（図３ステップＳ７〜Ｓ９）。即ち、ＣＰＵ３３は、第１の演算工程において変更された一部の位置姿勢データ、および第２の演算工程において計算された新たな位置姿勢データに基づき、表示装置Ｃの表示画面Ｅの表示を更新する（表示更新工程）。
【００８８】
表示装置Ｃの表示画面Ｅの表示更新では、例えば、表示装置Ｃの管理画面４０、仮想環境画面１０の仮想表示、ないしパラメータ設定画面２０の数値表示の内容を更新する。なお、この表示装置Ｃの表示画面Ｅの更新に先立ち、第２の演算工程で算出した位置姿勢データに相当する各関節値が実機のロボット１０１のハードウェア仕様などにより定まる制約内か否かのエラーチェックを行う（下記のステップＳ７）。
【００８９】
ステップＳ７では、オフセット教示点１０７の各関節値が実機のロボット１０１のハードウェアの仕様（あるいはさらに運用上の規約）などにより定まる制約内か判断する（制約判断処理）。例えば、実機のロボット装置では、ある関節が取り得る回転角の範囲が特定の範囲に制約されている場合があり、このような制約の範囲内にロボット１０１の各関節値が収まっているか否かを判定する。このようなロボット１０１の可動範囲などの制約の条件は、適当な格納形式で予めＲＯＭ３５ａ、ＲＡＭ３５ｂや外部記憶装置３５ｃなどに格納されているものとする。
【００９０】
ステップＳ７の判定の結果が制約内であれば、ＣＰＵ３３は表示装置Ｃの表示画面Ｅを更新する（正常系表示処理、Ｓ９）。ここでは、仮想環境画面１０のロボット１０１の表示と、パラメータ設定画面２０の内容を更新する。ここで、ロボット１０１のベース座標系１０４は、前述のように絶対座標系１００と一致している。そのため、更新内容は、ベース座標系１０４からのオフセット教示点１０７までの相対値を絶対値設定部２０１に、逆運動学計算によるロボット１０１の各軸の関節値の計算結果を仮想環境画面１０に反映させて更新する。
【００９１】
さらに、この表示装置Ｃの表示画面Ｅの更新では、変更箇所、非変更箇所を含め、ＧＵＩ全体（仮想環境画面１０、パラメータ設定画面２０あるいはさらに管理画面４０）を更新する。その結果、例えばパラメータ設定画面２０は図４（ｃ）のように更新される。
【００９２】
図４（ｃ）は、更新後の表示装置Ｃの仮想環境画面１０のロボット１０１の表示を示している。図４（ｂ）と比較して明らかなように、図４（ｃ）ではロボット１０１の表示はアームの基準部位がオフセット教示点１０７に位置する位置姿勢に変更されている。図４（ｃ）において、ｄ３０として示されているのは、上記の３０ｍｍのオフセット量である。
【００９３】
また、図５（ｄ）は、更新後の表示装置Ｃの表示画面Ｅのパラメータ設定画面２０の表示を示している。ステップＳ７でエラーが起きていなければ、同図のようにオフセット教示点１０７のパラメータが更新される。
【００９４】
以上のように、操作入力部Ｄを用いて相対値設定部２０２に入力を行うと、直ちに仮想環境画面１０のロボット１０１の表示と、パラメータ設定画面２０の表示が更新され、新規のオフセット教示点１０７における位置姿勢とパラメータを確認できる。
【００９５】
従って、ユーザ（作業者）は実際にロボット装置が情報処理装置Ａに接続されていなくても、あるいはその実機のロボット装置を動作させなくても、表示装置Ｃの表示画面Ｅを視認するだけで入力（編集）操作の妥当性を確認することができる。これにより、従来必要であった入力（編集）操作の妥当性の確認に必要な工数の削減を図ることが出来る。
【００９６】
一方、ステップＳ７において、位置姿勢演算の結果、例えば各関節値のいずれかがハードウェア的な制約を外れている場合、ＣＰＵ３３は表示装置Ｃで姿勢が取れないというエラーを表示させる（異常表示処理、Ｓ８）。例えばこの時、表示させるエラー画面５０は、図８のようなものが考えられる。図８のエラー画面５０は、到達姿勢がリミットの制約外にあり、エラーが発生していることを文字列および図形のシンボルによって表示している。
【００９７】
この画面を表示する場合は、ＣＰＵ３３はパラメータ設定画面２０のオフセット教示点１０７の数値をクリアし、相対値入力前（例えば図５（ａ）または（ｂ））の状態に戻す。その後、図３の制御の場合はステップＳ３の相対値の編集（入力）操作に戻るため、上記同様にしてオフセット教示点１０７の入力値を変更するなどの作業を行うことができる。
【００９８】
即ち、ＣＰＵ３３は、前記第２の演算工程における計算の結果、得られた位置姿勢データがロボット１０１の機構の制約の範囲内にあるか否かを判定する。もし、当該の位置姿勢データが前記ロボット装置の機構の制約の範囲内を超える場合、編集エラーを報知するエラー情報（例えばエラー画面５０）を生成する。
【００９９】
続いて、仮想環境画面１０のロボット１０１の表示と、パラメータ設定画面２０の表示を視認したユーザは目的の到達姿勢かどうかを確認する操作を行う（ステップＳ１０）。ステップＳ１０において、オフセット教示点１０７が目的の到達姿勢の場合、マウスのカーソルで確定ボタン２０９を選択し、クリックする確認操作を行う。この確認操作によってオフセット教示点１０７の作成が完了する。これにより、ＣＰＵ３３は、確定されたオフセット教示点１０７の情報を記憶装置３５に格納する。
【０１００】
以上のようにして、新規のオフセット教示点１０７の作成が終了する（記録手段、図３のステップＳ１１）。なお、記憶装置３５に記録する情報としては、例えば、基準となる教示点１０６の情報、選択した座標系の情報、オフセット情報の３つの情報をオフセット教示点１０７の（に関する）情報とし、この情報を記憶装置３５に記録する。あるいはさらに、この教示点の情報が相対的な「オフセット」情報であることを示すデータクラスなどに係るタグ情報を含めて記憶装置３５に格納してもよい。このような格納形式によれば、オフセット教示点１０７が教示点１０６を基準として定義されている、即ち、教示点１０７が教示点１０６の下位に従属するデータであることを特定できる。
【０１０１】
なお、新規のオフセット教示点１０７の作成に関しては、ＣＰＵ３３の制御によって管理画面４０の表示も更新することができる。ここで、図７（ａ）、（ｂ）は、それぞれオフセット教示点１０７の作成前、およびオフセット教示点１０７の作成完了後の管理画面４０の表示状態を示している。図７（ａ）ではロボット１０１のツリーには、Ｐ００１、Ｐ０１０、Ｐ０２０の各々の教示点１０６のノード、ＴＣＰ（１０５）およびＴｏｏｌ（１０２）のノードが階層化されている。
【０１０２】
そして、上記のようにして新規のオフセット教示点１０７を正常に作成すると、ノードの管理画面４０の基準となる教示点１０６の下位に新規のオフセット教示点１０７のノードが新たに作成されている。このように基準となる教示点１０６の下位に新規のオフセット教示点１０７のノードを表示する。これにより、ユーザはオフセット教示点１０７が親である教示点１０６のノードに子として従属する関係を有する（オフセット）教示点であることを極めて明確に認識することができる。
【０１０３】
なお、図７の管理画面４０の各ノードは、当該のノードを選択するＧＵＩ上のボタン（やアイコン）として用いることができる。例えば、管理画面４０の各ノードをマウスなどを用いてクリックした場合、ＣＰＵ３３は、そのノードの（位置姿勢）データの編集操作が指定されたものと判定する。例えば、オフセット教示点１０７の編集を行う場合には、管理画面４０のオフセット教示点１０７をマウスのカーソルでクリックすることにより、ユーザは同教示点の（再）編集を開始することができる。
【０１０４】
なお、記憶装置３５に格納した位置姿勢データは、ツリーの全体（例えば図７のツリーの全体）、または操作入力部Ｄで指定した特定の一部などを単位としてファイルＦの形式でインターフェース３６を介して外部装置に出力することができる（入出力手段）。
【０１０５】
このようにして出力したファイルＦは、後日、インターフェース３６で読み込むことができる。これにより、ファイルＦから例えばツリーの全体（例えば図７のツリーの全体）を読み込んだ場合には、ファイルＦの位置姿勢データを作成した時のシステムの状態を復旧することができる。例えば、ファイルＦの読み込みに応じて、ＣＰＵ３３は図７（ｂ）の管理画面４０を表示し、例えばそこからオフセット教示点１０７を選択すると、図４（ｃ）、図５（ｄ）の状態を再現できる。
【０１０６】
また、ファイルＦを、実機のロボット装置のコントローラと共有フォーマットに整え（変換し）てインターフェース３６から出力することもできる。これにより、情報処理装置Ａで作成した教示データを直接、実機のロボット装置に入力することができる。
【０１０７】
ここで、例えば、実機のロボット装置のコントローラのインターフェースが動作プログラムとオフセット変数で構成されている場合がある。このような場合には、ＣＰＵ３３は、ファイルＦを介して、基準となる教示点１０６の情報は教示点情報として出力させ、オフセット教示点１０７の情報は動作プログラムのオフセット編集情報として出力させるような形態が考えられる。
【０１０８】
また、実機のロボット装置のコントローラの教示点情報のインターフェースがロボットのベース座標系１０４からの相対値情報のみを用いる構成も考えられる。このような場合には、ＣＰＵ３３がオフセット教示点１０７と基準となる教示点１０６の積を計算し、全ての教示点情報をロボットのベース座標系１０４からの相対値に変換してからファイルＦを介して出力することができる。
【０１０９】
以上のように、インターフェース３６およびファイルＦを介して行う外部機器、特に実機のロボット装置とのデータの入出力の際、必要なフォーマット変換を行うことにより、様々な実機のロボット装置（あるいはコントローラ）に対応することができる。
【０１１０】
なお、オフセット教示点１０７の作成を止める場合は、図５（ａ）〜（ｄ）のパラメータ設定画面２０右上部のキャンセルボタン２１０をマウスのカーソルなどによってクリックする。このキャンセルボタン２１０をクリックすると、ＣＰＵ３３はオフセット教示点１０７に関する情報を削除し、オフセット教示点１０７作成前の状態に表示装置Ｃの表示画面Ｅを更新する。
【０１１１】
以上のようにして、新規のオフセット教示点１０７を作成することができる。
【０１１２】
（ベース座標系を用いたオフセット教示点の作成）
次に、２つ目のケース、基準となる教示点１０６よりベース座標系１０４を選択し、Ｚ軸方向に「−３０ｍｍ」オフセットを行うオフセット教示点１０７の作成手順と処理について図６（ａ）〜（ｄ）を用いて説明する。図６（ａ）〜（ｄ）は、図５（ａ）〜（ｄ）と同等の様式でパラメータ設定画面２０のＧＵＩの遷移を示している。なお、ベース座標系１０４を用いる場合の制御手順については、前述の図３の一部に記述されている。
【０１１３】
図６（ａ）は、基準となる教示点１０６の設定操作で、基準となる教示点１０６を前述の図５（ａ）と同様に教示点設定部２０３を例えばプルダウンメニューのように用いて選択する（教示点設定手段、図３のステップＳ１）。
【０１１４】
次に、ベース座標系１０４を選択する（座標系選択手段、ステップＳ２）。図６（ｂ）は、座標系の選択操作を示しており、ここでは前述の図５（ｂ）と同様に座標系選択部２０４を例えばプルダウンメニューのように用いてベース座標系１０４を選択する（座標系選択手段、ステップＳ２）。
【０１１５】
このようにして、基準となる教示点１０６の選択と、入力に用いる座標系（ベース座標系１０４）の選択が終了し、オフセット教示点１０７のオフセットとなる相対値設定に必要な準備が完了する。
【０１１６】
次に、オフセットとなる相対値を設定する（パラメータ設定手段、Ｓ３）。図６（ｃ）は、相対値設定部２０２の設定欄２０８へ設定する状況を示している。ここでは、相対値設定部２０２のＺ軸の設定欄２０８をマウスのカーソルでクリックする。相対値設定部２０２のＺ軸の設定欄２０８に操作入力部Ｄで操作しているキーボードで「−３０」という数値を入力し、［Ｅｎｔｅｒ］キーを押下する。
【０１１７】
なお、このオフセット入力値は、上述のツール座標系を用いた下方３０ｍｍのオフセット入力の例と等価である。オフセット「３０」の符号が異なっているのは、入力に用いる座標系が前述の例ではツール座標系が用いられ、この例ではベース座標系が用いられていることによる。即ち、前述の例で３０（ｍｍ）とプラスの値を入力しているのは、前述のツール座標系では、通常、ツール前方がＺ軸の正方向に取られているためである。また、この例で−３０（ｍｍ）とマイナスの値を入力しているのは、ベース座標系では、（図４の上方）Ｚ軸の正方向であるため、下方へのオフセットが負値となるためである。
【０１１８】
ＣＰＵ３３は、相対値設定部２０２への数値入力に応じて、記憶装置３５の例えばＲＡＭなどに配置された相対値設定部２０２に対応するメモリ領域の内容を更新する。即ち、操作入力部Ｄで位置姿勢データの一部を変更する操作入力が行われると、操作入力の内容に応じて当該の一部の位置姿勢データを変更する（第１の演算工程）。
【０１１９】
続いて、ユーザが操作入力部Ｄのキーボードで［Ｅｎｔｅｒ］キーを押下すると、ＣＰＵ３３は計算部３４の機能によって位置姿勢演算を実行する（姿勢計算手段）。
【０１２０】
ここでは、まず、選択された座標系がツール座標系１０５か判断する（図３のステップＳ４）。この例では、選択されているのはベース座標系１０４であるからステップＳ４からＳ６に進み、ベース座標系１０４の位置姿勢演算を行う（ステップＳ６）。
【０１２１】
例えば、ベース座標系１０４の位置姿勢演算の場合、姿勢行列を位置行列と回転行列に分けて計算を行い、最後に計算結果の積を求める手順で計算を行う。
【０１２２】
まず、ロボット１０１のベース座標系１０４から基準となる教示点１０６までの相対値の姿勢行列Ｔ１と、オフセット教示点１０７のオフセットとなる相対値の姿勢行列Ｔ２の位置行列の和を計算し、姿勢行列Ｔｔｍｐ１を作成する（下記の式（３））。なお、この時の回転行列Ｒｔｍｐ１を０とする。
【０１２３】
【数３】
2020089970.tif 000005
【０１２４】
次に、オフセット教示点１０７のオフセットとなる相対値の姿勢行列Ｔ２より、位置行列Ｐ２を０とした姿勢行列Ｔｔｍｐ２を作成する（下記の式（４））。
【０１２５】
【数４】
2020089970.tif 000006
【０１２６】
次に、ロボット１０１のベース座標系１０４から基準となる教示点１０６までの相対値の姿勢行列Ｔ１より、位置行列Ｐ１を０とした姿勢行列Ｔｔｍｐ３を作成する（下記の式（５））。
【０１２７】
【数５】
2020089970.tif 000007
【０１２８】
次に、式（３）、（４）、（５）の積より、ロボット１０１のベース座標系１０４からオフセット教示点１０７までの相対値の姿勢行列Ｔ３を計算する（下記の式（６））。
【０１２９】
【数６】
2020089970.tif 000008
【０１３０】
さらに式（６）の計算結果より逆運動学計算を行い、ロボット１０１の各軸の関節値を計算する。即ち、ステップＳ６において、ＣＰＵ３３は、上記第１の演算工程において変更された一部の（オフセット教示点１０７の）位置姿勢データに基づき、ロボット装置の各部位の位置または姿勢をそれぞれ特定する位置姿勢演算を行う。この位置姿勢演算の結果に基づき新たな位置姿勢データ（例えば関節値）を求める（第２の演算工程）。
【０１３１】
以上の位置姿勢演算によって、ベース座標系１０４を選択した場合のオフセット教示点１０７を求めることができる。
【０１３２】
図３の制御において、続くステップＳ７からＳ１１の制約範囲内か否かの判定は、前述のツール座標系１０５を用いたオフセット教示点１０７の入力の場合と同様に実行される。制約範囲内か否かの判定に関するエラー処理（例えば図８のメッセージ表示：ステップＳ８）は前述と同様に実施することができる。
【０１３３】
上記のベース座標系における位置姿勢演算（ステップＳ６）の後、エラーが発生していなければ、図３のステップＳ９において、表示装置Ｃの仮想環境画面１０、パラメータ設定画面２０あるいはさらに管理画面４０の表示を更新する。この時の様子は、前述のツール座標系を用いる場合に説明した図４（ｂ）〜（ｃ）、図５（ｃ）、あるいは図７（ａ）、（ｂ）などと同様である。また、ステップＳ１０のユーザによる確認と、Ｓ１１の確定操作も前述のツール座標系を用いる場合と同様である（図５（ｄ））。
【０１３４】
即ち、ＣＰＵ３３は、第１の演算工程において変更された一部の位置姿勢データ、および第２の演算工程において計算された新たな位置姿勢データに基づき、表示装置Ｃの表示画面Ｅの表示を更新する（表示更新工程）。
【０１３５】
以上のようにして、ベース座標系１０４を選択して、オフセット教示点１０７を作成することができる。そして、オフセット教示点１０７を作成すると同時に、表示装置Ｃの仮想環境画面１０、パラメータ設定画面２０あるいはさらに管理画面４０の表示が更新されるため、新規のオフセット教示点１０７における位置姿勢とパラメータを確認できる。
【０１３６】
従って、ユーザ（作業者）は実際にロボット装置が情報処理装置Ａに接続されていなくても、あるいはその実機のロボット装置を動作させなくても、表示装置Ｃの表示画面Ｅを視認するだけで入力（編集）操作の妥当性を確認することができる。これにより、従来必要であった入力（編集）操作の妥当性の確認に必要な工数の削減を図ることが出来る。
【０１３７】
（オフセット教示点１０７の編集と座標系の切り替え）
次に、３つ目のケース、作成したオフセット教示点１０７を編集して座標系の切り替えた場合の制御につき図９を用いて説明する。図９は、入力済みのオフセット教示点１０７の座標系を切り替えた場合の制御手順を示している。
【０１３８】
従来では、座標系を切り替える必要が生じた場合、作業者（ユーザ）が行列計算を行い、パラメータを計算していたが、計算した数値の入力ミスなど、人為的なミスが発生することがあった。そこで、本例に示すように、座標系を切り替えた際に自動的に切り替えた座標系方向の相対値パラメータを計算する構成によれば、このような人為的な計算ミスを低減させることができる。以下、ベース座標系１０４とツール座標系１０５をそれぞれ切り替えた場合につき説明する。ここでは、まずツール座標系１０５をベース座標系１０４に切り替えた場合の処理を考える。
【０１３９】
オフセット教示点１０７の編集開始（図９ステップＳ１２）は、例えば、管理画面４０（図７（ｂ））において、操作入力部Ｄのマウスで上述のようにして入力済みのオフセット教示点１０７（Ｐ１００）を選択することにより指定する。
【０１４０】
次に、ツール座標系１０５をベース座標系１０４に切り替える（座標系選択手段、ステップＳ１３）。例えば、図５（ｂ）（図６（ｂ））のパラメータ設定画面２０の座標系選択部２０４を操作入力部Ｄのマウスを用いてクリックすると座標系リスト２０７が表示される。ここでは、この座標系リスト２０７を用いてツール座標系１０５をベース座標系１０４に切り替える。
【０１４１】
パラメータ設定画面２０の座標系選択部２０４によってベース座標系１０４に切り替える（図９のステップＳ１３）と、以下のようにＣＰＵ３３の計算部３４の機能により座標系変換を伴なう位置姿勢演算を行う（姿勢計算手段：本例の場合にはＳ１５）。
【０１４２】
まず、選択された座標系がツール座標系１０５か判断し（ステップＳ４）、ここでベース座標系１０４が選択された場合、ステップＳ４からＳ１５に進み、ベース座標系１０４の相対値計算を実行する（相対値計算処理、ステップＳ１５）。
【０１４３】
ベース座標系１０４の相対値計算においては、まず式（１）より、ベース座標系１０４からオフセット教示点１０７までの相対値の姿勢行列Ｔ３を計算する。次に、式（５）より、ベース座標系１０４から基準となる教示点１０６までの相対値の姿勢行列Ｔ１の位置行列Ｐ１を０とした姿勢行列Ｔｔｍｐ３を計算する。
【０１４４】
続いて、式（１）と、式（５）の逆行列の積を計算し、姿勢行列Ｔｔｍｐ４を計算する（下記の式（７））。
【０１４５】
【数７】
2020089970.tif 000009
【０１４６】
続いて、式（７）で計算した姿勢行列Ｔｔｍｐ４の位置行列Ｐｔｍｐ４を０とした姿勢行列Ｔｔｍｐ５を計算する（下記の式（８））。
【０１４７】
【数８】
2020089970.tif 000010
【０１４８】
続いて、式（７）で計算した姿勢行列Ｔｔｍｐ４と、式（８）で計算した姿勢行列Ｔｔｍｐ５の逆行列の積を計算し、姿勢行列Ｔｔｍｐ６を計算する（下記の式（９））。
【０１４９】
【数９】
2020089970.tif 000011
【０１５０】
続いて、式（７）の回転行列Ｒｔｍｐ４より、ベース座標系１０４方向のオフセットとなる相対値の回転成分（α、β、γ）を計算する。そして、式（９）の並進成分Ｐｔｍｐ６からロボット１０１のベース座標系１０４から基準となる教示点１０６までの相対値の姿勢行列Ｔ１の位置行列Ｐ１の差を計算し、ベース座標系１０４方向のオフセットとなる相対値の並進成分（Ｘ、Ｙ、Ｚ）を計算する。
【０１５１】
上記計算結果により出力された、ベース座標系１０４方向のオフセットとなる相対値（Ｘ、Ｙ、Ｚ、α、β、γ）に基づき、ＣＰＵ３３は表示装置Ｃの表示画面Ｅを更新する（表示手段）。この場合のように、座標系（のみ）を変更した場合、ロボット１０１の位置姿勢は変化しないため、表示画面Ｅの更新は、相対値設定部２０２についてのみ行えばよい（正常系表示処理、ステップＳ９）。
【０１５２】
座標系（のみ）の変更では、当然ながら仮想環境画面１０におけるロボット１０１の位置姿勢の表示は変化させる必要がない。
【０１５３】
なお、ここで例えば図４（ｃ）のオフセット教示点１０７の教示後に表示されるロボット１０１の位置姿勢では、ツール座標系１０５とベース座標系１０４がちょうど一直線上に正負逆方向のＺ軸を持った座標系となる姿勢となっている。
【０１５４】
そのため、パラメータ設定画面２０の相対値設定部２０２の表示は座標系をツール座標系からベース座標系に切り替える前では、図５（ｄ）の表示であったものが、本例の座標系の切り替えによって図６（ｄ）の表示に切り替えられる。即ち、図５（ｄ）で示したツール座標系１０５でＺ軸「３０ｍｍ」のオフセット量が、座標系切り替えによる座標系計算の結果、図６（ｄ）で示したベース座標系１０４でＺ軸「−３０ｍｍ」のオフセット量となる。
【０１５５】
ユーザが上記のように切り替えられた表示装置Ｃの表示画面Ｅを視認して確認すると、ステップＳ１６でオフセット教示点１０７の編集を終了する。
【０１５６】
以上のように、本例によれば、ユーザ（作業者）は座標系を切り替えたと同時に、自動的に切り替えた座標系方向の相対値パラメータを確認することができる。従って、従来のように座標系変換に伴なう行列計算を人力で行う必要がなくなり、工数の削減と人為的なミスの低減を図ることができる。
【０１５７】
また、ベース座標系１０４からツール座標系１０５に切り替える場合の制御は、図９においてステップＳ４からＳ１４への遷移が生じる（それ以外の制御は上記と同等である）。
【０１５８】
ベース座標系１０４からツール座標系１０５への切り替えにおいても、図９のステップＳ１３で、上述同様にパラメータ設定画面２０の座標系選択部２０４を用いてベース座標系１０４をツール座標系１０５に切り替える（座標系選択手段）。
【０１５９】
図９のステップＳ４では、選択された座標系がツール座標系１０５か判断し、ＣＰＵ３３の計算部３４の機能により座標系変換を伴なう位置姿勢演算（姿勢計算手段：本例の場合にはＳ１４）を行う。
【０１６０】
このツール座標系１０５における相対値計算では、オフセット教示点１０７のオフセットとなる相対値の姿勢行列Ｔ２を計算する（下記の式（１０））。ここでは、式（６）の計算結果となる姿勢行列Ｔ３と、ロボット１０１のベース座標系１０４における基準となる教示点１０６の相対値の姿勢行列Ｔ１の逆行列の積として姿勢行列Ｔ２を求める。
【０１６１】
【数１０】
2020089970.tif 000012
【０１６２】
式（１０）の計算結果より、オイラー角変換を行い、ツール座標系１０５方向のオフセット教示点１０７のオフセットとなる相対値（Ｘ、Ｙ、Ｚ、α、β、γ）を計算する。
【０１６３】
上記計算結果により出力された、オフセットとなる相対値（Ｘ、Ｙ、Ｚ、α、β、γ）に基づき、ＣＰＵ３３は表示装置Ｃの表示画面Ｅを更新（表示手段、ステップＳ９）し、オフセット教示点１０７の編集を終了する（ステップＳ１６）。
【０１６４】
当然ながら、この表示更新では、パラメータ設定画面２０はベース座標系への変換の場合と逆で、図６（ｄ）の表示から図５（ｄ）の表示に切り替えられる。即ち、座標系切り替えによる座標系計算の結果、図６（ｄ）で示したベース座標系１０４でＺ軸「−３０ｍｍ」のオフセット量が、図５（ｄ）で示したツール座標系１０５でＺ軸「３０ｍｍ」のオフセット量となる。座標系（のみ）の変更では、当然ながら仮想環境画面１０におけるロボット１０１の位置姿勢の表示は変化させる必要がない。
【０１６５】
以上のように、ベース座標系からツール座標系への切り替えの場合でも、上述と同様に座標系を切り替えたと同時に、ユーザは直ちに自動的に切り替えた座標系方向の相対値パラメータを確認することができる。このため、作業者が例えば人力で行列計算を行う必要がなくなり、工数の削減と人的なミスの低減を図ることができる。
【０１６６】
（基準となる教示点１０６の編集）
最後に、基準となる教示点１０６を編集した場合のオフセット教示点１０７の処理について図１０を用いて説明する。図１０は、入力済みのオフセット教示点１０７の上位ノードに相当する教示点１０６を変更する場合の制御手順を示している。
【０１６７】
なお、基準となる教示点１０６の編集を行うパラメータ設定画面２０は、絶対値設定部２０１と、相対値設定部２０２が表示されているものとする（例えば図５（ａ）〜（ｄ）または図６（ａ）〜（ｄ））。図７（ｂ）の管理画面４０に示したように、オフセット教示点１０７は、基準（親）となる教示点１０６の子のモデルの関係を保持している。
【０１６８】
そのため、このような階層構造のデータでは、基準となる教示点１０６を編集すると、ＣＰＵ３３はオフセット教示点１０７も相対値関係を保持した状態で変更しなければならない。
【０１６９】
まず、管理画面４０の基準となる教示点１０６の編集開始（図１０のステップＳ１７）は、例えば、管理画面４０（図７（ａ））において、基準となる教示点１０６（Ｐ００１）を操作入力部Ｄのマウスでクリックすることなどにより指定する。
【０１７０】
これにより、ＣＰＵ３３は、パラメータ設定画面２０の教示点名設定部２１２の表示を教示点１０６に相当する「Ｐ００１」に切り替え、当該の教示点１０６の位置姿勢データを読み出して絶対値設定部２０１に表示する。
【０１７１】
この段階で、ユーザは絶対値設定部２０１の数値を操作入力部Ｄのキーボードなどを用いて変更することにより、基準となる教示点１０６の位置を修正する（図１０のステップＳ１８）。基準となる教示点１０６の編集操作を行うと、ＣＰＵ３３の計算部３４の機能により、基準となる教示点１０６に関する位置姿勢演算を行う。
【０１７２】
また、本実施例では、上述のように基準となる教示点１０６と、オフセット教示点１０７は階層的なノード構造によって記憶装置３５に格納される。このため、ＣＰＵ３３は前述のような位置姿勢データの格納形式やそのデータ内容などを介して、教示点１０６は親のノードであり、その下位に影響を受けるノードとしてオフセット教示点１０７が格納されていることを認識する。
【０１７３】
そこで、基準となる教示点１０６の編集操作を行うと、ＣＰＵ３３の計算部３４の機能により、オフセット教示点１０７に関しても位置姿勢演算を行う（関節値計算処理：図１０のＳ４、およびＳ５またはＳ６）。
【０１７４】
ここでは、まず、基準となる教示点１０６に対して子のモデルの関係にあるオフセット教示点１０７の記述形式に用いられている座標系がツール座標系１０５か否かを判断する（図１０ステップＳ４）。上述のように、オフセット教示点１０７に関しては、記憶装置３５にその教示点を記述している座標系を示すデータが格納されており、この座標系データを参照することによりこのステップＳ４の判定を行うことができる。
【０１７５】
ステップＳ４において、オフセット教示点１０７を記述している座標系がツール座標系１０５である場合、ステップＳ５に移行する。ステップＳ５では、基準となる教示点１０６の修正（ステップＳ１８）の結果に基づき、オフセット教示点１０７のツール座標系１０５における位置姿勢演算を行う（ステップＳ５）。
【０１７６】
一方、ステップＳ４において、オフセット教示点１０７を記述している座標系がベース座標系１０４である場合は、ステップＳ６に移行する。ステップＳ６では、基準となる教示点１０６の修正（ステップＳ１８）の結果に基づき、オフセット教示点１０７のベース座標系１０４における位置姿勢演算を行う（ステップＳ６）。
【０１７７】
なお、ステップＳ５またはＳ６においては、ロボット１０１の各関節に係る関節値計算処理も行うが、その場合、子のモデルとして複数のオフセット教示点１０７が存在する場合、その教示点分すべてに関する関節値計算を行う。
【０１７８】
続いて、ＣＰＵ３３は、ステップＳ５またはＳ６で計算したオフセット教示点１０７を実現するためのロボット１０１の各関節値が前述のハードウェアや仕様上の制約内か否かを判断する（制約判断処理、ステップＳ７）。
【０１７９】
ステップＳ７において、ロボット１０１の各関節値が上記の制約内の場合には、ステップＳ９においてＣＰＵ３３は表示装置Ｃの表示画面Ｅを更新する（正常系表示処理）。同時に、仮想環境画面１０のロボット１０１の表示は直ちに（あるいは管理画面４０で教示点が指定された場合）当該の教示点に対応する位置姿勢に変更することができる。
【０１８０】
一方、ステップＳ７において、ロボット１０１の各関節値が上記制約を超えている場合には、ステップＳ１９において、ＣＰＵ３３は表示装置Ｃの表示画面Ｅを用いてエラー表示を行う。このエラー表示の一例としては、例えば図７（ｃ）に示すように、管理画面４０を用いて、移動できない教示点であることを示すために、教示点１０７にマーク１０８（例えば図示のようなｘ印）を表示する（異常表示処理）。
【０１８１】
なお、ここでは基準となる教示点１０６に対して子のノードにあたる教示点は教示点１０７（Ｐ１００）のみであるが、ＣＰＵ３３は、同様の演算処理によって他の教示点と上記の制約範囲の関係を検査することができる。従って、子のノードの関係を有する教示点が他にもあって、そのいずれかが可動範囲外の教示点であると判定された場合には、ＣＰＵ３３はその教示点についても図７（ｃ）と同様にマーク１０８を表示する。このような表示によって、ユーザは今、実行した基準となる教示点１０６の変更の妥当性（あるいは問題点）を直ちに認識することができる。
【０１８２】
上記の管理画面４０の表示を確認したユーザは、確定ボタン２０９（図５、図６）をマウスでクリックすることにより、基準となる教示点１０６の編集内容を確定することができる（ステップＳ２０）。ＣＰＵ３３は、変更内容を記憶装置３５上の教示データに反映させる。あるいは、変更内容を反映させた教示データは、ファイルＦの形式で外部装置に送信することもできる。また、基準となる教示点１０６の編集をキャンセルしたい場合は、キャンセルボタン２１０（図５、図６）をクリックする。このキャンセル操作が行われた場合には、ＣＰＵ３３は変更内容を破棄して、表示装置Ｃの表示を編集前の状態に復帰させる。
【０１８３】
例えば、編集終了後、管理画面４０において、特定の教示点を選択した場合には、ＣＰＵ３３は仮想環境画面１０のロボット１０１の表示を当該の教示点に対応する位置姿勢に変更することができる。また、管理画面４０で、移動不可能を示すマーク１０８が表示されている状態で、その教示点を選択した場合には、ＣＰＵ３３は、例えば表示装置Ｃにエラー画面５０（図８）を表示してエラーをユーザに報知する。この場合は、ＣＰＵ３３仮想環境画面１０のロボット１０１の表示は当該の教示点に対応する位置姿勢に変化させる表示制御を実行する必要はない。
【０１８４】
以上のようにして、基準となる教示点１０６の編集、および修正を行うことができる。
上述のように、本実施例では、基準となる教示点１０６に関して、子の関係を有するノードに例えばオフセット教示点１０７を階層的なノード形式で格納するようにしている。このため、教示点１０６が変更された場合には、ＣＰＵ３３は直ちに教示点１０７に関する位置姿勢演算を自動的に実行し、その結果を表示画面Ｅに反映させることができる。
【０１８５】
これにより、ユーザは基準となる教示点１０６の編集を行うだけで、関連するオフセット教示点１０７の位置姿勢に関する影響を編集経過中にリアルタイムで確認でき、作業工数の削減を図ることができる。
【０１８６】
以上の通り、本実施例によれば、情報処理装置Ａにおけるロボット装置の位置姿勢データの入力ないし編集において、作業者は容易にオフセット教示点１０７や基準となる教示点１０６の作成、編集、座標系の切り替えなどを行うことができる。本実施例では、編集結果に基づき、ロボット装置に関する位置姿勢演算が自動的に実行される。そして、その結果は、直ちに表示装置Ｃの表示画面Ｅ、パラメータ設定画面２０の数値表示や、仮想環境画面１０の位置姿勢表示、管理画面４０の管理表示に反映される。従って、ユーザは面倒な人力による計算などを行うことなく、表示装置Ｃの表示画面Ｅを介して、たった今実行したロボット装置の位置姿勢データの入力ないし編集の妥当性を確認することができ、作業工数の削減や、人的なミスの低減が可能となる。
【０１８７】
本実施例においては、ロボット制御データ（教示データ）としての位置姿勢データのノードを階層的なツリー構造によって記憶装置３５に格納するデータ構造を採用している。
例えば、オフセット教示点と、その基準となる教示点、のように親、子の関係にあるデータを従来のような単なるフラットなデータ構造として格納するのではなく、階層的なノード構造で記憶装置に格納する。これにより、位置姿勢データの入力、編集、修正などが行われた場合、即座に影響のある位置姿勢データの範囲を特定でき、その範囲にある位置姿勢データの軌道計算などを含むエラーチェックを行うことができる。
【０１８８】
また、本実施例によれば、位置姿勢データのノードを階層的に配置したツリー構造の格納形式を採用している。このため、教示点に係る位置姿勢データの入力、編集、修正の過程で、例えば仮想表示出力や数値表示、管理表示などのうち更新すべき部分を迅速かつ確実に特定することができる。そして、実行中の入力、編集、修正の経過をほぼその操作に応じてリアルタイムで確認できるよう、仮想表示出力や数値表示、管理表示などを更新することができる。
【０１８９】
また、本実施例によれば、位置姿勢データの入力、編集、修正では、オフセットとなる相対値による位置姿勢データの指定や、複数のロボット座標系から把握の容易なロボット座標系を任意に用いることができる。オフセットによる相対値により位置姿勢データを入力、編集した場合は、上記の階層的なノード構造の格納形式を利用して、入力、編集に応じた位置姿勢演算を行って例えば仮想表示出力や数値表示、管理表示などを迅速かつ確実に更新することができる。
【０１９０】
なお、以上では選択できる座標系としてベース座標系１０４とツール座標系１０５の２種類を示したが、対象のロボット装置について他の座標系、例えばロボットの他の特定部位などを基準とした座標系が用いられる場合がある。その場合には、座標系の選択肢には上記のベース座標系１０４とツール座標系１０５以外の座標系を含めることができる。例えば、ロボット１０１が２台存在し、２台のロボット１０１で協調動作を行う場合、他方のロボット１０１の動作に合わせるため、他方のロボット１０１のベース座標系１０４やツール座標系１０５を選択できるようにすることが考えられる。また、ワーク１０３の原点を座標系とするワーク座標系が存在する場合、ワーク座標系を選択できるよう、表示画面ＥのＧＵＩを設計することができる。これらの座標系に関する変形例は、後述の各実施例においても同様に実施できる。
【０１９１】
以下、本発明の情報処理装置および情報処理方法に関して、いくつかの異なる実施例を示す。以下では、同一の構成部材に関しては同一の参照符号を用い、その詳細な説明は省略するものとする。また、後述のフローチャートで示す制御手順においては、例えば前述の図３と同等のステップには同一のステップ番号を用いる。そして、後述の各フローチャート中のステップ番号と、上述の例えば第１の演算工程、第２の演算工程や、表示更新工程との関係は、前述の図３と同等であるものとする。
【実施例２】
【０１９２】
以下、本発明の実施例２に係る情報処理装置および情報処理方法につき、図１１から図１６を参照して説明する。以下では、上述の実施例１とハードウェア的な構成、および表示画面の構成などのうち基本的な部分は同一であるものとし、その詳細な説明は省略する。また、以下の実施例において、同一ないし相当する部材には同一の参照符号を用い、その詳細な説明は省略するものとする。
【０１９３】
上記実施例１において、基準となる教示点１０６は、例えばロボット１０１のベース座標系１０４からの相対値により記述された教示点である。この場合、例えばワーク１０３の位置姿勢が変更された場合、仮想環境内のワーク１０３の位置姿勢の変更と、それに関連する基準となる教示点１０６の位置姿勢の編集が別に必要となる。従って、ワーク１０３の位置姿勢の変更に応じて基準となる教示点１０６の位置姿勢を自動的に編集できれば便利である。
【０１９４】
そこで、本実施例では、管理画面４０によるモデル情報管理で、ワーク１０３に関連した基準となる教示点１０９およびオフセット教示点１１０（図１１（ａ）、（ｂ））を管理する手法を例示する。本実施例では、例えばワーク１０３の位置姿勢の編集を行った時、関連する教示点を一括して自動的に編集できるようにする。
【０１９５】
ワーク１０３に関連したオフセット教示点１１０の編集処理については、表示装置Ｃの表示画面ＥのＧＵＩの選択手順によって異なる処理と表示を行う。例えば、ワーク１０３に関連した教示点情報の編集については、「オフセット教示点１１０を編集した場合」と、「ワーク１０３の編集した場合」の２つのケースについて以降説明する。
【０１９６】
なお、実施例１で説明した「座標系を切り替えた場合」と、「基準となる教示点１０６を編集した場合」の処理に関しては、実施例１と同様の処理を行うものとする。
【０１９７】
（ワーク１０３に関連したオフセット教示点１１０の編集処理）
まず、１つ目のケース、ワーク１０３に関連したオフセット教示点１１０の編集手順と処理について図１１および図１２を参照して説明する。情報処理装置Ａの表示装置Ｃの表示画面Ｅにおいて表示する図１１（ａ）は管理画面４０の構成を示している。表示画面Ｅの他の部分には、例えば図１などに示したように仮想環境画面１０やパラメータ設定画面２０を配置することができる。
【０１９８】
図１１（ａ）の管理画面４０に対応する教示データでは、階層的なノード構成でＲＯＯＴ（１００）のノード以下にロボット１０１（ＲＯＢＯＴ）およびワーク１０３（Ｗｏｒｋ）の各教示データのノードが格納されている。ロボット１０１の各ノードは、基準となる教示点１０６（Ｐ００１）と、その子のノードであるオフセット教示点１０７、ＴＣＰ（１０５）およびＴｏｏｌ（１０２）の各ノードである。
【０１９９】
図１１（ａ）のように、本実施例では、ワーク１０３のモデル情報の子のモデルとして基準となる教示点１０９、およびオフセット教示点１１０のノードが階層化されて記憶装置３５に格納されている。ＣＰＵ３３（図２）は、このようなデータ構造を利用して、これらの関連（紐）づけられた各ノードの位置姿勢データを管理することができる。
【０２００】
ここで、ワーク１０３の基準となる教示点１０９は、例えばロボット１０１でワーク１０３を把持位置などの特定部位の位置姿勢データである。また、オフセット教示点１１０は、基準となる教示点１０９の位置姿勢に対するオフセットの相対値で表現された位置姿勢を有する。
【０２０１】
基準となる教示点１０９とオフセット教示点１１０は、上記実施例の基準となる教示点１０６とオフセット教示点１０７の場合と同様に階層的なノード構造をもって記憶装置３５に格納される。このため、上記実施例の基準となる教示点１０６とオフセット教示点１０７の場合と同様な編集、およびその編集に関連した表示制御を行うことができる。
【０２０２】
オフセット教示点１１０の編集は、以下に例示するような手順で行うことができる。図１２は、オフセット教示点１１０を編集する場合のＣＰＵ３３が実行する制御手順である。
【０２０３】
図１２のステップＳ１２において、管理画面４０のオフセット教示点１１０（Ｐ１１０）を選択して、編集を開始する（Ｓ１２）。この教示点選択は、前述同様に、管理画面４０のオフセット教示点１１０（Ｐ１１０）を操作入力部Ｄのマウスによりクリックすることにより行うことができる。
【０２０４】
図１に示したように表示装置Ｃの表示画面Ｅには、管理画面４０とともにパラメータ設定画面２０を用意しておく。ＣＰＵ３３は管理画面４０でオフセット教示点１１０（Ｐ１１０）が選択されると、前述と同様に教示点名設定部２１２の表示を教示点１１０に相当する「Ｐ１１０」に切り替える。
【０２０５】
次に、パラメータ設定画面２０の相対値設定部２０２を用いてオフセット教示点１１０のオフセットとなる相対値を編集することができる（パラメータ設定手段、ステップＳ３）。ユーザが相対値設定部２０２を用いてオフセット教示点１１０のオフセットとなる相対値を入力ないし編集すると、ＣＰＵ３３の計算部３４の機能により座標系変換を伴なう位置姿勢演算を行う。
【０２０６】
まず、ステップＳ２１において、ＣＰＵ３３はワーク１０３に関連した教示点かを判断する（モデル判断処理、ステップＳ２１）。この判定は、図１１のような階層的なノード構造の教示点データを探索して、処理対象のノード（教示点１１０）が（例えばロボット１０１やワーク１０３のツリーなどの）どの階層（ツリー）に属しているかを特定する処理に相当する。具体的な手法としては、例えば教示点１１０それ自身の親のモデル情報を根のモデル情報となる絶対座標系１００まで検索し、親のモデル情報にロボット１０１が存在しない場合、ワーク１０３に関連した教示点と判断する。
【０２０７】
この例では、教示点１１０がステップＳ２１でワーク１０３に関連した教示点であると判定し、ステップＳ２２を実行する。ステップＳ２２では、ロボット１０１のベース座標系１０４から基準となる教示点１０９までの相対値を計算する（ベース相対値計算処理）。
【０２０８】
ここでは、次式（１１）の如く、絶対座標系からワーク１０３までの絶対値の姿勢行列Ｔ４と、ワーク１０３から基準となる教示点１０９までの相対値の姿勢行列Ｔ５の積から、絶対座標系から基準となる教示点１０９の絶対値の姿勢行列Ｔｔｍｐ７を計算する。
【０２０９】
【数１１】
2020089970.tif 000013
【０２１０】
次に、次式（１２）のように、式（１１）の計算結果と絶対座標系からロボット１０１のベースまでの絶対値の姿勢行列Ｔ６の逆行列の積から、ロボット１０１のベース座標系１０４から基準となる教示点１０９までの相対値の姿勢行列Ｔ１を計算する。
【０２１１】
【数１２】
2020089970.tif 000014
【０２１２】
ステップＳ２２に続き、あるいはステップＳ２１において処理対象の教示点がロボット１０１のベース座標系１０４に関連した教示点の場合には、ステップＳ４の処理を実行する。このステップＳ４では、ＣＰＵ３３がパラメータ設定画面２０の座標系選択部２０４（例えば図５（ｂ））で選択されている座標系がツール座標系１０５か否か判断する（ステップＳ４）。
【０２１３】
ステップＳ４で選択されている座標系がツール座標系１０５の場合、ステップＳ５に進み、実施例１の場合と同様にツール座標系１０５におけるロボット１０１の各関節に関する位置姿勢計算を実行する（関節値計算処理：ステップＳ５）。
【０２１４】
一方、ステップＳ４で選択されている座標系がベース座標系１０４の場合、ステップＳ６に進み、実施例１の場合と同様にベース座標系１０４におけるロボット１０１の各関節に関する位置姿勢計算を実行する（関節値計算処理：ステップＳ６）。
【０２１５】
次に、ステップＳ７以降で、ステップＳ５またはＳ６の位置姿勢計算の結果に応じて表示画面Ｅの表示を更新する（表示手段）。
【０２１６】
まず、ステップＳ７では、ＣＰＵ３３は、上述の実施例１と同様に、オフセット教示点１１０に基準部位を移動させる場合に必要なロボット１０１の各関節値がハードウェアや仕様、規約などにより定まる制約内か判断する（制約判断処理：ステップＳ７）。
【０２１７】
ステップＳ７でロボット１０１の各関節値が上記の制約内であれば、ステップＳ９に進み、位置姿勢演算の結果に応じてＣＰＵ３３は表示装置Ｃの表示画面Ｅを更新する（正常系表示処理）。同時に、仮想環境画面１０のロボット１０１の表示は、直ちに教示点１１０に対応する位置姿勢に変更することができる。
【０２１８】
一方、ステップＳ７でロボット１０１の各関節値が上記制約を超えている場合には、ステップＳ８に進み、ロボット１０１の姿勢が取れない旨を表示すべく、前述の図８のエラー画面５０を表示し（異常系表処理）、編集前の状態に戻る。
【０２１９】
その後、仮想環境画面１０のロボット１０１の表示と、パラメータ設定画面２０の表示を視認したユーザは、確定ボタン２０９（図５、図６）をマウスでクリックすることにより、基準となる教示点１１０の編集内容を確定することができる（ステップＳ１６）。また、教示点１１０に関する編集をキャンセルしたい場合は、キャンセルボタン２１０（図５、図６）をクリックする。このキャンセル操作が行われた場合には、ＣＰＵ３３は変更内容を破棄して、表示装置Ｃの表示を編集前の状態に復帰させる。
【０２２０】
以上のようにして、ユーザはワーク１０３に関連したオフセット教示点１１０の編集作業を行うと、直ちにロボット１０１の位置姿勢と教示点のパラメータをすぐに確認できる。これにより、人為的なミスの低減および作業工数の削減を図ることができる。
【０２２１】
（ワーク１０３の配置変更）
次に、２つ目のケース、ワーク１０３の配置変更を行う編集処理、およびそれに関連するＣＰＵ３３による制御例につき図１３から図１６を参照して説明する。
【０２２２】
なお、管理画面４０に関しては上記の図１１（ａ）、（ｂ）に示した表示を用いる。また、同時に、配置変更を受けるワーク１０３に関しては、上記の図１１および図１２の例と同様に基準となる教示点１０９と、その子のオフセット教示点１１０のノードが既に定義済みであるものとする。
【０２２３】
これら基準となる教示点１０９と、その子のオフセット教示点１１０のノードは、例えばこのワーク１０３の把持などの取り扱いを行う場合のロボット１０１の基準部位の位置姿勢に相当する位置姿勢データを格納している。本例では、教示点１０９、１１０のノードはワーク１０３の階層に格納されているため、ワーク１０３の位置を変更すれば、ＣＰＵ３３は下記のように影響を受ける教示点１０９、１１０のノードを自動的に編集（変更）することができる。
【０２２４】
本明細書におけるロボット装置を制御するための位置姿勢データを階層的なノード構成によって記憶装置３５に記憶する。例えば関連する教示点（例えば基準の教示点とオフセット教示点）は、階層的に紐づけられてノードとして格納する。このため、特定のノードに関する編集が行われた場合、直ちにその編集の影響範囲内にある他のノードを特定し、編集されたノードに応じてそのノードの新しい値を計算できる。
【０２２５】
また、ロボット１０１以外の対象、例えばワーク１０３（の位置姿勢データ）も１つのノードとして記憶装置３５中の階層的なデータ構造に記憶させることができる。これにより、ロボット１０１で取り扱うワーク１０３のノード（の位置姿勢データ）が編集された場合は、上記同様にロボット１０１の位置姿勢を演算して、ハードウェアや仕様、規約上の制約との関係をチェックすることができる。そして、エラーが生じていなければ表示画面Ｅ中のパラメータ設定画面２０や仮想環境画面１０の表示を更新することができる。
【０２２６】
図１３は、ワーク１０３の位置姿勢を編集する場合の制御手順を示している。以下、ワーク１０３の位置姿勢を編集した場合のオフセット教示点１１０に関する制御につき説明する。
【０２２７】
また、図１４（ａ）〜（ｃ）は、ワーク１０３の位置姿勢を編集した場合の仮想環境画面１０の表示更新の様子を示している。図１４（ａ）は、ワーク１０３に関連した基準となる教示点１０９のロボット１０１の位置姿勢と、ワーク１０３の配置の関係を表示している。
【０２２８】
ワーク１０３に関する記憶装置３５上の階層的なデータ記憶では、基準となる教示点１０９と、オフセット教示点１１０が関連している状態とする（例えば図１１（ａ））。
【０２２９】
図１３のステップＳ２３においては、まず管理画面４０より編集するワーク１０３を選択し、ワーク１０３の配置の編集開始を指定する。この操作は、ユーザが図１１（ａ）の管理画面４０でワーク１０３のノードをマウスによりクリックすることにより行えるようＧＵＩを構成しておく。
【０２３０】
図１６（ａ）〜（ｃ）は、本例のワーク１０３のノードの編集に用いられるパラメータ設定画面２０の表示状態を示している。この図１６（ａ）〜（ｃ）の例では、ワーク１０３のノードを選択済みであり、パラメータ設定画面２０の右側には入力フィールド（ボックス）は表示していない。
【０２３１】
ステップＳ２３で管理画面４０でワーク１０３のノードをクリックし、選択すると、ＣＰＵ３３は、パラメータ設定画面２０を例えば図１６（ａ）に示すように切り替える。この図１６（ａ）のパラメータ設定画面２０は、ワーク１０３の配置変更を行う前の状態を示している。
【０２３２】
この段階で既にワーク１０３が配置済みであれば、図１６（ａ）のように絶対値設定部２０１にワーク１０３を配置したＸ、Ｙ、Ｚ座標値が表示される。また、このＧＵＩ構成では、相対値設定部２０２には同じＸ、Ｙ、Ｚ座標値を表示させる。なお、ワーク１０３に関しては座標系としてはベース座標系が用いられるものとする。
【０２３３】
続いて、図１３のステップＳ２４において、ユーザはパラメータ設定画面２０を用いてワーク１０３の配置変更を行うことができる。
【０２３４】
図１６のＧＵＩの例では、相対値設定部２０２を用いて配置変更を行う。例えば、ユーザは図１６（ａ）のように、相対値設定部２０２のＸ座標の設定欄２０８を操作入力部Ｄのマウスのカーソル２０５（ポインタ）でクリックし、この入力フィールドを選択する。
【０２３５】
次に、相対値設定部２０２のＸ軸の設定欄２０８に操作入力部Ｄキーボードで「３００」（ｍｍ）という数値を入力し、同キーボードで［Ｅｎｔｅｒ］キーを押下する（入力前の数値は「４００」）。ここでキーボードの［Ｅｎｔｅｒ］キーを押下すると、ワーク１０３のノードの編集の場合、ＣＰＵ３３は、図１６（ｂ）のように相対値設定部２０２の入力が絶対値設定部２０１にコピーして表示させる。
【０２３６】
ここで、上記の数値指定によるワーク１０３の配置変更は、例えば図１４（ａ）の位置から図１４（ｂ）の仮想環境画面１０においては、右側の位置へワーク１０３を移動する操作であるものとする。
【０２３７】
上記のように、ノードの入力フィールドの１つに入力が行われ、［Ｅｎｔｅｒ］キーが押下されると、ＣＰＵ３３は編集内容に応じて当該のノードの位置姿勢データを変更するとともに、この編集に影響を受けるノードの教示点の新たな位置姿勢を演算する。
【０２３８】
図１１（ａ）のようなノード構造でワーク１０３、教示点１０９（Ｐ０１０）、１１０（Ｐ１１０）が格納されている場合には、これら教示点１０９、１１０の位置姿勢を演算する。
【０２３９】
まず、図１３のステップＳ２１において、行われた編集がＷｏｒｋのツリーに関連した教示点の編集か否かを判断する（モデル判断処理）。ステップＳ２１が肯定された場合にはステップＳ４に移行する前にステップＳ２２を実行し、否定された場合にはそのままステップＳ４に移行する。
【０２４０】
例えば、基準となる教示点１０９およびオフセット教示点１１０の場合は、ワーク１０３の下位のノードに格納されているため、ステップＳ２２が実行される。このステップＳ２２では、ベース座標系（１０４）においてロボット１０１から基準となる教示点１０９までの相対値を計算する（ベース相対値計算処理、Ｓ２２）。
【０２４１】
続くステップＳ４〜Ｓ６は、図３、図１０、図１２などで説明したものと同様の処理対象の教示点のデータ表現に係る座標系の判定処理である。
【０２４２】
まず、ステップＳ４においては、当該の教示点の位置姿勢データとともに格納されている座標系データが示す座標系がツール座標系１０５か否かを判断する。
【０２４３】
ステップＳ４の判定結果がツール座標系１０５であれば、ステップＳ５に進み、図３（あるいは図１２）において説明したのと同様にツール座標系１０５の姿勢計算を実行する（関節値計算処理）。
【０２４４】
また、ステップＳ４の判定結果がベース座標系１０４であれば、ステップＳ６に進み、図３（あるいは図１２）において説明したのと同様にベース座標系１０４の姿勢計算を実行する（関節値計算処理）。
【０２４５】
続いて、位置姿勢演算の結果に基づき表示装置Ｃの表示画面Ｅの表示を更新する（表示手段）。ステップＳ７では、基準となる教示点１０９、ないしオフセット教示点１１０にロボット１０１の基準部位を移動させるために必要な各関節値がハードウェアや仕様、規約により定まる制約内か否かを判断する（制約判断処理）。
【０２４６】
ステップＳ７でロボット１０１の位置姿勢（各関節値の状態）が制約内の判定であればステップＳ９に進み、ＣＰＵ３３は位置姿勢演算の結果に応じて表示装置Ｃの表示画面Ｅを更新する（正常系表示処理）。
【０２４７】
図１４（ｂ）は、ワーク１０３の配置編集確定後のワーク１０３と基準となる教示点１０９、オフセット教示点１１０の仮想環境画面１０における表示状態を示している。ステップＳ７でロボット１０１の位置姿勢（各関節値の状態）が制約内の判定であれば、ＣＰＵ３３は仮想環境画面１０の表示を図１４（ｂ）の状態から図１４（ｃ）の状態に更新する。
【０２４８】
ユーザが上記のように切り替えられた表示装置Ｃの表示画面Ｅを視認して確認すると、パラメータ設定画面２０の確定ボタン２０９を操作入力部Ｄのマウスでクリックする。これに応じてＣＰＵ３３はステップＳ２５で教示点１０９、１１０の編集を終了する。また、パラメータ設定画面２０のキャンセルボタン２１０を操作入力部Ｄのマウスでクリックすると、ＣＰＵ３３は編集内容を破棄し、仮想環境画面１０を図１４（ａ）の状態に戻す。
【０２４９】
また、上記のワーク１０３の配置変更に関する編集完了後、管理画面４０のワーク１０３に関連した基準となる教示点１０９がマウスのクリックなどにより選択できるようにしておく。この教示点１０９の選択操作に応じて、ＣＰＵ３３は基準となる教示点１０９に移動させた状態のロボット１０１の位置姿勢を仮想環境画面１０に表示させることができる。
【０２５０】
以上のように、本実施例によれば、ノードを階層的に格納するツリー構造でロボットの教示データを格納するようにしているため、ワーク１０３のノードの下位に教示点１０９、１１０を格納することができる。このため、ワーク１０３のノードの位置姿勢を変更すると、ＣＰＵ３３は関連する下位ノードの教示点１０９、１１０の位置姿勢データを自動的に計算し、ロボット１０１の位置姿勢（ないしそれを可能にする各関節値）を自動的に計算することができる。さらに、ＣＰＵ３３はロボット１０１の位置姿勢（ないしそれを可能にする各関節値）がハードウェアや仕様、規約により定まる制約内か否かを判断することができる。
【０２５１】
なお、上記のワーク１０３の配置変更後に、教示点１０９ないし１１０にロボット１０１の位置姿勢が取れない場合について説明する。
【０２５２】
例えば、図１６（ｃ）は、パラメータ設定画面２０に対するワーク１０３の配置変更に係わる他の操作を示している。この図１６（ｃ）では、相対値設定部２０２のＸ軸の設定欄２０８に操作入力部Ｄのキーボードで「５００」という数値を入力して［Ｅｎｔｅｒ］キーを押下している。この操作は、図１３のステップＳ２４により処理される。
【０２５３】
このＸ軸方向に「５００」（ｍｍ）のワーク１０３の位置変更は、上述の図１６（ｂ）の「３００」（ｍｍ）の場合よりも大きな距離の移動である。そして、ここではこのＸ軸方向に「５００」（ｍｍ）のワーク１０３の位置変更に応じて位置姿勢演算を行うと、関節値のいずれかがロボット１０１のハードウェアや仕様、規約などにより定まる制約範囲を超過するものとする。
【０２５４】
このため、上記のＸ軸方向に「５００」（ｍｍ）のワーク１０３の位置変更を行うと、図１３のステップＳ７（制約判断処理）からステップＳ１９（異常系表示処理）への遷移が生じる。そしてステップＳ９（異常系表示処理）では、ＣＰＵ３３は表示装置Ｃの表示画面Ｅを用いてエラー表示を行う。このエラー表示の一例としては、例えば図１１（ｂ）に示すように、管理画面４０を用いて、管理画面４０を用いて、移動できない教示点であることを示すために、教示点１０９および１１０にマーク１０８（例えば図示のようなｘ印）を表示する。その後の編集終了処理（ステップＳ２５）については、上述と同様に行う。
【０２５５】
なお、ロボット１０１の位置姿勢が取れないワーク１０３の配置変更を行った場合の仮想環境画面１０については、図１５（ａ）、（ｂ）のように更新することが考えられる。図１５（ａ）は図１４（ａ）と同等で、ワーク１０３の配置変更に係る編集処理を行う前の仮想環境画面１０である。
【０２５６】
図１５（ａ）の状態から、上述のワーク１０３の配置変更に係る編集処理を行うと、例えばＣＰＵ３３は位置姿勢演算の実行中は、図１５（ｂ）のように指定された移動量だけワーク１０３を移動させた状態に仮想環境画面１０を更新する。なお、図１５（ｂ）では、理解を容易にするため、図１４（ｂ）、（ｃ）とは逆方向にワーク１０３の移動方向を取っている。
【０２５７】
そして、当該の編集操作に係る位置姿勢演算が終了し、制約範囲に関する判定に入った段階で、図１３のステップＳ７（制約判断処理）からステップＳ１９（異常系表示処理）への遷移が生じる。この場合には、ＣＰＵ３３は、上述のように管理画面４０を図８（ｂ）のように更新するとともに、仮想環境画面１０の表示状態を図１５（ｂ）から図１５（ａ）の状態に復帰させる。その際、仮想環境画面１０全体ないしその一部を点滅（フラッシュ）させるような警告表現を併用してもよい。
【０２５８】
以上のようにして、本実施例ロボット制御データ（教示データ）としての位置姿勢データのノードを階層的なツリー構造によって記憶装置３５に格納するデータ構造を採用している。この構造によれば、ロボット装置に係る位置姿勢データのみならず、上記のようにワーク１０３に関する位置姿勢データも、同じツリー構造の中に格納できる。このためワーク１０３に関する編集を行なった場合に、直ちにツリー構造の教示データ中に他に関連する教示データ（例えばワーク１０３の教示点１０９とそのオフセット教示点１１０）があれば、自動的にそれらの関連する教示データを再計算できる。さらに、ワーク１０３に関する編集に応じてロボット１０１の位置姿勢演算を行って、ハードウェアや仕様、規約などにより定まる制約に関する妥当性チェックを自動的に実行できる。
【０２５９】
そして、教示データおよびロボット１０１の位置姿勢の再計算の結果、問題が無ければ、編集後、直ちに表示装置Ｃの仮想環境画面１０、パラメータ設定画面２０、管理画面４０などから成る表示画面を編集操作に応じた内容に自動的に更新することができる。このため、ユーザ（作業者）はワーク１０３に関連する編集内容ないしその結果をリアルタイムで確認できるようになり、人為的なミスの低減、および工数の削減を図ることが出来る。
【０２６０】
なお、図１１（ａ）のロボット１０１（ＲＯＢＯＴ）のノードの下位には、基準となる教示点１０６と、オフセット教示点１０７が格納されている。そして、教示点１０６（Ｐ００１）がワーク１０３の特定位置に相当する上記の教示点１０９（Ｐ０１０）に対応し、オフセット教示点１０７（Ｐ１００）がオフセット教示点１１０（Ｐ１１０）に対応するよう取り扱うことが考えられる。このように同じ実体記憶として、基準となる教示点とそのオフセット教示点の組が、ＲＯＢＯＴのツリーとＷｏｒｋのツリーの両方に格納されているように取り扱えると好ましい。これによりユーザが容易にロボット制御データ全体の構造を把握できるようになると考えられる。
【０２６１】
その場合、それぞれ対応する教示点１０６と１０９、および教示点１０７と１１０は、一方を編集したら、他の対応する教示点の内容も同じように自動編集されるようになっていると便利である。このような取り扱いを可能にする手法としては、例えば対応する教示点１０６と１０９（または教示点１０７と１１０）の実体を記憶装置３５上の同じ１つのメモリセルに格納する。そして、この１つのメモリセルのアドレスポインタをＲＯＢＯＴおよびＷｏｒｋのツリーに、ノードＰ００１とＰ１００（あるいはＰ０１０とＰ１１０）のノードとして格納する。このような構造によれば、ノードＰ００１とＰ１００（あるいはＰ０１０とＰ１１０）のいずれかのポインタ経由で、いずれの編集を指示しても同じメモリセルに格納された実体データを編集することができる。
【０２６２】
このように同じメモリデータの実体に異なる複数のポインタ（ないし名前）を介してアクセスする構造を利用すれば、教示データを格納するツリー構造の異なる位置に必要に応じて別名（ａｌｉａｓ）のノードを用意することができる。これによって、ユーザが容易にロボット制御データ全体の構造を把握でき、１つの同じデータにツリー構造中の複数の異なる位置から到達し、その内容を確実に編集することができる。
【０２６３】
なお、同じデータの実体に異なる複数の名前を介してアクセスするための構成は、上記のアドレスポインタに限定されるものではない。例えば、各種ファイルシステムにおいて利用されているジャンクションやシンボリックリンク、ハードリンクなどの「リンク」のメカニズムを利用してもよい。その場合には、特定のノードを１つのファイルとして記憶装置３５上に配置されたファイルシステムに格納し、そのリンクを別のノードとしてデータ構造のツリー上の他の位置に配置する。
【実施例３】
【０２６４】
以下、本発明の実施例３に係る情報処理装置および情報処理方法につき、図１７から図２０を参照して説明する。以下では、上述の実施例１とハードウェア的な構成、および表示画面の構成などのうち基本的な部分は同一であるものとし、その詳細な説明は省略する。また、以下の実施例において、同一ないし相当する部材には同一の参照符号を用い、その詳細な説明は省略するものとする。
【０２６５】
上記の実施例１、および実施例２では、ノード管理されている作業空間上の親から子のモデル情報となる相対値を編集した場合の処理について説明した。しかし、編集は必ずしも相対値で設定するとは限らない。
【０２６６】
例えば、ツール座標系を選択してオフセット教示点１０７を作成している時に、複雑な動作の教示を行う場合、状況によって作業空間上などの絶対座標系（例えばベース座標系）の絶対値で設定しなければならない場合が存在する。
【０２６７】
そこで、パラメータ設定画面２０の絶対値設定部２０１の操作で、作業空間上の絶対座標系を用いた絶対値でオフセット教示点１０７やオフセット教示点１１０の操作を行う処理について説明する。
【０２６８】
絶対値設定部２０１の操作での編集処理については、対象となる教示点の種類によって異なる処理と表示を行う必要がある。そのため、以下では、「ツール座標系１０５を選択したオフセット教示点１０７の場合」、「ベース座標系を選択したオフセット教示点１０７の場合」、「オフセット教示点１１０の場合」３つのケースについて説明する。
【０２６９】
（ツール座標系１０５が選択されたオフセット教示点１０７の絶対値編集）
まず、１つ目のケース、ツール座標系１０５が選択されたオフセット教示点１０７の絶対値編集の手順と制御について、図１１、および図１７から図１９を用いて説明する。
【０２７０】
図１７は、オフセット教示点１０７の絶対値編集を行う場合の制御手順を示している。
【０２７１】
図１７のステップＳ１２では、管理画面４０（図１１（ａ））のオフセット教示点１０７を選択して、編集を開始する。選択の方法は上述と同様で、管理画面４０上の教示点１０７（Ｐ１００）のノードを操作入力部Ｄのマウスでクリックすることなどにより行う。
【０２７２】
図１８（ａ）、（ｂ）は、本実施例において、オフセット教示点１０７の絶対値編集を行っている場合に仮想環境画面１０に表示されるロボット１０１の位置姿勢を示している。編集開始時には、オフセット教示点１０７は、例えば図１８（ａ）に示すように基準となる教示点１０６に対して定義されている。この時のオフセット（相対距離）は、例えば図示のようにツール１０２がワーク１０３に到達するような距離に取られている。このため、仮想環境画面１０では、ロボット１０１は図示のようにツール１０２がワーク１０３に到達するような位置姿勢で表示されている。
【０２７３】
また、パラメータの数値設定では、表示装置Ｃの表示画面Ｅに図１９（ａ）〜（ｃ）に示すようなパラメータ設定画面２０を表示して用いる。
【０２７４】
図１７のステップＳ２６において、ユーザはオフセット教示点１０７の絶対値を編集する（パラメータ設定手段）。図１９（ａ）は、このとき、パラメータ設定画面２０の絶対値設定部２０１の設定欄２０８へアクセスする操作を示している。即ち、図示のように、絶対値設定部２０１のＸ軸の設定欄２０８を操作入力部Ｄのマウスのカーソル２０５でクリックする。
【０２７５】
なお、図１９（ａ）の段階で、教示点名設定部２１２の表示は教示点１０７に相当する「Ｐ１００」に切り替えられている。また、教示点設定部２０３の値は、基準となる教示点１０６に対応する「Ｐ００１」に切り替えられている。また、座標系選択部２０４の表示の通り、座標系としてはツール座標系が選択されている。
【０２７６】
続いて、ユーザは図１９（ｂ）に示すように絶対値設定部２０１のＸ軸の設定欄２０８の内容を「４００」から「３００」に変更する。ここでは、絶対値設定部２０１のＸ軸の設定欄２０８に操作入力部Ｄのキーボードで「３００」という数値を入力し、［Ｅｎｔｅｒ］キーを押下する。既に入力されている「４００」の値は、「３００」の入力前にマウスにより範囲選択しておくか、キーボードの削除キーで削除しておく。キーボードの［Ｅｎｔｅｒ］キーが押下れ、入力が確定すると、ＣＰＵ３３の計算部３４の機能により位置姿勢演算を行う（姿勢計算手段）。
【０２７７】
まず、図１７のステップＳ２１において、操作対象のノードがワーク１０３に関連した教示点か判断する（モデル判断処理）。この例で操作しているノードは教示点１０７であり、ロボット１０１に関連した教示点のため、ステップＳ２２をバイパスしてステップＳ４に進む。
【０２７８】
ステップＳ４では、当該の教示点（１０７）について選択されている座標系がツール座標系１０５か否かを判断する（Ｓ４）。ここで選択されている座標系が図１９（ａ）のようにツール座標系１０５の場合はステップＳ１４に進み、実施例１で説明したツール座標系１０５の相対値計算を実行する（相対値計算処理）。この相対値計算結果では、オイラー角変換を行い、ツール座標系１０５のオフセットとなる相対値（Ｘ、Ｙ、Ｚ、α、β、γ）を計算する。
【０２７９】
続いてステップＳ５において、実施例１の図３で説明したのと同様にツール座標系１０５における位置姿勢演算を行う（関節値計算処理）。そして、計算結果に基づき、表示装置Ｃの表示画面Ｅの表示を更新する（表示手段）。
【０２８０】
ここでは、まず、ステップＳ７において、オフセット教示点１０７の各関節値がハードウェアや仕様、規約などにより定まる制約内か判断する（制約判断処理）。ステップＳ７で制約内の場合、ステップＳ９に進み、ＣＰＵ３３は姿勢演算結果に基づき表示装置Ｃの表示画面Ｅを更新する（正常系表示処理）。
【０２８１】
更新内容は、ツール座標系１０５方向のオフセットとなる相対値（Ｘ、Ｙ、Ｚ、α、β、γ）を相対値設定部２０２に、また、逆運動学計算によるロボット１０１の各軸の関節値の計算結果を仮想環境画面１０に反映させて表示を更新する。
【０２８２】
なお、ステップＳ７で制約外の場合は、ステップＳ８に進み、ロボット１０１の姿勢が取れない旨を表示すべく、前述の図８のエラー画面５０を表示し（異常系表処理）、編集前の状態に戻る。
【０２８３】
図１８（ｂ）は、上記の編集後において、ＣＰＵ３３が仮想環境画面１０に表示させるオフセット教示点１０７のロボット１０１の位置姿勢の更新の様子を示している。
【０２８４】
また、図１９（ｃ）は、編集後のオフセット教示点１０７のパラメータを示している。
図１９（ａ）〜（ｂ）の操作では、絶対値設定部２０１でＸ座標値を「４００」から「３００」へ変更している。この時のツール座標系１０５方向のオフセットとなる相対値設定部２０２の表示は、上記の相対値計算に基づき、Ｘ座標値が「０」から「１００」に変更されている。
【０２８５】
なお、図１７のステップＳ１６の編集終了時点におけるパラメータ設定画面２０の確定ボタン２０９およびキャンセルボタン２１０の用法については、上述の実施例と同様である。
【０２８６】
以上のように、ベース座標系を選択したオフセット教示点１０７の絶対値のパラメータを変更した場合でも、作業者は絶対値編集作業と同時に位置姿勢と相対値のパラメータをすぐに確認できるようになり、確認に必要な工数の削減を図ることができる。即ち、実施例１と併せて考えれば、本システムでは、オフセット教示点１０７を編集する場合、相対値を用いても絶対値を用いてもオフセット教示点１０７の編集、およびそれに基づく表示画面Ｅの更新を適切に実行することができる。
【０２８７】
（ベース座標系１０４が選択されたオフセット教示点１０７の絶対値編集）
次に、２つ目のケース、ベース座標系１０４が選択されたオフセット教示点１０７の絶対値編集について、図１１、および図１７、図１８、図２０を用いて説明する。以下では、制御手順については、上記と同じ図１７を参照する。また、パラメータ設定画面２０については、図２０（ａ）〜（ｃ）の表示画面を用いる。
【０２８８】
まず、管理画面４０（図１１（ａ））のオフセット教示点１０７を選択して、編集を開始する（Ｓ１２）。この選択の手法は、前述同様、管理画面４０上の教示点１０７（Ｐ１００）のノードを操作入力部Ｄのマウスでクリックすることなどにより行う。
【０２８９】
本例で行う絶対値編集操作は、上記のツール座標系が選択されたオフセット教示点１０７の絶対値編集と同等のものである。従って、仮想環境画面１０については、図１８（ａ）、（ｂ）の表示が本例でも通用する。
【０２９０】
本例では、パラメータの数値設定では、表示装置Ｃの表示画面Ｅに図２０（ａ）〜（ｃ）に示すようなパラメータ設定画面２０を表示して用いる。
【０２９１】
図１７のステップＳ２６において、ユーザはオフセット教示点１０７の絶対値を編集する（パラメータ設定手段）。図２０（ａ）は、このとき、パラメータ設定画面２０の絶対値設定部２０１の設定欄２０８へアクセスする操作を示している。即ち、図示のように、絶対値設定部２０１のＸ軸の設定欄２０８を操作入力部Ｄのマウスのカーソル２０５でクリックする。
【０２９２】
なお、図２０（ａ）の段階で、教示点名設定部２１２の表示は教示点１０７に相当する「Ｐ１００」に切り替えられている。また、教示点設定部２０３の値は、基準となる教示点１０６に対応する「Ｐ００１」に切り替えられている。また、座標系選択部２０４の表示の通り、座標系としてはベース座標系が選択されている。
【０２９３】
続いて、ユーザは図２０（ｂ）に示すように絶対値設定部２０１のＸ座標値の設定欄２０８の内容を「４００」から「３００」に変更する。ここでは、絶対値設定部２０１のＸ軸の設定欄２０８に操作入力部Ｄのキーボードで「３００」という数値を入力し、［Ｅｎｔｅｒ］キーを押下する。既に入力されている「４００」の値は、「３００」の入力前にマウスにより範囲選択しておくか、キーボードの削除キーで削除しておく。キーボードの［Ｅｎｔｅｒ］キーが押下れ、入力が確定すると、ＣＰＵ３３の計算部３４の機能により位置姿勢演算を行う（姿勢計算手段）。
【０２９４】
まず、図１７のステップＳ２１において、操作対象のノードがワーク１０３に関連した教示点か判断する（モデル判断処理）。この例で操作しているノードは教示点１０７であり、ロボット１０１に関連した教示点のため、ステップＳ２２をバイパスしてステップＳ４に進む。
【０２９５】
ステップＳ４では、当該の教示点（１０７）について選択されている座標系がツール座標系１０５か否かを判断する（Ｓ４）。ここで選択されている座標系が図２０（ａ）のようにベース座標系１０４の場合はステップＳ１５に進み、実施例１で説明したベース座標系１０４の相対値計算を実行する（相対値計算処理）。この相対値計算結果では、オイラー角変換を行い、ベース座標系１０４におけるオフセットとなる相対値（Ｘ、Ｙ、Ｚ、α、β、γ）を計算する。
【０２９６】
続いてステップＳ６において、実施例１の図３で説明したのと同様にベース座標系１０４における位置姿勢演算を行う（関節値計算処理）。そして、計算結果に基づき、表示装置Ｃの表示画面Ｅの表示を更新する（表示手段）。なお、ステップＳ４でツール座標系が選択されている場合には、前述同様にステップＳ１４でツール座標系の相対値計算を行い、それに基づきステップＳ５でツール座標系の姿勢計算が行われる。
【０２９７】
続いて、ステップＳ７において、オフセット教示点１０７の各関節値がハードウェアや仕様、規約などにより定まる制約内か判断する（制約判断処理）。ステップＳ７で制約内の場合、ステップＳ９に進み、ＣＰＵ３３は姿勢演算結果に基づき表示装置Ｃの表示画面Ｅを更新する（正常系表示処理）。
【０２９８】
更新内容は、ベース座標系１０４方向のオフセットとなる（Ｘ、Ｙ、Ｚ、α、β、γ）を相対値設定部２０２に、また、逆運動学計算によるロボット１０１の各軸の関節値の計算結果を仮想環境画面１０に反映させて表示を更新する。
【０２９９】
なお、ステップＳ７で制約外の場合は、ステップＳ８に進み、ロボット１０１の姿勢が取れない旨を表示すべく、前述の図８のエラー画面５０を表示し（異常系表処理）、編集前の状態に戻る。
【０３００】
図１８（ｂ）は、上記の編集後において、ＣＰＵ３３が仮想環境画面１０に表示させるオフセット教示点１０７のロボット１０１の位置姿勢の更新の様子を示している。
【０３０１】
また、図２０（ｃ）は、編集後のオフセット教示点１０７のパラメータを示している。
図２０（ａ）〜（ｂ）の操作では、絶対値設定部２０１でＸ座標値を「４００」から「３００」へ変更している。この時のベース座標系１０４方向のオフセットとなる相対値設定部２０２の表示は、上記の相対値計算に基づき、Ｘ座標値が「０」から「−１００」に変更されている。ここで、先のツール座標系が選択されたオフセット教示点１０７の絶対値編集の場合と異なり、相対値設定部２０２のＸ座標値が負値となっている。これは、例えば図１８（ａ）、（ｂ）のようなロボット１０１の姿勢ではベース座標系１０４とツール座標系１０５がＺ軸の正方向が正対するような姿勢となっていることによる。
【０３０２】
なお、図１７のステップＳ１６の編集終了時点におけるパラメータ設定画面２０の確定ボタン２０９およびキャンセルボタン２１０の用法については、上述の実施例と同様である。
【０３０３】
以上のように、ベース座標系を選択したオフセット教示点１０７の絶対値のパラメータを変更した場合でも、作業者は絶対値編集作業と同時に位置姿勢と相対値のパラメータをすぐに確認できるようになり、確認に必要な工数の削減を図ることができる。先の例と併せて考えれば、本システムでは、オフセット教示点１０７を編集する場合、その表現がツール座標系でもベース座標系でもオフセット教示点１０７の同等の操作で極めて容易に教示データを編集できる。そして、編集操作に基づき、直ちに編集内容に基づき、表示画面Ｅの更新を適切に実行することができる。
【０３０４】
（ワーク１０３に関連したオフセット教示点１１０の絶対値編集）
次に、絶対値編集に関する最後のケース、ワーク１０３に関連したオフセット教示点１１０の絶対値編集について説明する。オフセット教示点１１０の絶対値編集は、上記のオフセット教示点１０７の絶対値編集の場合と基本的には同等であるため、上記の２つの絶対値編集の場合と異なる部分を中心に説明する。
【０３０５】
ワーク１０３に関連したオフセット教示点１１０の絶対値編集の制御については図１７の制御手順を用いることができる。管理画面４０については、例えば図１１（ａ）の表示が該当する。また、通常、ワーク１０３に関連したオフセット教示点１１０に関してはベース座標系の値が用いられる。このため、パラメータの数値入力については、ベース座標系の絶対値編集で参照した図２０（ａ）〜（ｃ）に示したものと同等の設定画面２０の表示を用いることができる。
【０３０６】
まず、管理画面４０（図１１（ａ））のオフセット教示点１１０を選択して、編集を開始する（図１７のステップＳ１２）点は上述の例と同様である。これにより、パラメータ設定画面２０（例えば図２０（ａ））の教示点名設定部２１２の表示は、教示点１１０に相当する「Ｐ１１０」に切り替えられている。また、教示点設定部２０３の値は、基準となる教示点１０９に対応する「Ｐ０１０」に切り替えられることになる。また、ワーク１０３以下のノードでは、座標系としてはベース座標系が選択されているものとする。
【０３０７】
ここで、例えば基準となる教示点１０９およびオフセット教示点１１０が、前述の実施例の基準となるロボット側のノードの教示点１０６およびオフセット教示点１０７と同等であるものとする。その場合には、絶対値設定部２０１の数値の並びは図２０（ａ）（〜（ｃ））のものがそのまま通用する。
【０３０８】
図１７のステップＳ２６においては、上述のオフセット教示点１０７の絶対値編集で説明したのと同様の操作によりユーザがパラメータ設定画面２０のオフセット教示点１１０の絶対値を編集する（パラメータ設定手段）。ここで、ユーザの操作も、上述の例と同様の絶対値設定部２０１のＸ座標値の設定欄２０８の内容を「４００」から「３００」に変更する内容であるものとする。操作入力部Ｄのキーボードでこの絶対値設定部２０１のＸ座標値の変更操作を行い、キーボードの［Ｅｎｔｅｒ］キーを押下すると、ＣＰＵ３３の計算部３４の機能により位置姿勢演算を行う（姿勢計算手段）。
【０３０９】
続いて、図１７のステップＳ２１において、当該のオフセット教示点１１０がワーク１０３に関連した教示点か判断する（モデル判断処理）。本例では、オフセット教示点１１０の上位の基準となる教示点１０９は、ワーク１０３に関連した教示点であるからステップＳ２２に進む。ステップＳ２２では、ロボット１０１のベース座標系１０４からの相対値を計算する（ベース座標系の相対値計算）。
【０３１０】
ステップＳ２２のベース座標系の相対値計算移行の制御は、前述のオフセット教示点１０７に関する絶対値編集の例と同様に進む。
【０３１１】
以上のように、本システムによれば、ワーク１０３に関連したオフセット教示点１１０の絶対値のパラメータの変更もロボット１０１のノードツリーにあるオフセット教示点１０７の場合と同様に行える。この場合も、作業者は絶対値編集作業と同時に位置姿勢と相対値のパラメータをすぐに確認でき、確認に必要な工数の削減を図ることができる。
【０３１２】
先の例と併せて考えれば、本システムでは、ワーク１０３のノードツリーにあるオフセット教示点１１０の場合でも、ロボット１０１のノードツリーにあるオフセット教示点１０７の場合でも、同等の操作で極めて容易に教示データを編集できる。そして、編集操作に基づき、直ちに編集内容に基づき、表示画面Ｅの更新を適切に実行することができる。
【実施例４】
【０３１３】
以下、本発明の実施例４に係る情報処理装置および情報処理方法について、図２１、図２２を参照して説明する。
【０３１４】
実施例１から実施例３では、ロボット制御データ（教示データ）としての教示点の位置姿勢データの編集をパラメータ設定画面２０での相対値や絶対値の数値入力により行う操作方式を示した。
【０３１５】
位置姿勢データの入力ないし編集に係るその他の操作方式としては、操作入力部Ｄ（ないし仮想環境画面１０）に関連して、仮想環境画面１０に表示されているロボット１０１の位置姿勢を変更するＧＵＩ操作手段を設ける構成が考えられる。その場合、操作入力部Ｄの操作手段によって行われたロボット装置の位置姿勢の変更に応じて、仮想環境画面１０のロボット１０１の仮想表示を更新し、また、パラメータ設定画面２０の数値表示の内容を更新することができる。
【０３１６】
このような操作手段としては、図２２（ａ）、（ｂ）に示すように、仮想環境画面１０に、操作入力部Ｄのポインティングデバイス（例えばマウス）のカーソル２０５で操作可能な操作ハンドル１１１を表示させるＧＵＩ構成が考えられる。
【０３１７】
以下、情報処理装置Ａにおいて、上記のような操作ハンドル１１１を用いた位置姿勢データの入力ないし編集を行う構成および制御につき、図２１、図２２（ａ）、（ｂ）、図２５、および実施例２の図１１を用いて説明する。なお、以下では、操作ハンドル１１１でロボット１０１の仮想表示を操作することにより、オフセット教示点１０７を編集する場合につき説明するが、他の教示点、例えばオフセット教示点１１０の場合も同様の処理で行うことができる。
【０３１８】
図２１は、操作ハンドル１１１による操作ハンドル１１１を用いて教示点の入力ないし編集を行う場合の制御手順を示している。
【０３１９】
本実施例では、操作ハンドル１１１でロボット１０１の仮想表示を操作することにより、オフセット教示点１０７を編集する。そのため、ユーザは、まず図２１のステップＳ１２において、管理画面４０（図１１（ａ））のオフセット教示点１０７を選択して、編集開始を指定する。この時の操作方式としては、上述同様に操作入力部Ｄのマウスのカーソル（ポインタ）で管理画面４０（図１１（ａ））のオフセット教示点１０７をクリックする方式を用いることができる。
【０３２０】
続いて、ユーザはステップＳ２７において、操作入力部Ｄのマウスのカーソル（ポインタ）で操作ハンドル１１１を操作し、ロボット１０１の位置姿勢を変更する。操作ハンドル１１１は、例えば図２２（ａ）に示すようにロボット１０１の先端の部位に重畳表示する。操作ハンドル１１１は、例えば図示のようにロボット１０１先端のツール１０２の上にワイヤフレーム表示された表示オブジェクトとすることができる。
【０３２１】
この操作ハンドル１１１の表示オブジェクトは、例えば操作ハンドル１１１は、現在設定しているオフセット教示点１０７の座標系方向を表示するよう図形的に構成されたリング状のオブジェクトとすることができる。
【０３２２】
また、操作ハンドル１１１は、例えば操作入力部Ｄのマウスのカーソル（ポインタ）でほぼ直線的に画面上でクリック、ドラッグできるよう構成することもできる。このクリック、ドラッグ操作の場合は、例えばロボット１０１の先端のツール１０２の配置されるフランジ面中心などに設定された基準部位を仮想環境画面１０中の３Ｄ空間中の任意の位置に移動させる。
【０３２３】
また、この操作ハンドル１１１による移動操作により、本実施例のようにオフセット教示点１０７を操作する場合は、例えばロボット１０１の基準部位がオフセット教示点１０７と関係づけられる。この場合には、オフセット教示点１０７を操作すると、オフセット教示点１０７と関係づけられたロボット１０１の基準部位が移動し、これに同期してロボット１０１の位置姿勢が変化するよう、ＣＰＵ３３による制御を行う。
【０３２４】
なお、本実施例のように操作ハンドル１１１によりオフセット教示点（１０７）を操作する場合には、操作ハンドル１１１で指定する移動（量）を絶対値ないし相対値のいずれかに対応づけられていると便利である。ここで「相対値」は例えばツール座標系１０５のような相対座標系における座標値（位置姿勢データ）である。また、「絶対値」は例えばベース座標系１０４のような絶対座標系における座標値（位置姿勢データ）である。
【０３２５】
例えば、図２１の手順を開始した時に選択した教示点に既に相対値（または絶対値）が割り当てられていれば、操作ハンドル１１１で指定する移動量を相対値（または絶対値）によって取り扱う。また、操作入力部Ｄの特定操作によって、操作ハンドル１１１の操作により入力する移動量が相対値（または絶対値）であるかを指定できるようにしておいてもよい。
【０３２６】
以下では、便宜上、以上のようにして相対値を入力する状態に制御されている操作ハンドル１１１を「相対値ハンドル」、絶対値を入力する状態に制御されている操作ハンドル１１１を「絶対値ハンドル」という。
【０３２７】
そして上記の操作ハンドル１１１による移動操作が行なわれると、ＣＰＵ３３はオフセット教示点１０７（基準部位）の移動先の位置に応じてロボット１０１の各関節の角度を変更する位置姿勢演算を行う。ＣＰＵ３３はこの位置姿勢演算の結果に応じて仮想環境画面１０に表示するロボット１０１の位置姿勢を変化させる。なお、以上のような操作ハンドル１１１を用いたＧＵＩの細部は周知の技術であるから、ここでは上記以上の詳細な説明は省略する。
【０３２８】
図２２（ａ）〜（ｂ）では、操作ハンドル１１１を右方にクリック、ドラッグしている。そして、図２２（ａ）では実線、図２２（ｂ）では破線で示した位置姿勢から、図２２（ｂ）に実線で示した位置姿勢にロボット１０１の位置姿勢を変化させる様子を示してある。マウスのドラッグ操作期間中では、連続的な移動を指定し、移動終了は、マウスのボタンをリリースして指定する。
【０３２９】
なお、操作ハンドル１１１は仮想環境画面１０中に常時表示してもよいし、また、（例えば仮想環境操作モード、３Ｄ操作モードのような操作モードを指定する）操作入力部Ｄの設定操作に応じて必要なタイミングでのみ表示するようにしてもよい。
【０３３０】
ステップＳ２７において、ユーザは以上のようにして操作ハンドル１１１を用いて仮想環境画面１０中に表示されたロボット１０１の位置姿勢を変化させることができる。この時、操作ハンドル１１１を用いた移動操作に応じて、ＣＰＵ３３は移動操作に応じた位置姿勢演算を行い、その演算結果に応じてロボット１０１の位置姿勢を変化させる。
【０３３１】
なお、この位置姿勢演算結果に応じてロボット１０１の位置姿勢を変化させるため画面更新は、例えば操作ハンドル１１１の微少操作ごとに行う方式が考えられる。あるいは、移動操作中はマウスのカーソル（ポインタ）と、さらに操作ハンドル１１１など小さな画面範囲で表示可能な部分のみを移動させ、マウスのリリース操作に応じてロボット１０１全体の位置姿勢を描画するような方式を用いてもよい。
【０３３２】
ステップＳ２７において、ＣＰＵ３３は、移動操作〜位置姿勢演算（姿勢計算手段）〜仮想環境画面１０の描画の更新を少なくとも上記の操作ハンドル１１１の微少操作に応じた部分について行う。
【０３３３】
なお、図２１の制御手順は、理解を容易にするために前述の図１７と同等の様式で記載されている。このため、図２１は上記のマウスのリリース操作に応じてロボット１０１全体の位置姿勢を描画するような方式に該当するようなステップ配置になっている。しかし、例えばＣＰＵ３３廻りの制御系が充分な処理能力を有している場合には、ステップＳ２７の操作ハンドル１１１の微少操作毎に、ステップＳ２８から同図最後のＳ９までの処理を繰り返し実行するようにソフトウェアを構成することができる。
【０３３４】
ステップＳ２８では、ＣＰＵ３３は、現在の操作ハンドル１１１が相対値ハンドルか（絶対値ハンドル）を判断する。ステップＳ２８において操作ハンドル１１１がツール座標系１０５方向のベクトルを表示している、即ち、相対値ハンドルの場合には、ステップＳ２９に進む。ステップＳ２９では、ＣＰＵ３３は基準となる教示点１０６からオフセット教示点１０７までの相対値に、マウスで選択したベクトル方向の移動量を加算して移動後の相対値として計算を行う。
【０３３５】
一方、ステップＳ２８において操作ハンドル１１１が絶対座標系（例えばベース座標系１０４）方向の絶対値ハンドルを表示している場合は、ステップＳ３０に進む。ステップＳ３０では、ＣＰＵ３３は絶対座標系からオフセット教示点１０７までの絶対値に、マウスで選択したベクトル方向の移動量を加算して移動後の絶対値として計算を行う。
【０３３６】
以上のようにして、移動後のオフセット教示点１０７の値（相対値または絶対値）が入力される。ステップＳ２９またはＳ３０に続いて、ステップＳ２１では、当該の教示点がワークに関連づけられた教示点か否かを判断する。そして、ステップＳ２１が肯定された場合にはステップＳ２２でロボットのベース座標系への相対値変換を行う計算を実行する。図２１において、続くステップＳ４以降の処理は、上述の図１７のステップＳ４以降の処理と同じである。ステップＳ４以降では、当該の教示点の表現がツール座標系（ベース座標系）かに応じて、ロボット１０１の位置姿勢演算を行う（ステップＳ１４、Ｓ５、ステップＳ１５、Ｓ６）。続いてハードウェアや仕様、規約などにより定まる制約内か判断し、必要に応じてエラー処理を行う（ステップＳ７、Ｓ８）。
【０３３７】
そして、制約エラーがなければ、計算結果に応じて（最終的な）表示装置Ｃの表示画面Ｅの更新を行う。即ち、操作ハンドル１１１によって行われたロボット１０１の位置姿勢の変更に応じて、仮想環境画面１０のロボット１０１の仮想表示を（最終的に）更新し、また、パラメータ設定画面２０の数値表示の内容を更新する。図２２（ｂ）の実線で示したロボット１０１の位置姿勢は、は、ロボット１０１の先端に表示された操作ハンドル１１１でオフセット教示点１０７を移動した編集後のロボット１０１の位置姿勢に対応する。また、もちろん、パラメータ設定画面２０の数値表示の内容は、前述（例えば図５や図６）同様に、オフセット教示点１０７の（操作ハンドル１１１による）編集操作に応じて更新される（ステップＳ９）。以上のようにして図２１のオフセット教示点の編集処理は終了する（ステップＳ１６）。
【０３３８】
以上のように、本実施例によれば、位置姿勢データの入力ないし編集に係るその他の操作方式としては、操作入力部Ｄ（ないし仮想環境画面１０）に関連して、仮想表示されたロボット１０１の位置姿勢を変更するＧＵＩ操作手段を設けている。そして、ユーザは、操作ハンドル１１１を用いた仮想環境画面１０上の極めて直感的な操作により、ロボット１０１（ないしそれに関連づけされた教示点）の位置（姿勢）を変更する入力、編集操作を行うことができる。そして、この仮想環境画面１０における入力、編集操作の結果は、同期的に仮想環境画面１０のロボット１０１の仮想表示に反映され、また、パラメータ設定画面２０の数値表示の内容に反映される。従って、ユーザ（作業者）は、例えば操作ハンドル１１１を操作すると同時に位置姿勢とパラメータをすぐに確認でき、確認に必要な工数の削減を図ることができる。
【実施例５】
【０３３９】
上述の実施例１〜実施例４では、位置姿勢データが例えば作業空間に対応する特定の座標系における３次元座標（あるいはさらに軸廻りの角度）によって表現されている場合、その相対値や絶対値で表現されている内容を変更する入力、編集処理を説明した。
【０３４０】
しかしながら、位置姿勢データの編集は、上記のような位置姿勢データ（３次元座標ないし軸廻りの角度）の相対値と絶対値を介してではなく、ロボット１０１の関節空間における関節値を直接変更するようなインターフェースを介して行いたい場合がある。
【０３４１】
例えば、ユーザ（作業者）にとっては、ロボット１０１が特定の姿勢となっている状態から、例えば障害物回避などの目的でその姿勢から特定の１（ないし複数の）関節を回動させる動作が直感的かつ容易に理解できる場合がある。
【０３４２】
この場合には、以下に示すように、例えば図２５（ａ）〜（ｃ）に示すようにパラメータ設定画面２０中に関節値（例えば回転角度）を変更できるような数値設定部として関節値設定部２１１を配置して、所望の関節の関節値を変更できるようにする。このような関節値設定部２１１を用いて関節値の数値設定を行った場合にも、上述同様にして関節値の編集結果に応じてロボット１０１の位置姿勢演算を行うことができ、その結果に対して上述のような制約エラーの有無を判定できる。また、関節値の編集結果に応じて、他のパラメータ設定画面２０中の表示を更新し、仮想環境画面１０中のロボット１０１の仮想表示を更新することができる。
【０３４３】
以下、パラメータ設定画面２０中に用意した関節値設定部２１１を用いてオフセット教示点１０７の入力、編集を行う場合の制御につき、図１１、および図２３〜図２５を用いて説明する。なお、以下では、オフセット教示点１０７を編集する場合につき説明するが、他の教示点、例えばオフセット教示点１１０の場合も同様の処理で行うことができる。
【０３４４】
図２３は、関節値編集を介して教示点の入力、編集を行う場合の制御手順を示している。
【０３４５】
ユーザは、まず図２３のステップＳ１２において、管理画面４０（図１１（ａ））のオフセット教示点１０７を選択して、編集開始を指定する。この時の操作方式としては、上述同様に操作入力部Ｄのマウスのカーソル（ポインタ）で管理画面４０（図１１（ａ））のオフセット教示点１０７をクリックする方式を用いることができる。
【０３４６】
図２４（ａ）は、この時、仮想環境画面１０中に仮想表示されている編集中のオフセット教示点１０７が定義されたロボット１０１の位置姿勢を示している。また、図２５（ａ）〜（ｃ）は関節値設定部２１１を有するパラメータ設定画面２０を示しており、図２５（ａ）がステップＳ１２においてオフセット教示点１０７を選択した直後の状態に相当する。
【０３４７】
図２５（ａ）〜（ｃ）のパラメータ設定画面２０は、例えば図５（ａ）〜（ｄ）（あるいは図６（ａ）〜（ｄ））のパラメータ設定画面２０に、関節値設定部２１１を追加したもので、関節値設定部２１１以外の構成は図５（図６）のものと同様である。
【０３４８】
図２５（ａ）では、パラメータ設定画面２０の教示点名設定部２１２の表示は、教示点１０７に相当する「Ｐ１００」に切り替えられている。教示点設定部２０３の値は、基準となる教示点１０６に対応する「Ｐ００１」に切り替えられている。また、座標系選択部２０４の表示の通り、座標系としてはツール座標系が選択されている。
【０３４９】
パラメータ設定画面２０の関節値設定部２１１は例えば６関節分の関節値（回転角度）を入力ないし表示する数値入力フィールドとなっている。これらの関節値は、上述の関節値演算に従い、オフセット教示点１０７の位置姿勢に対応した角度となっている。
【０３５０】
図２３のステップＳ３１において、ユーザは、関節値設定部２１１を用いて、オフセット教示点１０７に関連する任意の関節値を編集することができる（パラメータ設定手段）。例えば、図２５（ａ）のように、パラメータ設定画面２０の関節値設定部２１１設定欄２０８を操作入力部Ｄのマウスのカーソル２０５でクリックして指定する。同図では、３番の関節（図２４（ａ）、（ｂ）の関節１０１ａ）の設定欄２０８を選択している。そして、図２５（ｂ）のように、例えば操作入力部Ｄのキーボードを用いて関節値設定部２１１の設定欄２０８に数値入力を行う。ここでは「２４．８５」（図２５（ａ））であった値を「５０」に変更している。この数値入力の後、例えば操作入力部Ｄのキーボードで［Ｅｎｔｅｒ］キーを押下すると、設定欄２０８に対する数値入力が確定する。
【０３５１】
続いて、ステップＳ７において、ＣＰＵ３３は、設定した関節値がハードウェアや仕様、規約などにより定まる制約内か判断する（制約判断処理）。ここで制約外の判定の場合は、ステップＳ８に進み、ロボット１０１の姿勢が取れない旨を表示すべく、前述の図８のエラー画面５０を表示し（異常系表処理）、編集前の状態に戻る。
【０３５２】
ステップＳ７において制約内の場合は、ステップＳ３２に進み、ＣＰＵ３３の計算部３４の機能により位置姿勢演算を行う（姿勢計算手段）。ここでは、ロボット１０１の各軸の関節値より、ロボット１０１のベース座標系１０４からオフセット教示点１０７までの相対値を、順運動学計算で計算する。
【０３５３】
続いて、ステップＳ３３において、絶対座標系（例えばベース座標系）からオフセット教示点１０７までの絶対値を計算する（絶対値計算処理）。例えば次式（１３）のように、絶対座標系からロボット１０１のベース座標系１０４までの絶対値の姿勢行列Ｔ６と、Ｓ３１の計算結果となる姿勢行列Ｔ３の積より、絶対座標系からオフセット教示点１０７までの絶対値の姿勢行列Ｔ７を求める。そして、式（１３）より、オイラー角変換を行い、オフセット教示点１０７の絶対値（Ｘ、Ｙ、Ｚ、α、β、γ）を計算する。
【０３５４】
【数１３】
2020089970.tif 000015
【０３５５】
次にステップＳ４において、選択されている座標系がツール座標系１０５か判断する。
選択されている座標系がツール座標系１０５の場合はステップＳ１４に進み、ツール座標系１０５の相対値計算を実行する（相対値計算処理）。また、選択されている座標系がベース座標系１０４の場合はステップＳ１５に進み、ベース座標系１０４の相対値計算を実行する（相対値計算処理）。
【０３５６】
そしてステップＳ１４またはＳ１５の相対値計算の後、計算結果に応じて、ＣＰＵ３３は表示装置Ｃの表示画面Ｅを更新する（正常系表示処理）。この表示画面Ｅの更新においては、計算した絶対値（Ｘ、Ｙ、Ｚ、α、β、γ）をパラメータ設定画面２０の絶対値設定部２０１に表示する。また、基準となる教示点１０６からオフセット教示点１０７までの相対値を表示するよう、パラメータ設定画面２０の相対値設定部２０２の内容を更新する。また、関節値設定部２１１の設定欄２０８の各関節値により定まる位置姿勢となるよう、仮想環境画面１０のロボット１０１の仮想表示を更新する。
【０３５７】
図２４（ｂ）は、上記の処理後における関節値編集後の仮想環境画面１０の表示状態を、また、図２５（ｃ）は、関節値編集後のパラメータ設定画面２０の表示状態を示している。
【０３５８】
この例では、関節値設定部２１１で３番の関節（関節１０１ａ）の関節値のみを変更したため、仮想環境画面１０のロボット１０１の姿勢は、関節１０１ａの角度のみ変更され、オフセット教示点１０７の位置姿勢も変更された状態になっている。また、パラメータ設定画面２０では、絶対値設定部２０１、および相対値設定部２０２が関節値の変更に応じた値に変更されている。
【０３５９】
以上のように、本実施例によれば、関節値の表現によってロボット１０１ないしその関節の位置姿勢データを入力、編集することができる。そして、関節値を操作した場合でも、ユーザ（作業者）は編集作業と同時に位置姿勢と相対値のパラメータをすぐに確認できるようになり、確認に必要な工数の削減を図ることができる。
【０３６０】
なお、パラメータ設定画面２０の絶対値設定部２０１、相対値設定部２０２、関節値設定部２１１は、当然のことながら、上述のＣＰＵ３３による位置姿勢演算を介して相互に変換が可能である。従って、以上では関節値設定部２１１に入力を行う例を示したが、絶対値設定部２０１、相対値設定部２０２、関節値設定部２１１のいずれかを編集した場合には、位置姿勢演算を介して他の残りの２つを対応する値に更新できるのはいうまでもない。例えば、絶対値設定部２０１を編集した場合、姿勢計算結果より各関節値を関節値設定部２１１に表示することができる。また、相対値設定部２０２を編集した場合や、操作ハンドル１１１で編集した場合も同様に、姿勢計算結果より各関節値を関節値設定部２１１に表示することができる。
【０３６１】
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給することができる。そして、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０３６２】
Ａ…情報処理装置、Ｂ…パソコン、Ｃ…表示装置、Ｄ…操作入力部、Ｅ…表示画面、１０…仮想環境画面、２０…パラメータ設定画面、３３…ＣＰＵ、３４…計算部、４０…管理画面、５０…エラー画面、３５…外部記憶装置、１００…絶対座標系（ＲＯＯＴ）、１０１…ロボット（ＲＯＢＯＴ）、１０２…ツール（Ｔｏｏｌ）、１０３…ワーク（Ｗｏｒｋ）、１０４…ベース座標系（ＲＯＢＯＴ）、１０５…ツール座標系（ＴＣＰ）、１０６…教示点（Ｐ００１）、１０７…オフセット教示点（Ｐ１００）、１１０…オフセット教示点（Ｐ１１０）、１１１…操作ハンドル、２０１…絶対値設定部、２０２…相対値設定部、２０３…教示点設定部、２０４…座標系選択部、２０５…マウスのカーソル、２０６…教示点リスト、２０７…座標系リスト、２０８…設定欄、２０９…確定ボタン、２１０…キャンセルボタン、２１１…関節値設定部。
【図１】
2020089970.tif 000016
【図２】
2020089970.tif 000017
【図３】
2020089970.tif 000018
【図４】
2020089970.tif 000019
【図５】
2020089970.tif 000020
【図６】
2020089970.tif 000021
【図７】
2020089970.tif 000022
【図８】
2020089970.tif 000023
【図９】
2020089970.tif 000024
【図１０】
2020089970.tif 000025
【図１１】
2020089970.tif 000026
【図１２】
2020089970.tif 000027
【図１３】
2020089970.tif 000028
【図１４】
2020089970.tif 000029
【図１５】
2020089970.tif 000030
【図１６】
2020089970.tif 000031
【図１７】
2020089970.tif 000032
【図１８】
2020089970.tif 000033
【図１９】
2020089970.tif 000034
【図２０】
2020089970.tif 000035
【図２１】
2020089970.tif 000036
【図２２】
2020089970.tif 000037
【図２３】
2020089970.tif 000038
【図２４】
2020089970.tif 000039
【図２５】
2020089970.tif 000040