一、轨迹规划概述:从入门到理解本质

大家好,我是老张。在机器人这行摸爬滚打了十几年,今天咱们聊聊轨迹规划。说实话,很多新手一上来就被各种公式吓住了。其实没那么玄乎。

轨迹规划是什么?说白了,就是让机器人知道「怎么动」的一门技术。你告诉它要去哪,它自己算出每一步该怎么走、走多快、什么时候停。嗯,就这么简单。

核心定义:轨迹规划 = 在满足运动学和动力学约束的前提下,生成一条从起点到终点的、关于时间的位置/速度/加速度曲线。

1.1 轨迹规划在机器人系统中的地位

我经常跟团队说一句话:感知是眼睛,决策是大脑,轨迹规划就是手脚。没有轨迹规划,机器人就是个「知道该干嘛但动不了」的废物。

你看一个完整的机器人系统架构:

  • 感知层:激光雷达、摄像头、IMU 采集环境数据
  • 决策层:任务分配、行为选择、全局路径搜索
  • 轨迹规划层:生成平滑、安全、可执行的运动曲线
  • 控制层:PID、MPC 等底层控制器跟踪轨迹
  • 执行层:电机、液压、气动等硬件执行

轨迹规划卡在中间,承上启下。决策层告诉你「去A点」,控制层只知道「怎么让电机转」。轨迹规划负责把「去哪」翻译成「怎么动」。我在项目中遇到过太多次,决策层规划了一条完美的路径,但轨迹规划没做好,机器人跑起来一顿一顿的,最后撞墙了。

避坑指南:我曾经接手过一个项目,团队花了两周调PID参数,机器人还是抖得厉害。最后发现是轨迹规划输出的加速度不连续,导致电机一直在做阶跃响应。换了个S型速度曲线,问题直接解决。所以记住:控制调不好,先查轨迹规划。

1.2 轨迹规划 vs 路径规划:别再搞混了

这个问题我面试必问。很多人答不上来,或者答得模棱两可。咱们一次说清楚。

对比维度 路径规划 轨迹规划
输出 空间中的几何路径(点集) 带时间信息的运动曲线
关注点 避障、连通性、最短路径 速度、加速度、平滑性、执行时间
典型算法 A*、Dijkstra、RRT、PRM 多项式插值、B样条、梯形速度曲线
约束类型 几何约束(障碍物、边界) 运动学/动力学约束(最大速度、力矩)
举个栗子 地图上画一条不撞墙的线 告诉机器人「沿着这条线,前2秒加速到1m/s,中间匀速,最后1秒减速停下」

你想想看,路径规划只关心「走哪条路」,不关心「怎么走」。而轨迹规划关心的是「怎么走才稳、才快、才安全」。我习惯把路径规划比作导航软件给你画了一条路线,轨迹规划则是告诉你「什么时候踩油门、什么时候刹车、转弯时打多少方向盘」。

个人经验:实际工程中,路径规划和轨迹规划往往是串行工作的。先跑A*找出一条无碰撞路径,再在这条路径上做轨迹规划,生成平滑的速度曲线。但要注意,路径规划出来的折线直接做轨迹规划,会产生很大的冲击力。我一般会在中间加一步路径平滑,用B样条或贝塞尔曲线把折线修圆了,再做轨迹规划。

1.3 常见的应用场景

轨迹规划不是纸上谈兵。我参与过的项目里,几乎每个机器人系统都离不开它。咱们挑三个典型的说说。

机械臂:从点焊到抓取

机械臂的轨迹规划,核心是关节空间 vs 笛卡尔空间的选择问题。

  • 关节空间规划:只关心每个关节从角度A转到角度B,计算简单、速度快。适合点焊、喷涂等对末端姿态不敏感的任务。
  • 笛卡尔空间规划:控制末端执行器走直线或圆弧,适合装配、搬运等需要精确路径的任务。

我记得有一次做手机壳打磨项目,要求末端走一个椭圆轨迹。用关节空间规划,末端走的路径歪歪扭扭,打磨出来全是纹路。换成笛卡尔空间规划,用五次多项式插值,末端轨迹误差控制在0.1mm以内,效果立竿见影。

移动机器人:从扫地到仓储

移动机器人的轨迹规划,难点在于非完整约束。你想想看,汽车不能横着走,差速轮机器人转弯有最小半径。轨迹规划必须考虑这些。

常见的做法是分两层:

  1. 全局轨迹规划:基于地图生成一条从起点到终点的参考轨迹
  2. 局部轨迹规划:实时感知周围障碍物,动态调整轨迹

我在做仓储AGV项目时,遇到过一个问题:全局轨迹规划出来的路径太理想化,实际运行时轮子打滑、地面不平,轨迹偏差越来越大。后来加了局部轨迹规划,用DWA(动态窗口法)实时修正,才把定位精度从10cm拉到2cm以内。

自动驾驶:从车道保持到避障

自动驾驶的轨迹规划,可以说是难度最高的。为什么?因为实时性要求极高,而且涉及多目标博弈。

自动驾驶轨迹规划通常分三层:

层级 任务 典型方法 更新频率
路由层 从A到B的宏观路线 A*、Dijkstra 秒级
行为层 变道、跟车、让行等决策 状态机、决策树 百毫秒级
运动层 生成具体的转向、油门、刹车指令 多项式曲线、MPC 十毫秒级

我参与过一个园区无人驾驶项目,最头疼的是十字路口博弈。两辆车同时到达,谁先走?轨迹规划不仅要算自己的轨迹,还要预测对方的轨迹。后来我们用了一种基于博弈论的轨迹规划方法,把双方意图建模成代价函数,才解决了这个死锁问题。

一句话总结:轨迹规划是连接「想」和「做」的桥梁。没有它,机器人要么动不了,要么动得乱七八糟。无论你做机械臂、移动机器人还是自动驾驶,轨迹规划都是绕不开的核心技能。

轨迹规划知识体系总览 轨迹规划 机械臂轨迹规划 移动机器人轨迹规划 自动驾驶轨迹规划 关节空间规划 笛卡尔空间规划 全局轨迹规划 局部轨迹规划 路由层 行为层 运动层 核心要点 轨迹规划 = 路径 + 时间 + 约束 → 生成可执行的运动曲线 不同场景侧重点不同,但底层数学工具(多项式、B样条、优化)是通用的