亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testfastslam.cpp

?? Bayesian Filtering Classe C++source
?? CPP
字號:
/* * Bayes++ the Bayesian Filtering Library * Copyright (c) 2004 Michael Stevens * See accompanying Bayes++.htm for terms and conditions of use. * * $Id: testFastSLAM.cpp 564 2006-04-05 20:51:38 +0200 (Wed, 05 Apr 2006) mistevens $ *//* * Test the FastSLAM alogorithm */		// Bayes++ Bayesian filtering schemes#include "BayesFilter/SIRFlt.hpp"#include "BayesFilter/covFlt.hpp"#include "BayesFilter/unsFlt.hpp"#include "BayesFilter/models.hpp"		// Types required for SLAM classes#include <vector>#include <map>		// Bayes++ SLAM#include "SLAM.hpp"#include "fastSLAM.hpp"#include "kalmanSLAM.hpp"#include "Test/random.hpp"#include <iostream>#include <boost/numeric/ublas/io.hpp>#include <boost/lexical_cast.hpp> using namespace SLAM_filter;class SLAM_random : public Bayesian_filter_test::Boost_random, public BF::SIR_random/* * Random numbers for SLAM test */{public:	FM::Float normal (const FM::Float mean, const FM::Float sigma)	{		return Boost_random::normal (mean, sigma);	}	void normal (FM::DenseVec& v)	{		Boost_random::normal (v);	}	void uniform_01 (FM::DenseVec& v)	{		Boost_random::uniform_01 (v);	}	void seed ()	{		Boost_random::seed();	}};/* * Demonstrate a SLAM example */struct SLAMDemo{	const unsigned nParticles;		SLAMDemo (unsigned setnParticles) : nParticles(setnParticles)	{}	void OneDExperiment ();	void InformationLossExperiment ();		SLAM_random goodRandom;	// Relative Observation with  Noise model	struct Simple_observe : BF::Linear_uncorrelated_observe_model	{		Simple_observe (Float i_Zv) : Linear_uncorrelated_observe_model(2,1)		// Construct a linear model with const Hx		{			Hx(0,0) = -1.;	// Location			Hx(0,1) = 1.;	// Map			Zv[0] = i_Zv;		}	};	struct Simple_observe_inverse : BF::Linear_uncorrelated_observe_model	{		Simple_observe_inverse (Float i_Zv) : Linear_uncorrelated_observe_model(2,1)		{			Hx(0,0) = 1.;	// location			Hx(0,1) = 1.;	// observation			Zv[0] = i_Zv;		}	};	struct Kalman_statistics : public BF::Kalman_state_filter	// Kalman_statistics without any filtering	{		Kalman_statistics (std::size_t x_size) : Kalman_state_filter(x_size) {}		void init() {}		void update() {}	};	template <class Filter>	struct Generic_kalman_generator : public Kalman_filter_generator	// Generate and dispose of generic kalman filter type	{		Filter_type* generate( unsigned full_size )		{			return new Filter(full_size);		}		void dispose( Filter_type* filter )		{			delete filter;		}	};	void display( const std::string label, const BF::Kalman_state_filter& stats)	{		std::cout << label << stats.x << stats.X << std::endl;	}};void SLAMDemo::OneDExperiment ()// Experiment with a one dimensional problem//  Use to look at implication of highly correlated features{	// State size	const unsigned nL = 1;	// Location	const unsigned nM = 2;	// Map	// Construct simple Prediction models	BF::Sampled_LiAd_predict_model location_predict(nL,1, goodRandom);	// Stationary Prediction model (Identity)	FM::identity(location_predict.Fx);				// Constant Noise model	location_predict.q[0] = 1000.;	location_predict.G.clear();	location_predict.G(0,0) = 1.;	// Relative Observation with  Noise model	Simple_observe observe0(5.), observe1(3.);	Simple_observe_inverse observe_new0(5.), observe_new1(3.);	// Setup the initial state and covariance	// Location with no uncertainty	FM::Vec x_init(nL); FM::SymMatrix X_init(nL, nL);	x_init[0] = 20.;	X_init(0,0) = 0.;	// Truth model : location plus one map feature	FM::Vec true0(nL+1), true1(nL+1);	true0.sub_range(0,nL) = x_init; true0[nL] = 50.;	true1.sub_range(0,nL) = x_init; true1[nL] = 70.;	FM::Vec z(1);	// Filter statistics for display	Kalman_statistics stat(nL+nM);	// Kalman_SLAM filter:	Generic_kalman_generator<BF::Covariance_scheme> full_gen;	Kalman_SLAM kalm (full_gen);	kalm.init_kalman (x_init, X_init);	// Fast_SLAM filter	BF::SIR_kalman_scheme fast_location (nL, nParticles, goodRandom);	fast_location.init_kalman (x_init, X_init);	Fast_SLAM_Kstatistics fast (fast_location);	// Initial feature states	z = observe0.h(true0);		// Observe a relative position between location and map landmark	z[0] += 0.5;				kalm.observe_new (0, observe_new0, z);	fast.observe_new (0, observe_new0, z);	z = observe1.h(true1);	z[0] += -1.0;			kalm.observe_new (1, observe_new1, z);	fast.observe_new (1, observe_new1, z);	fast.update(); fast.statistics_sparse(stat); display("Feature Fast", stat);	kalm.update(); kalm.statistics_sparse(stat); display("Feature Kalm", stat);	// Predict the location state forward	fast_location.predict (location_predict);	kalm.predict (location_predict);	fast.update(); fast.statistics_sparse(stat); display("Predict Fast", stat);	kalm.update(); kalm.statistics_sparse(stat); display("Predict Kalm", stat);	// Observation feature 0	z = observe0.h(true0);	z[0] += 0.5;			// Observe a relative position between location and map landmark	fast.observe( 0, observe0, z );	kalm.observe( 0, observe0, z );	fast.update(); fast.statistics_sparse(stat); display("ObserveA Fast", stat);	kalm.update(); kalm.statistics_sparse(stat); display("ObserveA Kalm", stat);	// Observation feature 1	z = observe1.h(true1);	z[0] += 1.0;			// Observe a relative position between location and map landmark	fast.observe( 1, observe1, z );	kalm.observe( 1, observe1, z );	fast.update(); fast.statistics_sparse(stat); display("ObserveB Fast", stat);	kalm.update(); kalm.statistics_sparse(stat); display("ObserveB Kalm", stat);	// Observation feature 0	z = observe0.h(true0);	z[0] += 0.5;			// Observe a relative position between location and map landmark	fast.observe( 0, observe0, z );	kalm.observe( 0, observe0, z );	fast.update(); fast.statistics_sparse(stat); display("ObserveC Fast", stat);	kalm.update(); kalm.statistics_sparse(stat); display("ObserveC Kalm", stat);	// Forget feature 0	fast.forget(0);	kalm.forget(0);	fast.update(); fast.statistics_sparse(stat); display("Forget Fast", stat);	kalm.update(); kalm.statistics_sparse(stat); display("Forget Kalm", stat);}void SLAMDemo::InformationLossExperiment ()// Experiment with information loss due to resampling{	// State size	const unsigned nL = 1;	// Location	const unsigned nM = 2;	// Map	// Construct simple Prediction models	BF::Sampled_LiAd_predict_model location_predict(nL,1, goodRandom);	// Stationary Prediction model (Identity)	FM::identity(location_predict.Fx);				// Constant Noise model	location_predict.q[0] = 1000.;	location_predict.G.clear();	location_predict.G(0,0) = 1.;	// Relative Observation with  Noise model	Simple_observe observe0(5.), observe1(3.);	Simple_observe_inverse observe_new0(5.), observe_new1(3.);	// Setup the initial state and covariance	// Location with no uncertainty	FM::Vec x_init(nL); FM::SymMatrix X_init(nL, nL);	x_init[0] = 20.;	X_init(0,0) = 0.;	// Truth model : location plus one map feature	FM::Vec true0(nL+1), true1(nL+1);	true0.sub_range(0,nL) = x_init; true0[nL] = 50.;	true1.sub_range(0,nL) = x_init; true1[nL] = 70.;	FM::Vec z(1);	// Filter statistics for display	Kalman_statistics stat(nL+nM);	// Kalman_SLAM filter	Generic_kalman_generator<BF::Unscented_scheme> full_gen;	Kalman_SLAM kalm (full_gen);	kalm.init_kalman (x_init, X_init);	// Fast_SLAM filter	BF::SIR_kalman_scheme fast_location (nL, nParticles, goodRandom);	fast_location.init_kalman (x_init, X_init);	Fast_SLAM_Kstatistics fast (fast_location);	// Initial feature states	z = observe0.h(true0);		// Observe a relative position between location and map landmark	z[0] += 0.5;				kalm.observe_new (0, observe_new0, z);	fast.observe_new (0, observe_new0, z);	z = observe1.h(true1);	z[0] += -1.0;			kalm.observe_new (1, observe_new1, z);	fast.observe_new (1, observe_new1, z);	unsigned it = 0;	for (;;) {		++it;		std::cout << it << std::endl;				// Groups of observations without resampling		{			// Predict the filter forward			kalm.predict (location_predict);			fast_location.predict (location_predict);			// Observation feature 0 with bias			z = observe0.h(true0);		// Observe a relative position between location and map landmark			z[0] += 0.5;			kalm.observe( 0, observe0, z );			fast.observe( 0, observe0, z );			// Predict the filter forward			kalm.predict (location_predict);			fast_location.predict (location_predict);			// Observation feature 1 with bias			z = observe1.h(true1);		// Observe a relative position between location and map landmark			z[0] += -1.0;					kalm.observe( 1, observe1, z );			fast.observe( 1, observe1, z );		}		// Update and resample		kalm.update();		fast.update();				kalm.statistics_sparse(stat); display("Kalm", stat);		fast.statistics_sparse(stat); display("Fast", stat);		std::cout << fast_location.stochastic_samples <<','<< fast_location.unique_samples()			<<' '<< fast.feature_unique_samples(0) <<','<< fast.feature_unique_samples(1) <<std::endl;		std::cout.flush();	}}int main (int argc, char* argv[]){	// Global setup for test output	std::cout.flags(std::ios::fixed); std::cout.precision(4);	unsigned nParticles = 1000;	if (argv[1])	{    	try {			nParticles = boost::lexical_cast<unsigned>(argv[1]);		}		catch (boost::bad_lexical_cast) {			// ignore error and use default		}	}	std::cout << "nParticles = " << nParticles << std::endl;	// Create test and run experiments	try {		SLAMDemo test(nParticles);		test.OneDExperiment();		//test.InformationLossExperiment();	}	catch (BF::Filter_exception ne)	{		std::cout << ne.what() << std::endl;	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av网站在线观看免费| 国产精品亲子伦对白| 粗大黑人巨茎大战欧美成人| 亚洲大片精品永久免费| 国产日本欧洲亚洲| 久久亚洲精品国产精品紫薇| 欧美日产国产精品| 色综合咪咪久久| 91免费在线视频观看| 一本到不卡精品视频在线观看| 日韩三级在线观看| 日韩视频一区二区三区在线播放| 亚洲三级电影网站| 亚洲综合在线电影| 久久久久综合网| 亚洲乱码一区二区三区在线观看| 亚洲国产精品一区二区尤物区| 亚洲国产精品麻豆| 99国产精品久久久久| 欧美熟乱第一页| 日韩亚洲欧美在线| 午夜影院久久久| 欧美亚洲图片小说| 中文字幕一区日韩精品欧美| 亚洲伊人色欲综合网| eeuss影院一区二区三区| 在线一区二区视频| 精品国免费一区二区三区| 国产欧美一区二区在线| 香蕉影视欧美成人| 欧美在线观看一区二区| 日韩午夜在线观看视频| 亚洲福利国产精品| 欧美精品一卡二卡| 国产欧美日韩一区二区三区在线观看| 蜜桃av噜噜一区| 国产一本一道久久香蕉| 99久久国产综合精品麻豆| 亚洲欧洲在线观看av| 成人av电影免费观看| 中文成人av在线| 97精品超碰一区二区三区| 中文字幕亚洲视频| 欧美天天综合网| 午夜精品福利视频网站| av在线综合网| 亚洲伊人伊色伊影伊综合网| 欧美日韩国产中文| 麻豆国产精品视频| 久久久久久久久97黄色工厂| 欧美国产成人在线| 99久久99久久久精品齐齐 | 国产午夜精品福利| 无码av中文一区二区三区桃花岛| 在线亚洲高清视频| 奇米影视在线99精品| 91看片淫黄大片一级| 亚洲综合色区另类av| 欧美一级片在线| 午夜精品福利在线| 精品国产乱码久久久久久闺蜜 | 久久久亚洲综合| 国产69精品久久777的优势| 欧美一级片免费看| 成人午夜免费视频| 亚洲福利一区二区三区| 日韩欧美一区在线| 亚洲黄色录像片| 日韩午夜激情av| 成人黄色小视频| 午夜影院在线观看欧美| 欧美极品xxx| 欧美日韩国产免费一区二区| 国产精品99久| 国产亚洲人成网站| 欧美做爰猛烈大尺度电影无法无天| 日本不卡视频在线观看| 成人免费在线视频| 日韩欧美亚洲一区二区| 99久久国产综合精品女不卡| 免费一级片91| 亚洲乱码国产乱码精品精小说| 欧美成人福利视频| 国内精品久久久久影院薰衣草 | 精品国产sm最大网站| 色8久久精品久久久久久蜜| 精品在线亚洲视频| 久久嫩草精品久久久久| 欧美性生活影院| 大胆亚洲人体视频| 韩国女主播成人在线| 亚洲一区二区在线观看视频| 国产精品家庭影院| 在线视频国内自拍亚洲视频| 国产乱人伦精品一区二区在线观看| 一区二区三区精品视频| 亚洲国产精品精华液ab| 欧美va亚洲va国产综合| 91精品欧美久久久久久动漫| 麻豆久久久久久久| 亚洲国产日韩av| 亚洲欧美在线另类| 国产日韩一级二级三级| 精品区一区二区| 51久久夜色精品国产麻豆| 91搞黄在线观看| 国产 日韩 欧美大片| 美女网站色91| 免费成人在线影院| 免费成人在线观看视频| 日日摸夜夜添夜夜添精品视频 | 69精品人人人人| 欧美色图一区二区三区| 免费一级欧美片在线观看| 亚洲第一搞黄网站| 亚洲免费在线看| 精品久久久久久久久久久院品网 | av电影天堂一区二区在线| 国产丶欧美丶日本不卡视频| 亚洲h在线观看| 亚洲第一主播视频| 亚洲国产视频一区| 亚洲国产cao| 日韩精品国产欧美| 美国三级日本三级久久99| 免费成人美女在线观看.| 久久国产精品99精品国产| 1区2区3区国产精品| 成人免费在线视频观看| 亚洲伦理在线免费看| 亚洲一区二区在线免费观看视频| 亚洲综合一二区| 亚洲电影激情视频网站| 免费久久精品视频| 国产精华液一区二区三区| 高清成人免费视频| 色先锋aa成人| 欧美电影一区二区| 精品久久国产字幕高潮| 国产日本亚洲高清| 亚洲激情图片一区| 日韩 欧美一区二区三区| 亚洲精品va在线观看| 五月天国产精品| 精品综合久久久久久8888| 成人午夜私人影院| 欧美日韩国产首页| 久久综合久久99| 中文字幕一区在线观看视频| 亚洲bdsm女犯bdsm网站| 久久97超碰色| 91论坛在线播放| 日韩免费福利电影在线观看| 国产精品嫩草影院com| 亚洲成人一区在线| 国产精品99久久不卡二区| 欧美日韩精品综合在线| 久久久三级国产网站| 一区二区三区四区乱视频| 久久99热狠狠色一区二区| 不卡一区二区中文字幕| 欧美一区二区三区影视| 中文字幕亚洲一区二区va在线| 日韩av中文字幕一区二区三区| 国产69精品久久777的优势| 欧美日韩第一区日日骚| 国产精品视频免费看| 美女久久久精品| 在线观看亚洲专区| 欧美激情一区在线| 美女看a上一区| 欧美在线观看18| 国产精品理论在线观看| 韩国欧美一区二区| 这里只有精品电影| 亚洲精品免费看| 成人激情综合网站| 日韩欧美的一区| 亚洲成a人v欧美综合天堂| 不卡一区二区三区四区| 精品欧美乱码久久久久久1区2区| 一区二区三区四区乱视频| 成人一级片在线观看| 精品国产亚洲在线| 日韩国产高清影视| 欧美四级电影在线观看| 综合色中文字幕| 国产不卡在线播放| 久久精品视频免费| 精品一区二区免费在线观看| 欧美日韩国产免费| 亚州成人在线电影| 欧美无砖专区一中文字| 亚洲女子a中天字幕| 国产99精品在线观看| 久久精品日韩一区二区三区| 国产一区二区在线免费观看| 精品少妇一区二区三区日产乱码| 午夜精品久久久久久久久久| 欧美视频精品在线|