技术干货

ros2 foxy + nav2,amcl跑起来定位老往一边飘,换地图也一样

zqz1977
zqz1977
2026/07/23 11:17

厂里一台agv,ros2 foxy装的nav2,激光是思岚a1,底盘大概一米二长。amcl跑起来定位几分钟后就开始慢慢往左偏,地图是提前建好的那种,跑十米能飘出去快半米。换过几份地图重新建也一个德行,里程计用的轮式编码器+imu简单融合。

把amcl的参数翻来覆去调了一通,odom_model_type改成diff-corrected、min_particles拉到3000,update_min_d改小到0.05,飘得慢点但还是会偏。tf树检查过没断,base_link->laser的静态tf也没问题,imu数据看着也正常没漂。

想问问各位,amcl飘得这么明显,到底是参数没调对,还是说ros2 foxy这版amcl本身就有啥坑?有没有必要换回ros1 melodic或者直接上humble?

160 4

全部回复 (4)

军哥
军哥#1

odom_model_type设的啥?diff-corr和diff差很多的,你里程计不准的话必须上corr。

2026/07/23 19:58
阿辉
阿辉#2

把update_min_d再调大点,0.1起步;min_particles别上太高,三五千够用了,再高你cpu直接拉满更新跟不上更飘。我之前调过类似的车。

2026/07/24 21:13
日进斗金
日进斗金#3

fosy的amcl代码挺久没更新了,有些issue到现在还挂着。我直接换humble之后稳得很,不然你就把amcl源码拉下来patch几个已知bug,比在参数里死磕强。

2026/07/25 21:53
老沈
老沈#4

一米二的agv,思岚a1那颗激光角度分辨率本来就稀,建图匹配容易糊,amcl粒子再少肯定飘。先把laser_min_dist和beam_skip_threshold这俩动一下试试。

2026/07/28 12:23