以下、本発明の一実施形態にかかる推定装置を説明する。本発明の一実施形態にかかる推定装置は、推定手段が、前輪が段差に到達する直前に取得手段が取得した第1ピッチ角と、後輪が段差を通過した直後に取得手段が取得した第2ピッチ角と、前輪が段差を通過してから後輪が段差に到達するまでの間に取得手段が検出した第3ピッチ角と、前輪の接地位置と後輪の接地位置との間の長さと、に基づいて段差の高さを推定する。このようにすることにより、前輪のみが段差を通過した際のピッチ角だけでなく、段差直前の第1ピッチ角と段差通過後の第2ピッチ角を取得しているので、段差の前後に傾斜面があっても精度良く段差高さを推定することができる。
また、推定手段は、前輪が段差に到達する直前の第1距離を走行する間に取得したピッチ角の平均値を第1ピッチ角としてもよい。このようにすることにより、第1ピッチ角が走行面上の小さな凹凸等のノイズ成分によって影響を受けにくくすることができ、精度を向上させることができる。
また、推定手段は、後輪が段差を通過した直後の第2距離を走行する間に取得したピッチ角の平均値を第2ピッチ角としてもよい。このようにすることにより、第2ピッチ角が走行面上の小さな凹凸等のノイズ成分によって影響を受けにくくすることができ、精度を向上させることができる。
また、推定手段は、前輪が段差を通過してから後輪が段差に到達するまでの間の少なくとも一部を走行する間に取得したピッチ角の平均値を第3ピッチ角としてもよい。このようにすることにより、第3ピッチ角が走行面上の小さな凹凸等のノイズ成分によって影響を受けにくくすることができ、精度を向上させることができる。
また、取得手段は、移動体のピッチレートを更に取得し、推定手段は、取得手段が取得したピッチレートの絶対値が予め定めた閾値以上となった場合に、前輪または後輪が段差に到達したと判定し、その後閾値未満となった場合に、前輪または後輪が段差を通過したと判定してもよい。このようにすることにより、段差に前輪や後輪といった車輪が到達すると、車体のピッチが大きく変化するため、ピッチレートが変化する。したがって、ピッチレートの変化によって、車輪が段差を越えたことを検出することができる。
また、取得手段は、移動体の単位移動距離当たりのピッチ角の変化であるピッチ変化を更に取得し、推定手段は、取得手段が取得したピッチ変化の絶対値が予め定めた閾値以上となった場合に、前輪または後輪が段差に到達したと判定し、その後閾値未満となった場合に、前輪または後輪が段差を通過したと判定してもよい。このようにすることにより、段差に前輪や後輪といった車輪が到達すると、車体のピッチが大きく変化するため、ピッチ変化が大きくなる。したがって、ピッチ変化の大きさによって、車輪が段差を越えたことを検出することができる。
また、所定期間のピッチ角を保持する保持手段を更に備え、推定手段は、前記後輪が前記段差に到達した後に、保持手段に保持されているピッチ角に基づいて段差の高さを推定してもよい。このようにすることにより、段差検出前後のピッチ角を保持しておき、段差検出後に段差の高さを推定することが可能となる。
また、本発明の一実施形態にかかる推定方法は、推定工程で前輪が段差に到達する直前に取得手段が取得した第1ピッチ角と、後輪が段差を通過した直後に取得工程で取得した第2ピッチ角と、前輪が段差を通過してから後輪が段差に到達するまでの間に取得手段が検出した第3ピッチ角と、前輪の接地位置と後輪の接地位置との間の長さと、に基づいて段差の高さを推定する。このようにすることにより、前輪のみが段差を通過した際のピッチ角だけでなく、段差直前の第1ピッチ角と段差通過後の第2ピッチ角を取得しているので、段差の前後に傾斜面があっても精度良く段差高さを推定することができる。
また、上述した推定方法をコンピュータにより実行させる推定プログラムとしてもよい。このようにすることにより、コンピュータを用いて、段差の前後に傾斜面があっても精度良く段差高さを推定することができる。
また、上述した推定プログラムをコンピュータ読み取り可能な記録媒体に格納してもよい。このようにすることにより、当該プログラムを機器に組み込む以外に単体でも流通させることができ、バージョンアップ等も容易に行える。
本発明の一実施例にかかる推定装置を図1乃至図21を参照して説明する。本実施例にかかる推定装置としての演算装置1は、図1に示したように、移動体としての車椅子100に搭載されている。
図1は、本発明の一実施例にかかる推定装置を有する段差検出システムの構成図である。図1に示したように、車椅子100には、演算装置1の他にGPS受信機2と、速度検出手段としての速度センサ3と、ピッチレート検出手段としてのジャイロセンサ4と、送信手段としての通信機5と、が搭載されている。
車椅子100に搭載された通信機5は、インターネット等のネットワーク網Nに無線通信で接続することができ、このネットワーク網Nを介してサーバ装置50と通信可能となっている。
車椅子100は、車体に、左右一対の前輪101及び左右一対の後輪102が設けられている。前輪101は車体の前方側に設けられている。後輪102は車体の後方側に設けられている。前輪101は、その直径は後輪102の直径より小さくなっている。
車椅子100の車体は、例えば鋼管製のフレームにより構成されたフレーム構造体である。そして、車体には、利用者が着席する座席や、利用者の足部を乗せるフットプレート等が設けられている。
車椅子100に搭載されている機器の機能的構成図を図2に示す。演算装置1は、例えば、CPU(Central Processing Unit)やROM(Read Only Memory)及びRAM(Random Access Memory)等のメモリを備えたマイクロコンピュータ及び、GPS受信機2、加速度センサ3、ジャイロセンサ4、通信機5と接続するためのインタフェース等を有している。また、演算装置1は、ROM等に記憶される制御プログラムを実行することにより、取得手段としてのピッチレート取得部11と、補正手段としての補正部12と、段差検出手段としての段差検出部13と、して機能する。
ピッチレート取得部11は、ジャイロセンサ4が検出したピッチレート等を取得する。また、ピッチレート取得部11は、後述する条件に合致するときに取得したピッチレートを第1ピッチレート、第2ピッチレートとして取得する。
補正部12は、速度センサ3が検出した車椅子100の速度に基づいてピッチレート取得部11が取得した第1ピッチレート及び第2ピッチレートを補正する。
段差検出部13は、補正部12が第1ピッチレート及び第2ピッチレートを個性した結果に基づいて路面(走行面)上の段差を検出する。段差の検出方法については後述する。ここで、第1ピッチレートを補正したものを第1ピッチ変化、第2ピッチレートを補正したものを第2ピッチ変化という。また、走行面とは、車道、歩道その他の前輪と後輪とを有する移動体が走行可能な地表面や床面等であって、屋内、屋外も問わない。即ち、段差検出部13は、取得し補正した値に基づいて、移動体(車椅子100)が走行して通過した走行面上の段差を検出する段差検出手段として機能する。なお、本実施例における段差とは、走行面上において、車椅子100で上がる又は下がることが困難となる位置(地点)であって、一の走行面と次の走行面とが所定高さ以上の垂直面または所定角度以上の斜面で繋がれている位置をいう。
GPS受信機2は、周知のように複数のGPS(Global Positioning System)衛星から発信される電波を受信して、現在地情報(緯度、経度)を求めて演算装置1に出力する。
速度センサ3は、車椅子100が走行する速度(走行速度)を検出する。速度センサ3は、例えば後輪102の回転数から検出するものや、電動車椅子の場合であればモータの回転数から検出するものであってもよい。
ジャイロセンサ4は、車椅子100のピッチ方向の回転角速度(ピッチレート)を取得する。ここで、ピッチとは車椅子100の進行方向に対して上下方向の傾き(横方向を軸とした回転角)を示す。ジャイロセンサ4は、例えば静電容量型や圧電型等、どのような方式のセンサでもよいが、車椅子100に搭載するので小型であることが好ましい。
通信機5は、演算装置1で演算された結果をサーバ装置50へ無線通信により送信する。通信機5は、LTE(Long Term Evolution)やW−CDMA(Wideband Code Division Multiple Access)等の携帯電話網で利用されている通信方式でもよい。また、Wi−Fi(登録商標)等の無線LANの通信方式であってもよいし、それらを切り替えて利用できるものであってもよい。
サーバ装置50の機能的構成図を図3に示す。サーバ装置50は、通信機51と、演算装置52と、記憶装置53と、を備えている。通信機51は、通信機5から送信された演算装置1で演算された結果を受信する。
演算装置52は、例えば、CPU(Central Processing Unit)やROM(Read Only Memory)及びRAM(Random Access Memory)等のメモリを備えたマイクロコンピュータを有している。また、演算装置52は、ROM等に記憶される制御プログラムを実行することにより、レベル判定部521と、更新部522と、して機能する。
レベル判定部521は、演算装置1から送信された情報に基づいて、段差の高さの段差のレベルを判定する。段差のレベルとは、段差の高さをレベルで区分したものであり、例えば0cm以上5cm未満をレベル1、5cm以上10cm未満をレベル2など所定の閾値に基づいて判定する。
更新部522は、レベル判定部521の判定結果に基づいて、記憶装置53に記憶されている地図情報532のバリア情報を更新する。また、更新部522は、演算装置1から送信された段差高さ等の情報の地点毎(位置毎)の平均を平均高さ情報531として蓄積する。
次に、本実施例における段差の検出原理について図4乃至図7を参照して説明する。図4は、上り段差Uを通過する場合の車椅子100の移動の状態を示した図、図5は、図4の状態におけるピッチレート及びピッチ角の変化を示したグラフである。
まず、図4(a)の状態は上り段差Uを通過する前の状態である。この場合、ピッチレート及びピッチ角とも大きな変化は発生しない(図5(a)のa)。次に図4(b)の状態は上り段差Uを前輪101が上る状態である。この場合、前輪101が上り段差Uを上るので車椅子100の車体は進行方向に向かって斜め上向きの状態となりピッチレートが上向きに増加する(図5(a)のb)。
次に図4(c)の状態は上り段差Uを後輪102が上る状態である。この場合、後輪102が上り段差Uを上るので車椅子100の車体は斜めの状態から水平の状態に移行しようとしてピッチレートが下向きに増加する(図5(a)のc)。そして、図4(d)の状態は上り段差Uを通過した後の状態である。この場合も上り段差Uを通過する前と同様に、ピッチレート及びピッチ角とも大きな変化は発生しない(図5(a)のd)。
つまり、上り段差Uの場合、前輪101が上り段差Uを通過する際には、ピッチレートが+方向に増加する。つまり、ピッチレートが正数となる。そして、後輪102が上り段差Uを通過する際には、ピッチレートが−方向に増加する。つまり、ピッチレートは負数となる。ここで、本実施例のピッチレートは、車椅子100が進行方向に対して上るように車体が傾くときに正数となり、進行方向に対して下るように車体が傾くときに負数となる。
図6は、下り段差Dを通過する場合の車椅子100の移動の状態を示した図、図7は、図6の状態におけるピッチレート及びピッチ角の変化を示したグラフである。
まず、図6(a)の状態は下り段差Dを通過する前の状態である。この場合は、ピッチレート及びピッチ角とも大きな変化は発生しない(図7(a)のa)。次に図6(b)の状態は下り段差Dを前輪101が下る状態である。この場合、前輪101が下り段差Dを下るので車椅子100の車体は進行方向に向かって斜め下向きの状態となりピッチレートが下向きに増加する(図7(a)のb)。
次に図6(c)の状態は下り段差Dを後輪102が下る状態である。この場合、後輪102が下り段差Dを下るので車椅子100の車体は斜めの状態から水平の状態に移行しようとしてピッチレートが上向きに増加する(図7(a)のc)。そして、図6(d)の状態は下り段差Dを通過した後の状態である。この場合も下り段差Dを通過する前と同様に、ピッチレート及びピッチ角とも大きな変化は発生しない(図7(a)のd)。
つまり、下り段差Dの場合、前輪101が下り段差Dを通過する際には、ピッチレートが−方向に増加する。つまり、ピッチレートが負数となる。そして、後輪102が下り段差Dを通過する際には、ピッチレートが+方向に増加する。つまり、ピッチレートが正数となる。
従って、図4乃至図7によれば、ジャイロセンサ4が検出するピッチレートの値及び符号に基づいて上り段差Uを通過したか下り段差Dを通過したかを検出することができる。また、検出されたピッチレートに閾値を設けることで、図5や図7に示したb点やc点といった段差を通過した際に現れるピークを確実に検出することが可能となる。
ここで、車椅子100の走行速度とピッチレートとの関係について図8を参照して説明する。図8は、走行速度を変えた場合のピッチレートの変化を示したグラフである。図8(a)は、車椅子100の走行速度が2.5km/hの場合、図8(b)は、車椅子100の走行速度が4.5km/hの場合、図8(c)は、車椅子100の走行速度が6.0km/hの場合をそれぞれ示す。図8に示したように、走行速度が速いほど単位時間あたりの変化が大きくなるのでピッチレートのピークが大きくなる。このとき、段差を判定するために閾値等を設定する場合は走行速度に合わせて設定する必要があるが、速度に応じて複数の閾値等を使い分けなければならず、処理が複雑化してしまう。
そこで、本実施例では、速度による差異を無くすため、ピッチレート値を走行速度で除算して補正する。図9に図8を補正した結果を示す。図9(a)は、車椅子100の走行速度が2.5km/hの場合、図9(b)は、車椅子100の走行速度が4.5km/hの場合、図9(c)は、車椅子100の走行速度が6.0km/hの場合をそれぞれ示す。図9に示したように、ピッチレート値を走行速度で除算して補正することで、位置に対するピッチ変化に変換することができ、速度によらず同じピッチ変化が得られる。したがって、速度を考慮することなく、ピッチ変化の大きさから段差を判定することができるようになる。なお、図8及び図9は上り段差を例に説明したが下り段差の場合も同様であることはいうまでもない。また、本実施例では、ピッチレートを補正してピッチ変化を算出しているが、他の方法でピッチ変化を取得するようにしてもよい。一例として、ピッチ角と移動距離を検出し、ピッチ角を単位距離で除算することによりピッチ変化を算出しても良い。
段差を判定するための閾値は、前輪101側と後輪102側の双方にそれぞれ設けるとよい。つまり、正の値となる閾値と負の値となる閾値の2つを用意するとよい。これは、図5と図7に示したように、前輪101側と後輪102側でピッチ変化の極性が逆のためである。また、ピッチ変化は、図10に示したように、段差の高さが高いほど大きくなる。図10(a)は段差が10mmの場合、図10(b)は、段差が20mmの場合、図10(c)は段差が30mmの場合をそれぞれ示している。したがって、低い段差を検出するには、閾値T1、T2を検出対象の段差のうち低い段差に合わせて小さく設定する必要がある。
車椅子100の場合、後輪102は前輪101よりも車輪径が大きい。そのため、後輪102の方が穏やかに段差を通過することとなる(図11を参照)。図11は、段差を上るときの前輪101と後輪102との乗り上げ角度の違いを示した図である。図11に示すように、後輪102は車輪径が大きいため段差を乗り上げ角度θ2は前輪101の乗り上げ角度θ1よりも小さい。そのため、後輪102が段差を通過するときのピッチ変化は、前輪101が通過するときよりも穏やかになり、前輪101よりも後輪102が通過するときの方がピッチ変化のピークが小さくなる。
したがって、前輪101側の閾値と後輪102側の閾値との絶対値を異なる値とすることで、段差検出精度が向上する。図12に一例を示す。図12において、前輪101側の閾値T1>後輪102側の閾値T2である。図12(a)は上り段差の場合である。この場合、図5で説明したように前輪101側の閾値T1は正の値として設定され、後輪102側の閾値T2は負の値として設定される。図12(b)は下り段差の場合である。この場合、図7で説明したように前輪101側の閾値T1は負の値として設定され、後輪102側の閾値T2は正の値として設定される。
なお、車椅子100の場合は後輪102は前輪101よりも車輪径が大きいので、前輪101側の閾値T1>後輪102側の閾値T2の関係となるように閾値を設定したが、前輪101が後輪102よりも車輪径が大きい移動体の場合は、前輪101側の閾値T1<後輪102側の閾値T2の関係となるように閾値を設定すればよい。また、前輪101と後輪102の車輪径が同じ移動体の場合は、閾値T1と閾値T2とを同じ値としてもよい。
次に、段差の前後に傾斜面がある場合の閾値の設定について説明する。段差の前後に傾斜面がある場合は、前輪101通過後のピッチ変化が0に戻らないため、後輪102側のピッチ変化のピーク値が変動する。以下、図13を参照して説明する。
図13(a)は、20mmの段差の前後が平坦面の場合のピッチ変化と位置との関係を示したグラフである。図13(b)は、20mmの段差の後が4°の上り傾斜面の場合のピッチ変化と位置との関係を示したグラフである。図13(c)は、20mmの段差の前が4°の上り傾斜面の場合のピッチ変化と位置との関係を示したグラフである。図13(a)の場合、段差の前後が平坦面のため、前輪101が段差を通過した後はピッチ変化は0に戻る。
一方、図13(b)の場合、段差の後が傾斜面となっているので、前輪101が段差を通過後後輪102が段差を通過するまでは、後輪102の高さは変わらず前輪101の高さのみ上昇していく。よって、車椅子100の傾きが傾斜面の角度に応じた割合で徐々に大きくなるため、前輪101通過後のピッチ変化は略同じピッチ変化のまま進む。つまり、ピッチ変化が正の略一定値となる(図13(b)のpositionが約0.45〜約0.7までの区間)。その後、後輪102が段差を通過した際のピッチ変化は、前記した正の略一定値から負の方向へ変化する。ピッチ変化の負の方向のピーク値は、図13(a)と比べて小さくなっていることがわかる。したがって、閾値−T2とピッチ変化の負のピーク値が近いために検出範囲が狭くなり、閾値の設定によっては、検出漏れを生じる可能性がある(図13(b)のX1)。
また、図13(c)の場合、段差の前が傾斜面となっているので、前輪101が段差を通過後後輪102が段差を通過するまでは、前輪101の高さは変わらず後輪102の高さのみ上昇していく。よって、車椅子100の傾きが傾斜面の角度に応じた割合で徐々に小さくなるため、前輪101通過後のピッチ変化は略同じピッチ変化のまま進む。つまり、ピッチ変化が負の略一定値となる(図13(c)のpositionが約0.45〜約0.7までの区間)。図13(a)と比べて、この間の負の略一定値は閾値−T2に近いため、検出ミスを生じやすくなり、閾値の設定によっては、後輪102の通過として誤検出される可能性がある(図13(b)のX2)。
上述した問題を回避するため、後輪102側の判定は、図14に示したように、前輪101通過後のピッチ変化の平均値Pd_aveからのピッチ変化量ΔPdと閾値とを比較することにより行う。即ち、第1ピッチ変化が第1の閾値(前輪101側閾値)以上となってから第1の閾値未満となった後のピッチ変化の平均値(平均値Pd_ave)から第2ピッチ変化までの変化量(ピッチ変化量ΔPd)の絶対値を第2の閾値(後輪102側閾値)と比較している。前輪101通過後の平均値Pd_aveは、図13に示したピッチ変化が少ない区間が検出できるようにすることが好ましい。例えば、ピッチ変化の変化率が所定値以下に安定してから次に所定値を超えるまでとすればよい。
また、この区間は車椅子100のホイールベース長Hの長さと略同じと見做すことができるので、ピッチ変化の変化率が所定値以下に安定してから略ホイールベース長H移動中に算出されるピッチ変化の平均としてもよい。ここで、本実施例におけるホイールベース長Hは、前輪101の接地位置から後輪102の接地位置までの長さとする。なお、車輪面で接地する場合は、車輪の接地面の中心を接地位置と見做せばよい。
次に、上述した構成の演算装置1の動作について、図15のフローチャートを参照して説明する。
まず、ステップS101において、段差検出部13に閾値T1、T2を設定してステップS102に進む。閾値T1、T2は、ジャイロセンサ4が検出するピッチレートを走行速度で除算して補正した値(ピッチ変化)に設定される閾値である。閾値T1は、前輪101が段差を通過したことを検出するための閾値であり第1の閾値に相当する。閾値T2は、後輪102が段差を通過したことを検出するための閾値であり第2の閾値に相当する。これらの閾値T1、T2は、車椅子100に合わせて調整可能としている。また、車椅子のタイプに応じたデータテーブルを予め用意し、車椅子のタイプを入力して閾値T1、T2やホイールベース長Hが自動的に設定されるようにしてもよい。
次に、ステップS102において、ピッチレートと走行速度からピッチ変化Pdを算出してステップS103に進む。本ステップでは、ジャイロセンサ4が検出したピッチレートをピッチレート取得部11が取得し、取得したピッチレートを、補正部12が速度センサ3で検出された車椅子100の走行速度で除算してピッチ変化Pdを算出している。つまり、走行中はピッチレートの取得およびピッチ変化Pdの算出を行っている。
次に、ステップS103において、段差検出部13はステップS102で算出したピッチ変化Pdが−T1未満か否かを判断し、この条件を満たす場合(Yesの場合)はステップS104に進み、条件を満たさない場合(Noの場合)はステップS105に進む。即ち、ピッチ変化Pdが負であり、その絶対値が第1の閾値(T1)以上であることを検出している。即ち、本ステップで閾値T1以上と判断されたピッチ変化Pdの元となるピッチレートが第1ピッチレートとなる。また、補正部12で算出されたピッチ変化Pdが第1ピッチ変化となる。
次に、ステップS104において、ステップS103で条件を満たすと判断されたので、段差検出部13は現在通過中の段差は下り段差と仮判定をして、段差候補フラグに−1をセットしてステップS107に進む。本ステップでは、まだ後輪102側の判定を行っていないので、仮の判定を行い、その判定を示すフラグとして演算装置1内に設定されている段差候補フラグをセットする。なお、段差候補フラグにセットする値は、−1に限らず、下りと仮判定したことを示す値であればよい。
一方、ステップS105においては、段差検出部13はステップS102で算出したピッチ変化PdがT1以上か否かを判断し、この条件を満たす場合(Yesの場合)はステップS106に進み、条件を満たさない場合(Noの場合)は段差の検出ではないと判断して本フローチャートを終了する。即ち、第1ピッチ変化(ピッチ変化Pd)が正であり、その絶対値が第1の閾値(T1)以上であることを検出している。
次に、ステップS106において、ステップS105で条件を満たすと判断されたので、段差検出部13は現在通過中の段差は上り段差と仮判定をして、段差候補フラグに1をセットしてステップS107に進む。本ステップでは、まだ後輪102側の判定を行っていないので、仮の判定を行い、ステップS104と同様に段差候補フラグをセットする。なお、段差候補フラグにセットする値は、1に限らず、上りと仮判定したことを示す値であればよい。
次に、ステップS107において、前輪101が段差を越えた後、ホイールベース長Hの移動中の平均ピッチ変化Pd_aveを算出してステップS108に進む。本ステップでは、段差検出部13が、図14で説明したような前輪101が段差通過後の後輪通過までの区間における平均ピッチ変化Pd_aveを算出している。また、ホイールベース長Hの移動距離は、予め設定されているホイールベース長Hに基づいてGPS受信機2が検出する緯度、経度から算出してもよいし、車椅子100の車輪(後輪102)の回転角に予め設定された車輪の円周を乗算して算出してもよい。車椅子100の車輪の回転角は、車輪に角度センサ等を設けることで検出できる。
次に、ステップS108において、補正部12が、ホイールベース長H移動後のピッチ変化Pdを検出し、そのピッチ変化からステップS107で算出した平均ピッチ変化Pd_aveを減算し、ピッチ変化量ΔPdを算出してステップS109に進む。本ステップでは、段差検出部13が図14で説明したような前輪101通過後の平均値Pd_aveからのピッチ変化量ΔPdを算出している。
次に、ステップS109において、段差検出部13はステップS109で比較した結果、ピッチ変化量ΔPdがT2以上か否かを判断し、この条件を満たす場合(Yesの場合)はステップS110に進み、条件を満たさない場合(Noの場合)はステップS112に進む。本ステップでは、ステップS108で算出したピッチ変化量ΔPdと閾値T2とを比較している。つまり、ピッチ変化(ピッチ変化量ΔPd)が正であり、その絶対値が第2の閾値(T2)以上であることを検出している。即ち、本ステップで第2の閾値T2以上と判断されたピッチ変化量の元となる第1ピッチレートが取得された位置から、前輪101の接地位置と後輪102の接地位置との間の長さに関連する距離を車椅子100が移動した際に取得されたピッチレートが第2ピッチレートとなる。また、補正部12で算出されたピッチ変化量ΔPdが第2ピッチ変化となる。
次に、ステップS110において、段差検出部13は段差候補フラグが−1であるか否かを判断し、−1である場合(Yesの場合)はステップS111に進む、そうでない場合(Noの場合)は段差の検出ではないと判断して本フローチャートを終了する。
次に、ステップS111において、段差候補フラグが下り段差を示すものとなっていたので、段差検出部13は通過した段差は下り段差と正式に判定してステップS115に進む。即ち、第1ピッチ変化(ピッチ変化Pd)及び第2ピッチ変化(ピッチ変化量ΔPd)に基づいて段差を検出している。
一方、ステップS112においては、段差検出部13はピッチ変化量ΔPdが−T2未満か否かを判断し、この条件を満たす場合(Yesの場合)はステップS113に進み、条件を満たさない場合(Noの場合)は段差の検出ではないと判断して本フローチャートを終了する。即ち、第2ピッチ変化(ピッチ変化量ΔPd)が負であり、その絶対値が第2の閾値(T2)以上であることを検出している。
次に、ステップS113において、段差検出部13は段差候補フラグが1であるか否かを判断し、1である場合(Yesの場合)はステップS114に進む、そうでない場合(Noの場合)は段差の検出ではないと判断して本フローチャートを終了する。
次に、ステップS114において、段差候補フラグが上り段差を示すものとなっていたので、段差検出部13は通過した段差は上り段差と正式に判定してステップS115に進む。即ち、第1ピッチ変化(ピッチ変化Pd)及び第2ピッチ変化(ピッチ変化量ΔPd)に基づいて段差を検出している。
次に、ステップS115において、段差検出部13はGPS受信機2から位置(緯度、経度)を取得して、段差の位置を内部メモリ等に記録する。なお、ステップS107でGPS受信機2を利用してホイールベース長の距離を検出した場合は、その際に取得した位置を記録してもよい。即ち、段差検出部13が段差が検出された位置に関する情報を取得する位置取得手段として機能する。そして、本ステップで記録した情報は、通信機5及びネットワーク網Nを介してサーバ装置50に送信される。サーバ装置50への送信タイミングは、段差の検出時であってもよいし、一定時間間隔や走行終了時など任意に設定すればよい。
以上の説明から明らかなように、ステップS102及びステップS108が取得工程及び補正工程であり、ステップS103〜S107及びステップS109〜S114が段差検出工程となる。
次に、段差の高さを推定する方法について図16乃至図20を参照して説明する。図16のように傾斜の無い段差を通過する際、車椅子100の前輪101のみが段差を越えて、後輪102が段差を越え始めるまでの期間は、略同じピッチ角のまま進む。そのため、段差を通過するときのピッチ角を求めることで、段差の高さを求めることができる。ここで、図16に示したように、ピッチ角をPa、ホイールベース長をH、段差高さをhとすると、近似的に以下の(1)式が成り立つ。
sinPa=h/H・・・・(1)
よって、段差高さhは、以下の(2)式で求めることができる。なお、(2)式においては、Paがマイナスのときはhがマイナスとなることで上りと下りを判別することができる。
h=HsinPa・・・・(2)
ここで、段差の前後に傾斜面がある場合のピッチ角の変化について図17を参照して説明する。図17は、傾斜と段差がある場合の例とそのピッチ角の変化のグラフと、傾斜のみ(段差なし)の例とそのピッチ角の変化のグラフを示している。また、図17では、傾斜の例として(a)平坦面から上り傾斜面、(b)上り傾斜面から平坦面、(c)平坦面から下り傾斜面、(d)下り傾斜面から平坦面の4種類の例を示している。
図17に示すように、傾斜がある段差を通過する場合は、前輪101が段差を通過してから後輪102が段差を通過するまでにピッチ角の変化が生じるが、その最中のピッチ角変化の傾きは段差が無い場合の傾きと等しくなる。
そこで、図18に示すように、傾斜がある段差を通過する場合のピッチ角から傾斜のみ(段差なし)の場合のピッチ角を減算すると、段差のみのピッチ角が得られる。図18は、図17の(a)〜(d)の例について、それぞれ傾斜がある段差を通過する場合のピッチ角から傾斜のみ(段差なし)の場合のピッチ角を減算した例である。
次に、上述した方法に基づく具体的な段差高さ推定方法を図19及び図20を参照して説明する。図19(a)は、ジャイロセンサ4が検出したピッチレートの変化例を示すグラフ、図19(b)は、ピッチレートの変化を補正してピッチ変化に変換後のグラフ、図19(c)は、ピッチ角の変化を示すグラフである。本実施例においては、段差前のデータ算出は、図19の(a)や(b)に示したピッチレートやピッチ変化に基づいて段差が検出された後に実行され、その段差の前後にジャイロセンサ4から取得したピッチ角のデータに基づいて高さが推定される。
次に、演算装置1で動作する段差高さ推定方法を図20のフローチャートを参照して説明する。図20の例では、段差検出部13は、メモリ等の保持手段を内蔵し、所定期間のピッチ角のデータを保持して、段差通過の後に段差の高さの推定することとして説明するが、リアルタイムに段差の高さを検出してもよい。
まず、ステップS201において、段差検出処理を行う。段差検出処理は、例えば上述した方法により行えばよいが、他の方法であってもよい。
次に、ステップS202において、段差検出部13は、ステップS201の処理の結果、段差が検出されたか否か判断し、段差が検出された場合(Yesの場合)は、ステップS203に進み、段差が検出されない場合(Noの場合)は処理を終了する。
次に、ステップS203において、段差検出部13は、ピッチ変化を積分してピッチ角Paを算出する。ジャイロセンサ4からは走行中のピッチレートを取得し、ピッチ変化の算出も行っているので、上述した段差検出処理において算出したピッチ変化を単位距離で積分してピッチ角Paを算出する。即ち、段差検出部13がピッチ角を取得手段として機能する。なお、ピッチ角Paをピッチ変化から算出するのではなく、直接ピッチ角を検出する角度センサ等を設けてもよい。その場合は、本ステップは、ピッチ角をセンサから取得する処理となる。また、ピッチレートを時間積分してピッチ角を算出しても良い。
次に、ステップS204において、段差検出部13は、段差前0.15m〜0.1mのピッチ角Paのデータに平均化処理を施して、段差前ピッチ角Pa_beforeを算出してステップS205に進む(図19のA)。即ち、前輪101が段差に到達する直前の第1距離(段差前0.15m〜0.1m)を走行する間に取得したピッチ角の平均値を第1ピッチ角としている。なお、段差前ピッチ角Pa_beforeを算出するためのピッチ角を取得する位置や範囲(0.15m〜0.1m)は、適宜変更してもよい。
なお、前輪101や後輪102が段差に到達したかは、図5や図7に示したように、ピッチレートの変化によって検出することができる。例えば、ピッチレートに閾値を設定し、ピッチレートの絶対値が閾値以上となった場合に、前輪101または後輪102が段差に到達したと判定し、その判定後閾値未満となった場合に、前輪101または後輪102が段差を通過したと判定すればよい。
次に、ステップS205において、段差検出部13は、段差後0.1m〜0.15mのピッチ角のデータに平均化処理を施して、段差後ピッチ角Pa_afterを算出してステップS206に進む(図19のB)。即ち、後輪102が段差を通過した直後の第2距離(段差後0.1m〜0.15m)を走行する間に取得したピッチ角の平均値を第2ピッチ角としている。なお、段差後ピッチ角Pa_afterを算出するためのピッチ角を取得する位置や範囲(0.1m〜0.15m)は、適宜変更してもよい。したがって、本フローチャートの例の場合、少なくとも段差前0.15m〜段差後0.15mまでの範囲である0.3m+ホイールベース長分のピッチ角のデータがメモリ等に保持されていればよい。
次に、ステップS206において、段差検出部13は、段差前ピッチ角Pa_beforeと段差後ピッチ角Pa_afterとの平均値Pa_slopeを算出してステップS207に進む。
次に、ステップS207において、段差検出部13は、段差の開始点から終了点までの間でピッチ変化の少ない部分、即ち、前輪101が段差に乗り上げてから後輪102が段差に乗り上げる直前のピッチ角のデータに平均化処理を施して、段差と傾斜分を含んだピッチ角Pa_step_slopeを算出してステップS208に進む(図19のC)。即ち、この段差のみピッチ角Pa_stepが、前輪101が段差を通過してから後輪102が段差に到達するまでの間に取得した第3ピッチ角となり、本フローチャートでは、前輪101が段差を通過してから後輪102が段差に到達するまでの間の少なくとも一部を走行する間に取得したピッチ角の平均値としている。
次に、ステップS208において、段差と傾斜分を含んだピッチ角Pa_step_slopeから平均値Pa_slopeを減算し段差のみピッチ角Pa_stepを算出してステップS209に進む。
次に、ステップS209において、段差のみピッチ角Pa_stepを(2)式のPaに代入して段差高さhを算出する。即ち、第1ピッチ角と、第2ピッチ角と、第3ピッチ角と、前輪の接地位置と後輪の接地位置との間の長さ(ホイールベース長H)と、に基づいて段差の高さを推定(算出)している。
以上の説明から明らかなように、ステップS203が取得工程であり、ステップS204〜S209が推定工程となる。
なお、図20に示したフローチャートは、段差前ピッチ角Pa_before、段差後ピッチ角Pa_after、段差と傾斜分を含んだピッチ角Pa_step_slopeを平均化処理により求めていたが、該当区間の任意の1点のピッチ角を各ピッチ角として採用してもよい。また、図20に示したフローチャートは演算装置1で実行していていたが、ピッチ変化のデータをサーバ装置50に送信して、サーバ装置50の演算装置52で実行してもよい。
次に、図20のフローチャートで算出された段差高さhをバリアフリーマップに反映する方法(統計処理方法)を図21のフローチャートを参照して説明する。図21に示したフローチャートはサーバ装置50の演算装置52に実行される。
まず、ステップS301において、演算装置52は通信機51が受信した車椅子100のIDと段差位置Spと段差高さhと受信しステップS302に進む。車椅子100のIDは、車椅子ごとに予め付与されたIDであって、演算装置1に設定されている。また、段差位置Spは、図15のステップS115で記録された段差の位置であり、段差高さhは、図20のステップS209で算出された値である。これら値は、演算装置1から通信機5を介してサーバ装置50に送信される。
次に、ステップS302において、ステップS301で受信した車椅子100のIDから、その車椅子100の重み付け値Wを取得する。そして、演算装置52は通信機51が受信した段差位置Spにおける段差高さhをWを用いて(考慮した上で)過去のデータとの間で平均化処理を行いステップS303に進む。この平均化処理によって算出された値を平均高さh_aveとし、平均高さ情報531として記憶装置43に蓄積する。この平均高さh_aveは、複数の車椅子100で検出された段差高さhを後述する重み付け処理後の平均値である。
この重み付け値Wは、過去に送信された段差高さhの信頼度を示すものであり、記憶装置53に車椅子100のIDと紐付けされて記憶されている。この重み付け値Wは、例えば初期値を1として信頼度が上がるにしたがって数値を大きくするようにすればよい。そして、過去のデータが記憶されている記憶装置53の平均高さ情報531のデータとともに加重平均を算出する。
次に、ステップS303において、演算装置52はステップS301で受信されたIDの車椅子100に対する重み付け値Wを変更しステップS304に進む。本ステップでは、平均高さh_aveに対して通信機51が受信した段差高さhの差が大きい場合は、この車椅子100の重み付け値Wを所定量だけ下げる。また、平均高さh_aveに対して通信機51が受信した段差高さhの差が小さい場合は、この車椅子100の重み付け値Wを所定量だけ上げる。つまり、平均高さh_aveに近い段差高さhを出力する車椅子は重み付け値Wを高くすることになる。
次に、ステップS304において、ステップS302で算出した平均高さh_aveに基づいてバリアフリーマップを作成或いは更新する。本ステップでは、例えば、演算装置52のレベル判定部521が段差レベルの閾値とステップS302で算出された平均高さh_aveとを比較し、段差レベルの判定を行う。この閾値は、例えば5cm、10cm等に段差レベルに応じて予め設定されており、例えば、算出された平均高さh_aveが6.8cmであった場合は、5cm以上10cm未満の範囲であるので、段差レベル2などと判定する。
そして、演算装置52の更新部522は判定した段差レベルの結果に基づいて、記憶装置53の地図情報532に記憶されているバリア情報を作成あるいは更新する(バリアフリーマップを作成あるいは更新する)。
本実施例によれば、ピッチレート取得部11が走行面上を車椅子100の前輪101が通過した際の第1ピッチレートと、第1ピッチレートが取得された位置を車椅子100の後輪102が通過した際の第2ピッチレートと、を取得し、補正部12が、取得した第1ピッチレート及び第2ピッチレートを、車椅子100の走行速度で除算することで補正する。そして、段差検出部13が、補正部12が補正した結果である第1ピッチ変化及び第2ピッチ変化に基づいて段差を検出する。このようにすることにより、前輪101と後輪102の2つの車輪が段差を通過する際のピッチレートを速度で補正するので、速度に依存しないで段差の検出を行うことができる。よって、比較的低い段差であっても精度良く路面上の段差を検出することができる。
また、段差検出部13は、第1ピッチレートが取得された位置から前輪101の接地位置と後輪102の接地位置との間の長さに関連する距離(例えばホイールベース長H)を車椅子100が移動した際に取得されたピッチレートを第2ピッチレートとしてもよい。このようにすることにより、既知の値である車椅子100の前輪101の接地位置と後輪102の接地位置の長さに基づいて、第2ピッチレートを検出する位置を特定することができる。
また、段差検出部13は、第1ピッチ変化の絶対値が予め定めた閾値T1以上、かつ第2ピッチ変化の絶対値が予め定めた閾値T2以上である場合に、当該位置を段差として検出してもよい。このようにすることにより、一定以上の絶対値を持つピッチレートが前輪101通過時と後輪102通過時で検出された場合を段差とすることができるので、段差の検出を精度良くすることができる。
また、前輪101と後輪102は車輪径が異なっていても良く、閾値T1と閾値T2は、車輪径が大きいほど小さく設定することにより、例えば、車椅子のような前輪101の車輪径が後輪102の車輪径よりも小さい場合でも、段差の検出を精度良くすることができる。
また、段差検出部13は、第1ピッチ変化が閾値T1未満となった後のピッチ変化の平均値Pd_aveからの変化量であるピッチ変化量ΔPdと閾値T2とを比較してもよい。このようにすることにより、例えば、段差の前後に傾斜がある場合に、第2ピッチ変化の誤検出を防止することができる。
また、段差検出部13が前輪101が段差に到達する直前に算出した段差前ピッチ角Pa_beforeと、後輪102が段差を通過した直後に算出した段差後ピッチ角Pa_afterと、前輪101が段差を通過してから後輪102が段差に到達するまでの間に算出した段差と傾斜分を含んだピッチ角Pa_step_slopeと、車椅子100のホイールベース長Hと、に基づいて段差の高さを推定している。このようにすることにより、前輪101のみが段差を通過した際のピッチ角だけでなく、段差直前の段差前ピッチ角Pa_beforeと段差通過後の段差後ピッチ角Pa_afterを取得しているので、段差の前後に傾斜面があっても精度良く段差高さを推定することができる。
また、前輪101が段差に到達する直前の0.15m〜0.1mを走行する間に算出したピッチ角の平均値を段差前ピッチ角Pa_beforeとしている。このようにすることにより、段差前ピッチ角Pa_beforeが走行面上の小さな凹凸等のノイズ成分によって影響を受けにくくすることができ、精度を向上させることができる。
また、後輪102が段差を通過した直後の0.1m〜0.15mを走行する間に取得したピッチ角の平均値を段差後ピッチ角Pa_afterとしている。このようにすることにより、段差後ピッチ角Pa_afterが走行面上の小さな凹凸等のノイズ成分によって影響を受けにくくすることができ、精度を向上させることができる。
また、前輪101が段差を通過してから後輪102が段差に到達するまでの間の少なくとも一部を走行する間に取得したピッチ角の平均値を段差と傾斜分を含んだピッチ角Pa_step_slopeとしている。このようにすることにより、段差と傾斜分を含んだピッチ角Pa_step_slopeが走行面上の小さな凹凸等のノイズ成分によって影響を受けにくくすることができ、精度を向上させることができる。
また、車椅子100のピッチレートを更に取得し、段差検出部13は、取得したピッチレートの絶対値が予め定めた閾値以上となった場合に、前輪101または後輪102が段差に到達したと判定し、その後閾値未満となった場合に、前輪101または後輪102が段差を通過したと判定してもよい。このようにすることにより、段差に前輪101や後輪102といった車輪が到達すると、車体のピッチが大きく変化するため、ピッチレートが変化する。したがって、ピッチレートの変化によって、車輪が段差を越えたことを検出することができる。
また、段差を検出した場合に、メモリ等に保持されているピッチ角に基づいて段差の高さを推定してもよい。このようにすることにより、段差検出前後のピッチ角を保持しておき、段差検出後に段差の高さを推定することが可能となる。例えば、演算装置1で算出するに限らず、サーバ装置50で段差の高さを推定するようにしてもよい。
また、サーバ装置50が、複数の車椅子100で検出した段差高さhの平均値を当該位置の段差高さとしているので、段差高さの検出精度を向上させることができる。
また、サーバ装置50では、重み付け値Wを用いて車椅子100毎に重み付けを行っているので、車椅子100で検出される値の信頼性に基づいて段差高さを反映することができ、段差高さの検出精度を向上させることができる。
なお、上述した実施例では、サーバ装置50で段差レベルの判定を行っていたが、車椅子100に搭載される演算装置1で算出した段差高さhに基づいて判定を行ってもよい。そして、判定結果と段差が検出された位置の緯度、経度と車椅子100のIDとを通信機5を介してサーバ装置50に送信してもよい。
また、上述した実施例では、段差検出装置として車椅子100に搭載される演算装置1で説明したが、専用の装置でなくてもよく、例えば、GPS受信機、ジャイロセンサおよび、速度センサを搭載した(又は接続可能な)スマートフォン等の通信機能を持った端末機器であれば、上述したフローチャートをアプリ(コンピュータプログラム)とすることで、推定装置として機能させることができる。この場合は、車椅子にホルダ等を設け、そのホルダにスマートフォン等を取り付ければよい。即ち、移動体に取り付け可能な推定装置となる。
また、上述した実施例では、上り段差を通過したか、下り段差を通過したかの情報は取得できるので、その情報と車椅子100の移動軌跡等の移動の方向とによりどのような段差か(どの方向から移動すると上りあるいは下り段差となるか)を判定してもよい。
また、上述した実施例では、移動体として車椅子で説明したが、シニアカー、ベビーカー、ゴルフカート、自転車、自動車、台車、車輪を有するロボット等、走行路面上を走行するための前後輪を備えるものであればよい。
また、本発明は上記実施例に限定されるものではない。即ち、当業者は、従来公知の知見に従い、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。かかる変形によってもなお本発明の推定装置の構成を具備する限り、勿論、本発明の範疇に含まれるものである。