jaxa / roscfe

RACS - the ROS1 and cFS System
Apache License 2.0
23 stars 3 forks source link

ROS2 Support #7

Open swhart115 opened 3 years ago

swhart115 commented 3 years ago

Hi, I was wondering if you had any intents to adapt these conversion and relay tools to ROS2, or if you had any sense of what challenges there would be in doing so. Thanks, Steve

yuyuqq commented 3 years ago

Hi Steve, Thank you for the question. We are deeply considering what to do next too.

We released these ROS-cFS conversion and relay tools because we had already partially developped them back then and were almost there. The concept was relatively simple and good to share with the space and robotics software community. And, it could raise next issues like this discussion.

Design decision1. Should ROS2 and cFS exist together?

If yes: since they are both embedded system, we probably need only a bridge, but converter. But we'll still enconter OS problem.

If no: we may want to consider launch ROS2 alone. How do we have to modify ROS2.

Design decision2. Is bridging the most critical issue to launch ROS2?

If we use ROS2 (complex robotics software) on a spacecraft, isn't the problem rather event-driven? Is it better to switch to the time slice type?

Even with cFS, I feel like we always struggle with doing everything done within given time slice. After all, ROS2 and cFS may have this problem as well, and we may want to consider technical solution to this.

We are happy if you and audience tell us what you think about this. Thank you!

swhart115 commented 3 years ago

@yuyuqq thank you for your response. We are looking into the bridge approach, and are considering two options:

  1. A GroundSystem-side bridge that allows ROS2 to be run only on the ground side, and existing between TO and CI inputs and outputs, turning them into ROS2 messages.
  2. A bridge that would exist on the flight hardware, probably implemented as an SBN DDS plugin.

Both approaches don't address the message conversion issue (should we make ROS2 .msg files from cFE message structs, or vice versa), and are currently considering options for doing such conversion. This is why we were definitely interested in your approach, though it looks like the cFE message structures were created by hand from a set of useful ROS messages (e.g., JointState, etc.).

yuyuqq commented 3 years ago

@swhart115, thank you for sharing your situation!

Our thought for the developed tools was to mainly ease robotic software ground tests, as we could test first including ROS then converted ROS all in one software environment. Your idea, integration to the ground system and possibly on-board system, definitely makes sense for our purpose too.

If we would make intelligent robotic software like ROS2 fly, how can we satisfy potential users? What would be use case? How much of users exist and in what segment(s)?

As already mentioned, we are still thinking about what to do next as of today, leaving this conversation open to you and everybody else.