JP2013000878A - ロボットの均衡制御装置及びその制御方法 - Google Patents

ロボットの均衡制御装置及びその制御方法 Download PDF

Info

Publication number
JP2013000878A
JP2013000878A JP2012129275A JP2012129275A JP2013000878A JP 2013000878 A JP2013000878 A JP 2013000878A JP 2012129275 A JP2012129275 A JP 2012129275A JP 2012129275 A JP2012129275 A JP 2012129275A JP 2013000878 A JP2013000878 A JP 2013000878A
Authority
JP
Japan
Prior art keywords
robot
target
freedom
balance control
torque
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.)
Granted
Application number
JP2012129275A
Other languages
English (en)
Other versions
JP5991857B2 (ja
Inventor
Kee Hong Seo
基 弘 徐
Ju-Hyung Kim
柱 亨 金
Kyoung-Sig Roh
慶 植 盧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from KR1020120053489A external-priority patent/KR102044437B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2013000878A publication Critical patent/JP2013000878A/ja
Application granted granted Critical
Publication of JP5991857B2 publication Critical patent/JP5991857B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
    • B62D57/02Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
    • B62D57/032Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

【課題】必要なエネルギーを効率よく使用できるロボットの歩行制御。
【解決手段】複数の関節部がそれぞれ設けられた複数の脚と、その脚に連結されたた上体を有するロボットの均衡制御方法において、上体のポーズ角度及び複数の関節部の角度を検出し、ポーズ角度及び複数の関節部の角度に基づいて現在キャプチャーポイント及び現在ヒップ高さを獲得し、現在キャプチャーポイントと予め設定された目標キャプチャーポイントとを比較してキャプチャーポイントエラーを算出し、現在ヒップ高さと予め設定された目標ヒップ高さとを比較してヒップ高さエラーを算出し、キャプチャーポイントエラーとヒップ高さエラーに基づいて補償力を算出し、その補償力に基づいて複数の関節部の少なくとも一つの自由度に対するトルクを算出し、複数の関節部に少なくとも一つの自由度に対するトルクを出力することによって、ロボットの歩行を制御する。
【選択図】図7

Description

本発明は、複数の脚に設けられた関節部の駆動を制御して均衡を維持させるロボットの均衡制御方法及びその制御方法に関するものである。
ロボットは人と類似した関節体系を有し、この関節体系を用いて人間の手足と同じ動作をする機械である。
初期には、工場の生産作業の自動化、無人化のために産業用ロボットの開発が進んだが、最近は人間に種々サービスを提供するためのサービス用ロボットの開発が活発に行われている。
かかるサービス用ロボットは、ほとんどが人間の歩行を摸した歩行を行いながら人間にサービスを提供する。したがって、安定した姿勢を維持しながら歩行できるロボットに対する研究開発が活発に行われている。
ロボットの歩行制御方法としては、ロボット関節の目標位置を追従する位置基盤のゼロモーメントポイント(Zero Moment Point;以下、ZMPという)制御方法、ロボット関節の目標トルクを追従するトルク基盤の動的歩行(Dynamic Walking)制御方法、または有限状態機械(Finite State Machine;以下、FSMという)制御方法などがある。
ここで、ZMP制御方法は、位置基盤の制御方法であり、正確な位置制御が可能である反面、このために各関節の正確な角度制御を行わなければならないので、高いサーボゲインが必要となる。したがって、高い電流を必要とするため、エネルギー効率が低く、関節の剛性が大きくなり、周囲環境での衝突時に大きい衝撃を加えることがある。
また、与えられた重心と脚の歩行パターンから逆運動学(Inverse kinematics)を用いて各関節の角度を計算するためには、運動学的特異点(Kinematic Singularity)を避けるべきであるので、歩行中に膝を常に曲げた姿勢を維持しなければならず、その結果、人間とは異なる不自然な歩行をするようになる。
さらに、逆運動学(Inverse kinematics)を用いると、結局、関節の位置制御も行わなければならないが、この時に所望の動作を得るためには、高いゲインを用いなければならず、結果として、瞬間的な外乱に対して柔軟に対応できない剛性(stiffness)を招くという問題点があった。
トルク基盤の動的歩行制御方法は、安定した歩行のために動的方程式(Dynamics Equation)を解かなければならないが、空間上で任意の方向を具現できる6自由度の脚を有するロボットの動的方程式が複雑すぎるため、実際には4自由度以下の脚を有するロボットにのみ適用してきた。
FSM制御方法は、トルク命令に応じて制御されて、弾性メカニズムに適用することができるので、エネルギー効率が高く、剛性が低くなり、周囲環境に対して安全である反面、正確な位置制御が不可能であるため、階段を上がったり障害物を避けるなどの正確な全身モーションを行うことが難しい。
本発明の一側面は、キャプチャーポイントとヒップ高さに基づいて、水平方向及び垂直方向の力を補償し、均衡の取れた直立姿勢を維持するロボットの均衡制御装置及びその制御方法を提供する。
本発明の他の側面は、ポーズ角度に基づいて、モーメントを補償し、均衡の取れた姿勢を維持するロボットの均衡制御装置及びその制御方法を提供する。
本発明のさらに他の側面は、複数の脚に印加される補償力を配分し、均衡の取れた姿勢を維持するロボットの均衡制御装置及びその制御方法を提供する。
本発明の一側面に係る、ロボットの均衡制御方法は、複数の関節部がそれぞれ設けられた複数の脚と、その脚に連結された上体を含み複数の並進運動自由度と回転運動自由度を有するロボットの均衡制御方法において、上体のポーズ角度及び複数の関節部の角度を検出し、ポーズ角度及び複数の関節部の角度に基づいて現在の姿勢を獲得し、複数の並進運動自由度のうち少なくとも一つの並進運動自由度に対して、姿勢と予め設定された目標姿勢に基づいた姿勢エラーを算出し、姿勢エラーに基づいて少なくとも一つの並進運動自由度に対する補償力を算出し、少なくとも一つの並進運動自由度に対する補償力に基づいて、少なくとも一つの並進運動自由度に対する目標トルクを複数の関節部に対してそれぞれ算出し、少なくとも一つの並進運動自由度に対する目標トルクを複数の関節部に出力して、ロボットの均衡を制御する。
目標トルクを算出することは、少なくとも一つの並進運動自由度に対する目標トルクを残りの並進運動自由度に対応する目標トルクに合算して目標トルク和を算出する。
姿勢エラーを算出することは、検出されたポーズ角度及び複数の関節部の角度に基づいて現在の重心位置を検出するものの、少なくとも一つの並進運動自由度に対する現在の重心位置を検出し、その検出された現在の重心と予め設定された目標重心とを比較して、少なくとも一つの並進運動自由度に対する重心エラーを算出し、重心エラーを姿勢エラーとして用いることを含む。
姿勢エラーを算出することは、検出されたポーズ角度及び複数の関節部の角度に基づいて、現在重心の位置と速度を検出するものの、少なくとも一つの並進運動自由度に対する現在重心の位置と速度を検出し、その検出された現在重心の位置と速度に基づいて、少なくとも一つの並進運動自由度に対する現在キャプチャーポイントを獲得し、その獲得された現在キャプチャーポイントと予め設定された目標キャプチャーポイントとを比較して、少なくとも一つの並進運動自由度に対するキャプチャーポイントエラーを算出し、その算出されたキャプチャーポイントエラーを姿勢エラーとして用いることを含む。
姿勢エラーを算出することは、上体のポーズ角度及び複数の関節部の角度を検出し、ポーズ角度及び複数の関節部の角度に基づいて、ヒップまたは上体のいずれか一つの参照点の位置を少なくとも一つの自由度に対して算出し、現在の参照点と予め設定された目標参照点の位置とを比較して、参照点位置エラーを少なくとも一つの自由度に対して算出し、参照点位置エラーを少なくとも一つの並進運動自由度の姿勢エラーとして用いることを含む。
姿勢エラーを算出することは、複数の並進運動自由度のうち残りの並進運動自由度の姿勢エラー算出と相異なる。
補償力を算出することは、現在キャプチャーポイント及び現在ヒップ高さを獲得し、現在キャプチャーポイントと予め設定された目標キャプチャーポイントとを比較して、キャプチャーポイントエラーを算出し、現在ヒップ高さと予め設定された目標ヒップ高さとを比較して、ヒップ高さエラーを算出し、キャプチャーポイントエラーとヒップ高さエラーに基づいて、補償力を算出することを含む。
現在キャプチャーポイントを獲得することは、上体のポーズ角度及び複数の関節部の角度に基づいて、重心の位置と速度を獲得し、その獲得された重心の位置と速度に基づいて現在キャプチャーポイントを獲得することを含む。
現在ヒップ高さを算出することは、重心及び複数の関節部の角度に基づいて、現在ヒップ高さを算出することを含む。
補償力を算出することは、キャプチャーポイントエラーを用いて、水平方向の補償力を算出し、ヒップ高さエラーを用いて、垂直方向の補償力を算出することを含む。
本発明に係るロボットの均衡制御方法は、上体のポーズ角度及び複数の関節部の角度に基づいて、現在の姿勢を判断し、現在の姿勢と予め格納されたモーション情報に基づいて、目標キャプチャーポイント、目標ヒップ高さを設定することをさらに含む。
目標トルクを算出することは、ロボットの重心が地面に投影された投影点と複数の脚にそれぞれ連結された足間の距離比率を算出し、足間の距離比率に基づいて、複数の脚に印加される補償力を配分し、複数の脚に配分された補償力に基づいて、複数の関節部に印加される目標トルクを算出することをさらに含む。
キャプチャーポイントを獲得することは、順運動学を用いる。
本発明に係るロボットの均衡制御方法は、上体のポーズ角度と予め設定された目標ポーズ角度とを比較してポーズ角度エラーを算出し、ポーズ角度エラーに基づいて補償モーメントを算出し、目標トルクの算出時、補償モーメントを反映することをさらに含む。
補償モーメントを目標トルクに反映することは、ジャコビアンを用いて補償モーメントを関節部のトルクに変換し、その変換されたトルクを目標トルクの算出時に合算することを含む。
補償モーメントを算出することは、ポーズ角度エラーを用いて、ヨー、ロール、ピッチ方向の補償モーメントを算出することを含む。
ポーズ角度を検出することは、上体のヨー角度、ロール角度、ピッチ角度のうち少なくとも一つの角度を検出することを含む。
目標トルクを算出することは、補償力、ロボットの質量及び地球重力加速度に基づいて、仮想重力加速度を算出し、仮想重力加速度に基づいて、少なくとも一つの自由度に対応する仮想重力補償トルクをそれぞれ算出し、仮想重力補償トルクを反映して、目標トルクを算出することをさらに含む。
本発明に係るロボットの均衡制御方法は、複数の自由度のうち残りの自由度に対する位置及び角度を設定し、その設定された位置及び角度を満足する逆運動学の解を演算し、逆運動学の解に基づいて、複数の関節部の残りの自由度に対する目標角度を算出し、複数関節部の残りの自由度に対する目標角度に基づいて、複数関節部の残りの自由度に対応するトルクを算出することをさらに含む。
目標トルクを算出することは、少なくとも一つの自由度に対するトルクと残りの自由度に対するトルクとを合算して、目標トルクを算出することを含む。
本発明に係るロボットの均衡制御方法は、複数の関節部のうち少なくとも一つの関節部に対する目標角度が入力されて、その入力された少なくとも一つの関節部の目標角度を追従するためのトルクを算出し、目標トルクの算出時、少なくとも一つの関節部の目標角度に対するトルクを反映することをさらに含む。
目標角度が入力されることは、複数の関節部に複数の自由度に対応する複数の関節がそれぞれ設けられた場合、複数の関節の目標角度がそれぞれ入力されることを含む。
目標トルクを算出することは、ジャコビアンを用いて目標トルクを算出することを含む。目標トルクを算出することは、補償力、ロボットの質量及び地球重力加速度に基づいて、仮想重力加速度を算出し、仮想重力加速度に基づいて、少なくとも一つの自由度に対応する仮想重力補償トルクを算出し、その算出された仮想重力補償トルク及びジャコビアンに基づいて算出されたトルクを用いて、複数の関節部の少なくとも一つの自由度に対応する目標トルクを算出することをさらに含む。
本発明の他の側面に係るロボットの均衡制御装置は、複数の関節部がそれぞれ設けられた複数の脚と、その脚に連結された上体を有しており、複数の自由度を有するロボットの均衡制御装置において、上体のポーズ角度を検出するポーズ検出部;複数の関節部の角度を検出する角度検出部;予め格納されたモージョン情報に基づいて、複数の自由度のうち少なくとも一つの自由度に対して目標姿勢を設定する設定部;ポーズ角度及び複数の関節部の角度に基づいて、少なくとも一つの自由度に対して現在姿勢を獲得し、現在姿勢と目標姿勢とを比較して姿勢エラーを算出し、姿勢エラーに基づいて少なくとも一つの自由度に対して補償力を算出し、補償力に基づいて少なくとも一つの自由度に対する目標トルクを算出する均衡制御部;複数の関節部に少なくとも一つの自由度に対する目標トルクを出力するサーボ制御部を含む。
均衡制御部は、上体のポーズ角度及び複数の関節部の角度に基づいて重心を獲得し、重心に基づいて現在姿勢を獲得する獲得部を含む。
均衡制御部は、上体のポーズ角度及び複数の関節部の角度に基づいて重心の位置と速度を獲得し、重心の位置と速度に基づいて現在キャプチャーポイントを獲得して、現在姿勢を獲得する獲得部を含む。
均衡制御部は、上体のポーズ角度及び複数の関節部の角度に基づいてヒップや上体の参照点の位置を獲得し、参照点の位置に基づいて現在姿勢を獲得する獲得部を含む。
均衡制御部は、ポーズ角度及び複数の関節部の角度に基づいて、現在キャプチャーポイント及び現在ヒップ高さを獲得し、現在キャプチャーポイントと目標キャプチャーポイントとを比較してキャプチャーポイントエラーを算出し、現在ヒップ高さと目標ヒップ高さとを比較して、ヒップ高さエラーを算出し、キャプチャーポイントエラーとヒップ高さエラーに基づいて補償力を算出し、その補償力に基づいて複数の自由度のうち少なくとも一つの自由度に対する目標トルクを算出する。
設定部は、少なくとも一つの自由度に対して目標重心を設定し、目標重心を用いて目標姿勢を設定する。設定部は、少なくとも一つの自由度に対して目標キャプチャーポイントを設定し、目標キャプチャーポイントを用いて目標姿勢を設定する。
設定部は、少なくとも一つの自由度に対してヒップや上体の参照点の目標位置を設定し、参照点の目標位置に基づいて目標姿勢を設定する。
均衡制御部は、上体のポーズ角度及び複数の関節部の角度に基づいて、重心及び前記ヒップ高さを獲得し、重心に基づいて現在キャプチャーポイントを獲得する獲得部を含む。
均衡制御部は、キャプチャーポイントエラーを用いて水平方向の補償力を算出し、ヒップ高さエラーを用いて垂直方向の補償力を算出することを含む。
本発明に係るロボットの均衡制御装置は、複数の脚に設けられた各足に印加される荷重を検出する力/トルク検出部をさらに含み、設定部は、各足に印加される荷重に基づいて現在姿勢を判断し、現在姿勢と予め設定されたモーション情報に基づいて、目標キャプチャーポイント、目標ヒップ高さを設定する。
本発明に係るロボットの均衡制御装置は、ロボットの重心が地面に投影された投影点と複数の脚にそれぞれ連結された足間の距離比率を算出し、足間の距離比率に基づいて、複数の脚に印加される補償力を配分する配分部をさらに含み、均衡制御部は、複数の脚に配分された補償力に基づいて、複数の関節部に印加されるトルクを算出する。
均衡制御部は、上体のポーズ角度と予め設定された目標ポーズ角度とを比較してポーズ角度エラーを算出し、ポーズ角度エラーに基づいて補償モーメントを算出し、トルクの算出時に補償モーメントを反映することをさらに含む。
均衡制御部は、ポーズ角度エラーを用いて、ヨー、ロール、ピッチ方向の補償モーメントを算出することを含む。
設定部は、複数の脚に設けられた足の支持領域内の一点が重力方向に通る線上の一点を目標キャプチャーポイントとして設定する。
本発明に係るロボットの均衡制御装置は、使用者から少なくとも一つの姿勢からなるモーション情報が入力される入力部をさらに含み、設定部は、入力されたモーション情報を格納する。
均衡制御部は、補償力、予め格納されたロボットの質量及び地球重力加速度に基づいて仮想重力加速度を算出し、仮想重力加速度に基づいて少なくとも一つの自由度に対応する仮想重力補償トルクをそれぞれ算出し、仮想重力補償トルクを反映して目標トルクを算出する。
均衡制御部は、複数の自由度のうち残りの自由度に対するトルクを逆運動学を用いて算出する。均衡制御部は、複数の関節部のうち少なくとも一つの関節部に対する目標角度が入力されると、その入力された目標角度に対応するトルクを算出し、目標トルクの算出時に少なくとも一つの関節部の目標角度に対するトルクを反映する。
均衡制御部は、ジャコビアンを用いて目標トルクを算出する。
本発明の一側面に係るロボットの均衡制御装置及びその制御方法によれば、重心の位置と速度を合成して得られたキャプチャーポイントを用いて、次の姿勢の均衡を維持するための複数の関節部のトルクを獲得することによって、外乱の多い環境で均衡を維持することができる。
また、ロボットの上体姿勢を制御できるため、傾斜面と凹凸面でも転倒せず安定的に均衡を維持でき、外部の外乱にも能動的に対応できる。
なお、歩行時に膝を曲げずに歩行できて、大きな歩幅で歩行できるため、歩行時に必要なエネルギーを効率よく使用することができる。
本発明の一実施例に係るロボットの例示図である。 本発明の一実施例に係るロボットの関節構造の例示図である。 本発明の一実施例に係るロボットの均衡制御装置の制御構成図である。 本発明の一実施例に係るロボットに格納されたFSMの状態を示す例示図である。 本発明の一実施例に係るロボットの均衡制御装置の詳細構成図である。 本発明の一実施例に係るロボットの重心、キャプチャーポイント、ヒップ高さの獲得状況を示す例示図である。 本発明の一実施例に係るロボットの均衡制御方法を示すフローチャートである。 本発明の一実施例に係るロボットの均衡制御方法の詳細構成図である。 本発明の他の実施例に係るロボットの均衡制御方法の制御構成図である。 本発明の他の実施例に係るロボットの均衡制御方法を示すフローチャートである。 本発明のさらに他の実施例に係るロボットの均衡制御方法を示すフローチャートである。
以下、添付の図面を参照しながら、本発明を詳細に説明する。
図1は実施例に係るロボットの例示図であり、図2は実施例に係るロボットの関節構造の例示図である。図1に示すように、ロボット100は、頭110、首120、胴体130、腕140R,140L、手150R,150Lからなる上体と、複数の脚160R,160L及び足170R,170Lからなる下体とを有する。
さらに具体的に説明すると、ロボット100の上体は、頭110と、頭110の下部に首120を介して連結された胴体130と、胴体130の上部両側に連結された二つの腕140R,140Lと、該二つの腕140R,140Lの末端にそれぞれ連結された手150R,150Lとからなる。
ロボット100の下体は、上体の胴体130の下部両側に連結された二つの脚160R,160Lと、該二つの脚160R,160Lの末端にそれぞれ連結された足170R,170Lとからなる。
ここで、頭110、二つの腕140L,140R、二つの手150L,150R、二つの脚160L,160R、二つの足170L,170Rはそれぞれ関節を介して一定レベルの並進運動自由度及び回転運動自由度を有する。
かかるロボット100の上体と下体はカバーによって保護される。
参照符号“R”と“L”は、それぞれロボット100の右側(Right)と左側(Left)を表している。
図2を参照して具体的に説明する。頭110には、周囲の映像を獲得するカメラ111と、使用者の音声を検出するマイクロホン112とが設けられている。
首120は、頭110と胴体130とを連結する。かかる首120は複数の首関節部からなる。首関節部は、ヨー方向(yaw、Z軸回転)の回転関節121、ピッチ方向(pitch、Y軸回転)の回転関節122及びロール方向(roll、X軸回転)の回転関節123を含んで3自由度を有する。ここで、首関節部の回転関節121,122,123は頭回転用モーター(図示せず)とそれぞれ連結される。
胴体130の両側には二つの腕140L,140Rを連結する肩関節部131がそれぞれ設けられ、胸と腰との間には、胸が腰に対して回転できるようにヨー(Yaw)方向の回転関節部132が設けられている。
二つの腕140L,140Rは、上腕リンク141、下腕リンク142、肘関節部143、手首関節部144をそれぞれ有する。
ここで、各上腕リンク141は、肩関節部131を介して胴部130と連結され、また肘関節部143を介して下腕リンク142と連結され、各下腕リンク142は手首関節部144を介して手150R,150Lと連結される。
肘関節部143は、ピッチ方向の回転関節143aとヨー方向の回転関節143bとを含んで2自由度を有し、手首関節部144は、ピッチ方向の回転関節144aとロール方向の回転関節144bとを含んで2自由度を有する。
手150R,150Lには、5個の指151が設けられており、各指151にはモーターによって駆動される多数の関節(図示せず)が設けられてもよい。かかる指151は、腕140R,140Lの動きに連動して物を把持したり、特定の方向を指し示すなどの様々な動作を行う。
ロボット100の二つの脚160R,160Lは、それぞれ大腿リンク161、下腿リンク162、股関節部163、膝関節部164、足首関節部165をそれぞれ有する。
各大腿リンク161は、股関節部163を介して胴体130と連結され、また膝関節部164を介して下腿リンク162と連結され、各下腿リンク162は足首関節部165を介して足170L,170Rと連結される。
股関節部163は、ヨー方向(yaw,Z軸回転)の回転関節163aと、ピッチ方向(pitch,Y軸回転)の回転関節163bと、ロール方向(roll,X軸回転)の回転関節163cとを含んで3自由度を有する。
さらに、二つの脚160L,160Rにおける股関節部163の位置は、ヒップ(Hip)の位置に対応する。
膝関節部164は、ピッチ方向の回転関節164aを含んで1自由度を有し、足首関節部165はピッチ方向の回転関節165aとロール方向の回転関節165bとを含んで2自由度を有する。
このように、二つの脚160L,160Rには、それぞれ三つの関節部163,164,165に対して6個の回転関節が設けられるので、二つの脚160L,160Rにはトータルで12個の回転関節が設けられる。
かかるロボット100の各関節には、モーター(図示せず)などのアクチュエーターが設けられている。したがって、各関節は、モーターの回転によって適切に回転運動を行うことで、様々な動作を具現できる。
したがって、ロボットの歩行時に、ロボットが均衡を維持しながら安定的で自然な歩行を行うことができる。これについて、図3を参照して具体的に説明する。
図3は本実施例に係るロボットの均衡制御装置の構成図であり、図3乃至図6を参照して説明する。ロボットの均衡制御装置は、力/トルク検出部210、ポーズ検出部220、角度検出部230、設定部240、重心獲得部251a、均衡制御部250、サーボ制御部260、入力部270を含む。
力/トルク検出部(Multi−Axis Force and Torque Sensor)210は多軸センサーであり、各脚160L,160Rと足170R,170Lとの間に設けられ、足170L,170Rに加えられる荷重を検出する。
この際、足170L,170Rに伝わる力の3方向成分(Fx,Fy,Fz)とモーメントの3方向成分(Mx,My,Mz)を検出して設定部240に転送する。
ポーズ検出部220は、胴体130に設けられ、鉛直線に対する上体のポーズを検出するものであって、ロール方向(roll,X軸回転)、ピッチ方向(pitch,Y軸回転)、ヨー方向(yaw,Z軸回転)の三つの軸の回転角度のうち少なくとも一つの回転角度を検出し、検出された各軸の回転角度を重心獲得部251a及び均衡制御部250に転送する。
ここで、ポーズ検出部220は、慣性を測定するIMU(Inertial Measurement unit)を用いることができる。
さらに、ロボット100の上体の姿勢を測定するために、IMUの他にティルティング検出(Tilting Detection)、ジャイロセンサー(Gyro Sensor)などを用いることも可能である。
角度検出部230は、各関節部131,143,144,163,164,165の角度を検出するものであって、各関節部131,143,144,163,164,165の各軸に設けられたモーターの回転角度を検出する。
ここで、各関節部131,143,144,163,164,165の回転角度は、モーター(図示せず)の回転数であって、各モーターに連結されたエンコーダ(Encoder、図示せず)を介して検出することが可能である。
ロボットの姿勢を表す方法について説明する。通常的に、一つの姿勢は、上体及び下体の全関節の角度により表せるが、本発明では、次のようにロボットの姿勢を表すことができる。ロボットの姿勢は、作業空間において、ロボットの並進運動の自由度と回転運動の自由度に対してロボットの位置と角度により表すことができる。このロボットの位置と角度は、それを表せるロボットのいずれか一点の位置とロボットのポーズセンサーの傾き角度及び志向角度を用いて表すことができる。ロボットの位置は、3軸並進運動自由度に対して順運動学を用いて、基準座標系において、ロボットのいずれか一点のx、y、z軸の3次元座標で表すことができる。また、ロボットの角度は、回転運動自由度に対して順運動学またはポーズセンサーを用いて、ロール、ピッチ、ヨー(roll,pitch,yaw)のポーズ角度で表せる。したがって、本発明において、一つの姿勢を取るときの全関節の角度は固定した値ではない。
ここで、ロボットの姿勢を構成する位置と角度のうち、位置を表すいずれか一点はロボットの重心でもよく、或いはキャプチャーポイントでもよい。または、脚及び腕を除いた部分に固定された一点を参照点として、ロボットの位置を表してもよい。3軸の並進自由度に対してロボットの位置を表す点が、重心、キャプチャーポイント、参照点のうちいずれか一つと一致する必要はなく、相異なる方式で表してもよい。例えば、2次元水平方向の並進運動自由度に対するロボットの姿勢はキャプチャーポイントの2次元水平成分で定義し、1次元垂直方向の並進運動自由度に対するロボットの姿勢はヒップ高さで定義して、設定部及び均衡制御部で用いることも可能である。
ここで、キャプチャーポイント(Capture Point:CP)の通常的な意味は、ロボットの現在重心の位置と速度に照らして、次の歩行動作を行ったときにロボットが転倒せずに直立できる位置のことなので、2次元面上に定義された点である。ところが、本発明においては、キャプチャーポイントの定義を3次元までに拡張する。本発明におけるキャプチャーポイントは、重心が移動する速度に比例した距離とその方向に重心から移動した点である。
設定部240は、入力部270から転送されたモーションデータを格納し、予め格納されたモーション情報に基づいて複数の自由度のうち少なくとも一つの自由度に対する目標姿勢を設定する。ここで、モーション情報は、ダンス、歩行などを行うための少なくとも一つの姿勢からなる。
設定部240は、力/トルク検出部210で検出された、各足に加えられる荷重に基づいて着地したか否かを判断するが、荷重の検出された脚を支持(Support)状態と判断し、荷重の検出されない脚をスイング(Swing)状態と判断する。
設定部240は、複数の関節部の角度、上体のポーズ角度、足の着地状態、足の位置に基づいて現在の姿勢を判断し、現在の姿勢とモーション情報とを比較して次の姿勢を判断し、次の姿勢を行うための目標姿勢を設定する。
設定部240は、有限状態機械(FSM)に基づいて歩行する時における各脚の着地状態と予め格納された有限状態機械(FSM)の状態に基づいて目標姿勢を設定することも可能である。
ここで、キャプチャーポイント(CP)は、重心(COG)でもよく、また重心が地面に投影された投影点(COG’)でもよい。さらに、重心または投影点が移動する速度を反映して速度に対応する距離だけ移動した点の位置で表示することも可能である。
さらに、キャプチャーポイントは、重心から地面まで延長された垂直線上に位置したいずれか一つの仮想点でも表示することができる。
設定部240は、ロボットが転倒しないように、両足の支持領域の内部を重力方向に通る線上の一点を目標キャプチャーポイントとして設定し、この目標キャプチャーポイントをロボットの並進運動自由度に対する目標姿勢として設定することも可能である。
さらに、目標ポーズ角度は、ロボットの直立姿勢のために、ロボットの上体が重力方向と平行するように設定し、これをロボットの回転運動自由度に対する目標姿勢として設定することも可能である。
ロボット100が有限状態機械(FSM)に基づいて歩行する際における、ロボットの有限状態機械(FSM)の状態遷移について説明する。
図4は、有限状態機械(FSM:Finite State Machine)に基く二つの脚の状態変化順序図である。
FSMが7つの状態を有すると設定したので、DS状態→W1状態→W2状態→W3状態→W4状態→W2状態→W3状態→W4状態→W2状態→…で循環しり、停止命令が入力されると、W4状態から停止準備動作であるW2’状態→W3’状態を経てDS状態に遷移する。
FSMの各状態におけるx方向は、支持足の長さ方向であって、前方を正の方向とし、y方向は、x方向に対して上から見て90度反時計方向とする。
また、支持足は、ロボットの姿勢を維持させる足で、地面を踏んでいる足を指し、スイング足は、移動のために持ち上げた足を指す。
DS状態はロボット100の二つの脚が地面に接している状態であり、W1状態は外見上、DS状態と違いはないが、歩行が始まると、重心が片方の脚に移動し始める。
例えば、左脚160Lに重心を移動させる場合を説明すれば、W2状態では、右脚160Rを持ち上げながら左脚160Lで体を支えて立っている姿勢となり、W3状態では、体を進行方向へ移動させながら右脚160Rを下げて右足170Rを地面に着地させる姿勢となる。
W4状態では、右足170Rが地面に着いた後、重心を左脚160Lに移動させる姿勢となり、 再びW2状態に遷移して脚の方向のみが変わり、停止命令が入るまでW2→W3→W4→W2→…の循環が続けられる。
停止命令が入った場合には、W4状態からW2’状態に遷移するが、W2’状態はW2状態と類似に左脚160Lを持ち上げるが、前方に進むわけではないので、目標キャプチャーポイントのx成分が現在の支持足の中心に来るようにする。
W3’状態は、W3状態と類似に、左側足170Lを着地するが、前進するわけではないので、右足170Rと並んだ位置に着地する。
このように、7個の各FSM状態は一定の順序で遷移し、所定の遷移条件を充足する時に次の状態に遷移する。
次に、FSMの状態とキャプチャーポイントについて説明する。まず、DS状態は、ロボット100の二つの足170R,170Lが地面に着いて停止した状態を示し、この際の目標キャプチャーポイントはロボットの二つの足からなる支持領域(support polygon)の中心に置かれる。そして、歩行命令が下ると、W1状態に遷移する。
W1状態は、目標キャプチャーポイントが、ロボット100の二つの足170R,170Lのいずれかの選択された支持足に移動する状態であり、実際にキャプチャーポイントが支持足の足幅以内の安定領域内に進入すると、W2状態に遷移する。
W2状態は、ロボット100がスイング足を持ち上げる動作を行う状態であり、W2状態における目標キャプチャーポイントのx成分は、支持足の中心から前の部分に時間によって前進する軌跡に設定され、y成分は支持足の中心線に来るように設定される。
さらに、スイング脚を持ち上げる動作は、重力補償により制御される。W2状態において、現在キャプチャーポイントのx成分がしきい値を越え、スイング足の高さがしきい値を越えると、W3状態に遷移する。
W3状態は、ロボット100が着地のために膝を伸ばしながらスイング足を着地させる動作を示し、この際の目標キャプチャーポイントのx成分は、支持足の前の部分を越えてスイング足が着地すべき位置まで時間によって増加する軌跡と設定され、y成分は、スイング足が着地すべき位置へ時間によって移動するものと設定される。
スイング足が地面に着いて、力/トルク検出部にしきい値以上のz成分が感知されると、W4状態に遷移する。
W4状態は、二つの足が地面に着いた状態であって、最後に着地した足を支持足とする。この際、目標キャプチャーポイントのx、y成分は、以前状態の目標キャプチャーポイント位置から新しい支持足の中心に短時間で連続的に移動する軌跡と設定される。現在キャプチャーポイントが支持足内に入ってくると、停止命令がない場合にはW2状態に遷移し、停止命令が下る場合にはW2’状態に遷移する。
W2’状態は、W2状態と類似した動作、すなわち、スイング足を持ち上げる動作を表しているが、前進しないで停止したため、目標キャプチャーポイントのx成分は支持足の中心に固定させる。スイング足の高さがしきい値以上に到達すると、W3’状態に遷移する。
W3’状態はW3状態と類似した動作、すなわち、スイング足の着地のために膝を伸ばしながら足を下ろす動作を示すが、前進しないで停止するため、目標キャプチャーポイントのx成分を支持足の前方に送らず支持足の位置に置き、目標キャプチャーポイントのy成分は反対側の足に向けて送るように設定する。スイング足が地面に着いて力/トルク検出部のz成分がしきい値を越えると、DS状態に遷移する。
均衡制御部250は、ポーズ角度及び複数の関節部の角度に基づいて少なくとも一つの自由度に対して現在姿勢を獲得し、現在姿勢と目標姿勢とを比べて姿勢エラーを算出し、姿勢エラーに基づいて少なくとも一つの自由度に対して補償力を算出し、補償力に基づいて少なくとも一つの自由度に対する目標トルクを算出する。
均衡制御部250は、上体のポーズ角度及び複数の関節部の角度に基づいて重心を獲得し、重心をロボットの位置として現在姿勢を獲得したり、上体のポーズ角度及び複数の関節部の角度に基づいて重心の位置と速度を獲得し、重心の位置と速度に基づいて現在キャプチャーポイントを獲得した後、その獲得された現在キャプチャーポイントをロボットの位置として現在姿勢を獲得したり、または上体のポーズ角度及び複数の関節部の角度に基づいてヒップや上体の参照点の位置を獲得し、その獲得された参照点をロボットの位置として現在姿勢を獲得する。
キャプチャーポイントをロボットの現在位置として現在姿勢を獲得し、これを用いて均衡を制御する場合における均衡制御部について説明する。
均衡制御部250は、重心(COG:Center Of Gravity)に基づいて現在キャプチャーポイントを獲得し、設定部240から転送された目標キャプチャーポイントと現在キャプチャーポイントとを比較してキャプチャーポイントエラーを算出する。
また、均衡制御部250は、ポーズ検出部220から転送された現在のポーズ角度と設定部240から転送された目標ポーズ角度とを比較してポーズ角度エラーを算出し、ポーズ角度エラーとキャプチャーポイントエラーを用いてトルクを算出する。
なお、均衡制御部250は、ポーズ検出部220から転送された現在のポーズ角度と各関節部131,143,144,163,164,165の回転角度に基づいて現在ヒップ高さを算出し、算出された現在ヒップ高さと目標ヒップ高さとを比較してヒップ高さエラーを算出し、ポーズ角度エラーとキャプチャーポイントエラーにヒップ高さエラーを反映してトルクを算出することも可能である。
ここで、現在の重心の位置、重心の速度、キャプチャーポイント(Capture Point)、二つの足の位置と方向、ヒップ高さの計算には、順運動学(Forward Kinematics)を用いることが可能である。
サーボ制御部260は、均衡制御部250から転送されたトルクに到達するように各関節部163,164,165のトルクサーボを制御する。
サーボ制御部260は、各関節部のトルクを、算出されたトルクと比較して、算出されたトルクに近接するようにモーターの電流を調節するものであり、トルク算出部255で算出されたトルクを生成するために、算出されたトルクに対応するPWMを制御して、各関節部163,164,165に設けられた各軸のモーター(図示せず)にそれぞれ出力する。
入力部270は、使用者からダンスや歩行を行うための少なくとも一つの姿勢からなるモーション情報を入力されて、入力されたモーション情報を設定部240に転送する。
ここで、モーション情報は、順次に格納された複数の姿勢からなる。すなわち、ロボットは複数の姿勢を連続して行うことによって、ダンスや歩行などのモーションを行う。
ここで、一つの姿勢は、胴体、腕、脚に設けられたリンク141,142,161,162の位置情報や、胴体、腕、脚に設けられた各関節部131,143,144,163,164,165の角度情報を有する。すなわち、ロボットの胴体、腕、脚は特定の形態を取ることによって、一つの姿勢を作り出す。
図5を参照して、3次元の並進運動自由度のうち2次元水平方向に対してはキャプチャーポイントに基づき、残りの垂直方向に対してはヒップ高さを参照点として均衡を制御する均衡制御部250について具体的に説明する。
均衡制御部250は、獲得部251、エラー算出部252、補償部253、配分部254及びトルク算出部255を含む。
獲得部251は、ポーズ検出部220で検出された上体のポーズ角度及びロボットの現在の姿勢に対応する各関節部131,143,144,163,164,165の回転角度に基づいてロボットの重心を獲得する重心獲得部251aと、各関節部の回転角度に基づいて現在キャプチャーポイントを獲得するキャプチャーポイント獲得部251bと、重心獲得部251aから転送された重心(COG:Center Of Gravity)に基づいて現在ヒップ高さを獲得するヒップ高さ獲得部251cと、を含む。
ここで、キャプチャーポイントは、水平成分の座標値であるx、y軸の座標値を有し、ヒップ高さは、垂直成分の座標値であるz軸の座標値を有する。
すなわち、獲得部251は重心とヒップ高さに基づいて、ロボットの位置を表すx、y、z軸の座標値を獲得する。
ここで、現在キャプチャーポイントを獲得する過程を、図6を参照して説明する。
獲得部251は、ロボット100の二つの足170L,170Rの状態、重心(COG)の位置及び速度を算出し、重心の位置と速度を用いてロボットの現在キャプチャーポイント(CPc)を算出する。
さらに具体的に説明すると、各関節部131,143,144,163,164,165の角度、予め格納された骨部(すなわち、リンク:141,142,161,162)のサイズと重さ、ポーズ角度を順運動学(Forward Kinematics)に適用して重心の位置と速度、ヒップ高さ、二つの足の位置、二つの足の方向を計算する。
そして、重心の速度と位置を用いて、現在キャプチャーポイント(CPc)を獲得する。
キャプチャーポイント(CP:Capture Point)は、ロボットの現在重心の位置と速度に照らして、次の歩行動作を行う時にロボットが転倒せずに直立できる位置のことなので、通常的には水平面(すなわち、地面)上の点であるが、前述したように本発明では、これを重心の垂直方向に対する位置と速度を用いて、3次元に一般化して用いることもできる。
かかるロボットの現在の位置におけるキャプチャーポイントは、下記の式(1)に基づいて獲得することが可能である。
CP=dCOG+w*vCOG (1)
ここで、CPはキャプチャーポイントであり、dCOGは重心(COG)から地面まで延長した垂直線上に位置したいずれか一つの仮想点の位置であり、vCOGは仮想点の速度である。また、wはw=√(l/g)で、ここでlは地面から重心までの高さ、gは重力加速度である。
エラー算出部252は、設定部240から転送された目標のキャプチャーポイント(CP)と現在キャプチャーポイント(CP)とを比較してキャプチャーポイントエラー(CP)を算出するキャプチャーポイントエラー算出部252aと、設定部240で設定された目標ヒップ高さ(HL)と現在ヒップ高さ(HL)とを比較してヒップ高さエラー(HL)を算出するヒップ高さのエラー算出部252bと、ポーズ検出部220から転送された現在のポーズ角度と設定部240から転送された目標ポーズ角度とを比較してポーズ角度エラーを算出するポーズ角度エラー算出部252cと、を含む。
補償部253は、ロボットの直立状態を維持させるために必要な補償力と補償モーメントを算出する。
かかる補償部253は、キャプチャーポイントエラーとヒップ高さエラーに基づいて補償力を算出する補償力算出部253aと、ポーズ角度エラーに基づいて補償モーメントを算出する補償モーメント算出部253bとを含む。
すなわち、補償力算出部253aは、キャプチャーポイントエラーからx,y方向に補償されるべき補償力を算出し、ヒップ高さエラーからz方向に補償されるべき補償力を算出し、補償モーメント算出部253bはポーズ角度エラーからx,y,z方向の補償モーメントを算出する。
すなわち、ロボットの均衡を取るために補償しなければならないx,y,z方向の補償力と、x、y、z方向の補償モーメントを算出することによって、ロボットは直立姿勢を維持できる。
補償力の算出は下記の通りである。
CP=dCOG+w*vCOG (1)
重心(COG)の水平成分座標は(x,y)、重心の速度は水平成分座標を微分した(x’,y’)なので、CP=(x,y)+W(x’,y’)=(x+wx’,y+wy’)である。
キャプチャーポイントとヒップ高さを反映した3軸座標の姿勢エラー(e)は、次の通りである。
e=([(x,y)−(x+wx’,y+wy’)],z−z)
=(x−(x+wx’),y−(y+wy’),z−z) (2)
ここで、(x*,y*)は目標キャプチャーポイントのx,y成分であり、CPは現在キャプチャーポイント、z*は目標ヒップ高さ、zは現在ヒップ高さである。
3軸座標の姿勢エラー(e)を用いた補償力fは下記の通りである。
f=ke (3)
ここで、kは力ゲイン(force gain)であり、P(Proportional)制御を用いる。
補償モーメント算出部253bは、上体のロール方向(roll,X軸回転)、ピッチ方向(pitch,Y軸回転)、ヨー方向(yaw,Z軸回転)の3軸に対して仮想のばね(常数k)があると仮定したとき、エラー算出部から算出されたエラーeを用いて、ロボットの均衡を取るために補償すべきモーメントM(M,M,M)を下記のように算出する。
M=K1*e (4)
配分部254は補償力を二つの脚160L,160Rに配分する。配分部254は、ロボット100の重心に対する地面の投影点(CP)とロボット100の二つの足170L,170R間の距離比率を用いて、重心の投影点に相対的に近い脚に、より多くの力を配分する。
トルク算出部255は、力補償とモーメント補償に基づいて、各関節部163,164,165に伝えられるべきトルクを算出する。ここで、トルクは補償力を発生させるためのモーター(図示せず)の回転力である。
このとき、配分部254で配分された力に基づいて、二つの脚に印加されるトルクを算出する。
=W*M,M=W*M,
=d/(d+d),W=1−W
,dは重心の投影点と両足間の距離である。
なお、重力補償を反映することもできる。これについて、より詳細に説明する。
トルク算出部255は、仮想重力設定部255a、重力補償トルク算出部255b、目標トルク算出部255cを含む。
仮想重力設定部255aは、ロボットに対して予め格納されたFSMの現在状態及び補償力算出部253aで算出された補償力の大きさを用いて、ロボットの各関節部163,164,165に必要な仮想重力の大きさを設定するため、補償力から設定された仮想重力は式(5)に示した通りである。
=f/m (5)
ここで、gは仮想重力であり、fは補償力算出部253aで算出した補償力であり、mはロボットの質量である。
重力補償トルク算出部255bは、仮想重力設定部で設定された仮想重力と実際の重力を補償するために各関節部に必要な重力補償トルクを算出するため、仮想重力加速度と実際の重力加速度との和、各関節部の角度、各リンクの重さ及び各リンクにおける重心の位置を用いて重力補償トルクを算出することができる。
さらに、重力補償トルクを計算する際、二つの脚160L,160Rに配分された補償力を考慮して各脚160L,160Rの関節部163,164,165に必要な重力補償トルクを算出する。
目標トルク算出部255cは、重力補償トルク算出部255bで算出された重力補償トルクと補償モーメント算出部253bで算出された補償モーメントに対するトルクとを合算して、ロボットの各関節部163,164,165に必要な目標トルクを算出する。
この際、目標トルク算出部255cは、左右脚160L,160Rに配分された補償力を考慮して、左右脚160L,160Rの各関節部163,164,165に補償力を発生させるための目標トルクを算出する。
すなわち、重心と両足間の割合に基づいて、重心とより近い足が属した脚がより大きい目標トルクを有するようにする。
トルク算出部255はジャコビアンを用いて両脚の複数の関節部に印加されるトルクを下記のようにそれぞれ算出することも可能である。
Figure 2013000878
また、目標トルク算出部255は補償モーメント算出部で算出された補償モーメントMと重力補償トルク算出部で計算された重力補償トルクG(q)から、姿勢制御のための複数の関節部に印加されるトルクτを両脚110L,110Rに対して下記のようにそれぞれ算出することも可能である。
Figure 2013000878
式(7)において、関節トルクτは6−ベクトルである。式(7)において、Jは足170R,170Lをロボット100のベースリンクと見なし、重心(COG)を上体上に存在するエンドエフェクタ(end effector)と見なしたときの6−by−6ジャコビアン(jacobian)行列である。
ジャコビアンは関節空間の速度を作業空間の速度に変換できる行列であり、順運動学計算(Forward Kinematics)から誘導される。デカルト空間(Cartesian Space)上のモーメントを関節トルクに変換するためにジャコビアンを用いた。
式(7)において、重力補償トルクG(q)は各脚160R,160Lに属した全関節の角度qと、各脚160R,160Lに属した全リンクの質量及び重心の位置と上体の総質量及び重心の位置から計算することができる。
は左脚160Lに属した全関節の角度、qは右脚160Rに属した全関節210,220,230の角度である。関節トルクは、左脚160Lのトルク
Figure 2013000878
と右脚110Rのトルク
Figure 2013000878
とを含む。
図7は一実施例に係るロボットの均衡制御方法を示すフローチャートである。ロボットは、上体のポーズ角度及び複数の関節部の角度を検出し(301)、ポーズ角度及び複数の関節部の角度に基づいて現在姿勢を獲得する(302)。ロボットの現在姿勢は、上述したように、並進運動自由度に対するロボットの現在位置と回転運動自由度に対するロボットの現在ポーズ角度により表される。
次に、ロボットは、複数の並進運動自由度のうち少なくとも一つの並進運動自由度に基づいた姿勢と予め設定された目標姿勢とを比較して、姿勢エラーを算出する(303)。
このときに検出されたポーズ角度及び複数の関節部の角度に基づいて、現在重心の位置を少なくとも一つの並進運動自由度に対して検出し、少なくとも一つの並進運動自由度に対して検出された現在重心と予め設定された目標重心とを比較して、重心エラーを算出する。すなわち、少なくとも一つの自由度に対する重心エラーを算出する。
ここで、重心エラーは少なくとも一つの自由度に対する姿勢エラーとして用いられる。
また、検出されたポーズ角度及び複数の関節部の角度に基づいて、現在重心の位置と速度を少なくとも一つの自由度に対して検出し、その検出された現在重心の位置と速度に基づいて、現在キャプチャーポイントを少なくとも一つの自由度に対して獲得し、前記キャプチャーポイントと予め設定されたキャプチャーポイントとを比較して、キャプチャーポイントエラーを少なくとも一つの自由度に対して算出し、その算出されたキャプチャーポイントエラーを少なくとも一つの自由度の姿勢エラーとして用いることも可能である。
なお、検出されたポーズ角度及び複数の関節部の角度に基づいて、ヒップまたは上体のいずれか一点の位置を少なくとも一つの自由度に対する現在参照点として獲得し、現在参照点と予め設定された目標参照点の位置とを比較して、参照点位置エラーを少なくとも一つの自由度に対して算出し、参照点位置エラーを少なくとも一つの自由度の姿勢エラーとして用いることも可能である。
さらに、残りの並進運動自由度における姿勢エラーの算出は、少なくとも一つの並進運動自由度における姿勢エラーの算出と同一かまたは相異してもよい。
次に、算出された姿勢エラーに基づいて、少なくとも一つの並進運動自由度に対する補償力を算出する(304)。
続いて、ロボットは少なくとも一つの並進運動自由度に対する補償力に基づいて、少なくとも一つの並進運動自由度に対するトルクを算出する(305)。この際、複数の関節部の並進運動自由度に対するトルクを算出する。
さらに、残りの並進運動自由度に対しても、補償力に基づいて複数の関節部の目標トルクを算出し、このようにすべての並進運動自由度に対して算出された目標トルクと予め算出されたトルクとを合算して最終の目標トルクを算出し、その算出された最終の目標トルクを複数の関節部に出力することも可能である。
ここで予め算出されたトルクは、回転運動自由度に対して、目標ポーズ角度と現在ポーズ角度のエラーを補償するための補償モーメントを式(6)のジャコビアンなどの方式で算出したトルクでもよく、さらに、安定性のために各関節部に印加するダンピング(damping)トルクを含むトルクを合算して算出したものでもよい。
次に、ロボットは、最終の目標トルクを複数の関節部に出力して(306)、ロボットの均衡を制御する。
図8は、キャプチャーポイントに基づいて、均衡を制御するロボットの均衡制御方法を示した詳細フローチャートである。
ロボットは、入力部270を介して入力された使用者の命令とロボットの姿勢に基づいて、各関節部131,143,144,163,164,165に設けられた複数のモーター(図示せず)を駆動させることによって、モーションを行う。
ロボットは、使用者によって入力されたモーション情報に基づいてダンスや歩行を行う時に、複数の関節部の角度、上体のポーズ角度に基づいて現在の姿勢を判断し、現入力部270を介して入力されたモーション情報と現在の姿勢とを比較して次の姿勢を判断し、その次の姿勢を具体的に表すために、目標キャプチャーポイント、目標ポーズ角度、目標ヒップ高さを設定する(311)。
なお、ロボットは、有限状態機械に基づいて歩行する時に、予め格納された有限状態機械に基づいて現在の歩行状態を判断し、判断された現在の歩行状態に基づいて目標キャプチャーポイント、目標ポーズ角度、目標ヒップ高さを設定することも可能である。
この際、ロボットは二つの脚に作用する力/トルクを用いて二つの足の位置及び方向を確認し、二つの足の位置及び予め格納されたFSMの状態に基づいて現在の歩行状態を判断し、判断された現在の歩行状態に基づいて目標キャプチャーポイント、目標ポーズ角度、目標ヒップ高さを設定する。
ロボットは、現在の姿勢と次の姿勢である目標姿勢との間のエラーを算出し、算出されたエラーを補償することによって、均衡を維持しながら次の姿勢を行う。これについて、さらに具体的に説明する。
次に、ロボットは、モーションを行いながら力/トルク検出部210、ポーズ検出部220、角度検出部230を介して二つの脚に印加される力/トルク、上体のポーズ角度を検出し、また複数の関節部131,143,144,163,164,165などの角度を検出する(312)。
続いて、ロボットは、力/トルク検出部210、ポーズ検出部220及び角度検出部230から検出された上体のポーズ角度及び各関節部131,143,144,163,164,165の角度、足の位置及び方向に基づいて重心を獲得する(313)。
その後、ロボットは、重心に基づいて現在キャプチャーポイントを獲得し、ポーズ角度、複数の関節部の角度に基づいて現在ヒップ高さを獲得し、ポーズ検出部220で検出されたポーズに対してヨー、ロール、ピッチの3軸方向のポーズ角度を獲得する(314)。
この際、順運動学を用いてロボットの現在の重心の位置、速度及びヒップ高さを獲得する。
そして、重心の位置及び速度を用いて、下記の式(1)によってロボットの現在キャプチャーポイントの位置を獲得する。
CP=dCOG+w*vCOG (1)
ここで、CPはキャプチャーポイントであり、dCOGは重心(COG)または重心が地面に投影された投影点の位置であり、vCOGは重心または投影点の速度であり、wはw=√(l/g)であって、ここで、lは地面からの重心までの高さであり、gは重力加速度である。或いは、wが正の値でもよい。
次に、ロボットは、現在キャプチャーポイントと目標キャプチャーポイントとを比較してキャプチャーポイントエラーを算出し、現在ヒップ高さと目標ヒップ高さとを比較してヒップ高さエラーを算出し、現在ポーズ角度と目標ポーズ角度とを比較してポーズ角度エラーを算出する(315)。
続いて、ロボットは、キャプチャーポイントエラーから水平方向であるx、y軸の座標値を獲得し、該x、y方向の補償力を算出する。
また、ヒップ高さエラーから垂直方向であるz軸方向の座標値を獲得し、該z方向の補償力を算出する。
補償力の算出は次の通りである。
CP=dCOG+w*vCOG (1)
重心(COG)の水平成分座標は(x,y)であり、重心の速度は、水平成分座標を微分した(x’,y’)であるため、CP=(x,y)+w(x’,y’)=(x+wx’,y+wy’)である。
キャプチャーポイントとヒップ高さを反映した3軸座標のエラー(e)は次の通りである。
e=([(x*,y*)−(x+wx’,y+wy’)],z*−z)
=(x*−(x+wx’),y*−(y+wy’),z*−z) (2)
ここで、(x*,y*)は目標キャプチャーポイントのx、y成分であり、CPは現在キャプチャーポイントであり、z*は目標ヒップ高さであり、zは現在ヒップ高さである。
3軸座標のエラー(e)を用いた補償力fは次の通りである。
f=ke (3)
ここで、kは力ゲイン(force gain)であり、P(Proportional)制御を用いる。
次に、ロボットは、重心に対する地面の投影点(CP)とロボット100の二つの足170L、170Rとの間の距離比率を用いて、重心の投影点に相対的に近い脚に、より多くの力を配分する。
次に、ロボットは、予め設定されたFSMの現在の状態及び補償力算出部253aで算出された補償力の大きさを用いて、ロボットの各関節部163,164,165に必要な仮想重力の大きさを設定する。
ここで、該補償力により設定された仮想重力は式(5)に示す通りである。
=f/m (5)
ここで、gは仮想重力であり、fは補償力算出部253aで算出した補償力であり、mはロボットの質量である。
次に、ロボットはポーズ角度エラーに基づいて、ヨー、ロール、ピッチ方向の補償モーメントを算出する(315)。
なお、補償力の算出と補償モーメントの算出とは前後関係を有するものでなく、両者を互いに取り替えてもよい。
次に、ロボットは仮想重力と実際の重力を補償するために、各関節部163,164,165に必要な重力補償トルクを算出するが、該重力補償トルクは仮想重力加速度と実際の重力加速度との和、各関節部の角度、各リンクの重さ及び各リンクにおける重心の位置を用いて算出する。
この際、二つの脚160L,160Rに配分された補償力を考慮して、各脚160L,160Rの関節部163,164,165に必要な重力補償トルクを算出する。
次に、ロボットは、重力補償トルクと補償モーメントに対するトルクを合算してロボットの各関節部163,164,165に必要な目標トルクを算出する(317)。
この際、ロボットは左右脚160L,160Rに配分された補償力を考慮して、左右脚160L,160Rの各関節部163,164,165に補償力を発生させるための目標トルクを算出する。
次に、ロボットは左右脚160L,160Rの各関節部163,164,165に対して算出された目標トルクを各関節部に出力することによって、均衡の取れたモーションを行う(318)。
本発明の一実施例は、複数の自由度を有するロボットの均衡制御に係り、ポイント及びヒップ高さを用いて複数の自由度に対するトルクをそれぞれ算出することができる。
したがって、ロボットはモーション中に均衡を維持することによって、柔軟で安定したモーションを行うことができる。
図9は、他の実施例に係るロボットの均衡制御装置を示す制御構成図であって、一実施例と異なる均衡制御部250のみを詳細に示した図面である。
他の実施例に係るロボットの均衡制御装置の均衡制御部250は、第1均衡制御部250aと第2均衡制御部250bとを含む。
第1均衡制御部250aは、複数の自由度のうち少なくとも一つの自由度に対する第1トルクを算出する。ここで、少なくとも一つの自由度に対する第1トルクを算出する第1均衡制御部250aは、一実施例における均衡制御部250と同一なので説明を省略する。
第2均衡制御部250bは、複数の自由度のうち残りの自由度に対する第2トルクを算出する。
そして、第1均衡制御部250aは、少なくとも一つの自由度に対する第1トルクと残りの自由度に対する第2トルクとを合算して目標トルクを算出し、その算出された目標トルクをサーボ制御部260に伝送する。
ここで、第1トルクと第2トルクの合算は、第2均衡制御部250bまたはサーボ制御部260で行われてもよい。
さらに、第1均衡制御部250aの獲得部251は、キャプチャーポイントの獲得時、少なくとも一つの自由度に対応する位置及び速度だけを獲得する。
例えば、少なくとも一つの自由度がX軸方向に運動するX軸方向の並進運動自由度及びX軸方向に対するロール回転運動自由度で、残りの自由度がY軸方向に運動するY軸方向の並進運動自由度及びY軸方向に対するピッチ回転運動自由度であれば、第1均衡制御部250aの獲得部251はX軸方向に対する位置及び速度だけを獲得し、その獲得されたX軸方向の位置と速度を用いてキャプチャーポイントを獲得する。
第2均衡制御部250bに対して具体的に説明する。第2均衡制御部250bは、目標値設定部256、逆運動学演算部257及び第2トルク算出部258を含む。
残りの自由度がY軸方向に運動するY軸方向の並進運動自由度及びY軸方向に対するピッチ回転運動自由度である場合を例に挙げて説明する。
目標値設定部256は、Y軸方向の並進運動自由度に対する目標位置を設定し、Y軸方向のピッチ回転運動自由度に対する目標角度を設定する。
逆運動学演算部257は、目標値設定部256で設定された目標位置及び目標角度を満足する逆運動学の解を演算する。
第2トルク算出部258は、逆運動学の解を用いて複数の関節部の目標角度を算出し、その算出された複数の関節部の目標角度を追従するための第2トルクをそれぞれ算出する。さらに、各関節部163,164,165は、図2に示すように、各軸に対する並進運動自由度及び回転運動自由度を行う複数の関節を含む。
すなわち、第1均衡制御部250aは、X軸方向に対する並進運動自由度及び回転運動自由度が行われるように、股関節部163のロール方向の回転関節163c及び足首関節部のロール方向の回転関節165bに印加されるトルクを算出し、Z軸方向に対する並進運動自由度及び回転運動自由度が行われるように、股関節部163のヨー方向の回転関節163aに印加されるトルクを算出する。
そして、第2均衡制御部250bは、Y軸方向に対する並進運動自由度及び回転運動自由度が行われるように、股関節部163のピッチ方向の回転関節163b、膝関節部164のピッチ方向の回転関節164a及び足首関節部165のピッチ方向の回転関節165aに印加されるトルクを算出する。
図10は、本発明の他の実施例に係るロボットの均衡制御方法を示すフローチャートである。少なくとも一つの自由度がX軸方向に運動するX軸方向の並進運動自由度及びX軸方向に対するロール回転運動自由度であり、残りの自由度がY軸方向に運動するY軸方向の並進運動自由度及びY軸方向に対するピッチ回転運動自由度であるときを例に挙げて説明する。
まず、ロボットは、動作中両脚に作用する力/トルクを検出して、両足の位置及び方向を確認し、両足の位置及び方向に基づいて、目標キャプチャーポイント、目標ポーズ角度、目標ヒップ高さを設定する(401)。
この際、目標キャプチャーポイントは、少なくとも一つの自由度に基づいた位置情報を有する。
ロボットは、現在姿勢と次の姿勢である目標姿勢間のエラーを算出し、その算出されたエラーを補償することにより、均衡を保持しながら次の姿勢を行う。これについてさらに具体的に説明する。
次に、ロボットは、モーションを行いながら、力/トルク検出部210、ポーズ検出部220、角度検出部230を通じて両脚に印加される力/トルク、上体のポーズ角度を検出し、また複数の関節部131,143,144,163,164,165などの角度を検出する(402)。
次に、ロボットは、力/トルク検出部210、ポーズ検出部220及び角度検出部230を通じて検出された上体のポーズ角度及び各関節部131,143,144,163,164,165の角度、足の位置及び方向に基づいて、重心を獲得する(403)。
次に、ロボットは、重心に基づいて、現在キャプチャーポイント、ポーズ角度、複数の関節部の角度に基づいて、現在ヒップ高さを獲得し、ポーズ検出部220で検出されたポーズのヨー、ロール、ピッチの3軸方向のポーズ角度を獲得する(404)。
次に、ロボットは、重心の位置及び速度を用いて、現在キャプチャーポイント位置を獲得する。この際、少なくとも一つの方向に対する現在キャプチャーポイントの位置を獲得する。
次に、ロボットは、現在キャプチャーポイントと目標キャプチャーポイントとを比較して、キャプチャーポイントエラーを算出し、現在ヒップ高さと目標ヒップ高さとを比較して、ヒップ高さエラーを算出し、現在ポーズ角度と目標ポーズ角度とを比較して、ポーズ角度エラーを算出する(405)。
次に、ロボットは、キャプチャーポイントエラーから水平方向であるx、y軸のうち少なくとも一つの座標値を獲得し、このx、y方向のうち少なくとも一つの方向に対する補償力を算出する。
また、ヒップ高さエラーから垂直方向のz軸方向の座標値を獲得し、このz方向の補償力を算出する。
次に、ロボットは、重心に対する地面の投影点(COG’)とロボット100の両足170L,170R間の距離割合を用いて、重心の投影点により近い脚により大きい力を配分する。
次に、ロボットは、予め設定されたFSMの現在状態及び補償力算出部253aで算出された補償力の大きさを用いて、ロボットの各関節部163,164,165に必要な仮想重力の大きさを設定する。
次に、ロボットは、ポーズ角度エラーに基づいて、ヨー、ロール、ピッチ方向の補償モーメントを算出する(406)。
さらに、補償力を算出することは、補償モーメントを算出することと前後関係がないため、両段階の順番が変わっても差し支えない。
次に、ロボットは、仮想重力と実際の重力を補償するために、各関節部163,164,165に必要な重力補償トルクを算出するが、重力補償トルクは仮想重力加速度と実際の重力加速度との和、各関節部の角度、各リンクの重さ及び各リンク内の重心の位置などを用いて算出する。
この際、両脚160L,160Rに配分された補償力を顧慮して、各脚160L,160Rの関節部163,164,165に必要な重力補償トルクを算出する。

次に、ロボットは、重力補償トルクと補償モーメントに対するトルクとを合算して、ロボットの各関節部163,164,165の少なくとも一つの自由度に対する第1トルクを算出する(407)。
この際、ロボットは、左右脚160L,160Rに配分された補償力を顧慮して、左右脚160L,160Rの各関節部163,164,165に補償力を発生させるための第1トルクを算出する。
すなわち、X軸方向に対する並進運動自由度及び回転運動自由度が行われるように、股関節部163のロール方向の回転関節163c及び足首関節部のロール方向の回転関節165bに印加されるトルクを算出し、Z軸方向に対する並進運動自由度及び回転運動自由度が行われるように、股関節部163のヨー方向の回転関節163aに印加されるトルクを算出する。
次に、ロボットは、残りの自由度に対する目標値を設定する(408)。すなわち、ロボットは、残りの自由度であるY軸方向の並進運動自由度に対する目標位置を設定し、Y軸方向のピッチ回転運動自由度に対する目標角度を設定する。
次に、ロボットは、設定された目標位置及び目標角度を満足する逆運動学の解を演算し(409)、その演算された逆運動学の解を用いて、複数の関節部の目標角度を算出する(410)。
この際、Y軸に対する自由度を有する股関節部のピッチ方向の回転関節、膝関節部のピッチ方向の回転関節、足首関節部のピッチ方向の回転関節の目標角度を算出する。
次に、ロボットは、関節部の角度を制御するためのゲインを設定したあと、その設定されたゲインに基づいて算出された複数の関節部の目標角度を追従するための第2トルクをそれぞれ算出する(411)。ここで、第2トルクは、関節数nと同一なn次元のベクトルである。
この際、ロボットは、Y軸方向に対する並進運動自由度及び回転運動自由度が行われるように、股関節部163のピッチ方向の回転関節163b、膝関節部164のピッチ方向の回転関節164a及び足首関節部165のピッチ方向の回転関節165aに印加されるトルクをそれぞれ算出する。
次に、ロボットは、第1トルクと第2トルクとを合算して、複数の関節部にそれぞれ印加される目標トルクをそれぞれ算出(412)した後、左右脚160L,160Rの各関節部163,164,165に対して算出された目標トルクを各関節部に出力することにより、均衡の取れたモーションを行う(413)。
これにより、ロボットは、複数の自由度のそれぞれに対して目標値を満足する姿勢を保持することができる。
図11は、本発明のさらに他の実施例に係るロボットの均衡制御方法を示すフローチャートであって、図3を参照して説明する。
本発明のさらに他の実施例に係るロボットの均衡制御装置は、定められたモーションを行うための姿勢を保持させた状態で少なくとも一つの関節部が使用者の意図通りに動けるように、少なくとも一つの関節部の角度が入力される入力部270を含む。
この際、均衡制御部250は、入力された少なくとも一つの関節部の角度を追従するための第2トルクを算出し、その算出された第2トルクと第1トルクとを合算して目標トルクを算出する。
ここで、第1トルクは、キャプチャーポイント及びヒップ高さに基づいて算出された複数の関節部に印加されるトルクであって、一実施例と同一な方法で算出されたトルクである。
図11を参照して、さらに他の実施例に係るロボットの均衡制御方法を説明する。まず、ロボットは、動作中両脚に作用する力/トルクを検出して、両足の位置及び方向を確認し、両足の位置及び方向に基づいて、目標キャプチャーポイント、目標ポーズ角度、目標ヒップ高さを設定する(501)。
次に、ロボットは、現在姿勢と次の姿勢である目標姿勢間のエラーを算出し、その算出されたエラーを補償することにより、均衡を保持しながら次の姿勢を行う。これについて、さらに具体的に説明する。
ロボットは、モーションを行いながら、力/トルク検出部210、ポーズ検出部220、角度検出部230を通じて両脚に印加される力/トルク、上体のポーズ角度を検出し、また複数の関節部131,143,144,163,164,165などの角度を検出(502)し、力/トルク検出部210、ポーズ検出部220及び角度検出部230を通じて検出された上体のポーズ角度及び各関節部131,143,144,163,164,165の角度、足の位置及び方向に基づいて、重心を獲得する(503)。
次に、ロボットは、重心に基づいて、現在キャプチャーポイント、ポーズ角度、複数の関節部の角度に基づいて、現在ヒップ高さを獲得し、ポーズ検出部220で検出されたポーズのヨー、ロール、ピッチの3軸方向のポーズ角度を獲得する(504)。
次に、ロボットの重心の位置及び速度を用いて、現在キャプチャーポイントの位置を獲得する。次に、ロボットは、現在キャプチャーポイントと目標キャプチャーポイントとを比較して、キャプチャーポイントエラーを算出し、現在ヒップ高さと目標ヒップ高さとを比較して、ヒップ高さエラーを算出し、現在ポーズ角度と目標ポーズ角度とを比較して、ポーズ角度エラーを算出する(505)。
次に、ロボットは、キャプチャーポイントエラーから水平方向であるx、y軸の座標値を獲得し、このx、y方向に対する補償力を算出する。
また、ヒップ高さエラーから垂直方向のz軸方向の座標値を獲得し、このz方向の補償力を算出する。
次に、ロボットは、重心に対する地面の投影点(COG’)とロボット100の両足170L,170R間の距離割合を用いて、重心の投影点により近い脚により大きい力を配分する。
次に、ロボットは、予め設定されたFSMの現在状態及び補償力算出部253aで算出された補償力の大きさを用いて、ロボットの各関節部163,164,165に必要な仮想重力の大きさを設定する。
次に、ロボットは、ポーズ角度エラーに基づいて、ヨー、ロール、ピッチ方向の補償モーメントを算出する(506)。
次に、ロボットは、仮想重力と実際の重力を補償するために、各関節部163,164,165に必要な重力補償トルクを算出するが、重力補償トルクは仮想重力加速度と実際の重力加速度との和、各関節部の角度、各リンクの重さ及び各リンク内の重心の位置を用いて算出する。
この際、両脚160L,160Rに配分された補償力を顧慮して、各脚160L,160Rの関節部163,164,165に必要な重力補償トルクを算出する。
次に、ロボットは、重力補償トルクと補償モーメントに対するトルクとを合算して、ロボットの各関節部163,164,165に印加される第1トルクを算出する(507)。
次に、ロボットは、入力部270を通じて少なくとも一つの関節部に対する角度が入力されたか否かを判断し、少なくとも一つの関節部に対する角度が入力されたと判断されると、その入力された角度を少なくとも一つの関節部の目標角度として設定する(508)。
次に、ロボットは設定された目標角度と実際の角度間のエラーを算出する(509)。
この際、実際の角度は、第1トルクが少なくとも一つの関節部に印加されたとき、少なくとも一つの関節部が取る角度である。
ここで、エラーは少なくとも一つの関節部に対する角度エラーベクトルである。
すなわち、ロボットは、少なくとも一つの関節部の角度を追従するために、角度エラーベクトル(E)を用いて第2トルク(T)を算出する(510)。
T=K*E
ここで、Tは少なくとも一つの関節に対するr次元トルクベクトルであり、Kは制御ゲインであって、スカラまたはrxr対角行列であり、rは角度が入力される関節部の数である。
なお、少なくとも一つの関節部に複数の関節が設けられた場合、複数の関節に対する角度がそれぞれ入力されてもよく、または複数の関節のうち少なくとも一つの関節に対する角度だけが入力されてもよい。
次に、ロボットは、第1トルクと第2トルクとを合算して、複数の関節部にそれぞれ印加される目標トルクをそれぞれ算出する(511)。
次に、ロボットは、左右脚160L,160Rの各関節部163,164,165に対して算出された目標トルクを各関節部に出力することにより、均衡の取れたモーションを行う(512)。
これにより、ロボットは、姿勢制御を行うと同時に少なくとも一つの関節部に対して所望の形状を保持することができる。また、角度制御をする関節部の選択に応じて、均衡の取れた姿勢と使用者の意図に沿う姿勢を取ることができる。
160L,160R 脚
170L,170R 足
163 股関節部
164 膝関節部
165 足首関節部
210 力/トルク検出部
220 ポーズ検出部
230 角度検出部
240 設定部
250 均衡制御部
251 獲得部
252 エラー算出部
253 補償部
254 配分部
255 トルク算出部
260 サーボ制御部

Claims (44)

  1. 複数の関節部がそれぞれ設けられた複数の脚と、脚に連結された上体を含み複数の並進運動自由度と回転運動自由度を有するロボットの均衡制御方法において、
    前記上体のポーズ角度及び前記複数の関節部の角度を検出し、
    前記ポーズ角度及び複数の関節部の角度に基づいて現在の姿勢を獲得し、
    前記複数の並進運動自由度のうち少なくとも一つの並進運動自由度に対して、前記姿勢と予め設定された目標姿勢に基づいた姿勢エラーを算出し、
    前記姿勢エラーに基づいて、前記少なくとも一つの並進運動自由度に対する補償力を算出し、
    前記少なくとも一つの並進運動自由度に対する補償力に基づいて、前記少なくとも一つの並進運動自由度に対する目標トルクを前記複数の関節部に対してそれぞれ算出し、
    前記少なくとも一つの並進運動自由度に対する目標トルクを前記複数の関節部に出力して、前記ロボットの均衡を制御するロボットの均衡制御方法。
  2. 前記目標トルクを算出することは、
    前記少なくとも一つの並進運動自由度に対する目標トルクを残りの並進運動自由度に対応する目標トルクに合算して目標トルク和を算出する、請求項1に記載のロボットの均衡制御方法。
  3. 前記姿勢エラーを算出することは、
    前記検出されたポーズ角度及び複数の関節部の角度に基づいて現在の重心位置を検出するものの、前記少なくとも一つの並進運動自由度に対する現在の重心位置を検出し、
    前記検出された現在の重心と予め設定された目標重心とを比較して、前記少なくとも一つの並進運動自由度に対する重心エラーを算出し、
    前記重心エラーを姿勢エラーとして用いることを含む、請求項1に記載のロボットの均衡制御方法。
  4. 前記姿勢エラーを算出することは、
    前記検出されたポーズ角度及び複数の関節部の角度に基づいて、現在重心の位置と速度を検出するものの、前記少なくとも一つの並進運動自由度に対する現在重心の位置と速度を検出し、
    前記検出された現在重心の位置と速度に基づいて、前記少なくとも一つの並進運動自由度に対する現在キャプチャーポイントを獲得し、
    前記獲得された現在キャプチャーポイントと予め設定された目標キャプチャーポイントとを比較して、少なくとも一つの並進運動自由度に対するキャプチャーポイントエラーを算出し、
    前記算出されたキャプチャーポイントエラーを前記姿勢エラーとして用いることを含む、請求項1に記載のロボットの均衡制御方法。
  5. 前記姿勢エラーを算出することは、
    前記上体のポーズ角度及び前記複数の関節部の角度を検出し、
    前記ポーズ角度及び複数の関節部の角度に基づいて、ヒップまたは上体のいずれか一つの参照点の位置を前記少なくとも一つの自由度に対して算出し、
    前記現在の参照点と予め設定された目標参照点の位置とを比較して、参照点位置エラーを前記少なくとも一つの自由度に対して算出し、
    前記参照点位置エラーを前記少なくとも一つの並進運動自由度の姿勢エラーとして用いることを含む、請求項1に記載のロボットの均衡制御方法。
  6. 前記姿勢エラーを算出することは、
    前記複数の並進運動自由度のうち残りの並進運動自由度の姿勢エラー算出と相異なることを含む、請求項1に記載のロボットの均衡制御方法。
  7. 前記補償力を算出することは、
    現在キャプチャーポイント及び現在ヒップ高さを獲得し、
    前記現在キャプチャーポイントと予め設定された目標キャプチャーポイントとを比較して、キャプチャーポイントエラーを算出し、
    前記現在ヒップ高さと予め設定された目標ヒップ高さとを比較して、ヒップ高さエラーを算出し、
    前記キャプチャーポイントエラーとヒップ高さエラーに基づいて、補償力を算出することを含む、請求項1に記載のロボットの均衡制御方法。
  8. 前記現在キャプチャーポイントを獲得することは、
    前記上体のポーズ角度及び複数の関節部の角度に基づいて、重心の位置と速度を獲得し、その獲得された重心の位置と速度に基づいて現在キャプチャーポイントを獲得することを含む、請求項7に記載のロボットの均衡制御方法。
  9. 前記現在ヒップ高さを算出することは、
    前記重心及び前記複数の関節部の角度に基づいて、前記現在ヒップ高さを算出することを含む、請求項7に記載のロボットの均衡制御方法。
  10. 前記補償力を算出することは、
    前記キャプチャーポイントエラーを用いて、水平方向の補償力を算出し、
    前記ヒップ高さエラーを用いて、垂直方向の補償力を算出することを含む、請求項7に記載のロボットの均衡制御方法。
  11. 前記上体のポーズ角度及び前記複数の関節部の角度に基づいて、現在の姿勢を判断し、
    前記現在の姿勢と予め格納されたモーション情報に基づいて、前記目標キャプチャーポイント、前記目標ヒップ高さを設定することをさらに含む、請求項7に記載のロボットの均衡制御方法。
  12. 前記目標トルクを算出することは、
    前記ロボットの重心が地面に投影された投影点と前記複数の脚にそれぞれ連結された足間の距離比率を算出し、
    前記足間の距離比率に基づいて、前記複数の脚に印加される補償力を配分し、
    前記複数の脚に配分された補償力に基づいて、前記複数の関節部に印加される目標トルクを算出することをさらに含む、請求項1に記載のロボットの均衡制御方法。
  13. 前記キャプチャーポイントを獲得することは、
    順運動学を用いる、請求項7に記載のロボットの均衡制御方法。
  14. 前記上体のポーズ角度と予め設定された目標ポーズ角度とを比較して、ポーズ角度エラーを算出し、
    前記ポーズ角度エラーに基づいて、補償モーメントを算出し、
    前記目標トルクの算出時、前記補償モーメントを反映することをさらに含む、請求項1に記載のロボットの均衡制御方法。
  15. 前記補償モーメントを前記目標トルクに反映することは、
    ジャコビアンを用いて前記補償モーメントを前記関節部のトルクに変換し、
    前記変換されたトルクを前記目標トルクの算出時に合算することを含む、請求項14に記載のロボットの均衡制御方法。
  16. 前記補償モーメントを算出することは、
    前記ポーズ角度エラーを用いて、ヨー、ロール、ピッチ方向の補償モーメントを算出することを含む、請求項14に記載のロボットの均衡制御方法。
  17. 前記ポーズ角度を検出することは、
    前記上体のヨー角度、ロール角度、ピッチ角度のうち少なくとも一つの角度を検出することを含む、請求項1に記載のロボットの均衡制御方法。
  18. 前記目標トルクを算出することは、
    前記補償力、ロボットの質量及び地球重力加速度に基づいて、仮想重力加速度を算出し、
    前記仮想重力加速度に基づいて、前記少なくとも一つの自由度に対応する仮想重力補償トルクをそれぞれ算出し、
    前記仮想重力補償トルクを反映して、前記目標トルクを算出することをさらに含む、請求項1に記載のロボットの均衡制御方法。
  19. 前記複数の自由度のうち残りの自由度に対する位置及び角度を設定し、
    前記設定された位置及び角度を満足する逆運動学の解を演算し、
    前記逆運動学の解に基づいて、前記複数の関節部の残りの自由度に対する目標角度を算出し、
    前記複数関節部の残りの自由度に対する目標角度に基づいて、前記複数関節部の残りの自由度に対応するトルクを算出することを含む、請求項1に記載のロボットの均衡制御方法。
  20. 前記目標トルクを算出することは、
    前記少なくとも一つの自由度に対するトルクと前記残りの自由度に対するトルクとを合算して、前記目標トルクを算出することを含む、請求項19に記載のロボットの均衡制御方法。
  21. 前記複数の関節部のうち少なくとも一つの関節部に対する目標角度が入力されて、
    前記入力された少なくとも一つの関節部の目標角度を追従するためのトルクを算出し、
    前記目標トルクの算出時、前記少なくとも一つの関節部の目標角度に対するトルクを反映することをさらに含む、請求項1に記載のロボットの均衡制御方法。
  22. 前記目標角度が入力されることは、
    前記複数の関節部に複数の自由度に対応する複数の関節がそれぞれ設けられた場合、前記複数の関節の目標角度がそれぞれ入力されることを含む、請求項21に記載のロボットの均衡制御方法。
  23. 前記目標トルクを算出することは、
    ジャコビアンを用いて前記目標トルクを算出することを含む、請求項1に記載のロボットの均衡制御方法。
  24. 前記目標トルクを算出することは、
    前記補償力、ロボットの質量及び地球重力加速度に基づいて、仮想重力加速度を算出し、
    前記仮想重力加速度に基づいて、前記少なくとも一つの自由度に対応する仮想重力補償トルクを算出し、
    前記算出された仮想重力補償トルク及び前記ジャコビアンに基づいて算出されたトルクを用いて、前記複数の関節部の前記少なくとも一つの自由度に対応する目標トルクを算出することをさらに含む、請求項1に記載のロボットの均衡制御方法。
  25. 複数の関節部がそれぞれ設けられた複数の脚と、その脚に連結された上体を有しており、複数の自由度を有するロボットの均衡制御装置において、
    前記上体のポーズ角度を検出するポーズ検出部;
    前記複数の関節部の角度を検出する角度検出部;
    予め格納されたモージョン情報に基づいて、前記複数の自由度のうち少なくとも一つの自由度に対して目標姿勢を設定する設定部;
    前記ポーズ角度及び複数の関節部の角度に基づいて、前記少なくとも一つの自由度に対して現在姿勢を獲得し、前記現在姿勢と目標姿勢とを比較して姿勢エラーを算出し、前記姿勢エラーに基づいて前記少なくとも一つの自由度に対して補償力を算出し、前記補償力に基づいて前記少なくとも一つの自由度に対する目標トルクを算出する均衡制御部;
    前記複数の関節部に前記少なくとも一つの自由度に対する目標トルクを出力するサーボ制御部と含むロボットの均衡制御装置。
  26. 前記均衡制御部は、
    前記上体のポーズ角度及び複数の関節部の角度に基づいて重心を獲得し、前記重心に基づいて前記現在姿勢を獲得する獲得部を含む、請求項25に記載のロボットの均衡制御装置。
  27. 前記均衡制御部は、
    前記上体のポーズ角度及び複数の関節部の角度に基づいて重心の位置と速度を獲得し、前記重心の位置と速度に基づいて前記現在キャプチャーポイントを獲得して、前記現在姿勢を獲得する獲得部を含む、請求項25に記載のロボットの均衡制御装置。
  28. 前記均衡制御部は、
    前記上体のポーズ角度及び複数の関節部の角度に基づいてヒップや上体の参照点の位置を獲得し、前記参照点の位置に基づいて前記現在姿勢を獲得する獲得部を含む、請求項25に記載のロボットの均衡制御装置。
  29. 前記設定部は、
    前記少なくとも一つの自由度に対して目標重心を設定し、
    前記目標重心を用いて前記目標姿勢を設定する、請求項25に記載のロボットの均衡制御装置。
  30. 前記設定部は、
    前記少なくとも一つの自由度に対して目標キャプチャーポイントを設定し、
    前記目標キャプチャーポイントを用いて前記目標姿勢を設定する、請求項25に記載のロボットの均衡制御装置。
  31. 前記設定部は、
    前記少なくとも一つの自由度に対してヒップや上体の参照点の目標位置を設定し、前記参照点の目標位置に基づいて前記目標姿勢を設定する、請求項25に記載のロボットの均衡制御装置。
  32. 前記ロボットの重心が地面に投影された投影点と前記複数の脚にそれぞれ連結された足間の距離比率を算出し、前記足間の距離比率に基づいて、前記複数の脚に印加される補償力を配分する配分部をさらに含み、
    前記均衡制御部は、前記複数の脚に配分された補償力に基づいて、前記複数の関節部に印加されるトルクを算出する、請求項25に記載のロボットの均衡制御装置。
  33. 前記均衡制御部は、
    前記上体のポーズ角度と予め設定された目標ポーズ角度とを比較してポーズ角度エラーを算出し、前記ポーズ角度エラーに基づいて補償モーメントを算出し、前記トルクの算出時に前記補償モーメントを反映することをさらに含む、請求項25に記載のロボットの均衡制御装置。
  34. 前記均衡制御部は、
    前記ポーズ角度エラーを用いて、ヨー、ロール、ピッチ方向の補償モーメントを算出することを含む、請求項25に記載のロボットの均衡制御装置。
  35. 使用者から少なくとも一つの姿勢からなるモーション情報が入力される入力部をさらに含み、
    前記設定部は、前記入力されたモーション情報を格納する、請求項25に記載のロボットの均衡制御装置。
  36. 前記均衡制御部は、
    前記補償力、予め格納されたロボットの質量及び地球重力加速度に基づいて仮想重力加速度を算出し、前記仮想重力加速度に基づいて前記少なくとも一つの自由度に対応する仮想重力補償トルクをそれぞれ算出し、前記仮想重力補償トルクを反映して、前記目標トルクを算出することを含む、請求項25に記載のロボットの均衡制御装置。
  37. 前記均衡制御部は、
    前記複数の自由度のうち残りの自由度に対するトルクを逆運動学を用いて算出する、請求項25に記載のロボットの均衡制御装置。
  38. 前記均衡制御部は、
    前記複数の関節部のうち少なくとも一つの関節部に対する目標角度が入力されると、前記入力された目標角度に対応するトルクを算出し、前記目標トルクの算出時に前記少なくとも一つの関節部の目標角度に対するトルクを反映する、請求項25に記載のロボットの均衡制御装置。
  39. 前記均衡制御部は、
    ジャコビアンを用いて前記目標トルクを算出する、請求項25に記載のロボットの均衡制御装置。
  40. 前記均衡制御部は、
    前記ポーズ角度及び複数の関節部の角度に基づいて、現在キャプチャーポイント及び現在ヒップ高さを獲得し、前記現在キャプチャーポイントと目標キャプチャーポイントとを比較してキャプチャーポイントエラーを算出し、前記現在ヒップ高さと目標ヒップ高さとを比較して、ヒップ高さエラーを算出し、前記キャプチャーポイントエラーとヒップ高さエラーに基づいて補償力を算出し、前記補償力に基づいて前記複数の自由度のうち少なくとも一つの自由度に対する目標トルクを算出する、請求項25に記載のロボットの均衡制御装置。
  41. 前記均衡制御部は、
    前記上体のポーズ角度及び複数の関節部の角度に基づいて、重心及び前記ヒップ高さを獲得し、前記重心に基づいて現在キャプチャーポイントを獲得する獲得部を含む、請求項40に記載のロボットの均衡制御装置。
  42. 前記均衡制御部は、
    前記キャプチャーポイントエラーを用いて水平方向の補償力を算出し、前記ヒップ高さエラーを用いて垂直方向の補償力を算出することを含む、請求項40に記載のロボットの均衡制御装置。
  43. 前記複数の脚に設けられた各足に印加される荷重を検出する力/トルク検出部をさらに含み、
    前記設定部は、前記各足に印加される荷重に基づいて現在姿勢を判断し、前記現在姿勢と前記予め設定されたモーション情報に基づいて、前記目標キャプチャーポイント、前記目標ヒップ高さを設定する、請求項40に記載のロボットの均衡制御装置。
  44. 前記設定部は、
    前記複数の脚に設けられた足の支持領域内の一点が重力方向に通る線上の一点を前記目標キャプチャーポイントとして設定する、請求項40に記載のロボットの均衡制御装置。
JP2012129275A 2011-06-10 2012-06-06 ロボットの均衡制御装置及びその制御方法 Active JP5991857B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2011-0055954 2011-06-10
KR20110055954 2011-06-10
KR1020120053489A KR102044437B1 (ko) 2011-06-10 2012-05-21 로봇의 균형 제어 장치 및 그 제어 방법
KR10-2012-0053489 2012-05-21

Publications (2)

Publication Number Publication Date
JP2013000878A true JP2013000878A (ja) 2013-01-07
JP5991857B2 JP5991857B2 (ja) 2016-09-14

Family

ID=47293826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012129275A Active JP5991857B2 (ja) 2011-06-10 2012-06-06 ロボットの均衡制御装置及びその制御方法

Country Status (2)

Country Link
US (1) US9334002B2 (ja)
JP (1) JP5991857B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019089200A (ja) * 2014-08-25 2019-06-13 ボストン ダイナミクス,インコーポレイテッド 自然なピッチとロール

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103612687B (zh) * 2013-12-12 2015-12-02 昆山市工业技术研究院有限责任公司 利用轴径向反力驱动的自平衡摇摆行走机器人
US9387588B1 (en) 2014-08-25 2016-07-12 Google Inc. Handling gait disturbances with asynchronous timing
US10081098B1 (en) 2014-08-25 2018-09-25 Boston Dynamics, Inc. Generalized coordinate surrogates for integrated estimation and control
US9499219B1 (en) * 2014-08-25 2016-11-22 Google Inc. Touch-down sensing for robotic devices
US9618937B1 (en) 2014-08-25 2017-04-11 Google Inc. Slip detection using robotic limbs
JP6228097B2 (ja) * 2014-10-06 2017-11-08 本田技研工業株式会社 移動ロボット
WO2016061471A1 (en) * 2014-10-17 2016-04-21 Hitachi High Technologies America, Inc. Interactive laboratory robotic system
US9352470B1 (en) 2014-11-11 2016-05-31 Google Inc. Yaw slip handling in a robotic device
US9446518B1 (en) * 2014-11-11 2016-09-20 Google Inc. Leg collision avoidance in a robotic device
US9499218B1 (en) * 2014-12-30 2016-11-22 Google Inc. Mechanically-timed footsteps for a robotic device
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
JP1545285S (ja) * 2015-08-17 2016-03-07
US9586316B1 (en) * 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
JP1556885S (ja) 2015-09-17 2016-08-22
US10017218B1 (en) * 2015-11-11 2018-07-10 Boston Dynamics, Inc. Achieving a target gait behavior in a legged robot
USD795321S1 (en) * 2015-12-07 2017-08-22 UBTECH Robotics Corp. Entertainment robot
USD795320S1 (en) * 2015-12-07 2017-08-22 UBTECH Robotics Corp. Entertainment robot
US9789919B1 (en) 2016-03-22 2017-10-17 Google Inc. Mitigating sensor noise in legged robots
CN106737848B (zh) * 2016-12-29 2023-08-04 深圳市优必选科技有限公司 腿部结构及人形机器人
CN106584464B (zh) * 2016-12-31 2019-11-12 重庆大学 一种捕获轨迹试验中解耦机构的飞行器模型传动链误差补偿方法
CN107444515A (zh) * 2017-09-15 2017-12-08 吴兰岸 一种新型教育机器人的腿部结构
CN109693233B (zh) * 2017-10-20 2020-11-24 深圳市优必选科技有限公司 机器人姿态检测方法、装置、终端设备及计算机存储介质
CN110053039B (zh) * 2018-01-17 2021-10-29 深圳市优必选科技有限公司 一种机器人行走中重力补偿的方法、装置及机器人
CN110653814B (zh) * 2018-06-29 2021-09-17 深圳市优必选科技有限公司 一种机器人的控制方法、机器人及具有存储功能的装置
US11691293B2 (en) * 2018-08-31 2023-07-04 Fanuc Corporation Robot
US11550335B2 (en) * 2018-11-28 2023-01-10 Ubtech Robotics Corp Ltd Biped robot and its moving method and apparatus
CN109941371B (zh) * 2019-04-22 2021-09-17 青岛黄海学院 一种双足机器人及其行走控制方法
CN113050409B (zh) * 2019-12-28 2023-12-01 深圳市优必选科技股份有限公司 仿人机器人及其控制方法以及计算机可读存储介质
CN112319169B (zh) * 2020-10-19 2022-02-25 江苏大学 一种基于俯仰侧倾力补偿的顶层车身姿态控制方法
US11210969B1 (en) 2021-06-16 2021-12-28 King Abdulaziz University Center of gravity based control apparatus for research and education
CN113450903B (zh) * 2021-06-29 2022-10-04 广东人工智能与先进计算研究院 一种人体动作映射方法、装置、计算机设备和存储介质
CN114179088B (zh) * 2021-12-27 2024-01-19 优必康(青岛)科技有限公司 机器人负载补偿实现方法、装置及机器人

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05253867A (ja) * 1992-03-12 1993-10-05 Honda Motor Co Ltd 脚式移動ロボットの歩行制御装置
US20100185330A1 (en) * 2009-01-22 2010-07-22 Samsung Electronics Co., Ltd. Robot walking control apparatus and method thereof
JP2011093027A (ja) * 2009-10-28 2011-05-12 Honda Motor Co Ltd 脚式移動ロボットの制御装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355064A (en) * 1992-03-04 1994-10-11 Honda Giken Kogyo Kabushiki Kaisha Control system for legged mobile robot
DE60141092D1 (de) * 2000-11-17 2010-03-04 Honda Motor Co Ltd Gangmustererzeugungssystem für beweglichen Roboter mit Beinen
JP2002301674A (ja) * 2001-04-03 2002-10-15 Sony Corp 脚式移動ロボット及びその運動教示方法、並びに記憶媒体
EP2305436B1 (en) * 2002-03-18 2015-10-28 Sony Corporation Robot device and movement controlling method for a robot device
KR101464124B1 (ko) * 2008-06-04 2014-11-20 삼성전자주식회사 로봇 및 그 보행제어방법
JP5398592B2 (ja) * 2010-03-01 2014-01-29 本田技研工業株式会社 脚式移動ロボットの運動状態評価装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05253867A (ja) * 1992-03-12 1993-10-05 Honda Motor Co Ltd 脚式移動ロボットの歩行制御装置
US20100185330A1 (en) * 2009-01-22 2010-07-22 Samsung Electronics Co., Ltd. Robot walking control apparatus and method thereof
JP2011093027A (ja) * 2009-10-28 2011-05-12 Honda Motor Co Ltd 脚式移動ロボットの制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019089200A (ja) * 2014-08-25 2019-06-13 ボストン ダイナミクス,インコーポレイテッド 自然なピッチとロール
JP2021041532A (ja) * 2014-08-25 2021-03-18 ボストン ダイナミクス,インコーポレイテッド 自然なピッチとロール

Also Published As

Publication number Publication date
JP5991857B2 (ja) 2016-09-14
US20120316683A1 (en) 2012-12-13
US9334002B2 (en) 2016-05-10

Similar Documents

Publication Publication Date Title
JP5991857B2 (ja) ロボットの均衡制御装置及びその制御方法
KR102044437B1 (ko) 로봇의 균형 제어 장치 및 그 제어 방법
JP5975735B2 (ja) ロボット及びその制御方法
KR101778027B1 (ko) 보행 로봇 및 그 자세 제어 방법
US9043029B2 (en) Walking robot and method for controlling posture thereof
JP3972854B2 (ja) ロボットの運動制御装置
KR101004820B1 (ko) 이동체 장치, 이동체 장치의 제어 방법, 로봇 장치, 로봇 장치의 동작 제어 방법
KR101772974B1 (ko) 휴머노이드 로봇의 인간 유사 동작 생성 방법
US8682488B2 (en) Humanoid robot and walking control method thereof
US20130079929A1 (en) Robot and control method thereof
US20130116820A1 (en) Walking robot and control method thereof
US8612054B2 (en) Robot walking control apparatus and method thereof
KR101687630B1 (ko) 보행 로봇 및 그 균형 제어 방법
US20110172824A1 (en) Walking robot and method of controlling the same
KR20110084632A (ko) 로봇의 보행 제어 장치 및 그 제어 방법
US20120059518A1 (en) Walking robot and control method thereof
WO2004033160A1 (ja) ロボット装置の動作制御装置及び動作制御方法
Lim et al. Control design to achieve dynamic walking on a bipedal robot with compliance
Soliman et al. 3-d dynamic walking trajectory generation for a bipedal exoskeleton with underactuated legs: A proof of concept
JP2003117858A (ja) ロボットの歩行制御装置及び歩行制御方法
KR20180004397A (ko) 보행 로봇 및 그 자세 제어 방법
JP2004181613A (ja) ロボット装置、脚式移動ロボットの動作制御装置及び動作制御方法、脚式移動ロボットのためのセンサ・システム、並びに移動体装置
JP3568527B2 (ja) 移動体装置
JP2010137289A (ja) 情報処理装置及び情報処理方法、並びにコンピューター・プログラム
Muntean et al. Advancing Humanoid Robotics: Leg Control and Locomotion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160622

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: 20160802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160816

R150 Certificate of patent or registration of utility model

Ref document number: 5991857

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250