Skip to main content
ROBOTICS · SOFTWARE

What Is ROS (Robot Operating System)?

ROS (Robot Operating System) is a free, open-source set of software libraries and tools for building robot applications. Despite the name, it is not an operating system: it runs on Linux and handles communication between the parts of a robot, such as sensors, navigation and motor control. ROS 2 is the current version.

01

What ROS is and what it is not

ROS, the Robot Operating System, is an open-source framework of libraries, tools and conventions for writing robot software. It began in 2007 at Stanford and the robotics company Willow Garage, and is now maintained by Open Robotics with a large community of contributors. It is free to use, including in commercial products.

The name is misleading. ROS is not an operating system like Linux or Windows: it is middleware that runs on top of one, most often Ubuntu Linux. Its main job is to let the separate programs inside a robot exchange data in a standard way, so a camera driver, a mapping package and a motor controller written by different people can work together.

That standardisation is why ROS spread. A team building a new robot can reuse proven packages for drivers, mapping, navigation and arm motion, and spend its time on what makes its own robot different.

02

How ROS works: nodes, topics and messages

A ROS application is a graph of small programs that talk to each other. The building blocks are:

  • //
    Nodes. Individual programs that each do one job, such as reading a lidar, estimating position or driving the wheels.
  • //
    Topics. Named data streams. One node publishes, for example, laser scans on a topic and any number of nodes subscribe to it.
  • //
    Services and actions. Services are one-off requests with a reply. Actions are long-running goals, such as “drive to dock 4”, that report progress and can be cancelled.
  • //
    Messages. Typed data structures, such as an image, a pose or a velocity command, that keep every node speaking the same format.
  • //
    Packages and launch files. Packages bundle code, configuration and message definitions. Launch files start and configure a whole set of nodes in one step.
03

ROS 1 vs ROS 2

ROS 2 is a rewrite, not an update. ROS 1 relied on a central master process and a custom transport, which worked well in research labs but was weak on real-time behaviour, security and multi-robot systems. ROS 2 replaced that core with DDS, an industry messaging standard from the Object Management Group, and the last ROS 1 release, Noetic, reached end of life in May 2025.

Feature ROS 1 ROS 2
Communication Custom TCP/UDP transport with a central master DDS, with automatic discovery and no master
Single point of failure Yes, the master No
Real-time support Limited Designed for it, with tunable quality of service
Security None built in Authentication and encryption through SROS 2
Operating systems Ubuntu Linux Ubuntu Linux, Windows, macOS and some real-time OSs
Multiple robots Awkward to set up Supported natively
Status End of life since May 2025 Active, with a long-term support release every two years

For any new project, ROS 2 is the choice. Long-term support releases such as Humble and Jazzy are supported for five years, which suits products that need a stable base. Existing ROS 1 robots can be moved over in stages, using a bridge package that passes messages between the two.

04

What ROS gives you out of the box

Much of the value of ROS lies in the packages and tools built around the core. The best known include:

  • //
    Nav2. The ROS 2 navigation stack for mobile robots: mapping, localisation, path planning and obstacle avoidance.
  • //
    MoveIt 2. Motion planning for robot arms, including collision checking and grasping.
  • //
    RViz and rosbag. RViz shows sensor data, maps and robot models in 3D. rosbag records live data so a test run can be replayed and debugged at a desk.
  • //
    Gazebo. An open-source simulator that runs the same ROS code against a virtual robot before it goes near hardware.
  • //
    Drivers. ROS 2 drivers for most lidars, depth cameras and motor controllers, often supplied by the sensor makers themselves.
05

Running ROS 2 on NVIDIA Jetson

Most robots that run AI models use an NVIDIA Jetson module as the main computer, and ROS 2 runs on Jetson’s Ubuntu-based software. The foundation is JetPack, NVIDIA’s software stack for Jetson, which provides the Linux image, CUDA and the AI libraries. On top of it, NVIDIA’s Isaac ROS packages add GPU-accelerated ROS 2 nodes for jobs such as depth estimation, visual odometry and object detection, and pass images between nodes without copying them through the CPU.

Camera makers support the same route. Our walkthrough of the ZED ROS 2 wrapper on Jetson shows a stereo camera publishing depth, point clouds and position as standard ROS 2 topics.

On the hardware side, our Jetson Orin computers suit most mobile robots and inspection systems, and Jetson Thor raises the ceiling for robots running several large models. Within the Advantech range we list, the MIC-742-AT Jetson Thor computers ship with JetPack 7.0 pre-installed, so a ROS 2 install starts from a current NVIDIA software base.

FAQ · 01
What operating system does a Jetson robot computer run?
Linux for Tegra (L4T), NVIDIA’s Ubuntu-based Linux for Jetson. It ships as part of JetPack with the kernel, drivers and board support for each module, and ROS 2 is installed on top of it like any other Ubuntu software.
Read the full FAQ —
06

Quick answers on ROS

ROS: common questions

What does ROS stand for?

Robot Operating System. In robotics, ROS always means this framework. In medicine and finance the same letters mean other things, such as review of systems or return on sales.

Is ROS an operating system?

No. ROS is middleware and a set of tools that run on an operating system, usually Ubuntu Linux. It handles communication between robot programs, not hardware scheduling or memory like a true operating system.

Is ROS free to use commercially?

Yes. ROS 2 core packages use permissive open-source licences, mainly Apache 2.0, so they can be used in commercial robots. Check the licence of each additional package you include.

What programming languages does ROS use?

Mainly C++ and Python. Both have official client libraries. C++ is usual for performance-critical nodes such as drivers and planners, and Python for tools, tests and higher-level logic.

Should I learn ROS 1 or ROS 2?

ROS 2. ROS 1 reached end of life in May 2025 and receives no further updates. New packages, tutorials and hardware support target ROS 2.

We supply Jetson and x86 robot computers with the operating system image, storage and wireless fitted before they ship, ready for your ROS 2 install. Tell us your sensors, models and I/O, and we will specify the system to match.