KUKA iDo

Low-Level Control System

Embedded firmware and PCB design for the low-level control system of a modular mobile robot, integrating motor control, sensor acquisition, and micro-ROS communication.

Role · Developer

Overview

This project corresponds to the development of the low-level control system for the KUKA iDo robot. The system is based on a custom PCB and embedded firmware running on a Raspberry Pi Pico W. It is responsible for real-time motor control, sensor acquisition, and communication with the high-level ROS 2 system via micro-ROS.

The firmware was developed in C++ using the official Pico SDK. All logic is executed within a centralized class that integrates control loops, sensor processing, and communication tasks.

What it does

  • Velocity control using dual PID loops and encoder feedback

  • Odometry estimation based on differential kinematics

  • micro-ROS integration for ROS 2 topic subscription and publication

  • Real-time acquisition of bumper states, battery levels, and IMU data

  • LED status indication controlled via ROS messages

  • Time synchronization for proper timestamping in ROS 2 environments

Specifications

<strong>Microcontroller
RP2040 (Raspberry Pi Pico W)
<strong>Firmware
Custom C++ application with Pico SDK and micro-ROS
<strong>PCB
Custom-designed board with motor drivers, sensor connectors, and power regulation
Stack
  • C++ (bare-metal with Pico SDK)
  • micro-ROS
  • Differential drive odometry
  • Custom PCB design (KiCad)
  • UART, I2C, and PIO peripherals
  • ROS 2 Jazzy for system integration
Domain
control · robotics · electronics