1. 測試環境 Ubuntu 16.04 x64、ROS Kinetic、Velodyne VLP 16、RoboWare Studio 2. 安裝 ROS 功能包 3. 連接激光雷達 網線直連本機與激光雷達,已知 Velodyne VLP 16 的 IP 地址為 192.168.1.201,配置本 ...
1. 測試環境
Ubuntu 16.04 x64、ROS Kinetic、Velodyne VLP-16、RoboWare Studio
2. 安裝 ROS 功能包
sudo apt-get install ros-kinetic-velodyne
sudo apt-get install ros-kinetic-gmapping
sudo apt-get install ros-kinetic-laser-scan-matcher
3. 連接激光雷達
網線直連本機與激光雷達,已知 Velodyne VLP-16 的 IP 地址為 192.168.1.201,配置本機地址為 192.168.1.77,打開瀏覽器輸入 192.168.1.201 查看激光雷達的配置文件,確保其 Host (Destination) 的 IP 地址與本機相同。
4. 創建 ROS 工程
打開 RoboWare Studio,新建工作區 catkin_ws,然後在終端執行:
cd catkin_ws/src
git clone https://github.com/ros-drivers/velodyne.git
接下來採用 catkin_make 構建整個項目,最後在 .bashrc 文件末尾添加:
source /current_path/catkin_ws/devel/setup.bash
其中,current_path 根據自身工作目錄而定。
5. 把 Velodyne VLP-16.xml 轉換成 VLP-16.yaml 文件
rosrun velodyne_pointcloud gen_calibration.py /current_path/VLP-16.xml
6. 創建地圖
(1) 在 Ubuntu 系統中打開一個終端,輸入以下命令運行 ROS 節點管理器:
roscore
(2) 在 Ubuntu 系統中打開一個終端,運行 VLP16_points.launch:
roslaunch velodyne_pointcloud VLP16_points.launch calibration:=/current_path/VLP-16.yaml
(3) 在 Ubuntu 系統中打開一個終端,輸入以下命令發佈 tf 變換 base_link->velodyne:
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link velodyne 0
(4) 在 Ubuntu 系統中打開一個終端,啟動 slam_gmapping:
rosrun gmapping slam_gmapping
(5) 在 Ubuntu 系統中打開一個終端,啟動 laser_scan_matcher_node,並指定 fixed_frame 為 odom:
rosrun laser_scan_matcher laser_scan_matcher_node _fixed_frame:=odom
上述過程中,gmapping 提供 map->odom 之間的 tf 變換,laser_scan_matcher 提供 odom->base_link 之間的 tf 變換,static_transform_publisher 提供 base_link->velodyne 之間的 tf 變換。
7. 實時顯示地圖創建過程
在 Ubuntu 系統中打開一個終端,執行命令:
rosrun rviz rviz
然後在 rviz 中點擊 Add -> By topic,添加 Map、LaserScan 或 PointCloud2 等,實時顯示獲取到的結果。
本文鏈接:https://www.cnblogs.com/lightweh/p/10076294.html,轉載請註明出處。