目錄
一、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