-
Notifications
You must be signed in to change notification settings - Fork 334
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
Effort group position controller #198
base: master
Are you sure you want to change the base?
Conversation
Any updates on this sire? |
I would be interested in trying to build on @Karsten1987's work this if this is in the backlog, as I'd be interested in using this controller for my own work. I'm curious what the state of joint_limits_interface is though, as it seems like adding joint type and limit considerations was the only TODO left? I haven't seen any other controllers using it yet in ROS2, so perhaps it is not quite ready yet? Thanks! |
we are having it currently in use, but it's not strongly tested and I've left it on "draft mode" until I have to angles wraparound sorted out. See #172 @shonigmann please by all means go ahead and work on top of this PR. Happy to review stuff once you have some contribution. |
2d983a9
to
a48751e
Compare
hi @Karsten1987 - thanks for the update. I am happy to try to contribute, but I think I need to get a better grasp of all the moving parts to determine how to best proceed. JointLimits seems like the logical place to start to track and apply joint limits and to determine whether angle_wraparound is needed. But it also looks like a refactor is underway with how and where JointLimits are handled (ros-controls/ros2_control#441). Would it be worth basing off destogl:joint_limit_interface? As far as handling angle wraparound goes, it looks like in ROS1, this function was included in the Joint Trajectory Controller. Does it make sense for this function to be controller specific? Are there any plans to have a separate header for angle wraparound, as I would imagine it would be an important consideration for any position-tracking controller? Or should I just include a wraparound function in this controller, and worry about where it lives at a later date? Thanks in advance for your guidance - I'm definitely still familiarizing myself with the current state of ros2_control and ros2_controllers |
It makes also sense to have a separate header for angle wraparound. Especially because it is still not 100% clear how to sync controllers and joint limits. How to include those into control loop and at which place exactly. |
Signed-off-by: Karsten Knese <[email protected]>
a48751e
to
da1ed8c
Compare
as an update, i've implemented and lightly tested a position-PID and velocity-PID controller with basic limit checking and angle wraparound (on my fork, here). Caveat being that I used a modified version of the potentially obsolete joint_limits_interface package, removing the There's definitely room for discussion on how to best implement limits with a PID controller, how to manage limit overrides (from URDF vs ROS Param), etc, but maybe its still useful as a first wrong answer. In any case, I'm open to feedback and happy to keep building on this. |
@shonigmann in ros-controls/ros2_control#462 we propose the updated structure to read joint limits from yaml file and using it in controllers. Do you find this useful? (Let's continue the discussion on ros-controls/ros2_control#462.) |
This pull request is in conflict. Could you fix it @Karsten1987? |
This pull request is in conflict. Could you fix it @Karsten1987? |
1 similar comment
This pull request is in conflict. Could you fix it @Karsten1987? |
* Bump ros2ci versions * set target ros2 distro
This pull request is in conflict. Could you fix it @Karsten1987? |
No description provided.