Python(robot模块):转换hom。变换(旋转)矩阵与Euler或RPY角

2024-06-08 23:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Python中的robotics工具箱(c.q.robot模块)中使用,我完全搞不清如何解释下面的转换结果(我以前做过这样的事情总是可以解决它们……)。在

简单的phi=PI/10绕x轴旋转可产生以下(3x3)旋转矩阵:

R = 
 [ 1.          0.          0.        ]
 [ 0.          0.99609879 -0.08824514]   
 [-0.          0.08824514  0.99609879]]

(其中0.996..=cos(φ)和0.0882..=sin(φ))

对应(4x4)齐次变换矩阵:

^{pr2}$

将T转换为角度表示会产生以下结果:

RPY(横摇、俯仰、偏航)角(绕z、y和x轴,分别。。。我想):

print robot.tr2rpy(T)

[[ 0.          0.          0.08836007]]

问题:x轴旋转怎么可能是最后一个元素(而不是第一个元素)。。。。?在

进一步:

欧拉角(围绕x、y和z轴,分别。。。我想):

print robot.tr2eul(T)

[[-1.57079633  0.08836007  1.57079633]]

(=[[-PI/4,sin(φ),PI/4]]))

问题:我的解释(围绕x,y,z轴顺序旋转)告诉我结果是完全错误的。。。?在

我错过了什么?谢谢。在

——亨克


Tags: 模块元素pirobot工具箱矩阵sincos
1条回答
网友
1楼 · 发布于 2024-06-08 23:29:54

已解决:

对于连续的角度,a[0],a[1],a[2]

1)对于欧拉角,这些是围绕Z-Y-Z轴的连续旋转

2)对于RPY角,这些是连续的Y(aw)-p(itch)-R(roll)旋转(即围绕Z-Y-X轴)。在

相关问题 更多 >