zed2i相机内参标定

news2024/11/11 5:44:26

参考:

https://blog.csdn.net/yanpeng_love/article/details/107166922
https://blog.csdn.net/weixin_41954990/article/details/127928852

参考以上连接先安装kalibr

注意:

  • python包装不上,换成:pip install
  • 出现pyx找不到的错误:sudo apt-get install python3-pyx

1. 生成标定板

可以自己定制特定尺寸的标定板:

source ~/桌面/liweidong/kalibr_ws/devel/setup.bash
rosrun kalibr kalibr_create_target_pdf --type apriltag --nx 4 --ny 4 --tsize 0.035 --tspace 0.2

其中,tsize为方块的边长,tspace为方块边长/方块间距离(上述参数刚好可以用A4纸张打印出来)。
同时,生成相应的配置文件aprilgrid.yaml

target_type: 'aprilgrid' #gridtype
tagCols: 4               #number of apriltags
tagRows: 4               #number of apriltags
tagSize: 0.035           #size of apriltag, edge to edge [m]
tagSpacing: 0.2          #ratio of space between tags to tagSize

根据张正友标定法,标本板需要为平面,采用纸张可能不够平整,最好用特制的标定板。实验室的标定板如下,规格为297x210mm:
f7f473fb9df222991cd888a5f7a246e.jpg
生成的配置文件如下:

target_type: 'aprilgrid' #gridtype
tagCols: 7               #number of apriltags
tagRows: 5               #number of apriltags
tagSize: 0.03           #size of apriltag, edge to edge [m]
tagSpacing: 0.2          #ratio of space between tags to tagSize

(很疑惑,我用购买的标定板的标定质量反而不如打印的A4纸)

2. 开启zed2i相机

source ~/桌面/zed/ros/catkin_ws/devel/setup.bash
roslaunch zed_wrapper zed2i.launch

3. 显示图片

开两个终端,分别输入以下命令,用以观察相机左右目图像

rqt_image_view

两个窗口分别订阅话题:
/zed2i/zed_node/left/image_rect_color/zed2i/zed_node/right/image_rect_color

4. 录制bag

相机对准标定板

rosbag record /zed2i/zed_node/imu/data /zed2i/zed_node/left/image_rect_color /zed2i/zed_node/right/image_rect_color 

要求:

  • 相机的6个自由度都要运动到,且运动要比较缓慢
  • 标定板应当占据图像比较大的视野
    可以参考以下视频:
    https://youtu.be/puNXsnrYWTY?t=57

5. 计算相机参数

将录制的bag以及aprilgrid.yaml放到同一目录下

rosrun kalibr kalibr_calibrate_cameras --bag xxx.bag --topics /zed2i/zed_node/left/image_rect_color /zed2i/zed_node/right/image_rect_color --models pinhole-radtan pinhole-radtan --target aprilgrid.yaml

如果依赖出现错误:

pip install -U wxPython
pip uninstall numpy
pip install numpy==1.23.5

如果焦距初始化有问题:

Initialization of focal length failed. You can enable manual input by setting ‘KALIBR_MANUAL_FOCAL_LENGTH_INIT’.
[ERROR] [1668944382.174500]: initialization of focal length for cam with topic /color failed

先输入export KALIBR_MANUAL_FOCAL_LENGTH_INIT=1,然后再输入标定命令,会再次出现上述错误,然后手动输入焦距初始值,比如513,不需要太准确。

之后需要等待一段时间,然后会生成标定报告

6. 标定报告

标定结果的质量衡量主要靠重投影误差,我标定的平均重投影误差如下:

reprojection error: [-0.000013, -0.000000] +- [0.439647, 0.382278]
reprojection error: [0.000014, -0.000000] +- [0.446480, 0.360552]

得到的内参为:

cam0:
  cam_overlaps: [1]
  camera_model: pinhole
  distortion_coeffs: [-0.007672411193999486, -0.0018797608319184925, 0.00010455529940025013, 0.003016299846222382]
  distortion_model: radtan
  intrinsics: [513.9484564548267, 514.419647214949, 655.6025133839975, 355.2192952629164]
  resolution: [1280, 720]
  rostopic: /zed2i/zed_node/left/image_rect_color
cam1:
  T_cn_cnm1:
  - [0.999984579215046, -0.0002977357189092575, -0.005545510395196279, -0.1198602703850598]
  - [0.00029918561625662975, 0.9999999212808846, 0.00026062652575081026, 0.00013190712977596532]
  - [0.005545432360832611, -0.0002622816436302485, 0.9999845895753918, -0.0028534346937582433]
  - [0.0, 0.0, 0.0, 1.0]
  cam_overlaps: [0]
  camera_model: pinhole
  distortion_coeffs: [-0.00881952628646651, -0.0009790074643185275, 6.896618449740411e-06, 0.0021108942872241914]
  distortion_model: radtan
  intrinsics: [512.4235378267127, 511.74360543501797, 658.7869197242953, 354.8151090771085]
  resolution: [1280, 720]
  rostopic: /zed2i/zed_node/right/image_rect_color

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/509293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React JSX

文章目录 React JSX使用 JSX独立文件JavaScript 表达式样式注释数组HTML 标签 vs. React 组件 React JSX React 使用 JSX 来替代常规的 JavaScript。 JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。 我们不需要一定使用 JSX,但它有以下优点: JSX…

Linux共享库、动态库详解

目录 一.静态库 二.动态库 三.静态库的制作与使用 四.动态库的制作与使用 在日常编程中我们不想让别人看到我们写的源码,但还需要发给对方使用,在这种情况下我们引入了静态库动态库,让对方用调库的方式也可以实现我们写的代码的功能&…

2023天津Web前端开发培训就业排行榜(你对Web前端工程师了解多少)

2023天津Web前端开发培训就业排行榜。前端开发技术在多个开发领域得到了广泛的应用,现在对前端开发技术人员的需求越来越大,没有基础要学好前端开发技术知识,更需要系统的学习。今天给大家分享一下Web前端程序员,0基础学前端&…

React 安装

文章目录 React 安装使用实例实例解析 通过 npm 使用 React使用 create-react-app 快速构建 React 开发环境 React 安装 React 可以直接下载使用,下载包中也提供了很多学习的实例。 你也可以直接使用 BootCDN 的 React CDN 库,地址如下: &l…

matlab实现BP神经网络(完整DEMO)

本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 目录 一、BP神经网络Demo代码 1.1 代码整体思路 1.2 BP神经网络Demo代码 二、运行结果 2.1 拟合曲线 2.2训练误差与预测误差 三、相关文章 3.1-BP的入门学习目录:老饼…

中大型连锁企业如何以数字化驱动业务创新增长

随着互联网、IT技术的发展,数字化转型逐渐成为时代发展的浪潮,对于中大型连锁企业而言,抓住机遇、创新增长是企业发展的关键。面对新的市场形势,企业需要让线上数据流动起来,解决业务数据的运力和流通问题,…

第6章 静态代理

第6章 静态代理 把所有静态资源的访问改为访问nginx,而不是访问tomcat,这种方式叫静态代理。因为nginx更擅长于静态资源的处理,性能更好,效率更高。 ​ 所以在实际应用中,我们将静态资源比如图片、css、html、js等交…

什么是企业内容管理?

为什么出现企业内容管理? 在数字经济的宏观背景下,企业建立了各种应用系统以满足企业各业务的管理需求,这些系统每天都在产生大量的数据和信息资源,但在企业实践中存在很多数据或资源无法被应用系统获取、处理和共享。 比如发票…

电力需求侧管理系统是什么?

摘要:电力是国民经济和居民生活的命脉,为贯彻落实国家对于节能减排工作的总体部署,深入推进电力需求侧管理工作、本文从电力需求侧能效管理平台所要实现的功能与应用信息技术两个方面,着重介绍平台研究建立的节电效益计算分析模型…

CSO面对面丨对话海通证券,探讨数字金融行业安全运营

新技术的涌现带动了金融行业的数字化转型发展,同时也带来了更多安全挑战。一方面,金融科技大量采用新技术实现业务创新的同时,也给网络安全带来了更多隐性风险。另一方面,金融行业数字化转型的进一步普及,大量个人隐私…

Express 创建和使用render

1 创建项目 npm install -g express-generator express -e myapp //创建myapp项目npm i //安装依赖npm i nodemon -D //安装nodemon 修改package.json "scripts": {"start": "node ./bin/www","dev": "nodemon ./bin/www&quo…

接入sentry安装@sentry/webpack-plugin依赖报错(附遇到的其他小问题)

背景 项目需要接入sentry,使用的是vue2 vue-cli构建的,那么需要使用webpack构建的方式 见sentry官方文档 问题和尝试思路 根据文档安装sentry/webpack-plugin依赖的时候一直失败 出现两种报错 第一种:下载安装包https://downloads.sent…

C++跨平台开发工具CLion——使用任意编译器快速指南

CLion是一款专为开发C及C所设计的跨平台IDE,它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C,同时它还使用智能编辑器来提高代码质量、自动代码重构并且…

【Nginx基础篇】nginx的基本配置解析和应用场景

目录 一、最小配置 二、虚拟主机 一、最小配置 原始的配置文件 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }…

【前后端分离项目】搭建前后端分离项目框架(vue前端)

创建项目文件夹 创建文件夹(框架),可以在里面增加页面实现自己的需求。 在官网下载nodejs 官网地址:https://nodejs.org/en nodejs中自带了npm包,npm负责管理依赖,将nodejs下载完成后,即可使…

开关电源基础04:新型开关电源拓扑(1)-拓扑的改进

说在开头:关于互补原理 玻尔在挪威滑雪之余好好的思考了波粒问题,并逐渐完善了这个新想法;当他看到海森堡的论文时,自然而然地用这种想法去印证整个结论。他问海森堡:这种不确定性是从粒子的本性而来,还是…

软件架构:构建软件架构SOA

Web服务一种作为炙手可热的技术,应用到企业的IT系统和商业流程之中,并给企业带来直接的经济效益,一直以来得到了国内外企业管理者的推崇。而在近两年,伴随着企业需求的不断变化,一种被誉为Web服务的技术架构&#xff0…

【Flowable】Flowable任务分配和流程变量

1.任务分配 (1).固定分配 固定分配就是我们前面介绍的,在绘制流程图或者直接在流程文件中通过Assignee来指定的方式 (2).表达式分配 Flowable使用UEL进行表达式解析。UEL代表Unified Expression Language,是EE6规范的一部分.Flowable支持两种UEL表…

基于云平台的光伏监控系统是怎样的?

摘要:针对国内光伏发电监控系统的研究现状,文中提出了基于云平台的光伏发电监控体系。构建基于B/S架构的数据实时采集与推送,以SSH(strutsspringhibernate)作为Web开发框架,开发基于云平台的光伏发电远程监控系统。在平台部署过程…

开关电源基础04:新型开关电源拓扑(2)-新型电源拓扑

说在开头:关于量子理论 我们再来回顾下量子理论对双缝干涉的解释:当电子通过狭缝,假如我们采用任其自然的观测方式,让它不受干扰地在空间中传播,这时候电子的波动性就占据了上风,它于是以某种方式同时穿过…