以下図面を参照して、本発明の好適な実施形態の一例について説明する。但し、本発明を適用可能な実施形態が以下説明する実施形態に限定されるわけではないことは勿論である。
1.原理
図1は、本実施形態における加速度センサーの説明図である。加速度センサーは、複数軸(多軸)の加速度センサーであり、予め設計された直交する3軸の軸方向それぞれの加速度を検出するように構成されている。以下、加速度センサー自身に設定されている3軸の座標系を「ローカル座標系」という。
ローカル座標系は、本実施形態では、図1に示すような右手系の3次元直交座標系として定義される。図1に向かって右方向を正とする左右方向をX軸(ロール軸)、図1に向かって手前方向を正とする前後方向をY軸(ピッチ軸)、図1に向かって下方向を正とする上下方向をZ軸(ヨー軸)とする。
本実施形態では、X軸の軸周りの回転角をロール角“φ”、Y軸の軸周りの回転角をピッチ角“θ”、Z軸の軸周りの回転角をヨー角“Ψ”と定義する。また、加速度センサーの各検出軸の検出値を“f=(fx,fy,fz)”と表記し、加速度センサーの各検出軸のバイアス値を“ba=(bax,bay,baz)”と表記する。下付きの“a”は加速度を示し、“x”,“y”,“z”はそれぞれX軸、Y軸及びZ軸を示す。また、以下の説明では、重力加速度を“g”と表記する。
また、本実施形態では、加速度センサーの出力は少なくとも温度補償されているものとして説明する。加速度センサーの検出値には、ゼロ点バイアスやスケールファクター、二次感度といった温度に依存する成分(以下、「温度依存成分」と称す。)が含まれる。これらの温度依存成分の温度特性が加速度センサーの製造段階において求められて、加速度センサーが温度補償される。
なお、温度補償は加速度センサーの内部で行ってもよいし、外部で行ってもよい。すなわち、加速度センサー内部に温度補償用の回路部を設けて加速度センサーの出力値が既に温度補償されているものとしてもよいし、加速度センサーとは別途の処理回路部が加速度センサーの出力値を温度補償(より正確には補正)することとしてもよい。
問題は、加速度センサーの温度補償を行っても、電源投入の度に生ずるターンオンバイアスや、温度依存成分以外のバイアス成分により、加速度センサーの検出値に含まれるバイアス値が完全にゼロとならず、バイアス値が残存することである。この検出値に残存する残バイアスの大きさを推定することが、本実施形態の目的の1つである。
今、加速度センサーのZ軸を鉛直方向に向けて水平な設置台に設置した場合を考える。なお、本実施形態では、加速度センサーのミスアライメント誤差は無いものと考える。また、説明の簡明化のため、最初にY軸正方向からX軸及びZ軸でなるXZ平面を見た場合を考える。
静止状態において、設置台が完全に水平であれば(θ=φ=0)、図2に示すように加速度センサーには鉛直方向の重力のみがかかる。加速度センサーは、重力以外の外力を検出するように設計されており、この場合は設置台による垂直抗力を検出する。そのため、理想的には加速度センサーのZ軸の検出値は“−g”となる(fz=−g)。しかし、Z軸のバイアス値“baz”が存在するため、実際の検出値は“fz=−g+baz”となる。また、X軸方向の加速度は理想的にはゼロであるが、X軸のバイアス値“bax”が検出値に重畳するため、X軸の検出値は“fx=bax”となる。
その一方で、設置台が僅かでも傾斜している場合は、図3のようになる。すなわち、図3に示すように、例えば設置台がピッチ方向に角度“θ”だけ傾斜していると、重力加速度のX軸方向成分及びZ軸方向成分が生ずる。そのため、垂直抗力を考えると、加速度センサーのX軸の検出値は“fx=g・sinθ+bax”となり、Z軸の検出値は“fz=−g・cosθ+baz”となる。
完全に水平な設置台を準備できる環境であれば問題ないが、少しでも設置台が傾斜していると、図3に示すように重力加速度が各検出軸の検出値に影響を及ぼす。本実施形態では、製品の出荷前に試験環境でバイアス値を推定する状況ばかりでなく、製品出荷後に実環境でバイアス値を推定する状況も想定する。実環境では、完全に水平な設置台を準備できるとは限らない。そこで、本願発明者は、ほぼ水平な設置台を準備できる環境を想定し、当該環境において加速度センサーのバイアス推定を行うことを考えた。
1−1.バイアス推定方法
上記では、X軸及びZ軸の2次元平面で考えたが、Y軸も考慮した3次元空間でも同様に考えることができる。3次元空間で考えた場合、重力加速度の各検出軸方向の成分及び各検出軸のバイアス値を考慮して、各検出軸の検出値は次式(1)で与えられる。
式(1)は行列表現であるが、行列を用いない表現に改めると、次式(2)のようになる。
式(2)からわかるように、加速度センサーの検出値“f=(fx,fy,fz)”には、重力加速度の各検出軸方向の成分と、バイアス成分との2種類の成分が含まれる。加速度センサーの検出値からこの2種類の成分を分離することは容易ではない。つまり、検出値の中に2種類の成分がそれぞれどの程度の割合で含まれているかを特定することは困難である。そこで、本実施形態では、バイアスをゼロと仮定して算出した姿勢角を用いて、加速度センサーの検出値に含まれるバイアス値を推定する。
以下の説明のために変数の定義を行う。式(2)のロール角及びピッチ角“(φ,θ)”で定められる加速度センサーの姿勢を「実姿勢」と定義し、その姿勢角を「実姿勢角」と定義する。また、式(2)で与えられる各検出軸のバイアス値“ba=(bax,bay,baz)”を「実バイアス値」と定義する。
各検出軸のバイアスをゼロと仮定すると“b
a=(b
ax,b
ay,b
az)=(0,0,0)”が成立する。この場合、加速度センサーの各検出軸の検出値“(f
x,f
y,f
z)”を用いて、仮の姿勢角“(φ,θ)”を算出することができる。このようにバイアスをゼロと仮定した姿勢角のことを「仮姿勢角」と定義し、仮姿勢角で定まる加速度センサーの姿勢を「仮姿勢」と定義する。また、実姿勢角と区別するために、仮姿勢角には上付き文字の“t”を付して“(φ
t,θ
t)”と表記する。仮姿勢角“(φ
t,θ
t)”は、次式(3)によって算出される。
上記の仮姿勢角(φt,θt)を用いると、式(2)からバイアス値を逆算することができる。このように仮姿勢角を用いて算出されるバイアス値のことを「仮バイアス値」と定義し、実バイアス値と区別するために上付き文字の“t”を付して表記する。具体的には、X軸、Y軸及びZ軸の仮バイアス値を“bt a=(bt ax,bt ay,bt az)”と表記する
。
また、仮姿勢角と実姿勢角との差を「姿勢角誤差」と称し、姿勢角の前に“δ(デルタ)”を付して表記する。具体的には、姿勢角誤差を“(δφ=φt−φ,δθ=θt−θ)”と表記する。“δφ”はロール角誤差であり、“δθ”はピッチ角誤差である。また、仮バイアス値と実バイアス値との差を「バイアス誤差」と称し、バイアス値の前に“δ”を付して表記する。具体的には、X軸、Y軸及びZ軸のバイアス誤差を“δba=(δbax,δbay,δbaz)=(bt ax−bax,bt ay−bay,bt az−baz)”と表記する。
図4は、本実施形態におけるバイアス推定方法の流れを示すフローチャートである。
先ず、加速度センサーの校正用姿勢を初期設定する(ステップA1)。具体的には、3軸の検出軸のうちの任意の一軸を鉛直方向に向けた校正用姿勢で加速度センサーを略水平な設置台に設置する。
次いで、加速度センサーの各検出軸の検出値“f=(fx,fy,fz)”を取得する(ステップA3)。そして、加速度センサーの各検出軸のバイアス値をゼロと仮定して、式(3)によって仮姿勢角“(φt,θt)”を算出する(ステップA5)。
次いで、ステップA3で取得した検出値のうちの鉛直方向に向けた検出軸の検出値と、ステップA5で算出した仮姿勢角“(φt,θt)”とを用いて、当該検出軸のバイアス値を推定する(ステップA7)。このバイアス値の推定値を「バイアス推定値」と称する。例えば、ステップA1においてZ軸を鉛直方向に向けた校正用姿勢で加速度センサーを設置したとする。この場合、Z軸の検出値“fz”と、仮姿勢角“(φt,θt)”とを用いて、式(2)の最下段の式を用いてZ軸の仮バイアス値を“bt az”を算出して、Z軸のバイアス推定値とする。
本実施形態のポイントは、仮姿勢角“(φt,θt)”を用いて、鉛直方向に向けた検出軸のバイアス値を推定することとした点にある。鉛直方向に向けた検出軸に着目したことには理由がある。仮姿勢角“(φt,θt)”は、あくまでもバイアスをゼロと仮定して求めた姿勢角であるため、姿勢角誤差“(δφ,δθ)”を含んでいる。そのため、仮姿勢角“(φt,θt)”を用いて算出されるバイアス値(仮バイアス値)にも、当然ながら誤差が含まれることになる。このように姿勢角誤差“(δφ,δθ)”がバイアス値に影響を及ぼすため、本願発明者は、姿勢角誤差“(δφ,δθ)”がバイアス値に及ぼす影響が最も小さい検出軸を選択してバイアス値を推定することが適切であると考えた。
ここで、式(2)は、Z軸を鉛直方向に向けた場合の各検出軸の検出値“(fx,fy,fz)”を示している。X軸及びY軸の検出値“(fx,fy)”の重力加速度成分には正弦である“sin”が含まれるが、Z軸の検出値“fz”には正弦である“sin”が含まれない。Z軸の検出値“fz”の重力加速度成分には余弦である“cos”のみが含まれる。本願発明者はこの点に着目した。
分かり易いようにピッチ角“θ”で考える。ピッチ角“θ”の余弦をピッチ角誤差“δθ”についてテーラー展開して1次の項まで残すと、“cos(θ+δθ)≒cosθ−sinθ・δθ”となる。ピッチ角“θ”が小さければ右辺第2項はゼロとみなせるため、“cos(θ+δθ)≒cosθ”と近似できる。ロール角“φ”についても同様に、ロール角“φ”が小さければ、“cos(φ+δφ)≒cosφ”と近似できる。
その一方で、ピッチ角“θ”の正弦をピッチ角誤差“δθ”についてテーラー展開してみると、sin(θ+δθ)≒sinθ+cosθ・δθ”となる。ピッチ角“θ”が小さければ、“sin(θ+δθ)≒sinθ+δθ”と近似できるが(cosθ≒1)、ピッチ角誤差“δθ”を無視することができない。ロール角“φ”の正弦についても同様である。
以上のことから、姿勢角誤差“(δφ,δθ)”は鉛直方向に向けた検出軸の重力加速度成分にほとんど効かないため、姿勢角誤差“(δφ,δθ)”が鉛直方向に向けた検出軸のバイアス値に及ぼす影響も実質的に無視できる。つまり、姿勢角誤差“(δφ,δθ)”がバイアス値に及ぼす影響が最も小さい検出軸は、鉛直方向に向けた検出軸である。ゆえに、本願発明者は、鉛直方向に向けた検出軸を選択してバイアス推定を行うこととした。
図4のフローチャートに戻って、鉛直方向に向けた検出軸のバイアス値を推定したならば、バイアス値の誤差分散“σ”と仮姿勢角“(φt,θt)”とを用いて、当該バイアス推定値に含まれる誤差を推定する(ステップA9)。ステップA7で求めたバイアス推定値は、あくまでも誤差を含む仮バイアス値である。そのため、バイアス推定値に含まれるバイアス推定誤差を算出することで、バイアス推定値の信頼性を判定する。バイアス推定誤差の算出方法については、詳細に後述する。
その後、加速度センサーの全ての検出軸についてステップA3〜A9の処理を行ったか否かを判定する(ステップA11)。そして、未処理の検出軸が存在する場合は(ステップA11;No)、加速度センサーの校正用姿勢を変更する(ステップA13)。具体的には、未処理の検出軸を鉛直方向に向けた校正用姿勢で加速度センサーを設置台に設置する。そして、ステップA3に戻り、未処理の検出軸についてバイアス推定及びバイアス推定誤差の算出を行う。
一方、ステップA11において全ての検出軸について処理を行ったと判定した場合は(ステップA11;Yes)、各検出軸のバイアス推定値“bt a=(bt ax,bt ay,bt az)”と、バイアス推定誤差“δba=(δbax,δbay,δbaz)”とを、加速度センサーのキャリブレーションデータとして記憶する(ステップA15)。そして、バイアス値の推定処理を終了する。
さて、バイアス推定誤差の算出は、バイアス値の誤差分散“σ”と仮姿勢角“(φt,θt)”とを用いて実現することができる。バイアス値の誤差分散“σ”とは、加速度センサーのバイアス値の誤差の広がりを意味する。本実施形態では、加速度センサーを少なくとも温度補償されたセンサーとしているため、検出値に含まれるバイアス値は温度依存成分による誤差が低減された値となる。しかし、製品間のばらつきにより、全ての加速度センサーについてバイアス値が均一とはならない。
製品間のばらつきは、加速度センサーの製造段階において、例えば試験装置を用いた試験を行うことで測定することができる。つまり、加速度センサーの製品それぞれについて温度補償を行った後、加速度センサーの検出値に残存するバイアス値を測定することで、バイアス値の誤差分布が求まる。そして、このバイアス値の誤差分布から、バイアス値の誤差の広がりを誤差分散として求める。誤差分散は、例えばバイアス値の標準偏差や分散値として求めることができる。
近年では、小型で安価な慣性センサーとして、半導体の微細加工技術を応用したMEMSセンサーが種々の民生機器に搭載されている。このMEMSセンサーを例に挙げると、温度補償された加速度センサーのバイアス値は“ミリg(gは重力加速度)=0.001・g”のオーダーの値となる。本実施形態では、MEMSによる加速度センサーを想定して、バイアス値の誤差分散を“σミリg=0.001・σ・g”と表記する。
1−2.バイアス推定誤差の算出方法
鉛直方向に向けた検出軸のバイアス推定誤差は、姿勢角誤差“(δφ=φt−φ,δθ=θt−θ)”の大きさから算出・推定することができる。ここでは、Z軸を鉛直方向に向けた校正用姿勢で加速度センサーを設置した場合を例に挙げて説明する。つまり、Z軸のバイアス推定値“bt az”に含まれるバイアス推定誤差“δbaz”を算出する場合である。
バイアス値が誤差分散以下であると仮定すると、“b
a=(b
ax,b
ay,b
az)≦0.001・σ・g”が成立する。この場合、式(2)の最上段のX軸の検出値“f
ax”に関する式から、次式(4)を導出することができる。
但し、1行目から2行目への変形において、式(2)より“f
x=g・sinθ
t”が成立することを用いた。
ここで、仮ピッチ角“θ
t”はピッチ角誤差“δθ”を用いて“θ
t=θ+δθ”と表せるため、式(4)は次式(5)のように変形することができる。
但し、2行目から3行目への変形において、“δθ”は十分小さいものとして(δθ≪1)、“cosδθ≒1”の近似を用いた。
本実施形態で想定しているのは、設置台がほぼ水平である状況であるため、ピッチ角“θ”は小さいと考えることができる。そこで、“cosθ≒1”と近似すると、次式(6)が導出される。
よって、ピッチ角誤差“δθ”は、最大で“arcsin(0.001σ)”となり、最小で“0”となることがわかる。
次に、式(6)の不等式を用いて、Z軸のバイアス推定誤差“δb
az”を算出する。式(2)の最下段のZ軸の検出値“f
z”に関する式から、Z軸のバイアス値“b
az”を次式(7)のように計算することができる。
但し、“φ=φ
t−δφ”、“θ=θ
t−δθ”である。
ここで、ロール角誤差“δφ”及びピッチ角誤差“δθ”はそれぞれ十分小さいとして(δφ,δθ≪1)、“δφ≒δθ”、“cosδθ≒1”と近似すると、式(7)から次式(8)が導出される。
但し、2行目から3行目への変形において、“sin
2δθ≒0”と近似した。
式(2)より“f
z+g・cosφ
t・cosθ
t=b
t az”が成立するので、式(8)から次式(9)を導出することができる。
但し、“δb
az=b
t az−b
az”である。
ここで、式(6)の不等式を用いると、式(9)から最終的に次式(10)を導出することができる。
従って、Z軸のバイアス推定誤差|δb
az|は、最大で“0.001・σ・g”であり、最小で“0”である。
図5は、式(10)の不等式を示すグラフである。図5において、横軸は“φt+θt”、縦軸はZ軸のバイアス推定誤差|δbaz|を示している。式(10)から、Z軸のバイアス推定誤差|δbaz|は、仮姿勢角“(φt,θt)”の大きさに依存することがわかる。
図6に示すように、設置台が完全に水平であれば“φt+θt=0”となるため、Z軸のバイアス推定誤差|δbaz|はゼロとなる。バイアス推定誤差|δbaz|がゼロであるということは、Z軸のバイアス推定値“bt az”が実バイアス値“baz”と等しいことを意味する(bt az=baz)。
それに対して、図7に示すように設置台が傾斜していると“|φt+θt|>0”となり、傾斜が大きいほどZ軸のバイアス推定誤差|δbaz|は“0.001・σ・g”に近づく。これは、Z軸のバイアス推定値“bt az”に含まれる誤差が大きく、バイアス推定値“bt az”が実バイアス値“baz”から大きく乖離していることを意味する。
これを逆に考えると、鉛直方向に向けた検出軸のバイアス推定誤差の大きさから、加速度センサーが設置された設置台の傾斜を判定することもできる。すなわち、バイアス推定誤差が小さければ設置台は水平に近いが、バイアス推定誤差が大きければ設置台の傾斜は大きいと判断できる。つまり、バイアス推定誤差は設置台の傾斜を判断するための指標値であるとも言える。
なお、ここまで加速度センサーのZ軸を鉛直方向に向けた校正用姿勢で加速度センサーを設置した場合について説明したが、残余の検出軸についても同様である。すなわち、X軸及びY軸をそれぞれ鉛直方向に向けた校正用姿勢で加速度センサーを設置台に設置し、同様の計算を行うことで、X軸及びY軸のバイアス推定値“(bax,bay)”と、その推定誤差“(δbax,δbay)”とを算出することができる。
1−3.姿勢推定方法
加速度センサーの各検出軸のバイアス値が推定できれば、加速度センサーの姿勢を推定することができる。そこで、以下に加速度センサーの姿勢推定方法について説明する。
先ず、各検出軸のバイアス推定値を用いて、加速度センサーの各検出軸の検出値を補正する。そして、補正した検出値(補正検出値)を用いて、次式(11)に従って加速度センサーの姿勢角“(φ,θ)”を推定する。
但し、“f
x−b
ax”,“f
y−b
ay”,“f
z−b
az”は、加速度センサーの各検出軸の補正検出値である。
各検出軸のバイアス推定誤差が小さければ、当該検出軸のバイアス推定値は実バイアス値に近い値であると言える。そのため、バイアス推定値を用いて加速度センサーの検出値を補正すれば、正しい加速度を求めることができる。そして、この場合は式(11)から加速度センサーの姿勢角“(φ,θ)”が正しく求まるため、加速度センサーの現在の姿勢を正確に推定することができる。
2.実施例
次に、上記の原理に従って加速度センサーのバイアス値を推定するバイアス推定装置及び加速度センサーの姿勢を推定する姿勢推定装置の実施例について説明する。ここでは、バイアス推定装置及び姿勢推定装置を具備する電子機器としてカーナビゲーション装置を例に挙げて説明する。
2−1.システム構成
図8は、本実施例におけるナビゲーションシステム1のシステム構成を示す図である。ナビゲーションシステム1は、移動体の一種である四輪自動車(以下、単に「自動車」と称す。)に搭載されるカーナビゲーション装置2を備えて構成される。
カーナビゲーション装置2は、自動車に搭載される電子機器であり、加速度センサー71及びジャイロセンサー73を具備するセンサーユニットであるIMU(Inertial Measurement Unit)70を搭載している。IMU70は、センサーの検出軸が対応付けられたローカル座標系における加速度及び角速度を検出して出力する。カーナビゲーション装置2は、上述した原理に従って加速度センサー71のバイアス値を推定するバイアス推定装置を備えるとともに、加速度センサー71の姿勢、すなわち装置本体の姿勢を推定する姿勢推定装置を備える。
カーナビゲーション装置2は、加速度センサー71により検出されたローカル座標系の加速度を、ナビゲーションを行うための座標系であるナビゲーション座標系の加速度に変換する。ナビゲーション座標系としては、例えば北東下座標系として知られるNED(North East Down)座標系とすることができる。そして、NED座標系における加速度を積分することで自動車の速度ベクトルを求め、当該速度ベクトルを用いた慣性航法演算によって自動車の位置を算出する。そして、算出位置をプロットしたナビゲーション画面を生成して、装置本体のディスプレイ(表示部)に表示させる。
2−2.機能構成
図9は、カーナビゲーション装置2の機能構成の一例を示すブロック図である。カーナビゲーション装置2は、処理部10と、操作部20と、表示部30と、音出力部40と、通信部50と、時計部60と、IMU70と、記憶部80とを備えて構成される。
処理部10は、記憶部80に記憶されているシステムプログラム等の各種プログラムに従ってカーナビゲーション装置2の各部を統括的に制御する制御装置であり、CPU(Central Processing Unit)等のプロセッサーを有して構成される。処理部10は、IMU
70の検出結果を利用した慣性航法演算処理を行って自動車の位置(位置座標)を算出する。そして、算出位置を指し示した地図を表示部30に表示させる処理を行う。
本実施形態において、処理部10は、仮姿勢角を算出する仮姿勢角算出部として機能するとともに、加速度センサー71の検出値と仮姿勢角とを用いて加速度センサーの検出値に含まれるバイアス値を推定するバイアス推定部として機能する。また、処理部10は、バイアス推定部により推定されたバイアス値と、加速度センサー71の各軸の検出値とを用いて、加速度センサー71の姿勢、すなわち装置本体の姿勢を推定する姿勢推定部として機能する。
操作部20は、例えばタッチパネルやボタンスイッチ等により構成される入力装置であり、押下されたキーやボタンの信号を処理部10に出力する。この操作部20の操作により、目的地の入力等の各種指示入力がなされる。
表示部30は、LCD(Liquid Crystal Display)等により構成され、処理部10から入力される表示信号に基づいた各種表示を行う表示装置である。表示部30には、ナビゲーション画面等が表示される。
音出力部40は、スピーカー等により構成され、処理部10から入力される音出力信号に基づいた各種音出力を行う音出力装置である。音出力部40からは、音声ガイダンス等が音出力される。
通信部50は、カーナビゲーション装置2の管理サーバー等の外部装置と無線通信を行うための通信装置である。この機能は、例えばBluetooth(登録商標)といった公知の無線通信方式の技術を用いて実現される。
時計部60は、カーナビゲーション装置2の内部時計であり、水晶発振器等を有する発振回路を備えて構成される。時計部60の計時時刻は、処理部10に随時出力される。
IMU70は、慣性センサーを備えて構成されるセンサーユニットであり、例えば加速度センサー71とジャイロセンサー73とを備えて構成される。IMU70は、予めセンサーに対応付けられたローカル座標の直交3軸それぞれの検出軸の加速度及び各検出軸の軸回りの角速度を検出可能に構成される。なお、加速度センサー71及びジャイロセンサー73は、それぞれが独立したセンサーであってもよいし、一体型のセンサーであってもよい。
記憶部80は、ROM(Read Only Memory)やフラッシュROM、RAM(Random Access Memory)等の記憶装置によって構成され、カーナビゲーション装置2のシステムプログラムや、ナビゲーション機能等の各種機能を実現するための各種プログラム、データ等を記憶している。また、各種処理の処理中データ、処理結果などを一時的に記憶するワークエリアを有する。
2−3.データ構成
図9に示すように、記憶部80には、プログラムとして、処理部10により読み出され、メイン処理(図12参照)として実行されるメインプログラム81が記憶されている。また、メインプログラム81には、初期キャリブレーション処理(図13参照)として実行される初期キャリブレーションプログラム811と、取付時初期設定処理(図14参照)として実行される取付時初期設定プログラム813と、ナビゲーション処理として実行されるナビゲーションプログラム815とがサブルーチンとして含まれている。
メイン処理とは、処理部10が、初期キャリブレーション処理と、取付時初期設定処理とを行って、加速度センサー71のバイアス推定と、自動車に取り付けられた装置本体の姿勢推定とを行う処理である。処理部10は、バイアス推定値を用いて補正した加速度センサー71の検出値(補正検出値)と、推定した装置本体の取付姿勢とを用いて、ナビゲーション座標系における自動車の速度ベクトルを算出し、当該速度ベクトルを用いて自動車の位置を算出する。メイン処理、初期キャリブレーション処理及び取付時初期設定処理については、フローチャートを用いて詳細に後述する。
また、記憶部80には、データとして、センサー誤差分散83と、初期キャリブレーションデータ85と、取付時初期設定データ87と、ナビゲーションデータ89とが記憶される。
センサー誤差分散83は、IMU70を構成する加速度センサー71及びジャイロセンサー73の誤差分散が記憶されたデータである。センサー誤差分散83は、原理で説明した加速度センサーの誤差分散“σ”に相当し、記憶部80に予め記憶されたデータである。
初期キャリブレーションデータ85は、初期キャリブレーション処理の処理用データであり、そのデータ構成例を図10に示す。初期キャリブレーションデータ85には、バイアス推定誤差851が記憶されている。バイアス推定誤差851は、初期キャリブレーション処理において設置台の傾斜判定を行うために使用される。また、初期キャリブレーションデータ85には、校正用姿勢として鉛直方向に向けた加速度センサー71の検出軸である鉛直軸853と、当該校正用姿勢において加速度センサー71により検出された各検出軸の加速度検出値855と、当該校正用姿勢において算出された仮姿勢角857及びバイアス推定値859とが対応付けて記憶される。
取付時初期設定データ87は、取付時初期設定処理の処理用データであり、そのデータ構成例を図11に示す。取付時初期設定データ87には、加速度検出値871と、加速度補正検出値873と、推定取付姿勢875とが対応付けて記憶される。
ナビゲーションデータ89は、ナビゲーション処理の処理用データである。ナビゲーションデータ89には、ローカル座標系の加速度をナビゲーション座標系の加速度に変換するための座標変換行列が記憶される。また、座標変換行列を用いて座標変換された自動車の加速度や、加速度を積分することで得られる自動車の速度ベクトル、速度ベクトルを用いて算出される自動車の位置といったデータが記憶される。
2−4.処理の流れ
図12は、記憶部80に記憶されているメインプログラム81に従って処理部10が実行するメイン処理の流れを示すフローチャートである。
最初に、処理部10は、操作部20を介してユーザーによりなされた指示操作を判定し(ステップB1)、指示操作が初期キャリブレーション指示操作であると判定した場合は(ステップB1;初期キャリブレーション指示操作)、記憶部80に記憶されている初期キャリブレーションプログラム811に従って初期キャリブレーション処理を実行する(ステップB3)。
図13は、初期キャリブレーション処理の流れを示すフローチャートである。初期キャリブレーション処理は、加速度センサーのバイアス値を推定する処理であり、カーナビゲーション装置2を自動車に設置する前に行うべき処理である。
先ず、処理部10は、設置台への本体仮置き指示を行う(ステップC1)。具体的には、カーナビゲーション装置2本体を水平な設置台に仮置きするようにユーザーに指示する。ユーザーへの指示方法としては、例えば仮置きを指示する表示メッセージを表示部30に表示させてもよいし、仮置きを指示する音声ガイダンスを音出力部40から出力させてもよい。ユーザーは、購入したカーナビゲーション装置2を自動車に取り付ける前に、例えば水平なテーブルに装置本体を仮置きして、装置本体の初期キャリブレーションを行う。
なお、ステップC1では、加速度センサー71の一軸を鉛直方向に向けた校正用姿勢で装置本体が水平な設置台に設置されればよい。装置本体の設置向きをユーザーが知ることができるように、例えば、加速度センサー71の検出軸の方向を示す矢印を装置本体に記してもよい。また、製品説明書に装置本体の設置方法及び設置姿勢を図示するなどしてもよい。
次いで、処理部10は、設置台の傾斜を判定する傾斜判定処理を行う(ステップC3)。具体的には、原理で説明したバイアス推定誤差の算出方法に従って、鉛直方向に向けた検出軸のバイアス推定誤差851を算出し、記憶部80の初期キャリブレーションデータ85に記憶させる。そして、バイアス推定誤差851に対する閾値判定を行い、バイアス推定誤差851が所定の閾値を超えている場合には、設置台の傾斜が大きいと判定する。
傾斜判定処理において設置台の傾斜が大きいと判定した場合は(ステップC5;Yes)、処理部10は、エラー報知処理を行う(ステップC7)。原理で説明したように、加速度センサー71の設置台が傾斜していると、バイアス推定誤差が大きくなり、推定されるバイアス値の信頼性が低下する。そこで、設置台の傾斜が大きい場合はエラーとし、例えば表示メッセージ或いは音声ガイダンスによって、装置本体を他の水平な設置台に設置するように促す。その後、処理部10は、ステップC1に戻る。
一方、ステップC5において設置台の傾斜が小さいと判定した場合は(ステップC5;No)、処理部10は、バイアス推定処理を行う(ステップC9)。具体的には、原理で説明したバイアス値の推定方法に従って、加速度センサー71の各検出軸(X軸,Y軸及びZ軸)のバイアス値を推定する。この場合は、加速度センサー71の各々の検出軸について、当該検出軸を鉛直方向に向けた校正用姿勢で装置本体を設置台に設置する。そして、鉛直方向に向けた鉛直軸853について、加速度センサー71から出力される加速度検出値855を用いて仮姿勢角857を算出し、仮姿勢角857を用いてバイアス推定値859を算出する。
処理部10は、ステップC9で求めた各々の鉛直軸853のバイアス推定値859を、記憶部80の初期キャリブレーションデータ85に記憶させた後(ステップC11)、初期キャリブレーション処理を終了する。
図12のメイン処理に戻って、ステップB1において指示操作が取付時初期設定指示操作であると判定した場合は(ステップB1;取付時初期設定指示操作)、処理部10は、記憶部80の取付時初期設定プログラム813に従って取付時初期設定処理を行う(ステップB5)。
図14は、取付時初期設定処理の流れを示すフローチャートである。取付時初期設定処理は、自動車に取り付けたカーナビゲーション装置2の姿勢を推定する処理であり、カーナビゲーション装置2を自動車に取り付けた後に最初に行うべき処理である。また、取付位置や取付姿勢を変更した場合も、新たな設置場所・姿勢で取り付けた後に、最初に行うべき処理である。
先ず、処理部10は、カーナビゲーション装置2本体の自動車への取付指示を行う(ステップD1)。そして、自動車への取り付けが完了すると、加速度センサー71の各検出軸の加速度検出値871を取得して(ステップD3)、記憶部80の取付時初期設定データ87に記憶させる。
次いで、処理部10は、初期キャリブレーションデータ85に記憶された各々の鉛直軸853のバイアス推定値859を用いて、ステップD3で取得した各検出軸の加速度検出値871を補正する(ステップD5)。すなわち、各検出軸の加速度検出値871から対応する鉛直軸853のバイアス推定値859を減算して、加速度補正検出値873を求める。そして、当該加速度補正検出値873を記憶部80の取付時初期設定データ87に記憶させる。
その後、処理部10は、ステップD5で求めた加速度補正検出値873を用いて、式(11)に従って装置本体の取付姿勢(φ,θ)を推定する(ステップD7)。そして、処理部10は、推定した取付姿勢(φ,θ)を推定取付姿勢875として、記憶部80の取付時初期設定データ87に記憶させた後(ステップD9)、取付時初期設定処理を終了する。
図12のメイン処理に戻って、ステップB1において指示操作がナビゲーション指示操作であると判定した場合は(ステップB1;ナビゲーション指示操作)、処理部10は、記憶部80に記憶されているナビゲーションプログラム815に従ってナビゲーション処理を実行する(ステップB7)。
ナビゲーション処理では、処理部10は、慣性航法演算を利用した位置算出処理を行う。具体的には、取付時初期設定データ87に記憶されている推定取付姿勢875を用いて、ローカル座標系からナビゲーション座標系への座標変換行列を算出する。なお、座標変換行列の算出方法は従来公知であるため、ここでは説明を省略する。そして、バイアス補正された加速度センサー71の加速度検出値を、座標変換行列を用いてナビゲーション座標系における加速度に変換する。そして、変換した加速度を積分して自動車の速度ベクトルを求め、当該速度ベクトルを前回(最新)の自動車の位置に加算することで、自動車の位置を新たに算出・更新する。
ステップB3〜B7の何れかの処理を実行した後、処理部10は、メイン処理を終了するか否かを判定する(ステップB9)。具体的には、操作部20を介してユーザーにより本体の電源接続指示操作がなされた場合に、メイン処理を終了すると判定する。そして、まだ終了しないと判定した場合は(ステップB9;No)、処理部10は、ステップB1に戻る。また、終了すると判定した場合は(ステップB9;Yes)、メイン処理を終了する。
2−5.実験結果
本願発明者は、上述した加速度センサーのバイアス推定及び加速度センサーの検出値補正の性能を評価するための実験を行った。具体的には、本実施例で説明した慣性航法と、衛星測位システムの一種であるGPSとを利用して自動車の周回実験を行い、速度を算出する実験を行った。
図15は、自動車の周回軌跡を示す図である。図15に示すように、自動車を予め定められた周回経路に沿って1周させた。図15において、横軸は東西方向、縦軸は南北方向(単位はメートル)をそれぞれ示している。東西方向”0m”、南北方向“0m”の位置がスタート地点であり、出発地点から150m程度東方向に移動した後に、北方向に向かい、大きく時計回り方向に1周周回するような経路を辿った。ゴール地点はスタート地点と同じである。1周周回に要した時間は“600秒”であり、高度方向の変化は殆ど無い平地で実験を行った。
図16は、Z軸バイアス推定及びバイアス補正を行わない従来の手法で速度を算出した結果を示す図である。図16(A)〜図16(C)は、それぞれ速度ベクトルの南北方向、東西方向及び高度方向の各成分の時間変化を示している。GPSを利用して算出した速度を点線(GPS)で、慣性航法を利用して算出した速度を実線(INS)でそれぞれ示している。
図16(A)及び(B)の南北方向及び東西方向の速度の時間変化を見ると、GPSにより算出された速度と、慣性航法により算出された速度とには、大きな差が見られなかった。しかし、図16(C)の高度方向の速度の時間変化には大きな差が見られた。本実験では、高度方向の変化が殆ど無い平地での走行であったため、算出される速度は“0m/s”となるはずである。GPSにより算出された速度を見ると、時間が経過してもほぼ“0m/s”が維持されており、正しい結果が得られていることがわかる。
ところが、従来の慣性航法により算出された速度を見ると、高度方向の速度が時間経過に伴って“0m/s”から徐々に減少し、600秒が経過した時点で“−10m/s”にも達した。これは、加速度センサーにより検出された加速度のバイアス補正を行わなかったため、加速度を積分して速度を求める際にバイアス値による誤差も積分されてしまい、算出される速度に誤差が累積したためである。
図17は、本実施形態の手法でZ軸バイアス推定及びバイアス補正を行って速度を算出した結果を示す図である。グラフの見方は図16と同じであるが、高度方向の速度の結果を示す図17(C)の縦軸のスケールが図16(C)とは異なる。
本実施形態の慣性航法では、高度方向の速度の時間変化に、従来の手法と比べて大幅な改善が見られた。すなわち、従来の手法では時間経過に伴って高度方向の速度の誤差が累積していたが、図17(C)を見ると、時間が経過しても高度方向の速度がほぼ“0m/s”に維持されていることがわかる。これは、加速度のバイアス補正を行ったことで、加速度を積分して得られる速度に誤差が累積することが防止されたためである。これにより、本実施形態の手法の有効性が実証された。
3.作用効果
本実施形態によれば、複数軸の加速度センサーを校正用姿勢とした場合の前記複数軸の検出値を用いて、バイアスをゼロと仮定した姿勢角である仮姿勢角が算出される。そして、鉛直方向に向けた一軸の検出値と仮姿勢角とを用いて、当該一軸の検出値に含まれるバイアス値が推定される。
複数軸の加速度センサーの前記複数軸の検出値には、加速度センサーの姿勢に起因して生ずる重力加速度の当該検出軸方向の成分と、バイアス成分との2種類の成分が含まれる。これらの成分が加速度センサーの検出値にそれぞれどの程度の割合で含まれているかを特定することは困難である。そこで、本実施形態では、バイアスをゼロと仮定した姿勢角である仮姿勢角を算出し、鉛直方向に向けた検出軸の検出値と仮姿勢角とを用いて、当該検出値に含まれるバイアス値を推定することとした。これにより、重力加速度成分とバイアス成分とを分離して、バイアス値の大きさを適切に推定することができる。
しかし、上記のように推定されるバイアス推定値は、あくまでも仮姿勢角を用いて推定される仮バイアス値であるに過ぎない。そこで、バイアス値の誤差分散と仮姿勢角とを用いて、バイアス値の推定誤差を算出する。バイアス推定誤差は、加速度センサーが設置される設置台の傾斜に依存し、加速度センサーが水平に近い設置台に設置されれば、バイアス推定誤差は小さくなる。そのため、加速度センサーを水平とみなせる設置台に設置して本実施形態のバイアス推定方法を用いることで、真のバイアス値に近いバイアス推定値を求めることができる。
また、真のバイアス値に近いバイアス推定値が求まれば、当該バイアス推定値を用いて加速度センサーの検出値を正しく補正することができる。そして、補正した加速度センサーの検出値を用いて姿勢角を算出することで、加速度センサーの姿勢を正しく推定することができる。
4.変形例
以下、変形例について説明するが、上述した実施例と共通する構成については上述した実施例と同じ符号を付して、その説明を省略する。
4−1.電子機器
上述した実施例では、四輪自動車に搭載するナビゲーション装置に本発明を適用した場合を例に挙げて説明したが、本発明を適用可能な電子機器はこれに限られるわけではない。例えば、二輪自動車に搭載するナビゲーション装置に適用してもよいし、携帯型ナビゲーション装置に適用することとしてもよい。
また、加速度センサーを搭載した電子機器であれば、他の用途の電子機器についても本発明を同様に適用可能であることは勿論である。例えば、加速度センサーを搭載した携帯型電話機やパソコン、PDA(Personal Digital Assistant)といった電子機器についても、上述した実施形態と同様に、加速度センサーのバイアス推定、バイアス補正及び姿勢推定を行うことができる。
4−2.処理の主体
上述した実施例では、ナビゲーション装置の処理部が加速度センサーのバイアス推定及びバイアス補正を行うものとして説明した。つまり、加速度センサーを搭載した電子機器において、電子機器のプロセッサーがバイアス推定及びバイアス補正を行うこととした。しかし、これらの処理の主体は適宜設定変更可能である。
例えば、上述した実施例ではIMU70を処理部を含まない構成として図示・説明したが、処理部を備えたセンサーモジュールとしてIMU70を構成することも可能である。そして、加速度センサーのバイアス推定やバイアス補正をIMU70の処理部が行うこととしてもよい。この場合は、センサーモジュール自身がバイアス推定及びバイアス補正を行うことになる。
なお、センサーモジュールの処理部が、加速度センサーの姿勢推定を行うこととしてもよい。また、バイアス推定と姿勢推定とで処理の主体を変えることも可能である。例えば、バイアス推定やバイアス補正はセンサーモジュールの処理部が行い、センサーモジュールからの出力値を用いて電子機器の処理部が姿勢推定を行うこととしてもよい。
4−3.加速度センサーの温度補償
上述した実施形態において、加速度センサーは少なくとも温度補償されたセンサーであるものとして説明した。すなわち、製品の出荷段階において加速度センサーは温度補償済みであるものとして説明した。しかし、製品の出荷後に温度補償を行って加速度センサーの出力を補償することも可能である。
バイアス値の温度依存特性は、例えば次式(12)のような数学的なモデルによって近似することができる。
式(12)において、“T”は温度であり、左辺の“b
T”は温度“T”におけるバイアス値である。また、右辺の“b
0,b
1,b
2,・・・”は、それぞれ温度の0次,1次,2次,・・・に相当する温度補正係数である。
温度補正係数は、加速度センサーの製造段階において、試験装置を用いて試験を行うことで求めることができる。試験を行って求めた温度補正係数は、加速度センサーを具備するセンサーモジュールの記憶部、或いは、加速度センサーが搭載される電子機器の記憶部に記憶される。
図18は、この場合にセンサーモジュールの処理部、或いは、電子機器の処理部が実行する温度補償処理の流れを示すフローチャートである。
先ず、処理部は、記憶部から温度補正係数を読み出す(ステップE1)。そして、処理部は、現在の温度を取得する(ステップE3)。温度は、センサーモジュール或いは電子機器に温度センサーを具備させておくことで取得することができる。
次いで、処理部は、式(12)の近似モデルを用いて、ステップE3で取得した温度“T”におけるバイアス値“bT”を算出する(ステップE5)。そして、処理部は、算出したバイアス値“bT”を用いて加速度センサーの出力値を補正して検出値とする(ステップE7)。そして、処理部は、温度補償処理を終了する。
このようにして温度補償を行った後、本実施形態の手法を用いて、加速度センサーの検出値に残存するバイアス値の推定及びバイアス補正を行えばよい。
4−4.加速度センサーの誤差補償
加速度センサーの出力には、センサーモジュールに対する加速度センサーの取り付けが正確でないことに起因するミスアライメント誤差や、ミスアライメントに起因する他軸感度誤差といった誤差成分も含まれる。そのため、温度補償ばかりでなく、これらの誤差成分の補償も併せて行い、その結果として得られる加速度センサーの検出値を用いて本実施形態のバイアス推定を行うこととすればより好適である。
4−5.加速度センサーの軸数
加速度センサーの軸数を3軸として説明したが、3軸以上としてもよい。例えば、直交3軸の正負それぞれの軸方向を別々の軸とみなした6軸としてもよいし、原点のみが同一である2種類の直交3軸座標系をねじって設定して6軸とすることとしてもよい。また、直交以外の軸座標系としてもよい。何れにせよ、加速度を3次元で検出できればよく、そのためには複数軸(より正確には3軸以上)である必要がある。