刚开始录制的数据时没有考虑相机和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. 数据蒋堂 | 怎样生成有关联的测试数据
  2. VC++ 删除当前读取行 代码
  3. 人生133个规则,能领悟多少算多少!!!看自己的造化!!!
  4. Hibernate和UUID标识符
  5. ZK的实际应用:MVVM –加载和渲染数据
  6. 15-Scala使用Option、Some、None,避免使用null
  7. TensorFlow神经网络(七)卷积神经网络基础
  8. APPCAN学习笔记001---app快速开发AppCan.cn平台概述
  9. 音效SystemSoundID
  10. java自定义classloader_java自定义ClassLoader加载指定的class文件操作
  11. springboot定时备份MYSQL_spring boot 定时备份数据库
  12. pyqt之qprocess使用【详细教程】
  13. Python实现社交网络可视化
  14. 求1000以内的水仙花数
  15. photoshop教程:替换颜色
  16. Cutting(思维)
  17. 抓不住的年终奖,守不住的头发
  18. 算法工程师属于计算机哪个领域,算法工程师、数据研发工程师,数据挖掘工程师的区别是什么?...
  19. Docker 及 Docker Compose 安装及使用教程 (2020版)
  20. 集合之扑克牌---洗牌+发牌+发牌后排序+看牌

热门文章

  1. tensorflow的一些函数
  2. ASP.NET Aries 3.0发布(附带通用API设计及基本教程介绍)
  3. 为什么“三次握手,四次挥手”?
  4. the first day
  5. Protocol Buffers的应用
  6. 夜深了,发点无聊的东西
  7. 如何使用三态工作流 - [MOSS 2007应用日记]
  8. 趣味教程:从女娲造人谈类、属性、方法及实例
  9. GARFIELD@02-24-2005
  10. js高级—tab栏切换(面向对象做法)