kalibr标定realsenseD435i(三)--imu+双目标定

2023-05-16

步骤一:编写camchain.yaml,具体的参数参考上面得到的yaml文件,没有的参数可以删除。

cam0:
  camera_model: pinhole
  distortion_coeffs: [0.3741003900681439, -0.3881978058678547, 3.1716618459908745,
    -6.001063348025562]
  distortion_model: equidistant
  intrinsics: [390.758503853357, 391.25816160400524, 321.83897980850134, 239.4465181428646]
  resolution: [640, 480]
  rostopic: /infra_left
cam1:
  T_cn_cnm1:
  - [0.9999998901585861, -4.294157013095873e-05, 0.00046673208390293774, -0.05012845047306967]
  - [4.2939084706306155e-05, 0.9999999990638859, 5.335182709763375e-06, -4.592119433712806e-05]
  - [-0.00046673231256714554, -5.315141075253501e-06, 0.9999998910663435, 2.7033932716557476e-06]
  - [0.0, 0.0, 0.0, 1.0]
  camera_model: pinhole
  distortion_coeffs: [0.34234774358277686, 0.11586227173983633, 0.1467711250555194,
    -0.10482812645454345]
  distortion_model: equidistant
  intrinsics: [390.99220733802025, 391.5150578117259, 321.8225997794459, 239.3566665455548]
  resolution: [640, 480]
  rostopic: /infra_right

步骤二:编写imu.yam,具体参数使用之前imu标定得到的参数

accelerometer_noise_density: 1.3105289977393427e-02   
accelerometer_random_walk:   2.6279926558638435e-04  
gyroscope_noise_density:     1.5606318435633282e-03   
gyroscope_random_walk:       1.6355489539708390e-05 
rostopic:                    /imu      
update_rate:                 200.0    

步骤三:准备好之前的checkerboard.yaml文件

步骤四:复制realsense-ros包中rs_camera.launch,重命名为rs_imu_stereo.launch,更改内容为

    将

<arg name="enable_sync"               default="false"/>

改为:

<arg name="enable_sync"               default="true"/>

这样来使imu和双目数据时间对齐

<arg name="unite_imu_method"          default=""/>

改为

<arg name="unite_imu_method"          default="linear_interpolation"/>

这样来保证会有imu话题

步骤五:启动realsense

我是在~/catkin_ws$ 里运行!!后面文件数据录制结束储存地方也在/catkin_ws)

roslaunch realsense2_camera rs_imu_stereo.launch

 步骤六:关闭IR结构光,参考上面

rosrun rqt_reconfigure rqt_reconfigure

打开后将camera->stereo_module中的emitter_enabled设置为off(0)

 步骤七:打开rviz,add imu topic和infra1 topic以及infra2 topic,同时调整realsenseD435i位置,要确保双目图像数据一直包含标定板全部内容

 步骤八:调整imu和双目topic的发布频率以及以新的topic名发布它们,其中双目图像的发布频率改为20Hz,imu发布频率改为200Hz

使用Ctrl+shift+T,打开新的终端,一个终端运行一个,分别运行

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

步骤九: 开始录制数据包,,同样注意双目图像在整个过程要包含整个标定板,同时运动不能太快,这样会造成图像过于模糊,在前后左右上下方向来回移动,录制大概90秒,前后15秒等下可以不使用。录制命令为:

使用Ctrl+shift+T,打开另一个新的终端运行

rosbag record -O imu_stereo.bag /infra_left /infra_right /imu

其生成文件imu_stereo.bag位置在运行启动realsense终端的路径中,要将它复制过来放 kalibr_workspace中,与下面标定命令的文件夹放在一起。

步骤十:开始进行标定,标定命令为

kalibr_calibrate_imu_camera --target checkerboard.yaml --cam camchain.yaml --imu imu.yaml --bag imu_stereo.bag –show-extraction

最后标定生成4个文件:

camchain-imucam-imu_stereo.yaml

imu-imu_stereo.yaml

report-imucam-imu_stereo.pdf

results-imucam-imu_stereo.txt

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kalibr标定realsenseD435i(三)--imu+双目标定 的相关文章

  • 嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)

    目录 一 安装VMware1 VMware介绍2 安装VMware16 0 0 二 安装ubuntu16 04 3 LTS1 Ubuntu介绍2 下载安装包iso3 安装 四 新安装Ubuntu的基本设置1 开机和关机等2 虚拟机基本设置3
  • 全面认识海思SDK及嵌入式层开发(2)

    目录 一 HI3518E方案系统整体架构介绍1 硬件上2 软件上 二 海思SDK的整体介绍三 海思SDK包的学习和实验1 2篇相关文档2 SDK包复制到linux原生目录中并解压3 SDK包操作的脚本程序研究4 SDK中源码包部分的配置编译
  • 计算机视觉之相机模型

    目录 一 相机模型1 相机与图像2 坐标系3 世界坐标系到摄像机坐标系4 摄像机坐标系到图像物理坐标系5 图像物理坐标系到图像像素坐标系6 摄像机坐标系到图像像素坐标系7 世界坐标系到图像像素坐标系 二 镜头畸变1 相机成像原理2 镜头畸变
  • vscode安装插件失败,完美解决

    vscode安装插件一直失败 xff0c 解决方案如下 访问vscode插件官网https marketplace visualstudio com vscode xff0c 搜索你要的插件点击插件详情 Version History 下载
  • ROS的topic通信机制

    1 通信步骤如图 xff1a 2 步骤介绍 第 xff08 0 xff09 步 xff1a talker gt master 发布者talker向mater注册 xff1a 包括节点的信息 需要发布的话题名等 xff0c 然后节点管理器RO
  • 关于快速幂和矩阵快速幂

    快速幂 xff1a 可参考该链接百科快速幂也可以参考这个博客快速幂博客 给出快速幂的题目和代码 xff1a 快速幂 取余计算 include lt iostream gt include lt string h gt using names
  • C/C++ 文件操作基础

    目录 1 文件分类 2 文件的打开与关闭 3 顺序读写文件 4 随机读写文件 5 其他与文件相关的操作 最近看 GNU Radio 源码看到了文件操作的部分 xff0c 因此记录下学习 C 43 43 C 操作文件的过程 本文的文件操作是
  • npm的装包原理

    原文 xff1a npm安装包原理 前言 xff1a 提起npm xff0c 大家第一个想到的应该就是 npm install 了 xff0c 但是 npm install 之后生成的 node modules大家有观察过吗 xff1f p
  • 02基于freertos实现串口通讯

    文章目录 一 操作步骤1 任务创建API2 步骤 二 代码 一 操作步骤 1 任务创建API 动态创建任务xTaskCreate 静态创建任务xTaskCreateStatic 任务句柄 xff1a 任务句柄就是一个指针 xff0c 指向任
  • windows中freeRTOS模拟器环境搭建

    windows中的freeRTOS使用 FreeRTOS参考手册中的模拟程序都是基于windows版本的模拟器 因此为了学习FreeRTOS xff0c 需要在Windows中搭建一下模拟器的运行环境 网络上的一般都是直接跑一下FreeRT
  • Xavier NX+4路Cameralink图像处理卡

    Xavier NX 43 4路Cameralink图像处理卡 M D CAP是天津雷航光电科技有限公司推出的一款复合加速计算平台 xff0c 由 NVidia GPU 和 Xilinx FPGA 通过PCIE 互联而成的高性能计算平台 其中
  • Xavier NX+KU040图像处理卡

    Xavier NX 43 KU040图像处理卡 CS NX21T是天津雷航光电科技有限公司推出的一款复合加速计算平台 xff0c 由 NVidia GPU 和 Xilinx FPGA 通过PCIE 互联而成的高性能计算平台 其中 FPGA
  • js使用input上传文件夹、拖拽上传文件夹并将文件夹结构展示为树形结构

    一 实现效果 左侧区域支持选择一个系统中的文件夹 xff0c 或者将文件夹拖拽到这个区域进行上传 xff0c 右侧区域可以将文件夹的结构展示为树形结构 二 代码实现 由于需要使用树形插件zTree xff0c 这个插件是依赖于jquery的
  • 傅里叶描述子、HOG特征描述子原理及matlab代码

    一 傅里叶描述子 傅里叶描述子的作用是用来描述图像的轮廓信息 xff0c 具有平移 旋转 尺度不变性特征 对于一幅图像 xff0c 通过傅里叶描述子获得其图像轮廓信息 xff0c 其本质就是空间 频域变换问题 通过将图像中的像素点进行傅里叶
  • raise ValueError(‘Expected input batch_size ({}) to match target batch_size ({}).‘

    raise ValueError Expected input batch size to match target batch size 记得在正向传播之前打印一下图片的尺寸 xff0c 这次没注意到图片其实都进来是 RGB 三通道的数据
  • RuntimeError mat1 dim 1 must match mat2 dim 0

    RuntimeError mat1 dim 1 must match mat2 dim 0 代码 self span class token punctuation span fc1 span class token operator 61
  • python 中 subprocess.Popen 总结

    python 中 subprocess Popen 总结 subprocess的目的就是启动一个新的进程并且与之通信 subprocess模块中只定义了一个类 Popen 可以使用Popen来创建进程 xff0c 并与进程进行复杂的交互 它
  • 关于 GNURadio-OFDM 运行时掉帧问题的解决

    最近在运行 GNURadio 中的 OFDM 例程时发现了丢帧的问题 2022 08 01更新 xff1a 1 突然又想起了这个问题 xff0c 今年年初的时候与西电的一个师兄又重新讨论了这个问题 xff0c 有了更深一步的理解 xff0c
  • 相机标定(Camera calibration)原理、步骤

    相机标定 xff08 Camera calibration xff09 原理 步骤 简介 在图像测量过程以及机器视觉应用中 xff0c 为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系 xff0c 必须建立相机成像的几何
  • python3-rosdep2 : Depends: python3-catkin-pkg but it is not going to be installed

    python3 rosdep2 Depends python3 catkin pkg but it is not going to be installed 今天在 Ubuntu18 04 中安装ros莫名其妙的出现了上述问题 xff0c

随机推荐

  • Ubuntu 18.04 安装 T265 相机驱动

    Ubuntu 18 04 安装 T265 相机驱动 Make Ubuntu Up to date span class token function sudo span span class token function apt get s
  • VINS中旋转外参初始化

    VINS 中的旋转外参初始化 为了使这个两个传感器融合 xff0c 我们首先需要做的事情是将两个传感器的数据对齐 xff0c 除了时间上的对齐 xff0c 还有空间上的对齐 空间上的对齐通俗的讲就是将一个传感器获取的数据统一到另一个传感器的
  • 旋转矩阵求导

    旋转矩阵的导数 证明 quad 假设旋转矩阵为 R mathbf R theta
  • VINS中陀螺仪零偏的估计

    VINS中关于陀螺仪零偏的初始化估计 对于窗口中得连续两帧 b k b k b k 和 b
  • 非线性优化问题基本形式概述

    非线性优化问题以及在视觉SLAM中的应用 1 0 最小二乘基础概念 定义 quad 找到一个 n 维的变量 x
  • Ceres 自动求导解析-从原理到实践

    Ceres 自动求导解析 从原理到实践 文章目录 Ceres 自动求导解析 从原理到实践1 0 前言2 0 Ceres求导简介3 0 Ceres 自动求导原理3 1 官方解释3 2 自我理解 4 0 实践4 1 Jet 的实现4 2 多项式
  • 深度学习环境搭建之cuda、cudnn以及pytorch和torchvision的whl文件安装方法

    一 前言 假设已经装好了pycharm anaconda xff0c 并且新建了一个conda虚拟环境 xff08 我的虚拟环境名为pytorch xff09 接下来需要安装新版的显卡驱动 xff0c 安装cuda cudnn pytorc
  • FreeRtos快速入门

    堆和栈 堆 堆即为一块空闲的内存 xff0c 从这块内存中来取出一部分用完之后再把它释放回去 span class token comment 此时heap buf就相当于一块空闲的内存 span span class token comm
  • GNURadio 3.9 使用 OOT 自定义模块问题记录

    最近由于 GR3 8 里的卷积编码模块有问题就换用了 GR3 9 xff0c 发现 GR3 9 可以正常使用 xff0c 关于 GR3 8 里的卷积编码模块为什么不能用就先不深究了 xff0c 之前写过 GR3 8 编写 OOT 的流程 x
  • 2021-02-11

    多旋翼飞行器学习笔记 一 多旋翼基本组成 1 1机架 xff08 机身 起落架 涵道 xff09 1 机身 机身要考虑的有 xff1a 尺寸 布局 材料 强度 重量 指标参数包括 xff1a 重量 轴距 xff08 外圈电机围城圆的直径 x
  • JAVA学习51-线程礼让

    线程礼让 礼让线程 xff0c 让当前正在执行的线程暂停 xff0c 但不阻塞 将线程从运行状态转换为就绪状态 让CPU重新调度 xff0c 礼让不一定成功 xff0c 看CPU心情 span class token keyword pub
  • Jetson nano安装librealsense和realsense ROS wrapper

    1 安装librealsense librealsense可以使用外国dalao的安装脚本一键安装 git clone https github com JetsonHacksNano installLibrealsense git 这里选
  • ACFly A9飞控使用T265作为位置传感器

    使用一块Jetson nano读取T265数据发送给飞控代替光流实现室内定点飞行 1 Jetson nano数据发送 sudo apt get install ros melodic serial cd ros ws src catkin
  • In grDevices::dev.off() : agg could not write to the given file

    R语言画图保存是报的错误 stackoverflow和github上都没有相关问题 原因是 xff0c 保存的名字字符或标点不对 名字中的标点符号之类的不符合命名原则
  • C++ 创建txt文件,并实现读写txt文件

    最近在逐渐接触C 43 43 xff0c 看了网上很多回答 xff0c 做个汇总的记录 xff0c 方便以后查看 include lt fstream gt include lt iostream gt include lt string
  • eslint:vue报错 error Component name ““ should always be multi-word

    在使用vue cli创建项目 xff0c 命名好组件的时候 xff0c 报错 xff1a error Component name xxx should always be multi word xff0c 解决办法看最后 原因是官方的建议
  • PX4仿真

    XTDrone仿真 运行PX4仿真 span class token builtin class name cd span PX4 Firmware roslaunch px4 mavros posix sitl launch 通过下条命令
  • 安卓期末考试复习题

    安卓试题题型 1 选择题 xff08 10x1 39 xff09 2 填空题 xff08 5x2 39 xff09 3 简答题 xff08 4x5 39 xff09 4 程序分析题 xff08 10 39 xff09 5 编程题 xff08
  • GNURadio 运行报错:ERROR thread[thread-per-block[12]: <block ofdm_cyclic_prefixer(8)>]: Buffer too small

    在修改 GR 的 OFDM 例程时 xff0c 将 OFDM 子载波数从原来的 64 调整为 128 后运行出现了这个问题 xff0c 更全的错误提示如下 xff1a gr log ERROR thread body wrapper ERR
  • kalibr标定realsenseD435i(三)--imu+双目标定

    步骤一 xff1a 编写camchain yaml 具体的参数参考上面得到的yaml文件 xff0c 没有的参数可以删除 cam0 camera model pinhole distortion coeffs 0 3741003900681