(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-26
(45)【発行日】2025-03-06
(54)【発明の名称】ロボットの制御装置及び制御方法
(51)【国際特許分類】
B25J 9/10 20060101AFI20250227BHJP
【FI】
B25J9/10 A
(21)【出願番号】P 2021083751
(22)【出願日】2021-05-18
【審査請求日】2024-03-15
(73)【特許権者】
【識別番号】504136568
【氏名又は名称】国立大学法人広島大学
(74)【代理人】
【識別番号】100196380
【氏名又は名称】森 匡輝
(72)【発明者】
【氏名】茨木 創一
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2020-066083(JP,A)
【文献】特開平08-118204(JP,A)
【文献】特開昭61-090205(JP,A)
【文献】特開2017-021554(JP,A)
【文献】特開2008-036733(JP,A)
【文献】米国特許出願公開第2006/0136094(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10-13/08
G05B 19/18-19/404
(57)【特許請求の範囲】
【請求項1】
2以上の回転軸を回転駆動してロボットの手先を指令位置へ移動させる制御部と、
前記回転軸ごとに指令角度及び回転方向の関数としてモデル化された回転角度の誤差情報を記憶する記憶部と、を備え、
前記制御部は、前記指令位置から導出される前記回転軸ごとの前記指令角度及び回転方向と、前記誤差情報とから
順運動学によって前記手先の3次元位置を予測し、
予測された前記手先の3次元位置と前記指令位置との差に基づいて前記指令位置を補正し、
補正された前記指令位置から逆運動学によって導出される前記回転軸ごとの指令角度に基づいて、前記回転軸を回転駆動する、
ロボットの制御装置。
【請求項2】
前記誤差情報は、
前記指令角度及び回転方向に対応する前記回転軸の実際の角度と前記指令角度との差を表すルックアップテーブルである、
請求項
1に記載のロボットの制御装置。
【請求項3】
前記記憶部は、
前記回転軸
の回転に伴う中心軸の傾きによる傾斜運動誤
差を記憶し、
前記制御部は
、
前記傾斜運動誤
差に基づいて
、前記指令位置を補正する、
請求項1
又は2に記載のロボットの制御装置。
【請求項4】
2以上の回転軸を回転駆動してロボットの手先を指令位置へ移動させる制御部と、
前記回転軸ごとに指令角度、回転方向及び他の回転軸の回転角度の関数としてモデル化された回転角度の誤差情報を記憶する記憶部と、を備え、
前記制御部は、前記指令位置から導出される前記回転軸ごとの前記指令角度及び回転方向と、前記誤差情報と
から順運動学によって前記手先の3次元位置を予測し、
予測された前記手先の3次元位置と前記指令位置との差に基づいて前記指令位置を補正し、
補正された前記指令位置から逆運動学によって導出される前記回転軸ごとの指令角度に基づいて、前記回転軸を回転駆動する、
ロボットの制御装置。
【請求項5】
2以上の回転軸を回転駆動してロボットの手先を移動させる指令位置から導出される前記回転軸ごとの指令角度及び回転方向と、前記回転軸ごとに前記指令角度及び回転方向の関数としてモデル化された回転角度の誤差情報とから
順運動学によって前記手先の3次元位置を予測し、
予測された前記手先の3次元位置と前記指令位置との差に基づいて前記指令位置を補正し、
補正された前記指令位置から逆運動学によって導出される前記回転軸ごとの指令角度に基づいて、前記回転軸を回転駆動する、
ロボットの制御方法。
【請求項6】
前記誤差情報は、
前記指令角度及び回転方向に対応する前記回転軸の実際の角度と前記指令角度との差を表すルックアップテーブルである、
請求項
5に記載のロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの制御装置及び制御方法に関し、より詳細には旋回動作するロボットの位置決め誤差を補正する制御装置及び制御方法に関する。
【背景技術】
【0002】
主に産業用に用いられる垂直多関節型ロボット、水平多関節型ロボット等のロボットは、様々な誤差要因を有している。例えば、回転軸(回転関節)を備え旋回動作するロボットでは、モータの回転角度の誤差、歯車やベルトのバックラッシュ、ロボットのリンクの弾性変形等の誤差要因により、ロボットの先端部(以下、手先ともいう。)を指令位置に位置決めした時の位置決め誤差が生じる。
【0003】
これらの誤差要因を推定し、ロボットの位置補正を行う方法として、動作中のロボットの位置を測定し、測定されたロボットの位置と指令位置との差を補正するロボットの制御方法が開発されている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の制御方法では、光源と撮像装置とを用いて動作中のロボットの位置を測定し、測定されたロボットの位置と指令位置との差に基づいて位置補正量を生成することとしている。
【0006】
しかしながら、特許文献1の制御方法では、動作中のロボットの位置を撮影し続ける必要があるので、ロボットの用途によっては使用することが難しい。また、撮影するための装置が必要となるため、装置が複雑化する。さらに、撮影された画像を画像処理して位置補正量を生成し、生成された位置補正量に基づいてロボットの位置補正を行うので、制御が複雑となる。
【0007】
本発明は、上述の事情に鑑みてなされたものであり、簡素な構成で、精度よく指令位置に位置決めすることができるロボットの制御装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、この発明の第1の観点に係るロボットの制御装置は、
2以上の回転軸を回転駆動してロボットの手先を指令位置へ移動させる制御部と、
前記回転軸ごとに指令角度及び回転方向の関数としてモデル化された回転角度の誤差情報を記憶する記憶部と、を備え、
前記制御部は、前記指令位置から導出される前記回転軸ごとの前記指令角度及び回転方向と、前記誤差情報とから順運動学によって前記手先の3次元位置を予測し、
予測された前記手先の3次元位置と前記指令位置との差に基づいて前記指令位置を補正し、
補正された前記指令位置から逆運動学によって導出される前記回転軸ごとの指令角度に基づいて、前記回転軸を回転駆動する。
【0010】
また、前記誤差情報は、
前記指令角度及び回転方向に対応する前記回転軸の実際の角度と前記指令角度との差を表すルックアップテーブルである、
こととしてもよい。
【0011】
また、前記記憶部は、
前記回転軸の回転に伴う中心軸の傾きによる傾斜運動誤差を記憶し、
前記制御部は、
前記傾斜運動誤差に基づいて、前記指令位置を補正する、
こととしてもよい。
【0012】
この発明の第2の観点に係るロボットの制御装置は、
2以上の回転軸を回転駆動してロボットの手先を指令位置へ移動させる制御部と、
前記回転軸ごとに指令角度、回転方向及び他の回転軸の回転角度の関数としてモデル化された回転角度の誤差情報を記憶する記憶部と、を備え、
前記制御部は、前記指令位置から導出される前記回転軸ごとの前記指令角度及び回転方向と、前記誤差情報とから順運動学によって前記手先の3次元位置を予測し、
予測された前記手先の3次元位置と前記指令位置との差に基づいて前記指令位置を補正し、
補正された前記指令位置から逆運動学によって導出される前記回転軸ごとの指令角度に基づいて、前記回転軸を回転駆動する。
【0014】
この発明の第3の観点に係るロボットの制御方法では、
2以上の回転軸を回転駆動してロボットの手先を移動させる指令位置から導出される前記回転軸ごとの指令角度及び回転方向と、前記回転軸ごとに前記指令角度及び回転方向の関数としてモデル化された回転角度の誤差情報とから順運動学によって前記手先の3次元位置を予測し、
予測された前記手先の3次元位置と前記指令位置との差に基づいて前記指令位置を補正し、
補正された前記指令位置から逆運動学によって導出される前記回転軸ごとの指令角度に基づいて、前記回転軸を回転駆動する。
【0015】
また、前記誤差情報は、
前記指令角度及び回転方向に対応する前記回転軸の実際の角度と前記指令角度との差を表すルックアップテーブルである、
こととしてもよい。
【発明の効果】
【0016】
本発明のロボットの制御装置及び制御方法によれば、ロボットの各回転軸を、回転軸ごとに指令角度及び回転方向の関数としてモデル化された回転角度の誤差情報を用いて補正した指令角度又は指令位置を用いて、ロボットの各回転軸を動作させるので、簡易な処理で精度よくロボットの手先を位置決めすることが可能である。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施の形態1に係るロボットを示す図である。
【
図2】実施の形態1に係る制御ユニットの構成を示す機能ブロック図である。
【
図3】実施の形態1に係る動作制御の流れを示すフローチャートである。
【
図5】実施の形態2に係る動作制御の流れを示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、図を参照しつつ、本発明の実施の形態に係るロボットの制御装置及び制御方法について説明する。
【0019】
(実施の形態1)
本実施の形態では、
図1に示すように、垂直多関節型の6軸ロボットであるロボット10の手先10aの位置を制御する場合を例として説明する。
【0020】
ロボット10は、6つの回転軸Ai(i=1~6)を備える。各回転軸Aiは、ロボット10の基台側から回転軸A1、A2、・・・とし、最も先端側の回転軸を回転軸A6とする。
【0021】
ロボット10は、制御ユニット20に接続されている。制御ユニット20は、
図2のブロック図に示すように、制御部21、記憶部22、表示部23、入力部24を備える。
【0022】
制御部21は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、水晶発振器等から構成されており、ロボット10の動作を制御する。より具体的には、制御部21は、入力された手先10aの指令位置(目標位置)
rp
*に基づいて、各回転軸A
iの指令角度θ
i
*及び回転方向を導出して回転軸A
iを駆動させる。制御部21は、制御部21のROM、記憶部22等に記憶されている各種動作プログラム及びデータをRAMに読み込んでCPUを動作させることにより、
図2に示される制御部21の各機能を実現させる。これにより、制御部21は、演算部211及び動作制御部212として動作する。
【0023】
演算部211は、入力部24から入力された手先10aの指令位置rp*に基づいて、各回転軸Aiの指令角度θi
*及び回転方向を導出する。また、演算部211は、導出した指令角度θi
*及び回転方向と、記憶部22に記憶されている誤差情報EIとに基づいて、各回転軸Aiの指令角度θi
*を補正する。
【0024】
動作制御部212は、演算部211で補正された指令角度θi
*に基づいて、各回転軸Aiを回転動作させ、ロボット10の手先10aを指令位置rp*へ移動させる。
【0025】
記憶部22は、ハードディスク、フラッシュメモリ等の不揮発性メモリであり、手先10aの指令位置rp*から各回転軸Aiの指令角度θi
*及び回転方向を導出するプログラム、各回転軸Aiの指令角度θi
*及び回転方向に対応する角度位置決め誤差を表す誤差情報EI等を記憶する。誤差情報EIは、回転軸Aiごとに指令角度θi
*及び回転方向の関数としてモデル化された回転角度の誤差情報であり、具体的には指令角度θi
*及び回転方向(入力)と角度位置決め誤差(出力)との関係を表す関係式、ルックアップテーブル等である。
【0026】
表示部23は、液晶パネル、有機EL(Electroluminescence)等の表示用デバイスであり、指令位置rp*、各回転軸Aiの指令角度θi
*、演算部211で演算された指令角度θi
*の補正値等を表示する。本実施の形態に係る表示部23は、制御ユニット20に搭載された液晶パネルである。
【0027】
入力部24は、手先10aの指令位置rp*、ロボット10の動作制御に係る各種設定パラメータ等を入力するための入力デバイスである。入力部24は、タッチパネル、マウス等であり、本実施の形態に係る入力部24は、液晶パネルである表示部23上に配置されたタッチパネルである。
【0028】
続いて、本実施の形態に係るロボットの制御方法について、
図3のフローチャートを参照しつつ具体的に説明する。
【0029】
ロボット10の動作制御(手先位置決め処理)が開始されると、ロボット10の手先10aの指令位置rp*が設定される(ステップS11)。指令位置rp*は、オペレータによって入力部24から入力されてもよいし、予め記憶部22に記憶されていてもよい。ここで、指令位置rp*∈R3は、X,Y,Z座標からなる3次元ベクトルとして表される。
【0030】
演算部211は、ステップS12として、手先10aの指令位置rp*から、回転軸A1~A6の指令角度θ1
*~θ6
*を算出する(逆運動学計算)。また、演算部211は、回転軸A1~A6の回転方向を決定する。回転方向は、例えば、各回転軸A1~A6の現在の角度と指令角度θi
*との差により決定される。
【0031】
演算部211は、記憶部22に予め記憶されている誤差情報EIを参照し、ステップS12で算出された指令角度θ
i
*及び回転方向に対応する角度位置決め誤差を各回転軸A
iについて推定する(ステップS13)。ここで、角度位置決め誤差とは、指令角度θ
i
*と回転軸A
iの実際の回転角度θ
iとの差であり、以下の式に示すように、指令角度θ
i
*及び回転方向の関数として表される。
【数1】
ただし、sgnは符号(+1または-1)を表す関数である。
【0032】
本実施の形態に係る誤差情報EIは、回転軸A
iごとに、指令角度θ
i
*及び回転方向に対応する実際の回転角度θ
iと指令角度θ
i
*との差(角度位置決め誤差)を示すルックアップテーブルとして、記憶部22に記憶されている。ルックアップテーブルのデータは、例えば
図4にグラフとして示すようなものである。
図4に示すように、指令角度θ
i
*が同じであっても、回転軸A
iの回転駆動に係るバックラッシュ等の影響により、角度位置決め誤差は、回転方向によって異なる値を示す。本実施の形態では、回転軸A
iごとに指令角度θ
i
*及び回転方向の関数としてモデル化された回転角度の誤差である角度位置決め誤差を誤差情報EIとして用いるので、精度よく回転軸A
iの角度位置決め誤差を推定することができる。
【0033】
誤差情報EIは、例えば予め実測された値に基づいて作成され、記憶部22に記憶されている。誤差の実測方法は特に限定されず、回転軸Aiごとに誤差を測定すればよい。具体的には、他の回転軸Ai(i≠k)を固定した状態で、1つの回転軸Akを動作させ、レーザトラッカを用いて手先10aの3次元位置を測定することにより、回転軸Akの実際の回転角度θkと指令角度θk
*との差を測定する方法を用いることができる。
【0034】
例えば、誤差情報EIが
図4に示す角度位置決め誤差であり、回転軸A
1の指令角度θ
i
*が30度で、回転方向が負、すなわち回転軸A
1が負方向に回転して指令角度θ
i
*に割り出される場合、演算部211は、ルックアップテーブルを参照し、指令角度θ
i
*=30度、且つ負方向回転に対応する角度位置決め誤差を7×10
-3度と推定する。
【0035】
上記のルックアップテーブルの例では、記憶部22は、誤差情報EIとして、回転角度1度ごとに角度位置決め誤差のデータを記憶することとしているが、角度の間隔は特に限定されず、制御対象の機械(ロボット)の特性により任意に設定すればよい。また、指令角度θi
*が、ルックアップテーブルとして記憶されている角度間隔の間となる場合、演算部211は、指令角度θi
*に最も近い正方向の角度と負方向の角度とを、例えば線形補間、スプライン補間等のように、何らかの関数を使って補間して、角度位置決め誤差を推定することとすればよい。
【0036】
続いて、演算部211は、推定された角度位置決め誤差Δθi
*に基づいて、指令角度θi
*を補正(θi
*→θi
*-Δθi
*)する(ステップS14)。また、動作制御部212は、ステップS14で補正された指令角度θi
*で、各回転軸Aiを回転動作させ、手先10aを指令位置rp*に移動させる(ステップS15)。
【0037】
以上説明したように、本実施の形態に係るロボットの制御装置及び制御方法では、回転軸Aiごとに指令角度θi
*及び回転方向の関数としてモデル化された角度位置決め誤差Δθi
*を用いて指令角度θi
*を補正する。そして、ロボット10の各回転軸Aiは、補正された指令角度θi
*を用いて動作する。したがって、精度よく各回転軸Aiを位置決めすることができ、手先10aをより正確に指令位置rp*に移動させることが可能となる。
【0038】
また、本実施の形態に係る角度位置決め誤差を示す誤差情報EIは、予め記憶部22に記憶されており、制御部21は、誤差情報EIを参照して角度位置決め誤差Δθi
*を推定し、指令角度θi
*を補正する。したがって、簡易な処理で精度よく手先10aの位置決めを行うことができる。
【0039】
また、本実施の形態では、予め定められた角度位置決め誤差を用いて手先10aの位置決めを行うので、撮像装置等の特別な装置を用いて常に手先の位置を測定することを必要とせず、簡素な構成で、ロボットの可動領域全体で精度よく手先10aを指令位置に位置決めすることができる。
【0040】
本実施の形態では、誤差情報EIとしてルックアップテーブルを用いることとしたが、これに限られない。誤差情報EIは、回転軸Aiごとに指令角度θi
*及び回転方向の関数としてモデル化された回転角度の誤差情報であればよく、例えば、指令角度θi
*及び回転方向から角度位置決め誤差Δθi
*を算出する計算式であってもよい。
【0041】
また、本実施の形態に係る誤差情報EIは、指令角度θi
*と実際の回転角度θiとの差であることとしたが、これに限られない。例えば、誤差情報EIは、実際の回転角度θiであってもよい。この場合、演算部211は、指令角度θi
*と誤差情報EIである実際の回転角度θiとに基づいて、角度位置決め誤差Δθi
*を推定し、指令角度θi
*を補正すればよい。
【0042】
(実施の形態2)
上述の実施の形態1では、推定された角度位置決め誤差Δθi
*に基づいて、各回転軸Aiの指令角度θi
*を補正することとしたが、推定された各回転軸Aiの角度位置決め誤差Δθi
*に基づいて、手先10aの指令位置rp*を補正することもできる。本実施の形態では、手先10aの指令位置rp*を補正する場合のロボットの制御装置及び制御方法について説明する。
【0043】
本実施の形態に係るロボット10の構成は、実施の形態1のロボット10と同様であるので、同じ符号を付して、詳細な説明は省略する。
【0044】
以下、本実施の形態に係る位置補正を用いたロボットの制御方法について、
図5のフローチャートを参照しつつ具体的に説明する。
【0045】
図5のフローチャートに示すように、本実施の形態に係るステップS21~S23は、実施の形態1に係る
図3のフローチャートのステップS11~S13と同様である。すなわち、ロボット10の動作が開始されると、ロボット10の手先10aの目標位置である指令位置
rp
*が設定される。(ステップS21)。そして、演算部211は、指令位置
rp
*から、回転軸A
1~A
6の指令角度θ
1
*~θ
6
*を算出するとともに、回転軸A
1~A
6の回転方向を決定する(ステップS22)。
【0046】
演算部211は、記憶部22に予め記憶されている誤差情報EIを参照し、ステップS22で導出された指令角度θi
*及び回転方向に対応する角度位置決め誤差Δθi
*を各回転軸Aiについて推定する(ステップS23)。誤差情報EIは、例えば、実施の形態1と同様のルックアップテーブルである。
【0047】
続いて、演算部211は、推定された角度位置決め誤差Δθ
i
*に基づいて、ロボット10の手先10aの3次元位置を予測する(ステップS24)。具体的には、ステップS23で推定された各回転軸A
iの角度位置決め誤差をΔθ
i
*とすると、各回転軸A
iを指令角度θ
i
*で回転動作させた場合の各回転軸A
iの実際の回転角度θ
iは、θ
i=θ
i
*+Δθ
i
*と推定できる。推定された回転角度θ
iを用いて手先10aの3次元位置
rp
*∈R
3は、以下の式のように予測される。
【数2】
ただし、
6p∈R
3は、ロボット10のフランジ中心(回転軸A
1の回転中心)から、手先10aまでのベクトルを表す。
【0048】
また、
rT
6は、手先10aの座標系を基準座標系に変換する4×4の行列(同次変換行列)で、ロボットの軸構成によって決まる順運動学関数である。例えば、
図1に示す実施の形態に係るロボット10の軸構成であれば、以下の式で与えられる。
【数3】
【0049】
ここで、L
*はリンク長である。また、D
*(*)は平行移動又は回転を表す同次変換行列であり、以下の式で定義される。
【数4】
ここで、上記の式に含まれるα
21等のパラメータは、D-Hパラメータであり、
図6に示す表のように定義される。上記の式で示す順運動学関数及びD-Hパラメータの選択方法は、これらに限定されず、数学的に等価な他の形態のものを用いることとしてもよい。
【0050】
続いて、演算部211は、ステップS24で導出された手先10aの予測位置rpと指令位置rp*との差(3次元位置誤差)Δp=rp-rp*を算出し、指令位置rp*を補正(rp*→rp*-Δp)する(ステップS25)。また、動作制御部212は、ステップS25で補正された指令位置rp*に基づいて、各回転軸Aiの補正後の指令角度θi
*を導出する(ステップS26)。指令角度θi
*の導出方法としては、ステップS22と同様の方法(逆運動学)を用いることができる。
【0051】
動作制御部212は、ステップS26で算出された指令角度θi
*に基づいて、各回転軸Aiを回転動作させ、手先10aを指令位置rp*に移動させる(ステップS27)。
【0052】
以上説明したように、本実施の形態に係るロボットの制御装置及び制御方法では、回転軸Aiごとに指令角度θi
*及び回転方向の関数としてモデル化された角度位置決め誤差Δθi
*を用いて手先10aの指令位置rp*を補正して、各回転軸Aiの指令角度θi
*を導出する。したがって、手先10aの指令位置rp*を補正するので、オペレータにとって補正内容が理解し易くなるとともに、精度よく手先10aを指令位置rp*に移動させることができる。
【0053】
上記各実施の形態では、制御部21は、ロボット10の各回転軸Aiにおける角度位置決め誤差Δθi
*を推定し、誤差を打ち消すように指令角度θi
*又は手先10aの指令位置rp*を補正してロボット10を制御することとしたが、これに限られない。例えば、ロボット10の各回転軸Aiの軸方向の運動誤差である軸方向運動誤差、各回転軸Aiの回転半径方向の振れによる径方向運動誤差、各回転軸Aiにおいて回転とともに中心軸が傾く運動誤差である傾斜運動誤差等を補正することとしてもよい。この場合、ルックアップテーブル等の誤差情報EIに軸方向運動誤差、径方向運動誤差、傾斜運動誤差等を含め、制御部21が、誤差情報EIを参照することにより、これらの誤差を打ち消すように回転軸Aiごとの指令角度θi
*又は手先10aの指令位置rp*の補正を行い、ロボット10を制御することとすればよい。
【0054】
また、上記各実施の形態では、ロボット10の各回転軸Aiにおける角度位置決め誤差Δθi
*は互いに独立していることとしたが、これに限られない。例えば、各回転軸の回転角度によって、ある回転軸Aiに及ぼす重力の影響が変わることにより、動力伝達機構に生じる弾性変形等を原因として、回転軸Aiの角度位置決め誤差Δθi
*が変化する場合がある。このような角度位置決め誤差Δθi
*の変換の影響を補正するために、誤差情報EIであるルックアップテーブルに、他の回転軸Aiの回転角度との関係を含めてもよい。これにより、他の回転軸Aiの回転角度によって生じる角度位置決め誤差Δθi
*の変動を補正することができるので、より精度の高いロボット10の位置制御を行うことが可能である。
【0055】
また、上記各実施の形態では、ロボット10は複数の回転軸Aiを備えることとしたが、これに限られず、1つの回転軸A1のみを備えることとしてもよい。本発明に係るロボットの制御装置及び制御方法では、予め記憶部22に記憶された誤差情報EIに基づいて回転軸Aiの指令角度θi
*を補正するので、回転軸A1のみを備える場合であっても制御装置を複雑化することなく、精度の高い位置決めを行うことができる。
【産業上の利用可能性】
【0056】
本発明は、回転軸を備える産業用ロボットの位置制御に好適である。特に、高い位置決め精度が求められる多関節ロボットの位置制御に好適である。
【符号の説明】
【0057】
10 ロボット、10a 手先、20 制御ユニット、21 制御部、211 演算部、212 動作制御部、22 記憶部、23 表示部、24 入力部