4.1移动机器人小车

四轮车常用的模型是图4.2所示的双轮自行车模型。其后轮固定在车体上,前轮可以绕 水平轴转动以实现车辆转向丸

该车的速度依据定义为其在x方向上的速度v,而在y方向上的速度是零,因为车轮不能侧移。在小车坐标系{V}中表示为:

Vx=V,Vy=0

其角速度为:w=V/R1

机器人小车在世界坐标系中的速度是(v cos 0,   v sin 0),结合方程(4. 1),可以将它的运动

方程写为:

image.png

4.1.1移动到一个点

image.png

4.1.2跟踪一条直线

移动机器人另一种有用的功能是跟踪平面上由ax+by+c=0定义的一条线。这需要两个控制器来调整机器人的运动方向。一个控制器用于操纵机器人,使其与直线的垂直距离最短。

根据方程(I.1),该距离可表示为

a-“gg

采用以下比例控制器:

ca=-K₄d,Ka>0

它将会控制机器人始终转向目标直线。第二个控制器用于调整机器人的朝向角或方向,使其与直线保持平行:

θ=arctan

同样,也可以使用比例控制器:

an=K₁(0eθ),Kn>0

两个控制器组合后的控制律为

γ=-Kd+K₄(Geθ)

其结果是通过控制机器人的转向轮,使机器人不断接近目标直线,并沿着它运动。

4.1.3跟踪一般路径

除了直线轨迹之外,我们也希望机器人能跟踪由xy平面上的一般曲线所定义的一条路径。这种路径可能来自于某种运动规划器(如本书5.2节中讨论的)产生的一系列坐标位置,也可以是基于机器人传感器实时产生的。

路径跟踪问题的一个简单有效的算法是纯追踪。最简单的情况是目标点(x*(t),y*(t))沿着路径以恒定速度运动,而机器人总是朝向目标点运动——有点类似于驴追胡萝卜。这个问题非常类似于4.2.1节中讨论的控制问题,即移动到一点,不同的是这次的目标点是移动的。设机器人与被追踪点之间的距离目标值是d*,则跟踪误差可定义为

e=√(x^-x)²+(y'-y⁵-d

我们采用比例积分(PI)控制器来控制机器人的速度使跟踪误差趋近于零:

V=K,e+K;ʃedt

积分项是用来确保当跟踪误差为零时仍能提供一个有限的速度需求量v*。第二控制器则使机器人转向目标,相对角形式的目标值为

d =acdm2=

可以只用一个简单的比例控制器:

a=K₄(θeθ),K₁>0

它将控制转向轮使机器人朝向目标点。

V=K,e+K;ʃedt

积分项是用来确保当跟踪误差为零时仍能提供一个有限的速度需求量v*。第二控制器则使机器人转向目标,相对角形式的目标值为

d =acdm2=

可以只用一个简单的比例控制器:

a=K₄(θeθ),K₁>0

它将控制转向轮使机器人朝向目标点。

4.2飞行机器人

以四旋翼飞行器建立运动模型

image.png

设旋翼转速为wi,产生一个向上的推力向量,指向z轴的负方向:

其中b>0为升力常数,它取决于空气密度、旋翼叶片半径的立方、叶片的数量以及叶片的弦长。

由牛顿第二定律,可以给出该飞行器在世界坐标系中的移动动力学方程:

其中,v是飞行器在世界坐标系中的速度,g是重力加速度,m是该飞行器的总质量,T=IT, 是总的向上推力。方程右边第一项是重力,在世界坐标系中方向垂直向下,第二项代表将机体 坐标系中的总推力经旋转变换到世界坐标系。

每对旋翼之间的推力差异就会导致飞行器旋转。在x轴上产生的转矩即为横滚力矩,其大小

其中,d是电机到飞行器质心的距离。我们可以将方程(4.3)代入,得到该力矩关于旋翼转速的表达式:

image.png

类似地,在y轴上产生的转矩即俯仰力矩,其大小是

image.png

电机施加到每个旋翼桨上的转矩与空气阻力力矩方向相反:

image.png

其中,k与升力常数b的影响因素相同。该转矩会对飞行器机体施加一个反转力矩,其作用是使整个机体产生一个绕旋翼轴的转动,但方向与旋翼转向相反。因此在z轴上总的转矩是

image.pngimage.png

通过整合计算机体上作用力的动力学方程(4.4)和作用力矩的方程(4.8),可以得到四旋翼飞行器的运动模型

image.png

如果d >0,则矩阵A是满秩的,可以通过求逆得到

image.png

利用上式可以求出为给机体施加特定的力和力矩所需要的各旋翼转速