跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
MATLAB / OctaveAI算法

机器人轨迹规划详解:从概念到常用方法

机器人轨迹规划涉及末端位置、速度及加速度随时间的变化,区别于仅关注路径的规划。主要分为关节空间与笛卡尔空间两种描述方式。常用方法包括多项式插值、带抛物线过渡的线性插值及样条函数等。核心在于根据任务约束(如起止点速度、加速度)构建光滑函数,确保运动平稳且符合动力学要求。

Kubernet发布于 2026/4/9更新于 2026/5/2113 浏览
机器人轨迹规划详解:从概念到常用方法

前言

在之前的讨论中,我们提到了雅可比矩阵是描述关节运动与末端运动映射关系的有力工具。然而,仅仅掌握映射关系只是分析机器人运动的开始。空间两点间的运动轨迹可以有多种形态,这就引出了轨迹规划的概念。简单来说,轨迹规划就是寻求最优路径的过程,下文将展开介绍。

1. 什么是机器人轨迹规划?

要理解这个问题,我们先明确什么是轨迹。

轨迹是指机器人手臂(末端点或操作点)的位置、速度、加速度对于时间的历程。

我们在意的其实是机器人末端轨迹相对于工件的状态或相对关系。就像执行挂杯子的操作时,我们关心的是这两个空间点之间机械臂该如何运动以形成连续的轨迹,因此就引出了轨迹规划的概念。

轨迹示意图

轨迹示意图

轨迹规划则是根据作业任务的要求,计算出预期的运动轨迹。其目的主要是让机器人在关节空间移动中运行时间尽可能短。

需要区分的是任务规划与路径规划: ① 任务规划:对机器人的操作顺序、行动步骤和作业进程的规划(例如先抓杯子再去挂墙上); ② 路径规划:对作业任务中位置和姿态的规划(例如经过哪些确定的位置,姿态是竖直还是水平)。路径规划的目标通常是使路径与障碍物距离尽量远且长度尽量短,与速度无关。

举个例子,移动滑台上的一杯水,如果水面始终保持平稳,而另一个倾斜不平稳,这就是轨迹规划的奥妙所在。一个好的轨迹规划算法能让工作任务更顺利。可以看出,轨迹规划其实就是包含时间变量的综合规划,不仅仅是位移规划,还包括了对运动过程中速度、加速度的规划。

水杯示例

1.1 轨迹规划中的运动

不同种类的机器人,其轨迹规划的侧重点也有所不同。比如扫地机器人、AGV 小车等,主要是对环境反馈或已有地图确定按照什么样的路径来行走。对于工业机器人如焊接机械臂等,主要是对其末端行走的曲线轨迹、速度与加速度曲线进行规划。

扫地机器人

焊接机械臂

根据机器人作业是否对路径有要求,可以将轨迹规划中的运动分为点到点运动与连续路径运动(轮廓运动),以便设计适应运动形式的轨迹规划: ① 点到点运动:只规定了机器人的起始点和目标点的运动; ② 连续路径运动或轮廓运动:不仅规定了机器人的起始点和目标点,且必须沿着特定的路径进行的运动。

1.2 轨迹规划中的空间

实际进行轨迹规划时,轨迹的描述是在关节空间或者笛卡尔空间(操作空间)中的。

① 关节空间的轨迹规划:

  • 规划的是每个关节的角度(或位移)随时间如何变化(速度、加速度)。
  • 路径只关心起点和终点的关节角度,中间过程由插值(如直线、多项式)填充,不控制机械臂末端在空间中的具体路径形状。
  • 优点:计算简单、不会遇到'奇异点'(即机械臂卡死的状态)。
  • 缺点:无法精确控制末端执行器在空间中的运动轨迹。

② 笛卡尔空间中的轨迹规划:

  • 规划的是机器人末端(手部)在三维空间中的位置、姿态、速度和加速度随时间的变化。
  • 要求末端沿一条特定的空间路径(比如直线或圆弧)运动。
  • 需通过逆运动学把末端轨迹转换成各个关节的运动指令。
  • 优点:能精确控制末端轨迹,适合需要高精度路径的任务(如焊接、装配)。
  • 缺点:计算复杂,可能遇到奇异点,且依赖机械臂的具体结构。

2. 轨迹规划常用方法有什么?

2.1 常用的两种方法

① 给出轨迹节点上的约束:在关节空间中,直接对每个关节的角度(或位移)、速度与加速度进行时间函数设计。

首先要给选定轨迹的节点上关节的位姿、速度与加速度一组显式的约束(比如初始点速度为 0、加速度为 0),然后从一类函数中参数化轨迹,再将约束条件代入函数进行插值。这一过程中,约束的设定与得到的轨迹函数都在关节空间中完成,最终的结果可以直接用于电机的驱动。

关节空间轨迹规划常用方法:

  • 多项式插值法
    • 三次多项式:适用于两点间给定位置和速度约束的情况(共 4 个条件)。
    • 五次多项式:可同时满足位置、速度和加速度的边界条件(共 6 个条件),轨迹更平滑,广泛用于工业机器人点到点运动。
  • 带抛物线过渡的线性插值(Linear with Parabolic Blends, LPB):在匀速线段两端加入加速度恒定的抛物线过渡段,避免速度突变,实现连续速度。
  • 样条函数插值
    • 三次样条(Cubic Spline):在多个路径点之间构造分段三次多项式,保证位置和速度连续(C¹连续),部分实现加速度连续。
    • B 样条或自然样条:提供更高阶的光滑性(如 C²连续),适用于对轨迹平滑性要求高的场景。

② 给出运动路径的解析式:在笛卡尔空间中,给出机器人末端的曲线路径。怎样得到这个路径呢?需要用到某种函数逼近的方法,将其转化为关节运动的约束,然后找到满足关节运动约束的参数化路径。

笛卡尔空间轨迹规划常用方法:

  • 直线/圆弧插补(Linear/Circular Interpolation):工业机器人中最常见的笛卡尔路径类型。通过在起点与终点之间均匀插值位置(和姿态),逐点求逆解生成关节指令。
  • 路径参数化 + 逆运动学求解:将路径表示为参数函数 x(s),其中 s∈[0,1] 为路径参数,再对一系列 si 求解 qi=IK(x(si))。
  • 基于雅可比的微分运动规划(Jacobian-based Differential Kinematics):给定期望的末端速度 x˙,通过 q˙=J⁻¹(q)x˙实时计算关节速度,适用于实时跟踪或避障。
  • 数值迭代法求解逆运动学(如牛顿 - 拉夫森法、Damped Least Squares):当解析逆解不存在或有多解时,采用数值方法逐点求解,并结合关节限位、避奇异等优化目标。
  • 轨迹平滑与重采样:对逆解得到的关节序列进行滤波、样条拟合或时间缩放(time scaling),以满足动力学约束并提升运动平滑性。

2.2 关节空间轨迹规划步骤

由于关节驱动在关节空间内是可控的,这样能够避免机构产生奇异问题;同时由于不用考虑末端路径形状,计算简单,因此在工程实践中广泛采用关节空间的轨迹规划。

规划步骤如下:

  1. 运动学反解实现路径点在关节空间内的描述;
  2. 对每个关节拟合光滑函数(轨迹规划);
  3. 一段路径各关节设定相同的运动时间,确保所有关节同时到达路径点和终点(虽然同时运动同时停止,但是规划的各个关节函数之间应是相互独立的)。

那么如何获得连续光滑且独立的关节拟合函数呢?

首先确定关节空间内机器人在起始点、终止点的形位;其次获取各形位点的速度、加速度信息(约束);最后列出轨迹函数通式并求解。(这里轨迹函数一般常用的有:三次多项式插值函数、高次多项式插值函数与抛物线过渡插值函数)为什么和插值函数联系起来了呢?实际上轨迹规划就是将离散的作业点,通过插值的方式得到轨迹函数。

三次多项式插值

比如关节角度三次多项式插值:

三次多项式公式

构建的是三次,四个待定系数的函数。所以需结合至少四个约束来解出这几个未知的四个变量,这样即可得到这个关节的轨迹规划函数。对第一个式子进行一次求导和二次求导,得到关于速度和速度的 2)、3)通式,再代入下面的约束条件即可求得。(f 下标代表结束位置处,0 下标为开始位置处)

约束条件

求解过程

上面其实约束只给了初始点与终止点,那么如果也对中间某一点进行约束呢(也就是下面末端在 A、B 点速度为 0,而中间点 C、D 的速度不为 0)?

多点约束

将约束条件修改为:

修改约束

求解结果

以上就可以得到轨迹规划函数了,那如何确定约束中的那个关节速度呢?

① 根据工具坐标系在直角坐标空间中的瞬时线速度和角速度来确定每个路径点的关节速度;

  • 这种方法要求在每一个路径点进行雅可比运算,若已知末端在某路径点的期望线速度 v 和角速度 ω,可组成末端速度向量;利用当前关节空间构型 q 计算雅可比矩阵 J(q);

② 在直角坐标空间或关节空间中采用某种适当的启发式方法,由控制系统自动地选择路径点的速度;

  • 也可设为零(如停顿点),或按任务需求手动指定。

常用启发式:设中间点速度为相邻两段位移的'平均斜率'。例如,对关节角度序列 θ₀,θ₁,θ₂,…,θₙ,在第 i 点(非端点)设:

中心差分法

上式称为中心差分法,常用于三次样条的'自然'或'非节点'边界条件。

③ 为了保证每个路径点上的加速度连续,由控制系统按照此要求自动地选择路径点的速度。

具体可以假设路径点之间每段轨迹都为三次多项式,比如设两段多项式为

q_1(t)

和

q_2(t)

,在中间点

t_1

处:

加速度连续:

加速度连续

速度连续:

速度连续

(待求)

位置连续:

位置连续

对三次多项式求二阶导后,代入加速度连续条件,可得到关于

q_dot_1

的方程,结合前后段的位置约束

q_0,q_1,q_2

和时间

Delta_t

,解得:

最终公式

该式可自动计算中间点速度,保证加速度连续。

以上仅列举分析了基础的三次多项式插值方法,实际在应用过程中,规划方法还有许多,也可能结合几种方法一起使用,总之轨迹规划的算法非常丰富。如何让工作任务更高效、平稳,如何更适用于自己的工作任务,就需要选择更为适用的轨迹规划方法。

目录

  1. 前言
  2. 1. 什么是机器人轨迹规划?
  3. 1.1 轨迹规划中的运动
  4. 1.2 轨迹规划中的空间
  5. 2. 轨迹规划常用方法有什么?
  6. 2.1 常用的两种方法
  7. 2.2 关节空间轨迹规划步骤
  8. 三次多项式插值
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 人形机器人运控部署框架解析:RSL-RL 与 Unitree RL Gym 源码解读
  • Gazebo 机器人三维物理仿真平台核心解析
  • 大模型新手指南:推荐五本核心入门书籍
  • Cursor IDE 中 Java 项目无法跳转到方法定义问题解决方案
  • 在 Cursor 中配置和使用 MCP 服务
  • HarmonyOS 应用开发:相对与栅格布局详解
  • 行星减速器:原理、计算公式与 C++ 实现
  • Python 四大 Web 框架对比:FastAPI、Django、Flask 与 Tornado
  • 华为 ARM Linux 部署 Ollama 0.17.6 运行 Qwen3.5 模型测试
  • 数学与计算机:逻辑与算法的浪漫邂逅
  • C++ 无锁队列(Lock-Free Queue)详解
  • 黑客入门指南:零基础掌握核心安全能力与技能路径
  • DeepSeek 时代前端开发者能做什么
  • 鸿蒙金融理财全栈项目:生态合作与用户运营优化
  • 基于llama.cpp的Qwen3.5单GPU部署与股票筛选实战
  • MCP 插件配置与使用:browser-tools-mcp 示例
  • MCP 插件配置指南:以 browser-tools-mcp 为例
  • MCP 插件配置与使用:以 browser-tools-mcp 为例
  • 机器人路径规划:D* Lite算法应对动态障碍物及Python实现
  • 机器人动力学:牛顿欧拉法推导与详解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online