一句话定义:运动规划(Motion Planning)是让一个会动的东西——机械臂、机器人、无人机、甚至游戏里的角色——在躲开障碍物的前提下,从起点走到终点的计算过程。
难点在哪?不是"找到一条路",而是"在无数种走法里找一条能用的"。客厅里从沙发走到厨房,人眼一扫就知道怎么绕,因为大脑同时处理了两件事:哪儿不能去(障碍),以及走起来顺不顺(代价)。机器没有这种直觉,只能靠算法搜。
流派一:采样式(Sampling-based),代表是 RRT
RRT(Rapidly-exploring Random Tree,快速扩展随机树)的思路非常朴素:在空间里随机撒点,每次都试着从当前位置朝一个新随机点迈一步,迈得通就留下这根"树枝",迈不过去就换一个点。反复撒,树越长越密,直到有一根枝桠碰到终点。它的升级版 RRT* 还会不断回头修正路径,让它越来越短。
打个比方:把一个醉汉扔进迷宫,他随机乱撞,撞到墙就换方向,撞着撞着摸到了出口。听起来蠢,但胜在不需要事先知道迷宫长什么样。
采样式的特点是:在高维空间里依然能跑(机械臂动辄六七个关节,维度一高,传统网格法直接爆炸),而且只要有解,理论上总能找到。代价是路径往往歪歪扭扭、不光滑,每次跑出来的结果还不一样。
流派二:优化式(Trajectory Optimization),代表是轨迹优化
轨迹优化换了个思路:先给一条粗糙的初始路径(哪怕是从直线硬拉出来的),然后把它当成一个数学最优化问题——目标函数里同时塞进"离障碍物越远越好""加速度别太猛""别离参考线太偏",用梯度下降之类的方法反复迭代,把整条轨迹"熨平"。
比方:不是让醉汉瞎撞,而是先画一条歪线,然后像拉橡皮筋一样,一边被障碍物推着,一边被光滑性拽着,反复调整到既安全又顺滑。
优化式的特点是:给出的轨迹质量高,速度、加速度连续,可以直接喂给控制器执行;缺点是依赖好的初值,初值太烂容易卡在局部最优,甚至撞进障碍里出不来。
| 维度 | 采样式(RRT 系) | 优化式(轨迹优化) |
|---|---|---|
| 核心动作 | 随机撒点、逐步生长 | 给定初值、迭代下降 |
| 高维表现 | 好 | 视问题规模而定 |
| 路径质量 | 一般,偏曲折 | 好,光滑连续 |
| 结果稳定性 | 每次不同 | 初值相同则基本一致 |
| 典型场景 | 机械臂避障、狭窄通道探索 | 自动驾驶换道、无人机穿越、机械臂抓取 |
| 主要风险 | 收敛慢、路径丑 | 陷入局部最优 |
和相邻概念的区别
容易和"路径规划(Path Planning)"混。简单说:路径规划只管几何上的"走哪儿",输出一串坐标点;运动规划还要管"怎么走"——速度多快、什么时候加速减速,输出带时间信息的轨迹。另外,运动规划也不同于"避障(Obstacle Avoidance)",后者通常指跑起来之后临时躲一下突然出现的东西,是局部的、短视的;运动规划是把全局路线一次性算清楚。
对从业者和普通人的意义
对做机器人、自动驾驶的工程师来说,这两派不是二选一,工程上常见的是先采样找一条可行解,再用优化把它磨光——就像先用醉汉摸出出口,再请个裁缝把路线修整齐。理解这个"先可行、后最优"的分工,比记住某个算法的细节更有用。
对普通人来说,这套思路其实随处可见:导航软件先给你一条能走的路,再根据拥堵和红绿灯不断微调;仓库里的搬运机器人也是这么在货架间穿行的。机器不会"看路",它只是把"从哪走到哪"翻译成了一道数学题——而运动规划,就是这道题的解法。
具体算法的参数设置与适用边界,各框架文档写得比这里细致,以官方页面为准。
