JP2012132713A - State estimation device, state estimation method, and state estimation program - Google Patents

State estimation device, state estimation method, and state estimation program Download PDF

Info

Publication number
JP2012132713A
JP2012132713A JP2010283243A JP2010283243A JP2012132713A JP 2012132713 A JP2012132713 A JP 2012132713A JP 2010283243 A JP2010283243 A JP 2010283243A JP 2010283243 A JP2010283243 A JP 2010283243A JP 2012132713 A JP2012132713 A JP 2012132713A
Authority
JP
Japan
Prior art keywords
state
observation
state vector
kalman filter
estimated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010283243A
Other languages
Japanese (ja)
Inventor
Ibuki Handa
伊吹 半田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2010283243A priority Critical patent/JP2012132713A/en
Publication of JP2012132713A publication Critical patent/JP2012132713A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To converge a state vector at a high speed.SOLUTION: A state estimation device includes: non-linear Kalman filters KF1 to KF10; observation residual peak monitors PM1 to PM10 which detect the maximum value of norm of observation residual eof each filter; and an initial value generation section 130A which generates initial values INI1 to INI10 showing initial attitudes different from each other. When the initial values INI1 to INI10 are given, the non-linear Kalman filters KF1 to KF10 are operated in parallel. Then, a comparison section 110 compares the maximum values of the norms of the observation residual eand controls a selection section 120 so that output of the non-linear Kalman filter corresponding to the maximum value of the smallest norm is selected.

Description

本発明は、状態推定装置、状態推定方法および状態推定プログラムに関する。   The present invention relates to a state estimation device, a state estimation method, and a state estimation program.

物体の姿勢を正確に知るために異種の物理量を測定するセンサの出力を統合する方法として、拡張カルマンフィルタ(EKF)などの非線形カルマンフィルタを用いることが知られている。例えば,特許文献1には、3軸の角速度センサ及び3軸の加速度センサと非線形カルマンフィルタとを実装した姿勢角計測装置が開示されている。
また、3軸角速度センサと3軸加速度センサに加え、3軸地磁気センサの出力信号を拡張カルマンフィルタやアンセンテッド変換を用いたシグマポイントカルマンフィルタ(SPKF)を用いて統合して姿勢を推定する方法が非特許文献1に開示されている。
一般に、カルマンフィルタは、誤差を含む観測値を用いて、ある動的システムの状態を推定するために用いられる。例えば、3軸角速度センサ、3軸加速度センサ、及び3軸地磁気センサの出力値が誤差を含む観測値であり、推定すべき状態が姿勢である。
さらに、特許文献2には、複数のカルマンフィルタに異なる初期値を与えて並列に動作させ、発散状態を検出し、発散していないカルマンフィルタのうち、観測残差が最も少ないものを用いて状態の推定を実行する技術が開示されている。
It is known to use a nonlinear Kalman filter such as an extended Kalman filter (EKF) as a method of integrating the outputs of sensors that measure different physical quantities in order to accurately know the posture of an object. For example, Patent Document 1 discloses a posture angle measurement device in which a triaxial angular velocity sensor, a triaxial acceleration sensor, and a nonlinear Kalman filter are mounted.
In addition to the triaxial angular velocity sensor and triaxial acceleration sensor, there is no method for estimating the posture by integrating the output signals of the triaxial geomagnetic sensor using an extended Kalman filter or a sigma point Kalman filter (SPKF) using unscented transformation. It is disclosed in Patent Document 1.
In general, the Kalman filter is used to estimate the state of a certain dynamic system using observations including errors. For example, output values of a triaxial angular velocity sensor, a triaxial acceleration sensor, and a triaxial geomagnetic sensor are observation values including an error, and a state to be estimated is a posture.
Furthermore, Patent Document 2 gives different initial values to a plurality of Kalman filters, operates in parallel, detects a divergent state, and estimates a state using a non-divergent Kalman filter having the smallest observation residual. Techniques for performing are disclosed.

特開平9−5104号公報Japanese Patent Laid-Open No. 9-5104 特開平4−169814号公報JP-A-4-169814

Wolfgang Gunthner, “Enhancing Cognitive Assistance Systems with Inertial Measurement Units”, Springer, 2008Wolfgang Gunthner, “Enhancing Cognitive Assistance Systems with Inertial Measurement Units”, Springer, 2008

ところで、観測残差にはノイズが重畳しており、また、状態ベクトルが初期値から収束するまでの過程は様々な態様を取り得るので、ある時刻で選択したカルマンフィルタが、次の時刻において最も観測残差が小さくなるとは限らない。従って、従来の技術のように、観測残差が最小になるカルマンフィルタを常に選択すると、不適切なものを選択してしまう可能性があるといった問題がある。
さらに、従来の技術では、単に異なる複数の初期値を設定するだけであり、どのような初期値を採用すれば状態ベクトルを短時間で収束させることができるかについては検討されていない。
くわえて、初期値の数と並列に動作させるカルマンフィルタの数とを増加させれば、状態ベクトルを収束させる時間を短縮することができるが、処理負荷が増加してしまう。すなわち、状態ベクトルが収束までの時間と処理負荷とはトレードオフの関係にあるといった問題があった。
By the way, noise is superimposed on the observation residual, and since the process until the state vector converges from the initial value can take various forms, the Kalman filter selected at a certain time is the most observed at the next time. The residual is not necessarily small. Therefore, there is a problem that, if the Kalman filter that minimizes the observation residual is always selected as in the conventional technique, an inappropriate one may be selected.
Furthermore, in the prior art, a plurality of different initial values are simply set, and no consideration has been given as to what initial values can be used to converge the state vector in a short time.
In addition, if the number of initial values and the number of Kalman filters that are operated in parallel are increased, the time to converge the state vector can be shortened, but the processing load increases. That is, there is a problem that the time until the state vector converges and the processing load are in a trade-off relationship.

本発明は、上述した点に鑑みてなされたものであり、複数のカルマンフィルタを並列に動作させる場合に、適切にカルマンフィルタを選択すること、状態ベクトルを収束させる時間を短縮することなどを解決課題とする。   The present invention has been made in view of the above-described points, and solves the problem of appropriately selecting a Kalman filter, shortening the time to converge a state vector, and the like when operating a plurality of Kalman filters in parallel. To do.

上記課題を解決するため、本発明に係る状態推定装置は、システムを観測して観測値を各々出力する複数のセンサと、状態遷移モデルを用いて前記システムの状態を示す複数の状態変数を要素とする状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新する動作を実行する複数のカルマンフィルタと、前記状態ベクトルの初期状態として互いに異なる複数の初期値を生成し、前記複数のカルマンフィルタの各々に供給する初期値生成部と、前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差に基づいて、前記状態ベクトルが最も早く収束するカルマンフィルタを特定し、特定したカルマンフィルタの状態ベクトルを出力する出力部とを備え、前記複数のカルマンフィルタは、並列に動作して前記観測残差を同時に算出し、前記出力部は、現在時刻から所定時間だけ過去の時刻までの所定期間における前記少なくとも1つのセンサに係る観測残差の最大値を前記複数のカルマンフィルタごとに算出し、算出した複数の前記最大値のうち最も小さい前記最大値に対応するカルマンフィルタを、前記状態ベクトルが最も早く収束するカルマンフィルタとして特定する、ことを特徴とする。   In order to solve the above-described problem, a state estimation device according to the present invention includes a plurality of sensors that observe a system and output observation values, and a plurality of state variables that indicate the state of the system using a state transition model. Estimating a state vector, calculating an estimated observation value from the state vector estimated using an observation value model, calculating a difference between the estimated observation value and the observation values of the plurality of sensors as an observation residual, A plurality of Kalman filters for performing an operation of updating the state vector based on the observation residual and the estimated state vector; and a plurality of initial values different from each other as an initial state of the state vector, and the plurality of Kalman filters And an initial value generation unit supplied to each of the plurality of sensors, and an observation residual relating to at least one of the plurality of sensors included in the observation residual. An output unit that outputs the state vector of the specified Kalman filter, and the plurality of Kalman filters operate in parallel to calculate the observation residuals simultaneously, The output unit calculates, for each of the plurality of Kalman filters, a maximum value of an observation residual relating to the at least one sensor in a predetermined period from a current time to a past time by a predetermined time, and calculates the plurality of calculated maximum values. Of these, the Kalman filter corresponding to the smallest maximum value is specified as the Kalman filter in which the state vector converges most quickly.

この発明によれば、状態ベクトルの初期値を複数設定し、互いに異なる複数の初期値を並列に動作する複数のカルマンフィルタに供給する。初期値が真値から乖離していると、状態ベクトルが収束するまでに長時間を必要とする。この発明では、異なる初期値を各カルマンフィルタに供給して動作させるので、その中には短時間で状態ベクトルが収束するものがある。出力部は観測残差に基づいて状態ベクトルが最も早く収束するカルマンフィルタを特定するので、状態ベクトルを高速に収束させることが可能となる。   According to the present invention, a plurality of initial values of state vectors are set, and a plurality of different initial values are supplied to a plurality of Kalman filters operating in parallel. If the initial value deviates from the true value, it takes a long time for the state vector to converge. In the present invention, since different initial values are supplied to each Kalman filter and operated, some of them converge in a short time. Since the output unit specifies the Kalman filter that converges the state vector earliest based on the observation residual, the state vector can be converged at high speed.

また、観測残差が小さいことは、状態ベクトルの推定誤差が小さいことを意味する。しかし、瞬時的な観測残差に着目すると、ノイズなどの影響によって不適切なものを選択する可能性がある。この発明は、観測残差の瞬時値ではなく、所定期間における観測残差の最大値が小さくなるようにカルマンフィルタを採用するので、安定して状態ベクトルを高速に収束させることが可能なカルマンフィルタを選択することが可能となる。   In addition, a small observation residual means that a state vector estimation error is small. However, paying attention to the instantaneous observation residual, there is a possibility of selecting an inappropriate one due to the influence of noise or the like. Since the present invention employs a Kalman filter so that the maximum value of the observation residual in a given period is reduced rather than the instantaneous value of the observation residual, a Kalman filter that can stably converge the state vector at high speed is selected. It becomes possible to do.

上述した状態推定装置において、前記初期値生成部は、前記複数の初期値を記憶する記憶部を備え、前記記憶部から前記複数の初期値を読み出して、前記複数のカルマンフィルタの各々に供給してもよい。状態べクトルを高速に収束させるためには、真値に近い初期値を設定する必要がある。しかしながら、初期値がどのような値を取るかが全く予測できない場合もあり得る。そのような場合には、代表的な初期値を予め用意しておくことが好ましい。この発明によれば、初期値を設定する手掛かりが何もない場合にも、状態ベクトルを高速に収束させることができる。   In the state estimation device described above, the initial value generation unit includes a storage unit that stores the plurality of initial values, reads the plurality of initial values from the storage unit, and supplies the plurality of initial values to each of the plurality of Kalman filters. Also good. In order to converge the state vector at high speed, it is necessary to set an initial value close to the true value. However, there may be a case where the initial value cannot be predicted at all. In such a case, it is preferable to prepare a typical initial value in advance. According to the present invention, even when there is no clue for setting an initial value, the state vector can be converged at high speed.

より具体的には、前記システムの状態ベクトルは、物体の姿勢を示す状態変数を含み、前記複数の初期値は、前記物体の基準姿勢と、互いに等しい角度で交わる3以上の軸の各々を中心として、等しい角度だけ前記基準姿勢を回転させた複数の初期姿勢であることが好ましい。例えば、3以上の軸は、X軸、Y軸、及びZ軸である。これらの軸は互いに直交している。そして、各軸の周りに基準姿勢を90度、180度、270度、回転させて軸ごとに3つの初期姿勢を定めてもよい。このように基準姿勢と複数の初期姿勢とを定めると、初期値によって定まる姿勢を空間上で均等に分散させて配置することができる。この結果、初期状態において物体がどのような姿勢であっても、状態ベクトルを高速で収束させることが可能となる。   More specifically, the state vector of the system includes a state variable indicating the posture of the object, and the plurality of initial values are centered on each of three or more axes that intersect the reference posture of the object at an equal angle. It is preferable that the reference postures are a plurality of initial postures rotated by an equal angle. For example, the three or more axes are the X axis, the Y axis, and the Z axis. These axes are orthogonal to each other. Then, the reference posture may be rotated by 90 degrees, 180 degrees, and 270 degrees around each axis to determine three initial postures for each axis. When the reference posture and the plurality of initial postures are determined in this way, the postures determined by the initial values can be distributed evenly in the space. As a result, the state vector can be converged at high speed regardless of the posture of the object in the initial state.

また、本発明に係る状態推定装置は、システムを観測して観測値を各々出力する複数のセンサと、状態遷移モデルを用いて前記システムの状態を示す複数の状態変数を要素とする状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新する動作を実行する複数のカルマンフィルタと、前記状態ベクトルの初期状態として互いに異なる複数の初期値を生成し、前記複数のカルマンフィルタの各々に供給する初期値生成部と、前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差に基づいて、前記状態ベクトルが最も早く収束するカルマンフィルタを特定し、特定したカルマンフィルタの状態ベクトルを出力する出力部とを備え、前記複数のカルマンフィルタは、並列に動作して前記観測残差を同時に算出し、前記初期値生成部は、前記複数のセンサの一部又は全部から出力される前記観測値に基づいて、前記複数の初期値を生成することを特徴とする。   In addition, the state estimation device according to the present invention includes a plurality of sensors for observing the system and outputting observation values, and a state vector whose elements are a plurality of state variables indicating the state of the system using a state transition model. Estimating, calculating an estimated observation value from the state vector estimated using an observation value model, calculating a difference between the estimated observation value and the observation values of the plurality of sensors as an observation residual, A plurality of Kalman filters that execute an operation of updating the state vector based on the estimated state vector and a plurality of initial values different from each other as the initial state of the state vector are generated and supplied to each of the plurality of Kalman filters Based on an initial value generation unit and an observation residual relating to at least one of the plurality of sensors included in the observation residual, the state vector is generated. And an output unit that outputs a state vector of the identified Kalman filter. The plurality of Kalman filters operate in parallel to simultaneously calculate the observation residuals, and generate the initial value. The unit generates the plurality of initial values based on the observation values output from some or all of the plurality of sensors.

この発明によれば、システムを観測することによって得られた観測値を用いて複数の初期値を生成するので、複数の初期値を真値に近づけることができる。すなわち、観測値によって、初期値として取り得る範囲を限定し、限定された範囲の中で複数の初期値を配置すればよい。このため、より高速に状態ベクトルを収束させることが可能となる。あるいは、初期値とカルマンフィルタの数を減らすことができ、構成を簡素化することができる。   According to the present invention, since a plurality of initial values are generated using observation values obtained by observing the system, the plurality of initial values can be brought close to a true value. That is, the range that can be taken as the initial value is limited by the observed value, and a plurality of initial values may be arranged within the limited range. For this reason, it becomes possible to converge the state vector at a higher speed. Alternatively, the initial value and the number of Kalman filters can be reduced, and the configuration can be simplified.

ここで、前記出力部は、現在時刻から所定時間だけ過去の時刻までの所定期間における前記少なくとも1つのセンサに係る観測残差の最大値を前記複数のカルマンフィルタごとに算出し、算出した複数の前記最大値のうち最も小さい前記最大値に対応するカルマンフィルタを、前記状態ベクトルが最も早く収束するカルマンフィルタとして特定することが好ましい。この発明によれば、安定して状態ベクトルを高速に収束させることが可能なカルマンフィルタを選択することが可能となる。   Here, the output unit calculates, for each of the plurality of Kalman filters, a maximum value of an observation residual relating to the at least one sensor in a predetermined period from a current time to a past time by a predetermined time, It is preferable that the Kalman filter corresponding to the smallest maximum value among the maximum values is specified as the Kalman filter in which the state vector converges earliest. According to the present invention, it is possible to select a Kalman filter that can stably converge a state vector at high speed.

上述した状態推定装置において、前記システムの状態ベクトルは、物体の姿勢を示す状態変数を含み、前記センサは、前記物体の加速度を直交する3軸で検出する加速度センサを備え、前記初期値生成部は、前記加速度センサの前記観測値に基づいて、前記物体の水平面に対する傾きと一致し、水平面に対して垂直な軸を中心として等しい角度だけ前記物体を回転した複数の姿勢を各々示すように前記複数の初期値を生成することが好ましい。物体を固定しても重力加速度が作用するので、3軸の加速センサの出力から重力加速度が物体に対してどの向きに働いているかを特定できる。その向きから、物体の水平面に対する傾きが特定できる。但し、物体が東西南北のどの向きを向いているかは特定することができない。そこで、水平面に対する傾きを保ち、水平面に対して垂直な軸を中心として等しい角度だけ回転した複数の姿勢を初期姿勢とする。これによって、状態ベクトルを高速に収束させることが可能となる。   In the state estimation apparatus described above, the state vector of the system includes a state variable indicating the posture of the object, and the sensor includes an acceleration sensor that detects acceleration of the object in three orthogonal axes, and the initial value generation unit Is based on the observation value of the acceleration sensor, and coincides with the inclination of the object with respect to the horizontal plane, and indicates each of a plurality of postures in which the object is rotated by an equal angle around an axis perpendicular to the horizontal plane. It is preferable to generate a plurality of initial values. Since the gravitational acceleration acts even if the object is fixed, it is possible to specify the direction in which the gravitational acceleration works with respect to the object from the output of the three-axis acceleration sensor. From the orientation, the inclination of the object with respect to the horizontal plane can be specified. However, it cannot be specified in which direction the object is facing. Therefore, a plurality of postures rotated by an equal angle around an axis perpendicular to the horizontal plane while maintaining an inclination with respect to the horizontal plane are set as initial postures. As a result, the state vector can be converged at high speed.

また、上述した状態推定装置の具体的な態様として、前記複数のセンサは、前記システムを直交する3軸で観測する所定のセンサを含み、前記観測残差は、前記所定のセンサの観測値に対応する特定要素を含む複数の要素からなり、前記出力部は、前記所定期間における前記観測残差の前記特定要素の最大値を前記複数のカルマンフィルタごとに算出し、算出した複数の前記最大値のうち最も小さい前記最大値に対応するカルマンフィルタを、前記状態ベクトルが最も早く収束するカルマンフィルタとして特定することが好ましい。
この発明によれば、観測残差の一部に着目してカルマンフィルタを選択することができるので、処理を簡素化することができる。
Further, as a specific aspect of the state estimation device described above, the plurality of sensors include a predetermined sensor that observes the system in three orthogonal axes, and the observation residual is an observation value of the predetermined sensor. The output unit includes a plurality of elements including a corresponding specific element, and the output unit calculates a maximum value of the specific element of the observation residual in the predetermined period for each of the plurality of Kalman filters, It is preferable that the Kalman filter corresponding to the smallest maximum value is specified as the Kalman filter in which the state vector converges earliest.
According to the present invention, since the Kalman filter can be selected by paying attention to a part of the observation residual, the processing can be simplified.

また、本発明は、方法の発明として捉えることができる。この方法は、システムを観測する複数のセンサから出力される観測値に基づいて、前記システムの状態を推定する状態推定方法であって、前記システムの状態を示す複数の状態変数を要素とする状態ベクトルの初期状態として互いに異なる複数の初期値を生成し、状態遷移モデルを用いて前記状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新するカルマンフィルタ処理を、前記複数の初期値の各々について並列に実行し、現在時刻から所定時間だけ過去の時刻までの所定期間における前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差についての最大値を複数の前記カルマンフィルタ処理ごとに算出し、複数の前記カルマンフィルタ処理ごとに算出した最大値のうち最も小さい前記最大値に対応するカルマンフィルタ処理を、前記状態ベクトルが最も早く収束するカルマンフィルタ処理として特定し、特定したカルマンフィルタ処理の状態ベクトルを出力する、ことを特徴とする。   The present invention can also be understood as a method invention. This method is a state estimation method for estimating a state of the system based on observation values output from a plurality of sensors observing the system, and includes a state having a plurality of state variables indicating the state of the system as elements. A plurality of different initial values are generated as initial states of the vector, the state vector is estimated using a state transition model, an estimated observation value is calculated from the state vector estimated using the observation value model, and the estimated observation A difference between a value and an observation value of the plurality of sensors is calculated as an observation residual, and a Kalman filter process is performed to update the state vector based on the observation residual and the estimated state vector. Each of the plurality of sensors included in the observation residual in a predetermined period from the current time to a past time by a predetermined time. A maximum value for an observation residual relating to at least one sensor is calculated for each of the plurality of Kalman filter processes, and a Kalman filter process corresponding to the smallest maximum value among the maximum values calculated for each of the plurality of Kalman filter processes, The state vector is specified as the Kalman filter process that converges the earliest, and the specified state vector of the Kalman filter process is output.

さらに、本発明は、プログラムの発明として捉えることもできる。このプログラムは、システムを観測する複数のセンサから出力される観測値に基づいて、前記システムの状態を推定する状態推定装置に用いられる状態推定プログラムであって、前記システムの状態を示す複数の状態変数を要素とする状態ベクトルの初期状態として互いに異なる複数の初期値を生成する処理と、状態遷移モデルを用いて前記状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新するカルマンフィルタ処理を、前記複数の初期値の各々について並列に実行する処理と、現在時刻から所定時間だけ過去の時刻までの所定期間における前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差についての最大値を複数の前記カルマンフィルタ処理ごとに算出する処理と、複数の前記カルマンフィルタ処理ごとに算出した最大値のうち最も小さい前記最大値に対応するカルマンフィルタ処理を、前記状態ベクトルが最も早く収束するカルマンフィルタ処理として特定する処理と、特定したカルマンフィルタ処理の状態ベクトルを出力する処理とを、コンピュータに実行させる。   Furthermore, the present invention can also be understood as a program invention. This program is a state estimation program used in a state estimation device that estimates the state of the system based on observation values output from a plurality of sensors that observe the system, and a plurality of states indicating the state of the system A process for generating a plurality of initial values different from each other as an initial state of a state vector having a variable as an element, estimating the state vector using a state transition model, and estimating observation from the state vector estimated using an observation value model Kalman filter processing for calculating a value, calculating a difference between the estimated observation value and the observation values of the plurality of sensors as an observation residual, and updating the state vector based on the observation residual and the estimated state vector Processing in parallel for each of the plurality of initial values and a predetermined period from the current time to a past time by a predetermined time And calculating a maximum value for an observation residual relating to at least one of the plurality of sensors included in the observation residual in each of the plurality of Kalman filter processes, and calculating each of the plurality of Kalman filter processes. Causes a computer to execute a process for identifying a Kalman filter process corresponding to the smallest maximum value among the maximum values as a Kalman filter process in which the state vector converges earliest and a process for outputting the identified state vector of the Kalman filter process .

また、本発明に係る状態推定方法は、システムを観測する複数のセンサから出力される観測値に基づいて、前記システムの状態を推定する方法であって、前記複数のセンサの一部又は全部から出力される前記観測値に基づいて、前記システムの状態を示す複数の状態変数を要素とする状態ベクトルの初期状態として互いに異なる複数の初期値を生成し、状態遷移モデルを用いて前記状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新するカルマンフィルタ処理を、前記複数の初期値の各々について並列に実行し、前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差についての最大値を複数の前記カルマンフィルタ処理ごとに算出し、複数の前記カルマンフィルタ処理ごとに算出した最大値のうち最も小さい前記最大値に対応するカルマンフィルタ処理を、前記状態ベクトルが最も早く収束するカルマンフィルタ処理として特定し、特定したカルマンフィルタ処理の状態ベクトルを出力する、ことを特徴とする。   Further, the state estimation method according to the present invention is a method for estimating the state of the system based on observation values output from a plurality of sensors observing the system, from a part or all of the plurality of sensors. Based on the output observation value, a plurality of different initial values are generated as initial states of a state vector having a plurality of state variables indicating the state of the system, and the state vector is generated using a state transition model. Estimating, calculating an estimated observation value from the state vector estimated using an observation value model, calculating a difference between the estimated observation value and the observation values of the plurality of sensors as an observation residual, A Kalman filter process for updating the state vector based on the estimated state vector is executed in parallel for each of the plurality of initial values, and is included in the observation residual A maximum value for an observation residual relating to at least one of the plurality of sensors is calculated for each of the plurality of Kalman filter processes, and the smallest maximum value among the maximum values calculated for each of the plurality of Kalman filter processes The Kalman filter process corresponding to is specified as the Kalman filter process in which the state vector converges most quickly, and the specified state vector of the Kalman filter process is output.

また、本発明に係る状態推定プログラムは、システムを観測する複数のセンサから出力される観測値に基づいて、前記システムの状態を推定する状態推定装置に用いられるものであって、前記複数のセンサの一部又は全部から出力される前記観測値に基づいて、前記システムの状態を示す複数の状態変数を要素とする状態ベクトルの初期状態として互いに異なる複数の初期値を生成する処理と、状態遷移モデルを用いて前記状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新するカルマンフィルタ処理を、前記複数の初期値の各々について並列に実行する処理と、前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差についての最大値を複数の前記カルマンフィルタ処理ごとに算出する処理と、複数の前記カルマンフィルタ処理ごとに算出した最大値のうち最も小さい前記最大値に対応するカルマンフィルタ処理を、前記状態ベクトルが最も早く収束するカルマンフィルタ処理として特定する処理と、特定したカルマンフィルタ処理の状態ベクトルを出力する処理とを、コンピュータに実行させる。   Further, a state estimation program according to the present invention is used for a state estimation device for estimating a state of the system based on observation values output from a plurality of sensors observing the system, and the plurality of sensors Processing for generating a plurality of initial values different from each other as an initial state of a state vector having a plurality of state variables indicating the state of the system based on the observation values output from a part or all of the state, and state transition The state vector is estimated using a model, an estimated observation value is calculated from the state vector estimated using an observation value model, and a difference between the estimated observation value and the observation values of the plurality of sensors is used as an observation residual. Kalman filter processing for calculating and updating the state vector based on the observed residual and the estimated state vector is performed on each of the plurality of initial values. And processing executed in parallel, processing for calculating a maximum value for an observation residual relating to at least one of the plurality of sensors included in the observation residual for each of the plurality of Kalman filter processing, A process for specifying a Kalman filter process corresponding to the smallest maximum value among the maximum values calculated for each Kalman filter process as a Kalman filter process in which the state vector converges earliest, and a process for outputting the specified state vector of the Kalman filter process Are executed by a computer.

なお、上述したプログラムは、装置のメモリに予め記憶されてもよいし、あるいは、インターネットなどの通信網を介してダウンロードすることによって更新されてもよい。   Note that the above-described program may be stored in advance in the memory of the apparatus, or may be updated by downloading via a communication network such as the Internet.

第1実施形態に係る携帯電話機の構成を示すブロック図である。It is a block diagram which shows the structure of the mobile telephone which concerns on 1st Embodiment. 携帯電話機の外観を示す斜視図である。It is a perspective view which shows the external appearance of a mobile telephone. 姿勢推定プログラムを実行することによって実現される姿勢推定装置の機能ブロック図である。It is a functional block diagram of the attitude | position estimation apparatus implement | achieved by running an attitude | position estimation program. 初期姿勢とクォータニオンの関係を示す説明図である。It is explanatory drawing which shows the relationship between an initial attitude | position and a quaternion. 初期姿勢とクォータニオンの関係を示す説明図である。It is explanatory drawing which shows the relationship between an initial attitude | position and a quaternion. 初期姿勢とクォータニオンの関係を示す説明図である。It is explanatory drawing which shows the relationship between an initial attitude | position and a quaternion. 非線形カルマンフィルタの機能ブロック図である。It is a functional block diagram of a nonlinear Kalman filter. 第2実施形態に係る姿勢推定装置の機能ブロック図である。It is a functional block diagram of the attitude | position estimation apparatus which concerns on 2nd Embodiment. 重力加速度ベクトルを説明するための説明図である。It is explanatory drawing for demonstrating a gravity acceleration vector.

本発明の実施の形態について図面を参照して説明する。
<1.第1実施形態>
図1は、本発明の第1実施形態に係る携帯電話機のブロック図であり、図2は携帯電話機の外観を示す斜視図である。携帯電話機1は、携帯電話機1の姿勢を変えることにより変化する画面の向く方向に応じて地図などの画像を回転させることによって、画像によって表されている方位を現実空間の方位に追従させる機能を備える。この機能は、各種センサの出力に基づいて携帯電話機1の姿勢をカルマンフィルタを用いた演算により算出することによって実現される。
Embodiments of the present invention will be described with reference to the drawings.
<1. First Embodiment>
FIG. 1 is a block diagram of the mobile phone according to the first embodiment of the present invention, and FIG. 2 is a perspective view showing the appearance of the mobile phone. The mobile phone 1 has a function of causing the azimuth represented by the image to follow the azimuth of the real space by rotating an image such as a map according to the direction of the screen that changes by changing the orientation of the mobile phone 1. Prepare. This function is realized by calculating the attitude of the mobile phone 1 by calculation using a Kalman filter based on the outputs of various sensors.

携帯電話機1は、各種の構成要素とバスを介して接続され装置全体を制御するCPU10、CPU10の作業領域として機能するRAM20、各種のプログラムやデータを記憶したROM30、通信を実行する通信部40、画像を表示する表示部50、及びGPS部60を備える。GPS部60は、GPS衛星からの信号を受信して携帯電話機1の位置情報(緯度、経度)を生成するものである。
地磁気を検出して地磁気データを出力する地磁気検出部70、加速度を検出して加速度データを出力する加速度検出部80、角速度を検出して角速度データを出力する角速度検出部90を備える。
The mobile phone 1 includes a CPU 10 that is connected to various components via a bus and controls the entire apparatus, a RAM 20 that functions as a work area of the CPU 10, a ROM 30 that stores various programs and data, a communication unit 40 that performs communication, The display part 50 which displays an image, and the GPS part 60 are provided. The GPS unit 60 receives a signal from a GPS satellite and generates position information (latitude, longitude) of the mobile phone 1.
A geomagnetism detection unit 70 that detects geomagnetism and outputs geomagnetic data, an acceleration detection unit 80 that detects acceleration and outputs acceleration data, and an angular velocity detection unit 90 that detects angular velocity and outputs angular velocity data are provided.

地磁気検出部70は、X軸地磁気センサ71、Y軸地磁気センサ72、及びZ軸地磁気センサ73を備える。各センサは、MI素子(磁気インピーダンス素子)、MR素子(磁気抵抗効果素子)などを用いて構成することができる。地磁気センサI/F74は、各センサからの出力信号をAD変換して地磁気データを出力する。この地磁気データは、x軸、y軸およびz軸の3成分によって磁極北に向かう方向を持つベクトルを示す。なお、地磁気検出部70は、携帯電話機1に設けられるので、携帯電話機1の内部の部品(スピーカなど)が出す磁気と、携帯電話機1の外部物が出す磁気と、実際の地磁気とが合成された磁界を検出する。しかしながら、後述する姿勢推定プログラムで想定している状態遷移モデルでは、外部物が出す磁気は無視できる程小さいものとする。   The geomagnetism detection unit 70 includes an X-axis geomagnetic sensor 71, a Y-axis geomagnetic sensor 72, and a Z-axis geomagnetic sensor 73. Each sensor can be configured using an MI element (magnetoimpedance element), an MR element (magnetoresistance effect element), or the like. The geomagnetic sensor I / F 74 performs AD conversion on the output signal from each sensor and outputs geomagnetic data. This geomagnetic data indicates a vector having a direction toward the north of the magnetic pole by three components of the x-axis, y-axis, and z-axis. In addition, since the geomagnetism detection unit 70 is provided in the mobile phone 1, the magnetism generated by components (such as a speaker) inside the mobile phone 1, the magnetism generated by an external object of the mobile phone 1, and the actual geomagnetism are combined. Detects a magnetic field. However, in the state transition model assumed in the posture estimation program described later, the magnetism generated by an external object is assumed to be negligibly small.

加速度検出部80は、X軸加速度センサ81、Y軸加速度センサ82、及びZ軸加速度センサ83を備える。各センサは、ピエゾ抵抗型、静電容量型、熱検知型などどのような検知方式であってもよい。加速度センサI/F84は、各センサからの出力信号をAD変換して加速度データを出力する。この加速度データは、加速度検出部80と一体となって運動する物体固定の系における慣性力と重力との合力をx軸、y軸及びz軸の3成分を有するベクトルを示す。したがって、携帯電話機1が静止状態または等速直線運動状態にあれば、加速度データは画面に対して固定されたxyz座標空間において重力加速度の大きさと方向とを示すベクトルデータである。   The acceleration detection unit 80 includes an X-axis acceleration sensor 81, a Y-axis acceleration sensor 82, and a Z-axis acceleration sensor 83. Each sensor may be of any detection method such as a piezoresistive type, a capacitance type, or a heat detection type. The acceleration sensor I / F 84 AD-converts output signals from each sensor and outputs acceleration data. This acceleration data indicates a vector having three components of an x-axis, a y-axis, and a z-axis, which is a resultant force of inertial force and gravity in an object-fixed system that moves integrally with the acceleration detector 80. Therefore, if the mobile phone 1 is in a stationary state or a constant velocity linear motion state, the acceleration data is vector data indicating the magnitude and direction of gravitational acceleration in an xyz coordinate space fixed with respect to the screen.

角速度検出部90は、X軸角速度センサ91、Y軸角速度センサ92、及びZ軸角速度センサ93を備える。角速度センサI/F94は、各センサからの出力信号をAD変換して角速度データを出力する。角速度データは、各軸の回りの角速度を示す。   The angular velocity detection unit 90 includes an X-axis angular velocity sensor 91, a Y-axis angular velocity sensor 92, and a Z-axis angular velocity sensor 93. The angular velocity sensor I / F 94 performs AD conversion on the output signal from each sensor and outputs angular velocity data. The angular velocity data indicates the angular velocity around each axis.

CPU10は、ROM30に格納されている姿勢推定プログラム(状態推定プログラム)を実行することによって、携帯電話機1の姿勢を特定する。この姿勢推定プログラムでは並列化された非線形カルマンフィルタの演算を実行している。本実施形態における非線形カルマンフィルタでは、姿勢を表すクォータニオンq、地磁気の強さr、地磁気の伏角θ、角速度ω、角速度センサのオフセット推定値g、地磁気センサのオフセット推定値mを状態変数とし、これらを推定の対象とする。時刻kにおいて状態変数を要素とする状態ベクトルxは、以下に示す式(1)で与えられる。

Figure 2012132713
The CPU 10 specifies the posture of the mobile phone 1 by executing a posture estimation program (state estimation program) stored in the ROM 30. In this attitude estimation program, parallel nonlinear Kalman filter operations are executed. The nonlinear Kalman filter in the present embodiment, the quaternion q representing the orientation, geomagnetic strength r, geomagnetic dip theta, and the angular velocity omega, offset estimate g o of the angular velocity sensor, the offset estimate m o of the geomagnetic sensor and the state variables, These are the targets of estimation. A state vector x k having a state variable as an element at time k is given by the following equation (1).
Figure 2012132713

クォータニオンqは、物体の姿勢(回転状態)を表す数学的表現であって、4次元数で与えられる。また、状態ベクトルxの要素として、地磁気センサのオフセット推定値m及び角速度センサのオフセット推定値gを含ませたのは、地磁気データにはセンサ71〜73のオフセットが重畳し、角速度データにはセンサ91〜93のオフセットが重畳するからである。例えば、携帯電話機1には磁石を備えたスピーカが内蔵されているため、地磁気センサは磁石の磁力を常時検出してしまう。あるいは、温度変化によってもオフセットが変動する。正確に姿勢を検知するためには、オフセット推定値mにより補正された地磁気データ及びオフセット推定値gにより補正された角速度データを用いて、状態ベクトルxを算出する必要がある。なお、オフセット推定値m及びオフセット推定値gによる補正はCPU10が実行する。 The quaternion q is a mathematical expression representing the posture (rotation state) of the object, and is given as a four-dimensional number. Further, as elements of the state vector x k, was moistened with offset estimate g o of offset estimate m o and the angular velocity sensor of the geomagnetic sensor superimposes the offset of the sensor 71 to 73 in the geomagnetic data, angular velocity data This is because the offsets of the sensors 91 to 93 are superimposed on each other. For example, since the cellular phone 1 has a built-in speaker equipped with a magnet, the geomagnetic sensor always detects the magnetic force of the magnet. Alternatively, the offset varies depending on the temperature change. In order to detect the exact position, by using the angular velocity data corrected by the corrected geomagnetic data and offset estimate g o by offset estimate m o, it is necessary to calculate the state vector x k. The correction by the offset estimate m o and offset estimate g o is CPU10 executes.

次に、カルマンフィルタにおいて観測の対象となるのは、3軸の地磁気センサ71〜73の出力である観測値m、3軸の加速度センサ81〜83の出力である観測値a、及び3軸の角速度センサ91〜93の出力である観測値gである。観測値m、a、gは各々X軸、Y軸及びZ軸の3つの要素からなるベクトルである。時刻kにおけるカルマンフィルタの出力ベクトルyは式(2)で与えられる。

Figure 2012132713
Next, the observation target in the Kalman filter is the observation value m which is the output of the triaxial geomagnetic sensors 71 to 73, the observation value a which is the output of the triaxial acceleration sensors 81 to 83, and the triaxial angular velocity. This is an observation value g that is an output of the sensors 91 to 93. The observation values m, a, and g are vectors each composed of three elements, the X axis, the Y axis, and the Z axis. Output vector y k of the Kalman filter at time k is given by Equation (2).
Figure 2012132713

この携帯電話機1は、CPU10が姿勢推定プログラムを実行することによって姿勢推定装置として機能する。図3に、プログラムの実行によって得られる姿勢推定装置の機能ブロック図を示す。
姿勢推定装置は、10個の非線形カルマンフィルタKF1〜KF10及び観測残差ピークモニタPM1〜PM10、比較部110、選択部120、並びに初期値生成部130Aを備える。このうち、観測残差ピークモニタPM1〜PM10、比較部110、及び選択部120は、非線形カルマンフィルタKF1〜KF10の各々の観測残差に基づいて、状態ベクトルが最も早く収束する非線形カルマンフィルタを特定し、特定した非線形カルマンフィルタの状態ベクトルを出力する出力部として機能する。
The mobile phone 1 functions as a posture estimation device when the CPU 10 executes a posture estimation program. FIG. 3 shows a functional block diagram of the posture estimation apparatus obtained by executing the program.
The posture estimation apparatus includes ten nonlinear Kalman filters KF1 to KF10 and observation residual peak monitors PM1 to PM10, a comparison unit 110, a selection unit 120, and an initial value generation unit 130A. Among these, the observation residual peak monitors PM1 to PM10, the comparison unit 110, and the selection unit 120 identify the nonlinear Kalman filter that the state vector converges earliest based on the observation residuals of the nonlinear Kalman filters KF1 to KF10, It functions as an output unit that outputs the state vector of the specified nonlinear Kalman filter.

非線形カルマンフィルタKF1〜KF10の各々は、携帯電話機1の姿勢に関するシステムの状態遷移モデルを用いて、現在時刻のシステムの状態を示す状態変数から単位時間が経過した後の状態変数を推定し、その状態変数の推定値に基づいて観測値を推定し、推定した観測値と各種センサの観測値との差分を観測残差ek+1として算出する。非線形カルマンフィルタKF1〜KF10の構成は同じであり、与えられる初期値INI1〜INI10のみが相違する。 Each of the nonlinear Kalman filters KF1 to KF10 estimates a state variable after a unit time has elapsed from a state variable indicating the state of the system at the current time, using the state transition model of the system related to the attitude of the mobile phone 1, and the state An observed value is estimated based on the estimated value of the variable, and a difference between the estimated observed value and the observed values of various sensors is calculated as an observation residual ek + 1 . The configurations of the nonlinear Kalman filters KF1 to KF10 are the same, and only given initial values INI1 to INI10 are different.

観測残差ピークモニタPM1〜PM10は、観測残差eを監視し、現在時刻から所定時間だけ過去の所定期間における観測残差eのノルムの最大値を出力する。
比較部110は、観測残差ピークモニタPM1〜PM10の出力信号を比較し、所定期間の観測残差eのノルムの最大値のうち最小のものを特定し、観測残差eのノルムが最小となる非線形カルマンフィルタKFを特定する制御信号CTLを生成する。
Observation residual peaks monitor PM1~PM10 monitors the observation residuals e k, and outputs the maximum value of the norm of the observation residuals e k in only a predetermined past period from the current time for a predetermined time.
Comparing unit 110 compares the output signal of the observation residual peak monitor PM1~PM10, identify the smallest of the maximum value of the norm of the observation residuals e k of a predetermined time period, the norm of the observation residuals e k is A control signal CTL that specifies the minimum nonlinear Kalman filter KF is generated.

より具体的には、時刻kにおけるi番目のフィルタの観測残差eのうちの地磁気センサに対応する3成分をzi,kとする。観測残差eの最も小さい非線形カルマンフィルタが適切な姿勢を推定していると考えられるが、ある瞬間の観測残差eだけに着目すると不適切なものが採用されてしまうことがある。そこで、時刻(k-τ0)から時刻kまでの間の観測残差eのノルムの最大値を地磁気について着目し、式(3)に従って算出する。この演算は、観測残差ピークモニタPM1〜PM10で実行される。比較部110は、この指標が最小となるi番目のフィルタを選択するように制御信号CTLを生成する。

Figure 2012132713
More specifically, the three components corresponding to the geomagnetic sensor of the observation residuals e k of the i-th filter at time k z i, and k. The smallest non-linear Kalman filter observation residuals e k is considered to be estimating the appropriate orientation, but may be inappropriate when focusing only on the observation residuals e k of a certain moment from being adopted. Therefore, the norm maximum value of the observation residuals e k between the time (k-tau 0) to time k focused on geomagnetism is calculated according to equation (3). This calculation is executed by the observation residual peak monitors PM1 to PM10. The comparison unit 110 generates the control signal CTL so as to select the i-th filter that minimizes this index.
Figure 2012132713

選択部120は、制御信号CTLに従って、非線形カルマンフィルタKF1〜KF10から出力される状態ベクトルの一つを選択して出力する。この状態ベクトルは、上述した式(1)で示したように姿勢を表すクォータニオンq、地磁気の強さr、地磁気の伏角θ、角速度ω、角速度センサのオフセット推定値g、地磁気センサのオフセット推定値mを状態変数とする。 The selection unit 120 selects and outputs one of the state vectors output from the nonlinear Kalman filters KF1 to KF10 according to the control signal CTL. This state vector includes the quaternion q representing the posture, the geomagnetic strength r, the geomagnetic depression angle θ, the angular velocity ω, the angular velocity sensor offset estimated value g o , and the geomagnetic sensor offset estimation, as shown in the above-described equation (1). Let the value mo be a state variable.

初期値を適切に選ぶことが非線形カルマンフィルタを用いた姿勢推定装置では重要である。初期値生成部130Aは、地磁気の強さr及び伏角θの初期値INIを、GPS部60から供給される位置情報に基づいて生成する。これは、地球上の位置が特定できれば、その位置における地磁気の強さr及び伏角θを知ることができるからである。具体的には、ROM30に位置情報と地磁気の強さr及び伏角θとを対応づけて記憶したルックアップテーブルLUT1を格納しておき、これを参照して位置情報に対応する地磁気の強さr及び伏角θを読み出している。なお、携帯電話機1が衛星からの電波の届かない場所(例えば、地下街)にある場合には、GPS部60から位置情報が得られない。そのような場合には、携帯電話機1が使われ得る地域の典型的な値を採用すればよい。その値もルックアップテーブルLUT1に格納されている。初期値生成部130Aは、位置情報の取得が不能な場合には、典型的な値をルックアップテーブルLUT1から読み出す。例えば、日本で販売された携帯電話機1については、明石市の地磁気の強さr及び伏角θを初期INIとして用いればよい。   Appropriate selection of the initial value is important in an attitude estimation apparatus using a nonlinear Kalman filter. The initial value generation unit 130 </ b> A generates an initial value INI of the geomagnetism strength r and the dip angle θ based on the position information supplied from the GPS unit 60. This is because if the position on the earth can be specified, the strength r and the dip angle θ of the geomagnetism at that position can be known. Specifically, the ROM 30 stores a lookup table LUT1 in which the position information, the geomagnetic strength r and the dip angle θ are stored in association with each other, and the geomagnetic strength r corresponding to the position information is referenced with reference to this table. And the depression angle θ are read out. In addition, when the mobile phone 1 is in a place where radio waves from the satellite do not reach (for example, an underground mall), position information cannot be obtained from the GPS unit 60. In such a case, a typical value in a region where the mobile phone 1 can be used may be adopted. The value is also stored in the lookup table LUT1. When the position information cannot be acquired, the initial value generation unit 130A reads a typical value from the lookup table LUT1. For example, for the mobile phone 1 sold in Japan, the geomagnetic strength r and the dip angle θ of Akashi City may be used as the initial INI.

角速度ωの初期値については静止を仮定して0とすればよい。角速度センサのオフセット推定値g。は、通常、ゼロ近辺に調整されているので0とすればよいが。あるいは、最初の測定値が静止状態で得られたものであると仮定し、その値を初期値INIとして与えてもよい。   The initial value of the angular velocity ω may be set to 0 assuming rest. Offset estimate value g of the angular velocity sensor. Is usually adjusted to near zero, so it should be 0. Alternatively, assuming that the first measurement value is obtained in a stationary state, the value may be given as the initial value INI.

重要となるのは地磁気センサのオフセット推定値mと姿勢qである。地磁気センサは地磁気ベクトルの向きと大きさを知るために用いられる。しかし、携帯電話機1のスピーカなどの周辺部品が大きな磁界を発生させている。この場合には、地磁気の大きさよりはるかに大きなオフセットとなるのが通常である。従って、いかなる場合にも同じ値にすることは避け、なるべく真値に近い値を与えることが望ましい。
姿勢qに関しても、ある一つの姿勢を仮定すると最悪の場合には180度ずれることになる。そのように初期値と実際の初期姿勢とのずれが大きい場合には、状態ベクトルが正しく収束する場合であってもその速度は極めて遅く、更には状態変数が正しい値に収束しないこともある。
そこで、本実施形態においては、10個の非線形カルマンフィルタKF1〜KF10に異なる初期値INI1〜INI10を与え並列して動作させる。
What is important is the estimated offset value m 0 and the posture q of the geomagnetic sensor. The geomagnetic sensor is used to know the direction and magnitude of the geomagnetic vector. However, peripheral components such as the speaker of the mobile phone 1 generate a large magnetic field. In this case, the offset is usually much larger than the magnitude of geomagnetism. Therefore, it is desirable to avoid the same value in any case and to give a value as close to the true value as possible.
Assuming a certain posture, the posture q is shifted by 180 degrees in the worst case. When the difference between the initial value and the actual initial posture is large as described above, even when the state vector converges correctly, the speed is extremely slow, and the state variable may not converge to the correct value.
Therefore, in this embodiment, different initial values INI1 to INI10 are given to the ten nonlinear Kalman filters KF1 to KF10 to operate them in parallel.

地面に固定された座標系での地磁気ベクトルと重力ベクトルがそれぞれm、gであるとする。物体が静止していると仮定したとき,センサ固定の座標系で磁気センサと加速度センサの出力がそれぞれm、gとなる姿勢を基準姿勢とし、その基準姿勢を表すクォータニオンをq=(0,0, 0,1)と定めることとする。任意の姿勢は基準姿勢に対して単位ベクトルαの方向を回転軸として角度ψだけ回転した姿勢として表現できる。回転後の姿勢を表すクォータニオンqは以下に示す式(4)で与えられる。

Figure 2012132713
Geomagnetic vector and gravity vector in the coordinate system fixed to the ground is assumed to be m e, g e respectively. Assuming that the object is stationary, the output each m e of the magnetic sensor and the acceleration sensor in the sensor fixing of the coordinate system, a reference posture of the posture as a g e, q = (0 quaternion representing the reference attitude , 0, 0,1). An arbitrary posture can be expressed as a posture rotated by an angle ψ with the direction of the unit vector α as a rotation axis with respect to the reference posture. The quaternion q representing the posture after rotation is given by the following equation (4).
Figure 2012132713

初期姿勢を表すクォータニオンqとして以下の10通りを用意する。図4乃至図6に、理解を容易にするため、ティーポットの図形で初期姿勢を例示する。なお、携帯電話機1でも同様である。
図4に示す1)q=(0,0, 0,1)は基準姿勢(初期姿勢の一部)であり、ティーポットの注ぎ口がX軸方向に伸びている。また、2)〜4)はZ軸でティーポットを回転させたものである。2)q=(0,0, 1/21/2, 1/21/2)はZ軸上で基準姿勢を90度回転させた姿勢である。2)は式(4)に、α=(0,0, 1)及び、ψ=90を代入すれば得られる。他の姿勢3)〜10)についても同様である。3)q=(0,0, 1,0)は基準姿勢をZ軸上で180度回転させた姿勢である。4)q=(0,0,− 1/21/2, 1/21/2)はZ軸上で基準姿勢を−90度回転させた姿勢である。
また、図5に示す5)q=(0,1/21/2, 0, 1/21/2)はY軸上で基準姿勢を90度回転させた姿勢である。6)q=(0,1,0,0)は基準姿をY軸上で180度回転させた姿勢である。7)q=(0,− 1/21/2,0, 1/21/2)はY軸上で基準姿勢を−90度回転させた姿勢である。
また、図6に示す8)q=(1/21/2,0,0, 1/21/2)はX軸上で基準姿勢を90度回転させた姿勢である。9)q=(1,0,0,0)は基準姿勢をX軸上で180度回転させた姿勢である。10)q=(− 1/21/2,0,0, 1/21/2)はX軸上で基準姿勢を−90度回転させた姿勢である。
The following 10 types are prepared as quaternions q 0 representing the initial posture. In FIG. 4 to FIG. 6, the initial posture is illustrated with a teapot graphic for easy understanding. The same applies to the mobile phone 1.
4) 1) q 0 = (0, 0, 0, 1) shown in FIG. 4 is a reference posture (a part of the initial posture), and the spout of the teapot extends in the X-axis direction. In addition, 2) to 4) are obtained by rotating the teapot on the Z axis. 2) q 0 = (0, 0, 1/2 1/2 , 1/2 1/2 ) is an attitude obtained by rotating the reference attitude 90 degrees on the Z axis. 2) can be obtained by substituting α = (0, 0, 1) and ψ = 90 into equation (4). The same applies to the other postures 3) to 10). 3) q 0 = (0, 0, 1, 0) is an attitude obtained by rotating the reference attitude 180 degrees on the Z axis. 4) q 0 = (0, 0, −1/2 1/2 , 1/2 1/2 ) is an attitude obtained by rotating the reference attitude on the Z axis by −90 degrees.
Further, FIG. 5 shows 5) q 0 = (0,1 / 2 1/2, 0, 1/2 1/2) is a posture obtained by rotating the reference attitude 90 degrees on the Y axis. 6) q 0 = ( 0, 1, 0, 0 ) is a posture obtained by rotating the reference figure 180 degrees on the Y axis. 7) q 0 = (0, − 1/2 1/2 , 0, 1/2 1/2 ) is an attitude obtained by rotating the reference attitude on the Y axis by −90 degrees.
Further, 8) q 0 = (1/2 1/2 , 0,0, 1/2 1/2 ) shown in FIG. 6 is a posture obtained by rotating the reference posture by 90 degrees on the X axis. 9) q 0 = (1, 0, 0, 0 ) is a posture obtained by rotating the reference posture 180 degrees on the X axis. 10) q 0 = (− 1/2 1/2 , 0,0, 1/2 1/2 ) is an attitude obtained by rotating the reference attitude on the X axis by −90 degrees.

姿勢がqの場合、地磁気センサの出力は、B(q)m+mとなる。上述したようにmは、地面に固定された座標系での地磁気ベクトルである。一方、携帯電話機1に設けられた地磁気センサは、携帯電話機1の姿勢が変われば、XYZ軸の各々で検出される地磁気の強さも変化する。B(q)は地面に固定された座標系を姿勢qを用いて携帯電話機1の地磁気センサの座標系に変換するために用いられる行列であり、以下に示す式(5)で与えられる。

Figure 2012132713
When the posture is q, the output of the geomagnetic sensor is B (q) m e + m b . M e as described above, a geomagnetic vector in the coordinate system fixed to the ground. On the other hand, the geomagnetic sensor provided in the mobile phone 1 changes the strength of the geomagnetism detected in each of the XYZ axes when the posture of the mobile phone 1 changes. B (q) is a matrix used for converting the coordinate system fixed to the ground into the coordinate system of the geomagnetic sensor of the mobile phone 1 using the posture q, and is given by the following equation (5).
Figure 2012132713

姿勢を変更してもスピーカと地磁気センサとの相対的な位置に変化はないので、スピーカの磁石が発生する磁界は、姿勢と無関係に地磁気センサで検出される。これが、推定して求めるべき地磁気センサの真のオフセットmに相当する。
地磁気センサのオフセットmの推定値の初期値mo,kは,時刻k=0の地磁気センサの観測値mと、携帯電話機1を使用する地域の地磁気ベクトルmtypicalを用いて、以下に示す式(6)で与えられる。

Figure 2012132713
Even if the posture is changed, the relative position between the speaker and the geomagnetic sensor does not change, so the magnetic field generated by the speaker magnet is detected by the geomagnetic sensor regardless of the posture. This corresponds to a true offset m b of the geomagnetic sensor to determine estimates.
The initial value m o of the estimated value of the offset m b of the geomagnetic sensor, k is the observed value m 0 of the geomagnetic sensor at time k = 0, using a geomagnetic vector m typical areas that use the mobile phone 1, below It is given by the following expression (6).
Figure 2012132713

式(6)において、B(q)mtypicalの項は、地磁気ベクトルmtypicalを地磁気センサの座標軸に変換した地磁気成分である。地磁気センサの観測値mは地磁気成分とオフセットが加算されたものになっている。このため、観測値mから地磁気成分B(q)mtypicalを差し引いてオフセットmの推定値の初期値mo,0を算出している。なお、ROM30には、位置情報と地磁気ベクトルmtypicalとを対応づけて記憶したルックアップテーブルLUT2が記憶されている。初期値生成部130Aは、GPS部60で生成される位置情報に基づいてルックアップテーブルLUT2を参照して地磁気ベクトルmtypicalを取得し、式(6)を演算することによって、オフセットmの推定値の初期値mo,0を得る。 In Equation (6), the term B (q 0 ) m typical is a geomagnetic component obtained by converting the geomagnetic vector m typical into the coordinate axis of the geomagnetic sensor. The observed value m 0 of the geomagnetic sensor is obtained by adding a geomagnetic component and an offset. Therefore, calculates the initial value m o, 0 of the estimated value of the offset m b from the observed values m 0 by subtracting the geomagnetic component B (q 0) m typical. The ROM 30 stores a lookup table LUT2 that stores positional information and the geomagnetic vector m typical in association with each other. The initial value generation unit 130A, by which obtains geomagnetic vector m typical with reference to a lookup table LUT2 based on the position information generated by the GPS unit 60 calculates Equation (6), the estimation of the offset m b The initial value m o, 0 of the value is obtained.

このように、初期値生成部130Aは、10通りの初期姿勢を生成し、各々の初期姿勢に応じた初期値INI1〜INI10を生成し、非線形カルマンフィルタKF1〜KF10に供給する。実際の姿勢と近い初期姿勢に基づいて生成された初期値INIが供給された非線形カルマンフィルタKFは、状態ベクトルが短い時間で収束する。状態ベクトルが収束したか否かは、観測残差ek+1により知ることができる。
本実施形態では、観測残差ek+1の最大値を比較部110で比較することによって、非線形カルマンフィルタKF1〜KF10のうち、最も収束している非線形カルマンフィルタKFを選択する。この結果、短時間で正確な姿勢を算出することが可能となる。
As described above, the initial value generation unit 130A generates ten initial postures, generates initial values INI1 to INI10 corresponding to the respective initial postures, and supplies them to the nonlinear Kalman filters KF1 to KF10. In the nonlinear Kalman filter KF to which the initial value INI generated based on the initial posture close to the actual posture is supplied, the state vector converges in a short time. Whether or not the state vector has converged can be known from the observation residual ek + 1 .
In the present embodiment, the comparison unit 110 compares the maximum values of the observation residuals e k + 1 to select the most converged nonlinear Kalman filter KF among the nonlinear Kalman filters KF1 to KF10. As a result, an accurate posture can be calculated in a short time.

次に、非線形カルマンフィルタKF1〜KF10の内容について説明する。図7は、非線形カルマンフィルタKF1の機能ブロック図である。なお、他の非線形カルマンフィルタKF2〜KF10も同様の構成である。
この非線形カルマンフィルタKF1は、シグマポイントカルマンフィルタによって構成されており、そのシステムのモデルは、以下に示す式(7)及び式(8)で与えられる。

Figure 2012132713
Next, the contents of the nonlinear Kalman filters KF1 to KF10 will be described. FIG. 7 is a functional block diagram of the nonlinear Kalman filter KF1. The other nonlinear Kalman filters KF2 to KF10 have the same configuration.
The nonlinear Kalman filter KF1 is configured by a sigma point Kalman filter, and a model of the system is given by the following equations (7) and (8).
Figure 2012132713

ここでxはn次元の状態ベクトルであり、yはm次元の観測値ベクトルである。式(1)で示したように状態ベクトルxは、姿勢qや地磁気センサのオフセット推定値mo,kを状態変数として含む。プロセスノイズuと観測ノイズυは0を中心とするガウスノイズである。式(7)は、時刻k+1における状態ベクトルxk+1は、時刻kにおける状態ベクトルxを関数fに代入し、その結果と時刻kにおけるプロセスノイズuとを加算したものであることを示している。また、式(8)は、時刻kにおける観測値ベクトルyは時刻kにおける状態ベクトルxを関数hに代入し、その結果と時刻kにおける観測ノイズυとを加算したものであることを示している。なお、以下の説明では、プロセスノイズuの共分散をQ、観測ノイズの共分散をRであるとする。 Here, x k is an n-dimensional state vector, and y k is an m-dimensional observation value vector. As shown in Expression (1), the state vector x k includes the posture q k and the offset estimation value m o, k of the geomagnetic sensor as state variables. The process noise u and the observation noise υ are Gaussian noises centered on zero. The equation (7), the state vector x k + 1 at time k + 1 substitutes the state vector x k at time k to the function f, it is obtained by adding the process noise u k at the result and the time k Show. Equation (8) indicates that the observed value vector y k at time k is obtained by substituting the state vector x k at time k into the function h and adding the result to the observed noise υ k at time k. Show. In the following description, it is assumed that the covariance of the process noise u k is Q k and the covariance of the observation noise is R k .

観測残差eは、時刻kの観測値ベクトルyと観測モデルを用いて推定されたベクトルとの差分となるため、以下に示す式(9)で表すことができる。また、非線形カルマンフィルタの更新は観測残差eを用いて、以下に示す式(10)及び式(11)で与えられる。

Figure 2012132713
Since the observation residual e k is a difference between the observation value vector y k at time k and a vector estimated using the observation model, it can be expressed by the following equation (9). The updating of the non-linear Kalman filter using the observation residuals e k, given by the following expressions (10) and (11).
Figure 2012132713

式(9)の減算は図7に示す減算器260で実行される。また、式(10)の右辺第2項の演算は、カルマンゲイン付与部270において実行され、式(10)の加算は加算器280において実行される。遅延部290は、加算器280の出力を次の時刻まで遅延させる。
また、カルマンゲインは以下に示す式(12)で与えられる。

Figure 2012132713
The subtraction of equation (9) is executed by the subtracter 260 shown in FIG. Further, the calculation of the second term on the right side of Expression (10) is executed by the Kalman gain assigning unit 270, and the addition of Expression (10) is executed by the adder 280. The delay unit 290 delays the output of the adder 280 until the next time.
The Kalman gain is given by the following equation (12).
Figure 2012132713

シグマポイントカルマンフィルタでは、n行n列の共分散行列を用いて最初に(2n+1)個のシグマポイントをシグマポイント生成部210で生成する。平均のまわりのシグマボイントの広がりを表すスケーリングパラメータλを用いて表し、式 (13)及び式(14)を定義する。

Figure 2012132713
In the sigma point Kalman filter, the sigma point generation unit 210 first generates (2n + 1) sigma points using an n-by-n covariance matrix. Expressions (13) and (14) are defined by using a scaling parameter λ that represents the spread of the sigma point around the mean.
Figure 2012132713

さらにシグマポイントは、式(15)及び式(16)で決定される。式(13)乃至式(16)の演算は、シグマポイント生成部210によって実行される。なお、シグマポイント生成部210には、初期値INI1が供給される。シグマポイントカルマンフィルタの初回の演算では、初期値INI1を式(15)の右辺に用いてシグマポイント生成部210はシグマポイントを生成する。

Figure 2012132713
Further, the sigma point is determined by Expression (15) and Expression (16). The calculations of Expressions (13) to (16) are executed by the sigma point generation unit 210. The sigma point generation unit 210 is supplied with the initial value INI1. In the first calculation of the sigma point Kalman filter, the sigma point generation unit 210 generates the sigma point using the initial value INI1 as the right side of the equation (15).
Figure 2012132713

さらに時刻を進めたシグマポイントは式(17)で与えられる。この演算は状態遷移モデル部220によって実行される。

Figure 2012132713
Furthermore, the sigma point which advanced time is given by Formula (17). This calculation is executed by the state transition model unit 220.
Figure 2012132713

また、予測される状態の平均は、以下に示す式(18)で与えられる。この演算は平均算出部230において実行される。

Figure 2012132713
Further, the average of the predicted states is given by the following equation (18). This calculation is executed in the average calculation unit 230.
Figure 2012132713

また、予測される誤差の共分散は、以下に示す式(19)で与えられる。

Figure 2012132713
The predicted error covariance is given by the following equation (19).
Figure 2012132713

次に、推定される観測値は、以下に示す式(20)で与えられる。γk+1(i)の演算は観測モデル部240において実行され、式(20)の演算は平均処理部250において実行される。

Figure 2012132713
Next, the estimated observation value is given by the following equation (20). The calculation of γ k + 1 (i) is executed in the observation model unit 240, and the calculation of Expression (20) is executed in the average processing unit 250.
Figure 2012132713

ここで、残差の共分散は、以下に示す式(21)で与えられる。

Figure 2012132713
Here, the covariance of the residual is given by the following equation (21).
Figure 2012132713

また、相互相関行列は式(22)で与えられる。

Figure 2012132713
The cross-correlation matrix is given by equation (22).
Figure 2012132713

次に、状態遷移モデル部220の演算で用いる状態遷移モデルについて説明する。本実施形態における姿勢推定モデルでは、状態べクトルを構成する状態変数のうち、姿勢q以外は前の時刻から変化しないと仮定した。このため、以下に示す式(23)が成立する。但し、実際にはカルマンゲインと観測残差によって、次の状態ベクトルが補正されるので、値が全く変化しないわけではなく、真値に近づいてゆく。

Figure 2012132713
Next, the state transition model used in the calculation of the state transition model unit 220 will be described. In the posture estimation model in the present embodiment, it is assumed that among the state variables constituting the state vector, other than the posture q does not change from the previous time. For this reason, the following equation (23) is established. However, since the next state vector is actually corrected by the Kalman gain and the observation residual, the value does not change at all but approaches the true value.
Figure 2012132713

姿勢の回転については、回転運動方程式から式(24)が成立する。

Figure 2012132713
Regarding the rotation of the posture, the equation (24) is established from the rotational equation of motion.
Figure 2012132713

但し、I3×3を3行3列の単位行列とし、また、3次元ベクトルv=(v1,v2,v3)に対して、[v×]という記号を式(25)で定義する。

Figure 2012132713
However, I 3 × 3 is a 3 × 3 unit matrix, and the symbol [v ×] is defined by the expression (25) for the three-dimensional vector v = (v1, v2, v3).
Figure 2012132713

また、式(26)及び式(27)によって式(23)の演算を定義する。

Figure 2012132713
Further, the calculation of Expression (23) is defined by Expression (26) and Expression (27).
Figure 2012132713

状態ベクトルのうち姿勢を表すクォータニオンqは、正規化条件??q??=1が満たされていないといけないが、シグマポイントの平均を求めるとその条件が満たされなくなってしまう。クォータニオンqに対して何らかの演算が行われるときには、演算後の結果をそのベクトル自身の大きさで正規化するようにすればそのような問題は解決される。
より厳密に正規化条件を保つためには、状態ベクトルのうち姿勢についてはMRPs (modified Rodrigues parameters)を用いて前時刻との差分情報だけに限定し、カルマンフィルタの外部にある姿勢情報をカルマンフィルタから得られる差分情報に基づいて更新すればよい。これにより、システム全体として姿勢を推定する装置として機能する。
The quaternion q representing the posture in the state vector must satisfy the normalization condition ?? q ?? = 1, but if the average of the sigma points is obtained, that condition is not satisfied. When any operation is performed on the quaternion q, such a problem can be solved by normalizing the result after the operation with the size of the vector itself.
In order to maintain the normalization condition more strictly, the posture of the state vector is limited to only the difference information from the previous time using MRPs (modified Rodrigues parameters), and the posture information outside the Kalman filter is obtained from the Kalman filter. Update may be performed based on the difference information. As a result, the entire system functions as a device for estimating the posture.

次に、観測モデル部240で実行する観測モデルの演算について説明する。角速度センサについては推定される観測値は、単純に式(28)で与えられる。

Figure 2012132713
Next, the calculation of the observation model executed by the observation model unit 240 will be described. The estimated observation value for the angular velocity sensor is simply given by equation (28).
Figure 2012132713

地面に固定された水平東,水平北,鉛直上の順の座標系での地磁気ベクトルは式(29)で与えられると推定している。

Figure 2012132713
It is estimated that the geomagnetic vector in the coordinate system in the order of horizontal east, horizontal north, and vertical fixed to the ground is given by equation (29).
Figure 2012132713

従って、磁気センサについて推定される測定値は式(5)の行列を用いて式(30)となる。

Figure 2012132713
Accordingly, the measured value estimated for the magnetic sensor is expressed by Equation (30) using the matrix of Equation (5).
Figure 2012132713

地面に固定された水平東、水平北、鉛直上の順の座標系での重力ベクトルが重力加速度で正規化されているとすると、式(31)が成立する。

Figure 2012132713
Assuming that the gravity vector in the coordinate system in the order of horizontal east, horizontal north, and vertical fixed on the ground is normalized by gravitational acceleration, equation (31) is established.
Figure 2012132713

式(31)より式(32)が得られる。また、観測残差は式(33)で与えられる。

Figure 2012132713
Equation (32) is obtained from Equation (31). The observation residual is given by equation (33).
Figure 2012132713

このように本実施形態によれば、状態ベクトルxの状態変数のうち、初期状態を予測不能な状態変数(この例では、姿勢のクォータニオンq)については、互いに異なる値を予め設定したので、状態ベクトルが収束するまでの時間を大幅に短縮することができる。
特に、姿勢のクォータニオンqの設定においては、基準姿勢を定め、この基準姿勢を直交する3軸の各々において等しい角度だけ回転させて(例えば、90度)、初期姿勢を定めた。すなわち、空間で均等に分散させた姿勢を初期姿勢として採用したので、携帯電話機1がどのような姿勢であっても、状態ベクトルを高速に収束させることができる。
As described above, according to the present embodiment, among the state variables of the state vector xk , the state variables whose initial state cannot be predicted (in this example, the quaternion q of the posture) are set differently in advance. The time until the state vector converges can be greatly reduced.
In particular, in setting the quaternion q of the posture, the reference posture is determined, and this reference posture is rotated by an equal angle (for example, 90 degrees) in each of the three orthogonal axes, thereby determining the initial posture. That is, since the posture uniformly distributed in the space is adopted as the initial posture, the state vector can be converged at high speed regardless of the posture of the mobile phone 1.

<2.第2実施形態>
上述した第1実施形態では、初期状態の姿勢が予測不能であることを前提とした。これに対して、第2実施形態に係る携帯電話機1では、姿勢の初期状態を観測値の一部からある程度予測して、初期姿勢を設定する点で相違する。
第2実施形態の携帯電話機1は、CPU10が実行する姿勢推定プログラムの内容が第1実施形態と相違する。図8にプログラムの実行によって得られる姿勢推定装置の機能ブロック図を示す。図8の機能ブロックが、図3に示す第1実施形態の機能ブロックと相違するのは、非線形カルマンフィルタKF1〜KF10の替わりに非線形カルマンフィルタKF1〜KF4を用いる点及び初期値生成部130Aの替わりに初期値生成部130Bを用いる点である。
<2. Second Embodiment>
In the first embodiment described above, it is assumed that the initial posture is unpredictable. On the other hand, the cellular phone 1 according to the second embodiment is different in that the initial state of the posture is predicted to some extent from a part of the observed values and the initial posture is set.
The mobile phone 1 according to the second embodiment differs from the first embodiment in the content of the posture estimation program executed by the CPU 10. FIG. 8 shows a functional block diagram of the posture estimation apparatus obtained by executing the program. The functional blocks in FIG. 8 are different from the functional blocks in the first embodiment shown in FIG. 3 in that the nonlinear Kalman filters KF1 to KF4 are used instead of the nonlinear Kalman filters KF1 to KF10, and the initial value generator 130A is replaced with an initial value. The point is that the value generation unit 130B is used.

初期状態(時刻k=0)において、携帯電話機1が振動や加速していないと仮定すると、加速度センサは重力加速度のみを検出することになる。初期値生成部130Bは、その値を用いて状態ベクトルの初期値の候補を決定する。加速度センサの観測値a0=(a0,1, a0,2, a0,3)を用いて以下のように定める。図9に示すように式(34)の角度φは重力加速度ベクトルのXY平面との角度を表しており、重力加速度ベクトルがz軸下向きのときφ=0である。式(35)のβは重力加速度ベクトルのXY平面上での大きさを示している。

Figure 2012132713
Assuming that the mobile phone 1 is not vibrating or accelerating in the initial state (time k = 0), the acceleration sensor detects only gravitational acceleration. The initial value generation unit 130B uses the value to determine a candidate for the initial value of the state vector. Using the observed value a 0 = (a 0,1 , a 0,2 , a 0,3 ) of the acceleration sensor, the following is determined. As shown in FIG. 9, the angle φ in the equation (34) represents the angle of the gravitational acceleration vector with respect to the XY plane, and φ = 0 when the gravitational acceleration vector is downward on the z axis. Β in Expression (35) indicates the magnitude of the gravitational acceleration vector on the XY plane.
Figure 2012132713

を式(36)及び式(37)で定義する。

Figure 2012132713
The p a is defined by Equation (36) and (37).
Figure 2012132713

このようにして決定したpaは姿勢を表すクォータニオンとみなしたとき、傾きだけは正確である。どちらに傾いているかは不確実なため、同じ傾きであるが傾いている向きが異なる複数の初期値を設定する。具体的には鉛直軸を中心に対称な4つの初期姿勢を設けることが好ましい。
4つの初期姿勢を特定するためには、まず、式(38)〜式(41)で定まる4つのクォータニオンp、p、p、pを想定する。
=(0, 0, 0,1) ……式(38)
=(0, 0,1/21/2 , 1/21/2) ……式(39)
=(0, 0, 1,0) ……式(40)
=(0, 0, −1/21/2 , 1/21/2)……式(41)
When the pa determined in this way is regarded as a quaternion representing a posture, only the inclination is accurate. Since it is uncertain to which direction it is tilted, a plurality of initial values are set with the same tilt but different tilt directions. Specifically, it is preferable to provide four initial postures symmetrical about the vertical axis.
In order to specify the four initial postures, first, four quaternions p 0 , p 1 , p 2 , and p 3 determined by the equations (38) to (41) are assumed.
p 0 = (0, 0, 0, 1) ...... Formula (38)
p 1 = (0, 0,1 / 2 1/2, 1/2 1/2) ...... equation (39)
p 2 = (0, 0, 1, 0) (Equation 40)
p 3 = (0, 0, −1/2 1/2 , 1/2 1/2 ) …… Equation (41)

次に、(×)をクォータニオン積としたとき、p(×) p、p(×) p、p(×) p、p(×) pを算出し、これらを初期姿勢とする。この演算は、初期値生成部130Bで実行し、初期値INI1〜INI4を生成する。すなわち、初期値生成部130Bは、加速度センサの観測値に基づいて、携帯電話機1の水平面に対する傾きと一致し、水平面に対して垂直な軸を中心として等しい角度だけ回転した複数の姿勢を各々示すように複数の初期値INI1〜INI4を生成する。 Then, when the quaternion product, to calculate the p a (×) p 0, p a (×) p 1, p a (×) p 2, p a (×) p 3, these (×) The initial posture is assumed. This calculation is executed by the initial value generation unit 130B to generate initial values INI1 to INI4. That is, the initial value generation unit 130B indicates a plurality of postures that are rotated by an equal angle around an axis perpendicular to the horizontal plane that matches the inclination of the mobile phone 1 with respect to the horizontal plane, based on the observation value of the acceleration sensor. Thus, a plurality of initial values INI1 to INI4 are generated.

このように、第2実施形態では、状態ベクトルの初期値を設定する場合に、観測値を得るためのセンサの出力を用いて初期値の範囲を限定し、限定した範囲の中で複数の初期値を設定した。このため、並列で動作させる非線形カルマンフィルタの個数を減らすことができ、CPU10に処理負荷を低減することができる。また、限定された範囲で、第1実施形態と同様に10個の初期値を用いる場合には、より高速に状態ベクトルを収束させることが可能となる。   As described above, in the second embodiment, when the initial value of the state vector is set, the range of the initial value is limited using the output of the sensor for obtaining the observation value, and a plurality of initial values are included in the limited range. A value was set. For this reason, the number of nonlinear Kalman filters operated in parallel can be reduced, and the processing load on the CPU 10 can be reduced. Further, in the limited range, when ten initial values are used as in the first embodiment, the state vector can be converged at higher speed.

<3.変形例>
本発明は上述した実施形態に限定されるものではなく、例えば、以下に述べる各種の変形が可能である。
(1)上述した第1及び第2実施形態では、非線形カルマンフィルタの一種であるシグマポイントカルマンフィルタを一例として説明したが、本発明はこれに限定されるのではなく、拡張カルマンフィルタなど、どのようなカルマンフィルタに適用してもよい。拡張カルマンフィルタに適用した場合であっても、状態ベクトルを短時間で収束させることが可能である。
<3. Modification>
The present invention is not limited to the above-described embodiments, and for example, various modifications described below are possible.
(1) In the first and second embodiments described above, a sigma point Kalman filter, which is a kind of nonlinear Kalman filter, has been described as an example. However, the present invention is not limited to this, and any Kalman filter such as an extended Kalman filter can be used. You may apply to. Even when applied to the extended Kalman filter, the state vector can be converged in a short time.

(2)上述した第1及び第2実施形態では、姿勢推定にカルマンフィルタを適用したものであったが、本発明において推定の対象は姿勢に限定されるのではなく、どのようなものを推定の対象としてもよい。要は、カルマンフィルタを用いて状態ベクトルを推定する全ての装置に適用可能である。 (2) In the first and second embodiments described above, the Kalman filter is applied to posture estimation. However, in the present invention, the estimation target is not limited to the posture, and what is estimated It may be a target. In short, the present invention is applicable to all devices that estimate a state vector using a Kalman filter.

(3)上述した第1及び第2実施形態では、初期値として設定する状態ベクトルは複数の状態変数を含み、その一部について(姿勢)互いに異なる値を設定することによって、互いに異なる状態べクトルの初期値を定めたが、本発明はこれに限定されるものではない。すなわち、初期値として設定する状態ベクトルの状態変数の全てについて、互いに異なる値を設定してもよい。 (3) In the first and second embodiments described above, the state vector set as the initial value includes a plurality of state variables, and by setting different values (attitudes) for some of them, different state vectors are set. However, the present invention is not limited to this. That is, different values may be set for all of the state variables of the state vector set as initial values.

(4)上述した第1実施形態では、物体のある姿勢を基準姿勢とし、直交するXYZ軸の各々を中心として90度ずつ基準姿勢を回転させた姿勢を初期姿勢としたが本発明はこれに限定されるものではなく、互いに等しい角度で交わる3以上の軸の各々を中心として、等しい角度だけ基準姿勢を回転させた姿勢を初期姿勢とすればよい。要は、複数の初期値に対応する複数の初期姿勢は、空間上で均等に分散して配置されていることが望ましい。 (4) In the first embodiment described above, a certain posture of an object is set as a reference posture, and a posture obtained by rotating the reference posture by 90 degrees around each of the orthogonal XYZ axes is set as an initial posture. The initial posture is not limited, and a posture obtained by rotating the reference posture by an equal angle around each of three or more axes that intersect at an equal angle may be used as the initial posture. In short, it is desirable that a plurality of initial postures corresponding to a plurality of initial values are arranged evenly distributed in space.

(5)上述した第1及び第2実施形態では、観測残差eの一部である地磁気センサの3軸の成分に基づいて、どの非線形カルマンフィルタKFを選択するかを決定したが、本発明はこれに限定されるものではない。複数種類のセンサを備え、複数の観測対象について観測値を生成する場合、観測残差eは複数の観測対象の要素から構成されるが、その一部に基づいてどの非線形カルマンフィルタKFを選択するかを決定してもよいし、あるいは、その全部に基づいてどの非線形カルマンフィルタKFを選択するかを決定してもよい。 (5) In the first and second embodiments described above, based on the components of the three-axis geomagnetic sensor is a part of the observation residuals e k, but to determine the choice of non-linear Kalman filter KF, the present invention Is not limited to this. When a plurality of types of sensors are provided and observation values are generated for a plurality of observation targets, the observation residual ek is composed of a plurality of observation target elements, and which nonlinear Kalman filter KF is selected based on a part thereof. Alternatively, it may be determined which nonlinear Kalman filter KF is to be selected based on all of them.

(6)上述した第2実施形態では、観測値の一部である加速度センサの出力に基づいて、複数の初期値を生成したが、本発明はこれに限定されるものではなく、観測値の全部を用いて複数の初期値を生成してもよい。 (6) In the second embodiment described above, a plurality of initial values are generated based on the output of the acceleration sensor that is a part of the observed value, but the present invention is not limited to this, A plurality of initial values may be generated using all of them.

KF1〜KF10…非線形カルマンフィルタ、110…比較部、120…選択部、130A,130B…初期値生成部、PM1〜PM10…観測残差モニタ、40A,40B…選択信号生成回路、INI1〜INI10…初期値、210…シグマポイント生成部、220…状態遷移モデル部、230…平均算出部、240…観測モデル部、250…平均処理部、270…カルマンゲイン付与部。   KF1 to KF10: nonlinear Kalman filter, 110: comparison unit, 120: selection unit, 130A, 130B ... initial value generation unit, PM1 to PM10 ... observation residual monitor, 40A, 40B ... selection signal generation circuit, INI1 to INI10 ... initial value , 210 ... sigma point generation unit, 220 ... state transition model unit, 230 ... average calculation unit, 240 ... observation model unit, 250 ... average processing unit, 270 ... Kalman gain applying unit.

Claims (11)

システムを観測して観測値を各々出力する複数のセンサと、
状態遷移モデルを用いて前記システムの状態を示す複数の状態変数を要素とする状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新する動作を実行する複数のカルマンフィルタと、
前記状態ベクトルの初期状態として互いに異なる複数の初期値を生成し、前記複数のカルマンフィルタの各々に供給する初期値生成部と、
前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差に基づいて、前記状態ベクトルが最も早く収束するカルマンフィルタを特定し、特定したカルマンフィルタの状態ベクトルを出力する出力部とを備え、
前記複数のカルマンフィルタは、並列に動作して前記観測残差を同時に算出し、
前記出力部は、現在時刻から所定時間だけ過去の時刻までの所定期間における前記少なくとも1つのセンサに係る観測残差の最大値を前記複数のカルマンフィルタごとに算出し、算出した複数の前記最大値のうち最も小さい前記最大値に対応するカルマンフィルタを、前記状態ベクトルが最も早く収束するカルマンフィルタとして特定する、
ことを特徴とする状態推定装置。
A plurality of sensors for observing the system and outputting observation values,
A state vector having a plurality of state variables indicating the state of the system as an element is estimated using a state transition model, an estimated observation value is calculated from the state vector estimated using an observation value model, and the estimated observation value and A plurality of Kalman filters for performing an operation of calculating the difference between the observation values of the plurality of sensors as an observation residual, and updating the state vector based on the observation residual and the estimated state vector;
An initial value generating unit that generates a plurality of initial values different from each other as an initial state of the state vector, and supplies the initial value to each of the plurality of Kalman filters;
Based on an observation residual relating to at least one of the plurality of sensors included in the observation residual, an output that identifies a Kalman filter that converges the state vector earliest and outputs the state vector of the identified Kalman filter With
The plurality of Kalman filters operate in parallel to calculate the observation residuals simultaneously,
The output unit calculates, for each of the plurality of Kalman filters, a maximum value of an observation residual relating to the at least one sensor in a predetermined period from a current time to a past time by a predetermined time, and calculates the plurality of calculated maximum values. A Kalman filter corresponding to the smallest maximum value among them is specified as a Kalman filter in which the state vector converges fastest,
The state estimation apparatus characterized by the above-mentioned.
前記初期値生成部は、前記複数の初期値を記憶する記憶部を備え、前記記憶部から前記複数の初期値を読み出して、前記複数のカルマンフィルタの各々に供給することを特徴とする請求項1に記載の状態推定装置。   The initial value generation unit includes a storage unit that stores the plurality of initial values, reads the plurality of initial values from the storage unit, and supplies the plurality of initial values to each of the plurality of Kalman filters. The state estimation apparatus described in 1. 前記システムの状態ベクトルは、物体の姿勢を示す状態変数を含み、
前記複数の初期値は、前記物体の基準姿勢と、互いに等しい角度で交わる3以上の軸の各々を中心として、等しい角度だけ前記基準姿勢を回転させた複数の初期姿勢である、
ことを特徴とする請求項2に記載の状態推定装置。
The state vector of the system includes a state variable indicating the posture of the object,
The plurality of initial values are a plurality of initial postures obtained by rotating the reference posture by an equal angle around each of three or more axes intersecting with the reference posture of the object at the same angle.
The state estimation apparatus according to claim 2.
システムを観測して観測値を各々出力する複数のセンサと、
状態遷移モデルを用いて前記システムの状態を示す複数の状態変数を要素とする状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新する動作を実行する複数のカルマンフィルタと、
前記状態ベクトルの初期状態として互いに異なる複数の初期値を生成し、前記複数のカルマンフィルタの各々に供給する初期値生成部と、
前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差に基づいて、前記状態ベクトルが最も早く収束するカルマンフィルタを特定し、特定したカルマンフィルタの状態ベクトルを出力する出力部とを備え、
前記複数のカルマンフィルタは、並列に動作して前記観測残差を同時に算出し、
前記初期値生成部は、前記複数のセンサの一部又は全部から出力される前記観測値に基づいて、前記複数の初期値を生成する、
ことを特徴とする状態推定装置。
A plurality of sensors for observing the system and outputting observation values,
A state vector having a plurality of state variables indicating the state of the system as an element is estimated using a state transition model, an estimated observation value is calculated from the state vector estimated using an observation value model, and the estimated observation value and A plurality of Kalman filters for performing an operation of calculating the difference between the observation values of the plurality of sensors as an observation residual, and updating the state vector based on the observation residual and the estimated state vector;
An initial value generating unit that generates a plurality of initial values different from each other as an initial state of the state vector, and supplies the initial value to each of the plurality of Kalman filters;
Based on an observation residual relating to at least one of the plurality of sensors included in the observation residual, an output that identifies a Kalman filter that converges the state vector earliest and outputs the state vector of the identified Kalman filter With
The plurality of Kalman filters operate in parallel to calculate the observation residuals simultaneously,
The initial value generation unit generates the plurality of initial values based on the observation values output from some or all of the plurality of sensors.
The state estimation apparatus characterized by the above-mentioned.
前記出力部は、現在時刻から所定時間だけ過去の時刻までの所定期間における前記少なくとも1つのセンサに係る観測残差の最大値を前記複数のカルマンフィルタごとに算出し、算出した複数の前記最大値のうち最も小さい前記最大値に対応するカルマンフィルタを、前記状態ベクトルが最も早く収束するカルマンフィルタとして特定する、
ことを特徴とする請求項4に記載の状態推定装置。
The output unit calculates, for each of the plurality of Kalman filters, a maximum value of an observation residual relating to the at least one sensor in a predetermined period from a current time to a past time by a predetermined time, and calculates the plurality of calculated maximum values. A Kalman filter corresponding to the smallest maximum value among them is specified as a Kalman filter in which the state vector converges fastest,
The state estimation apparatus according to claim 4.
前記システムの状態ベクトルは、物体の姿勢を示す状態変数を含み、
前記複数のセンサは、前記物体の加速度を直交する3軸で検出する加速度センサを備え、
前記初期値生成部は、前記加速度センサの前記観測値に基づいて、前記物体の水平面に対する傾きと一致し、水平面に対して垂直な軸を中心として等しい角度だけ回転した複数の姿勢を各々示すように前記複数の初期値を生成する、
ことを特徴とする請求項4又は5に記載の状態推定装置。
The state vector of the system includes a state variable indicating the posture of the object,
The plurality of sensors includes an acceleration sensor that detects acceleration of the object in three orthogonal axes,
The initial value generation unit indicates each of a plurality of postures that are rotated by an equal angle around an axis perpendicular to the horizontal plane that coincides with the inclination of the object with respect to the horizontal plane based on the observation value of the acceleration sensor. Generating the plurality of initial values,
The state estimation apparatus according to claim 4 or 5, wherein
前記複数のセンサは、前記システムを直交する3軸で観測する所定のセンサを含み、
前記観測残差は、前記所定のセンサの観測値に対応する特定要素を含む複数の要素からなり、
前記出力部は、前記所定期間における前記観測残差の前記特定要素の最大値を前記複数のカルマンフィルタごとに算出し、算出した複数の前記最大値のうち最も小さい前記最大値に対応するカルマンフィルタを、前記状態ベクトルが最も早く収束するカルマンフィルタとして特定する、
ことを特徴とする請求項1乃至6のうちいずれか1項に記載の状態推定装置。
The plurality of sensors include predetermined sensors that observe the system in three orthogonal axes,
The observation residual is composed of a plurality of elements including specific elements corresponding to the observation values of the predetermined sensor,
The output unit calculates a maximum value of the specific element of the observation residual in the predetermined period for each of the plurality of Kalman filters, a Kalman filter corresponding to the smallest maximum value among the plurality of calculated maximum values, Identify the Kalman filter that the state vector converges fastest,
The state estimation apparatus according to any one of claims 1 to 6, wherein
システムを観測する複数のセンサから出力される観測値に基づいて、前記システムの状態を推定する状態推定方法であって、
前記システムの状態を示す複数の状態変数を要素とする状態ベクトルの初期状態として互いに異なる複数の初期値を生成し、
状態遷移モデルを用いて前記状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新するカルマンフィルタ処理を、前記複数の初期値の各々について並列に実行し、
現在時刻から所定時間だけ過去の時刻までの所定期間における前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差についての最大値を複数の前記カルマンフィルタ処理ごとに算出し、
複数の前記カルマンフィルタ処理ごとに算出した最大値のうち最も小さい前記最大値に対応するカルマンフィルタ処理を、前記状態ベクトルが最も早く収束するカルマンフィルタ処理として特定し、
特定したカルマンフィルタ処理の状態ベクトルを出力する、
ことを特徴とする状態推定方法。
A state estimation method for estimating a state of the system based on observation values output from a plurality of sensors observing the system,
A plurality of initial values different from each other as an initial state of a state vector having a plurality of state variables indicating the state of the system as elements,
The state vector is estimated using a state transition model, an estimated observation value is calculated from the state vector estimated using an observation value model, and the difference between the estimated observation value and the observation values of the plurality of sensors A Kalman filtering process that calculates the difference and updates the state vector based on the observed residual and the estimated state vector is performed in parallel for each of the plurality of initial values;
A maximum value for an observation residual relating to at least one of the plurality of sensors included in the observation residual in a predetermined period from the current time to a past time is calculated for each of the plurality of Kalman filter processes. And
A Kalman filter process corresponding to the smallest maximum value among the maximum values calculated for each of the plurality of Kalman filter processes is identified as a Kalman filter process in which the state vector converges fastest,
Output the identified Kalman filter state vector,
A state estimation method characterized by the above.
システムを観測する複数のセンサから出力される観測値に基づいて、前記システムの状態を推定する状態推定装置に用いられる状態推定プログラムであって、
前記システムの状態を示す複数の状態変数を要素とする状態ベクトルの初期状態として互いに異なる複数の初期値を生成する処理と、
状態遷移モデルを用いて前記状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新するカルマンフィルタ処理を、前記複数の初期値の各々について並列に実行する処理と、
現在時刻から所定時間だけ過去の時刻までの所定期間における前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差についての最大値を複数の前記カルマンフィルタ処理ごとに算出する処理と、
複数の前記カルマンフィルタ処理ごとに算出した最大値のうち最も小さい前記最大値に対応するカルマンフィルタ処理を、前記状態ベクトルが最も早く収束するカルマンフィルタ処理として特定する処理と、
特定したカルマンフィルタ処理の状態ベクトルを出力する処理とを、
コンピュータに実行させる状態推定プログラム。
A state estimation program used in a state estimation device that estimates a state of the system based on observation values output from a plurality of sensors that observe the system,
A process of generating a plurality of different initial values as an initial state of a state vector having a plurality of state variables indicating the state of the system as elements;
The state vector is estimated using a state transition model, an estimated observation value is calculated from the state vector estimated using an observation value model, and the difference between the estimated observation value and the observation values of the plurality of sensors A Kalman filter process that calculates the difference and updates the state vector based on the observed residual and the estimated state vector, a process of executing in parallel for each of the plurality of initial values;
A maximum value for an observation residual relating to at least one of the plurality of sensors included in the observation residual in a predetermined period from the current time to a past time is calculated for each of the plurality of Kalman filter processes. Processing to
A process for identifying a Kalman filter process corresponding to the smallest maximum value among the maximum values calculated for each of a plurality of the Kalman filter processes as a Kalman filter process in which the state vector converges most quickly;
A process of outputting the identified Kalman filter state vector;
A state estimation program to be executed by a computer.
システムを観測する複数のセンサから出力される観測値に基づいて、前記システムの状態を推定する状態推定方法であって、
前記複数のセンサの一部又は全部から出力される前記観測値に基づいて、前記システムの状態を示す複数の状態変数を要素とする状態ベクトルの初期状態として互いに異なる複数の初期値を生成し、
状態遷移モデルを用いて前記状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新するカルマンフィルタ処理を、前記複数の初期値の各々について並列に実行し、
前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差についての最大値を複数の前記カルマンフィルタ処理ごとに算出し、
複数の前記カルマンフィルタ処理ごとに算出した最大値のうち最も小さい前記最大値に対応するカルマンフィルタ処理を、前記状態ベクトルが最も早く収束するカルマンフィルタ処理として特定し、
特定したカルマンフィルタ処理の状態ベクトルを出力する、
ことを特徴とする状態推定方法。
A state estimation method for estimating a state of the system based on observation values output from a plurality of sensors observing the system,
Based on the observation values output from some or all of the plurality of sensors, generate a plurality of initial values different from each other as an initial state of a state vector having a plurality of state variables indicating the state of the system,
The state vector is estimated using a state transition model, an estimated observation value is calculated from the state vector estimated using an observation value model, and the difference between the estimated observation value and the observation values of the plurality of sensors A Kalman filtering process that calculates the difference and updates the state vector based on the observed residual and the estimated state vector is performed in parallel for each of the plurality of initial values;
A maximum value for an observation residual relating to at least one of the plurality of sensors included in the observation residual is calculated for each of the plurality of Kalman filter processes;
A Kalman filter process corresponding to the smallest maximum value among the maximum values calculated for each of the plurality of Kalman filter processes is identified as a Kalman filter process in which the state vector converges fastest,
Output the identified Kalman filter state vector,
A state estimation method characterized by the above.
システムを観測する複数のセンサから出力される観測値に基づいて、前記システムの状態を推定する状態推定装置に用いられる状態推定プログラムであって、
前記複数のセンサの一部又は全部から出力される前記観測値に基づいて、前記システムの状態を示す複数の状態変数を要素とする状態ベクトルの初期状態として互いに異なる複数の初期値を生成する処理と、
状態遷移モデルを用いて前記状態ベクトルを推定し、観測値モデルを用いて推定した前記状態ベクトルから推定観測値を算出し、前記推定観測値と前記複数のセンサの観測値との差分を観測残差として算出し、前記観測残差と推定した前記状態ベクトルとに基づいて前記状態ベクトルを更新するカルマンフィルタ処理を、前記複数の初期値の各々について並列に実行する処理と、
前記観測残差に含まれる、前記複数のセンサのうち少なくとも1つのセンサに係る観測残差についての最大値を複数の前記カルマンフィルタ処理ごとに算出する処理と、
複数の前記カルマンフィルタ処理ごとに算出した最大値のうち最も小さい前記最大値に対応するカルマンフィルタ処理を、前記状態ベクトルが最も早く収束するカルマンフィルタ処理として特定する処理と、
特定したカルマンフィルタ処理の状態ベクトルを出力する処理とを、
コンピュータに実行させる状態推定プログラム。
A state estimation program used in a state estimation device that estimates a state of the system based on observation values output from a plurality of sensors that observe the system,
A process of generating a plurality of initial values different from each other as an initial state of a state vector having a plurality of state variables indicating the state of the system as elements based on the observation values output from some or all of the plurality of sensors When,
The state vector is estimated using a state transition model, an estimated observation value is calculated from the state vector estimated using an observation value model, and the difference between the estimated observation value and the observation values of the plurality of sensors A Kalman filter process that calculates the difference and updates the state vector based on the observed residual and the estimated state vector, a process of executing in parallel for each of the plurality of initial values;
A process of calculating a maximum value for an observation residual associated with at least one of the plurality of sensors included in the observation residual for each of the plurality of Kalman filter processes;
A process for identifying a Kalman filter process corresponding to the smallest maximum value among the maximum values calculated for each of a plurality of the Kalman filter processes as a Kalman filter process in which the state vector converges most quickly;
A process of outputting the identified Kalman filter state vector;
A state estimation program to be executed by a computer.
JP2010283243A 2010-12-20 2010-12-20 State estimation device, state estimation method, and state estimation program Pending JP2012132713A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010283243A JP2012132713A (en) 2010-12-20 2010-12-20 State estimation device, state estimation method, and state estimation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010283243A JP2012132713A (en) 2010-12-20 2010-12-20 State estimation device, state estimation method, and state estimation program

Publications (1)

Publication Number Publication Date
JP2012132713A true JP2012132713A (en) 2012-07-12

Family

ID=46648488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010283243A Pending JP2012132713A (en) 2010-12-20 2010-12-20 State estimation device, state estimation method, and state estimation program

Country Status (1)

Country Link
JP (1) JP2012132713A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019057198A (en) * 2017-09-22 2019-04-11 株式会社神戸製鋼所 Parameter estimation method of hydraulic system
JP7478474B2 (en) 2018-02-08 2024-05-07 ビタ インクリナータ アイピー ホールディングス エルエルシー System and method for stabilizing suspended load

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019057198A (en) * 2017-09-22 2019-04-11 株式会社神戸製鋼所 Parameter estimation method of hydraulic system
JP7478474B2 (en) 2018-02-08 2024-05-07 ビタ インクリナータ アイピー ホールディングス エルエルシー System and method for stabilizing suspended load

Similar Documents

Publication Publication Date Title
CN109238262B (en) Anti-interference method for course attitude calculation and compass calibration
JP5934296B2 (en) Calibrating sensor readings on mobile devices
US20140122015A1 (en) Attitude estimation method and apparatus
JP6215337B2 (en) Adaptive scale and / or gravity estimation
JP2013064695A (en) State estimating device, offset updating method, and offset updating program
JP7025215B2 (en) Positioning system and positioning method
WO2014119799A1 (en) Inertial device, method, and program
KR20140025319A (en) Apparatuses and methods for dynamic tracking and compensation of magnetic near field
CN106813679B (en) Method and device for estimating attitude of moving object
JP2012173190A (en) Positioning system and positioning method
JP2017166895A (en) Electronic apparatus, sensor calibration method, and sensor calibration program
JP2013096724A (en) State estimation device
JP2013029512A (en) System and method for portable electronic device that detect attitude and angular velocity using magnetic sensor and accelerometer
KR20090073038A (en) Magnetic data processing device, magnetic data processing method, and magnetic data processing program
JP2013122384A (en) Kalman filter and state estimation device
JP2013185898A (en) State estimation device
JP2014219340A (en) Offset correction method and offset correction device
Allotta et al. Underwater vehicles attitude estimation in presence of magnetic disturbances
JP2012132713A (en) State estimation device, state estimation method, and state estimation program
JP6384194B2 (en) Information processing apparatus, information processing method, and information processing program
JP2006038650A (en) Posture measuring method, posture controller, azimuth meter and computer program
US10648812B2 (en) Method for filtering the signals arising from a sensor assembly comprising at least one sensor for measuring a vector physical field which is substantially constant over time and in space in a reference frame
KR101140379B1 (en) Method and apparatus for estimating orientation by using lie algebra and kalman filter
JP2013061309A (en) Kalman filter, state estimation device, method for controlling kalman filter, and control program of kalman filter
JP2013088162A (en) State estimation apparatus