Skip to main content

Universal Robot ROS2 Driver

Le Driver ROS2 pour les cobots Universal Robot a été développé en collaboration entre Universal Robots, le Forschungszentrum für Informatik (INRIA allemand) et PickNik Robotics. Plus précisément par nos voisins de Karlsruhe, en particulier Felix Exner (https://github.com/fmauch)). Le FZI est également à l'origine d'une proposition d'interface ROS standard pour les trajectoires Cartésiennes avec un état de l'art très intéressant des interfaces de programmation des marques de robot majeures, qui est désormais implémentée dans les contrôleurs ROS Cartésiens d'Universal Robots.

Installation du simulateur hors-ligne URSim

https://docs.ros.org/en/ros2_packages/rolling/api/ur_robot_driver/usage.html#usage-with-official-ur-simulator

https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver#getting-started

https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver#install-from-binary-packages

Le moyen le plus simple de découvrir et commencer à utiliser un robot UR avec ROS2 est d'utiliser la simulation de la console de programmation (teach panel) de son contrôleur. URSim est le simulateur hors-ligne de Universal Robots. Il permet de reproduire le comportement réel d'un robot quasiment à l'identique en se connectant à son adresse IP. Il est possible d'installer URSim 5 sur un Ubuntu <18 ou dans une machine virtuelle (VirtualBox). Il faut se créer un compte pour télécharger le fichier URSim 5.13. Ubuntu 18 n'est plus supporté, et MoveIt2 tourne sur Ubuntu 22.

En attendant la sortie de URSim/Polyscope 6, la manière la plus simple d'installer URSim 5 sur Ubuntu 22 est via conteneur Docker créé par UR Lab (pas maintenu officiellement).

Installer Docker

Depuis les dépôts officiels Ubuntu :

sudo apt update
sudo apt install docker-compose

Ajouter votre utilisateur au groupe docker afin de manipuler les containers sans avoir à utiliser sudo systématiquement :

sudo usermod -aG docker $USER

Tester la bonne installation :

sudo service docker start
docker run hello-world

Installer le conteneur URSim

On suit le tutoriel fournit dans la documentation du driver UR ROS. Il existe une image docker fournie sur hub.docker.com, c'est très simple :

  • Télécharger l'image docker
docker pull universalrobots/ursim_e-series
  • Lancer l'image sur 192.168.56.101 avec l'URCap external_control préinstallée. Les programmes installés et les changements d'installation seront stockés de manière persistante dans ${HOME}/.ursim/programs.
ros2 run ur_robot_driver start_ursim.sh
  • Ouvrir l'interface URSim en suivant les instructions qui s'affichent dans la fenêtre de terminal
    1. Voir URSim en utilisant une application VNC, en se connectant à 192.168.56.101:5900
    2. Voir URSim en utilisant une application serveur web VNC http://192.168.56.101:6080/vnc.html

Cela va lancer le conteneur docker sur 192.168.56.101 avec l'URCap external_control préinstallé. Les programmes installés et les changements d'installation seront stockés de manière persistante dans ${HOME}/.ursim/programs.

Programmation hors-ligne avec URSim et MoveIt2/RViz

Installation
  • Installer rosdep pour installer automatiquement les paquets stablesDebian dont dépendent les paquets ROS
sudo apt install python3-rosdep
  • Si vous avez plusieurs versions de ROS2 etinstallées, MoveIt2

vérifiez que vous avez "sourcé" la bonne version de ROS2
  • Mettre à jour les paquets dont ROS2 dépend
  • sudo rosdep init
    rosdep update
    sudo apt update
    sudo apt dist-upgrade
    • Installer colcon qui est le système de compilation de ROS2 avec mixin.
    sudo apt install python3-colcon-common-extensions
    sudo apt install python3-colcon-mixin
    colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
    colcon mixin update default

    NOTES IMPORTANTES

    • si vous utilisez Linux Mint 21.1 VERA (Mate ou Cinammon, basée sur Ubuntu 22 Jammy), il faudra toujours préciser la version d'Ubuntu `--os=ubuntu:jammy` dont on veut récupérer les paquets avec la commande `rosdep` :
    sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y --os=ubuntu:jammy
    • Si vous travaillez dans une VM d'un ordinateur ayant moins de 20GO de RAM (WSL par exemple). Ou sur un ordinateur Ubuntu ayant moins de 10GO de RAM, il faudra lancer la compilation `colcon` sans parallélisation des tâches (1 paquet compilé à la fois) `--parallel-workers 1` :
    colcon build --mixin release --parallel-workers 1

    Déploiement du code source des Tutoriels de MoveIt

    • Créer un répertoire de travail "workspace" pour la compilation du projet avec colcon
    mkdir -p ~/ws_moveit2/src
    • Se déplacer dans le workspace colcon et récupérer le code source des tutoriels MoveIt :
    cd ~/ws_moveit2/src
    git clone https://github.com/ros-planning/moveit2_tutorials -b humble --depth 1

    Optionnel : Installation d'un environnement de développement MoveIt2 avec les dernières améliorations et résolutions de bug

    Installation de MoveIt2 Humble sur Ubuntu 22.04 :

    • Installer vcstool qui est un outil Python pour gérer les dépôts git composant un paquet ROS.
    sudo apt install python3-vcstool
    cd ~/ws_moveit2/src
    vcs import < moveit2_tutorials/moveit2_tutorials.repos

    Note : si `vcs import` vous demande vos identifiants GitHub, tapez Entrer jusqu'à ce que ça continue. Pas besoin d'identifiant pour récupérer un dépôt GitHub public.

    Installation des dépendances et compilation

    • Installer les dépendances ROS2 Humble.Humble (paquets debian stables).
    sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y
    • Compiler MoveIt Tutorials (20+ minutes si vous avez choisi de déployer l'environnement de développement)
    cd ~/ws_moveit2
    colcon build --mixin release

    NOTES IMPORTANTES

    * si vous utilisez Linux Mint 21.1 VERA (Mate ou Cinammon, basée sur Ubuntu 22), il faudra toujours ajouter `--os=ubuntu:jammy` comme option à la commande rosdep :

    sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y --os=ubuntu:jammy
    • SiSourcer vousles êtes dans une VM d'un ordinateur ayant moins de 20GO de RAM (WSL par exemple). Ou sur un Ubuntu ayant moins de 10GO de RAM, il faudra lancer la compilation colcon sans parallélisation des tâches (1 paquetpaquets compilé à la fois) `--parallel-workers 1`s :
    colconcd build~/ws_moveit2
    --mixinsource release --parallel-workers 1

    Installation d'un environnement de développement avec les dernières améliorations et résolutions de bug

    Réaliser l'installation de ROS2.

    Installation de MoveIt2 Humble sur Ubuntu 22.04 :

    • Installer rosdep pour installer automatiquement les paquets Debian dont dépendent les paquets ROS
    sudo apt install python3-rosdep
    ~/ws_moveit2/install/setup.bash
    sudoecho rosdep'source init~/ws_moveit2/install/setup.bash' rosdep>> update
    sudo apt update
    sudo apt dist-upgrade
    
    • Installer colcon qui est le système de compilation de ROS2 avec mixin~/.
    • Installer vcstool qui est un outil Python pour gérer les dépôts git composant un paquet ROS.
    sudo apt install python3-vcstool
    bashrc

     

    https://github.com/ros-planning/moveit2_tutorials/blob/humble/moveit2_tutorials.repos