(57)【特許請求の範囲】
【請求項１】
操作者が操作した操作量に応じて移動する倒立車輪型移動体であって、
車輪を回転可能に支持する車台と、
前記車輪を回転駆動する第１の駆動部と、
支持部材を介して前記車台に対して回動可能に支持された車体部と、
前記車体部を駆動して、前記車台に対する前記車体部の位置を前後方向に変化させる第２の駆動部と、
前記倒立車輪型移動体を倒立させつつ、前記操作量に対応する目標制御値に追従するよう、前記第１の駆動部をフィードバック制御する第１の制御部と、
前記操作量に応じた前又は後ろの前記倒立車輪型移動体の移動方向と同じ方向に、前記車台に対する前記車体部の位置を変化させるように、前記第２の駆動部を制御する第２の制御部と、
前記操作量がしきい値より定まる制限帯を越えているか否かを判定する判定部と、を備え、
前記操作量が制限帯を越えた後に、前記第２の制御部が、前記車台に対する前記車体部の位置を、前記第２の駆動部の駆動を開始する前の位置に復帰させる倒立車輪型移動体。
【請求項２】
前記第２の駆動部の駆動の開始と同時に前記第１の駆動部が前記車輪の回転駆動を開始することを特徴とする請求項１に記載の倒立車輪型移動体。
【請求項３】
前記車体部が、前記操作者が搭乗する搭乗席を有し、
前記第２の駆動部が前記搭乗席を前後方向に傾ける回転関節を有し、
前記回転関節によって、前記車台に対する前記搭乗席の位置が変化することを特徴とする請求項１、又は２に記載の倒立車輪型移動体。
【請求項４】
前記車体部が、前記操作者が搭乗する搭乗席を有し、
前記第２の駆動部が前記搭乗席をスライド移動させる直動関節を有し、
前記直動関節によって、前記車台に対する前記搭乗席の位置が変化することを特徴とする請求項１、又は２に記載の倒立車輪型移動体。
【請求項５】
車輪を回転可能に支持する車台と、
前記車輪を回転駆動する第１の駆動部と、
支持部材を介して前記車台に対して回動可能に支持された車体と、
前記車体部を駆動して、前記車台に対する前記車体部の位置を前後方向に変化させる第２の駆動部と、を備え、
操作者が操作した操作量に応じて移動するために、前記倒立車輪型移動体を倒立させつつ、前記操作量に対応する目標制御値に追従するよう、前記第１の駆動部をフィードバック制御する倒立車輪型移動体の制御方法であって、
前記操作量に応じた前又は後ろの前記倒立車輪型移動体の移動方向と同じ方向に、前記車台に対する前記車体部の位置を変化させるステップと、
前記操作量がしきい値により定まる制限帯を越えているか否かを判定するステップと、
前記操作量が制限帯を越えている場合に、前記第２の駆動部が、前記車台に対する前記車体部の位置を、前記第２の駆動部の駆動を開始する前の位置に復帰させるステップと、を備える倒立車輪型移動体の制御方法。
【請求項６】
前記第２の駆動部の駆動の開始と同時に前記第１の駆動部が前記車輪の回転駆動を開始することを特徴とする請求項５に記載の倒立車輪型移動体の制御方法。
【請求項７】
前記車体部が、前記操作者が搭乗する搭乗席を有し、
前記第２の駆動部が前記搭乗席を前後方向に傾ける回転関節を有し、
前記回転関節によって、前記車台に対する前記搭乗席の位置が変化することを特徴とする請求項５、又は６に記載の倒立車輪型移動体の制御方法。
【請求項８】
前記車体部が、前記操作者が搭乗する搭乗席を有し、
前記第２の駆動部が前記搭乗席をスライド移動させる直動関節を有し、
前記直動関節によって、前記車台に対する前記搭乗席の位置が変化することを特徴とする請求項５、又は６に記載の倒立車輪型移動体の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は倒立車輪型移動体、及びその制御方法に関する。
【背景技術】
【０００２】
倒立二輪車両などの倒立車輪型移動体は、通常、左右の駆動輪を駆動して安定状態を維持するように重心位置を修正しつつ、移動を行なうように制御している。例えば、搭乗者が搭乗する搭乗デッキを有する倒立車輪型移動体（不安定走行装置）が開示されている（特許文献１）。この倒立車輪型移動体では、例えば、搭乗デッキの傾き角度に応じて加減速している。従って、搭乗者が走行したい方向に重心を移動することによって、搭乗デッキが傾く。これにより、搭乗者の操作に応じて、移動することができる。
【０００３】
また、車輪の上方に配置された座席を有する倒立車輪型移動体（不安定車両）の走行制御装置が開示されている（特許文献２）。この制御装置では、ジョイスティックによって操作が行われる。すなわち、ジョイスティックを傾斜させることで、指令値を入力する。この指令値に基づいて車輪を回転させている。これにより、搭乗者の操作に応じて、移動することができる。
【０００４】
ところで、このような倒立車輪型移動体では、加減速している時に倒立を維持しようとすると、上体の重心位置が加速度に応じて一意に決まってしまう。そのため、加速時には、上体が進行方向に傾き、減速時には、上体が進行方向と逆向きに傾く。従って、人の操作を検知してから上体を傾けて、加速することになる。具体的には、ジョイスティックなどの操作系を用いて人が加速操作を行うと、車輪が進行方向と反対に移動する。すなわち、車輪は、まず、進行方向と反対に回転して、上体が進行方向に傾いた状態を作る。そして、車輪が反転して、進行方向に回転する。そして、移動体が加速し始める。このようにして、移動体１００は、操作に応じた進行方向に移動する。
【０００５】
このため、従来の倒立車輪型移動体では、操作を行ってから、実際の移動が行われるまでに遅れが生じてしまう。すなわち、加速する際に、車輪を移動方向と反対に回転させた後、反転させる必要がある。このため、人の入力に対して移動体が動き出すまでの間に、遅れが生じてしまう。したがって、従来の倒立車輪型移動体では操作性を向上することが困難であるという問題がある。
【特許文献１】特開平４−２０１７９３号公報
【特許文献２】特開２００６−１３８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、従来の倒立車輪型移動体では、操作性を向上することが困難であるという問題点があった。
本発明は、かかる課題を解決するためになされたものであり、操作性を向上することができる倒立車輪型移動体、及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様にかかる倒立車輪型移動体は、操作者が操作した操作量に応じて移動する倒立車輪型移動体であって、車輪を回転可能に支持する車台と、前記車輪を回転駆動する第１の駆動部と、支持部材を介して前記車台に対して回動可能に支持された車体部と、前記支持部材に設けられ、前記車体部を駆動する第２の駆動部と、前記操作量がしきい値を越えているか否かを判定する判定部と、前記倒立車輪型移動体を倒立させつつ、前記操作量に対応する目標制御値に追従するよう、前記第１の駆動部をフィードバック制御する第１の制御部と、前記操作量がしきい値を越えていない場合に、前記操作量に応じて前記車体部を移動させ、前記しきい値を越えた後は、前記車体部の移動を復帰させるように前記第２の駆動部を制御する第２の制御部と、を備えるものである。この構成では、操作量がしきい値を越えていない場合、車輪の回転が制限されている。これにより、加速する際に、移動方向に応じて車体部を傾斜させることができる。従って、速やかに加速することができ、操作性を向上することができる。
【０００８】
本発明の第２の態様にかかる倒立車輪型移動体の制御方法は、車輪を回転可能に支持する車台と、前記車輪を回転駆動する第１の駆動部と、支持部材を介して前記車台に対して回動可能に支持された車体部と、前記支持部材に設けられ、前記車体を駆動する第２の駆動部と、を備え、操作者が操作した操作量に応じて移動するために、前記倒立車輪型移動体を倒立させつつ、前記操作量に対応する目標制御値に追従するよう、前記第１の駆動部をフィードバック制御する倒立車輪型移動体の制御方法であって、前記操作量がしきい値を越えているか否かを判定するステップと、前記操作量がしきい値を越えていない場合に、前記操作量に応じて前記車体部を移動させ、前記しきい値を越えた後は、前記車体部の移動を復帰させるステップを備えるものである。この構成では、操作量がしきい値を越えていない場合、車輪の回転が制限されている。これにより、加速する際に、移動方向に応じて車体を傾斜させることができる。従って、速やかに加速することができ、操作性を向上することができる。
【発明の効果】
【０００９】
本発明によれば、操作性を向上することができる倒立車輪型移動体、及びその制御方法を提供することを目的とする。
【発明を実施するための最良の形態】
【００１０】
本実施の形態にかかる移動体は倒立振子制御によって移動する倒立車輪型移動体である。移動体は、地面に接地した車輪を駆動することによって、所定の位置まで移動する。さらに、ジャイロセンサ等からの出力に応じて車輪を駆動することによって、倒立状態を維持することができる。また、移動体は、倒立状態を維持したまま、操作者が操作する操作量に応じて移動する。
【００１１】
図１及び図２を用いて、本実施の形態にかかる移動体１００の構成について説明する。図１は移動体１００の構成を模式的に示す側面図であり、図２は移動体１００の構成を模式的に示す正面図である。
【００１２】
図２に示されるように、移動体１００は、倒立車輪型の移動体（走行体）であり、右駆動輪１８と、左駆動輪２０と、右スイングアーム１７と、左スイングアーム１９と、車体１２、を備えている。車体１２は、右駆動輪１８、及び左駆動輪２０の上方に配置された移動体１００の上体部である。ここで、移動体１００の進行方向（図２の紙面と垂直方向）を前後方向とし、水平面において前後方向に垂直な方向を左右方向（横方向）とする。よって、図２は、進行方向前側から移動体１００を見た図であり、図１は、左側から移動体１００を見た図である。
【００１３】
走行時において、右スイングアーム１７、及び左スイングアーム１９は、車高を調整する。さらに、一方、又は両方のスイングアームを駆動して、車体１２の地面に対する左右の傾斜角度を調整する。例えば、水平な地面を走行中に、右駆動輪１８のみが段差に乗り上げたり、地面が右上がりの傾斜面に変わったりしたとする。この場合、右駆動輪１８が左駆動輪２０よりも高くなる。このため、右スイングアーム１７の関節を駆動して右駆動輪１８を車体１２の方向により近づけるようにする。これにより、右駆動輪１８が高くなった分を吸収でき、横方向（左右方向）において車体１２を水平にすることができる。
【００１４】
右スイングアーム１７側端側には右マウント２６が固定され、車軸３０を介して右駆動輪１８を回転可能に支持する。右駆動輪１８は、車軸３０を介して右輪駆動モータ３４の回転軸Ｃ１に固定されている。右輪駆動モータ３４は、右マウント２６内に固定され、車輪用駆動部（アクチュエータ）として機能する。
【００１５】
左スイングアーム１９の側端側には左マウント２８が固定され、車軸３２を介して左駆動輪２０を回転可能に支持する。左駆動輪２０は、車軸３２を介して左輪駆動モータ３６の回転軸Ｃ２に固定されている。左輪駆動モータ３６は、左マウント２８内に固定され、車輪用駆動部（アクチュエータ）として機能する。右駆動輪１８と左駆動輪２０は、地面と接地し、略同軸上で回転する一対の車輪である。右駆動輪１８と左駆動輪２０が、回転することによって、移動体１００が移動する。右マウント２６、及び左マウント２８が左右の駆動輪を回転可能に支持する車台となる。
【００１６】
右輪駆動モータ３４及び左輪駆動モータ３６は例えば、サーボモータである。尚、車輪用アクチュエータは、電気的なモータに限らず、空圧、油圧を使用したアクチュエータでもよい。
【００１７】
また、右マウント２６は、右輪エンコーダ５２を備えている。右輪エンコーダ５２は、右駆動輪１８の回転量としての回転角を検出する。左マウント２８は、左輪エンコーダ５４を備えている。左輪エンコーダ５４は、左駆動輪２０の回転量としての回転角を検出する。
【００１８】
車体１２の下部には、右上リンク２１及び左上リンク２２が固定されている。右上リンク２１には、右スイングアーム駆動モータ６０が固定され、右スイング軸６２を介して、回転軸Ｃ４回りに、右スイングアーム１７を駆動する。左スイング軸６６には、左スイングアーム駆動モータ６４が固定され、左スイング軸６６を介して、回転軸Ｃ５周りに左スイングアーム１９を駆動する。
【００１９】
車体１２の上部には、搭乗席支持マウント７２及び搭乗席駆動モータ７０が固定され、搭乗席７４は、搭乗席駆動モータ７０により、回転軸Ｃ３回りに駆動される。すなわち、搭乗席駆動モータ７０を駆動すると、車体１２に対する搭乗席７４の角度が変化する。このとき、搭乗席７４と搭乗者又は搭乗物との合成重心位置が、車体１２に対して前後に変化する。なお、車体１２に対して、搭乗席７４と搭乗者又は搭乗物との合成重心位置を変化させる手段としては、回転軸機構の他に、スライド機構、旋回機構などで実現することも可能である。また、搭乗席駆動モータ７０の動力をギアやベルトやプーリなどを介して、搭乗席７４に伝達してもよい。ここで、搭乗席駆動モータ７０によって駆動する部分を車体部とする。車体部には、搭乗席７４等が含まれる。もちろん、車体１２を駆動するアクチュエータを備える場合は、車体部に車体１２も含まれる。
【００２０】
回転軸Ｃ３は回転軸Ｃ１及びＣ２と平行であり、回転軸Ｃ１及びＣ２の上方に位置する。回転軸Ｃ３と回転軸Ｃ１との間に右スイングアーム１７が設けられ、回転軸Ｃ３と回転軸Ｃ２との間に左スイングアーム１９が設けられている。右スイングアーム駆動モータ６０は、右スイングアーム１７を回転軸Ｃ４回りに回転させ、左スイングアーム駆動モータ６４は、左スイングアーム１９を回転軸Ｃ５回りに回転させる。通常の走行時には、回転軸Ｃ１〜回転軸Ｃ５は水平になっている。
【００２１】
車体１２には、搭乗席駆動モータ７０、搭乗席支持マウント７２、ジャイロセンサ４８、及び搭乗席７４が設けられている。また、車体１２には、対向して、右上リンク２１及び左上リンク２２が取り付けられている。
【００２２】
車体１２には、バッテリーモジュール４４と、センサ５８が収納されている。センサ５８は、例えば、光学式の障害物検知センサであり、移動体１００の前方に障害物を検知すると、検知信号を出力する。また、センサ５８は、障害物センサ以外のセンサであってもよい。例えば、センサ５８として、加速度センサを用いることも可能である。もちろん、センサ５８として、２以上のセンサが用いられていてもよい。センサ５８は移動体１００の状態に応じて変化する変化量を検出する。バッテリーモジュール４４は、センサ５８、ジャイロセンサ４８、右輪駆動モータ３４、左輪駆動モータ３６、右スイングアーム駆動モータ６０、左スイングアーム駆動モータ６４、搭乗席駆動モータ７０、及び制御部８０等に対して電力を供給する。
【００２３】
車体１２上には、ジャイロセンサ４８が設けられている。ジャイロセンサ４８は、車体１２の傾斜角に対する角速度を検出する。ここで、車体１２の傾斜角は、移動体１００の重心位置が車軸３０、３２の鉛直上方に伸びる軸からの傾斜度合いであり、例えば移動体１００の進行方向前方に車体１２が傾斜している場合を「正」とし、移動体１００の進行方向後方に車体１２が傾斜している場合を「負」として表わす。
【００２４】
また、進行方向の前後方向に加えて、左右方向の傾斜角速度はロール、ピッチ、ヨーの３軸のジャイロセンサ４８を用いて測定される。このように、ジャイロセンサ４８は、車体１２の傾斜角の変化を、車体１２の傾斜角速度として測定する。もちろん、ジャイロセンサ４８は他の箇所に取り付けられていてもよい。ジャイロセンサ４８で測定された傾斜角速度は、移動体１００の姿勢の変化に応じて変化する。即ち、傾斜角速度は、車軸の位置に対する車体１２の重心位置に応じて変化する変化量である。従って、外乱などによって、車体１２の傾斜角度が急激に変化すると、傾斜角速度の値が大きくなる。
【００２５】
車体１２の中央近傍には、搭乗席支持マウント７２が設けられている。搭乗席支持マウント７２によって、搭乗席７４が支持されている。即ち、搭乗席７４は、搭乗席支持マウント７２を介して車体１２に固定されている。搭乗席７４は、搭乗者が座ることができる椅子の形状を有する。
【００２６】
搭乗席７４の側面には、操作モジュール４６が設けられている。操作モジュール４６には、操作レバー（図示せず）及びブレーキレバー（図示せず）が設けられている。操作レバーは、搭乗者が移動体１００の走行速度や走行方向を調整するための操作部材である、搭乗者は、操作レバーの操作量を調整することによって移動体１００の移動速度を調整することができる。また、搭乗者は、操作レバーの操作方向を調整することによって移動体１００の移動方向を指定することができる。移動体１００は、操作レバーに加えられた操作に応じて、前進、停止、後退、左折、右折、左旋回、右旋回することができる。搭乗者がブレーキレバーを倒すことによって、移動体１００を制動することができる。移動体１００の進行方向は、水平面内において、車軸３０、３２と垂直な方向になる。
【００２７】
さらに、搭乗席７４の背もたれ部分には、制御部８０が実装されている。制御部８０は、搭乗者が操作モジュール４６に対して行なった操作に追従して、右輪駆動モータ３４及び左輪駆動モータ３６を制御し、移動体１００の走行（移動）を制御する。制御部８０は、操作モジュールでの操作に応じて、右輪駆動モータ３４及び左輪駆動モータ３６を制御する。これにより、操作モジュール４６での操作に応じた加速度、速度指令値で右輪駆動モータ３４及び左輪駆動モータ３６が駆動する。
【００２８】
制御部８０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、通信用のインターフェースなどを有し、移動体１００の各種動作を制御する。そして、この制御部８０は、例えばＲＯＭに格納された制御プログラムに従って各種の制御を実行する。制御部８０は、操作モジュール４６での操作に応じて、所望の加速度、及び目標速度になるように、また、移動体１００が倒立を維持するように、ロバスト制御、状態フィードバック制御、ＰＩＤ制御などの周知のフィードバック制御により、右輪駆動モータ３４及び左輪駆動モータ３６を制御する。これにより、移動体１００が、操作モジュール４６での操作に応じて加減速しながら走行する。
【００２９】
すなわち、操作モジュール４６は、搭乗者の操作によって与えられた操作量を取得し、この操作量を操作信号として、制御部８０に出力する。そして、制御部８０は、操作信号に基づいて、移動体１００の目標加速度や、目標速度を算出し、これに追従するように、移動体１００をフィードバック制御する。
【００３０】
この操作モジュール４６の構成について図３を用いて説明する。図３は、操作モジュール４６の構成を模式的に示す側面図であり、操作レバーに関する構成のみを示している。操作モジュール４６はジョイスティックタイプの入力部である。操作モジュール４６は、本体部４１と、操作レバー４２と、操作角センサ４３とを有している。本体部４１は、箱形状を有している。本体部４１には、操作レバー４２が回動可能に取り付けられている。操作レバー４２は、本体部４１から上方に延設されている。操作角センサ４３は、本体部４１内に収納されている。そして、操作角センサ４３は、本体部４１に対する操作レバー４２の操作角を検出する。すなわち、操作角センサ４３は、基準位置から操作レバー４２が所定の方向へ倒れたときの角度を検出する。搭乗者が操作モジュール４６を操作しない状態では、操作レバー４２が本体部４１に対して直立している。すなわち、操作レバー４２は、本体部４１とは直交する方向に取り付けられている。この状態では、操作角センサ４３は、操作レバー４２の操作角が０°であることを検出している。そして、操作角センサ４３は、操作レバー４２が操作された時の操作角を操作信号８９として出力する。
【００３１】
搭乗者が移動体１００を移動させる場合、操作レバー４２を移動したい方向に倒す。例えば、移動体１００の前方に移動したい場合、操作レバー４２を前方向に傾ける。この場合、搭乗者が、図３の矢印方向に、操作レバー４２を倒す。これにより、操作レバー４２が本体部４１に対して傾く。すなわち、操作レバー４２の本体部４１に対する角度が変わる。操作角センサ４３は、操作レバー４２の操作角を検出する。なお、操作角センサ４３は、操作レバー４２が前方向に倒れた場合の操作角を正とし、後方向に倒れた場合の操作角を負として検出する。操作レバー４２の操作角が移動体１００を操作するための操作量に対応する。そして、操作角センサ４３は、検出した操作角を操作信号８９として、制御部８０に出力する。操作角センサ４３は、操作レバー４２の操作角を一定のサンプリング周期で検出している。このサンプリング周期は、搭乗者が操作レバー４２を操作する時間に対して、十分短く設定されている。よって、搭乗者が操作レバー４２を倒している間の操作角が随時更新される。
【００３２】
なお、操作角センサ４３は、直接的に操作角を測定するものに限らず、間接的に測定するものであってもよい。例えば、操作角センサ４３は、操作レバー４２の位置を検出するセンサであってもよい。この場合、検出位置に基づいて、操作角を算出する。さらには、操作角センサ４３は、操作レバー４２の操作角の角速度を検出するものであってもよい。この場合、角速度を積分することによって、操作角を求めることができる。もちろん、操作モジュール４６に操作レバーの操作角、及びその角速度を検出するセンサをそれぞれ設けてもよい。
【００３３】
このように、操作モジュール４６は、操作レバー４２の操作角によって操作量を取得する。すなわち、操作レバー４２の操作角の値が操作量となる。そして、制御部８０は、操作量に基づいて、目標速度を算出する。操作レバー４２の操作角が大きくなるほど、目標速度が大きくなる。操作量は、操作角に限らず、操作レバーの角速度などであってもよい。なお、操作モジュール４６が操作量に基づいて、加速度や目標速度を算出してもよい。この場合、操作信号８９として、加速度や目標速度が出力される。さらに、操作レバー４２の操作角には一定範囲の制限帯が設定されている。すなわち、操作量に対して制限帯が設定されている。操作量が小さい制限帯では、移動体１００が速やかに加速するよう搭乗席７４を前傾させる。制御部８０での処理については後述する。
【００３４】
さらに、制御部８０は、操作量に基づいて、搭乗席７４の車体１２に対するＣ３軸回りの角度を制御する。制御部８０は、通常の走行制御では、右駆動輪１８、及び左駆動輪２０（以下、車輪とする。）のみを駆動させる。一方、加速開始時には、車輪だけではなく、搭乗席駆動モータ７０を駆動させる。すなわち、搭乗席７４の車体１２に対する角度を変える。例えば、移動体１００が停止している状態から加速するタイミングで加速開始制御が行われる。このような移動体１００が加速開始制御される時は、操作レバー４２が直立している状態から、倒れ始める時であり、操作角が０°から、正、又は負の値に変化する時に対応する。
【００３５】
具体的には、停止状態から前方に加速する場合、操作レバー４２を前に倒す。これにより、操作角が０から増加して、正の値になる。一方、停止状態から後方に加速する場合、操作レバー４２を後ろに倒す。これにより、操作角が０から減少して、負の値になる。加速時には、操作角（操作量）が０から増減することによって、操作方向に移動体１００の移動が開始する。操作レバー４２が前方に倒れた場合、移動体１００が前方に移動する。反対に操作レバー４２が後方に倒れた場合、移動体１００が後方に移動する。
【００３６】
制御部８０は、加速開始制御を行うことによって、操作を行ってから実際の移動が行われるまでに遅れを低減している。この加速開始制御について図４、及び図５を用いて説明する。図４、及び図５は、加速前から加速、定速制御を行っている時の移動体１００の一連の状態を模式的に示す側面図である。図４（ａ）は、停止状態での移動体１００を示している。図４（ｂ）は、加速開始制御時の移動体１００を示している。具体的には、図４（ｂ）は、操作レバーの操作角が制限帯を越えるタイミングでの状態を示している。図５（ｃ）は、加速中の移動体１００の状態を示している。具体的には、図５（ｃ）は、操作レバーの操作角が制限帯を越えた後の移動体１００を示している。図５（ｄ）は、定速走行中の移動体１００を示している。なお、図４、及び図５は、移動体１００が前方に直進する場合を示している。従って、図４、及び図５中において、移動体１００は右方向に移動する。なお、下記の説明では、搭乗席７４に搭乗者７５が乗っているとして説明するが、搭乗者７５はなく搭乗物が乗っていてもよい。
【００３７】
図４（ａ）に示すように、停止状態において、移動体１００は、直立している。すなわち、車体１２と搭乗席７４及び搭乗者７５の合成重心Ｇ１は回転軸Ｃ１の鉛直線上にある。この状態での、搭乗席７４を支持する回転軸Ｃ３回りの回転角度を０°とする。移動体１００は停止状態であり、車体１２は静止しているので、ジャイロセンサ４８で測定される傾斜角速度は変化していない。また、停止状態では、操作レバー４２の操作角は０°になっている。
【００３８】
移動を開始するため、搭乗者が操作レバー４２を倒したとする。操作レバー４２を倒した直後は、操作角が小さい。従って、操作角が制限帯に含まれる。ここでは、搭乗席７４を前方方向に車体１２上のＣ３軸回りに回転駆動する。すなわち、図４（ａ）の矢印方向に搭乗席７４を車体１２に対して回転駆動し、傾斜させる。これにより、図４に示すように、車体１２と搭乗席７４及び搭乗者７５の合成重心Ｇ１は、回転軸Ｃ１の鉛直線上より前方に位置することになる。同時に、右駆動輪１８及び左駆動輪２０にも駆動トルクが加えられ、移動体１００の加速が開始される。
【００３９】
搭乗者７５は、目標速度に到達するように、操作レバー４２を徐々に押し倒していく。そして、ある程度の操作角になったところで、操作レバー４２を停止させる。すなわち、操作開始直後では、時間の経過と共に操作角が大きくなっていく。従って、倒し始めてからある程度時間が経過すると、操作角が大きくなり、制限帯を越える。制限帯を越えたタイミングでは、移動体１００が図４（ｂ）に示す状態となる。この時の搭乗席７４の車体１２に対するＣ３軸回りの角度を、θｍａｘとする。このように、始動時には、関節角度が０からθｍａｘまで増加する。
【００４０】
操作レバー４２の操作角が制限帯を越えた後も、右駆動輪１８、及び左駆動輪２０が駆動を続け、移動体１００は目標速度を発生している方向に加速を継続している。操作角が制限帯を越えた後、搭乗席７４の車体１２に対するＣ３軸回りの回転を元に戻す。すなわち、車体１２の回動を復帰させるよう、搭乗席駆動モータ７０を駆動する。その後は、移動体１００は、図５（ｃ）に示すように、車体全体を前傾して、合成重心Ｇ１を進行方向の前方に保ちながら、引き続き加速を行うことができる。この時、左上リンク２２及び右上リンク２１は、Ｃ５又はＣ４軸回りに回転する必要がない。車体全体の進行方向加速度と重力方向加速度が釣り合う角度を保ちながら、移動体１００は、加速動作を継続する。
【００４１】
移動体１００が目標速度に到達すると、略一定速度で、移動体１００は移動する。従って、進行方向加速度がほぼ０になる。すなわち、移動体１００の車体全体の重心位置は、回転軸Ｃ１、Ｃ２の鉛直線上にあり、移動体１００は、略直立した状態で走行する。なお、移動体１００は、操作レバー４２の操作角に基づいて算出された目標速度に追従して、移動する。そして、操作角が減少してゼロになったら、移動体１００を減速させる。移動体１００を減速させる場合は、車体全体の進行方向とは逆の加速度、すなわち減速度と重力方向加速度が釣り合う角度を保ちながら移動体１００は減速動作を行う。この時、移動体１００の車体全体は、図５（ｃ）とは逆の方向、すなわち、進行方向とは反対の方向に傾くことになる。
【００４２】
このような加速制御を行ったときの、車輪の目標回転速度、及び搭乗席７４の車体１２に対する回転角度について図６を用いて説明する。図６は、操作レバー４２の操作角に対する、右駆動輪１８及び左駆動輪２０の目標回転速度、並びに、搭乗席７４の車体１２に対する回転角度の変化を示すグラフである。図６では、横軸が操作レバー４２の操作角を示し、縦軸が車輪の目標回転速度、並びに搭乗席７４の車体１２に対する回転角度を示している。ここで、搭乗席７４の車体１２に対する回転角度を破線で示す。車輪の目標回転速度は、移動体１００の速度に対応する。ここでは、説明の簡略化のため、移動体１００が直進する場合について説明する。
【００４３】
図６に示すように、操作レバー４２の操作角が制限帯よりも小さく、不感帯よりも大きい場合、目標回転速度が出力されると同時に、搭乗席７４の回転が行われる。これにより、車体１２と搭乗席７４、及び搭乗者７５の合成重心Ｇ１を回転軸Ｃ１の鉛直線上よりも前方に移動させることができる。同時に、車輪に対して目標回転速度も出力開始され、移動体１００の加速が開始される。移動体１００は、車体全体の進行方向加速度と重力方向加速度を直ちに釣り合わせることができるので、一旦、駆動輪を進行方向とは逆の方向に回転させることもなく、直ちに進行方向への回転も開始できる。不感帯は、操作レバー４２の誤操作や、ノイズに対する誤動作を避けるために設けられたものであるが、誤操作やノイズが少ないような状況ではなくしたり、より範囲を狭めるとも可能である。
【００４４】
そして、操作角が制限帯を越え、目標角度がさらに大きくなり、移動体１００がある程度の加速度に達すると、すでに移動体１００の車両全体の重心位置は、車軸を通る鉛直線上よりも進行方向前方に配置されているので、搭乗席７４の車体１２に対する回転を０°になるまで、元に戻しても、移動体１００は進行方向にそのまま加速を継続できる。すなわち、移動体１００は、車体全体で進行方向に前傾姿勢を保つので、搭乗席７４を車体１２に対して回転しておく必要はなくなる（図５（ｃ）。以上のようにして、搭乗者７５の入力に対して移動体１００が動き出すまでの間の遅れが低減され、操作性や応答性が向上する。なお、制限帯内外における操作角と回転速度の関係は、リニア以外であってもよい。
【００４５】
次に、制御部８０による制御について図７を用いて説明する。図７は、制御部８０を用いた制御系の構成を示すブロック図である。なお、制御部８０では、搭乗席駆動モータ７０を駆動するためのドライバをモータドライバ７０ａとし、右輪駆動モータ３４、左輪駆動モータ３６を駆動するために設けられたドライバをそれぞれモータドライバ３４ａ、３６ａとして示している。制御部８０は、移動体１００が倒立状態を維持したまま、操作レバー４２の操作角に応じて移動するよう、右輪駆動モータ３４、左輪駆動モータ３６をフィードバック制御を行っている。また、搭乗席７４が車体１２に対して所定の回転角度になるように搭乗席駆動モータ７０をフィードバック制御している。
【００４６】
判定部９０には、操作モジュール４６からの操作信号８９が入力されている。操作信号８９は、操作レバー４２の操作角に対応する値になっている。判定部９０は、操作信号８９に基づいて、不感帯以上であるかを判定する。具体的には、操作量がしきい値を越えている場合には不感帯以上であると判定し、不感帯以上であることを示す判定信号７３を出力する。不感帯以上であることを示す判定信号７３は、目標速度換算部８３、及び目標姿勢決定部９２に入力されている。この、判定信号７３が出力されている場合は、移動体１００は走行するものとし、加速制御を行う。また、判定部９０は、同様に、操作信号８９に基づいて制限帯以内であるか否かを判定する。すなわち、判定部９０は、操作信号８９としきい値を比較して、制限帯内か制限帯外かを判定する。
【００４７】
はじめに、搭乗席７４の姿勢制御について説明する。目標姿勢決定部９２には、判定信号７３、及び操作信号８９が入力されている。目標姿勢決定部９２は、判定信号７３、及び操作信号８９に基づいて、搭乗席７４の目標回転角度を決定する。すなわち、操作レバー４２の操作角が不感帯以上であり、制限帯以内付近に含まれる場合に、搭乗席７４の車体１２に対する目標回転角度を出力する。具体的には、判定信号が入力されている場合は、搭乗席７４の目標回転角度として、操作信号８９に基づき、図６の破線で示したような目標回転角度を出力する。姿勢制御指令値算出部９４は、目標姿勢決定部９２からの目標回転角度に基づき、モータドライバ７０ａを介して、搭乗席駆動モータ７０を駆動し、搭乗席７４を目標回転角度に追従するようフィードバック制御する。ここでは、搭乗席駆動モータ７０の回転角を検出するエンコーダ７０ｂからの信号をもとにフィードバック制御する。これにより、操作レバー４２の操作角が不感帯以上であり、制限帯以内付近にある場合に、搭乗席７４は前傾姿勢をとることとなり、車体１２と搭乗席７４、及び搭乗者７５の合成重心Ｇ１を回転軸Ｃ１の鉛直線上よりも進行方向の前方に位置させることになる。
【００４８】
次に、移動体１００の走行制御について説明する。目標速度換算部８３には、判定信号７３及び操作モジュール４６からの操作信号８９が入力されている。操作信号８９は、操作レバー４２の操作角に対応する値になっている。目標速度換算部８３は、判定信号７３及び操作信号８９に基づいて、移動体１００の目標速度を決定する。具体的には、判定信号７３が入力されている場合は、移動体１００の目標速度として、操作信号８９に基づき、図６の実線に示すような目標速度を出力する。倒立台車制御指令値算出部８６は、この目標速度に追従するように、モータドライバ３４ａ、３６ａ、及び右輪駆動モータ３４、左輪駆動モータ３６の駆動を制御する。そして、各モータに取り付けられた右輪エンコーダ５２、及び左輪エンコーダ５４からの信号をもとに、目標速度に追従するように、移動体１００をフィードバック制御する。なお、移動体１００の現在速度は、右輪エンコーダ５２、及び左輪エンコーダ５４の信号を微分演算し、それを台車中心の速度に換算すること等により行われる。また、同時に移動体１００が倒れないように倒立制御も行う。
【００４９】
移動体１００の倒立制御は、ジャイロセンサ４８で測定された車体１２の傾斜角速度をもとに行われる。傾斜角速度を積分器８８で積分することで、車体１２の傾斜角度が求まる。これは、他の計測手段、例えば、傾斜角度計などを用いて測定してもよい。目標速度換算部８３では、目標速度に対応して、目標傾斜角度も算出する。通常、これは加減速に応じて設定される。倒立台車制御指令値算出部８６には、傾斜角度、及び現在速度に基づいて、各車輪の並進移動に関するトルク指令値を算出する。具体的には、並進方向に関する目標速度と現在速度との速度偏差を算出する。また、車体１２の目標傾斜角度と現在傾斜角度との角度偏差も算出する。これら２つの偏差が小さくなるようにトルク指令値を算出する。例えば、速度偏差に適当なフィードバックゲインＫ１を乗じる。さらに、傾斜角度偏差に適当なフィードバックゲインＫ２を乗じる。これら乗じたものをさらに、加算して並進方向に関するトルク指令値として算出する。
なお、倒立台車制御指令値算出部８６の実施形態として、Ｈ∞制御理論を用いてもよいし、Ｈ∞制御理論以外の公知の現代制御理論、Ｈ２制御理論、μ−設計法などを用いてもよい。
【００５０】
加速時においては、始めに搭乗席７４が前傾し、加速開始する。移動体１００の加速度が大きくなった時点で、搭乗席７４の前傾姿勢を戻し、車体全体が前傾することで、加速を継続する。その後、一定速度を保つ場合においては、車体１２は前傾することなく走行する。目標速度換算部８３、倒立台車制御指令値算出部８６、モータドライバ３４ａ、及びモータドライバ３６ａ等が、操作量に対応する目標制御値に追従するよう、右輪駆動モータ３４、及び左輪駆動モータ３６をフィードバック制御するための第１の制御部を構成する。また、目標姿勢決定部９２、姿勢制御指令値算出部９４、及びモータドライバ７０ａ等が、操作量がしきい値を越えていない場合に、操作量に応じて車体１２を回動させ、しきい値を越えた後は、車体１２の回動を復帰させるように搭乗席駆動モータ７０を制御する第２の制御部を構成する。
【００５１】
移動体１００の旋回方向の制御も行うことができる。操作モジュール４６に旋回方向の操作を指示できるような操作レバー４２の動きを追加する。例えば、ジョイスティックを横方向に倒れるようにする。あるいは、ねじる動きを追加し、その操作信号を目標旋回角度とする。移動体１００は、現在の旋回角度を右輪エンコーダ５２、及び左輪エンコーダ５４の信号から算出する。目標旋回角度と現在旋回角度との旋回角度偏差を求め、これに適当なフィードバックゲインをかけ、右駆動輪１８及び左駆動輪２０の指令トルク値に換算し、これを倒立台車制御指令値算出部８６の出力に換算する。こうすることで、移動体１００の旋回動作も行うことができる（図示せず）。
【００５２】
次に、図８を用いて本実施の形態にかかる移動体の制御方法について説明する。図８は、本実施の形態にかかる移動体の制御方法を示すフローチャートである。図８は、移動体１００が始動する時の制御方法を示している。すなわち、図８には、移動体１００が停止している状態から動き出すときの処理が示されている。
【００５３】
図４（ａ）に示した状態で、処理をスタートする。まず、操作モジュール４６への入力があるか否かを判定する（ステップＳ１０１）。その入力が不感帯を超えたか否かを判定する（ステップＳ１０２）。不感帯を越えて入力があると判定されれば、その入力は有効として次に進み、制限帯を越えたか否かを判定する（ステップＳ１０３）。制限帯以内であると判定された場合、図６に示す関係に従って、搭乗席７４を前傾させる。すなわち、搭乗席７４を前方方向に車体１２上の回転軸Ｃ３回りに回転駆動し、車体１２に対して傾斜させる（ステップＳ１０５）。これにより、図４（ｂ）に示すように、車体１２と搭乗席７４及び搭乗者７５の合成重心Ｇ１は回転軸Ｃ１の鉛直線上より前方に位置することになる。同時に、右駆動輪１８及び左駆動輪２０にも駆動トルクが加えられ、移動体１００の加速が開始される（ステップＳ１０５）。そして、制限帯を越えるまでは、上記の処理を繰り返す。
【００５４】
そして、操作モジュール４６からの入力が制限帯を越えると、操作が終了したか否かを判定する（ステップＳ１０４）。操作の終了は、例えば、操作モジュール４６からの入力が再び、不感帯以内になったか否かを判定することなどにより、可能である。操作が終了していなければ、図６に示す関係にしたがって、搭乗席７４の傾きをもとに戻す（ステップＳ１０６）。同時に、移動体１００の速度指令値を図６に示す関係にしたがって与える。移動体１００は倒立制御を維持しながら、目標速度に追従するように走行する（ステップＳ１０６）。そして、加速状態が終了し、定速状態となると、移動体１００は、図５（ｄ）に示すような姿勢を取りながら走行する。操作量がさらに小さくなると移動体１００は、操作量に対応して、減速し、やがて終了と判定される（ステップＳ１０４）と、一連の動作は終了する。
【００５５】
なお、上述の説明では、操作量に応じて移動するための移動制御目標値として、目標速度を設定したが、これに限られるものではない。例えば、左輪駆動モータ３６、及び右輪駆動モータ３４の目標回転速度を、移動制御目標値にしてもよい。あるいは、移動体１００の加速度を移動制御目標値としてもよい。また、目標位置を移動制御目標値としてもよい。もちろん、これら以外のものを移動制御目標値として設定してもよく、複数を組み合わせてもよい。このように、移動制御目標値と、センサなどで測定した現在の値との差分に応じてフィードバック制御することができる。このような移動制御目標値は、操作量に応じて算出される。これにより、移動体１００が、操作量に応じて移動する。すなわち、移動制御目標値に追従するようにフィードバック制御される。
【００５６】
また、倒立制御目標値は、車体１２の傾斜角度に限られるものではない。例えば、車体１２の傾斜角速度などであってもよい。もちろん、これ以外のものを移動制御目標値として設定してもよく、複数を組み合わせてもよい。このように、倒立制御目標値と、センサなどで測定した現在の値との差分に応じてフィードバック制御することができる。すなわち、倒立維持のために用いられる倒立制御目標値に追従するように、フィードバック制御すればよい。
【００５７】
倒立移動体の制御においては、移動制御目標値と倒立制御目標値は、独立ではなく、お互いに関係しているので、独立に設定された二つの目標値を完全に満たすことはできない。移動制御のフィードバックゲインの重みと、倒立制御のフィードバックゲインの重みを調整することで、どちらかの目標値への追従を優先させるかをある程度は設定できる。しかしながら、倒立を維持することは絶対条件なので、移動制御目標値への優先度には、限界がある。そこで、搭乗席の重心位置を移動することで、移動制御目標値を満たしつつ、倒立制御も実現できるようになる。すなわち、操作量が制限帯にあるような加速開始時には、搭乗席を傾けることで、重心を進行方向前方へ持っていき、倒立条件を満たしながら、移動制御目標値へ追従することが可能となるので、移動制御の応答性を上げることができる。よって、操作に対して、速やかに加速することができるので、応答性が向上する。
【００５８】
なお、上記の説明では、操作レバーの操作角によって、操作を行ったが、これに限られるものではない。すなわち、操作者の操作に応じて操作量を取得する操作手段を用いることができる。例えば、ボタン式の操作手段であってもよい。この場合、ボタンを押圧する力を力覚センサなどで測定する。そして、押圧力に応じて、操作量を取得する。このように、操作モジュール４６は、操作者の操作によって、入力の強さを変えられるものであればよい。そして、操作モジュール４６の操作量に対して制限帯を設ける。さらに、操作量を搭乗者の体重移動などによって求めてもよい。例えば、前進したい場合、搭乗者が前方に移動する。すなわち搭乗席上で搭乗者が前屈みになる。これにより、車体１２の傾斜角度が変わる。この傾斜角度の変化をジャイロセンサなどが測定する。すなわち、ピッチ軸角速度の大きさに応じて、操作量を取得することができる。
【００５９】
本実施の形態では、２輪型の移動体１００について説明したが、車輪の数は、これに限られるものではない。１輪型の移動体でもよく、３以上の車輪を有する移動体であってもよい。もちろん、スイングアームを構成するアームの本数は、２本でも、３本以上でもよい。搭乗席を駆動する関節は、回転関節に限られるものではなく、例えば、直動関節であってもよい。この場合、直動関節は、搭乗席７４を前後方向にスライドさせて、搭乗席７４及び搭乗者７５の重心位置を変化させる。また、前方への移動に限らず、後方への移動も同様に制御することができる。
【００６０】
上記の例では、操作者が移動体１００に搭乗しているものとして説明したが、これに限るものではない。例えば、遠隔で操縦を行なう移動体に対しても適用することができる。さらに、上記の説明では、搭乗席７４を有する移動体１００について説明したが、物体運搬用の移動台車であってもよい。もちろん、移動ロボットなどのその他の移動体であってもよい。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施の形態にかかる移動体の構成を示す側面図である。
【図２】本発明の実施の形態にかかる移動体の構成を示す正面図である。
【図３】本発明の実施の形態にかかる移動体の操作モジュールの構成を模式的に示す図である。
【図４】本発明の実施の形態にかかる移動体の姿勢を説明するための側面図である。
【図５】本発明の実施の形態にかかる移動体の姿勢を説明するための側面図である。
【図６】本発明の実施の形態にかかる移動体の入力と出力の関係を示すグラフである。
【図７】本発明の実施の形態にかかる移動体の制御系の構成を示すブロック図である。
【図８】本発明の実施の形態にかかる移動体の制御方法を示すフローチャートである。
【符号の説明】
【００６２】
１２  車体、１７  右スイングアーム、１９  左スイングアーム、
１８  右駆動輪、２０  左駆動輪、２１  右上リンク、２２  左上リンク、
２６  右マウント、２８  左マウント、
３０  車軸、３２  車軸、３４  右輪駆動モータ、３６  左輪駆動モータ、
４１  本体部、４２  操作レバー、４３  操作角センサ、４４  バッテリモジュール、
４６  操作モジュール、４８  ジャイロセンサ、
５２  右輪エンコーダ、５４  左輪エンコーダ、５８  センサ
６０  右スイングアーム駆動モータ、６２  右スイング軸
６４  左スイングアーム駆動モータ、６６  左スイング軸
７０  搭乗席駆動モータ、７２  搭乗席支持マウント、
７３  判定信号、７４  搭乗席、８０  制御部、
８３  目標速度換算部、８６  倒立台車制御指令値算出部、８８  積分器
９２  目標姿勢決定部、９４  姿勢制御指令値算出部、８９  操作信号、９０  判定部、
１００  移動体、
【図１】
0004470988.tif 000002
【図２】
0004470988.tif 000003
【図３】
0004470988.tif 000004
【図４】
0004470988.tif 000005
【図５】
0004470988.tif 000006
【図６】
0004470988.tif 000007
【図７】
0004470988.tif 000008
【図８】
0004470988.tif 000009