Exemple #1
0
        public override void func_hi_noisy(Vector yi_true, Vector xp_true)
        {
            func_hi_and_dhi_by_dxp_and_dhi_by_dyi(yi_true, xp_true);

            hi_noisyRES.Put(0, SceneLib.SampleNormal(hiRES[0], ((Wide_Camera_Point_Feature_Measurement_Model)wide_model).SD_IMAGE_SIMULATION, rnd));
            hi_noisyRES.Put(1, SceneLib.SampleNormal(hiRES[1], ((Wide_Camera_Point_Feature_Measurement_Model)wide_model).SD_IMAGE_SIMULATION, rnd));
        }
        /// <summary>
        /// Noisy process equation for simulation
        /// Simply perturb xv with Gaussian noise and send it through func_fv
        /// </summary>
        /// <param name="xv_true"></param>
        /// <param name="u_true"></param>
        /// <param name="delta_t"></param>
        public override void func_fv_noisy(Vector xv_true, Vector u_true, float delta_t)
        {
            Vector xv_noisy = xv_true;

            // Linear velocity
            for (int row = 7; row < 10; row++)
            {
                xv_noisy[row] = SceneLib.SampleNormal(xv_true[row], SD_A_component * delta_t, rnd);
            }
            // Angular velocity
            for (int row = 10; row < 13; row++)
            {
                xv_noisy[row] = SceneLib.SampleNormal(xv_true[row], SD_alpha_component * delta_t, rnd);
            }

            // Now send through normal process equaion
            func_fv_and_dfv_by_dxv(xv_noisy, u_true, delta_t);

            // And copy result
            fv_noisyRES.Update(fvRES);
        }