基于V2X的弱势交通参与者碰撞预警算法

过滤算法

为了减少计算量,对不存在碰撞风险的目标进行滤除:

  1. 计算行人和车辆之间的相对位置 ( Δ x , Δ y ) (\Delta x,\Delta y) (Δx,Δy),设定阈值 x 0 , y 0 x_0,y_0 x0,y0得到车辆前方的行人;
  2. 根据行人的朝向做二次有效目标筛选,由于行人运动不确定性大,可以采用多次朝向进行加权判断行人的朝向。

上述过滤算法选择车辆坐标系作为全局坐标系。

预警算法

采用轨迹预测(详情见主页)和碰撞检测(详情见主页)实现弱势交通参与者预警算法。

考虑到人的运动具有不确定性大的特点,采用考虑高斯噪声的CV模型预测行人未来的位置。此时人的位置不再是一个质点,而是具有协方差的椭圆,如果 x x x y y y方向上的方差相同而且互相独立,即初始协方差矩阵为 P 0 = k ⋅ e y e ( 2 ) P_0=k\cdot eye(2) P0=keye(2),那么人可能的位置这是一个圆,这有利于后续的碰撞检测的实现。

车辆运动具有规则性强的特点,可以采用CTRA模型预测将来的位置。考虑到车的形状,可以采用 2.5 × 6 m 2.5\times6 \rm m 2.5×6m的矩形来近似代替车辆的真实俯视图。

因此,只需要在每一个预测步内,做圆和矩形模型是否相交的判断,即可知道车辆和行人是否存在碰撞风险。伪代码如下;

X_car = [x_car y_car v_car heading_car yaw_rate_car a_car];
X_person = [x_p y_p v_p heading_p];
for i = 1 : 1 : 30 # 仿真步长为0.1,预测未来3s
	预测人在当前时刻下的位置;
	预测车在当前时刻下的位置;
	圆和矩形相交判断;
	if 相交
		disp('warning');
		break;
	end
end

你可能感兴趣的:(自动驾驶,算法)