Don’t pretend that you’re trying to have a constructive discussion here and that you were using “morally wrong” just for brevity’s sake. Throwing around words like “morally wrong”, “super villain” and “embezzlement” does not further a civil discourse, and it distracts from the points you’re trying to make (assuming you’re actually interested in an open exchange on the subject matter).
I’ve observed this phenomenon several times in the past. New company joins the “ROS wave”, spends lots of resources to build their system based on the state of the art in ROS, and sometimes even contributes some great stuff back. After this initial investment, the effort is redirected to maintenance, tailoring the code to specific customers, and sales. There is rarely a willingness to adopt whatever has become the new state of the art in ROS, if there is no clear benefit to the company’s use case.
There is nothing wrong with ROS1 for some markets, and there are successful companies based on it. As @Dejan_Pangercic pointed out, ROS2 provides some features that are required for other industries, and yours is probably one of them.
No, it hasn’t been censored. It was flagged as inappropriate by the community (and very rightly so, given how you’ve responded), but users can still read your comment. Accusing Open Robotics of embezzling funds, without any proof, is a new low point. I don’t understand what you’re trying to get out of this using these tactics.
@Martin_Guenther thanks a lot for bringing this up. I was not aware of this being the case and will make everything I can that we do it better in the future. Of course there has to be a firm transition plan and no divide.
@Martin_Guenther I appreciate your providing context and I’m not at all surprised by the strong responses that have been elicited by this discussion. We’re talking about a large and potentially high-impact change. I’m encouraged by the deeply felt reaction, as it confirms the significance of ROS in the global community.
With regard to reassuring replies from Open Robotics: we’ve (mostly) stayed out of the discussion on purpose, to keep the floor open for a broad sharing of opinions. Our team is internally conflicted on the question of when and how to stop releasing ROS 1. It’s a project that some of us have spent 10+ years, in some cases our entire professional careers to date, working on, so we’re loathe to let it go. But like almost everyone else working in this industry, we have more things that we’d like to do than we have time to do them.
It’s great to see specific concerns and concrete proposals like those raised by @ooeygui, @mikeferguson, and @mkhansen. Those comments are exactly the kind of thing that we can take into consideration when looking at the pros and cons of the available strategies.
I’ve worked with many open source communities in the past. Based on those experiences, I think there are some really innovative ways we can reach a win-win status with this community. Look for that to play out over the next couple of years. The best way to judge things is based on actual outcomes, so while I respect your opinion and perspective, I would also request that you give us a chance to prove that we are good members of this community by our actions, deeds and works.
A post was split to a new topic: ROS2 Documentation
I think you have misunderstood me, I didn’t mean to criticize you. My apologies if I haven’t made myself clear!
Given the fact that no one here has any examples of porting ROS1 code to ROS2, except for a scheduled interest by @Vilas_Chitrakara, I’m going to believe that this entire discussion is speculation because no one knows the real resources required to port a system from ROS1 to ROS2 or if that effort is greater than maintaining a ROS1 release.
I’ve predicted this before and I’ll reiterate - the ROS2 release is going to split the community so that there are two distros of ROS eventually maintained. Industry backed/invested ROS2 (for the next 5~ years) and current Open Source ROS1. Users from current open source ROS1 won’t move to ROS2 until industry paves way. So, we’ve got another ~5 years of ROS1 in my opinion.
The only people who benefit from seeing the amount of ROS2 users go up in this thread is Open Robotics/OSRF as it stands presently. I don’t think anyone else is making a profit off of a ROS2 based system as of now. So until ROS2 features become mainstream this trend will continue. Of course, Open Robotics would never admit that they are not making profit off of ROS2. So with that reasoning I’m going to assume they are already making profit off of it (because they will always claim to be). BUT. I bet their revenues (not including funding/investments for ROS2) are mostly in ROS1 projects as of now. Actually I guarantee it and would bet money on it.
So, that begs the question… who’s got skin in the game for ROS2?
The community as a whole will benefit by more people being in ROS2, but as it stands as of this date all of the vested interest is in Open Robotics/OSRF. IMHO that means Open Robotics should provide some resource allocation towards porting some robots/example systems so that others can follow in their footsteps. However now that Open Robotics is a for-profit business, it’s a little bit contradictory that they should help their competitors out, don’t ya think? Another point validating the prediction that the ROS community is going to split for the next 5 years.
Is this good? Maybe. We do need a bridge/defined porting process to prevent this though. Surprised no one is being paid to think about this engineering problem out in the open source world. More proof that the only people actively moving to ROS2 are industry backed and are probably holding their solutions/cards to their chest. More proof that industry will only eventually open source their ROS2 solutions/implementations when it is no longer beneficial to competitors. (e.g in 3-5 years time).
That being said. If anyone out there is interested in publicly supporting an open source path forward for a ROS1->ROS2 transition, feel free to contact me … one last thing… OSRF … how was a transition plan not designed for or planned for or accounted for?? BIG fail.
Besides the technical and logistical issues here, I don’t understand how there are so many commentators that appear to have inside knowledge of how OR runs their business, where they get their funding or what their evil plans are for ROS 1 and/or ROS 2.
Am I happy with how things are going: no, perhaps not with everything.
Do I start posting accusatory comments on a thread that started with the question “how can we make sure the a transition to ROS 2 can be done in an efficient and as painless manner as possible?”: no, I don’t.
Do I get out the bucket of vitriol, take a large gulp and fire up Discourse? Neither.
Could things have been perhaps more clearly communicated by the various stake-holders and people involved: yes, surely. And that would have avoided quite a bit of frustration.
Unfortunately the situation is as it is right now, so can we please be constructive and make the best of it?
And @TheDash: “no one here has any examples” -> you conclude this after 1 day?
Edit: just to clarify: I’m not defending anyone here. I’m simply amazed by the level of the comments that pass by here in this thread and felt a need to respond to that.
I would just like to politely point out that this post was made to get that exact conversation started - and it has started. You can’t just come up with a plan like that out of nowhere.
For those who are taking the position that a “one or the other” approach is the only way to go: We’ve had some aspects of ROS2 running in production-critical systems for nearly 3 months now, and we continue to be a maintainer of ros_comm (and numerous other ROS1 packages besides). We push bugfixes and improvements back to the community for both.
One thing I wanted to mention was that @gerkey stated the above 8-9 person-months for an average ROS1 LTS release. I’d like to get an estimate of what it will be to do the Python2 → Python3 conversion in addition to the ‘normal’ library upgrades and such of an average new LTS release. My guess is that it’s significantly more, thus my original proposal.
Also, I think the idea of the community taking up the work to do it is a completely valid one. If people don’t want to move to ROS1, then nothing should stop them from self-organizing and taking on the work of doing the Python2->3 port themselves and creating a new LTS in 2020.
So maybe the transition plan could be a combination of things:
- A migration script to do 80% of the ROS1 → ROS2 conversion for those who want to migrate
- An improved ROS1 bridge for running hybrid systems?
- ROS2 support in 2020 on both 18.04 and 20.04
- Support of Melodic until 2023
- Better documentation of ROS2 (see @mikeferguson thread)
Anything I missed there that is discussed in this thread?
On some platforms (e.g. Gentoo) ROS 1 users are already using Python 3 today. So “some part” of the code base is already Python 3 compatible. The amount of work necessary is hard to estimate. From my experience changing existing Python code to support both (version 2 and version 3) is commonly fairly simple. There are only very few cases where it is more difficult. As soon as a distro would be setup offering Jenkins bases CI / PR jobs using Python 3 those should be fixable iteratively. This is also a task where contributions from the community could go a long way to spread the workload.
@dirk-thomas - thanks for the reply. Could you estimate that add if it were to be done by OSRF? Is it a 10% add, 25%, 50%? I have been operating with the understanding that it is in that 25-50% add range, but I don’t know the code base that well. I think understanding the effort is important to this discussion.
One aspect that is lacking from this analysis IMHO is that the value of ROS2 is also dependent on its community (one of reasons for success of ROS1 IMHO). Bigger community often doesn’t just mean more community packages, but also more contributions to the core, more developers (potential hires) that are familiar with the ecosystem and want to work with these tools, attracting in turn more businesses. So if you want to benefit from ROS2, it is probably in your economical interest to have a strong ROS2 community, and one way to help this is ensuring that there is no hard split in the overall ROS community. This means that at least IMHO it is in your economical interest to ensure a transition that is as smooth as possible, which can only happen with $ spent on ROS1.
Of course I can appreciate that it is often easier to argue funding “missing ROS2 feature X” at a company than to argue “funding ease of transition ROS1 > ROS2” if you don’t happen to be a company with a ROS1 code base, but that doesn’t mean there is no economical reason to still do it. If you fund ROS1 that way, you are not just funding “commercially inviable technology”, you are (hopefully) funding the future ROS2 community.
With the same argument I think it is it absolutely legitimate for OSRF to “redirect” ROS2 funds to support ROS1 (from the discussion I take it that most people agree).
So you agree with the development mindset that a system should be developed without any regard of how a majority of its users are going to use it or get their hands on it? Yeah, that’s a nope from me.
Imagine if Apple released a new iOS and didn’t provide information on how to upgrade to it or switch to it. Or didn’t even think about it at all until after it was released. I think that’s the way of how Windows 8 was released from Microsoft and we all know how that went.
" I think understanding the effort is important to this discussion."
From this thread no one has completely transitioned a robot to full ROS2 support. So perhaps it’s just not possible at this point.
- Robotis has ported over turtlebot stack: [TB3] Introducing ROS2 Tutorials (entire robot supported)
- Apex.AI is porting Autoware algorithms: AutowareAuto / AutowareAuto · GitLab
- @fkromer has a list of more than 50 packages and drivers ported to ros2: GitHub - fkromer/awesome-ros2: The Robot Operating System Version 2.0 is awesome!
- Bosch/William ported rviz GitHub - ros2/rviz: ROS 3D Robot Visualizer
- Toyota has an entire robot: https://roscon.ros.org/2018/presentations/ROSCon2018_supercharging_the_jaguar4x4.pdf
- OSRF ported gometry2
And then as already mentioned above much more is in progress:
- ROS 2 Collaboration Bulletin Board - #41 by swatifulzele
- https://docs.google.com/spreadsheets/d/14GY9shcwa2QKnw5u5T7F_2-4XuuwLkS3W20-tVp8EOY/edit#gid=0
So I do not know - do you just don’t want to see see all the work that has been done or what kind of examples are you looking for?
I am very excited about what ROS2 already is today. No one is perfect, and no project is run perfectly. Yet we roboticists have complained about the limitations of ROS1 for years. Now we finally have an improved alternative that addresses many of those limitations. Why all the fuss?
Open source funding and development is hard and you won’t get rich off it. Yet Open Robotics, many partners, and the community have brought to the world (free of charge) a new platform with very limited resources. While no one is saying it will happen tomorrow, I’m looking forward to ramping down ROS1 development and future releases. Instead we need to focus our limited community resources on a better robotics middleware that wasn’t built in a graduate student lab in 2007.
+1 @mikeferguson to organizing the ROS2 docs!