赞
踩
录制bag包:
先source和运行下livox和相机驱动
- source ./devel/setup.bash
- roslaunch usb_cam usb_cam_test.launch
- 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
运行流程:
- source ~/code/diver/ws_livox/devel/setup.bash
- catkin_make
- source ./devel/setup.bash
- 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字样的都注释掉
- # arm and intel cpu configurations
- #IF(DEFINED ENV{ARM_ARCHITECTURE})
- # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -march=armv7-a")
- #ELSE()
- # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -march=native")
- #ENDIF()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。