| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| .PHONY: tests |
|
|
| PYTHON_PATH := $(shell which python) |
|
|
| |
| UV_CHECK := $(shell command -v uv) |
| ifneq ($(UV_CHECK),) |
| PYTHON_PATH := $(shell .venv/bin/python) |
| endif |
|
|
| export PATH := $(dir $(PYTHON_PATH)):$(PATH) |
|
|
| DEVICE ?= cpu |
|
|
| build-cpu: |
| docker build -t lerobot:latest -f docker/lerobot-cpu/Dockerfile . |
|
|
| build-gpu: |
| docker build -t lerobot:latest -f docker/lerobot-gpu/Dockerfile . |
|
|
| test-end-to-end: |
| ${MAKE} DEVICE=$(DEVICE) test-act-ete-train |
| ${MAKE} DEVICE=$(DEVICE) test-act-ete-train-resume |
| ${MAKE} DEVICE=$(DEVICE) test-act-ete-eval |
| ${MAKE} DEVICE=$(DEVICE) test-diffusion-ete-train |
| ${MAKE} DEVICE=$(DEVICE) test-diffusion-ete-eval |
| ${MAKE} DEVICE=$(DEVICE) test-tdmpc-ete-train |
| ${MAKE} DEVICE=$(DEVICE) test-tdmpc-ete-eval |
|
|
| test-act-ete-train: |
| python lerobot/scripts/train.py \ |
| --policy.type=act \ |
| --policy.dim_model=64 \ |
| --policy.n_action_steps=20 \ |
| --policy.chunk_size=20 \ |
| --policy.device=$(DEVICE) \ |
| --env.type=aloha \ |
| --env.episode_length=5 \ |
| --dataset.repo_id=lerobot/aloha_sim_transfer_cube_human \ |
| --dataset.image_transforms.enable=true \ |
| --dataset.episodes="[0]" \ |
| --batch_size=2 \ |
| --steps=4 \ |
| --eval_freq=2 \ |
| --eval.n_episodes=1 \ |
| --eval.batch_size=1 \ |
| --save_freq=2 \ |
| --save_checkpoint=true \ |
| --log_freq=1 \ |
| --wandb.enable=false \ |
| --output_dir=tests/outputs/act/ |
|
|
| test-act-ete-train-resume: |
| python lerobot/scripts/train.py \ |
| --config_path=tests/outputs/act/checkpoints/000002/pretrained_model/train_config.json \ |
| --resume=true |
|
|
| test-act-ete-eval: |
| python lerobot/scripts/eval.py \ |
| --policy.path=tests/outputs/act/checkpoints/000004/pretrained_model \ |
| --policy.device=$(DEVICE) \ |
| --env.type=aloha \ |
| --env.episode_length=5 \ |
| --eval.n_episodes=1 \ |
| --eval.batch_size=1 |
|
|
| test-diffusion-ete-train: |
| python lerobot/scripts/train.py \ |
| --policy.type=diffusion \ |
| --policy.down_dims='[64,128,256]' \ |
| --policy.diffusion_step_embed_dim=32 \ |
| --policy.num_inference_steps=10 \ |
| --policy.device=$(DEVICE) \ |
| --env.type=pusht \ |
| --env.episode_length=5 \ |
| --dataset.repo_id=lerobot/pusht \ |
| --dataset.image_transforms.enable=true \ |
| --dataset.episodes="[0]" \ |
| --batch_size=2 \ |
| --steps=2 \ |
| --eval_freq=2 \ |
| --eval.n_episodes=1 \ |
| --eval.batch_size=1 \ |
| --save_checkpoint=true \ |
| --save_freq=2 \ |
| --log_freq=1 \ |
| --wandb.enable=false \ |
| --output_dir=tests/outputs/diffusion/ |
|
|
| test-diffusion-ete-eval: |
| python lerobot/scripts/eval.py \ |
| --policy.path=tests/outputs/diffusion/checkpoints/000002/pretrained_model \ |
| --policy.device=$(DEVICE) \ |
| --env.type=pusht \ |
| --env.episode_length=5 \ |
| --eval.n_episodes=1 \ |
| --eval.batch_size=1 |
|
|
| test-tdmpc-ete-train: |
| python lerobot/scripts/train.py \ |
| --policy.type=tdmpc \ |
| --policy.device=$(DEVICE) \ |
| --env.type=xarm \ |
| --env.task=XarmLift-v0 \ |
| --env.episode_length=5 \ |
| --dataset.repo_id=lerobot/xarm_lift_medium \ |
| --dataset.image_transforms.enable=true \ |
| --dataset.episodes="[0]" \ |
| --batch_size=2 \ |
| --steps=2 \ |
| --eval_freq=2 \ |
| --eval.n_episodes=1 \ |
| --eval.batch_size=1 \ |
| --save_checkpoint=true \ |
| --save_freq=2 \ |
| --log_freq=1 \ |
| --wandb.enable=false \ |
| --output_dir=tests/outputs/tdmpc/ |
|
|
| test-tdmpc-ete-eval: |
| python lerobot/scripts/eval.py \ |
| --policy.path=tests/outputs/tdmpc/checkpoints/000002/pretrained_model \ |
| --policy.device=$(DEVICE) \ |
| --env.type=xarm \ |
| --env.episode_length=5 \ |
| --env.task=XarmLift-v0 \ |
| --eval.n_episodes=1 \ |
| --eval.batch_size=1 |
|
|