웹페이지: https://serl-robot.github.io/
SERL은 로봇 조작 작업에 대한 RL 정책을 교육하기 위한 라이브러리, 환경 래퍼 및 예제 세트를 제공합니다. 다음 섹션에서는 SERL을 사용하는 방법을 설명합니다. 예제를 통해 사용법을 설명하겠습니다.
?: SERL 비디오, 샘플 효율적인 RL에 대한 추가 비디오.
목차
SERL: 효율적인 샘플 로봇 강화 학습을 위한 소프트웨어 제품군
설치
개요 및 코드 구조
Sim에서 SERL로 빠른 시작
Real Robot에서 Franka Arm과 함께 달리기
기부금
소환
그리퍼 제어(예: 물체 집기)와 관련된 작업에 SERL을 사용하는 사람들의 경우 그리퍼 동작 변경에 작은 페널티를 추가하는 것이 훈련 속도를 크게 향상시키므로 강력히 권장됩니다. 자세한 내용은 PR #65를 참조하세요.
또한 오프라인 데모를 로드하는 것 외에도 교육 중에 온라인으로 개입을 제공하는 것이 좋습니다. Franka 로봇과 SpaceMouse가 있는 경우 훈련 중에 SpaceMouse를 터치하는 것만큼 쉬울 수 있습니다.
개입 작업 프레임의 주요 문제를 해결했습니다. 릴리스 v0.1.1을 참조하세요. 메인 브랜치로 코드를 업데이트하세요.
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_런처 pip 설치 -e .pip 설치 -r 요구사항.txt
SERL은 사용자가 로봇 조작 작업에 대한 RL 정책을 교육할 수 있는 공통 라이브러리 세트를 제공합니다. RL 실험을 실행하는 주요 구조에는 행위자 노드와 학습자 노드가 포함되며 둘 다 로봇 체육관 환경과 상호 작용합니다. 두 노드 모두 비동기식으로 실행되며 데이터는 에이전트레이스를 사용하여 네트워크를 통해 행위자에서 학습자 노드로 전송됩니다. 학습자는 주기적으로 정책을 행위자와 동기화합니다. 이 설계는 병렬 훈련 및 추론을 위한 유연성을 제공합니다.
코드 구조 표
코드 디렉토리 | 설명 |
---|---|
serl_launcher | SERL의 기본 코드 |
serl_launcher.agents | 에이전트 정책(예: DRQ, SAC, BC) |
serl_launcher.wrappers | 체육관 환경 포장지 |
serl_launcher.data | 재생 버퍼 및 데이터 저장소 |
serl_launcher.vision | 비전 관련 모델 및 유틸리티 |
Franka_sim | Franka mujoco 시뮬레이션 체육관 환경 |
serl_robot_infra | 실제 로봇과 함께 달리는 로봇 인프라 |
serl_robot_infra.robot_servers | ROS를 통해 로봇에 명령을 보내는 플라스크 서버 |
serl_robot_infra.franka_env | 실제 프랑카 로봇을 위한 체육관 환경 |
프랑카 로봇으로 SERL을 시험해 볼 수 있는 시뮬레이션 환경을 제공합니다.
Sim에서 SERL을 사용한 빠른 시작을 확인하세요.
상태 관찰 예시를 통한 학습
이미지 관찰 예시를 통한 학습
20개의 데모 궤적 예제를 사용한 이미지 관찰을 통한 학습
실제 Franka 로봇에서 SERL을 사용하여 RL 정책을 실행하기 위한 단계별 가이드를 제공합니다.
Real Robot에서 Franka Arm과 함께 달리는 모습을 확인해보세요
페그 삽입?
PCB 부품 삽입
케이블 라우팅?
개체 재배치 ?️
이 저장소에 대한 기여를 환영합니다! 코드베이스에 개선 사항이 있으면 PR을 포크하고 제출하세요. PR을 제출하기 전에 pre-commit run --all-files
실행하여 코드베이스의 형식이 올바른지 확인하세요.
연구에 이 코드를 사용하는 경우 다음 논문을 인용해 주세요.
@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}}