Elastic band
- 又称: elastic bands, elastic band method
- 类别: Planning & manipulation › Motion planning
- 标签: motion-planning, local-planning, obstacle-avoidance, path-deformation, mobile-robots
一种局部路径变形方法,把规划好的路径当作一条可拉伸的带,由内部力拉紧、由外部力推离障碍物,从而实时适应环境变化。
定义
弹性带(elastic band)是一种实时变形路径的方法,由 Quinlan 和 Khatib 于 1993 年提出,用来把全局路径规划与反应式控制连接起来。来自全局规划器的无碰撞路径被表示为一串点,或一串气泡,即围绕每个点、大小由到最近障碍物的距离决定的自由空间区域。然后,这条带被当作一个物理对象来处理。内部收缩力就像相邻点之间的弹簧,把带拉紧,使它变得更短、更平滑。外部力由障碍物周围的排斥势导出,把带推离障碍物。在每个控制周期,带都会向这些力的平衡状态松弛,因此当某个障碍物移动或出现新障碍物时,路径会绕过它弯曲,同时保持起点和终点不变。
气泡使带保持连通:只要相邻的气泡相互重叠,它们之间的直线段就是无碰撞的;带被拉长或缩短时,会相应地增加或删除点。由于只是对路径进行变形而不是重新计算,这种方法快到足以在控制回路中运行。后来的工作把这一思想扩展到用于移动机械臂的弹性条,它对工作空间中一系列整机构型进行变形;还扩展到时间弹性带(Timed Elastic Band),它在位姿之间加入时间间隔,并求解一个带有速度、加速度和运动学约束的稀疏优化问题。时间弹性带在 ROS 中可作为局部规划器使用。
弹性带不同于势场方法:后者让机器人直接沿着吸引势和排斥势的梯度运动;而在这里,力作用于一条已经把起点和终点连接起来的完整路径上,因此机器人不会陷入可能使纯势场控制器停下来的局部极小值。它仍然是一种局部方法。带只能连续变形,所以它无法跳到绕过障碍物的另一种方式,例如从左侧而不是右侧通过;如果障碍物切断了带,或者通道被封闭,就必须由全局规划器提供一条新路径。正因如此,一些变体会在不同的同伦类中保留几条候选带。
为何重要
在不断变化的环境中,机器人需要能在一个控制周期内对移动障碍物作出反应、同时又不丢弃全局规划的路径。弹性带及其后续方法是为移动机器人和机械臂提供这种反应层的标准方式,而这种基于力的路径模型也被用来为其他目的生成平滑且考虑障碍物的轨迹。
主要应用
- 移动机器人的局部规划和避障
- 绕开移动中的人和物体的实时路径变形
- 借助弹性条实现移动机械臂的反应式运动
- 对全局规划器给出的路径进行平滑和缩短
- 为训练数据和演示生成考虑障碍物的轨迹
实际应用
一台仓库移动机器人从一个基于栅格的规划器那里收到一条沿通道的全局路径。它的局部规划器把路径接下来的几米表示为一条时间弹性带。当有人走进通道时,激光雷达代价地图记录下一个新障碍物,带上的点被推离它,优化过程使路径绕过这个人弯曲,同时遵守机器人的速度和加速度限制以及最小转弯半径。机器人沿着变形后的路径行进;这个人走过之后,收缩项会把带拉回原来的直线。如果通道被完全堵住,带就无法变形成一条可行路径,导航栈会请求全局规划器提供一条新路线。
常见误解
- 弹性带是一种全局规划器 — 它对已有路径进行变形,需要全局规划器提供初始路线,并在带断开时重新规划
- 弹性带不过是势场 — 势场直接移动机器人,而弹性带把力施加在一条已经到达目标的完整路径上,从而避开会困住纯势场控制器的局部极小值
- 弹性带能找到最短路径 — 它收敛到一条局部较短、平滑的路径,这条路径从与初始路径相同的一侧绕过障碍物,未必是全局最短的
谁需要了解
- 移动机器人导航工程师
- 研究反应式规划的运动规划研究人员
- 配置 ROS 导航局部规划器的工程师
- 学习规划与控制的机器人专业学生
相关技术
- 时间弹性带(Timed Elastic Band)
- 弹性条(Elastic Strips)
- ROS 导航栈(ROS Navigation Stack)
- 人工势场(Artificial Potential Fields)
- 动态窗口法(Dynamic Window Approach)
相关术语
相关项目
- OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
- MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
- Ruckig: Real-time jerk-constrained time-optimal trajectory generation for robots and machines
- NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions