RobotMem + ManiSkill

为兼容 Gymnasium 的操作任务提供持久经验回放 — 训练运行之间再也不会丢失回合数据。

pip install robotmem

快速开始

import robotmem
import gymnasium as gym
import mani_skill.envs

mem = robotmem.connect("maniskill-pick-cube")
env = gym.make("PickCube-v1", obs_mode="state", render_mode="rgb_array")
obs, info = env.reset()

for episode in range(100):
    done = False
    while not done:
        action = env.action_space.sample()  # 替换为您的策略
        obs, reward, terminated, truncated, info = env.step(action)
        done = terminated or truncated
        mem.save_perception(
            observation=obs,
            action=action,
            reward=reward,
            metadata={"episode": episode, "task": "PickCube-v1", "success": info.get("success", False)}
        )
    # 从所有历史回合中检索成功的抓取动作
    expert_moves = mem.recall("successful pick and place actions")

集成功能

ManiSkill 是机器人操作研究中使用最广泛的基准测试平台,基于 SAPIEN 物理引擎构建,完全兼容 Gymnasium API。它提供数十种操作任务 — 抓取、堆叠、倒液体、装配 — 供研究人员开发和评估机器人学习算法。然而,标准训练循环在进程结束后会丢弃所有回合数据。

RobotMem 为您的 ManiSkill 训练流程添加了持久记忆层。每一步的观测、动作、奖励和元数据都通过 save_perception 捕获,并存储在一个可跨会话、崩溃甚至硬件更换后恢复的本地数据库中。之后,您可以通过 recall 使用自然语言查询这些记忆 — 搜索"成功的抓取和放置动作"或"夹爪打滑的回合"会返回语义相关的经验。

由于 ManiSkill 遵循 Gymnasium 接口,集成 RobotMem 无需更改您的环境设置。只需在现有训练循环中添加几行 RobotMem 调用,即可立即获得一个不断增长的经验库。这个经验库随时间推移越来越有价值:早期探索数据有助于引导新实验,成功的轨迹可以作为模仿学习的示范,而失败案例则为奖励塑形提供反面例子。

适用场景

当您运行 ManiSkill 实验并希望在会话间保留训练数据时,请使用此集成。它对经验回放研究特别有价值,因为您需要一个能够超越单次训练运行生命周期的持久缓冲区。如果您正在进行多任务操作学习,RobotMem 让您可以跨 PickCube、StackCube、PegInsertionSide 等任务构建共享经验池。对于仿真到真实 (sim-to-real) 工作流,持久记忆充当桥梁 — 您的真实机器人可以检索仿真智能体学到的内容,并按任务相关性和成功率进行过滤。

开始构建有记忆的机器人

pip install robotmem