
Qt C++ Warsaw Meetup: retrospective
“21 August 2025 –What a night! Somco Software organized a Qt C++ Warsaw meetup and [dot, dot, dot]”* —– *-This […]

Robot Operating System (ROS) is an open-source framework that has become the de facto standard for robotics software development. Modern robots are super complex, with many components like sensors, motors and AI algorithms – building all of this from scratch is hard for developers.
ROS solves this problem by providing a standardized, modular platform for developing advanced robotic systems. Despite the name, ROS is not an actual operating system like Windows or Linux; it’s a middleware layer or SDK (software development kit) that runs on top of a traditional OS (usually Ubuntu Linux).
In this article we’ll cover:
Need help with embedded systems?
Our embedded development services help you integrate sensors, real-time software and hardware platforms into robust robotic solutions. Let’s talk about how we can speed up your project.
ROS was born in the mid 2000s as a research project at Stanford University to make robotics software more reusable and collaborative. Early on, graduate students Eric Berger and Keenan Wyrobek wanted to create a common “baseline system” so researchers wouldn’t have to keep reinventing the wheel for each new robot. They built a prototype robot (the PR1) and software by borrowing best practices from earlier frameworks like Morgan Quigley’s Stanford “Switchyard” system. In 2007 they teamed up with Scott Hassan’s Willow Garage, a robotics incubator, which shared their vision of creating a “Linux for robotics” – an open platform for all. The first ROS code repository was created at Willow Garage in November 2007.

Willow Garage then developed the PR2, a two-armed mobile robot, as the flagship hardware for ROS. By 2010 ROS had its first official release (ROS 1.0) and Willow Garage distributed PR2 robots to several universities to grow the community. It worked: academic and open-source contributions poured in and ROS became a rich ecosystem. In 2012 Willow Garage helped create the Open Source Robotics Foundation (OSRF) to manage ROS’s future. By 2013 OSRF (later renamed Open Robotics) took over ROS development as Willow Garage shut down. Under OSRF/Open Robotics ROS continued to evolve with annual releases and growing community support.
A big milestone was the conception of ROS versions like ROS 2 around 2014. The limitations of “ROS 1” (the original ROS) prompted a rewrite to better suit commercial and advanced research needs. ROS 2 was designed to support real-time control systems, multi-robot systems, embedded platforms, and to incorporate modern networking technologies. The first ROS 2 version (code-named Ardent Apalone) was released in December 2017. Since then, ROS 2 has gradually become the primary focus, with ROS 1’s final long-term release (Noetic) reaching end-of-life in 2025. Today, ROS stands as an ever-evolving open-source project with a global community, enabling advanced robotic applications.
In essence, ROS is a middleware framework that helps different parts of a robot’s software communicate reliably, enabling developers to create robust systems quickly, simplifying the software infrastructure. The ROS system organizes software into a graph of processes called nodes, each handling a specific task (for example, one node might read a camera, another plans a path), facilitating efficient communication patterns.

These nodes communicate with each other by passing messages (using msg files) over topics or via services, allowing for seamless operation across multiple nodes. A topic is like a named bus for streaming messages (using a publish/subscribe model), and a service is a request/reply interface for one-off tasks, allowing nodes to exchange messages efficiently. In ROS 1, a central ROS Master process keeps track of all nodes and facilitates connections, setting up peer-to-peer communication between producer and consumer nodes. (ROS 2 replaces this with a decentralized discovery mechanism, as discussed later.) The ROS parameter server in ROS 1 is a shared dictionary for configuration parameters that nodes can read or write, such as control commands for robot movements, which are key components for robot configuration.
To illustrate, imagine a mobile robot: one node publishes laser scanner data to a “/scan” topic, while a camera node might publish image data to a different topic, so vision-based tasks can be done. Meanwhile a motion control node might offer a service “/move_base” that when called with a target location will move the robot there, while an image processing node might process the visual data. This modular architecture allows developers to mix and match components and reuse code across projects, so communication can happen across different robotic systems. ROS handles the message passing and data marshaling in the background so you can focus on processing data and robot logic.
Beyond the messaging core, ROS tools and libraries simplify common robotics tasks. For example, RViz is a 3D visualization tool for robot sensors and state, useful for debugging and monitoring. Rosbag is a tool for recording and replaying sensor data, which helps with testing algorithms off-line. There are also build systems (e.g. Catkin in ROS 1) and utilities (like roslaunch for starting many nodes at once). ROS is distributed through “packages” – bundles of nodes, libraries, and configurations for specific functionality, improving the development process. Thousands of ROS packages exist for everything from robot drivers to SLAM (Simultaneous Localization and Mapping), meaning you can often find a ready-made solution for standard robotics problems.
As ROS grew in popularity it became clear a new architecture was needed to meet industrial and modern robot requirements. ROS 1 (the original ROS) was a great start but had limitations: it relied on a single master node (so multi-machine deployments were fragile if the master failed), it wasn’t real-time safe out of the box and it was tied to Linux-only libraries. ROS 2 was created to fix these issues.
To illustrate the evolution, the table below highlights the main differences between ROS 1 and ROS 2:
| Aspect | ROS 1 | ROS 2 |
|---|---|---|
| Communication & Architecture | Centralized roscore/master, peer-to-peer links; limited protocols (TCPROS/UDPROS), no QoS control | Based on DDS (Data Distribution Service), decentralized discovery, QoS policies, no single point of failure |
| Real-Time Support | Not real-time safe by default; only partial workarounds possible | Designed for real-time systems, supports embedded platforms and real-time OS |
| Platform Support | Primarily Linux (Ubuntu) | Cross-platform: Linux, Windows, macOS, real-time OS |
| Programming & Codebase | Mix of C++ and Python; legacy design choices remain | Mostly C++ with modernized architecture, Python for high-level scripting; better performance & portability |
| Build System | Catkin build system | Ament build system with improved package management |
| Node Management | No built-in lifecycle management | Lifecycle nodes for deterministic startup/shutdown |
| Security | Minimal built-in security | Enhanced security features (authentication, encryption, access control) |
| End-of-Life | Final release: ROS 1 Noetic (EOL in May 2025) | Ongoing active development, future of the ROS ecosystem |
ROS 1 was the foundation that brought standardization and collaboration to robotics. ROS 2 builds on that success, adding modern architecture and real-time, cross-platform capabilities so it’s suitable not only for research but for demanding industrial and commercial deployments.
ROS has become popular because it simplifies robotics development in several ways. Here are some key benefits of using ROS:

Using ROS can save development time, increase reliability through tested libraries and foster collaboration. It provides a structure to a robotics project, addressing common pain points like inter-process communication, hardware abstraction, data recording and visualization. By solving these generic problems ROS lets developers focus on innovative features rather than reinventing infrastructure.
Since its inception ROS has found its way into many real-world applications. Here we show examples in medical technology, automotive and Industry 4.0 (where ROS is driving innovation:

ROS is being used in medical robotics research and healthcare automation. In surgical robotics for example ROS frameworks are used to integrate imaging systems with robotic manipulators for image-guided interventions. Researchers have built ROS-based systems for tasks like precision needle placement and robotic surgery planning, combining ROS with medical imaging platforms (like 3D Slicer). By using ROS developers can interface with cameras, MRI/CT images, robotic arms and patient data in one system – speeding up prototyping of advanced medical devices and medical software development.
Beyond large commercial platforms like the Da Vinci robot, many academic and research labs are building smaller, specialized surgical robots using ROS. These systems often combine robotic arms, surgical microscopes and haptic feedback devices into testbeds for microsurgical research. ROS provides the middleware to synchronize real-time imaging, force feedback and robot control, so researchers can experiment with new surgical techniques. They can prototype complex workflows – like bimanual manipulation or tissue simulation – without reinventing the low-level communication stack, which accelerates innovation in surgical robotics.

The automotive industry has adopted ROS heavily, especially in autonomous vehicles and driver assistance. Many research and prototype self-driving cars use ROS as their software backbone. A prominent example is Autoware, the first open-source full-stack software for autonomous driving, which is built on ROS. Autoware (now in ROS 2) provides modules for everything an autonomous car needs – from sensor perception (camera, LiDAR processing) and localization, to path planning and vehicle control – all as ROS nodes and libraries. Using ROS in this context allowed a global community to collaborate on autonomous vehicle technology, accelerating progress in self-driving systems and automotive HMI software, where intuitive interaction between driver, passengers, and automation is key.
Car manufacturers and robotics startups use ROS for rapid prototyping of experimental vehicles. ROS’s simulation tools (like Gazebo/IGN for cars) allow testing self-driving algorithms in virtual cityscapes before trying them on real cars, which is safer and more efficient. Companies have created ROS interfaces for automotive sensors and CAN bus controllers, so new sensors or drive-by-wire systems can be integrated into a ROS-controlled vehicle. While commercial self-driving products may eventually deploy on optimized code or different frameworks, ROS is invaluable in R&D. It provides a common language for engineers to share algorithms and datasets. As an example, many autonomous vehicle projects – from small scale (e.g. campus delivery robots) to full-sized robo-taxis – have roots in ROS-based development.

Industry 4.0 refers to the next generation of smart factories and industrial automation, and ROS is playing a key role in this domain through the ROS-Industrial initiative. ROS-Industrial (ROS-I) is an extension of ROS for manufacturing automation and robotics. It brings ROS’s flexible, high-level programming to industrial robots like robotic arms, conveyors and AGVs (automated guided vehicles). One major advantage ROS-I provides is interoperability: it allows robots and equipment from different manufacturers to communicate and work together under one control framework. Industrial robots traditionally use proprietary software that doesn’t mix well, but ROS-I acts as a translator and coordinator, which is crucial for industrial automation systems where multiple machines must coordinate.
For example ROS-I has packages for common industrial robot brands (ABB, FANUC, Yaskawa, etc.) so a ROS program can send motion commands to any of these robots using the same interface. In a practical scenario a ROS-driven software can coordinate a robot arm on one side of a workcell with a mobile robot that delivers parts, using sensors to monitor the process – all integrated via ROS messages. By bridging the gap between proprietary systems, ROS lowers the barrier to deploying advanced automation in manufacturing, especially for smaller companies who benefit from open-source solutions. The result is a more connected, efficient production line where data flows freely between machines – the vision of Industry 4.0.
From university labs to global phenomenon, ROS has become the foundation of robotics. It’s the glue that holds complex robotic systems together – a common framework to build upon, which has saved countless hours of development time around the world.By making robots “think and communicate” the same way, ROS has created an environment where sharing and collaboration is the new normal, and innovation in robotics happens fast. Whether it’s a startup building a delivery drone, an automaker prototyping self-driving cars or a hospital deploying service robots, ROS provides the software building blocks to speed up progress.
As ROS 2 gets better and better and more supported, the Robot Operating System is at the heart of the robotics revolution – for experts and newcomers alike to build smarter, more capable robots.
Need help with embedded systems in robotics?
We help you design and integrate real-time software, hardware platforms and sensor networks – for performance and speed to market. Let’s talk about your project.
Let's face it? It is a challenge to get top Qt QML developers on board. Help yourself and start the collaboration with Somco Software - real experts in Qt C++ framework.
Discover our capabilities
“21 August 2025 –What a night! Somco Software organized a Qt C++ Warsaw meetup and [dot, dot, dot]”* —– *-This […]

Software as a Medical Device (SaMD) refers to software that is intended for medical purposes (such as diagnosing, treating, curing, […]

The recent $100,000 H-1B visa fee and new entry restrictions have left many U.S. companies questioning how to scale their […]