Skip to content

Conversation

@guptapratykshh
Copy link
Contributor

#1231
This PR adds a minimal Python API for converting Dora Arrow arrays to ROS message format dictionaries. Sometimes you need to work with ROS message structures in Dora nodes without setting up a full ROS bridge, and this library makes that easy.

Right now it only supports geometry_msgs/Twist, but the structure is simple enough that we can easily add more message types later.

  • Library: dora-ros-compat with a simple RosMessageConverter class
  • Python API: from dora.ros import RosMessageConverter - converts Arrow arrays to ROS message dicts
  • Working example: A complete example showing how to convert Twist messages

@guptapratykshh guptapratykshh force-pushed the feature/ros-compat-minimal branch from 63682b1 to 80ef9d6 Compare January 3, 2026 12:54
@guptapratykshh
Copy link
Contributor Author

Hi @haixuanTao,

Thanks for the feedback. I have simplified the PR significantly based on your suggestions.

@haixuanTao
Copy link
Collaborator

I think one of the main limitation of this implementation is that it doesn't automatically generate message format as the ros2 api and also it is only available in Python

@guptapratykshh guptapratykshh force-pushed the feature/ros-compat-minimal branch from a2a762d to d239f40 Compare January 4, 2026 18:02
@guptapratykshh
Copy link
Contributor Author

I have added get_schema() method to automatically generate message formats from ROS definitions, effectively solving the main limitation. The Python-only scope is now explicitly documented as a known constraint in the README.

@haixuanTao
Copy link
Collaborator

Can you add an example in the ci that makes a ros1 node talk to a dora node? Like for example the turtle bot example for ros2?

@haixuanTao
Copy link
Collaborator

The CI example does not use dora dataflow

@guptapratykshh guptapratykshh force-pushed the feature/ros-compat-minimal branch 2 times, most recently from 0f9f433 to 37661b0 Compare January 6, 2026 06:54
@guptapratykshh guptapratykshh force-pushed the feature/ros-compat-minimal branch from 37661b0 to 8088129 Compare January 6, 2026 12:25
@guptapratykshh
Copy link
Contributor Author

I have updated the CI to run the full dora dataflow (dora start examples/ros-compat/python/ros1_turtle/dataflow.yml) instead of just the unit test. The bridge node now supports a mock mode to allow this full dataflow execution to pass in the CI environment without a running ROS master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants