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