当前位置: 首页 > news >正文

笔记之旋转矩阵Rotation Matrix《机器人学-林沛群》

摘要

image


名词解释

frame 坐标系
orthogonal 正交


功能一

描述一个frame{B}相对于另一个frame{A}的姿态

定义

\[{^A_B}R =\begin{bmatrix} &| &| &|\\ &{^A}{\hat X_B} &{^A}{\hat Y_B} &{^A}{\hat Z_B}\\ &| &| &|\\ \end{bmatrix} \]

特性

  • \({^A_B}R\)\({^B_A}R\),两者互为转置。
    证明:

\[\begin{align} {^A_B}R &=\begin{bmatrix} &| &| &|\\ &{^A}{\hat X_B} &{^A}{\hat Y_B} &{^A}{\hat Z_B}\\ &| &| &|\\ \end{bmatrix}\\&=\begin{bmatrix} {\hat X_B}\cdot{\hat X_A} &{\hat Y_B}\cdot{\hat X_A} &{\hat Z_B}\cdot{\hat X_A} \\ {\hat X_B}\cdot{\hat Y_A} &{\hat Y_B}\cdot{\hat Y_A} &{\hat Z_B}\cdot{\hat Y_A} \\ {\hat X_B}\cdot{\hat Z_A} &{\hat Y_B}\cdot{\hat Z_A} &{\hat Z_B}\cdot{\hat Z_A} \\ \end{bmatrix}\\&=\begin{bmatrix}- {^B}{\hat X_A}^T - \\- {^B}{\hat Y_A}^T - \\- {^B}{\hat Z_A}^T - \end{bmatrix}\\&=\begin{bmatrix} | &| &|\\ {^B}{\hat X_A} &{^B}{\hat Y_A} &{^B}{\hat Z_A}\\ | &| &|\\ \end{bmatrix}^T\\&={^B_A}R^T \end{align} \]

  • \({^A_B}R\)的逆矩阵就是\({^B_A}R\),说明\({^A_B}R\)是3x3 orthogonal matrix,逆矩阵就是原矩阵的转置(隐含的一个结果就是一定有逆矩阵,因为任意矩阵都有矩阵的转置)
    证明:

\[\begin{align} {^A_B}R^T {^A_B}R &=\begin{bmatrix}- {^A}{\hat X_B}^T - \\- {^A}{\hat Y_B}^T - \\- {^A}{\hat Z_B}^T - \end{bmatrix} \begin{bmatrix} | &| &|\\ {^A}{\hat X_B} &{^A}{\hat Y_B} &{^A}{\hat Z_B}\\ | &| &| \end{bmatrix}\\ &= \begin{bmatrix} 1 &0 &0\\ 0 &1 &0\\ 0 &0 &1 \end{bmatrix}\\ &=I^3 \end{align} \]

\[{^A_B}R^{-1}={^A_B}R^T \]

  • 每个column都是一个方向向量,隐含的条件为三个column都是单位向量(每个column的三个值的平方和开根号都是1),并且三个column两两互相垂直(两两的内积都是0)。所以,每个column都是单位向量,为3个条件;每个column两两垂直,为3个条件。即,这个矩阵有9个数字,却已经包含6个条件,只剩下三个参数(自由度)可以自由选择(与空间中的刚体具有三个自由度是符合的)。
    callback:平面上的刚体只有两个自由度,空间中的刚体有三个自由度。

功能二

将向量P由一个frame{A}的表达转换到另一个和frame{A}仅有相对转动的frame{B}来表达

定义

\[{^A}P={^A_B}R {^B}P \]

推导

\[{^A}P={^A}P_x \hat X_A+{^A}P_y \hat Y_A+{^A}P_z \hat Z_A \]

\[{^B}P={^B}P_x \hat X_B+{^B}P_y \hat Y_B+{^B}P_z \hat Z_B \]

\[{^A}P_x={^B}P \cdot \hat X_A =\hat X_A \hat X_B {^B}P_x+\hat X_A \hat Y_B {^B}P_y+\hat X_A \hat Z_B {^B}P_z \]

\[{^A}P_x=\hat X_A \hat X_B {^B}P_x+\hat X_A \hat Y_B {^B}P_y+\hat X_A \hat Z_B {^B}P_z \]

\[{^A}P_y=\hat Y_A \hat X_B {^B}P_x+\hat Y_A \hat Y_B {^B}P_y+\hat Y_A \hat Z_B {^B}P_z \]

\[{^A}P_z=\hat Z_A \hat X_B {^B}P_x+\hat Z_A \hat Y_B {^B}P_y+\hat Z_A \hat Z_B {^B}P_z \]

\[{^A} \begin{bmatrix} P_x\\P_y\\P_z \end{bmatrix}= \begin{bmatrix} \hat X_A \hat X_B &\hat X_A \hat Y_B &\hat X_A \hat Z_B \\ \hat Y_A \hat X_B &\hat Y_A \hat Y_B &\hat Y_A \hat Z_B \\ \hat Z_A \hat X_B &\hat Z_A \hat Y_B &\hat Z_A \hat Z_B \\ \end{bmatrix}{^B} \begin{bmatrix} P_x\\P_y\\P_z \end{bmatrix} \]

\[{^A}P ={^A_B}R {^B}P\]


功能三

将向量P在一个frame中进行转动,成为向量P'
(约定:从旋转轴的上方往下看,逆时针旋转为正)

定义

\[{^A}P'=R(\theta)^A P \]

公式

imageimage
image
旋转轴和旋转角度定下来,那么旋转矩阵里的9个数字也定下来了。

http://www.jsqmd.com/news/446960/

相关文章:

  • [豪の算法奇妙冒险] 代码随想录算法训练营第五十二天 | Carl101-孤岛的总面积、Carl102-沉没孤岛、Carl103-水流问题、Carl104-建造最大岛屿
  • 2026年北京离婚律师深度测评:海淀/朝阳/西城TOP3律所的选型逻辑与实战能力拆解 - 小白条111
  • django-analytical高级用法:自定义用户追踪与事件分析实战教程
  • 公众号模板去哪找?2026年3个最佳公众号排版软件推荐 - 鹅鹅鹅ee
  • 2026公众号SVG动效工具推荐:5款专业工具助你排版升级 - 鹅鹅鹅ee
  • i.1.1 记录《现代软件工程讲义-构建之法》阅读与思考过程
  • OpenClaw数据库操作技能
  • 概率机器学习模型评估终极指南:pyprobml项目中的10个最佳实践
  • 重磅!腾讯 QQ 官方接入 OpenClaw“小龙虾”:一键创建机器人,1分钟极速部署!
  • win库社区贡献指南:如何参与项目开发与改进
  • 【机器学习算法】决策树和随机森林在计算机视觉中的应用
  • 终极Nano Stores测试指南:从零开始构建可靠状态管理测试策略
  • REAL-Video-Enhancer核心功能解析:从帧率插值到超分辨率的完整指南
  • 【Spring Cloud】注册中心-Nacos - 指南
  • Vuelidate终极指南:10分钟轻松掌握Vue.js表单验证技巧
  • 如何使用cpp_redis:从安装到实战的快速上手指南
  • 终极指南:如何用SerpentAI让一个AI学会玩多个不同游戏
  • ALVR客户端架构深度解析:OpenXR集成与跨平台兼容性设计终极指南
  • Bad Wolf在Emacs中的应用:badwolf-theme.el使用指南
  • USWDS CSS架构揭秘:BEM命名与模块化设计的终极指南
  • 油门和刹车这对冤家在定速巡航系统里终于被PID调教得能和平共处了。咱们今天就在Simulink里搭个精简版模型,看看怎么让车速像被磁铁吸住似的稳住目标值
  • 从0到1理解React Dev Inspector架构:插件系统与工作流程解析
  • 终极指南:jrnl命令行日记工具如何实现多人协作共享
  • Prettier插件终极指南:如何自动排序Tailwind CSS类名
  • 俄罗斯方块游戏的逆向分析与改进
  • 在 SAP HANA 外连接里写跨表过滤条件:一次看懂子查询物化的性能陷阱与改写套路
  • VHostScan模糊逻辑揭秘:如何在动态页面中精准识别虚拟主机
  • Simple Java Mail API参考:从EmailBuilder到EmailConverter全解析
  • XQuickEnergy配置教程:3分钟打造个性化蚂蚁森林自动助手
  • Corne键盘QMK固件完全指南:从新手到高级玩家的终极定制教程