Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

CSCC 2026 | ROS2/DDS 调优与验证开发文档

项目定位:操作系统设计赛(OS 功能挑战赛道)
核心目标:优化 ROS2 DDS 实时性
当前版本:v0.0.1
维护者:GSL 团队

变更日志

版本 日期 变更内容 记录人
v0.0.1 2026.04.20 文档初始化,同步赛题学习路线第一阶段,安装 ROS2 环境 S

目录

  1. 硬件基础设施与连接规范
  2. 学习路线与进度追踪
  3. 核心性能指标看板
  4. 开发与实验规范
  5. 附录:工具、评分与命令速查

第一章 硬件基础设施与连接规范

1. 资产清单

节点名称 硬件型号 角色 系统状态
Node A Orange Pi AI Pro 发布端 ROS2 Humble
Node B Orange Pi AI Pro 订阅端 ROS2 Humble

2. 基础设施配置记录

  • 系统版本:Ubuntu 22.04 LTS
  • 运行状态:Node A 长期在线;Node B 需联系 [S] 开启。
  • 时钟同步:[待同步](Chrony 同步中 / PTP 同步中)

第二章 学习路线与进度追踪

阶段一:环境搭建与基准测试

  • Node A 连通性验证
  • Node B 环境初始化
  • 编写高精度时间戳消息发布/订阅节点
  • 导出默认配置下的第一份性能 CSV 数据(Latency/CPU/RSS)

阶段二:中间件核心调优 (必做任务 60分)

  • QoS 策略定制:针对 /cmd_vel/scan 编写差异化 QoS
  • 传输层优化:配置 fastdds.xml 启用 SHM (共享内存)
  • 资源约束达标:发布频率不变前提下,降低 CPU ≤ 30% & 内存 ≤ 128MB

阶段三:系统级极限优化 (加分任务 40分)

  • 多 DDS 横向对比:安装测试 CycloneDDS、Iceoryx
  • RT 内核改造:部署 PREEMPT_RT 补丁,进行绑核 (taskset) 实验
  • 网络抗干扰:使用 tc netem 模拟丢包下的重传策略优化
  • 动态 QoS:实现链路质量自适应切换逻辑

第三章 核心性能指标看板

规则:所有数据必须在 Node B 处于稳态且无干扰时采集。

维度 基线参考 (默认配置) 目标约束 当前实测 (时间) 达成状态
CPU 占用率 [待填] % ≤ 30% - FALSE
内存 RSS [待填] MB ≤ 128MB - FALSE
P99 延迟 (cmd) [待填] ms 降低 ≥ 25% - FALSE
丢包率 (scan) [待填] % ≤ 1% - FALSE
抖动标准差 [待填] ms 降低 ≥ 30% - FALSE

第四章 开发与实验规范

4.1 Workspace 框架样例

dev_ws
├── build/
├── install/
├── log/
└── src/
    ├── launch/                # 存放 launch 文件
    ├── my_cpp_pkg/            # C++ 源代码包
    │   ├── CMakeLists.txt
    │   ├── package.xml
    │   └── src/hello_node.cpp
    └── my_py_pkg/             # Python 源代码包
        ├── package.xml
        ├── setup.py
        └── my_py_pkg/py_node.py

4.2 仓库维护规范

  • 身份设置git config --global user.name "YourName"
  • 提交规范:采用 Angular 规范,例如 feat(camera): 描述内容
  • 分支管理main 为稳定版,dev 为主开发分支,功能开发使用 feature-xxx

附录

附录一:推荐工具链速查表

类别 工具 用途
ROS2 监控 ros2 topic hz/bw/delay 测量频率、带宽、延迟
DDS 可视化 fastdds_monitor QoS 可视化验证
系统监控 htop / iotop CPU 与磁盘 IO 监控
性能剖析 perf CPU 采样与火焰图生成
网络模拟 tc netem 模拟丢包与延迟注入

附录二:常用命令备忘

  • 编译空间colcon build --symlink-install
  • 查看进程 RSSps -o pid,rss,vsz,comm -p <PID>
  • 网络损伤注入sudo tc qdisc add dev eth0 root netem loss 5% delay 10ms
  • 清理网络损伤sudo tc qdisc del dev eth0 root

本项目文档由 GSL 维护。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors