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