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
- 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.
- Bruit important dans le nuage de points : Vérifiez que
depth_speckle_filterest bien surtruedans votre fichier launch. - 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