官网

GitHub - ethz-asl/kalibr: The Kalibr visual-inertial calibration toolboxThe Kalibr visual-inertial calibration toolbox. Contribute to ethz-asl/kalibr development by creating an account on GitHub.https://github.com/ethz-asl/kalibr

编译

编译kalibr的Bug:

fatal error: libv4l2.h: 没有那个文件或目录

sudo apt install libv4l-dev  (专门用来处理视频图像)

标定过程

Kalibr标定完整过程(相机用的小觅深度系列相机)_超超512的博客-CSDN博客_kalibr标定https://blog.csdn.net/u010056641/article/details/105665309

生成标定板

支持checkerboard和apriltag:

参考https://github.com/ethz-asl/kalibr/wiki/calibration-targets

使用Aprilgrid的好处:

partially visible calibration boards can be used ;pose of the target is fully resolved (no flips)

运行kalibr_create_target_pdf –h

报错:ImportError: No module named pyx

生成棋盘格会有报错,因为作者写的提示代码少了-,最后应为

kalibr_create_target_pdf --type checkerboard --nx 6 --ny 6 --csx 0.05 --csy 0.1

根据打印后的棋盘格,编辑标定板信息,文件名april_6x6.yaml

#example for aprilgrid

target_type: 'aprilgrid' #gridtype

tagCols: 6 #number of apriltags

tagRows: 6 #number of apriltags

tagSize: 0.088 #size of apriltag, edge to edge [m]

tagSpacing: 0.3 #ratio of space between tags to tagSize

#example: tagSize=2m, spacing=0.5m --> tagSpacing=0.25[-]

#example for checkerboard

target_type: 'checkerboard' #gridtype

targetRows: 14 #number of internal chessboard corners

targetCols: 11 #number of internal chessboard corners

rowSpacingMeters: 0.04 #size of one chessboard square [m]

colSpacingMeters: 0.04 #size of one chessboard square [m]

打印标定板

打印注意要按照实际的大小打印,而且打印的标定版至少要占图像的3/4;

标定相机

kalibr_calibrate_cameras的详细参数见kalibr-master/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras

常用kalibr_calibrate_cameras 参数说明:

--bag /home/heyijia/stereo_calibra.bag

--topics /left /right

--models pinhole-radtan pinhole-radtan : pinhole-equi,omni-radtan

--target /home/heyijia/april_6x6_80x80cm_A0.yaml

--show-extraction

采用 pinhole-equi 模型,对畸变大的相机效果不错

VINS采用MEI模型,即omni-radtan

运行以上指令出现BUG:ImportError: No module named igraph

sudo apt install python-igraph

标定过程中出现BUG

initialization of focal length for cam with topic /img_left failed

kalibr 标定记录_AndyCheng_hgcc的博客-CSDN博客_kalibr标定

解决:

如果提示不能得到初始焦距的时候,可以设置:export KALIBR_MANUAL_FOCAL_LENGTH_INIT=1。然后运行程序,当程序运行失败的时候,它会提示要你手动输入一个焦距,Initialization of focal length failed. Provide manual initialization: 这时你手动输入比如 400,给比较大的值,也能收敛。

Input focal length guess if initial guess fails. (#346) · ethz-asl/kalibr@d8bdfc5 · GitHub

运行:

export KALIBR_MANUAL_FOCAL_LENGTH_INIT=1

rosrun kalibr kalibr_calibrate_cameras --bag /home/hik/share/stereo_calibra04201450_4.bag --topics /img_left /img_right --models pinhole-radtan pinhole-radtan --target /home/hik/share/april_6x6_80x80cm.yaml --show-extraction

解决2

换一种相机模型MEI,即可自动计算出focal_length

rosrun kalibr kalibr_calibrate_cameras --bag /home/hik/share/stereo_calibra_0423_1.bag --topics /img_left /img_right --models omni-radtan omni-radtan --target /home/hik/share/april_6x6_80x80cm.yaml --show-extraction

kalibr 标定记录_AndyCheng_hgcc的博客-CSDN博客_kalibr标定

标定imu

安装

https://blog.csdn.net/weixin_41586393/article/details/99306237

用imu_utils标定IMU,之后用于kalibr中相机和IMU的联合标定_一ping就通的博客-CSDN博客_code_utils

GitHub - gaowenliang/imu_utils: A ROS package tool to analyze the IMU performance.

sudo apt-get install libdw-dev

下载imu_utils和code_utils后,先编译code_utils(因为imu_utils依赖code_utils,填坑: 在code_utils下面找到sumpixel_test.cpp,修改#include "backward.hpp"为 #include “code_utils/backward.hpp”,再编译。),然后编译imu_util

录数据

让IMU静止不动两个小时,录制IMU的bag

准备标定

<launch>

<node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">

<param name="imu_topic" type="string" value= "/mynteye/imu/data_raw"/> #imu topic的名字

<param name="imu_name" type="string" value= "mynteye"/>

<param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>

<param name="max_time_min" type="int" value= "80"/> #标定的时长

<param name="max_cluster" type="int" value= "100"/>

</node>

</launch>

标定

roscore
rosbag play -r 200 imu.bag
roslaunch imu_utils mynt_imu.launch

注意:

输出的imu.yaml中加速度和陀螺仪的格式必须写成1.0e-04这样的格式,否则报错:

can't multiply sequence by non-int of type 'str'

联合标定

kalibr_calibrate_imu_camera详细参数参见:

kalibr-master/aslam_offline_calibration/kalibr/python/kalibr_calibrate_imu_camera

kalibr_calibrate_imu_camera参数说明:

--target /home/heyijia/april_6x6_80x80cm_A0.yaml

--cam /home/heyijia/camchain-homeheyijiastereo_calibra.yaml

--imu /home/heyijia/imu_mynteye.yaml

--bag /home/heyijia/stereo_imu_calibra.bag

--bag-from-to 2 37

运行指令:

rosrun kalibr kalibr_calibrate_imu_camera --bag /home/hik/share/stereo_imu_calibra0420.bag --cam /home/hik/share/camchain-homehiksharestereo_calibra04201450_4.yaml --imu /home/hik/share/imu.yaml --target /home/hik/share/april_6x6_80x80cm.yaml --show-extraction --perform-synchronization

Bug:

OverflowError: bad numeric conversion: positive overflow

OverflowError: bad numeric conversion: positive overflow · Issue #401 · ethz-asl/kalibr · GitHub

有踩过坑的通过--perform-synchronization解决overflow的问题

rosrun kalibr kalibr_calibrate_imu_camera --bag /home/hik/share/stereo_imu_calibra0420.bag –perform-synchronization --cam /home/hik/share/camchain-homehiksharestereo_calibra04201450_4.yaml --imu /home/hik/share/imu.yaml --target /home/hik/share/april_6x6_80x80cm.yaml –show-extraction --no-time-calibration

运行以下数据集可以完成时间同步校验:

rosrun kalibr kalibr_calibrate_imu_camera --bag /home/hik/share/stereo_imu_calibra0421_3.bag --perform-synchronization --cam /home/hik/share/camchain-homehiksharestereo_calibra04201450_4.yaml --imu /home/hik/share/imu.yaml --target /home/hik/share/april_6x6_80x80cm.yaml --max-iter 100 --show-extraction

Camera imu时间同步问题(尚未解决)

Multi IMU and IMU intrinsic calibration · ethz-asl/kalibr Wiki · GitHub

Optimization failed! · Issue #55 · ethz-asl/kalibr · GitHub

Optimization failed in kalibr_calibration_imu_camera · Issue #41 · ethz-asl/kalibr · GitHub

Wrong transformation between IMU and camera · Issue #228 · ethz-asl/kalibr · GitHub

硬件同步方案

ROS camera and IMU synchronization | Work-is-Playing

附录

slam里常用的相机模型

SLAM 中常用的相机模型&畸变模型总结_啊啦啦工业的博客-CSDN博客_多项式畸变模型

MEI Camera:Omni + Radtan6

Pinhole Camera:Pinhole + Radtan

根据经验,小于90度使用Pinhole,大于90度使用MEI模型。

SLAM 中常用的相机模型&畸变模型总结_啊啦啦工业的博客-CSDN博客_多项式畸变模型

https://github.com/ethz-asl/kalibr/issues/226

Kannala-Brandt model (pinhole-equi in Kalibr): https://github.com/ethz-asl/kalibr/pull/210

Imu和camera标定

1. Online calibration: VINS-Mono(Online Temporal Calibration for Monocular Visual-Inertial Systems, IROS 2018,Best student paper)

2. Online calibration: MSCKF(Online Temporal Calibration for Camera-IMU Systems:Theory and Algorithms,2014)

3. Offline calibration: Kalibr(Unified Temporal and Spatial Calibration for Multi-Sensor Systems,IROS 2013)

整理不易,点个赞呀,喂~

kalibr使用笔记相关推荐

  1. 【Linux配置五】 Ubuntu18.04+kalibr标定工具箱安装编译

    一.安装kalibr 1.安装依赖项 所有 Ubuntu 版本的通用要求如下: sudo apt-get install -y \git wget autoconf automake nano \li ...

  2. ROS实验笔记之——VINS-Mono在l515上的实现

    之前博客<ROS实验笔记之--Intel Realsense l515激光相机的使用>实现了用l515运行RTABmap,本博文试试在l515上实现vins-mono 首先需要将vins- ...

  3. ORB-SLAM3笔记(编译、踩坑、论文、看代码)

    目前基于orb_slam想做的方向 提升动态建图精度                (中个二区趴秋梨膏  √东西MAP就是上不去 KITTI有几个groundtruth官网下架了找不到而且 红外相机退 ...

  4. 小觅智能 |MSCKF 学习笔记

    转载自:https://mp.weixin.qq.com/s/shxmOtDOSVZn_eQKgs8LBw 小觅智能 |MSCKF 学习笔记 知乎觅 MYNTAI小觅智能 2019-10-31 VIO ...

  5. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  6. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  7. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  8. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  9. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

最新文章

  1. Fully Convolutional Networks
  2. sysdba 默认密码_干货分享|DM数据库密码策略和登录限制设置
  3. app vue 真机运行_uni-app黑魔法:小程序自定义组件运行到H5平台
  4. mysql集群初始化配置_集群Cluster MySQL的安装配置和使用
  5. 求1-50的偶数和,和奇数和
  6. pathlib2 Path glob rglob的最新研究成果
  7. mPaaS小程序创建
  8. 免费百度文库下载工具
  9. 51单片机——独立按键
  10. ZincSearch轻量级全文搜索引擎入门到
  11. [乡土民间故事_徐苟三传奇]第四回_张员外受骗摔新锅
  12. WindowsWord 常用快捷键
  13. 3ds max 2014 启动出现 error while registering plugins 怎么修复
  14. 公布本人收集的一些FTP站点、有大量学习、电影资源
  15. 查看Linux内核、CPU、内存及各组件版本的命令和方法
  16. 文件创建时间、修改时间、访问时间的定义
  17. centos7系统时间的修改
  18. 安卓查询助手 q绑查 前端源码+测试apk+新接口
  19. 中国工程院院士李伯虎:我国已经进入云制造2.0阶段
  20. steam短期内来自您所在位置登录过多的解决办法

热门文章

  1. 利用最小二乘法做线性回归
  2. Python源码剖析[1] —— 编译Python
  3. 2019 年天津科技大学电子设计竞赛:算法与策略-----B题
  4. a全球及中国电子手环行业销售现状及竞争趋势预测报告2022-2027年
  5. 随机对照双盲实验的设计模式
  6. 人工神经网络算法与机器算法是相同的算法吗
  7. 超实用Word技巧分享!这才是使用Word时常用到的高效率方法
  8. 可恶的动态代理!!!!我要消灭你
  9. 如何在Win10家庭版上永久、免费、快速拥有一台虚拟机?
  10. c语言文件读取与写入