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 | 2024-11-30 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
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
bio1
andbio2_memetic
solvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd
,gd_r
, andgd_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 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
Wiki Tutorials
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
Checkout URI | https://github.com/PickNikRobotics/pick_ik.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-11-30 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
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
bio1
andbio2_memetic
solvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd
,gd_r
, andgd_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 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
Wiki Tutorials
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
Checkout URI | https://github.com/PickNikRobotics/pick_ik.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-11-30 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
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
bio1
andbio2_memetic
solvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd
,gd_r
, andgd_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 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
Wiki Tutorials
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
Checkout URI | https://github.com/PickNikRobotics/pick_ik.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-11-30 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
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
bio1
andbio2_memetic
solvers) - Reimplementation of the numeric gradient descent solvers (equivalent to
gd
,gd_r
, andgd_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 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
Wiki Tutorials
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 |