当前位置:   article > 正文

r3live运行步骤及时间同步,以及遇到的问题_r3live有明显延迟

r3live有明显延迟

录制bag包:

先source和运行下livox和相机驱动

  1. source ./devel/setup.bash
  2. roslaunch usb_cam usb_cam_test.launch
  3. roslaunch livox_ros_driver livox_lidar_msg.launch

再livox和相机时间同步系统的:

sudo ptpd -M -i eth3 -C (我的机器上eth2是velodyne的,eth3是livox的,具体是什么需要看自己的机器对应是什么网口)

输出 Now in state: PTP_MASTER, Best master说明同步成功。          

注意:

r3live++运行使用的livox数据类型是livox_ros_driver/msg,不是plountclound2类型。所以录制bag时要启动

roslaunch livox_ros_driver livox_lidar_msg.launch

而录制外参时需要的是plountclound2类型,所以启动这个

roslaunch livox_ros_driver livox_lidar.launch

参考:https://blog.csdn.net/qq_41921826/article/details/132605462?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169906408916800182158438%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169906408916800182158438&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-132605462-null-null.nonecase&utm_term=R3LIVE%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98&spm=1018.2226.3001.4450

工程(十三)——从零用自己数据跑R3LIVE-CSDN博客


运行流程:

  1. source ~/code/diver/ws_livox/devel/setup.bash
  2. catkin_make
  3. source ./devel/setup.bash
  4. roslaunch r3live r3live_bag.launch

步骤记录:

1、标定相机内参

相机内参标定:Matlab 使用 Camera Calibrator工具箱------相机标定_matlab camera calibrator_笑着灬up的博客-CSDN博客

使用的棋盘格:棋盘格文件及标定矫正程序(链接直接下载,CAD文件可修改)_标定棋盘格pdf下载-CSDN博客

结果:

右上角是重建平均误差,只要平均误差小于0.5,就可以认为这是相机标定的结果是可靠的。

一般来说RadialDistortion和TangentialDistortion还有K就是我们所需要的数据。

2、标定livox和相机外参

        单目相机+livox的联合标定,并在R3live下建图过程记录_livox相机有目标标定-CSDN博客

注意:外参录制的bag是plountcloud2类型,要启动roslaunch livox_ros_driver livox_lidar.launch(与r3live的类型不一样)

3、livox和相机同步

见 录制bag包

4、在yaml文件中修改livox相机外参 和 相机内参

修改livox相机外参:

        前面标定得出的extrin 矩阵求逆。

        在线矩阵求逆 在线矩阵求逆

       把求得的逆放入如下路径的文件里。(左上角3X3放在 camera_ext_R,第四列1X4的前三行放在camera_ext_t)

修改相机内参camera_intrinsic和畸变参数camera_dist_coeffs:

修改r3live_bag.launch的话题:

报错:

1、fatal error: visualization_msgs/Marker.h: 没有那个文件或目录

        解决:sudo apt-get install ros-melodic-rviz

2、c++ error:unrecognized command line option ‘-msse’

这种情况是因为在arm平台上不存在SSE指令集的,在X86平台才会有,因此需要在CMakLists文件中把有关-msse3字样的都注释掉

  1. # arm and intel cpu configurations
  2. #IF(DEFINED ENV{ARM_ARCHITECTURE})
  3. # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=armv7-a")
  4. #ELSE()
  5. # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -march=native")
  6. #ENDIF()

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号