JP2015051469A - ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体 - Google Patents
ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2015051469A JP2015051469A JP2013184233A JP2013184233A JP2015051469A JP 2015051469 A JP2015051469 A JP 2015051469A JP 2013184233 A JP2013184233 A JP 2013184233A JP 2013184233 A JP2013184233 A JP 2013184233A JP 2015051469 A JP2015051469 A JP 2015051469A
- Authority
- JP
- Japan
- Prior art keywords
- interpolation
- robot
- speed
- estimated
- joint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
【課題】最短時間制御に要する計算量を低減すると共に、教示点の始点から終点までの多関節ロボットの動作時間を短縮する。
【解決手段】補間関数計算処理部361は、複数の教示点における始点から終点までの間を複数の区間に区切り、各区間にそれぞれ指定された補間方法で、区間毎に補間教示点の通過順番を変数sとした区間補間関数をそれぞれ求める。この際、区間補間関数は、タスク空間及び関節空間のうちいずれか一方に統一して求める。補間関数計算処理部361は、各区間補間関数を、区間補間関数の番号kにより切り替えることにより結合して全区間に跨る、変数sを用いた補間関数を求める。
【選択図】図3
【解決手段】補間関数計算処理部361は、複数の教示点における始点から終点までの間を複数の区間に区切り、各区間にそれぞれ指定された補間方法で、区間毎に補間教示点の通過順番を変数sとした区間補間関数をそれぞれ求める。この際、区間補間関数は、タスク空間及び関節空間のうちいずれか一方に統一して求める。補間関数計算処理部361は、各区間補間関数を、区間補間関数の番号kにより切り替えることにより結合して全区間に跨る、変数sを用いた補間関数を求める。
【選択図】図3
Description
本発明は、教示点で与えられる軌道に沿って多関節ロボットを動作させるとき、動作時間が最短になる位置指令を生成するロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体に関する。
近年、人間の手のように複雑で高速な組立を実現できる、多関節ロボットを有する組立装置の開発事例が増えており、多関節ロボットの高速動作が重要となっている。
しかも、複雑で精密な組立て対象に対応するためには、2つの教示点間を結ぶ単純なPTP(Point to Point)軌道ではなく、3つ以上の教示点を結ぶ複雑なCP(Continuous Path)軌道に対応する必要がある。
このような要求に応えるべく、多関節ロボットの最短時間制御(Time Optimal Control)の技術が提案されている(特許文献1参照)。この最短時間制御は、1980年代から論文が散見され、よく知られている。特許文献1では、多関節ロボットの各関節に対する位置指令(目標位置)を所定時間間隔(例えば1ms間隔)で出力するために、与えられた各教示点間を所定時間間隔で補間して位置指令を求めている。そして、各位置指令の値を、動作時間が最小化するように修正している。
また、教示点を指定した際には、各教示点間の補間方法を指定するのが一般的である。補間方法としては直線補間(Linear Interpolation)、円弧補間(Circular Interpolation)、関節補間(Joint Interpolation)などがあげられる。
ロボットを用いた組立を行う際には、複数の種類の補間方法を使い分けることが多い。例えば、第1教示点から第2教示点までの第1区間では直線補間を指定し、第2教示点から第3教示点までの第2区間では関節補間を指定するといったことが行われる。例えば、ロボットアームの先端(ロボットハンド)に直進性が必要な嵌合作業時には直線補間を使用し、直線補間が使えない特異点付近では関節補間を用いるというようにユーザが使い分けを行う。
しかしながら、上記特許文献1では、最短時間制御に要する計算量が多い。具体的に説明すると、上記特許文献1では、各教示点に基づき目標位置を示す位置指令を計算し、この計算した位置指令に対して最短時間制御の演算を行い、修正した位置指令を生成している。
位置指令は、多関節ロボットの速度や位置精度が低下するのを抑制するために、微小(例えば数ミリ秒)の所定時間間隔で出力する必要があり、データ量が多い。例えば多関節ロボットを10秒間動かす際に、1ms間隔で位置指令を出力する際には、10×1000=1万個の修正した位置指令が必要となる。従って、最短時間制御で演算処理するデータ量が多くならざるを得ない。そして、最短時間制御は、最適化問題に帰着して解くものであり、計算時間を要するものであり、データ量の増加は計算時間の増加となる。演算処理している間は、多関節ロボットを動作させることができないので、最短時間制御の目的であった、多関節ロボットの高速動作ができていないという問題があった。
また、区間毎に個別に補間関数を設定し、区間毎に最適化計算を行って多関節ロボットの軌道を生成すると、補間関数が切り替わる境界で多関節ロボットが一時停止するなど滑らかに動作しないことがあった。これにより、教示点の始点から終点までの全区間に要する多関節ロボットの動作時間が長くなっていた。
そこで、本発明は、最短時間制御に要する計算量を低減すると共に、教示点の始点から終点までの間において上記境界で多関節ロボットが滑らかに動作することで動作時間を短縮することを目的とする。
本発明は、多関節ロボットが、指定された複数の教示点を辿って動作するよう、前記多関節ロボットの各関節を駆動する各アクチュエータの動作を位置指令に基づいて制御する駆動制御部に、位置指令を出力するロボット制御装置において、前記複数の教示点における始点から終点までの間を複数の区間に区切り、前記多関節ロボットの位置及び姿勢を規定するタスク空間、及び前記多関節ロボットの各関節角度を規定する関節空間のうち、いずれか一方に統一して、前記各区間にそれぞれ指定された補間方法で区間補間関数をそれぞれ求める区間計算処理と、前記各区間補間関数を結合して全区間に跨る、補間教示点の通過順番を示す変数を用いた補間関数を求める補間関数計算処理と、前記補間関数から求められる各補間教示点を前記変数で微分した微分係数をそれぞれ計算する微分係数計算処理と、前記各補間教示点において前記変数を時間微分した微分値を示す通過速度をそれぞれ仮設定する仮設定処理と、前記各補間教示点における前記各関節の推定速度を、前記各通過速度及び前記各微分係数に基づいて計算する推定値計算処理と、前記各関節の推定速度と予め定めた許容速度との比が所定制約範囲内となる条件を含む制約条件の下、前記各通過速度を変更して、前記教示点の始点から終点に到達する時間を最小化する最短時間制御処理と、前記最短時間制御処理で得られた前記各通過速度から通過速度関数を求める通過速度関数計算処理と、前記通過速度関数から前記位置指令を生成する位置指令生成処理と、を実行する演算部を備えたことを特徴とする。
本発明によれば、各補間教示点における補間関数の変数に対する各通過速度を目的関数が最小化するように変更する最短時間制御処理を行い、このようにして求められた各通過速度を用いて、補間関数から所定時間間隔毎の位置指令を生成している。このように、位置指令は目的関数の最小化を行った後に求めているので、補間教示点の数を位置指令の数と同数にする必要はなく、補間教示点の数を、位置指令の数よりも少なくすることが可能である。したがって、最短時間制御処理に要する計算量を低減することができ、演算部において位置指令を求める計算時間を短縮させることができる。
また、複数の補間方法が混在して多関節ロボットの軌道を生成する際にも、最短時間制御処理前に複数の区間補間関数を1つの補間関数に結合してから最短時間制御処理を行っている。そのため、補間方法毎に個別に最適化した時と比べて、区間補間関数の境界を跨いでも滑らかに動作することが可能になり全体での動作時間の短縮が可能となる。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、本発明の第1実施形態に係るロボット装置の概略構成を示す説明図である。図1に示すロボット装置100は、多関節ロボットとしてのロボットアーム200と、ロボットアーム200を制御するロボット制御装置300と、を備えている。また、ロボット装置100は、ロボット制御装置300に複数の教示点のデータを送信する教示装置としてのティーチングペンダント400を備えている。ティーチングペンダント400は、人が操作するものであり、ロボットアーム200やロボット制御装置300の動作を指定するのに用いる。
図1は、本発明の第1実施形態に係るロボット装置の概略構成を示す説明図である。図1に示すロボット装置100は、多関節ロボットとしてのロボットアーム200と、ロボットアーム200を制御するロボット制御装置300と、を備えている。また、ロボット装置100は、ロボット制御装置300に複数の教示点のデータを送信する教示装置としてのティーチングペンダント400を備えている。ティーチングペンダント400は、人が操作するものであり、ロボットアーム200やロボット制御装置300の動作を指定するのに用いる。
ロボットアーム200は、第1実施形態では、例えば6関節ロボットである。ロボットアーム200は、各関節J1〜J6を各関節軸A1〜A6まわりにそれぞれ回転駆動する複数(6つ)のアクチュエータ201〜206を有している。ロボットアーム200は、可動範囲の中であれば任意の3次元位置で任意の3方向の姿勢に手先(ロボットアーム200の先端)を向けることができる。一般に、ロボットアーム200の位置と姿勢は、座標系で表現することができる。図1中の符号Toは、ロボットアーム200の台座に固定した座標系を表し、符号Teはロボットアーム200の手先に固定した座標系を表す。
第1実施形態では、各アクチュエータ201〜206は、電動モータ211〜216と電動モータ211〜216に接続された減速機221〜226とからなる。なお、各アクチュエータ201〜206の構成は、これに限定するものではなく、例えば人工筋肉等であってもよい。
第1実施形態では、各関節J1〜J6が回転関節である場合について説明する。この場合、「関節の位置」とは、当該関節に定められた基準からの関節の回転角度を意味する。なお、各関節が直動関節の場合であってよい。その場合、「関節の位置」とは、直動関節の当該関節に定められた基準から位置である。同様に、それらの時間微分についても「関節の速度」、「関節の加速度」、「関節の加加速度」という。
ロボットアーム200は、更に、各アクチュエータ201〜206の電動モータ211〜216を駆動制御する駆動制御部としてのサーボ制御装置230を有している。サーボ制御装置230は、入力した位置指令(目標位置)に基づき、各関節J1〜J6の位置が位置指令に追従するよう、各電動モータ211〜216に電流を出力し、各電動モータ211〜216の動作を制御する。
ロボット制御装置300は、ティーチングペンダント400から複数の教示点(教示点列)の入力を受ける。ロボット制御装置300は、ロボットアーム200の各関節J1〜J6が、複数の教示点を順次辿って動作するよう、教示点に基づき、サーボ制御装置230に所定時間間隔で出力する位置指令を生成し、所定時間間隔で位置指令を出力する。
教示点は、各関節(6つの関節)J1〜J6の教示位置をベクトル成分として含むベクトル(教示点ベクトル)である。そして、ロボット制御装置300において最終的に求められる位置指令は、各関節(6つの関節)J1〜J6の目標位置をベクトル成分として含むベクトルである。第1実施形態では、教示点と位置指令とは、点数は異なるが、次元(単位)は同一である。
つまり、ロボット制御装置300は、入力した教示点からCP軌道の計算をして軌道に沿った多数の位置指令を生成し、これら位置指令を所定時間間隔でサーボ制御装置230に出力するものである。
その際、ロボット制御装置300は、与えられた教示点列によって定まる軌道に対し、軌道上の通過速度を、ロボットアーム200の各関節J1〜J6の速度、加速度、トルク等の制約条件を越えない範囲で調整する、多関節ロボットの最短時間制御を行う。
ここで、教示によるロボットアーム200の動作方法として次の2種類が考えられる。
1 関節空間移動 Motion in configuration space
ロボットの関節角度を変位とする座標系を関節空間という。前記関節空間でロボットアーム200の教示点を指定し、指定した教示点で決定される軌道に沿ってロボットを動かす方法。
ロボットの関節角度を変位とする座標系を関節空間という。前記関節空間でロボットアーム200の教示点を指定し、指定した教示点で決定される軌道に沿ってロボットを動かす方法。
2 タスク空間移動 Motion in task space
三次元的な位置と姿勢で表す座標系をタスク空間という。前記タスク空間で教示点を指定し、指定した教示点とロボットアーム200の手先で決定される軌道に沿ってロボットアーム200を動かす方法。
三次元的な位置と姿勢で表す座標系をタスク空間という。前記タスク空間で教示点を指定し、指定した教示点とロボットアーム200の手先で決定される軌道に沿ってロボットアーム200を動かす方法。
図1では、4つの教示点p1,p2,p3,p4を模式的に図示している。いずれの場合でもロボットアーム200の動作は教示点で決まる軌道に沿って動く。ここで、教示点はいわゆる3次元空間内の点ではない。関節空間移動の場合では、教示点は全関節J1〜J6の関節角度(全モータの回転角度)である。タスク空間移動の場合では、教示点は3次元空間の位置および姿勢であり、これは図1のように、p1,p2,p3,p4を座標系として表現される。
以下、第1実施形態の具体的な実施形態を説明する。
図2は、ロボット制御装置300の構成を示すブロック図である。第1実施形態では、ロボット制御装置300は、図2に示すように、演算部としてのCPU(Central Processing Unit)301を備えたコンピュータである。また、ロボット制御装置300は、記憶部としてROM(Read Only Memory)302、RAM(Random Access Memory)303、HDD(Hard Disk Drive)304を備えている。また、ロボット制御装置300は、記録ディスクドライブ305及び各種のインタフェース306〜309を備えている。
CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305及び各種のインタフェース306〜309が、バス310を介して接続されている。ROM302には、BIOS等の基本プログラムが格納されている。RAM303は、CPU301の演算処理結果を一時的に記憶する記憶部である。HDD304は、演算処理結果である各種のデータを記憶するための記憶部であると共に、プログラム330が格納されている。このプログラム330は、CPU301に各種演算処理を実行させるためのプログラムである。CPU301は、HDD304に格納されたプログラム330に基づいて各種演算処理を実行する。
ティーチングペンダント400はインタフェース306に接続されており、CPU301はインタフェース306及びバス310を介してティーチングペンダント400からの教示点のデータや補間方法の指定の入力を受ける。
HDD304には、CPU301による演算結果を示すデータ(位置指令のデータ)等がCPU301の指令の下で記憶される。
ロボットアーム200のサーボ制御装置230は、インタフェース309に接続されており、CPU301は、位置指令のデータを所定時間間隔でバス310及びインタフェース309を介してサーボ制御装置230に出力する。
インタフェース307には、モニタ321が接続されており、モニタ321には、各種画像が表示される。インタフェース308は、書き換え可能な不揮発性メモリや外付けHDD等の外部記憶装置322が接続可能に構成されている。記録ディスクドライブ305は、記録ディスク331に記録された各種データやプログラム等を読み出すことができる。
図3は、ロボット制御装置300の制御動作を示すフローチャートである。CPU301は、HDD304に格納されたプログラム330を実行することで、以下に説明する各処理を実行する各種の処理部351,352,353として機能する。つまり、CPU301は、プログラム330に基づき、図3に示す第1補間部351、通過速度計算部352、第2補間部353として機能する。なお、図3において、丸四角はデータを、四角はCPU301の処理を表す。
各部351,352,353の動作について大まかに説明すると、まず、第1補間部351は、与えられた各教示点近傍を通過するような補間関数を求めて各教示点の間を補間し、補間教示点のそれぞれの位置において、各関節の位置を求める。更に、第1補間部351は、その1階微分値、2階微分値、3階微分値を計算する。
通過速度計算部352は、補間教示点のそれぞれの位置において通過速度を定義する。次いで、通過速度計算部352は、通過速度の1階微分値と、通過速度の2階微分値を計算する。通過速度計算部352は、それらと、第1補間部351で計算した各関節の位置、およびその1階微分値、2階微分値、3階微分値とから、ロボットアーム200の各関節の、推定速度、推定加速度、推定加加速度、推定トルクを計算する。更に、通過速度計算部352は、ロボットアーム200の先端の推定先端速度(以下、推定手先速度という)、およびロボットアーム200の先端の推定回転速度(以下、推定手先回転速度という)を計算する。
次いで、通過速度計算部352は、計算した推定速度、推定加速度、推定加加速度、推定トルク、推定手先速度および推定手先回転速度と、予め定めておいた制約値との比である制約条件違反率を計算する。
通過速度計算部352は、計算した全て、または予め選択した制約条件違反率が、所定制約範囲内(±1の範囲内)となる不等式制約を満足し、通過速度の逆数の和、すなわち動作時間を最短にする、不等式制約最適化問題を解いて、通過速度を求める。
第2補間部353は、計算した通過速度を所定時間間隔で積分して求めた位置における、ロボットアーム200の各関節への位置指令を、補間関数を使って計算する。これにより、第1補間部351、通過速度計算部352及び第2補間部353を経ることにより最適な軌道が位置指令値qiとして計算される
ここで、数式における記号を以下のように定義する。なお、数式中、太文字はベクトルを示す。
以下、各部351,352,353の動作について詳細に説明する。第1補間部351は、図3に示すように、補間関数計算処理部361と、微分係数計算処理部362とを有している。通過速度計算部352は、仮設定処理部363と、通過速度微分係数計算処理部364と、推定値計算処理部365と、制約条件違反率計算処理部368と、最短時間制御処理部369と、通過速度関数計算処理部372と、を有している。第2補間部353は、位置指令生成処理部373からなる。推定値計算処理部365は、計算処理部366と、運動学計算処理部367とからなる。最短時間制御処理部369は、収束判定処理部370と、通過速度変更処理部371とからなる。
図4は、本発明の特徴の1つである多関節ロボットの軌道の計算過程を示す模式図、図5は、補間関数計算処理部361(CPU301)の演算処理を示すフローチャートである。図4(a)は、教示点を説明するための模式図、図4(b)及び図4(c)は補間教示点及び補間関数を説明するための模式図、図4(d)は通過速度を説明するための模式図、図4(e)は位置指令を説明するための模式図である。
まず、補間関数計算処理部361は、始点から終点までの各教示点(ベクトル)piをティーチングペンダント400から取得する。例えば、補間関数計算処理部361は、図4(a)に示す4つの教示点p1〜p4を取得する。教示点p1は始点であり、教示点p4は終点である。図4(a)では、教示点p3を説明するために便宜上2つに分けて表現しているが、同一の位置である。
補間関数計算処理部361は、教示点の始点から終点までの間を複数の区間に区切り、各区間にそれぞれ指定された補間方法で、区間毎に補間教示点の通過順番を変数sとした区間補間関数をそれぞれ求める(S1:区間計算処理,区間計算工程)。
補間関数計算処理部361は、教示点p1〜p3の区間、教示点p3〜p4の区間に区切り、ユーザは、ティーチングペンダント400を操作することで、各区間の補間方法を指定する。補間方法は、前述したような多関節ロボットの位置及び姿勢を規定するタスク空間で区間内の教示点間を補間する補間方法、及び前述したような多関節ロボットの各関節角度を規定する関節空間で区間内の教示点間を補間する補間方法がある。タスク空間で補間する補間方法としては、直線補間や円弧補間等がある。また、関節空間で補間する補間方法としては、関節補間等がある。ユーザは、ティーチングペンダント400を操作することで、直線補間や円弧補間、関節補間等を指定する。図4(a)では、教示点p1〜p3の区間では関節補間、即ち関節空間での補間方法が指定され、教示点p3〜p4の区間では直線補間、即ちタスク空間での補間方法が指定されている例を示している。つまり、隣接する区間同士は、補間方法が互いに異なる。ステップS1の処理は、補間方法の数(即ち、区間の数)だけループして行う。なお、各区間の始点と終点は教示点であり、各区間における教示点の始点と終点との間で補間が行われる。
例えば、補間関数計算処理部361は、ステップS1では、2つの教示点p1〜p3の区間を補間する、図4(b)に示す区間補間関数を、関節補間により求める。また、補間関数計算処理部361は、2つの教示点p3〜p4の区間を補間する区間補間関数を、直線補間により求める。
図4(b)では、各区間補間関数を点線で模式的に表している。補間方法は、直線補間や円弧補間、関節補間など様々なものがあるが、全て、次の式(1)の区間補間関数で表現できる。
ここで、変数kは各区間補間関数に振られる通し番号であり、変数sは、整数の値とした場合、前述の各補間教示点q(s)において連番となる変数である。また、補間するので変数sは整数でなく連続した数(実数)の値を取り得る。図4(b)の例では、関節補間に対応した補間関数h1(s,pi)と、直線補間に対応した補間関数h2(s,pi)が算出される。
区間補間関数は、関節補間の区間、直線補間の区間の両方を関節空間に統一して求めることが重要である。従って、補間関数計算処理部361は、タスク空間及び関節空間のうちいずれか一方(第1実施形態では関節空間)に統一して、各区間にそれぞれ指定された補間方法で区間補間関数をそれぞれ求める。なお、区間補間関数をタスク空間に統一して表現することも可能である。しかし、その場合はサーボ制御装置230へ位置指令を送信する前に、逆運動学演算を解いて各軸角度へ変換する必要がある。つまり、計算コストの観点から、区間補間関数は関節空間で表現するのがよい。
区間補間関数は変数sの多項式とするのが好ましく、第1実施形態では、後に3階の微分係数まで計算するので、3次多項式として、次のような式としている。
式(1)に示す多項式の各係数(ベクトル)a0,a1,a2,a3は、区間pi−pi+1ごとに異なるものを選択し、第1実施形態では、区間の境界で2次の微分係数まで連続なものが選ばれる。
このように、補間関数計算処理部361は、式(1)に示す各係数a0,a1,a2,a3を計算して、区間補間関数を求める。
補間関数計算処理部361は、各区間の区間補間関数を計算した後、教示点の始点から終点までの間に複数の補間方法があるか否かを判断する(S2)。補間関数計算処理部361は、補間方法が1つの場合(S2:No)は、処理を終了し、複数の補間方法がある場合(S2:Yes)は、複数の区間補間関数を全区間に跨る1つの補間関数に結合する(S3:補間関数計算処理:補間関数計算工程)。
例えば図4(c)のように2つに分かれている区間補間関数の接続を行う。図4(c)の点線が各区間補間関数を接続した補間関数を模式的に示している。具体的には式(2)において区間補間関数の番号kに対応する区間補間関数hk(s,pi)を設定し、切り替える。つまり、補間教示点q(s)の算出に必要な区間補間関数を区間補間関数の番号kによって切り替えるという処理を行う。つまり、関節補間で指定されている区間は区間関数h1(s,pi)を使用し、直線補間で指定されている区間はh2(s,pi)を用いるという切り替えを行う。
前述の補間関数から導出される補間教示点q(s)は、後述する通過速度を求めるために用いられるものであるので、その点数を、位置指令の数ほど多くする必要はない。例えば教示点pi−pi+1の間を10分割すれば十分である。補間教示点q(s)の点数は、サーボ制御装置230に出力する位置指令の点数よりも少なく設定される。例えば、ロボットアーム200が図4(a)に示した4つの教示点p1〜p4を10秒間かけて移動するものとし、所定時間間隔1msでサーボ制御装置230に位置指令を出力する場合、10÷0.001=10000点の位置指令が必要である。これに対し、教示点p1〜p4間を10分割したとすると、補間教示点q(s)の点数は31点となり、位置指令の点数に対して格段に少なくできる。
次に、微分係数計算処理部362は、各補間教示点q(1),q(2),…に含まれる教示位置を示す各ベクトル成分を補間関数の変数sで微分した微分係数をそれぞれ計算する微分係数計算処理を実行する(微分係数計算処理工程)。
ここで、仮に補間教示点q(1),q(2),…の差分を計算する方法では、補間誤差が拡大され、高階微分には使えない。
第1実施形態では、3階微分まで使うので、従来技術のような単純な差分式は使わず、直接、補間関数を微分した関数を用いる。つまり、式(2)をそれぞれ、変数sで1階微分、2階微分、3階微分すると、次の式(3)のように計算される。
したがって、第1実施形態では、微分係数計算処理部362は、各補間教示点q(1),q(2)…における各ベクトル成分を変数sで微分した微分係数として、1階の微分係数、2階の微分係数、3階の微分係数を、式(3)を用いて計算する。つまり、微分係数計算処理部362は、各補間教示点での微分係数を、式(3)の変数sにs=1,2…をそれぞれ代入して計算する。
次に、仮設定処理部363は、各補間教示点q(1),q(2)…において変数sを時間微分した微分値(1階の微分係数)を示す通過速度をそれぞれ仮設定する仮設定処理を実行する(仮設定処理工程)。各通過速度は、各補間教示点q(1),q(2)…において変数sが変化する速度を示している。
例えば、各通過速度は、図4(d)に示すように、各補間教示点においてφ(1),φ(2)…が初期設定(仮設定)される。これら通過速度φ(s)は、
例えば各通過速度φ(1),φ(2)…は一定の数字、例えば、
次に、通過速度微分係数計算処理部364は、各補間教示点q(1),q(2)…における各通過速度φ(1),φ(2)…を変数sで微分した微分係数(第1実施形態では、1階微分、2階微分)を計算する計算処理を実行する。
この通過速度微分係数計算処理では、次式(4)で表す数式に基づき、計算処理を実行する。
次に、計算処理部366は、ロボットアーム200の各関節J1〜J6の推定速度、推定加速度、推定加加速度を、各通過速度及び各微分係数に基づいて計算する推定値計算処理を実行する(推定値計算処理工程)。つまり、計算処理部366は、推定速度、推定加速度、推定加加速度を、各通過速度φ(s)の値(これらに基づいて計算した微分係数φ’(s)、φ’’(s)も含む)、及び各微分係数q’(s),q’’(s),q’’’(s)の値に基づいて計算する。
具体的に説明すると、計算処理部366は、以下の式(5)に各計算結果を代入して、推定速度q(・)(s)、推定加速度q(‥)(s)、推定加加速度q(…)(s)を計算する。これら推定速度q(・)(s)、推定加速度q(‥)(s)、推定加加速度q(…)(s)はベクトルである。
なお、推定加速度とは、推定速度を時間で1階微分した値であり、推定加加速度とは、推定速度を時間で2階微分した値である。
次に、運動学計算処理部367は、各補間教示点における各関節の推定トルク、ロボットアーム200の推定手先速度、及びロボットアーム200の推定手先回転速度を、各通過速度及び各微分係数に基づいて計算する推定値計算処理を実行する。
具体的に説明すると、運動学計算処理部367は、補間教示点(関節の教示位置)q(s)、推定速度q(・)(s)、推定加速度q(‥)(s)から、関節にかかる推定トルク(ベクトル)u(s)を計算する。
この計算はロボットアーム200の逆動力学計算として知られている。例えば文献、高野晴久、ロボットの運動学、2005年6月10日、オーム社(東京)、91ページから引用すると、次式となる。
右辺第1項は慣性項、第2項はコリオリ項、第3項は重力項、第4項は外力項と呼ばれている。ロボットアーム200を構成するリンクの配置や質量、慣性テンソルおよび各関節の位置q(s)、推定速度q(・)(s)、推定加速度q(‥)(s)から計算する。
また、運動学計算処理部367は、ロボットアーム200の各関節の補間教示点q(s)、推定速度q(・)(s)から、ロボットアーム200の推定手先速度(ベクトル)r(・)(s)及び推定手先回転速度(ベクトル)w(・)(s)を計算する。
この計算は順運動学計算として知られており、ヤコビ行列Tを使って簡単に求まる。例えば文献、高野晴久、ロボットの運動学、2005年6月10日、オーム社(東京)、42ページから引用すると、次式となる。
このように、運動学計算処理部367は、関節の位置、速度、加速度、加加速度の推定値と、ロボットの各関節の受け持つ質量や慣性テンソルから、式(6)を用いて、関節にかかる推定トルクを計算する。また、運動学計算処理部367は、式(7)を用いて、ロボットアーム200の推定手先速度及び推定手先回転速度を計算する。
次に、制約条件違反率計算処理部368は、各関節の推定速度と予め定めた許容速度との比である関節速度の制約条件違反率を計算する制約条件違反率計算処理を実行する。即ち、制約条件違反率計算処理部368は、
また、制約条件違反率計算処理部368は、各関節の推定加速度と予め定めた許容加速度との比である関節加速度の制約条件違反率を計算する制約条件違反率計算処理を実行する。即ち、制約条件違反率計算処理部368は、
また、制約条件違反率計算処理部368は、各関節の推定加加速度と予め定めた許容加加速度との比である関節加加速度の制約条件違反率を計算する制約条件違反率計算処理を実行する。即ち、制約条件違反率計算処理部368は、
また、制約条件違反率計算処理部368は、各関節の推定トルクと予め定めた許容トルクとの比である関節にかかるトルクの制約条件違反率を計算する制約条件違反率計算処理を実行する。即ち、制約条件違反率計算処理部368は、
また、制約条件違反率計算処理部368は、各補間教示点におけるロボットアーム200の先端の推定先端速度と予め定めた許容先端速度との比である手先速度の制約条件違反率を計算する制約条件違反率計算処理を実行する。即ち、制約条件違反率計算処理部368は、
また、制約条件違反率計算処理部368は、各補間教示点におけるロボットアーム200の先端の推定回転速度と予め定めた許容回転速度との比である手先回転速度の制約条件違反率を計算する制約条件違反率計算処理を実行する。即ち、制約条件違反率計算処理部368は、
説明のため、以上の制約条件違反率を
制約を満足するためには制約条件違反率αn(s)が±1の範囲に入っている必要がある。つまり、次の2つの式を両方満足する必要がある。
また、ロボットアーム200が教示点の始点から終点まで移動するのに要する所要時間は、各通過速度の逆数を変数sで積分し、次の式(9)の目的関数で求まる。
通過速度をパラメータとし、式(9)の目的関数を、式(8)の不等式制約を満足する範囲で最小化する問題は、不等式制約最適値問題として知られており、様々な解法が提案されている。例えば、次のようなラグランジェ関数を最小化する方法である。
ここで、ρはペナルティパラメータと呼ばれている。
第1実施形態では、最短時間制御処理部369は、制約条件違反率αn(s)が±1の範囲内となる制約条件の下、各通過速度を変更して、式(9)の目的関数を最小化する最短時間制御処理を実行する(最短時間制御処理工程)。つまり、最短時間制御処理部369は、教示点の始点から終点に到達する時間を最小化する。
具体的には、まず、最短時間制御処理部369の収束判定処理部370が、次の2つの条件を両方満たしたとき収束完了と判定する。
条件1として、全ての制約条件違反率αn(1),αn(2)…が±1以内であること。つまり式(8)を満足すること。
条件2として、通過速度分布φ(1),φ(2)…が前回の通過速度分布φ0(1),φ0(2)…と比較して、予め定めた微少量ε以内の変化であること。つまり、以下の式(11)を満たすこと。
なお、収束判定処理部370は、前回の通過速度分布φ0(1),φ0(2)…のデータがない場合(つまり反復処理の1順目)は、収束判定に、条件1のみを用いて判定する。
この収束判定処理部370で、収束していないと判定した場合、最短時間制御処理部369の通過速度変更処理部371は、式(10)に基づき、各通過速度の値を変更する処理を実行する。そして、通過速度微分係数計算処理部364、推定値計算処理部365、制約条件違反率計算処理部368は、変更された各通過速度を用いて上述した各演算処理を実行する。これらの反復処理は、収束判定処理部370で収束したと判定するまで実行される。以上のように、最短時間制御処理部369は、式(9)の目的関数を、式(8)の不等式制約条件を満足する範囲で最小化するよう、通過速度を最適化する。
次に、収束判定処理部370が収束判定で収束したと判定した場合、通過速度関数計算処理部372は、最短時間制御処理で得られた各通過速度から通過速度関数を求める通過速度関数計算処理を実行する(通過速度関数計算処理工程)。
次に、位置指令生成処理部373は、求められた通過速度関数を所定時間間隔δの値で時間積分する度に、該積分の値を補間関数における変数sに代入することで、位置指令を生成する位置指令生成処理を実行する(位置指令生成処理工程)。
図4(e)に位置指令生成処理部373で求める位置指令の例を示す。この位置指令生成処理部373は、通過速度関数φ(s)を予め定めた所定時間間隔δ(例えば1ms)ごとに積分して教示点番号sを求め、その位置における関節値を示す位置指令を補間関数を使って計算する。ただし、第1補間部351と違って、微分係数の計算は不要である。この計算は、最も簡単な積分公式を使うと、次のように簡潔に記述できる。
ここで、添え字のiは所定時間間隔δごとに計算する指令値の番号である。また、変数sの初期値はゼロ、つまり、
位置指令生成処理部373は、式(12)で所定時間間隔δ後の教示点の位置si+1を計算し、式(13)で各関節の位置指令(ベクトル)qi+1を計算する。こうして求まった、一定時間間隔ごとの位置指令qiは、式(8)、式(9)で記述した不等式制約最適値問題の解となっているので、ロボットアーム200は最短時間で動作する。
以上、第1実施形態では、各補間教示点における補間関数の変数sに対する各通過速度φ(1),φ(2)…を目的関数が最小化するように変更する最短時間制御処理を行う。そして、このようにして求められた各通過速度φ(1),φ(2)…を用いて、補間関数から所定時間間隔毎の位置指令q1,q2,…を生成している。ここで、第1補間部351により、最短時間制御に使用する補間教示点の数が決まる。一般に不等式制約最適値問題は計算時間がかかるが、補間教示点の点数は、最終的に生成する、サーボ制御装置230に等時間間隔で送る位置指令の点数に対して少なく設定できる。
このように、第1実施形態では、位置指令q1,q2…を、目的関数の最小化を行った後に求めているので、補間教示点の数を位置指令の数と同数にする必要はなく、補間教示点の数を、位置指令の数よりも少なくすることが可能である。そのため、最短時間制御処理に要する計算量を低減することができ、従来よりもCPU301において位置指令を求める計算時間を短縮して、計算速度を向上させることができる。
また、各補間教示点の微分係数は、微分係数計算処理部362で一度計算するだけで、通過速度計算部352では定数として扱えるため、計算量が少なく、計算時間はそのぶんだけ少ない。
また、従来技術では、制約条件が、ロボットアームの関節の推定速度の制約条件違反率が所定制約条件範囲内となる条件のみであった。これに対し、第1実施形態では、制約条件には、ロボットアーム200の関節の推定速度、推定加速度、推定加加速度、推定トルク、推定手先速度および推定手先回転速度の制約条件違反率が式(8)で示した所定制約条件範囲内となる条件が含まれている。したがって、従来技術に対して幅広い制約条件に対応できており、ロボットアーム200の動作が安定する。例えば、制約条件に、推定加加速度と予め定めた許容加加速度との比が所定制約範囲内となる条件が含まれるので、ロボットアーム200に異常な加振力がかかるのを抑制することができ、ロボットアーム200が大きく振動するのを抑制することができる。
図6は、複数の教示点の始点から終点までに要する時間を示すグラフである。図6に示すように、個別最適化した場合(直線補間と関節補間を別々に最適化する場合)と比べ、第1実施形態で示した通り全体最適化を行うことで、10%の動作時間短縮が実現できる。
したがって、第1実施形態によれば、教示点に付随する補間方法が、関節補間から直線補間に切り替わる、即ち各区間で異なる場合でも、ロボットアーム200の動作時間を短縮することができる。更に、複数の区間補間関数を個別に最適化する場合に比べ、複数の区間補間関数を1つの補間関数に結合した後に一度に全体を最適化することにより、ロボットアーム200の動作時間を短縮することができる。
なお、第1実施形態では、複数の教示点から一定時間ごとの位置指令を作成するまでを連続した一連の動作として説明したが、次のように途中で2段に分けて行ってもよい。
計算処理Aとして、第1補間部351と通過速度計算部352との処理を連続して行い、通過速度φ(s)を求める。
計算処理Bとして、第2補間部353(位置指令生成処理部373)により、通過速度φ(s)と教示点から一定時間ごとの位置指令を作成する。
計算処理Aは、最適化計算であり、計算量の多いので、ロボットアーム200を動作させる前に計算しておく。後半の計算処理Bは、計算量が少ないので、ロボットアーム200を実際に動かしながら処理することが可能である。この場合、計算のためにロボットアーム200が停止する時間は、計算処理Aの処理時間だけとなる。
つまり、計算処理A,Bが全部終わってからロボットアーム200を動かす方法よりも、ロボットアーム200の停止時間を短縮できる。
[第2実施形態]
次に、本発明の第2実施形態に係るロボット制御装置について説明する。図7は、本発明の第2実施形態に係るロボット制御装置による多関節ロボットの軌道の計算過程を説明するための模式図である。図7(a)は、教示点を説明するための模式図、図7(b)及び図7(c)は補間教示点及び補間関数を説明するための模式図、図7(d)は通過速度を説明するための模式図、図7(e)は位置指令を説明するための模式図である。
次に、本発明の第2実施形態に係るロボット制御装置について説明する。図7は、本発明の第2実施形態に係るロボット制御装置による多関節ロボットの軌道の計算過程を説明するための模式図である。図7(a)は、教示点を説明するための模式図、図7(b)及び図7(c)は補間教示点及び補間関数を説明するための模式図、図7(d)は通過速度を説明するための模式図、図7(e)は位置指令を説明するための模式図である。
第2実施形態では、上記第1実施形態と異なり、図7(a)のように教示点に対し、上記第1実施形態と異なる補間方法の組み合わせ、即ち関節補間(関節空間移動)と円弧補間(タスク空間移動)の2種類の補間方法が指定されている。
与えられた教示点と補間方法に対して、上記第1実施形態と同様に、図3の補間関数計算処理部361により、図7(b)に示すように、区間ごとに区間補間関数が計算される。ただし、上記第1実施形態と異なり、関節補間に対応した補間関数h1(s,pi)と、円弧補間に対応した補間関数h2(s,pi)が算出される。
区間補間関数は、関節補間の区間、円弧補間の区間の両方を関節空間に統一して求めることが重要である。なお、区間補間関数をタスク空間に統一して表現することも可能である。しかし、その場合はサーボ制御装置230へ位置指令を送信する前に、逆運動学演算を解いて各軸角度へ変換する必要がある。つまり、計算コストの観点から、区間補間関数は関節空間で表現するのがよい。
第2実施形態では、2つに分かれている区間補間関数を図7(c)のように接続を行う。図7(c)の点線が各区間補間関数を接続した補間関数を模式的に示している。具体的には式(1)において区間補間関数の番号kに対応する区間補間関数hk(s,pi)を設定し、切り替える。つまり、補間教示点q(s)の算出に必要な補間関数を区間補間関数の番号kによって切り替えるという処理を行う。つまり、関節補間で指定されている区間は区間補間関数h1(s,pi)を使用し、円弧補間で指定されている区間はh2(s,pi)を用いるという切り替えを行う。
以降の処理では、上記第1実施形態と同様、図7(d)及び図7(e)に示すように、通過速度及び位置指令が計算される。
以上説明したように、第2実施形態によれば、上記第1実施形態の効果に加えて、教示点に付随する補間方法が、関節補間から円弧補間に切り替わる場合にも、ロボットアーム200の動作時間を短縮することができる。
更に、複数の区間補間関数を個別に最適化する場合に比べ、複数の区間補間関数を1つの補間関数に結合した後に一度に全体を最適化することにより、ロボットアーム200の動作時間を短縮することができる。
[第3実施形態]
次に、本発明の第3実施形態に係るロボット制御装置について説明する。図8は、本発明の第3実施形態に係るロボット制御装置による多関節ロボットの軌道の計算過程を説明するための模式図である。図8(a)は、教示点を説明するための模式図、図8(b)及び図8(c)は補間教示点及び補間関数を説明するための模式図、図8(d)は通過速度を説明するための模式図、図8(e)は位置指令を説明するための模式図である。
次に、本発明の第3実施形態に係るロボット制御装置について説明する。図8は、本発明の第3実施形態に係るロボット制御装置による多関節ロボットの軌道の計算過程を説明するための模式図である。図8(a)は、教示点を説明するための模式図、図8(b)及び図8(c)は補間教示点及び補間関数を説明するための模式図、図8(d)は通過速度を説明するための模式図、図8(e)は位置指令を説明するための模式図である。
第3実施形態は、上記第1,第2実施形態と異なり、図8(a)のように教示点に対し、円弧補間(タスク空間移動)、関節補間(関節空間移動)と直線補間(タスク空間移動)の3種類の補間方法が指定されている。
与えられた教示点と補間方法に対して、上記第1実施形態と同様に、図3の補間関数計算処理部361により、図8(b)に示すように、区間ごとに区間補間関数が計算される。つまり、円弧補間に対応した区間補間関数h1(s,pi)関節補間に対応した区間補間関数h2(s,pi)と、直線補間に対応した区間補間関数h3(s,pi)が算出される。
区間補間関数は、円弧補間の区間、関節補間の区間及び直線補間の区間の全てを関節空間に統一して求めることが重要である。なお、区間補間関数をタスク空間に統一して表現することも可能である。しかし、その場合はサーボ制御装置230へ位置指令を送信する前に、逆運動学演算を解いて各軸角度へ変換する必要がある。つまり、計算コストの観点から、区間補間関数は関節空間で表現するのがよい。
第3実施形態では、3つに分かれている区間補間関数を図8(c)のように接続を行う。図8(c)の点線が各区間補間関数を接続した補間関数を模式的に示している。具体的には式(1)において区間補間関数番号kに対応する区間補間関数hk(s,pi)を設定し、切り替える。つまり、補間教示点q(s)の算出に必要な補間関数を区間補間関数番号kによって切り替えるという処理を行う。つまり、円弧補間で指定されている区間は区間補間関数h1(s,pi)を使用し、関節補間で指定されている区間はh2(s,pi)を、直線補間で指定されている区間はh3(s,pi)を用いるという切り替えを行う。
以降の処理では、上記第1実施形態と同様、図8(d)及び図8(e)に示すように、通過速度及び位置指令が計算される。
以上説明したように、第3実施形態によれば、上記第1実施形態の効果に加えて、教示点に付随する補間方法が、円弧補間から関節補間に切り替わり、更に直線補間に切り替わる場合にも、ロボットアーム200の動作時間を短縮することができる。
更に、複数の区間補間関数を個別に最適化する場合に比べ、複数の区間補間関数を1つの補間関数に結合した後に一度に全体を最適化することにより、ロボットアーム200の動作時間を短縮することができる。
[第4実施形態]
次に、本発明の第4実施形態に係るロボット制御装置について説明する。図9は、本発明の第4実施形態に係るロボット制御装置の微分係数計算処理部の動作を説明するための模式図である。なお、第4実施形態では、微分係数計算処理部362(図3)の計算処理のみが上記第1〜第3実施形態と異なる。したがって、第4実施形態では、微分係数計算処理部362の計算処理について説明する。
次に、本発明の第4実施形態に係るロボット制御装置について説明する。図9は、本発明の第4実施形態に係るロボット制御装置の微分係数計算処理部の動作を説明するための模式図である。なお、第4実施形態では、微分係数計算処理部362(図3)の計算処理のみが上記第1〜第3実施形態と異なる。したがって、第4実施形態では、微分係数計算処理部362の計算処理について説明する。
上記第1〜第3実施形態では、補間関数が関節空間移動(Motion in configuration space)の場合を例に説明した。第4実施形態では補間関数がタスク空間移動(Motion in task space)の場合を説明する。
タスク空間移動の場合、補間関数はタスク空間で表現されている教示点を補間した後、ロボットアーム200の逆機構学(inverse kinematics)計算を行って関節空間に変換し、補間教示点を求める。この時、複雑な逆機構学計算を行うため、解析的に微分係数を計算することが困難である。
第4実施形態では、上記第1〜第3実施形態と同様に、演算部としてのCPU301(図2)は、プログラム330に基づき、微分係数計算処理部362として機能する。
そして、第4実施形態では、微分係数計算処理部362が、補間関数が解析的に微分困難な場合に対応するため数値微分する。ただし、第4実施形態では、粗く補間することによって補間教示点の点数を減らしているので、単純に補間教示点間の値で数値微分すると、補間誤差が大きくなる。そこで、補間分割したそれぞれの位置において次のように微分係数を求める。
微分係数計算処理部362は、微分係数計算処理として、各補間教示点q(1),q(2)…における各ベクトル成分に対して変数sを各補間教示点の間隔よりも小さい微小値eで変化させたときの各ベクトル成分を補間関数に基づいて計算する。そして、微分係数計算処理部362は、該計算の結果を用いて、各微分係数を計算する。具体的には、微分係数計算処理部362は、各補間教示点q(1),q(2)…におけるベクトル成分の1階微分値、2階微分値、3階微分値を計算する。
詳述すると、まず、微分係数計算処理部362は、s=1,2…における補間関数の値、及び変数sを微小値eずらした位置での補間関数の値を、それぞれのsの値について4点計算する。
次に、微分係数計算処理部362は、次式(15)で1階微分値、2階微分値、3階微分値を計算する。
上式(15)は一つの例であり、数値微分の公式はこの他にも多数知られている。この方法によれば、解析的に微分することが困難な補間関数であっても、1階微分値、2階微分値、3階微分値を精度よく計算でき、最短時間制御を実施できる。
[第5実施形態]
次に、本発明の第5実施形態に係るロボット装置について説明する。図10は、第5実施形態に係るロボット装置の概略構成及び各ロボットアームの教示点を示す説明図である。
次に、本発明の第5実施形態に係るロボット装置について説明する。図10は、第5実施形態に係るロボット装置の概略構成及び各ロボットアームの教示点を示す説明図である。
第5実施形態では、ロボット装置100Bは、複数の多関節ロボットとして、2つのロボットアーム200a,200bと、これらロボットアーム200a,200bを制御するロボット制御装置300Bと、を備えている。なお、第5実施形態では、演算部としてのCPUの計算処理において、上記第1、第2実施形態とは補間関数を求める補間関数計算処理が異なるものであるが、他の計算処理は、上記第1〜第4実施形態と同様である。
したがって、第5実施形態では、ロボット制御装置300Bは、2つのロボットアーム200a,200bを制御対象としているが、それぞれのロボットアームにおいて、補間関数計算処理以外は、上記第1〜第4実施形態と同様の処理を行うものである。
人間の組立では、両方の腕や手など、複数要素が同期して動く。同じようにロボットアームのロボット制御装置においても、複数のロボットアームの同期動作を実現できなければならない。
第5実施形態では、上記第1〜第4実施形態と同様に、演算部としてのCPU301(図2)は、プログラム330に基づき、補間関数計算処理部361として機能する。
そして、第5実施形態では、補間関数計算処理部361は、補間関数計算処理として、各教示点に、時刻に対応した教示点番号を付与し、該教示点番号を用いたスプライン補間により補間関数を求める。
具体的に説明すると、補間関数計算処理部361は、それぞれの教示点列の教示点に単調増加する教示点番号を設定し、その教示点番号を使った不等間隔スプラインによって教示点列の教示点間を補間する補間関数を求める。
例えば、図10(b)に示すように、第1のロボットアーム200aに対しては、教示点が4つ(1p1,1p2,1p3,1p4)、第1のロボットアーム200aに対しては、教示点が3つ(2p1,2p3,2p4)あるものとする。これらの教示点で、後半の2つは両方のロボットアーム200a,200bを協調させて作業するため同時刻に通過させたいとする。
それぞれの教示点列において単調増加する教示点番号は1番からスタートするが、第2のロボットアーム200bについては2番が抜けている。2つの教示点列において、同じ教示点番号のところで同期した動きを実現するのが目的である。つまり、2番を除いた1番、3番、4番の教示点をそれぞれのロボットアーム200a,200bが同時に通過することが目的である。
これは、補間関数を不等間隔スプライン関数にすることによって実現できる。不等間隔スプライン関数は例えば、Bスプラインなどが知られている。
これ以降の処理は、上記第1、第2実施形態と同様である。
第5実施形態では、上記第1及び第2実施形態の効果に加えて、教示番号が同じところ、上式では同じsの値のところでロボットアーム200a,200bを同期させることができる。つまり複数のロボットアームの同期動作に対応した最短時間制御を実現できる。
[第6実施形態]
次に、本発明の第6実施形態のロボット制御装置について説明する。図11は、本発明の第6実施形態に係るロボット制御装置における制約条件違反率計算処理部の処理動作を説明するための図である。
次に、本発明の第6実施形態のロボット制御装置について説明する。図11は、本発明の第6実施形態に係るロボット制御装置における制約条件違反率計算処理部の処理動作を説明するための図である。
第6実施形態のロボット制御装置では、予め定めておいた制約値(許容値)が、補間教示点ごとに異なる値に設定されている。あらかじめ異なる制約値を教示点ごとに与え、その値に従って式(8)を用いて制約条件違反率を計算する。その他の計算処理は上記第1〜第5実施形態と同様であるので、説明を省略する。
上記第1〜第5実施形態の制約条件違反率計算処理部368では、制約条件違反率として、推定値と予め定めた許容値との比を計算していた。例えば第j軸の関節の速度の場合、上記第1〜第5実施形態では、関節の推定速度と定数である許容速度Vjとの比、
第6実施形態では、許容速度が変数の値に応じて変化する値に設定され、推定速度と教示点ごとに異なる許容速度との比、
図11示す横軸は補間教示点の番号を示す変数sであり、変数sは補間するので整数に限らず、連続した数字である。この図11は、通過速度の最適化計算が完了した後を図示している。従って関節の推定速度は許容速度を超えていない。
第6実施形態では、教示点ごとに制約条件を設定できるので、上記第1〜第5実施形態よりもさらに制約条件の自由度が向上する。
更に、第6実施形態では、図11に示すように、許容速度が、変数sの値が増加するに連れて小さくなるように設定されている。これにより、ロボットアームが終点に近づくに連れて関節の速度が低下するので、ロボットアームを用いた組立作業を安定して行うことができる。
なお、第6実施形態では、関節の速度の制約について説明したが、関節の加速度や加加速度、トルク、手先速度、手先回転速度など他の制約条件についても同じように、教示点ごとに許容値を設定できる。
以上説明したように、第6実施形態によれば、上記第1〜第5実施形態の効果に加えて、教示点ごとに異なる許容値を設定してロボットアームの最短時間制御を実現できる。
[第7実施形態]
次に、本発明の第7実施形態に係るロボット制御装置について説明する。第7実施形態では、制約条件には、上記第1〜第6実施形態における条件の他、更に、推定モータトルクと予め定めた許容モータトルクとの比が所定制約範囲内(±1の範囲内)となる条件が含まれている。
次に、本発明の第7実施形態に係るロボット制御装置について説明する。第7実施形態では、制約条件には、上記第1〜第6実施形態における条件の他、更に、推定モータトルクと予め定めた許容モータトルクとの比が所定制約範囲内(±1の範囲内)となる条件が含まれている。
ロボットアーム200の関節J1〜J6と電動モータ211〜216は減速機221〜226を介して接続されている。この減速機221〜226と電動モータ211〜216との計算モデルから各電動モータ211〜216における推定モータトルクが計算できる。
図12は、第7実施形態に係る電動モータのモデル及びTN曲線の説明図である。図12(a)に電動モータ211〜216のモデルを示す。ここで次の記号を使った。
Nj 第j軸の減速機の減速比
τj 第j軸モータの推定モータトルク
Ij 第j軸モータの慣性モーメント
cj 第j軸の粘性要素
dj 第j軸の摩擦要素
Nj 第j軸の減速機の減速比
τj 第j軸モータの推定モータトルク
Ij 第j軸モータの慣性モーメント
cj 第j軸の粘性要素
dj 第j軸の摩擦要素
このモデルを具体的に式で表現する。制約条件を計算するときに使った関節の推定速度、推定加速度および関節にかかる推定トルクを用いる。電動モータ211〜216の推定モータトルクは、減速比Njを考慮して次のように書ける。
右辺第1項は式6で計算した関節にかかるトルクである。第2項はモータの慣性力、加速度に比例した成分である。第3項はモータの粘性力、速度に比例した成分である。第4項はモータの摩擦力、速度の符号に応じて、符号が変わる成分である。
推定値計算処理部365は、更に、各補間教示点q(s)における電動モータ211〜216の推定モータトルクを、減速機221〜226の減速比、各通過速度及び各微分係数に基づいて計算する。なおこの場合、推定トルクuj(s)は、式(4)、式(5)及び式(6)から求めることができるので、各補間教示点、各通過速度(通過速度、通過速度の1階及び2階微分値)及び各微分係数(補間関数の1階、2階微分値)に基づいて計算されることとなる。
この式(17)から明らかなように、左辺のモータのトルクは、第1項の関節にかかるトルクよりも大きい。つまり減速機の慣性や粘性などの影響をうけて、モータには、より大きなトルクが必要である。
このようにして計算された推定モータトルクは、許容モータトルクを超えてはならない。許容モータトルクは、一般に、横軸にモータの速度、縦軸にモータのトルクをとったTN曲線と呼ばれるグラフで表現される。この推定モータトルクと許容モータトルクとの比についても制約条件違反率の計算に加えることによってモータトルクも考慮した最短時間制御が実現できる。
TN曲線の例を図12(b)に示す。このように許容モータトルクは一般に速度の関数である。図3で説明した制約条件違反率計算処理部368に次の制約条件違反率の計算を追加する。
6軸多関節ロボットの場合j=1〜6種類ある。
図12(b)では、推定モータトルクが、許容範囲にすべて入っている状況を示している。つまり上記の制約条件違反率の大きさが1以下となっている。こうして制約条件違反率を計算する以外の部分は、上記第1〜第6実施形態と同様であり説明を省略する。
以上説明したように、第7実施形態によれば、上記第1〜第6実施形態の効果に加え、モータトルクについても制約条件を設定できるので、上記第1〜第6実施形態よりもさらに制約条件の自由度を向上できる。そして、許容モータトルクの制約条件を満たしたロボットアームの最短時間制御を実現できる。
なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。
上記第1〜第7実施形態では、全ての種類の制約条件を考慮したが、これらの制約条件を常に考慮する必要はない。例えば推定手先速度や推定手先回転速度に関係なく、動作速度を優先した動作は、推定手先速度や推定手先回転速度の制約条件をαn(s)の種類からはずすだけで、実現できる。このようにどの制約の種類を使うかは予め定めておけばよい。その際、微分係数計算処理部362は、必要な微分係数のみ計算するようにすればよい。また、通過速度微分係数計算処理部364、推定値計算処理部365においても、必要な微分値、推定値のみ計算するようにすればよい。特に、推定速度のみ計算する場合は、通過速度微分係数計算処理部364は省略可能である。
また、上記第1〜第7実施形態では、ロボット制御装置の制御対象である多関節ロボットがロボットアームの場合について説明したが、多関節ロボットがロボットアームの先端に設けられるロボットハンドであっても適用可能である。
また、補間方法が複数に分かれて指定された実施形態として、上記第1〜3実施形態に、直線補間、関節補間、円弧補間の場合を説明したが、補間方法はこれらに限定されるものではない。
また、補間方法が複数に分かれて指定された実施形態として、上記第1〜3実施形態に、切り替えが1〜2度という場合について説明したが、切り替え回数はメモリの許す限り対応することが可能である。
また、以上述べた実施形態の各処理動作は具体的にはロボット制御装置の演算部としてのCPU301により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体をロボット制御装置300に供給し、ロボット制御装置300のコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がROM302であり、ROM302にプログラム330が格納される場合について説明したが、これに限定するものではない。プログラム330は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図2に示すHDD304、外部記憶装置322、記録ディスク331等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
100…ロボット装置、101…CPU(演算部)、200…ロボットアーム(多関節ロボット)、201〜206…アクチュエータ、211〜216…電動モータ、221〜226…減速機、230…サーボ制御装置(駆動制御部)、300…ロボット制御装置、330…プログラム、331…記録ディスク(記録媒体)
Claims (15)
- 多関節ロボットが、指定された複数の教示点を辿って動作するよう、前記多関節ロボットの各関節を駆動する各アクチュエータの動作を位置指令に基づいて制御する駆動制御部に、位置指令を出力するロボット制御装置において、
前記複数の教示点における始点から終点までの間を複数の区間に区切り、前記多関節ロボットの位置及び姿勢を規定するタスク空間、及び前記多関節ロボットの各関節角度を規定する関節空間のうち、いずれか一方に統一して、前記各区間にそれぞれ指定された補間方法で区間補間関数をそれぞれ求める区間計算処理と、
前記各区間補間関数を結合して全区間に跨る、補間教示点の通過順番を示す変数を用いた補間関数を求める補間関数計算処理と、
前記補間関数から求められる各補間教示点を前記変数で微分した微分係数をそれぞれ計算する微分係数計算処理と、
前記各補間教示点において前記変数を時間微分した微分値を示す通過速度をそれぞれ仮設定する仮設定処理と、
前記各補間教示点における前記各関節の推定速度を、前記各通過速度及び前記各微分係数に基づいて計算する推定値計算処理と、
前記各関節の推定速度と予め定めた許容速度との比が所定制約範囲内となる条件を含む制約条件の下、前記各通過速度を変更して、前記教示点の始点から終点に到達する時間を最小化する最短時間制御処理と、
前記最短時間制御処理で得られた前記各通過速度から通過速度関数を求める通過速度関数計算処理と、
前記通過速度関数から前記位置指令を生成する位置指令生成処理と、を実行する演算部を備えたことを特徴とするロボット制御装置。 - 前記演算部は、前記微分係数計算処理として、前記各補間教示点の各ベクトル成分に対して前記変数を前記各補間教示点の間隔よりも小さい微小値で変化させたときの各ベクトル成分を前記補間関数に基づいて計算し、該計算の結果を用いて、前記各微分係数を計算することを特徴とする請求項1に記載のロボット制御装置。
- 前記演算部は、前記補間関数計算処理として、前記各教示点に、時刻に対応した教示点番号を付与し、該教示点番号を用いたスプライン補間により前記補間関数を求めることを特徴とする請求項1又は2に記載のロボット制御装置。
- 前記許容速度が、前記変数の値に応じて変化する値に設定されていることを特徴とする請求項1乃至3のいずれか1項に記載のロボット制御装置。
- 前記許容速度が、前記変数の値が増加するに連れて小さくなるように設定されていることを特徴とする請求項4に記載のロボット制御装置。
- 前記演算部は、前記推定値計算処理として、更に、前記各補間教示点における前記各関節について前記推定速度を時間で1階微分した推定加速度を、前記各通過速度及び前記各微分係数に基づいて計算し、
前記制約条件には、更に、前記推定加速度と予め定めた許容加速度との比が前記所定制約範囲内となる条件が含まれる、
ことを特徴とする請求項1乃至5のいずれか1項に記載のロボット制御装置。 - 前記演算部は、前記推定値計算処理として、更に、前記各補間教示点における前記各関節について前記推定速度を時間で2階微分した推定加加速度を、前記各通過速度及び前記各微分係数に基づいて計算し、
前記制約条件には、更に、前記推定加加速度と予め定めた許容加加速度との比が前記所定制約範囲内となる条件が含まれる、
ことを特徴とする請求項1乃至6のいずれか1項に記載のロボット制御装置。 - 前記演算部は、前記推定値計算処理として、更に、前記各補間教示点における前記各関節の推定トルクを、前記各補間教示点、前記各通過速度及び前記各微分係数に基づいて計算し、
前記制約条件には、更に、前記推定トルクと予め定めた許容トルクとの比が前記所定制約範囲内となる条件が含まれる、
ことを特徴とする請求項1乃至7のいずれか1項に記載のロボット制御装置。 - 前記演算部は、前記推定値計算処理として、更に、前記各補間教示点における前記多関節ロボットの先端の推定先端速度を、前記各補間教示点、前記各通過速度及び前記各微分係数に基づいて計算し、
前記制約条件には、更に、前記推定先端速度と予め定めた許容先端速度との比が前記所定制約範囲内となる条件が含まれる、
ことを特徴とする請求項1乃至8のいずれか1項に記載のロボット制御装置。 - 前記演算部は、前記推定値計算処理として、更に、前記各補間教示点における前記多関節ロボットの先端の推定回転速度を、前記各補間教示点、前記各通過速度及び前記各微分係数に基づいて計算し、
前記制約条件には、更に、前記推定回転速度と予め定めた許容回転速度との比が前記所定制約範囲内となる条件が含まれる、
ことを特徴とする請求項1乃至9のいずれか1項に記載のロボット制御装置。 - 前記アクチュエータが、電動モータ及び減速機を有しており、
前記演算部は、前記推定値計算処理として、更に、前記各補間教示点における前記電動モータの推定モータトルクを、前記減速機の減速比、前記各通過速度及び前記各微分係数に基づいて計算し、
前記制約条件には、更に、前記推定モータトルクと予め定めた許容モータトルクとの比が前記所定制約範囲内となる条件が含まれる、
ことを特徴とする請求項1乃至10のいずれか1項に記載のロボット制御装置。 - 多関節ロボットと、
前記多関節ロボットを制御する請求項1乃至11のいずれか1項に記載のロボット制御装置と、を備えたことを特徴とするロボット装置。 - 多関節ロボットが、指定された複数の教示点を辿って動作するよう、前記多関節ロボットの各関節を駆動する各アクチュエータの動作を位置指令に基づいて制御する駆動制御部に、出力する位置指令を生成する演算部を有するロボット制御装置を用いたロボット制御方法において、
前記演算部が、前記複数の教示点における始点から終点までの間を複数の区間に区切り、前記多関節ロボットの位置及び姿勢を規定するタスク空間、及び前記多関節ロボットの各関節角度を規定する関節空間のうち、いずれか一方に統一して、前記各区間にそれぞれ指定された補間方法で区間補間関数をそれぞれ求める区間計算工程と、
前記演算部が、前記各区間補間関数を結合して全区間に跨る、補間教示点の通過順番を示す変数を用いた補間関数を求める補間関数計算工程と、
前記演算部が、前記補間関数から求められる各補間教示点を前記変数で微分した微分係数をそれぞれ計算する微分係数計算工程と、
前記演算部が、前記各補間教示点において前記変数を時間微分した微分値を示す通過速度をそれぞれ仮設定する仮設定工程と、
前記演算部が、前記各補間教示点における前記各関節の推定速度を、前記各通過速度及び前記各微分係数に基づいて計算する推定値計算工程と、
前記演算部が、前記各関節の推定速度と予め定めた許容速度との比が所定制約範囲内となる条件を含む制約条件の下、前記各通過速度を変更して、前記教示点の始点から終点に到達する時間を最小化する最短時間制御工程と、
前記演算部が、前記最短時間制御工程で得られた前記各通過速度から通過速度関数を求める通過速度関数計算工程と、
前記演算部が、前記通過速度関数から、前記位置指令を生成する位置指令生成工程と、を備えたことを特徴とするロボット制御方法。 - コンピュータに請求項13に記載のロボット制御方法の各工程を実行させるためのプログラム。
- 請求項14に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013184233A JP2015051469A (ja) | 2013-09-05 | 2013-09-05 | ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013184233A JP2015051469A (ja) | 2013-09-05 | 2013-09-05 | ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015051469A true JP2015051469A (ja) | 2015-03-19 |
Family
ID=52700899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013184233A Pending JP2015051469A (ja) | 2013-09-05 | 2013-09-05 | ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015051469A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106773853A (zh) * | 2016-12-21 | 2017-05-31 | 广东工业大学 | 一种用于机器人的无线关节编号管控方法和系统 |
JP2018097674A (ja) * | 2016-12-14 | 2018-06-21 | トヨタ自動車株式会社 | 全方位台車及びその制御方法 |
JP2019063912A (ja) * | 2017-09-29 | 2019-04-25 | キヤノン株式会社 | ロボット制御データ処理方法、ロボット制御データ処理装置、およびロボットシステム |
CN111052029A (zh) * | 2017-11-09 | 2020-04-21 | 欧姆龙株式会社 | 指令值插值装置和伺服驱动器 |
CN112936294A (zh) * | 2021-04-08 | 2021-06-11 | 北京配天技术有限公司 | 一种机器人轨迹插补方法、装置及相关组件 |
CN113093716A (zh) * | 2019-12-19 | 2021-07-09 | 广州极飞科技股份有限公司 | 一种运动轨迹规划方法、装置、设备及存储介质 |
WO2023047496A1 (ja) * | 2021-09-22 | 2023-03-30 | 日本電気株式会社 | 制約条件取得装置、制御システム、制約条件取得方法および記録媒体 |
-
2013
- 2013-09-05 JP JP2013184233A patent/JP2015051469A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018097674A (ja) * | 2016-12-14 | 2018-06-21 | トヨタ自動車株式会社 | 全方位台車及びその制御方法 |
CN108227769A (zh) * | 2016-12-14 | 2018-06-29 | 丰田自动车株式会社 | 全方向推车及其控制方法 |
CN106773853A (zh) * | 2016-12-21 | 2017-05-31 | 广东工业大学 | 一种用于机器人的无线关节编号管控方法和系统 |
JP2019063912A (ja) * | 2017-09-29 | 2019-04-25 | キヤノン株式会社 | ロボット制御データ処理方法、ロボット制御データ処理装置、およびロボットシステム |
JP7237447B2 (ja) | 2017-09-29 | 2023-03-13 | キヤノン株式会社 | 情報処理方法、プログラム、記録媒体、情報処理装置、ロボットシステム、および物品の製造方法 |
CN111052029A (zh) * | 2017-11-09 | 2020-04-21 | 欧姆龙株式会社 | 指令值插值装置和伺服驱动器 |
CN111052029B (zh) * | 2017-11-09 | 2023-03-07 | 欧姆龙株式会社 | 指令值插值装置和伺服驱动器 |
CN113093716A (zh) * | 2019-12-19 | 2021-07-09 | 广州极飞科技股份有限公司 | 一种运动轨迹规划方法、装置、设备及存储介质 |
CN113093716B (zh) * | 2019-12-19 | 2024-04-30 | 广州极飞科技股份有限公司 | 一种运动轨迹规划方法、装置、设备及存储介质 |
CN112936294A (zh) * | 2021-04-08 | 2021-06-11 | 北京配天技术有限公司 | 一种机器人轨迹插补方法、装置及相关组件 |
WO2023047496A1 (ja) * | 2021-09-22 | 2023-03-30 | 日本電気株式会社 | 制約条件取得装置、制御システム、制約条件取得方法および記録媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5896789B2 (ja) | ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体 | |
JP2015051469A (ja) | ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体 | |
JP7203058B2 (ja) | 機械システムへの入力を生成する方法、及び複数のロボットジョイントを含むロボット | |
Debrouwere et al. | Time-optimal path following for robots with convex–concave constraints using sequential convex programming | |
JP2019517929A (ja) | ロボット関節空間におけるポイントツーポイント移動の軌跡計画方法 | |
JP3830475B2 (ja) | 制御装置 | |
JP5225720B2 (ja) | ロボットのモーションの発生及び制御のための装置ならびに方法 | |
JP4847613B2 (ja) | 多軸加工機用数値制御装置 | |
Bazaz et al. | Minimum time on-line joint trajectory generator based on low order spline method for industrial manipulators | |
JP5916583B2 (ja) | 多関節ロボットのウィービング制御装置 | |
CN108326877A (zh) | 机器人控制设备、系统和控制方法及制品装配制造方法 | |
JP2016055404A (ja) | 軌道生成方法、軌道生成装置、ロボット装置、プログラム及び記録媒体 | |
JP2009043165A (ja) | ロボットプログラム調整装置 | |
JP2019135076A (ja) | 軌道生成方法および軌道生成装置 | |
US20190094831A1 (en) | Control apparatus, control method, and support apparatus | |
JP6173628B1 (ja) | 形状測定装置の制御方法 | |
Sun et al. | A novel tool path smoothing algorithm of 6R manipulator considering pose-dependent dynamics by designing asymmetrical FIR filters | |
JP5732985B2 (ja) | トルク算出装置、トルク算出方法、及びプログラム | |
JP5792226B2 (ja) | 多関節リンク機構の逆運動学解法、及びこの逆運動学解法を利用した教示データ作成装置 | |
JP6057284B2 (ja) | 多関節ロボット及び半導体ウェハ搬送装置 | |
JP6862849B2 (ja) | 演算装置、演算方法、演算プログラムおよびロボットシステム | |
JP2020075329A (ja) | シミュレーション装置、制御システム、ロボットシステム、シミュレーション方法、プログラム及び記録媒体 | |
JP2015058520A (ja) | ロボット制御装置およびロボット制御方法 | |
Waiboer et al. | Application of a perturbation method for realistic dynamic simulation of industrial robots | |
Safeena et al. | Adaptive super twisting control of Stewart platform based on super twisting observer |