Open Source Robotics

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

Kinodynamic Planning

  • 又称: kinodynamic motion planning
  • 类别: Planning & manipulation › Motion planning
  • 标签: motion-planning, dynamics, sampling-based-planning, trajectory-optimization, state-space

一种同时考虑几何约束(例如碰撞)和系统动力学的运动规划,求出的是随时间变化的控制输入,而不只是一条无碰撞路径。

定义

运动动力学规划(kinodynamic planning)是这样一种运动规划:其解必须同时满足运动学约束(例如避开障碍物和关节限位)和动力学约束(例如有界的加速度、力或力矩)。这个术语由 Donald、Xavier、Canny 和 Reif 于 1993 年提出。运动动力学规划器不是先在构型空间中搜索一条几何路径、之后再为它安排时间,而是搜索一个持续时间和一个控制函数,使得通过对系统动力学积分得到的轨迹从初始状态出发、始终处于自由空间内,并终止于目标区域。

因此,搜索在状态空间中进行,状态空间除了位置之外还包括速度,其维数通常是构型空间的两倍。主要的困难在于,两个相邻的状态一般无法用直线连接:连接它们需要在动力学约束下求解一个两点边值问题,这对于双积分器或 Dubins 车之类的简单系统很容易,但在一般情况下很难。基于采样的规划器,例如由 LaValle 和 Kuffner 提出的 kinodynamic RRT,通过向前生长一棵树来回避这个问题:选取一个节点,在短时间内施加采样得到或选定的控制,并保留由此得到的状态。后来的方法如 SST 在不需要转向函数的情况下增加了渐近近似最优性。

其他几类方法以不同的方式处理同一问题。基于搜索的规划器使用由预先计算的运动基元构成的栅格,其中每个运动基元在动力学上都是可行的。轨迹优化方法,包括直接配点法和打靶法,把控制量和状态作为决策变量,求解一个带约束的非线性规划问题,它在局部收敛很快,但可能陷入局部极小值。实际系统常常把两者结合起来:先由采样或搜索阶段找到一条可行轨迹,再由优化对其进行细化。当动力学不确定时,例如推动物体,规划器可能使用学习得到的系统模型或残差模型,并用开环控制进行规划,再由反馈对其进行修正。

为何重要

快速或沉重的机器人、汽车、无人机以及被推动的物体都无法沿任意几何路径运动:忽略动量或执行器限制的路径可能根本无法执行。运动动力学规划生成系统实际能够跟随的轨迹,这在机器人快速运动或控制能力有限时最为重要。

主要应用

  • 汽车和其他非完整约束车辆的轨迹规划
  • 无人机和固定翼飞机的激进飞行规划
  • 非抓握操作,例如规划一系列推动动作
  • 接近力矩和速度限制的快速机械臂运动
  • 考虑接触动力学的腿足和人形机器人运动规划
  • 航天器和水下航行器的机动

实际应用

一台机械臂必须在不抓取的情况下,把一个箱子推过桌面送到目标区域,同时避开一个障碍物。团队把箱子的运动建模为推动参数(例如接触点、方向和持续时间)的函数,使用一个经学习残差修正的解析推动模型。一个 kinodynamic RRT 从当前的箱子状态出发采样推动动作,用模型传播每个动作,并把得到的箱子位姿加入树中,同时丢弃会与障碍物碰撞的推动。一旦某个分支到达目标区域,就执行这一系列推动,并在每次推动后重新观测箱子位姿,这样当模型有误时,规划器就能从真实状态出发重新规划。

常见误解

  • 运动动力学规划就是几何规划加上时间参数化 — 解耦的流程可能生成任何动力学可行轨迹都无法跟随的路径,而运动动力学规划器在搜索过程中就考虑动力学
  • 只要更换距离度量,任何基于采样的规划器都能变成运动动力学规划器 — 连接两个状态通常需要求解边值问题或向前传播控制,而不是画一条直线
  • 运动动力学规划可以开环执行 — 模型误差和扰动会累积,因此规划通常需要由反馈控制器跟踪或重新规划

谁需要了解

  • 面向车辆、无人机和机械臂的运动规划工程师
  • 研究推动及其他动态任务的操作研究人员
  • 自动驾驶规划工程师
  • 学习构型空间之外的规划的机器人学学生

相关技术

  • Kinodynamic RRT
  • Stable Sparse RRT(SST)
  • 状态栅格规划器(State Lattice Planners)
  • Open Motion Planning Library(OMPL)
  • 轨迹优化(Trajectory Optimization)

相关术语

  • Motion Planning
  • Rapidly-exploring random tree
  • Configuration Space
  • Direct Collocation
  • Double Integrator
  • Nonprehensile Manipulation

相关项目

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • 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

视频

  • 6.8210 Spring 2024 Lecture 18: Sampling-based (kinodynamic) motion planning: underactuated

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