Manipulation avancée avec AICA - déploiement Cloud

Prérequis

On déploie les TP avec une architecture client-serveur.

Avantages :

Côté serveur

Côté client

Si notre client est un PC Linux on peut avoir une expérience AICA complète en affichant RViz et AICA Launcher sur le PC : https://docs.aica.tech/docs/reference/manual-installation-launch#display-sharing

Installation de AICA sur le serveur via ssh

https://docs.aica.tech/docs/reference/manual-installation-launch 

TP3 - Vision par IA avec Yolo

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. :

"my-local-package" = "docker-image://my-custom-component-package"

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

Il peut y avoir des Warnings qui ne sont à ignorer et apparaissent si Cloud Storage n'est pas configuré ou si la vérification de license prend plus que quelques secondes :

[2024-11-18 13:38:16 +0000] [135] [INFO] Starting sync of cloud applications
[2024-11-18 13:38:16 +0000] [135] [WARNING] Sync failed
[2024-11-18 13:08:42 +0000] [151] [INFO] Waiting for licensing status... 5
[WARN] [1731935323.407252919] [EventEngine.ServiceHandler]: (404): Could not determine any license status

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étacher le Terminal du conteneur avec CTRL+D ou en tapant exit.

Stopper le conteneur : docker container ps puis docker container stop <container_name>.

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"


Revision #18
Created 18 December 2025 14:25:03 by admin_idf
Updated 13 February 2026 17:32:41 by admin_idf