
Andino
An open-source ROS 2 robot from Ekumen, built to teach real robotics on a budget: two driven wheels and a caster, a spinning lidar on top, a Raspberry Pi for a brain. It is the first robot in the Robodex that RobotForge did not design — its spec here was read out of the official project's own files.
Spec
| Battery | 3x 18650 Li-ion cells, ~11.1 V nominal (official BOM holder); capacity varies by cell — the spec uses 2600 mAh as a labelled estimate |
|---|---|
| Chassis | 0.25 m long x 0.10 m wide base deck (official URDF base.yaml); overall width 0.153 m across the wheels, wheel track 0.128 m |
| Computer | Raspberry Pi 4 + Arduino Nano (official BOM) |
| Drivetrain | differential — 2 driven wheels + ball caster |
| Ground clearance | ~0.03 m — estimate; the URDF base plane rides at wheel radius (0.0331 m) |
| Height | ~0.18 m — estimate derived from the URDF deck stack |
| Mass | 3.364 kg — the sum of the official URDF link masses (several are round values upstream) |
| Motors | 2x DG01D-E gearmotors with encoders, 48:1 gearbox, rated 3-9 V (SparkFun listing linked from the official BOM), driven via an L298N |
| Sensors | RPLIDAR A1M8 2D lidar (top), Raspberry Pi Camera V2 (front), BNO055 IMU, wheel encoders |
| Wheels | 66.2 mm diameter x 25 mm — official wheel.yaml radius 0.0331 m |
examples/andino.jsonLicense is per-package LICENSE files in the repo (each reads BSD 3-Clause, (c) 2023 Ekumen Inc.); the repo root carries no single LICENSE file. Spec values were read from andino_description/config/andino/*.yaml and the andino_hardware BOM.Gate runs
Measured against simulator ground truth at the locked thresholds: pass ≤ 5% / 5°, fail over 10% / 10°. The gate tests the spec's simulated twin, not a physical robot.
| Run | Drive vs truth | Turn vs truth | Odometry distance | Odometry heading |
|---|---|---|---|---|
| Run 1 | 1.497% | 3.425° | 0.003% | 8.285° |
| Run 2 | 0.347% | 9.104° | 0.003% | 11.624° |
- Run 1: Gate run 1 on scythe, 2026-10-26, build/gate-andino-1/gate-report.json — run verdict MARGINAL (motion vs ground truth PASS; odometry heading MARGINAL)
- Run 2: Gate run 2 on scythe, 2026-10-26, build/gate-andino-2/gate-report.json — run verdict FAIL (turn vs ground truth MARGINAL at 9.104 deg; odometry heading FAIL at 11.624 deg)
Harness checks
Electrical computations over this robot's documented wiring graph — voltage drop, ampacity, logic levels, rail budgets, connector matching. Not a gate run and not a simulation: each check is Checked, Partial or Not checked, and the headline is counts, never a blanket pass.
2 checked clean · 1 with warnings · 0 with errors · 2 partial · 29 not checked · missing data: cable.gauge_awg ×12, connector at both ends (connector_from / connector_to) ×12, current_a for nano ×7
| Check | Checked | Partial | Not checked |
|---|---|---|---|
| voltage drop | 0 | 0 | 6 |
| ampacity | 0 | 0 | 6 |
| logic levels | 3 | 0 | 3 |
| rail budget | 0 | 2 | 2 |
| connector match | 0 | 0 | 12 |
Findings (1):
- [WARN] controller -> nano: logic levels 3.3 V and 5 V do not agree and no level shifter is recorded on the link — a 3.3 V input is not 5 V tolerant; add a shifter or record one
Missing data — the datasheets still to hunt. A check that could not run says what it needs:
| Missing input | Blocks | Needed by |
|---|---|---|
cable.gauge_awg | 12 | battery -> driver, battery -> regulator, regulator -> controller, controller -> nano … |
connector at both ends (connector_from / connector_to) | 12 | battery -> driver, battery -> regulator, regulator -> controller, controller -> nano … |
current_a for nano | 7 | battery -> regulator, regulator -> controller, controller -> nano, controller rail |
cable.length_mm | 6 | battery -> driver, battery -> regulator, regulator -> controller, controller -> nano … |
current_a for motors | 5 | battery -> driver, driver -> motors, driver rail |
connection voltage (volts) | 2 | driver -> motors, controller -> lidar |
current_a for controller | 1 | regulator rail |
current_a for driver | 1 | battery rail |
current_a for regulator | 1 | battery rail |
logic_v for camera | 1 | controller -> camera |
logic_v for imu | 1 | controller -> imu |
logic_v for motors | 1 | motors -> nano |
rated output current for battery | 1 | battery rail |
rated output current for controller | 1 | controller rail |
Report: catalog/harness-reports/andino.json · checked 2026-10-27 · reproduce with robotforge harness examples/andino.json
Take it apart
Every spec becomes a kit of simple, 3D-printable parts (robotforge cad). This viewer lays the kit out the way the kit's own assembly file does, straight from the spec's numbers — flat views, or in 3D with the toggle. Click any part.
examples/andino.json…Reproduce it
Run these from a clone of the repository.
robotforge validate examples/andino.json
robotforge urdf examples/andino.json --out build/andino.urdf
robotforge cad examples/andino.json
robotforge run-gate examples/andino.json
robotforge harness examples/andino.json