Ask Your Question

A confusion about different distribution support in ROS2

asked 2020-09-24 02:26:50 -0500

Phymin gravatar image


After I read through the navigation2 document in navigation2 document, I find that the features and source code between different distribution has much difference. For example, navigation2 eloquent add serveral new packages and plugins and has a change on architectural design compared to dashing.

And from my test, rviz2 in ROS2 eloquent support message filters now, but ROS2 dashing still don't support this feature.

My confusion here is from the ROS2 index website, the ROS2 dashing will be supported until May 2021, but ROS2 eloquent will end its life on November 2020, why the new features or functions is not added on the ROS2 LTS distribution? Though ROS2 foxy LTS is released, but because the support packages is still limited and it's running on Ubuntu20.04 which is still not supported for our robot.

Hope someone could ease my confusion, Thanks.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-09-24 10:48:42 -0500

Dirk Thomas gravatar image

TL;DR Supported for a ROS distribution means receiving security and bug fixes - it doesn't imply that new feature developed after the release will be added to it.

The main goal of a released ROS distribution (similar to any Linux distribution) is stability. Once a ROS distribution has been released a user can expect that their code using that distro continues to work without changes.

Since any change to software poses the risk of regressions naturally in order to achieve stability changes should be minimized. If issues are identified in an already released distro a potential fix can be applied if (and usually only if) it can be done without breaking API or ABI as well as without breaking behavior (the exception is if the API / behavior is what is broken in the first place).

Sometimes the maintainer of a package might also backport new features to an already released distro. This might be for different reasons: * the feature is with a high certainty not introducing a regression and/or in the worst case only the new feature is not working as expected but it isn't effecting previously existing parts * the feature has a high value (outweighing the above risks) and/or makes it easier to make code support future distributions * the feature is highly desired by users and the effort / risk is acceptable

Sometimes packages might also not have separate branches for different distros in order to reduce the maintenance effort. In that the maintainer is willing to take a higher risk for regressions for the benefit of less work.

It is basically up to the maintainer of a package to determine the policy - the above specifically applies to lower level / foundational packages which a lot of users depend on.

So to summarize: if you want the latest features you need to use the latest distro (or even the "rolling" disribution). That is the same as for Linux distributions - e.g. if you want a newer Qt version than 5.9 it won't show up in Ubuntu 18.04 but you will need to move forward to Ubuntu 20.04 which comes with 5.12. While feature backports might happen to already released distros that is nothing you should expect.

edit flag offensive delete link more


Thanks for your detail explanation, I got better understanding about it now.

Phymin gravatar image Phymin  ( 2020-09-24 20:00:02 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2020-09-24 02:26:50 -0500

Seen: 72 times

Last updated: Sep 24