-
Couldn't load subscription status.
- Fork 300
Add effort command interface to hardware interface (backport #1411) #1528
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: humble
Are you sure you want to change the base?
Conversation
|
Cherry-pick of c1cb7f2 has failed: To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally |
* Add effort command interface to hardware interface * Add documentation for hardware interface including effort control mode * Add effort controller to controller switch test * Ensure backwards compatibility This ensures backwards compatibility in multiple ways: - When using this with a description not containing the effort interface, it will simply not be exported. Therefore, when trying to start an effort controller that will not work, since the interfaces aren't available. - When using this with a robot software version not supporting torque control this will reject activating effort-controllers. (cherry picked from commit c1cb7f2) # Conflicts: # ur_robot_driver/doc/index.rst
e8f652a to
5255ff9
Compare
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.
The controller requires two published messages before it reacts, is that intentional?
Otherwise its good.
| })) { | ||
| if ((version_info_.major == 5 && version_info_.minor < 23) || | ||
| (version_info_.major == 10 && version_info_.minor < 10) || version_info_.major < 5) { | ||
| RCLCPP_ERROR(get_logger(), "Requested to use effort interface on a robot version that doesn't support it. Torque " |
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.
| RCLCPP_ERROR(get_logger(), "Requested to use effort interface on a robot version that doesn't support it. Torque " | |
| RCLCPP_ERROR(rclcpp::get_logger("URPositionHardwareInterface"), "Requested to use effort interface on a robot version that doesn't support it. Torque " |
This is just a proof of concept to make the robot work. This still requires some work.
Requires UniversalRobots/Universal_Robots_ROS2_Description#302 to effectively work.
Update
With 9e98ec2 this should be compatible with
With those, the feature added from this PR will effectively be useless / not available with the correct user feedback where necessary. For example, when trying to activate an effort controller with a robot running 5.22.0:
ToDo's:
Test in simulation(torque control doesn't work with URSim)Write tests(torque control doesn't work with URSim -- we cannot test much)This is an automatic backport of pull request #1411 done by [Mergify](https://mergify.com).