~/kartikey
/projects/origins/

first robots

a gesture-controlled car, a self-balancing bot, and a maze solver. where it all started.

dec 2023 – 2025 · me + SRA · VJTI, Mumbai · teaching

Three small robots from my first years. Everything I’ve built since uses something I learned from these.

the gesture car

My first real project — winter internship, first semester. You tilt your hand, the car moves. An MPU6050 on a glove reads the tilt, one ESP32 sends it over ESP-NOW, another ESP32 drives the motors.

the demo from the internship

The IMU data was garbage until I learned to filter it. That lesson keeps paying rent.

wall-e

A robot that balances on two wheels. Read the IMU, fuse gyro and accelerometer with a complementary filter, run PID a few hundred times a second, don’t fall over. Tuning it teaches you what P, I and D actually feel like.

staying up

Wall-E turned into something bigger than my build: at SRA we manufacture and assemble Wall-E kits and run workshops on them. More than 200 students have learned embedded C, ESP32 and sensor fusion on this little robot. I got to teach some of those workshops.

Here’s the part everyone struggles with — the PID tuning. This is the real thing: the dot wants to sit on the line, the controller fights to keep it there. Turn up P and kick it; it overshoots. Add D; it calms down. Too much I and it never settles. Same dance as balancing the actual robot.

toy · tune the controller, then kick it

P alone overshoots · add D to damp it · too much I makes it hunt

the maze solver

Built for the SRA maze competition. ESP32 on ESP-IDF, a row of IR sensors, a 100 Hz control loop. It follows the line, maps the maze with the left-hand rule, remembers the junctions, then runs the shortest path back. We came 4th.

a run

made with

  • ESP32
  • MPU6050
  • ESP-NOW
  • ESP-IDF
  • PID
  • complementary filter
  • IR sensors
  • L298N
occupancy grid · 0% mapped

rooms light up as you visit them · loop closure on revisit

↑↓ select · ↵ go · esc close