docs: record WSL Fast DDS deployment

This commit is contained in:
2026-07-23 15:55:16 +08:00
parent edbe450b66
commit d684ce64e2

View File

@@ -865,3 +865,97 @@ unset _rdk_dds_profile
- 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 传入验证程序后,相同验证完整通过。
### WSL 配置实施结果
- 新增目录:`/home/hikos/Yiliao2026/config/dds/`
- `/home/hikos/Yiliao2026/config/dds/fastdds_wsl_151.xml`
- 权限:`0644`
- SHA-256`bcf9c6e8e8b724cda1c6d83f02491ae0ad9ad7faec5be5dc01b8d60ea826d7ba`
- `/home/hikos/Yiliao2026/config/dds/use_wsl_dds_164_link.sh`
- 权限:`0755`
- SHA-256`7fe539eab3ddaa5b79a32145cd1d10834468ae47a73de239944b34c61be61f52`
- WSL Git commit`b8840ec94bca8668f7d56d80b75c9db0298d18a3`,该提交只包含上述两个文件。
XML 完整内容:
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
<transport_descriptors>
<transport_descriptor>
<transport_id>wsl_udp_151</transport_id>
<type>UDPv4</type>
<interfaceWhiteList>
<address>192.168.10.151</address>
</interfaceWhiteList>
</transport_descriptor>
<transport_descriptor>
<transport_id>wsl_shm</transport_id>
<type>SHM</type>
</transport_descriptor>
</transport_descriptors>
<participant profile_name="wsl_dds_151" is_default_profile="true">
<rtps>
<builtin>
<initialPeersList>
<locator>
<udpv4>
<address>192.168.10.164</address>
</udpv4>
</locator>
</initialPeersList>
</builtin>
<userTransports>
<transport_id>wsl_udp_151</transport_id>
<transport_id>wsl_shm</transport_id>
</userTransports>
<useBuiltinTransports>false</useBuiltinTransports>
</rtps>
</participant>
</profiles>
```
环境脚本完整内容:
```bash
#!/usr/bin/env bash
if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
echo "ERROR: source this file instead of executing it" >&2
exit 64
fi
_wsl_dds_profile="/home/hikos/Yiliao2026/config/dds/fastdds_wsl_151.xml"
if ! ip -4 addr show dev eth4 2>/dev/null | grep -q 'inet 192\.168\.10\.151/'; then
echo "ERROR: eth4 does not own 192.168.10.151" >&2
unset _wsl_dds_profile
return 1
fi
if [[ ! -r "${_wsl_dds_profile}" ]]; then
echo "ERROR: unreadable Fast DDS profile: ${_wsl_dds_profile}" >&2
unset _wsl_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="${_wsl_dds_profile}"
export FASTDDS_DEFAULT_PROFILES_FILE="${_wsl_dds_profile}"
printf 'DDS link enabled: domain=%s rmw=%s local=192.168.10.151 peer=192.168.10.164 profile=%s\n' \
"${ROS_DOMAIN_ID}" "${RMW_IMPLEMENTATION}" "${_wsl_dds_profile}"
unset _wsl_dds_profile
```
验证结果:
- `bash -n`:通过。
- XML well-formed通过。
- Fast DDS/RMW participant 实际创建:通过,输出 `RMW participant created`
- 环境摘要Domain `22`、RMW `rmw_fastrtps_cpp`、本地 DDS 地址 `.151`、peer `.164`
- WSL 提交命令在工具等待窗口内没有返回,但后台提交随后正常完成;复核 commit `b8840ec9` 只包含两个批准的配置文件,原有 `.vscode` 暂存内容未进入该提交。