关于矩阵的自由度DOF的理解

这篇具有很好参考价值的文章主要介绍了关于矩阵的自由度DOF的理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 首先什么是自由度

自由度,英语名Degrees of freedom,简写DOF。在学习SLAM的过程中多次看到自由度的概念,网上看有关于自由度的解释都过于抽象难以理解。先给出自由度比较好理解的定义

  1. 自由度是n个变量在某个(些)约束下,能够自由变化的最多变量个数m为该约束下的自由度
  2. 自由度是用约束式求解矩阵所需要的最少个数。

记住这句话,再去理解各种矩阵自由度计算的例子。


先看看维基百科的解释:数学上,自由度是一个随机向量的维度数,也就是一个向量能被完整描述所需的最少单位向量数。举例来说,从电脑屏幕到厨房的位移能够用三维向量 a i ^ + b j ^ + c k ^ a\hat{i} + b\hat{j} + c\hat{k} ai^+bj^+ck^来描述,因此这个位移向量的自由度是3。自由度也通常与这些向量的坐标平方和,以及卡方分布中的参数有所关联。

这样的语言看着有些抽象。那为什么不用 a o 1 o 2 ⟶ a\overset{\longrightarrow}{o_1o_2} ao1o2(假设 o 1 o 2 ⟶ \overset{\longrightarrow}{o_1o_2} o1o2为电脑屏幕到厨房方向的单位向量)来表示呢? 在这个例子里,位移是三维空间的位移,在三维空间位移这个约束下,最少需要三个方向向量(非线性相关的一组基)的多项式和才能表示三维空间中所有的位移,而电脑屏幕到厨房是特例,只用 o 1 o 2 ⟶ \overset{\longrightarrow}{o_1o_2} o1o2不能表示三维空间中的其他位移

再看例子:

  • 若存在2个变量a和b,而a+b=6,那么他的自由度为1。因为其实只有a才能真正的自由变化,b会被a选值的不同所限制。在这个例子中a+b=6就是约束,可以自由变化的变量最多个数为1。所以自由度为1;
  • 对于一个二维旋转矩阵, M r o t 2 d = [ c o s θ − s i n θ s i n θ c o s θ ] M_{rot2d} = \begin{bmatrix}cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} Mrot2d=[cosθsinθsinθcosθ],虽然这个 2 × 2 2\times 2 2×2的矩阵有四个变量,但是一旦其中的一个值确定了,其他三个值就确定了。比如说当知道 ( 0 , 0 ) (0,0) (0,0)位置下的 c o s θ = 1 cos\theta=1 cosθ=1,那么 s i n θ 肯定 = 0 sin\theta肯定=0 sinθ肯定=0,不会等于其他数字。所以在二维旋转矩阵这个约束下,可以自由变化的最多变量个数为1,矩阵自由度为1。用几何的方式来思考也很好理解,在一个二维平面下的旋转,只有一个变量就是旋转角度 θ \theta θ值。

关键词:约束、自由变化

2. 什么是矩阵的自由度

可以依据上文对自由度的解释应用到矩阵中。比如一个3*3的矩阵,具有9个元素,那么它的自由度最高就是9。但是9个元素可能由几个变量通过一定方式组合而成,比如旋转矩阵,只有 α , β , γ \alpha,\beta,\gamma α,β,γ三个旋转变量,通过三角函数组成了旋转矩阵,自由度只有3而不是9。再比如本质矩阵自由度为5、基础矩阵自由度为7、单应矩阵自由度为8

另外,以下是一个Stack Overflow上的回答,以下是翻译,也可以增加对矩阵自由度的理解:(英文原文)

有几种方式来思考矩阵的自由度:

  1. 考虑一个m*n的矩阵。这个矩阵有mn个元素/变量。我们可以改变mn个数值来构造处mn个互相不同的矩阵,所以它有mn个自由度。
  2. 如果我们有一个上三角矩阵,维度是m*m,自由度等于多少?我们知道在这个矩阵里很多值都是0,实际上只有 m + ( m − 1 ) + . . . + 2 + 1 m + (m-1)+...+2+1 m+(m1)+...+2+1个非0元素/变量,所以这个值就是上三角矩阵的自由度。
  3. 如果我们有一个2 * 2的旋转矩阵,自由度等于多少?这对矩阵中可能的值施加了巨大的限制。确实,一旦其中一个值确定了之后,其他的所有值都被确定了。这个旋转矩阵只有一个自由度。从几何的角度很容易看出来:一个2 * 2的旋转矩阵只能旋转一个角度,所以1就是它的自由度。
  4. 如果我们“equivalence classes”即“等价类”呢?如果我们知道任意矩阵的所有缩放都是相等的呢?我们还剩多少个自由度?对于任意矩阵,当位置 ( 1 , 1 ) (1,1) (1,1)上的元素非0,我们就可以对矩阵的所有元素除以这个元素,这时 ( 1 , 1 ) (1,1) (1,1)上的元素就等于1。现在考虑有两个矩阵 A A A B = 2 A B=2A B=2A,当我们缩放这两个矩阵使得它们的第一个元素为1,我们会发现这两个矩阵是等价的。因此,我们消除了一个自由度。这就是单应(矩阵)的例子。所以,对于一个 3 × 3 3\times 3 3×3的单应矩阵,只有8个自由度。这些自由度也可以用几何的方式来解释。

最后再回到我对自由度的理解:

自由度是n个变量在某个(些)约束下,能够自由变化的最多变量个数m为该约束下的自由度文章来源地址https://www.toymoban.com/news/detail-415410.html

到了这里,关于关于矩阵的自由度DOF的理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 平面三自由度机器人动力学建模与仿真

    网上二自由度机器臂动力学分析有很多,三自由度比较少,碰巧本科课设需要完成相关项目,分享一些经验供参考。 实际的三连杆机器臂的结构相对较复杂,很难进行精确地描述,因此,在本文中利用简化的数学模型进行讨论。简化条件如下: 假设机器臂是刚性结构,不考

    2024年02月04日
    浏览(40)
  • matlab 汽车动力学操控稳定性三自由度

    1、内容简介 略 34可以交流、咨询、答疑 2、内容说明 •1、汽车车速不变 。 •2、不考虑切向力对轮胎特性的影响。  •3、侧向加速度不大于0.3-0.4g 。 •4、前轮转角不大,不考虑前轮左右的区别。  •5、不考虑非悬架质量的倾角。 •6、不考虑空气动力作用。 •7、侧倾

    2024年01月18日
    浏览(31)
  • 基于STM32的自由度云台运动姿态控制系统

    目录 设计报告撰写内容 2 一、设计要求 2 1、掌握 MEMS 传感器 MPU6050 的应用方法; 2 3、二自由度云台运动姿态控制系统设计。 2 二、设计方案(要求给出详细的设计思路及其必要的论证) 2 1、硬件设计 3 1)电源系统 3 2)数字控制器 4 3)角度测量传感器 4 4)执行机构 5 5)系

    2024年02月15日
    浏览(34)
  • UnityVR--机械臂场景6-三自由度逆向解算1

    本文我们要做的是:给机器人一个末端坐标,使机器人自动调整姿态。为了使问题简单易懂,我们先以2自由度(XY平面中)的机器人为例,如下图为2自由度机器人的连杆机构模型。  其中P为末端点即手爪的位置,坐标为(x,y);L1、L2分别为两个手臂的长度,θ1、θ2分别为两

    2024年02月06日
    浏览(36)
  • Simulink搭建串联二自由度机器人并求解工作空间

    目录 引言 1.建立机器人模型 1.1机器人模型 1.2搭建机器人模型 1.3创建刚体树 1.4建立机器人模型 1.5正运动学  结论 使用Simulink搭建机器人并求解各工作空间的关系。首先需要借助simscape工具箱对机器人进行建模,之后在其工作空间驱动该机器人,借助算法来控制机器人旋转角

    2024年01月20日
    浏览(39)
  • 基于PID的树莓派控制二自由度舵机人脸追踪云台设计

    一、舵机控制概述 脉冲宽度与舵机转角: 在脉冲信号频率50Hz的条件下输入的脉冲信号宽度和舵机转角的对应关系图以如图1.所示,该转角的计算公式如下。树莓派端通过占空比信号对舵机进行角度控制,将该占空比信号通过树莓派端传输给PCA9685芯片来控制舵机,实现追踪人

    2024年02月13日
    浏览(26)
  • 168基于matlab的六自由度并联摇摆台的反解控制算法

    基于matlab的六自由度并联摇摆台的反解控制算法,stewart平台,配有GUI界面,可以自定义角度,杆长等参数。设定动平台位姿即能得到电机参数。程序已调通,可直接运行。 168 六自由度并联摇摆台 反解控制算法 (xiaohongshu.com)

    2024年02月21日
    浏览(38)
  • 基于LabVIEW上位机以PWM控制16路舵机六自由度机械臂运动

    目录 一、功能设计 二、硬件分析 2.1 所需材料 2.2 串口通信协议 三、程序设计 四、VI实现结果 4.1 子vi字符串换算功能 4.2 软硬件联调验证 五、分析与总结           学校对于LabVIEW的学习进行的一次课程设计,设计内容主要是通过LabVIEW的VISA串口通信部分做出相对应的课题

    2024年02月04日
    浏览(45)
  • 六自由度机器人(机械臂)运动学建模及运动规划系列(一)——简介

    毕业设计做了六轴机器人相关的课题,做完之后学到很多,在这里分享一下。本篇首先对六轴机器人及其研究内容进行简单的介绍。 六轴机器人中的六轴指个六自由度,由关节和连杆组成。常见的六轴机器人为 串联型旋转关节机器人 。这里以一款川崎机器人为例,展示一下

    2024年02月02日
    浏览(34)
  • 【MATLAB】五自由度机械臂运动学逆解(数值法——牛顿迭代)实现

    本篇为五轴机械臂的数值法实现,同时,本方法可应用于六轴、七轴手臂的逆解。 数值法的好处:给定起始与目标位姿,能够自动迭代出最优解,无多解问题 关于 解析法 的实现,可以看我之前的博客:https://blog.csdn.net/qq_43557907/article/details/122707124 本篇文章是记录我个人在学

    2024年02月12日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包