Skip to content

Repository files navigation

pick_ik

pick_ik is an inverse kinematics (IK) solver compatible with MoveIt 2.

Important

pick_ik is deprecated by PickNik. Its performance did not meet our requirements, so PickNik no longer uses the solver or plans further feature development. We will provide only basic maintenance for existing users.

We are looking to transfer ownership to the open source community. If you are interested in owning and maintaining pick_ik, please contact us by opening an issue.

The solver is a reimplementation of bio_ik, which combines:

  • A local optimizer which solves inverse kinematics via gradient descent
  • A global optimizer based on evolutionary algorithms

Critically, pick_ik allows you to specify custom cost functions as discussed in this paper, so you can prioritize additional objectives than simply solving inverse kinematics at a specific frame. For example, you can minimize joint displacement from the initial guess, enforce that joints are close to a particular pose, or even pass custom cost functions to the plugin.

If you are familiar with bio_ik, the functionality in this package includes:

  • Reimplementation of the memetic solver (equivalent to bio1 and bio2_memetic solvers)
  • Reimplementation of the numeric gradient descent solvers (equivalent to gd, gd_r, and gd_c solvers)
  • Fully configurable number of threads if using the global solver
  • Cost functions on joint displacement, joint centering, and avoiding joint limits

For more details on the implementation, take a look at the paper or the full thesis.


Getting Started

To get started using pick_ik, refer to the following README files:

About

Inverse Kinematics solver for MoveIt

Resources

Stars

98 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages