// the find
jaxa/racs2_bridge
RACS2 bridge - bridging between the ROS2 and cFS System
RACS2 is a bridge from JAXA that lets ROS2 nodes exchange messages with NASA's cFS (Core Flight System) flight software, using a WebSocket transport with Protocol Buffers for serialization. It's for spacecraft/satellite software engineers who want to test cFS flight code against ROS2-based simulation or ground tooling without rewriting either side's messaging stack.
It bridges two ecosystems that normally never talk to each other — ROS2's simulation/robotics tooling and NASA's actual flight software framework — and does it with a sensible decoupled transport (WebSocket + protobuf) rather than something tighter and more fragile like shared memory. It comes with working bidirectional examples (Case.1: cFS talker to ROS2 subscriber, Case.2: ROS2 publisher to cFS listener), not just a description of the protocol. The .proto schema and its generated C/Python bindings are checked into the repo, so you can see the actual wire format instead of reverse-engineering it. There's a published reference (JAXA/SEC paper at Flight Software Workshop 2023), so this has institutional backing and real use behind it, not a weekend project.
Setup involves manually copying files between directories and hand-editing a specific line number in a generated header (`default_osconfig.h` L.205) to flip on permissive mode — fragile, no install script, and it'll silently break if upstream cFS shifts that file. It's pinned to an old stack: cFE 6.7.0a and ROS2 Humble on Ubuntu 22.04, with nothing suggesting it tracks newer cFS releases. The only test files in the repo are ROS2 boilerplate (flake8, pep257, copyright checks) — there's no test that actually exercises the WebSocket/protobuf bridge logic end-to-end. Support is "contact us" rather than a public issue/PR workflow, and at 27 stars/5 forks this reads like a tool one institution open-sourced for visibility rather than one built to take outside contributions.