feat: add dedicated Fast DDS 164 profile
This commit is contained in:
@@ -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
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
|
||||
<transport_descriptors>
|
||||
<transport_descriptor>
|
||||
<transport_id>rdk_udp_164</transport_id>
|
||||
<type>UDPv4</type>
|
||||
<interfaceWhiteList>
|
||||
<address>192.168.10.164</address>
|
||||
</interfaceWhiteList>
|
||||
</transport_descriptor>
|
||||
<transport_descriptor>
|
||||
<transport_id>rdk_shm</transport_id>
|
||||
<type>SHM</type>
|
||||
</transport_descriptor>
|
||||
</transport_descriptors>
|
||||
|
||||
<participant profile_name="rdk_dds_164" is_default_profile="true">
|
||||
<rtps>
|
||||
<builtin>
|
||||
<initialPeersList>
|
||||
<locator>
|
||||
<udpv4>
|
||||
<address>192.168.10.151</address>
|
||||
</udpv4>
|
||||
</locator>
|
||||
</initialPeersList>
|
||||
</builtin>
|
||||
<userTransports>
|
||||
<transport_id>rdk_udp_164</transport_id>
|
||||
<transport_id>rdk_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
|
||||
|
||||
_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 传入验证程序后,相同验证完整通过。
|
||||
|
||||
Reference in New Issue
Block a user