Building State-of-the-Art Robotics Communication Using ROS2
The field of robotics is becoming increasingly collaborative, evolving rapidly from monolithic, single-unit architectures to distributed, heterogeneous, and highly networked systems. Modern robots operate as coordinated collections of specialized modules (sensors, actuators, control systems, and decision-making algorithms), and these modules are often spread across multiple microcontrollers, single-board computers, and even external compute resources.
This shift demands a communication framework that is not only powerful and flexible, but also exceptionally reliable in managing data flow, synchronization, and inter-process communication (IPC) within the robot, as well as networked communication between robots or remote control systems.
ROS2 emerges as the state-of-the-art solution to meet these requirements, providing a robust and resilient communication ecosystem tailored for modern robotic architectures.
Within this context, this talk will cover:
- What ROS2 is
- Its purpose and core capabilities
- The publish/subscribe paradigm applied in ROS2
- ROS2’s decentralized communication model
- Real-world applications where ROS2 excels
- A practical demonstration of ROS2 communication between a PC and a Raspberry Pi SBC
What this presentation is about and why it matters
How do you move robot communication from a single onboard program to a distributed system made of sensors, actuators, and computers that still cooperate cleanly? Pedro Bertoleti uses a practical walkthrough centered on ROS 2, framing why its communication model matters and how it shows up in a simple Raspberry Pi plus PC setup. He walks through the publish subscribe pattern, the role of nodes, messages, topics, and domain isolation, then closes with a hands-on demo using the standard ROS 2 examples. This is a good fit if you want a grounded introduction that connects architecture to a working bench example.
Who will benefit the most from this presentation
- Robotics engineers who are moving from single-board prototypes to multi-node systems
- Embedded developers who need robots or devices to communicate over Ethernet or Wi-Fi
- Software developers who want a concrete introduction to ROS 2 concepts and terminology
- Engineers working with Raspberry Pi and PC-based robot demos
- Teams evaluating ROS 2 for distributed or heterogeneous robotics projects
What you need to know
A basic comfort with Linux and command-line setup will help, since the talk includes installation and environment setup on Ubuntu. It also helps to know the following terms at a high level:
- Basic networking concepts, especially Ethernet and Wi-Fi
- What a publisher and subscriber are in message-based systems
- General familiarity with Raspberry Pi or similar single-board computers
- Very light exposure to ROS 2 command-line workflows
Glossary (terms used in this talk)
- DDS (Direct Digital Synthesizer): A digitally controlled waveform generator that produces precise frequencies by accumulating phase and converting it to a sinusoid or other periodic output.
- Node: A discrete unit of execution in a distributed system that communicates with other units by publishing or subscribing to messages. Nodes can run on the same machine or across networked devices.
- ROS 2 (Robot Operating System 2): A robotics middleware framework for building distributed robot software. It provides communication, discovery, and tooling for systems made of multiple cooperating processes and devices.
- Topic: A named channel used for exchanging messages between publishers and subscribers. Topics let unrelated components communicate without direct point-to-point coupling.
- Message: A strongly typed data payload exchanged between components. A fixed message structure makes data exchange predictable and easier to parse across different implementations.
- Domain ID: A logical identifier used to partition communication within the same physical network. Components with different IDs do not discover each other, which helps isolate groups of devices.
- Distributed system: A system whose components run on separate nodes or devices and coordinate over a network. This architecture can improve modularity and make it easier to scale or isolate functions.
- Interprocess communication (IPC): The mechanisms used by separate processes to exchange data and coordinate behavior, either on one machine or across a network. IPC often underpins modular software designs where components are intentionally separated.
Toolbox (mentioned in this talk)
- Raspberry Pi: A family of low-cost single-board computers used for education, prototyping, and embedded computing.
- APT: The package management system used on Debian-based Linux distributions to install and update software from configured repositories.
- Ubuntu 20.04 LTS: A long-term support Linux distribution used here as the operating system base for the ROS 2 setup.
- ROS 2 Foxy: A ROS 2 distribution targeted at Ubuntu 20.04 in this talk. ROS 2 distributions bundle a specific set of tools and libraries for robot communication and node execution.
- Linux: A family of open-source operating systems widely used as a host environment for embedded development, servers, and development tools. It provides a broad base of runtime services, libraries, and utilities for building and running software.
Final thoughts
Practical and example-driven, this talk gives you a useful mental model for how ROS 2 turns separate robot components into a coordinated system. The value is less about memorizing commands and more about understanding the communication shape behind them, so the installation and demo steps make more sense. It will help embedded developers, robotics newcomers, and teams comparing architectures for distributed machines. The session keeps the focus on how the pieces fit together, then shows that structure in action.
This overview is AI-generated from the session transcript. Spot an issue? Let us know.
Hi Thomas, how are you?
First of all, thank you very much for watching and liking the presentation.
Yes, this situation (which we can definitely call "dependency hell") is concerning. Personally, I believe the best and most elegant solution is to use Docker containers, for a few key reasons:
a) Environment Standardization: It allows you to create a Dockerfile with the specific versions of Ubuntu and the dependencies required by the ROS 2 flavor you intend to use.
b) Team Alignment: It makes it much easier to share the environment, ensuring everyone on the development team is on the same page regarding setup and configurations.
c) Code Isolation: By using containers, you can isolate your application's source code from the ROS 2 framework. When spinning up the container, you can simply mount your application folder as a volume.
Best regards,
Pedro Bertoleti








Pedro,
thank you very much for your great presentation. Using ROS2 myself, I always struggle with the release cycle of ROS and also the dependency on the OS. How do you conquer this? Do you use containers to install Ubuntu and ROS2? How do you apply this to a customer, while updates potentially break the function. Any thoughts on this?
Thank you again
/Thomas