# ROS

Bridge Oden Control Pipeline data to ROS 1 or ROS 2.

Last validated: 2026-05-05

Use ROS when the vehicle control stack already exposes commands, state, or autonomy interfaces through ROS.

Oden does not require ROS. The recommended pattern is to keep Oden Control Pipeline as the Oden-facing transport and run a small bridge process that translates between OCP TCP/JSON and ROS topics, services, or actions.

## Recommended architecture

```none
OdenVR
  -> OCP over Oden links
  -> Oden Streamer
  -> vehicle-side OCP TCP client
  -> ROS bridge
  -> ROS 1 / ROS 2 vehicle stack
```

The ROS bridge should:

-   Connect to the Streamer OCP TCP server.
    
-   Read `OcpControlMessage` frames.
    
-   Validate faults and command freshness.
    
-   Publish safe, project-specific ROS commands.
    
-   Read ROS telemetry.
    
-   Return `VehicleResponseMessage` frames with `ack_time`, `ack_time_mac`, and vehicle user data.
    

## Repository

Voysys should publish and link the maintained ROS bridge repository from this page. Until that public link exists, treat ROS integration as a support-guided path.

The bridge should be kept small and auditable. Vehicle safety limits should still live in the vehicle controller or safety layer, not only in the bridge.

See [Vehicle-Side Control](vehicle-side-control.md) for the OCP TCP protocol.
