4、轨迹规划概论:轨迹规划的定义、分类与性能指标

各位同学,欢迎来到轨迹规划的第一课。

说实话,每次带新人做项目,我最怕听到的一句话就是:「让机器人动起来不就行了?」嗯,动起来确实不难,但要让机器人走得稳、走得准、走得优雅,那就完全是另一回事了。我记得刚入行那会儿,给一个六轴机械臂写运动程序,结果机器人像喝醉了酒一样乱晃,差点把旁边的夹具撞飞。从那以后,我算是彻底明白了——轨迹规划,才是机器人运动的灵魂。

4.1 什么是轨迹规划?

先给个定义。轨迹规划,说白了就是:给定起点和终点,计算出机器人每个关节或末端执行器在每一时刻的位置、速度、加速度。

你可能会问:「这不就是路径规划吗?」

不一样。路径规划只关心「走哪条路」,而轨迹规划还要关心「怎么走」——什么时候加速、什么时候减速、拐弯时速度多快。我习惯这样区分:路径是几何问题,轨迹是时间问题。

核心公式(一维情况):

位置:q(t)
速度:v(t) = dq/dt
加速度:a(t) = d²q/dt²

轨迹规划的目标,就是找到一组连续、光滑的 q(t),满足运动学约束。

4.2 轨迹规划的分类

轨迹规划主要分两大类:关节空间规划和笛卡尔空间规划。这两者的区别,我当年花了整整一周才彻底搞明白。

4.2.1 关节空间规划

什么意思?就是直接在关节角度上做规划。比如一个六轴机器人,我们规划的是 θ₁(t)、θ₂(t)……θ₆(t) 这六个角度随时间的变化曲线。

优点:

  • 计算简单,不需要做逆运动学
  • 不会出现奇异点问题
  • 关节运动自然、平滑

缺点:

  • 末端执行器的运动路径不可控(走直线?不存在的)
  • 容易与障碍物发生碰撞(因为不知道末端到底走哪条路)

我的经验:在焊接、喷涂这类对末端路径要求不高的场景,我一般直接用关节空间规划。省事,而且关节电机跑起来很顺畅。

4.2.2 笛卡尔空间规划

笛卡尔空间规划,是在三维空间中规划末端执行器的位姿轨迹。比如让焊枪沿着一条直线焊缝走,或者让机械臂末端画一个圆。

优点:

  • 末端路径可控(直线、圆弧、样条曲线)
  • 便于避障和工艺要求

缺点:

  • 需要实时做逆运动学求解,计算量大
  • 容易遇到奇异点——我曾经在调试时遇到奇异点,机器人突然「抽风」一样猛转,吓得我赶紧按了急停

避坑指南:笛卡尔空间规划时,一定要检查路径上是否有奇异点。我曾经在一条直线路径上没注意,结果机器人经过奇异点附近时关节速度瞬间爆表,差点烧了电机。后来我养成了习惯:规划完先仿真跑一遍,检查关节速度和加速度是否超限。

4.3 两种空间的对比

对比项 关节空间 笛卡尔空间
规划对象 关节角度 末端位姿
逆运动学 不需要 需要实时求解
路径可控性 不可控 可控(直线/圆弧等)
奇异点问题 无 有
计算复杂度 低 高
典型应用 搬运、码垛 焊接、铣削、装配

4.4 轨迹规划的性能指标

你想想看,怎么评价一条轨迹好不好?我一般看这几个指标:

4.4.1 时间最优

说白了就是「跑得快」。在满足电机速度、加速度限制的前提下,让轨迹时间最短。工业场景里,时间就是金钱。我见过一个产线,优化了轨迹时间后,单件节拍从12秒降到了9秒,一天多产出几千个零件。

4.4.2 能量最优

对于移动机器人或者电池供电的机器人,省电很重要。能量最优轨迹通常会让加速度变化更平缓,减少冲击损耗。

4.4.3 平滑性

轨迹的平滑性,通常用加加速度(Jerk)来衡量。Jerk 是加速度的变化率。Jerk 越大,机器人抖动越厉害,不仅影响精度,还会加速机械磨损。

平滑性指标公式:

Jerk = da/dt = d³q/dt³

我一般要求 Jerk 的峰值不超过电机额定值的 80%,留点余量。

4.4.4 精度指标

轨迹跟踪精度,就是实际走的轨迹和规划轨迹之间的偏差。这个偏差受控制器性能、动力学模型精度、摩擦等因素影响。在高速运动中,精度往往会下降——这是物理规律,没办法。

4.5 知识体系总览

下面这张图,是我自己总结的轨迹规划知识框架。你把它记在心里,后面每一章都会围绕这些内容展开。

轨迹规划知识体系 轨迹规划定义 位置·速度·加速度 vs 时间 关节空间规划 直接规划关节角度 笛卡尔空间规划 规划末端位姿 性能指标 时间最优 能量最优 平滑性 精度 实际项目中,通常需要根据工艺需求权衡多个指标 Jerk = d³q/dt³

4.6 小结

这一章我们聊了轨迹规划的基本概念。核心就三件事:

  • 定义:轨迹规划是给机器人安排「怎么走」的问题
  • 分类:关节空间 vs 笛卡尔空间,各有各的适用场景
  • 指标:时间、能量、平滑性、精度——实际项目中往往要权衡取舍

我个人建议,刚开始学的时候,先从关节空间规划入手。它简单、直观,不容易出错。等你把关节空间玩熟了,再挑战笛卡尔空间。嗯,下一章我们会深入讲关节空间的多项式插值方法,到时候我会拿一个真实项目里的例子来拆解。

一个小练习:找一台你身边的机器人(或者仿真软件),分别用关节空间和笛卡尔空间规划一段运动。观察末端执行器的路径差异。你会发现,关节空间规划的路径往往是一条「看不见的曲线」,而笛卡尔空间规划的路径就是你指定的直线或圆弧。

可可精品资料库