傾斜角センサとジャイロセンサを備えた機器本体の姿勢を前記傾斜角センサの計測結果と前記ジャイロセンサの計測結果に基づいて推定する姿勢推定装置であって、前記傾斜角センサの計測結果に基づいて前記機器本体の姿勢角度の四元数表現である第1姿勢角度四元数αmeasuredを生成する第1姿勢角度四元数生成手段と、前記ジャイロセンサの計測結果に基づいて前記機器本体の姿勢角度の四元数表現である第2姿勢角度四元数αpredictを予測して生成する第2姿勢角度四元数生成手段と、フィルタ係数K1を生成するフィルタ係数生成手段と、下記式9により姿勢角速度バイアス四元数bnを推定する姿勢角速度バイアス四元数推定手段と、を備えた姿勢推定装置。ただし、bn1は、前回の姿勢角速度バイアス四元数である。請求項1に記載の姿勢推定装置であって、前記姿勢角速度バイアス推定手段は、前記フィルタ係数K1が負である場合は、前記フィルタ係数K1の正負を反転させた上で、前記式9により姿勢角速度バイアス四元数bnを推定する、姿勢推定装置。請求項1又は2に記載の姿勢推定装置であって、前記姿勢角速度バイアス推定手段は、前記フィルタ係数K1の絶対値が1を超える場合は、前記フィルタ係数K1の絶対値を1にした上で、前記式9により姿勢角速度バイアス四元数bnを推定する、姿勢推定装置。傾斜角センサとジャイロセンサを備えた機器本体の姿勢を前記傾斜角センサの計測結果と前記ジャイロセンサの計測結果に基づいて推定する姿勢推定方法であって、前記傾斜角センサの計測結果に基づいて前記機器本体の姿勢角度の四元数表現である第1姿勢角度四元数αmeasuredを生成する第1姿勢角度四元数生成ステップと、前記ジャイロセンサの計測結果に基づいて前記機器本体の姿勢角度の四元数表現である第2姿勢角度四元数αpredictを予測して生成する第2姿勢角度四元数生成ステップと、フィルタ係数K1を生成するフィルタ係数生成ステップと、下記式9により姿勢角速度バイアス四元数bnを推定する姿勢角速度バイアス四元数推定ステップと、を備えた姿勢推定方法。ただし、bn1は、前回の姿勢角速度バイアス四元数である。コンピュータに、請求項4に記載の姿勢推定方法を実行させるための姿勢推定プログラム。ところで、本願出願人は、移動ロボットの姿勢を推定する技術を開発しており、具体的には、移動ロボットに、姿勢角度を計測する傾斜センサ例えば3軸加速度センサと、姿勢角度の変化である姿勢角速度を計測するジャイロセンサとを設けている。そして、傾斜センサの計測結果と、ジャイロセンサの計測結果とをフィルタ処理により合成することで、移動ロボットの姿勢を精度よく推定することとしている。即ち、移動ロボットの姿勢の推定は、以下の式により行われる。以下の式1~3は、オイラー角表現による1つの軸についてのフィルタ処理を示している。αドットmeasuredは、ジャイロセンサによる姿勢角速度の計測結果である。αmeasuredは、傾斜センサによる姿勢角度の計測結果である。αpredictは、ジャイロセンサによる姿勢角速度の計測結果を用いて予測した、移動ロボットの姿勢角度の予測値である。αnは、移動ロボットの姿勢角度の予測値に、傾斜センサによる姿勢角度の計測結果を加味した、移動ロボットの姿勢角度の推定値である。bnは、ジャイロセンサの姿勢角速度バイアスの推定値である。bn1は、前回のジャイロセンサの姿勢角速度バイアスの推定値である。dtは、サンプリング周期である。K0は、カルマンフィルタ係数である。K1は、カルマンフィルタ係数である。上記式2は1つの軸についてのフィルタ処理を示しているので、3つの軸については、上記フィルタ処理を3回繰り返すことになり、計算コストが高い。これに対し、本願出願人は、四元数の概念を導入して、上記式2の計算コストを抑えることに成功している。詳しくは以下の通りである。上記式2を変形すると、下記式4となる。下記式4においてαnは、αpredictとαmeasuredという2つの角度をK0の比率で補間する角度に相当している。αをオイラー角による1つの軸の角度としてではなく四元数であるとすると、下記式4の演算は球面線形補間slerp:Sphericallinearinterpolationと同一の形として捉えることができる。ここで、q0とq1の2つの四元数の間を変数tで補間する関数slerpは理論上、下記式5によって定義される。上記式5は、q0とq1の間の弧の長さであるωを利用して下記式6で代替することができる。そして、2つの四元数の間の三角関数は下記式7で簡単に求められる。従って、下記式8のようになる。以上のように、αをオイラー角による1つの軸の姿勢角度ではなく四元数であるとして四元数特有の球面線形補間を利用することにより、上記式2を低い計算コストで実行することが可能となる。このような上記式2についての効率的な計算手法については、本願出願人が既に特許出願している。一方で、上記式3の演算については改善の余地が残されていた。詳しくは、上記式3については、上記式2と違って、四元数特有の球面線形補間を利用するかたちには持っていくことができない。従って、αmeasured等が既に四元数であった場合には、一度オイラー角表現に戻して演算を実行し、再度四元数に戻すといった計算が必要となる。そして、四元数とオイラー角の間の変換には、三角関数や逆関数といった時間がかかる関数を多用するため、結果として上記式3の演算には多くの時間を費やしていた。本願発明の目的は、姿勢角速度バイアスを推定する計算の効率を向上する技術を提供することにある。本願発明の第1の観点によれば、傾斜角センサとジャイロセンサを備えた機器本体の姿勢を前記傾斜角センサの計測結果と前記ジャイロセンサの計測結果に基づいて推定する姿勢推定装置であって、前記傾斜角センサの計測結果に基づいて前記機器本体の姿勢角度の四元数表現である第1姿勢角度四元数αmeasuredを生成する第1姿勢角度四元数生成手段と、前記ジャイロセンサの計測結果に基づいて前記機器本体の姿勢角度の四元数表現である第2姿勢角度四元数αpredictを予測して生成する第2姿勢角度四元数生成手段と、フィルタ係数K1を生成するフィルタ係数生成手段と、下記式9により姿勢角速度バイアス四元数bnを推定する姿勢角速度バイアス四元数推定手段と、を備えた姿勢推定装置が提供される。ただし、bn1は、前回の姿勢角速度バイアス四元数である。以上の構成によれば、四元数表現をオイラー角表現に変換したり、オイラー角表現を四元数表現に変換する必要がなく、四元数表現のまま前記姿勢角速度バイアス四元数bnを推定することができる。従って、前記角速度バイアス四元数bnを高い計算効率で推定することができる。好ましくは、前記姿勢角速度バイアス推定手段は、前記フィルタ係数K1が負である場合は、前記フィルタ係数K1の正負を反転させた上で、前記式9により姿勢角速度バイアス四元数bnを推定する。以上の構成によれば、四元数の累乗を問題なく演算することができる。好ましくは、前記姿勢角速度バイアス推定手段は、前記フィルタ係数K1の絶対値が1を超える場合は、前記フィルタ係数K1の絶対値を1にした上で、前記式9により姿勢角速度バイアス四元数bnを推定する。以上の構成によれば、四元数の累乗を問題なく演算することができる。本願発明の第2の観点によれば、傾斜角センサとジャイロセンサを備えた機器本体の姿勢を前記傾斜角センサの計測結果と前記ジャイロセンサの計測結果に基づいて推定する姿勢推定方法であって、前記傾斜角センサの計測結果に基づいて前記機器本体の姿勢角度の四元数表現である第1姿勢角度四元数αmeasuredを生成する第1姿勢角度四元数生成ステップと、前記ジャイロセンサの計測結果に基づいて前記機器本体の姿勢角度の四元数表現である第2姿勢角度四元数αpredictを予測して生成する第2姿勢角度四元数生成ステップと、フィルタ係数K1を生成するフィルタ係数生成ステップと、上記式9により姿勢角速度バイアス四元数bnを推定する姿勢角速度バイアス四元数推定ステップと、を備えた姿勢推定方法が提供される。ただし、bn1は、前回の姿勢角速度バイアス四元数である。また、コンピュータに、上記の姿勢推定方法を実行させるための姿勢推定プログラムが提供される。本願発明によれば、四元数表現をオイラー角表現に変換したり、オイラー角表現を四元数表現に変換する必要がなく、四元数表現のまま前記姿勢角速度バイアス四元数bnを推定することができる。従って、前記角速度バイアス四元数bnを高い計算効率で推定することができる。以下、図1~4を参照して、本願発明の実施形態を説明する。倒立二輪車1移動ロボット、機器は、倒立二輪車本体2機器本体と、図示しない台車、ハンドル、車輪等を備えて構成されている。倒立二輪車本体2は、傾斜角センサ3と、ジャイロセンサ4と、CPU5CentralProcessingUnitと、RAM6RandomAccessMemoryと、ROM7ReadOnlyMemoryと、によって構成されている。ROM7には、姿勢推定プログラムと姿勢制御プログラムが記憶されている。姿勢推定プログラムと姿勢制御プログラムは、CPU5に読み込まれ、CPU5上で実行されることで、CPU5等のハードウェアに、姿勢推定部8姿勢推定装置及び姿勢制御部9としての機能を発揮させるようになっている。姿勢推定部8は、倒立二輪車本体2の姿勢を傾斜角センサ3の計測結果とジャイロセンサ4の計測結果に基づいて推定するものである。なお、倒立二輪車本体2の姿勢は、倒立二輪車本体2の姿勢角度と倒立二輪車本体2の姿勢角速度を含む概念である。姿勢制御部9は、姿勢推定部8によって推定された倒立二輪車本体2の姿勢に基づいて、倒立二輪車本体2の姿勢を制御するものである。図2に示すように、姿勢推定部8は、第1姿勢角度四元数生成部20第1姿勢角度四元数生成手段と、第2姿勢角度四元数生成部21第2姿勢角度四元数生成手段と、フィルタ係数生成部22フィルタ係数生成手段と、姿勢角度四元数合成部23と、姿勢角度四元数正規化部24と、オイラー角変換部25と、姿勢角速度バイアス四元数推定部26姿勢角速度バイアス四元数推定手段と、姿勢角速度バイアス四元数正規化部27と、によって構成されている。図3に示すように、姿勢角速度バイアス四元数推定部26は、差分演算部40差分演算手段と、フィルタ演算部41フィルタ演算手段と、積分演算部42積分演算手段と、によって構成されている。傾斜角センサ3図1に戻り、傾斜角センサ3は、倒立二輪車本体2の現在の姿勢角度を計測するためのものである。本実施形態において傾斜角センサ3は、3軸加速度センサと地磁気センサの組み合わせによって構成されている。3軸加速度センサは、倒立二輪車本体2の姿勢角度のうちロール角度とピッチ角度を計測可能である。地磁気センサは、倒立二輪車本体2の姿勢角度のうちヨー角度を計測可能である。傾斜角センサ3は、計測により得られた姿勢角度信号を姿勢推定部8の第1姿勢角度四元数生成部20に出力する。ジャイロセンサ4ジャイロセンサ4は、倒立二輪車本体2の現在の姿勢角速度を計測するためのものである。本実施形態においてジャイロセンサ4は、MEMSジャイロによって構成されている。ジャイロセンサ4は、計測により得られた姿勢角速度信号を姿勢推定部8の第2姿勢角度四元数生成部21に出力する。第1姿勢角度四元数生成部20図2の第1姿勢角度四元数生成部20は、傾斜角センサ3の計測結果に基づいて倒立二輪車本体2の姿勢角度の四元数表現である第1姿勢角度四元数αmeasuredを生成するものである。具体的には以下の通りである。→フィルタ処理先ず、第1姿勢角度四元数生成部20は、傾斜角センサ3から受信した姿勢角度信号をフィルタ処理して、姿勢角度信号に含まれる望ましくない周波数帯域をカットする。→取り付け角度補正処理次に、第1姿勢角度四元数生成部20は、倒立二輪車本体2に対する3軸加速度センサの取り付け角度に基づいて、姿勢角度信号を補正する。これにより、姿勢角度信号から、3軸加速度センサの取り付け角度による影響がキャンセルされる。→自加速度キャンセル処理次に、第1姿勢角度四元数生成部20は、車輪の回転数を微分して得られる倒立二輪車本体2の加速度に基づいて、姿勢角度信号を補正する。これにより、姿勢角度信号から、自加速度による影響がキャンセルされる。→姿勢角度行列変換処理次に、第1姿勢角度四元数生成部20は、姿勢角度信号加速度センサベクトルにヨー角方位角を加えた回転を姿勢角度行列に変換する。→四元数変換処理次に、第1姿勢角度四元数生成部20は、姿勢角度行列を、姿勢角度の四元数表現である第1姿勢角度四元数αmeasuredに変換する。そして、第1姿勢角度四元数生成部20は、生成した第1姿勢角度四元数αmeasuredを、姿勢角度四元数合成部23と姿勢角速度バイアス四元数推定部26に出力する。第2姿勢角度四元数生成部21第2姿勢角度四元数生成部21は、ジャイロセンサ4の計測結果に基づいて倒立二輪車本体2の姿勢角度の四元数表現である第2姿勢角度四元数αpredictを予測して生成するものである。具体的には以下の通りである。→フィルタ処理先ず、第2姿勢角度四元数生成部21は、ジャイロセンサ4から受信した姿勢角速度信号をフィルタ処理して、姿勢角速度信号に含まれる望ましくない周波数帯域をカットする。→予測処理次に、第2姿勢角度四元数生成部21は、RAM6から、前回の姿勢角速度バイアスbn1を取得した上で、姿勢角速度信号αドットmeasuredから前回の姿勢角速度バイアスbn1を引き算し、これにサンプリング周期dtを掛け、前回の姿勢角度αn1に積算し、結果を四元数に変換する。これにより、第2姿勢角度四元数αpredictが求められる。なお、この予測処理は、始めから四元数で演算してもよいし、とりあえずオイラー角で演算して最後に四元数変換することとしてもよい。オイラー角で演算する場合は、下記式1による。そして、第2姿勢角度四元数生成部21は、生成した第2姿勢角度四元数αpredictを姿勢角度四元数合成部23と姿勢角速度バイアス四元数推定部26に出力する。フィルタ係数生成部22フィルタ係数生成部22は、状態フィードバックを実現する際のオブザーバの一種として、カルマンフィルタ係数K0、K1を生成する。カルマンフィルタ係数K0は姿勢角の計測ノイズをフィルタして姿勢角にフィードバックするための係数であり、カルマンフィルタ係数K1は姿勢角の計測ノイズをフィルタして姿勢角速度バイアスにフィードバックするための係数である。姿勢角度四元数合成部23姿勢角度四元数合成部23は、第1姿勢角度四元数αmeasuredと第2姿勢角度四元数αpredictをカルマンフィルタ係数K0でのフィルタ処理により合成して、倒立二輪車本体2の現在の姿勢角度αn推定値を生成する。この姿勢角度四元数合成部23による合成処理は、前述したように球面線形補間を利用することで効率良く実行できることを示した。必要であれば、オイラー角で表現した式2を参照されたい。姿勢角度四元数合成部23は、生成した倒立二輪車本体2の現在の姿勢角度αn推定値を姿勢角度四元数正規化部24に出力する。姿勢角度四元数正規化部24姿勢角度四元数正規化部24は、浮動小数点演算の誤差の蓄積を回避すべく、倒立二輪車本体2の現在の姿勢角度αnを正規化する。姿勢角度四元数正規化部24は、正規化した姿勢角度αnをオイラー角変換部25に出力する。オイラー角変換部25オイラー角変換部25は、姿勢角度αnをオイラー角表現に変換した上で姿勢制御部9に出力する。姿勢角速度バイアス四元数推定部26:図3姿勢角速度バイアス四元数推定部26は、下記式9により角速度バイアス四元数bnを推定する。具体的には以下の通りである。姿勢角速度バイアスbnは、前述したように下記式3により求められる。上記式3は、前述した式2のようには球面線形補間を利用できるかたちに変形することができない。そこで、姿勢角速度バイアス四元数推定部26は、四元数の累乗べき乗という概念を導入して、上記式3を効率的に解く。詳しく説明すると、qtは四元数qのt乗を意味するが、t0のときq01、即ち恒等四元数を示す。また、t1のときq1qとなり、実数と同等の振る舞いをする。注意すべきは、t1の場合であり、四元数は360度以上の回転を示すことができないので、tを大きくして複数回転を表すようなことはできない。tastのようなスカラーの累乗に関する代数が当てはまらないことがある。しかし、今回のようなフィルタ演算の場合は、ノイズをフィルタリングして小さくするという意味からK1の絶対値は必ず1より小さい値になる上に、第1姿勢角度四元数αmeasuredも第2姿勢角度四元数αpredictもある1つの角度を示すことから累乗の乗数が0~1の範囲で使用することができる。なお、四元数の累乗は乗数が0以上1以下の範囲で使用することが一般的である。さて、オイラー角表現での足し算は四元数表現では外積演算子は×であり、オイラー角表現での引き算は四元数表現では共役四元数演算子は-1との外積である。また、回転のスカラーの掛け算は、四元数表現での累乗に相当する。従って、上記式3は、上記式9に置き換えることができる。上記式9の意味としては、姿勢角度四元数αのノイズ成分をカルマンフィルタ係数K1でフィルタリングし、これを用いて姿勢角速度バイアス四元数bn1を回転させて修正する、ということになる。従って、図3において、差分演算部40は、第1姿勢角度四元数生成部20から取得した第1姿勢角度四元数αmeasuredと、第2姿勢角度四元数生成部21から取得した第2姿勢角度四元数αpredictと、の差分を求めて姿勢角度四元数αのノイズ成分を算出する。次に、フィルタ演算部41は、差分演算部40が算出した姿勢角度四元数αのノイズ成分をカルマンフィルタ係数K1でフィルタ処理する。このとき、カルマンフィルタ係数K1が負である場合は、フィルタ演算部41は、カルマンフィルタ係数K1の正負を反転させた上で、姿勢角度四元数αのノイズ成分をフィルタ処理する。即ち、上記式9に代えて下記式10を用いる。また、フィルタの方式としてカルマンフィルタなどの係数が変化するタイプが存在する。例えば逐次カルマンフィルタではK0及びK1の絶対値が一時的に1より大きな値になることがある。この場合、フィルタ演算部41は、カルマンフィルタ係数K1の絶対値を1にした上で、前記の式9又は10により姿勢角速度バイアス四元数bnを推定すればよい。カルマンフィルタ係数K0についても同様である。次に、積分演算部42は、フィルタ処理後の値を、前回の姿勢角速度バイアス四元数bn1に積算して、現在の姿勢角速度バイアス四元数bnを求める。積分演算部42は、求めた姿勢角速度バイアス四元数bnを姿勢角速度バイアス四元数正規化部27に出力する。姿勢角速度バイアス四元数正規化部27姿勢角速度バイアス四元数正規化部27は、浮動小数点演算の誤差の蓄積を回避すべく、姿勢角速度バイアス四元数bnを正規化する。そして、姿勢角速度バイアス四元数正規化部27は、正規化した姿勢角速度バイアス四元数bnをRAM6に保存する。次に、図4を参照して、主として姿勢推定部8の作動を説明する。傾斜角センサによる計測ステップ倒立二輪車1の電源を投入するとS300、傾斜角センサ3は、倒立二輪車本体2の現在の姿勢角度を計測して、姿勢角度信号を第1姿勢角度四元数生成部20に出力するS310。次に、ジャイロセンサ4は、倒立二輪車本体2の現在の姿勢角速度を計測して、姿勢角速度信号を第2姿勢角度四元数生成部21に出力するS320。次に、第1姿勢角度四元数生成部20は、傾斜角センサ3から受信した姿勢角度信号に基づいて倒立二輪車本体2の姿勢角度の四元数表現である第1姿勢角度四元数αmeasuredを生成するS330。次に、第2姿勢角度四元数生成部21は、ジャイロセンサ4から受信した姿勢角速度信号に基づいて倒立二輪車本体2の姿勢角度の四元数表現である第2姿勢角度四元数αpredictを予測して生成するS340。次に、フィルタ係数生成部22は、カルマンフィルタ係数K0、K1を生成するS350。なお、S310とS320の処理は可換であり、S330~S350の処理は適宜順番を入れ替えても良い。次に、姿勢角速度バイアス四元数推定部26は、下記式9により姿勢角速度バイアス四元数bnを推定するS360。そして、処理をS310に戻して次の周期に備える。以上に本願発明の好適な実施形態を説明したが、上記実施形態は、要するに、以下の特長を有している。姿勢推定部8姿勢推定装置は、傾斜角センサ3とジャイロセンサ4を備えた倒立二輪車本体2機器本体の姿勢を傾斜角センサ3の計測結果とジャイロセンサ4の計測結果に基づいて推定するものである。姿勢推定部8は、傾斜角センサ3の計測結果に基づいて倒立二輪車本体2の姿勢角度の四元数表現である第1姿勢角度四元数αmeasuredを生成する第1姿勢角度四元数生成部20第1姿勢角度四元数生成手段と、ジャイロセンサ4の計測結果に基づいて倒立二輪車本体2の姿勢角度の四元数表現である第2姿勢角度四元数αpredictを予測して生成する第2姿勢角度四元数生成部21第2姿勢角度四元数生成手段と、カルマンフィルタ係数K1フィルタ係数K1を生成するフィルタ係数生成部22フィルタ係数生成手段と、下記式9により姿勢角速度バイアス四元数bnを推定する姿勢角速度バイアス四元数推定部26姿勢角速度バイアス四元数推定手段と、を備える。ただし、bn1は、前回の姿勢角速度バイアス四元数である。以上の構成によれば、四元数表現をオイラー角表現に変換したり、オイラー角表現を四元数表現に変換する必要がなく、四元数表現のまま姿勢角速度バイアス四元数bnを推定することができる。従って、角速度バイアス四元数bnを高い計算効率で推定することができる。また、姿勢角速度バイアス姿勢推定部8は、カルマンフィルタ係数K1が負である場合は、カルマンフィルタ係数K1の正負を反転させた上で、前記式9により姿勢角速度バイアス四元数bnを推定する。以上の構成によれば、四元数の累乗を問題なく演算することができる。また、姿勢角速度バイアス姿勢推定部8は、カルマンフィルタ係数K1の絶対値が1を超える場合は、カルマンフィルタ係数K1の絶対値を1にした上で、前記式9により姿勢角速度バイアス四元数bnを推定する。以上の構成によれば、四元数の累乗を問題なく演算することができる。なお、角速度バイアスbnの推定を始めるに際し、角速度バイアスbnの初期値は回転しないことを表す恒等四元数1000とすることが考えれる。この場合、倒立二輪車1の状態温度や各角速度センサのバイアス固有値によりいずれある値に収束していくことになる。好ましくは、倒立二輪車1を起動し、姿勢推定のフィルタ演算を開始するときに姿勢角速度バイアスbnの初期値を恒等四元数から開始することに代えて、前回の起動後に収束した値を初期値として採用すれば、一層安定した姿勢角速度バイアスbnの推定を行うことができる。