news 2026/4/25 8:10:38

机器人----四元素

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器人----四元素

四元素

联合欧拉角查看

四元素

用一个实数合三个复数表示刚体的旋转运动。

四元数一般表示为:

其中 v=(x,y,z)是虚部,w是实部。

单位四元数 q=(w,v)=(w,x,y,z)。

特点

  • 紧凑(4个参数),无奇点,适合插值(球面线性插值Slerp)。

  • 计算效率高(比矩阵乘法快)。

缺点

  • 不直观,需归一化。

四元素的归一化

为什么必须归一化?

(1) 旋转的数学性质

  • 旋转操作在数学上属于单位四元数(Unit Quaternion)的范畴。

  • 只有模长为1的四元数才能保证:

    • 旋转矩阵的正交性:旋转矩阵 R 满足=I。

    • 旋转角度的正确性:非归一化四元数会导致缩放效应。

(2) 物理意义

  • 四元数的模长影响旋转的幅度

    • 模长=1:纯旋转(无缩放)。

    • 模长≠1:旋转+缩放(不符合刚体变换需求)。

-- 正交无缩放旋转。

四元素的大小

[-1,1]

欧拉角转四元素

同一姿态的数据唯一性

1. 欧拉角

  • 通常指按某种顺序(如 ZYX, XYZ 等)绕坐标轴的 3 次旋转。

  • 对于同一个姿态,欧拉角通常不唯一,主要原因:

    1. 万向锁(奇异性):在中间旋转 ±90° 时,内外轴对齐,导致无穷多组欧拉角表示同一姿态(一个自由度丢失)。

    2. 角度周期性:比如绕某个轴转 360° 的整数倍不影响姿态,可加减 360°。

    3. 不同的欧拉角顺序可以定义不同参数系统,但这里比较同一顺序时,某些情况还是多解(例如 ZYZ 欧拉角有双覆盖)。

结论:同一姿态对应多组数据(非唯一)。

2. 四元数(的二重覆盖)

  • 单位四元数 q=(w,x,y,z)表示三维旋转。

  • 对于同一旋转,q和 −q代表相同的旋转(因为四元数旋转公式 qvq−1 对 q 和 −q相同)。

  • 因此每个旋转对应两个单位四元数(相差负号)。

  • 通常我们通过限制 w≥0(或类似约束)来强制唯一性,但如果不加约束,非唯一

结论:不加约束时,有两组数据(互为相反数)

四元数1 = [w=0.0080947, x=0.70995, y=0.70319, z=-0.03767] 四元数2 = [w=-0.008095, x=-0.70995, y=-0.70319, z=0.03767]

上面的两个四元素表示同一个姿态吗?

是同一个姿态,出来符号相反,数据都相同。

使用四元素[w=0.0080947, x=0.70995, y=0.70319, z=-0.03767]转欧拉角和旋转矩阵:

使用结果的欧拉角转为四元素和欧拉角:

可见,四元素符号相反,绝对值相同。

但是同一个姿态的旋转矩阵,数据唯一。

3. 旋转矩阵

  • 3×3 正交矩阵,行列式为 +1。

  • 对于给定旋转,只有唯一一个旋转矩阵。

  • 因为旋转矩阵是旋转算子在标准正交基下的矩阵表示,映射唯一(数学上 SO(3) 的矩阵表示是单值的)。

结论:唯一一组数据

4. 轴角

  • 用旋转轴单位向量 uu 和旋转角 θθ 表示,通常 u∈R3,∥u∥=1,θ∈[0,π]u∈R3,∥u∥=1,θ∈[0,π]。

  • 对于同一个旋转:

    1. 如果限制θ∈[0,π]θ∈[0,π],则当 θ=0θ=0 时,轴任意(不唯一);当 θ∈(0,π)θ∈(0,π) 时,表示唯一(因为 uu 和 θθ 确定,且 uu 与 −u−u 配上 2π−θ2π−θ 不在 [0,π][0,π] 内)。

    2. 如果不限制θθ 的范围,则可用 (−u,−θ)(−u,−θ) 或 (u,θ+2kπ)(u,θ+2kπ) 表示相同旋转。

  • 常用约定:θ∈[0,π]θ∈[0,π],uu 为单位向量;此时除了 θ=0θ=0(零旋转)时不唯一,其它旋转唯一。

但若严格来说,零旋转这种退化情况会破坏“每个姿态都对应唯一数据”的条件。

结论:在常规约定(θ∈[0,π])下,除了零旋转外唯一;否则多组数据

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 8:07:25

告别回调地狱:用Rust async/await优雅封装UCX高性能通信库

用Rust异步编程重构UCX:从回调地狱到协程优雅 在当今高性能计算和分布式系统领域,UCX(Unified Communication X)作为统一通信抽象层的重要性与日俱增。然而,其基于C语言的回调式异步编程模型,让不少开发者望…

作者头像 李华
网站建设 2026/4/25 7:54:54

ml-intern数据集清洗工具:提高数据质量的实用技巧

ml-intern数据集清洗工具:提高数据质量的实用技巧 【免费下载链接】ml-intern 🤗 ml-intern: an open-source ML engineer that reads papers, trains models, and ships ML models 项目地址: https://gitcode.com/GitHub_Trending/ml/ml-intern …

作者头像 李华
网站建设 2026/4/25 7:54:53

机器学习工程师必备的微积分教材与实战指南

1. 为什么机器学习从业者需要微积分教材作为机器学习工程师,我书架上有三本被翻到脱页的微积分教材。这不是偶然——当你试图理解反向传播的数学本质,或是推导高斯过程的核心公式时,会发现微积分才是真正的"内功心法"。市面上大多数…

作者头像 李华
网站建设 2026/4/25 7:54:06

KCL实战教程:5个真实场景构建高效配置系统

KCL实战教程:5个真实场景构建高效配置系统 【免费下载链接】kcl KCL Programming Language Core and API (CNCF Sandbox Project). https://kcl-lang.io 项目地址: https://gitcode.com/gh_mirrors/kc/kcl KCL(KCL Programming Language&#xff…

作者头像 李华
网站建设 2026/4/25 7:53:44

spartan.ng与shadcn/ui对比分析:为什么选择Angular版本?

spartan.ng与shadcn/ui对比分析:为什么选择Angular版本? 【免费下载链接】spartan Cutting-edge tools powering Angular full-stack development. 项目地址: https://gitcode.com/gh_mirrors/sp/spartan spartan.ng是一个为Angular全栈开发提供支…

作者头像 李华