激光雷达初体验 - Ubuntu 18.04 + 思岚科技 RPLIDAR A1M8 + hector_slam 建图

思岚科技 RPLIDAR A1M8 + hector_slam 建图

    • 一、环境配置和基础测试
    • 二、hector_slam 安装
    • 三、launch 文件编写
    • 四、运行建图节点
    • 五、小结

一、环境配置和基础测试

  • 见上一篇博文 :激光雷达初体验 - Ubuntu 18.04 + 思岚科技 RPLIDAR A1M8 + ROS 上手使用

二、hector_slam 安装

  • 我这里是18.04下的Medolic版本:

    $ sudo apt-get install ros-melodic-hector-slam
    

三、launch 文件编写

  • ~/catkin_ws/src/rplidar_ros/launch/下编写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>

四、运行建图节点

  • 这里首先打开我们的激光雷达节点,然后运行我们刚编写的Slam节点。

    $ roslaunch rplidar_ros rplidar.launch
    $ roslaunch rplidar_ros slam.launch
    
  • rviz中的建图效果如图所示:

激光雷达初体验 - Ubuntu 18.04 + 思岚科技 RPLIDAR A1M8 + hector_slam 建图_第1张图片

五、小结

  • 本篇博客主要参考了 Rplidar A1/A2使用及Hector_SLAM建图 这一篇教程。

  • 小提示 1,如果通过github源码编译安装功能包的话,就不需要再利用 sudo apt-get install 的形式进行安装,否则可能会导致索引问题。之前在使用差速轮仿真库arbotix的时候就遇到这种问题,我同时安装了源码和apt的包,节点运行时优先索引到了源码下的功能包,然后提示py文件没权限(py文件很多,去挨个赋予权限肯定不是一劳永逸的办法),最后把源码下的包和catkin_ws/share中的编译文件全删除了,仅用apt的包就一点问题没有,我的经验就是,需要看源码的都用源码安装,只是拿来用的就用apt安装。

  • 小提示 2,在~/catkin_ws/src/rplidar_ros/launch/下新建launch文件:

    $ cd ~/catkin_ws/src/rplidar_ros/launch/
    $ touch slam.launch
    

你可能感兴趣的:(ROS学习记录,ROS,RPLIDAR,hector_slam)