自动驾驶路径跟踪控制——车辆动力学建模基本概念


1. 位姿自由度

    位姿自由度——系统在空间中的位姿描述所需变量的个数。任何一个没有受约束的物体,在空间均具有6个独立的运动,即有六个自由度。
    六个自由度分别是:

  • 横荡(sway):沿图中轴左右平动;
  • 纵荡(surge):沿图中轴前后平动;
  • 垂荡(heave):沿图中轴上下平动;
  • 横滚(roll):绕图中轴转动;
  • 俯仰(pitch):绕图中轴转动;
  • 偏转(yaw):绕图中轴转动;

在这里插入图片描述

2. TDOFandCDOF

  • TDOF(Total Degrees of Freedom):不可控自由度(总自由度)
  • CDOF(Controllable Degrees of Freedom):可控自由度

    若TDOF = CDOF,则被认为是完整的(Holonomic)比如直升机。
    若TDOF > CDOF,则被认为是 非完整的(Nonholonomic)比如汽车。
    若CDOF > TDOF,则被认为是 冗余的(Redundant)比如机械手臂(肩关节3个自由度、腕关节3个自由度、肘关节1个自由度)。

3.运动学与动力学

    车辆的模型分为两类:运动学模型和动力学模型。运动学模型主要考虑车辆的运动状态,包括速度、加速度、方向等,不考虑车辆受力状态。动力学模型通过分析作用在车上的力和力矩构建模型。
在这里插入图片描述

  • 运动学正问题指,从机器人的关节空间描述计算笛卡尔空间描述的机器人末端执行器的位置和姿态,该问题通常是一个几何问题,给定一组关节角度,计算末端坐标系相对于基坐标系的位置和姿态。
  • 运动学逆问题指,从笛卡尔空间描述下的机器人末端执行器位置和姿态反算出机器人关节空间应该达到的关节角度组合,是实现机器人控制的一个基本问题。通常因为正运动学方程是非线性的,因此逆运动学问题较为困难,很难得到封闭解,甚至无解。而正运动学的像空间就形成了逆运动学的有解空间,称为机器人的工作空间。
    参考链接

4. 运动控制问题描述

    对于一般的运动控制问题有以下描述:
    已知机器人的运动学模型/动力学模型以及机器人轮子与地面之间的接触模型,求解所要求的运动控制目标(机器人的速度、位姿以及相应的控制律)。

5. 运动学建模

    在运动学模型中,通常需要对以下几个参量进行求解:

  • 机器人速度     ξ ˙ = [ x ˙ y ˙ θ ˙ ] T \dot \xi = {\left[ {\begin{array}{ccccccccccccccc}{\dot x}&{\dot y}&{\dot \theta }\end{array}} \right]^T} ξ˙=[x˙y˙θ˙]T
  • 轮子转速     ϕ ˙ i {\rm{ }}{\dot \phi _i} ϕ˙i
  • 偏转角以及角速度     β i {\beta _i} βi     β ˙ i {\dot \beta _i} β˙i
  • 几何参数,比如长度、宽度等

    运动学正向模型可以有以下公式描述: ξ ˙ = [ x ˙ y ˙ θ ˙ ] T = f ( ϕ ˙ 1 , … ϕ ˙ n , β 1 , … β m , β ˙ 1 , … β ˙ m ) \dot \xi = {\left[ {\begin{array}{ccccccccccccccc}{\dot x}&{\dot y}&{\dot \theta }\end{array}} \right]^T} = f({\rm{ }}{\dot \phi _1}, \ldots {\dot \phi _n},{\beta _1}, \ldots {\beta _m},{\dot \beta _1}, \ldots {\dot \beta _m}) ξ˙=[x˙y˙θ˙]T=f(ϕ˙1,ϕ˙n,β1,βm,β˙1,β˙m)     已知轮子转速 ϕ ˙ i {\rm{ }}{\dot \phi _i} ϕ˙i、偏航角以及角速度 β i {\beta _i} βi β ˙ i {\dot \beta _i} β˙i,求解机器人速度 ξ ˙ = [ x ˙ y ˙ θ ˙ ] T \dot \xi = {\left[ {\begin{array}{ccccccccccccccc}{\dot x}&{\dot y}&{\dot \theta }\end{array}} \right]^T} ξ˙=[x˙y˙θ˙]T
    运动学逆向模型可以有以下公式描述: [ ϕ ˙ 1 ⋯ ϕ ˙ n β 1 … β m β ˙ 1 … β ˙ m ] T = f ( x ˙ , y ˙ , θ ˙ ) {\left[ {\begin{array}{ccccccccccccccc}{{\rm{ }}{{\dot \phi }_1}}& \cdots &{{{\dot \phi }_n}}&{{\beta _1}}& \ldots &{{\beta _m}}&{{{\dot \beta }_1}}& \ldots &{{{\dot \beta }_m}}\end{array}} \right]^T} = f(\dot x,\dot y,\dot \theta ) [ϕ˙1ϕ˙nβ1βmβ˙1β˙m]T=f(x˙,y˙,θ˙)     已知机器人速度 ξ ˙ = [ x ˙ y ˙ θ ˙ ] T \dot \xi = {\left[ {\begin{array}{ccccccccccccccc}{\dot x}&{\dot y}&{\dot \theta }\end{array}} \right]^T} ξ˙=[x˙y˙θ˙]T,求解轮子转速 ϕ ˙ i {\rm{ }}{\dot \phi _i} ϕ˙i、偏航角以及角速度 β i {\beta _i} βi β ˙ i {\dot \beta _i} β˙i
     以两轮差速小车模型为例。在这里插入图片描述
    小车的速度以及角速度为: { x ˙ = v cos ⁡ θ y ˙ = v sin ⁡ θ θ ˙ = ω \left\{ {\begin{array}{ccccccccccccccc}{\dot x = v\cos \theta }\\{\dot y = v\sin \theta }\\{\dot \theta = \omega }\end{array}} \right. x˙=vcosθy˙=vsinθθ˙=ω
在这里插入图片描述
    由两轮差速小车车轮转速与小车速度、角速度的关系可得, { v = ϕ ˙ r + ϕ ˙ l 2 ω = ϕ ˙ r − ϕ ˙ l r \left\{ {\begin{array}{ccccccccccccccc}{v = \frac{{{{\dot \phi }_r} + {{\dot \phi }_l}}}{2}}\\{\omega = \frac{{{{\dot \phi }_r} - {{\dot \phi }_l}}}{r}}\end{array}} \right. {v=2ϕ˙r+ϕ˙lω=rϕ˙rϕ˙l    联立得到下列关系式: { x ˙ = ϕ ˙ r + ϕ ˙ l 2 cos ⁡ θ y ˙ = ϕ ˙ r + ϕ ˙ l 2 sin ⁡ θ θ ˙ = ϕ ˙ r − ϕ ˙ l r \left\{ {\begin{array}{ccccccccccccccc}{\dot x = \frac{{{{\dot \phi }_r} + {{\dot \phi }_l}}}{2}\cos \theta }\\{\dot y = \frac{{{{\dot \phi }_r} + {{\dot \phi }_l}}}{2}\sin \theta }\\{\dot \theta = \frac{{{{\dot \phi }_r} - {{\dot \phi }_l}}}{r}}\end{array}} \right. x˙=2ϕ˙r+ϕ˙lcosθy˙=2ϕ˙r+ϕ˙lsinθθ˙=rϕ˙rϕ˙l

6. 机器人位姿

    机器人的坐标系包括如下几个类别:世界坐标系(World coordinate system)、基坐标系(Base coordinate system)、工具坐标系(Tool coordinate system)和工件坐标系(Object coordinate system)。有很多大佬将这方面讲得很好,本文便不在这里多做赘述。参考链接1参考链接2
在这里插入图片描述
    同样以两轮差速小车为例,给定小车一个方向,进行行驶。
    设,世界坐标系: { X I , Y I } \left\{ {{X_I},{Y_I}} \right\} {XI,YI};机器人坐标系: { X R , Y R } \left\{ {{X_R},{Y_R}} \right\} {XR,YR};机器人位置坐标: ξ I = [ x y θ ] T {\xi _I} = {\left[ {\begin{array}{ccccccccccccccc}x&y&\theta \end{array}} \right]^T} ξI=[xyθ]T
    在本例中,只用考虑绕z轴方向进行旋转。其旋转矩阵R为: R = [ cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ 0 0 0 1 ] R = \left[ {\begin{array}{ccccccccccccccc}{\cos \theta }&{\sin \theta }&0\\{ - \sin \theta }&{\cos \theta }&0\\0&0&1\end{array}} \right] R=cosθsinθ0sinθcosθ0001    两坐标系对应关系为: ξ R = [ cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ 0 0 0 1 T 0 1 ] ⋅ ξ I = [ R T 0 1 ] ⋅ ξ I {\xi _R} = \left[ {\begin{array}{ccccccccccccccc}{\begin{array}{ccccccccccccccc}{\cos \theta }&{\sin \theta }&0\\{ - \sin \theta }&{\cos \theta }&0\\0&0&1\end{array}}&T\\0&1\end{array}} \right] \cdot {\xi _I} = \left[ {\begin{array}{ccccccccccccccc}R&T\\0&1\end{array}} \right] \cdot {\xi _I} ξR=cosθsinθ0sinθcosθ00010T1ξI=[R0T1]ξI    对时间求导,得
ξ ˙ R = R ( θ ) ξ ˙ I = R ( θ ) ⋅ [ x ˙ y ˙ θ ˙ ] T {\dot \xi _R} = R\left( \theta \right){\dot \xi _I} = R\left( \theta \right) \cdot {\left[ {\begin{array}{ccccccccccccccc}{\dot x}&{\dot y}&{\dot \theta }\end{array}} \right]^T} ξ˙R=R(θ)ξ˙I=R(θ)[x˙y˙θ˙]T

7. 跟踪误差

在这里插入图片描述    如图所示,分别对机器人两个位置的坐标进行求导,得 { x ˙ = v ⋅ cos ⁡ θ y ˙ = v ⋅ sin ⁡ θ θ ˙ = ω \begin{array}{l}\left\{ {\begin{array}{ccccccccccccccc}{\dot x = v \cdot \cos \theta }\\{\dot y = v \cdot \sin \theta }\\{\dot \theta = \omega }\end{array}} \right.\\\end{array} x˙=vcosθy˙=vsinθθ˙=ω { x ˙ d = v d ⋅ cos ⁡ θ d y ˙ d = v d ⋅ sin ⁡ θ d θ ˙ d = ω d \left\{ {\begin{array}{ccccccccccccccc}{{{\dot x}_d} = {v_d} \cdot \cos {\theta _d}}\\{{{\dot y}_d} = {v_d} \cdot \sin {\theta _d}}\\{{{\dot \theta }_d} = {\omega _d}}\end{array}} \right. x˙d=vdcosθdy˙d=vdsinθdθ˙d=ωd    再求得位置偏差 x e 、 y e 、 θ e {x_e}、{y_e}、{\theta _e} xeyeθe [ x e y e θ e ] = [ cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ 0 0 0 1 ] [ x d − x y d − y θ d − θ ] \left[ {\begin{array}{ccccccccccccccc}{{x_e}}\\{{y_e}}\\{{\theta _e}}\end{array}} \right] = \left[ {\begin{array}{ccccccccccccccc}{\cos \theta }&{\sin \theta }&0\\{ - \sin \theta }&{\cos \theta }&0\\0&0&1\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}{{x_d} - x}\\{{y_d} - y}\\{{\theta _d} - \theta }\end{array}} \right] xeyeθe=cosθsinθ0sinθcosθ0001xdxydyθdθ    联立求得 { x ˙ e = ω y e + cos ⁡ θ ( v d cos ⁡ θ d − v cos ⁡ θ ) + sin ⁡ θ ( v d sin ⁡ θ d − v sin ⁡ θ ) = ω y e + v d cos ⁡ θ e − v y ˙ e = − ω x e − sin ⁡ θ ( v d cos ⁡ θ d − v cos ⁡ θ ) + cos ⁡ θ ( v d sin ⁡ θ d − v sin ⁡ θ ) = − ω x e + v d sin ⁡ θ e θ ˙ e = ω d − ω \left\{ \begin{array}{l}\begin{array}{ccccccccccccccc}{{{\dot x}_e} = \omega {y_e} + \cos \theta ({v_d}\cos {\theta _d} - v\cos \theta ) + \sin \theta ({v_d}\sin {\theta _d} - v\sin \theta )}\\{ = \omega {y_e} + {v_d}\cos {\theta _e} - v}\end{array}\\\begin{array}{ccccccccccccccc}{{{\dot y}_e} = - \omega {x_e} - \sin \theta ({v_d}\cos {\theta _d} - v\cos \theta ) + \cos \theta ({v_d}\sin {\theta _d} - v\sin \theta )}\\{ = - \omega {x_e} + {v_d}\sin {\theta _e}}\end{array}\\{{\dot \theta }_e} = {\omega _d} - \omega \end{array} \right. x˙e=ωye+cosθ(vdcosθdvcosθ)+sinθ(vdsinθdvsinθ)=ωye+vdcosθevy˙e=ωxesinθ(vdcosθdvcosθ)+cosθ(vdsinθdvsinθ)=ωxe+vdsinθeθ˙e=ωdω { x ˙ e = ω ⋅ y e − v + v d cos ⁡ θ e y ˙ e = − ω ⋅ x e + v d sin ⁡ θ e θ ˙ e = ω d − ω \left\{ \begin{array}{l}{{\dot x}_e} = \omega \cdot {y_e} - v + {v_d}\cos {\theta _e}\\{{\dot y}_e} = - \omega \cdot {x_e} + {v_d}\sin {\theta _e}\\{{\dot \theta }_e} = {\omega _d} - \omega \end{array} \right. x˙e=ωyev+vdcosθey˙e=ωxe+vdsinθeθ˙e=ωdω

8. 控制律设计

    在跟踪误差中,求得了 x e 、 y e 、 θ e {x_e}、{y_e}、{\theta _e} xeyeθe的导数 { x ˙ e = ω ⋅ y e − v + v d cos ⁡ θ e y ˙ e = − ω ⋅ x e + v d sin ⁡ θ e θ ˙ e = ω d − ω \left\{ \begin{array}{l}{{\dot x}_e} = \omega \cdot {y_e} - v + {v_d}\cos {\theta _e}\\{{\dot y}_e} = - \omega \cdot {x_e} + {v_d}\sin {\theta _e}\\{{\dot \theta }_e} = {\omega _d} - \omega \end{array} \right. x˙e=ωyev+vdcosθey˙e=ωxe+vdsinθeθ˙e=ωdω    当 v d 、 ω d 、 d ω d d t 、 d v d d t {v_d}、{\omega _d}、\frac{{d{\omega _d}}}{{dt}}、\frac{{d{v_d}}}{{dt}} vdωddtdωddtdvd都有界时,按照一定的控制律进行设计,最终使得 { x e → 0 y e → 0 θ e → 0 \left\{ \begin{array}{l}{x_e} \to 0\\{y_e} \to 0\\{\theta _e} \to 0\end{array} \right. xe0ye0θe0


声明

本人所有文章仅作为自己的学习记录,若有侵权,联系立删。

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuan〇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值