自动平行停车。路径规划、路径跟踪和控制

1,640 阅读2分钟

A*算法,插值,和MPC控制器

本文包含一个在虚拟环境中的自动平行停车系统的python实现,包括路径规划、路径跟踪和平行停车。代理人在环境中导航其路线,并由MPC控制器引导到指定的停车位置。你可以在这里找到完整的项目。

环境

开发自动停车系统的第一步是设计和开发一个能够使用OpenCV库进行视觉渲染的环境。这个环境在environment.py中作为一个类实现,并在开始时接收障碍物env = Environment(obs)。可以使用env.render(x,y,angle)来放置代理。

下面显示了一个环境的样本。你可以从1到24中选择停车点。

路径规划

A*算法

代理人将使用A*找到一条从起点到目标的路径。这个来自PythonRobotics的A*实现考虑了障碍物和机器人半径等参数。

用B-spline插值路径

在离散的100*100空间中找到路径后,使用B-spline对路径进行平滑处理,并将其缩放到1000*1000的环境空间中。其结果是一组点来引导我们的代理!

medium.com/media/3e7bd…

路径跟踪

汽车的运动学模型是。

x = vcos(ϕ) 

状态向量是。

z=[x,y,v,ϕ]

x:x-位置,y:y-位置,v:速度,φ:偏航角

输入向量为

u=[a,δ]

a:加速度,δ:转向角

控制方式

MPC控制器根据模型控制车辆的速度和转向,汽车被引导通过路径。有一个选项是使用MPC的线性化模型。在这种情况下,MPC将运动学模型围绕操作点线性化,然后进行优化。

medium.com/media/7b55d…

自动停车

这一部分由4条规则组成,代理人必须根据停车位置选择。首先,代理将找到一条通往停车位置的路径,然后计算到达的角度。根据到达的角度,代理选择一个坐标作为确保1。之后,使用下面提到的2个圆方程,从确保1到确保2规划停车路径。MPC控制代理并将车停在确保2的坐标上。

总结

你可以从Github下载整个项目,并使用这个命令运行代码。

$ python main_autopark.py --x_start 0 --y_start 90 --phi_start 0 --parking 7

可以看出,汽车在MPC控制器的引导下,沿着它的路径前进,直到到达环境中的停车点。最后,汽车与其他车辆并行,停在指定位置。

Pandas团队 在2020-2021年国家Rahneshan竞赛中取得了自主车辆的第一名。

Amirhossein Heydarian, Aida Mohammadshahi,Milad Soltany,Abbas omidi, Amirhossein Kazerooni


自动平行停车。路径规划、路径跟踪和控制》最初发表在《走向数据科学》杂志,人们通过强调和回应这个故事来继续对话。