Conclusion
- 计算时只用 Jacobian 矩阵的前三个参数(也就是位置)因为定义的势场只产生了力(线速度),没有产生力矩(角速度)
- 要把力从笛卡尔空间转到关节空间之后再相加,否则可能会丢失力矩——比如两个相反但作用于两个角的力,直接相加能够抵消,但是转换再相加会旋转
- 使用梯度下降法,走一步算一步,像控制器,容易陷入局部最优
Notes
核心思想:用“力”来引导机器人
想象一下,机器人的末端执行器是一个小球。
- 目标点 像一个磁铁,产生吸引力 。
- 障碍物 像一个电荷,产生排斥力 。
机器人的运动在这个虚拟的“力场”中,被合力驱动,自然地“滚向”目标点并避开障碍物。 用来建模这两个“力场”的函数也与“磁铁”和“电荷”的直观想象相符。
公式推导详解
一步步构建关节扭矩 的公式。
第 1 步:定义势能场
首先定义虚拟的势能场 。在物理学中,力是势能场的负梯度 ()。
-
吸引力场(由目标点 产生):
其中 是吸引力增益常数。
-
排斥力场(由障碍物产生):
其中 是排斥力增益常数, 是障碍物的影响范围。
-
总势能场:
第 2 步:从势能场计算虚拟力
根据 计算虚拟力。
-
吸引力:
这个力的方向指向目标点,大小与距离成正比。
-
排斥力:
具体计算为:
这个力的方向是远离障碍物,距离障碍物越近,推力越大。
-
总虚拟力:
第 3 步:从虚拟力到关节扭矩
这是最关键的一步。 是在操作空间中的力,但我们需要关节的扭矩 。
这里需要用到雅可比矩阵 ,它描述了关节速度 与末端执行器速度 之间的关系:
通过虚功原理,雅可比矩阵的转置可以将操作空间中的力映射到关节空间的广义力(扭矩):
- 最终公式:
什么是虚功原理?
这是一个经典的力学原理,它完美地解决了 “末端执行器上的一个虚拟力,应该如何等效为各个关节的扭矩?” 这个问题。
虚功原理说的是:如果一个系统处于平衡状态,那么所有作用力在任何“虚位移”上所做的“虚功”之和为零。
- 虚位移:一个假想的、非常微小的、符合系统约束的位移。它不是实际发生的位移,只是一个思想实验工具。
- 虚功:力在虚位移上做的功。
假设我们对机器人末端执行器施加一个力 (即我们计算出的虚拟合力),同时末端执行器产生了一个微小的虚位移 。
操作空间中的虚功: 末端力做的虚功是:
关节空间中的虚功: 这个末端的位移是由关节的微小位移 引起的。它们通过雅可比矩阵 联系起来:
同时,关节扭矩 在关节位移上做的虚功是:
建立等效关系: 根据虚功原理,为了让系统等效,末端力 所做的功,应该等于关节扭矩 所做的功:
将 代入:
由于这个等式对于任意的虚位移 都成立,所以系数必须相等:
两边同时转置,就得到了我们最终使用的公式:
把机器人想象成一组杠杆系统。
- 雅可比矩阵 就像一套传动比,它告诉你“关节转动一个很小的角度,末端会移动多少”。
- 虚功原理则说,能量是守恒的。末端力 移动一段距离 所做的功,必须等于各个关节扭矩 转动相应角度 所做的功之和。
- 这个公式,就是根据这个能量守恒原则,计算出的为了产生末端力 ,各个关节需要出的“力”(扭矩)是多少。
所以,虚功原理是连接抽象的操作空间力与物理的关节空间扭矩之间的一个非常优美且坚实的桥梁。它确保了我们在虚拟势场中计算的力,能够被正确地转换为驱动实际机器人关节运动的指令。
总结与工作流程
- 感知:获取当前关节角度 、目标位置 和障碍物位置
- 计算虚拟力:
- 计算吸引力
- 计算每个障碍物的排斥力
- 计算合力
- 转换到关节扭矩:
- 计算雅可比矩阵
- 计算关节扭矩
- 控制:将扭矩 发送给关节控制器
- 循环:重复直到到达目标
优缺点
- 优点:
- 概念直观
- 计算效率高,能够实时反应环境变化
- 缺点:
- 容易陷入局部最小值,在狭窄通道中可能振荡
- 参数调优困难