Electronics, Programming, and Robotics

Open-IMU

Módulo IMU abierto para ROS 2, pensado como alternativa transparente y accesible a las soluciones comerciales. Tres variantes sobre la misma placa base para compararlas de verdad.

  • In progress
  • Updated June 2026
  • License MIT

Motivación

Para entender de verdad cómo funcionan los sensores inerciales y cómo se usan en robótica, hay que construir uno. Open-IMU busca ser un módulo fácil de integrar en un robot o en cualquier entorno con ROS 2, como alternativa accesible, transparente y extensible frente a soluciones comerciales más caras.

Método

Cada módulo se arma sobre una placa IMU comercial montada en una W6300-EVB-Pico2. La V1 son tres variantes con sensores distintos; lo único que cambia entre ellas es el sensor inercial. Así se puede ver de primera mano cómo se comportan distintas tecnologías de sensado y fusión sobre la misma plataforma, y compararlas con datos.

Todo el diseño —hardware y software— se documenta paso a paso, para que cualquiera pueda construirlo, modificarlo y sobre todo aprender a usar sensores IMU en la práctica.

What it does

  • Datos IMU crudos: acelerómetro, giroscopio y magnetómetro.

  • Orientación (AHRS) en cuaterniones y ángulos de Euler, más aceleración lineal.

  • USB y Ethernet como dos formas equivalentes de operarlo: el mismo firmware entrega los datos por ambas.

  • Integración directa con ROS 2 por micro-ROS, por USB o por red.

  • Sensor intercambiable por I2C sobre STEMMA QT / Qwiic, para comparar tecnologías sobre la misma base.

System architecture

Sensor (una variante)FirmwareFusiónProtocoloInterfacesI2CBNO085Fusión on-chipICM-20948DMP opcionalISM330 + MMC5983Fusión en hostRP2350C / Pico SDKAHRSMadgwick / EKFmicro-ROSCliente XRCE-DDSBinario crudoProtocolo propioUSB micro-ROSROS 2 por redUSB SerialEthernet UDP

Specifications

Controlador
W6300-EVB-Pico2: RP2350 + Ethernet W6300 (IPv4/IPv6)
Conexión host
USB-C
Red
Ethernet 10/100
Alimentación
USB-C o PoE con WIZPoE-P1
V1-A
BNO085, fusión integrada en hardware (SH-2)
V1-B
ICM-20948, DMP opcional o algoritmos propios en host
V1-C
ISM330DHCX + MMC5983MA, Madgwick / EKF en host
Firmware
C con Pico SDK; cliente micro-ROS (XRCE-DDS)

What it puts into practice

The topics this project applies.

  • Diseño de PCB
  • C embebido
  • ROS 2