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

基础概念

欧拉角的内旋和外旋

旋转矩阵和变换矩阵

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

转换公式推导

旋转矩阵就是交接确认绕各个轴旋转所得的旋转矩阵相乘之后得到的 的一个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

相关推荐
鲁邦通物联网1 小时前
技术实战:基于电梯梯控产品融合算法构建高可用机器人梯控中间件
机器人·机器人梯控·agv梯控·机器人乘梯·机器人自主乘梯·agv机器人梯控
深鱼~2 小时前
大模型底层算力支撑:ops-math在矩阵乘法上的优化
人工智能·线性代数·矩阵·cann
Zfox_2 小时前
CANN PyPTO 编程范式深度解析:并行张量与 Tile 分块操作的架构原理、内存控制与流水线调度机制
线性代数·矩阵·架构
TechWJ2 小时前
catlass深度解析:Ascend平台的高性能矩阵运算模板库
线性代数·矩阵·ascend·cann·catlass
广州赛远14 小时前
IRB2400-16冲压机器人防护服清理污渍_避免误区与正确方法
机器人
qidun21016 小时前
橙色机器人防护服防护作用有哪些-全面解析工业机器人防护服的核心价值
机器人
犀思云17 小时前
企业总部网络全球化扩张:利用FusionWAN NaaS 破解“网络成本瓶颈”
网络·人工智能·机器人·智能仓储·专线
deep_drink18 小时前
【基础知识一】线性代数的核心:从矩阵变换到 SVD 终极奥义
线性代数·机器学习·矩阵
CelestialYuxin19 小时前
【微论文】机器人第一性原理:技术演进的本构逻辑与实现路径
深度学习·机器人·硬件架构
Deepoch19 小时前
自然交互+精准感知!Deepoc具身模型开发板让清洁机器人告别“盲扫”
人工智能·科技·机器人·半导体·清洁机器人·具身模型·deepoc