Guide de compilation et configuration du SDK ROS2 pour les caméras Percipio (V4.X.X) sous Ubuntu

Compatibilité matérielle et logicielle

Les caméras Percipio se divisant en deux catégories principales nécessitant des outils distincts :

  • Nouveaux modèles : Les séries GM461, GM465, PMD02 et PMD03 requièrent impérativement le nouveau logiciel Viewer et le SDK 4.X.X.
  • Modèles classiques : Toutes les autres références (hors GM/PMD) fonctionnent de manière optimale avec l'ancien PercipioViewer, bien que compatibles avec le SDK récent.

Configuration de l'environnement et installation

Le processus est détaillé ici pour Ubuntu 20.04 (ROS2 Foxy) et Ubuntu 22.04 (ROS2 Humble).

Préparation du système

# Configuration des locales pour l'encodage UTF-8
sudo apt update && sudo apt install locales -y
sudo locale-gen en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

# Ajout des dépôts officiels ROS2
sudo apt update && sudo apt install curl gnupg lsb-release -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

Installation des dépendances ROS2

Remplacez ${ROS_DISTRO} par foxy ou humble selon votre version d'OS.

sudo apt update
sudo apt install ros-${ROS_DISTRO}-desktop \
                 python3-colcon-common-extensions \
                 ros-${ROS_DISTRO}-camera-info-manager \
                 ros-${ROS_DISTRO}-image-publisher \
                 ros-${ROS_DISTRO}-diagnostic-updater -y

Compilation du SDK Camport4 ROS2

Une fois les sources téléchargées (via GitHub ou Gitee), procédez à la compilation dans votre espace de travail :

# Accès au répertoire du package
cd ~/ros2_ws/src/camport_ros2/

# Lancement de la compilation avec optimisation Release
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release

# Enregistrement de l'environnement dans le bashrc
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

Après l'exécution, trois répertoires sont créés : build (fichiers intermédiaires), install (exécutables et libs) et log (journaux de compilation).

Réglages des paramètres SGBM (Modèles FS/PM)

Pour les caméras intégrant un processeur de vision (ex: FM855, PS800), les paramètres de disparité sont cruciaux pour la précision de la profondeur.

Calcul de la plage de recherche

Les variables disparityNum (étendue) et disparityOffset (décalage minimal) se calculent selon les besoins de portée (en mm) :

// Variables de base
float baseline_dist = 66.0; // Distance entre capteurs
float focal_length = 840.0; // Focale récupérée via XML
int dist_min = 200;         // Distance min souhaitée
int dist_max = 4000;        // Distance max souhaitée

// Formules de calcul
int disp_range = (baseline_dist * focal_length) / dist_min - (baseline_dist * focal_length) / dist_max + 15;
int disp_shift = ((baseline_dist * focal_length) / dist_max) - 0;

Utilisation du fichier de lancemant (Launch File)

Le fichier percipio_camera.launch.py centralise la configuration. Voici comment cibler un matériel spécifique :

# Exemple de modification pour spécifier une caméra par son IP ou SN
DeclareLaunchArgument('serial_number', default_value='"207000106930"'),
DeclareLaunchArgument('device_ip', default_value='192.168.1.100'),

Paramètres principaux disponibles

Paramètre Description
color_enable Activation du flux couleur (RVB).
depth_registration_enable Alignement matériel de la profondeur sur l'image couleur.
depth_speckle_filter Filtre de réduction du bruit (taches) sur la profondeur.
device_workmode Mode d'acquisition : continu, trigger_soft ou trigger_hard.

Outils de diagnostic et utilitaires

Le SDK fournit des outils en ligne de commande pour gérer les périphériques sans interface graphique.

  • Lister les caméras : ros2 run percipio_camera list_devices
  • Configurer l'IP : ros2 run percipio_camera network_ip_config
  • Réinitialisation logicielle : ros2 topic pub /camera/reset std_msgs/msg/Empty "{}" -1

Résolution des problèmes fréquents

  1. Latence au démarrage : Si le filtrage temporel (time domain filter) est actif, le flux peut mettre quelques secondes à stabiliser car il attend de remplir son tampon de trames.
  2. Bruit important dans le nuage de points : Vérifiez que depth_speckle_filter est bien sur true dans votre fichier launch.
  3. Conflit de configuraton : Si des paramètres diffèrent entre le stockage interne de la caméra et le fichier launch, ROS2 donnera la priorité aux paramètres définis dans le fichier de lancement.

Commandes ROS2 utiles pour la vision

Pour valider la structure des repères de coordonnées (TF), utilisez les outils standards :

# Visualiser la hiérarchie des frames
ros2 run tf2_tools view_frames

# Vérifier la transformation entre deux repères
ros2 run tf2_ros tf2_echo camera_link depth_frame

Étiquettes: ROS2 Percipio Ubuntu Computer Vision SDK

Publié le 29 juin à 01h07