(57)【要約】【課題】走行中に障害物等に衝突するなどの異常が発生しても速やかにリカバリー動作を実行することができる倒立車輪型移動体を提供すること。【解決手段】倒立走行ロボット１は、車体１１と、車体１１に取り付けられた２以上の車輪１５と、車輪１５を補助する１以上の補助輪１６と、倒立を維持するための安定化制御手段と、安定化制御手段が算出した制御量に応じて前記車輪を駆動する駆動手段と、補助輪１６と当該補助輪１６の地面との接地点との間に少なくとも１軸方向以上の圧力を計測できる１以上の感圧センサ１７とを有し、安定化制御手段は、停止中及び走行中の感圧センサ１７の値を監視し異常の有無を検知する。【選択図】図１
2009101484.tif 000002
【特許請求の範囲】
【請求項１】
車体と、
前記車体に取り付けられた２以上の車輪と、
前記車輪を補助する１以上の補助輪と、
倒立を維持するための安定化制御手段と、
前記安定化制御手段が算出した制御量に応じて前記車輪を駆動する駆動手段と、
前記補助輪と当該補助輪の地面との接地点との間に少なくとも１軸方向以上の圧力を計測できる１以上の感圧センサとを有し、
前記安定化制御手段は、停止中及び走行中の前記感圧センサの値を監視し異常の有無を検知する倒立走行ロボット。
【請求項２】
全荷重を検知するための複数の感圧センサを有する
ことを特徴とする請求項１記載の倒立走行ロボット。
【請求項３】
前記車体と当該車体の地面との接地点との間に少なくとも１軸以上の感圧センサを有する
ことを特徴とする請求項１記載の倒立走行ロボット。
【請求項４】
前記安定化制御手段は、前記感圧センサから重心バランスを算出し、当該重心バランスに応じて前記駆動手段を駆動する制御量を調整する
ことを特徴とする請求項１乃至３のいずれか１項記載の倒立走行ロボット。
【請求項５】
前記車体の姿勢を検出する姿勢センサと、
前記感圧センサの値から荷重を算出する荷重算出手段と、
前記荷重算出手段の算出した加重に応じてゲインを調整するゲイン調整手段とを有し、
前記安定化制御手段は、前記姿勢センサの値と、目標姿勢角との偏差に応じて制御量を算出し、前記ゲイン調整手段からのゲインに応じて当該制御量を調整する
ことを特徴とする請求項２乃至４のいずれか１項記載の倒立走行ロボット。
【請求項６】
車体と、前記車体に取り付けられた２以上の車輪と、前記車輪を補助する１以上の補助輪と、倒立を維持するための安定化制御手段と、前記安定化制御手段が算出した制御量に応じて前記車輪を駆動する駆動手段と、前記補助輪と当該補助輪の地面との接地点との間に少なくとも１軸方向以上の圧力を計測できる感圧センサとを有する倒立走行ロボットの制御方法であって、
停止中及び走行中の前記感圧センサの値から重心バランスを算出する工程と、
前記重心バランスの値に基づき走行開始又は走行停止を決定する工程とを有する倒立走行ロボットの制御方法。
【請求項７】
走行中の前記重心バランスの値に応じて通常走行モードと緊急停止モードを切り替える工程を更に有する請求項６記載の倒立走行ロボットの制御方法。
【請求項８】
姿勢センサからの姿勢角と、目標姿勢角の偏差を求める工程と、
前記姿勢角偏差に基づきフィードバック制御を行う制御工程と、
前記制御工程にて算出された制御量に基づきモータを駆動する駆動工程とを有し、
前記制御工程では、全荷重を検知する感圧センサの値に応じ、前記制御量に乗算する制御ゲインを変更する
ことを特徴とする請求項６又は７記載の倒立走行ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車輪及び補助輪又はストッパを有する倒立走行ロボット及びその制御方法に関する。
【背景技術】
【０００２】
搭乗者や荷物の重心位置が計測できない場合、倒立走行性能は、倒立コントローラが有するロバスト性に依存して決まるため、荷重に応じてゲインスケジューリングしたり、重心位置によって制御を切り替えたりすることが好ましい。ゲインスケジューリングとは対象とするシステムの変動するパラメータの情報を利用して、 その状況に応じて補償器のゲインを変える手法である。
【０００３】
従来の荷重・重心位置の計測方法としては、搭乗者の座面に感圧シートを敷く方法がある。しかしながら、搭乗者の姿勢変化の影響を受けやすく、また、感圧シートが設置されていない部分に荷重がかかった際、計測誤差が大きくなってしまう。全面に感圧シートと敷くことでこの問題は解決可能ではあるがコスト、電力等の無駄が多く、現実的ではないという問題点がある。
【０００４】
また、座面下に６軸センサを取り付ける方法も考えられる。しかし、６軸センサで感知できない部位に荷重が掛った際、計測誤差が大きくなってしまう。また、ロボットをゆすったり、ある軸を駆動してその変化で重心位置を推定する場合、計測するためにロボットを動かさなくてはならず、搭乗者に負担がかかる。
【０００５】
なお、車体上の荷重を計測するセンサを用いた従来技術が特許文献１、２に記載されている。特許文献１は、人が乗る台車と、台車に設けられ、出力により台車の状態を変化させるアクチュエータと、台車の状態を検知するセンサと、センサで検知された状態と目標値とを比較し、その差分を取る手段と、差分が入力され、差分を基にアクチュエータの出力を制御するコントローラとを含む平衡感覚測定訓練機器が開示されている。特許文献２には、荷物運搬ロボットの荷台にベルトコンベアを配置し荷物を姿勢の安定化方向に移動させることにより、合成重心位置が常に設計位置付近にあるように補正動作を行う結果、荷物搭載時の水平バランス崩れを防止することができ、安定した荷物運搬を実現する２輪走行型荷物運搬ロボットが開示されている。
【特許文献１】特開２００６−２４７０３５号公報
【特許文献２】特開２００６−１２３８５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、車体上で荷重を計測するセンサを用いる従来技術においては、２輪での倒立制御を開始する前に、補助輪が接地した状態で荷重や重心バランスを正確に検知することが困難である。倒立走行中において補助輪が接地するような想定外の状態に陥った場合、早急にリカバリー動作を開始する必要があるが、従来の技術では路面から入ってくる外乱と、搭乗者の姿勢変化や荷物の揺れなどの車体上の変化を正確に分離することが困難である。さらにまた、車体上に搭載したセンサでは接地圧を検知することができない。
【０００７】
本発明は、このような問題点を解決するためになされたものであり、走行中に障害物等に衝突するなどの異常が発生しても速やかにリカバリー動作を実行することができる倒立走行ロボット及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した目的を達成するために、本発明に係る倒立走行ロボットは、車体と、前記車体に取り付けられた２以上の車輪と、前記車輪を補助する１以上の補助輪と、倒立を維持するための安定化制御手段と、前記安定化制御手段が算出した制御量に応じて前記車輪を駆動する駆動手段と、前記補助輪と当該補助輪の地面との接地点との間に少なくとも１軸方向以上の圧力を計測できる１以上の感圧センサとを有し、前記安定化制御手段は、停止中及び走行中の前記感圧センサの値を監視し異常の有無を検知するものである。
【０００９】
本発明においては、補助輪と車体間の力（接地圧）を計測することで、通常とは異なる状態を検出し、より安全に立ち上がり動作、立下り動作、停止動作を行うようにすることができる。
【００１０】
また、全荷重を検知するための複数の感圧センサを有するものすることができ、全荷重を検出すれば、全荷重に応じた制御が可能となる。
【００１１】
さらに、前記車体と当該車体の地面との接地点との間に少なくとも１軸以上の感圧センサを有するものとすることができ、車体と地面との間にセンサを設けることで全荷重を検出することができる。
【００１２】
さらにまた、前記安定化制御手段は、前記感圧センサから重心バランスを算出し、当該重心バランスに応じて前記駆動手段を駆動する制御量を調整することができ、重心バランスに応じて駆動手段を制御することができる。
【００１３】
また、前記車体の姿勢を検出する姿勢センサと、前記感圧センサの値から荷重を算出する荷重算出手段と、前記荷重算出手段の算出した加重に応じてゲインを調整するゲイン調整手段とを有し、前記安定化制御手段は、前記姿勢センサの値と、目標姿勢角との偏差に応じて制御量を算出し、前記ゲイン調整手段からのゲインに応じて当該制御量を調整することができる。たとえば、荷重が大きければ、制御ゲインを大きくするなどして、荷重の値を制御に反映することができる。
【００１４】
本発明にかかる倒立走行ロボットの制御方法は、車体と、前記車体に取り付けられた２以上の車輪と、前記車輪を補助する１以上の補助輪と、倒立を維持するための安定化制御手段と、前記安定化制御手段が算出した制御量に応じて前記車輪を駆動する駆動手段と、前記補助輪と当該補助輪の地面との接地点との間に少なくとも１軸方向以上の圧力を計測できる感圧センサとを有する倒立走行ロボットの制御方法であって、停止中及び走行中の前記感圧センサの値から重心バランスを算出する工程と、前記重心バランスの値に基づき走行開始又は走行停止を決定する工程とを有するものとすることができる。
【００１５】
本発明においては、補助輪と車体間の力（接地圧）を計測することで、通常とは異なる状態を検出し、より安全に立ち上がり動作、立下り動作、停止動作を行うようにすることができる。
【００１６】
また、走行中の前記重心バランスの値に応じて通常走行モードと緊急停止モードを切り替える工程を更に有することができる。異常を検出したら、走行を停止するための緊急停止モードに移行することができる。
【００１７】
さらに、姿勢センサからの姿勢角と、目標姿勢角の偏差を求める工程と、前記姿勢角偏差に基づきフィードバック制御を行う制御工程と、前記制御工程にて算出された制御量に基づきモータを駆動する駆動工程とを有し、前記制御工程では、全荷重を検知する感圧センサの値に応じ、前記制御量に乗算する制御ゲインを変更することができる。荷重に応じてフィードバック制御の制御ゲインを調整することができる。
【発明の効果】
【００１８】
本発明によれば、走行中に障害物等に衝突するなどの異常が発生しても速やかにリカバリー動作を実行することができる倒立車輪型移動体を提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本実施の形態にかかる倒立車輪型移動体（以下、倒立走行ロボットという。）は、少なくとも１軸方向以上の力を計測できるセンサを、車体と接地点との間に少なくとも１つ取り付けるものである。このことにより、搭乗者に荷物の重心位置を倒立走行の開始前に計測することができる。特に、ロボットを動かすことなく重心バランスや荷重を計測することができるため、搭乗者に負担がかからない。また、補助輪が安全に離地したことを検知することができる。逆に、補助輪が安全に接地したことも検知することができる。さらに、走行中に補助輪部が想定外の力を検知した際は、障害物に衝突するなどの以上が発生したと判断し、すみやかにリカバリー動作を開始することで安全性が向上する。
【００２０】
このため、本実施の形態にかかる倒立走行ロボットは、移動体（ロボット）の状態を逐次計測するための姿勢センサ及び姿勢角速度センサと、倒立を維持するために必要な制御量を状態量から算出する安定化制御コントローラと、コントローラの出力に応じて車輪駆動用モータを駆動する駆動部と、車輪と接地点との間に少なくとも１軸方向以上の圧力を計測することができる１つ以上のセンサとを有する。
【００２１】
図１は、本実施の形態にかかる倒立走行ロボットを示す模式図である。なお、図１は、倒立走行ロボットの２次元モデルを示すが、実際は紙面奥に向かって２輪以上の車輪を有する。倒立走行ロボット２０１は、車体２１１と、車体２１１に取り付けられ、回転することで車体を持ち上げるスイングアーム２１２とを有する。スイングアーム２１２はスイングアーム軸２１３により車体２１１と結合し、床面に並行な車体２１１をスライド可能に構成されている。スイングアーム２１２のスイングアーム軸２１３とは反対側には駆動輪軸２１４が設けられている。そして、駆動輪軸２１４を中心に駆動輪２１５が回転駆動することで、倒立走行ロボット２０１を移動する。一の駆動輪２１５を補助する２つの補助輪（又はストッパ）２１６が車体２１１に設けられている。
【００２２】
何も制御していない状態では、図１（ａ）に示すように、補助輪２１６などが接地して安定な状態を実現する。安定化制御コントローラ（倒立走行コントローラ）が働いている間は、図１（ｂ）に示すように、駆動輪２１５だけで倒立した状態を維持することができる。
【００２３】
何らかの走行司令が与えられた際は、倒立安定状態を維持したまま、指令走行パターンに応じて走行する。走行が終了したら、適切なタイミングで図１（ａ）に示す状態に戻る。そして安定化制御コントローラをオフする。なお、ここでは、補助輪を有するものとして説明しているが、補助輪に限定するものではなく、倒立制御をオフしたときでも安定静止状態を維持できるように、駆動輪の前後の少なくとも一方でロボット全体を支えるストッパなどでもよい。
【００２４】
ここで、本実施の形態にかかる倒立走行ロボットは、補助輪２１６に感圧センサ２１７が取り付けられている。さらに、スイングアーム２１２にも車体の圧力を測定するための感圧センサ２１７が設けられている。なお、本実施の形態においては、感圧センサを複数設けるものとして説明するが、センサは少なくとも補助輪２１６と接地との間に１つ以上設けるものとする。複数個取り付ける場合は、駆動輪の車軸を挟んで前後に配置するとよい。感圧センサは少なくとも１つ以上の方向の力を測定できるものであればよいが、６軸力センサであってもよい。
【００２５】
この感圧センサ２１７により、図２に示すように、前後の補助輪が接した際の荷重Ｆ１、Ｆ２、Ｆ３を計測する。図３に示すように、補助輪の片側の接地点が地面から離れた状態での荷重を計測してもよい。
【００２６】
荷重Ｆ１、Ｆ２、Ｆ３を測定することで、重心位置（重心バランス）を算出することができる。図２に示すように、補助輪２１６が接地した時点で圧力を計測することで、倒立を開始する前に重心位置を算出することが可能である。なお、本実施の形態のように、補助輪２１６のみならず、スイングアーム部分にも感圧センサを設けると、車体の全荷重を測定することができ、これにより、後述するように、倒立制御のフィードバックゲインを調整することができる。
【００２７】
また、図１（ａ）から図１（ｂ）への立ち上がり動作を開始してから正常に補助輪が離地したか否かを検知することができる。逆に図１（ｂ）から図１（ａ）への立下り動作中に、正常に補助輪が接地したことを検知することができる。立ち上がり又は立ち下がりの異常を検知した場合は、動作を停止するなどただちにリカバリ動作に移行することができる。
【００２８】
さらに、図４（ａ）に示すように、通常走行中、図４（ｂ）に示すように、補助輪部の感圧センサで予想外の外力（Ｆ＞Ｆ０）を検知した際は、障害物に衝突するなどの異常が発生したと判断し、速やかにリカバリー動作を開始することで安全性が向上する。予め、感圧センサの取り付け位置はわかっているため、そのときの車体速度などから何秒後に車軸衝撃が加わるかの予測が可能である。
【００２９】
図５は、本実施の形態にかかる感圧センサの一例を示す図である。図５に示すように、補助輪指示部２１９にバネ２１８でつりさげた補助輪２１６を取り付け、このバネ２１８の変位を変位計測器２１７ａにて測定する。バネの変位を計測し、バネ定数×変位値より、補助輪２１６にかかる力を計測することができる。また、メカニカルなバネ（ダンパ）機構を利用することで、力を計測すると同時に接地する際の衝撃を吸収して快適性を向上させることができる。感圧センサとしては、このようなバネと変位計測器の他、ＭＥＭＳのプレッシャーゲージや、歪みゲージなどを使用することができる。なお、それぞれのセンサのダイナミックレンジは１００ｋｇ程度、分解能として数ｋｇの精度が必要である。
【００３０】
ところで、補助輪部分のみに感圧センサを取り付けた場合、重心バランス（駆動車輪軸まわりのモーメント）は検知できるが、全荷重値を検知することができない。そこで、駆動輪部分に取り付けた感圧センサで計測してもよいが、シート部分に感圧シートを配置することで全荷重を計測してもよい。または、駆動軸部分において、６軸センサを搭載することで正確な鉛直軸方向の力を計測する。または、スイングアーム軸のトルク値から鉛直方向の力を推測する。
【００３１】
図６は、本実施の形態にかかる倒立走行ロボットの制御システムを示すブロック図である。制御システム３００は、倒立走行制御部３０１、ゲイン調整部３０２、荷重・重心バランス計算部３０３、感圧センサ部３０４、姿勢センサ部３０５、異常検知部３０６、モード切替部３０７、倒立走行制御部３０８、スイッチ３０９、緊急停止制御部３１０、偏差算出部３１１を有する。
【００３２】
姿勢センサ部３０５は、ロボットの姿勢角、姿勢角速度を計測し、フィードバック制御するために偏差算出部２１にその値を入力する。偏差算出部３１１は、目標状態と姿勢センサ部３０５で計測した実際の姿勢角との偏差を求める。倒立走行制御部３０１は、姿勢角偏差に基づき、２輪で倒立を維持し、与えられた速度で走行するための制御量（角度、角速度、トルク）を計算する。
【００３３】
緊急停止制御部３１０は、ロボットが異常を検知した際に、後述する異常検知部３０６の制御によりモード切替部３０７がモードを切り替えると制御を開始する。目標姿勢角と姿勢センサ部３０５で計測した実際の姿勢角と偏差から、安全を確保しながら停止するための制御量（角度、角速度、トルク）を計算する。
【００３４】
感圧センサ部３０４はロボットの補助輪や駆動輪付近に設置したセンサで圧力を計測する。感圧センサの計測値は、異常検知部３０６にて走行中は常に閾値判定され、異常な値を検出した場合は、すぐにモード切替部３０７にこれを通知する。
【００３５】
モード切替部３０７は、異常検知部３０６の通知に基づき、倒立走行制御か緊急停止制御かをスイッチ３０９を使用して切り替える。
【００３６】
感圧センサ部３０４の値は、また荷重・重心バランス計算部３０３にも入力され、ここで、荷重及び重心バランスが計算される。ゲイン調整部３０２は、計算された荷重に応じて、倒立走行制御部３０１が算出する制御量に乗算する制御ゲインを出力する。例えば、全荷重が大きい場合には、ゲインを大きくし、制御量を大きくするなどの制御を行う。また、倒立走行制御部３０１は、この荷重のほか、重心バランスも加味して制御量を算出することも可能である。
【００３７】
異常検知・モード切替部は、感圧センサで計測した結果から、正常状態か異常状態かを判断し、正常であれば倒立走行制御の計算結果を選択し、異常と判断した場合は緊急停止制御の結果をロボットの制御量として選択する。倒立走行制御部３０８は、倒立走行制御部３０１又は緊急停止制御部３１０からの制御量（角度、角速度、トルク）などがモータ駆動部３０８ａに入力され、その値に応じてモータ３０８ｂを制御する。さらに、倒立走行制御部３０８は、それらの制御量を実現するＣＰＵ、各種センサを搭載している。
【００３８】
次に、本実施の形態にかかる倒立走行ロボットの動作について説明する。図７は、本実施の形態にかかる倒立走行ロボットの動作を示すフローチャートである。ここでは、補助輪が接地した状態から立ち上がり動作により２輪倒立状態に遷移した後、走行を開始し、目標地点に到達したら立下り動作によって補助輪が接地した状態に戻って停止する処理と、補助輪部のセンサ値を用いた分岐処理について説明する。
【００３９】
まず、荷重・重心バランスを計測する（ステップＳ１）次に、予め定められた許容値と、荷重・重心を比較し、許容範囲内であるか否かを確認する（ステップＳ２）。これにより、安定した倒立が実現可能かチェックする。加重・重心バランスが許容値範囲外であった場合は、倒立困難と判断して動作停止する（ステップＳ１２）。一方、許容範囲内である場合は、倒立制御コントローラがゲイン最適化処理を行う（ステップＳ３）。
【００４０】
次に、立ち上がり動作を行う（ステップＳ４）。先ず、補助輪感圧センサが値を計測し、計測値が閾値以下であるかを判定する。これにより、補助輪が正常に離地したか否かをチェックする。次いで、倒立走行制御をＯＮにし（ステップＳ６）、補助輪感圧センサの計測値が閾値以下であるかをチェックする（ステップＳ７）。補助輪感圧センサが、走行中に所定の閾値を上回ったら、安全に停止するための緊急停止制御を実行する（ステップＳ１３）。
【００４１】
補助輪感圧センサが閾値以下であれば目的地まで走行する。そして、目的地に到着であるかを判定し（ステップＳ８）、目的地に到着の場合は、立下り動作を実施する（ステップＳ９）。そして、補助輪感圧センサの計測値が所定の閾値以上であるか否かを判定する（ステップＳ１０）。これにより、補助輪が正常に着地したか否かを判定する。最後に、倒立走行制御をオフする。
【００４２】
本実施の形態においては、補助輪に感圧センサを取り付けたことから、停止時の重心バランス、走行時の重心バランスを把握することができ、より安全な制御を行うことができる。また、走行時に、感圧センサが所定の値より大きな値となった場合、障害物に衝突したと判断し、ただちに走行を停止することができる。
【００４３】
さらにまた、駆動輪に感圧センサを取り付けるか、シート部分に感圧シートを配置することにより、全荷重を計測することができる。これにより、走行時のフィードバック制御の制御ゲインを変更することができ、搭乗者等の荷重に応じた倒立走行制御を行うことができる。
【００４４】
次に、本実施の形態にかかる倒立走行ロボットの一具体例について説明しておく。本具体例にかかる倒立走行ロボットは、倒立振子制御によって移動する倒立車輪型移動体である。この倒立走行ロボットは、地面に接地した車輪を駆動することによって、所定の位置まで移動する。さらに、ジャイロセンサ等からの出力に応じて車輪を駆動することによって、倒立状態を維持することができる。また、倒立走行ロボットは、倒立状態を維持したまま、操作者が操作する操作量に応じて移動する。
【００４５】
図８及び図９を用いて、本実施の形態の具体例にかかる倒立走行ロボット１００の構成について説明する。図８は倒立走行ロボット１００の構成を模式的に示す側面図であり、図９は倒立走行ロボット１００の構成を模式的に示す正面図である。
【００４６】
図９に示されるように、倒立走行ロボット１００は、倒立車輪型の移動体（走行体）であり、右駆動輪１８と、左駆動輪２０と、右スイングアーム１７と、左スイングアーム１９と、車体１２と、を備えている。車体１２は、右駆動輪１８、及び左駆動輪２０の上方に配置された倒立走行ロボット１００の上体部の一部である。ここで、倒立走行ロボット１００の進行方向（図９の紙面と垂直方向）を前後方向とし、水平面において前後方向に垂直な方向を左右方向（横方向）とする。よって、図９は、進行方向前側から倒立走行ロボット１００を見た図であり、図８は、左側から倒立走行ロボット１００を見た図である。
【００４７】
走行時において、右スイングアーム１７、及び左スイングアーム１９は、車高を調整する。さらに、一方、又は両方のスイングアームを駆動して、車体１２の地面に対する左右の傾斜角度を調整する。例えば、水平な地面を走行中に、右駆動輪１８のみが段差に乗り上げたり、地面が右上がりの傾斜面に変わったりしたとする。この場合、右駆動輪１８が左駆動輪２０よりも高くなる。このため、右スイングアーム１７の関節を駆動して右駆動輪１８を車体１２の方向により近づけるようにする。これにより、右駆動輪１８が高くなった分を吸収でき、横方向（左右方向）において車体１２を水平にすることができる。
【００４８】
右スイングアーム１７側端側には右マウント２６が固定され、車軸３０を介して右駆動輪１８を回転可能に支持する。右駆動輪１８は、車軸３０を介して右輪駆動モータ３４の回転軸Ｃ１に固定されている。右輪駆動モータ３４は、右マウント２６内に固定され、車輪用駆動部（アクチュエータ）として機能する。
【００４９】
左スイングアーム１９の側端側には左マウント２８が固定され、車軸３２を介して左駆動輪２０を回転可能に支持する。左駆動輪２０は、車軸３２を介して左輪駆動モータ３６の回転軸Ｃ２に固定されている。左輪駆動モータ３６は、左マウント２８内に固定され、車輪用駆動部（アクチュエータ）として機能する。右駆動輪１８と左駆動輪２０は、地面と接地し、略同軸上で回転する一対の車輪である。右駆動輪１８と左駆動輪２０が、回転することによって、倒立走行ロボット１００が移動する。また、右輪駆動モータ３４、及び左輪駆動モータ３６が車輪を駆動させる駆動輪モータとなる。右マウント２６、及び左マウント２８が左右の駆動輪を回転可能に支持する車台となる。
【００５０】
右輪駆動モータ３４及び左輪駆動モータ３６（以下、モータ３４、３６と称することもある。）は例えば、サーボモータである。尚、車輪用アクチュエータは、電気的なモータに限らず、空圧、油圧を使用したアクチュエータでもよい。なお、以下の説明において、右駆動輪１８と左駆動輪２０をまとめて、駆動輪と呼ぶこともある。
【００５１】
また、右マウント２６は、右輪エンコーダ５２を備えている。右輪エンコーダ５２は、右駆動輪１８の回転量としての回転角を検出する。左マウント２８は、左輪エンコーダ５４を備えている。左輪エンコーダ５４は、左駆動輪２０の回転量としての回転角を検出する。
【００５２】
右スイングアーム１７は、右上リンク２１と、右スイング軸６２と、右スイングアーム駆動モータ６０を有している。左スイングアーム１９は、左上リンク２２と、左スイング軸６６と、左スイングアーム駆動モータ６４を有している。車体１２の下部には、右上リンク２１及び左上リンク２２が固定されている。右上リンク２１には、右スイングアーム駆動モータ６０が固定され、右スイング軸６２を介して、回転軸Ｃ４回りに、右スイングアーム１７を駆動する。左スイング軸６６には、左スイングアーム駆動モータ６４が固定され、左スイング軸６６を介して、回転軸Ｃ５周りに左スイングアーム１９を駆動する。このように、右スイングアーム１７には、回転軸Ｃ４回りに回転する回転関節が設けられ、左スイングアーム１９には、回転軸Ｃ５回りに回転する回転関節が設けられている。右スイングアーム１７及び左スイングアーム１９（以下、スイングアーム１７、１９と称することもある。）に設けられた関節をスイングアーム関節とする。
【００５３】
車体１２には、搭乗席駆動モータ７０、ラックアンドピニオン７２、ジャイロセンサ４８、及び搭乗席７４が取り付けられている。また、車体１２には、対向して、右上リンク２１及び左上リンク２２が取り付けられている。
【００５４】
車体１２の中央近傍には、ラックアンドピニオン７２が設けられている。ラックアンドピニオンのラックは、前後方向に沿って設けられている。ラックアンドピニオン７２によって、搭乗席７４が支持されている。即ち、搭乗席７４は、ラックアンドピニオン７２を介して車体１２に取り付けられている。搭乗席７４は、搭乗者が座ることができる椅子の形状を有する。なお、ラックアンドピニオン７２の代わりにボールネジなどを用いてスライドさせてもよい。
【００５５】
車体１２の上部には、搭乗席駆動モータ７０が固定されている。搭乗席７４と搭乗席駆動モータ７０は、ラックアンドピニオン７２によって連結されている。搭乗席駆動モータ７０は、回転軸Ｃ３回りに回転する。これにより、ラックアンドピニオン７２のピニオンに回転力が加えられる。搭乗席駆動モータ７０の回転運動は、ラックアンドピニオン７２によって、直線運動に変換される。すなわち、搭乗席駆動モータ７０を駆動すると、車体１２に対する搭乗席７４の位置が前後にスライドする。このとき、搭乗席７４と搭乗者又は搭乗物との合成重心位置が、車体１２に対して前後に変化する。なお、車体１２に対して、搭乗席７４と搭乗者又は搭乗物との合成重心位置を変化させる手段としては、スライド機構の他に、回転軸機構、旋回機構などで実現することも可能である。また、搭乗席駆動モータ７０の動力をギアやベルトやプーリなどを介して、搭乗席７４に伝達してもよい。ここで、搭乗席駆動モータ７０によって前後に移動する構成全体を車体部７７とする。車体部７７には、搭乗席７４や操作モジュール４６等が含まれる。もちろん、車体１２を駆動するアクチュエータを備える場合は、車体部７７に車体１２も含まれる。また、搭乗席駆動モータ７０には、スライド位置を計測するためのエンコーダ（図示せず）が設けられている。
【００５６】
回転軸Ｃ３は回転軸Ｃ１及びＣ２と平行であり、回転軸Ｃ１及びＣ２の上方に位置する。回転軸Ｃ３と回転軸Ｃ１との間に右スイングアーム１７が設けられ、回転軸Ｃ３と回転軸Ｃ２との間に左スイングアーム１９が設けられている。右スイングアーム駆動モータ６０は、右スイングアーム１７を回転軸Ｃ４回りに回転させ、左スイングアーム駆動モータ６４は、左スイングアーム１９を回転軸Ｃ５回りに回転させる。通常の走行時には、回転軸Ｃ１〜回転軸Ｃ５は水平になっている。
【００５７】
さらに、倒立走行ロボット１００には、転倒を防止するために、２つの補助輪５１が設けられている。補助輪５１は、補助輪支持ブロック５５に対して回転可能に支持されている。そして、補助輪支持ブロック５５は車体１２に取り付けられている。ここでは、一方の補助輪５１は、駆動輪の前方側に配置され、他方の補助輪５１は駆動輪の後方側に配置されている。補助輪５１は、従動輪であり、倒立走行ロボット１００の移動にしたがって回転する。なお、本実施の形態にかかる倒立走行ロボット１００においては、この補助輪５１の上部に感圧センサ（不図示）が取り付けられている。補助輪５１が接地した時点でそのときの垂直方向の圧力を測定可能となっている。
【００５８】
通常の走行を開始するときには、スイングアーム関節を伸ばすことによって、補助輪５１を離地させる。すなわち、車体１２が上方に移動するように、スイングアーム関節を移動して、補助輪５１を上方に移動させる。停止状態では、スイングアーム関節を縮めることによって、補助輪５１を接地させる。すなわち、スイングアーム関節を屈曲させていくことで、車体１２が地面に近づき、補助輪５１が下方に移動する。このように、補助輪５１を上下に移動させることで、補助輪５１が接地した接地状態と、離地して二輪で走行する離地状態とを切換えることができる。このように、倒立走行ロボット１００は、立ち上がり時にスイングアームを使って、４輪の接地状態から２輪状態の離地状態へと移行していく。
【００５９】
一方の補助輪５１の回転軸は、回転軸Ｃ１、Ｃ２よりも前側上方にあり、他方の補助輪５１の回転軸は、回転軸Ｃ１，Ｃ２よりも後側上方にある。すなわち、補助輪５１の一方は、駆動輪の車軸よりも前方に配置され、他方は、駆動輪の車軸よりも後方に配置される。これにより、倒立走行ロボット１００が前後に転倒するのを防止することができる。なお、補助輪以外の転倒防止部材によって、転倒を防止してもよい。例えば、前後方向に突出したストッパなどで転倒を防止することができる。
【００６０】
車体１２には、バッテリーモジュール４４と、センサ５８が収納されている。センサ５８は、例えば、光学式の障害物検知センサであり、倒立走行ロボット１００の前方に障害物を検知すると、検知信号を出力する。また、センサ５８は、障害物センサ以外のセンサであってもよい。例えば、センサ５８として、加速度センサを用いることも可能である。もちろん、センサ５８として、２以上のセンサが用いられていてもよい。センサ５８は倒立走行ロボット１００の状態に応じて変化する変化量を検出する。バッテリーモジュール４４は、センサ５８、ジャイロセンサ４８、右輪駆動モータ３４、左輪駆動モータ３６、右スイングアーム駆動モータ６０、左スイングアーム駆動モータ６４、搭乗席駆動モータ７０、及び制御部８０等に対して電力を供給する。
【００６１】
車体１２上には、ジャイロセンサ４８が設けられている。ジャイロセンサ４８は、車体１２の傾斜角に対する角速度を検出する。ここで、車体１２の傾斜角は、倒立走行ロボット１００の重心位置が車軸３０、３２の鉛直上方に伸びる軸からの傾斜度合いであり、例えば倒立走行ロボット１００の進行方向前方に車体１２が傾斜している場合を「正」とし、倒立走行ロボット１００の進行方向後方に車体１２が傾斜している場合を「負」として表わす。したがって、車体１２が水平になっている状態では、傾斜角度が０°になる。そして、通常の走行時には、傾斜角度の制御目標値が０°なっている。この制御目標値に追従するように、フィードバック制御されている。また、前後方向における傾斜角度を倒立走行ロボット１００の姿勢の傾斜角度とする。
【００６２】
また、進行方向の前後方向に加えて、左右方向の傾斜角速度はロール、ピッチ、ヨーの３軸のジャイロセンサ４８を用いて測定される。このように、ジャイロセンサ４８は、車体１２の傾斜角の変化を、車体１２の傾斜角速度として測定する。もちろん、ジャイロセンサ４８は他の箇所に取り付けられていてもよい。ジャイロセンサ４８で測定された傾斜角速度は、倒立走行ロボット１００の姿勢の変化に応じて変化する。即ち、傾斜角速度は、車軸の位置に対する車体１２の重心位置に応じて変化する変化量である。従って、外乱などによって、姿勢の傾斜角度が急激に変化すると、傾斜角速度の値が大きくなる。
【００６３】
搭乗席７４の側面には、操作モジュール４６が設けられている。操作モジュール４６には、操作レバー（図示せず）及びブレーキレバー（図示せず）が設けられている。操作レバーは、搭乗者が倒立走行ロボット１００の走行速度や走行方向を調整するための操作部材である。搭乗者は、操作レバーの操作量を調整することによって倒立走行ロボット１００の移動速度を調整することができる。また、搭乗者は、操作レバーの操作方向を調整することによって倒立走行ロボット１００の移動方向を指定することができる。倒立走行ロボット１００は、操作レバーに加えられた操作に応じて、前進、停止、後退、左折、右折、左旋回、右旋回することができる。搭乗者がブレーキレバーを倒すことによって、倒立走行ロボット１００を制動することができる。倒立走行ロボット１００の進行方向は、水平面内において、車軸３０、３２と垂直な方向になる。また、操作モジュール４６には、制御モードを切換えるスイッチが設けられている。
【００６４】
さらに、搭乗席７４の背もたれ部分には、制御部８０が実装されている。制御部８０は、搭乗者が操作モジュール４６に対して行なった操作に追従して、右輪駆動モータ３４及び左輪駆動モータ３６を制御し、倒立走行ロボット１００の走行（移動）を制御する。制御部８０は、操作モジュールでの操作に応じて、右輪駆動モータ３４及び左輪駆動モータ３６を制御する。これにより、操作モジュール４６での操作に応じた加速度、速度指令値で右輪駆動モータ３４及び左輪駆動モータ３６が駆動する。
【００６５】
制御部８０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、通信用のインターフェースなどを有し、倒立走行ロボット１００の各種動作を制御する。そして、この制御部８０は、例えばＲＯＭに格納された制御プログラムに従って各種の制御を実行する。制御部８０は、操作モジュール４６での操作に応じて、所望の加速度、及び目標速度になるように、また、倒立走行ロボット１００が倒立を維持するように、ロバスト制御、状態フィードバック制御、ＰＩＤ制御などの周知のフィードバック制御により、右輪駆動モータ３４及び左輪駆動モータ３６を制御する。これにより、倒立走行ロボット１００が、操作モジュール４６での操作に応じて加減速しながら走行する。
【００６６】
すなわち、操作モジュール４６は、搭乗者の操作によって与えられた操作量を取得し、この操作量を操作信号として、制御部８０に出力する。そして、制御部８０は、操作信号に基づいて、倒立走行ロボット１００の目標加速度や、目標速度を算出し、これに追従するように、倒立走行ロボット１００をフィードバック制御する。これにより、倒立走行ロボット１００を倒立させつつ、移動させることができる。
【００６７】
また、制御部８０は、右輪駆動モータ３４、左輪駆動モータ３６、右スイングアーム駆動モータ６０、左スイングアーム駆動モータ６４、及び搭乗席駆動モータ７０を制御する。ここで、搭乗席駆動モータ７０が右輪駆動モータ３４及び左輪駆動モータ３６と協調して動作するよう、制御部８０が制御を行う。すなわち、倒立を安定させるように、駆動輪を回転駆動するとともに搭乗席７４をスライド移動させる。これにより、車体１２の傾斜角度が小さくなり、倒立を安定させることができる。このようにして、搭乗席駆動モータ７０が右スイングアーム駆動モータ６０、左スイングアーム駆動モータ６４、及び搭乗席駆動モータ７０と協調して動作する。
【００６８】
次に、上記の制御を行う制御部８０の構成について図１０を用いて説明する。図１０は、制御部８０を含む制御系の構成を示すブロック図である。図１０に示すように、制御部８０は、スイングアーム制御部８１と、駆動輪・スライド協調制御部８２とを備えている。また、センサ類８３は、倒立走行ロボット１００に設けられている各種センサを示すものであり、例えば、ジャイロセンサ４８、右輪エンコーダ５２、左輪エンコーダ５４、センサ５８等を含んでいる。そして、制御部８０は、倒立制御計算を行い、制御目標値を算出する。そして、制御目標値と現在値との偏差を求める。尚、現在値は、例えば、センサ類８３からの出力に基づいて算出することができる。そして、この偏差に所定のフィードバックゲインを乗じて、フィードバック制御を行う。
【００６９】
また、倒立走行ロボット１００には、各モータを駆動制御するアンプが設けられている。ここで、右輪駆動モータ３４、左輪駆動モータ３６、右スイングアーム駆動モータ６０、左スイングアーム駆動モータ６４、搭乗席駆動モータ７０に設けられているアンプをそれぞれ、アンプ３４ａ、アンプ３６ａ、アンプ６０ａ、アンプ６４ａ、アンプ７０ａとする。各アンプは、制御部８０からの制御信号に基づいて動作する。制御部８０は、搭乗席駆動モータ７０のアンプ７０ａにスライド位置やスライド力に応じた制御信号を出力する。また、モータ３４、３６のアンプ３４ａ、３６ａに車輪トルクに応じた制御信号を出力する。
【００７０】
スイングアーム制御部８１は、右スイングアーム駆動モータ６０、及び左スイングアーム駆動モータ６４を制御する。例えば、スイングアーム制御部８１は制御信号を出力して、スイングアームが伸縮するようにスイングアーム関節６７を駆動する。これにより、補助輪５１が接地している接地状態と、離地している離地状態とを切換えることができる。また、傾斜面を走行するときは、ジャイロセンサ４８などの出力に基づいて、制御信号を出力する。これにより、傾斜面の角度が吸収され、車体１２が水平になる。スイングアーム制御部８１からの制御信号は、アンプ６０ａ、６４ａを介して、右スイングアーム駆動モータ６０、左スイングアーム駆動モータ６４に入力され、右スイングアーム駆動モータ６０、左スイングアーム駆動モータ６４が駆動する。なお、スイングアーム関節の回転角を検出するエンコーダを設けて、フィードバック制御してもよい。すなわち、スイングアーム関節６７の関節角度や関節角速度に応じてフィードバック制御することができる。
【００７１】
駆動輪・スライド協調制御部８２は、右輪駆動モータ３４、左輪駆動モータ３６、及び搭乗席駆動モータ７０を協調して制御する。すなわち、駆動輪・スライド協調制御部８２は、右輪駆動モータ３４、左輪駆動モータ３６、及び搭乗席駆動モータ７０に対する制御目標値を算出する。例えば、姿勢の傾斜角度、姿勢の傾斜角速度、並びに駆動輪の回転速度、及び搭乗席７４のスライド速度が制御目標値として算出される。車体１２の傾斜角速度は、ジャイロセンサ４８で測定される。そして、傾斜角速度を積分することによって、車体１２の傾斜角度が求まる。例えば、倒立走行時には、姿勢の目標傾斜角度が０°になるようにフィードバック制御する。また、その場で停止させる場合は、目標傾斜角速度が０になるようにフィードバック制御する。
【００７２】
また、駆動輪７８の回転速度は、右輪エンコーダ５２、及び左輪エンコーダ５４の出力によって、求めることができる。スライド機構６８のスライド速度は、搭乗席駆動モータ７０に設けられているエンコーダの出力により求めることができる。また、スライド機構６８は、搭乗席駆動モータ７０の回転トルクにより求めることができる。そして、これらの制御目標値と、現在値との偏差に適切なフィードバックゲインをかけることで、フィードバック制御が行われる。もちろん、駆動輪・スライド協調制御部８２による、右輪駆動モータ３４、左輪駆動モータ３６、及び搭乗席駆動モータ７０の協調制御は、上記の制御に限られるものではない。
【００７３】
また、制御部８０は、接地状態から離地状態に移行する立ち上がり時において、補助輪５１が完全に離地してから、協調制御を開始する。すなわち、スイングアームの関節角度がある角度に駆動するまで、協調制御による倒立を開始しない。したがって、スイングアームの関節角度がある角度まで駆動した後に、駆動輪とスライド機構の動作が開始する。このようにすることで、立ち上がり時における、安全性を向上することができる。すなわち、補助輪５１が少しでも接地している段階では、倒立制御を行っても、姿勢の傾斜角度、及び傾斜角速度が変化しないおそれがある。傾斜角度や傾斜角速度が変化しない状態で、これらに基づいてフィードバック制御を行うと制御を安定させることができない。すなわち、駆動輪を駆動しても、傾斜角度や傾斜角速度が全く変化しないため、倒立制御が不安定になり、暴走してしまうことがある。しかしながら、本実施の形態に示すように、スイングアーム関節の角度を検出することで、補助輪の両方が確実に地面から離れていることを確認することができる。すなわち、補助輪５１が完全に離地した後に協調動作を開始することで、安全に立ち上がることが可能になる。
【００７４】
このように、制御部８０は、車体１２の高さを変更する際において、スイングアーム関節が一定の駆動量以上、駆動したか否かを判定している。すなわち、スイングアーム関節の関節角度が一定以上になったか否かを判定している。そして、一定の駆動量以上になった後に、協調制御を開始する。すなわち、ある所定の角度以上、スイングアーム関節を駆動したら、協調制御の計算を開始する。したがって、スイングアーム関節が所定の角度になるまでは、協調制御の計算を行わない。これにより、補助輪５１が地面に接触した状態で倒立制御が行われるのを防止することができ、より安定に倒立させることができる。
【００７５】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施の形態にかかる倒立車輪型移動体（以下、倒立走行ロボットという。）を示す模式図である。
【図２】前後の補助輪が接した際の荷重Ｆ１、Ｆ２、Ｆ３を説明する図である。
【図３】補助輪の片側の接地点が地面から離れた状態での荷重を説明する図である。
【図４】（ａ）及び（ｂ）は、それぞれ、通常走行中、及び補助輪部の感圧センサで予想外の外力（Ｆ＞Ｆ０）を検知した際を示す図である。
【図５】本発明の実施の形態にかかる感圧センサの一例を示す図である。
【図６】本発明の実施の形態にかかる倒立走行ロボットの制御システムを示すブロック図である。
【図７】本発明の実施の形態にかかる倒立走行ロボットの動作を示すフローチャートである。
【図８】本発明の実施の形態の具体例にかかる倒立走行ロボットの構成を模式的に示す側面図である。
【図９】本発明の実施の形態の具体例にかかる倒立走行ロボットの構成を模式的に示す正面図である。
【図１０】本発明の実施の形態の具体例にかかる制御部を含む制御系の構成を示すブロック図である。
【符号の説明】
【００７７】
１２  車体、１７  右スイングアーム、１８  右駆動輪、
１９  左スイングアーム、２０  左駆動輪、２１  偏差算出部、
２１  右上リンク、２２  左上リンク、２６  右マウント、
２８  左マウント、３０  車軸、３２  車軸、
３４  右輪駆動モータ、３４ａ、３６ａ、６０ａ、６４ａ、７０ａ  アンプ、
３６  左輪駆動モータ、４４  バッテリーモジュール、４６  操作モジュール、
４８  ジャイロセンサ、５１  補助輪、５２  右輪エンコーダ、
５４  左輪エンコーダ、５５  補助輪支持ブロック、５８  センサ、
６０  右スイングアーム駆動モータ、６２  右スイング軸、
６４  左スイングアーム駆動モータ、６６  左スイング軸、
６７  スイングアーム関節、６８  スライド機構、７０  搭乗席駆動モータ、
７２  ラックアンドピニオン、７４  搭乗席、７７  車体部、
７８  駆動輪、８０  制御部、８１  スイングアーム制御部、
８２  駆動輪・スライド協調制御部、８３  センサ類、
１００、２０１  倒立走行ロボット、２１１  車体、
２１２  スイングアーム、２１３  スイングアーム軸、
２１４  駆動輪軸、２１５  駆動輪、２１６  補助輪、
２１７  感圧センサ、２１７ａ  変位計測器、２１８  バネ、
２１９  補助輪指示部、３００  制御システム、３０１  倒立走行制御部、
３０２  ゲイン調整部、３０３  荷重・重心バランス計算部、
３０４  感圧センサ部、３０５  姿勢センサ部、３０６  異常検知部、
３０７  モード切替部、３０８  倒立走行制御部、３０８ａ  モータ駆動部、
３０８ｂ  モータ、３０９  スイッチ、３１０  緊急停止制御部、
３１１  偏差算出部
【図１】
2009101484.tif 000003
【図２】
2009101484.tif 000004
【図３】
2009101484.tif 000005
【図４】
2009101484.tif 000006
【図５】
2009101484.tif 000007
【図６】
2009101484.tif 000008
【図７】
2009101484.tif 000009
【図８】
2009101484.tif 000010
【図９】
2009101484.tif 000011
【図１０】
2009101484.tif 000012