项目场景:
在ubuntu20.04中使用MID360获取激光点云数据和内置6轴陀螺仪数据
先用一分三线连接好 雷达-电脑 & 雷达-电源

安装过程:
1. 安装Livox-SDK2
cd ~/
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd ./Livox-SDK2/
mkdir build
cd build
cmake .. && make -j
sudo make install
2. 编译安装FAST_LIO源码
mkdir livox_ws/src
git clone https://github.com/Livox-SDK/livox_ros_driver2.git
cd src/livox_ros_driver2
./build.sh ROS1
3. 配置电脑IP参数
打开“设置” > 打开“网络” > 点击“有线”旁边的设置选项 > 选择“IPv4” > 配置电脑IP地址 > 选择“手动”

具体要求:
地址:192.168.1.5子网掩码:255.255.255.0
网关:192.168.1.1
4. 配置Livox mid360参数
打开文件: ~/livox_ws/src/livox_ros_driver2/config/MID360_config.json,修改如下:
其中:
修改后的电脑ip即为上一步中的“地址”:192.168.1.5
Livox mid360的ip为:192.168.1.1XX(XX为你的MID360雷达上二维码下方SN码的最后两位)

{
"lidar_summary_info" : {
"lidar_type": 8
},
"MID360": {
"lidar_net_info" : {
"cmd_data_port": 56100,
"push_msg_port": 56200,
"point_data_port": 56300,
"imu_data_port": 56400,
"log_data_port": 56500
},
"host_net_info" : {
"cmd_data_ip" : "192.168.1.5", # <-修改后的电脑ip
"cmd_data_port": 56101,
"push_msg_ip": "192.168.1.5", # <-修改后的电脑ip
"push_msg_port": 56201,
"point_data_ip": "192.168.1.5", # <-修改后的电脑ip
"point_data_port": 56301,
"imu_data_ip" : "192.168.1.5", # <-修改后的电脑ip
"imu_data_port": 56401,
"log_data_ip" : "",
"log_data_port": 56501
}
},
"lidar_configs" : [
{
"ip" : "192.168.1.176", # <-Livox mid360的ip
"pcl_data_type" : 1,
"pattern_mode" : 0,
"extrinsic_parameter" : {
"roll": 0.0,
"pitch": 0.0,
"yaw": 0.0,
"x": 0,
"y": 0,
"z": 0
}
}
]
}
5. 运行测试
source devel/setup.bash
roslaunch livox_ros_driver2 rviz_MID360.launch
rostoptic list
rostoptic echo /livox/lidar
rostoptic echo /livox/imu

6. 数据录制(使用livox_ros_driver2自带录制)
<launch>
<!--user configure parameters for ros start-->
<arg name="lvx_file_path" default="livox_test.lvx"/>
<arg name="bd_list" default="100000000000000"/>
<arg name="xfer_format" default="1"/>
<arg name="multi_topic" default="0"/>
<arg name="data_src" default="0"/>
<arg name="publish_freq" default="10.0"/>
<arg name="output_type" default="0"/>
<arg name="rviz_enable" default="false"/>
<arg name="rosbag_enable" default="false"/>
<arg name="cmdline_arg" default="$(arg bd_list)"/>
<arg name="msg_frame_id" default="livox_frame"/>
<arg name="lidar_bag" default="true"/>
<arg name="imu_bag" default="true"/>
<!--user configure parameters for ros end-->
<param name="xfer_format" value="$(arg xfer_format)"/>
<param name="multi_topic" value="$(arg multi_topic)"/>
<param name="data_src" value="$(arg data_src)"/>
<param name="publish_freq" type="double" value="$(arg publish_freq)"/>
<param name="output_data_type" value="$(arg output_type)"/>
<param name="cmdline_str" type="string" value="$(arg bd_list)"/>
<param name="cmdline_file_path" type="string" value="$(arg lvx_file_path)"/>
<param name="user_config_path" type="string" value="$(find livox_ros_driver2)/config/MID360_config.json"/>
<param name="frame_id" type="string" value="$(arg msg_frame_id)"/>
<param name="enable_lidar_bag" type="bool" value="$(arg lidar_bag)"/>
<param name="enable_imu_bag" type="bool" value="$(arg imu_bag)"/>
<node name="livox_lidar_publisher2" pkg="livox_ros_driver2"
type="livox_ros_driver2_node" required="true"
output="screen" args="$(arg cmdline_arg)"/>
<group if="$(arg rosbag_enable)">
<node pkg="rosbag" type="record" name="record" output="screen"
args="-a"/>
</group>
</launch>
打开文件:livox_ws/src/livox_ros_driver2/launch_ROS1/msg_MID360.launch,按个人需求修改相关参数:
1.用户配置参数:
参数名 默认值 功能说明
lvx_file_path
livox_test.lvx当 时(从本地文件读取数据),指定 LVX 格式文件的路径(Livox 专用录制格式)。
data_src=1
bd_list
100000000000000激光雷达的设备序列号(广播码),用于驱动识别并连接指定设备(多个设备用逗号分隔,如 )。
100000000000000,100000000000001
xfer_format
1底层数据传输格式:
–
:通用格式(兼容性高,效率较低);
0–
:Livox 专用高效格式(推荐,默认值)。
1
multi_topic
0是否为多个设备发布多个点云话题:
–
:所有设备的点云合并到一个话题(
0);
/livox/lidar–
:每个设备单独发布话题(如
1)。
/livox/lidar_100000000000000
data_src
0数据来源:
–
:从真实设备获取数据(默认,连接物理激光雷达);
0–
:从本地 LVX 文件读取数据(离线回放)。
1
publish_freq
10.0点云数据发布频率(Hz),默认 10Hz,可根据设备性能调整(MID360 最高支持 20Hz)。
output_type
0ROS 话题输出的数据类型(关键参数):
–
:输出
1(标准点云格式,通用但丢失部分元信息);
sensor_msgs/PointCloud2–
:输出
0(Livox 自定义格式,包含激光线号、时间戳等细节,LIO-SAM 等算法需此格式)。
livox_ros_driver2/CustomMsg
rviz_enable
false是否自动启动 RViz 可视化界面:
–
:启动 RViz 并加载默认配置;
true–
:不启动(默认)。
false
rosbag_enable
false是否自动录制 rosbag:
–
:启动
true录制所有话题;
rosbag record -a–
:不录制(默认)。
false
cmdline_arg
$(arg bd_list)传递给驱动节点的命令行参数,默认使用设备序列号 (无需手动修改)。
bd_list
msg_frame_id
livox_frame点云 / IMU 消息的坐标系 ID(TF 框架中的父坐标系名称),需与后续算法(如 LIO-SAM)的坐标系配置一致(可改为 等)。
base_link
lidar_bag
true当 时,是否录制激光雷达数据(
rosbag_enable=true表示录制)。
true
imu_bag
true当 时,是否录制 IMU 数据(
rosbag_enable=true表示录制)。
true
2. 节点运行参数
参数名 对应 参数
<arg>功能说明
xfer_format
$(arg xfer_format)同 中的
<arg>,告知驱动底层传输格式。
xfer_format
multi_topic
$(arg multi_topic)同 中的
<arg>,控制是否分设备发布话题。
multi_topic
data_src
$(arg data_src)同 中的
<arg>,指定驱动的数据来源(设备 / 文件)。
data_src
publish_freq
$(arg publish_freq)同 中的
<arg>,设置话题发布频率。
publish_freq
output_data_type
$(arg output_type)同 中的
<arg>,决定输出的 ROS 消息类型(核心参数)。
output_type
cmdline_str
$(arg bd_list)传递设备序列号给驱动,用于识别设备(内部使用,无需修改)。
cmdline_file_path
$(arg lvx_file_path)当 时,指定 LVX 文件路径(内部使用)。
data_src=1
user_config_path固定路径 激光雷达的配置文件路径( ),包含设备校准参数等,无需修改。
MID360_config.json
frame_id
$(arg msg_frame_id)同 中的
<arg>,设置消息的坐标系 ID。
msg_frame_id
enable_lidar_bag
$(arg lidar_bag)同 中的
<arg>,控制是否录制激光雷达数据到 bag。
lidar_bag
enable_imu_bag
$(arg imu_bag)同 中的
<arg>,控制是否录制 IMU 数据到 bag。
imu_bag
7. 数据录制(使用rosbag命令)
rosbag record -a #录制所有话题