RobotMem + Unitree RL Gym
为 Unitree 机器人提供持久化训练记忆。跨训练会话记住成功的步态,将仿真学到的经验迁移到真实硬件。
快速开始
from robotmem import RobotMemory
from rsl_rl.runners import OnPolicyRunner
mem = RobotMemory(db_path="unitree_training.db")
def on_episode_end(env, policy, episode_info):
# 每个回合结束后保存最佳步态模式
mem.save_perception(
observation=episode_info["final_obs"],
action=episode_info["best_actions"],
reward=episode_info["total_reward"],
tags=["go2", "locomotion", episode_info["terrain"]],
)
def before_episode(env, policy):
# 检索在类似地形上有效的步态
terrain = env.get_terrain_type()
prior = mem.recall(
query=f"successful locomotion on {terrain}",
top_k=10,
)
return prior # 基于过去的成功经验调整策略
集成功能
Unitree RL Gym 是 Unitree 机器人的官方强化学习框架,支持 Go2 四足机器人、H1 人形机器人和 G1 通用人形机器人。它基于 NVIDIA Isaac Gym 构建,使用 rsl_rl 作为训练后端。 全球的研究人员和工程师使用该框架在仿真中训练运动策略,然后部署到真实的 Unitree 硬件上。 仿真到真机的流程已经非常成熟,但每次训练都是从零开始。之前成功的策略以及它们成功时的条件 并没有被系统性地记录和复用。
RobotMem 直接集成到 rsl_rl 训练循环中,将成功的运动模式捕获为持久化记忆。每个回合结束后, 系统评估总奖励并存储高性能轨迹,同时记录地形类型、机器人配置和奖励分解等上下文元数据。 在下一个回合开始前,训练器可以检索相关的历史经验来预热探索或为策略网络提供条件输入。 这在多地形训练中尤为有价值——在平地上完美运行的步态可能在楼梯上失败。 有了 RobotMem,机器人可以回忆上周在楼梯上哪些步态有效,避免从零重新学习。
对于在真实 Unitree 硬件上部署的团队,记忆数据库以实用的方式弥合了仿真到真机的鸿沟。 你可以用环境参数(摩擦力、坡度角、负载重量)标记仿真记忆,然后在真实机器人遇到新情况时 检索最相关的仿真经验。机器人实际上携带着一个可搜索的完整训练历史库,按训练条件索引。 这大幅减少了适应新环境所需的真机试验次数。
- rsl_rl 回调集成 — 挂接到 OnPolicyRunner 的回合生命周期,无需修改现有训练代码
- 地形感知记忆 — 自动从 Isaac Gym 中标记地形类型、坡度和表面属性到记忆中
- 奖励过滤存储 — 可配置阈值确保只存储高奖励回合,保持记忆库的高质量
- 多机器人索引 — 按机器人型号(Go2、H1、G1)标记记忆,只检索匹配形态的经验
- 仿真到真机桥梁 — 将仿真记忆连同域随机化元数据迁移到真实硬件部署
- 检查点集成 — 将记忆快照与策略检查点一同保存,实现可复现的训练
从仿真到真实硬件
典型的 Unitree 部署工作流包括在 Isaac Gym 中训练、在更真实的仿真器中验证、然后部署到实体硬件上。 在每个阶段,机器人都会遇到与前一个环境不同的情况。RobotMem 充当贯穿这三个阶段的持续知识线索。 Isaac Gym 训练期间保存的记忆会延续到验证阶段,验证过的记忆会延续到真机部署。 每条记忆条目都包含域随机化参数,因此当真实机器人需要指导时,检索系统可以从最接近的仿真条件中 找到相关经验。使用这种方法的团队反馈,在新地形上实现稳定运动所需的真机试验次数减少了 50%, 因为机器人已经拥有一个可供参考的相关仿真经验库。