Aller au contenu

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é.

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 firmwareMéthode de configurationRemarque
1.0.3c ou ultérieurAPI REST (section 3, recommandé)Méthode officiellement prise en charge
Antérieur à 1.0.3cModification 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.

Fenêtre de terminal
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, admin et user, 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éthodeCheminDescriptionCorps de la requête
GET/ros/domainConsultation du ROS Domain ID actuellement configuréAucun
PATCH/ros/domainModification du ROS Domain IDmultipart/form-data

Champs de la requête PATCH /ros/domain :

ChampTypeObligatoireDescription
domain_idintegerObligatoireROS Domain ID à configurer

Consultation de la valeur actuelle

Fenêtre de terminal
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

Fenêtre de terminal
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=always et StartLimitAction=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.11 de l’exemple ci-dessous par l’adresse IP réelle du BATCAM FX.

Ordre des modifications

  1. Se connecter au BATCAM FX en ssh

  2. Accéder au fichier d’exécution du service ( vi, nano, etc. )

  3. Ajouter Environment dans la balise Service

  4. Recharger le démon et le fichier de service

  5. Redémarrer Beamforming-camerad ou la caméra

Détail des modifications

Connectez-vous au BATCAM FX en SSH.

Fenêtre de terminal
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.

Fenêtre de terminal
nano /lib/systemd/system/beamforming-camerad.service
# ou
vi /lib/systemd/system/beamforming-camerad.service

En 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 daemon
Wants=multi-user.target
After=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=always
StartLimitAction=reboot
RestartSec=5
TimeoutStopSec=30
TimeoutStartSec=infinity
ExecStartPre=/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=113 au 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.

Fenêtre de terminal
systemctl daemon-reload

Redémarrez Beamforming-camerad ou la caméra.

Fenêtre de terminal
systemctl restart beamforming-camerad
# ou
reboot

5. 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.

Fenêtre de terminal
export ROS_DOMAIN_ID=113 # Définir la même valeur que celle configurée sur l'appareil
ros2 topic list

Lorsque 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.

Fenêtre de terminal
/fx_276730383020104/beamforming
/fx_276730383020104/image
/fx_276730383020104/lpoint_audio
/fx_276730383020104/prpd
/fx_276730383020104/ws_audio

L’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_ID de l’hôte et celui de l’appareil sont identiques. La valeur de l’appareil peut être vérifiée au moyen de GET /ros/domain (firmware 1.0.3c ou ultérieur) ou dans la ligne Environment du fichier de service.

    • Le DOMAIN_ID ROS par défaut de l’appareil est 123. S’il s’agit d’un appareil qui n’a pas été modifié, exécutez export ROS_DOMAIN_ID=123 sur 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 admin ou user) sont correctes.
  • 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.
  • 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 nouveau systemctl daemon-reload après la modification.

7. Documents associés