(57)【要約】【課題】空転検知可能な移動動作部の構成の限定が少なく、検知可能な空転の限定が少ない空転検知を行なうことが可能な倒立振子型車両の制御装置を提供する。【解決手段】制御ユニット５０は、車輪体５の制御用操作量を決定し、その決定した制御用操作量に応じた車輪体５の移動動作をアクチュエータ装置７を介して制御する。そして、制御ユニット５０により車輪体５の移動動作が制御されることによる基体９の傾斜角速度の予測値θbdot_xy_sと、基体９の傾斜角速度の計測値θbdot_xy_expとに少なくとも基づいて、車輪体５の空転発生を検知する。【選択図】図１
2011105070.tif 000002
【特許請求の範囲】
【請求項１】
床面上を移動可能な移動動作部と、該移動動作部を駆動するアクチュエータ装置と、該移動動作部及びアクチュエータ装置が組付けられた基体と、鉛直方向に対して傾動自在に前記基体に組付けられた傾動部とを備えた倒立振子型車両の制御装置であって、
前記傾動部の実際の傾斜角速度に応じた出力を生成する傾斜角速度計測手段と、
前記移動動作部の制御用操作量を決定し、その決定した制御用操作量に応じて前記移動動作部の移動動作を前記アクチュエータ装置を介して制御する移動動作部制御手段と、
前記移動動作部制御手段により前記移動動作部の移動動作が制御されることによる前記移動動作部の移動運動状態に基づいて、前記傾動部の傾斜角速度の予測値を算出する傾斜角速度予測値算出手段と、
前記傾斜角速度計測手段の出力が示す前記傾動部の傾斜角速度の計測値と前記傾斜角速度予測値算出手段が算出した前記傾動部の傾斜角速度の予測値とに少なくとも基づいて、前記移動動作部の空転発生を検知する空転検知手段とを備えることを特徴とする倒立振子型車両の制御装置。
【請求項２】
請求項１記載の倒立振子型車両の制御装置において、
前記傾斜角速度予測手段は、前記制御用操作量に基づく前記移動動作部の移動運動と前記傾動部の傾斜運動との関係を表す前記車両のモデルを用いて、前記制御用操作量から前記傾動部の傾斜角加速度の予測値を求め、その求めた傾斜角加速度の予測値を積分して前記傾動部の傾斜角速度の予測値を算出することを特徴とする倒立振子型車両の制御装置。
【請求項３】
請求項２記載の倒立振子型車両の制御装置において、
前記傾動部の実際の傾斜角度に応じた出力を生成する傾斜角度計測手段を備え、
前記傾斜角速度予測手段は、前記傾動部の傾斜角度及び傾斜角加速度と、前記移動動作部制御手段が前記制御用操作量として決定した前記移動動作部の運動加速度とを前記車両のモデルとして用いて、前記傾動部の傾斜角加速度の予測値を求めることを特徴とする倒立振子型車両の制御装置。
【請求項４】
請求項１から３のいずれか１項記載の倒立振子型車両の制御装置において、
前記移動動作部は、床面上を回転自在に構成されており、
前記空転検知手段は、前記移動動作部の回転角速度と所定の閾値とを比較し、前記移動動作部の回転角速度が前記所定の閾値より小さいことが肯定的になった場合、前記移動動作部の空転発生を否定することを特徴とする倒立振子型車両の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、床面上を移動可能な倒立振子型車両の制御装置に関する。
【背景技術】
【０００２】
倒立振子型車両は、床面上を移動する移動動作部と、この移動動作部を駆動するアクチュエータ装置とが組付けられた基体に、鉛直方向に対して傾動自在な傾動部が乗員の搭乗部として組付けられた車両であり、搭乗部の傾斜角度をある目標角度に保つために（搭乗部が傾倒しないようにするために）、倒立振子の支点を動かすような形態で、移動動作部を移動させる必要がある車両である。
【０００３】
そして、この種の倒立振子型車両の制御技術としては、例えば、特許文献１に見られるものが本願出願人により提案されている。
【０００４】
この特許文献１には、乗員の搭乗部が組付けられた車両の基体が球体状の移動動作部に対して前後方向の軸周りと左右方向の軸周りとの２軸周りに傾動自在に設けられた倒立振子型車両の制御技術が記載されている。この技術では、搭乗部の傾斜角度（前後方向及び左右方向の２軸周りの傾斜角度）の計測値を所要の目標傾斜角度に収束させ、また、車両の前後方向及び左右方向の移動速度の計測値を目標速度に収束させるように、アクチュエータとしての電動モータのトルク指令値を決定し、このトルク指令値に応じて電動モータの運転制御を行なうことで、車両を移動させるようにしている。
【０００５】
なお、倒立振子型車両として機能し得る車両としては、特許文献２、３に見られるものも本願出願人により提案されている。
【０００６】
また、特許文献４には、倒立振子型移動体の車輪と路面との間におけるスリップの発生を検知することが記載されている。この倒立振子型移動体は、座席を備え前後方向に揺動可能な車体の下部に左右一対の車輪を備えている。そして、左右の車輪の回転角速度の実測値から算出した移動体の旋回角速度の予測値と、移動体の旋回角速度の実測値とを比較して、スリップの発生を検知している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３０７００１５号
【特許文献２】ＰＣＴ国際公開公報ＷＯ／２００８／１３２７７８
【特許文献３】ＰＣＴ国際公開公報ＷＯ／２００８／１３２７７９
【特許文献４】特開２００８−１８９０８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献４に記載されたスリップ検知（空転検知）では、走行方向に対して車輪の軸心間を結ぶ線が非平行となるように複数の車輪が配置されている車両のスリップしか検知できず、スリップ検知可能な移動動作部の構成が限定される。また、旋回時のスリップしか検知できず、例えば直進時のスリップなどは検知できず、検知可能な空転が限定される。
【０００９】
本発明はかかる背景に鑑みてなされたものであり、空転検知可能な移動動作部の構成の限定が少なく、検知可能な空転の限定が少ない空転検知を行なうことが可能な倒立振子型車両の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の倒立振子型車両の制御装置は、かかる目的を達成するために、床面上を移動可能な移動動作部と、該移動動作部を駆動するアクチュエータ装置と、該移動動作部及びアクチュエータ装置が組付けられた基体と、鉛直方向に対して傾動自在に前記基体に組付けられた傾動部とを備えた倒立振子型車両の制御装置であって、前記傾動部の実際の傾斜角速度に応じた出力を生成する傾斜角速度計測手段と、前記移動動作部の制御用操作量を決定し、その決定した制御用操作量に応じて前記移動動作部の移動動作を前記アクチュエータ装置を介して制御する移動動作部制御手段と、前記移動動作部制御手段により前記移動動作部の移動動作が制御されることによる前記移動動作部の移動運動状態に基づいて、前記傾動部の傾斜角速度の予測値を算出する傾斜角速度予測値算出手段と、前記傾斜角速度計測手段の出力が示す前記傾動部の傾斜角速度の計測値と前記傾斜角速度予測値算出手段が算出した前記傾動部の傾斜角速度の予測値とに少なくとも基づいて、前記移動動作部の空転発生を検知する空転検知手段とを備えることを特徴とする。
【００１１】
なお、本発明において、「床」は、通常的な意味での床（屋内の床など）だけを意味するものではなく、屋外の地面もしくは路面をも含むものとして使用する。
【００１２】
本発明によれば、移動動作部制御手段により移動動作が制御される移動動作部の移動運動状態に基づいて、傾動部の傾斜角速度の予測値を傾斜角速度予測値算出手段が算出し、この傾斜角速度計測手段の出力が示す傾動部の傾斜角速度の計測値と傾斜角速度予測値算出手段が算出した傾動部の傾斜角速度の予測値とに少なくとも基づいて、空転検知手段は移動動作部の空転発生を検知する。なお、傾斜角速度計測手段は、傾動部と一体的に傾動する部分の傾斜角速度を計測し、その傾斜角速度を傾動部の実際の傾斜角速度としてもよい。
【００１３】
移動動作部制御手段により移動動作が制御される移動動作部の移動動作に応じて傾動部の傾斜角速度は変化するため、その制御結果としての傾動部の傾斜角速度の予測値を算出することができる。
【００１４】
そして、移動動作制御手段で意図した通りに移動動作部が移動動作していれば、傾動部の傾斜角速度の計測値と予測値との間に差は生じない。しかし、移動動作部に空転が発生した場合には、移動動作制御手段で意図した通りに移動動作部が移動動作せず、傾動部の傾斜角速度の計測値と予測値との間に差が生じる。そこで、傾動部の傾斜角速度の計測値と予測値とに基づいて、移動動作部に空転が発生したおそれを判断することが可能となる。従って、空転検知手段は、傾動部の傾斜角速度の計測値と予測値とに少なくとも基づいて、移動動作部の空転発生を検知することができる。
【００１５】
上記特許文献４に記載されたスリップ検知とは異なり、移動動作部の構成に拘わらず、空転が発生したおそれを判断することが可能である。さらに、傾動部の傾斜角速度に影響する移動動作部で空転が発生したおそれを検知することが可能であるので、旋回時の他、直進時などの空転も検知することができる。
【００１６】
また、本発明において、前記傾斜角速度予測手段は、前記制御用操作量に基づく前記移動動作部の移動運動と前記傾動部の傾斜運動との関係を表す前記車両のモデルを用いて、前記制御用操作量から前記傾動部の傾斜角加速度の予測値を求め、その求めた傾斜角加速度の予測値を積分して前記傾動部の傾斜角速度の予測値を算出することが好ましい。
【００１７】
この場合、制御用操作量に基づく移動動作部の移動運動と傾動部の傾斜運動との関係を表す車両のモデルを予め定めておき、このモデルを用いて傾動部の傾斜角加速度の予測値を求めることにより、傾動部の傾斜角速度の予測値を簡易且つ高精度に算出することが可能となる。これにより、移動動作部に空転が発生した可能性を簡易且つ正確に検知することができる。
【００１８】
そして、本発明のより具体的な態様として、前記傾動部の実際の傾斜角度に応じた出力を生成する傾斜角度計測手段を備え、前記傾斜角速度予測手段は、前記傾動部の傾斜角度及び傾斜角加速度と、前記移動動作部制御手段が前記制御用操作量として決定した前記移動動作部の運動加速度とを前記車両のモデルとして用いて、前記傾動部の傾斜角加速度の予測値を求めることも好ましい。
【００１９】
ところで、例えば、静止又は静止に近い状態にある車両に外力が加えられ、この外力によって移動動作部が移動したとき、移動動作部に空転が発生していなくとも、傾動部の傾斜角速度の計測値と予測値との間に差が生じる。
【００２０】
そこで、本発明において、前記移動動作部は、床面上を回転自在に構成されており、前記空転検知手段は、前記移動動作部の回転角速度と所定の閾値とを比較し、前記移動動作部の回転角速度が前記所定の閾値より小さいことが肯定的になった場合、前記移動動作部の空転発生を否定することが好ましい。
【００２１】
これにより、移動動作部に空転が発生したことを精度良く検知することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】実施形態の倒立振子型車両の正面図。
【図２】実施形態の倒立振子型車両の側面図。
【図３】実施形態の倒立振子型車両の下部を拡大して示す図。
【図４】実施形態の倒立振子型車両の下部の斜視図。
【図５】実施形態の倒立振子型車両の移動動作部（車輪体）の斜視図。
【図６】実施形態の倒立振子型車両の移動動作部（車輪体）とフリーローラとの配置関係を示す図。
【図７】実施形態の倒立振子型車両の制御ユニットの処理を示すフローチャート。
【図８】実施形態の倒立振子型車両の動力学的挙動を表現する倒立振子モデルを示す図。
【図９】図７のＳＴＥＰ９の処理に係わる処理機能を示すブロック図。
【図１０】図９に示すゲイン調整部の処理機能を示すブロック図。
【図１１】図１０に示すリミット処理部（又は図１２に示すリミット処理部）の処理機能を示すブロック図。
【図１２】図９に示す重心速度制限部７６の処理機能を示すブロック図。
【図１３】図９に示す姿勢制御演算部８０の処理機能を示すブロック図。
【図１４】図９に示す空転抑制部８１の処理を示すフローチャート。
【図１５】図１４のＳＴＥＰ２１に係わる処理機能を示すブロック図。
【図１６】図１４のＳＴＥＰ２４のサブルーチン処理を示すフローチャート。
【図１７】図１４のＳＴＥＰ２５のサブルーチン処理を示すフローチャート。
【発明を実施するための形態】
【００２３】
本発明の一実施形態を以下に説明する。まず、図１〜図６を参照して、本実施形態における倒立振子型車両の構造を説明する。
【００２４】
図１及び図２に示すように、本実施形態における倒立振子型車両１（以降、単に車両１という）は、該車両１の運搬対象物体としての乗員（運転者）の搭乗部３と、床面に接地しながら該床面上を全方向（第１の方向である前後方向及び第２の方向である左右方向を含む２次元的な全方向）に移動可能な移動動作部５と、この移動動作部５を駆動する動力を該移動動作部５に付与するアクチュエータ装置７と、これらの搭乗部３、移動動作部５及びアクチュエータ装置７が組付けられた基体９とを備える。そして、搭乗部３は、鉛直方向に対して傾動自在である傾動部となっている。
【００２５】
ここで、本実施形態の説明では、「前後方向」、「左右方向」は、それぞれ、搭乗部３に標準的な姿勢で搭乗した乗員の上体の前後方向、左右方向に一致もしくはほぼ一致する方向を意味する。なお、「標準的な姿勢」は、搭乗部３に関して設計的に想定されている姿勢であり、乗員の上体の体幹軸を概ね上下方向に向け、且つ、上体を捻ったりしていない姿勢である。
【００２６】
この場合、図１においては、「前後方向」、「左右方向」はそれぞれ、紙面に垂直な方向、紙面の左右方向であり、図２においては、「前後方向」、「左右方向」はそれぞれ、紙面の左右方向、紙面に垂直な方向である。また、本実施形態の説明では、参照符号に付する添え字「Ｒ」，「Ｌ」は、それぞれ車両１の右側、左側に対応するものという意味で使用する。
【００２７】
基体９は、移動動作部５及びアクチュエータ装置７とが組付けられた下部フレーム１１と、この下部フレーム１１の上端から上方に延設された支柱フレーム１３とを備える。
【００２８】
支柱フレーム１３の上部には、該支柱フレーム１３から前方側に張り出したシートフレーム１５が固定されている。そして、このシートフレーム１５上に、乗員が着座するシート３が装着されている。本実施形態では、このシート３が乗員の搭乗部（傾動部）となっている。従って、本実施形態における倒立振子型車両１は、乗員がシート３に着座した状態で、床面上を移動するものである。
【００２９】
また、シート３の左右には、シート３に着座した乗員が必要に応じて把持するためのグリップ１７Ｒ，１７Ｌが配置され、これらのグリップ１７Ｒ，１７Ｌがそれぞれ、支柱フレーム１３（又はシートフレーム１５）から延設されたブラケット１９Ｒ，１９Ｌの先端部に固定されている。
【００３０】
下部フレーム１１は、左右方向に間隔を存して二股状に対向するように配置された一対のカバー部材２１Ｒ，２１Ｌを備える。これらのカバー部材２１Ｒ，２１Ｌの上端部（二股の分岐部分）は、前後方向の軸心を有するヒンジ軸２３を介して連結され、カバー部材２１Ｒ，２１Ｌの一方が他方に対して相対的にヒンジ軸２３の周りに揺動可能となっている。この場合、カバー部材２１Ｒ，２１Ｌは、図示を省略するバネによって、カバー部材２１Ｒ，２１Ｌの下端部側（二股の先端側）が狭まる方向に付勢されている。
【００３１】
また、カバー部材２１Ｒ，２１Ｌのそれぞれの外面部には、前記シート３に着座した乗員の右足を載せるステップ２５Ｒと左足を載せるステップ２５Ｌとが各々、右向き、左向きに張り出すように突設されている。
【００３２】
移動動作部５及びアクチュエータ装置７は、下部フレーム１１のカバー部材２１Ｒ，２１Ｌの間に配置されている。これらの移動動作部５及びアクチュエータ装置７の構造を図３〜図６を参照して説明する。
【００３３】
なお、本実施形態で例示する移動動作部５及びアクチュエータ装置７は、例えば前記特許文献２の図１に開示されているものと同じ構造のものである。従って、本実施形態の説明においては、移動動作部５及びアクチュエータ装置７の構成に関して、前記特許文献２に記載された事項については、簡略的な説明に留める。
【００３４】
本実施形態では、移動動作部５は、ゴム状弾性材により円環状に形成された車輪体であり、ほぼ円形の横断面形状を有する。この移動動作部５（以降、車輪体５という）は、その弾性変形によって、図５及び図６の矢印Ｙ１で示す如く、円形の横断面の中心Ｃ１（より詳しくは、円形の横断面中心Ｃ１を通って、車輪体５の軸心と同心となる円周線）の周りに回転可能となっている。
【００３５】
この車輪体５は、その軸心Ｃ２（車輪体５全体の直径方向に直交する軸心Ｃ２）を左右方向に向けた状態で、カバー部材２１Ｒ，２１Ｌの間に配置され、該車輪体５の外周面の下端部にて床面に接地する。
【００３６】
そして、車輪体５は、アクチュエータ装置７による駆動（詳細は後述する）によって、図５の矢印Ｙ２で示す如く車輪体５の軸心Ｃ２の周りに回転する動作（床面上を輪転する動作）と、車輪体５の横断面中心Ｃ１の周りに回転する動作とを行なうことが可能である。その結果、車輪体５は、それらの回転動作の複合動作によって、床面上を全方向に移動することが可能となっている。
【００３７】
アクチュエータ装置７は、車輪体５と右側のカバー部材２１Ｒとの間に介装される回転部材２７Ｒ及びフリーローラ２９Ｒと、車輪体５と左側のカバー部材１７Ｌとの間に介装される回転部材２７Ｌ及びフリーローラ２９Ｌと、回転部材２７Ｒ及びフリーローラ２９Ｒの上方に配置されたアクチュエータとしての電動モータ３１Ｒと、回転部材２７Ｌ及びフリーローラ２９Ｌの上方に配置されたアクチュエータとしての電動モータ３１Ｌとを備える。
【００３８】
電動モータ３１Ｒ，３１Ｌは、それぞれのハウジングがカバー部材２１Ｒ，２１Ｌに各々取付けられている。なお、図示は省略するが、電動モータ３１Ｒ，３１Ｌの電源（蓄電器）は、支柱フレーム１３等、基体９の適所に搭載されている。
【００３９】
回転部材２７Ｒは、左右方向の軸心を有する支軸３３Ｒを介してカバー部材２１Ｒに回転可能に支持されている。同様に、回転部材２７Ｌは、左右方向の軸心を有する支軸３３Ｌを介してカバー部材２１Ｌに回転可能に支持されている。この場合、回転部材２７Ｒの回転軸心（支軸３３Ｒの軸心）と、回転部材２７Ｌの回転軸心（支軸３３Ｌの軸心）とは同軸心である。
【００４０】
回転部材２７Ｒ，２７Ｌは、それぞれ電動モータ３１Ｒ，３１Ｌの出力軸に、減速機としての機能を含む動力伝達機構を介して接続されており、電動モータ３１Ｒ，３１Ｌからそれぞれ伝達される動力（トルク）によって回転駆動される。各動力伝達機構は、例えばプーリ・ベルト式のものである。すなわち、図３に示す如く、回転部材２７Ｒは、プーリ３５Ｒとベルト３７Ｒとを介して電動モータ３１Ｒの出力軸に接続されている。同様に、回転部材２７Ｌは、プーリ３５Ｌとベルト３７Ｌとを介して電動モータ３１Ｌの出力軸に接続されている。
【００４１】
なお、上記動力伝達機構は、例えば、スプロケットとリンクチェーンとにより構成されるもの、あるいは、複数のギヤにより構成されるものであってもよい。また、例えば、電動モータ３１Ｒ，３１Ｌを、それぞれの出力軸が各回転部材２７Ｒ，２７Ｌと同軸心になるように各回転部材２７Ｒ，２７Ｌに対向させて配置し、電動モータ３１Ｒ，３１Ｌのそれぞれの出力軸を回転部材２７Ｒ，２７Ｌに各々、減速機（遊星歯車装置等）を介して連結するようにしてもよい。
【００４２】
各回転部材２７Ｒ，２７Ｌは、車輪体５側に向かって縮径する円錐台と同様の形状に形成されており、その外周面がテーパ外周面３９Ｒ，３９Ｌとなっている。
【００４３】
回転部材２７Ｒのテーパ外周面３９Ｒの周囲には、回転部材２７Ｒと同心の円周上に等間隔で並ぶようにして、複数のフリーローラ２９Ｒが配列されている。そして、これらのフリーローラ２９Ｒは、それぞれ、ブラケット４１Ｒを介してにテーパ外周面３９Ｒに取付けられ、該ブラケット４１Ｒに回転自在に支承されている。
【００４４】
同様に、回転部材２７Ｌのテーパ外周面３９Ｌの周囲には、回転部材２７Ｌと同心の円周上に等間隔で並ぶようにして、複数（フリーローラ２９Ｒと同数）のフリーローラ２９Ｌが配列されている。そして、これらのフリーローラ２９Ｌは、それぞれ、ブラケット４１Ｌを介してにテーパ外周面３９Ｌに取付けられ、該ブラケット４１Ｌに回転自在に支承されている。
【００４５】
前記車輪体５は、回転部材２７Ｒ側のフリーローラ２９Ｒと、回転部材２７Ｌ側のフリーローラ２９Ｌとの間に挟まれるようにして、回転部材２７Ｒ，２７Ｌと同軸心に配置されている。
【００４６】
この場合、図１及び図６に示すように、各フリーローラ２９Ｒ，２９Ｌは、その軸心Ｃ３が車輪体５の軸心Ｃ２に対して傾斜すると共に、車輪体５の直径方向（車輪体５をその軸心Ｃ２の方向で見たときに、該軸心Ｃ２と各フリーローラ２９Ｒ，２９Ｌとを結ぶ径方向）に対して傾斜する姿勢で配置されている。そして、このような姿勢で、各フリーローラ２９Ｒ，２９Ｌのそれぞれの外周面が車輪体５の内周面に斜め方向に圧接されている。
【００４７】
より一般的に言えば、右側のフリーローラ２９Ｒは、回転部材２７Ｒが軸心Ｃ２の周りに回転駆動されたときに、車輪体５との接触面で、軸心Ｃ２周りの方向の摩擦力成分（車輪体５の内周の接線方向の摩擦力成分）と、車輪体５の前記横断面中心Ｃ１の周り方向の摩擦力成分（円形の横断面の接線方向の摩擦力成分）とを車輪体５に作用させ得るような姿勢で、車輪体５の内周面に圧接されている。左側のフリーローラ２９Ｌについても同様である。
【００４８】
この場合、前記したように、カバー部材２１Ｒ，２１Ｌは、図示しないバネによって、カバー部材２１Ｒ，２１Ｌの下端部側（二股の先端側）が狭まる方向に付勢されている。このため、この付勢力によって、右側のフリーローラ２９Ｒと左側のフリーローラ２９Ｌとの間に車輪体５が挟持されると共に、車輪体５に対する各フリーローラ２９Ｒ，２９Ｌの圧接状態（より詳しくはフリーローラ２９Ｒ，２９Ｌと車輪体５との間で摩擦力が作用し得る圧接状態）が維持される。
【００４９】
以上説明した構造を有する車両１においては、電動モータ３１Ｒ，３１Ｌによりそれぞれ、回転部材２７Ｒ，２７Ｌを同方向に等速度で回転駆動した場合には、車輪体５が回転部材２７Ｒ，２７Ｌと同方向に軸心Ｃ２の周りに回転することとなる。これにより、車輪体５が床面上を前後方向に輪転して、車両１の全体が前後方向に移動することとなる。なお、この場合は、車輪体５は、その横断面中心Ｃ１の周りには回転しない。
【００５０】
また、例えば、回転部材２７Ｒ，２７Ｌを互いに逆方向に同じ大きさの速度で回転駆動した場合には、車輪体５は、その横断面中心Ｃ１の周りに回転することとなる。これにより、車輪体４がその軸心Ｃ２の方向（すなわち左右方向）に移動し、ひいては、車両１の全体が左右方向に移動することとなる。なお、この場合は、車輪体５は、その軸心Ｃ２の周りには回転しない。
【００５１】
さらに、回転部材２７Ｒ，２７Ｌを、互いに異なる速度（方向を含めた速度）で、同方向又は逆方向に回転駆動した場合には、車輪体５は、その軸心Ｃ２の周りに回転すると同時に、その横断面中心Ｃ１の周りに回転することとなる。
【００５２】
この時、これらの回転動作の複合動作（合成動作）によって、前後方向及び左右方向に対して傾斜した方向に車輪体５が移動し、ひいては、車両１の全体が車輪体５と同方向に移動することとなる。この場合の車輪体５の移動方向は、回転部材２７Ｒ，２７Ｌの回転方向を含めた回転速度（回転方向に応じて極性が定義された回転速度ベクトル）の差に依存して変化するものとなる。
【００５３】
以上のように車輪体５の移動動作が行なわれるので、電動モータ３１Ｒ，３１Ｌのそれぞれの回転速度（回転方向を含む）を制御し、ひいては回転部材２７Ｒ，２７Ｌの回転速度を制御することによって、車両１の移動速度及び移動方向を制御できることとなる。
【００５４】
なお、シート（搭乗部）３及び基体９は、車輪体５の軸心Ｃ２を支点として、左右方向の軸心Ｃ２周りに傾動自在となっていると共に、車輪体５の接地面（下端面）を支点として、前後方向の軸周りに該車輪体５と共に傾動自在となっている。
【００５５】
次に、本実施形態の車両１の動作制御のための構成を説明する。なお、以降の説明では、図１及び図２に示すように、前後方向の水平軸をＸ軸、左右方向の水平軸をＹ軸、鉛直方向をＺ軸とするＸＹＺ座標系を想定し、前後方向、左右方向をそれぞれＸ軸方向、Ｙ軸方向と言うことがある。
【００５６】
まず、車両１の概略的な動作制御を説明すると、本実施形態では、基本的には、シート３に着座した乗員がその上体を傾けた場合（詳しくは、乗員と車両１とを合わせた全体の重心点の位置（水平面に投影した位置）を動かすように上体を傾けた場合）に、該上体を傾けた側に基体９がシート３と共に傾動する。そして、この時、基体９が傾いた側に車両１が移動するように、車輪体５の移動動作が制御される。例えば、乗員が上体を前傾させ、ひいては、基体９をシート３と共に前傾させると、車両１が前方に移動するように、車輪体５の移動動作が制御される。
【００５７】
すなわち、本実施形態では、乗員が上体を動かし、ひいては、シート３と共に基体９を傾動させるという動作が、車両１に対する１つの基本的な操縦操作（車両１の動作要求）とされ、その操縦操作に応じて車輪体５の移動動作がアクチュエータ装置７を介して制御される。
【００５８】
ここで、本実施形態の車両１は、その全体の接地面としての車輪体５の接地面が、車両１とこれに搭乗する乗員との全体を床面に投影した領域に比して面積が小さい単一の局所領域となり、その単一の局所領域だけに床反力が作用する。このため、基体９が傾倒しないようにするためには、乗員及び車両１の全体の重心点が車輪体５の接地面のほぼ真上に位置するように、車輪体５を動かす必要がある。
【００５９】
そこで、本実施形態では、乗員及び車両１の全体の重心点が、車輪体５の中心点（軸心Ｃ２上の中心点）のほぼ真上に位置する状態（より正確には当該重心点が車輪体５の接地面のほぼ真上に位置する状態）での基体９の姿勢を目標姿勢とし、基本的には、基体９の実際の姿勢を目標姿勢に収束させるように、車輪体５の移動動作が制御される。
【００６０】
さらに、車両１に乗員が搭乗していない状態では、車両１の単体の重心点が、車輪体５の中心点（軸心Ｃ２上の中心点）のほぼ真上に位置する状態（より正確には当該重心点が車輪体５の接地面のほぼ真上に位置する状態）での基体９の姿勢を目標姿勢とし、該基体９の実際の姿勢を目標姿勢に収束させ、ひいては、基体９が傾倒することなく車両１が自立するように、車輪体５の移動動作が制御される。
【００６１】
また、車両１に乗員が搭乗している状態と搭乗していない状態とのいずれの状態においても、基体９の実際の姿勢の目標姿勢からずれが大きいほど、車両１の移動速度が速くなると共に、基体９の実際の姿勢の目標姿勢に一致する状態では、車両１の移動が停止するように車輪体５の移動動作が制御される。
【００６２】
補足すると、「姿勢」は空間的な向きを意味する。本実施形態では、基体９がシート３と共に傾動することで、基体９やシート３の姿勢が変化する。また、本実施形態では、基体９とシート３とは一体的に傾動するので、基体９の姿勢をその目標姿勢に収束させるということは、シート３の姿勢を該シート３に対応する目標姿勢（基体９の姿勢が基体９の目標姿勢に一致する状態でのシート３の姿勢）に収束させるということと等価である。
【００６３】
本実施形態では、以上の如き車両１の動作制御を行なうために、図１及び図２に示すように、マイクロコンピュータや電動モータ３１Ｒ，３１Ｌのドライブ回路ユニットなどを含む電子回路ユニットにより構成された制御ユニット５０と、基体９の所定の部位の鉛直方向（重力方向）に対する傾斜角度θb及びその変化速度（＝dθb/dt）を計測するための傾斜センサ５２と、車両１に乗員が搭乗しているか否かを検知するための荷重センサ５４と、電動モータ３１Ｒ，３１Ｌのそれぞれの出力軸の回転角度及び回転角速度を検出するための角度センサとしてのロータリエンコーダ５６Ｒ，５６Ｌとがそれぞれ、車両１の適所に搭載されている。
【００６４】
この場合、制御ユニット５０及び傾斜センサ５２は、例えば、基体９の支柱フレーム１３の内部に収容された状態で該支柱フレーム１３に取付けられている。また、荷重センサ５４は、シート３に内蔵されている。また、ロータリエンコーダ５６Ｒ，５６Ｌは、それぞれ、電動モータ３１Ｒ，３１Ｌと一体に設けられている。なお、ロータリエンコーダ５６Ｒ，５６Ｌは、それぞれ、回転部材２７Ｒ，２７Ｌに装着してもよい。
【００６５】
上記傾斜センサ５２は、より詳しくは、加速度センサとジャイロセンサ等のレートセンサ（角速度センサ）とから構成され、これらのセンサの検出信号を制御ユニット５０に出力する。そして、制御ユニット５０が、傾斜センサ５２の加速度センサ及びレートセンサの出力を基に、所定の計測演算処理（これは公知の演算処理でよい）を実行することによって、傾斜センサ５２を搭載した部位（本実施形態では支柱フレーム１３）の、鉛直方向に対する傾斜角度θbの計測値とその変化速度（微分値）である傾斜角速度θbdotの計測値とを算出する。
【００６６】
この場合、計測する傾斜角度θb（以降、基体傾斜角度θbということがある）は、より詳しくは、それぞれ、Ｙ軸周り方向（ピッチ方向）の成分θb_xと、Ｘ軸周り方向（ロール方向）の成分θb_yとから成る。同様に、計測する傾斜角速度θbdot（以降、基体傾斜角速度θbdotということがある）も、Ｙ軸周り方向（ピッチ方向）の成分θbdot_x（＝dθb_x/dt）と、Ｘ軸周り方向（ロール方向）の成分θbdot_y（＝dθb_y/dt）とから成る。
【００６７】
補足すると、本実施形態では、基体９の支柱フレーム１３と一体にシート３が傾動するので、基体傾斜角度θbは、搭乗部３の傾斜角度としての意味も持つ。
【００６８】
なお、本実施形態の説明では、上記基体傾斜角度θbなど、Ｘ軸及びＹ軸の各方向（又は各軸周り方向）の成分を有する運動状態量等の変数、あるいは、該運動状態量に関連する係数等の変数に関しては、その各成分を区別して表記する場合に、該変数の参照符号に、添え字“_x”又は“_y”を付加する。
【００６９】
この場合において、並進速度等の並進運動に係わる変数については、そのＸ軸方向の成分に添え字“_x”を付加し、Ｙ軸方向の成分に添え字“_y”を付加する。
【００７０】
一方、角度、回転速度（角速度）、角加速度など、回転運動に係わる変数については、並進運動に係わる変数と添え字を揃えるために、便宜上、Ｙ軸周り方向の成分に添え字“_x”を付加し、Ｘ軸周り方向の成分に添え字“_y”を付加する。
【００７１】
さらに、Ｘ軸方向の成分（又はＹ軸周り方向の成分）と、Ｙ軸方向の成分（又はＸ軸周り方向の成分）との組として変数を表記する場合には、該変数の参照符号に添え字“_xy”を付加する。例えば、上記基体傾斜角度θbを、Ｙ軸周り方向の成分θb_xとＸ軸周り方向の成分θb_yの組として表現する場合には、「基体傾斜角度θb_xy」というように表記する。
【００７２】
前記荷重センサ５４は、乗員がシート３に着座した場合に該乗員の重量による荷重を受けるようにシート３に内蔵され、その荷重に応じた検出信号を制御ユニット５０に出力する。そして、制御ユニット５０が、この荷重センサ５４の出力により示される荷重の計測値に基づいて、車両１に乗員が搭乗しているか否かを判断する。
【００７３】
なお、荷重センサ５４の代わりに、例えば、乗員がシート３に着座したときにＯＮとなるようなスイッチ式のセンサを用いてもよい。
【００７４】
ロータリエンコーダ５６Ｒは、電動モータ３１Ｒの出力軸が所定角度回転する毎にパルス信号を発生し、このパルス信号を制御ユニット５０に出力する。そして、制御ユニット５０が、そのパルス信号を基に、電動モータ５３Ｒの出力軸の回転角度を計測し、さらにその回転角度の計測値の時間的変化率（微分値）を電動モータ５３Ｒの回転角速度として計測する。電動モータ３１Ｌ側のロータリエンコーダ５６Ｌについても同様である。
【００７５】
制御ユニット５０は、上記の各計測値を用いて所定の演算処理を実行することによって、電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度の目標値である速度指令を決定し、その速度指令に従って、電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度をフィードバック制御する。
【００７６】
なお、電動モータ３１Ｒの出力軸の回転角速度と、回転部材２７Ｒの回転角速度との間の関係は、該出力軸と回転部材２７Ｒとの間の一定値の減速比に応じた比例関係になるので、本実施形態の説明では、便宜上、電動モータ３１Ｒの回転角速度は、回転部材２７Ｒの回転角速度を意味するものとする。同様に、電動モータ３１Ｌの回転角速度は、回転部材２７Ｌの回転角速度を意味するものとする。
【００７７】
以下に、制御ユニット５０の制御処理をさらに詳細に説明する。
【００７８】
制御ユニット５０は、所定の制御処理周期で図７のフローチャートに示す処理（メインルーチン処理）を実行する。
【００７９】
まず、ＳＴＥＰ１において、制御ユニット５０は、傾斜センサ５２の出力を取得する。
【００８０】
次いで、ＳＴＥＰ２に進んで、制御ユニット５０は、取得した傾斜センサ５２の出力を基に、基体傾斜角度θbの計測値θb_xy_sと、基体傾斜角速度θbdotの計測値θbdot_xy_sとを算出する。
【００８１】
なお、以降の説明では、上記計測値θb_xy_sなど、変数（状態量）の実際の値の観測値（計測値）を参照符号により表記する場合に、該変数の参照符号に、添え字“_s”を付加する。
【００８２】
次いで、制御ユニット５０は、ＳＴＥＰ３において、荷重センサ５４の出力を取得した後、ＳＴＥＰ４の判断処理を実行する。この判断処理においては、制御ユニット５０は、取得した荷重センサ５４の出力が示す荷重計測値が予め設定された所定値よりも大きいか否かによって、車両１に乗員が搭乗しているか否か（シート３に乗員が着座しているか否か）を判断する。
【００８３】
そして、制御ユニット５０は、ＳＴＥＰ４の判断結果が肯定的である場合には、基体傾斜角度θbの目標値θb_xy_objを設定する処理と、車両１の動作制御用の定数パラメータ（各種ゲインの基本値など）の値を設定する処理とを、それぞれＳＴＥＰ５、６で実行する。
【００８４】
ＳＴＥＰ５においては、制御ユニット５０は、基体傾斜角度θbの目標値θb_xy_objとして、予め定められた搭乗モード用の目標値を設定する。
【００８５】
ここで、「搭乗モード」は、車両１に乗員が搭乗している場合での車両１の動作モードを意味する。この搭乗モード用の目標値θb_xy_objは、車両１とシート３に着座した乗員との全体の重心点（以降、車両・乗員全体重心点という）が車輪体５の接地面のほぼ真上に位置する状態となる基体９の姿勢において、傾斜センサ５２の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するように予め設定されている。
【００８６】
また、ＳＴＥＰ６においては、制御ユニット５０は、車両１の動作制御用の定数パラメータの値として、予め定められた搭乗モード用の値を設定する。なお、定数パラメータは、後述するｈx，ｈy，Ｋi_a_x，Ｋi_b_x，Ｋi_a_y，Ｋi_b_y（ｉ＝１，２，３）等である。
【００８７】
一方、ＳＴＥＰ４の判断結果が否定的である場合には、制御ユニット５０は、基体傾斜角度θb_xyの目標値θb_xy_objを設定する処理と、車両１の動作制御用の定数パラメータの値を設定する処理とを、ＳＴＥＰ７、８で実行する。
【００８８】
ＳＴＥＰ７においては、制御ユニット５０は、傾斜角度θbの目標値θb_xy_objとして、予め定められた自立モード用の目標値を設定する。
【００８９】
ここで、「自立モード」は、車両１に乗員が搭乗していない場合での車両１の動作モードを意味する。この自立モード用の目標値θb_xy_objは、車両１単体の重心点（以降、車両単体重心点という）が車輪体５の接地面のほぼ真上に位置する状態となる基体９の姿勢において、傾斜センサ５２の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するように予め設定されている。この自立モード用の目標値θb_xy_objは、搭乗モード用の目標値θb_xy_objと一般的には異なる。
【００９０】
また、ＳＴＥＰ８においては、制御ユニット５０は、車両１の動作制御用の定数パラメータの値として、予め定められた自立モード用の値を設定する。この自立モード用の定数パラメータの値は、搭乗モード用の定数パラメータの値と異なる。
【００９１】
搭乗モードと自立モードとで、上記定数パラメータの値を異ならせるのは、それぞれのモードで上記重心点の高さや、全体質量等が異なることに起因して、制御入力に対する車両１の動作の応答特性が互いに異なるからである。
【００９２】
以上のＳＴＥＰ４〜８の処理によって、搭乗モード及び自立モードの各動作モード毎に各別に、基体傾斜角度θb_xyの目標値θb_xy_objと定数パラメータの値とが設定される。
【００９３】
なお、ＳＴＥＰ５，６の処理、又はＳＴＥＰ７，８の処理は、制御処理周期毎に実行することは必須ではなく、ＳＴＥＰ４の判断結果が変化した場合にだけ実行するようにしてもよい。
【００９４】
補足すると、搭乗モード及び自立モードのいずれにおいても、基体傾斜角速度θbdotのＹ軸周り方向の成分θbdot_xの目標値とＸ軸周り方向の成分θbdot_yの目標値とは、いずれも“０”である。このため、基体傾斜角速度θbdot_xyの目標値を設定する処理は不要である。
【００９５】
以上の如くＳＴＥＰ５，６の処理、又はＳＴＥＰ７，８の処理を実行した後、制御ユニット５０は、次にＳＴＥＰ９において、車両制御演算処理を実行することによって、電動モータ３１Ｒ，３１Ｌのそれぞれの速度指令を決定する。この車両制御演算処理の詳細は後述する。
【００９６】
次いで、ＳＴＥＰ１０に進んで、制御ユニット５０は、ＳＴＥＰ９で決定した速度指令に応じて電動モータ３１Ｒ，３１Ｌの動作制御処理を実行する。この動作制御処理では、制御ユニット５０は、ＳＴＥＰ９で決定した電動モータ３１Ｒの速度指令と、ロータリエンコーダ５６Ｒの出力に基づき計測した電動モータ３１Ｒの回転速度の計測値との偏差に応じて、該偏差を“０”に収束させるように電動モータ３１Ｒの出力トルクの目標値（目標トルク）を決定する。そして、制御ユニット５０は、その目標トルクの出力トルクを電動モータ３１Ｒに出力させるように該電動モータ３１Ｒの通電電流を制御する。左側の電動モータ３１Ｌの動作制御についても同様である。
【００９７】
以上が、制御ユニット５０が実行する全体的な制御処理である。
【００９８】
次に、上記ＳＴＥＰ９の車両制御演算処理の詳細を説明する。
【００９９】
なお、以降の説明においては、前記搭乗モードにおける車両・乗員全体重心点と、前記自立モードにおける車両単体重心点とを総称的に、車両系重心点という。該車両系重心点は、車両１の動作モードが搭乗モードである場合には、車両・乗員全体重心点を意味し、自立モードである場合には、車両単体重心点を意味する。
【０１００】
また、以降の説明では、制御ユニット５０が各制御処理周期で決定する値（更新する値）に関し、現在の（最新の）制御処理周期で決定する値を今回値、その１つ前の制御処理周期で決定した値を前回値ということがある。そして、今回値、前回値を特にことわらない値は、今回値を意味する。
【０１０１】
また、Ｘ軸方向の速度及び加速度に関しては、前方向きを正の向きとし、Ｙ軸方向の速度及び加速度に関しては、左向きを正の向きとする。
【０１０２】
本実施形態では、前記車両系重心点の動力学的な挙動（詳しくは、Ｙ軸方向からこれに直交する面（ＸＺ平面）に投影して見た挙動と、Ｘ軸方向からこれに直交する面（ＹＺ平面）に投影して見た挙動）が、近似的に、図８に示すような、倒立振子モデルの挙動（倒立振子の動力学的挙動）によって表現されるものとして、ＳＴＥＰ９の車両制御演算処理が行なわれる。
【０１０３】
なお、図８において、括弧を付していない参照符号は、Ｙ軸方向から見た倒立振子モデルに対応する参照符号であり、括弧付きの参照符号は、Ｘ軸方向から見た倒立振子モデルに対応する参照符号である。
【０１０４】
この場合、Ｙ軸方向から見た挙動を表現する倒立振子モデルは、車両系重心点に位置する質点６０_xと、Ｙ軸方向に平行な回転軸６２a_xを有して床面上を輪転自在な仮想的な車輪６２_x（以降、仮想車輪６２_xという）とを備える。そして、質点６０_xが、仮想車輪６２_xの回転軸６２a_xに直線状のロッド６４_xを介して支持され、該回転軸６２a_xを支点として該回転軸６２a_xの周りに揺動自在とされている。
【０１０５】
この倒立振子モデルでは、質点６０_xの運動が、Ｙ軸方向から見た車両系重心点の運動に相当する。また、鉛直方向に対するロッド６４_xの傾斜角度θbe_xがＹ軸周り方向での基体傾斜角度計測値θb_x_sと基体傾斜角度目標値θb_x_objとの偏差θbe_x_s（＝θb_x_s−θb_x_obj）に一致するものとされる。また、ロッド６４_xの傾斜角度θbe_xの変化速度（＝dθbe_x/dt）がＹ軸周り方向の基体傾斜角速度計測値θbdot_x_sに一致するものとされる。また、仮想車輪６２_xの移動速度Ｖw_x（Ｘ軸方向の並進移動速度）は、車両１の車輪体５のＸ軸方向の移動速度に一致するものとされる。
【０１０６】
同様に、Ｘ軸方向から見た挙動を表現する倒立振子モデル（図８の括弧付きの符号を参照）は、車両系重心点に位置する質点６０_yと、Ｘ軸方向に平行な回転軸６２a_yを有して床面上を輪転自在な仮想的な車輪６２_y（以降、仮想車輪６２_yという）とを備える。そして、質点６０_yが、仮想車輪６２_yの回転軸６２a_yに直線状のロッド６４_yを介して支持され、該回転軸６２a_yを支点として該回転軸６２a_yの周りに揺動自在とされている。
【０１０７】
この倒立振子モデルでは、質点６０_yの運動が、Ｘ軸方向から見た車両系重心点の運動に相当する。また、鉛直方向に対するロッド６４_yの傾斜角度θbe_yがＸ軸周り方向での基体傾斜角度計測値θb_y_sと基体傾斜角度目標値θb_y_objとの偏差θbe_y_s（＝θb_y_s−θb_y_obj）に一致するものとされる。また、ロッド６４_yの傾斜角度θbe_yの変化速度（＝dθbe_y/dt）がＸ軸周り方向の基体傾斜角速度計測値θbdot_y_sに一致するものとされる。また、仮想車輪６２_yの移動速度Ｖw_y（Ｙ軸方向の並進移動速度）は、車両１の車輪体５のＹ軸方向の移動速度に一致するものとされる。
【０１０８】
なお、仮想車輪６２_x，６２_yは、それぞれ、予め定められた所定値Ｒw_x，Ｒw_yの半径を有するものとされる。
【０１０９】
また、仮想車輪６２_x，６２_yのそれぞれの回転角速度ωw_x，ωw_yと、電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度ω_R，ω_L（より正確には、回転部材２７Ｒ，２７Ｌのそれぞれの回転角速度ω_R，ω_L）との間には、次式０１ａ，０１ｂの関係が成立するものとされる。
【０１１０】
ωw_x＝（ω_Ｒ＋ω_L）／２    ……式０１ａ
ωw_y＝Ｃ・（ω_Ｒ−ω_L）／２    ……式０１ｂ
なお、式０１ｂにおける“Ｃ”は、前記フリーローラ２９Ｒ，２９Ｌと車輪体５との間の機構的な関係や滑りに依存する所定値の係数である。また、ωw_x，ω_R，ω_Lの正の向きは、仮想車輪６２_xが前方に向かって輪転する場合の該仮想車輪６２_xの回転方向、ωw_yの正の向きは、仮想車輪６２_yが左向きに輪転する場合の該仮想車輪６２_yの回転方向である。
【０１１１】
ここで、図８に示す倒立振子モデルの動力学は、次式０３ｘ，０３ｙにより表現される。なお、式０３ｘは、Ｙ軸方向から見た倒立振子モデルの動力学を表現する式、式０３ｙは、Ｘ軸方向から見た倒立振子モデルの動力学を表現する式である。そして、式０３ｘ，０３ｙは、仮想車輪６２_x，６２_yの移動運動と倒立振子の質点６０_x，６０_yの傾斜運動との関係を表している。
【０１１２】
ｄ2θbe_x／dt2＝α_x・θbe_x＋β_x・ωwdot_x    ……式０３ｘ
ｄ2θbe_y／dt2＝α_y・θbe_y＋β_y・ωwdot_y    ……式０３ｙ
式０３ｘにおけるωwdot_xは仮想車輪６２_xの回転角加速度（回転角速度ωw_xの１階微分値）、α_xは、質点６０_xの質量や高さｈ_xに依存する係数、β_xは、仮想車輪６２_xのイナーシャ（慣性モーメント）や半径Ｒw_xに依存する係数である。式０３ｙにおけるωwdot_y、α_y、β_yについても上記と同様である。
【０１１３】
これらの式０３ｘ，０３ｙから判るように、倒立振子の質点６０_x，６０_yの運動（ひいては車両系重心点の運動）は、それぞれ、仮想車輪６２_xの回転角加速度ωwdot_x、仮想車輪６２_yの回転角加速度ωwdot_yに依存して規定される。
【０１１４】
そこで、本実施形態では、Ｙ軸方向から見た車両系重心点の運動を制御するための操作量（制御入力）として、仮想車輪６２_xの回転角加速度ωwdot_xを用いると共に、Ｘ軸方向から見た車両系重心点の運動を制御するための操作量（制御入力）として、仮想車輪６２_yの回転角加速度ωwdot_yを用いる。
【０１１５】
そして、ＳＴＥＰ９の車両制御演算処理を概略的に説明すると、制御ユニット５０は、Ｘ軸方向で見た質点６０_xの運動と、Ｙ軸方向で見た質点６０_yの運動とが、車両系重心点の所望の運動に対応する運動となるように、操作量としての上記回転角加速度ωwdot_x，ωwdot_yの指令値（目標値）である仮想車輪回転角加速度指令ωwdot_x_cmd，ωwdot_y_cmdを決定する。さらに、制御ユニット５０は、仮想車輪回転角加速度指令ωwdot_x_cmd，ωwdot_y_cmdをそれぞれ積分してなる値を、仮想車輪６２_x，６２_yのそれぞれの回転角速度ωw_x，ωw_yの指令値（目標値）である仮想車輪回転角速度指令ωw_x_cmd，ωw_y_cmdとして決定する。
【０１１６】
そして、制御ユニット５０は、仮想車輪回転角速度指令ωw_x_cmdに対応する仮想車輪６２_xの移動速度（＝Ｒw_x・ωw_x_cmd）と、仮想車輪回転角速度指令ωw_y_cmdに対応する仮想車輪６２_yの移動速度（＝Ｒw_y・ωw_y_cmd）とを、それぞれ、車両１の車輪体５のＸ軸方向の目標移動速度、Ｙ軸方向の目標移動速度とし、それらの目標移動速度を実現するように、電動モータ３１Ｒ，３１Ｌのそれぞれの速度指令ω_R_cmd，ωL_cmdを決定する。
【０１１７】
なお、本実施形態では、操作量（制御入力）としての上記仮想車輪回転角加速度指令ωwdot_x_cmd，ωwdot_y_cmdは、それぞれ、後述する式０７ｘ，０７ｙに示す如く、３個の操作量成分を加え合わせることによって決定される。
【０１１８】
補足すると、本実施形態における操作量（制御入力）としての上記仮想車輪回転角加速度指令ωwdot_x_cmd，ωwdot_y_cmdのうち、ωwdot_x_cmdは、Ｘ軸方向に移動する仮想車輪６２_xの回転角速度であるから、車輪体５をＸ軸方向に移動させるために該車輪体５に付与すべき駆動力を規定する操作量として機能するものとなる。また、ωwdot_y_cmdは、Ｙ軸方向に移動する仮想車輪６２_yの回転角速度であるから、車輪体５をＹ軸方向に移動させるために該車輪体５に付与すべき駆動力を規定する操作量として機能するものとなる。
【０１１９】
制御ユニット５０は、上記の如き、ＳＴＥＰ９の車両制御演算処理を実行するための機能として、図９のブロック図で示す機能を備えている。
【０１２０】
すなわち、制御ユニット５０は、基体傾斜角度計測値θb_xy_sと基体傾斜角度目標値θb_xy_objとの偏差である基体傾斜角度偏差計測値θbe_xy_sを算出する偏差演算部７０と、前記車両系重心点の移動速度である重心速度Ｖb_xyの観測値としての重心速度推定値Ｖb_xy_sを算出する重心速度算出部７２と、電動モータ３１Ｒ，３１Ｌの回転角速度の許容範囲に応じた制限を加味して、重心速度Ｖb_xyの目標値としての制御用目標重心速度Ｖb_xy_mdfdを決定する重心速度制限部７６と、後述する式０７ｘ，０７ｙのゲイン係数の値を調整するためのゲイン調整パラメータＫr_xyを決定するゲイン調整部７８とを備える。
【０１２１】
制御ユニット５０は、さらに、前記仮想車輪回転角速度指令ωw_xy_cmdを算出する姿勢制御演算部８０と、車輪体５と床面との間に空転が発生している場合に、この仮想車輪回転角速度指令ωw_xy_cmdを抑制する抑制係数λを決定する空転抑制部８１と、この抑制係数λを仮想車輪回転角速度指令ωw_xy_cmdに乗じて修正された仮想車輪回転角速度指令ωw_xy_cmdの値を算出する演算部８３と、この演算部８３が出力した仮想車輪回転角速度指令ωw_xy_cmdを、右側の電動モータ３１Ｒの速度指令ω_R_cmd（回転角速度の指令値）と左側の電動モータ３１Ｌの速度指令ω_L_cmd（回転角速度の指令値）との組に変換するモータ指令演算部８２とを備える。
【０１２２】
なお、図９中の参照符号８４を付したものは、姿勢制御演算部７０が制御処理周期毎に算出する仮想車輪回転角速度指令ωw_xy_cmdを入力する遅延要素を示している。該遅延要素８４は、各制御処理周期において、仮想車輪回転角速度指令ωw_xy_cmdの前回値ωw_xy_cmd_pを出力する。
【０１２３】
前記ＳＴＥＰ９の車両制御演算処理では、これらの上記の各処理部の処理が以下に説明するように実行される。
【０１２４】
すなわち、制御ユニット５０は、まず、偏差演算部７０の処理と重心速度算出部７２の処理とを実行する。
【０１２５】
偏差演算部７０には、前記ＳＴＥＰ２で算出された基体傾斜角度計測値θb_xy_s（θb_x_s及びθb_y_s）と、前記ＳＴＥＰ５又はＳＴＥＰ７で設定された目標値θb_xy_obj（θb_x_obj及びθb_y_obj）とが入力される。そして、偏差演算部７０は、θb_x_sからθb_x_objを減算することによって、Ｙ軸周り方向の基体傾斜角度偏差計測値θbe_x_s（＝θb_x_s−θb_x_obj）を算出すると共に、θb_y_sからθb_y_objを減算することによって、Ｘ軸周り方向の基体傾斜角度偏差計測値θbe_y_s（＝θb_y_s−θb_y_obj）を算出する。
【０１２６】
なお、偏差演算部７０の処理は、ＳＴＥＰ９の車両制御演算処理の前に行なうようにしてもよい。例えば、前記ＳＴＥＰ５又は７の処理の中で、偏差演算部７０の処理を実行してもよい。
【０１２７】
前記重心速度算出部７２には、前記ＳＴＥＰ２で算出された基体傾斜角速度計測値θbdot_xy_s（θbdot_x_s及びθbdot_y_s）の今回値が入力されると共に、仮想車輪速度指令ωw_xy_cmdの前回値ωw_xy_cmd_p（ωw_x_cmd_p及びωw_y_cmd_p）が遅延要素８４から入力される。そして、重心速度算出部７２は、これらの入力値から、前記倒立振子モデルに基づく所定の演算式によって、重心速度推定値Ｖb_xy_s（Ｖb_x_s及びＶb_y_s）を算出する。
【０１２８】
具体的には、重心速度算出部７２は、次式０５ｘ，０５ｙにより、Ｖb_x_s及びＶb_y_sをそれぞれ算出する。
【０１２９】
Ｖb_x_s＝Ｒw_x・ωw_x_cmd_p＋ｈ_x・θbdot_x_s    ……０５ｘ
Ｖb_y_s＝Ｒw_y・ωw_y_cmd_p＋ｈ_y・θbdot_y_s    ……０５ｙ
これらの式０５ｘ，０５ｙにおいて、Ｒw_x，Ｒw_yは、前記したように、仮想車輪６２_x，６２_yのそれぞれの半径であり、これらの値は、予め設定された所定値である。また、ｈ_x，ｈ_yは、それぞれ倒立振子モデルの質点６０_x，６０_yの高さである。この場合、本実施形態では、車両系重心点の高さは、ほぼ一定に維持されるものとされる。そこで、ｈ_x，ｈ_yの値としては、それぞれ、予め設定された所定値が用いられる。補足すると、高さｈ_x，ｈ_yは、前記ＳＴＥＰ６又は８において値を設定する定数パラメータに含まれるものである。
【０１３０】
上記式０５ｘの右辺の第１項は、仮想車輪６２_xの速度指令の前回値ωw_x_cmd_pに対応する該仮想車輪６２_xのＸ軸方向の移動速度であり、この移動速度は、車輪体５のＸ軸方向の実際の移動速度の現在値に相当するものである。また、式０５ｘの右辺の第２項は、基体９がＹ軸周り方向にθbdot_x_sの傾斜角速度で傾動することに起因して生じる車両系重心点のＸ軸方向の移動速度（車輪体５に対する相対的な移動速度）の現在値に相当するものである。これらのことは、式０５ｙについても同様である。
【０１３１】
なお、前記ロータリエンコーダ５６Ｒ，５６Ｌの出力を基に計測される電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度の計測値（今回値）の組を、仮想車輪６２_x，６２_yのそれぞれの回転角速度の組に変換し、それらの回転角速度を、式０５ｘ、０５ｙのωw_x_cmd_p、ωw_y_cmd_pの代わりに用いてもよい。ただし、回転角速度の計測値に含まれるノイズの影響を排除する上では、目標値であるωw_x_cmd_p、ωw_y_cmd_pを使用することが有利である。
【０１３２】
次に、制御ユニット５０は、重心速度制限部７６の処理とゲイン調整部７８の処理とを実行する。この場合、重心速度制限部７６及びゲイン調整部７８には、それぞれ、重心速度算出部７２で上記の如く算出された重心速度推定値Ｖb_xy_s（Ｖb_x_s及びＶb_y_s）が入力される。
【０１３３】
そして、ゲイン調整部７８は、入力された重心速度推定値Ｖb_xy_s（Ｖb_x_s及びＶb_y_s）を基に、前記ゲイン調整パラメータＫr_xy（Ｋr_x及びＫr_y）を決定する。
【０１３４】
このゲイン調整部７８の処理を図１０及び図１１を参照して以下に説明する。
【０１３５】
図１０に示すように、ゲイン調整部７８は、入力された重心速度推定値Ｖb_x_s，Ｖb_y_sをリミット処理部８６に入力する。このリミット処理部８６では、重心速度推定値Ｖb_x_s，Ｖb_y_sに、電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度の許容範囲に応じた制限を適宜、加えることによって、出力値Ｖw_x_lim1，Ｖw_y_lim1を生成する。出力値Ｖw_x_lim1は、前記仮想車輪６２_xのＸ軸方向の移動速度Ｖw_xの制限後の値、出力値Ｖw_y_lim1は、前記仮想車輪６２_yのＹ軸方向の移動速度Ｖw_yの制限後の値としての意味を持つ。
【０１３６】
このリミット処理部８６の処理を、図１１を参照してさらに詳細に説明する。なお、図１１中の括弧付きの参照符号は、後述する重心速度制限部７６のリミット処理部１０４の処理を示すものであり、リミット処理部８６の処理に関する説明では無視してよい。
【０１３７】
リミット処理部８６は、まず、重心速度推定値Ｖb_x_s，Ｖb_y_sをそれぞれ処理部８６a_x，８６a_yに入力する。処理部８６a_xは、Ｖb_x_sを仮想車輪６２_xの半径Ｒw_xで除算することによって、仮想車輪６２_xのＸ軸方向の移動速度をＶb_x_sに一致させたと仮定した場合の該仮想車輪６２_xの回転角速度ωw_x_sを算出する。同様に、処理部８６a_yは、仮想車輪６２_yのＹ軸方向の移動速度をＶb_y_sに一致させたと仮定した場合の該仮想車輪６２_yの回転角速度ωw_y_s（＝Ｖb_y_s／Ｒw_y）を算出する。
【０１３８】
次いで、リミット処理部８６は、ωw_x_s，ωw_y_sの組を、ＸＹ−ＲＬ変換部８６ｂにより、電動モータ３１Ｒの回転角速度ω_R_sと電動モータ３１Ｌの回転角速度ω_L_sとの組に変換する。
【０１３９】
この変換は、本実施形態では、前記式０１ａ，０１ｂのωw_x，ωw_y，ω_R，ω_Lをそれぞれ、ωw_x_s，ωw_y_s，ω_R_s，ω_L_sに置き換えて得られる連立方程式を、ω_R_s，ω_L_sを未知数として解くことにより行なわれる。
【０１４０】
次いで、リミット処理部８６は、ＸＹ−ＲＬ変換部８６ｂの出力値ω_R_s，ω_L_sをそれぞれ、リミッタ８６c_R，８６c_Lに入力する。このとき、リミッタ８６c_Rは、ω_R_sが、予め設定された所定値の上限値（＞０）と下限値（＜０）とを有する右モータ用許容範囲内に収まっている場合には、ω_R_sをそのまま出力値ω_R_lim1として出力する。また、リミッタ８６c_Rは、ω_R_sが、右モータ用許容範囲から逸脱している場合には、該右モータ用許容範囲の上限値と下限値とのうちのω_R_sに近い方の境界値を出力値ω_R_lim1として出力する。これにより、リミッタ８６c_Rの出力値ω_R_lim1は、右モータ用許容範囲内の値に制限される。
【０１４１】
同様に、リミッタ８６c_Lは、ω_L_sが、予め設定された所定値の上限値（＞０）と下限値（＜０）とを有する左モータ用許容範囲内に収まっている場合には、ω_L_sをそのまま出力値ω_L_lim1として出力する。また、リミッタ８６c_Lは、ω_L_sが、左モータ用許容範囲から逸脱している場合には、該左モータ用許容範囲の上限値と下限値とのうちのω_L_sに近い方の境界値を出力値ω_L_lim1として出力する。これにより、リミッタ８６c_Lの出力値ω_L_lim1は、左モータ用許容範囲内の値に制限される。
【０１４２】
上記右モータ用許容範囲は右側の電動モータ３１Ｒの回転角速度（絶対値）が高くなり過ぎないようにし、ひいては、電動モータ３１Ｒが出力可能なトルクの最大値が低下するのを防止するために設定された許容範囲である。このことは、左モータ用許容範囲についても同様である。
【０１４３】
次いで、リミット処理部８６は、リミッタ８６c_R，８６c_Lのそれぞれの出力値ω_R_lim1，ω_L_lim1の組を、ＲＬ−ＸＹ変換部８６ｄにより、仮想車輪６２_x，６２_yのそれぞれの回転角速度ωw_x_lim1，ωw_y_lim1の組に変換する。
【０１４４】
この変換は、前記ＸＹ−ＲＬ変換部８６ｂの変換処理の逆変換の処理である。この処理は、前記式０１ａ，０１ｂのωw_x，ωw_y，ω_R，ω_Lをそれぞれ、ωw_x_lim1，ωw_y_lim1，ω_R_lim1，ω_L_lim1に置き換えて得られる連立方程式を、ωw_x_lim1，ωw_y_lim1を未知数として解くことにより行なわれる。
【０１４５】
次いで、リミット処理部８６は、ＲＬ−ＸＹ変換部８６ｄの出力値ωw_x_lim1，ωw_y_lim1をそれぞれ処理部８６e_x，８６e_yに入力する。処理部８６e_xは、ωw_x_lim1に仮想車輪６２_xの半径Ｒw_xを乗じることによって、ωw_x_lim1を仮想車輪６２_xの移動速度Ｖw_x_lim1に変換する。同様に、処理部８６e_yは、ωw_y_lim1を仮想車輪６２_yの移動速度Ｖw_y_lim1（＝ωw_y_lim1・Ｒw_y）に変換する。
【０１４６】
以上のリミット処理部８６の処理によって、仮想車輪６２_xのＸ軸方向の移動速度Ｖw_xと、仮想車輪６２_yのＹ軸方向の移動速度Ｖw_yとをそれぞれ重心速度推定値Ｖb_x_s，Ｖb_y_sに一致させたと仮定した場合（換言すれば、車輪体５のＸ軸方向の移動速度とＹ軸方向の移動速度とをそれぞれ、Ｖb_x_s，Ｖb_y_sに一致させたと仮定した場合）に、それらの移動速度を実現するために必要な電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度ω_R_s，ω_L_sが、両方とも、許容範囲内に収まっている場合には、Ｖb_x_s，Ｖb_y_sにそれぞれ一致する出力値Ｖw_x_lim1，Ｖw_y_lim1の組がリミット処理部８６から出力される。
【０１４７】
一方、電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度ω_R_s，ω_L_sの両方又は一方が許容範囲から逸脱している場合には、その両方又は一方の回転角速度が強制的に許容範囲内に制限された上で、その制限後の電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度ω_R_lim1，ω_L_lim1の組に対応する、Ｘ軸方向及びＹ軸方向の移動速度Ｖw_x_lim1，Ｖw_y_lim1の組がリミット処理部８６から出力される。
【０１４８】
従って、リミット処理部８６は、その出力値Ｖw_x_lim1，Ｖw_y_lim1の組に対応する電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度が許容範囲を逸脱しないことを必須の必要条件として、その必要条件下で可能な限り、出力値Ｖw_x_lim1，Ｖw_y_lim1をそれぞれＶb_x_s，Ｖb_y_sに一致させるように、出力値Ｖw_x_lim1，Ｖw_y_lim1の組を生成する。
【０１４９】
図１０の説明に戻って、ゲイン調整部７８は、次に、演算部８８_x，８８_yの処理を実行する。演算部８８_xには、Ｘ軸方向の重心速度推定値Ｖb_x_sと、リミット処理部８６の出力値Ｖw_x_lim1とが入力される。そして、演算部８８_xは、Ｖw_x_lim1からＶb_x_sを減算してなる値Ｖover_xを算出して出力する。また、演算部８８_yには、Ｙ軸方向の重心速度推定値Ｖb_y_sと、リミット処理部８６の出力値Ｖw_y_lim1とが入力される。そして、演算部８８_yは、Ｖw_y_lim1からＶb_y_sを減算してなる値Ｖover_yを算出して出力する。
【０１５０】
この場合、リミット処理部８６での出力値Ｖw_x_lim1，Ｖw_y_lim1の強制的な制限が行なわれなかった場合には、Ｖw_x_lim1＝Ｖb_x_s、Ｖw_y_lim1＝Ｖb_y_sとなるので、演算部８８_x，８８_yのそれぞれの出力値Ｖover_x，Ｖover_yはいずれも“０”となる。
【０１５１】
一方、リミット処理部８６の出力値Ｖw_x_lim1，Ｖw_y_lim1が、入力値Ｖb_x_s，Ｖb_y_sに対して強制的な制限を施して生成された場合には、Ｖw_x_lim1のＶb_x_sからの修正量（＝Ｖw_x_lim1−Ｖb_x_s）と、Ｖw_y_lim1のＶb_y_sからの修正量（＝Ｖw_y_lim1−Ｖb_y_s）とがそれぞれ、演算部８８_x，８８_yから出力される。
【０１５２】
次いで、ゲイン調整部７８は、演算部８８_xの出力値Ｖover_xを処理部９０_x，９２_xに順番に通すことによって、ゲイン調整パラメータＫr_xを決定する。また、ゲイン調整部７８は、演算部８８_yの出力値Ｖover_yを処理部９０_y，９２_yに順番に通すことによって、ゲイン調整パラメータＫr_yを決定する。なお、ゲイン調整パラメータＫr_x，Ｋr_yは、いずれも“０”から“１”までの範囲内の値である。
【０１５３】
上記処理部９０_xは、入力されるＶover_xの絶対値を算出して出力する。また、処理部９２_xは、その出力値Ｋr_xが入力値｜Ｖover_x｜に対して単調に増加し、且つ、飽和特性を有するようにＫr_xを生成する。該飽和特性は、入力値がある程度大きくなると、入力値の増加に対する出力値の変化量が“０”になるか、もしくは、“０”に近づく特性である。
【０１５４】
この場合、本実施形態では、処理部９２_xは、入力値｜Ｖover_x｜が予め設定された所定値以下である場合には、該入力値｜Ｖover_x｜に所定値の比例係数を乗じてなる値をＫr_xとして出力する。また、処理部９２_xは、入力値｜Ｖover_x｜が所定値よりも大きい場合には、“１”をＫr_xとして出力する。なお、上記比例係数は、｜Ｖover_x｜が所定値に一致するときに、｜Ｖover_x｜と比例係数との積が“１”になるように設定されている。
【０１５５】
また、処理部９０_y，９２_yの処理は、それぞれ上記した処理部９０_x，９２_xの処理と同様である。
【０１５６】
以上説明したゲイン調整部７８の処理によって、リミット処理部８６での出力値Ｖw_x_lim1，Ｖw_y_lim1の強制的な制限が行なわれなかった場合、すなわち、車輪体５のＸ軸方向及びＹ軸方向のそれぞれの移動速度Ｖw_x，Ｖw_yを、それぞれ、重心速度推定値Ｖb_x_s，Ｖb_y_sに一致させるように電動モータ３１Ｒ，３１Ｌを動作させても、電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度が許容範囲内に収まるような場合には、ゲイン調整パラメータＫr_x，Ｋr_yはいずれも“０”に決定される。従って、通常は、Ｋr_x＝Ｋr_y＝０である。
【０１５７】
一方、リミット処理部８６の出力値Ｖw_x_lim1，Ｖw_y_lim1が、入力値Ｖb_x_s，Ｖb_y_sに対して強制的な制限を施して生成された場合、すなわち、車輪体５のＸ軸方向及びＹ軸方向のそれぞれの移動速度Ｖw_x，Ｖw_yを、それぞれ、重心速度推定値Ｖb_x_s，Ｖb_y_sに一致させるように電動モータ３１Ｒ，３１Ｌを動作させると、電動モータ３１Ｒ，３１Ｌのいずれかの回転角速度が許容範囲を逸脱してしまう場合（いずれかの回転角速度の絶対値が高くなり過ぎる場合）には、前記修正量Ｖover_x，Ｖover_yのそれぞれの絶対値に応じて、ゲイン調整パラメータＫr_x，Ｋr_yの値がそれぞれ決定される。この場合、Ｋr_xは、“１”を上限値して、修正量Ｖx_overの絶対値が大きいほど、大きな値になるように決定される。このことは、Ｋr_yについても同様である。
【０１５８】
また、前記重心速度制限部７６は、入力された重心速度推定値Ｖb_xy_s（Ｖb_x_s及びＶb_y_s）を使用して、図１２のブロック図で示す処理を実行することによって、制御用目標重心速度Ｖb_xy_mdfd（Ｖb_x_mdfd及びＶb_y_mdfd）を決定する。
【０１５９】
具体的には、重心速度制限部７６は、まず、定常偏差算出部９４_x，９４_yの処理を実行する。
【０１６０】
この場合、定常偏差算出部９４_xには、Ｘ軸方向の重心速度推定値Ｖb_x_sが入力されると共に、Ｘ軸方向の制御用目標重心速度Ｖb_x_mdfdの前回値Ｖb_x_mdfd_pが遅延要素９６_xを介して入力される。そして、定常偏差算出部９４_xは、まず、入力されるＶb_x_sが比例・微分補償要素（ＰＤ補償要素）９４a_xに入力する。この比例・微分補償要素９４_xは、その伝達関数が１＋Ｋd・Ｓにより表される補償要素であり、入力されるＶb_x_sと、その微分値（時間的変化率）に所定値の係数Ｋdを乗じてなる値とを加算し、その加算結果の値を出力する。
【０１６１】
次いで、定常偏差算出部９４_xは、入力されるＶb_x_mdfd_pを、比例・微分補償要素９４_xの出力値から減算してなる値を演算部９４b_xにより算出した後、この演算部９４b_xの出力値を、位相補償機能を有するローパスフィルタ９４c_xに入力する。このローパスフィルタ９４c_xは、伝達関数が（１＋Ｔ2・Ｓ）／（１＋Ｔ1・Ｓ）により表されるフィルタである。そして、定常偏差算出部９４_xは、このローパスフィルタ９４c_xの出力値Ｖb_x_prdを出力する。
【０１６２】
また、定常偏差算出部９４_yには、Ｙ軸方向の重心速度推定値Ｖb_y_sが入力されると共に、Ｙ軸方向の制御用目標重心速度Ｖb_y_mdfdの前回値Ｖb_y_mdfd_pが遅延要素９６_yを介して入力される。
【０１６３】
そして、定常偏差算出部９４_yは、上記した定常偏差算出部９４_xと同様に、比例・微分補償要素９４a_y、演算部９４b_y及びローパスフィルタ９４c_yの処理を順次実行し、ローパスフィルタ９４c_yの出力値Ｖb_y_prdを出力する。
【０１６４】
ここで、定常偏差算出部９４_xの出力値Ｖb_x_prdは、Ｙ軸方向から見た車両系重心点の現在の運動状態（換言すればＹ軸方向から見た倒立振子モデルの質点６０_xの運動状態）から推測される、将来のＸ軸方向の重心速度推定値の収束予測値の制御用目標重心速度Ｖb_x_mdfdに対する定常偏差としての意味を持つものである。同様に、定常偏差算出部９４_y出力値Ｖb_y_prdは、Ｘ軸方向から見た車両系重心点の現在の運動状態（換言すればＸ軸方向から見た倒立振子モデルの質点６０_yの運動状態）から推測される、将来のＹ軸方向の重心速度推定値の収束予測値の制御用目標重心速度Ｖb_y_mdfdに対する定常偏差としての意味を持つものである。以降、定常偏差算出部９４_x，９４_yのそれぞれの出力値Ｖb_x_prd，Ｖb_y_prdを重心速度定常偏差予測値という。
【０１６５】
重心速度制限部７６は、上記の如く定常偏差算出部９４_x，９４_yの処理を実行した後、上記重心速度定常偏差予測値Ｖb_x_prd，Ｖb_y_prdをリミット処理部１００に入力する。このリミット処理部１００の処理は、前記したゲイン調整部７８のリミット処理部８６の処理と同じである。この場合、図１１に括弧付きに参照符号で示す如く、リミット処理部１００の各処理部の入力値及び出力値だけがリミット処理部８６と相違する。
【０１６６】
具体的には、リミット処理部１００では、前記仮想車輪６２_x，６２_yのそれぞれの移動速度Ｖw_x，Ｖw_yを、Ｖb_x_prd，Ｖb_y_prdにそれぞれ一致させたと仮定した場合の各仮想車輪６２_x，６２_yの回転角速度ωw_x_t，ωw_y_tがそれぞれ処理部８６a_x，８６a_yにより算出される。そして、この回転角速度ωw_x_t，ωw_y_tの組が、ＸＹ−ＲＬ変換部８６ｂにより、電動モータ３１Ｒ，３１Ｌの回転角速度ω_R_t，ω_L_tの組に変換される。
【０１６７】
さらに、これらの回転角速度ω_R_t，ω_L_tが、リミッタ８６c_R，８６c_Lによって、それぞれ、右モータ用許容範囲内の値と左モータ用許容範囲内の値とに制限される。そして、この制限処理後の値ω_R_lim2，ω_L_lim2が、ＲＬ−ＸＹ変換部８６ｄによって、仮想車輪６２_x，６２_yの回転角速度ωw_x_lim2，ωw_y_lim2に変換される。
【０１６８】
次いで、この各回転角速度ωw_x_lim2，ωw_y_lim2に対応する各仮想車輪６２_x，６２_yの移動速度Ｖw_x_lim2，Ｖw_y_lim2がそれぞれ処理部８６e_x，８６e_yによって算出され、これらの移動速度Ｖw_x_lim2，Ｖw_y_lim2がリミット処理部１００から出力される。
【０１６９】
以上のリミット処理部１００の処理によって、リミット処理部１００は、リミット処理部８６と同様に、その出力値Ｖw_x_lim2，Ｖw_y_lim2の組に対応する電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度が許容範囲を逸脱しないことを必須の必要条件として、その必要条件下で可能な限り、出力値Ｖw_x_lim2，Ｖw_y_lim2をそれぞれＶb_x_t，Ｖb_y_tに一致させるように、出力値Ｖw_x_lim2，Ｖw_y_lim2の組を生成する。
【０１７０】
なお、リミット処理部１００における右モータ用及び左モータ用の各許容範囲は、リミット処理部８６における各許容範囲と同一である必要はなく、互いに異なる許容範囲に設定されていてもよい。
【０１７１】
図１２の説明に戻って、重心速度制限部７６は、次に、演算部１０２_x，１０２_yの処理を実行することによって、それぞれ制御用目標重心速度Ｖb_x_mdfd，Ｖb_y_mdfdを算出する。この場合、演算部１０２_xは、リミット処理部１００の出力値Ｖw_x_lim2から、Ｘ軸方向の重心速度定常偏差予測値Ｖb_x_prdを減算してなる値をＸ軸方向の制御用目標重心速度Ｖb_x_mdfdとして算出する。同様に、演算部１０２_yは、リミット処理部１００の出力値Ｖw_y_lim2から、Ｙ軸方向の重心速度定常偏差予測値Ｖb_y_prdを減算してなる値をＹ軸方向の制御用目標重心速度Ｖb_y_mdfdとして算出する。
【０１７２】
以上のようにして決定される制御用目標重心速度Ｖb_x_mdfd，Ｖb_y_mdfdは、リミット処理部１００での出力値Ｖ_x_lim2，Ｖ_y_lim2の強制的な制限が行なわれなかった場合、すなわち、車輪体５のＸ軸方向及びＹ軸方向のそれぞれの移動速度を、それぞれ、重心速度定常偏差予測値Ｖb_x_prd，Ｖb_y_prdに一致させるように電動モータ３１Ｒ，３１Ｌを動作させても、電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度が許容範囲内に収まるような場合には、制御用目標重心速度Ｖb_x_mdfd，Ｖb_y_mdfdはいずれも“０”に決定される。従って、通常は、Ｖb_x_mdfd＝Ｖb_y_mdfd＝０である。
【０１７３】
一方、リミット処理部１００の出力値Ｖw_x_lim2，Ｖw_y_lim2が、入力値Ｖb_x_t，Ｖb_y_tに対して強制的な制限を施して生成された場合、すなわち、車輪体５のＸ軸方向及びＹ軸方向のそれぞれの移動速度を、それぞれ、重心速度定常偏差予測値Ｖb_x_prd，Ｖb_y_prdに一致させるように電動モータ３１Ｒ，３１Ｌを動作させると、電動モータ３１Ｒ，３１Ｌのいずれかの回転角速度が許容範囲を逸脱してしまう場合（いずれかの回転角速度の絶対値が高くなり過ぎる場合）には、Ｘ軸方向については、リミット処理部１００の出力値Ｖw_x_lim2の入力値Ｖb_x_prdからの修正量（＝Ｖw_x_lim2−Ｖb_x_prd）が、Ｘ軸方向の制御用目標重心速度Ｖb_x_mdfdとして決定される。
【０１７４】
また、Ｙ軸方向については、リミット処理部１００の出力値Ｖw_y_lim2の入力値Ｖb_y_prdからの修正量（＝Ｖw_y_lim2−Ｖb_y_prd）が、Ｙ軸方向の制御用目標重心速度Ｖb_y_mdfdとして決定される。
【０１７５】
この場合において、例えばＸ軸方向の速度に関し、制御用目標重心速度Ｖb_x_mdfdは、定常偏差算出部９４_xが出力するＸ軸方向の重心速度定常偏差予測値Ｖb_x_prdと逆向きの速度となる。このことは、Ｙ軸方向の速度に関しても同様である。
【０１７６】
以上が、重心速度制限部７６の処理である。
【０１７７】
図９の説明に戻って、制御ユニット５０は、以上の如く重心速度制限部７６、ゲイン調整部７８、及び偏差演算部７０の処理を実行した後、次に、姿勢制御演算部の処理を実行する。
【０１７８】
この姿勢制御演算部８０の処理を、以下に図１３を参照して説明する。なお、図１３において、括弧を付していない参照符号は、Ｘ軸方向に輪転する仮想車輪６２_xの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_x_cmdを決定する処理に係わる参照符号であり、括弧付きの参照符合は、Ｙ軸方向に輪転する仮想車輪６２_yの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_y_cmdを決定する処理に係わる参照符号である。
【０１７９】
姿勢制御演算部８０には、偏差演算部７０で算出された基体傾斜角度偏差計測値θbe_xy_sと、前記ＳＴＥＰ２で算出された基体傾斜角速度計測値θbdot_xy_sと、重心速度算出部７２で算出された重心速度推定値Ｖb_xy_sと、重心速度制限部７６で算出された制御用目標重心速度Ｖb_xy_mdfdと、ゲイン調整部７８で算出されたゲイン調整パラメータＫr_xyとが入力される。
【０１８０】
そして、姿勢制御演算部８０は、まず、これらの入力値を用いて、次式０７ｘ，０７ｙにより、仮想車輪回転角加速度指令ωdotw_xy_cmdを算出する。
【０１８１】
ωwdot_x_cmd＝K1_x・θbe_x_s＋K2_x・θbdot_x_s
＋K3_x・（Ｖb_x_s−Ｖb_x_mdfd）    ……式０７ｘ
ωwdot_y_cmd＝K1_y・θbe_y_s＋K2_y・θbdot_y_s
＋K3_y・（Ｖb_y_s−Ｖb_y_mdfd）    ……式０７ｙ
従って、本実施形態では、Ｙ軸方向から見た倒立振子モデルの質点６０_xの運動（ひいては、Ｙ軸方向から見た車両系重心点の運動）を制御するための操作量（制御入力）としての仮想車輪回転角加速度指令ωdotw_x_cmdと、Ｘ軸方向から見た倒立振子モデルの質点６０_yの運動（ひいては、Ｘ軸方向から見た車両系重心点の運動）を制御するための操作量（制御入力）としての仮想車輪回転角加速度指令ωdotw_y_cmdとは、それぞれ、３つの操作量成分（式０７ｘ，０７ｙの右辺の３つの項）を加え合わせることによって決定される。
【０１８２】
これらの式０７ｘ，０７ｙにおけるゲイン係数Ｋ1_x，Ｋ1_yは、基体９（又はシート３）の傾斜角度に関するフィードバックゲイン、ゲイン係数Ｋ2_x，Ｋ2_yは、基体９（又はシート３）の傾斜角速度（傾斜角度の時間的変化率）に関するフィードバックゲイン、ゲイン係数Ｋ3_x，Ｋ3_yは、車両系重心点（車両１の所定の代表点）の移動速度に関するフィードバックゲインとしての意味を持つものである。
【０１８３】
この場合、式０７ｘにおける各操作量成分に係わるゲイン係数Ｋ1_x，Ｋ2_x，Ｋ3_xは、ゲイン調整パラメータＫr_xに応じて可変的に設定され、式０７ｙにおける各操作量成分に係わるゲイン係数Ｋ1_y，Ｋ2_y，Ｋ3_yは、ゲイン調整パラメータＫr_yに応じて可変的に設定される。以降、式０７ｘにおけるゲイン係数Ｋ1_x，Ｋ2_x，Ｋ3_xのそれぞれを第１ゲイン係数Ｋ1_x、第２ゲイン係数Ｋ2_x、第３ゲイン係数Ｋ3_xということがある。このことは、式０７ｙにおけるゲイン係数Ｋ1_y，Ｋ2_y，Ｋ3_yについても同様とする。
【０１８４】
式０７ｘにおける第ｉゲイン係数Ｋi_x（ｉ＝１，２，３）と、式０７ｙにおける第ｉゲイン係数Ｋi_y（ｉ＝１，２，３）とは、図１３中にただし書きで示した如く、次式０９ｘ、０９ｙにより、ゲイン調整パラメータＫr_x，Ｋr_yに応じて決定される。
【０１８５】
Ｋi_x＝（１−Ｋr_x）・Ｋi_a_x＋Ｋr_x・Ｋi_b_x    ……式０９ｘ
Ｋi_y＝（１−Ｋr_y）・Ｋi_a_y＋Ｋr_y・Ｋi_b_y    ……式０９ｙ
（ｉ＝１，２，３）
ここで、式０９ｘにおけるＫi_a_x、Ｋi_b_xは、それぞれ、第ｉゲイン係数Ｋi_xの最小側（“０”に近い側）のゲイン係数値、最大側（“０”から離れる側）のゲイン係数値として予め設定された定数値である。このことは、式０９ｙにおけるＫi_a_y、Ｋi_b_yについても同様である。
【０１８６】
従って、式０７ｘの演算に用いる各第ｉゲイン係数Ｋi_x（ｉ＝１，２，３）は、それぞれに対応する定数値Ｋi_a_x、Ｋi_b_xの重み付き平均値として決定される。そして、この場合、Ｋi_a_x、Ｋi_b_xにそれぞれ掛かる重みが、ゲイン調整パラメータＫr_xに応じて変化させられる。このため、Ｋr_x＝０である場合には、Ｋi_x＝Ｋi_a_xとなり、Ｋr_x＝１である場合には、Ｋi_x＝Ｋi_b_xとなる。そして、Ｋr_xが“０”から“１”に近づくに伴い、第ｉゲイン係数Ｋi_xはＫi_a_xからＫi_b_x近づいていく。
【０１８７】
同様に、式０７ｙの演算に用いる各第ｉゲイン係数Ｋi_y（ｉ＝１，２，３）は、それぞれに対応する定数値Ｋi_a_y、Ｋi_b_yの重み付き平均値として決定される。そして、この場合、Ｋi_a_y、Ｋi_b_yにそれぞれ掛かる重みが、ゲイン調整パラメータＫr_yに応じて変化させられる。このため、Ｋi_xの場合と同様に、Ｋr_yの値が“０”から“１”の間で変化するに伴い、第ｉゲイン係数Ｋi_yの値が、Ｋi_a_yとＫi_b_yとの間で変化する。
【０１８８】
なお、前記したように、Ｋr_x，Ｋr_yは、通常は（詳しくはゲイン調整部７８のリミット処理部８６での出力値Ｖw_x_lim1，Ｖw_y_lim1の強制的な制限が行なわれなかった場合）、“０”である。従って、第ｉゲイン係数Ｋi_x，Ｋi_y（ｉ＝１，２，３）は、通常は、それぞれ、Ｋi_x＝Ｋi_a_x，Ｋi_y＝Ｋi_a_yとなる。
【０１８９】
補足すると、上記定数値Ｋi_a_x、Ｋi_b_x及びＫi_a_y，Ｋi_b_y（ｉ＝１，２，３）は、前記ＳＴＥＰ６又は８において値が設定される定数パラメータに含まれるものである。
【０１９０】
また、本実施形態では、Ｋr_x＝０、Ｋr_y＝０となる状況で、式０７ｘに係わる第３ゲイン係数Ｋ3_xの絶対値に対する第１ゲイン係数Ｋ1_xに対する割合いと、式０７ｙに係わる第３ゲイン係数Ｋ3_yの絶対値に対する第１ゲイン係数Ｋ1_yに対する割合いとが前記搭乗モードと自立モードとで異なるものとなるが、これについては後述する。
【０１９１】
姿勢制御演算部８０は、上記の如く決定した第１〜第３ゲイン係数Ｋ1_x，Ｋ2_x，Ｋ3_xを用いて前記式０７ｘの演算を行なうことで、Ｘ軸方向に輪転する仮想車輪６２_xに係わる仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
【０１９２】
さらに詳細には、図１３を参照して、姿勢制御演算部８０は、基体傾斜角度偏差計測値θbe_x_sに第１ゲイン係数Ｋ1_xを乗じてなる操作量成分ｕ1_xと、基体傾斜角速度計測値θbdot_x_sに第２ゲイン係数Ｋ2_xを乗じてなる操作量成分ｕ2_xとをそれぞれ、処理部８０ａ，８０ｂで算出する。さらに、姿勢制御演算部８０は、重心速度推定値Ｖb_x_sと制御用目標重心速度Ｖb_x_mdfdとの偏差（＝Ｖb_x_s−Ｖb_x_mdfd）を演算部８０ｄで算出し、この偏差に第３ゲイン係数Ｋ3_xを乗じてなる操作量成ｕ3_xを処理部８０ｃで算出する。そして、姿勢制御演算部８０は、これらの操作量成分u1_x，ｕ2_x，ｕ3_xを演算部８０ｅにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
【０１９３】
同様に、姿勢制御演算部８０は、上記の如く決定した第１〜第３ゲイン係数Ｋ1_y，Ｋ2_y，Ｋ3_yを用いて前記式０７ｙの演算を行なうことで、Ｙ軸方向に輪転する仮想車輪６２_yに係わる仮想車輪回転角加速度指令ωwdot_y_cmdを算出する。
【０１９４】
この場合には、姿勢制御演算部８０は、基体傾斜角度偏差計測値θbe_y_sに第１ゲイン係数Ｋ1_yを乗じてなる操作量成分ｕ1_yと、基体傾斜角速度計測値θbdot_y_sに第２ゲイン係数Ｋ2_yを乗じてなる操作量成分ｕ2_yとをそれぞれ、処理部８０ａ，８０ｂで算出する。さらに、姿勢制御演算部８０は、重心速度推定値Ｖb_y_sと制御用目標重心速度Ｖb_y_mdfdとの偏差（＝Ｖb_y_s−Ｖb_y_mdfd）を演算部８０ｄで算出し、この偏差に第３ゲイン係数Ｋ3_yを乗じてなる操作量成ｕ3_yを処理部８０ｃで算出する。そして、姿勢制御演算部８０は、これらの操作量成分u1_y，ｕ2_y，ｕ3_yを演算部８０ｅにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
【０１９５】
ここで、式０７ｘの右辺の第１項（＝第１操作量成分ｕ1_x）及び第２項（＝第２操作量成分ｕ2_x）は、Ｘ軸周り方向での基体傾斜角度偏差計測値θbe_x_sを、フィードバック制御則としてのＰＤ則（比例・微分則）により“０”に収束させる（基体傾斜角度計測値θb_x_sを目標値θb_x_objに収束させる）ためのフィードバック操作量成分としての意味を持つ。
【０１９６】
また、式０７ｘの右辺の第３項（＝第３操作量成分ｕ3_x）は、重心速度推定値Ｖb_x_sと制御用目標重心速度Ｖb_x_mdfdとの偏差をフィードバック制御則としての比例則により“０”に収束させる（Ｖb_x_sをＶb_x_mdfdに収束させる）ためのフィードバック操作量成分としての意味を持つ。
【０１９７】
これらのことは、式０７ｙの右辺の第１〜第３項（第１〜第３操作量成分ｕ1_y，ｕ2_y，ｕ3_y）についても同様である。
【０１９８】
なお、前記したように通常は（より詳しくは、前記重心速度制限部７６のリミット処理部１００での出力値Ｖ_x_lim2，Ｖ_y_lim2の強制的な制限が行なわれなかった場合）、制御用目標重心速度Ｖb_x_mdfd，Ｖb_y_mdfdは“０”である。そして、Ｖb_x_mdfd＝Ｖb_y_mdfd＝０となる通常の場合は、第３操作量成分ｕ3_x，ｕ3_yは、それぞれ、重心速度推定値Ｖb_x_s，Ｖb_y_sに第３ゲイン係数Ｋ3_x，Ｋ3_yを乗じた値に一致する。
【０１９９】
姿勢制御演算部８０は、上記の如く、仮想車輪回転角加速度指令ωwdot_x_cmd，ωwdot_y_cmdを算出した後、次に、これらのωwdot_x_cmd，ωwdot_y_cmdをそれぞれ積分器８０ｆにより積分することによって、前記仮想車輪回転角速度指令ωw_x_cmd，ωw_y_cmdを決定する。
【０２００】
補足すると、式０７ｘの右辺の第３項を、Ｖb_x_sに応じた操作量成分（＝K3_x・Ｖb_x_s）と、Ｖb_x_mdfdに応じた操作量成分（＝−K3_x・Ｖb_x_mdfd）とに分離した式によって、仮想車輪回転角加速度指令ωdotw_x_cmdを算出するようにしてよい。同様に、式０７ｙの右辺の第３項を、Ｖb_y_sに応じた操作量成分（＝K3_y・Ｖb_y_s）と、Ｖb_y_mdfdに応じた操作量成分（＝−K3_y・Ｖb_y_mdfd）とに分離した式によって、仮想車輪回転角加速度指令ωdotw_y_cmdを算出するようにしてよい。
【０２０１】
また、本実施形態では、車両系重心点の挙動を制御するための操作量（制御入力）として、仮想車輪６２_x，６２_yの回転角速度指令ωw_x_cmd，ωw_y_cmdを用いるようにしたが、例えば、仮想車輪６２_x，６２_yの駆動トルク、あるいは、この駆動トルクを各仮想車輪６２_x，６２_yの半径Ｒw_x，Ｒw_yで除算してなる並進力（すなわち仮想車輪６２_x，６２_yと床面との間の摩擦力）を操作量として用いるようにしてもよい。
【０２０２】
以上が姿勢制御演算部８０の処理の詳細である。
【０２０３】
次に、空転抑制部８１の処理の詳細を、図１４〜図１７を参照して説明する。
【０２０４】
空転抑制部８１は、本実施形態では、車輪体５の空転発生を検知し、空転が発生した場合には、基体９（及びシート３）の傾斜角度に応じて車輪体５の移動動作を抑制するよう、抑制係数λを決定する。
【０２０５】
図１４を参照して、空転抑制部８１は、まず、ＳＴＥＰ２１の処理を実行する。この処理では、空転抑制部８１は、車両１の倒立振子モデルの動力学を表現する前記式０３ｘ，０３ｙを用いて、基体傾斜角度計測値θb_xy_sと仮想車輪回転角速度指令の前回値ωw_xy_cmd_pとから、基体傾斜角速度θbdot_xyの予測値θbdot_xy_expを算出する。
【０２０６】
なお、以降の説明では、上記予測値θbdot_xy_expなど、変数（状態量）の予測値（予想値）を参照符号により表記する場合に、該変数の参照符号に、添え字“_exp”を付加する。
【０２０７】
空転抑制部８１は、ＳＴＥＰ２１において、図１５のブロック図で示す処理を実行することによって、基体傾斜角速度予測値θbdot_xy_expを算出する。具体的には、空転抑制部８１は、まず、基体傾斜角度計測値θb_xy_sに式０３ｘ，０３ｙ式の右辺第１項の係数α_xyを乗じてなる量を演算部８１ａで算出する。また、空転抑制部８１は、遅延要素８１ｂを介して入力される仮想車輪回転角速度指令の前回値ωw_xy_cmd_pを微分器８１ｂで微分した後、この微分器８１ｂの出力値に式０３ｘ，０３ｙ式の右辺第２項の係数β_xyを乗じるなる量を演算部８１ｃで算出する。
【０２０８】
そして、空転抑制部８１は、演算部８１ａで算出された量と演算部８１ｃで算出された量を演算部８１ｄにて加え合わせることにより、基体傾斜角加速度予測値ｄ2θb_xy_exp／dt2を算出する。さらに、空転抑制部８１は、基体傾斜角加速度予測値ｄ2θb_xy_exp／dt2を積分器８１ｅで積分した後、この積分器８１ｅの出力値を、位相補償機能を有するローカットフィルタ８１ｆに入力する。このローカットフィルタ８１ｆは、伝達関数がＴ・Ｓ／（１＋Ｔ・Ｓ）により表されるフィルタである。そして、このローカットフィルタ８１ｆの出力値が基体傾斜角速度予測値θbdot _xy_expとなる。
【０２０９】
次いで、ＳＴＥＰ２２に進んで、空転抑制部８１は、ＳＴＥＰ２１にて算出した基体傾斜角速度予測値θbdot_xy_expと、前記ＳＴＥＰ２にて前記傾斜センサ５２が取得した出力を基づいて算出した基体傾斜角速度計測値θbdot_xy_sとの差である基体傾斜角速度偏差θbdot_xy_dif（＝θbdot_xy_exp−θbdot_xy_s）を算出する。
【０２１０】
次いで、ＳＴＥＰ２３に進んで、空転抑制部８１は、現在の処理モードが非空転モードか空転モードのいずれのモードであるかを判断する。
【０２１１】
非空転モードは、車輪体５が空転していない場合のモードであり、抑制係数λは“１”であり、仮想車輪回転角速度指令ωw_xy_cmdを抑制しない。一方、空転モードは、車輪体５が空転している場合のモードであり、抑制係数λを“０”から“１”の範囲内で決定し、この抑制係数λを乗じて仮想車輪回転角速度指令ωw_xy_cmdを抑制する。
【０２１２】
なお、制御ユニット５０の起動時等に該制御ユニット５０が初期化された状態での処理モード（初期処理モード）は、非空転モードである。
【０２１３】
空転抑制部８１は、上記ＳＴＥＰ２２において、現在の処理モードが非空転モードである場合と、空転モードである場合とで、それぞれ、次に、ＳＴＥＰ２４の処理、ＳＴＥＰ２５の処理を実行する。
【０２１４】
ＳＴＥＰ２４における非空転モードの処理は、図１６のフローチャートに示す如く実行される。具体的には、空転抑制部８１は、まず、前記ＳＴＥＰ２２で算出した基体傾斜角速度偏差θbdot_x_difに関して｜θbdot_x_dif｜＞ＤＶ1_xという条件が成立し、且つ、ＳＴＥＰ２１で遅延要素８１ｂから出力された仮想車輪回転角速度指令の前回値ωw_x_cmd_pに関して｜ωw_x_cmd_p｜＞ＤＶ2_xという条件が成立するか否かをＳＴＥＰ２４−１で判断する。
【０２１５】
ここで、上記ＤＶ1_xは、予め設定された正の値の閾値（＞０）である。そして、｜θbdot_x_dif｜＞ＤＶ1_xであるということは、車両１のＸ軸方向における基体９の傾斜角速度θbdot_xが、制御ユニット５０によるアクチュエータ装置７を介した仮想車輪６２_xの駆動制御から予想される値θbdot_x_expと実際の値θbdot_x_sとの差の絶対値が閾値ＤＶ1_xより大きい状況を意味する。この状況は、Ｘ軸方向における基体９の姿勢が制御ユニット５０による制御に反したものであり、その原因として、仮想車輪６２_xの空転が含まれ得る。
【０２１６】
また、上記ＤＶ2_xは、予め設定された正の値の閾値（＞０）である。そして、｜ωw_x_cmd_p｜＞ＤＶ2_xであるということは、制御ユニット５０によるアクチュエータ装置７を介しての仮想車輪６２_xの仮想車輪回転角速度指令の前回値ωw_x_cmd_pの絶対値が閾値ＤＶ2_xより大きい状況を意味する。この状況では、制御ユニット５０による駆動制御が仮想車輪６２_xを所定の回転角速度を超えて駆動させるものとなっている。例えば、静止又は静止に近い状態にある車両１にＸ軸方向に外力が加えられたとき、この外力によって仮想車輪６２_xが回転した状態になるので、仮想車輪６２_xが空転していない状態とみなすことが可能であっても、前記｜θbdot_x_dif｜＞ＤＶ1_xの条件を満たす状況がある。そこで、前記｜ωw_x_cmd_p｜＞ＤＶ2_xの条件を追加することで、仮想車輪６２_xが空転しているとみなされるおそれ（以下、みなし空転のおそれという）があることを精度良く判断することが可能となる。
【０２１７】
従って、ＳＴＥＰ２４−１の判断結果が肯定的になる状況は、仮想車輪６２_xにみなし空転のおそれがある状況である。
【０２１８】
ＳＴＥＰ２４−１の判断結果が否定的となる場合、すなわち、仮想車輪６２_xにみなし空転のおそれがないと判断した場合には、空転抑制部８１は、次に、ＳＴＥＰ２４−２の判断処理を実行する。空転抑制部８１は、ＳＴＥＰ２４−２において、具体的には、まず、前記ＳＴＥＰ２２で算出した基体傾斜角速度偏差θbdot_y_difに関して｜θbdot_y_dif｜＞ＤＶ1_yという条件が成立し、且つ、ＳＴＥＰ２１で遅延要素８１ｂから出力された仮想車輪回転角速度指令の前回値ωw_y_cmd_pに関して｜ωw_y_cmd_p｜＞ＤＶ2_yという条件が成立するか否かを判断する。
【０２１９】
ここで、上記ＤＶ1_yは、予め設定された正の値の閾値（＞０）である。そして、｜θbdot_y_dif｜＞ＤＶ1_yであるということは、車両１のＹ軸方向における基体９の傾斜角速度θbdot_yが、制御ユニット５０によるアクチュエータ装置７を介した仮想車輪６２_yの駆動制御から予想される値θbdot_y_expと実際の値θbdot_y_sとの差の絶対値が閾値ＤＶ1_yより大きい状況を意味する。この状況は、Ｙ軸方向における基体９の姿勢が制御ユニット５０による制御に反したものであり、その原因として、仮想車輪６２_yの空転が含まれ得る。
【０２２０】
また、上記ＤＶ2_yは、予め設定された正の値の閾値（＞０）である。そして、｜ωw_y_cmd_p｜＞ＤＶ2_yであるということは、制御ユニット５０によるアクチュエータ装置７を介しての仮想車輪６２_yの仮想車輪回転角速度指令の前回値ωw_y_cmd_pの絶対値が閾値ＤＶ2_yより大きい状況を意味する。この状況では、制御ユニット５０による駆動制御が仮想車輪６２_yを所定の回転角速度を超えて駆動させるものとなっている。例えば、静止又は静止に近い状態にある車両１にＹ軸方向に外力が加えられたとき、この外力によって仮想車輪６２_yが回転した状態になるので、仮想車輪６２_yにみなし空転がなくとも、前記｜θbdot_y_dif｜＞ＤＶ1_yの条件を満たす状況がある。そこで、前記｜ωw_y_cmd_p｜＞ＤＶ2_yの条件を追加することで、仮想車輪６２_yにみなし空転のおそれがあることを精度良く判断することが可能となる。
【０２２１】
従って、ＳＴＥＰ２４−２の判断結果が肯定的になる状況は、仮想車輪６２_yにみなし空転のおそれがある状況である。
【０２２２】
なお、閾値ＤＶ1_y，ＤＶ2_yは、それぞれ閾値ＤＶ1_x，ＤＶ2_xよりも小さい値に設定することが好ましい。これにより、ドーナツ状である車輪体５の車輪径が小さいＹ軸方向の空転検知の感度がＸ軸方向よりも高まり、車両１の安定性を向上させることが可能となる。
【０２２３】
ＳＴＥＰ２４−１又はＳＴＥＰ２４−２の判断結果が肯定的な場合、すなわち、仮想車輪６２_x，６２_yの少なくもいずれかにみなし空転が発生しているおそれがあると判断した場合には、空転抑制部８１は、ＳＴＥＰ２４−３において、インクリメントカウンタのカウンタ値ＣＮＴに１を加える。このインクリメントカウントは、空転が発生しているおそれを検知した後の制御処理周期の経過回数を計数するカウンタである。
【０２２４】
次いで、空転抑制部８１は、インクリメントカウンタのカウント値ＣＮＴが閾値ＤＶ1_CNTよりも大きいか否かをＳＴＥＰ２４−４にて判断する。
【０２２５】
ここで、上記ＤＶ1_CNTは、予め設定された正の値の閾値（＞０）であり、空転判定カウント閾値である。そして、ＣＮＴ＞ＤＶ1_CNTであるということは、空転が発生しているおそれがあると判断された状態が予め定められた所定時間（＝Δｔ・ＤＶ1_CNT）を越えて連続したことを意味し、空転が発生したことが確実的となる。
【０２２６】
そこで、空転抑制部８１は、ＳＴＥＰ２３−４の判断結果が肯定的である場合には、ＳＴＥＰ２４−５において、インクリメントカウンタのカウント値ＣＮＴを“０”にリセットし、ＳＴＥＰ２４−６において、処理モードを非空転モードから空転モードに変更して、図１６の処理を終了する。
【０２２７】
一方、ＳＴＥＰ２４−１及びＳＴＥＰ２４−２の判断結果が否定的な場合には、ＳＴＥＰ２４−７において、インクリメントカウンタのカウント値ＣＮＴを“０”にリセットして、図１６の処理を終了する。なお、ＳＴＥＰ２４−２の判断結果が否定的となる場合には、処理モードは変更されないので、次回の制御処理周期においても、処理モードは、非空転モードに維持されることとなる。
【０２２８】
以上が、ＳＴＥＰ２４の非空転モードの処理の詳細である。
【０２２９】
次に、ＳＴＥＰ２５における空転モードの処理は、図１７のフローチャートに示す如く実行される。具体的には、空転抑制部８１は、まず、前記ＳＴＥＰ２２で算出した基体傾斜角速度偏差θbdot_x_difに関して｜θbdot_x_dif｜＜ＤＶ1_xという条件が成立するか否かをＳＴＥＰ２４−１で判断する。
【０２３０】
｜θbdot_x_dif｜＜ＤＶ1_xであるということは、車両１のＸ軸方向における基体９の傾斜角速度θbdot_xが、制御ユニット５０によるアクチュエータ装置７を介しての仮想車輪６２_xの駆動制御から予想される値θbdot_x_expと実際の値θbdot_x_sと偏差θbdot_x_difの絶対値が閾値ＤＶ1_xより小さい状況を意味する。この場合、基体９の傾斜角が制御ユニット５０によるＸ軸方向における姿勢制御の意図に合致又はほぼ合致しており、仮想車輪６２_xにみなし空転のおそれは少ない。
【０２３１】
従って、ＳＴＥＰ２５−１の判断結果が肯定的になる状況は、仮想車輪６２_xにみなし空転のおそれが少ない状況である。
【０２３２】
ＳＴＥＰ２５−１の判断結果が肯定的となる場合、すなわち、仮想車輪６２_xにみなし空転のおそれが少ないと判断した場合には、空転抑制部８１は、次に、ＳＴＥＰ２５−２の判断処理を実行する。具体的には、空転抑制部８１は、ＳＴＥＰ２５−２において、まず、前記ＳＴＥＰ２２で算出した基体傾斜角速度偏差θbdot_y_difに関して｜θbdot_y_dif｜＜ＤＶ1_yという条件が成立するか否かを判断する。
【０２３３】
｜θbdot_y_dif｜＜ＤＶ1_yであるということは、車両１のＹ軸方向における基体９の傾斜角速度θbdot_yが、制御ユニット５０によるアクチュエータ装置７を介しての仮想車輪６２_yの駆動制御から予想される値θbdot_y_expと実際の値θbdot_y_sと偏差θbdot_y_difの絶対値が閾値ＤＶ1_yより小さい状況を意味する。この場合、基体９の傾斜角が制御ユニット５０によるＹ軸方向における姿勢制御の意図に合致又はほぼ合致しており、仮想車輪６２_yにみなし空転のおそれが少ない状況である。
【０２３４】
従って、ＳＴＥＰ２５−２の判断結果が肯定的になる状況は、仮想車輪６２_yにみない空転のおそれが少ない状況である。
【０２３５】
ＳＴＥＰ２５−２の判断結果が肯定的な場合、すなわち、仮想車輪６２_x，６２_yのいずれもみなし空転のおそれが少ないと判断した場合には、空転抑制部８１は、ＳＴＥＰ２５−３において、インクリメントカウンタのカウンタ値ＣＮＴに１を加える。このインクリメントカウントは、空転の解消の可能性を検知した後の制御処理周期の経過回数を計数するカウンタである。
【０２３６】
次いで、空転抑制部８１は、インクリメントカウンタのカウント値ＣＮＴが閾値ＤＶ2_CNTよりも大きいか否かをＳＴＥＰ２４−４にて判断する。
【０２３７】
ここで、上記ＤＶ2_CNTは、予め設定された正の値の閾値（＞０）であり、非空転（接地）判定カウント閾値である。そして、ＣＮＴ＞ＤＶ2_CNTであるということは、仮想車輪６２_x，６２_yにみなし空転のおそれが少ないと判断された状態が予め定められた所定時間（＝Δｔ・ＤＶ2_CNT）を越えて連続したことを意味し、空転が解消したことが確実的となる。
【０２３８】
そこで、空転抑制部８１は、ＳＴＥＰ２３−４の判断結果が肯定的である場合には、ＳＴＥＰ２５−５において、インクリメントカウンタのカウント値ＣＮＴを“０”にリセットし、ＳＴＥＰ２５−６において、処理モードを空転モードから非空転モードに変更して、図１７の処理を終了する。
【０２３９】
一方、ＳＴＥＰ２５−１又はＳＴＥＰ２５−２の判断結果が否定的な場合には、ＳＴＥＰ２５−７において、インクリメントカウンタのカウント値ＣＮＴを“０”にリセットして、図１７の処理を終了する。なお、ＳＴＥＰ２５−１又はＳＴＥＰ２５−２の判断結果が否定的となる場合には、処理モードは変更されないので、次回の制御処理周期においても、処理モードは、空転モードに維持されることとなる。
【０２４０】
以上が、ＳＴＥＰ２５の空転モードの処理の詳細である。
【０２４１】
図１４の説明に戻って、空転抑制部８１は、上記の如くＳＴＥＰ２４の非空転モードの処理を実行した後、抑制係数λを“１”に決定すると共に、ＳＴＥＰ２７のフィルタリング処理におけるフィルタ時定数Ｔを決定する処理をＳＴＥＰ２６にて実行する。この場合、フィルタ時定数Ｔを比較的短い時定数Ｔa、例えば０．０１秒に決定する。
【０２４２】
一方、空転抑制部８１は、上記の如くＳＴＥＰ２５の空転モードの処理を実行した後、次に、抑制係数λを“０”から“１”の範囲内にて決定すると共に、後述するＳＴＥＰ２８のフィルタリング処理におけるフィルタ時定数Ｔを決定する処理をＳＴＥＰ２７にて実行する。
【０２４３】
まず、空転抑制部８１は、抑制係数λの候補値である暫定抑制係数λ_xy_tempを決定する処理をＳＴＥＰ２７−１にて行なう。具体的には、空転抑制部８１は、次式１１ｘ，１１ｙにより、暫定抑制係数λ_xy_tempを算出する。
【０２４４】
λ_x_temp＝Ａ_x・｜θb_x_s｜＋Ｂ_x    ……式１１ｘ
λ_y_temp＝Ａ_y・｜θb_y_s｜＋Ｂ_y    ……式１１ｙ
ここで、式１１ｘ，１１ｙにおけるＡ_x，Ａ_yは、それぞれ、予め設定された負の定数値（＜０）であり、Ｂ_x，Ｂ_yは、それぞれ、予め設定された正の定数値（＞０）である。従って、基体傾斜角度計測値θb_xy_sの絶対値が大きいほど、すなわち基体９の傾斜が大きいほど、暫定抑制係数λ_xy_tempは小さくなり、基体傾斜角度計測値θb_xy_sが０である場合、すなわち基体９が傾斜していない場合、暫定抑制係数λ_xy_tempがＢ_xyで最大となる。
【０２４５】
なお、Ａ_xy，Ｂ_xyは、基体傾斜角度計測値θb_xy_sの絶対値が所定角度θth1_xy、例えばθb_x_sが１０度、θb_y_sが５度のとき、暫定抑制係数λ_xy_tempが“０”となるように設定されている。すなわち、基体傾斜角度計測値θb_xy_sの絶対値が所定角度θth1_xyを超えると、暫定抑制係数λ_xy_tempは負の値（＜０）になる。このように、暫定抑制係数λ_xy_tempが負の値になる境界における基体傾斜角度計測値θb_xy_sの絶対値が、Ｘ軸方向よりもＹ軸方向のほうが大きくなっている。これにより、ドーナツ状である車輪体５の車輪径が小さいＹ軸方向の空転検知の感度がＸ軸方向よりも高まり、車両１の安定性を向上させることが可能となる。
【０２４６】
また、Ａ_xy，Ｂ_xyは、基体傾斜角度計測値θb_xy_sの絶対値が所定角度θth2_xy、例えばθb_x_sが２度、θb_y_sが１度のとき、暫定抑制係数λ_xy_tempが“１”となるように設定されている。すなわち、基体傾斜角度計測値θb_xy_sの絶対値が所定角度θth1_xy未満であると、暫定抑制係数λ_xy_tempは１を超える値（＞１）になる。このように、暫定抑制係数λ_xy_tempが“１”となる境界における基体傾斜角度計測値θb_xy_sの絶対値が、Ｘ軸方向よりもＹ軸方向のほうが小さくなっている。これにより、ドーナツ状である車輪体５の車輪径が小さいＹ軸方向の空転検知の感度がＸ軸方向よりも高まり、車両１の安定性を向上させることが可能となる。ただし、基体傾斜角度計測値θb_x_s，θb_y_sの絶対値が所定の同じ角度、例えば０度のとき、暫定抑制係数λ_xy_tempが“１”となるように、Ａ_xy，Ｂ_xyを設定してもよい。
【０２４７】
次に、空転抑制部８１は、ＳＴＥＰ２７−１にて算出した暫定抑制係数λ_xy_tempを用いて、抑制係数λを決定する処理をＳＴＥＰ２７−２にて行なう。具体的には、空転抑制部８１は、暫定抑制係数λ_x_temp，λ_y_tempのうちの小さいほうの値ｍｉｎ（λ_x_temp，λ_y_temp）を、抑制係数λとして仮決定する。そして、この仮決定した抑制係数λの値が“０”から“１”の範囲になるように（０＜＝λ＜＝１）リミッタを通してなる値を、抑制係数λの今回値として決定する。この場合、リミッタは、抑制係数λが過大や過小になるのを防止するためのものであり、仮決定した抑制係数λの値が“０”から“１”の範囲である場合には、その抑制係数λの値をそのまま今回値として出力する。しかし、リミッタは、仮決定した抑制係数λの値が“０”未満である場合には、“０”を抑制係数λの今回値として出力し、仮決定した抑制係数λの値が“１”を超える場合には、“１”を抑制係数λの今回値として出力する。
【０２４８】
このようにして、基体傾斜角度計測値θb_x_sの絶対値が所定角度θth1_x以上である場合、又は基体傾斜角度計測値θb_y_sの絶対値が所定角度θth1_y以上である場合、抑制係数λの今回値は“０”に決定される。また、基体傾斜角度計測値θb_x_sの絶対値が所定角度θth2_x以下である場合、又は基体傾斜角度計測値θb_y_sの絶対値が所定角度θth21_y以下である場合、抑制係数λの今回値は“１”に決定される。
【０２４９】
次いで、空転抑制部８１は、後述するＳＴＥＰ２８のフィルタリング処理におけるフィルタ時定数Ｔを決定する処理をＳＴＥＰ２７−３にて実行する。この場合、フィルタ時定数Ｔを比較的長い時定数Ｔb、例えば０．１秒に決定する。
【０２５０】
そして、空転抑制部８１は、ＳＴＥＰ２６又はＳＴＥＰ２７の処理を実行した後、ＳＴＥＰ２６又はＳＴＥＰ２７で決定した抑制係数λをフィルタに入力する処理（フィルタリング処理）をＳＴＥＰ２８にて実行する。
【０２５１】
ここで、抑制係数λを入力するフィルタは、特に、処理モードが空転モードと非空転モードと間で変更された直後に、抑制係数λの大きさがステップ状に急変するのを防止するための一次遅れ特性のローパスフィルタである。そして、処理モードが空転モードから非空転従モードに変更された場合、ＳＴＥＰ２６で決定されたフィルタ時定数Ｔは比較的短い時定数Ｔaに設定されているので、抑制係数λが急変する空転モードから非空転モードに変更された直後以外の状況ではフィルタの出力値が抑制係数λ、即ち“１”に一致又はほぼ一致するようになっている。一方、処理モードが非空転モードから空転モードに変更された場合、ＳＴＥＰ２７−３で決定されたフィルタ時定数Ｔは比較的長い時定数Ｔbに設定されているので、非空転モードから空転モードに変更され抑制係数λが急変しても、フィルタの出力値が急変しないようになっている。
【０２５２】
ＳＴＥＰ２８の処理を実行して、図１４の処理を終了する。
【０２５３】
以上が空転抑制部８１の処理の詳細である。
【０２５４】
以上説明した空転抑制部８１の処理によって、抑制係数λは、以下のような態様で決定されることとなる。
【０２５５】
例えば、現在の処理モードが非空転モードであるとすると、前記ＳＴＥＰ２４−１又はＳＴＥＰ２４−２の判断結果が否定的となると、処理モードは非空転モードに維持され、抑制係数λは“１”から変更されない（ＳＴＥＰ２６）。そのため、前記姿勢制御演算部８０から出力された仮想車輪回転角速度指令ωw_xy_cmdの値がそのまま、前記モータ指令演算部８２に入力される。
【０２５６】
一方、前記ＳＴＥＰ２４−１且つＳＴＥＰ２４−２の判断結果が否定的であり、その状態が予め定められた所定時間（＝Δｔ・ＤＶ1_CNT）を越えて連続すると（ＳＴＥＰ２４−４：ＹＥＳ）、処理モードが空転モードに変更される。そして、ＳＴＥＰ２７で抑制係数λの変更が行なわれ、ＳＴＥＰ２８でフィルタリング処置された後、抑制係数λは空転抑制部８１から出力される。このとき出力される抑制係数λは“０”から“１”の範囲であり、この抑制係数λの値に応じて、前記姿勢制御演算部８０からの出力された仮想車輪回転角速度指令ωw_xy_cmdの値が前記演算部８３で抑制されて、前記モータ指令演算部８２に入力される。
【０２５７】
ＳＴＥＰ２７で決定される抑制係数λの値は、基体傾斜角度θb_xyの絶対値が大きいほど小さくなるように設定される。そのため、基体９の傾斜が大きくほど、より早急に空転の解消を図ることができる。ところで、車輪体５がドーナツ形状であるため、車両１の移動速度は、Ｘ軸方向よりもＹ軸方向のほうが遅い。そこで、ＳＴＥＰ２７で決定される抑制係数λの値は、Ｘ軸方向における基体傾斜角度θb_xの絶対値に対応して変化する抑制係数λの変化率｜Ａ_x｜よりも、Ｙ軸方向における基体斜角度θb_yの絶対値に対応して変化する抑制係数λの変化率｜Ａ_y｜の方を大きくしている。これにより、移動速度の遅いＹ軸方向の基体９の傾斜が大きくなった場合、移動速度の速いＸ軸方向の基体９の傾斜が大きくなった場合に比べて、より早急に空転の解消を図ることが可能となり、車両１をより早急に安定化することができる。
【０２５８】
そして、処理モードが空転モードであるとき、前記ＳＴＥＰ２５−１且つＳＴＥＰ２５−２の判断結果が肯定的であり、その状態が予め定められた所定時間（＝Δｔ・ＤＶ2_CNT）を越えて連続すると（ＳＴＥＰ２５−４：ＹＥＳ）、処理モードが非空転モードに変更され、抑制係数λは“１”に戻る（ＳＴＥＰ２６）。
【０２５９】
以上が空転抑制部８１の演算処理の詳細である。
【０２６０】
図９の説明に戻って、制御ユニット５０は、次に、前記姿勢制御演算部８０で決定した仮想車輪回転角速度指令ωw_x_cmd，ωw_y_cmdに空転抑制部８１で決定した抑制係数λを乗じた値を前記演算部８３で算出する。そして、制御ユニット５０は、空転発生の有無に応じて演算部８３で抑制された仮想車輪回転角速度指令ωw_x_cmd，ωw_y_cmdをモータ指令演算部８２に入力し、該モータ指令演算部８２の処理を実行することによって、電動モータ３１Ｒの速度指令ω_R_cmdと電動モータ３１Ｌの速度指令ω_L_cmdとを決定する。このモータ指令演算部８２の処理は、前記リミット処理部８６（図１１参照）のＸＹ−ＲＬ変換部８６ｂの処理と同じである。
【０２６１】
具体的には、モータ指令演算部８２は、前記式０１ａ，０１ｂのωw_x，ωw_y，ω_R，ω_Lをそれぞれ、ωw_x_cmd，ωw_y_cmd，ω_R_cmd，ω_L_cmdに置き換えて得られる連立方程式を、ω_R_cmd，ω_L_cmdを未知数として解くことによって、電動モータ３１Ｒ，３１Ｌのそれぞれの速度指令ω_R_cmd，ω_L_cmdを決定する。
【０２６２】
以上により前記ＳＴＥＰ９の車両制御演算処理が完了する。
【０２６３】
以上説明した如く制御ユニット５０が制御演算処理を実行することによって、前記搭乗モード及び自立モードのいずれの動作モードにおいても、基本的には、シート３及び基体９の姿勢が、前記基体傾斜角度偏差計測値θbe_x_s，θbe_y_sの両方が“０”となる姿勢（以下、この姿勢を基本姿勢という）に保たれている状態では、車両系重心点が静止するように操作量（制御入力）としての仮想車輪回転角加速度指令ωdotw_xy_cmdが決定される。そして、シート３及び基体９の姿勢を前記基本姿勢に対して傾けると、換言すれば、車両系重心点（車両・乗員全体重心点又は車両単体重心点）の水平方向位置を、車輪体５の接地面のほぼ真上に位置する状態から変位させると、シート３及び基体９の姿勢を基本姿勢に復元させるように（θbe_x_s，θbe_y_sを“０”に近づけるか、もしくは“０”に保持するように）、仮想車輪回転角加速度指令ωdotw_xy_cmdが決定される。
【０２６４】
そして、ωdotw_xy_cmdの各成分を積分してなる仮想車輪回転角速度指令ωw_xy_cmdを変換してなる電動モータ３１Ｒ，３１Ｌのそれぞれの回転角速度が、電動モータ３１Ｒ，３１Ｌの速度指令ω_R_cmd，ω_L_cmdとして決定される。さらに、その速度指令ω_R_cmd，ω_L_cmdに従って、各電動モータ３１Ｒ，３１Ｌの回転速度が制御される。ひいては車輪体５のＸ軸方向及びＹ軸方向のそれぞれの移動速度が、ωw_x_cmdに対応する仮想車輪６２_xの移動速度と、ωw_y_cmdに対応する仮想車輪６２_yの移動速度とに各々一致するように制御される。
【０２６５】
このため、例えば、Ｙ軸周り方向で、実際の基体傾斜角度θb_xが目標値θb_x_objから前傾側にずれると、そのずれを解消すべく（θbe_x_sを“０”に収束させるべく）、車輪体５が前方に向かって移動する。同様に、実際のθb_xが目標値θb_x_objから後傾側にずれると、そのずれを解消すべく（θbe_x_sを“０”に収束させるべく）、車輪体５が後方に向かって移動する。
【０２６６】
また、例えば、Ｘ軸周り方向で、実際の基体傾斜角度θb_yが目標値θb_y_objから右傾側にずれると、そのずれを解消すべく（θbe_y_sを“０”に収束させるべく）、車輪体５が右向きに移動する。同様に、実際のθb_yが目標値θb_y_objから左傾側にずれると、そのずれを解消すべく（θbe_y_sを“０”に収束させるべく）、車輪体５が左向きに移動する。
【０２６７】
さらに、実際の基体傾斜角度θb_x，θb_yの両方が、それぞれ目標値θb_x_obj，θb_y_objからずれると、θb_xのずれを解消するための車輪体５の前後方向の移動動作と、θb_yのずれを解消するための車輪体５の左右方向の移動動作とが合成され、車輪体５がＸ軸方向及びＹ軸方向の合成方向（Ｘ軸方向及びＹ軸方向の両方向に対して傾斜した方向）に移動することとなる。
【０２６８】
このようにして、シート３及び基体９の姿勢が前記基本姿勢から傾くと、その傾いた側に向かって、車輪体５が移動することとなる。従って、例えば前記搭乗モードにおいて、乗員が意図的にその上体をシート３及び基体９と共に傾けると、その傾けた側に、車輪体５が移動することとなる。なお、本実施形態では、後述する理由によって、シート３及び基体９を基本姿勢から傾けた場合における車両系重心点の水平面内の移動方向（Ｚ軸に直交する方向での移動方向）と、車輪体５の移動方向とは必ずしも一致しない。
【０２６９】
そして、車輪体５の移動時（車両１全体の移動時）において、シート３及び基体９の姿勢を、基本姿勢から傾けた一定の姿勢（基体傾斜角度偏差計測値θbe_xy_sが一定となる姿勢）に保持すると、車両系重心点の移動速度（ひいては車輪体５の移動速度）は、制御用目標重心速度Ｖb_xy_mdfdと一定の偏差を有し、且つ、その偏差が基体傾斜角度偏差計測値θbe_xy_sに依存するものとなる移動速度に収束する。
【０２７０】
Ｖb_x_mdfd，Ｖb_x_mdfdが“０”に保たれる状況において、シート３及び基体９の姿勢を、基本姿勢から傾けた一定の姿勢に保持した場合には、前記したように、定常状態において、車両系重心点の移動速度（ひいては車輪体５の移動速度）は、基体傾斜角度偏差計測値θbe_xy_sに依存する大きさ及び向きを有する移動速度に収束することとなる。
【０２７１】
そして、制御ユニット５０により移動動作が制御される車輪体（移動動作部）５の移動運動状態に基づいて算出した基体傾斜角速度予測値θbdot_xy_expと、傾斜センサ５２の出力が示す基体傾斜角速度計測値θbdot_xy_sとの差である基体傾斜角速度偏差θbdot_xy_difに少なくとも基づいて、空転抑制部８１は車輪体５の空転発生を検知する。
【０２７２】
制御ユニット５０により移動動作が制御される車輪体５の移動動作に応じて基体傾斜角速度θbdot_xyは変化するため、その制御結果としての基体傾斜角速度予測値基体傾斜角速度予測値θbdot_xy_expを算出することができる。
【０２７３】
そして、制御ユニット５０で意図した通りに車輪体５が移動動作していれば、基体傾斜角速度計測値θbdot_xy_sと基体傾斜角速度予測値θbdot_xy_expとの間に差は生じず、基体傾斜角速度偏差θbdot_xy_difの絶対値は“０”又は閾値ＤＶ1_xyより小さい微小な値となる。しかし、車輪体５に空転が発生した場合には、制御ユニット５で意図した通りに車輪体５が移動動作せず、基体傾斜角速度計測値θbdot_xy_sと基体傾斜角速度予測値θbdot_xy_expとの間に差が生じ、基体傾斜角速度偏差θbdot_xy_difの絶対値は閾値ＤＶ1_xyより大きな値となる。そこで、基体傾斜角速度偏差θbdot_xy_difに基づいて、車輪体５に空転が発生したおそれを判断することが可能となる。従って、空転抑制部８１は、基体傾斜角速度偏差θbdot_xy_difに少なくとも基づいて、車輪体５の空転発生を検知することができる。
【０２７４】
さらに、上記特許文献４に記載されたスリップ検知とは異なり、移動動作部の構成に拘わらず、空転が発生したおそれを判断することが可能である。さらに、基体傾斜角速度θbdot_xyに影響を及ぼす移動動作部で空転が発生したおそれを検知することが可能であるので、旋回時の他、直進時などの空転も検知することができる。
【０２７５】
そして、例えば、静止又は静止に近い状態にある車両１に外力が加えられ、この外力によって車輪体５が移動したとき、車輪体５に空転が発生していなくとも、基体傾斜角速度偏差θbdot_xy_difが閾値ＤＶ1_xyより大きな値となることがある。そこで、仮想車輪回転角速度指令の前回値ωw_xy_cmd_pの絶対値が閾値ＤＶ2_xyより小さい場合には、車輪体５に空転が発生していないと判断する。これにより、車輪体５に空転が発生したことを精度良く検知することが可能となる。
【０２７６】
ここで、本実施形態の車両１と本発明との対応関係を補足しておく。
【０２７７】
本実施形態では、シート３（搭乗部）が、本発明における傾動部に相当する。
【０２７８】
また、傾斜センサ５２と図７のＳＴＥＰ２の処理とによって、本発明における傾斜角度計測手段が実現される。この場合、基体傾斜角度計測値θb_xy_sが傾動部としてのシート３の傾斜角度の計測値に相当し、基体傾斜角速度計測値θbdot_xy_sが傾動部としてのシート３の傾斜角速度の計測値に相当する。
【０２７９】
また、制御ユニット１０によって本発明における移動動作部制御手段が実現され、該制御ユニット１０が実行する前記ＳＴＥＰ４〜１０の処理が本発明における制御処理に相当する。そして、前記仮想車輪回転角加速度指令ωdotw_xy_cmdが、本発明における制御用操作量に相当する。
【０２８０】
また、前記空転抑制部８１により本発明における空転検知手段が実現され、該空転抑制部８１が実行する前記ＳＴＥＰ２１，２２の処理を行なう手段が本発明における基体傾斜角速度予測値算出手段に相当する。そして、基体傾斜角速度予測値θbdot_xy_expが本発明における傾動部としてのシート３の傾斜角速度の予測値に相当し、基体傾斜角速度偏差θbdot_x_difが本発明における傾動部としてのシート３の傾斜角速度の計測値と予測値との差に相当する。前記式０３ｘ，０３ｙが本発明における車両のモデルに相当する。
【０２８１】
また、閾値ＤＶ2_xyが本発明における移動動作部の回転角速度と比較する所定の閾値に相当する。
【０２８２】
次に、以上説明した実施形態に係わる変形態様に関していくつか説明しておく。
【０２８３】
前記実施形態では、仮想車輪回転角速度指令ωw_x_cmd，ωw_y_cmdに対する抑制係数λを共通なものとしたが、これに限られるものではない。例えば、暫定抑制係数λ_x_temp，λ_y_tempにリミッタ処理及びフィルタリング処理を行った値を、それぞれ仮想車輪回転角速度指令ωw_x_cmd，ωw_y_cmdに対する抑制係数としてもよい。
【０２８４】
また、前記実施形態では、仮想車輪６２_x，６２_yのいずかにおいてのみに空転が発生したことを検知した場合、仮想車輪６２_x，６２_yに関する仮想車輪回転角速度指令ωw_xy_cmdを共に抑制するものとしたが、これに限られるものではない。例えば、空転が発生した仮想車輪６２_x，６２_yに関する仮想車輪回転角速度指令ωw_xy_cmdのみを抑制してもよい。
【０２８５】
また、前記実施形態では、ＳＴＥＰ２１において、仮想車輪回転角速度指令の前回値ωw_xy_cmd_pを微分器８１ｂで微分した出力値を演算部８１ｃに入力するものとしたが、これに限られるものではない。例えば、ＳＴＥＰ９で決定した仮想車輪回転角加速度指令ωwdot_xy_cmdの前回値ωwdot_xy_cmd_pを演算部８１ｃに入力してもよい。
【０２８６】
また、前記実施形態では、ＳＴＥＰ２２において、傾斜センサ５２が取得した出力を基づいて算出した基体傾斜角速度計測値θbdot_xy_sを用いて、基体傾斜角速度偏差θbdot_xy_dif（＝θbdot_xy_exp−θbdot_xy_s）を算出したが、これに限られるものではない。例えば、演算により求めた基体傾斜角速度予測値θbdot_xy_expを用いて、基体傾斜角速度偏差θbdot_xy_dif（＝θbdot_xy_exp−θbdot_xy_s）を算出してもよい。具体的には、基体傾斜角速度θbdot_xyの初期値を予め計測などにより得ておき、式０３ｘ，０３ｙに基づいて算出した基体傾斜角加速度予測値ｄ2θb_xy_exp／dt2を積分することにより、基体傾斜角速度予測値θbdot_xy_expを算出すればよい。ただし、この場合、積分誤差の蓄積のため、基体傾斜角速度θbdot_xyの精度が劣る。
【０２８７】
また、前記実施形態では、ＳＴＥＰ２２で算出した基体傾斜角速度偏差θbdot_xy_dif（＝θbdot_xy_exp−θbdot_xy_s）と閾値ＤＶ1_xyと比較して、仮想車輪６２_x，６２_yに空転が発生したおそれを検知したものとしたが、これに限られるものではない。例えば、基体傾斜角速度計測値θbdot_xy_sを基体傾斜角速度予測値θbdot_xy_expで除算した値（＝θbdot_xy_s／θbdot_xy_exp）を閾値と比較して、仮想車輪６２_x，６２_yに空転が発生したおそれを検知してもよい。また、ＳＴＥＰ２１で算出した基体傾斜角加速度予測値ｄ2θb_xy_exp／dt2と、傾斜センサ５２の出力値が示す基体９の傾斜角加速度との偏差を閾値と比較して、仮想車輪６２_x，６２_yに空転が発生したおそれを検知してもよい。ただし、この場合、計測時のノイズ等により、検知精度が劣る。
【０２８８】
また、前記実施形態では、図１及び図２に示した構造の車両１を例示したが、本発明における倒立振子型車両１は、本実施形態で例示した車両に限られるものではない。
【０２８９】
具体的には、本実施形態の車両１の移動動作部としての車輪体５は一体構造のものであるが、例えば、前記特許文献３の図１０に記載されているような構造のものであってもよい。すなわち、剛性を有する円環状の軸体に、複数のローラをその軸心が該軸体の接線方向に向くようにして回転自在に外挿し、これらの複数のローラを軸体に沿って円周方向に配列させることによって、車輪体を構成してもよい。
【０２９０】
さらに移動動作部は、例えば、特許文献２の図３に記載されているようなクローラ状の構造のものであってもよい。
【０２９１】
あるいは、例えば、前記特許文献２の図５、特許文献３の図７、もしくは特許文献１の図１に記載されているように、移動動作部を球体により構成し、この球体を、アクチュエータ装置（例えば前記車輪体５を有するアクチュエータ装置）によりＸ軸周り方向及びＹ軸周り方向に回転駆動するように車両を構成してもよい。
【０２９２】
また、本実施形態では、傾動部としてシート３を備えた車両１を例示したが、本発明における倒立振子型車両は、例えば特許文献３の図８に見られるように、乗員が両足を載せるステップと、そのステップ上で起立した乗員が把持する部分とを傾動部として基体に組付けた構造の車両であってもよい。
【０２９３】
このように本発明は、前記特許文献１〜３等に見られる如き、各種の構造の倒立振子型車両に適用することが可能である。
【０２９４】
さらには、本発明における倒立振子型車両は、床面上を全方向に移動可能な移動動作部を複数（例えば、左右方向に２つ、あるいは、前後方向に２つ、あるいは、３つ以上）備えていてもよい。
【０２９５】
また、本発明における倒立振子型車両は、傾動部を１軸周り（例えば車両に搭乗した乗員の左右方向の軸周り）だけ、傾動自在とし、その傾動に応じて車両を乗員の前後方向に移動させるような形態の倒立振子型車両であってもよい。
【０２９６】
また、前記実施形態の倒立振子型車両では、傾動部として、乗員の搭乗部（シート）３を備えた車両であるが、乗員の搭乗部３の代わりに、荷物等の運搬対象物体を搭載する搭載部を備えたものであってもよい。この場合には、搭載部に運搬対象物を搭載した状態で、前記搭乗モードと同様の制御処理を実行し、該運搬対象物を搭載していない状態で、前記自立モードと同様の制御処理を実行するようにすればよい。また、傾動部として、ロボットの上半身部分等を備えた車両であってもよい。
【符号の説明】
【０２９７】
１…倒立振子型車両、３…シート（傾動部）、５…車輪体（移動動作部）、７…アクチュエータ装置、９…基体、５０…制御ユニット（移動動作部制御手段）、５２…傾斜センサ（傾斜角速度計測手段）、８１…空転抑制部（傾斜角速度予測値算出手段、空転検知手段）、ＳＴＥＰ２…傾斜角度計測手段、ＳＴＥＰ２１…傾斜角速度予測値算出手段。
【図１】
2011105070.tif 000003
【図２】
2011105070.tif 000004
【図３】
2011105070.tif 000005
【図４】
2011105070.tif 000006
【図５】
2011105070.tif 000007
【図６】
2011105070.tif 000008
【図７】
2011105070.tif 000009
【図８】
2011105070.tif 000010
【図９】
2011105070.tif 000011
【図１０】
2011105070.tif 000012
【図１１】
2011105070.tif 000013
【図１２】
2011105070.tif 000014
【図１３】
2011105070.tif 000015
【図１４】
2011105070.tif 000016
【図１５】
2011105070.tif 000017
【図１６】
2011105070.tif 000018
【図１７】
2011105070.tif 000019