D435i标定摄像头和IMU笔记四-2(双目摄像头与IMU联合标定篇)

2023-05-16

D435i标定摄像头和IMU笔记四-2(双目摄像头与IMU联合标定篇)

  • 一、前提
  • 二、文件准备
    • 2.1 标定板文件checkerboard.yaml(前面多次用到):
    • 2.2 imu标定结果imu.yaml(见IMU标定)
    • 2.3 双目标定文件camchain-mult_cam_d435i.yaml:
  • 三、标定准备
  • 四、开始标定(时间很久)
  • 五、标定结果

参考视频
D435i标定摄像头和IMU笔记一(配置环境篇)
D435i标定摄像头和IMU笔记二(RGB摄像头标定篇)
D435i标定摄像头和IMU笔记二-2(RGB+双目多摄像头标定篇)
D435i标定摄像头和IMU笔记三(IMU标定篇)
D435i标定摄像头和IMU笔记四(RGB摄像头和IMU联合标定篇)
D435i标定摄像头和IMU笔记四-2(双目摄像头与IMU联合标定篇)

一、前提

已经完成了对IMU和双目摄像头的标定工作。

二、文件准备

2.1 标定板文件checkerboard.yaml(前面多次用到):

target_type: 'checkerboard' #gridtype
targetCols: 5               #number of internal chessboard corners
targetRows: 8               #number of internal chessboard corners
rowSpacingMeters: 0.045      #size of one chessboard square [m]
colSpacingMeters: 0.045      #size of one chessboard square [m]

2.2 imu标定结果imu.yaml(见IMU标定)

rostopic: /imu
update_rate: 200.0 #Hz
 
gyroscope_noise_density: 0.00302857381362
gyroscope_random_walk: 3.00373059934e-05

accelerometer_noise_density: 0.0272600517598
accelerometer_random_walk: 0.000579817988633

2.3 双目标定文件camchain-mult_cam_d435i.yaml:

前面标定的结果。

cam0:
  cam_overlaps: [1]
  camera_model: pinhole
  distortion_coeffs: [0.011747122541878768, -0.02234859898241525, 0.0020672667698299592,
    -0.0008918010867833909]
  distortion_model: radtan
  intrinsics: [386.8409992331975, 388.24690742880813, 316.99396938084436, 241.81883369051474]
  resolution: [640, 480]
  rostopic: /infra_left
cam1:
  T_cn_cnm1:
  - [0.9999996711225254, -0.00023908758604951694, 0.0007749786892121749, -0.05020391636821169]
  - [0.00024036158003728526, 0.9999986193621923, -0.0016442323503307573, 9.805698051707789e-05]
  - [-0.0007745845037037506, 0.0016444180846820074, 0.9999983479526409, 0.0008601052990752862]
  - [0.0, 0.0, 0.0, 1.0]
  cam_overlaps: [0]
  camera_model: pinhole
  distortion_coeffs: [0.01574357771516093, -0.027360749803476046, 0.0020895910198554654,
    -0.000809614206569399]
  distortion_model: radtan
  intrinsics: [387.0690438082868, 388.49581611179184, 317.0317843214349, 242.59905600124543]
  resolution: [640, 480]
  rostopic: /infra_right

三、标定准备

  1. 启动realsense_ros
roslaunch realsense2_camera rs_camera.launch

如果是t265:

roslaunch realsense2_camera rs_t265.launch
  1. 关闭结构光
rosrun rqt_reconfigure rqt_reconfigure

将camera->stereo_module下的emitter_enable设置为off即可。

  1. 改变topic发布频率

分开设置:

rosrun topic_tools throttle messages /camera/infra1/image_rect_raw 20.0 /infra_left
rosrun topic_tools throttle messages /camera/infra2/image_rect_raw 20.0 /infra_right
rosrun topic_tools throttle messages /camera/imu 200.0 /imu

或者合并:

rosrun topic_tools throttle messages /camera/infra1/image_rect_raw 20.0 /infra_left & rosrun topic_tools throttle messages /camera/infra2/image_rect_raw 20.0 /infra_right & rosrun topic_tools throttle messages /camera/imu 200.0 /imu

如果是t265:

rosrun topic_tools throttle messages /camera/fisheye1/image_raw 20.0 /fisheye1 & rosrun topic_tools throttle messages /camera/fisheye2/image_raw 20.0 /fisheye2 & rosrun topic_tools throttle messages /camera/imu 200.0 /imu
  1. rviz查看
    先把左上角的Fixed Frame设置为camera_link,然后左下角add>By topic>/infra1/imgage_rect_raw下双击camera,其他的同理。

  2. 开始录制

cd ~/calibr_data/mii-d435i/imu_stereo_cali
rosbag record -O imu_stereo.bag /infra_left /infra_right /imu

如果是t265:

rosbag record -O imu_stereo.bag /fisheye1 /fisheye2 /imu

注意:标定板不动,相机围绕三个轴两个来回。

四、开始标定(时间很久)

kalibr_calibrate_imu_camera --target checkerboard.yaml --cam camchain-mult_cam_d435i.yaml --imu imu.yaml --bag imu_stereo.bag

如果是t265:

kalibr_calibrate_imu_camera --target apriltags.yaml --cam camchain-camer_t265.yaml --imu imu.yaml --bag imu_stereo.bag 

五、标定结果

  1. camchain-imucam-imu_stereo.yaml
  2. imu-imu_stereo.yaml
  3. report-imucam-imu_stereo.pdf
  4. results-imucam-imu_stereo.txt

results-imucam-imu_stereo.txt:

Calibration results
===================
Normalized Residuals
----------------------------
Reprojection error (cam0):     mean 0.0439184893999, median 0.0404529025861, std: 0.0244014493806
Reprojection error (cam1):     mean 0.0432418328153, median 0.0403828353072, std: 0.0231110306752
Gyroscope error (imu0):        mean 0.10758968237, median 0.0803879270766, std: 0.110705523637
Accelerometer error (imu0):    mean 0.149117631029, median 0.102847730683, std: 0.174658929541

Residuals
----------------------------
Reprojection error (cam0) [px]:     mean 0.0439184893999, median 0.0404529025861, std: 0.0244014493806
Reprojection error (cam1) [px]:     mean 0.0432418328153, median 0.0403828353072, std: 0.0231110306752
Gyroscope error (imu0) [rad/s]:     mean 0.00460812006491, median 0.00344305524078, std: 0.00474157310933
Accelerometer error (imu0) [m/s^2]: mean 0.0574871355826, median 0.0396493787981, std: 0.067333698195

Transformation (cam0):
-----------------------
T_ci:  (imu0 to cam0): 
[[ 0.99998098  0.00447156  0.00424803  0.00057372]
 [-0.00445265  0.99998019 -0.00444882 -0.02441941]
 [-0.00426784  0.00442983  0.99998108 -0.02857855]
 [ 0.          0.          0.          1.        ]]

T_ic:  (cam0 to imu0): 
[[ 0.99998098 -0.00445265 -0.00426784 -0.00080441]
 [ 0.00447156  0.99998019  0.00442983  0.02454296]
 [ 0.00424803 -0.00444882  0.99998108  0.02846694]
 [ 0.          0.          0.          1.        ]]

timeshift cam0 to imu0: [s] (t_imu = t_cam + shift)
-0.0082512730446


Transformation (cam1):
-----------------------
T_ci:  (imu0 to cam1): 
[[ 0.99997651  0.00445873  0.00520493 -0.04960042]
 [-0.00443971  0.99998345 -0.00365951 -0.02425743]
 [-0.00522116  0.00363632  0.99997976 -0.02789638]
 [ 0.          0.          0.          1.        ]]

T_ic:  (cam1 to imu0): 
[[ 0.99997651 -0.00443971 -0.00522116  0.04934591]
 [ 0.00445873  0.99998345  0.00363632  0.02457962]
 [ 0.00520493 -0.00365951  0.99997976  0.02806522]
 [ 0.          0.          0.          1.        ]]

timeshift cam1 to imu0: [s] (t_imu = t_cam + shift)
-0.00825230706853

Baselines:
----------
Baseline (cam0 to cam1): 
[[ 0.99999954 -0.00001707  0.00095684 -0.05014721]
 [ 0.00001631  0.99999969  0.00078926  0.00018452]
 [-0.00095686 -0.00078924  0.99999923  0.00066342]
 [ 0.          0.          0.          1.        ]]
baseline norm:  0.0501519377303 [m]


Gravity vector in target coords: [m/s^2]
[ 0.08686023  9.76477809 -0.89999282]


Calibration configuration
=========================

cam0
-----
  Camera model: pinhole
  Focal length: [380.9803345158986, 382.154386188639]
  Principal point: [318.93609497258376, 243.05040693225402]
  Distortion model: radtan
  Distortion coefficients: [0.00590432014031773, -0.0038710343988133944, 0.002729676970436722, 0.0012954618097941984]
  Type: checkerboard
  Rows
    Count: 8
    Distance: 0.045 [m]
  Cols
    Count: 5
    Distance: 0.045 [m]


cam1
-----
  Camera model: pinhole
  Focal length: [381.2139619547049, 382.4422285681291]
  Principal point: [318.87898121166836, 242.8507951458829]
  Distortion model: radtan
  Distortion coefficients: [0.005132541874724565, -0.0023236481550731013, 0.0020455150943863563, 0.0007867398316885759]
  Type: checkerboard
  Rows
    Count: 8
    Distance: 0.045 [m]
  Cols
    Count: 5
    Distance: 0.045 [m]



IMU configuration
=================

IMU0:
----------------------------
  Model: calibrated
  Update rate: 200.0
  Accelerometer:
    Noise density: 0.0272600517598 
    Noise density (discrete): 0.385515349097 
    Random walk: 0.000579817988633
  Gyroscope:
    Noise density: 0.00302857381362
    Noise density (discrete): 0.0428305016187 
    Random walk: 3.00373059934e-05
  T_i_b
    [[ 1.  0.  0.  0.]
     [ 0.  1.  0.  0.]
     [ 0.  0.  1.  0.]
     [ 0.  0.  0.  1.]]
  time offset with respect to IMU0: 0.0 [s]

camchain-imucam-imu_stereo.yaml:

cam0:
  T_cam_imu:
  - [0.9999809795447093, 0.004471557180217604, 0.0042480260342685995, 0.0005737184041461529]
  - [-0.004452654569842776, 0.9999801907164122, -0.004448824794217874, -0.0244194144180026]
  - [-0.004267835058368314, 0.004429825183010482, 0.9999810809374159, -0.028578553859411042]
  - [0.0, 0.0, 0.0, 1.0]
  T_cn_cnm1:
  - [0.9999060579801039, 0.006187309239286005, -0.012230797973450003, -0.012504540979490943]
  - [-0.006157939420205711, 0.9999780689386636, 0.0024375035998556514, 0.00041303794737816035]
  - [0.012245611327613627, -0.002361958102862696, 0.9999222300544849, 0.008441266367516128]
  - [0.0, 0.0, 0.0, 1.0]
  cam_overlaps: [0, 2]
  camera_model: pinhole
  distortion_coeffs: [0.00590432014031773, -0.0038710343988133944, 0.002729676970436722,
    0.0012954618097941984]
  distortion_model: radtan
  intrinsics: [380.9803345158986, 382.154386188639, 318.93609497258376, 243.05040693225402]
  resolution: [640, 480]
  rostopic: /infra_left
  timeshift_cam_imu: -0.008251273044604341
cam1:
  T_cam_imu:
  - [0.9999765139711361, 0.004458728157107288, 0.005204925489877297, -0.049600420389517876]
  - [-0.004439711145172791, 0.9999834483339518, -0.0036595113179214724, -0.024257430395766763]
  - [-0.005221156105843253, 0.0036363170048258303, 0.9999797581589133, -0.027896383573982254]
  - [0.0, 0.0, 0.0, 1.0]
  T_cn_cnm1:
  - [0.9999995420794534, -1.7065963343667133e-05, 0.0009568435799698137, -0.050147210065992716]
  - [1.6310769299760354e-05, 0.999999688403046, 0.0007892577334999778, 0.00018452290007793878]
  - [-0.0009568567512638173, -0.0007892417652277561, 0.999999230761001, 0.0006634244462778601]
  - [0.0, 0.0, 0.0, 1.0]
  cam_overlaps: [0, 1]
  camera_model: pinhole
  distortion_coeffs: [0.005132541874724565, -0.0023236481550731013, 0.0020455150943863563,
    0.0007867398316885759]
  distortion_model: radtan
  intrinsics: [381.2139619547049, 382.4422285681291, 318.87898121166836, 242.8507951458829]
  resolution: [640, 480]
  rostopic: /infra_right
  timeshift_cam_imu: -0.008252307068533518

imu-imu_stereo.yaml:

imu0:
  T_i_b:
  - [1.0, 0.0, 0.0, 0.0]
  - [0.0, 1.0, 0.0, 0.0]
  - [0.0, 0.0, 1.0, 0.0]
  - [0.0, 0.0, 0.0, 1.0]
  accelerometer_noise_density: 0.0272600517598
  accelerometer_random_walk: 0.000579817988633
  gyroscope_noise_density: 0.00302857381362
  gyroscope_random_walk: 3.00373059934e-05
  model: calibrated
  rostopic: /imu
  time_offset: 0.0
  update_rate: 200.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

D435i标定摄像头和IMU笔记四-2(双目摄像头与IMU联合标定篇) 的相关文章

  • 南京邮电大学C++实验三(多态性实验)

    文章目录 一 实验目的和要求二 实验环境 实验设备 三 实验原理及内容 xff08 一 xff09 实验题目1 xff1a 1 题目2 代码3 程序运行结果 4 实验解答过程 xff1a 1 类Point的构造函数 xff1a 2 用成员函
  • ROS package.xml教程

    文章目录 总览标准格式2 xff08 推荐格式 xff09 基本结构必要标签依赖元包其他标签 标准格式1 xff08 遗留格式 xff09 总览 ROS的package包使用package xml文件来描述 xff0c 该描述文件必须放置在
  • 如何从论文中实现算法复现(译)

    原文地址 xff1a http xff1a codecapsule com 2012 01 18 how to implement a paper 作者 xff1a Emmanuel Goossaert 翻译 xff1a Joseph Ar
  • CMakeList.txt

    一个视频讲解 http v youku com v show id XMjc1MjE0MjEwNA 61 61 html cmake 语法设置路径 xff0c 配置库 xff0c 编译器标记 xff1a https www cnblogs
  • GPS ROS包

    NMEA GPS数据读取 span class hljs label http span wiki span class hljs preprocessor ros span span class hljs preprocessor org
  • Arduino Atmega328P烧写bootloader及熔丝

    Arduino Atmega328P烧写bootloader及熔丝 Cc1924的博客 CSDN博客 亲测成功
  • 云服务器 搭建 AWTRIX 服务器

    Java 环境 首先检查 java 版本 如果没有 安装 openjdk 后再执行 sh脚本 yum list java 1 8 yum install java 1 8 0 openjdk y wget N https blueforce
  • esp8266对接天猫精灵(1)前言

    本系列文章小狂决定一步步来完成其他智能设备与天猫精灵的对接 xff0c 简单粗暴的目的就是使用ESP8266或者其他的wifi设备制造一个智能设备 xff0c 完成一次天猫精灵智能音箱对我们自己制造的智能设备的控制 xff0c 以来验证天猫
  • 牢记公式,ardupilot EKF2就是纸老虎(二)!

    版权声明 xff1a 本文为博主原创文章 xff0c 转载请附上博文链接 xff01 二 扩展卡尔曼滤波器 因为卡尔曼滤波器针对的是线性系统 xff0c 状态转移模型 xff08 说的白话一点就是知道上一时刻被估计量的值 xff0c 通过状
  • esp8266对接天猫精灵(3)原理

    这一篇文章主要讲解服务器端的设置 xff0c 这里我使用的是腾讯云 xff0c 当时学生价1块钱一个月买的 xff0c 现在的学生价涨到了10块 xff0c 为我当时的机智点赞 为什么一定要使用服务器呢 xff0c 这个是因为天猫精灵协议的
  • esp8266对接天猫精灵(8)开发者网关地址

    洋洋洒洒六七千字已经搭进去了 xff0c 终于把服务器篇写的差不多了 xff0c 当然小狂不是专业的写手 xff0c 有些东西写的凑合看吧 xff0c 只是说明过程 xff0c 并不修饰言辞 xff0c 看的舒服就点个赞 xff0c 不舒服
  • esp8266对接天猫精灵(10)nodumcu固件编译

    一 下载编译器 进入这个网站 xff0c https esp8266 ru esplorer xff0c 找到这个地方 xff0c 可以直接下载 xff0c 下载完成后双击红框中的内容就能打开 打开后的截图如下图所示 xff0c 左边为代码
  • esp8266对接天猫精灵(11)终端编程

    一 编写lua脚本获取控制信息 xff08 8266 xff09 前边也说过 xff0c 这个脚本要实现的步骤可以分三步 xff0c 第一步是联网 xff0c 第二步是使用http get到数据 xff0c 然后控制要控制的设备 我们的lu
  • Altium Designer -- 精心总结

    如需转载请注明出处 xff1a http blog csdn net qq 29350001 article details 52199356 以前是使用DXP2004来画图的 xff0c 后来转行 想来已经有一年半的时间没有画过了 突然转
  • Arduino点亮ws2812

    先加载ws2812库文件 span style color rgb 68 68 68 font family none font size 14px background color rgb 255 255 255 a target bla
  • Arduino 旋转编码器ky-040

    int pinA 61 3 Connected to CLK on KY 040 CLK接 pin3 int pinB 61 4 Connected to DT on KY 040 DT接pin4 SW是按键 xff0c 不用接 int e
  • Dockerfile

    Dockerfile文件 xff0c 自创镜像 一 概念 xff1a 二 案例 xff1a 1 先创建一个Dockerfile文件2 编写内容3 构建镜像4 运行 三 指令 xff1a FROM xff1a MAINTAINER xff1a
  • 关于嵌入式无人机之模型创建-使用3D打印装配体01

    做嵌入式的同学离不开硬件的支撑 那么无人机作为一套综合性工程 span class token punctuation span 涉及软件 span class token punctuation span 嵌入式 span class t
  • 牢记公式,ardupilot EKF2就是纸老虎(三)!

    版权声明 xff1a 本文为博主原创文章 xff0c 转载请附上博文链接 xff01 三 掀开EKF2的神秘面纱 EKF2是EKF算法在ardupilot上的代码实现 读到这里你也许已经忘了 xff0c EKF的5大公式 虽然下面是7个公式
  • ROS节点 报错process has died [pid 3322522, exit code -11

    偶尔出现 我的情况是两个节点 ros span class token double colon punctuation span span class token function init span span class token p

随机推荐

  • JS的冒泡函数

    今天下午学习了冒泡函数的加载和运行 一 var a 61 20 30 40 20 15 5 25 for var i 61 0 i lt a length i 43 43 for var j 61 1 j lt a length j 43
  • ubuntu server 版安装桌面

    安装xfce4 xff08 或其他桌面 xff09 amp xinit sudo apt install xfce4 xinit安装Display Manager 安装xdm xff0c 虽然有着古早的界面 xff0c 但是不会安装任何依赖
  • ubuntu下gazebo加载很慢解决办法

    ubuntu下gazebo加载很慢解决办法 前言 刚安装好 r o s ros r o s 后 xff0c 在终端输入命令 gazebo 启动 g
  • 从用户态是怎么切换到核心态的?

    此文章参考了 Linux 用户态通过中断切换到内核态详解 简答来说 xff0c 用户态和核心态的区别就是 xff1a 两者的操作权限不同 xff0c 用户态的进程能够访问的资源受到了极大的控制 xff0c 而运行在内核态的进程可以 为所欲为
  • 将rgbd数据集制作成rosbag,并发布图片和camera_info消息

    因为最近做的项目需要和别的开源项目做一些对比 xff0c 比如rgbdslamV2 xff0c 但是rdgbslamV2使用的输入是rosbag xff0c 并且他必须要订阅四个话题才能运行 xff0c 这四个话题分别是 xff1a cam
  • PX4添加自定义日志消息

    固件版本 xff11 11 一 将要观察的数据声明成uORB消息 xff0c 并发布 我这里随便添加了一个 在logged topics cpp里的add default topics函数里加上一行add topic fanbu 100 或
  • ROS常用知识点总结——Cmakelist

    Cmakelist编译规则 1 Cmakelist通常需要添加可执行文件名称 xff0c 并且指定编译的源文件即可 2 添加头文件编译时候 xff0c 应当在Cmakelist文件中打开以下标记出的部分 xff0c 否则编译找不到头文件 C
  • agx xavier rtso1001载板启动

    recovery按键长按 gt reset键按一下 gt 3s后松开recovery键 ubuntu命令行 lsusb lsusb Bus 004 Device 001 ID 1d6b 0003 Linux Foundation 3 0 r
  • 了解卡尔曼滤波器1--状态观测器

    在本文中 xff0c 我们将讨状态观测器 这个概念将有助于解释卡尔曼滤波器是什么以及它是如何工作的 让我们从一个例子开始 这是小蒂米 你想知道他的心情以及他现在的感受 然而 xff0c 没有直接的方法能测量他的心情 所以 xff0c 你要做
  • 牢记公式,ardupilot EKF2就是纸老虎(五)!

    版权声明 xff1a 本文为博主原创文章 xff0c 转载请附上博文链接 xff01 四 一睹EKF2芳容 xff08 上接牢记公式 xff0c ardupilot EKF2就是纸老虎 xff08 四 xff09 xff09 更新 本博客讲
  • jsp页面引入jstl标签后台报java.lang.ArrayIndexOutOfBoundsException

    jsp引用了jstl的core标签和fmt标签 xff0c 但访问jsp时后台报java lang ArrayIndexOutOfBoundsException xff0c 如下图所示 xff1a 花了很长时间上网查找原因也没有找到答案 x
  • 了解卡尔曼滤波器4--非线性状态估算器(EKF,UKF,PF)

    一般来说 xff0c 我们希望我们的生活是线性的 xff0c 就像这条线 xff0c 这可能表示成功 收入或者幸福 但实际上 xff0c 生活并不是线性的 xff0c 它充满了起伏 xff0c 有时甚至更复杂 如果您是工程师 xff0c 您
  • Velodyne VLP16激光雷达在ubuntu中的使用教程

    Velodyne VLP16激光雷达在ubuntu中的使用教程 设备连接工作使用ROS驱动并添加点云客官 xff01 如果觉得有用 xff0c 给俺点赞支持下呗 xff01 设备连接工作 连接雷达有线网络进入有线设置 xff08 点击ubu
  • 在ROS中用openCV显示摄像头并发布图像数据

    在ROS中用openCV显示摄像头并发布图像数据 前言使用C 43 43 实现CMakeLists txt配置 使用python实现查看usb串口使用情况永久打开串口权限ROS使用openCV进行图片接收 xff0c 并显示客官 xff01
  • D435i标定摄像头和IMU笔记一(配置环境篇)

    IntelRealSense D435i摄像头和IMU标定笔记一 xff08 配置环境篇 xff09 一 标定方案二 环境要求三 环境配置3 1 基本环境安装3 1 1 for ubuntu16 043 1 2 for ubuntu18 0
  • D435i标定摄像头和IMU笔记二(RGB摄像头标定篇)

    D435i标定摄像头和IMU教程二 xff08 RGB摄像头标定篇 xff09 一 文件准备二 录制摄像头标定rosbag三 开始标定四 标定结果 参考视频 D435i标定摄像头和IMU笔记一 xff08 配置环境篇 xff09 D435i
  • D435i标定摄像头和IMU笔记三(IMU标定篇)

    D435i标定摄像头和IMU笔记三 xff08 IMU标定篇 xff09 一 RealSense官网驱动标定IMUbias和三个轴的对齐1 1 驱动安装1 2 标定 二 港科大imu utils标定IMU随机游走2 1 环境及文件准备2 2
  • D435i标定摄像头和IMU笔记四(RGB摄像头和IMU联合标定篇)

    D435i标定摄像头和IMU教程四 xff08 RGB摄像头和IMU联合标定篇 xff09 一 前提二 准备标定文件 2 1 标定板yaml文件2 2 相机标定yaml文件2 3 imu标定yaml文件2 4 录制rosbag文件2 5 标
  • D435i标定摄像头和IMU笔记二-2(RGB+双目多摄像头标定篇)

    D435i标定摄像头和IMU笔记二 2 xff08 RGB 43 双目多摄像头标定篇 xff09 一 文件准备二 标定准备三 开始标定四 标定结果 参考视频 D435i标定摄像头和IMU笔记一 xff08 配置环境篇 xff09 D435i
  • D435i标定摄像头和IMU笔记四-2(双目摄像头与IMU联合标定篇)

    D435i标定摄像头和IMU笔记四 2 xff08 双目摄像头与IMU联合标定篇 xff09 一 前提二 文件准备2 1 标定板文件checkerboard yaml xff08 前面多次用到 xff09 xff1a 2 2 imu标定结果