【无人车路径规划】Frenet下的无人车路径规划(Python代码实现)

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Python代码实现


💥1 概述

随着近几年科技的发展,无论是城市道路的自动驾驶、复杂路况中的军方补给,还是仓储快递物流运输,无人车都发挥着十分重要的作用。路径规划作为无人车的核心技术,更加成为人们关注的焦点。无人车的全局路径规划,是在全局环境中规划出一条从起始点到目标区域的无碰撞路径。无人车将这条路径作为参考路径,在沿其向前行驶的过程中,周边环境并非是一成不变的,此时需要无人车利用自身的传感器,实时感知周边一定范围内的局部环境变化,进而对各种突现障碍物进行躲避,完成局部避障任务。

📚2 运行结果

 

  部分代码:

tx, ty, tyaw, tc, csp = generate_target_course(w_x, w_y)

# initial state, all value are under Frenet Coordinate
# current speed
c_speed = 10/3.6
# current d position (lateral)
c_d = 2
# current d speed
c_d_d = 0
# current d acceleration
c_d_dd = 0
# current s position
s0 = 0

if show_animation:
    # showing the obstacles and the global path
    plt.plot(ob[:, 0], ob[:, 1], 'ob')
    plt.plot(w_x, w_y, '-r')
    plt.savefig('global_path.png')
    plt.show()

tx, ty, tyaw, tc, csp = generate_target_course(w_x, w_y) # initial state, all value are under Frenet Coordinate # current speed c_speed = 10/3.6 # current d position (lateral) c_d = 2 # current d speed c_d_d = 0 # current d acceleration c_d_dd = 0 # current s position s0 = 0 if show_animation: # showing the obstacles and the global path plt.plot(ob[:, 0], ob[:, 1], 'ob') plt.plot(w_x, w_y, '-r') plt.savefig('global_path.png') plt.show()

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]刘依卓. 无人车全局路径规划与局部避障方法研究[D].哈尔滨工程大学,2021.DOI:10.27060/d.cnki.ghbcu.2021.000331. 

[2]袁春,龚城,何成诚,李杨,郭宗环.Frenet坐标系及凸近似避障原理的无人车局部路径规划[J].重庆理工大学学报(自然科学),2022,36(04):59-67.

🌈4 Python代码实现

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Frenet坐标系是一种常用于无人驾驶路径规划中的局部路径规划方法。它是由两个坐标系组成的,分别是Frenet纵向坐标系和横向坐标系。 Frenet纵向坐标系主要用于描述车辆在路径上的纵向运动,它的原点位于路径上的某一点,纵轴与路径的切线方向一致。其中,s轴表示纵向距离,表示车辆在路径上行驶的位置。而d轴表示横向距离,表示车辆在路径上的横向偏移量,即车辆离路径的距离。 Frenet横向坐标系用于描述车辆在路径上的横向运动,它的原点也位于路径上的某一点,横轴与路径的法向方向(垂直于切线方向的方向)一致。其中,l轴表示横向距离,表示车辆在路径的左右偏移量,即车辆相对于路径的位置。而r轴表示横向曲率半径,表示车辆所在位置的曲率半径,它与路径的曲率有关。 使用Frenet坐标系进行路径规划时,首先需要根据路径曲线,将路径离散化为一系列的路径点。然后,根据车辆当前状态(包括位置、速度、加速度等),在Frenet坐标系下进行规划。局部路径规划的目标是生成一条较短且安全的路径,能够使车辆沿着路径稳定行驶。 在Frenet坐标系下,路径规划算法主要涉及到横向运动和纵向运动的规划。横向运动规划主要考虑车辆与车道的对齐以及避免碰撞等因素,通常使用虚拟弓形路径或者多项式拟合等方法进行规划。纵向运动规划主要考虑车辆的速度和加速度等因素,以及与前车的保持安全距离和行驶速度的匹配等要求,一般采用经典的PID控制方法或者模型预测控制等技术。 总之,Frenet坐标系是无人驾驶路径规划中一种常用的局部路径规划方法,通过将车辆位置在路径上的纵向和横向运动分解为Frenet坐标系下的变量,并结合车辆动力学和环境约束,可以实现车辆的稳定行驶和避免碰撞等目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值