Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pick_ik at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pick_ik at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pick_ik at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pick_ik at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pick_ik at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pick_ik at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pick_ik at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pick_ik at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.1.1 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | Inverse Kinematics solver for MoveIt |
| 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
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
bio1andbio2_memeticsolvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd,gd_r, andgd_csolvers) - 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 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
-
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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_ros | |
| moveit_resources_panda_moveit_config | |
| generate_parameter_library | |
| moveit_core | |
| pluginlib | |
| rclcpp | |
| rsl | |
| tf2_geometry_msgs | |
| tf2_kdl | |
| tl_expected |