目录
一、SLAM技术
二、常用工具和传感器
三、相关功能包
1. gmapping建图功能包
2. map_server
四、SLAM 建图实验
1. 配置gmapping(launch文件)
2. 启动机器人仿真(含机器人以及传感器)
3. 运行gmapping节点
4. 启动rviz可视化工具
5. 保存地图文件
一、SLAM技术
地图构建(Mapping)是机器人在运动过程中逐步建立和更新其所处环境的地图。
(Simultaneous Localization and Mapping)即同时定位与地图构建,是一种概念,旨在让机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的环境特征定位自身位置和姿态,再根据自身位置构建周围环境的增量式地图,从而达到同时定位和地图构建的目的。
SLAM技术使用相机、激光雷达、惯性测量单元等传感器来收集环境信息,然后用算法将这些信息融合起来,以确定设备在未知环境中的位置,并构建一张环境地图。
二、常用工具和传感器
1. 激光雷达(LiDAR)
通过发射激光束并测量返回时间来计算与障碍物的距离,能够提供高精度的2D或3D环境建模,广泛用于SLAM(同步定位与地图构建)、路径规划、避障、目标跟踪等。2D LiDAR常用于室内机器人,3D LiDAR适用于自动驾驶、无人机测绘等复杂环境,常见型号包括Velodyne VLP-16、Hokuyo UST-10LX等。
2. RGBD相机
结合RGB和彩色图像和深度信息,提供环境的3D感知能力,可用于地图构建、目标识别、障碍物检测、人脸识别、手势控制等。常见的RGBD相机有Intel RealSense、Microsoft Kinect、Orbbec Astra等,广泛应用于机器人视觉、AR/VR、自动化检测等领域。
3. 超声波传感器
通过发射超声波并测量回波时间计算与障碍物的距离,适用于短距离障碍物检测,常用于自动泊车、无人机避障、水下探测、工业自动化等领域。其成本低、体积小,但受噪声和材质影响较大,常见型号如HC-SR04、MaxBotix MB1040。
4. IMU(惯性测量单元)
由加速度计、陀螺仪(有时包含磁力计)组成,用于测量机器人姿态、角速度、加速度等信息,常用于惯性导航、姿态估计、运动跟踪等。IMU可单独使用,也可与GPS、LiDAR、里程计融合以提高定位精度,常见型号有MPU6050、BNO055、VectorNav VN-100等。
5. 轮式里程计(Odometry)
通过测量轮子的旋转角度计算机器人在平面上的运动轨迹,适用于短时间内的相对位置估计,但存在累积误差,因此常与IMU、LiDAR、视觉SLAM结合使用以提高定位精度,广泛应用于移动机器人、自主导航、AGV(自动导引车)等。
三、相关功能包
1. gmapping建图功能包
gmapping
是一种基于粒子滤波算法的 SLAM工具,它可以帮助机器人在未知环境中创建地图的同时定位自己。具体来说,
gmapping
是 ROS 中实现激光SLAM的一个软件包,它结合了激光扫描器数据和机器人运动信息,实时生成并更新地图。常用在需要通过激光雷达进行建图的机器人系统中,尤其适用于移动机器人、无人车等场景。
gmapping
包含了完成 SLAM所需的所有核心算法,它会自动利用激光扫描数据和机器人的运动信息来进行地图构建和位置估算。只要你正确配置了相关参数和话题,就可以通过启动gmapping
节点来实现SLAM功能,而不必从头实现复杂的 SLAM 算法。(1)下载
gmapping
并不是 ROS 系统自带的核心组件,而是一个额外的 ROS 软件包。通常在使用 ROS 时,gmapping
需要单独安装并配置。sudo apt-get install ros-<ros