Live data from Hacker News

Robotics and ROS 2 Essentials

henkirobotics.com

61–70 of 107 posts

Re: Robotics and ROS 2 Essentials

#61

I tried to use ROS2 twice in my professional career. Both times ended up with massively bloated build pipeline code, significantly longer build times, and massively bloated Docker images. Don't use ROS2. The benefits just aren't worth it. It's great for school but it's terrible for production.

Ros2's colcon will build the packages in your workspace individually, in topological order of the dependency DAG. This is a completely insane way to structure a c++ build because it destroys the innate parallelism of the compilation process.

The build system for ros1, catkin, didn't have this problem because it turned all your packages into a single cmake build. Just one of the many ways that ros2 was a regression from ros1.

Re: Robotics and ROS 2 Essentials

#62
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.

You treat it like the metaphorical toxic waste it is: avoid it at all costs. You don't need ROS to get a dependency manager, a build system, a middleware, and/or a process manager.

Re: Robotics and ROS 2 Essentials

#64
This is exactly what I am researching right now. I am working on a project build a robot that maps its surroundings and walks around. The goal is to learn some AI (slam and camera based ML) and also hardware (Robot itself).

I am thinking of raspberry pi with cameras and then using just building the slam algo from scratch. Is this a good option or am I trying to bite off more than I can chew. I understand ML theory but haven't done any other than the basic 101 ML programs and the coursera course. I am fluent in OS (systems), C, python.

Can folks with knowledge opine on this? Are there better ways to learn ML? I chose the robot so I can have something to keep on building/adding

Re: Robotics and ROS 2 Essentials

#65
post #7

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).

You have a CS PhD? I highly doubt you can learn something there. If it is about knowledge, find out what books are used in the masters. With a PhD you must be able to learn yourself

Robotics is very different from CS. At CMU robotics is huge and consists of thousands of researchers, with dozens of classes a MS student would have never encountered during their CS PhD or undergrad. It's true you can learn robotics from books, but CMU or any grad program has access to robotics hardware resources you can't find online or in the library. For example I took a course there that had the Aldebaran Nao as a platform. The course has a dozen of them, at the time they were worth $20k a piece.

Re: Robotics and ROS 2 Essentials

#66
post #58

Earlier quoted context omitted.

My colleagues and I used to joke that any build system issue you encounter will be addressed in next year's build system. * https://wiki.ros.org/rosbuild * https://wiki.ros.org/catkin * https://docs.ros.org/en/jazzy/Tutorials/Beginner-Client-Libr... * https://docs.ros.org/en/jazzy/How-To-Guides/Ament-CMake-Docu... It doesn't feel like a joke anymore.

You forgot ament.

Whoops, sorry. I must have repressed that trauma.

Re: Robotics and ROS 2 Essentials

#67
post #9
post #6

Earlier quoted context omitted.

Where I was, 1 was standard, 2 experimental and nothing worked really. Slowly a half assed, bug ridden internal implementation of ROS 2 was started… a sh*tshow to be honest. The discontinuity between R1 and R2 was for me just unacceptable, unprofessional and just awful. If I could decide (and in the area where I am, we did) I would ditch the whole thing. After all, if you squint, ROS is a collection of things: - a la…

hi, I've dabbled in robotics from a hobbyist perspective, and I've gotten as far as installing ROS and following some tutorial and online courses a few times. I agree with what you said about launcher/ipc/config - my plan if I ever use Ros is to keep it in a box and use my own communication layer to connect with things in various environments (rather than trying to solve incompatible conda environments). however one…

Well, if 9/10 of a thing is a dumpster fire, would you expect the last 1/10th to not be?

Re: Robotics and ROS 2 Essentials

#68
post #6
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.

Where I was, 1 was standard, 2 experimental and nothing worked really. Slowly a half assed, bug ridden internal implementation of ROS 2 was started… a sh*tshow to be honest. The discontinuity between R1 and R2 was for me just unacceptable, unprofessional and just awful. If I could decide (and in the area where I am, we did) I would ditch the whole thing. After all, if you squint, ROS is a collection of things: - a la…

> After all, if you squint, ROS is a collection of things:

ROS came about because before ROS existed, robotics researchers cobbled together ad-hoc ROS-like systems using the tools you point out. ROS itself started as a project called "Switchyard", which was built to operate one of Stanford's robotics projects. Research labs around the country each had their own take on this kind of system, which made sharing research very difficult. What ROS did was standardize the platforms between all labs, enabling us to share our algorithms, which at the time mostly revolved around localization, mapping, and path planning.

Re: Robotics and ROS 2 Essentials

#69
We have a handful of devices built on STM32, RP2040, RP2350, RP Pico and RP Pico-W running bare metal firmware and green threads for task management.

These were generally designed to communicate over UART (to a physically-connected host) or a LAN (wired or wireless) using MQTT topics and plain text message formats.

We have a primary, core machine built around Linux SOMs like NVidia's Orin or the RPI5, which could run real software (like ROS).

I expect to have dozens and eventually many hundreds of nodes in a variety of facilities.

So far, things were going pretty well, though very sparse in terms of tooling. For example, I've got a makeshift midi controller (for physical knobs) that uses a Python script, debug connectors, and messy gnuplots to do PID tuning.

I got pretty pumped about the Foxglove Studio product and pulling on that thread led me into the (completely awesome) YT channel "Articulated Robots" (https://www.youtube.com/@ArticulatedRobotics), which led us down a path to seriously considering a move toward ROS2.

I wrote it off a couple years ago (2021/2022-ish) for a handful of reasons:

a) The move from ROS1 to ROS2 triggered my PTSD from my time at Google where everything had 2 versions: One that's deprecated, and One that's not ready yet. It also triggered trauma from Python's ongoing and complete disregard for backward compatibility.

b) It's obviously designed to run on Linux, but I have a bunch of low-cost bare metal micros driving around. What the hell kind of robotics platform doesn't (by default) run on microcontrollers?

c) CMake is already one of the absolute worst piles of trash I've ever encountered in nearly 25 years of software development. Wrapping CMake (twice now!?), which is already a crap wrapper is so obviously such an awful idea that it's tough for me to trust anyone who had part in that decision.

d) C++. No thank you. Slow builds are a non-starter. C is fine IMO.

Now, I've spent 4-5 days watching videos, doing tutorials and bringing up ROS2 topics and basically fiddling around with it and just learned that Google(ish) bought the core team, which has me deeply concerned about the future of the platform.

I'm actually still kind of interested in the DDS portion of ROS2, but the whole mess trips my spidey sense and has me feeling like dragons be lurking.

Seeing this thread with so many people speaking so negatively about it has me desperately wanting more information.

Can anyone point me to anything that presents concrete problems and (better) alternative systems that work?

Re: Robotics and ROS 2 Essentials

#70
Recommendations? I'm seeking a robotics course akin to prompt engineering, LangChain, or LangGraph that prepares me for the 'ChatGPT' moment in robotics. While SLAM navigation and similar topics are vital, it feels reminiscent of five years ago when one needed to master machine learning to create their own ML models. Nowadays, most LLM models are API-based and don't require an ML background.
Post reply on HN