Robots Unitree livrés depuis l'Italie · support en anglais

Prices Find the right robot Financing
About us Book a call
Unitree Go2 EDU, plateforme de développement ROS 2

ROS 2 · Développement

ROS 2 sur robots Unitree : de zéro au premier topic

En bref : les robots Unitree communiquent via DDS, le même middleware que ROS 2. Avec le paquet officiel unitree_ros2, ROS 2 Humble sous Ubuntu 22.04 et CycloneDDS, les messages du robot deviennent des topics ROS 2 sans bridge. Il faut une version EDU du robot, un câble Ethernet et un PC sur le sous-réseau 192.168.123.x.

ROS 2 sur les robots Unitree fonctionne sans rétro-ingénierie et sans nœuds de traduction : le robot publie ses données sur DDS (CycloneDDS), et ROS 2 utilise DDS comme couche de communication. Le paquet officiel unitree_ros2 fournit les définitions de messages et les scripts d'environnement. Ce guide résume la procédure du README officiel, en signalant les étapes où l'on reste souvent bloqué.

Quels robots Unitree prennent en charge ROS 2

Le développement logiciel n'est prévu que sur les versions pour développeurs. Pour le Go2, la fiche officielle réserve le développement secondaire à la version EDU, et non aux versions Air et Pro ; il en va de même pour le G1 avec le G1 EDU.

RobotMessages dans unitree_ros2Exemples ROS 2 du dépôt
Go2 EDUunitree_gosport client, stand, état du robot, low-level
B2 / B2Wunitree_golow-level, lecture de l'état
G1 EDUunitree_hgg1_low_level_example
H2dossier d'exemples h2présents dans le dépôt
H1 / H1-2unitree_go / unitree_hglow-level H1-2

Pour le R1 et l'A2, en octobre 2026, unitree_sdk2 contient des exemples C++ dédiés, mais unitree_ros2 n'a pas encore d'exemples spécifiques. Avant d'acheter l'un de ces modèles pour un projet entièrement ROS 2, vérifiez l'état du dépôt.

Produits cités dans l'articleRobots EDU pour la recherche

Prérequis : Ubuntu et version de ROS 2

Le README d'unitree_ros2 indique deux combinaisons testées :

  • Ubuntu 22.04 + ROS 2 Humble, présentée comme recommandée ;
  • Ubuntu 20.04 + ROS 2 Foxy.

D'après le tableau des versions ROS 2, Foxy a atteint sa fin de support le 20 juin 2023, tandis que Humble est maintenu jusqu'en mai 2027 et Jazzy jusqu'en mai 2029. Pour un projet qui démarre aujourd'hui, le choix pratique est Humble ; Jazzy ne figure pas parmi les combinaisons testées par Unitree. ROS 2 Humble s'installe à partir des paquets Debian en suivant le guide officiel.

Installer unitree_ros2 étape par étape

1. Clonez le dépôt et installez les dépendances (avec Humble, remplacez foxy par humble) :

git clone https://github.com/unitreerobotics/unitree_ros2
sudo apt install ros-humble-rmw-cyclonedds-cpp
sudo apt install ros-humble-rosidl-generator-dds-idl
sudo apt install libyaml-cpp-dev

2. Avec Foxy uniquement : compilez CycloneDDS 0.10.x dans le workspace cyclonedds_ws, dans un terminal où ROS 2 n'a pas été chargé. Le robot utilise CycloneDDS 0.10.2 ; avec Humble, cette étape est inutile.

3. Compilez les paquets de messages (unitree_go, unitree_hg, unitree_api) :

cd ~/unitree_ros2/cyclonedds_ws
source /opt/ros/humble/setup.bash
colcon build

Réseau et CycloneDDS

Reliez le PC au robot avec un câble Ethernet. Dans les paramètres de l'interface, choisissez une configuration IPv4 manuelle, adresse 192.168.123.99, masque 255.255.255.0, comme l'indique le README. Avec ifconfig ou ip a, repérez le nom de l'interface (par exemple enp3s0) et indiquez-le dans ~/unitree_ros2/setup.sh :

#!/bin/bash
source /opt/ros/humble/setup.bash
source $HOME/unitree_ros2/cyclonedds_ws/install/setup.bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces>
  <NetworkInterface name="enp3s0" priority="default" multicast="default" />
</Interfaces></General></Domain></CycloneDDS>'

La ligne décisive est RMW_IMPLEMENTATION=rmw_cyclonedds_cpp : le middleware par défaut de Humble est différent, et sans cette variable le PC ne voit pas le robot. La documentation ROS 2 explique comment choisir le middleware DDS. Sans robot branché, vous pouvez utiliser setup_local.sh, qui travaille sur l'interface de loopback.

Premier topic

source ~/unitree_ros2/setup.sh
ros2 topic list
ros2 topic echo /sportmodestate

Sur le Go2 et le B2, /sportmodestate donne la position, la vitesse et l'allure ; /lowstate donne les moteurs, l'IMU et la batterie. Pour compiler et lancer les exemples :

cd ~/unitree_ros2/example
colcon build
./install/unitree_ros2_example/bin/read_motion_state

Le README montre aussi comment afficher le nuage de points du LiDAR du Go2 dans RViz2, sur le topic utlidar/cloud avec le frame utlidar_lidar.

Contrôle : haut niveau et bas niveau

  • Haut niveau (Go2, B2) : requêtes sur /api/sport/request avec des messages unitree_api, générées par la classe SportClient des exemples. Le robot utilise son propre contrôle de mouvement.
  • Bas niveau : commandes de position, de vitesse, de couple et de gains sur /lowcmd. Il faut d'abord désactiver le service de mouvement intégré, sinon les commandes se superposent. Sur les humanoïdes, on passe en debug mode avec L2+R2, robot suspendu : la procédure complète se trouve dans le guide programmer le G1.

Simuler avant le matériel

unitree_mujoco est le simulateur officiel basé sur MuJoCo : il accepte les programmes écrits avec unitree_sdk2, unitree_sdk2_python et unitree_ros2, avec les mêmes messages low-level que le robot réel. Le flux recommandé consiste à développer en simulation sur loopback, puis à exécuter le même code sur le robot en changeant l'interface réseau. Pour les politiques de locomotion, il existe unitree_rl_gym (Go2, G1, H1, H1-2).

Erreurs fréquentes

  • Aucun topic : RMW non défini, mauvaise interface dans setup.sh ou PC hors du sous-réseau. Le README conseille aussi de redémarrer le PC après la première configuration.
  • Échec de compilation de CycloneDDS sous Foxy : le terminal avait déjà chargé /opt/ros/foxy/setup.bash ; commentez la ligne dans ~/.bashrc et rouvrez le terminal.
  • Plusieurs installations ROS sur le même PC : évitez de placer setup.sh dans ~/.bashrc et chargez-le à la main quand vous en avez besoin.

Pour les laboratoires universitaires, Abra Robotics fournit les modèles EDU de la gamme Unitree en France, en Belgique, au Luxembourg et en Suisse, avec un support en anglais, et propose la formation et le développement sur SDK comme services séparés : voir Universités et recherche et Logiciel. Les fiches des versions pour développeurs sont Go2 EDU et G1 EDU.

Questions fréquentes

Quelle version de ROS 2 utiliser avec les robots Unitree ?

Humble sous Ubuntu 22.04 : c'est la combinaison qu'Unitree recommande dans le README d'unitree_ros2. Foxy sous Ubuntu 20.04 est testé, mais a atteint sa fin de support le 20 juin 2023. Humble est maintenu jusqu'en mai 2027.

Peut-on utiliser le Go2 Air ou Pro avec ROS 2 ?

Non. Dans le tableau officiel du Go2, le développement secondaire est prévu pour la version EDU ; Air et Pro ne l'incluent pas. Pour ROS 2, il faut un Go2 EDU.

Faut-il installer un bridge entre le SDK et ROS 2 ?

Non. Le robot et ROS 2 utilisent tous deux DDS : avec unitree_ros2 et le middleware CycloneDDS, les messages du robot apparaissent directement comme des topics ROS 2, sans nœuds de traduction.

Pourquoi ros2 topic list n'affiche-t-il pas les topics du robot ?

Les trois causes les plus courantes : RMW_IMPLEMENTATION n'est pas défini sur rmw_cyclonedds_cpp, le nom de l'interface réseau est faux dans setup.sh, le PC n'est pas configuré sur 192.168.123.x. Revérifiez setup.sh et faites un ping vers le robot.

Peut-on utiliser ROS 2 sans le robot branché ?

Oui. unitree_ros2 inclut setup_local.sh, qui utilise l'interface de loopback, et unitree_mujoco simule le robot avec les mêmes messages : vous pouvez développer et tester en simulation avant de toucher au matériel.

Sources

  1. Unitree, unitree_ros2, README et exemples : github.com/unitreerobotics/unitree_ros2
  2. Unitree, unitree_sdk2 : github.com/unitreerobotics/unitree_sdk2
  3. Unitree, unitree_mujoco : github.com/unitreerobotics/unitree_mujoco
  4. Unitree, unitree_rl_gym : github.com/unitreerobotics/unitree_rl_gym
  5. Unitree, fiches produit Go2 et G1 (développement secondaire uniquement sur EDU) : unitree.com/go2 · unitree.com/g1
  6. Unitree Document Center, section développeurs : support.unitree.com/home/en/developer
  7. ROS 2 Documentation, distributions et dates de fin de support : docs.ros.org/en/humble/Releases.html
  8. ROS 2 Documentation, installation de Humble à partir des paquets Debian : docs.ros.org
  9. ROS 2 Documentation, middleware DDS et RMW : docs.ros.org

Besoin d'un robot EDU pour votre laboratoire ?

Nous fournissons des Go2 EDU, G1 EDU et B2 configurés, avec une formation SDK et ROS 2 proposée comme service séparé.

Robots EDU pour universités et rechercheDemander un devis