From edbe450b6654ee055eea897dd1aa6e391c33b305 Mon Sep 17 00:00:00 2001 From: Orange <2314753575@qq.com> Date: Thu, 23 Jul 2026 15:52:35 +0800 Subject: [PATCH] feat: add dedicated Fast DDS 164 profile --- config/dds/fastdds_rdk_164.xml | 35 +++++++ config/dds/use_rdk_dds_164.sh | 30 ++++++ .../2026-07-23-fastdds-164-network-change.md | 93 +++++++++++++++++++ 3 files changed, 158 insertions(+) create mode 100644 config/dds/fastdds_rdk_164.xml create mode 100755 config/dds/use_rdk_dds_164.sh diff --git a/config/dds/fastdds_rdk_164.xml b/config/dds/fastdds_rdk_164.xml new file mode 100644 index 0000000..658b997 --- /dev/null +++ b/config/dds/fastdds_rdk_164.xml @@ -0,0 +1,35 @@ + + + + + rdk_udp_164 + UDPv4 + +
192.168.10.164
+
+
+ + rdk_shm + SHM + +
+ + + + + + + +
192.168.10.151
+
+
+
+
+ + rdk_udp_164 + rdk_shm + + false +
+
+
diff --git a/config/dds/use_rdk_dds_164.sh b/config/dds/use_rdk_dds_164.sh new file mode 100755 index 0000000..dc8306c --- /dev/null +++ b/config/dds/use_rdk_dds_164.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then + echo "ERROR: source this file instead of executing it" >&2 + exit 64 +fi + +_rdk_dds_profile="/home/sunrise/yiliao_ws/config/dds/fastdds_rdk_164.xml" + +if ! ip -4 addr show dev wlx200db0c3fca5 2>/dev/null | grep -q 'inet 192\.168\.10\.164/'; then + echo "ERROR: wlx200db0c3fca5 does not own 192.168.10.164" >&2 + unset _rdk_dds_profile + return 1 +fi + +if [[ ! -r "${_rdk_dds_profile}" ]]; then + echo "ERROR: unreadable Fast DDS profile: ${_rdk_dds_profile}" >&2 + unset _rdk_dds_profile + return 1 +fi + +export ROS_DOMAIN_ID=22 +export RMW_IMPLEMENTATION=rmw_fastrtps_cpp +export ROS_LOCALHOST_ONLY=0 +export FASTRTPS_DEFAULT_PROFILES_FILE="${_rdk_dds_profile}" +export FASTDDS_DEFAULT_PROFILES_FILE="${_rdk_dds_profile}" + +printf 'DDS link enabled: domain=%s rmw=%s local=192.168.10.164 profile=%s\n' \ + "${ROS_DOMAIN_ID}" "${RMW_IMPLEMENTATION}" "${_rdk_dds_profile}" +unset _rdk_dds_profile diff --git a/docs/crucial_change/2026-07-23-fastdds-164-network-change.md b/docs/crucial_change/2026-07-23-fastdds-164-network-change.md index 0ca95e0..f3354f5 100644 --- a/docs/crucial_change/2026-07-23-fastdds-164-network-change.md +++ b/docs/crucial_change/2026-07-23-fastdds-164-network-change.md @@ -772,3 +772,96 @@ Expected:新提交只涉及四个 DDS 配置文件和本 Markdown;原有 dir - 当前 RMW 为 `rmw_fastrtps_cpp`。 - 实施开始时仓库已有用户内容:`.vscode/browse.vc.db*` 修改,以及 `.codex`、`resource/`、`src/navigation/`、`src/obstacle_scanner/`、`src/origincar_birdseye/`、`src/third_party/`、`tf_bag/` 等未跟踪路径。 - 本任务不会暂存、修改或清理上述已有用户内容。 + +### RDKx5 配置实施结果 + +- 新增目录:`/home/sunrise/yiliao_ws/config/dds/` +- `/home/sunrise/yiliao_ws/config/dds/fastdds_rdk_164.xml` + - 权限:`0644` + - SHA-256:`f6714ed471930500bc42d5100113782fb585ce50d48326118a0d0a3c8903d1be` +- `/home/sunrise/yiliao_ws/config/dds/use_rdk_dds_164.sh` + - 权限:`0755` + - SHA-256:`5b40b2d3c61bd9d7eedfdb11ef1bb43dd60b3cdbb67ddcb1e2da01ab79996059` + +XML 完整内容: + +```xml + + + + + rdk_udp_164 + UDPv4 + +
192.168.10.164
+
+
+ + rdk_shm + SHM + +
+ + + + + + + +
192.168.10.151
+
+
+
+
+ + rdk_udp_164 + rdk_shm + + false +
+
+
+``` + +环境脚本完整内容: + +```bash +#!/usr/bin/env bash + +if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then + echo "ERROR: source this file instead of executing it" >&2 + exit 64 +fi + +_rdk_dds_profile="/home/sunrise/yiliao_ws/config/dds/fastdds_rdk_164.xml" + +if ! ip -4 addr show dev wlx200db0c3fca5 2>/dev/null | grep -q 'inet 192\.168\.10\.164/'; then + echo "ERROR: wlx200db0c3fca5 does not own 192.168.10.164" >&2 + unset _rdk_dds_profile + return 1 +fi + +if [[ ! -r "${_rdk_dds_profile}" ]]; then + echo "ERROR: unreadable Fast DDS profile: ${_rdk_dds_profile}" >&2 + unset _rdk_dds_profile + return 1 +fi + +export ROS_DOMAIN_ID=22 +export RMW_IMPLEMENTATION=rmw_fastrtps_cpp +export ROS_LOCALHOST_ONLY=0 +export FASTRTPS_DEFAULT_PROFILES_FILE="${_rdk_dds_profile}" +export FASTDDS_DEFAULT_PROFILES_FILE="${_rdk_dds_profile}" + +printf 'DDS link enabled: domain=%s rmw=%s local=192.168.10.164 profile=%s\n' \ + "${ROS_DOMAIN_ID}" "${RMW_IMPLEMENTATION}" "${_rdk_dds_profile}" +unset _rdk_dds_profile +``` + +验证结果: + +- `bash -n`:通过。 +- XML well-formed:通过。 +- Fast DDS/RMW participant 实际创建:通过,输出 `RMW participant created`。 +- 环境摘要:Domain `22`、RMW `rmw_fastrtps_cpp`、本地 DDS 地址 `.164`。 +- 首次从 PowerShell 直接拼接远端 `python3 -c` 时,引号在 SSH 边界被破坏,Python 在读取 XML 前即报 `SyntaxError`。该失败与 XML 内容无关,未修改配置;改为通过 WSL Bash 和 stdin 传入验证程序后,相同验证完整通过。