本発明の一実施形態を以下に説明する。まず、図1〜図6を参照して、本実施形態における倒立振子型車両の構造を説明する。
図1及び図2に示すように、本実施形態における倒立振子型車両1は、乗員(運転者)の搭乗部3と、床面に接地しながら該床面上を全方向(前後方向及び左右方向を含む2次元的な全方向)に移動可能な移動動作部5と、この移動動作部5を駆動する動力を該移動動作部5に付与するアクチュエータ装置7と、これらの搭乗部3、移動動作部5及びアクチュエータ装置7が組付けられた基体9とを備える。
ここで、本実施形態の説明では、「前後方向」、「左右方向」は、それぞれ、搭乗部3に標準的な姿勢で搭乗した乗員の上体の前後方向、左右方向に一致もしくはほぼ一致する方向を意味する。なお、「標準的な姿勢」は、搭乗部3に関して設計的に想定されている姿勢であり、乗員の上体の体幹軸を概ね上下方向に向け、且つ、上体を捻ったりしていない姿勢である。
この場合、図1においては、「前後方向」、「左右方向」はそれぞれ、紙面に垂直な方向、紙面の左右方向であり、図2においては、「前後方向」、「左右方向」はそれぞれ、紙面の左右方向、紙面に垂直な方向である。また、本実施形態の説明では、参照符号に付する添え字「R」,「L」は、それぞれ車両1の右側、左側に対応するものという意味で使用する。
基体9は、移動動作部5及びアクチュエータ装置7とが組付けられた下部フレーム11と、この下部フレーム11の上端から上方に延設された支柱フレーム13とを備える。
下部フレーム11は、左右方向に間隔を存して二股状に対向するように配置された一対のカバー部材21R,21Lを備える。これらのカバー部材21R,21Lの上端部(二股の分岐部分)は、前後方向の軸心を有するヒンジ軸23を介して連結され、カバー部材21R,21Lの一方が他方に対して相対的にヒンジ軸23の周りに揺動可能となっている。この場合、カバー部材21R,21Lは、図示を省略するバネによって、カバー部材21R,21Lの下端部側(二股の先端側)が狭まる方向に付勢されている。
この下部フレーム11には、乗員の搭乗部3としての足載せ部が装着されている。この足載せ部3は、乗員の右足、左足をそれぞれ載せる一対のステップ3R,3Lから構成される。右側のステップ3Rは、カバー部材21Rの外側面部から右向きに張り出すように突設され、左側のステップ3Lは、カバー部材21Lの外側面部から左向きに張り出すように突設されている。本実施形態の倒立振子型車両1(以降、単に車両1という)では、乗員は、その両足をステップ3R,3Lに載せて、起立した姿勢で車両1に搭乗するようになっている。この搭乗状態では、乗員の両足は、その間に車輪体5が介在するようにして、乗員の左右方向に間隔を存して並ぶ。
また、支柱フレーム13の上部には、足載せ部3上に起立した乗員がその手で把持する把持部15が固定されている。この把持部15は、支柱フレーム13の上部から右向きに張り出すように突設された把持部15Rと、左向きに張り出すように突設された把持部15Lとから構成される。
移動動作部5及びアクチュエータ装置7は、下部フレーム11のカバー部材21R,21Lの間に配置されている。これらの移動動作部5及びアクチュエータ装置7の構造を図3〜図6を参照して説明する。
なお、本実施形態で例示する移動動作部5及びアクチュエータ装置7は、例えば前記特許文献2の図1に開示されているものと同じ構造のものである。従って、本実施形態の説明においては、移動動作部5及びアクチュエータ装置7の構成に関して、前記特許文献2に記載された事項については、簡略的な説明に留める。
本実施形態では、移動動作部5は、ゴム状弾性材により円環状に形成された車輪体であり、ほぼ円形の横断面形状を有する。この移動動作部5(以降、車輪体5という)は、その弾性変形によって、図5及び図6の矢印Y1で示す如く、円形の横断面の中心C1(より詳しくは、円形の横断面中心C1を通って、車輪体5の軸心と同心となる円周線)の周りに回転可能となっている。
この車輪体5は、その軸心C2(車輪体5全体の直径方向に直交する軸心C2)を左右方向に向けた状態で、カバー部材21R,21Lの間に配置され、該車輪体5の外周面の下端部にて床面に接地する。
そして、車輪体5は、アクチュエータ装置7による駆動(詳細は後述する)によって、図5の矢印Y2で示す如く車輪体5の軸心C2の周りに回転する動作(床面上を輪転する動作)と、車輪体5の横断面中心C1の周りに回転する動作とを行なうことが可能である。その結果、車輪体5は、それらの回転動作の複合動作によって、床面上を全方向に移動することが可能となっている。
アクチュエータ装置7は、車輪体5と右側のカバー部材21Rとの間に介装される回転部材27R及びフリーローラ29Rと、車輪体5と左側のカバー部材21Lとの間に介装される回転部材27L及びフリーローラ29Lと、回転部材27R及びフリーローラ29Rの上方に配置されたアクチュエータとしての電動モータ31Rと、回転部材27L及びフリーローラ29Lの上方に配置されたアクチュエータとしての電動モータ31Lとを備える。
電動モータ31R,31Lは、それぞれのハウジングがカバー部材21R,21Lに各々取付けられている。なお、図示は省略するが、電動モータ31R,31Lの電源(蓄電器)は、支柱フレーム13等、基体9の適所に搭載されている。
回転部材27Rは、左右方向の軸心を有する支軸33Rを介してカバー部材21Rに回転可能に支持されている。同様に、回転部材27Lは、左右方向の軸心を有する支軸33Lを介してカバー部材21Lに回転可能に支持されている。この場合、回転部材27Rの回転軸心(支軸33Rの軸心)と、回転部材27Lの回転軸心(支軸33Lの軸心)とは同軸心である。
回転部材27R,27Lは、それぞれ電動モータ31R,31Lの出力軸に、減速機としての機能を含む動力伝達機構を介して接続されており、電動モータ31R,31Lからそれぞれ伝達される動力(トルク)によって回転駆動される。各動力伝達機構は、例えばプーリ・ベルト式のものである。すなわち、図3に示す如く、回転部材27Rは、プーリ35Rとベルト37Rとを介して電動モータ31Rの出力軸に接続されている。同様に、回転部材27Lは、プーリ35Lとベルト37Lとを介して電動モータ31Lの出力軸に接続されている。
なお、上記動力伝達機構は、例えば、スプロケットとリンクチェーンとにより構成されるもの、あるいは、複数のギヤにより構成されるものであってもよい。また、例えば、電動モータ31R,31Lを、それぞれの出力軸が各回転部材27R,27Lと同軸心になるように各回転部材27R,27Lに対向させて配置し、電動モータ31R,31Lのそれぞれの出力軸を回転部材27R,27Lに各々、減速機(遊星歯車装置等)を介して連結するようにしてもよい。
各回転部材27R,27Lは、車輪体5側に向かって縮径する円錐台と同様の形状に形成されており、その外周面がテーパ外周面39R,39Lとなっている。
回転部材27Rのテーパ外周面39Rの周囲には、回転部材27Rと同心の円周上に等間隔で並ぶようにして、複数のフリーローラ29Rが配列されている。そして、これらのフリーローラ29Rは、それぞれ、ブラケット41Rを介してにテーパ外周面39Rに取付けられ、該ブラケット41Rに回転自在に支承されている。
同様に、回転部材27Lのテーパ外周面39Lの周囲には、回転部材27Lと同心の円周上に等間隔で並ぶようにして、複数(フリーローラ29Rと同数)のフリーローラ29Lが配列されている。そして、これらのフリーローラ29Lは、それぞれ、ブラケット41Lを介してにテーパ外周面39Lに取付けられ、該ブラケット41Lに回転自在に支承されている。
前記車輪体5は、回転部材27R側のフリーローラ29Rと、回転部材27L側のフリーローラ29Lとの間に挟まれるようにして、回転部材27R,27Lと同軸心に配置されている。
この場合、図1及び図6に示すように、各フリーローラ29R,29Lは、その軸心C3が車輪体5の軸心C2に対して傾斜すると共に、車輪体5の直径方向(車輪体5をその軸心C2の方向で見たときに、該軸心C2と各フリーローラ29R,29Lとを結ぶ径方向)に対して傾斜する姿勢で配置されている。そして、このような姿勢で、各フリーローラ29R,29Lのそれぞれの外周面が車輪体5の内周面に斜め方向に圧接されている。
より一般的に言えば、右側のフリーローラ29Rは、回転部材27Rが軸心C2の周りに回転駆動されたときに、車輪体5との接触面で、軸心C2周りの方向の摩擦力成分(車輪体5の内周の接線方向の摩擦力成分)と、車輪体5の前記横断面中心C1の周り方向の摩擦力成分(円形の横断面の接線方向の摩擦力成分)とを車輪体5に作用させ得るような姿勢で、車輪体5の内周面に圧接されている。左側のフリーローラ29Lについても同様である。
この場合、前記したように、カバー部材21R,21Lは、図示しないバネによって、カバー部材21R,21Lの下端部側(二股の先端側)が狭まる方向に付勢されている。このため、この付勢力によって、右側のフリーローラ29Rと左側のフリーローラ29Lとの間に車輪体5が挟持されると共に、車輪体5に対する各フリーローラ29R,29Lの圧接状態(より詳しくはフリーローラ29R,29Lと車輪体5との間で摩擦力が作用し得る圧接状態)が維持される。
以上説明した構造を有する車両1においては、電動モータ31R,31Lによりそれぞれ、回転部材27R,27Lを同方向に等速度で回転駆動した場合には、車輪体5が回転部材27R,27Lと同方向に軸心C2の周りに回転することとなる。これにより、車輪体5が床面上を前後方向に輪転して、車両1の全体が前後方向に移動することとなる。なお、この場合は、車輪体5は、その横断面中心C1の周りには回転しない。
また、例えば、回転部材27R,27Lを互いに逆方向に同じ大きさの速度で回転駆動した場合には、車輪体5は、その横断面中心C1の周りに回転することとなる。これにより、車輪体5がその軸心C2の方向(すなわち左右方向)に移動し、ひいては、車両1の全体が左右方向に移動することとなる。なお、この場合は、車輪体5は、その軸心C2の周りには回転しない。
さらに、回転部材27R,27Lを、互いに異なる速度(方向を含めた速度)で、同方向又は逆方向に回転駆動した場合には、車輪体5は、その軸心C2の周りに回転すると同時に、その横断面中心C1の周りに回転することとなる。
この時、これらの回転動作の複合動作(合成動作)によって、前後方向及び左右方向に対して傾斜した方向に車輪体5が移動し、ひいては、車両1の全体が車輪体5と同方向に移動することとなる。この場合の車輪体5の移動方向は、回転部材27R,27Lの回転方向を含めた回転速度(回転方向に応じて極性が定義された回転速度ベクトル)の差に依存して変化するものとなる。
以上のように車輪体5の移動動作が行なわれるので、電動モータ31R,31Lのそれぞれの回転速度(回転方向を含む)を制御し、ひいては回転部材27R,27Lの回転速度を制御することによって、車両1の移動速度及び移動方向を制御できることとなる。
なお、足載せ部3及び基体9は、車輪体5の軸心C2を支点として、左右方向の軸心C2周りに傾動自在となっていると共に、車輪体5の接地面(下端面)を支点として、前後方向の軸周りに該車輪体5と共に傾動自在となっている。
次に、本実施形態の車両1の動作制御のための構成を説明する。なお、以降の説明では、図1及び図2に示すように、前後方向の水平軸をX軸、左右方向の水平軸をY軸、鉛直方向をZ軸とするXYZ座標系を想定し、前後方向、左右方向をそれぞれX軸方向、Y軸方向と言うことがある。
まず、車両1の概略的な動作制御を説明すると、本実施形態では、基本的には、足載せ部3(ステップ3R,3L)上に起立姿勢で搭乗してグリップ15R,15Lを把持した乗員がその上体を傾けた場合(詳しくは、乗員と車両1とを合わせた全体の重心点の位置(水平面に投影した位置)を動かすように上体を傾けた場合)に、該上体を傾けた側に基体9が足載せ部3と共に傾動する。そして、この時、基体9が傾いた側に車両1が移動するように、車輪体5の移動動作が制御される。例えば、乗員が上体を前傾させ、ひいては、基体9を足載せ部3と共に前傾させると、車両1が前方に移動するように、車輪体5の移動動作が制御される。
すなわち、本実施形態では、乗員が上体を動かし、ひいては、足載せ部3と共に基体9を傾動させるという動作が、車両1に対する1つの基本的な操縦操作(車両1の動作要求)とされ、その操縦操作に応じて車輪体5の移動動作がアクチュエータ装置7を介して制御される。
ここで、本実施形態の車両1は、その全体の接地面としての車輪体5の接地面が、車両1とこれに搭乗する乗員との全体を床面に投影した領域に比して面積が小さい単一の局所領域となり、その単一の局所領域だけに床反力が作用する。このため、基体9が傾倒しないようにするためには、乗員及び車両1の全体の重心点が車輪体5の接地面のほぼ真上に位置するように、車輪体5を動かす必要がある。
そこで、本実施形態では、乗員及び車両1の全体の重心点が、車輪体5の中心点(軸心C2上の中心点)のほぼ真上に位置する状態(より正確には当該重心点が車輪体5の接地面のほぼ真上に位置する状態)での基体9の姿勢を目標姿勢とし、基本的には、基体9の実際の姿勢を目標姿勢に収束させるように、車輪体5の移動動作が制御される。
さらに、車両1に乗員が搭乗していない状態では、車両1の単体の重心点が、車輪体5の中心点(軸心C2上の中心点)のほぼ真上に位置する状態(当該重心点が車輪体5の接地面のほぼ真上に位置する状態)での基体9の姿勢を目標姿勢とし、該基体9の実際の姿勢を目標姿勢に収束させ、ひいては、基体9が傾倒することなく車両1が自立するように、車輪体5の移動動作が制御される。
また、車両1に乗員が搭乗している状態と搭乗していない状態とのいずれの状態においても、基体9の実際の姿勢の目標姿勢からずれが大きいほど、車両1の移動速度が速くなると共に、基体9の実際の姿勢の目標姿勢に一致する状態では、車両1の移動が停止するように車輪体5の移動動作が制御される。
また、乗員が車両1に搭乗しようとする時、あるいは、車両1から降車しようとする時には、その搭乗行為あるいは降車行為を乗員が容易に行い得るように車輪体5の移動動作が制御される。
補足すると、「姿勢」は空間的な向きを意味する。本実施形態では、基体9が足載せ部3と共に傾動することで、基体9や足載せ部3の姿勢が変化する。また、本実施形態では、基体9と足載せ部3とは一体的に傾動するので、基体9の姿勢をその目標姿勢に収束させるということは、足載せ部3の姿勢を該足載せ部3に対応する目標姿勢(基体9の姿勢が基体9の目標姿勢に一致する状態での足載せ部3の姿勢)に収束させるということと等価である。
本実施形態では、以上の如き車両1の動作制御を行なうために、図1及び図2に示すように、マイクロコンピュータや電動モータ31R,31Lのドライブ回路ユニットなどを含む電子回路ユニットにより構成された制御ユニット50と、基体9の姿勢(又は足載せ部3の姿勢)に関する状態量として、基体9の所定の部位の鉛直方向(重力方向)に対する傾斜角度θb及びその変化速度(=dθb/dt)を計測するための傾斜センサ52と、足載せ部3のステップ3R,3Lに乗員が足を載せているか否かを検知するための荷重センサ54R,54Lと、電動モータ31R,31Lのそれぞれの出力軸の回転角度及び回転角速度を検出するための角度センサとしてのロータリエンコーダ56R,56Lと、乗員が車両1に搭乗しようとする時、又は車両1から降車しようとする時にその旨を制御ユニット50に認識させるための搭乗/降車用操作子58とがそれぞれ、車両1の適所に搭載されている。
この場合、制御ユニット50及び傾斜センサ52は、例えば、基体9の支柱フレーム13の内部に収容された状態で該支柱フレーム13に取付けられている。また、荷重センサ54R,54Lはそれぞれ、ステップ3R,3Lに内蔵されている。また、ロータリエンコーダ56R,56Lは、それぞれ、電動モータ31R,31Lと一体に設けられている。なお、ロータリエンコーダ56R,56Lは、それぞれ、回転部材27R,27Lに装着してもよい。
上記傾斜センサ52は、より詳しくは、加速度センサとジャイロセンサ等のレートセンサ(角速度センサ)とから構成され、これらのセンサの検出信号を制御ユニット50に出力する。そして、制御ユニット50が、傾斜センサ52の加速度センサ及びレートセンサの出力を基に、所定の計測演算処理(これは公知の演算処理でよい)を実行することによって、傾斜センサ52を搭載した部位(本実施形態では支柱フレーム13)の、鉛直方向に対する傾斜角度θbの計測値とその変化速度(微分値)である傾斜角速度θbdotの計測値とを算出する。
この場合、計測する傾斜角度θb(以降、基体傾斜角度θbということがある)は、より詳しくは、それぞれ、Y軸周り方向(ピッチ方向)の成分θb_xと、X軸周り方向(ロール方向)の成分θb_yとから成る。同様に、計測する傾斜角速度θbdot(以降、基体傾斜角速度θbdotということがある)も、Y軸周り方向(ピッチ方向)の成分θbdot_x(=dθb_x/dt)と、X軸周り方向(ロール方向)の成分θbdot_y(=dθb_y/dt)とから成る。
補足すると、本実施形態では、基体9の支柱フレーム13と一体に足載せ部3のステップ3R,3Lが傾動するので、基体傾斜角度θbは、足載せ部3の傾斜角度としての意味も持つ。
なお、本実施形態の説明では、上記基体傾斜角度θbなど、X軸及びY軸の各方向(又は各軸周り方向)の成分を有する運動状態量等の変数、あるいは、該運動状態量に関連する係数等の変数に関しては、その各成分を区別して表記する場合に、該変数の参照符号に、添え字“_x”又は“_y”を付加する。
この場合において、並進速度等の並進運動に係わる変数については、そのX軸方向の成分に添え字“_x”を付加し、Y軸方向の成分に添え字“_y”を付加する。
一方、角度、回転速度(角速度)、角加速度など、回転運動に係わる変数については、並進運動に係わる変数と添え字を揃えるために、便宜上、Y軸周り方向の成分に添え字“_x”を付加し、X軸周り方向の成分に添え字“_y”を付加する。
さらに、X軸方向の成分(又はY軸周り方向の成分)と、Y軸方向の成分(又はX軸周り方向の成分)との組として変数を表記する場合には、該変数の参照符号に添え字“_xy”を付加する。例えば、上記基体傾斜角度θbを、Y軸周り方向の成分θb_xとX軸周り方向の成分θb_yの組として表現する場合には、「基体傾斜角度θb_xy」というように表記する。
前記荷重センサ54R,54Lのうちの荷重センサ54Rは、乗員がその右足をステップ3Rに載せている場合に、その右足からステップ3Rに付与される荷重を受けるようにステップ3Rに内蔵され、その荷重に応じた検出信号を制御ユニット50に出力する。同様に、荷重センサ54Lは、乗員がその左足をステップ3Lに載せている場合に、その左足からステップ3Lに付与される荷重を受けるようにステップ3Lに内蔵され、その荷重に応じた検出信号を制御ユニット50に出力する。そして、制御ユニット50が、これらの荷重センサ54R,54Lの出力により示される荷重の計測値に基づいて、ステップ3R,3Lに乗員が足を載せているか否かを判断する。この場合、乗員がステップ3R,3Lの両方に乗員が足を載せている状態が、乗員が車両1に搭乗している状態を意味する。
なお、荷重センサ54R,54Lの代わりに、例えば、乗員が各ステップ3R,3Lに足を載せた状態でONとなるようなスイッチ式のセンサを用いてもよい。
ロータリエンコーダ56Rは、電動モータ31Rの出力軸が所定角度回転する毎にパルス信号を発生し、このパルス信号を制御ユニット50に出力する。そして、制御ユニット50が、そのパルス信号を基に、電動モータ53Rの出力軸の回転角度を計測し、さらにその回転角度の計測値の時間的変化率(微分値)を電動モータ53Rの回転角速度として計測する。電動モータ31L側のロータリエンコーダ56Lについても同様である。
前記搭乗/降車用操作子58は、本実施形態では、グリップ15R,15Lの一方、例えば、グリップ15Rに装着されている。この搭乗/降車量操作子58は、例えば、その一端部58aと他端部58bとを選択的に押し操作可能なスイッチであり、各端部58a,58bを押し操作した時に、それぞれの押し操作に応じた信号(単発的なトリガ信号)を制御ユニット50に出力する。この場合、本実施形態では、端部58a,58bのうちの一方、例えば端部58aは、乗員が車両1に搭乗しようとする時(詳しくは搭乗行為を開始しようとする時)に押し操作を行なうべき部分、他方の端部58bは、乗員が車両1から降車しようとする時(詳しくは降車行為を開始しようとする時)に押し操作を行なうべき部分となっている。以降、搭乗/降車用操作子58の端部58a,58bを、それぞれ搭乗用操作部58a、降車用操作部58bという。
なお、搭乗用操作部58a、降車用操作部58bの両方の押し操作が行なわれていない状態では、搭乗/降車用操作子58は、非操作状態(トリガ信号を出力しない状態)に復元する。
制御ユニット50は、上記の各計測値と、搭乗/降車用操作子58から適宜入力されるトリガ信号とを用いて所定の演算処理を実行することによって、電動モータ31R,31Lのそれぞれの回転角速度の目標値である速度指令を決定し、その速度指令に従って、電動モータ31R,31Lのそれぞれの回転角速度をフィードバック制御する。
なお、電動モータ31Rの出力軸の回転角速度と、回転部材27Rの回転角速度との間の関係は、該出力軸と回転部材27Rとの間の一定値の減速比に応じた比例関係になるので、本実施形態の説明では、便宜上、電動モータ31Rの回転角速度は、回転部材27Rの回転角速度を意味するものとする。同様に、電動モータ31Lの回転角速度は、回転部材27Lの回転角速度を意味するものとする。
以下に、制御ユニット50の制御処理をさらに詳細に説明する。
制御ユニット50は、所定の制御処理周期で図7のフローチャートに示す処理(メインルーチン処理)を実行する。
まず、STEP1において、制御ユニット50は、傾斜センサ52の出力を取得する。
次いで、STEP2に進んで、制御ユニット50は、取得した傾斜センサ52の出力を基に、基体傾斜角度θbの計測値θb_xy_sと、基体傾斜角速度θbdotの計測値θbdot_xy_sとを算出する。
なお、以降の説明では、上記計測値θb_xy_sなど、変数(状態量)の実際の値の観測値(計測値又は推定値)を参照符号により表記する場合に、該変数の参照符号に、添え字“_s”を付加する。
次いで、制御ユニット50は、STEP3において、荷重センサ54R,54Lの出力と、搭乗/降車用操作子58の出力とを取得した後、STEP4の処理を実行する。
ここで、本実施形態では、車両1の動作モードとして、乗員が車両1に搭乗している状態(搭乗中の状態)での動作モードである搭乗中モードと、乗員が車両1に搭乗していない状態である自立モード(非搭乗中モード)と、乗員が車両1に搭乗しようとしている時(搭乗行為中)の動作モードである搭乗行為用モードと、乗員が車両1から降車しようとしている時(降車行為中)の動作モードである降車行為用モードとがある。そして、制御ユニット50は、それぞれ各動作モードにおいて、それぞれに適した制御特性で車輪体5の移動動作を制御する。
上記STEP4の処理は、荷重センサ54R,54Lの出力や、搭乗/降車用操作子58の出力に基づいて、車両1の動作モードを決定し、その決定した動作モードでの制御特性を規定する制御特性パラメータを決定する処理である。その処理の詳細は後述するが、本実施形態では、このSTEP4の処理で決定する制御特性パラメータには、基体9の傾斜角度の目標値である基体傾斜角度目標値θb_xy_objが含まれると共に、後述する第2ゲイン調整パラメータKr2が含まれる。
この場合、基体傾斜角度目標値θb_xy_objは各動作モードにおいて、基本的には次のように決定される。すなわち、搭乗中モードでは、車両1に搭乗した乗員との全体の重心点(以降、車両・乗員全体重心点という)が車輪体5の接地面のほぼ真上に位置する状態となる基体9の姿勢において、傾斜センサ52の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するようにあらかじめ設定された値(以降、搭乗中モード用の設定値θb_xy_搭乗中ということがある)が、θb_xy_objとして決定される。
また、自立モードでは、車両1単体の重心点(以降、車両単体重心点という)が車輪体5の接地面のほぼ真上に位置する状態となる基体9の姿勢において、傾斜センサ52の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するようにあらかじめ設定された値(以降、自立モード用の設定値θb_xy_自立ということがある)が、θb_xy_objとして決定される。
なお、本実施形態の車両1は左右対称構造の車両であるので、θb_xy_搭乗中のX軸周り成分θb_y_搭乗中と、θb_xy_自立のX軸周り成分θb_y_自立とは同じ値である。
また、搭乗行為用モードと降車行為用モードとでは、基体9の実際の傾斜角度をθb_xy_objに一致させた状態での基体9の姿勢が、X軸周りで右側又は左側に傾いた姿勢となると共に、θb_xy_objが急激に変化することを防止するようにθb_xy_objが決定される。
補足すると、いずれの動作モードにおいても、基体傾斜角速度θbdotのY軸周り方向の成分θbdot_xの目標値とX軸周り方向の成分θbdot_yの目標値とは、いずれも“0”である。このため、基体傾斜角速度θbdot_xyの目標値を設定する処理は不要である。
また、詳細は後述するが、第2ゲイン調整パラメータKr2は、“0”から“1”までの範囲内の値に設定される。この場合、搭乗中モードと自立モードとでは、Kr2の値は、“0”とされ、搭乗行為用モードと降車行為モードとでは、Kr2の値は、基本的には“0”よりも大きい値に可変的に決定される。
制御ユニット50は、STEP4で制御特性パラメータを決定した後、次にSTEP5において、車両制御演算処理を実行することによって、電動モータ31R,31Lのそれぞれの速度指令を決定する。この車両制御演算処理の詳細は後述する。
次いで、STEP6に進んで、制御ユニット50は、STEP5で決定した速度指令に応じて電動モータ31R,31Lの動作制御処理を実行する。この動作制御処理では、制御ユニット50は、STEP5で決定した電動モータ31Rの速度指令と、ロータリエンコーダ56Rの出力に基づき計測した電動モータ31Rの回転速度の計測値との偏差に応じて、該偏差を“0”に収束させるように電動モータ31Rの出力トルクの目標値(目標トルク)を決定する。そして、制御ユニット50は、その目標トルクの出力トルクを電動モータ31Rに出力させるように該電動モータ31Rの通電電流を制御する。左側の電動モータ31Lの動作制御についても同様である。
以上が、制御ユニット50が実行する全体的な制御処理である。
次に、説明を後回しにした前記STEP4の処理(制御特性パラメータの決定処理)とSTEP5の車両制御演算処理とを以下に詳説する。
まず、説明の便宜上、STEP5の車両制御演算処理の詳細を説明する。
なお、以降の説明においては、車輪体5の接地面に重力による鉛直方向下向きの並進力を作用させる系の全体の重心点を車両系重心点という。この場合、該車両系重心点は、車両1の動作モードが搭乗中モードである場合には、前記車両・乗員全体重心点に一致し、自立モードである場合には、前記車両単体重心点に一致する。さらに、車両1の動作モードが搭乗行為用モード又は降車行為用モードである場合には、便宜上、車両系重心点の位置は、あらかじめ定められた所定位置に存するものとする。該所定位置は、車両・乗員全体重心点又は車両単体重心点の位置に一致する位置であってもよい。
また、以降の説明では、制御ユニット50が各制御処理周期で決定する値(更新する値)に関し、現在の(最新の)制御処理周期で決定する値を今回値、その1つ前の制御処理周期で決定した値を前回値ということがある。そして、今回値、前回値を特にことわらない値は、今回値を意味する。
また、X軸方向の速度及び加速度に関しては、前方向きを正の向きとし、Y軸方向の速度及び加速度に関しては、左向きを正の向きとする。
本実施形態では、搭乗中モード又は自立モードでの前記車両系重心点の動力学的な挙動(詳しくは、Y軸方向からこれに直交する面(XZ平面)に投影して見た挙動と、X軸方向からこれに直交する面(YZ平面)に投影して見た挙動)が、近似的に、図8に示すような、倒立振子モデルの挙動(倒立振子の動力学的挙動)によって表現されるものとして、STEP5の車両制御演算処理が行なわれる。
なお、図8において、括弧を付していない参照符号は、Y軸方向から見た倒立振子モデルに対応する参照符号であり、括弧付きの参照符号は、X軸方向から見た倒立振子モデルに対応する参照符号である。
この場合、Y軸方向から見た挙動を表現する倒立振子モデルは、車両系重心点に位置する質点60_xと、Y軸方向に平行な回転軸62a_xを有して床面上を輪転自在な仮想的な車輪62_x(以降、仮想車輪62_xという)とを備える。そして、質点60_xが、仮想車輪62_xの回転軸62a_xに直線状のロッド64_xを介して支持され、該回転軸62a_xを支点として該回転軸62a_xの周りに揺動自在とされている。
この倒立振子モデルでは、質点60_xの運動が、Y軸方向から見た車両系重心点の運動に相当する。また、鉛直方向に対するロッド64_xの傾斜角度θbe_xがY軸周り方向での基体傾斜角度計測値θb_x_sとSTEP4の処理で後述する如く決定される基体傾斜角度目標値θb_x_objという)との偏差θbe_x_s(=θb_x_s−θb_x_obj)に一致するものとされる。また、ロッド64_xの傾斜角度θbe_xの変化速度(=dθbe_x/dt)がY軸周り方向の基体傾斜角速度計測値θbdot_x_sに一致するものとされる。また、仮想車輪62_xの移動速度Vw_x(X軸方向の並進移動速度)は、車両1の車輪体5のX軸方向の移動速度に一致するものとされる。
同様に、X軸方向から見た挙動を表現する倒立振子モデル(図8の括弧付きの符号を参照)は、車両系重心点に位置する質点60_yと、X軸方向に平行な回転軸62a_yを有して床面上を輪転自在な仮想的な車輪62_y(以降、仮想車輪62_yという)とを備える。そして、質点60_yが、仮想車輪62_yの回転軸62a_yに直線状のロッド64_yを介して支持され、該回転軸62a_yを支点として該回転軸62a_yの周りに揺動自在とされている。
この倒立振子モデルでは、質点60_yの運動が、X軸方向から見た車両系重心点の運動に相当する。また、鉛直方向に対するロッド64_yの傾斜角度θbe_yがX軸周り方向での基体傾斜角度計測値θb_y_sと、後述する如く決定される基体傾斜角度目標値θb_y_objとの偏差θbe_y_s(=θb_y_s−θb_y_obj)に一致するものとされる。また、ロッド64_yの傾斜角度θbe_yの変化速度(=dθbe_y/dt)がX軸周り方向の基体傾斜角速度計測値θbdot_y_sに一致するものとされる。また、仮想車輪62_yの移動速度Vw_y(Y軸方向の並進移動速度)は、車両1の車輪体5のY軸方向の移動速度に一致するものとされる。
なお、仮想車輪62_x,62_yは、それぞれ、あらかじめ定められた所定値Rw_x,Rw_yの半径を有するものとされる。
また、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x,ωw_yと、電動モータ31R,31Lのそれぞれの回転角速度ω_R,ω_L(より正確には、回転部材27R,27Lのそれぞれの回転角速度ω_R,ω_L)との間には、次式01a,01bの関係が成立するものとされる。
ωw_x=(ω_R+ω_L)/2 ……式01a
ωw_y=C・(ω_R−ω_L)/2 ……式01b
なお、式01bにおける“C”は、前記フリーローラ29R,29Lと車輪体5との間の機構的な関係や滑りに依存する所定値の係数である。また、ωw_x,ω_R,ω_Lの正の向きは、仮想車輪62_xが前方に向かって輪転する場合の該仮想車輪62_xの回転方向、ωw_yの正の向きは、仮想車輪62_yが左向きに輪転する場合の該仮想車輪62_yの回転方向である。
ここで、図8に示す倒立振子モデルの動力学は、次式03x,03yにより表現される。なお、式03xは、Y軸方向から見た倒立振子モデルの動力学を表現する式、式03yは、X軸方向から見た倒立振子モデルの動力学を表現する式である。
d2θbe_x/dt2=α_x・θbe_x+β_x・ωwdot_x ……式03x
d2θbe_y/dt2=α_y・θbe_y+β_y・ωwdot_y ……式03y
式03xにおけるωwdot_xは仮想車輪62_xの回転角加速度(回転角速度ωw_xの1階微分値)、α_xは、質点60_xの質量や高さh_xに依存する係数、β_xは、仮想車輪62_xのイナーシャ(慣性モーメント)や半径Rw_xに依存する係数である。式03yにおけるωwdot_y、α_y、β_yについても上記と同様である。
これらの式03x,03yから判るように、倒立振子モデルの質点60_x,60_yの運動(ひいては車両系重心点の運動)は、それぞれ、仮想車輪62_xの回転角加速度ωwdot_x、仮想車輪62_yの回転角加速度ωwdot_yに依存して規定される。
そこで、本実施形態では、Y軸方向から見た車両系重心点の運動を制御するための操作量(制御入力)として、仮想車輪62_xの回転角加速度ωwdot_xを用いると共に、X軸方向から見た車両系重心点の運動を制御するための操作量(制御入力)として、仮想車輪62_yの回転角加速度ωwdot_yを用いる。
そして、STEP9の車両制御演算処理を概略的に説明すると、制御ユニット50は、X軸方向で見た質点60_xの運動と、Y軸方向で見た質点60_yの運動とが、車両系重心点の所望の運動に対応する運動となるように、操作量としての上記回転角加速度ωwdot_x,ωwdot_yの指令値(目標値)である仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdを決定する。さらに、制御ユニット50は、仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdをそれぞれ積分してなる値を、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x,ωw_yの指令値(目標値)である仮想車輪回転角速度指令ωw_x_cmd,ωw_y_cmdとして決定する。
そして、制御ユニット50は、仮想車輪回転角速度指令ωw_x_cmdに対応する仮想車輪62_xの移動速度(=Rw_x・ωw_x_cmd)と、仮想車輪回転角速度指令ωw_y_cmdに対応する仮想車輪62_yの移動速度(=Rw_y・ωw_y_cmd)とを、それぞれ、車両1の車輪体5のX軸方向の目標移動速度、Y軸方向の目標移動速度とし、それらの目標移動速度を実現するように、電動モータ31R,31Lのそれぞれの速度指令ω_R_cmd,ω_L_cmdを決定する。
なお、本実施形態では、操作量(制御入力)としての上記仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdは、それぞれ、後述する式07x,07yに示す如く、3個の操作量成分を加え合わせることによって決定される。
補足すると、本実施形態における操作量(制御入力)としての上記仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdのうち、ωwdot_x_cmdは、X軸方向に移動する仮想車輪62_xの回転角加速度であるから、車輪体5をX軸方向に移動させるために該車輪体5に付与すべき駆動力を規定する操作量として機能するものとなる。また、ωwdot_y_cmdは、Y軸方向に移動する仮想車輪62_yの回転角加速度であるから、車輪体5をY軸方向に移動させるために該車輪体5に付与すべき駆動力を規定する操作量として機能するものとなる。
制御ユニット50は、上記の如き、STEP5の車両制御演算処理を実行するための機能として、図9のブロック図で示す機能を備えている。
すなわち、制御ユニット50は、基体傾斜角度計測値θb_xy_sと基体傾斜角度目標値θb_xy_objとの偏差である基体傾斜角度偏差計測値θbe_xy_sを算出する偏差演算部70と、前記車両系重心点の移動速度である重心速度Vb_xyの観測値としての重心速度推定値Vb_xy_sを算出する重心速度算出部72と、電動モータ31R,31Lの回転角速度の許容範囲に応じた制限を加味して、重心速度Vb_xyの目標値としての制御用目標重心速度Vb_xy_mdfdを決定する重心速度制限部76と、後述する式07x,07yのゲイン係数の値を調整するための第1ゲイン調整パラメータKr1_xyを決定するゲイン調整部78とを備える。
制御ユニット50は、さらに、前記仮想車輪回転角速度指令ωw_xy_cmdを算出する姿勢制御演算部80と、この仮想車輪回転角速度指令ωw_xy_cmdを、右側の電動モータ31Rの速度指令ω_R_cmd(回転角速度の指令値)と左側の電動モータ31Lの速度指令ω_L_cmd(回転角速度の指令値)との組に変換するモータ指令演算部82とを備える。
なお、図9中の参照符号84を付したものは、姿勢制御演算部80が制御処理周期毎に算出する仮想車輪回転角速度指令ωw_xy_cmdを入力する遅延要素を示している。該遅延要素84は、各制御処理周期において、仮想車輪回転角速度指令ωw_xy_cmdの前回値ωw_xy_cmd_pを出力する。
前記STEP5の車両制御演算処理では、これらの上記の各処理部の処理が以下に説明するように実行される。
すなわち、制御ユニット50は、まず、偏差演算部70の処理と重心速度算出部72の処理とを実行する。
偏差演算部70には、前記STEP2で算出された基体傾斜角度計測値θb_xy_s(θb_x_s及びθb_y_s)と、前記STEP4で後述する如く決定される基体傾斜角度目標値θb_xy_obj(θb_x_obj及びθb_y_obj)とが入力される。そして、偏差演算部70は、θb_x_sからθb_x_objを減算することによって、Y軸周り方向の基体傾斜角度偏差計測値θbe_x_s(=θb_x_s−θb_x_obj)を算出すると共に、θb_y_sからθb_y_objを減算することによって、X軸周り方向の基体傾斜角度偏差計測値θbe_y_s(=θb_y_s−θb_y_obj)を算出する。
なお、偏差演算部70の処理は、例えば、前記STEP4の処理の中で実行してもよい。
前記重心速度算出部72には、前記STEP2で算出された基体傾斜角速度計測値θbdot_xy_s(θbdot_x_s及びθbdot_y_s)の今回値が入力されると共に、仮想車輪速度指令ωw_xy_cmdの前回値ωw_xy_cmd_p(ωw_x_cmd_p及びωw_y_cmd_p)が遅延要素84から入力される。そして、重心速度算出部72は、これらの入力値から、前記倒立振子モデルに基づく所定の演算式によって、重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を算出する。
具体的には、重心速度算出部72は、次式05x,05yにより、Vb_x_s及びVb_y_sをそれぞれ算出する。
Vb_x_s=Rw_x・ωw_x_cmd_p+h_x・θbdot_x_s ……05x
Vb_y_s=Rw_y・ωw_y_cmd_p+h_y・θbdot_y_s ……05y
これらの式05x,05yにおいて、Rw_x,Rw_yは、前記したように、仮想車輪62_x,62_yのそれぞれの半径であり、これらの値は、あらかじめ設定された所定値である。また、h_x,h_yは、それぞれ倒立振子モデルの質点60_x,60_yの高さである。この場合、本実施形態では、車両1の各動作モードにおいて、それぞれ、車両系重心点の高さはほぼ一定に維持されるものとされる。そして、h_x,h_yの値としては、それぞれ、各動作モード毎にあらかじめ設定された所定値が用いられる。
なお、h_x,h_yの値は、動作モード毎に異なる値である必要はない。例えば、搭乗行為用モード又は降車行為用モードでのh_x,h_yの値が、搭乗中モードと同じ値に設定されていてもよい。
上記式05xの右辺の第1項は、仮想車輪62_xの速度指令の前回値ωw_x_cmd_pに対応する該仮想車輪62_xのX軸方向の移動速度であり、この移動速度は、車輪体5のX軸方向の実際の移動速度の現在値に相当するものである。また、式05xの右辺の第2項は、基体9がY軸周り方向にθbdot_x_sの傾斜角速度で傾動することに起因して生じる車両系重心点のX軸方向の移動速度(車輪体5に対する相対的な移動速度)の現在値に相当するものである。これらのことは、式05yについても同様である。
なお、前記ロータリエンコーダ56R,56Lの出力を基に計測される電動モータ31R,31Lのそれぞれの回転角速度の計測値(今回値)の組を、仮想車輪62_x,62_yのそれぞれの回転角速度の組に変換し、それらの回転角速度を、式05x、05yのωw_x_cmd_p、ωw_y_cmd_pの代わりに用いてもよい。ただし、回転角速度の計測値に含まれるノイズの影響を排除する上では、目標値であるωw_x_cmd_p、ωw_y_cmd_pを使用することが有利である。
次に、制御ユニット50は、重心速度制限部76の処理とゲイン調整部78の処理とを実行する。この場合、重心速度制限部76及びゲイン調整部78には、それぞれ、重心速度算出部72で上記の如く算出された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)が入力される。
そして、ゲイン調整部78は、入力された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を基に、前記第1ゲイン調整パラメータKr1_xy(Kr1_x及びKr1_y)を決定する。
このゲイン調整部78の処理を図10及び図11を参照して以下に説明する。
図10に示すように、ゲイン調整部78は、入力された重心速度推定値Vb_x_s,Vb_y_sをリミット処理部86に入力する。このリミット処理部86では、重心速度推定値Vb_x_s,Vb_y_sに、電動モータ31R,31Lのそれぞれの回転角速度の許容範囲に応じた制限を適宜、加えることによって、出力値Vw_x_lim1,Vw_y_lim1を生成する。出力値Vw_x_lim1は、前記仮想車輪62_xのX軸方向の移動速度Vw_xの制限後の値、出力値Vw_y_lim1は、前記仮想車輪62_yのY軸方向の移動速度Vw_yの制限後の値としての意味を持つ。
このリミット処理部86の処理を、図11を参照してさらに詳細に説明する。なお、図11中の括弧付きの参照符号は、後述する重心速度制限部76のリミット処理部100の処理を示すものであり、リミット処理部86の処理に関する説明では無視してよい。
リミット処理部86は、まず、重心速度推定値Vb_x_s,Vb_y_sをそれぞれ処理部86a_x,86a_yに入力する。処理部86a_xは、Vb_x_sを仮想車輪62_xの半径Rw_xで除算することによって、仮想車輪62_xのX軸方向の移動速度をVb_x_sに一致させたと仮定した場合の該仮想車輪62_xの回転角速度ωw_x_sを算出する。同様に、処理部86a_yは、仮想車輪62_yのY軸方向の移動速度をVb_y_sに一致させたと仮定した場合の該仮想車輪62_yの回転角速度ωw_y_s(=Vb_y_s/Rw_y)を算出する。
次いで、リミット処理部86は、ωw_x_s,ωw_y_sの組を、XY−RL変換部86bにより、電動モータ31Rの回転角速度ω_R_sと電動モータ31Lの回転角速度ω_L_sとの組に変換する。
この変換は、本実施形態では、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_s,ωw_y_s,ω_R_s,ω_L_sに置き換えて得られる連立方程式を、ω_R_s,ω_L_sを未知数として解くことにより行なわれる。
次いで、リミット処理部86は、XY−RL変換部86bの出力値ω_R_s,ω_L_sをそれぞれ、リミッタ86c_R,86c_Lに入力する。このとき、リミッタ86c_Rは、ω_R_sが、あらかじめ設定された所定値の上限値(>0)と下限値(<0)とを有する右モータ用許容範囲内に収まっている場合には、ω_R_sをそのまま出力値ω_R_lim1として出力する。また、リミッタ86c_Rは、ω_R_sが、右モータ用許容範囲から逸脱している場合には、該右モータ用許容範囲の上限値と下限値とのうちのω_R_sに近い方の境界値を出力値ω_R_lim1として出力する。これにより、リミッタ86c_Rの出力値ω_R_lim1は、右モータ用許容範囲内の値に制限される。
同様に、リミッタ86c_Lは、ω_L_sが、あらかじめ設定された所定値の上限値(>0)と下限値(<0)とを有する左モータ用許容範囲内に収まっている場合には、ω_L_sをそのまま出力値ω_L_lim1として出力する。また、リミッタ86c_Lは、ω_L_sが、左モータ用許容範囲から逸脱している場合には、該左モータ用許容範囲の上限値と下限値とのうちのω_L_sに近い方の境界値を出力値ω_L_lim1として出力する。これにより、リミッタ86c_Lの出力値ω_L_lim1は、左モータ用許容範囲内の値に制限される。
上記右モータ用許容範囲は右側の電動モータ31Rの回転角速度(絶対値)が高くなり過ぎないようにし、ひいては、電動モータ31Rが出力可能なトルクの最大値が低下するのを防止するために設定された許容範囲である。このことは、左モータ用許容範囲についても同様である。
次いで、リミット処理部86は、リミッタ86c_R,86c_Lのそれぞれの出力値ω_R_lim1,ω_L_lim1の組を、RL−XY変換部86dにより、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x_lim1,ωw_y_lim1の組に変換する。
この変換は、前記XY−RL変換部86bの変換処理の逆変換の処理である。この処理は、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_lim1,ωw_y_lim1,ω_R_lim1,ω_L_lim1に置き換えて得られる連立方程式を、ωw_x_lim1,ωw_y_lim1を未知数として解くことにより行なわれる。
次いで、リミット処理部86は、RL−XY変換部86dの出力値ωw_x_lim1,ωw_y_lim1をそれぞれ処理部86e_x,86e_yに入力する。処理部86e_xは、ωw_x_lim1に仮想車輪62_xの半径Rw_xを乗じることによって、ωw_x_lim1を仮想車輪62_xの移動速度Vw_x_lim1に変換する。同様に、処理部86e_yは、ωw_y_lim1を仮想車輪62_yの移動速度Vw_y_lim1(=ωw_y_lim1・Rw_y)に変換する。
以上のリミット処理部86の処理によって、仮想車輪62_xのX軸方向の移動速度Vw_xと、仮想車輪62_yのY軸方向の移動速度Vw_yとをそれぞれ重心速度推定値Vb_x_s,Vb_y_sに一致させたと仮定した場合(換言すれば、車輪体5のX軸方向の移動速度とY軸方向の移動速度とをそれぞれ、Vb_x_s,Vb_y_sに一致させたと仮定した場合)に、それらの移動速度を実現するために必要な電動モータ31R,31Lのそれぞれの回転角速度ω_R_s,ω_L_sが、両方とも、許容範囲内に収まっている場合には、Vb_x_s,Vb_y_sにそれぞれ一致する出力値Vw_x_lim1,Vw_y_lim1の組がリミット処理部86から出力される。
一方、電動モータ31R,31Lのそれぞれの回転角速度ω_R_s,ω_L_sの両方又は一方が許容範囲から逸脱している場合には、その両方又は一方の回転角速度が強制的に許容範囲内に制限された上で、その制限後の電動モータ31R,31Lのそれぞれの回転角速度ω_R_lim1,ω_L_lim1の組に対応する、X軸方向及びY軸方向の移動速度Vw_x_lim1,Vw_y_lim1の組がリミット処理部86から出力される。
従って、リミット処理部86は、その出力値Vw_x_lim1,Vw_y_lim1の組に対応する電動モータ31R,31Lのそれぞれの回転角速度が許容範囲を逸脱しないことを必須の必要条件として、その必要条件下で可能な限り、出力値Vw_x_lim1,Vw_y_lim1をそれぞれVb_x_s,Vb_y_sに一致させるように、出力値Vw_x_lim1,Vw_y_lim1の組を生成する。
図10の説明に戻って、ゲイン調整部78は、次に、演算部88_x,88_yの処理を実行する。演算部88_xには、X軸方向の重心速度推定値Vb_x_sと、リミット処理部86の出力値Vw_x_lim1とが入力される。そして、演算部88_xは、Vw_x_lim1からVb_x_sを減算してなる値Vover_xを算出して出力する。また、演算部88_yには、Y軸方向の重心速度推定値Vb_y_sと、リミット処理部86の出力値Vw_y_lim1とが入力される。そして、演算部88_yは、Vw_y_lim1からVb_y_sを減算してなる値Vover_yを算出して出力する。
この場合、リミット処理部86での出力値Vw_x_lim1,Vw_y_lim1の強制的な制限が行なわれなかった場合には、Vw_x_lim1=Vb_x_s、Vw_y_lim1=Vb_y_sとなるので、演算部88_x,88_yのそれぞれの出力値Vover_x,Vover_yはいずれも“0”となる。
一方、リミット処理部86の出力値Vw_x_lim1,Vw_y_lim1が、入力値Vb_x_s,Vb_y_sに対して強制的な制限を施して生成された場合には、Vw_x_lim1のVb_x_sからの修正量(=Vw_x_lim1−Vb_x_s)と、Vw_y_lim1のVb_y_sからの修正量(=Vw_y_lim1−Vb_y_s)とがそれぞれ、演算部88_x,88_yから出力される。
次いで、ゲイン調整部78は、演算部88_xの出力値Vover_xを処理部90_x,92_xに順番に通すことによって、第1ゲイン調整パラメータKr1_xを決定する。また、ゲイン調整部78は、演算部88_yの出力値Vover_yを処理部90_y,92_yに順番に通すことによって、第1ゲイン調整パラメータKr1_yを決定する。なお、第1ゲイン調整パラメータKr_x,Kr_yは、いずれも“0”から“1”までの範囲内の値である。
上記処理部90_xは、入力されるVover_xの絶対値を算出して出力する。また、処理部92_xは、その出力値Kr1_xが入力値|Vover_x|に対して単調に増加し、且つ、飽和特性を有するようにKr1_xを生成する。該飽和特性は、入力値がある程度大きくなると、入力値の増加に対する出力値の変化量が“0”になるか、もしくは、“0”に近づく特性である。
この場合、本実施形態では、処理部92_xは、入力値|Vover_x|があらかじめ設定された所定値以下である場合には、該入力値|Vover_x|に所定値の比例係数を乗じてなる値をKr1_xとして出力する。また、処理部92_xは、入力値|Vover_x|が所定値よりも大きい場合には、“1”をKr1_xとして出力する。なお、上記比例係数は、|Vover_x|が所定値に一致するときに、|Vover_x|と比例係数との積が“1”になるように設定されている。
また、処理部90_y,92_yの処理は、それぞれ上記した処理部90_x,92_xの処理と同様である。
以上説明したゲイン調整部78の処理によって、リミット処理部86での出力値Vw_x_lim1,Vw_y_lim1の強制的な制限が行なわれなかった場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度Vw_x,Vw_yを、それぞれ、重心速度推定値Vb_x_s,Vb_y_sに一致させるように電動モータ31R,31Lを動作させても、電動モータ31R,31Lのそれぞれの回転角速度が許容範囲内に収まるような場合には、第1ゲイン調整パラメータKr1_x,Kr1_yはいずれも“0”に決定される。従って、通常は、Kr1_x=Kr1_y=0である。
一方、リミット処理部86の出力値Vw_x_lim1,Vw_y_lim1が、入力値Vb_x_s,Vb_y_sに対して強制的な制限を施して生成された場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度Vw_x,Vw_yを、それぞれ、重心速度推定値Vb_x_s,Vb_y_sに一致させるように電動モータ31R,31Lを動作させると、電動モータ31R,31Lのいずれかの回転角速度が許容範囲を逸脱してしまう場合(いずれかの回転角速度の絶対値が高くなり過ぎる場合)には、前記修正量Vover_x,Vover_yのそれぞれの絶対値に応じて、第1ゲイン調整パラメータKr1_x,Kr1_yの値がそれぞれ決定される。この場合、Kr1_xは、“1”を上限値して、修正量Vover_xの絶対値が大きいほど、大きな値になるように決定される。このことは、Kr1_yについても同様である。
また、前記重心速度制限部76は、入力された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を使用して、図12のブロック図で示す処理を実行することによって、制御用目標重心速度Vb_xy_mdfd(Vb_x_mdfd及びVb_y_mdfd)を決定する。
具体的には、重心速度制限部76は、まず、定常偏差算出部94_x,94_yの処理を実行する。
この場合、定常偏差算出部94_xには、X軸方向の重心速度推定値Vb_x_sが入力されると共に、X軸方向の制御用目標重心速度Vb_x_mdfdの前回値Vb_x_mdfd_pが遅延要素96_xを介して入力される。そして、定常偏差算出部94_xは、まず、入力されるVb_x_sが比例・微分補償要素(PD補償要素)94a_xに入力する。この比例・微分補償要素94a_xは、その伝達関数が1+Kd・Sにより表される補償要素であり、入力されるVb_x_sと、その微分値(時間的変化率)に所定値の係数Kdを乗じてなる値とを加算し、その加算結果の値を出力する。
次いで、定常偏差算出部94_xは、入力されるVb_x_mdfd_pを、比例・微分補償要素94a_xの出力値から減算してなる値を演算部94b_xにより算出した後、この演算部94b_xの出力値を、位相補償機能を有するローパスフィルタ94c_xに入力する。このローパスフィルタ94c_xは、伝達関数が(1+T2・S)/(1+T1・S)により表されるフィルタである。そして、定常偏差算出部94_xは、このローパスフィルタ94c_xの出力値Vb_x_prdを出力する。
また、定常偏差算出部94_yには、Y軸方向の重心速度推定値Vb_y_sが入力されると共に、Y軸方向の制御用目標重心速度Vb_y_mdfdの前回値Vb_y_mdfd_pが遅延要素96_yを介して入力される。
そして、定常偏差算出部94_yは、上記した定常偏差算出部94_xと同様に、比例・微分補償要素94a_y、演算部94b_y及びローパスフィルタ94c_yの処理を順次実行し、ローパスフィルタ94c_yの出力値Vb_y_prdを出力する。
ここで、定常偏差算出部94_xの出力値Vb_x_prdは、Y軸方向から見た車両系重心点の現在の運動状態(換言すればY軸方向から見た倒立振子モデルの質点60_xの運動状態)から推測される、将来のX軸方向の重心速度推定値の収束予測値の制御用目標重心速度Vb_x_mdfdに対する定常偏差としての意味を持つものである。同様に、定常偏差算出部94_y出力値Vb_y_prdは、X軸方向から見た車両系重心点の現在の運動状態(換言すればX軸方向から見た倒立振子モデルの質点60_yの運動状態)から推測される、将来のY軸方向の重心速度推定値の収束予測値の制御用目標重心速度Vb_y_mdfdに対する定常偏差としての意味を持つものである。以降、定常偏差算出部94_x,94_yのそれぞれの出力値Vb_x_prd,Vb_y_prdを重心速度定常偏差予測値という。
重心速度制限部76は、上記の如く定常偏差算出部94_x,94_yの処理を実行した後、上記重心速度定常偏差予測値Vb_x_prd,Vb_y_prdをリミット処理部100に入力する。このリミット処理部100の処理は、前記したゲイン調整部78のリミット処理部86の処理と同じである。この場合、図11に括弧付きに参照符号で示す如く、リミット処理部100の各処理部の入力値及び出力値だけがリミット処理部86と相違する。
具体的には、リミット処理部100では、前記仮想車輪62_x,62_yのそれぞれの移動速度Vw_x,Vw_yを、Vb_x_prd,Vb_y_prdにそれぞれ一致させたと仮定した場合の各仮想車輪62_x,62_yの回転角速度ωw_x_t,ωw_y_tがそれぞれ処理部86a_x,86a_yにより算出される。そして、この回転角速度ωw_x_t,ωw_y_tの組が、XY−RL変換部86bにより、電動モータ31R,31Lの回転角速度ω_R_t,ω_L_tの組に変換される。
さらに、これらの回転角速度ω_R_t,ω_L_tが、リミッタ86c_R,86c_Lによって、それぞれ、右モータ用許容範囲内の値と左モータ用許容範囲内の値とに制限される。そして、この制限処理後の値ω_R_lim2,ω_L_lim2が、RL−XY変換部86dによって、仮想車輪62_x,62_yの回転角速度ωw_x_lim2,ωw_y_lim2に変換される。
次いで、この各回転角速度ωw_x_lim2,ωw_y_lim2に対応する各仮想車輪62_x,62_yの移動速度Vw_x_lim2,Vw_y_lim2がそれぞれ処理部86e_x,86e_yによって算出され、これらの移動速度Vw_x_lim2,Vw_y_lim2がリミット処理部100から出力される。
以上のリミット処理部100の処理によって、リミット処理部100は、リミット処理部86と同様に、その出力値Vw_x_lim2,Vw_y_lim2の組に対応する電動モータ31R,31Lのそれぞれの回転角速度が許容範囲を逸脱しないことを必須の必要条件として、その必要条件下で可能な限り、出力値Vw_x_lim2,Vw_y_lim2をそれぞれVb_x_t,Vb_y_tに一致させるように、出力値Vw_x_lim2,Vw_y_lim2の組を生成する。
なお、リミット処理部100における右モータ用及び左モータ用の各許容範囲は、リミット処理部86における各許容範囲と同一である必要はなく、互いに異なる許容範囲に設定されていてもよい。
図12の説明に戻って、重心速度制限部76は、次に、演算部102_x,102_yの処理を実行することによって、それぞれ制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdを算出する。この場合、演算部102_xは、リミット処理部100の出力値Vw_x_lim2から、X軸方向の重心速度定常偏差予測値Vb_x_prdを減算してなる値をX軸方向の制御用目標重心速度Vb_x_mdfdとして算出する。同様に、演算部102_yは、リミット処理部100の出力値Vw_y_lim2から、Y軸方向の重心速度定常偏差予測値Vb_y_prdを減算してなる値をY軸方向の制御用目標重心速度Vb_y_mdfdとして算出する。
以上のようにして決定される制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdは、リミット処理部100での出力値Vw_x_lim2,Vw_y_lim2の強制的な制限が行なわれなかった場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度を、それぞれ、重心速度定常偏差予測値Vb_x_prd,Vb_y_prdに一致させるように電動モータ31R,31Lを動作させても、電動モータ31R,31Lのそれぞれの回転角速度が許容範囲内に収まるような場合には、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdはいずれも“0”に決定される。従って、通常は、Vb_x_mdfd=Vb_y_mdfd=0である。
一方、リミット処理部100の出力値Vw_x_lim2,Vw_y_lim2が、入力値Vb_x_t,Vb_y_tに対して強制的な制限を施して生成された場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度を、それぞれ、重心速度定常偏差予測値Vb_x_prd,Vb_y_prdに一致させるように電動モータ31R,31Lを動作させると、電動モータ31R,31Lのいずれかの回転角速度が許容範囲を逸脱してしまう場合(いずれかの回転角速度の絶対値が高くなり過ぎる場合)には、X軸方向については、リミット処理部100の出力値Vw_x_lim2の入力値Vb_x_prdからの修正量(=Vw_x_lim2−Vb_x_prd)が、X軸方向の制御用目標重心速度Vb_x_mdfdとして決定される。
また、Y軸方向については、リミット処理部100の出力値Vw_y_lim2の入力値Vb_y_prdからの修正量(=Vw_y_lim2−Vb_y_prd)が、Y軸方向の制御用目標重心速度Vb_y_mdfdとして決定される。
この場合において、例えばX軸方向の速度に関し、制御用目標重心速度Vb_x_mdfdは、定常偏差算出部94_xが出力するX軸方向の重心速度定常偏差予測値Vb_x_prdと逆向きの速度となる。このことは、Y軸方向の速度に関しても同様である。
以上が、重心速度制限部76の処理である。
図9の説明に戻って、制御ユニット50は、以上の如く重心速度制限部76、ゲイン調整部78、及び偏差演算部70の処理を実行した後、次に、姿勢制御演算部80の処理を実行する。
この姿勢制御演算部80の処理を、以下に図13を参照して説明する。なお、図13において、括弧を付していない参照符号は、X軸方向に輪転する仮想車輪62_xの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_x_cmdを決定する処理に係わる参照符号であり、括弧付きの参照符合は、Y軸方向に輪転する仮想車輪62_yの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_y_cmdを決定する処理に係わる参照符号である。
姿勢制御演算部80には、偏差演算部70で算出された基体傾斜角度偏差計測値θbe_xy_sと、前記STEP2で算出された基体傾斜角速度計測値θbdot_xy_sと、重心速度算出部72で算出された重心速度推定値Vb_xy_sと、重心速度制限部76で算出された制御用目標重心速度Vb_xy_mdfdと、ゲイン調整部78で算出された第1ゲイン調整パラメータKr1_xyと、前記STEP4で後述する如く決定される第2ゲイン調整パラメータKr2及び動作モードとが入力される。
そして、姿勢制御演算部80は、まず、上記の入力値を用いて、次式07x,07yにより、仮想車輪回転角加速度指令ωwdot_xy_cmdを算出する。
ωwdot_x_cmd=K1_x・θbe_x_s+K2_x・θbdot_x_s
+K3_x・(Vb_x_s−Vb_x_mdfd) ……式07x
ωwdot_y_cmd=K1_y・θbe_y_s+K2_y・θbdot_y_s
+K3_y・(Vb_y_s−Vb_y_mdfd) ……式07y
従って、本実施形態では、Y軸方向から見た倒立振子モデルの質点60_xの運動(ひいては、Y軸方向から見た車両系重心点の運動)を制御するための操作量(制御入力)としての仮想車輪回転角加速度指令ωwdot_x_cmdと、X軸方向から見た倒立振子モデルの質点60_yの運動(ひいては、X軸方向から見た車両系重心点の運動)を制御するための操作量(制御入力)としての仮想車輪回転角加速度指令ωwdot_y_cmdとは、それぞれ、3つの操作量成分(式07x,07yの右辺の3つの項)を加え合わせることによって決定される。
この場合、式07xにおける各操作量成分に係わるゲイン係数K1_x,K2_x,K3_xは、第1ゲイン調整パラメータKr1_x、第2ゲイン調整パラメータKr2、及び動作モードに応じて可変的に設定される。同様に、式07yにおける各操作量成分に係わるゲイン係数K1_y,K2_y,K3_yは、第1ゲイン調整パラメータKr1_x、第2ゲイン調整パラメータKr2、及び動作モードに応じて可変的に設定される。以降、式07xにおけるゲイン係数K1_x,K2_x,K3_xのそれぞれを第1ゲイン係数K1_x、第2ゲイン係数K2_x、第3ゲイン係数K3_xということがある。このことは、式07yにおけるゲイン係数K1_y,K2_y,K3_yについても同様とする。
式07xにおける第iゲイン係数Ki_x(i=1,2,3)と、式07yにおける第iゲイン係数Ki_y(i=1,2,3)とは、それぞれ、図13中に示した如く、次式09x、09yにより決定される。
Ki_x=(1−Wgain_x)・Ki_a_x + Wgain_x・Ki_b_x ……式09x
(i=1,2,3)
Ki_y=(1−Wgain_y)・Ki_a_y + Wgain_y・Ki_b_y ……式09y
(i=1,2,3)
この場合、式09xにおけるWgain_x、Ki_a_x、Ki_b_xと、式09yにおけるWgain_y、Ki_a_y、Ki_b_yとは、車両1の現在の動作モード(STEP4で決定される今回の動作モード)に応じて、次の(1)〜(4)に示す如く決定される。
(1)現在の動作モードが搭乗中モードである場合
Wgain_x=Kr1_x, Ki_a_x=Gi_x_搭乗中A(i=1,2,3)
Ki_b_x=Gi_x_搭乗中B(i=1,2,3)
Wgain_y=Kr1_y, Ki_a_y=Gi_y_搭乗中A(i=1,2,3)
Ki_b_y=Gi_y_搭乗中B(i=1,2,3)
(2)現在の動作モードが自立モードである場合
Wgain_x=Kr1_x, Ki_a_x=Gi_x_自立A(i=1,2,3)
Ki_b_x=Gi_x_自立B(i=1,2,3)
Wgain_y=Kr1_y, Ki_a_y=Gi_y_自立A(i=1,2,3)
Ki_b_y=Gi_y_自立B(i=1,2,3)
(3)現在の動作モードが搭乗行為用モードである場合
Wgain_x=Kr2, Ki_a_x=Gi_x_搭乗中A(i=1,2,3)
Ki_b_x=Gi_x_搭乗行為(i=1,2,3)
Wgain_y=Kr2, Ki_a_y=Gi_y_搭乗中A(i=1,2,3)
Ki_b_y=Gi_y_搭乗行為(i=1,2,3)
(4)現在の動作モードが降車行為用モードである場合
Wgain_x=Kr2, Ki_a_x=Gi_x_搭乗中A(i=1,2,3)
Ki_b_x=Gi_x_降車行為(i=1,2,3)
Wgain_y=Kr2, Ki_a_y=Gi_y_搭乗中A(i=1,2,3)
Ki_b_y=Gi_y_降車行為(i=1,2,3)
ここで、Gi_x_搭乗中A、Gi_x_搭乗中B、Gi_y_搭乗中A、Gi_y_搭乗中Bは搭乗モード用としてあらかじめ設定された所定値(定数値)、Gi_x_自立A、Gi_x_自立B、Gi_y_自立A、Gi_y_自立Bは自立モード用としてあらかじめ設定された所定値(定数値)、Gi_x_搭乗行為、Gi_y_搭乗行為は、搭乗行為用モード用としてあらかじめ設定された所定値(定数値)、Gi_x_降車行為、Gi_y_降車行為は、降車行為用モード用としてあらかじめ設定された所定値(定数値)である。
この場合、本実施形態では、|Gi_x_搭乗中A|<|Gi_x_搭乗中B|、|Gi_y_搭乗中A|<|Gi_y_搭乗中B|、|Gi_x_自立A|<|Gi_x_自立B|、|Gi_y_自立A|<|Gi_y_自立B|、|Gi_x_搭乗行為|<|Gi_x_搭乗中A|、|Gi_y_搭乗行為|<|Gi_y_搭乗中A|、|Gi_x_降車行為|<|Gi_x_搭乗中A|、|Gi_y_降車行為|<|Gi_y_搭乗中A|となっている。また、|Gi_x_自立A|<|Gi_x_搭乗中A|、|Gi_y_自立A|<|Gi_y_搭乗中A|となっている。
なお、本実施形態では、Gi_x_搭乗行為=Gi_x_降車行為、Gi_y_搭乗行為=Gi_y_降車行為とされている。ただし、Gi_x_搭乗行為≠Gi_x_降車行為、又は、Gi_y_搭乗行為≠Gi_y_降車行為であってもよい。
動作モードが搭乗中モードである場合には、式07xの演算に用いる各第iゲイン係数Ki_x(i=1,2,3)は、それぞれに対応する2つの定数値Gi_x_搭乗中A,Gi_x_搭乗中Bの重み付き平均値して決定される。そして、この場合、Ki_a_x(=Gi_x_搭乗中A)、Ki_b_x(=Gi_x_搭乗中B)にそれぞれ掛かる重み(1−Wgain),Wgainが、第1ゲイン調整パラメータKr1_xに応じて変化させられる。具体的には、Kr1_x=0である場合には、Ki_x=Gi_x_搭乗中Aとなり、Kr1_x=1である場合には、Ki_x=Gi_x_搭乗中Bとなる。そして、Kr1_xが“0”から“1”に近づくに伴い、第iゲイン係数Ki_xはKi_x=Gi_x_搭乗中AからGi_x_搭乗中Bに近づいていく(Ki_xの絶対値が増加していく)。搭乗中モードでは、式07yの演算に用いる各第iゲイン係数Ki_y(i=1,2,3)についても上記と同様である。
また、動作モードが自立モードである場合には、式07xの演算に用いる各第iゲイン係数Ki_x(i=1,2,3)は、それぞれに対応する2つの定数値Gi_x_自立A,Gi_x_自立Bの重み付き平均値して決定される。そして、この場合、Ki_a_x(=Gi_x_自立A)、Ki_b_x(=Gi_x_自立B)にそれぞれ掛かる重み(1−Wgain),Wgainが、第1ゲイン調整パラメータKr1_xに応じて変化させられる。具体的には、Kr1_x=0である場合には、Ki_x=Gi_x_自立Aとなり、Kr1_x=1である場合には、Ki_x=Gi_x_自立Bとなる。そして、Kr1_xが“0”から“1”に近づくに伴い、第iゲイン係数Ki_xはKi_x=Gi_x_自立AからGi_x_自立Bに近づいていく(Ki_xの絶対値が増加していく)。自立モードでは、式07yの演算に用いる各第iゲイン係数Ki_y(i=1,2,3)についても上記と同様である。
補足すると、第1ゲイン調整パラメータKr1_x,Kr1_yは、前記したように、通常は(詳しくはゲイン調整部78のリミット処理部86での出力値Vw_x_lim1,Vw_y_lim1の強制的な制限が行なわれなかった場合)、“0”である。従って、搭乗中モード及び自立モードにおける第iゲイン係数Ki_x,Ki_y(i=1,2,3)は、通常は、それぞれ、Ki_x=Ki_a_x(=Gi_x_搭乗中A又はGi_x_自立A)、Ki_y=Ki_a_y(=Gi_y_搭乗中A又はGi_y_自立A)となる。従って、Gi_x_搭乗中A,Gi_y_搭乗中Aは、搭乗中モードでの通常的な車両1の動作状態での第iゲイン係数Ki_x,Ki_y(i=1,2,3)の適切な値としてあらかじめ設定された定数値である。同様に、Gi_x_自立A,Gi_y_自立Aは、自立モードでの通常的な車両1の動作状態での第iゲイン係数Ki_x,Ki_y(i=1,2,3)の適切な値としてあらかじめ設定された定数値である。
一方、動作モードが搭乗行為用モードである場合には、式07xの演算に用いる各第iゲイン係数Ki_x(i=1,2,3)は、それぞれに対応する2つ定数値Gi_x_搭乗中A,Gi_x_搭乗行為の重み付き平均値して決定される。そして、この場合、Ki_a_x(=Gi_x_搭乗中A)、Ki_b_x(=Gi_x_搭乗行為)にそれぞれ掛かる重み(1−Wgain),Wgainが、第2ゲイン調整パラメータKr2に応じて変化させられる。具体的には、Kr2_x=0である場合には、Ki_x=Gi_x_搭乗中Aとなり、Kr2_x=1である場合には、Ki_x=Gi_x_搭乗行為となる。そして、Kr2が“1”から“0”に近づくに伴い、第iゲイン係数Ki_xはKi_x=Gi_x_搭乗行為からGi_x_搭乗中Aに近づいていく。ひいては、Ki_xの絶対値が増加していく。この場合、|Gi_x_搭乗行為|<|Gi_x_搭乗中A|であるから、Kr2=0である場合を除き、搭乗行為用モードでの各第iゲイン係数Ki_x(i=1,2,3)の絶対値は、搭乗中モードよりも小さい値となる。搭乗行為用モードでは、式07yの演算に用いる各第iゲイン係数Ki_y(i=1,2,3)についても上記と同様である。
また、動作モードが降車行為用モードである場合には、式07xの演算に用いる各第iゲイン係数Ki_x(i=1,2,3)は、それぞれに対応する2つ定数値Gi_x_搭乗中A,Gi_x_降車行為Bの重み付き平均値して決定される。そして、この場合、Ki_a_x(=Gi_x_搭乗中A)、Ki_b_x(=Gi_x_降車行為)にそれぞれ掛かる重み(1−Wgain),Wgainが、第2ゲイン調整パラメータKr2に応じて変化させられる。具体的には、Kr2_x=0である場合には、Ki_x=Gi_x_搭乗中Aとなり、Kr2_x=1である場合には、Ki_x=Gi_x_降車行為となる。そして、Kr2が“1”から“0”に近づくに伴い、第iゲイン係数Ki_xはKi_x=Gi_x_降車行為からGi_x_搭乗中Aに近づいていく。ひいては、Ki_xの絶対値が増加していく。この場合、|Gi_x_降車行為|<|Gi_x_搭乗中A|であるから、Kr2=0である場合を除き、搭乗行為用モードでの各第iゲイン係数Ki_x(i=1,2,3)の絶対値は、搭乗中モードよりも小さい値となる。降車行為用モードでは、式07yの演算に用いる各第iゲイン係数Ki_y(i=1,2,3)についても上記と同様である。
姿勢制御演算部80は、上記の如く決定した第1〜第3ゲイン係数K1_x,K2_x,K3_xを用いて前記式07xの演算を行なうことで、X軸方向に輪転する仮想車輪62_xに係わる仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
さらに詳細には、図13を参照して、姿勢制御演算部80は、基体傾斜角度偏差計測値θbe_x_sに第1ゲイン係数K1_xを乗じてなる操作量成分u1_xと、基体傾斜角速度計測値θbdot_x_sに第2ゲイン係数K2_xを乗じてなる操作量成分u2_xとをそれぞれ、処理部80a,80bで算出する。さらに、姿勢制御演算部80は、重心速度推定値Vb_x_sと制御用目標重心速度Vb_x_mdfdとの偏差(=Vb_x_s−Vb_x_mdfd)を演算部80dで算出し、この偏差に第3ゲイン係数K3_xを乗じてなる操作量成u3_xを処理部80cで算出する。そして、姿勢制御演算部80は、これらの操作量成分u1_x,u2_x,u3_xを演算部80eにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
同様に、姿勢制御演算部80は、上記の如く決定した第1〜第3ゲイン係数K1_y,K2_y,K3_yを用いて前記式07yの演算を行なうことで、Y軸方向に輪転する仮想車輪62_yに係わる仮想車輪回転角加速度指令ωwdot_y_cmdを算出する。
この場合には、姿勢制御演算部80は、基体傾斜角度偏差計測値θbe_y_sに第1ゲイン係数K1_yを乗じてなる操作量成分u1_yと、基体傾斜角速度計測値θbdot_y_sに第2ゲイン係数K2_yを乗じてなる操作量成分u2_yとをそれぞれ、処理部80a,80bで算出する。さらに、姿勢制御演算部80は、重心速度推定値Vb_y_sと制御用目標重心速度Vb_y_mdfdとの偏差(=Vb_y_s−Vb_y_mdfd)を演算部80dで算出し、この偏差に第3ゲイン係数K3_yを乗じてなる操作量成u3_yを処理部80cで算出する。そして、姿勢制御演算部80は、これらの操作量成分u1_y,u2_y,u3_yを演算部80eにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
ここで、式07xの右辺の第1項(=第1操作量成分u1_x)及び第2項(=第2操作量成分u2_x)は、X軸周り方向での基体傾斜角度偏差計測値θbe_x_sを、フィードバック制御則としてのPD則(比例・微分則)により“0”に収束させる(基体傾斜角度計測値θb_x_sを目標値θb_x_objに収束させる)ためのフィードバック操作量成分としての意味を持つ。
また、式07xの右辺の第3項(=第3操作量成分u3_x)は、重心速度推定値Vb_x_sと制御用目標重心速度Vb_x_mdfdとの偏差をフィードバック制御則としての比例則により“0”に収束させる(Vb_x_sをVb_x_mdfdに収束させる)ためのフィードバック操作量成分としての意味を持つ。
これらのことは、式07yの右辺の第1〜第3項(第1〜第3操作量成分u1_y,u2_y,u3_y)についても同様である。
なお、前記したように通常は(より詳しくは、前記重心速度制限部76のリミット処理部100での出力値V_x_lim2,V_y_lim2の強制的な制限が行なわれなかった場合)、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdは“0”である。そして、Vb_x_mdfd=Vb_y_mdfd=0となる通常の場合は、第3操作量成分u3_x,u3_yは、それぞれ、重心速度推定値Vb_x_s,Vb_y_sに第3ゲイン係数K3_x,K3_yを乗じた値に一致する。
姿勢制御演算部80は、上記の如く、仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdを算出した後、次に、これらのωwdot_x_cmd,ωwdot_y_cmdをそれぞれ積分器80fにより積分することによって、前記仮想車輪回転速度指令ωw_x_cmd,ωw_y_cmdを決定する。
以上が姿勢制御演算部80の処理の詳細である。
補足すると、式07xの右辺の第3項を、Vb_x_sに応じた操作量成分(=K3_x・Vb_x_s)と、Vb_x_mdfdに応じた操作量成分(=−K3_x・Vb_x_mdfd)とに分離した式によって、仮想車輪回転角加速度指令ωwdot_x_cmdを算出するようにしてよい。同様に、式07yの右辺の第3項を、Vb_y_sに応じた操作量成分(=K3_y・Vb_y_s)と、Vb_y_mdfdに応じた操作量成分(=−K3_y・Vb_y_mdfd)とに分離した式によって、仮想車輪回転角加速度指令ωwdot_y_cmdを算出するようにしてよい。
また、本実施形態では、車両系重心点の挙動を制御するための操作量(制御入力)として、仮想車輪62_x,62_yの回転角加速度指令ωw_x_cmd,ωw_y_cmdを用いるようにしたが、例えば、仮想車輪62_x,62_yの駆動トルク、あるいは、この駆動トルクを各仮想車輪62_x,62_yの半径Rw_x,Rw_yで除算してなる並進力(すなわち仮想車輪62_x,62_yと床面との間の摩擦力)を操作量として用いるようにしてもよい。
図9の説明に戻って、制御ユニット50は、次に、姿勢制御演算部80で上記の如く決定した仮想車輪回転速度指令ωw_x_cmd,ωw_y_cmdをモータ指令演算部82に入力し、該モータ指令演算部82の処理を実行することによって、電動モータ31Rの速度指令ω_R_cmdと電動モータ31Lの速度指令ω_L_cmdとを決定する。このモータ指令演算部82の処理は、前記リミット処理部86(図11参照)のXY−RL変換部86bの処理と同じである。
具体的には、モータ指令演算部82は、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_cmd,ωw_y_cmd,ω_R_cmd,ω_L_cmdに置き換えて得られる連立方程式を、ω_R_cmd,ω_L_cmdを未知数として解くことによって、電動モータ31R,31Lのそれぞれの速度指令ω_R_cmd,ω_L_cmdを決定する。
以上により前記STEP9の車両制御演算処理が完了する。
次に、説明を後回しにした前記STEP4の処理(制御特性パラメータの決定処理)を図14〜図19を参照して詳細に説明する。
STEP4の処理は、図14のフローチャートに示す如く実行される。
具体的には、制御ユニット50は、まず、STEP11において、今回の(今回の制御処理周期での)動作モードがどの動作モードであるかを判断する。
ここで、本実施形態では、制御ユニット50の起動時において、制御ユニット50は、車両1の初期動作モードとして、自立モードを設定する。そして、制御ユニット50は、以後の各制御処理周期において、次回の制御処理周期での動作モードを決定する。従って、STEP11で判断される動作モードは、基本的には、前回の制御処理周期で決定された動作モードである。
STEP11において、今回の動作モードが自立モードである場合、搭乗中モードである場合、搭乗行為用モードである場合、降車行為用モードである場合のそれぞれの場合に対応して、制御ユニット50は、それぞれ、STEP12,13,14,15の処理を実行することによって、次回の動作モードや、制御特性パラメータの今回値を決定する。これにより図14の処理が終了する。
今回の動作モードが自立モードである場合に対応するSTEP12の処理は、図15のフローチャートに示すサブルーチン処理により実行される。
この処理では、制御ユニット50は、まず、前記STEP3で取得した搭乗/降車用操作子58の出力に基づいて、該操作子58の搭乗用操作部58aがON操作(押し操作)されたか否かをSTEP12−1で判断する。
この判断結果が否定的である場合には、STEP12−2に進んで、制御ユニット50は、次回の動作モードを現在の動作モード(=自立モード)に保持する。また、STEP12−1の判断結果が肯定的である場合(乗員がこれから車両1に搭乗しようとして、搭乗用操作部58aをON操作した場合)には、制御ユニット50は、次回の動作モードを搭乗行為用モードに変更する。
次いで、制御ユニット50は、STEP12−4において、第2ゲイン調整パラメータKr2の値を“0”にする(初期化する)。さらに、制御ユニット50は、STEP12−5において、基体傾斜角度目標値θb_x_obj,θb_y_objとして、自立モード用の設定値θb_x_自立を設定する。これにより図15の処理が終了する。
以上の処理により、STEP11で判断する今回の動作モードが自立モードに設定されている場合には、基体傾斜角度目標値θb_x_obj,θb_y_objとして、自立モード用の設定値θb_x_自立が設定される。そして、搭乗/降車用操作子58の搭乗用操作部58aがON操作された場合に、次回の制御処理周期での動作モードが搭乗行為用モードに変更される。
次に、今回の動作モードが搭乗中モードである場合に対応するSTEP13の処理は、図16のフローチャートに示すサブルーチン処理により実行される。
この処理では、制御ユニット50は、まず、前記STEP3で取得した搭乗/降車用操作子58の出力に基づいて、該操作子58の降車用操作部58bがON操作(押し操作)されたか否かをSTEP13−1で判断する。
この判断結果が否定的である場合には、STEP13−2に進んで、制御ユニット50は、次回の動作モードを現在の動作モード(=搭乗中モード)に保持する。また、STEP13−1の判断結果が肯定的である場合(乗員が車両1から降車しようとして、降車用操作部58bをON操作した場合)には、制御ユニット50は、次回の動作モードを降車行為用モードに変更する。
次いで、制御ユニット50は、STEP13−4において、第2ゲイン調整パラメータKr2の値を“0”にする(初期化する)。さらに、制御ユニット50は、STEP13−5において、基体傾斜角度目標値θb_x_obj,θb_y_objとして、搭乗中モード用の設定値θb_x_搭乗中を設定する。これにより、図16の処理が終了する。
以上の処理により、STEP11で判断する今回の動作モードが搭乗中モードに設定されている場合には、基体傾斜角度目標値θb_x_obj,θb_y_objとして、搭乗中モード用の設定値θb_x_搭乗中が設定される。そして、搭乗/降車用操作子58の降車用操作部58bがON操作された場合に、次回の制御処理周期での動作モードが降車行為用モードに変更される。
次に、今回の動作モードが搭乗行為用モードである場合に対応するSTEP14の処理は、図17及び図18のフローチャートに示すサブルーチン処理により実行される。
この処理では、制御ユニット50は、まず、前記STEP3で取得した搭乗/降車用操作子58の出力に基づいて、該操作子58の降車用操作部58bがON操作(押し操作)されたか否かをSTEP13−1で判断する。そして、この判断結果が肯定的である場合には、制御ユニット50は、図18の処理を実行する。
具体的には、制御ユニット50は、前回の動作モードが搭乗行為用モードであるか否かをSTEP14−20で判断する。
この判断結果が否定的となる場合は、前回の動作モードが自立モードであり、その自立モードにおいて乗員が誤って搭乗/降車用操作子58の搭乗用操作部58aを操作してしまったような状況である。この場合には、制御ユニット50は、STEP14−21において、今回の動作モードを強制的に搭乗行為用モードから自立モードに変更する。
そして、制御ユニット50は、STEP14−22,14−23,14−24で、それぞれ、第2ゲイン調整パラメータKr2の値を“0”にすることと、基体傾斜角度目標値θb_xy_objとして、自立モード用の設定値θb_xy_自立を設定することと、次回の動作モードを自立モードにすることとを実行する。
また、STEP14−20の判断結果が肯定的となる場合は、搭乗行為用モードの途中で乗員が搭乗行為を中止して、降車しようとする状況である。この場合には、制御ユニット50は、STEP14−26,14−27,14−28で、それぞれ、第2ゲイン調整パラメータKr2の値を前回値に保持することと、基体傾斜角度基本値θb_xy_objを前回値に保持することと、次回の動作モードを降車行為用モードにすることとを実行する。なお、この場合には、今回の動作モードは、搭乗行為用モードに保持される。
上記の如くSTEP14−24又はSTEP14−28の処理を実行した後、制御ユニット50は、次にSTEP14−25において、後述するフラグFlagの値を“0”にする。これにより、図17及び図18の処理が終了する。
図17の説明に戻って、STEP14−1の判断結果が否定的である場合には、制御ユニット50は、次に、前記STEP3で取得した荷重センサ54R,54Lの出力に基づいて、左右の両ステップ3R,3LがON状態であるか否かをSTEP14−2で判断する。
なお、右側のステップ3RがON状態であるということは、本実施形態では、該ステップ3Rの荷重センサ54Rの出力が示す荷重検出値が所定値を超えている状態を意味し、この状態は、換言すれば、該ステップ3Rに乗員の足が載せられている状態である。そして、ステップ3RがOFF状態であるということは、ステップ3Rに実質的に足が載せられていない(乗員の体重がステップ3Rにかかっていない)状態を意味する。このことは、左側のステップ3LのON状態、OFF状態についても同様である。
STEP14−2の判断結果が否定的である場合は、搭乗行為用モードでの実際の搭乗行為を乗員がこれから開始しようとする状況で、ステップ3R,3Lのいずれにも未だ、乗員の足が載せられていない状況であるか、又は、実際の搭乗行為の途中で、乗員がその一方の足をステップ3R又は3Lに載せた状況である。
この場合には、制御ユニット50は、両ステップ3R,3LがOFF状態であるか否か、すなわち、ステップ3R,3Lのいずれにも未だ、乗員の足が載せられていない状況であるかをSTEP14−3で判断する。
そして、この判断結果が肯定的である場合には、制御ユニット50は、STEP14−13において、基体傾斜角度目標値θb_xy_objを調整するための重み係数Wthの値を“0”にすると共に、第2ゲイン調整パラメータKr2の値を“1”にする。さらに制御ユニット50は、STEP14−14において、後述するフラグFlagの値を“0”にする。なお、本実施形態では、重み係数Wthは、搭乗行為用モード又は降車行為用モードにおいて、“−1”から“1”までの範囲内で可変的に決定される値である。
次いで、制御ユニット50は、STEP14−11において、次回の動作モードを現在の動作モード(=搭乗行為用モード)に保持する。さらに、制御ユニット50は、STEP14−12において、重み係数Wthに応じて基体傾斜角度目標値θb_xy_objを決定し、図17の処理を終了する。なお、STEP14−12の処理の詳細は後述する。
前記STEP14−3の判断結果が否定的である場合は、搭乗行為の開始時又はその直後において、ステップ3R,3Lのうちのいずれか一方に、乗員がその一方の足を載せている状態である。この場合には、制御ユニット50は、前回の動作モードが搭乗行為用モードであるか否かをSTEP14−4で判断する。
この判断結果が否定的となる場合は、前記の動作モードが自立モードである場合であり、自立モードから搭乗行為用モードに移行して即座に、ステップ3R,3Lのうちのいずれか一方に、乗員がその一方の足を最初に載せた状況である。この場合には、制御ユニット50は、次に右側のステップ3RがON状態であるか否か、すなわち、ステップ3R,3Lのうちの右側のステップ3Rのみに乗員の足(右足)が載せられているか否かをSTEP14−6で判断する。そして、この判断結果が肯定的である場合には、制御ユニット50は、STEP14−7で重み係数Wthの値を“1”とする。また、STEP14−6の判断結果が否定的である場合(左側のステップ3Lのみに乗員の足(左足)が載せられている場合)には、制御ユニット50は、STEP14−7で重み係数Wthの値を“−1”とする。
ここで、補足すると、本実施形態の車両1では、搭乗行為において、乗員は、基本的には、まず、その片足をステップ3R,3Lの一方3R又は3Lに載せ、この状態で、他方の足を素早く離床させて他方のステップ3L又は3Rに載せる。この時、例えば、乗員の右足をステップ3Rの載せた状態で、基体9が乗員の右側に傾いていると、左足を離床させた瞬間に、ステップ3Rが乗員から受ける荷重によって基体9がさらに右傾して、円滑な搭乗が困難となる。このため、乗員の右足をステップ3Rの載せた状態から車両1に搭乗する場合には、乗員は、基本的には、まず、右足をステップ3Rに載せたまま基体9を左側にある程度傾ける。そして、乗員は、この状態で、左足を離床させて該左足をステップ3Lに載せる。このような搭乗行為は、乗員がその左足をステップ3Lに載せた状態から車両1に搭乗する場合も同様である。
なお、降車行為においても、上記と同様の理由によって、乗員がステップ3R又は3Lに一方の足を載せたまま、他方の足をステップ3L又は3Rから離脱させる際には、その離脱させる足と同じ側に、基体9を傾けることが望ましい。
このようなことから、本実施形態では、制御ユニット50は、搭乗行為中、又は降車行為中において、X軸周り方向での基体傾斜角度目標値θb_y_objとして、基体9を搭乗中モードでの基体傾斜角度目標値θb_y_obj(=θb_y_搭乗中)に対応する姿勢よりも、乗員の右側及び左側のいずれか一方側に傾けた姿勢での角度値を設定する。そして、本実施形態では、基体9を左側に傾ける場合における上記重み係数Wthの極性を正極性、基体9を右側に傾ける場合における上記重み係数Wthの極性を負極性としている。
従って、STEP14−6の判断結果が肯定的である場合(右側のステップ3Rのみに乗員の足(右足)が載せられている場合)には、基体9を左側に傾けるべく、重み係数WthがSTEP14−7において、正極性の値に決定される。また、STEP14−6の判断結果が否定的である場合(左側のステップ3Lのみに乗員の足(左足)が載せられている場合)には、基体9を右側に傾けるべく、重み係数WthがSTEP14−8において、負極性に決定される。
補足すると、本実施形態の構造の車両1では、ステップ3R,3Lの並列方向が水平方向となるような基体9の姿勢から、該基体9を左側に傾けることによって、右側ステップ3R(より詳しくはステップ3Rの右足との接触部位)と、車輪体5の接地部(X軸周りでの足載せ部3及び基体9の傾動中心)との水平距離(X軸方向での距離)が、ステップ3R,3Lの並列方向が水平方向となる状態での当該水平距離よりも小さくなる。また、ステップ3R,3Lの並列方向が水平方向となるような基体9の姿勢から、該基体9を右側に傾けることによって、左側ステップ3L(より詳しくはステップ3Lの左足との接触部位)と、車輪体5の接地部(X軸周りでの足載せ部3及び基体9の傾動中心)との水平距離(X軸方向での距離)が、ステップ3R,3Lの並列方向が水平方向となる状態での当該水平距離よりも小さくなる。
このようにSTEP14−7又は14−8において、重み係数Wthを決定した後、制御ユニット50は、STEP14−9において、第2ゲイン調整パラメータKr2の値を“1”に設定する。さらに、制御ユニット50は、STEP14−10において、フラグFlagの値を“0”にした後、前記STEP14−11,14−12の処理を実行し、図7の処理を終了する。
前記STEP14−4の判断結果が肯定的である場合は、搭乗行為用モードの開始後、今回の制御処理周期の前の各制御処理周期において、STEP14−1,14−2,13−3の判断結果が否定的、否定的、肯定的となっていた場合、あるいは、搭乗行為用モードの開始後、今回の制御処理周期の前のいずれか1つ以上の制御処理周期で、STEP14−2の判断結果が一旦、肯定的になって、後述するSTEP14−16,14−17の処理を既に実行した場合である。
この場合には、制御ユニット50は、STEP14−5において、フラグFlagの値が“1”であるか否かを判断する。このフラグFlagは、STEP14−16,14−17の処理を既に実行したか否かを、それぞれ、値“1”、“0”で示すフラグである。そして、制御ユニット50は、STEP14−5において、Flag=0である場合には(この状況は、搭乗行為用モードの開始後、未だ、STEP14−2の判断結果が肯定的になっていない場合で、乗員が片足をステップ3R又は3Lに載せている状況である)、前記したSTEP14−6からの処理を実行し、図17の処理を終了する。
また、STEP14−5でFlag=1である場合には、制御ユニット50は、後述するSTEP14−16からの処理を実行する。
搭乗行為においては、乗員は、最終的に、その両足をステップ3R,3Lに載せる。この時、前記STEP14−2の判断結果が肯定的になる。
この場合には、制御ユニット50は、STEP14−15からの処理を実行する。すなわち、制御ユニット50は、STEP14−15において、フラグFlagの値を“1”にセットする。次いで、制御ユニット50は、STEP14−16,14−17の処理を実行し、第2ゲイン調整パラメータKr2の今回値と重み係数Wthの今回値とを前回値から変化させる。
具体的には、制御ユニット50は、STEP14−16において、Kr2の今回値を、前回値よりもあらかじめ定められた所定値Δkr1(0<Δkr1<1)だけ“0”に近づけた値(=Kr2の前回値−Δkr1)に決定する。なお、この場合、Kr2の前回値−Δkr1<0となる場合には、Kr2の今回値は“0”に設定される。
また、STEP14−17においては、制御ユニット50は、Wthの今回値を、前回値よりもあらかじめ定められた所定値Δw1(0<Δw1<1)だけ“0”に近づけた値に決定される。より詳しくは、Wthの前回値≧0である場合には、Wthの今回値は、Wthの前回値からΔw1を減算した値(ただし、Wthの前回値−Δw1<0となる場合には、“0”)に決定される。また、Wthの前回値<0である場合には、Wthの今回値は、Wthの前回値にΔw1を加算した値(ただし、Wthの前回値+Δw1<0となる場合には、“0”)に決定される。
なお、Δkr1、Δw1はそれぞれ、Kr2、Wthの変化速度(1制御処理周期毎の変化量)を規定する値としての意味を持つ。これらのΔkr1、Δw1は同じ値である必要ななく、互いに異なる値に(例えば、Δkr1<Δw1となるように)設定されていてもよい。
補足すると、乗員がその両足をステップ3R,3Lに載せた後であっても、基体9の姿勢のバランスを採るため等の理由で、乗員の片足がステップ3R又は3Lから一時的に離脱する場合もある。このような場合に、前記STEP14−5の判断結果が肯定的になり、上記STEP14−16、14−17の処理が実行されることとなる。
上記の如くSTEP14−16、14−17の処理を実行した後、次に、制御ユニット50は、上記の如く決定したWthの今回値とKr2の今回値とがいずれも“0”であるか否かをSTEP14−18で判断する。そして、この判断結果が否定的である場合には、制御ユニット50は、前記したSTEP14−11からの処理を実行し、図17の処理を終了する。また、STEP14−18の判断結果が肯定的である場合には、制御ユニット50は、STEP14−19において、次回の動作モードを搭乗行為用モードから搭乗中モードに変更する。そして、STEP14−12において、基体傾斜角度目標値θb_xy_objを決定する。
本実施形態では、上記STEP14−12では、基体傾斜角度目標値θb_xy_objは、次式11x,11yにより決定される。
θb_x_obj=(1−|Wth|)・θb_x_搭乗中
+|Wth|・θb_x_乗降 ……式11x
θb_y_obj=(1−|Wth|)・θb_y_搭乗中
+|Wth|・(sgn(Wth)・θb_y_乗降) ……式11y
なお、sgn(Wth)は、Wthの符号関数であり、Wth>0である場合に、sgn(Wth)=+1、Wth<0である場合に、sgn(Wth)=−1、Wth=0である場合にsgn(Wth)=0となる。従って、式11yの右辺の第2項に関しては、|Wth|・(sgn(Wth)・θb_y_乗降)=Wth・θb_y_乗降である。
ここで、式11xにおけるθb_x_乗降と式11yにおけるsgn(Wth)・θb_y_乗降とは、搭乗行為及び降車行為に適した基体9の傾斜角度としてあらかじめ設定された所定値の傾斜角度である。この場合、本実施形態では、Y軸周り方向でのθb_x_乗降は、Wthの極性が正極性である場合と負極性である場合とで同じ値に設定されている。
一方、X軸周り方向でのθb_y_乗降は、Wthの極性が正極性である場合(sgn(Wth)=+1となる場合)に、搭乗行為及び降車行為に適したX軸周り方向の基体9の傾斜角度として設定されている。この場合、θb_y_乗降は、基体9が左側に傾く傾斜角度であり、θb_y_乗降≠θb_y_搭乗中である。そして、本実施形態では、θb_y_乗降の符号を反転させた角度(=−θb_y_乗降)、すなわち、θb_y_乗降と同じ大きさだけ、基体9が右側に傾く傾斜角度が、Wthの極性が負極性である場合(sgn(Wth)=−1となる場合)に、搭乗行為及び降車行為に適したX軸周り方向の基体9の傾斜角度として設定されている。
従って、STEP14−12では、Y軸周り方向の基体傾斜角度目標値θb_x_objは、(1−|Wth|)、|Wth|を重みとして、θb_x_搭乗中とθb_x_乗降との重み付き平均に決定される。この場合、Wth=+1又は−1である場合には、θb_x_obj=θb_x_乗降となり、Wth=0である場合には、θb_x_obj=θb_x_搭乗中である。そして、|Wth|が“1”から“0”に近づいていくに伴い、θb_x_objは、θb_x_乗降からθb_x_搭乗中に近づいていく。
なお、θb_x_乗降は、例えば、θb_x_搭乗中に一致していてもよい。この場合には、式11xにより決定されるθb_x_objは、Wthの値によらずに、常に、θb_x_搭乗中に一致する。
また、搭乗行為用モードにおけるX軸周り方向の基体傾斜角度目標値θb_y_objは、θb_x_搭乗中と(sgn(Wth)・θb_y_乗降)との重み付き平均に決定される。この場合、Wth=+1又は−1である場合には、θb_y_obj=+θb_y_乗降又は−θb_y_乗降となり、Wth=0である場合には、θb_y_obj=θb_y_搭乗中である。そして、|Wth|が“1”から“0”に近づいていくに伴い、θb_y_objは、θb_y_乗降からθb_y_搭乗中に近づいていく。
補足すると、本実施形態では、θb_y_乗降りは、実際の基体傾斜角度θb_yが+θb_y_乗降りに一致している状態で、X軸方向で見たときの右側のステップ3Rの位置が、車輪体5の接地部(X軸周りでの足載せ部3及び基体9の傾動中心)の直上位置(鉛直方向上方の位置)もしくはこれに近い位置になると共に、実際の基体傾斜角度θb_yが−θb_y_乗降りに一致している状態で、X軸方向で見たときの左側のステップ3Lの位置が、車輪体5の接地部の直上位置もしくはこれに近い位置になるように設定されている。
以上が搭乗行為用モードでのSTEP14の処理の詳細である。
以上の処理によりSTEP11で判断する今回の動作モードが搭乗行為用モードに設定されている場合には、基本的には、次のように、第2ゲイン調整パラメータKr2と基体傾斜角度目標値θb_xy_objとが決定される。
すなわち、乗員が搭乗行為を開始すべくその片足をステップ3R又は3Lに載せると、第2ゲイン調整パラメータKr2は、“1”に設定される。この状況では、前記式09x,09yによりそれぞれ決定される第iゲイン係数Ki_x,Ki_y(i=1,2,3)は、それぞれ、Ki_b_x(=Gi_x_搭乗行為)、Ki_b_y(=Gi_y_搭乗行為)となる。従って、Ki_x,Ki_yのそれぞれの絶対値は、搭乗中モードよりも小さい値となる。
さらに、この状況では、重み係数Wthが“1”又は“−1”に設定される。このため、前記式11x,11yにより決定される基体傾斜角度目標値θb_xy_objのうちのY軸周り成分θb_x_objがθb_x_乗降に設定されると共に、X軸周り成分θb_y_objが、左側又は右側に基体9が傾斜する角度である+θb_y乗降又は−θb_y乗降に設定される。より詳しくは、乗員の右足がステップ3Rに載っている場合には、左側傾斜の+θb_y乗降がθb_y_objとして設定され、乗員の左足がステップ3Lに載っている場合には、右側傾斜の−θb_y乗降がθb_y_objとして設定される。
なお、Kr2とθb_xy_objとは、乗員の片足だけがステップ3R又は3Lに載せられている状態では、一定に保持される。
次いで、上記の如く乗員の片足だけがステップ3R又は3Lに載せられている状態で、乗員が搭乗行為を完了すべく、残りの足(着床させていた足)をステップ3L又は3Rに載せると、Kr2の値は、その後、徐々に“1”から“0”に近づいていくように決定される。なお、Kr2の値が“0”に到達するまでに要する時間は、前記所定値Δkr1により規定される。
この状況では、前記式09xにより決定される第iゲイン係数Ki_x(i=1,2,3)は、Gi_x_搭乗行為から、その絶対値が徐々に増加しつつ、Gi_x_搭乗中に近づいていく。同様に、前記式09yにより決定される第iゲイン係数Ki_y(i=1,2,3)は、Gi_y_搭乗行為から、その絶対値が徐々に増加しつつ、Gi_y_搭乗中に近づいていく。この場合、Ki_x,Ki_yがそれぞれGi_x_搭乗中、Gi_y_搭乗中に達するまでは、Ki_x,Ki_yのそれぞれの絶対値は、搭乗中モードよりも小さい値に保たれる。
また、この状況では、重み係数Wthが“1”又は“−1”から“0”に近づいていくように決定される。このため、前記式11xにより決定されるY軸周り方向の基体傾斜角度目標値θb_x_objは、θb_x_乗降から搭乗中モード用の設定値θb_x_搭乗中に徐々に近づいていくように決定される。さらに、前記式11yにより決定されるX軸周り方向の基体傾斜角度目標値θb_y_objは、+θb_y乗降又は−θb_y乗降から搭乗中モード用の設定値θb_y_搭乗中に徐々に近づいていくように決定される。なお、θb_x_obj,θb_y_objがそれぞれθb_x_搭乗中、θb_y_搭乗中に到達するまでの時間は、前記所定値Δw1により規定される。
補足すると、θb_x_乗降=θb_x_搭乗中とした場合には、θb_x_objは変化せず、θb_x_搭乗中に保たれる。
また、搭乗行為中は、乗員は、基本的には、把持部15R,15Lのうちの少なくともいずれか一方を把持する。
次いで、最終的に、Kr2が“0”まで変化し、且つ、Wthが“0”まで変化(ひいてはθb_xy_objがθb_xy_搭乗中まで変化)すると、次回の制御処理周期での動作モードが搭乗中モードに変更される。従って、乗員が搭乗行為を完了すべく、その両足をステップ3R,3Lに載せても、Kr2が“0”になり、且つ、θb_xy_objがθb_xy_搭乗中になるまでは、動作モードは搭乗行為用モードに維持される。
なお、搭乗行為用モードの開始後、乗員が未だ、その片足をステップ3R又は3Lに載せていない状態(STEP14−3の判断結果が肯定的になる場合)には、第2ゲイン調整パラメータKr2は、“1”に設定される。従って、前記式09x,09yによりそれぞれ決定される第iゲイン係数Ki_x,Ki_y(i=1,2,3)は、それぞれ、Ki_b_x(=Gi_x_搭乗行為)、Ki_b_y(=Gi_y_搭乗行為)となる。一方、この状況では、重み係数Wthは暫定的に“0”に設定されるので、基体傾斜角度目標値θb_xy_objは暫定的に搭乗中モードと同じ値(=θb_xy_搭乗中)に設定される。なお、この状況での基体傾斜角度目標値θb_xy_objを自立モードと同じ値(=θb_xy_自立)に設定してもよい。
また、搭乗行為用モードで、乗員が搭乗/降車用操作子58の降車用操作部58bがON操作された場合には、前回の制御処理周期での動作モード(直前の動作モード)が、自立モードである場合には、今回の動作モードが強制的に自立モードに変更され、第iゲイン係数Ki_x,Ki_y(i=1,2,3)と、基体傾斜角度目標値θb_xy_objとが、それぞれ、自立モードと同じ値に設定される。そして、次回の制御処理周期での動作モードが自立モードに変更される。
また、前回の制御処理周期での動作モード(直前の動作モード)が、自立モードでない場合(搭乗行為用モードである場合)には、Kr2は前回値と同じ値に保持される。ひいては、第iゲイン係数Ki_x,Ki_y(i=1,2,3)が前回値と同じ値に保持される。さらに、基体傾斜角度目標値θb_xy_objも、前回値と同じ値に保持される。そして、次回の制御処理周期での動作モードが降車行為用モードに変更される。
次に、今回の動作モードが降車行為用モードである場合の処理であるSTEP15の処理は、図19のフローチャートに示すサブルーチン処理により実行される。
この処理では、制御ユニット50は、まず、前記STEP3で取得した荷重センサ54R,54Lの出力に基づいて、前記STEP14−2と同じ判断処理をSTEP15−1で実行し、左右の両ステップ3R,3LがON状態であるか否かを判断する。
そして、この判断結果が肯定的である場合、すなわち、乗員の両足が、未だ、ステップ3R,3Lに載せられており、実質的な降車行為が開始されていない場合には、制御ユニット50は、STEP15−10において、降車行為における重み係数Wthの目標値Wthaimと、第2ゲイン調整パラメータKr2の目標値Kr2aimとをそれぞれ“0”に設定する。そして、制御ユニット50は、後述するSTEP15−7からの処理を実行する。
STEP15−1の判断結果が否定的である場合には、制御ユニット50は、前記STEP14−3と同じ判断処理をSTEP15−2で実行し、両ステップ3R,3LがいずれもOFF状態であるか否かを判断する。
この判断結果が肯定的となる場合は、乗員がその両足をステップ3R,3Lから離脱させ、実質的に降車行為が終了した状態である。この場合には、制御ユニット50は、STEP15−11において、今回の動作モードを降車行為用モードから自立モードに強制的に変更する。
さらに、制御ユニット50は、前記STEP14−22〜14−24と同じ処理をSTEP15−12〜15−14で実行し、図19の処理を終了する。すなわち、制御ユニット50は、第2ゲイン調整パラメータKr2の値を“0”にすることと、基体傾斜角度目標値θb_xy_objとして、自立モード用の設定値θb_xy_自立を設定することと、次回の動作モードを自立モードにすることとを、それぞれ、STEP15−12〜15−14で実行する。
STEP15−2の判断結果が否定的となる場合は、降車行為の途中の状況(詳しくは、乗員がその片足だけをステップ3R又は3Lに載せている状況)である。この場合には、制御ユニット50は、次に右側のステップ3RがON状態であるか否か、すなわち、ステップ3R,3Lのうちの右側のステップ3Rのみに乗員の足(右足)が載せられているか否かをSTEP15−3で判断する。そして、この判断結果が肯定的である場合には、制御ユニット50は、STEP15−4で重み係数Wthの目標値Wthaimを“1”とする。また、STEP15−3の判断結果が否定的である場合(左側のステップ3Lのみに乗員の足(左足)が載せられている場合)には、制御ユニット50は、STEP15−5で重み係数Wthの目標値Wthaimを“−1”とする。
このように重み係数Wthの目標値Wthaimを決定した後、制御ユニット50は、STEP15−6において、第2ゲイン調整パラメータKr2の目標値Kr2aimを“1”に設定する。
以上のようにSTEP15−6の処理を実行した後、あるいは、前記STEP15−10の処理を実行した後、制御ユニット50は、次にSTEP15−7の処理を実行し、第2ゲイン調整パラメータKr2の今回値と、重み係数Wthの今回値とを決定する。
具体的には、制御ユニット50は、Kr2の今回値を、前回値よりもあらかじめ定められた所定値Δkr2(0<Δkr2<1)だけ目標値Kr2aim(=0又は1)に近づけた値に決定する。より詳しくは、Kr2の前回値≧Kr2aimである場合には、Kr2の今回値は、Kr2の前回値からΔkr2を減算した値(ただし、その減算結果の値がKr2aimよりも小さくなった場合には、Kr2aim)に決定される。また、Kr2の前回値<Kr2aimである場合には、Kr2の今回値は、Kr2の前回値にΔkr2を加算した値(ただし、その加算結果の値がKr2aimよりも大きくなった場合には、Kr2aim)に決定される。
また、制御ユニット50は、Wthの今回値を、前回値よりもあらかじめ定められた所定値Δw2(0<Δw2<1)だけ目標値Wthaim(=0又は1又は−1)に近づけた値に決定される。より詳しくは、Wthの前回値≧Wthaimである場合には、Wthの今回値は、Wthの前回値からΔw2を減算した値(ただし、その減算結果の値がWthaimよりも小さくなった場合には、Wthaim)に決定される。また、Wthの前回値<Wthaimである場合には、Wthの今回値は、Wthの前回値にΔw2を加算した値(ただし、その加算結果の値がWthaimよりも大きくなった場合には、Wthaim)に決定される。
なお、Δkr2とΔw2とは同じ値である必要ななく、互いに異なる値に設定されていてもよい。また、Δkr2、Δw2は、それぞれ、搭乗行為用モードでの前記STEP14−16で使用するΔkr1、前記STEP14−17で使用するΔw1と同じ値である必要はない。
次いで、制御ユニット50は、前記STEP14−12と同じ処理をSTEP15−8で実行することによって、基体傾斜角度目標値θb_xy_objを決定する。すなわち、重み係数Wthに応じて、前記式11x、11yによりそれぞれ、θb_x_objとθb_y_objとを決定する。
次いで、制御ユニット50は、STEP15−9において、次回の動作モードを現在の動作モード(=降車行為用モード)に保持し、図19の処理を終了する。
以上が降車行為用モードでのSTEP15の処理の詳細である。
以上の処理によりSTEP11で判断する今回の動作モードが降車行為用モードに設定されている場合には、基本的には、次のように、第2ゲイン調整パラメータKr2と基体傾斜角度目標値θb_xy_objとが決定される。
すなわち、降車行為用モードの開始後、乗員がその両足をステップ3R,3Lに載せたままの状態では、第2ゲイン調整パラメータKr2の目標値Kr2aimが“0”に設定されると共に、重み係数Wthの目標値Wthaimが“0”に設定される。
この状況では、Kr2は基本的には、“0”に保持される。このため、前記式09x,09yによりそれぞれ決定される第iゲイン係数Ki_x,Ki_y(i=1,2,3)は、それぞれ、搭乗中モードと同じ値(Gi_x_搭乗中、Gi_y_搭乗中)となる。
また、この状況では、Wthも基本的には、“0”に保持される。このため、前記式11x,11yにより決定される基体傾斜角度目標値θb_xy_objは、基本的には搭乗中モードと同じ値θb_xy_搭乗中になる。従って、この状況での車両1の制御状態は、実質的に、搭乗中モードと同等である。
次いで、乗員が降車行為を開始すべくその片足をステップ3R又は3Lから離脱させると、Kr2の目標値Kr2aimが“1”に設定される。そして、Kr2の値は、Kr2aim(=1)に近づいていくように決定される。従って、この状況では、前記式09xにより決定される第iゲイン係数Ki_x(i=1,2,3)は、その絶対値が徐々に減少しつつ、Gi_x_降車行為(これは、本実施形態では、Gi_x_搭乗行為に一致する)に近づいていく。同様に、前記式09yにより決定される第iゲイン係数Ki_y(i=1,2,3)は、その絶対値が徐々に減少しつつ、Gi_y_降車行為(これは、本実施形態では、Gi_y_搭乗行為に一致する)に徐々に近づいていく。この場合、Ki_x,Ki_yのそれぞれの絶対値は、搭乗中モードよりも小さい値に保たれる。
なお、この状況でのKr2の変化速度(1制御処理周期当たりの変化量)、ひいては、各第iゲイン係数Ki_x,Ki_yの変化速度は、前記所定値Δkr2により規定される。
また、この状況では、Wthの目標値Wthaimが“+1”又は“−1”に設定される。そして、Wthの値は、Wthaim(“+1”又は“−1”)に近づいていくように決定される。このため、前記式11xにより決定されるY軸周り方向の基体傾斜角度目標値θb_x_objは、θb_x_乗降に徐々に近づいていくように決定される。さらに、前記式11yにより決定されるX軸周り方向の基体傾斜角度目標値θb_y_objは、+θb_y乗降又は−θb_y乗降に徐々に近づいていくように決定される。より詳しくは、乗員の右足がステップ3Rに載っている場合には、左側傾斜の+θb_y乗降に近づいていくようにθb_y_objが設定され、乗員の左足がステップ3Lに載っている場合には、右側傾斜の−θb_y乗降に近づいていくようにθb_y_objが設定される。なお、θb_x_obj,θb_y_objがそれぞれの変化速度(1制御処理周期当たりの変化量)は、前記所定値Δw2により規定される。
補足すると、θb_x_乗降=θb_x_搭乗中とした場合には、θb_x_objは変化せず、θb_x_搭乗中に保たれる。
次いで、乗員が降車行為を完了すべく、ステップ3R又は3Lに載せていた片足を該ステップ3R又は3Lから離脱させると、今回の動作モードが強制的に自立モードに変更され、第iゲイン係数Ki_x,Ki_y(i=1,2,3)と、基体傾斜角度目標値θb_xy_objとが、それぞれ、自立モードと同じ値に設定される。そして、次回の制御処理周期での動作モードが自立モードに変更される。
なお、本実施形態では、降車行為用モードでは、例えば搭乗/降車用操作子58の搭乗用操作部58aがON操作されても、それに応じた処理が行われることはない。このため、本実施形態では、降車行為用モードでは、乗員がその両足をステップ3R,3Lから離脱させて、実質的な降車行為を完了しない限り(STEP15−2の判断結果が肯定的にならない限り)、次回の制御処理周期での動作モードが降車行為用モードから自立モードに変更されないようになっている。
補足すると、降車行為中は、搭乗行為中と同様に、乗員は、基本的には、把持部15R,15Lのうちの少なくともいずれか一方を把持する。
以上が、STEP4の処理の詳細である。
次に、本実施形態の車両1の作動に関して説明する。
まず、車両1の動作モードが前記搭乗中モード又は自立モードである場合の作動を説明する。
前記搭乗モード及び自立モードのいずれの動作モードにおいても、基本的には、基体9の姿勢が、前記基体傾斜角度偏差計測値θbe_x_s,θbe_y_sの両方が“0”となる姿勢(以下、この姿勢を基本姿勢という)に保たれるように、換言すれば、車両系重心点(車両・乗員全体重心点又は車両単体重心点)の位置が、車輪体5の接地面のほぼ真上に位置する状態に保たれるように、操作量(制御入力)としての仮想車輪回転角加速度指令ωwdot_xy_cmdが決定される。より詳しく言えば、基体9の姿勢を前記基本姿勢に保ちつつ、車両系重心点の移動速度の推定値としての重心速度推定値Vb_xy_sを制御用目標重心速度Vb_xy_mdfdに収束させるように、仮想車輪回転角加速度指令ωwdot_xy_cmdが決定される。なお、制御用目標重心速度Vb_xy_mdfdは、前記した如く、通常は“0”である。この場合には、基体9の姿勢を前記基本姿勢に保ちつつ、車両系重心点がほぼ静止するように、仮想車輪回転角加速度指令ωwdot_xy_cmdが決定されることとなる。
そして、ωwdot_xy_cmdの各成分を積分してなる仮想車輪回転角速度指令ωw_xy_cmdを変換してなる電動モータ31R,31Lのそれぞれの回転角速度が、電動モータ31R,31Lの速度指令ω_R_cmd,ω_L_cmdとして決定される。さらに、その速度指令ω_R_cmd,ω_L_cmdに従って、各電動モータ31R,31Lの回転速度が制御される。ひいては車輪体5のX軸方向及びY軸方向のそれぞれの移動速度が、ωw_x_cmdに対応する仮想車輪62_xの移動速度と、ωw_y_cmdに対応する仮想車輪62_yの移動速度とに各々一致するように制御される。
このため、例えば、Y軸周り方向で、実際の基体傾斜角度θb_xが目標値θb_x_objから前傾側にずれると、そのずれを解消すべく(θbe_x_sを“0”に収束させるべく)、車輪体5が前方に向かって移動する。同様に、実際のθb_xが目標値θb_x_objから後傾側にずれると、そのずれを解消すべく(θbe_x_sを“0”に収束させるべく)、車輪体5が後方に向かって移動する。
また、例えば、X軸周り方向で、実際の基体傾斜角度θb_yが目標値θb_y_objから右傾側にずれると、そのずれを解消すべく(θbe_y_sを“0”に収束させるべく)、車輪体5が右向きに移動する。同様に、実際のθb_yが目標値θb_y_objから左傾側にずれると、そのずれを解消すべく(θbe_y_sを“0”に収束させるべく)、車輪体5が左向きに移動する。
さらに、実際の基体傾斜角度θb_x,θb_yの両方が、それぞれ目標値θb_x_obj,θb_y_objからずれると、θb_xのずれを解消するための車輪体5の前後方向の移動動作と、θb_yのずれを解消するための車輪体5の左右方向の移動動作とが合成され、車輪体5がX軸方向及びY軸方向の合成方向(X軸方向及びY軸方向の両方向に対して傾斜した方向)に移動することとなる。
このようにして、基体9が前記基本姿勢から傾くと、その傾いた側に向かって、車輪体5が移動することとなる。従って、例えば前記搭乗中モードにおいて、乗員が意図的にその上体を傾けると、その傾けた側に、車輪体5が移動することとなる。
なお、基体9の姿勢が基本姿勢に収束すると、車輪体5の移動もほぼ停止する。また、例えば、基体9のY軸周り方向の傾斜角度θb_xを基本姿勢から傾いた一定の角度に維持すると、車輪体5のX軸方向の移動速度は、その角度に対応する一定の移動速度(制御用目標重心速度Vb_x_mdfdと一定の定常偏差を有する移動速度)に収束する。このことは、基体9のX軸周り方向の傾斜角度θb_yを基本姿勢から傾いた一定の角度に維持した場合も同様である。
また、例えば基体9の前記基本姿勢からの傾き量(基体傾斜角度偏差計測値θbe_x_s,θbe_y_s)が比較的大きくなり、それを解消し、もしくはその傾き量を維持するために必要な車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度(これらの移動速度は、それぞれ、図12に示した前記重心速度定常偏差予測値Vb_x_prd、Vb_y_prdに相当する)が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になるような状況では、該車輪体5の移動速度に対して逆向きとなる速度(詳しくは、Vw_x_lim2−Vb_x_prd及びVw_y_lim2−Vb_y_prd)が制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。そして、制御入力を構成する操作量成分のうちの操作量成分u3_x,u3_yが、この制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sをそれぞれ収束させるように決定される。このため、基体9の前記基本姿勢からの傾き量が過大になるのを予防し、ひいては、電動モータ31R,31Lの一方又は両方の回転角速度が高速になり過ぎるのが防止される。
さらに、前記ゲイン調整部78では、重心速度推定値Vb_x_s,Vb_y_sの一方又は両方が大きくなり、ひいては、基体9の前記基本姿勢からの傾きを解消し、もしくはその傾き量を維持するために必要な車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になる恐れがある状況では、その逸脱が顕著になるほど(詳しくは、図10に示すVover_x,Vover_yの絶対値が大きくなるほど)、前記第1ゲイン調整パラメータKr1_x,Kr1_yの一方又は両方が“0”から“1”に近づけられる。
この場合、前記式09xにより算出される各第iゲイン係数Ki_x(i=1,2,3)の絶対値は、Kr_xが“1”に近づくほど、大きくなる。このことは、前記式09yにより算出される各第iゲイン係数Ki_y(i=1,2,3)についても同様である。
そして、上記ゲイン係数の絶対値が大きくなることによって、基体9の傾きの変化に対する操作量(仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmd)の感度が高まる。従って、基体9の基本姿勢からの傾き量が大きくなろうとすると、それを素早く解消するように、車輪体5の移動速度が制御されることとなる。従って、基体9が基本姿勢から大きく傾くことが強めに抑制され、ひいては、車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になるのを防止することができる。
次に、車両1の動作モードが前記搭乗行為用モード又は降車行為用モードである場合の作動を説明する。
搭乗行為用モードと降車行為用モードとにおいて、基本的には、乗員がその片足だけをステップ3R又は3Lに載せている状況では、前記式07x,07yで使用する第iゲイン係数Ki_x,Ki_y(i=1,2,3)がいずれも、その絶対値が搭乗中モードよりも小さい値になるように設定される。
この状況では、基体9及び足載せ部3(搭乗部)の実際の傾斜角度が変化しても、車輪体5の移動動作を制御するための制御用操作量である仮想車輪回転角加速度指令ωwdot_xy_cmdの変化は搭乗中モードに比して微小なものとなる。ひいては、基体3及び足載せ部3の実際の傾斜角度の変化に対する、車輪体5の移動加速度の変化の感度が搭乗中モードよりも小さくなる。このため、基体9及び足載せ部3を基本姿勢から傾けた状態であっても、車輪体5の移動が生じないか、もしくは、生じ難い状態となる。
従って、搭乗行為用モードと降車行為用モードとにおいて、乗員がその片足だけをステップ3R又は3Lに載せている状況では、車輪体5が動かないか、もしくは動き難い状態を保ちつつ、基体9及び足載せ部3を搭乗行為又は降車行為に適した姿勢に傾けることが容易になる。
加えて、本実施形態では、乗員が右側のステップ3Rに片足を載せた状態では、基体傾斜角度目標値θb_y_objが、基体9が左側に傾く角度(搭乗行為用モードでは、+θb_y_乗降り、降車行為用モードでは、θb_y_搭乗中よりも+θb_y_乗降側に傾けた角度)に設定される。換言すれば、この状態では、基体傾斜角度目標値θb_y_objが、X軸方向で見たときに、右側のステップ3Rが車輪体5の接地部の直上位置により近づくような角度に設定される。また、乗員が左側のステップ3Lに片足を載せた状態では、基体傾斜角度目標値θb_y_objが、基体9が右側に傾く角度(搭乗行為用モードでは、−θb_y_乗降り、降車行為用モードでは、θb_y_搭乗中よりも−θb_y_乗降側に傾けた角度)に設定される。換言すれば、この状態では、基体傾斜角度目標値θb_y_objが、X軸方向で見たときに、左側のステップ3Lが車輪体5の接地部の直上位置により近づくような角度に設定される。このため、基体9及び足載せ部3の姿勢を搭乗行為又は降車行為に適した姿勢に保ちやすくなる。
この結果、車輪体5が動かないか、もしくは動き難い状態を保ちつつ、搭乗行為又は降車行為を行なうことが容易になる。
ここで、本実施形態の車両1と本発明との対応関係を補足しておく。
本実施形態では、車両1に搭乗する乗員の前後方向(X軸方向)、左右方向(Y軸方向)が、それぞれ、本発明における第1の方向、第2の方向に相当する。
そして、制御ユニット50が実行する図7の処理により、本発明における移動動作部制御手段が実現される。なお、前記搭乗行為用モードと降車行為用モードとが本発明における過渡期用モードに相当する。
また、搭乗中モード用の基体傾斜角度の設定値θb_xy_搭乗中が本発明における第1目標傾斜角度に相当し、搭乗行為用モード又は降車行為用モードで使用する基体傾斜角度の設定値θb_xy_乗降が、本発明における過渡期用目標傾斜角度に相当する。
また、荷重センサ54R,54Lが本発明における足載せ検知手段手段に相当し、搭乗/降車用操作子58が本発明における操作子に相当する。
次に、以上説明した実施形態に係わる変形態様に関していくつか説明しておく。
前記実施形態では、|Gi_x_搭乗行為|<|Gi_x_搭乗中A|、|Gi_y_搭乗行為|<|Gi_y_搭乗中A|とし、搭乗行為用モードと降車行為用モードとにおいて、X軸方向に関する各第iゲイン係数Ki_x(i=1,2,3)と、Y軸方向に関する各第iゲイン係数Ki_y(i=1,2,3)とが、いずれも、その絶対値が搭乗中モードより小さくなるようにした。
ただし、例えば、Y軸方向に関しては、|Gi_y_搭乗行為|<|Gi_y_搭乗中A|とする一方、X軸方向に関しては、Gi_x_搭乗行為をGi_x_搭乗中Aに一致もしくはほぼ一致させ、搭乗行為用モードにおいて、X軸方向に関する各第iゲイン係数Ki_x(i=1,2,3)が搭乗中モードと一致又はほぼ一致するようにしてもよい。同様に、Y軸方向に関しては、|Gi_y_降車行為|<|Gi_y_搭乗中A|とする一方、X軸方向に関しては、Gi_x_降車行為をGi_x_搭乗中Aに一致もしくはほぼ一致させ、降車行為用モードにおいて、X軸方向に関する各第iゲイン係数Ki_x(i=1,2,3)が搭乗中モードと一致又はほぼ一致するようにしてもよい。
すなわち、本実施形態の如く、足載せ部3(ステップ3R,3L)に搭乗する車両1では、搭乗行為や降車行為を行い易くするためには、特に、X軸周り方向で基体9及び足載せ部3を傾け易いことが好ましく、Y軸周り方向での傾きは一般には、搭乗中モードでの基体傾斜角度目標値θb_x_objと同程度でよい。従って、上記の如く、搭乗行為用モード、あるいは、降車行為用モードにおいて、X軸方向に関する各第iゲイン係数Ki_x(i=1,2,3)が搭乗中モードと一致又はほぼ一致するようにしてもよい。
また、前記実施形態では、搭乗行為用モードと降車行為用モードとにおいて、各第iゲイン係数Ki_x,Ki_y(i=1,2,3)が、いずれも、その絶対値が搭乗中モードより小さくなるようにしたが、例えば、次のようにしてもよい。すなわち、例えば、搭乗行為用モード又は降車行為用モードにおいて、Y軸方向でのゲイン係数Ki_y(i=1,2,3)に関し、第3ゲイン係数K3_yを搭乗中モードでの値に一致又はほぼ一致させ、第1ゲイン係数K1_yと第2ゲイン係数K2_yとを、その絶対値が搭乗中モードよりも小さくなるようにしてもよい。例えば、搭乗行為用モード又は降車行為用モードでのK1_y及びK2_yを“0”もしくはこれに近い値に設定してもよい。このようにゲイン係数Ki_y(i=1,2,3)を設定することは、搭乗行為用モードにおいては、前記実施形態における|G1_y_搭乗行為|<|G1_y_搭乗中A|、|G2_y_搭乗行為|<|G2_y_搭乗中A|、|G3_y_搭乗行為|≒|G3_y_搭乗中A|となるようにGi_y_搭乗行為を設定しておくことによって実現することができる。また、降車行為用モードにおいては、前記実施形態におけるG1_y_降車行為をGi_y_搭乗行為と同様に設定しておけばよい。
このようにすることによって、搭乗行為用モード又降車行為用モードにおいて、基体9及び足載せ部3のX軸周りでの傾斜角度の変化に対する車輪体5の移動速度の変化の感度を小さくすることができる。
なお、基体9及び足載せ部3のX軸周りでの傾斜角度の変化に対する車輪体5の移動速度の変化の感度をより小さくすることは、基本的には、第3ゲイン係数K3_yの絶対値に対する第1ゲイン係数K1_yの絶対値の比率|K1_x|/|K3_x|を小さくすることで実現することができる。
また、搭乗行為用モード又は降車行為用モードにおいて、X軸方向でのゲイン係数Ki_x(i=1,2,3)に関し、上記と同様に、第3ゲイン係数K3_xを搭乗中モードでの値に一致又はほぼ一致させ、第1ゲイン係数K1_xと第2ゲイン係数K2_xとを、その絶対値が搭乗中モードよりも小さくなるように設定してもよい。このようにすることによって、搭乗行為用モード又は降車行為用モードにおいて、基体9及び足載せ部3のY軸周りでの傾斜角度の変化に対する車輪体5の移動速度の変化の感度を小さくすることができる。
また、前記実施形態の如くゲイン係数の値を、搭乗行為用モード及び降車行為用モードにおいて、搭乗中モードと異ならせることに代えて、次のようにしてもよい。すなわち、搭乗行為用モード又は降車行為用モードにおいて、少なくとも乗員がその片足のみをステップ3R又は3Lに載せている状態において、電動モータ31R,31Lを回転停止状態に維持するように、ひいては、車輪体5が移動停止状態に保持されるように該電動モータ31R,31Lを制御するようにしてもよい。
あるいは、例えば搭乗行為用モード又は降車行為用モードにおいて、前記重心速度制限部76におけるリミット処理部100での各電動モータ31R,31Lの回転角速度の許容範囲を“0”に設定し、リミット処理部100の出力値が“0”に保持されるようにしてもよい。このようにした場合には、搭乗行為用モード又は降車行為用モードにおいて、基体傾斜角度によらずに、重心速度推定値Vb_x_s,Vb_y_sが“0”に収束するように車輪体5の移動動作が制御される。このため、搭乗行為用モード又は降車行為用モードにおける車輪体5の移動速度を“0”に収束させ、基体傾斜角度によらずに、該車輪体5が動かないようにすることができる。
また、前記実施形態では、前記式07x、07yにより制御用操作量としての仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdを算出するようにしたが、例えば、式07x、07yの右辺の第2項を省略した式によって、ωwdot_x_cmd,ωwdot_y_cmdを算出するようにしてもよい。
また、前記実施形態では、図1及び図2に示した構造の車両1を例示したが、本発明における倒立振子型車両1は、本実施形態で例示した車両に限られるものではない。
具体的には、本実施形態の車両1の移動動作部としての車輪体5は一体構造のものであるが、例えば、前記特許文献3の図10に記載されているような構造のものであってもよい。すなわち、剛性を有する円環状の軸体に、複数のローラをその軸心が該軸体の接線方向に向くようにして回転自在に外挿し、これらの複数のローラを軸体に沿って円周方向に配列させることによって、車輪体を構成してもよい。
さらに移動動作部は、例えば、特許文献2の図3に記載されているようなクローラ状の構造のものであってもよい。
あるいは、例えば、前記特許文献2の図5、特許文献3の図7、もしくは特許文献1の図1に記載されているように、移動動作部を球体により構成し、この球体を、アクチュエータ装置(例えば前記車輪体5を有するアクチュエータ装置)によりX軸周り方向及びY軸周り方向に回転駆動するように車両を構成してもよい。
このように本発明は、前記特許文献1〜3等に見られる如き、各種の構造の倒立振子型車両に適用することが可能である。
さらには、本発明における倒立振子型車両は、移動動作部を複数(例えば、左右方向に2つ、あるいは、前後方向に2つ、あるいは、3つ以上)備えていてもよい。
また、移動動作部は、全方向に移動可能である必要はなく、1方向にのみ移動可能なものであってもよい。この場合、搭乗部(例えば足載せ部)は、1軸周りでのみ傾動自在に基体に組付けられておればよい。例えば、前記実施形態での車輪体5の代わりに、X軸方向(乗員の前後方向)にのみ移動可能で、且つ、X軸周り方向での傾動が不能である(又は傾動し難い)移動動作部(例えば、Y軸方向の軸周りにのみ回転自在な複数の車輪をY軸方向に同軸心に並列させてなる移動動作部)を車両1に備えてもよい。そして、この場合、運搬対象物体の搭載部をY軸方向の軸周りにのみ傾動自在とし、その傾動に応じて移動動作部がX軸方向に移動するようにしてもよい。
また、本発明における倒立振子型車両は、基体が乗員の搭乗部と共に傾動することは必須ではない。例えば、複数の移動動作部を有する場合に、これらの移動動作部を組付ける基体が床面に対して傾動しないようにすると共に、この基体に対して搭乗部を傾動自在に組付けるようにしてもよい。