• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

从零搭建一辆ROS小车(三)使用激光雷达建图

人工智能 ZEEN 3006次浏览 0个评论

本文将介绍两种使用激光雷达的建图方法 本文所使用的代码:网盘链接 (包括前两篇的代码)


hector_mapping建图与定位

这种方法的优点是简便,只需要有一个激光雷达即可,支持手持建图,不需要底层的里程计数据, 这里我推荐一篇文章https://blog.csdn.net/weixin_41459903/article/details/102795148  

slam_gampping建图

准备工作

首先,我们在他的官方文档中可以看到,gmapping功能包订阅了 tf 和 scan,这个tf包括了odom和base_link的变换以及激光雷达和base_link的变换,在之前的文章里为我们介绍了前者,那么接下来将介绍后者的配置。  
从零搭建一辆ROS小车(三)使用激光雷达建图   那么我们需要下载 rplidar_ros 和 slam_gmapping 两个功能包,git太慢的话可以下载我网盘里的。网盘链接

配置串口

由于激光雷达插在电脑或者其他设备上时串口号总是变来变去,修改代码太麻烦,那么我们将设备和串口号做一个映射就可以解决这个问题了下载网盘的文件,在serial_port/serial_port_sh/rplida/ 下 运行create_udev_rules.sh这个脚本,便可以绑定。对于具体内容可以参考这篇博客,若有不明白的可以私信我。  

编写rplida.launch

这个文件中,我们可以看到首先启动了激光雷达的节点,同时在填写串口号的地方,我们改成 /dev/rplidar 这就是因为上文将设备对应的串口号映射为rplidar。 另外,在原文件中是没有做tf变换的,由于我们需要知道雷达与机器人的相对位置,所以还需要加上tf。  

<launch>
  <node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen">
  <param name="serial_port"         type="string" value="/dev/rplidar"/>
  <param name="serial_baudrate"     type="int"    value="115200"/><!--A1/A2 -->
  <!--param name="serial_baudrate"     type="int"    value="256000"--><!--A3 -->
  <param name="frame_id"            type="string" value="laser"/>
  <param name="inverted"            type="bool"   value="false"/>
  <param name="angle_compensate"    type="bool"   value="true"/>
  </node>
 
<!-- tf 包的static_transform_publisher 节点 
相对车的xyz方向位置以及xyz方向的角度偏转 父级坐标和雷达坐标,100ms广播一次-->
 
<node pkg="tf" type="static_transform_publisher"
name="base_link_to_laser"
args="0.01 0 0.01 0 0 0 1  /base_link /laser 100" />
 
 
</launch>

   

编写slam_gmapping.launch

 

<launch>
    <param name="use_sim_time" value="false"/>
    <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">
      <!--remap from="scan" to="base_scan"/-->
      <param name="map_update_interval" value="5.0"/>
      <param name="maxUrange" value="14.0"/>
      <param name="sigma" value="0.05"/>
      <param name="kernelSize" value="1"/>
      <param name="lstep" value="0.05"/>
      <param name="astep" value="0.05"/>
      <param name="iterations" value="5"/>
      <param name="lsigma" value="0.075"/>
      <param name="ogain" value="3.0"/>
      <param name="lskip" value="0"/>
      <param name="srr" value="0.01"/>
      <param name="srt" value="0.02"/>
      <param name="str" value="0.01"/>
      <param name="stt" value="0.02"/>
      <param name="linearUpdate" value="0.5"/>
      <param name="angularUpdate" value="0.218"/>
      <param name="temporalUpdate" value="5.0"/>
      <param name="resampleThreshold" value="0.5"/>
      <param name="particles" value="80"/>
      <param name="xmin" value="-1.0"/>
      <param name="ymin" value="-1.0"/>
      <param name="xmax" value="1.0"/>
      <param name="ymax" value="1.0"/>
      <param name="delta" value="0.05"/>
      <param name="llsamplerange" value="0.01"/>
      <param name="llsamplestep" value="0.01"/>
      <param name="lasamplerange" value="0.005"/>
      <param name="lasamplestep" value="0.005"/>
    </node>
</launch>

   

编写bringup_base.launch

这个launch文件用于启动我们前两篇文章所提到的节点,包括串口通信,里程计和键盘,顺便把雷达也启动了  

<launch>
    <node pkg="serial_port" type="port_SubAndPub.py" name="serial_data_contral" launch-prefix="xterm -e"/>
    <node pkg="serial_port" type="keyboard.py" name="car_teleop" launch-prefix="xterm -e"/>
    <node pkg="odom_tf_package" type="odom_tf_pub" name="odom_tf_pub" launch-prefix="xterm -e" ></node>
    
    <include file="$(find bringup)/launch/include/rplidar.launch" />
 
</launch>

   

启动建图

roslaunch bringup bringup_base.launch roslaunch bringup slam_gmapping.launch rviz   打开rviz后设置一下fixed frame 为odom 然后点击add,添加map,LaserScan,至此,通过键盘移动机器人就可以建图了(没实物的话先熟悉下流程,后面会更新仿真环境)  
从零搭建一辆ROS小车(三)使用激光雷达建图  

保存地图

rosrun map_server map_saver -f ~/map/rplidar_gmapping    


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明从零搭建一辆ROS小车(三)使用激光雷达建图
喜欢 (0)

您必须 登录 才能发表评论!

加载中……