本系列教程作者:小鱼
公众号:鱼香ROS
QQ交流群:139707339
教学视频地址:小鱼的B站
完整文档地址:鱼香ROS官网
版权声明:如非允许禁止转载与商业用途。

7.3.1 齐次坐标变换

前面几节中,小鱼带你一起学习了使用TF进行坐标的变换,也带你通过旋转和平移求解了下坐标的变换关系,但计算的过程中旋转和平移是分开计算的,那有没有一种方法,可以让旋转矩阵和平移向量合并到同一个矩阵里呢?

答案是有的,我们可以将3∗33*33∗3的旋转矩阵和3∗13*13∗1的平移矩阵进行组合,并添加一行(0,0,0,1)使其变成一个4∗44*44∗4的方阵,其组合方式如下:

有旋转矩阵
R=[r11r12r13r21r22r23r31r32r33](旋转矩阵)R = \begin{bmatrix}{r_{11}}&{r_{12}}&{r_{13}}\\{r_{21}}&{r_{22}}&{r_{23}}\\{r_{31}}&{r_{32}}&{r_{33}}\\\end{bmatrix} \tag{旋转矩阵} R=⎣⎡​r11​r21​r31​​r12​r22​r32​​r13​r23​r33​​⎦⎤​(旋转矩阵)
平移矩阵
P=[xyz](平移矩阵)P= \begin{bmatrix}{x}\\{y}\\{z}\\\end{bmatrix} \tag{平移矩阵} P=⎣⎡​xyz​⎦⎤​(平移矩阵)

合并成齐次变换矩阵
T=[r11r12r13xr21r22r23yr31r32r33z0001](齐次矩阵)T = \begin{bmatrix}{r_{11}}&{r_{12}}&{r_{13}}&{x} \\{r_{21}}&{r_{22}}&{r_{23}}&{y} \\{r_{31}}&{r_{32}}&{r_{33}}&{z} \\0&0&0&1 \\\end{bmatrix} \tag{齐次矩阵} T=⎣⎢⎢⎡​r11​r21​r31​0​r12​r22​r32​0​r13​r23​r33​0​xyz1​⎦⎥⎥⎤​(齐次矩阵)

为什么要这样写,我们可以简单的推导一下,矩阵是支持分块运算的,我们将上面的矩阵进行分块
T=[RP01](齐次矩阵)T = \begin{bmatrix}{R}&{P} \\0&1\\\end{bmatrix} \tag{齐次矩阵} T=[R0​P1​](齐次矩阵)
假设BAT^A_BTBA​T表示A坐标系到B坐标的齐次变换,B坐标系下的点C坐标为CBP^B_CPCB​P,求C在A坐标系下的坐标CAP^A_CPCA​P

我们将BAT^A_BTBA​T乘CBP^B_CPCB​P上,可得
CAP=[BARBAP01][CBP1]=BARCBP+BAP^A_CP= \begin{bmatrix}{^A_BR}&{^A_BP}\\0&1\\\end{bmatrix} \begin{bmatrix}{^B_CP}\\1\\\end{bmatrix} = {^A_BR}{^B_CP}+^A_BP CA​P=[BA​R0​BA​P1​][CB​P1​]=BA​RCB​P+BA​P
根据前面学习的平移+旋转复合坐标变换公式,正确的结果如下
CAP=BARCBP+BAP^A_CP = {^A_BR}{^B_CP}+^A_BP CA​P=BA​RCB​P+BA​P
你会发现,两者最终结果完全相同,也就是说,我们的平移加旋转复合变换,可以直接用齐次变换矩阵代替。

1.齐次变换矩阵特性

接着我们来探索一下齐次变换矩阵的一些特性

2.1.齐次变换矩阵的符号表示

一般使用H或者T来表示齐次变换矩阵,矩阵的左上角标明参考坐标系,矩阵左下角标定目标坐标系,比如BAT^A_BTBA​T表示A坐标系到B坐标系的变换关系(平移+旋转)

2.2.齐次变换矩阵的逆的几何含义

就像矩阵的逆一样,齐次变换矩阵也有逆,其的逆也有对应的几何含义,比如

比如BAT^A_BTBA​T表示A坐标系到B坐标系的变换关系

那么

BAT^A_BTBA​T的逆BAT−1=ABT^A_BT^{-1}=^B_ATBA​T−1=AB​T表示B坐标系到A坐标系的变换关系

2.3.齐次变换矩阵的乘法的几何含义

3.3.1齐次矩阵与平移向量相乘

齐次矩阵与平移向量相乘,即可求出某个向量在另一坐标系下的表示,上面例子中即是如此。

3.3.2齐次矩阵与齐次矩阵相乘

齐次矩阵与齐次矩阵相乘,可以转换不同坐标系之间的关系,比如:
BATCBT=CAT^A_BT^B_CT=^A_CT BA​TCB​T=CA​T
比如当我们有一个六自由度的机械臂,知道每两个相邻关节之间的关系,那么就可以通过其次矩阵相乘的方法求出,关节6在关节0下的位置和姿态:
10T21T32T43T54T65T=60T^0_1T^1_2T^2_3T^3_4T^4_5T^5_6T=^0_6T 10​T21​T32​T43​T54​T65​T=60​T

3.练习

练习小鱼放到了下一节了,毕竟不希望大家用手来算~


技术交流&&问题求助:

  • 微信公众号及交流群:鱼香ROS

  • 小鱼微信:AiIotRobot

  • QQ交流群:139707339

  • 版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划

作者介绍:

我是小鱼,机器人领域资深玩家,现深圳某独脚兽机器人算法工程师一枚
初中学习编程,高中开始接触机器人,大学期间打机器人相关比赛实现月入2W+(比赛奖金)
目前在输出机器人学习指南、论文注解、工作经验,欢迎大家关注小鱼,一起交流技术,学习机器人

《动手学机器人学》7.3.1齐次坐标变换齐次变换矩阵相关推荐

  1. 《动手学机器人学》第四节(上):位姿描述

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 目录 <动手学机器人学& ...

  2. 《动手学机器人学》7.4机器人运动学介绍|机械臂运动学|两轮差速底盘运动学|轮式里程计

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 7.4 机器人运动学介绍 机器 ...

  3. 1.1 机器人学之空间描述和变换

    文章目录 参考博文 描述位置 描述姿态 位姿描述 映射:不同坐标系变换 齐次变换矩阵 算子 平移算子 旋转算子 变换算子 小结 变换的计算 其他姿态描述方法 X-Y-Z固定角 Z-Y-X欧拉角 Z-Y ...

  4. 第1章【深度学习简介】--动手学深度学习【Tensorflow2.0版本】

    项目地址:https://github.com/TrickyGo/Dive-into-DL-TensorFlow2.0 UC 伯克利李沐的<动手学深度学习>开源书一经推出便广受好评.很多开 ...

  5. 一阶微分算子锐化图像_【动手学计算机视觉】第三讲:图像预处理之图像分割...

    本讲完整代码>> 前言 图像分割是一种把图像分成若干个独立子区域的技术和过程.在图像的研究和应用中,很多时候我们关注的仅是图像中的目标或前景(其他部分称为背景),它们对应图像中特定的.具有 ...

  6. 送10本今年最火的《动手学深度学习》

    点击我爱计算机视觉标星,更快获取CVML新技术 52CV曾经多次介绍FlyAI机器学习竞赛平台,不少粉丝也曾在FlyAI拿到现金奖励. 本次52CV & FlyAI联合送书,CV君查找了两天, ...

  7. 动手学深度学习Pytorch Task05

    本节课内容,卷积神经网络基础.LeNet.卷积神经网络进阶 一.卷积神经网络基础 二维互相关运算:二维互相关运算的输入是一个二维输入数组和一个二维核数组,输出也是一个二维数组,其中核数组通常称为卷积核 ...

  8. 【动手学深度学习】(task123)注意力机制剖析

    note 将注意力汇聚的输出计算可以作为值的加权平均,选择不同的注意力评分函数会带来不同的注意力汇聚操作. 当查询和键是不同长度的矢量时,可以使用可加性注意力评分函数.当它们的长度相同时,使用缩放的& ...

  9. 动手学深度学习(文本预处理+语言模型+循环神经网络基础)

    文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 分词 建立字典,将每个词映射到一个唯一的索引(index) ...

最新文章

  1. AngularJS 2.0 学习记录(一)
  2. netty系列之:netty初探
  3. WCF 非http寄宿IIS
  4. 比0 冷1度c语言编程,关于DS18B20的C语言程序(精确度0.1度).doc
  5. 网管型工业交换机如何创建网络冗余
  6. python中re模块_python之re模块
  7. 使用母版頁是內容如何使用CSS和javascript
  8. VMware虚拟化云平台-最新版本vSphere 6.7
  9. Sublime Text 2 快捷键用法大全
  10. PostgreSQL逻辑优化——整体架构
  11. AdvancedWindowsPasswordRecovery3 及 注册码
  12. 标签打印软件如何灵活调整打印方向
  13. 当c语言学到大成时,教孩子学编程(信息学奥赛C语言版)
  14. 星空特效HTML代码,旋转的星空特效代码
  15. Vapnik-Chervonenkis
  16. 联想主板9针开关接线图_家庭配电箱总漏电保护,空气开关用63A还是40A好?看完彻底懂了...
  17. 使用MarkDown,编写html格式的项目帮助手册(含左侧目录树)
  18. python告诉你ti8 dota2英雄bp
  19. 梯度下降算法动图_一文读懂梯度下降算法
  20. mysql基础入门SQL基本语法

热门文章

  1. 测试-1月22日--200集学完了
  2. matlab三维数组
  3. 为什么虚拟现实视频看上去那么粗糙?
  4. 在Windows上安装Elasticsearch 5.x
  5. everything搜索文件不全
  6. 为什么序列存在单位根是非平稳时间序列?
  7. 全国行政区划码(国家统计局数据)
  8. 02.模块二 JDBC技术和XML
  9. 臻和科技与依莫纳医疗共同开发mRNA肿瘤疫苗;赛多利斯中国应用与服务中心落地上海张江 | 医药健闻...
  10. 【Bug】HTC Vive Pro安装到支架上之后,VR头盔和手柄老是容易飘,定位不稳定问题