JP3888310B2 - 歩行ロボットの制御用データ作成装置とzmp位置の計算方法 - Google Patents
歩行ロボットの制御用データ作成装置とzmp位置の計算方法 Download PDFInfo
- Publication number
- JP3888310B2 JP3888310B2 JP2003029989A JP2003029989A JP3888310B2 JP 3888310 B2 JP3888310 B2 JP 3888310B2 JP 2003029989 A JP2003029989 A JP 2003029989A JP 2003029989 A JP2003029989 A JP 2003029989A JP 3888310 B2 JP3888310 B2 JP 3888310B2
- Authority
- JP
- Japan
- Prior art keywords
- trunk
- foot
- mass
- zmp
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Manipulator (AREA)
Description
【発明の属する技術分野】
本発明は、脚を利用して歩行するロボットが、脚を利用して歩行するのに必要とする制御用データを作成する装置に関する。本発明は、制御用データの作成過程で用いるZMP位置の計算方法にも関する。
【0002】
【従来の技術】
2足で歩行するロボットは、IEEE Humanoids 2000, The First IEEE-RAS International Conference on Humanoid Robots, September 7-8, 2000 page 1 to 12, A Fast Generation Method of a Dynamically Stable Humanoid Robot Trajectory with Enhanced ZMP Constraint, Satoshi Kagami et. al.に記載されているように、どのルートをどのように足を運んで歩行するかを指定するデータを必要とする。通常は、図31に示すように、歩行ルートと足の運びを指示する人間が、左足平位置ベクトルC、左足平姿勢ベクトルD、右足平位置ベクトルE、右足平姿勢ベクトルFを指定する。この他に、歩行ルート等を指示する人間が、ロボットの体幹姿勢ベクトルRと体幹高さQを指定する。ロボットが時間とともに位置と姿勢を変化させることに対応して、上記のベクトル等を時系列に従って次々に指定する。(t)は、時系列に従って変化することを示している。
左足平位置ベクトルCは、座標原点Oから見たロボットの左足平位置を示す。左足平姿勢ベクトルDは、左足平の向きを示す。右足平位置ベクトルEは、座標原点Oから見たロボットの右足平位置を示す。右足平姿勢ベクトルFは、右足平の向きを示す。体幹姿勢ベクトルRは、ロボットの体幹の向きを示し、人間の背骨に相当する部材が伸びる方向を示す。
【0003】
2足で歩行するロボットの場合、ZMP(ゼロモーメントポイント:動的平衡点ともいう:ロボットが歩行するとロボットから路面に重力と歩行運動に伴って生じる慣性力が作用し、ロボットには路面からその反力が作用する。路面からロボットに作用する力によるモーメントがゼロになる点をZMPという)を足平の接地面内に維持することによって、転倒を防止できる。
そこで、歩行時の足平の接地面位置の時間的変化を考察し、時間的に変化する接地面位置に追従して変化する目標ZMPを設定する。歩行時に観測される実際ZMPが目標ZMPに一致するように制御することによって、ロボットが転倒しないで歩行することが可能となる。
【0004】
図1は、目標ZMPの指定方法を示している。この場合、ロボットはX方向に歩行する。歩行方向に直交する方向をY方向とする。ロボットは、両足接地期間と片足接地期間を交互に繰り返して歩行する。片足接地期間内の目標ZMPは、接地足の接地面内になければならない。さもなければ、実際ZMPを目標ZMPに一致させてもロボットは転倒してしまう。両足接地期間内の目標ZMPは、2つの接地面を結ぶ領域にあればよい。Y方向の現象を考察すると明らかに、両足が接地している期間内に、目標ZMPは左足接地面内から右足接地面内に移動しなければならない(傾斜線C2参照)。あるいは、右足接地面内から左足接地面内に移動しなければならない(傾斜線C4参照)。水平線C1は、左足のみが接地している場合の目標ZMPを示し、目標ZMPは左足接地面内に維持されている。水平線C3は、右足のみが接地している場合の目標ZMPを示し、目標ZMPは右足接地面内に維持されている。
X方向の目標ZMPもほぼ同様の条件を満たす必要がある。水平線C6は、左足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは左足接地面内に維持されている。水平線C8は、右足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは右足接地面内に維持されている。両足が接地している期間内に、X方向の目標ZMPは左足接地面内から右足接地面内に移動し(傾斜線C7参照)、あるいは、右足接地面内から左足接地面内に移動しなければならない(傾斜線C9参照)。水平線C10は、再び左足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは左足接地面内に維持されている。この場合、ロボットが歩行してX方向に移動するために、水平線C6のX座標と水平線C10のX座標は、歩幅分変化している。
目標ZMP軌道を指定する技術が特許文献1,2に記載されている。
【0005】
【特許文献1】
特開平5−305581号公報
【特許文献2】
特開2001−277158号公報
【0006】
図1に示した目標ZMPを設定しておき、歩行時に観測される実際ZMPが目標ZMPに一致するように制御することによって、ロボットは転倒しないで歩行することが可能となる。
【0007】
図31を参照して説明したように、ロボットの歩行ルート等を定める人間が、左足平位置ベクトルC、左足平姿勢ベクトルD、右足平位置ベクトルE、右足平姿勢ベクトルF、ロボットの体幹姿勢ベクトルRと体幹高さQを指定するが、それだけではロボットの位置と姿勢は決定されない。この他に、体幹位置を指定するベクトルPが決定されないとロボットの位置と姿勢は決定されない。
体幹位置を指定するベクトルPを指定すると、ロボットの位置と姿勢が決定される。ロボットの位置と姿勢が決定されると、ZMPの位置が決定される。
【0008】
ロボットの歩行ルート等を定める人間が、左足平位置ベクトルC、左足平姿勢ベクトルD、右足平位置ベクトルE、右足平姿勢ベクトルF、体幹高さQ、体幹姿勢ベクトルRを指定すると、そのデータは歩容データ作成装置360(図31)に入力されて記憶される。
左足平位置ベクトルC、左足平姿勢ベクトルD、右足平位置ベクトルE、右足平姿勢ベクトルF、体幹高さQ、体幹姿勢ベクトルRが指定されても、ロボットの位置と姿勢は決定されない。指定された「左足平位置ベクトルC、左足平姿勢ベクトルD、右足平位置ベクトルE、右足平姿勢ベクトルF、体幹高さQ、体幹姿勢ベクトルR」を実現する体幹位置ベクトルPは、一意には決定されないで、複数が存在するからである。
歩容データ作成装置360では、与えられた「左足平位置ベクトルC、左足平姿勢ベクトルD、右足平位置ベクトルE、右足平姿勢ベクトルF、体幹高さQ、体幹姿勢ベクトルR」を実現する体幹位置ベクトルPの一つを仮定する(362)。これによって、ロボットの位置と姿勢が決定され、各関節の関節角を計算することが可能となる。
図32は、通常の2足歩行ロボットのスケルトンを示し、図中のθ1〜θ12に示す12関節と13リンクを備えている。歩容データ作成装置360は、与えられた「左足平位置ベクトルC(t)、左足平姿勢ベクトルD(t)、右足平位置ベクトルE(t)、右足平姿勢ベクトルF(t)、体幹姿勢ベクトルR(t)」と、仮定された体幹位置ベクトルP(t)から、各関節の関節角θ1(t)〜θ12(t)を計算する(図31の364参照)。逆キネマ解析することによって、関節角θ1(t)〜θ12(t)を計算することができる。
各関節の関節角の時間的変化θ1(t)〜θ12(t)が計算されると、図32の13リンクを持つ力学系の運動状態が判明する。即ち、各リンクの重心位置の移動速度と加速度が判明し、路面からロボットに作用する力によるモーメントがゼロになる点の位置を計算することができる(図31の366参照)。
そうして計算されたZMP位置が目標ZMP位置に一致していれば、手段362で仮定した体幹位置ベクトルPを用いてロボットを制御すればよいことがわかる。しかしながら通常は一致せず、手段362で仮定した体幹位置ベクトルPを用いてロボットを制御すると、実際のZMPが目標ZMPからずれてしまうことがわかる。そこで、実際のZMPと目標ZMPの偏差を計算し(368)、その偏差に応じて体幹位置ベクトルPを補正する(370)。人間が、体幹位置ベクトルPを調節することによってバランスをとりながら歩行するのに対応する補正を実施する。
【0009】
体幹位置ベクトルPが補正されると、与えられた「左足平位置ベクトルC、左足平姿勢ベクトルD、右足平位置ベクトルE、右足平姿勢ベクトルF、体幹姿勢ベクトルR」と、補正された体幹位置ベクトルPから、各関節の関節角を再計算することが可能となり(372)、実際に得られるであろうZMP位置を再計算することが可能となる(374)。
ZMP偏差から体幹位置ベクトルPを補正する場合、図32に示す12関節、13リンクの複雑な力学系の場合、ZMP偏差を解消する体幹位置ベクトルPの補正量を代数的に解くことができない。そこで、ZMP偏差を小さくするであろう側に体幹位置ベクトルPを補正し、それに基づいてZMP位置を再計算する。ZMP偏差の再計算と、体幹位置ベクトルPの補正を繰返して計算するうちに、ZMP偏差を解消する体幹位置ベクトルPに収束していく。
ZMP偏差の計算と体幹位置ベクトルPの補正計算を繰返し、ZMP偏差が許容範囲内に収まる体幹位置ベクトルPが計算されると、2足で歩行するロボットが2足で歩行するために必要とする制御用データ(歩容データ)が完成する(380)。即ち、与えられた「左足平位置ベクトルC(t)、左足平姿勢ベクトルD(t)、右足平位置ベクトルE(t)、右足平姿勢ベクトルF(t)、体幹姿勢ベクトルR(t)」と、計算で求められた体幹位置ベクトルP(t)を用いてロボットが歩行すると、実際に得られるであろうZMP位置(t)が目標ZMP位置(t)に一致する関係が得られる矛盾のない制御用データが完成する。
なお計算時間を所定時間に収めるために、収束計算の繰返し回数を制約することが多い(378)。
【0010】
【発明が解決しようとする課題】
従来の技術では、与えられた「左足平位置ベクトルC(t)、左足平姿勢ベクトルD(t)、右足平位置ベクトルE(t)、右足平姿勢ベクトルF(t)、体幹姿勢ベクトルR(t)」から、与えられた目標ZMP位置ベクトル(t)をもたらす体幹位置ベクトルP(t)を計算するにあたって、図32に示した「12関節13リンク」の複雑な力学系に依拠しており、ZMP偏差から体幹位置ベクトルPの補正量を代数的に計算することができない。このために、体幹位置ベクトルPを補正してからZMP偏差を計算する処理を多数回繰返すことによって、与えられた目標ZMP位置ベクトル(t)をもたらす体幹位置ベクトルP(t)を計算する手法をとっており、その計算に長時間を要する。
その計算が単時間で終了すれば、例えばジョイスティック等で人が「左足平位置ベクトルC、左足平姿勢ベクトルD、右足平位置ベクトルE、右足平姿勢ベクトルF、体幹姿勢ベクトルR、目標ZMP位置ベクトル」を逐次に指定するのに追従して目標ZMP位置をもたらす体幹位置ベクトルPを計算することができ、人のジョイスティック操作等に追従してロボットが歩行ルートや歩行姿勢や歩行速度を変えることができる。即ち、リアルタイムで目標ZMP位置をもたらす体幹位置ベクトルP(t)を計算することができれば、リアルタイムで歩行ロボットに制御用データを指示できる。
しかながら現状では、収束計算を多数回繰返すことによって目標ZMP位置ベクトルをもたらす体幹位置ベクトルPを計算する手法をとっており、その計算に長時間を要する。リアルタイムで処理することができず、予めオフラインで目標ZMP位置ベクトルをもたらす体幹位置ベクトルP(t)を計算しておかなければならない。
【0011】
本発明は、目標ZMP位置ベクトルをもたらす体幹位置ベクトルPを短時間で計算する技術を実現することを目的とする。
好ましくは、ロボットの動作に追従して、即ち、リアルタイムで体幹位置ベクトルPを計算する技術を実現することを一つの目的とする。但し、目標ZMP位置ベクトル(t)をもたらす体幹位置ベクトルP(t)を計算するために必要な計算量が減少して計算時間が短縮化されればそれ自体で有意義であり、リアルタイムで処理できるほどには高速化されなくても、本発明の利益を享受することができる。
従来の技術では、ZMP偏差からZMP偏差を解消する体幹位置ベクトルPの補正量を計算することができない。そこで、計算を多数回繰返す計算方法をとっていた。本発明の一つの目的は、ZMP偏差からZMP偏差を解消する体幹位置ベクトルPの補正量を計算することができる技術を創作し、繰返し計算を不用とする。
従来の技術では、「左足平位置ベクトルC、右足平位置ベクトルE、体幹位置ベクトルP、体幹姿勢ベクトルR」からZMP位置を計算するにあたって、図32に示した「12関節13リンクの力学系」を用い、関節角を解いてからZMP位置を計算していた。この計算量が多いことから、体幹位置ベクトルP(t)を計算するのに時間を要していた。
本発明の他の一つの目的は、「左足平位置ベクトルC、右足平位置ベクトルE、体幹位置ベクトルP、体幹姿勢ベクトルR」から、ZMP位置を計算するにあたって、その計算量を少なくして短時間で計算できる方法を実現する。
短時間でZMP位置を計算できるようになると、繰り返しの補正処理が不要化されるために短時間化されることとあいまって、極めて高速化できる。
【0012】
【課題を解決するための手段と作用】
本発明では、歩行ロボットが歩行に用いる制御用データの作成装置を創作した。創作された制御用データ作成装置290は、図29に示すように、人が指定する「左足平位置と右足平位置と体幹姿勢」を示すデータを入力して記憶する手段292と、前記の位置と姿勢を実現する一つの体幹位置を示すデータを入力または生成して記憶する手段294と、前記のデータ群から左膝位置と右膝位置を示すデータを計算する手段296を備えている。さらに左膝位置と右膝位置と左足平近傍位置と右足平近傍位置と体幹基準点に質量が集中して存在する力学系と、前記した左足平位置と右足平位置と体幹位置と体幹姿勢と左膝位置と右膝位置を示すデータから、歩行ロボットのZMP位置を示すデータを計算する手段298を備えている。この他に目標ZMP位置を示すデータを入力して記憶する手段292を備えており、計算されたZMP位置と目標ZMP位置の偏差を計算することができる(300)。創作された制御用データ作成装置290は、ZMP位置の偏差を解消する側に体幹位置を示すデータを補正する手段310を備えており、その補正手段310は、体幹位置を示すデータを補正すると左膝位置と右膝位置が変化して「計算されるZMP位置」が変化する関係を利用して、体幹位置を示すデータを補正することを特徴とする。
【0013】
上記の制御用データ作成装置290は、入力して記憶した左足平位置と右足平位置と体幹姿勢を示すデータと、その位置と姿勢を実現する一つの体幹位置を示すデータを用いる。その一つの体幹位置を示すデータは仮に用いるものであり、人が指定してもよいし、歩容データ作成装置290で生成してもよい。上記のデータ群によってロボットの位置と姿勢は決定される。本装置では、上記のデータ群から、左膝位置と右膝位置を示すデータを計算する(296)。この計算は、ロボットの寸法データから幾何学的に計算することができ、各関節の関節角を算出するよりもはるかに少ない計算量で済ませることができる。
本装置では、ロボットの位置と姿勢と運動状態からZMP位置を計算するにあたって、従来の「12関節13リンク」という複雑な力学系を用いず、代わって左膝位置と右膝位置と左足平近傍位置と右足平近傍位置と体幹基準点に質量が集中して存在する力学系を用いる。集中した質量が上記位置に存在するとした力学系を用いることによって、歩行ロボットのZMP位置を少ない計算量で正確に計算できることが検証された。本装置では、上記手段292,294,296,298によって少ない計算量で短時間でZMP偏差を計算することができるようになった。
本装置290では、体幹位置を示すデータから、与えられた左足平位置と右足平位置と体幹姿勢を実現する「左膝位置と右膝位置を示すデータ」を計算し、ZMP位置を示すデータを計算する。この計算方法によると、体幹位置を示すデータをどれだけ補正すると左膝位置と右膝位置を示すデータがどれだけ変化してZMP位置を示すデータがどれだけ変化するかを知ることができる。即ち、体幹位置を示すデータを補正すると、左膝位置と右膝位置が変化してZMP位置が変化する関係を利用することができる。補正手段310では、上記関係を利用して体幹位置を示すデータの補正量を求める。本補正手段310によると、繰返し計算して補正量を収束させる必要がなく、一度の補正でZMP偏差を解消することができる。
本装置290によると、歩行ロボットが歩行に用いる制御用データ(歩容データ)を、少ない計算量で短時間で計算することが可能となる。
なお、歩容データ作成装置290に、左足平姿勢を示すベクトルDと、右足平姿勢を示すベクトルFを入力することが多いが、後記するように、足平姿勢の変化パターンを規格化することができ、左足平姿勢ベクトルDと右足平姿勢ベクトルFの入力は不可欠でない。
【0014】
本装置290によると、体幹位置を示すデータを一回補正するだけでZMP偏差を解消することができる。精度を向上させるために、体幹位置を示すデータをさらに補正することもでき、補正回数を2回、3回と繰返すことでZMP偏差を正確にゼロに近づけることができる。その場合でも、繰返して計算して解を収束させる方式に比較すれば格段に少ない繰返し回数ですむ。
【0015】
ZMP位置を計算する際には、左膝位置と右膝位置と左足平近傍位置と右足平近傍位置と体幹下部基準点と体幹上部基準点に質量が集中して存在する6質点の力学系を用いて、ZMP位置を示すデータを計算することが好ましい。
体幹に対して1つの質点を与える力学系を用いることが可能であり、体幹下部基準点と体幹上部基準点に分けることが必ずしも必要ではないが、体幹下部基準点と体幹上部基準点に分けることによって体幹姿勢を正確に反映することができるために、ZMP位置の計算精度が向上する。
【0016】
図30に模式的に示すように、左足平近傍位置に、左脛下半分324の質量と左足首322の質量と左足平320の質量の合計質量M1が集中して存在し、右足平近傍位置に、右脛下半分340の質量と右足首338の質量と右足平336の質量の合計質量M3が集中して存在し、左膝位置に、左脛上半分326の質量と左膝関節328の質量と左腿下半分330の質量の合計質量M2が集中して存在し、右膝位置に、右脛上半分342の質量と右膝関節344の質量と右腿下半分346の質量の合計質量M4が集中して存在し、体幹下部基準点に、左腿上半分332の質量と左股関節334の質量と右腿上半分348の質量と右股関節350の質量と体幹下半分352の質量の合計質量M5が集中して存在し、体幹上部基準点に、体幹上半分354の質量M6が集中して存在する力学系を用いて、ZMP位置を示すデータを計算することが好ましい。
この力学系は、簡単でありながらロボットを精度よくモデル化しており、計算の簡単化を損ねることなくZMP位置の計算精度を向上させる。
【0017】
特に、体幹下部基準点と体幹上部基準点の高さが、水平軸回りの体幹の慣性モーメントの大きさを維持する高さに設定されていることが好ましい。
体幹は質量が大きく、ZMP位置の計算にあたって慣性モーメントを加味することが好ましい。特に、垂直軸回りの慣性に比して水平軸回りの慣性がZMP位置に大きく影響する。体幹下部基準点と体幹上部基準点の高さが、水平軸回りの体幹の慣性モーメントの大きさを維持する高さ、即ち、体幹の実際の慣性モーメントをもたらす高さに設定されていると、水平軸回りの体幹の慣性モーメントを正確に考慮してZMP位置を計算することができる。
【0018】
本発明は、歩行ロボットのZMP位置の新たな計算方法をも創作した。本発明で創作された方法では、歩行ロボットをモデル化した「左膝位置と右膝位置と左足平近傍位置と右足平近傍位置と体幹基準点に質量が集中して存在する力学系」を用いて歩行ロボットのZMP位置を示すデータを計算する。
本方法によると、関節角を求める必要がなくなり、極めて少ない計算量でZMP位置を示すデータを計算することが可能となる。
【0019】
ZMP位置を示すデータを計算するにあたって、体幹については体幹上部基準点と体幹下部基準点に質量が集中して存在するモデルを用いることが好ましい。即ち、歩行ロボットをモデル化した「体幹上部基準点と体幹下部基準点と左膝位置と右膝位置と左足平近傍位置と右足平近傍位置に質量が集中して存在する力学系」を用いてロボットのZMP位置を示すデータを計算することが好ましい。
【0020】
歩行ロボットをモデル化した「体幹上部基準点と体幹下部基準点と左膝位置と右膝位置と左足平近傍位置と右足平近傍位置に質量が集中して存在する力学系」と、左足平位置と右足平位置と左膝位置と右膝位置と体幹位置と体幹姿勢を示すデータとから、歩行ロボットのZMP位置を示すデータを計算すると、左足平位置と右足平位置と体幹位置と体幹姿勢から幾何学的に計算することができる左膝位置と右膝位置を用いてZMP位置を示すデータを計算することができ、ZMP位置を示すデータを少ない計算量で短時間で計算することができる。
【0021】
本発明で創作されたZMP位置計算方法は、2足歩行ロボットに限られない。脚の数に限定されない。即ち、ロボットをモデル化した「体幹基準点と膝位置と足平近傍位置に質量が集中して存在する力学系」と、体幹位置と膝位置と足平位置の経時的変化を示すデータとから、歩行ロボットのZMP位置を示すデータを計算するということができる。
この方法によると、2脚以上の任意の数の脚を用いて歩行するロボットのZMP位置を示すデータを、少ない計算量で短時間で計算することができる。
【0022】
【発明の実施の形態】
下記に説明する実施例の主要な特徴を最初に整理する。
(形態1)体幹の位置と姿勢を示すデータから左右の股関節の位置を示すデータを計算する。左股関節の位置と左足平の位置を示すデータから左膝の位置を計算するデータを計算する。右股関節の位置と右足平の位置を示すデータから右膝の位置を計算するデータを計算する。
(形態2)体幹の位置を示すデータの補正量ΔPに、係数をかけることによって膝関節の位置の移動量を計算する。
【0023】
【実施例】
図5は、2足歩行ロボットが2足で歩行するために必要とする制御用データ(歩容データ)を作成する歩容データ作成装置1を示している。この歩容データ作成装置1は、2足歩行ロボットを実際に歩行させるのに先立って用いられ、2足歩行ロボットを実際に歩行させるために必要な制御用データを作成する。この装置1で作成された歩容データは、2足歩行ロボットに伝達される。2足歩行ロボットは、伝達された歩容データに従って動作することによって歩行する。
歩容データ作成装置1は、十分に高速に歩容データを作成することができ、実質上リアルタイムで歩容データを作成することができる。歩行ロボットが歩行している様子を見ながら、人がジョイスティック等を使って次の一歩の足の運びを指定してから、次の一歩を実際に実施するまでの短時間の間に、次の一歩のための歩容データを作成することができるために、実質的にはリアルタイムで歩容データを作成することができる。
【0024】
オペレータが、歩行指令データ(歩容データ)作成装置1に、歩行ロボットを歩行させたいコース等のデータを入力する。具体的には、図5の左下の(A)に示される、5個のベクトルと1個のスカラ量を入力する。ベクトルCは左足平位置ベクトルであり、座標原点Oから見たロボットの左足平位置を示す。ベクトルDは左足平姿勢ベクトルであり、左足平の向きを示す。ベクトルEは右足平位置ベクトルであり、座標原点Oから見たロボットの右足平位置を示す。ベクトルFは右足平姿勢ベクトルであり、右足平の向きを示す。ベクトルRは体幹姿勢ベクトルであり、ロボットの体幹の向きを示す。人間の背骨に相当する部材が伸びる方向を示す。ロボットの胴部が腰部(下胴部)と上胴部に分離されている場合には、腰部が体幹に相当し、体幹姿勢ベクトルRは腰部に垂直な方向を定義する。Qは、体幹高さであり、人間で言う腰位置の高さに相当する。オペレータは、これらの5種のベクトルと1種のスカラ量を時系列に従って次々に入力する。なお、このためのデータ入力支援ソフトが開発されており、主要タイミングでのデータを指定することで、時系列での中間データが補完計算されるようになっている。また、一歩分の入力データを繰り返して利用するように指示することで、入力量を低減することができる。
オペレータがジョイスティック等で歩行コースや歩行速度等を指示することもある。一歩分の標準的な足平姿勢ベクトルの変化パターンと体幹姿勢ベクトルの変化パターンと体幹高さの変化パターンを記憶しておくと、オペレータがジョイスティック等で歩行コースや歩行速度を指示するによって、一歩分の5種ベクトルC(t),D(t),E(t),F(t),R(t)と1種スカラ量Q(t)を生成して記憶することができる。
歩容データを作成するのに必要な5種のベクトルC(t),D(t),E(t),F(t),R(t)と1種スカラ量Q(t)は、歩容データ作成装置1に入力されて記憶装置2に記憶される。
【0025】
オペレータは、さらに、目標ZMP位置ベクトルを時系列に従って入力する。この場合、ベクトルC〜Fによって、左足接地状態・両足接地状態・右足接地状態の別がわかっていることから、左足接地状態では左足接地面内の位置を指定し、右足接地状態では右足接地面内の位置を指定する。ベクトルC〜Fを用いることによって、目標ZMP位置ベクトル(ZMP*ベクトル)を指定することができる。
【0026】
図1は、目標ZMP位置ベクトルの設定方法を示している。この場合、ロボットはX方向に歩行する。歩行方向に直交する方向をY方向とする。ロボットは、両足接地期間と片足接地期間を交互に繰返して歩行する。片足接地期間内の目標ZMPは、接地足の接地面内になければならない。さもなければ、実際ZMPを目標ZMPに一致させてもロボットは転倒してしまう。両足接地期間内の目標ZMPは、2つの接地面を結ぶ領域にあればよい。Y方向の現象を考察すると明らかに、両足が接地している期間内に、目標ZMPは左足接地面内から右足接地面内に移動しなければならない(傾斜線C2参照)。あるいは、右足接地面内から左足接地面内に移動しなければならない(傾斜線C4参照)。水平線C1は、左足のみが接地している場合の目標ZMPを示し、目標ZMPは左足接地面内に維持されている。水平線C3は、右足のみが接地している場合の目標ZMPを示し、目標ZMPは右足接地面内に維持されている。
【0027】
X方向の目標ZMPもほぼ同様の条件を満たす必要がある。水平線C6は、左足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは左足接地面内に維持されている。水平線C8は、右足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは右足接地面内に維持されている。両足が接地している期間内に、X方向の目標ZMPは左足接地面内から右足接地面内に移動し(傾斜線C7参照)、あるいは、右足接地面内から左足接地面内に移動しなければならない(傾斜線C9参照)。水平線C10は、再び左足のみが接地している場合のX方向の目標ZMPを示し、X方向の目標ZMPは左足接地面内に維持されている。この場合、ロボットが歩行してX方向に移動するために、水平線C6のX座標と水平線C10のX座標は、歩幅分変化している。ベクトルC〜Fを用いることによって、目標ZMP位置ベクトルを指定することができる。
【0028】
図1に示した目標ZMPを設定しておき、歩行時に観測される実際ZMPが目標ZMPに一致するように制御することによって、ロボットは転倒しないで歩行することが可能となる。
しかしながら、図1に示す目標ZMPは、時間に対して、静止・等速変化・静止・等速変化・・・を繰返す。静止から等速変化に切り替わるタイミングや、等速変化から静止に切り替わるタイミングでは、無限大の加速度または減速度が必要とされ、ロボットには大きな負荷が作用する。またロボットの動作はぎこちないものとなる。これらの要素が、ロボットの最大歩行速度を低く抑えている。
【0029】
無限大の加速度または減速度が必要とされる目標ZMPの変化パターンを修正する試みがいくつかなされている。図2(B)は、図2(A)のパターンを遅延処理することによって平滑化したものであり、平滑化することによって、必要な加速度や減速度の最大値を小さく抑えることができる。
遅延処理して平滑化した目標ZMPは、歩行パターンに比して遅れるために、ロボットの歩行姿勢が安定しないという問題が生じる。図2(B)のP12は、両足接地状態から右足接地状態に移行するタイミングに相当する。このときには目標ZMPが右足接地面内になければならない。しかしながら、図2(B)に示すように、遅延処理して平滑化した目標ZMPの変化パターンは遅すぎ、例えば右足接地面内になければならないときにまだ右足接地面内にないことがあり、その遅れがロボットの歩行姿勢を不安定なものとし、ひどい場合には転倒してしまうことになる。
なお本明細書では「右足接地状態」という場合は、右足のみが接地している状態を意味する。両足接地状態でも右足は接地しているが、その場合には両足接地状態といい、右足接地状態とはいわない。左足接地状態も同様である。
【0030】
図2(C)は、目標ZMPのシャープな変化点をスムージング処理した目標ZMPを示している。スムージング処理することによって、必要な加速度や減速度の最大値を小さく抑えることができる。
スムージング処理した目標ZMPは、歩行パターンに比して、早すぎたり遅すぎたりするためにロボットの歩行姿勢が安定しないという問題が生じる。図2(C)のP13は、両足接地状態に移行する直前であって左足接地状態にまだあるタイミングに相当する。それにも係わらず、目標ZMPは左足接地面内から外れ始めている。これでは早すぎる。図2(C)のP14は、両足接地状態から右足接地状態に移行するタイミングに相当する。このときには、目標ZMPが右足接地面内になければならない。それにも係わらず、目標ZMPはまだ右足接地面内にない。これでは遅すぎる。スムージング処理した目標ZMPは、歩行パターンに比して早すぎたり遅すぎたりし、そのずれがロボットの歩行姿勢を不安定なものとし、ひどい場合には転倒してしまうことになる。
【0031】
現在の技術では、図2(A)に示した目標ZMP軌道が持つ問題点を、新たな問題が起こらないようにして解決することができず、ロボットの高速歩行を妨げる一つの要因となっている。この問題に対して、本実施例では、下記のように対応する。
【0032】
図1に例示されるように、入力された目標ZMPは時間軸に沿ってみると急激に変化する。図5に示される歩行指令データ作成装置1には、時間に対して急激に変化する目標ZMPを円滑化した軌道に変換する円滑処理部7が用意されている。処理部7では、図2(A)に例示された時間的に急激に変化する目標ZMPを、図2(D)に例示するように、当加速度軌道Aと等速度軌道Bと等減速度軌道Cで生らかに接続する軌道に変換する。
等加速度軌道Aでは、2足方向ロボットが無理なく実現できる最高加速度を維持するものとする。等加速度軌道Aによって目標ZMPの移動速度は増速する。目標ZMPの移動速度が2足方向ロボットの最高速度に到達すると、以後は等速度軌道Bを採用する。反対足側の目標ZMPに接近すると、等減速度軌道Cに切り変える。等減速度軌道Cでは、2足方向ロボットが無理なく実現できる最高減速度を維持するものとする。等減速軌道Cによって目標ZMPの移動速度はゼロとなる。ゼロになったときに、目標ZMPが反対足側の目標ZMPに一致する軌道が計算される。これは、あたかも、電車が加速して最高速度を維持して減速して停止するのと同様であり、無理無駄のかからない運動パターンである。減速して所定位置に停止させる軌道を計算する様々な技術が開発されている。
図2(D)は、等加速度軌道Aと等速度軌道Bと等減速度軌道Cを含む軌道で接続した目標ZMP軌道の一例を示しており、点P15に示すように、両足接地状態に移行するのを待ってから目標ZMPは他方の足側に移動するから、目標ZMPの変化が早すぎるという問題はない。一方点P16に示すように、両足接地状態から片足接地状態に変化するのに先立って、目標ZMPは片足接地面内の位置に移動しており、目標ZMPの変化が遅すぎるいう問題もない。図2(E)は、目標ZMPの移動速度の時間変化を示し、等加速度軌道で増速し(A)、最高速度に達すれば最高速度を維持し(B)、ついで等減速度で減速する(C)。
【0033】
図2では、片足接地期間内の目標ZMPが静止しているとした。しかしながら片足接地期間内の目標ZMPが静止している必要はなく、例えば、踵方向から爪先方向に移動してもよい。片足接地期間内の目標ZMPは、接地している足の接地面内にあればよく、人間の場合には、踵方向から爪先方向に移動する。
図3は、片足接地期間内に踵方向から爪先方向に移動する目標ZMPの軌道(C11、C12、C13)を、等加速度軌道と最高速度の等速度軌道と等減速度軌道によって接続した軌道C14を例示している。等加速度軌道は、片足接地期間内に踵方向から爪先方向に移動する目標ZMPの移動速度で開始し、等減速度軌道は、片足接地期間内の目標ZMPの移動速度で終了する。目標ZMPの移動速度は連続的に変化し、不連続な変化が生じない。
図3のC15は、従来の技術で接続した目標ZMPの軌道を示し、速度が不連続に変動するために、ロボットは大きな加速度または減速度で動作することが求められる
【0034】
図2、図3に例示した軌道は、時間軸に対するX座標またはY座標の変化を示す。ここでは、ロボットが最高速度で歩行するものとして時間軸を設定する。等加速度軌道、等速度軌道、等減速度軌道では、ロボットの能力の範囲内で可能な最高加速度、最高速度、最高減速度で計算する。
歩行指令データ作成装置1で作成されたデータは、時間軸を引き伸ばしてロボットに教示されることがある。例えば、時間軸に対して図4(A)に例示されるパターンで設定された目標ZMP軌道を、図4(B)に示すように、徐々にゆっくりしたパターンに変換してロボットに教示することがある。この場合、ロボットの動作は徐々に緩やかになる。歩行指令データ作成装置1で作成された1秒分のデータを、2秒分のデータとしてロボットに教示すると、ロボットの動作速度は半分に低下する。あるいは、ロボットに教示された歩行指令データを実行する段階で、時間軸を引き伸ばして実行することによって動作をゆっくりさせることもある。歩行指令データ作成装置1で作成した段階では、等加速度軌道、等速度軌道、等減速度軌道であったものが、ロボットの実際の動作段階では、等加速度軌道、等速度軌道、等減速度軌道にならないことがある。本技術は、最高速度で想定する目標ZMP軌道の算出に用いられるものであり、その段階で、等加速度軌道、等速度軌道、等減速度軌道で接続することが重要であり、ロボットの実際の動作段階では、等加速度軌道、等速度軌道、等減速度軌道にならなくてもかまわない。
【0035】
図5に示す歩容データ作成装置1は、オペレータが入力した5種のベクトルと1種のスカラ量に基づいて、実際に生じるであろうZMPを計算して目標ZMPとの偏差を求め、そのZMP偏差から目標ZMPをもたらす体幹位置ベクトルPを計算して歩容データを作成する。
手段3は、5種のベクトルと1種のスカラ量で定義されるロボットの位置と姿勢を実現する一つの体幹位置を示すデータを生成する。5種のベクトルと1種のスカラ量で定義されるロボットの位置と姿勢を実現する体幹位置は複数存在するので一意に決定することができない。ここでは任意の一個を採用する。体幹位置ベクトルPを生成すると、6種のベクトルC,D,E,F,P,Rが揃うので、ロボットの位置と姿勢が一意に決定される。
【0036】
ここで用いる体幹ベクトルPは、仮に用いられるものであり、後述する手段9によって補正されるので、ラフなものでよい。人が指定して歩容データ作成装置1に入力して記憶してもよいし、歩容データ作成装置1で生成してもよい。
【0037】
体幹位置ベクトルPに対する、体幹姿勢ベクトルRや足先位置ベクトルC,Eや足先姿勢ベクトルD,Fや体幹高さQや目標ZMPベクトルの変化パターンを規格化しておくことができる。一歩分の変化パターンが規格化されていれば、人が体幹位置ベクトルPを指定することによって、歩容データ作成装置1が必要とする5種のベクトルと1個のスカラ量を入力することができる。体幹位置ベクトルPはジョイスティック等を利用して指定することができる。歩行するロボットを観測しながらジョイスティック等を操作して体幹位置ベクトルPをリアルタイムで入力することが可能である。
体幹位置ベクトルPをリアルタイムで入力することができ、歩容データ作成装置1が必要とする5種のベクトルと1個のスカラ量をリアルタイムで入力することができ、歩容データ作成装置1がリアルタイムの制御に間に合うほど高速に歩容データを作成できれば、2足歩行ロボットの歩行をリアルタイムで指定することができる。
【0038】
体幹の位置Pと姿勢Rが決定されれば、左右の股関節の位置が決定する。左足平位置Cと左足平姿勢Dが決定されれば、左足首の位置が決定する。左股関節の位置と左足首の位置が決定されれば、左膝の位置Gが決定される。左腿の長さと左脛の長さが既知であり、左膝関節の回転自由度が1自由度しかないことから、左股関節の位置と左足首の位置が決まれば左膝の位置Gが一意に決定される。同様に、右足平位置Eと右足平姿勢Fから、右足首の位置が決定する。右股関節の位置と右足首の位置から、右膝の位置Hが決定される。
手段4は、上記の幾何学的関係を利用して、左膝位置ベクトルGと右膝位置ベクトルHを計算する。
手段5では、ロボットのZMP位置を計算する。ここでは、図30に示した6質点系モデルを用いる。
6質点を持つ力学系では、左足平近傍位置に、左脛下半分324の質量と左足首322の質量と左足平320の質量の合計質量M1が集中して存在し、右足平近傍位置に、右脛下半分340の質量と右足首338の質量と右足平336の質量の合計質量M3が集中して存在し、左膝位置に、左脛上半分326の質量と左膝関節328の質量と左腿下半分330の質量の合計質量M2が集中して存在し、右膝位置に、右脛上半分342の質量と右膝関節344の質量と右腿下半分346の質量の合計質量M4が集中して存在し、体幹下部基準点に、左腿上半分332の質量と左股関節334の質量と右腿上半分348の質量と右股関節350の質量と体幹下半分352の質量の合計質量M5が集中して存在し、体幹上部基準点に、体幹上半分354の質量M6が集中して存在するものとする。
【0039】
質点M1の位置は、左足平近傍位置にあればよく、左足首関節位置からずれていてもよく、左足平位置ベクトルCの終点からずれていてもよい。質点M3の位置は、右足平近傍位置にあればよく、右足首関節位置からずれていてもよく、右足平位置ベクトルEの終点からずれていてもよい。これに対し、質点M2の位置は、左膝関節置にあるとするのが極めて効果的であり、左膝関節置に質量が集中して存在しているとすることによって、ZMP位置の計算が極めて簡単化され、体幹位置の補正量の計算が極めて簡単化される。同様に、質点M4の位置は、右膝関節置にあるとするのが極めて効果的である。
質点M5とM6は人間の背骨上に存在している。その高さは、集中質量M5とM6を用いて体幹の水平軸回りの慣性モーメントを計算した値と、実際の体幹の水平軸回りの慣性モーメントが一致する高さに設定しておくことが好ましい。
【0040】
図5の手段5では、手段4で決定されるロボットの位置と姿勢の変化から、質点M1〜M6の速度と加速度と、集中質量M5とM6による水平軸回りの慣性モーメントを利用して、ロボットに生じるZMP位置を計算する。
【0041】
図5に示す歩容データ作成装置1は、目標ZMP位置を示すデータを入力して記憶する手段6と、それを円滑化した目標ZMP位置を示すデータを記憶する手段7を備えており、手段3で計算されたZMP位置と、手段7に記憶されている目標ZMP位置との偏差を計算することができる(手段8)。
歩容データ作成装置1は、手段8で計算されたZMP偏差を解消するのに必要な体幹位置ベクトルの補正量を計算して、目標ZMP位置と等しいZMP位置が計算される体幹位置ベクトルPを計算する手段9を備えている。
手段9は、体幹位置を示すデータをどれだけ補正すると左膝位置と右膝位置を示すデータがどれだけ変化してZMP位置を示すデータがどれだけ変化するか示関係を利用して体幹位置を示すデータの補正量を求める。補正手段9によると、繰返し計算して補正量を収束させる必要がなく、一度の補正でZMP偏差を解消することができる。
体幹位置の補正量から左膝位置と右膝位置の移動量を計算するにあたって、体幹位置の補正量ΔPに係数をかけることによって左膝位置と右膝位置の移動量を計算するようにすると計算が一層に簡単化される。体幹高さと膝位置高さの比例係数を利用することによって、体幹位置の補正量ΔPから左膝位置と右膝位置の移動量を簡単に計算することができる。
【0042】
図5の参照数字9aは、体幹位置ベクトルPをΔPだけ補正することによってZMP偏差が解消される様子を概念的に示しており、補正量ΔPだけ補正した新たな体幹位置ベクトルを用いて左膝位置と右膝位置を示すデータを計算してZMPを計算すると、目標ZMP位置にほぼ一致するZMP位置が計算されることを示している。
【0043】
上記によって、目標ZMP位置にほぼ一致するZMP位置が計算されるが、体幹位置ベクトルPを1回補正しただけでは、なおもZMP偏差が十分に解消されない場合がある。この場合、手段4以降を再度活用して2回補正すると、ZMP偏差をさらに解消することができる。
【0044】
図33の(a)は、Y方向の目標ZMPの経時的変化を示している。図中の(b)は、その拡大図を示し、カーブ392は、本実施例の技術によって体幹位置ベクトルPを1回補正することによって得られた歩容データから計算されたZMPの経時的変化を示している。与えられた目標ZMPの経時的変化390によく一致している。カーブ394は、従来の技術によって収束計算を10回繰返した後の歩容データから計算されたZMPの経時的変化を示している。与えられた目標ZMPの経時的変化に十分に一致せず、特にオーバーシュートが大きいことがわかる。
本実施例の技術によって、目標ZMPによく追従する歩容データを、少ない計算量で短時間で計算できることが検証されている。
【0045】
次に2足歩行ロボットの機械的構造を、図6〜18を参照して説明する。本明細書では、足部の前後方向(ロボットの進行方向)をX軸とし、左右方向をY軸とし、垂直軸をZ軸とする。各軸は相互に直交している。図6は本実施例の2足歩行ロボットの両下肢の正面図であり、図7は左下肢の側面図であり、図8は足首関節の構造を説明するための図であり、図9はアクチュエータの詳細を説明する図であり、図10〜13は足部の動きを説明する図である。なお、左右の下肢形状は鏡対称である
【0046】
図6に示すように、本実施例のロボット10の左右の下肢12は、大腿部14と下腿部(脛)16と足部18から構成され、大腿部14と胴体部20は股関節22によって接続されており、大腿部14と下腿部16は膝関節24によって接続されており、下腿部16と足部18は足首関節26によって接続されている。
【0047】
最初に股関節22について説明する。ほぼ水平に伸びる板状の骨盤部28には、図7に示すように、Z軸回りに回転する円板36がベアリング34によって取付けられている。円板36は、図6において左右に一対設けられている。各円板36の中心には、骨盤部28側から大腿部14側に伸びる(Z軸方向に伸びる)シャフト30が固定されている。シャフト30は骨盤部28に対してZ軸回りに回転する。板状の骨盤部28には、体幹が固定されている。
シャフト30の下端に対して大腿部14の上端がユニバーサルジョイント32によって接続されている。ユニバーサルジョイント32は、十字型自在継手を備えており、シャフト30に対して大腿部14がX軸回りとY軸回りに回転することを許容する。股関節22は、骨盤部28に対してZ軸回りに回転できるシャフト30と、シャフト30に対して大腿部14がX軸回りとY軸回りに回転することを許容するユニバーサルジョイント32を持ち、X,Y,Z軸のそれぞれの回りに回転することを許容する3軸関節である。
【0048】
次に膝関節24を説明する。各大腿部14の下端にはY軸方向に平行に並ぶ2つのフランジ40が下方へ伸びており、各下腿部16を構成するシャフト42の上端にはY軸方向に平行に並ぶ2つのフランジ44が上向きに設けられている。膝関節24は、これらのフランジ40,44を貫通してY軸方向に伸びる軸46を備える。膝関節24は、大腿部14に対して下腿部16がY軸回りに回転することを許容する。
【0049】
次に足首関節26を説明する。図8は足首関節26の構造を説明するために単純化してデフォルメした図であり、実際の形状や寸法とは必ずしも一致しない。下腿部16のシャフト42の下部にはX軸方向に平行に並んだ2つのフランジ58が下方に伸びている。また、足部18の上面にはY軸方向に平行に並んだ2つのフランジ60が上方に伸びている。これら下腿部16のフランジ58と足部18のフランジ60は十字型自在継手62によって接続されてユニバーサルジョイントを成している。足首関節26は、下腿部24に対して足部18が、X軸回りとY軸回りに回転することを許容する。即ち、足首関節26はX,Y軸のそれぞれについて自由度を持つ2軸関節である。
【0050】
各関節はワイヤによって駆動される(股関節のZ軸回りの回転を除く。この回転のみはワイヤを利用せずに、モータで直接に回転される)。各ワイヤの一端は末端側部材に取付けられており、他端はモータと送りネジから構成されるアクチュエータに接続されている。モータによって送りネジ(Z方向に伸びる)が回転すると、送りネジに螺合しているナットが送りネジ方向に送られ、ナットに接続されているワイヤ先端がZ軸方向に進退する。ワイヤ先端をZ軸方向に進退させることによってワイヤによって末端側部材を引いたり緩めたりすることができる。
【0051】
最初に図7と8を参照して足首関節を回転させるワイヤ群を説明する。足部18には、図示しない取付け板によってワイヤ終端ガイド70a,70b,70cが固定されている。各ワイヤ終端ガイド70a,70b,70cは円弧形状であり、それぞれの円弧の中心軸はY軸方向に伸びており、円弧面は所定の巾(Y軸に沿って伸びる距離)を有している。ワイヤ終端ガイド70aは足首関節26のY軸よりも前方に位置し、X軸上配置されている。その円弧面はX軸前方を向いている。ワイヤ終端ガイド70b,70cは足首関節26のY軸よりも後方に位置している。ワイヤ終端ガイド70bは足首関節26のX軸よりも外側に位置し、ワイヤ終端ガイド70cは足首関節26のX軸よりも内側に位置している。ワイヤ終端ガイド70b,70cの円弧面はX軸後方を向いている。
3本のワイヤ66a,66b,66cの下端は、ワイヤ終端ガイド70a,70b,70cのそれぞれの下端のワイヤ接続点72a,72b,72cに固定されており、各ワイヤ66a,66b,66cの他端は、膝関節24側に伸びている。各ワイヤ終端ガイド70a,70b,70cの円弧面はワイヤ66a,66b,66cが小さな曲率半径で鋭く曲がることを禁止している。
【0052】
ワイヤ接続点72aは足首関節26のY軸よりも前方に位置しており、ワイヤ66aが膝関節24側に引かれると足部18は足首関節26のY軸回りに回転して爪先を持ち上げる。ワイヤ接続点72aは足首関節26のX軸上に配置されており、ワイヤ66aが膝関節24側に引かれても足部18のX軸回りの回転角には影響しない。ワイヤ接続点72bは足首関節26のX軸よりも外側に位置しており、ワイヤ66bが膝関節24側に引かれると足部18は足首関節26のX軸回りに回転して足部18の外側を持ち上げる。ワイヤ接続点72cは足首関節26のX軸よりも内側に位置しており、ワイヤ66cが膝関節24側に引かれると足部18は足首関節26のX軸回りに回転して足部18の内側を持ち上げる。足部18の内側を持ち上げる場合には、ワイヤ66cを引くと同時にワイヤ66bを緩めて足部18の外側が下がることを許容する。同様に、足部18の外側を持ち上げる場合には、ワイヤ66bを引くと同時にワイヤ66cを緩めて足部18の内側が下がることを許容する。足部18を足首関節26のX軸回りに回転させる場合にはワイヤ66aを操作する必要はない。ワイヤ66b、66cを同時に引くと足部18は足首関節26のY軸回りに回転してかかとを持ち上げる。この場合には、ワイヤ66aを緩めて爪先が下がるのを許容する。ワイヤ66aを引いて爪先を持ち上げるときには、ワイヤ66b、66cを緩めてかかとが下がるのを許容する。
3本のワイヤ66a、66b、66cによって、足首関節26のX軸回りの回転角とY軸回りの回転角を独立に調整することができる。
【0053】
なお、ワイヤ接続点を足首関節26のY軸よりも前方のX軸の両側と、Y軸よりも後方のX軸上に配置してもよい。このようにワイヤ接続点を配置しても、ワイヤによって足首関節26のX軸回りの回転角とY軸回りの回転角を独立して調整することができる。
【0054】
図10〜13は足部18の動きを説明するための模式図であり、図10と図11はX軸回りの回転を説明するための図である。図10は足部18の平面図であり、図11は足部18の背面図である。各ワイヤ66a,66b,66cの終端ではワイヤ終端ガイド70a,70b,70cの図示を省略し、ワイヤ接続点72a,72b,72cのみで示してある。
【0055】
図10は、ワイヤ接続点72aに接続されているワイヤ(図示省略)は中立状態を維持しながらワイヤ接続点72bに接続されているワイヤ66bの有効長を収縮させ、ワイヤ接続点72cに接続されているワイヤ66cの有効長を伸長させることを示している。このとき、足部18は図11の破線で示したようにX軸回りに矢印の方向に回転する。また、ワイヤの有効長の伸長・収縮を逆にすると、足部18は矢印とは逆方向に回転する。即ち、このようにワイヤの有効長の伸長・収縮を調整することによって、足部18をX軸の回りに自在に回転させることができる。
【0056】
図12と図13はY軸回りの回転を説明するための図である。図12は足部18の平面図であり、図13は足部18の側面図である。各ワイヤ66a,66b,66cの終端ではワイヤ終端ガイド70a,70b,70cの図示を省略し、ワイヤ接続点72a,72b,72cのみで示してある。図12はワイヤ接続点72aに接続されているワイヤ66aの有効長を収縮させ、ワイヤ接続点72b,72cに接続されているワイヤ66b,66cの有効長を共に伸長させた場合を示している。このとき、足部18は図13の破線で示すように、Y軸回りに矢印の方向に回転する。また、ワイヤの有効長の伸長・収縮を逆にすると、足部18は矢印と逆方向に回転する。このようにワイヤの有効長の伸長・収縮を調整することによって、足部18をY軸の回りに自在に回転させることができる。
なお、足部18の前側を持ち上げるのに要するワイヤの張力に比べ、足部18の後ろ側を持ち上げるのに要するワイヤの張力は大きい。このため、3点のワイヤ接続点72a,72b,72cのうちの1点を前側にし、2点を後側にし、2本のワイヤと2個のアクチュエータでかかとを持ち上げることが好ましい。この場合、各アクチュエータの能力を等しくすることができる。
【0057】
なお図示はしないが、足部18を同時にX軸回りにもY軸回りにも回転させることができる。例えば、ワイヤ66bの有効長を速度a−bで収縮させ、ワイヤ66cの有効長を速度a+bで伸長させ(即ち−a−bで収縮させる)、ワイヤ66aの有効長をbで収縮させると、足部18はX軸の回りに速度aで回転して外側が上がり、且つ、Y軸の回りに速度bで回転して前側が上がる。このように3本のワイヤの有効長を同時に調整すると、足部18をX軸の回りとY軸の回りに同時に自在に回転させることができる。またX軸回りの回転速度とY軸回りの回転速度を自在に調整することもできる。これらのことから、X,Yの2軸に対して3本のワイヤ、即ち、軸数+1本のワイヤを用いることによって、X,Y軸について互いに独立に調整することが可能である。
【0058】
図8に示すように、下腿部16のシャフト42の上部には、フランジ44を貫通するY軸方向の軸46の回りに自由回転可能な3つのプーリ64a,64b,64cが2つのフランジ44と交互に配されている。それぞれのプーリ64a,64b,64cにはワイヤ66a,66b,66cが1本ずつ巻かれている。ワイヤ66a,66b,66cは、プーリ64a,64b,64cの前側でプーリから離反している。ワイヤ66a,66b,66cは足部18に対して膝関節の前方位置から引張力を加える。このために、3本のワイヤ66a,66b,66cを同時に同一速度で収縮させると、下腿部16に対する足部18の回転角度は変えないで(足首関節26を回転させないで)、下腿部16を膝関節24の回りに前向きに回転させることができる。
【0059】
図8に明瞭に示されている3本のワイヤ66a,66b,66cの上端はアクチュエータ68a,68b,68c(図6、図7参照)に接続されている。図6と7では図示の明瞭化のためにアクチュエータが簡略化されて表示されている。図9はアクチュエータ68の詳細を模式的に示しており(すべてのアクチュエータは同様の構造を有するために、添え字を省略して共通的に説明する)、一対のフランジ102と106が3本の案内ロッド108,110,112で接続されている。一対のフランジ間には送りネジ120が回転自在で軸方向には移動不能に配置されている。送りネジ120は、モータ114とギヤ116と118によって回転させられる。可動プレート104は送りネジ120に螺合するナットを備えている。可動プレート104は案内ロッド108,110,112に案内されて軸方向に移動可能で回転不能となっている。その可動プレート104にワイヤ66の先端が固定されている。
モータ114が回転すると送りネジ120が回転して可動プレート104が案内ロッドに沿って滑り、ワイヤ66が引き込まれたり、緩められたりする。
アクチュエータ68のモ−タは114と、一対のフランジ102、106は大腿部14に固定されている。案内ロッド108,110,112は大腿部14の長手方向に伸びており、モ−タは114がアクチュエータ68を回転させることで、ワイヤ66は大腿部14の長手方向に引かれたり緩められたりする。
ワイヤ66a,66b,66cのプーリ64a,64b,64cと接続点72a、72b、72c間の距離をワイヤの有効長とすると、ワイヤ66a,66b,66cの有効長はモータ114によって伸長させられる。ワイヤ66a,66b,66cの有効長を伸長させるアクチュエータ群68a,68b,68cは、股関節22に近い大腿部14に配置されている。
【0060】
図9に示されているように、アクチュエータ68にコントローラ200が接続されている。コントローラ200には、ロボット10の動き全体を制御している別のコントローラ(図示省略)から、足首関節26の回転角と各ワイヤ(66a、66b、66c)の張力を指示する信号が入力される。コントローラ200は、モータ114の回転角及び/またはトルクを制御する。
【0061】
図7に示されているように、下腿部42には下腿部42を膝関節24の回りに後方に回転させるワイヤ66dの一端が接続されている。ワイヤ66dは膝関節に回転自在に配置されているプーリ64d(図6参照)の後方を通ってアクチュエータ68dの可動プレート104に接続されている。アクチュエータ68dの可動プレート104はモータによって進退する。可動プレート104が進退すると、ワイヤ66dは引き込まれたり、緩められたりする。
【0062】
以上によって下記の姿勢変化が実現される。
(1)アクチュエータ68aを縮めてアクチュエータ68b、68cを緩めることで爪先が上がる。アクチュエータ68aを緩めてアクチュエータ68b、68cを縮めることで爪先が下がる。
(2)アクチュエータ68bを縮めてアクチュエータ68cを緩めることで足部18の外側が上がる。アクチュエータ68bを緩めてアクチュエータ68cを縮めることで内側が上がる。
(3)アクチュエータ68a、68b、68cを縮めてアクチュエータ68dを緩めることで下腿部16が前方に回転する。アクチュエータ68a、68b、68cを緩めてアクチュエータ68dを縮めることで下腿部16が後方に回転する。
4本のアクチュエータと4本のワイヤで、足首関節26のX軸回りの回転角(前記2の回転)と、足首関節26のY軸回りの回転角(前記1の回転)と、膝関節24回りの回転角(前記3の回転)が独立に調整できる。
4本のアクチュエータで3軸回りの回転角を調整するために、アクチュエータは冗長であるように見える。しかしながら、この冗長性を利用して回転角に関する剛性を調整することができる。なおこの点については後記する。
【0063】
膝関節24のみならず足首関節26の回転角を調整するためのアクチュエータまでもが大腿部14に配置されているために、この人工下肢の先端部は軽く、股関節回りの慣性モーメントは小さい。このために、小さなトルクで股関節22の回りに高速に回転させることができる下肢が得られる。
【0064】
次に股関節22回りの回転角を調整するワイヤとアクチュエータを説明する。図6と図7に示すように、大腿部14の上部の所定位置には3個の円弧形状のワイヤ終端ガイド48a,48b,48cが3箇所に取付けられ、それぞれにワイヤ50a,50b,50cが1本ずつ掛けられている。それぞれのワイヤ50a,50b,50cの下端はそれぞれワイヤ終端ガイド48a,48b,48cの下端49a,49b,49cに固定されている。後側に取付けられたワイヤ50cの中程にはプーリ54が配置され、プーリ54は股関節22のY軸よりも後方に位置している。ワイヤ50a,50b,50cの上端はそれぞれアクチュエータ52a,52b,52cの可動プレートに接続されている。アクチュエータ52a,52bのそれぞれの送りネジはそれぞれ図示しないモータによって回転するために、送りネジに螺合している可動プレートはモータの回転によって進退する。この結果、ワイヤ50a,50b,50cの有効長が伸長・収縮する。なお、アクチュエータ52a,52b,52cとそのためのモータ56等は胴体部に配置されており、股関節22の回りに回転する下肢の慣性モーメントを全く増加させない。
【0065】
アクチュエータ52a,52bは、股関節22のY軸よりも前方に位置しており、収縮すると大腿部14を股関節22のY軸の回りに前方に回転させる。ワイヤ50cを案内するプーリ54は股関節22のY軸よりも後方に位置しており、アクチュエータ52cが収縮すると大腿部14を股関節22のY軸の回りに後方に回転させる。なお、骨盤部28に回転自在な円板36はモータ38によってZ軸の回りに回転させられる。モータ38は骨盤部28に固定されている。
【0066】
ワイヤ接続点49cは股関節22のY軸よりも後方に位置しており、ワイヤ50cが引かれると大腿部14は股関節22のY軸回りに後方に回転する。ワイヤ接続点49cは股関節22のX軸上に配置されており、ワイヤ50cが引かれても大腿部14のX軸回りの回転には影響しない。ワイヤ接続点49aは股関節22のX軸よりも外側に位置しており、ワイヤ50aが引かれると大腿部14は股関節22のX軸回りに回転して大腿部14を開ける。ワイヤ接続点49bは股関節22のX軸よりも内側に位置しており、ワイヤ50bが引かれると大腿部14は股関節22のX軸回りに回転して大腿部14を閉じる。大腿部14を閉じる場合には、ワイヤ50bを引くと同時にワイヤ50aを緩めて大腿部14が閉じることを許容する。同様に、大腿部14を開ける場合には、ワイヤ50aを引くと同時にワイヤ50bを緩めて大腿部14が開くことを許容する。大腿部14を股関節22のX軸回りに回転させる場合にはワイヤ50cを操作する必要はない。ワイヤ50a,50bを同時に引くと大腿部14は股関節22のY軸回りに前方に回転して大腿部14を持ち上げる。この場合には、ワイヤ50cを緩めて大腿部14が前方に回転するのを許容する。ワイヤ50cを引いて大腿部14を後方に回転させる場合には、同時にワイヤ50a,50bを緩めて大腿部が下がるのを許容する。
【0067】
以上によって股関節22は下記のように調整される。
(1)アクチュエータ52cを縮めてアクチュエータ52a,52bを緩めることで大腿部14は後方に回転する。アクチュエータ52cを緩めてアクチュエータ52a、52bを縮めることで大腿部14が前方に回転する。大腿部14を前方に持ち上げるには大きなトルクが必要とされるのに対し、後方に下げるには大きなトルクが要らない。大きなトルクが必要とされる側に2本のアクチュエータと2本のワイヤが利用され、小さな力しか必要とされない側に1本のアクチュエータと1本のワイヤが利用されている。
(2)アクチュエータ52aを縮めてアクチュエータ52bを緩めることで大腿部14が外向きに持ち上げられる。アクチュエータ52aを緩めてアクチュエータ52bを縮めることで大腿部14が閉じる。
3本のアクチュエータと3本のワイヤで、股関節22のX軸回りの回転角(前記2の回転)と、股関節22のY軸回りの回転角(前記1の回転)が独立に調整できる。
【0068】
股関節22の回りに大腿部14を動かすためのアクチュエータは胴体側に配置されているために、大腿部14を動かす際にはアクチュエータごとに動かす必要がない。股関節22回りの慣性モーメントは小さい。このために、小さなトルクで股関節22の回りに下肢を高速に回転させることができる。
【0069】
図8に明瞭に示されている3本のワイヤ66a,66b,66c等の中間部には、図14、図15に示す非線形バネ140が挿入されている。バネ140はバネ鋼で形成されており、平板部122と一対のフランジ126,126ともう一対のフランジ対130,130を備えている。フランジ対126,126間にはシャフト128が差し渡され、フランジ対130,130間にはシャフト132が差し渡されている。平板部122には、シャフト128,132と平行に伸びる峰部124が形成されている。ワイヤ66は、屈曲しながら、シャフト128の下方、峰部124の上方、シャフト132の下方を通過している。
図16に示されるように、ワイヤ66が強く引かれると、バネ鋼製の平板部122が撓んでワイヤ66は引き伸ばされる。
【0070】
上記のバネ140がワイヤに挿入されているために、アクチュエータによってワイヤ張力を調整することができる。
図6において、アクチュエータ68bの引き込み量とアクチュエータ68cの引き込み量が等しく、足部18はX軸回りに下腿部16のシャフト42に直角に調整されているとする。この状態から、アクチュエータ68bとアクチュエータ68cを同一速度でさらに引き込むとする。この場合、ワイヤ66bとワイヤ66cは同一速度で引き込まれるために、足部18はX軸の回りに回転しない。しかしながら、ワイヤ66bとワイヤ66cが引き込まれるのに応じて、図16に示すように、バネ140が変形し、ワイヤ66bとワイヤ66cの張力は増大する。即ち、このロボットは、2本のワイヤの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式であるために、両方のワイヤを同時に引き込むことによって、回転角を変えないで、ワイヤ張力のみを増大させることができる。同様に、両方のワイヤを同時に緩めることによって、回転角を変えないで、ワイヤ張力のみを減少させることができる。
【0071】
ワイヤ張力は関節回りの回転角の剛性を決定する。例えば、図6の足部18が地面に接地する場合、両ワイヤの張力が弱くて剛性が低ければ、接地した地面が足部の左側で高くて右側で低い場合に、足部18の右側を引き上げているワイヤが伸びて足部18が地面の傾斜に倣って傾斜して足部18の全体が接地する。剛性が低ければ外部事象に柔軟に追従する。
一方において、片側の足部18が空中にある場合、その空中姿勢を調整する両ワイヤの張力が弱くて剛性が低ければ、ロボットにわずかな外力が作用することでワイヤが伸びるために空中姿勢が不安定となる。姿勢を安定させるためには、剛性が高い方が好ましい。剛性が高い状態の方が、アクチュエータの動きと関節回りの回転角が良く一致し、関節回りに高速で回転ないし動作させることができる。
【0072】
この実施例のロボットは、2本のワイヤのうちの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式(プルプル方式)であり、しかも、ワイヤの中間部に非線形バネを挿入しているために、ロボット姿勢とは独立に剛性を調整できる。柔軟に追従することが必要な時には低剛性とし、姿勢を安定させることが必要な時には高剛性に調整することができる。
【0073】
プルプル方式と非線形バネとによって、関節回りの剛性を調整できる理由を、図17、図18を参照しながら説明する。なお、この説明では、2本のワイヤによって足部がY軸回りに回転する簡単な例を取り上げて説明する。図17は、このような構成を模式的に図示したものである。図17に示されているように、足部302は円筒状のプーリ303と一体化されている。プーリ303は、Y軸303cの回りに回転可能に軸支されている。前方ワイヤ304と後方ワイヤ306はプーリ303に巻き付けられ、それぞれの一端はワイヤ接続点303a、303bでプーリ303に接続されている。前方ワイヤ304と後方ワイヤ306の他端は、それぞれ前方アクチュエータ312と後方アクチュエータ314に接続されている。前方アクチュエータ312と後方アクチュエータ314は、固定部材322、324に固定されている。アクチュエータ312、314は、ワイヤ304、306を引き込んだり、緩めたりする。ワイヤ304、306の途中には、前方非線形バネ305と後方非線形バネ307が装着されている。
【0074】
図18は、前方非線形バネ305と後方非線形バネ307のバネ特性を示すグラフである。縦軸(y軸)はバネ力を示し、横軸(x軸)はバネの伸び量を示している。y軸の右側のカーブが後方非線形バネ307のバネ特性を表し、y軸の左側が前方非線形バネ305のバネ特性を表している。図18から明らかなように、前方非線形バネ305と後方非線形バネ307のバネ特性は、その伸びが大きくなると急にバネ力が大きくなる(カーブの傾斜が急になる)非線形性を有している。すなわちフックの法則には従わない。
図18を用いて、足部302の回転軸303c回りの剛性が調整される様子を具体的に説明する。例えば、バネ305、307の伸び量がゼロで足部302の角度が所定位置に調整されたときのアクチュエータ312、314の作動量からアクチュエータ312、314がさらにA(mm)づつ引き込まれとする。するとバネ305、307が伸び、B(kg)のバネ力が発生する(点D、点F参照)。ワイヤ張力はB(kg)に調整される。前方ワイヤ304と後方ワイヤ306の張力は等しいので、足部302は回転せず、調整された位置を保つ。この状態で足部302に時計方向のモーメントを加えて回転させ、後方バネ307がC(mm)伸びたとする(点D→点E)。一方、後方バネ307がC(mm)伸びると、これと等しい量(C(mm))前方バネ305は縮む(点F→点G)。従って、足部302を回転させてバネ(305、307)をC(mm)伸縮させるのには、点Eと点Gのバネ力の差であるH(kg)の力をプーリ303に加える必要がある。
【0075】
アクチュエータ312、314が大きくJ(mm)づつ引き込まれたとする(点L、点M)。このときにバネ305、307が発生するバネ力はK(kg)である。この場合でも、ワイヤ304、306の張力は等しいので、足部302は回転せずにそのままの位置を保つ。この状態で足部302に時計方向のモーメントが加わって、後方バネ307がC(mm)伸びたとする(点L→点N)。前方バネ305はC(mm)縮む(点M→点P)。従って、足部302を回転させてバネ307、305をC(mm)伸縮させるのには、点Nと点Pのバネ力の差であるQ(kg)の力をプーリ303に加える必要がある。
【0076】
アクチュエータ312、314がA(mm)引き込まれて実現された張力Bの状態からバネ307、305をC(mm)伸縮させるのに必要な力は、H(kg)である。アクチュエータ312、314がJ(mm)引き込まれて実現された張力Kの状態からバネ307、305をC(mm)伸縮させるのに必要な力は、Q(kg)である。明らかにQ(kg)の方が、H(kg)よりも大きい。すなわち、アクチュエータ312、314を大きく引き込んで、大きな張力をワイヤ304、306に発生させているときの方が、足部302の剛性(足部302を所定角回転させるに要するY軸回りの回転モーメント)は高くなる。アクチュエータ312、314がワイヤ304、306を引き込む量を変化させることによって、足部302の剛性を調整することができる。
プルプル方式と非線形バネ組合せて用いると、関節の回転角と独立に、剛性を調整することができる。
【0077】
図18のバネ特性グラフの傾斜角が剛性に比例する。そこで、その傾斜角が意図した剛性に相当するバネの伸び量を求め、その伸び量を与えることで、意図した剛性に調整することができる。
ロボットの姿勢にかかわらず、回転中心からワイヤにおろした垂線の長さ、即ちモーメントの腕の長さがほぼ一定であれば、剛性から張力ないし伸び量を決定することができる。
しかしながら、回転中心からワイヤにおろした垂線の長さ、即ちモーメントの腕の長さが変化する場合には、剛性から張力を決定するまでの間にモーメントの腕の長さを考慮しなければならない。例えば、ともにワイヤ張力が1kgであるとする。このとき、回転中心からその1kgの張力の作用点までの長さが10cm(ケース1)と20cm(ケース2)とする。このとき、ケース2の方がモーメントの腕の長さが長く、モーメントも大きい。ケース2の方が、同じ張力でありながら、外力に抗して関節回転角を所定値に維持する程度は強い。剛性は、張力とモーメントの腕の長さによって決まる。
コントローラ200は、剛性が指定されたときに、指定された剛性とそのときのモーメントの腕の長さから指定された剛性に調整するのに必要な張力を計算し、次いで、その張力に調整するのに必要なワイヤの伸びの長さを計算する。ロボットの姿勢と独立して関節回りの柔軟性を指定された剛性に調整することができる。
足首関節26のX軸回りの回転角度は、アクチュエータ68bによるワイヤ66bの引き込み量によって決定され、ワイヤ66cは冗長である。本実施例では冗長な、アクチュエータ68cによるワイヤ66cの引き込量を利用して、足首関節26のX軸回りの回転に対する剛性を制御する。
足首関節26のY軸回りの回転角度は、アクチュエータ68aによるワイヤ66aの引き込み量によって決定され、ワイヤ66bとワイヤ66cは冗長である。本実施例では、冗長な、アクチュエータ68bによるワイヤ66bの引き込み量とアクチュエータ68cによるワイヤ66cの引き込量を利用して、足首関節26のY軸回りの回転に対する剛性を制御する。
膝関節24の回りの回転角度は、アクチュエータ68a、68b、68cによって決定され、ワイヤ66dは冗長である。本実施例では、冗長な、アクチュエータ68dによるワイヤ66dの引き込量を利用して、膝関節24の回りの回転に対する剛性を制御する。
股関節22のX軸回りの回転角度は、アクチュエータ52aによるワイヤ50aの引き込み量によって決定され、ワイヤ50bは冗長である。本実施例では、冗長な、アクチュエータ52bによるワイヤ50bの引き込量を利用して、股関節22のX軸回りの回転に対する剛性を制御する。
股関節22のY軸回りの回転角度は、アクチュエータ52cによるワイヤ50cの引き込み量によって決定され、ワイヤ50aとワイヤ50bは冗長である。本実施例では、冗長な、アクチュエータ52aによるワイヤ50aの引き込み量とアクチュエータ52bによるワイヤ50bの引き込量を利用して、股関節22のY軸回りの回転に対する剛性を制御する。
【0078】
本発明のロボットはワイヤ駆動であり、各関節にアクチュエータを実装する必要がない。アクチュエータを関節から離れた位置に実装することができるため、関節を小型化、軽量化することができ、アクチュエータの実装位置の自由度が上がる。また、本発明の場合、ワイヤ数は2軸の関節に対しては3本、3軸の関節に対しては4本、即ち、1関節に対して軸数+1本でよい。通常であれば、関節の1自由度について2本のワイヤを必要とする。必要なワイヤ本数とアクチュエータ数が少数化するため、四肢等のスリム化や軽量化が図れる。これらのことにより、末端側部材の動きを高速化することができ、外観的にも動作的にも人間や動物に類似したロボットを実現することが可能となる。
【0079】
アクチュエータ群は大腿部に配置されることに限られるものではない。例えば、上肢の上腕部にアクチュエータ群を配置し、個々のアクチュエータが動作して上腕に対して前腕が回転されたり、前腕に対して手部が回転されたりするように構成することができる。
上述したアクチュエータのコントローラは、関節の回転角と張力とが入力されているが、張力に代えて関節の剛性を入力するように構成してもよい。
このような構成では、コントローラは、関節の回転角から末端側部材(例えば、足部)の回転中心とワイヤの接続点との間のモーメントアームの長さを計算し、このモーメントアームの長さから関節が所望の剛性となるワイヤの張力を計算する。そして、ワイヤの張力を計算された値とするアクチュエータの作動量がアクチュエータに出力される。モーメントアームが末端側部材の回転にともなって大きく変化する構成(ワイヤ終端ガイドが存在しないような構成)においては、上記のように張力に代えて剛性をコントローラに入力し、これを計算処理することにより、関節の剛性をより正確にコントロールすることができる。
【0080】
次に、上記の機械構成を備える2足歩行ロボットの制御装置を説明する。
図19は、ロボットの2足歩行を制御する制御装置の構成を示し、歩行指令データ作成装置1で作成された、体幹位置ベクトルP(これは歩行指令データ作成装置1によってオペレータが入力したものから修正されている)と、体幹姿勢ベクトルRと、左足先位置ベクトルCと、左足先姿勢ベクトルDと、右足先位置ベクトルEと、右足先姿勢ベクトルFを入力し、逆キネマティクス計算する計算装置304を備えている。ただし、体幹位置ベクトルPについては、歩行指令データ作成装置1によって修正されるのみならず、後記する「倒立振子制御」と「ならい制御」を実施するために、さらに修正されて計算装置304に入力される。また、体幹姿勢ベクトルRについても、実際の体幹姿勢ベクトルが目標体幹姿勢ベクトルに一致するように、目標体幹姿勢ベクトルを補正する処理が実施されて計算装置304に入力される。
【0081】
計算装置304は、入力された体幹位置ベクトルP(これは修正されている)と、体幹姿勢ベクトルR(これも補正されている)と、左足先位置ベクトルCと、左足先姿勢ベクトルDと、右足先位置ベクトルEと、右足先姿勢ベクトルFに基づいて、入力した各ベクトルで記述される位置と姿勢を実現するのに必要な各関節の回転角θを計算する。回転角は、各関節を回転させるモータの回転量で計算される。図19では、2個のアクチュエータ分しか表示されていないが、すべてのアクチュエータのモータ回転量が計算される。この計算では、逆キネマティクス演算が実施される。
各アクチュエータごとに計算された目標回転量θは、各アクチュエータのためのドライバ306,316に入力される。各ドライバは、目標回転量と実際回転量の偏差に基づいて各アクチュエータのモータ308,318に加えるトルクを調整する。実際回転量は、アクチュエータのモータ毎に設けられているエンコーダ310,320で検出される。このフィードバック制御によって、アクチュエータのモータ308,318は、実際回転量が目標回転量に一致するようにフィードバック制御される。
【0082】
目標ZMPは、倒立振子モデル334に入力される。倒立振子モデル334には、実際の体幹位置ベクトルPも入力される。実際の体幹位置ベクトルPは、ロボットの体幹に設けられているジャイロ328の信号を演算装置330で演算して求められる。
倒立振子モデル334は、目標ZMPと実際の体幹位置ベクトルPを用いて、目標ZMPから体幹位置ベクトルPに向かう傾斜線の垂直からの傾きφを計算する。計算されたφは、ZMPの修正量算出装置336に入力される。ZMPの修正量算出装置336は、ΔZMP=k1×φ+k2×dφ/dtの式によって、ZMPの修正量を算出する。即ち、前記した傾斜角φに比例する値と、傾斜角φの時間微分に比例する値を加算してZMPの修正量を算出する。算出されたZMPの修正量ΔZMPは、入力された目標ZMPに加算され、目標ZMPはΔZMPだけ修正される。以上のように、目標ZMPをΔZMPだけ修正する処理を、通常は倒立振子制御と称している。
人間は、歩行する場合、とくに高速で走行する場合には顕著なように、体幹を前方に傾けて走行しやすくする。体幹を前方に傾斜させることで重心を前方に移動させ、前方に移動した重心に追従するように足を前方に移動させる。倒立振子制御は、人間のこの種の制御に対応するものであり、体幹位置を前方に傾ける制御をする。
【0083】
倒立振子モデルで修正された目標ZMP(340)は、実際のZMP(326)と比較され、その偏差(342)が算出される。実際のZMP(326)は、ロボットの足の裏に設けられている複数の力センサ322の出力を演算装置324によって演算することで演算される。偏差342にはゲインk3が乗じられて体幹位置ベクトルPのディメンジョンに変換される。体幹位置ベクトルPのディメンジョンに変換された偏差ΔPは、体幹位置ベクトルPに足し合わされる。目標ZMP(340)と実際ZMP(326)の偏差(342)を体幹位置ベクトルPのディメンジョンに変換して体幹位置ベクトルPに足し合わせる処理を、通常は「ならい制御処理」と称している。
【0084】
ロボットが歩行する面には、体幹位置ベクトルPと、体幹姿勢ベクトルRと、左足先位置ベクトルCと、左足先姿勢ベクトルDと、右足先位置ベクトルEと、右足先姿勢ベクトルFと、目標ZMPを決定する段階では、予期していない凹凸が存在し、ロボットの足が例えば凸を踏むことがある。これは、人間であれば蹴躓くことに相当する。人間はそのとき、膝を曲げて腰の位置を前方に送ることによって転倒しないようにする。ならい制御処理は、人間のこの種の制御に対応するものであり、体幹を前方に平行移動する制御をする。
膝を曲げて体幹を前方に平衡移動することによって転倒を防止する場合、そのままでは歩行を続けることができない。転倒を防止したあとには、膝を伸ばして通常の歩行姿勢に復帰することが必要である。倒立振子モデルは、それに相当する制御を実行する。
比喩的にいえば、ならいモデルは体の柔軟性に相当し、倒立振子モデルは歩行姿勢の維持力に相当する。
【0085】
本実施例では、倒立振子制御系334で目標ZMPを修正し、ならい制御系で目標ZMPと実際ZMPの偏差(342)によって目標体幹位置ベクトルPを修正するにあたって、修正量制限装置346を組み込むことによって修正量を制限している。
ならい制御モデルで算出した目標体幹位置ベクトルの修正量をΔPとする。入力された体幹位置ベクトルPに修正量ΔPをベクトル加算し、それによって逆キネマティクス計算装置304で逆キネマティクスを解いて関節角を計算すると、計算された関節角が関節の許容回転範囲を超えてしまうことがある。この場合、ロボットの機械的制約によって、図19の制御装置が演算したならい制御を実行することができない。本実施例では、ならい制御ループで算出した目標体幹位置ベクトルの修正量ΔPにαnを乗じたもので体幹位置ベクトルPを修正する。ここでαは0から1の間の数であり、nは後記する回数であり、n=0,1,2,3・・・と変化する。
即ち、従来のように一律にP+ΔPの式で体幹位置ベクトルPを修正するではなく、P+αn×ΔPに従って体幹位置ベクトルPを修正する。最初にn=0で対応できれば、P+α0×ΔP(=P+ΔP)で修正する。2回目のn=1で対応できれば、P+α1×ΔPで修正する。3回目のn=2で対応できれば、P+α2×ΔPで修正する。4回目のn=3で対応できれば、P+α3×ΔPで修正する。
具体的処理手順は下記のものである。
(1)ならい制御モデルで算出した目標体幹位置ベクトルの修正量をΔPとする。
(2) 最初にn=0として、P+α0×ΔP(=P+ΔP)で修正する。
(3) P+ΔPで、逆キネマティクスを解いて関節角θを求めた結果、すべての関節で許容回転角内であれば、そこで処理を終了する。
(4)前記の(3)で、少なくとも一つの関節について、計算された関節角θが許容回転角外となれば、修正量を低下させる。
(5)そのために、n=1として、P+α×ΔPで修正する。αは1以下であり、修正量は低減される。
(6) P+α×ΔPで、逆キネマティクスを解いて関節角θを求めた結果、すべての関節で許容回転角内であれば、そこで処理を終了する。
(7) 前記の(6)で、少なくとも一つの関節について、計算された関節角θが許容回転角外となれば、修正量を低下させる。
(5)そのために、n=2として、P+α2×ΔPで修正する。αは1以下であり、修正量は低減される。
以下n=3,4,5・・としながら、P+αn×ΔPで修正された体幹位置ベクトルPを実現するすべての関節回転角θが許容回転角内となるまで、上記手順を繰り返す。
【0086】
P+αn×ΔPと補正することから、n=0でない限り、ならい制御は不十分である。しかしながら、ロボットがならい制御を十分に効かせるだけの柔軟性を備えていなければ、ならい制御が不十分となってもやむをえない。ならい制御を十分に効かせた結果、関節回転角が限界まで回転し、限界となってもまだ回転角が不足していると転倒の恐れがある。本実施例のように、関節回転角が限界内で収まるようにならい制御の制御量を低減させるようにすると、ロボットが持つ柔軟性の範囲内でならい制御が実施され、ロボットが転倒する事態を著減することができる。
【0087】
ならい制御は、体の柔軟性に相当する。ならい制御のためのゲインk3(変換装置344)が大きいほど、ロボットの肢体は柔軟に姿勢を変え、受けるショックを和らげる。従って、着地時等のようにショックを受ける場合には、ならい制御が強く働くことが好ましい。
反面ならい制御が常時に強く働いていると、片足立脚時に慣性力で姿勢が乱れ、着地予定でないタイミングで着地して着地ショックが大きくなることがある。ならい制御のためのゲインk3の値の設定には、上述した相反する要素があり、最適値に調整することが難しい。
【0088】
本実施例では、この相反関係を解決するために、ならい制御のためのゲインk3の値をロボットの状態に合わせて増減する手法を取り入れた。
図20の(A)は、歩行パターンの変化等に合わせてならい制御のためのゲインk3を変化させる例を示し、片足接地状態から両足接地状態に切り替わる前後において、ならい制御のためのゲインk3を増大させ、その他のときには低く維持する。この場合、着地ショックを受ける前後ではならい制御がよく効くためにロボットの肢体は柔軟に対応して着地ショックを和らげる。その他のときには、ならい制御のためのゲインk3は小さく、姿勢維持力が高く保たれる。片足立脚時に慣性力で姿勢が乱れることがなく、着地予定でないタイミングで着地するために着地ショックが大きくなることもない。ならい制御のためのゲインk3は、歩行指令データ作成装置1で作成される6個のベクトルの時系列変化に合わせて増減させることができる。
【0089】
図20の(B)は、左足裏に設置されている力センサが受ける力を示し、(C)は、右足裏に設置されている力センサが受ける力を示し、(D)は、両センサの受ける力の合計を示している。着地時には、強い慣性力が働くために、合計した力は着地時に大きい。合計した力とならい制御のためのゲインk3を比例させれば、着地ショックを受けるときにならい制御のためのゲインk3を大きくし、その他のときには低く維持することができる。図19の力センサ322の信号を演算する装置324から、変換装置344に伸びる処理360は、力センサ322が受ける力の合計力に、ならい制御のためのゲインk3を比例させる処理を示している。
なお、ならい制御を強く働かせる場合に、倒立振子モデルのゲインk1、k2を同時に増大させてもよいが、ならい制御のためのゲインk3のみを大きくしてもよい。
【0090】
倒立振子モデルでは、目標ZMPから体幹位置ベクトルPに向かう傾斜線の垂直からの傾きφを計算する(図19の334参照)。計算されたφは、ZMPの修正量算出装置336に入力され、ΔZMP=k1×φ+k2×dφ/dtの式によって、ZMPの修正量ΔZMPを算出する。ロボットが円滑に歩行するには、ゲインk1とk2の値を適当な値に調整する必要がある。さらには、ならい制御のためのゲインk3も適当な値に調整する必要がある。
ゲインk1、k2、k3の値を歩行制御に適当な値に調整しておくと、ロボットが歩行しないで静止しているあいだにも、ロボットが体幹を前方に傾けてからそれを修正する動作を繰り返すことが生じる。ここではそれを自励振動という。自励振動が生じると、ロボットの動力が無駄に消費されて不都合である。
これを解消するために、ロボットが歩行しないで静止している間は、ZMPの修正量ΔZMPを算出するk1×φ+k2×dφ/dtの式に用いるゲインk1、k2の値を、歩行時に適当な値よりも下げることが有効であることがわかった。この場合、ならい制御のためのゲインk3も同時にさげてもよいが、ゲインk1、k2の値を下げれば、ならい制御のためのゲインk3は下げないでもすむ。ロボットが歩行しないで静止している間に、ゲインk1、k2(さらにはゲインk3)の値を下げても、ロボットは直立しつづけることが確認されている。自励振動に無駄に動力が消費されることがない。
図19では、力センサ322の信号を演算する装置324によって、ロボットが静止しているか歩行しているかを判別し、その結果によってゲインk1、k2を切替えることを図示している。
【0091】
この実施例のロボットは、2本のワイヤのうちの一方を引いて時計方向に回転させ、他方のワイヤを引いて反時計方向に回転させる方式(プルプル方式)であり、ワイヤの中間部に非線形バネを挿入しているために、ロボット姿勢とは独立に剛性を調整できる。この特性を活用し、歩行時に剛性を変化させながら歩行するのが有効である。
着地中には、予期しない凹凸を踏んでいることがあり、下肢が柔軟な方が予期しない凹凸の影響を受けにくい。剛性を高めて指示された姿勢に忠実に制御すると、予期しない凹凸の影響を吸収できないためにロボットがスリップしたり転倒したりする恐れがある。
そこで、本実施例では、歩行パターンの進行に合わせて剛性を変化させる。ここでは、左右の下肢の剛性を別々に変化させる。
図21(A)は、歩行パターンと左右の下肢の剛性の変化パターンを示し、左右の下肢とも、接地中は剛性が低く維持されて、空中移動している間は高く保たれる。左足接地状態から両足接地状態に移行する直前タイミングで右下肢の剛性が下げられ、右足接地状態から両足接地状態に移行する直前タイミングで左下肢の剛性が下げられる。左下肢の剛性と右下肢の剛性は別々に制御される。接地中の下肢の剛性が低いために、予期しない凹凸を踏んでいても、接地した下肢が柔軟に対応して凹凸の影響を吸収する。一方、空中にある足の剛性は高く維持され、姿勢維持力が高く保たれる。片足立脚時に慣性力で姿勢が乱れることがない。
剛性の変化パターンには、図21の(A)〜(C)に例示する種々のバリエーションが存在する。
(A) 左下肢の剛性を、左足接地状態と両足接地状態の間は低め、右足接地状態の間は高める。右下肢の剛性を、右足接地状態と両足接地状態の間は低め、左足接地状態の間は高める。
(B、C) 左下肢の剛性を、右足接地状態から両足接地状態に移行する直前タイミングで下げ、次の右足接地状態までの間に高める。右下肢の剛性を、左足接地状態から両足接地状態に移行する直前タイミングで下げ、次の左足接地状態までの間に高める。
(B) 下肢の剛性を連続的に上昇させる。
(C) 下肢の剛性を階段状に上昇させる。
いずれの変化パターンによっても、接地した下肢が柔軟に対応して凹凸の影響を吸収する一方、空中にある足の剛性は高く維持され、姿勢維持力が高く保たれる。
【0092】
以下では、図19の制御装置によって、経時的に変化する目標回転角と、経時的に変化する剛性に関する指示値に追従するようにアクチュエータを制御する技術を説明する。以下では、アクチュエータ68bと68cによって、足首関節26のX軸回りの回転角と剛性を、指示された回転角と剛性に追従するように制御する例について説明する。
【0093】
(第1の制御技術)
図22は、足首関節26をワイヤ66bによってX軸回りに外向きに回転させるアクチュエータ68bのためのコントローラ200bの制御ブロック図と、ワイヤ66cによって内向きに回転させるアクチュエータ68cのためのコントローラ200cの制御ブロック図を示す。これは、図19のドライバ306と316の詳細に対応する。この場合、逆キネマティクス計算装置304は、関節の回転に対する剛性も指示する。剛性の指示値は、経時的に変化する。
最初にコントローラ200bについて説明する。第1変換機2bは、足首関節26の回転角の指示値P1から、その回転角の指示値P1を実現するのに必要なモータ114bの回転角P2に変換する。ここでは、バネ140が伸びないものとして計算する。計算された回転角P2は、モータ114bの実際の回転角P7と比較されて偏差P3が求められる。モータ114bの実際の回転角P7は、モータ114bに内蔵されているエンコーダ115bから得られる。第2変換機4bは、回転角偏差P3をモータ114bの回転速度P4に変換する。ここでは、偏差P3が大きいほど大きな回転速度P4に変換する。偏差P3がゼロであれば回転速度P4もゼロである。第3変換機6bは、モータ114bの回転速度P4をモータ114bに加えるトルクP5に変換する。モータ114bは、通電する電流値と発生するトルクが比例する特性を備えている。モータ114bに加えるトルクP5は電流の単位で指令される。電流の単位で指令されるトルクP5は、指示された回転角と実際の回転角との偏差に基づいてアクチュエータのトルクをフィードバック制御するトルクの増減値に相当し、指示された回転角に対して不十分なアクチュエータのトルクを増大させ、指示された回転角に対して過大なアクチュエータのトルクを減少させる。これによって、実際の回転角が指示された回転角にフィードバック制御される。
剛性の指示値Q1は、第4変換機10bに入力される。第4変換機10bは、回転角の指示値P1からワイヤ66bの張力が足首関節26の回りのモーメントを発生させる腕の長さを計算し、剛性の指示値Q1とモーメントの腕の長さから指示された剛性Q1に調整するのに必要なワイヤ張力Q2を計算する。ここでは図18に示したバネ特性が参照され、バネ定数とモーメントの腕の長さから、指示された剛性Q1に調整できるバネ特性を実現するワイヤ張力Q2に変換する。第5変換機12bは、張力Q2をモータトルクQ3に変換する。この変換には、図9のアクチュエータの特性式が利用される。モータのトルクの全部がワイヤ張力に反映されるわけでない。モータトルクの一部は、アクチュエータ等の摩擦や慣性に費やされる。第6変換機14bは、必要なワイヤ張力を発生するモータトルクQ3に摩擦や慣性に費やされる分を補償して実際に必要とされるモータトルクQ4を算出する。
摩擦や慣性に費やされる分を補償したモータトルクQ4は、回転角のフィードバック制御によって算出されたモータトルクの増減値P5に加算される。最終的には、加算されたモータトルクP6が指令される。実際には、モータ114bのトルクは通電電流に比例するので、モータ114bに、加算されたトルクP6に比例する電流を通電する。
【0094】
コントローラ200cについても、制御ブロックは同一であり、重複説明はしない。この場合、アクチュエータ68bとアクチュエータ68cは左右対称のために、P2とQ2とQ3は、コントローラ200bと200cとで、異符号で同じ値を持つ。ただし、慣性項と摩擦項は左右対称にならないので、Q4の値は等しくならない。
【0095】
この制御ブロックによると、指示された剛性に調整するのに必要なモータトルクQ4が加算される。このために、足首関節26のX軸回りの剛性は、指示された剛性Q1に制御される。指示された剛性Q1に調整するためのモータトルクQ3(ここではワイヤ張力となるモータトルク)は、アクチュエータ68bとアクチュエータ68cによるものとがバランスし、足首関節26のX軸回りの回転角に影響しない。足首関節26のX軸回りの回転角は、剛性に調整するためのモータトルクと無関係に、指示された回転角P1にフィードバック制御される。
図22の制御ブロックによると、回転角P1と剛性Q1が独立に指示されても、指示された回転角P1と剛性Q1に制御することができる。
上記した事象は、回転角と剛性の指示値P1、Q1が時々刻々に変化する動作中常に得られ、経時的に変化する指示値P1、Q1に常に追従させることができる。
剛性の指示値Q1を歩行の状態に応じて経時的に変化させるには、歩行指令データの経時的変化に対応させてもよいし、ロボットの足の裏に接地されている力センサ322の出力に基づいて変化させてもよい。図19の場合、力センサ322が検知する力によって、モータドライバ306、316に指示する剛性の値を変化させる。
【0096】
(第2の制御技術)
図23は、第2の制御技術に係わるコントローラ200bとコントローラ200cの制御ブロック図を示す。図19のドライバ306と316に対応する。この場合、逆キネマティクス演算回路304は、関節の回転角を調整するアクチュエータについては目標回転角を演算し、関節の回転角を調整するには冗長なアクチュエータについては目標剛性値を演算する。この場合、モータ114bは関節の回転角を調整するアクチュエータであり、モータ114cは関節の回転角を調整するには冗長なアクチュエータであり、剛性を調整する。
この場合、コントローラ200bは、回転角の指示値P1に基づいてモータ114bの回転角をフィードバック制御し、コントローラ200cは、剛性の指示値に基づいてモータ114cのトルクをフィードバック制御する。モータ114cの実際のトルクQ6は、モータ114cに通電する電流を測定する電流計115cで測定される。モータは114b、114cは、電流値とトルクが比例する特性をもっている。
モータ114bの回転角のフィードバック制御のための制御ブロック図は、図22とほぼ同様であり、モータ114cのトルクのフィードバック制御のための制御ブロック図も図22とほぼ同様であり、重複説明はしない。
この制御技術によると、指示された剛性Q1に調整するために必要なトルクがモータ114cから加えられる。このトルクが働いた状態で、モータ114bは、指示された回転角P1に調整するのに必要なだけ回転される。このとき、結果的には、モータ114bのトルクも、指示された剛性Q1に調整するのに必要なトルクに調整され、モータ114cの回転角も、指示された回転角P1に調整するのに必要な回転角に調整される。
図23の制御技術は、回転角という1の自由度に対して、2個のモータを利用するという冗長性を利用して、回転角と剛性を独立に制御するものであり、ヒトに類似している。ヒトも、関節の自由度からみると冗長な数の筋肉を利用して関節の回りに回転させる。その冗長性を利用して剛性を調整している。
図23の制御ブロックによると、回転角と剛性が独立に指示されたときに、指示された回転角と剛性に制御することができる。
【0097】
図22,23の技術を用いると、歩行パターンに合わせて剛性を変化させることができ、姿勢を柔軟に変える必要があるときには柔軟にでき、姿勢を維持する必要があるときには剛性を上げて姿勢を維持することができる。本実施例では、図21で説明したように、接地した足の剛性を低くし、宙に浮いている足の剛性を高く調整しながら歩行する。
【0098】
本実施例では、歩行パターンにあわせて、ならい制御のためのゲインk3と、下肢の剛性を変化させる。ゲインの変化と剛性の変化のいずれか一方のみを用いても有用であるが、組合わせて用いることが有効であり、組合わせて用いると、ならい制御と剛性の変化の相乗作用によって、ロボットの挙動を柔軟で安定したものとできる。
【0099】
図5に示した歩行指令データ作成装置1を用いて歩行指令データを作成する場合、通常は体幹姿勢については体幹姿勢ベクトルRのみを指定する。確かに、体幹姿勢ベクトルRを指定すれば、ロボットは円滑に歩行することができる。
ただしより高速で歩行する場合、体幹を捩って歩行することが有利であり、体幹ベクトルの他に、体幹の捩れに関する姿勢も入力するのが有利である。
【0100】
図24(A)は、従来のティーチング技術による場合の歩行姿勢を示し、体幹は前方に傾くことがあっても、捩れることはない。そもそも体幹の捩れを指定するベクトルが教示されていない。
図24(B)は、体幹の左右対称軸線の方向を示す体幹ベクトルRに加えて、体幹の左右を結ぶ線の方向を示す体幹捩れベクトルQを教示することによって得られる歩行姿勢を示している。足の動きに連動して体幹を捩じると、体幹に対する足の動作速度が同じでも一歩の歩幅を伸ばすことができ、ロボットは高速で歩行することが可能となる。
図24(C)は、体幹捩れベクトルQの教示例を示し、平面視している。(1)は左右の足が揃っている状態を示し、(2)は左足を踏み出した状態を示し、(3)は左足をさらに大きく踏み出した状態を示し、(4)は右足を踏み出した状態を示している。
左足先位置ベクトルCと右足先位置ベクトルEが教示されているために、左右の足の中心同士を結ぶ線Lが進行方向Xに直交する線Yとなす角度θがわかる。そこで、体幹の左右を結ぶ体幹捩れベクトルQを、体幹捩れベクトルQと進行方向Xに直交する線Yとなす角度がαθとなるように教示する。ここではαを50%とする。体幹捩れベクトルQとY軸のなす角度が、左右の足の中心同士を結ぶ線LがY軸となす角度θの50%となるような体幹捩れベクトルQをロボットにティーチングするのである。なお前記の比率は50%に限定されるものでなく、その前後の幅を有している。比率があまりに小さいと体幹を捩る意味がなく、比率があまりに大きいと体幹に捩るのに大きなエネルギーが費やされることになるので、30〜60%くらいの範囲が好ましい。図24(C)の(1)から(4)に示すように、比率αを一定に維持してもよいが、一歩のストロークの中で比率αを変化させてもよい。
左右の足の動きに連動して捩じる体幹ベクトルQを教示すると、同じ能力のロボットの歩幅を広げることができ、高速歩行させることができる。
体幹捩じれベクトルQを指定する代わりに、左右の足の中心同士を結ぶ線LがY軸となす角度から体幹捩じれベクトルQを計算して求めるようにしてもよい。
図25に示すように、ロボットの上半身250を腰部(下胴部)254と胸部(上胴部)252に分離し、両者が人間の背骨に相当する部材を中心にして相対回転可能に構成することができる。この場合、左右の足の基部である腰部254を捩じりながら歩行し、胸部252については常時進行方向に向けておくことができる。このようにしても、体幹(腰部)に対する足の動作速度を同じにしながら歩幅を伸ばすことができる。図26の平面図に示すように、体幹254を捩じることによって歩幅を距離Dだけ大きくすることができる。この場合、胸部252は安定しており、ロボットの歩行姿勢は安定したものとなる。また歩幅が伸びることからロボットが高速で歩行することが可能となる
左右の足の踏跡が一直線256上にあると、歩行姿勢が美しいだけでなく、狭い通路を通過することが可能となる。図27は、体幹を捩じらないで条件で、左右の足を直線256上において歩行する場合の平面図を示し、体幹に対して左右の足を水平面内で角度αだけスイングしなければならない。図28は、体幹を捩じりながら左右の足を直線256上において歩行する場合の平面図を示し、体幹に対して左右の足を水平面内で角度βだけスイングすればたりる。明らかに、体幹を捩じりながら歩行すると、左右の足を直線256上において歩行するのに必要なスイング角度が小さく抑えられ、ロボットは無理なく直線上を歩行できることになる。左右の足の足跡が厳密な意味では直線上になく、2本の平行な直線上にある場合でも、その2本の直線間距離が小さいと、ロボットの歩行姿勢がきれいで安定感のあるものとなる。体幹を捩じると、2本の直線間の距離を小さくしやすく、体幹を捩じることによって歩行姿勢をきれいで安定感のあるもにしやすい。
【0101】
図19の制御装置では、体幹姿勢ベクトルRを入力し、逆キネマティクス演算し、入力された体幹姿勢ベクトルRに制御するために必要な関節角を演算し、そうして得られた関節角を目標関節角としてフィードバック制御するため、実際の体幹ベクトルRは、指示された体幹ベクトルR、即ち、歩行指令データ作成装置1(図5)で得られた体幹ベクトルRに一致するはずである。しかしながら、ロボットにジャイロを取付けて実際の体幹ベクトルを測定すると一致しないことが判明した。これは、関節のガタや部材の撓み等に起因するものと推測される。
目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しなければ、意図する体幹姿勢をロボットにとらせることができない。
本実施例では、図5の歩行指令データ作成装置1で作成された体幹姿勢ベクトルR(ここには、オペレータがロボットにとらせたい姿勢が記述されている)をそのままロボットに教示せず(そのまま教示すると、目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しなので、実際体幹姿勢ベクトルを意図したものにすることができない)、目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しないことを見越し、目標体幹姿勢ベクトルを人為的に補正し、補正された目標体幹姿勢ベクトルと実際体幹姿勢ベクトルが一致しないために、結果として目標体幹姿勢ベクトルと実際体幹姿勢ベクトルを一致させる手法を採用している。
【0102】
(1) 具体的は、最初に、歩行指令データ作成装置1で作成された体幹姿勢ベクトルRをロボットにティーチングする。ティーチングされたロボットを動作させて実際の体幹姿勢ベクトルRを検出する。
以下では、目標体幹姿勢ベクトルをR1とし、実際体幹姿勢ベクトルをR2とする。実際体幹姿勢ベクトルをR2はジャイロ328の出力を演算する装置330で演算される。
(2) 目標の体幹姿勢ベクトルR1と実際の体幹姿勢ベクトルR2のずれベクトルΔRを計算する(図19の装置350)。ずれベクトルΔRは、R1・R2−1で計算できる。
(3) そこで、目標体幹姿勢ベクトルをR1の方を、ずれベクトルΔRを見越して補正する。補正された目標体幹姿勢ベクトルをR1*とすると、R1*=R1・ΔRで計算される。
(4)ロボットは、補正された目標体幹姿勢ベクトルR1*を目標として動作する。ロボットによって実現される実際体幹姿勢ベクトルはR1*とならない。それからはずれる。はずれた結果、目標体幹姿勢ベクトルR1に一致する。補正された目標体幹姿勢ベクトルR1*は、オペレータと意図する体幹姿勢ベクトルR1にずれベクトルΔRを見越して補正されているからである。
(5) 補正された目標体幹姿勢ベクトルをR1*を計算する際に、まず、
Y=α・ΔR+(1−α)・Iを計算し、ついで、R1*=R1・Yで計算してもよい。図19の補正装置352は、この処理を実行する。ここで、αは1以下の正の値であり、Iは単位ベクトルである。
この場合、ずれベクトルΔRのα%だけを見越して目標体幹姿勢ベクトルR1を補正することに相当する。
目標体幹姿勢ベクトルの補正処理は、種々の段階で実施できる。ずれベクトルΔRが判明した段階で、歩行指令データ作成装置1で作成された体幹姿勢ベクトルRを補正し、補正された目標体幹姿勢ベクトルをロボットに教示してもよい。この場合、ロボットの制御装置には、目標体幹姿勢ベクトルを補正するための装置350,352は要らない。それに代わって、ずれベクトルΔRで補正する前の目標体幹姿勢ベクトルをロボットに教示し、ロボットの動作中に次々とずれベクトルΔRを算出し、ずれベクトルΔRが算出されとき以降の目標体幹姿勢ベクトルをずれベクトルΔRで補正するようにしてもよい。
【0103】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【図1】 目標ZMPが移動する様子を説明する図。
【図2】 シャープに変化する目標ZMPをスムーズにした各種のカーブを例示する図。
【図3】 目標ZMPが移動する他の例を説明する図。
【図4】 目標ZMPのデータを出力する速度が可変であることを説明する図。
【図5】 歩行指令データ作成装置の構成を示す図。
【図6】 本実施例のロボットの両下肢の正面図。
【図7】 同ロボットの左下肢の側面図。
【図8】 同ロボットの足首関節の構造を説明するための図。
【図9】 同ロボットのアクチュエータの詳細を説明する図。
【図10】 同ロボットの足部の動きを説明する図。
【図11】 同ロボットの足部の動きを説明する図。
【図12】 同ロボットの足部の動きを説明する図。
【図13】 同ロボットの足部の動きを説明する図。
【図14】 ワイヤの組込まれている非線形バネの正面図。
【図15】 ワイヤの組込まれている非線形バネの側面図。
【図16】 ワイヤテンションによって非線形バネが変形する様子を示す図。
【図17】 同ロボットの関節回りの剛性を説明する図。
【図18】 非線形ばね特性と関節回りの剛性を説明するグラフ。
【図19】 制御装置の構成を示す制御ブロック図。
【図20】 歩行パターンに追従してならい制御のためのゲインを増減するパターンを示す図。
【図21】 歩行パターンに追従して下肢の剛性を増減するパターンを示す図。
【図22】 関節回転角と剛性を独立に制御する第1の制御ブロック図。
【図23】 関節回転角と剛性を独立に制御する第2の制御ブロック図。
【図24】 体幹捩じれベクトルの教示方法と教示結果を模式的に示す図。
【図25】 上半身が腰部(下胴部)と胸部(上胴部)に分割されたロボットが体幹を捩じりながら歩行する姿勢を示す。
【図26】 体幹を捩じることで歩幅が広がることを示す平面図。
【図27】 体幹を捩じらないで直線上を歩行するのに必要な足の水平面内のスイング角を示す。
【図28】 体幹を捩じりながら直線上を歩行するのに必要な足の水平面内のスイング角を示す。
【図29】 6質点系モデルで歩容データを作成する装置のシステム構成を示す図。
【図30】 6質点系モデルを概念的に示す図。
【図31】 12関節13リンクモデルで歩容データを作成する装置のシステム構成を示す図。
【図32】 12関節13リンクモデルを概念的に示す図。
【図33】 6質点系モデルで作成した歩容データと、12関節13リンクモデルで作成した歩容データから計算されるZMPを目標ZMPに対比して示す図。
【符号の説明】
1:歩行指令データ作成装置
2:ZMP演算部
3:比較部
4:体幹位置ベクトル修正部
5:完成した歩行指令データ
10:ロボット
12:下肢部
14:大腿部
16:下腿部
18:足部
20:胴体部
22:股関節
24:膝関節
26:足首関節
28:骨盤部
30:シャフト
32:ユニバーサルジョイント
34:ベアリング
36:円板
38:モータ
40:フランジ
42:シャフト
44:フランジ
46:軸
48a,48b,48c:ワイヤ終端ガイド
49a,49b,49c:ワイヤ接続点
50a,50b,50c:ワイヤ
52a,52b,52c:アクチュエータ
54:プーリ
56:アクチュエータ
58:フランジ
60:フランジ
62:十字型自在継手
64a,64b,64c,64d:プーリ
66a,66b,66c,66d:ワイヤ
68a,68b,68c,68d:アクチュエータ(ボールネジ)
102:フランジ
104:可動プレート
106:フランジ
108:案内ロッド
110:案内ロッド
112:案内ロッド
114:モータ
116:ギヤ
118:ギヤ
120:送りネジ
122:平板部
124:峰部
126:フランジ
128:シャフト
130:フランジ
132:シャフト
304:逆キネマティクス計算部
334:倒立振子モデル
k1、k2、k3:ゲイン
322:力センサ
328:ジャイロ
350:ずれベクトル演算部
352:目標体幹姿勢ベクトル補正ベクトル演算装置
Claims (9)
- 歩行ロボットの、左足平位置と右足平位置と体幹姿勢を示すデータを入力して記憶する手段と、
前記の位置と姿勢を実現する一つの体幹位置を示すデータを入力または生成して記憶する手段と、
「左足平位置と右足平位置と体幹姿勢を示すデータ」と「一つの体幹位置を示すデータ」から、左膝位置と右膝位置を示すデータを計算する手段と、
左膝位置と右膝位置と左足平近傍位置と右足平近傍位置と体幹基準点に質量が集中して存在する力学系と、前記した左足平位置と右足平位置と体幹位置と体幹姿勢と左膝位置と右膝位置を示すデータから、歩行ロボットのZMP位置を示すデータを計算する手段と、
目標ZMP位置を示すデータを入力して記憶する手段と、
計算されたZMP位置と目標ZMP位置の偏差を解消する側に体幹位置を示すデータを補正する手段を備え、
前記「体幹位置を示すデータを補正する手段」が、体幹位置を示すデータを補正すると左膝位置と右膝位置が変化して「計算されるZMP位置」が変化する関係を利用して、体幹位置を示すデータを補正することを特徴とする歩行ロボットの制御用データ作成装置。 - 前記力学系の体幹基準点が、体幹下部基準点と体幹上部基準点の2点で構成されていることを特徴とする請求項1の制御用データ作成装置。
- 前記力学系が、左足平近傍位置に左脛下半分質量と左足首質量と左足平質量の合計質量が集中して存在し、右足平近傍位置に右脛下半分質量と右足首質量と右足平質量の合計質量が集中して存在し、左膝位置に左脛上半分質量と左膝関節質量と左腿下半分質量の合計質量が集中して存在し、右膝位置に右脛上半分質量と右膝関節質量と右腿下半分質量の合計質量が集中して存在し、体幹下部基準点に左腿上半分質量と左股関節質量と右腿上半分質量と右股関節質量と体幹下半分質量の合計質量が集中して存在し、体幹上部基準点に体幹上半分質量が集中して存在する力学系であることを特徴とする請求項2の制御用データ作成装置。
- 体幹下部基準点と体幹上部基準点の高さが、水平軸回りの体幹の慣性モーメントの大きさを維持する高さに設定されていることを特徴とする請求項3の制御用データ作成装置。
- 歩行ロボットをモデル化した「左膝位置と右膝位置と左足平近傍位置と右足平近傍位置と体幹基準点に質量が集中して存在する力学系」を用いて歩行ロボットのZMP位置を示すデータを計算する方法。
- 歩行ロボットをモデル化した「体幹上部基準点と体幹下部基準点と左膝位置と右膝位置と左足平近傍位置と右足平近傍位置に質量が集中して存在する力学系」を用いて歩行ロボットのZMP位置を示すデータを計算する方法。
- 歩行ロボットをモデル化した「体幹上部基準点と体幹下部基準点と左膝位置と右膝位置と左足平近傍位置と右足平近傍位置に質量が集中して存在する力学系」と、左足平位置と右足平位置と左膝位置と右膝位置と体幹位置と体幹姿勢を示すデータとから、歩行ロボットのZMP位置を示すデータを計算する方法。
- 歩行ロボットをモデル化した「体幹基準点と膝位置と足平近傍位置に質量が集中して存在する力学系」と、体幹位置と膝位置と足平位置の経時的変化を示すデータとから、歩行ロボットのZMP位置を示すデータを計算する方法。
- 歩行ロボットをモデル化した「左膝位置と右膝位置と左足平近傍位置と右足平近傍位置と体幹基準点に質量が集中して存在する力学系」を用いて歩行ロボットのZMP位置を示すデータを計算する装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003029989A JP3888310B2 (ja) | 2003-02-06 | 2003-02-06 | 歩行ロボットの制御用データ作成装置とzmp位置の計算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003029989A JP3888310B2 (ja) | 2003-02-06 | 2003-02-06 | 歩行ロボットの制御用データ作成装置とzmp位置の計算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004237403A JP2004237403A (ja) | 2004-08-26 |
JP3888310B2 true JP3888310B2 (ja) | 2007-02-28 |
Family
ID=32957002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003029989A Expired - Fee Related JP3888310B2 (ja) | 2003-02-06 | 2003-02-06 | 歩行ロボットの制御用データ作成装置とzmp位置の計算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3888310B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008004487A1 (fr) * | 2006-07-04 | 2008-01-10 | Panasonic Corporation | Appareil et procédé de commande de bras robotisé, robot et programme de commande de bras robotisé |
JP4908104B2 (ja) * | 2006-08-16 | 2012-04-04 | 本田技研工業株式会社 | 充電装置 |
JP5071140B2 (ja) * | 2008-02-14 | 2012-11-14 | トヨタ自動車株式会社 | 脚式ロボット、及びその制御方法 |
JP5035005B2 (ja) * | 2008-02-19 | 2012-09-26 | トヨタ自動車株式会社 | 脚式ロボット、その制御方法、その制御システム |
JP5623376B2 (ja) * | 2011-12-02 | 2014-11-12 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置及びロボットの動作目標生成装置 |
JP2014121745A (ja) * | 2012-12-20 | 2014-07-03 | Norio Suzuki | 2足歩行ロボット |
JP6477644B2 (ja) * | 2016-09-28 | 2019-03-06 | トヨタ自動車株式会社 | 歩行訓練装置およびその制御方法 |
CN111832421B (zh) * | 2020-06-18 | 2023-09-01 | 西北大学 | 一种基于生理特征纠错的下肢关节点提取方法 |
CN112731952B (zh) * | 2020-12-24 | 2022-03-01 | 深圳市优必选科技股份有限公司 | 一种机器人质心规划方法、装置、可读存储介质及机器人 |
CN114084585B (zh) * | 2021-11-12 | 2023-10-20 | 北京华能新锐控制技术有限公司 | 斗轮堆取料机的直行取料方法及装置 |
-
2003
- 2003-02-06 JP JP2003029989A patent/JP3888310B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004237403A (ja) | 2004-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7072740B2 (en) | Legged mobile robot | |
Shih | Ascending and descending stairs for a biped robot | |
JP4513320B2 (ja) | ロボット装置、並びにロボット装置の運動制御方法 | |
US8825213B2 (en) | Gait generating device for legged mobile robot and operational target generating device for robot | |
US7615956B2 (en) | Robot | |
JP3888294B2 (ja) | Zmp補償制御のゲインを変化させながら歩行するロボット | |
JP5071140B2 (ja) | 脚式ロボット、及びその制御方法 | |
JPWO2003011535A1 (ja) | 脚式移動ロボット及びその動作制御方法 | |
JPWO2003057430A1 (ja) | 脚式移動ロボットの歩容生成装置及び制御装置 | |
WO2003068454A1 (fr) | Robot androide marchant sur deux jambes | |
JP3888310B2 (ja) | 歩行ロボットの制御用データ作成装置とzmp位置の計算方法 | |
JP3888295B2 (ja) | 倒立振子制御のゲインを静止時に下げる歩行ロボット | |
JP2004322283A (ja) | 姿勢と剛性を独立に制御できるワイヤ式ロボット | |
JP3864907B2 (ja) | 体幹を捩じって歩行する2足ロボットとそのための方法 | |
Ota et al. | Design and control of 6-DOF mechanism for twin-frame mobile robot | |
JP4057840B2 (ja) | 複軸関節ロボット | |
JP5035005B2 (ja) | 脚式ロボット、その制御方法、その制御システム | |
JP3901079B2 (ja) | 剛性を変化させながら歩行するロボット | |
JP3900074B2 (ja) | 2足歩行ロボットの体幹姿勢を精度よく制御する方法 | |
JP3900073B2 (ja) | ならい制御量を許容範囲内に制限する2足歩行ロボット | |
JP4043839B2 (ja) | ロボット | |
JP3888293B2 (ja) | 2足歩行ロボットの目標zmp軌道算出装置 | |
JP3726097B2 (ja) | 脚式移動ロボットの姿勢制御装置 | |
JP2007061954A (ja) | 腰上下動による二足歩行ロボットとその歩行制御方法 | |
JP3962281B2 (ja) | ロボット |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050623 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060808 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061010 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061120 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131208 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |