Skip to content
konodoki edited this page Jul 23, 2026 · 32 revisions

bxi_rl_controller_ros2_example Wiki

本 Wiki 对应当前 dev 架构。自 0f90a49c539e0efcec0d6fbc481f634890742c78 之后,机器人状态侧已经从“中央 Python 状态文件 + 中央状态图 YAML”迁移为可发现、可依赖、可热重载的 Mod 系统。

快速入口

第一次接触项目,建议按以下顺序阅读:

  1. 架构总览
  2. Mod 系统
  3. 状态机基础配置
  4. 手把手系列
  5. 调试、验证与常见问题

从旧版本迁移,请直接阅读 从 0f90a49 迁移

手把手课程

  1. 从零写一个自定义状态 Mod
  2. 把模型动作封装成 Mod
  3. 绑定按键并接入 Mod 路由
  4. 写一个 Mod 内自定义过渡
  5. 使用双状态运行混合
  6. 写一个 UDP 自定义输入驱动
  7. 工程化组合示例
  8. IsaacLab 模型 Sim2Real

参考手册

当前内置 Mod

Mod 内容 发布属性
com.bxi.basic_actions 走路、零力矩、初始姿态、零位、跳舞、起身、跑步、鼓掌、挥手、躺下 public
com.bxi.back_flip 后空翻 protected
com.bxi.forward_flip 前空翻 public
com.bxi.ballet 芭蕾舞 protected

内置 Mod 安装到包的 share/bxi_example_py_elf3/mods/。客户 Mod 可通过系统配置里的 mod_paths 从额外目录发现。

核心原则

  • 一个可独立安装、删除或保护的功能放在一个 Mod 目录中。
  • 状态、事件、资源和 profile 使用 mod-id/local-name 全局命名。
  • 系统 YAML 只保存系统级选项;状态、事件、速度和边放在 mod.yaml
  • Python 插件只声明资源和状态工厂;模型资源通过 ResourceHandle 惰性加载。
  • 遥控器仍统一走 sources -> controls -> outputs -> MotionCommands
  • Mod 的 eventsMotionCommands 槽位映射成事件;routes 决定当前状态如何响应。
  • 高危功能通过 visibility: protected 保护整个 Mod,不再对单个类和模型文件做文本删除。

Clone this wiki locally