-
Notifications
You must be signed in to change notification settings - Fork 25
Description
Hi, I recently experimented with some inverse kinematics solvers other than KDL/PickIK/BioIK and stumbled upon RelaxedIK and its derivatives. Because it is implemented in Rust and has a very poor ROS wrapper, I reimplemented the basic algorithm in C++ as a MoveIt plugin. The results are very good and, at least on the examples I already tested, outperform all three solvers mentioned above.
Would you be interested in including this solver as a third mode next to the global and local modes?
Example benchmarking
This quantitative example is with the UR10 robot on a small table, IK is calculated for all red arrows on the table, the robot must not collide with the table.


Success rates (ur10 on small_table):
RelaxedIK: 1.0
BioIK: 1.0
PickIK: 0.88
KDL: 1.0
Solve times (ms) (ur10 on small_table):
RelaxedIK: 2.06 ms ± 1.37 ms
BioIK: 3.31 ms ± 1.91 ms
PickIK: 24.23 ms ± 20.29 ms
KDL: 8.19 ms ± 6.20 ms
Note that PickIK with default parameters only managed to solve 88 of 100 points within the time frame of one second.