frankaemika / libfranka

C++ library for Franka research robots
https://frankaemika.github.io
Apache License 2.0
223 stars 150 forks source link

Are there plans to add inverse kinematics to the model library? #24

Open Tomakko opened 5 years ago

Tomakko commented 5 years ago

Or can i get the inverse kinematics in any other way outside of ROS?

fwalch commented 5 years ago

There are no plans at the moment. You can e.g. use the library which is also used by ROS, orocos_kdl.

gavanderhoorn commented 5 years ago

You might want to consider trac_ik instead.

Also comes as a stand-alone version (ie: no ROS) and is 'better' than KDL in most cases.

fwalch commented 5 years ago

@gavanderhoorn Thanks for this suggestion!

Also comes as a stand-alone version (ie: no ROS)

It seems that even the trac_ik_lib has a lot of catkin dependencies. Am I missing something?

miguelprada commented 5 years ago

A small warning on trac_ik. It can certainly solve some IK requests where KDL would fail but it can also, on certain conditions, return solutions that require configuration changes with respect to the provided seed configuration. Just be careful of checking what it returns if your use case requires continuity in the joint configuration.

gavanderhoorn commented 5 years ago

Also comes as a stand-alone version (ie: no ROS)

It seems that even the trac_ik_lib has a lot of catkin dependencies. Am I missing something?

hm, either I'm misremembering, or something changed since I last looked at it.

gavanderhoorn commented 5 years ago

@miguelprada: did that also happen when you configured the Distance solve type?

Default is Speed and that can do what you describe. With Distance this has not happened for me (but I haven't run 1e9 queries, so this may be lucky sampling).

gavanderhoorn commented 5 years ago

@fwalch: just curious. Why do you guys not provide an FK solver for your robots (in the non-ROS context then of course)?

miguelprada commented 5 years ago

@miguelprada: did that also happen when you configured the Distance solve type?

Default is Speed and that can do what you describe. With Distance this has not happened for me (but I haven't run 1e9 queries, so this may be lucky sampling).

To be honest, I haven't played with it a lot myself either. A colleague, @asierfernandez, was trying to use it to improve the solver performance for a dense trajectory of cartesian end-effector poses, where we definitely do not want configuration changes between one sample and the next, and he had some issues with this. I'm not sure how this effort ended up.

gavanderhoorn commented 5 years ago

this is getting off-topic here, but: check the configuration, as I wrote, Speed is the default and gets used if you don't change anything. Configuration changes happen all the time. Distance should sort that out.

SaraUmut commented 3 years ago

You might want to consider trac_ik instead.

Also comes as a stand-alone version (ie: no ROS) and is 'better' than KDL in most cases.

@gavanderhoorn would you please share the link of the stand-alone trac_ik ? (all I found is the ROS one)