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