(57)【要約】【課題】接地面が傾斜していたとしても、搭乗者が不安感を覚えることを抑制する態様で移動体の姿勢制御を実現すること。【解決手段】ロボット１００は、車輪部２２０に対して本体部２１０が回動可能に連結し、車輪部２２０の駆動に応じて車輪部２２０に対して本体部２１０が倒立した倒立状態となって空間移動する移動体である。ロボット１００は、倒立状態のとき、車輪部２２０が接地する接地面と本体部２１０間の距離を複数個所にて測定し、この測定結果に基づいて接地面の平坦性を評価し、接地面の平坦性の評価結果に応じて車輪部２２０と本体部２１０間の相対位置を制御することで倒立状態の当該移動体の姿勢を制御する。この構成を採用することによって、接地面が傾斜していたとしても、搭乗者が不安感を覚えることを抑制する態様で移動体の姿勢制御を実現することができる。【選択図】図１
2011065231.tif 000002
【特許請求の範囲】
【請求項１】
車輪部に対して本体部が回動可能に連結し、前記車輪部の駆動に応じて前記車輪部に対して前記本体部が倒立した倒立状態となって空間移動する移動体であって、
当該移動体が倒立状態のとき、前記車輪部が接地する接地面と前記本体部間の距離を複数個所にて測定し、
この測定結果に基づいて前記接地面の平坦性を評価し、当該接地面の平坦性の評価結果に応じて前記車輪部と前記本体部間の相対位置を制御することで倒立状態の当該移動体の姿勢を制御する、移動体。
【請求項２】
前記接地面の平坦性の評価結果に応じて前記車輪部に対して前記本体部を回動させることで、倒立状態の当該移動体の姿勢を制御することを特徴とする請求項１に記載の移動体。
【請求項３】
前記接地面の平坦性の評価結果に応じて、前記接地面に対して交差する軸線に沿って前記車輪部と前記本体部間の相対位置を制御することで、倒立状態の当該移動体の姿勢を制御することを特徴とする請求項１又は２に記載の移動体。
【請求項４】
前記車輪部に対する前記本体部の角速度を検出する第１検出手段と、
前記車輪部に対して前記本体部が倒立状態のとき、前記車輪部が接地する接地面と前記本体部間の距離を測定する距離測定手段と、
少なくとも前記第１検出手段が検出した前記角速度に応じて当該ロボットの姿勢を制御するための信号を生成すると共に、前記距離測定手段による測定値に基づいて、倒立状態の当該ロボットの姿勢を補正するための信号を生成する信号生成手段と、
を備えることを特徴とする請求項１乃至３のいずれか一項に記載の移動体。
【請求項５】
前記第１検出手段は、ＭＥＭＳ技術を活用して製造されたジャイロセンサを含むことを特徴とする請求項４に記載の移動体。
【請求項６】
前記本体部の加速度を複数の方向にて検出し、検出した加速度に基づいて鉛直方向に対して当該ロボットの固有軸が成す角度を算出する第２検出手段を更に備え、
前記信号生成手段は、前記第１及び第２検出手段の出力値に基づいて、当該ロボットの姿勢を制御するための信号を生成することを特徴とする請求項４又は５に記載の移動体。
【請求項７】
前記距離測定手段の測定値に基づいて、前記第２検出手段が算出した前記角度を補正することを特徴とする請求項６に記載の移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は移動体に関し、特に倒立二輪型の移動体に関する。
【背景技術】
【０００２】
移動体の倒立制御を実現するためには、移動体に対してジャイロセンサ及び加速度センサを組み込むことが一般的である。この場合、移動体に組み込まれるセンサ類は、センサ出力に含まれる誤差、及びセンサ出力の経時的な劣化に対して配慮することが求められる。
【０００３】
特許文献１には、倒立二輪型の移動体において、車輪に対する車体の傾斜角を高精度に推定する機構が開示されている。具体的には、加速度センサの検出した加速度に基づいて推定された傾斜角と、ジャイロセンサの検出した角速度に基づいて、移動体の線形モデル式をオブザーバとして、車体の傾斜角を推定する手段を有し、車体の傾斜角を推定する場合に、オブザーバゲインＫの値を変化させて前記加速度センサによる傾斜角或いは前記ジャイロセンサによる傾斜角に近づける移動体が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許４２８１７７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のようにジャイロセンサ及び加速度センサを移動体に対して組み込むことによって、移動体の姿勢制御が行われる。しかしながら、これらのセンサに基づく移動体の姿勢制御は、移動体の路面（接地面）が平坦であることが前提となっている（つまり、路面＝鉛直方向に沿う軸線が垂線となる面）。従って、そのような前提条件の下で移動体が傾斜面上を移動する場合には、鉛直方向に沿う軸線（以下、鉛直軸線と呼ぶこともある）に対して傾斜面がなす角度に応じて、車輪に対して本体が前方又は後方に傾き、本体に搭乗している搭乗者に対して不安感を与えてしまうおそれがある。なお、傾斜面とは、鉛直軸線に対して直角以外の角度で交差している路面に相当する。
【０００６】
上述の説明から明らかなように、路面が傾斜していたとしても、搭乗者が不安感を覚えることを抑制する態様で移動体の姿勢制御を実現することが強く求められている。
【課題を解決するための手段】
【０００７】
本発明に係る移動体は、車輪部に対して本体部が回動可能に連結し、前記車輪部の駆動に応じて前記車輪部に対して前記本体部が倒立した倒立状態となって空間移動する移動体であって、当該移動体が倒立状態のとき、前記車輪部が接地する接地面と前記本体部間の距離を複数個所にて測定し、この測定結果に基づいて前記接地面の平坦性を評価し、当該接地面の平坦性の評価結果に応じて前記車輪部と前記本体部間の相対位置を制御することで倒立状態の当該移動体の姿勢を制御する。この構成を採用することによって、接地面が傾斜していたとしても、搭乗者が不安感を覚えることを抑制する態様で移動体の姿勢制御を実現することができる。
【０００８】
前記接地面の平坦性の評価結果に応じて前記車輪部に対して前記本体部を回動させることで、倒立状態の当該移動体の姿勢を制御する、と良い。部品点数を増加させることなく移動体を実現させることができる。
【０００９】
前記接地面の平坦性の評価結果に応じて、前記接地面に対して交差する軸線に沿って前記車輪部と前記本体部間の相対位置を制御することで、倒立状態の当該移動体の姿勢を制御する、と良い。移動体の姿勢制御を高度に実現することができる。
【００１０】
前記車輪部に対する前記本体部の角速度を検出する第１検出手段と、前記車輪部に対して前記本体部が倒立状態のとき、前記車輪部が接地する接地面と前記本体部間の距離を測定する距離測定手段と、少なくとも前記第１検出手段が検出した前記角速度に応じて当該ロボットの姿勢を制御するための信号を生成すると共に、前記距離測定手段による測定値に基づいて、倒立状態の当該ロボットの姿勢を補正するための信号を生成する信号生成手段と、を備える、と良い。
【００１１】
前記第１検出手段は、ＭＥＭＳ技術を活用して製造されたジャイロセンサを含む、と良い。
【００１２】
前記本体部の加速度を複数の方向にて検出し、検出した加速度に基づいて鉛直方向に対して当該ロボットの固有軸が成す角度を算出する第２検出手段を更に備え、前記信号生成手段は、前記第１及び第２検出手段の出力値に基づいて、当該ロボットの姿勢を制御するための信号を生成する、と良い。
【００１３】
前記距離測定手段の測定値に基づいて、前記第２検出手段が算出した前記角度を補正する、と良い。
【発明の効果】
【００１４】
本発明によれば、接地面が傾斜していたとしても、搭乗者が不安感を覚えることを抑制する態様で移動体の姿勢制御を実現することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態にかかる倒立二輪型ロボットの概略的な斜視図である。
【図２】本発明の第１実施形態にかかる倒立二輪型ロボットの概略的なブロック図である。
【図３】本発明の第１実施形態にかかる平坦面を移動する倒立二輪型ロボットの概略的な模式図である。
【図４】本発明の第１実施形態にかかる傾斜面を移動する倒立二輪型ロボットの概略的な模式図である。
【図５】本発明の第１実施形態にかかる倒立二輪型ロボットに設定される軸線を示す概略的な説明図である。
【図６】本発明の第１実施形態にかかる倒立二輪型ロボットの傾斜面及び傾斜角の検出方法を示す説明図である。
【図７】本発明の第１実施形態にかかる倒立二輪型ロボットの車体傾斜角の検出方法を示す説明図である。
【図８】本発明の第１実施形態にかかる倒立二輪型ロボットの概略的な底面図である。
【図９】本発明の第１実施形態にかかる倒立二輪型ロボットの概略的な底面図である。
【図１０】本発明の第１実施形態にかかる倒立二輪型ロボットの方向転換動作を示す説明図である。
【図１１】本発明の第１実施形態にかかる倒立二輪型ロボットの動作を示す概略的なフローチャートである。
【図１２】本発明の第１実施形態にかかる倒立二輪型ロボットの動作を示す概略的なフローチャートである。
【図１３】本発明の第２実施形態にかかる倒立二輪型ロボットの概略的なブロック図である。
【図１４】本発明の第２実施形態にかかる倒立二輪型ロボットの概略的な模式図である。
【図１５】本発明の第２実施形態にかかる倒立二輪型ロボットの昇降装置の概略的な構成を示す分解模式図である。
【図１６】本発明の第２実施形態にかかる倒立二輪型ロボットの昇降装置の概略的な構成を示す模式図である。
【図１７】本発明の第２実施形態にかかる倒立二輪型ロボットの動作を示す概略的なフローチャートである。
【図１８】本発明の第２実施形態にかかる倒立二輪型ロボットの動作を示す概略的なフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、各実施の形態は、説明の便宜上、簡略化されている。図面は簡略的なものであるから、図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。図面は、もっぱら技術的事項の説明のためのものであり、図面に示された要素の正確な大きさ等は反映していない。同一の要素には、同一の符号を付し、重複する説明は省略するものとする。上下左右といった方向を示す言葉は、図面を正面視した場合を前提として用いるものとする。
【００１７】
［第１実施形態］
以下、図１乃至図１２を参照して本発明の第１実施形態について説明する。図１は、倒立二輪型ロボットの概略的な斜視図である。図２は、倒立二輪型ロボットの概略的なブロック図である。図３は、平坦面を移動する倒立二輪型ロボットの概略的な模式図である。図４は、傾斜面を移動する倒立二輪型ロボットの概略的な模式図である。図５は、倒立二輪型ロボットに設定される軸線を示す概略的な説明図である。図６は、倒立二輪型ロボットの傾斜面の検出方法を示す説明図である。図７は、倒立二輪型ロボットの車体傾斜角度の検出方法を示す説明図である。図８及び図９は、倒立二輪型ロボットの概略的な底面図である。図１０は、倒立二輪型ロボットの方向転換動作を示す説明図である。図１１及び図１２は、倒立二輪型ロボットの動作を示す概略的なフローチャートである。
【００１８】
図１に示すように、倒立二輪型ロボット（移動体）１００は、本体部２１０、及び車輪部２２０を有する。本体部２１０は、座席部２１１、一組の肘掛部２１２、及び足台部２１３を有する。肘掛部２１２の先端部分には、ボールコントローラ２１５が設けられている。本体部２１０内には、各種センサ、マイコン、電源、及びリンク機構等の様々な電気／機械コンポーネントが内蔵されているものとする。
【００１９】
倒立二輪型ロボット１００（以下、単にロボット１００と呼ぶ場合もある）の搭乗者は、座席部２１１に着座した状態でボールコントローラ２１５を操作する。ロボット１００は、搭乗者によるボールコントローラ２１５の操作に応じて動作する。例えば、操縦者がボールコントローラ２１５を前方に回転させると、ロボット１００は倒立状態を維持したまま前方に移動する。また、操縦者がボールコントローラ２１５を右に回転させると、倒立状態を維持したままロボット１００はその場に居ながら右回転する。なお、ロボット１００は、搭乗者によるスタートスイッチのスイッチオンに応じて、自動的に倒立状態になるものとする。
【００２０】
車輪部２２０に対して本体部２１０は、ｘ軸に沿う方向（ピッチ方向）へ揺動可能に構成されている。車輪部２２０に対して本体部２１０は、ｙ軸に沿う方向（ロール方向）へ揺動可能に構成されていない。なお、図１に示すｚ軸方向は、鉛直方向に一致する。
【００２１】
図２に示すように、ロボット１００は、指示入力部（入力手段）１０、加速度検出部（検出手段）１１、角速度検出部（検出手段）１２、距離測定部（距離測定手段）１３、エンコーダ部（検出手段）１４、メモリ（記憶手段）１５、コントローラ（信号生成手段）２０、及び駆動部（駆動手段）３０を有する。駆動部３０は、加算部３１、モータアンプ部３２、シャント抵抗部３３、トルク計算部３４、及びモータ部３５を有する。なお、車輪部２２０を構成する一組の車輪に対応して、一組の駆動部３０が設けられているものとする。
【００２２】
ロボット１００は、指示入力部１０から出力されるデジタル値Ｖ０、加速度検出部１１から出力されるデジタル値Ｖ１、角速度検出部１２から出力されるデジタル値Ｖ２、距離測定部１３から出力されるデジタル値Ｖ３、エンコーダ部１４から出力されるデジタル値Ｖ４に基づいて、駆動部３０（車輪部２２０）を駆動し、倒立状態を維持しながら、所望の方向へ移動し、又はその場に居ながら旋回する。本実施形態においては、ロボット１００が倒立状態となった後、距離測定部１３の測定値に基づいて、車輪部２２０に対する本体部２１０のピッチ方向の角度を補正する。この構成を採用することによって、路面（接地面）が傾斜していたとしても、車輪部２２０に対する本体部２１０の傾きを適正に保ち、搭乗者が不安を覚えることを効果的に抑制することができる。
【００２３】
指示入力部１０は、ロボット１００の操縦者の操作指示の入力を受け付け、入力された操作指示に対応する指令値Ｖ０を生成する。指示入力部１０で生成された指令値Ｖ０は、コントローラ２０に伝送される。なお、指示入力部１０は、図１に示すボールコントローラ２１５に対応する。
【００２４】
加速度検出部１１は、ｘ軸、ｚ軸方向の加速度を検出し、次の計算式を実行して傾斜角値Ｖ１を生成する。
【００２５】
Ｖ１＝Ａｔａｎ（Ｇｘ／Ｇｚ）
但し、Ａ：任意の定数、Ｇｘ：ｘ軸方向の加速度、Ｇｚ：ｚ軸方向の加速度とする。
【００２６】
加速度検出部１１は、各軸に対応して加速度センサを有する。加速度センサの出力は、ローパス回路に接続される。ローパス回路の出力は、演算回路に接続される。加速度センサは、ＭＥＭＳ(Micro-Electro Mechanical Systems)を活用したセンサである。ローパス回路は、加速度センサの出力波形の高周波成分を除去し、その低周波成分を通過させる。演算回路は、ローパス回路の出力に基づいて上述の演算式を実行し、演算により求めた傾斜角値Ｖ１を出力する。なお、傾斜角値Ｖ１は、傾斜角度を示すデジタル値である。なお、加速度センサは、本体部２１０の中心に対して１個搭載される。本体部２１０の中心から相対的な距離が把握できる位置に加速度センサを配置しても良い。
【００２７】
角速度検出部１２は、本体部２１０のｘ軸方向の角速度を検出して出力する。具体的には、角速度検出部１２は、ジャイロセンサで角速度を検出し、これを出力する。
【００２８】
角速度検出部１２は、機械式、ガス式、光学式等のタイプがある。角速度検出部１２は、例えば、ＭＥＭＳ(Micro-Electro Mechanical Systems)を活用したジャイロセンサを有する。ジャイロセンサは、半導体プロセス技術を活用して、半導体、ガラス等の基板上に３次元構造を高精細に形成して製造される。ジャイロセンサは、基板上に配置された振動体の空間的な変位を電気的に検出することによって、コリオリの力を電気的に検出する。例えば、ジャイロセンサは、振動体を振動状態とし、振動体と検出電極間の容量値の変化を検出することによって、コリオリの力を電気的に検出する。なお、ジャイロセンサの具体的な構造、コリオリの力の検出方法は任意である。角速度検出部１２からコントローラ２０へ角速度値Ｖ２が伝送される。なお、ジャイロセンサは、本体部２１０の中心に対して、Ｘ、Ｙ、Ｚ軸の３軸夫々に対応して搭載される。
【００２９】
距離測定部１３は、本体部２１０の下面と路面間の距離を複数個所にて測定し、検出した距離を距離値Ｖ３としてコントローラ２０に対して出力する。距離測定部１３の具体的な構成は任意である。例えば、距離測定部１３は、ＴＯＦ(Time Of Flight)方式によって距離を測定する。距離測定部１３は、複数の測距センサユニット、複数の信号処理回路を有する。光学的方式を採用する場合、センサユニットは、発光素子、受光素子のペアから構成される。信号処理回路は、発光素子を駆動したタイミングと受光素子で信号光を受光したタイミング間の時間差に基づいて所定の演算を行い、距離を算出する。
【００３０】
エンコーダ部１４は、一組の車輪部２２０に対応付けられた一組のエンコーダ部から構成される。右輪に対応するエンコーダは、右輪の相対的な回転量を検出し、回転量に応じたエンコーダ値（カウント値）Ｖ４を出力する。左輪に対応するエンコーダも同様である。なお、エンコーダの具体的な構成は任意である。例えば、光学式又は磁気式エンコーダのいずれかを採用しても良い。光学式エンコーダの場合、エンコーダは、車輪に設けられた回転体の外周領域に形成されたスリットの数を光学的に検出し、スリット数に応じたカウント値を出力する。磁気式エンコーダの場合、エンコーダは、上述の回転体の外周領域に順次配置された磁石の個数を磁気的に検出し、磁石数に応じたカウント値を出力する。
【００３１】
メモリ１５は、一般的な半導体メモリであり、コントローラ２０に対して接続している。メモリ１５は、各種の設定値を保持する。
【００３２】
コントローラ２０は、値Ｖ０〜Ｖ４に基づいて、駆動部３０を制御する。具体的には、コントローラ２０は、値Ｖ０〜Ｖ４に基づいて制御値Ｖ１０を生成し、これを駆動部３０へ出力する。コントローラ２０は、ＣＰＵ(Central Processing Unit)等によってプログラムが実行されることにより実現される。
【００３３】
コントローラ２０の動作については、図１１及び図１２に示すフローチャートにて詳述する。
【００３４】
駆動部３０は、制御値Ｖ１０に基づいてロボット１００を駆動する。具体的には、次のとおりである。
【００３５】
加算部３１は、制御値Ｖ１０とトルク値Ｖ２０に基づいて指令値Ｖ２５を生成する。制御値Ｖ１０、トルク値Ｖ２０らのデジタル値は、加算部３１で加算されて指令値Ｖ２５となる。指令値Ｖ２５は、制御値Ｖ１０の絶対値とトルク値Ｖ２０の絶対値間の差分値に対応する。制御値Ｖ１０は、モータ部３５に発生している現在のトルクを無視して算出される。モータ部３５で発生している現在のトルクに応じた値を有するトルク値Ｖ２０を制御値Ｖ１０から差し引くことによって、意図したトルクを発生させることが可能になる。
【００３６】
モータアンプ部３２は、指令値Ｖ２５に応じた値の駆動電圧を生成し、モータ部３５へ出力する。時間的に連続して指令値Ｖ２５が入力するため、モータアンプ部３２からモータ部３５へは時間的に電圧値が変動する電圧波形が供給される。
【００３７】
モータ部３５は、入力される電圧波形に応じて動力を生成する。モータ部３５で生成された動力は、車輪部２２０に供給される。
【００３８】
モータアンプ部３２とモータ部３５間に接続されたシャント抵抗部３３で検出される電流値に基づいてトルク計算部３４はトルクを計算する。トルク計算部３４は、計算したトルクをトルク値Ｖ２０として加算部３１へ出力する。
【００３９】
図３に示すように、ロボット１００は、平坦面上にて倒立状態を維持する。図４に示すように、ロボット１００は、傾斜面上にて倒立状態を維持する。図３に示すとき、コントローラ２０は、角速度検出部１２の出力値Ｖ２を加速度検出部１１の出力値Ｖ１に対して引き戻すように駆動部３０を制御するための制御値Ｖ１０を生成する。図４に示すとき、コントローラ２０は、後述のフローによって、本体部２１０のピッチ方向の傾斜を補正するように駆動部３０を制御するための制御値Ｖ１０を生成する。
【００４０】
なお、図３及び図４に示すように、距離測定部１３が有するセンサユニット１３ａ、１３ｂは、本体部２１０の下面に設けられる。なお、本体部２１０に対するセンサユニット１３ａ、１３ｂの具体的な取り付け方法は任意である。
【００４１】
図５に示すように、ロボット１００の移動空間には、鉛直方向に沿って延在する軸線Ｘ１、軸線Ｘ１に対して直交する軸線Ｘ３が設定されている。また、ロボット１００には、ロボット１００の固有軸である軸線Ｘ２、軸線Ｘ２に対して直交する軸線Ｘ４が設定されている。なお、軸線Ｘ２は、車輪部２２０を構成する一組の車輪に共通する回転軸に対して直交する軸線である。
【００４２】
上述のように、角速度検出部１２の出力値Ｖ２を加速度検出部１１の出力値Ｖ１に対して引き戻す（一致させる）ように駆動部３０を駆動することによって、軸線Ｘ４が軸線Ｘ３に対して一致するようにロボット１００は制御される。換言すると、同様にして、軸線Ｘ３と軸線Ｘ４とが成す角度θ１が零に近付くようにロボット１００は制御される。
【００４３】
また、同様に駆動部３０を駆動することによって、軸線Ｘ２が軸線Ｘ１に対して一致するようにロボット１００は制御される。換言すると、軸線Ｘ１と軸線Ｘ２とが成す角度θ２が零に近付くようにロボット１００は制御される。なお、角速度検出部１２の出力値Ｖ２のみではなく、加速度検出部１１の出力値Ｖ１をも考慮して姿勢制御を行うことによって、ロボット１００の動作を安定化することができる。
【００４４】
ところで、加速度検出部１１の出力値は、本体部２１０に対する加速度センサの取付け精度に影響され、また、加速度センサ内の構成部材の磨耗等によって経時的に劣化してしまうという問題がある。従って、ロボット１００を高精度に姿勢制御するためには、加速度検出部１１の出力値の補正が必要になる。
【００４５】
また、加速度検出部１１の出力値から、路面の傾斜と、車輪部２２０に対する本体部２１０の傾きとを区別することができない。したがって、図４に示す場合、角速度検出部１２の出力値Ｖ２を加速度検出部１１の出力値Ｖ１に対して引き戻すように駆動部３０を制御することはロボット１００の挙動を不安定化させ、ロボット１００に搭乗している搭乗者に不安感を与えてしまう。
【００４６】
本実施形態では、距離測定部１３の出力値に基づいてロボット１００の姿勢制御を実行することによって、路面が傾斜している場合であってもロボット１００の姿勢を適切に制御することができる。これによって、操縦者に不安感を与えることを抑制しつつ、ロボット１００を傾斜面においても移動可能とすることができる。
【００４７】
図６に示すように、距離測定部１３は、センサユニット１３ａと路面間の距離Ｌ１を検知し、かつ、センサユニット１３ｂと路面間の距離Ｌ２を検知する。コントローラ２０は、距離値Ｖ３として入力される距離Ｌ１、Ｌ２に基づいて、路面が傾斜しているか否かを判定する。距離Ｌ１と距離Ｌ２間の差分値が所定値以上であれば、路面が傾斜しているものと判定することができる。また、コントローラ２０は、距離値Ｖ３として入力される距離Ｌ１、Ｌ２に基づいて、軸線Ｘ３に対して路面がなす傾斜角θ３を算出することができる。なお、センサユニット１３ａ、１３ｂ間の間隔は既知であり、メモリ１５にストアされているものとする。
【００４８】
コントローラ２０は、図６で説明した手法により算出した値に基づいて軸線Ｘ１に対して軸線Ｘ２が成す角度を補正する。例えば、傾斜角θ３の値が所定値よりも大きい場合には、本体部２１０が前方に傾斜しすぎている状態と判断できる。この場合、コントローラ２０は、距離測定部１３の出力値Ｖ３に基づいて、傾斜角θ３の値が小さくなるように駆動部３０を制御するための制御値Ｖ１０を生成する。傾斜角θ３の値が所定値よりも小さい場合、本体部２１０は後方に傾斜しすぎている状態と判断できる。この場合、コントローラ２０は、距離測定部１３の出力値Ｖ３に基づいて、傾斜角θ３の値が大きくなるように駆動部３０を制御するための制御値Ｖ１０を生成する。
【００４９】
なお、図７に示すように、距離測定部１３は、センサユニット１３ａと路面間の距離Ｌ１を検知し、かつ、センサユニット１３ｂと路面間の距離Ｌ２を検知する。コントローラ２０は、Ｌ１とＬ２間の差分値Δｈを算出する（つまり、Δｈ＝Ｌ１−Ｌ２を実行する）。そして、コントローラ２０は、次の演算式を実行する。このようにして、コントローラ２０は、車体傾斜角度（軸線Ｘ１と軸線Ｘ２とが成す角度）を算出することができる。
【００５０】
ａｔａｎθ４＝｜Δｈ｜／Ｌ３
但し、Ｌ３は、センサユニット１３ａとセンサユニット１３ｂ間の配置間隔である。
【００５１】
加速度検出部１１の出力値は、加速度センサの取付け精度に依存し、かつ、経時的に劣化してしまう場合がある。図７に示すように、距離測定部１３の出力に基づいて軸線Ｘ１に対する軸線Ｘ２の傾斜角度を算出することによって、加速度検出部１１の出力値Ｖ１を補正することが可能になる。具体的には、軸線Ｘ１と軸線Ｘ２とが成す角度値と加速度検出部１１の出力値の差分値を補正値としてメモリ１５にストアしておくと良い。そして、メモリ１５にストアされた補正値を用いて、角速度検出部１２の出力値Ｖ２を補正すると良い。これによって、加速度センサに盛り込まれたゼロ点ズレの影響を抑制し、ロボット１００が自身の姿勢を高精度に制御することが可能になる。
【００５２】
距離測定部１３が有するセンサユニットの個数は２以上であれば良く、その個数は任意である。例えば、図８に示すように、ｘ軸に沿って離間して２つのセンサユニットを配置しても良い。また、図９に示すように、ｘ軸に沿って離間した２つのセンサユニットの組をｙ軸に沿って２つ配置しても良い。図９に示すように４つのセンサユニットを配置することによって、センサユニットの故障等に対する耐性を高めることができる。
【００５３】
図９に示すように、センサユニット１３ａ、１３ｄを一組とし、センサユニット１３ｂ、１３ｃを一組とすることによって、ｘｙ平面における傾斜を検知することができる。このとき、図１０に示すように、ロボット１００の旋回機能によってロボット１００のピッチ方向と路面の傾斜方向とを一致させ、この状態で本体部２１０をピッチ方向に傾斜させることによってロボット１００の安定性を効果的に高め、搭乗者が不安感を抱くことを効果的に抑制することができる。
【００５４】
次に、図１１及び図１２を参照して、ロボット１００の動作について説明する。なお、本実施形態では、センサユニットは、図９に示すように配置されているものとする。
【００５５】
まず、倒立制御を開始する（Ｓ１０１）。具体的には、コントローラ２０は、加速度検出部１１の出力値Ｖ１、及び角速度検出部１２の出力値Ｖ２に基づいて、ロボット１００の固有軸に一致する軸線Ｘ２が鉛直方向に沿う軸線Ｘ１に対して一致するように駆動部３０を制御するための制御値Ｖ１０を生成する。
【００５６】
次に、状態値を取得する（Ｓ１０２）。具体的には、コントローラ２０は、ある時点における加速度検出部１１の出力値Ｖ１と角速度検出部１２の出力値Ｖ２とを取得する。つまり、加速度センサから求まるロボットの姿勢を示す値（姿勢値）、及びジャイロセンサから求まるロボットの姿勢を示す値（姿勢値）を取得する。
【００５７】
次に、状態値の差が許容範囲か否かを判定する（Ｓ１０３）。具体的には、コントローラ２０は、取得した出力値Ｖ１と出力値Ｖ２の差分値を求め、この差分値が所定値以下か否かを判定する。状態値の差が許容範囲内である場合、ロボット１００は、加速度検出部１１の出力値Ｖ１及び角速度検出部１２の出力値Ｖ２に基づいて倒立制御をする。
【００５８】
状態値Ｖ１とＶ２の差が許容範囲外である場合、車体下面と路面間距離を測定する（Ｓ１０４）。具体的には、コントローラ２０は、距離測定部１３に対して距離測定を指示する。距離測定部１３は、コントローラ２０の指示に基づいて、本体部２１０と設置面間の距離Ｌ１、Ｌ２を複数の箇所にて測定し、この測定値をコントローラ２０に対して出力する。
【００５９】
次に、路面は平坦か否かを判定する（Ｓ１０５）。具体的には、コントローラ２０は、距離測定部１３から伝送される距離値Ｖ３に基づいて、図６を参照して説明した方法により路面が平坦か否かを判定する。
【００６０】
路面が平坦でない場合には、ピッチ方向の傾き補正処理を実行する（Ｓ１０６）。このステップについては、図１２を参照して説明する。
【００６１】
路面が平坦の場合には、加速度センサに対して校正処理を実施し（Ｓ１０７）補正値を算出してストアする（Ｓ１０８）。具体的には、コントローラ２０は、図５を参照して説明した方法により軸線Ｘ２が軸線Ｘ１に対して成す角度θ２を算出し、算出した角度と加速度検出部１１の出力値Ｖ１との差分を求め、これをオフセット値としてメモリ１５にストアする。なお、メモリ１５にオフセット値がストアされているとき、コントローラ２０は、加速度検出部１１の出力値をオフセット値に基づいて補正し、補正後の値に基づいて姿勢制御を行う。
【００６２】
図１２を参照して、Ｓ１０６の詳細について説明する。
【００６３】
はじめに、傾斜方向がピッチ方向か否かを判定する（Ｓ１１０）。具体的には、コントローラ２０は、距離測定部１３の出力値Ｖ３に基づいて路面の傾斜方向がピッチ方向であるか否かを判定する。
【００６４】
路面の傾斜方向がピッチ方向ではない場合、ロボット１００は、平面内で９０°旋回する（Ｓ１１１）。具体的には、ロボット１００は、図１０に示すように旋回する。これによって、路面の傾斜方向に対してロボットのピッチ方向が一致する。
【００６５】
次に、ピッチ方向に角度θだけ傾き補正する（Ｓ１１２）。具体的には、コントローラ２０は、指定された角度θだけ、ロボット１００の固有軸である軸線Ｘ２が傾くように駆動部３０を制御するための制御値Ｖ１０を生成する。初回時、角度θ＝０度と初期設定されている。従って、初回、何らの制御も行われることはない。
【００６６】
次に、車体下面と路面間距離を測定する（Ｓ１１３）。具体的には、コントローラ２０は、距離測定部１３に対して距離測定を指示する。距離測定部１３は、コントローラ２０の指示に基づいて、本体部２１０と設置面間の距離を複数の箇所にて測定し、この測定値をコントローラ２０に対して出力する。
【００６７】
次に、傾斜角θ３を算出する（Ｓ１１４）。具体的には、コントローラ２０は、距離測定部１３の出力値Ｖ３に基づいて、図６を参照して説明した方法により傾斜角θ３を算出する。
【００６８】
次に、傾斜角θ３が許容範囲内か否かを判定する（Ｓ１１６）。具体的には、コントローラ２０は、メモリ１５に予め格納された上限値と下限値と傾斜角θ３との比較に基づいて、傾斜角θ３が許容範囲内か否かを判定する。
【００６９】
傾斜角θ３が許容範囲内の場合には、そのまま処理を終了する。
【００７０】
傾斜角θ３が許容範囲外の場合には、角度を指定する（Ｓ１１６）。具体的には、コントローラ２０は、傾斜角θ３の値に応じて定まる角度θをメモリ１５からリードし、リードした値をＳ１１２の補正処理で参照される角度θとして指定する。そして、上述のステップＳ１１２に戻る。今回のＳ１１２では、角度θはメモリ１５からリードした値に指定されている。従って、コントローラ２０は、指定された角度θ（メモリ１５からリードされた値）だけ、ロボット１００の固有軸である軸線Ｘ２が傾くように駆動部３０を制御する制御値Ｖ１０を生成する。このようにして軸線Ｘ２は、路面の傾斜状態を踏まえて、搭乗者が不安感を抱くことを抑制するように修正される。Ｓ１１６、Ｓ１１２の後は、Ｓ１１３、Ｓ１１４が同様にして行われる。
【００７１】
なお、Ｓ１１０にて傾斜方向＝ピッチ方向である場合には、Ｓ１１３に推移する。図１１及び図１２に示すフローは非常に短いサイクルで実行される。従って、ロボット１００が比較的早い速度で移動している場合であっても、その路面の傾斜角の変化に応じて、適宜、ロボット１００の姿勢制御を行うことができる。また、傾斜面におけるロボット１００の旋回動作も安定化させることが可能になる。
【００７２】
上述の説明から明らかなように、本実施形態では、距離測定部１３の出力に基づいて、路面の傾斜の程度を評価し、この評価結果に応じて、ロボット１００の本体部２１０をピッチ方向へ回動させ、搭乗者が不安感を感じることを抑制する。これによって、ロボット１００を平坦面以外でも使用可能とすることができ、その適用範囲を効果的に拡大することができる。
【００７３】
また、本実施形態では、距離測定部１３の出力に基づいて角速度検出部１２の出力を補正可能とする。これによって、角速度検出部１２の出力に含まれる誤差、その経時的な劣化を補正することができ、効果的にロボット１００の姿勢制御を高度化することができる。例えば、ロボット１００が垂直に倒立していると判断しているときに、実際には、ロボット１００が傾斜しているという事態が生じることを効果的に回避することができる。
【００７４】
［第２実施形態］
以下、図１３乃至図１８を参照して本発明の第２実施形態について説明する。図１３は、倒立二輪型ロボットの概略的なブロック図である。図１４は、倒立二輪型ロボットの概略的な模式図である。図１５は、倒立二輪型ロボットの昇降装置の概略的な構成を示す分解模式図である。図１６は、倒立二輪型ロボットの昇降装置の概略的な構成を示す模式図である。図１７は、倒立二輪型ロボットの動作を示す概略的なフローチャートである。図１８は、倒立二輪型ロボットの動作を示す概略的なフローチャートである。
【００７５】
本実施形態では、第１実施形態で説明した機能に加えて、ロボット１００は、本体部２１０と車輪部２２０との間の鉛直方向における相対位置が調整可能に構成されている。これにより、仮に、路面がロール方向（横方向）に傾斜していたとしても、ロボット１００を旋回させることなく、その姿勢を補正することによって、搭乗者が不安感を覚えることを効果的に抑制することができる。また、本実施形態においても、第１実施形態で説明したものと同様の効果を得ることができる。
【００７６】
図１３に示すように、ロボット１００は、駆動部３６を備える。駆動部３６は、コントローラ２０によって制御される。駆動部３６により昇降機構が駆動されることにより、本体部２１０と車輪部２２０間の鉛直方向における間隔が調整される。
【００７７】
図１４に示すように、ロボット１００は、軸２４０を有する。軸２４０は、軸２４０ａ〜２４０ｃから構成される。軸２４０ａは、ｙ軸に沿って延在する軸部材である。軸２４０ｂ、２４０ｃは、ｚ軸に沿って延在する軸部材であり、軸２４０ａの各端部に対して連結している。
【００７８】
車輪部２２０ａは、軸２４０ｂに対して昇降可能に係合している。車輪部２２０ａは、ｚ軸方向において軸２４０ｂ上にて可変である。換言すると、ｚ軸方向における車輪部２２０ａと本体部２１０間の相対位置は調整可能に構成されている。
【００７９】
車輪部２２０ｂは、軸２４０ｃに対して移動可能に係合している。車輪部２２０ｂは、ｚ軸方向において軸２４０ｃ上にて可変である。換言すると、ｚ軸方向における車輪部２２０ａと本体部２１０間の相対位置は調整可能に構成されている。なお、一組の車輪部２２０ａ、２２０ｂによって車輪部２２０が構成されている。
【００８０】
ｚ軸方向において車輪部２２０と本体部２１０との間の間隔を可変とする具体的な機構は任意である。例えば、図１５及び図１６に示すような機構を採用すると良い。
【００８１】
図１５及び図１６に示すように、車輪部２２０ａと軸２４０ｂ間の係合部分には、車輪５０、駆動モータ５１、マウント５２、リードスクリュー５３、及び駆動モータ５４が配される。車輪５０は、一般的な車輪である。駆動モータ５１は、車輪５０に対して回転軸を介して連結されている。駆動モータ５１で生じる回転力に応じて車輪５０は回転する。マウント５２は、駆動モータ５１を収納する。また、マウント５２の外面には、リードスクリュー５３の山と噛み合わされる溝が設けられている。リードスクリュー５３は、ｚ軸を長手方向とする部材であり、その表面には螺旋状に形成された凸部が設けられている。駆動モータ５４は、リードスクリュー５３に対して連結されている。駆動モータ５４で生じる回転力に応じてマウント５２はｚ軸方向に変位する。マウント５２と共に、駆動モータ５１、車輪５０がｚ軸方向に変位する。なお、リードスクリュー５３は、軸２４０ｂに一致する。車輪部２２０は、車輪５０、駆動モータ５１、及びマウント５２を含んで構成される。
【００８２】
図１７及び図１８を参照してロボット１００の動作について説明する。
【００８３】
図１７に示すように、本実施形態では、第１実施形態とは異なり、ロール方向の傾き補正処理（Ｓ１２０）を実行する。
【００８４】
図１４を参照しつつ、図１８を参照してロール方向の傾き補正処理について説明する。なお、予め操縦者の指令（指令値Ｖ０）に基づいて、Δｈ＝０となるようにロボット１００は設定されているものとする。
【００８５】
まず、今回のΔｈを算出する（Ｓ１３１）。具体的には、コントローラ２０は、距離測定部１３の出力値Ｖ３に基づいて図１４で説明したようにΔｈを算出する。より詳細には、コントローラ２０は、Ｌ１−Ｌ２＝Δｈを算出する。
【００８６】
次に、前回、算出したΔｈをリードする（Ｓ１３２）。具体的には、コントローラ２０は、メモリ１５から前回算出したΔｈをリードする。なお、コントローラ２０は、所定のルールに従って、Δｈをメモリ１５にストアするものとする。例えば、連続的に傾斜面をロボット１００が移動している場合には、Ｓ１３２では、５秒前に取得したΔｈがリードされる。
【００８７】
次に、今回のΔｈと前回のΔｈとの差分値を求める（Ｓ１３３）。具体的には、コントローラ２０は、今回算出したΔｈとメモリ１５からリードしたΔｈとを比較し、両者の差分値を求める。
【００８８】
次に、差分値が所定範囲内か否かを判定する（Ｓ１３４）。具体的には、Ｓ１３３により求めた差分値が所定の範囲内か否かを判定する。なお、上限値、下限値はメモリ１５に予めストアされており、コントローラ２０は、それらの値をメモリ１５からリードし、差分値との比較を行うことにより、差分値が所定範囲内か否かを判定すると良い。
【００８９】
差分値が所定範囲内の場合には処理を終了する。この場合には、路面の傾斜の変化が少ないと判断することができるためである。
【００９０】
差分値が所定範囲外の場合には、昇降動作を実行する（Ｓ１３５）。具体的には、コントローラ２０は、差分値の値に応じて、ロボット１００の安定性を向上させるように駆動部３６を制御するための制御値Ｖ３０を生成する。そして、駆動部３６は、制御値Ｖ３０に応じて、図１５及び図１６に示す駆動モータ５４を駆動し、リードスクリュー５３を回転させ、マウント５２をｚ軸方向に変位させる。これによって、車輪５０がｚ軸に沿って変位し、車輪５０と本体部２１０間の配置間隔が変更される。これによって、路面の傾斜状態に応じて、例えば、図１４に示すように、車輪部２２０ｂを本体部２１０側へ移動させ、ロボット１００のロール方向の安定性をその場に居ながら高めることができる。
【００９１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。ロボット１００の具体的な構成は任意である。ロボット１００が具備する機能は、ソフトウェアで実現しても、ハードウェアで実現しても良い。
【符号の説明】
【００９２】
１００    倒立二輪型ロボット
２１０    本体部
２１１    座席部
２１２    肘掛部
２１３    足台部
２１５    ボールコントローラ
２２０    車輪部
２４０    軸
１０    指示入力部
１１    加速度検出部
１２    角速度検出部
１３    距離測定部
１４    エンコーダ部
１５    メモリ
２０    コントローラ
３０    駆動部
３１    加算部
３２    モータアンプ部
３３    シャント抵抗部
３４    トルク計算部
３５    モータ部
３６    駆動部
Ｖ０    指令値
Ｖ１    傾斜角値
Ｖ２    角速度値
Ｖ３    距離値
Ｖ１０    制御値
Ｖ２０    トルク値
Ｖ２５    指令値
Ｖ３０    制御値
【図１】
2011065231.tif 000003
【図２】
2011065231.tif 000004
【図３】
2011065231.tif 000005
【図４】
2011065231.tif 000006
【図５】
2011065231.tif 000007
【図６】
2011065231.tif 000008
【図７】
2011065231.tif 000009
【図８】
2011065231.tif 000010
【図９】
2011065231.tif 000011
【図１０】
2011065231.tif 000012
【図１１】
2011065231.tif 000013
【図１２】
2011065231.tif 000014
【図１３】
2011065231.tif 000015
【図１４】
2011065231.tif 000016
【図１５】
2011065231.tif 000017
【図１６】
2011065231.tif 000018
【図１７】
2011065231.tif 000019
【図１８】
2011065231.tif 000020