仿真章前言
SLAM背景
导航的首要问题是定位与建图即——机器人现在在哪?
想象在黑暗的深海,丧失周围环境纹理特征,你怎么知道自己在哪,哪边是水面呢?
或者幻想你走在一片白茫茫的天地,你咋知道自己在不在原点,甚至怀疑自己走了吗
SLAM技术依据“里程计 IMU 激光雷达 视觉传感器”等硬件设备提供的数据来构建地图信息
SLAM算法各式各样,主要面临以下几个挑战

如果用几个关键词来描述SLAM算法的挑战,能否这样说:
1.精确性(精确的构建出周围环境)
2.鲁棒性(即便环境变化也稳定发挥)
3.实时性(即速度与计算效率)
理想与现实差距


AMCL定位算法
在已知的地图中使用雷达和里程计数据,具有较强的纠错功能,相对精准的找到机器人位置
假设在长直走廊中,丧失纹理,雷达定位就不准,就需要AMCL边运动边校准
给初始位姿是为了热启动


建图操作
前置工作-相关软件安装
前置工作-仿真/真机扫描
转化地图:
#订阅激光话题/scan 发布地图话题/map
ros2 launch slam_toolbox online_asyne_launch.py
显示地图:
RVIZ2用/map话题,配置一下就能构建
保存地图:
导航理论



TF关系
雷达与里程计各有缺陷,需要组合使用

TF关系三者固定与计算方式

定位-amcl算法
在已有的静态地图下,依赖里程计和激光雷达
但是传感器漂移(如IMU的累积误差、激光雷达的标定偏差)会导致测量值逐渐偏离真实值。
amcl算法负责输出map到odom的tf,里程计负责输出odom到base_link的tf
项目实战

1292

被折叠的 条评论
为什么被折叠?



