Open Source Robotics

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

Foothold Planning

  • 又称: footstep planning, foothold selection
  • 类别: Control › Locomotion control
  • 标签: legged-locomotion, motion-planning, terrain, contact-planning, quadrupeds

利用地形数据和机器人的动力学,选择足式机器人每只脚的着地位置,使每一步都稳定、可达且安全。

定义

落脚点规划(Foothold planning)是为足式机器人的脚选择接触位置的问题。好的落脚点位于坚实、较为平坦且摩擦足够的地面上,远离边缘和坑洞,腿能从机体规划位置够到,并且能在这一步中保持机器人的平衡。对于双足机器人,这个问题通常称为足步规划(footstep planning),并包括每只脚的朝向;对于四足机器人,它通常关注的是每只脚在步态序列中的位置。

传统系统把运动分成若干层。感知构建高程地图,地形分析根据坡度、粗糙度和到边缘的距离为每个单元格打分,落脚点规划器挑选单元格,再由底层控制器规划能够到达这些单元格的机体运动和摆动轨迹。常见的规划方法包括:把由 Raibert 规则等启发式给出的名义落脚点调整到附近得分最高的单元格;在离散足步序列上进行图搜索;以及优化,例如把每一步分配到若干个凸安全区域之一的混合整数规划。一些规划器把落脚点和机体运动一起优化,从而同时处理可达性和动态平衡。

学习改变了这一局面。在仿真中训练的策略可以接收高度采样或原始深度图像,直接输出关节指令,隐式地选择落脚点,这避免了在分离的建图、规划和控制模块之间不断累积的误差。在需要保证、可解释性或精确落脚的场合,例如在踏脚石上,显式的落脚点规划仍然有用;而混合式系统则用学习模型为基于模型的控制器给落脚点打分或提出候选落脚点。

为何重要

在崎岖地形上,脚落在哪里决定了机器人能否保持平衡。落脚点规划把地形感知转化为具体的接触决策,而它是显式完成还是在学习型策略内部完成,决定了足式机器人应对楼梯、碎石和沟隙的可靠程度。

主要应用

  • 四足机器人的爬楼梯和崎岖地形运动
  • 人形机器人在杂乱空间中的足步规划
  • 跨越沟隙和踏脚石
  • 在非结构化地面上工作的行星机器人和巡检机器人
  • 用于比较学习型运动策略的基于模型的基线

实际应用

一台穿越踏脚石场地的四足机器人使用由其深度相机构建的高程地图。地形滤波器把坡度陡、粗糙度高或靠近边缘的单元格标记为无效。对于即将到来的每一步,规划器从由步态和期望速度给出的名义落脚点出发,在一个小邻域内搜索代价最低的有效单元格,并检查腿能否从规划的机体位姿够到它。选定的落脚点被传给模型预测控制器,由它规划机体运动和接触力,同时摆动控制器把每只脚抬得足够高,以越过石块边缘。在地图不确定的地方,代价函数更偏向于靠近每块石头中心的落脚点。

常见误解

  • 落脚点规划只适用于缓慢的静态稳定步行 — 现代规划器在一个短时域内同时规划落脚点和机体运动,从而能处理动态步态
  • 学习型运动策略不选择落脚点 — 它们仍然决定脚落在哪里,只是根据感知隐式地决定,而不是通过单独的规划器
  • 最平坦的单元格总是最好的落脚点 — 可达性、与边缘的距离、后续的步子以及机体的动量都会影响一个落脚点是否好

谁需要了解

  • 足式运动工程师
  • 为足式机器人构建地形地图的感知工程师
  • 运动规划研究人员
  • 人形机器人开发人员

相关技术

  • 高程建图(Elevation Mapping)
  • Raibert 启发式(Raibert Heuristic)
  • 混合整数凸优化(Mixed-Integer Convex Optimization)
  • A 搜索(A Search)
  • 模型预测控制(Model Predictive Control)

相关术语

  • Elevation Map
  • Terrain Traversability
  • Mixed-Integer Programming
  • Quadruped
  • Gait
  • Model Predictive Control

相关项目

  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • 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

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