(57)【要約】【課題】シンプルな動作で上肢の動作に起因する体幹の揺れを抑制し，動作の安定化を図るロボットを提供すること。【解決手段】まず，ロボットの両腕部の関節角を取得する（Ｓ１）。すなわち，把持腕の関節角と非把持腕の関節角とをそれぞれ取得する。次に，それらの関節角から上半身の重心位置のずれ量を取得する。次に，上半身の重心位置のずれ量を基に非把持腕の補正角を取得する（Ｓ３）。すなわち，上半身の重心が目標重心位置上に移動することが可能な非把持腕の関節角を取得する。そして，非把持腕の関節を補正角に従って微小変位させる（Ｓ４）。これを繰り返すことにより，常に上半身の重心位置を目標重心位置上に維持することができ，歩行動作が安定する。【選択図】            図４
2006321012.tif 000002
【特許請求の範囲】
【請求項１】
一方の端部が体幹に連結された上肢を有するロボットにおいて，
前記ロボットの体幹を含む上半身の重心位置を取得する重心位置取得部と，
前記ロボットの上半身の重心位置の目標位置を記憶する目標位置記憶部と，
前記目標位置記憶部にて記憶された目標位置と，前記重心位置取得部にて取得された重心位置とのずれ量を算出する重心ずれ量算出部と，
前記重心ずれ量取得部にて算出されたずれ量が所定値以下となるように前記上肢を駆動する駆動部とを備えることを特徴とするロボット。
【請求項２】
請求項１に記載するロボットにおいて，
前記上肢は，１つ以上の関節部を有し，
前記駆動部は，前記関節部を動かして前記重心位置を移動させることを特徴とするロボット。
【請求項３】
請求項１または請求項２に記載するロボットにおいて，
前記上肢を２つ以上有し，
前記駆動部は，これらの上肢のうち，少なくとも１つの上肢を駆動して前記重心位置を移動させることを特徴とするロボット。
【請求項４】
請求項１から請求項３のいずれか１つに記載するロボットにおいて，
前記上肢の他端が負荷物を把持することが可能な構造を備えていることを特徴とするロボット。
【請求項５】
一方の端部が体幹に連結された上肢を有するロボットの制御方法において，
前記ロボットの体幹を含む上半身の重心位置を取得する重心位置取得ステップと，
前記重心位置取得ステップにて取得された重心位置と，前記ロボットの上半身の重心位置の目標位置とのずれ量を算出する重心ずれ量算出ステップと，
前記重心ずれ量算出ステップにて算出されたずれ量が所定値以下となるように前記上肢を駆動する駆動ステップとを含むことを特徴とするロボットの制御方法。
【請求項６】
請求項５に記載するロボットの制御方法において，
前記駆動ステップでは，少なくとも１つの上肢にて負荷物を把持した際に，負荷物を把持していない上肢を動作させることを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，体幹に対して上肢が揺動可能に連結されているロボットに関する。さらに詳細には，上肢の動作に起因する体幹の揺れを抑制し，動作の安定化を図るロボットに関するものである。
【背景技術】
【０００２】
従来から，上肢を動作させながら歩行する歩行ロボットが開示されている。この種のロボットでは，一般に各肢体の関節の動きを複数個のアクチュエータで実現している。ロボットの姿勢を変化させる方法としては，例えば，体幹，左足先，右足先，左手先，右手先の各位置を時系列に指示する歩容データを作成しておき，その歩容データに従って，体幹，両足，両腕の相対的姿勢を経時的に変化させることが行われている（例えば，特許文献１）。すなわち，あらかじめ記憶された足先および手先の軌跡に追従するように各アクチュエータを動作させる。
【０００３】
また，ロボットの体幹には，体幹の姿勢角や加速度を検出するセンサ群が備えられている。また，ロボットの各関節は，エンコーダ付きのモータを備えてられている。これらのセンサによってロボットの姿勢および上半身の重心位置を計測することが可能である。通常，上半身の重心位置が常に所定の範囲内（例えば，体幹の中心からの距離が１０ｍｍ以内）に位置するような歩容データが作成され，その歩容データに従って各関節のアクチュエータを制御している。
【０００４】
また，歩行ロボットは，歩容データに従って歩行動作を行ったとしても，路面上の障害等の外乱によって姿勢が不安定になることがある。そこで，例えば足平の絶対座標における傾斜角度から重心位置を推定し，重心位置が目標重心位置になるように各関節角を制御するロボットが開示されている（例えば，特許文献２）。
【特許文献１】特開２００５−７４９６号公報
【特許文献２】特開平５−３０５５８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら，前記した従来のロボットでは，次のような問題があった。すなわち，ロボットの上肢の動作によっては上半身の重心が変位し，歩行が不安定になることがある。例えば，ロボットが一方の上肢で負荷物を把持すると，上半身の重心位置がその負荷物を把持した方の上肢側にずれる。また，ロボットが背負い鞄のようなもので負荷物を背負うと，上半身の重心位置が後方にずれる。そのため，上半身のバランスが崩れ，歩行動作が不安定となる。
【０００６】
さらに，上半身の動作に起因してバランスを崩した場合，足平の傾斜角度からは正確な重心位置を推定することができない。つまり，足平が水平状態で重心が変位することもありえるため，正確な重心位置が求まらない。
【０００７】
また，重心位置が一方の上肢側にずれた場合，ロボットの体幹を反対側に捩じる等，体幹を動作させることで重心を所定の位置に戻すことが考えられる。しかし，歩行動作中では，体幹を捩じると却って歩行動作が不安定となる。また，体幹を捩じる動作自体が複雑であり，制御が困難となる。
【０００８】
本発明は，前記した従来のロボットが有する問題点を解決するためになされたものである。すなわちその課題とするところは，シンプルな動作で上肢の動作に起因する体幹の揺れを抑制し，動作の安定化を図るロボットを提供することにある。
【課題を解決するための手段】
【０００９】
この課題の解決を目的としてなされたロボットは，一方の端部が体幹に連結された上肢を有するロボットであって，ロボットの体幹を含む上半身の重心位置を取得する重心位置取得部と，ロボットの上半身の重心位置の目標位置を記憶する目標位置記憶部と，目標位置記憶部にて記憶された目標位置と，重心位置取得部にて取得された重心位置とのずれ量を算出する重心ずれ量算出部と，重心ずれ量取得部にて算出されたずれ量が所定値以下となるように上肢を駆動する駆動部とを備えることを特徴としている。
【００１０】
すなわち，本発明のロボットは，重心位置取得部にてロボットの上半身の重心位置を取得し（重心位置取得ステップ），重心ずれ量取得部にて上半身の重心位置と目標重心位置とのずれ量を取得（重心ずれ量取得ステップ）している。ここでいう目標重心位置とは，例えば負荷物を把持せずに直立したときの重心位置が該当する。この他，ロボットの上半身について，良好なバランスが維持できる位置であれば適用可能である。この目標重心位置は，あらかじめ目標目標位置記憶部に記憶されている。上半身の重心位置は，上半身の各関節の関節角を基に算出することができる。あるいは，各関節部の関節角に対応する重心位置が記憶されたデータベースを用意し，各関節角や負荷物の重量をパラメータとしてそのデータベースから取得することもできる。
【００１１】
そして，駆動部にて，重心位置のずれ量が所定値以下となるように，上肢を駆動（駆動ステップ）している。すなわち，上肢を動かすことによってロボットの上半身の重心位置を移動させ，その重心位置を目標重心位置に近づける。上肢を駆動するために必要な各関節部の関節角は，重心位置のずれ量に応じて計算によって取得してもよいし，データベースから取得してもよい。これにより，上肢にて負荷物を把持したり躓く等の外乱が生じたとしても，上半身の重心位置を常に目標重心位置に置くことができる。そのため，動作が安定する。さらには，重心位置の制御を上肢の動作によってのみ行っている。つまり，上肢の姿勢を調節する簡易な動作によって動作の安定が図られる。
【００１２】
また，本発明のロボットの上肢は，１つ以上の関節部を有し，駆動部は，その関節部を動かして重心位置を移動させることとするとよりよい。すなわち，上肢の関節部を動かすことで，重心位置の移動をより精密に定めることができる。
【００１３】
また，本発明のロボットは，２つ以上の上肢を有し，駆動部は，これらの上肢のうち，少なくとも１つの上肢を駆動して重心位置を移動させることとするとよりよい。すなわち，適切な上肢を選択的に動かすことで，重心位置の移動をより精密に定めることができる。
【００１４】
また，本発明のロボットの上肢の他端は，負荷物を把持することが可能な構造を備えており，少なくとも１つの上肢で負荷物を把持した際に，負荷物を把持していない上肢を動作させることにより重心位置を移動させることとするとよりよい。
【００１５】
すなわち，負荷物を把持している上肢を動作させると，体幹の揺れが大きくなり，歩行動作に乱れが生じ易い。そこで，負荷物を把持していない側の上肢のみを動作させる。つまり，負荷物を把持していない上肢の動作だけでロボットのバランスをとる。これにより，より簡易な動作で，より確実に歩行動作の安定化を図ることができる。
【発明の効果】
【００１６】
本発明によれば，ロボットの上半身の重心位置が所定の目標重心位置からずれた場合に，上肢のみを動作させることでその重心位置を目標重心位置上に戻している。従って，シンプルな動作で上肢の動作に起因する体幹の揺れを抑制し，動作の安定化を図るロボットが実現されている。
【発明を実施するための最良の形態】
【００１７】
以下，本発明に係るロボットを具体化した実施の形態について図面を基に説明する。本実施の形態は，上肢で負荷物を把持しつつ歩行することが可能な２足歩行ロボットに本発明を適用したものである。
【００１８】
本形態の歩行ロボットは，胴体（体幹）と，頭部と，２本の脚部（下肢）と，２本の腕部（上肢）とを備えた２足歩行ロボットである。図１は，本形態の歩行ロボット１００における各関節の構成を示している。図１中，ｘ軸は歩行ロボット１００の前後方向（進行方向）を，ｙ軸は歩行ロボット１００の左右方向を，ｚ軸は歩行ロボット１００の上下方向（高さ方向）をそれぞれ意味している。歩行ロボット１００は，左右の股関節にそれぞれ２軸，腰部に１軸，左右の膝関節にそれぞれ１軸，左右の足首関節にそれぞれ２軸，左右の肩関節にそれぞれ２軸，左右の肘関節にそれぞれ１軸の自由度を持っている。各関節は，エンコーダ付きのモータを備えており，関節角を計測するとともに関節角を調節することができる。
【００１９】
具体的に，中央の関節１７および左右の関節（股関節）１，２，６，７によって腰部を構成している。また，関節（膝関節）３が大腿リンクを介して関節２に，さらに関節（足首関節）４，５が下腿リンクを介して関節３にそれぞれ連結されて左脚部を構成し，関節４，５の下には足平部１９が設けられている。また，関節（膝関節）８が大腿リンクを介して関節７に，さらに関節（足首関節）９，１０が下腿リンクを介して関節８にそれぞれ連結されて右脚部を構成し，関節９，１０の下には足平部２０が設けられている。
【００２０】
また，腰部中央の関節１７がリンクを介して頭部１８に連結されている。また，頭部１８に連結するリンクに直交配置されるリンクに，関節（肩関節）１１，１２，１４，１５が連結されている。また，関節（肘関節）１３が上腕リンクを介して関節１１，１２に，さらに関節１３が前腕リンクを介して手部２１にそれぞれ連結されて左腕部を構成している。また，関節（肘関節）１６が上腕リンクを介して関節１４，１５に，さらに関節１６が前腕リンクを介して手部２２にそれぞれ連結されて右腕部を構成している。
【００２１】
また，腰部の中央には，胴体の加速度を検出する加速度センサや姿勢角（ｚ軸方向に対する傾き）を検出するジャイロセンサからなる姿勢制御センサ群２５が設けられている。
【００２２】
続いて，本形態の歩行ロボット１００の動作制御について説明する。歩行ロボット１００は，図２に示すようにロボットの動作（例えば，歩行動作，負荷物を把持する動作，さらにはその負荷物を高い位置に掲げる動作など）を指示する歩容データを作成する動作指示生成装置３０と，各関節の関節角を調節する関節角群計算装置４１と，算出された関節角に従って各関節を稼動するアクチュエータ制御装置４２と，上半身の重心の微小変位量を算出する重心位置変位量算出装置４４とを有している。
【００２３】
動作指示生成装置３０は，動作の基本となる歩容データを作成する機能を有している。また，動作指示生成装置３０は，足先位置指令値生成部３１と，体幹位置指令値生成部３２と，手先位置指令値生成部３３と，歩容データ記憶部３４とを備えている。動作指示生成装置３０には，動作の選択信号や開始／停止信号が入力される。また，動作指示生成装置３０からは，足先位置や手先位置に関する情報，すなわち歩容データが関節角群計算装置４１に出力される。この出力情報を基にロボットの機械系が駆動される。
【００２４】
足先位置指令値生成部３１には，足先の軌道が記憶されている。すなわち，両足先の３次元座標（ｘ，ｙ，ｚ）と時間との関係を示す経時的な足先軌道データがあらかじめ記憶されている。そして，足先軌道データを基に，右足先の位置の指令値Ｒｆｓ（ｔ）と左足先の位置の指令値Ｌｆｓ（ｔ）とを作成する。指令値Ｒｆｓ（ｔ），Ｌｆｓ（ｔ）は，足先位置Ｒｆｓ，Ｌｆｓと時間ｔとの関係を示すデータ，すなわち足先位置の経時的変化の内容が記憶されたデータである。指令値Ｒｆｓ（ｔ），Ｌｆｓ（ｔ）は，体幹位置指令値生成部３２および歩容データ記憶部３４に出力される。
【００２５】
体幹位置指令値生成部３２では，足先の位置情報（指令値Ｒｆｓ，Ｌｆｓ）を基に，目標ＺＭＰ（ゼロ・モーメント・ポイント）位置を計算する。目標ＺＭＰ位置は，接地足の足平内に常にあるように計算される。目標ＺＭＰ位置は，２次元の座標（ｘ，ｙ）で表現され，ｚ座標をゼロとする。そして，目標ＺＭＰ位置の経時的変化の内容が記憶されたＺＭＰ軌道データが作成される。そして，このＺＭＰ軌道データに従って歩容ロボット１００が動作するように，体幹の基準位置の指令値Ｗ（ｔ）を作成する。指令値Ｗ（ｔ）は，体幹の基準位置Ｗと時間ｔとの関係を示すデータ，すなわち基準位置の経時的変化の内容が記憶されたデータである。指令値Ｗ（ｔ）は，歩容データ記憶部３４に出力される。
【００２６】
なお，指令値Ｗ（ｔ）を計算する手法の詳細については，本出願人によって出願された特願２００３−１７１９６７号，あるいは特願２００３−３５４８６６号に記載されている。
【００２７】
手先位置指令値生成部３３には，手先の軌道が記憶されている。すなわち，両手先の３次元座標（ｘ，ｙ，ｚ）と時間との関係を示す経時的な手先軌道データがあらかじめ記憶されている。そして，手先軌道データを基に，右手先の位置の指令値Ｒｈｓ（ｔ）と左手先の位置の指令値Ｌｈｓ（ｔ）とを作成する。指令値Ｒｈｓ（ｔ），Ｌｈｓ（ｔ）は，手先位置Ｒｈｓ，Ｌｈｓと時間ｔとの関係を示すデータ，すなわち手先位置の経時的変化の内容が記憶されたデータである。指令値Ｒｈｓ（ｔ），Ｌｈｓ（ｔ）は，歩容データ記憶部３４に出力される。
【００２８】
また，手先位置指令値生成部３３には，後述する重心位置変位量算出部４４から上肢の補正角がおよそ１０ｍｓ周期で送られる。この上肢の補正角は，上半身の重心位置が目標重心位置からずれた際に，左右の腕部を動作させてその重心位置を元に戻すための補正データである。そして，指令値Ｒｈｓ（ｔ），Ｌｈｓ（ｔ）を作成する際，その補正角に従って手先の位置を修正する。例えば，一方の腕部で負荷物を把持し，それに伴って上半身の重心位置がその負荷物側にずれた際に，他方の腕部を上げ下げしてその重心位置を目標重心位置上に移動させる。このような動作が実現するように指令値Ｒｈｓ（ｔ），Ｌｈｓ（ｔ）を作成する。
【００２９】
歩容データ記憶部３４には，歩行ロボット１００の姿勢を決定するのに十分なデータ群（歩容データ：Ｌｆｓ（ｔ），Ｒｆｓ（ｔ），Ｌｈｓ（ｔ），Ｒｈｓ（ｔ），Ｗ（ｔ））が記憶されている。歩容データ記憶部３４からは，歩容データがおよそ１０ｍｓ周期で関節角群計算装置４１に送られる。歩行ロボット１００は，この歩容データに基づいて手足を動作させる。すなわち，歩容データを基に各関節が駆動される。
【００３０】
関節角群計算装置４１は，各部位の位置が記憶されている歩容データを基に，いわゆる逆キネマティクス演算を解いて各関節のモータに対する関節角を計算する。計算された関節角は，アクチュエータ制御装置４２に送られる。アクチュエータ制御装置４２は，計算された関節角に基づいて，各関節のアクチュエータ１〜１７の駆動制御を行う。これにより，歩行ロボット１００の関節角が調節され，歩行ロボット１００の歩行動作が実現する。
【００３１】
また，重心位置変位量算出装置４４には，左腕部および右腕部の各関節へのモータ指令角（関節角）が入力される。すなわち，負荷物を把持した場合には，負荷物を把持している腕（以下，「把持腕」とする）の関節角と，負荷物を把持していない腕（以下，「非把持腕」とする）の関節角とがそれぞれ入力される。
【００３２】
重心変位量算出装置４４は，重心位置を取得する機能と，重心位置のずれ量を算出する機能と，重心位置を補正する各関節の関節角（補正角）を算出する機能と，目標重心位置を記憶する記憶部（例えば，不揮発性メモリ）とを備えている。記憶部には，目標重心位置のほか，負荷物の重さや各パーツ（腕，首，足など）の慣性パラメータ（重量，重心位置，慣性モーメントなど）なども記憶されている。重心位置，重心位置のずれ量，および補正角は，入力された関節角や取得した重心位置などの情報を基に重心変位量算出装置４４内の演算部（例えば，ＣＰＵ）が算出する。なお，演算部は，各機能それぞれに設けてもよい。また，重心変位量算出装置４４と動作指示生成部３０とが一体の装置であれば，その装置内の１つのＣＰＵであってもよい。
【００３３】
そして，重心位置変位量算出装置４４では，図３に示すような制御を行う。すなわち，左右の腕部の関節角および既知である負荷物の重さを基に上半身の重心位置を取得し，その重心位置の目標重心位置からのずれ量を算出する。目標重心位置は，あらかじめ重心位置変位量算出装置４４に記憶されている。本形態での目標重心位置は，負荷物を把持せずに直立したときの重心位置とする。なお，目標重心位置は，本形態の位置に限るものではなく，良好なバランスを維持できる位置であればよい。また，上半身の重心位置は，上半身の各関節の関節角および負荷物の重さを基に算出してもよいし，各関節の関節角および負荷物の重量に対応する重心位置が記憶されたデータベースを用意し，そのデータベースから取得することとしてもよい。
【００３４】
次に，取得した重心位置のずれ量を基に，重心位置の補正角を取得する。すなわち，上半身の重心位置が目標重心位置上となる関節角を取得する。この関節角も，計算によって取得してもよいし，データベースから取得してもよい。この補正角は，非把持腕の関節角に反映される。つまり，補正角によって非把持腕の関節角を調節する。この非把持腕の補正角を手先位置指令値生成部３３に出力する。
【００３５】
続いて，歩行ロボット１００の腕部を動作させて上体のバランスをとる，すなわち腕部の動作に従って上半身の重心位置を微小変位させる手順について，図４のフローチャートおよび図５の概念図を基に説明する。なお，負荷物の重量および歩行ロボットが負荷物を把持しない状態での重心位置，すなわち目標重心位置（図５（ａ））は，あらかじめ歩行ロボットに記憶されている。また，以下の説明では歩行ロボット１００が既に一方の腕部で負荷物を把持している状態であることとする。
【００３６】
まず，両腕部の関節角を取得する（Ｓ１）。すなわち，把持腕の関節角と非把持腕の関節角とをそれぞれ取得する。次に，それらの関節角から上半身の重心位置のずれ量を取得する（Ｓ２：図５（ｂ））。具体的には，各パーツの関節の関節角を基に上半身の重心位置をリアルタイムに取得する。そして，その現在の重心位置とあらかじめ記憶されている目標重心位置との差分を算出する。この差分が重心位置のずれ量となる。
【００３７】
次に，上半身の重心位置のずれ量を基に非把持腕の補正角を取得する（Ｓ３）。すなわち，上半身の重心位置と目標重心位置とのずれ量が所定値（例えば，１０ｍｍ）以下となるような非把持腕の関節角を取得する。そして，非把持腕の関節を補正角に従って微小変位させる（Ｓ４：図５（ｂ））。これを繰り返すことにより，常に上半身の重心位置を目標重心位置付近に維持することができ，一方の腕部によって負荷物を把持している状態であっても歩行動作が安定する。
【００３８】
本処理は，歩行ロボット１００が負荷物を把持していない状態であっても同様である。具体的な動作としては，例えば，右腕を前方に振り上げたとすると，反対側の左腕を下方に振り上げる動作をする。すなわち，右腕を動作させたときの重心位置を取得し，その重心位置と目標重心位置との差を求める。そして，その差を縮めるように左腕を動作させる。つまりは，変位する重心の位置をリアルタイムに取得しながら，上肢を動かすこことで重心を所定の位置に確保する動作を行う。
【００３９】
以上詳細に説明したように本形態の歩行ロボット１００では，上半身の重心位置のずれ量を取得することとしている。そして，この重心位置のずれ量を基に，重心位置のずれを修正する上肢の補正角を取得することとしている。そして，この補正角を手先位置の歩容データに反映させることにより，上肢を動作させて重心位置を目標重心位置上に移動させている。これにより，一方の腕部で負荷物を把持したとしても，他方の腕部の動作により重心位置を目標重心位置付近に維持することができる。そのため，一方の腕に負荷物を把持した状態であっても，歩行動作が安定する。また，安定化を図る動作についても，非把持腕を動作させるのみであり，極めてシンプルである。よって，シンプルな動作で上肢の動作に起因する体幹の揺れを抑制し，動作の安定化を図るロボットが実現している。
【００４０】
例えば，ロボットが歩行動作とともに金管楽器を演奏するような動作を伴う場合，金管楽器を一方の手に把持しながら安定した歩行動作を行うことが望まれる。そこで，実施の形態のように，上半身が良好なバランスを維持することで金管楽器の位置が安定し，見栄えがよくなるとともに安定した演奏を行うことができる。
【００４１】
なお，本実施の形態は単なる例示にすぎず，本発明を何ら限定するものではない。したがって本発明は当然に，その要旨を逸脱しない範囲内で種々の改良，変形が可能である。例えば，歩行ロボットの下肢は２本である必要はなく，３本以上であってもよい。また，本発明の適用範囲は，歩行ロボットに限るものではない。例えば，歩行を伴わないロボット（車輪によって移動するロボットやジャンプして移動するロボット等）にも適用可能である。
【００４２】
また，本発明は，一方の上肢に負荷物を把持した際に適用されるのみではない。すなわち，上半身の重心位置にずれが生じるような場合であれば適用可能である。例えば，負荷物を背負う際にも適用可能である。
【図面の簡単な説明】
【００４３】
【図１】実施の形態にかかる歩行ロボットの関節構成を示すスケルトン図である。
【図２】実施の形態にかかる歩行ロボットの機能構成を示すブロック図である。
【図３】重心位置変位量算出装置の制御を示すブロック図である。
【図４】重心の位置を微小変位させる手順を示すフローチャートである。
【図５】重心の位置を微小変位させる概念を示す図である。
【符号の説明】
【００４４】
１〜１７  アクチュエータ
２５    姿勢制御センサ群
３０    動作指示生成装置
３１    足先位置指令値生成部
３２    体幹位置指令値生成部
３３    手先位置指令値生成部
３４    歩容データ記憶部
４１    関節角群計算装置
４２    アクチュエータ制御装置
４４    重心位置変位量算出装置
１００  歩行ロボット
【図１】
2006321012.tif 000003
【図２】
2006321012.tif 000004
【図３】
2006321012.tif 000005
【図４】
2006321012.tif 000006
【図５】
2006321012.tif 000007