(57)【要約】【課題】７個以上の関節を持つロボットにおいて、特異姿勢を回避した動作経路を高効率に作成するロボットの動作経路作成装置及び動作経路作成方法を提供することを課題とする。【解決手段】７個以上の関節を持つロボットの動作経路を作成するロボットの動作経路作成装置１であって、ロボットの特定部位の位置及び姿勢を定義する経由点を設定する経由点設定手段３と、経由点に対する関節ベクトルの候補を生成する際に使用する関節の数を６個以下で設定する関節数設定手段３，５と、経由点毎に、ロボットの特定部位が経由点の位置及び姿勢となるための設定した数分の各関節の関節角度を計算し、当該各関節の関節角度からなる関節ベクトルの候補を複数生成する関節ベクトル候補生成手段６と、経由点毎の複数の関節ベクトルの候補の中からロボットが特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせを選択する選択手段７とを備えることを特徴とする。【選択図】図１
2009134352.tif 000002
【特許請求の範囲】
【請求項１】
７個以上の関節を持つロボットの動作経路を作成するロボットの動作経路作成装置であって、
ロボットの特定部位の位置及び姿勢を定義する経由点を設定する経由点設定手段と、
前記経由点設定手段で設定した経由点に対する関節ベクトルの候補を生成する際に使用する関節の数を６個以下で設定する関節数設定手段と、
前記経由点設定手段で設定した経由点毎に、ロボットの特定部位が経由点の位置及び姿勢となるための前記関節数設定手段で設定した数分の各関節の関節角度を計算し、当該各関節の関節角度からなる関節ベクトルの候補を複数生成する関節ベクトル候補生成手段と、
前記関節ベクトル候補生成手段で経由点毎に生成した複数の関節ベクトルの候補の中からロボットが特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせを選択する選択手段と
を備えることを特徴とするロボットの動作経路作成装置。
【請求項２】
前記関節数設定手段は、関節の数として小さい数から順に設定することを特徴とする請求項１に記載するロボットの動作経路作成装置。
【請求項３】
前記関節数設定手段は、関節の数として大きい数から順に設定することを特徴とする請求項１に記載するロボットの動作経路作成装置。
【請求項４】
前記選択手段は、特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせが複数ある場合、当該複数の特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせの中からロボットの動作時間が最も短くなる各経由点の関節ベクトルの候補の組み合わせを選択することを特徴とする請求項１〜請求項３のいずれか１項に記載するロボットの動作経路作成装置。
【請求項５】
７個以上の関節を持つロボットの動作経路を作成するロボットの動作経路作成方法であって、
ロボットの特定部位の位置及び姿勢を定義する経由点を設定する経由点設定ステップと、
前記経由点設定ステップで設定した経由点に対する関節ベクトルの候補を生成する際に使用する関節の数を６個以下で設定する関節数設定ステップと、
前記経由点設定ステップで設定した経由点毎に、ロボットの特定部位が経由点の位置及び姿勢となるための前記関節数設定ステップで設定した数分の各関節の関節角度を計算し、当該各関節の関節角度からなる関節ベクトルの候補を複数生成する関節ベクトル候補生成ステップと、
前記関節ベクトル候補生成ステップで経由点毎に生成した複数の関節ベクトルの候補の中からロボットが特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせを選択する選択ステップと
を含むことを特徴とするロボットの動作経路作成方法。
【請求項６】
前記関節数設定ステップでは、関節の数として小さい数から順に設定することを特徴とする請求項５に記載するロボットの動作経路作成方法。
【請求項７】
前記関節数設定ステップでは、関節の数として大きい数から順に設定することを特徴とする請求項５に記載するロボットの動作経路作成方法。
【請求項８】
前記選択ステップでは、特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせが複数ある場合、当該複数の特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせの中からロボットの動作時間が最も短くなる各経由点の関節ベクトルの候補の組み合わせを選択することを特徴とする請求項５〜請求項７のいずれか１項に記載するロボットの動作経路作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、７個以上の関節を持つロボットの動作経路を作成するロボットの動作経路作成装置及びロボットの動作経路作成方法に関する。
【背景技術】
【０００２】
近年、各種産業用ロボットや人型ロボットなどの様々なロボットが開発されている。例えば、ロボットには、多数の関節を有し、関節間がリンクで連結され、各関節の動作によって多数の自由度を持つロボットがある。この多関節ロボットでは、特異姿勢を回避するような動作経路を作成する必要がある。特異姿勢は、ロボットがある姿勢になったときにある特定の方向に移動させることができないような姿勢である。
【０００３】
６個以下の関節を持つロボットの場合、通常の解析公式を用いて各関節の関節角度を求め、この関節角度と予め求めたおいた特異姿勢に対する関節角度とを比較することによって特異姿勢を回避できるか否かを判断し、特異姿勢を回避した動作経路を作成している。しかし、ロボットに対してより複雑な作業やより滑らかな動きが求められる場合、より多くの関節が必要となるが、７個以上の関節を持つロボットでは上記手法を適用できない。そこで、７個以上の関節を持つロボットの場合、反復計算によって各関節の関節角度を求め、ヤコビ行列から定義された可操作度の指標によって特異姿勢を回避できるか否かを判断し、特異姿勢を回避した動作経路を作成している（特許文献１参照）。
【特許文献１】特開平１０−３２９０６６号公報
【特許文献２】特開２００６−４８３７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
反復計算やヤコビ行列などを用いた場合、計算量が膨大となるので、リアルタイムで処理することが困難になる。しかし、７個以上の関節を持つロボットに対しても、リアルタイムで特異姿勢を回避した動作経路を作成することが要求されている。
【０００５】
そこで、本発明は、７個以上の関節を持つロボットにおいて、特異姿勢を回避した動作経路を高効率に作成するロボットの動作経路作成装置及び動作経路作成方法を提供することを課題とする。
【課題を解決するための手段】
【０００６】
本発明に係るロボットの動作経路作成装置は、７個以上の関節を持つロボットの動作経路を作成するロボットの動作経路作成装置であって、ロボットの特定部位の位置及び姿勢を定義する経由点を設定する経由点設定手段と、経由点設定手段で設定した経由点に対する関節ベクトルの候補を生成する際に使用する関節の数を６個以下で設定する関節数設定手段と、経由点設定手段で設定した経由点毎に、ロボットの特定部位が経由点の位置及び姿勢となるための関節数設定手段で設定した数分の各関節の関節角度を計算し、当該各関節の関節角度からなる関節ベクトルの候補を複数生成する関節ベクトル候補生成手段と、関節ベクトル候補生成手段で経由点毎に生成した複数の関節ベクトルの候補の中からロボットが特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせを選択する選択手段とを備えることを特徴とする。
【０００７】
このロボットの動作経路作成装置では、経由点設定手段によりロボットの特定部位（例えば、ハンド）の位置と姿勢を定義する経由点を設定するとともに、関節数設定手段により経由点に対する関節ベクトルの候補を生成する際に７個以上の関節の中で幾つの関節を使用するかを６個以下で設定する。そして、動作経路作成装置では、関節ベクトル候補生成手段により、経由点毎に、ロボットの特定部位が経由点の位置と姿勢を実現するための設定した数の各関節の関節角度を計算し、この計算した各関節の関節角度からなる関節ベクトルの候補を複数個生成する。ここで、各経由点について、所定数（６個以下の数）の関節だけを使用した関節ベクトルの候補が複数個生成される。使用されない関節は、固定（初期状態）である。さらに、動作経路作成装置では、選択手段により経由点毎の複数の関節ベクトルの候補の中からロボットが特異姿勢とならない各経由点の関節ベクトルの候補の組み合わせを選択し、この選択した各経由点の関節ベクトルの候補を繋げた動作経路を作成する。このように、この動作経路作成装置では、７個以上の関節の中で６個以下の関節だけを使用して経由点の関節ベクトルの候補を計算するので、７個以上の関節を使用した場合のヤコビ行列や解析公式の反復計算などの処理量の膨大な手法を用いる必要がなく、処理量を軽減でき、高効率に特異姿勢を回避した動作経路を作成することができる。その結果、リアルタイムで動作経路を作成でき、その動作経路に従ってロボットをリアルタイムで動作させることができる。また、動作経路作成装置では、７個以上の関節の中で任意の６個以下の関節を使用できるので（固定する関節を変えることができるので）、実用的な動作経路（例えば、滑らかな動きができる動作経路、多様な動きの動作経路、動作時間の短い動作経路）を作成することができる。
【０００８】
本発明の上記ロボットの動作経路作成装置では、関節数設定手段は、関節の数として小さい数から順に設定する構成としてもよい。この動作経路作成装置では、関節ベクトル候補生成手段と選択手段での処理を関節の数として小さい数から順に（固定する関節の数が多い順に）行うことにより、処理量をより軽減でき、より高効率に特異姿勢を回避した動作経路を作成することができる。
【０００９】
本発明の上記ロボットの動作経路作成装置では、関節数設定手段は、関節の数として大きい数から順に設定する構成としてもよい。この動作経路作成装置では、関節ベクトル候補生成手段と選択手段での処理を関節の数として大きい数から順に（固定する関節の数が少ない順に）行うことにより、より滑らかな動きや多様な動きができる動作経路を作成することができる。
【００１０】
本発明の上記ロボットの動作経路作成装置では、選択手段は、特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせが複数ある場合、当該複数の特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせの中からロボットの動作時間が最も短くなる各経由点の関節ベクトルの候補の組み合わせを選択する構成としてもよい。この動作経路作成装置では、複数の特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせの中からロボットの動作時間が最も短くなる組み合わせを選択することにより、特異姿勢を回避しかつ動作時間の短い動作経路を作成することができる。
【００１１】
本発明に係るロボットの動作経路作成方法は、７個以上の関節を持つロボットの動作経路を作成するロボットの動作経路作成方法であって、ロボットの特定部位の位置及び姿勢を定義する経由点を設定する経由点設定ステップと、経由点設定ステップで設定した経由点に対する関節ベクトルの候補を生成する際に使用する関節の数を６個以下で設定する関節数設定ステップと、経由点設定ステップで設定した経由点毎に、ロボットの特定部位が経由点の位置及び姿勢となるための関節数設定ステップで設定した数分の各関節の関節角度を計算し、当該各関節の関節角度からなる関節ベクトルの候補を複数生成する関節ベクトル候補生成ステップと、関節ベクトル候補生成ステップで経由点毎に生成した複数の関節ベクトルの候補の中からロボットが特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせを選択する選択ステップとを含むことを特徴とする。
【００１２】
本発明の上記ロボットの動作経路作成方法の関節数設定ステップでは、関節の数として小さい数から順に設定する構成としてもよい。
【００１３】
本発明の上記ロボットの動作経路作成方法の関節数設定ステップでは、関節の数として大きい数から順に設定する構成としてもよい。
【００１４】
本発明の上記ロボットの動作経路作成方法の選択ステップでは、特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせが複数ある場合、当該複数の特異姿勢にならない各経由点の関節ベクトルの候補の組み合わせの中からロボットの動作時間が最も短くなる各経由点の関節ベクトルの候補の組み合わせを選択する構成としてもよい。
【００１５】
この各ロボットの動作経路作成方法は、上記の各ロボットの動作経路作成装置と同様の作用及び効果を有する。
【発明の効果】
【００１６】
本発明は、７個以上の関節の中から任意の６個以下の関節を使用して経由点の関節ベクトルの候補を計算し、その経由点毎の複数の関節ベクトルの候補の中からロボットが特異姿勢にならない関節ベクトルの候補の組み合わせを選択することにより、処理量を軽減でき、特異姿勢を回避した動作経路を高効率に作成することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明に係るロボットの動作経路作成装置及びロボットの動作経路作成方法の実施の形態を説明する。
【００１８】
本実施の形態では、本発明を、７個以上の関節を持つロボットの動作経路を作成する動作経路作成装置に適用する。本実施の形態に係る動作経路作成装置は、ロボットのスタートからゴールまで動作させるための動作経路であって、特異姿勢を回避しかつ障害物と干渉しない動作経路を生成する。
【００１９】
図１〜図５を参照して、本実施の形態に係る動作経路作成装置１について説明する。図１は、本実施の形態に係る動作経路作成装置の構成図である。図２は、本実施の形態で適用されるロボットの一例である。図３は、経由点に対する複数の関節ベクトルの候補の一例である。図４は、各経由点に対して選択された関節ベクトルの一例である。図５は、図１の動作作成部での処理の説明図である。
【００２０】
動作経路作成装置１は、特定部位（例えば、ハンド）の位置及び姿勢で定義される経由点に対する関節ベクトルを求め、スタートの関節ベクトル、各経由点の関節ベクトル、ゴールの関節ベクトルを接続する動作経路を求めることによって、スタートからゴールまでの動作経路を自動的に作成する。特に、動作経路作成装置１は、７個以上の関節を持つロボットの動作経路を高効率に作成するために、７個以上の関節の中で任意の６個以下の関節を使用して各経由点の関節ベクトルの候補を複数求め、経由点毎の複数の関節ベクトルの候補の中からロボットが特異姿勢を回避しかつ障害物と干渉しない各経由点の関節ベクトルの候補の組み合わせを選択する。
【００２１】
そのために、動作経路作成装置１は、データベース２、入力部３、記憶部４、関節選択部５、関節角度計算部６、動作作成部７、出力部８を備えている。動作経路作成装置１の主要部はコンピュータ上あるいはロボット内の電子制御ユニットなどに構成され、特に、関節選択部５、関節角度計算部６、動作作成部７はハードディスクあるいはＲＯＭ内に格納された各アプリケーションプログラムをＲＡＭにロードし、ＣＰＵで実行することによって構成される。
【００２２】
なお、本実施の形態では、入力部３が特許請求の範囲に記載する経由点設定手段に相当し、入力部３及ぶ関節選択部５が特許請求の範囲に記載する関節数設定手段に相当し、関節角度計算部６が特許請求の範囲に記載する関節ベクトル候補生成手段に相当し、動作作成部７が特許請求の範囲に記載する選択手段に相当する。
【００２３】
まず、本実施の形態に適用されるロボットについて説明する。図２にはロボットの一例を示している。ロボットＲは、７個の関節Ｊ１，・・・，Ｊ７を備えており、関節間がリンクＬ１，・・・，Ｌ８で接続されている。また、ロボットＲは、末端のリンクＬ１の一端が固定され、先端のリンクＬ８の一端にハンドＨが取り付けられている。各関節Ｊ１，・・・，Ｊ７は、アクチュエータが内蔵されており、回転動作をそれぞれ行う。特に、関節Ｊ１，Ｊ３，Ｊ５，Ｊ７は、捩り関節であり、リンク方向と平行な回転軸を持ち、接続される２本のリンク間におけるその回転軸回りの角度ａ１，ａ３，ａ５，ａ７をそれぞれ変更する。関節Ｊ２，Ｊ４，Ｊ６は、曲げ関節であり、リンク方向と直交する回転軸を持ち、接続される２本のリンク間におけるその回転軸回りの角度ａ２，ａ４，ａ６をそれぞれ変更する。なお、図２に示す例では７個の関節を持つロボットＲを示したが、７個以上のｎ個の関節を持つロボットであればよい。
【００２４】
このように、ロボットＲは、ｎ個の自由度（図２の例では、７個の自由度）を持つ。この自由度は、ｎ個の角度に対して座標軸を持つｎ次元座標空間（関節空間）における一点（ａ１，・・・，ａｎ）で表される。また、ロボットＲの実際の位置姿勢は、３次元空間（作業空間）におけるロボットＲの特定部位の位置（図２の例では、リンクＬ８とハンドＨとの取付部Ｔの座標位置（Ｙ１，Ｙ２，Ｙ３））と姿勢（図２の例では、ハンドＨの姿勢）で表される。
【００２５】
ｎ個の関節角度ａ１，・・・，ａｎによって、ｑ＝（ａ１，・・・，ａｎ）Ｔを定義し、これを関節ベクトルと呼ぶ。関節ベクトルｑは、時間の関数であり、時系列で一定時間毎のｑ（１），・・・ｑ（ｋ−１），ｑ（ｋ），ｑ（ｋ＋１），・・・で表される。したがって、時間ｔにおける関節ベクトルｑは、ｑ（ｔ）＝（ａ１（ｔ），・・・，ａｎ（ｔ））Ｔとなる。したがって、ロボットの動作経路としては、特定部位がスタートから各経由点を通過してゴールに至るための関節ベクトルｑの時系列データからなる。
【００２６】
それでは、動作経路作成装置１の各部について説明する。データベース２は、ハードディスクあるいはＲＡＭの所定の領域に構成される。データベース２には、ロボットの形状データ（ロボットの各部の形状、大きさなど）、構造データ（リンク長、関節の種類、関節の最大回転角範囲など）、ロボットが作業を行う環境データ（障害物情報、ロボットの作業対象物体情報など）、ロボットの特異姿勢データなどが格納される。障害物情報としては、障害物の位置、形状、大きさなどである。特異姿勢はロボットがある姿勢になったときにある特定の方向に移動させることができないような姿勢であるので、特異姿勢情報としてはある姿勢となる各関節の関節角度である。なお、環境データについては、データベース２に予め格納しておくのではなく、ロボットに備えられる各種センサ（ミリ波センサ、超音波センサ、レーザセンサ、レンジファインダ、カメラセンサなど）によって取得してもよい。この場合、取得した環境データは、記憶部４に記憶される。
【００２７】
入力部３は、作業者が入力や選択するための手段であり、例えば、マウス、キー、タッチ式である。作業者が入力部３から入力や選択するものとしては、ロボットの特定部位（例えば、ハンド（特に、手首、指先など））、特定部位のスタートとゴールの位置及び姿勢（関節ベクトルｑで規定される位置及び姿勢）、特定部位の経由点（ロボットが作業を行う上で特定部位が必ず通過しなければならない点）、特定部位に線形拘束条件（特定部位を隣接する経由点間において直線上で移動させるという条件）を課した場合の隣接する経由点間の経由点、特定部位の経由点に対する関節ベクトルの候補を求める際の関節の数である。関節の数は、６個以下の正の数であり、６個以下の数であれば１つの数値（例えば、６）でもよいし、複数の数値（数値範囲でもよい）（例えば、４と５と６）でもよい。経由点の指定は、特定部位の位置と姿勢で指定され、例えば、ハンドの場合にはハンドの手首の位置とハンドの姿勢が指定される。
【００２８】
なお、基本となる経由点を指定した後に、入力部３のマウスなどを使ってリアルタイムで経由点間に新たな経由点を順次指定していくことも可能である。
【００２９】
記憶部４は、ＲＡＭの所定の領域に構成される。記憶部４には、関節選択部５、関節角度計算部６、動作作成部７における各処理結果などが一時記憶される。
【００３０】
関節選択部５では、入力部３で指定された関節の数に基づいて関節角度計算部６で特定部位の経由点に対する関節ベクトルの候補を計算する際に使用する関節使用数ｍを決定し、関節角度計算部６で関節ベクトルの候補を計算する毎にｎ個の関節の中からｍ個の関節を選択する（言い換えると、（ｎ−ｍ）個の固定する関節を選択する）。
【００３１】
入力部３で関節の数が１個だけ指定されている場合、その指定されている関節の数を関節使用数ｍと決定する。入力部３で関節の数が複数個指定されている場合、関節使用数ｍとして複数の数の中から小さい数から順に決定してよいし、あるいは、関節使用数ｍとして複数の数の中から大きい数から順に決定してもよい。関節使用数ｍを小さい数にするほど、少ない関節を使用した計算となるので、計算量を軽減できる。関節使用数ｍを大きい数にするほど、多くの関節を使用してロボットを動作させることができるので、より複雑な動作経路やより多様な動きの動作経路を作成できる。
【００３２】
ｍ個の関節の選択方法としては、ランダムに選択してもよいし、経験的に予め決められたパターンに基づいて選択してもよい。ちなみに、図２に示す例のロボットＲの場合、最も広く産業ロボットとして使用されている構造とする場合には関節Ｊ３を固定し、人間のアームに似た構造とする場合には関節Ｊ７を固定するように、関節を選択する。
【００３３】
例えば、入力部３で関節の数として６だけが指定された場合、関節使用数ｍ＝６と決定し、ｎ個の関節の中から任意の６個の関節を選択する。入力部３で関節の数として４と５と６が指定された場合、計算量を軽減するために関節使用数ｍ＝４と決定し、ｎ個の関節の中から任意の４個の関節を選択し、関節角度計算部６や動作作成部７での処理を関節使用数ｍ＝４から始めてもよいし、あるいは、より実用的な動作経路を作成するために関節使用数ｍ＝６と決定し、ｎ個の関節の中から任意の６個の関節を選択し、関節角度計算部６や動作作成部７での処理を関節使用数ｍ＝６から処理を始めてもよい。
【００３４】
関節角度計算部６では、経由点毎に、特定部位が経由点の位置及び姿勢となるための関節ベクトルの候補を複数個生成する。具体的には、関節角度計算部６では、関節選択部５で選択したｍ個の関節だけを使用し、残りの（ｎ−ｍ）個の関節を固定（つまり、関節角度を初期値に固定）した状態で逆運動の解析公式で計算を行い、経由点の位置及び姿勢となるためのｍ個の関節の関節角度をそれぞれ求める。この逆運動の解析公式は、従来の解析公式を適用する。これによって、ｍ個の関節の各関節角度と（ｎ−ｍ）個の関節の初期値の関節角度からなる関節ベクトルの候補が生成される。関節ベクトルの候補の個数は、動作経路作成装置１の処理能力を考慮してリアルタイムでの処理が可能な数が設定され、予め設定された固定値でもよいしあるいは作業者が入力部３で入力してもよい。この関節ベクトルの候補の個数は、計算量を軽減するためには少ない方がよく、より実用的な動作経路を作成するためには多い方がよい。
【００３５】
図３には、ハンドＨ（特定部位）のある経由点を定義する位置及び姿勢を実現するための複数の関節ベクトルの候補の各関節の関節角度とした場合のロボットＲ，・・・を示している。このように、ハンドＨの位置及び姿勢は全て同じであるが、各関節の関節角度が異なる関節ベクトルの候補が複数個生成される。そして、全ての経由点に対して、各関節の関節角度が異なる関節ベクトルの候補が複数個生成される。なお、ｎ個の関節のうち任意の（ｎ−ｍ）個の関節は初期角度で固定である。
【００３６】
図４には、ハンドＨの２つの経由点１、経由点２をそれぞれ定義する位置及び姿勢を実現するための関節ベクトルの各関節の関節角度とした場合のロボットＲ１とロボットＲ２を示している。このように、各経由点についての複数の関節ベクトルの候補の中から特異姿勢にならない関節ベクトルの候補の組み合わせが選択され、各経由点について１個づつ選択された関節ベクトルにより、各経由点での各関節の関節角度が規定される。
【００３７】
図５には、４つに経由点１、経由点２、経由点３、経由点４に対してそれぞれ５個の関節ベクトルの候補｛ｑ１１，・・・，ｑ１５｝、｛ｑ２１，・・・，ｑ２５｝、｛ｑ３１，・・・，ｑ３５｝、｛ｑ４１，・・・，ｑ４５｝が生成された例を示しており、（ａ）図が関節使用数ｍ＝４の場合であり、（ｂ）図が関節使用数ｍ＝５の場合であり、（ｃ）図が関節使用数ｍ＝６の場合である。
【００３８】
動作作成部７では、経由点毎の複数の関節ベクトルの候補の中からロボットが特異姿勢にならないかつ障害物と干渉しない各経由点の関節ベクトルの候補の組み合わせを選択し、その選択した関節ベクトルの組み合わせによるスタートからゴールまでの動作経路を作成する。
【００３９】
具体的には、動作作成部７では、各経由点の全ての関節ベクトルの候補について、隣接する経由点の各関節ベクトルの候補間、スタートの関節ベクトルと隣接する経由点の関節ベクトルの候補間、ゴールの関節ベクトルと隣接する経由点の関節ベクトル間を接続するための動作経路（時系列の関節ベクトル）をそれぞれ計算する。この計算過程で、動作作成部７では、ロボットが特異姿勢になったか否か判定するとともに、ロボットが障害物に干渉するか否かを判定する。そして、動作作成部７では、ロボットが特異姿勢になったと判定した場合又はロボットが障害物に干渉したと判定した場合、その経由点の関節ベクトルの候補間の計算を中断し、その経由点の関節ベクトルの候補間の動作経路を無しとする。動作経路の計算方法としては、経由点間の間隔が短い場合には線形補間計算によって関節ベクトルを生成し、間隔が長い場合には順運動の解析公式による計算によって関節ベクトルを生成する。順運動の解析公式は、従来の解析公式を適用する。
【００４０】
なお、基本となる経由点を指定した後に、入力部３のマウスなどを使ってリアルタイムで経由点間に新たな経由点が順次指定された場合、その経由点については逆運動計算によって関節ベクトルを生成する。これによって、経由点間の間隔が短くなる。経由点間の間隔が極端に短くなると、経由点間を接続するための動作経路が必要なくなるので、逆運動計算だけで動作経路が生成される場合もある。
【００４１】
図５に示す例の場合、４つの経由点にそれぞれ５個の関節ベクトルの候補があるので、隣接する経由点の各関節ベクトルの候補間が７５通りあり、経由点１〜経由点４における関節ベクトルの候補の全ての組み合わせとしては５４通りあり、隣接する経由点の各関節ベクトルの候補間において特異姿勢を回避しかつ障害物と干渉しない動作経路を生成できた場合には線分で結んでいる。関節使用数ｍ＝４の場合、経由点１の関節ベクトルの候補ｑ１１と経由点２の関節ベクトルの候補ｑ２１、経由点１の関節ベクトルの候補ｑ１５と経由点２の関節ベクトルの候補ｑ２５などの線分で結ばれた６個の関節ベクトルの候補間において特異姿勢を回避しかつ障害物と干渉しない動作経路を生成できた。関節使用数ｍ＝５の場合、経由点１の関節ベクトルの候補ｑ１１と経由点２の関節ベクトルの候補ｑ２２、経由点１の関節ベクトルの候補ｑ１２と経由点２の関節ベクトルの候補ｑ２１などの線分で結ばれた９個の関節ベクトルの候補間において特異姿勢を回避しかつ障害物と干渉しない動作経路を生成できた。関節使用数ｍ＝６の場合、経由点１の関節ベクトルの候補ｑ１１と経由点２の関節ベクトルの候補ｑ２１、経由点１の関節ベクトルの候補ｑ１１と経由点２の関節ベクトルの候補ｑ２２などの線分で結ばれた１６個の関節ベクトルの候補間において特異姿勢を回避しかつ障害物と干渉しない動作経路を生成できた。なお、図５に示していないが、スタートの関節ベクトルと経由点１の５個の関節ベクトルの候補間及び経由点４の５個の関節ベクトルの候補とゴールの関節ベクトル間を接続するための計算も行われる。
【００４２】
関節ベクトルの候補間を接続するための全ての計算が終了すると、動作作成部７では、関節ベクトルの候補間を接続するとともに特異姿勢を回避しかつ障害物と干渉しない動作経路を生成できたものに基づいて、スタートの関節ベクトル、ゴールの関節ベクトル及び全ての経由点の関節ベクトルの候補間を連続的に繋ぐことができる各経由点の関節ベクトルの候補の組み合わせを探索する。
【００４３】
図５に示す例では、４つの経由点の関節ベクトルの候補間を連続的に繋ぐことができる関節ベクトルの候補の組み合わせは、関節使用数ｍ＝４の場合には無く、関節使用数ｍ＝５の場合には関節ベクトルの候補ｑ１１、ｑ２２、ｑ３３、ｑ４２の組み合わせ、関節ベクトルの候補ｑ１１、ｑ２２、ｑ３３、ｑ４５の組み合わせ、関節ベクトルの候補ｑ１５、ｑ２３、ｑ３３、ｑ４２の組み合わせ、関節ベクトルの候補ｑ１５、ｑ２３、ｑ３３、ｑ４５の組み合わせがあり、関節使用数ｍ＝６の場合には関節ベクトルの候補ｑ１１、ｑ２２、ｑ３３、ｑ４２の組み合わせ、関節ベクトルの候補ｑ１１、ｑ２２、ｑ３３、ｑ４５の組み合わせ、関節ベクトルの候補ｑ１１、ｑ２４、ｑ３２、ｑ４１の組み合わせ、関節ベクトルの候補ｑ１１、ｑ２４、ｑ３２、ｑ４２の組み合わせ、関節ベクトルの候補ｑ１３、ｑ２５、ｑ３５、ｑ４３の組み合わせ、関節ベクトルの候補ｑ１５、ｑ２２、ｑ３３、ｑ４２の組み合わせ、関節ベクトルの候補ｑ１５、ｑ２２、ｑ３３、ｑ４５の組み合わせがある。
【００４４】
関節ベクトルの候補の組み合わせがある場合、動作作成部７では、組み合わせが１つの場合にはその組み合わせを確定し、組み合わせが複数個ある場合には各組み合わせによる動作経路でロボットを動作させた場合の動作時間を比較し、ロボットの動作時間が最も短くなる組み合わせを選択する。関節ベクトルの候補の組み合わせが無い場合、関節選択部５において関節使用数ｍを再度決定し、関節使用数ｍを変えて処理を行う。なお、入力部３で指定された全ての関節の数について関節ベクトルの候補の組み合わせが無い場合、作業者が経由点を再指定し、経由点を変えて処理を行う。
【００４５】
関節ベクトルの候補の組み合わせが唯一決定すると、動作作成部７では、その組み合わせによる各経由点の関節ベクトル及び隣接する経由点の各関節ベクトル間の動作経路（関節ベクトルの時系列）を時系列に並べ、スタートからゴールまでの時系列で連続する関節ベクトルからなる動作経路を作成する。
【００４６】
出力部８は、動作作成部７で作成した動作経路を出力する手段である。出力部８は、例えば、モニタ、プリンタ、ロボットを動作させる制御部との通信を行う通信装置である。また、出力部８は、ロボットを動作させる制御部としての機能を有する場合、動作経路における各関節ベクトルに従ってロボットの各関節のアクチュエータを駆動制御する。
【００４７】
図１を参照して、動作経路作成装置１の動作を説明する。動作経路作成装置１のデータベース２には、ロボットの形状データや構造データ、環境データ、ロボットの特異姿勢データなどが予め格納される。動作経路作成装置１では、作業者によって入力部３から、ロボットの特定部位、ロボットのスタートとゴールの位置及び姿勢（関節ベクトル）、特定部位の経由点、関節の数などが入力される。
【００４８】
関節選択部５では、入力部３で指定された関節の数に基づいて関節使用数ｍ（６個以下）を決定する。例えば、関節使用数ｍとして、入力部３で指定された関節の数の中から小さい数から順に決定する。
【００４９】
関節使用数ｍが設定されると、関節選択部５では、ｎ個の関節の中からｍ個の関節を選択する。ｍ個の関節が選択されると、関節角度計算部６では、逆運動の解析公式により、特定部位が経由点の位置及び姿勢を実現するためのｍ個の関節の関節角度を計算し、そのｍ個の関節の関節角度と（ｎ−ｍ）個の関節の初期値の関節角度からなる関節ベクトルの候補を生成する。関節選択部５及び関節角度計算部６では、上記の処理を入力部３で指定された各経由点について所定回数行い、各経由点について所定個の関節ベクトルの候補を生成する。この所定個は、予め設定された個数かあるいは作業者が入力部３から指定した個数である。
【００５０】
各経由点について所定個の関節ベクトルの候補が計算されると、動作作成部７では、隣接する経由点の各関節ベクトルの候補間又はスタートの関節ベクトルと隣接する経由点の関節ベクトルの候補間又はゴールの関節ベクトルと隣接する経由点の関節ベクトルの候補間を接続するとともにロボットが特異姿勢を回避しかつ障害物と干渉しない動作経路を計算する。動作作成部７では、隣接する経由点の各関節ベクトルの候補間の全ての組み合わせ、スタートの関節ベクトルと隣接する経由点の関節ベクトルの候補間の全ての組み合わせ、ゴールの関節ベクトルと隣接する経由点の関節ベクトルの候補間の全ての組み合わせについて上記の処理を行う。
【００５１】
全ての組み合わせについて計算が終了すると、動作作成部７では、関節ベクトルの候補間を接続するとともに特異姿勢を回避しかつ障害物と干渉しない動作経路を生成できたものに基づいて、スタートの関節ベクトル、ゴールの関節ベクトル及び全ての経由点の関節ベクトルの候補間を連続的に繋ぐことができる各経由点での関節ベクトルの候補の組み合わせを探索する。
【００５２】
関節ベクトルの候補の組み合わせを複数個探索できた場合、動作作成部７では、各組み合わせによる動作経路でロボットを動作させた場合の動作時間を比較し、ロボットの動作時間が最も短くなる組み合わせを選択する。関節ベクトルの候補の組み合わせを１個探索できた場合、動作作成部７では、その組み合わせを確定する。
【００５３】
関節ベクトルの候補の組み合わせを探索できなかった場合、関節選択部５での上記処理に戻り、関節使用数ｍを再度決定し、関節使用数ｍを変えて上記処理を再度行う。
【００５４】
関節ベクトルの候補の組み合わせが唯一決定すると、動作作成部７では、その組み合わせによる各経由点についての関節ベクトル及び隣接する経由点の各関節ベクトル間の動作経路（関節ベクトルの時系列）を時系列に並べ、スタートからゴールまでの時系列で連続する関節ベクトルからなる動作経路を作成する。
【００５５】
動作経路を作成すると、動作経路作成装置１では、出力部８によって、動作経路を出力する。
【００５６】
この動作経路作成装置１によれば、７個以上の関節の中で６個以下の関節だけを使用して経由点の関節ベクトルの候補を計算することにより、７個以上の関節を使用した場合の複雑な計算を行う必要がなく、計算量を軽減でき、特異姿勢を回避しかつ障害物と干渉しない動作経路を計算効率良く作成することができる。その結果、リアルタイムで動作経路を作成でき、その動作経路に従ってロボットをリアルタイムで動作させることができる。また、動作経路作成装置１によれば、７個以上の関節の中で任意の６個以下の関節を使用できるので（固定する関節を変えることができるので）、滑らかな動きができる動作経路、多様な動きの動作経路、動作時間の短い動作経路などの実用的な動作経路を作成することができる。
【００５７】
また、動作経路作成装置１では、関節使用数ｍとして小さい数から順に処理を行うことにより、計算する際に使用する関節数が少なくなるので、計算量をより軽減でき、より効率良く動作経路を作成することができる。また、動作経路作成装置１では、関節使用数ｍとして大きい数から順に処理を行うことにより、使用する関節数が多くなるので、より滑らかな動きや多様な動きのできる実用的な動作経路を作成することができる。
【００５８】
また、動作経路作成装置１では、各経由点の関節ベクトルの候補の組み合わせを複数個探索できた場合にはロボットの動作時間が最も短くなる組み合わせを選択することにより、特異姿勢を回避しかつ障害物と干渉せずかつ動作時間の短い動作経路を作成することができる。
【００５９】
以上、本発明に係る実施の形態について説明したが、本発明は上記実施の形態に限定されることなく様々な形態で実施される。
【００６０】
例えば、本実施の形態では７個の関節を持つロボットの一例を示したが、７個以上の関節を持つ様々な形態のロボットに適用可能である。
【００６１】
また、本実施の形態では障害物との干渉判定を行い、障害物を回避する動作経路を作成する構成としたが、ロボット周辺に障害物が存在しない場合には障害物との干渉判定を行う必要はない。
【００６２】
また、本実施の形態では特異姿勢を回避した各経由点の関節ベクトルの候補の組み合わせが複数ある場合、ロボットの動作時間が最も短くなる組み合わせを選択する構成としたが、他の条件に基づいて組み合わせを選択するようにしてもよい。
【００６３】
また、マウス操作によって画面上のロボットの特定部位（手首など）を動かす場合（すなわち、経由点を作成する場合）においても、ロボットの所望の動作経路を作成できるようにする。
【図面の簡単な説明】
【００６４】
【図１】本実施の形態に係る動作経路作成装置の構成図である。
【図２】本実施の形態で適用されるロボットの一例である。
【図３】経由点に対する複数の関節ベクトルの候補の一例である。
【図４】各経由点に対して選択された関節ベクトルの一例である。
【図５】図１の動作作成部での処理の説明図であり、（ａ）が関節使用数ｍ＝４であり、（ｂ）が関節使用数ｍ＝５であり、（ｃ）が関節使用数ｍ＝６である。
【符号の説明】
【００６５】
１…動作経路作成装置、２…データベース、３…入力部、４…記憶部、５…関節選択部、６…関節角度計算部、７…動作作成部、８…出力部
【図１】
2009134352.tif 000003
【図２】
2009134352.tif 000004
【図３】
2009134352.tif 000005
【図４】
2009134352.tif 000006
【図５】
2009134352.tif 000007