Skip to main content

Machine Learning LeRobot avec SO-ARM101 - Legacy

Essai de déploiement sur Windows via WSL2, Docker, et Dev Container

Pour l'instant pas de test satisfaisant pour l'exécution d'un modèle sur le vrai robot. Passer au WSL2 les ports USB où sont connectés les robots et caméras fait crasher le conteneur. Probablement que la communication série n'est pas supporté.

  • Cloner https://github.com/huggingface/lerobot dans un conteneur WSL2, par exemple Ubuntu
  • Depuis le conteneur Ubuntu, ouvrir un Terminal, se placer dans le répertoire cloné cd ~/lerobot_devcontainer , et lancer Visual Studio Code en tapant code .
  • Ajouter un répertoire ~/lerobot_devcontainer/.devcontainer et un fichier dedans ~/lerobot_devcontainer/.devcontainer/devcontainer.json contenant : 
    {
    "build": {
    // Path is relative to the devcontainer.json file.
    "dockerfile": "../docker/lerobot-gpu-dev/Dockerfile"
    }}
  • Lancer la commande VSCode : Reopen in container

Tentatives pour faire passer le port série à WSL2 : 

wsl --shutdown
winget install --interactive --exact dorssel.usbipd-win
usbipd list
wmic diskdrive list brief
wsl --mount \\.\PHYSICALDRIVE1
wsl.exe --version
wsl --mount \\.\PHYSICALDRIVE1 --bare
wsl --mount \\.\PHYSICALDRIVE1 --partition 2 --type ext4
wsl --shutdown
ipconfig
net localgroup docker-users "gauthier.hentz" /ADD
wsl --set-default ubuntu
wsl --shutdown
usbipd list
usbipd bind --busid 1-1
usbipd list
usbipd attach --wsl --busid 1-1
usbipd attach --wsl --busid 2-1

 

Visualiser et rejouer des DataSets (avant hardware refactor)

  • Visualiser un DataSet

python lerobot/scripts/visualize_dataset.py     --repo-id lerobot/pusht     --root ./my_local_data_dir     --local-files-only 1     --episode-index 0

python lerobot/scripts/visualize_dataset_html.py \
  --repo-id cadene/act_so100_5_lego_test_080000 \
  --local-files-only 1
  • Rejouer un DataSet (ou une évaluation de modèle) sur le robot
python lerobot/scripts/control_robot.py \
  --robot.type=so101 \
  --control.type=replay \
  --control.fps=30 \
  --control.repo_id=cadene/act_so100_5_lego_test_080000 \
  --control.episode=0
  • Rejouer la Policy cadene/act_so100_5_lego_test_080000 du modèle ACT pour le SO-ARM101
    • En sauvegardant l'évaluation dans outputs/eval/act_so100_5_lego_test_080000_haguenau
python lerobot/scripts/control_robot.py \
  --robot.type=so101 \
  --control.type=record \
  --control.fps=30 \
  --control.single_task="Grasp a lego block and put it in the bin." \
  --control.repo_id=outputs/eval/act_so100_5_lego_test_080000_haguenau \
  --control.tags='["tutorial"]' \
  --control.warmup_time_s=5 \
  --control.episode_time_s=30 \
  --control.reset_time_s=30 \
  --control.num_episodes=10 \
  --control.push_to_hub=false \
  --control.policy.path=cadene/act_so100_5_lego_test_080000