(58)【調査した分野】(Int.Cl.,DB名)
基体から延設された脚リンクを含む複数の可動リンクを有し、各可動リンクの先端部が、該先端部と前記基体との間で該可動リンクに設けられた関節の作動によって前記基体に対して動くように構成された移動ロボットの各関節の動作制御のための制御用目標値を所定の制御処理周期で逐次生成する動作目標生成装置であって、
各制御処理周期において、各可動リンクの先端部の運動状態の現在時刻以後の目標値の予測軌道である可動リンク先端部予測軌道を設定する可動リンク先端部予測軌道設定手段と、
各制御処理周期において、前記移動ロボットの全体の運動量の現在時刻以後の目標値の予測軌道である全体運動量予測軌道を設定する全体運動量予測軌道設定手段と、
各制御処理周期において、前記設定された可動リンク先端部予測軌道及び全体運動量予測軌道を実現し得るように、現在時刻以後の前記移動ロボットの全体の運動状態の目標値の予測軌道である全体運動状態予測軌道を暫定的に決定する全体運動状態予測軌道決定手段と、
各制御処理周期において、前記各可動リンクの各関節の運動状態に関する所定の制約条件であって、前記全体運動状態予測軌道決定手段の処理で使用されていない関節運動制約条件と、現在時刻以後の複数の時刻における前記移動ロボットの所定種類の状態量に関する所定の評価関数とを用いて2次計画問題の解法手法の演算処理を実行することにより、前記関節運動制約条件を満たす範囲内で、前記所定の評価関数の値を最小化するように、前記複数の時刻における前記基体及び各可動リンクの先端部のそれぞれの運動加速度を算出し、前記複数の時刻のうちの初期時刻における前記基体及び各可動リンクの先端部のそれぞれの運動加速度の算出値に基づいて、前記基体及び各可動リンクの先端部のそれぞれの新たな目標運動加速度を決定する運動加速度決定手段と、
前記決定された目標運動加速度を実現するように各制御処理周期における移動ロボットの各関節の制御用目標値を決定する関節制御用目標値決定手段とを備え、
前記所定の評価関数は、前記複数の時刻における前記運動加速度の算出値により規定される前記基体及び各可動リンクの先端部のそれぞれの運動速度と前記全体運動状態予測軌道により規定されるヤコビアン行列とを用いて算出される前記複数の時刻における前記所定種類の状態量の時系列と前記全体運動状態予測軌道により規定される前記複数の時刻における前記所定種類の状態量の時系列との一致度合に応じて値が変化するように構成された評価関数であり、
前記関節運動制約条件は、前記複数の時刻における前記運動加速度の算出値により規定される前記基体及び各可動リンクの先端部のそれぞれの運動速度と前記全体運動状態予測軌道により規定されるヤコビアン行列とを用いて算出される前記各可動リンクの各関節の運動状態の可変範囲を規定する不等式により表される制約条件であることを特徴とする移動ロボットの動作目標生成装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に見られる如き従来の技術では、ロボットの動作目標を生成する各時刻毎(所定の制御処理周期毎)に、その時刻での動作目標が、各関節の運動状態の制約条件(以降、関節制約条件ということがある)を満たすものとなるように、各時刻での動作目標を生成するようにしている。
【0005】
このため、現状のパターンで継続的に動作目標を生成した場合に、近い将来に関節制約条件を満たすことができなくなる可能性が高い状況であっても、動作目標の生成パターンを事前に調整しておくことが困難である。
【0006】
その結果、動作目標の生成パターンの変動が生じやすくなって、該生成パターンの滑らかさ、ひいては、移動ロボットの動作の滑らかさが損なわれる虞があった。
【0007】
本発明はかかる背景に鑑みてなされたものであり、各関節の運動状態の制約条件を満たしつつ、移動ロボットを滑らかに動作させ得る動作目標を適切に生成することができる装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の移動ロボットの動作目標生成装置は、かかる目的を達成するために、基体から延設された脚リンクを含む複数の可動リンクを有し、各可動リンクの先端部が、該先端部と前記基体との間で該可動リンクに設けられた関節の作動によって前記基体に対して動くように構成された移動ロボットの各関節の動作制御のための制御用目標値を所定の制御処理周期で逐次生成する動作目標生成装置であって、
各制御処理周期において、各可動リンクの先端部の運動状態の現在時刻以後の目標値の予測軌道である可動リンク先端部予測軌道を設定する可動リンク先端部予測軌道設定手段と、
各制御処理周期において、前記移動ロボットの全体の運動量の現在時刻以後の目標値の予測軌道である全体運動量予測軌道を設定する全体運動量予測軌道設定手段と、
各制御処理周期において、前記設定された可動リンク先端部予測軌道及び全体運動量予測軌道を実現し得るように、現在時刻以後の前記移動ロボットの全体の運動状態の目標値の予測軌道である全体運動状態予測軌道を暫定的に決定する全体運動状態予測軌道決定手段と、
各制御処理周期において、前記各可動リンクの各関節の運動状態に関する所定の制約条件であって、前記全体運動状態予測軌道決定手段の処理で使用されていない関節運動制約条件と、現在時刻以後の複数の時刻における前記移動ロボットの所定種類の状態量に関する所定の評価関数とを用いて2次計画問題の解法手法の演算処理を実行することにより、前記関節運動制約条件を満たす範囲内で、前記所定の評価関数の値を最小化するように、前記複数の時刻における前記基体及び各可動リンクの先端部のそれぞれの運動加速度を算出し、前記複数の時刻のうちの初期時刻における前記基体及び各可動リンクの先端部のそれぞれの運動加速度の算出値に基づいて、前記基体及び各可動リンクの先端部のそれぞれの新たな目標運動加速度を決定する運動加速度決定手段と、
前記決定された目標運動加速度を実現するように各制御処理周期における移動ロボットの各関節の制御用目標値を決定する関節制御用目標値決定手段とを備え、
前記所定の評価関数は、前記複数の時刻における前記運動加速度の算出値により規定される前記基体及び各可動リンクの先端部のそれぞれの運動速度と前記全体運動状態予測軌道により規定されるヤコビアン行列とを用いて算出される前記複数の時刻における前記所定種類の状態量の時系列と前記全体運動状態予測軌道により規定される前記複数の時刻における前記所定種類の状態量の時系列との一致度合に応じて値が変化するように構成された評価関数であり、
前記関節運動制約条件は、前記複数の時刻における前記運動加速度の算出値により規定される前記基体及び各可動リンクの先端部のそれぞれの運動速度と前記全体運動状態予測軌道により規定されるヤコビアン行列とを用いて算出される前記各可動リンクの各関節の運動状態の可変範囲を規定する不等式により表される制約条件であることを特徴とする
(第1発明)。
【0009】
なお、本発明において、前記基体の運動状態は、該基体の位置及び姿勢と、該位置及び姿勢の時間的変化率としての該基体の運動速度と、該基体の運動速度の時間的変化率としての運動加速度とのうちのいずれか1つ又は複数の状態量を意味する。このことは、各可動リンクの先端部の運動状態についても同様である。
【0010】
また、各関節の運動状態は、該関節の変位量と、該変位量の時間的変化率としての変位速度と、該変位速度の時間的変化率としての変位加速度とのうちのいずれか1つ又は複数の状態量を意味する。
【0011】
また、移動ロボットの全体の運動量は、該移動ロボットの全体の並進運動量と角運動量とのうちの一方又は両方の運動量を意味する。
【0012】
また、移動ロボットの全体の運動状態は、該移動ロボットの全ての部位の位置及び姿勢を規定し得る状態量(例えば、基体の位置及び姿勢と、移動ロボットの全ての関節の変位量との組等)を意味する。
【0013】
上記第1発明によれば、前記移動ロボットの各関節の制御用目標値(例えば各関節の目標変位量、目標変位速度等)を生成する各制御処理周期において、前記設定された可動リンク先端部予測軌道及び全体運動量予測軌道を実現し得るように、前記全体運動状態予測軌道が暫定的に決定される。
【0014】
この全体運動状態予測軌道は、現在時刻以後の可動リンク先端部予測軌道と全体運動量予測軌道とを実現し得るものである一方、各可動リンクの関節の運動状態に関する前記所定の制約条件(関節運動制約条件)を使用せずに(考慮せずに)決定されるものである。従って、該全体運動状態予測軌道は、前記所定の制約条件を満たすとは限らない。
【0015】
なお、このような全体運動状態予測軌道の決定手法としては、例えば分解運動量制御の手法等を採用できる。
【0016】
そして、前記2次計画問題の解法手法の演算処理によって、前記関節運動制約条件を満たす範囲内で、現在時刻以後の複数の時刻における移動ロボットの所定種類の状態量に関する所定の評価関数の値を最小化するように、現在時刻以後の複数の時刻における前記基体及び各可動リンクの先端部のそれぞれの運動加速度が算出される。
【0017】
上記所定の評価関数は、2次計画問題の解法手法の演算処理によって求められる前記複数の時刻における前記運動加速度の算出値(2次計画問題の解)の時系列に応じて規定される前記所定種類の状態量の値の時系列と、前記全体運動状態予測軌道により規定される前記所定種類の状態量の値の時系列との一致度合を評価するための関数であり、当該一致度合が高いほど、該評価関数の値が小さくなるものである。
【0018】
なお、前記所定種類の状態量は、移動ロボットの目的の動作を行う上で好適な制御用目標値を決定し得るように、あらかじめ実験、シミュレーション等に基づいて選定しておけばよい。
【0019】
ここで、本発明では、前記所定の評価関数は、より詳しくは、前記複数の時刻における前記運動加速度の算出値により規定される前記基体及び各可動リンクの先端部のそれぞれの運動速度と前記全体運動状態予測軌道により規定されるヤコビアン行列とを用いて算出される前記複数の時刻における前記所定種類の状態量の時系列と前記全体運動状態予測軌道により規定される前記複数の時刻における前記所定種類の状態量の時系列との一致度合に応じて値が変化するように構成された評価関数とされている。
【0020】
また、前記関節運動制約条件は、前記複数の時刻における前記運動加速度の算出値により規定される前記基体及び各可動リンクの先端部のそれぞれの運動速度と前記全体運動状態予測軌道により規定されるヤコビアン行列とを用いて算出される前記各可動リンクの各関節の運動状態の可変範囲を規定する不等式により表される制約条件とされている。
【0021】
このため、各制御処理周期における前記2次計画問題の解法手法の演算処理では、前記複数の時刻のそれぞれにおける前記所定種類の状態量と、前記各可動リンクの各関節の運動状態とを、前記全体運動状態予測軌道により規定される固定的なヤコビアン行列を用いて算出できる。従って、前記2次計画問題の解法手法の演算処理による前記運動加速度の算出処理を短時間で効率よく完了することができる。
【0022】
この場合、2次計画問題の解法手法の演算処理によって求められる前記複数の時刻における前記運動加速度の算出値により規定されるロボットの全体の運動状態の軌道と、前記全体運動状態予測軌道とは前記関節運動制約条件に起因して一致しない場合があるものの、前記複数の時刻のうちの現在時刻により近い側の時刻では、一般に両軌道で大きな相違は生じ難い。
【0023】
従って、前記複数の時刻のうちの現在時刻により近い側の時刻では、前記全体運動状態予測軌道により規定される固定的なヤコビアン行列を用いても、前記評価関数による評価対象の前記所定種類の状態量と、前記関節運動制約条件を適用する前記各可動リンクの各関節の運動状態とを、前記全体運動状態予測軌道により規定されるヤコビアン行列を用いて高い信頼性で算出することができる。
【0024】
また、前記複数の時刻での前記関節運動制約条件を満たすように、該複数の時刻での運動加速度(基体及び各可動リンクの先端部のそれぞれの運動加速度)が算出されるので、現在時刻以後の近い将来においても前記関節運動制約条件を満たすように当該運動加速度を算出できる。
【0025】
そして、各制御処理周期では、現在時刻以後の前記複数の時刻のうちの初期時刻(現在時刻寄りの時刻)における前記基体及び各可動リンクの先端部のそれぞれの運動加速度の算出値に基づいて、前記基体及び各可動リンクの先端部のそれぞれの新たな目標運動加速度が決定される。
【0026】
これにより、制御処理周期毎に、現在時刻以後の近い将来に、いずれかの可動リンクの関節の運動状態が前記関節運動制約条件を満たさなくなるような状況が発生しないようにしつつ、前記基体及び各可動リンクの先端部のそれぞれの新たな目標運動加速度を決定できる。また、その決定処理で、前記全体運動状態予測軌道により規定されるヤコビアン行列を使用することによって、当該決定処理を短時間で効率よく行うことができる。
【0027】
そして、第1発明では、上記の如く決定された目標運動加速度を実現するように各制御処理周期における移動ロボットの各関節の制御目標値が決定される。
【0028】
従って、第1発明によれば、制御処理周期毎に、現在時刻以後の近い将来に、いずれかの可動リンクの関節の運動状態が関節運動制約条件を満たさなくなるような状況が発生しないように各関節の制御目標値を決定できると共に、その決定処理を効率よく短時間で実行できる。
【0029】
よって、第1発明によれば、各関節の運動状態の制約条件(関節運動制約条件)を満たしつつ、移動ロボットを滑らかに動作させ得る動作目標を適切に生成することができる。
【0030】
本願発明者の各種実験、検討によれば、前記所定種類の状態量は、少なくとも前記移動ロボットの全体の運動量を含み、前記所定の評価関数は、前記複数の時刻における前記運動加速度の算出値により規定される前記基体及び各可動リンクの先端部のそれぞれの運動速度と前記全体運動状態予測軌道により規定されるヤコビアン行列とを用いて算出される前記複数の時刻における前記移動ロボットの全体の運動量の時系列と、前記全体運動量予測軌道により規定される前記複数の時刻における当該運動量の目標値の時系列との一致度合いを示す運動量評価指標値に応じて値が変化するように構成されていることが好ましい(第2発明)。
【0031】
なお、前記全体運動状態予測軌道は、前記全体運動量予測軌道を実現するものであるから、前記全体運動量予測軌道により規定される前記複数の時刻における前記移動ロボットの全体の運動量の目標値の時系列は、換言すれば、前記全体運動状態予測軌道により規定される前記複数の時刻における当該運動量の時系列に相当するものである。
【0032】
かかる第2発明によれば、前記各可動リンクの各関節の制約条件を満たす範囲内で、現在時刻以後の複数の時刻における前記運動量の時系列に関する一致度合ができるだけ高くなる(ひいては、前記評価関数の値が小さくなる)ように、前記基体及び各可動リンクの先端部の運動加速度を算出することができる。
【0033】
上記第2発明では、前記所定種類の状態量は、前記基体及び各可動リンクの先端部のそれぞれの運動加速度をさらに含み、前記所定の評価関数は、前記複数の時刻における前記基体及び各可動リンクの先端部のそれぞれの運動加速度の算出値の時系列と前記全体運動状態予測軌道により規定される、前記複数の時刻における当該運動加速度の時系列との一致度合を示す運動加速度評価指標値と、前記運動量評価指標値とに応じて値が変化するように構成されていることがより好ましい(第3発明)。
【0034】
この第3発明によれば、前記各可動リンクの各関節の制約条件を満たす範囲内で、現在時刻以後の複数の時刻における前記運動量の時系列に関する一致度合と、前記基体及び各可動リンクの先端部の運動加速度に関する一致度合との両方ができるだけ高くなる(ひいては、前記評価関数の値が小さくなる)ように、前記基体及び各可動リンクの先端部の運動加速度を算出することができる。
【0035】
また、上記第2発明又は第3発明では、前記全体運動量予測軌道設定手段は、前記移動ロボットの現在時刻以後の目標ZMPの予測軌道を設定する手段を含んでおり、前記所定種類の状態量を構成する前記移動ロボットの全体の運動量は、前記移動ロボットの目標ZMPの周りの角運動量を含むことが好ましい(第4発明)。
【0036】
なお、上記目標ZMPは、ZMP(Zero Moment Point)の目標位置を意味する。
【0037】
上記第4発明によれば、動力学的に適切な動作を行うことができるように、移動ロボットの動作目標(各関節の動作制御のための関節制御用目標値)を決定できる。
【発明を実施するための形態】
【0039】
本発明の一実施形態を
図1〜
図6を参照して以下に説明する。
図1は本実施形態で例示する移動ロボットの概略構成を模式的に示している。この移動ロボット1(以降、単にロボット1という)は、基体2と、基体2から延設された複数(本実施形態では4つ)の可動リンク3L,3R,4L,4Rと、頭部5とを有する人型の移動ロボットである。
【0040】
4つの可動リンク3L,3R,4L,4Rのうちの可動リンク3L,3Rは、左右一対の脚リンクに相当する可動リンク、可動リンク4L,4Rは、左右一対の腕リンクに相当する可動リンクである。
【0041】
なお、図示の参照符号中の「L」、「R」は、それぞれロボット1の左側の構成要素、右側の構成要素を示す符号である。但し、以降の説明では、左右を区別する必要が無いときは、符号「L」,「R」を省略する。また、可動リンク3L,3Rを脚リンク3L,3R(又は脚リンク3)と称し、可動リンク4L,4Rを腕リンク4L,4R(又は腕リンク4)と称する場合がある。
【0042】
さらに、可動リンク3L,3R,4L,4Rを、それぞれ順番に、第1可動リンク,第2可動リンク、第3可動リンク、第4可動リンクと称し、任意の1つの可動リンクを第i可動リンク(i=1,2,3,4)と称する場合がある。
【0043】
基体2は、ロボット1の上体に相当するリンク部分である。この基体2は、本実施形態では、下側基体10と、この下側基体10の上方に配置された上側基体11との2つの要素リンクと、該下側基体10及び上側基体11を連結する関節12とから構成されている。関節12は、ヨー軸周り(Z軸周り)の回転自由度を有する。以降、関節12を基体関節12ということがある。
【0044】
可動リンク3L,3R,4L,4Rのうちの脚リンク3L,3Rは、互いに同じ構造のものである。具体的には、各脚リンク3は、下側基体10に股関節部13を介して連結された大腿部14と、この大腿部14に膝関節部15を介して連結された下腿部16と、この下腿部16に足首関節部17を介して連結された足平部18とを、該脚リンク3を構成する要素リンクとして備える。足平部18が脚リンク3の先端部を構成する要素リンクである。
【0045】
この場合、股関節部13は、ヨー軸周り(Z軸周り)、ピッチ軸周り(Y軸周り)及びロール軸周り(X軸周り)の回転自由度をそれぞれ有する3つの関節19,20,21により構成されている。また、膝関節部15は、ピッチ軸まわりの回転自由度を有する関節22により構成されている。また、足首関節部17は、ピッチ軸周り及びロール軸周りの回転自由度をそれぞれ有する2つの関節23,24により構成されている。
【0046】
従って、各脚リンク3の先端部(足平部18)は、本実施形態では、下側基体10に対して、6自由度の運動自由度を有する。なお、上記の説明における各脚リンク3の関節19〜24の回転軸(ロール軸、ピッチ軸、ヨー軸)は、脚リンク3を上下方向に延在させた状態での回転軸を示している。また、X軸、Y軸、Z軸は、
図1に示した3軸直交座標系の各座標軸である。
【0047】
可動リンク3L,3R,4L,4Rのうちの腕リンク4R,4Lは、互いに同じ構造のものである。具体的には、各腕リンク4は、上側基体11に肩関節部25を介して連結された上腕部26と、この上腕部26に肘関節部27を介して連結された前腕部28と、この前腕部28に手首関節部29を介して連結されたハンド30とを、該腕リンク4を構成する要素リンクとして備える。ハンド30が、腕リンク4の先端部を構成する要素リンクである。
【0048】
この場合、肩関節部25は、ピッチ軸周り、ロール軸周り、及びヨー軸周りの回転自由度をそれぞれ有する3つの関節31,32,33により構成されている。また、肘関節部27は、ピッチ軸周りの回転自由度を有する関節34により構成されている。また、手首関節部29は、ピッチ軸周り及びロール軸周りの回転自由度をそれぞれ有する2つの関節35,36により構成されている。
【0049】
従って、各腕リンク4の先端部(ハンド30)は、本実施形態では、上側基体11に対して、6自由度の運動自由度を有する。なお、上記の説明における各腕リンク4の関節31〜37の回転軸(ロール軸、ピッチ軸、ヨー軸)は、腕リンク4を上下方向に延在させた状態での回転軸を示している。
【0050】
頭部5は、上側基体11の上方に配置され、該上側基体11に固定されている。ただし、頭部5は、チルト動作あるいはパン動作等を行い得るように、上側基体11に対して関節を介して連結されていてもよい。その場合には、頭部5を、基体2から延設された1つの可動リンクと見なすこともできる。
【0051】
以上の構成を有するロボット1は、各脚リンク3の6個の関節19〜24を駆動することによって、各脚リンク3の空間的な運動が行なわれ、この運動によって床上を移動することが可能となっている。例えば、人の歩行動作あるいは走行動作と同様の形態(歩容)で脚リンク3R,3Lを運動させることによって、ロボット1の歩行動作あるいは走行動作が行なうことが可能である。
【0052】
また、各腕リンク4の6個の関節31〜36を駆動することによって、各腕リンク4の空間的な運動が行なわれ、この運動によって各腕リンク4のハンド30を、適宜の物体に接触させる等の作業を行なうことが可能となっている。
【0053】
さらに、各腕リンク4の先端部を接地(着床)させることで、該腕リンク4を脚リンクとして機能させることも可能である。
【0054】
また、本実施形態では、基体2を構成する下側基体10と、上側基体11とが基体関節12を介して連結されているので、この基体関節12を駆動することによって、基体2をその体幹軸に相当する基体関節12の回転軸周りに捩じることが可能となっている。
【0055】
図1での図示は省略したが、ロボット1には、
図2に示すように、上記の各関節をそれぞれ回転駆動する関節アクチュエータ40と、ロボット1の動作制御を行なう制御処理ユニット41とが搭載されている。
【0056】
関節アクチュエータ40は、例えば電動モータあるいは油圧アクチュエータにより構成されたものであり、各関節毎に備えられている。この場合、各関節アクチュエータ40による各関節の駆動機構は公知の構造のものでよい。また、関節アクチュエータ40は、回転型のアクチュエータに限らず、直動型のアクチュエータであってもよい。
【0057】
制御処理ユニット41は、CPU、RAM、ROM、インターフェース回路等を含む電子回路ユニットにより構成されている。この制御処理ユニット41は、実装されるプログラムとハードウェア構成とにより実現される主要な機能として、ロボット1の動作目標(各関節の動作制御のための制御用目標値)を逐次生成する動作目標生成部42と、該動作目標に応じてロボット1の各関節アクチュエータ40を制御する関節アクチュエータ制御部43とを備える。
【0058】
動作目標生成部42は、本発明の動作目標生成装置としての機能を制御処理ユニット41に付与するものである。この動作目標生成部42は、ロボット1の各関節の動作制御のための制御用目標値(ロボット1の動作目標)として、各関節の変位量の目標値(以降、目標変位量又は目標関節変位量という)を所定の制御処理周期で逐次決定する処理を実行する。
【0059】
なお、本実施形態のロボット1の各関節は回転型の関節であるので、各関節の変位量は、該関節の回転角である。
【0060】
関節アクチュエータ制御部43は、各関節の実際の変位量を、動作目標生成部42により決定された目標変位量に追従させるように、各関節に対応する関節アクチュエータ40を制御する。
【0061】
この場合、各関節の実際の変位量(回転角)が、ロボット1に搭載された図示しないロータリエンコーダ等の変位量センサにより検出される。そして、関節アクチュエータ制御部43は、各関節の実際の変位量の検出値と目標関節変位量との偏差に応じて、フィードバック制御(サーボ制御)により関節アクチュエータ40の駆動力を制御する。
【0062】
なお、動作目標生成部42及び関節アクチュエータ制御部43の処理は並行して行われる。すなわち、ロボット1の動作目標の生成処理は、ロボット1の実際の動作制御を行いつつ、リアルタイムで実行される。
【0063】
以降、制御処理ユニット41の動作目標生成部42の処理を具体的に説明する。
【0064】
ここで、本実施形態で使用する用語等について補足説明をしておく。各可動リンク3,4の先端部(足平部18又はハンド30)、下側基体10等、ロボット1の各部位(一体構造の部位)の「位置」は、該部位のあらかじめ定めた代表点の空間的な位置を意味し、該部位の「姿勢」は、該部位の空間的な向きを意味する。
【0065】
各部位の「位置」及び「姿勢」は、それぞれ、ロボット1の動作環境に任意に設定されたグローバル座標系(慣性座標系)で見た位置及び姿勢として表現される。グローバル座標系としては、例えば、
図1に示すように、互いに直交する2つの水平軸をX軸、Y軸とし、これらに直交する鉛直軸をZ軸とするXYZ直交座標系が使用される。
【0066】
この場合、各部位の「位置」は、グローバル座標系の各軸方向の位置成分からなる3成分のベクトルとして表現される。同様に、各部位の「姿勢」は、グローバル座標系の各軸周りの角度成分(例えばオイラー角で表現される角度成分)からなる3成分のベクトルにより表現される。
【0067】
また、各部位の「位置」及び「姿勢」のそれぞれの時間的変化率を該部位の運動速度、各部位の運動速度の時間的変化率を該部位の運動加速度という。「位置」に関する運動速度及び運動加速度は、それぞれ並進速度、並進加速度を意味し、「姿勢」に関する運動速度及び運動加速度は、それぞれ角速度、角加速度を意味する。並進速度、並進加速度、角速度、角加速度は、それぞれ、グローバル座標系で見た3成分のベクトルにより表現される。このことは、運動量(並進運動量及び角運動量)についても同様である。
【0068】
また、ロボット1の各関節の変位量の時間的変化率を、該関節の変位速度、各関節の変位速度の時間的変化率を該関節の変位加速度という。
【0069】
なお、本実施形態では、基体2は、下側基体10及び上側基体11とこれらを連結する基体関節12とから構成されるので、基体2の位置及び姿勢は、下側基体10及び上側基体11のうちのいずれか一方である基体基準部位(例えば下側基体10)の位置及び姿勢と、基体関節12の変位量とから構成されるものとする。
【0070】
同様に、基体2の運動速度は、基体基準部位の運動速度と基体関節12の変位速度とから構成され、基体2の運動加速度は、基体基準部位の運動加速度と基体関節12の変位加速度とから構成されるものとする。
【0071】
また、各部位の位置、姿勢、運動速度、運動加速度、あるいは、各関節の変位量、変位速度、変位加速度を総称的に該部位又は該関節の「運動状態」ということがある。
【0072】
また、位置、姿勢、運動速度、運動加速度、運動量、あるいは、各関節の変位量、変位速度、変位加速度等、任意の状態量の「軌道」は、該状態量の瞬時値の時系列を意味する。
【0073】
また、符号「↑」はベクトル(縦ベクトル)を表記する記号として使用する。
【0074】
また、任意のベクトル又は行列を示す変数に付する上付きの添え字「T」は、該ベクトル又は行列の転置を意味する。
【0075】
次に、動作目標生成部42の処理を概略的に説明しておく。動作目標生成部42は、所定の制御処理周期毎に、現在時刻以後の各可動リンク3,4の先端部の運動状態の目標値の予測軌道と、現在時刻以後のロボット1の全体の運動量(並進運動量及び角運動量)の目標値の予測軌道とを設定する。
【0076】
そして、動作目標生成部42は、これらの予測軌道を実現し得るように、現在時刻以後のロボット1の全体の運動状態の目標値(詳しくは、ロボット1の各部位の位置及び姿勢、並びに各関節の変位量を規定する目標値)の予測軌道である全体運動状態予測軌道を生成する。
【0077】
この全体運動状態予測軌道は、ロボット1の各関節の変位量の可変範囲等、各関節の運動状態に関する制約条件(以降、関節運動制約条件という)を考慮せずに(該関節運動制約条件が無いものとみなして)生成される暫定的な基準軌道である。従って、全体運動状態予測軌道は、関節運動制約条件を満たしていない場合もある。
【0078】
そして、動作目標生成部42は、この全体運動状態予測軌道により規定されるヤコビアン行列と、ロボット1の所定種類の状態量に関する所定の評価関数と、関節運動制約条件を表す不等式とを用いて2次計画問題の解法手法の演算処理を実行することで、ロボット1の基体2と各可動リンク3,4(第1〜第4可動リンク)の先端部とのそれぞれの現在時刻以後の運動加速度の時系列(所定の刻み時間ΔT毎の複数の時刻における当該運動加速度の瞬時値の時系列)を算出する。
【0079】
これらの運動加速度の時系列(軌道)は、それにより規定される運動速度(基体2及び各可動リンク3,4の先端部の運動速度)と前記全体運動状態予測軌道により規定されるヤコビアン行列とから算出されるロボット1の所定種類の状態量の値の時系列と、全体運動状態予測軌道により規定される当該所定種類の状態量の値の時系列との一致度合いが、関節運動制約条件を満たし得る範囲内でできるだけ高くなるように算出される。
【0080】
そして、上記運動加速度の算出値の時系列のうちの初期時刻(本実施形態では現在時刻)での算出値に基づいて、現在の制御処理周期で求めるべきロボット1の基体2及び各可動リンク3,4の先端部のそれぞれの目標運動加速度(ロボット1の実際の制御用の目標運動加速度)が決定される。
【0081】
これにより、制御処理周期毎に、基体2と各可動リンク3,4の先端部とのそれぞれの目標運動加速度が決定される。
【0082】
そして、動作目標生成部42は、これらの目標運動加速度から、各制御処理周期における基体2の位置及び姿勢の制御用目標値と、各可動リンク3,4の先端部の位置及び姿勢の制御用目標値とを決定する。
【0083】
さらに、動作目標生成部42は、これらの制御用目標値から逆キネマティクス演算によって、各制御処理周期におけるロボット1の各関節の実際の制御用の目標変位量(前記関節アクチュエータ制御部43で使用する目標変位量)を決定する。
【0084】
かかる処理を実行する動作目標生成部42は、主要な処理部として
図3のブロック図に示す如き処理部を備える。
【0085】
すなわち、動作目標生成部42は、可動リンク3L,3R,4L,4Rのそれぞれの先端部(足平部18又はハンド30)の現在時刻以後の運動状態↑XL1,↑XL2,↑XL3,↑XL4の目標値↑XL1_ref,↑XL2_ref,↑XL3_ref,↑XL4_refの予測軌道である可動リンク先端部予測軌道を所定の制御処理周期毎に設定する可動リンク先端部予測軌道設定部51と、現在時刻以後のロボット1の全体の運動量↑PL(並進運動量及び角運動量)の目標値↑PL_refの予想軌道である全体運動量予測軌道を所定の制御処理周期毎に設定する全体運動量予測軌道設定部52とを備える。
【0086】
上記可動リンク先端部予測軌道及び全体運動量予測軌道は、現在時刻から所定の刻み時間ΔT毎の時刻における瞬時値の時系列である。このことは、後述する他の予測軌道についても同様である。上記刻み時間ΔTは、例えば動作目標生成部42の制御処理周期の時間Δtと同じである。ただし、ΔTはΔtと異なっていてもよく、例えばΔT>Δtであってもよい。
【0087】
上記可動リンク先端部予測軌道における各可動リンク3,4(第i可動リンク)の先端部の運動状態↑XLi(瞬時値)の目標値↑XLi_refは、本実施形態では、該第i可動リンクの先端部の位置及び姿勢の目標値である。以降、各可動リンク3,4(第i可動リンク)の先端部の位置及び姿勢の目標値↑XLi_ref(i=1〜4)のそれぞれを目標位置姿勢↑XLi_refという。
【0088】
各可動リンク3,4の先端部の目標位置姿勢↑XLi_refは、位置に関する3成分(グローバル座標系の各座標軸方向の位置成分)の目標値と、姿勢に関する3成分(グローバル座標系の各座標軸周り方向の角度成分)の目標値とを並べた6成分のベクトルとして表現される。
【0089】
補足すると、可動リンク先端部予測軌道設定部51は、可動リンク先端部予測軌道として、各可動リンク3,4の先端部の目標位置姿勢↑XLi_refの予測軌道の代わりに、該先端部の運動速度(位置及び姿勢の時間的変化率)の目標値の予測軌道、あるいは、該先端部の運動加速度(運動速度の時間的変化率)の目標値の予測軌道を設定するようにしてもよい。
【0090】
各可動リンク3,4の先端部の運動速度あるいは運動加速度の目標値の予測軌道を設定した場合であっても、それらの目標値を積分することで、各可動リンク3,4の先端部の目標位置姿勢↑XLi_refを随時、算出することができる。逆に、各可動リンク3,4の先端部の目標位置姿勢↑XLi_refを微分する(時間的変化率を求める)ことで、該先端部の運動速度あるいは運動加速度の目標値を算出することもできる。
【0091】
前記全体運動量予測軌道におけるロボット1の全体の運動量↑PLの目標値↑PL_ref(以降、目標全体運動量↑PLという)は、詳しくは、ロボット1の全体の並進運動量↑P(換言すれば、ロボット1の全体重心の並進運動量↑P)の目標値である目標並進運動量↑P_refと、ロボット1の全体の角運動量↑Lの目標値である目標角運動量↑L_refとから構成される。
【0092】
ここで、本実施形態では、目標角運動量↑L_refは、詳しくは、ロボット1のZMP(Zero Moment Point)の目標値である目標ZMP↑Zmp_refの周りに発生する角運動量の目標値である。
【0093】
また、本実施形態では、目標全体運動量↑PLは、目標ZMP↑Zmp_refとロボット1の動力学モデルとを用いて設定される。
【0094】
このため、本実施形態では、全体運動量予測軌道設定部52は、目標全体運動量↑PLの予測軌道に加えて、目標ZMP↑Zmp_refの予測軌道も設定する。
【0095】
さらに、本実施形態では、全体運動量予測軌道設定部52は、基体関節12の変位量を含めた基体2の位置及び姿勢の基本目標値↑Xb_ref_sの予測軌道も設定する機能も有する。この基本目標値↑Xb_ref_sは、目標全体運動量↑PLを設定するために用いる動力学モデル上で目標ZMP↑Zmp_refを達成し得るように設定される参考的な目標値である。
【0096】
目標並進運動量↑P_ref、目標角運動量↑L_ref、及び目標ZMP↑Zmp_refは、それぞれグローバル座標系で見た3成分のベクトルとして表現される。そして、↑P_ref及び↑L_refを合わせた目標全体運動量↑PL_refは6成分のベクトル(=[↑P_ref
T,↑L_ref
T]
T)として表現される。
【0097】
また、基体2の位置及び姿勢↑Xbの基本目標値↑Xb_ref_s(以降、基本目標位置姿勢↑Xb_ref_sという)は、前記基体基準部位(下側基体10又は上側基体11)の位置及び姿勢(グローバル座標系で見た6成分のベクトル↑Xbb)の基本目標値↑Xbb_ref_sと、基体関節12の変位量(回転角)θfの基本目標値θf_ref_sとにより構成される7成分のベクトル(=[↑Xbb_ref_s
T,θf_ref_s]
T)として表現される。
【0098】
動作目標生成部42は、さらに、↑XLi_ref(i=1〜4)、↑PL_ref、↑Zmp_ref、↑Xb_ref_sの予測軌道を用いて、↑XLi_ref(i=1〜4)の予測軌道により規定される各可動リンク3,4(第i可動リンク)の先端部の運動速度↑XLdotiの目標値↑XLdoti_ref(i=1〜4)と、目標全体運動量↑PL_refとを実現し得るように、現在時刻以後のロボット1の全体の運動状態の目標値の予測軌道である全体運動状態予測軌道を決定する全体運動状態予測軌道決定部53を備える。
【0099】
上記全体運動状態予測軌道におけるロボット1の全体の運動状態の目標値は、基体2の位置及び姿勢↑Xbの目標値↑Xb_refと、可動リンク3,4(第1〜第4可動リンク)のそれぞれの関節の変位量↑θLi(i=1〜4)の目標値↑θLi_refとから構成される。
【0100】
この場合、基体2の位置及び姿勢↑Xbの目標値↑Xb_ref(以降、目標位置姿勢↑Xb_refという)は、前記基本目標位置姿勢↑Xb_ref_sと同様に、基体基準部位の位置及び姿勢の目標値↑Xbb_ref(6成分のベクトル)と、基体関節12の変位量(回転角)の目標値θf_refとにより構成される7成分のベクトル(=[↑Xbb_ref
T,θf_ref]
T)として表現される。
【0101】
また、可動リンク3,4(第1〜第4可動リンク)のそれぞれの関節の変位量↑θLi(i=1〜4)の目標値↑θLi_ref(以降、目標関節変位量↑θLi_ref)は、各可動リンク3,4(第i可動リンク)の全ての関節のそれぞれの変位量(回転角)の目標値の組を示すベクトル(本実施形態では6成分のベクトル)として表現される。
【0102】
動作目標生成部42は、さらに、前記全体運動状態予測軌道の各時刻でのロボット1の全体の運動状態により規定されるヤコビアン行列と、ロボット1の所定種類の状態量に関する所定の評価関数と、ロボット1の関節運動制約条件を表す不等式とを用いて、2次計画問題の解法手法の演算処理によって、ロボット1の基体2の運動加速度↑Xbdot2と各可動リンク3,4(第1〜第4可動リンク)の先端部の運動加速度↑XLidot2(i=1〜4)との組として構成される運動加速度↑u(=[↑Xbdot2
T,↑XL1dot2
T,↑XL2dot2
T,↑XL3dot2
T,↑XL4dot2
T]
T)の現在時刻以後の複数の時刻での値を算出し、その算出結果から各制御処理周期での目標運動加速度↑u_cmd(=[↑Xbdot2_cmd
T,↑XL1dot2_cmd
T,↑XL2dot2_cmd
T,↑XL3dot2_cmd
T,↑XL4dot2_cmd
T]
T)を決定する運動加速度決定部54と、各制御処理周期で決定した目標運動加速度↑u_cmdの積分演算によって各制御処理周期でのロボット1の基体2の位置及び姿勢の制御用目標値↑Xb_cmdと各可動リンク3,4の先端部のそれぞれの位置及び姿勢の制御用目標値↑XLi_cmd(i=1〜4)とを決定する制御用目標位置姿勢決定部55と、これらの制御用目標値↑Xb_cmd,↑XLi_cmd(i=1〜4)から逆キネマティクスの演算によってロボット1の各関節の目標変位量を決定する関節変位量決定部56とを備える。
【0103】
補足すると、前記可動リンク先端部予測軌道、全体運動状態予測軌道等の上記の各予測軌道(添え字「_ref」が付された状態量の予測軌道)は、各制御処理周期の時刻(現在時刻)でのロボット1の各関節の目標変位量(関節アクチュエータ制御部43で実際に使用する制御用の目標変位量)を最終的に決定するための参照用の基準軌道(暫定的な軌道)である。このため、これらの予測軌道は、現在時刻以後のロボット1の実際の制御用目標値の軌道に一致するとは限らない。本実施形態において、ロボット1の各関節の実際の動作制御のために使用される目標値は、添え字「_cmd」を付した目標値である。
【0104】
なお、可動リンク先端部予測軌道設定部51、全体運動量予測軌道設定部52、全体運動状態予測軌道決定部53、運動加速度決定部54はそれぞれ本発明における可動リンク先端部予測軌道設定手段、全体運動量予測軌道設定手段、全体運動状態予測軌道決定手段、運動加速度決定手段に相当する。
【0105】
また、制御用目標位置姿勢決定部55と関節変位量決定部56とにより本発明における関節制御用目標値決定手段が構成される。
【0106】
次に、動作目標生成部42の各処理部の処理の詳細を含めて、動作目標生成部42の処理の全体を説明する。なお、本実施形態では、主に、ロボット1を歩行動作又は走行動作により移動させるための動作目標を生成する場合を一例として動作目標生成部42の処理を説明する。
【0107】
動作目標生成部42は、所定の制御処理周期で上記の各処理部の処理を実行する。具体的には、動作目標生成部42は、各制御処理周期において、まず、可動リンク先端部予測軌道設定部51及び全体運動量予測軌道設定部52の処理を実行する。
【0108】
本実施形態では、可動リンク先端部予測軌道設定部51及び全体運動量予測軌道設定部52には、脚リンク3R,3Lのうちの遊脚の着地が行なわれる毎に、あるいは、制御処理周期毎に、現在時刻以後の複数歩分の遊脚の先端部(足平部18)の目標とする着地位置及び着地姿勢である目標着地位置姿勢と、目標とする着地時刻である目標着地時刻とが与えられるようになっている。
【0109】
上記目標着地位置姿勢及び目標着地時刻は、例えばロボット1の移動計画、操縦装置による移動指令、ロボット1の周囲の環境情報等に基づいて決定されたものである。その決定処理は、制御処理ユニット41で行われ、あるいは、ロボット1の外部のサーバで行われる。なお、目標着地時刻の代わりに、ロボット1の1歩分の期間(歩容周期)の目標時間を用いてもよい。
【0110】
そして、可動リンク先端部予測軌道設定部51は、与えられた複数歩分の目標着地位置姿勢及び目標着地時刻に応じて、脚リンク3L,3Rのそれぞれの先端部(足平部18)の現在時刻以後の目標位置姿勢↑XL1_ref,↑XL2_refの予測軌道(現在時刻からあらかじめ定められた所定時間後の時刻までの期間における予測軌道)を設定する。
【0111】
該予測軌道の期間の時間間隔(所定時間)は、ロボット1の複数歩分の時間でもよいが、1歩分の時間よりも短い時間間隔(例えば、1制御処理周期の数十倍の時間間隔等)であってもよい。
【0112】
可動リンク先端部予測軌道設定部51の処理では、脚リンク3L,3R(第1可動リンク及び第2可動リンク)のうち、遊脚として動作させる脚リンク3の先端部(足平部18)の目標位置姿勢↑XL1_ref又↑XL2_refの予測軌道は、該足平部18が離床直前の接地箇所から空中を移動して、目標着地位置姿勢及び目標着地時刻に従って着地するように設定される。
【0113】
例えば、
図4に例示する如く、遊脚として動作させる脚リンク3の先端部(足平部18)の位置及び姿勢が変化していくように該先端部の目標位置姿勢↑XL1_ref又↑XL2_refの予測軌道が設定される。
【0114】
なお、
図4に示す例では、脚リンク3の足平部18の姿勢を経時的に変化させているが、該姿勢は、足平部18の空中での移動中の全期間又は一部の期間で一定であってもよい。
【0115】
また、脚リンク3L,3Rのうち、支持脚として動作させる脚リンク3の足平部18の目標位置姿勢↑XL1_ref又↑XL2_refの予測軌道は、該足平部18が滑らずに接地した状態に保たれるように設定される。この場合、該足平部18の目標姿勢は、接地中の全期間で一定になるように設定してもよいが、該接地中に目標姿勢が経時的に変化する(ひいては、該足平部18の接地部分が変化する)ようにしてもよい。
【0116】
なお、ロボット1の歩行動作又は走行動作では、遊脚として動作させる脚リンク3と支持脚として動作させる脚リンク3とは交互に切替えられる。
【0117】
また、本実施形態では、可動リンク先端部予測軌道設定部51は、ロボット1の歩行動作又は走行動作における腕リンク4L,4R(第3可動リンク及び第4可動リンク)のそれぞれの先端部(ハンド30)の現在時刻以後の目標位置姿勢↑XL3_ref,↑XL4_refの予測軌道を、例えば上側基体11に対するハンド30の位置及び姿勢が一定に維持されるように設定する。このため、↑XL3_ref,↑XL4_refの予測軌道は、全体運動量予測軌道設定部52により後述する如く設定される基体2の基本目標位置姿勢↑Xb_ref_sの予測軌道に応じて設定される。
【0118】
ただし、各腕リンク4L,4Rのハンド30の位置又は姿勢を上側基体11に対して相対的に動かすように↑XL3_ref,↑XL4_refの予測軌道を設定してもよい。
【0119】
可動リンク先端部予測軌道設定部51の処理は以上の如く実行される。
【0120】
全体運動量予測軌道設定部52は、与えられた目標着地位置姿勢及び目標着地時刻に応じて(あるいは、各脚リンク3の先端部の目標位置姿勢↑XL1_ref,↑XL2_refの予測軌道のうち、接地状態となるに脚リンク3の先端部の目標位置姿勢の予測軌道に応じて)、現在時刻以後の目標ZMP↑Zmp_refの予測軌道を設定する。
【0121】
この場合、↑Zmp_refの予測軌道は、↑Zmp_refが所謂、支持多角形内でその境界に近づき過ぎないような領域(ZMPの存在許容領域)に位置し、且つ、不連続的な変化を生じないように設定される。このような目標ZMPの軌道の設定手法としては、例えば特許第3674789号にて本願出願人が説明した手法等、公知の手法を用いることができる。
【0122】
そして、全体運動量予測軌道設定部52は、可動リンク先端部予測軌道設定部51により設定された各脚リンク3の先端部の目標位置姿勢↑XL1_ref,↑XL2_refの予測軌道と、目標ZMP↑Zmp_refの予測軌道と、ロボット1の動力学(ロボット1に作用する外力(ここでは床反力)とロボット1の運動との関係)を表すものとしてあらかじめ定められた動力学モデルとを用いて、該動力学モデル上で目標ZMP↑Zmp_refを達成し得る基体2の運動加速度の基本目標値↑Xbdot2_ref_s(以降、基本目標運動加速度↑Xbdot2_ref_sという)の予測軌道が決定される。
【0123】
基体2の基本目標運動加速度↑Xbdot2_ref_sは、基体基準部位(下側基体10又は上側基体11)の運動加速度↑Xbbdot2の基本目標値↑Xbbdot2_ref_s(6成分のベクトル)と、基体関節12の変位加速度θfdot2(回転角加速度)の基本目標値θfdot2_ref_sとから構成される7成分のベクトルとして表現される。
【0124】
ここで、目標ZMP↑Zmp_refを達成し得る基体2の基本目標運動加速度↑Xbdot2_ref_sというのは、上記動力学モデルにおいて、ロボット1の全体の運動によって発生する慣性力と該ロボット1に作用する重力との合力によって、目標ZMP周りに発生するモーメントの水平軸周り成分(X軸周り成分及びY軸周り成分)がゼロになるような、基体2の運動加速度を意味する。
【0125】
なお、このような基体2の基本目標運動加速度↑Xbdot2_ref_sは、ロボット1の各関節の変位量の可変範囲等の関節運動制約条件を考慮せずに(該関節運動制約条件が無いものとみなして)算出されるものである。
【0126】
上記動力学モデルとしては、目標ZMP↑Zmp_refを達成し得る基体2の基本目標位置姿勢↑Xbdot2_ref_sを比較的容易に算出し得るように、線形性の高い動力学モデルが使用される。例えば、特許第3674789号にて本願出願人が説明した動力学モデル(特許第3674789号の
図10に示す動力学モデル)と同様の動力学モデルが、全体運動量予測軌道設定部52の処理における動力学モデルとして採用することができる。
【0127】
該動力学モデルは、
図5に示すように、各脚リンク3L,3Rと基体2とにそれぞれ対応する3つの質点3mL,3mR,2mと、基体2の姿勢の変化に伴う慣性力モーメントを発生するフライホイールFH(質量を持たずにイナーシャを有するフライホイール)とを備える動力学モデルである。
【0128】
なお、フライホイールFHが発生する慣性力モーメントは、より詳しくは、グローバル座標系の3つの各軸周りの慣性力モーメントである。また、質点3mR,3mL,2mのの質量は、その総和の質量がロボット1の全体質量に一致するようにあらかじめ設定される。
【0129】
この動力学モデルでは、各脚リンク3R,3Lの先端部の運動が、質点3mL,3mRの運動に相当し、また、基体関節12を含めた基体2の運動が、質点2m及びフライホイールFHの運動に相当するものとされる。
【0130】
このような動力学モデルを使用することで、特許第3674789号にて本願出願人が説明した目標上体位置姿勢の決定手法と同様の手法によって、現在時刻以後の基体2の基本目標運動加速度↑Xbdot2_ref_sの予測軌道を設定できる。
【0131】
すなわち、上記動力学モデル上において、ZMPが支持多角形内に収まり、また、ロボット1に作用する床反力のうちの摩擦力成分が適切な許容範囲内に収まる、というような所要の動力学的な制約条件が満たされるように、基体2の基本目標運動加速度↑Xbdot2_ref_sの予測軌道(ひいては、質点2mの並進加速度及びフライホイールFHの回転角加速度)を設定できる。
【0132】
全体運動量予測軌道設定部52は、上記の如く設定した基体2の基本目標運動加速度↑Xbdot2_ref_sの予測軌道における↑Xbdot2_ref_sの値を積分(2階積分)することで、基体2の基本目標位置姿勢↑Xb_ref_sの予測軌道を設定する。
【0133】
さらに、全体運動量予測軌道設定部52は、上記の如く設定した基体2の目標運動加速度↑Xbdot2_ref_s(又は目標位置姿勢↑Xb_ref_s)の予測軌道と、可動リンク先端部予測軌道設定部51により設定された脚リンク3L,3Rのそれぞれの先端部の目標位置姿勢↑XL1_ref,↑XL2_refの予測軌道と、目標ZMP↑Zmp_refの予測軌道とから、上記動力学モデルを用いて、現在時刻以後の目標全体運動量↑PL_refの予測軌道を設定する。
【0134】
具体的には、全体運動量予測軌道設定部52は、脚リンク3L,3Rのそれぞれの先端部の目標位置姿勢↑XL1_ref,↑XL2_refの予測軌道から算出される脚リンク3L,3Rのそれぞれの先端部の運動速度↑XL1dotの目標値↑XL1dot_refの予測軌道に基づいて、質点3mL,3mRのそれぞれの並進運動量の予測軌道を算出する。
【0135】
また、全体運動量予測軌道設定部52は、基体2の目標運動加速度↑Xbdot2_ref_s(又は目標位置姿勢↑Xb_ref_s)の予測軌道から算出される基体2の運動速度↑Xbdot_ref_sの予測軌道に基づいて、質点2mの並進運動量の予測軌道とフライホイールFHの角運動量の予測軌道とを算出する。
【0136】
そして、全体運動量予測軌道設定部52は、質点3mL,3mR,2mのそれぞれの並進運動量の予測軌道とフライホイールFHの角運動量の予測軌道と目標ZMP↑Zmp_refの予測軌道とから、目標全体運動量↑PL_refの予測軌道を算出する。
【0137】
この場合、目標全体運動量↑PL_refの予測軌道の各時刻(所定の刻み時間ΔT毎の時刻)での目標並進運動量↑P_refは、質点3mL,3mR,2mのそれぞれの並進運動量の総和の並進運動量(これは質点3mL,3mR,2mの全体重心の並進運動量に相当する)として算出される。
【0138】
また、目標全体運動量↑PL_refの予測軌道の各時刻での目標角運動量↑L_refは、質点3mL,3mR,2mのそれぞれの並進運動量によって、目標ZMP↑Zmp_refの周りに発生する角運動量と、フライホイールFHの角運動量との総和の角運動量として算出される。
【0139】
補足すると、↑PL_refの予測軌道を設定するために使用する動力学モデルは、前記したように3つの質点3mL,3mR,2mと、フライホイールFHとを備える動力学モデルであるが、他の形態の動力学モデルを使用してもよい。
【0140】
例えば、腕リンク4L,4Rにそれぞれ対応する2つの質点をさらに備える動力学モデル、あるいは、下側基体10と上側基体11とで各別の質点を備える動力学モデル等を使用することもできる。また、例えば、基体2の質量に比して、各可動リンク3,4の質量が十分に小さいような場合には、各可動リンク3,4に対応する質点を省略した動力学モデルを使用することも可能である。
【0141】
↑PL_refの予測軌道を設定するための動力学モデルとしては、ロボット1で実現し得る目標全体運動量↑PLの予測軌道を生成し得るものであれば、種々様々な動力学モデルを使用することができる。該動力学モデルは、比較的低負荷の演算処理によって目標全体運動量↑PLの予測軌道を生成し得るものであることが望ましい。
【0142】
全体運動量予測軌道設定部52の処理は、以上の如く実行される。
【0143】
以降の説明では、↑PL_refの予測軌道の各時刻(所定の刻み時間ΔT毎の各時刻)での瞬時値を区別する場合に、現在時刻側から順番に↑PL_ref(1)、↑PL_ref(2)、……、↑PL_ref(N)というように、離散時間系での時刻を表す番数k(k=1,2,…,N)を付して表記する。この場合、k=1の時刻は、現在時刻(現在の制御処理周期)を意味し、k=Nの時刻は、現在時刻から所定時間後の時刻を意味する。このことは、↑XLi_refの予測軌道等、他の予測軌道についても同様とする。
【0144】
動作目標生成部42は、以上の如く可動リンク先端部予測軌道設定部51及び全体運動量予測軌道設定部52の処理を実行した後、全体運動状態予測軌道決定部53の処理を実行する。
【0145】
全体運動状態予測軌道決定部53は、本実施形態では、分解運動量制御の手法によって、各可動リンク3,4の先端部の目標位置姿勢↑XLi_ref(i=1〜4)の予測軌道から算出される各可動リンク3,4の先端部の目標運動速度↑XLidot_ref(i=1〜4)と、ロボット1の目標全体運動量↑PL_ref(=[↑P_ref
T,↑L_ref
T]
T)を実現するように、現在時刻以後のロボット1の全体の運動状態の目標値↑Xb_ref,↑θLi_ref(i=1〜4)の予測軌道である全体運動状態予測軌道を決定する。
【0146】
上記分解運動量制御の手法は、それを要約して言えば、ロボット1の全体運動量↑PLの目標値(↑PL_ref)と各可動リンク3,4の先端部の運動速度↑XLidotの目標値(↑XLidot_ref)とから、これらの目標値を実現し得るようにロボット1の全体の運動状態を決定する手法である。ただし、この手法では、ロボット1の関節運動制約条件を考慮せずに(該関節運動制約条件が無いものとみなして)、ロボット1の全体の運動状態が決定される。
【0147】
具体的には、この分解運動量制御の手法では、まず、ロボット1の全体運動量↑PLと、基体2の運動速度と、各可動リンク3,4の各関節の変位速度との間の関係を表す次式(1)と、基体2の運動速度と、各可動リンク3,4の各関節の変位速度との間の関係を表す次式(2)とに基づく演算処理によって、全体運動状態予測軌道の各時刻(所定の刻み時間ΔT毎の時刻)での↑XLidot_ref(i=1〜4)及び↑PL_refを実現するための基体2の目標運動速度↑Xbdot_refが算出される。
【0149】
ここで、式(1)において、↑Pはロボット1の全体の並進運動量(3成分のベクトル)、↑Lcはロボット1の全体重心の周りの全体の角運動量(3成分のベクトル)、↑Xbdotは基体2の運動速度(基体基準部位の運動速度↑Xbbdotの各成分と基体関節12の変位速度θfdotとから成る7成分のベクトル)、A1は基体2の運動速度↑Xbdotを、これに応じて発生する並進運動量及び角運動量(全体重心周り角運動量)の組に変換するヤコビアン行列(6行7列の行列)、NLは可動リンク3,4の個数(=4)、↑θLidotは第i可動リンクの各関節の変位速度を成分として構成されるベクトル(6成分のベクトル)、MLiは↑θLidot(以降、第i可動リンクの関節変位速度↑θLidotという)を、これに応じて発生する並進運動量に変換するヤコビアン行列(3行6列の行列)、HLiは第i可動リンクの関節変位速度↑θLidotを、これに応じて発生する角運動量(ロボット1の全体重心の周りの角運動量)に変換するヤコビアン行列(3行6列の行列)である。
【0150】
この場合、上記ヤコビアン行列A1は、次式(1a)で示す形の行列である。
【0152】
この式(1a)において、mはロボット1の全体質量、E
3は3行3列の単位行列、O
3は3行3列の零行列、Iはロボット1の全体重心周りの回転運動に関する慣性行列(3行3列の行列)、Mfは基体関節12の変位速度を、これに応じて発生する並進運動量に変換する行列(3行1列の行列)、Hfは基体関節12の変位速度を、これに応じて発生する角運動量(ロボット1の全体重心周りの角運動量)に変換する行列(3行1列の行列)である。
【0153】
さらに、式(1a)におけるDbcは基体基準部位の位置に対するロボット1の全体重心の位置ベクトル↑rbb_c(3成分のベクトル)と基体基準部位の姿勢に関する運動速度(角速度)↑ωbb(3成分のベクトル)との外積(=rbb_c×↑ωbb)に対して、Dbc・↑ωbb=−rbb_c×↑ωbbという関係が成立するように定義される行列(3行3列の行列)である。
【0154】
また、前記式(2)において、↑XLidotは第i可動リンクの先端部の運動速度(6成分のベクトル)、Jbは基体2の運動速度↑Xbdotを第i可動リンクの先端部の運動速度↑XLidotに変換するヤコビアン行列(6行7列の行列)、JLiは第i可動リンクの関節変位速度↑θLidotを第i可動リンクの先端部の運動速度↑XLidotに変換するヤコビアン行列(6行6列の行列)である。
【0155】
上記式(1)、(2)から次式(3)が得られる。
【0157】
上記式(3)において、Aは前記ヤコビアン行列A1,MLi(i=1〜4),HLi(i=1〜4),Jbと、前記ヤコビアン行列JLi(i=1〜4)の擬似逆行列JLi
#とから上記但し書きの式(3a)で定義される行列(6行7列の行列)、A
#は行列Aの擬似逆行列(7行6列の行列)、E
7は7行7列の単位行列である。また、↑Xbdot_aは冗長自由度を利用した基体2の調整用運動速度(7成分のベクトル)である。
【0158】
本実施形態では、上記式(3)により↑XLidot_ref(i=1〜4)及び↑PL_refの予測軌道を実現するための基体2の目標運動速度↑Xbdot_refの予測軌道が決定される。
【0159】
具体的には、全体運動状態予測軌道の各時刻k(k=1〜N)での基体2の目標運動速度↑Xbdot_ref(k)が順次、上記式(3)の右辺の演算によって算出される。
【0160】
この場合、式(3)の右辺の演算を行うためのパラメータは次のように決定される。
【0161】
時刻kでの↑Xbdot_ref(k)を算出するために用いる行列Aは、式(1),(2)に関して説明したヤコビアン行列A1,MLi(i=1〜4),HLi(i=1〜4)と、式(2)の但し書きで定義されるヤコビアン行列Jb,JLi(i=1〜4)とから、式(3)の但し書きの式(3a)に従って算出される。
【0162】
この場合、ヤコビアン行列A1,MLi(i=1〜4),HLi(i=1〜4),Jb,JLiは、ロボット1の全体の運動状態が、全体運動状態予測軌道の時刻k−1でのロボット1の全体の運動状態の目標値↑Xb_ref,↑θLi_ref(i=1〜4)に一致する状態でのヤコビアン行列として算出される。ただし、k=1の時刻での↑Xbdot_ref(k)を算出する場合においては、ロボット1の全体の運動状態は、前回の制御処理周期で最終的に決定されたロボット1の全体の運動状態の目標値↑Xb_cmd,↑θLi_cmd(i=1〜4)に一致するものとして、ヤコビアン行列が算出される。
【0163】
なお、ヤコビアン行列A1,MLi(i=1〜4),HLi(i=1〜4)を算出する場合、ロボット1の各リンク要素に質量とイナーシャとを設定した動力学モデルが使用される。
【0164】
さらに、上記の如く算出したヤコビアン行列のうちのJLiから、その擬似逆行列JLi
#が算出される。この場合、本実施形態では、各可動リンク3,4の関節の個数(↑θLidotの成分数)は6個であるので、JLi
#は、JLiの逆行列JLi
-1として算出される。
【0165】
補足すると、ロボット1の可動リンク3又は4の関節の個数を7個以上にする(換言すれば、該可動リンク3又は4の自由度数を7以上とする)ことも可能である。7個以上の関節を有する可動リンクについての擬似逆行列JLi
#は、後述するA
#の算出の場合と同様の演算式により算出することが可能である。
【0166】
また、以上の如く算出される行列Aから、時刻kでの↑Xbdot_ref(k)を算出するために用いる擬似逆行列A
#が算出される。
【0167】
この場合、A
#は、例えば次式(4)により算出される。
【0168】
A
#=W
-1・A
T・(A・W
-1・A
T)
-1 ……(4)
この式(4)におけるWは、あらかじめ設定された重み係数行列(対角行列)である。この重み係数行列は、ロボット1の制御特性等を考慮して実験等に基づいてあらかじめ設定される。
【0169】
また、↑Xbdot_ref(k)を算出するために用いる↑Pの値として、前記全体運動量予測軌道における時刻kでの目標並進運動量↑P_refが決定される。さらに、↑Xbdot_ref(k)を算出するために用いる↑Lcの値は、前記全体運動量予測軌道における時刻kでの目標角運動量↑L_ref(目標ZMP↑Zmp_ref(k)の周りの角運動量)を、時刻kでのロボット1の全体重心の周りの角運動量に変換してなる値として算出される。
【0170】
なお、この場合、ロボット1の全体重心の位置は、全体運動量予測軌道設定部52の処理で使用した動力学モデルにおける時刻kでの全体重心の位置に一致するものとされる。
【0171】
補足すると、前記式(3)の↑Lcの代わりに、目標ZMP↑Zmp_refの周りの角運動量↑Lを採用することもできる。その場合には、前記式(1)におけるヤコビアン行列A1が、式(1)の但し書きに示したものと異なる行列となる。そして、この場合には、↑Xbdot_ref(k)を算出するために用いる↑Lの値として、前記全体運動量予測軌道における時刻kでの目標角運動量↑L_refをそのまま使用できる。
【0172】
また、↑Xbdot_ref(k)を算出するために用いる第i可動リンクの↑XLidot(i=1〜4)の値として、前記可動リンク先端部予測軌道により規定される時刻kでの第i可動リンクの先端部の目標運動速度↑XLidot_refが決定される。
【0173】
また、↑Xbdot_ref(k)を算出するために用いる基体2の調整用運動速度↑Xbdot_aの値は、本実施形態では、例えば次のように決定される。
【0174】
すなわち、既に算出した時刻k−1までの全体運動状態予測軌道と、全体運動量予測軌道設定部52により算出された時刻k−1までの基体2の基本目標位置姿勢↑Xb_ref_sの予測軌道とから、時刻k−1での基体2の目標位置姿勢↑Xb_refと基本目標位置姿勢↑Xb_ref_sとの偏差Δ↑Xb、及びその時間的変化率dΔ↑Xb(換言すれば、↑Xb_refの時間的変化率と↑Xb_ref_sの時間的変化率との偏差)が算出される。そして、これらの偏差Δ↑Xb、及びその時間的変化率dΔ↑Xbから、次式(5)により、↑Xbdot_ref(k)を算出するために用いる基体2の調整用運動速度↑Xbdot_aの値が算出される。
【0175】
↑Xbdot_a=Kp・Δ↑Xb+Kv・dΔ↑Xb ……(5)
【0176】
なお、Kp、Kvはあらかじめ定められた所定値のゲインである。また、k=1の時刻での↑Xbdot_ref(k)を算出する場合においては、↑Xbdot_aはゼロベクトルとされる。
【0177】
以上の如く、全体運動状態予測軌道の各時刻k(k=1,2,…,N)での↑Xbdot_ref(k)を算出するために用いるパラメータ(A,A
#,↑P,↑Lc,MLi(i=1〜4),HLi(i=1〜4),JLi
#,↑XLidot,↑Xbdot_a)の値が決定される。そして、これらのパラメータの値を用いて、前記式(3)の右辺の演算を行うことで、↑Xbdot_ref(k)が算出される。
【0178】
これにより、↑PL_refの予測軌道と、↑XLi_ref(i=1〜4)の予測軌道とを実現し得るように基体2の目標運動速度↑Xbdot_refの予測軌道が分解運動量制御の手法によって決定される。
【0179】
全体運動状態予測軌道決定部53は、上記の如く↑Xbdot_refの予測軌道を算出した後、その↑Xbdot_refを積分することで、全体運動状態予測軌道の各時刻kでの基体2の目標位置姿勢↑Xb_ref(k)を算出する。これにより、全体運動状態予測軌道のうちの基体2の目標位置姿勢↑Xb_refの予測軌道が決定される。
【0180】
なお、この場合、↑Xbdot_refの積分演算におけるを↑Xb_refの初期値は、前回の制御処理周期で最終的に決定されたロボット1の基体2の目標位置姿勢↑Xb_cmdに一致するものとされる。
【0181】
そして、全体運動状態予測軌道決定部53は、↑Xb_refの予測軌道と各可動リンク3,4の先端部の目標位置姿勢↑XLi_refの予測軌道とから、逆キネマティクスの演算によって、全体運動状態予測軌道の各時刻kでの各可動リンク3,4のそれぞれの目標関節変位量↑θLi_ref(i=1〜4)を算出する。これにより、全体運動状態予測軌道のうちの、各可動リンク3,4のそれぞれの目標関節変位量↑θLi_ref(i=1〜4)の予測軌道が決定される。
【0182】
全体運動状態予測軌道決定部53の処理は、以上の如く実行される。かかる処理により決定される全体運動状態予測軌道は、ロボット1の各関節の関節運動制約条件を考慮せずに、ロボット1の目標全体運動量↑PL_refの予測軌道と、可動リンク3,4(第1〜第4可動リンク)のそれぞれの先端部の目標位置姿勢↑XLi_refの予測軌道とを実現し得るように決定されるものである。
【0183】
このため、全体運動状態予測軌道は、ロボット1のいずれかの可動リンク3,4の関節の変位量の可変範囲等の関節運動制約条件を満たしていない軌道となっている場合もある。
【0184】
動作目標生成部42は、上記の如く全体運動状態予測軌道を決定した後、次に、運動加速度決定部54の処理を実行する。
【0185】
運動加速度決定部54は、ロボット1の関節運動制約条件の基で、現在時刻以後の複数の時刻k(k=1〜N)におけるロボット1の所定種類の状態量に関する所定の評価関数を最小化し得るように、2次計画問題の解法手法の演算処理によって、ロボット1の基体2及び各可動リンク3,4の先端部のそれぞれの運動加速度↑Xbdot2,↑XLidot2(i=1〜4)の組として構成される運動加速度↑uの現在時刻以後の時系列↑u_sol(k)(k=1〜N)を算出する。以降、当該算出される運動加速度↑u_sol(k)を制約条件下運動加速度↑u_sol(k)という。
【0186】
この場合、上記所定種類の状態量は、本実施形態では、ロボット1の基体2及び各可動リンク3,4の先端部のそれぞれの運動加速度↑Xbdot2,↑XLidot2(i=1〜4)と、ロボット1の全体運動量↑PLとの2種類の状態量である。
【0187】
そして、運動加速度決定部54は、制約条件下運動加速度↑u_sol(k)のうち、初期時刻である現在時刻(k=1の時刻)での制約条件下運動加速度↑u_sol(1)を、現在の制御処理周期で決定すべきロボット1の実際の制御用の目標運動加速度↑u_cmdとして決定する。
【0188】
各制御処理周期で算出する現在時刻以後の上記制約条件下運動加速度↑u_sol(1)〜↑u_sol(N)は、より詳しく言えば、制約条件下運動加速度↑u_solの軌道と前記全体運動状態予測軌道により規定される目標運動加速度↑u_refの軌道との一致度合、並びに、制約条件下運動加速度↑u_solの軌道に応じて発生する該ロボット1の全体運動量↑PL_solの軌道と前記全体運動量予測軌道(↑PL_refの予測軌道)との一致度合が、ロボット1の関節運動制約条件を満たす範囲内で、できるだけ高くなるような運動加速度↑uの時系列(現在時刻以後の所定の刻み時間ΔT毎の↑uの値の時系列)である。
【0189】
そして、ロボット1の関節運動制約条件は、本実施形態では、各関節の変位量と変位速度とのそれぞれの可変範囲の制約条件(各関節の変位量がそれぞれ所定の可変範囲内に収まるという制約条件、及び、各関節の変位速度がそれぞれ所定の可変範囲内に収まるという制約条件)である。
【0190】
このような制約条件下運動加速度↑u_sol(1)〜↑u_sol(N)を算出するための所定の評価関数は、本実施形態では次式(6)により表される評価関数Efである。
【0192】
上記式(6)及び(6a)〜(6c)において、↑PL_sol(k)は制約条件下運動加速度↑u_sol(1)〜↑u_sol(N)により規定されるロボット1の運動によって発生する全体運動量の推定値(時刻kでの値)である。
【0193】
この↑PL_sol(k)は、制約条件下運動加速度↑u_solの積分によって算出される時刻kでの運動速度↑v_sol(k)(詳しくは、↑u_solの各成分↑Xbdot2_sol,↑XLidot2_sol(i=1〜4)のそれぞれを積分することで算出される時刻kでの運動速度↑Xbdot_sol,↑XLidot_sol(i=1〜4)を並べたベクトル)から、式(6c)により算出される全体運動量である。
【0194】
そして、この式(6c)におけるB(k)は、時刻kでのロボット1の運動状態において、運動速度↑v(基体2及び各可動リンクの先端部のそれぞれの運動速度を成分として構成されるベクトル)を、全体運動量↑PLに変換するヤコビアン行列である。この場合、式(6c)の演算に用いるヤコビアン行列B(k)は、時刻kでのロボット1の運動状態が、前記全体運動状態予測軌道における時刻kでのロボット1の運動状態に一致すると見なして、当該運動状態に応じて決定される。
【0195】
また、↑PL_ref(k)は前記全体運動量予測軌道における時刻kでの目標全体運動量、↑u_refは前記全体運動状態予測軌道により規定される時刻kでの目標運動加速度(基体2及び各可動リンクの先端部のそれぞれの運動加速度の目標値を成分として構成されるベクトル)、QPL,Ruはそれぞれロボット1の動作特性の調整用の重み係数行列(対角行列)である。
【0196】
かかる式(6)のef(k)(k=1〜N)は、式(6)の但し書きの式(6a)により定義される運動量偏差↑DPL(k)の各成分の二乗値を線形結合してなる値と、但し書きの式(6b)により定義される運動加速度偏差↑Du(k)の各成分の二乗値を線形結合してなる値とを加え合わせたものである。
【0197】
なお、上記重み係数行列QPL及びRuは、それぞれ、ロボット1の所要の動作特性を実現し得るように、実験等に基づいてあらかじめ設定されるものである。ただし、QPL又はRuとして、単位行列を採用することもできる。
【0198】
上記評価関数Efの値は、↑PL_solの軌道と↑PL_refの軌道との一致度合を示す運動量評価指標値と、↑u_solの軌道と↑u_refの軌道との一致度合を示す運動加速度評価指標値とを合成した指標値に相当するものである。従って、Efの値が小さいほど(ゼロに近いほど)、↑u_solの軌道と↑u_refの軌道との一致度合、及び↑PL_solの軌道と↑PL_refの軌道との一致度合が高いことを意味する。
【0199】
また、ロボット1の各関節の変位量と変位速度とに関する関節運動制約条件は、本実施形態では、次式(7)〜(10)の不等式が用いられる。
【0201】
これらの式(7)〜(10)における↑θLidot_min(i=1〜4)は、第i可動リンクの各関節の変位速度の可変範囲の下限値を並べたベクトル(6成分のベクトル)、↑θLidot_max(i=1〜4)は、第i可動リンクの各関節の変位速度の可変範囲の上限値を並べたベクトル(6成分のベクトル)、↑θLi_min(i=1〜4)は、第i可動リンクの各関節の変位量の可変範囲の下限値を並べたベクトル(6成分のベクトル)、↑θLi_max(i=1〜4)は、第i可動リンクの各関節の変位量の可変範囲の上限値を並べたベクトル(6成分のベクトル)、θfdot_minは基体関節12の変位速度の可変範囲の下限値、θfdot_maxは基体関節12の変位速度の可変範囲の上限値、θf_minは基体関節12の変位量の可変範囲の下限値、θf_maxは基体関節12の変位量の可変範囲の上限値である。
【0202】
また、↑θLidot_sol(k)(i=1〜4)は、↑u_sol(1)〜↑u_sol(N)により規定されるロボット1の運動状態における時刻kでの第i可動リンクの各関節の変位速度を並べたベクトルである。そして、この↑θLidot_sol(k)は、次式(7a)により算出されるベクトルである。
【0203】
↑θLidot_sol(k)=JLi(k)
#・(↑XLidot_sol(k)−Jbi(k)・↑Xbdot_sol(k))
……(7a)
【0204】
この式(7a)におけるJLi(k)
#(i=1〜4)は、前記全体運動状態予測軌道における時刻kでのロボット1の運動状態において、第i可動リンクの各関節の変位速度を並べたベクトル↑θLidotを該第i可動リンクの先端部の運動速度↑XLidotに変換するヤコビアン行列JLi(k)の擬似逆行列、↑XLidot_sol(k)(i=1〜4)は、制約条件下運動加速度↑u_solのうちの↑XLidot2_solを積分することで算出される時刻kでの第i可動リンクの先端部の運動速度、↑Xbdot_sol(k)は、制約条件下運動加速度↑u_solのうちの↑Xbdot2_solを積分することで算出される時刻kでの基体2の運動速度、Jbi(k)(i=1〜4)は、前記全体運動状態予測軌道における時刻kでのロボット1の運動状態において、基体2の運動速度↑Xbdotを第i可動リンクの先端部の運動速度↑XLidotに変換するヤコビアン行列である。
【0205】
また、θLi_sol(k)は、↑θLidot_solを積分することにより算出される時刻kでの第i可動リンクの各関節の変位量を並べたベクトル、θfdot_sol(k)は、制約条件下運動加速度↑u_solのうちの↑θfdot2_sol(基体関節2の変位加速度)を積分することにより算出される時刻kでの基体関節2の変位速度、↑θf_sol(k)は、θfdot_solを積分することにより算出される基体関節12の変位量である。
【0206】
式(7)〜(10)の不等式(線形不等式)により示される関節運動制約条件の基で、式(6)により示される評価関数Efの値を最小化するような制約条件下運動加速度↑uの時系列↑u_sol(1)〜↑u_sol(N)は、次のように算出される。
【0207】
すなわち、運動加速度決定部54は、まず、式(6)の右辺の↑DPL(k)を算出するために必要な前記ヤコビアン行列B(k)(k=1〜N)と、式(7)のθLidot_sol(k)を算出するために必要なヤコビアン行列JLi(k)、Jbi(k)(i=1〜4、k=1〜N)とを各々算出する。
【0208】
この場合、ヤコビアン行列B(k),JLi(k)、Jbi(k)は、時刻kでのロボット1の全体の運動状態が、全体運動状態予測軌道の時刻kでの全体の運動状態の目標値↑Xb_ref(k),↑θLi_ref(k)(i=1〜4)に一致する状態でのヤコビアン行列として算出される。なお、ヤコビアン行列B(k)の算出処理では、ロボット1の各リンク要素に質量とイナーシャとを設定した動力学モデルが使用される。
【0209】
さらに、運動加速度決定部54は、ヤコビアン行列JLi(k)の擬似逆行列JLi(k)
#を算出する。この場合、本実施形態では、各可動リンク3,4の関節の個数(↑θLidotの成分数)は6個であるので、JLi(k)
#は、JLi(k)の逆行列JLi(k)
-1として算出される。
【0210】
そして、運動加速度決定部54は、(7)〜(10)の不等式により示される制約条件の基で、式(6)により示される評価関数Efの値を最小化するような制約条件下運動加速度↑uの時系列↑u_sol(1)〜↑u_sol(N)を、ヤコビアン行列B(k),Jbi(k)(i=1〜4)と、擬似逆行列JLi(k)
#(i=1〜4、k=1〜N)を用いて、2次計画問題の公知の解法手法の演算処理を実行することで、算出する。
【0211】
この場合、2次計画問題の解法手法としては、例えば、内点凸法、あるいは、信頼領域Reflective法を使用することができる。
【0212】
運動加速度決定部54は、以上の如く制約条件下運動加速度↑uの時系列↑u_sol(1)〜↑u_sol(N)を算出する。
【0213】
かかる処理により、制約条件下運動加速度↑u_solの軌道と前記全体運動状態予測軌道により規定される目標運動加速度↑u_refの軌道との一致度合、並びに、制約条件下運動加速度↑u_solの軌道に応じて発生する該ロボット1の全体運動量↑PL_solの軌道と前記全体運動量予測軌道(↑PL_refの予測軌道)との一致度合が、ロボット1の各関節の作動に関する制約条件を満たす範囲内で、できるだけ高くなるように、制約条件下運動加速度↑u_solの時系列↑u_sol(1)〜↑u_sol(N)が、2次計画問題の解法手法の演算処理により算出される。
【0214】
この場合、制約条件下運動加速度↑u_solの軌道に応じて発生する該ロボット1の全体運動量↑PL_solの軌道の各時刻kでの値↑PL_sol(k)は、各関節の作動に関する制約条件を考慮せずに決定された全体運動状態予測軌道に応じて規定されるヤコビアン行列を用いて算出される。このため、2次計画問題の演算処理を短時間で実行することができる。
【0215】
そして、運動加速度決定部54は、制約条件下運動加速度↑u_solの時系列↑u_sol(1)〜↑u_sol(N)のうちの現在時刻(k=1の時刻)での制限条件下運動加速度↑u_sol(1)を、現在の制御処理周期で決定すべき目標運動加速度↑u_cmdとして決定する。
【0216】
このようにして、各制御処理周期毎に、目標運動加速度↑u_cmdが決定されることとなる。
【0217】
運動加速度決定部54の処理は、以上の如く実行される。
【0218】
動作目標生成部42は、次に、制御用目標位置姿勢決定部55及び関節変位量決定部56の処理を順次実行する。
【0219】
制御用目標位置姿勢決定部55は、運動加速度決定部54が各制御処理周期で決定した目標運動加速度↑u_cmdの各成分の積分演算(2階積分)を各制御処理周期で実行する。これにより、各制御処理周期でのロボット1の基体2の位置及び姿勢の制御用目標値↑Xb_cmdと各可動リンク3,4の先端部のそれぞれの位置及び姿勢の制御用目標値↑XLi_cmd(i=1〜4)とが決定される。
【0220】
次いで、関節変位量決定部56は、各制御処理周期で制御用目標位置姿勢決定部55が決定した制御用目標値↑Xb_cmd,↑XLi_cmd(i=1〜4)から逆キネマティクスの演算によってロボット1の各関節の目標変位量を決定する。
【0221】
以上説明した動作目標生成部42の処理によって、制御処理周期毎に、ロボット1の各関節の目標変位量が決定される。
【0222】
かかる本実施形態によれば、各制御処理周期において、現在時刻以後の複数の時刻k(k=1〜N)における制約条件下運動加速度↑u_sol(k)の時系列が、ロボット1の各関節の変位量及び変位速度のそれぞれの可変範囲に関する関節運動制約条件を満たす範囲内で、ロボット1の全体運動量↑PLと運動加速度↑uとに関する前記評価関数Efの値を最小化するように、2次計画問題の解法手法の演算処理によって算出される。
【0223】
この場合、評価関数Efにおける全体運動量↑PL_solを算出するためのヤコビアン行列は、前記全体運動状態予測軌道により規定されるヤコビアン行列であるので、2次計画問題の解法手法の演算処理を効率よく短時間で実行できる。
【0224】
そして、2次計画問題の解法手法の演算処理により算出した制約条件下運動加速度↑u_sol(k)の時系列のうちの初期時刻としての現在時刻での制約条件下運動加速度↑u_sol(1)が現在の制御処理周期で求めるべき目標運動加速度↑u_cmdとされる。
【0225】
制御処理周期毎に決定した目標運動加速度↑u_cmdを実現し得るように各制御処理周期における各関節の目標変位量が決定される。
【0226】
このため、近い将来に関節運動制約条件が満たされなくなる虞がある状況で、該関節運動制約条件が満たされなくなる状況が発生するのを事前に防止するようにロボット1の動作目標(各関節の目標変位量)を決定できる。
【0227】
これにより、関節運動制約条件を満たし得る範囲内でロボット1の継続的な動作を滑らかに行い得る動作目標を決定できる。
【0228】
また、本実施形態では、評価関数Efにおける全体運動量↑PL_solのうちの角運動量↑L_solが目標ZMP↑Zmp_refの周りの角運動量であるので、動力学的に適切なロボット1の動作を実現し得る動作目標を生成できる。
【0229】
次に、以上説明した実施形態の効果の検証について
図6を参照して説明する。
図6(a)は、実施例のグラフを示し、
図6(b)は比較例のグラフを示している。実施例のグラフは、前記実施形態において、ロボット1の一歩分の歩幅を大きな歩幅(例えば750mm)に設定してロボット1の動作目標の生成処理を行った場合に、遊脚として動作させる脚リンク3の膝関節部15の関節22の目標変位量の経時変化を示すグラフである。
【0230】
また、比較例のグラフは、現在時刻以後の将来の全体運動状態予測軌道を生成することなく、上記の歩幅でのロボット1の動作目標の生成処理を行った場合に、遊脚として動作させる脚リンク3の膝関節部15の関節22の目標変位量の経時変化を示すグラフである。この比較例での動作目標の生成処理は、具体的には、前記式(6)におけるNの値を「1」として動作目標を生成する処理である。
【0231】
図6(b)に見られるように、比較例では、図中のC部分において、関節22の目標変位量が、該関節22の変位量の可変範囲の下限値に保持されてしまうものとなっている。
【0232】
これに対して、
図6(a)に見られるように、実施例では、関節22の目標変位量が、下限値に保持されるような状況を生じることなく滑らかに変化している。これは、近い将来に関節22の目標変位量が可変範囲を逸脱しそうな状況になると、当該状況が発生するのを事前に防止するように各制御処理周期での前記制約条件下運動加速度↑u_solが決定され、ひいては、ロボット1の各関節の変位量が決定されるためであると考えられる。
【0233】
なお、以上説明した実施形態におけるロボット1は、腕リンク4R,4L及び頭部5を有する人型の移動ロボットであるが、これらの腕リンク4R,4L、あるいは、頭部5を備えない移動ロボットであってもよい。また、基体関節12を省略し、下側基体10及び上側基体11を一体に構成してもよい。
【0234】
また、移動ロボット1は、3つ以上の脚リンクを備えていてもよい。また、腕リンクの個数が1つであってよく、あるいは、3つ以上であってもよい。また、基体関節12は、2以上の運動自由度を有するものであってもよい。また、移動ロボット1は、回転型の関節に限らず、直動型の関節を含んでいてもよい。また、ロボット1は、回転型の関節以外に直動型の関節を含んでいてもよい。
【0235】
また、移動ロボット1の各可動リンク3,4は、7つ以上の関節を備えていてもよい。
【0236】
また、前記実施形態では、関節運動制約条件として、各関節の変位量の可変範囲の制約条件と各関節の変位速度の可変範囲の制約条件とを用いたが、いずれか一方の制約条件だけを用いてもよい。あるいは、各関節の変位加速度の可変範囲の制約条件を、関節運動制約条件として用いてもよい。