Hi all, your friendly neighborhood navigator here.
Just wanted to announce that we’ve recently completed a migration from ROS 2 master builds over to ROS 2 rolling
for all new development. When @mkhansen and his team at Intel started Navigation2, there was no rolling
distribution. Heck, there weren’t even names to them yet, let alone binaries being released and our workflows were slow, painful, and disruptive to also trying to deploy robots. I can’t tell you how much time I spent trying to make master + bouncy + melodic play well on my work computers.
Over time, we’ve moved to the new tools provided to us and the binaries made available by OSRF to ease development, but still tied to master builds for our main developers. This allowed us to move fast with changes upstream and react to changes / fixes as they became available. However, this comes at a huge cost to outside developers that just want to contribute a patch for their system or get involved on a volunteer basis. Master builds could take up to 3 hours for your first time and there was no guarantees that the master
branch of Nav2 would build on any other released distributions.
With the advent of the Rolling distribution, it gave us another tool in our toolchest to consider. In using rolling
, we’re not longer able to have rapid responses to API changes and all of the most recent bug fixes. It also prevents us from more easily overlaying dependencies we needed to update to make Nav2 work during development. But it does give us the ability to on-board new contributors and developers in a matter of 30 minutes rather than 1-2 days. It also gives us the ability to leverage the increasingly stablized rclcpp API and react to changes in a time and place of our choosing rather than busting our CI and development workflows immediately. It also speeds up our CI pipeline considerably (thanks to @ruffsl ) for faster review and merge cycles.
So from this point further, the main development branch of Nav2 main
will be based on the Rolling distribution and all new contributions are expected to be in line with those as well. This should let a company using the project in Foxy easily install Rolling on the same computer and test their changes across multiple distributions without a major headache.
https://navigation.ros.org/build_instructions/index.html
If you have any concerns about this transition, feel free to comment below and we’ll try to accommodate as best we can. However, I think this is generally going to be a big quality of life improvement to developers and users alike.
Happy contributing,
Steve