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 传入验证程序后,相同验证完整通过。