横向控制器Stanley
库:
自动驾驶工具箱/车辆控制
描述
的横向控制器StanleyBlock计算转向角度指令(以度为单位),根据车辆当前的速度和方向,调整车辆的当前姿态以匹配参考姿态。控制器使用Stanley方法计算该命令[1],其控制律基于自行车的运动学和动力学模型。要在模型之间进行更改,请使用汽车模型参数。
运动学自行车模型适用于低速环境下的路径跟踪,如停车场,惯性效应最小。
动态自行车模型适用于高速公路等惯性效应较明显的高速环境下的路径跟踪。该车辆模型提供了描述车辆动力学的附加参数。
港口
输入
输出
参数
提示
随着车辆环境的变化,您可以在自行车型号之间切换。添加两个横向控制器Stanley块到一个变体子系统,并为每个块指定不同的自行车模型。使用示例请参见横向控制教程.
算法
为了计算转向角度指令,控制器将当前姿态相对于参考姿态的位置误差和角度误差最小化。车辆的行驶方向决定了这些误差值。
当车辆向前行驶时(方向参数是1
):
的位置误差是从前轴中心到路径上参考点的横向距离。
的角误差是前轮相对于参考路径的角度。
当车辆反向行驶时(方向参数是1
):
的位置误差是从后桥中心到路径上参考点的横向距离。
的角误差是后轮相对于参考路径的角度。
有关控制器如何最小化运动学和动态自行车模型的这些误差的详细信息,请参见[1].
参考文献
[1] Hoffmann, Gabriel M., Claire J. Tomlin, Michael Montemerlo和Sebastian Thrun。面向越野驾驶的自动驾驶汽车轨迹跟踪:控制器设计、实验验证和赛车。美国控制会议.2007,第2296-2301页。doi: 10.1109 / ACC.2007.4282788
扩展功能
版本历史
在R2018b中引入