gmapping源码中不完善的部分:
- drawFromMotion函数是一个十分粗糙的运动模型,只是简单的矢量加减运算。相比于《概率机器人》中提到的速度模型和里程计模型,有很多方面都没有考虑,精度上可能有折扣。
m_angularOdometryReliability
和m_linearOdometryReliability
用于控制激光评分的增益odo_gain
, 实际都是0,所以没有用到,而且无法用参数赋值, 要使用就得修改源码.- 紧接上面的代码,
localScore=odo_gain*score(map, localPose, readings);
,localScore在之后的likelihoodAndScore
函数里实际赋值为0,根本没有用。所以这里有好几行可以删除 - 在论文中,粒子的权重不是用最优位姿的似然值来表示的,而是用所有的似然值的和来表示的
- 重采样的粒子索引选取用的是轮盘赌算法,有些论文提出了一些更好的算法