複数移動体の行動範囲制限システム
【課題】複数の移動体のうち、あらかじめ設定された行動範囲を逸脱した移動体に対して、設定行動範囲内に帰還するように該子機を制限するシステムを提供する。
【解決手段】本発明による行動範囲制限システムは、乗員によって運転可能な、1つ以上の子機と、前記子機の位置を制御する特定機と、前記子機及び特定機の位置情報を供給する位置測定装置とからなる。特定機202Mは、位置測定装置206から特定機及び子機の現在位置情報を取得し、子機202Sの位置が特定機によってあらかじめ設定された制限領域302を逸脱しているか否かを判断し、逸脱している場合、特定機202Mは、子機202Sに対して、前記制限領域302内の目標帰還位置に移動するように指示情報を送信する。子機202Sは、前記指示情報を受信すると、位置情報に基づいて前記目標帰還位置に移動するように移動動作部5を制御する。
【解決手段】本発明による行動範囲制限システムは、乗員によって運転可能な、1つ以上の子機と、前記子機の位置を制御する特定機と、前記子機及び特定機の位置情報を供給する位置測定装置とからなる。特定機202Mは、位置測定装置206から特定機及び子機の現在位置情報を取得し、子機202Sの位置が特定機によってあらかじめ設定された制限領域302を逸脱しているか否かを判断し、逸脱している場合、特定機202Mは、子機202Sに対して、前記制限領域302内の目標帰還位置に移動するように指示情報を送信する。子機202Sは、前記指示情報を受信すると、位置情報に基づいて前記目標帰還位置に移動するように移動動作部5を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の移動体の行動範囲を制限するシステムに関する。
【背景技術】
【0002】
床面上を全方向(2次元的な全方向)に移動可能な全方向移動車両としては、例えば、特許文献1、2に見られるものが本願出願人により提案されている。これらの特許文献1、2に見られる全方向移動車両にあっては、床面に接地しながら該床面上を全方向に移動可能な、球体状又は車輪状又はクローラ状の移動動作部と、該移動動作部を駆動する電動モータ等を有するアクチュエータ装置とが車両の基体に組付けられている。そして、この車両は、アクチュエータ装置により移動動作部を駆動することによって、床面上を移動する。
【0003】
また、この種の全方向移動車両の移動動作を制御する技術としては、例えば特許文献3に見られる技術が本願出願人により提案されている。この技術では、車両の基体が球体状の移動動作部に対して前後・左右に傾動自在に設けられている。そして、基体の傾き角を計測し、この傾き角を所要の角度に保つように、移動動作部を駆動する電動モータのトルクを制御することによって、基体の傾動動作に応じて車両を移動させるようにしている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2008/132778号
【特許文献2】国際公開第2008/132779号
【特許文献3】特許第3070015号公報
【特許文献4】特開2005−267079号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
被監督者が、特許文献1、2に開示されているような車両に搭乗して自由に運転できるような状況下においては、多くの場合、被監督者の行動をあらかじめ設定された行動範囲内に制限することが望まれるが、特許文献3に開示されているような制御装置では、このような制御を行うことができないという問題がある。
【0006】
被監督者の行動範囲を監視するシステムについては、特許文献4に開示されている。しかし、特許文献4に記載の技術では、被監督者が行動予定範囲を逸脱した場合、監督者に対して単に警告がなされるのみであるため、被監督者を確実に行動予定範囲内に戻すことができないという問題がある。
【0007】
本発明は、上記問題を解決すべくなされたもので、その目的は、被監督者が搭乗している移動体が予定された行動範囲を逸脱した場合、被監督者の移動体が行動範囲内に帰還するように制御するシステムを提供することにある。
【課題を解決するための手段】
【0008】
上記問題を解決するために、請求項1に記載した発明は、1つ以上の子機(例えば、実施形態による子機202S)と、前記子機の位置を制御する特定機(例えば、実施形態による特定機202M)と、前記子機及び特定機の位置情報を供給する位置測定装置(例えば、実施形態による位置測定装置206)とからなる行動範囲制限システム(例えば、実施形態による行動範囲制限システム200)であって、前記子機は、情報を受信する受信部(例えば、実施形態による受信装置212S)を備え、前記特定機は、情報を受信する受信部(例えば、実施形態による受信装置212M)と、情報を送信する送信部(例えば、実施形態による送信装置214M)と、該特定機の位置に対する前記子機の行動範囲を制限する第1領域(例えば、実施形態による制限領域300)を設定する第1領域設定部(例えば、実施形態による制限範囲制限処理部220M)と、前記特定機の受信部を介して、前記位置測定装置から前記特定機及び子機の現在位置情報を取得する位置取得部と(例えば、実施形態による行動範囲制限処理部220M)、前記特定機及び子機の現在位置情報に基づいて、前記子機の位置が前記第1領域を逸脱したか否かを判断する第1領域判断部(例えば、実施形態による行動範囲制限処理部220M)と、前記第1領域判断部により前記子機が前記第1領域を逸脱したと判断された場合、前記特定機の送信部と、前記子機の受信部とを介して、前記子機が第1領域内の所定の位置に移動するように制御する子機制御部とを備えることを特徴とする行動範囲制限システムである。これにより、子機があらかじめ設定された制限範囲を逸脱した場合、特定機は子機を制限範囲内に帰還させることができる。
【0009】
請求項2に記載した発明は、前記特定機は、前記位置取得部によって取得された前記特定機及び子機の現在位置情報に基づいて、該特定機と前記子機との間の距離を算出する距離算出部(例えば、実施形態による行動範囲制限処理部220M)をさらに備え、前記第1領域判断部は、前記距離算出部の算出結果に基づいて、前記子機の位置が前記第1領域を逸脱したか否かを判断することを特徴とする。これにより、特定機及び子機の現在位置間の距離に基づいて、子機が制限範囲を逸脱しているか否かを正確に判断することができる。
【0010】
請求項3に記載した発明は、前記子機制御部は、前記第1領域判断部により前記子機が前記第1領域を逸脱したと判定された場合、前記特定機の送信部を介して、帰還指令及び目標帰還位置情報を前記子機に送信し、前記子機は、走行面を移動可能な被駆動機構(例えば、実施形態による移動動作部5)と、前記被駆動機構を駆動する駆動力を発生さえる駆動部(例えば、実施形態によるアクチュエータ装置7)と、前記被駆動機構および前記駆動部が組み付けられた基体(例えば、実施形態による基体9)と、走行面上を移動可能な被駆動機構(例えば、実施形態による移動動作部5)と、前記子機の受信部を介して、前記位置測定装置から該子機の現在位置情報を取得する位置取得部(例えば、実施形態による行動範囲制限処理部220S)と、前記特定機から前記帰還指令及び目標帰還位置情報を受信した場合に、前記子機の現在位置情報と目標帰還位置情報とに基づいて、前記子機が前記第1領域内の目標帰還位置に移動するように、前記駆動部を制御する駆動制御部(例えば、実施形態による駆動制御部228M)とを備えることを特徴とする。これにより、子機は、特定機からの指示に従い、現在位置と目標帰還位置とに基づいて、制限範囲内に帰還することができる。
【0011】
請求項4に記載した発明は、前記駆動制御部は、前記目標帰還位置に対する前記現在位置の偏差と、前記偏差の時間的変化率とに基づいて、前記子機の所定の代表点における目標速度を逐次決定し、前記目標速度に応じて前記駆動部を制御することを特徴とする。これにより、子機が目標帰還位置に到着するまで、適切な移動速度を逐次決定することができる。
【0012】
請求項5に記載した発明は、前記子機は、搭乗可能でかつ該子機の乗員よって運転可能な移動体であることを特徴とする。これにより、被監督者が子機に搭乗している場合、制限領域を逸脱した被監督者を確実に制限領域内に帰還させることができる。
【0013】
請求項6に記載した発明は、前記子機は、前記代表点における進行速度を取得する進行速度取得部(例えば、実施形態による制御ユニット50)と、前記進行速度が所定の速度以上であるか否かを判断する進行速度判断部(例えば、実施形態による行動範囲制限処理部220S)と、前記進行速度判断部により前記進行速度が所定の速度以上であると判定された場合、前記駆動制御部による前記駆動部の制御に先立って、該子機の乗員に対して減速するよう少なくとも1度警告する警告部(例えば、実施形態による報知装置224S及び/又は表示装置226S)とをさらに備えることを特徴とする。これにより、子機に搭乗している乗員を安全かつ確実に制限領域内に帰還させることができる。
【0014】
請求項7に記載した発明は、前記特定機は、前記第1領域内に第2領域(例えば、実施形態による許可領域304)を設定する第2領域設定部(例えば、実施形態による行動範囲制限処理部220M)と、前記特定機及び子機の現在位置情報に基づいて、前記子機の位置が前記第2領域を逸脱したか否かを判断する第2領域判断部(例えば、実施形態による行動範囲制限処理部220M)と、を備え、前記特定機は、前記第2領域判断部により前記子機が前記第2領域を逸脱したと判断された場合、前記子機の警告部が該子機の乗員に対して前記第1領域を逸脱しないよう警告するように、前記特定機の送信部を介して、前記第2領域判断部の判断結果を前記子機に送信することを特徴とする。これにより、子機が制限領域を逸脱しそうな場合に、子機の乗員に対して制限領域を逸脱しないように前もって警告することができる。
【0015】
請求項8に記載した発明は、前記子機は、全方向移動車両であることを特徴とする。これにより、被監督者が搭乗する全方向移動車両が制限領域を逸脱した場合、該車両を制限領域内に帰還させることができる。
【0016】
請求項9に記載した発明は、前記子機は、倒立振子型移動車両であることを特徴とする。
これにより、被監督者が搭乗する倒立振子型移動車両が制限領域を逸脱した場合、該車両を制限領域内に帰還させることができる。
【0017】
請求項10に記載した発明は、前記駆動制御部は、前記被駆動機構の進行速度が、前記代表点の進行速度よりも大きくなるように、前記駆動部を制御することによって、前記子機及び乗員の全体の重心が前記被駆動機構の接地面のほぼ真上に位置する状態にした後、次いで、前記子機を前記目標帰還位置まで移動させ、目標帰還位置で停止するように、前記駆動部を制御することを特徴とする。これにより、被監督者が搭乗する倒立振子型移動車両を制限領域内の目標帰還位置に移動するように制御することができる。
【0018】
請求項11に記載した発明は、前記特定機は、該特定機の使用者によって搭乗可能でかつ運転可能な移動体である。これにより、監督者は移動体に搭乗して自ら移動しながら、子機の行動範囲を制限することができる。
【0019】
請求項12に記載した発明は、前記特定機は、全方向移動車両であることを特徴とする。これにより、監督者は全方向移動車両に搭乗して自ら移動しながら、子機の行動範囲を制限することができる。
【0020】
請求項13に記載した発明は、前記特定機は、倒立振子型移動車両であることを特徴とする。これにより、監督者は倒立振子型移動車両に搭乗して自ら移動しながら、子機の行動範囲を制限することができる。
【0021】
請求項14に記載した発明は、前記位置測定装置は、GPS装置又は車車間通信装置であることを特徴とする。これにより、特定機及び子機は、正確な位置情報を容易に取得することができる。
【発明の効果】
【0022】
請求項1に記載した発明によれば、特定機は、位置測定装置から子機の位置情報に基づいて、子機があらかじめ設定された制限領域内に位置しているか監視することができ、制限領域から逸脱した場合には、子機を制限領域内へ帰還するように制御することができる。
【0023】
請求項2に記載した発明によれば、特定機と子機との間の距離を一定の範囲内に納めながら、子機の行動を制限することができる。
【0024】
請求項3に記載した発明によれば、子機は、目標帰還位置に移動するように特定機からの指示を受信すると、該子機内の駆動制御装置によって、乗員による運転を一切必要とせずに自身を目標帰還位置に移動するように制御することができる。
【0025】
請求項4に記載した発明によれば、適切な移動速度によって、子機を目標帰還位置に移動させることによって、子機の乗員が受ける心理的及び身体的負担を低減することができる。
【0026】
請求項5に記載した発明によれば、子機に搭乗している被監督者を確実に制限領域内へ帰還するように制御することができることによって、被監督者の迷子を防止するとともに、被監督者の行動を監督者による監視が行き届く安全な領域内に留めることができる。
【0027】
請求項6に記載した発明によれば、子機が目標帰還位置に移動する動作を開始する前に、前もって乗員に警告することよって、帰還制御の開始による乗員の心理的負担を軽減するとともに、安全性を向上させることができる。
【0028】
請求項7に記載した発明によれば、子機が制限領域を逸脱する前に事前に警告することによって、子機の乗員に対して制限領域内で移動するように誘導することができる。
【0029】
請求項8に記載した発明によれば、全方向移動車両に搭乗する被監督者の行動範囲を制限領域内に制限することができる。
【0030】
請求項9に記載した発明によれば、倒立振子型移動車両に搭乗する被監督者の行動範囲を制限領域内に制限することができる。
【0031】
請求項10に記載した発明によれば、倒立振子型移動車両に搭乗する被監督者が安全かつ確実に制限領域内に帰還することができるように、該車両を制御することができる。
【0032】
請求項11に記載した発明によれば、監督者は、移動体に搭乗して自らの意思で移動することによって、子機が行動することができる領域を動的に変化させながら制限することができる。
【0033】
請求項12に記載した発明によれば、監督者は、全方向移動車両に搭乗して自らの意思で移動することによって、子機が行動することができる領域を動的に変化させながら制限することができる。
【0034】
請求項13に記載した発明によれば、監督者は、倒立振子型移動車両に搭乗して自らの意思で移動することによって、子機が行動することができる領域を動的に変化させながら制限することができる。
【0035】
請求項14に記載した発明によれば、特定機は、正確な位置情報を常に取得することによって、子機に対して正確な行動範囲制限を行うことができる。
【図面の簡単な説明】
【0036】
【図1】本発明の一実施形態における全方向移動車両の正面図である。
【図2】本発明の一実施形態における全方向移動車両の側面図である。
【図3】本発明の一実施形態における全方向移動車両の下部を拡大して示す図である。
【図4】本発明の一実施形態における全方向移動車両の下部の斜視図である。
【図5】本発明の一実施形態における全方向移動車両の移動動作部(車輪体)の斜視図である。
【図6】本発明の一実施形態における全方向移動車両の移動動作部(車輪体)とフリーローラとの配置関係を示す図である。
【図7】本発明の一実施形態における全方向移動車両の制御ユニットの処理を示すフローチャートである。
【図8】本発明の一実施形態における全方向移動車両の動力学的挙動を表現する倒立振子モデルを示す図である。
【図9】図7のステップS9の処理に係わる処理機能を示すブロック図である。
【図10】図9に示すゲイン調整部の処理機能を示すブロック図である。
【図11】図10に示すリミット処理部(又は図12に示すリミット処理部)の処理機能を示すブロック図である。
【図12】図9に示す重心速度制限部76の処理機能を示すブロック図である。
【図13】図9に示す姿勢制御演算部80の処理機能を示すブロック図である。
【図14】図9に示す要求重心速度生成部74の処理を示すフローチャートである。
【図15】図14のステップS23のサブルーチン処理を示すフローチャートである。
【図16】図15のステップS23−5のサブルーチン処理を示すフローチャートである。
【図17】図15のステップS23−5のサブルーチン処理を示すフローチャートである。
【図18】図15のステップS23−6のサブルーチン処理を示すフローチャートである。
【図19】図14のステップS24のサブルーチン処理を示すフローチャートである。
【図20】図14のステップS25のサブルーチン処理を示すフローチャートである。
【図21】本発明の一実施形態における行動範囲制限システムを示すブロック図である。
【図22】本発明の一実施形態における子機の行動範囲制限を示す概略図である。
【図23】本発明の一実施形態における行動範囲制限モードの処理を示すフローチャートである。
【図24】本発明の一実施形態における位置制御モードの処理を示すフローチャートである。
【発明を実施するための形態】
【0037】
本発明の一実施形態を以下に説明する。図21に示すように、本実施形態における行動範囲制限システム200は、特定機202M、子機202S、及び位置測定装置206からなる。以下、これらの構成要素は、参照符号の最後に“M”が付されている場合は、特定機202Mの構成要素として識別し、参照符号の最後に“S”が付されている場合は、子機202Sの構成要素として識別する。
【0038】
本実施形態で例示する特定機202M及び子機202Sの移動体は、単に例示的に図1〜6に示すような、全方向移動車両1であり、同一の構造を有している。車両1は、複数存在する車両1のうちいずれかを予め特定機として設定しておくことで特定機202Mとして動作するように構成することができる。同時に、残りの車両1は、特定機202Mによって子機202Sとして動作するように設定することができる。
【0039】
変形態様において、特定機202M及び子機202Sは、後述する倒立振子モデルを用いた全方向移動車両1のみに限らず、他の任意の移動体であってもよい。また、特定機は、移動体のみに限らず、例えばサーバ装置のような固定した位置に配置された装置であってもよい。
【0040】
位置測定装置206は、特定機202M及び子機202Sの現在位置情報を特定機202M及び子機202Sに供給する。本実施形態で例示する位置測定装置206は、GPS衛星及び車車間通信技術などのような他の公知の位置測定技術を用いた装置であってもよい。
【0041】
本実施形態において、特定機202Mは、通信部210M、位置情報取得部216M、記憶部218M、行動範囲制限処理部220M、ユーザインタフェース(UI)部222M、及び駆動制御部228Mを備えている。これら行動範囲制限処理において動作する構成要素は、図示しないが、車両1の適所にそれぞれ配置されている。
【0042】
特定機202Mは、位置測定装置206から各現在位置情報を受信するとともに、子機202Sとの相互通信を行うために、受信装置212M及び送信装置214Mからなる通信部210Mを備えている。本実施形態において、特定機202M及び子機202S間の通信は、既存の無線通信技術を用いて直接的に行われるが、たとえば、無線通信技術で一般的に使用されるホットスポット又は基地局を介した間接的な通信によって確立してもよい。
【0043】
位置情報取得部216Mは、受信装置212Mを介して、位置測定装置206によって供給される現在位置情報を取得する。
【0044】
記憶部218Mは、現在位置情報、制限領域情報、許可領域情報、目標帰還位置、及び車両識別番号などといった、子機202Sの行動範囲制限に用いられる情報を記憶する。
【0045】
行動範囲制限処理部220Mは、以下で詳細に説明する図23の行動範囲制限に関する処理を制御する。
【0046】
UI部222Mは、子機202Sの状態に関する情報を車両1の乗員に対して、音声を用いて聴覚的に伝える報知装置224Mと、文字及び画像など視覚的に伝える表示装置226Mとを備えている。報知装置224M及び表示装置226Mは、より具体的には、例えばスピーカー及び液晶ディスプレイなどであってよい。なお、ユーザインタフェース部222Mは、ボタン、タッチパネルディスプレイ、及びマイクなどの特定機202M及び子機202Sの乗員からの入力を受けることが可能な入力装置を備えてもよい。
【0047】
駆動制御部228Mは、以下で詳述する、車両1の駆動を制御する制御ユニット50を指す。
【0048】
本実施形態で例示する子機202Sの構成は、上述した特定機202Mの構成と同様であり、通信部210S、位置情報取得部216S、記憶部218S、行動範囲制限処理部220S、ユーザインタフェース(UI)部222S、及び駆動制御部228Sを備えている。
【0049】
ただし、変形態様において、子機202Sは、該子機202Sの位置情報を位置測定装置206から直接取得するのではなく、特定機202Mを介して取得するように構成してもよい。
【0050】
車両1が子機202Sとして動作する場合、行動範囲制限処理部220Sは、以下で図24を用いて説明するように、受信装置212Sを介して受信される特定機202Mからの情報に基づいて動作する。
【0051】
駆動制御部228Sも、同様に後述する制御ユニット50に指す。
【0052】
なお、特定機202Mは、以下に詳述する行動範囲制限モードを開始する前に、通信部210Mを介して、通信可能領域300内に位置する他の車両1を複数識別し、その中から行動範囲制限の対象となる子機を1つ以上選択するようにしてもよい。
【0053】
次に、図1〜図6を参照して、本実施形態における全方向移動車両1の構造を説明する。図1及び図2に示すように、本実施形態における全方向移動車両1は、乗員(運転者)の搭乗部3と、床面に接地しながら該床面上を全方向(前後方向及び左右方向を含む2次元的な全方向)に移動可能な移動動作部5と、この移動動作部5を駆動する動力を該移動動作部5に付与するアクチュエータ装置7と、これらの搭乗部3、移動動作部5及びアクチュエータ装置7が組付けられた基体9とを備える。
【0054】
ここで、本実施形態の説明では、「前後方向」、「左右方向」は、それぞれ、搭乗部3に標準的な姿勢で搭乗した乗員の上体の前後方向、左右方向に一致もしくはほぼ一致する方向を意味する。なお、「標準的な姿勢」は、搭乗部3に関して設計的に想定されている姿勢であり、乗員の上体の体幹軸を概ね上下方向に向け、且つ、上体を捻ったりしていない姿勢である。
【0055】
この場合、図1においては、「前後方向」、「左右方向」はそれぞれ、紙面に垂直な方向、紙面の左右方向であり、図2においては、「前後方向」、「左右方向」はそれぞれ、紙面の左右方向、紙面に垂直な方向である。また、本実施形態の説明では、参照符号に付する添え字「R」,「L」は、それぞれ車両1の右側、左側に対応するものという意味で使用する。
【0056】
基体9は、移動動作部5及びアクチュエータ装置7とが組付けられた下部フレーム11と、この下部フレーム11の上端から上方に延設された支柱フレーム13とを備える。
【0057】
支柱フレーム13の上部には、該支柱フレーム13から前方側に張り出したシートフレーム15が固定されている。そして、このシートフレーム15上に、乗員が着座するシート3が装着されている。本実施形態では、このシート3が乗員の搭乗部となっている。従って、本実施形態における全方向移動車両1(以降、単に車両1という)は、乗員がシート3に着座した状態で、床面上を移動するものである。
【0058】
また、シート13の左右には、シート13に着座した乗員が必要に応じて把持するためのグリップ17R,17Lが配置され、これらのグリップ17R,17Lがそれぞれ、支柱フレーム13(又はシートフレーム15)から延設されたブラケット19R,19Lの先端部に固定されている。
【0059】
下部フレーム11は、左右方向に間隔を存して二股状に対向するように配置された一対のカバー部材21R,21Lを備える。これらのカバー部材21R,21Lの上端部(二股の分岐部分)は、前後方向の軸心を有するヒンジ軸23を介して連結され、カバー部材21R,21Lの一方が他方に対して相対的にヒンジ軸23の周りに揺動可能となっている。この場合、カバー部材21R,21Lは、図示を省略するバネによって、カバー部材21R,21Lの下端部側(二股の先端側)が狭まる方向に付勢されている。
【0060】
また、カバー部材21R,21Lのそれぞれの外面部には、前記シート3に着座した乗員の右足を載せるステップ25Rと左足を載せるステップ25Lとが各々、右向き、左向きに張り出すように突設されている。
【0061】
移動動作部5及びアクチュエータ装置7は、下部フレーム11のカバー部材21R,21Lの間に配置されている。これらの移動動作部5及びアクチュエータ装置7の構造を図3〜図6を参照して説明する。
【0062】
なお、本実施形態で例示する移動動作部5及びアクチュエータ装置7は、例えば前記特許文献2の図1に開示されているものと同じ構造のものである。従って、本実施形態の説明においては、移動動作部5及びアクチュエータ装置7の構成に関して、前記特許文献2に記載された事項については、簡略的な説明に留める。
【0063】
本実施形態では、移動動作部5は、ゴム状弾性材により円環状に形成された車輪体であり、ほぼ円形の横断面形状を有する。この移動動作部5(以降、車輪体5という)は、その弾性変形によって、図5及び図6の矢印Y1で示す如く、円形の横断面の中心C1(より詳しくは、円形の横断面中心C1を通って、車輪体5の軸心と同心となる円周線)の周りに回転可能となっている。
【0064】
この車輪体5は、その軸心C2(車輪体5全体の直径方向に直交する軸心C2)を左右方向に向けた状態で、カバー部材21R,21Lの間に配置され、該車輪体5の外周面の下端部にて床面に接地する。
【0065】
そして、車輪体5は、アクチュエータ装置7による駆動(詳細は後述する)によって、図5の矢印Y2で示す如く車輪体5の軸心C2の周りに回転する動作(床面上を輪転する動作)と、車輪体5の横断面中心C1の周りに回転する動作とを行なうことが可能である。その結果、車輪体5は、それらの回転動作の複合動作によって、床面上を全方向に移動することが可能となっている。
【0066】
アクチュエータ装置7は、車輪体5と右側のカバー部材21Rとの間に介装される回転部材27R及びフリーローラ29Rと、車輪体5と左側のカバー部材17Lとの間に介装される回転部材27L及びフリーローラ29Lと、回転部材27R及びフリーローラ29Rの上方に配置されたアクチュエータとしての電動モータ31Rと、回転部材27L及びフリーローラ29Lの上方に配置されたアクチュエータとしての電動モータ31Lとを備える。
【0067】
電動モータ31R,31Lは、それぞれのハウジングがカバー部材21R,21Lに各々取付けられている。なお、図示は省略するが、電動モータ31R,31Lの電源(蓄電器)は、支柱フレーム13等、基体9の適所に搭載されている。
回転部材27Rは、左右方向の軸心を有する支軸33Rを介してカバー部材21Rに回転可能に支持されている。同様に、回転部材27Lは、左右方向の軸心を有する支軸33Lを介してカバー部材21Lに回転可能に支持されている。この場合、回転部材27Rの回転軸心(支軸33Rの軸心)と、回転部材27Lの回転軸心(支軸33Lの軸心)とは同軸心である。
【0068】
回転部材27R,27Lは、それぞれ電動モータ31R,31Lの出力軸に、減速機としての機能を含む動力伝達機構を介して接続されており、電動モータ31R,31Lからそれぞれ伝達される動力(トルク)によって回転駆動される。各動力伝達機構は、例えばプーリ・ベルト式のものである。すなわち、図3に示す如く、回転部材27Rは、プーリ35Rとベルト37Rとを介して電動モータ31Rの出力軸に接続されている。同様に、回転部材27Lは、プーリ35Lとベルト37Lとを介して電動モータ31Lの出力軸に接続されている。
【0069】
なお、上記動力伝達機構は、例えば、スプロケットとリンクチェーンとにより構成されるもの、あるいは、複数のギヤにより構成されるものであってもよい。また、例えば、電動モータ31R,31Lを、それぞれの出力軸が各回転部材27R,27Lと同軸心になるように各回転部材27R,27Lに対向させて配置し、電動モータ31R,31Lのそれぞれの出力軸を回転部材27R,27Lに各々、減速機(遊星歯車装置等)を介して連結するようにしてもよい。
【0070】
各回転部材27R,27Lは、車輪体5側に向かって縮径する円錐台と同様の形状に形成されており、その外周面がテーパ外周面39R,39Lとなっている。
【0071】
回転部材27Rのテーパ外周面39Rの周囲には、回転部材27Rと同心の円周上に等間隔で並ぶようにして、複数のフリーローラ29Rが配列されている。そして、これらのフリーローラ29Rは、それぞれ、ブラケット41Rを介してにテーパ外周面39Rに取付けられ、該ブラケット41Rに回転自在に支承されている。
【0072】
同様に、回転部材27Lのテーパ外周面39Lの周囲には、回転部材27Lと同心の円周上に等間隔で並ぶようにして、複数(フリーローラ29Rと同数)のフリーローラ29Lが配列されている。そして、これらのフリーローラ29Lは、それぞれ、ブラケット41Lを介してにテーパ外周面39Lに取付けられ、該ブラケット41Lに回転自在に支承されている。
【0073】
前記車輪体5は、回転部材27R側のフリーローラ29Rと、回転部材27L側のフリーローラ29Lとの間に挟まれるようにして、回転部材27R,27Lと同軸心に配置されている。
【0074】
この場合、図1及び図6に示すように、各フリーローラ29R,29Lは、その軸心C3が車輪体5の軸心C2に対して傾斜すると共に、車輪体5の直径方向(車輪体5をその軸心C2の方向で見たときに、該軸心C2と各フリーローラ29R,29Lとを結ぶ径方向)に対して傾斜する姿勢で配置されている。そして、このような姿勢で、各フリーローラ29R,29Lのそれぞれの外周面が車輪体5の内周面に斜め方向に圧接されている。
【0075】
より一般的に言えば、右側のフリーローラ29Rは、回転部材27Rが軸心C2の周りに回転駆動されたときに、車輪体5との接触面で、軸心C2周りの方向の摩擦力成分(車輪体5の内周の接線方向の摩擦力成分)と、車輪体5の前記横断面中心C1の周り方向の摩擦力成分(円形の横断面の接線方向の摩擦力成分)とを車輪体5に作用させ得るような姿勢で、車輪体5の内周面に圧接されている。左側のフリーローラ29Lについても同様である。
【0076】
この場合、前記したように、カバー部材21R,21Lは、図示しないバネによって、カバー部材21R,21Lの下端部側(二股の先端側)が狭まる方向に付勢されている。このため、この付勢力によって、右側のフリーローラ29Rと左側のフリーローラ29Lとの間に車輪体5が挟持されると共に、車輪体5に対する各フリーローラ29R,29Lの圧接状態(より詳しくはフリーローラ29R,29Lと車輪体5との間で摩擦力が作用し得る圧接状態)が維持される。
【0077】
以上説明した構造を有する車両1においては、電動モータ31R,31Lによりそれぞれ、回転部材27R,27Lを同方向に等速度で回転駆動した場合には、車輪体5が回転部材27R,27Lと同方向に軸心C2の周りに回転することとなる。これにより、車輪体5が床面上を前後方向に輪転して、車両1の全体が前後方向に移動することとなる。なお、この場合は、車輪体5は、その横断面中心C1の周りには回転しない。
また、例えば、回転部材27R,27Lを互いに逆方向に同じ大きさの速度で回転駆動した場合には、車輪体5は、その横断面中心C1の周りに回転することとなる。これにより、車輪体4がその軸心C2の方向(すなわち左右方向)に移動し、ひいては、車両1の全体が左右方向に移動することとなる。なお、この場合は、車輪体5は、その軸心C2の周りには回転しない。
【0078】
さらに、回転部材27R,27Lを、互いに異なる速度(方向を含めた速度)で、同方向又は逆方向に回転駆動した場合には、車輪体5は、その軸心C2の周りに回転すると同時に、その横断面中心C1の周りに回転することとなる。
【0079】
この時、これらの回転動作の複合動作(合成動作)によって、前後方向及び左右方向に対して傾斜した方向に車輪体5が移動し、ひいては、車両1の全体が車輪体5と同方向に移動することとなる。この場合の車輪体5の移動方向は、回転部材27R,27Lの回転方向を含めた回転速度(回転方向に応じて極性が定義された回転速度ベクトル)の差に依存して変化するものとなる。
【0080】
以上のように車輪体5の移動動作が行なわれるので、電動モータ31R,31Lのそれぞれの回転速度(回転方向を含む)を制御し、ひいては回転部材27R,27Lの回転速度を制御することによって、車両1の移動速度及び移動方向を制御できることとなる。
【0081】
次に、図21の行動範囲制限システム200の動作を、図22に示した子機202Sに対する行動範囲制限の概略図と、図23に示したフローチャートとを参照しながら説明する。
【0082】
特定機の乗員による指示によって、特定機202Mが行動範囲制限モードを開始すると、図23のステップS100で、特定機202Mの行動範囲制限処理部220Mは、子機202Sの行動範囲を制限する制限領域302を設定する。本実施形態において、制限領域302は、図22に示されるように、通信可能領域300内の領域であるとともに、特定機202Mから所定の半径を有する範囲内の領域である。
【0083】
ステップS102で、行動範囲制限処理部220Mは、制限領域内302に許可領域304を設定する。
【0084】
子機202Sの位置が、許可領域304を逸脱した場合に、子機202Sの乗員に対して、制限領域302を超えないように報知装置224S及び/又は表示装置226Sを介して警告を発する。本実施形態において、許可領域304は、制限領域302内の領域であるとともに、特定機202Mから所定の半径を有する範囲内の領域である。
【0085】
すなわち、本実施形態で例示する通信可能領域300、制限領域302、及び許可領域304は、特定機202Mを中心とした円形の領域である。ただし、これらの領域は、上記のように特定機202Mの位置を基準とした相対的な位置関係によってのみ限定されるものではなく、例えばGPS座標などのような絶対的な位置を用いて定義してもよい。
【0086】
特定機202Mによって設定された制限領域302及び許可領域304に関する情報は、特定機202Mの記憶部218Mに記憶される。また、特定機202Mが、送信装置214Mを介して、制限領域302及び許可領域304に関する情報を子機202Sに送信することによって、子機202Sの記憶部218Sにも同様に記憶することができる。
【0087】
ステップS104で、特定機202Mの位置情報取得部216Mは、受信装置212Mを介して位置測定装置206から特定機202M及び子機202Sの現在位置情報を取得する。
【0088】
ステップS106で行動範囲制限処理部220Mは、位置情報取得部216Mによって取得された特定機202M及び子機202Sの現在位置情報に基づき、公知の距離算出方法を用いて特定機202M及び子機202S間の距離を算出する。
【0089】
ステップS108で、行動範囲制限処理部220Mは、前記ステップS106の算出結果に基づいて、子機202Sが設定された許可領域304を逸脱しているか否かを判断する。
【0090】
前記判断の結果、子機202Sは許可領域304を逸脱していないと判断された場合、前記ステップS104に戻る。
【0091】
子機202Sが許可領域304を逸脱していると判断された場合は、ステップS110に進む。
【0092】
前記ステップS110において、子機202Sが許可領域304を逸脱していると判断された場合、行動範囲制限処理部220Mは特定機202Mと子機202Sとの間の距離を再び算出する。
【0093】
ステップS112では、前記ステップS110の算出結果に基づいて、行動範囲制限処理部220Mは、子機202Sが前記設定された制限領域302を逸脱しているか否かを判断する。
【0094】
前記判断の結果、子機202Sが制限領域302を逸脱していないと判断された場合は、ステップS114に進む。
【0095】
子機202Sが制限領域302を逸脱していると判断された場合は、ステップS116に進む。
【0096】
前記ステップS112では、子機202Sが制限領域302を逸脱していないと判断された場合、ステップ114で、特定機202Mは、報知装置224M及び/又は表示装置226Mを介して、その判断結果(すなわち、子機202Sは制限領域302を逸脱していないものの、許可領域304を逸脱している)に関する情報を特定機202Mの乗員に通知するとともに、子機202Sに送信する。
【0097】
子機202Sは、受信装置212Sを介して前記判断結果に関する情報を受信した場合、報知装置224S及び/又は表示装置226Sを介して、制限領域302を逸脱しないよう子機202Sの乗員に対して警告する。
【0098】
前記ステップS112において、子機202Sが前記設定された制限領域302を逸脱していると判断された場合、ステップS116で、特定機202Mは、送信装置214Mを介して子機202Sに帰還指令を送信する。
【0099】
子機202Sは、受信装置212Sを介して帰還指令を受信すると、以下で詳述する位置制御モードに移行し、駆動制御部228S(制御ユニット50)によって制限領域302内の目標帰還位置(例えば、制限領域302を逸脱する直前の位置)に移動するように制御される。
【0100】
ステップS118において、子機202Sが目標帰還位置に到着して位置制御モードが終了すると、子機202Sは、位置情報取得部216Sを介して子機202Sの現在位置を再取得するとともに、送信装置214Sを介して、子機202Sが制限領域302内の目標帰還位置に帰還したことを示す情報を特定機202Mに送信する。
【0101】
特定機202Mは、受信装212Mを介して前記情報を受信した場合、報知装置224M及び/又は表示装置226Mを介して子機202Sが制限領域302内に帰還したことを特定機202Mの乗員に通知する。
【0102】
行動範囲制限モードは、例えば、特定機の乗員による指示によって終了するように構成してもよい。
【0103】
また、子機202Sが複数存在する場合、上述の一連のステップは、逐次的に各子機202Sに対して同時並列的に実行することができる。
【0104】
通信による消費電力を低減するために、子機202Sが許可領域304を逸脱しかつ制限領域302内に位置している場合、特定機202M及び子機202Sは通信頻度を増加する一方で、子機202Sが許可領域304内に位置している場合は、通信頻度を減少してもよい。
【0105】
さらに、前記実施形態において、前記制限領域302及び許可領域304の2つの異なる領域を設定したが、どちらか一方の領域を省略することができる。
【0106】
例えば、制限領域302を省略した変形態様においては、子機202Sが許可領域304を逸脱した場合、位置制御モードは実行せずに、単に子機202Sから警告を発するように構成してもよい。
【0107】
あるいは、許可領域304を省略した変形態様においては、制限領域302を逸脱した場合、子機202Sは警告を発することなく、位置制御モードを実行するように構成してもよい。
【0108】
なお、図23のフローチャートにおいて、特定機202Mの行動範囲制限処理部220Mが行う処理の一部は、子機202Sの行動範囲制限処理部220Sが行うように構成してもよい。
【0109】
次に、子機における位置制御モードの動作について説明する。子機202Sは、特定機202Mからの帰還指令を受信すると、位置制御モードに移行して、図24のフローチャートに示す一連の処理を実行する。
【0110】
ステップS200において、特定機202Mの行動範囲制限処理部220Mは、子機202Sが移動すべき制限領域302内に目標帰還位置を設定する。
【0111】
目標帰還位置は、自動的に設定される、または特定機202Mの乗員によって指示された位置に設定されることが可能であり、たとえば、制限領域302を逸脱する直前の位置など任意に設定することができる。
【0112】
特定機202Mが、送信装置214Mを介して、目標帰還位置に関する情報を子機202Sに送信することによって、目標帰還位置に関する情報は子機202Sの記憶部218Sにも保持される。
【0113】
ステップS202において、子機202Sの代表点における進行速度を取得する。より正確には、以下で詳述するように、図7のステップS1で、計測された傾斜センサ52の出力に基づいて、制御ユニット50の重心速度算出部72が、車両系重心点の移動速度である重心速度Vb_xyの観測値としての重心速度推定値Vb_xy_sを算出する。
【0114】
ステップS204において、子機202Sの行動範囲制限処理部220Sは、前記ステップS202で算出された、代表点の進行速度が所定の速度以上であるか否かを判断する。前記判断の結果、子機202Sの代表点の進行速度が所定の速度以上であると判断された場合、ステップS206に進む。子機202Sの代表点の進行速度が所定の速度以上でないと判断された場合は、ステップS214に進む。
【0115】
前記ステップS204において、子機202Sの代表点の進行速度が所定の速度以上であると判断された場合、ステップS206で、子機202Sの報知装置224S及び又は表示装置226Sは、乗員に対して減速するように、少なくとも1度警告を発する。例えば、一定の周期で複数回の警告を発するように構成してもよく、特定機202Mの乗員があらかじめ警告頻度の設定をできるように構成してもよい。
【0116】
ステップS208において、警告の発生から所定のタイミングで、制御ユニット50は、移動動作部5の進行速度が、前記代表点の進行速度よりも大きくなるように、移動動作部5を制御することによって、乗員によって基体9が傾斜されている状態(すなわち、傾斜方向に移動しようしている状態)から、基体9の上体を起こした状態になるように移動動作部5を制御する。この場合、ある一定時間、停止姿勢において基体9を静止するように構成してもよい。
【0117】
次に、ステップS210において、子機202Sの制御ユニット50は、子機202Sを目標帰還位置に向けて、進行方向(すなわち、制限領域302を逸脱した直後の方向)とは反対方向で移動するように、移動動作部5を制御する。ここで、車両1の上体が起きた状態から目標帰還位置へ移動する際、車両1の上体が目標帰還点へ向けて傾斜させるために、移動動作部5を目標帰還点から遠ざかるように制御する。すなわち、以下で詳述するように、車両1が目標帰還位置へ向けて移動するための傾斜角度を目標傾斜角度とするよう制御ユニット50から制御指令を与える処理を行う(又は、移動速度が目標帰還位置へ向けて発生するように速度指令値を与える)。
【0118】
この場合、子機202Sの移動速度は、後述するように、制御ユニット50により、子機202Sの現在位置と目標帰還位置とに基づいて、逐次決定される。子機202Sの現在位置は、位置測定取得部216Sによって随時取得される。ただし、変形態様において、子機202Sが自らの位置を取得しない場合、子機202Sは、例えば、車車間通信技術を用いて特定機202Mから相対的位置情報を得るように構成してもよい。
【0119】
変形態様として、例えば、子機202Sを転回可能な移動体として場合、進行方向に対して反対方向で目標帰還位置に向けて移動させる代わりに、子機202Sを転回させることよって進行方向を維持したまま目標帰還位置に向けて移動させてもよい。
【0120】
ステップS212における判断結果によって、子機202Sの代表点の進行速度が所定の速度以上でない場合は、S212において前記ステップS208と同様の処理を行う。
【0121】
さらに、ステップS214も、前記ステップS216と同様のステップである。
【0122】
位置制御モードは、子機202Sが、目標帰還位置に到着することで終了する。
【0123】
位置制御モードにおいて、行動範囲制限処理部220Sと制御ユニット50とは、連携して動作する。従って、行動範囲制限処理部220Sは、制御ユニット50内に構成する、又は制御ユニット50と一体化してもよい。
【0124】
以上が本実施形態における行動範囲制限システム200の例示的な動作である。
【0125】
以下、本実施形態の車両1における詳細な動作制御について、より具体的な構成とともに詳細に説明する。なお、以降の説明では、図1及び図2に示すように、前後方向の水平軸をX軸、左右方向の水平軸をY軸、鉛直方向をZ軸とするXYZ座標系を想定し、前後方向、左右方向をそれぞれX軸方向、Y軸方向と言うことがある。
まず、車両1の概略的な動作制御を説明すると、本実施形態では、基本的には、シート3に着座した乗員がその上体を傾けた場合(詳しくは、乗員と車両1とを合わせた全体の重心点の位置(水平面に投影した位置)を動かすように上体を傾けた場合)に、該上体を傾けた側に基体9がシート3と共に傾動する。そして、この時、基体9が傾いた側に車両1が移動するように、車輪体5の移動動作が制御される。例えば、乗員が上体を前傾させ、ひいては、基体9をシート3と共に前傾させると、車両1が前方に移動するように、車輪体5の移動動作が制御される。
【0126】
すなわち、本実施形態では、乗員が上体を動かし、ひいては、シート3と共に基体9を傾動させるという動作が、車両1に対する1つの基本的な操縦操作(車両1の動作要求)とされ、その操縦操作に応じて車輪体5の移動動作がアクチュエータ装置7を介して制御される。
【0127】
ここで、本実施形態の車両1は、その全体の接地面としての車輪体5の接地面が、車両1とこれに搭乗する乗員との全体を床面に投影した領域に比して面積が小さい単一の局所領域となり、その単一の局所領域だけに床反力が作用する。このため、基体9が傾倒しないようにするためには、乗員及び車両1の全体の重心点が車輪体5の接地面のほぼ真上に位置するように、車輪体5を動かす必要がある。
【0128】
そこで、本実施形態では、乗員及び車両1の全体の重心点が、車輪体5の中心点(軸心C2上の中心点)のほぼ真上に位置する状態(より正確には当該重心点が車輪体5の接地面のほぼ真上に位置する状態)での基体9の姿勢を目標姿勢とし、基本的には、基体9の実際の姿勢を目標姿勢に収束させるように、車輪体5の移動動作が制御される。
【0129】
また、車両1を発進させる場合等において、アクチュエータ装置7による推進力とは別に、例えば乗員が必要に応じて自身の足により床を蹴り、それにより車両1の移動速度を増速させる推進力(乗員の足平と床との摩擦力による推進力)を、付加的な外力として車両1に作用させた場合には、それに応じて車両1の移動速度(より正確には、乗員及び車両の全体の重心点の移動速度)が増速するように、車輪体5の移動動作が制御される。なお、当該推進力の付加が停止された状態では、車両1の移動速度が一旦、一定速度に保持された後、減衰して、該車両1が停止するように、車輪体5の移動動作が制御される(車輪体5の制動制御が行なわれる)。
【0130】
さらに、車両1に乗員が搭乗していない状態では、車両1の単体の重心点が、車輪体5の中心点(軸心C2上の中心点)のほぼ真上に位置する状態(より正確には当該重心点が車輪体5の接地面のほぼ真上に位置する状態)での基体9の姿勢を目標姿勢とし、該基体9の実際の姿勢を目標姿勢に収束させ、ひいては、基体9が傾倒することなく車両1が自立するように、車輪体5の移動動作が制御される。
【0131】
本実施形態では、以上の如き車両1の動作制御を行なうために、図1及び図2に示すように、マイクロコンピュータや電動モータ31R,31Lのドライブ回路ユニットなどを含む電子回路ユニットにより構成された制御ユニット50と、基体9の所定の部位の鉛直方向(重力方向)に対する傾斜角θb及びその変化速度(=dθb/dt)を計測するための傾斜センサ52と、車両1に乗員が搭乗しているか否かを検知するための荷重センサ54と、電動モータ31R,31Lのそれぞれの出力軸の回転角度及び回転角速度を検出するための角度センサとしてのロータリエンコーダ56R,56Lがそれぞれ、車両1の適所に搭載されている。
【0132】
この場合、制御ユニット50及び傾斜センサ52は、例えば、基体9の支柱フレーム13の内部に収容された状態で該支柱フレーム13に取付けられている。また、荷重センサ54は、シート3に内蔵されている。また、ロータリーエンコーダ56R,56Lは、それぞれ、電動モータ31R,31Lと一体に設けられている。なお、ロータリーエンコーダ56R,56Lは、それぞれ、回転部材27R,27Lに装着してもよい。
【0133】
上記傾斜センサ52は、より詳しくは、加速度センサとジャイロセンサ等のレートセンサ(角速度センサ)とから構成され、これらのセンサの検出信号を制御ユニット50に出力する。そして、制御ユニット50が、傾斜センサ52の加速度センサ及びレートセンサの出力を基に、所定の計測演算処理(これは公知の演算処理でよい)を実行することによって、傾斜センサ52を搭載した部位(本実施形態では支柱フレーム13)の、鉛直方向に対する傾斜角度θbの計測値とその変化速度(微分値)である傾斜角速度θbdotの計測値とを算出する。
【0134】
この場合、計測する傾斜角度θb(以降、基体傾斜角度θbということがある)は、より詳しくは、それぞれ、Y軸周り方向(ピッチ方向)の成分θb_xと、X軸周り方向(ロール方向)の成分θb_yとから成る。同様に、計測する傾斜角速度θbdot(以降、基体傾斜角速度θbdotということがある)も、Y軸周り方向(ピッチ方向)の成分θbdot_x(=dθb_x/dt)と、X軸周り方向(ロール方向)の成分θbdot_y(=dθb_y/dt)とから成る。
【0135】
なお、本実施形態の説明では、上記基体傾斜角度θbなど、X軸及びY軸の各方向(又は各軸周り方向)の成分を有する運動状態量等の変数、あるいは、該運動状態量に関連する係数等の変数に関しては、その各成分を区別して表記する場合に、該変数の参照符号に、添え字“_x”又は“_y”を付加する。
【0136】
この場合において、並進速度等の並進運動に係わる変数については、そのX軸方向の成分に添え字“_x”を付加し、Y軸方向の成分に添え字“_y”を付加する。
【0137】
一方、角度、回転速度(角速度)、角加速度など、回転運動に係わる変数については、並進運動に係わる変数と添え字を揃えるために、便宜上、Y軸周り方向の成分に添え字“_x”を付加し、X軸周り方向の成分に添え字“_y”を付加する。
【0138】
さらに、X軸方向の成分(又はY軸周り方向の成分)と、Y軸方向の成分(又はX軸周り方向の成分)との組として変数を表記する場合には、該変数の参照符号に添え字“_xy”を付加する。例えば、上記基体傾斜角度θbを、Y軸周り方向の成分θb_xとX軸周り方向の成分θb_yの組として表現する場合には、「基体傾斜角度θb_xy」というように表記する。
【0139】
前記荷重センサ54は、乗員がシート3に着座した場合に該乗員の重量による荷重を受けるようにシート3に内蔵され、その荷重に応じた検出信号を制御ユニット50に出力する。そして、制御ユニット50が、この荷重センサ54の出力により示される荷重の計測値に基づいて、車両1に乗員が搭乗しているか否かを判断する。
【0140】
なお、荷重センサ54の代わりに、例えば、乗員がシート3に着座したときにONとなるようなスイッチ式のセンサを用いてもよい。
【0141】
ロータリエンコーダ56Rは、電動モータ31Rの出力軸が所定角度回転する毎にパルス信号を発生し、このパルス信号を制御ユニット50に出力する。そして、制御ユニット50が、そのパルス信号を基に、電動モータ53Rの出力軸の回転角度を計測し、さらにその回転角度の計測値の時間的変化率(微分値)を電動モータ53Rの回転角速度として計測する。電動モータ31L側のロータリエンコーダ56Lについても同様である。
【0142】
制御ユニット50は、上記の各計測値を用いて所定の演算処理を実行することによって、電動モータ31R,31Lのそれぞれの回転角速度の目標値である速度指令を決定し、その速度指令に従って、電動モータ31R,31Lのそれぞれの回転角速度をフィードバック制御する。
【0143】
なお、電動モータ31Rの出力軸の回転角速度と、回転部材27Rの回転角速度との間の関係は、該出力軸と回転部材27Rとの間の一定値の減速比に応じた比例関係になるので、本実施形態の説明では、便宜上、電動モータ31Rの回転角速度は、回転部材27Rの回転角速度を意味するものとする。同様に、電動モータ31Lの回転角速度は、回転部材27Lの回転角速度を意味するものとする。
【0144】
以下に、制御ユニット50の制御処理をさらに詳細に説明する。
【0145】
制御ユニット50は、所定の制御処理周期で図7のフローチャートに示す処理(メインルーチン処理)を実行する。
【0146】
まず、ステップS1において、制御ユニット50は、傾斜センサ52の出力を取得する。
次いで、ステップS2に進んで、制御ユニット50は、取得した傾斜センサ52の出力を基に、基体傾斜角度θbの計測値θb_xy_sと、基体傾斜角速度θbdotの計測値θbdot_xy_sとを算出する。
【0147】
なお、以降の説明では、上記計測値θb_xy_sなど、変数(状態量)の実際の値の観測値(計測値又は推定値)を参照符号により表記する場合に、該変数の参照符号に、添え字“_s”を付加する。
【0148】
次いで、制御ユニット50は、ステップS3において、荷重センサ54の出力を取得した後、ステップS4の判断処理を実行する。この判断処理においては、制御ユニット50は、取得した荷重センサ54の出力が示す荷重計測値があらかじめ設定された所定値よりも大きいか否かによって、車両1に乗員が搭乗しているか否か(シート3に乗員が着座しているか否か)を判断する。
【0149】
そして、制御ユニット50は、ステップS4の判断結果が肯定的である場合には、基体傾斜角度θbの目標値θb_xy_objを設定する処理と、車両1の動作制御用の定数パラメータ(各種ゲインの基本値など)の値を設定する処理とを、それぞれステップS5、6で実行する。
【0150】
ステップS5においては、制御ユニット50は、基体傾斜角度θbの目標値θb_xy_objとして、あらかじめ定められた搭乗モード用の目標値を設定する。
ここで、「搭乗モード」は、車両1に乗員が搭乗している場合での車両1の動作モードを意味する。この搭乗モード用の目標値θb_xy_objは、車両1とシート3に着座した乗員との全体の重心点(以降、車両・乗員全体重心点という)が車輪体5の接地面のほぼ真上に位置する状態となる基体9の姿勢において、傾斜センサ52の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するようにあらかじめ設定されている。
【0151】
また、ステップS6においては、制御ユニット50は、車両1の動作制御用の定数パラメータの値として、あらかじめ定められた搭乗モード用の値を設定する。なお、定数パラメータは、後述するhx,hy,Ki_a_x,Ki_b_x,Ki_a_y,Ki_b_y(i=1,2,3,4,5)等である。
【0152】
一方、ステップS4の判断結果が否定的である場合には、制御ユニット50は、基体傾斜角度θb_xyの目標値θb_xy_objを設定する処理と、車両1の動作制御用の定数パラメータの値を設定する処理とを、ステップS7、8で実行する。
【0153】
ステップS7においては、制御ユニット50は、傾斜角度θbの目標値θb_xy_objとして、あらかじめ定められた自立モード用の目標値を設定する。
【0154】
ここで、「自立モード」は、車両1に乗員が搭乗していない場合での車両1の動作モードを意味する。この自立モード用の目標値θb_xy_objは、車両1単体の重心点(以降、車両単体重心点という)が車輪体5の接地面のほぼ真上に位置する状態となる基体9の姿勢において、傾斜センサ52の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するようにあらかじめ設定されている。この自立モード用の目標値θb_xy_objは、搭乗モード用の目標値θb_xy_objと一般的には異なる。
【0155】
また、ステップS8においては、制御ユニット50は、車両1の動作制御用の定数パラメータの値として、あらかじめ定められた自立モード用の値を設定する。この自立モード用の定数パラメータの値は、搭乗モード用の定数パラメータの値と異なる。
【0156】
搭乗モードと自立モードとで、上記定数パラメータの値を異ならせるのは、それぞれのモードで上記重心点の高さや、全体質量等が異なることに起因して、制御入力に対する車両1の動作の応答特性が互いに異なるからである。
【0157】
以上のステップS4〜8の処理によって、搭乗モード及び自立モードの各動作モード毎に各別に、基体傾斜角度θb_xyの目標値θb_xy_objと定数パラメータの値とが設定される。
【0158】
なお、ステップS5,6の処理、又はステップS7,8の処理は、制御処理周期毎に実行することは必須ではなく、ステップS4の判断結果が変化した場合にだけ実行するようにしてもよい。
【0159】
補足すると、搭乗モード及び自立モードのいずれにおいても、基体傾斜角速度θbdotのY軸周り方向の成分θbdot_xの目標値とX軸周り方向の成分θbdot_yの目標値とは、いずれも“0”である。このため、基体傾斜角速度θbdot_xyの目標値を設定する処理は不要である。
【0160】
以上の如くステップS5,6の処理、又はステップS7,8の処理を実行した後、制御ユニット50は、次にステップS9において、車両制御演算処理を実行することによって、電動モータ31R,31Lのそれぞれの速度指令を決定する。この車両制御演算処理の詳細は後述する。
【0161】
次いで、ステップS10に進んで、制御ユニット50は、ステップS9で決定した速度指令に応じて電動モータ31R,31Lの動作制御処理を実行する。この動作制御処理では、制御ユニット50は、ステップS9で決定した電動モータ31Rの速度指令と、ロータリーエンコーダ56Rの出力に基づき計測した電動モータ31Rの回転速度の計測値との偏差に応じて、該偏差を“0”に収束させるように電動モータ31Rの出力トルクの目標値(目標トルク)を決定する。そして、制御ユニット50は、その目標トルクの出力トルクを電動モータ31Rに出力させるように該電動モータ31Rの通電電流を制御する。左側の電動モータ31Lの動作制御についても同様である。
【0162】
以上が、制御ユニット50が実行する全体的な制御処理である。
【0163】
次に、上記ステップS9の車両制御演算処理の詳細を説明する。
【0164】
本実施形態では、ステップS9の車両制御演算処理において、まず子機202Sが位置制御モードであるか否かによって、以下で詳述する制御ユニット50内の姿勢制御演算部80の動作が異なる。
【0165】
なお、以降の説明においては、前記搭乗モードにおける車両・乗員全体重心点と、前記自立モードにおける車両単体重心点とを総称的に、車両系重心点という。該車両系重心点は、車両1の動作モードが搭乗モードである場合には、車両・乗員全体重心点を意味し、自立モードである場合には、車両単体重心点を意味する。
また、以降の説明では、制御ユニット50が各制御処理周期で決定する値(更新する値)に関し、現在の(最新の)制御処理周期で決定する値を今回値、その1つ前の制御処理周期で決定した値を前回値ということがある。そして、今回値、前回値を特にことわらない値は、今回値を意味する。
【0166】
また、X軸方向の速度及び加速度に関しては、前方向きを正の向きとし、Y軸方向の速度及び加速度に関しては、左向きを正の向きとする。
【0167】
本実施形態では、前記車両系重心点の動力学的な挙動(詳しくは、Y軸方向からこれに直交する面(XZ平面)に投影して見た挙動と、X軸方向からこれに直交する面(YZ平面)に投影して見た挙動)が、近似的に、図8に示すような、倒立振子モデルの挙動(倒立振子の動力学的挙動)によって表現されるものとして、ステップS9の車両制御演算処理が行なわれる。
【0168】
なお、図8において、括弧を付していない参照符号は、Y軸方向から見た倒立振子モデルに対応する参照符号であり、括弧付きの参照符号は、X軸方向から見た倒立振子モデルに対応する参照符号である。
【0169】
この場合、Y軸方向から見た挙動を表現する倒立振子モデルは、車両系重心点に位置する質点60_xと、Y軸方向に平行な回転軸62a_xを有して床面上を輪転自在な仮想的な車輪62_x(以降、仮想車輪62_xという)とを備える。そして、質点60_xが、仮想車輪62_xの回転軸62a_xに直線状のロッド64_xを介して支持され、該回転軸62a_xを支点として該回転軸62a_xの周りに揺動自在とされている。
【0170】
この倒立振子モデルでは、質点60_xの運動が、Y軸方向から見た車両系重心点の運動に相当する。また、鉛直方向に対するロッド64_xの傾斜角度θbe_xがY軸周り方向での基体傾斜角度計測値θb_x_sと基体傾斜角度目標値θ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軸方向の移動速度に一致するものとされる。
【0171】
同様に、X軸方向から見た挙動を表現する倒立振子モデル(図8の括弧付きの符号を参照)は、車両系重心点に位置する質点60_yと、X軸方向に平行な回転軸62a_yを有して床面上を輪転自在な仮想的な車輪62_y(以降、仮想車輪62_yという)とを備える。そして、質点60_yが、仮想車輪62_yの回転軸62a_yに直線状のロッド64_yを介して支持され、該回転軸62a_yを支点として該回転軸62a_yの周りに揺動自在とされている。
【0172】
この倒立振子モデルでは、質点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軸方向の移動速度に一致するものとされる。
【0173】
なお、仮想車輪62_x,62_yは、それぞれ、あらかじめ定められた所定値Rw_x,Rw_yの半径を有するものとされる。
【0174】
また、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x,ωw_yと、電動モータ31R,31Lのそれぞれの回転角速度ω_R,ω_L(より正確には、回転部材27R,27Lのそれぞれの回転角速度ω_R,ω_L)との間には、次式01a,01bの関係が成立するものとされる。
【0175】
ωw_x=C・(ω_R−ω_L)/2 ……式01a
ωw_y=(ω_R+ω_L)/2 ……式01b
【0176】
なお、式01aにおける“C”は、前記フリーローラ29R,29Lと車輪体5との間の機構的な関係や滑りに依存する所定値の係数である。
【0177】
ここで、図8に示す倒立振子モデルの動力学は、次式03x,03yにより表現される。なお、式03xは、Y軸方向から見た倒立振子モデルの動力学を表現する式、式03yは、X軸方向から見た倒立振子モデルの動力学を表現する式である。
【0178】
d2θbe_x/dt2=α_x・θbe_x+β_x・ωwdot_x ……式03x
d2θbe_y/dt2=α_y・θbe_y+β_y・ωwdot_y ……式03y
【0179】
式03xにおけるωwdot_xは仮想車輪62_xの回転角加速度(回転角速度ωw_xの1階微分値)、α_xは、質点60_xの質量や高さh_xに依存する係数、β_xは、仮想車輪62_xのイナーシャ(慣性モーメント)や半径Rw_xに依存する係数である。式03yにおけるωwdot_y、α_y、β_yについても上記と同様である。
【0180】
これらの式03x,03yから判るように、倒立振子の質点60_x,60_yの運動(ひいては車両系重心点の運動)は、それぞれ、仮想車輪62_xの回転角加速度ωwdot_x、仮想車輪62_yの回転角加速度ωwdot_yに依存して規定される。
【0181】
そこで、本実施形態では、Y軸方向から見た車両系重心点の運動を制御するための操作量(制御入力)として、仮想車輪62_xの回転角加速度ωwdot_xを用いると共に、X軸方向から見た車両系重心点の運動を制御するための操作量(制御入力)として、仮想車輪62_yの回転角加速度ωwdot_yを用いる。
【0182】
そして、ステップS9の車両制御演算処理を概略的に説明すると、制御ユニット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として決定する。
【0183】
そして、制御ユニット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を決定する。
【0184】
なお、本実施形態では、位置制御モード下において、操作量(制御入力)としての上記仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdは、それぞれ、後述する式06x,06yに示す如く、5個の操作量成分を加え合わせることによって決定される。
【0185】
一方、位置制御モードでない場合、本実施形操作量(制御入力)としての上記仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdは、それぞれ、同じく後述する式07x,07yに示す、3個の操作量成分を加え合わせることによって決定される。
【0186】
制御ユニット50は、上記の如き、ステップS9の車両制御演算処理を実行するための機能として、図9のブロック図で示す機能を備えている。
【0187】
すなわち、制御ユニット50は、基体傾斜角度計測値θb_xy_sと基体傾斜角度目標値θb_xy_objとの偏差である基体傾斜角度偏差計測値θbe_xy_sを算出する偏差演算部70と、前記車両系重心点の移動速度である重心速度Vb_xyの観測値としての重心速度推定値Vb_xy_sを算出する重心速度算出部72と、乗員等による車両1の操縦操作(車両1に推進力を付加する操作)によって要求されていると推定される上記重心速度Vb_xyの要求値としての要求重心速度V_xy_aimを生成する要求重心速度生成部74と、これらの重心速度推定値Vb_xy_s及び要求重心速度V_xy_aimから、電動モータ31R,31Lの回転角速度の許容範囲に応じた制限を加味して、重心速度Vb_xyの目標値としての制御用目標重心速度Vb_xy_mdfdを決定する重心速度制限部76と、後述するゲイン係数の値を調整するためのゲイン調整パラメータKr_xyを決定するゲイン調整部78とを備える。
【0188】
制御ユニット50は、さらに、前記仮想車輪回転角速度指令ωw_xy_cmdを算出する姿勢制御演算部80と、この仮想車輪回転角速度指令ωw_xy_cmdを、右側の電動モータ31Rの速度指令ω_R_cmd(回転角速度の指令値)と左側の電動モータ31Lの速度指令ω_L_cmd(回転角速度の指令値)との組に変換するモータ指令演算部82とを備える。
なお、図9中の参照符号84を付したものは、姿勢制御演算部70が制御処理周期毎に算出する仮想車輪回転角速度指令ωw_xy_cmdを入力する遅延要素を示している。該遅延要素84は、各制御処理周期において、仮想車輪回転角速度指令ωw_xy_cmdの前回値ωw_xy_cmd_pを出力する。
【0189】
前記ステップS9の車両制御演算処理では、これらの上記の各処理部の処理が以下に説明するように実行される。
【0190】
すなわち、制御ユニット50は、まず、偏差演算部70の処理と重心速度算出部62の処理とを実行する。
【0191】
偏差演算部70には、前記ステップS2で算出された基体傾斜角度計測値θb_xy_s(θb_x_s及びθb_y_s)と、前記ステップS5又はステップS7で設定された目標値θ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)を算出する。
【0192】
なお、偏差演算部70の処理は、ステップS9の車両制御演算処理の前に行なうようにしてもよい。例えば、前記ステップS5又は7の処理の中で、偏差演算部70の処理を実行してもよい。
【0193】
前記重心速度算出部62には、前記ステップS2で算出された基体傾斜角速度計測値θ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から入力される。そして、重心速度算出部62は、これらの入力値から、前記倒立振子モデルに基づく所定の演算式によって、重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を算出する。
【0194】
具体的には、重心速度算出部62は、次式05x,05yにより、Vb_x_s及びVb_y_sをそれぞれ算出する。
【0195】
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
【0196】
これらの式05x,05yにおいて、Rw_x,Rw_yは、前記したように、仮想車輪62_x,62_yのそれぞれの半径であり、これらの値は、あらかじめ設定された所定値である。また、h_x,h_yは、それぞれ倒立振子モデルの質点60_x,60_yの高さである。この場合、本実施形態では、車両系重心点の高さは、ほぼ一定に維持されるものとされる。そこで、h_x,h_yの値としては、それぞれ、あらかじめ設定された所定値が用いられる。補足すると、高さh_x,h_yは、前記ステップS6又は8において値を設定する定数パラメータに含まれるものである。
【0197】
上記式05xの右辺の第1項は、仮想車輪62_xの速度指令の前回値ωw_x_cmd_pに対応する該仮想車輪62_xのX軸方向の移動速度であり、この移動速度は、車輪体5のX軸方向の実際の移動速度の現在値に相当するものである。また、式05xの右辺の第2項は、基体9がY軸周り方向にθbdot_x_sの傾斜角速度で傾動することに起因して生じる車両系重心点のX軸方向の移動速度(車輪体5に対する相対的な移動速度)の現在値に相当するものである。これらのことは、式05yについても同様である。
【0198】
なお、前記ロータリーエンコーダ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を使用することが有利である。
【0199】
次に、制御ユニット50は、要求重心速度生成部74の処理とゲイン調整部78の処理とを実行する。この場合、要求重心速度生成部74及びゲイン調整部78には、それぞれ、重心速度算出部72で上記の如く算出された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)が入力される。
【0200】
そして、要求重心速度生成部74は、詳細は後述するが、車両1の動作モードが搭乗モードである場合に、入力された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を基に、要求重心速度V_xy_aim(V_x_aim,V_y_aim)を決定する。なお、本実施形態では、車両1の動作モードが自立モードである場合には、要求重心速度生成部74は、要求重心速度V_x_aim及びV_y_aimをいずれも“0”とする。
【0201】
また、ゲイン調整部78は、入力された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を基に、前記ゲイン調整パラメータKr_xy(Kr_x及びKr_y)を決定する。
【0202】
このゲイン調整部78の処理を図10及び図11を参照して以下に説明する。
【0203】
図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の制限後の値としての意味を持つ。
【0204】
このリミット処理部86の処理を、図11を参照してさらに詳細に説明する。なお、図11中の括弧付きの参照符号は、後述する重心速度制限部76のリミット処理部104の処理を示すものであり、リミット処理部86の処理に関する説明では無視してよい。
【0205】
リミット処理部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)を算出する。
【0206】
次いで、リミット処理部86は、ωw_x_s,ωw_y_sの組を、XY−RL変換部86bにより、電動モータ31Rの回転角速度ω_R_sと電動モータ31Lの回転角速度ω_L_sとの組に変換する。
【0207】
この変換は、本実施形態では、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_s,ωw_y_s,ω_R_s,ω_L_sに置き換えて得られる連立方程式を、ω_R_s,ω_L_sを未知数として解くことにより行なわれる。
【0208】
次いで、リミット処理部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は、右モータ用許容範囲内の値に制限される。
【0209】
同様に、リミッタ86c_Lは、ω_L_sが、あらかじめ設定された所定値の上限値(>0)と下限値(<0)とを有する左モータ用許容範囲内に収まっている場合には、ω_L_sをそのまま出力値ω_L_lim1として出力する。また、リミッタ86c_Lは、ω_L_sが、左モータ用許容範囲から逸脱している場合には、該左モータ用許容範囲の上限値と下限値とのうちのω_L_sに近い方の境界値を出力値ω_L_lim1として出力する。これにより、リミッタ86c_Lの出力値ω_L_lim1は、左モータ用許容範囲内の値に制限される。
【0210】
上記右モータ用許容範囲は右側の電動モータ31Rの回転角速度(絶対値)が高くなり過ぎないようにし、ひいては、電動モータ31Rが出力可能なトルクの最大値が低下するのを防止するために設定された許容範囲である。このことは、左モータ用許容範囲についても同様である。
【0211】
次いで、リミット処理部86は、リミッタ86c_R,86c_Lのそれぞれの出力値ω_R_lim1,ω_L_lim1の組を、RL−XY変換部86dにより、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x_lim1,ωw_y_lim1の組に変換する。
【0212】
この変換は、前記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を未知数として解くことにより行なわれる。
【0213】
次いで、リミット処理部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)に変換する。
【0214】
以上のリミット処理部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から出力される。
【0215】
一方、電動モータ31R,31Lのそれぞれの回転角速度ω_R_s,ω_L_sの両方又は一方が許容範囲から逸脱している場合には、その両方又は一方の回転角速度が許容範囲内に制限された上で、その制限後の電動モータ31R,31Lのそれぞれの回転角速度ω_R_lim1,ω_L_lim1の組に対応する、X軸方向及びY軸方向の移動速度Vw_x_lim1,Vw_y_lim1の組がリミット処理部86から出力される。
【0216】
従って、リミット処理部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の組を生成する。
【0217】
図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を算出して出力する。
【0218】
この場合、リミット処理部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”となる。
【0219】
一方、リミット処理部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から出力される。
【0220】
次いで、ゲイン調整部78は、演算部88_xの出力値Vover_xを処理部90_x,92_xに順番に通すことによって、ゲイン調整パラメータKr_xを決定する。また、ゲイン調整部78は、演算部88_yの出力値Vover_yを処理部90_y,92_yに順番に通すことによって、ゲイン調整パラメータKr_yを決定する。なお、ゲイン調整パラメータKr_x,Kr_yは、いずれも“0”から“1”までの範囲内の値である。
【0221】
上記処理部90_xは、入力されるVover_xの絶対値を算出して出力する。また、処理部92_xは、その出力値Kr_xが入力値|Vover_x|に対して単調に増加し、且つ、飽和特性を有するようにKr_xを生成する。該飽和特性は、入力値がある程度大きくなると、入力値の増加に対する出力値の変化量が“0”になるか、もしくは、“0”に近づく特性である。
【0222】
この場合、本実施形態では、処理部92_xは、入力値|Vover_x|があらかじめ設定された所定値以下である場合には、該入力値|Vover_x|に所定値の比例係数を乗じてなる値をKr_xとして出力する。また、処理部92_xは、入力値|Vover_x|が所定値よりも大きい場合には、“1”をKr_xとして出力する。なお、上記比例係数は、|Vover_x|が所定値に一致するときに、|Vover_x|と比例係数との積が“1”になるように設定されている。
【0223】
また、処理部90_y,92_yの処理は、それぞれ上記した処理部90_x,92_xの処理と同様である。
【0224】
以上説明したゲイン調整部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のそれぞれの回転角速度が許容範囲内に収まるような場合には、ゲイン調整パラメータKr_x,Kr_yはいずれも“0”に決定される。
【0225】
一方、リミット処理部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のそれぞれの絶対値に応じて、ゲイン調整パラメータKr_x,Kr_yの値がそれぞれ決定される。この場合、Kr_xは、“1”を上限値して、修正量Vx_overの絶対値が大きいほど、大きな値になるように決定される。このことは、Kr_yについても同様である。
【0226】
図9の説明に戻って、制御ユニット50は、重心速度算出部72及び要求重心速度生成部74の処理を前記した如く実行した後、次に、重心速度制限部76の処理を実行する。
この重心速度制限部76には、重心速度算出部72で算出された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)と、要求重心速度生成部74で決定された要求重心速度V_xy_aim(V_x_aim及びV_y_aim)とが入力される。そして、重心速度制限部76は、これらの入力値を使用して、図12のブロック図で示す処理を実行することによって、制御用目標重心速度V_xy_mdfd(V_x_mdfd及びV_y_mdfd)を決定する。
【0227】
具体的には、重心速度制限部76は、まず、定常偏差算出部94_x,94_yの処理を実行する。
【0228】
この場合、定常偏差算出部94_xには、X軸方向の重心速度推定値Vb_x_sが入力されると共に、X軸方向の制御用目標重心速度Vb_x_mdfdの前回値Vb_x_mdfd_pが遅延要素96_xを介して入力される。そして、定常偏差算出部94_xは、まず、入力されるVb_x_sが比例・微分補償要素(PD補償要素)94a_xに入力する。この比例・微分補償要素94_xは、その伝達関数が1+Kd・Sにより表される補償要素であり、入力されるVb_x_sと、その微分値(時間的変化率)に所定値の係数Kdを乗じてなる値とを加算し、その加算結果の値を出力する。
【0229】
次いで、定常偏差算出部94_xは、入力されるVb_x_mdfd_pを、比例・微分補償要素94_xの出力値から減算してなる値を演算部94b_xにより算出した後、この演算部94b_xの出力値を、位相補償機能を有するローパスフィルタ94c_xに入力する。このローパスフィルタ94c_xは、伝達関数が(1+T2・S)/(1+T1・S)により表されるフィルタである。そして、定常偏差算出部94_xは、このローパスフィルタ94c_xの出力値Vb_x_prdを出力する。
【0230】
また、定常偏差算出部94_yには、Y軸方向の重心速度推定値Vb_y_sが入力されると共に、Y軸方向の制御用目標重心速度Vb_y_mdfdの前回値Vb_y_mdfd_pが遅延要素96_yを介して入力される。
【0231】
そして、定常偏差算出部94_yは、上記した定常偏差算出部94_xと同様に、比例・微分補償要素94a_y、演算部94b_y及びローパスフィルタ94c_yの処理を順次実行し、ローパスフィルタ94c_yの出力値Vb_y_prdを出力する。
【0232】
ここで、定常偏差算出部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を重心速度定常偏差予測値という。
【0233】
重心速度制限部76は、上記の如く定常偏差算出部94_x,94_yの処理を実行した後、定常偏差算出部94_xの出力値Vb_x_prdに要求重心速度Vb_x_aimを加算する処理と、定常偏差算出部94_yの出力値Vb_y_prdに要求重心速度Vb_y_aimを加算する処理とをそれぞれ、演算部98_x,98_yにより実行する。
【0234】
従って、演算部98_xの出力値Vb_x_tは、X軸方向の重心速度定常偏差予測値Vb_x_prdに、X軸方向の要求重心速度Vb_x_aimを付加した速度となる。同様に、演算部98_yの出力値Vb_y_tは、Y軸方向の重心速度定常偏差予測値Vb_y_prdに、Y軸方向の要求重心速度Vb_y_aimを付加した速度となる。
【0235】
なお、車両1の動作モードが自立モードである場合等、X軸方向の要求重心速度Vb_x_aimが“0”である場合には、X軸方向の重心速度定常偏差予測値Vb_x_prdがそのまま、演算部98_xの出力値Vb_x_tとなる。同様に、Y軸方向の要求重心速度Vb_y_aimが“0”である場合には、Y軸方向の重心速度定常偏差予測値Vb_y_prdがそのまま、演算部98_yの出力値Vb_y_tとなる。
【0236】
次いで、重心速度制限部76は、演算部98_x,98_yのそれぞれの出力値Vb_x_t,Vb_y_tを、リミット処理部100に入力する。このリミット処理部100の処理は、前記したゲイン調整部78のリミット処理部86の処理と同じである。この場合、図11に括弧付きに参照符号で示す如く、リミット処理部100の各処理部の入力値及び出力値だけがリミット処理部86と相違する。
【0237】
具体的には、リミット処理部100では、前記仮想車輪62_x,62_yのそれぞれの移動速度Vw_x,Vw_yを、Vb_x_t,Vb_y_tにそれぞれ一致させたと仮定した場合の各仮想車輪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の組に変換される。
【0238】
さらに、これらの回転角速度ω_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に変換される。
【0239】
次いで、この各回転角速度ω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から出力される。
【0240】
以上のリミット処理部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の組を生成する。
【0241】
なお、リミット処理部100における右モータ用及び左モータ用の各許容範囲は、リミット処理部86における各許容範囲と同一である必要はなく、互いに異なる許容範囲に設定されていてもよい。
【0242】
図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として算出する。
【0243】
以上のようにして決定される制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdは、リミット処理部100での出力値V_x_lim2,V_y_lim2の制限が行なわれなかった場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度を、それぞれ、演算部98_xの出力値Vb_x_tと演算部98_yの出力値Vb_y_tとに一致させるように電動モータ31R,31Lを動作させても、電動モータ31R,31Lのそれぞれの回転角速度が許容範囲内に収まるような場合には、要求重心速度Vb_x_aim,Vb_y_aimがそれぞれ、そのまま、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。
【0244】
なお、この場合、X軸方向の要求重心速度Vb_x_aimが“0”であれば、X軸方向の制御用目標重心速度Vb_x_mdfdも“0”となり、Y軸方向の要求重心速度Vb_y_aimが“0”であれば、Y軸方向の制御用目標重心速度Vb_y_mdfdも“0”となる。
【0245】
一方、リミット処理部100の出力値Vw_x_lim2,Vw_y_lim2が、入力値Vb_x_t,Vb_y_tに対して制限を施して生成された場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度を、それぞれ、演算部98_xの出力値Vb_x_tと演算部98_yの出力値Vb_y_tとに一致させるように電動モータ31R,31Lを動作させると、電動モータ31R,31Lのいずれかの回転角速度が許容範囲を逸脱してしまう場合(いずれかの回転角速度の絶対値が高くなり過ぎる場合)には、X軸方向については、リミット処理部100の出力値Vw_x_lim2の入力値Vb_x_tからの修正量(=Vw_x_lim2−Vb_x_t)だけ、要求重心速度Vb_x_aimを補正してなる値(当該修正量をVb_x_aimに加算した値)が、X軸方向の制御用目標重心速度Vb_x_mdfdとして決定される。
【0246】
また、Y軸方向については、リミット処理部100の出力値Vw_y_lim2の入力値Vb_y_tからの修正量(=Vw_y_lim2−Vb_y_t)だけ、要求重心速度Vb_y_aimを補正してなる値(当該修正量をVb_y_aimに加算した値)が、Y軸方向の制御用目標重心速度Vb_y_mdfdとして決定される。
【0247】
この場合において、例えばX軸方向の速度に関し、要求重心速度Vb_x_aimが“0”でない場合には、制御用目標重心速度Vb_x_mdfdは、要求重心速度Vb_x_aimよりも“0”に近づくか、もしくは、要求重心速度Vb_x_aimと逆向きの速度となる。また、要求重心速度Vb_x_aimが“0”である場合には、制御用目標重心速度Vb_x_mdfdは、定常偏差算出部94_xが出力するX軸方向の重心速度定常偏差予測値Vb_x_prdと逆向きの速度となる。これらのことは、Y軸方向の速度に関しても同様である。
【0248】
以上が、重心速度制限部76の処理である。
【0249】
図9の説明に戻って、制御ユニット50は、以上の如く重心速度算出部72、重心速度制限部76、ゲイン調整部78、及び偏差演算部70の処理を実行した後、次に、姿勢制御演算部80の処理を実行する。
【0250】
この姿勢制御演算部80の処理を、以下に図13を参照して説明する。なお、図13において、括弧を付していない参照符号は、X軸方向に輪転する仮想車輪62_xの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_x_comを決定する処理に係わる参照符号であり、括弧付きの参照符合は、Y軸方向に輪転する仮想車輪62_yの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_y_comを決定する処理に係わる参照符号である。
【0251】
上述したように、位置制御モードであるか否かによって、姿勢制御演算部80の動作は異なる。具体的には、まず姿勢制御演算部80に入力される情報が、位置制御モードであるか否かによって異なる。
【0252】
位置制御モードで動作する場合、図9に示すように姿勢制御演算部80には、偏差演算部70で算出された基体傾斜角度偏差計測値θbe_xy_sと、前記ステップS2で算出された基体傾斜角速度計測値θbdot_xy_sと、重心速度算出部72で算出された重心速度推定値Vb_xy_sと、重心速度制限部76で算出された目標重心速度Vb_xy_cmdと、ゲイン調整部78で算出されたゲイン調整パラメータKr_xyと、位置情報取得部216Sで取得された現在位置P_xy_sと、記憶部218Sに設定されている目標帰還位置P_xy_aimとが入力される。
【0253】
姿勢制御演算部80は、まず、これらの入力値を用いて、次式06x,06yにより、仮想車輪回転角加速度指令ωdotw_xy_cmdを算出する。
【0254】
ωwdot_x_cmd=K1_x・θbe_x_s+K2_x・θbdot_x_s
+K3_x・(Vb_x_s−Vb_x_mdfd)
+K4_x・(P_x_s−P_x_aim)
+K5_x・Pedot_x_s ……式06x
ωwdot_y_cmd=K1_y・θbe_y_s+K2_y・θbdot_y_s
+K3_y・(Vb_y_s−Vb_y_mdfd)
+K4_y・(P_y_s−P_y_aim)
+K5_y・Pedot_y_s ……式06y
【0255】
ただし、式06xの右辺第5項のPedot_x_sは、第4項のP_x_s−P_x_aimの時間的変化率を表している。同様に、式06yの右辺第5項のPedot_y_sは、第4項のP_y_s−P_y_aimの時間的変化率を表している。
【0256】
これに対して、位置制御モードで動作していない場合、姿勢制御演算部80には、現在位置P_xy_sと、目標帰還位置P_xy_aimとが入力されない、又は代わりに“0”が入力される。
【0257】
従って、この場合、姿勢制御演算部80は、次式07x,07yにより、仮想車輪回転角加速度指令ωdotw_xy_cmdを算出する。
【0258】
ω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
【0259】
すなわち、式06x,06yが式07x,07yと異なる点は、目標帰還位置に対する現在位置の偏差に依存する第4項と、前記偏差の時間的変化率に依存する第5項とが右辺に加えられていることである。従って、式07x,07yでは、子機202Sの乗員が基体9を傾斜させることにより与えられる基体傾斜角度偏差計測値θbe_xy_sに応じて、仮想車輪回転角加速度指令ωdotw_xy_cmdを算出する。
【0260】
一方、位置制御モードでは、基体傾斜角度偏差計測値θbe_xy_sが与えられたとしても、子機202Sの現在位置P_xy_sが目標帰還位置P_xy_aimに一致しない場合は、右辺の他項に対して第4項及び第5項が優位となることによって、子機202Sを目標帰還位置P_xy_aimに移動させるように仮想車輪回転角加速度指令ωdotw_xy_comを算出することができる。
【0261】
以上のように、本実施形態における位置制御モードでは、Y軸方向から見た倒立振子モデルの質点60_xの運動(ひいては、Y軸方向から見た車両系重心点の運動)を制御するための操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_x_comと、X軸方向から見た倒立振子モデルの質点60_yの運動(ひいては、X軸方向から見た車両系重心点の運動)を制御するための操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_y_comとは、それぞれ、5つの操作量成分(式06x,06yの右辺の5つの項)を加え合わせることによって決定される。
【0262】
この場合、式06xにおける各操作量成分に係わるゲイン係数K1_x,K2_x,K3_x,K4_x,K5_xは、ゲイン調整パラメータKr_xに応じて可変的に設定され、式06yにおける各操作量成分に係わるゲイン係数K1_y,K2_y,K3_y,K4_y,K5_yは、ゲイン調整パラメータKr_yに応じて可変的に設定される。
【0263】
ただし、位置制御モードで動作しない場合は、ゲイン係数K1_x,K2_x,K3_xと、ゲイン係数K1_y,K2_y,K3_yとを使用し、ゲイン係数K4_x,K5_xと、ゲイン係数K4_y,K5_yとは使用しない、又は“0”である。
【0264】
以降、式06xにおけるゲイン係数K1_x,K2_x,K3_x,K4_x,K5_xのそれぞれを第1ゲイン係数K1_x、第2ゲイン係数K2_x、第3ゲイン係数K3_x、第4ゲイン係数K4_x、第5ゲイン係数K5_xということがある。このことは、式06yにおけるゲイン係数K1_y,K2_y,K3_y,K4_y,K5_yについても同様とする。
【0265】
式06xにおける第iゲイン係数Ki_x(i=1,2,3,4,5)と、式06yにおける第iゲイン係数Ki_y(i=1,2,3,4,5)とは、図13中にただし書きで示した如く、次式06x、06yにより、ゲイン調整パラメータKr_x,Kr_yに応じて決定される。
【0266】
Ki_x=(1−Kr_x)・Ki_a_x+Kr_x・Ki_b_x ……式09x
Ki_y=(1−Kr_y)・Ki_a_y+Kr_y・Ki_b_y ……式09y
(i=1,2,3,4,5)
【0267】
ここで、式09xにおけるKi_a_x、Ki_b_xは、それぞれ、第iゲイン係数Ki_xの最小側(“0”に近い側)のゲイン係数値、最大側(“0”から離れる側)のゲイン係数値としてあらかじめ設定された定数値である。このことは、式09yにおけるKi_a_y、Ki_b_yについても同様である。
【0268】
従って、式09xの演算に用いる各第iゲイン係数Ki_x(i=1,2,3,4,5)は、それぞれに対応する定数値Ki_a_x、Ki_b_xの重み付き平均値として決定される。そして、この場合、Ki_a_x、Ki_b_xにそれぞれ掛かる重みが、ゲイン調整パラメータKr_xに応じて変化させられる。このため、Kr_x=0である場合には、Ki_x=Ki_a_xとなり、Kr_x=1である場合には、Ki_x=Ki_b_xとなる。そして、Kr_xが“0”から“1”に近づくに伴い、第iゲイン係数Ki_xはKi_a_xからKi_b_x近づいていく。
【0269】
同様に、式09yの演算に用いる各第iゲイン係数Ki_y(i=1,2,3,4,5)は、それぞれに対応する定数値Ki_a_y、Ki_b_yの重み付き平均値として決定される。そして、この場合、Ki_a_y、Ki_b_yにそれぞれ掛かる重みが、ゲイン調整パラメータKr_yに応じて変化させられる。このため、Ki_xの場合と同様に、Kr_yの値が“0”から“1”の間で変化するに伴い、第iゲイン係数Ki_yの値が、Ki_a_yとKi_b_yとの間で変化する。
【0270】
補足すると、上記定数値Ki_a_x、Ki_b_x及びKi_a_y,Ki_b_y(i=1,2,3,4,5)は、前記ステップS6又は8において値が設定される定数パラメータに含まれるものである。
【0271】
姿勢制御演算部80は、位置制御モードで動作する場合、上記の如く決定した第1〜第5ゲイン係数K1_x,K2_x,K3_x,K4_x,K5_xを用いて前記式06xの演算を行なうことで、X軸方向に輪転する仮想車輪62_xに係わる仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
【0272】
さらに詳細には、図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で算出する。
【0273】
位置制御モード下において、姿勢制御演算部80は、現在位置P_x_sと目標帰還位置P_x_aimとの偏差(=P_x_s−P_x_aim)を演算部80dで算出し、この偏差に第4ゲイン係数K4_xを乗じてなる操作量成u4_xを処理部80cで算出する。さらに、現在位置P_x_sと目標帰還位置P_x_aimとの偏差(=P_x_s−P_x_aim)の時間的変化率Pedot_x_sを演算部80dで算出し、この時間的変化率に第5ゲイン係数K5_xを乗じてなる操作量成u5_xを処理部80cで算出する。
そして、姿勢制御演算部80は、これらの操作量成分u1_x,u2_x,u3_x,u4_x,u5_xを演算部80eにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_comを算出する。
【0274】
一方、位置制御モードでない場合、姿勢制御演算部80は、第1〜第3ゲイン係数K1_x,K2_x,K3_xを用いて前記式07xの演算を行なうことで、X軸方向に輪転する仮想車輪62_xに係わる仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
【0275】
同様に、姿勢制御演算部80は、位置制御モードで動作する場合、上記の如く決定した第1〜第5ゲイン係数K1_y,K2_y,K3_y,K4_y,K5_yを用いて前記式06yの演算を行なうことで、Y軸方向に輪転する仮想車輪62_yに係わる仮想車輪回転角加速度指令ωwdot_y_cmdを算出する。
【0276】
この場合には、姿勢制御演算部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で算出する。
【0277】
さらに、位置制御モード下において、姿勢制御演算部80は、現在位置P_y_sと目標帰還位置P_y_aimとの偏差(=P_y_s−P_y_aim)を演算部80dで算出し、この偏差に第4ゲイン係数K4_yを乗じてなる操作量成u4_yを処理部80cで算出し、現在位置P_y_sと目標帰還位置P_y_aimとの偏差(=P_y_s−P_y_aim)の時間的変化率Pedot_y_sを演算部80dで算出し、この時間的変化率に第5ゲイン係数K5_yを乗じてなる操作量成u5_yを処理部80cで算出する。
【0278】
そして、姿勢制御演算部80は、これらの操作量成分u1_y,u2_y,u3_y,u4_y,u5_yを演算部80eにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_comを算出する。
【0279】
ここで、式06x,07xの右辺の第1項(=第1操作量成分u1_x)及び第2項(=第2操作量成分u2_x)は、X軸周り方向での基体傾斜角度偏差計測値θbe_x_sを、フィードバック制御則としてのPD則(比例・微分則)により“0”に収束させる(基体傾斜角度計測値θb_x_sを目標値θb_x_objに収束させる)ためのフィードバック操作量成分としての意味を持つ。
【0280】
また、式06x,07xの右辺の第3項(=第3操作量成分u3_x)は、重心速度推定値Vb_x_sと目標重心速度Vb_x_mdfdとの偏差をフィードバック制御則としての比例則により“0”に収束させる(Vb_x_sをVb_x_mdfdに収束させる)ためのフィードバック操作量成分としての意味を持つ。
【0281】
さらに、位置制御モード下において、式06xの右辺の第4項(=第4操作量成分u4_x)及び第5項(=第5操作量成分u5_x)は、X軸周り方向での現在位置P_x_sと目標帰還位置P_x_aimとの偏差を、フィードバック制御則としてのPD則(比例・微分則)により“0”に収束させる(現在位置P_x_sを目標帰還位置P_x_aimに収束させる)ためのフィードバック操作量成分としての意味を持つ。
【0282】
これらのことは、式06y,07yの右辺の第1〜第5項(第1〜第5操作量成分u1_y,u2_y,u3_y,u4_y,u5_y)とについても同様である。
【0283】
姿勢制御演算部80は、上記の如く、仮想車輪回転角加速度指令ωwdot_x_com,ωwdot_y_comを算出した後、次に、これらのωwdot_x_com,ωwdot_y_comをそれぞれ積分器80fにより積分することによって、前記仮想車輪回転速度指令ωw_x_com,ωw_y_comを決定する。
【0284】
以上が、姿勢安定化制御演算部80の処理の詳細である。
【0285】
補足すると、式06x,07xの右辺の第3項を、Vb_x_sに応じた操作量成分(=K3_x・Vb_x_s)と、Vb_x_mdfdに応じた操作量成分(=−K3_x・Vb_x_mdfd)とに分離した式によって、仮想車輪回転角加速度指令ωdotw_x_comを算出するようにしてよい。同様に、式06y,07yの右辺の第3項を、Vb_y_sに応じた操作量成分(=K3_y・Vb_y_s)と、Vb_y_mdfdに応じた操作量成分(=−K3_y・Vb_y_mdfd)とに分離した式によって、仮想車輪回転角加速度指令ωdotw_y_comを算出するようにしてよい。
【0286】
さらに、式06xの右辺の第4項を、P_x_sに応じた操作量成分(=K4_x・P_x_s)と、P_x_aimに応じた操作量成分(=−K4_x・P_x_aimとに分離した式によって、仮想車輪回転角加速度指令ωdotw_x_cmdを算出するようにしてよい。同様に、式06yの右辺の第4項を、P_y_sに応じた操作量成分(=K4_y・P_y_s)と、P_y_aimに応じた操作量成分(=−K4_y・_y_aimとに分離した式によって、仮想車輪回転角加速度指令ωdotw_y_cmdを算出するようにしてよい。
【0287】
また、本実施形態では、車両系重心点の挙動を制御するための操作量(制御入力)として、仮想車輪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と床面との間の摩擦力)を操作量として用いるようにしてもよい。
【0288】
図9の説明に戻って、制御ユニット50は、次に、姿勢安定化制御演算部80で上記の如く決定した仮想車輪回転速度指令ωw_x_com,ωw_y_comをモータ指令演算部82に入力し、該モータ指令演算部82の処理を実行することによって、電動モータ31Rの速度指令ω_R_comと電動モータ31Lの速度指令ω_L_comとを決定する。このモータ指令演算部82の処理は、前記リミット処理部86(図11参照)のXY−RL変換部86bの処理と同じである。
【0289】
具体的には、モータ指令演算部82は、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_com,ωw_y_com,ω_R_cmd,ω_L_cmdに置き換えて得られる連立方程式を、ω_R_cmd,ω_L_cmdを未知数として解くことによって、電動モータ31R,31Lのそれぞれの速度指令ω_R_com,ω_L_comを決定する。
【0290】
以上により前記ステップS9の車両制御演算処理が完了する。
【0291】
以上説明した如く制御ユニット50が制御演算処理を実行することによって、前記搭乗モード及び自立モードのいずれの動作モードにおいても、基本的には、基体9の姿勢が、前記基体傾斜角度偏差計測値θbe_x_s,θbe_y_sの両方が“0”となる姿勢(以下、この姿勢を基本姿勢という)に保たれるように、換言すれば、車両系重心点(車両・乗員全体重心点又は車両単体重心点)の位置が、車輪体5の接地面のほぼ真上に位置する状態に保たれるように、操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_xy_comが決定される。より詳しく言えば、基体9の姿勢を前記基本姿勢に保ちつつ、車両系重心点の移動速度の推定値としての重心速度推定値Vb_xy_sを制御用目標重心速度Vb_xy_mdfdに収束させるように、仮想車輪回転角加速度指令ωdotw_xy_comが決定される。なお、制御用目標重心速度Vb_xy_mdfdは、通常は(詳しくは搭乗モードで乗員等が車両1の付加的な推進力を付与しない限り)、“0”である。この場合には、基体9の姿勢を前記基本姿勢に保ちつつ、車両系重心点がほぼ静止するように、仮想車輪回転角加速度指令ωdotw_xy_comが決定されることとなる。
【0292】
そして、ωdotw_xy_comの各成分を積分してなる仮想車輪回転角速度指令ωw_xy_comを変換してなる電動モータ31R,31Lのそれぞれの回転角速度が、電動モータ31R,31Lの速度指令ω_R_cmd,ω_L_cmdとして決定される。さらに、その速度指令ω_R_cmd,ω_L_cmdに従って、各電動モータ31R,31Lの回転速度が制御される。ひいては車輪体5のX軸方向及びY軸方向のそれぞれの移動速度が、ωw_x_comに対応する仮想車輪62_xの移動速度と、ωw_y_comに対応する仮想車輪62_yの移動速度とに各々一致するように制御される。
【0293】
このため、例えば、Y軸周り方向で、実際の基体傾斜角度θb_xが目標値θb_x_objから前傾側にずれると、そのずれを解消すべく(θbe_x_sを“0”に収束させるべく)、車輪体5が前方に向かって移動する。同様に、実際のθb_xが目標値θb_x_objから後傾側にずれると、そのずれを解消すべく(θbe_x_sを“0”に収束させるべく)、車輪体5が後方に向かって移動する。
【0294】
また、例えば、X軸周り方向で、実際の基体傾斜角度θb_yが目標値θb_y_objから右傾側にずれると、そのずれを解消すべく(θbe_y_sを“0”に収束させるべく)、車輪体5が右向きに移動する。同様に、実際のθb_yが目標値θb_y_objから左傾側にずれると、そのずれを解消すべく(θbe_y_sを“0”に収束させるべく)、車輪体5が左向きに移動する。
【0295】
さらに、実際の基体傾斜角度θb_x,θb_yの両方が、それぞれ目標値θb_x_obj,θb_y_objからずれると、θb_xのずれを解消するための車輪体5の前後方向の移動動作と、θb_yのずれを解消するための車輪体5の左右方向の移動動作とが合成され、車輪体5がX軸方向及びY軸方向の合成方向(X軸方向及びY軸方向の両方向に対して傾斜した方向)に移動することとなる。
【0296】
このようにして、基体9が前記基本姿勢から傾くと、その傾いた側に向かって、車輪体5が移動することとなる。従って、例えば前記搭乗モードにおいて、乗員が意図的にその上体を傾けると、その傾けた側に、車輪体5が移動することとなる。
【0297】
なお、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdが“0”である場合には、基体9の姿勢が基本姿勢に収束すると、車輪体5の移動もほぼ停止する。また、例えば、基体9のY軸周り方向の傾斜角度θb_xを基本姿勢から傾いた一定の角度に維持すると、車輪体5のX軸方向の移動速度は、その角度に対応する一定の移動速度(制御用目標重心速度Vb_x_mdfdと一定の定常偏差を有する移動速度)に収束する。このことは、基体9のX軸周り方向の傾斜角度θb_yを基本姿勢から傾いた一定の角度に維持した場合も同様である。
【0298】
また、例えば、前記要求重心速度生成部74で生成される要求重心速度Vb_x_aim,Vb_y_aimの両方が“0”となっている状況において、基体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の一方又は両方の回転角速度が高速になり過ぎるのが防止される。
【0299】
さらに、前記ゲイン調整部78では、重心速度推定値Vb_x_s,Vb_y_sの一方又は両方が大きくなり、ひいては、基体9の前記基本姿勢からの傾きを解消し、もしくはその傾き量を維持するために必要な車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になる恐れがある状況では、その逸脱が顕著になるほど(詳しくは、図10に示すVover_x,Vover_yの絶対値が大きくなるほど)、前記ゲイン調整パラメータKr_x,Kr_yの一方又は両方が“0”から“1”に近づけられる。
【0300】
この場合、前記式09xにより算出される各第iゲイン係数Ki_x(i=1,2,3,4,5)は、Kr_xが“1”に近づくほど、最小側の定数値Ki_a_xから最大側の定数値Ki_b_xに近づく。このことは、前記式09yにより算出される各第iゲイン係数Ki_y(i=1,2,3,4,5)についても同様である。
【0301】
そして、上記ゲイン係数の絶対値が大きくなることによって、基体9の傾きの変化に対する操作量(仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmd)の感度が高まる。従って、基体9の基本姿勢からの傾き量が大きくなろうとすると、それを素早く解消するように、車輪体5の移動速度が制御されることとなる。従って、基体9が基本姿勢から大きく傾くことが強めに抑制され、ひいては、車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になるのを防止することができる。
【0302】
また、搭乗モードにおいて、要求重心速度生成部74が、乗員等の操縦操作による要求に応じて要求重心速度Vb_x_aim,Vb_y_aim(Vb_x_aim,Vb_y_aimの一方又は両方が“0”でない要求重心速度)を生成した場合には、電動モータ31R,31Lの一方又は両方の回転角速度が許容範囲を逸脱するような高速の回転角速度にならない限り(詳しくは図12に示すVw_x_lim2,Vw_y_lim2がVb_x_t,Vb_y_tにそれぞれ一致する限り)、要求重心速度Vb_x_aim,Vb_y_aimがそれぞれ前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。このため、要求重心速度Vb_x_aim,Vb_y_aimを実現するように(実際の重心速度が要求重心速度Vb_x_aim,Vb_y_aimに近づくように)、車輪体5の移動速度が制御される。
【0303】
次に、説明を後回しにした、前記要求重心速度生成部74の処理の詳細を説明する。
要求重心速度生成部74は、本実施形態では、車両1の動作モードが自立モードである場合には、前記したように、要求重心速度Vb_x_aim,Vb_y_aimを“0”とする。
【0304】
一方、要求重心速度生成部74は、車両1の動作モードが搭乗モードである場合には、乗員等による車両1の操縦操作(車両1に推進力を付加する操作)に応じて、該操作により要求されると推定される要求重心速度Vb_x_aim,Vb_y_aimを決定する。
【0305】
ここで、例えば、車両1の乗員が、車両1の発進時等において、車両1の移動速度(車両系重心点の移動速度)を積極的に増速させようとする場合には、自身の足により床を蹴り、それにより車両1に移動速度を増速させる推進力(乗員の足平と床との摩擦力による推進力)を車両1に付加する。あるいは、例えば、車両1の乗員の要求に応じて、外部の補助者等が、車両1にその移動速度を増速させる推進力を付加する場合もある。
【0306】
このような場合に、要求重心速度生成部74は、車両系重心点の実際の速度ベクトル(以降、重心速度ベクトル↑Vbという)の大きさ(絶対値)の時間的変化率に基づいて、車両1の移動速度を増加させる要求としての加速要求が発生したか否かを判断しつつ、それに応じて、↑Vbの目標値としての要求重心速度ベクトル↑Vb_aim(要求重心速度Vb_x_aim,Vb_y_aimを2つの成分とする速度ベクトル)を逐次決定する。
【0307】
その処理を概略的に説明すると、上記加速要求が発生した場合には、該加速要求が解消するまでの間、要求重心速度ベクトル↑Vb_aimの大きさを増加させるように、要求重心速度ベクトル↑Vb_aimが決定される。そして、上記加速要求が解消すると、要求重心速度ベクトル↑Vb_aimの大きさを段階的に減衰させていくように、要求重心速度ベクトル↑Vb_aimが決定される。この場合、本実施形態では、基本的には、加速要求が解消してから、所定時間の期間、要求重心速度ベクトル↑Vb_aimの大きさが一定に保たれる。そして、その後に、要求重心速度ベクトル↑Vb_aimの大きさが“0”まで連続的に減衰させられる。なお、この減衰時には、適宜、要求重心速度ベクトル↑Vb_aimの向きがX軸方向に近づけられる。
【0308】
このような処理を実行する要求重心速度生成部74を、図14〜図20のフローチャートを参照して以下に詳細に説明する。
【0309】
図14を参照して、要求重心速度生成部74は、まず、ステップS21の処理を実行する。この処理では、要求重心速度生成部74は、入力される重心速度推定値Vb_x_s,Vb_y_sを2つの成分とする速度ベクトル(実際の重心速度ベクトル↑Vbの観測値)である推定重心速度ベクトル↑Vb_sの大きさ|↑Vb_s|(=sqrt(Vb_x_s2+Vb_y_s2))の時間的変化率(微分値)DVb_sを算出する。このDVb_sは、実際の重心速度ベクトル↑Vbの大きさの時間的変化率の観測値(推定値)としての意味を持つ。以降、DVb_sを推定重心速度絶対値変化率DVb_sという。なお、上記sqrt( )は、平方根関数である。
【0310】
さらに、ステップS21では、要求重心速度生成部74は、入力される重心速度推定値Vb_x_s,Vb_y_sのそれぞれの時間的変化率(微分値)である重心加速度推定値Vbdot_x_s,Vvdot_y_sを算出する。なお、Vbdot_x_s,Vvdot_y_sを2つの成分とするベクトルは、車両系重心点の実際の加速度ベクトルの観測値を意味する。
【0311】
次いで、ステップS22に進んで、要求重心速度生成部74は、要求重心速度Vb_x_aimを算出するための現在の演算処理モードが、どのモードであるかを判断する。
【0312】
ここで、本実施形態では、要求重心速度生成部74は、要求重心速度ベクトル↑Vb_aimの基本値(以降、基本要求重心速度ベクトル↑Vb_aim1という)を決定した上で、この基本要求重心速度ベクトル↑Vb_aim1に要求重心速度ベクトル↑Vb_aimを追従させるように(定常的には一致させるように)、要求重心速度ベクトル↑Vb_aimを決定する。
【0313】
上記演算処理モードは、上記基本要求重心速度ベクトル↑Vb_aim1の決定の仕方の種別を表すものである。そして、本実施形態では、該演算処理モードとしては、制動モード、速度追従モード、速度ホールドモードの3種類のモードがある。
【0314】
制動モードは、基本要求重心速度ベクトル↑Vb_aim1の大きさを“0”に減衰させていくか、又は“0”に保持するように↑Vb_aim1を決定するモードである。また、速度追従モードは、基本要求重心速度ベクトル↑Vb_aim1を、推定重心速度ベクトル↑Vb_sに追従させるように(一致又はほぼ一致させるように)決定するモードである。また、速度ホールドモードは、基本要求重心速度ベクトル↑Vb_aim1の大きさを一定に保つように↑Vb_aim1を決定するモードである。
【0315】
なお、制御ユニット50の起動時等に該制御ユニット50が初期化された状態での演算処理モード(初期演算処理モード)は、制動モードである。
【0316】
要求重心速度生成部74は、上記ステップS22において、現在の演算処理モードが制動モードである場合と、速度追従モードである場合と、速度ホールドモードである場合とで、それぞれ、次に、ステップS23の演算処理、ステップS24の演算処理、ステップS25の演算処理を実行し、基本要求重心速度ベクトル↑Vb_aim1を決定する。
【0317】
これらの各モードに対応する演算処理は、次のように実行される。
【0318】
ステップS23における制動モードの演算処理は、図15のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、前記ステップS21で算出した推定重心速度絶対値変化率DVb_sと、重心加速度推定値Vbdot_x_s,Vbdot_y_sとに関して、DVb_s>DV1、且つ、|Vbdot_x_s|>a1*|Vbdot_y_s|という条件が成立するか否かをステップS23−1で判断する。この判断処理は、車両1の移動速度を車両1の概略前後方向で増速させようとする加速要求が有るか否かを判断する処理である。
【0319】
ここで、上記DV1は、あらかじめ設定された正の値の第1閾値DV1(>0)である。そして、DVb_s>DV1であるということは、実際の重心速度ベクトル↑Vbの大きさ|↑Vb|が第1閾値DV1よりも大きな時間的変化率で増加している状況を意味する。
【0320】
また、上記a1は、あらかじめ設定された正の値の係数値である。そして、|Vbdot_x_s|>a1*|Vbdot_y_s|であるということは、車両系重心点の実際の加速度ベクトルが“0”でないX軸方向の成分を有し、且つ、該加速度ベクトルのX軸方向に対する鋭角側の角度(=tan-1(|Vbdot_y_s|/|Vbdot_x_s|)が、所定角度(=tan-1(1/a1))よりも“0”に近い状況であることを意味する。本実施形態では、a1は、例えば“1”又はこれに近い値に設定されている。
【0321】
従って、ステップS23−1の判断結果が肯定的になる状況は、乗員あるいは外部の補助者等により概略前後方向での重心速度ベクトル↑Vbの大きさを増加させようとする操縦操作(車両1に概略前後方向の推進力を付加する操縦操作)が行なわれている状況である。
【0322】
ステップS23−1の判断結果が否定的となる場合、すなわち、車両1の加速要求(概略前後方向での車両1の加速要求)が無い場合には、要求重心速度生成部74は、次に、ステップS23−4の判断処理を実行する。
【0323】
ステップS23−4の判断処理では、要求重心速度生成部74は、ステップS21で算出した推定重心速度絶対値変化率DVb_sが、あらかじめ設定された負の値の第3閾値DV3(<0)よりも小さいか否かを判断する。この判断処理は、車両1の乗員が重心速度ベクトル↑Vbの大きさを積極的に減少させようとする減速要求が発生したか否かを判断するものである。この場合、車両1の乗員が意図的に自身の足を接地させ、自身の足と床との間に車両1の制動方向の摩擦力を発生させたような場合にステップS23−4の判断結果が肯定的になる。
【0324】
そして、要求重心速度生成部74は、ステップS23−4の判断結果が否定的である場合(減速要求が発生していない場合)には、ステップS23−5で第1制動演算処理を実行することによって、基本要求重心速度ベクトル↑Vb_aim1の大きさ|↑Vb_aim1|(以降、基本要求重心速度ベクトル絶対値|↑Vb_aim1|という)と方位角θvb_aim1(以降、基本要求重心速度ベクトル方位角θvb_aim1という)とを決定し、図15の処理を終了する。また、ステップS23−4の判断結果が肯定的である場合(減速要求が発生した場合には)、要求重心速度生成部74は、ステップS23−6で第2制動演算処理を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定し、図15の処理を終了する。
【0325】
なお、本実施形態では、基本要求重心速度ベクトル方位角θvb_aim1は、sin(θvb_aim1)=Vb_x_aim1/|↑Vb_aim1|,cos(θvb_aim1)=Vb_y_aim1/|↑Vb_aim1|となる角度(180°≦θVb_aim≦180°)として定義される。また、|↑Vb_aim|=0である場合には、θVb_aim=0°であるとする。
【0326】
上記ステップS23−5の第1制動演算処理は、図16及び図17のフローチャートに示す如く実行される。
【0327】
この第1制動演算処理では、要求重心速度生成部74は、まず、ステップS23−5−1において基本要求重心速度ベクトル絶対値|↑Vb_aim1|の前回値|↑Vb_aim_p|からあらかじめ設定された正の所定値ΔVb1だけ減少させてなる値を、|↑Vb_aim1|の候補値ABS_Vbとして算出する。ΔVb1は、制御処理周期毎の|↑Vb_aim1|の減少量(ひいては|↑Vb_aim1|の時間的変化率)を規定する設定値である。
【0328】
次いで、要求重心速度生成部74は、ステップS23−5−2において、この候補値ABS_Vbと、“0”とのうちの大きい方の値max(0,ABS_Vb)を、|↑Vb_aim1|の今回値として決定する。従って、ABS_Vb≧0である場合には、ABS_Vbがそのまま|↑Vb_aim1|の今回値として決定され、ABS_Vb<0である場合には、|↑Vb_aim1|の今回値は“0”とされる。
【0329】
次いで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim1|が“0”であるか否かをステップS23−5−3で判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−4において、θvb_aim1の今回値を0°とし、図16の処理を終了する。
【0330】
ステップS23−5−3の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−5からの処理によって、θvb_aim1の前回値θvb_aim1_pの値が、0°≦θvb_aim1_p≦θth1+、θth1-≦θvb_aim1_p<0°、θth2+≦θvb_aim1_p≦180°、−180°≦θvb_aim1_p≦θth2-、θth1+<θvb_aim1_p<θth2+、θth2-<θvb_aim1_p<θth1-のいずれの範囲内の値であるかに応じて、θvb_aim1の今回値を決定する。
【0331】
ここで、θth1+は、0°と90°との間の値であらかじめ設定された正の方位角閾値、θth1-は、0°と−90°との間の値であらかじめ設定された負の方位角閾値、θth2+は、90°と180°との間の値であらかじめ設定された正の方位角閾値、θth2-は、−90°と−180°との間の値であらかじめ設定された負の方位角閾値である。本実施形態では、θth1+とθth1-とは、それらの絶対値が互いに同一の値(例えば45°もしくはその近辺の角度値)に設定されている。また、θth2+とθth2-とは、それらの絶対値が互いに同一の値(例えば135°もしくはその近辺の角度値)に設定されている。なお、θth1+とθth1-との差(=(θth1+)−(θth1-))と、θth2とθth2-との差(=(θth2+)−(θth2-))とは、互いに同一である必要なない。
【0332】
ステップS23−5−5からの処理は以下に説明する如く実行される。すなわち、要求重心速度生成部74は、ステップS23−5−5において、0°≦θvb_aim1_p≦θth1+であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−6において、θvb_aim1の前回値θvb_aim1_pからあらかじめ設定された正の所定値Δθvb1だけ減少させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。Δθvb1は、制御処理周期毎のθvb_aim1の変化量(ひいてはθvb_aim1の時間的変化率)を規定する設定値である。
【0333】
そして、要求重心速度生成部74は、ステップS23−5−7において、この候補値ANG_Vbと、0°とのうちの大きい方の角度値max(0,ANG_Vb)をθvb_aim1の今回値として決定し、図16の処理を終了する。従って、ANG_Vb≧0°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb<0°である場合には、θvb_aim1の今回値は0°とされる。
【0334】
ステップS23−5−5の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−8において、θth1-≦θvb_aim1_p<0°であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−9において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ増加させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0335】
そして、要求重心速度生成部74は、ステップS23−5−10において、この候補値ANG_Vbと、0°とのうちの小さい方の角度値min(0,ANG_Vb)をθvb_aim1の今回値として決定し、図16の処理を終了する。従って、ANG_Vb≦0°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb>0°である場合には、θvb_aim1の今回値は0°とされる。
【0336】
ステップS23−5−8の判断結果が否定的である場合には、要求重心速度生成部74は、次に、図17のステップS23−5−11において、θth2+≦θvb_aim1_p≦180°であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−12において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ増加させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0337】
そして、要求重心速度生成部74は、ステップS23−5−13において、この候補値ANG_Vbと、0°とのうちの小さい方の角度値min(180,ANG_Vb)をθvb_aim1の今回値として決定し、図17の処理を終了する。従って、ANG_Vb≦180°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb>180°である場合には、θvb_aim1の今回値は180°とされる。
【0338】
ステップS23−5−11の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−14において、−180°≦θvb_aim1_p≦θth2-であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−15において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ減少させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0339】
そして、要求重心速度生成部74は、ステップS23−5−16において、この候補値ANG_Vbと、−180°とのうちの大きい方の角度値max(180,ANG_Vb)をθvb_aim1の今回値として決定し、図17の処理を終了する。従って、ANG_Vb≧−180°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb<−180°である場合には、θvb_aim1の今回値は−180°とされる。
【0340】
ステップS23−5−14の判断結果が否定的である場合、すなわち、θth1+<θvb_aim1_p<θth2+又はθth2-<θvb_aim1_p<θth1-である場合には、要求重心速度生成部74は、ステップS23−5−17において、θvb_aim1の今回値を、前回値θvb_aim1_pと同じ値に決定し、図17の処理を終了する。
【0341】
以上が、ステップS23−5の第1制動演算処理の詳細である。
【0342】
一方、前記S23−6の第2制動演算処理は、図18のフローチャートに示す如く実行される。
【0343】
この第2制動演算処理では、要求重心速度生成部74は、まず、ステップS23−6−1において基本要求重心速度ベクトル絶対値|↑Vb_aim1|の前回値|↑Vb_aim_p|からあらかじめ設定された正の所定値ΔVb2だけ減少させてなる値を、|↑Vb_aim1|の候補値ABS_Vbとして算出する。ΔVb2は、第2制動演算処理での、制御処理周期毎の|↑Vb_aim1|の減少量(ひいては|↑Vb_aim1|の時間的変化率)を規定する設定値である。この場合、ΔVb2は、前記第1制動演算処理で使用する所定値ΔVb1よりも大きな値に設定されている。
【0344】
次いで、要求重心速度生成部74は、ステップS23−6−2において、前記ステップS23−5−2と同様の処理を実行し、ステップS23−6−1で算出した候補値ABS_Vbと、“0”とのうちの大きい方の値max(0,ABS_Vb)を、|↑Vb_aim1|の今回値として決定する。
【0345】
次いで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim1|が“0”であるか否かをステップS23−6−3で判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS23−6−4において、θvb_aim1の今回値を“0”とし、図18の処理を終了する。
【0346】
また、ステップS23−6−3の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−6−5において、θvb_aim1の今回値を、前回値θvb_aim1_pと同じ値に決定し、図18の処理を終了する。
【0347】
以上が、ステップS23−6の第2制動演算処理の詳細である。
【0348】
図15の説明に戻って、前記ステップS23−1の判断結果が肯定的である場合、すなわち、概略前後方向での車両1の加速要求が有る場合には、要求重心速度生成部74は、ステップS23−2で基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。要求重心速度生成部74は、ステップS23−3で演算処理モードを制動モードから速度追従モードに変更し、図15の処理を終了する。
【0349】
上記ステップS23−2では、具体的には、前記推定重心速度ベクトル↑Vb_s(今回値)の大きさ|↑Vb_s|(=sqrt(Vb_x_s2+Vb_y_s2))に、あらかじめ設定された所定値の比率γを乗じてなる値が、基本要求重心速度ベクトル絶対値|↑Vb_aim1|として決定される。上記比率γは、本実施形態では、“1”よりも若干小さい正の値(例えば0.8)に設定されている。
【0350】
さらに、ステップS23−2では、推定重心速度ベクトル↑Vb_sの方位角θvb_s(=sin-1(Vb_x_s/|↑Vb_s|))がそのまま、基本要求重心速度ベクトル方位角θvb_aim1として決定される。従って、ステップS23−2では、結果的には、推定重心速度ベクトル↑Vb_sに上記比率γを乗じてなるベクトルが、基本要求重心速度ベクトル↑Vb_aim1として決定されることとなる。
【0351】
このようなステップS23−2の処理は、|↑Vb_x_aim1|とθvb_aim1との決定の仕方を、次回の制御処理サイクルから開始する速度追従モードに合わせるものである。
【0352】
なお、上記比率γの値が“1”よりも若干小さいことは必須ではなく、例えば、該比率γの値を“1”あるいはそれよりも若干大きい値に設定してもよい。本実施形態では、乗員が体感的(感覚的)に認識する車両1の移動速度が、実際の移動速度に比べて高速であるかのように認識されるのを防止するために、比率γの値を“1”よりも若干小さい値に設定している。
【0353】
以上が、ステップS23における制動モードの演算処理である。
【0354】
なお、ステップS23−1の判断結果が否定的となる場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、制動モードに維持されることとなる。
【0355】
次に、ステップS24における速度追従モードの演算処理は、図19のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、ステップS24−1において、前記ステップS23−4と同じ判断処理、すなわち、車両1の減速要求が発生したか否かの判断処理を実行する。
【0356】
この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS24−6において、前記ステップS23−6と同じ処理(図18のフローチャートに示す処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。さらに、要求重心速度生成部74は、ステップS24−7において、演算処理モードを速度追従モードから制動モードに変更し、図19の処理を終了する。
【0357】
一方、前記ステップS24−1の判断結果が否定的である場合、すなわち、車両1の減速要求が発生していない場合には、要求重心速度生成部74は、次にステップS24−2の処理を実行する。このステップS24−2では、要求重心速度生成部74は、前記ステップS23−2と同じ処理を実行し、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。すなわち、|↑Vb_x_s|*γが|↑Vb_aim1|として決定される共に、θvb_sがθvb_aim1として決定される。
【0358】
次いで、要求重心速度生成部74は、ステップS24−3において、前記推定重心速度絶対値変化率DVb_s(ステップS21で算出した値)が、あらかじめ設定された第2閾値DV2よりも小さいか否かを判断する。この第2閾値DV2は、本実施形態では、前記第3閾値DV3よりも大きい(DV3よりも“0”に近い)負の所定値に設定されている。なお、第2閾値DV2は、“0”もしくは“0”よりも若干大きい正の値(但し、前記第1閾値DV1よりも小さい値)に設定されていてもよい。
【0359】
このステップS24−3の判断処理は、速度追従モードから、前記速度ホールドモードへの移行タイミングを判断するものである。そして、要求重心速度生成部74は、ステップS24−3の判断結果が否定的である場合には、そのまま図19の処理を終了する。この場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、速度追従モードに維持されることとなる。
【0360】
また、ステップS24−3の判断結果が肯定的である場合には、要求重心速度生成部74は、車両1の加速要求が完了したものとみなして、ステップS24−4において、カウントダウンタイマを初期化する。そして、要求重心速度生成部74は、ステップS24−5にて演算処理モードを速度追従モードから速度ホールドモードに変更し、図19の処理を終了する。
【0361】
上記カウントダウンタイマは、次回の制御処理周期から開始する速度ホールドモードの開始後の経過時間を計時するタイマである。そして、ステップS24−4では、該タイマの計時値CNTに、あらかじめ設定された初期値Tmがセットされる。初期値Tm_xは、速度ホールドモードを継続させようとする時間の設定値を意味する。
【0362】
以上が、ステップS24における速度追従モードの演算処理である。
【0363】
次に、ステップS25における速度ホールドモードの演算処理は、図20のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、ステップS25−1において、前記ステップS23−4と同じ判断処理、すなわち、車両1の減速要求が発生したか否かの判断処理を実行する。
【0364】
そして、このステップS25−1の判断結果が肯定的である場合(車両1の減速要求が発生した場合)には、要求重心速度生成部74は、次に、ステップS25−2において、前記ステップS23−6と同じ処理(図18のフローチャートに示す処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。さらに、要求重心速度生成部74は、ステップS25−3において、演算処理モードを速度ホールドモードから制動モードに変更し、図20の処理を終了する。
【0365】
一方、前記ステップS25−1の判断結果が否定的である場合(車両1の減速要求が発生していない場合)には、要求重心速度生成部74は、前記ステップS23−1と同じ判断処理、すなわち概略前後方向での車両1の加速要求が有るか否かの判断処理をステップS25−4で実行する。
【0366】
そして、ステップS25−4の判断結果が肯定的である場合(概略前後方向での車両1の加速要求が再び発生した場合)には、要求重心速度生成部74は、ステップS25−5において、前記ステップS23−2と同じ処理を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。すなわち、|↑Vb_x_s|*γが|↑Vb_aim1|として決定される共に、θvb_sがθvb_aim1として決定される。
【0367】
さらに、要求重心速度生成部74は、ステップS25−6において、演算処理モードを速度ホールドモードから速度追従モードに変更し、図20の処理を終了する。
【0368】
前記ステップS25−4の判断結果が否定的である場合(概略前後方向での加速要求が無い状態が継続している場合)には、要求重心速度生成部74は、ステップS25−7において、前記カウントダウンタイマの計時値CNTをデクリメントする。すなわち、計時値CNTの現在値から所定値ΔT(制御処理周期の時間)を差し引くことによって、計時値CNTを更新する。
【0369】
次いで、要求重心速度生成部74は、カウントダウンタイマの計時値CNTが“0”よりも大きいか否か、すなわち、カウントダウンタイマの計時が終了したか否かをステップS25−8にて判断する。
【0370】
このステップS25−8の判断結果が肯定的である場合は、速度ホールドモードが開始してから、カウントダウンタイマの前記初期値Tmにより表される時間が未だ経過していない場合である。この場合には、要求重心速度生成部74は、演算処理モードを速度ホールドモードに維持するものとして、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度方位角θvb_aim1とをステップS25−9にて決定し、図20の処理を終了する。
【0371】
この場合、ステップS25−9では、|↑Vb_aim1|の今回値は、前回値|↑Vb_aim1_p|と同じ値に決定される。また、θvb_aim1の今回値は、前回値θvb_aim1_pと同じ値に決定される。従って、基本要求重心速度ベクトル↑Vb_aim1_pの前回値がそのまま、↑Vb_aim1の今回値の速度ベクトルとして決定される。
【0372】
なお、ステップS25−8の判断結果が肯定的である場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、速度ホールドモードに維持されることとなる。
【0373】
前記ステップS25−8の判断結果が否定的となった場合、すなわち、速度ホールドモードが開始してから、カウントダウンタイマの前記初期値Tmにより表される所定時間が経過した場合には、要求重心速度生成部74は、ステップS25−10において、前記ステップS23−5と同じ処理(図16及び図17のフローチャートの処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度方位角θvb_aim1とを決定する。
【0374】
さらに、要求重心速度生成部74は、ステップS25−11にて、演算処理モードを速度ホールドモードから制動モードに変更し、図20の処理を終了する。
【0375】
以上が、ステップS25における速度ホールドモードの演算処理である。
【0376】
図14の説明に戻って、要求重心速度生成部74は、以上の如くステップS23〜25のいずれかの演算処理を実行した後、次に、その演算処理により決定した|↑Vb_aim1|とθvb_aim1とをそれぞれフィルタに入力する処理(フィルタリング処理)をステップS26にて実行する。
【0377】
ここで、|↑Vb_aim1|とθvb_aim1とをそれぞれ入力するフィルタは、特に、演算処理モードが制動モードから速度追従モードに変更された直後に、要求重心速度ベクトル↑Vb_aimの大きさ|↑Vb_aim|と方位角θvb_aimとがステップ状に急変するのを防止するための一次遅れ特性のローパスフィルタである。この場合、|↑Vb_aim|を入力するフィルタの時定数は比較的短い時定数に設定されており、|↑Vb_aim1|が急変した直後以外の状況では該フィルタの出力値が|↑Vb_aim1|に一致又はほぼ一致するようになっている。θvb_aim1を入力するフィルタについても同様である。
【0378】
そして、ステップS26では、θvb_aim1を入力したフィルタの出力値が、そのまま、要求重心速度ベクトル↑Vb_aimの方位角θvb_aim(以降、要求重心速度ベクトル方位角θvb_aimという)として決定される。
【0379】
次いで、ステップS27に進んで、要求重心速度生成部74は、|↑Vb_aim1|を入力したフィルタの出力値を、リミッタに通してなる値を、最終的に要求重心速度ベクトル↑Vb_aimの大きさ|↑Vb_aim|(以降、要求重心速度ベクトル絶対値|↑Vb_aim|という)として決定する。この場合、該リミッタは、|↑Vb_aim|が過大になるのを防止するためのものであり、|↑Vb_aim1|を入力したフィルタの出力値があらかじめ設定された所定の上限値以下である場合には、該フィルタの出力値をそのまま|↑Vb_aim|として出力する。また、該リミッタは、フィルタの出力値が上記上限値を超えている場合には、該上限値を|↑Vb_aim|として出力する。換言すれば、該リミッタは、フィルタの出力値と上記上限値とのうちの小さい方の値を|↑Vb_aim|として出力する。
【0380】
次いで、ステップS28に進んで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim|とθvb_aimとから、要求重心速度ベクトル↑Vb_aimのX軸方向成分(X軸方向の要求重心速度)Vb_x_aimと、Y軸方向の成分(Y軸方向の要求重心速度)Vb_y_aimとを算出する。より詳しくは、|↑Vb_aim|*sin(θvb_aim)がVb_x_aimとして算出され、|↑Vb_aim|*cos(θvb_aim)がVb_y_aimとして算出される。
【0381】
以上が要求重心速度生成部74の処理の詳細である。
【0382】
以上説明した要求重心速度生成部74の処理によって、要求重心速度ベクトル↑Vb_aimは(ひいては要求重心速度Vb_x_aim,Vb_y_aim)は、以下のような態様で決定されることとなる。
【0383】
すなわち、例えば、車両1の移動速度を増速するために、乗員が自身の足平で床を蹴ることにって、あるいは、補助者等が車両1を押すことによって、車両1に対して、概略X軸方向の推進力(詳しくは、前記ステップS23−1の判断結果が肯定的となるような推進力)を付加した場合を想定する。
【0384】
なお、推進力を付加する前の演算処理モードは、前記制動モードであるとする。また、ここでは、理解の便宜上、図14のステップS26で|↑Vb_aim1|を入力するフィルタの出力値は、ステップS27でのリミッタによる制限がかからない程度の範囲内に収まる値(該リミッタの上限値以下の値)であるとする。同様に、重心速度推定値Vb_x_s,Vb_y_sが、前記リミット処理部104での出力値V_x_lim2,V_y_lim2の制限が行なわれない程度の範囲内に収まるものとする。
【0385】
この場合、車両1に推進力を付加することによって、前記ステップS23−1の判断結果が肯定的となると、図15のステップS23−3の処理によって、演算処理モードが制動モードから速度追従モードに変更されることとなる。
【0386】
この速度追従モードでは、減速要求が発生しない状況(ステップS24−1の判断結果が否定的となる状況)で、推定重心速度ベクトル↑Vb_sの今回値(現在値)に、所定値の比率γを乗じてなるベクトル、すなわち、↑Vb_sよりも大きさが若干小さく、且つ、↑Vb_sと同じ向きの速度ベクトルが、基本要求重心速度ベクトル↑Vb_aim1として逐次決定される。
【0387】
このため、要求重心速度生成部74が逐次決定する要求重心速度ベクトル↑Vb_aimは、車両1に付加された推進力によって増速する(大きさが増加する)実際の重心速度ベクトル↑Vbにほぼ一致する速度ベクトル↑Vb_aim1(=γ*↑Vb_s)に追従するように、決定されることとなる。
【0388】
そして、このように決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0389】
この結果、乗員が車両1に付加した推進力による車両系重心点の実際の移動速度の増速(概略前後方向での増速)が該推進力による要求に即して速やかに行なわれるように、車輪体5の移動速度が制御されることとなる。従って、車両1が付加された推進力によって円滑に加速することとなる。
【0390】
なお、速度追従モードにおいて、車両1に制動力を付加することによって、図19のステップS24−1の判断結果が肯定的になると(減速要求が発生すると)、演算処理モードが前記制動モードに変化する。このため、車両1の移動速度が減衰していくこととなる。この場合、減速要求の発生中は、ステップS23−6の第2制動演算処理(図18の処理)によって、|↑Vb_aim1|とθvb_aim1とが決定されるので、基本要求重心速度ベクトル↑Vb_aim1、あるいはこれに追従する要求重心速度ベクトル↑Vb_aimは、その向きを一定に保ったまま、大きさが一定の時間的変化率(前記所定値ΔVb2により規定される時間的変化率)で減衰していくように決定されることとなる。
【0391】
次に、速度追従モードにおいて、車両1への推進力の付加が終了し、推定重心速度絶対値変化率DVb_sが前記第2閾値DV2よりも小さくなると(図19のステップS24−3の判断結果が肯定的になると)、図19のステップS24−5の処理によって、演算処理モードが速度追従モードから速度ホールドモードに変更されることとなる。
【0392】
この速度ホールドモードでは、加速要求及び減速要求が発生しない状況(図19のステップS25−1、25−4の判断結果がいずれも否定的となる状況)で、カウントダウンタイマの計時が終了するまで、基本要求重心速度ベクトル↑Vb_aim1は、前回値の速度ベクトル↑Vb_aim1_pと同じ速度ベクトルに設定される。
【0393】
従って、速度ホールドモードの開始後、カウントダウンタイマの計時が終了するまでの所定時間(カウントダウンタイマの初期値Tmの時間)の期間において、基本要求重心速度ベクトル↑Vb_aim1は、速度ホールドモードが開始する直前に決定された速度ベクトルと同じ速度ベクトルで一定に保持されることとなる。
【0394】
このため、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、一定の速度ベクトル(速度ホールドモードが開始する直前に決定された↑Vb_aimと一致又はほぼ一致する速度ベクトル)に保たれるように決定されることとなる。
【0395】
そして、上記の如く決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0396】
この結果、車両1の増速後に、カウントダウンタイマの計時が終了するまでの期間(前記初期値Tmにより表される時間の期間)において、乗員の上体の姿勢の頻繁な調整を必要とすることなく、車両系重心点の実際の速度ベクトル↑Vbの大きさ及び向きが一定に保たれるように該車輪体5の移動速度が制御されることとなる。従って、この状況での車両1の実際の走行状態は、乗員がその上体を積極的に動かすような操縦操作をせずとも、ほぼ一定の速度ベクトルで滑走するような状態となる。
【0397】
なお、速度ホールドモードにおいて、再び車両1に概略前後方向の推進力を付加することによって、図20のステップS25−4の判断結果が肯定的になると(加速要求が発生すると)、演算処理モードが前記速度追従モードに戻る。このため、車両1が再び概略前後方向で加速することとなる。
【0398】
また、速度ホールドモードにおいて、車両1に制動力を付加することによって、図20のステップS25−1の判断結果が肯定的になると(減速要求が発生すると)、演算処理モードが前記制動モードに変化する。このため、車両1の移動速度が減衰していくこととなる。この場合、速度追従モードで減速要求が発生した場合と同様に、減速要求の発生中は、ステップS23−6の第2制動演算処理(図18の処理)によって、|↑Vb_aim1|とθvb_aim1とが決定される
【0399】
次に、速度ホールドモードにおいて、加速要求及び減速要求が発生しない状況(図20のステップS25−1,25−4の判断結果がいずれも否定的となる状況)が保たれたまま、前記カウントダウンタイマの計時が終了すると、図20のステップS25−11の処理によって、演算処理モードが速度ホールドモードから制動モードに変更されることとなる。
【0400】
この制動モードでは、加速要求及び減速要求が発生しない状況(図15のステップS23−1,23−4の判断結果がいずれも否定的となる状況)で、図16のステップS23−5−1,23−5−2の処理が制御処理周期毎に実行されることによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|が、“0”まで一定の時間的変化率(前記ΔVb1により規定される時間的変化率)で連続的に減衰していくこととなる。そして、|↑Vb_aim1|が“0”まで減衰した後には、|↑Vb_aim1|が“0”に保持される。
【0401】
さらに、制動モードでは、加速要求及び減速要求が発生しない状況で、図16のステップS23−5−3以降の処理が制御処理周期毎に実行される。この場合、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向き(図20のステップS25−8の判断結果が否定的となる制御処理周期の1つ前の制御処理周期で決定された↑Vb_aim1の向き)が、X軸方向と異なり、且つ、比較的X軸方向に近い向きである場合(より正確には、移行直前に決定された↑Vb_aim1の方位角θvb_aim1が、0°<θvb_aim1_p≦θth1+、θth1-≦θvb_aim1_p<0°、θth2+≦θvb_aim1_p<180°、−180°<θvb_aim1_p≦θth2-のいずれかの範囲内の角度値である場合)には、|↑Vb_aim1|が“0”に減衰するまでの期間内において、θvb_aim1が一定の時間的変化率で収束目標角度値としての0°又は180°又は−180°に近づいていき、最終的に、該収束目標角度値に保持される。従って、制動モードの開始後、|↑Vb_aim1|が“0”に減衰するまでの期間内において、基本要求重心速度ベクトル↑Vb_aimの向きが、連続的にX軸方向に近づいていくこととなる。換言すれば、当該期間内において、基本要求重心速度ベクトル↑Vb_aimのX軸方向成分Vb_x_aim1の絶対値に対するY軸方向成分Vb_y_aim1の絶対値の比率が、“0”に近づいていくこととなる。そして、|↑Vb_aim1|が“0”に減衰するまでに、↑Vb_aim1の向きがX軸方向と同じ向きに到達すると(Vb_y_aim1=0になると)、↑Vb_aim1の向きがX軸方向と同じ向きに保持される。
【0402】
従って、↑Vb_aim1は、その大きさが減衰しつつ、その向きがX軸方向に近づく(収束する)ように決定される。このように↑Vb_aim1が決定される状況では、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、その大きさが減衰しつつ、その向きがX軸方向に近づくように決定されることとなる。
【0403】
また、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向きが、X軸方向と異なり、且つ、X軸方向から比較的乖離した向きである場合(より正確には、上記移行直前に決定された↑Vb_aim1の方位角θvb_aim1が、θth1+<θvb_aim1_p<θth2+、θth2-<θvb_aim1_p<θth1-のいずれかの範囲内の角度値である場合)には、|↑Vb_aim1|が“0”に減衰するまでの期間内において、θvb_aim1が、上記移行直前に決定された↑Vb_aim1の方位角θvb_aim1と同じ角度値で一定に保持される。
【0404】
従って、↑Vb_aim1は、その大きさが減衰しつつ、その向きが一定に保たれるように決定される。このように↑Vb_aim1が決定される状況では、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、その大きさが減衰しつつ、その向きが一定に保たれるように決定されることとなる。
【0405】
なお、本実施形態では、速度ホールドモードでは、↑Vb_aim1は、その大きさ及び向きが一定に保持されるので、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1は、結果的には、速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1(本実施形態では、図19のステップS24−3の判断結果が肯定的となる制御処理周期で決定された↑Vb_aim1)に一致する。
【0406】
そして、制動モードで上記の如く決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0407】
この結果、前記制動モードの前の演算処理モードが速度ホールドモードである場合に、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の実際の速度ベクルの大きさが速度ホールドモードでの大きさから連続的に減衰していくように車輪体5の移動速度が制御されることとなる。
【0408】
この場合、速度ホールドモードから制動モードへの移行直前に決定された↑Vb_aim1(=速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1)の向きが、X軸方向と異なり、且つ、比較的X軸方向に近い向きである場合には、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の速度ベクトルの大きさが減衰しながら、該速度ベクトルの向きが自動的にX軸方向(乗員の前後方向)に近づいていくこととなる。従って、乗員の前後方向に対する車両1の直進性が高まる。
【0409】
ここで、車両1を加速しようとする場合、多くの場合、特に乗員の前後方向で車両1を加速することが要求される。この場合、本実施形態の車両1は、上記の如く前後方向に対する直進性が高いので、車両1に付加する推進力の向きが、前後方向から多少ずれていても、その後の速度ホールドモードに続く制動モードにおいて、自動的に車両系重心点の速度ベクトルが、前後方向に向くように車輪体5の移動速度が制御される。
【0410】
このため、車両1の移動方向のばらつきが生じにくく、乗員の前後方向に対して高い直進性を有する車両1(乗員の前後方向に進み易い車両1)が実現されている。ひいては、車両1を前後方向に移動させる場合に、車両1に付加する推進力を正確に前後方向に向けずとも、該車両1を前後方向に移動させることができる。その結果、車両1を前後方向に移動させる操縦操作が容易になる。
【0411】
また、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1(=速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1)の向きが、X軸方向と異なり、且つ、X軸方向から比較的乖離した向きである場合には、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の速度ベクトルの大きさが減衰しながら、該速度ベクトルの向きがほぼ一定に保たれる。すなわち、速度ホールドモードから制動モードへの移行直前に決定された↑Vb_aim1の向きが、X軸方向から比較的乖離した向きである場合には、速度追従モードで最終的に乗員が意図した車両系重心の速度ベクトルの向きが、X軸方向と異なる向きである可能性が高い。従って、速度追従モード以後に、車両系重心点が、乗員が意図する方向と乖離する向きに移動しようとするのを防止できる。
【0412】
行動範囲制限システム200は、特定機202Mの行動範囲制限処理部220Mによって、複数の子機202Sに対して、あらかじめ設定された制限領域を逸脱しているか否かを判断し、子機202Sが制限領域を逸脱した場合は、特定202Mからの指令によって、子機202Sを制限領域302内に帰還させることによって、監督者は、複数の監督者の行動範囲を容易かつ効率的に監視することができる。
【0413】
子機202Sの行動範囲制限処理部220Sは、特定機202Mの行動範囲制限処理部220Mにより指令に従って、目標帰還位置に移動するように、駆動制御部228Sにより移動動作部5を制御することによって、子機202Sに搭乗する被監督者を制限領域302内に被監督者を帰還させることができる。
【0414】
ステップS206における処理において、子機202Sの進行速度が所定の速度以上であった場合、駆動制御部228Sによる移動動作部5の制御に先立って、該子機の乗員に対して減速するよう警告することによって、位置制御モードにおける移動動作部5の制御による被監督者の心理的及び身体的負担を緩和するとともに、安全性を向上させることができる。
【符号の説明】
【0415】
5 移動動作部(被駆動機構)
7 アクチュエータ装置(駆動部)
9 基体(基体)
50 制御ユニット(進行速度取得部)
200 行動範囲制限システム
202M 特定機
202S 子機
206 位置測定装置
212M,212S 受信装置(受信部)
214M 送信装置(送信部)
216M,216S 位置情報取得部(位置情報取得部)
220M,220S 行動範囲制限処理部(第1領域設定部、第1領域判断部、子機制御部、距離算出部、速度判断部、第2領域設定部、第2領域判断部)
224M,224S 報知装置(警告部)
228M,222S 駆動制御部(駆動制御部)
302 制限領域(第1領域)
304 許可領域(第2領域)
【技術分野】
【0001】
本発明は、複数の移動体の行動範囲を制限するシステムに関する。
【背景技術】
【0002】
床面上を全方向(2次元的な全方向)に移動可能な全方向移動車両としては、例えば、特許文献1、2に見られるものが本願出願人により提案されている。これらの特許文献1、2に見られる全方向移動車両にあっては、床面に接地しながら該床面上を全方向に移動可能な、球体状又は車輪状又はクローラ状の移動動作部と、該移動動作部を駆動する電動モータ等を有するアクチュエータ装置とが車両の基体に組付けられている。そして、この車両は、アクチュエータ装置により移動動作部を駆動することによって、床面上を移動する。
【0003】
また、この種の全方向移動車両の移動動作を制御する技術としては、例えば特許文献3に見られる技術が本願出願人により提案されている。この技術では、車両の基体が球体状の移動動作部に対して前後・左右に傾動自在に設けられている。そして、基体の傾き角を計測し、この傾き角を所要の角度に保つように、移動動作部を駆動する電動モータのトルクを制御することによって、基体の傾動動作に応じて車両を移動させるようにしている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2008/132778号
【特許文献2】国際公開第2008/132779号
【特許文献3】特許第3070015号公報
【特許文献4】特開2005−267079号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
被監督者が、特許文献1、2に開示されているような車両に搭乗して自由に運転できるような状況下においては、多くの場合、被監督者の行動をあらかじめ設定された行動範囲内に制限することが望まれるが、特許文献3に開示されているような制御装置では、このような制御を行うことができないという問題がある。
【0006】
被監督者の行動範囲を監視するシステムについては、特許文献4に開示されている。しかし、特許文献4に記載の技術では、被監督者が行動予定範囲を逸脱した場合、監督者に対して単に警告がなされるのみであるため、被監督者を確実に行動予定範囲内に戻すことができないという問題がある。
【0007】
本発明は、上記問題を解決すべくなされたもので、その目的は、被監督者が搭乗している移動体が予定された行動範囲を逸脱した場合、被監督者の移動体が行動範囲内に帰還するように制御するシステムを提供することにある。
【課題を解決するための手段】
【0008】
上記問題を解決するために、請求項1に記載した発明は、1つ以上の子機(例えば、実施形態による子機202S)と、前記子機の位置を制御する特定機(例えば、実施形態による特定機202M)と、前記子機及び特定機の位置情報を供給する位置測定装置(例えば、実施形態による位置測定装置206)とからなる行動範囲制限システム(例えば、実施形態による行動範囲制限システム200)であって、前記子機は、情報を受信する受信部(例えば、実施形態による受信装置212S)を備え、前記特定機は、情報を受信する受信部(例えば、実施形態による受信装置212M)と、情報を送信する送信部(例えば、実施形態による送信装置214M)と、該特定機の位置に対する前記子機の行動範囲を制限する第1領域(例えば、実施形態による制限領域300)を設定する第1領域設定部(例えば、実施形態による制限範囲制限処理部220M)と、前記特定機の受信部を介して、前記位置測定装置から前記特定機及び子機の現在位置情報を取得する位置取得部と(例えば、実施形態による行動範囲制限処理部220M)、前記特定機及び子機の現在位置情報に基づいて、前記子機の位置が前記第1領域を逸脱したか否かを判断する第1領域判断部(例えば、実施形態による行動範囲制限処理部220M)と、前記第1領域判断部により前記子機が前記第1領域を逸脱したと判断された場合、前記特定機の送信部と、前記子機の受信部とを介して、前記子機が第1領域内の所定の位置に移動するように制御する子機制御部とを備えることを特徴とする行動範囲制限システムである。これにより、子機があらかじめ設定された制限範囲を逸脱した場合、特定機は子機を制限範囲内に帰還させることができる。
【0009】
請求項2に記載した発明は、前記特定機は、前記位置取得部によって取得された前記特定機及び子機の現在位置情報に基づいて、該特定機と前記子機との間の距離を算出する距離算出部(例えば、実施形態による行動範囲制限処理部220M)をさらに備え、前記第1領域判断部は、前記距離算出部の算出結果に基づいて、前記子機の位置が前記第1領域を逸脱したか否かを判断することを特徴とする。これにより、特定機及び子機の現在位置間の距離に基づいて、子機が制限範囲を逸脱しているか否かを正確に判断することができる。
【0010】
請求項3に記載した発明は、前記子機制御部は、前記第1領域判断部により前記子機が前記第1領域を逸脱したと判定された場合、前記特定機の送信部を介して、帰還指令及び目標帰還位置情報を前記子機に送信し、前記子機は、走行面を移動可能な被駆動機構(例えば、実施形態による移動動作部5)と、前記被駆動機構を駆動する駆動力を発生さえる駆動部(例えば、実施形態によるアクチュエータ装置7)と、前記被駆動機構および前記駆動部が組み付けられた基体(例えば、実施形態による基体9)と、走行面上を移動可能な被駆動機構(例えば、実施形態による移動動作部5)と、前記子機の受信部を介して、前記位置測定装置から該子機の現在位置情報を取得する位置取得部(例えば、実施形態による行動範囲制限処理部220S)と、前記特定機から前記帰還指令及び目標帰還位置情報を受信した場合に、前記子機の現在位置情報と目標帰還位置情報とに基づいて、前記子機が前記第1領域内の目標帰還位置に移動するように、前記駆動部を制御する駆動制御部(例えば、実施形態による駆動制御部228M)とを備えることを特徴とする。これにより、子機は、特定機からの指示に従い、現在位置と目標帰還位置とに基づいて、制限範囲内に帰還することができる。
【0011】
請求項4に記載した発明は、前記駆動制御部は、前記目標帰還位置に対する前記現在位置の偏差と、前記偏差の時間的変化率とに基づいて、前記子機の所定の代表点における目標速度を逐次決定し、前記目標速度に応じて前記駆動部を制御することを特徴とする。これにより、子機が目標帰還位置に到着するまで、適切な移動速度を逐次決定することができる。
【0012】
請求項5に記載した発明は、前記子機は、搭乗可能でかつ該子機の乗員よって運転可能な移動体であることを特徴とする。これにより、被監督者が子機に搭乗している場合、制限領域を逸脱した被監督者を確実に制限領域内に帰還させることができる。
【0013】
請求項6に記載した発明は、前記子機は、前記代表点における進行速度を取得する進行速度取得部(例えば、実施形態による制御ユニット50)と、前記進行速度が所定の速度以上であるか否かを判断する進行速度判断部(例えば、実施形態による行動範囲制限処理部220S)と、前記進行速度判断部により前記進行速度が所定の速度以上であると判定された場合、前記駆動制御部による前記駆動部の制御に先立って、該子機の乗員に対して減速するよう少なくとも1度警告する警告部(例えば、実施形態による報知装置224S及び/又は表示装置226S)とをさらに備えることを特徴とする。これにより、子機に搭乗している乗員を安全かつ確実に制限領域内に帰還させることができる。
【0014】
請求項7に記載した発明は、前記特定機は、前記第1領域内に第2領域(例えば、実施形態による許可領域304)を設定する第2領域設定部(例えば、実施形態による行動範囲制限処理部220M)と、前記特定機及び子機の現在位置情報に基づいて、前記子機の位置が前記第2領域を逸脱したか否かを判断する第2領域判断部(例えば、実施形態による行動範囲制限処理部220M)と、を備え、前記特定機は、前記第2領域判断部により前記子機が前記第2領域を逸脱したと判断された場合、前記子機の警告部が該子機の乗員に対して前記第1領域を逸脱しないよう警告するように、前記特定機の送信部を介して、前記第2領域判断部の判断結果を前記子機に送信することを特徴とする。これにより、子機が制限領域を逸脱しそうな場合に、子機の乗員に対して制限領域を逸脱しないように前もって警告することができる。
【0015】
請求項8に記載した発明は、前記子機は、全方向移動車両であることを特徴とする。これにより、被監督者が搭乗する全方向移動車両が制限領域を逸脱した場合、該車両を制限領域内に帰還させることができる。
【0016】
請求項9に記載した発明は、前記子機は、倒立振子型移動車両であることを特徴とする。
これにより、被監督者が搭乗する倒立振子型移動車両が制限領域を逸脱した場合、該車両を制限領域内に帰還させることができる。
【0017】
請求項10に記載した発明は、前記駆動制御部は、前記被駆動機構の進行速度が、前記代表点の進行速度よりも大きくなるように、前記駆動部を制御することによって、前記子機及び乗員の全体の重心が前記被駆動機構の接地面のほぼ真上に位置する状態にした後、次いで、前記子機を前記目標帰還位置まで移動させ、目標帰還位置で停止するように、前記駆動部を制御することを特徴とする。これにより、被監督者が搭乗する倒立振子型移動車両を制限領域内の目標帰還位置に移動するように制御することができる。
【0018】
請求項11に記載した発明は、前記特定機は、該特定機の使用者によって搭乗可能でかつ運転可能な移動体である。これにより、監督者は移動体に搭乗して自ら移動しながら、子機の行動範囲を制限することができる。
【0019】
請求項12に記載した発明は、前記特定機は、全方向移動車両であることを特徴とする。これにより、監督者は全方向移動車両に搭乗して自ら移動しながら、子機の行動範囲を制限することができる。
【0020】
請求項13に記載した発明は、前記特定機は、倒立振子型移動車両であることを特徴とする。これにより、監督者は倒立振子型移動車両に搭乗して自ら移動しながら、子機の行動範囲を制限することができる。
【0021】
請求項14に記載した発明は、前記位置測定装置は、GPS装置又は車車間通信装置であることを特徴とする。これにより、特定機及び子機は、正確な位置情報を容易に取得することができる。
【発明の効果】
【0022】
請求項1に記載した発明によれば、特定機は、位置測定装置から子機の位置情報に基づいて、子機があらかじめ設定された制限領域内に位置しているか監視することができ、制限領域から逸脱した場合には、子機を制限領域内へ帰還するように制御することができる。
【0023】
請求項2に記載した発明によれば、特定機と子機との間の距離を一定の範囲内に納めながら、子機の行動を制限することができる。
【0024】
請求項3に記載した発明によれば、子機は、目標帰還位置に移動するように特定機からの指示を受信すると、該子機内の駆動制御装置によって、乗員による運転を一切必要とせずに自身を目標帰還位置に移動するように制御することができる。
【0025】
請求項4に記載した発明によれば、適切な移動速度によって、子機を目標帰還位置に移動させることによって、子機の乗員が受ける心理的及び身体的負担を低減することができる。
【0026】
請求項5に記載した発明によれば、子機に搭乗している被監督者を確実に制限領域内へ帰還するように制御することができることによって、被監督者の迷子を防止するとともに、被監督者の行動を監督者による監視が行き届く安全な領域内に留めることができる。
【0027】
請求項6に記載した発明によれば、子機が目標帰還位置に移動する動作を開始する前に、前もって乗員に警告することよって、帰還制御の開始による乗員の心理的負担を軽減するとともに、安全性を向上させることができる。
【0028】
請求項7に記載した発明によれば、子機が制限領域を逸脱する前に事前に警告することによって、子機の乗員に対して制限領域内で移動するように誘導することができる。
【0029】
請求項8に記載した発明によれば、全方向移動車両に搭乗する被監督者の行動範囲を制限領域内に制限することができる。
【0030】
請求項9に記載した発明によれば、倒立振子型移動車両に搭乗する被監督者の行動範囲を制限領域内に制限することができる。
【0031】
請求項10に記載した発明によれば、倒立振子型移動車両に搭乗する被監督者が安全かつ確実に制限領域内に帰還することができるように、該車両を制御することができる。
【0032】
請求項11に記載した発明によれば、監督者は、移動体に搭乗して自らの意思で移動することによって、子機が行動することができる領域を動的に変化させながら制限することができる。
【0033】
請求項12に記載した発明によれば、監督者は、全方向移動車両に搭乗して自らの意思で移動することによって、子機が行動することができる領域を動的に変化させながら制限することができる。
【0034】
請求項13に記載した発明によれば、監督者は、倒立振子型移動車両に搭乗して自らの意思で移動することによって、子機が行動することができる領域を動的に変化させながら制限することができる。
【0035】
請求項14に記載した発明によれば、特定機は、正確な位置情報を常に取得することによって、子機に対して正確な行動範囲制限を行うことができる。
【図面の簡単な説明】
【0036】
【図1】本発明の一実施形態における全方向移動車両の正面図である。
【図2】本発明の一実施形態における全方向移動車両の側面図である。
【図3】本発明の一実施形態における全方向移動車両の下部を拡大して示す図である。
【図4】本発明の一実施形態における全方向移動車両の下部の斜視図である。
【図5】本発明の一実施形態における全方向移動車両の移動動作部(車輪体)の斜視図である。
【図6】本発明の一実施形態における全方向移動車両の移動動作部(車輪体)とフリーローラとの配置関係を示す図である。
【図7】本発明の一実施形態における全方向移動車両の制御ユニットの処理を示すフローチャートである。
【図8】本発明の一実施形態における全方向移動車両の動力学的挙動を表現する倒立振子モデルを示す図である。
【図9】図7のステップS9の処理に係わる処理機能を示すブロック図である。
【図10】図9に示すゲイン調整部の処理機能を示すブロック図である。
【図11】図10に示すリミット処理部(又は図12に示すリミット処理部)の処理機能を示すブロック図である。
【図12】図9に示す重心速度制限部76の処理機能を示すブロック図である。
【図13】図9に示す姿勢制御演算部80の処理機能を示すブロック図である。
【図14】図9に示す要求重心速度生成部74の処理を示すフローチャートである。
【図15】図14のステップS23のサブルーチン処理を示すフローチャートである。
【図16】図15のステップS23−5のサブルーチン処理を示すフローチャートである。
【図17】図15のステップS23−5のサブルーチン処理を示すフローチャートである。
【図18】図15のステップS23−6のサブルーチン処理を示すフローチャートである。
【図19】図14のステップS24のサブルーチン処理を示すフローチャートである。
【図20】図14のステップS25のサブルーチン処理を示すフローチャートである。
【図21】本発明の一実施形態における行動範囲制限システムを示すブロック図である。
【図22】本発明の一実施形態における子機の行動範囲制限を示す概略図である。
【図23】本発明の一実施形態における行動範囲制限モードの処理を示すフローチャートである。
【図24】本発明の一実施形態における位置制御モードの処理を示すフローチャートである。
【発明を実施するための形態】
【0037】
本発明の一実施形態を以下に説明する。図21に示すように、本実施形態における行動範囲制限システム200は、特定機202M、子機202S、及び位置測定装置206からなる。以下、これらの構成要素は、参照符号の最後に“M”が付されている場合は、特定機202Mの構成要素として識別し、参照符号の最後に“S”が付されている場合は、子機202Sの構成要素として識別する。
【0038】
本実施形態で例示する特定機202M及び子機202Sの移動体は、単に例示的に図1〜6に示すような、全方向移動車両1であり、同一の構造を有している。車両1は、複数存在する車両1のうちいずれかを予め特定機として設定しておくことで特定機202Mとして動作するように構成することができる。同時に、残りの車両1は、特定機202Mによって子機202Sとして動作するように設定することができる。
【0039】
変形態様において、特定機202M及び子機202Sは、後述する倒立振子モデルを用いた全方向移動車両1のみに限らず、他の任意の移動体であってもよい。また、特定機は、移動体のみに限らず、例えばサーバ装置のような固定した位置に配置された装置であってもよい。
【0040】
位置測定装置206は、特定機202M及び子機202Sの現在位置情報を特定機202M及び子機202Sに供給する。本実施形態で例示する位置測定装置206は、GPS衛星及び車車間通信技術などのような他の公知の位置測定技術を用いた装置であってもよい。
【0041】
本実施形態において、特定機202Mは、通信部210M、位置情報取得部216M、記憶部218M、行動範囲制限処理部220M、ユーザインタフェース(UI)部222M、及び駆動制御部228Mを備えている。これら行動範囲制限処理において動作する構成要素は、図示しないが、車両1の適所にそれぞれ配置されている。
【0042】
特定機202Mは、位置測定装置206から各現在位置情報を受信するとともに、子機202Sとの相互通信を行うために、受信装置212M及び送信装置214Mからなる通信部210Mを備えている。本実施形態において、特定機202M及び子機202S間の通信は、既存の無線通信技術を用いて直接的に行われるが、たとえば、無線通信技術で一般的に使用されるホットスポット又は基地局を介した間接的な通信によって確立してもよい。
【0043】
位置情報取得部216Mは、受信装置212Mを介して、位置測定装置206によって供給される現在位置情報を取得する。
【0044】
記憶部218Mは、現在位置情報、制限領域情報、許可領域情報、目標帰還位置、及び車両識別番号などといった、子機202Sの行動範囲制限に用いられる情報を記憶する。
【0045】
行動範囲制限処理部220Mは、以下で詳細に説明する図23の行動範囲制限に関する処理を制御する。
【0046】
UI部222Mは、子機202Sの状態に関する情報を車両1の乗員に対して、音声を用いて聴覚的に伝える報知装置224Mと、文字及び画像など視覚的に伝える表示装置226Mとを備えている。報知装置224M及び表示装置226Mは、より具体的には、例えばスピーカー及び液晶ディスプレイなどであってよい。なお、ユーザインタフェース部222Mは、ボタン、タッチパネルディスプレイ、及びマイクなどの特定機202M及び子機202Sの乗員からの入力を受けることが可能な入力装置を備えてもよい。
【0047】
駆動制御部228Mは、以下で詳述する、車両1の駆動を制御する制御ユニット50を指す。
【0048】
本実施形態で例示する子機202Sの構成は、上述した特定機202Mの構成と同様であり、通信部210S、位置情報取得部216S、記憶部218S、行動範囲制限処理部220S、ユーザインタフェース(UI)部222S、及び駆動制御部228Sを備えている。
【0049】
ただし、変形態様において、子機202Sは、該子機202Sの位置情報を位置測定装置206から直接取得するのではなく、特定機202Mを介して取得するように構成してもよい。
【0050】
車両1が子機202Sとして動作する場合、行動範囲制限処理部220Sは、以下で図24を用いて説明するように、受信装置212Sを介して受信される特定機202Mからの情報に基づいて動作する。
【0051】
駆動制御部228Sも、同様に後述する制御ユニット50に指す。
【0052】
なお、特定機202Mは、以下に詳述する行動範囲制限モードを開始する前に、通信部210Mを介して、通信可能領域300内に位置する他の車両1を複数識別し、その中から行動範囲制限の対象となる子機を1つ以上選択するようにしてもよい。
【0053】
次に、図1〜図6を参照して、本実施形態における全方向移動車両1の構造を説明する。図1及び図2に示すように、本実施形態における全方向移動車両1は、乗員(運転者)の搭乗部3と、床面に接地しながら該床面上を全方向(前後方向及び左右方向を含む2次元的な全方向)に移動可能な移動動作部5と、この移動動作部5を駆動する動力を該移動動作部5に付与するアクチュエータ装置7と、これらの搭乗部3、移動動作部5及びアクチュエータ装置7が組付けられた基体9とを備える。
【0054】
ここで、本実施形態の説明では、「前後方向」、「左右方向」は、それぞれ、搭乗部3に標準的な姿勢で搭乗した乗員の上体の前後方向、左右方向に一致もしくはほぼ一致する方向を意味する。なお、「標準的な姿勢」は、搭乗部3に関して設計的に想定されている姿勢であり、乗員の上体の体幹軸を概ね上下方向に向け、且つ、上体を捻ったりしていない姿勢である。
【0055】
この場合、図1においては、「前後方向」、「左右方向」はそれぞれ、紙面に垂直な方向、紙面の左右方向であり、図2においては、「前後方向」、「左右方向」はそれぞれ、紙面の左右方向、紙面に垂直な方向である。また、本実施形態の説明では、参照符号に付する添え字「R」,「L」は、それぞれ車両1の右側、左側に対応するものという意味で使用する。
【0056】
基体9は、移動動作部5及びアクチュエータ装置7とが組付けられた下部フレーム11と、この下部フレーム11の上端から上方に延設された支柱フレーム13とを備える。
【0057】
支柱フレーム13の上部には、該支柱フレーム13から前方側に張り出したシートフレーム15が固定されている。そして、このシートフレーム15上に、乗員が着座するシート3が装着されている。本実施形態では、このシート3が乗員の搭乗部となっている。従って、本実施形態における全方向移動車両1(以降、単に車両1という)は、乗員がシート3に着座した状態で、床面上を移動するものである。
【0058】
また、シート13の左右には、シート13に着座した乗員が必要に応じて把持するためのグリップ17R,17Lが配置され、これらのグリップ17R,17Lがそれぞれ、支柱フレーム13(又はシートフレーム15)から延設されたブラケット19R,19Lの先端部に固定されている。
【0059】
下部フレーム11は、左右方向に間隔を存して二股状に対向するように配置された一対のカバー部材21R,21Lを備える。これらのカバー部材21R,21Lの上端部(二股の分岐部分)は、前後方向の軸心を有するヒンジ軸23を介して連結され、カバー部材21R,21Lの一方が他方に対して相対的にヒンジ軸23の周りに揺動可能となっている。この場合、カバー部材21R,21Lは、図示を省略するバネによって、カバー部材21R,21Lの下端部側(二股の先端側)が狭まる方向に付勢されている。
【0060】
また、カバー部材21R,21Lのそれぞれの外面部には、前記シート3に着座した乗員の右足を載せるステップ25Rと左足を載せるステップ25Lとが各々、右向き、左向きに張り出すように突設されている。
【0061】
移動動作部5及びアクチュエータ装置7は、下部フレーム11のカバー部材21R,21Lの間に配置されている。これらの移動動作部5及びアクチュエータ装置7の構造を図3〜図6を参照して説明する。
【0062】
なお、本実施形態で例示する移動動作部5及びアクチュエータ装置7は、例えば前記特許文献2の図1に開示されているものと同じ構造のものである。従って、本実施形態の説明においては、移動動作部5及びアクチュエータ装置7の構成に関して、前記特許文献2に記載された事項については、簡略的な説明に留める。
【0063】
本実施形態では、移動動作部5は、ゴム状弾性材により円環状に形成された車輪体であり、ほぼ円形の横断面形状を有する。この移動動作部5(以降、車輪体5という)は、その弾性変形によって、図5及び図6の矢印Y1で示す如く、円形の横断面の中心C1(より詳しくは、円形の横断面中心C1を通って、車輪体5の軸心と同心となる円周線)の周りに回転可能となっている。
【0064】
この車輪体5は、その軸心C2(車輪体5全体の直径方向に直交する軸心C2)を左右方向に向けた状態で、カバー部材21R,21Lの間に配置され、該車輪体5の外周面の下端部にて床面に接地する。
【0065】
そして、車輪体5は、アクチュエータ装置7による駆動(詳細は後述する)によって、図5の矢印Y2で示す如く車輪体5の軸心C2の周りに回転する動作(床面上を輪転する動作)と、車輪体5の横断面中心C1の周りに回転する動作とを行なうことが可能である。その結果、車輪体5は、それらの回転動作の複合動作によって、床面上を全方向に移動することが可能となっている。
【0066】
アクチュエータ装置7は、車輪体5と右側のカバー部材21Rとの間に介装される回転部材27R及びフリーローラ29Rと、車輪体5と左側のカバー部材17Lとの間に介装される回転部材27L及びフリーローラ29Lと、回転部材27R及びフリーローラ29Rの上方に配置されたアクチュエータとしての電動モータ31Rと、回転部材27L及びフリーローラ29Lの上方に配置されたアクチュエータとしての電動モータ31Lとを備える。
【0067】
電動モータ31R,31Lは、それぞれのハウジングがカバー部材21R,21Lに各々取付けられている。なお、図示は省略するが、電動モータ31R,31Lの電源(蓄電器)は、支柱フレーム13等、基体9の適所に搭載されている。
回転部材27Rは、左右方向の軸心を有する支軸33Rを介してカバー部材21Rに回転可能に支持されている。同様に、回転部材27Lは、左右方向の軸心を有する支軸33Lを介してカバー部材21Lに回転可能に支持されている。この場合、回転部材27Rの回転軸心(支軸33Rの軸心)と、回転部材27Lの回転軸心(支軸33Lの軸心)とは同軸心である。
【0068】
回転部材27R,27Lは、それぞれ電動モータ31R,31Lの出力軸に、減速機としての機能を含む動力伝達機構を介して接続されており、電動モータ31R,31Lからそれぞれ伝達される動力(トルク)によって回転駆動される。各動力伝達機構は、例えばプーリ・ベルト式のものである。すなわち、図3に示す如く、回転部材27Rは、プーリ35Rとベルト37Rとを介して電動モータ31Rの出力軸に接続されている。同様に、回転部材27Lは、プーリ35Lとベルト37Lとを介して電動モータ31Lの出力軸に接続されている。
【0069】
なお、上記動力伝達機構は、例えば、スプロケットとリンクチェーンとにより構成されるもの、あるいは、複数のギヤにより構成されるものであってもよい。また、例えば、電動モータ31R,31Lを、それぞれの出力軸が各回転部材27R,27Lと同軸心になるように各回転部材27R,27Lに対向させて配置し、電動モータ31R,31Lのそれぞれの出力軸を回転部材27R,27Lに各々、減速機(遊星歯車装置等)を介して連結するようにしてもよい。
【0070】
各回転部材27R,27Lは、車輪体5側に向かって縮径する円錐台と同様の形状に形成されており、その外周面がテーパ外周面39R,39Lとなっている。
【0071】
回転部材27Rのテーパ外周面39Rの周囲には、回転部材27Rと同心の円周上に等間隔で並ぶようにして、複数のフリーローラ29Rが配列されている。そして、これらのフリーローラ29Rは、それぞれ、ブラケット41Rを介してにテーパ外周面39Rに取付けられ、該ブラケット41Rに回転自在に支承されている。
【0072】
同様に、回転部材27Lのテーパ外周面39Lの周囲には、回転部材27Lと同心の円周上に等間隔で並ぶようにして、複数(フリーローラ29Rと同数)のフリーローラ29Lが配列されている。そして、これらのフリーローラ29Lは、それぞれ、ブラケット41Lを介してにテーパ外周面39Lに取付けられ、該ブラケット41Lに回転自在に支承されている。
【0073】
前記車輪体5は、回転部材27R側のフリーローラ29Rと、回転部材27L側のフリーローラ29Lとの間に挟まれるようにして、回転部材27R,27Lと同軸心に配置されている。
【0074】
この場合、図1及び図6に示すように、各フリーローラ29R,29Lは、その軸心C3が車輪体5の軸心C2に対して傾斜すると共に、車輪体5の直径方向(車輪体5をその軸心C2の方向で見たときに、該軸心C2と各フリーローラ29R,29Lとを結ぶ径方向)に対して傾斜する姿勢で配置されている。そして、このような姿勢で、各フリーローラ29R,29Lのそれぞれの外周面が車輪体5の内周面に斜め方向に圧接されている。
【0075】
より一般的に言えば、右側のフリーローラ29Rは、回転部材27Rが軸心C2の周りに回転駆動されたときに、車輪体5との接触面で、軸心C2周りの方向の摩擦力成分(車輪体5の内周の接線方向の摩擦力成分)と、車輪体5の前記横断面中心C1の周り方向の摩擦力成分(円形の横断面の接線方向の摩擦力成分)とを車輪体5に作用させ得るような姿勢で、車輪体5の内周面に圧接されている。左側のフリーローラ29Lについても同様である。
【0076】
この場合、前記したように、カバー部材21R,21Lは、図示しないバネによって、カバー部材21R,21Lの下端部側(二股の先端側)が狭まる方向に付勢されている。このため、この付勢力によって、右側のフリーローラ29Rと左側のフリーローラ29Lとの間に車輪体5が挟持されると共に、車輪体5に対する各フリーローラ29R,29Lの圧接状態(より詳しくはフリーローラ29R,29Lと車輪体5との間で摩擦力が作用し得る圧接状態)が維持される。
【0077】
以上説明した構造を有する車両1においては、電動モータ31R,31Lによりそれぞれ、回転部材27R,27Lを同方向に等速度で回転駆動した場合には、車輪体5が回転部材27R,27Lと同方向に軸心C2の周りに回転することとなる。これにより、車輪体5が床面上を前後方向に輪転して、車両1の全体が前後方向に移動することとなる。なお、この場合は、車輪体5は、その横断面中心C1の周りには回転しない。
また、例えば、回転部材27R,27Lを互いに逆方向に同じ大きさの速度で回転駆動した場合には、車輪体5は、その横断面中心C1の周りに回転することとなる。これにより、車輪体4がその軸心C2の方向(すなわち左右方向)に移動し、ひいては、車両1の全体が左右方向に移動することとなる。なお、この場合は、車輪体5は、その軸心C2の周りには回転しない。
【0078】
さらに、回転部材27R,27Lを、互いに異なる速度(方向を含めた速度)で、同方向又は逆方向に回転駆動した場合には、車輪体5は、その軸心C2の周りに回転すると同時に、その横断面中心C1の周りに回転することとなる。
【0079】
この時、これらの回転動作の複合動作(合成動作)によって、前後方向及び左右方向に対して傾斜した方向に車輪体5が移動し、ひいては、車両1の全体が車輪体5と同方向に移動することとなる。この場合の車輪体5の移動方向は、回転部材27R,27Lの回転方向を含めた回転速度(回転方向に応じて極性が定義された回転速度ベクトル)の差に依存して変化するものとなる。
【0080】
以上のように車輪体5の移動動作が行なわれるので、電動モータ31R,31Lのそれぞれの回転速度(回転方向を含む)を制御し、ひいては回転部材27R,27Lの回転速度を制御することによって、車両1の移動速度及び移動方向を制御できることとなる。
【0081】
次に、図21の行動範囲制限システム200の動作を、図22に示した子機202Sに対する行動範囲制限の概略図と、図23に示したフローチャートとを参照しながら説明する。
【0082】
特定機の乗員による指示によって、特定機202Mが行動範囲制限モードを開始すると、図23のステップS100で、特定機202Mの行動範囲制限処理部220Mは、子機202Sの行動範囲を制限する制限領域302を設定する。本実施形態において、制限領域302は、図22に示されるように、通信可能領域300内の領域であるとともに、特定機202Mから所定の半径を有する範囲内の領域である。
【0083】
ステップS102で、行動範囲制限処理部220Mは、制限領域内302に許可領域304を設定する。
【0084】
子機202Sの位置が、許可領域304を逸脱した場合に、子機202Sの乗員に対して、制限領域302を超えないように報知装置224S及び/又は表示装置226Sを介して警告を発する。本実施形態において、許可領域304は、制限領域302内の領域であるとともに、特定機202Mから所定の半径を有する範囲内の領域である。
【0085】
すなわち、本実施形態で例示する通信可能領域300、制限領域302、及び許可領域304は、特定機202Mを中心とした円形の領域である。ただし、これらの領域は、上記のように特定機202Mの位置を基準とした相対的な位置関係によってのみ限定されるものではなく、例えばGPS座標などのような絶対的な位置を用いて定義してもよい。
【0086】
特定機202Mによって設定された制限領域302及び許可領域304に関する情報は、特定機202Mの記憶部218Mに記憶される。また、特定機202Mが、送信装置214Mを介して、制限領域302及び許可領域304に関する情報を子機202Sに送信することによって、子機202Sの記憶部218Sにも同様に記憶することができる。
【0087】
ステップS104で、特定機202Mの位置情報取得部216Mは、受信装置212Mを介して位置測定装置206から特定機202M及び子機202Sの現在位置情報を取得する。
【0088】
ステップS106で行動範囲制限処理部220Mは、位置情報取得部216Mによって取得された特定機202M及び子機202Sの現在位置情報に基づき、公知の距離算出方法を用いて特定機202M及び子機202S間の距離を算出する。
【0089】
ステップS108で、行動範囲制限処理部220Mは、前記ステップS106の算出結果に基づいて、子機202Sが設定された許可領域304を逸脱しているか否かを判断する。
【0090】
前記判断の結果、子機202Sは許可領域304を逸脱していないと判断された場合、前記ステップS104に戻る。
【0091】
子機202Sが許可領域304を逸脱していると判断された場合は、ステップS110に進む。
【0092】
前記ステップS110において、子機202Sが許可領域304を逸脱していると判断された場合、行動範囲制限処理部220Mは特定機202Mと子機202Sとの間の距離を再び算出する。
【0093】
ステップS112では、前記ステップS110の算出結果に基づいて、行動範囲制限処理部220Mは、子機202Sが前記設定された制限領域302を逸脱しているか否かを判断する。
【0094】
前記判断の結果、子機202Sが制限領域302を逸脱していないと判断された場合は、ステップS114に進む。
【0095】
子機202Sが制限領域302を逸脱していると判断された場合は、ステップS116に進む。
【0096】
前記ステップS112では、子機202Sが制限領域302を逸脱していないと判断された場合、ステップ114で、特定機202Mは、報知装置224M及び/又は表示装置226Mを介して、その判断結果(すなわち、子機202Sは制限領域302を逸脱していないものの、許可領域304を逸脱している)に関する情報を特定機202Mの乗員に通知するとともに、子機202Sに送信する。
【0097】
子機202Sは、受信装置212Sを介して前記判断結果に関する情報を受信した場合、報知装置224S及び/又は表示装置226Sを介して、制限領域302を逸脱しないよう子機202Sの乗員に対して警告する。
【0098】
前記ステップS112において、子機202Sが前記設定された制限領域302を逸脱していると判断された場合、ステップS116で、特定機202Mは、送信装置214Mを介して子機202Sに帰還指令を送信する。
【0099】
子機202Sは、受信装置212Sを介して帰還指令を受信すると、以下で詳述する位置制御モードに移行し、駆動制御部228S(制御ユニット50)によって制限領域302内の目標帰還位置(例えば、制限領域302を逸脱する直前の位置)に移動するように制御される。
【0100】
ステップS118において、子機202Sが目標帰還位置に到着して位置制御モードが終了すると、子機202Sは、位置情報取得部216Sを介して子機202Sの現在位置を再取得するとともに、送信装置214Sを介して、子機202Sが制限領域302内の目標帰還位置に帰還したことを示す情報を特定機202Mに送信する。
【0101】
特定機202Mは、受信装212Mを介して前記情報を受信した場合、報知装置224M及び/又は表示装置226Mを介して子機202Sが制限領域302内に帰還したことを特定機202Mの乗員に通知する。
【0102】
行動範囲制限モードは、例えば、特定機の乗員による指示によって終了するように構成してもよい。
【0103】
また、子機202Sが複数存在する場合、上述の一連のステップは、逐次的に各子機202Sに対して同時並列的に実行することができる。
【0104】
通信による消費電力を低減するために、子機202Sが許可領域304を逸脱しかつ制限領域302内に位置している場合、特定機202M及び子機202Sは通信頻度を増加する一方で、子機202Sが許可領域304内に位置している場合は、通信頻度を減少してもよい。
【0105】
さらに、前記実施形態において、前記制限領域302及び許可領域304の2つの異なる領域を設定したが、どちらか一方の領域を省略することができる。
【0106】
例えば、制限領域302を省略した変形態様においては、子機202Sが許可領域304を逸脱した場合、位置制御モードは実行せずに、単に子機202Sから警告を発するように構成してもよい。
【0107】
あるいは、許可領域304を省略した変形態様においては、制限領域302を逸脱した場合、子機202Sは警告を発することなく、位置制御モードを実行するように構成してもよい。
【0108】
なお、図23のフローチャートにおいて、特定機202Mの行動範囲制限処理部220Mが行う処理の一部は、子機202Sの行動範囲制限処理部220Sが行うように構成してもよい。
【0109】
次に、子機における位置制御モードの動作について説明する。子機202Sは、特定機202Mからの帰還指令を受信すると、位置制御モードに移行して、図24のフローチャートに示す一連の処理を実行する。
【0110】
ステップS200において、特定機202Mの行動範囲制限処理部220Mは、子機202Sが移動すべき制限領域302内に目標帰還位置を設定する。
【0111】
目標帰還位置は、自動的に設定される、または特定機202Mの乗員によって指示された位置に設定されることが可能であり、たとえば、制限領域302を逸脱する直前の位置など任意に設定することができる。
【0112】
特定機202Mが、送信装置214Mを介して、目標帰還位置に関する情報を子機202Sに送信することによって、目標帰還位置に関する情報は子機202Sの記憶部218Sにも保持される。
【0113】
ステップS202において、子機202Sの代表点における進行速度を取得する。より正確には、以下で詳述するように、図7のステップS1で、計測された傾斜センサ52の出力に基づいて、制御ユニット50の重心速度算出部72が、車両系重心点の移動速度である重心速度Vb_xyの観測値としての重心速度推定値Vb_xy_sを算出する。
【0114】
ステップS204において、子機202Sの行動範囲制限処理部220Sは、前記ステップS202で算出された、代表点の進行速度が所定の速度以上であるか否かを判断する。前記判断の結果、子機202Sの代表点の進行速度が所定の速度以上であると判断された場合、ステップS206に進む。子機202Sの代表点の進行速度が所定の速度以上でないと判断された場合は、ステップS214に進む。
【0115】
前記ステップS204において、子機202Sの代表点の進行速度が所定の速度以上であると判断された場合、ステップS206で、子機202Sの報知装置224S及び又は表示装置226Sは、乗員に対して減速するように、少なくとも1度警告を発する。例えば、一定の周期で複数回の警告を発するように構成してもよく、特定機202Mの乗員があらかじめ警告頻度の設定をできるように構成してもよい。
【0116】
ステップS208において、警告の発生から所定のタイミングで、制御ユニット50は、移動動作部5の進行速度が、前記代表点の進行速度よりも大きくなるように、移動動作部5を制御することによって、乗員によって基体9が傾斜されている状態(すなわち、傾斜方向に移動しようしている状態)から、基体9の上体を起こした状態になるように移動動作部5を制御する。この場合、ある一定時間、停止姿勢において基体9を静止するように構成してもよい。
【0117】
次に、ステップS210において、子機202Sの制御ユニット50は、子機202Sを目標帰還位置に向けて、進行方向(すなわち、制限領域302を逸脱した直後の方向)とは反対方向で移動するように、移動動作部5を制御する。ここで、車両1の上体が起きた状態から目標帰還位置へ移動する際、車両1の上体が目標帰還点へ向けて傾斜させるために、移動動作部5を目標帰還点から遠ざかるように制御する。すなわち、以下で詳述するように、車両1が目標帰還位置へ向けて移動するための傾斜角度を目標傾斜角度とするよう制御ユニット50から制御指令を与える処理を行う(又は、移動速度が目標帰還位置へ向けて発生するように速度指令値を与える)。
【0118】
この場合、子機202Sの移動速度は、後述するように、制御ユニット50により、子機202Sの現在位置と目標帰還位置とに基づいて、逐次決定される。子機202Sの現在位置は、位置測定取得部216Sによって随時取得される。ただし、変形態様において、子機202Sが自らの位置を取得しない場合、子機202Sは、例えば、車車間通信技術を用いて特定機202Mから相対的位置情報を得るように構成してもよい。
【0119】
変形態様として、例えば、子機202Sを転回可能な移動体として場合、進行方向に対して反対方向で目標帰還位置に向けて移動させる代わりに、子機202Sを転回させることよって進行方向を維持したまま目標帰還位置に向けて移動させてもよい。
【0120】
ステップS212における判断結果によって、子機202Sの代表点の進行速度が所定の速度以上でない場合は、S212において前記ステップS208と同様の処理を行う。
【0121】
さらに、ステップS214も、前記ステップS216と同様のステップである。
【0122】
位置制御モードは、子機202Sが、目標帰還位置に到着することで終了する。
【0123】
位置制御モードにおいて、行動範囲制限処理部220Sと制御ユニット50とは、連携して動作する。従って、行動範囲制限処理部220Sは、制御ユニット50内に構成する、又は制御ユニット50と一体化してもよい。
【0124】
以上が本実施形態における行動範囲制限システム200の例示的な動作である。
【0125】
以下、本実施形態の車両1における詳細な動作制御について、より具体的な構成とともに詳細に説明する。なお、以降の説明では、図1及び図2に示すように、前後方向の水平軸をX軸、左右方向の水平軸をY軸、鉛直方向をZ軸とするXYZ座標系を想定し、前後方向、左右方向をそれぞれX軸方向、Y軸方向と言うことがある。
まず、車両1の概略的な動作制御を説明すると、本実施形態では、基本的には、シート3に着座した乗員がその上体を傾けた場合(詳しくは、乗員と車両1とを合わせた全体の重心点の位置(水平面に投影した位置)を動かすように上体を傾けた場合)に、該上体を傾けた側に基体9がシート3と共に傾動する。そして、この時、基体9が傾いた側に車両1が移動するように、車輪体5の移動動作が制御される。例えば、乗員が上体を前傾させ、ひいては、基体9をシート3と共に前傾させると、車両1が前方に移動するように、車輪体5の移動動作が制御される。
【0126】
すなわち、本実施形態では、乗員が上体を動かし、ひいては、シート3と共に基体9を傾動させるという動作が、車両1に対する1つの基本的な操縦操作(車両1の動作要求)とされ、その操縦操作に応じて車輪体5の移動動作がアクチュエータ装置7を介して制御される。
【0127】
ここで、本実施形態の車両1は、その全体の接地面としての車輪体5の接地面が、車両1とこれに搭乗する乗員との全体を床面に投影した領域に比して面積が小さい単一の局所領域となり、その単一の局所領域だけに床反力が作用する。このため、基体9が傾倒しないようにするためには、乗員及び車両1の全体の重心点が車輪体5の接地面のほぼ真上に位置するように、車輪体5を動かす必要がある。
【0128】
そこで、本実施形態では、乗員及び車両1の全体の重心点が、車輪体5の中心点(軸心C2上の中心点)のほぼ真上に位置する状態(より正確には当該重心点が車輪体5の接地面のほぼ真上に位置する状態)での基体9の姿勢を目標姿勢とし、基本的には、基体9の実際の姿勢を目標姿勢に収束させるように、車輪体5の移動動作が制御される。
【0129】
また、車両1を発進させる場合等において、アクチュエータ装置7による推進力とは別に、例えば乗員が必要に応じて自身の足により床を蹴り、それにより車両1の移動速度を増速させる推進力(乗員の足平と床との摩擦力による推進力)を、付加的な外力として車両1に作用させた場合には、それに応じて車両1の移動速度(より正確には、乗員及び車両の全体の重心点の移動速度)が増速するように、車輪体5の移動動作が制御される。なお、当該推進力の付加が停止された状態では、車両1の移動速度が一旦、一定速度に保持された後、減衰して、該車両1が停止するように、車輪体5の移動動作が制御される(車輪体5の制動制御が行なわれる)。
【0130】
さらに、車両1に乗員が搭乗していない状態では、車両1の単体の重心点が、車輪体5の中心点(軸心C2上の中心点)のほぼ真上に位置する状態(より正確には当該重心点が車輪体5の接地面のほぼ真上に位置する状態)での基体9の姿勢を目標姿勢とし、該基体9の実際の姿勢を目標姿勢に収束させ、ひいては、基体9が傾倒することなく車両1が自立するように、車輪体5の移動動作が制御される。
【0131】
本実施形態では、以上の如き車両1の動作制御を行なうために、図1及び図2に示すように、マイクロコンピュータや電動モータ31R,31Lのドライブ回路ユニットなどを含む電子回路ユニットにより構成された制御ユニット50と、基体9の所定の部位の鉛直方向(重力方向)に対する傾斜角θb及びその変化速度(=dθb/dt)を計測するための傾斜センサ52と、車両1に乗員が搭乗しているか否かを検知するための荷重センサ54と、電動モータ31R,31Lのそれぞれの出力軸の回転角度及び回転角速度を検出するための角度センサとしてのロータリエンコーダ56R,56Lがそれぞれ、車両1の適所に搭載されている。
【0132】
この場合、制御ユニット50及び傾斜センサ52は、例えば、基体9の支柱フレーム13の内部に収容された状態で該支柱フレーム13に取付けられている。また、荷重センサ54は、シート3に内蔵されている。また、ロータリーエンコーダ56R,56Lは、それぞれ、電動モータ31R,31Lと一体に設けられている。なお、ロータリーエンコーダ56R,56Lは、それぞれ、回転部材27R,27Lに装着してもよい。
【0133】
上記傾斜センサ52は、より詳しくは、加速度センサとジャイロセンサ等のレートセンサ(角速度センサ)とから構成され、これらのセンサの検出信号を制御ユニット50に出力する。そして、制御ユニット50が、傾斜センサ52の加速度センサ及びレートセンサの出力を基に、所定の計測演算処理(これは公知の演算処理でよい)を実行することによって、傾斜センサ52を搭載した部位(本実施形態では支柱フレーム13)の、鉛直方向に対する傾斜角度θbの計測値とその変化速度(微分値)である傾斜角速度θbdotの計測値とを算出する。
【0134】
この場合、計測する傾斜角度θb(以降、基体傾斜角度θbということがある)は、より詳しくは、それぞれ、Y軸周り方向(ピッチ方向)の成分θb_xと、X軸周り方向(ロール方向)の成分θb_yとから成る。同様に、計測する傾斜角速度θbdot(以降、基体傾斜角速度θbdotということがある)も、Y軸周り方向(ピッチ方向)の成分θbdot_x(=dθb_x/dt)と、X軸周り方向(ロール方向)の成分θbdot_y(=dθb_y/dt)とから成る。
【0135】
なお、本実施形態の説明では、上記基体傾斜角度θbなど、X軸及びY軸の各方向(又は各軸周り方向)の成分を有する運動状態量等の変数、あるいは、該運動状態量に関連する係数等の変数に関しては、その各成分を区別して表記する場合に、該変数の参照符号に、添え字“_x”又は“_y”を付加する。
【0136】
この場合において、並進速度等の並進運動に係わる変数については、そのX軸方向の成分に添え字“_x”を付加し、Y軸方向の成分に添え字“_y”を付加する。
【0137】
一方、角度、回転速度(角速度)、角加速度など、回転運動に係わる変数については、並進運動に係わる変数と添え字を揃えるために、便宜上、Y軸周り方向の成分に添え字“_x”を付加し、X軸周り方向の成分に添え字“_y”を付加する。
【0138】
さらに、X軸方向の成分(又はY軸周り方向の成分)と、Y軸方向の成分(又はX軸周り方向の成分)との組として変数を表記する場合には、該変数の参照符号に添え字“_xy”を付加する。例えば、上記基体傾斜角度θbを、Y軸周り方向の成分θb_xとX軸周り方向の成分θb_yの組として表現する場合には、「基体傾斜角度θb_xy」というように表記する。
【0139】
前記荷重センサ54は、乗員がシート3に着座した場合に該乗員の重量による荷重を受けるようにシート3に内蔵され、その荷重に応じた検出信号を制御ユニット50に出力する。そして、制御ユニット50が、この荷重センサ54の出力により示される荷重の計測値に基づいて、車両1に乗員が搭乗しているか否かを判断する。
【0140】
なお、荷重センサ54の代わりに、例えば、乗員がシート3に着座したときにONとなるようなスイッチ式のセンサを用いてもよい。
【0141】
ロータリエンコーダ56Rは、電動モータ31Rの出力軸が所定角度回転する毎にパルス信号を発生し、このパルス信号を制御ユニット50に出力する。そして、制御ユニット50が、そのパルス信号を基に、電動モータ53Rの出力軸の回転角度を計測し、さらにその回転角度の計測値の時間的変化率(微分値)を電動モータ53Rの回転角速度として計測する。電動モータ31L側のロータリエンコーダ56Lについても同様である。
【0142】
制御ユニット50は、上記の各計測値を用いて所定の演算処理を実行することによって、電動モータ31R,31Lのそれぞれの回転角速度の目標値である速度指令を決定し、その速度指令に従って、電動モータ31R,31Lのそれぞれの回転角速度をフィードバック制御する。
【0143】
なお、電動モータ31Rの出力軸の回転角速度と、回転部材27Rの回転角速度との間の関係は、該出力軸と回転部材27Rとの間の一定値の減速比に応じた比例関係になるので、本実施形態の説明では、便宜上、電動モータ31Rの回転角速度は、回転部材27Rの回転角速度を意味するものとする。同様に、電動モータ31Lの回転角速度は、回転部材27Lの回転角速度を意味するものとする。
【0144】
以下に、制御ユニット50の制御処理をさらに詳細に説明する。
【0145】
制御ユニット50は、所定の制御処理周期で図7のフローチャートに示す処理(メインルーチン処理)を実行する。
【0146】
まず、ステップS1において、制御ユニット50は、傾斜センサ52の出力を取得する。
次いで、ステップS2に進んで、制御ユニット50は、取得した傾斜センサ52の出力を基に、基体傾斜角度θbの計測値θb_xy_sと、基体傾斜角速度θbdotの計測値θbdot_xy_sとを算出する。
【0147】
なお、以降の説明では、上記計測値θb_xy_sなど、変数(状態量)の実際の値の観測値(計測値又は推定値)を参照符号により表記する場合に、該変数の参照符号に、添え字“_s”を付加する。
【0148】
次いで、制御ユニット50は、ステップS3において、荷重センサ54の出力を取得した後、ステップS4の判断処理を実行する。この判断処理においては、制御ユニット50は、取得した荷重センサ54の出力が示す荷重計測値があらかじめ設定された所定値よりも大きいか否かによって、車両1に乗員が搭乗しているか否か(シート3に乗員が着座しているか否か)を判断する。
【0149】
そして、制御ユニット50は、ステップS4の判断結果が肯定的である場合には、基体傾斜角度θbの目標値θb_xy_objを設定する処理と、車両1の動作制御用の定数パラメータ(各種ゲインの基本値など)の値を設定する処理とを、それぞれステップS5、6で実行する。
【0150】
ステップS5においては、制御ユニット50は、基体傾斜角度θbの目標値θb_xy_objとして、あらかじめ定められた搭乗モード用の目標値を設定する。
ここで、「搭乗モード」は、車両1に乗員が搭乗している場合での車両1の動作モードを意味する。この搭乗モード用の目標値θb_xy_objは、車両1とシート3に着座した乗員との全体の重心点(以降、車両・乗員全体重心点という)が車輪体5の接地面のほぼ真上に位置する状態となる基体9の姿勢において、傾斜センサ52の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するようにあらかじめ設定されている。
【0151】
また、ステップS6においては、制御ユニット50は、車両1の動作制御用の定数パラメータの値として、あらかじめ定められた搭乗モード用の値を設定する。なお、定数パラメータは、後述するhx,hy,Ki_a_x,Ki_b_x,Ki_a_y,Ki_b_y(i=1,2,3,4,5)等である。
【0152】
一方、ステップS4の判断結果が否定的である場合には、制御ユニット50は、基体傾斜角度θb_xyの目標値θb_xy_objを設定する処理と、車両1の動作制御用の定数パラメータの値を設定する処理とを、ステップS7、8で実行する。
【0153】
ステップS7においては、制御ユニット50は、傾斜角度θbの目標値θb_xy_objとして、あらかじめ定められた自立モード用の目標値を設定する。
【0154】
ここで、「自立モード」は、車両1に乗員が搭乗していない場合での車両1の動作モードを意味する。この自立モード用の目標値θb_xy_objは、車両1単体の重心点(以降、車両単体重心点という)が車輪体5の接地面のほぼ真上に位置する状態となる基体9の姿勢において、傾斜センサ52の出力に基づき計測される基体傾斜角度θbの計測値θb_xy_sに一致又はほぼ一致するようにあらかじめ設定されている。この自立モード用の目標値θb_xy_objは、搭乗モード用の目標値θb_xy_objと一般的には異なる。
【0155】
また、ステップS8においては、制御ユニット50は、車両1の動作制御用の定数パラメータの値として、あらかじめ定められた自立モード用の値を設定する。この自立モード用の定数パラメータの値は、搭乗モード用の定数パラメータの値と異なる。
【0156】
搭乗モードと自立モードとで、上記定数パラメータの値を異ならせるのは、それぞれのモードで上記重心点の高さや、全体質量等が異なることに起因して、制御入力に対する車両1の動作の応答特性が互いに異なるからである。
【0157】
以上のステップS4〜8の処理によって、搭乗モード及び自立モードの各動作モード毎に各別に、基体傾斜角度θb_xyの目標値θb_xy_objと定数パラメータの値とが設定される。
【0158】
なお、ステップS5,6の処理、又はステップS7,8の処理は、制御処理周期毎に実行することは必須ではなく、ステップS4の判断結果が変化した場合にだけ実行するようにしてもよい。
【0159】
補足すると、搭乗モード及び自立モードのいずれにおいても、基体傾斜角速度θbdotのY軸周り方向の成分θbdot_xの目標値とX軸周り方向の成分θbdot_yの目標値とは、いずれも“0”である。このため、基体傾斜角速度θbdot_xyの目標値を設定する処理は不要である。
【0160】
以上の如くステップS5,6の処理、又はステップS7,8の処理を実行した後、制御ユニット50は、次にステップS9において、車両制御演算処理を実行することによって、電動モータ31R,31Lのそれぞれの速度指令を決定する。この車両制御演算処理の詳細は後述する。
【0161】
次いで、ステップS10に進んで、制御ユニット50は、ステップS9で決定した速度指令に応じて電動モータ31R,31Lの動作制御処理を実行する。この動作制御処理では、制御ユニット50は、ステップS9で決定した電動モータ31Rの速度指令と、ロータリーエンコーダ56Rの出力に基づき計測した電動モータ31Rの回転速度の計測値との偏差に応じて、該偏差を“0”に収束させるように電動モータ31Rの出力トルクの目標値(目標トルク)を決定する。そして、制御ユニット50は、その目標トルクの出力トルクを電動モータ31Rに出力させるように該電動モータ31Rの通電電流を制御する。左側の電動モータ31Lの動作制御についても同様である。
【0162】
以上が、制御ユニット50が実行する全体的な制御処理である。
【0163】
次に、上記ステップS9の車両制御演算処理の詳細を説明する。
【0164】
本実施形態では、ステップS9の車両制御演算処理において、まず子機202Sが位置制御モードであるか否かによって、以下で詳述する制御ユニット50内の姿勢制御演算部80の動作が異なる。
【0165】
なお、以降の説明においては、前記搭乗モードにおける車両・乗員全体重心点と、前記自立モードにおける車両単体重心点とを総称的に、車両系重心点という。該車両系重心点は、車両1の動作モードが搭乗モードである場合には、車両・乗員全体重心点を意味し、自立モードである場合には、車両単体重心点を意味する。
また、以降の説明では、制御ユニット50が各制御処理周期で決定する値(更新する値)に関し、現在の(最新の)制御処理周期で決定する値を今回値、その1つ前の制御処理周期で決定した値を前回値ということがある。そして、今回値、前回値を特にことわらない値は、今回値を意味する。
【0166】
また、X軸方向の速度及び加速度に関しては、前方向きを正の向きとし、Y軸方向の速度及び加速度に関しては、左向きを正の向きとする。
【0167】
本実施形態では、前記車両系重心点の動力学的な挙動(詳しくは、Y軸方向からこれに直交する面(XZ平面)に投影して見た挙動と、X軸方向からこれに直交する面(YZ平面)に投影して見た挙動)が、近似的に、図8に示すような、倒立振子モデルの挙動(倒立振子の動力学的挙動)によって表現されるものとして、ステップS9の車両制御演算処理が行なわれる。
【0168】
なお、図8において、括弧を付していない参照符号は、Y軸方向から見た倒立振子モデルに対応する参照符号であり、括弧付きの参照符号は、X軸方向から見た倒立振子モデルに対応する参照符号である。
【0169】
この場合、Y軸方向から見た挙動を表現する倒立振子モデルは、車両系重心点に位置する質点60_xと、Y軸方向に平行な回転軸62a_xを有して床面上を輪転自在な仮想的な車輪62_x(以降、仮想車輪62_xという)とを備える。そして、質点60_xが、仮想車輪62_xの回転軸62a_xに直線状のロッド64_xを介して支持され、該回転軸62a_xを支点として該回転軸62a_xの周りに揺動自在とされている。
【0170】
この倒立振子モデルでは、質点60_xの運動が、Y軸方向から見た車両系重心点の運動に相当する。また、鉛直方向に対するロッド64_xの傾斜角度θbe_xがY軸周り方向での基体傾斜角度計測値θb_x_sと基体傾斜角度目標値θ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軸方向の移動速度に一致するものとされる。
【0171】
同様に、X軸方向から見た挙動を表現する倒立振子モデル(図8の括弧付きの符号を参照)は、車両系重心点に位置する質点60_yと、X軸方向に平行な回転軸62a_yを有して床面上を輪転自在な仮想的な車輪62_y(以降、仮想車輪62_yという)とを備える。そして、質点60_yが、仮想車輪62_yの回転軸62a_yに直線状のロッド64_yを介して支持され、該回転軸62a_yを支点として該回転軸62a_yの周りに揺動自在とされている。
【0172】
この倒立振子モデルでは、質点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軸方向の移動速度に一致するものとされる。
【0173】
なお、仮想車輪62_x,62_yは、それぞれ、あらかじめ定められた所定値Rw_x,Rw_yの半径を有するものとされる。
【0174】
また、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x,ωw_yと、電動モータ31R,31Lのそれぞれの回転角速度ω_R,ω_L(より正確には、回転部材27R,27Lのそれぞれの回転角速度ω_R,ω_L)との間には、次式01a,01bの関係が成立するものとされる。
【0175】
ωw_x=C・(ω_R−ω_L)/2 ……式01a
ωw_y=(ω_R+ω_L)/2 ……式01b
【0176】
なお、式01aにおける“C”は、前記フリーローラ29R,29Lと車輪体5との間の機構的な関係や滑りに依存する所定値の係数である。
【0177】
ここで、図8に示す倒立振子モデルの動力学は、次式03x,03yにより表現される。なお、式03xは、Y軸方向から見た倒立振子モデルの動力学を表現する式、式03yは、X軸方向から見た倒立振子モデルの動力学を表現する式である。
【0178】
d2θbe_x/dt2=α_x・θbe_x+β_x・ωwdot_x ……式03x
d2θbe_y/dt2=α_y・θbe_y+β_y・ωwdot_y ……式03y
【0179】
式03xにおけるωwdot_xは仮想車輪62_xの回転角加速度(回転角速度ωw_xの1階微分値)、α_xは、質点60_xの質量や高さh_xに依存する係数、β_xは、仮想車輪62_xのイナーシャ(慣性モーメント)や半径Rw_xに依存する係数である。式03yにおけるωwdot_y、α_y、β_yについても上記と同様である。
【0180】
これらの式03x,03yから判るように、倒立振子の質点60_x,60_yの運動(ひいては車両系重心点の運動)は、それぞれ、仮想車輪62_xの回転角加速度ωwdot_x、仮想車輪62_yの回転角加速度ωwdot_yに依存して規定される。
【0181】
そこで、本実施形態では、Y軸方向から見た車両系重心点の運動を制御するための操作量(制御入力)として、仮想車輪62_xの回転角加速度ωwdot_xを用いると共に、X軸方向から見た車両系重心点の運動を制御するための操作量(制御入力)として、仮想車輪62_yの回転角加速度ωwdot_yを用いる。
【0182】
そして、ステップS9の車両制御演算処理を概略的に説明すると、制御ユニット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として決定する。
【0183】
そして、制御ユニット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を決定する。
【0184】
なお、本実施形態では、位置制御モード下において、操作量(制御入力)としての上記仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdは、それぞれ、後述する式06x,06yに示す如く、5個の操作量成分を加え合わせることによって決定される。
【0185】
一方、位置制御モードでない場合、本実施形操作量(制御入力)としての上記仮想車輪回転角加速度指令ωwdot_x_cmd,ωwdot_y_cmdは、それぞれ、同じく後述する式07x,07yに示す、3個の操作量成分を加え合わせることによって決定される。
【0186】
制御ユニット50は、上記の如き、ステップS9の車両制御演算処理を実行するための機能として、図9のブロック図で示す機能を備えている。
【0187】
すなわち、制御ユニット50は、基体傾斜角度計測値θb_xy_sと基体傾斜角度目標値θb_xy_objとの偏差である基体傾斜角度偏差計測値θbe_xy_sを算出する偏差演算部70と、前記車両系重心点の移動速度である重心速度Vb_xyの観測値としての重心速度推定値Vb_xy_sを算出する重心速度算出部72と、乗員等による車両1の操縦操作(車両1に推進力を付加する操作)によって要求されていると推定される上記重心速度Vb_xyの要求値としての要求重心速度V_xy_aimを生成する要求重心速度生成部74と、これらの重心速度推定値Vb_xy_s及び要求重心速度V_xy_aimから、電動モータ31R,31Lの回転角速度の許容範囲に応じた制限を加味して、重心速度Vb_xyの目標値としての制御用目標重心速度Vb_xy_mdfdを決定する重心速度制限部76と、後述するゲイン係数の値を調整するためのゲイン調整パラメータKr_xyを決定するゲイン調整部78とを備える。
【0188】
制御ユニット50は、さらに、前記仮想車輪回転角速度指令ωw_xy_cmdを算出する姿勢制御演算部80と、この仮想車輪回転角速度指令ωw_xy_cmdを、右側の電動モータ31Rの速度指令ω_R_cmd(回転角速度の指令値)と左側の電動モータ31Lの速度指令ω_L_cmd(回転角速度の指令値)との組に変換するモータ指令演算部82とを備える。
なお、図9中の参照符号84を付したものは、姿勢制御演算部70が制御処理周期毎に算出する仮想車輪回転角速度指令ωw_xy_cmdを入力する遅延要素を示している。該遅延要素84は、各制御処理周期において、仮想車輪回転角速度指令ωw_xy_cmdの前回値ωw_xy_cmd_pを出力する。
【0189】
前記ステップS9の車両制御演算処理では、これらの上記の各処理部の処理が以下に説明するように実行される。
【0190】
すなわち、制御ユニット50は、まず、偏差演算部70の処理と重心速度算出部62の処理とを実行する。
【0191】
偏差演算部70には、前記ステップS2で算出された基体傾斜角度計測値θb_xy_s(θb_x_s及びθb_y_s)と、前記ステップS5又はステップS7で設定された目標値θ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)を算出する。
【0192】
なお、偏差演算部70の処理は、ステップS9の車両制御演算処理の前に行なうようにしてもよい。例えば、前記ステップS5又は7の処理の中で、偏差演算部70の処理を実行してもよい。
【0193】
前記重心速度算出部62には、前記ステップS2で算出された基体傾斜角速度計測値θ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から入力される。そして、重心速度算出部62は、これらの入力値から、前記倒立振子モデルに基づく所定の演算式によって、重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を算出する。
【0194】
具体的には、重心速度算出部62は、次式05x,05yにより、Vb_x_s及びVb_y_sをそれぞれ算出する。
【0195】
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
【0196】
これらの式05x,05yにおいて、Rw_x,Rw_yは、前記したように、仮想車輪62_x,62_yのそれぞれの半径であり、これらの値は、あらかじめ設定された所定値である。また、h_x,h_yは、それぞれ倒立振子モデルの質点60_x,60_yの高さである。この場合、本実施形態では、車両系重心点の高さは、ほぼ一定に維持されるものとされる。そこで、h_x,h_yの値としては、それぞれ、あらかじめ設定された所定値が用いられる。補足すると、高さh_x,h_yは、前記ステップS6又は8において値を設定する定数パラメータに含まれるものである。
【0197】
上記式05xの右辺の第1項は、仮想車輪62_xの速度指令の前回値ωw_x_cmd_pに対応する該仮想車輪62_xのX軸方向の移動速度であり、この移動速度は、車輪体5のX軸方向の実際の移動速度の現在値に相当するものである。また、式05xの右辺の第2項は、基体9がY軸周り方向にθbdot_x_sの傾斜角速度で傾動することに起因して生じる車両系重心点のX軸方向の移動速度(車輪体5に対する相対的な移動速度)の現在値に相当するものである。これらのことは、式05yについても同様である。
【0198】
なお、前記ロータリーエンコーダ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を使用することが有利である。
【0199】
次に、制御ユニット50は、要求重心速度生成部74の処理とゲイン調整部78の処理とを実行する。この場合、要求重心速度生成部74及びゲイン調整部78には、それぞれ、重心速度算出部72で上記の如く算出された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)が入力される。
【0200】
そして、要求重心速度生成部74は、詳細は後述するが、車両1の動作モードが搭乗モードである場合に、入力された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を基に、要求重心速度V_xy_aim(V_x_aim,V_y_aim)を決定する。なお、本実施形態では、車両1の動作モードが自立モードである場合には、要求重心速度生成部74は、要求重心速度V_x_aim及びV_y_aimをいずれも“0”とする。
【0201】
また、ゲイン調整部78は、入力された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)を基に、前記ゲイン調整パラメータKr_xy(Kr_x及びKr_y)を決定する。
【0202】
このゲイン調整部78の処理を図10及び図11を参照して以下に説明する。
【0203】
図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の制限後の値としての意味を持つ。
【0204】
このリミット処理部86の処理を、図11を参照してさらに詳細に説明する。なお、図11中の括弧付きの参照符号は、後述する重心速度制限部76のリミット処理部104の処理を示すものであり、リミット処理部86の処理に関する説明では無視してよい。
【0205】
リミット処理部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)を算出する。
【0206】
次いで、リミット処理部86は、ωw_x_s,ωw_y_sの組を、XY−RL変換部86bにより、電動モータ31Rの回転角速度ω_R_sと電動モータ31Lの回転角速度ω_L_sとの組に変換する。
【0207】
この変換は、本実施形態では、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_s,ωw_y_s,ω_R_s,ω_L_sに置き換えて得られる連立方程式を、ω_R_s,ω_L_sを未知数として解くことにより行なわれる。
【0208】
次いで、リミット処理部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は、右モータ用許容範囲内の値に制限される。
【0209】
同様に、リミッタ86c_Lは、ω_L_sが、あらかじめ設定された所定値の上限値(>0)と下限値(<0)とを有する左モータ用許容範囲内に収まっている場合には、ω_L_sをそのまま出力値ω_L_lim1として出力する。また、リミッタ86c_Lは、ω_L_sが、左モータ用許容範囲から逸脱している場合には、該左モータ用許容範囲の上限値と下限値とのうちのω_L_sに近い方の境界値を出力値ω_L_lim1として出力する。これにより、リミッタ86c_Lの出力値ω_L_lim1は、左モータ用許容範囲内の値に制限される。
【0210】
上記右モータ用許容範囲は右側の電動モータ31Rの回転角速度(絶対値)が高くなり過ぎないようにし、ひいては、電動モータ31Rが出力可能なトルクの最大値が低下するのを防止するために設定された許容範囲である。このことは、左モータ用許容範囲についても同様である。
【0211】
次いで、リミット処理部86は、リミッタ86c_R,86c_Lのそれぞれの出力値ω_R_lim1,ω_L_lim1の組を、RL−XY変換部86dにより、仮想車輪62_x,62_yのそれぞれの回転角速度ωw_x_lim1,ωw_y_lim1の組に変換する。
【0212】
この変換は、前記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を未知数として解くことにより行なわれる。
【0213】
次いで、リミット処理部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)に変換する。
【0214】
以上のリミット処理部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から出力される。
【0215】
一方、電動モータ31R,31Lのそれぞれの回転角速度ω_R_s,ω_L_sの両方又は一方が許容範囲から逸脱している場合には、その両方又は一方の回転角速度が許容範囲内に制限された上で、その制限後の電動モータ31R,31Lのそれぞれの回転角速度ω_R_lim1,ω_L_lim1の組に対応する、X軸方向及びY軸方向の移動速度Vw_x_lim1,Vw_y_lim1の組がリミット処理部86から出力される。
【0216】
従って、リミット処理部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の組を生成する。
【0217】
図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を算出して出力する。
【0218】
この場合、リミット処理部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”となる。
【0219】
一方、リミット処理部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から出力される。
【0220】
次いで、ゲイン調整部78は、演算部88_xの出力値Vover_xを処理部90_x,92_xに順番に通すことによって、ゲイン調整パラメータKr_xを決定する。また、ゲイン調整部78は、演算部88_yの出力値Vover_yを処理部90_y,92_yに順番に通すことによって、ゲイン調整パラメータKr_yを決定する。なお、ゲイン調整パラメータKr_x,Kr_yは、いずれも“0”から“1”までの範囲内の値である。
【0221】
上記処理部90_xは、入力されるVover_xの絶対値を算出して出力する。また、処理部92_xは、その出力値Kr_xが入力値|Vover_x|に対して単調に増加し、且つ、飽和特性を有するようにKr_xを生成する。該飽和特性は、入力値がある程度大きくなると、入力値の増加に対する出力値の変化量が“0”になるか、もしくは、“0”に近づく特性である。
【0222】
この場合、本実施形態では、処理部92_xは、入力値|Vover_x|があらかじめ設定された所定値以下である場合には、該入力値|Vover_x|に所定値の比例係数を乗じてなる値をKr_xとして出力する。また、処理部92_xは、入力値|Vover_x|が所定値よりも大きい場合には、“1”をKr_xとして出力する。なお、上記比例係数は、|Vover_x|が所定値に一致するときに、|Vover_x|と比例係数との積が“1”になるように設定されている。
【0223】
また、処理部90_y,92_yの処理は、それぞれ上記した処理部90_x,92_xの処理と同様である。
【0224】
以上説明したゲイン調整部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のそれぞれの回転角速度が許容範囲内に収まるような場合には、ゲイン調整パラメータKr_x,Kr_yはいずれも“0”に決定される。
【0225】
一方、リミット処理部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のそれぞれの絶対値に応じて、ゲイン調整パラメータKr_x,Kr_yの値がそれぞれ決定される。この場合、Kr_xは、“1”を上限値して、修正量Vx_overの絶対値が大きいほど、大きな値になるように決定される。このことは、Kr_yについても同様である。
【0226】
図9の説明に戻って、制御ユニット50は、重心速度算出部72及び要求重心速度生成部74の処理を前記した如く実行した後、次に、重心速度制限部76の処理を実行する。
この重心速度制限部76には、重心速度算出部72で算出された重心速度推定値Vb_xy_s(Vb_x_s及びVb_y_s)と、要求重心速度生成部74で決定された要求重心速度V_xy_aim(V_x_aim及びV_y_aim)とが入力される。そして、重心速度制限部76は、これらの入力値を使用して、図12のブロック図で示す処理を実行することによって、制御用目標重心速度V_xy_mdfd(V_x_mdfd及びV_y_mdfd)を決定する。
【0227】
具体的には、重心速度制限部76は、まず、定常偏差算出部94_x,94_yの処理を実行する。
【0228】
この場合、定常偏差算出部94_xには、X軸方向の重心速度推定値Vb_x_sが入力されると共に、X軸方向の制御用目標重心速度Vb_x_mdfdの前回値Vb_x_mdfd_pが遅延要素96_xを介して入力される。そして、定常偏差算出部94_xは、まず、入力されるVb_x_sが比例・微分補償要素(PD補償要素)94a_xに入力する。この比例・微分補償要素94_xは、その伝達関数が1+Kd・Sにより表される補償要素であり、入力されるVb_x_sと、その微分値(時間的変化率)に所定値の係数Kdを乗じてなる値とを加算し、その加算結果の値を出力する。
【0229】
次いで、定常偏差算出部94_xは、入力されるVb_x_mdfd_pを、比例・微分補償要素94_xの出力値から減算してなる値を演算部94b_xにより算出した後、この演算部94b_xの出力値を、位相補償機能を有するローパスフィルタ94c_xに入力する。このローパスフィルタ94c_xは、伝達関数が(1+T2・S)/(1+T1・S)により表されるフィルタである。そして、定常偏差算出部94_xは、このローパスフィルタ94c_xの出力値Vb_x_prdを出力する。
【0230】
また、定常偏差算出部94_yには、Y軸方向の重心速度推定値Vb_y_sが入力されると共に、Y軸方向の制御用目標重心速度Vb_y_mdfdの前回値Vb_y_mdfd_pが遅延要素96_yを介して入力される。
【0231】
そして、定常偏差算出部94_yは、上記した定常偏差算出部94_xと同様に、比例・微分補償要素94a_y、演算部94b_y及びローパスフィルタ94c_yの処理を順次実行し、ローパスフィルタ94c_yの出力値Vb_y_prdを出力する。
【0232】
ここで、定常偏差算出部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を重心速度定常偏差予測値という。
【0233】
重心速度制限部76は、上記の如く定常偏差算出部94_x,94_yの処理を実行した後、定常偏差算出部94_xの出力値Vb_x_prdに要求重心速度Vb_x_aimを加算する処理と、定常偏差算出部94_yの出力値Vb_y_prdに要求重心速度Vb_y_aimを加算する処理とをそれぞれ、演算部98_x,98_yにより実行する。
【0234】
従って、演算部98_xの出力値Vb_x_tは、X軸方向の重心速度定常偏差予測値Vb_x_prdに、X軸方向の要求重心速度Vb_x_aimを付加した速度となる。同様に、演算部98_yの出力値Vb_y_tは、Y軸方向の重心速度定常偏差予測値Vb_y_prdに、Y軸方向の要求重心速度Vb_y_aimを付加した速度となる。
【0235】
なお、車両1の動作モードが自立モードである場合等、X軸方向の要求重心速度Vb_x_aimが“0”である場合には、X軸方向の重心速度定常偏差予測値Vb_x_prdがそのまま、演算部98_xの出力値Vb_x_tとなる。同様に、Y軸方向の要求重心速度Vb_y_aimが“0”である場合には、Y軸方向の重心速度定常偏差予測値Vb_y_prdがそのまま、演算部98_yの出力値Vb_y_tとなる。
【0236】
次いで、重心速度制限部76は、演算部98_x,98_yのそれぞれの出力値Vb_x_t,Vb_y_tを、リミット処理部100に入力する。このリミット処理部100の処理は、前記したゲイン調整部78のリミット処理部86の処理と同じである。この場合、図11に括弧付きに参照符号で示す如く、リミット処理部100の各処理部の入力値及び出力値だけがリミット処理部86と相違する。
【0237】
具体的には、リミット処理部100では、前記仮想車輪62_x,62_yのそれぞれの移動速度Vw_x,Vw_yを、Vb_x_t,Vb_y_tにそれぞれ一致させたと仮定した場合の各仮想車輪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の組に変換される。
【0238】
さらに、これらの回転角速度ω_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に変換される。
【0239】
次いで、この各回転角速度ω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から出力される。
【0240】
以上のリミット処理部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の組を生成する。
【0241】
なお、リミット処理部100における右モータ用及び左モータ用の各許容範囲は、リミット処理部86における各許容範囲と同一である必要はなく、互いに異なる許容範囲に設定されていてもよい。
【0242】
図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として算出する。
【0243】
以上のようにして決定される制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdは、リミット処理部100での出力値V_x_lim2,V_y_lim2の制限が行なわれなかった場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度を、それぞれ、演算部98_xの出力値Vb_x_tと演算部98_yの出力値Vb_y_tとに一致させるように電動モータ31R,31Lを動作させても、電動モータ31R,31Lのそれぞれの回転角速度が許容範囲内に収まるような場合には、要求重心速度Vb_x_aim,Vb_y_aimがそれぞれ、そのまま、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。
【0244】
なお、この場合、X軸方向の要求重心速度Vb_x_aimが“0”であれば、X軸方向の制御用目標重心速度Vb_x_mdfdも“0”となり、Y軸方向の要求重心速度Vb_y_aimが“0”であれば、Y軸方向の制御用目標重心速度Vb_y_mdfdも“0”となる。
【0245】
一方、リミット処理部100の出力値Vw_x_lim2,Vw_y_lim2が、入力値Vb_x_t,Vb_y_tに対して制限を施して生成された場合、すなわち、車輪体5のX軸方向及びY軸方向のそれぞれの移動速度を、それぞれ、演算部98_xの出力値Vb_x_tと演算部98_yの出力値Vb_y_tとに一致させるように電動モータ31R,31Lを動作させると、電動モータ31R,31Lのいずれかの回転角速度が許容範囲を逸脱してしまう場合(いずれかの回転角速度の絶対値が高くなり過ぎる場合)には、X軸方向については、リミット処理部100の出力値Vw_x_lim2の入力値Vb_x_tからの修正量(=Vw_x_lim2−Vb_x_t)だけ、要求重心速度Vb_x_aimを補正してなる値(当該修正量をVb_x_aimに加算した値)が、X軸方向の制御用目標重心速度Vb_x_mdfdとして決定される。
【0246】
また、Y軸方向については、リミット処理部100の出力値Vw_y_lim2の入力値Vb_y_tからの修正量(=Vw_y_lim2−Vb_y_t)だけ、要求重心速度Vb_y_aimを補正してなる値(当該修正量をVb_y_aimに加算した値)が、Y軸方向の制御用目標重心速度Vb_y_mdfdとして決定される。
【0247】
この場合において、例えばX軸方向の速度に関し、要求重心速度Vb_x_aimが“0”でない場合には、制御用目標重心速度Vb_x_mdfdは、要求重心速度Vb_x_aimよりも“0”に近づくか、もしくは、要求重心速度Vb_x_aimと逆向きの速度となる。また、要求重心速度Vb_x_aimが“0”である場合には、制御用目標重心速度Vb_x_mdfdは、定常偏差算出部94_xが出力するX軸方向の重心速度定常偏差予測値Vb_x_prdと逆向きの速度となる。これらのことは、Y軸方向の速度に関しても同様である。
【0248】
以上が、重心速度制限部76の処理である。
【0249】
図9の説明に戻って、制御ユニット50は、以上の如く重心速度算出部72、重心速度制限部76、ゲイン調整部78、及び偏差演算部70の処理を実行した後、次に、姿勢制御演算部80の処理を実行する。
【0250】
この姿勢制御演算部80の処理を、以下に図13を参照して説明する。なお、図13において、括弧を付していない参照符号は、X軸方向に輪転する仮想車輪62_xの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_x_comを決定する処理に係わる参照符号であり、括弧付きの参照符合は、Y軸方向に輪転する仮想車輪62_yの回転角速度の目標値である前記仮想車輪回転角速度指令ωw_y_comを決定する処理に係わる参照符号である。
【0251】
上述したように、位置制御モードであるか否かによって、姿勢制御演算部80の動作は異なる。具体的には、まず姿勢制御演算部80に入力される情報が、位置制御モードであるか否かによって異なる。
【0252】
位置制御モードで動作する場合、図9に示すように姿勢制御演算部80には、偏差演算部70で算出された基体傾斜角度偏差計測値θbe_xy_sと、前記ステップS2で算出された基体傾斜角速度計測値θbdot_xy_sと、重心速度算出部72で算出された重心速度推定値Vb_xy_sと、重心速度制限部76で算出された目標重心速度Vb_xy_cmdと、ゲイン調整部78で算出されたゲイン調整パラメータKr_xyと、位置情報取得部216Sで取得された現在位置P_xy_sと、記憶部218Sに設定されている目標帰還位置P_xy_aimとが入力される。
【0253】
姿勢制御演算部80は、まず、これらの入力値を用いて、次式06x,06yにより、仮想車輪回転角加速度指令ωdotw_xy_cmdを算出する。
【0254】
ωwdot_x_cmd=K1_x・θbe_x_s+K2_x・θbdot_x_s
+K3_x・(Vb_x_s−Vb_x_mdfd)
+K4_x・(P_x_s−P_x_aim)
+K5_x・Pedot_x_s ……式06x
ωwdot_y_cmd=K1_y・θbe_y_s+K2_y・θbdot_y_s
+K3_y・(Vb_y_s−Vb_y_mdfd)
+K4_y・(P_y_s−P_y_aim)
+K5_y・Pedot_y_s ……式06y
【0255】
ただし、式06xの右辺第5項のPedot_x_sは、第4項のP_x_s−P_x_aimの時間的変化率を表している。同様に、式06yの右辺第5項のPedot_y_sは、第4項のP_y_s−P_y_aimの時間的変化率を表している。
【0256】
これに対して、位置制御モードで動作していない場合、姿勢制御演算部80には、現在位置P_xy_sと、目標帰還位置P_xy_aimとが入力されない、又は代わりに“0”が入力される。
【0257】
従って、この場合、姿勢制御演算部80は、次式07x,07yにより、仮想車輪回転角加速度指令ωdotw_xy_cmdを算出する。
【0258】
ω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
【0259】
すなわち、式06x,06yが式07x,07yと異なる点は、目標帰還位置に対する現在位置の偏差に依存する第4項と、前記偏差の時間的変化率に依存する第5項とが右辺に加えられていることである。従って、式07x,07yでは、子機202Sの乗員が基体9を傾斜させることにより与えられる基体傾斜角度偏差計測値θbe_xy_sに応じて、仮想車輪回転角加速度指令ωdotw_xy_cmdを算出する。
【0260】
一方、位置制御モードでは、基体傾斜角度偏差計測値θbe_xy_sが与えられたとしても、子機202Sの現在位置P_xy_sが目標帰還位置P_xy_aimに一致しない場合は、右辺の他項に対して第4項及び第5項が優位となることによって、子機202Sを目標帰還位置P_xy_aimに移動させるように仮想車輪回転角加速度指令ωdotw_xy_comを算出することができる。
【0261】
以上のように、本実施形態における位置制御モードでは、Y軸方向から見た倒立振子モデルの質点60_xの運動(ひいては、Y軸方向から見た車両系重心点の運動)を制御するための操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_x_comと、X軸方向から見た倒立振子モデルの質点60_yの運動(ひいては、X軸方向から見た車両系重心点の運動)を制御するための操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_y_comとは、それぞれ、5つの操作量成分(式06x,06yの右辺の5つの項)を加え合わせることによって決定される。
【0262】
この場合、式06xにおける各操作量成分に係わるゲイン係数K1_x,K2_x,K3_x,K4_x,K5_xは、ゲイン調整パラメータKr_xに応じて可変的に設定され、式06yにおける各操作量成分に係わるゲイン係数K1_y,K2_y,K3_y,K4_y,K5_yは、ゲイン調整パラメータKr_yに応じて可変的に設定される。
【0263】
ただし、位置制御モードで動作しない場合は、ゲイン係数K1_x,K2_x,K3_xと、ゲイン係数K1_y,K2_y,K3_yとを使用し、ゲイン係数K4_x,K5_xと、ゲイン係数K4_y,K5_yとは使用しない、又は“0”である。
【0264】
以降、式06xにおけるゲイン係数K1_x,K2_x,K3_x,K4_x,K5_xのそれぞれを第1ゲイン係数K1_x、第2ゲイン係数K2_x、第3ゲイン係数K3_x、第4ゲイン係数K4_x、第5ゲイン係数K5_xということがある。このことは、式06yにおけるゲイン係数K1_y,K2_y,K3_y,K4_y,K5_yについても同様とする。
【0265】
式06xにおける第iゲイン係数Ki_x(i=1,2,3,4,5)と、式06yにおける第iゲイン係数Ki_y(i=1,2,3,4,5)とは、図13中にただし書きで示した如く、次式06x、06yにより、ゲイン調整パラメータKr_x,Kr_yに応じて決定される。
【0266】
Ki_x=(1−Kr_x)・Ki_a_x+Kr_x・Ki_b_x ……式09x
Ki_y=(1−Kr_y)・Ki_a_y+Kr_y・Ki_b_y ……式09y
(i=1,2,3,4,5)
【0267】
ここで、式09xにおけるKi_a_x、Ki_b_xは、それぞれ、第iゲイン係数Ki_xの最小側(“0”に近い側)のゲイン係数値、最大側(“0”から離れる側)のゲイン係数値としてあらかじめ設定された定数値である。このことは、式09yにおけるKi_a_y、Ki_b_yについても同様である。
【0268】
従って、式09xの演算に用いる各第iゲイン係数Ki_x(i=1,2,3,4,5)は、それぞれに対応する定数値Ki_a_x、Ki_b_xの重み付き平均値として決定される。そして、この場合、Ki_a_x、Ki_b_xにそれぞれ掛かる重みが、ゲイン調整パラメータKr_xに応じて変化させられる。このため、Kr_x=0である場合には、Ki_x=Ki_a_xとなり、Kr_x=1である場合には、Ki_x=Ki_b_xとなる。そして、Kr_xが“0”から“1”に近づくに伴い、第iゲイン係数Ki_xはKi_a_xからKi_b_x近づいていく。
【0269】
同様に、式09yの演算に用いる各第iゲイン係数Ki_y(i=1,2,3,4,5)は、それぞれに対応する定数値Ki_a_y、Ki_b_yの重み付き平均値として決定される。そして、この場合、Ki_a_y、Ki_b_yにそれぞれ掛かる重みが、ゲイン調整パラメータKr_yに応じて変化させられる。このため、Ki_xの場合と同様に、Kr_yの値が“0”から“1”の間で変化するに伴い、第iゲイン係数Ki_yの値が、Ki_a_yとKi_b_yとの間で変化する。
【0270】
補足すると、上記定数値Ki_a_x、Ki_b_x及びKi_a_y,Ki_b_y(i=1,2,3,4,5)は、前記ステップS6又は8において値が設定される定数パラメータに含まれるものである。
【0271】
姿勢制御演算部80は、位置制御モードで動作する場合、上記の如く決定した第1〜第5ゲイン係数K1_x,K2_x,K3_x,K4_x,K5_xを用いて前記式06xの演算を行なうことで、X軸方向に輪転する仮想車輪62_xに係わる仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
【0272】
さらに詳細には、図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で算出する。
【0273】
位置制御モード下において、姿勢制御演算部80は、現在位置P_x_sと目標帰還位置P_x_aimとの偏差(=P_x_s−P_x_aim)を演算部80dで算出し、この偏差に第4ゲイン係数K4_xを乗じてなる操作量成u4_xを処理部80cで算出する。さらに、現在位置P_x_sと目標帰還位置P_x_aimとの偏差(=P_x_s−P_x_aim)の時間的変化率Pedot_x_sを演算部80dで算出し、この時間的変化率に第5ゲイン係数K5_xを乗じてなる操作量成u5_xを処理部80cで算出する。
そして、姿勢制御演算部80は、これらの操作量成分u1_x,u2_x,u3_x,u4_x,u5_xを演算部80eにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_comを算出する。
【0274】
一方、位置制御モードでない場合、姿勢制御演算部80は、第1〜第3ゲイン係数K1_x,K2_x,K3_xを用いて前記式07xの演算を行なうことで、X軸方向に輪転する仮想車輪62_xに係わる仮想車輪回転角加速度指令ωwdot_x_cmdを算出する。
【0275】
同様に、姿勢制御演算部80は、位置制御モードで動作する場合、上記の如く決定した第1〜第5ゲイン係数K1_y,K2_y,K3_y,K4_y,K5_yを用いて前記式06yの演算を行なうことで、Y軸方向に輪転する仮想車輪62_yに係わる仮想車輪回転角加速度指令ωwdot_y_cmdを算出する。
【0276】
この場合には、姿勢制御演算部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で算出する。
【0277】
さらに、位置制御モード下において、姿勢制御演算部80は、現在位置P_y_sと目標帰還位置P_y_aimとの偏差(=P_y_s−P_y_aim)を演算部80dで算出し、この偏差に第4ゲイン係数K4_yを乗じてなる操作量成u4_yを処理部80cで算出し、現在位置P_y_sと目標帰還位置P_y_aimとの偏差(=P_y_s−P_y_aim)の時間的変化率Pedot_y_sを演算部80dで算出し、この時間的変化率に第5ゲイン係数K5_yを乗じてなる操作量成u5_yを処理部80cで算出する。
【0278】
そして、姿勢制御演算部80は、これらの操作量成分u1_y,u2_y,u3_y,u4_y,u5_yを演算部80eにて加え合わせることにより、仮想車輪回転角加速度指令ωwdot_x_comを算出する。
【0279】
ここで、式06x,07xの右辺の第1項(=第1操作量成分u1_x)及び第2項(=第2操作量成分u2_x)は、X軸周り方向での基体傾斜角度偏差計測値θbe_x_sを、フィードバック制御則としてのPD則(比例・微分則)により“0”に収束させる(基体傾斜角度計測値θb_x_sを目標値θb_x_objに収束させる)ためのフィードバック操作量成分としての意味を持つ。
【0280】
また、式06x,07xの右辺の第3項(=第3操作量成分u3_x)は、重心速度推定値Vb_x_sと目標重心速度Vb_x_mdfdとの偏差をフィードバック制御則としての比例則により“0”に収束させる(Vb_x_sをVb_x_mdfdに収束させる)ためのフィードバック操作量成分としての意味を持つ。
【0281】
さらに、位置制御モード下において、式06xの右辺の第4項(=第4操作量成分u4_x)及び第5項(=第5操作量成分u5_x)は、X軸周り方向での現在位置P_x_sと目標帰還位置P_x_aimとの偏差を、フィードバック制御則としてのPD則(比例・微分則)により“0”に収束させる(現在位置P_x_sを目標帰還位置P_x_aimに収束させる)ためのフィードバック操作量成分としての意味を持つ。
【0282】
これらのことは、式06y,07yの右辺の第1〜第5項(第1〜第5操作量成分u1_y,u2_y,u3_y,u4_y,u5_y)とについても同様である。
【0283】
姿勢制御演算部80は、上記の如く、仮想車輪回転角加速度指令ωwdot_x_com,ωwdot_y_comを算出した後、次に、これらのωwdot_x_com,ωwdot_y_comをそれぞれ積分器80fにより積分することによって、前記仮想車輪回転速度指令ωw_x_com,ωw_y_comを決定する。
【0284】
以上が、姿勢安定化制御演算部80の処理の詳細である。
【0285】
補足すると、式06x,07xの右辺の第3項を、Vb_x_sに応じた操作量成分(=K3_x・Vb_x_s)と、Vb_x_mdfdに応じた操作量成分(=−K3_x・Vb_x_mdfd)とに分離した式によって、仮想車輪回転角加速度指令ωdotw_x_comを算出するようにしてよい。同様に、式06y,07yの右辺の第3項を、Vb_y_sに応じた操作量成分(=K3_y・Vb_y_s)と、Vb_y_mdfdに応じた操作量成分(=−K3_y・Vb_y_mdfd)とに分離した式によって、仮想車輪回転角加速度指令ωdotw_y_comを算出するようにしてよい。
【0286】
さらに、式06xの右辺の第4項を、P_x_sに応じた操作量成分(=K4_x・P_x_s)と、P_x_aimに応じた操作量成分(=−K4_x・P_x_aimとに分離した式によって、仮想車輪回転角加速度指令ωdotw_x_cmdを算出するようにしてよい。同様に、式06yの右辺の第4項を、P_y_sに応じた操作量成分(=K4_y・P_y_s)と、P_y_aimに応じた操作量成分(=−K4_y・_y_aimとに分離した式によって、仮想車輪回転角加速度指令ωdotw_y_cmdを算出するようにしてよい。
【0287】
また、本実施形態では、車両系重心点の挙動を制御するための操作量(制御入力)として、仮想車輪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と床面との間の摩擦力)を操作量として用いるようにしてもよい。
【0288】
図9の説明に戻って、制御ユニット50は、次に、姿勢安定化制御演算部80で上記の如く決定した仮想車輪回転速度指令ωw_x_com,ωw_y_comをモータ指令演算部82に入力し、該モータ指令演算部82の処理を実行することによって、電動モータ31Rの速度指令ω_R_comと電動モータ31Lの速度指令ω_L_comとを決定する。このモータ指令演算部82の処理は、前記リミット処理部86(図11参照)のXY−RL変換部86bの処理と同じである。
【0289】
具体的には、モータ指令演算部82は、前記式01a,01bのωw_x,ωw_y,ω_R,ω_Lをそれぞれ、ωw_x_com,ωw_y_com,ω_R_cmd,ω_L_cmdに置き換えて得られる連立方程式を、ω_R_cmd,ω_L_cmdを未知数として解くことによって、電動モータ31R,31Lのそれぞれの速度指令ω_R_com,ω_L_comを決定する。
【0290】
以上により前記ステップS9の車両制御演算処理が完了する。
【0291】
以上説明した如く制御ユニット50が制御演算処理を実行することによって、前記搭乗モード及び自立モードのいずれの動作モードにおいても、基本的には、基体9の姿勢が、前記基体傾斜角度偏差計測値θbe_x_s,θbe_y_sの両方が“0”となる姿勢(以下、この姿勢を基本姿勢という)に保たれるように、換言すれば、車両系重心点(車両・乗員全体重心点又は車両単体重心点)の位置が、車輪体5の接地面のほぼ真上に位置する状態に保たれるように、操作量(制御入力)としての仮想車輪回転角加速度指令ωdotw_xy_comが決定される。より詳しく言えば、基体9の姿勢を前記基本姿勢に保ちつつ、車両系重心点の移動速度の推定値としての重心速度推定値Vb_xy_sを制御用目標重心速度Vb_xy_mdfdに収束させるように、仮想車輪回転角加速度指令ωdotw_xy_comが決定される。なお、制御用目標重心速度Vb_xy_mdfdは、通常は(詳しくは搭乗モードで乗員等が車両1の付加的な推進力を付与しない限り)、“0”である。この場合には、基体9の姿勢を前記基本姿勢に保ちつつ、車両系重心点がほぼ静止するように、仮想車輪回転角加速度指令ωdotw_xy_comが決定されることとなる。
【0292】
そして、ωdotw_xy_comの各成分を積分してなる仮想車輪回転角速度指令ωw_xy_comを変換してなる電動モータ31R,31Lのそれぞれの回転角速度が、電動モータ31R,31Lの速度指令ω_R_cmd,ω_L_cmdとして決定される。さらに、その速度指令ω_R_cmd,ω_L_cmdに従って、各電動モータ31R,31Lの回転速度が制御される。ひいては車輪体5のX軸方向及びY軸方向のそれぞれの移動速度が、ωw_x_comに対応する仮想車輪62_xの移動速度と、ωw_y_comに対応する仮想車輪62_yの移動速度とに各々一致するように制御される。
【0293】
このため、例えば、Y軸周り方向で、実際の基体傾斜角度θb_xが目標値θb_x_objから前傾側にずれると、そのずれを解消すべく(θbe_x_sを“0”に収束させるべく)、車輪体5が前方に向かって移動する。同様に、実際のθb_xが目標値θb_x_objから後傾側にずれると、そのずれを解消すべく(θbe_x_sを“0”に収束させるべく)、車輪体5が後方に向かって移動する。
【0294】
また、例えば、X軸周り方向で、実際の基体傾斜角度θb_yが目標値θb_y_objから右傾側にずれると、そのずれを解消すべく(θbe_y_sを“0”に収束させるべく)、車輪体5が右向きに移動する。同様に、実際のθb_yが目標値θb_y_objから左傾側にずれると、そのずれを解消すべく(θbe_y_sを“0”に収束させるべく)、車輪体5が左向きに移動する。
【0295】
さらに、実際の基体傾斜角度θb_x,θb_yの両方が、それぞれ目標値θb_x_obj,θb_y_objからずれると、θb_xのずれを解消するための車輪体5の前後方向の移動動作と、θb_yのずれを解消するための車輪体5の左右方向の移動動作とが合成され、車輪体5がX軸方向及びY軸方向の合成方向(X軸方向及びY軸方向の両方向に対して傾斜した方向)に移動することとなる。
【0296】
このようにして、基体9が前記基本姿勢から傾くと、その傾いた側に向かって、車輪体5が移動することとなる。従って、例えば前記搭乗モードにおいて、乗員が意図的にその上体を傾けると、その傾けた側に、車輪体5が移動することとなる。
【0297】
なお、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdが“0”である場合には、基体9の姿勢が基本姿勢に収束すると、車輪体5の移動もほぼ停止する。また、例えば、基体9のY軸周り方向の傾斜角度θb_xを基本姿勢から傾いた一定の角度に維持すると、車輪体5のX軸方向の移動速度は、その角度に対応する一定の移動速度(制御用目標重心速度Vb_x_mdfdと一定の定常偏差を有する移動速度)に収束する。このことは、基体9のX軸周り方向の傾斜角度θb_yを基本姿勢から傾いた一定の角度に維持した場合も同様である。
【0298】
また、例えば、前記要求重心速度生成部74で生成される要求重心速度Vb_x_aim,Vb_y_aimの両方が“0”となっている状況において、基体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の一方又は両方の回転角速度が高速になり過ぎるのが防止される。
【0299】
さらに、前記ゲイン調整部78では、重心速度推定値Vb_x_s,Vb_y_sの一方又は両方が大きくなり、ひいては、基体9の前記基本姿勢からの傾きを解消し、もしくはその傾き量を維持するために必要な車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になる恐れがある状況では、その逸脱が顕著になるほど(詳しくは、図10に示すVover_x,Vover_yの絶対値が大きくなるほど)、前記ゲイン調整パラメータKr_x,Kr_yの一方又は両方が“0”から“1”に近づけられる。
【0300】
この場合、前記式09xにより算出される各第iゲイン係数Ki_x(i=1,2,3,4,5)は、Kr_xが“1”に近づくほど、最小側の定数値Ki_a_xから最大側の定数値Ki_b_xに近づく。このことは、前記式09yにより算出される各第iゲイン係数Ki_y(i=1,2,3,4,5)についても同様である。
【0301】
そして、上記ゲイン係数の絶対値が大きくなることによって、基体9の傾きの変化に対する操作量(仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmd)の感度が高まる。従って、基体9の基本姿勢からの傾き量が大きくなろうとすると、それを素早く解消するように、車輪体5の移動速度が制御されることとなる。従って、基体9が基本姿勢から大きく傾くことが強めに抑制され、ひいては、車輪体5のX軸方向及びY軸方向の一方又は両方の移動速度が、電動モータ31R,31Lの一方又は両方の回転角速度を許容範囲から逸脱させてしまうような、過大な移動速度になるのを防止することができる。
【0302】
また、搭乗モードにおいて、要求重心速度生成部74が、乗員等の操縦操作による要求に応じて要求重心速度Vb_x_aim,Vb_y_aim(Vb_x_aim,Vb_y_aimの一方又は両方が“0”でない要求重心速度)を生成した場合には、電動モータ31R,31Lの一方又は両方の回転角速度が許容範囲を逸脱するような高速の回転角速度にならない限り(詳しくは図12に示すVw_x_lim2,Vw_y_lim2がVb_x_t,Vb_y_tにそれぞれ一致する限り)、要求重心速度Vb_x_aim,Vb_y_aimがそれぞれ前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。このため、要求重心速度Vb_x_aim,Vb_y_aimを実現するように(実際の重心速度が要求重心速度Vb_x_aim,Vb_y_aimに近づくように)、車輪体5の移動速度が制御される。
【0303】
次に、説明を後回しにした、前記要求重心速度生成部74の処理の詳細を説明する。
要求重心速度生成部74は、本実施形態では、車両1の動作モードが自立モードである場合には、前記したように、要求重心速度Vb_x_aim,Vb_y_aimを“0”とする。
【0304】
一方、要求重心速度生成部74は、車両1の動作モードが搭乗モードである場合には、乗員等による車両1の操縦操作(車両1に推進力を付加する操作)に応じて、該操作により要求されると推定される要求重心速度Vb_x_aim,Vb_y_aimを決定する。
【0305】
ここで、例えば、車両1の乗員が、車両1の発進時等において、車両1の移動速度(車両系重心点の移動速度)を積極的に増速させようとする場合には、自身の足により床を蹴り、それにより車両1に移動速度を増速させる推進力(乗員の足平と床との摩擦力による推進力)を車両1に付加する。あるいは、例えば、車両1の乗員の要求に応じて、外部の補助者等が、車両1にその移動速度を増速させる推進力を付加する場合もある。
【0306】
このような場合に、要求重心速度生成部74は、車両系重心点の実際の速度ベクトル(以降、重心速度ベクトル↑Vbという)の大きさ(絶対値)の時間的変化率に基づいて、車両1の移動速度を増加させる要求としての加速要求が発生したか否かを判断しつつ、それに応じて、↑Vbの目標値としての要求重心速度ベクトル↑Vb_aim(要求重心速度Vb_x_aim,Vb_y_aimを2つの成分とする速度ベクトル)を逐次決定する。
【0307】
その処理を概略的に説明すると、上記加速要求が発生した場合には、該加速要求が解消するまでの間、要求重心速度ベクトル↑Vb_aimの大きさを増加させるように、要求重心速度ベクトル↑Vb_aimが決定される。そして、上記加速要求が解消すると、要求重心速度ベクトル↑Vb_aimの大きさを段階的に減衰させていくように、要求重心速度ベクトル↑Vb_aimが決定される。この場合、本実施形態では、基本的には、加速要求が解消してから、所定時間の期間、要求重心速度ベクトル↑Vb_aimの大きさが一定に保たれる。そして、その後に、要求重心速度ベクトル↑Vb_aimの大きさが“0”まで連続的に減衰させられる。なお、この減衰時には、適宜、要求重心速度ベクトル↑Vb_aimの向きがX軸方向に近づけられる。
【0308】
このような処理を実行する要求重心速度生成部74を、図14〜図20のフローチャートを参照して以下に詳細に説明する。
【0309】
図14を参照して、要求重心速度生成部74は、まず、ステップS21の処理を実行する。この処理では、要求重心速度生成部74は、入力される重心速度推定値Vb_x_s,Vb_y_sを2つの成分とする速度ベクトル(実際の重心速度ベクトル↑Vbの観測値)である推定重心速度ベクトル↑Vb_sの大きさ|↑Vb_s|(=sqrt(Vb_x_s2+Vb_y_s2))の時間的変化率(微分値)DVb_sを算出する。このDVb_sは、実際の重心速度ベクトル↑Vbの大きさの時間的変化率の観測値(推定値)としての意味を持つ。以降、DVb_sを推定重心速度絶対値変化率DVb_sという。なお、上記sqrt( )は、平方根関数である。
【0310】
さらに、ステップS21では、要求重心速度生成部74は、入力される重心速度推定値Vb_x_s,Vb_y_sのそれぞれの時間的変化率(微分値)である重心加速度推定値Vbdot_x_s,Vvdot_y_sを算出する。なお、Vbdot_x_s,Vvdot_y_sを2つの成分とするベクトルは、車両系重心点の実際の加速度ベクトルの観測値を意味する。
【0311】
次いで、ステップS22に進んで、要求重心速度生成部74は、要求重心速度Vb_x_aimを算出するための現在の演算処理モードが、どのモードであるかを判断する。
【0312】
ここで、本実施形態では、要求重心速度生成部74は、要求重心速度ベクトル↑Vb_aimの基本値(以降、基本要求重心速度ベクトル↑Vb_aim1という)を決定した上で、この基本要求重心速度ベクトル↑Vb_aim1に要求重心速度ベクトル↑Vb_aimを追従させるように(定常的には一致させるように)、要求重心速度ベクトル↑Vb_aimを決定する。
【0313】
上記演算処理モードは、上記基本要求重心速度ベクトル↑Vb_aim1の決定の仕方の種別を表すものである。そして、本実施形態では、該演算処理モードとしては、制動モード、速度追従モード、速度ホールドモードの3種類のモードがある。
【0314】
制動モードは、基本要求重心速度ベクトル↑Vb_aim1の大きさを“0”に減衰させていくか、又は“0”に保持するように↑Vb_aim1を決定するモードである。また、速度追従モードは、基本要求重心速度ベクトル↑Vb_aim1を、推定重心速度ベクトル↑Vb_sに追従させるように(一致又はほぼ一致させるように)決定するモードである。また、速度ホールドモードは、基本要求重心速度ベクトル↑Vb_aim1の大きさを一定に保つように↑Vb_aim1を決定するモードである。
【0315】
なお、制御ユニット50の起動時等に該制御ユニット50が初期化された状態での演算処理モード(初期演算処理モード)は、制動モードである。
【0316】
要求重心速度生成部74は、上記ステップS22において、現在の演算処理モードが制動モードである場合と、速度追従モードである場合と、速度ホールドモードである場合とで、それぞれ、次に、ステップS23の演算処理、ステップS24の演算処理、ステップS25の演算処理を実行し、基本要求重心速度ベクトル↑Vb_aim1を決定する。
【0317】
これらの各モードに対応する演算処理は、次のように実行される。
【0318】
ステップS23における制動モードの演算処理は、図15のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、前記ステップS21で算出した推定重心速度絶対値変化率DVb_sと、重心加速度推定値Vbdot_x_s,Vbdot_y_sとに関して、DVb_s>DV1、且つ、|Vbdot_x_s|>a1*|Vbdot_y_s|という条件が成立するか否かをステップS23−1で判断する。この判断処理は、車両1の移動速度を車両1の概略前後方向で増速させようとする加速要求が有るか否かを判断する処理である。
【0319】
ここで、上記DV1は、あらかじめ設定された正の値の第1閾値DV1(>0)である。そして、DVb_s>DV1であるということは、実際の重心速度ベクトル↑Vbの大きさ|↑Vb|が第1閾値DV1よりも大きな時間的変化率で増加している状況を意味する。
【0320】
また、上記a1は、あらかじめ設定された正の値の係数値である。そして、|Vbdot_x_s|>a1*|Vbdot_y_s|であるということは、車両系重心点の実際の加速度ベクトルが“0”でないX軸方向の成分を有し、且つ、該加速度ベクトルのX軸方向に対する鋭角側の角度(=tan-1(|Vbdot_y_s|/|Vbdot_x_s|)が、所定角度(=tan-1(1/a1))よりも“0”に近い状況であることを意味する。本実施形態では、a1は、例えば“1”又はこれに近い値に設定されている。
【0321】
従って、ステップS23−1の判断結果が肯定的になる状況は、乗員あるいは外部の補助者等により概略前後方向での重心速度ベクトル↑Vbの大きさを増加させようとする操縦操作(車両1に概略前後方向の推進力を付加する操縦操作)が行なわれている状況である。
【0322】
ステップS23−1の判断結果が否定的となる場合、すなわち、車両1の加速要求(概略前後方向での車両1の加速要求)が無い場合には、要求重心速度生成部74は、次に、ステップS23−4の判断処理を実行する。
【0323】
ステップS23−4の判断処理では、要求重心速度生成部74は、ステップS21で算出した推定重心速度絶対値変化率DVb_sが、あらかじめ設定された負の値の第3閾値DV3(<0)よりも小さいか否かを判断する。この判断処理は、車両1の乗員が重心速度ベクトル↑Vbの大きさを積極的に減少させようとする減速要求が発生したか否かを判断するものである。この場合、車両1の乗員が意図的に自身の足を接地させ、自身の足と床との間に車両1の制動方向の摩擦力を発生させたような場合にステップS23−4の判断結果が肯定的になる。
【0324】
そして、要求重心速度生成部74は、ステップS23−4の判断結果が否定的である場合(減速要求が発生していない場合)には、ステップS23−5で第1制動演算処理を実行することによって、基本要求重心速度ベクトル↑Vb_aim1の大きさ|↑Vb_aim1|(以降、基本要求重心速度ベクトル絶対値|↑Vb_aim1|という)と方位角θvb_aim1(以降、基本要求重心速度ベクトル方位角θvb_aim1という)とを決定し、図15の処理を終了する。また、ステップS23−4の判断結果が肯定的である場合(減速要求が発生した場合には)、要求重心速度生成部74は、ステップS23−6で第2制動演算処理を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定し、図15の処理を終了する。
【0325】
なお、本実施形態では、基本要求重心速度ベクトル方位角θvb_aim1は、sin(θvb_aim1)=Vb_x_aim1/|↑Vb_aim1|,cos(θvb_aim1)=Vb_y_aim1/|↑Vb_aim1|となる角度(180°≦θVb_aim≦180°)として定義される。また、|↑Vb_aim|=0である場合には、θVb_aim=0°であるとする。
【0326】
上記ステップS23−5の第1制動演算処理は、図16及び図17のフローチャートに示す如く実行される。
【0327】
この第1制動演算処理では、要求重心速度生成部74は、まず、ステップS23−5−1において基本要求重心速度ベクトル絶対値|↑Vb_aim1|の前回値|↑Vb_aim_p|からあらかじめ設定された正の所定値ΔVb1だけ減少させてなる値を、|↑Vb_aim1|の候補値ABS_Vbとして算出する。ΔVb1は、制御処理周期毎の|↑Vb_aim1|の減少量(ひいては|↑Vb_aim1|の時間的変化率)を規定する設定値である。
【0328】
次いで、要求重心速度生成部74は、ステップS23−5−2において、この候補値ABS_Vbと、“0”とのうちの大きい方の値max(0,ABS_Vb)を、|↑Vb_aim1|の今回値として決定する。従って、ABS_Vb≧0である場合には、ABS_Vbがそのまま|↑Vb_aim1|の今回値として決定され、ABS_Vb<0である場合には、|↑Vb_aim1|の今回値は“0”とされる。
【0329】
次いで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim1|が“0”であるか否かをステップS23−5−3で判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−4において、θvb_aim1の今回値を0°とし、図16の処理を終了する。
【0330】
ステップS23−5−3の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−5からの処理によって、θvb_aim1の前回値θvb_aim1_pの値が、0°≦θvb_aim1_p≦θth1+、θth1-≦θvb_aim1_p<0°、θth2+≦θvb_aim1_p≦180°、−180°≦θvb_aim1_p≦θth2-、θth1+<θvb_aim1_p<θth2+、θth2-<θvb_aim1_p<θth1-のいずれの範囲内の値であるかに応じて、θvb_aim1の今回値を決定する。
【0331】
ここで、θth1+は、0°と90°との間の値であらかじめ設定された正の方位角閾値、θth1-は、0°と−90°との間の値であらかじめ設定された負の方位角閾値、θth2+は、90°と180°との間の値であらかじめ設定された正の方位角閾値、θth2-は、−90°と−180°との間の値であらかじめ設定された負の方位角閾値である。本実施形態では、θth1+とθth1-とは、それらの絶対値が互いに同一の値(例えば45°もしくはその近辺の角度値)に設定されている。また、θth2+とθth2-とは、それらの絶対値が互いに同一の値(例えば135°もしくはその近辺の角度値)に設定されている。なお、θth1+とθth1-との差(=(θth1+)−(θth1-))と、θth2とθth2-との差(=(θth2+)−(θth2-))とは、互いに同一である必要なない。
【0332】
ステップS23−5−5からの処理は以下に説明する如く実行される。すなわち、要求重心速度生成部74は、ステップS23−5−5において、0°≦θvb_aim1_p≦θth1+であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−6において、θvb_aim1の前回値θvb_aim1_pからあらかじめ設定された正の所定値Δθvb1だけ減少させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。Δθvb1は、制御処理周期毎のθvb_aim1の変化量(ひいてはθvb_aim1の時間的変化率)を規定する設定値である。
【0333】
そして、要求重心速度生成部74は、ステップS23−5−7において、この候補値ANG_Vbと、0°とのうちの大きい方の角度値max(0,ANG_Vb)をθvb_aim1の今回値として決定し、図16の処理を終了する。従って、ANG_Vb≧0°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb<0°である場合には、θvb_aim1の今回値は0°とされる。
【0334】
ステップS23−5−5の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−8において、θth1-≦θvb_aim1_p<0°であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−9において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ増加させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0335】
そして、要求重心速度生成部74は、ステップS23−5−10において、この候補値ANG_Vbと、0°とのうちの小さい方の角度値min(0,ANG_Vb)をθvb_aim1の今回値として決定し、図16の処理を終了する。従って、ANG_Vb≦0°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb>0°である場合には、θvb_aim1の今回値は0°とされる。
【0336】
ステップS23−5−8の判断結果が否定的である場合には、要求重心速度生成部74は、次に、図17のステップS23−5−11において、θth2+≦θvb_aim1_p≦180°であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−12において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ増加させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0337】
そして、要求重心速度生成部74は、ステップS23−5−13において、この候補値ANG_Vbと、0°とのうちの小さい方の角度値min(180,ANG_Vb)をθvb_aim1の今回値として決定し、図17の処理を終了する。従って、ANG_Vb≦180°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb>180°である場合には、θvb_aim1の今回値は180°とされる。
【0338】
ステップS23−5−11の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−5−14において、−180°≦θvb_aim1_p≦θth2-であるか否かを判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、ステップS23−5−15において、θvb_aim1の前回値θvb_aim1_pから前記所定値Δθvb1だけ減少させてなる値を、θvb_aim1の候補値ANG_Vbとして算出する。
【0339】
そして、要求重心速度生成部74は、ステップS23−5−16において、この候補値ANG_Vbと、−180°とのうちの大きい方の角度値max(180,ANG_Vb)をθvb_aim1の今回値として決定し、図17の処理を終了する。従って、ANG_Vb≧−180°である場合には、ANG_Vbがそのままθvb_aim1の今回値として決定され、ANG_Vb<−180°である場合には、θvb_aim1の今回値は−180°とされる。
【0340】
ステップS23−5−14の判断結果が否定的である場合、すなわち、θth1+<θvb_aim1_p<θth2+又はθth2-<θvb_aim1_p<θth1-である場合には、要求重心速度生成部74は、ステップS23−5−17において、θvb_aim1の今回値を、前回値θvb_aim1_pと同じ値に決定し、図17の処理を終了する。
【0341】
以上が、ステップS23−5の第1制動演算処理の詳細である。
【0342】
一方、前記S23−6の第2制動演算処理は、図18のフローチャートに示す如く実行される。
【0343】
この第2制動演算処理では、要求重心速度生成部74は、まず、ステップS23−6−1において基本要求重心速度ベクトル絶対値|↑Vb_aim1|の前回値|↑Vb_aim_p|からあらかじめ設定された正の所定値ΔVb2だけ減少させてなる値を、|↑Vb_aim1|の候補値ABS_Vbとして算出する。ΔVb2は、第2制動演算処理での、制御処理周期毎の|↑Vb_aim1|の減少量(ひいては|↑Vb_aim1|の時間的変化率)を規定する設定値である。この場合、ΔVb2は、前記第1制動演算処理で使用する所定値ΔVb1よりも大きな値に設定されている。
【0344】
次いで、要求重心速度生成部74は、ステップS23−6−2において、前記ステップS23−5−2と同様の処理を実行し、ステップS23−6−1で算出した候補値ABS_Vbと、“0”とのうちの大きい方の値max(0,ABS_Vb)を、|↑Vb_aim1|の今回値として決定する。
【0345】
次いで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim1|が“0”であるか否かをステップS23−6−3で判断する。この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS23−6−4において、θvb_aim1の今回値を“0”とし、図18の処理を終了する。
【0346】
また、ステップS23−6−3の判断結果が否定的である場合には、要求重心速度生成部74は、次に、ステップS23−6−5において、θvb_aim1の今回値を、前回値θvb_aim1_pと同じ値に決定し、図18の処理を終了する。
【0347】
以上が、ステップS23−6の第2制動演算処理の詳細である。
【0348】
図15の説明に戻って、前記ステップS23−1の判断結果が肯定的である場合、すなわち、概略前後方向での車両1の加速要求が有る場合には、要求重心速度生成部74は、ステップS23−2で基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。要求重心速度生成部74は、ステップS23−3で演算処理モードを制動モードから速度追従モードに変更し、図15の処理を終了する。
【0349】
上記ステップS23−2では、具体的には、前記推定重心速度ベクトル↑Vb_s(今回値)の大きさ|↑Vb_s|(=sqrt(Vb_x_s2+Vb_y_s2))に、あらかじめ設定された所定値の比率γを乗じてなる値が、基本要求重心速度ベクトル絶対値|↑Vb_aim1|として決定される。上記比率γは、本実施形態では、“1”よりも若干小さい正の値(例えば0.8)に設定されている。
【0350】
さらに、ステップS23−2では、推定重心速度ベクトル↑Vb_sの方位角θvb_s(=sin-1(Vb_x_s/|↑Vb_s|))がそのまま、基本要求重心速度ベクトル方位角θvb_aim1として決定される。従って、ステップS23−2では、結果的には、推定重心速度ベクトル↑Vb_sに上記比率γを乗じてなるベクトルが、基本要求重心速度ベクトル↑Vb_aim1として決定されることとなる。
【0351】
このようなステップS23−2の処理は、|↑Vb_x_aim1|とθvb_aim1との決定の仕方を、次回の制御処理サイクルから開始する速度追従モードに合わせるものである。
【0352】
なお、上記比率γの値が“1”よりも若干小さいことは必須ではなく、例えば、該比率γの値を“1”あるいはそれよりも若干大きい値に設定してもよい。本実施形態では、乗員が体感的(感覚的)に認識する車両1の移動速度が、実際の移動速度に比べて高速であるかのように認識されるのを防止するために、比率γの値を“1”よりも若干小さい値に設定している。
【0353】
以上が、ステップS23における制動モードの演算処理である。
【0354】
なお、ステップS23−1の判断結果が否定的となる場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、制動モードに維持されることとなる。
【0355】
次に、ステップS24における速度追従モードの演算処理は、図19のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、ステップS24−1において、前記ステップS23−4と同じ判断処理、すなわち、車両1の減速要求が発生したか否かの判断処理を実行する。
【0356】
この判断結果が肯定的である場合には、要求重心速度生成部74は、次に、ステップS24−6において、前記ステップS23−6と同じ処理(図18のフローチャートに示す処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。さらに、要求重心速度生成部74は、ステップS24−7において、演算処理モードを速度追従モードから制動モードに変更し、図19の処理を終了する。
【0357】
一方、前記ステップS24−1の判断結果が否定的である場合、すなわち、車両1の減速要求が発生していない場合には、要求重心速度生成部74は、次にステップS24−2の処理を実行する。このステップS24−2では、要求重心速度生成部74は、前記ステップS23−2と同じ処理を実行し、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。すなわち、|↑Vb_x_s|*γが|↑Vb_aim1|として決定される共に、θvb_sがθvb_aim1として決定される。
【0358】
次いで、要求重心速度生成部74は、ステップS24−3において、前記推定重心速度絶対値変化率DVb_s(ステップS21で算出した値)が、あらかじめ設定された第2閾値DV2よりも小さいか否かを判断する。この第2閾値DV2は、本実施形態では、前記第3閾値DV3よりも大きい(DV3よりも“0”に近い)負の所定値に設定されている。なお、第2閾値DV2は、“0”もしくは“0”よりも若干大きい正の値(但し、前記第1閾値DV1よりも小さい値)に設定されていてもよい。
【0359】
このステップS24−3の判断処理は、速度追従モードから、前記速度ホールドモードへの移行タイミングを判断するものである。そして、要求重心速度生成部74は、ステップS24−3の判断結果が否定的である場合には、そのまま図19の処理を終了する。この場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、速度追従モードに維持されることとなる。
【0360】
また、ステップS24−3の判断結果が肯定的である場合には、要求重心速度生成部74は、車両1の加速要求が完了したものとみなして、ステップS24−4において、カウントダウンタイマを初期化する。そして、要求重心速度生成部74は、ステップS24−5にて演算処理モードを速度追従モードから速度ホールドモードに変更し、図19の処理を終了する。
【0361】
上記カウントダウンタイマは、次回の制御処理周期から開始する速度ホールドモードの開始後の経過時間を計時するタイマである。そして、ステップS24−4では、該タイマの計時値CNTに、あらかじめ設定された初期値Tmがセットされる。初期値Tm_xは、速度ホールドモードを継続させようとする時間の設定値を意味する。
【0362】
以上が、ステップS24における速度追従モードの演算処理である。
【0363】
次に、ステップS25における速度ホールドモードの演算処理は、図20のフローチャートに示す如く実行される。具体的には、要求重心速度生成部74は、まず、ステップS25−1において、前記ステップS23−4と同じ判断処理、すなわち、車両1の減速要求が発生したか否かの判断処理を実行する。
【0364】
そして、このステップS25−1の判断結果が肯定的である場合(車両1の減速要求が発生した場合)には、要求重心速度生成部74は、次に、ステップS25−2において、前記ステップS23−6と同じ処理(図18のフローチャートに示す処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。さらに、要求重心速度生成部74は、ステップS25−3において、演算処理モードを速度ホールドモードから制動モードに変更し、図20の処理を終了する。
【0365】
一方、前記ステップS25−1の判断結果が否定的である場合(車両1の減速要求が発生していない場合)には、要求重心速度生成部74は、前記ステップS23−1と同じ判断処理、すなわち概略前後方向での車両1の加速要求が有るか否かの判断処理をステップS25−4で実行する。
【0366】
そして、ステップS25−4の判断結果が肯定的である場合(概略前後方向での車両1の加速要求が再び発生した場合)には、要求重心速度生成部74は、ステップS25−5において、前記ステップS23−2と同じ処理を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度ベクトル方位角θvb_aim1とを決定する。すなわち、|↑Vb_x_s|*γが|↑Vb_aim1|として決定される共に、θvb_sがθvb_aim1として決定される。
【0367】
さらに、要求重心速度生成部74は、ステップS25−6において、演算処理モードを速度ホールドモードから速度追従モードに変更し、図20の処理を終了する。
【0368】
前記ステップS25−4の判断結果が否定的である場合(概略前後方向での加速要求が無い状態が継続している場合)には、要求重心速度生成部74は、ステップS25−7において、前記カウントダウンタイマの計時値CNTをデクリメントする。すなわち、計時値CNTの現在値から所定値ΔT(制御処理周期の時間)を差し引くことによって、計時値CNTを更新する。
【0369】
次いで、要求重心速度生成部74は、カウントダウンタイマの計時値CNTが“0”よりも大きいか否か、すなわち、カウントダウンタイマの計時が終了したか否かをステップS25−8にて判断する。
【0370】
このステップS25−8の判断結果が肯定的である場合は、速度ホールドモードが開始してから、カウントダウンタイマの前記初期値Tmにより表される時間が未だ経過していない場合である。この場合には、要求重心速度生成部74は、演算処理モードを速度ホールドモードに維持するものとして、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度方位角θvb_aim1とをステップS25−9にて決定し、図20の処理を終了する。
【0371】
この場合、ステップS25−9では、|↑Vb_aim1|の今回値は、前回値|↑Vb_aim1_p|と同じ値に決定される。また、θvb_aim1の今回値は、前回値θvb_aim1_pと同じ値に決定される。従って、基本要求重心速度ベクトル↑Vb_aim1_pの前回値がそのまま、↑Vb_aim1の今回値の速度ベクトルとして決定される。
【0372】
なお、ステップS25−8の判断結果が肯定的である場合には、演算処理モードは変更されないので、次回の制御処理周期においても、演算処理モードは、速度ホールドモードに維持されることとなる。
【0373】
前記ステップS25−8の判断結果が否定的となった場合、すなわち、速度ホールドモードが開始してから、カウントダウンタイマの前記初期値Tmにより表される所定時間が経過した場合には、要求重心速度生成部74は、ステップS25−10において、前記ステップS23−5と同じ処理(図16及び図17のフローチャートの処理)を実行することによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|と基本要求重心速度方位角θvb_aim1とを決定する。
【0374】
さらに、要求重心速度生成部74は、ステップS25−11にて、演算処理モードを速度ホールドモードから制動モードに変更し、図20の処理を終了する。
【0375】
以上が、ステップS25における速度ホールドモードの演算処理である。
【0376】
図14の説明に戻って、要求重心速度生成部74は、以上の如くステップS23〜25のいずれかの演算処理を実行した後、次に、その演算処理により決定した|↑Vb_aim1|とθvb_aim1とをそれぞれフィルタに入力する処理(フィルタリング処理)をステップS26にて実行する。
【0377】
ここで、|↑Vb_aim1|とθvb_aim1とをそれぞれ入力するフィルタは、特に、演算処理モードが制動モードから速度追従モードに変更された直後に、要求重心速度ベクトル↑Vb_aimの大きさ|↑Vb_aim|と方位角θvb_aimとがステップ状に急変するのを防止するための一次遅れ特性のローパスフィルタである。この場合、|↑Vb_aim|を入力するフィルタの時定数は比較的短い時定数に設定されており、|↑Vb_aim1|が急変した直後以外の状況では該フィルタの出力値が|↑Vb_aim1|に一致又はほぼ一致するようになっている。θvb_aim1を入力するフィルタについても同様である。
【0378】
そして、ステップS26では、θvb_aim1を入力したフィルタの出力値が、そのまま、要求重心速度ベクトル↑Vb_aimの方位角θvb_aim(以降、要求重心速度ベクトル方位角θvb_aimという)として決定される。
【0379】
次いで、ステップS27に進んで、要求重心速度生成部74は、|↑Vb_aim1|を入力したフィルタの出力値を、リミッタに通してなる値を、最終的に要求重心速度ベクトル↑Vb_aimの大きさ|↑Vb_aim|(以降、要求重心速度ベクトル絶対値|↑Vb_aim|という)として決定する。この場合、該リミッタは、|↑Vb_aim|が過大になるのを防止するためのものであり、|↑Vb_aim1|を入力したフィルタの出力値があらかじめ設定された所定の上限値以下である場合には、該フィルタの出力値をそのまま|↑Vb_aim|として出力する。また、該リミッタは、フィルタの出力値が上記上限値を超えている場合には、該上限値を|↑Vb_aim|として出力する。換言すれば、該リミッタは、フィルタの出力値と上記上限値とのうちの小さい方の値を|↑Vb_aim|として出力する。
【0380】
次いで、ステップS28に進んで、要求重心速度生成部74は、上記の如く決定した|↑Vb_aim|とθvb_aimとから、要求重心速度ベクトル↑Vb_aimのX軸方向成分(X軸方向の要求重心速度)Vb_x_aimと、Y軸方向の成分(Y軸方向の要求重心速度)Vb_y_aimとを算出する。より詳しくは、|↑Vb_aim|*sin(θvb_aim)がVb_x_aimとして算出され、|↑Vb_aim|*cos(θvb_aim)がVb_y_aimとして算出される。
【0381】
以上が要求重心速度生成部74の処理の詳細である。
【0382】
以上説明した要求重心速度生成部74の処理によって、要求重心速度ベクトル↑Vb_aimは(ひいては要求重心速度Vb_x_aim,Vb_y_aim)は、以下のような態様で決定されることとなる。
【0383】
すなわち、例えば、車両1の移動速度を増速するために、乗員が自身の足平で床を蹴ることにって、あるいは、補助者等が車両1を押すことによって、車両1に対して、概略X軸方向の推進力(詳しくは、前記ステップS23−1の判断結果が肯定的となるような推進力)を付加した場合を想定する。
【0384】
なお、推進力を付加する前の演算処理モードは、前記制動モードであるとする。また、ここでは、理解の便宜上、図14のステップS26で|↑Vb_aim1|を入力するフィルタの出力値は、ステップS27でのリミッタによる制限がかからない程度の範囲内に収まる値(該リミッタの上限値以下の値)であるとする。同様に、重心速度推定値Vb_x_s,Vb_y_sが、前記リミット処理部104での出力値V_x_lim2,V_y_lim2の制限が行なわれない程度の範囲内に収まるものとする。
【0385】
この場合、車両1に推進力を付加することによって、前記ステップS23−1の判断結果が肯定的となると、図15のステップS23−3の処理によって、演算処理モードが制動モードから速度追従モードに変更されることとなる。
【0386】
この速度追従モードでは、減速要求が発生しない状況(ステップS24−1の判断結果が否定的となる状況)で、推定重心速度ベクトル↑Vb_sの今回値(現在値)に、所定値の比率γを乗じてなるベクトル、すなわち、↑Vb_sよりも大きさが若干小さく、且つ、↑Vb_sと同じ向きの速度ベクトルが、基本要求重心速度ベクトル↑Vb_aim1として逐次決定される。
【0387】
このため、要求重心速度生成部74が逐次決定する要求重心速度ベクトル↑Vb_aimは、車両1に付加された推進力によって増速する(大きさが増加する)実際の重心速度ベクトル↑Vbにほぼ一致する速度ベクトル↑Vb_aim1(=γ*↑Vb_s)に追従するように、決定されることとなる。
【0388】
そして、このように決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0389】
この結果、乗員が車両1に付加した推進力による車両系重心点の実際の移動速度の増速(概略前後方向での増速)が該推進力による要求に即して速やかに行なわれるように、車輪体5の移動速度が制御されることとなる。従って、車両1が付加された推進力によって円滑に加速することとなる。
【0390】
なお、速度追従モードにおいて、車両1に制動力を付加することによって、図19のステップS24−1の判断結果が肯定的になると(減速要求が発生すると)、演算処理モードが前記制動モードに変化する。このため、車両1の移動速度が減衰していくこととなる。この場合、減速要求の発生中は、ステップS23−6の第2制動演算処理(図18の処理)によって、|↑Vb_aim1|とθvb_aim1とが決定されるので、基本要求重心速度ベクトル↑Vb_aim1、あるいはこれに追従する要求重心速度ベクトル↑Vb_aimは、その向きを一定に保ったまま、大きさが一定の時間的変化率(前記所定値ΔVb2により規定される時間的変化率)で減衰していくように決定されることとなる。
【0391】
次に、速度追従モードにおいて、車両1への推進力の付加が終了し、推定重心速度絶対値変化率DVb_sが前記第2閾値DV2よりも小さくなると(図19のステップS24−3の判断結果が肯定的になると)、図19のステップS24−5の処理によって、演算処理モードが速度追従モードから速度ホールドモードに変更されることとなる。
【0392】
この速度ホールドモードでは、加速要求及び減速要求が発生しない状況(図19のステップS25−1、25−4の判断結果がいずれも否定的となる状況)で、カウントダウンタイマの計時が終了するまで、基本要求重心速度ベクトル↑Vb_aim1は、前回値の速度ベクトル↑Vb_aim1_pと同じ速度ベクトルに設定される。
【0393】
従って、速度ホールドモードの開始後、カウントダウンタイマの計時が終了するまでの所定時間(カウントダウンタイマの初期値Tmの時間)の期間において、基本要求重心速度ベクトル↑Vb_aim1は、速度ホールドモードが開始する直前に決定された速度ベクトルと同じ速度ベクトルで一定に保持されることとなる。
【0394】
このため、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、一定の速度ベクトル(速度ホールドモードが開始する直前に決定された↑Vb_aimと一致又はほぼ一致する速度ベクトル)に保たれるように決定されることとなる。
【0395】
そして、上記の如く決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0396】
この結果、車両1の増速後に、カウントダウンタイマの計時が終了するまでの期間(前記初期値Tmにより表される時間の期間)において、乗員の上体の姿勢の頻繁な調整を必要とすることなく、車両系重心点の実際の速度ベクトル↑Vbの大きさ及び向きが一定に保たれるように該車輪体5の移動速度が制御されることとなる。従って、この状況での車両1の実際の走行状態は、乗員がその上体を積極的に動かすような操縦操作をせずとも、ほぼ一定の速度ベクトルで滑走するような状態となる。
【0397】
なお、速度ホールドモードにおいて、再び車両1に概略前後方向の推進力を付加することによって、図20のステップS25−4の判断結果が肯定的になると(加速要求が発生すると)、演算処理モードが前記速度追従モードに戻る。このため、車両1が再び概略前後方向で加速することとなる。
【0398】
また、速度ホールドモードにおいて、車両1に制動力を付加することによって、図20のステップS25−1の判断結果が肯定的になると(減速要求が発生すると)、演算処理モードが前記制動モードに変化する。このため、車両1の移動速度が減衰していくこととなる。この場合、速度追従モードで減速要求が発生した場合と同様に、減速要求の発生中は、ステップS23−6の第2制動演算処理(図18の処理)によって、|↑Vb_aim1|とθvb_aim1とが決定される
【0399】
次に、速度ホールドモードにおいて、加速要求及び減速要求が発生しない状況(図20のステップS25−1,25−4の判断結果がいずれも否定的となる状況)が保たれたまま、前記カウントダウンタイマの計時が終了すると、図20のステップS25−11の処理によって、演算処理モードが速度ホールドモードから制動モードに変更されることとなる。
【0400】
この制動モードでは、加速要求及び減速要求が発生しない状況(図15のステップS23−1,23−4の判断結果がいずれも否定的となる状況)で、図16のステップS23−5−1,23−5−2の処理が制御処理周期毎に実行されることによって、基本要求重心速度ベクトル絶対値|↑Vb_aim1|が、“0”まで一定の時間的変化率(前記ΔVb1により規定される時間的変化率)で連続的に減衰していくこととなる。そして、|↑Vb_aim1|が“0”まで減衰した後には、|↑Vb_aim1|が“0”に保持される。
【0401】
さらに、制動モードでは、加速要求及び減速要求が発生しない状況で、図16のステップS23−5−3以降の処理が制御処理周期毎に実行される。この場合、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向き(図20のステップS25−8の判断結果が否定的となる制御処理周期の1つ前の制御処理周期で決定された↑Vb_aim1の向き)が、X軸方向と異なり、且つ、比較的X軸方向に近い向きである場合(より正確には、移行直前に決定された↑Vb_aim1の方位角θvb_aim1が、0°<θvb_aim1_p≦θth1+、θth1-≦θvb_aim1_p<0°、θth2+≦θvb_aim1_p<180°、−180°<θvb_aim1_p≦θth2-のいずれかの範囲内の角度値である場合)には、|↑Vb_aim1|が“0”に減衰するまでの期間内において、θvb_aim1が一定の時間的変化率で収束目標角度値としての0°又は180°又は−180°に近づいていき、最終的に、該収束目標角度値に保持される。従って、制動モードの開始後、|↑Vb_aim1|が“0”に減衰するまでの期間内において、基本要求重心速度ベクトル↑Vb_aimの向きが、連続的にX軸方向に近づいていくこととなる。換言すれば、当該期間内において、基本要求重心速度ベクトル↑Vb_aimのX軸方向成分Vb_x_aim1の絶対値に対するY軸方向成分Vb_y_aim1の絶対値の比率が、“0”に近づいていくこととなる。そして、|↑Vb_aim1|が“0”に減衰するまでに、↑Vb_aim1の向きがX軸方向と同じ向きに到達すると(Vb_y_aim1=0になると)、↑Vb_aim1の向きがX軸方向と同じ向きに保持される。
【0402】
従って、↑Vb_aim1は、その大きさが減衰しつつ、その向きがX軸方向に近づく(収束する)ように決定される。このように↑Vb_aim1が決定される状況では、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、その大きさが減衰しつつ、その向きがX軸方向に近づくように決定されることとなる。
【0403】
また、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1の向きが、X軸方向と異なり、且つ、X軸方向から比較的乖離した向きである場合(より正確には、上記移行直前に決定された↑Vb_aim1の方位角θvb_aim1が、θth1+<θvb_aim1_p<θth2+、θth2-<θvb_aim1_p<θth1-のいずれかの範囲内の角度値である場合)には、|↑Vb_aim1|が“0”に減衰するまでの期間内において、θvb_aim1が、上記移行直前に決定された↑Vb_aim1の方位角θvb_aim1と同じ角度値で一定に保持される。
【0404】
従って、↑Vb_aim1は、その大きさが減衰しつつ、その向きが一定に保たれるように決定される。このように↑Vb_aim1が決定される状況では、↑Vb_aim1に追従するように決定される要求重心速度ベクトル↑Vb_aimも、その大きさが減衰しつつ、その向きが一定に保たれるように決定されることとなる。
【0405】
なお、本実施形態では、速度ホールドモードでは、↑Vb_aim1は、その大きさ及び向きが一定に保持されるので、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1は、結果的には、速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1(本実施形態では、図19のステップS24−3の判断結果が肯定的となる制御処理周期で決定された↑Vb_aim1)に一致する。
【0406】
そして、制動モードで上記の如く決定される要求重心速度ベクトル↑Vb_aimのX軸方向成分とY軸方向成分とが前記制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdとして決定される。さらに、各仮想車輪回転角加速度指令ωdotw_x_cmd,ωdotw_y_cmdにそれぞれ含まれる操作量成分u3_x,u3_yは、制御用目標重心速度Vb_x_mdfd,Vb_y_mdfdに重心速度推定値Vb_x_s,Vb_y_sを各々収束させるように決定される。
【0407】
この結果、前記制動モードの前の演算処理モードが速度ホールドモードである場合に、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の実際の速度ベクルの大きさが速度ホールドモードでの大きさから連続的に減衰していくように車輪体5の移動速度が制御されることとなる。
【0408】
この場合、速度ホールドモードから制動モードへの移行直前に決定された↑Vb_aim1(=速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1)の向きが、X軸方向と異なり、且つ、比較的X軸方向に近い向きである場合には、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の速度ベクトルの大きさが減衰しながら、該速度ベクトルの向きが自動的にX軸方向(乗員の前後方向)に近づいていくこととなる。従って、乗員の前後方向に対する車両1の直進性が高まる。
【0409】
ここで、車両1を加速しようとする場合、多くの場合、特に乗員の前後方向で車両1を加速することが要求される。この場合、本実施形態の車両1は、上記の如く前後方向に対する直進性が高いので、車両1に付加する推進力の向きが、前後方向から多少ずれていても、その後の速度ホールドモードに続く制動モードにおいて、自動的に車両系重心点の速度ベクトルが、前後方向に向くように車輪体5の移動速度が制御される。
【0410】
このため、車両1の移動方向のばらつきが生じにくく、乗員の前後方向に対して高い直進性を有する車両1(乗員の前後方向に進み易い車両1)が実現されている。ひいては、車両1を前後方向に移動させる場合に、車両1に付加する推進力を正確に前後方向に向けずとも、該車両1を前後方向に移動させることができる。その結果、車両1を前後方向に移動させる操縦操作が容易になる。
【0411】
また、速度ホールドモードから制動モードへの移行直前に決定された基本要求重心速度ベクトル↑Vb_aim1(=速度追従モードから速度ホールドモードへの移行直前に決定された↑Vb_aim1)の向きが、X軸方向と異なり、且つ、X軸方向から比較的乖離した向きである場合には、乗員がその上体の動きによる積極的な操縦操作を行なわずとも、車両系重心点の速度ベクトルの大きさが減衰しながら、該速度ベクトルの向きがほぼ一定に保たれる。すなわち、速度ホールドモードから制動モードへの移行直前に決定された↑Vb_aim1の向きが、X軸方向から比較的乖離した向きである場合には、速度追従モードで最終的に乗員が意図した車両系重心の速度ベクトルの向きが、X軸方向と異なる向きである可能性が高い。従って、速度追従モード以後に、車両系重心点が、乗員が意図する方向と乖離する向きに移動しようとするのを防止できる。
【0412】
行動範囲制限システム200は、特定機202Mの行動範囲制限処理部220Mによって、複数の子機202Sに対して、あらかじめ設定された制限領域を逸脱しているか否かを判断し、子機202Sが制限領域を逸脱した場合は、特定202Mからの指令によって、子機202Sを制限領域302内に帰還させることによって、監督者は、複数の監督者の行動範囲を容易かつ効率的に監視することができる。
【0413】
子機202Sの行動範囲制限処理部220Sは、特定機202Mの行動範囲制限処理部220Mにより指令に従って、目標帰還位置に移動するように、駆動制御部228Sにより移動動作部5を制御することによって、子機202Sに搭乗する被監督者を制限領域302内に被監督者を帰還させることができる。
【0414】
ステップS206における処理において、子機202Sの進行速度が所定の速度以上であった場合、駆動制御部228Sによる移動動作部5の制御に先立って、該子機の乗員に対して減速するよう警告することによって、位置制御モードにおける移動動作部5の制御による被監督者の心理的及び身体的負担を緩和するとともに、安全性を向上させることができる。
【符号の説明】
【0415】
5 移動動作部(被駆動機構)
7 アクチュエータ装置(駆動部)
9 基体(基体)
50 制御ユニット(進行速度取得部)
200 行動範囲制限システム
202M 特定機
202S 子機
206 位置測定装置
212M,212S 受信装置(受信部)
214M 送信装置(送信部)
216M,216S 位置情報取得部(位置情報取得部)
220M,220S 行動範囲制限処理部(第1領域設定部、第1領域判断部、子機制御部、距離算出部、速度判断部、第2領域設定部、第2領域判断部)
224M,224S 報知装置(警告部)
228M,222S 駆動制御部(駆動制御部)
302 制限領域(第1領域)
304 許可領域(第2領域)
【特許請求の範囲】
【請求項1】
1つ以上の子機と、前記子機の位置を制御する特定機と、前記子機及び特定機の位置情報を供給する位置測定装置とからなる行動範囲制限システムであって、
前記子機は、
情報を受信する受信部を備え、
前記特定機は、
情報を受信する受信部と、
情報を送信する送信部と、
該特定機の位置に対する前記子機の行動範囲を制限する第1領域を設定する第1領域設定部と、
前記特定機の受信部を介して、前記位置測定装置から前記特定機及び子機の現在位置情報を取得する位置取得部と、
前記特定機及び子機の現在位置情報に基づいて、前記子機の位置が前記第1領域を逸脱したか否かを判断する第1領域判断部と、
前記第1領域判断部により前記子機が前記第1領域を逸脱したと判断された場合、前記特定機の送信部と、前記子機の受信部とを介して、前記子機が第1領域内の所定の位置に移動するように制御する子機制御部と
を備えることを特徴とする行動範囲制限システム。
【請求項2】
前記特定機は、
前記位置取得部によって取得された前記特定機及び子機の現在位置情報に基づいて、該特定機と前記子機との間の距離を算出する距離算出部をさらに備え、
前記第1領域判断部は、
前記距離算出部の算出結果に基づいて、前記子機の位置が前記第1領域を逸脱したか否かを判断することを特徴とする請求項1に記載の行動範囲制限システム。
【請求項3】
前記子機制御部は、
前記第1領域判断部により前記子機が前記第1領域を逸脱したと判断された場合、前記特定機の送信部を介して、帰還指令及び目標帰還位置情報を前記子機に送信し、
前記子機は、
走行面を移動可能な被駆動機構と、
前記被駆動機構を駆動する駆動力を発生さえる駆動部と、
前記被駆動機構および前記駆動部が組み付けられた基体と、
前記子機の受信部を介して、前記位置測定装置から該子機の現在位置情報を取得する位置取得部と、
前記特定機から前記帰還指令及び目標帰還位置情報を受信した場合に、前記子機の現在位置情報と目標帰還位置情報とに基づいて、前記子機が前記第1領域内の目標帰還位置に移動するように、前記駆動部を制御する駆動制御部と
を備えることを特徴とする請求項1または2に記載の行動範囲制限システム。
【請求項4】
前記駆動制御部は、
前記目標帰還位置に対する前記現在位置の偏差と、前記偏差の時間的変化率とに基づいて、前記子機の所定の代表点における目標速度を逐次決定し、前記目標速度に応じて前記駆動部を制御することを特徴とする請求項3に記載の行動範囲制限システム。
【請求項5】
前記子機は、
搭乗可能でかつ該子機の乗員によって運転可能な移動体であることを特徴とする請求項4に記載の行動範囲制限システム。
【請求項6】
前記子機は、
前記代表点における進行速度を取得する進行速度取得部と、
前記進行速度が所定の速度以上であるか否かを判断する進行速度判断部と、
前記進行速度判断部により前記進行速度が所定の速度以上であると判断された場合、前記駆動制御部による前記駆動部の制御に先立って、該子機の乗員に対して減速するよう少なくとも1度警告する警告部と
をさらに備えることを特徴とする請求項5に記載の行動範囲制限システム。
【請求項7】
前記特定機は、
前記第1領域内に第2領域を設定する第2領域設定部と、
前記特定機及び子機の現在位置情報に基づいて、前記子機の位置が前記第2領域を逸脱したか否かを判断する第2領域判断部と、
を備え、
前記特定機は、
前記第2領域判断部により前記子機が前記第2領域を逸脱したと判定された場合、前記子機の警告部が該子機の乗員に対して前記第1領域を逸脱しないよう警告するように、前記特定機の送信部を介して、前記第2領域判断部の判断結果を前記子機に送信することを特徴とする請求項6に記載の行動範囲制限システム。
【請求項8】
前記子機は、
全方向移動移動体であることを特徴とする請求項1〜7のいずれか1項に記載の行動範囲制限システム。
【請求項9】
前記子機は、
倒立振子制御型の移動体であることを特徴とする請求項1〜8のいずれか1項に記載の行動範囲制限システム。
【請求項10】
前記駆動制御部は、
前記被駆動機構の進行速度が、前記代表点の進行速度よりも大きくなるように、前記を制御することによって、前記子機及び乗員の全体の重心が前記被駆動機構の接地面のほぼ真上に位置する状態にした後、次いで、前記子機を前記目標帰還位置まで移動させ、目標帰還位置で停止するように、前記駆動部を制御することを特徴とする請求項8に記載の行動範囲制限システム。
【請求項11】
前記特定機は、
該特定機の使用者によって搭乗可能でかつ運転可能な移動体であることを特徴とする請求項1〜10のいずれか1項に記載の行動範囲制限システム。
【請求項12】
前記特定機は、全方向移動移動体であることを特徴とする請求項11に記載の行動範囲制限システム。
【請求項13】
前記特定機は、倒立振子制御型の移動体であることを特徴とする請求項11または12に記載の行動範囲制限システム。
【請求項14】
前記位置測定装置は、GPS装置又は車車間通信装置であることを特徴とする請求項1〜13のいずれか1項に記載の行動範囲制限システム。
【請求項1】
1つ以上の子機と、前記子機の位置を制御する特定機と、前記子機及び特定機の位置情報を供給する位置測定装置とからなる行動範囲制限システムであって、
前記子機は、
情報を受信する受信部を備え、
前記特定機は、
情報を受信する受信部と、
情報を送信する送信部と、
該特定機の位置に対する前記子機の行動範囲を制限する第1領域を設定する第1領域設定部と、
前記特定機の受信部を介して、前記位置測定装置から前記特定機及び子機の現在位置情報を取得する位置取得部と、
前記特定機及び子機の現在位置情報に基づいて、前記子機の位置が前記第1領域を逸脱したか否かを判断する第1領域判断部と、
前記第1領域判断部により前記子機が前記第1領域を逸脱したと判断された場合、前記特定機の送信部と、前記子機の受信部とを介して、前記子機が第1領域内の所定の位置に移動するように制御する子機制御部と
を備えることを特徴とする行動範囲制限システム。
【請求項2】
前記特定機は、
前記位置取得部によって取得された前記特定機及び子機の現在位置情報に基づいて、該特定機と前記子機との間の距離を算出する距離算出部をさらに備え、
前記第1領域判断部は、
前記距離算出部の算出結果に基づいて、前記子機の位置が前記第1領域を逸脱したか否かを判断することを特徴とする請求項1に記載の行動範囲制限システム。
【請求項3】
前記子機制御部は、
前記第1領域判断部により前記子機が前記第1領域を逸脱したと判断された場合、前記特定機の送信部を介して、帰還指令及び目標帰還位置情報を前記子機に送信し、
前記子機は、
走行面を移動可能な被駆動機構と、
前記被駆動機構を駆動する駆動力を発生さえる駆動部と、
前記被駆動機構および前記駆動部が組み付けられた基体と、
前記子機の受信部を介して、前記位置測定装置から該子機の現在位置情報を取得する位置取得部と、
前記特定機から前記帰還指令及び目標帰還位置情報を受信した場合に、前記子機の現在位置情報と目標帰還位置情報とに基づいて、前記子機が前記第1領域内の目標帰還位置に移動するように、前記駆動部を制御する駆動制御部と
を備えることを特徴とする請求項1または2に記載の行動範囲制限システム。
【請求項4】
前記駆動制御部は、
前記目標帰還位置に対する前記現在位置の偏差と、前記偏差の時間的変化率とに基づいて、前記子機の所定の代表点における目標速度を逐次決定し、前記目標速度に応じて前記駆動部を制御することを特徴とする請求項3に記載の行動範囲制限システム。
【請求項5】
前記子機は、
搭乗可能でかつ該子機の乗員によって運転可能な移動体であることを特徴とする請求項4に記載の行動範囲制限システム。
【請求項6】
前記子機は、
前記代表点における進行速度を取得する進行速度取得部と、
前記進行速度が所定の速度以上であるか否かを判断する進行速度判断部と、
前記進行速度判断部により前記進行速度が所定の速度以上であると判断された場合、前記駆動制御部による前記駆動部の制御に先立って、該子機の乗員に対して減速するよう少なくとも1度警告する警告部と
をさらに備えることを特徴とする請求項5に記載の行動範囲制限システム。
【請求項7】
前記特定機は、
前記第1領域内に第2領域を設定する第2領域設定部と、
前記特定機及び子機の現在位置情報に基づいて、前記子機の位置が前記第2領域を逸脱したか否かを判断する第2領域判断部と、
を備え、
前記特定機は、
前記第2領域判断部により前記子機が前記第2領域を逸脱したと判定された場合、前記子機の警告部が該子機の乗員に対して前記第1領域を逸脱しないよう警告するように、前記特定機の送信部を介して、前記第2領域判断部の判断結果を前記子機に送信することを特徴とする請求項6に記載の行動範囲制限システム。
【請求項8】
前記子機は、
全方向移動移動体であることを特徴とする請求項1〜7のいずれか1項に記載の行動範囲制限システム。
【請求項9】
前記子機は、
倒立振子制御型の移動体であることを特徴とする請求項1〜8のいずれか1項に記載の行動範囲制限システム。
【請求項10】
前記駆動制御部は、
前記被駆動機構の進行速度が、前記代表点の進行速度よりも大きくなるように、前記を制御することによって、前記子機及び乗員の全体の重心が前記被駆動機構の接地面のほぼ真上に位置する状態にした後、次いで、前記子機を前記目標帰還位置まで移動させ、目標帰還位置で停止するように、前記駆動部を制御することを特徴とする請求項8に記載の行動範囲制限システム。
【請求項11】
前記特定機は、
該特定機の使用者によって搭乗可能でかつ運転可能な移動体であることを特徴とする請求項1〜10のいずれか1項に記載の行動範囲制限システム。
【請求項12】
前記特定機は、全方向移動移動体であることを特徴とする請求項11に記載の行動範囲制限システム。
【請求項13】
前記特定機は、倒立振子制御型の移動体であることを特徴とする請求項11または12に記載の行動範囲制限システム。
【請求項14】
前記位置測定装置は、GPS装置又は車車間通信装置であることを特徴とする請求項1〜13のいずれか1項に記載の行動範囲制限システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2011−65609(P2011−65609A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−218164(P2009−218164)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】
[ Back to top ]