หน้าเว็บ: https://serl-robot.github.io/
SERL จัดเตรียมชุดไลบรารี ไฟล์ env และตัวอย่างเพื่อฝึกนโยบาย RL สำหรับงานจัดการหุ่นยนต์ ส่วนต่อไปนี้จะอธิบายวิธีการใช้ SERL เราจะอธิบายการใช้งานพร้อมตัวอย่าง
?: วิดีโอ SERL, วิดีโอเพิ่มเติมเกี่ยวกับตัวอย่าง RL ที่มีประสิทธิภาพ
สารบัญ
SERL: ชุดซอฟต์แวร์สำหรับการเรียนรู้การเสริมกำลังด้วยหุ่นยนต์ที่มีประสิทธิภาพตัวอย่าง
การติดตั้ง
ภาพรวมและโครงสร้างรหัส
เริ่มต้นอย่างรวดเร็วด้วย SERL ใน Sim
วิ่งไปกับ Franka Arm บน Real Robot
ผลงาน
การอ้างอิง
สำหรับผู้ที่ใช้ SERL สำหรับงานที่เกี่ยวข้องกับการควบคุมมือจับ (เช่น หยิบสิ่งของ) เราขอแนะนำให้เพิ่มบทลงโทษเล็กน้อยในการเปลี่ยนแปลงการทำงานของมือจับ เนื่องจากจะช่วยเพิ่มความเร็วในการฝึกได้อย่างมาก ดูรายละเอียดได้ที่ PR #65
นอกจากนี้ เรายังแนะนำให้มีการแทรกแซงทางออนไลน์ในระหว่างการฝึกอบรม นอกเหนือจากการโหลดการสาธิตแบบออฟไลน์ หากคุณมีหุ่นยนต์ Franka และ SpaceMouse สิ่งนี้อาจทำได้ง่ายเพียงแค่แตะ SpaceMouse ระหว่างการฝึก
เราได้แก้ไขปัญหาสำคัญในกรอบการดำเนินการแทรกแซง ดูรุ่น v0.1.1 โปรดอัปเดตโค้ดของคุณด้วยสาขาหลัก
ตั้งค่า Conda Environment: สร้างสภาพแวดล้อมด้วย
conda สร้าง -n serl python=3.10
ติดตั้ง Jax ดังนี้:
สำหรับ CPU (ไม่แนะนำ):
ติดตั้ง pip -- อัปเกรด "jax [cpu]"
สำหรับจีพียู:
การติดตั้ง pip -- อัปเกรด "jax [cuda12]==0.4.28" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
สำหรับทีพียู
การติดตั้ง pip -- อัปเกรด "jax [tpu]" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
ดูหน้า Jax Github สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการติดตั้ง Jax
ติดตั้ง serl_launcher
ซีดี serl_launcher pip ติดตั้ง -e .pip ติดตั้ง -r ข้อกำหนด.txt
SERL จัดเตรียมชุดไลบรารีทั่วไปสำหรับผู้ใช้ในการฝึกอบรมนโยบาย RL สำหรับงานจัดการหุ่นยนต์ โครงสร้างหลักของการดำเนินการทดลอง RL เกี่ยวข้องกับการมีโหนดนักแสดงและโหนดผู้เรียน ซึ่งทั้งสองอย่างนี้มีปฏิสัมพันธ์กับสภาพแวดล้อมของโรงยิมหุ่นยนต์ โหนดทั้งสองทำงานแบบอะซิงโครนัส โดยส่งข้อมูลจากนักแสดงไปยังโหนดผู้เรียนผ่านเครือข่ายโดยใช้เอเจนต์เลซ ผู้เรียนจะประสานนโยบายกับผู้มีส่วนร่วมเป็นระยะ การออกแบบนี้ให้ความยืดหยุ่นสำหรับการฝึกอบรมและการอนุมานแบบคู่ขนาน
ตารางโครงสร้างโค้ด
ไดเรกทอรีรหัส | คำอธิบาย |
---|---|
serl_launcher | รหัสหลักสำหรับ SERL |
serl_launcher.ตัวแทน | นโยบายตัวแทน (เช่น DRQ, SAC, BC) |
serl_launcher.wrappers | กระดาษห่อสิ่งแวดล้อมยิม |
serl_launcher.data | เล่นซ้ำบัฟเฟอร์และที่เก็บข้อมูล |
serl_launcher.วิสัยทัศน์ | โมเดลและยูทิลิตี้ที่เกี่ยวข้องกับการมองเห็น |
franka_sim | สภาพแวดล้อมยิมจำลอง Franka mujoco |
serl_robot_infra | Robot infra สำหรับการวิ่งด้วยหุ่นยนต์จริง |
serl_robot_infra.robot_servers | เซิร์ฟเวอร์ Flask สำหรับส่งคำสั่งไปยังหุ่นยนต์ผ่าน ROS |
serl_robot_infra.franka_env | สภาพแวดล้อมยิมสำหรับหุ่นยนต์แฟรงก้าตัวจริง |
เราจัดเตรียมสภาพแวดล้อมจำลองสำหรับการทดลองใช้ SERL กับหุ่นยนต์ franka
ลองดูการเริ่มต้นอย่างรวดเร็วด้วย SERL ใน Sim
การฝึกอบรมจากตัวอย่างการสังเกตของรัฐ
การฝึกจากตัวอย่างการสังเกตด้วยภาพ
การฝึกจากการสังเกตภาพด้วยตัวอย่างวิถี 20 สาธิต
เราให้คำแนะนำทีละขั้นตอนในการรันนโยบาย RL กับ SERL บนหุ่นยนต์ Franka ตัวจริง
ลองดูการวิ่งด้วย Franka Arm บน Real Robot
การใส่หมุด ?
การแทรกส่วนประกอบ PCB
การเดินสายเคเบิล ?
การย้ายวัตถุ ⁉ ️
เรายินดีรับการมีส่วนร่วมในพื้นที่เก็บข้อมูลนี้! แยกและส่ง PR หากคุณมีการปรับปรุงโค้ดเบส ก่อนที่จะส่ง PR โปรดรัน pre-commit run --all-files
เพื่อให้แน่ใจว่า codebase มีรูปแบบที่ถูกต้อง
หากคุณใช้รหัสนี้เพื่อการวิจัยของคุณ โปรดอ้างอิงรายงานของเรา:
@misc{luo2024serl, title={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}}