|
|
|
|
|
by vmayoral
1425 days ago
|
|
Use ROS 2. The misconceptions about ROS have been mostly addressed with ROS 2. Check out industry adoption of ROS 2 in various industries including automotive, healthcare and warehouse automation. ROS 2 is (and will remain as) the de facto standard for robot application development. |
|
The atrocious build system has stayed the same. People continue to add even more brittle automagic to the pile. (.e.g. automagic compilation of C++ to FPGAs)
The grown semi ad-hoc messaging semantics for services has stayed the same. Even if DDS was an acceptable foundation, adding a ROS message translation layer and ROS semantics on top of a perfectly valid schema language is bringing the same pitfalls that Object Relational Mappers have, in that you now have to understand three systems, the source, the compiler, and the target. And given that ROS1 had a 'wontfix' issue on the message schema checksums being computed wrongly (ignoring the cardinality of fields), which could result in your robot literally ripping your head of when it received messages from two different library versions, I don't trust anybody from the community to get it right this time.
The whole DDS vendor based ecosystem is antithetical to open source. The DDS standard is way too big, and a bunch of vendors meeting every couple years to demonstrate that their systems can send messages about shapes between one another simply doesn't cut it to prove correctness.
ROS(2) is an attempt to make C++ more easy by layering automagic and complexity on top. Most robot shops I know waste most of their time fighting that magic and complexity. The other ones don't use ROS(2).
ROS should have been:
* A bunch of libraries (not frameworks) to solve robotics, vision, and knowledge representation related tasks.
* A bunch of best practices to work with common middlewares, none of which are developed as part of ROS.
* A repository of competing data schemata for the above libraries and middlewares to facilitate interoperability but allow for experimentation.
* Dataviz libraries for common notebooks, e.g. jupyter, observablehq, that work with the common data schemata.
Instead we got one of the hairiest C++ projects and a bunch of shell scripts to open your default text editor more conveniently. Yay.