📄 classmems_1_1_m_a_g___extended_kalman.html
字号:
<tr><td valign="top"></td><td valign="top"><em>ay</em> </td><td>y-component acceleration specified in G's </td></tr> <tr><td valign="top"></td><td valign="top"><em>az</em> </td><td>z-component acceleration specified in G's </td></tr> </table></dl></div></div><p><a class="anchor" name="db0bb8ca580684967d1fea747f72c828"></a><!-- doxytag: member="mems::MAG_ExtendedKalman::setEarthMag" ref="db0bb8ca580684967d1fea747f72c828" args="(double mx, double my, double mz)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void mems::MAG_ExtendedKalman::setEarthMag </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>mx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>my</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>mz</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table></div><div class="memdoc"><p>Set the standard/canonical earth magnetic field in Gauss such that x is magnetic north, y is east, and z is toward center of earth. This value is dependent upon latitude/longitude/elevation of use. The canonical values can be determined via two different methods:<p><ol type=1><li>The NOAA geomagnetic field calculator, which can be found here: <a href="http://www.ngdc.noaa.gov/seg/geomag/magfield.shtml">http://www.ngdc.noaa.gov/seg/geomag/magfield.shtml</a> <br> First, determine your lat/lon/elev, which can be automatically determined by the calculator based on Zip Code. Once lat/lon/elevation is known, select the 'Compute Magnetic Field Values' button and use the results from North/East/Vertical, which match up exactly with the filters canonical Earth X/Y/Z . The NOAA calculator gives magnetic field strength in nT (nano Tesla) which is 1e-9, where 10000 Gauss = 1 Tesla. Therefore, (nT * 1e-9 T/nT) * 10000 G/T gives Gauss.</li><li>Set the device flat on a table such that the positive x-axis is pointing approximately magnetic north. While collecting data, rotate the device repeatedly through magnetic north until the maximum magnetic x-value is attained. The x-axis and corresponding y and z-axis magnetic data can then be used as the values for the Kalman magnetic x, y and z values. It's important to make sure that, again, the data is specified in Gauss.</li></ol><p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>mx</em> </td><td>magnetic x-component specified in Gauss </td></tr> <tr><td valign="top"></td><td valign="top"><em>my</em> </td><td>magnetic y-component specified in Gauss </td></tr> <tr><td valign="top"></td><td valign="top"><em>mz</em> </td><td>magnetic z-component specified in Gauss </td></tr> </table></dl></div></div><p><a class="anchor" name="e0222fd8a4bd0ecff4ba0fa656a9cef7"></a><!-- doxytag: member="mems::MAG_ExtendedKalman::setProcessNoise" ref="e0222fd8a4bd0ecff4ba0fa656a9cef7" args="(double gx, double gy, double gz, double qw, double qx, double qy, double qz)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void mems::MAG_ExtendedKalman::setProcessNoise </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>gx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>gy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>gz</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>qw</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>qx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>qy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>qz</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table></div><div class="memdoc"><p>Set the process noise matrix. <b>The process noise is specified in terms of variance, *not* standard deviation.</b><br> NOTE: the process noise covariance matrix is updated after each sample is processed. A call to setProcessNoise will completely reset the covariance matrix such that the specified noise values are along the diagonal, and the remaining values are zero.<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>gx</em> </td><td>gyro x-component </td></tr> <tr><td valign="top"></td><td valign="top"><em>gy</em> </td><td>gyro y-component </td></tr> <tr><td valign="top"></td><td valign="top"><em>gz</em> </td><td>gyro z-component </td></tr> <tr><td valign="top"></td><td valign="top"><em>qw</em> </td><td>quaternion w-component </td></tr> <tr><td valign="top"></td><td valign="top"><em>qx</em> </td><td>quaternion x-component </td></tr> <tr><td valign="top"></td><td valign="top"><em>qy</em> </td><td>quaternion y-component </td></tr> <tr><td valign="top"></td><td valign="top"><em>qz</em> </td><td>quaternion z-component</td></tr> </table></dl><dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classmems_1_1_m_a_g___extended_kalman.html#a3b25418b40488755857ffcf61d716c2">setMeasurementNoise</a> </dd></dl></div></div><p><a class="anchor" name="61b82f4d1f28060d1152ecc9d7154f6a"></a><!-- doxytag: member="mems::MAG_ExtendedKalman::setProcessNoise" ref="61b82f4d1f28060d1152ecc9d7154f6a" args="(MEMS_STD_VECTOR &noise)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void mems::MAG_ExtendedKalman::setProcessNoise </td> <td>(</td> <td class="paramtype">MEMS_STD_VECTOR & </td> <td class="paramname"> <em>noise</em> </td> <td> ) </td> <td></td> </tr> </table></div><div class="memdoc"><p>Set the process noise matrix. The order is <gx, gy, gz, qw, qx, qy, qz, bx, by, bz>. <b>The process noise is specified in terms of variance, *not* standard deviation.</b><br> NOTE: the process noise covariance matrix is updated after each sample is processed. A call to setProcessNoise will completely reset the covariance matrix such that the specified noise values are along the diagonal, and the remaining values are zero.<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>noise</em> </td><td>vector process noise parameters that will be placed along the diagonal of the process noise matrix.</td></tr> </table></dl><dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classmems_1_1_m_a_g___extended_kalman.html#a3b25418b40488755857ffcf61d716c2">setMeasurementNoise</a> <p><a class="el" href="_config_s_t_l_8h.html#a72efbfed31ceba6e18e11c0b742bb94">MEMS_STD_VECTOR</a> </dd></dl></div></div><p><a class="anchor" name="403fe58014be7e545e23a2b433170b98"></a><!-- doxytag: member="mems::MAG_ExtendedKalman::getProcessNoiseCovariance" ref="403fe58014be7e545e23a2b433170b98" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">MEMS_STD_MATRIX mems::MAG_ExtendedKalman::getProcessNoiseCovariance </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table></div><div class="memdoc"><p>Returns the current process noise covariance matrix.<p><dl class="return" compact><dt><b>Returns:</b></dt><dd>The process noise covariance matrix</dd></dl><dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="_config_s_t_l_8h.html#4ccecb7b220e54be1d9e7ab09113a15f">MEMS_STD_MATRIX</a> </dd></dl></div></div><p><a class="anchor" name="a3b25418b40488755857ffcf61d716c2"></a><!-- doxytag: member="mems::MAG_ExtendedKalman::setMeasurementNoise" ref="a3b25418b40488755857ffcf61d716c2" args="(double gx, double gy, double gz, double ax, double ay, double az, double mx, double my, double mz)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void mems::MAG_ExtendedKalman::setMeasurementNoise </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>gx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>gy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>gz</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>ax</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>ay</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>az</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>mx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>my</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>mz</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table></div><div class="memdoc"><p>Set the measurement noise for gyro, accelerometer and magnetometer. These values are generally empirically determined and <b>must be specified as a variance, not standard deviation.</b><br> NOTE: the measurement noise covariance matrix is updated after each sample is processed. A call to setMeasurementNoise will completely reset the covariance matrix such that the specified noise values are along the diagonal, and the remaining values are zero.<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>gx</em> </td><td>gyro x-component in rad/s </td></tr> <tr><td valign="top"></td><td valign="top"><em>gy</em> </td><td>gyro y-component in rad/s </td></tr> <tr><td valign="top"></td><td valign="top"><em>gz</em> </td><td>gyro z-component in rad/s </td></tr> <tr><td valign="top"></td><td valign="top"><em>ax</em> </td><td>accelerometer x-component in G's </td></tr> <tr><td valign="top"></td><td valign="top"><em>ay</em> </td><td>accelerometer y-component in G's </td></tr> <tr><td valign="top"></td><td valign="top"><em>az</em> </td><td>accelerometer z-component in G's </td></tr> <tr><td valign="top"></td><td valign="top"><em>mx</em> </td><td>magnetometer x-component in Gauss </td></tr> <tr><td valign="top"></td><td valign="top"><em>my</em> </td><td>magnetometer y-component in Gauss </td></tr> <tr><td valign="top"></td><td valign="top"><em>mz</em> </td><td>magnetometer z-component in Gauss</td></tr> </table></dl><dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classmems_1_1_m_a_g___extended_kalman.html#e0222fd8a4bd0ecff4ba0fa656a9cef7">setProcessNoise()</a> </dd></dl></div></div><p><a class="anchor" name="a16e84464dfe63d5e7873899d8e3e50f"></a><!-- doxytag: member="mems::MAG_ExtendedKalman::setMeasurementNoise" ref="a16e84464dfe63d5e7873899d8e3e50f" args="(MEMS_STD_VECTOR &noise)" --><div class="memitem"><div class="memproto">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -