(57)【特許請求の範囲】
【請求項１】
旋回操作部の操作に基づいて旋回する倒立型移動体と、
前記旋回操作部の操作に基づいて、表示装置に表示される仮想的な倒立型移動体の向きを変更する表示制御部と、
前記倒立型移動体の向きを補正するための旋回指示が入力される旋回指示入力部と、を備え、
前記旋回指示入力部に前記旋回指示の入力がなされた場合、
前記倒立型移動体は、前記入力に基づいて旋回を行い、
前記表示制御部は、前記入力にもかかわらず、前記仮想的な倒立型移動体の向きを変更しない、
バランス訓練システム。
【請求項２】
旋回操作部の操作に基づいて旋回する倒立型移動体と、
前記旋回操作部の操作に基づいて、表示装置に表示される仮想的な倒立型移動体の向きを変更する表示制御部と、
前記倒立型移動体の向きを補正するための旋回指示が入力される旋回指示入力部と、を備え、
前記旋回指示入力部に前記旋回指示の入力がなされた場合、
前記倒立型移動体は、前記入力に基づいて旋回を行い、
前記表示制御部は、前記入力をトリガとして前記仮想的な倒立型移動体の向きを予め定めた向きに変更する、
バランス訓練システム。
【請求項３】
前記旋回指示入力部は、旋回方向を入力可能とする
請求項１又は２に記載のバランス訓練システム。
【請求項４】
旋回操作に基づいて旋回する倒立型移動体を備えたバランス訓練システムにおいて、表示装置に表示される仮想的な倒立型移動体の向きを制御する表示制御方法であって、
通常運動するために前記倒立型移動体を旋回させる場合には、前記表示装置に表示される前記仮想的な倒立型移動体の向きを変更し、
前記表示装置に表示される前記仮想的な倒立型移動体の向きを、実際の倒立型移動体の向きのずれを補正するために前記倒立型移動体を旋回させる場合には、前記倒立型移動体が旋回するにもかかわらず、前記表示装置に表示される前記仮想的な倒立型移動体の向きを変更しない、
表示制御方法。
【請求項５】
旋回操作に基づいて旋回する倒立型移動体を備えたバランス訓練システムが、表示装置に表示される仮想的な倒立型移動体の向きを制御する表示制御方法であって、
通常運動するために前記倒立型移動体を旋回させる場合には、前記表示装置に表示される前記仮想的な倒立型移動体の向きを変更し、
前記表示装置に表示される前記仮想的な倒立型移動体の向きを、実際の倒立型移動体の向きのずれを補正するために前記倒立型移動体を旋回させる場合には、前記倒立型移動体が旋回するにもかかわらず、前記表示装置に表示される前記仮想的な倒立型移動体の向きを予め定めた向きに変更する、
表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バランス訓練システム及び表示制御方法に関する。
【背景技術】
【０００２】
ユーザが搭乗して操作することで、倒立状態を維持する倒立制御を行いつつ走行できる倒立型移動体（以下、単に移動体とも記載）が提案されている。
【０００３】
例えば、特許文献１には、移動体に搭乗した搭乗者のバランス機能を訓練するバランス訓練システムが開示されている。搭乗者は、表示装置に表示されたゲーム画面を見ながら、重心移動や移動体のハンドル操作をする。移動体は、搭乗者の重心移動やハンドル操作に基づいて駆動部を制御することで、倒立制御を行いつつ走行する。このようにして、搭乗者は、移動体を用いてバランス機能の訓練をすることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１８２３１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の通り、搭乗者は、バランス機能の訓練中に、ゲーム画面が表示された表示装置を見る。このゲーム画面には、搭乗者が訓練をし易くするように、仮想的な移動体が表示されることがある。この表示される仮想的な移動体の向きは、移動体のセンサが検出した移動体の向きの変化に追従して変化する。しかしながら、移動体のセンサが検出できないような移動体の微小な向きの変化が生じ、その変化が累積した場合に、現実の移動体の向きと仮想的な移動体の向きとがずれてしまう。
【０００６】
このように、現実の移動体の向きと仮想的な移動体の向きとがずれてしまった場合に、訓練を円滑に行うためには、現実の移動体の向きと仮想的な移動体の向きとを揃える必要がある。しかしながら、現実の移動体の向きと仮想的な移動体の向きとを揃えようとして、搭乗者が現実の移動体を旋回させるように操作すると、表示装置に表示された仮想的な移動体の向きも、現実の移動体の旋回に追従して変化してしまう。そのため、現実の移動体の向きと仮想的な移動体の向きとを揃えることができないという課題があった。
【０００７】
本発明に係るバランス訓練システム及び表示制御方法は、表示装置に仮想的な移動体を表示して搭乗者のバランス訓練を行う際に、現実の移動体の向きと表示装置に表示された仮想的な移動体の向きとがずれた場合に、両者を揃えることを可能にするものである。
【課題を解決するための手段】
【０００８】
本発明の第１の態様にかかるバランス訓練システムは、旋回操作部の操作に基づいて旋回する倒立型移動体と、前記旋回操作部の操作に基づいて、表示装置に表示される仮想的な倒立型移動体の向きを変更する表示制御部と、前記倒立型移動体の向きを補正するための旋回指示が入力される旋回指示入力部と、を備える。前記旋回指示入力部に前記旋回指示の入力がなされた場合、前記倒立型移動体は、前記入力に基づいて旋回を行い、前記表示制御部は、前記入力にもかかわらず、前記仮想的な倒立型移動体の向きを変更しない。
【０００９】
このバランス訓練システムでは、旋回指示入力部に入力がなされた場合、倒立型移動体が入力に基づいて旋回を行う一方、表示制御部は、入力にもかかわらず、仮想的な倒立型移動体の向きを変更しない。従って、倒立型移動体の向きと仮想的な倒立型移動体の向きとがずれている場合でも、旋回指示入力部に入力を行って倒立型移動体を旋回させることで、倒立型移動体の向きを表示装置に表示される仮想的な倒立型移動体の向きに合わせることができる。即ち、現実の倒立型移動体の向きと表示装置に表示される仮想的な倒立型移動体の向きとを揃えることができる。
【００１０】
また、本発明の第２の態様にかかるバランス訓練システムは、旋回操作部の操作に基づいて旋回する倒立型移動体と、前記旋回操作部の操作に基づいて、表示装置に表示される仮想的な倒立型移動体の向きを変更する表示制御部と、前記倒立型移動体の向きを補正するための旋回指示が入力される旋回指示入力部と、を備える。前記旋回指示入力部に前記旋回指示の入力がなされた場合、前記倒立型移動体は、前記入力に基づいて旋回を行い、前記表示制御部は、前記入力をトリガとして前記仮想的な倒立型移動体の向きを予め定めた向きに変更する。
【００１１】
このバランス訓練システムでは、旋回指示入力部に入力がなされた場合、倒立型移動体が入力に基づいて旋回を行う一方、表示制御部は、表示装置に表示される仮想的な倒立型移動体の向きを予め定めた向きに変更する。このため、倒立型移動体の向きと仮想的な倒立型移動体の向きとがずれている場合でも、旋回指示入力部に入力を行って倒立型移動体を旋回させることで、倒立型移動体を予め定めた向きに合わせることができる。即ち、現実の倒立型移動体の向きと表示装置に表示される仮想的な倒立型移動体の向きとを揃えることができる。
【００１２】
上述のバランス訓練システムにおいて、旋回指示入力部は、旋回方向を入力可能としてもよい。これにより、現実の倒立型移動体の向きと表示装置に表示される仮想的な倒立型移動体の向きとを揃えるのに時間がかからない旋回方向を、旋回指示入力部で入力することができる。即ち、現実の倒立型移動体の向きと表示装置に表示される仮想的な倒立型移動体の向きとを短時間で揃えることができる。
【００１３】
また、本発明の第３の態様にかかる表示制御方法は、旋回操作に基づいて旋回する倒立型移動体を備えたバランス訓練システムにおいて、表示装置に表示される仮想的な倒立型移動体の向きを制御する表示制御方法である。この表示制御方法では、通常運動するために前記倒立型移動体を旋回させる場合には、前記表示装置に表示される前記仮想的な倒立型移動体の向きを変更し、前記表示装置に表示される前記仮想的な倒立型移動体の向きを、実際の倒立型移動体の向きのずれを補正するために前記倒立型移動体を旋回させる場合には、前記倒立型移動体が旋回するにもかかわらず、前記表示装置に表示される前記仮想的な倒立型移動体の向きを変更しない。
【００１４】
このバランス訓練システムでは、実際の倒立型移動体の向きのずれを補正するために前記倒立型移動体を旋回させる場合には、倒立型移動体が旋回する一方、仮想的な倒立型移動体の向きは変更されない。従って、倒立型移動体の向きと仮想的な倒立型移動体の向きとがずれている場合でも、倒立型移動体の向きのずれを補正することで、現実の倒立型移動体の向きと表示装置に表示される仮想的な倒立型移動体の向きとを揃えることができる。
【００１５】
また、本発明の第４の態様にかかる表示制御方法は、旋回操作に基づいて旋回する倒立型移動体を備えたバランス訓練システムが、表示装置に表示される仮想的な倒立型移動体の向きを制御する表示制御方法である。この表示制御方法では、通常運動するために前記倒立型移動体を旋回させる場合には、前記表示装置に表示される前記仮想的な倒立型移動体の向きを変更し、前記表示装置に表示される前記仮想的な倒立型移動体の向きを、実際の倒立型移動体の向きのずれを補正するために前記倒立型移動体を旋回させる場合には、前記倒立型移動体が旋回するにもかかわらず、前記表示装置に表示される前記仮想的な倒立型移動体の向きを予め定めた向きに変更する。
【００１６】
このバランス訓練システムでは、実際の倒立型移動体の向きのずれを補正するために前記倒立型移動体を旋回させる場合には、倒立型移動体が旋回する一方、仮想的な倒立型移動体の向きは予め定めた向きに変更される。従って、倒立型移動体の向きと仮想的な倒立型移動体の向きとがずれている場合でも、倒立型移動体の向きのずれを補正して予め定めた向きに合わせることで、現実の倒立型移動体の向きと表示装置に表示される仮想的な倒立型移動体の向きとを揃えることができる。
【発明の効果】
【００１７】
本発明により、表示装置に仮想的な移動体を表示して搭乗者のバランス訓練を行う際に、現実の移動体の向きと表示装置に表示された仮想的な移動体の向きとがずれた場合に、両者を揃えることができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１に係るバランス訓練システムの模式図である。
【図２】移動体の側面図である。
【図３】移動体の背面図である。
【図４】移動体のステップ部の上面図である。
【図５】移動体の旋回指示パネルの上面図である。
【図６】移動体の内部構成を示すブロック図である。
【図７】操作ハンドルが操作される前の、移動体及びロボット座標系を示す図である。
【図８】操作ハンドルが操作される前の、ディスプレイに表示された仮想的な移動体を示す図である。
【図９】操作ハンドルが操作された後の、移動体及びロボット座標系を示す図である。
【図１０】操作ハンドルが操作された後の、ディスプレイに表示された仮想的な移動体を示す図である。
【図１１】旋回指示ボタンが押下される前の、移動体及びロボット座標系を示す図である。
【図１２】旋回指示ボタンが押下される前の、ディスプレイに表示された仮想的な移動体を示す図である。
【図１３】旋回指示ボタンが押下された後の、移動体及びロボット座標系を示す図である。
【図１４】旋回指示ボタンが押下された後の、ディスプレイに表示された仮想的な移動体を示す図である。
【図１５】旋回指示ボタンの押下に基づく移動体の処理を示すフローチャートである。
【図１６】実施の形態２に係る、旋回指示ボタンが押下される前の、移動体及びロボット座標系を示す図である。
【図１７】旋回指示ボタンが押下される前の、ディスプレイに表示された仮想的な移動体を示す図である。
【図１８】旋回指示ボタンが押下された後の、移動体及びロボット座標系を示す図である。
【図１９】旋回指示ボタンが押下された後の、ディスプレイに表示された仮想的な移動体を示す図である。
【図２０】旋回指示ボタンの押下に基づく移動体の処理を示すフローチャートである。
【発明を実施するための形態】
【００１９】
［実施の形態１］
以下、図面を参照して本発明の実施の形態１について説明する。図１に示すように、バランス訓練システム１は、大きく分けて、移動体１１と、画面生成装置１２と、ディスプレイ１３とを備える。
【００２０】
搭乗者Ｐは、移動体１１に搭乗し、ディスプレイ１３に表示された訓練のためのゲーム画面を見ながら重心移動やハンドル操作をすることで、移動体１１の移動を制御する。移動体１１は、倒立制御により倒立状態を維持しつつ、車輪をモータによって駆動することで走行を行う二輪型のロボットである。画面生成装置１２は、仮想的な移動体（以下、仮想移動体とも記載）が表示されたゲーム画面を生成する。なお、画面生成装置１２は、移動体全体の形状を仮想移動体として表示させてもよいし、移動体の一部の形状を仮想移動体として表示させてもよい。ディスプレイ１３は、画面生成装置１２の制御に基づいて、ゲーム画面を表示する表示装置である。また、補助者Ｓは、搭乗者Ｐの近傍におり、必要に応じて移動体１１を操作する。
【００２１】
以下、移動体１１の構成について詳述する。図２、図３に示すように、移動体１１は、外部構成において、車両本体部２１と、車輪２２Ｒ、２２Ｌと、ステップ部２３Ｒ、２３Ｌと、操作ハンドル２４と、搭乗者用グリップ２５と、旋回指示パネル２６と、補助者用グリップ２７とを備える。
【００２２】
車輪２２Ｒは、車両本体部２１の右側面（移動体１１の右下方）に回転自在に支持されており、車輪２２Ｌは、車両本体部２１の左側面（移動体１１の左下方）に回転自在に支持されている。一対の車輪２２Ｒ、２２Ｌは、車両本体部２１の左右方向において同軸上に配置されている接地モジュールである。なお、図２、図３では、Ｘ軸が前後方向、Ｙ軸が左右方向、Ｚ軸が上下方向である。
【００２３】
ステップ部２３Ｒは、車両本体部２１の右側面であって車輪２２Ｒの上方に設けられ、ステップ部２３Ｌは、車両本体部２１の左側面であって車輪２２Ｌの上方に設けられる。ステップ部２３Ｒ、２３Ｌは、搭乗者Ｐがそれぞれ右足、左足を乗せて搭乗するステップである（図４を参照）。
【００２４】
操作ハンドル２４は、車両本体部２１の前部に連結されており、車両本体部２１の上方に突出している。ここで、車両本体部２１は、操作ハンドル２４をロール方向（左右方向）へ回転自在に支持する。また、搭乗者用グリップ２５が、操作ハンドル２４の上部に連結されている。搭乗者Ｐは、搭乗者用グリップ２５を把持し、搭乗者用グリップ２５を介して操作ハンドル２４を左右方向に傾斜させることで、移動体１１を左右に旋回させることができる。このように、操作ハンドル２４は、移動体１１を旋回させる旋回操作部として機能する。なお、操作ハンドル２４は、ピッチ方向（前後方向）に回転自在であってもよい。
【００２５】
また、操作ハンドル２４には、旋回指示パネル２６が設けられている。図５に示すように、旋回指示パネル２６は、旋回指示ボタン２６Ａ、２６Ｂ（旋回指示入力インタフェース）を有する。旋回指示ボタン２６Ａ、２６Ｂは補助者Ｓが押下するボタンであり、旋回指示ボタン２６Ａが押下される間、移動体１１は右旋回を実行し続け、旋回指示ボタン２６Ｂが押下される間、移動体１１は左旋回を実行し続ける。従って、旋回指示ボタン２６Ａ、２６Ｂが押下される時間が長いほど、移動体１１の旋回量は大きくなる。このように、旋回指示ボタン２６Ａ、２６Ｂは、移動体１１の向きを補正するための旋回指示が入力される旋回指示入力部として機能する。なお、旋回指示パネル２６には、補助者Ｓが移動体１１を把持するためのグリップとして、補助者用グリップ２７が設けられている。
【００２６】
次に、移動体１１のシステム構成について説明する。図６に示すように、移動体１１は、旋回指示ボタン２６Ａ、２６Ｂと、右モータエンコーダ３１Ａと、左モータエンコーダ３１Ｂと、速度演算部３２と、姿勢角センサ３３と、並進指令演算部３４と、リーン角度センサ３５と、旋回補正入力判定部３６と、旋回指令演算部３７と、モータ制御指令演算部３８と、右モータ駆動部３９Ａと、左モータ駆動部３９Ｂと、オドメトリ計算部４０と、通信部４１とを備える。以下、各部について説明する。
【００２７】
右モータエンコーダ３１Ａは、車輪２２Ｒを駆動させるモータ（以降、右モータと記載）の回転角度及び回転角速度を検出するものであり、それらの検出結果を速度演算部３２に出力する。同様に、左モータエンコーダ３１Ｂは、車輪２２Ｌを駆動させるモータ（以降、左モータと記載）の回転角度及び回転角速度を検出するものであり、それらの検出結果を速度演算部３２に出力する。
【００２８】
速度演算部３２は、右モータエンコーダ３１Ａ及び左モータエンコーダ３１Ｂから出力された検出結果に基づいて、移動体１１の現在速度を演算する。演算した現在速度の情報は、速度の絶対値の情報と、速度の向きの情報とを含む。速度演算部３２は、演算した移動体１１の現在速度を、並進指令演算部３４とオドメトリ計算部４０とに出力する。
【００２９】
姿勢角センサ３３は、ジャイロセンサ、加速度センサ等から構成され、移動体１１のピッチ方向の傾斜角度、傾斜角速度、傾斜角加速度等の姿勢情報を検出し、検出結果を並進指令演算部３４に出力する。また、姿勢角センサ３３は、ロール方向の姿勢情報を検出してもよい。
【００３０】
並進指令演算部３４は、速度演算部３２から出力された移動体１１の現在速度と、姿勢角センサ３３から出力された移動体１１のピッチ方向の傾斜角度と、図示しないメモリに格納された目標姿勢角度とを取得する。なお、目標姿勢角度とは、倒立制御をするときの目標となるピッチ方向の傾斜角度であり、地面に対して垂直な角度を基準としている。並進指令演算部３４は、これらの情報に基づいて、移動体１１の走行モードに応じて、移動体１１のピッチ軸の角度目標値、移動体１１のピッチ軸の角速度目標値、移動体１１の目標ブレーキ量、移動体１１の並進速度を演算する。角度目標値は、現在の姿勢角度と目標姿勢角度との間の角度として設定される。並進指令演算部３４は、これらの値を演算して、モータ制御指令演算部３８に出力することで、現在の姿勢角度を目標角度に近づける制御を行う。
【００３１】
例えば、移動体１１がピッチ方向に傾斜した（つまり前後に傾斜した）際に、姿勢角センサ３３は、その傾斜角度を検出し、並進指令演算部３４は、その検出された傾斜角度に応じて、移動体１１の傾斜方向に移動体１１が移動するように、角度目標値、角速度目標値、目標ブレーキ量、並進速度を演算する。このように搭乗者Ｐは、その重心移動により各ステップ部２３Ｒ、２３Ｌを前後に傾斜させることで、移動体１１を前後に移動させることができる。このように、姿勢角センサ３３の検出情報は、移動体１１の倒立制御に用いられる。
【００３２】
リーン角度センサ３５は、操作ハンドル２４の傾斜角度を検出するものであり、例えばポテンショメータやバリコン構造のセンサ等がリーン角度センサ３５として用いられる。リーン角度センサ３５は、検出した操作ハンドル２４の傾斜角度を旋回補正入力判定部３６に出力する。
【００３３】
旋回指示ボタン２６Ａ、２６Ｂは、押下されている最中、右又は左の旋回指示を旋回補正入力判定部３６に出力する。
【００３４】
旋回補正入力判定部３６には、リーン角度センサ３５が検出した操作ハンドル２４のロール方向の傾斜角度と、旋回指示ボタン２６Ａ、２６Ｂが出力した旋回指示とが入力される。旋回補正入力判定部３６は、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力されたか否かを判定し、判定結果に基づいて、出力を変更する。
【００３５】
旋回補正入力判定部３６は、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力されていない場合、操作ハンドル２４のロール方向の傾斜角度を、そのまま旋回指令演算部３７に出力する。旋回補正入力判定部３６は、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力された場合、旋回指令演算部３７には、旋回指示ボタン２６Ａ、２６Ｂから出力された旋回指示を出力し、オドメトリ計算部４０には、移動体１１の位置座標を更新せず、その現在値を保持する指示を出力する。
【００３６】
旋回指令演算部３７は、操作ハンドル２４のロール方向の傾斜角度又は旋回指示ボタン２６Ａ、２６Ｂからの旋回指示に基づいて、移動体１１の目標旋回角速度を演算する。旋回指令演算部３７は、演算した目標旋回角速度をモータ制御指令演算部３８に出力する。
【００３７】
モータ制御指令演算部３８には、並進指令演算部３４から、移動体１１のピッチ軸の角度目標値、移動体１１のピッチ軸の角速度目標値、移動体１１の目標ブレーキ量、移動体１１の並進速度が出力される。また、旋回指令演算部３７からは、移動体１１の目標旋回角速度が出力される。以上に示した移動体１１の目標状態の情報に基づいて、モータ制御指令演算部３８は、左右のモータそれぞれの角速度目標値を演算し、右モータの角速度目標値を右モータ駆動部３９Ａに出力し、左モータの角速度目標値を左モータ駆動部３９Ｂに出力する。
【００３８】
例えば、モータ制御指令演算部３８は、移動体１１を右旋回させる場合、左モータの角速度目標値を右モータの角速度目標値よりも大きく演算し、移動体１１を左旋回させる場合、右モータの角速度目標値を左モータの角速度目標値よりも大きく演算する。
【００３９】
右モータ駆動部３９Ａは、モータ制御指令演算部３８から出力された右モータの角速度目標値に基づいて、右モータを駆動する。左モータ駆動部３９Ｂは、モータ制御指令演算部３８から出力された左モータの角速度目標値に基づいて、左モータを駆動する。
【００４０】
オドメトリ計算部４０には、速度演算部３２から移動体１１の現在速度が出力される。また、旋回補正入力判定部３６からは、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力されている場合に、位置座標の現在値を保持する指示が出力される。
【００４１】
オドメトリ計算部４０は、移動体１１の現在速度に基づいて、オドメトリの方法により、現在の移動体１１の位置座標を計算する。計算される位置座標は、二次元平面での位置及び左右への旋回角度（ヨー角）を含む。また、オドメトリ計算部４０は、旋回補正入力判定部３６から位置座標の現在値を保持する指示が出力された場合、位置座標を変更せず、そのままに保持する。
【００４２】
通信部４１は、オドメトリ計算部４０が計算した位置座標を、無線又は有線により画面生成装置１２に出力する。画面生成装置１２は、通信部４１から出力された位置座標に基づいて、仮想移動体が表示されたゲーム画面を生成し、ディスプレイ１３に出力する。ここで、画面生成装置１２は、表示される仮想移動体の向きを、通信部４１から出力された位置座標に基づいて決定する。従って、オドメトリ計算部４０は、操作ハンドル２４の操作に基づいて、ディスプレイ１３に表示される仮想移動体の向きを変更する表示制御部として機能する。
【００４３】
なお、速度演算部３２、並進指令演算部３４、旋回補正入力判定部３６、旋回指令演算部３７、モータ制御指令演算部３８、オドメトリ計算部４０は、移動体１１のＥＣＵ（Engine Control Unit）で実現される。具体的には、ＥＣＵ内のＣＰＵ（Central Processing Unit）といった制御部がメモリからプログラムを読み込み、制御演算を行うことで、上述の各部の構成を実現できる。また、移動体１１は、図示した構成要素の他にも、倒立制御及び走行を可能にする構成部品（例えば電源）を適宜有する。
【００４４】
以下、移動体１１が旋回をするときに移動体１１が実行する処理について、図７〜図１０を参照して説明する。なお、簡略化のため、以下の図面において、移動体１１及び仮想移動体は、ステップ部２３Ｒ、２３Ｌのみを図示し、全体の図示を省略している。
【００４５】
まず、操作ハンドル２４が操作された際の移動体１１の処理について説明する。
【００４６】
図７は、操作ハンドル２４が操作される前の、移動体１１及び移動体１１の座標系（ロボット座標系）を示す。以降では、オドメトリ計算部４０が計算した位置座標のヨー角を、このロボット座標系で表す。このとき、位置座標におけるヨー角は０°であり、図７に示したロボット座標系のＲｘ軸、Ｒｙ軸は、それぞれＸ軸、Ｙ軸と一致している。移動体１１は、Ｘ軸の正の方向を向いており、移動体１１の前面には、ディスプレイ１３が設けられている。
【００４７】
図８は、移動体１１が図７に示した状態であるときに、ディスプレイ１３に表示された仮想移動体Ｖを示す。ディスプレイ１３の表示画面を示す。図８におけるＸ’軸、Ｙ’軸は、図７におけるＸ軸、Ｙ軸とそれぞれ対応しており、Ｘ’軸は表示画面の上下方向の軸、Ｙ’軸は表示画面の左右方向の軸である。画面生成装置１２は、オドメトリ計算部４０が生成した位置座標のヨー角に基づいて、ディスプレイ１３に表示される仮想移動体Ｖの向きを決定する。ここで、図８に示すように、ディスプレイ１３に表示された仮想移動体ＶはＸ’軸の正方向を向いている。図７に示した移動体１１はＸ軸の正方向を向いているため、ディスプレイ１３に表示された仮想移動体Ｖの向きは、図７に示した移動体１１の向きと対応している。このように、移動体１１の向きと仮想移動体Ｖの向きとが対応していることを、両者の向きが揃っていると定義する。
【００４８】
図７に示した状態から、搭乗者Ｐは、操作ハンドル２４を右方向に傾斜させる。リーン角度センサ３５が操作ハンドル２４の傾斜角度を検出し、旋回補正入力判定部３６はその傾斜角度の情報を、旋回指令演算部３７に出力する。なお、このとき、旋回指示ボタン２６Ａ、２６Ｂは押下されていない。旋回指令演算部３７は、上述に示したように移動体１１の目標旋回角速度を演算し、モータ制御指令演算部３８はその目標旋回角速度に基づいて、左右のモータそれぞれの角速度目標値を演算する。左右のモータがこの角速度目標値に従い駆動することで、移動体１１は右に旋回する。この右旋回は、図７では、Ｒｙａｗとして示される。また、オドメトリ計算部４０は、移動体１１の現在速度に基づいて移動体１１の右旋回を検出し、位置座標のヨー角を変更する。
【００４９】
図９は、移動体１１の旋回後の状態を示す。図９において、移動体１１は、図７に示した状態からθ１（９０°＞θ１＞０°）だけ右に旋回している。また、オドメトリ計算部４０が計算する位置座標のヨー角がθ１だけ変化している。この状態は、図９に示したロボット座標系が、図７に示したロボット座標系からθ１だけ右に回転していることで表されている。この回転後のロボット座標系を、図９ではＲｘ’、Ｒｙ’として示している。このようにして、操作ハンドル２４が傾けられることで、移動体１１の旋回と、位置座標の変更とがなされる。
【００５０】
図１０は、移動体１１が図９に示した状態であるときのディスプレイ１３に表示された仮想移動体Ｖを示す。画面生成装置１２は、オドメトリ計算部４０が変更した位置座標に基づいて、ディスプレイ１３に表示される仮想移動体Ｖの向きを変更する。従って、図１０に示すように、ディスプレイ１３に表示された仮想移動体Ｖの向きは、図８に示された仮想移動体Ｖの向きから変更されており、図９に示した移動体１１の向きと揃っている。
【００５１】
次に、旋回指示ボタン２６Ａが押下された際の移動体１１の処理について説明する。
【００５２】
図１１は、旋回指示ボタン２６Ａが押下される前の、移動体１１及びロボット座標系を示す。移動体１１の前後方向の中心軸Ｃ１は、Ｘ軸と一致しておらず、Ｘ軸から角度θ２（９０°＞θ２＞０°）だけ回転している。つまり、移動体１１は、Ｘ軸の正の方向を向いていない。これに対し、移動体１１の位置座標におけるヨー角は０°のままである。そのため、図１１に示したロボット座標系のＲｘ軸、Ｒｙ軸は、それぞれＸ軸、Ｙ軸と一致している。
【００５３】
図１２は、移動体１１が図１１に示した状態であるときのディスプレイ１３に表示された仮想移動体Ｖを示す。図１２に示した仮想移動体Ｖの向きは、図１１に示したロボット座標系に対応した向きとなっている。つまり、仮想移動体ＶはＸ’軸の正方向を向いている。従って、ディスプレイ１３に表示された仮想移動体Ｖの向きは、図１１に示した移動体１１の向きと揃っていない。
【００５４】
以上の場合に、補助者Ｓは、図１１に示した移動体１１の向きを、図１２に示した仮想移動体Ｖの向きに揃えるため、旋回指示ボタン２６Ａを押下する。すると、旋回指令演算部３７は、旋回指示ボタン２６Ａからの旋回指示に基づいて、移動体１１の目標旋回角速度を演算する。モータ制御指令演算部３８は、この目標旋回角速度に基づいて、左右のモータの角速度目標値を生成することで、移動体１１を右に旋回させる。
【００５５】
このとき、オドメトリ計算部４０は、旋回補正入力判定部３６から位置座標の現在値を保持する指示が出力されているので、位置座標を変更せず、そのままに保持する。
【００５６】
図１３は、移動体１１の旋回後の状態を示す。図１３において、移動体１１は、図１１に示した状態からθ２だけ右に旋回している。従って、移動体１１の前後方向の新たな中心軸Ｃ２はＸ軸と一致し、移動体１１はＸ軸の正の方向を向いている。しかしながら、上述の通り、位置座標は変更されていないため、ロボット座標系は図１１と変わらない。
【００５７】
図１４は、移動体１１が図１３に示した状態であるときのディスプレイ１３に表示された仮想移動体Ｖを示す。画面生成装置１２は、ディスプレイ１３に表示される仮想移動体の向きを変更しないため、図１４においてディスプレイ１３に表示される仮想移動体Ｖの向きは、図１２に示した向きと変わらない。従って、ディスプレイ１３に表示された仮想移動体Ｖの向きは、図１３に示した移動体１１の向きと揃っている。
【００５８】
以下、旋回指示ボタン２６Ａ、２６Ｂの押下に基づく移動体１１の処理について、図１５を参照して説明する。なお、以下の処理の詳細については、上記の説明の通りであるため説明を省略する。
【００５９】
まず、旋回補正入力判定部３６は、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力されたか否かを判定する（ステップＳ１）。
【００６０】
旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力された場合（ステップＳ１のＹｅｓ）、オドメトリ計算部４０は、位置座標を変更せず、現在値のままに固定する。そのため、仮想移動体Ｖの向きは変更されない（ステップＳ２）。そして、移動体１１のモータ制御指令演算部３８は、旋回指示に基づいて、左右のモータの角速度目標値を生成することで、移動体１１を左右いずれかに旋回させる（ステップＳ３）。
【００６１】
ステップＳ３の後、旋回補正入力判定部３６は、ステップＳ１に戻り、判定を続行する。旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力された場合（ステップＳ１のＹｅｓ）、オドメトリ計算部４０は、位置座標をなおも現在値のままにする。そのため、旋回指示ボタン２６Ａ、２６Ｂが押下されている間は、位置座標は現在値のままで動かない。
【００６２】
ステップＳ１において、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力されていない場合（ステップＳ１のＮｏ）、移動体１１は、旋回指示ボタン２６Ａ、２６Ｂからの旋回指示に基づく旋回を行わない（ステップＳ４）。オドメトリ計算部４０は、操作ハンドル２４の傾斜角度及び移動体１１の現在速度に基づいて、現在の移動体１１の位置座標を更新する。そのため、旋回に伴い、仮想移動体Ｖの向きが変更される（ステップＳ５）。
【００６３】
バランス訓練において、ゲーム画面が表示されたディスプレイ１３には、移動体１１の位置座標に基づく仮想移動体Ｖの向きが表示されている。従って、本来、現実の移動体１１の向きと、ゲーム画面上の仮想移動体Ｖの向きとは揃っているはずである。しかしながら、移動体１１の向きが微小に変化した場合、その変化が右モータエンコーダ３１Ａ及び左モータエンコーダ３１Ｂで検出できないことがある。この微小な向きの変化が蓄積すると、現実の移動体１１の向きと、位置座標で示される移動体１１の向き（即ち、ディスプレイ上での仮想移動体Ｖの向き）とがずれてしまう。このような場合に、操作ハンドル２４を操作して移動体１１を旋回させてしまうと、ディスプレイ１３に表示された仮想移動体Ｖの向きも移動体１１の旋回に追従して変化してしまうため、現実の移動体１１の向きと仮想移動体Ｖの向きとを揃えることができない。
【００６４】
しかしながら、旋回指示ボタン２６Ａ、２６Ｂを押下すると、移動体１１は、旋回指示ボタン２６Ａ、２６Ｂの押下に基づいて旋回を行う一方、オドメトリ計算部４０は、位置座標を変更しない。即ち、オドメトリ計算部４０は、仮想移動体Ｖの向きを変更しない。換言すれば、通常運動するために移動体１１を旋回させる場合（例えば、操作ハンドル２４が操作される場合）には、ディスプレイ１３に表示される仮想移動体Ｖの向きが変化する。これに対し、ディスプレイ１３に表示される仮想移動体Ｖの向きを、実際の移動体１１の向きのずれを補正するために移動体１１を旋回させる場合（例えば、旋回指示ボタン２６Ａ、２６Ｂが押下された場合）には、移動体１１が旋回するにもかかわらず、ディスプレイ１３に表示される仮想移動体の向きは変更しない。
【００６５】
従って、旋回指示ボタン２６Ａ、２６Ｂを押下することで、移動体１１の旋回に伴い、現実の移動体１１の向きとディスプレイ１３に表示される仮想移動体Ｖの向きとを揃えることができる。
【００６６】
また、旋回指示ボタン２６Ａ、２６Ｂは、それぞれ右旋回、左旋回の旋回方向が入力できる。これにより、現実の移動体１１の向きをディスプレイ１３に表示される仮想移動体Ｖの向きに揃えるのに時間がかからないような旋回方向を入力できる。例えば、移動体１１が図１１に示した向きである場合に、移動体１１を図１３に示した向きにするためにかかる時間は、移動体１１を右旋回させる方が、左旋回させるよりも少ないと考えられる。これは、移動体１１の向きを図１１に示した向きから図１３に示した向きに変更するために動かす必要がある角度が、右旋回では角度θ２なのに対し、左旋回では角度（３６０°−θ２）となり、右旋回の方が左旋回よりも動かす角度が小さくてすむためである。従って、旋回指示ボタン２６Ａを押下して移動体１１を右旋回させることで、移動体１１の向きとディスプレイ１３に表示される仮想移動体Ｖの向きとを短時間で揃えることができる。
【００６７】
［実施の形態２］
以下、図面を参照して本発明の実施の形態２について説明する。実施の形態１では、旋回指示ボタン２６Ａ、２６Ｂが操作された場合に、ディスプレイ１３に表示される仮想移動体Ｖの向きは変更されない。これに対して、実施の形態２では、旋回指示ボタン２６Ａ、２６Ｂが操作された場合に、位置座標を初期位置に再設定することで、ディスプレイ１３に表示される仮想移動体Ｖの向きを初期の向きに戻す。
【００６８】
実施の形態２に係る移動体１１の外部構成については、図２〜図５と同様であるため、説明を省略する。
【００６９】
実施の形態２に係る移動体１１の内部構成は、図６と同様である。ここで、実施の形態２において、実施の形態１と異なる点は次の通りである。旋回補正入力判定部３６は、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力された場合、旋回指令演算部３７には、旋回指示ボタン２６Ａ、２６Ｂから出力された旋回指示を出力する。また、旋回補正入力判定部３６は、位置座標を初期位置に再設定させる指示を、オドメトリ計算部４０に出力する。オドメトリ計算部４０は、旋回補正入力判定部３６から位置座標を初期位置に再設定させる指示が出力された場合、位置座標を初期位置に再設定する。
【００７０】
通信部４１は、オドメトリ計算部４０が設定した現在の位置座標を、無線又は有線により画面生成装置１２に出力する。画面生成装置１２は、通信部４１から出力された位置座標の情報に基づいて、仮想移動体が表示されたゲーム画面を生成し、ディスプレイ１３に出力する。従って、オドメトリ計算部４０が位置座標を初期位置に再設定した場合、画面生成装置１２は、表示される仮想移動体の向きを、初期設定の向きに戻す。
【００７１】
以下、移動体１１を例示しながら説明する。図１６は、旋回指示ボタン２６Ａが押下される前の移動体１１及びロボット座標系を示す。移動体１１の前後方向の中心軸Ｃ３は、Ｘ軸と一致しておらず、Ｘ軸から左回りに角度θ３（９０°＞θ２＞０°）だけずれている。これに対し、移動体１１の位置座標におけるヨー角は、Ｘ軸から右回りに角度θ４（９０°＞θ２＞０°）の値を有する。この状態は、図１６において、ロボット座標系のＲｘ軸がＸ軸から右回りに角度θ４だけずれていることで表されている。
【００７２】
図１７は、移動体１１が図１１に示した状態であるときのディスプレイ１３に表示された仮想移動体Ｖを示す。図１７に示した仮想移動体Ｖの向きは、図１６に示したロボット座標系に対応した向きとなっている。従って、ディスプレイ１３に表示された仮想移動体Ｖの向きは、図１６に示した移動体１１の向きと揃っていない。
【００７３】
以上の場合に、補助者Ｓは、移動体１１の向きを、ディスプレイ１３に表示された仮想移動体Ｖの向きに揃うようにするため、旋回指示ボタン２６Ａを押下する。すると、旋回指令演算部３７は、旋回指示ボタン２６Ａからの旋回指示に基づいて、移動体１１の目標旋回角速度を演算する。モータ制御指令演算部３８は、この目標旋回角速度に基づいて、左右のモータの角速度目標値を生成することで、移動体１１を右に旋回させる。
【００７４】
このとき、オドメトリ計算部４０は、旋回補正入力判定部３６から位置座標を初期位置に再設定する指示が出力されているので、位置座標を初期位置に再設定する。ここで、位置座標の初期位置では、ヨー角が０°となるように設定される。つまり、ロボット座標系のＲｘ軸、Ｒｙ軸は、それぞれＸ軸、Ｙ軸と一致するように設定される。
【００７５】
図１８は、移動体１１の旋回後の状態を示す。図１８において、移動体１１は、図１６に示した状態からθ３だけ右に旋回している。従って、移動体１１の前後方向の新たな中心軸Ｃ４はＸ軸と一致し、移動体１１は、Ｘ軸の正方向を向いている。
【００７６】
図１９は、移動体１１が図１８に示した状態であるときのディスプレイ１３に表示された仮想移動体Ｖを示す。上述の通り、位置座標は初期位置に再設定されるため、図１９においてディスプレイ１３に表示される仮想移動体Ｖは、Ｘ’軸の正方向を向くように設定されている。従って、ディスプレイ１３に表示された仮想移動体Ｖの向きは、図１８に示した移動体１１の向きと揃っている。
【００７７】
以下、旋回指示ボタン２６Ａ、２６Ｂの押下に基づく実施の形態２に係る移動体１１の処理について、図２０を参照して説明する。なお、実施の形態１で説明した処理の詳細については、説明を省略する。
【００７８】
まず、旋回補正入力判定部３６は、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力されたか否かを判定する（ステップＳ１）。
【００７９】
旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力された場合（ステップＳ１のＹｅｓ）、オドメトリ計算部４０は、位置座標を初期位置に再設定する。そのため、仮想移動体Ｖの向きは初期の向きに変更される（ステップＳ６）。そして、移動体１１のモータ制御指令演算部３８は、旋回指示に基づいて、左右のモータの角速度目標値を生成することで、移動体１１を左右いずれかに旋回させる（ステップＳ３）。
【００８０】
ステップＳ３の後、旋回補正入力判定部３６は、ステップＳ１に戻り、判定を続行する。旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力された場合（ステップＳ１のＹｅｓ）、オドメトリ計算部４０は、位置座標を初期位置に再設定する。そのため、旋回指示ボタン２６Ａ、２６Ｂが押下されている間は、位置座標は初期設定のままで変化しない。
【００８１】
ステップＳ１において、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力されていない場合（ステップＳ１のＮｏ）、移動体１１は、旋回指示ボタン２６Ａ、２６Ｂからの旋回指示に基づく旋回は行わない（ステップＳ４）。オドメトリ計算部４０は、操作ハンドル２４の傾斜角度及び移動体１１の現在速度に基づいて、現在の移動体１１の位置座標を更新する。そのため、旋回に伴い、仮想移動体Ｖの向きが変更される（ステップＳ５）。
【００８２】
実施の形態２では、旋回指示ボタン２６Ａ、２６Ｂを押下すると、移動体１１は、旋回指示ボタン２６Ａ、２６Ｂの押下に基づいて旋回を行う一方、オドメトリ計算部４０は、旋回指示ボタン２６Ａ、２６Ｂの押下をトリガとして、位置座標における移動体１１の向きを初期設定の向きに変更する。つまり、オドメトリ計算部４０は、仮想移動体Ｖの向きを初期設定の向きに変更する。換言すれば、通常運動するために移動体１１を旋回させる場合（例えば、操作ハンドル２４が操作される場合）には、ディスプレイ１３に表示される仮想移動体Ｖの向きが変化する。これに対し、ディスプレイ１３に表示される仮想移動体Ｖの向きを、実際の移動体１１の向きのずれを補正するために移動体１１を旋回させる場合（例えば、旋回指示ボタン２６Ａ、２６Ｂが押下された場合）には、移動体１１が旋回するにもかかわらず、ディスプレイ１３に表示される仮想移動体の向きを初期設定の向きに変更する。
【００８３】
従って、旋回指示ボタン２６Ａ、２６Ｂを押下することで、移動体１１の旋回に伴い、現実の移動体１１の向きとディスプレイ１３に表示される仮想移動体Ｖの向きとを揃うようにすることができる。
【００８４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、ディスプレイ１３には、仮想移動体Ｖそのものは表示されず、仮想移動体Ｖの向きだけを示した情報が表示されてもよい。
【００８５】
搭乗者Ｐが移動体１１を旋回させるための操作ハンドル２４は、ボタン、タッチパネル等で代用されてもよい。同様に、旋回指示ボタン２６Ａ、２６Ｂは、ハンドル、タッチパネル等で代用されてもよい。
【００８６】
また、旋回指示ボタン２６Ａ、２６Ｂは、左右両方の旋回指示ではなく、左右いずれか一方の旋回の指示が入力できてもよい。このようにしても、現実の移動体１１の向きと、仮想移動体Ｖの向きとを揃うようにすることができる。
【００８７】
さらに、旋回指示ボタン２６Ａ、２６Ｂは、移動体１１の左右の旋回角度を数値で入力可能なものであってもよい。旋回指示ボタン２６Ａ、２６Ｂは、旋回指示とともに、入力された旋回角度を旋回補正入力判定部３６に出力する。旋回補正入力判定部３６は、旋回指示及び旋回角度を旋回指令演算部３７に出力する。旋回指令演算部３７は、旋回指示ボタン２６Ａ、２６Ｂからの旋回指示及び旋回角度に基づいて、移動体１１の目標旋回角速度を演算する。移動体１１のモータ制御指令演算部３８は、演算された目標旋回角速度に基づいて、左右のモータの角速度目標値を生成することで、入力された旋回角度だけ移動体１１を旋回させる。
【００８８】
実施の形態１において、オドメトリ計算部４０は、旋回指示ボタン２６Ａ、２６Ｂが押下された場合、位置座標のヨー角のみを変更しないようにしてもよい。また、実施の形態２において、オドメトリ計算部４０は、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力された場合、位置座標におけるヨー角だけを初期設定に戻してもよい。つまり、オドメトリ計算部４０は、仮想移動体Ｖの向きだけを初期設定に戻すような制御をしてもよい。また、オドメトリ計算部４０は、旋回指示ボタン２６Ａ、２６Ｂから旋回指示が出力された場合に、初期設定の位置座標に限らず、予め定めた位置座標に位置座標を設定してもよい。
【００８９】
図１５において、ステップＳ２とステップＳ３の処理は、いずれを先に実行してもよい。また、ステップＳ４とステップＳ５の処理も、いずれを先に実行してもよい。同様に、図２０において、ステップＳ６とステップＳ３の処理は、いずれを先に実行してもよい。
【符号の説明】
【００９０】
１  バランス訓練システム
１１  倒立型移動体
１２  画面生成装置
１３  ディスプレイ
２１  車両本体部
２２Ｒ、２２Ｌ  車輪
２３Ｒ、２３Ｌ  ステップ部
２４  操作ハンドル
２５  搭乗者用グリップ
２６  旋回指示パネル
２６Ａ、２６Ｂ  旋回指示ボタン
２７  補助者用グリップ
３１Ａ  右モータエンコーダ
３１Ｂ  左モータエンコーダ
３２  速度演算部
３３  姿勢角センサ
３４  並進指令演算部
３５  リーン角度センサ
３６  旋回補正入力判定部
３７  旋回指令演算部
３８  モータ制御指令演算部
３９Ａ  右モータ駆動部
３９Ｂ  左モータ駆動部
４０  オドメトリ計算部
４１  通信部
【図１】
0006319162.tif 000002
【図２】
0006319162.tif 000003
【図３】
0006319162.tif 000004
【図４】
0006319162.tif 000005
【図５】
0006319162.tif 000006
【図６】
0006319162.tif 000007
【図７】
0006319162.tif 000008
【図８】
0006319162.tif 000009
【図９】
0006319162.tif 000010
【図１０】
0006319162.tif 000011
【図１１】
0006319162.tif 000012
【図１２】
0006319162.tif 000013
【図１３】
0006319162.tif 000014
【図１４】
0006319162.tif 000015
【図１５】
0006319162.tif 000016
【図１６】
0006319162.tif 000017
【図１７】
0006319162.tif 000018
【図１８】
0006319162.tif 000019
【図１９】
0006319162.tif 000020
【図２０】
0006319162.tif 000021