Skip to content

Add consistent transitions for controllers in rqt_controller_manager #2163

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

soham2560
Copy link
Contributor

@soham2560 soham2560 commented Apr 3, 2025

Brief

In this PR

How was this tested?

  • Launch ros2_control_demo_example_14 with
    ros2 launch ros2_control_demo_example_14 rrbot_modular_actuators_without_feedback_sensors_for_position_feedback.launch.py
  • Launch rqt_controller_manager with
    ros2 run rqt_controller_manager rqt_controller_manager

Current Logic

  • active 🟢
    • 🔵 deactivate (inactive)
    • ⚫ deactivate and unload (unloaded)
  • inactive 🔵
    • 🟢 activate (active)
    • 🟡 cleanup (unconfigured)
    • ⚫ unload (unloaded)
  • unconfigured 🟡
    • 🟢 configure and activate (active)
    • 🔵 configure (inactive)
    • ⚫ unload (unloaded)
  • unloaded
    • 🟡 load (unconfigured)

@soham2560
Copy link
Contributor Author

let me know how to proceed with this

action_activate = menu.addAction(self._icons["active"], "Activate")
action_cleanup = menu.addAction(self._icons["unconfigured"], "Cleanup")
action_activate = menu.addAction(self._icons["active"], "Activate (active)")
action_cleanup = menu.addAction(self._icons["unconfigured"], "Cleanup (unconfigured)")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
action_cleanup = menu.addAction(self._icons["unconfigured"], "Cleanup (unconfigured)")
action_cleanup = menu.addAction(self._icons["unconfigured"], "Unload and load (unconfigured)")

As I've mentioned in the issue, I don't have a strong opinion on this "Unload and load" or "cleanup", whether to keep it or remove it.
If @christophebedard are ok with it, fine for me

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not of a too strong opinion on it atm either, I think getting it is not of extreme importance to the issue in question and we can add it later, I'll go for whatever @christophfroehlich is ok with as well

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use the technically correct version "Unload and load"

@christophfroehlich
Copy link
Contributor

I saw it, but don't have much capacity right now, sorry! We are preparing for the kilted release and have to triage things.

@soham2560
Copy link
Contributor Author

@christophfroehlich no issues! best of luck for the release! we can take care of this later

Copy link
Contributor

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some RFCs..

offtopic: @soham2560 you can also help a lot here to do some reviews on open PRs :) And do you want to pickup #759 next? (starting from the stale existing PR)

@@ -258,23 +258,20 @@ def _on_ctrl_menu(self, pos):
# TODO: use cleanup service once available
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# TODO: use cleanup service once available
# TODO: use cleanup service once available
# https://github.com/ros-controls/ros2_control/issues/759

action_activate = menu.addAction(self._icons["active"], "Activate")
action_cleanup = menu.addAction(self._icons["unconfigured"], "Cleanup")
action_activate = menu.addAction(self._icons["active"], "Activate (active)")
action_cleanup = menu.addAction(self._icons["unconfigured"], "Cleanup (unconfigured)")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use the technically correct version "Unload and load"

elif ctrl.state == "unconfigured":
action_configure = menu.addAction(self._icons["inactive"], "Configure")
action_spawn = menu.addAction(self._icons["active"], "Configure and Activate")
action_spawn = menu.addAction(self._icons["active"], "Configure and Activate (active)")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we have everywhere only the direct options, why add this multi-hop here?

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.

Add consistent transitions for controllers in rqt_controller_manager
3 participants