ROS2 to KaihongOS (OpenHarmony) Port for rk3588s (ARM64 aarch64)
| Track | Status | Completion |
|---|---|---|
| Track 1: ROS2 Foundation Migration | ✅ Complete | 100% |
| Track 1.5: RCLCPP OpenHarmony Port | ✅ Demo Built | 95% |
| Track 2: rmw_dsoftbus Implementation | ✅ Production Ready | 95% |
| Overall | ✅ On Track | 97% |
| Library | Size | Status |
|---|---|---|
| librcl.so | 359 KB | ✅ RCL (52/52 tests pass) |
| librmw_dsoftbus_cpp.so | ~4 MB | ✅ Production Ready |
| librclcpp.so | 21 MB | ✅ C++ client library |
| librclcpp_action.so | 1.2 MB | ✅ Action support |
| librclcpp_lifecycle.so | 2.0 MB | ✅ Lifecycle nodes |
| librclcpp_components.so | 126 KB | ✅ Component management |
| Demo | Size | Description |
|---|---|---|
| simple_talker | 846 KB | Minimal publisher |
| simple_listener | 2.7 MB | Minimal subscriber |
# Generate build files
gn gen out/ohos_aarch64
# Build all targets
ninja -C out/ohos_aarch64
# Build specific demo
ninja -C out/ohos_aarch64 simple_talker simple_listener# Copy libraries to C:\tmp
cp out/ohos_aarch64/*.so /mnt/c/tmp/
# Transfer via HDC (from WSL, use powershell.exe)
DEVICE_ID=$(powershell.exe -Command "hdc list targets" | head -1 | awk '{print $1}')
powershell.exe -Command "hdc -t $DEVICE_ID file send 'C:\tmp\*.so' '/system/lib64/'"
# Run demo
export RMW_IMPLEMENTATION=rmw_dsoftbus_cpp
/data/local/tmp/simple_talkerUser Application (rclcpp)
↓
RCL Layer (C API)
↓
rmw_dsoftbus (Custom RMW for OpenHarmony)
↓
OpenHarmony dsoftbus (IPC framework)
↓
Kernel / Network Layer
rcutils/- C utilities (memory, string, logging)rcl/- ROS Client Libraryrmw/- RMW interface definition
src/ros2/rmw_dsoftbus/- Custom middleware using dsoftbus- Zero-DDS architecture (no FastDDS/CycloneDDS)
- Session-based pub/sub
- Auto-discovery via dsoftbus
- QoS events support (deadline, liveliness, etc.)
src/ros2/rclcpp/- ROS2 C++ Client Library- Node, Publisher, Subscription, Timer, Executor
- Action, Lifecycle, Components support
| Test | Duration | Success Rate |
|---|---|---|
| Talker E2E | 5 min | 100% (20/20) |
| Ralph Loop A4 | 8 hours | 99.97% (28,769 msgs) |
| Phase B.2.1 | 4 hours | 99.97% (5 topologies) |
| QoS Events | 30 min | 100% (5/5 tests) |
Devices: 3× rk3588s validated
- RTT P50: 2.49ms
- Message Success: 99.97%
- First Publish Latency: < 1s
- CPU Overhead: < 5%
- Progress Tracking - Detailed status
- rmw_dsoftbus CLAUDE.md - Implementation guide
- Deployment Guide - Device deployment
This project is a port of ROS2 to OpenHarmony/KaihongOS. ROS2 is licensed under Apache License 2.0.