Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
jazzy

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
kilted

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
rolling

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
iron

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

pick_ik package from pick_ik repo

pick_ik

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.1.1
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/pick_ik.git
VCS Type git
VCS Version main
Last Updated 2025-01-14
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Inverse Kinematics solver for MoveIt

Additional Links

No additional links.

Maintainers

  • Tyler Weaver

Authors

  • Tyler Weaver

pick_ik

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

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:

CHANGELOG

Changelog for package pick_ik

1.1.1 (2024-11-30)

  • Initialize with the best seed instead of initial seed at population wipeout (#77)
  • Fix timeout calculation if solution callback fails (#73)
  • Remove incorrect override of tip_frames (#68)
  • Contributors: Amal Nanavati, Sebastian Castro, Timon Engelke

1.1.0 (2023-12-13)

  • Support continuous (unbounded) joints properly (#59)
  • Run elite gradient descent in separate threads (#61)
  • Contributors: Sebastian Castro

1.0.2 (2023-07-25)

  • New options to control solution quality and performance
    • Option to rerun optimization until valid solution or timeout (#53)
    • Option to keep optimizing after a valid solution was found (#46)
    • Approximate solution cost threshold (#51) and joint jump threshold parameters (#42)
    • Position scale parameter (#47)
  • Fix ordering of joint limits when loading robot model (#54)

  • Fix use of solution callback (#48)

  • Remove unnecessary preprocessor macro (#40)

  • Contributors: Marc Bestmann, Sebastian Castro, Erik Holum

1.0.1 (2023-03-28)

  • Set Werror through CMake presets (#39)

  • Replace lower_bounds with gt_eq (#37)

  • Upgrade with new pkgs to fix issue with ROS

  • Target include subdirectory

  • Update Catch2 version to 3.3.0

  • Fix overriding of package

  • Fix orientation calculation in cost function and frame tests (#31)
    • Fix orientation calculation
    • Update plugin return values
    • Remove redundant (and incorrect) joints bounds check
    • Use Eigen angular distance calculation
  • Small grammar fixes (#28)

  • Contributors: Sebastian Castro, Stephanie Eng, Tyler Weaver

1.0.0 (2022-12-08)

  • pick_ik inverse kinematics plugin compatible with MoveIt 2
  • Numeric gradient descent (local) solver
  • Memetic algorithm (global solver), configurable for single or multi-threading
  • Basic goal functions: joint centering, avoid joint limits, minimal joint displacement
  • Support for position-only IK and approximate solutions
  • Dynamic parameter switching at runtime using generate_parameter_library
  • Docker devcontainer workflow for VSCode
  • Contributors: Chris Thrasher, Sebastian Castro, Tyler Weaver

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged pick_ik at Robotics Stack Exchange