OpenNeuro 旨在构建一套开源、标准化、软硬解耦的机器人内部通信架构,采用 Eclipse Zenoh 替代复杂的 DDS,实现高效、实时、易用的机器人神经网络。
- ⚡ 微秒级同步 - PTP 硬件时间戳支持,精度 <1µs
- 🎯 确定性通信 - TSN 流量隔离,实时性保证
- 🪶 轻量高效 - Zenoh-Pico,嵌入式设备也能享受零拷贝通信
- 🔌 无缝集成 - ROS 2 透明桥接,兼容现有生态
- 🏗️ 区域架构 - Zone Controller 设计,减少线束,提高故障隔离
- 🔓 完全开源 - 从软件到硬件的完整解决方案
功能完整性: ████████████████░░░░ 80%
性能达标: ████████████████████ 100%
生产就绪: ████████████░░░░░░░░ 60%
文档完整: ████████████████████ 100%
- 操作系统: Linux (Ubuntu 20.04+) 或 Windows 10/11
- 编译器: GCC 9+ / MSVC 2019+ / Clang 10+
- CMake: 3.15+
- Python: 3.8+ (可选,用于 TSN Python API)
# 克隆仓库
git clone https://github.com/OpenNeuro/OpenNeuro.git
cd OpenNeuro
# 编译 PTP Stackcd ptp-stack
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
# 编译 TSN Schedulercd ../tsn-scheduler
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
# 编译 Zenoh Bridgecd ../zenoh-bridge
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build# PTP 性能基准测试cd ptp-stack/build
./bench_ptp
# TSN Python 绑定测试cd tsn-scheduler
python test_bindings.py
# Zenoh HAL 测试cd zenoh-bridge/build
./test_zenoh_hal性能: ~10ns 延迟 (零拷贝优化)
#include"ptp/master.h"// 初始化 PTP Masterptp_master_ctx_tmaster;
ptp_master_config_tconfig= {
.domain_number=0,
.sync_interval_log=-3// 125ms
};
ptp_master_init(&master, &config);
// 主循环while (running) {
ptp_master_tick(&master);
usleep(1000); // 1ms
}性能: O(1) 门控算法
importtsn_scheduler# 创建调度器sched=tsn_scheduler.create()
# 配置流量优先级config= {
'interface': 'eth0',
'rt_bandwidth': 200, # Mbps'st_bandwidth': 300,
'be_bandwidth': 500
}
tsn_scheduler.apply_config(sched, config)性能: <100µs 延迟, >10K msg/s 吞吐量
#include"zenoh_hal.h"// 打开会话zenoh_session_t*s=zenoh_hal_open("tcp/127.0.0.1:7447");
// 发布数据zenoh_publisher_t*pub=zenoh_hal_declare_publisher(s, "robot/sensor/imu");
zenoh_hal_put(pub, data, len);
// 订阅数据voidcallback(constuint8_t*data, size_tlen, void*ctx) {
printf("Received: %zu bytes\n", len);
}
zenoh_subscriber_t*sub=zenoh_hal_declare_subscriber(s, "robot/cmd", callback, NULL);OpenNeuro/
├── ptp-stack/ # PTP 协议栈
│ ├── src/
│ │ ├── master/ # PTP Master 实现
│ │ ├── slave/ # PTP Slave 实现
│ │ ├── protocol/ # 消息处理
│ │ └── platform/ # 硬件时间戳
│ └── tests/ # 测试程序
│
├── tsn-scheduler/ # TSN 调度器
│ ├── src/
│ │ ├── core/ # 核心调度算法
│ │ ├── linux/ # Linux Taprio 集成
│ │ └── python_api/ # Python 绑定
│ └── tests/ # 测试程序
│
├── zenoh-bridge/ # Zenoh 桥接器
│ ├── src/
│ │ ├── zenoh_hal.h # HAL 抽象层
│ │ ├── zenoh_hal_full.c # Full Zenoh 实现
│ │ ├── zenoh_hal_pico.c # Zenoh-Pico 实现
│ │ └── tsn_qos_bridge.c # QoS 映射
│ └── tests/ # 测试程序
│
├── hardware/ # 硬件设计
│ ├── zone-controller/ # Zone Controller 设计
│ └── reference-design/ # 参考设计
│
└── docs/ # 文档
├── API_REFERENCE.md
├── PERFORMANCE_REPORT.md
└── VERIFICATION_GUIDE.md
# Godot 仿真中的时间同步fromptp_stackimportPTPSlaveslave=PTPSlave(domain=0, interface="lo")
whilerunning:
slave.tick()
sync_time=slave.get_time()优先级 7: 电机控制 (<100µs)
优先级 6: 传感器反馈 (<1ms)
优先级 4: 视频流 (<10ms)
优先级 0: 诊断信息 (尽力而为)
Zone Controller (RK3588)
├─ PTP Master
├─ TSN Scheduler
└─ Zenoh Router
↓
Zone Neurons (ESP32/STM32)
├─ PTP Slave
├─ Zenoh-Pico
└─ 传感器/执行器
我们欢迎所有形式的贡献!
本项目采用 MIT License
- Eclipse Zenoh - 高性能数据通信
- IEEE 1588 - PTP 标准
- IEEE 802.1Q - TSN 标准
- 所有贡献者和支持者
OpenNeuro - 让机器人拥有神经系统! 🤖🚀
Made with ❤️ by OpenNeuro Team