有限状态机
Finite State MachineFSM常用系统任一时刻处于有限个状态之一,收到事件就按规则切换状态的模型。
有限状态机是一种计算模型:系统在任意时刻只处于有限个状态中的一个,收到某个输入或事件后按事先定好的规则跳到另一个状态,每个状态对应一套固定行为。经典例子是地铁闸机:「锁定」时投币变「解锁」,人推过去后又变回「锁定」。机器人里它常用来管运行模式和任务流程,比如上电后零力矩→站立→行走→阻尼的切换,或抓取流程里「接近→抓取→抬起→放置」的顺序,好处是逻辑清楚、容易检查。缺点是状态和跳转一多就难维护,所以复杂任务越来越多改用行为树,后者更模块化,也更容易随时响应新情况。
例子宇树 G1 的高层运动接口直接用状态机编号管理模式:0 是零力矩,1 是阻尼,2 是蹲下,3 是坐下,4 是起立,500 是开始运动;SDK 里调用 Damp() 实际就是把状态机切到 1 号状态。
- 也叫
- 状态机、有限自动机、State Machine
- 相关
- 行为树、阻尼模式、任务规划、分层控制、BehaviorTree.CPP(C++ 行为树库)、宇树 SDK
- 来源
- Wikipedia: Finite-state machine
unitree_sdk2 g1_loco_client.hpp(SetFsmId / Damp / ZeroTorque)
Behavior Trees in Robotics and AI: An Introduction (arXiv 1709.00084)