3.c 动态规划代码解析

category
type
status
slug
date
summary
tags
password
icon
落花人独立,微雨燕双飞。
—晏几道《临江仙》
🏰代码及环境配置:请参考 环境配置和代码运行!

本节提供了动态规划的代码测试:

3.c.1 dp path代码实现

在利用动态规划做横向决策时,我们需要先搜出一条满足约束的轨迹,然后利用最优轨迹和障碍物之间的关系做left nudge,right nudge和no nudge的决策。
在FrenetFrame坐标系下,首先需要沿着S和L的方向采集waypoint,具体代码如下:
同时,我们需要设计评估函数,此节仅仅为了测试,因此只实现了横向距离的惩罚和碰撞风险的惩罚,读者可以根据自己需求设计更多的评估函数:
最后,我们利用动态规划的转移方程,算出每个waypoint的最优cost和最优父节点。

3.c.2 dp path代码测试

main 函数中,我们设置下起始点和环境信息,即可利用动态规划得到一条最优路径,然后基于optimal path和障碍物之间的位置关系,即得到对障碍物的横向决策。
notion image
 
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...