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

【三维】关于万向节锁的直白解释

1. 分析理解

万向节长什么样子,请参考这篇文章中的图片:https://zhuanlan.zhihu.com/p/42519819。

看了很多篇解释性的文章,没怎么看懂。因为我个人最关注的问题点在于:

现实物体旋转为什么没有所谓的万向节锁的bug,而搞了个万向节就出了这种bug?这很反直觉。

答案是,只是因为万向节这个工具有bug,不是现实世界有bug。 这是把简单问题复杂化了。

现实世界中,我们想把一个物体摆一个姿态,其实就是先按某个轴旋转a°,再按某个轴旋转b°,最后按某个轴旋转c°。用大脑去想象的话,很简单,完全不会有问题。因为这种思考方式下,我们认为坐标轴/旋转轴是不变的,只有物体在变换姿态。就像是在3ds max或者blender里面旋转物体一样。

但是如果要用机械部件去真正的控制物体的姿态,一般就是用万向节这种机械部件,它本身有bug。为什么,因为万向节的旋转方向之间是有连接的,连接就是限制。在万向节的限制下,想要旋转物体到一定姿态,如果还按照先转a,再转b,最后转c,最后可能在某个位置卡住了,无法按照某个轴旋转。这种状态就是“万向节”锁住了。卡住的位置是在两个或者多个旋转平面重合的时候,就会消失一个旋转自由度。

数学上,使用欧拉角这种数学计算过程去旋转物体,和万向节是一样的,都会出现万向节锁的问题。使用欧拉角怎么计算旋转?就是使用矩阵。计算过程参考文章:欧拉角旋转。

产生万向节锁的本质原因是什么?使用万向节或欧拉角旋转物体的时候,TMD旋转轴也会跟着转,这就麻烦了,如果两个旋转轴重合,那就少了一个自由度,也就是某个方向转不动了。如果只转一个轴,用欧拉角矩阵来旋转物体,没有问题。谁知道多个轴复合起来计算,就不是自由旋转了,而是万向节旋转,就出现问题了。看了其他高手文章才知道,万向节旋转是以自身坐标系的坐标轴为轴进行旋转,旋转时,非旋转轴会跟着转,这样讲就更好理解了。

2. 直观演示

在blender里面选择全局操作模式,和万向节操作模式,可以看到不同的地方在于,全局模式下,有几个弯弯的曲线表示的平面和坐标轴都是不变的,两两垂直。

而在万向节操作模式下,旋转轴间的相对夹角,几个弯弯的曲线表示的平面都是在变的。如果某一时刻两个轴重合,我们就缺少一个可以操作的旋转轴了。

全局模式下,猴头歪了,坐标轴没变:

全局模式下,猴头歪了,坐标轴没变

万向节模式下,如果旋转轴会动,重合时就产生了一个方向锁:

万向节模式下,如果旋转轴会动,重合时就产生了一个方向锁

既然欧拉角旋转有万向节锁的问题,那么为什么,还要用它呢?正是因为它的旋转轴可以变换位置,旋转起来比较灵活。

3. 深度思考

既然欧拉角旋转不是自由旋转,那用什么工具来表示自由旋转呢?一种方案是使用四元数,这个我们后面再学习吧。

http://www.lryc.cn/news/328999.html

相关文章:

  • 程序员的修养 - 变量
  • 判断一个元素是否在可视区域中
  • 【Monero】Wallet RPC | Wallet CLI | 门罗币命令行查询余额、种子、地址等命令方法教程
  • FPGA----ZCU106的petalinux 2019.1使用USB传输数据
  • 备考ICA----Istio实验10---为单个主机配置TLS Istio Ingress Gateway实验
  • 【4】单链表(有虚拟头节点)
  • html第二次作业
  • Android客户端自动化UI自动化airtest从0到1搭建macos+脚本设计demo演示+全网最全最详细保姆级有步骤有图
  • 基于单片机的自动浇灌系统的设计
  • WebStorm 与 VSCode 对比分析
  • git命令-项目使用
  • python安装删除以及pip的使用
  • 7、鸿蒙学习-共享包概述
  • 亚马逊测评新策略:解决底层环境防关联,提升下单成功率
  • 容器和注解开发
  • 有趣且重要的JS知识合集(21)浏览器内置对象讲解之Dom篇
  • 3.两数相加 - 链表
  • iptables 与 firewalld 防火墙
  • Taskflow:异步任务(Asynchronous Tasking)
  • 学习鸿蒙基础(9)
  • spring boot的小数位丢失.00 或者.0
  • nginx如何清理页面缓存
  • 深度学习pytorch——经典卷积网络之ResNet(持续更新)
  • react 面试题(2024 最新版)
  • JVM(三)——字节码技术
  • HarmonyOS 应用开发之Stage模型绑定FA模型ServiceAbility
  • 高效解决Visual Studio无法识别到自定义头文件
  • [数据集][目标检测]道路行人车辆坑洞锥形桶检测数据集VOC+YOLO格式6275张4类别
  • 风险与收益
  • linux服务器安装mysql8