米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 加工処理操作 -> トヨタ自動車株式会社

発明の名称 ロボットの歩容データ修正方法および歩行ロボット
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−7795(P2007−7795A)
公開日 平成19年1月18日(2007.1.18)
出願番号 特願2005−193271(P2005−193271)
出願日 平成17年7月1日(2005.7.1)
代理人 【識別番号】110000110
【氏名又は名称】特許業務法人快友国際特許事務所
発明者 嶋田 宏史
要約 課題
簡単な方法によりロボット歩行動作中に膝関節のアクチュエータの駆動回路が過負荷状態となることを回避するよう歩容データを作成する。

解決手段
ロボットの膝関節のアクチュエータ駆動回路が一定の値で継続的に出力可能な許容トルク指令値と、一歩行周期中にその関節が出力するトルクの平均値を比較する。平均トルク指令値が許容トルク指令値以下となるよう歩容データの補正量を設定する。このとき、一方の脚が離床する時点において、少なくともロボット重心位置をロボット進行方向に移動させるように歩容データを補正する。歩容データを補正する際に参照するパラメータを一方の脚の離床時と、ロボット重心位置のロボット進行方向の位置とに絞り込む。これにより見た目に円滑な歩行となるよう作成された歩容データを、簡単な方法でアクチュエータ駆動回路が過負荷とならない歩容データに修正することができる。
特許請求の範囲
【請求項1】
脚式ロボットの歩行に用いる歩容データを修正する方法であり、
ロボット代表点の目標位置の時系列データを含む歩容データを、ロボットの各関節の目標関節角、目標関節角速度又は目標関節角加速度のいずれかの関節目標値に変換する工程と、
各関節を関節目標値に制御することによってロボットを歩行させた際に、ロボットの膝関節のアクチュエータの駆動回路がそのアクチュエータに対して出力するトルク指令値を推定または検出する工程と、
トルク指令値の、一歩行周期における平均トルク指令値を算出する工程と、
その一歩行周期における、一方の脚が接地脚から遊脚に切り替わる離床時点を特定する工程と、
平均トルク指令値が予め設定されている許容トルク指令値を超える場合に、少なくとも前記離床時点におけるロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるように歩容データを補正する工程と、
を含むことを特徴とする歩容データ修正方法。
【請求項2】
前記補正工程では、ロボット体幹目標位置を、ロボット進行方向へ所定量だけ移動させた体幹目標位置に補正することを特徴とする請求項1に記載の歩容データ修正方法。
【請求項3】
前記補正工程では、ロボット体幹目標姿勢を、ロボット進行方向に所定角だけ前傾させた体幹目標姿勢に補正することを特徴とする請求項1に記載の歩容データ修正方法。
【請求項4】
前記補正工程では、前記特定された離床時点を遅らせる側に補正することによって、一方の脚が接地脚から遊脚に切り替わる離床時点におけるロボット重心位置をロボット進行方向に所定量だけ移動させることを特徴とする請求項1に記載の歩容データ修正方法。
【請求項5】
前記補正工程では、一歩行周期の歩容データに対して設定した補正量を、他の歩行周期の歩容データに対しても設定することを特徴とする請求項1から4のいずれか1項に記載の歩容データ修正方法。
【請求項6】
前記一方の脚が接地脚から遊脚へと切り替わる離床時点に先立つ所定期間内の歩容データを、補正量が漸増するように補正する工程と、
前記一方の脚が接地脚から遊脚へと切り替わる離床時点に続く所定期間内の歩容データを、補正量が漸減するように補正する工程と、
を含むことを特徴とする請求項1から5のいずれか1項に記載の歩容データ修正方法。
【請求項7】
補正された歩容データを、ロボットの各関節の補正後の関節目標値に変換する工程と、
補正後の関節目標値に従ってロボットを歩行させた際に、前記駆動回路が出力する、歩容データ補正後のトルク指令値を推定または検出する工程と、
補正後トルク指令値の一歩行周期における平均補正後トルク指令値を算出する工程と、
補正された歩容データに従ってロボットを歩行させた際の、一歩行周期における一方の脚が接地脚から遊脚に切り替わる、補正後の離床時点を特定する工程と、
平均補正後トルク指令値が許容トルク指令値を超える場合に、少なくとも前記補正後の離床時点におけるロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるように補正された歩容データをさらに補正する工程と、
を含むことを特徴とする請求項1から6のいずれか1項に記載の歩容データ修正方法。
【請求項8】
前記許容トルク指令値は、前記歩容データによるロボット歩行時間中に、前記駆動回路が継続的に指令可能な値であることを特徴とする請求項1から7のいずれか1項に記載の歩容データ修正方法。
【請求項9】
前記補正工程では、補正前の歩容データを補正後の歩容データに置換することを特徴とする請求項1から8のいずれかの歩容データ修正方法。
【請求項10】
前記補正工程では、補正前の歩容データに補正量を対応付けて記憶することを特徴とする請求項1から8のいずれかの歩容データ修正方法。
【請求項11】
ロボット代表点の目標位置の時系列データを含む歩容データを、ロボットの各関節の目標関節角、目標関節角速度又は目標関節角加速度のいずれかの関節目標値に変換する手段と、
各関節を関節目標値に制御することによってロボットを歩行させた際に、ロボットの膝関節のアクチュエータの駆動回路がそのアクチュエータに対して出力するトルク指令値を推定または検出する手段と、
トルク指令値の一歩行周期における平均トルク指令値を算出する手段と、
その一歩行周期における、一方の脚が接地脚から遊脚に切り替わる離床時点を特定する手段と、
平均トルク指令値が予め設定されている許容トルク指令値を超える場合に、少なくとも前記離床におけるロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるように歩容データを補正する手段と、
を有することを特徴とする歩行ロボット。
発明の詳細な説明
【技術分野】
【0001】
本発明は、体幹リンク(胴部)に複数本(典型的には2本)の脚リンク群が揺動可能に連結されている機械(脚式ロボット)の歩行中に、ロボット脚部の膝関節を関節目標値に追従するよう制御するアクチュエータ及び/又はアクチュエータの駆動回路が過負荷とならないように歩容データを修正する方法と歩行ロボットに関する。
【背景技術】
【0002】
体幹リンクと脚リンク群の相対的姿勢を変化させることによって歩行する脚式ロボット(以下単にロボットと称す)が開発されている。このロボットは歩容データを用いて歩行する。歩容データは、ロボットの各代表点の目標位置の時系列データを含む。
代表点目標位置の時系列データを含む歩容データは、ロボットの各関節の目標関節角、目標関節角速度又は目標関節角加速度のいずれかの関節目標値に変換される。変換された関節目標値に従って、ロボットの各関節に備えられたアクチュエータの駆動回路がそのアクチュエータに対してトルク指令値を出力する。各関節のアクチュエータは、駆動回路からのトルク指令値に従って駆動され、各関節は関節目標値に追従するよう制御される。その結果、体幹リンクに対する脚リンク群の相対的姿勢が変化し、ロボットは歩行する。
ロボット歩行中、各関節のアクチュエータの駆動回路が出力するトルク指令値が大きいと、歩行中にアクチュエータ及び/又はアクチュエータの駆動回路(以下、アクチュエータ等と称す)に負荷が蓄積されていく。負荷とはアクチュエータ等の発熱量である。負荷が蓄積される結果、アクチュエータ等が負荷の許容量を超えてしまう。従ってロボット歩行中の負荷、即ちアクチュエータの駆動回路が出力するトルク指令値は小さ方が望ましい。
特許文献1には、各関節のアクチュエータの負荷を低減する技術が提案されている。この技術は、ロボット各関節のアクチュエータの動作範囲、動作角速度、動作角加速度、負荷の少なくともいずれかの、任意の期間における絶対値の最大値または実効値が所定値以下となるように歩容データを作成する。そのような歩容データを作成するために特許文献1の技術は、まずZMPの軌道を最初に決定する。その後、このZMPの軌道を実現するロボット重心位置の鉛直方向の運動パターンを、各関節のアクチュエータの負荷が低減されるように設定する。さらにその後、ロボット重心位置の鉛直方向の運動パターンに沿うように脚部各関節の目標関節角の軌道および、重心の水平方向の軌道を決定する。こうして決定された脚部の各関節の目標関節角の軌道からロボット脚部代表点の目標位置の時系列データ、すなわち歩容データを決定する。
【0003】
【特許文献1】特開平5−305582号公報(請求項1、段落0022、0028および図3)
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献1の技術によると、各関節のアクチュエータの負荷を低減する歩容データを作成することができる。しかしそのために、ロボット重心位置の鉛直方向の運動パターン、脚各関節角の目標関節角の軌道および重心の水平方向の軌道を決定するといった複雑な計算が必要となる。特に脚式ロボットの脚は多数の関節を有するため、それら多数の関節の軌道を決定するには極めて多大な計算量となる。人間型の脚式ロボットの場合、通常片脚当たり6個の関節を有し、両脚で12個の関節を有する。しかも夫々の関節の動作は他の関節の負荷に影響を与える。12個の関節の目標関節角の軌道が相互に影響し合う問題の解を得るため、その計算プログラム自体も複雑となる。
関節のアクチュエータ等の負荷を低減する歩容データを、できるだけ簡単に作成する方法が望まれている。そのためには見た目に円滑な歩行となるよう作成された歩容データを、各関節のアクチュエータの負荷を低減するのに適切な歩容データへ修正することが考えられる。そうすれば見た目の動作として適切でありかつ関節のアクチュエータ等の負荷を低減する歩容データを作成することができる。
しかし見た目に円滑な歩行となるよう作成された歩容データを如何に簡単に各関節のアクチュエータの負荷を低減するのに適切な歩容データへ修正することは容易ではない。作成した歩容データを、できるだけ簡単な方法で関節のアクチュエータ等の負荷が低減された歩容データに修正する方法が望まれる。
【課題を解決するための手段】
【0005】
本発明は、ロボット歩行動作において膝関節のアクチュエータ等が、他の関節のアクチュエータ等よりも過負荷となりやすい、という事実に着目する。ロボットの片脚のみが接地脚なる際に、接地脚の膝関節のアクチュエータ等にはロボットの自重を支持するために高トルクが要求されるからである。そこで本発明では膝関節のアクチュエータ等が過負荷となることを防止することを目的として、予め作成された歩容データを補正する技術を提供する。膝関節のみに注目することで、予め作成された歩容データを、負荷を低減した歩容データに簡単なロジックで修正することができる。
【0006】
本発明は、作成された歩容データに対してできるだけ簡単なロジックでしかも小さい補正量で膝関節のアクチュエータ等の負荷を軽減する。歩容データには、見た目に円滑な歩行となるようにロボット各代表点の目標位置の経時的データを含む。見た目に円滑な歩行となることを優先させるので、この歩容データにはアクチュエータ等の負荷については厳密には考慮されていない。
ここでアクチュエータ等の負荷を低減するよう歩容データを補正する際、歩容データ全体の厳密な最適化を追求して歩行動作中の慣性力を考慮すると、「時間」の要素が絡んでくる。そのため、膝関節のアクチュエータが要求されるトルクを低減するためには、どの変数を、いつ、どのように補正したらよいかという複雑な問題となってしまう。特許文献1の方法は慣性力を考慮するため、厳密ではあるが、そのため計算の簡便性を犠牲にしている。本方法では、この慣性力を無視することによって、問題を静的なものとして扱う。本発明は、問題の簡略化を優先する。特許文献1の技術思想とは相違する。
【0007】
本発明では、膝関節のアクチュエータの駆動回路が出力するトルク指令値の、ロボットの一歩行周期における平均トルク指令値を求める。そしてこの平均トルク指令値が許容トルク指令値を超える場合に、以下に述べるように歩容データを補正する。許容トルク指令値とは予め設定されている値であり、平均トルク指令値が許容トルク指令値を超える場合には、ロボットが連続して歩行する間にアクチュエータ等が過負荷となってしまう値である。また一歩行周期とは、ロボットの両脚が所定の相対位置関係となった状態から再び同じ相対位置関係となるまでの期間である。ロボットはこの歩行周期を繰り返すことによって連続歩行する。そこで一歩行周期について膝関節のアクチュエータ等の負荷を低減する補正量が設定できれば、他の歩行周期についても同じ補正量を設定することで、連続歩行しても膝関節のアクチュエータ等が過負荷となることはない。
【0008】
本発明では、一方の脚が接地脚から遊脚に切り替わる時点(以下、離床時点と称す)を特定する。ロボット歩行中、この離床時点において、接地脚となっている他方の脚の膝関節とロボット重心との水平面内距離は最大となるため、他方の脚の膝関節には大きなモーメントが作用する。このとき接地脚の膝関節に備えられたアクチュエータには、このモーメントに抗するだけのトルクが要求される。一方の脚の離床時点における、接地脚の膝関節のアクチュエータの出力トルクが、そのアクチュエータ等が過負荷となるか否かの重要な要因である。本発明ではこの特定した離床時点における、歩容データ内の所定の代表点の目標位置を次に述べるように補正する。本発明では、一歩行周期全体にわたりロボットの重心位置や関節角の軌道は考慮する必要がない。逆に補正する歩容データ内の時点を特定することで、その後の歩容データの補正を簡単化することができる。
【0009】
本発明では、離床時点におけるロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるように、歩容データ内の所定の代表点位置の目標位置を補正する。ロボットの重心位置をロボット進行方向へ移動させることによって、接地脚の膝関節とロボット重心との水平面内距離を縮小する。これにより離床時点における接地脚の膝関節のアクチュエータが出力すべきトルクを低減する。本発明は、ロボットの重心のロボットの進行方向位置という、極めてシンプルな1次元の指標を採用することで、見た目に円滑な歩行となるよう作成された歩容データを、膝関節アクチュエータ等の負荷を低減する歩容データへ少ない計算量で修正することができる。
【0010】
本発明の技術思想は、見た目に円滑な歩行となるよう作成された歩容データを、過負荷となりやすい脚の膝関節のアクチュエータ等に特有の条件に基づいてその関節の負荷を低減する歩容データに修正することにある。即ち、脚の離床時点に関連付けてロボットの重心位置をロボット進行方向前方となるよう歩容データを補正する。また膝関節のアクチュエータ等の負荷を低減するという問題を静的な問題として扱い、歩容データを補正する際の指標を、脚の離床時点とそのときのロボットの重心の前後方向位置との2つに絞り込む。これにより負荷を低減した歩容データに修正するための計算量を低減する。
本発明は、作成された歩容データに対して、できるだけ簡単なロジックでしかも小さい補正量で膝関節のアクチュエータ等の負荷を軽減した歩容データへ修正する。その際に脚部膝関節のアクチュエータ等の負荷を低減するための指標を、離床時点と、そのときのロボットの重心位置のロボット進行方向位置との2つに絞り込むことで、極めて簡単な方法で作成された歩容データを負荷を低減した歩容データに修正することに成功した。
【0011】
本発明は、脚式ロボットの歩行に用いる歩容データを修正する方法として具現化できる。この方法は、ロボット代表点の目標位置の時系列データを含む歩容データを、ロボットの各関節の目標関節角、目標関節角速度又は目標関節角加速度のいずれかの関節目標値に変換する工程と、関節目標値に従ってロボットの各関節に備えられたアクチュエータを制御することによってロボットを歩行させた際に、ロボットの膝関節用アクチュエータの駆動回路がその膝関節用アクチュエータに対して出力するトルク指令値を推定または検出する工程を含む。
ロボットの制御には位置(姿勢)制御とコンプライアンス制御とがある。位置制御の場合、ロボット代表点の目標位置はロボットの各関節の目標関節角に変換される。従って関節目標値は関節目標角となる。ロボットの関節角を目標関節角に一致するよう制御することでロボットの位置(姿勢)を目標位置に追従させる。このとき代表点の動作を円滑にするために同時に関節目標値として目標関節角速度を指定することもある。一方、コンプライアンス制御の場合、歩容データに従って動作しているロボットが受ける外力に応じてロボットの運動を変化させる。外力に応じてロボットの各代表点の加速度が決まる。従って各関節の関節目標値は関節角加速度となる。いずれの場合でも関節に備えられたアクチュエータの駆動回路が出力するのは最終的にはトルク指令値となる。
トルク指令値を推定するには、ロボットの動特性、アクチュエータ等の特性をモデル化したコンピュータシミュレーション上でロボットを歩行させて推定する、ロボットを実際に歩行させた際にオブザーバ回路により推定する、などの方法を用いることができる。トルク指令値を検出するには、トルクセンサを設置する、アクチュエータ駆動回路のアクチュエータへの電流指令値を検出し、これにトルク定数を乗じて検出する、などの方法を用いることができる。
この方法はまた、トルク指令値の、一歩行周期における平均トルク指令値を算出する工程と、その一歩行周期における、一方の脚が接地脚から遊脚に切り替わる離床時点を特定する工程と、平均トルク指令値が予め設定されている許容トルク指令値を超える場合に、少なくともその離床時点におけるロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるように歩容データを補正する工程を含む。
ロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるための歩容データの補正としては、頭部リンク、体幹リンクや手先リンクなどに設定された代表点の目標位置をロボット進行方向へ所定量だけずらすことで実現できる。また頭部リンクや体幹リンクの目標姿勢を前傾させることによっても実現することができる。
なお、離床時点を特定する方法は、足平裏面に接触センサを設けて直接検出する、足平に力センサを設けてその出力値の変化から検出する、歩容データ上の足先目標位置から算出される足先の最下点の座標が床(歩行面)の平面を表す座標群の中にある時点から、その座標群より上方に位置する時点に変化する時点として特定する、コンピュータ上でロボットの歩行をシミュレーションさせて離床時点を特定する、などの方法を用いることができる。
【0012】
この方法では、一方の脚の離床時点におけるロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるように歩容データを補正する。このように見た目に円滑な歩行となるよう作成された歩容データを、簡単なロジックで膝関節のアクチュエータ等の負荷を低減した歩容データへ修正することが可能となる。
【0013】
歩容データを補正する工程(補正工程)では、ロボット体幹目標位置を、ロボット進行方向へ所定量だけ移動させた体幹目標位置に補正する、あるいはロボット体幹目標姿勢を、ロボット進行方向に所定角だけ前傾させた体幹目標姿勢に補正することが好ましい。
【0014】
体幹リンクはいわば人間の胴体に相当するリンクであり、その質量も他のリンク部品に対して大きい。従って体幹リンクをロボット進行方向へ所定量だけ移動させるように歩容データを補正することでロボット全体の重心位置を効果的にロボット進行方向へ移動させることができる。また体幹リンクには頭部リンクや両腕のリンク群が連結されている。これらのリンク(群)の目標位置は体幹リンクに対する相対位置で定義される。従って体幹リンクの目標位置をロボット進行方向へ移動させると頭部リンクや両腕リンク群の脚部足先リンクに対する位置もロボット進行方向へ移動する。従ってこれらのリンク(群)の移動によってもロボットの重心位置をロボット進行方向へ移動させることができる。
体幹リンクの目標姿勢を、ロボット進行方向に所定角だけ前傾させた場合、体幹リンクの上方に連結されている頭部リンクや両腕のリンク群がロボット進行方向へ移動する。これによりロボット全体の重心位置をロボット進行方向へ移動させることができる。
【0015】
歩容データを補正する工程では、前記特定された離床時点を遅らせる側に補正することによって、一方の脚が接地脚から遊脚に切り替わる時点(離床時点)におけるロボット重心位置をロボット進行方向に所定量だけ移動させるように歩容データを補正することも好ましい。
【0016】
一方の脚の離床時点を遅らせるよう歩容データを補正する場合、他の代表点目標位置の時系列データが変わらなければロボットの重心位置も補正の前後でほぼ同じ軌道をとる。よって一方の脚の離床時点を遅らせた場合、その遅らせた離床時点におけるロボットの重心位置は補正前より相対的に進行方向前方へ移動させることが可能となる。具体的には、特定された離床時点におけるその脚の足先目標位置を床(歩行面)に接触したままの位置となるよう補正量を設定する。このとき、足先リンク以外のリンクの姿勢が補正前と同じであれば、ロボット全体の歩行姿勢はほぼ補正前と同じにすることができる。具体的には、足先リンクと下腿リンクとを連結するピッチ軸関節の位置が補正前と同じ位置となるよう足先目標姿勢にも補正量を設定する。これにより見た目に円滑な歩行となるよう作成された歩容データに対して、ロボット全体の歩行姿勢を変えずに、膝関節のアクチュエータ等の負荷を低減させる歩容データへ修正することができる。なお、ロボットを直立姿勢としたときの体幹リンク前方方向をX軸(ロール軸)、体幹リンク上方向をZ軸(ヨー軸)、X−Z面に対して右手直交座標系を構成するように設定した軸をY軸(ピッチ軸)と定義する。
【0017】
歩容データを補正する工程では、一歩行周期の歩容データに対して設定した補正量を、他の歩行周期の歩容データに対しても設定することが好ましい。これにより見た目に円滑な歩行となるよう作成された歩容データを、一歩行周期を繰り返すロボットの連続的な歩行中に、膝関節のアクチュエータ等が過負荷となることを回避する歩容データに修正することができる。
【0018】
前記一方の脚が接地脚から遊脚へと切り替わる時点(離床時点)に先立つ所定期間内の歩容データを、補正量が漸増するように補正する工程と、その離床時点に続く所定期間内の歩容データを、補正量が漸減するように補正する工程をさらに含むことが好ましい。
これによって、一方の脚の離床時点における他方の脚の膝関節のアクチュエータ等に大きなトルク指令値が要求されるタイミングの前後で、当初の歩容データからの補正量がゼロの状態から徐々に増大し、大きなトルク指令値が要求されるタイミングでの補正量が最大となり、その後に補正量が徐々に減少して当初の歩容データに復帰する歩容データに補正される。一歩行周期における膝関節のアクチュエータの駆動回路の平均トルク指令値を許容トルク指令値以下に抑えながら、ロボットがスムーズに歩行する歩容データに補正することができる。
【0019】
また、本発明に係る歩容データを修正する方法は、補正された歩容データを、ロボットの各関節の補正後の関節目標値に変換する工程と、補正後の関節目標値に従ってロボットを歩行させた際に、前記駆動回路が出力する、歩容データ補正後のトルク指令値を推定または検出する工程と、補正後トルク指令値の一歩行周期における平均補正後トルク指令値を算出する工程と、補正された歩容データに従ってロボットを歩行させた際の、一歩行周期における一方の脚が接地脚から遊脚に切り替わる、補正後の離床時点を特定する工程と、平均補正後トルク指令値が許容トルク指令値を超える場合に、少なくとも前記補正後の離床時点におけるロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるように補正された歩容データをさらに補正する工程を含むことが望ましい。
【0020】
この方法では、毎回の補正量を小さく設定することができ、一歩行周期における膝関節のアクチュエータの駆動回路の平均トルク指令値が許容トルク指令値以下となるのに必要な補正量に達するまで補正量を段階的に増大してゆくことができる。一歩行周期における駆動回路の平均トルク指令値を許容トルク指令値以下とするのに必要な最小の補正量を得ることができる。補正量が小さいほど、最初に作成された歩容データに近い状態でロボットをスムーズに歩行させることが可能となる。
【0021】
許容トルク指令値は、前記歩容データによるロボット歩行時間中に、前記駆動回路が継続的に指令可能な値であることが好ましい。ここで許容トルク指令値とは、アクチュエータの駆動回路が一定値で継続的に出力してもアクチュエータ等が過負荷とならない値である。しかし駆動回路の許容トルク指令値は不必要なまでに長期間にわたって一定の値で出力可能な値である必要はない。歩容データでロボットが作動する期間において駆動回路が過負荷とならなければよいからである。許容トルク指令値を歩容データによるロボット歩行時間内で駆動回路が一定の値で継続的に出力可能な値とすることで、歩容データに対してできるだけ大きな許容トルク指令値を設定することができる。許容トルク指令値を大きくできれば一歩行期間における駆動回路の平均トルク指令値も大きく設定できる。従って歩容データでロボット作動させる際、駆動回路が過負荷となることを回避しつつ、できるだけスムーズな動作をさせるよう歩容データの補正量を設定することができる。
【0022】
アクチュエータ等が過負荷となることを避けるためには、補正前の歩容データを補正後の歩容データに置き変えてよい。あるいは、補正前の歩容データに補正量を対応付けて記憶してもよい。
補正量を徐々に増やしながら駆動回路が過負荷となることを避けるのに必要な最小の補正量を探索する場合には、補正前の歩容データに補正量を対応付けて記憶する方式が好ましい。
【0023】
本発明は脚式ロボットとしても具現化できる。この脚式ロボットは、ロボット代表点の目標位置の時系列データを含む歩容データを、ロボットの各関節の目標関節角、目標関節角速度又は目標関節角加速度のいずれかの関節目標値に変換する手段と、各関節を関節目標値に制御することによってロボットを歩行させた際に、ロボットの膝関節のアクチュエータの駆動回路がそのアクチュエータに対して出力するトルク指令値を推定または検出する手段と、トルク指令値の一歩行周期における平均トルク指令値を算出する手段と、その一歩行周期における、一方の脚が接地脚から遊脚に切り替わる離床時点を特定する手段と、平均トルク指令値が予め設定されている許容トルク指令値を超える場合に、少なくとも前記離床時点におけるロボットの重心位置を、ロボット進行方向へ所定量だけ移動させるように歩容データを補正する手段を有する。
この脚式ロボットによれば、ロボットの歩行中に膝関節のアクチュエータ等が過負荷となることなく、最初に作成された歩容データに近い状態で歩行することができる。
【発明の効果】
【0024】
本発明によれば、見た目に円滑な歩行となるよう作成された歩容データを、ロボット歩行中に膝関節のアクチュエータ及び/又はアクチュエータの駆動回路がロボット歩行中に過負荷となることを回避する歩容データへ極めて簡単な方法で修正することが可能となる。またロボットの歩行中に膝関節のアクチュエータ等が過負荷となることなく、最初に作成された歩容データに近い状態で歩行することのできる脚式ロボットを提供することができる。
【発明を実施するための最良の形態】
【0025】
実施例の主要な特徴を列記する。
(第1形態) 膝関節のアクチュエータの駆動回路が一定の値で継続的に出力可能な許容トルク指令値としてできるだけ大きな値を設定することが好ましい。これにより駆動回路の能力を最大限に生かすように歩容データを補正することが可能となるからである。
(第2形態) 補正量により補正された歩容データに従ってロボットを動作させた際、一歩行周期の平均トルクが許容トルク値以下で、できるだけこの許容トルク指令値に近い値となるよう歩容データを補正することが好ましい。許容トルク値以下で平均トルクをできるだけ大きくなるように歩容データを補正することで、駆動回路の能力の限界近くまで利用することができる。従って駆動回路が過負荷とならない範囲で可能な限りロボットを円滑に歩行させるよう制御することができる。
(第3形態) ロボットの重心位置を、ロボット進行方向へ移動させる、には、ロボット重心位置を、他方の脚(接地脚から遊脚に切り替わる側の脚とは異なる脚)の足先位置に対して相対的にロボット進行方向へ移動させる、ことが好ましい。一方の脚が接地脚から遊脚に切り替わる離床時点において、他方の脚の膝関節には、他方の脚の足先位置とロボット重心位置とのロボット前後方向の距離に応じたモーメントが作用する。ロボット重心位置を、他方の脚の足先位置に対して相対的にロボット進行方向へ移動させることによってこの他方の脚の膝関節に作用するモーメントを小さくすることができる。これにより見た目に円滑な歩行となるよう作成された歩容データを、この膝関節のアクチュエータの駆動回路のトルク指令値を小さくした歩容データへ修正することができる。この膝関節のアクチュエータ等を過負荷とすることを回避できる。
(第4形態)ロボットの重心位置を、水平方向でロボット進行方向へ移動させるとともに、垂直上下方向に移動するよう歩容データを補正してもよい。
(第5形態) 体幹目標姿勢をロボット進行方向に対して前傾させるよう歩容データを補正する場合、ロボット体幹の姿勢を決定する基準点となる、体幹上の代表点は、体幹を前傾させることによって体幹の重心位置がロボット前方へ移動するような位置に設定されていることが好ましい。体幹の重心位置がロボット前方へ移動することによって効率よくロボット全体の重心位置をロボット進行方向前方へ移動させることができるからである。
【実施例】
【0026】
図面を参照して以下に実施例を詳細に説明する。
まず図8にロボット本体100のリンク構造を概説する。図8はロボット本体100を正面から見た図である。ロボット本体100は複数のリンク部品と相互のリンクを揺動可能に連結する関節から構成されている。主な構成は体幹60、腰リンク61、右脚部リンク群62R、左脚部リンク群62L、頭部、両腕リンク群などである。またロボット本体100が直立姿勢を取った状態で体幹前方をX軸(ロール軸)、体幹上方をZ軸(ヨー軸)、X−Z軸に対して直交右手座標系を構成するようにY軸(ピッチ軸)を定義する。また図8において、隣接するリンクを連結する関節としては符号120で示す円形がX軸方向に回転軸を有するロール軸関節、符号122で示す横長のひし形がZ軸方向に回転軸を有するヨー軸関節、符号124で示す縦長のひし形がY軸方向に回転軸を有するピッチ軸関節と呼ぶ。例えば右膝関節64Rはその回転軸64RYがピッチ軸方向であるピッチ軸関節のひとつである。脚部には他に足首ピッチ軸関節66R、腰リンク61と脚部を連結する関節にもピッチ軸関節がある。リンク−関節の構成は他にもあるが概ね図8のようになる。例えば図8では体幹60と腰リンク61と2つのリンクを有するが、体幹60と腰リンク61がひとつのリンクとして一体化した構成もある。
本発明で注目するのは脚部のピッチ軸関節のひとつである右膝関節64Rおよび左膝関節64Lである。
<実施例1>
図1から図6を用いて本発明の実施例1を説明する。図1はロボット歩行制御装置10とロボット本体100のブロック図である。ロボットの歩行制御装置10とロボット本体100とを合わせたものが「ロボット」である。
ロボット歩行制御装置10には、歩容データ作成装置32で作成された歩容データを記憶する歩容データ記憶部30、歩容データ記憶部30から歩容データを読み出し、同時に補正量データ記憶部28に記憶された補正量を読み出してロボット本体100の各関節に備えられたアクチュエータ52を制御するアクチュエータ制御部20を備える。ロボット本体100には所定箇所に加速度センサ56が備えられている。この加速度センサ56の出力は歩容データ上の代表点が目標位置に追従して動作するようアクチュエータ制御部20にフィードバックされる。
またロボット歩行制御装置10には、アクチュエータ制御部20から歩容データと膝関節の駆動回路が出力するトルク指令値が入力される平均トルク算出部22を備える。この平均トルク算出部22は入力されたデータから、駆動回路が出力するトルク指令値の一歩行周期における平均トルク指令値を算出する。さらにアクチュエータ制御部20から出力される歩容データから脚が接地脚から遊脚へと切り替わる時点(離床時点)を特定する離床時点特定部34を備える。離床時点特定部34は例えば歩容データ上の足先目標位置から算出される足先の最下点の座標が、床(歩行面)の平面を表す座標群の中に存在する時点から、その座標群より上方に位置する時点へ切り替わる時点を離床時点として特定する。その他、ロボット足裏に接触センサを設け、このセンサ出力と歩容データ上での足先目標位置とを照合してロボットの足先が実際に離床した時点を離床時点として特定するよう構成してもよい。さらにロボット歩行制御装置10には、算出された平均トルク指令値と許容トルク指令値、離床時点および歩容データから歩容データに対する補正量を設定する補正量設定部24を備える。また設定された補正量を記憶する補正量データ記憶部28と予め設定されている許容トルク指令値を記憶する指令トルク指令値記憶部26を備える。歩行制御装置10内の一部もしくは全部のモジュールがロボット本体100内に実装される場合もあるが、図1では歩行制御装置10の構成を理解しやすいようにロボット本体100とは別に描いてある。
【0027】
次に各処理モジュールの動作について概要を説明する。
歩容データ記憶部30には、歩容データ作成装置32で作成された歩容データが記憶されている。歩容データ作成装置32で作成された歩容データを当初の歩容データと称することにする。
歩容データ作成装置32は、当初の歩容データ作成時において、ロボット本体100のダイナミクスを考慮し、ロボット本体100に行わせたい動作をロボット代表点の目標位置の時系列データとして作成する。ここで代表点の目標位置によって歩容データを記述するのは、ロボット各関節の目標関節角として歩容データを記述するよりロボット動作の全貌が人間に理解しやすいからである。代表点の具体例としては、左右の足先位置/姿勢、胴部(体幹)の重心位置と胴部の姿勢、左右の手先の位置/姿勢などがある。ダイナミクスを考慮するとは、ロボットが倒れないこと、また各代表点の相対位置関係がロボットの幾何学的拘束条件を満足すること、等である。
【0028】
アクチュエータ制御部20は、歩容データ記憶部30から当初の歩容データを読み込む。また補正量データ記憶部28から補正量データを読み込む。読み込まれた夫々のデータはアクチュエータ制御部20内部で加算され、ロボット本体100の各部に設定された代表点の目標位置/姿勢から各関節の目標関節角、目標関節角速度もしくは目標関節角加速度に変換される。各関節の目標関節角もしくは目標関節角加速度はさらにロボット本体100の各関節に取り付けられた関節アクチュエータ52へのトルク指令値に変換され各関節のアクチュエータ52が駆動される。
ここでロボット本体100が位置制御される場合はロボット代表点の経時的な目標位置は各関節の経時的な目標関節角(関節目標値)に変換される。一方ロボット本体100がコンプライアンス制御される場合はロボット代表点の経時的な目標位置は各関節の各時点(例えば制御サンプリング時点)の目標関節角加速度(関節目標値)に変換される。いずれにせよ最終的に関節のアクチュエータの指令値となるのはトルク指令値である。本実施例1では、ロボット100はコンプライアンス制御されるものと仮定し、以後説明を続ける。アクチュエータ制御部20の内部については後に図2を用いて説明する。
【0029】
平均トルク算出部22はアクチュエータ制御部20から歩容データとロボット膝関節のアクチュエータの駆動回路が出力するトルク指令値を取り込み、一歩行周期におけるアクチュエータの駆動回路の平均トルク指令値を算出する。平均トルク算出部22は入力された歩容データによって、両脚の足先目標位置が所定の相対位置関係から歩行動作を経て再び同じ位置関係となるまでの期間を特定する。この期間が一歩行周期に相当する。この歩行周期における駆動回路が出力する膝関節アクチュエータへのトルク指令値を特定しその平均値を求める。こうして一歩行周期における膝関節の駆動回路の平均トルク指令値を求めることができる。
【0030】
離床時点特定部34は、平均トルク算出部22と同様にアクチュエータ制御部20から歩容データを取り込み、一歩行周期を特定する。特定した一歩行周期内で、足先目標位置が床面から離れる時点(離床時点)を離床時として特定する。この処理は前述した平均トルク算出部22内で一歩行周期を特定するときに同時に行うよう構成してもよい。
【0031】
補正量設定部24は、平均トルク算出部22で算出された一歩行周期における膝関節のアクチュエータの駆動回路が出力するトルク指令値の平均値と、許容トルク指令値記憶部26に記憶された許容トルク指令値とを比較する。比較の結果、平均トルク指令値が許容トルク指令値を超える場合は、歩容データと離床時点特定部34で特定された離床時点を参照して歩容データを補正する補正量を設定する。歩容データの補正の方法については後述する。設定された補正量は補正量データ記憶部28に記憶される。
許容トルク値記憶部26に記憶されている許容トルク指令値とは、アクチュエータ等の特性により決定される、一定の値で継続的に出力可能なトルク指令値である。許容トルク指令値については後に詳述する。
【0032】
次に図2を用いてアクチュエータ制御部20内部での処理を説明する。なお本実施例ではロボットはコンプライアンス制御されるものと仮定しているので歩容データ上の各代表点の経時的な目標位置データは各関節の目標関節角加速度に変換される。
アクチュエータ制御部20は歩容データ記憶部30から当初の歩容データ40を読み込み、補正量データ記憶部28から補正量データ42を読み込む。読み込まれた夫々のデータは加算されて加速度演算部44に送られる。補正量データ42には、各代表点の経時的な目標位置データである当初の歩容データ40に対して補正値を加えるべき代表点目標位置/姿勢、補正量を加えるべき時点、および補正量の大きさが指定されている。従って当初の歩容データ40に対して補正量データ42を加算することができるのである。
【0033】
加速度演算部44では、補正量データが加算された各代表点の経時的な目標位置データである歩容データから各時点(各制御サンプリング時点)における各代表目標位置の目標加速度を算出する。一方、ロボット本体100の所定の位置には加速度センサ56が取り付けられている。この加速度センサ56の値からロボット本体100の各代表点の実際の加速度を検出する。算出された目標加速度に対して検出された加速度を減算したものがフィードバック制御部46に送られる。ここにはコンプライアンス制御、さらにはPID制御等の制御回路が組まれており、結果としてロボット本体100の各代表点に与えるべき各サンプリング毎の目標加速度が算出される。算出された目標加速度は目標値変換部48で各代表点の目標加速度からロボット本体100の各関節アクチュエータ52の目標関節角加速度へと変換される。この各関節アクチュエータ52の目標関節角加速度は関節アクチュエータ52の駆動回路50へと送られる。そしてこの駆動回路50により最終的に関節のアクチュエータ52を動作させるためのトルク指令値に変換され関節アクチュエータ52に送られる。関節アクチュエータ52としてサーボモータを例にとると、駆動回路50はサーボアンプに相当する。サーボアンプは関節のサーボモータがトルク指令値通りに動作するようフィードバック回路58が設けられている。通常、サーボアンプからサーボモータへのトルク指令値は電流値で与えられる。サーボモータは入力された電流に比例したトルクを発生する。平均トルク算出部22にはサーボアンプが出力する電流指令値が入力され、この電流指令値にサーボモータ固有のトルク定数を乗じてサーボアンプが出力するトルク指令値として利用する。ここで関節アクチュエータ52にトルクセンサを取り付け、関節アクチュエータが出力するトルクを検出して駆動回路が出力するトルク指令値として利用することも可能である。また駆動回路に対してオブザーバ回路を設けてトルク指令値を推定することも可能である。さらにロボット全体を数値モデルで表し、シミュレーション上で動作させ、このシミュレーション上で関節アクチュエータの駆動回路が出力するトルク指令値を推定してもよい。
なお、駆動回路50および関節アクチュエータ52はロボット本体100に取り付けられた関節の数だけ用意されている。
【0034】
通常、サーボアンプには様々な保護回路が設けられている。保護回路としては、過電流遮断回路、回生過電圧遮断回路、過負荷遮断回路、サーボモータ過熱保護回路などがある。ここで過負荷遮断回路はサーボアンプが発生する熱量が許容値を超えるとサーボアンプを停止させる回路である。サーボアンプが許容値以上のトルク指令値(即ち電流指令値)を出力し続けると発生する熱量はサーボアンプ及び/又はサーボモータ内に蓄積される。一方、サーボアンプが所定値以下のトルク指令値を出力し続ける場合は放熱により蓄積された熱量が減少する。ここで上記許容値に相当するトルク指令値が許容トルク指令値である。許容トルク指令値とはサーボアンプの特性、またはサーボモータの特性に応じて、サーボアンプ及び/又はサーボモータが過負荷とならずに一定の値で継続的に出力可能なトルク指令値として定義される。すなわち許容トルク指令値はサーボアンプ(駆動回路)及び/又はサーボモータ(アクチュエータ)に固有の値として予め設定されるものである。
ロボットの歩行中、脚部各ピッチ軸関節(特に膝、足首ピッチ軸関節)のアクチュエータ用のサーボアンプは接地脚時の高トルク指令値出力と遊脚時の低トルク指令値出力が繰り返される。高トルク指令値出力時の発熱量の蓄積分が低トルク指令値出力時の熱量放熱分を超えるといずれサーボアンプ及び/又はサーボモータは過負荷状態となり停止してしまう。そのような事態を避けるように歩容データを補正する必要がある。なお上記説明では関節のアクチュエータとしてサーボモータを、駆動回路としてサーボアンプを例としたが、他のアクチュエータ、例えば油圧式アクチュエータを用いても同様である。
【0035】
また実施例1ではロボット100はコンプライアンス制御を行うものと仮定したが、ロボット100が位置制御される場合は、加速度演算部44は不要となる。そして力センサ56の変わりに代表点の実際の位置を検出する検出装置がロボットに備えられる。その具体例としては、各関節にエンコーダを取り付け、このエンコーダ出力から所定の演算(順変換)により各代表点の位置に変換する変換部を設ける。そしてフィードバック制御部46の前で歩容データ上の各代表点の目標位置からロボット各代表点の実際の位置が減算され、その結果がフィードバック制御部46へ入力される。ここでロボット各代表点の最終的な目標位置が決定され、目標値変換部46では代表点の目標位置から各関節の目標関節角へと変換される。この目標関節角に基づいて駆動回路50は各関節のアクチュエータにトルク指令値を出力する。
【0036】
次に図3を用いて膝関節のアクチュエータ等の負荷を低減する、歩容データの補正について説明する。
まずステップS100で、初期化を行う。ここで初期化とは、許容トルク指令値記憶部26から許容トルク指令値を読み込む処理、補正量データ記憶部28に記憶される補正量をゼロとする処理および歩容データ記憶部30から当初の歩容データを読み込む処理である。
【0037】
次にステップS102で歩容データ上の各代表点の目標位置を各関節の目標関節角加速度に変換する。そしてステップS104で各関節の目標関節角加速度に基づいてロボットの制御を実行する。ここで「ロボットの制御を実行する」とはロボットを実際に歩行させても良いし、シミュレーション上での歩行でもよい。
次にステップS106でロボット制御中の膝関節のアクチュエータへの駆動回路が出力するトルク指令値を取得する。同時にステップS108で一歩行周期を特定する。この処理は歩容データ上で両脚が所定の相対位置関係となった時点から再び同じ相対位置関係となるまでの期間として特定される。従って一歩行周期には右脚が離床する時点(離床時点)と左脚が離床する時点(離床時点)とが含まれる。両脚に対して歩容データを補正するが夫々の脚に対する補正の処理は同様であるので以後は右脚についてのみ説明する。従ってステップS106では右脚の膝関節のアクチュエータへのトルク指令値を取得する。
【0038】
ステップS108で一歩行周期が特定されると、ステップS110で、その一歩行周期中の左脚の離床時点を特定する。離床時点の特定は、前述したように一歩行周期中の歩容データから特定できる。一方ステップS112で、一歩行周期中の右膝関節のアクチュエータへのトルク指令値の平均トルク指令値を算出する。次いでステップS114で、算出された平均トルク指令値と初期化処理ステップS100で読み込んだ許容トルク指令値とを比較する。平均トルク指令値が許容トルク指令値より大きい場合(ステップS114:YES)、右膝関節のアクチュエータ等が過負荷となる可能性が高いのでステップS116で、ステップS110で求めた左脚の離床時点における、体幹目標位置(姿勢)に対する補正量を設定する。具体的には、体幹目標姿勢角のうち、ピッチ軸周り(図8のY軸周り)の目標姿勢角をA1からA1+dAに補正する。ここでA1は当初の歩容データ上での左脚離床時点における体幹ピッチ軸周りの目標姿勢角である。またdAはロボット体幹ピッチ軸周りの目標姿勢角をロボット進行方向に前傾させる側に補正する補正量である。このdAが補正量に相当する。設定された補正量dAはステップS118でこの補正量dAを付加する歩容データ上での時刻とともに補正量データ記憶部28に記憶される。
【0039】
次に記憶された補正量dAを当初の歩容データに加えて再度ステップS102からステップS118を繰り返す。ステップS102の2回目の処理からは、当初の歩容データに対して補正量記憶部28に記憶された補正量データが付加された歩容データが各ステップでの処理の対象となる。ここで2回目以降のステップS106の処理は補正後の歩容データによってロボットの制御が実行された場合のトルク指令値を取得する。このときのトルク指令値を補正後トルク指令値と称することにする。またステップS112で算出される平均トルク指令値を平均補正後トルク指令値と称することにする。そしてステップS114で平均補正後トルク指令値が許容トルク指令値より大きい場合(ステップS114:YES)、ステップS116では、左脚離床時点の補正後の体幹ピッチ軸周り目標姿勢角A1+dAにさらに補正量dAを加算する。即ち当初の歩容データ上での体幹ピッチ軸周りの目標姿勢角A1に対して補正量は2dAとなる。こうしてステップS102からステップS118を繰返し、ステップS114で平均補正後トルク指令値が許容トルク指令値以下となった場合(ステップS114:NO)、他の歩行周期に対して同じ補正量を設定し、設定された補正量を補正量データ記憶部28に記憶して処理を終了する。こうして見た目に円滑な歩行となるよう作成された歩容データを、全歩行周期に対して右膝関節のアクチュエータ等が過負荷とならない歩容データへ修正することができる。左膝関節のアクチュエータ等についても同様の処理を行う。なお、本実施例1では、体幹ピッチ軸目標姿勢角を補正したので、補正された歩容データによる左脚離床時点(補正された歩容データに従ってロボットを歩行させた際の、一歩行周期における左脚が接地脚から遊脚に切り替わる、補正後の離床時点)は変わらない。
【0040】
次に図3のフローチャートに基づく体幹ピッチ軸目標姿勢角の補正が、ロボットの重心位置がロボット進行方向へ移動させることになり、結果膝関節の負荷が低減されることを説明する。
図4に歩容データ上の体幹ピッチ軸目標姿勢角の補正前後の様子を示す。図4(A)は補正量設定前の歩容データ上での左脚62Lの離床時点におけるロボット全体の姿勢を示す。但し両腕及び頭部は省略した。左脚62Lの足先目標位置62LPは僅かに床面から上方にある。即ち図4(A)で示した姿勢において、左脚62Lは接地脚から遊脚に切り替わり、その結果ロボット全体の自重は右脚62Rで支えることになる。ここで図4(A)では体幹60の代表点60Pは体幹60の両脚連結部の位置にあるとする。ロボット本体100はXで示す矢印方向に歩行しているとする。今注目している体幹60のピッチ軸周りの目標姿勢角は、ロボット進行方向に体幹を前傾させる角度であるので、紙面垂直方向の軸周りの角度となる。またその角度はロボット体幹60の上下方向の直線と鉛直方向とのなす角で定義されるものとする。図4(A)の左脚62Lの離床時点の体幹代表点60Pのピッチ軸周り目標姿勢角A1はゼロであるとする。このときロボット本体100全体の重心位置RGのX方向位置をX1であるとする。またこのときの体幹代表点60PのX方向座標もX1であるとする。
図4(A)の状態において右膝関節64Rに加わるモーメントM1はロボット全体の重心位置RGに作用する重力ベクトルGと、右膝関節64Rの中心からこの重力ベクトルGにおろした垂線ML1の大きさで決定される。
【0041】
当初の歩容データによると、一歩行周期の右膝関節のアクチュエータ駆動回路が出力する平均トルク指令値が許容トルク指令値を超えている場合(図3のステップS114:YES)、ステップS116により体幹ピッチ軸周り目標姿勢角をA1からA1+dAに補正する。その状態を示したのが図4(B)である。体幹リンク60の代表点60PのX座標はX1のままであるが体幹姿勢角がA1+dAに補正されたことによってロボット全体の重心位置RGのX方向位置がX1+dXの位置に、即ちロボット進行方向前方へ移動する。なお図4(B)ではロボット重心位置RGはロボット体幹に固定された点として描いているが、厳密には体幹目標姿勢角を補正したことにより、ロボット全体の重心位置の、ロボット体幹60に対する相対位置は変化する。しかし体幹リンク60の質量はロボット各リンク中で最も大きい部類に属するので、ここでは体幹60の目標姿勢角を補正した場合でもロボット全体の重心位置RGはほぼロボット体幹60の重心位置に近いものになる。また体幹が前傾姿勢となることで図示していないが両腕の体幹との連結部もロボット進行方向へ移動する。従って両腕全体がロボット進行方向へ移動することになる。この両腕の移動もロボット全体の重心RGをロボット進行方向へ移動させることに寄与する。
体幹60の目標姿勢角をA1からA1+dAに補正した場合(但しこの場合A1はゼロである)、ロボット右脚62Rの足先目標位置62RPは補正していない。従って足先目標位置62RPとロボット重心位置RGのX方向の距離は補正によって短くなる。よって図4(B)に示すように右膝関節64R中心からロボット全体の重心RGに作用する重力ベクトルGへおろした垂線ML2は図4(A)のML1より小さくなる。これにより図4(B)の状態における右膝関節64Rに作用するモーメントM2は図4(A)の状態におけるモーメントM1より小さくなる。従って上記歩容データの補正により右膝関節64Rのアクチュエータの駆動回路が出力するトルク指令値を小さくすることができる。
【0042】
上記歩容データの補正により、一歩行周期のロボットの姿勢、および膝関節トルク指令値の変化の様子を図5に示す。
図5(A)には補正前の歩容データによる、一歩行周期の所定時点におけるロボットの姿勢を示す。また図5(B)には補正後の歩容データによる所定時点のロボットの姿勢を示す。図4(C)には右膝関節のアクチュエータの駆動回路が出力するトルク指令値の時間変化を示す。図4(D)には、図4(C)のトルク指令値のグラフにおいて、許容トルク指令値(図4(C)に一点鎖線72で示す)に対するトルク指令値の差分を累積したグラフを示す。なお、図4(A)、(B)では図右方向がロボット進行方向である。よって図4(C)、(D)に示すグラフの横軸は時間であり、またロボットが歩行した距離に等価である。
図5(A)において、ロボット本体が100aの姿勢から同じ姿勢である100eとなるまでが一歩行周期である。なお図5(A)において、太線で表した脚が右脚62Rであり、細線で表した脚が左脚62Lである。ロボット本体は100bで左脚が接地脚から遊脚に切り替わり、100cで100aの姿勢と左右の脚の位置が反対となった姿勢となり、100dで右脚が接地脚から遊脚へと切り替わり、再び100aと同じ姿勢である100eとなる。このときの右膝関節のアクチュエータへのトルク指令値のグラフを図5(C)に破線70で示した。トルク指令値は左脚62Lの離床時点である、ロボットが100bの姿勢のときに最大値R1となる。
【0043】
図5(C)に示した一点鎖線72が許容トルク指令値を表す。即ちトルク指令値がこの許容トルク指令値72より上側にあるときはアクチュエータ及び/又はアクチュエータの駆動回路には負荷が蓄積され、トルク指令値がこの許容トルク指令値72より下側にあるときはアクチュエータ等に蓄積された負荷が低減される。そこで許容トルク指令値に対するトルク指令値の差分を累積したグラフを図5(D)に破線74で示す。トルク指令値の累積値がアクチュエータ等の負荷累積値を示す指標となる。累積値はトルク指令値が許容トルク指令値72を超える期間で増加し、トルク指令値が許容トルク指令値72を下回る期間で減少する。一歩行周期の前後の時点における累積値が増加していると、連続歩行する間に累積値は図5(D)に矢印76で示すように徐々に増加していき、いずれアクチュエータ等は過負荷となってしまう。従って一歩行周期の前後の時点でこの累積値の値が変わらなければアクチュエータ及び/又はアクチュエータの駆動回路が過負荷となることを回避できる。
【0044】
図4(A)に示した、左右脚の離床時点(100b及び100dで示す姿勢)におけるロボット体幹のピッチ軸周り目標姿勢角を補正したときの様子を図5(B)に示す。補正前のロボットの姿勢100bが100fへと補正され、100dが100gに補正される。左脚の離床時点における体幹のピッチ軸周りの目標姿勢角をロボット前方へ前傾するよう補正量を設定したことで、左脚62Lの離床時点の、右脚62Rの足先位置に対するロボット全体の重心位置はdXだけ前方へ移動している。100bの姿勢と100fの姿勢との間で示したdXがこれに相当する。右脚62Rの離床時点(100d、100g)についても同様である。この補正後の歩容データによる右膝関節のアクチュエータのトルク指令値を図5(C)に実線78で示す。左脚62Lの離床時点のロボット重心位置が前方へ移動したことで、この離床時点の右膝関節のアクチュエータへのトルク指令値はR2と、補正前のR1より減少させることができた。その結果、補正後の歩容データによるトルク指令値の累積値(図5(D)に実線80で示す)は一歩行周期前後の時点で累積値が増加しないようにすることができた。これにより連続歩行しても膝関節のアクチュエータ等が過負荷となることを防止できる。
【0045】
上記実施例1では図4(A)の符号60Pで示すように体幹の代表点を体幹の下方に設定した。このように、体幹目標姿勢をロボット進行方向に対して前傾させるよう歩容データを補正する場合、ロボット体幹の姿勢を決定する基準点となる体幹上の代表点は、体幹を前傾させることによって体幹の重心位置がロボット前方へ移動するような位置に設定されていることが好ましい。体幹の重心位置がロボット前方へ移動することによって効率よくロボット全体の重心位置をロボット進行方向前方へ移動させることができるからである。なお、通常ロボットの両腕は体幹の上方で体幹と連結されている。同様にロボット頭部も体幹の上方で体幹に連結されている。従って例えば体幹の代表点を体幹の重心に設定した場合でも、体幹を前傾させることによって、両腕および頭部はロボット進行方向に移動する。両腕および頭部の質量がロボット進行方向へ移動することによって、ロボット全体の重心位置をロボット進行方向へ移動させることが可能である。
【0046】
また、一歩行周期前後の時点におけるトルク指令値の累積値が減少するように補正量を設定してもアクチュエータ等が過負荷となることはない。しかし、アクチュエータ等の能力を最大限に引き出すには、一歩行周期前後の時点におけるトルク指令値の、許容トルク指令値に対する累積値が一定となることが好ましい。図3のフローチャート図でステップS102からステップS118の処理を繰り返す際、ステップS116で付加する補正量をできるだけ小さい値とすれば、一歩行周期前後の時点におけるトルク指令値の、許容トルク指令値に対する累積値が増加しない程度に極力一定となるように最終的な補正量を設定することができる。これにより見た目に円滑な歩行となるよう作成された歩容データを、アクチュエータ等の能力を最大限に引き出したスムーズな歩容データへ修正することが可能となる。
【0047】
<実施例2>
次に実施例2を説明する。この実施例2は、歩容データ上での補正量設定の対象の代表点をロボット体幹に設定された代表点(体幹目標位置)とし、この代表点のロボット進行方向の目標を補正するものである。この実施例2は図3のフローチャートのステップS116の処理を、体幹目標位置のX座標値をdXずつ増加させる処理に変更したものである。補正値設定前後のロボットの位置の変化の様子を図6に示す。図6(A)は補正量設定前の左脚離床時のロボットの姿勢であり図4(A)と同じ図である。従って同じ部品には同じ符号を付してある。図4(A)と同様に図6(A)では体幹リンク60の代表点は60Pの位置にある。ロボット本体100はXで示す矢印方向に歩行しており図6(A)の左脚62Lの離床時点の体幹リンク代表点60PのX方向の位置はX1であるとする。このときロボット全体の重心位置RGの位置もX1であるとする。図4(A)の状態において右脚膝関節に加わるモーメントM1はロボット全体の重心位置RGに作用する重力ベクトルGと、右脚膝関節64Rの中心からこの重力ベクトルGにおろした垂線ML1の大きさで決定される。
【0048】
補正前の歩容データでは、一歩行周期の右膝関節64Rのアクチュエータ駆動回路が出力する平均トルク指令値が許容トルク指令値を超えている場合(図3のステップS114:YES)、ステップS116により体幹目標位置のX方向座標をX1からX1+dXに補正する。その状態を示したのが図6(B)である。体幹リンク60の代表点60PはX1+dXの位置に補正されている。この補正によって、ロボット全体の重心位置RGもX1+dXの位置に、即ちロボット進行方向前方へ移動する。なお厳密にはロボット体幹位置の補正量dXと同じ距離だけロボット全体の重心位置は移動しないが体幹リンク60の質量はロボット各リンク中で最も大きい部類に属するのでここではロボット全体の重心位置RGもdXにほぼ近い距離だけ移動すると仮定する。このときロボット右脚の足先目標位置62RPおよび左脚足先目標位置62LPに対しては補正量を設定しない。従って右脚足先目標位置62RPとロボット全体の重心RGのX軸方向(ロボット進行方向)の距離は小さくなる。よって図6(B)に示すようにこのとき右膝関節64R中心からロボット全体の重心RGに作用する重力ベクトルGへおろした垂線ML3は図6(A)のML1より小さくなる。その理由は体幹リンク60のX方向目標位置をロボット進行方向に移動させた際、右脚足先目標位置62RPが変わっていなければ右膝関節64RもX方向へ移動する。しかし体幹リンク代表点60PがX軸方向へ移動する際、幾何学的拘束条件から右脚膝関節64Rは前下方へ移動する。すなわち、体幹リンク60のX軸方向の移動量(dX)よりも右脚膝関節64RのX軸方向への移動量の方が小さくなる。従って図6(B)の垂線ML3の長さは図4(A)のML1の長さより小さくなる。よって図6(B)の状態における右脚膝関節64Rに作用するモーメントM3は図6(A)の状態におけるモーメントM1より小さくなる。従って上記歩容データの補正により右膝関節64Rのアクチュエータの駆動回路が出力するトルク指令値を小さくすることができる。もちろん体幹60の目標位置をX軸方向(すなわち水平方向)へ補正するとともに、体幹目標位置の上下方向の座標を上方へ移動するように補正量を設定することで、右膝関節64Rに作用するモーメントをさらに小さくすることができる。
この実施例2によっても図5と同様に一歩行周期における膝関節アクチュエータ等の過負荷を防止することが可能となる。
【0049】
<実施例3>
次に実施例3として、一方の脚の離床時点を遅らせる歩容データの補正について説明する。この実施例3では図3のフローチャート図において、右膝関節のアクチュエータの平均トルク指令値が許容トルク指令値より大きいと判断された場合(ステップS114:YES)、ステップS116で補正量を設定する処理の内容を、左脚の足先の離床時点を所定時間遅らす処理に変更する。より具体的な補正量の設定を図7により説明する。
補正前の歩容データ上では、時刻t0での左脚足先目標位置の垂直方向位置が床面(歩行面)と同一であり、時刻t1での左脚足先目標位置62LPの垂直方向(以下、この方向をZ軸とする)位置が床面(歩行面)より僅かに上方に設定されているとする。即ち時刻t1が左脚足先の離床時点とする。歩容データ補正前の時刻t1におけるロボットの姿勢を図7(A)に示す。図7(A)の姿勢は図4(A)と同じ図である。このときロボット右膝関節64Rには図4(A)の説明と同様にモーメントM1が作用する。右膝関節64RのアクチュエータはこのモーメントM1に抗するだけのトルクが要求される。そして図7(B)に示すように時刻t2で左脚足先目標位置62LPのZ軸方向の位置は床面より距離Z1だけ上方となる姿勢になるとする。なおここでt0、t1、t2の間隔は例えばロボットの制御サンプリング間隔である。
【0050】
この補正前の歩容データに対して、左脚足先目標位置62LPの離床時点を時刻t2となるよう補正する。補正後の時刻t1でのロボットの姿勢を図7(C)に時刻t2での姿勢を図7(D)に示す。時刻t1での左脚足先目標位置62LPのZ軸方向位置を床面と同じ位置となるよう補正量を設定する。図7(A)と(C)に示す図ではその差はわかりにくいが図7(A)では左脚62Lは遊脚となっており図7(C)では左脚62Lはまだ床面に接地している。即ち図7(A)ではロボットの自重は右脚62R片脚だけで支えている状態であるのに対し、図7(C)ではロボットの自重は両脚で支えている状態である。従って図7(C)の姿勢では右膝関節64Rが出力すべきトルク出力は図7(A)と比較して小さくて済む。そして時刻t2における左脚足先目標位置62LPのZ軸方向位置を床面より僅かに上方となるよう補正量を設定する。即ち時刻t2が左脚62Lの離床時点となるように補正する。この時点(t2)で右脚62Rのみでロボットの自重を支えることとなる。時刻t2での左脚足先目標位置62LPのZ軸方向の目標位置はZ1からほぼゼロへ補正される。即ち補正量は(Z1−dZ)である。ここでdZはZ1に対して微小な量である。体幹60および右脚足先目標位置62RPに対しては補正量を設定していない。従って体幹60は時刻がt1からt2に経過する間、補正前の体幹60の変化(図7(A)から図7(B)への変化)と補正後の体幹60の変化(図7(C)から図7(D)への変化)と同じである。即ち体幹60はt1からt2へと時間が経過する間に前方(図7の矢印Xで示す方向)へ移動するので、左脚62Lの離床時点における右脚足先目標位置62RPに対するロボットの重心RGの位置はロボット進行方向前方に移動することになる。その結果、図7(D)に示すようにロボット右膝関節64Rの中心とロボット重心RGの位置との水平方向距離ML4(即ちロボット自重により右膝関節64Rに作用するモーメントM4の腕)は、補正前の歩容データによる左脚62L離床時点(図7(A))におけるロボット右膝関節64R中心とロボット重心位置RGの水平方向距離ML1より小さくなる。その結果、離床時点に右脚膝ピッチ軸関節64Rのアクチュエータの駆動回路が出力すべきトルク指令値を小さくすることができる。従って右膝関節64Rのアクチュエータ等を過負荷とならないように歩容データへ修正することが可能となる。
【0051】
なお、このとき、時刻t2における左脚足首ピッチ軸関節66Lの位置は補正の前後で変化しないよう左脚足先目標位置/姿勢の補正量を設定することが好ましい。補正量設定前後で左脚足首ピッチ軸関節66Lの位置に変化がなければ左脚の足先リンク68L以外のリンクについて位置/姿勢の変化はなくロボット全体の歩行姿勢を補正前の歩容データとほぼ同等とすることができるからである。具体的には時刻t2における、左足先リンク68Lの代表点目標位置62LP(左足先目標位置、すなわち左脚62Lの足先目標位置)のピッチ軸周りの目標姿勢角が図7(B)に示すA2であったとする。上述したように時刻t2における左脚62Lの足先目標位置62LPのZ軸方向位置は床上dZの位置に補正されている。この補正と同時に左脚足首ピッチ軸関節66Lの位置が補正前と変わらない位置となるよう足先目標位置62LPのX方向位置と足先リンク68Lのピッチ軸周りの姿勢角を補正する。具体的には足先リンク68Lのピッチ軸周りの姿勢角を補正前のA2(図7(B)に示す)からA3(図7(D)に示す)となるよう補正量を設定する。また足先目標位置62LPのX方向位置も僅かにX方向後方に補正する。左脚足首ピッチ軸関節66Lの位置を補正前と同じとし、左脚足先目標位置62LPのZ軸方向の位置が決まれば、幾何学的演算により、補正後の足先リンク68Lのピッチ軸周りの姿勢角A3と、足先目標位置62LPのX方向位置とを求めることができる。
【0052】
実施例1から3では、一方の脚が接地脚から遊脚に切り替わる離床時点を特定し、その離床時点における歩容データを補正する例を示した。さらに特定された離床時点に先立つ所定期間内の歩容データに対して漸増する補正量を設定し、その離床時点に続く所定期間の歩容データに対して漸減する補正量を設定することも好適である。このとき、特定された離床時点における補正量が最大値となるように漸増・漸減する補正量を設定する。これにより、歩容データ内の補正された所定代表点の経時的目標位置データも経時的に滑らかなものとなり、その結果、実現されるロボットの動作も滑らかなものとすることができる。なお、特定された離床時点の前後の所定期間を合わせた期間は一歩行周期内とすることが好ましい。前後の所定期間を合わせた期間が一歩行周期を超えると、連続して歩行する歩容データである場合、歩行周期の切り替わり時点付近の歩容データに対して二重に補正量を設定してしまうことになるからである。
【0053】
また、本発明は特にピッチ軸方向に回転軸を有する膝関節に注目したものであるが、膝関節と同様に片足立脚時に自重を支えることになる下腿リンクと足先リンクとを連結する足首ピッチ軸関節に対しても本発明は適用可能である。
【0054】
また、実施例1から3で例示した以外の代表点に対しても同様の補正をすることができる。例えば手先目標位置/姿勢や頭部リンクの目標位置/姿勢などがある。どの代表点を選択しても、一方の脚の離床時にロボット重心をロボット進行方向前方へ移動させるような補正量の設定は可能だからである。
【0055】
また上記実施例では、ロボット重心位置をロボット前方へ移動するよう補正量を設定したがロボット全体の重心の近似値として体幹リンク及び/又は腰リンクなど、ロボットを構成するリンク群の中で質量の大きい、好ましくは最大質量であるリンクの重心位置を用いても良い。ロボット全体の重心位置を求めるには各リンクの相対位置関係に基づいて算出する必要があるが特定のリンクの重心位置でロボット全体の重心位置を近似することで計算量を低減することができる。
【0056】
またロボット脚部の膝関節のアクチュエータの駆動回路が一定の値で継続的に出力可能な許容トルク指令値を記憶し、一歩行周期における膝関節のアクチュエータのトルク平均値が許容トルク値以下となるように作成された歩容データによりロボットを制御するによって、歩容データが終了するまで膝関節のアクチュエータ等を過負荷にすることなくロボットを制御することが可能となる。
【0057】
なお、ロボットの重心位置を、ロボット進行方向へ移動させる、には、ロボット重心位置を、他方の脚(接地脚から遊脚に切り替わる側の脚とは異なる脚)の足先位置に対して相対的にロボット進行方向へ移動させる、ことが好ましい。一方の脚が接地脚から遊脚に切り替わる離床時点において、他方の脚の膝関節には、他方の脚の足先位置とロボット重心位置とのロボット前後方向の距離に応じたモーメントが作用する。ロボット重心位置を、他方の脚の足先位置に対して相対的にロボット進行方向へ移動させることによってこの他方の脚の膝関節に作用するモーメントを小さくすることができる。これにより見た目に円滑な歩行となるよう作成された歩容データを、この膝関節のアクチュエータの駆動回路のトルク指令値を小さくした歩容データへ修正することができる。この膝関節のアクチュエータ等を過負荷とすることを回避できる。
【0058】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【0059】
【図1】実施例1のロボット歩行制御装置のブロック図である。
【図2】アクチュエータ制御部のブロック図である。
【図3】実施例1の歩容データ補正量設定のフローチャート図である。
【図4】実施例1による歩容データ補正前後のロボット姿勢を示す図である。
【図5】一歩行周期における各時点でのロボットの姿勢、膝関節トルク指令値およびトルク指令値累積値の時間変化を示す図である。
【図6】実施例2による歩容データ補正前後のロボット姿勢を示す図である。
【図7】実施例3による歩容データ補正前後のロボット姿勢を示す図である。
【図8】ロボット本体のリンク構造を概説する図である。
【符号の説明】
【0060】
10:ロボット歩行制御装置
20:アクチュエータ制御部
22:平均トルク算出部
24:補正量設定部
26:許容トルク指令値記憶部
28:補正量データ記憶部
30:歩容データ
32:歩容データ作成装置
34:離床時点特定部
44:加速度演算部
46:フィードバック制御部
48:目標値変換部
50:駆動回路
52:関節アクチュエータ
56加速度センサ
100:ロボット本体




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013