java 行驶轨迹模拟 汽车行驶轨迹模拟_最小值


最近在读KEVIN M.LYNCH和FRANK C. PARK的《Modern Robotics》。在其配套习题中发现一道有意思的轨迹规划问题,比较典型地说明了如何在轨迹规划中考虑动力学问题。

本文结合了原书的内容和自己的理解,如有不当之处,感谢指正。

另:《Modern Robotics》正文和配套习题都能在官网下载电子版本。

一道例题


java 行驶轨迹模拟 汽车行驶轨迹模拟_ci_02

图1


假设你驾驶一辆小车想要尽快回家看一场比赛直播。你家离你有


远,回家的路是笔直的。如图1所示,这条路在第



间限速



我们用


来表示小车在路上的位置,令


为关于位置参数


的函数,即


。显然,小车位置满足如下函数:



小车的动力学方程为:



其中,


是汽车发动机(为正)或刹车(为负)所能提供的加速度。


是空气阻力等因素所形成的非线性阻尼。由于汽车发动机的动力和刹车阻力是有限的,因此加速度需要满足如下约束:


,且非线性阻尼常数



  1. 假设没有交通规范限速,这辆小车最高能够在直线道路上跑多快?

:当汽车发动机所能提供的最大动力


与阻力相平衡时,汽车速度达到最大,此时汽车加速度为0,即


2. 对于题目已知的加速度的限制,在


平面上可以表示为如图2所示。要求:(1)在图中画一条虚线线来表示第1题中计算出的最大速度;(2)选取一些点,用锥形范围表示出对应的加速度限制;(3)大致规划出一条时间最优曲线,使得汽车在最短时间内到家,且要刚好停在家门口。


java 行驶轨迹模拟 汽车行驶轨迹模拟_轨迹曲线_03

图2

:这道题需要看懂


相图,接下来对此进行简单讲解:




相图,加速度限制与时间最优规划


假如有这样的轨迹规划任务:已知物体要通过一条确定的路径,要求规划该物体在每个位置处的速度和加速度。我们用位置参数


表示运动物体在整个路径中所处的位置。


表示物体处于路径起点,


表示物体处于路径终点。相应的


表示速度,


表示加速度。则我们可以利用所谓


相图来进行该轨迹规划任务。


如图3所示为一个典型的


相图,其横轴为位置参数


,纵轴为速度参数


。其上有一条曲线,连接了位置起点


和终点


,并表示出了轨迹上各位置点处的速度。可以看到,曲线的起点和终点纵坐标均为0,说明该运动从静止状态出发,最终刚好停在终点处。


java 行驶轨迹模拟 汽车行驶轨迹模拟_java 行驶轨迹模拟_04

图3

进一步考虑运动的加速度限制。如图4所示,我们任取一点


的切线,初中数学知识告诉我们,曲线上一点的切线代表坐标在该点处的变化率。具体来说,该切线的横坐标分量代表横坐标(位置参数


)变化率,即速度


;纵坐标分量代表纵坐标(速度参数


)的变化率,即加速度



java 行驶轨迹模拟 汽车行驶轨迹模拟_最小值_05

图4

有意思的事情发生了,


曲线某点的纵坐标代表速度


,而该点处切线的横坐标分量也代表速度


。换言之,对于


曲线上任意一点处的切线,其横向分量的值是确定的(等于该点的纵坐标值)。因此切线的方向完全取决于其纵向分量的值,也就是加速度



假如我们给出点


的加速度限制


,将



作为切线的纵向分量,则我们可以绘制如图4所示的一个锥形区域,该区域由两根加粗的箭头组成,分别代表加速度取最大值、最小值时的切线方向。很容易知道,当我们进行


轨迹曲线规划时,曲线的切线方向必须位于这一锥形区域内,才能满足加速度限制。


假如有图5所示的


曲线规划和对应的加速度限制。可以看到,这一条曲线是不合理的,因为曲线的切线低于加速度下限,这意味着该段减速超过了实际的减速能力。


java 行驶轨迹模拟 汽车行驶轨迹模拟_轨迹曲线_06

图5

那么,如果我们想要使整个运动所耗费的时间最少(时间最优规划),该轨迹曲线在


平面上该如何表示呢。这里直接引用结论,不作详细证明:

要想使运动所耗费的时间最少,那么整个运动过程应处于如下两种状态:以最大的加速度进行加速,或以最大的(负)加速度减速。我们将这种运动控制方法称之为bang-bang控制。

bang-bang控制的时间最优性是很容易理解的。如图6所示的


平面上有两条轨迹曲线。上方曲线满足bang-bang控制条件,下方曲线不满足。可以看到,对于满足bang-bang条件的曲线,以加速度切换点


为分界,前半段以最大加速度进行加速,曲线始终与锥形上界重合;后半段以最大(负)加速度减速,曲线始终与锥形下界重合。其路径上任意一点的速度都大于不满足bang-bang曲线上对应点的速度,因此其所耗费时间是最短的。


java 行驶轨迹模拟 汽车行驶轨迹模拟_ci_07

图6

最后说明一个细节:加速度切换点


确定的依据是什么呢?实际上,我们在进行规划时,通常从


开始正向绘制前半段曲线,从


处开始反向绘制后半段曲线,并保证曲线始终与加速度锥形相切。两段曲线的交点就是加速度切换点


这样才能保证物体最终能恰好停在终点处。


现在回到题目中,可以看到题中给出的


图(图2)有两组相互交错的曲线。这两组曲线的切线就分别对应题中给出的最大正加速度和最大负加速度。我们按照bang-bang控制的原则绘制轨迹曲线如图7,以满足小车自身动力学和交通法规的速度约束。


java 行驶轨迹模拟 汽车行驶轨迹模拟_ci_08

图7

可以看出,小车动力学的速度限制253.55km/h没有发挥约束作用,因为即使按照最大正加速度加速,也无法在允许的路程范围内达到该速度限制;但交通法规的速度限制


发挥了作用,小车需要在适当的位置开始以最大负加速度减速,以保证在


位置处降速到


;行驶通过限速段后,再继续以bang-bang控制进行加速与减速。

可以看到,除了限速段以外,其余曲线段均满足bang-bang原则。只要按照该曲线进行驾驶,就能在最短的时间内回到家中。

参考文献

[1] MODERN ROBOTICS MECHANICS, PLANNING, AND CONTROL Practice Exercises,Tito Fernandez, Kevin Lynch, Huan Weng, and Zack, December 6, 2018