前面讲解了Livox-aiva,这里也是差不多流程:下载SDK以及ROS包

首先连接网线到电脑进行配置,设置有线网卡ip为192.168.1.50
 

sudo ifconfig enp49s0 192.168.1.50

测试ping雷达,一般为192.168.1.1xx(为SN码后两位),我这里是112

ping 192.168.1.112

一 下载编译安装Livox-SDK2

1 .建立工作空间
    mkdir -p ~/livoxmid360_ws/src
    cd ~/livoxmid360_ws/
    catkin_make
    source devel/setup.bash
2.下载编译安装Livox-SDK2
git clone https://github.com/Livox-SDK/Livox-SDK2.git
​
cd Livox-SDK2/
​
mkdir build
​
cd build
​
cmake .. 

make 
​
sudo make install

二.ROS驱动代码

1.下载ros包

https://github.com/Livox-SDK/livox_ros_driver2

cd src

git clone https://github.com/Livox-SDK/livox_ros_driver2.git

cd livox_ros_driver2/

./build.sh ROS1

该 build.sh 脚本能够自动完成对ROS1版本相关依赖项的处理及编译操作。

编译完成。

可以在工作空间在做一次编译:

cd ~/livoxmid360_ws
catkin_make
source devel/setup.bash
2.修改ROS 驱动启动脚本中对应的信息

2.1将点云格式设置为PointXYZRTLT,对应参数为xfer_format=0,其位于ROS1的launch文件rviz_MID360.launch中或ROS2的launch文件rviz_MID360_launch.py中。

2.2设置主机ip和雷达ip地址。主机ip是我们上面设置的192.168.1.50。查看雷达包装盒子的sn码,其最后两位即为当前雷达的默认ip地址,即雷达的出厂默认ip地址为192.168.1.112。对应需要设置参数为文件MID360_config.json中的ip。

修改下面的5个ip地址参数

修改完毕之后,重新编译,刷新环境变量,运行测试脚本,可以看到点云数据啦,大功告成!

source devel/setup.bash
roslaunch livox_ros_driver2 rviz_MID360.launch

Livox ros driver 2内部主要参数配置说明 
publish_freq:设置点云发布频率。浮点数据类型,推荐值5.0、10.0、20.0、50.0等。最大发布频率为100.0 Hz。
multi_topic:激光雷达设备是否有独立的主题发布点云数据。
                0 -- 所有LiDAR设备使用相同的主题发布点云数据
                1 -- 每个LiDAR设备都有自己的主题来发布点云数据

xfer_format xfer_:设置点云格式。
                0 -- Livox pointcloud2(PointXYZRTLT) 点云格式,即 sensor_msgs/PointCloud2
                1 -- Livox定制点云格式,即 livox_ros_driver2/CustomMsg
                2 -- PCL 库中的标准 pointcloud2 (pcl :: PointXYZI) 点云格式(仅适用于 ROS),即 sensor_msgs/PointCloud2
 

Livox_ros_driver2点云数据详细说明
2.1 Livox pointcloud2(PointXYZRTLT)点云格式

反射率(reflectivity)是物体表面材料的固有属性,主要与物体材质有关,不随测量条件变化。
强度(intensity)是激光雷达接收到的实际信号强度,反映了回波信号的综合效果,除了反射率,还受到距离、环境和激光发射功率等的影响。
 

2.2 Livox定制点云格式
注意:这里 Mid-360 的时间戳格式为 64 位无符号整数,单位为 ns。

std_msgs/Header header     # ROS standard message header
uint64          timebase   # The time of first point(第一个点的时间戳)
uint32          point_num  # Total number of pointclouds
uint8           lidar_id   # Lidar device id number(激光雷达设备的ID编号)
uint8[3]        rsvd       # Reserved use(保留字段,可能用于未来扩展或其他用途)
CustomPoint[]   points     # Pointcloud data


上述定制数据包中的定制点云(CustomPoint)格式: 

uint32  offset_time     # offset time relative to the base time(相对于timebase的偏移时间,通常用于时间同步)
float32 x               # X axis, unit:m
float32 y               # Y axis, unit:m
float32 z               # Z axis, unit:m
uint8   reflectivity    # reflectivity, 0~255
uint8   tag             # livox tag
uint8   line            # laser number in lidar



2.3 PCL库中的标准pointcloud2(pcl :: PointXYZI)格式(仅ROS可以发布)
 

float32 x           
float32 y           
float32 z           
float32 intensity   



 2.4 点云数据补充介绍
        目标反射率:以0至255表示。其中0至150对应反射率介于0至100%的漫反射物体;而151至255对应全反射物体。当被测物体距离Mid-360小于2m时,目标反射率误差可能偏大,仅能用于区分目标为全反射物体还是漫反射物体。

        坐标信息:Mid-360的坐标信息可表示为直角坐标系(x,y,z)或球坐标系(r,θ,φ),其直角坐标和球坐标的对应关系如下图所示。如果前方无被探测物体或者被探测物体超出量程范围(例如>100m),在直角坐标系下,点云输出为(0,0,0);在球坐标系下,点云输出为(0,θ,φ)。

        标记(Tag):主要指示探测点的其它附加信息。点云标记为 8bit 无符号整数,按照bit划分为几个区域,每个区域表示此探测点的一种属性,其中包括雨雾灰尘、相近物体间的粘连点云等等;其中,置信度表示此探测点的可信程度,一般正常点为0(置信度优);置信度差表示该探测点受相应属性影响较大,探测结果可信度差;如需要,可据此信息对点云进行过滤。标记信息的格式如下:

        一个字节(Byte)由 8 位(Bit)组成。

        时间戳:Mid-360支持两种时间同步方式:PTP(IEEE 1588v2.0)和 gPTP(IEEE 802.1AS)网络协议同步和GPS同步(一般为秒脉冲PPS+GPRMC)。时间戳格式为 64 位无符号整数,单位为 ns。

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐