Ubuntu18.04鲁班猫ROS-melodic适配镭神智能C16多线激光雷达

前言

  本文记录在Ubuntu18.04-melodic中适配镭神智能C16多线雷达的过程,使用最近比较火的国产ROS开发板鲁班猫(LubanCat )进行适配。

准备硬件

一套镭神智能C16多线雷达套件(雷达主体、电源适配器、网线-用来通信)
一个ROS开发板鲁班猫,用于提供Ubuntu18.04-melodic系统环境

预期效果

将LslidarC16雷达连接鲁班猫主控,可通过rviz查看输出pointcloud点云,读取LaserScan点云数据。

硬件介绍

一、关于雷达

  镭神智能C16多线激光雷达,采用16条激光线,能达到20HZ的扫描频率,对应最高0.09度的角分辨率,精度±3cm,能够精确地检测物体的位置和形态。
Ubuntu18.04鲁班猫ROS-melodic适配镭神智能C16多线激光雷达_第1张图片

二、关于鲁班猫

  鲁班猫(LubanCat)是野火科技推出的Linux、Android卡片电脑系列品牌。这个系列的板子便宜好用,操作系统适配度高,开源教材资料比较多,能学到挺多东西的。

三、16线雷达接线安装

  将LslidarC16雷达按照下面的接线方式进行连接,先给雷达接上电源,用网线的一端接入雷达接线盒,另一端接入鲁班猫,如图所示

安装示意图:
Ubuntu18.04鲁班猫ROS-melodic适配镭神智能C16多线激光雷达_第2张图片

四、适配16线雷达SDK

镭神智能C16功能包:

git clone -b C16_V2.6/2.8/3.0 https://github.com/Lslidar/Lslidar_ROS1_driver.git

其他雷达的功能包可以在这里获取:
https://github.com/Lslidar/Lslidar_ROS1_driver
pointcloud _to _lasescan功能包:
https://github.com/ros-perception/pointcloud_to_laserscan.git
把对应的SDK下载到本地端,然后将文件放入工作空间内。

lslidar_driver功能包是16线雷达输出ROS消息数据的驱动功能包,输出16线雷达点云相关消息数据。
pointcloud _to _lasescan功能包是将pointcloud2点云消息数据转为laser_scan消息的功能包。

将llslidar_driver功能包和pointcloud_to_laserscan功能包到工作空间中,在工作空间目录下编译相关的功能包:

rosdep install--from-pathssrc--ignore-src-r-y#一键安装依赖
catkin_make 

五、16线雷达的网络配置

STEP1:配置网络

打开网络设置,找到有线的设备号eth0 (根据Device中的选项确定)
Ubuntu18.04鲁班猫ROS-melodic适配镭神智能C16多线激光雷达_第3张图片

STEP2:固定有线ip

在IPV4设置中将模式改为Manual,输入固定的ip地址:192.168.1.102,子网掩码255.255.255.0,网关192.168.1.1,单击保存设置。保存好之后,就可以在机器人重启后自动连接到16线雷达。
Ubuntu18.04鲁班猫ROS-melodic适配镭神智能C16多线激光雷达_第4张图片

STEP3:固定有线ip,查看静态ip是否固定成功

在终端输入ifconfig来查看静态ip是否固定成功:
ifconfig
Ubuntu18.04鲁班猫ROS-melodic适配镭神智能C16多线激光雷达_第5张图片

六、16线雷达的参数说明及使用

下面是16线雷达的一些相关参数,大家可以根据需要进行配置:

<launch>
  <arg name="device_ip" default="192.168.1.200" />
  <arg name="msop_port" default="2368"/>
  <arg name="difop_port" default="2369"/>
  <arg name="use_gps_ts" default="false" />
  <!--pcl_type切换点云类型  --false:点云类型为xyzirt --true:点云类型为xyzi-->
  <arg name="pcl_type" default="false" />
  <!--c16表示机械式16线雷达;c32表示机械式32线雷达 -->
  <arg name="lidar_type" default="c32"/>
 <!--包长1206或1212 -->
  <arg name="packet_size" default="1206"/>
    <!--c16_2表示16线垂直角度分辨率为2度的雷达,c16_1表示16线垂直角度分辨率为1.33度的雷达 -->
  <arg name="c16_type" default="c16_2"/>

   <!--c32_2表示32线垂直角度分辨率为1度的雷达,c32_1表示32线垂直角度分辨率为0.33度的雷达 -->
  <arg name="c32_type" default="c32_2"/>

   <!--3表示32线fpga为2.7\2.8\3.0的版本的雷达,2表示32线fpga为2.6的版本的雷达-->
  <arg name = "c32_fpga_type" default="3"/>


  <node pkg="lslidar_driver" type="lslidar_driver_node" name="lslidar_driver_node" output="screen">
    <!--param name="pcap" value="$(find lslidar_driver)/pcap/xxx.pcap" /-->
    <param name="device_ip" value="$(arg device_ip)" />
    <param name="msop_port" value="$(arg msop_port)" />
    <param name="difop_port" value="$(arg difop_port)"/>
    <param name="lidar_type" value="$(arg lidar_type)"/>
     <param name="packet_size" value="$(arg packet_size)"/>
     <param name="pcl_type" value="$(arg pcl_type)"/>
    <param name="c16_type" value="$(arg c16_type)"/>
    <param name="c32_type" value="$(arg c32_type)"/>
    <param name="c32_fpga_type" value="$(arg c32_fpga_type)"/>
    <param name="add_multicast" value="false"/>
    <param name="group_ip" value="224.1.1.2"/>
    <param name="use_gps_ts" value="$(arg use_gps_ts)"/>
    <param name="min_range" value="0.15"/>
    <param name="max_range" value="150.0"/>
    <param name="horizontal_angle_resolution" value="0.2"/>
    <param name="frame_id" value="laser"/>
    <param name="distance_unit" value="0.4"/>
    <param name="angle_disable_min" value="0"/>
    <param name="angle_disable_max" value="0"/>
    <param name="packet_rate" value="1700.0"/>
    <param name="scan_num" value="16"/>
    <param name="publish_scan" value="false"/>
    <param name="pointcloud_topic" value="point_cloud_raw"/>
    <param name="coordinate_opt" value="false"/>
  </node>

  <!-- <node pkg="rviz" type="rviz" name="rviz" args="-d $(find lslidar_driver)/rviz_cfg/lslidar.rviz"/> -->
 
 <!--node pkg="tf" type="static_transform_publisher" name="laser_link_to_world" args="0 0 0 0 0 0 world laser_link 100" /-->
  
</launch>

七、启动雷达

在16线雷达使用过程中,为了方便利用雷达的点云消息,需要使用pointcloud_to_laserscan功能包来将点云数据转换到2D平面的laser_scan消息,同时要打开lslidar_ros功能包的start.launch文件,和pointcloud_to_laserscan功能包的pointcloud_scan.launch文件。

roslaunch  lslidar_driver  lslidar_c16.launch 
roslaunch  pointcloud_to_laserscan  pointcloud_scan.launch

打开RVIZ,添加相应的组件就可以看到可视化的数据了。

rosrun rviz rviz

点云可视化:
Ubuntu18.04鲁班猫ROS-melodic适配镭神智能C16多线激光雷达_第6张图片

注意:使用pointcloud_to_laserscan功能包时,相关参数同样需要在launch文件中进行配置。

话题名称 描述
/scan 点云数据转laser_scan (丢失intensities强度信息)
/scan_raw 16线雷达某个通道的laser_scan
/point_cloud_raw 16线雷达点云数据

你可能感兴趣的:(激光雷达,自动驾驶,linux)