(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、倒立振子制御は、鉛直方向に対する本体部の傾斜角度を所定の角度に保つ制御を行うものであって、本体部をその場に停止させる制御を行うものではない。したがって、例えば坂道では、当該坂道の傾斜によって生じる重力トルクによって、意図せずに本体部が移動してしまう可能性があった。
【0005】
そこで、この発明は、坂道における重力トルクによって意図せずに本体部が移動してしまうことを防止する手押し車を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の手押し車は、車輪と、該車輪をピッチ方向に回転可能に支持する本体部と、前記車輪を駆動、制御する駆動制御部と、前記本体部のピッチ方向の角度変化を検知する角度変化検知手段と、前記車輪の回転角を検知する回転角検知手段と、を備えている。
【0007】
そして、前記駆動制御部は、前記角度変化検知手段の出力に基づいて、前記本体部の角度変化が0となるように、かつ前記本体部の鉛直方向に対する角度が第1の角度になるように、前記車輪の回転を制御する第1の制御モードと、前記回転角検知手段の出力に基づいて、前記車輪の回転角の変化が0となるように前記車輪の回転を制御する第2の制御モードと、を実行する。第1の制御モードと第2の制御モードは、切替手段によって切り替えられる。
【0008】
第1の制御モードでは、倒立振子制御により、本体部の傾斜角度を第1の角度に維持する。例えば、駆動制御部は、本体部の鉛直方向に対する傾斜角度を0、かつ角速度を0に維持するように、車輪に印加するトルクを算出し、当該車輪を駆動する。この第1の制御モードでは、当該手押し車が自立した状態であり、本体部をその場に停止させる制御を行うものではないため、ユーザが本体部を押すことで手押し車として使用できる。
【0009】
そして、第1の制御モードにおいて、例えば切替スイッチにより切り替え指示がなされると、第2の制御モードに切り替わる。第2の制御モードは、車輪の回転角の変化が0となるように制御する。すなわち、駆動制御部は、第1の制御モードから第2の制御モードに切り替わったときに回転角速度0を目標値として、この目標値とのずれが0となるように、車輪に印加するトルクを算出する。例えば、駆動制御部は、車輪の回転角速度0と、現時点で検知した車輪の回転角速度と、の差分値を算出し、当該差分値が0となるような本体部の傾斜角度を算出する。そして、駆動制御部は、本体部の鉛直方向に対する傾斜角度が、この算出した傾斜角度になるように、かつ角速度が0となるように、車輪に印加するトルクを算出する。なお、上述の例では、駆動制御部は、本体部の傾斜角度が目標の傾斜角度になるように制御しているが、車輪の回転角速度が0となるように制御するだけでもよい。
【0010】
この第2の制御モードでは、車輪の回転角速度が0にとどまることになるため、仮に坂道において重力トルクが働いたとしても、本体部がその場にとどまることになる。したがって、坂道における重力トルクによって意図せずに本体部が移動してしまうことを防止することができる。
【0011】
なお、第1の制御モードと第2の制御モードの切り替えは、ユーザが手動で指示してもよいが、例えば、本体部の一部に、人体が触れているか否かを検知する接触センサを設け、接触している場合に第1の制御モードを実行し、接触しなくなった場合に第2の制御モードを実行する態様も可能である。この場合、ユーザが移動体を手押し車として使用している場合には坂道を上るまたは下ることができ、手を離したときには、手押し車がその場で停止するため、安全性が向上する。
【0012】
また、本発明の手押し車は、地面斜度(水平面に対する地面の傾斜角)を検知する斜度検知手段を備えていることが好ましい。この場合、第2の制御モードにおいて、地面斜度による重力トルクを補償するトルクを印加するフィードフォワード制御を行うことも可能であるし、地面斜度による重力トルクを補償する本体部の鉛直方向に対する傾斜角度を算出し、目標の傾斜角度をフィードフォワード制御で補正することも可能である。
【発明の効果】
【0013】
この発明によれば、坂道における重力トルクによって意図せずに本体部が移動してしまうことを防止することができる。
【発明を実施するための形態】
【0015】
図1は、本発明の手押し車の実施形態である同軸二輪車1の外観図である。
図2は、同軸二輪車1の構成を示す制御構成図である。
【0016】
同軸二輪車1は、例えば、直方体形状の本体部10を備えている。本体部10は、鉛直方向(図中Z,−Z方向)に長く、奥行き方向(図中Y,−Y方向)に短い形状である。本体部10は、内部に制御用の基板や電池等を内蔵している。
【0017】
本体部10の鉛直下方向(−Z方向)の下部のうち、右側(図中X方向)の端部および左側(図中−X方向)の端部には、主輪11が取り付けられている。これら一対の主輪11は、同じ軸に取り付けられ、同期して回転する。ただし、これら主輪11は、それぞれ個別に駆動させ、回転させることも可能である。また、この実施形態においては、主輪11は2輪である例を示しているが、1輪あるいは3輪以上であってもよい。
【0018】
本体部10の鉛直方向上部には、例えば、円筒形状のハンドル15の一端が取り付けられ、ハンドル15の他端には、T字型のグリップ部16が取り付けられている。グリップ部16には、電源スイッチ等のユーザインタフェース(
図2に示すユーザI/F28)が設けられている。ハンドル15のうち、グリップ部16に近い位置には手動ブレーキ29が取り付けられている(手動ブレーキは、本発明において必須の構成ではない)。ユーザは、グリップ部16を握る、あるいは前腕等をグリップ部16に載せ、グリップ部と前腕等の摩擦により、同軸二輪車1を押すことができる。
【0019】
なお、本体部10は、実際にはカバーが取り付けられ、内部の基板等が外観上見えないようになっている。
【0020】
本体部10の背面(−Y方向)には、棒状の支持部12の一端が取り付けられる。支持部12の一端は、本体部10に回転可能に接続されている。支持部12の他端には、補助輪13が取り付けられる。支持部12は、本体部10を支持するものであり、本体部10の転倒を防止するためのものである。なお、支持部12および補助輪13は、本発明において必須の構成ではないが、補助輪13を設けることで、電源オフ時に本体部10が鉛直方向から大きく傾いた状態となった場合においても、主輪11および補助輪13が接地されることにより、同軸二輪車を押すことができる。また、支持部12および補助輪13は、2つ以上であってもよい。
【0021】
次に、同軸二輪車1の構成および基本動作について説明する。
図2に示すように、同軸二輪車1は、傾斜角センサ20、制御部21、ROM22、RAM23、ジャイロセンサ24、主輪駆動部25、主輪用ロータリエンコーダ26、支持部用ロータリエンコーダ27、ユーザI/F28、および手動ブレーキ29を備えている。
【0022】
制御部21は、同軸二輪車1を統括的に制御する機能部であり、ROM22に記憶されているプログラムを読み出し、当該プログラムをRAM23に展開することで種々の動作を実現する。傾斜角センサ20は、本体部10のピッチ方向(
図1における主輪11の軸を中心とする回転方向)の鉛直方向に対する傾斜角を検知し、制御部21に出力する。ジャイロセンサ24は、本体部10のピッチ方向の角速度を検知し、制御部21に出力する。なお、同軸二輪車1は、本体部10の各方向の加速度を検知する加速度センサや、補助輪13の回転角度を検知するロータリエンコーダ等をさらに備えていてもよい。
【0023】
主輪用ロータリエンコーダ26は、主輪11の回転角度を検知し、検知結果を制御部21に出力する。支持部用ロータリエンコーダ27は、本体部10と支持部12とのなす角度である交差角度を検知し、検知結果を制御部21に出力する。
【0024】
基本動作(以下、第1の制御モードと言う。)として、制御部21は、ジャイロセンサ24および傾斜角センサ20の検知結果に基づいて、本体部10のピッチ方向の傾斜角の変化を検知し、本体部10のピッチ方向の角度変化がゼロとなるように、かつ本体部10の鉛直方向に対する傾斜角度が第1の値(0または0に近い値)となるように、主輪駆動部25を制御する。
【0025】
図3は、第1の制御モード時における制御部21のブロック線図である。第1の制御モードでは、制御部21は、本体部傾斜角度制御器212および本体部傾斜角速度制御器213を備えている。本体部傾斜角度制御器212は、目標の傾斜角度(第1の値:例えば0度)と、傾斜角センサ20から入力された現時点の本体部10の傾斜角度と、の差分値を入力し、この差分値が0となるような本体部10の傾斜角速度を算出する。そして、本体部傾斜角速度制御器213は、本体部傾斜角度制御器212で算出された傾斜角速度と、ジャイロセンサ24から入力された現時点の本体部10の傾斜角速度と、の差分値を入力し、この差分値が0となるような印加トルクを算出する。
【0026】
主輪駆動部25は、主輪11に取り付けられた軸を回転させるモータを駆動する機能部であり、上記本体部傾斜角速度制御器213で算出されたトルクを主輪11のモータに印加し、主輪11を回転させる。
【0027】
このようにして、同軸二輪車1は、第1の制御モードとして、倒立振子制御を行い、本体部10の姿勢を一定に保つように制御する。同軸二輪車1は、ユーザがグリップ部16を握って同軸二輪車1を押した場合でも一定の姿勢を保つため、手押し車として使用することができる。
【0028】
なお、ここでは、本体部10のピッチ方向の傾斜角の角度変化を検知する手段として、ジャイロセンサ24および傾斜角センサ20を用いる例を示したが、加速度センサを用いることも可能であるし、その他どの様なセンサを用いてもよい。
【0029】
また、本体部傾斜角度制御器212は、目標の傾斜角度(例えば0度)と、傾斜角センサ20から入力された現時点の本体部10の傾斜角度と、の差分値を入力する例を示したが、目標の傾斜角度(例えば0度)を、地面と垂直方向に対する本体部10の傾斜角度と、坂道の斜度分を合わせたものとしてもよい。地面と垂直方向に対する本体部10の傾斜角度は、支持部用ロータリエンコーダ27から入力された本体部10と支持部12の交差角度から算出することができる。
【0030】
例えば、
図5に示すように、本体部10と支持部12の交差角度をθ
1、地面と垂直方向に対する本体部10の傾斜角度をθ
2、本体部10の長さ(本体部10と支持部12の交差位置から主輪11までの長さ)をL
1、支持部12の長さ(本体部10と支持部12の交差位置から補助輪13までの長さ)をL
2とすると、L
1cosθ
2=L
2cos(θ
1−θ
2)の関係から、地面と垂直方向に対する本体部10の傾斜角度θ
2は、
【0031】
【数1】
の計算式により算出することができる。
【0032】
以上のようにして、同軸二輪車1は、第1の制御モードとして、倒立振子制御を行い、本体部10の姿勢を一定に保つように制御する。そして、本実施形態の同軸二輪車1は、上記の倒立振子制御を行いつつ、さらにその場にとどまり続ける第2の制御モードも実行することが可能である。
【0033】
図4は、第2の制御モード時における制御部21のブロック線図である。第2の制御モード時における制御部21は、
図3の示した第1の制御モード時における制御部21の構成に加えて、タイヤ角速度制御器211を備えている。本体部傾斜角度制御器212および本体部傾斜角速度制御器213の構成および機能は、第1の制御モードと同じである。
【0034】
第1の制御モードと第2の制御モードは、例えばユーザI/F28に設けられた切替スイッチにより切り替え指示がなされると、切り替えられる。タイヤ角速度制御器211は、主輪11の回転角速度θ
2ref’=0を目標値として、当該目標値と、主輪用ロータリエンコーダ26から出力される信号の微分値である現時点の主輪11の回転角速度θ
2’と、の差分値を入力する。タイヤ角速度制御器211は、この差分値が0となるような本体部10の傾斜角度θ
1refを算出する。
【0035】
傾斜角度θ
1refは、本体部10の重心位置をy
g、重力トルクをτ
1とすると、τ
1=mg・θ
1ref・y
g(ただし、mは本体部10の質量、gは重力加速度)の関係から、θ
1ref=(1/mgy
g)・τ
1となる。そして、主輪モータトルクをτ
2とすると、角加速度と慣性モーメントの関係から、τ
2=J・θ
2ref’’となり、θ
2ref’’=(θ
2ref’−θ
2’)/Tとなる(ただし、T=時間)ため、主輪モータトルクで重力トルクを補償すると考えると、τ
1=τ
2であるから、
【0037】
ただし、タイヤ角速度制御器211は、入力される差分値が瞬時的に0となった場合に本体角度傾斜角が0として出力され、本体部10が移動してしまうことを防止すべく、積分処理を行う。
【0038】
第2の制御モードでは、この算出した傾斜角度が、目標の傾斜角度となる。そして、当該目標傾斜角度と、傾斜角センサ20から入力された現時点の本体部10の傾斜角度と、の差分値が本体部傾斜角度制御器212に入力される。よって、仮に坂道における重力トルクが働いて、主輪11が回転したとしても、当該回転角の変化が0となるようなトルクが算出されるため、同軸二輪車1は、第2の制御モードに切り替わった時点の位置にとどまることになる。したがって、第2の制御モードでは、坂道における重力トルクによって意図せずに本体部10が移動してしまうことを防止することができる。
【0039】
なお、上記の例は、切替スイッチにより切り替え指示がなされると、第1の制御モードと第2の制御モードが切り替えられる例を示したが、グリップ部16にタッチセンサを設け、ユーザがグリップ部16に接触していないことを検知した場合に、第1の制御モードから第2の制御モードに切り替えられるようにしてもよい。この場合、ユーザがグリップ部16に接触していることを検知した場合に、第2の制御モードから第1の制御モードに切り替えられる。また、ユーザの手が離れたことを検知した場合で、かつ所定時間が経過した場合に限り、第1の制御モードから第2の制御モードに切り替えられるようにしてもよい。
【0040】
なお、第2の制御モードは、必ずしも第1の制御モードの倒立振子制御を行いつつ実行する必要はなく、倒立振子制御の姿勢制御ループを行わずに、その場にとどまり続ける角度制御ループだけを実行してもよい。
【0041】
すなわち、
図9に示すように、第2の制御モード時における制御部21は、タイヤ角度制御器221のみを備える。タイヤ角度制御器221は、第2の制御モードに切り替わった時点の主輪用ロータリエンコーダ26から出力されていた信号の値である回転角度θ
2refを目標値として、当該目標値と、主輪用ロータリエンコーダ26から出力される信号の値である現時点の主輪11の回転角度θ
2と、の差分値を入力する。タイヤ角度制御器221は、この差分値が0となるような印加トルクを算出する。この場合も、仮に坂道における重力トルクが働いて、主輪11が回転したとしても、当該回転角の変化が0となるようなトルクが算出されるため、同軸二輪車1は、第2の制御モードに切り替わった時点の位置にとどまることになる。
【0042】
なお、上述の例では、第2の制御モードから第1の制御モードに切り替えるタイミングとして、ユーザがグリップ部16に接触していることを検知した場合を挙げたが、さらに、本体部10の傾斜角が一定範囲内(例えば、−5度〜−3度)にある場合に切り替える態様としてもよい。この一定範囲は、倒立振子制御における本体部10の傾斜角の目標値の近くに設定した場合、倒立振子制御を開始したときに本体部10の傾斜角がほとんど変わらないため、ユーザに違和感を与えない。
【0043】
次に、
図6は、変形例1に係る制御部21のブロック線図である。変形例1に係る第2の制御モードでは、制御部21は、
図4に示した第2の制御モード時における制御部21の構成に加えて、斜度推定部214およびトルク指令生成部215を備えている。タイヤ角速度制御器211、本体部傾斜角度制御器212および本体部傾斜角速度制御器213の構成および機能は、
図4に示した構成と同じである。
【0044】
斜度推定部214は、支持部用ロータリエンコーダ27の値(すなわち、本体部10と支持部12の交差角度θ
1)と、傾斜角センサ20の値(すなわち、鉛直方向に対する本体部10の傾斜角度θ
3)を入力し、地面傾斜角θ
hを推定する。
【0045】
数1に示したように、地面と垂直方向に対する本体部10の傾斜角度θ
2は、交差角度θ
1、本体部の長さL
1、支持部12の長さL
2により求められる。すると、地面傾斜角θ
hは、θ
h=θ
2+θ
3により求められる。
【0046】
トルク指令生成部215は、斜度推定部214が推定した地面傾斜角θ
hを入力し、当該地面傾斜角θ
hにより発生する重力トルクを補償するためのトルク値を算出する。したがって、変形例1に係る制御部21は、トルク指令生成部215で算出したトルク値を本体部傾斜角速度制御器213が算出したトルク値に加算し、フィードフォワード制御を行うことになる。坂道によって生じる重力トルクτ
1は、
図7に示すように、坂道の傾斜に沿って生じる主輪11の推進力をFとし、主輪11のタイヤ半径をRとすると、τ
1=FR=mg・sinθ
h・R(ただし、mは本体部10の質量、gは重力加速度)となる。したがって、トルク指令生成部215は、このτ
1に対して所定のフィードフォワード係数α(αは0〜1)を乗じた値「α・mg・sinθ
h・R」を補正トルク値として、本体部傾斜角速度制御器213が算出したトルク値に加算する。これにより、第2の制御モードに切り替わった時点で、本体部10が坂道に存在する場合には、当該地面傾斜角による重力トルクを補償したトルクが主輪11に印加されるため、タイヤ角速度制御器211によるフィードバック制御が働くよりも前に主輪11にトルクを印加することができる。
【0047】
次に、
図8は、変形例2に係る制御部21のブロック線図である。変形例2に係る第2の制御モードでは、制御部21は、
図4に示した第2の制御モード時における制御部21の構成に加えて、斜度推定部214および傾斜角度指令生成部216を備えている。タイヤ角速度制御器211、本体部傾斜角度制御器212および本体部傾斜角速度制御器213の構成および機能は、
図4に示した構成と同じである。
【0048】
傾斜角度指令生成部216は、斜度推定部214から地面傾斜角θ
hを入力し、当該地面傾斜角θ
hにより発生する重力トルクを補償するための本体部10の傾斜角度を算出する。
【0049】
坂道によって生じる重力トルクτ
1は、
図7に示したように、τ
1=FR=mg・sinθ
h・Rとなる。本体部10の鉛直方向に対する傾斜角度によって生じるトルク反力τ
2は、τ
2=mg・sinθ・y
g(ただし、y
gは本体部10の重心の高さ)で表される。したがって、傾斜角度指令生成部216は、τ
1=τ
2となるための補正傾斜角度θを算出する。ここで、sinθをθで近似すると、mg・θ
h・R=mg・θ・y
gとなり、θ=(R/y
g)・θ
hとなる。したがって、例えば、R=100mm,y
g=300mmとすると、地面傾斜角の1/3程度、本体部10を傾斜させることになる。
【0050】
傾斜角度指令生成部216は、上記のように算出した補正傾斜角度θに所定のフィードフォワード係数β(βは0〜1)を乗じた値「β・θ」を、タイヤ角速度制御器211が算出した傾斜角度に加算する。これにより、第2の制御モードに切り替わった時点で、本体部10が坂道に存在する場合には、目標となる本体部10の傾斜角度は、当該地面傾斜角による重力トルクを補償した本体部10の傾斜角度に補正されるため、タイヤ角速度制御器211によるフィードバック制御が働くよりも前に主輪11にトルクを印加することができる。