本文主要是介绍浅谈 vins 、mavros 和 px4 之间的坐标变换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、前言
在自主无人机系统中,VINS-Fusion、Mavros、PX4 之间的参考坐标系是不同的,而这些坐标系之间的关系又很容易让人产生困惑,本文旨在理清不同模块之间的坐标变换关系,这有利于不同模块之间数据的转换,最后也会给出一些坐标变换方式。
二、 里程计坐标变换关系
本节主要介绍不同的里程计算法,如 VINS-Fusion、msckf_vio、open_vins 等里程计算法与世界坐标系的关系以及其内部不同元素之间的坐标变换关系!
2.1 world 坐标系
每一个里程计一般都会有一个 world 坐标系,然后再估计 body 坐标系在 world 坐标系中的位姿(也就是 body 坐标系 到 world 坐标系的变换关系)。
这里的 world 坐标系指的是一个全局参考系,也就是一个坐标系要确定其世界位置和姿态,共同参考的一个坐标系(参考的点不同,全局位姿就不同,但是全局参考系只能有一个!!!),如下图所示
其中黑色的三轴表示 world 坐标系,而两个蓝色的三轴分别表示 body 1 坐标系和 body 2 坐标系,绿色的箭头指的是 world 坐标系分别到 body 1 坐标系 和 body 2 (transform frame)。
由此可知 body 1 坐标系和 body 2 坐标系 的位姿都是相对 world 坐标系而言的,其中 body 1 坐标系和body 2 坐标系可以是 imu 位姿 或者 相机位姿 或者 雷达位姿,它们的位姿都是相对 world 坐标系而言的!
那么有一个很重要的问题:world 坐标系是怎么确定的?
一般来说,world 坐标系往往会根据 某个 body 坐标系在某个固定时刻的位姿 来确定!
2.1 VINS-Fusion 坐标变换
首先,由于 VINS-Fusion 是有 world 坐标系的,
而其他的一切坐标系的位姿都是相对 world 坐标系而言的,因此必须要先知道 VINS-Fusion 的 world 坐标系是怎么产生的(或者说其他一切坐标系都是参考哪个坐标系的)
这篇关于浅谈 vins 、mavros 和 px4 之间的坐标变换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!