(57)【特許請求の範囲】
【請求項１】
３次元空間におけるロボットの位置決めを行うインタフェース装置であって、
前記３次元空間内の仮想的な球体の表面上の接点位置と該球体の半径を表すパラメータを指定することにより、該接点位置で該球体に接する接面を指定する平面指定手段と、
前記接面と表示画面とを対応付けるマッピング手段と、
前記接面における前記ロボットの画像を前記表示画面にグラフィクス表示する表示手段と、
前記パラメータの変更に伴って前記３次元空間における前記接面の位置および姿勢が変更され、前記ロボットの特定部分の現在位置と該ロボットの操作対象物上の目標位置を含む接面の画像が前記表示画面に表示されたとき、該表示画面上で該目標位置を指定し、該特定部分の可動範囲を該表示画面内に制約する位置指定手段と
を備えることを特徴とするインタフェース装置。
【請求項２】
前記表示手段は、前記パラメータとして前記球体の赤道方向の回転量、極軌道方向の回転量、および半径方向の長さを設定するための設定画面を表示し、前記平面指定手段は、該設定画面上で指定されたパラメータの値を用いて前記接面を決定することを特徴とする請求項１記載のインタフェース装置。
【請求項３】
前記表示手段は、前記目標位置が指定されたとき、該目標位置における前記ロボットの特定部分の画像をグラフィクス表示することを特徴とする請求項１または２記載のインタフェース装置。
【請求項４】
前記表示画面上で前記ロボットの特定部分の目標姿勢を指定する姿勢指定手段をさらに備えることを特徴とする請求項３記載のインタフェース装置。
【請求項５】
３次元空間におけるロボットの位置決めを行うコンピュータのためのプログラムを記録した記録媒体であって、
前記３次元空間内の仮想的な球体の表面上の接点位置と該球体の半径を表すパラメータを指定することにより、該接点位置で該球体に接する接面を指定する機能と、
前記接面と表示画面とを対応付ける機能と、
前記接面における前記ロボットの画像を前記表示画面にグラフィクス表示する機能と、
前記パラメータの変更に伴って前記３次元空間における前記接面の位置および姿勢が変更され、前記ロボットの特定部分の現在位置と該ロボットの操作対象物上の目標位置を含む接面の画像が前記表示画面に表示されたとき、該表示画面上で該目標位置を指定し、該特定部分の可動範囲を該表示画面内に制約する機能と
を前記コンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
前記プログラムは、前記パラメータとして前記球体の赤道方向の回転量、極軌道方向の回転量、および半径方向の長さを設定するための設定画面を表示する機能を前記コンピュータにさらに実現させ、該コンピュータは、該設定画面上で指定されたパラメータの値を用いて前記接面を決定することを特徴とする請求項５記載の記録媒体。
【請求項７】
前記プログラムは、前記目標位置が指定されたとき、該目標位置における前記ロボットの特定部分の画像をグラフィクス表示する機能を前記コンピュータにさらに実現させることを特徴とする請求項５または６記載の記録媒体。
【請求項８】
前記プログラムは、前記表示画面上で前記ロボットの特定部分の目標姿勢を指定する機能を前記コンピュータにさらに実現させることを特徴とする請求項７記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボットの設計、開発、制御の各段階において必要とされる操作入力に関するインタフェースを提供する装置に関する。
【０００２】
【従来の技術】
現在、産業用ロボット、実験／研究用ロボット等、様々な分野で人間の代わりに作業を行うロボットが開発され、実用化されている。これらのロボットの中でも、マニピュレータ（ロボットアーム）を持つアーム型ロボットは、人間と同じような手作業ができるという特徴を持っている。
【０００３】
マニピュレータの先端には手先効果器（エンドエフェクタ）が取り付けられており、これが、直接、作業対象物に働きかけて、対象物を把持したり、移動させたりする。代表的なエンドエフェクタとしては、対象物を把持するグリッパ（ロボットハンド）がある。
【０００４】
また、ロボットシミュレーションを行うコンピュータシステムは、ロボットのモデル化、シミュレーション演算、演算結果の可視化を主要な機能としており、そのシミュレーション対象は運動学、動力学、制御等を含む。ロボットシミュレーションについての参考書としては、「基礎ロボット工学制御編」（長谷川健介、増田良介共著、昭晃堂）や「ロボティクス」（遠山茂樹著、日刊工業新聞社）等がある。
【０００５】
アーム型ロボットの運動学シミュレーションは、順運動学（キネマティクス）シミュレーションと逆運動学（逆キネマティクス）シミュレーションの２通りに大別される。キネマティクスシミュレーションは、マニピュレータの関節角の回転量を入力データとして、エンドエフェクタの位置と姿勢のデータを出力する。これとは逆に、逆キネマティクスシミュレーションは、エンドエフェクタの位置と姿勢を入力データとして、関節角の回転量を出力する。
【０００６】
ここで、入出力データとして用いられているエンドエフェクタの位置、姿勢および関節角の回転角は、３次元空間内における連結された座標系としてモデル化され、位置、姿勢、回転角の各パラメータは、連結された座標系の相対的なパラメータとして表現される。これらの入力データによるシミュレーション結果は、一般に、３次元コンピュータグラフィクス（３次元ＣＧ）により可視化することで、感覚的に把握される。
【０００７】
【発明が解決しようとする課題】
しかしながら、従来のシミュレーション方法には次のような問題がある。
シミュレーションにおいてロボットの位置決めを行う際には、上述したように、関節角の回転量またはエンドエフェクタの位置と姿勢を入力データとして与える必要がある。これらの入力データ自身を決定するために、各座標系における回転角と移動距離を設定する必要があるが、システムの操作者（オペレータ）にとって、３次元空間内の回転と移動を感覚的に把握するのは難しい。
【０００８】
そこで、動作の把握を容易にするために、一般的には、エンドエフェクタの位置と姿勢を表す座標系を定義し、その座標系の座標軸に平行な直線、または２つの座標軸を含む平面に平行な平面を設定することが考えられる。そして、その直線または平面上をエンドエフェクタの可動範囲とし、３次元空間における位置決めを１次元または２次元の問題に簡単化する。
【０００９】
このような位置決め方法では、あらかじめ設定されたエンドエフェクタの座標系の座標軸に平行な直線、または２つの座標軸を含む平面に平行な平面上での移動は比較的容易に把握できるが、それ以外の位置決めについては、位置と姿勢のすべてのパラメータを３次元的に確定して、入力する必要がある。
【００１０】
したがって、この方法では、あらかじめ設定された座標系以外による位置決めは感覚的に把握するのが難しく、利用可能な複数の座標系を前もって設定しておく必要がある。しかし、３次元空間における任意の位置決めを行うためには、座標系の回転を考慮して無数の座標系を設定する必要があり、そのような設定は事実上不可能である。
【００１１】
また、シミュレーション結果は３次元ＣＧにより画面上に表現されるが、表示ウィンドウは２次元平面であるため、３次元の位置決めの結果を表すには適当でないという問題もある。
【００１２】
本発明の課題は、３次元空間におけるロボットの位置決めを任意に行う際に、ロボットの動作を感覚的に把握することを可能にし、操作効率を向上させるインタフェース装置を提供することである。
【００１３】
【課題を解決するための手段】
図１は、本発明のインタフェース装置の原理図である。図１のインタフェース装置は、平面指定手段１と表示手段２を備える。平面指定手段１は、３次元空間内の任意の平面を指定し、表示手段２は、指定された平面におけるロボットの画像をグラフィクス表示する。
【００１４】
例えば、平面指定手段１は、オペレータが入力するパラメータの値に応じて、３次元空間内の平面の位置および姿勢を指定する。オペレータがこのパラメータの値を動的に変更することで、平面の位置および姿勢が自由に変化し、任意の平面が設定される。表示手段２は、３次元空間内のロボットを設定された平面から見たときの画像を、３次元ＣＧにより画面上に表示する。
【００１５】
平面指定手段１による平面の設定が変化するのにしたがって、表示手段２が表示するＣＧ画像も動的に変化するため、オペレータは、３次元空間内の任意の２次元平面を自由に選択して、表示させることが可能になる。
【００１６】
ロボットのエンドエフェクタの位置決めを行う際には、その現在位置と目標位置を含む平面を表示させれば、表示された画面上で容易に目標位置を指定することができる。このとき、エンドエフェクタは表示された平面内を現在位置から目標位置まで移動すると想定されるため、オペレータは、ロボットの動作を視覚的に容易に把握することができる。
【００１７】
図１のインタフェース装置は、エンドエフェクタの位置決めを行う場合だけでなく、ロボットの他の特定部分を動作させる場合にも用いることができる。その場合、ロボットの特定部分の現在位置と目標位置を含む平面を表示させることで、ロボットの動作を容易に把握することができる。
【００１８】
例えば、図１の平面指定手段１は、後述する図３のＣＰＵ（中央処理装置）２１、メモリ２２、および入力装置２３に対応し、図１の表示手段２は、図３のＣＰＵ２１、メモリ２２、および出力装置２４に対応する。
また、本発明の別のインタフェース装置は、平面指定手段１、表示手段２、マッピング手段、および位置指定手段を備え、３次元空間におけるロボットの位置決めを行う。平面指定手段１は、３次元空間内の平面の位置および姿勢を表すパラメータを指定し、マッピング手段は、その平面と表示画面とを対応付け、表示手段２は、その平面におけるロボットの画像を表示画面にグラフィクス表示する。位置指定手段は、パラメータの変更に伴って平面の位置および姿勢が変更され、ロボットの特定部分の現在位置と該ロボットの操作対象物上の目標位置を含む平面の画像が表示画面に表示されたとき、その表示画面上でその目標位置を指定し、特定部分の可動範囲を表示画面内に制約する。
【００１９】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本実施形態では、ロボットシミュレーションにおける任意の位置決めを簡単に行うために、次のような条件を設定する。
（１）エンドエフェクタの座標系は固定せず、必要に応じて変更可能であること。
（２）エンドエフェクタの位置決めは任意の２次元平面内で行うこと。
【００２０】
これらの条件を満足するために、ロボットが存在する３次元空間内の任意の平面を表示可能とする３次元ＣＧの表示ウィンドウを用い、エンドエフェクタの可動範囲を表示された２次元平面内に制約する。
【００２１】
例えば、この２次元平面を指定するために、エンドエフェクタの可動範囲のほぼ中央の１点を中心とした球体を仮想的に設定し、この球体に接する任意の接面を表示ウィンドウの表示平面とする。オペレータは、球面上の接点の位置と球体の半径を変更することで、表示平面を動的に変更し、最終的に、エンドエフェクタの現在位置を含む平面内に表示平面を確定する。
【００２２】
このとき、球体の中心をオペレータの注視点とすることにより、画面上の表示平面とエンドエフェクタの制約された可動範囲である２次元平面とがマッピングされる。
【００２３】
次に、オペレータは、表示ウィンドウ内に表示された平面上の１点を指定し、エンドエフェクタの位置決めの位置と姿勢を確定する。このとき、指定された点がエンドエフェクタの目標位置となり、球面上の接点の位置と、接点における接面の法線ベクトルの方向により、エンドエフェクタの姿勢が確定する。
【００２４】
このように、仮想的な球体の接面を用いることにより、多数のエンドエフェクタの座標系をあらかじめ設定しなくても、必要に応じて、任意の２次元平面を設定することが可能になる。また、この球体の接面を画面上の表示平面にマッピングし、エンドエフェクタの可動範囲を表示平面内に制約することで、その動作を直観的に把握しながら、容易に位置決めを行うことができる。
【００２５】
図２は、シミュレーションの対象となるロボットシステムの一例を示す構成図である。図２のシステムは、ロボット１１、アクチュエータ１２、センサ１３、制御装置１４、およびインタフェース１５を含み、オペレータの操作入力に従って動作する。ロボット１１は、ベースプレート１６上に搭載されたマニピュレータ１７を備えており、マニピュレータ１７の先端には、対象物１９を把持するためのエンドエフェクタであるハンド１８が取り付けられている。
【００２６】
アクチュエータ１２は、制御装置１４からの制御信号に従ってロボット１１を駆動し、センサ１３は、マニピュレータ１７の各関節の位置、速度、トルク等を検出して、それらの値に対応する信号を制御装置１４に出力する。制御装置１４は、プログラムを実行する処理装置を含み、センサ１３からの情報に基づいて、アクチュエータ１２への制御信号を生成する。インタフェース１５は、オペレータと制御装置１４の間の情報交換を仲介する入出力装置である。
【００２７】
図２の制御装置１４とインタフェース１５は、例えば、図３に示すような情報処理装置（コンピュータ）を用いて構成することができる。図３の情報処理装置は、ＣＰＵ（中央処理装置）２１、メモリ２２、入力装置２３、出力装置２４、外部記憶装置２５、媒体駆動装置２６、およびネットワーク接続装置２７を備え、それらはバス２８により互いに接続されている。
【００２８】
メモリ２２は、例えば、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）等を含み、ロボットシステムの制御処理に用いられるプログラムとデータを格納する。ＣＰＵ２１は、メモリ２２を利用してプログラムを実行することにより、必要な処理を行う。
【００２９】
入力装置２３は、例えば、キーボード、ポインティングデバイス、タッチパネル、ジョイステイック等であり、オペレータからの指示や情報の入力に用いられる。出力装置２４は、例えば、ディスプレイやプリンタ等であり、オペレータへの問い合わせや処理結果等の出力に用いられる。
【００３０】
外部記憶装置２５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク（magneto-optical disk）装置等である。この外部記憶装置２５に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ２２にロードして使用することもできる。また、外部記憶装置２５は、データベースとしても用いられる。
【００３１】
媒体駆動装置２６は、可搬記録媒体２９を駆動し、その記録内容にアクセスする。可搬記録媒体２９としては、メモリカード、フロッピーディスク、ＣＤ−ＲＯＭ（compact disk read only memory ）、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。この可搬記録媒体２９に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ２２にロードして使用することもできる。
【００３２】
ネットワーク接続装置２７は、ＬＡＮ（local area network）等の任意のネットワーク（回線）を介して外部の装置と通信し、通信に伴うデータ変換を行う。また、必要に応じて、上述のプログラムとデータを外部の装置から受け取り、それらをメモリ２２にロードして使用することもできる。
【００３３】
図４は、図３の情報処理装置にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体２９や外部のデータベース３０に保存されたプログラムとデータは、メモリ２２にロードされる。そして、ＣＰＵ２１は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【００３４】
図３の情報処理装置は、図２のロボットシステムの操作入力および制御に用いられるだけでなく、前述したロボットシミュレーションにも用いることができる。この場合、ＣＰＵ２１は、入力装置２３からの操作入力に従って、運動学シミュレーション等のプログラムを実行し、その結果を出力装置２４の画面上に表示する。
【００３５】
次に、図２のロボット１１の座標系について説明する。ロボット１１には、回転可能な５つの関節が備えられており、各関節の回転角（関節角）は変数θ１、θ２、θ３、θ４、θ５で表される。これらの変数で表される座標系を、関節角座標系と呼ぶことにする。マニピュレータ１７が伸びきって直立姿勢を取ったとき、各関節角の関係は図５に示すようになり、θ１とθ５の回転軸は一直線上にある。
【００３６】
また、ハンド１８の位置と姿勢を表すベース座標系は、図６に示すように、αｂ、Ｘｂ、Ｚｂ、βｂ、γｂの５つの変数から成る。このうち、回転角αｂとγｂは、それぞれ、関節角座標系のθ１とθ５に一致する。
【００３７】
Ｘｂ−Ｚｂ平面は、ベースプレート１６の表面に垂直であり、その原点は、ベースプレート１６の表面とθ１の回転軸の交点に一致する。そして、このＸｂ−Ｚｂ平面は、回転角αｂとともに回転する。回転角βｂは、Ｘｂ−Ｚｂ平面内で定義され、Ｚｂ軸の正の向きに対するγｂの回転軸の向きを表す。こうして、変数αｂ、Ｘｂ、Ｚｂによりハンド１８の位置が表現され、変数βｂとγｂによりその姿勢が表現される。
【００３８】
次に、ハンド１８の可動範囲を制約する平面を設定するために用いられる仮想的な球体の表現方法について説明する。図７に示すように、球体３１は、その中心Ｏの３次元空間における位置と半径とを指定することにより定義される。球体３１の表面には、中心Ｏを注視点とする仮想的なカメラ３２が設けられ、このカメラ３２は球面上を自由に動き回ることができると仮定する。そして、カメラ３２のレンズの軸と球面の交点を接点とする接面を、カメラ３２が撮影する画像の表示平面とし、これを３次元ＣＧの表示平面と対応付ける。
【００３９】
このとき、カメラ３２は、球面上を赤道方向に３６０度、極軌道方向に３６０度回転することができる。さらに、半径を０から無限大まで設定可能とすると、カメラ３２は、３次元空間内の任意の２次元平面における画像を撮影することができる。
【００４０】
カメラ３２の位置と姿勢を表現する方法としては、例えば、ロボットの運動を表現するときによく用いられるDenavit-Hartenbergモデル（ＤＨモデル）を利用することができる。ＤＨモデルでは、ロボットを複数のリンクが関節により結合したリンク機構とみなして、各関節毎に３次元座標系を定義し、各座標系の間の相対的な関係を４つのパラメータで表現している（基礎ロボット工学制御編、５２−５６ページ、長谷川健介、増田良介共著、昭晃堂）。ここでは、これらのパラメータをＤＨパラメータと呼ぶことにする。
【００４１】
カメラ３２の任意の位置と姿勢を表現するための仮想的なロボット（任意視点用ロボット）のＤＨモデルは、互いに長さ０のリンクで順に結ばれた第１、第２、第３、第４、および第５の関節を持ち、それらの関節には、それぞれ、第１、第２、第３、第４、および第５のカメラ座標系（関節座標系）が設定される。第１のカメラ座標系の原点は、例えば、絶対座標系の原点と有限のリンクで結ばれ、球体３１の中心Ｏに固定される。このリンクの長さは、中心Ｏの位置によって決定される。他のカメラ座標系の原点はすべて、中心Ｏに縮退している。
【００４２】
第１の関節の型は固定型であり、第２、第３、および第４の関節の型は回転型であり、第５の関節の型は並進型である。図８は、第１のカメラ座標系をＺ軸の正の向きから原点に向かって見たときの様子を示している。
【００４３】
第２の関節は赤道方向に回転し、対応する第２のカメラ座標系は、図９に示すように、第１のカメラ座標系と一致する。したがって、第２のカメラ座標系のＤＨパラメータは、（０，０，０，０）となる。
【００４４】
また、第３の関節は極軌道方向に回転し、対応する第３のカメラ座標系は、図１０に示すようになる。第３のカメラ座標系のＤＨパラメータは、（０，０，−π／２，０）である。第４の関節は、カメラ３２の向きを変更するためのダミーとして設けられており、対応する第４のカメラ座標系は、図１１に示すようになる。第４のカメラ座標系のＤＨパラメータは、（０，０，π／２，−π／２）である。
【００４５】
また、第５の関節は半径方向にスライドし、対応する第５のカメラ座標系は、図１２に示すように、第４のカメラ座標系と一致する。したがって、第５のカメラ座標系のＤＨパラメータは、（０，０，０，０）である。
【００４６】
このようなＤＨモデルを用いれば、赤道方向および極軌道方向の回転角と半径方向の並進距離を指定することで、カメラ３２の位置が確定し、それに基づいてハンド１８の可動平面を設定することができる。
【００４７】
次に、ハンド１８の位置決め処理について説明する。図１３は、位置決め処理のフローチャートであり、この処理は、ロボットシステムのシミュレーションまたは実際の操作に用いられる。まず、オペレータは、図１４に示すように、ロボット１１と操作対象物（円柱）１９とを含む３次元空間内の任意の１点を、球体３１の中心Ｏ（注視点）の位置として指定する（ステップＳ１）。
【００４８】
ここでは、対象物１９は台上に置かれており、中心Ｏの位置は絶対座標系において指定されるものとする。例えば、中心Ｏの位置を、ハンド１８が動くことのできる空間の中心付近に設定しておくと、以降の操作が容易になる。
【００４９】
中心Ｏが指定されると、図１５に示すように、その周辺のロボット１１や対象物１９等が、球体３１の接面（初期平面）上に表示される。初期平面を決定するパラメータ（赤道方向の回転量、極軌道方向の回転量、半径方向の長さ）は、初期値としてあらかじめ与えられている。
【００５０】
次に、オペレータは、グラフィカルユーザインタフェース（ＧＵＩ）により、球体３１の任意の接面を指定する（ステップＳ２）。このとき、ディスプレイには、図１６のような設定画面が表示され、ボリューム４１、４２、４３をスライドさせることにより、赤道方向の回転量、極軌道方向の回転量、半径方向の長さを指定することができる。また、デフォルト４４、４５、４６を指定すれば、それぞれ、赤道方向の回転量、極軌道方向の回転量、半径方向の長さのデフォルト値が自動的に設定される。各パラメータの設定順序は任意である。
【００５１】
次に、情報処理装置は、入力された各パラメータの値を、上述したカメラ３２のＤＨモデルにおける各関節の回転角または並進距離に変換し、それらに基づいてキネマティクス演算を行って、カメラ３２の位置を決定する。そして、その位置を接点とする接面における３次元ＣＧを生成し、表示ウィンドウ内に表示する（ステップＳ３）。
【００５２】
オペレータは、表示された画面が、ハンド１８の現在位置と目標位置を含んでいるかどうかを確認し、表示画面を確定するかどうかの指示を入力する（ステップＳ４）。画面を確定しない場合は、ステップＳ２以降の処理が繰り返される。
【００５３】
図１７は、図１５の画面に対して半径方向の長さを変更し、ハンド１８と対象物１９の周辺を拡大表示した画面を示している。ここで、オペレータは、台上の対象物１９をハンド１８で掴むために、カメラ３２を極軌道方向に回転させる。そして、図１８に示すように、ハンド１８の現在位置Ｐ１と対象物１９の真上の目標位置Ｐ２が同一平面内になるように、表示画面を変更した後、画面を確定する。これにより、ハンド１８の動作可能領域が表示平面内に規定される。
【００５４】
画面が確定すると、情報処理装置は、確定した画面の３次元ＣＧ空間と絶対座標系空間のマッピングを行い（ステップＳ５）、オペレータは、マウス等のポインティングデバイスを用いて、表示ウィンドウ内でハンド１８の目標位置と目標姿勢を指定する（ステップＳ６、Ｓ７）。
【００５５】
このとき、例えば、マウスの左ボタン入力により、表示画面上の２次元座標値を目標位置として指定し、マウスの右ボタン入力により目標姿勢を指定する。あるいは、オペレータが目標姿勢を指定せずに、情報処理装置がそれを自動的に決定することもできる。この場合、例えば、表示された２次元平面の法線ベクトルの方向（画面に垂直な方向）を向くように、ハンド１８の姿勢が決定される。
【００５６】
次に、情報処理装置は、指定された目標位置および姿勢について、絶対座標系からベース座標系への座標変換を行い（ステップＳ８）、さらに、逆キネマティクス演算を行って、目標位置および姿勢をベース座標系から関節角座標系へ変換する（ステップＳ９）。
【００５７】
そして、得られた各関節角の回転角に基づいてキネマティクス演算を行い、ハンド１８の目標位置における画像を３次元表示する（ステップＳ１０）。図１８の目標位置Ｐ２が指定された場合は、例えば、図１９のような画像が表示される。オペレータは、表示された目標位置および姿勢でよいかどうかを確認し、それを確定するかどうかの指示を入力する（ステップＳ１１）。目標位置および姿勢を確定しない場合は、ステップＳ６以降の処理が繰り返される。
【００５８】
目標位置および姿勢が確定すると、情報処理装置は、ロボット１１の現在位置および姿勢から目標位置および姿勢に至るまでの経路を生成し（ステップＳ１２）、処理を終了する。ロボットシミュレーションの場合は、生成された経路にしたがってハンド１８が移動する画像が表示され、図２のロボット１１を実際に操作する場合は、生成された経路に対応する制御信号がアクチュエータ１２に出力される。図１９の場合は、目標位置Ｐ２において、ハンド１８が対象物１９を掴んだものとみなされる。
【００５９】
このような位置決め処理によれば、オペレータは、簡単な操作で３次元空間内の任意の平面における画像を得ることができ、ロボット１１や対象物１９等を様々な角度から視覚的に認識することができる。また、表示平面を３次元的に動かすことで、ロボット１１の特定部分と対象物１９とを含むような平面を容易に表示させることができる。このような平面内で、対象物１９の位置をロボット１１の目標位置として指定することは簡単であり、現在位置から目標位置に向かうロボット１１の運動も直観的に把握することができる。
【００６０】
目標位置および姿勢を変更しながらこのような処理を繰り返すことにより、ロボット１１に複合的な運動を行わせることもできる。例えば、図１９において、対象物１９をハンド１８で掴んだまま、位置Ｐ２から台上の他の位置へ移動する操作を行う場合を考える。
【００６１】
この場合、オペレータは、画面の奥行方向の平面（台の上面）を確認するために、ステップＳ２において、接面を極軌道方向に９０度回転させる。そして、図２０に示すように、ハンド１８の現在位置Ｐ２と目標位置Ｐ３が同一平面上に乗るように、画面を変更する。これにより、現在位置Ｐ２と目標位置Ｐ３を含む平面の画像が表示される。この画面内で、目標位置Ｐ３およびその位置におけるハンド１８の姿勢を指定すれば、新たな経路が生成される。
【００６２】
次に、図１３の位置決め処理において用いられる座標変換について説明する。まず、絶対座標系（Ｘａ，Ｙａ，Ｚａ，βａ，γａ）は、例えば、次のように定義される。
原点：ベース座標系の原点と同じ。
【００６３】
Ｘａ軸：ベース座標系においてαｂ＝０のときのＸｂ軸
Ｚａ軸：ベース座標系においてαｂ＝０のときのＺｂ軸
Ｙａ軸：Ｘａ軸の方向ベクトルとＺａ軸の方向ベクトルの外積の方向
βａ：ベース座標系の回転角βｂと同じ。
【００６４】
γａ：ベース座標系の回転角γｂと同じ。
このとき、絶対座標系の変数（Ｘａ，Ｙａ，Ｚａ，βａ，γａ）は、次式によりベース座標系の変数（αｂ，Ｘｂ，Ｚｂ，βｂ，γｂ）に変換される。
【００６５】
【数１】
0003655083.tif 000002
【００６６】
（１）式は、例えば、ステップＳ２において指定された接面をベース座標系に変換する際に用いられる。また、ステップＳ６、Ｓ７において指定されたハンド１８の目標位置および姿勢を、ステップＳ８においてベース座標系に変換する際にも用いられる。
【００６７】
また、ベース座標系の変数（αｂ，Ｘｂ，Ｚｂ，βｂ，γｂ）は、次式により絶対座標系の変数（Ｘａ，Ｙａ，Ｚａ，βａ，γａ）に変換される。
【００６８】
【数２】
0003655083.tif 000003
【００６９】
また、ロボット１１のＤＨモデルを図２１に示すように定義すると、各リンクの長さは、Ｌ１、Ｌ２、Ｌ３、Ｌ４、Ｌ５と表される。このとき、関節角座標系の変数（θ１，θ２，θ３，θ４，θ５）は、次式のようなキネマティクス演算により、ベース座標系の変数（αｂ，Ｘｂ，Ｚｂ，βｂ，γｂ）に変換される。
【００７０】
0003655083.tif 000004
（３）式は、例えば、ステップＳ３、Ｓ１０において３次元ＣＧ画像を生成する際に用いられる。
【００７１】
また、ベース座標系の変数（αｂ，Ｘｂ，Ｚｂ，βｂ，γｂ）は、次式のような逆キネマティクス演算により、関節角座標系の変数（θ１，θ２，θ３，θ４，θ５）に変換される。
0003655083.tif 000005
ここで、変数Ｐｘ、Ｐｚは、図２１の点Ｐの位置に対応して、次のように定義され、
Ｐｘ＝Ｘｂ−（Ｌ４＋Ｌ５）ｓｉｎ（βｂ）
Ｐｚ＝Ｚｂ−（Ｌ４＋Ｌ５）ｃｏｓ（βｂ）−Ｌ１                （５）
距離Ｒは、Ｐｘ、Ｐｚを用いて、次のように定義される。
Ｒ2 ＝Ｐｘ2 ＋Ｐｚ2                                           （６）
（４）式は、例えば、ステップＳ９において、ベース座標系で表されたハンド１８の目標位置および姿勢を、関節角座標系に変換する際に用いられる。
【００７２】
次に、図２２は、図１３のステップＳ１２において行われる経路生成処理のフローチャートである。この処理では、ハンド１８の現在位置および姿勢から目標位置および姿勢に至るまでの動作を、ロボット１１に行わせるためのコマンド列（制御装置１４の制御信号の入力データ）が生成され、図３のメモリ２２に設けられたコマンド蓄積ファイルに格納される。
【００７３】
簡単な動作の場合は、現在位置および姿勢から目標位置および姿勢までを１つの経路としてコマンド列が生成され、複雑な動作の場合は、例えば、現在位置および姿勢から目標位置および姿勢までをいくつかの経路に分けてコマンド列が生成される。
【００７４】
情報処理装置は、まず、与えられた経路の始点から終点までの移動量を計算し（ステップＳ２１）、あらかじめ決められた１コマンドあたりの移動量を元に、経路の分割数を整数値で算出する（ステップＳ２２）。次に、分割数に基づいて各分割点を算出し（ステップＳ２３）、それらをコマンド蓄積ファイルに書き込んで（ステップＳ２４）、処理を終了する。
【００７５】
与えられた経路がθ１またはθ５方向の回転に対応する場合は、情報処理装置は、ステップＳ２１において、関節角座標系における回転角を計算し、ステップＳ２３において、関節角座標系における分割点を算出する。そして、ステップＳ２４において、各分割点をコマンドに変換して、コマンド蓄積ファイルに書き込む。
【００７６】
また、与えられた経路がθ１またはθ５方向の回転以外の運動に対応する場合は、情報処理装置は、ステップＳ２１において、絶対座標系における移動距離を計算し、ステップＳ２３において、絶対座標系における分割点を算出する。次に、ステップＳ２４において、各分割点を（１）式を用いてベース座標系に変換し、さらに、（４）式を用いて関節角座標系に変換する。そして、関節角座標系における各分割点をコマンドに変換して、コマンド蓄積ファイルに書き込む。
【００７７】
ロボットシミュレーションの場合は、コマンド蓄積ファイルに格納されたコマンド列にしたがってキネマティクス演算を行うことで、ハンド１８が移動する画像が表示される。また、図２のロボット１１を操作する場合は、コマンド列に対応する制御信号をアクチュエータ１２に出力することで、ハンド１８が実際に移動する。
【００７８】
マニピュレータを有するロボットのキネマティクス演算、逆キネマティクス演算、経路生成の詳細については、例えば、上述の「基礎ロボット工学制御編」（長谷川健介、増田良介共著、昭晃堂）の５８−７８ページに紹介されている。
【００７９】
ところで、以上説明した実施形態においては、図２、５、６、２１等に示したように、ロボットの動作に特定の制約を設けて、位置と姿勢を５自由度（５個のパラメータ）で表現している。しかし、一般のロボットでは、位置と姿勢が６自由度で表現される。本発明のインタフェースは、自由度に関係なく、任意のロボットに適用可能である。
【００８０】
また、実施形態においては、３次元空間における任意の２次元平面を指定するために仮想的な球体を用いているが、２次元平面の設定方法は必ずしもこれに限られない。例えば、図２３に示すように、表示平面に対応付けられた２次元平面５１を３次元空間内で定義しておく。そして、それを有限の長さのリンク５２で構成された仮想的なロボットのエンドエフェクタの代わりに用いて、平面５１を任意の位置および姿勢に設定することもできる。
【００８１】
また、実施形態においては、エンドエフェクタを位置決めの対象としているが、ロボットの他の部分をその対象とすることも可能である。例えば、特定の関節やリンクを目標位置および姿勢に設定する操作を行うこともでき、脚、車輪、ロケットエンジン、プロペラ等により３次元空間内を移動できるロボットの場合、ロボットのボディー自身を目標位置に移動させる操作を行うこともできる。
【００８２】
さらに、本発明のインタフェースは、地上で作業するロボットのみならず、地下、海中、空中、宇宙空間等、あらゆる場所で作業を行う任意のロボットに対して適用可能である。例えば、人工衛星に搭載されたロボットハンドシステムの遠隔操作の際に用いれば、ロボットハンドの位置決めの自由度が増大し、あらかじめ規定された座標系による設定以外に、任意の位置の位置決めを容易に行えるようになる。
【００８３】
【発明の効果】
本発明によれば、３次元空間におけるロボットの位置決めを行う際に、オペレータは、現在位置から目標位置までのロボットの動作を感覚的に把握することが可能になり、操作効率が向上する。これにより、３次元空間内の任意の位置にロボットを移動させる操作が容易に実現される。
【図面の簡単な説明】
【図１】本発明のインタフェース装置の原理図である。
【図２】ロボットシステムの構成図である。
【図３】情報処理装置の構成図である。
【図４】記録媒体を示す図である。
【図５】関節角座標系を示す図である。
【図６】ベース座標系を示す図である。
【図７】球体を示す図である。
【図８】第１のカメラ座標系を示す図である。
【図９】第２のカメラ座標系を示す図である。
【図１０】第３のカメラ座標系を示す図である。
【図１１】第４のカメラ座標系を示す図である。
【図１２】第５のカメラ座標系を示す図である。
【図１３】位置決め処理のフローチャートである。
【図１４】第１の操作画面を示す図である。
【図１５】第２の操作画面を示す図である。
【図１６】設定画面を示す図である。
【図１７】第３の操作画面を示す図である。
【図１８】第４の操作画面を示す図である。
【図１９】第５の操作画面を示す図である。
【図２０】第６の操作画面を示す図である。
【図２１】ロボットのリンクを示す図である。
【図２２】経路生成のフローチャートである。
【図２３】仮想的なロボットを示す図である。
【符号の説明】
１  平面指定手段
２  表示手段
１１  ロボット
１２  アクチュエータ
１３  センサ
１４  制御装置
１５  インタフェース
１６  ベースプレート
１７  マニピュレータ
１８  ハンド
１９  対象物
２１  ＣＰＵ
２２  メモリ
２３  入力装置
２４  出力装置
２５  外部記憶装置
２６  媒体駆動装置
２７  ネットワーク接続装置
２８  バス
２９  可搬記録媒体
３０  データベース
３１  球体
３２  カメラ
４１、４２、４３  ボリューム
４４、４５、４６  デフォルトボタン
５１  ２次元平面
５２  リンク
【図１】
0003655083.tif 000006
【図２】
0003655083.tif 000007
【図３】
0003655083.tif 000008
【図４】
0003655083.tif 000009
【図５】
0003655083.tif 000010
【図６】
0003655083.tif 000011
【図７】
0003655083.tif 000012
【図８】
0003655083.tif 000013
【図９】
0003655083.tif 000014
【図１０】
0003655083.tif 000015
【図１１】
0003655083.tif 000016
【図１２】
0003655083.tif 000017
【図１３】
0003655083.tif 000018
【図１４】
0003655083.tif 000019
【図１５】
0003655083.tif 000020
【図１６】
0003655083.tif 000021
【図１７】
0003655083.tif 000022
【図１８】
0003655083.tif 000023
【図１９】
0003655083.tif 000024
【図２０】
0003655083.tif 000025
【図２１】
0003655083.tif 000026
【図２２】
0003655083.tif 000027
【図２３】
0003655083.tif 000028