ROS2 - Humble - Action in action with Python

Ever wanted to control a satellite without leaving your comfortable Linux terminal? Today is your lucky day. Welcome to this cosmic guide where we are going to build a fully automated ROS2 Action server and client in Python. Grab your coffee, open your IDE, and let’s launch this code into the stratosphere. Shopping list The Github with the full code for this tutorial: https://github.com/badprog/badprog-ros2-humble-action-in-action-with-python IDE: VSCode Framework: Robot Operating System 2 (AKA ROS2) Let’s code a bit To keep our codebase clean and modular, we split our system into 4 distinct files: ...

May 28, 2026 · Mi-K

ROS2 - Humble - Basics with Node, Topic and Service in Python

We are going to walk through the essential building blocks of ROS2. Rather than building a complex industrial system, we are using a battery simulator as a clear and practical example to master the three fundamental elements of robotic communication: Nodes, Topics, and Services. Let’s get started. Shopping list The GitHub of this tutorial: https://github.com/badprog/badprog-ros2-humble-basics-with-node-topic-and-service-in-python.git VSCode: https://code.visualstudio.com/ The Three Pillars of ROS 2 Before looking at the code, we must understand these three components, as they are the core of any ROS2 application: ...

April 19, 2026 · Mi-K

ROS2 - Humble - Starter kit

Every project has to start from somewhere. In this tutorial, we are going to see the minimal template to start any ROS 2 Humble projects with style and stability. For that goal we’re going to use GitHub Actions to automatically stress-test the Dockerfile and devcontainer.json files. Basically, we’re making sure your dev environment is always ready to roll before you even type your first node. Shopping list The Github of this tutorial: https://github.com/badprog/badprog-ros2-humble-starter-kit VSCode: https://code.visualstudio.com/ 1. The Dockerfile Think of your Dockerfile as the DNA of your project. ...

April 13, 2026 · Mi-K

ROS2 - micro-ROS - Publisher, subscriber, node, topic with STM32 and Python

While receiving data from your microcontroller is great, what about sending data in the opposite direction? First, we need to understand the difference between a publisher and a subscriber. In order to achieve this goal, we’ll need to use ROS2 topics. Each node has to send and receive data to and from a topic, that is publishing and subscribing to a topic. Shopping list Github for the tutorial: https://github.com/badprog/badprog-ros2-micro-ros-publisher-subscriber-node-topic-with-stm32-and-python STM32F3 Discovery board STM32F303VC microcontroller and Cortex M4 processor A Docker container for the micro-ROS Agent (Humble version) microros/micro-ros-agent:humble A Docker container for ROS2 (Humble version) ros:humble-ros-base VSCode ROS2 will be installed inside a VSCode Dev Container. The PIO extension will be used and needs to know where is the project directory: From VSCode, select: File > Add Folder to Workspace… > cpp_stm32_firmware The Node In the ROS2 world, a node is a primary entry point (a program on a device) from which we can create other entities (in our tutorial it will be publishers, subscribers and topics). ...

April 1, 2026 · Mi-K

ROS2 - micro-ROS - Using STM32 USB serial port to communicate with a Linux host via WSL 2

Connecting a microcontroller to a modern robotics ecosystem can be a daunting task, especially when working across different operating systems. In this tutorial, we will explore how to transform an STM32F3 Discovery board into a fully functional ROS 2 node with the help of micro-ROS library. More specifically, we’ll use the STM32 native USB serial port to establish real-time communication with a Linux host running inside WSL 2. Shopping list Github of this tutorial : ...

March 18, 2026 · Mi-K