(57)【要約】  前後方向への移動がない歩行動作について、動作生成部（１２３ａ）が制御情報を生成し、コンプライアンス制御部（１２３ｂ）が力センサデータに基づいてコンプライアンス制御を行い、フィードバック制御部（１２３ｃ）が力センサデータに基づいてＺＭＰフィードバック制御を行うとともに、左右のローリングが最大となる時点でジャイロセンサデータに基づいてジャイロフィードバック制御を行う。そして、ローリング振幅調整部（１２３ｄ）がローリング動作の１サイクルごとにコスト関数Ｊの値と調整量αを計算してコスト関数Ｊが小さくなるようにローリング振幅を調整し、動作生成部（１２３ａ）が次の動作サイクルの制御情報にローリング振幅の変更を反映させる。
2009025032.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの歩行を制御するロボット制御装置であって、
ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成する制御情報生成手段と、
前記制御情報生成手段により生成された制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行うフィードバック制御手段と、
前記制御情報生成手段が制御情報の生成に用いるローリング振幅を前記フィードバック制御手段によるジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するローリング振幅補正手段と、
を備えたことを特徴とするロボット制御装置。
【請求項２】
前記ローリング振幅補正手段は、ロボットの足裏に備え付けられた力センサにより測定された力センサデータに基づいてＺＭＰの横方向の移動量および移動速度を算出するＺＭＰ算出手段と、
前記ＺＭＰ算出手段により算出された移動速度に基づいて補正量を算出し、ローリング振幅を補正する補正量算出手段と、
を備えたことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記補正量算出手段は、前記移動速度の最大値と最大ローリング時点での移動速度との比率に基づいて補正量を算出することを特徴とする請求項２に記載のロボット制御装置。
【請求項４】
前記ローリング振幅補正手段は、ローリングが最大になった時点からローリングが減少するまでの間にＺＭＰが横方向に移動した量に基づいてジャイロフィードバック制御が少なくなるように補正することを特徴とする請求項１、２または３に記載のロボット制御装置。
【請求項５】
前記ローリング振幅補正手段は、ロボットが歩行動作を繰り返すサイクルごとにローリング振幅を補正することを特徴とする請求項１、２または３に記載のロボット制御装置。
【請求項６】
前記ロボットは、ストライドのない歩行を行うことを特徴とする請求項１、２または３に記載のロボット制御装置。
【請求項７】
ロボットの歩行を制御するロボット制御方法であって、
ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成する制御情報生成ステップと、
前記制御情報生成ステップにより生成された制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行うフィードバック制御ステップと、
前記制御情報生成ステップが制御情報の生成に用いるローリング振幅を前記フィードバック制御ステップによるジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するローリング振幅補正ステップと、
を含んだことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの歩行を制御するロボット制御装置およびロボット制御方法に関し、特に、ロボットの歩行を改善するとともに、ロボットを歩行させるために用いるモータの疲弊を少なくすることができるロボット制御装置およびロボット制御方法に関するものである。
【背景技術】
【０００２】
近年、ヒューマノイドロボット、特にヒューマノイドロボットの歩行は数多くの研究者の注意を引いている。このヒューマノイドロボットの歩行に関する研究の大部分は、ＺＭＰ（Zero  Moment  Point）規範を用いている。このＺＭＰ規範は、支持多角形の内部にＺＭＰを留めるように制御する。このアプローチでは、ヒューマノイドロボットやロボットの周囲環境を正確にモデリングし、微分方程式を解くことになる。ところが、このモデリングはアンノウンな要素がある場合には難しくなる。さらに、微分方程式を解くのに時間がかかるため、リアルタイム制御は困難なものとなる。【０００３】
別のアプローチとして、ＺＭＰ規範を用いない方法がある。例えば、ロボットの可動部の周期運動を利用して、ロボットの姿勢が安定するよう周期運動の位相を調節する従来技術がある（特許文献１を参照）。ここで、可動部とは、ロボットの脚や腕である。【０００４】
また、ヒューマノイドロボットやロボットの周囲環境のモデリングを不要としつつ、ヒューマノイドロボットがさまざまな運動を安定して行うことができるよう効率的に制御する他の技術の開発も進められている。【０００５】
【特許文献１】特開２００５−９６０６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ロボットの歩行制御では、ロボットの回転角に基づいたフィードバック制御が行われるが、フィードバック制御によるＺＭＰの振動やオーバーシュートを少なくすることによって、ロボットの歩行をより安定させることができる。したがって、フィードバック制御をできるだけ少なくすることが、ロボットを安定して歩行させる上で重要な課題となる。また、フィードバック制御によりＺＭＰの振動やオーバーシュートが頻繁に発生すると、歩行制御に用いられるモータを疲弊させるという問題もある。したがって、フィードバック制御をできるだけ少なくすることは、モータの疲弊を少なくするためにも重要となる。【０００７】
本発明は、上記に鑑みてなされたものであって、ロボットの歩行を改善するとともに、ロボットを歩行させるために用いるモータの疲弊を少なくすることができるロボット制御装置およびロボット制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、ロボットの歩行を制御するロボット制御装置であって、ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成する制御情報生成手段と、前記制御情報生成手段により生成された制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行うフィードバック制御手段と、前記制御情報生成手段が制御情報の生成に用いるローリング振幅を前記フィードバック制御手段によるジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するローリング振幅補正手段と、を備えたことを特徴とする。【０００９】
この請求項１の発明によれば、ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成し、生成した制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行い、制御情報の生成に用いるローリング振幅をジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するよう構成したので、ジャイロフィードバック制御で用いられるモータの切り換え使用を減らすことができる。【００１０】
また、請求項２に係る発明は、上記発明において、前記ローリング振幅補正手段は、ロボットの足裏に備え付けられた力センサにより測定された力センサデータに基づいてＺＭＰの横方向の移動量および移動速度を算出するＺＭＰ算出手段と、前記ＺＭＰ算出手段により算出された移動速度に基づいて補正量を算出し、ローリング振幅を補正する補正量算出手段と、を備えたことを特徴とする。【００１１】
この請求項２の発明によれば、ロボットの足裏に備え付けられた力センサにより測定された力センサデータに基づいてＺＭＰの横方向の移動量および移動速度を算出し、算出した移動速度に基づいて補正量を算出してローリング振幅を補正するよう構成したので、簡単にローリング振幅を補正することができる。【００１２】
また、請求項３に係る発明は、上記発明において、前記補正量算出手段は、前記移動速度の最大値と最大ローリング時点での移動速度との比率に基づいて補正量を算出することを特徴とする。【００１３】
この請求項３の発明によれば、移動速度の最大値と最大ローリング時点での移動速度との比率に基づいて補正量を算出するよう構成したので、ローリング振幅を適切に補正することができる。【００１４】
また、請求項４に係る発明は、上記発明において、前記ローリング振幅補正手段は、ローリングが最大になった時点からローリングが減少するまでの間にＺＭＰが横方向に移動した量に基づいてジャイロフィードバック制御が少なくなるように補正することを特徴とする。【００１５】
この請求項４の発明によれば、ローリングが最大になった時点からローリングが減少するまでの間にＺＭＰが横方向に移動した量に基づいてジャイロフィードバック制御が少なくなるように補正するよう構成したので、ジャイロフィードバック制御量の正確な値に基づいてローリング振幅を補正することができる。【００１６】
また、請求項５に係る発明は、上記発明において、前記ローリング振幅補正手段は、ロボットが歩行動作を繰り返すサイクルごとにローリング振幅を補正することを特徴とする。【００１７】
この請求項５の発明によれば、ロボットが歩行動作を繰り返すサイクルごとにローリング振幅を補正するよう構成したので、サイクルごとにジャイロフィードバック制御を少なくすることができる。【００１８】
また、請求項６に係る発明は、上記発明において、前記ロボットは、ストライドのない歩行を行うことを特徴とする。【００１９】
この請求項６の発明によれば、ストライドのない歩行を行うよう構成したので、前後方向の移動に必要な制御を不要とすることができる。【００２０】
また、請求項７に係る発明は、上記発明において、ロボットの歩行を制御するロボット制御方法であって、ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成する制御情報生成ステップと、前記制御情報生成ステップにより生成された制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行うフィードバック制御ステップと、前記制御情報生成ステップが制御情報の生成に用いるローリング振幅を前記フィードバック制御ステップによるジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するローリング振幅補正ステップと、を含んだことを特徴とする。【００２１】
この請求項７の発明によれば、ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成し、生成した制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行い、制御情報の生成に用いるローリング振幅をジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するよう構成したので、ジャイロフィードバック制御で用いられるモータの切り換え使用を減らすことができる。
【発明の効果】
【００２２】
本発明によれば、ジャイロフィードバック制御を少なくするので、ロボットの歩行を改善するという効果を奏する。また、ジャイロフィードバック制御で用いられるモータの切り換え使用を減らすので、モータの疲弊を少なくすることができる。【００２３】
また、本発明によれば、簡単にローリング振幅を補正することができるので、ロボットの歩行中にローリング振幅を補正することができるという効果を奏する。【００２４】
また、本発明によれば、ローリング振幅を適切に補正するので、ジャイロフィードバック制御を適切に減らすことができるという効果を奏する。【００２５】
また、本発明によれば、ジャイロフィードバック制御量の正確な値に基づいてローリング振幅を補正するので、正確にローリング振幅を補正することができるという効果を奏する。【００２６】
また、本発明によれば、サイクルごとにジャイロフィードバック制御を少なくするので、ジャイロフィードバック制御を効率良く減らすことができるという効果を奏する。
【図面の簡単な説明】
【００２７】
【図１】図１は、本実施例に係るロボットの概略図である。
【図２】図２は、本実施例に係るロボット制御システムの構成を示す機能ブロック図である。
【図３】図３は、中央制御部の構成を示す機能ブロック図である。
【図４】図４は、ローリング動作について動作生成部が算出する回転角を示す図である。
【図５】図５は、コンプライアンス制御部によるコンプライアンス制御を説明するための説明図である。
【図６】図６は、フィードバック制御部によるジャイロフィードバック制御を説明するための説明図である。
【図７】図７は、ローリング振幅調整部が調整するローリング振幅を説明するための説明図である。
【図８】図８は、ローリング振幅調整部によるローリング振幅の調整方法を説明するための説明図である。
【図９】図９は、コスト関数Ｊを示す図である。
【図１０】図１０は、ローリング振幅調整部によるコスト関数Ｊの最小化を示す図である。
【図１１】図１１は、ローリング振幅調整部によるローリング振幅調整処理の処理手順を示すフローチャートである。
【符号の説明】
【００２８】
１０    ピッチ腰関節
１１Ｒ    右ヨー股関節
１１Ｌ    左ヨー股関節
１２Ｒ    右ロール股関節
１２Ｌ    左ロール股関節
１３Ｒ    右ピッチ股関節
１３Ｌ    左ピッチ股関節
１４Ｒ    右ピッチ膝関節
１４Ｌ    左ピッチ膝関節
１５Ｒ    右ピッチ足首関節
１５Ｌ    左ピッチ足首関節
１６Ｒ    右ロール足首関節
１６Ｌ    左ロール足首関節
２０    胴体
３０Ｒ    右脚
３０Ｌ    左脚
４０    足裏
５０ａ〜５０ｄ，１１５1〜１１５m    力センサ
６０，１１１    ジャイロセンサ
１００    外部端末装置
１１０    ロボット
１１２    ジャイロセンサ制御部
１１３1〜１１３n    関節
１１４1〜１１４n    関節制御部
１１６1〜１１６m    力センサ制御部
１２１    通信インターフェース
１２２    メモリ
１２３    中央制御部
１２３ａ    動作生成部
１２３ｂ    コンプライアンス制御部
１２３ｃ    フィードバック制御部
１２３ｄ    ローリング振幅調整部
１２３ｅ    補正部
【発明を実施するための最良の形態】
【００２９】
以下に、本発明に係るロボット制御装置およびロボット制御方法の実施例を図面に基づいて詳細に説明する。なお、本実施例では、本発明を前後方向への移動がない歩行動作、すなわちローリング、リフティングおよびランディングをストライドなしで繰り返す動作の制御に適用した場合を中心に説明する。また、ここでは、２本脚のヒューマノイドロボットをロボットの例として取り上げるが、４本脚のロボットなど、その他のロボットに対して本発明を適用することとしてもよい。
【実施例】
【００３０】
まず、本実施例に係るロボットについて説明する。図１は、本実施例に係るロボットの概略図である。同図に示すように、このロボットは、胴体２０、胴体２０に備えられたジャイロセンサ６０、右脚３０Ｒおよび左脚３０Ｌの２本の脚を有する。また、各脚は６つの関節を有する。すなわち、各脚の自由度は６である。なお、関節の数は任意である。【００３１】
関節は、ピッチ腰関節１０、右ヨー股関節１１Ｒ、左ヨー股関節１１Ｌ、右ロール股関節１２Ｒ、左ロール股関節１２Ｌ、右ピッチ股関節１３Ｒ、左ピッチ股関節１３Ｌ、右ピッチ膝関節１４Ｒ、左ピッチ膝関節１４Ｌ、右ピッチ足首関節１５Ｒ、左ピッチ足首関節１５Ｌ、右ロール足首関節１６Ｒ、左ロール足首関節１６Ｌを含む。各関節には、モータ（図示せず）が組み込まれている。各関節のモータは、それぞれの関節の動きを制御する。【００３２】
ピッチ腰関節１０は、胴体２０の前後の動き（ピッチング）を制御する。右ヨー股関節１１Ｒおよび左ヨー股関節１１Ｌは、それぞれの脚の付け根部分におけるロボットの左右に回転する動き（ヨーイング）を生じさせる。【００３３】
右ロール股関節１２Ｒおよび左ロール股関節１２Ｌは、それぞれの脚の付け根部分におけるロボットの横向きの回転（ローリング）を生じさせる。右ピッチ股関節１３Ｒおよび左ピッチ股関節１３Ｌは、それぞれの脚の付け根部分におけるロボットの前後の回転（ピッチング）を生じさせる。【００３４】
また、右ピッチ膝関節１４Ｒおよび左ピッチ膝関節１４Ｌは、それぞれの膝部分におけるロボットの前後の動き（ピッチング）を生じさせる。右ピッチ足首関節１５Ｒおよび左ピッチ足首関節１５Ｌは、それぞれの足首部分におけるロボットの前後の動き（ピッチング）を生じさせる。右ロール足首関節１６Ｒおよび左ロール足首関節１６Ｌは、それぞれの足首部分におけるロボットの横向きの動き（ローリング）を生じさせる。【００３５】
また、それぞれの脚には、足裏が取り付けられている。図１には、左脚３０Ｌに取り付けられた足裏４０が示されている。それぞれの足裏には、４つの力センサが組み込まれている。なお、力センサの数は任意である。図１には、足裏４０に備えられた力センサ５０ａ〜５０ｄが示されている。これらの力センサ５０ａ〜５０ｄは、足裏４０が床面から受ける反力を測定する。力センサ５０ａ〜５０ｄにより測定された反力は、ロボットの動きのコンプライアンス制御およびフィードバック制御に用いられる。【００３６】
ジャイロセンサ６０は、横向き（ローリング）方向および前後（ピッチング）方向の胴体２０の回転角度を測定する。ジャイロセンサ６０により測定された回転角度は、ロボットの動きのフィードバック制御に用いられる。【００３７】
次に、本実施例に係るロボット制御システムの構成について説明する。図２は、本実施例に係るロボット制御システムの構成を示す機能ブロック図である。同図に示すように、このロボット制御システムは、外部端末装置１００とロボット１１０とを含む。【００３８】
外部端末装置１００は、ロボット１１０の動作を管理するオペレータにより操作されるパーソナルコンピュータなどである。この外部端末装置１００は、ロボット１１０との間で通信を行う。この通信は、さまざまな種類の情報の授受を含むものである。【００３９】
この外部端末装置１００は、ロボット１１０への指令情報などをロボット１１０に送信したり、ロボット１１０からロボット１１０の状態（姿勢や速度など）に係る情報などを受信する。ロボット１１０から得られた情報は、表示装置（図示せず）に表示される。【００４０】
ロボット１１０は、図１に示した２本脚のヒューマノイドロボットである。このロボット１１０は、ジャイロセンサ１１１、ジャイロセンサ制御部１１２、関節１１３1〜１１３n、関節制御部１１４1〜１１４n（ｎは自然数）、力センサ１１５1〜１１５m（ｍは自然数）、力センサ制御部１１６1〜１１６m、通信インターフェース１２１、メモリ１２２、中央制御部１２３を有する。【００４１】
ジャイロセンサ１１１は、図１に示したジャイロセンサ６０に対応する。このジャイロセンサ１１１は、ロボット１１０の胴体２０に備えられ、横向き（ローリング）方向および前後（ピッチング）方向の胴体２０の回転角度を測定する。ジャイロセンサ制御部１１２は、ジャイロセンサ１１１の機能を制御するとともに、ジャイロセンサ１１１により測定された回転角度の情報を中央制御部１２３に送信する。【００４２】
関節１１３1〜１１３nは、ロボット１１０のさまざまな関節を動かすものである。モータ（図示せず）がこれらの関節を駆動させる。関節には、図１で説明したピッチ腰関節１０、右ヨー股関節１１Ｒ、左ヨー股関節１１Ｌ、右ロール股関節１２Ｒ、左ロール股関節１２Ｌ、右ピッチ股関節１３Ｒ、左ピッチ股関節１３Ｌ、右ピッチ膝関節１４Ｒ、左ピッチ膝関節１４Ｌ、右ピッチ足首関節１５Ｒ、左ピッチ足首関節１５Ｌ、右ロール足首関節１６Ｒ、左ロール足首関節１６Ｌが含まれる。【００４３】
関節制御部１１４1〜１１４nは、各関節１１３1〜１１３nの動作を制御する。特に、関節制御部１１４1〜１１４nは、関節１１３1〜１１３nが所定の時間に、所定の角速度で所定の角度だけ回転するよう制御する。この角度、角速度、時間は中央制御部１２３により指定される。【００４４】
力センサ１１５1〜１１５mは、ロボット１１０の右脚および左脚の足裏に設けられる。この力センサ１１５1〜１１５mは、床面からの反力を測定する。また、この力センサ１１５1〜１１５mには、図１で説明した力センサ５０ａ〜５０ｄが含まれる。力センサ制御部１１６1〜１１６mは、力センサ１１５1〜１１５mの機能を制御するとともに、力センサ１１５1〜１１５mにより測定された反力の情報を中央制御部１２３に送信する。【００４５】
通信インターフェース１２１は、外部端末装置１００との間で通信を行う。この通信インターフェース１２１は、外部端末装置１００との間で無線通信および／または有線通信を行う。【００４６】
メモリ１２２は、さまざまな情報を記憶する。例えば、メモリ１２２は、外部端末装置１００から受信した情報および／または外部端末装置１００に送信される情報を記憶するとともに、中央制御部１２３によりなされた種々の演算の結果に係る情報を記憶する。【００４７】
中央制御部１２３は、ロボット１１０を全体制御する。この中央制御部１２３は、例えば、外部端末装置１００から受信した歩行動作指示情報を基にして、ロボット１１０が動作する際の各関節１１３1〜１１３nの回転開始時間、角速度、回転角などを算出し、その結果を関節制御部１１４1〜１１４nに送信する。【００４８】
また、中央制御部１２３は、外部端末装置１００から通信インターフェース１２１を介してロボット１１０の動作制御要求を受け付ける。動作制御要求とは、歩幅の変更要求や歩行方向の変更要求、あるいは歩行以外の動作の実行要求を含むものである。【００４９】
中央制御部１２３は、要求を実行する際には、要求された動作に対応する関節１１３1〜１１３nの回転開始時間、角速度、回転角などの情報を関節制御部１１４1〜１１４nに送信する。【００５０】
なお、ここでは、中央制御部１２３が関節１１３1〜１１３nの回転開始時間、角速度、回転角などさまざまなパラメータを算出することとしているが、外部端末装置１００がそれらを算出し、ロボットを制御する構成を採用することとしてもよい。このような構成を採用する場合には、外部端末装置１００は、回転開始時間、角速度、回転角などの算出に必要な情報をロボット１１０から受信し、受信した情報に基づいて各パラメータを算出する。関節制御部１１４1〜１１４nは、外部端末装置１００から算出結果の情報を受信し、受信した情報に基づいてロボット１１０の動作制御を行う。【００５１】
次に、中央制御部１２３が行うロボット制御処理について詳細に説明する。図３は、中央制御部１２３の構成を示す機能ブロック図である。同図に示すように、この中央制御部１２３は、動作生成部１２３ａと、コンプライアンス制御部１２３ｂと、フィードバック制御部１２３ｃと、ローリング振幅調整部１２３ｄと、補正部１２３ｅとを有する。【００５２】
動作生成部１２３ａは、外部端末装置１００から通信インターフェース１２１を介して受信したフレーム情報を基にして、ロボット１１０が動作する際の各関節１１３1〜１１３nの回転開始時間、角速度、回転角などの制御情報を算出し、補正部１２３ｅに出力する処理部である。ここで、フレーム情報とは、ロボット１１０が転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢の情報である。【００５３】
図４は、ローリング動作について動作生成部１２３ａが算出する回転角を示す図である。同図に示すように、動作生成部１２３ａは、区分的に線形な回転角を算出する。ただし、実際のローリング角度の時間変化を示す線は、関節における遅延のために、なだらかな曲線となる。【００５４】
また、この動作生成部１２３ａは、ロボット１１０がローリングフェーズ、リフティングフェーズ、着地（ランディング）フェーズのうちのどのフェーズにあるかを示すフェーズ情報をコンプライアンス制御部１２３ｂおよびフィードバック制御部１２３ｃに渡す。【００５５】
コンプライアンス制御部１２３ｂは、力センサ１１５1〜１１５mによって測定された力センサデータおよび動作生成部１２３ａからのフェーズ情報に基づいて着地動作などのコンプライアンス制御を行う処理部であり、コンプライアンス制御量を算出して補正部１２３ｅに出力する。【００５６】
図５は、コンプライアンス制御部１２３ｂによるコンプライアンス制御を説明するための説明図である。同図に示すように、コンプライアンス制御部１２３ｂは、ロボット１１０がローリングフェーズ、リフティングフェーズ、ランディングフェーズのいずれのフェーズにあるかに基づいてコンプライアンス制御を行う。【００５７】
フィードバック制御部１２３ｃは、ジャイロセンサ１１１によって測定されたジャイロセンサデータに基づくジャイロフィードバック制御（図６）および力センサ１１５1〜１１５mによって測定された力センサデータに基づくＺＭＰフィードバック制御を行う処理部であり、フィードバック制御量を算出して補正部１２３ｅに出力する。また、このフィードバック制御部１２３ｃは、左右のローリングが最大になる２つの時点でのみジャイロフィードバック制御を行う。【００５８】
ローリング振幅調整部１２３ｄは、動作生成部１２３ａがローリング動作について制御情報を生成する際にパラメータとして用いるローリング振幅をジャイロフィードバック制御が少なくなるように調整する処理部である。【００５９】
図７は、ローリング振幅調整部１２３ｄが調整するローリング振幅を説明するための説明図である。同図に示すように、ローリング動作では、リフティング動作からランディング動作に移る際に左右のローリングが最大、すなわちローリング振幅ａ１およびａ２となる。ローリング振幅調整部１２３ｄは、このローリング振幅ａ１およびａ２を調整することによって、左右のローリングが最大になる時点でのジャイロフィードバック制御をできるだけ少なくする。【００６０】
図８は、ローリング振幅調整部１２３ｄによるローリング振幅の調整方法を説明するための説明図である。同図は、ＺＭＰの横方向の移動量ＸZMPとその速度ＶZMPとの関係を示す図である。同図（ａ）は、ローリング振幅が調整されていない場合を示し、同図（ｂ）は、ローリング振幅が最適な値に調整されている場合を示す。【００６１】
同図（ａ）に示すように、ローリング振幅が調整されていない場合には、ＸZMP＝ａ１またはＸZMP＝ａ２の時点で行われるジャイロフィードバック制御により、ＸZMPには振動やオーバーシュートが発生する。これに対して、同図（ｂ）に示すように、ローリング振幅が最適に調整されている場合には、ＸZMP＝ａ１またはＸZMP＝ａ２の時点でジャイロフィードバック制御を行う必要がなくなる。【００６２】
具体的には、ローリング振幅調整部１２３ｄは、１サイクルのローリング動作ごとにジャイロフィードバック制御の量を表すコスト関数Ｊの値を計算し、Ｊの値が最小になるようにローリング振幅を調整する。コスト関数Ｊは以下のように定義される。
【数１】
2009025032.tif 000003
【００６３】
ここで、ＸavはＸZMPの平均値であり、ｔ1はローリングが最大となる時点であり、ｔ2はローリングが減り始める時点である。なお、ｔ1およびｔ2はローリング動作の周期に基づいて決定することができる。図９は、コスト関数Ｊを示す図であり、図１０は、ローリング振幅調整部１２３ｄによるコスト関数Ｊの最小化を示す図である。図１０において、αは１サイクルごとにローリング振幅調整部１２３ｄが算出する調整量であり、以下のように定義される。
【数２】
2009025032.tif 000004
【００６４】
ここで、ＶmaxはＺＭＰの横方向の移動速度の最大値であり、Ｖ(rollmax)はローリングが最大となる時点でのＺＭＰの横方向の移動速度である。また、βは実験的に求められる定数であり、デフォルト値は１である。【００６５】
このように、ローリング振幅調整部１２３ｄが、１サイクルのローリング動作ごとにコスト関数Ｊおよび調整量αを算出し、コスト関数Ｊの値が最小になるようにローリング振幅を調整することによって、左右のローリングが最大になる時点でのジャイロフィードバック制御を少なくすることができる。【００６６】
補正部１２３ｅは、動作生成部１２３ａが各関節１１３1〜１１３nに対して算出した回転開始時間、角速度、回転角などをコンプライアンス制御部１２３ｂおよびフィードバック制御部１２３ｃの出力で補正し、各関節１１３1〜１１３nのモータに対するコマンドを出力する処理部である。【００６７】
次に、ローリング振幅調整部１２３ｄによるローリング振幅調整処理の処理手順について説明する。図１１は、ローリング振幅調整部１２３ｄによるローリング振幅調整処理の処理手順を示すフローチャートである。同図に示すように、このローリング振幅調整処理では、ローリング振幅調整部１２３ｄは、力センサデータを用いてＸZMPを計算し（ステップＳ１）、コスト関数Ｊの値を計算する（ステップＳ２）。そして、ＶZMPを計算し（ステップＳ３）、調整量αを計算する（ステップＳ４）。【００６８】
そして、計算したＪの値が前回のローリング動作のサイクルで計算したコスト関数の値Ｊ0より小さいか否かを判定し（ステップＳ５）、小さくない場合には、αの符号を反転する（ステップＳ６）。なお、Ｊ0の初期値は最初のサイクルで計算したＪの値とする。【００６９】
そして、ローリング振幅ａ１およびａ２から調整量αを引いてローリング振幅ａ１およびａ２を修正し（ステップＳ７）、修正したローリング振幅ａ１およびａ２を動作生成部１２３ａへ通知する（ステップＳ８）。ローリング振幅ａ１およびａ２を通知された動作生成部１２３ａは、次のサイクル用に生成する制御情報にローリング振幅ａ１およびａ２の修正を反映する。【００７０】
そして、ローリング振幅調整部１２３ｄは、ロボット停止か否かを判定し（ステップＳ９）、ロボット停止でない場合には、今回計算したコスト関数Ｊの値をＪ0とし（ステップＳ１０）、次のサイクルでのローリング振幅調整のためにステップＳ１に戻る。一方、ロボット停止の場合には、処理を終了する。【００７１】
このように、ローリング振幅調整部１２３ｄがローリング動作の１サイクルごとにローリング振幅を調整することによって、ジャイロフィードバック制御を減らすことができる。【００７２】
上述してきたように、本実施例では、前後方向への移動がない歩行動作について、動作生成部１２３ａが制御情報を生成し、コンプライアンス制御部１２３ｂが力センサデータに基づいてコンプライアンス制御を行い、フィードバック制御部１２３ｃが力センサデータに基づいてＺＭＰフィードバック制御を行うとともに、左右のローリングが最大となる時点でジャイロセンサデータに基づいてジャイロフィードバック制御を行う。そして、ローリング振幅調整部１２３ｄがローリング動作の１サイクルごとにコスト関数Ｊの値と調整量αを計算してコスト関数Ｊが小さくなるようにローリング振幅を調整し、動作生成部１２３ａが次の動作サイクルの制御情報にローリング振幅の変更を反映させる。したがって、ジャイロフィードバック制御を少なくすることができ、ロボットの歩行動作を改善するとともに、モータの疲弊を少なくすることができる。
【産業上の利用可能性】
【００７３】
以上のように、本発明に係るロボット制御装置およびロボット制御方法は、ロボットの歩行制御に有用であり、特に、ロボットを動作させるために用いるモータの疲弊をできるだけ少なくしたい場合に適している。
【図１】
2009025032.tif 000005
【図２】
2009025032.tif 000006
【図３】
2009025032.tif 000007
【図４】
2009025032.tif 000008
【図５】
2009025032.tif 000009
【図６】
2009025032.tif 000010
【図７】
2009025032.tif 000011
【図８】
2009025032.tif 000012
【図９】
2009025032.tif 000013
【図１０】
2009025032.tif 000014
【図１１】
2009025032.tif 000015
【手続補正書】
【提出日】平成21年12月14日(2009.12.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ロボットの歩行を制御するロボット制御装置であって、
ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成する制御情報生成手段と、
前記制御情報生成手段により生成された制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行うフィードバック制御手段と、
前記制御情報生成手段が制御情報の生成に用いるローリング振幅を前記フィードバック制御手段によるジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するローリング振幅補正手段と、
を備えたことを特徴とするロボット制御装置。
【請求項２】
前記ローリング振幅補正手段は、ロボットの足裏に備え付けられた力センサにより測定された力センサデータに基づいてＺＭＰの横方向の移動量および移動速度を算出するＺＭＰ算出手段と、
前記ＺＭＰ算出手段により算出された移動速度に基づいて補正量を算出し、ローリング振幅を補正する補正量算出手段と、
を備えたことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記補正量算出手段は、前記移動速度の最大値と最大ローリング時点での移動速度との比率に基づいて補正量を算出することを特徴とする請求項２に記載のロボット制御装置。
【請求項４】
前記ローリング振幅補正手段は、ローリングが最大になった時点からローリングが減少するまでの間にＺＭＰが横方向に移動した量に基づいてジャイロフィードバック制御が少なくなるように補正することを特徴とする請求項１、２または３に記載のロボット制御装置。
【請求項５】
ロボットの歩行を制御するロボット制御方法であって、
ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成する制御情報生成ステップと、
前記制御情報生成ステップにより生成された制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行うフィードバック制御ステップと、
前記制御情報生成ステップが制御情報の生成に用いるローリング振幅を前記フィードバック制御ステップによるジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するローリング振幅補正ステップと、
を含んだことを特徴とするロボット制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの歩行を制御するロボット制御装置およびロボット制御方法に関し、特に、ロボットの歩行を改善するとともに、ロボットを歩行させるために用いるモータの疲弊を少なくすることができるロボット制御装置およびロボット制御方法に関するものである。
【背景技術】
【０００２】
近年、ヒューマノイドロボット、特にヒューマノイドロボットの歩行は数多くの研究者の注意を引いている。このヒューマノイドロボットの歩行に関する研究の大部分は、ＺＭＰ（Zero  Moment  Point）規範を用いている。このＺＭＰ規範は、支持多角形の内部にＺＭＰを留めるように制御する。このアプローチでは、ヒューマノイドロボットやロボットの周囲環境を正確にモデリングし、微分方程式を解くことになる。ところが、このモデリングはアンノウンな要素がある場合には難しくなる。さらに、微分方程式を解くのに時間がかかるため、リアルタイム制御は困難なものとなる。
【０００３】
別のアプローチとして、ＺＭＰ規範を用いない方法がある。例えば、ロボットの可動部の周期運動を利用して、ロボットの姿勢が安定するよう周期運動の位相を調節する従来技術がある（特許文献１を参照）。ここで、可動部とは、ロボットの脚や腕である。
【０００４】
また、ヒューマノイドロボットやロボットの周囲環境のモデリングを不要としつつ、ヒューマノイドロボットがさまざまな運動を安定して行うことができるよう効率的に制御する他の技術の開発も進められている。
【０００５】
【特許文献１】特開２００５−９６０６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ロボットの歩行制御では、ロボットの回転角に基づいたフィードバック制御が行われるが、フィードバック制御によるＺＭＰの振動やオーバーシュートを少なくすることによって、ロボットの歩行をより安定させることができる。したがって、フィードバック制御をできるだけ少なくすることが、ロボットを安定して歩行させる上で重要な課題となる。また、フィードバック制御によりＺＭＰの振動やオーバーシュートが頻繁に発生すると、歩行制御に用いられるモータを疲弊させるという問題もある。したがって、フィードバック制御をできるだけ少なくすることは、モータの疲弊を少なくするためにも重要となる。
【０００７】
本発明は、上記に鑑みてなされたものであって、ロボットの歩行を改善するとともに、ロボットを歩行させるために用いるモータの疲弊を少なくすることができるロボット制御装置およびロボット制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、ロボットの歩行を制御するロボット制御装置であって、ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成する制御情報生成手段と、前記制御情報生成手段により生成された制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行うフィードバック制御手段と、前記制御情報生成手段が制御情報の生成に用いるローリング振幅を前記フィードバック制御手段によるジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するローリング振幅補正手段と、を備えたことを特徴とする。
【０００９】
この請求項１の発明によれば、ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成し、生成した制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行い、制御情報の生成に用いるローリング振幅をジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するよう構成したので、ジャイロフィードバック制御で用いられるモータの切り換え使用を減らすことができる。
【００１０】
また、請求項２に係る発明は、上記発明において、前記ローリング振幅補正手段は、ロボットの足裏に備え付けられた力センサにより測定された力センサデータに基づいてＺＭＰの横方向の移動量および移動速度を算出するＺＭＰ算出手段と、前記ＺＭＰ算出手段により算出された移動速度に基づいて補正量を算出し、ローリング振幅を補正する補正量算出手段と、を備えたことを特徴とする。
【００１１】
この請求項２の発明によれば、ロボットの足裏に備え付けられた力センサにより測定された力センサデータに基づいてＺＭＰの横方向の移動量および移動速度を算出し、算出した移動速度に基づいて補正量を算出してローリング振幅を補正するよう構成したので、簡単にローリング振幅を補正することができる。
【００１２】
また、請求項３に係る発明は、上記発明において、前記補正量算出手段は、前記移動速度の最大値と最大ローリング時点での移動速度との比率に基づいて補正量を算出することを特徴とする。
【００１３】
この請求項３の発明によれば、移動速度の最大値と最大ローリング時点での移動速度との比率に基づいて補正量を算出するよう構成したので、ローリング振幅を適切に補正することができる。
【００１４】
また、請求項４に係る発明は、上記発明において、前記ローリング振幅補正手段は、ローリングが最大になった時点からローリングが減少するまでの間にＺＭＰが横方向に移動した量に基づいてジャイロフィードバック制御が少なくなるように補正することを特徴とする。
【００１５】
この請求項４の発明によれば、ローリングが最大になった時点からローリングが減少するまでの間にＺＭＰが横方向に移動した量に基づいてジャイロフィードバック制御が少なくなるように補正するよう構成したので、ジャイロフィードバック制御量の正確な値に基づいてローリング振幅を補正することができる。
【００１６】
また、請求項５に係る発明は、ロボットの歩行を制御するロボット制御方法であって、ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成する制御情報生成ステップと、前記制御情報生成ステップにより生成された制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行うフィードバック制御ステップと、前記制御情報生成ステップが制御情報の生成に用いるローリング振幅を前記フィードバック制御ステップによるジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するローリング振幅補正ステップと、を含んだことを特徴とする。
【００１７】
この請求項５の発明によれば、ロボットが転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢に基づいて制御情報を生成し、生成した制御情報に基づいて制御されるロボットに対して、左右へのローリングが最大になる二つの時点で、ロボットに備え付けられたジャイロセンサにより測定された回転角度に基づいてジャイロフィードバック制御を行い、制御情報の生成に用いるローリング振幅をジャイロフィードバック制御が少なくなるようにロボットが動作中に補正するよう構成したので、ジャイロフィードバック制御で用いられるモータの切り換え使用を減らすことができる。
【発明の効果】
【００１８】
本発明によれば、ジャイロフィードバック制御を少なくするので、ロボットの歩行を改善するという効果を奏する。また、ジャイロフィードバック制御で用いられるモータの切り換え使用を減らすので、モータの疲弊を少なくすることができる。
【００１９】
また、本発明によれば、簡単にローリング振幅を補正することができるので、ロボットの歩行中にローリング振幅を補正することができるという効果を奏する。
【００２０】
また、本発明によれば、ローリング振幅を適切に補正するので、ジャイロフィードバック制御を適切に減らすことができるという効果を奏する。
【００２１】
また、本発明によれば、ジャイロフィードバック制御量の正確な値に基づいてローリング振幅を補正するので、正確にローリング振幅を補正することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下に、本発明に係るロボット制御装置およびロボット制御方法の実施例を図面に基づいて詳細に説明する。なお、本実施例では、本発明を前後方向への移動がない歩行動作、すなわちローリング、リフティングおよびランディングをストライドなしで繰り返す動作の制御に適用した場合を中心に説明する。また、ここでは、２本脚のヒューマノイドロボットをロボットの例として取り上げるが、４本脚のロボットなど、その他のロボットに対して本発明を適用することとしてもよい。
【実施例】
【００２３】
まず、本実施例に係るロボットについて説明する。図１は、本実施例に係るロボットの概略図である。同図に示すように、このロボットは、胴体２０、胴体２０に備えられたジャイロセンサ６０、右脚３０Ｒおよび左脚３０Ｌの２本の脚を有する。また、各脚は６つの関節を有する。すなわち、各脚の自由度は６である。なお、関節の数は任意である。
【００２４】
関節は、ピッチ腰関節１０、右ヨー股関節１１Ｒ、左ヨー股関節１１Ｌ、右ロール股関節１２Ｒ、左ロール股関節１２Ｌ、右ピッチ股関節１３Ｒ、左ピッチ股関節１３Ｌ、右ピッチ膝関節１４Ｒ、左ピッチ膝関節１４Ｌ、右ピッチ足首関節１５Ｒ、左ピッチ足首関節１５Ｌ、右ロール足首関節１６Ｒ、左ロール足首関節１６Ｌを含む。各関節には、モータ（図示せず）が組み込まれている。各関節のモータは、それぞれの関節の動きを制御する。
【００２５】
ピッチ腰関節１０は、胴体２０の前後の動き（ピッチング）を制御する。右ヨー股関節１１Ｒおよび左ヨー股関節１１Ｌは、それぞれの脚の付け根部分におけるロボットの左右に回転する動き（ヨーイング）を生じさせる。
【００２６】
右ロール股関節１２Ｒおよび左ロール股関節１２Ｌは、それぞれの脚の付け根部分におけるロボットの横向きの回転（ローリング）を生じさせる。右ピッチ股関節１３Ｒおよび左ピッチ股関節１３Ｌは、それぞれの脚の付け根部分におけるロボットの前後の回転（ピッチング）を生じさせる。
【００２７】
また、右ピッチ膝関節１４Ｒおよび左ピッチ膝関節１４Ｌは、それぞれの膝部分におけるロボットの前後の動き（ピッチング）を生じさせる。右ピッチ足首関節１５Ｒおよび左ピッチ足首関節１５Ｌは、それぞれの足首部分におけるロボットの前後の動き（ピッチング）を生じさせる。右ロール足首関節１６Ｒおよび左ロール足首関節１６Ｌは、それぞれの足首部分におけるロボットの横向きの動き（ローリング）を生じさせる。
【００２８】
また、それぞれの脚には、足裏が取り付けられている。図１には、左脚３０Ｌに取り付けられた足裏４０が示されている。それぞれの足裏には、４つの力センサが組み込まれている。なお、力センサの数は任意である。図１には、足裏４０に備えられた力センサ５０ａ〜５０ｄが示されている。これらの力センサ５０ａ〜５０ｄは、足裏４０が床面から受ける反力を測定する。力センサ５０ａ〜５０ｄにより測定された反力は、ロボットの動きのコンプライアンス制御およびフィードバック制御に用いられる。
【００２９】
ジャイロセンサ６０は、横向き（ローリング）方向および前後（ピッチング）方向の胴体２０の回転角度を測定する。ジャイロセンサ６０により測定された回転角度は、ロボットの動きのフィードバック制御に用いられる。
【００３０】
次に、本実施例に係るロボット制御システムの構成について説明する。図２は、本実施例に係るロボット制御システムの構成を示す機能ブロック図である。同図に示すように、このロボット制御システムは、外部端末装置１００とロボット１１０とを含む。
【００３１】
外部端末装置１００は、ロボット１１０の動作を管理するオペレータにより操作されるパーソナルコンピュータなどである。この外部端末装置１００は、ロボット１１０との間で通信を行う。この通信は、さまざまな種類の情報の授受を含むものである。
【００３２】
この外部端末装置１００は、ロボット１１０への指令情報などをロボット１１０に送信したり、ロボット１１０からロボット１１０の状態（姿勢や速度など）に係る情報などを受信する。ロボット１１０から得られた情報は、表示装置（図示せず）に表示される。
【００３３】
ロボット１１０は、図１に示した２本脚のヒューマノイドロボットである。このロボット１１０は、ジャイロセンサ１１１、ジャイロセンサ制御部１１２、関節１１３1〜１１３n、関節制御部１１４1〜１１４n（ｎは自然数）、力センサ１１５1〜１１５m（ｍは自然数）、力センサ制御部１１６1〜１１６m、通信インターフェース１２１、メモリ１２２、中央制御部１２３を有する。
【００３４】
ジャイロセンサ１１１は、図１に示したジャイロセンサ６０に対応する。このジャイロセンサ１１１は、ロボット１１０の胴体２０に備えられ、横向き（ローリング）方向および前後（ピッチング）方向の胴体２０の回転角度を測定する。ジャイロセンサ制御部１１２は、ジャイロセンサ１１１の機能を制御するとともに、ジャイロセンサ１１１により測定された回転角度の情報を中央制御部１２３に送信する。
【００３５】
関節１１３1〜１１３nは、ロボット１１０のさまざまな関節を動かすものである。モータ（図示せず）がこれらの関節を駆動させる。関節には、図１で説明したピッチ腰関節１０、右ヨー股関節１１Ｒ、左ヨー股関節１１Ｌ、右ロール股関節１２Ｒ、左ロール股関節１２Ｌ、右ピッチ股関節１３Ｒ、左ピッチ股関節１３Ｌ、右ピッチ膝関節１４Ｒ、左ピッチ膝関節１４Ｌ、右ピッチ足首関節１５Ｒ、左ピッチ足首関節１５Ｌ、右ロール足首関節１６Ｒ、左ロール足首関節１６Ｌが含まれる。
【００３６】
関節制御部１１４1〜１１４nは、各関節１１３1〜１１３nの動作を制御する。特に、関節制御部１１４1〜１１４nは、関節１１３1〜１１３nが所定の時間に、所定の角速度で所定の角度だけ回転するよう制御する。この角度、角速度、時間は中央制御部１２３により指定される。
【００３７】
力センサ１１５1〜１１５mは、ロボット１１０の右脚および左脚の足裏に設けられる。この力センサ１１５1〜１１５mは、床面からの反力を測定する。また、この力センサ１１５1〜１１５mには、図１で説明した力センサ５０ａ〜５０ｄが含まれる。力センサ制御部１１６1〜１１６mは、力センサ１１５1〜１１５mの機能を制御するとともに、力センサ１１５1〜１１５mにより測定された反力の情報を中央制御部１２３に送信する。
【００３８】
通信インターフェース１２１は、外部端末装置１００との間で通信を行う。この通信インターフェース１２１は、外部端末装置１００との間で無線通信および／または有線通信を行う。
【００３９】
メモリ１２２は、さまざまな情報を記憶する。例えば、メモリ１２２は、外部端末装置１００から受信した情報および／または外部端末装置１００に送信される情報を記憶するとともに、中央制御部１２３によりなされた種々の演算の結果に係る情報を記憶する。
【００４０】
中央制御部１２３は、ロボット１１０を全体制御する。この中央制御部１２３は、例えば、外部端末装置１００から受信した歩行動作指示情報を基にして、ロボット１１０が動作する際の各関節１１３1〜１１３nの回転開始時間、角速度、回転角などを算出し、その結果を関節制御部１１４1〜１１４nに送信する。
【００４１】
また、中央制御部１２３は、外部端末装置１００から通信インターフェース１２１を介してロボット１１０の動作制御要求を受け付ける。動作制御要求とは、歩幅の変更要求や歩行方向の変更要求、あるいは歩行以外の動作の実行要求を含むものである。
【００４２】
中央制御部１２３は、要求を実行する際には、要求された動作に対応する関節１１３1〜１１３nの回転開始時間、角速度、回転角などの情報を関節制御部１１４1〜１１４nに送信する。
【００４３】
なお、ここでは、中央制御部１２３が関節１１３1〜１１３nの回転開始時間、角速度、回転角などさまざまなパラメータを算出することとしているが、外部端末装置１００がそれらを算出し、ロボットを制御する構成を採用することとしてもよい。このような構成を採用する場合には、外部端末装置１００は、回転開始時間、角速度、回転角などの算出に必要な情報をロボット１１０から受信し、受信した情報に基づいて各パラメータを算出する。関節制御部１１４1〜１１４nは、外部端末装置１００から算出結果の情報を受信し、受信した情報に基づいてロボット１１０の動作制御を行う。
【００４４】
次に、中央制御部１２３が行うロボット制御処理について詳細に説明する。図３は、中央制御部１２３の構成を示す機能ブロック図である。同図に示すように、この中央制御部１２３は、動作生成部１２３ａと、コンプライアンス制御部１２３ｂと、フィードバック制御部１２３ｃと、ローリング振幅調整部１２３ｄと、補正部１２３ｅとを有する。
【００４５】
動作生成部１２３ａは、外部端末装置１００から通信インターフェース１２１を介して受信したフレーム情報を基にして、ロボット１１０が動作する際の各関節１１３1〜１１３nの回転開始時間、角速度、回転角などの制御情報を算出し、補正部１２３ｅに出力する処理部である。ここで、フレーム情報とは、ロボット１１０が転倒することなく単独で立っている参照姿勢を少なくとも含む複数の異なる時点の姿勢の情報である。
【００４６】
図４は、ローリング動作について動作生成部１２３ａが算出する回転角を示す図である。同図に示すように、動作生成部１２３ａは、区分的に線形な回転角を算出する。ただし、実際のローリング角度の時間変化を示す線は、関節における遅延のために、なだらかな曲線となる。
【００４７】
また、この動作生成部１２３ａは、ロボット１１０がローリングフェーズ、リフティングフェーズ、着地（ランディング）フェーズのうちのどのフェーズにあるかを示すフェーズ情報をコンプライアンス制御部１２３ｂおよびフィードバック制御部１２３ｃに渡す。
【００４８】
コンプライアンス制御部１２３ｂは、力センサ１１５1〜１１５mによって測定された力センサデータおよび動作生成部１２３ａからのフェーズ情報に基づいて着地動作などのコンプライアンス制御を行う処理部であり、コンプライアンス制御量を算出して補正部１２３ｅに出力する。
【００４９】
図５は、コンプライアンス制御部１２３ｂによるコンプライアンス制御を説明するための説明図である。同図に示すように、コンプライアンス制御部１２３ｂは、ロボット１１０がローリングフェーズ、リフティングフェーズ、ランディングフェーズのいずれのフェーズにあるかに基づいてコンプライアンス制御を行う。
【００５０】
フィードバック制御部１２３ｃは、ジャイロセンサ１１１によって測定されたジャイロセンサデータに基づくジャイロフィードバック制御（図６）および力センサ１１５1〜１１５mによって測定された力センサデータに基づくＺＭＰフィードバック制御を行う処理部であり、フィードバック制御量を算出して補正部１２３ｅに出力する。また、このフィードバック制御部１２３ｃは、左右のローリングが最大になる２つの時点でのみジャイロフィードバック制御を行う。
【００５１】
ローリング振幅調整部１２３ｄは、動作生成部１２３ａがローリング動作について制御情報を生成する際にパラメータとして用いるローリング振幅をジャイロフィードバック制御が少なくなるように調整する処理部である。
【００５２】
図７は、ローリング振幅調整部１２３ｄが調整するローリング振幅を説明するための説明図である。同図に示すように、ローリング動作では、リフティング動作からランディング動作に移る際に左右のローリングが最大、すなわちローリング振幅ａ１およびａ２となる。ローリング振幅調整部１２３ｄは、このローリング振幅ａ１およびａ２を調整することによって、左右のローリングが最大になる時点でのジャイロフィードバック制御をできるだけ少なくする。
【００５３】
図８は、ローリング振幅調整部１２３ｄによるローリング振幅の調整方法を説明するための説明図である。同図は、ＺＭＰの横方向の移動量ＸZMPとその速度ＶZMPとの関係を示す図である。同図（ａ）は、ローリング振幅が調整されていない場合を示し、同図（ｂ）は、ローリング振幅が最適な値に調整されている場合を示す。
【００５４】
同図（ａ）に示すように、ローリング振幅が調整されていない場合には、ＸZMP＝ａ１またはＸZMP＝ａ２の時点で行われるジャイロフィードバック制御により、ＸZMPには振動やオーバーシュートが発生する。これに対して、同図（ｂ）に示すように、ローリング振幅が最適に調整されている場合には、ＸZMP＝ａ１またはＸZMP＝ａ２の時点でジャイロフィードバック制御を行う必要がなくなる。
【００５５】
具体的には、ローリング振幅調整部１２３ｄは、１サイクルのローリング動作ごとにジャイロフィードバック制御の量を表すコスト関数Ｊの値を計算し、Ｊの値が最小になるようにローリング振幅を調整する。コスト関数Ｊは以下のように定義される。
【数１】
2009025032.tif 000016
【００５６】
ここで、ＸavはＸZMPの平均値であり、ｔ1はローリングが最大となる時点であり、ｔ2はローリングが減り始める時点である。なお、ｔ1およびｔ2はローリング動作の周期に基づいて決定することができる。図９は、コスト関数Ｊを示す図であり、図１０は、ローリング振幅調整部１２３ｄによるコスト関数Ｊの最小化を示す図である。図１０において、αは１サイクルごとにローリング振幅調整部１２３ｄが算出する調整量であり、以下のように定義される。
【数２】
2009025032.tif 000017
【００５７】
ここで、ＶmaxはＺＭＰの横方向の移動速度の最大値であり、Ｖ(rollmax)はローリングが最大となる時点でのＺＭＰの横方向の移動速度である。また、βは実験的に求められる定数であり、デフォルト値は１である。
【００５８】
このように、ローリング振幅調整部１２３ｄが、１サイクルのローリング動作ごとにコスト関数Ｊおよび調整量αを算出し、コスト関数Ｊの値が最小になるようにローリング振幅を調整することによって、左右のローリングが最大になる時点でのジャイロフィードバック制御を少なくすることができる。
【００５９】
補正部１２３ｅは、動作生成部１２３ａが各関節１１３1〜１１３nに対して算出した回転開始時間、角速度、回転角などをコンプライアンス制御部１２３ｂおよびフィードバック制御部１２３ｃの出力で補正し、各関節１１３1〜１１３nのモータに対するコマンドを出力する処理部である。
【００６０】
次に、ローリング振幅調整部１２３ｄによるローリング振幅調整処理の処理手順について説明する。図１１は、ローリング振幅調整部１２３ｄによるローリング振幅調整処理の処理手順を示すフローチャートである。同図に示すように、このローリング振幅調整処理では、ローリング振幅調整部１２３ｄは、力センサデータを用いてＸZMPを計算し（ステップＳ１）、コスト関数Ｊの値を計算する（ステップＳ２）。そして、ＶZMPを計算し（ステップＳ３）、調整量αを計算する（ステップＳ４）。
【００６１】
そして、計算したＪの値が前回のローリング動作のサイクルで計算したコスト関数の値Ｊ0より小さいか否かを判定し（ステップＳ５）、小さくない場合には、αの符号を反転する（ステップＳ６）。なお、Ｊ0の初期値は最初のサイクルで計算したＪの値とする。
【００６２】
そして、ローリング振幅ａ１およびａ２から調整量αを引いてローリング振幅ａ１およびａ２を修正し（ステップＳ７）、修正したローリング振幅ａ１およびａ２を動作生成部１２３ａへ通知する（ステップＳ８）。ローリング振幅ａ１およびａ２を通知された動作生成部１２３ａは、次のサイクル用に生成する制御情報にローリング振幅ａ１およびａ２の修正を反映する。
【００６３】
そして、ローリング振幅調整部１２３ｄは、ロボット停止か否かを判定し（ステップＳ９）、ロボット停止でない場合には、今回計算したコスト関数Ｊの値をＪ0とし（ステップＳ１０）、次のサイクルでのローリング振幅調整のためにステップＳ１に戻る。一方、ロボット停止の場合には、処理を終了する。
【００６４】
このように、ローリング振幅調整部１２３ｄがローリング動作の１サイクルごとにローリング振幅を調整することによって、ジャイロフィードバック制御を減らすことができる。
【００６５】
上述してきたように、本実施例では、前後方向への移動がない歩行動作について、動作生成部１２３ａが制御情報を生成し、コンプライアンス制御部１２３ｂが力センサデータに基づいてコンプライアンス制御を行い、フィードバック制御部１２３ｃが力センサデータに基づいてＺＭＰフィードバック制御を行うとともに、左右のローリングが最大となる時点でジャイロセンサデータに基づいてジャイロフィードバック制御を行う。そして、ローリング振幅調整部１２３ｄがローリング動作の１サイクルごとにコスト関数Ｊの値と調整量αを計算してコスト関数Ｊが小さくなるようにローリング振幅を調整し、動作生成部１２３ａが次の動作サイクルの制御情報にローリング振幅の変更を反映させる。したがって、ジャイロフィードバック制御を少なくすることができ、ロボットの歩行動作を改善するとともに、モータの疲弊を少なくすることができる。
【産業上の利用可能性】
【００６６】
以上のように、本発明に係るロボット制御装置およびロボット制御方法は、ロボットの歩行制御に有用であり、特に、ロボットを動作させるために用いるモータの疲弊をできるだけ少なくしたい場合に適している。
【図面の簡単な説明】
【００６７】
【図１】図１は、本実施例に係るロボットの概略図である。
【図２】図２は、本実施例に係るロボット制御システムの構成を示す機能ブロック図である。
【図３】図３は、中央制御部の構成を示す機能ブロック図である。
【図４】図４は、ローリング動作について動作生成部が算出する回転角を示す図である。
【図５】図５は、コンプライアンス制御部によるコンプライアンス制御を説明するための説明図である。
【図６】図６は、フィードバック制御部によるジャイロフィードバック制御を説明するための説明図である。
【図７】図７は、ローリング振幅調整部が調整するローリング振幅を説明するための説明図である。
【図８】図８は、ローリング振幅調整部によるローリング振幅の調整方法を説明するための説明図である。
【図９】図９は、コスト関数Ｊを示す図である。
【図１０】図１０は、ローリング振幅調整部によるコスト関数Ｊの最小化を示す図である。
【図１１】図１１は、ローリング振幅調整部によるローリング振幅調整処理の処理手順を示すフローチャートである。
【符号の説明】
【００６８】
１０    ピッチ腰関節
１１Ｒ    右ヨー股関節
１１Ｌ    左ヨー股関節
１２Ｒ    右ロール股関節
１２Ｌ    左ロール股関節
１３Ｒ    右ピッチ股関節
１３Ｌ    左ピッチ股関節
１４Ｒ    右ピッチ膝関節
１４Ｌ    左ピッチ膝関節
１５Ｒ    右ピッチ足首関節
１５Ｌ    左ピッチ足首関節
１６Ｒ    右ロール足首関節
１６Ｌ    左ロール足首関節
２０    胴体
３０Ｒ    右脚
３０Ｌ    左脚
４０    足裏
５０ａ〜５０ｄ，１１５1〜１１５m    力センサ
６０，１１１    ジャイロセンサ
１００    外部端末装置
１１０    ロボット
１１２    ジャイロセンサ制御部
１１３1〜１１３n    関節
１１４1〜１１４n    関節制御部
１１６1〜１１６m    力センサ制御部
１２１    通信インターフェース
１２２    メモリ
１２３    中央制御部
１２３ａ    動作生成部
１２３ｂ    コンプライアンス制御部
１２３ｃ    フィードバック制御部
１２３ｄ    ローリング振幅調整部
１２３ｅ    補正部
【国際調査報告】
2009025032.tif 000018
2009025032.tif 000019