This page lists potential projects that would greatly benefit the MoveIt project. This is by no means an exhaustive list, but is meant to serve as a discussion starting point for code sprints and other efforts. Please contact PickNik Consulting for further information or sponsorship opportunities.
TrajOpt is a motion planning framework from UC Berkeley for generating robot trajectories by local optimization. Integration of TrajOpt into the MoveIt framework would require API changes to how MoveIt stores and accesses information about the kinematic chain and changes to the MoveIt collision checking API to support integration with the Bullet collision checker for convex to convex contact checking.
Utilize low-level controller switching (position/velocity/force-torque) during execution of MoveIt plans. Improve the ROSControlInterface plugin. Documentation on how to combine the components.
MoveIt is not a perception library, but does come with support for using octomaps with point clouds. This functionality has not been well maintained and needs extensive improvements:
MoveIt has long lacked a good grasping library for generating candidate object grasps for manipulation. With the release of [MoveIt Grasps] (https://github.com/PickNikRobotics/moveit_grasps/), we are working to fill this gap. Although MoveIt Grasps is a big step up from the pick-and-place pipeline, it is far from perfect. Improvements to MoveIt grasps could include:
The default cartesian planner in MoveIt is naive and has enormous room for improvement. Improvements to the Cartesian planner could include:
MoveIt was designed to be highly plugin-based and originally supported 3 planning libraries. Today that number has shrunk to basically 1. There are many good alternative motion planning libraries that could be (re)added to MoveIt, including:
MoveIt supports storing Constraints, PlanningScenes and RobotStates in a database, termed “warehouse” within MoveIt. This interface was recently changed to support plugins, but currently there are no plugins available that compile/work with a standard linux distribution out of the box.
Currently, MoveIt supports the OMPL planning library via a C++ based binding system in the package
ompl_interface. This should be deprecated in favor of a plugin-based system, that eases configuration of different planners within OMPL. In effect, the plugin allows new planning algorithms derived from the abstract Planner API in OMPL to be loaded via a yaml file. It also allows users to easily create new planning configurations for existing planning algorithms in OMPL via such a yaml. Most of the work for this is already done and has been used extensively in ROS Indigo. This is a great project for someone who wants to better understand the connection between MoveIt And OMPL.
MoveIt currently only checks for collisions at discrete steps in a planned trajectory. This has the downside that if the discretization is too large, then potential collisions may be missed when planning in tight or constrained environments. This project involves using the flexible-collision-library (FCL) to add continuous collision checking to mitigate collisions in constrained spaces.
The goal is to provide a standard way for integrating mobile base into move group that typically handles arms. While there’s a non-standard way to incorporate holonomic drive that requires modifying your robot model (example), customization your robot package for such a common functionality is not ideal at all. We also extend to cover non-holonomic drive robots. This is an FAQ among MoveIt users.