(九) 总结

gmapping源码中不完善的部分:

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