A vision-guided bowling robot

The Big Lebowski.

Reconstruction of the complete bowling robot: ramp, lane, six pins and overhead camera
Loading the assembly…
01 / The complete machine

Vision-guided. Feedback-controlled.

A tabletop robot that detects pins, positions a ramp and releases a steel ball.

MATLAB. Simulink. Mechatronics.

Avi Patel · Team 19. Computer vision, encoder feedback and mechanical integration.

Skills & contributions ↓Watch the real machine ↓

Camera → MATLAB → Simulink → Arduino → motion

Scroll to explore

3D reconstruction from team drawings & photographs

The complete machine

Vision-guided. Feedback-controlled.

A tabletop robot that detects pins, positions a ramp and releases a steel ball. Avi Patel · Team 19. Computer vision, encoder feedback and mechanical integration.

Camera → MATLAB → Simulink → Arduino → motion

Position & release

The ramp makes the move.

A rack and pinion slides the ramp sideways. Encoder feedback brings it to the selected position. A small servo moves the release dowel. The steel ball rolls down the V-channel and into the lane.

16-tooth gear · 8 mm guide rods · 5/8-inch steel ball

Camera & calibration

Six positions. One overhead view.

The camera checks color saturation and brightness at six calibrated pin locations. A fixed camera and ring light help the software distinguish occupied positions from empty ones.

Logitech Brio · controlled lighting · calibrated pin occupancy

The team’s engineering work

Skills you can
see in the build.

Five students connected sensing, software and mechanisms to aim and release a bowling ball. The operator places the ball and pins.

Computer vision

MATLAB · camera calibration · image processing

Built from background subtraction and morphology to a calibrated HSV detector for six pin positions.

Final vision & integration report

Controls & embedded systems

Simulink · Arduino Mega · encoders · motor control

Mapped image coordinates to rack travel, tuned the position loop, and integrated motor feedback with servo release.

Controls & integration report

Mechanical integration

Fusion 360 · 3D printing · rack and pinion

Combined a translating ramp, guide rods, release gate, camera fixture and containment into one working prototype.

Design drawings & assembly

Engineering validation

DFMEA · concept comparison · staged testing

Documented design tradeoffs, compared controller responses, resolved lighting problems and evaluated the integrated build.

Development & risk analysis
Avi Patel’s documented contributions

MATLAB/Simulink work, early camera interfacing and technical documentation within Team 19. The complete machine and demonstration are team achievements.

Explore the source evidence

04 / The logic

A decision becomes
a physical shot.

Read the pins. Choose a target. Move the ramp. Release the ball. Then look again.

  1. 01

    Sense

    Check six calibrated positions.

  2. 02

    Choose

    Select a target manually or automatically.

  3. 03

    Position

    Move the ramp with encoder feedback.

  4. 04

    Release

    Open the servo gate.

  5. 05

    Refresh

    Recenter and capture the remaining pins.

CALIBRATED PIN POSITIONSTOP VIEW
BALL DIRECTION
Present Selected target Absent

TRY THE TARGETING LOGIC

Which shot
would it choose?

Toggle the pins to change the lane. The archived app scores a fixed set of expected knockdowns and picks the occupied target with the highest score.

SELECTED TARGETPin 1
EXPECTED PINS1 + 2 + 3

Logic demonstration based on the archived MATLAB app. Expected knockdowns come from a lookup table; they are not a physics prediction. Ties select the first numbered target.

Under the surface

Three disciplines,
one conversation.

The image becomes a coordinate. The coordinate becomes a motor command. The mechanism turns it into motion.

CALIBRATION → OCCUPANCY

Six known locations.
One clear decision.

The operator marks the lane edges and six pin dots. The app inspects a local image patch at each location, converts it to HSV, and checks mean saturation and brightness.

Patch radius
30 pixels
Saturation threshold
> 0.70
Brightness threshold
> 0.40

These are archived code settings. The final detector uses saturation and brightness at calibrated points; it does not use a trained model.

Original MATLAB pin initialization view with six pin locations
Original pin calibration interface · Final report, Figure 11

05 / The build

It began with
a single servo.

Four stages of iteration: from a simple signal path to a complete camera-guided machine.

19 SEP 202501Interface
Arduino Mega and servo prototype wiring on a lab bench
Original team photograph · Stage 1

Start with the signal path.

A potentiometer input commanded servo motion through MATLAB, Simulink and an Arduino. The first stage established communication, sensing and actuation before the robot took shape.

The foundation: connect a physical input to a controlled output.

Read the stage report
10 OCT 202502Perception
PVC camera fixture viewing colored shapes for vision testing
Original team photograph · Stage 2

Make the scene readable.

A fixed camera, PVC frame and controlled lighting supported background subtraction, morphology and color-and-shape measurements. Colored stickers made the sensing pipeline visible and testable.

Lighting and fixture stability mattered as much as the image-processing code.

Read the stage report
31 OCT 202503Feedback
Angular pointing prototype beneath the fixed camera fixture
Original team photograph · Stage 3

Connect vision to motion.

A MATLAB interface placed selectable buttons at detected object centroids. Choosing a target rotated a motor-driven pointer toward it, using encoder feedback and a tuned position controller.

Lane reflections disrupted sensing; the team used a white surface during the demonstration.

Read the stage report
07 DEC 202504Integration
Final rack-and-pinion bowling robot with a camera, ramp and containment rails
Original team photograph · Stage 4

Turn the pointer into a bowler.

The final design replaced angular aiming with a laterally translating ramp. A servo gate, rack and pinion, ring light, rails and catch box brought the complete bowling sequence together.

Calibrated pin occupancy replaced the earlier general background-subtraction method.

Read the stage report

06 / In motion

The workbench.
The actual machine.

The original final demonstration: a three-pin arrangement is cleared, and the MATLAB interface updates the board.

Team 19 · Original footage · 38 secondsDownload clip
The reported result

From the team’s final presentation, slide 6.

95%

accurate pin hits

20

consecutive frames

Team-reported results, without raw scored trial logs in the archive. The team reported no troubleshooting intervention during those frames; ball and pin setup remained manual. The video is one recorded sequence. Read the presentation ↗

07 / The record

Follow the work
all the way back.

Original reports, source code, drawings and footage. The engineering behind every part of the story.

Reports and slides open as PDFs. Original editable files remain in the archive.

53 files. Four stages. The full archive.
Prototype boundaries & source notes +

Operation. The operator places the ball and pins; the robot handles aiming, release and return. Detection depends on six calibrated locations and stable camera and lighting conditions.

Timing. The presentation reports a cycle under 10 seconds. The archived app contains 12 seconds of fixed waits before image refresh. The version and timing boundary remain unresolved.

3D reconstruction. This model uses original drawings where available and inferred layout elsewhere. The report’s illustrative 6-inch lane differs from the app’s 3.85-inch calibration setting. Read the modeling notes ↗ Download the GLB ↗

Reproducibility. These source files preserve the development record. The Simulink model references an encoder support component that is not separately included; the hardware has not been rerun here.

Clemson University / Team 19

Built together.

Corey Golec · John Phillips · Jacob Criswell
Avi Patel · Josue Morales-Sanchez

A five-person ECE 4950 project, Fall 2025. Avi’s documented contributions include MATLAB/Simulink, early camera interfacing and technical documentation.

The project builds on course-provided vision code and Simulink models. Original photography, documents and footage belong to Team 19.

Original team site