网页:https://serl-robot.github.io/
SERL 提供了一组库、环境包装器和示例来训练机器人操作任务的 RL 策略。以下部分描述如何使用 SERL。我们将通过示例来说明其用法。
?:SERL 视频,有关示例高效 RL 的附加视频。
目录
SERL:用于样本高效的机器人强化学习的软件套件
安装
概述和代码结构
在 Sim 中快速启动 SERL
与弗兰卡手臂一起在真实机器人上跑步
贡献
引文
对于使用 SERL 执行涉及控制夹具(例如拾取物体)的任务的人,我们强烈建议在夹具动作变化上添加一个小的惩罚,因为这将大大提高训练速度。详情请参阅:PR #65。
此外,除了加载离线演示之外,我们还建议在培训期间提供在线干预。如果您有 Franka 机器人和 SpaceMouse,则只需在训练期间触摸 SpaceMouse 即可轻松完成。
我们解决了干预行动框架中的一个主要问题。请参阅版本 v0.1.1 请使用主分支更新您的代码。
设置Conda环境:创建一个环境
conda 创建-n serl python=3.10
安装 Jax 如下:
对于CPU(不推荐):
pip install --upgrade “jax[cpu]”
对于 GPU:
pip install --upgrade "jax[cuda12]==0.4.28" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
适用于TPU
pip install --upgrade "jax[tpu]" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
有关安装 Jax 的更多详细信息,请参阅 Jax Github 页面。
安装serl_launcher
cd serl_启动器 pip install -e .pip install -r 要求.txt
SERL 提供了一组通用库,供用户训练机器人操作任务的 RL 策略。运行强化学习实验的主要结构包括一个参与者节点和一个学习者节点,这两个节点都与机器人健身房环境交互。两个节点异步运行,数据使用 agentlace 通过网络从参与者发送到学习者节点。学习者将定期与参与者同步策略。这种设计为并行训练和推理提供了灵活性。
代码结构表
代码目录 | 描述 |
---|---|
serl_启动器 | SERL的主要代码 |
serl_launcher.agents | 代理策略(例如 DRQ、SAC、BC) |
serl_launcher.wrappers | 健身房环境包装纸 |
serl_launcher.data | 重放缓冲区和数据存储 |
serl_launcher.vision | 视觉相关模型和工具 |
弗兰卡西姆 | Franka mujoco 模拟健身房环境 |
serl_robot_infra | 用于与真实机器人一起运行的机器人基础设施 |
serl_robot_infra.robot_servers | Flask 服务器用于通过 ROS 向机器人发送命令 |
serl_robot_infra.franka_env | 真正的弗兰卡机器人的健身房环境 |
我们提供了一个模拟环境,用于使用 Franka 机器人尝试 SERL。
查看 Sim 中的 SERL 快速入门
从状态观察示例进行训练
从图像观察示例进行训练
使用 20 个演示轨迹示例进行图像观察训练
我们提供了在真实 Franka 机器人上使用 SERL 运行 RL 策略的分步指南。
看看在 Real Robot 上与 Franka Arm 一起跑步
钉插入 ?
PCB 元件插入
电缆布线 ?
对象重定位?️
我们欢迎对此存储库做出贡献!如果您对代码库有任何改进,请分叉并提交 PR。在提交 PR 之前,请运行pre-commit run --all-files
以确保代码库格式正确。
如果您使用此代码进行研究,请引用我们的论文:
@misc{luo2024serl,标题={SERL:用于样本高效机器人强化学习的软件套件},作者={Jianlan Luo 和 Zheyuan Hu 和 Charles Xu 和 You Liang Tan 和 Jacob Berg 和 Archit Sharma 和 Stefan Schaal 和 Chelsea Finn 和阿布舍克·古普塔和谢尔盖·莱文},年份={2024},eprint={2401.16013}, archivePrefix = {arXiv},primaryClass = {cs.RO}}