4 ms·
You couldn't have described it better. ROS is painful and makes you actually hate robotics. My conclusion was that it was written only to be used by their own d
by liendolucas 2y ago
You couldn't have described it better. ROS is painful and makes you actually hate robotics. My conclusion was that it was written only to be used by their own developers and researchers. Documentation on most useful plugins (SLAM and AMCL) is really bad to near non-existant. I felt like all this was for some elite and you either have a very strong foundation and know a lot to use it or prepare to suffer and stay long hours trying things out until they work. The ecosystem and tooling are the worst I have ever experienced: colcon, sourcing scripts, launch scripts and on top of that you have to use specific Ubuntu versions. Their flagship language is C++, which is a language I hugely dislike. Yes you have Python but is nothing more than a thin wrapper to the underlying API, is not a clean and native Python API so you end up writing a lot of bureocratic and gluing code.
- moffkalast 2y agoAh your mistake was going for ROS 2 which is by any objective metric a complete trainwreck compared to ROS 1. Am a maintainer for a package in both, AMA. The move_base stack in ROS 1 was pretty bad overall, but if you made your own navigation it ran really well and was pretty bulletproof as a middleware for the most part (changing network conditions ahem ahem). Nav2 in ROS 2 is better, but it's really hard to tell because the DDS is so unreliable and rclpy is so slow that it's usually impossible to tell why it's only working half the time for no reason. Defaults are bad and pitfalls are everywhere. Incidentally this makes the entire thing unreliable even if you implement your own stuff so.. yeah. We'll see if Zenoh fixes any of this when it's finally out and common sense prevails over DDS cargo culting. Personally I'm not entirely convinced we won't see a community fork of Noetic gain some popularity after it's EoL. There is some effort to add Rust support, but it's just a community effort because OpenRobotics is completely understaffed. Google bought them and then they sort forgot they exist. There's only like 4 core devs in total. That's mainly why they're treating python as a second class citizen.
- ModernMech 2y ago> your mistake was going for ROS 2 which is by any objective metric a complete trainwreck compared to ROS 1 Sometimes you don't have a choice. I prefer to stick with ROS 1 but the org I was working with insisted on running ROS2 for everything. The only thing worse than running ROS2 is running ROS2 installed next to ROS1 and trying to work with both.
- moffkalast 2y agoI mean it is a huge dilemma right now. Noetic is incredibly stable, it has lots of packages, language models all know it in detail, any problems are noted and workarounds known... and support will be cut in a bit over a year. Kind of the exact opposite is the case for Jazzy really. I think it really hinges on the date you need to have working code on and how long you intend to maintain it I guess. For a company building up its software with a 2 year latency in deployment it probably makes more sense to develop slowly along with ROS 2 and hope for the best. Also don't get me started on Gazebo Classic/11 vs Ignition lol, that's a similar can of worms right there.
- ModernMech 2y agoThe thing I don't get about ROS is that at no time in its almost 20 year history has anyone, at any point, referred to ROS as having good docs or an easy to use interface. Despite this, it has been pushed on undergraduates and people who find it very confusing and hard to use. It just seems to me no one seems willing to admit defeat that perhaps ROS is not working out for the purpose of making robotics more accessible. Like, they spend so much effort on their varied Turtle mascots and all the themes for the many and frequent releases (that never make it easier to work with), I wish they put that kind of energy into the onboarding experience.
- catgary 2y agoIt was infuriating joining a robotics company with a ROS based stack. A lot of the original engineers had started at the company in undergrad as interns, and I swear it was impossible to make anything better because they didn’t know what better looked like. They just understood ROS and were highly proficient with it, so any move away from ROS would slow down the engine of the company.