Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Potential Field

  • 又称: artificial potential field, APF
  • 类别: Planning & manipulation › Motion planning
  • 标签: motion-planning, obstacle-avoidance, reactive-control, navigation, gradient-descent

一种规划与控制方法:目标产生吸引,障碍物产生排斥,机器人沿合成势的梯度运动;简单且具反应性,但容易陷入局部极小值。

定义

在人工势场(artificial potential field)法中,机器人被视为在一个标量场 U(q) 中运动的质点,该标量场定义在它的工作空间或构型空间上。吸引势(通常是到目标距离的二次函数)把它拉向目标。排斥势在机器人接近障碍物时急剧增大,在影响距离之外为零,把它推离障碍物。机器人被指令沿负梯度 −∇U 运动,负梯度起着虚拟力的作用。Khatib(1986)提出了这种方法,用于操作臂和移动机器人的实时避障,他把虚拟力施加在机械臂上的若干点,并通过雅可比矩阵的转置把它们映射为关节力矩。

它的吸引力在于计算是局部的且开销很小。每一步只需要当前到附近障碍物的距离,因此该方法能对移动的障碍物立即作出反应,并以控制频率运行。主要局限在于,沿梯度运动会停在 U 的任何局部极小值处,即吸引力与排斥力相互抵消的地方:机器人可能被困在 U 形障碍物内部,或停在两个相距很近的障碍物之间的缝隙前。势场在狭窄通道中还可能发生振荡;当障碍物紧挨着目标时,排斥作用可能让机器人无法到达目标。

存在若干补救方法。由 Rimon 和 Koditschek 提出的导航函数,是为某些类别的环境构造的、在目标处只有一个极小值的势函数;调和势函数则通过其构造避免了伪极小值。更常见的做法是把势场与提供中间路径点的全局规划器结合,与用于逃离极小值的随机运动结合,或者把它作为基于优化的控制器中的一项。沿着由目标和障碍物构建的代价的梯度下降,这一思想以其他名称出现在当前的工作中,例如轨迹优化器中的有符号距离场代价,以及用于反应式操作的动态组合代价地形。

为何重要

势场是获得反应式避障的最简单方法之一,而它的局部极小值问题,是说明为什么要把反应式控制与全局规划结合起来的标准例子。沿目标和障碍物代价的梯度运动,仍是许多反应式控制器和轨迹优化器的核心。

主要应用

  • 移动机器人的反应式避障
  • 操作臂在人员或移动物体附近的实时防碰撞
  • 带有机器人间排斥的多机器人和集群协同
  • 无人机在杂乱空间中的导航
  • 位于全局路径规划器之下的局部控制层
  • 轨迹优化和反应式操作中的代价项

实际应用

一台小型差速驱动机器人用 2D 激光雷达在实验室中移动。每次扫描时,控制器计算一个指向下一个路径点的吸引力,以及一个来自设定影响距离内每个激光雷达回波的排斥力,把它们相加,并把结果转换为线速度和角速度指令。机器人无需重新规划就能绕开走过的人。当它被困在由两张桌子形成的角落里时,团队根据目标仍很远而速度接近于零来检测这种停滞,并让全局规划器在障碍物周围插入一个中间路径点。他们还限制了排斥力的上限,并对指令速度做平滑处理,以防机器人在门口振荡。

常见误解

  • 沿势场运动总能到达目标 — 沿梯度运动可能停在吸引力与排斥力相互抵消的局部极小值处
  • 势场是一种完备的规划方法 — 它是局部的、反应式的,在必须保证得到路径时,通常与全局规划器配合使用
  • 排斥越强,机器人总是越安全 — 过强或范围过宽的排斥可能堵住狭窄通道并引起振荡

谁需要了解

  • 移动机器人和导航工程师
  • 从事防碰撞的操作臂控制工程师
  • 多机器人和无人机开发者
  • 学习经典运动规划的学生

相关技术

  • 导航函数(Navigation Functions)
  • Vector Field Histogram
  • Dynamic Window Approach
  • 有符号距离场(Signed Distance Fields)
  • 操作空间公式(Operational Space Formulation)

相关术语

  • Obstacle Avoidance
  • Motion Planning
  • Configuration Space
  • Signed Distance Field
  • Operational Space Control
  • Control Barrier Function

相关项目

  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
  • MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。