-
Notifications
You must be signed in to change notification settings - Fork 429
Check robot description validity on AdmittanceController and test for it #2009
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
base: master
Are you sure you want to change the base?
Conversation
christophfroehlich
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for taking this. I have some doubts if this is tested properly, see the comments
|
Thinking again, is there really a need to check this inside the controller? The controller manager will not start with a broken urdf, right @saikishor ? |
saikishor
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with @christophfroehlich that this is not needed as CM provides a valid one.
Can you explain to us, why did you have a need to do this?
|
see the linked issue, but this was before we passed the robot description from the cm to the controllers. sorry for not checking that earlier. @caio-freitas would you mind in reverting this and cleanup the tests as by my comments instead? |
| if (!get_node()->has_parameter("robot_description")) | ||
| { | ||
| get_node()->declare_parameter("robot_description", rclcpp::ParameterType::PARAMETER_STRING); | ||
| get_node()->set_parameter({"robot_description", robot_description_}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has no effect, see the failing test
2: [ RUN ] InvalidParameterDuringConfiguration/AdmittanceControllerTestParameterizedInvalidParameters.invalid_parameters/7
2: /workspaces/ros2_rolling_ws/src/ros2_controllers/admittance_controller/test/test_admittance_controller.cpp:73: Failure
2: Expected equality of these values:
2: SetUpController()
2: Which is: 1-byte object <00>
2: controller_interface::return_type::ERROR
2: Which is: 1-byte object <01>
Instead you have to get_parameter (to get it from the parameterized test suite) and override robot_description_ member variable, which will be used for controller_interface::ControllerInterfaceParams params in SetUpControllerCommon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've set the controller_->robot_description to the value passed to the parameter overrides before initializing the controller, since we don't have access to the overrides on TestableAdmittanceController::on_init(). Let me know if you agree with the approach.
Fix #713
test_admittance_controller.cpp.on_initontest_admittance_controller.hppto only override the robot description with the one defined in theros2_control_test_assetsif not already defined.ros2_control/hardware_interface/src/component_parser.cpp(here)