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

Feature Request: Support for ROS2 #143

Open
d-walsh opened this issue Jan 15, 2021 · 5 comments
Open

Feature Request: Support for ROS2 #143

d-walsh opened this issue Jan 15, 2021 · 5 comments

Comments

@d-walsh
Copy link
Contributor

d-walsh commented Jan 15, 2021

It would be great to if rosmon could work with ROS2.

@xqms
Copy link
Owner

xqms commented Jan 15, 2021

Yes that would be great indeed. Since I'm not using ROS2 (yet), I don't have any motivation to work on it, though. Here are some thoughts that might be relevant to someone looking into this:

  • The rosmon project started in a pretty special situation: My team for the DARPA Robotics Challenge needed a way to supervise large amounts of nodes, restart nodes dynamically, and be sure the monitoring system would not crash. Since no one of us was very proficient in Python (and I still think it's a bad idea to write mission-critical stuff in dynamic languages), this led to a complete rewrite of the roslaunch logic in C++. While this had unexpected benefits (I learned a lot about the hidden intricacies and bugs in the roslaunch XML parser), I think that bolting a python-based ncurses UI onto roslaunch would also have been a solution, and this may very well be a better/easier solution for ROS2.
  • It seems that the launch system in ROS2 is even more python-based than in ROS1 - capable of generating node constellations dynamically. I have no idea how well an alternative launcher like rosmon can be adapted to work with it. If the python part can be used in a way that spits out command lines for processes and rosmon can then take over the monitoring part, it could work.
  • Apart from the launch file parser, which would need to be adapted to whatever ROS2 uses, the ROS interface (topics/services) of rosmon would also need to be ported.
  • Because of the tight integration with roscpp, most parts of rosmon would need to be touched for a port of ROS2. So it might be better to fork (or completely rewrite) rosmon for ROS2.

I'm going to leave this issue open to collect information and interested users as well as contributors. As stated above, I won't invest my time into ROS2 (yet).

@buckleytoby
Copy link

@xqms any updates on this thread?

@xqms
Copy link
Owner

xqms commented May 1, 2023

Nothing has changed. I'm not developing on ROS2 (yet) so I have no motivation myself to do something. Contributors are welcome, though!

@gibsonhu123
Copy link

I really need this :( , I refused to migrate to ros2 until rosmon works. Maybe somebody just use ai to do the migration O.o

@Dhagash4
Copy link

@xqms Thanks for an amazing open source project in ROS1. As I am predominantly using ROS2 would like to have a similar system for monitoring nodes launched in ROS2 as well, would be great contribution.

What I think would be amazing is to monitor all the nodes visible via your DDS and show whether they are active/inactive with nice colors as seen in rosmon and some statistics like CPU/GPU usage. I am willing to contribute to a new branch starting with something simple as this, and then we can see where it goes! However, I will need some guidance and pointers on whether this is feasible and in general discussion about this feature! Let me know what are your thoughts on it, Have a nice week!

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

No branches or pull requests

5 participants