傻瓜式记录:savvy的建图与amcl定位步骤

从来没有接触过slam的我第一次学习建图,对于想象力欠缺的新手来说真的很难受了,但是自己试着做一次就豁然开朗了,仅供刚入门的新手参考和自己将来快速回忆上手实验。

一、建图:
1、激光雷达:
ls -l /dev/ttyUSB0
sudo chmod 777 /dev/ttyUSB0
roslaunch ls01b_v2 ls01b_v2.launch --screen

2、机器人底盘控制:
roslaunch savvy base_controller.launch
rosrun savvy_teleop teleop_node

3、gmapping:
roslaunch savvy gmapping.launch

4、保存地图:
rosrun map_server map_saver -f [map`s name] (括号不用输入)

用键盘控制小车慢慢移动,尽量扫到空间中的每一个角落,当地图逐渐完整的时候就可以保存地图了。

二、amcl定位:
1、激光雷达:
同上

2、机器人底盘控制:
同上

3、amcl:
roslaunch savvy savvy_amcl.launch map:=[map`s name].yaml

4、信息订阅:
rostopic echo /amcl_pose (amcl发布的以/map为基坐标的机器人的当前pose,包括positioin与orientatiion,等价与/map–>/base_link)
rosrun tf tf_echo /map /odom (tf变换:/map–>/odom)
rosrun tf tf_echo /odom /base_link (tf变换:/odom–>/base_link) (2D下/link_footprint=/base_link)
rostopic echo /tf (监听所有的变换)

刚开始激光数据与地图的误差很大,可以用 ‘2D Pose Estimate’ 来调整地图上小车的pose,然后再用键盘控制小车慢慢上下左右旋转移动,直到粒子收敛。仿佛粒子收敛后的大小和我设置的footprinf差不多形状大小,不知道是巧合还是需要继续调整amcl中的参数,以后再慢慢研究了。当环境中加入了新障碍物也是可以定位成功的,但是时间需要更久一点,当然如果环境没有变化定位更准确。

注意:
(1)、若打开amcl后无激光数据,则需要重新启动激光程序再次打开。默认每次重新开始每个程序都要重新启动。
(2)、机器人的里程计的信息=当前地图中的机器人的位置-地图中机器人的起始位置:/base_link–>/odom = /map–>/base_link - /map–>/odom
(3)、amcl只发布变换:/map–>/odom,与机器人pose:/amcl_pose

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值