説明

ロボットの制振方法およびロボットの制御装置

【課題】ロボットの先端の振動を抑制する。
【解決手段】複数のリンク24〜34と対応するリンクを駆動する複数のモータ36〜46とを有するロボットの動作が停止するときに発生するロボット先端の振動を抑制するロボットの制振方法であって、ロボット先端の加速度を加速度センサ52によって検出し、加速度センサが検出した加速度に基づいてロボット先端の速度を算出する。ロボット先端の速度と、加速度センサの加速度検出タイミングにおける複数のモータの回転角度と、ヤコビ行列Jの逆行列J−1とに基づいて、各リンクと対応するモータとの間のねじれ角速度を算出する。さらに、ねじれ角速度に基づいてねじれ角度を算出し、ねじれ角速度とねじれ角度とに基づいて、各リンクと対応するモータとの間に発生したねじれが解消する、各モータの制御入力に加算する補償量を算出し、補償量を加算した制御入力を各モータに出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの振動を抑制する制振方法およびロボットの制御装置に関する。
【背景技術】
【0002】
従来より、先端に溶接ガンやスプレーガンなどのツールを取付けて動作する多関節ロボットは、動作の停止直後にその先端が振動するという問題がある。これは、ツールやロボットの先端部分の慣性により、ロボットのリンクが、片持ち梁のように振動することにより起こる。
【0003】
このリンクの振動(先端の振動)に対処する方法として、例えば特許文献1に記載する方法がある。この特許文献1に記載する方法は、加速度センサをロボットの先端に取付け、その加速度センサが検出した先端の加速度に基づいてリンクを駆動するモータを制御することにより、リンクを制振し、ロボットの先端の振動を抑制する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平4−193490号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述の特許文献1の場合、加速度センサがロボットの先端の加速度を検出してから、その検出結果に基づいてリンクを制振するまでに大きな時間遅れが生じる。具体的に説明すると、加速度センサが検出したロボットの先端の加速度は、速度演算、座標演算を順に経てロボットの先端の位置変化量に演算される。この位置変化量に基づいてリンクを制振できる位置変更指令値が算出され、その位置変更指令値はリンクを駆動するモータに対する指令値に変換演算される。このように複数の演算を重ねるために、加速度センサがロボットの先端の加速度を検出してからモータの指令に反映されるまでの時間遅れが大きくなる。リンクの振動周期によっては(特に周期が短い場合)、この時間遅れによってリンクを十分に制振できず、最悪な場合、ロボットの先端の振動が長期化する可能性がある。
【0006】
そこで、本発明は、ロボットの動作の停止直後において、加速度センサロボットの先端の加速度を検出してからすぐに、その加速度に基づいてリンクを駆動するモータを制御することにより、リンクを十分に制振し、先端の振動を抑制することを課題とする。
【課題を解決するための手段】
【0007】
上述の課題を解決するために、本発明の請求項1に係る発明は、
複数のリンクと対応するリンクを駆動する複数のモータとを有するロボットの動作が停止するときに発生するロボット先端の振動を抑制するロボットの制振方法であって、
ロボット先端の加速度を加速度センサによって検出し、
加速度センサが検出した加速度に基づいてロボット先端の速度を算出し、
ロボット先端の速度と、加速度センサの加速度検出タイミングにおける複数のモータの回転角度と、ヤコビ行列の逆行列とに基づいて、各リンクと対応するモータとの間のねじれ角速度を算出し、
ねじれ角速度に基づいてねじれ角度を算出し、
ねじれ角速度とねじれ角度とに基づいて、各リンクと対応するモータとの間に発生したねじれが解消する、各モータの制御入力に加算する補償量を算出し、
補償量を加算した制御入力を各モータに出力することを特徴とする。
【0008】
また、請求項2に係る発明は、
複数のリンクと対応するリンクを駆動する複数のモータとを有するロボットの動作が停止するときに発生するロボット先端の振動を抑制することが可能なロボットの制御装置であって、
ロボットの外部に予め定義されたXYZ直交座標系と、
ロボット先端のX,Y,およびZ軸方向の加速度とX,Y,およびZ軸まわりの加速度とを検出する加速度センサと、
対応するモータの回転角度を検出する複数のエンコーダと、
加速度センサが検出した加速度に基づいてロボット先端の速度を算出する速度算出手段と、
速度算出手段が算出した速度と、加速度センサの加速度検出タイミングにおいて複数のエンコーダが検出した回転角度と、ヤコビ行列の逆行列とに基づいて、各リンクと対応するモータとの間のねじれ角速度を算出するねじれ角速度算出手段と、
ねじれ角速度算出手段が算出したねじれ角速度に基づいて、ねじれ角度を算出するねじれ角度算出手段と、
ねじれ角速度算出手段が算出したねじれ角速度と、ねじれ角度算出手段が算出したねじれ角度とに基づいて、各リンクと対応するモータとの間に発生したねじれが解消する、各モータの制御入力に加算する補償量を算出する補償量算出手段と、
補償量を加算した制御入力を各モータに出力するモータ制御手段とを有することを特徴とする。
【0009】
さらに、請求項3に係る発明は、
3つのリンクと対応するリンクを駆動する3つのモータとを有するロボットの動作が停止するときに発生するロボット先端の振動を抑制することが可能なロボットの制御装置であって、
ロボットの外部に予め定義されたXYZ直交座標系と、
ロボット先端のX,Y,およびZ軸方向の加速度を検出する加速度センサと、
対応するモータの回転角度を検出する複数のエンコーダと、
加速度センサが検出した加速度に基づいてロボット先端の速度を算出する速度算出手段と、
速度算出手段が算出した速度と、加速度センサの加速度検出タイミングにおいて複数のエンコーダが検出した回転角度と、ヤコビ行列の逆行列とに基づいて、各リンクと対応するモータとの間のねじれ角速度を算出するねじれ角速度算出手段と、
ねじれ角速度算出手段が算出したねじれ角速度に基づいてねじれ角度を算出するねじれ角度算出手段と、
ねじれ角速度算出手段が算出したねじれ角速度と、ねじれ角度算出手段が算出したねじれ角度とに基づいて、各リンクと対応するモータとの間に発生したねじれが解消する、各モータの制御入力に加算する補償量を算出する補償量算出手段と、
補償量を加算した制御入力を各モータに出力するモータ制御手段とを有することを特徴とする。
【0010】
さらにまた、請求項4に係る発明は、
ロボットは、複数のリンクと対応するリンクを駆動する複数のモータとを有し、
上記3つのリンクは、複数のリンクの一部であって、他のリンクに比べて長いことを特徴とする。
【発明の効果】
【0011】
本発明によれば、ロボットの動作の停止直後、加速度センサが検出した加速度からロボット先端の速度が算出され、その速度とヤコビ行列の逆行列とに基づいてリンクとモータとの間のねじれ角速度が算出される。次にねじれ角速度に基づいてねじれ角度が算出され、ねじれ角速度とねじれ角度に基づいて複数のモータそれぞれの制御入力に加算される、ねじれを解消する補償量が算出される。そして、補償量はそれぞれ、対応するモータの制御入力に加算される。
【0012】
これにより、加速度センサが検出した加速度からモータの制御入力の補償量が短時間で算出され、その補償量が加算された制御入力によってモータが対応するリンクとの間のねじれを解消するためにすばやく回転する。したがって、加速度センサが検出した加速度からロボット先端の位置変化量を求め、位置変化量からリンクを制振できる位置姿勢変更指令値を算出し、その位置変更指令値をモータの指令値に演算してリンクを制振する場合に比べて、ロボット先端の加速度を検出してからリンクが制振されるまでの時間が短くなる。その結果、リンクを十分に制振でき、ロボット先端の振動を抑制することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施形態に係るロボットのリンクモデルを示す図である。
【図2】リンクの振動を説明するための図である。
【図3】本発明の第1の実施形態に係るロボットの制御装置の一部のブロック図である。
【図4】ヤコビ行列の部分行列を説明するための図である。
【図5】ヤコビ行列の部分行列を説明するための別の図である。
【図6】第2の実施形態に係るロボットの制御装置の一部のブロック図である。
【発明を実施するための形態】
【0014】
(第1の実施形態)
本発明の第1の実施形態に係るロボットのリンクモデルを図1に示す。図1に示すロボット10は、6つの関節12〜22を備え、複数のリンク24〜34と対応するリンクを駆動する複数のモータ36〜46(図3参照)とを有する。モータ36はリンク24を駆動し、モータ38はリンク26、モータ40はリンク28、モータ42はリンク30、モータ44はリンク32、モータ46はリンク34を駆動する。
【0015】
また、ロボット10は、先端48に溶接ガン、スプレーガン、またはハンドツールなどのツール50を備えている。
【0016】
さらに、ロボット10は、その先端48の加速度を検出する6軸センサ52と、対応するモータの回転角度を検出する複数のエンコーダ54〜64(図3参照)とを備えている。6軸センサ52を用いて、ロボットの外部に予め定義されている固定の基準座標系ΣBを基準としてロボット先端48の加速度を検出する。具体的には、例えば、6軸センサ52のセンサ座標系に関する出力を、公知の手段によって基準座標系ΣBのX,Y,およびZ軸方向の加速度と、X,Y,およびZ軸まわりの加速度に変換する。エンコーダ54はモータ36の回転角度θを検出し、エンコーダ56はモータ38の回転角度θ、エンコーダ58はモータ40の回転角度θ、エンコーダ60はモータ42の回転角度θ、エンコーダ62はモータ44の回転角度θ、エンコーダ64はモータ46の回転角度θを検出する。
【0017】
さらにまた、ロボット10(ロボット10の制御装置)は、ロボット10の動作の停止直後に、複数のリンク24〜34を制振するように構成されている。すなわち、ロボット10の動作の停止直後に、複数のリンク24〜34を振動しないようにする。
【0018】
まず、複数のリンク24〜34の制振を説明する前に、ロボット10の動作の停止直後に発生する複数のリンク24〜34の振動(制振しない場合に発生する振動)について、図2を参照しながら説明する。
【0019】
リンクの振動の発生は、主に3つのケースに分けられる。他のリンクの動作が停止することによってリンクが振動し始めるケース(図2(A))と、モータによる駆動が停止することによってリンクが振動し始めるケース(図2(B))と、これら2つを組み合わせたケースがある。
【0020】
例えば、図2(A)に示すように、他のリンクが動作することによってリンクLがそのツール側端が位置Pに位置する状態から移動し始め、そのツール側端が位置Pに到達したときに他のリンクが停止すると、リンクLよりツール側に位置する他のリンク、モータ、ツールなどの慣性により、リンクLがたわむ。このリンクLのたわみにより、リンクLのツール側端が位置Pを通過して位置Pに位置し、リンクLと該リンクLと連結されたモータMとの間にねじれが発生する(ねじれ角度αが発生する)。そして、リンクLは、このねじれを原因として、ツール側端が位置Pで停止するまで、振動し続ける。なお、本明細書では、「ねじれ角度α」は、図に示すように、ツール側端が本来あるべき位置PとモータMの中心とを結ぶ直線と、ツール側端の現状の位置PとモータMの中心とを結ぶ直線との間の角度を言う。
【0021】
また例えば、図2(B)に示すように、モータMに駆動されることによってリンクLがそのツール側端が位置Pに位置する状態から回転し始め、角度β回転した後に(ツール側端が位置Pに到達したときに)モータMが停止すると、リンクLよりツール側に位置する他のリンク、モータ、ツールなどの慣性により、リンクがたわむ。このリンクのたわみにより、リンクのツール側端が位置Pを通過して位置Pに位置し、リンクLと該リンクLと連結されたモータMとの間にねじれが発生する(ねじれ角度αが発生する)。そして、リンクLは、このねじれを原因として、ツール側端が位置Pで停止するまで、振動し続ける。
【0022】
このようなリンクとモータとの間に発生するねじれを原因として発生する振動を抑制するために、ロボット10の制御装置は、複数のモータ36〜46に対して制振制御を実行する。
【0023】
モータ36〜46に対して制振制御を実行するための構成を図3に示す。
【0024】
図3は、ロボット10の制御装置の一部、複数のモータ36〜46の制振制御に関連する構成要素のブロック図である。
【0025】
ロボット10の制御装置は、図3に示すように、ロボット先端48の速度を算出する第1フィルタ70と、ヤコビ行列の逆行列を算出する逆行列演算部72と、リンク24〜34とモータ36〜46との間のねじれ角速度を算出するねじれ角速度演算部74と、リンク24〜34とモータ36〜46との間のねじれ角度を算出する積分器76と、モータ36〜46の制御入力に加算する補償量を算出する補償量演算部78と、制御入力をモータ36〜46に出力するモータ制御部80とを有する。
【0026】
第1フィルタ70は、ロボット10の停止直後に6軸センサ52が検出したロボット先端48のX軸方向の加速度

、Y軸方向の加速度

、Z軸方向の加速度

、X軸まわりの加速度

、Y軸まわりの加速度

、およびZ軸まわりの加速度

に基づいて、ロボット先端48のX軸方向の速度

、Y軸方向の速度

、Z軸方向の速度

、X軸まわりの速度

、Y軸まわりの速度

、Z軸まわりの速度

を算出する。具体的には、第1フィルタ70は、6軸センサ52から出力された信号からHPF(High Pass Filter)によってDC成分をカットし、その後に積分演算することにより、加速度

から速度

を算出する。
【0027】
逆行列演算部72は、後述するねじれ角速度演算部74がねじれ角速度を算出するにあたって必要なヤコビ行列Jの逆行列をJ−1算出する。
【0028】
具体的には、複数のモータ36〜46の回転角度θ〜θを変数とする関数のヤコビ行列J(数式1)が予め定義されており(例えば、制御装置の記憶部に記憶されており)、逆行列演算部72は、そのヤコビ行列Jに回転角度θ〜θを代入し、その後にヤコビ行列Jの逆行列J−1を算出する。さらに具体的に言えば、逆行列演算部72は、6軸センサ52がロボット先端48の加速度

を検出するタイミングにおける複数のモータ36〜46の回転角度θ〜θに基づいて、ヤコビ行列Jの逆行列J−1を算出する。なお、複数のモータ36〜46の回転角度θ〜θは、対応するモータの回転角度を検出する複数のエンコーダ54〜64から得られる。
【数1】

【0029】
ねじれ角速度演算部74は、リンク24〜34とモータ36〜46との間のねじれ角速度

を算出する。なお、

はリンク24とモータ36との間のねじれ角速度であって、

はリンク26とモータ38、

はリンク28とモータ40、

はリンク30とモータ42、

はリンク32とモータ44、

はリンク34とモータ46との間のねじれ角速度である。
【0030】
具体的には、第1フィルタ70が算出したロボット先端48の速度

と、逆行列演算部72が算出したヤコビ行列Jの逆行列J−1とに基づいて、数式2を用いて、ねじれ角速度

を算出する。
【数2】

【0031】
第2フィルタ76は、ねじれ角速度

に基づいて、リンク24〜34とモータ36〜46との間のねじれ角度α〜αを算出する。
【0032】
具体的には、第2フィルタ76は、ねじれ角速度

を積分することによってねじれ角度α〜αを算出する。
【0033】
補償量演算部78は、複数のモータ36〜46それぞれに対するモータ制御部80の制御入力(電流指令)に加算する補償量を算出する。
【0034】
複数のモータ36〜46の補償量I〜Iは、駆動するリンクのイナーシャ、バネ定数、およびダンパと、自身のトルク定数に基づいて算出される。
【0035】
具体的に説明すると、リンクのイナーシャをH、バネ定数をK、ダンパをD、リンクとモータとの間のねじれ角度をα、ねじれ角速度をΔαとすると、リンクの運動方程式は、数式3のように表現することができる。
【数3】

【0036】
数式3において、aは、リンクの加速度である。
【0037】
リンクの加速度aを実現するために必要なモータ電流Iは、数式4のように表現することできる。なお、数式4のKtはモータのトルク定数である。
【数4】

【0038】
数式4で表現されるモータ電流Iは求めるべき補償量Iでもあるので、数式4を数式3に代入すると、数式5に示す補償量Iの式が得られる。
【数5】

【0039】
補償量演算部78が算出した補償量I〜Iそれぞれが対応するモータの制御入力に加算されることにより、複数のモータ36〜46それぞれが対応するリンクとの間のねじれが解消するように回転する。これにより、ロボット10の動作の停止直後において、複数のリンク24〜34の振動の発生が抑制される。なお、このときロボット10の動作は停止しているが、その停止姿勢を維持するために必要な制御入力が、モータ制御部80から複数のモータ36〜46それぞれに出力されている。
【0040】
本実施形態によれば、ロボット10の動作の停止直後、6軸センサ52が検出した加速度

からロボット先端48の速度

が算出され、その速度

とヤコビ行列Jの逆行列J−1とに基づいてリンク24〜34とモータ36〜46との間のねじれ角速度

が算出される。次にねじれ角速度

に基づいてねじれ角度α〜αが算出され、ねじれ角速度

とねじれ角度α〜αに基づいて複数のモータ36〜46それぞれの制御入力に加算される、ねじれを解消する補償量I〜Iが算出される。そして、補償量I〜Iはそれぞれ、対応するモータの制御入力に加算される。
【0041】
これにより、6軸センサ52が検出した加速度

からモータ36〜46の制御入力の補償量I〜Iが短時間で算出され、その補償量I〜Iが加算された制御入力によってモータ36〜46が対応するリンク24〜34との間のねじれを解消するためにすばやく回転する。したがって、加速度センサが検出した加速度からロボット先端の位置変化量を求め、位置変化量からリンクを制振できる位置姿勢変更指令値を算出し、その位置変更指令値をモータの指令値に演算してリンクを制振する場合に比べて、ロボット先端の加速度を検出してからリンクが制振されるまでの時間が短くなる。その結果、リンクを十分に制振でき、ロボット先端の振動を抑制することができる。
【0042】
(第2の実施形態)
本実施形態は、第1の実施形態に比べてより現実的且つ経済的な形態である。
【0043】
第1の実施形態の場合、ロボット10の停止直後において、複数のリンク24〜34を制振するために、6軸センサ52を使用している。すなわち、ロボット先端のX軸方向の加速度

、Y軸方向の加速度

、Z軸方向の加速度

、X軸まわりの加速度

、Y軸まわりの加速度

、およびZ軸まわりの加速度

を検出している。しかしながら、実際に問題になるリンクやロボット先端の振動は、X軸方向、Y軸方向、Z軸方向、またはこれらを組み合わせた方向の振動であるため、ロボット先端の加速度としてRx,Ry,Rz成分を検出する必要は現実的にはあまりない。したがって、本実施形態は、第1の実施形態と異なり、ロボット先端のX軸方向の加速度

、Y軸方向の加速度

、Z軸方向の加速度

を検出する3軸センサを使用する。3軸センサは6軸センサに比べて安価であるため、3軸センサを使用することは第1の実施形態に比べて経済的に有利である。
【0044】
また、第1の実施形態の場合、複数(6つ)のリンク24〜34全てについて制振を実行している。しかしながら、実際には、全てのリンク24〜34に対して制振する必要はあまりない。図1を用いて説明すると、ロボット10は、基本的には、手首部とアーム部とで構成される。アーム部のリンク24〜28は、ツール50の位置と姿勢とを大きく制御するために、そのリンク長が手首部のリンク30〜34に比べて長い。一方、手首部のリンク30〜34は、ツール50の位置と姿勢とを細かく制御するために、そのリンク長がアーム部のリンク24〜28に比べて短い。そのため、ロボット先端48の振動に対する寄与は、リンク長が長いアーム部のリンク24〜28が振動する方が、リンク長が短い手首部のリンク30〜34が振動する方に比べて大きい。したがって、本実施形態は、リンク長が長いリンク24〜28に対して制振する、すなわちリンク24〜28を駆動するモータ36〜40に対して制振制御を実行する。
【0045】
さらに、本実施形態では、上述したように3軸センサを使用するにあたり、またすべてのリンクではなくリンク長が長いアーム部のリンク24〜28に対して制振するにあたり、ヤコビ行列Jの部分行列を使用する。
【0046】
具体的に説明すると、図4に示すように、ヤコビ行列Jは、3つの部分行列J,J,Jから構成されている。部分行列Jは、ヤコビ行列Jの第1行から第3行まで且つ第1列から第3列までの成分を抽出して構成される行列である。部分行列Jは、ヤコビ行列Jの第1行から第3行まで且つ第4列から第6列までの成分を抽出して構成される行列である。部分行列Jは、ヤコビ行列Jの第4行から第6行までの成分を抽出して構成される行列である。
【0047】
ヤコビ行列Jを構成する3つの部分行列J〜Jの中、3軸センサが検出したロボット先端の加速度

からリンク24〜28とモータ36〜40との間のねじれ角速度

を算出するために絶対に必要な行列は、部分行列Jである。そこで、本実施形態は、第1の実施形態がヤコビ行列Jを使用しているのに対し、ヤコビ行列Jの部分行列Jを使用する(以下、「部分ヤコビ行列J」と称する)。6行6列のヤコビ行列Jに代って3行3列の部分ヤコビ行列Jを使用するので、第1の実施形態に比べて、必要となる演算量を大幅に削減できる。
【0048】
なお、発明者は、ヤコビ行列Jの代わりに部分ヤコビ行列Jを使用するにあたり、実質的に問題がないことを確認している。
【0049】
具体的には、図5にリンクモデルを示す6関節ロボットにおいて、6つのモータに同一の制御入力を与えたときの先端(フランジF)の基準座標系ΣBにおける位置の変化量を、図5に示すヤコビ行列Jと部分ヤコビ行列Jとを用いて算出した。制御入力を与える前の6つのモータの回転角度は、関節JTのモータの回転角度θが20°、関節JTのモータの回転角度θが20°、関節JTのモータの回転角度θが35°、関節JTのモータの回転角度θは−40°、関節JTのモータの回転角度θは30°、関節JTのモータの回転角度θは−20°である。この状態から各モータを1°回転させた。また、図に示す距離dは385mm、dは21mm、dは1100mm、dは1300mm、dは0mm、dは228mmである。さらに、図に示すように、関節JT,JT間のリンクL、関節JT,JT間のリンクL、および関節JT,JT間のリンクLは、関節JT,JT間のリンク、関節JT,JT間のリンク,および関節JTとフランジFとの間のリンクに比べてそのリンク長が長い。
【0050】
ヤコビ行列Jを用いて算出されたフランジFの位置変化量(Δx,Δy,Δz)は、(−24.6,−10.9,−29.0)であった。一方、部分ヤコビ行列Jを用いて算出されたフランジFの位置変化量(Δx,Δy,Δz)は、(−26.6,−7.42,−27.1)であった。ヤコビ行列Jの位置変化量と部分ヤコビ行列Jの位置変化量との誤差(xe,ye,ze)は、(2.0,−3.5,−1.9)である。この誤差をヤコビ行列Jの位置変化量に対する大きさで評価すると、5.5%((xe+ye+ze)/(Δx+Δy+Δz)×100=5.5)となり、軽微である。したがって、ヤコビ行列Jに代って部分ヤコビ行列Jを用いても実質的には問題ない。
【0051】
図6は、第2の実施形態のロボットの制御装置の一部、3つのモータ36〜40の制振制御に関連する構成要素のブロック図である。リンク、モータ、エンコーダ、およびモータ制御部は、第1の実施形態と同一である。
【0052】
3軸センサ152は、基準座標系ΣBのX,Y,およびZ軸方向の加速度

を検出する。
【0053】
第1フィルタ170は、ロボット10の停止直後に3軸センサ152が検出したロボット先端48のX軸方向の加速度

、Y軸方向の加速度

、Z軸方向の加速度

に基づいて、ロボット先端48のX軸方向の速度

、Y軸方向の速度

、Z軸方向の速度

を算出する。また、第1フィルタ170は、第1の実施形態の第1フィルタ70と同様に、3軸センサ152の出力信号からDC成分をカットする。
【0054】
逆行列演算部172は、後述するねじれ角速度演算部174がねじれ角速度を算出するにあたって必要な部分ヤコビ行列Jの逆行列J−1算出する。
【0055】
具体的には、3つのモータ36〜40の回転角度θ〜θを変数とする関数の部分ヤコビ行列J(図4参照)が予め定義されており、逆行列演算部172は、その部分ヤコビ行列Jに回転角度θ〜θを代入し、その後に部分ヤコビ行列Jの逆行列J−1を算出する。さらに具体的に言えば、逆行列演算部172は、3軸センサ152がロボット先端48の加速度

を検出するタイミングにおける3つのモータ36〜40の回転角度θ〜θに基づいて、部分ヤコビ行列Jの逆行列J−1を算出する。
【0056】
ねじれ角速度演算部174は、リンク24〜28とモータ36〜40との間のねじれ角速度

を算出する。
【0057】
具体的には、第1フィルタ170が算出したロボット先端48の速度

と、逆行列演算部172が算出した部分ヤコビ行列Jの逆行列J−1とに基づいて、数式6を用いて、ねじれ角速度

を算出する。
【数6】

【0058】
第2フィルタ176は、ねじれ角速度

に基づいて、リンク24〜28とモータ36〜40との間のねじれ角度α〜αを算出する。
【0059】
具体的には、第2フィルタ176は、ねじれ角速度

を積分することによってねじれ角度α〜αを算出する。
【0060】
補償量演算部178は、3つのモータ36〜40それぞれに対するモータ制御部80の制御入力に加算する補償量I〜Iを、第1の実施形態の補償量演算部78と同様に算出する。
【0061】
補償量演算部178が算出した補償量I〜Iそれぞれが対応するモータの制御入力に加算されることにより、3つのモータ36〜40それぞれが対応するリンクとの間のねじれが解消するように回転する。これにより、ロボット10の動作の停止直後において、3つのリンク24〜28の振動の発生が抑制される。
【0062】
本実施形態によれば、ロボット先端48の加速度を検出するために3軸センサを使用するので、6軸センサを使用する第1の実施形態に比べて経済的である。また、6行6列のヤコビ行列Jの部分行列Jを用いるので、第1の実施形態に比べて、必要となる演算量を大幅に削減できる。
【0063】
以上、2つの実施形態を挙げて本発明を説明したが、本発明は上述の2つの実施形態に限定されない。
【0064】
例えば、上述の実施形態の場合6関節のロボットであるが、本発明はこれに限らない。
【0065】
また、上述の実施形態の場合、図3(図6)に示すように、各モータの回転角度θ〜θ(θ〜θ)をヤコビ行列J(部分ヤコビ行列J)に代入してから逆行列J−1(J−1)を算出している。この代わりとして、予めヤコビ行列Jの逆行列J−1を(部分ヤコビ行列Jの逆行列J−1)求めておき、その逆行列J−1に各モータの回転角度θ〜θ(θ〜θ)を代入するようにしてもよい。
【符号の説明】
【0066】
24〜34 リンク
36〜46 モータ
52 加速度センサ(6軸センサ、3軸センサ)

【特許請求の範囲】
【請求項1】
複数のリンクと対応するリンクを駆動する複数のモータとを有するロボットの動作が停止するときに発生するロボット先端の振動を抑制するロボットの制振方法であって、
ロボット先端の加速度を加速度センサによって検出し、
加速度センサが検出した加速度に基づいてロボット先端の速度を算出し、
ロボット先端の速度と、加速度センサの加速度検出タイミングにおける複数のモータの回転角度と、ヤコビ行列の逆行列とに基づいて、各リンクと対応するモータとの間のねじれ角速度を算出し、
ねじれ角速度に基づいてねじれ角度を算出し、
ねじれ角速度とねじれ角度とに基づいて、各リンクと対応するモータとの間に発生したねじれが解消する、各モータの制御入力に加算する補償量を算出し、
補償量を加算した制御入力を各モータに出力することを特徴とするロボットの制振方法。
【請求項2】
複数のリンクと対応するリンクを駆動する複数のモータとを有するロボットの動作が停止するときに発生するロボット先端の振動を抑制することが可能なロボットの制御装置であって、
ロボットの外部に予め定義されたXYZ直交座標系と、
ロボット先端のX,Y,およびZ軸方向の加速度とX,Y,およびZ軸まわりの加速度とを検出する加速度センサと、
対応するモータの回転角度を検出する複数のエンコーダと、
加速度センサが検出した加速度に基づいてロボット先端の速度を算出する速度算出手段と、
速度算出手段が算出した速度と、加速度センサの加速度検出タイミングにおいて複数のエンコーダが検出した回転角度と、ヤコビ行列の逆行列とに基づいて、各リンクと対応するモータとの間のねじれ角速度を算出するねじれ角速度算出手段と、
ねじれ角速度算出手段が算出したねじれ角速度に基づいて、ねじれ角度を算出するねじれ角度算出手段と、
ねじれ角速度算出手段が算出したねじれ角速度と、ねじれ角度算出手段が算出したねじれ角度とに基づいて、各リンクと対応するモータとの間に発生したねじれが解消する、各モータの制御入力に加算する補償量を算出する補償量算出手段と、
補償量を加算した制御入力を各モータに出力するモータ制御手段とを有することを特徴とするロボットの制御装置。
【請求項3】
3つのリンクと対応するリンクを駆動する3つのモータとを有するロボットの動作が停止するときに発生するロボット先端の振動を抑制することが可能なロボットの制御装置であって、
ロボットの外部に予め定義されたXYZ直交座標系と、
ロボット先端のX,Y,およびZ軸方向の加速度を検出する加速度センサと、
対応するモータの回転角度を検出する複数のエンコーダと、
加速度センサが検出した加速度に基づいてロボット先端の速度を算出する速度算出手段と、
速度算出手段が算出した速度と、加速度センサの加速度検出タイミングにおいて複数のエンコーダが検出した回転角度と、ヤコビ行列の逆行列とに基づいて、各リンクと対応するモータとの間のねじれ角速度を算出するねじれ角速度算出手段と、
ねじれ角速度算出手段が算出したねじれ角速度に基づいてねじれ角度を算出するねじれ角度算出手段と、
ねじれ角速度算出手段が算出したねじれ角速度と、ねじれ角度算出手段が算出したねじれ角度とに基づいて、各リンクと対応するモータとの間に発生したねじれが解消する、各モータの制御入力に加算する補償量を算出する補償量算出手段と、
補償量を加算した制御入力を各モータに出力するモータ制御手段とを有することを特徴とするロボットの制御装置。
【請求項4】
ロボットは、複数のリンクと対応するリンクを駆動する複数のモータとを有し、
上記3つのリンクは、複数のリンクの一部であって、他のリンクに比べて長いことを特徴とする請求項3に記載のロボットの制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate