运动与路径规划

代价地图

代价地图是把机器人周围环境切成一格格小方块的地图,每个方块里存着一个数字,表示穿过那个位置有多“贵”、有多冒险。一块空旷地面对应的方块很便宜,所以代价很低;正好压在墙上的方块是禁止通行的,代价就拉到最高;而紧挨着墙的方块代价中等偏高,是在提醒机器人留出一点余地。当规划器寻找路线时,会沿着每一条候选路径把这些逐格的代价加起来,并偏好总和最小的那条路线——就像在过溪流时,挑选一组最便宜的踏脚石一样。

让代价地图变得安全的一个关键技巧是障碍物膨胀:在每个真实障碍物的周围,代价地图会涂上一圈代价升高的光晕,并随距离逐渐淡出,仿佛把障碍物吹胀得比它实际更大。之所以这样做,是因为机器人并不是一个点——它有宽度——所以如果允许路径贴着墙的真实边缘擦过去,机器人的身体其实会撞上。通过把障碍物膨胀,规划器就能继续把机器人当作一个点来处理,同时仍然留出一段真正的安全间隙。光晕的大小通常设为机器人自身的半径,再加上一点让人放心的余量。

代价地图通常是根据实时传感器数据——激光扫描、深度相机、碰撞条——不断重新构建并持续更新的,因此它既能捕捉到存储地图中固定的墙,也能捕捉到新出现的东西,比如一个走进走廊的人。导航系统常常同时维护两层:一层是覆盖整个区域、变化缓慢的全局代价地图,用来规划总体路线;另一层是围绕机器人、更新很快的局部代价地图,用来实时躲避突发情况。

一台仓库机器人的代价地图上,每根货架腿周围都鼓起一圈厚厚的红色光晕;规划器沿着代价便宜的绿色中线穿过过道,自动让机器人的“肩膀”避开货架。

膨胀后的障碍物,让把机器人当作一个点的规划器也能安全地驾驭一台宽大的机器。

这些方块通常称为“栅格单元”。机器人绝不可进入的单元是“致命”单元;它们周围那圈逐渐淡去的警戒光晕,就是“膨胀层”。

又称
cost map代价栅格