Creating and Managing a Lifecycle Node in ROS 2 with C++

When developing complex robotic systems, managing the operational state of each node precisely is essential to ensure stability, safety, and predictability.ROS 2 introduces a key concept to meet this need: Lifecycle Nodes. Unlike standard nodes, which start operating as soon as they are launched, Lifecycle Nodes allow you to explicitly control their behavior through […]
Managing and Creating Lifecycle Nodes in ROS 2

When developing complex robotic systems, the ability to precisely control the operational state of each node is essential to ensure reliability, safety, and maintainability. ROS 2 addresses this need through a key concept: Lifecycle Nodes.Unlike regular nodes that start operating as soon as they are launched, Lifecycle Nodes allow you to manage their life cycle […]
Mastering Nav2 Costmaps in ROS 2: Static, Obstacle, and Inflation Layers Explained

When we move from simple robot experiments to real-world navigation, the environment is no longer an abstract concept. A robot needs to understand where it can move, where it cannot, and how to plan paths that are not only valid but also safe and efficient. This is where costmaps come into play in ROS 2 […]
YUMI Smart Pi One: a compact SBC that surprises with completeness and usability

The world of Single Board Computers is crowded, but only a few boards truly stand out. Some aim for raw power, others for aggressive pricing. The YUMI Smart Pi One takes a third route: it doesn’t try to be a performance monster, but rather a compact device, rich in ports, easy to configure, and backed […]
How to Build and Test a ROS 2 Action Client in Python

In the previous article, we implemented a ROS 2 Action Server in Python that calculates the Fibonacci sequence. We also saw how to interact with it using the ROS 2 CLI (ros2 action send_goal). Now, we’ll take a step further and implement a ROS 2 Action Client in Python.This client node will connect directly to […]
How to Build and Test a ROS 2 Action Server in C++

When working with robots, not every task is instantaneous. Some operations take time: navigating across a room, picking up an object, scanning an area, or performing a long computation.In ROS 2, these “long-running” tasks need a special way for nodes to talk to each other — one that allows progress updates and the ability to […]
Launching the Complete Robot Simulation in ROS 2

Up to this point, we have built and tested individual parts of our robot: the URDF description, Gazebo simulation, controllers, and even integration with MoveIt and a remote Alexa interface. Now it’s time to bring everything together into a single launch file that runs the complete robot simulation with all components working in harmony. This […]
How to Build and Test a ROS 2 Action Server in Python

When working with robots, not every task is instantaneous. Some operations take time: navigating across a room, picking up an object, scanning an area, or performing a long computation. In ROS 2, these “long-running” tasks need a special way for nodes to talk to each other — one that allows progress updates and the ability […]
How to Build a Voice Interaction Model in ROS 2

Voice control has become one of the most natural and intuitive ways to interact with robots. From simple voice commands to complex conversational systems, enabling a robot to understand and respond to spoken language opens the door to more human-like and user-friendly experiences. In this tutorial, we will build a Voice Interaction Model in ROS […]
How to Build and Test a ROS 2 Service Client in C++

In the previous tutorial, we learned how to build a ROS 2 Service Server that takes two integers and returns their sum.Now it’s time to create the client node that sends requests to that service — this time, using C++. This tutorial will guide you through: Understanding how a ROS 2 service client works. Implementing […]