(57)【要約】【課題】２脚動歩行ロボットの転倒安定化と歩容生成を同時に解決する歩行制御装置であって、安価なCPUを用いて実時間で動作可能なもの、ならびにその歩行制御方式を提供する。【解決手段】  本発明による歩行制御装置ならびにその歩行制御方式は、外力に対して受動的に歩行が生成されるように脚の運動を拘束することを特徴とし、とくに股関節部と遊脚の重心とを結ぶ直線が鉛直面となす角度およびその角速度が、支持脚のそれと鏡像関係になるように各関節を駆動した上で、上体の姿勢を目標とする歩行速度に応じて適応的に傾斜させることにより、実時間で安定な歩容を生成することができる。さらに重心がZMPの真上に位置しながら等速前進するように足首を操作することでエネルギー効率を高めることができる。【選択図】  図２０
2006116672.tif 000002
【特許請求の範囲】
【請求項１】
２脚歩行の制御において、外力に対して受動的に歩行が生成されるように脚の運動を拘束すると共に、股関節部と遊脚の重心とを結ぶ直線が鉛直面となす角度およびその角速度が、支持脚のそれと鏡像関係になるように各関節を駆動するよう制御することを特徴とする歩行制御方法。
【請求項２】
２脚歩行の制御においてロボットにおいて上体の傾斜角を目標歩行速度などの移動目標に応じて自動調整することを特徴とする請求項１記載の歩行制御方法。
【請求項３】
足平を有する２脚ロボットにおいて、前記重心と総モーメントが零になる床上の点ZMPを結んだ直線が垂直を保ったまま等速で移動するように、足首トルクを発生することを特徴とする請求項１乃至３記載の歩行制御方法。
【請求項４】
足平を有する２脚ロボットにおいて、総モーメントが零になる床上の点ZMPが足平の爪先に移動したときに前記重心または腰高さを一定に保つように足首トルクを発生することを特徴とする請求項１乃至３記載歩行制御方法。
【請求項５】
２脚歩行の制御装置であって、歩行面に対して股関節より上部に配置される上体部と前記上体部と脚部との間にあり、回動可能な股関節部と、前記股関節部と歩行面との間に配置される２本の脚部と、前記脚部には前記股関節部側より膝関節部および足首関節部を配し、前記足首関節部と歩行面との間に足平を配し、前記各関節部に配した角度センサと、前記各角度センサの出力情報に基づき前記各関節部に与える制御入力を計算し前記各関節駆動部に出力する直接制御部を備え、請求項１乃至４記載の歩行制御方式を行う事を特徴とする歩行制御装置。
【請求項６】
２脚歩行の制御装置であって、歩行面に対して股関節より上部に配置される上体部と前記上体部と脚部との間にあり、回動可能な股関節部と、前記股関節部と歩行面との間に配置される２本の脚部と、前記脚部には前記股関節部側より膝関節部および足首関節部を配し、前記足首関節部と歩行面との間に足平を配し、前記各関節部に配した角度センサと、前記各角度センサの出力情報に基づき前記各関節部に与える制御入力を計算し、一旦制御装置内部の動力学モデルに適用し、該動力学モデルの出力である関節角度や角速度を目標値として前記関節の駆動制御を行う制御入力を生成する関節制御部を備え、請求項１乃至４記載の歩行制御方式を行う事を特徴とする歩行制御装置。
【請求項７】
前記直接制御部あるいは間接制御部の一方、または両方を備えたことを特徴とする請求項５乃至６記載の歩行制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は人間型ロボット等の２脚ロボットにおける、実時間で安定な歩容を生成する歩行制御装置に関するものである。
【背景技術】
【０００２】
既存の脚式移動ロボットの機構と制御については「ロボット工学ハンドブック」（日本ロボット学会編）などに詳しいが、本発明に関連する歩行制御法に関して以下に述べる。脚式移動ロボット、とりわけ足平の面積が少ないため動的安定化が必要不可欠な歩行ロボット（以下、動歩行ロボットと略す）における従来の歩行制御法は、以下のように２つにわかれている。
【０００３】
第１は目標歩容の生成問題である。ここで目標歩容とは、ある望ましい歩行を達成するような関節角度目標値を始めとする幾何学的な座標ないしは速度の目標軌道（必ずしも時間軌道ではなく、あるパラメータでパラメトライズされた目標軌道も含む）、ならびに、ある望ましい歩行を行う動力学モデルも含んでいる。
【０００４】
いかなる移動ロボットも地点追従などの何らかの移動目標の達成が目的であるが、動歩行ロボットの場合、転倒しないことが前提となる。この両者の要求を最も簡単に満たす歩容設計方法が、ZMP規範を用いる方法である。これは、オンラインであれオフラインであれ、まず基本的にZMPが支持多角形内に入るような目標ZMP軌道を与え、その上で移動目標を達成するための重心や他の軌道を算出することで目標歩容を得るというものである（例えば、下記の非特許文献を参照）。ZMP規範さえ満たされていれば、ワールド座標系で設計された目標軌道に追従することは、関節サーボの問題に還元できる。
【０００５】
第２は、上記で生成された歩容に実機を追従せしめる安定化制御である。目標歩容で想定している理想的な環境において、実機を目標軌道に追従させる技術はサーボ技術の範疇であって本発明で論じる問題ではない。問題は、未知の外乱やモデル化誤差が存在する場合にも、ロボット自ら現在の状態を検出し、転倒を回避しつつ本来の移動目標を達成することである。
【０００６】
これに対する従来の技術は、転倒回避を達成するように目標歩容ないしは目標モデルダイナミクスを修正して実機をこれに追従させることに集約される。実施上、目標歩容を修正する代わりに実機上で何らかの反射的な修正動作を行うことも、目標歩容を修正することと等価であるので、これに含まれる。
【０００７】
この安定化制御をさらに詳しく見ると次の二つの手法に大別できる。１つは、目標歩容からの摂動モデル（主に線形モデル）を記述し、適当な局所フィードバック（線形フィードバック）を施すもの、もう１つはZMPと重心に着目した大局的なモデルに安定化制御を施し、その閉ループダイナミクスないしは安定解そのものを目標歩容とすること。とくに、下記に示した特許文献では、目標ZMPを操作することによって（支持多角形外でも可）姿勢を復元する技術が提案されているが、これは後者の手法に属する。安定領域は前者よりも後者の方が広く、この方法により目標歩容に収束する安定な歩行に成功している。
【非特許文献１】高西：  上体の運動によりモーメントを補償する２足歩行ロボット, 日本ロボット学会誌, Vol. 11. No. 3, pp. 348-353, 1993
【特許文献１】特開平０５−３３７８４９号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上に説明した従来技術を用いて制御装置を構成することは容易ではない。第１に、安定な目標歩容を設計し、それをメモリに記憶するプロセスが必要であること、第２に、高速なコンピュータを搭載したロボットでなければ、実時間で目標歩容を修正し、実機の関節駆動を実施することは困難であることである。
【０００９】
このように作業コストと計算コストを増加させているのは最初の歩容設計にある。歩容設計の問題とは、移動目標と転倒安定化に制御問題を分けた点である。本来、動歩行ロボットは本質的に転倒するダイナミクスを具備しており、歩行とは言い換えれば転倒に到る過程で、すなわち「倒れこみ」の連続的な接続である。
【００１０】
歩行が動歩行である限り、その歩容には必ず倒れこみが加わっているにも関わらず、従来の歩行制御方式は、最初に設計した目標歩容で想定していない変位を外乱とみなし、変位を無くす制御により初期の歩容に復帰するという思想に立っているので、目標歩容とは別に転倒安定化プロセスや目標歩容の修正プロセスが必要になり、制御装置が複雑になっている。
【００１１】
歩行ロボットの制御においては、倒れこみを安定に継続することによって移動を達成することが本質であり、この戦略に従えば、目標歩容は設計者が予め与えるものではなく、制御則から自然に発現すべきものである。
【００１２】
このように、安定化を行うことと歩容を自然に生成することを同時に解決する歩行制御装置であって、安価なCPUを用いて実時間で動作可能なものを提供することが本発明の目的である。
【課題を解決するための手段】
【００１３】
本発明の歩行制御装置は、脚ロボットに搭載する制御装置であって、以下の特徴を有するものである。
【００１４】
１）本発明の歩行制御装置は、外力に対して受動的に歩行が生成されるように脚の運動を拘束することを特徴とする。とくに股関節部と遊脚の重心とを結ぶ直線が鉛直面となす角度およびその角速度が、支持脚のそれと鏡像関係になるように各関節を駆動することを特徴とする。
【００１５】
２）本発明の歩行制御装置は、上体の傾斜角を目標歩行速度などの移動目標に応じて自動調整することを特徴とする。
【００１６】
３）本発明の歩行制御装置は、とくに足平を有する脚ロボットに適用する場合、重心とZMPを結んだ直線が垂直を保ったまま等速で移動するように、足首トルクを発生することを特徴とする。
【００１７】
４）本発明の歩行制御装置は、とくに足平を有する脚ロボットに適用する場合、ZMPが足平の爪先に移動したときに重心または腰高さを一定に保つように足首トルクを発生することを特徴とする。
【００１８】
５）本発明の歩行制御装置は、以上１）−４）を達成する制御入力（関節トルク）を実機のセンサ情報に基づいて算出し、その制御入力をそのまま実機に適用する直接制御部と、制御入力を一旦制御装置内部の動力学モデルに適用し、モデルの出力である関節角度や角速度を目標値として実機の関節駆動制御を行う間接制御部の、一方または両方を備える
ことを特徴とする。
【発明の効果】
【００１９】
１）本発明によれば、目標ZMPを含めた目標歩容の設計を全く必要とせず、任意の歩幅と歩行速度で歩行が可能となる。制御パラメータは歩幅のみであるため、面倒なパラメータチューニングは必要ない。
【００２０】
２）本発明によれば、目標歩容を持たず、しかも制御則が非常に簡単であるため、安価なマイコンに実装可能である。
【００２１】
３）本発明によれば、対称歩行制御により、外力あるいは上体の傾斜に対して受動的に歩容が生成されるため、外乱に対して本質的にロバストな転倒安定性を有する。
【００２２】
４）倒れこみによって歩行速度制御を行っているため、転倒に寄与する外乱は推進エネルギーとして利用可能である。このような外力に対する受動性は対人・対物安全性において極めて価値が高い。
【００２３】
５）以上の１）から４）の効果は足平の有無に関わらず有効であるため、得られる歩容は、公知技術である、いわゆる「ZMP規範」に拘束されない。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態について図面を参照しながら説明する。まず、本発明の実施に必要な基本原理について述べる。
【００２５】
１．上体の傾斜を用いた最適移動の原理
図１のような車輪付倒立振子を考える。車輪の速度をVx、振子の傾きをφとする。無損失の場合、同図（A）のように重心は常にZMPの真上に位置しながら、等速運動を行う。ここでいうZMPとは、総モーメントが零になる床上の点であり（前述の非特許文献の定義による）、支持点を原点としてその位置が数１式で定義される。
【００２６】
【数１】
2006116672.tif 000003
ここで XG と ZG は重心の支持点からの距離で、gは重力加速度である。この計算によりZMPが足平あるいは支持多角形から出るかどうかは意に介さない。
【００２７】
等速運動を行うとき振子は転倒しない。ところが外乱などによって定常的にエネルギー損失がある場合、速度を維持するために加速方向にエネルギーを補償する必要がある。そのためには、同図（B）のように重心をZMPから前方にずらせば良く、ずれの大きさが補償エネルギーの投入量を決定する。どれだけずらせばよいかという問題は振子の傾斜を使って下記のように適応的に解くことができる。
【００２８】
まず、数２式のように、目標水平速度Vxdと現在の水平速度Vxを比較してそれに比例した値を振子の目標角φdとする。ここでKvは適当な正の速度ゲインである。そして、この目標角度を一定に保つように台車の車輪にトルクを加えるだけでよい（例えばPDフィードバックを用いる）。
【００２９】
【数２】
2006116672.tif 000004
これにより、損失分のエネルギーを補償しつつ目標速度を維持でき、振子の傾斜は自立的に調整される。傾斜を保つために車輪に常にトルクが加えられており、定常状態でも常にエネルギーが系に入力されていることに注意する。エネルギー損失が無い場合、上体が傾斜したままだと車輪は加速するが、エネルギー損失がある場合は加速エネルギーと損失エネルギーがバランスするのである。結局、移動速度は漸近的に一定値に収束し、エネルギー最適な移動を得る。
【００３０】
２．対称歩行制御
以上は車輪付の倒立振子の話であったが、車輪の転がりは脚の歩みと考えて、上記最適移動原理を脚ロボットに適用することができる。まず、車輪を無数の脚で近似するか、または脚先に車輪の半径と同じ円弧状の足平を取り付けたモデルを考えると、車輪が転がるように連続的に足を踏み出すことができれば、上体を傾斜させながら等速で移動できることが直感的にわかる。
【００３１】
本発明で取り扱う２脚動歩行ロボットの基本モデルは、上記円弧状の足平の半径をどんどん小さくしていき、極端に点接地にしたものと考えることができる。この点接地の脚が次々と歩む様子は、いわば、角張った車輪またはサイコロが転がることに似ている。もはや重心がZMPの常に真上に位置しながら等速水平移動することはできず、１歩毎に必ず加減速を伴うことになる。
【００３２】
そこで、車輪移動と全く同じ移動原理を適用するために、エネルギー損失が無い場合に脚部が等速移動するように制御する。等速移動を行うためには、１歩当たりの正味歩行速度が零になるような接地方法をとれば良い。つまり、加減速の1歩当たりの積分値が零になるような歩みである。
【００３３】
さらに、車輪とは異なり、脚移動ロボットの場合、転倒という問題が付随する。ここで転倒とは、静止あるいは歩行中に地面との適切な接地関係を（不本意に）失うことで、静止あるいは歩行を継続できないような状況を指す。
【００３４】
そこで、転倒安定性を保証するような歩みが必要となる。この二つの要求を最も効果的に実現するのが、本制御装置の重要な構成要素である「対称歩行制御」である。対称歩行制御とは簡単に言えば、「遊脚重心角」の回転運動を支持脚のそれに対称拘束し、少なくとも着地時には遊脚長が支持脚長と一致するように制御することである。
【００３５】
図２のような簡単な２脚ロボットモデルを例にとって示す。図２において、鉛直面に対する支持脚の角度はθ1である。遊脚重心角とは、股関節と遊脚の重心とを結ぶ直線の鉛直面に対する角度で、図２では遊脚重心角θcは遊脚それ自身の角度θ2と一致しているが、回転関節型の遊脚では図３のように脚自体の角度とは異なる。
【００３６】
対称歩行制御は、数３式の対称拘束条件を、数４式なる支持脚切替条件のもとで実現するものである。
【００３７】
【数３】
2006116672.tif 000005
【００３８】
【数４】
2006116672.tif 000006
ここで θswは支持脚交換時の切替角で、数５式を満たす。
【００３９】
【数５】
2006116672.tif 000007
今後、数３式と数４式を合わせて対称歩行制御と呼ぶ。本制御の元では数６式の速度拘束条件も満たされることになることに注意されたい。ただし、ω1とωcはそれぞれθ1とθcの時間微分である。
【００４０】
【数６】
2006116672.tif 000008
遊脚長が支持脚長と同じ場合、遊脚の足先が地面と接してしまうので、適切に引き込む必要がある。ただし、着地時には支持脚長に一致させる。これにより、着地角と離陸角が常に対称となる。
【００４１】
切替角を常に一定（つまり歩幅一定）にすることは対称歩行制御の本質ではないが、定常歩行の場合を想定して便宜上切替角を一定値とする。
【００４２】
対称歩行制御により、ロボットは転倒しなくなる。図４は対称歩行制御を行ったときの支持脚の相平面（角度 - 角速度）における解軌道を描いたものである。この例で初期値(θ1(0), ω1(0))は左上の(-0.3, 1.5)であり、切替角は0.3に設定している。
【００４３】
上体姿勢が常に垂直になるように制御する場合、図４の細い実線で示したような解軌道となる。もし解が切替角度と分離枝（原点をクロスしている二つの１点鎖線）に囲まれた領域 II に入れば、 運動の方向が反転した後、解は領域 IVに入る。逆も同様である。一旦この反転現象が起れば、その後の解軌道は領域 II と領域 IVに完全に捕らえられ、最終的に極限集合: L+ = (θsw , 0) ∪ (-θsw , 0) に収束することになる。
【００４４】
状態が L+ に近くなればなるほど、 無数の切替が生じる。そのようなロジックが無限回起ろうとも、物理的にはロボットは運動エネルギーを徐々に失い、最終的に切替角×２だけ脚を開いた両脚支持の状態で停止することになる。実際には着地衝突以外にも摩擦な
どの損失があるため、収束は非常に早い。
また、現実にはありえないが、仮に着地衝突などのエネルギー損失が全くない場合、ロボットは与えられた初期エネルギーレベルを有する対称な周期軌道を描く。図４で言えば、初期値を通る太い点線である。
【００４５】
これは天体物理学などで公知なBirkhoff可逆系における対称軌道である。簡単に説明すると、これは単一の自律力学系における渦心点まわりの中心多様体付近の流れに相当し（通常の振子運動を想像されたい）、初期値に応じて無数に存在しうる孤立していない周期軌道に似ており、ハイブリッド系特有の周期軌道である。本発明では対称軌道に対応して「対称歩容」と呼ぶ。
【００４６】
この対称歩容は、着地衝突によって奪われる損失エネルギーを上体の傾斜によって補償することで達成できる。つまり、図５に示すような上体を有する２脚ロボットを考えると、任意の目標速度を有する対称歩容を得るための制御則は、数７式のように、目標速度と現在速度を比較してそれに比例した値を上体の目標角とし、この目標角度を一定に保つように支持脚側のトルクを与えるだけでよい。
【００４７】
【数７】
2006116672.tif 000009
車輪の場合と同じく、上体の傾斜により重心のZMPに対する平衡がくずれ、その非平衡状態を維持するために常にエネルギーが系に入力されていることに注意する。上体の傾斜は着地衝突による損失エネルギーとバランスするまで増減する。なお、目標速度を零として上式を適用すると、上体の姿勢を常に零に保つよりも早く静止状態に収束することが出来る。
【００４８】
以上のメカニズムにより、歩行は大域的に漸近安定となる。ここでの歩行安定性は天体物理学などでいうところの軌道安定性と同義と考えても良い。歩行安定性が「大域的」であるとは、いかなる初期値から出発した解も安定であることである。なお、大域的安定に対する局所的安定とは、ある近傍でのみ安定であることである。事前に計画された目標歩容を忠実に追従させるために、目標歩容の周りで構築した摂動モデルに基づいた制御系を組むと、閉ループ系は基本的に局所的安定となり得るが、大域的安定には決してなり得ない。
【００４９】
脚移動ロボットにおいて、移動目標は停止あるいは目標速度での歩行であるので、これらを大域的に安定化することは、定常状態における歩容のみならず、静止・歩行間の過渡状態における歩容までも解に含むことになる。つまり、再三述べるように、過渡状態も含めて、歩容をわざわざ設計する必要はなく、地面との適切に接地状態を持ついかなる初期状態からでも静止や歩行を行うことができる。
【００５０】
さらにこの大域的安定性はすなわち外乱ロバスト性を意味する。外乱は推進エネルギーに転用することができる。例えば静止しているロボットの上体を押したとき、加えられた運動エネルギーを目標エネルギーとするように上体を傾斜させれば、押された速度で歩行することができる。逆に、歩行中に不意に壁に衝突したとき一気に運動エネルギーが失われるが、目標軌道をそもそももたないので、そこで外乱にまかせて安全に停止することもできれば、再び目標速度に追従すべく、歩き始めることもできる。このように外力に対して受動的な移動制御は対人・対物安全性において極めて価値が高い。
【００５１】
３．足首トルクの利用
さらに足首トルクが利用できる場合、本制御装置により、対称歩行制御を行いつつZMPと重心の位置関係や加減速をより有効に制御することが可能である。
図６に示すような足平を有する倒立振子モデルを用いて、まず、片足支持期における足首の利用について述べる。これは対称歩行制御の「零ダイナミクス」を示したモデルである。ここで零ダイナミクスとは、拘束条件が達成されているときに系が持つダイナミクスを指す公知の用語である。
【００５２】
両脚の対称条件（数３式）が満たされ、上体の傾斜加速度が収束しているとき、零ダイナミクスは数８式で表される。ここで MGとJG はそれぞれ全体の質量と重心まわりの慣性モーメントで、LG は重心から踵までの距離である。gは重力加速度で、τ0は足首トルクである。
【００５３】
【数８】
2006116672.tif 000010
この式からわかるように、この倒立振子の挙動は足首トルクによって制御することが可能である。足首トルクを用いることはZMPを操作することと等価である。
ZMPを制御するということは全体のシステムの接地点代表点を制御することに等しい。
【００５４】
どのようなZMPの推移が最適であるかという問題に対する本発明の回答は着地時の衝突最小化にある。ZMPが次の着地点に近ければ近いほど着地衝突と着地時のエネルギー損失が少なくなることは容易に示すことができる。したがって、なるべくエネルギーを消費せずにZMPを前方に進められればそれが最適解となる。
【００５５】
そこで、本発明では足首トルクを数９式のように与える。
【００５６】
【数９】
2006116672.tif 000011
すると数８式の重力項が消え、ω1 は一定となることがわかる。このことは θ1 > 0 の領域では常に重心がZMPの真上に位置しながら等速で真横に移動することを意味する（図７の（B）、（C））。
【００５７】
本制御則によりZMPは爪先に達するまで単調増加する。なお、上体の加速が存在するとき零ダイナミクスは数８式とは多少異なるが、加速は収束すると考えてよいので、とくにそれを考慮して足首を駆動する必要性はない。
【００５８】
なお、数９式の形から、足首トルクは簡単な線形バネで置き換えることができる (図  ８)。バネ力はバネ定数Kとバネ変位δlを用いて数１０式で表せる。
【００５９】
【数１０】
2006116672.tif 000012
バネ変位は、laをモーメントアームの長さとして数１１式のようになる。
【００６０】
【数１１】
2006116672.tif 000013
したがって、バネによって足首に発生するトルクは数１２式となる。
【００６１】
【数１２】
2006116672.tif 000014
数１２式と数９式を比べることにより、極端に大きくないθ1の範囲であれば、K = MG LG g / la2のバネ定数を持つ線形バネを選ぶことにより、数９式とほぼ同じ足首トルクを発生できることがわかる。ただし、ちょうどθ1 < 0のときにはバネ力が生じないように、バネのセットポイント（図８のフックの位置）を調整する必要がある。
【００６２】
このようにZMPが爪先に向かって移動するが、対称歩行制御の切替角θswと足平の長さd1との関係によって、その後、次の２つの場合が考えられる。
【００６３】
【数２０】
2006116672.tif 000015
【００６４】
【数２１】
2006116672.tif 000016
１）の場合、ZMPが爪先に到達する以前に遊脚の着地を迎えることになるので問題ない。一方、２）の場合、ZMPが爪先に到達したとき、重心はZMPよりも前に進むため、平衡がくずれ、ロボットは重力モーメントに従って爪先周りに回転することになる。このとき、踵が浮き上がらないように足首トルクを弱めることはせっかく前方に推移したZMPがまた後方に戻ることになるため非効率であり、そもそも足首を用いる意味が無い。
【００６５】
ではどのように足首を駆動するかという問題が生じる。本発明においては、重心ないしは腰の高さを一定に保つよう足首を駆動する。なぜなら、定常歩行において着地時の重心高さは常に一定であるからである（図７の（A）、（C）、（D）の重心マークを貫通する1点鎖線）。
【００６６】
図７の（C）のように、ZMPが爪先に達した段階で既に重心高さが着地時の高さまで落ちているので、これ以上重心が下に下がらないように保持するわけである（PDフィードバックなどで可能）。
【００６７】
足首の制御トルクは数１３式のようになる。ここでZdは目標重心高さであるが、ZMPが爪先に達したときの重心高さを代入する。また、重心の位置を監視することが困難な場合、質量が多く分布している腰の位置を見ても良い。
【００６８】
【数１３】
2006116672.tif 000017
以上により、図７の（A）、(C)、（D）で示すように着地角は常に離陸角と対称となる。なお、バネで足首アクチュエータを置き換える場合、数９式と等価なトルクを発生させるために、バネのセットポイントをアクティブに駆動する必要があるが、実用的には数１３式を厳密に発生する必要はなく、重心高さをある程度保持できる程度のトルクを発生していれば良い。
【００６９】
また、これは足首を持たないモデルの、接地期後半におけるZMPと重心の位置関係がなす倒立振子と同様の加速効果をもたらす。どの速度まで加速させるかは、どの地点で遊脚を着地させるかによる。既に踵が浮き上がっており、かつ、腰高さが一定であるため、数４式を満たす切替角で着地することはもはやできない。
【００７０】
そこで、踵が浮いたときは対称歩行制御の対称条件を放棄し、遊脚股関節をフリーにして自然に遊脚の踵が着くまで待つ方法と、必要な速度が得られる時間をほぼ推定できるので、その時間で着地するように遊脚股関節を駆動する方法がある。いずれにしてもエネルギーの制御は上体の傾斜で自律的に調整されるので、脚部で厳密にエネルギーの制御を行わなくても良い。後の実施例２では遊脚の膝関節がフリーであるので、前者の方法を用いている。
【００７１】
以上は片脚支持期における制御手法であったが、次に、両脚支持期における足首の利用について述べる。両脚支持期における足首トルクの利用目的は、これまで上体の傾斜を保持することでエネルギー補償を行っていた股関節アクチュエータの消費パワーを軽減することであり、必ずしも必要というわけではない。駆動方法は至って簡単で、単に支持脚角速度が所望の値になるまで、トルクを加えるだけでよい。
【００７２】
最も簡単な方法は一定トルクを加えることであろう。進行方向側にある脚の足首トルクを加えれば減速、後方にある脚の足首を使えば加速となる。この際、膝関節を有するモデルの場合は対称歩行制御を常にアクティブにしておくことが望ましい。両脚がなす閉リンク機構の恩恵により、後の実施例２で見るように、遊脚の膝関節がフリーであっても問題なくエネルギーを補償することができる。膝関節がないモデルでは対称条件を満たすことができないのでこの限りではない。
【００７３】
４．第1実施例
図９のような足平を持たない２脚ロボットを制御対象に取り上げ、第１実施例を説明する。
【００７４】
このロボットは股関節部の回転自由度と脚を伸縮させる伸縮自由度を持っており、合計４自由度のモデルである。各関節は低減速比の電気サーボモータによって駆動される。モ
ータには簡易なサーボアンプが接続されており、電流制御が可能であるとする。センサとしては各関節のエンコーダと上体部にジャイロと傾斜系が取り付けられており、他に接地を検出するための簡単なOn/Offスイッチが脚先に取り付けられている。
座標系は図１０に定義されている。脚は伸縮型なので重心は常に脚中心にあると考えてよい。なお、脚にはバネがついているが、これはモータトルクをアシストするためのもので、制御則には何ら影響を及ぼさない。
【００７５】
支持脚の角度をθ1, 遊脚の角度をθ2, 上体の姿勢角をθ3とする。
また、支持脚の長さをr1, 遊脚の長さをr2とする。支持脚と遊脚の股関節トルクをそれぞれ、τ1、τ2とし、脚の推力をそれぞれ、f1、f2とする。
【００７６】
図１１に第１実施例のブロック図を示す。本図を用いて制御装置の動作を説明する。
同図右側にある「状態観測部」は、各種センサから上体の傾斜や脚の長さや角度を算出する。
【００７７】
左側にある「歩行速度制御部」は上体の傾斜目標角θ3dを歩行速度の目標値からの誤差に応じて数１４式のように決定する。ここで Vxd は目標速度制御であり、Vxmeanは１歩毎の平均速度, Kv は歩行速度ゲインである。
【００７８】
【数１４】
2006116672.tif 000018
平均値を用いるのは計測が困難な歩行速度を確実に捕らえるためである。これは一歩毎に姿勢目標値を更新することになるが、用途によっては平均値を用いず現在値を直接用いて常に更新しても良い。
【００７９】
さらにゲイン Kv は歩行速度に応じて変化させるほうが追従性が良いため、数１５式のように可変にしても良い。
【００８０】
【数１５】
2006116672.tif 000019
数１５
同図中央に位置するのは「対称歩行制御部」であり、遊脚重心角の目標値θ2dが算出され（重心角はθ2そのもの）、次いでPD制御によって遊脚トルクτ2が決定する。
【００８１】
ここで分岐スイッチ（SW1）は遊脚の角度を監視し、目標値を数１６式のように切り替える。この二つ目の目標値は、切替角度で遊脚のスイングを停止することで（「待ち」を入れる）、遊脚の着地を確実にするためのものである。理想的にはロボットは対称条件が厳密に満たされたときに着地が可能であるが、サーボ誤差がある場合にはうまく着地できないことがあるからである。
【００８２】
【数１６】
2006116672.tif 000020
最後に、ブロック下側にあるのは「脚長制御部」である。支持脚の長さr1は、ある適当な目標値r1dに保たれる。一方、遊脚の長さ r2 は遊脚が地面に躓かないように制御される。ここでは遊脚長の目標値r2dを θ2 に関係付けている。具体的には、図に示すように折れ線の関係を持たせている。
【００８３】
以上説明した状態観測部および３つの制御部が単一のタイマータスクの下でリアルタイムに実行されるようCPUにプログラムされている。
本実施例の効果を示すために、本制御装置のプログラムを用いた速度制御のシミュレーション例を掲載した。シミュレーションは実機パラメータと地面との衝突モデルを反映した十分精密なものである。
【００８４】
静止状態から目標速度に到達するシミュレーション結果を図１２に示す。右上のグラフは歩行速度の時間変化を示しており、ロボットは最初静止していることがわかる。速度目標値を1 m/s に設定した結果、徐々に上体を傾斜させながら前進する。左上のグラフは上体の姿勢角、支持脚および遊脚の角度の時間変化を示したグラフである。１歩目の最初、一瞬後ろに加速しているが、上体の傾斜の恩恵により、1歩目の途中で前方に方向転換していることがわかる。左下のグラフは股関節トルクのグラフである。右下のグラフはエネルギーの時間変化である。
【００８５】
歩行速度の増加に伴って１歩あたりに要する時間が減少しているが、これは歩幅一定歩行の当然の結果である。歩行速度が目標値に近づくに従って, 一旦は前に傾斜した上体の姿勢が徐々に回復してある一定値に収束する様子がわかる。この最終的に収束した傾斜が、着地衝突による損失エネルギーをちょうどキャンセルできるだけの傾斜となっているのである。損失エネルギーは右下のグラフで言うと、垂直に落ちている個所である。この損失エネルギーが制御によって1歩ごとに回復されている。エネルギーバランスはいかなるリミットサイクルの発生要件でもある。このようにして、望ましい歩行速度を通過する漸近安定な歩容を得ることができる。
【００８６】
本シミュレーションに対応するスティック線図を図１３に示す。見やすくするために上体と右足だけが描かれている（淡い太線）。図には重心（四角い点）および、重心とZMPを結んだ直線も記されている（細くて濃い線）。同図ではロボットは左から右に向かって前進している。最初傾斜させた上体の姿勢が回復している様子がわかる。
【００８７】
力学的に明らかであるが、図からもわかるように、上体を前傾させようとしたときにZMPは支持点より後方に推移し、逆に傾斜を維持しようとして上体を起こそうとしているときはZMPは支持点よりやや前方に推移する。再度注意しておくが、本発明でいうZMPはあくまでも数１式によって計算されたものであって、実際の床反力の代表点ではない。
【００８８】
次に、静止状態から可変の速度目標値に追従するシミュレーション結果を図１４に示す
。ここで歩行速度は+0.5 m/sから -0.5m/s, そしてまた +0.5 m/sに切り替えているが、およそ２歩程度で目標値に追従していることがわかる。
【００８９】
目標速度への整定時間であるが、これはロボットが発生可能な加速度に依存する。上体の傾斜に限界があるように、加速には限界があるからである。上体の実効最大傾斜は±π/2であり、このときエネルギーの最大変化を得ることができる。また、股関節から上体の重心までの距離が長いほど、より多くのエネルギー変化を得ることができる。
【００９０】
なお、切り替え角 θswが大きいほど,より多くのエネルギー変化率を得ることができるが、同時に着地衝突も大きくなり、定常歩行速度偏差も大きくなる。衝突によるエネルギー損失量と傾斜によるエネルギー変化量は陽に解けるので、θsw とθ3dの最適な関係式を得ることは容易である。
【００９１】
本シミュレーションに対応するスティック線図を図１５に示す。ロボットが前進と後退を繰り返している様子がわかる。
【００９２】
次に、実機を忠実に再現したシミュレータに歩行制御装置を接続し、ハードウェアインループ（HIL）の手法で制御装置の性能を評価した。最も過酷な評価として、外乱に対するロバスト性について調査した実験結果のアニメーションを図１６に、対応する時間グラフを図１７に示す。
【００９３】
本実験においては、ロボットシミュレーションモデルは、最初目標速度0.5 m/sの定常歩行を行い、途中で突然壁に衝突する設定になっている。アニメーションからわかるように、壁のせいでロボットは大きな外乱を受ける。しかしこの大きな外乱に対してもロボットは転倒せず、単に停止するだけである。この様子は図１７左下の歩行速度の時間変化を見れば明らかである。同図において9.23 秒で壁からインパクトを受ける。そして歩行速度は減少し、12.5 秒あたりで零に収束してロボットは止まる。しかし目標速度は依然 0.5 m/s に固定されているので上体を傾斜させようとするトルクは常に出力されている。その結果、速度は零であるが、支持脚は地面と滑りながら動いている（左上の角度変化）。いずれ対称歩行制御の切替角に到達して支持脚が交換される。そして壁が取り除かれるとロボットはまた歩き出す。
これは対称歩行制御の強力な受動性を示している。
【００９４】
受動性は対人・対物安全制御においてとくに重要である。さらに、たとえば歩行速度を零に設定した場合、未知の外乱に対してもロボットは停止することもできる。その整定時間は外乱の大きさに依存する。外乱を歩行の推進エネルギーとして利用することもできる。
【００９５】
５．第２実施例
図１８に示すような足平と膝関節を有する２脚ロボットを制御対象に取り上げ、第２実施例を説明する。本ロボットは人間を平面に投影したようなモデルである。股関節、膝、足首に回転自由度を有しており、合計６自由度のモデルであるが、膝は過進展防止用ロック機構を有するフリージョイントとなっており、義足のような高効率な脚の振り出しを想定している。その他のハードウェア構成は第１実施例に出てきたロボットと同じである。
【００９６】
ロボットの座標系を図１９に定義する。支持脚の足平の角度をθ0, 脚の角度を θ1とする。遊脚の上腿角度をθ2, 下腿角度をθ3とする。そして上体の傾斜角をθ4とする。支持脚と遊脚の股関節トルクをそれぞれ、τ1、 τ2とし、支持脚足首トルクをτ0とする。
【００９７】
図２０に第２実施例のブロック図を示す。右足接地の場合のみ示した。左足接地の場合も同様である。第１実施例と比較するとわかるように、新たに足首トルクによるZMP制御部が追加され、対称歩行制御部の最終段が修正されている。また、脚長制御部はなくなっている（受動膝関節による）。
【００９８】
ブロック図中央にある「対称歩行制御部」では、遊脚重心角の目標値θcdが算出され、次いでPD制御によって遊脚股関節トルクτ2が決定される。ここで最初の分岐スイッチ（SW1）は遊脚の重心角を監視し、目標値を数１７式のように切り替える。意味は第１実施例で述べたので省略する。
【００９９】
【数１７】
2006116672.tif 000021
二つ目の分岐スイッチ（SW2）はZMPが爪先に来たときに遊脚をフリーにするためのものである。本発明では数９式の足首トルク制御を作用しているため、ZMPが爪先に来たどうかの判定は、数１８式の関数の零クロスを監視すればよい。LGはほとんど変化しないので、支持脚角度θ1だけ見ても良い。
【０１００】
【数１８】
2006116672.tif 000022
最後に、ブロック下部にあるZMP制御部は、数９式と数１３式の足首トルクを用いてZMPを制御する部分である。分岐スイッチ（SW3）はSW2と同様、支持脚角度に応じて足首トルクを切り替えるために用いる。
【０１０１】
以上説明した状態観測部および３つの制御部が単一のタイマータスクの下でリアルタイムに実行されるよう、制御装置のCPUがプログラムされている。
【０１０２】
２つの典型的なシミュレーション結果を示す。図２１は上体の目標姿勢θ4dを零にした場合、図２２は0.1に設定した場合の歩行シミュレーションの結果である。それぞれの上段のグラフは支持脚角度と遊脚重心角、上体の姿勢角を示したグラフであり、中段のグラフは歩行速度のグラフ、下段はエネルギー変化を示したグラフである。上段のグラフから支持脚の角度と遊脚重心角が対称に制御されていることがわかる。
【０１０３】
図２３と図２４に対応するスティック線図を示す。ZMPと重心の軌道も示してある。両者ともリミットサイクルに収束しているが、前者は足首のみ、後者は上体の傾斜も使ってエネルギーの回復を行っているため収束先の歩行速度が異なる。ZMPが爪先にきたところで遊脚を完全にフリーにしているので（図２０のSW2）、着地角も異なる。歩行速度が速いほど着地角も大きくなっている。
【０１０４】
本発明は２次元平面内の動歩行ロボットの制御に限らず、３次元ロボットの動歩行制御にも有効なものである。
【産業上の利用可能性】
【０１０５】
本発明に係る歩行制御方法ならびに制御装置は、人間型の２脚ロボットの歩行制御のみならず、歩行支援装置や人間型以外の脚ロボット、例えば人間や物を運搬する脚移動ロボット、の制御等に広く用いることができる。
【０１０６】
また本発明によって製造された歩行制御装置は、実時間制御可能な装置として実生活での展開が期待できる。
【図面の簡単な説明】
【０１０７】
【図１】車輪付倒立振子の最適移動原理の説明図である。
【図２】簡単な2脚ロボットの説明図である。
【図３】回転関節を有する２脚ロボットにおける遊脚重心の説明図である。
【図４】図２のモデルに対称歩行制御を施したときの支持脚の相平面（角度 - 角速度）における解軌道を示した図である。
【図５】上体を有する２脚ロボットにおける対称歩行制御による移動を説明した図である。
【図６】足平を有する脚ロボットの対称歩行制御による零ダイナミクスを説明した図である。
【図７】足首トルクによるZMPおよび重心位置の制御方法を示した図である。
【図８】アクチュエータをバネに置き換えて等価な足首トルクを発生する原理図である。
【図９】第１実施例で対象とする足平を持たない２脚ロボットのCADモデルと写真である。
【図１０】第１実施例で対象とする足平を持たない２脚ロボットの座標の定義図である。
【図１１】第１実施例の制御ブロック図である。
【図１２】第１実施例の「定値」速度追従制御のシミュレーション結果を示すグラフである。
【図１３】第１実施例の「定値」速度追従制御のシミュレーション結果を示すスティック線図である。
【図１４】第１実施例の「可変」速度追従制御のシミュレーション結果を示すグラフである。
【図１５】第１実施例の「可変」速度追従制御のシミュレーション結果を示すスティック線図である。
【図１６】第１実施例のHIL実験における外乱ロバスト性テスト結果を示すアニメーションである。
【図１７】第１実施例のHIL実験における外乱ロバスト性テスト結果を示すグラフである。
【図１８】第２実施例で対象とする足平と膝関節を有する２脚ロボットの写真である。
【図１９】第２実施例で対象とする足平と膝関節を有する２脚ロボットの座標の定義図である。
【図２０】第２実施例の制御ブロック図である。
【図２１】第２実施例において上体の傾斜「無し」のシミュレーション結果を示すグラフである。
【図２２】第２実施例において上体傾斜「有り」のシミュレーション結果を示すグラフである。
【図２３】第２実施例において上体傾斜「有り」のシミュレーション結果を示すスティック線図である。
【図２４】第２実施例において上体傾斜「有り」のシミュレーション結果を示すスティック線図である。
【図１】
2006116672.tif 000023
【図２】
2006116672.tif 000024
【図３】
2006116672.tif 000025
【図４】
2006116672.tif 000026
【図５】
2006116672.tif 000027
【図６】
2006116672.tif 000028
【図７】
2006116672.tif 000029
【図８】
2006116672.tif 000030
【図１０】
2006116672.tif 000031
【図１９】
2006116672.tif 000032
【図９】
2006116672.tif 000033
【図１１】
2006116672.tif 000034
【図１２】
2006116672.tif 000035
【図１３】
2006116672.tif 000036
【図１４】
2006116672.tif 000037
【図１５】
2006116672.tif 000038
【図１６】
2006116672.tif 000039
【図１７】
2006116672.tif 000040
【図１８】
2006116672.tif 000041
【図２０】
2006116672.tif 000042
【図２１】
2006116672.tif 000043
【図２２】
2006116672.tif 000044
【図２３】
2006116672.tif 000045
【図２４】
2006116672.tif 000046