ROS 1 vs ROS 2 #47
-
Here's my current pros/cons list for ROS 1 vs ROS 2. not in any particular order, pros of ROS 1 pretty much overlap with cons of ROS 2 and vice versa. Please add any thoughts or ideas (especially @ankithu). I will continue to update this and we will discuss this during tomorrow's meeting if we have time. ROS 1Pros
Cons
ROS 2Pros
Cons
|
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
Thanks Riley I think thats a really good overview. With regards to YASMIN (smach doesn't seem to have ROS2 support at least in its ROS package I think the library itself is ROS independent ) transferring to it would be very easy because it seems almost identical to smach in how you set up and run state machines. The way I see it, the biggest reason to move to ROS 2 is just that it is as Riley said, the bleeding edge. There are some communication-specific changes I read about and smaller things that are documented here: http://design.ros2.org/articles/changes.html that potentially make the system better but as far as I can see not to the extent of giving us a competitive advantage. The biggest reason to not move to ROS 2 (in my view) is the knowledge that we already have on the team of ROS 1. Also, the documentation just seems to be a lot worse for ROS 2 things. Just anecdotally I seem to have to append ROS 2 to all my searches to get ROS 2 specific results which is kind of annoying. I don't think we're going to have much of a problem from the package side of things as at least from what I've checked there is support for ROS 2 or there are very similar/equivalent ROS 2 packages for pretty much everything we're doing (at least currently). I think that not going with ROS 2 for reasons of team knowledge and/or documentation would be a perfectly valid thing to do as these are things that should theoretically only get better with time and make the switch easier in future years (it will have to happen eventually). I also think that switching to ROS 2 right now would almost definitely make the overall effort we spend porting systems less in aggregate (it'd be one bigger switch as opposed to one big switch and one smaller switch). My vote would probably be to stick with ROS 1 for now given all this information but I don't really think there's a right or wrong answer here. |
Beta Was this translation helpful? Give feedback.
-
After reading this, here's my viewpoint: As much as I want us to use the "best" available software, (one that enables us to do the most without having to reinvent the entire wheel) I think staying with ROS 1 is going to be the prudent move. A lot of the cons under ROS 2 concern me more than the ROS 1 ones. (latest ROS 2 is only for Ubuntu 22.04, though see below for something on that; the issue with jetsons, the lack of knowledge of ROS 2 on the team as of now, and our timeframe to try and learn it being fairly small, the progress we've made already) Some of the cons for ROS 1 can be mitigated, even if it is a pain to do. I'd also prefer not to scrap the current progress everybody has made in favor of using a system that, even if URC teams had supported it, may be more cumbersome to deal with. If possible, if any URC teams that had used ROS 2 are going to CIRC, it might be a good idea to discuss with them the merits of ROS 2 and why they went with it. One thing is if we end up getting through our backlog and most of our URC critical tasks throughout the year, we can have members with less work/critical tasks focus on trying out ROS 2 and documenting their procedures, changes, and whatever else they can find. It would give us a bit of a head start if we end up changing over to ROS 2 after this year. In summary: My vote is to stick with ROS 1. ROS 2 is definitely a bleeding edge and can be amazing for us in the future. But given the timeframe, the current state of our progress, and the concerns of ROS 2 that, in my view, outweigh the benefits given our situation, I would have to shy away from it for now. (save for any potential progress other members can do during the year) Great work @rbridges12 with these findings and write-up. |
Beta Was this translation helpful? Give feedback.
-
After meeting about this, we've decided to stick with ROS 1 this year for many of the reasons listed above. |
Beta Was this translation helpful? Give feedback.
After meeting about this, we've decided to stick with ROS 1 this year for many of the reasons listed above.