ROS系統建置與2D LiDAR SLAM實現-(1)
前言
身為碩士菸酒生,最近在進行離校前皆須面臨的一道關卡-交接,於是打算將碩論系統開發的無人移動載具其中幾個功能模組,其開發過程遇到的困難或是心得與大家分享😉
系統環境架設與安裝
此部分主要為透過2D LiDAR進行環境感測,並建置於ROS系統上,進行SLAM (Simultaneous Localization and Mapping),下表為此模組建置環境與所需軟體工具。
首先,必須於PC上建置相關環境,包括VMware、Ubuntu 18.04以及ROS Melodic,詳細安裝說明如下:
1. 於 VMware虛擬機下安裝 Ubuntu 18.04
參考網址: https://zhuanlan.zhihu.com/p/38797088
2. 安裝 ROS Melodic
1. Setting up source.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2. Setting up keys
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3. Installing ROS
sudo apt-get updatesudo apt-get install ros-melodic-desktop-full
4. Initializing rosdep
sudo rosdep initrosdep update
5. Setting the ROS environment
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrcsource ~/.bashrc
6. Getting rosinstall
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
7. Testing ROS
於終端機上輸入roscore後,將出現如下畫面,代表ROS安裝成功。
Hector SLAM建置與感測
接著,在 ROS Melodic上建置 RPLiDAR套件以及進行 SLAM感測,詳細安裝說明如下:
1. 安裝 RPLiDAR驅動
sudo apt-get install ros-melodic-rplidar-ros
2. 更改 COM Port許可權
sudo chmod 666 /dev/ttyUSB0
3. 測試 LiDAR掃描介面
roslaunch rplidar_ros view_rplidar.launch
此步驟執行成功後將顯示如下掃描感測點畫面,顯示於 ROS上之三維可視化工具 RViz上。
4. 安裝 Hector SLAM 套件
sudo apt-get install ros-kinetic-hector-slam
5. 建立 catkin工作空間(用於存放 rplidar_ros資料夾)
source /opt/ros/melodic/setup.bashmkdir -p ~/catkin_ws/srccd ~/catkin_ws/catkin_make
6. 在 rplidar_ros中新建 slam.launch檔案,程式碼如下:
<launch><node pkg="hector_mapping" type="hector_mapping" name="hector_mapping" output="screen"><!-- Frame names --><param name="pub_map_odom_transform" value="true"/><param name="map_frame" value="map" /><param name="base_frame" value="base_link" /><param name="odom_frame" value="base_link" /><!-- Tf use --><param name="use_tf_scan_transformation" value="true"/><param name="use_tf_pose_start_estimate" value="false"/><!-- Map size / start point --><param name="map_resolution" value="0.05"/><param name="map_size" value="2048"/><param name="map_start_x" value="0.5"/><param name="map_start_y" value="0.5" /><param name="laser_z_min_value" value = "-1.0" /><param name="laser_z_max_value" value = "1.0" /><param name="map_multi_res_levels" value="2" /><param name="map_pub_period" value="2" /><param name="laser_min_dist" value="0.4" /><param name="laser_max_dist" value="5.5" /><param name="output_timing" value="false" /><param name="pub_map_scanmatch_transform" value="true" /><!--<param name="tf_map_scanmatch_transform_frame_name" value="scanmatcher_frame" />--><!-- Map update parameters --><param name="update_factor_free" value="0.4"/><param name="update_factor_occupied" value="0.7" /><param name="map_update_distance_thresh" value="0.2"/><param name="map_update_angle_thresh" value="0.06" /><!-- Advertising config --><param name="advertise_map_service" value="true"/><param name="scan_subscriber_queue_size" value="5"/><param name="scan_topic" value="scan"/></node><node pkg="tf" type="static_transform_publisher" name="base_to_laser_broadcaster" args="0 0 0 0 0 0 /base_link /laser 100"/><node pkg="rviz" type="rviz" name="rviz"args="-d $(find hector_slam_launch)/rviz_cfg/mapping_demo.rviz"/></launch>
6. SLAM建圖
sudo chmod 666 /dev/ttyUSB0roslaunch rplidar_ros slam.launch
此步驟執行成功後將顯示如下SLAM建圖畫面,顯示於 ROS上之三維可視化工具 RViz上。
結語
以上為 ROS Melodic建置於 Ubuntu 18.04的安裝與測試過程,小弟我也是最近才接觸 ROS的世界😅,下篇將進一步將LiDAR感測數據結合無人移動載具進行控制,敬請期待!!
感謝您的閱讀,如有任何錯誤敬請指導,同時歡迎一同交流🙋♂️
Stay tuned for the next one, peace!