Robot Harness
A harness for embodied intelligence.
From intent to action. Back with evidence.
Website · Quick start · Documentation · Examples · Contribute
Robot Harness is building the execution foundation between agents, robot skills and the physical world. The aim is to make actions observable, interruptible and composable—and make their outcomes useful for the next decision and future improvement.
Its experimental C++17 Core starts with three questions: May this action run? May this result be used? Is the previous work settled enough to proceed? Applications choose goals; robot stacks retain control and device protection.
See it move¶
Watch cancellation and handoff · Full recordings & evidence
Actual TurtleBot3 / Nav2 simulation, viewed in RViz. A moves and is cancelled; Harness admits B only after A settles. A second clip shows why stopping alone does not establish settlement. Excerpts preserve playback speed; full originals and same-run receipts are available.
Build¶
Requires a C++17 compiler and CMake 3.16+. No model or robot is needed for this first run.
git clone https://github.com/xiao-yang25/robot-harness.git
cd robot-harness
cmake -S . -B build -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build build --parallel 2
(cd build && ctest --output-on-failure)
./build/robot_harness_normal_execution
Expect sums 29 and 61, with accepted results and settled work. Continue with two-step tasks, cancellation, or the Ubuntu container. Build troubleshooting. For robot motion, follow the Humble/Gazebo simulation tutorial, or use the local live viewer to watch navigation, cancellation and replacement.
Current scope¶
| Available today | Next |
|---|---|
| Execution authority, guarded results, cancellation and deadlines | Contributor reproduction and further backend tutorials |
| Local workers, dependent tasks, replacement and provider rebinding | Broader loss and recovery coverage |
| Limited Linux Host recovery; experimental Nav2 sequencing, moving cancellation, replacement and bounded loss isolation | Broader robot skills and learning-based backends |
M4 simulation scope is complete. The next integration step is first-device preparation: identify the native control and stop/loss boundaries, then validate them before controlled motion. Learning-based skill integration remains later work.
Early-stage software and simulation. No physical-robot integration or hard stop guarantee yet. Recovery requires a surviving, polled Owner; sequential navigation uses an exclusive simulator. The source-built simulation package provides the matching native fixture. See tested behavior and limits and the architecture. Learning and self-improvement are future directions, not current product capabilities.
Interfaces and compatibility¶
C++17 · ROS-independent Core · CMake installation and source-tree adapters/examples. APIs are evolving; there is no stable SDK/API/ABI or published release yet. Start with the architecture guide or backend integration.
Contributing¶
Report a bug, discuss an integration, or read CONTRIBUTING. The kingfisher is our preview identity and may evolve.
License¶
License and patch contribution terms are pending. See the licensing status before submitting patches or adopting the code.
