JP2009107033A - 脚式移動ロボット及びその制御方法 - Google Patents
脚式移動ロボット及びその制御方法 Download PDFInfo
- Publication number
- JP2009107033A JP2009107033A JP2007278727A JP2007278727A JP2009107033A JP 2009107033 A JP2009107033 A JP 2009107033A JP 2007278727 A JP2007278727 A JP 2007278727A JP 2007278727 A JP2007278727 A JP 2007278727A JP 2009107033 A JP2009107033 A JP 2009107033A
- Authority
- JP
- Japan
- Prior art keywords
- deviation
- trunk
- correction
- correction amount
- gait data
- 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.)
- Pending
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
【課題】凹凸がある地面であっても安定して移動が可能な脚式移動ロボット及びその制御方法を提供すること。
【解決手段】脚式移動ロボット1は、目標とする目標体幹加速度と現在の体幹加速度との偏差である加速度偏差を算出する体幹歩容データ補正演算部112と、目標とする目標重心位置と現在の重心位置との偏差である重心位置偏差を算出し、その重心位置偏差と、前記の加速度偏差により歩容データ目標値を補正する補正量変更部116とを有する。
【選択図】図2
【解決手段】脚式移動ロボット1は、目標とする目標体幹加速度と現在の体幹加速度との偏差である加速度偏差を算出する体幹歩容データ補正演算部112と、目標とする目標重心位置と現在の重心位置との偏差である重心位置偏差を算出し、その重心位置偏差と、前記の加速度偏差により歩容データ目標値を補正する補正量変更部116とを有する。
【選択図】図2
Description
本発明は、脚式移動型のロボット及びその制御方法に関し、足先センサを用いずに安定した歩行が可能な脚式移動ロボット及びその制御方法に関する。
近年、歩行するための脚部を備え、この脚部を駆動し、脚部の下端に設けられた足平部分を所定の歩容データに基づいて床面上に配置することで歩行動作を行う脚式移動型のロボットが開発されている。
このような脚式移動型のロボットは、まず、脚部の足平部分を床面に接触させて支持脚とし、その後に足平の裏面で床面を押して脚部全体(ロボット全体)を上げるように脚部を駆動することで、次の歩行動作を行う。駆動された脚部は遊脚となる一方、他の脚部が支持脚となり、このように、遊脚と支持脚とを交互に繰り返して切り換えることで、歩行動作を行うことが可能になる。
このような歩行動作を安定して行う際には、ロボット全体の重心位置を制御して、脚部を駆動する必要がある。すなわち、左右に各々脚部を有する2足歩行タイプの脚式歩行型ロボットの場合、歩行する床面に接地する支持脚の足平部分の接地面内部に、ロボット全体の重心によるモーメントが作用しない点(ZMP=Zero Moment Point)を位置させる。
そのような脚式移動型のロボットとして、特許文献1には、予期しない凹凸がある路面でも安定して歩行することを目的とした脚式移動ロボットが開示されている。この特許文献1に記載の脚式移動ロボットは、予め設定された各関節の目標角度を所定時刻ごとに各関節に配置したサーボモータに出力し、各関節の実角度が目標角度に追従するように制御するロボットにおいて、ロボットの姿勢を検出する検出手段及び検出された姿勢に基づいてロボットが所定の姿勢にあるか否かを判定する姿勢判定手段を備え、胴体の傾斜角、傾斜角速度を検出し、その値が所定範囲外である場合に、歩容を時間方向に変更する。例えば、前傾している場合には、早く着地させる。
また、特許文献2には、足先センサを用いずに安定した歩行を行う脚式ロボットとその歩行制御方法が開示されている。図6は、特許文献2に記載のロボットの制御システムを示す図である。図6に示すように、脚式ロボット201は、体幹と、体幹に対して揺動可能に連結されている脚リンクと、目標とする足先運動の経時的変化を記述する足先歩容データ、目標足先運動の変化に追従して歩行を可能とする目標とする体幹運動の経時的変化を記述する体幹歩容データを記憶する歩容データ記憶装置211、関節角群計算装置213、アクチュエータ制御部214、加速度センサ217、実際の体幹加速度を検出する体幹加速度検出装置215、体幹歩容データ補正演算部212を有する。
体幹歩容データ補正演算部212は、体幹位置姿勢目標値を2階微分して目標体幹加速度を算出する装置231と、目標とする体幹運動と実際の体幹運動の偏差を算出する偏差算出部232と、算出された偏差から所定の伝達関数に基づいて補正量を求め、その補正量に基づいて体幹歩容データ記憶装置211に記憶されている体幹歩容データを補正する外乱力算出装置233、目標補正量算出装置234及び体幹位置補正装置235とを備えている。目標とする体幹加速度と、実際の体幹加速度との偏差に応じて、歩容の体幹位置姿勢目標値を補正する。主に、加速度の偏差に基づき体幹位置を補正している。
特許3167407号公報
特開2005−212012号公報
しかしながら、特許文献1に記載の技術は、歩容を時間方向に補正する手段について、たとえば前傾している場合には、早く着地させるために各関節の速度が速くなる。このためモータの速度がより必要になってしまい、関節の粘性摩擦の影響などによって、モータのトルクが必要となる、すなわちエネルギー効率が悪いという問題点がある。また、例えば高速に歩行している場合には、前傾とするとモータの速度を速くする方向に補正されるので、モータの性能以上の目標関節角度が要求される場合があり得る。さらにまた、胴体が前傾した状態のまま、時間方向に歩容を早めて、早く着地させようとすると、ロボット全体が前傾しているため、遊脚の着地位置目標は床よりも下面に設定されている。このため、着地時にロボットが床よりもさらに鉛直下方に遊脚足先を動作させようとして床を強く蹴ってしまう。すなわち、時間方向の補正が入ると、前傾している場合には、着地時に遊脚で路面を鉛直方向に強く蹴ってしまい、その後、不安定になりやすい。
一方、特許文献2では、以下の問題が生じる。ここで、ロボットが凹部と凸部に着地した場合について説明する。図7(b)に示すように、ロボットが凸部301に着地した場合は、もともとの重心位置302が目標重心位置に対して遅れているので補正後重心位置303のように大きく補正しても問題にならない。これに対し、図7(a)に示すように、ロボットが凹部304に着地した場合、重心位置305が補正後重心位置306へ補正され、補正が大きいと目標重心位置より外側に大きく外れてしまい、その後に回復することが困難になる。特許文献2に記載の技術では、凹部306に着地した場合、凹部304であることによるロボットの姿勢偏差分と加速度フィードバック制御によるロボットの胴体補正分の和が胴体のずれ分になるが、凹部304の場合、そのずれ分が大きくなってしまい、支持脚からみた重心位置の水平方向の偏差が大きくなってしまう。すなわち、路面外乱に対して、足裏の接地性能が良くなるように制御されるが、凹部306に着地した場合、胴体は実際の重心位置が目標重心位置より大きく外れる側に補正されてしまうため、重心位置がその外側に移動してしまい、その後、重心位置を戻すだけの床反力モーメントを発生させられないという問題点がある。
本発明は、このような問題点を解決するためになされたものであり、凹凸がある地面であっても安定して移動が可能な脚式移動ロボット及びその制御方法を提供することを目的とする。
上述した目的を達成するために、脚式移動ロボットにおいて、目標とする目標体幹加速度と現在の体幹加速度との偏差である第1偏差を算出する加速度偏差算出手段と、目標とする目標重心位置と現在の重心位置との偏差である第2偏差を算出する重心位置偏差算出手段と、前記第1偏差及び第2偏差により歩容データ目標値を補正する補正手段とを有するものである。
本発明においては、第1偏差及び第2偏差により体幹歩容データ目標値を補正する補正手段を有するので、歩容データ目標値を的確に補正することができる。
また、前記補正手段は、前記歩容データ目標値を前記第1偏差に基づき補正する体幹歩容データ補正演算手段と、前記第1偏差及び第2偏差に基づき、前記体幹歩容データ補正演算手段の補正の度合を変更する補正量変更手段とを有することができる。これにより、第1偏差により歩容データを補正するのみならず、その補正の度合を調整するため、より精密な補正が可能となる。
さらに、前記体幹歩容データ補正演算手段は、前記第1偏差から補正量を生成する補正量生成手段と、前記補正量生成手段が生成した補正量で前記歩容データ目標値を補正する目標値補正手段とを有することができる。
さらにまた、前記補正量変更手段は、前記第1偏差及び第2偏差が同符号の場合にのみ前記歩容データ目標値の補正量を調整する調整係数を生成することができる。第1偏差及び第2偏差が同符号の場合は、凹部に着地したと判断でき、歩容データ目標値を第1偏差の値に応じて補正する際、その補正量を修正する調整係数を生成する。第1偏差及び第2偏差の符号が異符号の場合は、凸部に着地したと判断することができ、この場合は、第1偏差の値に応じて生成された補正量で歩容データ目標値を補正する。
また、前記補正量生成手段は、前記第1偏差に予め定められた比例ゲイン及び伝達関数、並びに前記補正量変更手段が生成した調整係数を乗算して補正量を生成し、前記補正量変更手段は、前記第2偏差が大きいほど前記補正量が小さくなるよう前記調整係数を変更することができる。調整係数を小さくすることで補正量を減少させ、凹部に着地した際にロボットの重心位置が大きく移動してしまうことを防止する。
さらにまた、前記補正量変更手段は、前記第2偏差が第1の閾値より小さい場合は調整係数を1とし、前記第1の閾値乃至第2の閾値の間は1から0への単調減少関数とし、前記第2の閾値以上の場合は前記調整係数をゼロとすることができる。重心位置偏差の値に応じて調整係数を適宜変更することができる。
さらに、前記重心位置偏差算出手段の代わりに、目標胴***置と、現在の胴***置との偏差である第3偏差を算出する胴***置偏差算出手段、又は目標胴体姿勢と、現在の胴体姿勢との偏差である第4偏差を算出する胴体姿勢位置偏差算出手段を設けるものとしてもよい。ロボットの質量のうち、大半がロボットの体幹に集中していることから、重心位置の代わりに胴***置や胴体姿勢位置を使用してもよい。
さらにまた、前記歩容データ目標値は、体幹位置姿勢目標値及び足先位置姿勢目標値であるとすることができる。体幹位置姿勢は、絶対座標系に対するロボットの胴体に固定された座標系の位置及び傾きで表わされる。また、足先位置姿勢は、絶対座標系に対するロボットの足先に固定された座標系の位置及び傾きで表わされる。
本発明にかかる脚式移動ロボットの制御方法は、脚式移動ロボットの制御方法であって、目標体幹加速度と現在の体幹加速度との偏差である第1偏差を算出する加速度偏差算出工程と、目標重心位置と現在の重心位置との偏差である第2偏差を算出する重心位置偏差算出工程と、前記第1偏差及び第2偏差により歩容データ目標値を補正する補正工程とを有する。
本発明によれば、凹凸がある地面であっても安定して移動が可能な脚式移動ロボット及びその制御方法を提供することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。図1は、ロボット1を正面から見た様子を概略的に表す概略図であり、床面F上をロボット1が歩行する様子を表しているなお、図1においては、説明の便宜上、ロボット1が進行する向き(前後方向)をx軸、ロボット1が進行する方向について水平方向に直交する向き(左右方向)をy軸、移動体の移動する平面から鉛直方向に延びる向き(上下方向)をz軸とし、これらの3軸からなる座標系を用いて説明する。すなわち、図1中において、前記x軸は紙面の奥行方向、y軸は紙面に向かって左右方向、z軸は紙面中の上下方向を示す。この座標系を、絶対座標系Og−XgYgZgに設定する。
図1に示すように、ロボット1は、頭部2と、体幹3と、体幹3に結合された腰部4と、体幹3に接続された右腕5、左腕6と、腰部4に対して回動自在に固定される脚部10と、を備えた2足歩行型のロボットである。以下、詳細に説明する。
頭部2は、ロボット1の周囲の環境を視覚的に撮像するための左右一対の撮像部(図示せず)を備えているとともに、体幹3に対して頭部2を鉛直方向に平行な軸周りに回動させることで、周囲の環境を広く撮像する。撮像した周囲の環境を示す画像データは、制御部130に送信され、ロボット1の動作を決定するための情報として用いられる。
体幹3は、その内部にロボット1の動作を制御する制御部130や、脚部のモータ等に電力を供給するためのバッテリー(図示せず)等を収容するものである。制御部130は、脚部10を駆動し、ロボット1を動かすための歩容データを記憶する記憶領域と、この記憶領域に記憶された歩容データを読み出す演算処理部と、脚部10に含まれるモータを駆動するモータ駆動部と、を備えている。これらの各構成要素は、体幹3の内部に設けられたバッテリー(図示せず)から電力を供給されることで動作する。ここで、体幹部に対しては、胴体座標系Ob−XbYbZbを設定する。後述する目標胴***置は、絶対座標系Og−XgYgZgの原点Obの位置で表わされる。また、後述する目標胴体姿勢角は、絶対座標系Og−XgYgZgに対する胴体座標系Ob−XbYbZbの傾きで表わされる。
また、演算処理部は、記憶領域に記憶された歩容データを読み出すとともに、読み出した歩容データによって特定されるロボット1の姿勢を実現するために必要な脚部10の関節角を算出する。そして、このように算出した関節角に基づく信号をモータ駆動部に送信する。
モータ駆動部は、演算処理部より送信された信号に基づいて、脚部を駆動するための各モータの駆動量を特定し、これらの駆動量でモータを駆動させるためのモータ駆動信号を各モータに送信する。これによって脚部10の各関節における駆動量が変更され、ロボット1の動きが制御される。
また、演算処理部は、読み出した歩容データに基づいてモータの駆動を行うように指令するほか、ロボット1に組み込まれたジャイロや加速度計などセンサ(図示せず)からの信号を受けて、モータの駆動量を調整する。また、レーザセンサなどを設けて、床面Fまでの距離を検出してもよい。ジャイロセンサや加速度計やレーザセンサなどの各種センサは、例えば、体幹3や腰部4に設けられる。このように、センサにより検出したロボット1に作用する外力や、ロボット1の姿勢などに応じて脚部10の関節角を調整することで、ロボット1が安定した状態を維持することができる。
右腕5および左腕6は、体幹3に対して回動自在に接続されており、肘部分および手首部分に設けられた関節部分を駆動することにより、人間の腕部と同様の動きを行うことができる。また、手首部分の先端に接続された手先部は、図示を省略するが物体を把持するためのハンド構造を備えており、ハンド構造に組み込まれた複数の指関節を駆動することで、様々な形状の物体を把持することが可能となる。
腰部4は、体幹3に対して回動するように接続されており、歩行動作を行う際に腰部4の回動動作を組み合わせることで、脚部10を駆動するために必要な駆動エネルギーを低減させることができる。
2足歩行を行うための脚部10(右脚20、左脚30)は、右脚20と左脚30とから構成されている。詳細には、図1に示すように、右脚20は右股関節21、右上腿22、右膝関節23、右下腿24、右足首関節25、右足平26を備え、同様に、左脚30は左股関節31、左上腿32、左膝関節33、左下腿34、左足首関節35、左足平36を備えている。
そして、右脚20および左脚30とは、図示しないモータからの駆動力が、同じく図示しないプーリおよびベルトを介して伝達されることで、各関節部が所望の角度に駆動され、その結果、脚部に所望の動きをさせることができる。ここで、足平に関しては、足平座標系Of−XfYfZfを設定する。後述する目標足平位置は、絶対座標系Og−XgYgZgに対する足平座標系Of−XfYfZfの原点の位置で表わされる。目標足平姿勢角は、接地面に対する足裏面の角度で表わされる。
歩容データは、操作部(図示せず)から送られる信号で特定される脚部の移動量に対応づけて、脚部10の足平(右足平26、左足平36)の先端(足先)の位置と、移動体本体の位置とを、ロボット1の移動する空間を定める座標系(例えばxyz座標系)において経時的に指示するものである。歩容データとしては、目標胴***置、目標胴体姿勢角、目標足平位置、目標足平姿勢角などがある。歩容データは、ロボット1を実際に動作させる前に、シミュレーション等によってロボット1が安定して歩行できるよう、すなわち転倒せずに歩行できるように作成されている。作成された歩容データは、ロボット1の制御部(コントローラ)130に記憶される。制御部130は、実際の胴***置等を歩容データに含まれる目標胴***置等に追従させるように各関節を制御する。
図2は、ロボットの制御システムの機能を示すブロック図である。図2に示す要素のうち、ロボットの機械系および体幹加速度センサ17を除いた部分が制御システムの構成要素である。制御システムは、物理的に1つの装置に含まれていてもよいし、物理的に分離された装置ごとに分けて収容されていてもよい。
ロボット1は、歩容データ記憶部111、体幹歩容データ補正演算部112、関節角変換部113、各軸制御器114、体幹加速度計算部115、補正量変更部116、体幹加速度センサ117a、各種センサ及び関節エンコーダ(以下、まとめてセンサ117という。)を有する。
歩容データ記憶装置111には、予め計算されたロボット1の歩容データが記憶されている。歩容データとは、腕先軌道データ(腕先歩容データ)、足先軌道データ(足先歩容データ)及び体幹軌道データ(体幹歩容データ)のことをいう。予め記憶されている歩容データのうち、腕先軌道データ及び足先軌道データは、関節角変換部113へ直接に入力される。体幹歩容データは、体幹歩容データ補正演算部112へ入力され、ロボット1の歩行に伴いその都度補正され、補正された体幹軌道を示すデータが関節角変換部113へ入力される。また、関節角等から演算により歩容データをリアルタイムに生成してもよい。足先軌道データと腕先軌道データは、補正されないで直接に関節角変換部113に入力される。一方、体幹位置姿勢目標値は体幹歩容データ補正演算部112に入力される。
関節角変換部113は、両足位置姿勢目標値及び、補正された体幹位置姿勢目標値からなる歩容データが入力される。この歩容データに基づいて、いわゆる逆キネマティクスを解くことでロボット1の各関節角θ1(t)、θ2(t)、θ3(t)、・・・を計算する。計算された関節角群データは、各軸制御器114に入力される。
各軸制御器114は、図1のロボット1の関節群を回転させるアクチュエータ群を制御する。アクチュエータ群はロボットの機械系に存在している。アクチュエータ群を制御すると、ロボット1の関節角を計算された関節角に調整できる。これにより、ロボット1は歩容データに従って歩行する。
ロボット1の体幹部には、センサの1つとして、体幹加速度センサ117aが搭載されている。体幹加速度センサ117aにより、体幹のx方向(歩行方向)とy方向(体側方向)とz方向(高さ方向)の加速度を検出する。体幹加速度計算部115は、体幹加速度センサにて測定された体幹の加速度を、目標体幹加速度を算出する際に使用した体幹部の位置に対応する位置の体幹加速度に変換する。この実際の体幹加速度axr、ayr、azrを体幹歩容データ補正演算部112へ出力する。
体幹歩容データ補正演算部112は、歩容データ記憶部111に記憶されている体幹軌道データ(体幹歩容データ)と、体幹加速度計算部115で計算されたロボット1の実際の体幹加速度(以下、実体幹加速度という。)に基づいて、体幹軌道データの補正を行う。具体的には、実体幹加速度と、目標となる目標体幹加速度の偏差である第1偏差に基づき、歩容データ目標値のうち、体幹位置姿勢目標値を補正する。補正された体幹位置姿勢目標値は、関節角変換部113へ入力される。
さらに、本実施の形態においては、体幹加速度偏差及びロボット1の実際の重心位置(以下、実重心位置という。)と目標となる目標重心位置との偏差である第2偏差である重心位置偏差に基づき、前記体幹位置姿勢目標値の補正の度合を変更する補正量変更部116を有する。補正量変更部116は、体幹加速度偏差及び重心位置偏差の値が同符号の場合に体幹位置姿勢目標値の補正量を修正するが、体幹加速度偏差及び重心位置偏差の値が異符号である場合は補正量の修正はしない。具体的には、重心位置偏差が大きいほど体幹位置姿勢目標値の補正量が小さくなるよう、当該補正量に乗算する後述する調整係数を出力する。ここで、体幹歩容データ補正演算部112及び補正量変更部116から体幹加速度偏差及び重心位置偏差により体幹位置姿勢目標値を補正する補正手段が構成される。
次に、体幹歩容データ補正演算部112について説明する。体幹歩容データ補正演算部112は、2階微分演算部131、加速度偏差算出部132、補正量生成部133及び目標値補正手段としての目標体幹位置姿勢補正部134を有する。ここでは、図示の明瞭化のために、x方向の事象のみを図示している。y方向とz方向についても同様である。
2階微分演算部131は、歩容データ記憶部111に記憶されている体幹歩容データが示す目標体幹位置xo、yo、zo(それぞれは経時的に変化する)を、時間に関して2階微分演算を行って、目標体幹加速度axo、ayo、azoを算出する。加速度偏差算出部32は、実際の体幹加速度axr、ayr、azrから、実際の体幹加速度axo、ayo、azoを減じて、加速度偏差Δax、Δay、Δazを算出する。
補正量算出部133は、算出された加速度偏差Δax、Δay、Δazに、比例ゲイン、調整係数k、伝達関数1/G(x)を乗じて補正量xd、yd、zdを算出する。ここで、調整係数kは、後述するように、補正量の値を調整するための係数である。本実施の形態においては、加速度偏差Δax、Δay、Δazに対し、−M/(Mi×s2+Ci×s+Ki)を乗算している。
ここで、伝達関数1/G(s)は、2次の項の係数をMi、1次の項の係数をCi、0次の項の係数をKiとする遅れ要素からなる。Mi、Ci、Kiは所望のパラメータであり、予め指定されている。sはラプラス変換子、伝達関数のゲインは1/Kiで、比例ゲインとしては−Mを用いる。ここで、Mはロボットの質量であり、加速度偏差Δax、Δay、Δazに比例ゲイン−Mを乗じることで外乱力Drx、Dry、Drzを算出する。補正量算出部133の処理は、たとえばx方向について、
Drx=Mi・xd(2)+Ci・xd(1)+Ki・xd(0)
の微分方程式を解いてxdを求めることに相当する。ここで、(2)は時間に関する2階微分を示し、(1)は時間に関する1階微分を示し、(0)はxd自身を示す。なお、補正量xdの符号の取り方によっては、
−Drx=Mi・xd(2)+Ci・xd(1)+Ki・xd(0)
と表現する方が正しいこともある。
Drx=Mi・xd(2)+Ci・xd(1)+Ki・xd(0)
の微分方程式を解いてxdを求めることに相当する。ここで、(2)は時間に関する2階微分を示し、(1)は時間に関する1階微分を示し、(0)はxd自身を示す。なお、補正量xdの符号の取り方によっては、
−Drx=Mi・xd(2)+Ci・xd(1)+Ki・xd(0)
と表現する方が正しいこともある。
なお、これらの係数、Mi、Ci、Kiのうち、0次の係数Kiは不可欠であるが、1次の遅れ要素の係数Ci及び2次の遅れ要素の係数Miの一方又は双方をゼロとしてもよい。
この伝達関数は、ばね−質点−ダンパ系を記述する伝達関数であり、補正後の体幹歩容データに従って動作するロボットの体幹は、補正後の体幹歩容データが表現する目標体幹運動の経時変化に従って緩やかに収束する。ロボットには、関節等にガタがあったり、制御に応答遅れがあったり、外界から外力が加わると、実際の体幹加速度が目標とする体幹加速度にならず、予期せぬ外乱力によって加速度偏差Δax、Δay、Δazが生じる。補正量生成部133は、この加速度偏差とロボット(体幹部)の質量から、外乱力を推定し、この外乱力と、「ばね−質点−ダンパ系」を記述する伝達関数に基づいて、外乱力を補償するための体幹運動に関する補正量を求めることができる。なお、パラメータMi、Ci、Kiは、ロボットに発揮させる復元力の大きさに影響するが、「ばね−質点−ダンパ系」を記述するものであればよいので、適宜設定すればよい。
目標体幹位置姿勢補正部134は、歩容データ記憶部111に記憶されている補正前の目標体幹位置xo、yo、zoに、補正量xd、yd、zdを加算して、補正後の目標体幹位置xref、yref、zrefを算出し、関節角変換部113へ指示する。
次に、補正量変更部116について説明する。補正量変更部は、目標重心位置計算部、補正値調整部122、実重心位置計算部123を有する。補正量変更部116は、加速度偏差のフィードバック制御に用いる補正値を重心位置の偏差に応じて調整するための調整係数を生成する。
目標重心位置計算部121、両足位置姿勢目標値及び体幹位置姿勢目標値から目標重心位置を算出する。なお、歩容データを生成する際に、この目標重心位置を計算しておいてもよい。その場合は、目標重心位置計算部は不要である。
実重心位置計算部123は、姿勢センサ及び関節エンコーダの値に基づき、現在の重心位置を算出する。ここで、本実施の形態においては、現在の重心位置を算出するものとして説明するが、重心位置ではなく、胴***置を使用することも可能である。この場合、目標重心位置ではなく、目標胴***置を算出しておく。ロボットの質量のうち、大半がロボットの体幹に集中している。そこで、重心位置偏差の代わりに胴***置偏差を使用してもよい。これによって重心位置を求める演算を省略することができ、計算時間を削減して処理スピードを向上することができる。または、同様の理由から重心位置偏差の代わりに胴体姿勢偏差を使用してもよい。
補正値調整部122は、目標重心位置と、現在の重心位置との偏差である重心位置偏差を求める。そして、重心位置偏差と加速度偏差とが同符号である場合のみ、重心位置偏差の値に応じて、補正量生成部133の補正量を調整する調整係数kを求める。加速度偏差と重心位置偏差の値の符号が同符号であると、ロボットは凹部に着地したものと判断でき、重心位置偏差が大きくなりすぎないよう補正量を調整する必要がある。ここで、本実施の形態においては、補正係数生成部122は、補正値生成部133の補正値を変更・調整するものとして説明するが、補正量を調整ができればよく、例えば加速度偏差Δax、Δay、Δazを調整・変更してもよい。
次に、補正量変更部の動作、すなわち、実重心位置の計算方法、重心位置偏差の計算方法、調整係数の生成方法について説明する。図3は、目標歩容と重心位置及び実際の歩容と重心位置を示す図である。Σw0は、基準座標系、Σfdは、ロボットの脚部の目標座標系、Σbdは、ロボットの体幹部の目標座標系、Σfrは、ロボットの脚部の実際の座標系、Σbrはロボットの体幹部の実際の座標系を示している。
実重心位置の計算方法
ロボットの体幹部に備えられた姿勢センサから得られた姿勢角、各関節のサーボ目標値、ロボットのリンクの質量、長さなどを含むモデルから重心位置を算出する。ここで得られる重心位置は、目標の歩容座標系を生成する基準座標系Σw0とは異なる座標系基準となっている。例えば、図3(a)に示すように、目標の歩容と重心位置は基準座標系Σw0を基準にしており、また、実際の歩容と重心位置は、図3(b)に示すように、任意の別の座標系Σwrを基準に求められる。図3(a)、図3(b)において、Σの添え字のbは「体幹部」、fは「脚部」、dは「目標座標」、rは「実際の座標」、wは、基準座標系Σw0を基準とした座標系であることを示す。
ロボットの体幹部に備えられた姿勢センサから得られた姿勢角、各関節のサーボ目標値、ロボットのリンクの質量、長さなどを含むモデルから重心位置を算出する。ここで得られる重心位置は、目標の歩容座標系を生成する基準座標系Σw0とは異なる座標系基準となっている。例えば、図3(a)に示すように、目標の歩容と重心位置は基準座標系Σw0を基準にしており、また、実際の歩容と重心位置は、図3(b)に示すように、任意の別の座標系Σwrを基準に求められる。図3(a)、図3(b)において、Σの添え字のbは「体幹部」、fは「脚部」、dは「目標座標」、rは「実際の座標」、wは、基準座標系Σw0を基準とした座標系であることを示す。
重心位置偏差の計算
ロボットの体幹に固定された姿勢センサから得られる情報から胴体の回転行列w0Rbrが得られる。これを利用して、ロボットの支持脚足先位置からみた重心位置を基準座標系で求める。先ず、ロボットの目標支持脚足先位置からみた目標重心位置座標は、
w0Pgd−w0Pfd
w0Pgd:基準座標系Σw0からみた目標重心位置座標
w0Pfd:基準座標系Σw0からみた目標支持脚足先位置座標
次に、ロボットの実際(座標系Σwr)の支持脚足先位置座標からみた重心位置座標は、wrPgr−wrPfrであり、座標系Σwrを座標系Σbrに変換する回転行列wrRbr、座標系Σwrを座標系Σw0に変換する回転行列w0Rbrを使用し、基準座標系に変換した実際の重心位置座標を現すと、下記となる。
w0Rbr wrRbr T(wrPgr−wrPfr)
wrPgr:座標系Σwrからみた実重心位置座標
wrPfr:座標系Σwrからみた実支持脚足先位置座標
wrRbr:座標系Σwrからみた実胴体姿勢
w0Rbr:姿勢センサから得られた実胴体姿勢
ロボットの体幹に固定された姿勢センサから得られる情報から胴体の回転行列w0Rbrが得られる。これを利用して、ロボットの支持脚足先位置からみた重心位置を基準座標系で求める。先ず、ロボットの目標支持脚足先位置からみた目標重心位置座標は、
w0Pgd−w0Pfd
w0Pgd:基準座標系Σw0からみた目標重心位置座標
w0Pfd:基準座標系Σw0からみた目標支持脚足先位置座標
次に、ロボットの実際(座標系Σwr)の支持脚足先位置座標からみた重心位置座標は、wrPgr−wrPfrであり、座標系Σwrを座標系Σbrに変換する回転行列wrRbr、座標系Σwrを座標系Σw0に変換する回転行列w0Rbrを使用し、基準座標系に変換した実際の重心位置座標を現すと、下記となる。
w0Rbr wrRbr T(wrPgr−wrPfr)
wrPgr:座標系Σwrからみた実重心位置座標
wrPfr:座標系Σwrからみた実支持脚足先位置座標
wrRbr:座標系Σwrからみた実胴体姿勢
w0Rbr:姿勢センサから得られた実胴体姿勢
ここで添え字のfは「脚部」、gは「重心位置」、wは、「基準座標系Σw0を基準としたベクトルの要素」、rは「実際の座標」を示している。以上の結果から、ロボットの支持脚からみた重心位置偏差w0ΔPg−fは、基準座標系Σw0を基準とすると下記となる。
w0ΔPg−f=w0Rbr wrRbr T(wrPgr−wrPfr)−(w0Pgd−w0Pfd)
w0ΔPg−f=w0Rbr wrRbr T(wrPgr−wrPfr)−(w0Pgd−w0Pfd)
重心位置偏差に応じたゲイン変更
重心位置偏差と、補正量生成部133の補正量の符号を比較し、符号が同じ場合には、補正量が小さくなるような調整係数kを乗算する。これを式であらわすと下記となる。
重心位置偏差と、補正量生成部133の補正量の符号を比較し、符号が同じ場合には、補正量が小さくなるような調整係数kを乗算する。これを式であらわすと下記となる。
このとき、調整係数は、図4のように表すことができる。図4は、ロボットの胴***置補正及び加速度偏差の向きを示す図である。図4は、調整係数kと重心位置の偏差の大きさとの関係を示す図である。加速度偏差の符号(補正量の符号)と重心位置偏差の符号が同じ場合には、ロボットが凹部に着地したと判断して胴体加速度フィードバック制御の補正量を図4に示す変調係数で調整する。
図4に示す例では、重心位置偏差がある閾値Δ1以下である場合は、調整係数kを最大値の1とする。重心位置偏差が閾値Δ1乃至閾値Δ2(Δ1<Δ2)の間は、調整係数kは1から0への単調減少関数とし、閾値Δ2でk=0とする。重心位置偏差が閾値Δ2以上の場合は、調整係数k=0とし、補正量を0とする。
これにより、上述の図6に示したように、凹部に着地したと判断できる場合は、補正量が小さくなるように補正することで、重心位置が大きく外れてしまうことを防止する。そして、凸部に着地したと判断できる場合は、胴体の加速度フィードバックによる補正量はそのままとする。これにより、十分に外力を吸収し、足裏の路面に対する接地性を確保する。本実施の形態においては、凸部と凹部を判定するため、重心位置偏差と加速度偏差の符号を比較するのである。
図6は、本実施の形態における補正量変更部の動作を示すフローチャートである。図5に示すように、先ず、実重心位置計算部123が胴体の実姿勢角と各関節サーモ目標値から、ロボットの実重心位置を算出する(ステップS1)。次に、調整係数生成部122は、ロボットの重心位置偏差を求める(ステップS2)。そして、調整係数生成部122は、ロボットの重心位置偏差と、加速度フィードバック制御に使用する体幹加速度偏差の符号を比較する(ステップS3)。符号が同じ、すなわち、体幹の補正方向と重心位置偏差の方向が同じであれば(ステップS4:Yes)、重心位置偏差に応じて調整係数を生成する (ステップS5)。符号が異なる場合は、調整係数は出力せず、そのままの補正量で体幹位置姿勢目標値の補正を行わせる。
なお、本実施の形態においては、体幹位置姿勢目標値をフィードバック制御する場合について説明したが、両足位置姿勢目標値も同様にフィードバック制御してもよいことは勿論である。例えば、足裏距離センサから足平と接地面の距離を求める。より正確には足平に固定された座標原点Ofと接地面の間の距離を求める。この距離は、接地面に対する実足平位置を表す。目標足平位置と実足平位置の偏差に基づいて目標足平位置の補正量を算出する。算出された補正量を目標足平位置に加算した値、すなわち目標足平位置の補正量で補正された目標足平位置を関節角変換部113へ入力する。そのような制御系によって、実足平位置を目標足平位置に一致させることができる。例えば、実際のロボットの遊脚が実際の接地面に接地するタイミングを、歩容データ上で遊脚が接地面に着地するタイミングに一致させることができる。
本実施の形態においては、インピーダンス制御において、遊脚着地時に大きな外乱が生じると、胴体に加速度が発生し、その結果胴***置が補正される。しかし、遊脚着地位置が凹部の場合には、その補正によって、胴体が大きく外側に補正されることになり、結果として衝撃は吸収されるが重心位置がより大きくずれてしまい、その重心位置を回復させることができなくなる。そこで、重心位置偏差と加速度偏差を利用し、凹部に着地した場合を判定する。上述のように重心位置偏差と加速度偏差の符号が同一であれば、凹部に着地したと判定でき、この場合には、加速度偏差のフィードバック制御に用いる補正量を小さくしすることで、体幹位置姿勢目標値の補正量を小さくする。このことにより、凹部に着地した場合に補正量が大きくなって重心位置が外側に大きくなり回復できなくなるようなことを防止する。凹部に着地したと想定でき、補正量を小さくする。
これに対し、凸部に着地した場合、もともとの重心位置が目標に対して遅れているので、補正しても問題にならない。よって、凸部に着地した場合は、補正量をそのままとし、十分に外力を吸収し、足裏の路面に対する接地性を確保させる。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。
1 ロボット、2 頭部、3 体幹、
4 腰部、5 右腕、6 左腕、
10 脚部、11 載置部、17 体幹加速度センサ、
20 右脚、21 右股関節、22 右上腿、
23 右膝関節、24 右下腿、25 右足首関節、
26 右足平、30 左脚、31 左股関節、
32 左上腿、32 加速度偏差算出部、33 左膝関節、
34 左下腿、35 左足首関節、36 左足平、
111 歩容データ記憶部、112 体幹歩容データ補正演算部、
113 関節角変換部、114 各軸制御器、
115 体幹加速度計算部、116 補正量変更部、117 センサ、
121 目標重心位置計算部、122 調整係数生成部、
123 実重心位置計算部、131 階微分演算部、
132 加速度偏差算出部、133 補正量算出部、134 目標体幹位置姿勢補正部
4 腰部、5 右腕、6 左腕、
10 脚部、11 載置部、17 体幹加速度センサ、
20 右脚、21 右股関節、22 右上腿、
23 右膝関節、24 右下腿、25 右足首関節、
26 右足平、30 左脚、31 左股関節、
32 左上腿、32 加速度偏差算出部、33 左膝関節、
34 左下腿、35 左足首関節、36 左足平、
111 歩容データ記憶部、112 体幹歩容データ補正演算部、
113 関節角変換部、114 各軸制御器、
115 体幹加速度計算部、116 補正量変更部、117 センサ、
121 目標重心位置計算部、122 調整係数生成部、
123 実重心位置計算部、131 階微分演算部、
132 加速度偏差算出部、133 補正量算出部、134 目標体幹位置姿勢補正部
Claims (16)
- 脚式移動ロボットにおいて、
目標とする目標体幹加速度と現在の体幹加速度との偏差である第1偏差を算出する加速度偏差算出手段と、
目標とする目標重心位置と現在の重心位置との偏差である第2偏差を算出する重心位置偏差算出手段と、
前記第1偏差及び第2偏差により歩容データ目標値を補正する補正手段とを有する脚式移動ロボット。 - 前記補正手段は、前記歩容データ目標値を前記第1偏差に基づき補正する体幹歩容データ補正演算手段と、前記第1偏差及び第2偏差に基づき、前記体幹歩容データ補正演算手段の補正の度合を変更する補正量変更手段とを有する
ことを特徴とする請求項1項記載の脚式移動ロボット。 - 前記体幹歩容データ補正演算手段は、前記第1偏差から補正量を生成する補正量生成手段と、前記補正量生成手段が生成した補正量で前記歩容データ目標値を補正する目標値補正手段とを有する
ことを特徴とする請求項2記載の脚式移動ロボット。 - 前記補正量変更手段は、前記第1偏差及び第2偏差が同符号の場合にのみ前記歩容データ目標値の補正量を調整する調整係数を生成する
ことを特徴とする請求項2又は3記載の脚式移動ロボット。 - 前記補正量生成手段は、前記第1偏差に予め定められた比例ゲイン及び伝達関数、並びに前記補正量変更手段が生成した調整係数を乗算して補正量を生成し、
前記補正量変更手段は、前記第2偏差が大きいほど前記補正量が小さくなるよう前記調整係数を変更する
ことを特徴とする請求項3記載の脚式移動ロボット。 - 前記補正量変更手段は、前記第2偏差が第1の閾値より小さい場合は調整係数を1とし、前記第1の閾値乃至第2の閾値の間は1から0への単調減少関数とし、前記第2の閾値以上の場合は前記調整係数をゼロとする
ことを特徴とする請求項5記載の脚式移動ロボット。 - 前記重心位置偏差算出手段の代わりに、目標胴***置と、現在の胴***置との偏差である第3偏差を算出する胴***偏差算出手段を設ける
ことを特徴とする請求項1乃至6のいずれか1項記載の脚式移動ロボット。 - 前記重心位置偏差算出手段の代わりに、目標胴体姿勢と、現在の胴体姿勢との偏差である第4偏差を算出する胴体姿勢位置偏差算出手段を設ける
ことを特徴とする請求項1乃至6のいずれか1項記載の脚式移動ロボット。 - 前記歩容データ目標値は、体幹位置姿勢目標値及び足先位置姿勢目標値である
ことを特徴とする請求項1乃至8のいずれか1項記載の脚式移動ロボット。 - 脚式移動ロボットの制御方法であって、
目標体幹加速度と現在の体幹加速度との偏差である第1偏差を算出する加速度偏差算出工程と、
目標重心位置と現在の重心位置との偏差である第2偏差を算出する重心位置偏差算出工程と、
前記第1偏差及び第2偏差により歩容データ目標値を補正する補正工程とを有する脚式移動ロボットの制御方法。 - 前記補正工程は、前記歩容データ目標値を前記第1偏差に基づき補正する体幹歩容データ補正演算工程と、前記第1偏差及び第2偏差に基づき、前記体幹歩容データ補正演算工程での補正の度合を変更する補正値変更工程とを有する
ことを特徴とする請求項10項記載の脚式移動ロボットの制御方法。 - 前記体幹歩容データ補正演算工程は、前記第1偏差から補正量を生成する補正量生成工程と、前記補正量生成手段が生成した補正量で前記歩容データ目標値を補正する目標値補正工程とを有する
ことを特徴とする請求項11記載の脚式移動ロボットの制御方法。 - 前記補正値変更工程では、前記第1偏差及び第2偏差が同符号の場合にのみ前記歩容データ目標値の補正の度合を変更する
ことを特徴とする請求項11又は12記載の脚式移動ロボットの制御方法。 - 前記補正量生成工程では、前記第1偏差に予め定められた比例ゲイン及び伝達関数、並びに前記補正値変更工程での調整係数を乗算して補正量を生成し、
前記補正量変更工程は、前記第2偏差が大きいほど前記補正量が小さくなるよう前記調整係数を変更する
ことを特徴とする請求項13記載の脚式移動ロボットの制御方法。 - 前記重心位置偏差算出工程の代わりに、目標胴***置と、現在の胴***置との偏差である第3偏差を算出する胴***偏差算出工程を設ける
ことを特徴とする請求項10乃至14のいずれか1項記載の脚式移動ロボットの制御方法。 - 前記重心位置偏差算出工程の代わりに、目標胴体姿勢と、現在の胴体姿勢との偏差である第4偏差を算出する胴体姿勢位置偏差算出工程を設ける
ことを特徴とする請求項10乃至14のいずれか1項記載の脚式移動ロボットの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007278727A JP2009107033A (ja) | 2007-10-26 | 2007-10-26 | 脚式移動ロボット及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007278727A JP2009107033A (ja) | 2007-10-26 | 2007-10-26 | 脚式移動ロボット及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009107033A true JP2009107033A (ja) | 2009-05-21 |
Family
ID=40776118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007278727A Pending JP2009107033A (ja) | 2007-10-26 | 2007-10-26 | 脚式移動ロボット及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009107033A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011025339A (ja) * | 2009-07-23 | 2011-02-10 | Honda Motor Co Ltd | 移動体の制御装置 |
JP2011131301A (ja) * | 2009-12-22 | 2011-07-07 | Toyota Motor Corp | 脚式ロボットとそのための歩容データ生成方法 |
JP2013116528A (ja) * | 2011-12-02 | 2013-06-13 | Honda Motor Co Ltd | 脚式移動ロボットの歩容生成装置 |
CN113822210A (zh) * | 2021-09-27 | 2021-12-21 | 山东睿思奥图智能科技有限公司 | 一种基于激光技术的人腿检测方法 |
CN114161402A (zh) * | 2021-12-17 | 2022-03-11 | 深圳市优必选科技股份有限公司 | 机器人稳定控制方法、模型构建方法、装置和机器人 |
-
2007
- 2007-10-26 JP JP2007278727A patent/JP2009107033A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011025339A (ja) * | 2009-07-23 | 2011-02-10 | Honda Motor Co Ltd | 移動体の制御装置 |
JP2011131301A (ja) * | 2009-12-22 | 2011-07-07 | Toyota Motor Corp | 脚式ロボットとそのための歩容データ生成方法 |
JP2013116528A (ja) * | 2011-12-02 | 2013-06-13 | Honda Motor Co Ltd | 脚式移動ロボットの歩容生成装置 |
CN113822210A (zh) * | 2021-09-27 | 2021-12-21 | 山东睿思奥图智能科技有限公司 | 一种基于激光技术的人腿检测方法 |
CN113822210B (zh) * | 2021-09-27 | 2022-10-14 | 山东睿思奥图智能科技有限公司 | 一种基于激光技术的人腿检测方法 |
CN114161402A (zh) * | 2021-12-17 | 2022-03-11 | 深圳市优必选科技股份有限公司 | 机器人稳定控制方法、模型构建方法、装置和机器人 |
CN114161402B (zh) * | 2021-12-17 | 2023-11-10 | 深圳市优必选科技股份有限公司 | 机器人稳定控制方法、模型构建方法、装置和机器人 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101985790B1 (ko) | 보행 로봇 및 그 제어 방법 | |
JP4998506B2 (ja) | ロボット制御装置、ロボット制御方法、及び脚式ロボット | |
US8825213B2 (en) | Gait generating device for legged mobile robot and operational target generating device for robot | |
JP4513320B2 (ja) | ロボット装置、並びにロボット装置の運動制御方法 | |
US8688273B2 (en) | Walking control apparatus of robot and method of controlling the same | |
JP3760186B2 (ja) | 二脚歩行式移動装置及びその歩行制御装置並びに歩行制御方法 | |
US9043029B2 (en) | Walking robot and method for controlling posture thereof | |
JP5916998B2 (ja) | 人間型ロボット及びその歩行制御方法 | |
US8868240B2 (en) | Walking robot and pose control method thereof | |
KR101687630B1 (ko) | 보행 로봇 및 그 균형 제어 방법 | |
US8682488B2 (en) | Humanoid robot and walking control method thereof | |
US8612054B2 (en) | Robot walking control apparatus and method thereof | |
US20090321150A1 (en) | Walking robot and method of controlling the same | |
US20110172824A1 (en) | Walking robot and method of controlling the same | |
US8428780B2 (en) | External force target generating device of legged mobile robot | |
US20090299523A1 (en) | Walking robot and method of controlling the same | |
US20110172823A1 (en) | Robot and control method thereof | |
JP2009107033A (ja) | 脚式移動ロボット及びその制御方法 | |
JP5198035B2 (ja) | 脚式ロボット及びその制御方法 | |
JP6407409B2 (ja) | 脚型機構体、歩行ロボット、姿勢制御方法及びプログラム | |
JP5623375B2 (ja) | 脚式移動ロボットの歩容生成装置 | |
JP2009255231A (ja) | 歩行制御装置および歩行制御方法 | |
JP5623376B2 (ja) | 脚式移動ロボットの歩容生成装置及びロボットの動作目標生成装置 | |
JP2008126382A (ja) | 脚式移動ロボット、及びその制御方法 | |
JP2009125838A (ja) | 二足歩行ロボットおよびその歩行制御方法 |