Skip to main content

Déploiement de ROS2

Pour le déploiement d'environnements pédagogique et concours

On voit plusieurs approches :

  • déploiement de machine native Ubuntu, par clonage de disque par exemple
  • déploiement de VM VirtualBox
  • déploiement de Docker container

Veut-on enseigner la robotique ou l'ingénierie logiciel sous Linux ? Selon moi, il faut différencier deux types de public :

  • On veut enseigner la robotique Open Source, par exemple à des électroniciens
    • on n'aborde pas l'installation ROS, la création de package dans un workspace et sa compilation
    • on fournit une machine dont l'enseignant maitrise l'état
    • tout est fait dans un IDE type VSCode.
    • les apprenants peuvent se concentrer sur la génération de codes et d'algorithmes pour résoudre un problème robotique
    • on reste en simulation ou on déploie sur un robot en fin de parcours
    • on bascule d'une conteneur à un autre depuis VSCode pour éviter les erreurs de config
  • On veut enseigner l'ingénierie logiciel appliquée à la robotique avec ROS
    • initiation à Ubuntu et à la ligne de commande
    • on déroule tout le tutoriel ROS en encourageant à faire un dual-boot (ou éventuellement un WSL) sur une machine personnelle
    • on insiste sur les réflexes de compilation dans le terminal
    • on laisse naviguer entre plusieurs workspaces sans Docker

Besoin pour la robotique industrielle : 

  • Simulation avec MoveIt2 via plugin motion_planning dans RViz2 
    • cellule SO-ARM100 ou Panda (moveit2_tutorial officiel) ou cellule UR5e
  • MoveIt2 Python API
  • Connexion à docker container URSim
  • Contrôle vrai SO-ARM100
  • Contrôle vrai UR5e
  • Gazebo et simulation traitement de l'image 2D/3D
  • MoveIt Servo
  • Pour aller plus loin : Cartesian Path Planning, Hybrid Planning, MoveIt Task Constructor (UR10e_welding_demo)

Besoin pour la robotique mobile :

  • Tutoriels Nav2 avec paquets tb3
  • Tutoriels ROBOTIS https://github.com/ROBOTIS-GIT/turtlebot3_simulations 
  • Cartographie et Navigation autonome avec GZ Sim
  • Suivi de ligne
  • Tutoriels ROBOTIS vrai robot
  • Architecture de flotte : temps réel sur le Raspberry, calcul lourds sur PC déporté
  • Déploiement contrôleur sur le Raspberry du robot
  • Setup communication via access point ou hotspot wifi
  • Environnement sur le PC de développement capable de communiquer via le réseau
    • PC portable pour le concours de robotique
  • Contrôle vrai TurtleBot3
  • Cartographie vrai robot
  • Calibration vraie caméra
  • Pour aller plus loin : Traitement de l'image vrai robot, suivi de ligne, Behavior Trees Demo

Pour le déploiement de robots dans l'industrie

Dev Container

https://articulatedrobotics.xyz/tutorials/docker/dev-containers/ 

Nav2, container, PWA https://discourse.ros.org/t/mini-workshop-developing-and-teaching-ros-from-a-web-browser-using-dev-containers-and-pwas/31533 https://discourse.ros.org/t/repeatable-reproducible-and-now-accessible-ros-development-via-dev-containers/31398 https://github.com/ros-navigation/docs.nav2.org/blob/master/development_guides/devcontainer_docs/devcontainer_guide.md 

Docker Containers + VSCode

Quelques conseils de Ragesh (https://robotair.io/) que j'ai rencontré au Fraunhofer :

https://github.com/athackst/workstation_setup

https://docs.ros.org/en/iron/How-To-Guides/Setup-ROS-2-with-VSCode-and-Docker-Container.html

https://www.allisonthackston.com/articles/vscode-docker-ros2.html

MoveIt2, docker https://fr.slideshare.net/secret/vdPbBCNB3LamRy  https://moveit.picknik.ai/main/doc/how_to_guides/how_to_setup_docker_containers_in_ubuntu.html 

Ansible

https://www.linkedin.com/pulse/deploying-ros2-packages-using-ansible-ragesh-ramachandran/ 

https://blog.robotair.io/best-way-to-ship-your-ros-app-a53927186c35 

https://github.com/swarmBots-ipa/ansible_automation 

https://github.com/ipa-rar/ros2-playbooks 

https://github.com/Laura7089/ros2-ansible 

https://github.com/jeremyfix/ros2_ansible_turtlebot 

https://github.com/rarrais/ansible-role-ros2 

Multipass

https://artivis.github.io/post/2023/multipass_ros_blueprint/ 

YOCTO

https://www.yoctoproject.org/ 

JupyterLab

https://blog.jupyter.org/jupyterlab-ros-3dc9dab7f421 

Discussions

https://discourse.ros.org/t/easy-way-to-distribute-an-instance-of-ubuntu-w-ros-to-students/31824/4 

Singularity, Robolaunch, ROSblox https://discourse.ros.org/t/what-environments-do-you-use-for-training-and-courses/26473/6 

Python https://discourse.ros.org/t/teaching-with-ros-or-zeroros-at-university/32124 

Sources