(57)【要約】【課題】タクトタイムを大きく損なうことなく、ロボットの耐久性の向上を図ることが可能なロボット制御装置を提供する。【解決手段】ロボット制御装置３００は、関節Ｊ１〜Ｊ６に電動モータ２１１〜２１６からの駆動力を伝達し、指定された軌道Ｐ１〜Ｐ４を通るように駆動されるロボットアーム２００を、各電動モータ２１１〜２１６に指令する指令値に基づき制御する。演算部は、関節の振動モデルを用いて、伝達要素に加わる負荷トルクが許容範囲内となるような各関節の加加速度制約値を算出する。そして、演算部は、算出した各関節の加加速度制約値を含む制約条件を不等式制約とした最適化問題を解くことで電動モータ２１１〜２１６に対する指令値を生成する。【選択図】図１
2014014875.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節に伝達要素を介してそれぞれに対応する駆動源からの駆動力を伝達し、指定された軌道を通るように駆動されるロボットアームを、各前記駆動源に指令する指令値に基づき制御するロボット制御装置において、
前記関節の振動モデルを用いて、前記伝達要素に加わる負荷トルクが許容範囲内となるような前記各関節の加加速度の制約値を算出し、前記算出した各関節の加加速度の制約値を含む制約条件を不等式制約とした最適化問題を解くことで前記指令値を生成する演算部を備えた、
ことを特徴とするロボット制御装置。
【請求項２】
前記演算部は、前記軌道を定める複数の教示点ごとに、前記各関節の加加速度の制約値を算出する、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記ロボットアームと、
前記ロボットアームを制御する請求項１又は２に記載のロボット制御装置と、を備えた、
ことを特徴とするロボット装置。
【請求項４】
複数の関節に伝達要素を介してそれぞれに対応する駆動源からの駆動力を伝達し、指定された軌道を通るように駆動されるロボットアームを、各前記駆動源に指令する指令値に基づき制御するロボット制御方法において、
前記関節の振動モデルを用いて、前記伝達要素に加わる負荷トルクが許容範囲内となるような前記各関節の加加速度の制約値を算出する算出工程と、
前記算出した各関節の加加速度の制約値を含む制約条件を不等式制約とした最適化問題を解くことで前記指令値を生成する指令値生成工程と、を備えた、
ことを特徴とするロボット制御方法。
【請求項５】
コンピュータに請求項４に記載のロボット制御方法の各工程を実行させるためのプログラム。
【請求項６】
請求項５に記載のプログラムを記録した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定された複数の教示点によって定まる軌道を通るように駆動されるロボットアームを、複数の関節のそれぞれに対応した駆動源に指令する指令値に基づき制御するロボット制御装置及びロボット制御方法に関する。
【背景技術】
【０００２】
近年、工場で組立等を行う産業用ロボットは、生産速度の向上や複雑な動作への対応が求められ、動作の高速化が求められており、ロボットの動作を高速化するためには、関節駆動の加減速を急峻にする必要がある。一方、ロボットにおいては、駆動源（アクチュエータ）から関節まで駆動力を伝達する伝達要素として、減速機、ベルト、ベアリングなどを備えているが、特に減速機などは、一般的に低剛性のものが多く、急峻な加減速を行うと振動を生じ易い。この振動が伝達要素に作用する際、それら伝達要素に過負荷がかかることになると、耐久性として好ましくない。
【０００３】
そこで、ロボットの動作中に伝達要素にかかる負荷を外乱オブザーバで推定し、閾値と比較することで過負荷を検知し、過負荷を検知した際にはロボットを保護する処理を行うものが提案されている（特許文献１参照）。
【０００４】
また、ロボットにおいて振動特性から振動の大きさを算出し、振動の大きさを評価関数に含めて軌道を最適化し、その軌道を用いてロボットを制御するものが提案されている（特許文献２）。これにより、ロボットの動作中に発生する振動の低減化を図ることが可能となっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許４３３５２８６号公報
【特許文献２】特開２０１１−１６７８２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献１のものは、ロボットの保護を図ることが可能であるが、ロボットの動作中に過負荷を検知した際に、ロボットを保護する処理に移る必要があり、タクトタイムに影響してしまうという問題がある。
【０００７】
また、上記特許文献２のものは、ロボットの動作中に発生する振動の低減化を図ることができるが、振動が低減されたからといって、伝達要素に作用する負荷トルクが低減されるものとは限らない。言い換えると、例えば伝達要素の剛性が高いほど、振動は低減されるため、特許文献２の演算手法であると高速化されることになるが、伝達要素が脆性であると、その高速化に耐えられない虞がある。つまり、振動を低減する軌道を演算しても、伝達要素にかかる負荷トルクが低減されるとは限らず、振動の低減によってロボットの耐久性が向上するとは限らないという問題がある。
【０００８】
そこで本発明は、タクトタイムを大きく損なうことなく、ロボットの耐久性の向上を図ることが可能なロボット制御装置及びロボット制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明は、複数の関節に伝達要素を介してそれぞれに対応する駆動源からの駆動力を伝達し、指定された軌道を通るように駆動されるロボットアームを、各前記駆動源に指令する指令値に基づき制御するロボット制御装置において、前記関節の振動モデルを用いて、前記伝達要素に加わる負荷トルクが許容範囲内となるような前記各関節の加加速度の制約値を算出し、前記算出した各関節の加加速度の制約値を含む制約条件を不等式制約とした最適化問題を解くことで前記指令値を生成する演算部を備えたことを特徴とする。
【００１０】
また、本発明は、複数の関節に伝達要素を介してそれぞれに対応する駆動源からの駆動力を伝達し、指定された軌道を通るように駆動されるロボットアームを、各前記駆動源に指令する指令値に基づき制御するロボット制御方法において、前記関節の振動モデルを用いて、前記伝達要素に加わる負荷トルクが許容範囲内となるような前記各関節の加加速度の制約値を算出する算出工程と、前記算出した各関節の加加速度の制約値を含む制約条件を不等式制約とした最適化問題を解くことで前記指令値を生成する指令値生成工程と、を備えたことを特徴とする。
【発明の効果】
【００１１】
本発明によると、関節の振動モデルを用いて、伝達要素に加わる負荷トルクが許容範囲内となるような各関節の加加速度の制約値を算出し、算出した各関節の加加速度の制約値を含む制約条件を不等式制約とした最適化問題を解くことで指令値を生成する。これにより、その指令値で制御されるロボットアームにおいて、動作中に、伝達要素にかかる負荷トルクが許容範囲を超えることの防止が図られ、動作中にロボットアームを保護する処理を行うことを不要にでき、タクトタイムを大きく損なうことの防止が図られる。また、動作中に、伝達要素にかかる負荷トルクが許容範囲を超えることの防止が図られるので、ロボットアームの耐久性の向上を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係るロボット装置の概略構成を示す説明図。
【図２】ロボット制御装置の構成を示すブロック図。
【図３】本発明に係る制御部の構成を示すブロック図。
【図４】指令値の演算処理を示すフローチャート。
【図５】本実施の形態におけるアーム１軸の伝達関数を示すブロック図。
【図６】図５の伝達関数を簡略化したアーム１軸の伝達関数を示すブロック図。
【図７】本ロボット制御装置によりロボットを制御して一動作を実行した際における各値を示す図で、（ａ）は指令値を示す図、（ｂ）は指令加速度を示す図、（ｃ）は指令加加速度を示す図、（ｄ）は慣性モーメントを示す図。
【図８】本ロボット制御装置によりロボットを制御して一動作を実行した際における関節トルクを示す図。
【図９】ロボット制御装置により加加速度制約値を一定値としてロボットを制御して一動作を実行した際における各値を示す図で、（ａ）は指令値を示す図、（ｂ）は指令加速度を示す図、（ｃ）は指令加加速度を示す図、（ｄ）は慣性モーメントを示す図。
【図１０】ロボット制御装置により加加速度制約値を一定値としてロボットを制御して一動作を実行した際における関節トルクを示す図。
【発明を実施するための形態】
【００１３】
以下、本発明に係る実施の形態を、図１乃至図１０に沿って説明する。まず、ロボット装置の概略構成について説明する。図１に示すように、ロボット装置１００は、多関節ロボットとしてのロボットアーム２００と、ロボットアーム２００を制御するロボット制御装置３００と、を備えている。また、ロボット装置１００は、ロボット制御装置３００に複数の教示点のデータを送信する教示装置としてのティーチングペンダント４００を備えている。ティーチングペンダント４００は、人が操作するものであり、ロボットアーム２００やロボット制御装置３００の動作（軌道）を指定するのに用いる。
【００１４】
ロボットアーム２００は、本実施の形態では、例えば６関節ロボットである。ロボットアーム２００は、各関節Ｊ１〜Ｊ６を各関節軸Ａ１〜Ａ６まわりにそれぞれ回転駆動する複数（６つ）のアクチュエータ２０１〜２０６を有している。ロボットアーム２００は、可動範囲の中であれば任意の３次元位置で任意の３方向の姿勢に手先（ロボットアームの先端）を向けることができる。一般に、ロボットアーム２００の位置と姿勢は、座標系で表現することができる。図１中のＴｏはロボットアーム２００の台座に固定した座標系を表し、Ｔｅはロボットアーム２００の手先に固定した座標系を表す。
【００１５】
本実施形態では、各アクチュエータ２０１〜２０６は、電動モータ２１１〜２１６と電動モータ２１１〜２１６に接続された減速機２２１〜２２６とからなる。各減速機２２１〜２２６は、不図示のベルトやベアリング等を介してそれぞれの関節Ｊ１〜Ｊ６で駆動するフレームに接続されている。本明細書中では、これら減速機２２１〜２２６、ベルトやベアリング等を駆動源（即ち電動モータ２１１〜２１６）の駆動力を伝達する「伝達要素」と定義する。なお、各アクチュエータ２０１〜２０６の構成は、これに限定するものではなく、例えば人工筋肉等であってもよい。
【００１６】
本実施の形態では、各関節Ｊ１〜Ｊ６が回転関節である場合について説明する。この場合、「関節の位置」とは、関節の角度を意味する。なお、各関節が直動関節の場合であってよい。その場合、「関節の位置」とは、直動関節の位置である。同様に、それらの時間微分についても「関節の速度」、「関節の加速度」、「関節の加加速度」という。
【００１７】
ロボットアーム２００は、更に、各アクチュエータ２０１〜２０６の電動モータ２１１〜２１６を駆動制御する駆動制御部としてのサーボ制御装置２３０を有している。サーボ制御装置２３０は、入力した指令値に基づき、各関節Ｊ１〜Ｊ６の位置が指令値に追従するよう、各電動モータ２１１〜２１６に電流指令を出力し、各電動モータ２１１〜２１６の動作を制御する。なお、本実施の形態ではサーボ制御装置２３０を１つの制御装置で構成しているものを説明しているが、各電動モータ２１１〜２１６にそれぞれ対応したサーボ制御装置を備えていてもよい。
【００１８】
ロボット制御装置３００は、ティーチングペンダント４００から複数の教示点（教示点列）の入力指示（つまり軌道の指定）を受ける。ロボット制御装置３００は、ロボットアーム２００の各関節Ｊ１〜Ｊ６が、複数の教示点を順次辿って動作するよう、教示点に基づき、サーボ制御装置２３０に所定時間間隔で出力する位置指令を生成し、所定時間間隔で位置指令を出力する。
【００１９】
教示点は、各関節（６つの関節）Ｊ１〜Ｊ６の教示位置をベクトル成分として含むベクトル（教示点ベクトル）である。そして、ロボット制御装置３００において最終的に求められる位置指令は、各関節（６つの関節）Ｊ１〜Ｊ６の目標位置をベクトル成分として含むベクトルである。本実施の形態では、教示点と位置指令とは、点数は異なるが、次元（単位）は同一である。
【００２０】
つまり、ロボット制御装置３００は、入力した教示点からＣＰ軌道の計算をして軌道に沿った多数の位置指令を生成し、これら位置指令を所定時間間隔でサーボ制御装置２３０に出力するものである。
【００２１】
その際、ロボット制御装置３００は、詳しくは後述するように、与えられた教示点列によって定まる軌道に対し、軌道上の通過速度を、ロボットアーム２００の各関節Ｊ１〜Ｊ６の速度、加速度、トルク等の制約条件を越えない範囲で調整する最適化処理を行う。
【００２２】
なお、図１では、４つの教示点ｐ１，ｐ２，ｐ３，ｐ４を模式的に図示している。ロボットアーム２００の動作は教示点で決まる軌道に沿って動く。
【００２３】
図２は、ロボット制御装置３００の構成を示すブロック図である。ロボット制御装置３００は、演算部としてのＣＰＵ３０１と、記録部としてのＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ（ハードディスクドライブ）３０４、記録ディスクドライブ３０５と、各種のインタフェース３０６〜３０９と、を備えたコンピュータである。
【００２４】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５及び各種のインタフェース３０６〜３０９が、バス３１０を介して接続されている。ＲＯＭ３０２には、ＣＰＵ３０１を動作させるためのプログラム３３０が格納されている。このプログラム３３０は、詳しくは後述するＣＰＵ３０１の各部（図３参照）に各種演算処理を実行させるためのプログラムである。ＲＡＭ３０３は、ＣＰＵ３０１の演算処理結果などを一時的に記憶する記憶部である。ＨＤＤ３０４は、演算処理結果や各種のデータを記憶するための記憶部である。
【００２５】
ティーチングペンダント４００はインタフェース３０６に接続されており、ＣＰＵ３０１はインタフェース３０６及びバス３１０を介してティーチングペンダント４００からの教示点のデータの入力を受ける。
【００２６】
ロボットアーム２００のサーボ制御装置２３０は、インタフェース３０９に接続されており、ＣＰＵ３０１は、位置指令のデータを所定時間間隔でバス３１０及びインタフェース３０９を介してサーボ制御装置２３０に出力する。
【００２７】
インタフェース３０７には、モニタ３２１が接続されており、モニタ３２１には、各種画像が表示される。インタフェース３０８は、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置３２２が接続可能に構成されている。記録ディスクドライブ３０５は、記録ディスク（記録媒体）３３１に記録された各種データやプログラム等を読み出すことができる。なお、本発明に係るプログラムが記録される記録媒体としては、記録ディスク３３１だけに限らず、外部記憶装置３２２などの不揮発性メモリや外付けＨＤＤ等も含まれる。
【００２８】
ついで、本実施の形態におけるＣＰＵ（演算部）３０１の各機能を図３に沿って説明する。本実施の形態では、上記プログラム３３０によってＣＰＵ３０１が、教示点列取得部３０１ａ、最適化演算部３０１ｂ、加加速度制約値算出部３０１ｃ、指令値生成部３０１ｄとして機能する。
【００２９】
上記教示点列取得部３０１ａは、ティーチングペンダント４００から指示された教示点や、教示点間を補完することで生成した教示点の点列である教示点列の情報を取得する。なお、この教示点列の情報は、上記６つの関節毎に設定された教示点の集合体でもあり、つまりロボットアーム２００の軌道のデータと言える。
【００３０】
上記加加速度制約値算出部３０１ｃは、関節の位置、速度、加速度、加加速度、トルクなどの各種の値を後述の最適化演算部３０１ｂを介して入力すると共に、伝達要素（減速機、ベルト、ベアリングなど）の負荷トルクの許容値を入力する。そして、加加速度制約値算出部３０１ｃは、詳しくは後述する数式の演算を行うことで、関節の振動モデルを用いて、伝達要素に加わる負荷トルクが許容範囲内となるような各関節の加加速度制約値（制約条件）を演算し、最適化演算部３０１ｂに出力する。
【００３１】
なお、伝達要素に発生する負荷トルクが許容値は、伝達要素の各部品の剛性、脆性、弾性などによって演算できるが、製品として負荷トルクに対する耐久性の値（例えばカタログ値）が分かるものは、それを用いることもできる。
【００３２】
上記最適化演算部３０１ｂは、教示点列における通過時間と加加速度制約値（制約条件）とに基づくロボットアーム２００の最適な指令値の演算を行う。最適化演算部３０１ｂがこの最適な指令値を演算する際は、取得した加加速度制約値を不等式制約として最適化問題を解くことで、軌道の演算を行う。なお、最適化問題を解くという意味は、詳しくは後述するように、耐久性とタクトタイムとを満足するように追求した最適な収束値を求めるという意味である。
【００３３】
続いて、本ロボット制御装置３００による指令値生成の制御を図４に沿って説明する。図４に示すように、最適化演算部３０１ｂは、まず教示点列の各点ごとの通過時間ｔを設定する（Ｓ１）。続いて、設定された通過時間に対し、各点の関節の位置（角度）、速度、加速度、加加速度、トルクを算出する（Ｓ２）。なお、各点の関節の位置（角度）、速度、加速度、加加速度の値は、それぞれ全関節の値を縦に並べたベクトルで表わせる。また、関節のトルクについては、ロボットアーム２００の運動方程式に、関節の位置、速度、加速度を代入することで算出できる。
【００３４】
次に、算出した各点の関節の位置（角度）、速度、加速度、加加速度、電動モータのトルクの値を加加速度制約値算出部３０１ｃに送信し（Ｓ３）、加加速度制約値算出部３０１ｃは、加加速度制約値の演算を開始する。
【００３５】
ここで、加加速度制約値算出部３０１ｃによる加加速度制約値（制約条件）の演算（算出工程）を図５及び図６を用いて説明する。なお、最適化演算部３０１ｂで算出された関節の「位置」、「速度」、「加速度」、「加加速度」、「トルク」、及び算出される「加加速度制約値」を下記の記号とする。
【００３６】
【数１】
2014014875.tif 000003
【００３７】
本実施の形態では、過負荷を防止する伝達要素を減速機とし、また、減速機の減速比は１とする。減速比が１なので減速機にかかるトルクと関節トルクは等価になる。よって、関節トルクの許容最大値を減速機の許容トルクとし、関節トルクがこの値を超えないための関節加加速度制約値を算出する。
【００３８】
図５は、アーム１軸の際の伝達関数を示すブロック図である。ここで、「ラプラス演算子」、「モータトルク」、「他軸からの干渉トルク及び重力」、「関節トルク」、「減速機の剛性」、ロボット制御装置３００から送られてくる「位置指令値」、「慣性」、「粘性」を下記の記号とする。
【００３９】
【数２】
2014014875.tif 000004
【００４０】
また、添え字の「ｉｎ」は電動モータに関する値、添え字の「ｏｕｔ」はロボットアーム２００の関節間を構成するフレームに関する値であることを表す。そして、図５に示すように、電動モータに関する伝達関数３５１、減速機に関する伝達関数３５２、フレームに関する伝達関数３５３を有している。
【００４１】
ここで、図５に示す伝達関数のブロック図において、電動モータの剛性が減速機の剛性に比べて十分に高く電動モータが指令値にほぼ一致するように追従し、かつ「フレームの粘性」と「他軸からの干渉トルク及び重力」とを限りなく０と考えて仮定する。すると、図５のブロック図は、図６に示す伝達関数のブロック図のように簡略化できる。なお、図６においては、加加速度と振動トルクの関係を得るために指令値を、図６の４０１のように「指令加加速度と２階積分と」で表現している。
【００４２】
図６において、指令加加速度が大きさのステップ信号だと仮定して逆ラプラス変換すると、関節トルクは次式のように求められる。
【００４３】
【数３】
2014014875.tif 000005
【００４４】
数式（１）における右辺の第１項はフレーム部を加加速度指令どおりに動かすために必要なトルクであり、第２項は加加速度指令によって生じる振動トルクである。よって、加加速度が１回ステップ状に変動した際の振動トルクの最大値は、
【００４５】
【数４】
2014014875.tif 000006
となる。加加速度が変動する度に振動トルクは加算されていくため、動作時に生じる振動トルクの最悪値は数式（２）の値に加加速度変動回数をかけることで得られる。加加速度変動回数を「ａ」とすると、動作時の全振動トルク「Ｔｘ」を次式で求めることにする。
【００４６】
【数５】
2014014875.tif 000007
【００４７】
ここで、「Ｔｍａｘ」を関節トルクの許容最大値として、数式（３）の全振動トルクと加加速度の関係を用いると、関節トルクが許容値内に収まる最大の関節の加加速度を求めることができる。関節トルクの余裕分が全振動トルクと等しくなるとき、加加速度は関節トルクが許容値内に収まる最大のものになる。関節トルクの余裕＝振動トルク、という式は、
【００４８】
【数６】
2014014875.tif 000008
となる。なお、「Ｔｒｅｆ」はフレーム部を所望の軌道で動作させる際に必要なトルクである。左辺は関節トルクの余裕分、右辺は全振動トルクを表している。
【００４９】
上記数式（４）を変形すると次式が得られる。
【００５０】
【数７】
2014014875.tif 000009
【００５１】
この数式（５）がロボット関節の伝達モデルである。この数式（５）を用いることで、関節トルクが許容値内に収まる最大の関節の加加速度制約値（つまり制約条件）が求まる。以上の説明では、アーム１軸についての演算を説明したが、加加速度制約値算出部３０１ｃによる関節の加加速度制約値の演算は、アーム６軸について、上述した教示点列取得部３０１ａで取得された教示点ごとに、各関節の加加速度制約値をそれぞれ算出する。これにより、ロボットアーム２００全体の教示点ごとの加加速度制約値（制約条件）が求まる。
【００５２】
以上のように加加速度制約値算出部３０１ｃにより加加速度制約値が算出されると、図３及び図４に示すように、最適化演算部３０１ｂは加加速度制約値を受け取る（Ｓ４）。すると、最適化演算部３０１ｂは、その加加速度制約値を制約条件として、上記ステップＳ１で設定された教示点の通過時間でロボットアーム２００を駆動した際に、制約条件を満足しているか否かを判定する（Ｓ５）。
【００５３】
この制約条件を満足していない場合は、教示点における通過時間を調節し直す（再設定する）（Ｓ７）。即ち、負荷トルクの制約条件を越えるような加加速度制約値である場合は、通過時間を長くするように調節し、その後、上記ステップＳ１〜Ｓ５を繰り返す。これにより、上記算出した各関節の加加速度制約値を含む制約条件を不等式制約とした最適化問題を解くことになる。そして、最終的に制約条件を満足することで（Ｓ５のＹｅｓ）、図３に示す指令値生成部３０１ｄは、最短時間となる各関節（電動モータ２１１〜２１６）に対する指令値が生成される（決定される）（Ｓ６）（指令値生成工程）。
【００５４】
そして、指令値生成部３０１ｄは、サーボ制御装置２３０（図２参照）を介して、この指令値を各関節（電動モータ２１１〜２１６）に指令することで、ロボットアーム２００をティーチングペンダント４００で指示された軌道を通るように制御する。
【００５５】
このように加加速度を演算して求め、最適化した指令値でロボットアーム２００を制御した際の効果を図７乃至図１０に沿って検証する。図９及び図１０に示す場合は、指令値を、加加速度制約値を全領域で固定値として算出し、ロボットアーム２００の１つの関節を所定の軌道を通るように駆動した場合の実験値の一例である。この際の指令値（関節の角度の値）は図９（ａ）で示すように変化する。また、この際の加速度αは図９（ｂ）に示すように変化し、加加速度は図９（ｃ）のように変化し、関節に生じる慣性モーメントは図９（ｄ）のように発生する。この際は、図１０に示すように、関節の加速時に関節で発生するトルクが許容範囲ＡＲを越えてしまい、反対に関節の減速時に許容範囲ＡＲに対して余裕過多の状態となっていることが分かる。
【００５６】
続いて、本実施の形態に係るロボット制御装置３００で設定された指令値で、同様にロボットアーム２００の１つの関節を所定の軌道を通るように駆動した場合の実験値を、図７及び図８に示す。この際の指令値（関節の角度の値）は図７（ａ）で示すように変化する。また、この際の加速度αは図７（ｂ）に示すように変化し、加加速度は図７（ｃ）のように変化し、関節に生じる慣性モーメントは図７（ｄ）のように発生する。
【００５７】
即ち、図７（ｃ）に示すように、本実施の形態では、加加速度が関節の加速時に小さく、関節の減速時に大きい値になっていることが分かる。これは、指令値算出の際に、上記数式（５）に示すように慣性モーメントが大きい場合は加加速度制約値が小さくなり、慣性モーメントが小さい場合は加加速度制約値が大きくなるように設定されたためである。これにより、図９及び図１０と同じ軌道でロボットアーム２００を制御した場合であっても、図８に示すように、関節で発生するトルクが許容範囲ＡＲに納まっている（許容範囲内となっている）ことが分かる。特に、関節の加速時には指令加加速度が小さくなることで関節に生じる負荷トルクが抑えられ、減速時には許容範囲ＡＲ内で指令加加速度を大きくすることで減速時間が短くできている。
【００５８】
以上のように本ロボット制御装置３００によると、関節の振動モデル（数式（５））を用いて、伝達要素に加わる負荷トルクが許容範囲内となるような各関節の加加速度制約値を算出する。そして、算出した各関節の加加速度制約値を含む制約条件を不等式制約とした最適化問題を解くことで指令値を生成する。これにより、その指令値で制御されるロボットアームにおいて、動作中に、伝達要素にかかる負荷トルクが許容範囲ＡＲを超えることの防止が図られる。よって、動作中にロボットアーム２００を保護する処理を行うことを不要にでき、タクトタイムを大きく損なうことの防止が図られる。また、動作中に、伝達要素にかかる負荷トルクが許容範囲を超えることの防止が図られるので、ロボットアーム２００の耐久性の向上を図ることができる。そして、伝達要素にかかる負荷トルクが許容範囲ＡＲ内となる中で、最適化された指令値でロボットアーム２００が駆動制御されるので、耐久性を損なうことがない範囲でタクトタイムの最短化を図ることができる。
【００５９】
なお、以上説明した実施の形態では、教示点列が各関節の位置で与えられるものを説明した。しかし、教示点列が３次元空間の位置・姿勢で与えられる場合は、逆運動学計算によって各関節の位置に変換すればよい。
【００６０】
また、以上説明した実施の形態では、指令値（制約条件）を最適化する手法として、教示点毎の通過時間を調節し、制約条件を満足するまで計算を繰り返す方法を説明した。この際の最適化の評価関数は時間を用い、最短時間軌道を求めることが考えられる。
【００６１】
さらに、以上説明した実施の形態では、ロボットアーム２００が６つの関節を有する６関節ロボットである場合を説明したが、関節の数はこれに限定されるものではない。また、関節の駆動方向は、回転方向の駆動だけに限らず、直動方向の駆動（伸縮駆動）も含まれる。
【符号の説明】
【００６２】
１００…ロボット装置：２００…ロボットアーム：２１１〜２１６…駆動源（電動モータ）：２２１〜２２６…伝達要素（減速機）：３００…ロボット制御装置（コンピュータ）：３０２…演算部：３３０…プログラム：３３１…記録媒体（記録ディスク）：ＡＲ…許容範囲：Ｊ１〜Ｊ６…関節：Ｐ１〜Ｐ４…軌道（教示点列）
【図１】
2014014875.tif 000010
【図２】
2014014875.tif 000011
【図３】
2014014875.tif 000012
【図４】
2014014875.tif 000013
【図５】
2014014875.tif 000014
【図６】
2014014875.tif 000015
【図７】
2014014875.tif 000016
【図８】
2014014875.tif 000017
【図９】
2014014875.tif 000018
【図１０】
2014014875.tif 000019