Files
dreamDeckAutopilot/sensors/lslidar_m10_driver/README.md
T
2026-07-27 13:51:19 +08:00

7.1 KiB
Raw Blame History

Lslidar_M10_N10_V2.5.3_231110_ROS使用说明

1.工程介绍

Lslidar_M10_N10_V2.5.3_231110_ROS为linux环境下雷达ros驱动,适用于M10 ,M10_GPS,M10_P,M10_PLUS,N10,N10_PLUS 和 L10.版本雷达,程序在ubuntu 20.04 ros noeticubuntu18.04 ros melodic以及ubuntu16.04 ros kinetic下测试通过。

2.依赖

  • ubuntu20.04 ros noetic/ubuntu18.04 ros melodic/ubuntu16.04 ros kinetic

  • ros依赖

# 安装
sudo apt-get install ros-$ROS_DISTRO-pcl-ros ros-$ROS_DISTRO-pluginlib  ros-$ROS_DISTRO-pcl-conversions  ros-$ROS_DISTRO-diagnostic-updater
  • 其他依赖
sudo apt-get install libpcap-dev

3.编译运行

3.1 编译

mkdir -p ~/lidar_ws/src  #lidar_ws支持自定义命名(禁止空格和中文),src目录名不能改变
#将驱动压缩包解压缩放到~/lidar_ws/src 目录下
cd ~/lidar_ws
catkin_make
source devel/setup.bash

3.2 运行

运行单个雷达:

roslaunch lslidar_driver lslidar_net.launch 				#网口版雷达
roslaunch lslidar_driver lslidar_serial.launch 				#串口版雷达

运行多个雷达:

roslaunch lslidar_driver lslidar_net_double.launch			#两台网口版雷达
roslaunch lslidar_driver lslidar_serial_double.launch		#两台串口版雷达

roslaunch lslidar_driver lslidar_net_four.launch			#四台网口版雷达
roslaunch lslidar_driver lslidar_serial_four.launch			#四台串口版雷达

4.参数介绍

lslidar_serial.launch 文件内容如下,每个参数含义见注释说明。

<launch>
  <node pkg="lslidar_driver" type="lslidar_driver_node" name="lslidar_driver_node" output="screen">
    <param name="lidar_name" value="M10"/>     #雷达选择:M10 M10_P M10_PLUS M10_GPS N10 N10_PLUS L10
    <param name="serial_port" value="/dev/ttyUSB0"/>      #雷达连接的串口
    <param name="interface_selection" value="serial"/>    #接口选择:net 为网口,serial 为串口
    <param name="frame_id" value="laser_link"/>           #激光坐标
    <param name="scan_topic" value="scan"/>               #设置激光数据topic名称
    <param name="angle_disable_min" value="0.0"/>         #角度裁剪开始值
    <param name="angle_disable_max" value="0.0"/>         #角度裁剪结束值
    <param name="min_range" value="0.0"/>                 #雷达接收距离最小值
    <param name="max_range" value="100.0"/>               #雷达接收距离最大值
    <param name="use_gps_ts" value="false"/>              #雷达是否使用GPS授时
    <param name="compensation" value="false"/>            #雷达是否使用角度补偿功能
    <param name="pubScan" value="true"/>                  #雷达是否发布scan话题
    <param name="pubPointCloud2" value="false"/>          #雷达是否发布pointcloud2话题
    <param name="high_reflection" value="false"/>         #M10_P雷达需填写该值,若不确定,请联系技术支持。
    <!--param name="in_file_name" value="$(find lslidar_driver)/pcap/xxx.txt"/-->   #驱动是否使用txt文件读取功能
  </node>
    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find lslidar_driver)/rviz/lslidar.rviz" output="screen"/>      #雷达点云配置
</launch>

lslidar_net.launch 文件内容如下,每个参数含义见注释说明。

<launch>
  <node pkg="lslidar_driver" type="lslidar_driver_node" name="lslidar_driver_node" output="screen">
    <param name="frame_id" value="laser_link"/>          #激光坐标
    <param name="device_ip" value="192.168.1.200"/>      #雷达源IP
    <param name="device_port" value="2368"/>             #雷达目的端口号
    <param name="device_ip_difop" value="192.168.1.102"/>#雷达目的ip
    <param name="difop_port" value="2369"/>              #雷达源端口号
    <param name="lidar_name" value="M10"/>               #雷达选择:M10 M10_P M10_PLUS M10_GPS N10 N10_PLUS L10
    <param name="interface_selection" value="net"/>      #接口选择:net 为网口,serial 为串口
    <param name="add_multicast" value="false"/>          #是否启动组播。
    <param name="group_ip" value="224.1.1.2"/>           #组播ip。
    <param name="scan_topic" value="scan"/>              #设置激光数据topic名称
    <param name="angle_disable_min" value="0.0"/>        #角度裁剪开始值
    <param name="angle_disable_max" value="0.0"/>        #角度裁剪结束值
    <param name="min_range" value="0"/>                  #雷达接收距离最小值
    <param name="max_range" value="100.0"/>              #雷达接收距离最大值
    <param name="use_gps_ts" value="false"/>             #雷达是否使用GPS授时
    <param name="compensation" value="false"/>           #雷达是否使用角度补偿功能
    <param name="pubScan" value="true"/>                 #雷达是否发布scan话题
    <param name="pubPointCloud2" value="false"/>         #雷达是否发布pointcloud2话题
    <param name="high_reflection" value="false"/>        #M10_P雷达需填写该值,若不确定,请联系技术支持。
    <!--param name="pcap" value="$(find lslidar_driver)/pcap/xxx.pcap"/-->     #雷达是否使用pcap包读取功能
  </node>
    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find lslidar_driver)/rviz/lslidar.rviz" output="screen"/>      #雷达点云配置
</launch>

5.命令控制雷达

运行驱动后,新开一个端口

#M10 M10_GPS M10_PLUS N10 N10_PLUS 雷达
rostopic pub -1 /lslidar_order std_msgs/Int8 "data: 0"		#雷达停止旋转
rostopic pub -1 /lslidar_order std_msgs/Int8 "data: 1"		#雷达开始旋转

#M10 M10_GPS M10_PLUS 雷达
rostopic pub -1 /lslidar_order std_msgs/Int8 "data: 2"		#雷达点云不滤波
rostopic pub -1 /lslidar_order std_msgs/Int8 "data: 3"		#雷达点云正常滤波
rostopic pub -1 /lslidar_order std_msgs/Int8 "data: 4"		#雷达近距离滤波
rostopic pub -1 /lslidar_order std_msgs/Int8 "data: 100"    #雷达发设备包

#M10启停雷达
rostopic pub -1 /lslidar_order std_msgs/Int8 "data: 30"		#雷达停转并停止发数据

组播模式:

  • 上位机设置雷达开启组播模式

  • 修改launch文件以下参数

    <param name="add_multicast" value="false"/>               #是否添加组播
    <param name="group_ip" value="224.1.1.2"/>                #组播的ip
    
  • 运行以下指令将电脑加入组内(将指令中的enp2s0替换为用户电脑的网卡名,可用ifconfig查看网卡名)

    ifconfig
    sudo route add -net 224.0.0.0/4 dev enp2s0
    

离线模式:

播pcap包

  • 把录制好的pcap文件,拷贝到lslidar_driver/pcap文件夹下。

  • 修改launch文件以下参数

    #取消注释
        <param name="pcap" value="$(find lslidar_cx_driver)/pcap/xxx.pcap" />   #pcap包路径,加载pcap包时打开此注释
    

播txt文件

  • 把录制好的txt文件 路径写入launch文件。
#取消注释
   <!--param name="in_file_name" value="$(find lslidar_driver)/pcap/xxx.txt"/-->   #txt文件路径,加载txt文件时打开此注释