ROS学习心得——定位-SLAM-hector_mapping
FOR THE SIGMA
FOR THE GTINDER
FOR THE ROBOMASTER

简介:

产品相关数据与官方文档http://www.slamtec.com/cn/Lidar/A2

操作系统版本:Ubuntu16.04(注意:不同的ROS版本对应相应的Ubuntu操作系统版本的切勿安装错误)
http://www.ubuntu.org.cn/download/desktop 桌面版ubuntu16.04 下载
http://mirror.pnl.gov/releases/xenial/ Ubuntu系列镜像文件下载列表(amd64为64位,i386为32位)

ROS版本:kinetic-火箭龟
http://www.ros.org/ ROS官网

http://wiki.ros.org/kinetic/Installation ROS-kinetic下载地址(wiki里面的教程很不错的)

激光雷达驱动-ROS包:rplidar_ros

https://github.com/robopeak/rplidar_ros
https://github.com/ncnynl/rplidar_ros

或是利用git安装
1.sudo apt-get install git
2.git clone https://github.com/robopeak/rplidar_ros.git 或是 git clone https://github.com/ncnynl/rplidar_ros.git

注意:有人会问为什么两个链接看起来都一样,实际上是两个不同的人或是组织所建立的相同的内容,不同的库。

虚拟机版本:VMware15(注意:如果可以的话尽量不要用虚拟机,容易出现崩坏显现,为啥作者要用呢?当然是没钱啊!>_<
https://my.vmware.com/cn/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0
15版下载,密匙百度

国内源推荐:阿里云、sohu、cn99

运行步骤

1.请先确认RPLIDAR A2是否配置完成
参考链接:https://blog.csdn.net/whl970831/article/details/88097321

ROS学习心得——正确运行RPLIDAR A2激光雷达(让它转起来吧!)

2.下载并安装hector_mapping (注意ROS版本)

sudo apt-get install ros-kinetic-hector-slam

在这里插入图片描述
3.在rplidar_ros/launch/目录下新建hector_mapping_demo.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="rplidar_ros" type="rplidarNode" name="rplidarNode" output="screen">
    <param name="serial_port"         type="string" value="/dev/ttyUSB0"/>
    <param name="serial_baudrate"     type="int"    value="115200"/>
    <param name="frame_id"            type="string" value="laser"/>
    <param name="inverted"            type="bool"   value="false"/>
    <param name="angle_compensate"    type="bool"   value="true"/>
  </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>

最后保存下来。
在这里插入图片描述

4.插上rplidar a2并配置端口权限 (若已经完成步骤1的可以跳过该步骤)
ls -l /dev |grep ttyUSB

sudo chmod 666 /dev/ttyUSB0
source devel/setup.bash (这是位于在turtlebot_ws的路径下的指令)

在这里插入图片描述
5.运行写好的launch文件
先 roscore

新终端 roslaunch rplidar_ros hetor_mapping_demo.launch
得到结果图
在这里插入图片描述