规划的输入至少包括起终状态、机器人模型、环境表示和约束。规划器输出的是在这些假设下可行的路径或轨迹。执行时环境可能变化,定位可能有误差,控制也可能偏离,因此需要持续检查与重规划。

先把机器人放进空间

工作空间描述机器人和障碍所在的物理空间;配置空间中的一个点则描述整台机器人的构型。六关节机械臂即使在三维房间里工作,配置空间通常也有六个关节维度。机械臂某个连杆碰到障碍,就会使相应构型不可行,不能只检查末端点。

圆盘底盘可把障碍向外膨胀一个机器人半径,再规划中心点。若半径0.2米、额外定位与跟踪余量0.1米,几何上至少需要0.3米膨胀。但矩形底盘的碰撞还与朝向有关,不能用过小圆盘代替真实外形。未知区域是否可穿越也必须由任务明确。

栅格、采样和优化

四邻接栅格、单位边成本时,曼哈顿距离是A*的合适启发函数。允许对角移动或使用带方向、地形、倒车惩罚的状态后,要重新检查启发函数是否仍满足所需条件。搜索在离散图上找到最短路,不等于找到连续空间最短路;分辨率和状态建模决定了问题本身。

PRM先采样构建连通图,适合重复查询;RRT从起点逐步扩展树,常用于高维空间。两者的效果依赖采样、距离度量、局部连接器和碰撞检测。基本RRT通常用于找可行解,不应把一次输出当作最短或最平滑轨迹。LaValle的原著系统讲解搜索、采样、非完整约束和规划。

轨迹优化可综合平滑度、障碍距离和动态约束,但通常需要合理初值,并可能落入局部极小值。对轨迹做平滑、捷径或时间缩放后,还需再次检查约束。采样点全都无碰撞也不自动证明采样点之间连续无碰撞;需要足够保守的间隔、运动界或连续碰撞检测。

差速底盘不能直接横移

两轮差速模型中,轮半径r、左右轮角速度ωL、ωR、轮距L对应:

v = r(ωR+ωL)/2
ω = r(ωR-ωL)/L
x_dot = v cos(theta)
y_dot = v sin(theta)
theta_dot = ω

机身侧向速度受约束。几何路径若包含突然的侧向移动,就不能由差速底盘直接执行。规划可显式考虑姿态与曲率,也可使用合适的局部连接和跟踪策略;还要检查轮速、角速度与制动能力。模型假设和轮式规划见Modern Robotics的轮式机器人章节。

运行与检查

移动导航项目提供实际执行过的栅格A*、保守圆盘膨胀、差速运动学跟踪与更新地图后重规划实验。它使用理想位姿,不包含传感器和SLAM,适合逐层检查“有路”和“能跟踪”的差别。

练习:把同一张地图的栅格分辨率减半,比较状态数量、路径形状和耗时;再扩大机器人半径,观察哪些通道变为不可行。面试自查:规划失败可能来自环境真的无路、离散分辨率、搜索预算还是模型约束,分别怎样定位?