百行业为先 ,万恶懒为首。——梁启超
文章目录
- :smirk:1. 激光SLAM
- :blush:2. 二维激光SLAM
- :satisfied:3. 三维激光SLAM
😏1. 激光SLAM
SLAM(同步定位与地图构建)是一种机器人感知技术,用于在未知环境中同时确定机器人的位置并构建地图。
SLAM的基本步骤如下:
1. 数据收集:使用2D/3D激光雷达扫描环境并收集数据。
2. 坐标系设置:设置机器人和环境的坐标系,以使数据可以被准确地处理。
3. 特征提取:从收集的数据中提取关键特征,如环境中的墙壁、门、家具等,以便在地图中标记对象。
4. 运动估计:计算机器人在环境中的位置和方向,以便在地图中准确地放置机器人。
5. 地图构建:将收集的数据和特征存储在地图中,以便机器人在环境中导航。
SLAM可以应用于机器人领域,如自动导航系统、仓储物流、智能家居系统,甚至是无人机。它可以帮助机器人自主感知环境、绕过障碍物并完成任务。
😊2. 二维激光SLAM
最常见的二维激光SLAM的应用就是扫地机器人了。
ROS社区提供了多种2D SLAM算法,可直接使用或进行二次开发:
- gmapping:该功能包提供了一个基于粒子滤波器的SLAM算法,可以使用2D激光雷达构建环境地图。
apt安装:sudo apt-get install ros-melodic-slam-gmapping
- hector_slam:该功能包提供了一种基于反演测量束(raycasting)的SLAM算法,不需要里程计数据,直接使用2D激光雷达就可构建环境地图。
apt安装:sudo apt-get install ros-melodic-hector-slam
-
cartographer:该功能包提供了一种高质量、实时的SLAM算法,可以使用2D激光雷达构建环境地图。
-
laser_scan_matcher:该功能包提供了一个激光雷达数据匹配算法,可以用于机器人的定位、校正和导航。
-
karto_slam:该功能包提供了一个基于图优化的SLAM算法,可以使用2D激光雷达构建环境地图。
-
gridmap:该功能包提供了一种用于2D环境地图的数据结构和算法,可以方便地处理和分析2D地图。
😆3. 三维激光SLAM
目前大多数智能汽车使用的是三维激光雷达,3D SLAM也有许多开源算法,可直接使用或进行二次开发:
-
OctoMap:该功能包提供了一种生成3D环境地图的算法,可以使用激光雷达等传感器。
-
LOAM:该功能包提供了一个基于里程计的SLAM算法,可以使用Velodyne LiDAR等3D激光雷达,适用于室内和室外环境。
-
LeGO-LOAM:该功能包是LOAM的改进版,可以更精确地定位和建立3D地图,适用于室内和室外环境。
源码:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
运行:roslaunch lego_loam run.launch
-
RTAB-Map:该功能包提供了一种深度学习算法,可以使用激光雷达、RGB-D相机等传感器,建立3D环境地图。
-
libpointmatcher:该功能包提供了标准化的点云处理算法库,可以用于点云匹配、滤波、注册和配准。
以上。