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 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 […]

PID Control Algorithm

In control theory, the PID (Proportional–Integral–Derivative) algorithm is often considered the holy grail of control. PID is one of the most successful control algorithms due to its flexibility and simplicity, and it’s relatively easy to implement. In fact, the PID control algorithm has proven robust and flexible enough to yield excellent results in a wide variety […]

How to Integrate ROS Control into a Simulated Robot in Gazebo

Controlling a simulated robot as if it were real — that’s the power of ROS Control. In this guide, we’ll see how to properly configure the URDF model so ROS can “command” the simulated motors of our BumperBot. 🚀 Introduction: What Is ROS Control and Why Use It? Imagine building a robot with real motors, […]

Choosing the Right Locomotion System for Mobile Robots

Whether it’s a four-legged robot climbing rocky hills or a drone hovering over a building site, locomotion is what gives mobile robots the power to explore, navigate, and interact with the world. But what makes one locomotion system better than another? Is there a perfect design? The answer is more nuanced than you might think. […]

How to create a simple Subscriber Node with C++ – ROS2

In this tutorial, we’ll create a simple ROS 2 node in C++ that subscribes to a topic and listens for messages published on it. If you haven’t checked out the simple publisher tutorial, I recommend starting there first. 🔍  What is a ROS Node and a Topic? In ROS (Robot Operating System), software is organized […]

en_US