livox-mid70激光雷达使用实录
livox-mid70是由大疆发布的面阵激光雷达,是大疆为自动驾驶推出的一款激光雷达,同时也可用于建立三维地图,文物修复,与大疆无人机相结合使用。你可以在x86和arm架构上都可以使用(arm需要交叉编译)。 bilibili上Livox官方发布了大量的视频demo可以去围观一下,同时Livox也有一个论坛可以去看一下。
官方文档
https://livox-wiki-cn.readthedocs.io/zh_CN/latest/index.html 这是中文官方文档,请根据以上文档完成硬件上的连接以及Ip配置,一切以官方文档为主。
![image](G:\typora\Typora\denied:data:image\svg+xml;utf8,
-
更改IP:一般来说刚拿到手都是静态IP,这时候你只需要将网线与你自己笔记本相连,然后通过用户手册查看你自己雷达的IP,那需要设置你自己电脑的IP为手动,并将其分在同一网段不同的地址下:
如我的Mid70的IP地址为192.168.1.105, 那么我电脑设置时 IP:192.168.1.104, 子网掩码:255.255.255.0, 网关:192.168.0.1
如果对IP配置有问题,或想改为动态IP详情参见用户手册
Livox Viewer
Livox Viewer是一款图形化操作的显示软件,有助于快速让你知道你的硬件连接和Ip配置有没有问题。
-
Livox-Viewer for ubuntu16.04
,下载后解压运行
./livox viewer.sh
即可打开如下界面。
![image](G:\typora\Typora\denied:data:image\svg+xml;utf8,
-
官方软件Livox Viewer仅支持Windows或ubuntu16.04/14.04,所以建议如果不是这两个版本有ros可以直接上。
Livox-SDK
刚刚Livox Viewer只是一个快速尝试,如果你要做开发就必须要安装Livox-SDK(包括后面要在ros上使用也必须先要安装这个)
- github上中文README
- 先从github上clone下来
git clone https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
cd build && cmake ..
make
sudo make install
- 简单运行demo,注意这里的sample是在build文件夹下面的
cd sample/lidar && ./lidar_sample
livox-ros-driver
不得不说ros是真的好用,所以建议在ros下使用,会使得一切都很清晰明了。装livox-ros-driver
前必须要先装Livox-SDK
。
- 先从github上clone下来,这里一定要用下面这个命令把它clone到相应位置,否则会出问题。
git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src
- 简单的
catkin_make
一下
cd ws_livox
catkin_make
- 别忘了添加环境
source ./devel/setup.sh
- 之后跑个rviz的demo,让你的激光雷达点云数据在rviz里显示出来
roslaunch livox_ros_driver livox_lidar_rviz.launch
录制你的点云数据
点云数据不像二维图像一样,简简单单录制一个视频就好,作为点云数据记录是比较特殊的。 livox一共有两种录制格式
lvx格式
lvx格式是livox的一种自定义格式,如果你想在Windows上快速录制,可以使用Livox Viewer进行录制,也可以通过Livox-SDK
中的文件录制
- 首先进入以下路径
cd ./Livox_SDK/build/sample/lidar_lvx_file
- 然后运行下面这个文件,这里不用
-c
指定也可以,这里指定了lidar并设定持续10s
./lidar_lvx_sample -c "此处为已连接的Lidar的15位广播码" -t 10
通过上面的操作会得到一个.lvx
格式的文件,这个文件可以在Livox Viewer中直接播放,也可以转成rosbag(一个可以把ros中当前所有topic中message记录下来的东西)。
roslaunch livox_ros_driver lvx_to_rosbag.launch lvx_file_path:="/home/livox/test.lvx"
rosbag格式
rosbag是ros中非常好用的一个东西,我在之前的ros文章中有提到过。当我们在运行livox-ros-driver中的rviz显示时,即
roslaunch livox_ros_driver livox_lidar_rviz.launch #详情看上面livox-ros-driver
我们可以把此时的所有消息用rosbag记录下来
rosbag record -a -o myrosbag.bag #-a代表所有的消息,-c代表输出名称
此时就会生成一个.bag文件,具体名称看终端的输出。 你可以通过以下命令进行播放rosbag
rosbag play *.bag -l #-l代表loop循环播放
此时再打开在livox-ros-driver下的的rviz,就可以得到rosbag中的点云图了
cd ws_livox/src/livox_ros_driver/
rviz -d config/display_lidar_points.rviz #这种.rviz文件实际上是保存rviz相关显示的数据
livox_detection
livox_detection指的是激光点云检测,livox官方给的代码可以检测各种车和行人。官方说2080ti下需要50ms。
![image](G:\typora\Typora\denied:data:image\svg+xml;utf8,
在Livox官方的github仓库中有两个激光点云检测仓库分别为livox_detection
和livox_dection_simu
。 这两个仓库看上去都差不多,但实际上非常坑的是:
-
livox_detection
仓库中的预训练模型在可以识别人和车,但车的识别效果不是很好; -
livox_dection_simu
仓库中的预训练模型只能识别车,而几乎无法识别到人(虽然代码看上去都差不多)。
至于原因我也不知道,只是这坑了我一会儿,后来在issue发现了这个问题。
由于两个仓库操作都非常相似,这里选livox_detection_simu为例。
依赖
- python3.6+
- tensorflow1.13+ (tested on 1.13.0)
- pybind11(后面的过程中安装)
- ros
准备
- 首先clone仓库
git clone https://github.com/Livox-SDK/livox_detection_simu
- 然后配置pybind(pybind就是这样,每次都需要clone在那个路径下才行)。
cd livox_detection_simu/utils/lib_cpp
git clone https://github.com/pybind/pybind11.git
- 编译(在刚刚的
lib_cpp
路径下)。
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
- 把c++得到的依赖文件放到项目根目录下
cp lib_cpp.so ../../../
运行
- 打开一个终端运行roscore
roscore
- 打开一个终端运行rviz
rviz -d ./config/show.rviz #在livox_detection_simu仓库下
- 打开一个终端播放rosbag
rosbag play *.bag -r 0.1 #找到你存放rosbag的路径运行,发送消息间隔0.1s
- 打开一个终端运行目标检测程序
python livox_detection_simu.py #如果你的模型放在其他地方,你需要在config下将其模型路径改为你所放预训练模型的路径
由于目标检测速度相当慢,实时性非常差,队列里可能还缓存了很多帧
本文使用 Zhihu On VSCode 创作并发布