博主最近在帮同门做实验。关于传感器这些标定也是初次接触,使用orb-slam3代码包。其中涉及一些传感器标定,这里就把我用的东西汇总一下。

目录

1.imu标定

1.1 使用imu_utlies标定

1.1.1安装步骤:

1.1.2使用方法

1.2使用kalibr标定

2.camera标定

3.camera-imu标定


1.imu标定

1.1 使用imu_utlies标定

话说在前面,需要注意的是,这里分为两部分,imu_utils和code_utils。需要在catkin_workspace中先 caktin_make  code_utils后,再将imu_utils的包移入再一起catkin_make。

这里放地址如下:

code_utils:  GitHub - gaowenliang/code_utils: my code utilsmy code utils. Contribute to gaowenliang/code_utils development by creating an account on GitHub.https://github.com/gaowenliang/code_utils

imu_utils:   GitHub - gaowenliang/imu_utils: A ROS package tool to analyze the IMU performance.A ROS package tool to analyze the IMU performance. - GitHub - gaowenliang/imu_utils: A ROS package tool to analyze the IMU performance.https://github.com/gaowenliang/imu_utils下载代码包:

git clone https://github.com/gaowenliang/code_utils.git
git clone https://github.com/gaowenliang/imu_utils.git 

1.1.1安装步骤:

1. 安装依赖项

sudo apt-get install libdw-dev

2. 安装cere-solver

我们在imu_utils中的CMakeLists.txt中看到这里需要的环境,所以安装cere-solver

其实不是一定建议装最新的2.x版本。我的是ubuntu18.04 ,这里cere-solver的版本常常需要和Eigen3的版本对应.我这里Eigen3.3.4对应的cere-solver应该装1.14.0,否则在最终imu_utils编译catkin_make的时候会一大片编译错误,这时大概率要重装cere版本,我已经踩过坑了。

3. 一些编译错误的修正

(1) 编译code_utils会出现的错误

1- 编译报错:code_utils-master/src/sumpixel_test.cpp:2:24: fatal error: backward.hpp:No such file or directory
解决方案: 在code_utils下面找到sumpixel_test.cpp,修改#include "backward.hpp"为 #include “code_utils/backward.hpp”,再编译。

2- 由于opencv4版本导致的编译错误

解决方案:其实就是不同版本opencv代码格式的修正

Update code to OpenCV 4 by mintar · Pull Request #15 · gaowenliang/code_utils · GitHub

(2)最后编译imu_utils出现一个问题  "build error on std::ofstream out_t"

解决方案: 缺头文件https://github.com/gaowenliang/imu_utils/pull/38/files#diff-37a67ff78eb7260214b323353263b9af40a2fa98719a1e81937fae0159df87a3

1.1.2使用方法

主要是3个方面:

1.录imu的rosbag

一般说让imu静置两个小时,我自己觉得一个小时顶多了。

2.在 catkin_workspace/ src / imu_utils/launch路径中添加一个launch文件(比如imu.launch)

<launch><node pkg="imu_utils" type="imu_an" name="imu_an" output="screen"><!--这里输入rosbag中的topic--><param name="imu_topic" type="string" value= "/djiros/imu"/> <!--这里输入名字,随便写--><param name="imu_name" type="string" value= "A3"/><!--路径根据自己的写,参考就是以imu_utils为基准--><param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/><param name="max_time_min" type="int" value= "120"/><!--前面录制的rosbag的时常--><param name="max_cluster" type="int" value= "100"/><!--话题的频率--></node>
</launch>

我们最终要获取的文件数据主要是如下格式,千万注意 单位,尤其是加速度的单位g和m/s2

%YAML:1.0
---
type: IMU
name: xxxx
Gyr:unit: " rad/s"avg-axis:gyr_n: 2.8863420507420113e-04gyr_w: 1.1459110507032453e-05x-axis:gyr_n: 3.2930571149111798e-04gyr_w: 1.0789910393933457e-05y-axis:gyr_n: 3.2221204736715821e-04gyr_w: 1.8262850703709627e-05z-axis:gyr_n: 2.1438485636432713e-04gyr_w: 5.3245704234542729e-06
Acc:unit: " m/s^2"avg-axis:acc_n: 1.6939167703267824e-02acc_w: 4.7410057431232906e-04x-axis:acc_n: 1.4495200684325752e-02acc_w: 6.5371145813888573e-04y-axis:acc_n: 1.4674141432773454e-02acc_w: 2.7511904157022989e-04z-axis:acc_n: 2.1648160992704262e-02acc_w: 4.9347122322787151e-04

3. 运行

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

1.2使用kalibr标定

我没有用这种方法,只是在使用camera标定的时候看到这个方案。

这里,有详细说明如何使用,供君参考:

https://github.com/ethz-asl/kalibr/wiki/Multi-IMU-and-IMU-intrinsic-calibration

未完,待续..

2.camera标定

3.camera-imu标定

关于传感器标定(imu标定,camera标定,camera-imu联合标定)相关推荐

  1. Basler相机内参标定及Basler相机和Livox-avia激光雷达联合标定

    本次相机内参标定及相机-激光雷达联合标定采用的数据为同一批.数据采集系统:ubuntu-20.04,ROS-noetic. 前期准备 关于系统安装以及ROS环境配置,在这里不写出具体步骤,可查阅其他相 ...

  2. 使用Autoware标定工具包进行相机和激光雷达的联合标定

    前提摘要:我用的雷达和相机分别是镭神C16型激光雷达和免驱动摄像头 一.编译标定程序 1.创建工作空间 mkdir -p ~/CL_calibration_ws/src 2.下载安装包 cd ~/CL ...

  3. 双目相机 -- IMU联合标定

    声明:一些图片是不该有水印的,CSDN把图片链接的格式改了,暂时还不知道怎么去掉,请见谅!!! 目录 **声明**:一些图片是不该有水印的,CSDN把图片链接的格式改了,暂时还不知道怎么去掉,请见谅! ...

  4. 激光雷达和相机的联合标定(Camera-LiDAR Calibration)

    一.总体标定步骤 标定就是找到雷达到相机的空间转换关系,在不同的坐标系之间转换需要旋转矩阵 R 和平移矩阵 T,为后续的雷达和相机数据融合做准备: Camera-LIDAR 联合标定分为 2 步: 相 ...

  5. autoware 激光-相机联合标定

    autoware进行激光-相机联合标定 ~~~ 刚开始进行激光-相机联合标定的时候,出现了不少问题,在此记录一下整体标定流程,以防忘记.在此,特别感谢佳明师弟,在录制数据集时提供的帮助. ~~~ 0. ...

  6. 激光雷达与视觉联合标定综述!(系统介绍/标定板选择/在线离线标定等)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨汽车人 来源丨自动驾驶之心 点击进入->3D视觉工坊学习交流群 后台回复[相机标定]获取超 ...

  7. 基于平面的约束2D激光雷达和相机的联合标定(2D Laser and Camera Calibration )原理及项目代码具体使用——旷视

    1 基于平面的约束2D激光雷达和相机的联合标定(2D Laser and Camera Calibration )原理 这是旷视做的一个关于2D激光雷达和相机的联合标定算法,在看这个标定算法之前,你可 ...

  8. imu相机标定_解放双手——相机与IMU外参的在线标定

    本文作者 沈玥伶,公众号:计算机视觉life,编辑部成员 一.相机与IMU的融合 在SLAM的众多传感器解决方案中,相机与IMU的融合被认为具有很大的潜力实现低成本且高精度的定位与建图.这是因为这两个 ...

  9. 多传感器的联合标定(三)

    传感器标定是自动驾驶的基本需求,一个车上装了多个/多种传感器,而它们之间的坐标关系是需要确定的. 多传感器的联合标定是标定传感器之间的相对外参. 摄像头是RGB图像的像素阵列: 激光雷达是3-D点云距 ...

  10. ZED2相机标定--双目、IMU、联合标定

    为了获取VINS 配置文件中的相关参数,也为了双目相机及IMU传感器实际输出数据更准确,对ZED2的相机进行标定,包括相机标定.IMU标定及联合标定. 一 安装标定工具 1.使用kalibr工具标定Z ...

最新文章

  1. Redis初学:8(Hash类型)
  2. 星期和工作日计算,你会了吗?
  3. 大话文本分类之Fnet
  4. 在指定的查找范围内获取DOM元素
  5. 《CCNP TSHOOT(642-832)学习指南》一导读
  6. 旧金山字体_旧金山建筑业的兴衰。 施工趋势与历史
  7. 第二节:比较DateTime和DateTimeOffset两种时间类型并介绍Quartz.Net中用到的几类时间形式(定点、四舍五入、倍数、递增)
  8. php文件覆盖相同文件,为什么这个PHP代码在打开时会覆盖文件内容?
  9. 取ifrme里的div的代码
  10. mxonline实战14,全局搜索,修改个人中心页面个人资料信息
  11. activemq中怎么知道推送消息是否成功_消息队列面试,你能顶得住面试官这波10大连环炮的攻势吗?...
  12. 黑岩集团创建者Larry Fink 超长访谈
  13. 【Python网络蜘蛛 · 1】:网络蜘蛛的基本介绍
  14. SQL常用连接查询(JOIN)
  15. 转 - DataGuard中如何配置LOG_ARCHIVE_DEST_n参数
  16. Windows 虚拟机Keypair获取登陆密码
  17. 六大基酒——朗姆酒的喝法
  18. protobuf官方文档学习
  19. 数据格式:大端模式(Big-endian)和小端模式(Little-endian)
  20. 如何判断两个地址是否在同一网段

热门文章

  1. ms10-018漏洞利用
  2. 北大计算机专业胡亮,胡亮-吉林大学计算机科学与技术学院
  3. sublime3 SFTP 提示Validating remote folder
  4. 百度Apollo6.0(5.5)安装
  5. Linux IOCTL
  6. BurpSuite使用
  7. matlab 卷积码函数,MATLAB实现卷积码编译码-.doc
  8. python损失函数实现_在Keras中实现自定义损失函数
  9. 建造者模式-佛系的妆容
  10. [从头读历史] 第270节 诗经 王风