Robosense 激光雷达slam建图(3):使用hector_slam建图

前面两篇文章进行了激光雷达的测试和三维点云转二维,这里就可以进行slam建图了,我们这里采用hector_slam包进行建图。

1,安装hector_slam

cd ~/catkin_ws/src
git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam
cd ~/catkin_ws
catkin_make

2,修改tutorial.launch文件

cd ~/catkin_ws/src/hector_slam/hector_slam_launch/launch
gedit tutorial.launch

将原来的文件改为如下:

<?xml version="1.0"?>

<launch>

  <arg name="geotiff_map_file_path" default="$(find hector_geotiff)/maps"/>

  <param name="/use_sim_time" value="false"/>

  <node pkg="rviz" type="rviz" name="rviz"
    args="-d $(find hector_slam_launch)/rviz_cfg/mapping_demo.rviz"/>

  <include file="$(find hector_mapping)/launch/mapping_default.launch"/>

  <include file="$(find hector_geotiff)/launch/geotiff_mapper.launch">
    <arg name="trajectory_source_frame_name" value="scanmatcher_frame"/>
    <arg name="map_file_path" value="$(arg geotiff_map_file_path)"/>
  </include>

  <node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0.0 0.0 0.0 0 0 0.0 /odom /base_link 10"/>

  <node pkg="tf" type="static_transform_publisher" name="base_frame_laser" args="0 0 0 0 0 0 /base_link /laser 10"/>

</launch>

主要做了两点修改:

  1. <param name="/use_sim_time" value="false"/>中的true改为false;
  2. 添加了两个tf变换坐标。

3,修改mapping_default.launch文件

上一步骤中修改了tf坐标的名称,这里也需要在对应的地方那个修改。如下:

cd ~/catkin_ws/src/hector_slam/hector_mapping/launch
gedit mapping_default.launch

修改如下:

  <arg name="base_frame" default="base_link"/>
  <arg name="odom_frame" default="base_link"/>

4,修改rslidar中的frame_id

由于hector_slam从激光雷达处订阅的frame_id为laser, 而激光雷达发布的frame_id为rslidar,因此需要对rslidar中的源码进行修改,并重新编译。如下:

#源码位置
cd ~/catkin_ws/src/ros_rslidar/rslidar_driver/src
gedit rsdriver.cpp

private_nh.param("frame_id", config_.frame_id, std::string("rslidar")); 中的rslidar改为laser

#重新编译rslidar_ros
cd ~/catkin_ws/src
catkin_make

5,创建slam.launch文件

cd ~/catkin_ws/src/ros_rslidar/rslidar_pointcloud/launch
gedit slam.launch

在创建的空文本中输入如下:

<launch>

  <include file="$(find rslidar_pointcloud)/launch/rs_lidar_16.launch" />

  <include file="$(find pointcloud_to_laserscan)/launch/point_to_scan.launch" />

  <include file="$(find hector_slam_launch)/launch/tutorial.launch" />

</launch>

第一个是启动激光雷达,第二个是将三维point转换为二维scan,第三个是执行hector_slam功能。

这里需要注意的是,第一个和第三个都启动了rviz,需要将第一个launch文件中的rviz注释掉。如下:

cd ~/catkin_ws/src/ros_rslidar/rslidar_pointcloud/launch
gedit rs_lidar_16.launch

rviz注释掉:

  <!-- <node name="rviz" pkg="rviz" type="rviz"  args="-d $(find rslidar_pointcloud)/rviz_cfg/rslidar.rviz" /> -->

7,启动slam.launch 文件

roslaunch rslidar_pointcloud slam.launch

正常的话便会显示如下,手持雷达平稳移动,便会对周围的环境进行建图:
在这里插入图片描述

看下节点流程图rqt_graph,如下:
在这里插入图片描述

RoboSense Lidar-16是一款高性能的16线激光雷达,适用于自动驾驶和环境感知应用。以下是使用该产品的手册。 1. 硬件介绍:首先,了解硬件的基本信息,包括尺寸、重量、安装方式等。确保正确操作和安装。 2. 软件安装:用户需要下载并安装相应的软件程序,以便与激光雷达进行数据交互和配置。进入软件后,可以根据需要调整雷达的灵敏度、扫描范围和数据输出等参数。 3. 连接设置:接下来,将激光雷达与计算机或其他设备进行连接。使用所提供的连接线将雷达连接到计算机的USB或其他接口上。 4. 数据采集:在软件中选择相应的扫描模式和数据保存路径,然后开始进行数据采集。用户可以通过软件界面实时查看雷达扫描到的环境图像,并将其保存为点云数据。 5. 数据处理:采集到的点云数据可以通过相关软件进行处理。用户可以将其用于建立地图、环境感知、物体检测等应用。 6. 故障排除:在操作过程中,如果遇到问题或错误消息,用户可以参考手册中的故障排除指南,以解决常见问题。 7. 安全注意事项:为了确保安全使用,用户需要注意雷达的工作环境和操作要求。避免过度振动、水浸、高温等情况,以免对雷达造成损坏。 总之,RoboSense Lidar-16 16线激光雷达使用手册提供了有关该产品的详细说明,从硬件介绍到软件安装、数据采集和处理,以及故障排除等方面。正确操作和使用该产品,可以有效提高自动驾驶和环境感知的性能。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值