Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 --SLAM不学无术小问题

Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据

新款驱动支持RS16、RS32、RSBP、RS128、RS80、RSM1-B3、RSHELIOS等型号

注意!!!!!! 该教程旨在引导安装,可能现在已经不具时效性了,建议官网查看官方教程

背景

   笔者在尝试新的多传感器融合算法LIO-SAM时惊异于其优异的性能,准备上手一试,跑源码作者给出的数据集时没有丝毫问题,效果也非常惊艳,但是适配自己的数据包时出现了问题,原作者对激光雷达的数据格式有要求,考虑到与IMU时间同步问题,源码中会检查激光雷达的ring通道和时间戳是否符合要求。但是笔者使用的激光雷达支持的格式是XYZI,即( x, y, z,intensity),为了解决这一问题,笔者登录了速腾聚创的官网寻求帮助。发现速腾聚创开发了一款新的激光雷达驱动rslidar_sdk,并停止了对旧驱动rs_driver的维护(仍然可用),其实旧的驱动已经集成到了新的SDK中,新的SDK功能更加强大,并且解决了笔者的问题。
   新款驱动支持两种激光雷达点云格式,即 XYZI (x, y, z, intensity)格式和 XYZIRT(- x, y, z, intensity, ring, timestamp)格式,其中后一种就包含了ring通道和timestamp时间戳数据,并且时间戳可以在配置文件中选择是使用雷达时间戳还是使用ROS时间戳。这很可以,准备安装。

一、下载rslidar_sdk

新建workspace下载sdk

mkdir  -p  RS_SDK/src

手动打开workspace进入src文件夹下将下面的文件解压到此处,先不要编译
然后打开: https://github.com/RoboSense-LiDAR/rslidar_sdk/releases.
请下载 rslidar_sdk.tar.gz 压缩包, 不要下载Source code。 因为Source code压缩包内不包含子模块rs_driver的代码, 用户还需自行下载rs_driver的代码放入其中才行。
在这里插入图片描述

二、添加依赖

1.Yaml (必需)

版本号: >= v0.5.2
若已安装ROS desktop-full, 可跳过
安装方式:

sudo apt-get update
sudo apt-get install -y libyaml-cpp-dev
2.Pcap (必需)

版本号: >=v1.7.4
安装方式:

sudo apt-get install -y  libpcap-dev
3. Protobuf (可选)

   protobuf(Google Protocol Buffers)是Google提供一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。但这个库目前还不是太流行。(官网注明可选,实际使用中会在CMakeLists.txt中链接进行编译,如果没有此库将会报错 )如果不需要此库的功能,也可以打开CMakeLists.txt文件中有关编译protobuf部分注释掉也可编译成功(注释掉以下部分)

#Protobuf#
find_package(Protobuf QUIET)
find_program(PROTOC protoc)
if(NOT PROTOC MATCHES "NOTFOUND" AND Protobuf_FOUND)
  message(=============================================================)
  message("-- Protobuf Found, Protobuf Support is turned On!")
  message(=============================================================)
  add_definitions(-DPROTO_FOUND)
  include_directories(${PROTOBUF_INCLUDE_DIRS})
  SET(PROTO_FILE_PATH ${PROJECT_SOURCE_DIR}/src/msg/proto_msg)
 file(GLOB PROTOBUF_FILELIST ${PROTO_FILE_PATH}/*.proto)
  foreach(proto_file ${PROTOBUF_FILELIST})
    message(STATUS "COMPILING ${proto_file} USING ${PROTOBUF_PROTOC_EXECUTABLE}")
    execute_process(COMMAND ${PROTOBUF_PROTOC_EXECUTABLE}
                    --proto_path=${PROTO_FILE_PATH}
                    --cpp_out=${PROTO_FILE_PATH}
                    ${proto_file})
  endforeach()
else(NOT PROTOC MATCHES "NOTFOUND" AND Protobuf_FOUND)
  message(=============================================================)
  message("-- Protobuf Not Found, Protobuf Support is turned Off!")
  message(=============================================================)
endif(NOT PROTOC MATCHES "NOTFOUND" AND Protobuf_FOUND)

笔者使用时按照官网的安装方式无法正确安装,有需要安装此库朋友这里推荐按照以下方式安装
此处参考大佬 链接: protobuf 安装. (侵删)

// 下载 protoBuf:
$ git clone https://github.com/protocolbuffers/protobuf.git
//  安装依赖库
$ sudo apt-get install autoconf  automake  libtool curl make  g++  unzip libffi-dev -y
// 进入目录
$ cd protobuf/ 
// 自动生成configure配置文件:
$ ./autogen.sh 
// 配置环境:
$ ./configure
// 编译源代码(会很慢要有耐心!):
$ make 
// 安装
$ sudo make install
// 刷新共享库 (很重要的一步啊)
$ sudo ldconfig 
// 成功后需要使用命令测试
$ protoc -h 

这个效果就表示安装成功:
在这里插入图片描述

三、编译

1.打开工程内的CMakeLists.txt文件,将文件顶部的set(COMPILE_METHOD ORIGINAL)改为set(COMPILE_METHOD CATKIN)。
#=======================================
# Compile setup (ORIGINAL,CATKIN,COLCON)
#=======================================
set(COMPILE_METHOD ORIGINAL)
改为:
#=======================================
# Compile setup (ORIGINAL,CATKIN,COLCON)
#=======================================
set(COMPILE_METHOD CATKIN)

2.

将rslidar_sdk工程目录下的package_ros1.xml文件重命名为package.xml。

3.返回工作空间目录,执行以下命

catkin_make

source devel/setup.bash

四、修改config.yaml参数

    本工程只有一份参数文件 config.yaml, 储存于rslidar_sdk/config文件夹内。打开此文件,找到以下部分:

lidar:
  - driver:
  //此处修改激光雷达型号
      lidar_type: RS128           
      frame_id: /rslidar           
      msop_port: 6699             
      difop_port: 7788            
      start_angle: 0              
      end_angle: 360               
      min_distance: 0.2            
      max_distance: 200            
      use_lidar_clock: false        

激光雷达型号默认RS128,这非常难受,修改为自己的激光雷达型号即可
不修改就是这效果:报错:

RoboSense-LiDAR-Driver is running.....
ERRCODE_MSOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_DIFOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_DIFOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_MSOPTIMEOU

在这里插入图片描述
修改激光雷达数据点云格式设置:
打开CMakeLists.txt,找到如下代码段

#=======================================
# Custom Point Type (XYZI, XYZIRT)
#=======================================
set(POINT_TYPE XYZIRT)

初始设置格式为:XYZI
需要XYZIRT格式可以修改为以下格式即可获得

#=======================================
# Custom Point Type (XYZI, XYZIRT)
#=======================================
set(POINT_TYPE XYZIRT)

五、配置IP

    使用网线将雷达与电脑或者工控机链接起来,激光雷达上电,点击右上角打开有线连接设置,使用IPV4设置本机静态IP如图示:

在这里插入图片描述
详细配置方式可参看速腾聚创官网给出的具体型号的使用参考手册

六、Fire

启动launch文件

source devel/setup.bash

roslaunch rslidar_sdk start.launch

正常情况可以下可以在RVIZ中看到扫描帧:
在这里插入图片描述
在这里插入图片描述

以上部分配置仅仅可使激光雷达显示正常,可以录制自己需要的的数据格式,具体参数还需自己调试。以上步骤只是笔者所遇问题的解决办法,不当之处欢迎大家交流指正。这只实现了测试算法的第一步---------拥有正确的数据集,后期调试好了LIO-SAM适配速腾激光雷达的步骤会与大家分享。

官方安装教程: https://github.com/RoboSense-LiDAR/rslidar_sdk/blob/v1.3.0/README_CN.md.

官方config.yaml参数配置说明:https://github.com/RoboSense-LiDAR/rslidar_sdk/blob/v1.3.0/doc/intro/parameter_intro_cn.md.

笔者另一篇博客实现:速腾聚创雷达点云格式转换为Velodyne雷达点云格式:
链接: Ubuntu18 安装ROS节点解决----速腾聚创雷达点云格式转换为Velodyne雷达点云格式 --SLAM不学无术小问题.

仅供速腾聚创品牌的雷达参考

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42141088/article/details/117123174

  • 0
    点赞
  • 193
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
### 回答1: 以下是在Ubuntu 18.04上安装hector-slam的步骤: 1. 打开终端并更新软件包列表: sudo apt-get update 2. 安装hector-slam: sudo apt-get install ros-melodic-hector-slam 3. 安装hector-slam所需的其他依赖项: sudo apt-get install ros-melodic-geographic-msgs ros-melodic-tf2-geometry-msgs ros-melodic-laser-geometry ros-melodic-tf2-sensor-msgs 4. 启动hector-slam: roslaunch hector_slam_launch tutorial.launch 5. 打开另一个终端并启动激光扫描仪: roslaunch hector_slam_launch laser_scan.launch 6. 打开rviz并添加hector-slam节点: rosrun rviz rviz 7. 在rviz中添加hector_mapping节点并设置其参数。 以上是在Ubuntu 18.04上安装hector-slam的步骤。 ### 回答2: Hector-slam是一个开源的二维激光雷达SLAM算法,可以用于在ROS中进行移动机器人的自主导航。在Ubuntu18.04 LTS上安装Hector-slam相对来说比较容易。下面是安装Hector-slam的步骤: 1. 首先要安装ROS Melodic(或更高版本)和雷达驱动程序。可以参考官方文档 https://wiki.ros.org/melodic/Installation/Ubuntu 安装ROS Melodic。 2. 打开终端,输入以下命令,将hector-slam安装到ROS中: ``` sudo apt-get install ros-melodic-hector-slam ``` 3. 安装完后,输入以下命令,启动Hector-slam演示节点: ``` roslaunch hector_slam_launch tutorial.launch ``` 4. 接下来,启动雷达驱动程序节点: ``` rosrun hokuyo_node hokuyo_node ``` 如果你使用的是其他品牌的激光雷达,需要使用相应的驱动程序节点,例如SICK的雷达需要使用sicktoolbox_wrapper节点。 5. 最后,启动Rviz可视化工具,用于显示SLAM的结果: ``` roslaunch hector_slam_launch tutorial.launch ``` 现在,你应该可以在Rviz中看到机器人的地图和轨迹了。 总的来说,安装hector-slam相对来说比较简单,只需要按照以上步骤依次操作即可, 但在安装过程中,可能会出现一些报错或者其他问题,需要针对具体的问题进行调试。 ### 回答3: 在Ubuntu 18.04上安装Hector SLAM,需要做以下几个步骤: 一、安装Ros: 1、打开终端(Ctrl + Alt + T)。 2、在终端中执行以下命令,来添加ROS软件包的源: ``` sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' ``` 3、添加ROS软件包的密钥: ``` sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 ``` 4、更新软件包列表: ``` sudo apt-get update ``` 5、安装ros-desktop-full: ``` sudo apt-get install ros-melodic-desktop-full ``` 二、安装Hector SLAM: 1、安装hector-slam包: ``` sudo apt-get install ros-melodic-hector-slam ``` 2、安装ros-kinetic-gmapping: ``` sudo apt-get install ros-melodic-gmapping ``` 三、运行Hector SLAM: Hector SLAM包提供了hector_mapping节点,通过该节点可以启动Heitor码购买地图建图: ``` roslaunch hector_mapping hector_mapping.launch ``` 启动hector_mapping节点后,还需要订阅雷达或者深度相机的数据,并发布TF变换。 四、查看地图: 在地图生成过程中,hector_mapping节点会发布/map话题,该话题包含了SLAM构建出来的地图。 可以通过rviz来查看地图,启动rviz: ``` rosrun rviz rviz ``` 在rviz中,通过添加Map部分的话题来显示hector_mapping节点发布的地图。可以通过添加LaserScan(或PointCloud2)部分的话题来显示雷达(或深度相机)返回的数据。 以上操作就可以在Ubuntu 18.04上安装Hector SLAM,进行地图建图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值