I think part of MoveIt’s complexity is caused by these two (conflicting?) goals:
- “An awesome C++ library first”
- Strong focus on GUI, Python interface, “out of the box solution”, …
Although an awesome C++ library can have an awesome Python interface I think!
When focussing on the first goal, I think these things could help MoveIt to implement the state of the art in motion planning (if that is a goal):
- Automatic differentiation support for kinematic expressions. This is especially useful for optimization-based planners.
- Scene graph support (in combination with making it easier to check collision for individual links in this graph).
- Cleanup inverse kinematics interface (see this talks by Robert Haschke).
But this can also be interpreted as just my personal wishlist
Edit
One final thought. If we can think outside the box, why not use a C++ alternative such as rust. I’ve heard good things about it, but I suspect MoveIt has important external C++ dependencies such as OMPL that would make a switch very hard.