How to control a DC Motor using Arduino and PID Algorithm

Controlling the speed and direction of a DC motor precisely is essential for many robotics and automation projects. In this tutorial, we will learn how to use a PID controller to regulate the velocity of two DC motors connected through an L298N driver, with feedback from wheel encoders. Why use a PID controller for motor […]
Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2

In this tutorial, you’ll learn how to implement waypoint-based navigation in ROS2 using the Nav2 stack, enhanced with dynamic replanning capabilities. This setup enables your robot to follow a sequence of predefined goals and recalculate the path if unexpected obstacles appear. It’s ideal for autonomous patrol or area coverage in indoor environments. 📝 Requirements – […]
Advanced SLAM in ROS2: Mapping with Cartographer

In this tutorial, you’ll learn how to use Google’s Cartographer with ROS2 to perform advanced 2D SLAM (Simultaneous Localization and Mapping). Cartographer is a real-time SLAM algorithm that provides loop closure and accurate map construction in dynamic environments. We’ll use a simulated TurtleBot3, but the steps are adaptable to real robots. 📝 Requirements – ROS2 […]
Autonomous Navigation in ROS2 with Nav2 and Behavior Tree

In this tutorial, you will learn how to perform autonomous navigation in ROS2 using the Nav2 stack with integrated Behavior Trees (BT). The Nav2 framework provides a powerful modular system that allows robots to navigate in a known map using planning, localization, and behavior control components. 📝 Requirements – ROS2 installed (e.g., Humble or Foxy) – […]
Creating a 2D map with GMapping (ROS)

In this tutorial, you will learn how to build a 2D map of an environment using the GMapping SLAM algorithm in ROS1. This process is fundamental for autonomous navigation as it allows the robot to understand and represent its surroundings. 📝 Requirements – ROS1 installed (e.g., Noetic) – `slam_gmapping` package – Simulated robot with LIDAR sensor (e.g., […]
Navigation with move_base and AMCL (ROS)

In this tutorial, you will learn how to autonomously navigate a mobile robot in ROS1 using the `move_base` package for path planning and `amcl` for probabilistic localization on a prebuilt map. We will use a simulated robot (e.g., TurtleBot3) with a map previously generated using SLAM. 📝 Required components ROS1 installed (e.g., Noetic on Ubuntu […]
How to use i2c lcd with Arduino

In this tutorial, you’ll learn how to use a 16×2 LCD display with an I2C interface using the Adafruit_LiquidCrystal library. The code example shows how to display a counter that increments every second and blinks the backlight to create a visual effect. What is an I2C LCD Display? When working with LCD screens and microcontrollers […]