聚创速腾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

你可能感兴趣的:(聚创速腾16线激光雷达使用配置)