从旋转矩阵到齐次变换:机器人空间运动的数学语言
📅 2026/7/16 14:28:55
👁️ 次浏览
1. 刚体位姿描述从坐标系到旋转矩阵想象你桌上放着一部手机。要精确描述它的摆放状态我们需要两个关键信息位置放在桌子的哪个位置和姿态是横放、竖放还是斜着放。这就是机器人学中的位姿描述问题。最常用的方法是在手机运动刚体上建立一个坐标系{B}在桌子固定参考系上建立坐标系{A}。通过描述{B}相对于{A}的状态就能完整表达手机的位姿位置描述用坐标系{B}的原点在{A}中的坐标表示比如(2,3,0)表示手机中心距离桌子参考点向右2单位、向前3单位。姿态描述用旋转矩阵表示。这个3×3矩阵的每一列都是{B}的X/Y/Z轴在{A}中的方向向量。例如手机竖放时它的Y轴可能指向桌子的Z轴方向。绕单轴旋转的矩阵特别简单# 绕X轴旋转θ角的旋转矩阵 Rx [[1, 0, 0], [0, cosθ, -sinθ], [0, sinθ, cosθ]]这种矩阵有个重要特性正交性。意味着它的逆矩阵等于转置矩阵这在计算坐标变换时非常方便。2. 坐标变换当位置和姿态同时变化实际场景中物体往往既有平移又有旋转。假设手机先旋转了一定角度又被平移到了桌面另一个位置这时如何计算手机表面某点在桌面坐标系中的坐标2.1 分步处理法传统方法是分两步计算旋转用旋转矩阵处理方向变化P_{rotated} R \cdot P_{local}平移加上位置偏移量P_{world} P_{rotated} P但这种方法在连续变换时会变得繁琐。比如机械臂有多个关节时每增加一个关节就需要多一次旋转和平移运算。2.2 齐次坐标的魔法数学家们想出了个聪明办法齐次坐标。通过增加一个维度把旋转和平移合并成一个4×4矩阵T [[r11, r12, r13, px], [r21, r22, r23, py], [r31, r32, r33, pz], [0, 0, 0, 1]]其中左上角3×3是旋转矩阵右上角3×1是平移向量。这样复杂的变换可以用一次矩阵乘法完成P_{world} T \cdot P_{local}实测案例假设手机旋转90度后平移到(5,4,0)屏幕上某点局部坐标(3,2,0)的世界坐标计算import numpy as np T np.array([[0,-1,0,5], [1,0,0,4], [0,0,1,0], [0,0,0,1]]) P_local np.array([3,2,0,1]) # 齐次坐标 P_world T P_local # 输出[3,7,0,1]3. 齐次变换的进阶应用3.1 运动合成的两种方式齐次变换矩阵相乘时顺序不同会导致完全不同的物理意义相对固定坐标系新运动是相对于原始参考系的。这时要从右往左乘矩阵就像穿衣服时先内衣再外套。T_{total} T_{move2} \cdot T_{move1}相对运动坐标系新运动是相对于物体当前位姿的。这时要从左往右乘矩阵就像先戴眼镜再调整眼镜腿。T_{total} T_{move1} \cdot T_{move2}3.2 逆变换换个视角看问题已知{B}相对于{A}的变换矩阵如何求{A}相对于{B}的变换不需要复杂求逆利用旋转矩阵的正交性可以直接构造T_B^A \begin{bmatrix} R_A^B -R_A^B \cdot P \\ 0 1 \end{bmatrix}这在机器人视觉中特别有用。比如已知相机相对于机械臂的位姿就能快速计算机械臂在相机视角中的位置。4. 欧拉角直观但危险的姿态描述虽然旋转矩阵很强大但人类更习惯用角度思考。欧拉角用三个绕轴旋转的角度来描述姿态比如无人机控制中的偏航(Yaw)左右转头俯仰(Pitch)上下点头滚转(Roll)左右歪头# ZYX欧拉角转旋转矩阵 def euler_to_matrix(yaw, pitch, roll): Rz [[cos(yaw), -sin(yaw), 0], [sin(yaw), cos(yaw), 0], [0, 0, 1]] Ry [[cos(pitch), 0, sin(pitch)], [0, 1, 0], [-sin(pitch), 0, cos(pitch)]] Rx [[1, 0, 0], [0, cos(roll), -sin(roll)], [0, sin(roll), cos(roll)]] return Rz Ry Rx但欧拉角有个致命缺陷——万向节死锁。当俯仰角为±90度时偏航和滚转会失去独立性。这就是为什么航天器姿态控制要慎用欧拉角。5. 旋转变换通式绕任意轴旋转现实中的旋转往往不限于坐标轴。通过罗德里格斯公式可以建立绕空间任意单位向量k旋转θ角的通用旋转矩阵R I sinθ[k]_× (1-cosθ)[k]_×^2其中[k]_×是向量k的叉积矩阵。这个公式在机器人轨迹规划中非常实用比如让机械臂末端沿特定轴旋转。我在实际项目中就遇到过这样的情况需要让机械臂绕工具坐标系的一个斜轴旋转15度。直接用这个公式比分解成欧拉角要稳定可靠得多。
更多请点击:
https://codechina.net
第一章:AI提示词失效的底层归因与Runway视频生成稳定性瓶颈诊断 AI提示词失效并非表层语义模糊所致,而是源于多模态对齐机制在训练数据分布偏移下的隐式坍塌。当提示词中关键视觉先验(如“胶片…
📅 2026/7/16 14:28:55
XGP存档提取终极指南:3步打破平台壁垒,轻松迁移游戏进度 【免费下载链接】XGP-save-extractor Python script to extract savefiles out of Xbox Game Pass for PC games 项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractor
还在为…
📅 2026/7/16 14:28:55
Gemma-4-e4b-it-mxfp8扩展开发指南:如何添加自定义模态支持 【免费下载链接】gemma-4-e4b-it-mxfp8 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/gemma-4-e4b-it-mxfp8
Gemma-4-e4b-it-mxfp8是一个基于Apple Silicon优化的多模态大语言模型…
📅 2026/7/16 14:28:55
JD-GUI深度解析:3个技术视角剖析Java字节码反编译工具的架构哲学 【免费下载链接】jd-gui A standalone Java Decompiler GUI 项目地址: https://gitcode.com/gh_mirrors/jd/jd-gui
JD-GUI作为一款独立的Java字节码反编译图形工具,其技术架构体现…
📅 2026/7/16 15:31:48
CosMx这类空间转录组技术可以在组织原位解析大量RNA分子的空间分布,对细胞分型、状态识别和细胞间通讯分析非常有价值。但在弥漫性大B细胞淋巴瘤(DLBCL)这样的免疫微环境研究中,研究者往往还会继续追问:转录层提示的细…
📅 2026/7/16 15:31:48
1. WBS:项目范围的导航地图 第一次接手软件项目时,我面对客户发来的20页需求文档完全无从下手。直到导师扔给我一份Excel表格:"把每行需求拆解成你能想象的最小操作单元,这就是你的WBS起点。"这个建议让我恍然大悟—— …
📅 2026/7/16 15:31:48
1. AXI-Stream数据流中的"哨兵"角色在数字电路设计中,AXI-Stream协议就像一条高速公路,数据包如同车辆在这条路上飞驰。但这条高速路有个特点:它不设固定车道,车辆(数据)可以连续行驶,…
📅 2026/7/16 15:31:48
1. 传统延时消抖的痛点与局限 相信很多刚开始玩51单片机的朋友都写过这样的按键检测代码:检测到按键按下后先延时10ms,再判断按键状态。这种方法简单直接,但实际项目中很快就会暴露出严重问题。我当年做第一个嵌入式项目时,就因为…
📅 2026/7/16 15:31:48
1. 项目概述:这不是“破解”,而是对Typora生态变化的务实应对 Typora 1.13.2 这个版本号,最近在技术写作圈、学生笔记党、程序员文档组里反复刷屏,关键词“免激活序列号”“永久免费使用版”“安装包下载”几乎成了搜索热词。但必…
📅 2026/7/16 15:30:48
1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…
📅 2026/7/16 0:00:02
前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…
📅 2026/7/16 0:00:02
1. 项目概述与核心价值 在高速数字系统、通信设备乃至精密测量仪器中,一个稳定、纯净且可精确调控的时钟信号,往往是整个系统稳定运行的“心跳”。无论是确保数据在光纤中无误传输,还是让ADC/DAC芯片精准采样,亦或是让多块FPGA板卡…
📅 2026/7/16 0:00:02
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/15 22:51:06
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/15 19:03:10
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/16 14:13:12
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/15 22:46:06
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/16 4:59:31
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/15 22:51:03