網頁: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 和Abhishek Gupta 和Sergey Levine},年份={2024},eprint={2401.16013},archivePrefix={arXiv},primaryClass={cs.RO}}