本発明の実施形態の倒立振子型車両について説明する。図1及び図2に示すように本実施形態の倒立振子型車両1(以降、単に車両1ということがある)は、基体2と、床面上を移動可能な第1の移動動作部3及び第2の移動動作部4と、乗員が搭乗する乗員搭乗部5とを備える。
第1の移動動作部3は、図2に示す円環状の芯体6(以下、環状芯体6という)と、この環状芯体6の円周方向(軸心周り方向)に等角度間隔で並ぶようにして該環状芯体6に装着された複数の円環状のローラ7とを備える。各ローラ7は、その回転軸心を環状芯体6の円周方向に向けて環状芯体6に外挿されている。そして、各ローラ7は、環状芯体6の軸心周りに該環状芯体6と一体に回転可能とされていると共に、該環状芯体6の横断面の中心軸(環状芯体6の軸心を中心とする円周軸)周りに回転可能とされている。
これらの環状芯体6及び複数のローラ7を有する第1の移動動作部3は、環状芯体6の軸心を床面と平行に向けた状態で、ローラ7(環状芯体6の下部に位置するローラ7)を介して床面上に接地される。この接地状態で、環状芯体6をその軸心周りに回転駆動することで、環状芯体6及び各ローラ7の全体が輪転し、それにより第1の移動動作部3が環状芯体6の軸心と直交する方向に床面上を移動するようになっている。また、上記接地状態で、各ローラ7をその回転軸心周りに回転駆動することで、第1の移動動作部3が、環状芯体6の軸心方向に移動するようになっている。
さらに、環状芯体6の回転駆動と各ローラ7の回転駆動とを行なうことで、環状芯体6の軸心と直交する方向と、環状芯体6の軸心方向とに対して傾斜した方向に第1の移動動作部3が移動するようになっている。
これにより、第1の移動動作部3は、床面上を全方向に移動することが可能となっている。以降の説明では、図1及び図2に示す如く、第1の移動動作部3の移動方向のうち、環状芯体6の軸心と直交する方向をX軸方向、該環状芯体6の軸心方向をY軸方向とし、鉛直方向をZ軸方向とする。なお、前方向をX軸の正方向、左方向をY軸の正方向、上方向をZ軸の正方向とする。
基体2には、上記第1の移動動作部3が組み付けられている。より詳しくは、基体2は、床面に接地させた第1の移動動作部3の下部を除く部分の周囲を覆うように設けられている。そして、この基体2に第1の移動動作部3の環状芯体6が、その軸心周りに回転自在に支持されている。
この場合、基体2は、第1の移動動作部3の環状芯体6の軸心を支点として、その軸心周りに(Y軸周りに)傾動自在とされていると共に、第1の移動動作部3と共に床面に対して傾くことで、第1の移動動作部3の接地部を支点として、環状芯体6の軸心と直交するX軸周りに傾動自在とされている。従って、基体2は、鉛直方向に対して2軸周りに傾動自在とされている。
また、基体2の内部には、図2に示す如く、第1の移動動作部3を移動させる駆動力を発生する第1のアクチュエータ装置8が搭載されている。この第1のアクチュエータ装置8は、環状芯体6を回転駆動するアクチュエータとしての電動モータ8aと、各ローラ7を回転駆動するアクチュエータとしての電動モータ8bとから構成される。そして、電動モータ8a,8bは、それぞれ図示を省略する動力伝達機構を介して環状芯体6、各ローラ7に回転駆動力を付与するようにしている。なお、該動力伝達機構は公知の構造のものでよい。
なお、第1の移動動作部3は、上記の構造と異なる構造のものであってもよい。例えば、第1の移動動作部3及びその駆動系の構造として、PCT国際公開公報WO/2008/132778、あるいは、PCT国際公開公報WO/2008/132779にて本願出願人が提案した構造のものを採用してもよい。
また、基体2には、乗員搭乗部5が組み付けられている。この乗員搭乗部5は、乗員が着座するシートにより構成されており、その基体2の上端部に固定されている。そして、乗員は、その前後方向をX軸方向、左右方向をY軸方向に向けて、乗員搭乗部5に着座することが可能となっている。また、乗員搭乗部5(シート)は、基体2に固定されているので、該基体2と一体に鉛直方向に対して傾動自在とされている。
基体2には、さらに乗員搭乗部5に着座した乗員がその足を載せる一対の足載せ部9,9と、該乗員が把持する一対の把持部10,10とが組み付けられている。
足載せ部9,9は、基体2の両側部の下部に突設されている。なお、図1及び図2では、一方側(右側)の足載せ部9の図示は省略されている。
また、把持部10,10は、乗員搭乗部5の両側にX軸方向(前後方向)に延在して配置されたバー状のものであり、それぞれ、基体2から延設されたロッド11を介して基体2に固定されている。
第2の移動動作部4は、本実施形態では、所謂、オムニホイールにより構成されている。第2の移動動作部4としてのオムニホイールは、同軸心の一対の環状芯体(図示省略)と、各環状芯体に、回転軸心を該環状芯体の円周方向に向けて回転自在に外挿された複数の樽状のローラ13とを備える公知の構造のものである。
この場合、第2の移動動作部4は、その一対の環状芯体の軸心をX軸方向(前後方向)に向けて第1の移動動作部3の後方に配置され、ローラ13を介して床面に接地されている。
なお、上記一対の環状芯体の一方側のローラ13と、他方側のローラ13とは、該環状芯体の周方向に位相をずらして配置されており、該一対の環状芯体の回転時に、該一対の環状芯体の一方側のローラ13と、他方側のローラ13とのうちのいずれか一方が床面に接地するようになっている。
上記オムニホイールにより構成された第2の移動動作部4は、基体2に連結されている。より詳しくは、第2の移動動作部4は、オムニホイール(一対の環状芯体及び複数のローラ13の全体)の上部側の部分を覆う筐体14を備えており、この筐体14にオムニホイールの一対の環状芯体がその軸心周りに回転自在に軸支されている。さらに、筐体14から基体2側に延設されたアーム15が、前記第1の移動動作部3の環状芯体6の軸心周りに揺動し得るように基体2に軸支されている。これにより、第2の移動動作部4が、アーム15を介して基体2に連結されている。
そして、第2の移動動作部4は、アーム15の揺動によって前記第1の移動動作部3の環状芯体6の軸心周りに基体2に対して揺動自在とされ、これにより、第1の移動動作部3と第2の移動動作部4との両方を接地させたまま、乗員搭乗部5を基体2と共にY軸周りに傾動させることが可能となっている。
なお、アーム15を第1の移動動作部3の環状芯体6の軸心部に軸支して、第1の移動動作部3に第2の移動動作部4をアーム15を介して連結するようにしてもよい。
また、基体2には、アーム15の揺動範囲を制限する一対のストッパ16,16が設けられており、該アーム15は、ストッパ16,16の間の範囲内で揺動することが可能となっている。これにより、第1の移動動作部3の環状芯体6の軸心周りでの第2の移動動作部4の揺動範囲、ひいては、基体2及び乗員搭乗部5のX軸周りの傾動範囲が制限され、該基体2及び乗員搭乗部5が乗員の後ろ側に過大に傾くのが防止されるようになっている。
なお、第2の移動動作部4は、床面に押し付けられるようにバネにより付勢されていてもよい。
上記の如く第2の移動動作部4は、その一対の環状芯体の回転と、ローラ13の回転とのうちの一方又は両方を行なうことで、第1の移動動作部3と同様に、床面上をX軸方向及びY軸方向を含む全方向に移動することが可能となっている。詳しくは、環状芯体の回転によって、第2の移動動作部4がY軸方向(左右方向)に移動可能とされ、ローラ13の回転によって、X軸方向(前後方向)に移動可能とされている。
また、第2の移動動作部4の筐体14には、第2の移動動作部4を駆動する第2のアクチュエータ装置としての電動モータ17を取り付けられている。この電動モータ17は、第2の移動動作部4の一対の環状芯体を回転駆動するように該一対の環状芯体に連結されている。
従って、本実施形態では、第2の移動動作部4のX軸方向での移動は、第1の移動動作部3のX軸方向での移動に追従して従動的に行なわれ、第2の移動動作部4のY軸方向での移動は、電動モータ17により第2の移動動作部4の一対の環状芯体を回転駆動することで行なわれるようになっている。
補足すると、第2の移動動作部4は、第1の移動動作部3と同様の構造のものであってもよい。
以上が本実施形態における車両1の機構的な構成である。
図1及び図2での図示は省略したが、本実施形態の車両1の基体2には、該車両1の動作制御(第1の移動動作部3及び第2の移動動作部4の動作制御)のための構成として、図3に示す如く、CPU、RAM、ROM等を含む電子回路ユニットにより構成された制御装置21と、鉛直方向に対する乗員搭乗部5の傾斜角度(基体2の傾斜角度)を計測するための傾斜センサ22と、車両1のヨー軸周りの角速度を計測するためのヨーレートセンサ23と、後述する携帯電話27と互いにBluetooth(登録商標)等によって無線通信をするための通信部26とが搭載されている。
そして、制御装置21には、傾斜センサ22及びヨーレートセンサ23の検出信号と、通信部26の出力とが入力されるようになっている。
なお、制御装置21は、相互に通信可能な複数の電子回路ユニットに構成されていてもよい。
上記傾斜センサ22は、例えば加速度センサとジャイロセンサ等の角速度センサとにより構成される。そして、制御装置21は、これらの加速度センサ及び角速度センサの検出信号から、乗員搭乗部5の傾斜角度(換言すれば基体2の傾斜角度)の計測値を公知の手法を用いて取得する。その手法としては、例えば特許4181113号にて本願出願人が提案した手法を採用することができる。
なお、本実施形態における乗員搭乗部5の傾斜角度(又は基体2の傾斜角度)というのは、より詳しくは、車両1と、その乗員搭乗部5に既定の姿勢(標準姿勢)で搭乗した乗員とを併せた全体の重心が、第1の移動動作部3の接地部の直上(鉛直方向上方)に位置する状態での乗員搭乗部5(又は基体2)の姿勢を基準(ゼロ)とする傾斜角度(X軸周り方向の傾斜角度とY軸周り方向の傾斜角度との組)である。
また、ヨーレートセンサ23は、ジャイロセンサ等の角速度センサにより構成される。そして、制御装置21は、その検出信号に基づいて、車両1のヨー軸周りの角速度の計測値を取得する。
通信部26には、後述するように、所定の操作が行われた携帯電話27の操縦プログラム29が生成した指令を表すデータが、無線通信によって送信されてくる。この送信されてきたデータには、当該指令を表すデータに加え、無線通信するために付与された情報(例えば、通信プロトコルに必要なヘッダ情報、誤り訂正符号等)等が含まれている。通信部26は、これらの付与された情報を削除した後のデータ(すなわち、指令)を制御装置21に出力する。
次に、操作器としての携帯電話27について図4を参照して説明する。携帯電話27は、全面がタッチ操作可能な表示機器であるタッチパネルディスプレイで構成された表示部27aを備える。表示部27aは、タッチされた点の座標を検知できるように構成されている。また、携帯電話27は、CPU、RAM及びROM等を含む電子回路ユニットにより構成された演算装置28を備える。更に、携帯電話27は、車両1の通信部26と無線通信するための第1通信部271と、図示しない外部のサーバーSVと無線通信するための第2通信部272とを備える。
演算装置28は、当該演算装置28内の記憶装置(図示省略)に記憶された所定のプログラムに従って所定の演算処理を実行する。記憶装置には複数のプログラムが記憶されており、これらの中には、車両1の制御装置21に対して、車両1を操縦するための指令を出力するプログラム(以下、「操縦プログラム」という)29が記憶されている。
図4は、携帯電話27の演算装置28によって操縦プログラム29が実行されているときの、表示部27aを示している。表示部27aには、略正方形状に設けられた第1操作領域27bと、図4の左右方向に長い棒状の第2操作領域27dと、低速モードボタンB1と、高速モードボタンB2とが表示されている。
第1操作領域27b内には、図4の上下方向に沿った第1ガイド線27xと、図4の左右方向に沿った第2ガイド線27yとが表示されている。また、第1ガイド線27xと第2ガイド線27yとの交点には、第1ポインタ27cが表示されている。第2操作領域27dには、その中央部に、第2ポインタ27eが表示されている。
操縦プログラム29は、第1操作領域27b内の第1ポインタ27cがタッチ操作された後、上下方向及び左右方向を含む全方向に向かってスライド操作されたときのスライド量を検知する。これは、スライド操作された後にタッチされている点(以下、「操作点」という)の座標を検知することで、第1ポインタ27cの座標(予め規定された座標)との距離を算出することで得ている。
このとき、操縦プログラム29は、第1ポインタ27cの上下方向のスライド量に応じた操作信号を、車両1を前方又は後方に移動させる指令(以下、「第1上下スライド指令」という)Js_xとして出力し、第1ポインタ27cの左右方向のスライド量に応じた操作信号を、車両1を右周り(時計周り)又は左周り(反時計周り)に旋回させるための指令(旋回指令。以下、「第1左右スライド指令」という)Js_yとして出力する。なお、本実施形態では、第1ポインタ27cの上下方向のスライド量は、上向きのスライド量が正、下向きのスライド量が負である。また、第1ポインタ27c左右方向のスライド量は、左向きのスライド量が正、右向きのスライド量が負である。
そして、操縦プログラム29は、第2操作領域27d上の第2ポインタ27eがタッチ操作された後、左右方向に向かってスライド操作されたときのスライド量を検知する。これは、操作点の座標と第2ポインタ27eの座標(予め規定された座標)との距離を算出することで得ている。このとき、操縦プログラム29は、第2ポインタ27eの左右方向のスライド量に応じた操作信号を、車両1を左方又は右方に移動させる指令(以下、「第2左右スライド指令」という)Js2_yとして出力する。なお、本実施形態では、第2ポインタ27eの左右方向のスライド量は、左向きのスライド量が正、右向きのスライド量が負である。
なお、第1ポインタ27cの上下方向のスライド量、左右方向のスライド量、及び第2ポインタ27eの左右方向のスライド量の各々が、十分に微小なものとなる所定の範囲を不感帯域として、その不感帯域内のスライド量では、各スライド指令Js_x,Js_y,Js2_yをゼロに設定するようにしてもよい。
なお、表示部27aは、マルチタッチ可能なタッチパネルで構成されている。従って、第1操作領域27bの点と第2操作領域27dの点との2つの領域の点が同時にタッチされる場合もある。本実施形態においては、操縦プログラム29が、第1操作領域27bの点と第2操作領域27dの点とが同時にタッチされている場合においては、先にタッチされている操作領域のみのタッチを有効と判定し、後からタッチされた操作領域のタッチを無効と判定している。
例えば、第1操作領域27bの第1ポインタ27cがタッチされ、当該タッチが解除されない間に、第2操作領域27dの第2ポインタ27eがタッチされた場合においては、第2ポインタ27eがタッチされても当該タッチが無効となり、この状態において、第2操作領域27d内を左右方向にスライド操作させたとしても、当該スライド操作は無効となる。
これにより、一方の操作領域の点をスライド操作中に、誤操作によって他方の操作領域の点にタッチ又はスライドしてしまったとしても、一方の操作が中断されるようなことを防止できる。
なお、操縦プログラム29を、第1操作領域27bの点と第2操作領域27dの点とが同時にタッチされている場合においては、後にタッチされた操作領域のタッチを有効と判定し、前にタッチされた操作領域のタッチを無効と判定するように構成してもよい。この場合においては、2つの操作が同時に行われるような場合として、他には、例えば、一方の操作から他方の操作に素早く切り替えたい場合に、一方の操作を終えるよりも早く他方の操作を行ってしまうような場合が考えられる。そこで、例えば、後に操作が行われていた方の指令を優先的に出力するように規定されていると、一方の操作を終えるよりも早く他方の操作を行ってしまった場合であっても、他方の操作に素早く切り替えることができる。
上記のように操縦プログラム29が構成されていることが、本発明における「前記操作器は、前記第1操作と前記第2操作とが同時に行われた場合、いずれか一方の操作に応じた指令を出力し、他方の操作に応じた指令を出力しない」ことに相当する。
低速モードボタンB1は、車両1の移動モードを後述する低速モードに変更するための仮想的なボタンであり、当該ボタンが表示されている領域がタッチされると、移動モードが低速モードに設定される。高速モードボタンB2は、車両1の移動モードを後述する高速モードに変更するための仮想的なボタンであり、当該ボタンが表示されている領域がタッチされると、移動モードが高速モードに設定される。
次に、上記の携帯電話27で実行される操縦プログラム29と車両1とが互いに通信する機能について説明する。上述したように、携帯電話27の操縦プログラム29は、第1通信部271を介して、車両1と無線通信が可能に構成されている。操縦プログラム29は、車両1と無線通信しているとき、車両1に対して、第1操作領域27b又は第2操作領域27dにおけるポインタ27c,27eの操作から得られる指令(Js_x,Js_y及びJs2_y)を送信すると共に、車両1から、車両情報を取得する。ここで、車両情報とは、詳細は後述するが、車両1と乗員搭乗部5に搭乗した乗員との全体重心の位置(の推定値Ofst_estm_xy)を含む情報である。
本実施形態では、操縦プログラム29は、車両情報として、上記全体重心の位置(の推定値Ofst_estm_xy)を取得する。そして、操縦プログラム29は、当該取得した全体重心の位置を第1操作領域27b上で表す点として、重心表示点27fを当該第1操作領域27bに表示する(詳細は、後述)。
最初に、携帯電話27が車両1と通信するときに、当該携帯電話27の操縦プログラム29によって実行される演算装置28の処理について図5を参照して説明する。
まず、最初のステップST1では、車両1と無線接続されているか確認する。車両1と無線接続されていない場合には、ステップST2に進み、無線通信を開始する。ここでは、例えば、Bluetoothであるならば車両1とペアリングを試みる。無線接続した後において、所定の周期で車両側から送信されたデータを受信する。この受信したデータの中には、車両情報の他にも、無線通信するために付与された情報(例えば、通信プロトコルに必要なヘッダ情報、誤り訂正符号等)等が含まれており、操縦プログラム29には、これらの情報が第1通信部271によって削除された後のデータ(すなわち、車両情報)が渡される。ステップST2の処理が終了すると、ステップST1に戻る。
車両1と無線接続されると、ステップST3に進み、受信した車両情報、すなわち、全体重心の位置位置(の推定値Ofst_estm_xy)等を乗員に対して、表示部27aの所定の領域に表示(報知)する(詳細は、後述)。なお、車両情報の報知は、表示だけに限らず、音を再生する、又は振動を発生する等で行ってもよい。
ステップST3の処理が終了すると、ステップST4に進み、第1ポインタ27c及び第2ポインタ27eのいずれかがタッチされているか否かを判定する。
ポインタ27c,27eがタッチされていないと判定された場合には、ステップST1に戻る。ポインタ27c,27eがタッチされていると判定された場合には、ステップST5に進み、当該タッチの継続時間が所定の時間を超えたか否かを判定する。詳細には、ステップST4の判定によって、タッチされていないと判定されていた状態から、タッチされていると判定された状態になったときに、操縦プログラム29は、時間を計測するタイマーを始動する。ステップST5では、この始動されたタイマーの計測値が、所定の値以上のとき所定の時間が経過したと判定し、所定の値未満のとき所定の時間が経過していないと判定する。なお、ステップST4の判定によって、タッチされていないと判定された場合には、タイマーの値はリセットされ、0に設定される。
ステップST4で、ポインタ27c,27eがタッチされていると判定された場合には、ポインタ27c,27eがタッチされたことを乗員に対して報知する。このときの報知は、携帯電話の筐体を振動させることで実現される。なお、音を再生する又は表示部27aの表示を変化させる等により乗員に報知してもよい。
前述したように、ポインタ27c,27eがタッチされた後にスライド操作されることで、携帯電話27から車両1に指令を送信する。換言すると、ポインタ27c,27eがタッチされていない状態においては、携帯電話27から車両1に指令を送信しない。このため、乗員がポインタ27c,27eにタッチせずにスライド操作した場合、乗員は操作していると思っているにも拘らず実際には車両1に指令が送信されておらず、携帯電話27の操作によって車両1が移動することはない。そこで、ポインタ27c,27eがタッチされたことを乗員に報知することで、このような操作できていないにも拘らず操作をしていると思い込むような状況になることを防止できる。
ポインタ27c,27eが本発明における「所定の位置」に相当すると共に、ステップST4で「ポインタ27c,27eがタッチされていると判定された場合に、ポインタ27c,27eがタッチされたことを乗員に対して報知する」ことが、本発明における「前記操作器は、タッチ操作される操作領域を有するタッチパネルを備え、前記操作領域がタッチされていない状態からタッチされている状態になったときに、当該タッチされている点が、所定の位置であるときに、当該操作器から前記制御装置に指令の出力を開始すると共に、当該指令の出力を開始することを前記乗員搭乗部に搭乗した乗員に報知する」ことに相当する。
ステップST5で、所定の時間が経過していないと判定された場合、ステップST1に戻り、所定の時間が経過していると判定された場合、ステップST6に進む。そして、ステップST6では、当該操縦プログラム29が、操作の受け付けを開始したことを乗員に報知する。このときの報知は、例えば、携帯電話27の筐体を振動させて実現される。なお、音を再生する又は表示部27aの表示を変化させる等により乗員に報知してもよい。このステップST6の処理により、乗員は、車両1の操作が開始されたことを認識できる。
ステップST5における所定の時間は、誤操作等により表示部27aのポインタ27c,27eに誤って触れてしまったような場合に、倒立振子型車両が移動することを防止できるような時間に設定される。すなわち、操縦プログラム29は、ポインタ27c,27eにタッチされた場合であってもすぐに反応せず、当該タッチが本当に操作しようとしてなされたものか、誤操作によるものかを区別できるように構成されている。これにより、誤操作と思われるタッチに対して操縦プログラム29が当該車両1を移動させる指令を生成することを防止できる。
ここで、ステップST4〜ST6の処理が、本発明における「前記操作器は、当該操作器が所定の時間以上継続して操作されたとき、前記制御装置に指令の出力を開始すると共に、当該指令の出力を開始することを前記乗員搭乗部に搭乗した乗員に報知する」ことに相当する。
ステップST6の処理が終了すると、ステップST7に進み、タッチが解除されたか否かを判定する。タッチが解除されたと判定された場合には、ステップST1に戻り、タッチが解除されていないと判定された場合には、ステップST8に進む。
ステップST8では、スライド操作されたか否かを判定する。スライド操作されていないと判定されたときには、ステップST9に進み、前回の操作信号を車両1に送信する。次に、ステップST10に進み、ステップST3と同様に、車両1から車両情報を受け取り、当該車両情報を乗員に報知する。
ステップST8で、スライド操作されたと判定された場合には、ステップST11に進み、スライド操作によって得られる操作信号を車両1に送信する。そして、ステップST12に進み、ステップST4でタッチされたと判定されたポインタを、スライド操作によって移動した点(すなわち、現時点でタッチされている点)に移動させて表示する。そして、ステップST13に進み、ステップST3及びステップST10と同様に、車両1から車両情報を受け取り、当該車両情報を乗員に報知する。
次に、ステップST14に進み、携帯電話27に割り込みが発生しているか否かを判定する。ここで、携帯電話27の割り込みとは、例えば、電話の着信である。この場合には、操縦プログラム29による表示から着信用の表示に切り替える等、操縦プログラム29のための操作を受け付けることができない状態になる。従って、ステップST14で、携帯電話27に割り込みが発生していると判定されたときには、ステップST15に進み、車両1との無線接続している状態を断って、指令を車両1に送信することを停止する。そして、ステップST16に進み、ステップST15で指令を車両1に送信することを停止したことを乗員に、報知し、本フローチャートを終了する。
ここで、ステップST14で割り込みが発生していると判定され、ステップST15で、指令を車両1に送信することを停止する処理が、本発明における「当該操作器の操作に応じて前記指令を出力しているとき、前記所定の機能が有効になることで当該操作器が該操作を受け付けることができない状態になった場合には、前記指令の出力を停止する」ことに相当する。
また、ステップST14で、割り込みが発生していないと判定されたときは、ステップST7に戻る。
以上が、携帯電話27が車両1と通信するときに、当該携帯電話27の操縦プログラム29によって実行される演算装置28の処理の詳細である。
次に、車両1が携帯電話27と通信するときに、当該車両1の制御装置21によって実行される処理について図6を参照して説明する。
まず、最初のステップST101では、携帯電話27と無線接続されているか確認する。無線接続がされていない場合には、ステップST102に進み、携帯電話27から無線接続要求が有るか否かを判定する。無線接続要求が来ていない場合には、本フローチャートを終了する。無線接続要求が来ている場合には、ステップST103に進み、無線接続処理を実行する。
ステップST101で無線接続されていた場合、又はステップST103の処理が終了した場合には、車両1が、携帯電話27と無線接続されている。従って、ステップST104に進み、携帯電話27から送信されたデータを、受信したか否かを判定する。データを受信していない場合には、本フローチャートを終了する。データを受信している場合には、ステップST105に進み、受信データが規定のプロトコルを満たしているか否かを判定する。ここで、規定のプロトコルとは、通信をするために付与されるヘッダ情報等であり、これらが規定外のデータとなっている場合には、当該受信データが、なりすまし又は混信等によって他者(最初に通信を確立した携帯電話端末とは別の携帯電話端末)から送信された不正なものである可能性がある。そこで、当該受信データは、不正な通信によって得られたものであるとして、ステップST106に進み、無線接続を切断して本フローチャートを終了する。
受信データが規定のプロトコルを満たしている場合には、ステップST107に進み、「当該受信の前に受信したとき」から「当該受信」までの経過時間が、予め規定された時間内であるか否かを判定する。この判定は、無線通信によって得られたデータに対する信頼性を向上させるためのものであり、例えば、長時間受信できなかった場合には、当該受信データが、なりすまし又は混信等によって他者から送信された不正なものである可能性がある。そこで、規定時間内にデータを受信しなかった場合には、ステップST106に進み、無線接続を切断して本フローチャートを終了する。
なお、車両1側の処理として、「ST107→ST106」という処理が存在しているので、操縦プログラム29は、図5のフローチャートにおいて、スライド操作されていないと判定されていない場合に、前回の操作信号を送信している(ステップST8,ST9)。これにより、ポインタがタッチされた状態で長時間スライドされなかった場合であっても、ステップST8,ST9の処理によって、車両1は、定期的にデータを受信することとなり、携帯電話27が車両1に正常に接続している場合においては、通常、車両1は、規定時間内に携帯電話27から送信されたデータを受信する。
ステップST107で、予め規定された時間内にデータを受信したと判定された場合には、ステップST108に進み、車両情報を携帯電話27に送信する。そして、ステップST109に進み、ステップST104で受信した情報を携帯電話27からの指令(Js_x,Js_y及びJs2_y)として、制御装置21が第1のアクチュエータ装置8である電動モータ8a,8b及び第2のアクチュエータ装置である電動モータ17を制御する。
以上が、車両1が携帯電話27と通信するときに、当該車両1の制御装置21によって実行される処理の詳細である。
また、携帯電話27の操縦プログラム29は、機能の追加等が考えられる。これを考慮して、本実施形態では、第2通信部272を介して外部のサーバーSVと無線通信することで、操縦プログラム29を異なるプログラムに更新できるように構成している。図7は、携帯電話27の演算装置28によって処理される、操縦プログラム29の更新手順を示したものである。具体的には、図7に示されるように、まず、最初のステップST201で、外部のサーバーSVに接続する。
次に、ステップST202で、ダウンロードするプログラムを選択する。外部のサーバーには、複数のプログラムが記憶されており、乗員の好みに応じてプログラムを選択できるようにしている。これは、例えば、「最新バージョン」及び「一つ前のバージョン」等のように、何らかの理由により、過去のバージョンのプログラムを利用したい場合に、乗員が任意のバージョンのプログラムを選択することができるようにしている。
また、その他にも例えば、スライド操作に対する指令の生成方法が異なるプログラムを記憶しておき、乗員の好みに応じて選択できるようにしてもよい。例えば、車両1に慣れていない乗員のために、車両1の移動速度が通常よりも遅くなるように指令を生成するプログラムを用意すると共に、車両1に慣れている乗員のために、車両1の移動速度が通常よりも速くなるように指令を生成するプログラムを用意し、これらのプログラムを乗員が好みに応じて選択できるようにしてもよい。
続いて、ステップST203に進み、ステップST202で選択したプログラムをダウンロードして、携帯電話27の記憶装置に記憶し、本フローチャートを終了する。
以上が、携帯電話27の演算装置28による操縦プログラム29の更新処理の詳細である。
以上のように、新しいバージョンのプログラムに更新する等を容易にすることができる。また、例えば、異なる動作をするプログラム等をサーバーに記憶するように構成した場合には、乗員が、好みに応じたプログラムを取得することができる。これにより、操作器の利便性が向上する。
なお、サーバー側には、複数のプログラムを記憶させず、常に1つのプログラムのみを記憶させておいてもよい。この場合には、本フローチャートのステップST202の処理は不要となる。この場合であっても、新しいバージョンのプログラム等に更新する等を容易にすることができるという効果が得られる。
次に、車両1の制御装置21による第1のアクチュエータ装置及び第2のアクチュエータ装置の制御について説明する。
制御装置21は、実装されるプログラム等により実現される機能(ソフトウェアにより実現される機能)又はハードウェアにより構成される機能として、前記の如く計測値を取得する機能の他、第1のアクチュエータ装置8を構成する電動モータ8a,8bを制御することで第1の移動動作部3の移動動作を制御する第1制御処理部24と、第2のアクチュエータ装置としての電動モータ17を制御することで第2の移動動作部4の移動動作を制御する第2制御処理部25と備える。
第1制御処理部24は、後述する演算処理を実行することで、第1の移動動作部3の移動速度(詳しくは、X軸方向の並進速度とY軸方向の並進速度との組)の目標値である第1目標速度を逐次算出し、第1の移動動作部3の実際の移動速度を、第1目標速度に一致させるように電動モータ8a,8bの回転速度を制御する。
この場合、電動モータ8a,8bのそれぞれの回転速度と、第1の移動動作部3の実際の移動速度との間の関係はあらかじめ定められており、第1の移動動作部3の第1目標速度に応じて、各電動モータ8a,8bの回転速度の目標値が規定されるようになっている。そして、電動モータ8a,8bの回転速度を第1目標速度に応じて規定される目標値にフィードバック制御することで、第1の移動動作部3の実際の移動速度が、第1目標速度に制御される。
また、第2制御処理部25は、後述する演算処理を実行することで、第2の移動動作部4の移動速度(詳しくは、Y軸方向の並進速度)の目標値である第2目標速度を逐次算出し、Y軸方向での第2の移動動作部4の実際の移動速度を、第2目標速度に一致させるように電動モータ17の回転速度を制御する。
この場合、第1の移動動作部3の場合と同様に、電動モータ17の回転速度と、Y軸方向での第2の移動動作部4の実際の移動速度との間の関係はあらかじめ定められており、第2の移動動作部4の第2目標速度に応じて、電動モータ17の回転速度の目標値が規定されるようになっている。そして、電動モータ17の回転速度を第2目標速度に応じて規定される目標値にフィードバック制御することで、Y軸方向での第2の移動動作部4の実際の移動速度が、第2目標速度に制御される。
補足すると、本実施形態では、第2の移動動作部4のX軸方向での移動は、第1の移動動作部3のX軸方向の移動に追従して従動的に行なわれる。このため、X軸方向での第2の移動動作部4の移動速度の目標値を設定する必要はない。
次に、上記第1制御処理部24及び第2制御処理部25の処理をさらに詳細に説明する。まず、図8〜図12を参照して第1制御処理部24の処理を説明する。
第1制御処理部24は、図8に示すように、その主要な機能部として、通信部26から入力される操作信号により示される「第1上下スライド指令Js_x(第1ポインタ27cの上下方向のスライド量に応じた指令)」、「第1左右スライド指令Js_y(第1ポインタ27cの左右方向のスライド量に応じた指令)」及び「第2左右スライド指令Js2_y(第2ポインタ27eの左右方向のスライド量に応じた指令)」から車両1の移動のための速度指令に変換する操作指令変換部31と、車両1とその乗員搭乗部5に搭乗した乗員とを併せた全体の重心(以降、車両系全体重心という)の目標速度を決定する重心目標速度決定部32と、車両系全体重心の速度を推定する重心速度推定部33と、推定した車両系全体重心の速度を目標速度に追従させつつ、乗員搭乗部5の姿勢(基体2の姿勢)を安定化するように第1の移動動作部3の移動速度の目標値を決定する姿勢制御演算部34とを備える。そして、第1制御処理部24は、これらの各機能部の処理を、制御装置21の所定の演算処理周期で実行する。
なお、本実施形態では、車両系全体重心というのは、車両1の代表点の一例としての意味を持つものである。従って、車両系全体重心の速度というのは、その代表点の並進移動速度を意味するものである。
ここで、第1制御処理部24の各機能部の処理を具体的に説明する前に、その処理の基礎となる事項を説明しておく。車両系全体重心の動力学的な挙動(詳しくは、Y軸方向から見た挙動と、X軸方向から見た挙動)は、近似的に、図9に示すような倒立振子モデルの挙動により表現される。第1制御処理部24の処理のアルゴリズムは、この挙動を基礎として構築されている。
なお、図9の参照符号を含めて、以降の説明では、添え字“_x”はY軸方向から見た場合の変数等の参照符号を意味し、添え字“_y”はX軸方向から見た場合の変数等の参照符号を意味する。また、図9では、Y軸方向から見た場合の倒立振子モデルと、X軸方向から見た場合の倒立振子モデルとを併せて図示するために、Y軸方向から見た場合の変数の参照符号に括弧を付さないものとし、X軸方向から見た場合の変数の参照符号に括弧を付している。
Y軸方向から見た車両系全体重心の挙動を表す倒立振子モデルは、Y軸方向と平行な回転軸心を有して床面上を輪転自在な仮想的な車輪61_x(以降、仮想車輪61_xという)と、該仮想車輪61_xの回転中心から延設されて、該仮想車輪61_xの回転軸周りに(Y軸周り方向に)揺動自在なロッド62_xと、このロッド62_xの先端部(上端部)である基準部Ps_xに連結された質点Ga_xとを備える。
この倒立振子モデルでは、質点Ga_xの運動が、Y軸方向から見た車両系全体重心の運動に相当し、鉛直方向に対するロッド62_xの傾斜角度θb_x(Y軸周り方向の傾斜角度)が、乗員搭乗部5(又は基体2)のY軸周り方向の傾斜角度に一致するものとされる。また、第1の移動動作部3のX軸方向の並進運動が、仮想車輪61_xの輪転によるX軸方向の並進運動に相当するものとされる。
そして、仮想車輪61_xの半径r_xと、基準部Ps_x及び質点Ga_xの床面からの高さh_xとは、あらかじめ設定された既定値(一定値)とされる。
同様に、X軸方向から見た車両系全体重心の挙動を表す倒立振子モデルは、X軸方向と平行な回転軸心を有して床面上を輪転自在な仮想的な車輪61_y(以降、仮想車輪61_yという)と、該仮想車輪61_yの回転中心から延設されて、該仮想車輪61_yの回転軸周りに(X軸周り方向に)揺動自在なロッド62_yと、このロッド62_yの先端部(上端部)である基準部Ps_yに連結された質点Ga_yとを備える。
この倒立振子モデルでは、質点Ga_yの運動が、X軸方向から見た車両系全体重心の運動に相当し、鉛直方向に対するロッド62_yの傾斜角度θb_y(X軸周り方向の傾斜角度)が、乗員搭乗部5(又は基体2)のX軸周り方向の傾斜角度に一致するものとされる。また、第1の移動動作部3のY軸方向の並進運動が、仮想車輪61_yの輪転によるY軸方向の並進運動に相当するものとされる。
そして、仮想車輪61_yの半径r_yと、基準部Ps_y及び質点Ga_yの床面からの高さh_yとは、あらかじめ設定された既定値(一定値)とされる。なお、X軸方向で見た基準部Ps_y及び質点Ga_yの床面からの高さh_yは、Y軸方向で見た基準部Ps_x及び質点Ga_xの床面からの高さh_xと同じである。そこで、以降、h_x=h_y=hとおく。
ここで、Y軸方向から見た場合の上記基準部Ps_xと質点Ga_xとの位置関係ついて補足すると、基準部Ps_xの位置は、乗員搭乗部5に搭乗(着座)した乗員が、該乗員搭乗部5に対してあらかじめ定められた中立姿勢のまま不動であると仮定した場合における車両系全体重心の位置に相当している。従って、この場合には、質点Ga_xの位置は、基準部Ps_xの位置に一致する。このことは、X軸方向から見た場合の上記基準部Ps_yと質点Ga_yとの位置関係ついても同様である。
ただし、実際には、乗員搭乗部5に搭乗した乗員が、その上体等を乗員搭乗部5(又は基体2)に対して動かすことで、実際の車両系全体重心のX軸方向の位置及びY軸方向の位置は、一般には、それぞれ基準部Ps_x,Ps_yの位置から水平方向にずれることとなる。このため、図9では、質点Ga_x,Ga_yの位置をそれぞれ、基準部Ps_x,Ps_yの位置からずらした状態で図示している。
上記のような倒立振子モデルで表現される車両系全体重心の挙動は、次式(1a)、(1b)、(2a)、(2b)により表現される。この場合、式(1a),(1b)は、Y軸方向で見た挙動、式(2a),(2b)は、X軸方向で見た挙動を表している。
Vb_x=Vw1_x+h・ωb_x ……(1a)
dVb_x/dt=(g/h)・(θb_x・(h−r_x)+Ofst_x)+ωz・Vb_y ……(1b)
Vb_y=Vw1_y+h・ωb_y ……(2a)
dVb_y/dt=(g/h)・(θb_y・(h−r_y)+Ofst_y)−ωz・Vb_x ……(2b)
ここで、Vb_xは、車両系全体重心のX軸方向の速度(並進速度)、Vw1_xは、仮想車輪61_xのX軸方向の移動速度(並進速度)、θb_xは乗員搭乗部5(又は基体2)のY軸周り方向の傾斜角度、ωb_xはθb_xの時間的変化率(=dθb_x/dt)、Ofst_xは車両系全体重心のX軸方向の位置(質点Ga_xのX軸方向の位置)の、前記基準部Ps_xの位置からのX軸方向のずれ量、Vb_yは、車両系全体重心のY軸方向の速度(並進速度)、Vw1_yは、仮想車輪61_yのY軸方向の移動速度(並進速度)、θb_yは乗員搭乗部5(又は基体2)のX軸周り方向の傾斜角度、ωb_yはθb_yの時間的変化率(=dθb_y/dt)、Ofst_yは車両系全体重心のY軸方向の位置(質点Ga_yのY軸方向の位置)の、前記基準部Ps_yの位置からのY軸方向のずれ量である。また、ωzは車両1の旋回時のヨーレート(ヨー軸周り方向の角速度)、gは重力加速度定数である。なお、θb_x、ωb_xの正方向は、車両系全体重心がX軸の正方向(前向き)に傾く方向、θb_y、ωb_yの正方向は、車両系全体重心がY軸の正方向(左向き)に傾く方向である。また、ωzの正方向は、車両1を上方から見た場合に、反時計周り方向である。
式(1a)の右辺第2項(=h・ωb_x)は、乗員搭乗部5のY軸周り方向の傾動によって生じる基準部Ps_xのX軸方向の並進速度成分、式(2a)右辺第2項(=h・ωb_y)は、乗員搭乗部5のX軸周り方向の傾動によって生じる基準部Ps_yのY軸方向の並進速度成分である。
また、式(1b)の右辺の第1項は、車両系全体重心のX軸方向の位置(質点Ga_xのX軸方向の位置)の、仮想車輪61_xの接地部(Y軸方向から見た第1の移動動作部3の接地部)の鉛直上方位置からのずれ量(=θb_x・(h−r_x)+Ofst_x)に応じて仮想車輪61_xの接地部に作用する床反力(図9のF)のX軸方向成分(図9のF_x)によって車両系全体重心に発生するX軸方向の加速度成分、式(1b)の右辺の第2項は、ωzのヨーレートでの旋回時に車両1に作用する遠心力によって発生するX軸方向の加速度成分である。
同様に、式(2b)の右辺の第1項は、車両系全体重心のY軸方向の位置(質点Ga_yのY軸方向の位置)の、仮想車輪61_yの接地部(X軸方向から見た第1の移動動作部3の接地部)の鉛直上方位置からのずれ量(=θb_y・(h−r_y)+Ofst_y)に応じて仮想車輪61_yの接地部に作用する床反力(図9のF)のY軸方向成分(図9のF_y)によって車両系全体重心に発生するY軸方向の加速度成分、式(2b)の右辺の第2項は、ωzのヨーレートでの旋回時に車両1に作用する遠心力によって発生するY軸方向の加速度成分である。
上記の如く、式(1a)、(1b)により表現される挙動(X軸方向で見た挙動)は、ブロック線図で表現すると、図10に示すように表される。図中の1/sは積分演算を表している。
そして、図10における参照符号Aを付した演算部の処理が、式(1a)の関係式に該当しており、参照符号Bを付した演算部の処理が、式(1b)の関係式に該当している。
なお、図10中のh・θb_xは、近似的には、図9に示したDiff_xに一致する。
一方、式(2a)、(2b)により表現される挙動(Y軸方向で見た挙動)を表現するブロック線図は、図10中の添え字“_x”を“_y”に置き換え、参照符号Cを付した加算器への入力の一つである図中下側の加速度成分(遠心力によって発生する加速度成分)の符号“+”を“−”に置き換えることによって得られる。
本実施形態では、第1制御処理部24の処理のアルゴリズムは、上記の如く車両系全体重心の基準部Ps_x,Ps_yからのずれ量と、遠心力とを考慮した車両系全体重心の挙動モデル(倒立振子モデル)に基づいて構築されている。
以上を前提として、第1制御処理部24の処理をより具体的に説明する。なお、以降の説明では、Y軸方向から見た挙動に関する変数の値と、X軸方向から見た挙動に関する変数の値との組を添え字“_xy”を付加して表記する場合がある。
図8を参照して、第1制御処理部24は、制御装置21の各演算処理周期において、まず、操作指令変換部31の処理と、前記重心速度推定部33の処理とを実行する。
図11に示すように、操作指令変換部31は、第1左右スライド指令Js_yと、第1上下スライド指令Js_xと、第2左右スライド指令Js2_yとに応じて、第1の移動動作部3の移動速度(並進速度)の基本指令値である基本速度指令Vjs_xyと、車両1の旋回時のヨー軸周り方向の角速度の基本指令値である基本旋回角速度指令ωjsとを決定する。
上記基本速度指令Vjs_xyのうち、X軸方向の基本速度指令Vjs_xは、処理部31aにて、第1上下スライド指令Js_xに応じて決定される。具体的には、第1上下スライド指令Js_xが、第1ポインタ27cの正方向のスライド量(上向きのスライド量)に応じた指令である場合には、X軸方向の基本速度指令Vjs_xは、車両1の前進方向への速度指令(正の速度指令)とされ、第1上下スライド指令Js_xが、第1ポインタ27cの負方向のスライド量(下向きのスライド量)に応じた指令である場合には、X軸方向の基本速度指令Vjs_xは、車両1の後進方向への速度指令(負の速度指令)とされる。また、この場合、X軸方向の基本速度指令Vjs_xの大きさは、第1上下スライド指令Js_xの大きさが大きいほど、既定の上限値以下で、大きくなるように決定される。
なお、第1上下スライド指令Js_xの大きさが十分に微小なものとなる所定の範囲を不感帯域として、その不感帯域内のスライド量では、X軸方向の基本速度指令Vjs_xをゼロに設定するようにしてもよい。図11の処理部31a中に示すグラフは、上記不感帯域を有する場合の入力(Js_x)と、出力(Vjs_x)との間の関係を示している。
また、基本速度指令Vjs_xyのうち、Y軸方向の基本速度指令Vjs_yは、車両1の旋回用の第1の移動動作部3のY軸方向の速度指令として、第1左右スライド指令Js_y及び第2左右スライド指令Js2_yに応じて決定される。
なお、上述したように、本実施形態においては、操縦プログラム29が、第1操作領域27bの点と第2操作領域27dの点とが同時にタッチされている場合においては、先にタッチされている操作領域のみのタッチを有効と判定し、後からタッチされた操作領域のタッチを無効と判定している。従って、携帯電話27から第1左右スライド指令Js_y(及び第1上下スライド指令Js_x)と第2左右スライド指令Js2_yとが同時に出力されることはなく、所定の時点においては、必ずいずれかのポインタ(27c又は27e)のスライド量に応じた指令(Js_y又はJs2_y)のみが操作指令変換部31に入力されることとなる。
「第1左右スライド指令Js_y及び第2左右スライド指令Js2_yが、負方向のスライド量(右向きのスライド量)に応じた指令である場合」には、Y軸方向の基本速度指令Vjs_yは、車両1の右向きへの速度指令(負の速度指令)とされ、「第1左右スライド指令Js_y及び第2左右スライド指令Js2_yが、正方向のスライド量(左向きのスライド量)に応じた指令である場合」には、Y軸方向の基本速度指令Vjs_yは、車両1の左向きへの速度指令(正の速度指令)とされる。
この場合、Y軸方向の基本速度指令Vjs_yの大きさは、第1左右スライド指令Js_y及び第2左右スライド指令Js2_yの大きさが大きいほど、既定の上限値以下で、大きくなるように決定される。
より具体的には、例えば、図11に示す如く、処理部31bの処理によって、第1左右スライド指令Js_yに応じて、車両1の旋回時のヨー軸周りの方向の角速度の基本指令値である基本旋回角速度指令ωjsが決定される。この場合、第1左右スライド指令Js_yが正方向のスライド量(左向きのスライド量)に応じた指令である場合には、基本旋回角速度指令ωjsは、左周り(反時計周り)の旋回の角速度指令(正の角速度指令)とされ、第1左右スライド指令Js_yが負方向のスライド量(右向きのスライド量)に応じた指令である場合には、基本旋回角速度指令ωjsは、右周り(時計周り)の旋回の角速度指令(負の角速度指令)とされる。この場合、基本旋回角速度指令ωjsの大きさは、第1左右スライド指令Js_yの大きさが大きいほど、既定の上限値以下で、大きくなるように決定される。
そして、処理部31cにおいて、この基本旋回角速度指令ωjsに、車両1の瞬間旋回中心と第1の移動動作部3の接地点とのX軸方向の距離としてあらかじめ定められた所定値(>0)の(−1)倍の負の値Kを乗じることによって、第1の移動動作部3のY軸方向の基本速度第1指令Vjsa_yが決定される。上記瞬間旋回中心は、車両1の旋回時の各時刻(制御装置21の各演算処理周期の時刻)での車両1のヨー軸周り方向の回転中心(車両1と一体に移動する座標系で見た回転中心)を意味する。
なお、第1左右スライド指令Js_yの大きさが、十分に微小なものとなる所定の範囲を不感帯域として、その不感帯域内のスライド量では、基本旋回角速度指令ωjsをゼロに設定するようにしてもよい。図11の処理部31b中に示すグラフは、上記不感帯域を有する場合の入力(Js_y)と、出力(ωjs)との間の関係を示している。
また、図11に示す如く、処理部31dの処理によって、第2左右スライド指令Js2_yに応じて車両1の左右方向の基本速度指令値である基本速度第2指令Vjsb_yが決定される。この場合、第2左右スライド指令Js2_yが正方向のスライド量(左向きのスライド量)である場合には、基本速度第2指令Vjsb_yは、車両1の左方向への速度指令(正の速度指令)とされる。また、第2左右スライド指令Js2_yが負方向のスライド量(右向きのスライド量)である場合には、基本速度第2指令Vjsb_yは、車両1の右方向への速度指令(負の速度指令)とされる。また、この場合、基本速度第2指令Vjsb_yの大きさは、第2左右スライド指令Js2_yの大きさが大きいほど、既定の上限値以下で、大きくなるように決定される。
なお、第2左右スライド指令Js2_yの大きさが、十分に微小なものとなる所定の範囲を不感帯域として、その不感帯域内のスライド量では、基本速度第2指令Vjsb_yをゼロに設定するようにしてもよい。図11の処理部31d中に示すグラフは、上記不感帯域を有する場合の入力(Js2_y)と、出力(Vjsb_y)との間の関係を示している。
そして、処理部31eにおいて、基本速度第1指令Vjsa_yに、基本速度第2指令Vjsb_yを加え合わせることによって、第1の移動動作部3のY軸方向の基本速度指令Vjs_yが決定される。なお、上述したように、第1左右スライド指令Js_yと、第2左右スライド指令Js2_yとが所定の時点において同時に出力されていることはない。換言すると、基本速度第1指令Vjsa_yと基本速度第2指令Vjsb_yとのいずれか一方がゼロになっている。従って、基本速度指令Vjs_yは、所定の時点において、基本速度第1指令Vjsa_yと基本速度第2指令Vjsb_yとのうちゼロになっていない方の値と同一となる。
また、第1ポインタ27cが上下方向及び左右方向の両方に操作されている場合には、Y軸方向の基本速度指令Vjs_yの大きさを、第1上下スライド指令Js_x又は上下方向の基本速度指令Vjs_xに応じて変化させるようにしてもよい。
なお、本実施形態では、第1ポインタ27cの左右方向へのスライド操作に応じて決定される基本旋回角速度指令ωjsがゼロでない状態が、操作器としての携帯電話27から、車両1を旋回させる旋回指令が出力されている状態に相当し、基本旋回角速度指令ωjsがゼロとなる状態が、操作器としての携帯電話27から旋回指令が出力されていない状態に相当する。また、第2ポインタ27eの左右方向へのスライド操作に応じて決定される基本速度第2指令Vjsb_yがゼロでない状態が、操作器としての携帯電話27から、車両1を左右方向へ移動させる指令が出力されている状態に相当する。すなわち、第1ポインタ27cの操作が、本発明における第1操作に相当し、第2ポインタ27eの操作が、本発明における第2操作に相当する。
前記重心速度推定部33は、前記倒立振子モデルにおける前記式(1a),(2a)に表される幾何学的な(運動学的な)関係式に基づいて、車両系全体重心の速度の推定値Vb_estm1_xyを算出する。
具体的には、図8のブロック図で示す如く、第1の移動動作部3の実際の並進速度Vw1_act_xyの値と、乗員搭乗部5の傾斜角度θb_xyの実際の時間的変化率(傾斜角速度)ωb_act_xyに、車両系全体重心の高さhを乗じてなる値とを加え合せることにより、車両系全体重心の速度の推定値Vb_estm1_xyを算出する。
すなわち、車両系全体重心のX軸方向の速度の推定値Vb_estm1_xとY軸方向の速度の推定値Vb_estm1_yとがそれぞれ、次式(3a),(3b)により算出される。
Vb_estm1_x=Vw1_act_x+h・ωb_act_x ……(3a)
Vb_estm1_y=Vw1_act_y+h・ωb_act_y ……(3b)
ただし、車両系全体重心の位置の基準部Ps_xyの位置からの前記ずれ量Ofst_xy(以降、重心ずれ量Ofst_xyという)の時間的変化率は、Vb_estm1_xyに比べ十分に小さく無視できるものとした。
この場合、上記演算におけるVw1_act_x,Vw1_act_yの値としては、本実施形態では、前回の演算処理周期で姿勢制御演算部34により決定された第1の移動動作部3の移動速度の目標値Vw1_cmd_x,Vw1_cmd_y(前回値)が用いられる。
ただし、例えば、電動モータ8a,8bのそれぞれの回転速度をロータリエンコーダ等の回転速度センサにより検出し、それらの検出値から推定したVw1_act_x,Vw1_act_yの最新値(換言すれば、Vw1_act_x,Vw1_act_yの計測値の最新値)を式(3a),(3b)の演算に用いるようにしてもよい。
また、ωb_act_x,ωb_act_yの値としては、本実施形態では、前記傾斜センサ22の検出信号に基づく乗員搭乗部5の傾斜角度θbの計測値の時間的変化率の最新値(換言すれば、ωb_act_x,ωb_act_yの計測値の最新値)が用いられる。
第1制御処理部24は上記の如く操作指令変換部31及び重心速度推定部33の処理を実行した後、次に、図8に示す重心ずれ推定部35aの処理を実行することで、前記重心ずれ量Ofst_xyの推定値である重心ずれ量推定値Ofst_estm_xyを決定する。
この重心ずれ推定部35aの処理は、図12のブロック線図により示される処理である。なお、図12は、重心ずれ量推定値Ofst_estm_xyのうちのX軸方向の重心ずれ量推定値Ofst_estm_xの決定処理を代表的に表している。
図12の処理を具体的に説明すると、重心ずれ推定部35aは、傾斜センサ22の検出信号から得られた乗員搭乗部5のY軸周り方向の実際の傾斜角度θb_act_xの計測値(最新値)と、ヨーレートセンサ23の検出信号から得られた車両1の実際のヨーレートωz_actの計測値(最新値)と、重心速度推定部33により算出された車両系全体重心のY軸方向の速度の第1推定値Vb_estm1_y(最新値)と、前回の演算処理周期で決定したX軸方向の重心ずれ量推定値Ofst_estm_x(前回値)とを用いて、前記式(1b)の右辺の演算処理を演算部35a1で実行することにより、車両系全体重心のX軸方向の並進加速度の推定値DVb_estm_xを算出する。
さらに重心ずれ推定部35aは、車両系全体重心のX軸方向の並進加速度の推定値DVb_estm_xを積分する処理を演算部35a2で実行することにより、車両系全体重心のX軸方向の速度の第2推定値Vb_estm2_xを算出する。
次いで、重心ずれ推定部35aは、車両系全体重心のX軸方向の速度の第2推定値Vb_estm2_x(最新値)と、第1推定値Vb_estm1_x(最新値)との偏差を算出する処理を演算部35a3で実行する。
さらに、重心ずれ推定部35aは、この_偏差に所定値のゲイン(−Kp)を乗じる処理を演算部35a4で実行することにより、X軸方向の重心ずれ量推定値Ofst_estm_xの最新値を決定する。
Y軸方向の重心ずれ量推定値Ofst_estm_yの決定処理も上記と同様に実行される。具体的には、この決定処理を示すブロック線図は、図12中の添え字“_x”と“_y”とを入れ替え、加算器35a5への入力の一つである図中右側の加速度成分(遠心力によって発生する加速度成分)の符号“+”を“−”に置き換えることによって得られる。
このような重心ずれ推定部35aの処理によって、重心ずれ量推定値Ofst_estm_xyを逐次更新しつつ決定することによって、Ofst_estm_xyを実際の値に収束させるように決定することができる。
第1制御処理部24は、次に、図8に示す重心ずれ影響量算出部35bの処理を実行することによって、重心ずれ影響量Vofs_xyを算出する。
重心ずれ影響量Vofs_xyは、後述する姿勢制御演算部34において、車両系全体重心の位置が倒立振子モデルにおける前記基準部Ps_xyの位置からずれることを考慮せずにフィードバック制御を行った場合の車両系全体重心の目標速度に対する実際の重心速度のずれを表す。
具体的には、この重心ずれ影響量算出部35bは、新たに決定された重心ずれ量推定値Ofst_estm_xyの各成分に、(Kth_xy/(h-r_xy))/Kvb_xyという値を乗じることにより、前記重心ずれ影響量Vofs_xyを算出する。
なお、Kth_xyは、後述する姿勢制御演算部34の処理において、乗員搭乗部5の傾斜角度をゼロ(目標傾斜角度)に近づけるように機能する操作量成分を決定するためのゲイン値である。また、Kvb_xyは、後述する姿勢制御演算部34の処理において、車両系全体重心の目標速度Vb_cmd_xyと該車両系全体重心の速度の第1推定値おけるVb_estm1_xyとの偏差をゼロに近づけるように機能する操作量成分を決定するためのゲイン値である。
第1制御処理部24は、次に、図8に示す重心目標速度決定部32の処理を実行することによって、前記操作指令変換部31により決定された基本速度指令Vjs_xyと、前記重心ずれ影響量算出部35bにより決定された重心ずれ影響量Vofs_xyとに基づいて、制限後重心目標速度Vb_cmd_xyを算出する。
重心目標速度決定部32は、まず、図8に示す処理部32cの処理を実行する。この処理部32cは、重心ずれ影響量Vofs_xyの値に関する不感帯処理とリミット処理とを実行することで、車両系全体重心の目標値のうちの重心ずれに応じた成分としての目標重心速度加算量Vb_cmd_by_ofs_xyを決定する。
具体的には、本実施形態では、重心目標速度決定部32は、X軸方向の重心ずれ影響量Vofs_xの大きさがゼロ近辺の所定の範囲である不感帯域内の値(比較的ゼロに近い値)である場合には、X軸方向の目標重心速度加算量Vb_cmd_by_ofs_xをゼロにする。
また、重心目標速度決定部32は、X軸方向の重心ずれ影響量Vofs_xの大きさが不感帯域内から逸脱した値である場合には、X軸方向の目標重心速度加算量Vb_cmd_by_ofs_xを、Vofs_xと同極性で、その大きさが、Vofs_xの大きさの増加に伴い大きくなるように決定する。ただし、目標重心速度加算量Vb_cmd_by_ofs_xの値は、所定の上限値(>0)と下限値(≦0)との間の範囲内に制限される。
Y軸方向の目標重心速度加算量Vb_cmd_by_ofs_yの決定処理も上記と同様である。
次いで、重心目標速度決定部32は、前記操作指令変換部31により決定された基本速度指令Vjs_xyの各成分に目標重心速度加算量Vb_cmd_by_ofs_xyの各成分を加え合わせてなる目標速度V1_xyを決定する処理を図8に示す処理部32dで実行する。すなわち、V1_x=Vjs_x+Vb_cmd_by_ofs_x、V1_y=Vjs_y+Vb_cmd_by_ofs_yという処理によって、V1_xy(V1_xとV1_yとの組)を決定する。
さらに、重心目標速度決定部32は、処理部32eの処理を実行する。この処理部32eでは、第1の移動動作部3のアクチュエータ装置8としての電動モータ8a,8bのそれぞれの回転速度を、所定の許容範囲から逸脱させることのないようにするために、目標速度V1_xとV1_yとの組み合わせを制限してなる車両系全体重心の目標速度としての制限後重心目標速度Vb_cmd_xy(Vb_cmd_x,Vb_cmd_yの組)を決定するリミット処理が実行される。
この場合、処理部32dで求められた目標速度V1_x,V1_yの組が、目標速度V1_xの値を縦軸、目標速度V1_yの値を横軸とする座標系上で所定の領域(例えば8角形状の領域)内に在る場合には、その目標速度V1_xyがそのまま制限後重心目標速度Vb_cmd_xyとして決定される。
また、処理部32dで求められた目標速度V1_x,V1_yの組が、上記座標系上の所定の領域から逸脱している場合には、該所定の領域の境界上の組に制限したものが、制限後重心目標速度Vb_cmd_xyとして決定される。
次いで、重心目標速度決定部32は、、上記制限後速度指令V2_xyの各成分から、重心速度補償量Vofs_xyの各成分を減じる処理を演算部32fで実行することにより車両系全体重心の目標速度Vb_cmd_xy(最新値)を決定する。
以上のごとく、前記基本速度指令Vjs_xyと、前記重心ずれ影響量Vofs_xy(または、重心ずれ)とに基づいて、重心目標速度Vb_cmd_xyが決定されるので、乗員は、操作器の操作(携帯電話27の操作)と、乗員の身体の姿勢の変化(体重移動)によって、車両1を操縦することができる。
以上の如く重心目標速度決定部32の処理を実行した後、第1制御処理部24は、次に、姿勢制御演算部34の処理を実行する。この姿勢制御演算部34は、図8のブロック線図で示す処理によって、第1の移動動作部3の移動速度(並進速度)の目標値である第1目標速度Vw1_cmd_xyを決定する。
より詳しくは、姿勢制御演算部34は、まず、前記制限後重心目標速度Vb_cmd_xyの各成分から、重心ずれ影響量Vofs_xyの各成分を減じる処理を演算部34bで実行することにより重心ずれ補償後目標速度Vb_cmpn_cmd_xy(最新値)を決定する。
次いで、姿勢制御演算部34は、上記演算部34bと、積分演算を行う積分演算部34aとを除く演算部の処理によって、第1の移動動作部3の接地点の並進加速度の目標値である目標並進加速度DVw1_cmd_xyのうちのX軸方向の目標並進加速度DVw1_cmd_xと、Y軸方向の目標並進加速度DVw1_cmd_yとをそれぞれ次式(4a),(4b)の演算により算出する。
DVw1_cmd_x=Kvb_x・(Vb_cmpn_cmd_x−Vb_estm1_x)
−Kth_x・θb_act_x−Kw_x・ωb_act_x ……(4a)
DVw1_cmd_y=Kvb_y・(Vb_cmpn_cmd_y−Vb_estm1_y)
−Kth_y・θb_act_y−Kw_x・ωb_act_y ……(4b)
式(4a),(4b)におけるKvb_xy、Kth_xy、Kw_xyはあらかじめ設定された所定のゲイン値である。
また、式(4a)の右辺の第1項は、車両系全体重心のX軸方向の重心ずれ補償後目標速度Vb_cmpn_cmd_xy(最新値)と第1推定値Vb_estm1_x(最新値)との偏差に応じたフィードバック操作量成分、第2項は、乗員搭乗部5のY軸周り方向の実際の傾斜角度θb_act_xの計測値(最新値)に応じたフィードバック操作量成分、第3項は、乗員搭乗部5のY軸周り方向の実際の傾斜角速度ωb_act_xの計測値(最新値)応じたフィードバック操作量成分である。そして、X軸方向の目標並進加速度DVw1_cmd_xは、これらのフィードバック操作量成分の合成操作量として算出される。
同様に、式(4b)の右辺の第1項は、車両系全体重心のY軸方向の重心ずれ補償後目標速度Vb_cmpn_cmd_y(最新値)と第1推定値Vb_estm1_y(最新値)との偏差に応じたフィードバック操作量成分、第2項は、乗員搭乗部5のX軸周り方向の実際の傾斜角度θb_act_yの計測値(最新値)に応じたフィードバック操作量成分、第3項は、乗員搭乗部5のX軸周り方向の実際の傾斜角速度ωb_act_yの計測値(最新値)に応じたフィードバック操作量成分である。そして、Y軸方向の目標並進加速度DVw1_cmd_yは、これらのフィードバック操作量成分の合成操作量として算出される。
次いで、姿勢制御演算部34は、積分演算部34aによって、目標並進加速度DVw1_cmd_xyの各成分を積分することによって、第1の移動動作部3の第1目標速度Vw1_cmd_xy(最新値)を決定する。
そして、第1制御処理部24は、上記の如く決定した第1目標速度Vw1_cmd_xyにしたがって第1の移動動作部3のアクチュエータ装置8としての電動モータ8a,8bを制御する。より詳しくは、第1制御処理部24は、第1目標速度Vw1_cmd_xyにより規定される各電動モータ8a,8bの回転速度の目標値に、実際の回転速度(計測値)を追従させるように、フィードバック制御処理により各電動モータ8a,8bの電流指令値を決定し、この電流指令値に従って、各電動モータ8a,8bの通電を行なう。
以上の処理により、前記制限後重心目標速度Vb_cmd_xyが一定値であって、車両1の運動が整定し、車両1が一定速度で直進している状態においては、車両系全体重心は、第1の移動動作部3の接地点の真上に存在する。この状態では、乗員搭乗部5の実際の傾斜角度θb_act_xyは、式(1b)、(2b)に基づいて、−Ofst_xy/(h−r_xy)となる。また、乗員搭乗部5の実際の傾斜角速度ωb_act_xyはゼロ、目標並進加速度DVw1_cmd_xyはゼロとなる。このことと、図8のブロック線図から、Vb_estm1_xyとVb_cmd_xyとが一致することが導き出される。
すなわち、第1の移動動作部3の第1目標速度Vw1_cmd_xyは、基本的には、車両系全体重心の制限後重心目標速度Vb_cmd_xyと第1推定値Vb_estm1_xyとの偏差をゼロに収束させるように決定される。
また、車両系全体重心の位置が、倒立振子モデルにおける前記基準部Ps_xyの位置からずれることの影響を補償しつつ、前記処理部32eの処理によって、第1の移動動作部3のアクチュエータ装置8としての電動モータ8a,8bのそれぞれの回転速度が、所定の許容範囲から逸脱することのないように制御される。
以上が、本実施形態における第1制御処理部24の処理の詳細である。
次に、前記第2制御処理部25の処理を図13を参照して説明する。第2制御処理部25は、その処理を概略的に言えば、前記操作指令変換部31により決定される基本旋回角速度指令ωjsがゼロである状況(第1左右スライド指令Js_yがゼロもしくはほぼゼロである状況)では、車両1の並進移動を行なわせるために、第2の移動動作部4のY軸方向の移動速度(並進速度)の目標値である第2目標速度Vw2_cmd_yを、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_yに一致させるように決定する。
また、第2制御処理部25は、前記基本旋回角速度指令ωjsがゼロでない状況では、車両1の旋回を行なわせるために、第2の移動動作部4のY軸方向の第2目標速度Vw2_cmd_yを、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_yと異ならせるように決定する。
このような第2制御処理部25の処理は、具体的には次のように行なわれる。すなわち、図13を参照して、第2制御処理部25は、まず、演算部42の処理を実行する。この演算部42は、上記基本旋回角速度指令ωjsに、第1の移動動作部3と第2の移動動作部4の間のX軸方向の距離L(あらかじめ定められた値)の「−1」倍の値を乗じることによって、基本旋回角速度指令ωjsの角速度で車両1の旋回を行なうための、第1の移動動作部3に対する第2の移動動作部4のY軸方向の相対速度の指令値である基本相対速度指令Vjs2_yを決定する。
次いで、第2制御処理部25は、上記基本相対速度指令Vjs2_y(最新値)を、第1制御処理部24で決定された第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_y(最新値)に加える処理を演算部43で実行することにより、第2の移動動作部4のY軸方向の第2目標速度Vw2_cmd_yを決定する。
次いで、第2制御処理部25は、図13中の演算部44で示すように、第2の移動動作部4のY軸方向における現在の実際の移動速度Vw2_act_yが、前記第2目標速度Vw2_cmd_y(最新値)に追従するように第2のアクチュエータ装置としての電動モータ17の電流(ひいては第2の移動動作部4の駆動力)を制御する。
具体的には、次式(5)の演算によって電動モータ17の電流指令値Iw2_cmdを決定し、さらに、モータドライバによって、電動モータ17の実際の電流をIw2_cmdに制御する。
Iw2_cmd=K2・(Vw2_cmd_y−Vw2_act_y) ……(5)
式(5)におけるK2はあらかじめ設定された所定のゲイン値である。
また、Vw2_act_yの値としては、本実施形態では、電動モータ17の回転速度の検出値(図示しないロータリエンコーダ等の回転速度センサによる検出値)から推定した値が用いられる。
なお、式(5)のVw2_cmd_y−Vw2_act_yの代わりに、Vw2_cmd_yにより規定される電動モータ17の回転速度の目標値と、該回転速度の計測値との偏差を用いてもよい。
以上の第2制御処理部25の制御処理によって、携帯電話27から旋回指令が出力されていない状況(基本旋回角速度指令ωjsがゼロである状況)では、前記第2目標速度Vw2_cmd_yは、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_y(最新値)に一致するように決定されることとなる。
また、携帯電話27から旋回指令が出力されている状況(基本旋回角速度指令ωjsがゼロでない状況)では、前記第2目標速度Vw2_cmd_yは、前記基本旋回角速度指令ωjsに応じて決定した基本相対速度指令Vjs2_y(最新値)を、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_y(最新値)に加えた値に決定される。すなわち、前記第2目標速度Vw2_cmd_yは、Vw1_cmd_y+Vjs2_yに一致するように決定される。
従って、前記第2目標速度Vw2_cmd_yは、車両1の旋回が行なわれるように、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_yと異なる速度値に決定されることとなる。
より詳しくは、携帯電話27からの旋回指令が車両1を右側(右周り方向)に旋回させようとする指令である場合(ωjsが時計周り方向の角速度である場合)には、基本相対速度指令Vjs2_yは左向きの速度とされる。
このとき、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_yが左向きの速度である場合には、第2の移動動作部4のY軸方向の第2目標速度Vw2_cmd_yは、左向きの速度で、且つ、その大きさが、Vw1_cmd_yよりも大きい速度とされる。
また、携帯電話27からの旋回指令が車両1を右側(右周り方向)に旋回させようとする指令である場合において、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_yが右向きの速度である場合には、第2の移動動作部4のY軸方向の第2目標速度Vw2_cmd_yは、右向きの速度で、且つ、その大きさが、Vw1_cmd_yよりも小さい速度とされるか、又は、Vw1_cmd_yと逆向き(左向き)の速度とされる。
一方、携帯電話27からの旋回指令が車両1を左側(左周り方向)に旋回させようとする指令である場合(ωjsが反時計周り方向の角速度である場合)には、基本相対速度指令Vjs2_yは右向きの速度とされる。
このとき、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_yが右向きの速度である場合には、第2の移動動作部4のY軸方向の第2目標速度Vw2_cmd_yは、右向きの速度で、且つ、その大きさが、Vw1_cmd_yよりも大きい速度とされる。
また、携帯電話27からの旋回指令が車両1を左側(左周り方向)に旋回させようとする指令である場合において、第1の移動動作部3のY軸方向の第1目標速度Vw1_cmd_yが左向きの速度である場合には、第2の移動動作部4のY軸方向の第2目標速度Vw2_cmd_yは、左向きの速度で、且つ、その大きさが、Vw1_cmd_yよりも小さい速度とされるか、又は、Vw1_cmd_yと逆向き(右向き)の速度とされる。
また、上述したように、本実施形態においては、操縦プログラム29が、第1操作領域27bの点と第2操作領域27dの点とが同時にタッチされている場合においては、先にタッチされている操作領域のみのタッチを有効と判定し、後からタッチされた操作領域のタッチを無効と判定している。
すなわち、第2操作領域27dの点(詳細には、第2ポインタ27e)がタッチされている場合において、当該ポインタ27eがスライド操作されていない場合(すなわち、第2左右スライド指令Js2_yがゼロの場合)であっても、第1ポインタ27cの操作は無効として判定される。従って、この場合において、第1上下スライド指令Js_x及び第1左右スライド指令Js_yはいずれもゼロである。
これにより、第2操作領域27dの点がタッチされている場合において、操作指令変換部31からは基本旋回角速度指令ωjsが出力されない。従って、この場合において、第2目標速度Vw2_cmd_yが第1目標速度Vw1_cmd_yに一致するように決定され、制御装置21は、車両1の旋回挙動を発生させないように、第1のアクチュエータ装置8及び第2のアクチュエータ装置(電動モータ17)を制御する。
これにより、例えば、絵等の鑑賞物が飾られた壁に向かった状態で、当該壁に沿って左右方向に移動するような場合において、車両1に旋回挙動が発生しないように移動させることができる。
以上が、第2制御処理部25の処理の詳細である。
なお、操縦プログラムを、「第2ポインタ27eがタッチされている場合において、当該タッチされていることを、携帯電話27から車両1に情報として送信する」ように構成すると共に、制御装置21を、「第2ポインタ27eがタッチされているときには、図13に示される処理とは別の、“第2目標速度Vw2_cmd_yを第1目標速度Vw1_cmd_yと同じに設定する処理”に切り替える」ように構成してもよい。
また、制御装置21は、前記重心ずれ推定部35aにおいて、重心ずれ量推定値Ofst_estm_xyを推定している。制御装置21は、この推定された重心ずれ量推定値Ofst_estm_xyを、少なくとも車両情報に含め、通信部26を介して携帯電話27に送信している。ここで、本実施形態においては、重心ずれ量推定値Ofst_estm_xyが、本発明における「乗員搭乗部の運動に関する情報」に相当する。なお、重心ずれ量推定値Ofst_estm_xyは、重心位置を、所定の基準からの相対的な位置として表すものであり、実質的に、重心位置(車両1と乗員搭乗部5に搭乗した乗員との全体重心)を表している。
携帯電話27では、この重心ずれ量推定値Ofst_estm_xyに応じて、第1操作領域27bに重心表示点27fを表示する。X軸方向の重心ずれ量推定値Ofst_estm_x及びY軸方向の重心ずれ量推定値Ofst_estm_yのいずれもがゼロである場合、重心表示点27fは、第1ガイド線27xと第2ガイド線27yの交点(以下、「初期位置」という)に表示される(すなわち、第1ポインタ27cが操作されていないときに表示されている点と同じ位置に表示される)。
X軸方向の重心ずれ量推定値Ofst_estm_xが正の値(重心が前方向にずれている)である場合、重心表示点27fは、当該値に応じた距離だけ初期位置より上側に表示される。X軸方向の重心ずれ量推定値Ofst_estm_xが負の値(重心が後方向にずれている)である場合、重心表示点27fは、当該値に応じた距離だけ初期位置より下側に表示される。
Y軸方向の重心ずれ量推定値Ofst_estm_yが正の値(重心が左方向にずれている)である場合、重心表示点27fは、当該値に応じた距離だけ初期位置より左側に表示される。Y軸方向の重心ずれ量推定値Ofst_estm_yが負の値(重心が右方向にずれている)である場合、重心表示点27fは、当該値に応じた距離だけ初期位置より右側に表示される。
これらの推定値Ofst_estm_xyに応じて、初期位置からどの程度の距離だけずらすかについては、予め定められたテーブル等によって決定される。
例えば、図14(a)に示されるように、第1ポインタ27cを右上方向にスライドしたときは、車両1が、前方向に移動し、且つ右回りに旋回するので、それに伴って変動した重心位置(X軸方向の正の方向、且つY軸方向の負の方向に変動)を、重心表示点27fとして、初期位置から右上方向の位置に表示している。
また、図14(b)に示されるように、第2ポインタ27eを左方向にスライドしたときは、車両1が、左方向に移動するので、それに伴って変動した重心位置(X軸方向の正の方向に変動)を、重心表示点27fとして、初期位置から左方向の位置に表示している。
このようにして、「車両1が走行する場合」又は「乗員が乗員搭乗部5を傾動させた場合」等における乗員搭乗部5の運動に関する情報として重心ずれ量推定値Ofst_estm_xyに応じて重心位置を表示部27aを介して乗員に対して報知している。これにより、乗員は、様々な走行状態において、重心位置(詳細には、重心ずれ推定値Ofst_estm_xy)がどのように変化しているのかを学習することができるという効果が得られる。
この後に、傾動操作によって乗員搭乗部5を運動させるとき、乗員は、操作器操作のときに報知された情報と一致するように車両1を操縦すればよい。このとき、仮に傾動操作がうまくいかなかった場合であっても、当該傾動操作による重心位置が、表示部27aに重心表示点27fとして表示されている。これにより、当該傾動操作による重心表示点27fの移動が、各ポインタ27c,27eをスライド操作したときの重心表示点27fの移動と、どのように異なっているのか比較することができる。乗員は、このときの比較によっても倒立振子型車両の操縦を学習することができる。
また、本実施形態においては、第1操作領域27bに重心表示点27fを表示している。これにより、乗員は、第1ポインタ27c又は第2ポインタ27eを操作するために、当該表示部27aを見ているので、当該操作に応じて変化する重心表示点27fの変化を、操作と共に見ることができる。これにより、乗員は、「操作のために操作器を見る」ときと、「乗員搭乗部5の運動に関する情報を見る」ときとを交互に行うときに、視線を大きく動かす必要がない。従って、操作器及び報知部としての利便性を向上できる。
次に、車両1の移動モードである低速モード及び高速モードについて説明する。例えば、何かを鑑賞しながら動くような場合には、遅い速度で移動し、目的の場所まで速く移動する場合には、速く移動したいという要望が考えられる。
そこで、本実施形態においては、操縦プログラム29の利便性を向上させるために、ポインタ27c,27eに対する操作が、同じスライド量であっても、当該スライド量に応じて出力される各スライド指令Js_x,Js_y,Js2_yの大きさを変更できるように複数の移動モード(低速モードと高速モード)を選択的に実行可能に当該操縦プログラム29を構成している。
より詳しくは、各スライド指令Js_x,Js_y,Js2_yを設定するとき、移動モードとして低速移動モードが選択されている場合には、第1ポインタ27c及び第2ポインタ27eのスライド量に対する各スライド指令Js_x,Js_y,Js2_yが、高速移動モードが選択されている場合に比べて小さくなるように設定し、移動モードとして高速移動モードが選択されている場合には、第1ポインタ27c及び第2ポインタ27eのスライド量に対する各スライド指令Js_x,Js_y,Js2_yが、高速移動モードが選択されている場合に比べて大きくなるように設定する。
これにより、同じスライド量に対しての各指令Js_x、Js_y及びJs2_yの大きさが変化し、結果として、車両1の制御装置21による第1目標速度Vw1_cmd_xy及び第2目標速度Vw2_cmd_xyの値が変化する。これにより、乗員が、状況に応じて適宜移動モードを選択することで、快適に操作できる。
このように操縦プログラム29が構成されていることが、本発明における「指令を生成するための複数種類の形態の処理を選択的に実行可能に構成されている」ことに相当する。
なお、各モードに応じて、不感帯域の範囲を増減させるように構成するものであってもよい。これにより、不感帯域が広い場合には、車両1の動き始めを遅くし(動き出しづらくし)、不感帯域が狭い場合には、車両1の動き始めを速くできる。
また、本実施形態の車両情報には、上記の重心位置全体重心の位置(の推定値Ofst_estm_xy)以外にも、例えば、車両系全体重心の速度の推定値Vb_estm1_xy、実際の傾斜角度ωb_act_xy等が含まれる。そして、携帯電話27の操縦プログラム29においては、これらの車両情報を適宜乗員に報知するように構成されている。これは例えば、車両1の速度としてVb_estm1_xyを報知したり(例えば、表示部27aの所定の位置に表示、音声を再生等)、又は実際の傾斜角度ωb_act_xyを報知する。これによって、乗員は、車両がどのような状態にあるのか等を適宜把握することができる。
なお、乗員の左右方向における重心の動き(ひいては乗員搭乗部5のX軸周り方向の傾動)に応じて、適宜、車両1の旋回を行わせるように、車両1の第1の移動動作部3及び第2の移動動作部4の左右方向の移動速度を制御するようにしてもよい。例えば、Y軸方向における重心ずれ量推定値Ofst_estm_yもしくは、重心ずれ影響量Vofs_yの大きさ、あるいは、第1の移動動作部3のY軸方向の移動速度の目標値Vw1_cmd_yの大きさ等が所定値以上となった場合に、乗員が車両1の旋回を行うことを要求しているものとみなして、車両1の旋回を行わせるように、車両1の第1の移動動作部3及び第2の移動動作部4の左右方向の移動速度を制御するようにしてもよい。
また、本実施形態においては、第2操作領域27dを、棒形状の領域に構成し、左右方向のみに操作可能に構成していたが、これに限らない。例えば、図15に示されるように、第2操作領域27dを第1操作領域27bのように略正方形状に設け、上下方向及び左右方向のいずれにも操作可能に構成してもよい。この場合には、操縦プログラム29は、上下方向に操作された場合には、第1操作領域27bと同様に、第2ポインタ27eの上下方向のスライド量に応じた操作信号を、車両1を前方又は後方に移動させる指令(以下、「第2上下スライド指令」という)Js2_xとして出力する。第2ポインタ27eの左右方向のスライド操作に関しては、本実施形態と同様である。
そして、第2上下スライド指令Js2_xを、車両1側に送信し、操作指令変換部31において、X軸方向の基本速度指令Vjs_xを、第1上下スライド指令Js_x及び第2上下スライド指令Js2_xのいずれかに応じて決定すればよい。
また、第2操作領域27dを、上記のように略正方形状に設け、第1操作領域27bを左右方向に長い棒形状の領域に設けてもよい(すなわち、第2操作領域27dの操作でX軸方向及びY軸方向の移動が行われるように指令を生成し、第1操作領域27bの操作で車両のヨー軸周りの旋回が行われるように指令を生成する)。
また、本実施形態においては、第1ポインタ27c及び第2ポインタ27eが操作されていないときの、当該ポインタ27c,27eの位置が決められていたが、このように構成するのではなく、第1操作領域及び第2操作領域の所定の点がタッチされたとき、当該所定の点をスライドを開始する点としてもよい。この場合には、スライド操作がなされるために、操作領域がタッチされていない状態からタッチされている状態になったときの点である基準点を基準として、当該スライド操作された後の点である操作点に対する変化(方向及びスライド量)に応じて、指令(Js_x,Js_y及びJs2_y)を生成する。
第1操作領域27bを例に説明すると、第1操作領域27bがタッチされていない場合には、第1ポインタ27c等は表示されない。スライド操作がなされるために、第1操作領域27bの所定の点をタッチしたとき、第1ポインタ27c等が表示される。そして、スライド操作された後の点である操作点に、第1ポインタ27cを移動させる。このとき、重心表示点27fは、第1操作領域27bの中央部に表示しておく。
以上のように構成した場合、第1上下スライド指令Js_x及び第1左右スライド指令Js_yは、本実施形態のときと同様に、開始点に対する操作点の方向及びスライド量に応じて決定される。このように操作器を構成することで、操作器を見ずに、スライド操作を開始することができ、操作器の操作性を向上できる。
また、本実施形態においては、表示部27aを図16に示されるように構成してもよい。図16では、本実施形態において、低速モードボタンB1及び高速モードボタンB2が配置されていた位置に、左右方向に長い棒形状の領域であるレベル切替領域120が配置されている。そして、レベル切替領域120上には、スライダ121が表示されている。
スライダ121は、乗員によってタッチされた後、スライド操作されることで、レベル切替領域120上に沿って移動する(スライドする)。スライダ121は、スライド操作されることで、レベル切替領域120を左右方向において10の異なる位置に表示される。スライダ121が、レベル切替領域120の最も左側の位置(以下、「第1レベル選択位置」という)に表示されているときを第1レベル選択状態と定義し、レベル切替領域120の最も右側の位置(以下、「第10レベル選択位置」という)に表示されているときを第10レベル選択状態と定義している。なお、残りの8つの位置に表示されているときは、第1レベル選択位置から数えた位置が「n」のとき、当該位置を「第nレベル選択位置」と定義し、当該位置が選択されている状態を「第nレベル選択状態」と定義している。図16では、スライダ121が第1レベル選択位置に配置された第1レベル選択状態であるときの表示部27aを示している。
操縦プログラム29は、スライダ121が、第1レベル選択位置から第10レベル選択位置に近付くに従って(第1レベル選択状態から第10レベル選択状態に近付くに従って)、前記した制御における各ゲインを大きくするように設定している。これにより、スライダ121が、第1レベル選択位置から第10レベル選択位置に近付くに従って、乗員搭乗部5の傾動に対する車両1の反応が大きくなる。
従って、初心者等のように車両1の操縦に慣れていない乗員は、第1レベル選択状態にすることで、乗員搭乗部5の傾動に対する車両1の反応を小さくした状態で、車両1の操縦に慣れることができる。なお、第1レベル選択状態は、初心者のみに限らず、例えば、鑑賞物が飾られた壁に沿って左右方向に移動するとき等のような場合にも利用できる。
一方、車両1の操縦に熟練した乗員は、第10レベル選択状態又は当該レベル選択状態に近い状態にすることで、車両1の乗員搭乗部5の傾動に対する反応を大きくし、操縦に対する車両1の反応が大きくなり、機敏な操縦が行える。このように、目的の場所に速く移動したい場合等では、第10レベル選択状態を選択すればよい。
以上のように、「車両1を利用する環境」又は「乗員の車両1の操縦に対する習熟度」に応じて、細かく各ゲインの調整を行うことで、車両1の操縦性を向上できる。なお、この例においては、10段階のレベルを設けているが、レベルの数は、10未満であっても11以上であってもよい。
また、本実施形態においては、「乗員搭乗部の運動に関する情報」として、重心ずれ量推定値Ofst_estm_xyを用いているが、これに限らず、鉛直方向に対する乗員搭乗部5の傾斜角度としてもよい。すなわち、傾斜センサ22によって計測された実際の傾斜角度ωb_act_xyを用いてもよい。
この場合、X軸方向の傾斜角度ωb_act_xが正の値(前方向に傾いている)である場合、傾きの大きさを表す点(以下、「傾斜表示点」という)は、当該値に応じた距離だけ初期位置より上側に表示される。X軸方向の傾斜角度ωb_act_xが負の値(後方向に傾いている)である場合、傾斜表示点は、当該値に応じた距離だけ初期位置より下側に表示される。
Y軸方向の傾斜角度ωb_act_yが正の値(左方向に傾いている)である場合、傾斜表示点は、当該値に応じた距離だけ初期位置より左側に表示される。Y軸方向の傾斜角度ωb_act_yが負の値(右方向に傾いている)である場合、傾斜表示点は、当該値に応じた距離だけ初期位置より右側に表示される。
これらの推定値ωb_act_xyに応じて、初期位置からどの程度の距離だけずらすかについては、予め定められたテーブル等によって決定される。
これによっても、乗員は、様々な走行状態において、傾斜角度ωb_act_xyがどのように変化しているのかを学習することができるという効果が得られる。
なお、重心表示点27f又は傾斜表示点は、第1操作領域27bに表示するものではなく、表示部27aの別の場所に、表示する領域を設けてそこに表示してもよい。
また、本実施形態では、操作器に報知部を設けていたが、これらは別々に設けられたものであってもよい。例えば、報知部を車両1の前方に配置された大画面ディスプレイで構成してもよい。
また、本実施形態では、報知部をタッチパネルを有する表示装置で構成しているがこれに限らず、例えば、音等によって、乗員搭乗部5の運動に関する情報を、報知するように構成していてもよい。すなわち、全体重心の位置又は傾斜角を音声で知らせる等、様々な報知の方法がある。また、報知部は、いくつかの報知方法を組み合わせたものであってもよい。例えば、報知部を、表示装置に表示すると共に、スピーカーから音を再生させるように構成してもよい。
また、本実施形態では、携帯電話27(詳細には、第1通信部271)と車両1(詳細には、通信部26)とを互いに無線で接続していたが、これに限らず、互いを有線で接続してもよい。また、本実施形態においては、操作器として携帯型の端末である携帯電話27を用いているが、これに限らず、例えば、車両1に一体に形成されているものであってもよい。例えば、把持部10,10のうちの一方の把持部10に、操作器を取り付けるように構成してもよい。
また、操作器は、タッチパネルではなく、少なくとも車両1を旋回させる指令を出力するジョイスティックと、少なくとも車両1を左右方向へ移動させる指令を出力するジョイスティックとの2つのジョイスティックから構成されていてもよい。ジョイスティックに限らず、その他の様々な操作用のインターフェイス機器を利用することができる。
また、本実施形態においては、第1ポインタ27c及び第2ポインタ27eをスライドすることで、各スライド指令Js_x,Js_y,Js2_yを生成しているが、これに限らない。例えば、携帯電話27を、6軸の加速度センサを備えるように構成し、当該センサの出力から、携帯電話27をかざしたときの向きを推定し、当該向きの方向に向かって車両1が移動するように、各スライド指令Js_x,Js_y,Js2_yを生成してもよい。
また、カメラ機能を備えた携帯電話27においては、カメラが撮影している画像の一部がタップされたとき、画像解析等によって当該タップされた位置までの方向及び距離等を推定し、当該位置まで車両1が移動するように、各スライド指令Js_x,Js_y,Js2_yを生成してもよい。
また、表示部27aに表示する画面を第1画面と第2画面の2つの画面を切り替えて表示できるように、操縦プログラム29を構成してもよい。ここで、第1画面は、ポインタ27c,27eの操作によって車両1の並進又は旋回を行うための画面であり、第2画面は、主に図16等に例示したようなスライダの操作によって、前記レベルを変更するための画面である。
図17は、表示部27aが第1画面を表示しているときの例を示す。図17に示される表示部27aの表示は、本実施形態の表示部27aの表示(図4に示される表示)に対して、低速モードボタンB1と高速モードボタンB2とが存在せず、且つモードボタンBF3とレベル値表示部DF1とが追加されている点が異なる。
操縦プログラム29は、モードボタンBF3がタッチ操作されたとき、図18に示されるような第2画面に遷移する。また、操縦プログラム29は、レベル値表示部DF1に、第2画面で選択されるレベルの数値を表示する。
図18に示されるように、第2画面では、表示部27aの上方部に、第1画面に表示されていたのと同じように、モードボタンBB3と、レベル値表示部DB1とが表示されている。操縦プログラム29は、第2画面においてモードボタンBB3がタッチ操作されたときには、表示部27aの表示を第1画面に切り替える。
また、第2画面では、表示部27aの中央部に、レベル切替領域41とスライダ42とが表示されている。これらは、図16で示されたレベル切替領域120とスライダ121と同じであるので詳細な説明は省略する。第2画面におけるレベル値表示部DB1には、第1画面におけるレベル値表示部DF1と同様に、スライダ42によって選択されているレベルの数値が表示される。なお、各レベル値表示部DF1,DB1は、レベルの数値ではなく、例えば、選択したレベルに応じた数値、文字列又は記号等を表示するように構成されていてもよい。
上記のように、第1画面には低速モードボタンB1及び高速モードボタンB2とが存在していないので、第1ポインタ27c又は第2ポインタ27eを操作しているときに、誤って低速モードボタンB1及び高速モードボタンB2を操作することを防止でき、車両1が乗員の意図していない挙動となることを防止できる。同様に、図17に示される第1画面には、図16に示されるスライダ121も存在していないので、第1ポインタ27c又は第2ポインタ27eを操作しているときに、誤ってスライダ121を操作してしまうことを防止でき、車両1が乗員の意図していない挙動となることを防止できる。
また、第1画面及び第2画面のいずれであっても、スライダ42によって選択されているレベルが、レベル値表示部DF1,DB1に表示されている。これにより、乗員は、第1画面及び第2画面のいずれの画面を操作していても、現在設定されているレベルを把握することができる。
また、図18に示す例では、操縦プログラム29は、予め規定された所定の動作を行う指令を出力するボタンを第2画面に表示する。詳細には、第2画面には、表示部27aの下方部に、YESボタンBB4と、NOボタンBB5と、So−SoボタンBB6とが表示されている。操縦プログラム29は、YESボタンBB4がタッチ操作された場合には、第1動作(詳細は後述)を行う。操縦プログラム29は、NOボタンBB5がタッチ操作された場合には、第2動作(詳細は後述)を行う。操縦プログラム29は、So−SoボタンBB6がタッチ操作された場合には、第3動作(詳細は後述)を行う。
第1動作は、車両1をX軸方向に沿って僅かに(例えば、5[cm]程度)後ろに動かした後、「乗員搭乗部5をY軸周りに前方に揺動させた後に、傾斜角度を0°にする(うなずくような動作)」という動作を2回行う動作である。これにより、車両1が、あたかも頷いているかのように動作する。第2動作は、第1の移動動作部3の接地点を中心に所定の角度(例えば、約10°〜15°等)の旋回動作を、左周り及び右周りに2往復する動作である。これにより、車両1が、あたかも、人間が首を横に振っているかのように動作する。第3動作は、車両1を、所定の距離だけ左右方向に2往復する動作である。これにより、車両1が、あたかも悩んでいるかのように動作する。
以上のように操縦プログラム29が構成されていることで、第1ポインタ27c又は第2ポインタ27eによる操作で行わせるものに比べて、ボタン(BB4,BB5,BB6)をタッチ操作するのみの簡単な操作をするだけで、車両1に所定の動作(第1動作、第2動作及び第3動作)をさせることができる。
また、ここで例示したように、頷く等のように人間の動作に近い動作を車両1にさせることで、車両1をマスコットのようなキャラクターに設定できる。
なお、ここでは、所定の動作として、第1動作、第2動作及び第3動作について例を示したが上記以外の動作であってもよい。
なお、この動作は、乗員が搭乗していない場合に、車両をマスコットとしての動作をさせるためのものである。
また、本実施形態の車両1の構成に対して、乗員搭乗部5に乗員が搭乗していることを検知するシートセンサを更に設け、シートセンサが、乗員搭乗部5に乗員が搭乗していると検知しているときに、図17で示された第1画面でモードボタンBF3がタッチ操作された場合に、図18で示された第2画面ではなく、図19に示された第2画面に切り替えてもよい。
図19に示された第2画面は、図18で示された第2画面に比べて、YESボタンBB4と、NOボタンBB5と、So−SoボタンBB6とが存在せず、代わりに、車両1を並進移動させるための8つの並進ボタン(前方向への並進ボタンBBF、後方向への並進ボタンBBB、左方向への並進ボタンBBL、右方向への並進ボタンBBR、左前方向への並進ボタンBBFL、右前方向への並進ボタンBBFR、左後方向への並進ボタンBBBL、右後方向への並進ボタンBBBR)が表示されている点が異なる。
操縦プログラム29は、前方向への並進ボタンBBFがタッチされている間、車両1を所定の速度で前方向に移動させる指令を出力する。操縦プログラム29は、後方向への並進ボタンBBBがタッチされている間、車両1を所定の速度で後方向に移動させる指令を出力する。操縦プログラム29は、左方向への並進ボタンBBLがタッチされている間、車両1を所定の速度で左方向に移動させる指令を出力する。操縦プログラム29は、右方向への並進ボタンBBRがタッチされている間、車両1を所定の速度で右方向に移動させる指令を出力する。
操縦プログラム29は、左前方向への並進ボタンBBFLがタッチされている間、車両1を所定の速度で左方向及び前方向に移動させる指令を出力する。操縦プログラム29は、右前方向への並進ボタンBBFRがタッチされている間、車両1を所定の速度で右方向及び前方向に移動させる指令を出力する。操縦プログラム29は、左後方向への並進ボタンBBBLがタッチされている間、車両1を所定の速度で左方向及び後方向に移動させる指令を出力する。操縦プログラム29は、右後方向への並進ボタンBBBRがタッチされている間、車両1を所定の速度で右方向及び後方向に移動させる指令を出力する。
そして、制御装置21は、これらの各指令に沿って車両1が移動するように、当該指令に応じて、電動モータ8a,8b,17を制御する。
このようにして、ボタンをタッチするだけで、乗員が移動したい方向に向かって車両1を所定の速度で並進させることができる。第1ポインタ27c又は第2ポインタ27eをスライドすることで車両1を操作する場合には、車両1の位置を微調整することは、一般には難しい。しかしながら、図19に示されるような並進ボタンをタッチ操作すると所定の速度で車両1が並進するように制御されるものである場合、乗員はタッチ操作するだけで車両1の位置を微調整することができ、操作器の操作性を向上できる。