1. 轨迹规划概述:到底什么是轨迹规划?
各位同学好,我是老张。在机器人这行摸爬滚打了十几年,今天咱们来聊聊轨迹规划。
说实话,很多人一听到「轨迹规划」这四个字,第一反应就是「不就是让机器人从A点走到B点吗?」。嗯,这话对了一半。如果只是让机器人动起来,那确实简单。但要让机器人安全、高效、平滑地动起来,这里面的门道可就深了。
我刚开始带项目的时候,就吃过这个亏。当时给一个焊接机械臂写运动程序,只想着路径最短,结果机器人走到一半,关节速度突变,焊枪直接甩了出去……嗯,从那以后,我再也不敢小看轨迹规划了。
核心定义:轨迹规划,说白了就是在满足各种约束条件(速度、加速度、避障、动力学等)的前提下,生成一条从起点到终点的、时间参数化的运动序列。它不仅要回答「走哪条路」,还要回答「每个时刻走到哪、速度是多少、加速度是多少」。
1.1 轨迹规划在机器人系统中的地位
你想想看,一个完整的机器人系统,通常包含感知、决策、控制这几个大模块。轨迹规划处在什么位置?
我习惯把它比作「大脑的决策执行层」。感知模块告诉机器人「周围有什么」,全局决策告诉机器人「要去哪里」,而轨迹规划负责的是「具体怎么走」。它把高层的任务指令,翻译成底层控制器能理解的、随时间变化的参考信号。
举个例子:
- 感知层:检测到前方有障碍物,位置在 (x, y, z)。
- 决策层:决定「绕过去,从右侧通过」。
- 轨迹规划层:生成一条平滑曲线,并告诉控制器:第0秒位置在A,速度0;第2秒位置在B,速度0.5m/s;第5秒到达C,速度0……
- 控制层:根据这个参考轨迹,计算电机该输出多大扭矩。
没有轨迹规划,控制器就像无头苍蝇。我记得有次在AGV项目上,有人直接给控制器发目标点,结果小车每次启动都猛冲一下,货物全倒了。这就是典型的「有目标,没轨迹」。
我的经验:在系统架构设计时,我建议把轨迹规划模块单独抽出来,不要和底层控制耦合太紧。这样换算法、调参数都方便很多。我在多个项目里都是这么干的,后期维护成本至少降低30%。
1.2 常见应用场景
轨迹规划不是某个领域的专属,它几乎出现在所有需要「自主运动」的机器人里。我挑三个最典型的说说。
1.2.1 机械臂
机械臂的轨迹规划,核心是关节空间和笛卡尔空间的来回切换。
- 关节空间规划:直接规划每个关节的角度随时间的变化。好处是计算快,不会出现奇异点。适合点对点运动,比如「从抓取位回到安全位」。
- 笛卡尔空间规划:规划末端执行器在三维空间中的位姿轨迹。好处是路径直观可控,适合需要走特定路径的任务,比如焊缝、涂胶。
我曾经在3C电子产线上做过一个项目,要求机械臂用吸盘取放芯片。一开始用的关节空间插值,结果末端走的路径是个大圆弧,差点撞到旁边的夹具。后来改成笛卡尔空间直线规划,问题就解决了。所以你看,场景不同,选型完全不同。
| 规划空间 | 优点 | 缺点 | 典型场景 |
|---|---|---|---|
| 关节空间 | 计算快、无奇异点 | 末端路径不可控 | 点对点搬运、码垛 |
| 笛卡尔空间 | 路径直观、可控 | 计算量大、有奇异点风险 | 焊接、涂胶、铣削 |
1.2.2 AGV / 移动机器人
AGV的轨迹规划和机械臂不太一样。它更关注全局路径和局部路径的配合。
- 全局规划:在已知地图上,找出一条从起点到终点的无碰撞路径。常用A*、Dijkstra。它只关心「走哪条路」,不关心「怎么走」。说白了就是路径规划,不是轨迹规划。
- 局部规划:在全局路径的基础上,考虑机器人的运动学约束(比如最小转弯半径、最大速度),生成平滑的、可执行的轨迹。常用DWA、TEB。这才是真正的轨迹规划。
我做过一个仓储AGV项目,一开始只用了全局路径,结果小车在拐弯处经常卡住,因为全局路径给的折线,小车根本转不过去。后来加了局部轨迹规划,用TEB算法把折线优化成平滑曲线,问题就解决了。
避坑指南:我曾经在AGV项目里犯过一个低级错误——全局路径和局部轨迹的坐标系没对齐。结果局部规划出来的轨迹,起点和全局路径的终点差了半米,小车直接原地打转。所以,坐标系一致性是轨迹规划里最容易忽略、也最容易出问题的地方。
1.2.3 自动驾驶
自动驾驶的轨迹规划,可以说是难度最高的。它不仅要考虑运动学约束,还要考虑交通规则、动态障碍物、乘坐舒适性。
自动驾驶的轨迹规划通常分三层:
- 路由规划:从地图上找出一条宏观路径,比如「走哪条路、哪个车道」。这其实不算轨迹规划。
- 行为决策:决定下一步动作,比如「跟车、变道、超车、停车」。
- 运动规划:生成具体的轨迹,包括位置、速度、加速度、曲率等。常用方法有:多项式曲线、贝塞尔曲线、样条曲线、优化方法(如MPC)。
我记得有个做自动驾驶的朋友跟我吐槽,说他们最头疼的不是算法本身,而是「舒适性」这个指标。同样的轨迹,有人觉得平稳,有人觉得晕车。后来他们加了个 jerk(加加速度)约束,才把问题控制住。
1.3 本章知识体系总览
下面这张图,是我自己总结的轨迹规划知识体系。你可以把它当成整个课程的地图。后面每一章,都会围绕这张图展开。
1.4 本章小结
这一章,我们主要聊了三件事:
- 轨迹规划是什么:不是简单的路径,而是带时间信息的运动序列。
- 它在系统里的位置:连接决策和控制的桥梁,缺了它,机器人就是「有目标,没章法」。
- 三个典型场景:机械臂、AGV、自动驾驶,各有各的侧重点和难点。
我个人觉得,学轨迹规划,最重要的是建立「约束思维」。不要只想着「怎么走」,要多想「在什么条件下走」。后面每一章,我们都会围绕各种约束条件展开。
好了,第一章就到这里。内容不多,但都是基础。把这些概念吃透了,后面学算法才不会跑偏。