一、轨迹规划概述

1.1 什么是轨迹规划

先问大家一个问题:让机器人从A点走到B点,难吗?

如果你只是说「走过去就行」,那确实不难。但如果你要考虑——怎么走不撞墙?怎么走最省电?怎么走才能让机械臂末端画出一条平滑的弧线?嗯,这就复杂了。

我个人的理解是:轨迹规划,就是给机器人设计一条「带时间标签的路径」

路径只关心「走哪条路」,而轨迹还要关心「什么时候走到哪里、速度多快、加速度多大」。说白了,路径是空间上的事,轨迹是时空结合的事。

核心定义:轨迹规划 = 路径规划 + 时间规划 + 运动约束

我在项目中遇到过这样一个场景:一个六轴机械臂要抓取传送带上的工件。如果只做路径规划,机械臂确实能避开障碍物到达目标点。但因为没有考虑时间,机械臂要么走得太快导致抖动,要么走得太慢跟不上产线节拍。后来加入了轨迹规划,把速度、加速度都约束好,问题才解决。

1.2 轨迹规划在机器人系统中的位置

你想想看,一个完整的机器人系统,从上到下大概长这样:

机器人系统层级结构 任务规划层 做什么?—— 拆解任务目标 路径规划层 走哪条路?—— 生成无碰撞路径 轨迹规划层 ← 我们在这里 怎么走?—— 加入时间、速度、加速度约束 运动控制层 怎么执行?—— PID、前馈、力矩控制 执行器层 电机、关节、末端执行器 ↑ 高层决策 ↓ 底层执行

从这张图你能看出来,轨迹规划处于中间层。它上面承接任务规划和路径规划,下面驱动运动控制。如果轨迹规划做不好,上层再好的路径也白搭,下层再牛的控制算法也救不回来。

我记得有一次调试AGV小车,路径规划明明给出了最优路径,但轨迹规划参数没调好——加速度设得太激进,结果小车在转弯时直接侧滑了。这就是典型的「上层决策没问题,中间层没兜住」。

我的经验:轨迹规划是机器人系统的「腰」。腰不好,全身都别扭。很多新手只关注路径规划算法(A*、RRT这些),却忽略了轨迹规划的参数调优,结果实际跑起来各种翻车。

1.3 常见轨迹规划方法分类

说到分类,咱们得先搞清楚一个概念:路径规划 vs 轨迹规划。这两个词经常被混用,但在我眼里完全是两码事。

对比维度 路径规划 轨迹规划
关注点 空间路径(几何形状) 时间序列(运动状态)
输出 一系列路径点 (x,y,z) 带时间戳的位置、速度、加速度
约束类型 障碍物、可达空间 速度极限、加速度极限、加加速度、力矩
典型算法 A*、Dijkstra、RRT、PRM 梯形速度规划、S形速度规划、多项式插值
举个栗子 导航地图上选一条不堵车的路 这条路怎么开——何时加速、何时减速、转弯多快

说白了,路径规划回答「能不能到」,轨迹规划回答「怎么到得漂亮」

1.4 轨迹规划方法分类

我个人习惯把轨迹规划方法分成三大类,每一类都有它的脾气:

1.4.1 基于插值的方法

这是最基础、也最常用的方法。给定几个关键路径点,用数学曲线把它们串起来。

  • 多项式插值:三次多项式、五次多项式、七次多项式。次数越高,曲线越平滑,但计算量也越大。
  • 样条曲线:B样条、三次样条。适合多段路径拼接,保证连接处连续。
  • 梯形速度规划:加速-匀速-减速三段式。简单粗暴,但加速度有突变。
  • S形速度规划:加加速度连续,运动更平滑。我项目中用得最多的就是它。

避坑指南:我曾经在一条高速搬运产线上用了梯形速度规划,结果每次加减速时机械臂末端都会抖一下。后来换成S形速度规划,加加速度约束设到合理值,抖动问题就消失了。所以——对平滑度有要求的场景,别省那点计算量

1.4.2 基于优化的方法

把轨迹规划建模成一个优化问题,目标函数可以是时间最短、能耗最小、冲击最小等。

  • 时间最优轨迹:在满足约束的前提下,让运动时间最短。
  • 能量最优轨迹:适合电池供电的移动机器人。
  • 多目标优化:时间+能量+平滑度,加权求和。

这类方法的优点是能找到「最优解」,但缺点是计算量大,实时性差。我一般在离线场景用,比如焊接路径的预规划。

1.4.3 基于采样的方法

这类方法其实是从路径规划延伸过来的。在路径规划阶段用RRT等算法生成路径,然后在路径上做轨迹优化。

  • RRT + 轨迹平滑:先用RRT找路径,再用B样条平滑。
  • STOMP:随机轨迹优化,适合高维空间。
  • CHOMP:梯度下降优化轨迹,兼顾避障和平滑。

你想想看,这三种方法各有各的适用场景。我做项目时一般这样选:

场景 推荐方法 原因
简单点到点运动(如码垛) S形速度规划 实现简单,平滑度够用
复杂路径多段连续(如焊接) 三次样条插值 保证连接处连续,路径可控
高动态运动(如乒乓球机器人) 时间最优优化 追求极限性能
未知环境避障(如服务机器人) RRT + 轨迹平滑 兼顾避障和运动质量

1.5 本章小结

嗯,到这里第一章就差不多了。咱们捋一捋:

  • 轨迹规划是给机器人设计带时间标签的运动方案,比路径规划多了一个时间维度。
  • 它在机器人系统中处于承上启下的位置,非常重要
  • 常见方法分三类:插值法、优化法、采样法。没有绝对的好坏,看场景选方法

我个人觉得,学轨迹规划最忌讳的就是「一招鲜吃遍天」。不同的机器人、不同的任务、不同的精度要求,参数调优的思路完全不一样。后面几章我会带着大家一个一个场景去调,把那些坑都踩一遍。

一个小建议:如果你刚开始接触轨迹规划,先别急着上复杂算法。把梯形和S形速度规划吃透,把多项式插值搞明白,这些基础打牢了,后面学优化方法会轻松很多。


专注资料整理