Apollo 10.0 Public Road Planner 详解(Planning代码学习)(四)

路径规划算法总体介绍

Apollo路径规划算力总体可以包含以下几个部分:

  1. 路径决策
  2. 路径优化
  3. 速度决策
  4. 速度优化

以上按照顺序执行
规划步骤描述

路径规划三部曲

在这里插入图片描述
LANE_FOLLOW_PATH任务
LANE_FOLLOW_PATH
LANE_BORROW_PATH任务
LANE_BORROW_PATH
LANE_CHANGE_PATH任务
LANE_CHANGE_PATH

路径二次规划问题

二次规划的标准型如下
m i n i m i z e 1 2 x T P x + q T x s u b j e c t   t o l ≤ A x ≤ u x ∈ R n P ∈ S + n q ∈ R n \begin{aligned}&\mathrm{minimize}\quad\frac{1}{2}x^TPx+q^Tx\\&\mathrm{subject~to}\quad l\leq Ax\leq u\\&x\in\mathbf{R}^n\quad P\in\mathbf{S}_+^n\quad q\in\mathbf{R}^n\end{aligned} minimize21xTPx+qTxsubject tolAxuxRnPS+nqRn
目前求解二次规划问题使用基于ADMM的osqp算法。

定义优化变量

给出参考线:
在这里插入图片描述
将障碍物投影到为frenet坐标系上:
在这里插入图片描述
定义 l ′ = d l d s l'=\frac{dl}{ds} l=dsdl
间隔 Δ s \Delta s Δs将参考线离散化:
l 0 l 1 l 2 l n − 2 l n − 1 l 0 ′ → Δ s l 0 ′ → Δ s l 2 ′ … l n − 2 ′ → Δ s l n − 1 ′ l 0 ′ ′ l 0 ′ ′ l 2 ′ ′ l n − 2 ′ ′ l n − 1 ′ ′ \begin{array}{ccccccccccccc}l_0&&&l_1&&&l_2&&&l_{n-2}&&&l_{n-1}\\l_0^{\prime}&\xrightarrow{\Delta s}&&l_0^{\prime}&\xrightarrow{\Delta s}&&l_2^{\prime}&\ldots&&l_{n-2}^{\prime}&\xrightarrow{\Delta s}&&l_{n-1}^{\prime}\\l_0^{\prime\prime}&&&l_0^{\prime\prime}&&&l_2^{\prime\prime}&&&l_{n-2}^{\prime\prime}&&&l_{n-1}^{\prime\prime}\end{array} l0l0l0′′Δs l1l0l0′′Δs l2l2l2′′ln2ln2ln2′′Δs ln1ln1ln1′′

x = { l 0 , l 1 , … , l n − 1 , l 0 ′ , l 1 ′ , … , l n − 1 ′ , l 0 ′ ′ , l 1 ′ ′ , … , l n − 1 ′ ′ } x=\begin{Bmatrix}l_0,l_1,\ldots,l_{n-1},l_0^{\prime},l_1^{\prime},\ldots,l_{n-1}^{\prime},l_0^{\prime\prime},l_1^{\prime\prime},\ldots,l_{n-1}^{\prime\prime}\end{Bmatrix} x={ l0,l1,,ln1,l0,l1,,ln1,l0′′,l1′′,,ln1′′}

确定优化函数

  • 确保安全、礼貌的驾驶,贴近车道中心线 :
    ∣ l i ∣ ↓ |l_i|\downarrow li
  • 确保舒适的体感,尽量降低横向速度/加速度/加加速度:
    ∣ l i ′ ∣ ↓ , ∣ l i ′ ′ ∣ ↓ , ∣ l i → i + 1 ′ ′ ′ ∣ ↓ |l_i^{\prime}|\downarrow,\quad|l_i^{\prime\prime}|\downarrow,\quad|l_{i\to i+1}^{\prime\prime\prime}|\downarrow li,li′′,lii+1′′′
  • 确保终点接近参考点:
    l e n d = l r e f l_{end}=l_{ref} lend=lref

因为是二次规划,采用二范数作为损失函数,其目标函数为:
m i n f = ∑ i = 0 n − 1 w r e f ( l i − l i − r e f ) 2 + w l l i 2 + w d l l i ′ 2 + w d d l l i ′ ′ 2 + w d d d l l i ′ ′ ′ 2 + w e n d − l ( l n − 1 − l e n d − l ) 2 + w e n d − d l ( l n − 1 ′ − l e n d ′ ) 2 + w e n d − d d l ( l n − 1 ′ ′ − l e n d ′ ′ ) 2 \begin{aligned}&minf=\sum_{i=0}^{n-1}w_{ref}(l_i-l_{i-ref})^2+w_l{l_i}^2+w_{dl}{l_i^{\prime}}^2+w_{ddl}{l_i^{\prime\prime}}^2+w_{dddl}{l_i^{\prime\prime\prime}}^2+w_{end-l}(l_{n-1}-l_{end-l})^2\\&+w_{end-dl}({l_{n-1}^{\prime}}-l_{end}^{\prime})^2+w_{end-ddl}({l_{n-1}^{\prime\prime}}-l_{end}^{\prime\prime})^2\end{aligned} minf=i=0n1wref(liliref)2+wlli2+wdlli

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值