← Back to Projects
Projects · 01

Autonomous Walking Rickshaw

Fall 2025 · MECE 2310U Concurrent Engineering & Design · Group of 6
Linkage Design Meccano Arduino SolidWorks Testing
The finished walking rickshaw prototype, side view

Overview

Rickshaws are pulled by a person walking at the front. Our brief was to replace that person with a machine that actually walks: legs instead of wheels, built mostly from Meccano, with under $50 of extra parts and at least one autonomous feature.

We named it Big Rick. Two crank-rocker legs pull a small two-wheeled carriage, and an ultrasonic sensor lets it stop and back away from obstacles on its own. We designed it in SolidWorks first, then built and tested the Meccano prototype through three rounds of fixes.

~230 × 110 × 200 mmPrototype size (L × W × H)
Under $50Extra parts beyond the Meccano kit
3 test roundsEach one fixed what the last exposed

My part

I worked on the physical build, the Arduino and sensor programming, and testing, and I presented the chosen design, the issues we found and our fixes, and future improvements.

Choosing the legs

We sketched five walking concepts: Jansen and Klann multi-link walkers, a long-foot biped, a cam-driven sliding foot, and a crank-rocker biped. A weighted decision matrix scored each one on stability, payload, mechanical complexity, how much it looked like walking, and how well it could be built from Meccano.

The crank-rocker won. It's a four-bar linkage on each side, so one rotating shaft makes both feet step. The foot path is set entirely by geometry, which makes the gait repeatable, and the long stance keeps a foot planted while it's pulling. The Jansen linkage walks more realistically, but it was too heavy and complex for the kit.

House of Quality for the walking rickshaw
House of Quality: customer needs mapped to motor torque, gear ratio, mass, leg length, frame stiffness and sensor range.

How it works

A low-voltage DC motor in the front chassis drives the crank shaft through a spur-gear reduction. An Arduino Uno controls the motor through an L293D driver, reads an HC-SR04 ultrasonic sensor on a boom at the front, and listens for an IR remote that turns the walker on and off.

Wiring and control

Ultrasonic readings get noisy when the whole frame is vibrating, so the code doesn't react to a single reading. It averages three pings, smooths them with a moving average, and only treats something as an obstacle after three close readings in a row. Then it runs a simple sequence: stop for 2 s, reverse until the path is clear (up to 5 s), stop for 2 s, and walk forward again.

Rickshaw motor circuit – breadboard viewArduino Uno · L293D · HC-SR04 · IR receiver · DC gearmotor · 6×AA pack — wired from Rickshaw_Motor_File.ino+−−+jihgfedcba115510101515202025253030L293DATMEGA328P-PUARDUINOUNODIGITAL (PWM~)POWERANALOG IND2D3D5D6D7D115VGNDHC-SR04VCCTrigEchoGNDIR RECEIVERDC GEARMOTORAAAAAAAAAAAA6×AA DURACELL CASE (9 V)Wire keyD5 → L293D pin 1 (EN1, PWM)D6 → L293D pin 2 (IN1)D7 → L293D pin 7 (IN2)D2 → HC-SR04 TrigD3 → HC-SR04 EchoD11 → IR receiver OUTL293D pin 3 (OUT1) → motorL293D pin 6 (OUT2) → motor5 V rail, VCC pins; pack + → pin 8GND: pins 4, 5, 9, 12, 13, sensors, pack −Grounds are common: Arduino, rails, pack −.
How it's wired: Arduino Uno, L293D motor driver, HC-SR04 sensor, IR receiver and the gearmotor, running off a 6×AA case (9 V).

Testing and fixes

The first test proved the idea worked, and showed everything that didn't: the frame flexed, the gears rubbed, the feet slid and it veered off line. Two more rounds fixed most of it.

By the final test it started reliably, pulled the carriage and payload, tracked mostly straight, and stopped and backed away from obstacles every time.

What I'd do next

Tools

SolidWorks Meccano Arduino (C++) L293D motor driver HC-SR04 ultrasonic IR remote