-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Implemented new getPositionIK() from Kinematics Base #239
base: indigo-devel
Are you sure you want to change the base?
Implemented new getPositionIK() from Kinematics Base #239
Conversation
…nd added an appropriate helper function.
@Jmeyer1292, thanks for the contribution. Sorry for taking so long to review. @davetcoleman have you had a chance to use this? |
@shaun-edwards This is not what I prepared for Dave, but rather what part of my testing for the IKFast Interface I added to Descartes a while back. For work akin to dave's to be generally usable, we'll need something like this and #248 (and maybe more). I took the easy route and fixed things in our special plugin. |
@Jmeyer1292: why would #248 be needed for this? |
@gavanderhoorn I meant for @davetcoleman and his work on hilgendorf. Two UR robot arms and all. |
Ah, right. I still feel that is more of a MoveIt problem than something we need to work-around on our end though. But see #248. |
@gavanderhoorn It's mostly a plugin problem. Most other pugins (PR2, KDL) use the method of using the joint names passed in via the group to determine where the prefix is to be added and to determine what joints are in the kin chain. I got the idea for the fix by looking at how the PR2 grabs joints from its plugin. Fun fact: as long as you have 7 joints in your kin chain the PR2 plugin will work. It wont be optimized unless its the PR2 arm, but it will load the plugin. That's kinda the scenario we're facing now. |
@TheDash wrote:
yes, and that works for those plugins because KDL (and IKFast and You simply cannot (re-)use IKFast or |
Which is why we should also put a check in the code to see if it has the needed joints for the UR arms, but to ignore prefixes. That gets the best of both worlds. I will continue that discussion on #248 as it is kinda side tracking this thread |
@shaun-edwards no I have not used this. I'm using the ur5_robot_model included in roscon_2015 demo. This looks like it would be a nice cleanup though |
If these changes are not strictly needed in Alternatively, we could create a PR for the changes in #358 that targets |
See the new overload for
getPositionIK
for documentation on the new function.We over in the Descartes project require "all" of the solutions that an analytical inverse kinematics routine can return (not just the closest to a seed). We got a few pull requests in that add such a function to moveit's
KinematicsBase
. Here I present an implementation of this function for this special model.There's a little more duplication with existing code than I like, but I moved out some of the most obviously separable logic to a new helper function.
Let me know what you think; I'm eager to make the Univeral Robots trivially inter-operable with Descartes.