机器人--欧拉角--旋转矩阵

基础概念

欧拉角的内旋和外旋

旋转矩阵和变换矩阵

欧拉角---->旋转矩阵

转换公式推导

旋转矩阵就是交接确认绕各个轴旋转所得的旋转矩阵相乘之后得到的 的一个3*3的矩阵而已。

我们要推导的案例是 ZYX欧拉角(内旋) 的转换公式:

  • 旋转顺序:先绕Z轴转 rz得到旋转矩阵R_z,再绕Y轴转 ry旋转矩阵R_y,最后绕X轴转 rx旋转矩阵R_x

  • 对应旋转矩阵:R = R_z(rz) * R_y(ry) * R_x(rx)

  • 已知旋转矩阵元素 r11, r12, ..., r33,求 rx, ry, rz

基本旋转矩阵:

复制代码
# 绕X轴旋转rx
R_x(rx) = [1,     0,       0;
           0, cos(rx), -sin(rx);
           0, sin(rx),  cos(rx)]

# 绕Y轴旋转ry  
R_y(ry) = [cos(ry), 0, sin(ry);
              0,    1,    0;
          -sin(ry), 0, cos(ry)]

# 绕Z轴旋转rz
R_z(rz) = [cos(rz), -sin(rz), 0;
           sin(rz),  cos(rz), 0;
               0,       0,    1]

组合旋转矩阵:

R = R_z(rz) * R_y(ry) * R_x(rx)

让我们一步步计算这个乘积。

得到完整的旋转矩阵:

复制代码
R = [r11, r12, r13;
     r21, r22, r23;
     r31, r32, r33]
     
其中:
r11 = cos(rz)*cos(ry)
r12 = cos(rz)*sin(ry)*sin(rx) - sin(rz)*cos(rx)
r13 = cos(rz)*sin(ry)*cos(rx) + sin(rz)*sin(rx)

r21 = sin(rz)*cos(ry)
r22 = sin(rz)*sin(ry)*sin(rx) + cos(rz)*cos(rx)
r23 = sin(rz)*sin(ry)*cos(rx) - cos(rz)*sin(rx)

r31 = -sin(ry)
r32 = cos(ry)*sin(rx)
r33 = cos(ry)*cos(rx)

旋转矩阵--->欧拉角

转换公式推导

旋转矩阵就是交接确认绕各个轴旋转所得的旋转矩阵相乘之后得到的 的一个3*3的矩阵而已,所以得到这个矩阵之后,只需要逆运算就可以算的三个欧拉角。

反向求解欧拉角:

现在我们从矩阵元素反向求解 rx, ry, rz

1. 求解 ry

r31 = -sin(ry) 得:

复制代码
sin(ry) = -r31

但是仅凭这个无法唯一确定 ry,因为 sin(ry) = -r31 有两个解(ry 和 π-ry)。

我们需要更多信息。观察 r11r21

复制代码
r11 = cos(rz)*cos(ry)
r21 = sin(rz)*cos(ry)

于是:

复制代码
r11² + r21² = cos²(rz)*cos²(ry) + sin²(rz)*cos²(ry)
           = cos²(ry)*(cos²(rz) + sin²(rz))
           = cos²(ry)

所以:

复制代码
cos(ry) = ±√(r11² + r21²)

结合 sin(ry) = -r31,我们可以用 atan2 函数:

复制代码
ry = atan2(-r31, √(r11² + r21²))

这里用 atan2(y, x) 同时考虑了正弦和余弦,给出了正确的象限。

2. 求解 rz

相关推荐
ZPC82103 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82103 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
2501_946205523 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
xybDIY3 天前
Kiro Workshop - 使用 AI 代理聊天机器人构建电子商务网站
人工智能·机器人
撩妹小狗3 天前
科赫雪花--Python--数学原理--turtle绘图
python·线性代数·几何学
宝贝儿好3 天前
【强化学习】第十章:连续动作空间强化学习:随机高斯策略、DPG算法
人工智能·python·深度学习·算法·机器人
大江东去浪淘尽千古风流人物4 天前
【SLAM】GenRobot / IO-AI / Scale / Appen 能力对比表(机器人数据与闭环视角)
人工智能·机器学习·机器人·大模型·概率论·端侧部署·巨身智能
梦想的旅途24 天前
企业微信API:外部群自动化推送实战指南
大数据·机器人·自动化·企业微信·rpa
鲁邦通物联网4 天前
架构设计:基于边缘网关构建异构电梯协议的统一机器人梯控中间件
机器人·机器人梯控·agv梯控·机器人乘梯·机器人自主乘梯·agv机器人梯控
RobotNow4 天前
优秀的机器人厂商集中平台哪家创新力强
机器人