CSCE 452/752 Robotics and Spatial Intelligence, Fall 2025

3. A Quick Tour of ROS

Robot Operating System

For the programming assignments in this class, we will use a software platform called “Robot Operating System,” or ROS.
The official description is:
The Robot Operating System (ROS) is a set of software libraries and tools for building robot applications.
Goal for today: Understand why ROS exists and understand the basic concepts that ROS uses.

Why ROS exists

Distributed computation

Software for robots is often distributed. ROS makes this easier by providing message passing mechanisms for moving data between processes.

Code reuse

Software development is painful if standard algorithms must be re-implemented for each new robot or operating environment.
ROS makes this easier by providing usable implementations of many robotics algorithms, including both reliable, commonly-used techniques, and leading-edge research results.
Equally important, because these algorithms interact with each other using the message passing system described above, it is easy to combine many algorithms in a single application.

Simulation

Robot programming is often much faster when the part of the initial testing can be done using a simulator, rather than a real robot.
ROS makes this easier by providing a consistent way for simulators and robots to expose the same APIs.
The code never “knows” whether it is talking to a real robot or to a simulator.
Note that ROS is not a simulator. Instead, this slide is saying that the architecture of ROS works well for swapping between simulators and real robots, with only minimal changes to the code.

Basic ROS Concepts

Some nouns

More nouns

But wait, there's more!

Getting more information

ROS versions

Major versions: Distributions:
  • Ardent Apalone
  • Bouncy Bolson
  • Crystal Clemmys
  • Dashing Diademata
  • Eloquent Elusor
  • Galactic Geochelone
  • Foxy Fitzroy
  • Humble Hawksbill
  • Iron Irwini
  • Jazzy Jalisco
  • Jazzy Jalisco
  • Kilted Kaiju

Documentation

https://docs.ros.org/
Some relevant pages for Project 1: