自动驾驶之控制接口和轨迹拼接
上一讲:b站老王 自动驾驶决策规划学习记录(六)
接着上一讲学习记录b站老王对自动驾驶规划系列的讲解
参考视频:自动驾驶决策规划算法第二章第三节(中) 控制接口,轨迹拼接
笔记
现控制接口(控制输入): x r , y r , θ r , k r , v r , a r x_r,y_r,\theta_r,k_r,v_r,a_r xr,yr,θr,kr,vr,ar
x r , y r , θ r , k r , v r , a r x_r,y_r,\theta_r,k_r,v_r,a_r xr,yr,θr,kr,vr,ar怎么来的
规划:
规划出了trajectory,包含一系列的 x , y , θ , k , v , a , t x,y,\theta,k,v,a,t x,y,θ,k,v,a,t
规划周期为100ms,在trajectory找到t=100ms所对应的
x
,
y
,
θ
,
k
,
v
,
a
x,y,\theta,k,v,a
x,y,θ,k,v,a(找不到就找100ms相邻的2个时间,做插值),作为规划输出发出去。
在规控周期同步时,无问题
在规控周期不同步时,有问题
因为规划已经规划出了10ms,20ms,…,100ms的轨迹,但只把100ms后的点发了出去,必然造成控制效果变差。
所以:原代码中的控制接口不可取,需要改进
改造:
规划直接发一条带时间的轨迹给控制
控制 10ms 搜索trajectory
控制根据当前控制周期的时间,搜索轨迹,找到当前时间对应的
x
,
y
,
.
.
.
,
v
,
a
x,y,...,v,a
x,y,...,v,a,输出给控制算法去跟踪
问题1
轨迹的时间是相对时间,还是绝对时间?
例:16:00:00开始规划 16:00::10规划完成,规划出了4秒轨迹。
答:发绝对时间(推荐),因为做推荐,做控制,绝对时间更直观方便
例:16:00 规划了4秒
问题二:
规划起点
T+100ms作为规划的起点
解释为什么不能从定位的点作为规划起点
控制不完美,导致帧与帧之间的曲线是跳变的
用轨迹拼接,用上一帧的轨迹和当前时候做判断,如果误差不太大,证明控制做的不错,就以上一帧的t+100ms作为规划起点。否则用车辆动力学外推一段时间作为规划的起点