Is there a way to set the twist tolerance when using trac_ik_kinematics_plugin?

Issue #22 new
Former user created an issue

Hi, I want to be able to set the tolerance and use the moveit's cartesian path planning function. Is it possible to do that or I have to call the CartToJnt function?

Comments (11)

  1. Patrick Beeson Account Deactivated

    No, MoveIt's functionality is largely separate from TRAC-IK right now. I do however have my own Cartesian path planning class that (in my opinion) works much better than MoveIt!'s. I plan to push that code to an indigo-experimental branch soon -- maybe sooner than I had hoped (not very well commented, but thoroughly tested in a larger system).

  2. Patrick Beeson Account Deactivated

    Let me get through Issue #24 this week, which might require new branches or repo forking/renaming, and I'll try to push out my (self-)collision free Cartesian trajectory stuff into a public experimental branch afterwards.

  3. John Yang

    Just wondering if this is still in the pipeline or it might take a bit more time to upload this new version of Cartesian Path Planner function? Thanks.

  4. Patrick Beeson Account Deactivated

    Sorry on being slow to get this out. I have several deadlines and have been traveling a lot. Maybe late next week I can try to find some time to at least add copyright licenses and some headers and push this to an experimental branch in the public repo.

  5. Dinesh Bolkensteyn

    There seems to be 2 separate things in this issue 1. allow the twist tolerance to be set in the Trac IK MoveIt plugin 2. publish a new improved cartesian path planner

    Regarding #1, if my understanding is correct, then the tolerance is currently at 1e-5 because that's the default value of epsilon, as the twist is set to zero: https://bitbucket.org/traclabs/trac_ik/src/944ca488d2b86e357def2b5c5d82db8bcc62ab4a/trac_ik_kinematics_plugin/src/trac_ik_kinematics_plugin.cpp?at=master&fileviewer=file-view-default#trac_ik_kinematics_plugin.cpp-489

    @pbeeson Did you have anything in mind to make it configurable?

    What about trying to fetch the twist value from ROS' parameter server? I guess the main issue is that there isn't a standard way [i.e. an existing parameter] in MoveIt for this purpose?

  6. Patrick Beeson Account Deactivated

    @cyan034 Sorry. It'll be at least anther week. This is high on my priority list, but something new always ends up on top.

    @dbolkensteyn You are correct that there are 2 issues here. You are not 100% correct on item 1. The is an error tolerance of 1e-5, but that's a single convergence error for all 6 DOFs. TRAC-IK has the ability to set tolerances for each DOF independently. While I could extend the yaml for the MoveIt! plugin to take in 6 values here, I'm not confident in the results, because MoveIt! assumes "perfect" IK solutions (to within the 1e-5), and handles larger "tolerances" at a higher level. There are other higher-level secondary conditions -- constraints (don't let joints move more than a certain amount, etc.), obstacle avoidance, etc. that are all dependent on the final IK solution as well. I guess I could extend the plugin to handle 6 error values and let the users out there tell me if it works well or not. @cyan034 would that be useful to you?

    Item 2 is the the real hold up here. I have a Cartsian trajectory generator that works great, but is completely separate from MoveIt!. I was hoping to push that out soon. A third question is whether I should wrap my Cartesian trajectory generation into a MoveIt! Capability to be used within MoveIt!. I'd like to do that eventually, but given that I've largely divorced myself from MoveIt! these days, that may be a long term prospect.

  7. John Yang

    Yes I think 6 different values are what I am after. It will be the best if it's configurable from outside. Currently I just manually added the twist values in your source code for testing purpose.

    I'm ok if the Cartesian Trajectory generator is not integrated into MoveIt. Currently I extract that part of code out of MoveIt source code and run it as a separate package anyways. I found it more efficient this way than using the MoveGroup class and I can modify it slightly to fit my application.

  8. Patrick Beeson Account Deactivated

    Public release of v2.0 of TRAC-IK (which includes planning, Cartesian trajectory generation, and collision detection) is on hold while licensing issues are worked out. This is out of my control.

    Perhaps the simplest way to move forward is for you to add a service call to the plugin that allows you to change the bounds. IF you did this, I could merge a working Pull Request into v1.x.

  9. Patrick Beeson Account Deactivated

    Probably not in 2018. If/when we can release publicly, it will basically be a MoveIt! replacement that handles multiple limbs, obstacle free planning, and task conditioning.

  10. Log in to comment