Skip to content

Driverless Kart

Flagship project · 2020 – present · Outdoor autonomous vehicle testbed built on a real competition kart.

📚 Documentation · 💻 kart-brain (perception + control) · kart-docs (mechanical/electrical/process) · driverless (legacy Python stack)

Status — May 2026

ROS 2 migration complete. Manual mode fully operational. First autonomous run completed 5 full laps on a cone-defined track (April 2025) before a printed PLA sun gear in the steering reducer snapped on the 6th lap — a known PLA-creep failure with a brass upgrade already designed. Autonomous mode actively integrated.

Read the Build Journey Full technical documentation (kart-docs)

What it is

A modular autonomous platform built on a real Tony Kart chassis, designed as an outdoor testbed for perception, planning, and control algorithms. Maintains manual drive capability so a safety driver can take over at any time, which makes it a practical platform for real-world algorithm validation rather than a simulator-bound demo.

Hardware

  • Compute — NVIDIA Jetson AGX Orin (JetPack 6.2.2, CUDA 12.6, 62 GB RAM, Ubuntu 22.04)
  • Perception sensor — ZED 2 stereo camera (USB 3.0, GPU-accelerated depth)
  • Microcontroller — ESP32 "Kart Medulla" custom PCB, FreeRTOS, UART link to the Orin at 115200 baud
  • Steering actuation — DC motor + planetary reducer (in-house design)
  • Emergency brake — fail-safe pneumatic system on STM32
  • Wheel sensorisation — custom PCB for hall-effect odometry
  • Frame — 2024 Tony Kart competition chassis
  • Power — custom 18650 lithium pack with JBD BMS, spot-welded in-house

Software architecture

Everything from cone perception to steering commands runs in ROS 2 Humble on the Orin. The ESP32 is the safety boundary: if the high-level loop dies, the kart fails into a known mechanical-safe state independent of the Linux side.

  • Perception — YOLOv5 cone detector + stereo depth localiser. 3D cone positions published to ROS 2 in real time on the Jetson's GPU.
  • Control — geometric / pure-pursuit controllers. Each controller publishes its picked target point to /kart/target; the dashboard HUD subscribes to the same topic, so what the user sees and what the controller commands cannot disagree.
  • Pre-ROS legacy stack — earlier 100% Python pipeline ran at ~50 Hz end-to-end on the same hardware. Walkthrough video.

Autonomous mode running outdoors — no one in the seat. April 2026.

  • Full kart
  • Chassis arrival
  • ZED 2 camera mount
  • Kart Medulla custom PCB
  • Steering planetary gear motor
  • Battery pack assembled