本発明は、関節に連結されたリンクを揺動させるロボットの制御装置に関する。
ロボットの制御装置は、関節角を所望の目標関節角に追従させるようにフィードバック制御を実行する。フィードバック制御を実行する制御器を本明細書ではフィードバック制御器と称する。さらに、記述を簡単にするために以下では、フィードバック制御器を「F制御器」と記述することがある。また以下では、実際の関節角を目標関節角と区別するために計測関節角と称する。
一般に、ロボットの応答速度は速い方が好ましい。ここで、応答速度とは、計測関節角が目標関節角に収束する速さを意味する。典型的なF制御器が例えば特許文献1に開示されている。
特開2000−6065号公報(例えば第5頁及び図1)
制御理論において、応答速度を向上させていくと計測関節角がオーバーシュートを生ずることは良く知られている。従って、オーバーシュートの抑制と応答速度の向上はトレードオフの関係にある。
他方、ロボットの関節には可動範囲が定められることがよくある。可動範囲は、ロボットの機構に起因して物理的に制限されることもあれば、ロボットの周辺に存在する他の物体との衝突を避けるために人為的に設定されることもある。可動範囲の境界付近ではオーバーシュートは抑制されることが好ましい。目標関節角が可動範囲内であってもオーバーシュートによって計測関節角が可動範囲を外れることが起こり得るからである。
前述したように、オーバーシュートの抑制と応答速度はトレードオフの関係にあるため、計測関節角が可動範囲を超えないようにオーバーシュートを抑制しようとすると応答速度が遅くなり、逆に応答速度を上げると計測関節角が可動範囲を超えてしまう虞がある。
本明細書が開示する一つの新規な技術は、可動範囲の境界付近でのオーバーシュートを抑制するとともに、可動範囲の境界付近以外では応答速度を向上させることのできる制御装置を提供する。
本発明は、可動範囲の境界付近でのオーバーシュートを抑制するとともに、可動範囲の境界付近以外では応答速度を向上させることのできるロボット制御装置を提供する。本明細書が開示する技術の一実施形態では、ロボット制御装置はF制御器(フィードバック制御器)と極配置器を備える。F制御器は、センサによって計測された計測関節角を目標関節角に追従させるフィードバック制御を実行するように構成されている。極配置器は、F制御器のパラメータを変更するように構成されている。また、極配置器は、予め定められた関節の可動範囲を、可動範囲の境界を含まない第1可動許容範囲と、第1可動許容範囲の外側に設定された第2可動許容範囲とに区分して記憶している。極配置器は、計測関節角が第1可動許容範囲内に存する場合は、特性多項式の根が複素根となるようにF制御器のパラメータを変更する。他方、極配置器は、計測関節角が第2可動許容範囲内に存する場合は、特性多項式の根が実根となるようにF制御器のパラメータを変更する。ここで、特性多項式とは、フィードバック制御器とロボットの機構系によって構成されるフィードバックループ系の閉ループ伝達関数の分母をラプラス演算子sの多項式で表した式を意味する。なお、以下では説明を理解し易くするために、「F制御器のパラメータを変更する」との表現に代えて「F制御器にパラメータを設定する」という表現を用いる場合がある。「従前のパラメータと異なるパラメータを設定する」ことと、「パラメータを変更する」ことは同義である。
特性多項式の根が複素根を有する場合、制御理論上はオーバーシュートを生ずるが応答速度を上げることができる。他方、特性多項式の根が実根を有する場合、制御理論上はオーバーシュートが生じない。本明細書が開示する技術によって実現されるロボット制御装置の一例は、予め定められた可動範囲の境界付近ではオーバーシュートを理論上は生じることがなく、境界から離れた範囲では応答速度を向上させることができる。なお、フィードバック制御が安定であることは前提なので、極配置器は、複素根と実根のいずれの場合も特性多項式の根の実部が0(ゼロ)よりも小さくなるように、F制御器のパラメータを設定(変更)することに留意されたい。
F制御器は、PI制御、PID制御、或いは最適制御など、様々な制御則に基づく制御器が採用され得る。従ってF制御器のパラメータも様々である。特性多項式の根を所望の値とするパラメータの具体的な設定方法も様々である。しかしながら、特性多項式の根が所望の値となるようにF制御器を設計することは良く行われることである。本発明の主たる技術的思想は、特性多項式の根を関節の可動範囲に応じて上記の通り変更することにあり、F制御器の具体的な制御則に依存しないことに留意されたい。
特性多項式が複素根を有するためのF制御器のパラメータ、及び、特性多項式が実根を有するためのパラメータは、ロボットの機構系の伝達関数とF制御器に採用される制御則の伝達関数に基づいて、予め定められ、極配置器に記憶されているとよい。或いは、極配置器は、ロボットの機構系の伝達関数を適応制御器によってリアルタイムに推定し、計測関節角に応じて特性多項式が所望の根を有するように、F制御器のパラメータをリアルタイムに決定することも好適である。
本明細書が開示する一つの新規な技術によれば、可動範囲の境界付近でのオーバーシュートを抑制するとともに、可動範囲の境界付近以外では応答速度を向上させることのできるロボット制御装置を実現することができる。
第1実施例のロボット制御装置のブロック図である。
ロボットの模式図である。
第1実施例の極配置器が実行する処理のフローチャート図である。
第2実施例のロボット制御装置のブロック図である。
第2実施例のロボット制御装置のシミュレーション結果を示すグラフである。
図面を参照して第1実施例のロボット制御装置を説明する。図1に、ロボット制御装置20のブロック図を示す。図2にロボット10の部分模式図を示す。ロボット10は、ロボット制御装置20の制御対象である。ロボット10は、複数のリンクが関節によって連結されている多関節ロボットである。なお、図2では、第1リンク11、第2リンク13、及びそれらのリンクを連結する関節12のみを示しており、他のリンクと関節の図示を省略している。関節12はモータを有しており、第2リンク13を第1リンク11に対して揺動させることができる。ロボット制御装置20は、関節12の関節角θsを目標関節角θrに追従させるフィードバック制御を実行する。なお、本実施例では、関節12の制御についてのみ説明するが、本実施例で説明する制御は、図示を省略している他の関節にも適用されることに留意されたい。
関節角θsは、関節12に備えられているエンコーダ(不図示)によって計測される。なお、目標関節角θrと区別するために、以下では、エンコーダによって計測される関節角θsを計測関節角θsと称する。目標関節角θrは、上位のコントローラ(不図示)から与えられる。
図1では、モータの動特性を含む関節12の機構系の伝達関数をP(s)で表している。図1において「s」はラプラス演算子を示している。以下、制御系に関する説明は周波数領域での表現で行う。「ラプラス演算子(ラプラス変換)」、「周波数領域での制御系の説明」は、制御理論の技術分野では良く知られているので基礎的な説明は省略する。
ロボット制御装置20は、F制御器(フィードバック制御器)22と極配置器24を備えている。フィードバック制御器22が、計測関節角θsを目標関節角θrに追従させるためのフィードバック制御を実行する。なお、図1では、F制御器22の伝達関数を「G(s)」で表している。伝達関数G(s)は、制御ルールによって様々な形式を取り得るが、全てラプラス演算子sの多項式の分数で表現できることに留意されたい。また、関節12の伝達関数P(s)もラプラス演算子sの多項式の分数で表現できることに留意されたい。
図1のフィードバック制御系において、目標関節角θrから計測関節角θsへの伝達特性(閉ループ伝達関数)は次の(数1)で表されることは良く知られている。
閉ループ伝達関数の分母はラプラス演算子sの多項式で表現することができる。この多項式(閉ループ伝達関数の分母)が、特定多項式と呼ばれている。さらに、特性多項式は、ラプラス演算子sに関して因数分解することができる。今、特性多項式がラプラス演算子sの2次式で表されるとすると、次の(数2)で表現できる。
(数2)のラプラス演算子sの根(即ち、特性多項式の根)は、次の(数3)で表される。
(数3)において、ωnは固有周波数を表す。jは虚数単位を表し、j2=−1である。また、(数3)において、ζは、閉ループ系の減衰係数を表し、正の実数である。ζ≧1のとき、(数3)のラプラス演算子sは実根となり、0<ζ<1のとき(数3)のラプラス演算子sは複素根となる。(数1)〜(数3)は、制御理論では良く知られている。なお、一巡伝達関数P(s)G(s)が3以上の次数を有する場合は後述の実施例にて説明する。
極配置器24は、F制御器22のパラメータを変更することによって、(数3)で与えられる閉ループ伝達関数の極を予め定められた値に設定する。図1のブロック図では、F制御器22を表す矩形を斜めに横切る矢印が、極配置器24がF制御器22のパラメータを変更し得ることを表している。別言すれば、極配置器24は、特性多項式αc(s)が所望の根を有するように、F制御器22の伝達関数G(s)を定めるパラメータを設定する。G(s)とP(s)の具体的な伝達関数は予め解っているので、特性多項式の根を予め定められた値とするための伝達関数G(s)のパラメータも予め定められることに留意されたい。
極配置器24は、計測関節角θsの値に応じて特性多項式の根が予め定められた値となるようにF制御器22のパラメータを変更する。その動作を説明する。極配置器24は、関節12の可動範囲を記憶している。「関節12の可動範囲」とは、関節12の計測関節角θsの取り得る範囲を意味する。図2に示すように、第2リンク13は、直線L1とL2で挟まれた角度範囲θaの範囲を動き得る。即ち、関節12の可動範囲が「θa」で表される。可動範囲θaは、ロボット10の機構的な制約で定まる場合もあれば、ユーザが人為的に定める場合もある。後者の場合は、例えば、第2リンク13が他の物体に衝突しない範囲に定められる場合に相当する。
直線L1とL2は、可動範囲θaの境界に相当する。極配置器24は、可動範囲θaを、可動範囲の境界L1及びL2を含まない第1可動許容範囲θcと、第1可動許容範囲θcの外側に設定された第2可動許容範囲θbとに区分して記憶している。第2可動許容範囲θbは、第1可動許容範囲θcの一方の境界と可動範囲θaの境界L1までの範囲、及び、第1可動許容範囲θcの他方の境界と可動範囲θaの境界L2までの範囲に相当する。
極配置器24が実行する処理のフローチャートを図3に示す。図3のフローチャートは、制御周期毎に実行される。極配置器24は、計測関節角θsが第1可動許容範囲θcの範囲内であるか否かを判断する(S2)。計測関節角θsが第1可動許容範囲θcの範囲内である場合(S2:YES)、極配置器24は、第1パラメータをF制御器22に設定する。ここで、第1パラメータは、特性多項式αc(s)が複素根を有するように定められている。特性多項式αc(s)の根の実部が負となるように定められている。これにより、図1のフィードバックループの安定性が補償される。
他方、計測関節角θsが第1可動許容範囲θcの範囲外である場合(S2:NO)、極配置器24は、第2パラメータをF制御器22に設定する。ここで、第2パラメータは、特性多項式αc(s)の根が実根を有するように定められている。なお、計測関節角θsが第1可動許容範囲θcの範囲外である場合は、計測関節角θsが第2可動許容範囲θbに属する場合に相当する。また、第2パラメータは、特性多項式αc(s)の根が負の実数となるように定められている。このとき、図1のフィードバックループの安定性が補償される。なお、ここでの説明は、連続時間系を前提としていることに留意されたい。
極配置器24の利点を説明する。特性多項式の根が複素根となる場合、制御理論上はオーバーシュートを生ずるが応答速度を上げることができる。他方、特性多項式の根が実根となる場合、制御理論上は応答速度は低下するがオーバーシュートを生じない。極配置器24は、計測関節角θsが第1可動許容範囲θc内の場合は関節12の制御応答速度を向上させ、可動範囲θaの境界付近の第2可動許容範囲θb内の場合は関節12のオーバーシュートを抑制する。極配置器24は、可動範囲θaの境界付近では関節動作のオーバシュートを抑制するとともに、可動範囲θaの境界から離れた範囲では関節動作の応答速度を(境界付近の応答速度に比べて)向上させる。即ち極配置器24を有するロボット制御装置20は、関節動作がオーバーシュートして可動範囲を超える、或いは可動範囲を規定するメカニカルストッパに第2リンク13が衝突することを防止する。同時にロボット制御装置20は、可動範囲の境界から離れた位置では関節12の応答速度を向上させることができる。
F制御器22は様々な制御則を採用し得る。様々な制御則には、例えば、F制御器22は、PI制御則、PID制御則、或いは最適制御則がある。F制御器22がどのような制御則を採用しようとも、F制御器22の特性はラプラス演算子sの多項式(即ち伝達関数G(s))で表される。F制御器22の特性は、伝達関数G(s)の多項式におけるラプラス演算子sの係数で定まる。従って、第1パラメータと第2パラメータは、伝達関数G(s)の多項式におけるラプラス演算子sの係数に対応する。即ち、別言すれば極配置器24は、特性多項式αc(s)が所望の根を有するように、F制御器22の伝達関数G(s)の多項式におけるラプラス演算子sの各次の係数を設定する。ラプラス演算子sの各次の係数(第1パラメータと第2パラメータ)は、F制御器22が採用する制御則と、ロボット10の機構系の伝達関数P(s)によって定まる。第1パラメータと第2パラメータの具体的な個数や値は、個々の具体的事例に応じて適宜に選定される。所望の極を実現するように制御器のパラメータを定めることは制御の技術分野では「極配置」或いは「極配置問題」と呼ばれている。
図4に、第2実施例のロボット制御装置100のブロック図を示す。ロボット103は、第1実施例のロボット10と同じである。即ち、本実施例でも1つの関節の制御についてのみ説明する。以下の説明は、他の関節の制御にも同様に適用可能であることに留意されたい。本実施例のロボットシステムは、指令発生器101が関節の目標関節角θrをF制御器102へ送る。F制御器102は、計測関節角θsが目標関節角θrに追従するようにロボット103の関節を駆動する。計測関節角θsは、関節に備えられた状態検出器105が計測する。
なお、より詳しくは、状態検出器105は、ロボット103のリンクの位置、速度、加速度(関節角、角速度、角加速度)などを検出する。F制御器102は、それらの検出値に基づいて、計測関節角θsを目標関節角θrに追従させるフィードバック制御を実行する。以下では、状態検出器105が検出する検出値群を「状態検出値」と総称する。
ロボット制御装置100は、制御調整器106を備える。制御調整器106は、状態検出値に基づいて関節の可動範囲の限界付近である保護範囲において、ロボット103が破損することなく安全に動作し、且つ、可動範囲の保護領域以外の部分である非保護範囲において柔軟に動作するように、F制御器102のパラメータを調整する。
制御調整器106は、機械定数記憶器107、理想応答記憶器108、極配置器109、制御パラメータ演算器110、及び、オーバーシュート抑制器111を備える。機械定数記憶器107は、ロボット103の機械定数を記憶し機械定数記憶値として出力する。理想応答記憶器108は、ロボット103の理想の応答である理想応答を記憶し理想応答記憶値として出力する。極配置器109は、前述した状態検出値と、機械定数記憶値と、理想応答記憶値に基づいて、ロボット103の関節が理想の応答をするように、F制御器102、ロボット103、状態検出器105を含む閉ループ系の極(フィードバックループの特性多項式の根)を演算し極演算値として出力する。制御パラメータ演算器110は、閉ループ系の極が出力された極演算値に配置されるようなF制御器102のパラメータである制御パラメータを演算し制御パラメータ演算値として出力する。オーバーシュート抑制器111は、制御パラメータ演算値の時間変化が急峻な場合に、その変化を滑らかにし、F制御器102のパラメータ変化時にロボット103の関節動作がオーバーシュートしないようにする。
ロボット103は、第1実施例と同様に図2のとおりにモデル化される。図2に示すように第2リンク13は第1リンク11を基準として関節12が有するモータにより駆動される。本実施例では、符号θbが示す範囲を保護範囲θbと別称する。保護範囲θbは、可動範囲θaの限界付近に設定されており、関節12を保護するようにF制御器102が制御する範囲である。また、符号θcが示す範囲を非保護範囲θcと別称する。非保護範囲θcは、第2リンク13の可動範囲θaのうち保護範囲θbでない部分である。保護範囲θbは、第1実施例の第2可動許容範囲θbに対応する。非保護範囲θcは、第1実施例の第1可動許容範囲θcに対応する。また、本実施例では、可動範囲θa以外の範囲を非可動範囲と称する。なお、以下の説明では、可動範囲θaは「0[rad]<θ≦π[rad]」に設定されており、非可動範囲は「π[rad]<θ≦2π[rad]」に設定されている。ここで、可動範囲と非可動範囲を表すθは、図2のθsと同様に、図2の図面上で第1リンク11を基準とし、反時計回りを正方向としている。
以下、本実施例に係る制御調整器106がオーバーシュート抑制制御パラメータ演算値を算出する仕組みの詳細を説明する。
まず、理想応答記憶器108が出力した理想応答記憶値に基づいて、極配置器109が極演算値を算出する原理を説明する。前述した閉ループ系の減衰係数をζ、固有周波数をωnで表すと、立ち上がり時間trは次の(数4)で表される。
一方、閉ループ系の不足減衰時(ζ<1)において閉ループ系の極sは次の(数5)で表される。なお、(数5)は前述した(数3)と同一である。
(数4)を固有周波数ω
nについて解き、(数5)に代入すると次の(数6)が得られる。
ここで、減衰係数ζは閉ループ系の応答の所望の収束率((数6)の実部の大きさ)に基づいて決定する。理想応答記憶器108が出力する理想応答が立ち上がり時間trで設定される場合、図2の非保護範囲θcにおいて極配置器109は(数6)により極演算値を算出する。
また、整定範囲をΔとすると整定時間tsは次の(数7)で表される。
(数7)を固有周波数ω
nについて解き(数5)に代入すると次の(数8)が得られる。
ここで、減衰係数ζは閉ループ系の応答の所望の収束率((数8)の実部の大きさ)に基づいて決定する。理想応答記憶器108が出力する理想応答が整定時間tsで設定される場合、図2の非保護範囲θcにおいて極配置器109は(数8)により極演算値を算出する。
(数9)を固有周波数ω
nについて解き、(数5)に代入すると次の(数10)が得られる。
ここで、減衰係数ζは閉ループ系の応答の所望の収束率((数10)の実部の大きさ)に基づいて決定する。理想応答記憶器108が出力する理想応答がピーク時間tpで設定される場合、図2の非保護範囲θcにおいて極配置器109は(数10)により極演算値を算出する。
また、オーバーシュートMpは次の(数11)で表される。
(数11)を減衰係数ζについて解き、(数5)に代入すると次の(数12)が得られる。
ここで、固有周波数ωnは閉ループ系の応答の所望の収束率((数12)の実部の大きさ)に基づいて決定する。理想応答記憶器108が出力する理想応答がオーバーシュートMpで設定される場合、図2の非保護範囲θcにおいて極配置器109は(数12)により極演算値を算出する。
また、保護範囲θbにおいて極配置器109は閉ループ系の応答が所望の収束率で安定となるような実数を極演算値に設定する。
次に、極配置器109が出力した極演算値に基づいて制御パラメータ演算器110が制御パラメータ演算値を算出する原理を説明する。図2の第2リンク13の重心周りの慣性モーメントをJ、第2リンク13の質量である第2リンク質量をm、第2リンク13の重心から関節12までの距離である第2リンク重心位置をl、関節12周りの粘性摩擦をD、第1リンク11に対する第2リンク13の角度である第2リンク角度をθs(計測関節角θs)とすると、第2リンク13の運動方程式は次の(数13)で表される。
ただし、(数13)において上に2つのドットを付したθsは角度θsの角加速度を表し、上に1つのドットを付したθsは角度θsの角速度を表す。また、dは関節12まわりのトルク外乱であり、Trefはトルク指令である。閉ループ系の特性多項式が2次となる制御則の例として、F制御器102が位置P速度P制御を実施する場合について説明する。位置比例制御ゲインをKp、速度比例制御ゲインをKvj、θrを位置指令(目標関節角θr)とすると、トルク指令Trefは次の(数14)で表される。
(数14)を(数13)に代入しラプラス変換すると閉ループ系の特性多項式は次の(数15)で与えられる。
(数15)の固有周波数ω
nと減衰係数ζは次の(数16)と(数17)で表される。
(数16)に(数17)を乗算し、速度比例制御ゲインKvjについて解くと次の(数18)が得られる。
(数18)を(数16)に代入し位置比例制御ゲインKpについて解くと次の(数19)が得られる。
ただし、前述した理想応答記憶値が立ち上がり時間trの場合、(数18)と(数19)の固有周波数ωnは立ち上がり時間trの関数である。理想応答記憶値が整定時間tsの場合、固有周波数ωnは整定時間tsの関数である。理想応答記憶値がピーク時間tpの場合、固有周波数ωnはピーク時間tpの関数である。理想応答記憶値がオーバーシュートMpの場合、減衰係数はオーバーシュートMpの関数である。
オーバーシュート抑制器111は、前述した制御パラメータ演算値の変化が急峻な場合、(数20)に示すようにローパスフィルタLPF(・)を適用することによりその変化を緩やかにしたオーバーシュート抑制制御パラメータ演算値Kを算出する。
(数20)のオーバーシュート抑制制御パラメータ演算値KをF制御器102に設定することにより、ロボット103は図2の保護範囲θbではオーバーシュートのない1次系の応答をする。このとき、第2リンク13が可動限界(図2の直線L1とL2が示す境界)に衝突することなく安全に動作し、非保護範囲θcではオーバーシュートは許容するがロボット103に理想の過渡応答特性を持つ動作をさせることができる。
本実施例では(数13)において閉ループ系の粘性摩擦Dのみを考慮したが、クーロン摩擦、バックラッシなど非線形ダイナミクスも摂動法を用いて線形部分を用いるか、エネルギー損失が同じとなる等価粘性摩擦を用いることにより(数13)と同じ式の形で表現することができ、上記と同じ手順によりロボット103の動作を制御できる。
上記の構成を備える本実施例のロボット制御装置100によれば、次の効果を奏することができる。
(1)本実施例では、ロボット103の可動範囲θaに保護範囲θbを設定し、保護範囲θbにおいて、F制御器102、ロボット103、状態検出器105を含む閉ループ系の極が実数となるように閉ループ系の極を配置し、可動範囲θaで保護範囲θb以外の部分である非保護範囲θcでは、ロボット103が理想の過渡応答特性を持つように閉ループ系の極を配置するので、第2リンク13が可動限界に衝突して関節12が故障することを防止でき、また非保護範囲θcではロボット103に求められる理想の動作を実現できる。
(2)本実施例では、制御パラメータ演算器110によって算出された制御パラメータ演算値の変化が急峻な場合、オーバーシュート抑制器111が制御パラメータ演算値にローパスフィルタを適用したオーバーシュート抑制制御パラメータ演算値をF制御器102に設定するので、第2リンク13が保護範囲θbと非保護範囲θcを行き来する時に、制御パラメータの切替による第2リンク13のオーバーシュートを抑制し、ロボット103を滑らかに動作させることができる。
次に、上記実施例の効果を実証する実験例(シミュレーション例)を示す。第2実施例のロボット制御装置100によってロボット103の関節を駆動するシミュレーションの結果を説明する。ここで、シミュレーションに用いた数値は以下のとおりである。
J=64.5×10−4[kg・m4];
m=1113.2×10−3[kg];
l=26.3×10−2[m];
Je=J+m・l2;
D=0.01[N・m・s/rad];
θp=π/5[rad];
T=1×10−3[s];
tr=0.1[s];
ζ=0.1;
Kp1=10[s−1];
Kvj1=Kp1・2π・Je;
ωr=2π/2.5[rad/s];
r=π/2―π/2・cos(ωr・t)[rad];
ただし、上記の左辺の記号の意味は次の通りである。
J:駆動リンク慣性モーメント
m:駆動リンク質量
l:駆動リンク重心位置
Je:第2リンク13の関節まわり慣性モーメント
D:第2リンク粘性摩擦
θp:保護範囲θbの大きさ
T:制御周期
tr:立ち上がり時間
ζ:減衰係数
Kp1:保護範囲θbにおける位置比例制御ゲイン
Kvj1:保護範囲θbにおける速度比例制御ゲイン
ωr:位置指令周波数
θr:位置指令(目標関節角)
本シミュレーションに用いた数値はR.F. Chandler, C.E. Clauser, J.T. McConville, H.M. Reynolds and J.W. Young, "Investigation of Inertial Properties of the Human Body", U.S. Department of Transportation, March 1975に紹介されている実測値を採用した。
極配置器109において(数6)を用いて極演算値を算出し、制御パラメータ演算器110において(数18)と(数19)を用いて制御パラメータ演算値(本実施例ではKp2、Kvj1とする)を算出した場合のシミュレーション結果を以下に説明する。
本シミュレーションにおいて、特許文献1の例として閉ループ系の極を実数とした場合と複素数とした場合の2つを第2実施例と比較する。ただし、実数の極は第2実施例における保護範囲θbで設定する極と同じにし、複素数の極は第2実施例における非保護範囲θcで設定する極と同じにする。また、位置指令θrは第2リンク13の可動範囲θaの半分を振幅とする正弦波とした。
図5は、第2実施例と特許文献1の比較シミュレーション結果を示すグラフである。図5において、細い実線は位置指令(目標関節角θr)、太い実線は第2実施例による関節12の計測関節角θs、太い破線は特許文献1において閉ループ系の極を実数とした場合の計測関節角θs、太い一点鎖線は特許文献1において閉ループ系の極を複素数とした場合の計測関節角θsを表す。
図5において、特許文献1で閉ループ系の極を実数とした場合(破線)はオーバーシュートしない(細い実線と交差しない)が、位置指令θrとの偏差がある。特許文献1で閉ループ系の極を複素数とした場合(一点鎖線)はπ[rad]となるまでは位置指令θrによく追従しているが、π[rad]で関節12が伸びきった状態(可動範囲θaの限界)に到達すると、第2リンク13はそれ以上回転できないため計測関節角θsは一定となっている。この期間、関節12がそれ以上回転できない方向に無理なトルクが加わり続けることとなり、関節12の減速機の破損の原因となる可能性がある。
一方、第2実施例のロボット制御装置100を用いた場合(太い実線)は保護範囲(0≦θ<π/5 と4π/5≦θ≦π[rad])において、計測関節角度θsがオーバーシュートせず可動範囲θaの限界に衝突することなく、また、非保護範囲(π/5≦θ<4π/5)において、計測関節角θsはオーバーシュートするが位置指令θrに対する追従偏差は小さいことが分かる。また、非保護範囲θcでは制御ゲインが比較的低い設定となるので、ロボット103は柔軟な動作をすることができる。
閉ループ系の特性多項式が3次となる制御則の例としてF制御器102が位置P速度PI制御を実施する場合について説明する。
本実施例においても、計測関節角をθs、位置指令(目標関節角)をθrで表現する。トルク指令Trefは次の(数21)で表される。
だたし、Kpは位置比例制御ゲイン、Kvjは速度比例制御ゲイン、Tiは速度制御積分時定数である。(数21)を(数13)に代入し、ラプラス変換を適用すると閉ループ系の特性多項式は(数22)で与えられる。
一方、極演算値を根とする多項式は一般に(数23)で表される。
ただし「−a」は閉ループ系の実根であり、「a」で表されるモードが第2リンク13の所望の動作に対して十分に速い応答をするように設定する。
(数22)と(数23)の係数比較により(数24)から(数26)の関係が得られる。
(数24)を速度制御積分時定数Tiについて解き、(数25)に代入し、(数26)を使って書き直すと次の(数27)が得られる。
(数27)を速度比例制御ゲインKvjについて解くと次の(数28)が得られる。
速度制御積分時定数Tiは、(数24)に(数28)を代入して次の(数29)で求められる。
位置比例制御ゲインKpは(数26)に(数28)を代入して次の(数30)で求められる。
制御パラメータ演算器110は保護範囲θbにおいて(数28)から(数30)により制御パラメータ演算値を算出する。オーバーシュート抑制器111の動作は第2実施例の場合と同じであるので、ここではその説明を省略する。
本実施例では閉ループ系の特性多項式が3次となる制御則の例として位置P速度PI制御を用いて説明したが、位置P速度I−P制御を用いても閉ループ系の特性多項式は(数22)と同じになり、制御パラメータ演算器110は(数28)から(数30)により制御パラメータ演算値を算出する。
また、一般的に制御則が積分器(1/s)を一つ持つ制御則を適用すると閉ループ系の特性多項式が3次となり上記と同様の方法により制御パラメータ演算値を算出できる。
このような構成を備える第3実施例によれば、次の効果を奏することができる。
(1)本実施例では、F制御器102に使用する制御則が積分器を1つ備える場合にも、閉ループ系の極のうち2つがロボット103の動作を支配するように設定するので、第2リンク13が可動限界(可動範囲の境界)に衝突して関節12が故障することを防止できる。また本実施例のロボット制御装置100によれば、非保護範囲ではロボット103に求められる理想の動作を実現できる。
(2)本実施例では、制御パラメータ演算器110が制御パラメータ演算値を簡単な計算式により算出するので、計算負荷が小さく、安価なCPU(central processing unit)を搭載した制御調整器106のみで、第2リンク13が可動限界に衝突して関節12が故障することを防止できる。また本実施例のロボット制御装置100によれば、非保護範囲ではロボット103に求められる理想の動作を実現できる。
第2実施例と第3実施例では、閉ループ系の特性多項式がラプラス変数sについて2次と3次の多項式で表される場合について説明した。本実施例では特性多項式が4次以上の場合について説明する。特性多項式がn次(n≧4)である場合、閉ループ系の特性多項式は(数31)のように表される。
ただし「−a」は閉ループ系の実根であり、aで表されるモードが第2リンク13の所望の動作に対して十分に速い応答をするように設定する。制御パラメータ演算器110は保護範囲において、(数31)を展開した多項式と、採用した制御則の制御ゲインの関数を係数とする閉ループ系の特性多項式の係数比較により、制御パラメータ演算値を算出する。
このような構成を備える本実施例によれば、次の効果を奏することができる。
(1)本実施例では、F制御器102に使用する制御則が積分器を複数備える場合にも、閉ループ系の極のうち2つがロボット103の動作を支配するように設定するので、第2リンク13が可動限界に衝突して関節12が故障することを防止できる。また本実施例のロボット制御装置100によれば、非保護範囲ではロボット103に求められる理想の動作を実現できる。
(2)本実施例では、制御パラメータ演算器110が制御パラメータ演算値を簡単な計算式により算出するので、計算負荷が小さく、安価なCPU(central processing unit)を搭載した制御調整器106のみで、第2リンク13が可動限界に衝突して関節12が故障することを防止できる。また、本実施例のロボット制御装置100によれば、非保護範囲ではロボット103に求められる理想の動作を実現できる。
本明細書が開示する一つの技術によれば、第2リンク13が可動限界(可動範囲の境界)に衝突せず関節12が故障することを防止でき、また非保護範囲ではロボットに求められる理想の動作を、安価なCPUで実現できる制御調整器106を備えたロボット制御装置を提供することができる。
実施例で説明したロボット制御装置の技術的特徴を整理する。本明細書が開示する技術は、一実施形態として、次のロボット制御装置を提供することができる。ロボット制御装置は、複数のリンクを備えるロボットの動作を制御するF制御器とそのF制御器のパラメータを調整する制御調整器を備える。その制御調整器は、機械定数記憶器、理想応答記憶器、極配置器、制御パラメータ演算器、及び、オーバーシュート抑制器を含む。
機械定数記憶器は、ロボットの機械定数を記憶し機械定数記憶値として出力する。理想応答記憶器は、ロボットの所望の応答を記憶し理想応答記憶値として出力する。極配置器は、ロボットの各リンクの位置、速度、加速度などの状態の検出値である状態検出値と、機械定数記憶値と、理想応答記憶値とに基づいて、F制御器と、ロボットと、前述の状態を検出する状態検出器とを含む閉ループ系の極を演算し極演算値として出力する。制御パラメータ演算器は、閉ループ系の極が前述の極演算値に一致するようなF制御器のパラメータを演算し、制御パラメータ演算値として出力する。オーバーシュート抑制器は、制御パラメータ演算値が急峻に変化した場合にロボットの動作がオーバーシュートしないように制御パラメータ演算値の変化を滑らかにし、オーバーシュート抑制制御パラメータ演算値としてF制御器に出力する。
上記のロボット制御装置において、機械定数記憶値は、ロボットの各リンクの慣性モーメントと質量とすることが好ましい。また、機械定数記憶値は、ロボットの各関節の粘性摩擦とすることが好ましい。また、機械定数記憶値は、ロボットの各関節のクーロン摩擦とすることが好ましい。また、機械定数記憶値は、ロボットの各関節を駆動するモータに連結した減速機のバックラッシとすることが好ましい。
また、理想応答記憶値は、ロボットの過渡応答とすることが好ましい。その過渡応答は、立ち上がり時間とすることが好ましい。また、過渡応答は、整定時間とすることが好ましい。さらに過渡応答は、ピーク時間とすることが好ましい。あるいは過渡応答は、オーバーシュートとすることが好ましい。
上記のロボット制御装置の極配置器は、ロボットの動作は保護範囲ではオーバーシュートせず、非保護範囲ではロボットの動作は理想の過渡特性を持つように極演算値を算出することが好ましい。或いは極配置器は、保護範囲において極演算値を実数に設定し、非保護範囲において極演算値を複素数に設定することが好ましい。
さらに極配置器は、非保護範囲において極演算値のうち2つを前述の(数6)で算出することが好ましい。あるいは極配置器は、非保護範囲において極演算値のうち2つを前述の(数8)で算出することが好ましい。また極配置器は、非保護範囲において極演算値のうち2つを前述の(数10)で算出することが好ましい。極配置器は、非保護範囲において極演算値のうち2つを前述の(数12)で算出してもよい。極配置器は、非保護範囲において極演算値のうち1組の複素共役極を除く残りの極を、複素共役極よりも十分に早く収束する実数極に設定してもよい。
また、上記のロボット制御装置の制御パラメータ演算器は、保護範囲と非保護範囲において異なる制御パラメータ演算値を出力することが好ましい。なお、ロボット制御装置のF制御器は、位置P速度P制御によりロボットの動作を制御してもよい。制御パラメータ演算器は、前述した(数18)と(数19)により制御パラメータ演算値を算出することも好適である。
また、F制御器は、位置P速度PI制御によりロボットの動作を制御するものであってもよい。このとき、制御パラメータ演算器は、前述の(数27)〜(数30)により制御パラメータ演算値を算出することが好ましい。また、F制御器は、位置P速度I−P制御によりロボットの動作を制御するものであってもよい。
また、制御パラメータ演算器は、閉ループ系の特性多項式が前述の(数31)となるように保護範囲における制御パラメータ演算値を算出することも好適である。
また、オーバーシュート抑制器は、数式:K=LPF(K0)によりオーバーシュート抑制制御パラメータ演算値Kを算出することも好適である。ここで、K0は前記制御パラメータ演算値のベクトルであり、LPF(・)はローパスフィルタを表す。
上記したロボット制御装置は、複数のリンクを備え使用者の動作を補助するロボットスーツのための制御装置に適用することも好適である。そのロボット制御装置は、ロボットスーツの動作を制御するF制御器と、F制御器のパラメータを調整する制御調整器を備える。
制御調整器は、機械定数記憶器、理想応答記憶器、極配置器、制御パラメータ演算器、及び、オーバーシュート抑制器を備える。機械定数記憶器は、ロボットスーツの機械定数を記憶し機械定数記憶値として出力する。理想応答記憶器は、ロボットスーツの所望の応答を記憶し理想応答記憶値として出力する。極配置器は、ロボットスーツの各リンクの位置、速度、加速度などの状態の検出値である状態検出値と、機械定数記憶値と、理想応答記憶値とに基づいて、F制御器と、ロボットスーツと、前述の状態を検出する状態検出器とを含む閉ループ系の極を演算し極演算値として出力する。制御パラメータ演算器は、閉ループ系の極が極演算値に一致するようなF制御器のパラメータを演算し、制御パラメータ演算値として出力する。オーバーシュート抑制器は、制御パラメータ演算値が急峻に変化した場合にロボットスーツの動作がオーバーシュートしないように制御パラメータ演算値の変化を滑らかにし、オーバーシュート抑制制御パラメータ演算値としてF制御器102に出力する。
ロボット制御装置が対象とするロボットスーツは、使用者の腕の動作を補助するものであってよい。あるいはロボットスーツは、使用者の体幹の動作を補助するものであってよい。
ロボットスーツのためのロボット制御装置において、極配置器は、ロボットスーツの動作は保護範囲ではオーバーシュートせず、非保護範囲ではロボットスーツの動作は理想の過渡特性を持つように極演算値を算出することが好ましい。また、極配置器は、保護範囲において極演算値を実数に設定し、非保護範囲において極演算値を複素数に設定することも好適である。
本明細書が開示する新規な技術は、第2リンク13が可動限界に衝突して関節12が故障することを防止できるロボット制御装置を提供する。またそのようなロボット制御装置は、非保護範囲ではロボット103に求められる理想の動作を、安価なCPUで実現できる。本明細書が開示する新規な技術は、歩行補助装置などのロボットスーツ、脚部を備える自律移動ロボット、アームを備える介護ロボット、複数のリンクを備える産業用ロボットなどに広く適用できる。
実施例のコントローラに関する留意点を述べる。実施例ではロボットの伝達特性とF制御器の伝達関数の具体的なコンフィグレーションは示さなかった。しかし実施例で説明した技術は様々な形の伝達特性や伝達関数に適用できることに留意されたい。伝達関数や伝達特性がどのようなコンフィグレーションであってもそれらはラプラス演算子sの多項式の分数で表され、フィードバックループの特性多項式の根によって制御特性がオーバーシュートを生じるか否かが決定されることはよく知られている。従って、本明細書に接した当業者であれば、具体的な適用例に応じて、極配置器がF制御器のパラメータを具体的にどのように設定すれば本明細書が開示する利点を得られるかは十分に理解される。なお、F制御器のパラメータは、F制御器の伝達関数G(s)の多項式におけるラプラス演算子sの係数に相当する。
実施例では1個の関節の制御系についてのみ説明した。本明細が開示する技術は複数の関節のそれぞれに適用できることに留意されたい。
ロボットの機械系の伝達特性P(s)は、例えば良く知られたオブザーバなどによってリアルタイムに推定することもできる。またF制御器も、例えば良く知られた適応制御によってリアルタイムに変更され得る制御システムである可能性がある。そのような場合、極配置器は、リアルタイムに特定されるP(s)やG(s)のコンフィグレーションに応じて、特性多項式の根を実根或いは複素根に設定するためのF制御器のパラメータをリアルタイムに決定することも好適である。
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
10、103:ロボット
11:第1リンク
12:関節
13:第2リンク
22、102:フィードバック制御器
24:極配置器
20、100:ロボット制御装置
101:指令発生器
105:状態検出器
106:制御調整器
107:機械定数記憶器
108:理想応答記憶器
109:極配置器
110:制御パラメータ演算器
111:オーバーシュート抑制器