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

article/2025/8/30 0:32:34

文章目录

  • 1. 位姿自由度
  • 2. TDOFandCDOF
  • 3.运动学与动力学
  • 4. 运动控制问题描述
  • 5. 运动学建模
  • 6. 机器人位姿
  • 7. 跟踪误差
  • 8. 控制律设计
  • 声明


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


声明

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


http://chatgpt.dhexx.cn/article/70rKIkr2.shtml

相关文章

车辆、行人跟踪一网打尽,超轻量、多类别、小目标跟踪系统开源了!

在琳琅满目的视觉应用中,对车辆、行人、飞行器等快速移动的物体进行实时跟踪及分析,可以说是突破安防、自动驾驶、智慧城市等炙手可热行业的利器~ 但要实现又快又准的持续跟踪,往往面临被检目标多、相互遮挡、图像扭曲变形、背景杂乱、视角差…

车辆轨迹跟踪算法---几何跟踪算法

车辆轨迹跟踪算法 车辆轨迹跟踪算法 车辆轨迹跟踪,目前的主流方法分为两类:基于几何追踪的方法和基于模型预测的方法; 几何追踪方法–pure-pursuit (纯跟踪)算法 阿克曼几何的简化版 – 车辆单轨模型(自行车模型)采…

MPC车辆轨迹跟踪----理论推导

MPC控制简介 众所周知,控制算法中,PID的应用占据了90%,而另外10%就是这次的主角MPC控制算法。 MPC控制算法全称模型预测控制,它相对比PID有着多输入,多输出以及更加平稳的特点。并且最重要的是…

车辆检测和跟踪技术的研究与实现

一、引言 车辆的持续跟踪对于肇事车辆的追捕以及减少交通事故具有重要意义。随着计算机技术的快速发展,推动着视频图像的智能化应用。当前对于视频图像的研究热点之一,就包括运动目标跟踪。当前对于运动目标的研究主要集中在单个摄像头的跟踪&#xff0…

自动驾驶:车道线检测、车速检测、实时通行跟踪、基于视频的车辆跟踪及流量统计

日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) CNN:RCNN、SPPNet、Fast RCNN、Faster RCNN、YOLO V1 V2 V3、SSD、FCN、SegNet、U-Net、DeepLab V1 V2 V3、Mask RCNN 自动驾驶&…

yolo-车辆测距+前车碰撞预警(追尾预警)+车辆检测识别+车辆跟踪测速(原创算法-毕业设计)

目录 前言一、环境配置二、车辆检测、实时跟踪测速算法及代码解读1、主函数各参数含义2、算法实现3、核心代码4、效果展示 二、跟车距离测量算法及代码解读1、主函数各参数含义2、算法实现3、效果展示 三、前车碰撞预警(追尾预警)算法及代码解读1、算法实…

车辆跟踪技术概述zt

摘 要 基于视频的车辆检测器近年来在智能交通系统(ITS)中得到了越来越广泛的应用。本文介绍了近年来提出的一些主要的基于视频的车辆检测与跟踪技术,并对这些技术进行了分类。同时分析比较了各种方法的优缺点。最后,说明了这一领域仍然存在的问题和对可能…

车辆跟踪检测

这个是GUI的界面,我们分别对这个界面做介绍。 第一个窗口显示的是原始的视屏 第二个窗口是提取视屏的背景。 第三个窗口是汽车跟踪,将汽车跟踪效果显示。 第四个窗口是画线,将用户画线后的区域分为两个区间,通过检测区间后&…

【车辆行人检测和跟踪数据集及代码汇总】

车辆行人检测和跟踪数据集和代码汇总 1. 车辆检测和跟踪1.1 车辆检测数据集和训练权重1.2 车辆跟踪 2. 行人检测和跟踪2.1 行人检测数据集和训练权重2.2行人多目标跟踪 3. 车辆行人检测和跟踪3.1车辆行人检测数据集和训练权重3.2 车辆行人多目标跟踪 1. 车辆检测和跟踪 1.1 车…

自动驾驶路径跟踪控制——纯追踪控制

文章目录 1.自行车模型(汽车二自由度模型)注意点Point1Point2 2.纯追踪控制注意点Point1Point2Point3 3.相关代码参考文献声明 全局路径由一系列路径点构成,这些路径点只要包含 空间位置信息即可,也可以包含 姿态信息&#xff0…

超强实时跟踪系统首次开源!支持跨镜头、多类别、小目标跟踪!

在琳琅满目的视觉应用中,对车辆、行人、飞行器等快速移动的物体进行实时跟踪及分析,可以说是突破安防、自动驾驶、智慧城市等炙手可热行业的利器。 但要实现又快又准的持续跟踪,往往面临被检目标多、相互遮挡、图像扭曲变形、背景杂乱、视角差…

车辆路径跟踪算法及数学模型

一、纯追踪算法 基于当前车辆后轮中心位置,在参考路径上向Ld(自定义)的距离匹配一个瞄准点,假设车辆后轮中心点可以按照一定的转弯半径R行驶抵达该瞄准点,然后根据预瞄准距离Ld,转弯半径R,车辆…

五、车辆轨迹追踪的优化控制

5.1、车辆横向动力学模型 车辆动力学模型一般包括用于分析车辆平顺性的质量-弹簧-阻尼模型和分析车辆操纵稳定性的车辆-轮胎模型。两者研究的侧重点不同,平顺性分析的重点是车辆的悬架特性,而车辆的操纵稳定性分析的重点是车辆纵向和侧向力学特性。车辆…

PyCharm Professional 2016.1 破解 激活

接上一篇博文,尝试着激活一下 PyCharm Professional 2016.1, 居然也成功了。 方法同样来自 Rover12421 大神。 1.从官网下载 PyCharm Professional 2016.1 安装。 2.下载 破解补丁 并解压,记住路径 3.编辑 PyCharm 安装目录下 bin 文件夹中的…

Python:PyCharm 永久破解方法,真的超超超超超超超超超级简单!!!

准备工作: 1.破解包 >>>下载链接>>> 提取码:jjbf 2.注册码 .>>>获取地址>>> 第一步 进入PyCharm 的安装目录的bin文件夹下,把破解包放到该目录。 第二步 把bin 目录下的 pycharm.exe.vmoptions 和…

Pycharm Professional(专业版)完美破解,永久激活

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Djang…

【pycharm】WiFi密码破解【简单易学】

文章目录 前言一、环境搭建准备好密码的字典包安装pywifi 二、破解源码三、实现结果总结 前言 今天断网,突然想借一下邻居的WiFi,居然破天荒的成功了,感觉也是很幸运吧,所以就来分享一下 一、环境搭建 准备好密码的字典包 假设…

linux下载安装pycharm专业版(含破解)

参考: https://blog.csdn.net/sinat_41029600/article/details/80594993 https://blog.csdn.net/c2366994582/article/details/79146370 下载 https://www.jetbrains.com/pycharm/download/#sectionlinux 安装 进入到pycharm下载目录,将软件移动到/o…

pycharm解密

第一题 Y3liZXJwZWFjZXtXZWxjb21lX3RvX25ld19Xb3JsZCF9 要求我们将上面这串东西用base64解密 我们在第一行调用base64,将上面那串字符赋值给a,再用 base64.b64decode(a).decode("utf-8") 对a进行解密,然后赋值给b,最…

Pycharm 2017.3.3永久破解

目录 一、文档编写的目的 二、破解步骤 2.1 下载ideaIU-2017.3.5.exe安装包 2.2 下载破解码 JetbrainsCrack-2.6.10-release-enc.jar 2.3 安装pycharm-professional-2017.3.3.exe 2.4 启动激活 一、文档编写的目的 PyCharm是一种Python IDE,带有一整套可以…