ros中slam理解
在ROS中,进行导航需要使用到的三个包是:
(1) move_base:根据参照的消息进行路径规划,使移动机器人到达指定的位置。这个路径规划包括全局路径和局部路径
参考:https://blog.csdn.net/Tansir94/article/details/83720740
https://blog.csdn.net/shenghuaijing3314/article/details/80005629
PS:其它规划算法,如人工势场,同时也可看下其他四种的入门规划算法
https://www.guyuehome.com/11044
(2) gmapping:根据激光数据(或者深度数据模拟的激光数据)建立地图;
(3) amcl:根据已经有的地图进行定位。(原理:https://zhuanlan.zhihu.com/p/126199044)
问题
1 同步问题(不同步会影响什么?)
多个小车通过ntp同步后,又不同步了.可能是因为每个小车计时有误差
2 跟随者一顿一顿的
1)这是因为领导者发布频率过高的话,跟随者会不断的计算新的路线,没有时间执行
2)小车的定位是准确的(如果小车速度慢的话雷达发布频率够了 路由器带宽够了)可能是轨迹规划的问题,导致计算慢(规划一次路径约1s)
3 单个小车走不了直线
左右轮中的电机转速有些微差异,其实这些可以通过pid来减小误差,设置pid参数时,可将摩擦力等误差考虑进去
4领导者和跟随者之间的间距比期望的大
领导者发布频率的问题?或者我认为跟随算法是开环控制,没有将他们之间的间距引入到控制回路中去
5 四个小车没问题,5个小车整个系统就崩了(全部的小车都找不到自己的位置)
ros的话题数太多,消息阻塞?
重要参考:
SLAM问题汇总https://www.it610.com/article/1287823527486992384.htm
常用的规划算法的代码及动画演示:https://github.com/zhm-real/PathPlanning
PS:
调节参数 可以尝试使用 rqt_reconfigure,比在yaml中方便
rosrun rqt_reconfigure rqt_reconfigure