Edit: We’re closing the poll on Friday 12/18 5:00ish PST, get your votes in before then!
Hi ROS community,
If you haven’t realized it, we’re less than 5 months from Ubuntu 16.04 and Kinetic reaching EOL. We’re wondering what distro Kinetic users are planning to migrate to when that EOL happens. So we created a POLL!
Please only answer the poll if you are using Kinetic now.
I’m using Kinetic today and plan to migrate to
Melodic
Noetic
ROS2 Foxy
I plan to stay on Kinetic past EOL even though it won’t be supported
0voters
Feel free to add comments if we’ve overlooked your option or you have additional thoughts on the topic!
If you respond with ‘Melodic’ I’d love to hear the reason you’re going to Melodic instead of Noetic. Is it due to Python2 vs Python3 or something else?
FYI, Canonical offers extended security maintenance (ESM) that adds several more years of support for Ubuntu 16.04 (and ROS Kinetic, actually). This includes Python 2. This page still talks about 14.04, but the information is still relevant for 16.04. Please reach out if you have questions.
Noetic, then some ROS2. First get the jump (finally) from Python 2 to 3 with Noetic, to make the jump to ROS2 a bit smaller and be able to mix the two with the ROS1 - ROS2 bridge.
Is it possible to modify the survey to accept multiple answers? or provide a “hybrid Noetic/Foxy” answer ? I’m migrating to Noetic and porting nodes over to ROS 2 Foxy over time. So I was expecting to select both “ROS2 Foxy” and “Noetic” (not sure if I can unanswer the survey though but it may help future respondents in the same situation as me).
Regarding “Melodic or Noetic”, migrating to Noetic allows me to have all the code in Python3 and more easily move over to ROS 2. But the migration to Noetic has been rough on the edges to say the least with numerous released packages not compatible with Python3 making it time consuming to move over (I must have patched ~50 repos for Python3 compatibility over the last couple months).
Additionally, Noetic syncs have been pretty sparse (e.g. 7 weeks between the last 2 syncs) making it difficult to get these Python3 fixes in the main repo in a timely manner.
This made me second-guess the choice of aiming for incremental migration with a hybrid system and if I had a redo, maybe I would stick to Melodic and work only on ROS 2 ports on the side until I have a full ROS 2 system.
Sorry I don’t think I can add that without changing the existing poll results, or at least I’m afraid to try it unless someone assures me it won’t reset them.
Thanks for the additional info though, I think a Noetic/Foxy hybrid should probably be marked as “Noetic” for this purpose as it seems like that is the immediate first step before moving to Foxy over time.
@marguedas - do you have a list of the repos you’re aware of that are still python2 based? I think this would be a good thing to post for the community for tracking down and soliciting help in migrating them to python3
Flagging for folks interested in Foxy on Ubuntu 20.04: it appears that some packages and devices still target Eloquent and/or 18.04. Two specific examples:
Unfortunately I do not, I tend to patch them as I encounter them. But if there is a community thread to aggregate them I’ll gladly post there the now ones I find that I’m not at liberty to patch on the fly.
A few ones are pending review if anyone is interested in trying those in Noetic:
Edit
A quick look at the current state of desktop full there seem to still be plenty of installed files that have a Python 2 shebang line. This is far from capturing the python2/3 incompatibilities as some of these files may not even be scripts so their shebang line may never be used. And much code in these packages or others may contain python2-only code regardless of their shebang lines. But that is a place to start I suppose.
Thanks @marguedas this is helpful. I don’t want to get too sidetracked on the python3 topic, so I think that should be a separate thread, or a meta-issue in github somewhere with a list of all 105 files you have there. I’m not sure where that meta-issue should be filed, maybe @Katherine_Scott can help with figuring that out?
Many robotic projects use Nvidia Jetson boards which are still on Ubuntu 18.04.
This is a big limitation choosing to move to ROS Noetic or ROS2 Foxy, so ROS Melodic and ROS2 Eloquent are the best choice now to guarantee compatibility with most of the platforms.
Yes, but noetic and melodic taken together come out to 51% of respondents planning on staying on ROS1. I find this concerning, but not at all surprising. It would be good to understand better where the resistance to switching to ROS2 is coming from. I’m purposefully not calling it “upgrading” since it’s really a different system. Do people think it is too heavy of a lift to switch, not possible yet because important packages are not yet migrated, or just not worth it?
Personally I’m concerned that if migrating to ROS2 is perceived as too difficult (rightly or wrongly), then we risk seeing more and more people going their own way again, building their own robotics stacks again just like during the pre-ROS days. I think it behooves us as a community to ponder how to avoid that. I’m assuming I’m not saying anything here that OSRF has not already been thinking about for a while, but these poll results suggest to me that whatever the plan is to avoid such a rupture, more work remains to be done.
@chfritz - yes I noticed that even though Foxy is in the lead it’s still less than half. I think that goes to show there will be people using ROS for a few more years. I hope it doesn’t mean that things become too fractured like you mentioned. I don’t think that will happen since Noetic is the last ROS LTS, and eventually (2025) that will EOL too. Everyone should be moved to ROS 2 by then. That feels like a long time from now but I remember when Kinetic came out (still have my T-shirt), and now it’s EOL, so I have some hope that the community will converge by that point!
Agree with your statement. My two cents on why people aren’t jumping on the bandwagon:
new system that people have to learn and it isn’t super easy to learn for people familiar or not familiar with ROS1
roboticists kinda get the advantages of ROS2, but they can get things done with ROS1 so why put in a ton of effort to switch (I tried for the open source rover and it took long enough for other big changes to get merged in which I then would have to keep converting to ROS2 as well, also while convincing people to make ROS2 the standard)
Packages in ROS2 either don’t exist or aren’t mature yet. As recent as yesterday, a colleague of mine was disappointed he was basically forced to use ROS1 (or both with ros bridge) because one single crucial package didn’t exist in ROS2 (I forget which one, I think a vendor specific driver)
My hot take: Similar to how a lot of people didn’t jump on Python3 until know (or still haven’t), sadly enough I think a proper switch to ROS2 will only happen after ROS Noetic reaches EOL. It can be sped up by releasing new packages only in ROS2 that have a significant advantage. Haven’t used it myself, but I can see nav2 being one of those.
P.S. @mkhansen I think folks have been ‘planning’ on switching to a newer version but it’s one of those things that just gets pushed on the backlog so I’d take those responses with a grain of salt. Who’s going to honestly admit that they will likely just be on Kinetic well past EOL? I think data from Indigo might provide good insight.
There’s some truth in that, but there are also many other packages that are significantly higher quality and more capable than in ROS1. Hardware specific drivers I think are always going to lag until enough customers demand it, but I have a hard time finding any other significant packages missing. Many of those people think are missing are actually there, just not released yet to debians or are in a new repository.
I’ve done some analytics on the number of packages in ROS1 vs ROS2 after hearing that comment a few times. While it is true that ROS2 has significantly less packages than ROS1, all of the top installed packages were included or had better analogs. I sampled a subset of the packages that don’t appear in ROS2 and I only found a small handful of missing ones that I thought were sufficiently generally used that it would represent a major loss of capability. Remember that anyone can release a package, so the bottom 30% of packages are installed less than 1,000 times over their entire lifetimes in all distributions combined (for benchmark, the most installed package is TF2 ROS at a bit over 3.3 million installs).
I had posted a survey of missing packages that people felt were important to move to ROS 2, responses are below. There are still remarkable few major packages on that list. Some of those listed are genuinely missing and generally used, but most are very simple pieces of software that porting would take merely hours if users actually wanted them enough.
Not to say there are not gaps, but I think at this point those gaps are widely over-blown and the actual amount of effort to port 1-2 packages you may need to ROS2 is surprisingly small (and probably a good experience for developers to do to learn ROS2 so they can hit the ground running).
I think the true issue is that the gap is perceived to be much larger than it actually is and I think this is because of the difficulty of accessing good online resources. For instance, there may be higher quality packages in ROS2 compared to their ROS1 counterparts but identifying the correct ROS2 package you need is not always straightforward.
The ROS2 docs are also less beginner friendly than ROS wiki, which I think still drives new users to start with ROS1. To make matters worse, ROS wiki keeps on coming up in search results when looking for ROS2 related issues. In fact Googling pretty much anything related to ROS2 is a nightmare because the search results will mainly be related to ROS1.
I agree that it’s mostly a perception issue, but also want to emphasize the second part of that bullet point, which you didn’t include in your quote:
one single crucial package didn’t exist in ROS2
It looks like 6 people filled out the poll. I’d say that’s hardly representative of the community - especially since the majority of ROS users don’t visit Discourse (citation needed). And that’s again I think where the discrepancy lies. As ROS devs we wouldn’t consider a single package to be an issue, but for the everyday user, the roboticist who has a lot to think about already, that could be enough to postpone a switch to ROS2. The same argument (majority doesn’t visit/engage with Discourse, mostly hardcore users) could be used to argue that the percentage of people who will stick with ROS1 might be much higher.
Add in @hadiTab’s points and you might have an explanation of why it’s going slower than you’d expect. Again not saying that I think that people should stick with ROS1, just trying to pitch in my thoughts so we can figure out a way to make the switch happen faster.