Yes that’s the only kind of setup I’ve ever seen work consistently, running the DDS on loopback, centralized discovery, etc. Then I get sort of ROS 1 performance at several times the CPU load. Depending on the share of rclpy nodes of course.
Well fwiw I did bring the aforementioned benchmark to @mjcarroll 's attention a few months back and to his credit he did patch some of the serialization overhead in both cyclone and zenoh with the suggested caching fix which should be live in Lyrical now. How much that helps in practice I’m not sure yet, because it only ships with Lyrical and I don’t have any representative test environment for it yet. While I’m still stuck on Jazzy anything I eval on it can be handwaved with “might be fixed in Lyrical”. So not much point in doing that yet until there’s more Jetty updated sim setups and that will take some time. But sure, I can send some actual numbers over on Zulip once I have something concrete set up.
Of course the functional benefits of ROS are immense, but far more so during research and prototyping than in final deployment when everything is very clearly defined, and where every layer of inefficiency makes the system more expensive per unit.
Very well, I take that back. My point was, a single design choice has dragged along a significant amount of bloat that has imo caused more harm than good, at least in the short term. Yes there are known shortcomings in ROS 1, and there are also known shortcomings in ROS 2.
I still think the general industry attitude is that the ones that do manage to get something working it’s despite the DDS, not because of it. They’re mostly dragged along kicking and screaming because they need Nav2. But that’s just what I’ve heard.
Maybe I’m getting off topic here, but I cannot stress enough how important it would be to make sure the defaults for all RMWs are at least, hm… usable? Good might be asking for too much. Relying on the vendors for that has not produced any results, there’s just a bunch of configs circulating around with nobody exactly sure what option helps with what. Perhaps those guys running it all super duper well in production can help give the rest of us plebs a hand?
Okay that’s big if true. Looking forward to it
I would be surprised if some additional overhead doesn’t sneak in to remove basically all the gain of the approach though, we usually can’t have nice things.