kalibr标定realsenseD435i(二)--多相机标定

2023-05-16

kalibr标定板(棋盘格)用师兄的(长这样)

步骤一:建立的ROS中的Kalibr的工作空间,建立一个名为:checkerboard.yaml的文件,内容为:

target_type: 'checkerboard' 

targetCols: 11                  //内角的个数

targetRows: 8                  

colSpacingMeters: 0.02               

rowSpacingMeters: 0.02  

步骤二:启动关闭结构光

 默认开始结构光时,双目图像会有很多点,这些点可能对标定有影响,所以使用时需要关闭结构光。

 先在终端启动

roslaunch realsense2_camera rs_camera.launch

新打开终端,运行

rosrun rqt_reconfigure rqt_reconfigure

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

步骤三:确定realsense D435i放在合适位置

新打开终端,运行rviz

rviz

在rviz中将Global Option中的Fixed Frame后面选择camera_link

点击Add在topic中分别选择

/camera/color/image_raw、/camera/infra1/image_rect_raw、/camera/infra2/image_rect_raw,打开(双击camera)即添加成功。

之后对准标定板,尝试移动realsense D435i,同时要确保标定板一直在三个图像当中,如下图

 步骤四:修改相机帧数(官方推荐是4Hz,尽管实际频率不完全准确,但是不影响结果)

kalibr在处理标定数据的时候要求频率不能太高,一般为4Hz,我们可以使用如下命令来更改topic的频率,实际上是将原来的topic以新的频率转成新的topic,实际测试infra1才是对应左目相机。

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

rosrun topic_tools throttle messages /camera/color/image_raw 4.0 /color

rosrun topic_tools throttle messages /camera/infra1/image_rect_raw 4.0 /infra_left

rosrun topic_tools throttle messages /camera/infra2/image_rect_raw 4.0 /infra_right

步骤五:录制ROS数据包

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

rosbag record -O multicameras_calibration /infra_left /infra_right /color

后面三个topic就是转换频率后的topic,我录制了3分钟,录的时候对着标定板移动,按下ctrl+c 结束录制,看到当前文件夹会出现multicameras_calibration.bag文件

步骤六:使用Kalibr标定
先激活环境变量

source ~/kalibr_workspace/devel/setup.bash

然后运行:

kalibr_calibrate_cameras --target checkerboard.yaml --bag  multicameras_calibration.bag --models pinhole-equi pinhole-equi pinhole-equi --topics /infra_left /infra_right /color --bag-from-to 10 100 --show-extraction --approx-sync 0.04

最后:

最终得到的结果为三个文件:

camchain-multicameras_calibration.yaml

report-cam-multicameras_calibration.pdf

results-cam-multicameras_calibration.txt

 注:可能会遇到的问题

1、kalibr_calibrate_cameras:未找到命令

解决方法:

重新进行编译:

~/kalibr_workspace$ catkin build -DCMAKE_BUILD_TYPE=Release -j8

再:

source ~/kalibr_workspace/devel/setup.bash

2、

 File"/home/lab/kalibr_workspace/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py", line 234, in raiseError

    raise RuntimeError( "{0}{1}".format(header, message) )

RuntimeError: [CalibrationTargetConfig Reader]: Could not read configuration from ../checkerboard.yaml

解决方法:修改checkerboard.yaml文件为上面的内容(步骤一)。

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

kalibr标定realsenseD435i(二)--多相机标定 的相关文章

  • rosdep update报错解决

    一 报错 reading in sources list data from etc ros rosdep sources list d ERROR error loading sources list 39 The read operat
  • 解决多个Ardupilot运行仿真环境冲突问题

    情况说明 分别安装了4 2和4 3两个版本的ardupilot工作环境 xff0c 出现运行4 3版本sim vehicle py时路径链接到4 2版本工作路径 解决 为防止文件识别错误 xff0c 更改sim vehicle py文件名为
  • yum、apt-get、curl、wget你了解吗?

    在这里整理一些自己想要了解的一些概念 内容来自网络博客 一般来说著名的linux系统基本上分两大类 xff1a RedHat系列 xff1a Redhat Centos Fedora等Debian系列 xff1a Debian Ubuntu
  • 2020电赛备战总结(一)

    你有多渴望 xff0c 就要有多努力 2020 xff0c 注定被载入史册的一个年份 xff0c 希望2020电赛也能让我永远记住 机会来的突然 xff0c 有一点小幸运吧 xff0c 在寒假回家的时候我带上了我的32 xff0c 然后在无
  • StringBuilder的容量capacity变化规则

    StringBuilder的容量capacity变化 xff0c 是每次2倍增长吗 xff1f xff08 jdk1 8 xff09 测试代码 1 StringBuilder sb 61 span class hljs keyword ne
  • Mavros Client md5sum Error

    ERROR Client mavros wants topic State to have datatype md5sum mavros msgs State 4048c9de2a16f4ae8e0538085ebf1b97 but our
  • Chrome安装Proxy SwitchyOmega插件&Ubuntu20.04安装Proxychains

    目录 1 Chrome浏览器1 1 安装Proxy SwitchyOmega插件1 2 安装Proxy SwitchyOmega插件 2 Ubuntu服务器2 1 安装2 2 配置2 3 测试2 4 异常处理 1 Chrome浏览器 1 1
  • ozone-1.1.0(最新版)单节点搭建教程

    目录 1 搭建环境说明2 Java环境配置 xff08 Linux xff09 2 1 jdk下载2 2 源码包解压2 3 配置jdk环境变量2 4 测试 3 Ozone配置 1 搭建环境说明 服务器 xff1a Ubuntu20 4 JA
  • aws: command not found

    安装aws前先要安装pip3 环境 xff1a centos 安装pip3 yum install span class token operator span y python3 span class token operator spa
  • Linux命令总结

    记录一下在工作中遇到的命令 xff0c 碰到一个就总结一个吧 xff01 uname i uname span class token operator span i 查看linux是多少位的 ps aux span class token
  • 【Windows安装pip全过程详解】

    1 Ctrl 43 A全选并复制get pip py文件官方链接地址 链接1 get pip py 2 在python文件中建立get pip py文件 2 1 进入python文件 2 2 新建一个 txt文档 xff0c Ctrl 43
  • 工作总结模板

    最近要准备中期答辩 xff0c 画了一张工作总结的思维导图 xff0c 供大家参考 xff01
  • Pycharm安装包报错【To search for alternate channels that may provide the conda package...】

    1 在Pycharm安装包 xff0c 命令行 conda install xx包名 xff0c 报错提示如下 xff1a 2 解决办法 xff1a 改用 pip install xx包名 安装成功 xff01
  • 【Python】照片批量命名

    1 照片批量命名代码如下 span class token comment 批量修改文件名 xff0c 默认操作为将图片按1 xff0c 2 xff0c 3 xff0c xff0c xff0c 顺序重命名 span span class t
  • Nexus Repository Manager 3 私服搭建 —— windows版

    nexus3 本文安装的是免费版 xff1a Nexus Repository OSS 下载 最新版本下载链接1 最新版本下载链接2 或到 https my sonatype com 可以下载nexus2和3两大版本 参考页面 xff1a
  • stm32f103在使用Free RTOS操作系統是遇到prvTaskExiterror解决办法

    1 检查已建立的线程中是否均有while xff08 1 xff09 2 是否含有break从而使程序跳出线程
  • 用HALL 库配置GPIO以及相关寄存器

    文章目录 一 初始化GPIO 一 定义一个结构体变量GPIO InitStruct xff0c 该变量类型是GPIO InitTypeDef 二 使能时钟 三 配置引脚的初始化电平 xff08 四 xff09 通过结构体变量配置具体的引脚
  • px4offboard模式无法设置成功

    px4offboard模式无法设置成功 这两天在测试px4的offboard模式 xff0c 根据官方使用手册给出的代码测试成功 xff0c 在这个基础上修改结果发现无法设置成功了 经过与官方代码对比分析 xff0c 在设置offboard
  • VsCode 配置 C/C++ 开发环境,真的很简单

    旧日的旧图 工欲善其事 xff0c 必先利其器 最近在学习C语言版的数据结构 xff0c 要敲敲C C 43 43 的代码 xff0c DevC 43 43 成功把我劝退了 之前写后端用习惯了Idea 写前端习惯用VsCode了 xff0c
  • 8.16 IO多路复用——select的TCP服务器/客户端

    文章目录 select的TCP服务器 客户端select的服务器代码示例 select的客户端代码示例 select的TCP服务器 客户端 select的服务器 代码示例 span class token macro property sp

随机推荐

  • 毫米波雷达图解算法原理(基于TI雷达)

    毫米波雷达数据处理原理 前言基础bin文件解读 以下我们取1帧进行操作 xff1a 对数据矩阵进行操作前的转换 开始计算结果矩阵一维FFT xff08 距离 xff09 二维FFT xff08 速度 xff09 角度维FFT xff08 假
  • ubuntu18.04 安装ros与运行vins-mono

    Ubuntu18 04 安装环境及运行Vins mono xff08 2022年 xff09 AI技术聚合 安装 sudo apt get install ros melodic desktop full 正在解包 ros melodic
  • 全面认识海思SDK及嵌入式层开发(1)

    目录 一 全面认识和检测配套开发套装1 套装配件介绍2 检测开发板3 注意 二 视频设备开发的技术流1 视频从产生到被消费的整个流程2 视频行业的商业角度分段3 几个疑问点 一 全面认识和检测配套开发套装 购买方式 xff1a 淘宝搜索 g
  • Java网络编程——UDP通信原理(超详细解析一看就懂哦!!!)

    文章目录 前言一 TCP和UDP概述二 UDP1 UDP通信概述2 UDP通信特点3 UDP通信传输实现的基石3 1 DatagramPake常用方法3 2 DatagramSocket常用方法 4 UDP通信实现原理5 UDP通信原理 x
  • Linux脚本中如何删除换行符(血案)

    Linux脚本中如何删除换行符 Linux中换行符和Windows中换行符不同 xff0c 分别为 n和 r n 如何删除换行符呢 xff1f 如果你百度了半天才过来 xff0c 相信你应该看到过如下的处理方式吧 cat country t
  • 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 并与进程进行复杂的交互 它
  • 相机标定(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
  • 旋转矩阵求导

    旋转矩阵的导数 证明 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 多项式
  • 如何在付费页面复制走想要的文字

    1 按F12打开控制台 出现如下界面 xff1a 2 点击图中方框按钮或者按Ctrl 43 B选择元素 xff0c 出现如下界面 xff1a 3 在左边点击想要复制的文字 xff0c 右边就会弹出对应的元素 xff0c 然后双击右边元素就可
  • 锂电池容量下降怎么办?锂电池容量下降修复方法

    锂电池容量下降怎么办 锂电池容量下降修复方法 据存能电气小编所知 xff0c 锂离子电池的容量在300 500次充放电循环后会下降到80 xff5e 85 xff0c 想要恢复初始续航性能必须更换新电池 近日声称有科研人员发明了能让锂离子电
  • 2021-02-18

    多旋翼飞行器学习笔记 二 机架设计 2 1布局设计 1 机身基本布局 交叉型 xff1a 目前常用的是X字型布局 xff0c 因为 xff1a xff08 1 xff09 机动性更强 xff1b xff08 2 xff09 前视相机的视场角
  • UDP协议

    文章目录 UDP协议1 UDP协议概述1 1基于IP协议略微改进1 2不可靠性1 3无连接1 4UDP协议存在的意义 2 UDP报文段2 1UDP报文段格式2 2校验和及其计算 UDP协议 Internet 协议集支持一个无连接的传输协议
  • ROS小车,乐视深度相机+cartographer+move_base从零开始配置导航

    ROS小车导航 制作教程链接小车制作stm32ide配置PWM小车蓝牙控制使用说明 ROS小车驱动板如何从编码器得到转速 xff1f 任务划分小车与ROS的串口通信cartographer安装运行cartographer示例建图仿照back
  • kalibr标定realsenseD435i(二)--多相机标定

    kalibr标定板 xff08 棋盘格 xff09 用师兄的 xff08 长这样 xff09 步骤一 xff1a 建立的ROS中的Kalibr的工作空间 xff0c 建立一个名为 xff1a checkerboard yaml的文件 xff