vins中的坐标系变换及g2r函数

2023-05-16

slam中经常会需要表示一个刚体的位姿。例如imu的位姿,相机的位姿。首先我们需要在一个刚体上架上一个坐标系。这个坐标系为本体坐标系。
在这里插入图片描述
在这里插入图片描述
怎么架一个坐标系?imu本身就有规定其本身的x,y,z轴的方向。相机一般认为,z轴平行于镜头朝外,x轴与像平面的水平方向一致,从左到右,y轴与像平面垂直方向一致,从上到下。

现在我们以这个cam坐标系作为参考,解算出了imu坐标系在cam坐标系下的位姿,为 R ,t

t 代表了平移向量,为imu坐标系原点在cam坐标系的位置
R代表的含义可以有三种解释:

  1. 字面含义:R的三个列向量为imu系 x,y,z轴在原坐标系的表示
  2. 表示Cam坐标系如何旋转才能转到IMU坐标系 --------- 坐标系的变换
  3. 表示imu坐标系中的点通过这个旋转矩阵变换到w坐标系中去 --------- 点的变换

关于第一种解释比较容易理解。
第二种解释的一个例子为已知此时Cam系在世界坐标系中,此时的姿态为R_cam,则imu在世界坐标系中,姿态为 R_cam * 𝑅
第三种解释的一个例子为已知此时Imu测得的角速度为w=[𝑤1,𝑤2,𝑤3],则在cam系中,角速度为𝑅 𝑤

网上很多可能告诉的是点的变换是左乘,坐标系的变换是右乘。其实也不是固定的。坐标系的变换也可以使左乘。绕着旋转轴的是右乘,绕着固定轴的左乘。

在这里插入图片描述

在vins 的配置文件中,需要填写相机和imu之间的外参。注解中特别说明,这个外参是相机帧变换到imu帧,注意,这个变换是点的变换。也就是这个旋转外参是以imu为参考帧,相机的姿态r。平移外参是以imu为参考帧,cam的光心在imu坐标系中的位置。vins程序中是以ric,tic来表示这组外参。

vins坐标系变换中,困扰比较久的是一个g2r(const Eigen::Vector &g)函数。这个函数主要是为了做一个重力对齐。

在初始化进行到把重力估计出来后,我们假设,现在已知解算出了在第一帧Imu帧下,重力向量为 g =[-9.4 −2.3 0.4],这时候第一帧imu大概是这个样子:
在这里插入图片描述
我们假设解算都是以第一帧imu帧为参考系(实际上初始化是以第一帧图像帧为参考系,不过不影响)。
为了使得参考坐标系和重力对齐。我们期望的参考坐标系应该是:
在这里插入图片描述

因此vins中有两步操作:
在这里插入图片描述
在这里插入图片描述

这里可能有两个问题:
1.为什么是[0 0 9.8]而不是[0 0 -9.8] ?因为vins的公式推算中,g都是用-号,因此这个相当于是一个朝上的重力.
2.为啥是R1R0 而不是R0R1?因为这个旋转是绕着固定轴旋转的,所以使用左乘。
在这里插入图片描述

注意,vins中使用了g2r后又使用了一次yaw的调整,主要是因为他是以C0为参考系。又进行一次调整保证最初是的imu帧变换后,yaw角为0.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vins中的坐标系变换及g2r函数 的相关文章

随机推荐

  • GIt常用命令总结

    目录 1 创建新建分支 2 强制拉去代码 3 合并相邻提交 xff0c 保证只有一个commit信息 4 本地回退 5 查看git修改列表 6 提交代码 7 切换新分支并从服务端拉取最新 8 git cherry pick合并代码使用 9
  • Linux 下I/O多路复用总结

    xfeff xfeff select xff0c poll xff0c epoll都是IO多路复用的机制 I O多路复用就通过一种机制 xff0c 可以监视多个描述符 xff0c 一旦某个描述符就绪 xff08 一般是读就绪或者写就绪 xf
  • WAV文件头分析

    WAV语音文件头部含有44字节的标志信息 xff0c 其含义如下 xff1a ckid xff1a 4字节 RIFF 标志 xff0c 大写 wavHeader 0 61 39 R 39 wavHeader 1 61 39 I 39 wav
  • Linux环境下限制网速和取消限制网速

    查看网卡信息 ip addr root 64 rabbitmq01 ip addr 1 lo lt LOOPBACK UP LOWER UP gt mtu 65536 qdisc noqueue state UNKNOWN qlen 1 l
  • Linux 网络编程2 TCP并发服务器

    Linux 网络编程学习 TCP IP网络编程2 TCP多线程服务器TCP多进程服务器 在前面TCP网络编程代码的基础上进行改造 xff0c 实现并发服务器功能 TCP多线程服务器 实现功能 xff1a server端可以绑定在任意IP端s
  • HTTP Digest authentication

    什么是摘要认证 摘要认证 xff08 Digest authentication xff09 是一个简单的认证机制 xff0c 最初是为HTTP协议开发的 xff0c 因而也常叫做HTTP摘要 xff0c 在RFC2617中描述 其身份验证
  • 简单的netfilter hook函数注册以及内核链表的使用

    include lt linux netfilter h gt include lt linux init h gt include lt linux module h gt include lt linux netfilter ipv4
  • 详述GPS原理及RTK技术应用

    完整的PPT文档在这里 xff1a 详述GPS原理及RTK技术应用 1 GPS概述 1 1定义 全球定位系统GPS xff08 Global Position System xff09 xff0c 全称为NAVSTAR GPS xff08
  • PHP HTTP Digest校验

    PHP作为客户端进行HTTP Digest校验 span class token comment 请求方法 span span class token variable username span span class token oper
  • Http Digest认证协议

    其认证的基本框架为挑战认证的结构 xff0c 如下图所示 xff1a xfeff xfeff 1 客户端希望取到服务器上的某个资源 xff0c 向服务器发送Get请求 2 服务器收到客户端的请求后 xff0c 发现这个资源需要认证信息 xf
  • Postman 安装

    Postman 的下载安装 Postman是一个用于构建和使用API的API平台 xff08 接口的调试工具 xff09 选择对应的系统和版本进行下载 https github com hlmd Postman cn 这里我的电脑是wind
  • 【安卓自定义控件系列】自绘控件打造界面超炫功能超强的圆形进度条

    在前面我们讲过了安卓自定义控件三种方式中的组合控件 xff0c 现在我们来讲解一下通过自绘的方式来实现自定义控件 xff0c 本博客将以自定义圆形进度条为例向大家讲解自定义控件的知识 xff0c 首先来看一下效果图吧 xff0c 这个是本人
  • Linux网络编程3——多进/线程并发服务器

    视频链接 黑马程序员 Linux网络编程 哔哩哔哩 bilibili https www bilibili com video BV1iJ411S7UA p 61 37 目录 一 高并发服务器 1 1 图示 1 2 分类 二 多进程并发服务
  • http请求头和响应头

    文章目录 参考HTTP通用标头Cache ControlConnectionDatePragmaTrailerTransfer EncodingUpgradeViaWarning 请求头AcceptAccept RangesAccept E
  • C++如何使用libcurl发送post请求的三种content-type的封装

    作者 xff1a 虚坏叔叔 博客 xff1a https xuhss com 早餐店不会开到晚上 xff0c 想吃的人早就来了 xff01 x1f604 C 43 43 如何使用libcurl发送post请求的三种content type的
  • 开源四轴飞行器CC3D的稳定模式和PID算法简介

    本文主要介绍一下CC3D的两大飞行模式的原理 xff1a 1 Rate 2 Attitude 以及PID的基本原理 至于AxisLock模式及Manual xff0c 日后续说 笔者是CC3D开源飞控入门玩家 xff0c 遇到过不少磕磕碰碰
  • 了解git分支和版本管理

    0 Git分支和标签的命名规范 1 分支 dev test pre pro 即master 2 标签 Tag格式 xff1a 主版本号 次版本号 修订号 类型标签 xff0c 其中类型标签可为 xff1a alpha beta rc r T
  • ubuntu下解决高并发socket最大连接数限制,tcp默认1024个连接

    nux系统默认ulimit为1024个访问 用户最多可开启的程序数目 一般一个端口 xff08 即一个进程 xff09 的最高连接为2的16次方65536 通过这个命令 ulimit n 可以看到默认值为1024 查看全局文件句柄数限制 系
  • Linux下实现Post方式

    首先了解HTTP协议各字段的含义 xff0c 以下是部分较好的归纳 xff1a HTTP一个HTTP请求报文由请求行 xff08 request line xff09 请求头部 xff08 header xff09 空行和请求数据4个部分组
  • vins中的坐标系变换及g2r函数

    slam中经常会需要表示一个刚体的位姿 例如imu的位姿 xff0c 相机的位姿 首先我们需要在一个刚体上架上一个坐标系 这个坐标系为本体坐标系 怎么架一个坐标系 xff1f imu本身就有规定其本身的x y z轴的方向 相机一般认为 xf