(57)【要約】【課題】  多関節ロボットは教示の自由度が高く、同一の姿勢でも複数の関節角の組み合わせが考えられるため、動作プログラム全体で動作時間が短くなる関節角の組み合わせが選択することが困難である。【解決手段】  多関節ロボットを関節の回転可能な範囲に基づいて、教示点と同一となる関節角の組み合わせを算出し、その中から、動作時間が最短となる組み合わせを用いて、関節の回転角度の設定値を修正し、多関節ロボットの動作を制御する。【選択図】  図１０
2019042875.tif 000002
【特許請求の範囲】
【請求項１】
目標位置までの教示点が複数教示された多関節ロボットの制御方法であって、
前記多関節ロボットは、回転可能な関節を有し、
前記関節の回転可能な範囲に基づいて、前記教示点と同一となる前記関節の回転角度の設定値の候補を複数算出し、当該複数の候補の中から、前記多関節ロボットの前記目標位置までの動作時間が最短となる候補を用いて、前記教示点に関する前記関節の回転角度の設定値を修正する修正工程と、
前記修正工程によって修正された設定値を用いて前記多関節ロボットの動作を制御する制御工程と、からなることを特徴とする制御方法。
【請求項２】
請求項１に記載の制御方法において、前記多関節ロボットは３６０度以上回転できる関節を少なくとも１つ有していることを特徴とする制御方法。
【請求項３】
請求項２に記載の制御方法において、前記修正工程は、教示された前記関節の回転角度の設定値を３６０度加算または減算して、前記複数の候補を算出することを特徴とする制御方法。
【請求項４】
請求項３に記載の制御方法において、前記修正工程は、ある候補が前記関節の回転可能な角度の上限値または下限値を超える場合、該候補を除外することを特徴とする制御方法。
【請求項５】
請求項１に記載の制御方法において、前記修正工程は、逆運動学を用いて前記複数の候補を算出することを特徴とする制御方法。
【請求項６】
請求項１に記載の制御方法において、前記修正工程は、ある候補を前記多関節ロボットに設定した際、他の周辺機器と干渉する場合、該候補を除外することを特徴とする制御方法。
【請求項７】
請求項１から請求項６のいずれか１項に記載の制御方法を実行するためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録した、コンピュータで読み取り可能な記録媒体。
【請求項９】
目標位置までの教示点が複数教示された多関節ロボットの制御装置であって、
前記関節の回転可能な範囲に基づいて、前記教示点と同一となる前記関節の回転角度の設定値の候補を複数算出する算出手段と、
当該複数の候補の中から、前記多関節ロボットの前記目標位置までの動作時間が最短となる候補を用いて、前記教示点に関する前記関節の回転角度の設定値を修正する修正手段と、
前記修正手段によって修正された設定値を用いて前記多関節ロボットの動作を制御することを特徴とする制御装置。
【請求項１０】
請求項９に記載の制御装置において、前記多関節ロボットは３６０度以上回転できる関節を少なくとも１つ有していることを特徴とする制御装置。
【請求項１１】
多関節ロボットの教示方法であって、
前記多関節ロボットの目標位置までの教示点を複数設定する教示点設定工程と、
前記関節の回転可能な範囲に基づいて、前記教示点設定工程で設定された前記教示点と同一となる前記関節の回転角度の設定値の候補を複数算出する算出工程と、
当該複数の候補の中から、前記多関節ロボットの前記目標位置までの動作時間が最短となる候補を用いて、前記教示点設定工程で設定した前記教示点に関する前記関節の回転角度の設定値を修正する修正工程と、を有することを特徴とする教示方法。
【請求項１２】
請求項１１に記載の制御装置において、前記多関節ロボットは３６０度以上回転できる関節を少なくとも１つ有していることを特徴とする教示方法。
【請求項１３】
請求項１１または請求項１２に記載の教示方法を実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを記録した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシミュレーションモデルを用いた多関節ロボットの制御方法および制御装置に関するものである。
【背景技術】
【０００２】
近年、工場の生産ラインにおいて組立・搬送・塗布といった作業は産業用ロボットによって自動化が行われている。特に産業用ロボットには回転駆動する関節を複数有する構造をもつ多関節ロボットが利用される場合が多い。多関節ロボットには、各関節に回転可能な範囲の上限値、下限値が設定されているが、関節によっては１回転以上の回転が可能な場合がある。このような関節がある場合、関節を１回転させることで、多関節ロボットの同一の教示点を、複数組の各関節の回転角度の組み合わせで実現することが出来る。また、逆運動学を用いることで１回転する関節が無くても同一の教示点を複数組の各関節の回転角度の組み合わせで実現することができる。教示点とは多関節ロボットのハンド部等に設定した位置と方向のことであり、位置はＸ、Ｙ、Ｚ方向の並進量、方向はオイラー角で表される。
【０００３】
このように多関節ロボットは同一の教示点を複数組の各関節の回転角度の組み合わせで実現することができるため自由度が大きい。一般にロボットを動作させる際、動作時間をできるだけ短くしロボットの作業効率を高めることが求められる。特許文献１では多回転可能な関節を使用して、ある教示点からある教示点へ動作する際、動作させる関節の回転量が少なくなる方向へ動作させ動作時間を短縮させている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３２６１０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１に記載の技術は２つの教示点間の動作しか考慮していない。そのため、動作する教示点全体で動作時間を考えた場合、あえて回転量が多くなる方向へ動作させたほうが、動作時間を短縮できる場合がある。
【０００６】
さらに、ある教示点に対して取り得る各関節の回転角度の組み合わせ候補数が多くなるため、教示者が任意に設定した組み合わせよりも動作時間が短縮する組み合わせが存在する場合がある。しかし教示点が増えるほど取り得る組み合わせ候補数は多くなり、教示作業が煩雑になるため、容易に動作時間を短縮させることが難しくなる。
【０００７】
そこで、本発明の課題は、多関節ロボットの教示データを修正し、容易に動作時間を短縮可能とすることにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために請求項１に記載の発明は、目標位置までの教示点が複数教示された多関節ロボットの制御方法であって、前記多関節ロボットは、３６０度以上回転できる関節を少なくとも１つ有し、前記関節の回転可能な範囲に基づいて、前記教示点と同一となる前記関節の回転角度の設定値の候補を複数算出し、当該複数の候補の中から、前記多関節ロボットの前記目標位置までの動作時間が最短となる候補を用いて、前記教示点に関する前記関節の回転角度の設定値を修正する修正工程と、前記修正工程によって修正された設定値を用いて前記多関節ロボットの動作を制御する制御工程と、からなることを特徴とする制御方法。
【発明の効果】
【０００９】
請求項１に記載の方法によれば、多回転可能な関節が存在する多関節ロボットの動作時間を煩雑な作業を行うことなく短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態における多関節ロボット１０の概略構成図である。
【図２】本発明の第１実施形態におけるシミュレーション装置１００の概略構成図である。
【図３】本発明の第１実施形態における多関節ロボット１０の各関節Ｊ１からＪ６の回転の下限値・上限値の表である。
【図４】多回転可能な関節による動作時間の短縮を説明した動作シミュレーション図である。
【図５】多回転可能な関節による動作時間の短縮を説明した動作シミュレーション図である。
【図６】本発明の第１実施形態における多関節ロボット１０の教示データ作成の処理の手順を示したフローチャートである。
【図７】本発明の第１実施形態におけるシミュレーションモデルを示した図である。
【図８】本発明の第１実施形態における教示者が教示データをシミュレーションモデルに記入するための画面構成を示した図である。
【図９】本発明の第１実施形態における各教示点での各関節の回転角度の組み合わせ候補の作成手順を示した図である。
【図１０】本発明の第１実施形態における各教示点で取り得る各関節の回転角度のグラフである。
【図１１】本発明の第２実施形態における各教示点での各関節の回転角度の組み合わせ候補の作成手順を示した図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施形態はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１２】
＜第１実施形態＞
本発明の第１実施形態に係る多関節ロボットの制御装置および制御方法について図面を用いて説明する。第１実施形態では、３６０度以上回転できる関節はその回転角度を３６０度加算、減算してもロボットの姿勢は同一となる特徴を踏まえ、シミュレーションモデルを用いて多関節ロボットを制御する。なお３６０度以上回転できる関節を多回転可能な関節と呼ぶ。
【００１３】
図１は多関節ロボット１０の構成の例を示した図である。本実施形態ではアーム部に６つの回転駆動する関節を持つ多関節ロボットを例に説明する。多関節ロボット１０は、ベース１１と、６つの関節Ｊ１からＪ６と、リンクで構成されるアーム部１５、ハンド部１２を備える。
【００１４】
また、市販されている多関節ロボットの中でも、特にＪ１、Ｊ４、Ｊ６の関節は、回転による他のリンクへの影響が少ないため、他の関節より多く回転出来るという特徴を持つ。そこで、本実施形態ではＪ１、Ｊ４、Ｊ６の関節を多回転可能な関節として扱う。
【００１５】
指令装置９４は、例えばティーチングペンダントのような指令装置である。制御装置９１はマイクロプロセッサなどから成るＣＰＵなどによって構成されている。制御装置９１には指令装置９４が接続され、制御装置９１からの制御値がモータドライバ９３に渡され、多関節ロボット１０を制御する。
【００１６】
また、多関節ロボット１０の各種動作に応じて対応する駆動部を制御するためのプログラムや、それらの制御に必要なデータ等を記憶したＲＯＭを有する。さらにロボットシステムを制御する上で必要なデータ、設定値、プログラム等を展開するとともにＣＰＵの作業領域として使用するＲＡＭを備えている。指令装置９４をはじめとする外部機器は汎用入出力インターフェイスＩ／Ｏなどによって接続されている。
【００１７】
なお、指令装置９４には、関節Ｊ１からＪ６の角度、あるいはハンド部１２を移動させるための操作キーを含む操作部（不図示）が配置される。指令装置９４の操作部で何らかのロボット操作が行われると、指令装置９４の操作に応じて、制御装置９１は不図示のケーブルを介してロボットアーム本体１の動作を制御する。
【００１８】
上記制御装置９１のＲＡＭに後述するシミュレーションモデルを用いて計算された教示データを書き込むことで多関節ロボット１０の制御を行う。同図の１は後述するシミュレーション装置１００の演算処理部を示している。これにより制御装置９１のＲＡＭにシミュレーションモデルを用いて計算した教示データを書き込むことができる。
【００１９】
図２は第１実施形態における多関節ロボット１０のシミュレーション装置１００の構成を示した図である。シミュレーション装置１００は、ＣＰＵ等からなる演算処理部１と、教示者等がデータ入力などを行う入力部２と、動作プログラム、シミュレーションモデル等を記録する記録部３と、３Ｄ画面や動作プログラムの一覧の表示を行う表示部４を備えている。
【００２０】
図３は多関節ロボット１０の各関節Ｊ１からＪ６の回転の下限値、上限値を表にしたものである。下限値と上限値の絶対値の和が３６０°以上となる関節は１回転以上の回転が可能な関節であり、すなわち多回転可能な関節である。前述した通り、関節Ｊ１、Ｊ４、Ｊ６を多回転可能な関節として扱う。
【００２１】
なお、本実施形態では以上に示すような構成の多関節ロボットにて説明するが、本発明は多回転可能な関節を有する多関節ロボットならば、いかなる構成のものでも適用可能である。よって本発明の請求範囲を限定して解釈されるものではない。
【００２２】
ここで、ある教示点から別の教示点へ動作する際、多回転可能な関節の回転駆動による多関節ロボットの動作時間の短縮について図４、図５を用いて詳しく説明する。図４、図５は図２のシミュレーションモデルを上から見た図となっている。
【００２３】
図４（ａ）は教示点３２を基準に考えた場合の関節Ｊ１の可動範囲を実線矢印により示している。実線Ｏを基準に反時計回りを＋方向として＋２２０°、時計回りを−方向として−２２０°の範囲で回転できるものとする。
【００２４】
ここで、教示点３０、３１、３２に設定されている関節Ｊ１の回転角度がそれぞれ＋６０°、−６０°、＋１４０°であり、教示点３０、３１、３２の順番で駆動させる場合を考える。図４（ｂ）は教示点３０から教示点３１に駆動させている場合の図である。関節Ｊ１は可動範囲に従って図４（ｂ）の破線矢印のように＋６０°から−６０°へ駆動する。
【００２５】
続いて図４（ｃ）では教示点３１から教示点３２に駆動する場合である。教示点３２は＋１４０°で設定されているため、図４（ｃ）に示した破線矢印のように一旦基準となるＯに戻り、教示点３０を通って図４（ｄ）のように教示点３２に駆動する。
【００２６】
しかし、教示点３２は−２２０°と設定することもできる。ゆえに関節Ｊ１の回転角度を−２２０°と設定しておけば、図５に示した破線のように駆動をさせることができる。こうすることで関節Ｊ１の駆動量を小さくすることができ、多関節ロボット１０の動作時間を短縮させることができる。
【００２７】
上記では関節Ｊ１のみで説明したが、実際には多回転可能な関節は複数あり、動作時間が最短となる各教示点での各関節の回転角度の組み合わせを設定するには煩雑な作業が必要となる。この、動作時間が最短となる各関節の回転角度の組み合わせを以下で詳述する方法により容易に設定することができる。
【００２８】
図６は本実施形態の多関節ロボットの教示データ作成の処理の流れを示したフローチャート図である。
【００２９】
図６より工程Ｓ１００では教示者により対象となる教示点設定を行う。多関節ロボット１０は複数の教示点を通るように移動経路が設定される。各教示点は工程Ｓ１００を行うよりも前に、教示者により指令装置９４や、シミュレーション等によって、図７に示すシミュレーションモデルが作成されているものとする。
【００３０】
図７より多関節ロボット１０と、周辺機器２０、組み付けや搬送を行う対象であるワーク２１が３Ｄシミュレーションモデルとして作成されている。また、教示者が作成した教示点３０、３１、３２も表示される。
【００３１】
各教示点に対応する多関節ロボット１０の姿勢は６つの関節の回転角度の組み合わせから成り、多関節ロボット１０が各教示点に対応する姿勢をとった時の各関節Ｊ１からＪ６の角度を最初、以下のように教示者が複数教示したとする。
教示点３０    ＝    ｛    ４５°、４０°、−１０°、０°、８０°、１００°｝
教示点３１    ＝    ｛    −４０°、１０°、２０°、２００°、６０°、０°｝
教示点３２    ＝    ｛    １６０°、３０°、０°、−１４０°、６５°、−４０°｝
【００３２】
図８は、教示者が教示データをシミュレーションモデルに入力するための画面構成を示した図である。教示データを入力する際の画面内には表が配置され、教示者はそこに教示点等を記入する。本実施例によれば、各教示点における各関節の回転角度入力欄４１、各教示点への移動方法の入力欄４２、その他移動に関するオプション欄４３がそれぞれ設けられている。
【００３３】
移動方法の入力欄４２にはシミュレーションモデルに複数設定された教示点へ各関節単位の補間を行い移動する関節補間移動や、ロボットの手先が直線になるように移動する直線補間移動など、各教示点間をどのように移動するか入力できる。
【００３４】
入力欄４２の最初の行には移動方法を初期位置と記述し、その教示点の位置が多関節ロボット１０の動作の始点位置であることを示す。表内の入力欄４３には、その他移動に関するオプションの入力が出来る。例えば移動の速度の調整を行うための入力等がある。また、表内の各行に入力された順番は、そのまま動作を行う順番として表現される。図８の例では教示点３０の位置を初期位置とし、そこから教示点３１、教示点３２へと関節補間移動を行う教示データであることを示している。なお、本実施形態は教示点の設定時、多関節ロボットを直接動かして設定してもよい。
【００３５】
工程Ｓ１０１では教示データ内の各教示点に対して、同一の教示点（多関節ロボット１０の先端の位置と方向）を表す多関節ロボット１０の各関節の回転角度の組み合わせ候補を複数作成する工程である。ただし初期位置として決められている最初の教示点３０は、動作開始点に対応する組み合わせであるため、実際に教示点候補を作成するのは２つ目以降の教示点３１、３２に対してである。
【００３６】
図９（ａ１）、（ａ２）、（ａ３）（ａ４）は教示点３１を例に各関節の回転角度の組み合わせ候補の作成手順を示している。図９（ａ１）は教示者が任意に設定した組み合わせである。ここで本発明によれば、多回転可能な関節Ｊ１、Ｊ４、Ｊ６に対して、何も変更しない場合と、＋３６０°する場合と、−３６０°する場合の３通りの角度を計算する。
【００３７】
図９（ａ２）の表に示される値が、多回転可能な全ての関節に対して上記計算を行った表である。もしも多回転可能な関節が２回転以上するようならば、更に＋７２０°、−７２０°する場合の角度も計算する。Ｊ１、Ｊ４、Ｊ６は３通り、Ｊ２、Ｊ３、Ｊ５は１通りの組み合わせがあり得るため、これを組み合わせると全部で２７通りの組み合わせ候補が作成できる。
【００３８】
ここから明らかにあり得ない数値の回転角度を除外する。まず初めに各関節の回転角度の下限値、上限値を超えているものを除外する。図４に示される下限値・上限値からＪ１の−４００°と３２０°、Ｊ４の５６０°は除外できる。
【００３９】
以上の方法により図９（ａ３）の表の組み合わせ候補が残るため、以下のような６つの組み合わせとなる（図９（ａ４））。
教示点３１−１    ＝  ｛    −４０°、１０°、２０°、−１６０°、６０°、−３６０°｝
教示点３１−２    ＝  ｛    −４０°、１０°、２０°、−１６０°、６０°、０°｝
教示点３１−３    ＝  ｛    −４０°、１０°、２０°、−１６０°、６０°、３６０°｝
教示点３１−４    ＝  ｛    −４０°、１０°、２０°、２００°、６０°、−３６０°｝
教示点３１−５    ＝  ｛    −４０°、１０°、２０°、２００°、６０°、０°｝
教示点３１−６    ＝  ｛    −４０°、１０°、２０°、２００°、６０°、３６０°｝
【００４０】
同様に教示点３２の組み合わせ候補の作成手順を図９（ｂ１）、（ｂ２）、（ｂ３）（ｂ４）に示す。教示点３２も同様に４つの組み合わせ候補（ｂ４）が作成される。
教示点３２−１    ＝    ｛    −２００°、３０°、０°、−１４０°、６５°、−４０°｝
教示点３２−２    ＝    ｛    −２００°、３０°、０°、−１４０°、６５°、３２０°｝
教示点３２−３    ＝    ｛    １６０°、３０°、０°、−１４０°、６５°、−４０°｝
教示点３２−４    ＝    ｛    １６０°、３０°、０°、−１４０°、６５°、３２０°｝
【００４１】
次に、工程Ｓ１０２では作成された各教示点の各関節の回転角度の組み合わせ候補を基に、教示データ候補を作成する。各関節の回転角度の組み合わせ候補は、教示点３０は１通り、教示点３１は６通り、教示点３２は４通りあるため、全部で２４通りの教示データ候補を作成できる。
【００４２】
工程Ｓ１０３では作成された教示データ候補の中から、動作時間が最短となるものを図７に示したシミュレーションモデルにより算出する工程である。まず初めに各関節の回転角度の組み合わせ候補を通って移動する時の動作時間をシミュレーションモデルの軌道計算により算出する。上記より全部で２４回の軌道計算が必要となる。
【００４３】
ここで行われる軌道計算は、実際にロボットを動かした時の振る舞いと出来る限り近い方が良い。そのため、各関節の速度制限や、モータにかかるトルク等が、機構上の制約を超えないように制御を行った軌道計算方法であることが望ましい。
【００４４】
各教示点間の動作時間をシミュレーションモデルにより複数算出した後、動作時間が最短となる教示データ候補を選択する。これは最初から最後の教示点（本実施形態では教示点３０から教示点３２）までの各教示点間の動作時間の和を計算することで選択する事が出来る。本実施形態のように、全動作プログラム候補数が少ないならば、総当たりで計算しても良い。しかし、教示点候補数が多い場合などには総当たり数が多く、計算量が膨大になる可能性もある。そのような場合はグラフ探索のアルゴリズムを採用すると良い。
【００４５】
なお、上記では動作時間が最短となる各関節の回転角度の組み合わせを多関節ロボット１０が動作する教示経路での最後の教示点を目標位置と設定し求めた。しかし、教示経路での最後の教示点ではなく、教示経路の間の教示点を目標位置として設定し動作時間が最短となる各関節の回転角度の組み合わせを求めても良い。
【００４６】
図１０は各教示点で取り得る各関節の回転角度のグラフである。図１０（ａ）は最初に教示者が任意に設定した場合、図１０（ｂ）は上記のシミュレーションモデルにより最短の動作時間となる場合である。
【００４７】
関節ロボット１０のリンク長やハンド部１２の構成、各関節を回転させる角速度等の条件を一致させて動作時間をシミュレーションした結果、本実施形態では最短の動作時間となる各教示点での各関節の回転角度の組み合わせ候補が以下であったとする。
教示点３０    ＝    ｛    ４５°、４０°、−１０°、０°、８０°、１００°｝
教示点３１−２    ＝  ｛    −４０°、１０°、２０°、−１６０°、６０°、０°｝
教示点３２−３    ＝    ｛    −２００°、３０°、０°、−１４０°、６５°、−４０°｝
【００４８】
最初に設定した教示点３１と教示点３２を、それぞれ上記の教示点３１−２と教示点３２−３へ変更することで、シミュレーションの結果、図１０（ａ）では１７６４ｍｓ、図１０（ｂ）では１２３４ｍｓとなり、５３０ｍｓ短縮することができた。
【００４９】
上記の例では、図１に示す多関節ロボット１０において、アーム部１０の関節Ｊ２、Ｊ３、Ｊ５の角度は変えていない。多回転可能な関節Ｊ１、Ｊ４、Ｊ６の回転によってアーム部の姿勢が修正され、先端のハンド部１２の教示点への移動軌跡及びアーム部の姿勢が修正されている。
【００５０】
本実施例では関節Ｊ１、Ｊ４、Ｊ６を修正したが、すべての関節が多回転可能である場合は、すべての関節の回転角度を修正しても良い。
【００５１】
そしてＳ１０４で最短の動作時間となった教示データ候補を図２の表示部４に表示する。表示部４には教示点だけでなく、動作時間がどの程度短縮できるかも表示しても良い。また、各教示データ候補を動作時間の短い順にランキング形式で表示しても良い。
【００５２】
そしてＳ１０５で、最短の動作時間となった教示データを制御装置９１のＣＰＵに書き込みを行い、多関節ロボット１０を最短の動作時間で制御する。この書き込み作業は教示者により行われても良いし、シミュレーション装置１００により自動で書き込んでも良い。
【００５３】
以上、本実施形態の制御方法を採用することで、多回転可能な関節を持つ多関節ロボットでも動作時間の最短となる教示点の組み合わせを容易に算出する事が出来る。
【００５４】
また、教示者は多関節ロボットを制御するための教示データを作成する際、多関節ロボットの自由度による動作時間の影響を考慮する必要がなくなり、シミュレーション装置１００から出力された教示データを利用するだけで済むようになる。
【００５５】
＜第２実施形態＞
次に本発明の第２実施形態に係る多関節ロボットの制御装置および制御方法について図面を用いて説明する。本発明は関節の回転角度を修正することで多関節ロボット１０が周辺機器に影響を与える可能性がある場合でも実施可能である。以下で詳述する。
【００５６】
なお以下では、第１実施形態とは異なるハードウェアや制御系の構成の部分について図示し説明する。また、第１実施形態と同様の部分については上記と同様の構成ならびに作用が可能であるものとし、その詳細な説明は省略するものとする。
【００５７】
第２実施形態に関わる多関節ロボットの制御装置および制御方法の第１実施形態との差異は、図６のフローチャートにおける各関節の回転角度の組み合わせ候補作成工程Ｓ１０１のみである。よって工程Ｓ１０１について詳細に説明する。前提として工程Ｓ１０１で利用する教示点は第１実施形態同様に教示点３０、３１、３２とする。
【００５８】
工程Ｓ１０１で、第１実施形態では任意に設定された各関節の回転角度の組み合わせのうち、多回転可能な関節に±３６０°以上の値を加味して各関節の回転角度の組み合わせ候補を算出していた。第２実施形態では逆運動学解によって求められる複数の解により回転角度の組み合わせ候補を算出する。逆運動学とは、多関節ロボット１０の教示点（多関節ロボット１０の先端の位置と方向）から、各関節の回転角度を算出するための方法である。逆運動学は複数の解法があるが、ここではどのような解法をとるかは問わない。
【００５９】
図１１の（ａ２）（ｂ２）の表は、逆運動学により求まった教示点３１、３２の回転角度の組み合わせ候補を示している。これは各教示点が逆運動学によって２つの組み合わせが求まったことを表している。
【００６０】
ここから更に組み合わせ候補を絞るための処理を行う。教示点は同一だが多関節ロボットの姿勢は異なるため、新しく作られた各関節の回転角度の組み合わせ候補の姿勢を多関節ロボット１０が取った時に、周辺機器２０などと干渉する恐れがある。そこで、組み合わせ候補毎に干渉の有無を検証し、干渉する場合はその組み合わせ候補を除外することを行う。本実施例では図１１（ｂ３）表に示すように、教示点３２の組み合わせ候補のうちの１つが周辺機器２０に干渉したとして除外する。
【００６１】
以上の処理により各関節の回転角度の組み合わせ候補を絞り、多関節ロボット１０の動作全体の教示データの作成を行う。教示データ作成以降の処理は第１実施形態と同様である。この例では教示点３１が２通り、教示点３２が１通りしかないため、動作全体の教示データは２通りの検証を行えば良い。
【００６２】
以上第２実施形態の制御方法を採用すれば、第１実施形態と同様に動作全体で動作時間の最短となる教示点の組み合わせを算出する事が出来る。さらに周辺機器との干渉を加味するため、実際に動作させたときに多関節ロボットと周辺機器が干渉する危険性を低減できる。
【００６３】
また上記第１実施形態、第２実施形態では、動作のシミュレーションを、多関節ロボット１０の制御装置９１とは別のシミュレーション装置１００で行っていたが、多関節ロボット１０の制御装置９１で行うこともできる。その場合、演算処理部１を制御装置９１のＣＰＵ、記録部３を制御装置９１のＲＯＭに置き換え、入力部２と表示部４を制御装置９１に搭載すれば実現可能である。
【００６４】
以上により制御装置９１で、図７で示したフローすべてが実行される。従って上述した機能を実現するソフトウェアのプログラムを記録した記録媒体を制御装置９１に供給し、ＣＰＵがＲＯＭ等の記録媒体に格納されたプログラムまたはシミュレーションモデルを読み出し実行することによって達成されるよう構成することができる。この場合、記録媒体から読み出されたプログラム自体が上述した各実施形態の機能を実現することになり、プログラム自体およびそのプログラムを記録した記録媒体は本発明を構成することになる。
【００６５】
また、各実施形態では、コンピュータで読み取り可能な記録媒体がＲＯＭ或いはＲＡＭであり、ＲＯＭ或いはＲＡＭにプログラムが格納される場合について説明したが、本発明はこのような形態に限定されるものではない。本発明を実施するためのプログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【産業上の利用可能性】
【００６６】
本発明は産業用ロボットの教示に利用可能である。
【符号の説明】
【００６７】
１  演算処理部
２  入力部
３  記録部
４  表示部
１０  多関節ロボット
１１  ベース
１２  ハンド部
１５  アーム部
Ｊ１、Ｊ２、Ｊ３、Ｊ４、Ｊ５、Ｊ６  関節
２０  周辺機器
２１  ワーク
３０、３１、３２  教示点
４１  教示点記入部
４２  移動方法記入部
４３  オプション記入部
９１  制御装置
９３  モータドライバ
９４  指令装置
１００  シミュレーション装置
【図１】
2019042875.tif 000003
【図２】
2019042875.tif 000004
【図３】
2019042875.tif 000005
【図４】
2019042875.tif 000006
【図５】
2019042875.tif 000007
【図６】
2019042875.tif 000008
【図７】
2019042875.tif 000009
【図８】
2019042875.tif 000010
【図９】
2019042875.tif 000011
【図１０】
2019042875.tif 000012
【図１１】
2019042875.tif 000013