3. 轨迹规划基础

在进入多约束轨迹规划与实时优化之前,必须先厘清一组最基础却最容易混淆的概念:路径与轨迹、配置空间与工作空间、自由度与运动学模型。它们决定了后续约束如何表达、优化变量如何选取、求解器在哪个空间里搜索可行解。如果这些概念边界不清,后续的碰撞约束、速度约束、力矩约束就会“张冠李戴”,导致规划结果看似合理却无法执行。

一、路径与轨迹:几何与时间的分界

路径(Path)只描述几何形状,是空间中的一条连续曲线,不包含时间信息。例如“从A点沿直线到B点,再绕过障碍物到C点”,它回答的是“走哪条线”。轨迹(Trajectory)则在路径基础上加入时间参数,形成 q(t),回答“什么时候到达哪里、以多快速度通过”。因此轨迹天然携带速度、加速度甚至加加速度信息,是控制器真正跟踪的对象。

这一区别直接决定约束的归属:碰撞、几何边界、关节限位属于路径层约束;速度上限、加速度上限、力矩饱和、实时性属于轨迹层约束。多约束轨迹规划的本质,是在路径可行集与时间参数化可行集之间做联合搜索。

关键判断:如果一条曲线没有时间律,它只是路径;只有完成时间参数化,才成为可被伺服系统执行的轨迹。

二、配置空间与工作空间:两种坐标视角

配置空间(C-space)以机器人所有独立自由度为坐标轴。一个n自由度机械臂的配置是 q=[q1,q2,…,qn],C-space 是n维空间。它的最大优势是把机器人本体“压缩”为一个点,障碍物则膨胀为C-space障碍区域,碰撞检测转化为点是否落入禁区的问题,非常适合采样规划与优化建模。

工作空间(Workspace)描述末端执行器在笛卡尔空间中可达的位置与姿态集合,是任务层最直观的表达。工作空间分为可达工作空间与灵巧工作空间:前者只要求至少存在一组逆解,后者要求在该位置能以任意姿态到达。工作空间受关节限位、连杆长度、奇异位形共同约束。

两者关系可概括为:C-space 是“关节怎么动”,工作空间是“末端到哪去”。轨迹规划通常在C-space中保证动力学与碰撞可行,在任务空间校验工艺点与姿态要求。

路径/轨迹、配置空间/工作空间与运动学映射关系 路径 Path(几何) 仅曲线形状,无时间信息 轨迹 Trajectory(几何+时间) q(t) 含速度/加速度/加加速度 时间参数化 配置空间 C-space q = [q₁, q₂, …, qₙ] 起点 终点 障碍区 机器人压缩为一点 碰撞→点是否入禁区 适合采样与优化建模 工作空间 Workspace 末端位置与姿态集合 可达工作空间 灵巧工作空间 受关节限位/连杆长度 与奇异位形约束 任务层直观表达 正运动学 f(q) 映射 逆运动学 f⁻¹(x) 求解

三、自由度与运动学建模:从关节到末端

自由度(DOF)是描述系统位形所需的最少独立坐标数。串联机械臂通常每个关节贡献一个自由度,6自由度机械臂可在工作空间内实现任意位置与姿态;冗余机械臂(如7自由度)在到达同一末端位姿时存在无穷多组关节解,这为避障、避奇异、优化关节力矩提供了额外空间,但也使规划问题维度升高。

运动学建模分两步:正运动学由关节角 q 计算末端位姿 x=f(q),通常用DH参数或旋量法建立;逆运动学由目标位姿求关节角 q=f⁻¹(x),可能无解、唯一解或多解。轨迹规划中,正运动学用于碰撞检测与可视化,逆运动学用于把任务空间路径点转换为关节空间轨迹点。

对于实时优化,还需引入微分运动学:ẋ = J(q)q̇,其中 J 为雅可比矩阵。它把关节速度映射为末端速度,是速度级约束、奇异分析、力/力矩传递的核心工具。当 J 降秩时进入奇异位形,某些方向末端速度无法产生,逆解不稳定,规划器必须提前规避或降速通过。

四、方法流程与场景案例

以一个6自由度机械臂在狭长通道内抓取工件为例,典型流程如下:

  1. 在任务空间给定抓取位姿与放置位姿,确认均位于灵巧工作空间内。
  2. 用逆运动学求取起止关节配置,检查是否满足关节限位。
  3. 在C-space中构造路径,将通道壁面与工件膨胀为C-space障碍。
  4. 对路径做时间参数化,施加关节速度、加速度、力矩约束。
  5. 用雅可比检查全程是否接近奇异,必要时调整冗余自由度或路径。
  6. 输出 q(t)、q̇(t)、q̈(t) 交给控制器执行。

若跳过第3步直接在任务空间插值,末端虽走直线,但关节可能大幅摆动甚至撞墙;若跳过第5步,轨迹在奇异点附近速度会突增,实际执行时出现抖动或保护停机。

概念描述对象典型维度在规划中的作用
路径几何曲线与DOF同维确定走哪条线,承载几何约束
轨迹带时间的运动q(t) 及导数承载速度、加速度、力矩约束
配置空间关节坐标集合n维碰撞检测与采样优化
工作空间末端位姿集合3D位置+姿态任务可达性与工艺校验
自由度独立坐标数整数n决定优化维度与冗余性
雅可比速度映射矩阵6×n奇异分析、速度约束、力传递

五、常见误区与复盘

误区一:把路径当轨迹直接下发。控制器需要的是带时间律的轨迹,仅有几何路径无法执行。

误区二:只在工作空间做规划。末端可行不代表关节可行,必须回到C-space校验碰撞与限位。

误区三:忽视奇异位形。雅可比降秩处逆解病态,速度指令可能发散,需提前降速或调整路径。

误区四:冗余自由度随意取值。冗余解虽多,但不同解对力矩、避障、平滑性影响巨大,应作为优化变量而非任意选择。

复盘建议:每次规划失败时,先判断问题出在“路径层”还是“时间层”,再判断是C-space约束还是工作空间约束,最后检查雅可比条件数。按这个顺序排查,能快速定位是几何不可行、动力学不可行,还是奇异导致数值问题。

# 典型检查顺序(伪代码)
q_start = IK(x_start)          # 逆解起点
q_goal  = IK(x_goal)           # 逆解终点
path    = plan_in_cspace(q_start, q_goal, obstacles)
traj    = time_parameterize(path, v_max, a_max, tau_max)
for q in traj:
    if not within_joint_limits(q): reject()
    if near_singularity(J(q)): slow_down_or_replan()
execute(traj)

掌握路径与轨迹的分界、C-space与工作空间的映射、自由度与雅可比的作用,就为后续多约束建模打下了坐标系与变量基础。后续所有约束——碰撞、速度、力矩、实时性——都将落到这些空间与变量之上。