移动机器人原理与设计(原书第2版)
上QQ阅读APP看书,第一时间看更新

1.6 习题参考答案

习题1.1参考答案 (伴随矩阵的性质)

1)矩阵Ad(w)的特征多项式计算起来相对简单,如下式所示:

由此可得其特征值为{0,||w||i,-||w||i}。最后可得:

因此,与0对应的特征向量为w。矩阵Ad(w)是与一个绕w的旋转坐标系的速度向量场相关的。因为轴w不会移动,所以Ad(w)·w=0。

2)①证明x⊥(w∧x)。为此,完全可以证明xTAd(w)x=0,由此可得x⊥Ad(w)x,则有:

②因为:

可得w⊥(w∧x)。

③很容易证明:

为此,需要对上述两个表达式进行转化并证明其相等。该行列式的正性表明该三面体(w,x,w∧x)是正三面体。

3)由w、x和w∧x形成的平行六面体体积为:

然而,由于w∧x正交于w和x,因此该平行六面体的体积便等于其底面积A乘以高h=||w∧x||,即

令v的上述两个表达式相等,可得A=||w∧x||。

习题1.2参考答案 (雅可比恒等式)

1)已知:

因此,对所有c而言,都有:

2)将上式简写为:

3)已知:

因此,对应于一个跟随斜对称矩阵[A,B]=AB-BA无限小的旋转。

综上,如果在一个空间探测器中,只能用惯性盘产生两个跟随A和B的旋转运动,便可生成一个跟随[A,B]的旋转,该无穷小旋转关于B,A,-B,-A,B,A,-B,-A,…交替进行。

4)验证烦琐,在此不做说明。值得注意的是,通过这个结果能够推导出具有加法、括号和标准外积的斜对称矩阵的集合也是一个李代数。

习题1.3参考答案 (范力农公式)

该刚体上的一点x的位置满足状态方程:

式中,w平行于旋转轴Δ,||w||为该实体的旋转速度(单位rad.s-1),通过对该状态方程求积分可得:

也可利用在习题1.4中所学的罗德里格斯公式得到该公式。该项性质可以用如下事实解释,即Ad(w)表示一个旋转运动,然而它的导数却表示了该运动的结果(即一个旋转)。

习题1.4参考答案 (罗德里格斯公式)

1)完全可以证明:

2)该状态方程的解为:

3)在t时刻,该实体已经旋转了||w||·t的角度,那么当t=1时,它便旋转了角度||w||。因此,绕轴w且角度为||w||的旋转R可由下式给出:

4)A的特征多项式为,特征值为0,i||w||,-i||w||。特征值0所对应的特征向量与w共线,由于在旋转轴上点的速度为0,故而这是合乎逻辑的。

5)可以通过特征值对应定理得到R的特征值,因此等价于0,i||w||,-i||w||。

6)一个绕向量w=(1,0,0)且角度α的旋转表达式为:

7)罗德里格斯公式表明绕向量w角度为φ=||w||的旋转矩阵可由下式表示:

习题1.5参考答案 (罗德里格斯公式的几何逼近)

1)已知:

因此,罗德里格斯公式为:

2)已知:

因此:

故而,罗德里格斯公式也可写为:

可以通过如下式所示的旋转矩阵去表示算子Rn,φ

或用其改进形式:

3)已知:

向量Rn,φ·u和形成了菱形(罗德里格斯菱形)的两边,其向量:

对应于菱形的对角线。

4)该轨迹形式为R(t)=exp(tA)·Ra,且必须要找出一个斜对称的A(使exp(tA)是一个旋转矩阵),对于t=0,有R(0)=Ra,对于t=1,有R(1)=Rb。因此,必须要解出exp(A)·Ra,其中A是斜对称的。可写为,但矩阵的对数不是唯一的。在该练习题中,假定所有矩阵均为3×3维的。为找出两个旋转矩阵Ra,Rb之间的插值轨迹矩阵,我们取前一个问题的结果并执行以下操作:

进而可得R(t)=exp(tA)·Ra。在此可清晰地看出,找到一个矩阵A使得的解不唯一。例如,本可采用A=(φ+2kπ)n∧,k≠0,但此时从Ra到Rb必须绕几个弯才行。

5)回顾正弦和余弦公式的麦克劳林级数展开为:

令H=Ad(n),由于n为矩阵H的一个对应于特征值0的特征向量,则有H(n·nT)=0。此外:

因此:

那么,可将罗德里格斯公式写为:

习题1.6参考答案 (四元数)

1)可得:

注意,乘法是不可交换的。

2)可得:

3)因两四元数对应于相同旋转,则:

4)可得:

5)①由于旋转很简单,第一种方法是直接通过手动移动一个简单的对象来得到结果。可获得一个相对于(0,1,0),角度为的旋转。

②关联与建立旋转欧拉矩阵R。可得:

然后取R的一个与特征值λ=1相关联的归一化特征向量v=(0,1,0)T,旋转R可以通过一个绕v的角度为α的旋转得到,可利用式(1.9)计算角度α:

式中,所选符号满足eα·v∧=R,可得

③在此,利用四元数法可得:

运用所有方法,可得一个绕v=(0,1,0)角度为的旋转。

习题1.7参考答案 (舒勒振荡)

1)状态向量为,为了实现水平运动,则需一个水平力f,根据动力学基本定理,可得:

式中,且f=2ma。由于,则该系统的状态方程可写为:

2)如果钟摆保持水平,则对于α=0,便有。即:

或将其等价为:

因此,必须使其满足方程。求解该方程可得:

1=1时,可得:

3)描述该振荡的方程为:

当a=0时,可得:

该式为一个长=r的钟摆方程。通过对其线性化可得其特征多项式为,因此脉冲为。故而,该舒勒周期等于:

4)程序如下:

值得注意的是,对于初值而言,该钟摆总是指向地球中心,否则,它便振荡并将该振荡保持在舒勒频率上。可以用现代惯性单元观测该振荡,并有利用其他惯性传感器获取的信息对其进行补偿的方法。

习题1.8参考答案 (制动检测器)

1)已知:

将其表示在坐标系R0内为:

整理为:

2)证明:

3)在坐标系R0内,可将向量u表示为:

因此:

4)已知:

因此:

然而:

可得:

5)如果满足下述条件,则表示前车正在制动:

即满足条件:

习题1.9参考答案 (水下机器人建模)

该位置向量的导数可由下式得到:

式中,i1对应矩阵(1.9)的第一列。结合方程(1.12),可将潜艇的状态方程写为:

此时,便得到了一个运动学模型(即其中没有力或力矩),其中并没有参数,因此如果该水下机器人很结实(即不能被扭曲)且其轨迹与机器人轴线相切,便可认为该模型是正确的。这样的模型将用到非线性控制方法如将在第2章提及的反馈线性化。虽然这类方法对于一个很小模型误差的鲁棒性确实很差,但对系统精确模型已知的情况下却非常有效。

习题1.10参考答案 (三维机器人图形)

1)略

2)为绘制在状态x=(px,py,pz,v,φ,θ,ψ)下的机器人图像,构建模式矩阵:

并计算转换后的模式矩阵(待绘制):

绘制三维图形的MATLAB程序如下:

3)采用图1.19所示的欧拉积分法对初始向量x(0)=(-5,-5,12,15,0,1,0)T和控制变量u=(0,0,0.2)T进行仿真。该仿真模拟将在习题2.4中进行,以执行机器人轨迹的控制。

图1.19 水下机器人的仿真(有关此图的彩色版本,见www.iste.co.uk/jaulin/robotics.zip

习题1.11参考答案 (机械手)

绘制机械手时必须一个接一个进行,为此,必须建立基于向量v的平移和绕w角度||w||的旋转。由如下两个矩阵表示:

在该题中,需要沿z轴平移长度r,沿x轴平移长度d,围绕y轴旋转α,旋转θ。它们分别由4×4矩阵给出:

在坐标系q(其组成部分为关节坐标)中的机器人的七个手臂可以绘制如下:

每个手臂均是用两个齐次矩阵,j{1,2,…,7}对绘制的。图1.20对应于具有以下参数向量的机器人的仿真模拟:

习题1.12参考答案 (浮轮)

1)考虑欧拉旋转方程:

式中,扭矩τr=0且浮轮没有加速度。由式(1.12)可得:

图1.20 机械手仿真模拟

2)对于仿真模拟,取:

其结果如图1.21所示,轮子相对于px平移,可从px阴影(黑色)中看到旋转轴振荡,这便对应于该进动。

3)已知:,因此:

图1.21 无转矩进动车轮的运动(有关此图的彩色版本请参见www.iste.co.uk/jaulin/robotics.zip

此外:

4)使用SYMPY库编写以下Python代码:

x0点处的矩阵J如图1.22所示。

可通过图1.23中的图示来理解带零的黄色块,弧表示差动延迟,例如,节点vr和p之间的弧意味着在代数上依赖于vr

图1.22 x0点处演化函数的雅可比矩阵(有关此图的彩色版本,请参见www.iste.co.uk/jaulin/robotics.zip

图1.23 浮轮差动延迟图(有关此图的彩色版本,请参见www.iste.co.uk/jaulin/robotics.zip

矩阵J是分块三角形的,可以很容易地计算出特征多项式,由下式给出:

当不存在进动时,项与事实情况一致,轮子以||wr||脉冲绕wr旋转,对应于该进动。

如果轮子不是完全实心的,内部摩擦会减弱进动,旋转轴将与I的一个特征向量对齐,该向量可以是车轮平面的一个向量,也可以是车轮的轴(与车轮平面正交)。

习题1.13参考答案 (惯性系中的舒勒振荡)

1)因为地球静止不转动,则有:

2)R2的所有欧拉角都是常数(对于R1)并且等于零,且不再作为状态变量出现。欧拉矩阵R(φ,θ,ψ)为常数。R2的状态方程变为:

可以将其写为:

3)所得到的轨迹如图1.24所示。从图中观察到一些振荡,称为舒勒振荡。

4)z=0,x=r,可得:

特征值为,由于在0中有两个根,所以这个系统存在一些振荡,是不稳定的。

5)实际上,惯性单元没有完全初始化,因此便可找到一条与R2相似的轨迹,而对于R1而言是固定的。由于误差很小,线性近似是很现实的。如图1.25所示,惯性单元内部的积分方法返回一些不需要的振荡,对应于一个不是实际的解。这些振荡对应于一个为的舒勒周期。对于许多应用(例如在飞机上),大家知道这样的振荡是虚拟的,可以通过改进积分的方法来抑制这些舒勒振荡。

图1.24 轨迹涂成蓝色的机器人R2和固定在o1中的机器人R1的转速和加速度相同

习题1.14参考答案 (控制用李氏括号)

1)可得:

2)在不丧失一般性的情况下,对t=0给出其证明,并将使用以下符号:

图1.25 惯性装置返回的假周期轨迹,感觉和R1一样是静止的。相应的测量加速度涂成红色。b)图对应于R1的放大(有关此图的彩色版本,请参见www.iste.co.uk/jaulin/robotics.zip

对于给定的t和一个小的δ,有:

其中:

因此:

可得:

相加可得:

此时:

因此,

同理可得:

这个结果可以通过重写δ→-δ,f→-g,g→-f,A0→-B0,B0→-A0直接从式(1.19)中获得,因此:

其结果是,使用周期序列,便可以沿着[f,g]方向移动。

3)已经证明,在4δ的时间周期内,我们向[f,g]方向移动了[f,g]δ2。这意味着我们遵循这个无穷小的场。将循环序列乘以标量αR等于用α乘以f,g。那么,不得不用乘以这个序列。如果º为负,则必须改变序列的方向。因此,循环序列为:

式中,ε=sign(v)更改序列的方向(ε=1为顺时针方向,ε=-1为逆时针方向)。

4)如果想要跟踪a1f+a2g+a3[f,g],则须按该序列:

式中,,且ε=sign(v)。

5)如果令x=(x,y,θ),则有:

可得:

此时便可横向移动汽车了。

6)如果把循环序列作为控制器,可得:

针对a=(0.1,0,0),a=(0,0,0.1),a=(-0.1,0,0),a=(0,0,-0.1)做了四个仿真模拟。取初始向量x(0)=(0,0,1),t[0,10],dt=0.01,便可得到图1.26所示的结果。经过观察,在每次模拟之后,到原点的距离大约为0.1×10=1。这与f(x)和[f,g]的范数等于1的事实一致。在此,并未给出a=(0,±0.1,0)的仿真,因为没有位移:汽车自己旋转。

7)可得:

可得,式中

图1.26 a)基于李氏括号技术的控制器仿真,框架为[-1,1]×[-1,1]。b)相同的图片,但框架为[-0.2,0.2]×[-0.2,0.2]。为了避免图片中的重叠,这辆车的尺寸缩小了1/1000。前后亚通道的长度约为10cm(有关此图的彩色版本,请参见www.iste.co.uk/jaulin/robotics.zip

对于序列所需的方向:=(1,0,0),=(−1,0,0),=(0,−1,0),=(0,1,0)。可得图1.27所示的结果。

图1.27 a)汽车从0向所有主要方向行驶。框架为[-1,1]×[-1,1]。b)相同的图片,但框架为[-0.2,0.2]×[-0.2,0.2](有关此图的彩色版本,请参见www.iste.co.uk/jaulin/robotics.zip

习题1.15参考答案 (跟踪赤道)

1)从一帧到另一帧的旋转矩阵为Rij=RiTRj,可得:

2)式(1.13)所示的运动学方程为:

在仿真模拟中(见图1.28),可观察到轨道对应于一个椭圆,这与卫星的行为是一致的。物体的旋转是由初始条件引起的。

图1.28 该机器人像卫星一样绕着地球转(有关此图的彩色版本,请参见www.iste.co.uk/jaulin/robotics.zip

3)动态模型由运动学模型组成,可在其中添加以下状态方程以生成输入a3,w3(见图1.29):

这个动态(左)块在状态变量中有w3

在此来解释第一个等式:

由该摩擦项可得,机器人将停止相对于水的旋转,从而收敛到地球的旋转方程上。对于这个摩擦力,应该加上来自方向舵或螺旋桨的旋转。

第二个方程由三项组成:

①由于摩擦而产生加速度。作为第一近似,可以假设加速度与机器人和流体之间的速度差成正比。由于流体的速度为vf=wE∧p,可得摩擦力所引起的加速度,在R3坐标系下近似为

②流体在p处的加速度为:

如果机器人相对于流体是静止的,并且具有与流体相同的密度,那么它将具有阿基米德力产生的加速度。现在,由于重力,将测量R3坐标系下加速度

③由螺旋桨产生的加速度ua3表示在机器人坐标系R3

图1.29 动力学模型

4)为了控制机器人的方向,考虑了一种位姿场方法,即在每个点p上关联一个机器人试图满足的姿态(用旋转矩阵R4表示)。例如,如果我们想沿着赤道从西到东,则可选择一个位姿场:

然后,为使R3近似于R4(p)的控制选择旋转向量,可得(见式(1.6)):

其中,。相应仿真如图1.30所示。

图1.30 机器人沿着赤道向东行驶(有关此图的彩色版本,请参见www.iste.co.uk/jaulin/robotics.zip