-
Notifications
You must be signed in to change notification settings - Fork 12
Home
konodoki edited this page May 13, 2026
·
32 revisions
这个 wiki 按工程任务拆分。建议先读架构总览,再根据要做的事进入对应页面。
- 架构总览
- 遥控器 YAML 配置
- 状态机 YAML 配置
- YAML 字段完整参考
- 手把手添加自定义状态
- 自定义过渡行为
- 手把手添加自定义遥控器驱动
- 框架底层运行原理
- 高级配置范式
- 发布保护与公开版同步
- 调试、验证与常见问题
只想绑定一个新按键:
- 看 遥控器 YAML 配置 的
sources -> controls -> outputs。 - 如果这个按键要切状态,再看 状态机 YAML 配置 的
remote_events和states.*.transitions。 - 不确定字段含义时,看 YAML 字段完整参考。
想写一个新动作状态:
- 从 手把手添加自定义状态 开始。
- 需要更复杂的进入、退出动作时,看 自定义过渡行为。
想接入新的遥控器或协议:
- 先看 遥控器 YAML 配置,确认是否只改 YAML 就够。
- 如果需要读串口、CRSF、SBUS、UDP、自定义 HID,再看 手把手添加自定义遥控器驱动。
- 想理解 failsafe、edge、level、publish_on_change 的底层细节,看 框架底层运行原理。
想把配置写到更高上限:
- 看 高级配置范式。
想发布公开版并删除高危动作:
- 看 发布保护与公开版同步。
遇到按键不触发、状态不切换、failsafe 误触发、Ctrl+C 退不出:
- 看 调试、验证与常见问题。
- 不修改底层
communication/msg/MotionCommands来适配业务状态。 - 遥控器输入统一走
sources -> controls -> outputs。 - 状态机只判断当前 state 和 event,不在业务代码里散落按键判断。
- 每个具体状态是一个类,状态私有变量放在状态对象内部。
-
state_machine.py保持通用;机器人相关逻辑放到robot_state_base.py和具体状态类。 - 新遥控器 driver 只生产 raw source,不写业务状态名。
- 发布保护以配置驱动,公开版只发布脱敏后的目录。