【SLAM14讲】04 三维空间刚体运动

news2024/10/7 2:29:36

一、坐标系之间的欧式变换

xW , yW , zW定义的世界坐标系,xC , yC , zC 定义的相机坐标系。

相机视野中某个向量 p,它的坐标为pc,而从世界坐标系下看,它的坐标 pw。

二、相机运动

相机运动是一个刚体运动,它保证了同一个向量在各个坐标系下的长度和夹角都不会发生变化,这种变换称为欧氏变换。这样一个欧氏变换由一个旋转R和一个平移t两部分组成。

这里考虑旋转。我们设某个单位正交基 (e1, e2, e3) 经过一次旋转,变成了 (e ′ 1 , e ′ 2 , e ′ 3 )。它在两个坐标系下的坐标为 [a1, a2, a3] T 和 [a ′ 1 , a ′ 2 , a ′ 3 ] T。 根据坐标的定义,有:

  • 矩阵R称为旋转矩阵,由两组基之间的内积组成,刻画了旋转前后同一个向量的坐标变换关系,是一个行列式为 1 的正交矩阵。
  • 旋转矩阵的逆(即转置)描述了一个相反的旋转
  • 旋转矩阵的集合定义如下

SO(n) 是特殊正交群

这里的变换关系不是一个线性关系。假设我们进行了两次变换:R1, t1 和 R2, t2:

 这样的形式在变换多次之后会过于复杂,于是重写:

  • 把一个三维向量的末尾添加 1,变成了四维向量,称为齐次坐标。

对于这个四维向量,我们可以把旋转和平移写在一个矩阵里面,使得整个关系变成了线性关系。该式中,矩阵 T 称为变换矩阵(Transform Matrix)。用 a˜ 表示a的齐次坐标。

  • 在齐次坐标中,某个点 x 的每个分量同乘一个非零常数 k 后,仍然表示的是同一个点。

因此,一个点的具体坐标值不是唯一的。如 [1, 1, 1, 1]T 和 [2, 2, 2, 2]T 是同一个点。但当最后 一项不为零时,我们总可以把所有坐标除以最后一项,强制最后一项为 1,从而得到一个 点唯一的坐标表示。

 忽略掉最后一项,这个点的坐标和欧氏空间就是一样的。

经重写后:  

 

变换矩阵 T,它具有比较特别的结构:左上角为旋转矩阵,右侧为平移向量,左 下角为 0 向量,右下角为 1。这种矩阵又称为特殊欧氏群。

 解该矩阵的逆表示一个反向的变换:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

golang arena

go 1.20新特性 goland设置 Enviroment 定义环境变量 Go tool arguments 就是go build 的参数 Program arguments 启动参数 GOEXPERIMENTarenas -tags goexperiment.arenas //go:build goexperiment.arenaspackage mainimport ("arena""fmt""net/…

可以实现语音录入的好用的记事本app是哪个?

在现代快节奏的工作生活中,记事本成为了人们不可或缺的工具之一。然而,传统的手写记事本已经无法满足人们快速、高效的需求,语音记事的好处不言而喻。 它不仅能够提高工作效率,减少输入时间,还能够帮助用户更好地记录…

使用Visual Studio 2019 编译Masscan

目录 使用Visual Studio 2019 编译Masscan 1.从github下载源码 2.安装Visual Stiudio 2019 3.准备编译Masscan 4.编译Masscan 总结 使用Visual Studio 2019 编译Masscan 1.从github下载源码 可以直接在GitHub上搜索,下载后的源码目录结构。 2.安装Visual Stiu…

ds1:java-stream流

文章目录 1.修改集合中的值map2.过滤集合中符合条件的值filter找集合中的最大/小的值,及操作后元素的个数max()/min()/count()归约:对集合中所有元素进行自定义计算获取最终值reduce()collect分组(partitioningBy/groupingBy)修改集合中元素之间的连接符…

ctr-k8s镜像管理命令,将k8s正在使用的镜像推送仓库

​ k8s镜像管理命令 查出k8s中pod在使用的镜像 kubectl get -o wide deploy -n yxyw-uat |awk ‘{print $7}’ 查出镜像地址,勾选正则开头配上镜像推送命令 gem-acr-p-a01-registry-vpc.cn-shenzhen.cr.aliyuncs.com/osale/gyx-admin:yxyw-pre-2023-06-05-11-18…

便携式多功能校准器TD1858参考标准

体积小巧:相较于同档次技术指标的多功能校准器,体积缩小至50%,重量轻便:整机质量不到10 kg,人员可轻松实现搬运,方案价值:非常方便携带至工作现场对数字多用表和其他电测仪表进行校准。 直流电压…

搭建cesium源码调试环境

1. cesium源码下载 直接从github上下载即可 https://github.com/CesiumGS/cesium.git 本文下载的是最新版本1.106 2. cesium源码目录简介 1) packages目录 源码目录,包含engine,widgets 2)Apps目录 包含一些示例代码 3)Spec…

Node中express路由基本使用

1.路由的基本使用 //引入express const expressrequire("express") //创建路由 const appexpress() //规定路由的请求方法 app.get(/,(req,res)>{res.end("hello express") }) //启动路由,并且端口为9000 app.listen(9000,()>{console.l…

ruoyi-vue版本(三十)事务介绍和使用

目录 1 事务管理2 常见坑点13 常见坑点24 Transactional注解的常用属性表: 1 事务管理 新建的Spring Boot项目中,一般都会引用spring-boot-starter或者spring-boot-starter-web,而这两个起步依赖中都已经包含了对于spring-boot-starter-jdbc…

和鲸社区数据分析每周挑战【第九十六期:汽车公司客户细分预测】

和鲸社区数据分析每周挑战【第九十六期:汽车公司客户细分预测】 文章目录 和鲸社区数据分析每周挑战【第九十六期:汽车公司客户细分预测】一、前言1、背景描述2、什么是用户分群?3、数据说明4、数据集预览 二、数据读取和数据初步观察三、潜在…

【动态规划算法】第六题:63.不同路径II

💖作者:小树苗渴望变成参天大树 🎉作者宣言:认真写好每一篇博客 🎊作者gitee:gitee 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作…

2、DuiLib的入门程序以及资源压缩打包

标题 1、DuiLib入门程序11.1、DuiLib程序版本11.2、DuiLib程序版本21.3、DuiLib程序版本3,增加编写界面xml1.4、DuiLib程序版本4,继续修改xml布局1.5、DuiLib程序版本5,继续修改xml布局5.6、DuiLib程序版本5,继续修改xml布局 2、D…

Stable Diffusion 使用 SadTalker 生成图片数字人

Heygen和D-ID等照片转视频的工具,都需要在线付费使用。本次介绍一个SadTalker数字人。SadTalker有多种使用方式,包括完整安装程序和stable diffusion插件模式。安装程序操作较繁琐,因此推荐stable diffusion插件模式。 文章目录 SadTalker安…

【龙芯2K500先锋板】点亮RGB多彩发光板

文章目录 一、硬件准备1.1 DFRobot RGB多彩发光板1.2 龙芯2K0500开发板 二、背景知识三、实现点灯3.1 手动点亮3.2 手动熄灭3.3 实现PwmController3.4 实现呼吸灯效果 四、效果演示五、完整代码六、参考链接 前段时间乔帮主送了几个DFRobot的RGB多彩发光板,官方的演…

实现一个简单的录制软件:支持录制桌面与窗口

环境搭建 CSDN 将data文件与obs-plugins文件夹复制到bin/win32文件下 VS2019安装Qt插件(附安装失败解决方案)_振华OPPO的博客-CSDN博客 插件; 链接:https://pan.baidu.com/s/1fdNDJwrwrJ1SA0Q9AiM7qA?pwdiz4f 提取码:iz4f vs…

uniapp 微信小程序导航功能(从地址列表内点击某一个地址)

效果图&#xff1a; <template><view class"user"><view class"list"><view class"title">地址列表</view><view class"title-label"><view>名称</view><view>距离&#xff…

开启Windows共享文件夹审核,让用户查看谁删除了文件

在动画行业有个常用到的需求&#xff0c; 我的共享文件夹内的文件被谁删除了&#xff0c;查不到&#xff0c;只能查看谁创建&#xff0c;谁修改的&#xff0c;但查不到谁删除的&#xff0c;分享一下&#xff1a; 1 开始->运行->gpedit.msc 开发本地组策略编辑器, 在计算…

el-select 下拉选择框添加字段单位显示 el-select下拉按钮前加单位显示

背景&#xff1a;el-select可以通过自定义模版在下拉选项内加单位但是选择后没法显示单位 实现效果 实现代码 html <el-selectv-model"form.day"class"select-prefix"><el-option label"1" :value"1" /><el-option la…

Spark SQL 6-7

6. Spark SQL实战 6.1 数据说明 数据集是货品交易数据集。 每个订单可能包含多个货品&#xff0c;每个订单可以产生多次交易&#xff0c;不同的货品有不同的单价。 6.2 加载数据 tbStock&#xff1a; scala> case class tbStock(ordernumber:String,locationid:String,…

基于Java+vue前后端分离餐厅点菜管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…