位姿真值 → 两帧之间变换真值

2023-05-16

  已知连续两帧位姿真值为 R 1 R_1 R1 R 2 R_2 R2 t 1 t_1 t1 t 2 t_2 t2,它们都是按照 T W C T_{WC} TWC的格式存储的,即记录从当前相机坐标系世界坐标系的变换矩阵作为相机此刻的位姿。那么两帧之间变换矩阵真值 T 21 T_{21} T21为?
  解答

方法1


  按照代点法来求解,假设在1时刻相机坐标系中记录了一个三维点坐标 P 1 P_1 P1,求该点在2时刻相机坐标系下的坐标值 P 2 P_2 P2
  由题意有如下等式,
P W = R 1 ⋅ P 1 + t 1 (1) P_W=R_1\cdot P_1+t_1 \tag{1} PW=R1P1+t1(1)
P W = R 2 ⋅ P 2 + t 2 (2) P_W = R_2 \cdot P_2 + t_2 \tag{2} PW=R2P2+t2(2)
其中 P W P_W PW表示该三维点在世界坐标系下的坐标值。联立公式(1)和公式(2),可以得到,
P 2 = R 2 T R 1 P 1 + R 2 T ( t 1 − t 2 ) P_2=R_2^TR_1P_1+R_2^T(t_1-t_2) P2=R2TR1P1+R2T(t1t2)
故,
R 21 = R 2 T R 1 R_{21}=R_2^TR_1 R21=R2TR1
t 21 = R 2 T ( t 1 − t 2 ) t_{21}=R_2^T(t_1-t_2) t21=R2T(t1t2)

方法2


由题意,已知 T 1 T_1 T1 T 2 T_2 T2,求 T 21 T_{21} T21
T 1 T 21 T = T 2 T_1T_{21}^T=T_2 T1T21T=T2
则,
T 21 = T 2 T T 1 T_{21}=T_2^TT_1 T21=T2TT1
[ R 21 t 21 0 1 ] = [ R 2 T − R 2 T t 2 0 1 ] ⋅ [ R 1 t 1 0 1 ] \begin{bmatrix} R_{21} & t_{21} \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} R_2^T & -R_2^Tt_2 \\ 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} R_1 & t_1 \\ 0 & 1 \end{bmatrix} [R210t211]=[R2T0R2Tt21][R10t11]

= [ R 2 T R 1 R 2 T ( t 1 − t 2 ) 0 1 ] =\begin{bmatrix} R_2^TR_1 & R_2^T(t_1-t_2) \\ 0 & 1 \end{bmatrix} =[R2TR10R2T(t1t2)1]
故,
R 21 = R 2 T R 1 R_{21}=R_2^TR_1 R21=R2TR1

t 21 = R 2 T ( t 1 − t 2 ) t_{21}=R_2^T(t_1-t_2) t21=R2T(t1t2)

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

位姿真值 → 两帧之间变换真值 的相关文章

  • 新字体的永久注册

    CString GetCurrentModuleDir TCHAR szPath MAX PATH 43 1 61 0 if 0 61 61 GetModuleFileName HMODULE amp ImageBase szPath MA
  • yolov5/v7/v8自动检测多个文件夹及截取锚框

    目前yolo仅支持检测图片或单个文件夹 xff0c 但在很多时候需要对成百上千个文件夹中图片进行检测 xff0c 再根据得到的位置信息txt文件来截取图片 xff0c 如何一步完成呢 xff0c 详情见下文 在detect py中将save
  • 带参数的宏定义、函数与内联函数

    文章目录 前言一 宏定义1 基本用法2 带参数的宏定义 二 函数1 定义与声明2 调用 三 内联函数 inline总结 前言 在实际项目开发 xff0c 尤其是嵌入式软件项目中 xff0c 经常可以看到大量宏定义的分布 xff0c 其中又多
  • C++语言为什么跨平台?

    xfeff xfeff 现在主流的手机平台很多 xff0c 比如 xff1a Windows开发的Windows Phone xff08 WP 34 X 34 xff09 Apple 苹果公司 开发的ios xff0c Google 谷歌
  • CMake 中的list操作

    Cmake 中定义了一系列的数组操作 xff0c 使用方法如下 list INSERT lt list gt lt element index gt lt element gt lt element gt list REMOVE ITEM
  • 解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file

    原文转自CSDN xff0c 本文有删减 一 问题 运行hydra时 xff0c 提示错误 xff1a hydra error span class hljs keyword while span loading span class hl
  • 栈(超简单讲解版

    没错又是我来了 xff08 上一篇DFS还没写好就先来写队列与栈了哈哈哈哈 是很简单的内容呢 xff08 比DFS简单到哪里去了 先来认识一下栈 什么是栈 xff1f 度娘是这样说的 xff1a 栈 xff08 stack xff09 又名
  • ROS下使用stm32 与rosserial进行通信的开发说明及源代码示例

    关于stm32下的ROS开发环境介绍说明 xff0c 此开发环境是在Linux下使用stm32的标准库 STM32F10x StdPeriph Driver3 5 xff0c 进行stm32开发 xff0c 整体开发框架已搭建完成 xff0
  • 【ROS Rikirobot基础-使用系列 第四章节】Rikirobot小车使用激光雷达进行自动导航

    利用激光雷达进行自动导航 这里我们教大家使用的是利用激光雷达导航 xff0c 关于深度摄像头的导航我们后面会教大家使用 1 上电启动小车 xff0c 主控端执行启动小车的命令 xff1a roslaunch rikirobot bringu
  • js函数的四种调用形式以及this的指向

    以函数的 形式调用 xff1a function fun alert this 61 61 window fun 调用成功 xff0c this代表window 以方法的形式调用 var obj 61 name 61 34 hello 34
  • warning: control reaches end of non-void function

    用gcc编译一个程序的时候出现这样的警告 xff1a warning control reaches end of non void function 它的意思是 xff1a 控制到达非void函数的结尾 就是说你的一些本应带有返回值的函数
  • 项目中遇到的问题及解决方案

    1 用到的视频播放插件只支持加载相对路径 xff0c 不能加载绝对路径上的资源 解决方案 xff1a 为tomca t配置 文件 创建索引 xff0c 在 server xml文件中增加配置 lt Context path 61 34 IM
  • Oracle批量更新sql写法

    select from test table for update begin for cur in select id from test table loop update test table set name 61 39 苏晓伟 3
  • JVM 垃圾回收机制

    JVM体系结构概览 xff1a 垃圾回收 xff08 GC xff09 发生在哪个区 xff1a heap xff08 堆 xff09 区 GC是什么 xff1f 分几种 xff1a GC 分代收集算法 次数上频繁收集young区 xff0
  • JAVA 自定义注解

    多说无益 xff0c 直接上代码 import java lang annotation Documented import java lang annotation ElementType import java lang annotat
  • Vuex 学习

    什么是vuex xff1a 专门在Vue中实现集中式状态 xff08 数据 xff09 管理的一个Vue插件 xff0c 对vue应用中多个组件的共享状态进行集中式的管理 xff08 读 写 xff09 xff0c 也是一种组件间通信的方式
  • zookeeper本地安装启动

    下载zookeeper xff1a 链接 xff1a https pan baidu com s 151ZdXYg6QDB A8TRK0wrpw 提取码 xff1a yyds 复制到linux上并解压修改配置文件的名字 xff0c 将 zo
  • zookeeper集群安装

    准备3台服务器 xff0c 安装三个zookeeper xff0c 修改zoo cfg配置 xff0c dataDir 61 opt module zookeeper 3 5 7 zkData 分别在zkData目录下创建一个文件myid
  • zookeeper 启动停止脚本

    bin bash case 1 in 34 start 34 for i in 192 168 66 133 192 168 66 134 192 168 66 129 do echo zookeeper i 启动 ssh i 34 opt

随机推荐