Hardware

Physical platform, sensing stack, and embedded control hardware

Hardware Summary

This page summarizes the physical hardware stack used to build our Romi robot for the ME405 final project, with emphasis on the components that directly supported reliable line sensing, repeatable closed-loop motion, and autonomous obstacle-course navigation. Our final system combined a differential-drive mobile base with embedded control hardware, inertial sensing, line sensing, bump sensing, and supporting interface electronics so that the robot could make navigation decisions from real sensor measurements rather than open-loop assumptions alone.

Chassis and Drivetrain

Our robot used a Pololu Romi differential-drive chassis as the mechanical foundation of the system. This platform integrates the main structure, drive motors, wheels, and encoders into a compact and repeatable base that is well suited for embedded motion control. For our project, the drivetrain provided the physical basis for closed-loop velocity control, distance-based maneuvers, and heading estimation during line following and turning.

Parameter Value Notes
Wheel radius 0.035 m Used for distance and velocity estimation from wheel motion
Track width 0.141 m Used for heading and turning kinematics
Encoder resolution 1437.1 ticks/rev Used to convert encoder counts into wheel rotation and displacement
Pololu Romi documentation image
Documentation provided by Pololu Robotics.
Hardware Technical role in the system
Romi chassis and power distribution Mechanical structure and integrated support for embedded electronics and wiring
DC gearmotors Bidirectional actuation through PWM effort control
Quadrature encoders Wheel position and speed feedback for closed-loop control and estimation
Wheels and caster Ground interface that defines traction, mobility, and kinematic scaling
Romi chassis top view
Romi chassis and drivetrain assembly used as the mechanical and electrical foundation for all sensing and control subsystems.

Power Distribution Board

The power distribution board served as the electrical hub of the robot by routing battery power to the drivetrain and controller hardware while providing a consistent ground reference for the rest of the system. In practice, this simplified bring-up and troubleshooting by reducing wiring clutter and centralizing the main power connections used during repeated testing and final competition runs.

Item Technical role in the system
Battery input and distribution Routes supply power to the motors and control electronics
Ground reference distribution Provides a common return path for digital, analog, and actuation subsystems
Modular connection points Simplifies inspection, rework, and repeated hardware iteration
Power distribution board
Power distribution board used to centralize battery power and ground routing for the drivetrain and embedded electronics.

Microcontroller Board

The embedded compute core of the robot was an STM32 Nucleo L476RG board running MicroPython. This controller executed the cooperative task architecture used throughout the project and provided the timers, PWM outputs, GPIO, ADC channels, and serial interfaces needed for motor control, encoder measurement, line sensing, bump sensing, and IMU communication.

Peripheral Application in this project
Timers and PWM Motor effort generation and timing support for periodic task execution
Encoder timers Quadrature counting for wheel position and speed measurement
ADC inputs Used for analog line-sensor measurements
UART / serial User interface, debugging, and tuning feedback during testing
I2C Communication with the BNO055 IMU
STM32 Nucleo L476RG board
STM32 Nucleo L476RG providing real-time I/O, timers, communication interfaces, and embedded execution for the robot firmware.

Shoe of Brian Interface Board

The modified Shoe of Brian board expanded the Nucleo into a more usable robotics interface by providing structured breakout connections for sensors, motors, and supporting wiring. In our build, this board reduced wiring complexity, improved signal organization, and made it easier to connect the Romi drivetrain, IMU, line sensor, and bump switches without rewiring the controller directly every time the layout changed.

Feature Purpose
Structured header breakout Clean signal routing to motors, encoders, sensors, and communication hardware
Shared ground distribution Stable electrical reference for mixed analog and digital subsystems
Rapid reconfiguration Supports changes to pin mapping and wiring during iterative development
Shoe of Brian interface board
Modified Shoe of Brian interface board used to organize wiring and support hardware integration across the final robot.

IMU

A BNO055 inertial measurement unit provided heading information for turning control, state estimation, and general motion awareness during the course. In our project, the IMU was especially useful during state-based turning actions and in the observer-based estimator, where heading measurements were used alongside encoder data to improve navigation behavior.

Item Value Notes
Sensor BNO055 9-axis IMU with onboard fusion support
Bus I2C Connected to the microcontroller through SCL and SDA lines
I2C address 0x28 Default initialization address used in the project
BNO055 IMU module
BNO055 IMU used to provide real-time heading feedback for turning and estimation.

Line Sensor

A Pololu QTRX-MD-07A reflectance sensor array provided the main line-following signal for the robot. This sensor measured the reflectance profile beneath the front of the robot and allowed the software to compute a centroid-style tracking error for steering correction. Because line following was the dominant navigation mode on the course, the mounting height and alignment of the sensor were treated as important design parameters in order to keep the reflectance geometry consistent across runs.

Hardware Technical role in the system
QTRX-MD-07A reflectance array Measures surface reflectance for line detection and lateral tracking error
Front mounting bracket / stand-off arrangement Maintains repeatable sensor height and alignment relative to the floor
QTR line sensor array
QTR reflectance sensor array mounted to maintain a controlled standoff distance for consistent line contrast and tracking performance.

Bump Sensor

Left and right bumper switch assemblies provided event-based contact detection for wall interaction and recovery behavior. These bump sensors were placed at the front of the robot so that a collision with the wall could be detected cleanly before the line sensor or other front hardware was damaged. In the navigation logic, bumper activation was used as a direct trigger for backing up and transitioning into the next maneuver.

Hardware Technical role in the system
Left and right bumper switch assemblies Discrete contact-triggered event inputs for collision detection and recovery logic
Front-mounted trigger geometry Ensures reliable wall contact sensing before sensitive front hardware is impacted
Bump sensor assembly
Bump sensor assembly providing discrete event triggers used by navigation for contact response and recovery.