# LSLIDAR_CX_V4.3.0_240401_ROS 使用说明
## 1.工程介绍
LSLIDAR_CX_V4.3.0_240401_ROS为linux环境下雷达ros驱动,程序在ubuntu 20.04 ros noetic,ubuntu18.04 ros melodic以及ubuntu16.04 ros kinetic下测试通过。适用于C16,C32 3.0版本和C1,C1Plus,C4,C8,C8F,CKM8,C16,MSC16,C16国产,C32W,C32WN,C32WB,C32WP,CH32R 4.0版本以及N301 5.5版本雷达。
## 2.依赖
1.ubuntu20.04 ros noetic/ubuntu18.04 ros melodic/ubuntu16.04 ros kinetic
2.ros依赖
```bash
# 安装
sudo apt-get install ros-$ROS_DISTRO-pcl-ros ros-$ROS_DISTRO-pluginlib ros-$ROS_DISTRO-pcl-conversions ros-$ROS_DISTRO-diagnostic-updater
```
3.其他依赖
~~~bash
sudo apt-get install libpcap-dev
~~~
## 3.编译运行
### 3.1 编译
~~~bash
#创建工作空间及src目录 lidar_ws为工作空间名 可自定义
mkdir -p ~/lidar_ws/src
#将驱动压缩包解压缩放到~/lidar_ws/src 目录下
#返回工作空间
cd ~/lidar_ws
#编译及刷新
catkin_make
source devel/setup.bash
~~~
### 3.2 运行
运行单个雷达:
~~~bash
roslaunch lslidar_cx_driver lslidar_cx.launch
~~~
运行多个雷达:
~~~bash
roslaunch lslidar_cx_driver lslidar_double.launch
~~~
## 4.参数介绍
lslidar_cx.launch文件内容如下,每个参数含义见注释说明。
~~~bash
# 雷达ip
# 雷达目的数据端口
# 雷达目的设备端口
# 雷达是否使用授时(GPS PTP NTP)
# 点云类型 true: xyzi
# 离线播包时每秒读取的pcap包数
#pcap包路径,加载pcap包时打开此注释
# 是否开启组播 ture:启用组播模式
# 组播ip
# 点云帧id
# 雷达扫描最小距离 默认0.15m
# 雷达扫描最大距离 默认200米
# 雷达扫描最小裁剪角度 单位: 0.01°
# 雷达扫描最大裁剪角度 单位: 0.01°
#10Hz:0.18 20Hz:0.36 5Hz:0.09-->
# 是否发布laserscan true: 发布laserscan
# laserscan线号
# 点云0度角对应方向 true: x轴正方向
# 若不需要启动rivz,请注释或删除改行
# tf坐标转换
~~~
### 组播模式:
- 上位机设置雷达开启组播模式
- 修改launch文件以下参数
~~~shell
#是否添加组播
#组播的ip
~~~
- 运行以下指令将电脑加入组内(将指令中的enp2s0替换为用户电脑的网卡名,可用ifconfig查看网卡名)
~~~shell
ifconfig
sudo route add -net 224.0.0.0/4 dev enp2s0
~~~
### 离线pcap模式:
- 把录制好的pcap文件,拷贝到lslidar_cx_driver/pcap文件夹下。
- 修改launch文件以下参数
~~~shell
#取消注释
#pcap包路径,加载pcap包时打开此注释
~~~
### pcl点云类型:
- 修改launch文件以下参数
~~~shell
#点云类型,默认false点云中的点为xyzirt字段。改为true,点云中的点为xyzi字段。
~~~
- 默认false为自定义点云类型,定义参考lslidar_driver/include/lslidar_driver.h头文件
- 改为true,为pcl自带类型 :
~~~shell
pcl::PointCloud
~~~
## 5.设置雷达
## 修改雷达授时方式:
~~~bash
#新开一个终端
source devel/setup.bash
~~~
GPS授时:
~~~bash
rosservice call /time_service "time_service_mode: 'gps'
ntp_ip: ''"
~~~
PTP授时:
仅支持4.0激光雷达
~~~bash
rosservice call /time_service "time_service_mode: 'ptp'
ntp_ip: ''"
~~~
NTP授时:
仅支持4.0激光雷达
~~~bash
rosservice call /time_service "time_service_mode: 'ntp'
ntp_ip: '192.168.1.102'"
~~~
### 雷达上下电(只发设备包,不发送数据包,4.0雷达依然转动):
~~~bash
#新开一个终端
source devel/setup.bash
~~~
上电:
~~~bash
rosservice call /lslidar_control "laser_control: 1"
~~~
下电:
~~~bash
rosservice call /lslidar_control "laser_control: 0"
~~~
### 雷达转动/停止转动(电机停转):
~~~bash
#新开一个终端
source devel/setup.bash
~~~
转动:
~~~bash
rosservice call /motor_control "motor_control: 1"
~~~
停止转动:
~~~bash
rosservice call /motor_control "motor_control: 0"
~~~
### 设置雷达转速:
~~~bash
#新开一个终端
source devel/setup.bash
~~~
可选频率 5Hz/10Hz/20Hz
~~~bash
rosservice call /set_motor_speed "motor_speed: 20"
~~~
### 设置雷达去除雨雾尘等级:(仅支持该功能的雷达有效)
仅支持4.0激光雷达
~~~bash
#新开一个终端
source devel/setup.bash
~~~
可选等级 0/1/2/3 ,0-3 数字越大,去除越强
~~~bash
rosservice call /remove_control "remove_control: 0"
~~~
### 设置雷达数据包端口
~~~bash
#新开一个终端
source devel/setup.bash
~~~
~~~bash
rosservice call /set_data_port "data_port: 2368" #范围[1025,65535]
~~~
**备注:设置完以后,需要修改launch文件参数,然后重启驱动程序。**
### 设置雷达设备包端口
~~~bash
#新开一个终端
source devel/setup.bash
~~~
~~~bash
rosservice call /set_dev_port "dev_port: 2369" #范围[1025,65535]
~~~
**备注:设置完以后,需要修改launch文件参数,然后重启驱动程序。**
### 设置雷达ip
~~~bash
#新开一个终端
source devel/setup.bash
~~~
~~~bash
rosservice call /set_data_ip "data_ip: '192.168.1.200'"
~~~
**备注:设置完以后,需要修改launch文件参数,然后重启驱动程序。**
### 设置雷达目的ip
~~~bash
#新开一个终端
source devel/setup.bash
~~~
~~~bash
rosservice call /set_destination_ip "destination_ip: '192.168.1.102'"
~~~
**备注:设置完以后,需要修改launch文件参数,然后重启驱动程序。**
## FAQ
Bug Report
Original version : LSLIDAR_CX_V4.1.4_220425_ROS
Modify: original version
Date : 2022-04-25
--------------------------------------------------------------------
Update version : LSLIDAR_CX_V4.1.5_220620_ROS
Modify: c8雷达,光学垂直角度修改。
Date : 2022-06-20
------------------------------------------------------------
Update version : LSLIDAR_CX_V4.2.0_221028_ROS
Modify: 1.新增对4.0版本单线雷达