(57)【要約】【課題】ロボットの軌道と特異点とが干渉しないように対象教示点の位置を調整する際の手間を削減する。【解決手段】多関節のロボットの動作を教示する複数の教示点のうち対象教示点の位置を調整するための演算を演算部が行う。演算部は、対象教示点ｐ２と対象教示点ｐ２に隣接する教示点ｐ１との間を補間した補間軌道Ｌ１を求める。次に、演算部は、補間軌道Ｌ１上の補間点ｑ１，ｑ２，ｑ３を求める。次に、演算部は、対象教示点ｐ２に近接する特異点ｓ及び各補間点ｑ１，ｑ２，ｑ３に近接する特異点ｓ１，ｓ２，ｓ３の位置をそれぞれ求める。次に、演算部は、対象教示点ｐ２が特異点ｓに干渉せずかつ各補間点ｑ１，ｑ２，ｑ３が各特異点ｓ１，ｓ２，ｓ３に干渉しない対象教示点ｐ２の調整可能距離を求める。【選択図】図７
2015066668.tif 000002
【特許請求の範囲】
【請求項１】
多関節のロボットの動作を教示する複数の教示点のうち対象教示点の位置を調整するための演算を演算部が行うロボットの教示点調整方法であって、
前記演算部が、前記対象教示点と該対象教示点に隣接する教示点との間を補間した補間軌道を求める補間軌道算出工程と、
前記演算部が、前記補間軌道上の補間点を求める補間点算出工程と、
前記演算部が、前記対象教示点に近接する第１特異点及び前記補間点に近接する第２特異点の位置をそれぞれ求める特異点算出工程と、
前記演算部が、前記対象教示点が前記第１特異点に干渉せずかつ前記補間点が前記第２特異点に干渉しない前記対象教示点の調整可能距離を求める調整可能距離算出工程と、を備えたことを特徴とするロボットの教示点調整方法。
【請求項２】
前記演算部が、前記調整可能距離に関する情報を表示部に表示させる調整可能距離表示工程を備えたことを特徴とする請求項１に記載のロボットの教示点調整方法。
【請求項３】
前記調整可能距離算出工程では、前記演算部が、前記第１特異点に前記対象教示点が達する前記対象教示点の調整距離、及び前記第２特異点に前記補間点が達する前記対象教示点の調整距離をそれぞれ演算し、前記各調整距離のうち最短となる最短調整距離に基づき、前記調整可能距離を求めることを特徴とする請求項１又は２に記載のロボットの教示点調整方法。
【請求項４】
前記調整可能距離算出工程では、前記演算部が、前記第１特異点から所定距離離れた位置に前記対象教示点が達する前記対象教示点の調整距離、及び前記第２特異点から前記所定距離離れた位置に前記補間点が達する前記対象教示点の調整距離をそれぞれ演算し、前記各調整距離のうち最短となる最短調整距離を、前記調整可能距離として求めることを特徴とする請求項１又は２に記載のロボットの教示点調整方法。
【請求項５】
前記演算部が、前記対象教示点を中心に前記調整可能距離を半径とする球を含む前記対象教示点の調整可能範囲を算出する調整可能範囲算出工程を備えたことを特徴とする請求項１乃至４のいずれか１項に記載のロボットの教示点調整方法。
【請求項６】
前記演算部が、前記調整可能範囲に関する情報を、表示部に表示させる調整可能範囲表示工程を備えたことを特徴とする請求項５に記載のロボットの教示点調整方法。
【請求項７】
前記演算部が、前記対象教示点を仮想的に変更して、前記調整可能距離が最大となる前記対象教示点の変更位置を求める変更位置算出工程を備えたことを特徴とする請求項１乃至６のいずれか１項に記載のロボットの教示点調整方法。
【請求項８】
前記演算部が、前記調整可能距離が最大となる前記対象教示点の変更位置に関する情報を、表示部に表示させる変更位置表示工程を備えたことを特徴とする請求項７に記載のロボットの教示点調整方法。
【請求項９】
請求項１乃至６のいずれか１項に記載のロボットの教示点調整方法の各工程と、
前記演算部が、前記各教示点を前記対象教示点とし、前記各教示点の前記調整可能距離を合計又は平均した評価値を演算する評価値算出工程と、
前記演算部が、前記ロボットの設置位置を仮想的に変更して、前記評価値が最大となる前記ロボットの設置位置を求める設置位置算出工程と、を備えたことを特徴とするロボットの設置位置算出方法。
【請求項１０】
前記演算部が、前記評価値が最大となる前記ロボットの設置位置に関する情報を、表示部に表示させる設置位置表示工程を備えたことを特徴とする請求項９に記載のロボットの設置位置算出方法。
【請求項１１】
多関節のロボットと、
前記ロボットの動作を教示する複数の教示点のうち対象教示点の位置を調整するための演算を行う演算部と、を備え、
前記演算部が、
前記対象教示点と該対象教示点に隣接する教示点との間を補間した補間軌道を求め、
前記補間軌道上の補間点を求め、
前記対象教示点に近接する第１特異点及び前記補間点に近接する第２特異点の位置をそれぞれ求め、
前記対象教示点が前記第１特異点に干渉せずかつ前記補間点が前記第２特異点に干渉しない前記対象教示点の調整可能距離を求めることを特徴とするロボットシステム。
【請求項１２】
コンピュータに請求項１乃至８のいずれか１項に記載のロボットの教示点調整方法の各工程を実行させるためのプログラム。
【請求項１３】
コンピュータに請求項９又は１０に記載のロボットの設置位置算出方法の各工程を実行させるためのプログラム。
【請求項１４】
請求項１２又は１３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の教示点のうち対象教示点の位置を調整するための演算を行うロボットの教示点調整方法、ロボットの設置位置算出方法、ロボットシステム、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
複雑で精密な動作が可能な垂直多関節型のロボットは、近年様々な製造現場で用いられるようになっている。このようなロボットは、様々な動作や姿勢を設定できるが故にその動作設定に非常に時間がかかるという側面を持っている。ロボット動作の設定は、任意のロボット姿勢を手先座標で表した「教示点」で設定し、教示点間には補間軌道を設定するのが一般的である。この教示点や補間軌道、ロボット動作を様々な手法で評価することにより、より洗練された動作設定を行うための手法が考えられてきていた。
【０００３】
従来はロボットが適用される工程が単純であったため、ロボット動作の評価には、ロボットの特異点に関する厳密な考察は必要とされず、ロボットが到達可能かどうかや、障害物との干渉の有無、ロボットの操作容易性を表す可操作度が用いられてきた。
【０００４】
特許文献１に記載のロボットの設置位置決定方法では、予めロボットの作業点とロボット位置が入力され、通過点間の経路上の各作業点についての可操作度を積み上げることでロボット位置の評価を行い、評価値が最良となるロボット位置を計算している。
【０００５】
特許文献２に記載のロボット動作評価方法では、現在の作業点から次の作業点方向への可操作度に注目し、動作方向のみに関わる動かしやすさ、アクチュエータの負荷に注目してロボット動作の評価を行っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４７３０３３７号公報
【特許文献２】特開平９−６６４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、ロボットを用いたセル生産で行われるような、一つのロボットが狭い範囲で複数工程をこなすような場合は、ロボット軌道が複雑になり、ロボット軌道と特異点の関係性を考慮した教示点やロボット位置の設定が必要である。
【０００８】
例えば、計算機上で決定したロボットの配置を実環境で実現する際、設置位置の微妙な誤差やロボットの個体差などによって教示点位置が想定位置とずれてしまうため、教示点の移動・調整作業が行われる。また、位置が厳密に決定していないワークに対応するような教示点については、別途視覚センサなどによるワーク認識によって教示点の位置が移動・調整される。
【０００９】
このような実環境では、教示点位置の調整作業が頻繁に行われるが、上記特許文献１，２のような可操作度で評価するものでは、調整後の教示点位置によっては、調整対象の教示点の前後のロボット軌道が特異点に干渉することがあった。そのため、教示点の調整の度にロボット軌道が特異点に干渉するかどうかを判断し、干渉する場合には再度教示点を調整し直す作業が必要であり、手間がかかっていた。
【００１０】
そこで、本発明は、ロボットの軌道と特異点とが干渉しないように対象教示点の位置を調整する際の手間を削減することを目的とするものである。
【課題を解決するための手段】
【００１１】
本発明は、多関節のロボットの動作を教示する複数の教示点のうち対象教示点の位置を調整するための演算を演算部が行うロボットの教示点調整方法であって、前記演算部が、前記対象教示点と該対象教示点に隣接する教示点との間を補間した補間軌道を求める補間軌道算出工程と、前記演算部が、前記補間軌道上の補間点を求める補間点算出工程と、前記演算部が、前記対象教示点に近接する第１特異点及び前記補間点に近接する第２特異点の位置をそれぞれ求める特異点算出工程と、前記演算部が、前記対象教示点が前記第１特異点に干渉せずかつ前記補間点が前記第２特異点に干渉しない前記対象教示点の調整可能距離を求める調整可能距離算出工程と、を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、補間軌道上の補間点を用いて対象教示点の調整可能距離を求めているので、ロボット軌道と特異点との干渉を回避するための対象教示点の調整作業の手間を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係るロボットシステムの概略構成を示す説明図である。
【図２】ロボットシステムの構成を示すブロック図である。
【図３】ロボットの肩特異点を説明するための模式図である。
【図４】ロボットの肘特異点を説明するための模式図である。
【図５】ロボットの手首特異点を説明するための模式図である。
【図６】実施形態に係る制御装置のＣＰＵによるロボットの教示点調整方法を示すフローチャートである。
【図７】実施形態に係るロボットの教示点調整方法を説明するための図である。
【図８】補間点に対応する最近特異点と評価距離を示した説明図である。
【図９】モニタに表示される調整可能範囲に関する情報の一例を示す説明図である。
【図１０】対象教示点の調整可能範囲を模式的に表した斜視図である。
【図１１】対象教示点の調整可能範囲を模式的に表した斜視図である。
【図１２】対象教示点の前後の補間軌道を考慮した調整可能範囲を表した図である。
【図１３】教示点の調整可能距離を評価値としたロボットの設置位置算出方法を説明するための図である。
【図１４】調整可能範囲を最大にする教示点位置の計算方法を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図１は、本発明の実施形態に係るロボットシステムの概略構成を示す説明図である。生産装置であるロボットシステム１００は、垂直多関節ロボットであるロボット２００と、ロボット２００を制御する制御装置３００と、表示部であるモニタ４００と、教示部であるティーチングペンダント５００と、を備えている。
【００１５】
ロボット２００は、多関節のロボットアーム２０１と、ロボットアーム２０１の先端に取り付けられたエンドエフェクタ（例えばロボットハンド）２０２とを有している。ロボットアーム２０１の基端は、架台等に位置決め固定される。ロボットアーム２０１は、各関節軸Ｊ１〜Ｊ６で回転又は旋回可能に連結された複数のリンク２１０〜２１６を有している。ロボットアーム２０１の基端から先端に向かって、第１関節軸Ｊ１，第２関節軸Ｊ２，第３関節軸Ｊ３，第４関節軸Ｊ４，第５関節軸Ｊ５，第６関節軸Ｊ６とする。
【００１６】
ティーチングペンダント５００は、ユーザ（作業者）の操作により、教示点の指定や補間方法の指定をするものである。補間方法としては直線補間、円弧補間、関節補間などがある。
【００１７】
図２は、ロボットシステム１００の構成を示すブロック図である。制御装置３００は、コンピュータで構成されており、演算部（制御部）としてのＣＰＵ（Central  Processing  Unit）３０１を備えている。また、制御装置３００は、記憶部として、ＲＯＭ（Read  Only  Memory）３０２、ＲＡＭ（Random  Access  Memory）３０３、ＨＤＤ（Hard  Disk  Drive）３０４を備えている。また、制御装置３００は、記録ディスクドライブ３０５及び各種のインタフェース３０７〜３０９を備えている。
【００１８】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５及び各種のインタフェース３０７〜３０９が、バス３０６を介して接続されている。ＲＯＭ３０２には、ＢＩＯＳ等の基本プログラムが格納されている。
【００１９】
ＲＡＭ３０３は、ＣＰＵ３０１による演算実行時の一時記憶用のメモリや必要に応じて設定されるレジスタ領域として使用される。
【００２０】
ＨＤＤ３０４は、ＣＰＵ３０１の演算処理結果や外部から取得した各種データ等を記憶すると共に、ＣＰＵ３０１に、システム全体１００を制御するプログラムや、ロボットの教示点調整方法の各工程を実行させるためのプログラム３３０を記録するものである。例えば、メモリとしてのＨＤＤ３０４には、物理量を表す情報と、運動学計算手法と、制御手法が格納されている。物理量を表す情報は、シミュレートするロボット２００を構成する部品の形状や各関節の種類、三次元空間上の配置情報、教示点の位置情報などの物理量を指す。運動学計算手法は、各関節角度から各関節の３次元空間上での位置情報やロボット姿勢、教示点の補間軌道を計算する手法を指す。制御手法は、最近特異点の位置や調整可能距離、調整可能距離生成点、調整可能範囲を計算する手法を指す。
【００２１】
ＣＰＵ３０１は、ＨＤＤ３０４に記録（格納）されたプログラム３３０に基づいて各種演算処理（ロボット２００の教示点調整方法の各工程）を実行する。
【００２２】
記録ディスクドライブ３０５は、記録ディスク３３１に記録された各種データやプログラム等を読み出すことができる。
【００２３】
インタフェース３０７には、ロボット２００（具体的には、ロボット２００の各関節軸を制御するサーボ回路）が接続されており、ＣＰＵ３０１は、教示された教示点に基づきロボット２００の動作を制御する。
【００２４】
インタフェース３０８には、モニタ４００が接続されており、ＣＰＵ３０１は、モニタ４００に画像を表示させることができる。このモニタ４００は、シミュレーション結果として、ロボット２００の教示点とロボット２００の設置位置の決定を支援する上記制御手法の結果を表示することができる。
【００２５】
インタフェース３０９には、ティーチングペンダント５００が接続されており、ＣＰＵ３０１は、インタフェース３０９及びバス３０６を介してティーチングペンダント５００からの教示点や補間方法の指定の入力を受ける。
【００２６】
ＣＰＵ３０１は、ティーチングペンダント５００或いはＨＤＤ３０４から、複数の教示点を取得する。そして、ＣＰＵ３０１は、各教示点間を指定された補間方法で補間して補間軌道（補間関数）を演算し、ロボット２００（ロボットアーム２０１）の各関節軸を駆動するサーボモータのサーボ回路に所定時間間隔で位置指令を出力する。これによりロボット２００（ロボットアーム２０１）は、複数の教示点（補間軌道）を辿るロボット軌道に沿って動作する。
【００２７】
なお、制御装置３００には、不図示の、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置等が接続されていてもよい。
【００２８】
本実施形態では、任意のロボット姿勢から最近特異点までの距離を計算する。ここで「最近特異点」とは、あるロボット姿勢におけるエンドエフェクタ２０２の先端の姿勢方向を保ったまま移動した際にロボット２００が特異姿勢となる点の内、手先の相対距離が最も短い点を示している。
【００２９】
６軸のロボットアーム２０１には、肩特異点、肘特異点、手首特異点の３種類の特異点があるため、任意姿勢から各最近特異点までの距離の計測方法について以下に説明する。以下、特異点とは、ロボット２００が特異姿勢を取る場合の手先位置またはロボット２００の第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点の３次元空間座標を指す。
【００３０】
図３は、ロボットの肩特異点を説明するための模式図である。図３には、ロボット２００の姿勢から最も近い肩特異点までの距離ｄａと位置Ｐａが図示されている。ロボット２００がこの肩特異点をとったとき、ロボットの姿勢は図３において破線で示す姿勢Ａ１のようになる。肩特異姿勢は、第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘが第１関節軸Ｊ１の直上に来たときに発生する。そのため、エンドエフェクタ２０２の先端の姿勢方向を保ったまま第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘを第１関節軸Ｊ１の直上まで持って行った場合の位置Ｐａを、最も近い肩特異点とする。
【００３１】
つまり、第１関節軸Ｊ１を通り同軸方向に延びる直線から第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘまでの距離ｄａが、最も近い肩特異点までの距離である。任意姿勢における第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘの座標は一般的な順運動学計算により求めることができ、第１関節軸Ｊ１の位置は自明であるため、肩特異点までの距離ｄａと位置Ｐａは容易に求めることができる。
【００３２】
図４は、ロボットの肘特異点を説明するための模式図である。図４には、ロボット２００の姿勢から最も近い肘特異点までの距離ｄｂと位置Ｐｂが図示されている。ロボット２００がこの肘特異点をとったとき、ロボット２００の姿勢は図４において破線で示す姿勢Ａ２のようになる。肘特異姿勢は、第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘが第２，第３関節軸Ｊ２，Ｊ３を結ぶ直線上にある場合に発生する。そのため、エンドエフェクタ２０２の先端の姿勢を保ったまま第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘが第２，第３関節軸Ｊ２，Ｊ３の直線上にある場合の位置Ｐｂを肘特異点とする。
【００３３】
このとき肘特異点は第２関節軸Ｊ２を中心とし第２関節軸Ｊ２から第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘまでの距離の合計Ｒｘを半径とする円Ｃ１上にプロットすることができる。任意姿勢から肘特異点までの最短距離ｄｂは、第２関節軸Ｊ２から第３関節軸Ｊ３までの距離と第３関節軸Ｊ３から交点Ｐｘまでの距離の合計から、第２関節軸Ｊ２から交点Ｐｘまでの距離を引いた値であり、一般的な順運動学計算により求めることができる。よって、肘特異点までの距離ｄｂと位置Ｐｂは、容易に求めることができる。
【００３４】
図５は、ロボットの手首特異点を説明するための模式図である。図５には、ロボット２００の姿勢から最も近い手首特異点までの距離ｄｃと位置Ｐｃが図示されている。ロボット２００がこの手首特異点をとったとき、ロボット２００の姿勢は図５において破線で示す姿勢Ａ３のようになる。手首特異姿勢は、第４，第６関節軸Ｊ４，Ｊ６から同軸方向に延びる直線が同一直線上となる場合に発生するため、エンドエフェクタ２０２の先端姿勢を保ったまま第４，第６関節軸Ｊ４，Ｊ６が一直線上になる場合の位置Ｐｃを手首特異点とする。つまり、手首特異姿勢が実現された際には第３関節軸Ｊ３の先端方向ｒ１とエンドエフェクタ２０２の先端方向ｒ２とが同一になる。このとき手首特異点は、関節軸Ｊ２からエンドエフェクタ２０２の先端方向へ関節軸Ｊ３から交点Ｐｘまでの距離ｄｖ分移動した点Ｏを中心とし、関節軸Ｊ２から関節軸Ｊ３までの距離ｄｗを半径とする円Ｃ２上にプロットすることが可能である。
【００３５】
ここでは手首特異点は現在の位置姿勢から最も近接した特異姿勢を選ぶ必要があるため、適切な第２，第３関節軸Ｊ２，Ｊ３の角度セットを選択しなければならない。以上を踏まえ任意姿勢から手首特異点までの距離ｄｃは以下のように求めることができる。まず任意姿勢における第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘの座標を計算する。次に第２関節軸Ｊ２からエンドエフェクタ２０２の先端の姿勢方向へ、第３関節軸Ｊ３から第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘまでの距離分進んだ点Ｏの座標を計算する。この点Ｏと第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘとの相対距離を計算し、第２関節軸Ｊ２から第３関節軸Ｊ３までの距離を引いた値が手首特異点までの距離ｄｃである。各関節の座標は一般的な順運動学計算により求めることができるので、手首特異点までの距離ｄｃと位置Ｐｃは、容易に求めることができる。
【００３６】
以上で任意のロボット姿勢に対応する最近肩特異点、最近肘特異点、最近手首特異点を得ることができる。さらにこの３つの特異点までの距離で最も短いものを、任意のロボット姿勢に対応する最近特異点とする。
【００３７】
本実施形態では、教示点間の補間軌道上を通過する補間点を複数求め、各補間点に最も近接する最近特異点の位置を計算した後、各補間点に対応する評価距離を計算し、最終的に位置調整対象の対象教示点の調整可能距離（半径）を計算することを特徴とする。ここで、対象教示点の調整可能距離とは、その距離分、調整教示点の位置を調整（移動）すると、対象教示点の前後の補間軌道が特異点又はその近傍と干渉する距離をいう。
【００３８】
図６は、本実施形態に係る制御装置３００のＣＰＵ３０１によるロボットの教示点調整方法を示すフローチャートである。図６に示すフローチャートの各ステップ（各工程）の処理は、図２に示すプログラム３３０をＣＰＵ３０１が実行することにより行われる。なお、ＣＰＵ３０１が各ステップを実行した後、ユーザがティーチングペンダント５００を操作して、ロボット２００の動作を教示する複数の教示点のうち対象教示点の位置を調整することができる。つまり、ＣＰＵ３０１は、ユーザが対象教示点の位置を調整するための演算（シミュレーション）を行う。
【００３９】
ＣＰＵ３０１は、仮想上の作業環境内に対象となるロボット２００を、世界座標系原点に仮想的に設置する（Ｓ１）。
【００４０】
次に、ＣＰＵ３０１は、ユーザがティーチングペンダント５００により指定した複数の教示点又はＨＤＤ３０４に予め格納された複数の教示点を読み込むことで、複数の教示点を設定する（Ｓ２）。教示点は、世界座標系を基準とし、例えば第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘ（つまり第５関節軸Ｐ５の中心）の位置とする。
【００４１】
図７は、本実施形態に係るロボットの教示点調整方法を説明するための図である。以下、３つの教示点ｐ１，ｐ２，ｐ３を設定したものとし、調整対象（評価対象）の対象教示点を教示点ｐ２とする。対象教示点ｐ２の指定は、ユーザがティーチングペンダント５００等の入力装置を用いて行う。
【００４２】
次に、ＣＰＵ３０１は、対象教示点ｐ２と、対象教示点ｐ２に隣接する教示点（例えばｐ１，ｐ３）との間を、指定された補間方法で補間した補間軌道を演算により求める（Ｓ３：補間軌道算出工程）。図７では、教示点ｐ１と教示点ｐ２との間、教示点ｐ２と教示点ｐ３との間の補間方法は直線補間であり、ＣＰＵ３０１は、直線補間で補間した、教示点ｐ１，ｐ２を通過する補間軌道Ｌ１と、教示点ｐ２，ｐ３を通過する補間軌道Ｌ２とを求める。なお、本実施形態では、ＣＰＵ３０１は、複数の教示点のうち始点から終点に亘って（全区間に亘って）補間軌道を求めることで、始点から終点までのロボット軌道を生成する。
【００４３】
次に、ＣＰＵ３０１は、対象教示点ｐ２を含む補間軌道Ｌ１上の複数の補間点ｑ１，ｑ２，ｑ３及び補間軌道Ｌ２上の複数の補間点ｑ４，ｑ５，ｑ６を求める（Ｓ４：補間点算出工程）。補間点ｑ１，ｑ２，ｑ３は、補間軌道Ｌ１が通過する通過点であり、補間点ｑ４，ｑ５，ｑ６は、補間軌道Ｌ２が通過する通過点である。なお、本実施形態では、補間点を複数求めているが、少なくとも１つ求めればよく、補間点の数が多いほど、後に求める調整可能距離の精度が上がる。
【００４４】
次に、ＣＰＵ３０１は、対象教示点ｐ２に最も近接している第１特異点である特異点（最近特異点）ｓまでの距離、及び各補間点ｑ１〜ｑ６に最も近接している第２特異点である特異点（最近特異点）ｓ１〜ｓ６までの距離を計算する（Ｓ５）。具体的には、ＣＰＵ３０１は、各補間点ｑ１〜ｑ６及び教示点ｐ２に対して肩特異点、肘特異点、手首特異点までの距離を計算し、最も距離が近接している特異点の種類を特定する。
【００４５】
次に、ＣＰＵ３０１は、特異点ｓ及び特異点ｓ１〜ｓ６の位置をそれぞれ求める（Ｓ６：特異点算出工程）。肩特異点、肘特異点、手首特異点の位置の計算手法は、前述したとおりである（図３〜図５）。
【００４６】
次に、ＣＰＵ３０１は、教示点ｐ２の前段の補間軌道Ｌ１について対象教示点ｐ２が特異点ｓに干渉せずかつ各補間点ｑ１〜ｑ３が各特異点ｓ１〜ｓ３に干渉しない対象教示点ｐ２の調整可能距離を求める（Ｓ７：調整可能距離算出工程）。同様に、教示点ｐ２の後段の補間軌道Ｌ２について対象教示点ｐ２が特異点ｓに干渉せずかつ各補間点ｑ４〜ｑ６が各特異点ｓ４〜ｓ６に干渉しない対象教示点ｐ２の調整可能距離を求める。
【００４７】
以下、具体的に説明する。図８は、補間点に対応する最近特異点と評価距離（調整距離）を示した説明図である。図８（ａ）は閾値を設けない場合、図８（ｂ）は閾値を設けた場合を示している。
【００４８】
ＣＰＵ３０１は、それぞれの補間点ｑ１〜ｑ６（図８（ａ）では補間点ｑ２）の位置に対応する評価距離（調整距離）ｄ２を計算する。評価距離ｄ２は、対象教示点ｐ２の位置と隣接する教示点ｐ１の位置と補間点ｑ２に対応する最近特異点ｓ２の位置から計算する。
【００４９】
以下、補間軌道Ｌ１について具体的に説明すると、補間軌道Ｌ１は直線補間により求めているので、まず、隣接する教示点ｐ１と補間点ｑ２に対応する最近特異点ｓ２の位置を結ぶ直線ｌ２を計算する。次にその直線ｌ２と対象教示点ｐ２との距離を計算する。これが、補間点ｑ２に対応する評価距離ｄ２である。また、他の補間点及び対象教示点ｐ２に対応する評価距離についても同様に計算する。
【００５０】
つまり、ＣＰＵ３０１は、特異点ｓに対象教示点ｐ２が達する対象教示点ｐ２の調整距離（評価距離）、及び各特異点ｓ１〜ｓ３に各補間点ｑ１〜ｑ３が達する対象教示点ｐ２の調整距離（評価距離）をそれぞれ演算する。そして、ＣＰＵ３０１は、各調整距離のうち最短となる最短調整距離を抽出する。ＣＰＵ３０１は、抽出した最短調整距離に基づき、調整可能距離を求める。具体的には、抽出した最短調整距離を調整可能距離とする。このように、調整可能距離は、軌道上の補間点に対応する最近特異点の位置や隣接する教示点ｐ１の位置関係から計算することができる。
【００５１】
ここで、図８（ｂ）に示すように、補間軌道Ｌ１と特異点ｓ２とが干渉したと判断するための閾値（所定距離）Ｔｈを設けてもよい。つまり、単純にロボット軌道と特異点が重なるまでの距離を考えてもよいが、ロボット軌道と特異点が干渉したと判断するための閾値を設けてもよい。この場合ＣＰＵ３０１は、対象教示点ｐ２の位置と隣接する教示点ｐ１の位置と補間点ｑ２に対応する最近特異点ｓ２がなす平面上において、教示点ｐ１を通り閾値Ｔｈとする球（円）に接する２直線ｌ２ａ，ｌ２ｂを計算する。そして、ＣＰＵ３０１は、対象教示点ｐ２と各直線ｌ２ａ，ｌ２ｂとの距離ｄ２ａ，ｄ２ｂを計算する。このとき、短い方の距離ｄ２ａが、閾値を考慮した補間点ｑ２に対応する評価距離（調整距離）である。
【００５２】
つまりＣＰＵ３０１は、特異点ｓから所定距離離れた位置（閾値Ｔｈ離れた位置）に教示点ｐ２が達する教示点ｐ２の調整距離、及び各特異点ｓ１〜ｓ３から所定距離離れた位置に各補間点ｑ１〜ｑ３が達する教示点ｐ２の調整距離をそれぞれ演算する。そして、ＣＰＵ３０１は、各調整距離のうち最短となる最短調整距離を抽出する。ＣＰＵ３０１は、抽出した最短調整距離を、調整可能距離として求める。
【００５３】
なお、本実施形態では、対象教示点ｐ２が複数の教示点のうち始点及び終点以外の中間点であるので、対象教示点ｐ２の前後の補間軌道Ｌ１，Ｌ２それぞれについて調整可能距離（暫定値）を求め、いずれか短い方を、真の調整可能距離として求める。つまり、評価対象とする対象教示点ｐ２の前後に教示点ｐ１，ｐ３がある場合でも、全ての補間点において評価距離を計算し、それらの内最も短いものを教示点ｐ２の調整可能距離としている。
【００５４】
対象教示点が複数の教示点のうち始点ｐ１又は終点ｐ３である場合は、隣接する補間軌道は１つであり、その補間軌道について調整可能範囲を上述したように求めればよい。
【００５５】
以上が、対象教示点ｐ２の調整可能距離の計算手法である。本手法を用いることにより、対象となる教示点ｐ２の調整（移動）可能な距離がどの程度であるかを示す評価指標である調整可能距離を得ることができる。
【００５６】
次に、ＣＰＵ３０１は、調整可能距離に関する情報をモニタ４００に表示させる（Ｓ８：調整可能距離表示工程）。
【００５７】
図９は、モニタ４００に表示される調整可能範囲に関する情報の一例を示す説明図である。対象教示点の調整可能範囲の表示は、具体的には、ロボット２００に設定した教示点ｐ１〜ｐ３と補間軌道Ｌ１，Ｌ２をモニタ４００に表示するロボットシミュレータシステムの機能である。ＣＰＵ３０１は、図９に示すように、対象教示点ｐ２の調整可能距離Ｄ、その調整可能距離Ｄを構成する特異点、及びその特異点に対応する補間点を、教示点ｐ１〜ｐ３と補間軌道Ｌ１，Ｌ２とともにモニタ４００に表示させる。
【００５８】
なお、調整可能距離に関する情報として、調整可能距離Ｄをグラフィカルにモニタ４００に表示する場合について説明したが、数値データとしてモニタ４００に表示するようにしてもよい。
【００５９】
また、対象教示点ｐ２は、調整可能距離Ｄの分動かしても、補間軌道が特異点と干渉しないことが分るため、調整可能範囲を計算することもできる。
【００６０】
図１０は、対象教示点ｐ２と隣接教示点ｐ１におけるエンドエフェクタ２０２の方向が同一で、これらの教示点ｐ１，ｐ２を接続する補間軌道Ｌ１が直線補間だった場合の、対象教示点ｐ２の調整可能範囲Ｒを模式的に表した斜視図である。
【００６１】
ＣＰＵ３０１は、対象教示点ｐ２を中心に調整可能距離Ｄを半径とする球の範囲Ｒａを含む対象教示点ｐ２の調整可能範囲Ｒを算出する（調整可能範囲算出工程）。そして、ＣＰＵ３０１は、算出した調整可能範囲Ｒを、モニタ４００へ表示させる（調整可能範囲表示工程）。
【００６２】
具体的に説明すると、ＣＰＵ３０１は、調整可能距離Ｄを構成する補間点ｑ２に対応する最近特異点ｓ２と調整可能距離生成点Ｐとを結ぶ区間直線を求める。そして、ＣＰＵ３０１は、該区間直線を補間軌道Ｌ１の周りに回転させて得られる範囲Ｒｂを、球の範囲Ｒａに追加し、調整可能範囲Ｒとして、モニタ４００へ表示させる。ここで調整可能距離生成点Ｐは、調整可能距離Ｄを計算した際に用いた隣接教示点ｐ１と最近特異点ｓ２を結ぶ直線上の点であり、調整可能距離生成点Ｐと対象教示点ｐ２との距離は調整可能距離Ｄとなる。
【００６３】
図１１は、対象教示点ｐ２と隣接教示点ｐ１におけるエンドエフェクタ２０２の方向が同一で、これらの教示点ｐ１，ｐ２を接続する補間軌道Ｌ１が円弧補間だった場合の、対象教示点ｐ２の調整可能範囲を模式的に表した斜視図である。
【００６４】
この場合、調整可能距離Ｄは以下のように計算できる。すなわち、隣接教示点ｐ１と最近特異点ｓ３を通る、補間軌道Ｌ１を拡大縮小した線Ｌ１’を計算し、その端点ｅ１の座標を計算する。次に、最近特異点ｓ３と端点ｅ１を結ぶ直線と、対象教示点ｐ２との距離を計算し、調整可能距離Ｄとする。こうすることで、直線補間の場合と同様に、調整可能距離Ｄを半径とした球の内部の範囲Ｒａを含む調整可能範囲Ｒが算出され、モニタ４００へ表示することができる。
【００６５】
また、最近特異点ｓ３と調整可能距離生成点Ｐとを結ぶ直線を、最近特異点ｓ３から補間軌道Ｌ１に垂線Ｌｖを下した交差点Ｐｖと対象教示点ｐ２を結ぶ直線の周りに回転させる。この回転により得られる範囲から、交差点Ｐｖを中心として最近特異点ｓ３を通る円Ｃｖよりも隣接教示点ｐ１側を除いた範囲Ｒｂを、範囲Ｒａに追加し、調整可能範囲Ｒとして、モニタ４００へ表示することができる。
【００６６】
図１２は、対象教示点ｐ２の前後の補間軌道Ｌ１，Ｌ２を考慮した調整可能範囲Ｒを表した図である。対象教示点ｐ２の前後の補間軌道Ｌ１，Ｌ２に対応する調整可能範囲Ｒ１，Ｒ２を図１０や図１１のように計算し、その重なり合う範囲を対象教示点ｐ２の調整可能範囲Ｒとし、モニタ４００へ表示することができる。
【００６７】
本実施形態によれば、補間軌道Ｌ１，Ｌ２上の補間点を用いて対象教示点ｐ２の調整可能距離Ｄを求めているので、ロボット軌道と特異点との干渉を回避するための対象教示点ｐ２の調整作業の手間を削減することができる。
【００６８】
そして、ユーザは任意の教示点についてどの範囲で調整可能か、調整によって前後の補間軌道が特異点に入りにくいか否か、また注意すべき特異点はどこか、を容易に確認することができる。
【００６９】
また、任意の教示点について調整可能距離の計算を行うことで、ユーザは、教示点位置の評価やロボットの設置位置の評価を行い、ユーザによるそれらの決定を支援することができる。調整可能距離が大きいほど、教示点の移動・調整により変更された前後の補間軌道が特異点と干渉すること抑えることができる。
【００７０】
本実施形態の最も直接的な利用法は、任意教示点の調整可能距離を計算し、教示点位置の評価を行うことである。また調整可能距離に関する情報をモニタに表示することで、ユーザの教示点位置決定を支援することができる。
【００７１】
間接的な利用法の１つは、ロボット設置位置について任意教示点の調整可能距離を用いた評価を行い、評価値が最大となるロボット位置を計算することである。ロボット位置を自動的に計算しモニタに表示することで、ロボット位置の決定を支援することができる。
【００７２】
もう一つの間接的な利用法は、任意の教示点位置に関して調整可能距離が最大となる位置へ教示点を調整することである。調整可能距離が最大となる特異点位置を自動的に計算しモニタへ表示することで、教示点位置の決定を支援することができる。
【００７３】
（実施例１）
上記実施形態について、数値例を挙げて具体的に説明する。図６のステップＳ１では、作業環境内に対象となるロボット２００を、世界座標系原点（ｘ＝０，ｙ＝０，ｚ＝０）に設置する。設置するロボット２００（図１）のリンクパラメータは以下の通りとする。
【００７４】
【表１】
2015066668.tif 000003
【００７５】
次に、ステップＳ２では、対象となるロボット２００に対して、任意の作業を行わせるための教示点を設置する。教示点は、第４，第５，第６関節軸Ｊ４，Ｊ５，Ｊ６の交点Ｐｘ（つまり第５関節軸Ｊ５の中心）の位置を示すこととした。ここでは以下の３つの教示点ｐ１，ｐ２，ｐ３を設定した。また、エンドエフェクタ２０２の先端方向は鉛直下向きとした。
【００７６】
【表２】
2015066668.tif 000004
【００７７】
次に、ステップＳ３では、任意の作業を実行するために、本実施例１では直線補間方式を用いた補間を行った。
【００７８】
次に、ステップＳ４では、調整可能範囲を表示しようとする対象教示点を選択し、対象教示点の前後に存在する教示点を選択し、当該教示点と繋がる補間軌道を分割した。このとき分割数が多いほど正確な調整可能範囲の計算が行えるが、分割数多いほど計算時間がかかるため、必要に応じて適切な分割数を選択するのがよい。またこのとき選択する教示点は前後どちらかの教示点のみでも構わない。本実施例１では対象教示点を教示点ｐ２とし、教示点ｐ１〜教示点ｐ２と教示点ｐ２〜教示点ｐ３を以下のようにそれぞれ５分割した。
【００７９】
【表３】
2015066668.tif 000005
【００８０】
次に、ステップＳ５では、各補間点ｑ１〜ｑ８及び対象教示点ｐ２に関して最も近接している特異点（最近特異点）までの距離を計算する。具体的には、各補間点ｑ１〜ｑ８及び対象教示点ｐ２に対して肩特異点、肘特異点、手首特異点までの距離を計算し、最も距離が近接している特異点の種類を特定する。
【００８１】
【表４】
2015066668.tif 000006
【００８２】
次に、ステップＳ６では、補間軌道Ｌ１，Ｌ２上の補間点ｑ１〜ｑ８及び対象教示点ｐ２に対応する最近特異点の位置を計算する。本実施例１では、各補間点における最近特異点の種類はすべて手首特異点であった。手首特異点の位置計算手法は、上記実施形態（図５）で説明したとおりである。
【００８３】
【表５】
2015066668.tif 000007
【００８４】
次に、ステップＳ７では、特異点と教示点の関係から調整可能距離を計算する（図８）。まず、各補間点ｑ１〜ｑ８及び対象教示点ｐ２について、最近特異点と、隣接する教示点ｐ１を通る直線を求め、その直線と対象教示点ｐ２との距離を計算し、評価距離（調整距離）とする。次に各補間点ｑ１〜ｑ８及び対象教示点ｐ２の評価距離を比較し、最も短い最短評価距離（最短調整距離）を、対象教示点ｐ２の調整可能距離とする。
【００８５】
図８のように対象教示点ｐ２の前後に隣り合う教示点ｐ１，ｐ３がある場合は、前後の教示点ｐ１，ｐ３に関して同様の計算を行い、両方の調整可能距離を比較し、短い方を対象教示点ｐ２の調整可能距離として利用できる。以下は、各補間点ｑ１〜ｑ８及び対象教示点ｐ２に対応する評価距離である。
【００８６】
【表６】
2015066668.tif 000008
【００８７】
本実施例１では、教示点ｐ２の調整可能距離は補間点ｑ４による評価距離である２１．１６２５５（ｍｍ）だとわかる。ステップＳ８では、計算した調整可能距離に関する情報について、図９のような情報をモニタ４００に表示する。その際、教示点、補間軌道、近接特異点と対応する補間点、図１０や図１１、図１２のような調整可能範囲を同時に表示しても良い。
【００８８】
このように教示点の調整可能距離と対応する最近特異点を計算し提示することで、ユーザは任意教示点が調整（移動）に対してどの程度頑強であるかを容易に理解することができる。また、調整可能距離を構成する特異点や軌道上の補間点を同時に提示することで、ユーザは教示点を修正する指標を容易に得ることができる。
【００８９】
（実施例２）
実施例２では、教示点の調整可能距離を評価値としたロボットの設置位置算出方法について、図１３を用いて説明する。実施例２では、調整可能距離が最大となるロボット位置をモニタへの表示について説明する。実施例１と異なる点は、複数の教示点の調整可能距離情報を利用してロボット位置を評価している点である。
【００９０】
実施例２では、任意の条件において任意教示点の調整可能距離によって計算されたロボット設置位置の評価値が最大となる位置を探索し、その位置をモニタに表示する。まず初めに教示点ｐ１，ｐ２，ｐ３を設定する。次に、ロボット設置位置Ｐｒを設定する。これにより、特異点ｓａ，ｓｂの位置が決定する。教示点間を結ぶ補間軌道Ｌ１，Ｌ２上の各補間点から最近特異点ｓａ，ｓｂの位置を計算し、調整可能距離を計算し、任意教示点の調整可能距離の合計値や平均値や最低値を利用してロボット設置位置の評価を行う。ロボット設置位置（Ｐｒ’）を次々に変更することで特異点（ｓａ’，ｓｂ’）の位置が次々に変化するため、各ロボット位置で評価値を計算し各ロボット位置評価の比較を行う。
【００９１】
以下、具体的に説明すると、ＣＰＵ３０１は、各教示点ｐ１，ｐ２，ｐ３を順次対象教示点とし、上記実施形態で説明した方法（図６）の各工程（ステップＳ１〜Ｓ７）を実行する。
【００９２】
次いで、ＣＰＵ３０１は、各教示点ｐ１〜ｐ３の調整可能距離を合計又は平均した評価値を演算する（評価値算出工程）。ＣＰＵ３０１は、ロボット２００の設置位置を仮想的に変更して、評価値が最大となるロボット２００の設置位置を求める（設置位置算出工程）。そして、ＣＰＵ３０１は、評価値が最大となるロボット２００の設置位置に関する情報を、モニタ４００に表示させる（設置位置表示工程）。
【００９３】
実施例２により、任意条件における教示点の調整可能距離が最大となるロボット設置位置を計算し、モニタに表示することができる。つまり、実環境における教示点調整によって、軌道が特異点近傍に侵入するリスクを低減したロボット設置位置をユーザに提示することが可能である。
【００９４】
上記実施例１と同様のロボット２００及び教示点ｐ１，ｐ２，ｐ３を用いる。ロボット２００の初期位置は、世界座標系原点（ｘ＝０，ｙ＝０，ｚ＝０）とする。すると、教示点ｐ１、教示点ｐ２、教示点ｐ３に関する補間点の評価距離は以下のように計算できる。
【００９５】
【表７】
2015066668.tif 000009
【００９６】
教示点ｐ２については、前後に教示点ｐ１、教示点ｐ３があるため、２回に分けて評価距離を計算している。つまり、各教示点の調整可能距離は以下のようになる。
【００９７】
【表８】
2015066668.tif 000010
【００９８】
ロボット２００の位置調整範囲内で、同様に調整可能距離を計算する。本実施例２では、各教示点の調整可能距離の合計をロボット位置の評価値とし、ロボット２００の周囲８点においてロボット２００の位置の評価値を計算した。
【００９９】
【表９】
2015066668.tif 000011
【０１００】
以上より評価値が最も高いのは、ロボット２００の設置位置を世界座標系（ｘ＝０．０，ｙ＝＋１０．０，ｚ＝０）の場合であり、この位置にロボット２００の設置位置を変更すると、各教示点が調整された際にも補間軌道が特異点と干渉する可能性が低くなる。
【０１０１】
本実施例２の処理を繰り返すことで、より評価値の高いロボット２００の位置を計算し、モニタ４００に表示することができる。計算したロボット２００の設置位置については、計算前後の位置や特異点を同時にモニタ４００に表示しても良いし、単に最終的な計算結果であるロボット２００の位置のみモニタ４００に表示しても良い。その際、計算前後での評価値の変化をユーザに提示すると、より効果的に位置決定を支援することができる。
【０１０２】
（実施例３）
実施例３では、調整可能範囲を最大にする教示点位置の計算方法について図１４を用いて説明する。実施例３では、調整可能距離が最大となるように任意の対象教示点の位置を調整する。実施例１と異なる点は、対象教示点の調整可能距離を、任意条件において最大にするように教示点位置を更新する点にある。
【０１０３】
まず初めに教示点ｐ１，ｐ２，ｐ３を設定する。調整の対象となる教示点ｐ２と、補間軌道Ｌ１，Ｌ２に対応する調整可能距離Ｄ１，Ｄ２と、各調整可能距離を計算するための調整可能距離生成点Ｐ１，Ｐ２と対象教示点ｐ２との距離及び方向の情報を利用して、対象となる教示点の位置を調整する。調整可能距離生成点Ｐ１，Ｐ２から仮想的な斥力ｆ１，ｆ２が働いていると考え、調整方向や調整距離を決定し、対象教示点ｐ２について微小距離調整を行う。調整を繰り返すことで、任意条件において調整可能距離が最大となる教示点位置を探索することができる。このとき調整の繰り返し終了条件は、「初期値からの調整量が一定値を超えたら終了」，「対象教示点の調整可能距離が一定値以上になったら終了」，「繰り返し回数が規定数に達したら終了」など、さまざまに設定することができる。本手法を用いることで、任意条件において任意教示点の調整可能距離を最大にするような教示点の調整結果ｐ２’を計算し、モニタに表示することが可能である。
【０１０４】
つまり、ＣＰＵ３０１は、対象教示点ｐ２の位置を仮想的に変更して、調整可能距離が最大となる対象教示点ｐ２の変更位置を求める（変更位置算出工程）。そして、ＣＰＵ３０１は、調整可能距離が最大となる対象教示点ｐ２の変更位置に関する情報を、モニタ４００に表示させる（変更位置表示工程）。
【０１０５】
任意の調整量内で、調整可能範囲を最大にする教示点の位置の計算する例として、実施例１と同様の状況において教示点ｐ２を調整する方法について示す。
【０１０６】
まず、調整方向を決定するために、教示点ｐ２の前後の補間軌道Ｌ１，Ｌ２に対応する調整可能距離生成点Ｐ１，Ｐ２の位置を計算する。
【０１０７】
【表１０】
2015066668.tif 000012
【０１０８】
調整可能距離生成点から仮想的な斥力ｆ１，ｆ２が働いていると考え、教示点の調整方向を決定する。各斥力が働く方向は、各調整可能距離生成点Ｐ１，Ｐ２から対象教示点ｐ２への方向である。それぞれの方向を単位ベクトルで表すと以下のようになる。
【０１０９】
【表１１】
2015066668.tif 000013
【０１１０】
各調整方向に調整する距離の比率は調整可能距離を用いて計算する。調整距離を１ｍｍとすると、各調整可能距離Ｄ１，Ｄ２によって計算できる教示点の調整距離は以下のようになる。
【０１１１】
【表１２】
2015066668.tif 000014
【０１１２】
以上より、調整後の教示点ｐ２の位置は以下のようになる。
【０１１３】
【表１３】
2015066668.tif 000015
【０１１４】
教示点ｐ２を調整することにより、補間軌道が変化するため補間点の位置が変化する。このとき、教示点２の前後補間軌道に対応する調整可能距離は以下のようになる。
【０１１５】
【表１４】
2015066668.tif 000016
【０１１６】
以上のように、教示点の位置を調整（変更）することによって当該教示点の調整可能距離を改善することができる。本処理を繰り返すことで、より調整可能距離が改善される位置に教示点を調整することができる。さらに、教示点の最大調整量や調整回数などの終了条件を付与することで、条件内で最良となる教示点位置を計算しモニタ４００に表示することができる。このように調整位置を計算しユーザに提示することで、ロボット設置位置の決定支援となる。
【０１１７】
計算した教示点位置については、図１４のように計算前後の教示点位置や特異点、調整可能距離生成点などの情報を同時にモニタ４００に表示しても良いし、単に最終的な計算結果である教示点位置のみモニタ４００に表示しても良い。その際、計算前後での評価値の変化をユーザに示すことでより効果的に位置決定を支援することができる。
【０１１８】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
【０１１９】
上記実施形態では、ロボットを制御する制御装置がシミュレーションを行う場合について説明したが、これに限定するものではなく、制御装置とは別の装置がシミュレーションを行うようにしてもよい。
【０１２０】
また、上記実施形態の各処理動作は具体的には制御部としてのＣＰＵ３０１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を制御装置に供給し、制御装置のコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１２１】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４であり、ＨＤＤ３０４にプログラム３３０が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図２に示すＲＯＭ３０２、記録ディスク３３１、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。
【０１２２】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１２３】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１２４】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【０１２５】
また、上記実施形態では、コンピュータがＨＤＤ等の記録媒体に記録されたプログラムを実行することにより、画像処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【符号の説明】
【０１２６】
１００…ロボットシステム、２００…ロボット、３０１…ＣＰＵ（演算部）
【図１】
2015066668.tif 000017
【図２】
2015066668.tif 000018
【図３】
2015066668.tif 000019
【図４】
2015066668.tif 000020
【図５】
2015066668.tif 000021
【図６】
2015066668.tif 000022
【図７】
2015066668.tif 000023
【図８】
2015066668.tif 000024
【図９】
2015066668.tif 000025
【図１０】
2015066668.tif 000026
【図１１】
2015066668.tif 000027
【図１２】
2015066668.tif 000028
【図１３】
2015066668.tif 000029
【図１４】
2015066668.tif 000030