zoukankan      html  css  js  c++  java
  • 坐标转换矩阵

    参考:《Robotics,Vision and Control》、《鱼雷航行力学》、其他学位论文

    为了开题看论文,结果发现坐标转换矩阵这个基础部分竟然卡壳了,网上的一些讨论要不缺少中间过程,要不甚至是错的,于是整理了一下。
    p.s.没想到《Robotics,Vision and Control》这本一直认为和研究关系不大的书成了救命稻草。




    右手定则
    绕一个向量的旋转

    书上直接给出了分别绕x,y,z轴旋转sita角度的矩阵,而且这三个矩阵也经常见到。但值得注意的是,这三个矩阵其实是坐标系的转换矩阵,公式为

    原坐标=[坐标转换矩阵]新坐标
    

    而我们通常是希望求新坐标,所以

    新坐标=[坐标转换矩阵的逆]原坐标
    

    又因为是正交矩阵,所以求逆即转置

    新坐标=[坐标转换矩阵的转置]原坐标
    

    看了一些论文,虽然最后总的坐标转换矩阵是对的,但得出结论的过程里缺少了将坐标转换矩阵转置的操作,从而有误(虽然过程一般会被读者跳过),如下:

    除此之外,也有的书籍(《鱼雷航行力学》)和论文,把前面的推导过程省略,直接给出了点对点的坐标转换矩阵,让人感觉很奇怪,甚至怀疑结论的正确性。(但后来推导发现这是转置后的矩阵)

    于此同时,根据建立的坐标系的不同,旋转顺序也有差异,但有一定的标准。

    下面《鱼雷航行力学》书上的旋转顺序,是因为建立了“东-天-南”的地面坐标系,即x轴指东,y轴指天,z轴指南,与之对应的雷体坐标系也是按照“东-天-南”来使用,其旋转顺序为y-z-x,分别旋转了航向-俯仰-横滚角
    而上面的旋转矩阵来自于某些航空类的书籍和论文,因为是z轴在垂直方向(有的是z轴指天,有的是z轴指地...),常用的导航角旋转顺序是z-y-x,同样是按照航向-俯仰-横滚角的顺序。

  • 相关阅读:
    forEach方法的实现
    经典笔试题
    Js中的filter()方法
    arguments参数对象
    随机验证码实现
    DB2 字符串比较
    博客园那篇文章,怎么被“注入”的?
    DB2存储过程创建临时表,返回临时表集合
    Struts的一些关键词
    DB2使用笔记生成存储过程ID
  • 原文地址:https://www.cnblogs.com/j-c-y/p/12010152.html
Copyright © 2011-2022 走看看