机械臂运动规划的核心目标,是在有约束的状态空间(如关节角度、位置、速度、加速度)中,寻找一条从'起始状态'到'目标状态'的轨迹。这条轨迹必须满足避障要求,同时符合运动学或动力学限制(例如关节角度范围、速度上限)。业界通常将相关算法划分为基于搜索、基于采样和基于优化三大类,它们在原理、优势及适用场景上各有侧重。
一、基于搜索的算法
这类方法发展较早,核心思路是将连续状态空间离散化(比如栅格化或将关节角度拆分为有限点),再通过图搜索或树搜索遍历节点来寻找路径。
1. 核心原理
首先是空间离散化。把机械臂的工作空间(笛卡尔空间)或关节空间拆成有限的状态节点,节点间的连接代表可行运动。接着是搜索策略,从起始节点出发,按预设规则(比如优先选距离目标更近的节点)遍历,直到找到目标节点形成路径。
2. 常见算法
- Dijkstra 算法:没有启发信息,从起点开始优先选择累计代价最小的节点,能保证找到最优解(路径代价最小)。
- A 算法*:在 Dijkstra 基础上加入启发函数(如直线距离),优先搜索'累计代价 + 启发代价'最小的节点,兼顾了最优性和效率,是目前最常用的搜索算法之一。
- D 算法*:适合动态环境,当障碍物位置变化时能快速更新已规划路径,无需重新全量搜索。
3. 优缺点与适用场景
优点在于能保证路径最优性,逻辑直观且易于实现验证。缺点也很明显,就是状态空间爆炸问题——自由度增加或工作空间复杂时,离散节点呈指数级增长,计算效率急剧下降,甚至无法实时规划。因此它更适合低自由度机械臂(如 2-3 轴)和简单静态环境,比如分拣机械臂在固定轨道上的作业。
二、基于采样的算法
为了解决高维空间离散化的难题,基于采样的算法应运而生。它不离散整个空间,而是随机采样部分状态节点,通过连接采样点构建可行路径图或扩展树。虽然不保证最优,但具备概率完备性——只要存在可行路径且采样足够多,一定能找到。
1. 核心原理
第一步是随机采样,在状态空间中生成大量采样点,并通过碰撞检测筛选出无碰撞的点。第二步构建连接结构,用局部规划器(如直线插值)将无碰撞点连起来,形成路径图或扩展树。第三步进行路径查询,当起止点连通后提取路径并平滑处理。
2. 常见算法
- PRM(概率路线图):离线构建全局路径图,先采样连接覆盖整个工作空间,在线查询时直接找路径,适合流水线等重复任务。
- RRT(快速探索随机树):在线构建扩展树,从起点出发每次随机采样并向该点扩展,直到触达目标,适合动态或未知环境,探索速度快。
- RRT 算法*:在 RRT 基础上加入路径优化步骤,尝试用新采样点优化已有连接,使路径代价逐步减小,兼顾快速性和次优性。
- Informed RRT 算法*:进一步优化 RRT*,通过椭圆约束缩小采样范围,只在起止连线附近的区域采样,大幅提升高维空间的规划效率。
3. 优缺点与适用场景
优点是高维适应性好,即使是 7-8 轴机械臂也能高效规划;实时性强,采样次数可灵活控制;且具备概率完备性。缺点是不保证路径最优,路径可能存在抖动需后续平滑。这类算法适合高自由度机械臂(如协作机器人、手术机器人)和复杂动态环境,比如工厂内有人移动时的装配作业。
三、基于优化的算法
这类方法将运动规划转化为带约束的数值优化问题。先定义目标函数(如轨迹平滑性、能耗最小),再在运动学/动力学约束和避障约束下,求解使目标函数最优的轨迹。
1. 核心原理
第一步是轨迹参数化,将轨迹表示为参数化函数(如多项式、B 样条),保证位置、速度、加速度连续。第二步定义目标与约束,包括硬约束(必须满足,如关节角度范围、无碰撞)和软约束(尽量满足)。第三步数值求解,通过二次规划、非线性规划等算法求解系数。
2. 常见类型
- 基于二次规划(QP)的算法:适用于目标函数为二次函数、约束为线性的场景,求解快,适合实时控制。
- 基于非线性规划(NLP)的算法:处理目标函数或约束为非线性的复杂场景,典型求解器如 IPOPT、SNOPT。
- 基于凸优化的算法:将非凸约束转化为凸约束,保证全局最优性和稳定性,适合对精度要求高的场景。

