(57)【特許請求の範囲】
【請求項１】
負荷体の傾斜角度である負荷角度を検出する負荷角度検出手段と、
車輪を駆動する駆動手段と、
前記負荷体の倒立状態を維持するように前記駆動手段の駆動を制御する制御手段と、を備える倒立型移動体であって、
前記制御手段が前記駆動手段に対して出力する制御信号と、前記負荷角度検出手段により検出された前記負荷角度とに基づいて、前記車輪と路面との間の滑り量を時間で微分した微分値を演算する滑り演算手段と、
前記滑り演算手段により演算された微分値に基づいて、所定時間後において、前記負荷体の倒立状態の維持が不能となる前記負荷角度の限界値を演算する負荷角度演算手段と、を備え、
前記制御手段は、前記負荷角度演算手段により演算された前記負荷角度の限界値に基づいて、前記駆動手段の駆動を制御する、ことを特徴とする倒立型移動体。
【請求項２】
請求項１記載の倒立型移動体であって、
前記負荷角度演算手段は、
前記滑り演算手段により演算された微分値に基づいて、前記駆動手段により出力可能な限界トルクを用いて所定ステップの制御周期で到達できる前記負荷角度の限界値を演算する限界負荷角度演算手段と、
前記限界負荷角度演算手段により演算された前記負荷角度の限界値に基づいて、前記所定時間後において負荷体の倒立状態の維持が不能となる前記負荷角度の限界値を予測する限界負荷角度予測手段と、を有する、ことを特徴とする倒立型移動体。
【請求項３】
請求項２記載の倒立型移動体であって、
前記限界負荷角度予測手段は、前記限界負荷角度演算手段により演算された現在の前記負荷角度の限界値と、現在よりも所定ステップ過去の制御周期における前記負荷角度の限界値と、に基づいて、前記所定時間後における負荷角度の限界値を予測する、ことを特徴とする倒立型移動体。
【請求項４】
請求項３記載の倒立型移動体であって、
前記限界負荷角度演算手段は、前記所定ステップの制御周期で到達できる負荷角度の限界値θ１ｌｉｍ（ｋ＋１）を、下記式を用いて演算する、ことを特徴とする倒立型移動体。
【数２３】
0005652043.tif 000024
但し、上記式において、ｋは正の整数、Ｔｍは前記駆動手段の出力トルク、Ｔｍｌｉｍは前記駆動手段により出力可能な限界トルク、θ１は前記負荷角度であり、γ０、γ１、及びγ２は、下記式により表わされる。
【数２４】
0005652043.tif 000025
但し、上記式において、Ｔは制御周期であり、ｓ２は前記滑り量であり、β１、β２、β３及びβ４は下記式より表わされる。
【数２５】
0005652043.tif 000026
但し、上記式において、ｍ１は前記負荷体の質量であり、Ｊ２は前記車輪の慣性モーメントであり、ｍ２は前記車輪の質量であり、ｌは前記負荷体の重心位置と前記車輪との間の距離である。
【請求項５】
請求項２乃至４のうちいずれか１項記載の倒立型移動体であって、
前記限界負荷角度予測手段は、前記所定時間後における負荷角度の限界値を、外挿法を用いて予測する、ことを特徴とする倒立型移動体。
【請求項６】
請求項２乃至５のうちいずれか１項記載の倒立型移動体であって、
前記限界負荷角度予測手段は、前記所定時間後における負荷角度の限界値θ１ｌｉｍ（ｋ＋ｍ）を、下記式を用いて予測する、ことを特徴とする倒立型移動体。
【数２６】
0005652043.tif 000027
但し、上記式において、ｋおよびｍは任意の正の整数とする。
【請求項７】
請求項１乃至６のうちいずれか１項記載の倒立型移動体であって、
前記負荷角度演算手段により演算された前記所定時間後における負荷角度の限界値が０となる場合に、該負荷角度の限界値の符号が現在の前記負荷角度の符号と逆になるまで、トルク指令を前記負荷角度と同一の符号方向へ変化させるように調整するトルク指令調整手段を更に備え、
前記制御手段は、前記トルク指令調整手段により調整された前記トルク指令に基づいて、前記駆動手段の駆動を制御する、ことを特徴とする倒立型移動体。
【請求項８】
請求項７記載の倒立型移動体であって、
前記トルク指令調整手段は、
予め設定された時間経過後に、前記負荷角度演算手段により演算された前記負荷角度の限界値の符号が現在の前記負荷角度の符号と逆の場合に、現在の前記トルク指令を維持するように調整し、
前記予め設定された時間経過しても、前記負荷角度演算手段により演算された前記負荷角度の限界値の符号が現在の前記負荷角度の符号の逆にならない場合に、当該倒立型移動体を停止させるように前記トルク指令を調整する、
ことを特徴とする倒立型移動体。
【請求項９】
請求項１乃至８のうちいずれか１項記載の倒立型移動体であって、
前記滑り演算手段は、前記車輪と路面との間の滑り量の２階時間微分値を演算する、ことを特徴する倒立型移動体。
【請求項１０】
負荷体の傾斜角度である負荷角度を検出する工程と、
前記負荷体の倒立状態を維持するように、車輪を駆動する駆動手段の制御を行う工程と、を含む倒立型移動体の制御方法であって、
前記駆動手段に対して出力される制御信号と、前記検出された負荷角度とに基づいて、前記車輪と路面との間の滑り量を時間で微分した微分値を演算する工程と、
前記演算された微分値に基づいて、所定時間後において、前記負荷体の倒立状態の維持が不能となる前記負荷角度の限界値を演算する工程と、
前記演算された前記負荷角度の限界値に基づいて、前記駆動手段の駆動を制御する工程と、を含む、ことを特徴とする倒立型移動体の制御方法。
【請求項１１】
車輪を駆動する駆動手段に対して出力される制御信号と、負荷体の傾斜角度である負荷角度と、に基づいて、前記車輪と路面との間の滑り量を時間で微分した微分値を演算する処理と、
前記演算された微分値に基づいて、所定時間後において、前記負荷体の倒立状態の維持が不能となる前記負荷角度の限界値を演算する処理と、
前記演算された負荷角度の限界値に基づいて、前記負荷体の倒立状態を維持するように、前記駆動手段の駆動を制御する処理と、をコンピュータに実行させる、ことを特徴とする倒立型移動体の制御プログラム。
【請求項１２】
請求項１１記載の倒立型移動体の制御プログラムを格納した、ことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、倒立状態を維持して走行する倒立型移動体、その制御方法及び制御プログラムに関するものである。
【背景技術】
【０００２】
近年、倒立状態を維持して走行する倒立型移動体の開発が行われており、その走行時の安定性の向上が行われている。しかしながら、路面摩擦係数の低い滑り易い路面等を走行する場合には、その倒立状態を維持すると言う特性上、より高い安定性及び安全性が求められており、その開発が行われている（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３１８９４１号公報
【特許文献２】特開２０１０−０８２７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記倒立型移動体が、例えば、駆動車輪と路面の間の摩擦力が小さい値で変化する滑り易い路面上を走行する場合には、ある程度未来の状態を予測して制御を行わないと、安定的に倒立状態を維持することが困難となる可能性がある。
本発明は、このような問題点に鑑みてなされたものであり、安定的に倒立状態を維持できる倒立型移動体、その制御方法及び制御プログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するための本発明の一態様は、負荷体の傾斜角度である負荷角度を検出する負荷角度検出手段と、車輪を駆動する駆動手段と、前記負荷体の倒立状態を維持するように前記駆動手段の駆動を制御する制御手段と、を備える倒立型移動体であって、前記制御手段が前記駆動手段に対して出力する制御信号と、前記負荷角度検出手段により検出された前記負荷角度とに基づいて、前記車輪と路面との間の滑り量を時間で微分した微分値を演算する滑り演算手段と、前記滑り演算手段により演算された微分値に基づいて、所定時間後において、前記負荷体の倒立状態の維持が不能となる前記負荷角度の限界値を演算する負荷角度演算手段と、を備え、前記制御手段は、前記負荷角度演算手段により演算された前記負荷角度の限界値に基づいて、前記駆動手段の駆動を制御する、ことを特徴とする倒立型移動体である。
【０００６】
また、上記目的を達成するための本発明の一態様は、負荷体の傾斜角度である負荷角度を検出する工程と、前記負荷体の倒立状態を維持するように、車輪を駆動する駆動手段の制御を行う工程と、を含む倒立型移動体の制御方法であって、前記駆動手段に対して出力される制御信号と、前記検出された負荷角度とに基づいて、前記車輪と路面との間の滑り量を時間で微分した微分値を演算する工程と、前記演算された微分値に基づいて、所定時間後において、前記負荷体の倒立状態の維持が不能となる前記負荷角度の限界値を演算する工程と、前記演算された前記負荷角度の限界値に基づいて、前記駆動手段の駆動を制御する工程と、を含む、ことを特徴とする倒立型移動体の制御方法であってもよい。
【０００７】
さらに、上記目的を達成するための本発明の一態様は、車輪を駆動する駆動手段に対して出力される制御信号と、負荷体の傾斜角度である負荷角度と、に基づいて、前記車輪と路面との間の滑り量を時間で微分した微分値を演算する処理と、前記演算された微分値に基づいて、所定時間後において、前記負荷体の倒立状態の維持が不能となる前記負荷角度の限界値を演算する処理と、前記演算された負荷角度の限界値に基づいて、前記負荷体の倒立状態を維持するように、前記駆動手段の駆動を制御する処理と、をコンピュータに実行させる、ことを特徴とする倒立型移動体の制御プログラムであってもよい。
【発明の効果】
【０００８】
本発明によれば、安定的に倒立状態を維持できる倒立型移動体、その制御方法及び制御プログラムを提供できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る倒立型移動体の移動体制御装置の概略的なシステム構成を示すブロック図である。
【図２】本発明の実施の形態に係る倒立型移動体の制御処理フローの一例を示すフローチャートである。
【図３】本発明の実施の形態に係る倒立型移動体をモデル化したモデル図である。
【図４】本発明の実施の形態に係る倒立型移動体のシミュレーションにおける負荷角度を示す図である。
【図５】本発明の実施の形態に係る倒立型移動体のシミュレーションにおける滑り量の２階時間微分値を示す図である。
【図６】本発明の実施の形態に係る倒立型移動体のシミュレーションにおける未来限界負荷角度予測値を示す図である。
【図７】本発明の実施の形態に係る倒立型移動体のシミュレーションにおけるモータトルクを示す図である。
【図８】本発明の実施の形態に係る倒立型移動体の概略的な構成を示す斜視図である。
【図９】本発明の実施の形態に係る倒立型移動体の概略的なシステム構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態について説明する。図８は、本発明の実施の形態に係る倒立型移動体の概略的な構成を示す斜視図である。また、図９は、本実施の形態に係る倒立型移動体の概略的なシステム構成を示すブロック図である。
【００１１】
本実施の形態に係る倒立型移動体１は、倒立状態を維持しつつ、所望の走行を行うものである。倒立型移動体１は、搭乗者が乗車する車両本体８０１と、車両本体８０１に回動可能に設けられた左右一対の駆動車輪８０２と、各駆動車輪８０２を回転駆動する一対の車輪駆動ユニット９０１と、各車輪駆動ユニット９０１を制御する移動体制御装置１００と、車両本体８０１に操作可能に設けられた操作ハンドル８０３と、を備えている。
【００１２】
操作ハンドル８０３は、これを前後方向に傾けることによって、倒立型移動体１の前進又は後退操作が実行され、ロール方向（左右方向）へ傾けることによって、倒立型移動体１の左旋回又は右旋回操作が実行される操作部である。ここで、ロール軸とは、車両本体８０１の中心を通り、倒立型移動体１の走行方向と平行をなす軸である。
【００１３】
一対の駆動車輪８０２は、車両本体８０１の走行方向と直交する方向の両側において同軸上に配置されると共に、当該車両本体８０１に回転自在に支持されている。なお、本実施の形態において、車両本体８０１に一対の駆動車輪８０２が設けられる構成であるが、これに限らず、１つ或いは３つ以上の駆動車輪８０２が設けられる構成であってもよい。
【００１４】
車両本体８０１の両側には、一対の車輪駆動ユニット９０１が夫々取り付けられている。各車輪駆動ユニット９０１は、駆動手段の一具体例であり、各駆動車輪８０２を独立して回転駆動することができる。各車輪駆動ユニット９０１は、例えば、車輪駆動モータ９０１ａと、その車輪駆動モータ９０１ａの回転軸に動力伝達可能に連結された減速ギア９０１ｂと、から構成することができる。
【００１５】
車両本体８０１には、操作ハンドル８０３の操作情報（操作量、操作方向など）を検出するための指令入力器１０６が取り付けられている。指令入力器１０６としては、例えば、ポテンショメータやバリコン構造のセンサ等を適用することができる。なお、指令入力器１０６は、操作ハンドル８０３或いは車両本体８０１に設けられ、搭乗者が操作可能な操作スイッチなどの操作部により構成されてもよい。
【００１６】
指令入力器１０６は移動体制御装置１００に接続されており、検出した操作ハンドル８０３の操作情報を負荷角度指令として、移動体制御装置１００に対して出力する。ここで、負荷体は、例えば、車両本体８０１、操作ハンドル８０３、及び搭乗者を一体として含むものである。さらに、負荷角度とは、例えば、負荷体と、駆動車輪８０２の車軸を通る鉛直線と、が成す角度である。
【００１７】
車両本体８０１には、倒立型移動体１の走行時における傾斜角度、傾斜角速度、傾斜角加速度など姿勢情報を検出する負荷角度検出器１０７が設けられている。負荷角度検出器１０７は、負荷角度検出手段の一具体例であり、例えば、ジャイロセンサ、加速度センサなどから構成されている。
【００１８】
搭乗者が操作ハンドル８０３を前方、あるいは後方に傾けると、車両本体８０１、操作ハンドル８０３、及び搭乗者から成る負荷体が同方向に傾くことになるが、例えば、この負荷角度検出器１０７は、かかる負荷体の傾斜に対応した上述の負荷角度を検出する。負荷角度検出器１０７は移動体制御装置１００に接続されており、検出した負荷角度を、負荷角度検出値として移動体制御装置１００に対して出力する。
【００１９】
各駆動車輪８０２の車軸には、各駆動車輪８０２の回転情報（回転角度、回転速度、回転加速度等）を検出する一対の車輪センサ９０２が夫々設けられている。各車輪センサ９０２は移動体制御装置１００に接続されており、検出した回転情報を移動体制御装置１００に対して出力する。
【００２０】
車両本体８０１には、一対の車輪駆動ユニット９０１等を駆動する一対の駆動回路９０３が内蔵されている。
【００２１】
移動体制御装置１００は、車両本体８０１に搭載されており、主要なハードウェアとして、例えば、マイクロコンピュータ（ＣＰＵ：Central Processing Unit）を有する演算回路（ＡＳＩＣ：Application Specific Integrated Circuit）１００ａと、プログラムメモリ、データメモリ、その他のＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を有する記憶装置１００ｂと、を備えている。
【００２２】
移動体制御装置１００は、負荷角度検出器１０７からの負荷角度検出値、指令入力器１０６からの負荷角度指令、などに基づいて所定の演算処理を実行し、必要な制御信号を、各駆動回路９０３を介して各車輪駆動ユニット９０１に対して出力する。移動体制御装置１００は、各車輪駆動ユニット９０１に対して制御信号を送信することで、各駆動車輪８０２の駆動を制御し、倒立型移動体１に倒立状態を維持させつつ、所望の速度及び方向（例えば、前進、後進、右旋回、左旋回、加速、減速、停止）で走行させることができる。
【００２３】
バッテリー９０４は、移動体制御装置１００、及び各駆動回路９０３に夫々接続されており、これらに電力を供給する。なお、上述した倒立型移動体１の構成は一例であり、倒立状態を維持して走行する任意の車両構成が適用可能である。
【００２４】
図１は、本実施の形態に係る倒立型移動体の移動体制御装置の概略的なシステム構成を示すブロック図である。本実施の形態に係る移動体制御装置１００は、制御器１０１と、滑り演算器１０２と、限界負荷角度演算器１０３と、未来限界負荷角度予測器１０４と、トルク指令調整器１０５と、を有している。
【００２５】
制御器１０１は、制御手段の一具体例であり、指令入力器１０６からの負荷角度指令と、トルク指令調整器１０５からのトルク指令と、に基づいて、車輪駆動ユニット９０１の車輪駆動モータ９０１ａに対する制御信号であるモータ電流を、生成する。制御器１０１は、各駆動回路９０３を介して各車輪駆動ユニット９０１の車輪駆動モータ９０１ａに接続されており、生成したモータ電流を、各駆動回路９０３を介して各車輪駆動モータ９０１ａに対して出力する。
【００２６】
滑り演算器１０２は、滑り演算手段の一具体例であり、制御器１０１から出力されるモータ電流（制御信号）と、負荷角度検出器１０７からの負荷角度検出値と、に基づいて、後述する各駆動車輪８０２と路面との間の滑り２階時間微分値を演算する。滑り演算器１０２は、限界負荷角度演算器１０３に接続されており、演算した滑り２階時間微分値を限界負荷角度演算器１０３に対して出力する。
【００２７】
限界負荷角度演算器１０３は、限界負荷角度演算手段の一具体例であり、滑り演算器１０２から出力された滑り２階時間微分値に基づいて、限界負荷角度演算値を演算する。ここで、限界負荷角度演算値とは、例えば、各車輪駆動ユニット９０１の車輪駆動モータ９０１ａが出力可能な限界モータトルクによって駆動可能な負荷角度の限界値である。限界負荷角度演算器１０３は、未来限界負荷角度予測器１０４に接続されており、演算した限界負荷角度演算値を未来限界負荷角度予測器１０４に対して出力する。
【００２８】
未来限界負荷角度予測器１０４は、限界負荷角度予測手段の一具体例であり、限界負荷角度演算器１０３から出力された限界負荷角度演算値に基づいて、予め設定された所定時間後の未来の時間における負荷角度の限界値を予測する。より具体的には、未来限界負荷角度予測器１０４は、限界負荷角度演算器１０３から出力された現在の限界負荷角度演算値と、現在よりも所定ステップ（例えば、１ステップ）過去の制御周期における限界負荷角度演算値と、に基づいて、所定時間後における負荷角度の限界値を、外挿法を用いて予測する。未来限界負荷角度予測器１０４は、トルク指令調整器１０５に接続されており、予測した負荷角度の限界値を、未来限界負荷角度予測値としてトルク指令調整器１０５に対して出力する。
【００２９】
トルク指令調整器１０５は、トルク指令調整手段の一具体例であり、未来限界負荷角度予測器１０４から出力された未来限界負荷角度予測値が０となる場合に、この未来限界負荷角度予測値の符号が現在の負荷角度の符号と逆になるまで、車輪駆動モータ９０１ａに対するトルク指令を負荷角度と同一の符号方向へ変化させるように調整する。
【００３０】
一方、トルク指令調整器１０５は、予め設定された時間経過後に、未来限界負荷角度予測器１０４から出力された未来限界負荷角度予測値の符号が現在の負荷角度の符号と逆となる場合に、現在のトルク指令値を維持するように調整する。これにより、倒立型移動体１は、安定的に倒立状態を維持することができる。
【００３１】
さらに、トルク指令調整器１０５は、予め設定された時間経過しても、未来限界負荷角度予測値の符号が現在の負荷角度の符号の逆とならない場合に、倒立型移動体１を安全に停止させるようにトルク指令を調整する。これにより、倒立型移動体１が倒立状態を安定的に維持できないとき停止させ、安全性を確保することができる。
【００３２】
トルク指令調整器１０５は、制御器１０１に接続されており、その調整結果、得られたトルク指令を制御器１０１に対して出力する。制御器１０１は、トルク指令調整器１０５から出力されたトルク指令に応じたモータ電流を、各駆動回路９０３を介して各車輪駆動モータ９０１ａに対して出力する。
【００３３】
次に、本実施の形態に係る移動体制御装置１００の具体的な処理について、以下詳細に説明する。まず、滑り演算器１０２が駆動車輪８０２と路面との間の滑り量ｓ２の２階時間微分値（滑り２階時間微分値）を演算する方法について、図１及び図３を用いて説明する。図３は、本発明の実施の形態に係る倒立型移動体をモデル化したモデル図である。図３に示す負荷体３０１は、図８に示す車両本体８０１、操作ハンドル８０３、及び搭乗者を一体にしたものに対応しており、図３に示す駆動車輪３０２は、図８に示す駆動車輪８０２に対応している。図３において、各記号は以下の様に設定されている。
【００３４】
θ１：負荷角度
Ｊ１：負荷体３０１の慣性モーメント
ｍ１：負荷体３０１の質量
θ２：駆動車輪３０２の回転角度
Ｊ２：駆動車輪３０２の慣性モーメント
ｍ２：駆動車輪３０２の質量
ｌ：負荷体３０１の重心位置Ｇと駆動車輪３０２との間の距離（負荷重心車輪間距離）
Ｔｍ：車輪駆動モータ９０１ａのトルク
ｘ１：負荷体３０１の水平位置
ｙ１：負荷体３０１の垂直位置
ｘ２：駆動車輪３０２の水平位置
ｓ２：駆動車輪３０２と路面との間の滑り量
【００３５】
ここで、負荷角度θ１とは、負荷体３０１を通る中心線が駆動車輪３０２の車軸を通る鉛直線と時計回り方向へ成す角度であり、負荷重心車輪間距離ｌとは、負荷体３０１の重心位置と駆動車輪３０２の車軸との間の距離であり、滑り量ｓ２とは、駆動車輪３０２が路面上を回転移動する際に、駆動車輪３０２の路面に対する滑り量である。なお、図３に示す各記号は矢印方向（紙面右方向）を正とする。
【００３６】
まず、図３に示す倒立型移動体１の運動方程式を導出する。運動エネルギーＫ、ポテンシャルエネルギーＶ、負荷体３０１の水平位置ｘ１、負荷体３０１の垂直位置ｙ１、および駆動車輪３０２の水平位置ｘ２は、下記（１）式乃至（５）式として表すことができる。
【００３７】
【数１】
0005652043.tif 000002
【数２】
0005652043.tif 000003
【数３】
0005652043.tif 000004
【数４】
0005652043.tif 000005
【数５】
0005652043.tif 000006
【００３８】
なお、上記（２）式において、ｇは重力加速度である。上記（３）式乃至（５）式を、上記（１）式及び（２）式に代入して、ラグランジアンＬ＝Ｋ−Ｖを算出する。このラグランジアンＬを下記オイラーラグランジ方程式（６）式乃至（８）式に代入すると、下記（９）式乃至（１１）式を得ることができる。
【数６】
0005652043.tif 000007
【００３９】
なお、上記（６）式において、ｄは車輪駆動モータ９０１ａのトルクに対する外乱である。
【数７】
0005652043.tif 000008
【数８】
0005652043.tif 000009
【数９】
0005652043.tif 000010
【数１０】
0005652043.tif 000011
【数１１】
0005652043.tif 000012
【００４０】
上述のように求めた（９）式乃至（１１）式が、倒立型移動体１の運動方程式となる。これら運動方程式を使って、後述の滑り２階時間微分値の演算式を導出する。以降、滑り２階時間微分値の演算式の導出において、下記（１２）式に示すパラメータを共通で使用するものとする。
【数１２】
0005652043.tif 000013
【００４１】
上記（９）式乃至（１２）式を用いて、下記（１３）式及び（１４）式を得ることができる。
【数１３】
0005652043.tif 000014
【数１４】
0005652043.tif 000015
【００４２】
上記（１３）式及び（１４）式を、滑り２階時間微分値（滑り量ｓ２の２階時間微分値）ｄ２（ｓ２）／ｄｔ２について解くと、下記（１５）式を得ることができる。
【数１５】
0005652043.tif 000016
【００４３】
滑り演算器１０２は、負荷角度検出器１０７から出力された負荷角度検出値θ１に基づいて、上記得られた（１５）式を用いて、滑り２階時間微分値を演算する。なお、上述の（１５）式の導出において、車輪駆動モータ９０１ａのトルクに対する外乱ｄを考慮している。このため、このトルクに対する外乱ｄの影響を受ける場合でも、上記（１５）式は成立し、滑り２階時間微分を正確に演算できる。滑り演算器１０２は、上記（１５）式を用いて、演算した滑り２階時間微分値を限界負荷角度演算器１０３に対して出力する。
【００４４】
次に、限界負荷角度演算器１０３は、滑り演算器１０２から出力された滑り２階時間微分値に基づいて、駆動車輪３０２の滑り量ｓ２が存在する時に、所定時間後のある未来の時間において倒立型移動体１が倒立状態を維持できなくなる限界負荷角度演算値を演算する。
【００４５】
ここで、負荷角度検出器１０７は、制御周期Ｔで負荷角度θ１を検出し、滑り演算器１０２に対して出力するものとする。現在の時間をｋステップとし、１制御周期Ｔ[ｓ]だけ未来の時間を（ｋ＋１）ステップとする。この場合、（ｋ＋１）ステップにおいて、上記（１３）式及び（１４）式を用いて、下記（１６）式の関係が成立する。
【数１６】
0005652043.tif 000017
【００４６】
上記（１６）式を、θ１（ｋ＋１）について解くと、下記（１７）式が得られる。
【数１７】
0005652043.tif 000018
【００４７】
なお、上記（１２）式に基づいて、α１の絶対値はα２の絶対値より大きいため、上記（１６）式において、Ｔｍ（ｋ＋１）の係数は負となる。また、同様に、上記（１６）式のγ２は正となるため、Ｔｍ（ｋ＋１）が増加するとγ０が減少し、上記（１６）式の平方根内の値が増加する。車輪駆動モータ９０１ａのトルクＴｍを増加させると、負荷角度θ１は減少するため、上記（１７）式の平方根前の符号を負としている。次に、上記（１７）式をＴｍ（ｋ＋１）で１階偏微分すると、下記（１８）式が得られる。
【数１８】
0005652043.tif 000019
【００４８】
上記（１２）式によれば、β４は正であり、α１の絶対値はα２の絶対値より大きいため、上記（１８）式の分子は負となる。また、この分子はＴｍ（ｋ＋１）の値に関わらず常に正であるため、下記（１９）式の関係が得られる。
【数１９】
0005652043.tif 000020
【００４９】
上記（１９）式に基づいて、θ１（ｋ＋１）はＴｍ（ｋ＋１）の変化に伴って単調変化することが分かる。ここで、車輪駆動モータ９０１ａが出力可能な限界のモータトルクを限界モータトルクＴｍｌｉｍとした場合において、この限界モータトルクＴｍｌｉｍにより１ステップで到達できる負荷角度の限界値である限界負荷角度演算値θ１ｌｉｍは、上記（１７）式を用いて、下記（２０）式のように導出できる。
【数２０】
0005652043.tif 000021
なお、上記限界負荷角度演算値は、１ステップで到達できる負荷角度の限界値としたが、これに限らず、例えば、２ステップ或いは３ステップなどの所定ステップで到達できる負荷角度の限界値としてもよい。
【００５０】
限界負荷角度演算器１０３は、上述のように得られた（２０）式を用いて、限界負荷角度演算値θ１ｌｉｍを演算する。限界負荷角度演算器１０３は、上記演算した限界負荷角度演算値θ１ｌｉｍを未来限界負荷角度予測器１０４に対して出力する。
【００５１】
ここで、例えば、路面の状況の変化により、駆動車輪３０２と路面との間の滑り量ｓ２が連続的に変化する場合、未来限界負荷角度予測器１０４は、限界負荷角度演算器１０３から出力された限界負荷角度演算値θ１ｌｉｍに基づいて、線形外挿法によりｍステップ未来の未来限界負荷角度予測値θ１ｌｉｍ（ｋ＋ｍ）を、下記（２１）式に基づいて予測する。
【数２１】
0005652043.tif 000022
【００５２】
なお、ｍは限界負荷角度θ１ｌｉｍの予測の範囲であり、正の整数として予め設定されるものとする。また、未来限界負荷角度予測器１０４は、上記（２１）式に示すように、線形外挿法を用いて限界負荷角度θ１ｌｉｍを予測しているが、これに限らず、例えば、２時間数的またはスプライン関数的に外挿法を用いて、限界負荷角度θ１ｌｉｍを予測してもよく、任意の外挿法を用いて限界負荷角度θ１ｌｉｍを予測することができる。未来限界負荷角度予測器１０４は、予測した未来限界負荷角度予測値θ１ｌｉｍ（ｋ＋ｍ）をトルク指令調整器１０５に対して出力する。
【００５３】
トルク指令調整器１０５は、未来限界負荷角度予測器１０４から出力された未来限界負荷角度予測値θ１ｌｉｍ（ｋ＋ｍ）が０になったとき、θ１ｌｉｍ（ｋ＋ｍ＋１）の符号が−ｓｇｎ（θ１（ｋ））になり負荷角度の符号の逆になるまで、車輪駆動モータ９０１ａのトルクＴｍ（ｋ＋２）を増加させる。
【００５４】
このように、駆動車輪３０２と路面との間の摩擦が連続的に減少し、滑り量ｓ２が増加する場合でも、限界モータトルクＴｍｌｉｍを超えて負荷角度θ１を０［ｒａｄ］に戻すことができなくなる前に、上述した車輪駆動モータ９０１ａの制御を行うことで、負荷角度θ１を連続的に０［ｒａｄ］に近づけることができる。したがって、倒立型移動体１の倒立状態を安定的に維持でき、駆動車輪３０２と路面との間の摩擦の減少に起因する転倒などを防止することができる。
【００５５】
次に、本実施の形態に係る倒立型移動体１の制御方法について詳細に説明する。図２は、本実施の形態に係る倒立型移動体の制御処理フローの一例を示すフローチャートである。なお、図２に示す制御処理は、所定時間毎に繰り返し実行される。
【００５６】
例えば、倒立状態を維持して走行する倒立型移動体１の搭乗者が、操作ハンドル８０３を前後方向或いは左右方向へ操作すると、指令入力器１０６は、その操作ハンドル８０３操作に応じた操作情報を検出し、検出した操作情報を負荷角度指令として、移動体制御装置１００の制御器１０１に対して出力する（ステップＳ２０１）。
【００５７】
一方、負荷角度検出器１０７は、車両本体８０１、操作ハンドル８０３、及び搭乗者から成る負荷体３０１の傾斜に対応した負荷角度を検出し、検出した負荷角度を負荷角度検出値θ１として移動体制御装置１００の滑り演算器１０１に対して出力する（ステップＳ２０２）。
【００５８】
滑り演算器１０２は、負荷角度検出器１０７から出力された負荷角度検出値θ１と、制御器１０１から出力されたモータ電流に応じた車輪駆動モータ９０１ａのトルクＴｍと、に基づいて、上記（１５）式を用いて、滑り２階時間微分値を演算し、演算した滑り２階時間微分値を限界負荷角度演算器１０３に対して出力する（ステップＳ２０３）。
【００５９】
限界負荷角度演算器１０３は、滑り演算器１０２から出力された滑り２階時間微分値に基づいて、上記（２０）式を用いて、限界負荷角度演算値θ１ｌｉｍを演算し、演算した限界負荷角度演算値θ１ｌｉｍを未来限界負荷角度予測器１０４に対して出力する（ステップＳ２０４）。
【００６０】
未来限界負荷角度予測器１０４は、限界負荷角度演算器１０３から出力された限界負荷角度演算値θ１ｌｉｍに基づいて、所定時間後のｍステップ未来の負荷角度の限界値を、未来限界負荷角度予測値θ１ｌｉｍ（ｋ＋ｍ）として上記（２１）を用いて予測し、予測した未来限界負荷角度予測値θ１ｌｉｍ（ｋ＋ｍ）を、トルク指令調整器１０５に対して出力する（ステップＳ２０５）。
【００６１】
トルク指令調整器１０５は、未来限界負荷角度予測器１０４から出力された未来限界負荷角度予測値が０であるか否かを判定する（ステップＳ２０６）。トルク指令調整器１０５は、未来限界負荷角度予測値が０になったと判定したとき（ステップＳ２０６のＹＥＳ）、未来限界負荷角度予測値の符号が現在の負荷角度検出値の符号と逆になるまで、トルク指令を負荷角度検出値と同一符号の方向に変化させるように調整し（ステップＳ２０７）、調整したトルク指令を制御器１０１に対して出力し、下記（ステップＳ２０８）に移行する。
【００６２】
一方、トルク指令調整器１０５は、未来限界負荷角度予測値が０になっていないと判定したとき（ステップＳ２０６のＮＯ）、予め設定された時間経過後に、未来限界負荷角度予測値の符号が現在の負荷角度の符号と逆になったか否かを判定する（ステップＳ２０８）。
【００６３】
トルク指令調整器１０５は、予め設定された時間経過後に、未来限界負荷角度予測値の符号が現在の負荷角度の符号と逆になったと判定したとき（ステップＳ２０８のＹＥＳ）、現在のトルク指令値を維持するように調整し（ステップＳ２０９）、調整したトルク指令を制御器１０１に対して出力し、下記（ステップＳ２１１）に移行する。
【００６４】
一方、トルク指令調整器１０５は、予め設定された時間経過しても、未来限界負荷角度予測値の符号が現在の負荷角度の符号の逆にならないと判定したとき（ステップＳ２０８のＮＯ）、倒立型移動体１を安全に停止させるようにトルク指令を調整し（ステップＳ２１０）、調整したトルク指令を制御器１０１に対して出力し、下記（ステップＳ２１１）に移行する。
【００６５】
制御器１０１は、トルク指令調整器１０５から出力されたトルク指令に応じたモータ電流を、各駆動回路９０３を介して各車輪駆動ユニット９０１の車輪駆動モータ９０１ａに対して出力することで、車輪駆動モータ９０１ａの制御を行う（ステップＳ２１１）。
【００６６】
上述したように、駆動車輪３０２と路面との間の摩擦力が小さい値で時間的に変化する場合でも、ｍステップ未来の負荷角度の限界値を未来限界負荷角度予測値として予測する。そして、予測した未来限界負荷角度予測値に基づいて、制御不能とならないように前もって車輪駆動モータ９０１ａのトルクＴｍを変化させることにより、倒立型移動体１の倒立状態を安定的に維持することができる。これにより、本実施の形態に係る倒立型移動体１は、滑り易い路面上を走行する場合でも、安全に走行することができる。
【００６７】
次に、本実施の形態に係る倒立型移動体１において行ったシミュレーションについて、詳細に説明する。本シミュレーションにおいて、各パラメータの数値は一例として、以下の様に設定されているが、これに限らず、任意の設定が可能である。
【００６８】
ｍ１＝７０[ｋｇ]
Ｊ１＝２５．２[ｋｇ・ｍ２]
ｍ２＝１５[ｋｇ]
Ｊ２＝０．０７５[ｋｇ・ｍ２]
ｌ＝０．９[ｍ]
ｒ＝０．１[ｍ]
ｇ＝９．８[ｍ／ｓ２]
ζ＝０．５
ωｎ＝４０・（２π）［ｒａｄ／ｓ］
Ｔ＝１×１０−３[ｓ]
Ｔｍｌｉｍ＝０．６３７[Ｎ・ｍ]
ｍ＝５
【００６９】
但し、上記パラメータにおいて、ζは所望の減衰係数であり、ωｎは所望の固有周波数である。本シミュレーションは、上述の数値に対して、駆動車輪３０２と路面との間の摩擦力が時間的に変化する場合において、移動体制御装置１００の未来限界負荷角度予測器１０４が未来限界負荷角度予測値を予測し、トルク指令調整器１０５がその未来限界負荷角度予測値に基づいて車輪駆動モータ９０１ａのトルク指令を調整して、倒立型移動体１を安定的に走行させる際の数値計算例を示すものである。
【００７０】
なお、本シミュレーションにおいて、滑り量ｓ２が増加し、未来限界負荷角度予測値が０［ｒａｄ］になるまで、制御器１０１は下記（２１）式に示す車輪駆動モータ９０１ａのトルクＴｍを発生させるためのモータ電流を、フィードバック線形化制御に基づいて出力する。
【数２２】
0005652043.tif 000023
【００７１】
但し、上記（２２）式において、θ１ｒは負荷角度指令である。図４乃至７は、本実施の形態に係る倒立型移動体のシミュレーション結果を示す図である。なお、図４において、破線（ａ）は負荷角度指令θ１ｒを示し、実線（ｂ）は従来技術に係る倒立型移動体の負荷角度θ１を示し、一点鎖線（ｃ）は本実施の形態に係る倒立型移動体１の負荷角度θ１を示している。図５は、従来技術に係る倒立型移動体における滑り量ｓ２の２階時間微分値ｄ２（ｓ２）／ｄｔ２を示している。
【００７２】
図６は、未来限界負荷角度予測器１０４が上記（２１）式を用いて予測する未来限界負荷角度予測値θ１ｌｉｍ（ｋ＋ｍ）を示す図である。上述のように、ｍ＝５であり、Ｔ＝１×１０−３[ｓ]であるので、未来限界負荷角度予測値θ１ｌｉｍ（ｋ＋ｍ）は５×１０−３[ｓ]となる。図７において、破線（ｄ）は本実施の形態に係る限界モータトルクＴｍｌｉｍを示し、実線（ｅ）は従来技術に係る車輪駆動モータのトルクＴｍを示し、一点鎖線（ｆ）は本実施の形態に係る車輪駆動モータ９０１ａのトルクＴｍを示している。
【００７３】
図４の（ａ）に示す負荷角度指令θ１ｒに対して、従来技術に係る倒立型移動体の滑り量ｓ２の２階時間微分値ｄ２（ｓ２）／ｄｔ２は、例えば、図５のように変化する。この滑りによって、倒立型移動体が倒立状態を維持するために、そのモータトルクが余分に必要となる。このため、図７の（ｅ）に示すように車輪駆動モータのトルクＴｍが飽和し、その結果、図４の（ｂ）に示すように従来技術に係る倒立型移動体の負荷角度は振動的に変化する。
【００７４】
この場合、駆動車輪と路面との間の摩擦力が更に小さくなり、滑り量が大きくなると倒立状態を維持できなくなり、転倒する虞がある。この時、未来限界負荷角度予測値は図６に示すように、負荷角度と同一符号を持った状態で変化している。
【００７５】
一方、本実施の形態に係る倒立型移動体１によれば、図６に示すような、未来限界負荷角度予測器１０４により予測される未来限界負荷角度予測値の符号が現在の負荷角度検出値の符号と逆になるまで、トルク指令を負荷角度と同一符号の方向に変化させ、図７の（ｆ）のように調整する。このため、車輪駆動モータ９０１ａにおいてトルクの飽和は起こらず、結果として図４の（ｃ）に示すように、負荷角度指令（ａ）より小さな負荷角度となり、倒立型移動体１の倒立状態が安定していることが分かる。すなわち、本実施の形態に係る倒立型移動体１は、駆動車輪３０２と路面との間の摩擦力が小さい値で変化する場合でも、倒立状態を安定的に維持させることができる。
【００７６】
以上、本実施の形態に係る倒立型移動体１において、未来限界負荷角度予測器１０４は所定時間後のｍステップ未来の負荷角度の限界値を未来限界負荷角度予測値として予測し、制御器１０１は、予測された未来限界負荷角度予測値に基づいて、制御不能とならないように前もって車輪駆動モータ９０１ａのトルクＴｍを制御する。これにより、例えば、駆動車輪３０２と路面との間の摩擦力が小さい値で時間的に変化する場合でも、倒立型移動体１は安定的に倒立状態を維持することができる。
【００７７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００７８】
また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、上述した処理を、上記ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。例えば、上記制御器１０１、滑り演算器１０２、限界負荷角度演算器１０３、未来限界負荷角度予測器１０４、及びトルク指令器１０５による処理は、ＣＰＵにコンピュータプログラムを実行させることにより実現してもよい。なお、上記制御器１０１、滑り演算器１０２、限界負荷角度演算器１０３、未来限界負荷角度予測器１０４、及びトルク指令器１０５を、夫々、専用のＩＣにより構成してもよい。
【００７９】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。
【００８０】
プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【産業上の利用可能性】
【００８１】
本発明は、車輪と路面との間の摩擦力が変化する場合でも、倒立状態を安定的に維持できる任意の倒立型移動体に適用可能であり、例えば、小回りが利くことが要求される電動車椅子、家事手伝いロボット、介護ロボット、自動搬送台車などにも広く適用可能である。
【符号の説明】
【００８２】
１        倒立型移動体
１００    移動体制御装置
１００ａ  演算回路
１００ｂ  記憶装置
１０１    制御器
１０２    滑り演算器
１０３    限界負荷角度演算器
１０４    未来限界負荷角度予測器
１０５    トルク指令調整器
１０６    指令入力器
１０７    負荷角度検出器
３０１    負荷体
３０２    駆動車輪
８０１    車両本体
８０２    駆動車輪
８０３    操作ハンドル
９０１    車輪駆動ユニット
９０１ａ  車輪駆動モータ
９０１ｂ  減速ギア
９０２    車輪センサ
９０３    駆動回路
９０４    バッテリー
【図１】
0005652043.tif 000028
【図２】
0005652043.tif 000029
【図３】
0005652043.tif 000030
【図４】
0005652043.tif 000031
【図５】
0005652043.tif 000032
【図６】
0005652043.tif 000033
【図７】
0005652043.tif 000034
【図８】
0005652043.tif 000035
【図９】
0005652043.tif 000036