Safety in Human–Robot Interaction: Speed and Separation Monitoring with ROS 2

When robots and humans share the same workspace, functional safety becomes a first-class requirement. A collaborative robot must be able to adapt its motion according to the level of risk in the environment, slowing down or stopping entirely when a person comes too close.Unlike traditional setups with cages or physical barriers, this approach relies on […]
Integrating a 2D LiDAR into Your ROS 2 Robot Model

One of the key elements that enables a mobile robot to navigate autonomously is its ability to perceive the surrounding environment.Among the most widespread and reliable sensors used in robotics is the 2D LiDAR (Light Detection and Ranging). This device has revolutionized mobile robotics thanks to its accuracy and the ease with which it can […]
How Robots Understand Their Environment: Maps and Localization with ROS 2

To ensure autonomous navigation capabilities, a robot must be equipped with both a localization mechanism and a representation of the environment (map).Odometry alone, based on wheel rotation measurements, is not sufficient, as it introduces cumulative errors that increase over time.Therefore, a map is required to serve as an external reference, enabling the correction of these […]
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 […]
Building Smarter Robots with Behavior Trees in ROS 2

Discover how Behavior Trees can help you structure intelligent robot behaviors in ROS 2 using modular logic, clear control flow, and intuitive tools like Groot. 🤖 Why Behavior Matters in Robotics Robots that operate in the real world face much more than just navigation tasks. They need to handle dynamic environments, unpredictable humans, and ambiguous […]
How to Develop a Custom Alexa Skill to Control Your ROS 2 Robot

👉 How to Develop a Custom Alexa Skill to Control Your ROS 2 Robot In this step-by-step lab, you’ll learn how to create a custom Alexa Skill from scratch that can send commands to your ROS 2 robot. We’ll use the Alexa Developer Console to define intents and invocation phrases, and configure the skill to […]
How to Build and Test a ROS 2 Service Client in Python

In the previous tutorial, we built a simple ROS 2 service server that takes two integers and returns their sum. Now it’s time to create a Python client node that uses this service and communicates with the server to request the calculation. 🤔 What’s a ROS 2 Service Client? A service client is a node […]
How to Build and Test a ROS 2 Service Server in C++

In robotics, especially with ROS 2, it’s common for different nodes to interact and collaborate to accomplish tasks. So far, we’ve used the publisher/subscriber model to communicate between them — which works well for data streaming. But what if you just need to trigger a specific operation and get a result back? That’s where Services […]
How to Build and Test a ROS 2 Service Server in Python

In robotics, especially with ROS 2, it’s common for different nodes to interact and collaborate to accomplish tasks. So far, we’ve used the publisher/subscriber model to communicate between them — which works well for data streaming. But what if you just need to trigger a specific operation and get a result back? That’s where Services […]
Smarter Path Planning in ROS 2: Implementing A* in Python

In the world of robotics, planning a path from one point to another isn’t just about finding a route—it’s about doing it intelligently. If you’ve ever implemented Dijkstra’s algorithm, you know how powerful it is… but also how slow it can be when the map gets big. What if we could be smarter? What if […]