Manipulation avancée avec AICA - déploiement Cloud
TP3 - Vision par IA avec Yolo
Prérequis
- Une VM (machine virtuelle ou serveur physique) Linux avec un accès SSH
- De préférence avec GPU NVidia et
nvidia-container-toolkit - Avec docker.io installé
- De préférence avec GPU NVidia et
- Un PC avec une connexion rapide à la VM
- Chrome/Chromium installé
- VSCode/Codium installé avec l'extension
ms-vscode-remote.remote-ssh(sur Codium testerjeanp413.open-remote-ssh)
Installation de AICA sur le serveur
https://docs.aica.tech/docs/reference/manual-installation-launch
- Ouvrir VSCode
- Se connecter à la VM via SSH
- Ouvrir un Terminal dans VSCode
- Copier le dossier
dockerdans votre espace utilisateur/home/user/ - Copier la licence
aica-license-1.tomldansdocker/aica/ - Connecter la VM au dépôt Docker de AICA
cat /home/user/docker/aica/aica-license.toml | sudo docker login registry.licensing.aica.tech -u USERNAME --password-stdin - Build le ou les environnements docker nécessaires pour le TP depuis le fichier
launcher.tomlen leur donnant un nom, par ex.aica-yolo-web:
cd docker/aica sudo docker build -f /home/user/docker/aica/aica-launcher-yolo-web.toml -t aica-yolo-web .
Pour déploiement sur un serveur avec GPU NVidia et nvidia-container-toolkit :
#syntax=ghcr.io/aica-technology/app-builder:v2
[core]
"image" = "v5.1.0"
[packages]
# add components
#"@aica/components/rl-policy-components" = "v2.0.0"
"@aica/components/advanced-perception" = "v1.0.0" # contains YoloExecutor
"@aica/components/core-vision" = "v1.1.2" # contains CameraStreamer
"@aica/foss/toolkits/ml" = "v1.0.0-cpu24.04" # prerequisite for YoloExecutor
# other extensions
# add hardware collections
Pour déploiement sur un serveur sans GPU :
#syntax=ghcr.io/aica-technology/app-builder:v2
[core]
"image" = "v5.1.0"
[packages]
# add components
#"@aica/components/rl-policy-components" = "v2.0.0"
"@aica/components/advanced-perception" = "v1.0.0" # contains YoloExecutor
"@aica/components/core-vision" = "v1.1.2" # contains CameraStreamer
"@aica/foss/toolkits/ml" = "v1.0.0-cpu24.04" # prerequisite for YoloExecutor
# other extensions
"@aica/foss/web-video-server" = "v0.1.0" # enables web streaming of video topics
# add hardware collections
Si elles ne sont pas déjà dispo dans docker/ télécharger et compiler les composants dépendants, par ex. :
Démarrer une instance du conteneur aica-yolo-web nommée aica en lui passant le dossier persistant aica-yolo-web/persistent/ qui sera disponible dans un dossier persistent/ :
sudo docker run -it --rm --privileged --net=host -v /home/user/docker/aica/aica-license.toml:/license:ro -v /home/user/docker/aica/aica-yolo-web/persistent/:/persistent:rw -e AICA_SUPER_ADMIN_PASSWORD=12345678 --name aica aica-yolo-web
- L'argument
-e AICA_SUPER_ADMIN_PASSWORD=12345678n'est nécessaire qu'au premier démarrage pour pouvoir créer un compte Admin. - Dans l'onglet
Portsde VSCode, ajouter le port8080 - Dans le navigateur Chrome Ouvrir localhost:8080
- Se connecter avec les identifiants
super-admin,12345678 - Créer un compte Admin (Profile > change password) et bien noter les identifiants.
- La configuration de cette instance AICA sera sauvegardée
dans le dossierpersistent/:dansaica.sqlite,aica.sqlite-shmetaica.sqlite-wal - Pour garder et dupliquer la config, on peut copier les fichiers
.sqlitedans le dossierpersistent/
Attacher un Terminal à l'intérieur l'instance aica de aica-yolo-web :
sudo docker container exec -it -u ros2 aica /bin/bash
ros2 node list
On voit bien que le contenu du dossier de la VM aica-yolo-web/persistent/ est dispo dans le conteneur dans le dossier persistent/ :
ls persistent
aica.sqlite aica.sqlite-shm aica.sqlite-wal
Déroulé du TP3
Define a workcell setup
AICA studio -> Hardware -> modify URDF of e.g. UR5e
Build a custom package for Workcell or moveit python API script
https://github.com/aica-technology/community/blob/main/extensions/topic_based_ros2_control/aica-package.toml
source = "git://github.com/hellantos/ur5e_cell#start-of-training:ur5e_cell_description"