主要内容

横向控制器Stanley

采用Stanley法控制车辆的转向角进行路径跟随

自从R2018b

  • 横向控制器赤柱座

库:
自动驾驶工具箱/车辆控制

描述

横向控制器StanleyBlock计算转向角度指令(以度为单位),根据车辆当前的速度和方向,调整车辆的当前姿态以匹配参考姿态。控制器使用Stanley方法计算该命令[1],其控制律基于自行车的运动学和动力学模型。要在模型之间进行更改,请使用汽车模型参数。

  • 运动学自行车模型适用于低速环境下的路径跟踪,如停车场,惯性效应最小。

  • 动态自行车模型适用于高速公路等惯性效应较明显的高速环境下的路径跟踪。该车辆模型提供了描述车辆动力学的附加参数。

港口

输入

全部展开

参考姿态,指定为[xyΘ)向量。xy单位是米,和Θ以度为单位。

xy指定车辆转向的参考点。Θ指定路径在此参考点处的方向角,并且在逆时针方向上为正。

  • 对于正在前进的车辆,参考点是路径上最接近车辆前轴中心的点。

    向前行驶的车辆,参考点在已标记的路径上。单位是世界坐标。

  • 对于反向运动的车辆,参考点是路径上最接近车辆后桥中心的点。

    参考点在道路上有标记的反向行驶车辆。单位是世界坐标。

数据类型:|

车辆的当前姿态,指明为[xyΘ)向量。xy单位是米,和Θ以度为单位。

xy指定车辆的位置,定义为车辆后桥的中心。

Θ指定车辆在位置(xy),逆时针方向为正。

有姿态标记的车辆。单位是世界坐标。

有关车辆姿势的更多详细信息,请参阅自动驾驶工具箱中的坐标系统

数据类型:|

车辆当前的纵向速度,用实标量表示。单位是米每秒。

  • 如果车辆在向前运动,那么这个值必须大于0。

  • 如果车辆处于反向运动状态,则此值必须小于0。

  • 值为0表示车辆处于静止状态。

数据类型:|

车辆行驶方向,指定为1向前移动或1用于反向运动。驾驶方向决定了位置误差和角度误差,用于计算转向角指令。有关详细信息,请参见算法

参考点处的路径曲率,单位为每米弧度,用实标量表示。

  • 对于正在前进的车辆,参考点是路径上最接近车辆前轴中心的点。

    向前行驶的车辆,参考点在已标记的路径上。单位是世界坐标。

  • 对于反向运动的车辆,参考点是路径上最接近车辆后桥中心的点。

    参考点在道路上有标记的反向行驶车辆。单位是世界坐标。

可以得到路径的曲率曲率a的输出端口路径平滑样条块。你也可以从a的输出车道边界结构中得到车道边界的曲率场景的读者块。

依赖关系

要启用该端口,请设置汽车模型动态自行车模型

飞行器当前的偏航率,单位为每秒度,用实标量表示。当前的偏航率是飞行器角速度的变化率。

依赖关系

要启用该端口,请设置汽车模型动态自行车模型

车辆当前的转向角度,以度为单位,指定为实标量。这个值在逆时针方向上为正。

前轮已转动并有转向角标志的车辆

有关详细信息,请参见自动驾驶工具箱中的坐标系统

依赖关系

要启用该端口,请设置汽车模型动态自行车模型

输出

全部展开

转向角指令,以度为单位,作为实标量返回。这个值在逆时针方向上为正。

前轮已转动并有转向角标志的车辆

有关详细信息,请参见自动驾驶工具箱中的坐标系统

参数

全部展开

选择车辆模型类型,设置block使用的Stanley法控制律。

  • 自行车运动学模型-在停车场等低速环境下的路径跟踪运动学自行车模型,惯性效应最小

  • 动态自行车模型-动态自行车模型,用于高速公路等惯性效应较明显的高速环境下的路径跟踪

车辆前进时的位置增益,用正标量表示。这个值决定了位置误差对转向角度的影响程度。典型值在[1,5]范围内。增加这个值可以增加转向角度的大小。

车辆反向运动时的位置增益,用正标量表示。这个值决定了位置误差对转向角度的影响程度。典型值在[1,5]范围内。增加这个值可以增加转向角度的大小。

偏航率反馈增益,指定为非负实标量。这个值决定了当block计算转向角命令时,车辆当前的偏航率被赋予了多少权重。

依赖关系

若要启用该参数,请设置汽车模型动态自行车模型

转向角反馈增益,指定为非负实标量。这个值决定了当前的转向角度指令,SteerCmd,以及当前的转向角度,CurrSteer,影响下一个转向角度指令。

依赖关系

若要启用该参数,请设置汽车模型动态自行车模型

车辆前轴和后轴之间的距离,以米为单位,用实标量表示。此值仅适用于车辆向前行驶时,也就是说,当方向输入端口为1

依赖关系

若要启用该参数,请设置汽车模型自行车运动学模型

车辆质量,以公斤为单位,用正实标量表示。

依赖关系

若要启用该参数,请设置汽车模型动态自行车模型

从车辆质心到前轮轴的纵向距离,单位为米,用正实标量表示。

依赖关系

若要启用该参数,请设置汽车模型动态自行车模型

从车辆质心到后轮轴的纵向距离,单位为米,用正实标量表示。

依赖关系

若要启用该参数,请设置汽车模型动态自行车模型

前轮胎的转弯刚度,单位为牛顿/弧度,表示为正实标量。

依赖关系

若要启用该参数,请设置汽车模型动态自行车模型

车辆允许的最大转向角度,以度为单位,在(0,180)范围内以实标量指定。

的输出SteerCmd端口饱和到[-]范围),的值是最大操舵角(度)参数。

  • 以下值:设置为-

  • 值高于设置为

提示

  • 随着车辆环境的变化,您可以在自行车型号之间切换。添加两个横向控制器Stanley块到一个变体子系统,并为每个块指定不同的自行车模型。使用示例请参见横向控制教程

算法

为了计算转向角度指令,控制器将当前姿态相对于参考姿态的位置误差和角度误差最小化。车辆的行驶方向决定了这些误差值。

当车辆向前行驶时(方向参数是1):

  • 位置误差是从前轴中心到路径上参考点的横向距离。

  • 角误差是前轮相对于参考路径的角度。

当车辆反向行驶时(方向参数是1):

  • 位置误差是从后桥中心到路径上参考点的横向距离。

  • 角误差是后轮相对于参考路径的角度。

有关控制器如何最小化运动学和动态自行车模型的这些误差的详细信息,请参见[1]

参考文献

[1] Hoffmann, Gabriel M., Claire J. Tomlin, Michael Montemerlo和Sebastian Thrun。面向越野驾驶的自动驾驶汽车轨迹跟踪:控制器设计、实验验证和赛车。美国控制会议.2007,第2296-2301页。doi: 10.1109 / ACC.2007.4282788

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

版本历史

在R2018b中引入