机器人工具箱(Robotics Toolbox)帮助文档翻译

您所在的位置:网站首页 matlab机器人工具箱怎么打开 机器人工具箱(Robotics Toolbox)帮助文档翻译

机器人工具箱(Robotics Toolbox)帮助文档翻译

2023-07-04 10:42| 来源: 网络整理| 查看: 265

机器人工具箱(Robotics Toolbox)帮助文档翻译1 第一章 三维旋转的表示

在机器人领域中,有很多可能的方式来表示方向,其中最常见的是:正交旋转矩阵、三角度表示法、角-向量表示法、单位四元数法。

1.1 正交旋转矩阵

关于X轴旋转pi/2弧度(90度)可以表示为一个正交旋转矩阵:

R = rotx( pi/2 )

R = 1.0000 0 0 0 0.9996 -0.0274 0 0.0274 0.9996

它是一个3×3的矩阵。

这样的矩阵有这种特性:列(行)是一些单位正交向量的集合。这样的矩阵的行列式总是1:

det(R)

ans = 1.0000

每一列都是单位向量:

norm(R(:,1))

ans = 1

norm(R(:,2))

ans = 1

norm(R(:,3))

ans = 1

这些列向量都是正交的,它们的点积均为0:

dot(R(:,1),R(:,2))

ans = 0

dot(R(:,2),R(:,3))

ans = 0

dot(R(:,1),R(:,3))

ans = 0

正交矩阵的一个重要的特性是,它的逆矩阵和它的转置相等(并且转置是比较容易计算的):

R-1 = RT

可以证明:

R'

ans = 1.0000 0 0 0 0.9996 0.0274 0 -0.0274 0.9996

inv(R)

ans = 1.0000 0 0 0 0.9996 0.0274 0 -0.0274 0.9996

让我们创建一个更加复杂的软转,请随意调整下面滑块中的数字:

R = rotx(-80) * ... roty(-30) * ... rotx(-10)

这次我们指定了以度为单位的旋转角。

1.2 三角度表示法

通常,旋转被表示为欧拉角的形式,表示为: ϕ , θ 和 ψ \phi,\theta和\psi ϕ,θ和ψ

eul = tr2eul(R)

eul = 2.9178 2.1252 -1.6994

这三个角可以表示为: R = r o t z ( ϕ ) ∗ r o t y ( θ ) ∗ r o t z ( ψ ) R=rotz(\phi)*roty(\theta)*rotz(\psi) R=rotz(ϕ)∗roty(θ)∗rotz(ψ) 旋转需要先绕Z轴,再绕Y轴,最后再绕Z轴。为了证实这种情况我们可以检查:

rotz( eul(3) ) * roty( eul(2) ) * rotz( eul(1) )

ans = 0.1543 0.5375 -0.8290 0.9820 0.0092 0.1887 0.1091 -0.8432 -0.5264

旋转通常也可以表示为“横滚-俯仰-偏转”角的形式,分别记为r、p、y:

rpy = tr2rpy(R)

rpy = -2.1289 -0.1093 1.4150

三个角度可以记为: R = r o t z ( r ) ∗ r o t y ( p ) ∗ r o t z ( y ) R=rotz(r)*roty(p)*rotz(y) R=rotz(r)∗roty(p)∗rotz(y) 旋转满足先绕Z轴,再绕Y轴,最后绕X轴。为了证明这种情况可以检查:

rotz( rpy(3) ) * roty( rpy(2) ) * rotx( rpy(1) )

ans = 0.1543 0.5375 -0.8290 0.9820 0.0092 0.1887 0.1091 -0.8432 -0.5264

可以通过基于GUI的app研究绕不同坐标轴旋转的效果。菜单按钮允许改变旋转轴,结束时请关闭app窗口。

tripleangle('rpy', 'wait') 1.3 角-向量表示法

任何旋转都可以用空间中某个轴的单次旋转来表示,其中theta是角度(以弧度为单位),vec是单位矢量,表示旋转轴的方向:

[theta,vec] = tr2angvec(R)

theta = 2.3206 vec = -0.7050 -0.6409 0.3037

为了证明这种情况可以检查:

angvec2r(theta, vec)

ans = 0.1543 0.5375 -0.8290 0.9820 0.0092 0.1887 0.1091 -0.8432 -0.5264

1.4单位四元数法

最后一个有用的形式是单位四元数,由4个数组成,是复数的相对数。可以从一个正交旋转矩阵创建一个单位四元数:

q = UnitQuaternion(R)

q = 0.39908 < -0.64642, -0.58766, 0.27844 >

其由标量部分和向量部分组成,转换回来:

q.R

ans = 0.1543 0.5375 -0.8290 0.9820 0.0092 0.1887 0.1091 -0.8432 -0.5264

和之前确定的R有相同的值。

单位四元数是用MATLAB类实现的,它们表示的方向可以复合,就像我们通过乘法处理旋转矩阵一样。

首先,可以创建两个单位四元数:

q1 = UnitQuaternion( rotx(pi/2) )

q1 = 0.70711 < 0.70711, 0, 0 >

q2 = UnitQuaternion( roty(pi/2) )

0.70711 < 0, 0.70711, 0 >

然后,q1和q2的旋转很简单:

q1 * q2

ans = 0.5 < 0.5, 0.5, 0.5 >

也可以取四元数的逆:

qi = inv(q1)

qi = 0.70711 < -0.70711, 0, 0 >

q1 * qi

ans = 1 < 0, 0, 0 >

结构是一个空的旋转(向量部分为0)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3