ROS Domain ID einstellen
BATCAM FX ROS Domain ID Konfiguration
1. Übersicht
BATCAM FX publiziert Sensordaten auf Basis von ROS 2 Humble, und nur Nodes, die dieselbe ROS_DOMAIN_ID verwenden, erkennen einander und kommunizieren miteinander. Ändern Sie diese Einstellung, wenn Sie mehrere ROS 2 Systeme im selben Netzwerk getrennt betreiben oder wenn Sie BATCAM FX an die Domain ID der von Ihnen verwendeten Umgebung anpassen müssen.
-
Die ROS-Standard-
DOMAIN_IDvon BATCAM FX ist 123. (Firmware v1.0.3b oder höher, siehe FX Firmware-Release-Notes) -
Den Aufbau der vom Gerät publizierten Topics finden Sie im Dokument Übersicht zur FX ROS-Systemintegration.
2. Wahl der Methode: Firmware-Version prüfen
Die Konfigurationsmethode hängt von der Firmware-Version ab. Prüfen Sie zunächst die Firmware-Version des von Ihnen verwendeten Geräts.
| Firmware-Version | Konfigurationsmethode | Anmerkung |
|---|---|---|
| 1.0.3c oder höher | REST API (Abschnitt 3, empfohlen) | Offiziell unterstützte Methode |
| Niedriger als 1.0.3c | Manuelle Bearbeitung der systemd-Service-Datei (Abschnitt 4) | Inoffizielle Methode — Hinweise unbedingt lesen |
Die Firmware-Version können Sie über die API zur Abfrage der Geräteinformationen (GET /setting/status) im Feld firmware_version prüfen.
curl -u admin:<password> "http://192.168.0.30/setting/status"# Die 192.168.0.30 im Beispiel durch die tatsächliche IP-Adresse des BATCAM FX ersetzen.Beispielantwort:
{ "error": 0, "result": { "hardware_id": "3287162925128", "sbrio_version": "1.0.14", "firmware_version": "v1.0.3c" }}💡 Hinweis: Alle REST-APIs von BATCAM FX erfordern eine HTTP-Basic-Authentifizierung. Auf dem Gerät sind standardmäßig die beiden Konten
adminunduservorkonfiguriert; ändern Sie das werkseitige Standardpasswort unbedingt vor der Verwendung. Zur Vorgehensweise beim Firmware-Update lesen Sie die Dokumente BATCAM FX Web-Software-Update oder BATCAM FX Shell-Software-Update.
3. Konfiguration über die REST API (empfohlen, Firmware 1.0.3c oder höher)
Ab der BATCAM FX Firmware-Version 1.0.3c ist das Einstellen der ROS Domain ID über die REST API möglich. Einzelheiten zum Request-/Response-Schema sowie Tests in Echtzeit finden Sie in der BATCAM FX API-Referenz unter dem Tag ros.
| Methode | Pfad | Beschreibung | Request-Body |
|---|---|---|---|
GET | /ros/domain | Aktuell eingestellte ROS Domain ID abfragen | Keiner |
PATCH | /ros/domain | ROS Domain ID ändern | multipart/form-data |
Request-Felder von PATCH /ros/domain:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
domain_id | integer | Erforderlich | Einzustellende ROS Domain ID |
Aktuellen Wert abfragen
curl -u admin:<password> "http://192.168.0.30/ros/domain"Beispielantwort:
{ "error": 0, "result": { "domain_id": 123 }}Wert ändern
curl -u admin:<password> -X PATCH "http://192.168.0.30/ros/domain" -F "domain_id=113"Beispielantwort:
{ "error": 0, "result": { "domain_id": 113 }}⚠️ Achtung: Während die Einstellung übernommen wird, bricht die Verbindung zur Kamera kurzzeitig ab. Ein Verbindungsabbruch unmittelbar nach der Einstellung ist normales Verhalten.
4. Manuelle Konfiguration bei älteren Versionen (Firmware niedriger als 1.0.3c, inoffiziell)
Wenn die von Ihnen verwendete Umgebung eine ROS_DOMAIN_ID ungleich 0 nutzt, ist dies die derzeit inoffiziell unterstützte Methode zum Einstellen der ROS_DOMAIN_ID.
Bei einem BATCAM FX mit einer Firmware niedriger als 1.0.3c gibt es keine Funktion, mit der sich eine DOMAIN_ID zu den intern ausgeführten ROS 2 Optionen hinzufügen lässt. Daher ist eine Änderung der Service-Datei erforderlich, die beamforming-camerad ausführt — den Prozess, der die ROS 2 Nodes und Topics erzeugt und publiziert.
⚠️ Achtung: Dieser Dienst ist mit
Restart=alwaysundStartLimitAction=rebootkonfiguriert. Wird die Service-Datei fehlerhaft bearbeitet, kann beamforming-camerad wiederholt neu starten und die Kamera dadurch neu gestartet werden. Bewahren Sie vor der Bearbeitung den ursprünglichen Inhalt auf und halten Sie sich genau an das Format des folgenden Beispiels. Außerdem wird empfohlen, nach einem Firmware-Update erneut zu prüfen, ob die Einstellung unverändert erhalten geblieben ist.
Voraussetzungen
- Sie müssen sich per SSH mit dem BATCAM FX verbinden können. Ersetzen Sie
192.168.50.11in den folgenden Beispielen durch die tatsächliche IP-Adresse Ihres BATCAM FX.
Ablauf der Änderung
-
Per SSH am BATCAM FX anmelden
-
Auf die Service-Datei zugreifen ( vi, nano usw. )
-
Im Service-Tag Environment hinzufügen
-
Daemon und Service-Datei neu laden
-
Beamforming-camerad oder die Kamera neu starten
Einzelheiten zur Änderung
Melden Sie sich per SSH am BATCAM FX an.
ssh root@192.168.50.11# IP-Adresse an die eigene Umgebung anpassen.Greifen Sie mit dem folgenden Befehl auf die Systemdatei des Dienstes zu. Verwenden Sie als Editor vi, nano oder eine andere für Sie bequeme Methode.
nano /lib/systemd/system/beamforming-camerad.service# odervi /lib/systemd/system/beamforming-camerad.serviceFügen Sie anhand des folgenden Codeblocks innerhalb des Service-Tags den Wert Environment hinzu. Die 113 im Beispiel können Sie auf den ROS_DOMAIN_ID-Wert setzen, der zu der von Ihnen verwendeten Umgebung passt.
[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]## Hinzuzufügender Teil — ROS_DOMAIN_ID passend zur eigenen Umgebung setzen.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⚠️ Achtung: systemd-Unit-Dateien unterstützen keine Kommentare am Zeilenende. Wenn Sie hinter der Zeile
Environment=ROS_DOMAIN_ID=113einen#-Kommentar anfügen, wird auch der Kommentar als Wert interpretiert und die Einstellung funktioniert nicht. Schreiben Sie Kommentare daher unbedingt in eine eigene Zeile.
Laden Sie mit dem folgenden Befehl den systemd-Daemon neu.
systemctl daemon-reloadStarten Sie Beamforming-camerad oder die Kamera neu.
systemctl restart beamforming-camerad# oderreboot5. Einstellung überprüfen
Ob die Einstellung übernommen wurde, können Sie auf zwei Arten überprüfen.
Überprüfung über die REST API (Firmware 1.0.3c oder höher)
Rufen Sie GET /ros/domain auf und prüfen Sie, ob die zurückgegebene domain_id mit dem eingestellten Wert übereinstimmt. (siehe Abfragebeispiel in Abschnitt 3)
Überprüfung über ROS 2 Topics auf dem Host-PC
Stellen Sie in der ROS 2 Umgebung des Host-PCs dieselbe ROS_DOMAIN_ID wie am Gerät ein und prüfen Sie anschließend, ob die Topics des BATCAM FX in der Topic-Liste erscheinen.
export ROS_DOMAIN_ID=113 # denselben Wert wie am Gerät setzenros2 topic listBei korrekter Übernahme erscheinen in der Liste, wie unten dargestellt, Topics auf Basis der Hardware-ID der Kamera.
/fx_276730383020104/beamforming/fx_276730383020104/image/fx_276730383020104/lpoint_audio/fx_276730383020104/prpd/fx_276730383020104/ws_audioDie Hardware-ID (hardware_id) im Topic-Namen können Sie über die API zur Abfrage der Geräteinformationen (GET /setting/status) ermitteln. Die Nachrichtenspezifikation der einzelnen Topics finden Sie im Dokument Übersicht zur FX ROS-Systemintegration.
6. Fehlerbehebung (Troubleshooting)
-
Wenn die Topics des Geräts auf dem Host nicht sichtbar sind:
-
Prüfen Sie, ob die
ROS_DOMAIN_IDvon Host und Gerät identisch ist. Den Wert des Geräts können Sie überGET /ros/domain(Firmware 1.0.3c oder höher) oder in der ZeileEnvironmentder Service-Datei einsehen. -
Die ROS-Standard-
DOMAIN_IDdes Geräts ist 123. Wenn das Gerät nicht gesondert geändert wurde, führen Sie auf dem Hostexport ROS_DOMAIN_ID=123aus und prüfen Sie erneut.
-
-
Wenn REST-API-Aufrufe mit 401 fehlschlagen:
- Prüfen Sie, ob die Anmeldedaten der HTTP-Basic-Authentifizierung (Konto
adminoderuser) korrekt sind.
- Prüfen Sie, ob die Anmeldedaten der HTTP-Basic-Authentifizierung (Konto
-
Wenn die Kameraverbindung unmittelbar nach dem PATCH abbricht:
- Ein kurzzeitiger Verbindungsabbruch, während die Einstellung übernommen wird, ist normales Verhalten. Verbinden Sie sich nach kurzer Zeit erneut und prüfen Sie den Wert mit
GET /ros/domain.
- Ein kurzzeitiger Verbindungsabbruch, während die Einstellung übernommen wird, ist normales Verhalten. Verbinden Sie sich nach kurzer Zeit erneut und prüfen Sie den Wert mit
-
Wenn der Dienst nach der manuellen Bearbeitung wiederholt neu startet oder die Kamera neu startet:
- Prüfen Sie, ob die Zeile
Environment=ROS_DOMAIN_ID=<Wert>keinen Kommentar am Zeilenende und keinen Tippfehler enthält, und führen Sie nach der Korrektur erneutsystemctl daemon-reloadaus.
- Prüfen Sie, ob die Zeile
7. Zugehörige Dokumente
-
Übersicht zur FX ROS-Systemintegration — Topic-/Nachrichtenspezifikation
-
FX ROS Firmware BF/Overlay Parameter Setting (Beta) — Beamforming-/Overlay-Einstellung über ROS 2 Actions
-
FX Firmware-Release-Notes — Verlauf der ROS-Funktionsunterstützung nach Version
-
BATCAM FX API-Referenz — detailliertes Schema von
/ros/domain,/setting/status