一、前期准备
(一)、使用Livox Viewer测试雷达
1、设置静态IP
sudo ifconfig enx081f7152092a 192.168.1.50
查看IP是否设置成功
lacyexsale@lacyexsale-KLV-WX9:~$ ifconfig
enx081f7152092a Link encap:以太网 硬件地址 08:1f:71:52:09:2a
inet 地址:192.168.1.50 广播:192.168.1.255 掩码:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:1324063 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:69544 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:1856732622 (1.8 GB) 发送字节:6407567 (6.4 MB)
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:40456 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:40456 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:392414149 (392.4 MB) 发送字节:392414149 (392.4 MB)
enx081f7152092a的inet 地址为192.168.1.50,说明修改成功
2、启动Livox Viewer并连接雷达
lacyexsale@lacyexsale-KLV-WX9:~/Documents/Livox_Viewer_For_Linux_Ubuntu16.04_x64_0.10.0$ ./livox_viewer.sh
点击滑块按钮启动Lidar,再点击 播放
按钮即可显示Lidar所采集到的点云图,软件界面成功显示雷达扫描界面,并且左侧工具栏左半部分显示3GGDJ4300100051
,这个是雷达的15位广播码,在雷达背后的二维码下面可以找到
(二)、Livox Mid-40驱动安装
1、编译和安装Livox SDK
Livox ROS Driver驱动取决于Livox-SDK ,如果您从未安装过Livox-SDK ,则必须首先安装Livox-SDK ,如果您安装了最新版本的Livox-SDK,请跳过此步骤并转到下一步。
- 在Linux终端中安装相应的依赖库
sudo apt install cmake pkg-config libapr1-dev libboost-atomic-dev libboost-system-dev
- 在Github上下载或克隆Livox-SDK/Livox-SDK存储库
git clone https://github.com/Livox-SDK/Livox-SDK.git
- 在build目录下编译并安装Livox-SDK
cd Livox-SDK/build
cmake ..
make
sudo make install
2、安装Livox ROS Driver驱动
- 从github克隆livox_ros_driver软件包
git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox / src
- 编译livox_ros_driver软件包
cd ws_livox
catkin_make
- 软件包环境设置
source ./devel/setup.sh
注:
- 受限于网络,Livox SDK和Livox ROS Driver均无法直接克隆,需要通过vpn去直接下载相应的压缩包
二、雷达数据采集
(一)、使用Livox Viewer采集数据
注:
- 使用Livox Viewer采集数据不依赖于Livox SDK和Livox ROS Driver
- 正确连接雷达硬件并完成IP配置后运行指令
./livox viewer.sh
启动Livox Viewer - 点击滑块按钮启动Lidar,再点击
播放
按钮即可显示Lidar所采集到的点云图 - 采集成功后,可点击工具栏上的
录制
按钮进行lvx格式文件的录制,暂停播放或再次点击此按钮结束录制,Livox Viewer录制并保存文件的默认格式为lvx,在菜单中选择File->Save as可将当前点云另存为csv或las文件。
(二)、使用ROS采集数据
注:
- 依赖于Livox SDK和Livox ROS Driver
1、lvx格式
- 完成Lidar硬件及IP配置部分,在以下文件路径下打开终端窗口
../Livox_SDK/build/sample/lidar_lvx_file
- 执行以下命令连接Lidar,并设定记录的点云数据的持续时间为10s
./lidar_lvx_sample -c "3GGDJ4300100051" -t 10
此处的3GGDJ4300100051
即雷达的15位广播码
成功执行后,当前路径下即可生成采集好的lvx文件
2、bag格式
- 连接好雷达后,在livox_ros_driver所在工作空间打开终端编译并更新当前ROS包环境
catkin_make
source ./devel/setup.sh
- 使用ROS launch文件加载览沃ROS驱动
roslaunch livox_ros_driver livox_lidar_rviz.launch
- 启动rviz并显示雷达画面后,使用record命令记录数据
rosbag record -a
在rviz中需要添加PointCloud2
,并设置其Topic为/livox/lidar
注:
查看bag包中的topic信息命令为rosbag info <bag包路径及名称>
,回车终端显示
path: test.bag
version: 2.0
duration: 5.7s
start: Jan 01 1970 08:03:22.50 (202.50)
end: Jan 01 1970 08:03:28.20 (208.20)
size: 11.2 MB
messages: 65
compression: none [13/13 chunks]
types: sensor_msgs/PointCloud2 [1158d486dd51d683ce2f1be655c3c181]
topics: /livox/lidar 65 msgs : sensor_msgs/PointCloud2
- 播放bag包
运行
rosbag play <bag包路径及名称>
播放bag包,在rviz中显示如下图所示
三、数据格式及其转换
Livox LiDAR数据格式介绍:
-
bag文件:bag文件是ROS系统常用的点云数据存储格式,Livox LiDAR使用PointCloud2格式和自定义的CustomMsg格式两种。该文件记录了LiDAR扫描过程中每帧点云数据和其他传感器数据。使用ROS连接Livox LiDAR可扫描并存储此格式的数据。
-
lvx文件:lvx文件是使用Livox Viewer连接Livox LiDAR后存储的点云数据,可在Livox Viewer中查看和编辑。
-
pcd文件:可记录某一帧的点云数据。Livox LiDAR记录的数据无法直接保存为pcd格式,需进行转化。
(一)、lvx文件转bag文件
- 在
../ws_livox
下打开终端
catkin_make
- 使用如下命令更新当前ROS包环境
source ./devel/setup.bash
- 输入以下命令
roslaunch livox_ros_driver lvx_to_rosbag.launch lvx_file_path:=""
在上述命令中双引号内填写本地lvx数据文件路径即可成功运行,转换成功后将在上述路径下生成同名的rosbag格式文件
(二)、bag文件转pcd文件并查看
- 运行ros
roscore
- 在.bag文件存储路径下打开终端并运行命令
rosrun pcl_ros bag_to_pcd <input_file.bag> <topic> <output_directory>
其中<input_file.bag>
为需转换的bag文件名称,<topic>
为该bag文件的topic信息,<output_directory>
为转化完成后的pcd文件存放地址
如图所示,在对应文件夹下,可找到由rosbag文件转化而来的每一帧pcd文件,其文件名为当前帧的时间戳
- 使用pcl_viewer查看pcd文件,命令如下
pcl_viewer <filename.pcd>
如图所示为某一帧pcd文件的图像
使用步骤总结:
- 设置IP地址:
sudo ifconfig enx081f7152092a 192.168.1.50
- 查看IP地址:
ifconfig
- 配置环境变量
source ~/catkin_ws/devel/setup.bash
source ~/ws_livox/devel/setup.sh
- 建图
roslaunch loam_livox livox.launch
# roslaunch livox_ros_driver livox_lidar_rviz.launch
roslaunch livox_ros_driver livox_lidar.launch
- 录bag包
rosbag record -a
- 播放
roslaunch loam_livox rosbag.launch
rosbag play YOUR_DOWNLOADED.bag