説明

ロボットの安定化制御装置

【課題】 台車移動型ロボットの転倒を防止しながらアクチュエータを駆動するに当たり、計算量を少なくするとともに、アクチュエータの作動を少なくすることによってマニピュレータにおける無駄なエネルギーを消費しないようにしたロボットの安定化制御装置を提供する。
【解決手段】 安定化制御装置1は、ロボット4の挙動に基づいて、ZMP算出部11で実ZMPを求める。また、ZMP比較部13で、起立状態が不安定となるとして予め記憶したZMP限界値と実ZMPとを比較する。目標角度算出部14では、実ZMPおよびZMP限界値の比較結果に基づいて、ロボット4のZMPの目標変化分を設定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、台車に搭載されたマニピュレータを有するロボットの安定化制御装置に係り、特に、ZMPを安定性判別の規範として台車移動型ロボットを安定化制御するロボットの安定化制御装置に関する。
【背景技術】
【0002】
従来、ロボットとしてはたとえば工場などに固定して設けられるもののほか、移動可能とされたロボットもある。移動可能なロボットとして、たとえば、台車に搭載されたマニピュレータを有する台車移動型ロボットや二足歩行型ロボットなどがある。移動可能なロボットでは、ロボットが移動し、または作業等することによって転倒することが懸念される。移動可能なロボットの転倒を防止するため、二足歩行型ロボットの歩行制御において、ZMP規範が知られている
ZMP(Zero Moment Point)とは、ロボットが位置する床面上において、このロボットの各部材の重力によるモーメントと慣性力によるモーメントと(もし外力が作用していれば、さらに外力によるモーメントと)の総和がゼロとなる点のことである。ZMP規範とは、このZMPがロボットの接地面が形成する支持多角形(安定領域と呼ばれる)の辺上または内部にあればロボットは転倒せずに安定に移動することが可能であるとする規範である。このようなZMP規範は、二足歩行ロボットのほか、台車移動型ロボットに対しても有効なものである。
【0003】
このようなZMP規範を利用する技術として、特開2001−277158号公報(特許文献1)に開示された脚式ロボットの動作制御システムがある。この動作制御システムは、まず、ロボットの動作を生成するために、事前に目標ZMP軌道を計画する。次に、ロボットの運動時に、ロボットの運動と床反力との関係を示す動力学モデルを用いて実ZMPを算出する。続いて、実ZMPを目標ZMPに追従させるために、算出された実ZMPと目標ZMPとの差に基づいて、ロボットの状態を補正するというものである。
【0004】
また、下記非特許文献1に開示された技術がある。この技術は、マニピュレータの機能を拡張するために、移動機構(ヴィークル)を設けたものに関するものであり、ヴィークル搭載型マニピュレータの安定化運動を実現するために、まず、ZMP規範を用いた安定度および有効安定領域といった安定性を図っている。その安定性維持と安定性回復の制御方策として、安定性のポテンシャル場を用いてZMP軌道を導出し、このZMP軌道に基づく安定化制御を行うというものである。
【0005】
さらに、下記非特許文献2に開示された技術がある。この技術は、やはりヴィークルを設けたものであり、ロボットの転倒防止のために、定重心安定制御を行うものである、定重心安定制御を行うことにより、ロボットの転倒を効果的に防止している。
【特許文献1】特開2001−277158号公報
【非特許文献1】ヴィークル搭載型マニュピレータの安定化制御−安定規範とマニュピレータによる補償運動− 黄強,菅野重樹,加藤一郎 計測自動制御学会論文集Vol.31,No.7,861〜870ページ 1995年7月
【非特許文献2】マン・ロボット強調作業型マニピュレータの基礎的研究「第三報、マニピュレータ/ヴィークルシステムの定重心制御」 日本機械学会論文集C、Vol.58,No.551,2152〜2158ページ
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、上記特許文献1に開示された技術では、ランダムに作成された目標ZMPに実ZMPを追従させているため、関節を駆動するアクチュエータが常時働くことになるので、エネルギーの消耗が多い。さらには、アクチュエータを頻繁に正負方向に移動させることから、アクチュエータの寿命を短くするという問題がある。
【0007】
また、上記非特許文献1に開示された技術では、上記特許文献1で掲げた問題点のほか、ZMPの軌道を求めるために、非線形微分方程式を解くことが必要となるので、計算量が多くなり、ロボットへの実装が難しくなるという問題がある。
【0008】
さらに、上記非特許文献2に開示された技術では、マニピュレータ/ヴィークルシステムの重心を一定にするため、ヴィークルの移動加速度の増減に伴って、マニピュレータの姿勢を常時調整することが必要となる。したがって、アクチュエータが常時働くことになるので、エネルギー消費が大きくなってしまうという問題もあった。
【0009】
そこで、本発明の課題は、ロボットの転倒を防止しながらアクチュエータを駆動するに当たり、計算量を少なくするとともに、アクチュエータの作動を少なくすることによってマニピュレータにおける無駄なエネルギーを消費しないようにしたロボットの安定化制御装置を提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決した本発明に係るロボットの安定化制御装置は、台車に搭載されたマニピュレータを有する台車移動型ロボットの安定化制御を行うロボットの安定化制御装置であって、台車移動型ロボットの挙動に基づいて求められる実ZMPと台車移動型ロボットの起立状態が不安定となるZMP限界値とを比較し、実ZMPおよびZMP限界値に基づいて、台車移動型ロボットのZMPの目標変化分を設定するものである。
【0011】
本発明に係る安定化制御装置においては、台車移動型ロボットの起立状態が不安定となるZMP限界値と実ZMPとを比較して、ZMPの目標変化分を設定している。仮に、実ZMPが安定領域内にあると、ZMPの目標変化分を0に設定している。このため、アクチュエータの作動を少なくするとともに、マニピュレータにおける無駄なエネルギー消費を防止することができる。また、非線形微分方程式を解く必要もないので、計算量が増大することもないようにすることができる。さらに、アクチュエータを頻繁に正負方向に動作させることもないので、アクチュエータの寿命の低下を防止することができる。
【0012】
ここで、台車は、3点以上の複数の接地点を有しており、複数の接地点で囲まれた領域の境界線に対応してZMP限界値が設定される態様とすることができる。
【0013】
このように、3点以上の複数の接地点で囲まれた領域の境界線に対応してZMP限界値が設定されることにより、台車移動型ロボットが安定となる状態を確実に維持することができる。
【0014】
さらに、台車移動型ロボットにおける台車の移動速度が0である場合に、ZMP限界値を0に設定する態様とすることができる。
【0015】
このように、台車移動速度が0である場合にZMP限界値を0に設定することにより、台車移動型ロボットの最終姿勢を直立状態とすることができる。
【0016】
また、マニピュレータは、複数のリンクと、複数のリンクを接続する関節とを有しており、台車移動型ロボットにおけるZMPの変化分とマニピュレータにおける関節角度の変化分とを関係づけるZMPヤコビアン行列を用いて、ZMPから関節における関節角度を算出する態様とすることもできる。
【0017】
このように、ZMPに対応するZMPヤコビアン行列を用いて、ZMPから関節における関節角度を算出することにより、関節角度を容易に算出することができる。
【発明の効果】
【0018】
本発明に係るロボットの安定化制御装置によれば、ロボットの転倒を防止しながらアクチュエータを駆動するに当たり、計算量を少なくするとともに、アクチュエータの作動を少なくすることによってマニピュレータおける無駄なエネルギーを消費しないようにすることができる。
【発明を実施するための最良の形態】
【0019】

以下、図面を参照して本発明の実施形態について説明する。以下の各実施形態において、同一の機能を有するものについては同一の番号を付し、重複する説明は省略することがある。図1は、本発明の第一の実施形態に係るロボットの安定化制御装置のブロック構成図である。
【0020】
図1に示すように、本実施形態に係る安定化制御装置1は、実ZMP算出部11、ZMP限界値設定部12、ZMP比較部13、および目標角速度算出部14を備えている。また、安定化制御装置1には、角度センサ2および加速度センサ3が接続されており、さらに、ロボット4におけるマニピュレータ5が接続されている。この安定化制御装置1によって、ロボット4におけるマニピュレータ5の関節角度を調節する。
【0021】
安定化制御装置1によって制御されるロボット4について、図2を参照して説明する。図2に示すように、ロボット4は、台車6を有し、台車6の上にマニピュレータ5が設けられている、いわゆる台車移動型ロボットである。台車6には、4つの車輪6Aが取り付けられており、この車輪6Aが回転することによって、台車6が走行移動する。
【0022】
また、マニピュレータ5は、第一リンク5A、第二リンク5B、およびハンド部材5Cを備えている。第一リンク5Aにおける一端部は、台車6に対して回転可能に取り付けられており、第一リンク5Aの他端部には、第二リンク5Bの一端部が回転可能に取り付けられている。また、第二リンク5Bの他端部には、ハンド部材5Cが固定されている。
【0023】
図1に示す角度センサ2は、ロボット4におけるマニピュレータ5に取り付けられており、台車6と第一リンク5Aとがなす第一関節角度θ1および第一リンク5Aと第二リンク5Bとがなす第二関節角度θ2を検出している。角度センサ2は、検出した第一関節角度θ1および第二関節角度θ2を安定化制御装置1における実ZMP算出部11に出力している。
【0024】
また、加速度センサ3は、たとえばロボット4における台車6に取り付けられたエンコーダなどからなり、台車6の走行加速度を検出している。この加速度センサ3は、検出した台車6の加速度を安定化制御装置1における実ZMP算出部11に出力している。
【0025】
安定化制御装置1における実ZMP算出部11は、角度センサ2から出力されたマニピュレータ5における関節角度θ1,θ2、加速度センサ3から出力された台車6の加速度情報に基づいて、実ZMPを算出する。また、実ZMP算出部11は、算出した実ZMPをZMP比較部13に出力する。
【0026】
ZMP限界値設定部12は、予め記憶している台車6の寸法や環境外乱に基づいてZMP限界値を設定する。ZMP限界値設定部12は、設定したZMP限界値をZMP比較部13に出力する。なお、ZMP限界値を設定するにあたり、図示しないカメラなどを用いてロボット4の周囲を撮像し、撮像した画像を画像処理して得られる走路の傾斜などの周辺情報を加味して、ZMP限界値を設定することもできる。
【0027】
ZMP比較部13は、実ZMP算出部11から出力された実ZMPとZMP限界値設定部12から出力されたZMP限界値とを比較し、ZMPが安定領域にあるか否かを判断し、その判断結果に基づいてZMPの変化分(目標変化分)Δxzmpを算出する。ZMP比較部13は、算出したZMPの変化分Δxzmpを目標角速度算出部14に出力する。
【0028】
目標角速度算出部14は、ZMP比較部13から出力されたZMPの変化分Δxzmpに基づいて、マニピュレータ5の関節角度θ1,θ2を算出する。目標角速度算出部14は、算出した関節角度θ1,θ2をマニピュレータ5に出力し、マニピュレータ5の関節角度を調整する。
【0029】
以上の構成を有する本実施形態に係る安定化制御装置における制御手順について説明する。図3は、本実施形態に係る安定化制御の手順を示すフローチャート、図4は、ロボットの安定化制御系のブロック線図である。ここでは、ロボット4がx方向に沿って走行し、ロボット4がx方向に転倒するのを防止する例について説明する。
【0030】
安定化制御を開始すると、最初に、角度センサ2によってロボット4から検出され、角度センサ2から出力された関節角度θ1,θ2を入力し(S1)、加速度センサ3によってロボット4から検出され、加速度センサ3から出力された台車6の加速度を入力する(S2)。
【0031】
続いて、x方向のZMPの変化分Δxzmpを算出する(S3)。x方向のZMPの変化分Δxzmpを算出するにあたり、ZMPについて説明すると、ZMPは、床面においてロボット4の各部の重力によるモーメント、慣性力によるモーメント、および外力によるモーメントの総和が0となる点である。いま、図5に示すように、重力、慣性力、および外力の合力が下向きであり、かつ台車の各車輪6Aの接地点からなり3点以上の複数である4点の接地点が形成する支持多角形9A(この支持多角形内の領域を「安定領域」という)内にZMPが存在すれば、ロボットは転倒することなく安定して運動することができる。一方、ZMPが安定領域内に存在しなければ、ロボット4は不安定となり、理論上転倒することになる。
【0032】
そこで、マニピュレータ5を動かしたとしてもZMPが安定領域内に存在することになるようにするため、関節角度θ1,θ2および台車加速度αを用いてZMPの変化分Δxzmpを求めて、その変化分Δxzmpに基づいて、目標関節角速度を算出する。この目標関節角速度から関節角度が定められる。ZMPの変化分Δxzmpの算出は、図6に示すフローに従って行われる。図6は、ZMPの変化分Δxzmpを算出する手順を示すフローチャートである。
【0033】
図6に示すように、ZMPの変化分Δxzmpを算出する際には、まず、ZMPの限界値xzmp_mを設定する(S11)。ZMPの限界値xzmp_mは、ZMP限界値設定部12に記憶されているZMP限界値を読み出すことによって設定される。次に、実ZMPの位置xzmpを算出する(S12)。実ZMPの位置xzmpは、実ZMP算出部11において、角度センサ2から出力された関節角度θ1,θ2および加速度センサ3から出力された台車6の加速度αに基づいて算出する。
【0034】
実ZMPを算出するにあたり、x方向における関節角度θ1,θ2、台車加速度α、およびロボット4のZMPの位置xzmpの関係は、下記(1)式で表される。
【0035】
【数1】

上記(1)式にステップS1で入力された関節角度θ1,θ2およびステップS2で入力された台車の加速度αを代入することにより、上記(1)式を変形した下記(2)式に基づいて実ZMPの位置xzmpの位置を算出することができる。
【0036】
【数2】

ロボット4には、台車6の加速度の増減によって生じる慣性力が作用しているため、台車加速度の変化に伴い、ZMPの位置が変動している。ここで、ZMPが安定領域内に存在すれば、ロボット4は転倒しないので、安定化のための補正等を行う必要はない。一方、ZMPが安定領域を外れると、ロボットは不安定となり、安定化のための補正を行う必要が生じる。
【0037】
そこで、実ZMPの位置xzmpを算出したら、実ZMPの位置xzmpが安定領域内にあるか否かの判断を行う。そのため、まず、実ZMPの位置xzmpがx方向に正のZMP限界値xzmp_m以下となっているか否かを判断する(S13)。その結果、実ZMPの位置xzmpがx方向に正のZMP限界値xzmp_m以下となってないと判断した場合には、実ZMPの位置xzmpが図5に示す安定領域9Aから外れていると考えられる。このままマニピュレータ5を駆動すると、理論上は実ZMPの位置xzmpが安定領域から外れてロボット4が転倒することになる。
【0038】
そこで、この場合には、ZMPの変化分Δxzmpを下記(3)式によって求める(S14)。
【0039】
Δxzmp=xzmp_m−xzmp ・・・(3)
この(3)式からΔxzmpを求めることにより、マニピュレータ5を動かした後であっても、ロボット4のZMPは安定領域内に位置することになるため、ロボット4の転倒を防止することができる。
【0040】
一方、実ZMPの位置xzmpがx方向に正のZMP限界値xzmp_m以下となっていると判断した場合には、実ZMPの位置xzmpがx方向に負のZMP限界値−xzmp_m以上となっているか否かを判断する(S15)。その結果、実ZMPの位置xzmpがx方向に負のZMP限界値−xzmp_m以下となってないと判断した場合には、実ZMPの位置xzmpが図5に示す安定領域9Aから外れていると考えられる。このままマニピュレータ5を駆動すると、理論上は実ZMPの位置xzmpが安定領域から外れてロボット4が転倒することになる。
【0041】
そこで、この場合には、ZMPの変化分Δxzmpを下記(4)式によって求める(S16)。
【0042】
Δxzmp=−xzmp−xzmp_m ・・・(4)
この(4)式からΔxzmpを求めることにより、マニピュレータ5を動かした後であっても、ロボット4のZMPは安定領域内に位置することになるため、ロボット4の転倒を防止することができる。
【0043】
一方、実ZMPの位置xzmpがx方向に負のZMP限界値−xzmp_m以上となっていると判断した場合には、実ZMPの位置xzmpが安定領域9A内にあると考えられる。この場合には、ロボット4は安定しており、転倒の危険性が少なくなっているので、Δxzmp=0に設定する(S17)。このようにして、Δxzmpを設定する。
【0044】
このように、実ZMPの位置xzmpとZMP限界値xzmp_mとを比較し、その比較結果に基づいてZMPの変化分Δxzmpを求めることにより、ZMPが安定領域内に存在することになるようにすることができる。したがって、ロボットの転倒を防止することができる。
【0045】
こうしてZMPの変化分Δxzmpを算出したら、図3に示すフローに戻り、目標関節角を算出する(S4)。目標関節角速度を算出する際には、ステップS3で求めたΔxzmpに調節用の係数Kを乗じる。それから、係数Kを乗じたZMPの変化分Δxzmpと、関節角度の変化分を関係づけるZMPヤコビアン行列(ヤコビ行列)を用いて目標関節角速度を算出する。本実施形態では、ロボットの制御系として速度制御モードを採用しており、ZMPの速度vxzmpと関節角速度vθとの関係は、下記(5)式より求められる。
【0046】
vxzmp=Jzmpvθ ・・・(5)
ここで、JzmpはZMPヤコビアン行列、vθは[vθ,vθである。
【0047】
また、Jzmpの擬似逆行列をJzmpとすると、慣性座標系から見た関節角速度vθは、下記(6)式によって算出することができる。
【0048】
vθ=Jzmp・vxzmp ・・・(6)
この(6)式を用いて、ロボット4におけるマニピュレータ5の目標関節角速度vθrefを算出する(S4)。この目標関節角速度vθrefをロボット4に出力して(S5)、ロボット4におけるマニピュレータ5における各関節の角速度の制御を行う。この制御では、現在のマニピュレータ5における各関節の角速度vθをフィードバックし、目標関節角速度vθrefを加算するフィードバック制御を行う。
【0049】
このように、本実施形態に係る安定化制御装置では、マニピュレータ5を駆動した後のZMPの位置xzmpが安定領域にある場合には、ZMPの変化分Δxzmpを変えず、ZMPの位置xzmpが安定領域から外れる場合にのみZMPの変化分Δxzmpを調整するようにしている。このため、実ZMPを目標ZMPに追従させる場合と比較すると、その計算量を削減することができる。また、マニピュレータ5を頻繁に動作させることを回避することができるので、エネルギー消費の少ない安定化制御を行うことができる。特に、台車移動加速度が不安定となる限界値の上下にZMPが脈動する場合にマニピュレータ5の頻繁な動作を防止することができる。さらに、マニピュレータ5を頻繁に正負に動作させることを回避することができるので、アクチュエータの寿命の低下を防止することができる。
【0050】
続いて、本実施形態に係る安定化制御装置を用いたロボットの制御について行ったシミュレーションについて説明する。図2に示すロボット4を用いて、ロボット4を走行させながらマニピュレータ5を作動させるシミュレーションを行った。このシミュレーションでは、ZMPの限界値xzmp_mを60.0mmに設定した。そのシミュレーションの結果を図7に示す。
【0051】
図7(a)に示すように、台車6の加速度を経時変化させた場合において、図7(b)に、ZMPの位置xzmpの経時変化、図7(c)に第一関節角度θ1の経時変化、図7(d)に第二関節角度θ2の経時変化をそれぞれ示す。このうち、図7(a)には、台車が不安定となる加速度の限界値(上限値および下限値)を折れ線L1,L2で示している。また、図7(b)には、折れ線L3で示す本実施形態の制御による経時変化と、折れ線L4で示す従来の制御による経時変化の例を示している。
【0052】
図7(b)から分かるように、従来の制御では、台車6の加速度の変化により、ZMPの位置xzmpは、ロボット4が不安定となるZMPの限界値を超えることがあり、この場合には、台車6が転倒する恐れが高くなるものであった。これに対して、本実施形態に係る安定化制御を行った場合には、台車6の加速度が変化した場合でも、ZMPの位置xzmpは、ロボット4が不安定となるZMPの位置の限界値を超えることはなく、ロボット4の転倒を効果的に防止することができる。
【0053】
また、台車6の加速度が不安定となる限界値の上下に脈動する場合であっても、図7(c)、(d)に示すように、マニピュレータ5を頻繁に正負方向に動作させることもないようにすることができる。したがって、マニピュレータ5の作動によるエネルギーの消費を低減することができ、アクチュエータの寿命の低下を防止することもできる。
【0054】
次に、本発明の第二の実施形態について説明する。本実施形態に係るロボットの安定化制御は、上記第一の実施形態と同様のロボット4を対象として行われる。また、上記の第一の実施形態と比較して、ZMP限界値設定部12に記憶されたZMP限界値が一部異なっている点で主に異なる。
【0055】
本実施形態に係るロボットの安定化制御装置は、ZMP限界値設定部12には、上記第一の実施形態と同様のZMP限界値のほか、台車6の速度が「0」の場合のZMP限界値として、ZMP限界値「0」が記憶されている。
【0056】
次に、本実施形態に係る安定化制御の手順を説明するが、上記第一の実施形態と比較して、ZMPの変化分Δxzmpの算出が主に異なるので、Δxzmpの算出手順について主に説明する。図8は、ロボットの安定化制御系のブロック線図、図9は、Δxzmpを算出する手順を示すフローチャートである。
【0057】
安定化制御を開始すると、上記第一の実施形態と同様、角度センサ2から出力された関節角度θ1,θ2を入力し、加速度センサ3から出力された台車6の加速度を入力する。その後に、x方向のZMPの変化分Δxzmpを算出する。
【0058】
たとえば、台車6の上に胴体が設けられた人間型ロボットでは、胴体が直立した状態を保持するときの作業性が最も良好なものとなる。そこで、ロボットが直立状態を保持するときにZMPの初期位置が0であると仮定すると、台車6が静止状態を保持する(台車移動速度=0である)とき、ロボット4の姿勢を直立状態に回復するために、ZMPを0にすることが必要となる。
【0059】
したがって、台車6が移動している間、台車6、移動速度を計測する。そして、台車移動速度が0ではないとき、上記第一の実施形態と同様にしてZMPの変化分Δxzmpを算出する。また、台車移動速度が0であるときには、ZMPの変化分Δxzmpを0に設定する。
【0060】
このため、Δxzmpを設定するにあたり、図9に示すように、上記第一の実施形態と同様、まずZMPの限界値xzmp_mを設定し(S21)、次に、上記第一の実施形態と同様にして、実ZMPの位置xzmpを算出する(S22)。
【0061】
ZMPの限界値xzmp_mを設定し、実ZMPの位置xzmpを算出したら、続いて、台車の移動速度を計測する(S23)。台車6の移動速度の計測は、速度センサを用いて直接行うほか、台車6の加速度を積分することによって行うこともできる。こうして、台車6の移動速度を計測したら、台車移動速度が0であるか否かを判断する(S24)。その結果、台車の移動速度が0である、換言すれば、台車が停止した状態にあるときには、ZMPの限界値xzmp_mを0に再設定する(S25)。一方、台車移動速度が0でないと判断した場合には、設定されたZMPの限界値xzmp_mをそのまま用いる。
【0062】
その後は、上記第一の実施形態と同様、実ZMPの位置xzmpが安定領域内にあるか否かの判断を行うために、まず、実ZMPの位置xzmpがx方向に正のZMP限界値xzmp_m以下となっているか否かを判断する(S26)。その結果、実ZMPの位置xzmpがx方向に正のZMP限界値xzmp_m以下となってないと判断した場合には、上記(3)式からΔxzmpを求める(S27)。
【0063】
また、実ZMPの位置xzmpがx方向に正のZMP限界値xzmp_m以下となっていると判断した場合には、実ZMPの位置xzmpがx方向に負のZMP限界値−xzmp_m以上となっているか否かを判断する(S28)。その結果、実ZMPの位置xzmpがx方向に負のZMP限界値−xzmp_m以上となってないと判断した場合には、上記(4)式からΔxzmpを求める(S27)。一方、実ZMPの位置xzmpがx方向に正のZMP限界値xzmp_m以下となっていると判断した場合には、Δxzmp=0に設定する。
【0064】
このように、実ZMPの位置xzmpとZMP限界値xzmp_mとを比較し、その比較結果に基づいてZMPの変化分Δxzmpを求めることにより、ZMPが安定領域内に存在することになるようにすることができる。したがって、ロボットの転倒を防止することができる。
【0065】
また、台車6の移動速度が0である場合には、ZMP限界値xzmp_mを0に設定しているので、人間型ロボットのように、台車の上に胴体が設けられたロボットでは、台車6が停止しているときに胴体が起立状態を保持しようとする。したがって、ロボットの作業性を良好なものとすることができる。
【0066】
続いて、本実施形態に係る安定化制御装置を用いたロボットの制御について行ったシミュレーションについて説明する。このシミュレーションでは、ZMPの限界値xzmp_mを60.0mmに設定した。そのシミュレーションの結果を図10に示す。
【0067】
図10(a)に曲線C1で示すように、台車6の速度を経時変化させた場合において、図10(b)に、ZMPの位置xzmpの経時変化、図10(c)に第一関節角度θ1の経時変化、図10(d)に第二関節角度θ2の経時変化をそれぞれ示す。このうち、図10(a)には、台車の速度のほか、台車の加速度を折れ線L10で示している。また、図10(b)には、折れ線L11で示す本実施形態の制御による経時変化と、折れ線L12で示す上記第一の実施形態の制御による経時変化と、折れ線L13で示す従来の制御による経時変化の例を示している。
【0068】
さらに、図10(c)には、折れ線L14で示す本実施形態の制御による経時変化と、折れ線L15で示す従来の制御による経時変化の例を示し、図10(d)には、折れ線L16で示す本実施形態の制御による経時変化と、折れ線L17で示す従来の制御による経時変化の例を示している。
【0069】
図10から(b)から分かるように、従来の制御では、台車の加速度の変化により、ZMPの位置xzmpは、ロボットが不安定となるZMPの限界値を超えることがあり、この場合には、台車が転倒する恐れが高くなるものであった。これに対して、本実施形態に係る安定化制御を行った場合には、台車の加速度が変化した場合でも、ZMPの位置xzmpは、ロボットが不安定となるZMPの位置の限界値を超えることはなく、ロボットの転倒を効果的に防止することができる。
【0070】
また、台車の加速度が不安定となる限界値の上下に脈動する場合であっても、図10(c)、(d)に示すように、マニピュレータを頻繁に正負方向に動作させることもないようにすることができる。したがって、マニピュレータの作動によるエネルギーの消費を低減することができ、アクチュエータの寿命の低下を防止することもできる。
【0071】
さらに、図10(b)〜(d)から分かるように、本実施形態に係る安定化制御では、上記第一の実施形態と比較して、台車の移動速度が0となった後は、ロボットの最終姿勢を早期に直立状態に回復することができる。したがって、良好な作業性を維持することができる。
【0072】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されるものではない。たとえば、上記実施形態では4つの車輪が接地する点で囲まれる部分を安定領域として設定したが、3つ以上の接地点を囲む領域であれば、安定領域とすることができる。また、接地する点で囲まれる範囲を若干増減させる形で安定領域を設定することもできる。
【0073】
さらに、上記実施形態では、x方向についてのみ安定化制御を行っているが、y方向、あるいはx−y平面上で安定化制御を行う態様とすることもできる。他方、上記実施形態では、ヤコビアン行列を用いて関節角度を算出するようにしているが、他の方法によって関節角度を算出する態様とすることもできる。さらに、上記実施形態では、関節が2つであるマニピュレータを有するロボットを制御対象としているが、関節が1つまたは3つ以上であるマニピュレータを有するロボットを制御対象とすることもできる。
【図面の簡単な説明】
【0074】
【図1】第一の実施形態に係るロボットの安定化制御装置のブロック構成図である。
【図2】ロボットの概略を示す側面図である。
【図3】本実施形態に係る安定化制御の手順を示すフローチャートである。
【図4】ロボットの安定化制御系のブロック線図である。
【図5】安定領域を説明する概念図である。
【図6】ZMPの変化分Δxzmpを算出する手順を示すフローチャートである。
【図7】(a)は台車の経時変化を示すグラフ、(b)はZMPの経時変化を示すグラフ、(c)は第一関節の関節角度の経時変化を示すグラフ、(d)は第二関節の関節角度の経時変化を示すグラフである。
【図8】第二の実施形態に係るロボットの安定化制御系のブロック線図である。
【図9】第二の実施形態におけるZMPの変化分Δxzmpを算出する手順を示すフローチャートである
【図10】第二の実施形態に係るものであり、(a)は台車の経時変化を示すグラフ、(b)はZMPの経時変化を示すグラフ、(c)は第一関節の関節角度の経時変化を示すグラフ、(d)は第二関節の関節角度の経時変化を示すグラフである。
【符号の説明】
【0075】
1…安定化制御装置、2…角度センサ、3…加速度センサ、4…ロボット、5…マニピュレータ、5A…第一リンク、5B…第二リンク、5C…ハンド部材、6…台車、6A…車輪、11…ZMP算出部、12…限界値設定部、13…ZMP比較部、14…目標角速度算出部。

【特許請求の範囲】
【請求項1】
台車に搭載されたマニピュレータを有する台車移動型ロボットの安定化制御を行うロボットの安定化制御装置であって、
前記台車移動型ロボットの挙動に基づいて求められる実ZMPと前記台車移動型ロボットの起立状態が不安定となるZMP限界値とを比較し、前記実ZMPおよび前記ZMP限界値に基づいて、前記台車移動型ロボットのZMPの目標変化分を設定することを特徴とするロボットの安定化制御装置。
【請求項2】
前記台車は、3点以上の複数の接地点を有しており、
前記複数の接地点で囲まれた領域の境界線に対応して前記ZMP限界値が設定される請求項1に記載のロボットの安定化制御装置。
【請求項3】
前記台車移動型ロボットにおける前記台車の移動速度が0である場合に、前記ZMP限界値を0に設定する請求項1または請求項2に記載のロボットの安定化制御装置。
【請求項4】
前記マニピュレータは、複数のリンクと、前記複数のリンクを接続する関節とを有しており、
前記台車移動型ロボットにおけるZMPの変化分と前記マニピュレータにおける関節角度の変化分とを関係づけるZMPヤコビアン行列を用いて、前記ZMPから前記関節における関節角度を算出する請求項1〜請求項3のうちのいずれか1項に記載のロボットの安定化制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate