机器人工具箱(Robotics Toolbox)帮助文档翻译 |
您所在的位置:网站首页 › matlab机器人工具箱怎么打开 › 机器人工具箱(Robotics Toolbox)帮助文档翻译 |
机器人工具箱(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.Rans = 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 * q2ans = 0.5 < 0.5, 0.5, 0.5 > 也可以取四元数的逆: qi = inv(q1)qi = 0.70711 < -0.70711, 0, 0 > q1 * qians = 1 < 0, 0, 0 > 结构是一个空的旋转(向量部分为0)。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |