[相机标定]RealSense D435i相机标定
为了获得相机的内参,以及D435i各传感器坐标的外参,利用intel自带的Dynamic Calibrator进行标定。
Kalibr标定d435i内参、与IMU外参
1.标定内参
录制数据集:
rosrun topic_tools throttle messages /camera/color/image_raw 4.0 /color
利用throttle工具降低录制的RGB图像频率,降至4HZ,新发布的topic名字是/color
录制时需要准备标定板,这里建议TB直接买人家做好的,省去自己打印的不好。Kalibr支持tag和chessboard,博主这里借用了同学的棋盘格标定板,按照Kalibr的提示修改yaml文件,这里采用的标定板实际是9*12的,但是注意配置文件中是内角点:
target_type: 'checkerboard' #gridtype
targetCols: 8 #number of internal chessboard corners
targetRows: 11 #number of internal chessboard corners
rowSpacingMeters: 0.025 #size of one chessboard square [m]
colSpacingMeters: 0.025 #size of one chessboard square [m]
录制好数据集就可以开始进行标定了:
kalibr_calibrate_cameras --target ~/dev/kalibr_ws/src/kalibr/data/checkerboard.yaml --bag ~/dev/kalibr_ws/src/kalibr/data/kalibr_color.bag --models pinhole-equi --topics /color
这是官网的例子,修改为自己的具体对应的文件就行,我这里是直接输入的绝对路径。
*问题:
这里运行时卡在提取角点上
然后在github的issue里到了答案:
在上述命令后加入--show-extraction
这样就能够运行了,参考链接
2.标定与IMU的外参
同样录制数据集,降低图像数据到20HZ,IMU数据至200HZ。
这里需要不同的配置文件,camchain.yaml和imu.yaml
camchain.yaml:
cam0:camera_model: pinholeintrinsics: [632.9640658678117, 638.2668942402212, 339.9807921782614, 243.68020465500277]distortion_model: equidistantdistortion_coeffs: [0.366041713382057, 1.1433178097591097, -3.008125411486294, -3.1186836086733227]T_cam_imu:- [0.01779318, 0.99967549,-0.01822936, 0.07008565]- [-0.9998017, 0.01795239, 0.00860714,-0.01771023]- [0.00893160, 0.01807260, 0.99979678, 0.00399246]- [0.0, 0.0, 0.0, 1.0]timeshift_cam_imu: -8.121e-05rostopic: /colorresolution: [640, 480]
imu.yaml:
rostopic: /imu
update_rate: 200.0 #Hzaccelerometer_noise_density: 0.01 #continous
accelerometer_random_walk: 0.0002
gyroscope_noise_density: 0.005 #continous
gyroscope_random_walk: 4.0e-06
这里我用得到的相机内参替换了官方模板程序里面的数值,但是T_cam_imu和time_shift_imu并未修改,这里博主也不是很清楚。
然后运行:
kalibr_calibrate_imu_camera --target ~/dev/kalibr_ws/src/kalibr/data/checkerboard.yaml --cam ~/dev/kalibr_ws/src/kalibr/data/camchain.yaml --imu ~/dev/kalibr_ws/src/kalibr/data/imu.yaml --bag ~/dev/kalibr_ws/src/kalibr/data/color_imu.bag --bag-from-to 5 45 --show-extraction
这样就能够运行了。上述命令的5 45指的是采用的数据集的范围。
D435i的IMU的标定(用RealSense官方的)
参考文献:官网链接
首先到github上安装librealsense,本人直接下载了压缩包,然后解压缩后,在librealsense文件夹中新建了一个build文件夹,然后进入build文件夹,打开命令行,运行:
cmake ..
然后如果网络情况不好的话,会报错:
报的错是librealsense/third-party/libtm/resources/CMakeLists.txt中的第98行报错,可以将92行到94行注释掉。
然后:
make
sudo make install
然后按照pdf的教程安装各种python的东西,最后在tools/rs-imu-calibration中运行
python rs-imu-calibration.py
按照PDF的提示,一步步操作,最后输入footer按enter就能看到最后标定的结果,选择是否将结果写入到相机的eeprom中。
[相机标定]RealSense D435i相机标定相关推荐
- Kinect DK相机与Realsense D435i相机记录
Kinect DK相机与Realsense D435i相机记录 文章目录 Kinect DK相机与Realsense D435i相机记录 前言 一.Kinect DK相机 1.imu 2.RGB摄像头 ...
- 在 NVIDIA jetson tx2 上基于 realsense d435i 相机运行 vins 相关配置
在 NVIDIA jetson tx2 上基于 realsense d435i 相机运行 vins 相关配置 一.tx2刷机 二.安装librealsense,realsense驱动 1.安装依赖库 ...
- Ubuntu 18.04 Intel RealSense D435i 相机标定教程
1.D435i相机简介 RealSenseD435i 是一款立体视觉深度相机,如下图所示,其集成了两个红外传感器(IR Stereo Camera).一个红外激光发射器(IR Projector)和一 ...
- 相机+IMU标定 Realsense D435i
使用的标定工具总共包含两个,一个是苏黎士联邦理工的Kalibr工具,可以标定相机内参及相机-IMU外参,另外一个是港科大的imu_utils,可以标定IMU内参,我们先标定IMU内参,再标定相机内参, ...
- kalibr标定realsense鱼眼相机
这几天项目需要使用realsense相机,正好实验室有realsense t265和d435i,在这里介绍一下realsense相机驱动安装和kalibr功能包标定相机的方法. 博主以 realsen ...
- RealSense D435i + imu 标定 Ros Melodic
准备工作: ubuntu/ros-melodic环境 librealsense realsense-ros 一.修改rs_camera.launch文件中的参数 修改之前装好的realsense环境中 ...
- Intel Realsense D435i各类标定教程
在之前的实验中用到了realsense-D435i,为了提高精度使用之前必须要进行标定.本篇文章就介绍下各类标定方法.因为我最终的目的是完成IMU和双目的联合标定,整个流程都是围绕整个目的展开的. ...
- Dobot magician + realsense D435i 手眼标定(外参)
想着拿实验室的Dobot magician 来测试自己的算法,测试之前要先确定D435i相对Dobot基座标的位姿矩阵,想着是不是可以弄个程序跑完就出一个位姿矩阵,就有了这几天踩坑的历程,虽然网上有些 ...
- Dobot magician + realsense D435i 手眼标定(外参)C++
之前写过一篇用python实现的,最近在ubuntu18.04弄了一个c++的,记录一下 一.pipeline: 1.下载aruco_ros.realsense-ros,打印aruco二维码,最好打印 ...
最新文章
- Android实战简易教程-第三十四枪(基于ViewPager和FragmentPagerAdapter实现滑动通用Tab)...
- PTA 基础程序编程集 7-2 然后是几点 C语言
- tensorflow笔记:多层CNN代码分析
- ini配置文件的读取
- sql中的text字段如何导入oracle
- Python进阶:对象复制与比较,分深浅,见真假
- postgresql导入mysql_【原创】MySQL和PostgreSQL 导入数据对比
- java反射 获取局部变量_Java反射:如何获取变量的名称?
- 用JavaScript实现本地缓存
- Android L系统mtk平台下AAL自动背光调整服务亮度曲线调试需要涉及的地方
- 美国实现Believe me I can fly, Believe me I can touch sky (2)
- linux 达梦C接口,达梦数据守护搭建
- Git-本地库与中央库
- linux查找以h结尾的文件,linux中文件查找的常用命令
- 简单函数编写_strcpy、_stroverchg、_strcmp
- yum安装mysql my.cnf_Linxu Yum方式安装Mysql
- 分库分表中间件sharding-jdbc的使用
- Keil出现 err:Cannot read project file异常;err:点击Project闪退
- 微信小程序转发分享及好友点击进入传参
- 百度世界大会全新打开方式!VR会场“希壤”上线