成功复现Fast-LIVO2到M300RTK(定位建图完全依赖Fast-LIVO2)
非常感谢郑博出色的工作!在郑博和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推荐的。
云台是自己设计的,如下图:
虽然看上去不那么美观但自己能力目前到这了,争取后面改进出第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
5、标定 相机标定我是完全参考上面提及的教程的。 相机和激光雷达标定是用的livox_cam_calibration.但是标定结果和实际安装误差还挺大的,主要是标定场景不好找。我基本套用了Fast-LIVO2的avia.yaml,然后手动调整了下Pcl观察投影效果,感觉差不多就结束了。 不过,已经买了火星实验室新开源Fast-Calibration的标定板,等后面到货了再用Fast-Calibration精调一下外参。 6、云台安装至M300RTK无人机
7、起飞! 本次测试只做了40m飞行,因为5级风吹得无人机摇摇晃晃的,有些担心安全,这里的外参其实并不精细,但效果已经非常不错了。
优秀
《 成功复现FAST-LIVO2到M300RTK (定位建图完全依赖FAST-LIVO2) 》👏👏👏
效果堪称完美 💯 太酷了,期待后面更长数据包的表现
可以分享一下bag吗
你好,我这边在启动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]
你好,我这边在启动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版本问题。
你好我想询问一下AllSpark2的性能问题,在这种情况下,能够达到30帧吗
你好我想询问一下AllSpark2的性能问题,在这种情况下,能够达到30帧吗
我没有测试过能不能达到30帧,之前跑了一会内存就爆了,所以allspark2只用于数据集的采集。
你好,使用的mid360雷达驱动是LIV仓库提供的,运行驱动之后并没有timeshare文件生成。手动创建timeshare文件并且修改相应路径后也并没有对该文件进行读写,这是为什么呢
之后并没有timeshare文件生成
这我不太清楚,我用的是avia,b站上有mid360的复现教程
时间同步的代码有开源吗?打算自己按照视频搭建一套时间同步的设备,对嵌入式这边可能不是很熟悉,有开源可用的代码吗?
时间同步的代码有开源吗?打算自己按照视频搭建一套时间同步的设备,对嵌入式这边可能不是很熟悉,有开源可用的代码吗?
时空同步的所有代码郑博都开源了的,LIVO2的README中有写,LIV_handhold.