⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bayesflt_8hpp-source.html

📁 Bayes滤波器算法C++类说明文档,源码见Bayes滤波器算法
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00510 <span class="comment">        Updates x(k|k), X(k|k)</span>00511 <span class="comment">    */</span>00512                         00513     <span class="comment">// Minimum allowable reciprocal condition number for PD Matrix factorisations</span><a name="l00514"></a><a class="code" href="classBayesian__filter_1_1Kalman__state__filter.html#o1">00514</a>     <a class="code" href="classBayesian__filter_1_1Numerical__rcond.html">Numerical_rcond</a> <a class="code" href="classBayesian__filter_1_1Kalman__state__filter.html#o1">rclimit</a>;00515 };00516 00517 00518 <span class="comment">/*</span>00519 <span class="comment"> * Information State Filter - Abstract filtering property</span>00520 <span class="comment"> * Linear filter information space representation for 1st (mean) and 2nd (covariance) moments of a distribution</span>00521 <span class="comment"> *   Y = inv(X)   Information</span>00522 <span class="comment"> *   y = Y*x      Information state</span>00523 <span class="comment"> */</span>00524 <a name="l00525"></a><a class="code" href="classBayesian__filter_1_1Information__state__filter.html">00525</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Information__state__filter.html">Information_state_filter</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Bayes__filter__base.html">Bayes_filter_base</a>00526 {00527 <span class="keyword">public</span>:00528     <a class="code" href="classBayesian__filter_1_1Information__state__filter.html#a0">Information_state_filter</a> (size_t x_size);<a name="l00529"></a><a class="code" href="classBayesian__filter_1_1Information__state__filter.html#o0">00529</a>     FM::Vec <a class="code" href="classBayesian__filter_1_1Information__state__filter.html#o0">y</a>;              <span class="comment">// Information state</span><a name="l00530"></a><a class="code" href="classBayesian__filter_1_1Information__state__filter.html#o1">00530</a>     FM::SymMatrix <a class="code" href="classBayesian__filter_1_1Information__state__filter.html#o1">Y</a>;        <span class="comment">// Information</span>00531 00532     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Information__state__filter.html#a1">init_yY</a> () =0;00533     <span class="comment">/* Initialise from a information state and information</span>00534 <span class="comment">        Requires y(k|k), Y(k|k)</span>00535 <span class="comment">        Parameters that reference the instance's y and Y members are valid</span>00536 <span class="comment">    */</span>00537     <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Information__state__filter.html#a2">init_information</a> (<span class="keyword">const</span> FM::Vec&amp; y, <span class="keyword">const</span> FM::SymMatrix&amp; Y);00538     <span class="comment">/* Initialise from a information state and information</span>00539 <span class="comment">        Parameters that reference the instance's y and Y members are valid</span>00540 <span class="comment">    */</span>00541 00542     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Information__state__filter.html#a3">update_yY</a> () =0;00543     <span class="comment">/* Update filters information state and information</span>00544 <span class="comment">        Updates y(k|k), Y(k|k)</span>00545 <span class="comment">    */</span>00546 };00547 00548 00549 <span class="comment">/*</span>00550 <span class="comment"> * Linearizable filter models - Abstract filtering property</span>00551 <span class="comment"> *  Linrz == A linear, or gradient Linearized filter</span>00552 <span class="comment"> *</span>00553 <span class="comment"> * Predict uses a Linrz_predict_model that maintains a Jacobian matrix Fx and addative noise</span>00554 <span class="comment"> * NOTE: Functional (non-stochastic) predict is NOT possible as predict requires Fx.</span>00555 <span class="comment"> *</span>00556 <span class="comment"> * Observe uses a Linrz_observe_model and a variable size observation (z)</span>00557 <span class="comment"> * There are two variants for correlated and uncorrelated observation noise</span>00558 <span class="comment"> * Derived filters supply the init,predict,observe,update functions and determine</span>00559 <span class="comment"> * the algorithm used to implement the filter.</span>00560 <span class="comment"> */</span>00561 <a name="l00562"></a><a class="code" href="classBayesian__filter_1_1Linrz__filter.html">00562</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Linrz__filter.html">Linrz_filter</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Bayes__filter__base.html">Bayes_filter_base</a>00563 { 00564 <span class="keyword">public</span>:00565     <span class="comment">/* Virtual functions for filter algorithm */</span>00566 00567     <span class="keyword">virtual</span> <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Linrz__filter.html#a0">predict</a> (<a class="code" href="classBayesian__filter_1_1Linrz__predict__model.html">Linrz_predict_model</a>&amp; f) = 0;00568     <span class="comment">/* Predict state using a Linrz model</span>00569 <span class="comment">        Requires x(k|k), X(k|k) or internal equivilent</span>00570 <span class="comment">        Returns: Reciprocal condition number of primary matrix used in predict computation (1. if none)</span>00571 <span class="comment">    */</span>00572 00573     <span class="keyword">virtual</span> <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Linrz__filter.html#a1">observe</a> (<a class="code" href="classBayesian__filter_1_1Linrz__uncorrelated__observe__model.html">Linrz_uncorrelated_observe_model</a>&amp; h, <span class="keyword">const</span> FM::Vec&amp; z) = 0;00574     <span class="keyword">virtual</span> <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Linrz__filter.html#a1">observe</a> (<a class="code" href="classBayesian__filter_1_1Linrz__correlated__observe__model.html">Linrz_correlated_observe_model</a>&amp; h, <span class="keyword">const</span> FM::Vec&amp; z) = 0;00575     <span class="comment">/* Observation z(k) and with (Un)correlated observation noise model</span>00576 <span class="comment">        Requires x(k|k), X(k|k) or internal equivilent</span>00577 <span class="comment">        Returns: Reciprocal condition number of primary matrix used in observe computation (1. if none)</span>00578 <span class="comment">    */</span>00579 };00580 00581 00582 <span class="comment">/*</span>00583 <span class="comment"> * Linearizable Kalman Filter</span>00584 <span class="comment"> *  Kalman state representation and linearizable models</span>00585 <span class="comment"> *</span>00586 <span class="comment"> * Common abstration for many linear filters</span>00587 <span class="comment"> *  Has a virtual base to represent the common state</span>00588 <span class="comment"> */</span><a name="l00589"></a><a class="code" href="classBayesian__filter_1_1Linrz__kalman__filter.html">00589</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Linrz__kalman__filter.html">Linrz_kalman_filter</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Linrz__filter.html">Linrz_filter</a>, <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Kalman__state__filter.html">Kalman_state_filter</a>00590 {00591 <span class="keyword">protected</span>:<a name="l00592"></a><a class="code" href="classBayesian__filter_1_1Linrz__kalman__filter.html#b0">00592</a>     <a class="code" href="classBayesian__filter_1_1Linrz__kalman__filter.html#b0">Linrz_kalman_filter</a>() : <a class="code" href="classBayesian__filter_1_1Kalman__state__filter.html">Kalman_state_filter</a>(0) <span class="comment">// define a default constructor</span>00593     {}00594 };00595 00596 00597 <span class="comment">/*</span>00598 <span class="comment"> * Extended Kalman Filter</span>00599 <span class="comment"> *  Kalman state representation and linearizable models</span>00600 <span class="comment"> *</span>00601 <span class="comment"> * Observe is implemented using an innovation computed from the non-linear part of the</span>00602 <span class="comment"> * obseve model and linear part of the Linrz_observe_model</span>00603 <span class="comment"> *</span>00604 <span class="comment"> * Common abstration for many linear filters</span>00605 <span class="comment"> *  Has a virtual base to represent the common state</span>00606 <span class="comment"> */</span><a name="l00607"></a><a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html">00607</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html">Extended_kalman_filter</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Linrz__kalman__filter.html">Linrz_kalman_filter</a>00608 {00609 <span class="keyword">protected</span>:<a name="l00610"></a><a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html#b0">00610</a>     <a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html#b0">Extended_kalman_filter</a>() : <a class="code" href="classBayesian__filter_1_1Kalman__state__filter.html">Kalman_state_filter</a>(0) <span class="comment">// define a default constructor</span>00611     {}00612 <span class="keyword">public</span>:00613     <span class="keyword">virtual</span> <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html#a0">observe</a> (Linrz_uncorrelated_observe_model&amp; h, <span class="keyword">const</span> FM::Vec&amp; z);00614     <span class="keyword">virtual</span> <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html#a0">observe</a> (Linrz_correlated_observe_model&amp; h, <span class="keyword">const</span> FM::Vec&amp; z);00615     <span class="comment">/* Observation z(k) and with (Un)correlated observation noise model</span>00616 <span class="comment">        Requires x(k|k), X(k|k) or internal equivilent</span>00617 <span class="comment">        Returns: Reciprocal condition number of primary matrix used in observe computation (1. if none)</span>00618 <span class="comment">        Default implementation simple computes innovation for observe_innovation</span>00619 <span class="comment">    */</span>00620 00621     <span class="keyword">virtual</span> <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html#a2">observe_innovation</a> (Linrz_uncorrelated_observe_model&amp; h, <span class="keyword">const</span> FM::Vec&amp; s) = 0;00622     <span class="keyword">virtual</span> <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html#a2">observe_innovation</a> (Linrz_correlated_observe_model&amp; h, <span class="keyword">const</span> FM::Vec&amp; s) = 0;00623     <span class="comment">/* Observation innovation s(k) and with (Un)correlated observation noise model</span>00624 <span class="comment">        Requires x(k|k), X(k|k) or internal equivilent</span>00625 <span class="comment">        Returns: Reciprocal condition number of primary matrix used in observe computation (1. if none)</span>00626 <span class="comment">    */</span>00627 };00628 00629 00630 <span class="comment">/*</span>00631 <span class="comment"> * Sample State Filter - Abstract filtering property</span>00632 <span class="comment"> *</span>00633 <span class="comment"> * Probability distributions are represted by a finite sampling</span>00634 <span class="comment"> *</span>00635 <span class="comment"> * State (x_size) size and its sampling (s_size) are assumed to remain constant.</span>00636 <span class="comment"> * The state sampling public so they can be directly manipulated.</span>00637 <span class="comment"> *  init: Should be used if they to be altered</span>00638 <span class="comment"> *  updat

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -