Live data from Hacker News

Robotics and ROS 2 Essentials

henkirobotics.com

31–40 of 107 posts

Re: Robotics and ROS 2 Essentials

#31
I'm new to embedded systems programming and looked into ROS recently, without using it, while figuring out a minimal software stack for a UAV project (px4 over ArduPilot for the flight controller, but what to run on a "companion" computer is open ended). [my XP is in cloud infra, RESTful microservices, web apps, videogames]

Researchers, hobbyists, and some industry professionals (for prototyping?) seem to love ROS for its big community, logging/debugging/visualisation tools (rosbag, rviz), the pub/sub architecture (easy integration and loose coupling with third party modules), existing support for many sensors/peripherals/hardware components; plus off-the-shelf libs for SLAM, navigation, inverse kinematics, etc.

But ROS is hated by others for its custom build system (on top of CMake), the custom language-agnostic IDL for message types (like Protobuf but worse, esp. for versioning and backwards compatibility), non-determinism and untestability of the pub/sub model (esp. for safety-critical stuff), overengineering and layers of indirection / learning curve, poor performance, and high platform lock-in.

Looking at ROS as a robotics noob, it seems like useful 'muddleware' for toy projects, but where every sub-problem that it abstracts away from you can be solved better by other existing tools. I'm looking more into: Mobile Robot Programming Toolkit [1], Yet Another Robot Platform [2], genom3 [3], and Open Robot Control Software [4] (all C++). Or the Rust ones like RoboPLC [5], Dora-rs [6], Copper-rs [7], and Basis [8] (which supports Protobuf!).

If you're not using ROS for a "serious" project, do you use other middleware offerings or just pick 'n' mix lower-level libs tailored for your use cases?

[1] https://mrpt.org

[2] https://www.yarp.it

[3] https://git.openrobots.org/projects/genom3

[4] https://orocos.org/

[5] https://github.com/roboplc/roboplc

[6] https://github.com/dora-rs/dora

[7] https://github.com/copper-project/copper-rs

[8] https://github.com/basis-robotics

Re: Robotics and ROS 2 Essentials

#32

For a while new grads had a severe lack of hands on ROS experience. Though many companies don't use ROS, it is so entrenched in the industry that most solutions look similar enough for transferrable skills. (Src: was hiring mgr in robotics) Highly recommend if you want to get into robotics you have ROS experience and demos / stories at hand.

Been 10 years in and around the robotics industry and I'd recommend exactly the opposite. I've assisted companies refuse to work with anything touching ROS. Most successful things I've seen in production that are with ROS use a large non-ROS core with a thin ROS layer on top for compatibility. Companies that do use ROS have needed several times the resources of those that don't, to achieve the same thing.

Usually people get stuck with ROS in commercial environments either because they inherited it from an academic project (company is a spinoff), or they used ROS for a demo and afterwards never planned with long enough roadmaps to make the cost benefit analysis obvious enough.

Re: Robotics and ROS 2 Essentials

#33

Had a recent conversation with nephew about his robotics study, and it seems he’s overwhelmed with ROS, OpenCV, Python, AI transformers tutorial hell. Told him we should go together to industrial expo - starting from 3d printing, molding, material science and robotics and spend some time together to hack into hard core C++ SDKs used by big tech like Nvidia and Co, and look how to developed linear algebra and statisti…

"3d printing, molding, material science and robotics " sounds like a Mechanical Engineering degree. I'm serious, I learned everything you're talking about and more. Probably hubris, but I'm pretty sure I'm well equipped to start a hardware company if I really wanted to (Not sure what business manufacturing means though, as in he wants to start an "Integrator" company or a contract manufacturing company?).

As for an Expo, I highly recommend ATX West show in a couple weeks. Depending on your employer, you probably could get it covered by your job and have your nephew come along.

(Was a Design MechE for a decade or so, but I'm a SWE now)

Re: Robotics and ROS 2 Essentials

#34

For a while new grads had a severe lack of hands on ROS experience. Though many companies don't use ROS, it is so entrenched in the industry that most solutions look similar enough for transferrable skills. (Src: was hiring mgr in robotics) Highly recommend if you want to get into robotics you have ROS experience and demos / stories at hand.

Highly recommend to avoid any companies that would touch ros with a 10ft pole. It's an unmitigated pile of endless shit, and any projects that don't recognize this are also.

Re: Robotics and ROS 2 Essentials

#35

Earlier quoted context omitted.

I'm really intrigued by robotics as future career. How would you rate it for the next 10-15 years? I'm seriously thinking of investing in a masters degree focused on robotics (CMU). I'm close to 50 and already have a cs PhD. Just intrigued by it and feel it might have a longer career (when it takes off).

Robotics is a very hard topic. If on top of that you add ROS which almost everyone is using you will end up very disappointed and without much enthusiasm to do robotics at all. My major criticism to ROS is that because robotics is already hard, ROS does not make it a single bit enjoyable or easy, all the opposite as a matter of fact.

Built a few platforms over the years, and can concur robotics is nontrivial.

ROS has some fundamental design flaws, but does integrate most development software from various research areas. In many cases, the sub-projects were abandoned decades ago, and only ROS developers keep these components operational.

The primary mistake most naive academics make is assuming you are dealing with a single problem domain. Robotics is different from simple automation in that it has 4+ different primary concurrent systems that must share state.

There is also the IP issues with parts of projects like OpenCV, and the patent holders (university legal departments) make it nearly impossible to license. i.e. unless you have >$3m to drop on each component... expect to get ignored or sued in a commercial setting.

This is why we can't have nice things, as most FOSS software is perpetually Beta ... Thus, nearly impossible to "clean" and deploy in a commercial setting due to coincidental contamination from the original IP rights holders (not the coder.) =3

https://youtu.be/_lOT2p_FCvA?si=10TqsftmOedHPG-B&t=30

Re: Robotics and ROS 2 Essentials

#36
post #34

For a while new grads had a severe lack of hands on ROS experience. Though many companies don't use ROS, it is so entrenched in the industry that most solutions look similar enough for transferrable skills. (Src: was hiring mgr in robotics) Highly recommend if you want to get into robotics you have ROS experience and demos / stories at hand.

Highly recommend to avoid any companies that would touch ros with a 10ft pole. It's an unmitigated pile of endless shit, and any projects that don't recognize this are also.

What would you recommend instead for the ones that would be interested to start learning robotics stuff? (Not trying to be snarky but actually curious)

Re: Robotics and ROS 2 Essentials

#37
post #16

Earlier quoted context omitted.

Trust me, having your own crufty cobbled-together robotics code base that gets more and more insipid over time is way worse. 10/10 would start anything new with ROS.

We replaced ROS with GRPC, foxglove and our own code. Works reliably, much better to handle. Would recommend everyone else to try it

That's really interesting. I've thought about trying to replace ROS with GRPC before too. I could never find a report of anybody actually doing that in the robotics space. Can you share more? How did it go? What pitfalls did you run into?

Re: Robotics and ROS 2 Essentials

#38

Had a recent conversation with nephew about his robotics study, and it seems he’s overwhelmed with ROS, OpenCV, Python, AI transformers tutorial hell. Told him we should go together to industrial expo - starting from 3d printing, molding, material science and robotics and spend some time together to hack into hard core C++ SDKs used by big tech like Nvidia and Co, and look how to developed linear algebra and statisti…

Show him the work being done by Hadrian for inspiration https://www.youtube.com/watch?v=6cbayQAuvvw https://www.youtube.com/watch?v=Ye7m8VjKcrE That “S3” channel has a lot of great content about physical tech startups.

3Blue1Brown and Khan Academy are great places to learn math of all sorts.

Re: Robotics and ROS 2 Essentials

#39
post #3

Those of you who use ROS in production, do y'all use ROS 1 or 2? Do you maintain your own fork? I'm curious how people do this, with the upcoming Noetic deprecation.

We use ros1 today. We have a very slow moving effort to migrate things to ros2 that I'm not really involved with.

A previous job used ros2. IMO, it's worse in most ways compared to ros1. The launch system of ros2 alone is enough reason not to use it.

Post reply on HN