脚式移動ロボット等の移動体に種々様々な作業を行なわせるためには、移動体を単に床上で移動させるだけでなく、移動体の動作環境(外界)に存在する複数の接触対象面(例えば床面と壁面)のそれぞれに移動体の脚リンクもしくは腕リンク等の1つ以上の可動リンクを接触させながら、移動体の所要の運動を行なわせることが要求される場合もある。
このような場合には、移動体を単に床上で移動させる場合と異なり、移動体は各接触対象面から移動体に外力が作用することとなる。
そして、移動体の動作を安定して行なう上では、上記のように複数の接触対象面に移動体を接触させる状況においても、各接触対象面から移動体に実際に作用する接触力(反力)を所要の目標接触力に追従させるように移動体の関節の変位量を適宜調整することが望ましいと考えられる。
この場合、各接触対象面から移動体に実際に作用する接触力を制御するために、特許文献1に見られる如きコンプライアンス制御の技術を用いることが考えられる。
しかるに、特許文献1に見られるコンプライアンス制御の技術では、接触対象面として床面から移動体(脚式移動ロボット)に作用する実際の床反力モーメントを、目標モーメントに追従させるための各脚リンクの先端部(足平部)の目標位置及び姿勢の修正は、両脚リンクの先端部の上下方向の位置を互いに逆向きに変化させる修正(以降、本欄では第1の修正という)と、各脚リンクの先端部の姿勢を変化させる修正(以降、本欄では第2の修正という)とを合成したものとされる。
この場合、第1の修正における各脚リンクの先端部の位置の修正量と、第2の修正における各脚リンクの先端部の姿勢の修正量とは各別に決定される。
このため、かかる従来のコンプライアンス制御の技術では、第1の修正に起因して生じる床反力の変化と、第2の修正に起因する床反力の変化とが相互に干渉しやすい。このため、第1の修正と第2の修正とを合成してなる各脚リンクの先端部の位置及び姿勢の修正によって実際に生じる床反力モーメントとの変化が、目標モーメントに対して過不足を生じやすいという不都合がある。
また、その過不足の発生を極力抑制するためには、第1の修正による各脚リンクの先端部の位置の修正量を決定するためのゲイン(第1の修正によって発生させようとする床反力モーメントの目標モーメントに対する度合いを規定するゲイン)と、第2の修正による各脚リンクの先端部の姿勢の修正量を決定するためのゲイン(第2の修正によって発生させようとする床反力モーメントの目標モーメントに対する度合いを規定するゲイン)とを適切に調整しておく必要がある。そして、その調整作業には、一般に多大な工数を必要とするという不都合がある。
本発明にかかる背景に鑑みてなされたものであり、複数の接触対象面に接触する動作を行なう移動体に各接触対象面から実際に作用する全接触力を目標値に追従させるように該移動体の運動を制御することを、該移動体の各接触対象面に対する各接触部の位置や姿勢の目標運動からの修正量をそれぞれ決定する処理を必要とせずに適切に行うことができる移動体の制御装置を提供することを目的とする。
まず、本発明の基礎となる技術事項を、以下に一般化して説明する。
図1に示す如く、基体102に複数の可動リンク103が連結された移動体101を想定する。この移動体101の各可動リンク103は、複数の関節を備えており、これらの関節の変位によって、空間的な運動が可能である。なお、各関節は、回転型又は直動型の関節である。
そして、移動体101のある運動状態において、移動体101の可動リンク103のうちの、m(i)個(m(i)≧1)の可動リンク103(103_1〜103_m(i))の先端部が、移動体101の動作環境に存在するある1つの接触対象面である第i接触対象面に接触し、これらの可動リンク103_1〜103_m(i)を介して移動体101が第i接触対象面から反力としての接触力を受ける場合と想定する。以降の説明では、可動リンク103_1〜103_m(i)のそれぞれを総称的に第j可動リンク103_j(j=1,2,…,m(i))、又は、可動リンク103_jという。
このとき、第i接触対象面から移動体101に作用するトータルの接触力である全接触力(ベクトル)を↑FMt(i)、この↑FMt(i)のうちの並進力ベクトルである全並進接触力を↑Ft(i)、↑FMt(i)のうちのモーメントベクトルである全接触力モーメントを↑Mti(i)と表記する。
これらの全並進接触力↑Ft(i)及び全接触力モーメント↑Mt(i)は、それぞれ慣性座標系(移動体101の動作環境の床や壁等に対して固定された座標系)で見た3成分の縦ベクトルとして表現されるものとする。そして、第i全接触力↑FMt(i)は、↑Ft(i)及び↑Mt(i)の各成分を並べた6成分の縦ベクトル(=[↑Ft(i),↑Mt(i)]T)として表現されるものとする。また、全接触力↑FMt(i)の作用点Pt(i)は第i接触面上の点とする。
なお、本明細書では、“↑”は、ベクトル(縦ベクトル)を表現する記号として用いる。また、上付き添え字“T”は、転置を意味する。また、本明細書では、理解の便宜上、並進力、モーメント、位置、姿勢等を表現する慣性座標系としては、例えば移動体101の前後方向の水平軸をX軸、鉛直方向をZ軸、これらのX軸及びZ軸に直交する方向(移動体101の左右方向)をY軸とする3軸直交座標系が用いられるものとする。
また、第j可動リンク103_j(j=1,2,…,N)に第i接触対象面から作用する接触力(以下、可動リンク接触力という)を↑FM(i)_j、この↑FM(i)_jのうちの並進力ベクトルである並進接触力を↑F(i)_j、↑FM(i)_jのうちのモーメントベクトルである接触力モーメントを↑M(i)_jと表記する。
これらの並進接触力↑F(i)_j及び接触力モーメント↑M(i)_jは、第i全接触力↑FMt(i)の場合と同様に、それぞれ慣性座標系で見た3成分の縦ベクトルとして表現されるものとする。そして、第j可動リンク接触力↑FM(i)_jは、↑F(i)_j及び↑M(i)_jの各成分を並べた6成分の縦ベクトル(=[↑F(i)_j,↑M(i)_j]T)として表現されるものとする。また、第j可動リンク接触力↑FM(i)_jの作用点P(i)_jは、第j可動リンク103_jと第i接触対象面との接触面内における第i接触対象面上の点とする。
このとき、全接触力↑FMt(i)(以降、第i全接触力↑FMt(i)ということがある)と可動リンク接触力↑FM(i)_j(j=1,2,…,m(i))との間の関係は一般的に、次式(1)により表される。
なお、式(1)のただし書きにおいて、行列AA(i)_jの成分“I”、“0”はそれぞれ、単位行列、零行列である。また、“×”は外積(ベクトル積)を表す算術符号である。
ここで、第j可動リンク接触力↑FM(i)_jの作用点P(i)_jに摂動分の接触力↑ΔFM(i)_j(=[↑ΔF(i)_j,↑ΔM(i)_j]T)を付加し、それによって、第i全接触力↑FMt(i)の作用点Pt(i)に摂動分の接触力↑ΔFMt(i)(=[↑ΔFt(i),↑ΔMt(i)]T)を付加することを想定する。なお、作用点P(i)_jに摂動分の接触力↑ΔFM(i)_jを付加するということは、作用点P(i)_jに作用する接触力を↑FM(i)_jから↑FM(i)_j+↑ΔFM(i)_jに変更することを意味する。同様に、作用点Pt(i)に摂動分の接触力↑ΔFMt(i)を付加するということは、作用点Pt(i)に作用する全接触力を↑FMt(i)から↑FMt(i)+↑ΔFMt(i)に変更することを意味する。
以降、↑ΔFM(i)_jを第j可動リンク摂動接触力、↑ΔFM(i)_jのうちの並進力ベクトル↑ΔF(i)_j及びモーメントベクトル↑ΔM(i)_jをそれぞれ、第j可動リンク摂動並進接触力、第j可動リンク摂動接触力モーメントという。また、↑ΔFMt(i)を第i摂動全接触力(又は摂動全接触力)、↑ΔFMt(i)のうちの並進力ベクトル↑ΔFt及びモーメントベクトル↑ΔMtをそれぞれ、第i摂動全並進接触力(又は摂動全並進接触力)、第i摂動全接触力モーメント(又は摂動全接触力モーメント)という。
上記摂動全接触力↑ΔFMt(i)と、第j可動リンク摂動接触力↑ΔFM(i)_j(j=1,2,…,m(i))との間の関係は、上記式(1)に基づいて、次式(2)により与えられる。
この式(2)におけるAA(i)_j(j=1,2,…,m(i))は、式(1)のただし書きで定義したものと同じである。
また、第j可動リンク摂動接触力↑ΔFM(i)_jが、第j可動リンク103_jと第i接触対象面との接触面(以降、第j可動リンク接触面又は可動リンク接触面という)の位置及び姿勢のばね性変位によって発生するものと仮定する。より詳しくは、第j可動リンク接触面の位置のばね性変位(並進変位)によって、第j可動リンク摂動並進接触力↑ΔF(i)_jが発生し、第j可動リンク接触面の姿勢のばね性変位(回転変位)によって、第j可動リンク摂動接触力モーメント↑M(i)_jが発生するものと仮定する。なお、第j可動リンク接触面の位置及び姿勢のばね性変位は、第j可動リンク接触面での第i接触対象面の形成部材の弾性変形又は第j可動リンク103_jの接触部の弾性変形による並進変位及び回転変位にそれぞれ相当する。
このばね性変位による第j可動リンク接触面の位置の変位量(第j可動リンク接触面の3軸方向の並進変位量のベクトル。以降、ばね性並進変位量という)と姿勢の変位量(第i可動リンク接触面の3軸周りの回転変位量のベクトル。以降、ばね性回転変位量という)とをそれぞれ↑Xorg(i)_j、↑Xrot(i)_jと表記する。このとき、↑Xorg(i)_jと↑ΔF(i)_jとの間の関係、及び↑Xrot(i)_jと↑ΔM(i)_jとの間の関係は、それぞれ、次式(3)、(4)により表されることとなる。
↑ΔF(i)_j=Korg(i)_j・↑Xorg(i)_j ……(3)
↑ΔM(i)_j=Krot(i)_j・↑Xrot(i)_j ……(4)
式(3)のKorg(i)_jは、第j可動リンク接触面のばね性並進変位量↑Xorg(i)_jの各成分毎のばね定数を対角成分として構成される3次の対角行列(以下、並進ばね定数行列Korg(i)_jという)、式(4)のKrot(i)_jは、第j可動リンク接触面のばね性回転変位量↑Xrot(i)_jの各成分毎のばね定数を対角成分として構成される3次の対角行列(以下、回転ばね定数行列Krot(i)_jという)である。
また、移動体101と第i接触対象面との全ての接触面(第i接触対象面に接触している全ての可動リンク103(i)_1〜103(i)_m(i)の接触面)を代表する単一の仮想的な接触面としての第i代表接触面を想定し、この第i代表接触面にて第i全接触力↑FMt(i)が移動体101に作用するものとする。該第i代表接触面は、第i接触対象面上での所謂支持多角形に相当するものである。
そして、第j可動リンク接触面の場合と同様の考え方によって、第i摂動全接触力↑ΔFMt(i)が、第i代表接触面の位置及び姿勢のばね性変位によって発生するものと仮定する。より詳しくは、第i代表接触面の位置のばね性変位(並進変位)によって、摂動全並進接触力↑ΔFt(i)が発生し、第i代表接触面の姿勢のばね性変位(回転変位)によって、摂動全接触力モーメント↑ΔMt(i)が発生するものと仮定する。
従って、第i代表接触面の位置のばね性並進変位量(ばね性変位による3軸方向の並進変位量のベクトル)と姿勢のばね性回転変位量(ばね性変位による3軸周りの回転変位量のベクトル)とをそれぞれ↑Xc_org(i)、↑Xc_rot(i)とすると、↑Xc_org(i)と↑ΔFt(i)との間の関係、及び↑Xc_rot(i)と↑ΔMt(i)との間の関係は、それぞれ、次式(5)、(6)により表されることとなる。
↑ΔFt(i)=Kc_org(i)・↑Xc_org(i) ……(5)
↑ΔMt(i)=Kc_rot(i)・↑Xc_rot(i) ……(6)
式(5)のKc_org(i)は、第i代表接触面のばね性並進変位量↑Xc_org(i)の各成分毎のばね定数を対角成分として構成される3次の対角行列(以下、並進ばね定数行列Kc_org(i)という)、式(6)のKc_rot(i)は、第i代表接触面のばね性回転変位量↑Xc_rot(i)の各成分毎のばね定数を対角成分として構成される3次の対角行列(以下、回転ばね定数行列Kc_rot(i)という)である。
補足すると、上記第i代表接触面は、移動体101の単一の可動リンク103_jだけが第i接触対象面に接触している状態では、第i代表接触面は、その単一の可動リンク103_jの第i接触対象面との接触面(第j可動リンク接触面)に一致するものとされる。そして、この状態では、第i代表接触面の位置及び姿勢のばね性変位は、第j可動リンク接触面の位置及び姿勢のばね性変位と同じであり、第j可動リンク接触面での第i接触対象面の形成部材の弾性変形又は第j可動リンク103_jの接触部の弾性変形による並進変位及び回転変位にそれぞれ相当する。
また、移動体101の2つ以上の可動リンク103が第i接触対象面に接触している状態では、上記第i代表接触面は、第i接触対象面に接触している全ての可動リンク103の接触部分をひとまとめにした単一の仮想的な接触部の第i接触対象面との接触面としての意味を持つ。そして、この状態での第i代表接触面の位置及び姿勢のばね性変位は、当該仮想的な接触部の接触面での第i接触対象面の形成部材の弾性変形あるいは当該仮想的な接触部の弾性変形による並進変位及び回転変位にそれぞれ相当する。
前記式(2)において、第j可動リンク接触力↑FM(i)_j(j=1,2,…,m(i))の作用点P(i)_jにそれぞれ付加する第j可動リンク摂動並進接触力↑ΔF(i)_jによって全接触力↑FMt(i)の作用点Pt(i)に付加される摂動全並進接触力↑ΔFt(i)に着目すると、次式(7)が得られる。
↑ΔFt(i)=↑ΔF(i)_1+↑ΔF(i)_2+……+↑ΔF(i)_m(i) ……(7)
この式(7)と、前記式(3),(5)とから次式(8)が得られる。
Kc_org(i)・↑Xc_org(i)=Korg(i)_1・↑Xorg(i)_1+Korg(i)_2・↑Xorg(i)_2
+……+Korg(i)_m(i)・↑Xorg(i)_m(i) ……(8)
一方、摂動全接触力↑ΔFMt(i)の付加前の全接触力↑FMt(i)の作用点Pt(i)を、全接触力中心点とし、第j可動リンク摂動接触力↑ΔFM(i)_jの付加前の第j可動リンク接触力↑FM(i)_jの作用点P(i)_jを第j可動リンク接触面の接触力中心点としたとき、任意の基準点に対する作用点Pt(i)の位置ベクトル(これを↑Pt(i)と表記する)と、作用点P(i)_j(j=1,2,…,m(i))のそれぞれの位置ベクトル(これを↑P(i)_jと表記する)との間の関係は、次式(9)により与えられる。
なお、全接触力中心点は、全接触力↑FMt(i)の作用点であって、その点周りの全接触力モーメント↑Mt(i)の第i接触対象面に平行な成分がゼロとなるような点である。同様に、第j可動リンク接触面の接触力中心点は、第j可動リンク接触力↑FM(i)_jの作用点であって、その点周りの接触力モーメント↑M(i)_jの第i接触対象面に平行な成分がゼロとなるような点である。
↑Pt(i)=r(i)_1・↑P(i)_1+r(i)_2・↑P(i)_2
+……+r(i)_m(i)・↑P(i)_m(i) ……(9)
この式(9)におけるr(i)_j(j=1,2,…,m(i))は、r(i)_j≡Fn(i)_j/Fnt(i)により定義される重み係数である。ここで、Fn(i)_j(j=1,2,…,m(i))は、第j可動リンク並進接触力↑F(i)_jのうちの第i接触対象面に垂直な垂直抗力成分の絶対値(以降、接触面垂直抗力成分という)、Fnt(i)は全並進接触力↑Ft(i)のうちの第i接触対象面に垂直な垂直抗力成分の絶対値(接触面垂直抗力成分)であり、Fnt(i)=Fn(i)_1+Fn(i)_2+……+Fn(i)_m(i)である。従って、重み係数r(i)_jは、全並進接触力↑Ft(i)の接触面垂直抗力成分Fnt(i)に対する、第j可動リンク接触力↑F(i)_jの接触面垂直抗力成分Fn(i)_jの比率であり、その値は、0≦r(i)_j≦1の範囲内の値である。
そして、この式(9)と同様の関係が、第i代表接触面の位置のばね性並進変位量↑Xc_org(i)と、第j可動リンク接触面の位置のばね性並進変位量↑Xorg(i)_jとの間にも成立するものと仮定する。すなわち、次式(10)が成立するものと仮定する。
↑Xc_org(i)=r(i)_1・↑Xorg(i)_1+r(i)_2・↑Xorg(i)_2
+……+r_m(i)・↑Xorg(i)_m(i) ……(10)
このとき、この式(10)と前記式(8)とから、次式(11)が得られる。
Korg(i)_j=r(i)_j・Kc_org(i) ……(11)
本発明では、上記式(10)が、第i代表接触面のばね性並進変位量↑Xc_org(i)と第j可動リンク接触面(j=1,2,…,m(i))のばね性並進変位量↑Xorg(i)_jとの間の関係を表す基本式、式(11)が、第i代表接触面の並進ばね定数行列Kc_org(i)と第j可動リンク接触面(j=1,2,…,m(i))の並進ばね定数行列Korg(i)_jとの関係を表す基本式とされる。
従って、第j可動リンク接触面の並進ばね定数行列Korg(i)_jの各対角成分(3軸方向のそれぞれの並進変位に関するばね定数)は、重み係数r(i)_jに比例し、重み係数r(i)_jの値が大きいほど(“1”に近いほど)、すなわち、全並進接触力↑Ft(i)の接触面垂直抗力成分Fnt(i)に対する第j可動リンク並進接触力↑F(i)_jの接触面垂直抗力成分Fn(i)_jの比率が大きいほど、大きくなるものとされる。換言すれば、Fnt(i)に対するFn(i)_jの比率が大きいほど、要求される第j可動リンク摂動並進接触力に対する第j可動リンク接触面のばね性並進変位量↑Xorg(i)_jの変化の感度が高くなるものとされる。
また、単一の第j可動脚リンク103_jだけが第i接触対象面に接触している場合(r(i)_j=1となる場合)には、第j可動リンク接触面と第i代表接触面とが一致することに対応して、第j可動リンク接触面の並進ばね定数行列Korg(i)_jと、第i代表接触面の並進ばね定数行列Kc_org(i)とが互いに一致する。さらにこの場合、↑ΔF(i)_j=↑ΔFt(i)となるので、第j可動リンク接触面のばね性並進変位量↑Xorg(i)_jと、第i代表接触面のばね性並進変位量↑Xc_org(i)とが互いに一致することとなる。
そして、2つ以上の可動リンク103が第i接触対象面に接触している場合には、第i代表接触面のばね性並進変位量↑Xc_org(i)は、第i接触対象面に接触している各可動リンク103_jに対応する第j可動リンク接触面のばね性並進変位量↑Xorg(i)_jの重み付き平均値(r(i)_jを重み係数とする重み付き平均値)となる。
次に、前記式(2)において、第1〜第m(i)可動リンク接触力↑FM(i)_1〜↑FM(i)_m(i)のそれぞれの並進接触力↑F(i)_1〜↑F(i)_m(i)を一定に保持した状態で、第j可動リンク接触力↑FM(i)_j(j=1,2,…,m(i))の作用点P(i)_jに第j可動リンク摂動接触力モーメント↑ΔM(i)_jを付加することによって全接触力↑FMt(i)の作用点Pt(i)に付加される摂動全接触力モーメント↑ΔMt(i)に着目すると、次式(12)が得られる。
↑ΔMt(i)=↑ΔM(i)_1+↑ΔM(i)_2+……+↑ΔM(i)_m(i) ……(12)
そして、この式(12)と、前記式(4),(6)とから次式(13)が得られる。
Kc_rot(i)・↑Xc_rot(i)=Krot(i)_1・↑Xrot(i)_1+Krot(i)_2・↑Xrot(i)_2
+……+Krot(i)_m(i)・↑Xrot(i)_m(i)
……(13)
一方、第j可動リンク接触力↑FM(i)_jの作用点P(i)_jを第j可動リンク接触面の接触力中心点としたとき、第1〜第m(i)可動リンク接触力↑FM(i)_1〜↑FM(i)_m(i)のそれぞれの並進接触力↑F_1〜↑F_Nを一定に保持した状態で、第j可動リンク接触力↑FM(i)_jの作用点P(i)_j(接触力中心点)に第j脚摂動接触力モーメント↑ΔM(i)_jを付加するということは、第j可動リンク接触面での接触力中心点の位置を、第i接触対象面上で点P(i)_jからずらすことと等価である。同様に、全接触力↑FMt(i)の作用点Pt(i)を全接触力中心点としたとき、全接触力↑FMt(i)の作用点Pt(i)に摂動全接触力モーメント↑ΔMt(i)が付加されるということは、全接触力中心点の位置が第i接触対象面上で点Pt(i)からずれることと等価である。
この場合、第j可動リンク接触面での接触力中心点の位置の第i接触対象面に平行な方向での変位量(2成分の変位量ベクトル)を↑ΔRpt(i)_j、全接触力中心点の位置の第i接触対象面に平行な方向での変位量(2成分の変位量ベクトル)を↑ΔRptt(i)とすると、↑ΔRptt(i)・Fnt(i)=↑ΔMt(i)の第i接触対象面に平行な軸軸周り成分、↑ΔRpt(i)_j・Fn(i)_j=↑ΔM(i)_jの第i接触対象面に平行な軸周り成分となる。このため、上記式(12)から、次式(14)が得られる。
↑ΔRptt(i)=r(i)_1・↑ΔRpt(i)_1+r(i)_2・↑ΔRpt(i)_2
+……+r(i)_m(i)・↑ΔRpt(i)_m(i) ……(14)
なお、式(14)のr(i)_j(j=1,2,…,m(i))は、前記した重み係数r(i)_j(≡Fn(i)_j/Fnt(i))である。
また、第1〜第m(i)可動リンク接触面は、共通の接触対象面(第i接触対象面)上の部分であるから、第1〜第m(i)可動リンク接触面のそれぞれに作用する垂直抗力Fn(i)_jが互いに同じである場合、第j可動リンク接触面の接触力中心点の位置の第j接触対象面に平行な方向での変位量↑ΔRpt(i)_jに対応する摂動接触力モーメント(=↑ΔRpt(i)_j・Fn(i)_j)と、第j可動リンク接触面のばね性変位による回転変位量↑Xrot(i)_jの第i接触対象面に平行な軸周り成分との間の関係は、いずれの第j可動リンク接触面についても同じになると考ええられる。
そこで、第1〜第m(i)可動リンク接触面のそれぞれに作用する接触面垂直抗力成分Fn(i)_jが互いに同じ値(これをFna(i)とおく)である場合、次式(15)が成立すると考えられる。
↑ΔRpt(i)_j・Fna(i)=Krot(i)・↑Xrot(i)_j_ab ……(15)
なお、↑Xrot(i)_j_abは、第j可動リンク接触面のばね性回転変位量↑Xrot(i)_jの、第i接触対象面に平行な2軸周り成分であり、Krot(i)は、2次の対角行列(第i接触対象面に平行な2軸周りの回転に関するばね定数行列)である。
そして、上記式(15)が、第i代表接触面についても同様に成立するものと仮定すると、次式(16)が得られる。
↑ΔRptt(i)・Fna(i)=Krot(i)・↑Xc_rot(i)_ab ……(16)
なお、↑Xc_rot(i)_abは、第i代表接触面のばね性回転変位量↑Xc_rot(i)の、第i接触対象面に平行な2軸周り成分である。
上記式(14)〜(16)により、次式(17)が得られる。
Krot(i)・↑Xc_rot(i)_ab
=r(i)_1・Krot(i)・↑Xrot(i)_1_ab+r(i)_2・Krot(i)・↑Xrot(i)_2_ab
+……+r(i)_m(i)・Krot(i)・↑Xrot(i)_m(i)_ab ……(17)
さらに、この式(17)から次式(18)が得られる。
↑Xc_rot(i)_ab=r(i)_1・↑Xrot(i)_1_ab+r(i)_2・↑Xrot(i)_2_ab
+……+r(i)_m(i)・↑Xrot(i)_m(i)_ab ……(18)
そこで、本実施形態では、第i代表接触面のばね性回転変位量↑Xc_org(i)と、第j可動リンク接触面のばね性回転変位量↑Xorg(i)_jとの間に、それらの全ての成分(3成分)について、上記式(18)と同じ関係が成立するものと仮定する。すなわち、次式(19)が成立するものと仮定する。
↑Xc_rot(i)=r(i)_1・↑Xrot(i)_1+r(i)_2・↑Xrot(i)_2
+……+r(i)_m(i)・↑Xrot(i)_m(i) ……(19)
このとき、この式(19)と前記式(13)とから、次式(20)が得られる。
Krot(i)_j=r(i)_i・Kc_rot(i) ……(20)
本実施形態では、上記式(19)が、代表接触面(第i代表接触面)のばね性回転変位量↑Xc_rot(i)と第j可動リンク接触面(j=1,2,…,m(i))のばね性回転変位量↑Xrot(i)_jとの間の関係を表す基本式、式(20)が、代表接触面の回転ばね定数行列Kc_rot(i)と第j可動リンク接触面(j=1,2,…,m(i))の回転ばね定数行列Krot(i)_jとの関係を表す基本式とされる。
従って、第j可動リンク接触面の回転ばね定数行列Krot(i)_jの各対角成分(3軸周りのそれぞれの回転変位に関するばね定数)は、重み係数r(i)_jに比例し、重み係数r(i)_jの値が大きいほど(“1”に近いほど)、すなわち、全並進接触力↑Ft(i)の接触面垂直抗力成分Fnt(i)に対する第j可動リンク並進接触力↑F(i)_jの接触面垂直抗力成分Fn(i)_jの比率が大きいほど、大きくなるものとされる。換言すれば、Fnt(i)に対するFn(i)_jの比率が大きいほど、要求される第j可動リンク摂動接触力モーメントに対する第j可動リンク接触面のばね性回転変位量↑Xrot(i)_jの変化の感度が高くなるものとされる。
また、単一の第j可動リンク100_jだけが第i接触対象面に接触している場合(r(i)_j=1となる場合)には、第j可動リンク接触面と第i代表接触面とが一致することに対応して、第j可動リンク接触面の回転ばね定数行列Krot(i)_jと、第i代表接触面の回転ばね定数行列Kc_rot(i)とが互いに一致する。さらにこの場合、↑ΔM(i)_j=↑ΔMt(i)となるので、第j可動リンク接触面のばね性回転変位量↑Xrot(i)_jと、第i代表接触面のばね性回転変位量↑Xc_rot(i)とが互いに一致することとなる。
そして、2つ以上の可動リンク103が第i接触対象面に接触している場合には、代表接触面のばね性回転変位量↑Xc_rot(i)は、第i接触対象面に接触している各可動リンク103_jに対応する第j可動リンク接触面のばね性回転変位量↑Xrot(i)_jの重み付き平均値(r(i)_jを重み係数とする重み付き平均値)となる。
次に、前記式(2)に式(3)〜(6)を適用し、さらに、式(11),(20)を適用することによって、次式(21)が得られる。
なお、前記式(11)、(20)は、全接触力↑FMt(i)の作用点Pt(i)が全接触力中心点、第j可動リンク接触力↑FM(i)_jの作用点P(i)_jが第j可動リンク接触面の接触力中心点であることを前提としているので、式(21)におけるVV(i)_j(j=1,2,…,m(i))は、全接触力中心点としての作用点Pt(i)に対する第j可動リンク接触面の接触力中心点の位置ベクトルを改めて↑V(i)_jとしたとき、次のように定義される行列である。
VV(i)_j: VV(i)_j・↑F(i)_j=V(i)_j×↑F(i)_jとなる行列
ただし、↑V(i)_j:全接触力中心点に対する第j可動リンク接触面の接触力中心点の位置ベクトル
なお、この場合、上記全接触力中心点は、より詳しくは、摂動全接触力↑ΔFMt(i)が付加される前の全接触力↑FMt(i)に対応する全接触力中心点であり、第j可動リンク接触面の接触力中心点は、第j可動リンク摂動接触力↑ΔFM(i)_jが付加される前の第j可動リンク接触力↑FM(i)_jに対応する接触力中心点である。
さらに、上記式(21)から、次式(22)が得られる。
ここで、移動体101の基体102の位置(3軸方向の位置)及び姿勢(3軸周りの姿勢角)と移動体101の各関節の変位量とを成分として構成される一般化変数ベクトルを↑q、代表接触面(第i代表接触面)の位置のばね性並進変位量↑Xc_org(i)及び姿勢のばね性回転変位量↑Xc_rot(i)から成る変位量ベクトル(=[↑Xc_org(i),↑Xc_rot(i)]T)を↑Xc(i)、第j可動リンク接触面の位置のばね性並進変位量↑Xorg(i)_j及び姿勢のばね性回転変位量↑Xrot(i)_jから成る変位量ベクトル(=[↑Xorg(i)_j,↑Xrot(i)_j]T)を↑X(i)_jと表記する。以降、↑Xc(i)を代表接触面のばね性並進・回転変位量、↑X(i)_jを第j可動リンク接触面のばね性並進・回転変位量という。なお、上記一般化変数ベクトル↑qは、より詳しくは、基体102の位置及び姿勢の6個の成分と、移動体101の各関節の変位量とを並べた縦ベクトルである。
この場合、代表接触面(第i代表接触面)のばね性並進・回転変位量↑Xc(i)を代表接触面の位置及び姿勢の単位時間あたりの変位量(時間的変化率)とみなすと、代表接触面の位置及び姿勢の単位時間あたりの変位量と、一般化変数ベクトル↑qの単位時間当たりの変化量(時間的変化率)↑Δqとの間の関係を表現するヤコビアン行列は、↑Xc(i)と↑Δqとの間の関係を次式(23)により表す行列Jc(i)として表現される。なお、↑Δqは、一般化変数ベクトル↑qの各成分の単位時間当たりの変化量を並べた縦ベクトルである。
↑Xc(i)=Jc(i)・↑Δq ……(23)
同様に、第j可動リンク接触面のばね性並進・回転変位量↑X(i)_jを第j可動リンク接触面の位置及び姿勢の単位時間あたりの変位量(時間的変化率)とみなすと、第j可動リンク接触面の位置及び姿勢の単位時間あたりの変位量と、一般化変数ベクトル↑qの単位時間当たりの変化量(時間的変化率)↑Δqとの間の関係を表現するヤコビアン行列は、↑X(i)_jと↑Δqとの間の関係を次式(24)により表す行列J(i)_jとして表現される。
↑X(i)_j=J(i)_j・↑Δq ……(24)
補足すると、第i代表接触面の位置の単位時間当たりの変位量と↑Δqとの間の関係を表現するヤコビアン行列(↑Xc_org(i)と↑Δqとの間の関係を次式(25a)により表現する行列)をJc_org(i)、第i代表接触面の姿勢の単位時間当たりの変位量と↑Δqとの間の関係を表現するヤコビアン行列(↑Xc_rotと↑Δqとの間の関係を次式(25b)により表現する行列)をJc_rot(i)と表記すると、式(25c)に示す如くJc(i)=[Jc_org(i),Jc_rot(i)]Tとなる。
↑Xc_org(i)=Jc_org(i)・↑Δq ……(25a)
↑Xc_rot(i)=Jc_rot(i)・↑Δq ……(25b)
Jc(i)=[Jc_org(i),Jc_rot(i)]T ……(25c)
同様に、第j可動リンク接触面の位置の単位時間当たりの変位量と↑Δqとの間の関係を表現するヤコビアン行列(↑Xorg(i)_jと↑Δqとの間の関係を次式(26a)により表す行列)をJorg(i)_j、第j可動リンク接触面の姿勢の単位時間当たりの変位量と↑Δqとの間の関係を表現するヤコビアン行列(↑Xrot(i)_jと↑Δqとの間の関係を次式(26b)により表す行列)をJrot(i)_jと表記すると、式(26c)に示す如くJ(i)_j=[Jorg(i)_j,Jrot(i)_j]Tとなる。
↑Xorg(i)_j=Jorg(i)_j・↑Δq ……(26a)
↑Xrot(i)_j=Jrot(i)_j・↑Δq ……(26b)
J(i)_j=[Jorg(i)_j,Jrot(i)_j]T ……(26c)
前記式(22)の両辺を微分し、前記式(23)、(24)を適用することで、次式(27)が得られる。
従って、第i代表接触面の位置及び姿勢の変位に関するヤコビアン行列Jc(i)(以降、第i代表接触面ヤコビアン行列Jc(i)又は代表接触面ヤコビアン行列Jc(i)という)は、第i接触対象面における各可動リンク接触面の位置及び姿勢の変位に関するヤコビアン行列J(i)_j(j=1,2,…,m(i))から、上記の式(27)に基づいて決定できることとなる。
この場合、第j可動リンク接触面の位置及び姿勢は、第j可動リンク103_jの先端部の位置及び姿勢であるから、ヤコビアン行列J(i)_j(以降、可動リンクヤコビアン行列J(i)_jという)は、換言すれば、第j可動リンク103_jの先端部の位置及び姿勢の単位時間当たりの変化量と、↑Δqとの間の関係を表現するヤコビアン行列である。そして、このようなヤコビアン行列J(i)_jは、移動体101の各関節の実際の変位量の観測値及びその時間的変化率を基に特定できる。
そして、このように各脚リンクヤコビアン行列J_i(i=1,2,…,N)を特定すれば、それらのJ_iを用いて、上記式(27)により、代表接触面ヤコビンア行列Jcを決定できることとなる。
ここで、移動体101の動作環境にN個(N≧2)の互いに異なる接触対象面(第1〜第N接触対象面)が存在し、移動体101のある運動状態において、それらの第1〜第N接触対象面のそれぞれに、移動体1の1つ以上の可動リンク103が接触する場合を想定する。
この場合、第i接触対象面に関する上記の事項は、第1〜第N接触対象面のそれぞれの接触対象面毎に成立する事項である。
このようにN個の接触対象面のそれぞれに移動体101の可動リンク103が接触する状態において、移動体101の所要の状態を実現するための要求操作量として、第i接触対象面(i=1,2,…,N)に関するある値の摂動全接触力↑ΔFMt(i)が与えられたとき、この↑ΔFMt(i)は前記式(5),(6)に基づいて、第i代表接触面のばね性並進・回転変位量↑Xc(i)(=[↑Xc_org(i),↑Xc_rot(i)]T)の要求値に変換できることとなる。この変換は、次式(28)により与えられる。
さらに、第1〜第N接触対象面のそれぞれに対応する第i代表接触面(i=1,2,…,N)のばね性並進・回転変位量↑Xc(i)を並べたベクトル(縦ベクトル)を、総合ばね性並進・回転変位量↑Xc(≡[↑Xc(1),↑Xc(2),……,↑Xc(N)]
T)、第1〜第N接触対象面のそれぞれに対応する第i代表接触面ヤコビアン行列Jc(i)(i=1,2,…,N)を縦に並べて構成される行列を、総合ヤコビアン行列Jc(≡[Jc(1),Jc(2),……,Jc(N)]
Tとおくと、↑Xcと、一般化変数ベクトル↑qの時間的変化率↑Δqとの間の関係は、次式(29)により与えられる。
そして、総合ヤコビアン行列Jcの擬似逆行列をJc
-1とおくと、第1〜第N接触対象面のそれぞれに対応する第i代表接触面(i=1,2,…,N)のばね性並進・回転変位量↑Xc(i)の要求値を並べてなる総合ばね性並進・回転変位量↑Xcの要求値から、次式(30)により、第1〜第N接触対象面の摂動全接触力↑ΔFMt(i)(i=1,2,…,N)の要求値を実現するための、移動体101の各関節の変位量の修正量を決定できることとなる。
↑Δq=Jc-1・↑Xc ……式(30)
そこで、移動体101の任意の運動状態において、第i接触対象面から移動体101に作用する全接触力を制御するための要求操作量として、摂動全接触力↑ΔFMt(i)の要求値が与えられたとき、前記式(27)に基づいて第i代表接触面ヤコビアン行列Jc(i)を求めると共に、このJc(i)(i=1,2,…,N)から構成される総合ヤコビアン行列Jcの擬似逆行列Jc-1を決定する。さらに、前記式(28)に基づいて、↑ΔFMt(i)の要求値に対応する第i代表接触面のばね性並進・回転変位量↑Xc(i)を求める。そして、この↑Xc(i)から構成される代表接触面総合ばね性並進・回転変位量↑Xcと、Jc-1とから式(29b)によって、摂動全接触力↑ΔFMt(i)(i=1,2,…,N)の全ての要求値を実現するための各関節の変位量の修正量を一括して決定できることとなる。
ひいては、各可動リンク103_jの先端部の位置及び姿勢の修正量自体をそれぞれ決定することなく、一括的に、各関節の変位量を決定できることとなる。
以上が、本発明の基礎とする技術事項である。
以上説明したことを基礎として、以下に本発明を説明する。
本発明は、基体と、基体に連結された複数の可動リンクと、各可動リンクの関節を駆動する関節アクチュエータとを備えた移動体の動作を、該移動体の動作環境に存在する互いに異なる複数の接触対象面である第1〜第N接触対象面(N:2以上の整数)のそれぞれに1つ以上の可動リンクを接触させつつ該移動体の運動を行なわせるための目標運動と、該目標運動を実現するために該移動体に前記第1〜第N接触対象面のそれぞれから作用させるべき全接触力の目標値である目標全接触力とに応じて制御する制御装置であって、
前記第1〜第N接触対象面のそれぞれである第i接触対象面(i=1,2,…,N)から前記移動体に実際に作用する全接触力の観測値と、該第i接触対象面に対応する前記目標全接触力との偏差をゼロに近づけるために該第i接触対象面から該移動体に付加的に作用させるべき全接触力の要求修正量である第i全接触力要求修正量(i=1,2,…,N)のそれぞれを前記偏差に応じて決定する全接触力要求修正量決定手段と、
前記第i全接触力要求修正量が前記移動体と第i接触対象面との全ての接触面を代表する単一の仮想的な接触面としての第i代表接触面の位置及び姿勢のばね性変位によって発生するものと仮定して、前記決定された第i全接触力要求修正量と該第i接触対象面に対応してあらかじめ定められた第i代表接触面のばね定数とから、第i代表接触面(i=1,2,…,N)のそれぞれの位置及び姿勢の要求変位量を算出する代表接触面位置姿勢変位量算出手段と、
前記第i代表接触面の位置及び姿勢の時間的変化率と、前記基体の位置及び姿勢と前記移動体の各関節の変位量とを成分として構成される一般化変数ベクトルの時間的変化率との間の関係を表すヤコビアン行列である第i代表接触面ヤコビアン行列Jc(i)(i=1,2,…,N)のそれぞれを、該第i接触対象面に接触している可動リンクのグループである第i接触可動リンクグループの各可動リンクの接触部の位置の時間的変化率又は該第i接触可動リンクグループの各可動リンクの接触部の位置及び姿勢の時間的変化率と前記一般化変数ベクトルの時間的変化率との間の関係を表すヤコビアン行列である各可動リンクヤコビアン行列J(i)_jと、前記第i代表接触面のばね定数と、前記移動体に該第i接触対象面から実際に作用する全接触力の作用点としての全接触力中心点に対する第i接触可動リンクグループの各可動リンクの接触部の実際の接触力中心点の相対位置と、第i接触可動リンクグループの各可動リンクに実際に作用する接触力の値とから前記式(27)により算出する代表接触面ヤコビアン行列算出手段と、
前記算出された第1〜第N代表接触面の位置及び姿勢の要求変位量を並べてなる総合要求変位量↑Xcに、前記算出された第1〜第N代表接触面ヤコビアン行列Jc(i)(i=1,2,…,N)を並べてなる総合ヤコビアン行列Jcの擬似逆行列Jc-1を乗じることにより前記第1〜第N代表接触面のそれぞれの位置及び姿勢の要求変位量を実現するための前記移動体の各関節の変位量の修正量である関節変位修正量を決定する関節変位修正量決定手段と、
前記移動体の目標運動により規定される該移動体の各関節の変位量である目標関節変位量を、前記決定された関節変位修正量により修正してなる修正後目標関節変位量に応じて前記関節アクチュエータを制御する関節変位制御手段とを備えることを特徴とする(第1発明)。
ここで、前記式(27)と、この式(27)の変数の意味とを改めて記載すると、次の通りである。
なお、本発明において、前記移動体の動作環境に存在する互いに異なる複数の接触対象面というのは、その複数の接触対象面に含まれる任意の2つの接触対象面(又はその2つの接触対象面をそれぞれ包含する平面)が互いに交差するか、又は、互いに間隔を存して平行もしくはほぼ平行に対向するような複数の接触対象面を意味する。この場合、各接触対象面は、それに接触させる可動リンクの部位に比して広い面積を有する面(例えば、通常の床面の如き面)である必要はなく、例えば、該部位と同程度又はそれよりも小さい面積を有する局所的な面であってもよい。
上記第1発明によれば、第i接触対象面(i=1,2,…,N)から前記移動体に実際に作用する全接触力(以降、実全接触力ということがある)の観測値と、該第i接触対象面に対応する前記目標全接触力との偏差をゼロに近づけるための第i全接触力要求修正量(i=1,2,…,N)のそれぞれが前記全接触力要求修正量決定手段により決定される。すなわち、各接触対象面毎に、実全接触力を目標全接触力に追従させるためのフィードバック操作量(制御入力)として、前記第i全接触力要求修正量が決定される。この第i全接触力要求修正量は、第i接触対象面に対応する前記摂動全接触力↑ΔFMt(i)(i=1,2,…,N)の要求値に相当するものである。
なお、第i接触対象面(i=1,2,…,N)から前記移動体に作用する全接触力は、該第i接触対象面に移動体の1つ以上の可動リンクが接触することによって、該第i接触対象面から移動体が受けるトータルの反力を意味する。
また、本発明における前記目標全接触力は、例えば、実際の各接触対象面のモデルとしての想定接触対象面から前記移動体に作用する接触力(反力)の目標値として設定されるものである。この場合、各接触対象面の目標全接触力としては、例えば、それらの合力が、前記移動体の目標運動に対して適宜の動力学モデルの動力学的関係(該目標全接触力の合力が、移動体に作用する重力と、移動体の目標運動によって発生する慣性力との合力に釣り合う等の動力学的関係)が成立するように作成されたものを採用できる。あるいは、移動体の目標運動に対して上記動力学的関係が成立するように作成した各接触対象面の基準の全接触力を、移動体の運動に関する所定の状態量(移動体の全体重心点の位置、全体重心点周りの各運動量、又はそれらの変化速度等の状態量)の目標値と実際の値との偏差に応じて、該偏差をゼロに近づけるように補正したものであってもよい。
前記目標全接触力は、基本的には、移動体の目標運動を動力学的に実現可能な形態で設定されておれば、どのような仕方で設定されていてもよい。
そして、本発明では、決定された第i全接触力要求修正量に対応する第i代表接触面(i=1,2,…,N)の位置及び姿勢の要求変位量が代表接触面位置姿勢変位量算出手段により算出される。
これにより、各接触対象面毎に、実全接触力を目標全接触力に追従させるためのフィードバック操作量(制御入力)としての第i全接触力要求修正量が、第i接触対象面に対応する単一の仮想面たる第i代表接触面の位置及び姿勢の要求変位量に変換される。
ここで、第i代表接触面の位置及び姿勢の変位量は、前記ばね性並進・回転変位量↑Xc(i)に相当するものであり、前記一般化変数ベクトル↑qの単位時間当たりの変化量↑Δqに対して、第i代表接触面ヤコビアン行列Jc(i)によって表現される前記式(23)の関係を有する。
そして、第1〜第N代表接触面のそれぞれの位置及び姿勢の変位量(ばね性並進・回転変位量↑Xc(i))を並べてなる総合ばね性並進・回転変位量↑Xcは、前記一般化変数ベクトル↑qの単位時間当たりの変化量↑Δqに対して、代表接触面ヤコビアン行列Jc(1)〜Jc(N)を並べた総合ヤコビン行列Jcによって表現される前記式(29)の関係を有する。
従って、第1〜第N全接触力要求修正量にそれぞれ対応する第i代表接触面の位置及び姿勢の要求変位量を並べてなる総合要求変位量(総合ばね性並進・回転変位量↑Xcの要求値)に、総合ヤコビアン行列Jcの擬似逆行列Jc-1を乗じることによって(すなわち、前記式(30)によって)、当該総合要求変位量の全体を実現するための(ひいては、第1〜第N全接触力要求修正量を実現するための)移動体の関節変位修正量を決定できることとなる。
そこで、本発明では、前記代表接触面ヤコビアン行列算出手段によって、第i代表接触面ヤコビアン行列Jc(i)(i=1,2,…,N)のそれぞれを算出する。この場合、第i代表接触面ヤコビアン行列Jc(i)は、第i接触対象面に接触している可動リンクのグループである第i接触可動リンクグループの各可動リンクの接触部の位置の時間的変化率又は第i接触可動リンクグループの各可動リンクの接触部の位置及び姿勢の時間的変化率と前記一般化変数ベクトルの時間的変化率との間の関係を表すヤコビアン行列である各可動リンクヤコビアン行列J(i)_jと、前記第i代表接触面のばね定数と、前記移動体に実際に作用する全接触力の作用点としての全接触力中心点に対する第i接触可動リンクグループの各可動リンクの接触部の実際の接触力中心点の相対位置と、第i接触可動リンクグループの各可動リンクに実際に作用する接触力の値とから、前記式(27)によって算出される。
ここで、第i接触対象面における上記全接触力中心点は、第i接触対象面から移動体に作用する全接触力によって、その点周りに発生するモーメント(接触力モーメント)の第i接触対象面に平行な軸周りの成分がゼロとなるような点を意味する。また、第i接触可動リンクグループの各可動リンクの接触部の接触力中心点は、第i接触対象面から該可動リンクに作用する接触力によって、その点周りに発生するモーメント(接触力モーメント)の第i接触対象面に平行な軸周りの成分がゼロとなるような点を意味する。
なお、式(27)の演算を行なうために用いる各可動リンクに実際に作用する接触力の値や、その接触力作用点の位置、全接触力作用点の位置は、移動体に搭載した力センサ等により計測した観測値でよいことはもちろんであるが、実際の値を精度よく近似し得るものであれば、前記目標接触力や適当なモデル等を基に、近似的に推定もしくは予測した値であってもよい。
また、上記可動リンクヤコビアン行列J(i)_jに関して補足すると、本発明では、各可動リンクは、接触対象面への接触部に作用する接触力モーメントを変化させることができる構造の可動リンク(例えば、接触対象面への接触部の接触状態が面接触状態となり、その接触部の姿勢をアクチュエータにより変化させることができるように構成され可動リンク)と、該接触部位に作用する接触力モーメントを変化させることができない構造の可動リンク(例えば該接触部と接触対象面との接触状態が点状となる可動リンク)とのいずれの構造の可動リンクであってもよい。
この場合、各可動リンクが、その接触部での接触力モーメントを変化させることができる構造のものである場合には、可動リンクヤコビアン行列は、該可動リンクの接触部の位置及び姿勢の時間的変化率と前記一般化変数ベクトルの時間的変化率との間の関係を表すヤコビアン行列となる。また、各可動リンクが、その接触部での接触力モーメントを変化させることができない構造のものである場合には、可動リンクヤコビアン行列は、該可動リンクの接触部の位置の時間的変化率と前記一般化変数ベクトルの時間的変化率との間の関係を表すヤコビアン行列となる。
これらの可動リンクヤコビアン行列は、移動体の各関節の実際の変位量の観測値を基に、公知の手法によって求めることができる。
そして、本発明においては、前記関節変位修正量決定手段が、上記の如く算出された第i代表接触面ヤコビアン行列Jc(i)を並べてなる総合ヤコビアン行列Jcの擬似逆行列Jc-1を、第i代表接触面の位置及び姿勢の要求変位量を並べてなる総合要求変位量に乗じることによって、前記関節変位修正量が決定される。これにより、結果的に、第1〜第N全接触力要求修正量を実現するための関節変位修正量が決定されることとなる。
さらに、前記関節変位制御手段が、前記移動体の目標運動により規定される該移動体の各関節の変位量である目標関節変位量を、上記の如く決定された関節変位修正量により修正してなる修正後目標関節変位量に応じて前記関節アクチュエータを制御する。
これにより、移動体が複数の接触対象面に接触する運動状態において、各接触対象面の実全接触力を目標全接触力に追従させるように、移動体の各関節の変位量の制御が行われ、全ての接触対象面(第1〜第N接触対象面)についての所謂、コンプライアンス制御が実現される。
かかる第1発明によれば、各接触対象面毎の第i全接触力要求修正量を該接触対象面に対応する第i代表接触面の位置及び姿勢の要求変位量に変換し、これらの要求変位量を並べた総合要求変位量から前記総合ヤコビアン行列の擬似逆行列Jc-1によって、移動体の各関節の関節変位修正量を求めることにより、個々の接触対象面での可動リンクの接触部の位置や姿勢の修正と実全接触力の変化との関係やそれらの相互の関係を考慮して各接触対象面に対する可動リンクの接触部の位置や姿勢の修正量を決定するような処理を実行することなく、全ての接触対象面についての実全接触力を目標全接触力に追従させるための移動体の各関節の変位量の修正量(関節変位修正量)を一括的に決定できる。そのため、関節変位修正量を決定する処理を効率よく短時間で行なうことができる。
この場合、前記式(27)における各可動リンク(第i接触可動リンクグループの各可動リンク)の重み係数r(i)_jは、接触力の接触面垂直抗力成分が相対的に大きい可動リンクほど、より大きい値(“1”に近い値)に設定されることとなるため、第i全接触力要求修正量に対する第i接触可動リンクグループの各可動リンクの負担分は、結果的に、接触面垂直抗力成分が相対的に大きい可動リンクほど、大きくなる。従って、接触面垂直抗力成分が相対的に小さい可動リンクの接触部の位置や姿勢を不必要に修正したりすることなく、第1〜第N全接触力要求修正量を確実に実現し得るような関節変位修正量を決定できる。
また、第i接触可動リンクグループの各可動リンクの重み係数r(i)_jは連続的に変化するので、第i代表接触面ヤコビアン行列Jc(i)が、不連続的な変化を生じることがない。このため、移動体の各関節の変位量を滑らかに連続的に変化させることができる。ひいては、移動体の運動を滑らかに行なうことができる。
よって、第1発明によれば、複数の接触対象面に接触する動作を行なう移動体に各接触対象面から実際に作用する全接触力を目標値に追従させるように該移動体の運動を制御することを、該移動体の各接触対象面に対する各接触部の位置や姿勢の目標運動からの修正量をそれぞれ決定する処理を必要とせずに適切に行うことができる。
上記第1発明においては、前記全接触力要求修正量決定手段は、前記第i全接触力要求修正量(i=1,2,…,N)のそれぞれを、例えば第i接触対象面における前記偏差を積分することにより決定する(第2発明)。
そして、より好ましくは、前記全接触力要求修正量決定手段は、前記第i全接触力要求修正量(i=1,2,…,N)のそれぞれを、少なくとも第i接触対象面における前記偏差に比例する比例項と、該偏差を積分してなる積分項とを合成することにより決定する(第3発明)。
すなわち、各接触対象面から前記移動体に実際に作用する全接触力(実全接触力)の観測値と、前記目標全接触力との偏差には、目標運動の作成に際して想定されている想定接触対象面に対する実際の接触対象面の全体的な位置及び姿勢の定常的なずれに起因する定常的な偏差と、想定接触対象面で想定されていない実際の接触対象面の局所的な凹凸等に起因する一時的な偏差とがある。
そして、第2発明によれば、前者の偏差を補償することができる。また、第3発明によれば、前者の偏差を前記積分項により補償することができると共に、後者の偏差を前記比例項により補償することができる。
上記第2発明又は第3発明において、第i接触対象面(i=1,2,…,N)において、実全接触力の観測値と、目標全接触力との偏差を積分したもの(以降、これを↑ΔFMt(i)_intと表記する)は、第i接触対象面に対応して移動体の目標運動で想定されている想定接触対象面である想定第i接触対象面の位置及び姿勢と、実際の第i接触対象面の位置及び姿勢との定常的な差分に応じたものとなる。このため、当該偏差の積分値↑ΔFMt(i)_intを、前記式(28)により変換することで算出される↑Xc(i)、すなわち、↑ΔFMt(i)_intから、次式(28−1)により算出される↑Xc(i)_intは、想定第i接触対象面の位置及び姿勢と、実際の第i接触対象面の位置及び姿勢との定常的な誤差分に相当するものとなると考えられる。
なお、式(28−1)においては、↑Xc(i)_intのうちの並進変位量の成分、回転変位量の成分をそれぞれ↑Xc_org(i)_int、↑Xc_rot(i)_intと表記し、↑ΔFMt(i)_intのうちの並進力成分、モーメント成分をそれぞれ↑ΔFt(i)_int、↑ΔMt(i)_intと表記している。
従って、想定第i接触対象面の位置及び姿勢を上記↑Xc(i)_intにより補正することで、実際の第i接触対象面の位置及び姿勢を推定できることとなる。
そこで、前記第2発明においては、前記第1〜第N接触対象面のうちのあらかじめ定められた特定の接触対象面である第h接触対象面に対応して前記目標運動で想定されている接触対象面である想定第h接触対象面の位置及び姿勢を、前記代表接触面位置姿勢変位量算出手段により算出された第h代表接触面の前記要求変位量に応じて補正することにより実際の第h接触対象面の位置及び姿勢を推定する接触対象面推定手段をさらに備えるようにしてもよい(第4発明)。
また、前記第3発明においては、前記第1〜第N接触対象面のうちのあらかじめ定められた特定の接触対象面である第h接触対象面に対応して前記目標運動で想定されている接触対象面である想定第h接触対象面の位置及び姿勢を補正することにより、実際の第h接触対象面の位置及び姿勢を推定する接触対象面推定手段をさらに備えており、該接触対象面推定手段は、第h接触対象面に対応する前記第h全接触力要求修正量を組成する前記積分項と該第h接触対象面に対応する前記第h代表接触面のばね定数とから、該積分項に対応する第h代表接触面の位置及び姿勢の変位量である第h代表接触面定常変位量を算出し、該第h代表接触面定常変位量に応じて前記想定第h接触対象面の位置及び姿勢を補正することにより実際の第h接触対象面の位置及び姿勢を推定するようにしてもよい(第5発明)。
なお、第4発明及び第5発明において、第h接触対象面は、第1〜第N接触対象面のうちの1つ又は一部の接触対象面で良いことはもちろんであるが、第1〜第N接触対象面の全てであってもよい。
前記第4発明においては、移動体のコンプライアンス制御が前記した如く行われている状態において、第1〜第n接触対象面のうちの任意の1つの第h接触対対象面に関し、前記全接触力要求修正量決定手段により決定される第h全接触力要求修正量は、第h接触対象面での実全接触力の観測値と、目標全接触力との偏差を積分してなる値(積分項)であるから、該第h全接触力要求修正量と前記第h代表接触面のばね定数とから、前記代表接触面位置姿勢変位量算出手段により算出される第h代表接触面の位置及び姿勢の要求変位量は、前記目標運動で想定されている第h接触対象面である想定第h接触対象面の位置及び姿勢と、実際の第h接触対象面の位置及び姿勢と間の定常的な差分に相当するものとなる。すなわち、該要求変位量は、前記式(28−1)における↑Xc(k)_intに相当するものである。
従って、第4発明においては、想定第h接触対象面の位置及び姿勢を、前記代表接触面位置姿勢変位量算出手段により算出された第h代表接触面の前記要求変位量に応じて補正することにより、実際の第h接触対象面の位置及び姿勢を推定できることとなる。
また、前記第5発明においては、移動体のコンプライアンス制御が前記した如く行われている状態において、任意の1つの第h接触対対象面に関して前記全接触力要求修正量決定手段により決定される第h全接触力要求修正量のうちの積分項と前記第h代表接触面のばね定数とから、前記代表接触面位置姿勢変位量算出手段と同様の演算によって算出される第h代表接触面の位置及び姿勢の変位量(第h全接触力要求修正量の代わりに前記積分項を用いて算出される第h代表接触面の位置及び姿勢の変位量)は、前記想定第h接触対象面の位置及び姿勢と、実際の第h接触対象面の位置及び姿勢と間の定常的な差分に相当するもの、すなわち、前記式(28−1)における↑Xc(k)_intに相当するものとなる。
従って、第5発明においては、第h全接触力要求修正量に対応する前記積分項と前記第h代表接触面のばね定数とから、該積分項に対応する第h代表接触面定常変位量を算出し、想定第h接触対象面の位置及び姿勢を、前記第h代表接触面定常変位量に応じて補正することにより、実際の第h接触対象面の位置及び姿勢を推定できることとなる。
この場合、前記のコンプライアンス制御によって、前記第h全接触力要求修正量を確実に実現し得るような関節変位修正量を決定して、前記移動体の動作を制御できることから、第4発明における第h全接触力要求操作量、又は第5発明における第h代表接触面定常変位量は、想定第h接触対象面の位置及び姿勢と、実際の第h接触対象面の位置及び姿勢と間の定常的な差分に相当するものとしての信頼性が高いものとなる。従って、実際の第h接触対象面の位置及び姿勢を精度よく推定することができることとなる。
上記第1〜第5発明において、前記総合ヤコビアン行列Jcの擬似逆行列Jc-1は、公知の適宜の手法により算出することができる。
ただし、前記算出された総合ヤコビアン行列Jcの擬似逆行列Jc-1は、あらかじめ設定された重み行列Wと前記算出された総合ヤコビアン行列Jcとから次式(31)により算出される行列であると共に、該式(31)におけるkの値を、次式(32)により表される行列式DETが所定の正の閾値以上の値になるように決定する擬似逆行列演算用パラメータ決定手段を備えており、
Jc-1=W-1・JcT・(Jc・W-1・JcT+k・I)-1 ……(31)
DET=det(Jc・W-1・JcT+k・I) ……(32)
ただし、W:あらかじめ定められた重み行列(対角行列)
前記擬似逆行列演算用パラメータ決定手段は、kの暫定値を所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いて前記行列式DETの値を算出することと、算出した行列式DETの絶対値が前記所定の閾値以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、前記式(31)により擬似逆行列を算出するために用いるkの値として決定する手段であると共に、前記判断結果が否定的である場合のkの暫定値の増加量を、その増加前の暫定値を用いて算出した行列式DETの絶対値と前記所定の閾値との偏差の絶対値のn乗根(n:Jc・W-1・JcTの次数)に比例する値に設定することが好ましい(第6発明)。
なお、式(31)において、Iは単位行列である。また、重み係数行列Wは、各関節の変位量の変化に対する代表接触面の位置及び姿勢の変化の応答性等を考慮し、代表接触面の位置及び姿勢の要求変位量を実現するための各関節の変位量の修正度合いを各関節毎に調整するものである。なお、重み係数行列Wは単位行列であってもよい。
また、kは、式(31)の右辺の括弧内の行列の行列式、すなわち、式(32)に示される行列式DETの大きさが小さくなり過ぎるのを防止するための調整パラメータであり、ゼロ以上の実数値である。この調整パラメータkについて補足すると、擬似逆行列Jc-1は、基本的には、k=0とした場合の上記の式(31)によって算出することができる。
ただし、この場合、上記行列式DETの大きさが小さくなり過ぎる(ゼロに近い値となる)場合がある。そして、このような場合には、式(31)の右辺の括弧内の行列の逆行列が発散し、適切な擬似逆行列Jc-1を決定することができなくなる。これを防止するために、式(31)では、右辺の括弧内の第1項に、単位行列Iのk倍の行列を付加するようにしている。
一方、前記行列式DETの大きさが小さくなり過ぎないようにするための適切な調整パラメータkの値はJcに応じて変化する。また、行列式DETの大きさは、kの値の変化に対して非線形な変化を呈する。
このため、第3発明では、上記行列式DETの絶対値が前記所定の閾値以上となる(過小にならない)kの値を、前記擬似逆行列演算パラメータ決定手段により探索的に決定する。
具体的には、kの暫定値を所定の初期値から段階的に増加させていくように設定することと、設定した各暫定値を用いて前記行列式DETの値を算出することと、算出した行列式DETの絶対値が前記所定の閾値以上の値であるか否かを判断することとを繰り返し、該判断結果が肯定的となったときのkの暫定値を、前記式(31)により擬似逆行列を算出するために用いるkの値として決定する。
この場合、この処理において、kの暫定値の増加量が一定であると、kの値が最終的に決定されるまでに時間がかかりすぎたり、あるいは、移動体の制御装置の制御処理周期毎に決定されるkの値が頻繁に変動し、ひいては、算出される擬似逆行列Jc-1の不連続的な変動が生じやすい。
一方、本願発明者の知見によれば、Jc・W-1・JcTの次数をnとしたとき、行列式DETの値は、kの値のn乗に比例して変化する。
そこで、第6発明では、前記擬似逆行列演算パラメータ決定手段の処理において、前記判断結果が否定的である場合のkの暫定値の増加量を、その増加前の暫定値を用いて算出した行列式DETの絶対値と前記所定の閾値との偏差の絶対値のn乗根(n:Jc・W-1・JcTの次数)に比例する値に設定することとした。
これにより、第6発明によれば、移動体の制御装置の制御処理周期毎に、擬似逆行列Jc-1を算出するために用いる適切なkの値(DETの絶対値が所定の閾値以上となるkの値)を効率よく短時間で決定できると共に、擬似逆行列Jc-1が滑らかに変化していくようにすることができる。ひいては、移動体の各関節の変位量を滑らかに変化させるように、関節変位修正量を決定できることとなる。
また、第6発明によれば、前記重み係数行列Wによって、各関節の変位量の変化に対する代表接触面の位置及び姿勢の変化の応答性等を考慮して、代表接触面の位置及び姿勢の要求変位量を実現するための各関節の変位量の修正度合いを各関節毎に調整することができる。
本発明の一実施形態を図2〜図7を参照して説明する。
図2を参照して、本実施形態で例示する移動体1は、基体2と、該基体2から延設された複数の可動リンク3a〜3d(以降、総称的に可動リンク3ということがある)とを備える移動ロボットである。本実施形態の例では、可動リンク3の個数は4個である。
各可動リンク3は、移動体1の脚又は腕として機能し得るリンク機構である。各可動リンク3は、複数の要素リンク4a〜4c(以降、総称的に要素リンク4ということがある)と、これらの要素リンク4を基体2側から順番に連接する複数の関節部5a〜5c(以降、総称的に関節部5ということがある)とから構成されている。
本実施形態の例では、各可動リンク3を構成する要素リンク4及び関節部5のそれぞれの個数は3個である。そして、3個の要素リンク4a〜4cのうちの要素リンク4aが関節部5aを介して基体2に連結され、要素リンク4bが関節部5bを介して要素リンク4aに連結され、要素リンク4cが関節部5cを介して要素リンク4bに連結されている。
要素リンク4a〜4cのうち、可動リンク3の先端部を構成する要素リンク4cは、移動体1の運動時に、該移動体1の動作環境に存在する床面や壁面等の接触対象面に接触させる部分(すなわち、足平部又は手平部に相当する部分)である。この要素リンク4c(以下、可動リンク3の先端部4cということがある)は、本実施形態の例では、概略板状に形成されており、該要素リンク4cの床面や壁面等に接触させる接触面が平坦面となっている。そして、要素リンク4cの接触面には、ゴム等から成る弾性部材10が取り付けられている。このため、要素リンク4cが、該弾性部材6を介して床面や壁面等の接触対象面に接触するようになっている。
関節部5a〜5cのそれぞれは、例えば図3に示す如く、1つ又は複数の関節により構成されている。具体的には、関節部5aは、例えば3つの関節7a,7b,7cにより構成され、3軸周りの回転自由度を有するものとされている。また、関節部5bは、例えば1つの関節7dにより構成され、1軸周りの回転自由度を有するものとされている。また、関節部5cは、例えば2つの関節7e,7fにより構成され、2軸周りの回転自由度を有するものとされている。従って、各可動リンク3は、トータル6自由度の運動自由度を有するように構成されている。これにより、各可動リンク3は、空間的な運動を行なうことが可能となっている。
なお、各可動リンク3の構成は、上記の構成に限られるものではない。例えば、可動リンク3は、回転型の関節以外に直動型の関節を含んでいてもよい。また、各可動リンクは7自由度以上の運動自由度を有するように構成されていてもよい。また、各可動リンク3の構造(要素リンク4のサイズや個数、関節11の構造や個数)は、全ての可動リンク3で同じである必要はない。例えば可動リンク3a,3bを主に脚として使用し、可動リンク3c,3dを主に腕として使用するような場合には、可動リンク3a,3bと、可動リンク3c,3dとが互いに異なる構造のものであってもよい。
図2及び図3では図示を省略するが、移動体1には、上記した各関節7a〜7f(以降、総称的に関節7ということがある)をそれぞれ駆動する関節アクチュエータとしての複数の電動モータ8(図4に示す)が搭載されている。各電動モータ8は、それぞれに対応する関節7に、減速機を含む動力伝達機構(図示省略)を介して駆動力(回転駆動力)を伝達するように接続されている。
なお、関節アクチュエータは、電動モータ以外のアクチュエータ、例えば油圧式のアクチュエータであってもよい。
以上の構成を有する移動体1は、各可動リンク3の各関節7を電動モータ8により駆動することによって、各可動リンク3の空間的な運動が行なわれる。この運動によって移動体1の運動(移動を含む)を行なうことが可能となっている。例えば、可動リンク3a〜3dのうちの2つの可動リンク3a,3bを脚リンクとし、人の歩行動作と同様の形態(歩容)で可動リンク3a,3bを運動させることによって、移動体1の歩行動作を行なうことが可能である。また、可動リンク3c,3dを腕リンクとして動かすことによって、壁面を押す等の作業を行なうことが可能である。あるいは、4つの可動リンク3a〜3dを脚リンクとし、これらの可動リンク3a〜3dを4足動物と同様の形態で動かすことによって、床面上を移動するようにすることも可能である。
補足すると、移動体1の基体2には、可動リンク3以外に、頭部等が連結されていてもよい。また、例えば、基体2を2つの半体で構成し、これらの半体を関節を介して連結してもよい。
本実施形態では、以上の構造を有する移動体1の動作制御を行なうために、CPU、RAM、ROM等を含む電子回路ユニットにより構成された制御装置50と、各種のセンサとが備えられている。
この場合、センサとしては、図4に示すように、移動体1の基体2の姿勢角(鉛直方向に対する傾斜角度やヨー軸周りの方位角)やその時間的変化率(角速度)等を計測するために該基体2に搭載された姿勢センサ51と、各可動リンク3の先端部4cが外部の接触対象面に接触した状態で該接触対象面から受ける接触力(反力)を計測するために各可動リンク3の関節部5cと先端部(要素リンク)4cとの間に介装された力センサ52とが備えられている。
上記姿勢センサ51は、例えば3軸周りの角速度を検出するジャイロセンサと3軸方向の加速度を検出する加速度センサとから構成される。また、各力センサ52は、例えば3軸方向の並進力及び3軸周りのモーメントを検出する6軸力センサにより構成される。
また、図2及び図3では図示を省略したが、移動体1には、各関節7の変位量(回転角度)を検出するセンサとして、例えばロータリーエンコーダ53(図4に示す)が備えられている。なお、各関節7の変位量(回転角度)を検出するセンサとしては、ポテンショメータ等の他のセンサを用いてもよい。
制御装置50には、上記の各センサ51,52,53の出力が入力される。そして、制御装置50は、これらの入力値から認識される移動体1の動作状態の観測値(基体2の姿勢角やその時間的変化率(角速度)の計測値、基体2の移動速度の計測値、各可動リンク3の先端部4cに作用する接触力の計測値、各関節7の変位量やその時間的変化率の計測値など)を使用して、移動体1に目標とする運動を行なわせるための各関節7の変位量の目標値(以下、関節変位指令という)を決定すると共に、この関節変位指令に応じて、各関節7の実際の変位量(実変位量)を電動モータ8を介して制御する。
かかる制御処理を実行する制御装置50は、実装されるプログラムにより実現される主要な機能として、図5に示す如く、基準歩容生成部61、姿勢安定化補償力決定部62、目標全接触力決定部63、全接触力要求修正量決定部64、代表接触面並進・回転変位量算出部65、代表接触面ヤコビアン行列算出部66、目標関節変位量決定部67、関節変位修正量決定部68、関節変位制御部69、接触対象面推定部70を備える。
そして、制御装置50は、上記基準歩容生成部61、姿勢安定化補償力決定部62、目標全接触力決定部63、全接触力要求修正量決定部64、代表接触面並進・回転変位量算出部65、代表接触面ヤコビアン行列算出部66、目標関節変位量決定部67、関節変位修正量決定部68及び関節変位制御部69の処理を所定の演算処理周期で逐次実行することにより、各関節の関節変位指令を逐次決定し、この関節変位指令に応じて、図示しないモータ駆動回路を介して電動モータ8を制御する。
さらに、制御装置50は、上記の制御処理と並行して、接触対象面推定部70の処理を実行することにより、移動体1の動作環境に存在する実際の接触対象面のうちの特定の接触対象面の位置及び姿勢を推定する。
以下に、移動体1に図6に示すような運動を行なわせる場合を一例として、上記各機能部の詳細な処理を含めて制御装置50の処理を説明する。
[基準歩容生成部61の処理]
本実施形態では、制御装置50は、基準歩容生成部61により、移動体1の基準の目標歩容としての基準歩容を生成する。
この基準歩容は、移動体1の各部の目標とする空間的な位置及び空間的な姿勢(空間的な向き)の軌道を規定する(ひいては移動体1の各関節の目標とする変位量の軌道を規定する)目標運動と、この目標運動を実現するために移動体1に接触対象面から作用させるべきトータルの外力である総外力の軌道を規定する目標総外力とから構成される。なお、「軌道」は、瞬時値の時系列を意味する。
基本歩容生成部61が生成する基準歩容のうちの目標運動は、本実施形態では、床面等を含む複数の接触対象面が存在する動作環境で移動体1を移動させる目標運動である。この目標運動には、複数の接触対象面のそれぞれに1つ以上の可動リンク3を接触させ、それにより、複数の接触対象面から反力としての接触力を移動体1が受けることとなる運動状態が含まれる。
このような目標運動の一例として、本実施形態では、図6に示すような動作を移動体1に行なわせる目標運動を例示する。
この目標運動では、移動体1は、基本的には、その動作環境に存在する1つの接触対象面としての床面FL上で2つの可動リンク3a,3bを脚として動かす歩行動作を行なうことによって、破線Aで示す如き移動経路で床面FL上を移動する。
この場合、移動経路Aは、押し開き可能なドアDが取り付けられた壁WLの開口WLaを通過する経路とされている。そして、上記目標運動では、移動体1は、開口WLaを通過する際に、ドアDを押し開く動作を行なう。この動作では移動体1は、ドアDに近接して対面した状態で可動リンク3c,3dのうちの一方、例えば可動リンク3dの先端部4cをドアDの表面Da(以下、ドア表面Daという)に接触させ、この接触状態で、可動リンク3dによりドアDを押すことによって、該ドアDを開く。このようにドアDを開いた後に、移動体1は、開口WLaを通って移動する。
このような目標運動では、ドアDを押し開く時に、移動体1は、互いに異なる2つの接触対象面としての床面FLと、ドア表面Daとに接触して、これらの床面FL及びドア表面Daから反力としての接触力を受けることとなる。
上記の如き動作を移動体1に行なわせる目標運動は、移動体1の動作環境に存在する実際の床面等の接触対象面の形状(接触対象面の各所の位置及び姿勢)に合致するものとしてあらかじめ位置及び姿勢が定められた接触対象面モデルである想定接触対象面に移動体1の可動リンク3を接触させるように生成されるものである。なお、本実施形態では、目標運動を作成するために使用する想定接触対象面は、接触対象面推定部70で実際の接触対象面を表すものとして推定された接触対象面(推定接触対象面)に応じて定期的に(例えば移動体1の移動時に1歩毎又は複数歩毎に、あるいは、所定時間毎に)更新される。
この目標運動は、本実施形態の移動体1では、各可動リンク3の先端部(要素リンク)4cの目標位置及び目標姿勢の軌道である目標可動リンク位置姿勢軌道と、基体2の目標位置及び目標姿勢の軌道である目標基体位置姿勢軌道と、移動体1の全体重心の目標位置の軌道である目標重心位置軌道と、移動体1の全体重心の周りの角運動量の目標値の軌道である目標角運動量軌道とから構成される。
なお、可動リンク3の先端部(要素リンク)4cの「位置」は、該先端部4cの空間的な位置を代表的に示すものとして任意に定められた該先端部4cの代表点の位置(例えば先端部4cの接触面の特定の位置の点)の位置を意味する。基体2の「位置」についても同様である。また、可動リンク3の先端部4cの「姿勢」は、該先端部4cの空間的な向きを意味する。基体2の「姿勢」についても同様である。
また、上記の目標可動リンク位置姿勢及び目標基体位置姿勢は、移動体1の動作環境の床面等の任意の静止物に対して固定された慣性座標系としてのグローバル座標系で見た位置及び姿勢として表される。このグローバル座標系としては、例えば移動体1の支持脚(移動体1の重量を床に支える脚)としての1つの可動リンク3の接地面(床面との接触面)内の点を原点とし、該可動リンク3の先端部(要素リンク)4cの前後方向の水平軸をX軸、鉛直方向の軸をZ軸、これらに直交する方向の水平軸をY軸とする支持脚座標系が用いられる。
この場合、移動体1の歩行動作においては、支持脚が切替わる毎に、グローバル座標系の原点の位置とX軸及びY軸の方向とが更新されることとなる。ただし、グローバル座標系は、床面等の任意の静止物に対して定常的に固定された座標系であってもよい。なお、以降の説明では、説明の便宜上、X軸、Y軸、Z軸は特にことわらない限り、上記支持脚座標系の3軸を意味するものとする。
補足すると、前記目標重心位置軌道及び目標角運動量軌道は、各可動リンク3の目標可動リンク位置姿勢軌道と、目標基体位置姿勢軌道とに応じて従属的に決まるものであり、移動体1の各関節7の変位量を直接的に規定するものではない。従って、これらの目標重心位置軌道及び目標角運動量軌道は、必ずしも、基準歩容生成部61で生成する基本歩容の目標運動の構成要素とする必要はない。本実施形態において、基準歩容生成部61で目標重心位置軌道及び目標角運動量軌道を生成するのは、これらの目標重心位置軌道及び目標角運動量軌道を後述する姿勢安定化補償力決定部62の処理で使用するためである。
本実施形態では、基準歩容生成部61は、図6に示したような形態で移動体1を動作させるための基準歩容の目標運動を例えば次のように生成する。
ドアDを押し開く動作の前後において移動体1の歩行動作を行なうための目標運動の生成処理では、可動リンク3c,3dに関する目標可動リンク位置姿勢軌道は、例えば基体2に対する可動リンク3c,3dの全体の相対的な姿勢を定常的に一定に保つように決定される。そして、脚としての可動リンク3a,3bに関する目標可動リンク位置姿勢軌道と、目標基体位置姿勢軌道とは、例えば、本願出願人が特許第3726081号等に提案した手法と同様の手法で生成される。
この場合の可動リンク3a,3bの目標可動リンク位置姿勢軌道及び目標基体位置姿勢軌道の生成処理を概略的に説明すると、可動リンク3a,3bの足平部に相当する先端部4cの想定床面(床面に対応する想定接触対象面)に対する着床予定位置及び着床予定時刻等、目標可動リンク位置姿勢軌道を規定するパラメータが、移動体1の外部から制御装置50に与えられる移動体1の移動方向や移動速度の要求、あるいは移動計画等に応じて決定される。なお、上記パラメータを制御装置50に外部から入力し、あるいは、あらかじめ制御装置50の記憶装置に記憶保持しておいてもよい。
そして、このパラメータにより規定される可動リンク3a,3bの目標可動リンク位置姿勢軌道に応じて、ZMP(Zero Moment Point)の目標位置である目標ZMPの軌道が決定される。目標ZMP軌道は、目標ZMPが可動リンク3a,3bの目標可動リンク位置姿勢軌道に応じて規定される想定床面上の支持多角形内の概ね中央付近の位置に極力収まり、且つ、滑らかに(ステップ状の変化を生じることなく)変位していくように決定される。
さらに、移動体1の動力学(外力としての床反力と移動体1の運動との間の関係)を表現する適宜の動力学モデルを用いて、目標ZMPを満足するように(移動体1の運動によって発生する慣性力と移動体1に作用する重力との合力が目標ZMP周りに発生するモーメントの水平成分(X軸周り及びY軸周りの成分)がゼロになるように)目標基体位置姿勢軌道が決定される。
さらに、各可動リンク3の目標可動リンク位置姿勢軌道と目標基体位置姿勢軌道とから移動体1の幾何学モデル(剛体リンクモデル)を用いて、移動体1の目標重心位置軌道と目標重心位置の周りの目標角運動量軌道とが算出される。なお、移動体1の剛体リンクモデルは、その各要素リンクに質量やイナーシャが設定されたモデルである。
また、ドアDを押し開く動作を行なうための目標運動の生成処理では、脚としての可動リンク3a,3bに関する目標可動リンク位置姿勢軌道は、例えば可動リンク3a,3bのそれぞれの先端部4cが、ドアDの手前で想定床面に接触(接地)して静止した状態に保たれるように決定される。さらに、目標ZMPが想定床面上の支持多角形内の概ね中央付近の位置に収まるように、目標ZMP軌道が決定される。
また、可動リンク3cに関する目標可動リンク位置姿勢軌道は、例えば基体2に対する可動リンク3cの全体の相対的な姿勢を定常的に一定に保つように決定される。
そして、ドアDを押し開くための可動リンク3dに関する目標可動リンク位置姿勢軌道は、該可動リンク3dの先端部4cをドア表面Dの所定の箇所に接触させ、続いて、あらかじめ定められた開動作パターンでのドアDの開動作(ヒンジ周りの回転運動)に追従して可動リンク3dの先端部4cを動かすように決定される。
さらに、ドアDの開動作とドア表面Daに作用する外力(又はドア表面Daから移動体1が受ける反力)との間の関係を表現する適宜の動力学モデルを用いて、ドアDの開動作時に移動体1が受ける反力(接触力)の推定値が求められる。
そして、移動体1の動力学(接触対象面としての床面FLとドア表面Daとから移動体1に作用する接触力(反力)と、移動体1の運動との間の関係)を表現する適宜の動力学モデルを用いて、目標ZMPを満足するように(移動体1の運動によって発生する慣性力と移動体1に作用する重力とドア表面Daから移動体1が受ける接触力との合力が目標ZMP周りに発生するモーメントの水平成分(X軸周り及びY軸周りの成分)がゼロになるように)目標基体位置姿勢軌道が決定される。
さらに、移動体1の歩行動作の場合と同様に、各可動リンク3の目標可動リンク位置姿勢軌道と目標基体位置姿勢軌道とから移動体1の幾何学モデル(剛体リンクモデル)を用いて、移動体1の目標重心位置軌道と目標重心位置の周りの目標角運動量軌道とが算出される。
補足すると、移動体1の目標運動を生成する手法は、上記の如き手法に限られるものではなく、想定接触対象面を設定した動作環境で移動体1が実現可能な目標運動を生成し得るものであれば、他のどのような手法によって生成してもよい。
また、移動体2の歩行動作時において、基体2に対する可動リンク3c,3dの相対的な姿勢を、必要に応じて所望の形態で変化させるように決定するようにしてもよい。例えば両可動リンク3c,3dを移動体1の歩行動作に合せて前後に振るようにしてもよい。その場合、可動リンク3c,3dの基体2に対する相対的な姿勢の変化に伴う移動体1の全体重心の位置の変化や、該全体重心の周りの角運動量の変化を考慮した動力学モデルを用いて目標基体位置姿勢軌道を生成するようにしてもよい。
また、ドアDの開動作時においては、例えばドアDの開動作に伴い、脚としての可動リンク3a,3bをドアDに近づけていくように可動リンク3a,3bの目標可動リンク位置姿勢軌道を決定するようにしてもよい。さらに、可動リンク3c,3dの両方をドア表面Daに接触させてドアDの開動作を行なうように目標運動を決定するようにしてもよい。
また、目標運動の構成要素は、上記のものに限られるものではない。例えば可動リンク3以外に、上体2に対して可動な部位(頭部等)が移動体1に備えられている場合には、その部位の目標位置や目標姿勢の軌道も目標運動の構成要素して付加される。また、例えば、各可動リンク3が7自由度以上の自由度を有する場合には、目標可動リンク位置姿勢軌道に加えて、例えば各可動リンク3の中間部の部位の目標位置姿勢軌道を目標運動の構成要素として付加してもよい。
目標運動の構成要素は、それによって移動体1の各関節の変位量の軌道を規定し得るものであればよく、移動体1の構造等に応じて適宜定めればよい。
基準歩容のうちの目標総外力は、移動体1を目標運動に従って運動させるために、動力学的に移動体1に作用させることが必要となるトータルの外力(重力を除く)の軌道を規定するものである。その目標総外力は、移動体1に作用させるトータルの並進力の目標値である目標総並進外力と、移動体1に作用させるトータルのモーメントの目標値である目標総モーメント外力とから構成される。なお、目標総モーメント外力は、より詳しくは、慣性座標系の任意の基準点(例えば前記支持脚座標系の原点)周りのモーメントとして表現されるものである。
以降の説明では、基準歩容の目標総外力のうちの目標総並進外力(ベクトル)を↑Ft_cmd0、目標総モーメント外力(ベクトル)を↑Mt_cmd0と表記する。本実施形態では、↑Ft_cmd0,↑Mt_cmd0は、それぞれ、X軸成分、Y軸成分、及びZ軸成分の3成分からなる縦ベクトルである。また、↑Ft_cmd0と↑Mt_cmd0とから構成される目標総外力を↑FMt_cmd0と表記する。この場合、↑FMt_cmd0は、↑Ft_cmd0,↑Mt_cmd0の各成分を並べた縦ベクトル(6成分の縦ベクトル)であるとする。すなわち、↑FMt_cmd0=[↑Ft_cmd0,↑Mt_cmd0]Tであるとする。
基本歩容のうちの目標総外力↑FMt_cmd0のうちの目標総並進外力↑Ft_cmd0は、移動体1の全体重心に作用する重力(移動体1の全体質量と、重力加速度ベクトルとの積)と、移動体1の全体重心の運動(並進運動)によって発生する慣性力(移動体1の全体重心の並進加速度ベクトルと、全体質量との積の符号を反転させたもの)との合力に釣り合う並進力(当該合力の符号を反転させた並進力)として決定される。この場合、上記慣性力は、移動体1の目標重心位置軌道と、移動体1の全体質量の値とを用いて算出される。
また、目標総外力↑FMt_cmd0のうちの目標総モーメント外力↑Mt_cmd0は、移動体1の全体重心の並進運動によって慣性座標系の基準点周りに発生する慣性力モーメントと、移動体1の目標運動によって該移動体1の全体重心周りに発生する慣性力モーメントとの合成モーメントに釣り合う釣り合うモーメント(当該合成モーメントの符号を反転させたモーメント)として決定される。
この場合、移動体1の全体重心の並進運動によって基準点周りに発生する慣性力モーメントは、基準点に対する移動体1の目標重心位置の位置ベクトルと、移動体1の全体質量の値とを用いて算出される。また、移動体1の目標運動によって該移動体1の全体重心周りに発生する慣性力モーメントは、移動体1の目標運動と、移動体1の剛体リンクモデル(各要素リンクに質量やイナーシャを持つモデル)とを用いて算出される。
以上が、基準歩容生成部61の処理である。補足すると、前記基準歩容は、移動体1の移動動作中に生成する必要はなく、該移動体1の移動開始前に事前に作成しておき、それを制御装置50の記憶装置に事前に記憶保持したり、外部から制御装置50に適宜、無線通信によって入力するようにしてもよい。このようにした場合、制御装置50に基準歩容生成部61を備える必要はない。
[目標関節変位量決定部67の処理]
制御装置50は、前記の如く生成された基準歩容のうちの目標運動(より詳しくは、目標運動のうちの、各可動リンク3の目標可動リンク位置姿勢軌道、及び目標基体位置姿勢軌道)を、目標関節変位量決定部67に入力し、該目標関節変位量決定部67の処理を実行する。この目標関節変位量決定部67は、基準歩容の目標運動によって規定される移動体1の各関節の変位量である基準の目標変位量を算出する機能部である。この場合、目標関節変位量決定部67は、入力された目標運動から、逆運動学の演算処理によって移動体1の各関節の目標変位量を算出する。
なお、基準歩容を事前に作成しておく場合には、この基準歩容の目標運動に対応する各関節の目標変位量も事前に作成しておいてもよい。その場合には、制御装置50に目標関節変位量決定部67を備える必要はない。
[姿勢安定化補償力決定部62の処理]
制御装置50は、目標関節変位量決定部67の処理と並行して(又は該処理の前もしくは後に)、姿勢安定化補償力決定部62、目標全接触力決定部63、全接触力要求修正量決定部64、代表接触面並進・回転変位量算出部65、代表接触面ヤコビアン行列算出部66及び関節変位修正量決定部68の処理を実行する。これらの処理は、コンプライアンス制御のための操作量(制御入力)を決定するための処理であり、以降、コンプライアンス操作量決定処理という。そして、制御装置50は、このコンプライアンス操作量決定処理によって、前記基準歩容に対応する各関節の基準の目標変位量を修正するための関節変位修正量を決定する。
このコンプライアンス操作量決定処理では、制御装置50は、まず、姿勢安定化補償力決定部62の処理を実行する。この姿勢安定化補償力決定部62は、移動体1の目標運動における所要の運動状態量の目標値と、実際の運動状態量の値との偏差をゼロに近づけるために、移動体1に付加的に作用させるべき外力である姿勢安定化補償力を基準歩容の目標総外力↑FMt_cmd0を修正するための修正量として決定する機能部である。
上記運動状態量は、移動体1の姿勢を安定化するために重要なものとしてあらかじめ定められた種類の状態量である。その運動状態量としては、本実施形態では、移動体1の全体重心の位置と、移動体1の全体重心の周りの角運動量とを採用した。そして、姿勢安定化補償力決定部62は、基準歩容における目標重心位置と、移動体1の実際の重心位置(実重心位置)の観測値との偏差をゼロに近づけるために移動体1に付加的に作用させるべき並進外力↑Fg_dmd(以降、補償並進外力↑Fg_dmdという)と、基準歩容における目標角運動量と移動体1の実際の重心周りの角運動量の観測値との偏差をゼロに近づけるために移動体1に付加的に作用させるべきモーメント外力↑Mg_dmd(以下、補償モーメント外力↑Mg_dmdという)との組を、姿勢安定化補償力として決定する。以降の説明では、補償並進外力↑Fg_dmdと補償モーメント外力↑Mg_dmdとを並べたベクトルを↑FMg_dmd(=[↑Fg_dmd,↑Mg_dmd]T)と表記し、これを姿勢安定化補償力と呼ぶ。
上記姿勢安定化補償力↑FMg_dmdのうちの補償並進外力↑Fg_dmdは、基準歩容における目標重心位置と、移動体1の実際の重心位置(実重心位置)の観測値との偏差から所定のフィードバック制御則により決定される。そのフィードバック制御則としては、本実施形態では、例えばPD則が用いられる。
すなわち、本実施形態では、次式(33)で示す如く、基準歩容生成部61で生成された基準歩容の目標重心位置↑Pg_cmdと移動体1の実重心位置↑Pg_actの観測値との偏差に所定値のゲインKpを乗じた比例項と、目標重心位置↑Pg_cmdの時間的変化率↑Pg'_cmdと移動体1の実重心位置↑Pg_actの時間的変化率↑Pg'_actの観測値(=↑Pg_actの観測値の時間的変化率)との偏差に所定値のゲインKvを乗じた微分項とを加え合わせることにより補償並進外力↑Fg_cmdが決定される。
↑Fg_dmd=Kp・(↑Pg_cmd−↑Pg_act)+Kv・(↑Pg'_cmd−↑Pg'_act)
……(33)
なお、↑Fg_cmd,↑Pg_cmd,↑Pg_act,↑Pg'_cmd,↑Pg'_actは、いずれの3成分(3軸方向成分)のベクトルである。また、実重心位置↑Pg_actの観測値及びその時間的変化率は、前記ロータリーエンコーダ53の出力により示される各関節7の実際の変位量(実変位量)の計測値と、移動体1の幾何学モデル(剛体リンクモデル)とを用いて算出される。
また、姿勢安定化補償力↑FMg_dmdのうちの補償モーメント外力↑Mg_dmdは、基準歩容における目標角運動量と、移動体1の実重心位置の周りの角運動量の観測値との偏差から所定のフィードバック制御則により決定される。そのフィードバック制御則としては、本実施形態では、例えば比例則が用いられる。
すなわち、本実施形態では、次式(34)で示す如く、基準歩容生成部61で生成された基準歩容の目標角運動量↑Lg_cmdと、移動体1の実重心位置の周りの実際の角運動量(実角運動量)↑Lg_actの観測値との偏差に所定値のゲインKLを乗じることにより、補償モーメント外力↑Mg_dmdが決定される。
↑Mg_dmd=KL・(↑Lg_cmd−↑Lg_act) ……(34)
なお、↑Mg_cmd,↑Lg_cmd,↑Lg_actはいずれも3成分(3軸周り成分)のベクトルである。また、実角運動量↑Lg_actの観測値は、前記ロータリーエンコーダ53の出力により示される各関節7の実変位量の計測値と、移動体1の幾何学モデル(剛体リンクモデル)とを用いて算出される。
補足すると、補償並進外力↑Fg_dmdは、PD則以外のフィードバック制御則(例えば比例則)により決定するようにしてもよい。また、補償モーメント外力↑Mg_dmdは、比例則以外のフィードバック制御則(例えば、PD則)により決定するようにしてもよい。
また、本実施形態では、姿勢安定化補償力決定部62に基準歩容生成部61から目標重心位置↑Pg_cmdと目標角運動量↑Lg_cmdとを与えるようにしたが、これらの目標重心位置↑Pg_cmdと目標角運動量↑Lg_cmdとを姿勢安定化補償力決定部62で、基準歩容の目標運動から算出するようにしてもよい。
[目標全接触力決定部63の処理]
次いで、制御装置50は、目標全接触力決定部63の処理を実行する。この目標全接触力決定部63は、上記の如く決定した姿勢安定化補償力↑FMg_dmdにより基準歩容の目標総外力↑FMt_cmd0を補正し、その補正後の目標総外力(以降、修正後目標総外力↑FMt_cmd1という)を実現するために、移動体1が接触するN個(N≧1)の接触対象面のそれぞれから移動体1に作用させるべき目標全接触力↑FMt(i)_cmd1(i=1,2,…,N)を決定する機能部である。
具体的には、目標全接触力決定部63は、基準歩容生成部61で生成された目標総外力↑FMt_cmd0に、姿勢安定化補償力決定部62で決定された姿勢安定化補償力↑FMg_dmdを加え合せることによって、修正後目標総外力↑FMt_cmd1を決定する。すなわち、↑FMt_cmd0+↑FMg_dmdを↑FMt_cmd1として決定する。
この場合、修正後目標総外力↑FMt_cmd1は、並進外力↑Ft_cmd1とモーメント外力↑Mt_cmd1とから構成されるベクトル(=[↑Ft_cmd1,↑Mt_cmd1]T)である。そして、↑Ft_cmd1(以降、修正後目標総並進外力という)は、基準歩容の目標総並進外力↑Ft_cmd0と補償並進外力↑Fg_dmdとを加え合わせたもの(=↑Ft_cmd0+↑Fg_dmd)であり、↑Mt_cmd1(以降、修正後目標総モーメント外力という)は、基準歩容の目標総モーメント外力↑Mt_cmd0と、補償モーメント外力↑Mg_dmdとを加え合わせたもの(=↑Mt_cmd0+↑Mg_dmd)である。
そして、目標全接触力決定部63は、修正後目標総外力↑FMt_cmd1を、移動体1が現在接触している全ての接触対象面(第1〜第N接触対象面)に、あらかじめ定められた規則に従って分配し、各接触対象面(第i接触対象面)から移動体1に作用させるべき目標全接触力↑FMt(i)_cmd1(第i目標全接触力↑FMt(i)_cmd1)(i=1,2,…,N)をそれぞれ決定する。
ここで、第i目標全接触力↑FMt(i)_cmd1は、より詳しくは、第i接触対象面のモデルとしての想定第i接触対象面(その空間的な位置及び姿勢が、実際の第i接触対象面に一致もしくは近似するものとしてあらかじめ定められた接触対象面)から移動体1に作用する接触力の目標値として決定されるものである。この第i目標全接触力↑FM(i)_cmd1は、想定第i接触対象面上のある作用点から移動体1に作用する並進力(全接触力の並進力成分)の目標値である目標全並進接触力↑Ft(i)_cmd1と、その作用点周りで移動体1に作用するモーメント(全接触力のモーメント成分)の目標値である目標全接触力モーメント↑Mt(i)_cmd1とから構成されるベクトル(=[↑Ft(i)_cmd1,↑Mt(i)_cmd1]T)である。
そして、本実施形態では、第i目標全接触力↑FMt(i)_cmd1の作用点は、第i接触対象面から移動体1に作用する全接触力に関する全接触力中心点(その点周りの全接触力モーメントのうちの第i接触対象面に平行な軸周りの成分がゼロとなるような全接触力の作用点)の目標位置として、想定第i接触対象面上に設定される第i目標全接触力中心点である。
従って、第i目標全接触力↑FMt(i)_cmd1は、第i目標全接触力モーメント↑Mt(i)_cmd1のうちの想定第i接触対象面に平行な軸周りの接触力モーメントがゼロとなるような全接触力である。そして、第i目標全接触力↑FMt(i)_cmd1(i=1,2,…,N)のそれぞれの決定処理においては、想定第i接触対象面のそれぞれにおける目標全接触力中心点(第i目標全接触力中心点)の決定も併せて行なわれる。
第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1の決定処理(修正後目標総外力↑FMt_cmd1の分配処理)は、本実施形態では、例えば次のように行なわれる。すなわち、移動体1の現在の接触対象面が1つである場合(N=1である場合)には、修正後目標総並進外力↑Ft_cmd1がそのまま、当該1つの接触対象面に対応する目標全接触力↑FMt(i)_cmd1の目標全並進接触力↑Ft(i)_cmd1として決定される。
さらに、この目標全並進接触力↑Ft(i)_cmd1が当該1つの接触対象面に対応する想定接触対象面上の目標全接触力中心点に作用したときに、前記基準点周りに発生するモーメント(=基準点に対する目標全床反力中心点の位置ベクトルと、目標全並進接触力↑Ft(i)_cmd1とのベクトル積)のうち、該想定接触対象面に平行な軸周り成分が、修正後目標総モーメント外力↑Mt_cmd1のうちの該想定接触対象面に平行な軸周りの成分に一致するように、目標全接触力中心点が該想定対象接触面上に決定される。
そして、目標全接触力↑FMt(i)_cmd1の目標全接触力モーメント↑Mt(i)_cmd1は、↑Mt(i)_cmd1のうちの上記想定接触対象面に水平な軸周り成分がゼロとなり、且つ、↑Mt(i)_cmd1のうちの該想定接触対象面に垂直な軸周り成分と、修正後目標総並進外力↑Ft_cmd1のうちの該想定接触対象面に平行な軸周り成分とによって前記基準点周りに発生するモーメントが、修正後目標総モーメント外力↑Mt_cmd1のうちの該想定接触対象面に垂直な軸周りの成分に一致するように決定される。
また、移動体1の現在の接触対象面が2つ以上である場合(N≧2である場合)には、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1は例えば次のように決定される。
すなわち、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1のそれぞれの接触面垂直抗力成分(それぞれに対応する想定第i接触対象面に垂直な並進力成分)の総和の並進力ベクトルが、修正後目標総並進外力↑Ft_cmd1のうちの、想定第i接触対象面(i=1,2,…,N)の全てに平行な成分を除く成分に一致するように、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1のそれぞれの接触面垂直抗力成分が決定される。
さらに、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1のそれぞれの摩擦力成分(それぞれに対応する想定第i接触対象面に平行な並進力成分)の総和の並進力ベクトルが、修正後目標総並進外力↑Ft_cmd1のうちの、想定第i接触対象面(i=1,2,…,N)の全てに平行な成分に一致するように、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1のそれぞれの摩擦力成分が決定される。
なお、この場合、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1のそれぞれの摩擦力成分は、接触面垂直抗力成分の大きさが相対的に小さい第i目標全接触力↑FMt(i)_cmd1の摩擦力成分の大きさが相対的に小さくなるように決定される。
例えば、第1目標全接触力↑FMt(1)_cmd1の接触面垂直抗力成分の大きさが、第2目標全接触力↑FMt(2)_cmd1の接触面垂直抗力成分の大きさよりも小さい場合には、第1目標全接触力↑FMt(1)_cmd1の摩擦力成分の大きさが、第2目標全接触力↑FMt(2)_cmd1の摩擦力成分の大きさよりも小さくなるように、それらの摩擦力成分が決定される。
そして、第i目標全接触力↑FMt(i)_cmd1(i=1,2,…,N)の第i目標全並進接触力↑Ft(i)_cmd1が、それぞれの接触面垂直抗力成分と摩擦力成分との合成並進力として決定される。
さらに、上記の如く決定した第i目標全並進接触力↑Ft(i)_cmd1(i=1,2,…,N)のそれぞれが、対応する想定第i接触対象面上の目標全接触力中心点(第i目標全接触力中心点)に作用したときに、前記基準点周りに発生する総和のモーメント(=基準点に対する第i目標全床反力中心点の位置ベクトルと、第i目標全並進接触力↑Ft(i)_cmd1とのベクトル積の総和のモーメントベクトル)が、修正後目標総モーメント外力↑Mt_cmd1にほぼ一致するか、もしくは極力近い値になるように、第1〜第N目標全接触力中心点が決定される。
このような第1〜第N目標全接触中心点は、例えば次のように決定できる。すなわち、想定第i接触対象面(i=1,2,…,N)のそれぞれに対して、第i目標全接触力中心点の暫定値を決定し、その暫定の第i目標全接触中心点に第i目標全接触力↑FMt(i)_cmd1をそれぞれ作用させた場合に、前記基準点周りに発生する総和のモーメントを算出する。そして、この総和のモーメントと、前記修正後目標総モーメント外力↑Mt_cmd1との偏差を誤差モーメントとして算出する。
さらに、第i目標全接触力中心点のそれぞれの位置の変化(暫定値からの変化)に対する前記基準点周りのモーメントの変化の感度を表すヤコビアン行列を算出し、このヤコビアン行列の擬似逆行列を上記誤差モーメントに乗じることによって、第i目標全接触力中心点のそれぞれの位置の修正量を決定する。
そして、この決定した修正量によって、第i目標全接触力中心点のそれぞれの位置を暫定値から修正することによって、第1〜第N目標全接触力中心点をそれぞれ決定する。
さらに、第i目標全接触モーメントの、想定第i接触対象面に垂直な軸周りの接触力モーメントがそれぞれ決定される。この場合、上記の如く決定した第i目標全接触力中心点(i=1,2,…,N)にそれぞれ第i目標全並進接触力↑Ft(i)_cmd1を作用させた場合に前記基準点周りに発生する総和のモーメントと、想定第i接触対象面(i=1,2,…,N)に垂直な軸周りの接触力モーメントとの合成モーメントが修正後目標総モーメント外力↑Mt_cmd1に一致するように、想定第i接触対象面のそれぞれに垂直な軸周りの接触力モーメント(以降、これをねじり力モーメントという)が決定される。
そして、第i目標全接触力モーメントMt(i)_cmd1(i=1,2,…,N)のそれぞれは、上記の如く決定したねじり力モーメントに一致するモーメント(想定第i接触対象面に平行な軸周りの成分はゼロとなるモーメント)として決定される。
なお、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1によって前記基準点周りに発生する総和のモーメントを修正後目標総モーメント外力↑Mt_cmd1に一致させるために上記のようにねじり力モーメントを決定する代わりに、第1〜第N目標全並進接触力Ft(i)_cmd1のうちの摩擦力成分の総和を、修正後目標総並進外力↑Ft_cmd1のうちの、想定第i接触対象面(i=1,2,…,N)の全てに平行な成分に一致する値から変化させないように、2つ以上の第i目標全並進接触力Ft(i)_cmd1の摩擦力成分の修正量を決定するようにしてもよい。この場合は、第i目標全接触力中心点(i=1,2,…,N)にそれぞれ当該修正後における第i目標全並進接触力↑Ft(i)_cmd1を作用させた場合に前記基準点周りに発生する総和のモーメントが修正後目標総モーメント外力↑Mt_cmd1に一致するように、2つ以上の第i目標全並進接触力Ft(i)_cmd1の摩擦力成分の修正量を決定すればよい。
あるいは、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1によって前記基準点周りに発生する総和のモーメントを修正後目標総モーメント外力↑Mt_cmd1に一致させるために、第i目標全接触力FMt(i)_cmd1の上記ねじり力モーメント(=↑Mt(i)_cmd1)と2つ以上の第i目標全並進接触力Ft(i)_cmd1の摩擦力成分の修正量との両方を決定するようにしてもよい。
本実施形態では、以上のようにして、第1〜第N目標全並進接触力↑Ft(i)_cmd1の総和の並進力が、修正後総並進外力↑Ft_cmd1に一致し、且つ、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1によって前記基準点周りに発生する総和のモーメントが修正後目標総モーメント外力↑Mt_cmd1に一致するように、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1が第1〜第N目標全接触中心点と共に決定される。
なお、この場合、第i目標全接触力中心点(i=1,2,…,N)のそれぞれは、想定第i接触対象面における移動体1の全ての接触面を連接した領域(所謂、支持多角形に相当する領域)内で決定される。
以上が本実施形態における目標全接触力決定部63の具体的な処理である。
ここで、図6に示したような形態で移動体1の移動を行なう場合について例示的に説明すると、移動体1によりドアDを押し開く動作の前後における歩行動作時においては、接触対象面は床面FL(以降、これを第1接触対象面とする)だけである。そして、この状況では、目標全床反力に相当する第1目標全接触力↑FMt(1)__cmd1が上記の処理によって決定される。なお、この場合、第1目標全接触力中心点は、目標全床反力中心点であり、想定第1接触対象面(想定床面)上の支持多角形内に設定される。その支持多角形は、脚としての可動リンク3a,3bのうちの一方だけが接地する状態(片脚支持状態)では、その一方の可動リンク3a又は3bの先端部4cと想定第1接触対象面との接触面の領域である。また、可動リンク3a,3bの両方が接地する状態(両脚支持状態)では、可動リンク3a,3bのそれぞれの先端部4cと想定第1接触対象面との接触面を連接した領域である。
また、ドアDを押し開く動作時においては、接触対象面は、床面FL(第1接触対象面)と、ドア表面Da(以降、これを第2接触対象面とする)との2つの接触対象面である。そして、この状況では、第1目標全接触力↑FMt(1)_cmd1(目標全床反力)と、第2目標全接触力↑FMt(2)_cmd1(ドア表面Daからの目標全接触力)とが上記の処理によって決定される。
なお、この場合、目標全床反力中心点に相当する第1目標全接触力中心点は、想定第1接触対象面(想定床面)上の支持多角形の領域内に設定される。また、第2目標全接触中心点は、可動リンク3dの先端部4cとドア表面Daに対応する想定第2接触対象面との接触面の領域内に設定される。この場合、想定第2接触対象面は、ドアDのあらかじめ定めれた開動作パターンでドアDのヒンジの周りに回転する面(位置及び姿勢が経時的に変化する接触対象面)である。
補足すると、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1を決定するための上記の手法は、本願出願人が先に特願2010−44712号にて提案した手法を適用したものであり、その詳細は、特願2010−44712号にて詳細に説明されている。そして、本発明は、各目標全接触力↑FMt(i)_cmd1の決定の仕方を本質とするものではない。このため、冗長な記載を避けるために、本明細書では第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1の決定処理に関する説明は簡略的な説明に留めた。
ここで、移動体1が接触するN個の接触対象面に関する第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1を決定する手法は、第1〜第N目標全並進接触力Ft(i)_cmd1の総和の並進力が、修正後総並進外力↑Ft_cmd1に一致(もしくはほぼ一致)し、且つ、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1によって前記基準点周りに発生する総和のモーメントが修正後目標総モーメント外力↑Mt_cmd1に一致(もしくはほぼ一致)し、また、各接触対象面毎の目標全接触力↑FMt(i)_cmd1が連続的に(滑らかに)変化するように第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1を決定する手法であれば、特願2010−44712号にて本願出願人が提案した手法に限らず、どのような手法で第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1を決定するようにしてもよい。
[全接触力要求修正量決定部64の処理]
次いで、制御装置50は、全接触力要求修正量決定部64の処理を実行する。この全接触力要求修正量決定部64は、上記の如く決定した第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1のそれぞれに、第i接触対象面(i=1,2,…,N)から移動体1に作用する実際の全接触力(第i全接触力)の観測値を追従させるように第i全接触力の要求修正量をそれぞれ決定する機能部である。
第i全接触力の要求修正量は、前記式(2)の第i摂動全接触力↑ΔFMt(i)の要求値に相当するものであり、第i全接触力のうちの並進接触力の要求修正量(3成分の縦ベクトル)としての第i摂動全並進接触力↑ΔFt(i)の要求値と、第i目標全接触力中心点周りの全接触力モーメントの要求修正量(3成分の縦ベクトル)としての摂動全接触力モーメント↑ΔMt(i)の要求値とから構成される。以降の説明では、第i摂動全並進接触力↑ΔFt(i)の要求値を↑ΔFt(i)_dmd、第i摂動全接触力モーメント↑ΔMt(i)の要求値を↑ΔMt(i)_dmdと表記し、これらを合わせた6成分の縦ベクトルとしての第i摂動全床反力↑ΔFMt(i)の要求値を↑ΔFMt(i)_dmd(=[↑ΔFt(i)_dmd,↑ΔMt(i)_dmd]T)と表記する。
また、第i接触対象面から移動体1に作用する実際の全接触力(実全接触力)のうちの並進接触力の観測値(3成分の縦ベクトル)を↑Ft(i)_act、実全接触力(第i実全接触力)のうちの接触力モーメントの観測値(3成分の縦ベクトル)を↑Mt(i)_actと表記し、さらに、これらの↑Ft(i)_act,↑Mt(i)_actを合わせた6成分の縦ベクトルとしての第i実全接触力の観測値を↑FMt(i)_act(=[↑Ft(i)_act,↑Mt(i)_act]T)と表記する。
全接触力要求修正量決定部64は、以下に説明する処理によって、上記第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmd(i=1,2,…,N)をそれぞれ決定する。
すなわち、全接触力要求修正量決定部64は、まず、第i接触対象面(i=1,2,…,N)のそれぞれに関し、第i目標全接触力↑FMt(i)_cmd1と、第i実全接触力の観測値↑FMt(i)_actとの偏差↑Dfmt(i)(=↑FMt(i)_cmd1−↑FMt(i)_act)を算出する。この場合、第i実全接触力の観測値↑FMt(i)_actは、第i接触対象面に接触している可動リンク3のグループである第i接触可動リンクグループの各可動リンク3の前記力センサ52の出力により示される該可動リンク3の接触力(6軸力)の観測値を、第i目標全接触力中心点を作用点として合成することにより算出される。
ただし、本実施形態では、偏差↑Dfmtが過剰に変動するのを防止するために、全接触力要求修正量決定部64は、第i接触可動リンクグループのそれぞれについて、前記力センサ52の出力により示される各可動リンク3の接触力(6軸力)の観測値を合成してなる第i実全接触力の値に、ローパス特性のフィルタリング処理を施すことによって、第i目標全接触力中心点に作用する第i実全接触力の観測値↑FMt(i)_actを算出する。なお、この場合、第i接触可動リンクグループの各可動リンク3の接触力(6軸力)の観測値に、それぞれローパス特性のフィルタリング処理を施したものを合成することによって第i実全接触力の観測値↑FMt(i)_actを算出するようにしてもよい。
次いで、全接触力要求修正量決定部64は、第i接触可動リンクグループのそれぞれについて、次式(41)に示す如く、上記偏差↑Dfmt(i)に応じて決定した比例項(式(41)の右辺の第1項)と積分項(式(41)の右辺の第2項)と加え合わせることによって、第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdを決定する。
上記比例項は、偏差↑Dfmt(i)に所定値のゲインKcmpを乗じたものである。また、上記積分項は、偏差↑Dfmt(i)にローパス特性のフィルタリング処理を施してなる値↑Dfmt(i)_filtに所定値のゲインKestmを乗じてなる値を積分したものである。ここで、↑Dfmt(i)_filtを得るためのローパス特性のフィルタリング処理は、その高周波側のカットオフ周波数が、前記偏差↑Dfmt(i)を算出するときに用いたローパス特性のフィルタリング処理の高周波側のカットオフ周波数よりも低周波数となる特性のフィルタリング処理である。
↑ΔFMt(i)_dmd=Kcmp・↑Dfmt(i)+∫(Kestm・↑Dfmt(i)_filt)
……(41)
なお、ゲインKcmp,Kestmは、スカラーでもよいが、対角行列であってもよい。
ここで、式(41)の積分項は、第i目標全接触力↑FMt(i)_cmd1と、第i実全接触力の観測値↑FMt(i)_actとの定常偏差に相当し、これは、実際の第i接触対象面に対する想定第i接触対象面の位置及び姿勢の誤差分に相当するものである。
なお、本実施形態では、上記式(41)により第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdを算出したが、比例項を省略して要求値↑ΔFMt(i)_dmdを算出するようにしてもよい。また、積分項の演算では、↑ΔDfmt(i)_filtの代わりに、↑Dfmt(i)をそのまま用いるようにしてもよい。
以上が、本実施形態における全接触力要求修正量決定部64の処理である。
ここで、図6に示したような形態で移動体1の移動を行なう場合について例示的に説明すると、移動体1によりドアDを押し開く動作の前後における歩行動作時においては、床面FL(第1接触対象面)に関する第1摂動全接触力↑ΔFMt(1)の要求値↑ΔFMt(1)_dmdが、上記式(41)により算出される。
また、ドアDを押し開く動作時においては、床面FL(第1接触対象面)に関する第1摂動全接触力↑ΔFMt(1)の要求値↑ΔFMt(1)_dmdと、ドア表面Da(第2接触対象面)に関する第2摂動全接触力↑FMt(2)の要求値↑ΔFMt(2)_dmdとがそれぞれ上記式(41)により算出される。
[代表接触面並進・回転変位量算出部65の処理]
以上の如く全接触力要求修正量決定部64の処理を実行した後、制御装置50は、代表接触面並進・回転変位量算出部65の処理を実行する。この代表接触面並進・回転変位量算出部65は、上記の如く決定された第i摂動全床反力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmd(i=1,2,…,N)のそれぞれを、前記式(28)によって、第i接触対象面に対応する仮想的な第i代表接触面のばね性並進・回転変位量↑Xc(i)(=[↑Xc(i)_org,↑Xc(i)_rot]T)に変換する機能部である。
この場合、本実施形態では、第i接触対象面(i=1,2,…,N)のそれぞれに対する移動体1の接触面を代表する第i代表接触面の並進ばね定数行列Kc_org(i)の各対角成分(第i代表接触面の3軸方向の並進変位に関する各成分のばね定数)と、該第i代表接触面の回転ばね定数行列Kc_rot(i)の各対角成分(第i代表接触面の3軸周りの回転変位に関する各成分のばね定数)とは、第i接触対象面(i=1,2,…,N)のそれぞれ毎に、あらかじめ定められた定数値とされている。
そして、代表接触面並進・回転変位量算出部65は、これらのばね定数行列Kc_org(i),Kc_rot(i)を用いて、前記式(28)に基づいて、第i代表接触面のばね性並進・回転変位量↑Xc(i)を算出する。具体的には、式(28)の右辺の↑ΔFMt(i)に↑ΔFMt(i)_dmdを代入してなる次式(42)により、第i代表接触面のばね性並進・回転変位量↑Xc(i)をそれぞれ算出する。
この式(42)におけるKc_org(i)
-1は、並進ばね定数行列Kc_org(i)の逆行列(Kc_org(i)の各対角成分の逆数値を対角成分とする行列)、Kc_rot(i)
-1は、回転ばね定数行列Kc_rot(i)の逆行列(Kc_rot(i)の各対角成分の逆数値を対角成分とする行列)である。これらのKc_org(i)
-1,Kc_rot(i)
-1は、それぞれ、制御装置50で並進ばね定数行列Kc_org(i)、回転ばね定数行列Kc_rot(i)から算出するようにしてもよいが、Kc_org(i)
-1,Kc_rot(i)
-1をあらかじめ制御装置50の記憶装置に記憶保持しておくようにしてもよい。
以上が、本実施形態における代表接触面並進・回転変位量算出部65の処理である。
ここで、図6に示したような形態で移動体1の移動を行なう場合について例示的に説明すると、移動体1によりドアDを押し開く動作の前後における歩行動作時においては、床面FL(第1接触対象面)に対応する第1代表接触面のばね性並進・回転変位量↑Xc(1)が、上記式(42)により算出される。
また、ドアDを押し開く動作時においては、床面FL(第1接触対象面)に対応する第1代表接触面のばね性並進・回転変位量↑Xc(1)と、ドア表面Da(第2接触対象面)に対応する第2代表接触面のばね性並進・回転変位量↑Xc(2)とがそれぞれ上記式(42)により算出される。
[代表接触面ヤコビアン行列算出部66の処理]
コンプライアンス操作量決定処理では、制御装置50は、上記の如く第1〜第N代表接触面のばね性並進・回転変位量↑Xc(1)〜↑Xc(N)を算出するのと並行して(又は↑Xc(1)〜↑Xc(N)の算出処理の前もしくは後に)、代表接触面ヤコビアン行列算出部66の処理を実行する。
この代表接触面ヤコビアン行列算出部66は、前記式(23)の関係を表現する第i代表接触面ヤコビアン行列Jc(i)(i=1,2,…,N)をそれぞれ算出する機能部である。なお、本実施形態における一般化変数ベクトル↑qは、より詳しくは、基体2の位置及び姿勢の6個の成分と、移動体1の各関節7の変位量とを並べた縦ベクトルである。そして、この↑qの各成分の単位時間当たりの変化量を並べた縦ベクトルが、式(23)の↑Δqである。
代表接触面ヤコビアン行列算出部66は、前記式(27)により、第i代表接触面ヤコビアン行列Jc(i)をそれぞれ算出する。ここで、前記式(27)と、この式(27)の主な変数の意味とを改めて記載すると次の通りである。
この場合、式(27)の右辺の演算に必要な変数値は、次のように決定される。
第i接触対象面に関する重み係数r(i)_jに関し、ロータリエンコーダ53の出力により示される各関節7の実際の変位量(実関節変位量)の観測値(計測値)に基づいて、第i接触可動リンクグループの各可動リンク3の先端部4cの現在の実姿勢の観測値が決定される。さらに、第i接触可動リンクグループの各可動リンク3(第1〜第m(i)可動リンク3のそれぞれ)の先端部4cの実姿勢の観測値と、前記力センサ52の出力とを基に、第i接触可動リンクグループの各可動リンク3の現在の実際の接触面垂直抗力成分Fn(i)_j(実接触面垂直抗力成分Fn(i)_j)(j=1,2,…,m(i))の観測値が求められる。そして、第i接触可動リンクグループの各可動リンク3の実接触面垂直抗力成分Fn(i)_jの観測値から、式(27−1)により示される定義式に従って、重み係数r(i)_j(j=1,2,…,m(i))が決定される。なお、この場合、重み係数r(i)_jの値が頻繁に変動するのを防止するために、Fn(i)_jのそれぞれの観測値にローパスフィルタ等のフィルタリング処理を施してもよい。
補足すると、重み係数r(i)_jは、第i接触可動リンクグループの各可動リンク3の各可動リンク3の実接触面垂直抗力成分Fn(i)_jの観測値に基づいて決定することが望ましいが、該観測値の代わりに、実接触面垂直抗力成分Fn(i)_jの近似的な推定値もしくは予測値を使用して、重み係数r(i)_jを決定するようにしてもよい。例えば第i接触可動リンクグループの各可動リンク3の目標接触力を設定するようにした場合で、且つ、各可動リンク3の実接触力が目標接触力に近似的に一致すると考えられる場合には、実接触面垂直抗力成分Fn(i)_jの観測値の代わりに目標値を使用して、重み係数r(i)_jを決定するようにしてもよい。
また、第i接触対象面に関する行列A(i)_j(j=1,2,…,m(i))に関する係数行列Rk(i)は、第i代表接触面に関してあらかじめ定められた並進ばね定数行列Kc_org(i)と、回転ばね定数行列Kc_rot(i)(又はその逆行列Kc_rot(i)-1)とから上記式(27−3)に従って決定される。なお、係数行列Rk(i)は、制御装置50の記憶装置にあらかじめ記憶保持しておいてもよい。
また、行列A(i)_jに関する行列VV(i)_jを決定するために必要となる位置ベクトル↑V(i)_jは、例えば、次のように決定される。
ロータリエンコーダ53の出力により示される各関節7の現在の実変位量の観測値(計測値)と、前記力センサ52の出力とを基に、第i接触可動リンクグループの各可動リンク3の接触面(第i接触対象面との接触面)における現在の実際の接触力中心点(実接触力中心点)の位置ベクトル(以降、これを↑Va(i)_jと表記する)が特定される。なお、この位置ベクトルの基準点は任意の点でよい。
次いで、第i接触可動リンクグループの各可動リンク3に対応する実接触力中心点の、前記重み係数r(i)_jの応じた重み付き平均の点の位置ベクトル↑Vc(i)(=r(i)_1・↑Va(i)_1+r(i)_2・↑Va(i)_2+……+r(i)_m(i)・↑Va(i)_m(i))を、第i実全接触力中心点の位置ベクトルとして算出する。
そして、↑V(i)_j=↑Va(i)_j−↑Vc(i)(j=1,2,…,m(i))により、第i実全接触力中心点に対する第i接触可動リンクグループの各可動リンク3(第j可動リンク3)の接触面の実接触力中心点の位置ベクトル↑V(i)_jがそれぞれ決定される。
そして、行列A(i)_jに関する行列VV(i)_jは、定義に従って、VV(i)_j・↑F(i)_j=↑V(i)_j×↑F(i)_jとなるように決定される。
式(27)の右辺の演算に必要な変数値のうち、第i接触可動リンクグループの第j可動リンク3に関する可動リンクヤコビアン行列J(i)_jは、次のように決定される。可動リンクヤコビアン行列J(i)_jは、第j可動リンク接触面(第j可動リンク3と第i接触対象面との接触面)のばね性並進・回転変位量↑X(i)_j(=[↑Xorg(i)_j,↑Xrot(i)_j]Tと、一般化変数ベクトル↑qの単位時間当たりの変化量↑Δqとの間の関係を前記式(24)により表現する行列である。
ここで、↑X(i)_jのうちのばね性並進変位量↑Xorg(i)_jは、第j可動リンク接触面の単位時間当たりの並進変位量であるとみなすと、第j脚リンク3の先端部4cの現在の接触部分の位置の時間的変化率(並進速度)に一致すると考えてよい。また、↑X(i)_jのうちのばね性回転変位量↑Xrot(i)_jは、第j可動リンク接触面の単位時間当たりの回転変位量であるとみなすと、第j可動リンク3の先端部4cの現在の姿勢の時間的変化率(角速度)に一致すると考えてよい。
そこで、本実施形態では、第j可動リンク3の先端部4cの現在の接触部分の位置及び該先端部4cの姿勢(より詳しく当該位置及び姿勢を成分とする縦ベクトル)の単位時間当たりの変化量(時間的変化率)が、前記式(24)の左辺の↑X(i)_jに一致するものとして、第i接触可動リンクグループの第j可動リンク3に関する脚リンクヤコビアン行列J(i)_jを決定する。なお、第j可動リンク3の先端部4cの現在の接触部分の位置としては、例えば、該第j可動リンク3の接触面(第j可動リンク接触面)の実接触力中心点に相当する該先端部4cの点の位置が用いられる。
この場合、可動リンクヤコビアン行列J(i)_jは、移動体1の現在の動作状態(これは各関節7の現在の実変位量の計測値により特定される)を↑qの微小変化(摂動)の起点として、公知の手法によって決定される。例えば、移動体1の幾何学モデル(剛体リンクモデル)を用いて、あるいは、解析的な演算によって、一般化変数ベクトル↑qの各成分の微小変化(現在状態からの微小変化)に対する第j可動リンク3の先端部4cの接触部分の位置の変化と該先端部4cの姿勢の変化とを算出することで、可動リンクヤコビアン行列J(i)_jが決定される。
なお、この場合、第i接触可動リンクグループの第j可動リンク3の先端部4cの接触部分の現在の位置は、第j可動リンク3の第i接触対象面との接触面の現在の実接触力中心点の位置の観測値に一致するものとされる。そして、この点の位置の変化(↑qの各成分の微小変化に対する変化)が、第j可動リンク3の先端部4cの接触部分の位置の変化として算出される。
また、第j可動リンク3の先端部4cの現在の姿勢は、ロータリエンコーダ53の出力が示す各関節の実変位量の観測値(計測値)を基に算出される該第j可動リンク3の先端部4cの現在の実姿勢の観測値に一致するものとされて、該先端部4cの姿勢の変化(↑qの各成分の微小変化に対する変化)が算出される。
本実施形態では、代表接触面ヤコビアン行列算出部66は、移動体1が接触する第i接触対象面(i=1,2,…,N)にそれぞれに関して、以上の如く決定した重み係数r(i)_j(j=1,2,…,m(i))、行列VV(i)_j、及び可動リンクヤコビアン行列J(i)_jを用いて、前記式(27)の右辺の演算を行なうことで、第i代表接触面ヤコビアン行列Jc(i)をそれぞれ算出する。
以上が、本実施形態における代表接触面ヤコビアン行列算出部66の処理である。
ここで、図6に示したような形態で移動体1の移動を行なう場合について例示的に説明すると、移動体1によりドアDを押し開く動作の前後における歩行動作時においては、床面FL(第1接触対象面)に対応する第1代表接触面ヤコビアン行列Jc(1)が、前記式(27)により算出される。
この場合、移動体1の可動リンク3a,3bの一方だけが床面FLに接触している状態では、式(27)におけるm(1)は、m(1)=1であり、可動リンクヤコビアン行列J(1)_1は、床面FLに接触している可動リンク3a又は3bに関する可動リンクヤコビアン行列である。
また、可動リンク3a,3bの両方が床面FLに接触している状態では、式(27)におけるm(1)は、m(1)=2であり、可動リンクヤコビン行列J(1)_1,J(1)_2の一方が可動リンク3aに関する可動リンクヤコビアン行列、他方が可動リンク3bに関する可動リンクヤコビアン行列となる。
また、ドアDを押し開く動作時においては、床面FL(第1接触対象面)に対応する第1代表接触面ヤコビアン行列Jc(1)と、ドア表面Da(第2接触対象面)に対応する第2代表接触面ヤコビアン行列Jc(2)とがそれぞれ前記式(27)により算出される。
この場合、Jc(1)は、歩行動作時に可動リンク3a,3bの両方が床面FLに接触している場合と同様に算出される。また、Jc(2)の算出においては、式(27)におけるm(2)は、m(2)=1であり、可動リンクヤコビアン行列J(2)_1は、ドア表面Daに接触している可動リンク3dに関する可動リンクヤコビアン行列である。
[関節変位修正量決定部68の処理]
コンプライアンス操作量決定処理では、制御装置50は、以上の如く、第i接触対象面(i=1,2,…,N)のそれぞれに関する第i代表接触面のばね性並進・回転変位量↑Xc(i)と、代表接触面ヤコビアン行列Jc(i)とを算出した後、関節変位修正量決定部68の処理を実行する。
この関節変位修正量決定部68は、第1〜第N代表接触面のばね性並進・回転変位量↑Xc(1)〜↑Xc(N)の全てに対応する各関節の変位量の修正量(基準歩容の目標運動に対応する目標関節変位量からの修正量)である関節変位修正量を決定する機能部である。
この関節変位修正量決定部68の処理では、まず、第1〜第N代表接触面ヤコビアン行列Jc(1)〜Jc(N)を並べて構成される総合ヤコビアン行列Jc(≡[Jc(1),Jc(2),……,Jc(N)]T)の擬似逆行列Jc-1が算出される。ここで、総合ヤコビアン行列Jcは、一般には正方行列ではないので、Jcの逆行列は存在しない。このため、関節変位修正量決定部68は、総合ヤコビアン行列Jcの擬似逆行列Jc-1を算出する。
そして、関節変位修正量決定部68は、前記式(30)で示す如く、この擬似逆行列Jc-1を、第1〜第N代表接触面のばね性並進・回転変位量↑Xc(1)〜↑Xc(N)を並べたベクトル(縦ベクトル)である総合ばね性並進・回転変位量↑Xc(=[↑Xc(1),↑Xc(2),……,↑Xc(N)]T)に乗じることによって、前記一般化変数ベクトル↑qの各成分の要求修正量(要求摂動量)を構成要素とする一般化変数要求修正量ベクトル↑Δq_dmdを算出する。そして、この一般化変数要求修正量ベクトル↑Δq_dmdの成分のうち、各関節の変位量の要求修正量を示す成分が、関節変位修正量として決定される。
この場合、関節変位修正量決定部68は、前記擬似逆行列Jc-1を前記式(31)により算出する。
すなわち、本実施形態では、擬似逆行列Jc-1は、重み付きの擬似逆行列(重み付きのSR−Inverse)として算出される。
具体的には、擬似逆行列Jc-1を算出する処理は、前記調整パラメータkの値の決定処理を含めて、図7のフローチャートに示す如く実行される。
まずSTEP1において、総合ヤコビアン行列Jcの転置行列JcTと、重み係数行列Wの逆行列W-1とが算出される。なお、重み係数行列Wは、本実施形態ではその各対角成分(重み係数)の値があらかじめ定められた行列である。ただし、移動体1の動作状態に応じて適宜、重み係数行列Wの各対角成分の値を変化させるようにしてもよい。
次いで、STEP2において、調整パラメタータkの候補値の初期値として、kの値の標準値であるゼロが設定される。
次いで、STEP3において、調整パラメタータkの現在の候補値を用いて、前記式(32)により行列式DETの値が算出される。
次いで、STEP4において、この行列式DETの大きさ(絶対値)が、あらかじめ定められた所定の下限閾値DET_L(>0)よりも小さいか否か(DETの大きさが過小であるか否か)が判断される。
このSTEP4の判断結果が否定的である場合(DETの大きさが過小でない適切な大きさである場合)には、STEP10の処理が実行される。この処理では、kの現在の候補値が調整パラメタータkの値として確定され、この調整パラメータkの値を用いて、前記式(31)の演算により、擬似逆行列Jc-1が算出される。
一方、STEP4の判断結果が肯定的である場合(DETの大きさが過小である場合)には、STEP5〜8の処理(詳細は後述する)によって調整パラメータkの候補値の増加量Δk(>0)が決定される。そして、STEP9において、調整パラメータkの候補値が、現在値から上記増加量Δkだけ増加させた値に更新される。以降、STEP4の判断結果が否定的となるまで、STEP3〜9の処理が繰り返される。これにより、行列式DETの大きさが所定の下限閾値DET_L以上の適切な大きさとなるような調整パラメータkの値が探索的に決定される。
ここで、上記増加量Δkの決定処理を以下に説明する。行列式DETの大きさが所定の下限閾値DET_L以上の適切な大きさとなるような調整パラメータkの値を探索的に決定する処理では、例えば、調整パラメータkの候補値の増加量Δkをあらかじめ定めた一定値として、調整パラメータkの候補値を更新することが一般的に考えられる。
ただし、その場合、増加量Δkを大きめの値に設定しておくと、k=0として算出した前記行列式DETの大きさが過小となる状況で、制御装置50の各演算処理周期で逐次決定されるkの値が、Δkの整数倍の刻み幅の離散的な値となるために、DET≧DET_Lとなるような最小のkの値に対して必要以上に過大な値となりやすい。このため、制御装置50の各演算処理周期で逐次決定されるkの値に対応する行列式DETの大きさと前記下限閾値DET_Lとの差のばらつきを生じやすい。ひいては、前記式(30)により決定した擬似逆行列Jc-1を用いて前記式(29)により関節変位修正量を決定した場合に、その関節変位修正量の不連続的な変動が生じやすい。その結果、移動体1の運動の滑らかさが損なわれることがある。
一方、増加量Δkを十分に小さい値に設定することで、上記の不都合を解消することができる。ただし、その場合、前記STEP4の判断結果が否定的となる適切な調整パラメータkの値が決定されるまでに要する時間が長くなりやすい。このため、制御装置50の各演算処理周期の時間内で適切な調整パラメータkの値を決定できない場合が生じる恐れがある。
そこで、本実施形態では、STEP5〜8の処理において、調整パラメータkの候補値の増加量Δkを、STEP3で算出した行列式DETの大きさと、前記下限閾値DET_Lとの偏差の大きさに応じて、可変的に設定するようにした。
具体的には、STEP5において、次式(43)により算出される値が、調整パラメータkの増加量Δkの暫定値Δkpとして設定される。
Δkp=G・(DET_L−|DET|)1/n ……(43)
すなわち、前記下限閾値DET_Lから行列式DETの絶対値を差し引いてなる偏差(=DET_L−|DET|)のn乗根に、所定値のゲインG(>0)を乗じてなる値(偏差(=DET_L−|DET|)のn乗根に比例する値)が増加量Δkの暫定値Δkpとして設定される。なお、nは行列(Jc・W-1・Jc-1)の次数である。また、ゲインGの値は、あらかじめ定めれられた定数値である。
このように増加量Δkの暫定値Δkpを決定するのは、次の理由による。行列式det(Jc・W-1・JcT)の値(k=0の場合のDETの値)と、行列式DET(=det(Jc・W-1・JcT+k・I))の値との差分は、kのn次関数(kn+a・kn-1+……という形の関数)となるので、kの値の変化に対する行列式DETの値の変化は、ほぼkn(kのn乗)に比例すると考えられる。そこで、本実施形態では、上記(43)により算出される値を、増加量Δkの暫定値Δkpとして設定する。
そして、STEP6〜8において、増加量Δkが過剰に小さい値になるのを防止するためのリミット処理が暫定値Δkpに対して施され、これにより増加量Δkが確定される。具体的には、STEP6において、増加量Δkの暫定値Δkpと所定の下限値Δkmin(>0)とが比較され、Δkp≧Δkminである場合には、STEP7において、暫定値Δkpがそのまま増加量Δkとして決定される。また、Δkp<Δkminである場合には、STEP8において、Δkminが増加量Δkとして決定される。
これにより、増加量Δkは、Δkminを下限値として、行列式DETの大きさと、前記下限閾値DET_Lとの偏差の大きさに応じて前記式(43)により算出される値に決定されることとなる。
関節変位修正量決定部68は、以上説明した如く算出した擬似逆行列Jc-1を用いて、前記式(30)の右辺の演算を行なうことで、一般化変数要求修正量ベクトル↑Δq_dmdを算出する。そして、関節変位修正量決定部68は、この一般化変数要求修正量ベクトル↑Δq_dmdの成分のうち、各関節の変位量の要求修正量を示す成分を、関節変位修正量として決定する。このようにして決定される関節変位修正量が、第1〜第N接触対象面のそれぞれについての第i実全接触力(i=1,2,…,N)を第i目標全接触力↑FMt(i)_cmd1に近づけるための各関節の変位量の要求修正量としてのコンプライアンス操作量である。
[関節変位制御部69の処理]
以上説明したコンプラインス操作量決定処理(姿勢安定化補償力決定部62、目標全接触力決定部63、全接触力要求修正量決定部64、代表接触面並進・回転変位量算出部65、代表接触面ヤコビアン行列算出部66及び関節変位修正量決定部68の処理)とを実行した後、次に、制御装置50は、関節変位制御部69の処理を実行する。
この関節変位制御部69は、目標関節変位量決定部67で決定した各関節の目標関節変位量(基準歩容の目標運動に対応する目標関節変位量)に、目標関節変位量修正部68で決定した関節変位修正量を加え合わせることにより、各関節の最終的な関節変位指令としての修正後目標関節変位量を決定する。
そして、関節変位制御部69は、上記の如く決定した修正後目標関節変位量に各関節の実変位量を一致させるように、電動モータ41(関節アクチュエータ)を図示しないサーボアンプ等のモータ駆動回路を介して制御する。
[接触対象面推定部70の処理]
制御装置50は、移動体1の各関節の駆動制御と並行して、接触対象面推定部70の処理を実行する。この接触対象面推定部70は、移動体1が接触する実際の各接触対象面(実接触対象面)の位置及び姿勢の推定値である接触対象面推定値を算出する機能部である。
この処理のために接触対象面推定部70には、前記全接触力要求修正量決定部64から、第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmd(i=1,2,…,N)の組成成分である前記式(41)の右辺の積分項(第2項)の値、すなわち、第i目標全接触力↑FMt_cmd1と、第i実全接触力の観測値↑FMt(i)_actとの偏差↑Dfmt(i)(=↑FMt(i)_cmd1−↑FMt(i)_act)にローパス特性のフィルタリング処理を施してなる値↑Dfmt(i)_filtに、所定値のゲインKestm(スカラー又は対角行列)を乗じてなる値を積分したもの(=∫(Kestm・↑Dfmt(i)_filt))が入力される。以降、この積分項の値を次式(44)で示す如く、ΔFMt(i)_intと表記する。
↑ΔFMt(i)_int≡∫(Kestm・↑Dfmt(i)_filt) ……(44)
ここで、前記した移動体1の各関節の駆動制御によって、各関節の変位量は、第i実全接触力の観測値↑FMt(i)_act(i=1,2,…,N)をそれぞれ第i目標全接触力↑FMt(i)_cmd1に追従させるように(上記偏差↑Dfmt(i)をゼロに近づけるように)制御されるので、上記積分項の値↑ΔFMt(i)_intは、基準歩容の作成のために使用された想定第i接触対象面の位置及び姿勢の、第i実接触対象面に対する定常的な誤差に起因して発生するものとなる。
従って、この↑ΔFMt(i)_intに対応する第i代表接触面のばね性並進・回転変位量が基準歩容の目標運動の作成のために使用された想定第i接触対象面の位置及び姿勢の、実際の第i接触対象面(第i実接触対象面)に対する定常的な誤差分に相当するものと考えられる。
そこで、接触対象面推定部70は、第i接触対象面に関して与えられた積分項の値↑ΔFMt(i)_intを、前記式(28−1)により、ばね性並進・回転変位量に変換したものを、想定第i接触対象面の位置及び姿勢の誤差分↑Xc(i)_intとして得る。この場合、より詳しくは、積分項の値↑ΔFMt(i)_intのうちの並進力成分↑ΔFt(i)_intに、第i代表接触面の並進ばね定数行列Kc_org(i)の逆行列Kc_org(i)-1を乗じたもの(=Kc_org(i)-1・↑ΔFt(i)_int)が想定第i接触対象面の位置の誤差分↑Xc_org(i)_intとされる。また、積分項の値↑ΔFMt(i)_intのうちのモーメント成分↑ΔMt(i)_intに、第i代表接触面の回転ばね定数行列Kc_rot(i)の逆行列Kc_rot(i)-1を乗じたもの(=Kc_rot(i)-1・↑ΔMt(i)_int)が想定第i接触対象面の姿勢の誤差分↑Xc_rot(i)_intとされる。
そして、接触対象面推定部70は、上記の如く算出した誤差分↑Xc(i)_intに応じて想定第i接触対象面の位置及び姿勢を補正することにより、第i実接触対象面の位置及び姿勢の推定値としての第i接触対象面推定値(i=1,2,…,N)をそれぞれ決定する。
このように接触対象面推定部70により決定された第i接触対象面推定値(i=1,2,…,N)は、本実施形態では、それぞれ前記基準歩容生成処理部61に与えられる。そして、基準歩容生成処理部61では、第i接触対象面推定値に応じて、基準歩容を作成するために使用する想定第i接触対象面を定期的に(例えば、移動体1の歩行動作時の1歩毎、又は複数歩毎に)更新する。
なお、基準歩容の作成に使用する想定第i接触対象面は、第i接触対象面推定値だけに応じて決定する必要はない。例えば、移動体1に搭載した視覚センサや、外部から与えられる各接触対象面の情報に基づいて、第i実接触対象面の位置及び姿勢を推定できるような場合には、その推定された第i接触対象面の位置及び姿勢の信頼性の評価や補完的な修正のために、上記第i接触対象面推定値を使用するようにしてもよい。
以上が、本実施形態における制御装置50の処理の詳細である。
ここで、本実施形態と本発明との対応関係について補足しておく。本実施形態では、全接触力要求修正量決定部64によって、本発明における全接触力要求修正量決定手段が実現される。この場合において、本実施形態では、目標全接触力決定部63で決定する第i目標全接触力↑FMt(i)_cmd1が、本発明における第i接触対象面に対応する目標全接触力に相当する。
また、代表接触面並進・回転変位量算出部65、代表接触面ヤコビアン行列算出部66、関節変位修正量決定部68、関節変位制御部69によって、それぞれ、本発明における代表接触面位置姿勢変位量算出手段、代表接触面ヤコビアン行列算出手段、関節変位修正量決定手段、関節変位制御手段が実現される。
また、関節変位修正量決定部68において実行される処理のうち、図5のSTEP2〜9の処理によって、本発明における擬似逆行列演算用パラメータ決定手段が実現される。
また、接触対象面推定部70によって、本発明(前記第5発明)における接触対象面推定手段が実現される。この場合、該接触対象面推定部70が、各接触対象面について、前記積分項の値↑ΔFMt(i)_intから、前記式(28−1)により算出する誤差分↑Xc(i)_intが、本発明における代表接触面定常変位量に相当する。なお、本実施形態では、第1〜第N接触対象面のそれぞれが、本発明における第h接触対象面に相当する。
以上説明した実施形態によれば、制御装置50は、各制御処理周期において、第i目標全接触力↑FMt(i)_cmd1(i=1,2,…,N)のそれぞれに、第i実全接触力を追従させるための操作量(制御入力)たる第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdを、第i代表接触面のばね性並進・回転変位量↑Xc(i)に変換する。
さらに、制御装置50は、この↑Xc(i)(i=1,2,…,N)を並べたベクトル(縦ベクトル)としての総合ばね性並進・回転変位量↑Xc(=[↑Xc(1),↑Xc(2),……,↑Xc(N)]T)に、第i代表接触面ヤコビアン行列Jc(i)を並べた総合ヤコビン行列Jcの擬似逆行列Jc-1を乗じることによって、↑Xc(i)(i=1,2,…,N)の全てを実現すための(ひいては各接触対象面の第i実全接触力をそれぞれ第i目標全床反力↑FMt(i)_cmd1に追従させるための)コンプライアンス操作量である移動体1の各関節の関節変位修正量を決定する。そして、制御装置50は、基準歩容の目標運動に対応する各関節の目標関節変位量を、関節変位修正量により修正してなる修正後目標関節変位量に応じて各関節の変位量を電動モータ8(関節アクチュエータ)を介して制御する。
これにより、本実施形態によれば、各接触対象面に接触する個々の可動リンク3の先端部(要素リンク)4cの位置や姿勢の修正と、各接触対象面の実全接触力の変化との関係やそれらの相互の関係を考慮して各可動リンク3の先端部の位置や姿勢の修正量を決定するような処理を実行することなく、第i実全床反力をそれぞれ第i目標全接触力↑FMt(i)_cmd1に追従させるための各関節の関節変位修正量を一括的に決定できる。そのため、コンプライアンス制御用の関節変位修正量を決定する処理を効率よく短時間で行なうことができる。
この場合、第i代表接触面ヤコビアン行列Jc(i)(i=1,2,…,N)を算出するための前記式(27)における第i接触可動リンクグループの各可動リンク3(第j可動リンク3)の重み係数r(i)_jは、接触面垂直抗力成分Fn(i)_jが相対的に大きい可動リンク3ほど、より大きい値(“1”に近い値)に設定されることとなる。
このため、第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdに対する第i可動リンクグループの各可動リンク3の負担分は、結果的に、接触面垂直抗力成分Fn(i)_jが相対的に大きい可動リンク3ほど、大きくなる。換言すれば、第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdが、できるだけ、接触面垂直抗力成分Fn(i)_jが相対的に大きい可動リンク3の先端部4cの位置や姿勢の修正によって実現することができるように第i代表接触面ヤコビアン行列Jc(i)が決定される。
従って、接触面垂直抗力成分Fn(i)_jが相対的に小さい可動リンク3の先端部4cの位置や姿勢を不必要に修正したりすることなく、第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdを確実に実現し得るような関節変位修正量、すなわち、第i実全床反力(i=1,2,…,N)をそれぞれ第i目標全接触力↑FMt(i)_cmd1に追従させる上で適切な関節変位修正量を決定できる。
また、第i接触可動リンクグループ(i=1,2,…,N)の各可動リンク3の重み係数r(i)_jは連続的に変化するので、第i代表接触面ヤコビアン行列Jc(i)が、不連続的な変化を生じることがない。このため、移動体1の各関節の変位量を滑らかに連続的に変化させることができる。ひいては、移動体1の運動を滑らかに行なうことができる。
また、前記実施形態では、関節変位修正量決定部68で、前記行列式DETの値が過小になるのを防止するための調整パラメータkの値を探索する処理(図7のSTEP2〜9の処理)において、調整パラメータkの増加量Δkを、下限閾値DET_Lから行列式DETの絶対値を差し引いてなる偏差(=DET_L−|DET|)のn乗根に比例する値に設定する。
これにより、制御装置50の各制御処理周期において、|DET|≧DET_Lとなるようにするための適切な調整パラメータkの値を、該kの値の不連続な変動が生じないようにしつつ、効率よく短時間で決定できる。このため、総合ばね性並進・回転変位量↑Xcから関節変位修正量を決定するための擬似逆行列Jc-1を滑らかに変化させていくようにすることができる。ひいては、移動体1の各関節の変位量を滑らかに変化させるように、関節変位修正量を決定できる。
また、上記の如く第i実全接触力をそれぞれ第i目標全接触力↑FMt(i)_cmd1に追従させるように、移動体1の各関節の駆動制御を行いつつ、第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdの構成要素である前記積分項の値↑ΔFMt(i)_intに対応する第i代表接触面の並進・回転変位量↑Xc(i)_intを前記式(28−1)により算出することによって、想定第i接触対象面の位置及び姿勢の実際の第i接触対象面に対する定常的な誤差分としての↑Xc(i)_intを高い信頼性で求めることができる。このため、実際の各接触対象面の位置及び姿勢の推定を精度よく行なうことができる。
次に、以上説明した実施形態の変形態様をいくつか説明する。
前記実施形態では、移動体1として、4つの可動リンク3を備えた移動体を例示したが、5つ以上、又は3つの可動リンクを備えた移動体であってもよい。
また、前記実施形態の移動体1の各可動リンク3の先端部4cは、これに接触対象面から作用する接触力モーメントを変化させる(接触力中心点を該先端部の接触面で変化させる)ことができる要素リンク4cにより構成されたものであるが、各可動リンクの先端部は、接触力モーメントを変化させることができない構造のものであってもよい。
例えば、図8に示す如く、任意の第i接触対象面に接触する第i接触可動リンクグループのm(i)個の可動リンク103(i)_j(j=1,2,…,m(i))の先端部が球体状のもの(より一般的には、第i接触対象面との接触面が実質的に点状になるもの(該接触面が微小面積となるものを含む))であってもよい。
この場合には、第i接触可動リンクグループの各可動リンク103(i)_jの第i接触対象面との点状の接触面(接触点)が接触力中心点に合致することとなるので、該可動リンク103(i)_jに接触力モーメントを作用させること(ひいては変化させること)が実質的にできない。そして、この場合には、該可動リンク103(i)_jに付加し得る摂動接触力モーメント↑M(i)_jは常にゼロであるから、該可動リンク103(i)_jの接触面のばね性回転変位量↑Xrot(i)_j(=Krot(i)_j・↑M(i)_j)も常にゼロとなる。ひいては、このばね性回転変位量↑Xrot(i)_jと、一般化変数ベクトル↑qの単位時間当たりの変化量↑Δqとの間の関係を表すヤコビアン行列Jrot(i)_jも常にゼロ行列となる。
従って、この場合の可動リンクヤコビアン行列J(i)_jは、前記式(26c)によって、J(i)_j=[Jorg(i)_j,0]Tとなる。このため、前記式(27)により第i代表接触面ヤコビアン行列Jc(i)を算出する処理は、次式(27a)によりJcを算出する処理と等価である。
この式(27a)におけるr(i)_j、Rk(i)、VV(i)_jは、それぞれ、前記式(22)に示したものと同じある。また、Jorg(i)_jは、前記式(26a)に示したヤコビアン行列、すなわち、第j可動リンク接触面のばね性並進変位量↑Xorg_iと、一般化変数ベクトル↑qの単位時間当たりの変化量↑Δqとの間の関係を表すヤコビアン行列である。
そして、この式(27a)の演算を行なうためのr(i)_j、Rk(i)、VV(i)_jの値は、前記実施形態と同様の仕方で決定できる。また、J(i)_j=[Jorg(i)_j,0]Tであるから、前記実施形態で可動リンクヤコビアン行列J(i)_jを算出する場合と同様の仕方でJorg(i)_jを算出することができる。
また、移動体は、例えば図9に示す如く、任意の第i接触対象面に接触する第i接触可動リンクグループのm(i)個の可動リンク103(i)_j(j=1,2,…,m(i))の先端部に車輪を備える構造の移動体であってもよい。
また、本実施形態では、移動体1の姿勢の安定性を高めるために、基準歩容の目標総外力↑FMt_cmd0を修正した上で、第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1を決定するようにしたが、基準歩容の目標総外力↑FMt_cmd0をそのまま用いて第1〜第N目標全接触力↑FMt(1)_cmd1〜↑FMt(N)_cmd1を決定するようにしてもよい。
また、前記実施形態では、第i目標接触力↑FMt(i)_cmd1と、第i実全接触力↑FMt(i)_actの観測値との偏差↑Dfmt(i)(=↑FMt(i)_cmd1−↑FMt(i)_act)に応じた比例項と積分項とを合成する(加え合わせる)ことによって、第i摂動全床反力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdを決定するようにしたが、積分項(=↑ΔFMt(i)_int)をそのまま、第i摂動全接触力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdとして決定するようにしてもよい。
このようにした場合には、前記代表接触面並進・回転変位量算出部65により↑ΔFMt(i)_dmdから算出される第i代表接触面のばね性並進・回転変位量↑ΔXc(i)が、想定第i接触対象面の位置及び姿勢の実際の第i接触対象面に対する定常的な誤差分↑Xc(i)_intに相当するものとなる。
従って、この場合には、接触対象面推定部70においては、前記式(28−1)により↑Xc(i)_intを改めて算出する必要はなく、前記代表接触面並進・回転変位量算出部65により算出された第i代表接触面のばね性並進・回転変位量↑ΔXc(i)に応じて、想定第i接触対象面の位置及び姿勢を修正することで、第i接触対象面推定値を決定するようにすればよい。このようにすることで、前記第2発明及び第4発明発明の一実施形態が構築されることとなる。
また、前記実施形態では、第1〜第N接触対象面の全てについて、実際の位置及び姿勢を推定するようにしたが、特定の接触対象面(第h接触対象面)についてのみ、その実際の位置及び姿勢を推定するようにしてもよい。例えば図6に示した移動体1の動作を行なう場合に、床面FL(第1接触対象面)についてのみ、その実際の位置及び姿勢を接触対象面推定部70で推定するようにしてもよい。
また、前記実施形態では、接触対象面推定部70を備えるようにしたが、これを省略してもよい。その場合においては、第i目標接触力↑FMt(i)_cmd1と、第i実全接触力↑FMt(i)_actの観測値との偏差↑Dfmt(i)(=↑FMt(i)_cmd1−↑FMt(i)_act)に応じた比例項を、第i摂動全床反力↑ΔFMt(i)の要求値↑ΔFMt(i)_dmdとして決定するようにしてもよい。
また、前記実施形態では、2つの接触対象面に移動体1が接触する場合と例にとって説明したが、3つ以上の接触対象面に移動体1が接触するような場合でも、本発明を適用できることはもちろんである。さらに、移動体1を接触させる複数の接触対象面は、そのうちの2つの接触対象面が、互いにほぼ平行なものとなるような接触対象面であってもよい。