ROS vs ROS 2: What’s the Difference, Which One to Use

If you’re working in robotics — or thinking about it — chances are you’ve come across ROS and ROS 2. These are two of the most widely used open-source frameworks for building, controlling, and connecting complex robots.
But what’s the real difference between the two? And which one should you choose today?

📖​ How ROS and ROS 2 Came to Be

ROS (Robot Operating System) was created in 2007 by Willow Garage, a research lab in California aiming to simplify robotics development. The idea was to provide a modular, open-source platform with common tools and libraries so that researchers could stop reinventing the wheel and focus on innovative, higher-level problems.

Over time, ROS became the standard in academic and experimental robotics, thanks to its huge community and thousands of ready-to-use packages for all kinds of robots.

However, it had some limitations: no built-in real-time support, no secure communications, and difficulties handling distributed, multi-robot environments.
To address these issues, ROS 2 was introduced in 2014 by Open Robotics, with backing from major companies like Amazon, Intel, Bosch, and Apex.AI.

📊 The Key Differences Between ROS and ROS 2

Let’s quickly break down where these two frameworks differ:

  • Architecture:
    ROS 1 uses a centralized system with a ROS Master node managing communication. ROS 2 is fully decentralized, thanks to the DDS (Data Distribution Service) middleware, enabling more scalable, reliable communications.

  • Communication:
    ROS 1 relies on proprietary protocols like TCPROS and UDPROS. ROS 2 uses DDS, a widely adopted standard in industries like defense, aerospace, and automotive.

  • Real-time and Security:
    ROS 1 lacks real-time capabilities and native security tools. ROS 2, on the other hand, supports real-time communication setups, authentication, encryption, and fine-grained permission management.

  • Platform Compatibility:
    ROS 1 runs primarily on Linux. ROS 2 is cross-platform — it works on Linux, Windows, macOS, and even embedded devices via micro-ROS.

  • Multi-Robot and Distributed Systems:
    ROS 1 requires complicated workarounds for multi-robot setups. ROS 2, with DDS, was built for distributed, multi-robot applications.

🔍 When to Use ROS, and When to Choose ROS 2

The decision depends heavily on your project’s goals:

  • If you’re working on a prototype, academic project, or need to get something running quickly, ROS 1 can still be a solid option. It has a huge library of existing packages and a vast community.

  • If you’re developing an industrial, commercial, or distributed system, or need real-time support, security, or multi-robot coordination, ROS 2 is absolutely the right choice. It’s modern, scalable, and designed for today’s robotics challenges.

🎯 A Few Extra Tips

If you work with mobile robots, check out Nav2 — the modern replacement for ROS’s original navigation stack. It’s far more modular and built for multi-sensor, multi-robot environments.

If you’re interested in embedded systems, micro-ROS brings ROS 2’s capabilities to microcontrollers like the ESP32 and STM32, making it much easier to integrate small devices into larger robotics systems.

🚀​ Final Thoughts

ROS 2 isn’t just an upgrade to ROS 1 — it’s a complete rethinking of how a robotics framework should work for real-time, secure, distributed, and scalable applications.

If you’re starting a serious or industrial-grade robotics project today, ROS 2 is the way to go. ROS 1, meanwhile, remains a great resource for learning, prototyping, and leveraging its vast ecosystem of existing tools and libraries.

If you’d like, in a future post we could walk you through how to install ROS 2 on Ubuntu and set up your first virtual mobile robot. Would you be interested? Let us know in the comments!

Want to learn more?

You can find a detailed explaination of ROS2 in the "Self Driving and ROS 2 - Learn by Doing! Odometry & Control" course
DISCOUNT
es_ES