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

📄 selfloclization.cpp

📁 InnovLabSimu在vc++下实现
💻 CPP
字号:
#include "SelfLoclization.h"
CSelfLoclization::CSelfLoclization(unsigned MapWidth,unsigned MapHeight):LocRange(400,580,0,70,2.0000001,2*PI),//状态的范围
m_cParticleFlt(PARTICLE_NUM,CSelfLoclization::LocRange),m_cGlobalMap(MapHeight,MapWidth)
{

}
CSelfLoclization::~CSelfLoclization(void)
{

}
bool CSelfLoclization::InitSelfLoc()
{
	m_cParticleFlt.InitParticleFlt(m_cGlobalMap);
	//CParticle InitPart;
	//InitPart.XCoord=26740;
	//InitPart.YCoord=2949.5;
	//InitPart.Orientation=1.5*3.14159-(3.14159-2.912);
	//InitPart.Weight=1;
	////m_cParticleFlt.InitParticleFlt(InitPart);
	//m_cParticleFlt.InitParticleFltWithOneInitLoc(InitPart,m_cGlobalMap);
	return true;
}
RobotLoc CSelfLoclization::LoclizeSelf(CCoderBasePosePredict& PosePredictMod,NoisyWheelDis<uniform_random_type1> WheelDisVal,CGlobalMap &GlobalMap)
{
	RobotLoc SelfRobotLoc;
	if (m_cParticleFlt.RunFlt(PosePredictMod,WheelDisVal,GlobalMap,m_LaserData,NumOfData,m_cResamplerForPF))//定位成功运行
	{
		SelfRobotLoc=m_cParticleFlt.GetStateExpect();
	}
	else//定位不成功
	{
		//没定义
	}
	return SelfRobotLoc;
	
}

RobotLoc CSelfLoclization::LoclizeSelf(NoisyWheelDis<uniform_random_type1> WheelDisVal,float* pLaserData)
{
	RobotLoc SelfRobotLoc;
	if (m_cParticleFlt.RunFlt(m_cPosePredictMod,WheelDisVal,m_cGlobalMap,pLaserData,NumOfData,m_cResamplerForPF))//定位成功运行
	{
		SelfRobotLoc=m_cParticleFlt.GetStateExpect();
	}
	else//定位不成功
	{
		//没定义
	}
	return SelfRobotLoc;
}

⌨️ 快捷键说明

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