zed2i相机中imu内参的标定及外参标定

news2024/11/26 9:29:52

zed2i中imu内参的标定

参考:

https://blog.csdn.net/weixin_42681311/article/details/126109617

https://blog.csdn.net/weixin_43135184/article/details/123444090

值得注意,imu内参的标定其实不是那么重要,大致上给一个值应该影响不大,比如下面是官方给的参数imu-params.yaml,直接拿来用应该也影响不大:

#Accelerometers
accelerometer_noise_density: 1.4e-03   #Noise density (continuous-time)
accelerometer_random_walk:   8.0e-05   #Bias random walk
 
#Gyroscopes
gyroscope_noise_density:     8.6e-05   #Noise density (continuous-time)
gyroscope_random_walk:       2.2e-06   #Bias random walk
 
rostopic:                    /zed2i/zed_node/imu/data_raw      #the IMU ROS topic
update_rate:                 400.0     #Hz (for discretization of the values above)

值得注意的是,zed2i提供的imu话题有两个,一个是/zed2i/zed_node/imu/data,一个是zed2i/zed_node/imu/data_raw,前者应该是在后者基础上做了一定的滤波处理,我后面采用了前者。

如果自行标定,可以采用imu_utils,项目链接。安装时要先下载code_utils在workspace中,并且先catkin_make完,然后再放入imu_utils,再次catkin_make

1. 录制

找个地方放置相机,保持静止,录制2个多小时。

source ~/桌面/zed/ros/catkin_ws/devel/setup.bash
roslaunch zed_wrapper zed2i.launch
rosbag record -O /zed2i/zed_node/imu/data /zed2i/zed_node/imu/data

2. 标定

~/桌面/liweidong/imu_utils_ws/src/imu_utils-master/launch下创建文件zed2i.launch,内容如下:

<launch>

    <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
        <param name="imu_topic" type="string" value= "/zed2i/zed_node/imu/data"/>
        <param name="imu_name" type="string" value= "zed2i"/>
        <param name="data_save_path" type="string" value= "$(find imu_utils)/data/zed2i/"/>
        <param name="max_time_min" type="int" value= "120"/>
        <param name="max_cluster" type="int" value= "100"/>
    </node>



</launch>

其中,需要注意max_time_min是要标定的时间长度(分钟),应当与录制的bag的时间长度一致,或者短一点,切不可比录制时间还长,不然标定会一直卡住。接下来进行标定:

source ~/桌面/liweidong/imu_utils_ws/devel/setup.bash
roslaunch imu_utils zed2i.launch
rosbag play -r 200 xxx.bag

这里将bag的播放速度加速为200倍。最后得到标定结果如下:

%YAML:1.0
---
type: IMU
name: zed2i
Gyr:
   unit: " rad/s"
   avg-axis:
      gyr_n: 1.9907361538269255e-03
      gyr_w: 3.9258772229758955e-05
   x-axis:
      gyr_n: 1.7828571086570984e-03
      gyr_w: 3.7532900901648101e-05
   y-axis:
      gyr_n: 2.3517096252728287e-03
      gyr_w: 4.4818844873917894e-05
   z-axis:
      gyr_n: 1.8376417275508495e-03
      gyr_w: 3.5424570913710870e-05
Acc:
   unit: " m/s^2"
   avg-axis:
      acc_n: 2.1014029979335751e-02
      acc_w: 4.5856543488109373e-04
   x-axis:
      acc_n: 2.1554014733711498e-02
      acc_w: 3.7798512464262918e-04
   y-axis:
      acc_n: 2.0157270328875061e-02
      acc_w: 5.3636489912956887e-04
   z-axis:
      acc_n: 2.1330804875420693e-02
      acc_w: 4.6134628087108308e-04

用得到的数据替换最上边官方给的结果imu_params.yaml

#Accelerometers
accelerometer_noise_density: 2.1014029979335751e-02   #Noise density (continuous-time)
accelerometer_random_walk:   4.5856543488109373e-04   #Bias random walk
 
#Gyroscopes
gyroscope_noise_density:     1.9907361538269255e-03   #Noise density (continuous-time)
gyroscope_random_walk:       3.9258772229758955e-05   #Bias random walk
 
rostopic:                    /zed2i/zed_node/imu/data      #the IMU ROS topic
update_rate:                 400.0     #Hz (for discretization of the values above)

标定zed2i中cam-imu之间的外参

将相机标定时录制的bag,相机标定得到的结果camchain.yaml、标定板参数文件aprilgrid.yaml和imu标定得到的结果imu-params.yaml放在同个目录下。
执行以下命令对外参进行标定:

rosrun kalibr kalibr_calibrate_imu_camera --bag xxx.bag --cam camchain.yaml --imu imu-params.yaml --target aprilgrid.yaml

需要等几分钟,然后就会得到标定结果

图片.png

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

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

相关文章

金字塔特征融合

金字塔的三种主要结构 FPN: Feature Pyramid Networks for Object Detection (CVPR 2017) PANet: Path Aggregation Network for Instance Segmentation (CVPR 2018) BiFPN: EfficientDet: Scalable and Efficient Object Detection (CVPR 2020) Deep High-Resolution Repre…

神奇哈哈镜-第14届蓝桥杯省赛Scratch初级组真题第3题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第132讲。 神奇哈哈镜&#xff0c;本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程初级组真题第3题&#…

颜值经济崛起,伽蓝开启采购数字化之旅

今天&#xff0c;数字化转型已成为颠覆性力量&#xff0c;很多行业被裹挟其中&#xff0c;或主动或被动&#xff0c;美妆行业也不例外。 作为国内最大的化妆品企业之一的伽蓝&#xff0c;在过去的几年当中&#xff0c;一直是以 7% 到 10% 的速度快速增长&#xff0c;在此过程中…

计算机组成原理---第二章 习题详解版

(一&#xff09;课内习题 1. &#xff08;二&#xff09;课后练习 1.写出下列各整数的原码、反码和补码表示&#xff08;用8位二进制表示&#xff09;。其中MSB是最高位&#xff08;符号位&#xff09;&#xff0c;LSB是最低位。 &#xff08;1&#xff09;-35 &#…

DVWA之文件包含漏洞

文件包含漏洞原理 1、什么是文件包含 程序开发人员一般会把重复使用的函数写到单个文件中&#xff0c;需要使用某个函数时直接调用此文件&#xff0c;而无需再次编写&#xff0c;这中文件调用的过程一般被称为文件包含。 2、文件包含漏洞 程序开发人员一般希望代码更灵活&a…

自学网络安全【黑客】,一般人我劝你还是算了吧

前言&#xff1a;我是劝一般人算了&#xff0c;看你是一般人还是。。。 一、网络安全学习的误区 1.不要试图以编程为基础去学习网络安全2.不要刚开始就深度学习网络安全3.收集适当的学习资料4.适当的报班学习二、学习网络安全的些许准备 1.硬件选择2.软件选择3.外语能力三、网…

数据结构:双向链表(带头循环)

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下数据结构方面有关双向链表的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a…

时至今日,Linux会开源,也是一种态度

什么是开源&#xff1f;开源通常指开发者公开系统/应用程序源代码。通过对代码进行共享和重用&#xff0c;可以快速开发出高质量、低维护成本的应用程序。这意味着你不再需要花很多时间来学习新技术或编写复杂的代码。 一、Linux永远的神 就拿linux来举例子。 Linux系统的发起…

分享Python采集190个jQuery代码,总有一款适合您

分享Python采集190个jQuery代码&#xff0c;总有一款适合您 Python采集的190个jQuery代码下载链接&#xff1a;https://pan.baidu.com/s/1KxEOw7IfgZJq7yhYBM1nwg?pwdz3r1 提取码&#xff1a;z3r1 可拖拽的谷歌样式纯javascript模态窗口插件 简单实用的轻量级jQuery评分插…

ubuntu系统配置大恒相机驱动并读取ros话题

文章目录 0. 说明1. 安装大恒相机sdk1.1 下载1.2 安装sdk(用于配置ip和调试相机参数)(1) 电脑网卡配置(网卡固定ip)(2)查看相机图像以及配置相机参数 2. 安装ros驱动包(注&#xff1a;大恒相机官方没ros驱动)2.0 正确流程2.1 错误示范2.1 报错1--缺包2.2 报错2--包编译顺序问题…

CnOpenData缺陷产品召回数据

一、数据简介 缺陷产品召回&#xff0c;是指缺陷产品的生产商、销售商、进口商在得知其生产、销售或进口的产品存在可能引发消费者健康、安全问题的缺陷时&#xff0c;依法向职能部门报告&#xff0c;及时通知消费者&#xff0c;设法从市场上、消费者手中收回缺陷产品&#xff…

Python神经网络学习(六)--机器学习--强化学习

前言&#xff1a; 属实是失踪人口回归了。继续神经网络系列。 强化学习&#xff1a; 强化学习也是一个很重要的方向了&#xff0c;很多人用强化学习玩游戏&#xff0c;可能有人觉得强化学习很难&#xff08;包括我&#xff09;&#xff0c;但是我今天用网上流传很广的、很经…

error: static assertion failed: std::atomic requires a trivially copy type

1. 报错信息 编译期错误&#xff0c;gcc version 7.5.0 错误示例代码&#xff1a; #include <atomic> #include <iostream> #include <vector>int main() {std::atomic<std::vector<int>> a; }2. 问题分析 报错信息里明确说了&#xff0c;ato…

商品说明书的翻译,中译英如何翻译效果好?

众所周知&#xff0c;国内产品进入国际市场&#xff0c;商品说明书的翻译是必不可少的&#xff0c;译文必须以准确的语言表达出原文的信息。那么&#xff0c;针对商品说明书翻译&#xff0c;中译英如何翻译效果好&#xff1f; 业内人士指出&#xff0c;很多商品说明书包含有关产…

学习PCL库:PCL库中的geometry模块介绍

公众号致力于点云处理&#xff0c;SLAM&#xff0c;三维视觉&#xff0c;高精地图等领域相关内容的干货分享&#xff0c;欢迎各位加入&#xff0c;有兴趣的可联系dianyunpcl163.com。未经作者允许请勿转载&#xff0c;欢迎各位同学积极分享和交流。 geometry模块介绍 PCL库中的…

【万字更新】Python基础教程:第六章_数据容器

原创&#xff1a;公众号 数据说话 【万字更新】Python基础教程&#xff1a;第六章_数据容器 为什么学习数据容器 思考一个问题&#xff1a;如果我想要在程序中&#xff0c;记录5名学生的信息&#xff0c;如姓名。 最好的方法是不是简单的定义5个字符串变量就可以了 name1&…

基于AT89C51单片机的计算器设计

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87772564 源码获取 主要内容: 本设计是基于51系列的单片机进行的设计,可以完成计算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。设计过…

TOB企业如何借助生态力,实现可持续增长

近年来&#xff0c;随着经济社会的高速发展&#xff0c;数字化转型已成为企业高质量发展“必答题”。企业开始通过购买产品、解决方案或者自研的方式来进行本企业的数字化建设。但是由于内部部门墙或者是系统之间的隔阂&#xff0c;难以做到以整个公司为视角的全面数字化建设&a…

数据库专题:数据库初学者的数据一致性

在这篇文章中&#xff0c;我将分享我在数据库学习课程中学到的知识&#xff0c;了解到目前为止让我着迷的数据库主题。 ​1&#xff1a;序言 在 2022 年底&#xff0c;当主题是数据库时&#xff0c;我决定把事情弄清楚&#xff0c;因为这总是一种痛苦&#xff0c;作为后端开发…

虚拟汽车加油问题——算法设计与分析(C实现)

目录 一、问题描述 二、问题剖析 三、代码实现 四、结果验证 一、问题描述 问题描述&#xff1a;一辆虚拟汽车加满油后可行驶n km。旅途中有若干加油站。设计一个有效算法&#xff0c;指出应该在那些加油站停靠加油&#xff0c;使沿途加油次数最少。并证明算法的能产生一个…