2. 基础概念回顾:机器人运动学与动力学基础,配置空间(C-Space)概念,路径与轨迹的区别

各位同学好,我是你们的老朋友。今天咱们不急着上算法,先把地基打牢。说实话,我见过太多人一上来就怼RRT、A*,结果连“路径”和“轨迹”都分不清,最后调参调到怀疑人生。嗯,咱们今天就把这些基础概念掰扯清楚。

2.1 机器人运动学与动力学:一个管“能不能到”,一个管“怎么到”

先问大家一个问题:你让机械臂去抓杯子,它能不能碰到杯子?这是运动学问题。它怎么用力、用多大力气去抓,才不会把杯子捏碎?这是动力学问题。

运动学,说白了就是研究位置、速度、加速度这些几何关系,不考虑力。我习惯把它分成两类:

  • 正运动学:已知关节角度,求末端位姿。比如你告诉机器人“关节1转30度,关节2转45度”,它就知道手在哪儿。
  • 逆运动学:已知末端位姿,求关节角度。比如你告诉机器人“手要伸到那个点”,它得自己算每个关节该转多少。

我在项目里遇到过最坑的事,就是逆运动学多解问题。同一个位置,机械臂可以“弯着肘”去,也可以“伸着肘”去。你选哪个?选错了可能撞到旁边的设备。所以,逆运动学一定要加约束条件,比如“优先选肘部朝上的解”。

动力学就复杂一些了。它研究力、力矩、惯量这些东西。你想想看,一个重物突然掉下来,机械臂的关节要承受多大的冲击?这就是动力学要算的。我建议初学者先别碰动力学,把运动学玩明白了再说。

核心区别一句话:运动学告诉你“能不能到”,动力学告诉你“怎么安全地到”。

2.2 配置空间(C-Space):把机器人“压缩”成一个点

这个概念太重要了。我刚开始学的时候,总觉得“配置空间”是个玄学。后来做了一次避障规划,才恍然大悟。

想象一下,你的机器人有6个关节。每个关节的角度就是一个维度。6个关节,就是6维空间。在这个空间里,每一个点都对应机器人唯一的一个姿态。这就是配置空间。

为什么要搞这么复杂?因为真实世界里的机器人是有体积的,障碍物也是立体的。碰撞检测非常麻烦。但如果你把机器人“压缩”成一个点,把障碍物按照机器人的形状“膨胀”一下,问题就变成了:一个点在障碍物空间里找路。是不是简单多了?

我给大家画个图,看看这个逻辑:

配置空间(C-Space)核心逻辑 真实世界 机器人 障碍物 配置空间(C-Space) 膨胀障碍物 规划路径 机器人 → 点,障碍物 → 膨胀区域,问题简化为“点在障碍物中找路”

你看,左边真实世界里,机器人是个有形状的物体,障碍物也是。右边配置空间里,机器人变成了一个点,障碍物被“膨胀”了。这样规划路径就变成了:这个点怎么从起点走到终点,不碰到那些膨胀区域

避坑指南:我曾经在配置空间里吃过亏。当时用C-Space做避障,结果机器人还是撞了。后来发现,我忘了考虑机器人自身的碰撞——比如两个关节靠太近,自己打到自己。所以,C-Space不仅要考虑外部障碍物,还要考虑自碰撞

2.3 路径与轨迹:一字之差,天壤之别

这两个词经常被混用,但在我眼里,它们完全是两码事。

对比项 路径(Path) 轨迹(Trajectory)
定义 空间中的几何曲线,只关心位置 带时间信息的路径,关心位置+速度+加速度
包含信息 一系列空间点(x, y, z) 每个点还有时间戳、速度、加速度
典型问题 “这条路能不能避开障碍物?” “以这个速度走,会不会抖动?”
我的比喻 地图上的路线 开车时的油门、刹车、方向盘操作

我举个例子你就明白了。你让机器人从A点走到B点。路径规划告诉你:先直走10米,再右转走5米。但轨迹规划会告诉你:前2秒加速到0.5m/s,中间3秒匀速,最后1秒减速到0。你看,路径只告诉你“走哪条路”,轨迹告诉你“怎么走”。

为什么这个区别重要?因为光有路径,机器人可能跑得一顿一顿的。我在做AGV(自动导引车)项目时,一开始只做了路径规划,结果车在拐弯时急停急起,货物全倒了。后来加上轨迹规划,做了速度平滑,才解决问题。

注意:很多初学者以为“路径规划”就是“轨迹规划”。其实,路径规划是几何问题,轨迹规划是时间问题。做运动规划时,先找路径,再生成轨迹,这是标准流程。

2.4 三者关系:一张图说清楚

好了,咱们把运动学、动力学、C-Space、路径、轨迹串起来。我画个框架图,帮你理清思路:

轨迹规划知识体系框架 运动学 正/逆运动学 动力学 力/力矩/惯量 C-Space 配置空间 路径规划(Path Planning) 在C-Space中找一条无碰撞的几何曲线 轨迹规划(Trajectory Planning) 给路径加上时间、速度、加速度约束 运动学/动力学 → C-Space → 路径规划 → 轨迹规划

你看,整个流程是这样的:

  1. 运动学/动力学是基础,告诉你机器人的能力和限制。
  2. C-Space把问题简化成“点找路”。
  3. 路径规划在C-Space里找一条几何路径。
  4. 轨迹规划给路径加上时间信息,生成平滑的运动。

我个人习惯,做项目时先确认运动学模型对不对,再建C-Space,然后才跑路径规划算法。顺序搞反了,后面全是白费功夫。

一句话总结:运动学告诉你“能不能”,C-Space告诉你“在哪儿找”,路径告诉你“走哪条路”,轨迹告诉你“怎么走”。四者缺一不可。

好了,今天的基础概念就聊到这儿。这些内容看着简单,但真用起来,坑不少。我建议你动手写个小程序,建一个2自由度的C-Space,感受一下“点找路”到底是怎么回事。下节课咱们就开始讲具体的规划算法了。


专注资料整理