Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROS2 Support #7

Open
swhart115 opened this issue Jun 1, 2021 · 3 comments
Open

ROS2 Support #7

swhart115 opened this issue Jun 1, 2021 · 3 comments
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@swhart115
Copy link

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
Copy link
Member

yuyuqq commented Jun 5, 2021

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
Copy link
Author

@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 yuyuqq self-assigned this Jun 16, 2021
@yuyuqq yuyuqq added enhancement New feature or request good first issue Good for newcomers labels Jun 16, 2021
@yuyuqq
Copy link
Member

yuyuqq commented Jun 16, 2021

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants