FAST-LIVO2 icon indicating copy to clipboard operation
FAST-LIVO2 copied to clipboard

成功复现Fast-LIVO2到M300RTK(定位建图完全依赖Fast-LIVO2)

Open cchester25 opened this issue 8 months ago • 11 comments

非常感谢郑博出色的工作!在郑博和B站up主 GundaSmart 的帮助下,我成功实现了在M300RTK上复现Fast-LIVO2,这里我将分享自己复现过程及遇到的关键问题。 1、使用的边缘平台以及设计的云台。 电脑使用的是AllSpark2(jetson orin NX 16GB) ,系统ubuntu 20.04, ros1-noetic。 电池:LIV_handhold推荐的;相机:海康MV_CS050_GC;激光雷达:livox avia;硬同步单片机:LIV_handhold推荐的。 云台是自己设计的,如下图: Image 虽然看上去不那么美观但自己能力目前到这了,争取后面改进出第2版第3版。 2、硬件接线和组装 这里是参考B站up主GundaSmart的教程视频及博客完成的,建议严格按照教程来,在这一环节我没有遇到问题。 3、硬同步代码及传感器驱动部署。 单片机代码烧录网上都有教程这里不再赘叙,主要是驱动部署。 激光雷达驱动建议部署 LIV_handhold的,郑博对激光雷达驱动做了时间校验。 tip-1: 在部署相机驱动之前先完成激光雷达驱动部署,并在主目录下看到有timeshare文件生成才行。 相机驱动是我耗时最久的,也是问题最大的。在启动驱动时遇到了如下问题: [mvs_camera_trigger-2] process has died [pid 63013, exit code -6, cmd /home/ubuntu/ws_LIV_handhold/devel/lib/mvs_ros_pkg/grabImgWithTrigger /home/ ubuntu /ws_LIV_handhold/src/LIV_handhold/mvs_ros_pkg/config/left_camera_trigger.yaml __name:=mvs_camera_trigger __log:=/home/ ubuntu /.ros/log/5434907e-0efe-11f0-b809-c7ea3f97c0e1/mvs camera_trigger-2.log]log file: /home/ ubuntu /.ros/log/5434907e-0efe-11f0-b809-c7ea3f97c0e1/mvs_camera_trgger-2*.log 这里给复现的朋友们提个醒,进程died的报错是很难通过这个报错信息找到根源的,大家一定动动手在驱动里写上类似printf(xxxxx)的调试打印来定位具体代码。我的问题是驱动最后发布时的cv::resize函数崩溃。崩溃的根源是allspark2的opencv版本冲突。(电脑之前被安装了opencv4.5.0) 解决:在CmakeLists.txt中,在find_pkg(opencv REQUIREMENT)处的中间加上 4.2.0 ,此外,使用下图命令行,完善opencv4.2.0的库。 sudo apt-get install libopencv-dev=4.2.0+dfsg-5 4、Fast-LIVO2部署 4.1、编译过程中找不到CustomMsg.h,奇怪,多编译几次就没报错了—因为这个头文件在被需要时没有生成。 4.2、fout_imu 报错,在/your_ws/FAST-LIVO2/include/IMU_Processing.h添加#include 。 4.3、/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libpcl_io.so: undefined reference to `libusb_set_option',找到MVS客户端的bin文件夹,找到关于usb的.o文件,删除即可。 4.4、初始化时出现 [laserMapping-2] process has died 需要注释掉 cv::initUndistortRectifyMap。

5、标定 相机标定我是完全参考上面提及的教程的。 相机和激光雷达标定是用的livox_cam_calibration.但是标定结果和实际安装误差还挺大的,主要是标定场景不好找。我基本套用了Fast-LIVO2的avia.yaml,然后手动调整了下Pcl观察投影效果,感觉差不多就结束了。 不过,已经买了火星实验室新开源Fast-Calibration的标定板,等后面到货了再用Fast-Calibration精调一下外参。 6、云台安装至M300RTK无人机

Image Image

7、起飞! 本次测试只做了40m飞行,因为5级风吹得无人机摇摇晃晃的,有些担心安全,这里的外参其实并不精细,但效果已经非常不错了。

Image

Image

cchester25 avatar Apr 23 '25 07:04 cchester25

优秀

littlelittleman avatar Apr 23 '25 07:04 littlelittleman

《 成功复现FAST-LIVO2到M300RTK (定位建图完全依赖FAST-LIVO2) 》👏👏👏

效果堪称完美 💯 太酷了,期待后面更长数据包的表现

xuankuzcr avatar Apr 27 '25 03:04 xuankuzcr

可以分享一下bag吗

hujiax380 avatar Apr 29 '25 06:04 hujiax380

你好,我这边在启动mvs_ros_driver的launch文件时也遇到了类似的错误,能方便交流一下嘛?我用的是 MV-CI013-A0UC相机,然后是安装了mvs之后,连接usb单独测试的,还没有做硬同步这个操作. [device 0]: Device Model Name: MV-CU013-A0UC SerialNumber: DA5819648 [INFO] [1748338504.717589563]: Set ExposureAutoMode: Off [INFO] [1748338504.723516562]: Set Exposure Time: 5000us [INFO] [1748338504.726458268]: Set Gain Auto: Continues [INFO] [1748338504.803670684]: Set GammaSlector: sRGB [INFO] [1748338504.957870395]: Set Gamma: 0.700000 [INFO] [1748338504.960111524]: Finish all params set! Start grabbing... [mvs_camera_trigger-2] process has died [pid 49442, exit code -11, cmd /home/nvidia/demo/mvs_ros_driver/devel/lib/mvs_ros_driver/grabImgWithTrigger /home/nvidia/demo/mvs_ros_driver/src/mvs_ros_driver/config/left_camera_trigger.yaml __name:=mvs_camera_trigger __log:=/home/nvidia/.ros/log/dd6ec46c-3add-11f0-838d-3c6d66186c78/mvs_camera_trigger-2.log]. log file: /home/nvidia/.ros/log/dd6ec46c-3add-11f0-838d-3c6d66186c78/mvs_camera_trigger-2*.log [mvs_camera_trigger-2] restarting process process[mvs_camera_trigger-2]: started with pid [49499]

luliang520 avatar May 27 '25 09:05 luliang520

你好,我这边在启动mvs_ros_driver的launch文件时也遇到了类似的错误,能方便交流一下嘛?我用的是 MV-CI013-A0UC相机,然后是安装了mvs之后,连接usb单独测试的,还没有做硬同步这个操作. [device 0]: Device Model Name: MV-CU013-A0UC SerialNumber: DA5819648 [INFO] [1748338504.717589563]: Set ExposureAutoMode: Off [INFO] [1748338504.723516562]: Set Exposure Time: 5000us [INFO] [1748338504.726458268]: Set Gain Auto: Continues [INFO] [1748338504.803670684]: Set GammaSlector: sRGB [INFO] [1748338504.957870395]: Set Gamma: 0.700000 [INFO] [1748338504.960111524]: Finish all params set! Start grabbing... [mvs_camera_trigger-2] process has died [pid 49442, exit code -11, cmd /home/nvidia/demo/mvs_ros_driver/devel/lib/mvs_ros_driver/grabImgWithTrigger /home/nvidia/demo/mvs_ros_driver/src/mvs_ros_driver/config/left_camera_trigger.yaml __name:=mvs_camera_trigger __log:=/home/nvidia/.ros/log/dd6ec46c-3add-11f0-838d-3c6d66186c78/mvs_camera_trigger-2.log]. log file: /home/nvidia/.ros/log/dd6ec46c-3add-11f0-838d-3c6d66186c78/mvs_camera_trigger-2*.log [mvs_camera_trigger-2] restarting process process[mvs_camera_trigger-2]: started with pid [49499]

建议你在源码中通过逐行打印一些字符串 来确定驱动是在哪里崩的,有可能是Opecv版本问题。

cchester25 avatar May 28 '25 01:05 cchester25

你好我想询问一下AllSpark2的性能问题,在这种情况下,能够达到30帧吗

DWDROME avatar Jul 04 '25 14:07 DWDROME

你好我想询问一下AllSpark2的性能问题,在这种情况下,能够达到30帧吗

我没有测试过能不能达到30帧,之前跑了一会内存就爆了,所以allspark2只用于数据集的采集。

cchester25 avatar Jul 05 '25 01:07 cchester25

你好,使用的mid360雷达驱动是LIV仓库提供的,运行驱动之后并没有timeshare文件生成。手动创建timeshare文件并且修改相应路径后也并没有对该文件进行读写,这是为什么呢

youxiao888 avatar Sep 03 '25 05:09 youxiao888

之后并没有timeshare文件生成

这我不太清楚,我用的是avia,b站上有mid360的复现教程

cchester25 avatar Sep 04 '25 07:09 cchester25

时间同步的代码有开源吗?打算自己按照视频搭建一套时间同步的设备,对嵌入式这边可能不是很熟悉,有开源可用的代码吗?

BloodLemonS avatar Oct 17 '25 06:10 BloodLemonS

时间同步的代码有开源吗?打算自己按照视频搭建一套时间同步的设备,对嵌入式这边可能不是很熟悉,有开源可用的代码吗?

时空同步的所有代码郑博都开源了的,LIVO2的README中有写,LIV_handhold.

cchester25 avatar Oct 17 '25 06:10 cchester25