ROS Domain ID 設定
BATCAM FX ROS Domain ID 設定
1. 概要
BATCAM FX は ROS 2 Humble をベースにセンサーデータをパブリッシュし、同じ ROS_DOMAIN_ID を使用するノード同士のみが互いを検出して通信します。同一ネットワーク上で複数の ROS 2 システムを分離して運用する場合や、ご使用の環境の Domain ID に BATCAM FX を合わせる必要がある場合に、この設定を変更します。
-
BATCAM FX の ROS デフォルト
DOMAIN_IDは 123 です。(ファームウェア v1.0.3b 以降、FX ファームウェアリリースノート 参照) -
機器がパブリッシュするトピック構成については、FX ROS システム統合の概要 ドキュメントを参照してください。
2. 方法の選択: ファームウェアバージョンの確認
ファームウェアバージョンによって設定方法が異なります。まず、ご使用の機器のファームウェアバージョンを確認してください。
| ファームウェアバージョン | 設定方法 | 備考 |
|---|---|---|
| 1.0.3c 以降 | REST API (項目 3、推奨) | 公式サポート方法 |
| 1.0.3c 未満 | systemd サービスファイルの手動修正 (項目 4) | 非公式の方法 — 注意事項を必ずお読みください |
ファームウェアバージョンは、機器情報照会 API(GET /setting/status)の firmware_version フィールドで確認できます。
curl -u admin:<password> "http://192.168.0.30/setting/status"# 例の 192.168.0.30 は実際の BATCAM FX の IP アドレスに置き換えてください。レスポンス例:
{ "error": 0, "result": { "hardware_id": "3287162925128", "sbrio_version": "1.0.14", "firmware_version": "v1.0.3c" }}💡 参考: BATCAM FX のすべての REST API は HTTP Basic 認証が必要です。機器にはデフォルトで
admin、userの 2 つのアカウントがあらかじめ設定されており、出荷時の初期パスワードは必ず変更してからご使用ください。ファームウェアのアップデート方法については、BATCAM FX Web ソフトウェアアップデート または BATCAM FX シェルソフトウェアアップデート ドキュメントを参照してください。
3. REST API での設定 (推奨、ファームウェア 1.0.3c 以降)
BATCAM FX ファームウェア 1.0.3c バージョンから、REST API による ROS Domain ID の設定が可能です。リクエスト/レスポンススキーマの詳細とリアルタイムテストについては、BATCAM FX API リファレンス の ros タグを参照してください。
| メソッド | パス | 説明 | リクエストボディ |
|---|---|---|---|
GET | /ros/domain | 現在設定されている ROS Domain ID の照会 | なし |
PATCH | /ros/domain | ROS Domain ID の変更 | multipart/form-data |
PATCH /ros/domain のリクエストフィールド:
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
domain_id | integer | 必須 | 設定する ROS Domain ID |
現在の値の照会
curl -u admin:<password> "http://192.168.0.30/ros/domain"レスポンス例:
{ "error": 0, "result": { "domain_id": 123 }}値の変更
curl -u admin:<password> -X PATCH "http://192.168.0.30/ros/domain" -F "domain_id=113"レスポンス例:
{ "error": 0, "result": { "domain_id": 113 }}⚠️ 注意: 設定が反映される間、カメラとの接続が一時的に切断されます。設定直後に接続が切断されるのは正常な動作です。
4. 旧バージョンの手動設定 (ファームウェア 1.0.3c 未満、非公式)
ご使用の環境の ROS_DOMAIN_ID が 0 以外の場合に、現在非公式にサポートされている ROS_DOMAIN_ID の設定方法です。
1.0.3c 未満のファームウェアの BATCAM FX、あるいは内部で実行される ROS 2 オプションに DOMAIN_ID を追加できる機能はありません。したがって、ROS 2 Node および Topic を生成してパブリッシュする beamforming-camerad 実行サービスファイルの修正が必要です。
⚠️ 注意: このサービスは
Restart=alwaysとStartLimitAction=rebootで構成されているため、サービスファイルを誤って修正すると、beamforming-camerad が繰り返し再起動され、カメラが再起動する場合があります。修正前に元の内容を保管しておき、以下の例の形式を正確に守ってください。また、ファームウェアをアップデートした後は、設定がそのまま維持されているかを再度確認することを推奨します。
前提条件
- BATCAM FX に SSH で接続できる必要があります。以下の例の
192.168.50.11は、実際の BATCAM FX の IP アドレスに置き換えてください。
変更手順
-
BATCAM FX に ssh でログイン
-
サービス実行ファイルにアクセス ( vi、nano など )
-
Service タグに Environment を追加
-
デーモンおよびサービスファイルの再読み込み
-
Beamforming-camerad またはカメラの再起動
変更の詳細
BATCAM FX に SSH でログインします。
ssh root@192.168.50.11# ご使用の環境に合わせて IP アドレスを変更してください。以下のコマンドを使用してシステム実行ファイルにアクセスします。 エディタは vi、nano など使いやすい方法をご使用ください。
nano /lib/systemd/system/beamforming-camerad.service# またはvi /lib/systemd/system/beamforming-camerad.service以下のコードブロックを参照して、Service タグ内に Environment の値を追加します。例の 113 は、ご使用の環境に合った ROS_DOMAIN_ID の値に指定できます。
[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]## 追加が必要な部分 — ご使用の環境に合わせて ROS_DOMAIN_ID を指定できます。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⚠️ 注意: systemd ユニットファイルは行末コメントをサポートしていません。
Environment=ROS_DOMAIN_ID=113の行の後ろに#コメントを付けると、コメントまで値として解釈され設定が動作しないため、コメントは必ず別の行に記述してください。
以下のコマンドを使用して systemd daemon を再読み込みします。
systemctl daemon-reloadBeamforming-camerad またはカメラを再起動します。
systemctl restart beamforming-camerad# またはreboot5. 設定の確認
設定が適用されたかどうかは、2 つの方法で確認できます。
REST API で確認 (ファームウェア 1.0.3c 以降)
GET /ros/domain を呼び出し、返される domain_id が設定した値と一致するかを確認します。(項目 3 の照会例を参照)
ホスト PC で ROS 2 トピックから確認
ホスト PC の ROS 2 環境で機器と同じ ROS_DOMAIN_ID を設定した後、トピック一覧に BATCAM FX のトピックが表示されるかを確認します。
export ROS_DOMAIN_ID=113 # 機器に設定した値と同じ値を指定ros2 topic list正常に適用された場合、以下のようにカメラのハードウェア ID に基づくトピックが一覧に表示されます。
/fx_276730383020104/beamforming/fx_276730383020104/image/fx_276730383020104/lpoint_audio/fx_276730383020104/prpd/fx_276730383020104/ws_audioトピック名のハードウェア ID(hardware_id)は、機器情報照会 API(GET /setting/status)で確認できます。トピックごとのメッセージ仕様については、FX ROS システム統合の概要 ドキュメントを参照してください。
6. トラブルシューティング (Troubleshooting)
-
ホストで機器のトピックが表示されない場合:
-
ホストと機器の
ROS_DOMAIN_IDが同一かを確認します。機器の値はGET /ros/domain(ファームウェア 1.0.3c 以降) またはサービスファイルのEnvironment行で確認できます。 -
機器の ROS デフォルト
DOMAIN_IDは 123 です。別途変更していない機器であれば、ホストでexport ROS_DOMAIN_ID=123を実行してから再度確認します。
-
-
REST API の呼び出しが 401 で失敗する場合:
- HTTP Basic 認証の資格情報(
adminまたはuserアカウント)が正しいかを確認します。
- HTTP Basic 認証の資格情報(
-
PATCH 直後にカメラの接続が切断された場合:
- 設定が反映される間、接続が一時的に切断されるのは正常な動作です。しばらくしてから再度接続し、
GET /ros/domainで値を確認します。
- 設定が反映される間、接続が一時的に切断されるのは正常な動作です。しばらくしてから再度接続し、
-
手動修正後にサービスが繰り返し再起動する、またはカメラが再起動する場合:
Environment=ROS_DOMAIN_ID=<値>の行に行末コメントや誤字がないかを確認し、修正後にsystemctl daemon-reloadを再度実行します。
7. 関連ドキュメント
-
FX ROS システム統合の概要 — トピック/メッセージ仕様
-
FX ROS Firmware BF/Overlay Parameter Setting (ベータ) — ROS 2 アクションによるビームフォーミング/オーバーレイ設定
-
FX ファームウェアリリースノート — バージョン別 ROS 機能サポート履歴
-
BATCAM FX API リファレンス —
/ros/domain、/setting/statusの詳細スキーマ