-
Notifications
You must be signed in to change notification settings - Fork 14
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
Watch joint configuration in CMC thread #161
Comments
Marking as high priority per #164. |
This is caused because if the joint reachs its limit, it stops and doesn't continue but the rest of joints that have not reached their limit continue their movement, producing a deviation of the trajectory. We need to stop the movement of all kinematic chain when a joint reaches its limit (In reference to roboticslab-uc3m/teo-bimanipulation#3 ) |
I've committed ba17795, but this is a naive approach. It won't work on simulation since I'm checking against the limits fetched from the simulator itself, that is, the A solution I can come up with for this is to apply a small epsilon that would make the joint limit check report an out-of-range value a bit earlier that it's actually supposed to. |
Here it is: 6544a92. The problem is that I couldn't perform any CMC motion from the simulated AMOR's initial pose with |
I guess it all boils down to roboticslab-uc3m/teo-main#15 and should end up somewhere in https://github.com/roboticslab-uc3m/developer-manual but sure! If it works, go for it!! |
OK, done at d2afc5e. I'm therefore removing the priority: high label as there is more to be done here and the urgency has been removed. A word of caution: once having reached a limit, the cartesian controller will not be able to move the joint out of it. Instead, connect to the RPC port and change the robot position via |
There should be a way to regain control of the robot once joint limits are hit. |
Done at 406ea26. |
|
Probably, I also considered accelerations having https://github.com/roboticslab-uc3m/kinematics-dynamics/issues/163 in mind. Although this is not the common use case, it merits its own case study and further analysis. |
Expanding on #159, status checks could be performed on each thread step to make sure that no joints are out of limits,
nor maximum permisible speeds/accelerations are exceeded. I'd put them before the actual handler (e.g.handleMovl
) is entered:kinematics-dynamics/libraries/YarpPlugins/BasicCartesianControl/RateThreadImpl.cpp
Lines 11 to 33 in c187abd
Motivation: starting from point A, I can issue a
movl
command to reach point B, but joint limits are hit at some point. The controller should either stop and throw an error, or at least warn the user. Now, it just goes on and the final trajectory might be kinda curvy with no warn (sometimes even not noticeable at all, or we notice it too late so that it cannot be stopped nor further corrections be made).Partially (regarding speeds and accelerations) blocked by roboticslab-uc3m/yarp-devices#189.Edit: see #161 (comment).
The text was updated successfully, but these errors were encountered: