HORUS/blog

Sep 5, 2026 · ros2 · learning-robotics · middleware · career

Is ROS 2 Worth Learning in 2026? An Honest Answer

Yes, ROS 2 is worth learning in 2026 for almost anyone entering robotics, and here is the one situation where a leaner stack is the better use of your months.

Yes, learning ROS 2 in 2026 beats starting with a leaner middleware, because ROS 2 is still the vocabulary the whole field speaks. The concepts transfer: nodes, topics, transforms and clock discipline mean the same thing in HORUS or any home-grown stack, so the hours are not wasted. That flips only if you know exactly what you are shipping, on one machine, with a team that stays small. The rest of this post is for someone choosing what to learn next: a student, a career switcher, or an engineer told to pick a stack.

You probably opened a tutorial, and half an hour later you were reading about a build tool instead of a robot. Maybe the install steps assumed a version of Linux you do not run, or the sample package built once and then stopped building after an update you did not make. Maybe you got a turtle moving on screen and could not tell whether you had learned anything a person would pay for. And in the background sits a forum thread calling the whole thing bloated, and another calling it the only serious answer, both written with total confidence.

Underneath the question is usually a different one. People rarely want to know whether a framework is good. They want to know whether the next few months will still be worth something in three years, whether this is the thing standing between them and a robotics job, and whether the frustration they are feeling means they picked the wrong tool or simply that robots are hard. Those are answerable questions, and the answers are not the same for a student, a career switcher and an engineer with a product deadline.

Should I spend the next few months learning ROS 2?

Yes, if you intend to build robots with other people, because ROS 2 is the common language of nearly every team you might join or hire into. The important distinction, and the one that ends most arguments about this, is between learning ROS 2 and shipping on ROS 2. Learning it means understanding how robot software is decomposed: which pieces run separately, how they exchange data, how a robot knows where its own hand is, why every message carries a timestamp and what goes wrong when that timestamp lies. Those ideas came out of decades of robotics work and they are true regardless of the tool. Shipping on it is a separate decision, made per product, with different trade-offs about drivers, timing and team size. Plenty of engineers learn ROS 2, use it for years, then ship one product on something leaner and lose nothing. Almost nobody does the reverse successfully, because the person who never learned the vocabulary keeps rediscovering it under their own names.

What is ROS 2, in plain terms?

ROS 2 is two things sharing one name: a way for programs on a robot to pass messages to each other, and a large collection of ready-made robot software that assumes that way. The messaging half gives you programs that run independently and publish data by name, so a camera program can be restarted without the controller knowing. The collection is the reason it dominates: navigation that gets a wheeled robot across a building, mapping, arm planning, a bookkeeping system that tracks where each part of the robot is relative to every other part, a recorder that captures a whole run for replay, and a visualiser where you can watch what the robot thought it saw. Learning ROS 2 mostly means learning that second half, because the messaging is a week and the ecosystem is a career. It also means learning its tooling, which is where beginners suffer most: a build system, a workspace layout, launch descriptions and version-matched packages that assume a particular Linux.

What could I learn instead of ROS 2?

The honest alternatives are not other frameworks but the skills underneath every framework. Control theory, so a robot stops oscillating for reasons you can name. Linux, because most robot problems are actually operating system problems in costume. One systems language, so you can read the code that ships. Beyond those, there are real frameworks worth knowing: HORUS is an open-source real-time middleware for Rust, Python and C++ where the three languages share the same shared-memory ring buffers, so messages are not serialised between programs on one machine, and it is Apache-2.0 and validated in simulation rather than across a fleet, which makes it a smaller thing to learn than ROS 2 but also a smaller thing to receive. Zenoh and eCAL teach messaging without the framework around it. dora-rs teaches pipelines as graphs. A vendor SDK teaches one machine deeply and nothing else. The full comparison of those choices lives in the alternatives rundown.

How do the learning paths compare?

The path that suits you depends far more on where you are going than on which technology is better. A student and a founder can correctly make opposite choices from the same table, so read the last two columns first and treat the middle one as a warning label rather than a syllabus. One thing worth saying before the rows: nothing here is exclusive. The common professional route is to learn the ecosystem first because that is where the shared vocabulary lives, then pick up a lean transport later when a specific robot demands it, and that order is easier than the reverse. What genuinely wastes time is learning two frameworks at once, before either has been used to make a physical thing move. One more warning about tables like this one: the rows describe what each path gives you, not how hard the path is, and difficulty rarely comes from the technology. It comes from learning an operating system, a build tool and a robot in the same week, which is a scheduling mistake rather than a technology choice.

OptionWho it is forWhat it assumes you knowWhen to pick itWhen not to
ROS 2, the whole ecosystemPeople aiming at a robotics job or a mapping robotLinux, Python or C++, patience with build toolingYou want the field's default vocabulary and its packagesYou have one product, one machine and a fixed deadline
ROS 2 concepts only, in simulationLearners who need the ideas, not the deploymentBasic Python and a simulatorYou want transferable ideas without hardwareYour employer expects you to ship on the stack
HORUSDevelopers with one machine and a loop that must not be lateOne of Rust, Python or C++, plus your own control codePrograms in different languages must share memory without a conversion stepYou need navigation, mapping and drivers handed to you
Zenoh or eCAL aloneEngineers who only need messaging or recordingNetworking or replay workflows, plus your own structureThe framework parts were never your problemYou wanted a framework
dora-rsPeople building perception pipelinesRust or Python, and thinking in graphsThe robot is a chain of processing stagesYou need a long support horizon
A vendor SDKPeople committed to one purchased machineThat vendor's tools and termsThe robot is bought rather than builtYou expect to change vendors later
No framework, one programSolo builders with a single-purpose machineThreads and shared state in your languageThe robot will always be one programA second person or a second machine joins

Is ROS 2 worth learning if I am a student, a career switcher, or a hobbyist?

For a student, ROS 2 is worth learning, because your marks, your lab and your first internship all run on other people's packages. Learning the ecosystem is how you get to spend your project on the interesting part instead of writing a driver for a depth camera. For a career switcher the answer is also yes, but for a blunter reason: interviewers use the vocabulary as a filter, and being able to explain a transform tree and a stale timestamp signals experience faster than any project description. Take the shortcut and put a real robot behind it, even a cheap one, because everybody's portfolio contains the same simulator screenshots. For a hobbyist the answer is genuinely maybe. If your project is one machine that does one thing and you are the only person who will ever touch it, the ecosystem is a large tax for a small benefit, and you may be happier writing a single program. Learn the ideas anyway. You will steal them.

Does it matter what hardware I will actually run?

Yes, and the hardware decides more than people expect, because a large part of ROS 2 assumes a computer with room to spare. On a laptop or a full onboard computer the tooling overhead disappears into headroom you already have, and the ecosystem argument wins easily. On a small single-board computer the picture tightens: discovery traffic, extra copies of every image and a heavier startup all cost you something visible, and people in that situation often keep the ideas and drop the framework. On a microcontroller the question does not apply at all, because a microcontroller runs firmware and speaks to the rest of the robot over a small link. There is also a sensor question that outranks the computer. If the parts you plan to buy only ship drivers written against ROS 2, learning ROS 2 is not optional, it is the cost of using your own hardware. Check that before deciding, because it quietly makes the decision for you.

How long before ROS 2 is useful to me?

You can make a simulated robot move in an afternoon, and you will be dangerous with it in a few months of steady work. The unusual thing about the learning curve is where the pain sits. The concepts are not hard, and most people grasp publishers, subscribers and transforms quickly. The tooling is where weeks disappear: workspace layout, build steps, environment setup, version mismatches between packages, and error messages that describe the symptom several layers away from the cause. That is why so many people conclude they are bad at robotics when they are actually meeting a build system for the first time. Plan for it. Spend the first week on Linux and the terminal rather than on the robot, use the version everyone else is using rather than the newest, and copy a working example before writing anything from scratch. The people who get through quickly are not smarter; they refused to fight the tooling and their robot on the same day.

Do I need C++, or is Python enough?

Python is enough to learn everything that matters and enough to run most of a real robot, and it stops being enough in exactly one place: the loop that must not be late. Learn the concepts in Python. Write your behaviour, your mission logic and your tools in Python, because the feedback loop is fast and the code is short. Reach for C++ or Rust when you meet the specific problem those languages solve, which is a loop where the interpreter pausing to tidy up would leave an arm mid-swing. Employers expect this split too: job adverts asking for C++ are usually describing the innermost part of the machine, not the whole product. If you want to see how compact the message-passing part of a node can look once the ceremony is removed, the eight-line Python comparison is a short read. Learn one compiled language eventually. Which one matters far less than finishing a project in it.

What do I give up by learning ROS 2?

You give up time, and you pick up habits that are harder to notice. The time is real: weeks on tooling that teach you nothing about robots, and a mental model shaped around one ecosystem's way of splitting a system into pieces. The habit worth guarding against is assuming that everything must be a separate program and that passing messages between programs is free. It is not free, and a beginner who learned only inside a framework often cannot say what happens between the publish and the arrival, so when a robot starts stuttering they have no way to reason about it. The second habit is reaching for a package before understanding the problem, which works until the package almost fits. None of this is an argument against learning it. It is an argument for learning one layer below it as well: what your operating system does with your threads, what a copy costs, and why data that arrives late is sometimes worse than data that never arrives.

When is ROS 2 the better choice?

ROS 2 is the better choice for almost everybody who is still deciding, and specifically for four groups. Anyone who wants to be employable in robotics, because the interviews are conducted in this vocabulary. Anyone building a robot that must navigate, map or plan an arm path, because that software exists and is tested by thousands of machines. Anyone in a lab whose work must be reproduced by someone else. And anyone whose team will grow, because a new colleague can be useful in their first week rather than their second month. For all four, HORUS is not the answer, and starting there would mean writing by hand what was already available. The exception is narrow and honest: one machine, one loop that cannot be late, a small team that owns its own control code, and no need for a supplied navigation stack. If that is you, the full comparison of the alternatives is the more useful page.

Is ROS 2 dying because everyone complains about it?

No, and here is why: the volume of complaint is a function of how many people use something, not of how well it works. Every widely used tool generates a permanent stream of frustration, and robotics complaints are loud because the failures are physical and expensive. Look at what is actually happening instead. New sensors ship with drivers for it. Companies hire for it. Universities teach it. Its transport layer keeps being modernised, and competing messaging projects have been adopted underneath it rather than replacing it. What is true is that a growing number of teams use it selectively: the ecosystem for perception, mapping and tooling, something leaner for the innermost control loop. That is not death, it is maturity, and it is the normal fate of any general framework once the specialised cases get big enough to fund their own tools. Betting against it in 2026 is betting against the drivers, and the drivers are the part nobody wants to write.

Will learning ROS 2 make me a robotics engineer?

Partly, but not the way you think. Knowing the framework makes you employable in a screening sense and lets you assemble a working robot from parts, which is genuinely valuable and is how most teams get moving. It does not make you the person who can fix the robot when it behaves badly for a reason nobody has seen before, and that person is what a team is actually short of. The gap is filled by things the tutorials skip: how a control loop becomes unstable, why a filter drifts, what your operating system does when two threads want the same core, how to read a log and form a hypothesis rather than a guess, and how to design an experiment on hardware that answers one question at a time. Learn the framework to join the field. Learn those to stay in it. The engineers who get stuck are usually the ones who kept adding packages rather than developing the ability to explain why the machine did what it did.

What does it look like when someone learns ROS 2 the wrong way?

Learning it the wrong way looks like a robot that works in the demonstration and cannot be explained anywhere else. The classic version: someone assembles a stack from tutorials, the robot drives, and then it clips a doorframe once a day and nobody can say why. Under it is usually a data-freshness mistake rather than a bug, because nothing crashed. Somebody used a sensor reading that was older than they assumed, or two sources of position that disagreed, or a queue that was quietly dropping the oldest message under load. Framework code hides all three behind an interface that keeps returning plausible values. The fix is a habit, not a package: always know how old the data in your hand is, and never treat two measurements as simultaneous because they arrived together. That habit is exactly what the walkthrough of fusing motion sensors is really about, and it transfers to every stack you will ever use.

How do I decide what to learn first?

Decide by naming what you want to be true in six months, then work backwards from that single sentence. If the sentence is about employment, learn the ecosystem and build one robot that does one useful thing on real hardware, because a video of a physical machine outranks every certificate. If the sentence is about a product with a deadline, learn only the part of the stack your product touches and buy or borrow the rest. If it is about understanding, learn control and Linux first and treat every framework as a detail. Then apply one filter that saves people the most time: do not learn a second framework until the first one has moved something physical. Framework-hopping feels like progress because each new tool is easier at the start, and it produces engineers who have installed many things and finished none. One robot, one stack, all the way to something that moves in a room, teaches more than a year of comparisons.

Take the line that matches your situation:

The HORUS Fit Framework is the checklist behind those lines, and not one of its five axes is a number: ecosystem size, setup effort, team size fit, deployment target, and licence. Score any option you are weighing on all five, and the axis you cannot compromise on decides it.

Learn the ecosystem first. When you later meet the machine that needs a leaner layer underneath, HORUS is open source under Apache-2.0 and waiting. Star it so it is in your list when you start building.

Found this useful? Share it:Discuss on HNShare on X