使用kalibr_calibration标定相机(realsense)和imu(h7min)

vslam-evaluation/VINS/Installation documentation/4.IMU和相机联合标定kalibr_calibration.md at master · DroidAITech/vslam-evaluation · GitHub

目录

1.kalibr安装

1.1安装依赖项

1.2创建工作空间

1.3下载kalibr并编译

1.4设置环境变量

2.准备标定板

3.配置驱动和打开realsense摄像头

3.1更新系统

3.2注册服务器公钥

3.3添加Intel RealSense仓库

3.4安装realsense SDK

3.5测试RealSense D435/D435i

3.6ROS环境下的配置

3.7启动ROS节点并测试摄像头

3.8查看相机内参等信息通过rostopic echo /camera/color/data_raw

4.用imu_utils标定IMU数据 

注意:

5.录制imu和相机的bag包

6.相机、imu、标定板yaml文件


1.kalibr安装

1.1安装依赖项

sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-kinetic-vision-opencv ros-kinetic-image-transport-plugins ros-kinetic-cmake-modules python-software-properties software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev

sudo pip install python-igraph --upgrade

1.2创建工作空间

mkdir -p ~/kalibr_workspace/src

cd ~/kalibr_workspace

source /opt/ros/kinetic/setup.bash

catkin init

catkin config --extend /opt/ros/kinetic

catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

1.3下载kalibr并编译

cd ~/kalibr_workspace/src

git clone https://github.com/ethz-asl/Kalibr.git

cd ~/kalibr_workspace

catkin build -DCMAKE_BUILD_TYPE=Release -j4 

1.4设置环境变量

source ~/kalibr_workspace/devel/setup.bash

2.准备标定板

标定板可以用 kalibr 提供的pdf 下载地址为:https://github.com/ethz-asl/kalibr/wiki/downloads, 由于Aprilgrid能提供序号信息, 能够防止姿态计算时出现跳跃的

情况,所以这里采用Aprilgrid 6x6 0.8x0.8 m (A0 page)进行标定。

我下载了这个pdf, 打印成了A4纸大小,在标定前, 注意测量格子的尺寸信息填入yaml文件, 尺寸信息具体是哪些数据可以看看kalibr的说明,说明的网址为: 

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

3.配置驱动和打开realsense摄像头

3.1更新系统

sudo apt-get update && sudo apt-get upgrade

3.2注册服务器公钥

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

3.3添加Intel RealSense仓库

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u

3.4安装realsense SDK

sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

3.5测试RealSense D435/D435i

realsense-viewer

3.6ROS环境下的配置

sudo apt-get install ros-$ROS_DISTRO-realsense2-camera
sudo apt-get install ros-$ROS_DISTRO-realsense2-description

3.7启动ROS节点并测试摄像头

roslaunch realsense2_camera rs_camera.launch
//see images
rosrun image_view image_view image:=/camera/color/image_raw

3.8查看相机内参等信息通过rostopic echo /camera/color/data_raw

4.用imu_utils标定IMU数据 

双目相机 -- IMU联合标定_双目+imu 如何标定-CSDN博客

使用Kalibr标定相机和IMU(ZED+px4)外参-CSDN博客(我参考了这篇博客的imu)

sudo apt-get install libdw-dev

4.1下载imu_utils和code_utils,并将imu_utils和code_utils放在工作空间下。

code_utils.zip

imu_utils.zip

注意:

1. code_utils 依赖 ceres库, 需要先全局安装ceres库,okvis等内部的ceres不行。

2. 由于imu_utils依赖code_utils,所以先把code_utils放在工作空间的src下面,然后编译。

3. 编译code_utils 报错, fatal error: backward.hpp: No such file or directory

解决办法: 在code_utils下面找到sumpixel_test.cpp,修改#include “backward.hpp” 为

#include “code_utils/backward.hpp” 即可编译成功。

cd catkin_ws
catkin_make

4.2编译成功以后,再把imu_utils放到工作空间的src下面,进行编译。

cd catkin_ws
catkin_make

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

cd MYNT-EYE-D-SDK
source wrappers/ros/devel/setup.bash
roslaunch mynteye_wrapper_d display.launch
rosbag record /mynteye/imu/data_raw -O imu.bag

4.4两个小时以后按Ctrl+C完成录制。

4.5获得这四个参数

Gyr:
   avg-axis:
      gyr_n: 3.1820671461855504e-03
      gyr_w: 3.0693398103399251e-05
Acc:
   avg-axis:
      acc_n: 2.6449533258549235e-02
      acc_w: 7.2111910796954259e-04

5.录制imu和相机的bag包

rosbag record /camera/color/image_raw /mavros/imu/data_raw -O imu_camera.bag

注意:1.录制bag包的时候imu的频率应为200hz左右

2.录制的时候要注意按照官方的说法-充分激励IMU- 绕3个轴旋转和3个方向的平移,这里有个官方视频介绍,打不开的话有人把它搬到B站上了https://www.youtube.com/watch?app=desktop&v=puNXsnrYWTY
3.三个topic按照自己的情况改。另外可以再加两个(非必要): /camera/left/camera_info /camera/right/camera_info

4.录制时间大于30min

6.相机、imu、标定板yaml文件

相机

cam0:
  cam_overlaps: [] 
  camera_model: "pinhole"  # 相机模型,kalibr也支持鱼眼模型
  distortion_coeffs: [0.0, 0.0, 0.0, 0.0]  # 相机畸变参数
  distortion_model: "radtan"  # 畸变模型
  intrinsics: [603.3211669921875, 602.70361328125, 324.1352844238281, 242.0079803466797]  # 内参
  resolution: [640, 480]  # 分辨率
  rostopic: "/camera/color/image_raw"  # ROS话题

imu

rostopic: /mavros/imu/data_raw
update_rate: 195 #Hz

accelerometer_noise_density: 0.1 #VINS默认 0.2
accelerometer_random_walk: 0.03 #0.05
gyroscope_noise_density: 0.02 #0.02
gyroscope_random_walk: 0.00004 #4e-5

target

#example for aprilgrid
  target_type: 'aprilgrid' #gridtype
  tagCols: 6                  #number of apriltags
  tagRows: 6                  #number of apriltags
  tagSize: 0.02              #size of apriltag, edge to edge [m]
  tagSpacing: 0.3             #ratio of space between tags to tagSize a=0.02cm b=0.006cm

7.运行获取结果

rosrun kalibr kalibr_calibrate_imu_camera --imu /home/fhzn/calib/imu.yaml --cam /home/fhzn/calib/camera.yaml --target /home/fhzn/calib/target.yaml --bag /home/fhzn/calib/imu_camera.bag --show-extraction

使用kalibr标定双目相机以及IMU--安装运行标定全过程以及踩坑记录-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读:基于语义分割的非结构化田间道路场景识别

论文地址:DOI: 10.11975/j.issn.1002-6819.2021.22.017 概要 环境信息感知是智能农业装备系统自主导航作业的关键技术之一。农业田间道路复杂多变,快速准确地识别可通行区域,辨析障碍物类别,可为农业装备系统高效安全地进行路径规…

能识别黑烟的摄像头

能识别黑烟的摄像头主要应用于监测车辆尾气排放情况,特别是针对排放黑烟的车辆进行抓拍和识别。以下是朗观视觉对这类摄像头的详细介绍: 一、主要特点 智能识别:摄像头内置视频识别功能,能够实时分析视频中的车辆尾气排放情况&am…

Docker镜像分成

1. 镜像分层原理 1.1 镜像分层的定义与结构 Docker 镜像的分层存储机制是其核心特性之一,它允许 Docker 镜像由多个只读层组成,这些层叠加在一起形成一个完整的文件系统。每个层代表 Dockerfile 中的一个指令,并且每一层都是不可变的&#…

2020年美国总统大选数据分析与模型预测

数据集取自:2020年🇺🇸🇺🇸美国大选数据集 - Heywhale.com 前言 对2020年美国总统大选数据的深入分析,提供各州和县层面的投票情况及选民行为的可视化展示。数据预处理阶段将涉及对异常值的处理&#xff0…

微服务系列五:避免雪崩问题的限流、隔离、熔断措施

目录 实验环境说明 前言 一、一片小雪花引起的雪崩! 1.1 雪崩问题(级联失败问题)示意图 1.2 雪崩问题的产生原因与解决策略 二、雪崩问题的具体解决策略 2.1 请求限流 2.2 线程隔离 2.3 服务熔断 2.4 总结——具体解决策略 三、微…

聊一聊:ChatGPT搜索引擎会取代谷歌和百度吗?

当地时间 10 月 31 日,OpenAI 正式推出了 ChatGPT 搜索功能,能实时、快速获取附带相关网页来源链接的答案。这一重大升级标志着其正式向谷歌的搜索引擎霸主地位发起挑战。 本周五我们聊一聊: 欢迎在评论区畅所欲言,分享你的观点~ …

国标GB28181公网直播EasyGBS国标GB28181软件管理解决方案

随着信息技术的飞速发展,视频监控技术已经成为维护公共安全、提升管理效率的重要手段。在这一背景下,国标GB28181软件EasyGBS作为一款自主研发的安防视频管理软件,致力于为用户提供全面、高效且可靠的视频监控管理体验。其强大的功能和灵活的…

《Practical Deep Raw Image Denoising on Mobile Devices》论文详解

简介:个人学习分享,如有错误,欢迎批评指正。 论文:Practical Deep Raw Image Denoising on Mobile Devices 引言 在数字摄影领域,噪声是影响图像质量的主要因素之一,特别是在弱光条件下拍摄时更为明显。移…

戴尔电脑 Bios 如何进入?Dell Bios 进入 Bios 快捷键是什么?

BIOS(基本输入输出系统)是计算机启动时运行的第一个程序,它负责初始化硬件并加载操作系统。对于戴尔电脑用户来说,有时可能需要进入 BIOS 进行一些特定的设置调整,比如更改启动顺序、调整性能选项或解决硬件兼容性问题…

【AD】3-2 原理图绘制格点的调整与推荐设置

1.点击工具,选择原理图优先项,如图设置 2.画原理图之前,选中原理图,也可以快捷键vgs,设置栅格为100mil,并画原理图是元器件管脚放置在格点上 3.通过改选项设置格点显示与不显示

I.MX6U 裸机开发2. 芯片简介、汇编基础及GPIO操作准备工作

I.MX6U 裸机开发2. 芯片简介、汇编基础及GPIO操作准备工作 一、I.MX6U 芯片介绍1. 基本介绍2. 架构图如下:3. I.MX6U 管脚定义规则 : 二、GPIO资源介绍1. 原理图2. 寄存器控制(1) 使能时钟,CCGR0~CCGR7(2) 设置引脚复用(3) 设置电气属性(4) 配…

DNS配置

1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器,对主dns服务器进行数据备份。 options {listen-on port 53 { 192.168.111.130; };directory "/var/named";allow-query { any;};zone "openlab.com&qu…

day-81 打家劫舍 II

思路 与LCR 089. 打家劫舍相比,本题所有房屋围成了一圈,那么第一间房子和最后一间房子不能同时打劫,那么就可以分为两种情况:1.选第一间房打劫;2.选最后一间房打劫 解题过程 然后依次计算出以上两种情况的最大金额&am…

什么是进销存?进销存系统都有哪些类型?

进销存管理和企业运营之间的利害关系大家应该都已经听的不少了。上次给大家说明白了进销存系统是什么,但是进销存系统到底有哪几种?把今天这篇文章耐心读完你就懂了! 随着市场竞争的加剧和消费者需求的多样化,企业亟需灵活高效的…

spark的学习-03

RDD的创建的两种方式: 方式一:并行化一个已存在的集合 方法:parallelize 并行的意思 将一个集合转换为RDD 方式二:读取外部共享存储系统 方法:textFile、wholeTextFile、newAPIHadoopRDD等 读取外部存储系统的数…

Python练习10

Python日常练习 题目: 编写程序,输出如下所示图案。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 要求: 使用for循环的方式完成 --------------------------------------------------------- 注意: …

【云原生开发】K8S多集群资源管理平台架构设计

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

「iOS」——知乎日报一二周总结

知乎日报仿写 前言效果Manager封装网络请求线程冲突问题下拉刷新添加网络请求的图片通过时间戳和日期格式化获取时间 总结 前言 前两周内容的仿写,主要完成了首页的仿写,进度稍慢。 效果 Manager封装网络请求 知乎日报的仿写需要频繁的申请网络请求&am…

【ArcGISPro】汉化嵌入的NoteBook界面

效果展示 下载Notebook汉化包 pip install jupyterlab-language-pack-zh-CN 添加环境变量 LANG zh_CN.UTF8 汉化结果

长亭那个检测能力超强的 WAF,出免费版啦

告诉你们一个震撼人心的消息,那个检测能力超强的 WAF——长亭雷池,他推出免费社区版啦,体验地址见文末。 八年前我刚从学校毕业,在腾讯做安全研究,看到宇森在 BlackHat 上演讲的议题 《永别了,SQL 注入》 …