winneking
泡芙2级
泡芙2级
  • UID1575
  • 粉丝0
  • 关注0
  • 发帖数6
阅读:1490回复:12

已知两个局部坐标系平移的距离和角度怎么构造变换矩阵

楼主#
更多 发布于:2019-04-12 16:37
遇到一个问题,已知两个局部坐标系在Z轴平行,XY平面共面,XY轴成角度,现在已经知道了两个坐标系原地在XY平面运动的距离,和XY轴旋转的角度,怎么求着两个坐标系的变换矩阵?是不是可以简单的认为这个变换的矩阵为

[R T;0 0 0 1],因为这里只有围绕Z轴的旋转,所以可以理解为只有偏航角,另外两个角为零,怎么写这个转换矩阵我还是没想清楚,有人清楚吗?

最新喜欢:

happybaolianghappyb...
PetWorm
论坛版主
论坛版主
  • UID125
  • 粉丝12
  • 关注4
  • 发帖数39
  • 社区居民
  • 忠实会员
沙发#
发布于:2019-04-13 10:15
只绕z轴转动的旋转矩阵形式如下:

图片:CodeCogsEqn.gif



这是一个很基础的问题,找一本惯性导航的书上应该都会有,敲公式太麻烦,绕x和y的就不写了,如果需要可以去书里找找。
winneking
泡芙2级
泡芙2级
  • UID1575
  • 粉丝0
  • 关注0
  • 发帖数6
板凳#
发布于:2019-04-15 15:18
我知道这种已知围绕X轴,Y轴,Z轴旋转角度的情况下,我知道旋转矩阵可以由旋转矩阵相乘获得 R=R(yaw)R(pitch)R(roll),就像你说的因为这里已知pitch=0,roll=0,所以最后R就等于你写的,我这里不确定的是平移矢量T=[t1,t2,t3], 已知的是两个局部坐标的原点的平移的距离L, 这里是否可以简单的认为T=[L,0 , 0],还是要根据yaw的角度在X轴,Y轴分解T=[L*cos(yaw),L*sin(yaw),0]
xiaoC
论坛版主
论坛版主
  • UID231
  • 粉丝10
  • 关注9
  • 发帖数59
  • 社区居民
地板#
发布于:2019-04-15 15:52
PetWorm:只绕z轴转动的旋转矩阵形式如下:


这是一个很基础的问题,找一本惯性导航的书上应该都会有,敲公式太麻烦,绕x和y的就不写了,如果需要可以去书里找找。
回到原帖
晨博果然是猴赛雷啊
leven君
泡芙1级
泡芙1级
  • UID2154
  • 粉丝0
  • 关注0
  • 发帖数1
4楼#
发布于:2019-04-15 15:58
最后的R就是上面回你的Rz,只是单纯地绕Z轴旋转,没有其他旋转,一步到位。如果要分解成按3个欧拉角连续旋转3次,可以参考维基https://en.wikipedia.org/wiki/Euler_angles。贴一个维基上的不同欧拉角顺序的最终结果,你描述的过程是其中的X1Y2Z3顺序,因为维基上的旋转取的矩阵右乘,变为矩阵左乘还要将结果转置一下。

PetWorm
论坛版主
论坛版主
  • UID125
  • 粉丝12
  • 关注4
  • 发帖数39
  • 社区居民
  • 忠实会员
5楼#
发布于:2019-04-15 21:27
winneking:我知道这种已知围绕X轴,Y轴,Z轴旋转角度的情况下,我知道旋转矩阵可以由旋转矩阵相乘获得 R=R(yaw)R(pitch)R(roll),就像你说的因为这里已知pitch=0,roll=0,所以最后R就等于你写的,我这里不确定的是平移矢量T...回到原帖
已知距离恐怕不行,需要已知在某个局部坐标系下这个t的具体矢量才行。你想如果只有距离,旋转固定,同时假设一个局部坐标系固定,在三维空间下,那么另一个局部坐标系的原点可以在一个球面上任意选取。
PetWorm
论坛版主
论坛版主
  • UID125
  • 粉丝12
  • 关注4
  • 发帖数39
  • 社区居民
  • 忠实会员
6楼#
发布于:2019-04-15 21:28
winneking:我知道这种已知围绕X轴,Y轴,Z轴旋转角度的情况下,我知道旋转矩阵可以由旋转矩阵相乘获得 R=R(yaw)R(pitch)R(roll),就像你说的因为这里已知pitch=0,roll=0,所以最后R就等于你写的,我这里不确定的是平移矢量T...回到原帖
另外你的yaw角和这个t是独(和谐)立的关系,t的投影不能用这个角度来算。
winneking
泡芙2级
泡芙2级
  • UID1575
  • 粉丝0
  • 关注0
  • 发帖数6
7楼#
发布于:2019-04-16 09:14
这是通常情况,但现在是特定的特殊运动情况下,是否可以根据原理用已知的条件直接获得转换矩阵,因为这种情况下很多条件都理想了。leven君的回帖提醒我了,有个个问题我还没弄清楚就是位姿的左乘和右乘
[winneking于2019-04-16 10:30编辑了帖子]
winneking
泡芙2级
泡芙2级
  • UID1575
  • 粉丝0
  • 关注0
  • 发帖数6
8楼#
发布于:2019-04-16 09:17
PetWorm:已知距离恐怕不行,需要已知在某个局部坐标系下这个t的具体矢量才行。你想如果只有距离,旋转固定,同时假设一个局部坐标系固定,在三维空间下,那么另一个局部坐标系的原点可以在一个球面上任意选取。回到原帖
的确在三维空间下,另一个局部坐标系的原点可以在一个球面上任意选取的,但我这里是个特殊情况,运动时两个局部坐标系在Z轴平行,XY平面共面,假设l两个局部坐标系一个是{A} ,一个是{B},其实是已知{B}的坐标原点到{A}的坐标原点的的矢量的,其实现在看来在这个特殊的运动时可视其为二维平面上的坐标变换,

图片:mmexport1555379072966.jpg





所以我才想这个平移是否可以直接可以升个维度变成T=[t1,t2,t3],最后在三维坐标系下,这两个局部坐标系的转换就成了

图片:mmexport1555379064225.jpg


刚在查位姿左乘,右乘时发现我把yaw的旋转矩阵写错了

图片:mmexport1555382069199.jpg


这个θ角逆时针为正,逆时针指由x轴正方向向y轴正方向,因为我画的z轴向下,所以图示的角度为正。
[winneking于2019-04-16 16:55编辑了帖子]
PetWorm
论坛版主
论坛版主
  • UID125
  • 粉丝12
  • 关注4
  • 发帖数39
  • 社区居民
  • 忠实会员
9楼#
发布于:2019-04-16 09:49
winneking:的确在三维空间下,另一个局部坐标系的原点可以在一个球面上任意选取的,但我这里是个特殊情况,运动时两个局部坐标系在Z轴平行,XY平面共面,假设l两个局部坐标系一个是{A} ,一个是{B},其实是已知{B}的坐标原点到{A}的坐标原点的的矢量的...回到原帖
你前面理解的都没错,可最后还是那个问题:yaw和t的投影没有关系。yaw表示B的X轴相对于A的X轴的偏角,但t投影需要的角度是AB原点连线相对于X轴的偏角。两者不等价。除非你能保证在A系下你的B系X轴始终和t矢量同向。
winneking
泡芙2级
泡芙2级
  • UID1575
  • 粉丝0
  • 关注0
  • 发帖数6
10楼#
发布于:2019-04-16 10:02
PetWorm:你前面理解的都没错,可最后还是那个问题:yaw和t的投影没有关系。yaw表示B的X轴相对于A的X轴的偏角,但t投影需要的角度是AB原点连线相对于X轴的偏角。两者不等价。除非你能保证在A系下你的B系X轴始终和t矢量同向。回到原帖
是的,我在回帖时发现了,无论是先旋转再平移,还是先平移再旋转,这个平移矢量都是后面的局部坐标原点相对于前一个局部坐标原点的,和坐标系的yaw没有关系,如果像我画的图示所示,局部坐标系{B}原点OB相对于{A}的原点OA在{A}坐标系的XA方向运动了距离L,平移矢量T=[L ,0 , 0],我上面得到的TAB可以表示局部坐标系{A}到{B}的齐次矩阵变换吗?
PetWorm
论坛版主
论坛版主
  • UID125
  • 粉丝12
  • 关注4
  • 发帖数39
  • 社区居民
  • 忠实会员
11楼#
发布于:2019-04-16 10:39
winneking:是的,我在回帖时发现了,无论是先旋转再平移,还是先平移再旋转,这个平移矢量都是后面的局部坐标原点相对于前一个局部坐标原点的,和坐标系的yaw没有关系,如果像我画的图示所示,局部坐标系{B}原点OB相对于{A}的原点OA在{A}坐标系的XA方...回到原帖
嗯,这也是一种特殊情况,此时[L,0,0]相当于是A系下的t矢量了,可以构造TAB了。
不过你写的那个TAB前面那个R可能应该取个逆/转置。不过这取决于你的theta如何定义。按照你现在图里画的这种旋转,如果theta是个正角度,那么就要取逆。
PetWorm
论坛版主
论坛版主
  • UID125
  • 粉丝12
  • 关注4
  • 发帖数39
  • 社区居民
  • 忠实会员
12楼#
发布于:2019-04-16 10:45
winneking:是的,我在回帖时发现了,无论是先旋转再平移,还是先平移再旋转,这个平移矢量都是后面的局部坐标原点相对于前一个局部坐标原点的,和坐标系的yaw没有关系,如果像我画的图示所示,局部坐标系{B}原点OB相对于{A}的原点OA在{A}坐标系的XA方...回到原帖
看到你编辑后的结果,这个对了
游客

返回顶部