Intelligent Autonomous Systems

Ludde127 2025-09-03
L

How does robot programming work?

Why ROS (the robotics operating system) makes sense

Robotic systems are usually very complex, lots of sensors, hugly distributed, multiple computers many processes. Teamwork, distributed teams, hardware abstraction, physical reality not compliant.

A reason robotics often does not work is that the environment is uncertain.


Each part in the robot has a different coordinate system so they must be computed to share a global coordinate system. ROS solves this for us.

Human brain and distributed functions

We have a classic 3 layer architecture in robotics, low level with online sensor processing, mid level with recognition, robot actions sills and action selection in the behavior layer. In the high level we have planning.

ROS Graph concept

Every component and little process in the robot is a node which produces and consumes data.

The nodes can communicate trough topics, this is a async m2m communication stream (classic event stream).

We have services, synchronous one to one network based functions.

And actions which are async one to one network based functions.

Nodes can offer topics, services and actions.

In ROS every component of a robot is normally a node and all relevant functions are represented as nodes. And it all can run on different networks if needed.

ROS Nodes communicates via ROS topics using IP.

ROS messages: Define data types, for example image data, point cloud, 3d location etc.

ROS Topic: A ross topic is associated with one message type.

ROS is not an OS

It is however more than a middleware.

It can be seen as a "meta" OS for robots. Agent based architecture publish subscribe services topics. A collection of packages for building. A bunch of simulation and visualization tools. Visualization of ROS parameters with RVIZ.

There exists a lot of open source code for ROS.

We are using ROS2 version "Jazzy".