机器人中欧拉角,偏航角、俯仰角、横滚角的自锁现象与四元数的来源于推导

这篇具有很好参考价值的文章主要介绍了机器人中欧拉角,偏航角、俯仰角、横滚角的自锁现象与四元数的来源于推导。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

想要讲欧拉角,我们需要先讲物体的姿态与自由度。

什么是物体的位姿

机器人四元数旋转公式推导,机器人,算法,机器学习
为了描述物体(此处指的是我们的末端执行器)在空间中的位置,我们可以用一个3*1的位置矩阵去描述。
P ′ ′ = [ P X ′ ′ , P Y ′ ′ , P Z ′ ′ ] T P''=[P_X'',P_Y'',P_Z'']^T P′′=[PX′′,PY′′,PZ′′]T
其中P’‘就是末端执行器的自身坐标系(x’‘y’‘z’')原点在固定坐标系(xyz)下的坐标。

为了描述物体在空间中的姿态,我们可以使用3*3的姿态矩阵去描述。
R ′ ′ = [ n x ′ ′ o x ′ ′ a x ′ ′ n y ′ ′ o y ′ ′ a y ′ ′ n z ′ ′ o z ′ ′ a z ′ ′ ] R''= \left[ \begin{matrix} n_x'' &o_x''&a_x'' \\ n_y'' &o_y''&a_y'' \\ n_z''&o_z''&a_z'' \\ \end{matrix} \right] R′′= nx′′ny′′nz′′ox′′oy′′oz′′ax′′ay′′az′′
其中三个列向量分别代表了末端执行器自身坐标系的x’‘,y’‘,z’'轴上的单位向量在固定坐标系下的坐标
或者说该矩阵的每个值是自身坐标系坐标轴上的单位向量在固定坐标系下x,y,z的投影。

当然我们也可以使用四元数,一个4*1的矩阵去描述物体的姿态。也可以使用欧拉角来描述物体的姿态。如果你不懂四元数和欧拉角没关系,接下来我会介绍他们。

什么是自由度

自由度在很多领域中都有应用。这里只介绍一下与本文相关的一个概念:自由度是根据机械原理,机构具有确定运动时所必须给定的独立运动参数的数目。
一般来讲在机器人学科中关节的数目就是自由度。
我们都知道一个刚体在空间中的自由度是6,注意此处是刚体(因为会变形的物体可能有更多的自由度)。其中刚体能够沿3个轴做直线运动,有3个自由度;
能够绕3个轴旋转,有3个自由度。共6个自由度。
看起来很显然对吧。
平动的三个自由度是很容易理解的,但是转动的三个自由度就不是那么显然了。
我们从数学概念的自由度入手来理解这件事:
假设我们有三个变量: x , y , z x,y,z x,y,z
但是有一个限制条件: x + y + z = 18 x+y+z=18 x+y+z=18
此时我们的自由度为: 3 ( 变量 ) − 1 (限制) = 2 (自由取值的变量) 3(变量)-1(限制)=2(自由取值的变量) 3(变量)1(限制)=2(自由取值的变量)

从姿态矩阵推导旋转自由度为3

我们前文提到:
姿态矩阵是我们描述物体姿态的一个矩阵,其中有9个变量。
R ′ ′ = [ n x ′ ′ o x ′ ′ a x ′ ′ n y ′ ′ o y ′ ′ a y ′ ′ n z ′ ′ o z ′ ′ a z ′ ′ ] R''= \left[ \begin{matrix} n_x'' &o_x''&a_x'' \\ n_y'' &o_y''&a_y'' \\ n_z''&o_z''&a_z'' \\ \end{matrix} \right] R′′= nx′′ny′′nz′′ox′′oy′′oz′′ax′′ay′′az′′
那我们的限制条件有哪些呢:
每个行向量为单位矩阵(3个限制条件):
n x ′ ′ 2 + n y ′ ′ 2 + n z ′ ′ 2 = 1 n_x''^2+n_y''^2+n_z''^2=1 nx′′2+ny′′2+nz′′2=1
o x ′ ′ 2 + o y ′ ′ 2 + o z ′ ′ 2 = 1 o_x''^2+o_y''^2+o_z''^2=1 ox′′2+oy′′2+oz′′2=1
a x ′ ′ 2 + a y ′ ′ 2 + a z ′ ′ 2 = 1 a_x''^2+a_y''^2+a_z''^2=1 ax′′2+ay′′2+az′′2=1
每个行向量之间两两垂直(3个限制条件):
( n x ′ ′ , n y ′ ′ , n z ′ ′ ) ⋅ ( o x ′ ′ , o y ′ ′ , o z ′ ′ ) = 0 (n_x'',n_y'',n_z'') \cdot(o_x'',o_y'',o_z'')=0 (nx′′ny′′nz′′)(ox′′oy′′oz′′)=0
( n x ′ ′ , n y ′ ′ , n z ′ ′ ) ⋅ ( a x ′ ′ , a y ′ ′ , a z ′ ′ ) = 0 (n_x'',n_y'',n_z'') \cdot(a_x'',a_y'',a_z'') =0 (nx′′ny′′nz′′)(ax′′ay′′az′′)=0
( o x ′ ′ , o y ′ ′ , o z ′ ′ ) ⋅ ( a x ′ ′ , a y ′ ′ , a z ′ ′ ) = 0 (o_x'',o_y'',o_z'') \cdot(a_x'',a_y'',a_z'')=0 (ox′′oy′′oz′′)(ax′′ay′′az′′)=0
因此此时的自由度为: 9 ( 变量 ) − 6 (限制) = 3 (自由取值的变量) 9(变量)-6(限制)=3(自由取值的变量) 9(变量)6(限制)=3(自由取值的变量)

从四元数推导旋转自由度为3

需要推导四元数的可以看我的另一篇文章:

https://blog.csdn.net/weixin_49813139/article/details/126733797

四元数我们一般写成这样
p = [ c o s ( θ / 2 ) , s i n ( θ / 2 ) u ] p=[cos(\theta/2),sin(\theta/2)\mathbf u] p=[cos(θ/2),sin(θ/2)u]
其中 u \mathbf u u为旋转轴是一个单位向量, θ \theta θ为绕轴旋转的角度。
将四元数写成完整形式为 p = [ c o s ( θ / 2 ) , s i n ( θ / 2 ) u x , s i n ( θ / 2 ) u y , s i n ( θ / 2 ) u z ] p=[cos(\theta/2),sin(\theta/2)\mathbf u_x,sin(\theta/2)\mathbf u_y,sin(\theta/2)\mathbf u_z] p=[cos(θ/2),sin(θ/2)ux,sin(θ/2)uy,sin(θ/2)uz]
该公式中很容易推导的是四元数各分量的平方和为1。
因此我们有变量4个,限制条件1个。
此时的自由度为: 4 ( 变量 ) − 1 (限制) = 3 (自由取值的变量) 4(变量)-1(限制)=3(自由取值的变量) 4(变量)1(限制)=3(自由取值的变量)

从上文可以看到,我们要描述一个刚体的姿态,我们最小的独立变量个数就是3,因此我们说刚体的转动自由度为3。

什么是欧拉角

机器人四元数旋转公式推导,机器人,算法,机器学习
上图是一个很常见的介绍欧拉角的图,摘自维基百科,我们根据右手系的定义(假设竖直向上的为Z轴)可以知道,该图是先绕Z轴(运动坐标系)转,然后绕X轴(运动坐标系)转,最后又绕Z轴(运动坐标系)转形成的最终的坐标系(运动坐标系)。

右手系

右手系可以用手的多种形状去展示,这里用百度百科的图如下:
机器人四元数旋转公式推导,机器人,算法,机器学习
我的老师教我的是右手大拇指是Z轴,然后右手从张开到握起来分别经过了X,Y轴。

按照旋转的轴的顺序,欧拉角一共有12种:
六种:Proper Euler angles (z−x−z, x−y−x, y−z−y, z−y−z, x−z−x, y−x−y)
六种:Tait-Bryan angles (x−y−z, y−z−x, z−x−y, x−z−y, z−y−x, y−x−z)
也就是说我们可以先绕Z轴转,再绕X轴转,再绕Z轴转,也可以先绕X轴转,再绕Y轴转,再绕Z轴转.
下图是按照运动坐标系X-Y-Z分别旋转60°、30°、10°的动图。
机器人四元数旋转公式推导,机器人,算法,机器学习

按照固定的轴的顺序,欧拉角也有12种。
比如下图是按照固定坐标系X-Y-Z分别旋转60°、30°、10°的动图。
机器人四元数旋转公式推导,机器人,算法,机器学习

因此欧拉角严格来说有12+12=24种。

欧拉角的多种形式造成了我们在不同学科中使用欧拉角时一定要知道对方学科的欧拉角是用的哪种顺序进行旋转的。
比如:经典力学中使用zxz,量子力学使用的是zyz,航空航天使用zyx/zxy

https://www.zhihu.com/tardis/landing/m/360/art/98320567

本文不讲解欧拉角的证明和矩阵相关内容,这部分很多文章都有。

欧拉角与偏航角、俯仰角、横滚角的关系

偏航角、俯仰角、横滚角是欧拉角24种中的一种。使用欧拉角表示姿态,令ψ,θ和Φ代表ZYX欧拉角,分别称为偏航角、俯仰角和横滚角。也就是说我们先绕Z轴转ψ称为偏航角,再绕Y轴转θ称为俯仰角,再绕X轴转Φ称为横滚角。
这里说的X,Y,Z为运动坐标系的坐标轴。
图中X轴朝前,Z轴朝上,Y轴根据右手系确定朝右。
机器人四元数旋转公式推导,机器人,算法,机器学习
下图是一个动图,可以看到从上到下,进度条分别表示的是绕ZYX轴旋转的角度。我们从上到下进行调整可以发现,我们先后调整的是飞机的偏航角、俯仰角、横滚角。(注意顺序 ,调整的顺序是Z、Y、X。也就是说,你调整好Z、Y、X的角度后再去返回去调整Z,他的含义依旧是先Z后Y后X,与你改变数值的顺序无关(此处也是造成欧拉角死锁的原因))
机器人四元数旋转公式推导,机器人,算法,机器学习文章来源地址https://www.toymoban.com/news/detail-560916.html

到了这里,关于机器人中欧拉角,偏航角、俯仰角、横滚角的自锁现象与四元数的来源于推导的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 医疗机器人软件中的机器人机器人编程技术:机器人技术的创新应用

    作者:禅与计算机程序设计艺术 随着科技的发展,医疗机器人逐渐成为人们关注的热门话题。医疗机器人可以在医院、康复中心等各种场合为病人提供帮助,不仅可以提高工作效率,还能降低医护人员的工作强度。而机器人编程技术则是实现医疗机器人功能的关键,本文将围

    2024年02月07日
    浏览(47)
  • java实现钉钉群机器人@机器人获取信息后,机器人回复(机器人接收消息)

    1.需求 鉴于需要使用钉钉群机器人回复,人们提出的问题,需要识别提出的问题中的,后端进行处理实现对应的业务逻辑 2.实现方式 用户@群机器人,附带提出的问题,后端接收消息后识别消息内容,读取到进行对应的业务逻辑操作后,机器人获取返回的信息后

    2024年02月14日
    浏览(39)
  • 智能机器人在机器人机器人感知与运动控制技术与应用案例

    作者:禅与计算机程序设计艺术 当前,物联网、云计算、人工智能和机器人技术已成为我国产业界研究热点。随着机器人的高速发展,无论是研究、制造还是服务,都受到了越来越多的关注。同时,随着大数据、IoT(Internet of Things)技术的广泛应用,机器人应用也被迅速推向

    2024年02月09日
    浏览(42)
  • 聊天机器人的机器人API:提供机器人API接口,使开发者能够方便地实现聊天机器人功能

    作者:禅与计算机程序设计艺术 聊天机器人的机器人API:提供机器人API接口,使开发者能够方便地实现聊天机器人功能 1.1. 背景介绍 随着人工智能技术的飞速发展,智能对话交互已逐渐成为各行各业的趋势。在各种智能场景中,聊天机器人作为一种创新的交流方式,为用户

    2024年02月15日
    浏览(42)
  • 移动机器人 | 火星探矿机器人

    “火星探矿机器人”旨在要开发若干个自主机器人,将其送到火星上去搜寻和采集火星上的矿产资源。 火星环境对于开发者和自主机器人而言事先不可知,但是可以想象火星表面会有多样化的地形情况,如河流、巨石、凹坑等,机器人在运动过程中会遇到各种障碍; 另外,火

    2024年02月06日
    浏览(33)
  • 1041.困于环中的机器人 && 874.模拟行走的机器人 && 模拟行走的机器人 2 (三道机器人的模拟题)

    对于直接行走类的题,我们都可以用 int[][] dirs = new int[][]{{0,1}, {-1,0}, {0,-1}, {1,0}}; 来表示向 北 西 南 东 走一步 可以 int x = 0, y = 0, d = 0 xy 表示坐标,d表示方向,要和上面表示的方向对应 由于是对应的 d = 0 表示北 d = 1 表示西 d = 2 表示南 d = 3 表示东 即逆时针一圈 左转: d =

    2024年02月16日
    浏览(30)
  • 机器人编程教程1机器人简介

    我们将制作一个机器人,并为其创建程序,赋予机器人行为,使其看起来具有智能并能够做出决策。我们将编写代码,使用传感器观察机器人周围的环境,并构建高级主题的实际示例,包括视觉、语音识别和说话。 您将看到简单的构建技术如何与少量代码相结合,使机器感觉

    2024年02月13日
    浏览(42)
  • 机器人制作开源方案 | 扫地机器人

         扫地机器人是现代家庭清洁的得力助手,能够自主规划清扫路径,避开障碍物,有效覆盖整个清洁区域。扫地机器人的出现极大地减轻了家庭清洁的负担,节省了时间和精力,它可以定期清理地面,确保家居环境的整洁和卫生,让家里变得更加舒适、无尘和宜居。 本文

    2024年02月05日
    浏览(51)
  • 【对话机器人】开源机器人项目介绍

    目录 1. 闲聊机器人介绍 2. 青云客平台 3. 思知项目 闲聊机器人是一种基于人工智能和自然语言处理技术的智能对话系统,旨在模拟人类的语言交流能力,与用户进行自然、连贯的对话。闲聊机器人能够理解用户的问题或指令,通过分析和处理文本,生成符合语法和语义规则的

    2024年02月11日
    浏览(43)
  • 开源机器人SmallRobotArm机器人源码解读

    开源机器人SmallRobotArm是一个开源的6轴机械臂,都由步进电机驱动,github地址:https://github.com/SkyentificGit/SmallRobotArm  机器人长这个样子 2 欧拉角及姿态变换 由欧拉角求姿态矩阵 源码中用的欧拉角是ZYZ顺组的欧拉角。 已知世界坐标的坐标(x,y,z)和欧拉角(α,β,γ),求出对应的姿

    2024年02月16日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包