动态窗口:
窗口框的是速度空间的采样点$(v_t, w_t)$,一对$(v_t, w_t)$就代表一段轨迹,轨迹通过机器人底盘的运动学建模得到。
1 | // base_local_planner的simple_trajectory_generator.cpp |
窗口的选择:
速度限制
加速度限制
障碍物制动限制
$dist(v,w)$表示采样点$(v, w)$对应轨迹上离障碍物最近的距离。
确定窗口后进行采样,可以得到一系列轨迹:
轨迹的选择:
原始论文中采用评价函数:
- 方位角评价函数:采用当前采样点设定下,达到模拟轨迹末端时机器人的朝向角与目标点朝向角的差距。
- 空隙评价:当前模拟轨迹上与最近障碍物之间的距离。
- 速度评价:采样点速度与最大速度的差距。
上述评价函数要进行归一化。
算法流程:
1 | BEGIN DWA(robotPose,robotGoal,robotModel) |