ウェブページ: https://serl-robot.github.io/
SERL は、ロボット操作タスク用の RL ポリシーをトレーニングするためのライブラリ、環境ラッパー、およびサンプルのセットを提供します。次のセクションでは、SERL の使用方法について説明します。例を挙げて使い方を説明します。
?: SERL ビデオ、サンプル効率的な RL に関する追加ビデオ。
目次
SERL: サンプル効率の高いロボット強化学習のためのソフトウェア スイート
インストール
概要とコード構造
Sim での SERL のクイック スタート
リアルロボットでフランカアームと一緒に走ろう
貢献
引用
グリッパーの制御を伴うタスク (物体を拾うなど) に SERL を使用するユーザーには、トレーニング速度が大幅に向上するため、グリッパーのアクションの変更に小さなペナルティを追加することを強くお勧めします。詳細は広報#65をご参照ください。
さらに、オフライン デモのロードに加えて、トレーニング中にオンラインで介入を提供することもお勧めします。 Franka ロボットと SpaceMouse をお持ちの場合、トレーニング中に SpaceMouse に触れるだけで簡単になります。
介入アクション フレームの重大な問題を修正しました。リリース v0.1.1 を参照してください。コードを main ブランチで更新してください。
Conda 環境のセットアップ:次の環境を作成します。
conda create -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_launcher pip install -e .pip install -rrequirements.txt
SERL は、ユーザーがロボット操作タスクの RL ポリシーをトレーニングするための共通ライブラリのセットを提供します。 RL 実験を実行する主な構造には、アクター ノードと学習者ノードが含まれ、どちらもロボット ジム環境と対話します。両方のノードは非同期で実行され、データは、agentlace を使用してネットワーク経由でアクターから学習者ノードに送信されます。学習者はポリシーをアクターと定期的に同期します。この設計により、並列トレーニングと推論に柔軟性が提供されます。
コード構造の表
コードディレクトリ | 説明 |
---|---|
serl_launcher | 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 | ROS経由でロボットにコマンドを送信するためのFlaskサーバー |
serl_robot_infra.franka_env | 本物のフランカロボットのジム環境 |
Franka ロボットを使用して SERL を試すためのシミュレート環境を提供します。
Sim での SERL のクイック スタートを確認してください
状態観察例からの訓練
画像観察例からのトレーニング
20 デモ軌道例による画像観察からのトレーニング
実際の Franka ロボットで SERL を使用して RL ポリシーを実行するためのステップバイステップ ガイドを提供します。
リアルロボットでフランカ・アームと一緒に走る様子をチェックしてください
ペグ挿入?
PCB コンポーネントの挿入
ケーブルの配線?
オブジェクトの再配置 ?️
このリポジトリへの貢献を歓迎します。コードベースに改善点がある場合は、フォークして PR を送信してください。 PR を送信する前に、 pre-commit run --all-files
実行して、コードベースが正しくフォーマットされていることを確認してください。
このコードを研究に使用する場合は、論文を引用してください。
@misc{luo2024serl、title={SERL: サンプル効率的なロボット強化学習のためのソフトウェア スイート}、author={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}}