SLAM 与自主导航
SLAM(即时定位与建图)回答两个问题:我在哪?周围长什么样?解决了它,机器人才敢自由走动。
一、两代 SLAM
- 激光 SLAM(如 Cartographer / gmapping):精度高、受光照影响小,室内首选
- 视觉 SLAM(如 ORB-SLAM):只需相机,成本低,室外与纹理丰富场景更合适
二、定位的朴素解释
没有 GPS 的室内,机器人靠“运动估计 + 观测匹配”定位:里程计给个预判,激光扫描再和地图对一下,误差互相校正,这就是卡尔曼/粒子滤波的直觉。
三、导航 = 全局规划 + 局部避障
Nav2 是 ROS 2 的导航栈:全局规划器找出一条到目标点的路径,局部规划器实时躲避刚冒出来的障碍:
ros2 launch nav2_bringup bringup_launch.py map:=map.yaml
四、让底盘动起来
底盘要能收发 /cmd_vel(线速度 + 角速度)话题,并提供里程计。差速 / 麦克纳姆轮底盘的模型略有不同,先跑仿真再上真车。
五、避坑清单
- 地图精度不够:先调好激光安装角度与帧率
- 走位漂移:加回环检测,定期重定位
- 导航撞墙:多半是代价地图膨胀半径与底盘尺寸不匹配
跑通“建图—导航”后,机器人就具备了“移动”这个最基础的能力,再往上叠加抓取与 AI,就是具身智能了。