Halaman web: https://serl-robot.github.io/
SERL menyediakan sekumpulan perpustakaan, pembungkus env, dan contoh untuk melatih kebijakan RL untuk tugas manipulasi robot. Bagian berikut menjelaskan cara menggunakan SERL. Kami akan mengilustrasikan penggunaannya dengan contoh.
?: Video SERL, video tambahan tentang sampel RL yang efisien.
Daftar isi
SERL: Rangkaian Perangkat Lunak untuk Pembelajaran Penguatan Robot yang Efisien Sampel
Instalasi
Ikhtisar dan Struktur Kode
Mulai Cepat dengan SERL di Sim
Jalankan dengan Franka Arm di Robot Nyata
Kontribusi
Kutipan
Bagi orang yang menggunakan SERL untuk tugas-tugas yang melibatkan pengendalian gripper (misalnya, mengambil benda), kami sangat menyarankan untuk menambahkan sedikit penalti pada perubahan tindakan gripper, karena ini akan sangat meningkatkan kecepatan latihan. Untuk detailnya, silakan merujuk ke: PR #65.
Lebih lanjut, kami juga merekomendasikan untuk memberikan intervensi secara online selama pelatihan selain memuat demo offline. Jika Anda memiliki robot Franka dan SpaceMouse, ini semudah menyentuh SpaceMouse selama pelatihan.
Kami memperbaiki masalah besar dalam kerangka tindakan intervensi. Lihat rilis v0.1.1 Harap perbarui kode Anda dengan cabang utama.
Setup Conda Environment: buat lingkungan dengan
conda buat -n serl python=3.10
Instal Jax sebagai berikut:
Untuk CPU (tidak disarankan):
instalasi pip --upgrade "jax[cpu]"
Untuk GPU:
pemasangan pip --upgrade "jax[cuda12]==0.4.28" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
Untuk TPU
instalasi pip --upgrade "jax[tpu]" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
Lihat halaman Jax Github untuk detail lebih lanjut tentang menginstal Jax.
Instal serl_launcher
cd serl_launcher instalasi pip -e .pip instalasi -r persyaratan.txt
SERL menyediakan sekumpulan perpustakaan umum bagi pengguna untuk melatih kebijakan RL untuk tugas manipulasi robot. Struktur utama dalam menjalankan eksperimen RL melibatkan keberadaan simpul aktor dan simpul pembelajar, yang keduanya berinteraksi dengan lingkungan robot gym. Kedua node berjalan secara asinkron, dengan data dikirim dari aktor ke node pelajar melalui jaringan menggunakan agentlace. Pelajar secara berkala akan melakukan sinkronisasi kebijakan dengan aktor. Desain ini memberikan fleksibilitas untuk pelatihan paralel dan inferensi.
Tabel untuk struktur kode
Direktori Kode | Keterangan |
---|---|
serl_launcher | Kode utama untuk SERL |
serl_launcher.agents | Kebijakan Agen (misalnya DRQ, SAC, BC) |
serl_launcher.wrappers | Pembungkus lingkungan gym |
serl_launcher.data | Putar ulang buffer dan penyimpanan data |
serl_launcher.vision | Model dan kegunaan terkait visi |
franka_sim | Lingkungan gym simulasi Franka mujoco |
serl_robot_infra | Robot infra untuk berlari dengan robot sungguhan |
serl_robot_infra.robot_servers | Server labu untuk mengirimkan perintah ke robot melalui ROS |
serl_robot_infra.franka_env | Lingkungan gym untuk robot franka sungguhan |
Kami menyediakan lingkungan simulasi untuk mencoba SERL dengan robot franka.
Lihat Mulai Cepat dengan SERL di Sim
Pelatihan dari contoh observasi negara
Pelatihan dari contoh observasi gambar
Pelatihan dari observasi gambar dengan 20 contoh demo lintasan
Kami memberikan panduan langkah demi langkah untuk menjalankan kebijakan RL dengan SERL pada robot Franka asli.
Lihat Lari dengan Franka Arm di Robot Asli
Penyisipan Pasak?
Penyisipan Komponen PCB
Perutean Kabel?
Relokasi Objek ?️
Kami menyambut kontribusi ke repositori ini! Garpu dan kirimkan PR jika Anda memiliki perbaikan pada basis kode. Sebelum mengirimkan PR, jalankan pre-commit run --all-files
untuk memastikan bahwa basis kode diformat dengan benar.
Jika Anda menggunakan kode ini untuk penelitian Anda, silakan kutip makalah kami:
@misc{luo2024serl, title={SERL: Rangkaian Perangkat Lunak untuk Pembelajaran Penguatan Robot yang Efisien Sampel}, author={Jianlan Luo dan Zheyuan Hu dan Charles Xu dan You Liang Tan dan Jacob Berg dan Archit Sharma dan Stefan Schaal dan Chelsea Finn dan Abhishek Gupta dan Sergey Levine}, tahun={2024}, eprint={2401.16013}, archivePrefix={arXiv}, kelas utama={cs.RO}}