博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Transform总结
阅读量:6696 次
发布时间:2019-06-25

本文共 1028 字,大约阅读时间需要 3 分钟。

针对

\[P'=T_{2}T_{1}P\]
其中\(P\)表示一点,针对上式,有两中解释方法:一个是坐标系动,一个是点动.
(1)将上式从左向右看,可以在\(T_{2}\)左边乘以I,则先是平移旋转坐标系I,然后平移旋转坐标系\(IT_{2}\),得到坐标系\(IT_{3}T_{2}\).然后在该坐标系中(基于该坐标系)绘制出P点,再从原始坐标系观测P点即可得到新的\(P'\)的坐标;
(2)将上式从右向左看,整个过程中坐标系不平移,不旋转,先将P点旋转平移\(T_{1}\),再旋转平移\(T_{2}\),最后得到的点的坐标跟(1)一样.
请注意(1)和(2)中旋转平移的顺序,这在我们手动绘图描点的时候显得尤为重要.一个完整的Transform包括平移和旋转,$T=translation \times Rotation $,因此针对一个点先平移后旋转和先旋转后平移是不一样的.在上式中:
\[T_{2}T_{1} = Translation2 Rotation2 Translation1 Rotation1\]
矩阵不满足交换律,但是满足结合律,因此无论从左开始算还是从右开始算,结果是一样的.

在(1)中,我们的计算顺序是从左向右,因此先平移再旋转,而在(2)中,计算顺序是从右向左,先结合的是Rotation1,然后是Translation1,因此先旋转再平移.807375-20170423212046897-398146505.png

上图中两种方式都会到达相同的一点.总结如下:
(1)是在每次变换的上一个坐标系下移动;(2)是在最初的坐标系下移动,整个过程都是点在移动,坐标系永远不变.

在求解机器人移动过程的姿态中,

\[T'=TU\]
我们本能会将其认识为第二种方式,即将机器人看作一个点,整个过程中点在移动,但其实机器人每次的移动都是针对于上一次的坐标系,因此看作第一种方式更好理解,虽然最终可以殊途而归.将机器人的姿态看作一个Transfrom, 将其按照(1)右乘平移旋转矩阵U,最终会得到机器人相对于初始的坐标系的姿态(或者新坐标系相对原始坐标系的姿态)\(T'\).将上式U的右边乘以一个列向量[0,0,1],最终结果也是一个列向量.此时便可以以第二种方式理解,从右向左看作点的移动,最终得到的列向量跟第一种方式求得矩阵的最后一个列向量一样,但是显然它只能得到位置坐标,丢失了旋转角度信息.

转载于:https://www.cnblogs.com/rogerjin/p/6753976.html

你可能感兴趣的文章
openssl使用SMTP从gmail发邮件
查看>>
AngularJS Module类的方法
查看>>
nginx反向代理httpd获取用户真实ip
查看>>
postgresql中的查询(query)二
查看>>
AspectJ深入学习
查看>>
js限制用户上传文件类型
查看>>
忘记mysql数据密码,如何重设
查看>>
在SpringMVC中整合jfinal微信项目
查看>>
扩展CURL后,cmd命令无法加载
查看>>
绕过 GIL 提升 Python 性能的一般方法
查看>>
用Eclipse追PostgreSQL源码
查看>>
【原创】第一个iOS应用程序
查看>>
PHP去除BOM头的方法
查看>>
提醒 TickTick v2.8.5.4 最新版
查看>>
怎么在Beyond Compare中插入表格数据
查看>>
JSONP
查看>>
【漏洞预警】OpenSSL 远程拒绝服务漏洞
查看>>
成本管理之(成本控制)
查看>>
Java 反射工具类
查看>>
Java继承关系中,父类方法使用实例变量和调用实例方法的探究
查看>>