聚创速腾16线激光雷达使用配置

目录

目录

一、硬件连接

1.1 硬件接口

1.2 数据接口

1.3 wireshark数据包检测

二、驱动配置

2.1 RS_View上位机

2.1.1 下载

2.1.2 运行

2.1.3 连接激光雷达查看点云

2.1.4 激光雷达IP、转速与工控机IP配置

2.2 ROS驱动配置

2.2.1 安装依赖

2.2.2 下载源码

2.2.3 编译

2.2.3 参数配置

三、启动运行

一、硬件连接

1.1 硬件接口

硬件连接图如下图所示,16线激光雷达的额定功率是12W,因此电流必须满足,否则电机转速不足,激光雷达的点云频率会降低。

硬件连接图

1.2 数据接口

速腾的16线和32线激光雷达的网口速率都是100Mbps,因此如果配备交换机,最好配备交换机的网口速率为100Mbps,否则会导致点云频率降低。

如果有多个激光雷达,则最好配千兆交换机,否则可能导致点云频率降低。

1.3 wireshark数据包检测

速腾官方推荐使用wireshark进行抓包测试,检测数据包的正确性。

wireshark安装与启动

sudo apt-get install wireshark

sudo wireshark

wireshark使用

(1) 打开激光雷达网口

找到激光雷达连接的网口id,双击。示例中网口为enp1s0,网口id右侧的曲线代表数据波动,如果一直是一条直线,代表没有数据传输。

打开wireshark

(2) 查询数据包信息

此处主要查看

激光雷达的IP地址,端口

点云发送目的地的IP地址和端口

robosense16出厂默认ip地址是192.168.1.200,工控机默认IP为192.168.1.102。

工控机如果改为其它IP地址,则启动驱动程序后无法接收到点云。

从下面数据流可以看出,雷达的IP是192.168.1.200,工控机的静态IP是192.168.1.102,端口分别是6699、7788,均为默认设置。

wireshark使用

二、驱动配置

2.1 RS_View上位机

2.1.1 下载

RS_View是速腾聚创的官方上位机,可以在官网下载,下载地址->软件->RS-LiDAR-16 RSView V3.1.2 for Ubuntu:

https://www.robosense.ai/resources-27

2.1.2 运行

软件下载完成后,进入目录RSView_ubu18_BP_v3.1.12_32multicast/RSView_ubu18_v3.1.12_32multicast

运行

./run_rsview.sh

若无法运行,给执行权限

sudo chmod +x run_rsview.sh

2.1.3 连接激光雷达查看点云

上位机界面如下图

上位机界面

单击雷达图标

单击雷达图标

参数设置:Calibration和Type(激光雷达种类)选择RS16,Intensity选择model3(彩色点云)

参数设置

查看点云

查看点云

若RSView软件看不到点云

通过wireshark检查下雷达的IP和端口

ifconfig检查下工控机的IP是否是激光雷达数据发送的destination的IP地址

2.1.4 激光雷达IP、转速与工控机IP配置

RSView上位机->Tools->RS-LIDAR Information

选择RS-LIDAR Information

激光雷达IP配置

点击Get,获取激光雷达信息,PC IP即为工控机IP

获取激光雷达信息

根据需求修改激光雷达IP和转速(300/600/1200rpm:5/10/20Hz)等参数,点击Set LIDAR,设置激光雷达参数

设置激光雷达参数

2.2 ROS驱动配置

2.2.1 安装依赖

sudo apt-get install -y libpcap-dev

2.2.2 下载源码

git clone https://github.com/RoboSense-LiDAR/rslidar_sdk.git

cd rslidar_sdk

git submodule init

git submodule update

2.2.3 编译

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

#=======================================

# Compile setup (ORIGINAL,CATKIN,COLCON)

#=======================================

set(COMPILE_METHOD CATKIN)

(2) 将rslidar_sdk工程目录下的package_ros1.xml名称改为package.xml。

(3) 新建一个文件夹作为工作空间,然后再新建一个名为src的文件夹, 将rslidar_sdk工程放入src文件夹内。

(4) 返回工作空间目录,执行以下命令即可编译&运行。

catkin_make

source devel/setup.bash

roslaunch rslidar_sdk start.launch

注意:速腾聚创github上有官方配置教程可以参考。

2.2.3 参数配置

驱动的配置文件为config.yaml, 储存于rslidar_sdk/config文件夹内。

整个参数文件可以被分为两部分,common部分以及lidar部分。

在多雷达情况下,common部分的参数设置将会被所有雷达共享,而lidar部分需要根据每台雷达实际情况分别进行设置。

参数文件config.yaml对缩进有严格的要求!请确保修改参数之后每行开头的缩进仍保持一致!

(1) common

此部分用于设置雷达的消息来源,以及是否将结果发布。

common:

msg_source: 1

send_packet_ros: false

send_point_cloud_ros: false

send_packet_proto: false

send_point_cloud_proto: false

pcap_path: /home/robosense/lidar.pcap

msg_source

1 -- 连接在线雷达. 更多使用细节请参考在线读取雷达数据发送到ROS。

2 -- 离线解析ROS或ROS2的packet包。更多使用细节请参考 录制ROS数据包&离线解析ROS数据包。

3 -- 离线解析pcap包。更多使用细节请参考离线解析Pcap包发送到ROS。

4 -- 雷达消息来源为Protobuf-UDP的packet消息,更多使用细节请参考 使用Protobuf发送&接收。

5 -- 雷达消息来源为Protobuf-UDP的点云消息,更多使用细节请参考 使用Protobuf发送&接收。

send_packet_ros

true -- 雷达packet消息将通过ROS或ROS2发出

由于雷达ROS packet消息为速腾聚创自定义ROS消息,因此用户无法直接echo话题查看消息具体内容。实际上packet主要用于录制离线ROS包,因为packet的体积小于点云。

send_point_cloud_ros

true -- 雷达点云消息将通过ROS或ROS2发出

点云消息类型为ROS官方定义的点云类型sensor_msgs/PointCloud2, 因此用户可以直接使用Rviz查看点云。同时,用户也可以选择录包时直接录制点云,但这样做包的体积会非常大,因此我们建议离线录制ROS包时录制packet消息。

send_packet_proto

true -- 雷达packet消息将通过Protobuf-UDP发出

send_point_cloud_proto

true -- 雷达点云消息将通过Protobuf-UDP发出

我们建议发送packet消息而不是点云,因为点云消息体积过大,对带宽有较高的要求。.

pcap_path

如果msg_source = 3, 请确保此参数设置为正确的pcap包的路径。

(2) lidar

本部分需要根据不同的雷达进行设置(多雷达时)。

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

ros:

ros_recv_packet_topic: /rslidar_packets

ros_send_packet_topic: /rslidar_packets

ros_send_point_cloud_topic: /rslidar_points

proto:

point_cloud_recv_port: 60021

point_cloud_send_port: 60021

msop_recv_port: 60022

msop_send_port: 60022

difop_recv_port: 60023

difop_send_port: 60023

point_cloud_send_ip: 127.0.0.1

packet_send_ip: 127.0.0.1

lidar_type

目前支持的雷达型号已在README中列出。

frame_id

点云消息的frame_id。

msop_port, difop_port

点云的msop端口号和difop端口号。 若收不到消息,请优先确认这两个参数是否配置正确。

start_angle, end_angle

点云消息的起始角度和结束角度,此处设置为软件屏蔽,无法减小每帧点云的体积,只会将区域外的点设置为NAN点。 起始角和结束角的范围应在0~360°之间。(起始角可以大于结束角).

min_distance, max_distance

点云的最小距离和最大距离,此处设置为软件屏蔽,无法减小每帧点云的体积,只会将区域外的点设置为NAN点。

use_lidar_clock

true -- 使用雷达时间作为消息时间戳。

false -- 使用系统时间作为消息时间戳。

(3) 示例

在线连接一台雷达,并发送点云到ROS。

common:

msg_source: 1

send_packet_ros: false

send_point_cloud_ros: true

send_packet_proto: false

send_point_cloud_proto: false

pcap_path: /home/robosense/lidar.pcap

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

ros:

ros_recv_packet_topic: /rslidar_packets

ros_send_packet_topic: /rslidar_packets

ros_send_point_cloud_topic: /rslidar_points

proto:

point_cloud_recv_port: 60021

point_cloud_send_port: 60021

msop_recv_port: 60022

msop_send_port: 60022

difop_recv_port: 60023

difop_send_port: 60023

point_cloud_send_ip: 127.0.0.1

packet_send_ip: 127.0.0.1

在线连接3台雷达,并发送点云到ROS。

注意lidar部分参数的缩进

common:

msg_source: 1

send_packet_ros: false

send_point_cloud_ros: true

send_packet_proto: false

send_point_cloud_proto: false

pcap_path: /home/robosense/lidar.pcap

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

ros:

ros_recv_packet_topic: /middle/rslidar_packets

ros_send_packet_topic: /middle/rslidar_packets

ros_send_point_cloud_topic: /middle/rslidar_points

proto:

point_cloud_recv_port: 60021

point_cloud_send_port: 60021

msop_recv_port: 60022

msop_send_port: 60022

difop_recv_port: 60023

difop_send_port: 60023

point_cloud_send_ip: 127.0.0.1

packet_send_ip: 127.0.0.1

- driver:

lidar_type: RSBP

frame_id: /rslidar

msop_port: 1990

difop_port: 1991

start_angle: 0

end_angle: 360

min_distance: 0.2

max_distance: 200

use_lidar_clock: false

ros:

ros_recv_packet_topic: /left/rslidar_packets

ros_send_packet_topic: /left/rslidar_packets

ros_send_point_cloud_topic: /left/rslidar_points

proto:

point_cloud_recv_port: 60024

point_cloud_send_port: 60024

msop_recv_port: 60025

msop_send_port: 60025

difop_recv_port: 60026

difop_send_port: 60026

point_cloud_send_ip: 127.0.0.1

packet_send_ip: 127.0.0.1

- driver:

lidar_type: RSBP

frame_id: /rslidar

msop_port: 2010

difop_port: 2011

start_angle: 0

end_angle: 360

min_distance: 0.2

max_distance: 200

use_lidar_clock: false

ros:

ros_recv_packet_topic: /right/rslidar_packets

ros_send_packet_topic: /right/rslidar_packets

ros_send_point_cloud_topic: /right/rslidar_points

proto:

point_cloud_recv_port: 60027

point_cloud_send_port: 60027

msop_recv_port: 60028

msop_send_port: 60028

difop_recv_port: 60029

difop_send_port: 60029

point_cloud_send_ip: 127.0.0.1

packet_send_ip: 127.0.0.1

目前支持的雷达型号:

RS-LiDAR-16:RS16

RS-LiDAR-32:RS32

RS-Bpearl:RSBP

RS-Ruby

RS-Ruby Lite

RS-LiDAR-M1

RS-Helios

参数理解

frame_id

点云消息的frame_id。

msop_port, difop_port

点云的msop端口号和difop端口号。 若收不到消息,请优先确认这两个参数是否配置正确。

start_angle, end_angle

点云消息的起始角度和结束角度,此处设置为软件屏蔽,无法减小每帧点云的体积,只会将区域外的点设置为NAN点。 起始角和结束角的范围应在0~360°之间。(起始角可以大于结束角).

min_distance, max_distance

点云的最小距离和最大距离,此处设置为软件屏蔽,无法减小每帧点云的体积,只会将区域外的点设置为NAN点。

use_lidar_clock

true -- 使用雷达时间作为消息时间戳。

false -- 使用系统时间作为消息时间戳。

更多配置细节如下,可以参考官方配置教程。

使用Protobuf发送&接收

多雷达

切换点云类型XYZI与XYZIRT

坐标变换功能

组播模式

三、启动运行

基于ROS catkin编译成功后

source devel/setup.bash

roslaunch rslidar_sdk start.launch


新版战法参不透?独家更新解读,双手奉上!
如何配置 RAM 频率以匹配英特尔® 处理器的规格