刚开始录制的数据时没有考虑相机和IMU之间的坐标变换,但是后来发现跟踪效果不好,去查验imu数据时,发现,我采集保存的imu数据格式没有和euroc数据集中的imu数据保存格式统一,所以需要研究的是在euroc用于数据采集的设备中的相机和imu之间的坐标系变换关系,我的设备相机和imu之间的坐标系变换关系,然后按照euroc数据保存格式来保存我采集的数据。

下面是euroc数据集使用的数据采集设备,使用的是左手坐标系,相机朝向与z轴朝向相反,相机与imu之间的位姿变换是,顺时针旋转90度,

Euroc数据集的采集工具所有的设备中相机和imu之间的坐标变换。满足右手坐标系,从相机到imu的旋转是,绕着在z轴(根据圆点的标志,z轴是垂直于屏幕朝外的)顺时针(以上帝的视角对着z轴的正方向看向xoy平面)旋转90度。

下面这个图标记错了。

 

下面是vins室内数据采集设备, 采用右手坐标系,z轴和相机轴重合,相机朝向和z轴朝向重合,相机到imu的位姿变换是,绕z轴顺时针旋转90度。

vins用来室外数据采集的设备,相机系是右手坐标系,相机朝向和z轴方向重合,相机到imu之间的位姿变化需要经过两个步骤变换,首先是绕x轴顺时针旋转90度,然后是绕新的z轴逆时针旋转90度,绕哪个轴旋转就要从哪个轴看进去,然后判断是顺时针还是逆时针,上述连续旋转的方式,需要使用左乘的方式来表示连乘。

 

我们的采集设备相机和imu坐标系图。相机是标准的右手系,imu是左手系,经过测试发现,imu实际的坐标系和标注的坐标系是相反的。(哪个轴的方向和重力方向重合,哪个轴上输出的加速度的值应该为正值)。EUROC数据集中提供的imu数据的重力轴在x轴上,并且值为正,说明,x轴的正方向和重力方向重合,是朝下的。下面两个图对比可知,我们的设备IMU坐标系和EUROC数据集的IMU坐标系,X轴和Z轴是对调的,并且Y轴是相反的,所以为了将自采的imu数据向EUROC数据集中imu数据对齐则,需要进行如下操作: ax = Za; ay = -Ya; az = Xa; 将加速度数据调整的同时,也需要对对应的角速度数据进行调整:

wx = Zw; wy = -Yw; wz = Xw;  并且在之前,将自采的Imu 数据和EUROC数据集的imu数据对比,得出,后者采用的是弧度单位,而我们采集的数据是以度为单位,所以要在所有获得的角度数据上除以57.296(180/pi),并且在加速度数据上都乘以了9.8.之所以要乘以9.8,应该是与imu的前期设置有关,这个需要问一下小潘潘。

 

进行完数据的调整之后,再次跑数据集,仍然会出现乱漂的情况,我干脆打开配置文件,想着修改哪个参数,实现,不用每次都重新打开rviz窗口的问题,但是打开config文件后,我寻思着随便改改吧,看到了rolling_shutter这个参数,我之前一直认为我们的相机是rolling_shutter相机,就是卷帘相机,所以这个参数设置为1,但是我这次改成了0,试一下,发现,我靠,不漂了,鹏哥说是global shutter,这下才知道我们的相机是global shutter相机,哎,配置文件里的参数还是要多多研究的。长见识了。

研究相机和IMU坐标系变换相关推荐

  1. Lego-LOAM IMU坐标系变换的详细记录

    Lego-LOAM IMU坐标系变换的详细记录 0 基础知识 1. IMU 重力加速度消除 2 相机坐标系(camera)到初始坐标系(camera_init)的转换 最近看了Lego-LOAM 的I ...

  2. [图形学] 坐标系变换——从世界坐标系到相机坐标系

    坐标系变换是图形学中最基础的部分,一个物体从建模到显示在屏幕,经历了从物体坐标系到世界坐标系,再从世界坐标系到观察坐标系,最后通过投影到2D平面,再变换到屏幕坐标等一系列过程. 投影矩阵 我们可以很容 ...

  3. (五)carla中世界坐标系与相机坐标系、像素坐标系变换

    (五)carla中世界坐标系与相机坐标系.像素坐标系变换 由于实验需要将 carlacarlacarla 中世界坐标系下的坐标点画到相机采集的前视图上,故需要进行坐标系之间的转换. 转换中遇到的问题 ...

  4. 相机参数和相机模型各个坐标系(世界坐标系、相机坐标系、图像坐标系、像素坐标系之间变换)

    坐标系变换 1. 几个坐标系: 世界坐标系(world coordinate system): 用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置而被引入.单位为m. 相机坐标系(camer ...

  5. 关于LOAM系列SLAM算法中IMU的去重力和坐标系变换

    以下说法存在问题,待校正... 一.坐标系 LOAM系列中,IMU的坐标系和载体坐标系是对齐的,都是X向前,Y向左,Z向上的右手坐标系. 二.IMU去除重力 IMU的安装坐标系朝向和载体坐标系朝向是一 ...

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

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

  7. 理解计算机3D图形学中的坐标系变换

    要谈坐标系变换,那么坐标系有哪些呢?依次有:物体坐标系,世界坐标系,相机坐标系,投影坐标系以及屏幕坐标系.我要讨论的就是这些坐标系间的转换.      这些坐标系不是凭空而来,他们都是为了完成计算机3 ...

  8. 【踩坑记录】colmap中的相机位姿的坐标系定义及其可视化结果的隐含转换

      这个问题来自于我想要使用colmap的稀疏重建结果,然后发现由于相机坐标系的定义没弄清楚,导致我获取的结果存在问题.    1 问题引出   下面先从我们还不知道坐标系定义的视角开始理解,引出问题 ...

  9. Google Earth Engine谷歌地球引擎GEE地理坐标系与投影坐标系变换与重投影

      本文主要对GEE中地理坐标系与投影坐标系转换.重投影等操作加以介绍.本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第十三篇,更多GEE文章请参考专栏:GEE学习 ...

最新文章

  1. 技术图文:如何利用C# 实现 Prim 最小生成树算法?
  2. android studio 导入、移除module、以及加载module中的jar包
  3. Java高并发编程:同步工具类
  4. centos 7 密码破解 rm -rf 删除恢复
  5. SQL Server HA - 数据库镜像2 (Mirroring)(1418错误解决)
  6. C语言丨小 学 数 学(一):高精度加法
  7. Python模块——matplotlib模块详解
  8. 拓端tecdat|R语言Kaggle泰坦尼克号性别阶级模型数据分析案例
  9. 题目:js实现求100以内的质数
  10. sel在c语言,iOS 你所不知道的SEL
  11. Eighth Week's ARST
  12. 得力针式打印机第一联清晰第二联不清晰解决办法
  13. 中国肠衣产业调研与投资方向研究报告(2022版)
  14. linux-----基本操作指令(2)
  15. python: 实现一个简单的日记程序
  16. Nacos本地进行了远程配置而远程未配置相关信息而导致应用报内存泄漏问题的异常
  17. rails 调试工具pry 换掉debugger 和 rails c
  18. Android 音乐APP(一)扫描本地音乐
  19. 初创小公司需不需要合伙人?
  20. git 不显示远端分支问题

热门文章

  1. 对 js 高程 Preflighted Reqeusts 的理解
  2. JAVA类的构造方法
  3. 从易到难,写一个JavaScript加载器之一
  4. flex(入门)之timer的使用,键盘,鼠标的监听
  5. HDU 1042 N!(高精度计算阶乘)
  6. numpy和pandas的基础索引切片
  7. PYTHON自动化Day4-交换变量,字符串方法,拷贝,集合,文件,文件指针
  8. C++ Primer 第六章 语句
  9. 【Web】JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要前后端分离?2.0版,为分布式架构打基础。 - CSDN博客
  10. css框架:五大css流行框架的总结-css教程-PHP中文网