An Open Letter to the MoveIt! Community
8 Nov 2018
Dear MoveIt Community,
I’m writing to make some changes to the direction of MoveIt! - let’s shake things up, try new things, and be less conservative in making improvements. I’m doing this because I really care about the role of open source robotics in the years to come. I envision a future where everyone has access to the economic prosperity of robotic manipulators.
A few weeks ago I attended an open source conference where I led a discussion session I titled “Stability vs Growth: Breaking API”. I presented to the audience of diverse projects a problem I believe we’ve been struggling with in our ROS and MoveIt! community: stagnation and irrelevance. After speaking with many attendees, I came away with the belief that our now 7 year old project is stuck, making only minor incremental progress since Willow Garage shuttered its doors in 2013. Meanwhile, the robotics world has raced forward.
There are many reasons I believe MoveIt! is facing this innovator’s dilemma, and I want to outline some of them here with the public declaration that we at PickNik intend to change this, with your help. We see an exciting future for MoveIt!, and we believe we can transform it from a stagnant open source project, to a globally recognized platform that enables organizations of all sizes to leverage robotics for their applications. Before I outline the solution, I want to clearly state some major parts of the problem:
Lack of Major Versions
MoveIt! has not yet officially been declared 1.0, yet we maintainers typically take the stance that API should never be broken, even in new distro releases. API must be broken for us to make the progress necessary for major new features like constraint-based planning, underconstrained Cartesian planning, and tighter integration with low level controllers. A recent SwRI effort came to the same conclusion, stating that "Early on in the process several limitations were found in both MoveIt!’s Kinematics and Collision environment… requiring significant API changes across multiple repositories" . By not incrementing major release versions, I believe we are severely limiting our ability to innovate.
Lack of Master Branch
The MoveIt! policy has always been to run development out of the latest ROS distro *-devel branch, which I usually create right after OSRF announces the ROS distro as "released". This creates the conflict that any user desiring to use the most recent release of ROS will be getting a non-stable version of MoveIt!, or conversely, that the developers are always handcuffed from making meaningful changes to MoveIt!. I believe we need to instead develop out of a proper "master" branch, which is occasionally forked for each official ROS distro.
Under-Optimizing for Contributors
In the past, I have maintained the assumption, based on general community consent, that requiring any migration effort by users of MoveIt! due to breaking changes between versions should be avoided at all costs. I’ve now come to the conclusion that reasons such as “our company doesn’t have time to deal with the hassles of upgrading” should not be used to discourage open source contributors from improving MoveIt!. Companies building a product have more resources (or promise of them) than volunteer contributors. In order to innovate, I ask we shift our priorities away from stability and more towards growth.
I believe we can take MoveIt! to the next level of motion planning capabilities by creating a more frictionless experience for contributors to make necessary and important changes to MoveIt!. This can be accomplished through following well-established software development practices such as incrementing major versions of software and working from an actual master branch. The various pain points that will arise in this process can be mitigated via clear communication (i.e. announcements on Discourse) and clear documentation (i.e. keeping the migration guide up to date).
PickNik is committed to growing MoveIt!: for example we’ve put effort into new tutorials, a new website, and hosting 3 GSoC students this past summer . We’ve set quarterly goals that everyone on our team review MoveIt! pull requests on a weekly basis, and that we find avenues of funding MoveIt! 2.0 (MoveIt! running on ROS 2). We will be working with the other MoveIt! maintainers and the community in addressing the other issues outlined above.
I ask the community to join us in reviewing pull requests, adding new capabilities, and in being understanding when APIs change in future major versions of MoveIt!. If you disagree with my conclusions in this letter please voice them here, and let’s see if we can have a healthy discussion to find the best outcome for everyone.
Let’s continue to grow this awesome open source robotic planning framework!