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