(57)【要約】【課題】ロボットの動作軌道作成装置において、一部の指令位置が修正された場合に、確認動作軌道と実動作軌道とがずれることを抑制する。【解決手段】複数の指令位置（Ｒ０〜Ｒ７）を通過するスプライン曲線で規定されたロボットの動作軌道（Ｌ０、Ｌ２）を作成する動作軌道作成装置であって、複数の指令位置のうち一部の指令位置（Ｒ３）が修正された場合に、ロボットの確認動作の開始位置（Ｎ）よりも１つ前に存在する指令位置（Ｒ２）、開始位置から確認動作の終了位置（Ｒ５）までに含まれる指令位置（Ｒ３Ａ〜Ｒ５）、及び終了位置よりも１つ後に存在する指令位置（Ｒ６）を用いて、スプライン曲線で規定される所定動作軌道を作成する第１作成部と、第１作成部により作成された所定動作軌道のうち、開始位置から終了位置までの部分を抽出して確認動作軌道を作成する第２作成部と、を備える。【選択図】      図３
2020044604.tif 000002
【特許請求の範囲】
【請求項１】
複数の指令位置を通過するスプライン曲線で規定されたロボットの動作軌道を作成する動作軌道作成装置であって、
前記複数の指令位置のうち一部の指令位置が修正された場合に、前記ロボットの確認動作の開始位置よりも１つ前に存在する前記指令位置、前記開始位置から前記確認動作の終了位置までに含まれる前記指令位置、及び前記終了位置よりも１つ後に存在する前記指令位置を用いて、スプライン曲線で規定される所定動作軌道を作成する第１作成部と、
前記第１作成部により作成された前記所定動作軌道のうち、前記開始位置から前記終了位置までの部分を抽出して確認動作軌道を作成する第２作成部と、
を備えるロボットの動作軌道作成装置。
【請求項２】
前記第１作成部は、前記複数の指令位置のうち一部の指令位置が修正された場合に、前記ロボットの確認動作の開始位置よりも１つ前及び２つ前に存在する前記指令位置、前記開始位置から前記確認動作の終了位置までに含まれる前記指令位置、並びに前記終了位置よりも１つ後及び２つ後に存在する前記指令位置を用いて、前記所定動作軌道を作成する、請求項１に記載のロボットの動作軌道作成装置。
【請求項３】
前記第１作成部は、前記複数の指令位置のうち一部の指令位置が修正された場合に、前記複数の指令位置を全て用いて、前記所定動作軌道を作成する、請求項１又は２に記載のロボットの動作軌道作成装置。
【請求項４】
前記開始位置は前記ロボットの現在位置である、請求項１〜３のいずれか１項に記載のロボットの動作軌道作成装置。
【請求項５】
前記第１作成部は、前記複数の指令位置のうち一部の指令位置が修正された時に、前記所定動作軌道を作成する、請求項１〜４のいずれか１項に記載のロボットの動作軌道作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを動作させる動作軌道を作成する動作軌道作成装置に関する。
【背景技術】
【０００２】
従来、複数の指令位置を通過するスプライン曲線で規定された動作軌道に沿って、ロボットを動作させる装置がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−４２０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載の装置において、一部の指令位置を修正した場合は、修正後の指令位置を通過するように動作軌道を修正する必要がある。この際に、修正後の動作軌道を確認するためにロボットの現在位置から作成した確認動作軌道と、ロボットを初期位置から動作させた場合の実動作軌道とがずれることに、本願発明者は着目した。
【０００５】
本発明は、上記課題を解決するためになされたものであり、その主たる目的は、ロボットの動作軌道作成装置において、一部の指令位置が修正された場合に、確認動作軌道と実動作軌道とがずれることを抑制することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第１の手段は、
複数の指令位置を通過するスプライン曲線で規定されたロボットの動作軌道を作成する動作軌道作成装置であって、
前記複数の指令位置のうち一部の指令位置が修正された場合に、前記ロボットの確認動作の開始位置よりも１つ前に存在する前記指令位置、前記開始位置から前記確認動作の終了位置までに含まれる前記指令位置、及び前記終了位置よりも１つ後に存在する前記指令位置を用いて、スプライン曲線で規定される所定動作軌道を作成する第１作成部と、
前記第１作成部により作成された前記所定動作軌道のうち、前記開始位置から前記終了位置までの部分を抽出して確認動作軌道を作成する第２作成部と、
を備える。
【０００７】
上記構成によれば、動作軌道作成装置は、複数の指令位置を通過するスプライン曲線で規定されたロボットの動作軌道を作成する。ここで、複数の指令位置のうち一部の指令位置が修正された場合に、ロボットの確認動作の開始位置から終了位置までに含まれる指令位置だけを用いて確認動作軌道を作成すると、以下の問題が生じる。すなわち、動作軌道を規定するスプライン曲線は、指令位置と指令位置との間の各スプライン曲線セグメントを接続する際に所定の接続条件を満たす必要がある。このため、開始位置を通過するスプライン曲線セグメントは、開始位置よりも前の指令位置を通過するスプライン曲線セグメントから影響を受ける。したがって、開始位置（例えば現在位置）から作成した確認動作軌道と、ロボットを初期位置から動作させた場合の実動作軌道とがずれることがある。
【０００８】
この点、第１作成部は、複数の指令位置のうち一部の指令位置が修正された場合に、ロボットの確認動作の開始位置から終了位置までに含まれる指令位置だけでなく、開始位置よりも１つ前に存在する指令位置及び終了位置よりも１つ後に存在する指令位置を用いて、スプライン曲線で規定される所定動作軌道を作成する。このため、所定動作軌道は、開始位置よりも１つ前の指令位置を通過するスプライン曲線セグメント、及び終了位置よりも１つ後の指令位置を通過するスプライン曲線セグメントを反映したものとなる。そして、第２作成部は、第１作成部により作成された所定動作軌道のうち、開始位置から終了位置までの部分を抽出して確認動作軌道を作成する。このため、開始位置よりも前のスプライン曲線セグメント及び終了位置よりも後のスプライン曲線セグメントを反映して、確認動作軌道を作成することができる。特に、確認動作の開始位置を通過するスプライン曲線セグメントは、開始位置よりも１つ前の指令位置から強く影響を受ける。また、確認動作の終了位置を通過するスプライン曲線セグメントは、終了位置よりも１つ後の指令位置から強く影響を受ける。したがって、ロボットの動作軌道作成装置において、一部の指令位置が修正された場合に、確認動作軌道と実動作軌道とがずれることを抑制することができる。
【０００９】
なお、第１作成部は、確認動作の開始位置よりも１つ前に指令位置が存在しない場合は、開始位置よりも１つ前の指令位置を用いずに所定動作軌道を作成する。また、第１作成部は、確認動作の終了位置よりも１つ後に指令位置が存在しない場合は、終了位置よりも１つ後の指令位置を用いずに所定動作軌道を作成する。また、複数の指令位置のうち一部の指令位置が修正された場合には、一部の既存の指令位置の位置が修正された場合、一部の既存の指令位置が削除された場合、及び新たな指令位置が追加された場合が含まれる。
【００１０】
確認動作の開始位置を通過するスプライン曲線セグメントは、開始位置よりも１つ前だけでなく２つ前の指令位置からも比較的強く影響を受ける。また、確認動作の終了位置を通過するスプライン曲線セグメントは、終了位置よりも１つ後だけでなく２つ後の指令位置からも比較的強く影響を受ける。
【００１１】
この点、第２の手段では、前記第１作成部は、前記複数の指令位置のうち一部の指令位置が修正された場合に、前記ロボットの確認動作の開始位置よりも１つ前及び２つ前に存在する前記指令位置、前記開始位置から前記確認動作の終了位置までに含まれる前記指令位置、並びに前記終了位置よりも１つ後及び２つ後に存在する前記指令位置を用いて、前記所定動作軌道を作成する。したがって、確認動作の開始位置から終了位置までに含まれる指令位置以外に、多数の指令位置を用いない場合であっても、所定動作軌道ひいては確認動作軌道の精度をさらに向上させることができる。
【００１２】
第３の手段では、前記第１作成部は、前記複数の指令位置のうち一部の指令位置が修正された場合に、前記複数の指令位置を全て用いて、前記所定動作軌道を作成する。このため、実動作軌道に等しい所定動作軌道のうち、確認動作の開始位置から終了位置までの部分を抽出して確認動作軌道を作成することができる。したがって、ロボットの動作軌道作成装置において、一部の指令位置が修正された場合に、確認動作軌道を実動作軌道に一致させることができる。
【００１３】
第４の手段では、前記開始位置は前記ロボットの現在位置である。このため、ロボットの現在位置から確認動作軌道を作成する場合に、確認動作軌道と実動作軌道とがずれることを抑制することができる。したがって、現在位置から確認動作軌道を容易に作成することができるとともに、確認動作軌道の精度を向上させることができる。
【００１４】
第５の手段では、前記第１作成部は、前記複数の指令位置のうち一部の指令位置が修正された時に、前記所定動作軌道を作成する。このため、複数の指令位置のうち一部の指令位置が修正された時点で、ロボットの確認動作が指令される前に予め所定動作軌道を作成しておくことができる。したがって、ロボットの確認動作が指令された際に、速やかに確認動作軌道を作成することができ、ひいては速やかに確認動作を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】ロボット、コントローラ、及びティーチングペンダントを示す概略図。
【図２】指令位置と指令位置を通過するスプライン曲線とを示す模式図。
【図３】修正後の指令位置及び修正御の動作軌道を示す模式図。
【発明を実施するための形態】
【００１６】
以下、垂直多関節型ロボットの制御装置に具現化した一実施形態について、図面を参照しつつ説明する。本実施形態のロボットは、例えばバリ取り作業やシーリング作業を行うロボットとして機械組立工場などの組立システムにて用いられる。
【００１７】
はじめに、ロボット１０の概要を図１に基づいて説明する。
【００１８】
ロボット１０は、例えば６軸の垂直多関節型ロボットとして構成されている。ロボット１０は、ベース１１、ショルダ部１３、下アーム１５、第１上アーム１６Ａ、第２上アーム１６Ｂ、手首部１７、及びフランジ１８を備えている。ショルダ部１３（第１回転部）は、ベース１１により水平方向に回転可能に支持されている。下アーム１５（第２回転部）は、ショルダ部１３により上下方向に回転可能に支持されている。第１上アーム１６Ａ（第３回転部）は、下アーム１５により上下方向に回転可能に支持されている。第２上アーム１６Ｂ（第４回転部）は、第１上アーム１６Ａにより捻り回転可能に支持されている。手首部１７（第５回転部）は、第２上アーム１６Ｂにより上下方向に回転可能に支持されている。フランジ１８（第６回転部）は、手首部１７により捻り回転可能に支持されている。
【００１９】
ベース１１、ショルダ部１３、下アーム１５、第１上アーム１６Ａ、第２上アーム１６Ｂ、手首部１７及びフランジ１８は、ロボット１０のアームとして機能する。アーム先端であるフランジ１８には、図示は省略するが、エンドエフェクタ（手先）が取り付けられる。フランジ１８の先端面の中心１８ａが、ロボット１０のアームを動作させる際に位置を制御する制御点となる。ロボット１０の各関節（各回転部）は、対応して設けられた各モータにより駆動される。
【００２０】
ティーチングペンダント４０は、例えば作業者（オペレータ）が携帯あるいは手に持って操作可能な程度の大きさで、例えば薄型の直方体状に形成されている。ティーチングペンダント４０は、各種のキースイッチ４１及びディスプレイ４２等を備えている。作業者は、キースイッチ４１により種々の入力操作を行う。ティーチングペンダント４０は、ケーブルを介してコントローラ７０に接続されており、コントローラ７０と通信可能となっている。作業者は、ティーチングペンダント４０を操作して、ロボット１０の動作軌道の作成、修正、登録、各種パラメータの設定を行うことができる。そして、作業者は、コントローラ７０を通じて、ティーチングされた動作軌道に基づきロボット１０を動作させることができる。換言すれば、コントローラ７０は、予め設定された動作軌道及びティーチングペンダント４０の操作に基づいて、ロボット１０のアームの動作を制御する。
【００２１】
コントローラ７０（動作軌道作成装置）は、ＣＰＵ、ＲＯＭ、ＲＡＭ、入出力インターフェース、駆動回路、検出回路等を備えている。ＲＯＭは、ロボット１０のシステムプラグラム等を記憶している。ＲＡＭは、ロボット１０の動作プラグラム等を記憶している。駆動回路は、各関節のモータを駆動する。検出回路は、各関節の回転角度及び回転速度を検出する。ＣＰＵは、動作軌道に基づいて、各関節の回転速度パターンを作成する。ＣＰＵは、回転速度パターン、検出回路により検出された回転角度及び回転速度に基づいて、駆動回路を制御する。これにより、制御点である中心１８ａが複数の指令位置を順に通過して、ロボット１０により種々の作業が行われる。なお、コントローラ７０は、第１作成部及び第２作成部の機能を実現する。
【００２２】
本実施形態では、中心１８ａの移動経路（ロボット１０の動作軌道）は、ティーチングペンダント４０を用いて行う教示作業によって設定される。この教示作業では、中心１８ａが辿るべき経路上の複数の位置が指令位置として順に教示されると共に、各指令位置での中心１８ａの姿勢が教示される。そして、コントローラ７０は、実際のロボット１０の作業に際して、教示された複数の指令位置間を曲線補間して、それら指令位置を順に滑らかに辿る曲線を作成する。コントローラ７０は、中心１８ａがその曲線上を移動するように制御する。
【００２３】
上記の複数の指令位置の曲線補間は、スプライン補間方式によって行われる。このスプライン補間の一例を図２によって説明する。図２において、Ｒ０，Ｒ１，…Ｒｎは、（ｎ＋１）個の指令位置であり、Ｒ０が移動開始位置（初期位置）、Ｒｎが移動終了位置である。また、指令位置Ｒ０〜Ｒｎの相互間を結んでいる曲線Ｇ１，Ｇ２…Ｇｎは、指令位置Ｒ０〜Ｒｎの相互間を一区間として各区間について定義されるスプライン曲線セグメントである。スプライン補間では、スプライン曲線セグメントに対応するスプラインセグメント関数により、指令位置を通るスプライン曲線を定義する。
【００２４】
各スプライン曲線セグメント上の各点の位置は、以下の（式１）に示す３次の一般式（スプラインセグメント関数）によって定義される（詳細は特許文献１参照）。Ｐは、スプライン曲線セグメント上の点の位置を表す位置ベクトルである。ｔはパラメータ（媒介変数）であり、０≦ｔ≦１で変化する。Ａ，Ｂ，Ｃ，Ｄはベクトル係数である。ｔ＾３は、ｔの３乗を表す。
【００２５】
Ｐ（ｔ）＝Ａｔ＾３＋Ｂｔ＾２＋Ｃｔ＋Ｄ    ・・・（式１）
上記スプラインセグメント関数で示されるスプライン曲線セグメントＧｋ（ｋは１からｎまでの整数）のベクトル係数Ａ，Ｂ，Ｃ，Ｄを解くと、以下の（式２）〜（式５）のようになる（詳細は特許文献１参照）。ここで、スプライン曲線セグメントＧｋの両端（始点側の指令位置Ｒ（ｋ−１）と終点側の指令位置Ｒｋ）の位置ベクトルは、それぞれＰ（ｋ−１）とＰｋである。Ｔｋ，Ｔ（ｋ−１）は、それぞれ指令位置Ｒ（ｋ），指令位置Ｒ（ｋ−１）における接戦ベクトルである。
【００２６】
Ａ＝２Ｐ（ｋ−１）−２Ｐｋ＋Ｔ（ｋ−１）＋Ｔｋ    ・・・（式２）
Ｂ＝３Ｐｋ−３Ｐ（ｋ−１）−２Ｔ（ｋ−１）−Ｔｋ    ・・・（式３）
Ｃ＝Ｔ（ｋ−１）    ・・・（式４）
Ｄ＝Ｐ（ｋ−１）    ・・・（式５）
以上のように、指令位置相互間を一区間としたとき、各区間のスプライン曲線セグメントは上記式（１）〜（５）によって表される。それら各区間のスプライン曲線セグメントを接続するための条件として、一般的に以下の条件が用いられる。
（１）接続点が一致していること。
（２）接続点で接線ベクトルが一致していること。
（３）接続点で接線ベクトルの変化率が一致していること。
【００２７】
これらの条件を満たすように、接線ベクトルＴを算出する。そして、算出された接線ベクトルＴを用いて、各区間のスプライン曲線セグメントを表す上記（式１）のベクトル係数Ａ，Ｂ，Ｃ，Ｄを算出する。これにより、各指令位置において滑らかに連続するスプライン曲線（動作軌道）を得ることができる。
【００２８】
図３に示すように、破線で示す修正前の動作軌道Ｌ０において、制御点である中心１８ａが現在位置Ｎにある状態で、例えば指令位置Ｒ３が指令位置Ｒ３Ａに修正されたとする。このとき、修正後の動作軌道を確認するために、現在位置Ｎから指令位置Ｒ３Ａ，Ｒ４，Ｒ５まで確認動作軌道を作成すると、一点鎖線で示す確認動作軌道Ｌ１となる。この場合、確認動作の開始位置は現在位置Ｎであり、確認動作の終了位置は指令位置Ｒ５である。これに対して、初期位置Ｒ０から指令位置Ｒ１，Ｒ２，Ｒ３Ａ，Ｒ４，Ｒ５まで動作させると、実線で示す実動作軌道Ｌ２となる。このように、ロボット１０の現在位置Ｎから作成した確認動作軌道Ｌ１と、ロボット１０を初期位置Ｒ０から動作させた場合の実動作軌道Ｌ２とがずれることに、本願発明者は着目した。
【００２９】
そこで、本実施形態では、コントローラ７０（第１作成部）は、指令位置Ｒ３が修正された場合に、ロボット１０の現在位置Ｎよりも前の指令位置Ｒ２，Ｒ１、指令位置Ｒ３Ａ〜Ｒ５、並びに指令位置Ｒ５よりも後の指令位置Ｒ６，Ｒ７を用いて、所定動作軌道を作成する。すなわち、コントローラ７０は、複数の指令位置Ｒ０〜Ｒ７のうち一部の指令位置Ｒ３（複数の指令位置も可）が修正された場合に、ロボット１０の確認動作の開始位置（現在位置Ｎ）よりも１つ前及び２つ前に存在する指令位置Ｒ２，Ｒ１、確認動作の開始位置から終了位置（指令位置Ｒ５）までに含まれる指令位置（Ｒ３Ａ〜Ｒ５）、並びに終了位置よりも１つ後及び２つ後に存在する指令位置Ｒ６，Ｒ７を用いて、所定動作軌道を作成する。
【００３０】
そして、コントローラ７０（第２作成部）は、所定動作軌道のうち、確認動作の開始位置（現在位置Ｎ）から終了位置（指令位置Ｒ５）までの部分を抽出して確認動作軌道を作成する。
【００３１】
さらに、コントローラ７０は、複数の指令位置のうち一部の指令位置が修正された時に、所定動作軌道を作成する。すなわち、複数の指令位置のうち一部の指令位置が修正された時点で、ロボット１０の確認動作が指令される前に予め所定動作軌道を作成しておく。
【００３２】
また、指令位置Ｒ２が初期位置である場合、コントローラ７０は、指令位置Ｒ３が修正された場合に、ロボット１０の現在位置Ｎよりも前の指令位置Ｒ２、指令位置Ｒ３Ａ〜Ｒ５、並びに指令位置Ｒ５よりも後の指令位置Ｒ６，Ｒ７を用いて、所定動作軌道を作成する。すなわち、コントローラ７０、確認動作の開始位置（現在位置Ｎ）よりも２つ前に指令位置が存在しない場合は、開始位置よりも２つ前の指令位置を用いずに所定動作軌道を作成する。なお、コントローラ７０は、確認動作の開始位置（現在位置Ｎ）よりも１つ前に指令位置が存在しない場合は、開始位置よりも１つ前の指令位置を用いずに所定動作軌道を作成する。
【００３３】
また、指令位置Ｒ６が移動終了位置である場合、コントローラ７０は、指令位置Ｒ３が修正された場合に、ロボット１０の現在位置Ｎよりも前の指令位置Ｒ２，Ｒ１、指令位置Ｒ３Ａ〜Ｒ５、並びに指令位置Ｒ５よりも後の指令位置Ｒ６を用いて、所定動作軌道を作成する。すなわち、コントローラ７０、確認動作の終了位置よりも２つ後に指令位置が存在しない場合は、終了位置よりも２つ後の指令位置を用いずに所定動作軌道を作成する。なお、コントローラ７０は、確認動作の終了位置よりも１つ後に指令位置が存在しない場合は、終了位置よりも１つ後の指令位置を用いずに所定動作軌道を作成する。
【００３４】
また、複数の指令位置Ｒ０〜Ｒ７のうち一部の既存の指令位置Ｒ３が削除（修正）された場合、コントローラ７０は、ロボット１０の確認動作の開始位置（現在位置Ｎ）よりも１つ前及び２つ前に存在する指令位置Ｒ２，Ｒ１、開始位置から確認動作の終了位置（指令位置Ｒ５）までに含まれる指令位置（Ｒ４〜Ｒ５）、並びに終了位置よりも１つ後及び２つ後に存在する指令位置Ｒ６，Ｒ７を用いて、所定動作軌道を作成する。
【００３５】
また、複数の指令位置Ｒ０〜Ｒ７のうち、指令位置Ｒ３と指令位置Ｒ４との間に新たな指令位置Ｒ３．５が追加（修正）された場合、コントローラ７０は、ロボット１０の確認動作の開始位置（現在位置Ｎ）よりも１つ前及び２つ前に存在する指令位置Ｒ２，Ｒ１、開始位置から確認動作の終了位置（指令位置Ｒ５）までに含まれる指令位置（Ｒ３，Ｒ３．５，Ｒ４，Ｒ５）、並びに終了位置よりも１つ後及び２つ後に存在する指令位置Ｒ６，Ｒ７を用いて、所定動作軌道を作成する。
【００３６】
ここで、指令位置Ｒ２と指令位置Ｒ３Ａとの間の現在位置Ｎから確認動作軌道を作成する場合、指令位置Ｒ２と指令位置Ｒ３Ａとの間を一区間とするスプライン曲線セグメント（スプラインセグメント関数）ではパラメータｔが０から始まらない。このため、上述したスプラインセグメント関数の（式１）をそのまま用いることができない。そこで、パラメータｔを以下のように補正して、パラメータｔが０から始まるようにする。すなわち、現在位置Ｎにおけるパラメータｔがα（０＜α＜１）であるとして、パラメータｔがαから１まで変化する領域の部分スプラインセグメント関数Ｑ（ｔ）を、以下の（式７）で定義する。
【００３７】
Ｑ（ｔ）
＝Ｐ（（１−α）ｔ＋α）
＝（１−α）＾３・Ａｔ＾３＋（１−α）＾２・（３αＡ＋Ｂ）ｔ＾２＋（１−α）（３α＾２・Ａ＋２αＢ＋Ｃ）ｔ＋（α＾３・Ａ＋α＾２・Ｂ＋αＣ＋Ｄ）  ・・・（式７）
（式７）を用いることにより、（式１）と同様にパラメータｔを０≦ｔ≦１とすることができ、（式１）と同様の補間処理を行うことができる。したがって、補間処理が複雑になることを防ぐことができる。
【００３８】
ロボット１０の確認動作は、順方向の送り動作だけでなく、逆方向の戻し動作も行えると作業効率が高くなる。すなわち、戻し動作においても、確認動作軌道と実動作軌道とがずれていないことを確認できることが望ましい。そこで、パラメータｔを以下のように補正することで、戻し動作を行う。すなわち、パラメータｔを０≦ｔ≦１として、戻し動作を表す反転スプラインセグメント関数Ｒ（Ｔ）を、以下の（式８）で定義する。
【００３９】
Ｒ（ｔ）
＝Ｐ（１−ｔ）
＝−Ａｔ＾３＋（３Ａ＋Ｂ）ｔ＾２−（３Ａ＋２Ｂ＋Ｃ）ｔ＋（Ａ＋Ｂ＋Ｃ＋Ｄ）  ・・・（式８）
（式８）を用いることにより、（式１）と同様にパラメータｔを０から１まで変化させた場合に、戻し動作を行うことができる。したがって、戻し動作専用の補間処理を行う必要がない。
【００４０】
ここで、指令位置Ｒ２と指令位置Ｒ３Ａとの間の現在位置Ｎから戻し動作の確認動作軌道を作成する場合、指令位置Ｒ２と指令位置Ｒ３Ａとの間を一区間とするスプライン曲線セグメント（スプラインセグメント関数）ではパラメータｔが０から始まらない。このため、上記（式８）をそのまま用いることができない。そこで、パラメータｔを以下のように補正して、パラメータｔが０から始まるようにする。すなわち、現在位置Ｎにおけるパラメータｔがα（０＜α＜１）であるとして、パラメータｔがαから０まで変化する領域の部分反転スプラインセグメント関数Ｓ（ｔ）を、以下の（式９）で定義する。
【００４１】
Ｓ（ｔ）
＝Ｐ（α−αｔ）
＝−α＾３・Ａｔ＾３＋（３α＾３・Ａ＋α＾２・Ｂ）ｔ＾２−（３α＾３・Ａ＋２α＾２・Ｂ＋αＣ）ｔ＋（α＾３・Ａ＋α＾２・Ｂ＋αＣ＋Ｄ）    ・・・（式９）
（式９）を用いることにより、（式８）と同様にパラメータｔを０≦ｔ≦１とすることができ、（式８）と同様の補間処理を行うことができる。したがって、戻し動作の補間処理が複雑になることを防ぐことができる。
【００４２】
以上詳述した本実施形態は、以下の利点を有する。
【００４３】
・コントローラ７０は、複数の指令位置Ｒ０〜Ｒ７のうち一部の指令位置Ｒ３が修正された場合に、ロボット１０の確認動作の開始位置（現在位置Ｎ）から終了位置（指令位置Ｒ５）までに含まれる指令位置だけでなく、開始位置よりも１つ前に存在する指令位置Ｒ２及び終了位置よりも１つ後に存在する指令位置Ｒ６を用いて、スプライン曲線で規定される所定動作軌道を作成する。このため、所定動作軌道は、開始位置よりも１つ前の指令位置Ｒ２を通過するスプライン曲線セグメント、及び終了位置よりも１つ後の指令位置Ｒ６を通過するスプライン曲線セグメントを反映したものとなる。そして、コントローラ７０は、所定動作軌道のうち、開始位置から終了位置までの部分を抽出して確認動作軌道を作成する。このため、開始位置よりも前のスプライン曲線セグメント及び終了位置よりも後のスプライン曲線セグメントを反映して、確認動作軌道を作成することができる。特に、確認動作の開始位置を通過するスプライン曲線セグメントは、開始位置よりも１つ前の指令位置から強く影響を受ける。また、確認動作の終了位置を通過するスプライン曲線セグメントは、終了位置よりも１つ後の指令位置から強く影響を受ける。したがって、一部の指令位置Ｒ３が修正された場合に、確認動作軌道と実動作軌道とがずれることを抑制することができる。
【００４４】
・開始位置を通過するスプライン曲線セグメントは、開始位置よりも１つ前だけでなく２つ前の指令位置Ｒ２，Ｒ１からも比較的強く影響を受ける。また、終了位置を通過するスプライン曲線セグメントは、終了位置よりも１つ後だけでなく２つ後の指令位置Ｒ６，Ｒ７からも比較的強く影響を受ける。この点、コントローラ７０は、複数の指令位置Ｒ０〜Ｒ７のうち一部の指令位置Ｒ３が修正された場合に、ロボット１０の確認動作の開始位置よりも１つ前及び２つ前に存在する指令位置Ｒ２，Ｒ１、開始位置から確認動作の終了位置までに含まれる指令位置、並びに終了位置よりも１つ後及び２つ後に存在する指令位置Ｒ６，Ｒ７を用いて、所定動作軌道を作成する。したがって、確認動作の開始位置から終了位置までに含まれる指令位置以外に、多数の指令位置を用いない場合であっても、所定動作軌道ひいては確認動作軌道の精度をさらに向上させることができる。
【００４５】
・確認動作の開始位置はロボット１０の現在位置Ｎである。このため、ロボット１０の現在位置Ｎから確認動作軌道を作成する場合に、確認動作軌道と実動作軌道とがずれることを抑制することができる。したがって、現在位置Ｎから確認動作軌道を容易に作成することができるとともに、確認動作軌道の精度を向上させることができる。さらに、現在位置Ｎから確認動作軌道を作成する場合に、パラメータｔを補正することで、補間処理が複雑になることを防ぐことができる。
【００４６】
・コントローラ７０は、複数の指令位置Ｒ０〜Ｒ７のうち一部の指令位置Ｒ３が修正された時に、所定動作軌道を作成する。このため、複数の指令位置Ｒ０〜Ｒ７のうち一部の指令位置Ｒ３が修正された時点で、ロボット１０の確認動作が指令される前に予め所定動作軌道を作成しておくことができる。したがって、ロボット１０の確認動作が指令された際に、速やかに確認動作軌道を作成することができ、ひいては速やかに確認動作を行うことができる。
【００４７】
なお、上記実施形態を、以下のように変更して実施することもできる。上記実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【００４８】
・ロボット１０の確認動作が指令されてから所定動作軌道を作成し、その後に所定動作軌道から確認動作軌道を作成してもよい。
【００４９】
・確認動作の開始位置を現在位置Ｎ以外に設定することもできる。
【００５０】
・コントローラ７０は、複数の指令位置のうち一部の指令位置が修正された場合に、ロボット１０の確認動作の開始位置よりも１〜３つ前に存在する指令位置、開始位置から確認動作の終了位置までに含まれる指令位置、並びに終了位置よりも１〜３つ後に存在する指令位置を用いて、所定動作軌道を作成してもよい。
【００５１】
・コントローラ７０は、複数の指令位置のうち一部の指令位置が修正された場合に、複数の指令位置を全て用いて、所定動作軌道を作成してもよい。こうした構成によれば、実動作軌道に等しい所定動作軌道のうち、確認動作の開始位置から終了位置までの部分を抽出して確認動作軌道を作成することができる。したがって、一部の指令位置が修正された場合に、確認動作軌道を実動作軌道に一致させることができる。
【００５２】
・コントローラ７０は、作成した確認動作軌道によりロボット１０に確認動作を実行させる他、確認動作軌道を例えばティーチングペンダント４０のディスプレイ４２に表示させてもよい。
【００５３】
・各区間のスプライン曲線セグメントを接続するための条件として、特許文献１と同様の以下の条件を用いることもできる。
（１）接続点が一致していること。
（２）一区画の両端（始点側指令位置および終点側指令位置）の接線ベクトルの大きさは、両端を結ぶ直線の長さに比例する大きさに定め、且つ、両端の接線ベクトルの向きは、両端を結ぶ直線が、前の一区間についての両端を結ぶ直線および後の一区間について両端を結ぶ直線となす角を、それぞれ２分する方向に定めること。
（３）上記のように定めた始点側接線ベクトルの向きが前の区画の終点側接線ベクトルの向きと一致し、終点側接線ベクトルの向きが後の区画の始点側接線ベクトルの向きと一致すること。
【００５４】
これらの条件を満たすように、接線ベクトルＴを算出する。そして、算出された接線ベクトルＴを用いて、各区間のスプライン曲線セグメントを表す上記（式１）のベクトル係数Ａ，Ｂ，Ｃ，Ｄを算出する（詳細は特許文献１参照）。こうした構成によっても、各指令位置において滑らかに連続するスプライン曲線（動作軌道）を得ることができる。
【００５５】
この場合、実動作軌道は、修正した指令位置の２つ前の指令位置から２つ後までの指令位置からしか影響を受けない。このため、コントローラ７０は、確認動作の開始位置から終了位置までに含まれる指令位置、及び修正した指令位置の２つ前の指令位置から２つ後までの指令位置を用いて、所定動作軌道を作成すれば十分である。すなわち、この場合も、コントローラ７０は、複数の指令位置のうち一部の指令位置が修正された場合に、ロボット１０の確認動作の開始位置よりも１つ前及び２つ前に存在する指令位置、開始位置から確認動作の終了位置までに含まれる指令位置、並びに終了位置よりも１つ後及び２つ後に存在する指令位置を用いて、所定動作軌道を作成すれば十分である。
【００５６】
・ロボット１０は、垂直多関節型ロボットに限らず、水平多関節型ロボット等であってもよい。
【符号の説明】
【００５７】
１０…ロボット、１８…フランジ、１８ａ…中心、４０…ティーチングペンダント、７０…コントローラ（動作軌道作成装置）。
【図１】
2020044604.tif 000003
【図２】
2020044604.tif 000004
【図３】
2020044604.tif 000005