详解万向锁

2023-10-27

最近在看高翔老师的slam十四讲时,对万向锁这个概念不是很清晰,于是从网上查了不少博客文档,最终明白了万向锁这个概念。

在此记录一下。

解释万向锁之前首先明白一下什么是欧拉角。

什么是欧拉角?

    用一句话说,欧拉角就是物体绕坐标系三个坐标轴(x,y,z轴)的旋转角度。

   1,静态:即绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止,所以称为静态。

   2,动态:即绕物体坐标系三个轴的旋转,由于物体旋转过程中坐标轴随着物体做相同的转动,所以称为动态。

物体的任何一种旋转都可分解为分别绕三个轴的旋转,但分解方式不唯一。记住这句话,下面要用到。

假设飞行棋采用的是ZYX的顺序进行旋转,绕X轴的旋转,对应的是飞行器的滚转运动(roll):

绕y轴运动做俯仰运动(pitch):

绕z轴做偏航运动(yaw):

 用自己的手机做一个试验,你把手机屏幕朝上(假设原始状态为状态一),手机的长边为X轴,短边为Y轴,Z轴垂直屏幕向下,那你先绕Z轴旋转一下手机,假设旋转30度,然后再把手机绕Y轴旋转90度,也就是把手机短边接触桌面竖立起来,这时候你再绕手机的长边(即原x轴)旋转45度(此时按照YZX轴的顺序旋转完毕,手机状态为状态二)。你会发现此时(状态二)的手机长边(x轴)在(状态一)Z轴方向重合,你现在在x轴上旋转就等价于(状态一)情况下在Z轴的多旋转。

重点来了,虽然你第三次旋转的时候绕x轴(此时的x轴还是原来状态一的x轴)旋转了45度,但是此时x轴(状态一)和z轴(状态一)是重合的。意思就是你第一次绕z轴旋转30度和第三次绕x轴旋转45度,都是在竖直方向上进行的旋转,整个旋转表示系统被限制在只能绕竖直轴旋转。丢失了一个表示维度。这种角度为±90°的第二次旋转使得第一次和第三次旋转的旋转轴相同的现象,称作万向锁。

参考:

https://baike.baidu.com/item/万向锁/15817326?fr=aladdin

万向锁与欧拉角 - 知乎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详解万向锁 的相关文章

  • 点列表的 3D 轮廓(凹壳)

    我有一个 C 中的 Vector3 点列表 我需要计算这些点的凹轮廓 确实有很多参考资料 特别是对于 凸 分辨率 由于格雷厄姆算法 我已经成功实现了 然而 由于我现在需要有效地计算凹轮廓 所以我迷失了 维基百科确实列出了很多用于凸计算的资源
  • 使用 ThreeJS 获取球体纹理上的点击位置

    目前 我有一个带有纹理的球体 它绕 y 轴旋转 我还有在 3D 空间中单击的位置 以及球体上的旋转位置 我认为 目标 获取纹理上的位置 例如 我想获取我点击的图像的哪个方块 参见示例球体和下图 在实践中 我不会使用此图像 但我觉得这将是一个
  • 判断一个点是否在多面体内部

    我试图确定某个特定点是否位于多面体内部 在我当前的实现中 我正在研究的方法采用我们正在寻找多面体面的数组 在本例中为三角形 但稍后可能是其他多边形 的点 我一直在尝试根据这里找到的信息进行工作 http softsurfer com Arc
  • C++ Irrlicht 程序未链接:“未定义对‘__imp_createDevice’的引用”

    我的 Irrlicht 程序无法链接 我使用的编译器是g Code include
  • 投影 3D 网格的 2D 轮廓算法

    给定 一个 3D 网格 由一组顶点和三角形定义 并用这些点构建网格 问题 找到任意平面上投影的任意旋转网格的二维轮廓 投影很容易 挑战在于找到平面中投影三角形边的 外壳 我需要一些有关研究该算法的输入 指针的帮助 为简单起见 我们可以假设
  • IE9-11 检测变换样式:preserve-3d

    我为一个项目制作了一个 3d 类型的菜单 自然 IE 会引起问题 因为 IE10 即使 3d 变换工作 也不支持变换样式 preserve 3d 我尝试了解决方法 通过对 3d 菜单容器的每个子元素应用变换 但至少可以说 动画看起来很糟糕
  • CSS3DObject 始终位于 WebGL Mesh 前面

    我正在混合CSS3D Renderer with WebGL Renderer to add HTML3D 空间中的元素WebGL场景 这CSS3DObject在前面WebGL网格即使WebGL Renderer具有较高的 z index
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • XNA中窗口系统的渲染策略(RenderTarget性能)

    我目前正在从头开始为 XNA 游戏创建一个窗口系统 我主要针对 Windows 进行开发 但谁知道我将来可能支持哪些平台 如果您知道本机 Direct3D 的这一点 请随意回答 因为性能语义应该类似 如果可能 请考虑如果目标平台是 X Bo
  • 具有轴和角度的 3D 旋转

    我知道 3D 旋转在 SO 和许多其他网站上都有详细记录 但尽管阅读了无数的解释 我仍然没有弄清楚我哪里出错了 我的背景是艺术和设计 而不是数学和编程 而且我从来都不确定我的攻击角度 没有双关语 是否正确 我没有粘贴我那令人沮丧的代码的拼凑
  • 在 iOS 上的 SceneKit 中导入 3d 模型

    从 URL 导入 obj 文件并将其转换为 SCNNode 时遇到问题 这是代码 swift3 let url URL init string https cloud box com shared static ock9d81kakj91d
  • 为什么我的 3D 绘图没有显示在 R Studio 绘图查看器中?

    我通常在 RStudio 版本 1 0 44 中查看绘图时没有问题 但是当我尝试查看使用 rgl 包创建的 3D 绘图时 我的 RStudio 绘图查看器中什么也没有出现 我能够毫无问题地绘制图 汽车 散点图 这是我正在使用的代码 inst
  • 使用开源 3D 引擎从 Openstreetmap 数据渲染地图? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 从 Openstreetmap 数据渲染 3D 地图可能会很漂亮麻烦的 https gis stack
  • 在 R 中绘制 3D 数据

    我有一个 3D 数据集 data data frame x rep c 0 1 0 2 0 3 0 4 0 5 each 5 y rep c 1 2 3 4 5 5 data z runif 25 min data x data y 0 1
  • 使用纽厄尔方法在 Python 中计算表面法线

    我正在尝试实现 Newell 方法来计算 Python 中的表面法向量 基于以下伪代码here https www opengl org wiki Calculating a Surface Normal Begin Function Ca
  • 使用 vtk 给定一组点创建多条折线

    我需要使用 vtk 和 paraview 显示 50 个粒子空间中的轨迹 目前我的数据是pos x y t n 其中 n 是第 n 个粒子的标签 我已将所有数据保存在 vtk 文件中 该文件的组织方式如下 vtk DataFile Vers
  • React-Three-Fiber:JSON 中位置 3 出现意外标记 c 错误

    我正在尝试使用 React Three Fiber 加载 glb 文件 但出现以下错误 Error Unexpected token c in JSON at position 3 我不确定我做错了什么 看来此问题最常见的解决方案是将 gl
  • C# 3d 模型查看器

    在 C 中可以查看 3D 模型的最佳工具是什么 我还需要更改模型的纹理 我查看了 XNA 但找不到下载链接 您可以使用 WPF 3d ViewPort 有一个名为 HelixToolkit 的神奇实用程序 您可以在这里找到它 https g
  • 从点集合创建 .stl 文件

    因此 我使用的软件接受轮廓或 stl 文件形式的 3D 对象 我的轮廓沿着 z 平面 每个平面都有一个唯一的 z 我必须修改实验的轮廓 现在轮廓对于每个平面没有唯一的 z 它们现在与 z 0 平面略有角度 这些点代表 3D 对象的边缘 获取
  • React-Three/Fiber 创建 3D 文本

    我正在尝试使用 Threejs React Three Fiber 创建 3D 文本 我使用字体加载器加载字体 如下所示 const font new FontLoader parse Microsoft Tai Le Regular js

随机推荐

  • 【web开发】扩展与全面接管springmvc

    1 扩展springmvc 方法 编写一个配置类 Configuration 实现WebMvcConfigurer接口 不能标注 EnableWebMvc 特点 既保留了springboot所有的自动配置 也能用我们扩展的配置 示例 pom
  • 数据结构和算法(压缩矩阵和队列模拟)

    具体思路和分析放在末尾 稀疏矩阵的处理方法是 1 记录矩阵一共有几行几列 有多少个不同的值 2 把具有不同值的元素的行列和值记录都在一个小规模的矩阵中 从而缩小程序的规模 原始矩阵转换稀疏矩阵的思路 1 遍历原始的二维数组 得到有效数据的个
  • vue 的表单验证

    1 使用
  • zlib库各历史版本下载网址

    https zlib net fossils
  • Element——el-table给所有的row和column数据加上索引

    问题场景 开发中发现el table在使用cell style时无法获取row column的索引信息 解决思路 在其他可以获取到行列索引的方法中对行列数据添加索引属性 解决方法 利用el table的cell class name配置 以
  • 【Detectron2】详解Detectron2中Mask RCNN的部分代码

    整体来说 Backbone RPN和Fast RCNN是三个相对独立的模块 Backbone对每张图片产生5 level的特征 并送入RPN RPN对送入的特征 首先经过3x3卷积 随后用sibling 1x1卷积产生分类和bbox信息 分
  • Java类的封装

    目录 1 什么是类的封装 2 如何实现类的封装 1 private操作符 2 get与set 1 语法格式 2 封装演示 1 什么是类的封装 隐藏对象的属性和实现细节 仅对外提供公共访问方式 类的封装可以让使用者使用更加简单 数据也会更加安
  • 华为OD机试 Java 实现【密码验证合格程序】【牛客练习题 HJ20】,附详细解题思路

    一 题目描述 密码要求 长度超过8位 包括大小写字母 数字 其它符号 以上四种至少三种 不能有长度大于2的包含公共元素的子串重复 注 其他符号不含空格或换行 二 输入描述 一组字符串 三 输出描述 如果符合要求输出 OK 否则输出NG 四
  • Vcpkg 的安装与使用

    Vcpkg 的安装与使用 欢迎大家来我的博客逛逛 hauhau cn 需求 先确保你已经安装了 Windows7 及以上的版本 Git Visual Studio 2015 Update 3 及以上的版本 关于美化 Windows Term
  • 避免Flex RSL重复load 提高module加载性能

    本文编译后的补丁下载链接 http download csdn net source 1908278 多模块应用 每加载一个模块都会重复加载模块所使用的RSL 现在增加一个 private static var loadedRSLs Dic
  • golang实战-数字签名与认证

    一 数字签名 设想一个场景 Alice 给 Bob 发送了一段消息 明天我请你吃饭 该消息使用 Bob 的公钥加密 公钥加密才能确保消息被截获后也只有 Bob 本人能用自己的私钥解密 但是由于 Bob 的公钥可能其他人也有 Tom 也可以使
  • 搭建个人图床

    前言 在编写markdown文档的过程中 免不了插入一些图片 但是在分享的时候 这些带有图片资源的markdown就显得十分麻烦了 同时我也有写博客的习惯 hexo等用md转前端页面的项目在处理图片时也会遇到各种不舒服的操作 因此搭建自己的
  • 第7课 微信小程序实现图片搜索器案例:

    第7课 微信小程序实现图片搜索器案例 效果图如下 手机运行效果 来我们来看看代码的全局样式 首先在app json内的pages把需要的index1 index2页面注册 之后我们只需写index1 index2两个页面 即可实现图片搜索小
  • Django ORM 框架中的表关系,你真的弄懂了吗?

    Django ORM 框架中的表关系 为了说清楚问题 我们设计一个 crm 系统 包含五张表 1 tb student 学生表 2 tb student detail 学生详情表 3 tb salesman 课程顾问表 4 tb cours
  • windows下的服务启动和停止的命令操作区别(sc和net)

    目录 1 sc 和net 命令区别 1 sc 和net 命令区别 1 服务重启过程的执行结果可能会有不同 net命令在stop时会停止等待 在服务完全停止后再继续执行后续语句 所以net的重启命令就会正常 sc stop serviceNa
  • 手把手教你学会FIRST集和FOLLOW集!!!!吐血收藏!!保姆级讲解!!!

    让我们开始圆规正传 这里的关于FIRST集的定义摘抄于下面大佬的博客 因为觉得大佬的定义足够详细了 原文链接在下面 大佬的文章也很厉害 膜拜 这里的mooc照片来源于西安邮电大学mooc课程 编译原理第四章第二讲的视频中 感谢教学团队老师的
  • 目标检测评价指标

    1 引言 在衡量一个目标检测的模型时 有许多的标价指标可以帮助我们评价一个模型的好坏 在这里总结一下 准确率 Accuracy 混淆矩阵 Confusion Matrix 精确率 Precision 召回率 Recall 平均正确率 AP
  • JDBC六大编程步骤

    JDBC六大编程步骤 JDBC介绍 JDBC连接数据库六步 JDBC介绍 JDBC Java Database Connectivity 代表Java编程语言与数据库连接的标准API 然而JDBC只是接口 JDBC驱动才是真正的接口实现 没
  • 【电子电路】PT100 四线制高精度采样原理图和两线制和三线制接线办法

    实际原理图 仿真图 四线制接线说明和两线制三线制接线办法 实际接线说明 A 接原理图P2 1脚 C接原理图P2 2脚 B 接原理图P2 4脚 D 接原理图P2 3脚 工程代码和原理PCB
  • 详解万向锁

    最近在看高翔老师的slam十四讲时 对万向锁这个概念不是很清晰 于是从网上查了不少博客文档 最终明白了万向锁这个概念 在此记录一下 解释万向锁之前首先明白一下什么是欧拉角 什么是欧拉角 用一句话说 欧拉角就是物体绕坐标系三个坐标轴 x y