Open Source Robotics

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

Minimum-Snap Trajectory

  • 又称: minimum snap trajectory, min-snap
  • 类别: Planning & manipulation › Trajectory optimisation
  • 标签: trajectory-generation, quadrotors, aerial-robotics, motion-planning, optimization

通过最小化 snap(位置的四阶导数)平方的积分而得到的一条经过各航点的平滑路径;是规划四旋翼飞行的标准方法。

定义

最小 snap 轨迹(minimum-snap trajectory)依次经过一系列航点,同时使位置四阶时间导数(称为 snap)平方的积分最小。每个坐标通常表示为分段多项式,每对相邻航点之间一段,并在连接处强制位置及其各阶导数连续。由于代价是多项式系数的二次函数,而航点条件和连续性条件是线性的,在各段时长固定时求解系数就是一个二次规划问题,在无约束情况下还可以得到闭式解。

这种方法与四旋翼紧密相关。Mellinger 和 Kumar(2011)证明,四旋翼是微分平坦的,以位置和偏航角作为平坦输出:完整的状态和输入都可以由这些输出及其导数计算出来。推力的方向和大小由加速度决定,机体角速度由 jerk 决定,而角加速度,进而电机力矩,由 snap 决定。因此,最小化 snap 能使所需的电机指令变化保持小而平滑,从而使轨迹更容易跟踪。同样的思路用在更低阶上,就得到长期用于机械臂运动的最小 jerk 轨迹,以及最小加速度路径。

多项式求解只覆盖了问题的一部分。各段时长必须另外选择,通常通过外层优化,或者通过缩放时间直到满足速度、推力和机体角速度限制。解会经过各个航点,但本身并不能避开航点之间的障碍物,因此规划器要么在路径切过拐角的地方添加中间航点,要么把每一段约束在一个安全的凸走廊内。最小 snap 轨迹是平滑的,但不是时间最优的,这就是竞速系统还会使用基于采样或基于优化的时间最优规划器的原因。

为何重要

最小 snap 轨迹生成是把航点转换为多旋翼可飞行参考轨迹的默认方法。它速度快、原理清楚,并能通过微分平坦性干净地映射到四旋翼动力学上,因此出现在研究用自动驾驶仪、无人机竞速和空中巡检中。

主要应用

  • 四旋翼航点飞行和激进机动
  • 无人机竞速的参考轨迹
  • 空中巡检和航拍路径
  • 操作臂的平滑关节空间或笛卡尔空间轨迹(最小 jerk 变体)
  • 在几何路径规划器之后进行轨迹细化

实际应用

一支无人机竞速团队有一张赛道上各个门的位置图。他们在每个门的中心放置一个航点,把偏航角设为朝向下一个门,并在 x、y 和 z 上拟合一条最小 snap 分段多项式,在每个门处保证直到 snap 的连续性。初始时间分配由距离和一个标称速度得出。然后,他们对照通过平坦性映射计算出的速度、总推力和机体角速度限制检查轨迹,并拉长或缩短各段时间,直到每个限制都留有裕度地得到满足。得到的轨迹按控制器频率采样,传给一个几何跟踪控制器,同一条参考轨迹还用于为一个学习型感知策略生成标签。

常见误解

  • 最小 snap 是时间最优的 — 它在各段时间固定的前提下最小化平滑性代价,而不是飞行时间
  • 因为航点无碰撞,所以轨迹能避开障碍物 — 除非加入走廊约束,航点之间的轨迹段仍可能切过拐角
  • 执行器限制会被自动处理 — 速度、推力和机体角速度限制必须通过时间分配或约束来检查和强制满足
  • 最小 snap 就是微分平坦性 — 平坦性是飞行器模型的一种性质;最小 snap 是用来规划平坦输出的一种代价

谁需要了解

  • 空中机器人和无人机自动驾驶仪工程师
  • 运动规划研究人员
  • 无人机竞速和巡检开发者
  • 学习轨迹生成的控制专业学生

相关技术

  • 二次规划(Quadratic Programming)
  • 分段多项式样条(Piecewise Polynomial Splines)
  • PX4
  • SE(3) 上的几何跟踪控制(Geometric Tracking Control on SE(3))
  • 安全飞行走廊(Safe Flight Corridors)

相关术语

  • Differential Flatness
  • Trajectory Planning
  • UAV
  • Direct Collocation
  • Kinodynamic Planning
  • Model Predictive Control

相关项目

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • 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
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization

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