GitHub
TurtleBot3 Burger (official image)
Photo: ROBOTIS — official TurtleBot3 e-Manual
#002

TurtleBot3 Burger

Ground — wheeled · Differential rover
Differential-drive ground robot
PassHarness checks: 0 clean · 0 warn · 0 err · 19 not checkedLatest recorded run: drive 2.293% · turn 1.421° vs ground truth

Evidence: the full gate report →

ROBOTIS's small research-and-teaching rover: two driven wheels, a caster, and a 360-degree lidar. RobotForge's reference robot for the differential-drive layout — its spec here uses the public ROBOTIS reference dimensions.

Spec

BatteryLiPo 11.1 V, 1800 mAh
Drivetraindifferential — 2 driven wheels + caster
Footprint0.178 m x 0.138 m, 0.192 m tall
Mass0.93 kg (reference spec)
Sensors360-degree 2D lidar (top)
Wheels66 mm diameter
Source: ROBOTIS-GIT/turtlebot3 (official vendor repository) · linkLicense: Apache-2.0Spec file: examples/turtlebot3-burger.jsonThe Waffle Pi URDF was pulled from this repo by `robotforge lookup` (chunk #4) with its LICENSE and a blob-SHA manifest; the Burger reference spec uses the public dimensions stated in examples/turtlebot3-burger.json.

GateA pass/fail test in the Gazebo simulator: the twin drives 1 m, turns 90° and stops, and the result is measured against where it really went. 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.

RunDrive vs truthTurn vs truthOdometry distanceOdometry heading
Run 10.368%—0.042%—
Run 20.968%2.028°0.042%—
Run 32.293%1.421°0.042%2.636°
  • Run 1: P1 launch verification on scythe from a fresh clone of main, 2026-10-26 (project record: 'burger clean GATE PASS, drive 0.368%, odometry honest 0.042%')
  • Run 2: Evidence run embedded in reports.html (burger-clean): drive 0.968%, turn 2.028 deg, all four checks PASS
  • Run 3: Gate run on Torque's VM, 2026-10-28 — Gazebo Sim (Harmonic) with the gz-sim server embedded in-process, because the VM sandbox blocks the UDP transport the gate normally discovers over; verdict logic, thresholds and spec untouched. Full gate report: catalog/gate-runs/burger-torque-inprocess.json · full gate report (JSON)
The same spec with --inject-wheel-scale 0.9 FAILS the gate (odometry error 11.168%, suspect wheel.diameter_m) — that injected run is a fault-injection demo, not this robot's clean status.

HarnessThe robot’s wiring. The harness check adds up current on each power rail and flags wires that are too thin or rails that are overloaded. checks

Electrical checks over this robot's documented wiring. Not a simulation; the headline is counts, never a blanket pass.

Harness checks: 0 clean · 0 warn · 0 err · 19 not checked

0 checked clean · 0 with warnings · 0 with errors · 0 partial · 19 not checked · missing data: cable.gauge_awg ×8, connector at both ends (connector_from / connector_to) ×6, current_a for lidar ×5

Check-by-check counts and missing data
CheckCheckedPartialNot checked
voltage drop004
ampacity004
logic levels002
rail budget003
connector match006

Findings: none — the inputs that could be checked raised nothing. That is not the same as everything being checked; the counts above say how much was.

Missing data — the datasheets still to hunt. A check that could not run says what it needs:

Missing inputBlocksNeeded by
cable.gauge_awg8battery -> driver, driver -> motors, battery -> controller, controller -> lidar
connector at both ends (connector_from / connector_to)6battery -> driver, driver -> motors, battery -> controller, controller -> driver …
current_a for lidar5battery -> controller, controller -> lidar, controller rail
current_a for motors5battery -> driver, driver -> motors, driver rail
cable.length_mm4battery -> driver, driver -> motors, battery -> controller, controller -> lidar
connection voltage (volts)2battery -> controller, controller -> lidar
logic_v for controller2controller -> driver, controller -> lidar
current_a for controller1battery rail
current_a for driver1battery rail
logic_v for driver1controller -> driver
logic_v for lidar1controller -> lidar
rated output current for battery1battery rail
rated output current for controller1controller rail
rated output current for driver1driver rail

Report: catalog/harness-reports/turtlebot3-burger.json · checked 2026-10-26 · reproduce with robotforge harness examples/turtlebot3-burger.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.

Loading examples/turtlebot3-burger.json…

Parts kit

The take-apart kit robotforge cad generates from this robot's spec: every part the generator defines, what it does, and the parameters worth tweaking with the values this robot's kit ships with. Each parameter carries the generator's own source label — from spec numbers come out of the spec, derived numbers are computed from them, and assumption numbers are typical values the spec does not carry.

Chassis plate ×1

parts/chassis_plate.scad

The deck everything else bolts to.

178 x 138 mm footprint, 4 mm thick

ParameterValueWhere the number comes from
chassis_length_mm178 mmfrom spec length_m
chassis_width_mm138 mmfrom spec width_m
plate_thickness_mm4 mmassumption — not in the spec
corner_radius_mm6 mmassumption — not in the spec
mount_hole_diameter_mm3.4 mmassumption — M3 bolt clearance
mount_hole_inset_mm12 mmassumption — not in the spec

Print note: Print flat as modeled. Suggestion: 3-4 walls, ~25% infill.

Wheel ×2

parts/wheel.scad

Rolls on the ground; one per wheel position on the robot.

66 mm diameter x 22 mm wide, 6 mm shaft hole

ParameterValueWhere the number comes from
wheel_diameter_mm66 mmfrom spec wheel.diameter_m
wheel_width_mm22 mmfrom spec wheel.width_m
shaft_diameter_mm6 mmassumption — typical DC gearmotor shaft; measure yours
hub_diameter_mm26.4 mmderived — 0.4 x wheel diameter, for looks/strength
lightening_hole_diameter_mm7.9 mmderived — decorative; delete the loop below for a solid wheel

Print note: Print flat as modeled. Suggestion: print one first and check the shaft fit before printing the rest.

Motor mount ×2

parts/motor_mount.scad

Side plate that holds one drive motor so its shaft lines up with a wheel's axle.

38 mm wide plate, shaft hole at axle height 33 mm

ParameterValueWhere the number comes from
shaft_center_height_mm33 mmfrom spec wheel radius (diameter_m / 2) — the axle height above ground
mount_width_mm38 mmderived — wheel width + 16 mm of plate around the motor
mount_height_mm44 mmderived — reaches from the ground past the axle to the chassis plate
mount_thickness_mm4 mmassumption — not in the spec
shaft_hole_diameter_mm6.4 mmderived — shaft diameter + 0.4 mm slip fit
flange_depth_mm16 mmassumption — how far the bolting flange reaches under the chassis
flange_hole_diameter_mm3.4 mmassumption — M3 bolt clearance

Print note: Suggestion: 40% infill — this part takes the motor's twist. The motor itself is not a printed part.

Caster ×2

parts/caster.scad

Ball caster that keeps a two-wheel robot level (one front, one rear). Placeholder for a real ball-caster unit.

ball diameter 20 mm (= ground clearance, so the ball tops out at the deck)

ParameterValueWhere the number comes from
caster_ball_diameter_mm20 mmfrom spec ground_clearance_m — ball top meets the deck underside
caster_stem_height_mm10 mmderived — reaches into/past the deck plate for bolting
caster_stem_diameter_mm10 mmderived — half the ball diameter

Print note: Suggestion: expect a loose fit — sand or scale 1-2% for a snug cup. A bought ball caster rolls far better.

Lidar mount ×1

parts/lidar_mount.scad

Post that raises the 2D lidar to the top of the robot so its scan plane clears the chassis.

post 182 mm tall, top disc 70 mm diameter

ParameterValueWhere the number comes from
post_height_mm182 mmderived — spec height minus deck and disc thicknesses
post_diameter_mm12 mmassumption — not in the spec
lidar_disc_diameter_mm70 mmassumption — typical 2D lidar puck; measure yours
disc_thickness_mm3 mmassumption — not in the spec

Print note: Print upright as modeled. Suggestion: ~25% infill; the lidar itself is not a printed part.

Reproduce it

Run these from a clone of the repository.

robotforge validate examples/turtlebot3-burger.json
robotforge urdf examples/turtlebot3-burger.json --out build/turtlebot3-burger.urdf
robotforge cad examples/turtlebot3-burger.json
robotforge run-gate examples/turtlebot3-burger.json
robotforge harness examples/turtlebot3-burger.json