Configuration du ROS Domain ID
Configuration du ROS Domain ID du BATCAM FX
1. Vue d’ensemble
Le BATCAM FX publie les données des capteurs sur la base de ROS 2 Humble, et seuls les nœuds utilisant le même ROS_DOMAIN_ID se découvrent et communiquent entre eux. Modifiez ce réglage lorsque vous exploitez plusieurs systèmes ROS 2 de manière séparée sur le même réseau, ou lorsque vous devez aligner le BATCAM FX sur le Domain ID de l’environnement utilisé.
-
Le
DOMAIN_IDROS par défaut du BATCAM FX est 123. (firmware v1.0.3b ou ultérieur, voir les Notes de version du firmware FX) -
Pour la composition des topics publiés par l’appareil, reportez-vous au document Présentation de l’intégration du système ROS FX.
2. Choix de la méthode : vérification de la version du firmware
La méthode de configuration diffère selon la version du firmware. Vérifiez d’abord la version du firmware de l’appareil que vous utilisez.
| Version du firmware | Méthode de configuration | Remarque |
|---|---|---|
| 1.0.3c ou ultérieur | API REST (section 3, recommandé) | Méthode officiellement prise en charge |
| Antérieur à 1.0.3c | Modification manuelle du fichier de service systemd (section 4) | Méthode non officielle — lire impérativement les avertissements |
La version du firmware peut être vérifiée au moyen de l’API de consultation des informations sur l’appareil (GET /setting/status), dans le champ firmware_version.
curl -u admin:<password> "http://192.168.0.30/setting/status"# Remplacer le 192.168.0.30 de l'exemple par l'adresse IP réelle du BATCAM FX.Exemple de réponse :
{ "error": 0, "result": { "hardware_id": "3287162925128", "sbrio_version": "1.0.14", "firmware_version": "v1.0.3c" }}💡 Remarque : toutes les API REST du BATCAM FX requièrent une authentification HTTP Basic. Deux comptes,
adminetuser, sont préconfigurés par défaut sur l’appareil ; veillez à modifier les mots de passe d’usine par défaut avant utilisation. Pour la procédure de mise à jour du firmware, reportez-vous aux documents Mise à jour logicielle du BATCAM FX par le web ou Mise à jour logicielle du BATCAM FX par le shell.
3. Configuration au moyen de l’API REST (recommandé, firmware 1.0.3c ou ultérieur)
À partir de la version 1.0.3c du firmware du BATCAM FX, le réglage du ROS Domain ID au moyen de l’API REST est possible. Pour le détail des schémas de requête/réponse et pour les tests en temps réel, reportez-vous à la Référence de l’API BATCAM FX, tag ros.
| Méthode | Chemin | Description | Corps de la requête |
|---|---|---|---|
GET | /ros/domain | Consultation du ROS Domain ID actuellement configuré | Aucun |
PATCH | /ros/domain | Modification du ROS Domain ID | multipart/form-data |
Champs de la requête PATCH /ros/domain :
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
domain_id | integer | Obligatoire | ROS Domain ID à configurer |
Consultation de la valeur actuelle
curl -u admin:<password> "http://192.168.0.30/ros/domain"Exemple de réponse :
{ "error": 0, "result": { "domain_id": 123 }}Modification de la valeur
curl -u admin:<password> -X PATCH "http://192.168.0.30/ros/domain" -F "domain_id=113"Exemple de réponse :
{ "error": 0, "result": { "domain_id": 113 }}⚠️ Attention : la connexion avec la caméra est momentanément interrompue pendant l’application du réglage. Une perte de connexion juste après la configuration est un comportement normal.
4. Configuration manuelle sur les anciennes versions (firmware antérieur à 1.0.3c, non officiel)
Si l’environnement que vous utilisez a un ROS_DOMAIN_ID différent de 0, voici la méthode de configuration du ROS_DOMAIN_ID actuellement prise en charge de manière non officielle.
Le BATCAM FX doté d’un firmware antérieur à 1.0.3c, ou les options ROS 2 exécutées en interne, n’offrent aucune fonction permettant d’ajouter le DOMAIN_ID. Il est donc nécessaire de modifier le fichier de service qui exécute beamforming-camerad, lequel crée et publie les nœuds et topics ROS 2.
⚠️ Attention : ce service est configuré avec
Restart=alwaysetStartLimitAction=reboot; si le fichier de service est modifié de manière incorrecte, beamforming-camerad peut redémarrer de façon répétée, jusqu’à provoquer le redémarrage de la caméra. Conservez le contenu d’origine avant modification et respectez exactement le format de l’exemple ci-dessous. Il est en outre recommandé de vérifier à nouveau, après une mise à jour du firmware, que le réglage est bien conservé.
Prérequis
- Vous devez pouvoir vous connecter au BATCAM FX en SSH. Remplacez le
192.168.50.11de l’exemple ci-dessous par l’adresse IP réelle du BATCAM FX.
Ordre des modifications
-
Se connecter au BATCAM FX en ssh
-
Accéder au fichier d’exécution du service ( vi, nano, etc. )
-
Ajouter Environment dans la balise Service
-
Recharger le démon et le fichier de service
-
Redémarrer Beamforming-camerad ou la caméra
Détail des modifications
Connectez-vous au BATCAM FX en SSH.
ssh root@192.168.50.11# Modifier l'adresse IP selon votre environnement.Accédez au fichier d’exécution système au moyen de la commande ci-dessous. Comme éditeur, utilisez la méthode qui vous convient : vi, nano, etc.
nano /lib/systemd/system/beamforming-camerad.service# ouvi /lib/systemd/system/beamforming-camerad.serviceEn vous reportant au bloc de code ci-dessous, ajoutez la valeur Environment dans la balise Service. Le 113 de l’exemple peut être défini sur la valeur de ROS_DOMAIN_ID correspondant à votre environnement.
[Unit]Description=Batcam FX Camera daemonWants=multi-user.targetAfter=systemd-networkd.service dbus-org.neard.service network.target nvargus-daemon.service setup-account.service
[Service]## Partie à ajouter — définir ROS_DOMAIN_ID selon votre environnement.Environment=ROS_DOMAIN_ID=113##ExecStart=/bin/bash -c 'source /opt/ros/humble/local_setup.sh && systemctl restart nvargus-daemon && /opt/ros/humble/bin/beamforming-camerad'Restart=alwaysStartLimitAction=rebootRestartSec=5TimeoutStopSec=30TimeoutStartSec=infinityExecStartPre=/bin/sleep 15# RuntimeMaxSec=86400
[Install]WantedBy=multi-user.target⚠️ Attention : les fichiers d’unité systemd ne prennent pas en charge les commentaires en fin de ligne. Si un commentaire est ajouté à la suite de la ligne
Environment=ROS_DOMAIN_ID=113au moyen de#, ce commentaire est lui aussi interprété comme faisant partie de la valeur et le réglage ne fonctionne pas ; rédigez donc impérativement les commentaires sur une ligne distincte.
Rechargez le daemon systemd au moyen de la commande ci-dessous.
systemctl daemon-reloadRedémarrez Beamforming-camerad ou la caméra.
systemctl restart beamforming-camerad# oureboot5. Vérification du réglage
Vous pouvez vérifier de deux manières que le réglage a bien été appliqué.
Vérification au moyen de l’API REST (firmware 1.0.3c ou ultérieur)
Appelez GET /ros/domain et vérifiez que le domain_id renvoyé correspond à la valeur configurée. (voir l’exemple de consultation de la section 3)
Vérification par les topics ROS 2 depuis le PC hôte
Après avoir défini, dans l’environnement ROS 2 du PC hôte, le même ROS_DOMAIN_ID que celui de l’appareil, vérifiez que les topics du BATCAM FX apparaissent dans la liste des topics.
export ROS_DOMAIN_ID=113 # Définir la même valeur que celle configurée sur l'appareilros2 topic listLorsque le réglage a été appliqué correctement, des topics fondés sur l’ID matériel de la caméra apparaissent dans la liste, comme ci-dessous.
/fx_276730383020104/beamforming/fx_276730383020104/image/fx_276730383020104/lpoint_audio/fx_276730383020104/prpd/fx_276730383020104/ws_audioL’ID matériel (hardware_id) figurant dans le nom du topic peut être vérifié au moyen de l’API de consultation des informations sur l’appareil (GET /setting/status). Pour la spécification des messages de chaque topic, reportez-vous au document Présentation de l’intégration du système ROS FX.
6. Résolution des problèmes (Troubleshooting)
-
Si les topics de l’appareil ne sont pas visibles depuis l’hôte :
-
Vérifiez que le
ROS_DOMAIN_IDde l’hôte et celui de l’appareil sont identiques. La valeur de l’appareil peut être vérifiée au moyen deGET /ros/domain(firmware 1.0.3c ou ultérieur) ou dans la ligneEnvironmentdu fichier de service. -
Le
DOMAIN_IDROS par défaut de l’appareil est 123. S’il s’agit d’un appareil qui n’a pas été modifié, exécutezexport ROS_DOMAIN_ID=123sur l’hôte, puis vérifiez de nouveau.
-
-
Si l’appel de l’API REST échoue avec un code 401 :
- Vérifiez que les informations d’authentification HTTP Basic (compte
adminouuser) sont correctes.
- Vérifiez que les informations d’authentification HTTP Basic (compte
-
Si la connexion à la caméra est interrompue juste après le PATCH :
- Une brève interruption de la connexion pendant l’application du réglage est un comportement normal. Reconnectez-vous après un court instant et vérifiez la valeur au moyen de
GET /ros/domain.
- Une brève interruption de la connexion pendant l’application du réglage est un comportement normal. Reconnectez-vous après un court instant et vérifiez la valeur au moyen de
-
Si, après une modification manuelle, le service redémarre de façon répétée ou la caméra redémarre :
- Vérifiez que la ligne
Environment=ROS_DOMAIN_ID=<valeur>ne comporte ni commentaire en fin de ligne ni faute de frappe, puis exécutez de nouveausystemctl daemon-reloadaprès la modification.
- Vérifiez que la ligne
7. Documents associés
-
Présentation de l’intégration du système ROS FX — spécification des topics/messages
-
FX ROS Firmware BF/Overlay Parameter Setting (bêta) — configuration du beamforming/de l’overlay au moyen d’actions ROS 2
-
Notes de version du firmware FX — historique de la prise en charge des fonctions ROS par version
-
Référence de l’API BATCAM FX —
/ros/domain,/setting/status: schémas détaillés