
机器人运动规划是将机器人从静态机器转变为能够在我们世界中导航的动态智能体的关键智能。它不仅要回答“去哪里”,还要回答“如何安全、高效、优雅地到达那里”,是一门兼具艺术与科学的学问。这项任务远非简单。机器人具有物理形态,其所处环境布满了障碍物,这使得寻路变成了一个涉及几何学、物理学和优化的复杂谜题。本文旨在通过探索赋予机器有目的移动能力的基础思想,来揭开这一挑战的神秘面纱。
我们将首先探索运动规划的核心原理与机制,在这一部分,我们将物理世界转换到抽象的位形空间,并借用物理学概念来规划路线。随后,我们将探索其多样的应用与学科交叉,揭示运动规划如何利用图论、优化和现代控制理论的深刻见解来解决大量的现实世界问题。
让机器人从 A 点移动到 B 点听起来很简单,不是吗?你只需告诉它去哪里。但正如科学中的许多事物一样,精妙的复杂性就隐藏在表面之下。机器人不是一个神奇的点;它是一个有尺寸、有形状、有局限的物理对象。世界也不是空旷的;它杂乱地摆放着桌子、椅子和其他机器人不应碰到的东西。路径本身也不仅仅是地图上的一条线;它是一个动态的运动序列,必须快速、高效、安全且平滑。运动规划便是在这个充满约束的迷宫中导航的艺术与科学,是几何学、物理学和优化之间的一场优美舞蹈。
让我们从最基本的问题开始:一个机器人,比如一个带有关节的机械臂,如何避免撞到架子?机械臂由一系列连杆和角度组成,而架子是一个静态的方块。检查碰撞似乎是一个噩梦般的几何问题,需要不断计算机器人每个部分相对于障碍物每个部分的位置。
运动规划的第一个神来之笔是完全改变我们的视角。我们不再考虑机器人的物理形状在真实世界中的移动,而是想象一个单一的、神奇的点在一个不同的、抽象的世界中移动。这个世界被称为位形空间(Configuration Space),或简称 C-空间(C-space)。
“位形”是什么?它只是一组唯一描述机器人状态的数字。对于一个只能在地板上滑动的简单矩形机器人,其位形可能是它的 坐标。对于一个有三个关节的机械臂,其位形就是这三个关节的角度 。机器人的每一种可能的姿态都对应于这个 C-空间中的一个点。
那么,障碍物会发生什么变化呢?在 C-空间中,障碍物不再只是一个物理对象。它变成了我们位形点的“禁区”。如果一个点位于这个禁区内,就意味着在相应的物理位形下,机器人会与障碍物发生碰撞。我们称这些禁区为 C-空间障碍物。
我们如何找到这些 C-空间障碍物的形状?一个名为闵可夫斯基和(Minkowski sum)的奇妙几何工具为我们提供了答案。想象你有一个形状为三角形的平移机器人和一个形状为正方形的固定障碍物。为了找到 C-空间障碍物,你可以想象将物理障碍物按照机器人的形状进行“生长”或“扩张”。更精确地说,当你滑动机器人使其始终与障碍物边界保持接触时,你追踪机器人参考点的轨迹。参考点扫过的区域就是 C-空间障碍物。这一优雅的转换将两个复杂形状之间复杂的碰撞检测问题,变成了一个简单得多的问题:我们的位形点是否在一个 C-空间禁区内?通过这种抽象,我们笨拙的机器人变成了一个灵活的点,而我们的任务就是引导这个点穿过 C-空间迷宫,从其起始位形到达目标位形。
既然我们的机器人在 C-空间中成了一个简单的点,我们如何找到一条避开禁区的路径呢?一种方法是将其视为一个迷宫,在自由空间中散布一个点网络(一张“路线图”),用直线连接它们,然后在这些连接中搜索一条从起点到终点的序列。这是一种常见且实用的方法,但大自然启示了更为优雅的解决方案。
一个绝妙的想法是,将 C-空间想象成一个受力场影响的景观。目标位形施加一种吸引力,像引力一样,将我们的点拉向它。同时,C-空间障碍物施加一种排斥力,像电荷一样,将我们的点推开。然后,只需将我们的点置于起始位形,让它通过这个势场(potential field)“滚下山坡”,就可以找到一条路径。产生的轨迹会自然地避开障碍物,同时朝向目标。
一个更深刻的类比来自光学世界。想一想光是如何传播的。它总是遵循时间最短的路径。我们可以用同样的方式来构建机器人的问题。让我们为 C-空间中每个部分的移动定义一个“代价”。在障碍物附近移动可能是“昂贵的”,而在开阔空间中移动则是“廉价的”。现在的问题是找到总累积代价最低的路径。
这恰好可以用Eikonal 方程来描述,这是一个借鉴自波传播的概念。想象目标着火了。火开始向 C-空间中蔓延。在“廉价”区域,它蔓延得快;在“昂贵”区域,它蔓延得慢。从任何点出发的“剩余代价”(cost-to-go)就是火蔓延到该点所需的时间。这个代价函数的水平集——即等到达时间的等高线——就像蔓延火势的波前。那么最优路径是什么呢?它就是光线会采取的路径,始终垂直于这些波前移动,追溯回到火源的最快路线。这一惊人的联系揭示了,引导机器人的最优路径与引导光线穿过透镜的原理是相同的。
找到一条路径是一回事。找到一条好的路径则是另一回事。“好”到底意味着什么?是最短的?最快的?还是最平滑的?答案当然是“以上全部”,这迫使我们思考权衡取舍。
让我们首先考虑速度。为了在最短时间内从 A 点到达 B 点,机器人不能瞬间移动。它的电机在最大速度和加速度上都有极限。对于一个简单的移动,最优策略是直观的:尽力加速,以最大速度巡航(如果距离足够),然后尽力急刹车,以零速度到达目的地。这种“砰砰控制”(bang-bang control)会产生一个梯形速度曲线(trapezoidal velocity profile)。对于一个多关节机械臂,每个关节都有自己的极限。移动机械臂的总时间取决于“最慢”的关节——那个需要最长时间来完成其独立行程的关节。所有其他关节都必须减速并调整自己的节奏,以便与这个瓶颈关节同步完成。
但快速的路径可能剧烈而颠簸。想象一下乘坐电梯。让你感到不适的不是高速,甚至不是恒定的加速度,而是电梯启动或停止时加速度的突然变化。这个加速度的变化率是一个称为加加速度(jerk)的物理量。它的单位是米每秒立方()。最小化加加速度对于乘客舒适度至关重要,同样也关系到机器人本身的健康。高加加速度意味着机器人电机和结构上的力发生剧烈变化,从而引起振动、磨损并降低精度。
因此,一条好的路径必须是平滑的。我们如何将平滑度融入规划中呢?我们可以使用变分法,这与物理学中用来发现自然定律的工具相同。我们可以将路径的“能量”定义为其长度和其“弯曲能量”(与加速度相关)的组合。一条路径就像一根细而硬的金属丝或一根弹性杆。它自然会试图变得尽可能短(低能量),但它也抗拒弯曲(这会耗费能量)。通过调整我们能量泛函中的“刚度”参数 ,我们可以选择我们想要在多大程度上惩罚加速度,从而在路径长度和平滑度之间进行权衡。
在实践中,工程师通常使用贝塞尔曲线(Bézier curves)或样条曲线(splines)等数学工具来表示路径。这些是由少量“控制点”定义的平滑流畅的曲线。通过移动这些控制点,设计者可以直观地塑造路径。这些表示方法具有极好的性质。例如,贝塞尔曲线总是位于其控制点的凸包之内。这意味着如果我们能确保所有控制点都在安全区域内,我们就能保证整个路径也是安全的。类似地,使用三次样条曲线连接路径点可确保生成的路径具有连续的加速度,因此具有有限的加加速度。
我们已经看到,一条“好”的路径具有许多理想的品质。要找到最好的路径,我们必须将所有这些标准组合成一个单一的代价函数(cost function),这是一个为任何给定路径赋予单一数值分数的数学配方。我们的目标就是找到得分最低的路径。
这个代价函数体现了我们的设计优先级。例如,一个代价函数可以是总行驶时间、总能耗和总加加速度的加权和。但其中还有一些微妙的选择要做。考虑一条必须偏离直线以避开障碍物的路径。我们可以惩罚总偏差(使用像 范数这样的度量),这会寻求一条平均表现好的路径。或者,我们可以惩罚单一最差的偏差(使用 范数),这会寻求一条即使在瞬间也不会偏离太远的路径。这是一个深刻的哲学选择:我们是为平均情况优化,还是防范最坏情况?
这最后一步——优化——通常是最困难的。由代价函数定义的“景观”可能十分险峻,充满了山丘和山谷。优化算法可能会滚下山坡并停在一个山谷中,即一个局部最小值(local minimum),以为它找到了最佳解。但一个更深的山谷——真正的全局最小值(global minimum)——可能就在下一座山脊之后。在这个复杂的景观中航行,以找到唯一真正的最优路径,或者至少是一个非常好的路径,是运动规划的宏大挑战。这是一个几何学、物理学和计算机科学汇聚的领域,共同赋予机器在我们的世界中优雅而智能地移动的能力。
在探索了运动规划的核心原理和机制之后,我们现在来到了旅程中最激动人心的部分。在这里,我们离开算法的抽象领域,进入真实世界,看看这些思想是如何变为现实的。你会发现运动规划不是一个孤立的学科;它是一个充满活力的十字路口,计算机科学、物理学、优化理论和先进控制理论在这里交汇。我们讨论过的原理就像一套万能钥匙,为那些初看起来似乎毫不相关的领域中的问题解锁了解决方案。让我们开始这段对这些迷人联系的探索之旅。
也许思考运动最直观的方式是将世界简化为位置及其之间路径的地图——数学家称之为图。想象一张带有交叉口(顶点)和街道(边)的城市地图。这种简单的抽象非常强大。
考虑一个为探索复杂迷宫而设计的机器人。它的任务是至少访问每个路口一次。它如何能系统地做到这一点而不会迷路?事实证明,当机器人冒险进入新领域时,它首次到达每个新路口所走的路径会自然形成一种称为生成树(spanning tree)的结构。在图论中,树是一个没有环的连通图。任何具有 个顶点的树都有一个优美而基本的性质:它必须恰好有 条边。这意味着,要让一个机器人探索一个有 个路口的迷宫,它必须精确地进行 次进入未知区域的“探索”移动。这个简单而深刻的见解为任何探索算法提供了一个基准。
但如果我们想要的不仅是任意一条路径,而是一条高效的路径呢?想象一个机器人蚀刻机,它的任务是在微芯片上绘制复杂的电路图案。抬起蚀刻工具并重新定位是一个我们希望最小化的耗时动作。机器人必须尽可能长时间地描绘一条连续的线条。这个问题是著名的18世纪“柯尼斯堡七桥”问题的现代版本,由伟大的数学家 Leonhard Euler 解决。解决方案在于检查每个路口的连接数——即顶点度数。一条能够不多不少恰好经过每条线段一次的连续路径(欧拉路径),只有在奇数度顶点为零个或两个时才可能存在。如果超过两个,路径就必须被断开。所需的最少独立连续笔画数恰好是奇数度顶点数的一半。通过简单地计算这些连接,我们就能立即确定所需的最少昂贵重定位次数,这是抽象图论与实用机器人效率的完美结合。
将世界表示为离散图是强大的,但如何在开放的连续空间中导航呢?在这里,我们可以从物理学中最优雅的概念之一——势场——中汲取灵感。
想象我们的机器人是一个在地形上滚动的小弹珠。我们希望它到达一个特定的目的地。如果我们能将这片地形雕塑成目的地位于一个平滑山谷的最底部,而所有障碍物都是高耸、无法逾越的山脉,那么我们的工作就会变得很简单。我们只需释放弹珠,重力就会完成剩下的工作,引导它沿着一条平滑的路径到达目标。
令人惊奇的是,我们可以利用数学精确地创造出这样一个“虚拟景观”。关键是拉普拉斯方程(Laplace equation),。这个看似不起眼的方程是物理学的一个巨人,描述了从无电荷区域的静电势到热量的稳态分布等现象。在我们的案例中, 代表我们景观的“势”。我们通过定义简单的边界条件来设定问题:目标被赋予低势(例如,),而所有障碍物和空间的外部边界被赋予高势(例如,)。然后我们求解整个空间的拉普拉斯方程。
对我们的目的而言,最终得到的势场是神奇的。拉普拉斯方程的解——称为调和函数——有一个关键性质,即极大值原理:它们在区域内部不能有任何局部最小值或最大值。这意味着我们雕塑出的景观在自由空间中没有任何小坑或凸起,弹珠不会被困住!从任何起点出发,沿着最速下降路径——即简单地沿着势的负梯度 ——保证能一直到达边界。由于目标是唯一的低势边界,路径会自然平滑地绕过高势障碍物,流向目的地。这种方法不仅提供了一条路径,而且提供了一个完整的“导航函数”,告诉机器人从空间中的任何一点该往哪里走。更先进的技术甚至使用来自波传播的相关概念,如 Eikonal 方程,来计算到所有点的绝对最短路径,进一步加深了路径规划与基础物理学之间的联系。
到目前为止,我们一直专注于寻找一条可行的路径。但在现实世界中,我们通常想要最好的路径——最短、最快、最节能或最平滑的路径。这就将运动规划重新定义为一个优化问题。
当机器人的世界可以被一组线性约束近似时(想象用许多小的平坦墙壁代替弯曲的障碍物),寻找最优路径有时可以转化为一个线性规划(LP)问题。这将机器人学与强大的运筹学领域联系起来。用像单纯形法这样的算法解决此类问题,涉及到一次从可行域的一个顶点到下一个顶点的迷人几何之旅。该算法的第一步,即阶段一(Phase I),有一个优美的解释:它是在寻找一个有效的起始点。如果机器人起始于一个“非法”位形(例如,在障碍物内部),阶段一就相当于寻找将其移动到有效的、无碰撞区域所需的最小“推力”,从而优雅地量化了解决约束违规的概念。
更一般地,对于像多关节机械臂这样的复杂系统,问题变成了非线性优化问题。在这里,我们定义一个代价函数,它包含了我们关心的所有方面。例如,我们可以创建一个代价,它是高速度惩罚(以节省能量)、高加速度惩罚(以鼓励平滑度)和离障碍物太近的巨大惩罚的总和。任务就变成了在无限多的可能性中找到使这个总代价最小化的那条轨迹。利用强大的数值方法,计算机可以找到一条最优轨迹,它优雅地平衡了所有这些相互竞争的期望——能量、平滑度和安全性——从而产生不仅实用,而且流畅、优美的运动。
我们的最后一站揭示了现代控制论中最深刻的思想之一:有时,对系统底层数学结构的深刻理解,可以将一个看似棘手的问题转变为一个出人意料的简单问题。
考虑规划一个复杂系统运动的困难任务,比如一辆带长拖车的卡车或一架高速无人机。其动力学是复杂且不直观的。一个标准的动力学规划器(kinodynamic planner)将不得不为每一个潜在的移动费力地向前模拟物理过程,这是一个计算上难以承受的负担。
但对于一类特殊的系统,存在一个被称为微分平坦(differential flatness)的显著特性。如果一个系统的整个状态和控制它所需的所有输入,都可以通过一组较小的“平坦输出”及其时间导数代数地确定,那么该系统就是微分平坦的。为整个复杂系统规划轨迹,等同于为这些神奇的输出简单地规划一条路径,而对这些输出而言,动力学是微不足道的!。
想象一下,对于卡车和拖车,你只需规划拖车后部一个点的路径。如果系统是平坦的,这条简单的路径就会自动确定卡车为跟随它而必须执行的精确转向和加速度。所有复杂的动力学都被隐式地处理了。通过在“平坦”空间中重新表述问题,我们极大地减少了变量数量,消除了非线性动力学约束,并且通常最终得到一个更简单、甚至是凸的优化问题,该问题可以以惊人的速度和可靠性被解决。这是一个绝佳的例子,说明了深刻的理论见解不仅可以改进解决方案,而且可以改变问题本身的性质。
从图论的简洁优雅到势场的物理直觉,再到优化的严谨框架和控制理论的深刻结构洞见,机器人运动规划是科学思想统一力量的证明。它提醒我们,支配机器人如何在房间中导航的原理,与支配热量流动、行星轨道和战略决策逻辑的原理,是由相同的线索编织而成的。