思岚SLAMTEC A1开箱测试(实现雷达数据的查看+hector_slam建图)

思岚A1开箱测试(实现雷达数据的查看+hector_slam建图)

在这里插入图片描述

一、测试坏境

①、SLAMTEC A1激光雷达;

②、Ubuntu16.04 下 ROS Kinetic。

二、测试功能

①、运行ROS包,查看雷达数据

②、使用hector_slam进行建图

三、具体实现过程

1、建立ROS工作空间

mkdir -p ~/dev/catkin_ws/src

进入src文件:

cd ~/dev/catkin_ws/src

初始化工作空间

catkin_init_workspace

在src文件中创建了一个 CMakeLists.txt 的文件,告诉系统ROS的工作空间。
在这里插入图片描述
2、下载ROS相关的功能包

在src目录下 下载SLAMTEC的激光雷达ROS包

git clone https://github.com/Slamtec/rplidar_ros.git

下载Hector_SLAM建图

git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git

3、在工作空间中编译

cd ~/dev/catkin_ws/
catkin_make

添加环境变量source

source ~/dev/catkin_ws/devel/setup.bash

(为了让source永久生效,应该写入.bashrc文件中)

echo"source~/dev/catkin_ws/devel/setup.bash" >> ~/.bashrc

source ~/.bashrc

4、驱动安装

源码安装 rplidar-ros 雷达驱动

sudo apt-get install ros-kinetic-rplidar-ros

源码安装 hector_slam库

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

在rplidar_ros中新建slam.launch文件**(非常重要,不然会报错)**

在rplidar_ros/launch/目录下添加slam.launch文件:

在这里插入图片描述

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>

5、连接雷达

在这里插入图片描述

雷达连接好后会出现usb串口
查看usb串口及权限

ls -l /dev |grep ttyUSB

对应的文件号应该是ttyUSB0
给串口文件号ttyUSB0添加写权限为:666

sudo chmod 666 /dev/ttyUSB0

6、使用rviz雷达数据

roscore
roslaunch rplidar_ros view_rplidar.launch

在这里插入图片描述

7、在终端查看雷达数据

启动ros主节点以及启动激光雷达

roscore
roslaunch rplidar_ros rplidar.launch

启动rplidarNodeClient节点,在终端查看数据

rosrun rplidar_ros rplidarNodeClient

在这里插入图片描述

8、使用Hector_SLAM建图

roscore
roslaunch rplidar_ros slam.launch

如果出现如下报错

在这里插入图片描述

进入到rplidar_ws目录下

cd ~/rplidar_ws
source devel/setup.bash
roslaunch rplidar_ros slam.launch

一定要切换rplidar_ws到此目录下在启动命令;

在这里插入图片描述

9、保存slam得到的地图信息
先安装map_server包;

sudo apt-get install ros-kinetic-map-server

然后,保存图形。

rosrun map_server map_saver -f ~/my_map
注:

进入roscoore,有时会使用CTRL+Z误操作关闭了ROS进程;

解决方案:

killall -9 roscore

killall -9 rosmaster

参考:https://blog.csdn.net/NouriXiiX/article/details/102690064

​ https://blog.csdn.net/t624124600/article/details/110723844

参考资源链接:[使用RPLIDAR与hector_slam创建geotiff地图教程](https://wenku.csdn.net/doc/6412b620be7fbd1778d459a9?utm_source=wenku_answer2doc_content) 在ROS环境中,要实现RPLIDAR激光雷达配合hector_slam算法创建2D地图并保存为geotiff格式,需要经过一系列步骤来确保正确配置和使用这些工具。首先,确保你的catkin工作空间`catkin_ws`已经建立并且正确配置,然后按照以下步骤操作: 1. **克隆RPLIDAR的ROS包**:将`rplidar_ros`包克隆到`catkin_ws/src`目录下,并在该目录中运行`catkin_make`命令来编译安装。 2. **安装hector_slam相关包**:使用`sudo apt-get install ros-<ros_version>-hector-slam`命令安装hector_slam包。 3. **安装map_server**:执行`sudo apt-get install ros-<ros_version>-map-server`来安装map_server,它能够处理地图数据,用于在RVIZ中展示地图。 4. **设置udev规则**:编辑`udev`规则,使`/dev/ttyUSB0`设备的权限设置为“0666”,确保非root用户也能使用RPLIDAR。 5. **配置launch文件**:在`hector_slam_launch`包的`launch`目录下创建两个launch文件,分别是`Slam.launch`和`Hector_mapping.launch`,前者用于启动RVIZ和映射流程,后者则用于配置hector_mapping节点参数和地图保存为geotiff格式。 6. **在RVIZ中加载地图**:使用`roslaunch hector_slam_launch Slam.launch`命令启动RVIZ,你可以通过`File->Open Config`加载`Hector_mapping.launch`文件来配置地图保存路径,确保地图能够保存为geotiff格式。 在上述步骤完成后,你应该能够使用RPLIDAR和hector_slam在ROS中创建并实时更新2D地图,并通过map_server将地图保存为geotiff格式。这将对机器人的自主导航和定位提供重要帮助。为了更深入地理解整个过程以及在遇到问题时寻求帮助,建议参阅《使用RPLIDAR与hector_slam创建geotiff地图教程》。这份资源不仅包括了具体的安装和配置步骤,还提供了详细的解释和故障排除指南,是解决当前问题并深入学习的良好起点。 参考资源链接:[使用RPLIDAR与hector_slam创建geotiff地图教程](https://wenku.csdn.net/doc/6412b620be7fbd1778d459a9?utm_source=wenku_answer2doc_content)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin的学习站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值