GSoC: Creating a default grasping library

From what I understand, PickNik won’t be mentoring GSoC students this year because they have their own interns coming in. Personally, I would applaud this effort, but I’m not sure I would be a helpful mentor on this topic, since I am not too deep in grasping.

If you are interested in manipulation however, there is a project I would be happy to mentor involving the planning scene and collision checking. There are a few directions the project can be extended in, so you could leave your mark on something that suits you. You can find the details below. The text will go on the OSRF wiki shortly, too.

Feel free to ping Bryce or me if it’s up your alley.


The following two GSoC projects focus on porting changes from Tesseract (Github), which has implemented some features that would be valuable additions to MoveIt. The projects are excellent opportunities for students to dive into and extend MoveIt, and making an important contribution without needing to do all the work from scratch.

1) Implement continuous collision checking and integrate Bullet library

  • List of prerequisities: ROS
  • Description of programming skills: C++
  • Difficulty level: Medium-high
  • List of potential mentors: Felix von Drigalski, Bryce Willey
  • Detailed Description: This project should add many useful and necessary features to MoveIt’s collision detection, including:
    • Continuous collision checking, to avoid collisions between discrete states
    • Optimizations to the collision checking process itself to improve performance (cache/scene reconstruction improvements, convex-convex collisions)
    • The ability to dynamically change large parts of the kinematics of the world (i.e. picking up a tray with many items should attach all of those items to the robot, not just the tray).
    • Integration with different collision checking libraries, such as Bullet
      Next to API changes, this includes writing tests and tutorials.

2) TrajOpt motion planner and optimization libraries

  • List of prerequisites: ROS, some motion planning background
  • Description of programming skills: C++
  • Difficulty level: Medium
  • List of potential mentors: Bryce Willey
  • Detailed Description: MoveIt was designed to be highly plugin-based and is able to support many different planing libraries, as seen with last year’s GSOC addition of STOMP and CHOMP. A next good candidate to be added to MoveIt is the TrajOpt planner. The changes made in the collision checking project (see above) will allow the TrajOpt planner to be added to MoveIt.
    • Assist with implementing features critical for TrajOpt, such as collision checking, including convex-convex collisions and continuous collision detection (see above)
    • Add TrajOpt as a library to be used in MoveIt
    • Add adapters that allow TrajOpt to post-process paths produced by other planners
    • Write Moveit tutorials and tests for TrajOpt motion planning