-
Notifications
You must be signed in to change notification settings - Fork 304
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
How to reconfigure controller #1033
Comments
As there weren't any answers yet I guess this functionality is not implemented yet? |
Hi @firesurfer, you have two options here. Use controller lifecycle to again configure the controller, or you can use dynamic reconfigure. You should be able to set controller state via CLI, either using |
Hi @destogl sorry for my really late answer. For some reason I sometimes do not get a notification email from github. I currently worked around the issue by simply having multiple controllers for all configurations that I need. I recently revisited that part of the setup and I still think it is a very ugly solution. As it will be unlikely that the cartesian compliance controllers will be changed soon I come back to this issue. So to recap the initial issue: The cartesian compliance controller setup their kinematic chains in the As far as I can see there is no way currently of having the controller run |
Is it feasible to do that in
|
That is basically what I implemented in: fzi-forschungszentrum-informatik/cartesian_controllers#129 Unfortunately this introduces some rather heavy load in the Nevertheless I think it would be a great addition to ros2control if we were able to rerun on_configure in a controller!. |
Hello! Right now, the only way to configure a controller is by deactivating the controller and calling again the configure_controller service ros2_control/controller_manager/src/controller_manager.cpp Lines 735 to 750 in c4affe4
(or)
However, @destogl and @bailaC are working on a new service called cleanup_controller or unconfigure_controller, where you can unconfigure the controller and configure it again through services. This will make it upstream soon |
That sounds good. This is the problem with unloading the controller in this case and reloading it again because in this case the node is destroyed and on reload populated with the parameters from the |
I'm not sure about this part, please try it out and let us know. It would be really helpful Thank you |
So I just tested it and it seems to be successful (apart from the fact that the cartesian controller checks if it was already configured and then returns immediately - but this is another problem) What I did was: a) Load one one of the cartesian controllers |
@firesurfer Thanks good to know about this |
Would be nice if this call could be integrated in the cli tooling. |
Is your feature request related to a problem? Please describe.
I would like to reconfigure controller which already has been active at some point in order to change a parameter which is read in the on_configure method of the controller.
In particular I want to change the
compliance_ref_link
of the thecartesian_compliance_controller
to another link:https://github.com/fzi-forschungszentrum-informatik/cartesian_controllers/blob/752a6a928f6584597ea4b8bace047ec7fdc2314d/cartesian_compliance_controller/src/cartesian_compliance_controller.cpp#L97
Describe the solution you'd like
Allow setting controller state to configured via cli.
Describe alternatives you've considered
Having a separate controller per ref_link. But this becomes quickly quite ugly when having multiple robot arms with multiple tools which have to be compliant at some point.
The text was updated successfully, but these errors were encountered: