URI:
       [HN Gopher] Robotics and ROS 2 Essentials
       ___________________________________________________________________
        
       Robotics and ROS 2 Essentials
        
       Author : dtquad
       Score  : 70 points
       Date   : 2025-01-17 22:52 UTC (2 days ago)
        
  HTML web link (henkirobotics.com)
  TEXT w3m dump (henkirobotics.com)
        
       | jvanderbot wrote:
       | 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.
        
         | brutus1979 wrote:
         | 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).
        
           | f1shy wrote:
           | 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
        
           | sashank_1509 wrote:
           | Wow, you're still interested in learning at close to 50.
           | That's commendable. I did my masters at CMU robotics, and I
           | would recommend doing it. Most students will be under 30, but
           | CMU is a very practical school with an actual focus on
           | building and programming robots, so if you're proactive you
           | can wet your feet plenty during your masters programme. Don't
           | expect to learn much from courses though, most of the
           | learning happens in your off time in robotics projects or
           | when doing robotics research with professors, and in that CMU
           | is really good
        
           | corysama wrote:
           | Robotics is already taking off. It's just not evenly
           | distributed. I think several companies are being highly
           | optimistic in their projections of millions of humanoid
           | robots in five years. But, I think it's the common mistake of
           | overestimating the short term and underestimating the long
           | term.
        
           | liendolucas wrote:
           | 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.
        
             | Joel_Mckay wrote:
             | 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
        
           | mitthrowaway2 wrote:
           | FWIW, I hear that CMU is a very good school for robotics.
        
           | spieswl wrote:
           | Hugely bullish on the domain.
        
         | snovv_crash wrote:
         | 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.
        
         | dima55 wrote:
         | 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.
        
           | teemur wrote:
           | 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)
        
       | fyhn wrote:
       | 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.
        
         | im_down_w_otp wrote:
         | What's that old robotics industry saying?
         | 
         | "You either die trying to scale ROS to production, or you live
         | long enough to repeatedly reinvent it?" - Johnny 5
        
         | f1shy wrote:
         | 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 launcher (which is a very bad scripting language embedded
         | in horrible XML). Can be very easy be substituted by some
         | python or shell scripts. - a description language of messages,
         | that can be read by C, Python and Lisp; can be substituted by
         | raw sockets or google protocol buffers or whatever. - a
         | parameter/configuration distribution system, which can be
         | implemented based on libconfig
         | (https://github.com/hyperrealm/libconfig)
         | 
         | All that options are pretty much standard, stable and well
         | supported, with bindings for any mainstream language.
         | 
         | I would run away from ROS2 to avoid another disaster when ROS3
         | comes.
        
           | exe34 wrote:
           | 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 thing you've missed, which may well be the
           | biggest offer from Ros and the reason why I haven't sworn off
           | it entirely is the library of robotics functionality such as
           | SLAM and various planning algorithms.
           | 
           | in your opinion, are these at least well implemented? would
           | they be easy to rip out and run separately?
        
         | spieswl wrote:
         | I'd imagine it runs the gamut. ROS for some older places; those
         | starting fresh are probably doing ROS 2.
        
         | patrick451 wrote:
         | 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.
        
         | amacneil wrote:
         | I run a robotics dev tools company and we work closely with
         | companies of all sizes across the robotics industry, so have a
         | unique perspective on this.
         | 
         | I would say about half of the industry (read: for-profit
         | robotics startups from early stages through to 10,000s of
         | robots in production) uses ROS, and of those probably 2/3 are
         | on ROS 2 at this point, and the rest are in some stage of
         | migration. ROS 2 solved a lot of problems that didn't need
         | solving, but like it or not ROS 1 is abandonware at this point
         | so almost no one is planning to stick with ROS 1 longer than
         | they have to.
         | 
         | Most companies aren't maintaining their own fork of ROS (other
         | than to submit patches upstream), but a small number of
         | companies on ROS 1 forked it and diverged so significantly that
         | there is no point trying to rebase on ROS 2 - of these GM
         | Cruise was the most notable, although the future of their stack
         | is unknown now that GM canceled the robotaxi project.
         | 
         | The other half of the industry uses some sort of in-house stack
         | built from parts (compare batteries-included frameworks like
         | rails/django to building a backend using libraries like
         | expressjs and sequelize). There is usually some form of pub/sub
         | messaging architecture, because pub/sub is a natural fit for
         | robotics and makes it easier to log and replay/resimulate. Some
         | common things I see are zeromq, vanilla DDS (no ROS), zenoh, or
         | write their own pub/sub (sometimes using shared memory). The
         | messages themselves are often protobuf, flatbuffer, cbor, json,
         | or sometimes just raw c structs.
         | 
         | Building your own stack isn't hard, but its much easier if you
         | have used ROS before and know which concepts you want to reuse,
         | rather than reinventing everything from first principles.
         | 
         | Some newer robotics frameworks are also starting to spring up
         | which is great to see, for example https://github.com/copper-
         | project/copper-rs and https://github.com/dora-rs/dora
         | 
         | There are also frameworks more specifically targeted towards
         | robot learning, for example
         | https://github.com/huggingface/lerobot
         | 
         | If people are just starting out in robotics, or just starting a
         | robotics company, I still recommend ROS despite its warts, it
         | is worth learning because it has had such a big influence on
         | the current ecosystem. There is no "right answer" though, many
         | companies have been successful with each approach.
        
       | margalabargala wrote:
       | While it's used in industry sometimes, ROS is really one of those
       | by-and-for-academia tools. There's a reason it's near-universally
       | reviled, and why "migrate off of ROS" is a standing goal at a lot
       | of robotics companies.
       | 
       | There's also a reason why it's a standing goal, rather than a
       | completed goal.
       | 
       | It does little or nothing really well, but it does _everything_
       | kind of okay.
       | 
       | There's a lot of "alternatives", most of which do something much
       | better, sometimes much much much better, than ROS, but none of
       | which can replace it all completely. PyRobot, Viam, OROCOS,
       | Webots, all of these do some things much better than ROS, but
       | none of them can drop in and easily replace everything without a
       | _lot_ of developer time, often adding new features to the
       | platform.
        
         | liendolucas wrote:
         | I suffer it so much every single time I have to interact with
         | it that sometimes I really really want to do something else,
         | but I can't. Unfortunately is not my call, is part of my job. I
         | have already made my opinion about ROS in a previous thread,
         | but another user synthesized it very clearly: it's a
         | trainwreck. Now we can be more precise: it's an academia
         | trainwreck tool.
        
           | forrestthewoods wrote:
           | What is your opinion of ROS? I can't find the previous thread
           | you mention.
        
             | liendolucas wrote:
             | https://news.ycombinator.com/item?id=40631558#40634889
        
           | oarfish wrote:
           | 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.
        
             | sashank_1509 wrote:
             | We replaced ROS with GRPC, foxglove and our own code. Works
             | reliably, much better to handle. Would recommend everyone
             | else to try it
        
               | oarfish wrote:
               | If you have the people to build something like this,
               | could well be. If you're a smaller shop without any real
               | experts, the structure enforced by ROS will prevent a lot
               | of chaos and debugging.
        
               | patrick451 wrote:
               | 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?
        
         | contingencies wrote:
         | ROSCon Macao, 2019. As a time hack (our food robotics R&D
         | facility, the "Noodleplex", was right across the border) I
         | dragged all the academics down to the best bar (little
         | resistance offered) instead of attending. While an interesting
         | set, I was gobsmacked how little industrial nous attendees had
         | and came to form the opinion that ROS use goes hand in hand
         | with a "ROS can do CV ... everything is a nail" mentality. CV
         | is a niche tool. Deployed, commercially relevant engineering
         | generally uses something else unless the explicit system goal
         | is visual input, because something else is always faster,
         | cheaper, more reliable and has a supply chain stability half
         | life greater than six months.
        
         | throwup238 wrote:
         | Can you explain what ROS does/is to the uninitiated? Why is
         | everyone still using it if its such a trainwreck?
        
           | spwa4 wrote:
           | It's a framework.
           | 
           | * it's a loosely coupled messaging framework (so you can have
           | 5 daemons that talk to each other to accomplish control at
           | multiple levels)
           | 
           | * it's got robotics libraries with difficult robotics
           | algorithms (PID tuning, forward and reverse kinematics, a way
           | to run control loops very fast, ...)
           | 
           | * it's got sensor libraries (algorithms) and drivers
           | 
           | * it's got a simulator
           | 
           | * it's a linux distro specialized for robotics
           | 
           | You can keep going for a while with this.
        
         | dbcurtis wrote:
         | Sure. A ROS system, being a collection of independent nodes
         | coupled with a publish/subscribe messaging system, allows you
         | to mix and match nodes for whatever. So as a researcher, it is
         | great. It gives you a "good enough" robot for the 98% that is
         | necessary infrastructure for the 2% where you want to
         | experiment/innovate. In an commercial setting, yeah, you run
         | into scaling issues all over the place. Also, the code quality
         | of different stock nodes is highly variable.
         | 
         | So ROS can get you past your A-round -- but count on addressing
         | scalability and stability issues as go. Which is why "write out
         | ROS" is on everybody's to-do list.
         | 
         | In any case, learning ROS is well worth it. As a hiring
         | manager, I know I can easily teach you our system if you know
         | ROS already.
        
           | patrick451 wrote:
           | One of my pet peeves with the algorithm/science ecosystem
           | surrounding ros is that almost all of these algorithms are
           | not usable without ROS. Deep down inside some planning
           | algorithm, you find ros data structures, ros publishers etc.
           | This is poorly designed code. It's like letting raw SQL
           | queries infect an entire ecosystem of libraries. IMO, this
           | pattern is holding robotics back.
           | 
           | Two examples come to mind of packages that do NOT do this:
           | 
           | 1. plotjuggler [1], which is a tool for plotting time serious
           | data. It can connect to ROS, but also supports many other
           | communication paradigms, like mqtt, zeroMQ, websockets,
           | custom data and some more I forget.
           | 
           | 2. nvblox, which at its core doesn't depend on ROS but
           | instead provides a ros2 compatibility layer.
           | 
           | [1] https://github.com/facontidavide/PlotJuggler
           | 
           | [2] https://github.com/nvidia-isaac/nvblox?tab=readme-ov-
           | file#c-...
           | 
           | [3] https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox
        
       | wslh wrote:
       | Based on the Andino robot project [1] the price is greater than
       | USD 250 [2] I wonder how far we can push the price down for
       | schools. For example, putting an [old] mobile phone (with a
       | camera and replacing the battery), and moving to ESP32 and use
       | another OS.
       | 
       | [1] https://github.com/Ekumen-OS/andino/
       | 
       | [2] https://docs.google.com/spreadsheets/d/1TMbENKlHr4g9bBA-
       | EPNu...
        
       | adeptima wrote:
       | 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 statistic on real life examples.
       | 
       | His dream is to automate small mid business manufacturing, and
       | become a Steve Job like figure one day.
       | 
       | What's the good information and resources to follow and educate
       | about real life robotics?
       | 
       | Any tips or even sarcastic comments are welcome. Please help to
       | be a cool uncle ;)
        
         | puffybunion wrote:
         | Can someone that hasn't achieved Steve Jobs' accomplishments
         | show you the way to them? Perhaps you should gift him a
         | biography about Steve Jobs.
        
         | spieswl wrote:
         | It sounds like your nephew has a project in mind. Start there
         | with the basic dependencies and that will start laying out a
         | competency roadmap which looks a lot like a curriculum.
         | 
         | Quick aside: Automate small/mid business manufacturing?
         | Admirable, but will probably choke on the scale problem, so I
         | think the journey will be vastly more interesting than the
         | destination...which is good! Turns out there's a lot of
         | robotics that can be broadly applied.
         | 
         | * Manufacturing --> robotic manipulation, controls, actuation,
         | sensing, decision-making
         | 
         | ** Robotic manipulation --> Linear algebra, likely Python
         | and/or C++, some simulation tools
         | 
         | ** Controls --> Manipulator platform, drivers, physical- and
         | protocol-level choices
         | 
         | ** Actuation --> You want to pick something up right? Air
         | powered? Electric? Probably not hydraulic, but worth
         | mentioning?
         | 
         | ** Sensing --> What's your sensor suite? RGBD? LIDAR? Forces-
         | torques? Combination of the above?
         | 
         | ** Decision making --> FSM? Behaviour trees? Purely functional?
         | 
         | Repeat the decomposition and you'll probably be able to get
         | down to the basic level of the robotics hierarchy of needs.
        
         | lnsru wrote:
         | I also wanted to automate everything. Even got a mentor who
         | brought me back to reality. Basically robot must be available
         | 99,9999% of the time. One unsuccessful operation in 5 year of
         | usage without maintenance. With less it makes no sense to
         | automate because handling a production line incident might be
         | very expensive.
        
         | syntaxing wrote:
         | "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)
        
         | corysama wrote:
         | 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.
        
       | mrtb wrote:
       | 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
        
       | janice1999 wrote:
       | Is ROS 2 approachable for a teenager interested in electronics
       | and what hardware would you recommend for them (considering it as
       | a present for a family member)?
        
         | exe34 wrote:
         | for a teenager, I definitely wouldn't recommend Ros, unless
         | they're already very deep into Linux, c++, build systems, etc -
         | I'm sure there are kids out there that can handle it, but I'd
         | say most would find Ros endlessly frustrating. I think it makes
         | grown men cry.
         | 
         | robot wise, I'd recommend something they can program with a
         | raspberry pi and python, if they have some light background in
         | programming. I had a quick look on Amazon and I have no
         | affiliations with these, but maybe look for something like
         | this: https://www.amazon.co.uk/FREENOVE-Raspberry-Tracking-
         | Avoidan...
         | 
         | note this one doesn't have either a raspberry pi nor any
         | batteries. you might find a better one.
        
       | inetknght wrote:
       | 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.
        
       ___________________________________________________________________
       (page generated 2025-01-19 23:00 UTC)