Skip to content

Instantly share code, notes, and snippets.

@Robotawi
Last active August 28, 2023 11:01
Show Gist options
  • Save Robotawi/7e2150801977751aebf4eb442c2d1538 to your computer and use it in GitHub Desktop.
Save Robotawi/7e2150801977751aebf4eb442c2d1538 to your computer and use it in GitHub Desktop.
GSoC: Improvements to pick_ik Solver

GSoC 2023 Project Summary: pick_ik - Inverse Kinematics Solver for MoveIt

Project Overview

The objective of my GSoC 2023 project was to enhance the capabilities of the pick_ik inverse kinematics (IK) solver for MoveIt. My work aimed to improve the solver's documentation, provide benchmarks for performance evaluation, and extend the solver's feature set.

Accomplishments

Official pick_ik Tutorial I added an official tutorial for pick_ik to the MoveIt 2 Tutorials repository. This tutorial serves as a guide for users to effectively utilize pick_ik for their IK-solving needs. A pre-configured demo was added in the tutorial to facilitate experimenting with the new pick_ik solver.

Here is the tutorial's pull request and its link on the official MoveIt Tutorials.

Ongoing Work

Implementing Official Benchmarks I have developed a benchmarking package that facilitates the comparison of different IK solvers compatible with MoveIt 2. The package utilizes the kinematics.yaml configuration file commonly used with MoveIt. Users can configure the number of samples and select the robot for benchmarking purposes. The benchmarking process includes a comprehensive evaluation of solvers based on their solve times, success rates, and errors in both cartesian space and joint space. The collected data is then visualized through plots, offering an intuitive way to compare solver performance.

The benchmarking package is currently in the documentation and testing phase, ensuring accuracy and reliability of the results. This package aims to provide valuable insights into the strengths and weaknesses of different solvers, aiding users in making informed choices for IK solving in their applications.

Pending Tasks

Additional Cost function To establish and exceed features of BioIK, I am planning to implement additional cost functions. These functions will include gaze objectives, collision checking, and more, enhancing the capabilities of pick_ik.

Conclusion

This GSoC project has been a valuable opportunity to contribute to the development of pick_ik, a solver that represents a significant addition in the MoveIt ecosystem. With the completion of the official tutorial and ongoing work on benchmarks, I am committed to continue the development of the remaining cost functions to handle practical problems and improve the performance of this IK solver.

Thank you to my mentors, the MoveIt community, and GSoC for this enriching experience. I look forward to the final stages of my project and future contributions to MoveIt and robotics open-source software.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment