COVID-19健康和安全更新>>

六轴机器人欧拉角的计算

六轴机器人欧拉角的计算

空间中的方向是如何用欧拉角表示的?

两个参考系的一个例子

如果你用六轴机械臂,像医学院的Meca500在本教程中作为示例使用时,您可能最感兴趣的是定位其工具(末端执行器)在不同的方向。换句话说,你需要能够编程你的机器人,使其末端执行器移动到一个期望的位置和一个期望的方向(即,一个期望构成)。当然,你总是可以慢跑你的机器人的末端执行器或手引导它接近所需的姿态,但这是所谓的在线编程方法冗长且不精确。离线计算和定义你想要的姿势要高效得多。此外,为了定义工具坐标系与您的末端执行器相关联(如这里所示的图像),您需要计算该工具参考帧的姿势相对于法兰参考系
在3D空间中,你至少需要6个参数来定义一个姿势。例如,机器人末端执行器的位置,或者更准确地说是TCP(工具中心点),通常定义为x,yz工具参考系的原点相对于世界坐标系。但是如何定义空间中的方向呢?

空间中的方向的表示是一个复杂的问题。

空间中的方向的表示是一个复杂的问题。欧拉转动定理在(3D)空间中,刚性主体以这种方式的任何位移,使得刚体上的点保持固定的点等同于绕过通过固定点的轴的单个旋转。因此,可以通过三个独立参数来描述这种旋转:两个用于描述轴的轴和一个用于旋转角度。然而,空间中的方向可以用几种其他方式代表,每个方式都具有自己的优点和缺点。其中一些表示使用超过三个参数的必要最小值。

将位置坐标从一个笛卡尔(3D)参考帧转换为坐标的最常见方式,F到另一个,F ',是旋转矩阵。因此,该3×3矩阵可用于表示参考帧的方向F '关于参考框架F。然而,尽管这种表示通常是必要的(我们将在后面发现),但它并不是一种简洁而直观的定义方向的方法。
另一种更紧凑的定义方向的方式是四元数。这种表示法由一个由四个标量组成的标准化向量组成。四元数不仅比旋转矩阵紧凑,而且不容易受到近似误差的影响,因此在机器人控制器中普遍采用四元数。此外,在两个不同方向之间的插值过程中,四元数的元素连续变化,避免了三维参数化中固有的不连续,如欧拉角。然而,四元数很少用作用户和机器人控制器之间的通信手段,因为它不直观。

欧拉角的详细定义

到目前为止,在CAD软件或机器人控制器中,向用户传达空间方位或允许用户定义方位的最常见的方法是使用欧拉角。因为欧拉角这个术语经常被误用,所以我们准备了这个交互式教程。

“欧拉角”这个词经常被误用。

欧拉角是三个角度的设定(或相当序列),其可以例如由其表示α,β,γ。(欧拉角通常用,沥青,偏航)。欧拉角定义如下:考虑两个直角坐标系的右手坐标系,其中一个任意称为固定框架和另一个将称为移动的框架。这两个参考系最初重合。为了定义第三帧的方向(所有三帧都具有相同的原点),将移动帧带入,如下所示,通过旋转移动帧来与第三帧重合

  1. 有关x,y,或z轴的固定架或x ',y ',或Z'移动框架,由α程度,
  2. 然后是关于这件事x,y,或z轴的固定架或x ',y ',或Z'移动框架,由β程度,
  3. 最后关于x,y,或z轴的固定架或x ',y ',或Z'移动框架,由γ程度。

这三个旋转的顺序很重要。因此,我们共有216 (6)3.可能的序列:xyz,yyz,zyz, x”→yzy '→yz, z”→yz等等。然而,三次旋转的序列,其中两次连续的旋转是围绕同一轴的(例如,yyz)不能描述大致的方向。此外,在第一次轮换之前,x恰逢x',y恰逢y”,z恰逢z”。因此,在这216种组合中,只有12种独特的有意义的有序旋转序列12欧拉角约定: xyx, xyz, xzx, xzy, yxy, yxz, yzx, yzy, zxy, zxz, zyx, zyz。
也就是说,这12种组合中的每一种都相当于另外3种组合。换句话说,每个欧拉角约定可以用四种不同的方式来描述。例如,Zyx.约定等价于序列zyx,x”→y”→z',yz”→xyxz”。幸运的是,没有人用这样的序列来描述欧拉角,其中一些旋转是关于移动框架轴的,其他的是关于固定轴的(例如,像这样的序列yz”→xyxz')。
因此,虽然有12种不同的欧拉角约定,但每一种通常以两种不同的方式描述:要么作为一个围绕固定框架轴的旋转序列,要么作为一个围绕移动框架轴的旋转序列。因此,可以方便地讨论固定和移动约定,尽管它们是等价的。例如,固定的XYZ欧拉角约定用xyz序列,而移动Zyx欧拉角度约定由Z'y 'x '序列,但两者是等价的,我们稍后会看到。
在机器人技术中,FANUC和KUKA使用固定的XYZ欧拉角约定,而ABB使用移动的ZYX欧拉角约定。此外,川崎、欧姆龙Adept Technologies和Stäubli使用移动ZYZ欧拉角约定。最后,利用ZYZ移动欧拉角约定对CATIA和SolidWorks中的欧拉角进行了描述。

在mecacademic,我们使用移动XYZ欧拉角约定。

在Mecademic,我们使用移动XYZ欧拉角约定,因此描述欧拉角序列x”→y”→z”。为什么是不同的?原因是我们曾经提供一个机械夹持器来处理轴对称的工件(看视频),由关节6的电机驱动。配备这种夹持器的六轴机器人只能控制两个转动自由度,或者更具体地说是关节6的轴线方向,也就是工件的对称轴方向。在欧拉角约定中,角度αβ定义这个方向,而角度γ被忽略,因为它对应于无法控制的寄生旋转。
下面的小程序将帮助您理解欧拉角。通过单击第一次、第二次和第三次旋转的x、y和z框,您可以选择12种可能的欧拉角约定之一。(默认的欧拉角序列是Mecademic所使用的。)要在固定帧或移动帧的轴之间进行旋转切换,您需要双击这9个框中的任何一个。固定框架的轴线为灰色,移动框架的轴线为黑色。轴xx'绘制红色,yy“绿色的,还有zz在蓝色的。用鼠标滑动三个蓝色水平箭头中的任何一个都会改变相应的欧拉角。或者,您可以直接在箭头下方的相应文本框中设置欧拉角值(以度为单位)。最后,您可以将鼠标拖过参考坐标系以改变视点。


α:

β:

γ:

R=Rx(0°)Ry(0°)Rz(0°)=
1.000 0.000 0.000
0.000 1.000 0.000
0.000 0.000 1.000

通过旋转矩阵计算欧拉角

使用上述applet,对于远方的子配置,您将看到相对于一组欧拉角度的移动帧的方向。然而,不幸的是,在实践中,情况通常是相反的。您经常有两个参考帧,并且您希望找到描述一帧相对于另一帧方向的欧拉角。
对于至少两个轴平行的方向,你可以试着通过试错来猜测欧拉角。例如,回头看看本教程开始时的图像,并尝试找到Mecademic使用的欧拉角,它定义了与夹具相关的工具参考坐标系的方向,相对于法兰参考坐标系。答案是α=−90°,β= 0°,γ=−90°。不是那么容易得到的,对吧?因此,为了更有效率,你必须学习旋转矩阵。
如我们已经提到的,空间中的任何方向都可以用3×3旋转矩阵表示。例如,旋转α对轴x,旋转β对轴y,并轮流γ对轴z,分别对应以下三个旋转矩阵:

Rx(α) =
1 0 0
0 cos (α) -sin(α)
0 sin (α) cos (α)
,
Ry(β) =
cos (β) 0 sin (β)
0 1 0
-sin(β) 0 cos (β)
,
Rz(γ) =
cos (γ) -sin(γ) 0
sin (γ) cos (γ) 0
0 0 1

我们将上述矩阵称为基本的旋转矩阵。要得到一个旋转序列对应的基本旋转矩阵的乘积,首先写出第一次旋转对应的基本旋转矩阵。例如,如果第一次旋转是关于x(或x')轴,然后写Rx(ψ),ψ是旋转角度。之后的每一个旋转,post-multiply(右乘)当前结果与下一个旋转矩阵,如果旋转的一个轴移动参考系,或pre-multiply(左乘)当前结果与下一个旋转矩阵,如果旋转的一个轴固定参考系。使用我们的小应用程序来查看基本旋转矩阵的结果。例如,旋转序列x”→y”→z对应于产品R=Rx(α)Ry(β)Rz(γ)。因此,对应于Mexademer使用的欧拉角的旋转矩阵是:

R(α,β,γ) =
cos (β)因为(γ) -COS(β)罪(γ) sin (β)
cos (α)罪(γ) +罪(α)罪(β)因为(γ) cos (α)因为(γ)−罪(α)罪(β)罪(γ) -sin(α)因为(β)
sin (α)罪(γ)−cos (α)罪(β)因为(γ) sin (α)因为(γ)+ cos(α)罪(β)罪(γ) cos (α)因为(β)

因此,对于给定的方向,您需要做两件事:首先,您需要找到与您的方向相对应的旋转矩阵。其次,您需要使用几个简单的方程来提取欧拉角。让我们首先向您展示两种方法来找到旋转矩阵。
考虑下图所示的示例,我们需要找到表示帧方向的旋转矩阵F '框架F。(回想一下,我们总是表示x红色的轴y绿色的轴,和z轴用蓝色)。

两个参考系的一个例子

在这里,很容易看到,如果我们对齐第三个参考系F,它将作为一个移动的框架,然后旋转这个框架z的轴θ角度,然后旋转它y的轴φ学位,我们将获得方向F。因此,我们要寻找的旋转矩阵为:

R想要的=Rz(θ)Ry(φ) =
cos (θ)因为(φ) -sin(θ) cos (θ)罪(φ)
sin (θ)因为(φ) cos (θ) sin (θ)罪(φ)
-sin(φ) 0 cos (φ)

或者,我们可以直接得到上述旋转矩阵。它的第一,第二和第三列表示单位向量沿x,yz轴分别框架F ',相对于坐标系F
现在你有了表示你想要的方向的旋转矩阵,你只需要解这个由9个标量三角方程组成的方程组R想要的=R(α,β,γ),α,β,γ。幸运的是,这个问题有一个通用的解,我们将简单地给你使用的方程。
让一个框架的期望方向F '关于坐标系F用如下旋转矩阵表示:

R想要的=
r1,- 1 r1、2 r1、3
r2,1 r2,2 r2,3
r3,1. r3,2 r3,3

随后根据以下两种情况获得欧拉角(以度为单位),以与逐习过的移动XYZ惯例保持:
案例1:r1、3≠±1(即Z'轴坐标系F '不是平行的吗x轴坐标系F)。

β=最佳翻译(r1、3),γ= atan2( -r1、2,r1,- 1),α= atan2( -r2,3,r3,3)。

案例2:r1、3=±1(即Z'轴坐标系F '是平行的x轴坐标系F)。

β=r1、390°,γ=量化(r2,1,r2,2),α= 0。

在一般情况1中,我们实际上有两组解,其中所有的角都在半开范围内(−180°,180°)。亚博世界杯足球app但是,两组解都不需要计算,因此只给出第一组,其中−90°<亚博世界杯足球appβ< 90°。另外,请注意,我们在解决方案中使用了atan2(y, x)函数。注意,在一些编程语言中,在一些科学计算器和大多数电子表格软件中,这个函数的参数是相反的。
最后,请注意,情况2对应于所谓的表示奇点。这种奇点存在于3D空间中取向的任何三参数表示(不仅在麦克风角度的选择中)。它类似于仅通过两个参数表示球体上的点。例如,在地球上南部和北极的地球上没有定义经度。换句话说,这种奇点没有什么可以做的机制奇异性(例如,所谓的万古锁),与实际身体问题相对应(例如,自由度的损失)。

Exercice

考虑一下我们在现实生活中遇到的情况。我们想在Meca500机器人手臂的末端执行器上安装一个FISNAR分配阀。当然,设计和加工适配器的工程师并不关心欧拉角,而只关心可加工性和可达性。在他的设计中,有两个45度的旋转。首先,他在机器人法兰上使用了两个直径相反的螺纹孔来连接适配器,这导致了第一次旋转45°。其次,法兰界面平面与点胶机轴线夹角为45°;

一个点胶阀工具的例子

上图显示了实际安装(左)和需要定义的工具框架(右)。注意,在使用轴对称工具时,通常的做法是将工具的z轴与工具的轴对齐。这对于移动XYZ欧拉角约定是特别有用的,因为围绕轴对称工具的冗余旋转对应于第三个欧拉角γ。因此,前两个欧拉角定义了工具的轴线,而第三个欧拉角可以用来选择机器人的最优构型(即远离奇点)。

当使用轴对称工具时,通常的做法是将工具的z轴与工具的轴对齐。

回到我们的例子,我们现在将证明,不可能根据移动XYZ约定通过反复试验得出欧拉角。事实上,对于这个工具参考坐标系的选择,我们可以将最终的方向表示为以下两个旋转的序列:R=Rz(45°)Ry(45°)。由此,我们可以利用前面描述的方程,根据移动XYZ约定提取欧拉角,得到:α=−35.264°,β= 30.000°,γ= 54.735°。你现在确信在这种情况下你需要掌握欧拉角吗?

表征奇点和取向误差

在移动XYZ欧拉角约定的情况下,如果Z'轴坐标系F '是平行的x轴坐标系F,有无限对αγ这将定义相同的方向。显然,你只需要一个来定义你想要的方向,所以我们有任意集合α等于零。更具体地说,如果β= 90°,那么任意组合αγ,这样的比α+γ=φ,其中φ是任何值,将对应于相同的方向,并由Mecademer的控制器输出为{0,90°,φ}。同样,如果β= -90°,然后是任何组合αγ,这样α−γ = φ,其中φ是任何值,将对应于相同的方向,并由Mecademer的控制器输出为{0,-90°,-φ}。但请注意,如果您尝试代表帧的方向F '关于坐标系FZ'轴坐标系F '几乎是平行的x轴坐标系F(即,β非常接近±90°),欧拉角对数值误差非常敏感。在这种情况下,在使用欧拉角度定义方向时,您应该在小数点后输入多个数字。
考虑以下情况,它已经引起了我们的一些用户的担忧Meca500。您将工具参考坐标系相对于世界参考坐标系的方向设置为{0°,90°,0°},这是一个表示奇点。然后保持这个方向在空间中移动末端执行器到几个位置。在某些位置,由于数值噪声,控制器不检测条件r1、3=±1(情况2,如上所述),并计算欧拉角,如果方向不对应于一个代表奇点。因此,控制器返回一些类似{41.345°,90.001°,−41.345°}的东西,这似乎是完全错误的,非常远离{0°,90°,0°}。它不是。
与定位误差不同,测量为√(δx2y2z2),定向误差与欧拉角的变化没有直接关系,特别是接近表征奇点时。为了更好地理解所谓的欧拉角的非欧几里德性质,考虑一下用来表示地球上某个位置的球坐标。在北极,纬度是90度(北),但经度是多少?经度在北极没有定义,或者它可以是任何值。现在想象一下,我们沿着格林威治的方向,离北极仅1毫米。在本例中,纬度将为89.99999999°,但经度现在的值为0°。再想象一下,你回到北极,向东京方向移动1毫米。新的经度大约是140°。在你的两个位置之间,经度误差是140°!然而,实际的角误差将约为0.00000002°。
上述情况在所有其他欧拉角约定中都是类似的。根据欧拉角约定,当坐标系的特定轴出现相应的奇异性表示F '与另一个特定的框架轴平行F。在这样的表示奇点,第一和第三旋转变得依赖。
总之,除非你掌握了欧拉角(或者使用复杂的离线编程软件),或者更具体地说,你的机器人编程的惯例,你将很难编程除了简单的挑选和放置操作。因为机器人并不简单,我们尽最大努力帮助你了解基本知识。

网站管理

相关的帖子

输入您的关键字

跳到内容