IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 【针对rs_D455内外参+IMU联合标定】 -> 正文阅读

[游戏开发]【针对rs_D455内外参+IMU联合标定】

本贴参考自:https://blog.csdn.net/weixin_37661634/article/details/118902745

IMU+单目相机标定的部分

kalibr官方教程:https://github.com/ethz-asl/kalibr/wiki/camera-imu-calibration

一. 打印官方使用的标定板:

官方下载: https://github.com/ethz-asl/kalibr/wiki/downloads
生成标定板的命令:
kalibr_create_target_pdf --type apriltag --nx 6 --ny 6 --tsize 0.08 --tspace 0.3

这里推荐的是 Aprilgrid 标定板。
https://github.com/ethz-asl/kalibr/wiki/calibration-targets
关于标定板的说明参考文章链接:https://blog.csdn.net/Hanghang_/article/details/10354603
这里有三个参数的说明,标定板格子大小之类的。
我下载的是Aprilgrid 6x6 0.5x0.5 m (unscaled)
使用adobe acrobat pro dc 软件自定义缩放40%打印,A4纸刚好能打印出来 。

原版的参数是:
6X6 tags 6乘6个格子
一个大格子size=5.5cm
一个小格子spacing=1.65cm

40%的缩放:
6X6 tags
一个大格子size=2.2cm
一个小格子spacing=0.66cm
记得打印出来用尺子量一下,以免出现差错。
下载官网提供的yaml格式文件,修改参数,也可以直接用我下面的。

target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.022           #size of apriltag, edge to edge [m],大格子边长0.022=2.2cm
tagSpacing: 0.3          #ratio of space between tags to tagSize,小格子边长/大格子边长

然后把打印的标定纸贴在墙上
在这里插入图片描述
官方说明:在这里插入图片描述

标定需要三个文件,一个是相机的标定文件,一个是IMU的标定文件,一个是录制的数据包

二.录制数据包

  1. 打开相机和IMU:roslaunch realsense2_camera rs_camera.launch
    并且调节帧率,相机20Hz, IMU200Hz,并分别以/color和/imu为话题名发布

kalibr推荐使用 4Hz 图像帧率,这里使用topic_tools/throttle降低接收频率

rosrun topic_tools throttle messages /camera/color/image_raw 20.0 /color
 
rosrun topic_tools throttle messages /camera/imu 200.0 /imu
  1. 先把目录移动到刚刚建立的kalibr工作环境目录下。

然后执行 source devel/setup.sh

rosbag record -b 4096 -O dynamic /color /imu

打开rosbag录制命令在这里插入图片描述
3. 上下三次,左右三次,翻转三次,上下平移三次,左右平移三次,前后三次,随机移动多次(任意)
注意:下面的过程需要确保标定板在相机视野中旋转轴部分:
pitch轴
向下倾斜:

向上倾斜:在这里插入图片描述
Yaw轴
向右倾斜:在这里插入图片描述

向左倾斜:在这里插入图片描述

Roll轴
向右侧翻:在这里插入图片描述

向左侧翻:在这里插入图片描述

平移部分:
向上平移:
在这里插入图片描述
向下平移:在这里插入图片描述
向左平移:在这里插入图片描述

向右平移:在这里插入图片描述

向前平移:在这里插入图片描述

向后平移:在这里插入图片描述
接着随机移动多次(任意)
图像和IMU的数据都采集好以后,就可以通过以下命令来生成ROS的bag包格式。
kalibr_bagcreater --folder dataset-dir --output-bag awsome.bag

可以通过rosbag info awsome.bag来检查生成的bag包是不是合格的。

三. 重写yaml文件

同样是用kalibr标定的,camchain-camd435i.yaml,所以直接使用相机yaml文件即可:
(1)相机标定的yaml文件

cam0: 
cam_overlaps: [] 
camera_model: pinhole 
distortion_coeffs: [-0.14627678771168612, 0.031132819617662677, -0.0016199154527738965,
 -0.01257776985511912] 
distortion_model: radtan 
intrinsics: [259.05353479443266, 256.15264741602005, 290.7955146414971, 234.21114661849504]
 resolution: [640, 480] 
rostopic: /color

(2)新建imu.yaml
在kalibr工作环境目录下新建imu.yaml文件:


#Accelerometers 
accelerometer_noise_density: 2.0477290485501922e-02 #Noise density (continuous-time)
 accelerometer_random_walk: 4.2308969579290693e-04 #Bias random walk
 #Gyroscopes
 gyroscope_noise_density: 2.2488785808195085e-03 #Noise density (continuous-time)
 gyroscope_random_walk: 1.5385085422768701e-05 #Bias random walk
 rostopic: /imu #the IMU ROS topic
 update_rate: 200.0 #Hz (for discretization of the values above)


原文链接:https://blog.csdn.net/weixin_37661634/article/details/118902745

其中以下IMU标定参数已知(标定过程参考:https://blog.csdn.net/Hanghang_/article/details/103546033),
将结果对应地填到以上imu.yaml中去:

Gyr:
 avg-axis:
 gyr_n: 2.2488785808195085e-03
 gyr_w: 1.5385085422768701e-05
 Acc:
 avg-axis:
 acc_n: 2.0477290485501922e-02
 acc_w: 4.2308969579290693e-04

四.使用Kalibr进行标定

在Kalibr工作目录下执行 source devel/setup.sh

执行指令:

kalibr_calibrate_imu_camera --target checkerboard.yaml --cam camd455i.yaml --imu imu.yaml --bag dynamic.bag --show-extraction

(个人使用–show-extraction会出现段错误,因此不使用)可以录制2分钟,生成文件名字为:

camchain-imucam-dynamic.yaml

其中T_cam_imu,就是我们需要的外参。

错误:ImportError: No module named scipy.optimize

解决办法:

sudo apt-get install python-scipy

做完这些就可以耐心等待结果了。。。(另一个博主:运行时间会根据你录制数据包的大小和电脑性能而定,我录制了将近两分钟,电脑是四年前的神舟,所以速度较慢,大概用了有半个小时以上,可以去喝杯咖啡再回来看看。)
生成好多个文件,主要关注一个文件:
camchain-imucam-dynamic.yaml

Transformation (cam0):
 -----------------------
 T_ci: (imu0 to cam0):
 [[ 0.99579733 0.0648917 0.06462771 -0.01794528]
[-0.06212431 0.99710033 -0.04394886 0.01608132]
[-0.06729222 0.03974921 0.9969412 -0.07784444]
[ 0. 0. 0. 1. ]]
 T_ic: (cam0 to imu0):
 [[ 0.99579733 -0.06212431 -0.06729222 0.01363058]
[ 0.0648917 0.99710033 0.03974921 -0.01177593]
[ 0.06462771 -0.04394886 0.9969412 0.07947285]
[ 0. 0. 0. 1. ]]

关于参数文件的 使用贴一个说法:原文链接:https://blog.csdn.net/qq_21830903/article/details/111319119
假如都没有问题的话,通过运行kalibr_calibrate_imu_camera,我们就能得到pdf,txt,和yaml3个结果文件。
我们主要关注results-imucam-%BAGNAME%.txt文件,根据这个结果来简单看看我们的标定是否有效。
其中reprojection误差最好不要超过5个像素,T_ic/T_ci矩阵中的位移应该根据设备IMU和Camera的实际位置来,一般应该是厘米或者毫米这样的尺度的数值。
————————————————
版权声明:本文为CSDN博主「快乐飞奔的小菜鸡」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

关于参数文件中的参数的官方说明:
在这里插入图片描述
在这里插入图片描述




官方视频中使用的命令:
在这里插入图片描述生成的参数文件和图表(看起来好高大上,又觉得毕业有望了)
泡泡机器人关于标定结果生成的图表的说明:泡泡图表说明
在这里插入图片描述
在这里插入图片描述
///
下面的部分有待探索(图片来自官方视频)
打开kalibr_calibration_imu_camera文件在这里插入图片描述注释其中覆盖旧文档的命令
在这里插入图片描述
使用了新的标定执行命令在这里插入图片描述生成了看起来更吊的图表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:49:29  更:2022-04-09 18:50:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 21:06:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码