Skip to main content
Version: ACS CC

Autonomous Catapult Vehicle

An autonomous vehicle which has a catapult attached to it.

info

Author: Robert Marian Albu
GitHub Project Link: https://github.com/UPB-PMRust-Students/acs-project-2026-ARobertM44

Description

This project consists of an autonomous car which can navigate to some (x, y) coordinates using magnetic encoders for reliability. Using a camera, it detects a specific target via color tracking, and with a rotating catapult attached, it launches a projectile toward the detected objective.

Motivation

I chose this project because I wanted to test myself by implementing a machine capable of using real mechanical physics with integrated control, testing technical skills, not just simulations in a software. The idea of ​​building a functional catapult seemed interesting and challenging, but achievable within the time constraints.

Architecture

Architecture Diagram

Log

Week 21 - 27 April

Researched and ordered hardware components.

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

The system is based on an STM32 NUCLEO development board, which manages real-time odometry and Pixy2 camera data. Precision is ensured by magnetic encoders, while a high-discharge 7.4V LiPo battery provides stable power. This setup allows the controller to handle the high current spikes of the MG996R catapult servo without resets.

Schematics

To be continued..

Bill of Materials

ComponentDescriptionPrice
Nucleo BoardMain MicrocontrollerFree
Pixy2 CameraVision sensor for color-based trackingFree (competition award)
Gens Ace Soaring LiPo7.4V 2200mAh87 RON
L298N Motor DriverDual H-Bridge for DC motor control15 RON
AS5600 Magnetic Encoder12-bit resolution rotary sensor (2 units)44 RON
MG996R ServoHigh-torque metal gear servo for catapult (2 units)60 RON
DC Gear MotorsMotors for vehicle propulsion (4 units)100 RON

Software

LibraryDescriptionUsage
embassy-stm32Hardware AbstractionUsed to configure PWM for the catapult's servo motor and GPIOs for the driving motors.
embassy-timeTime managementUsed to create precise delays between moving and firing to ensure system stability.
defmtLogging toolUsed to print status messages like "Target reached" or "Initiating launch" to the terminal for debugging.
embassy-executorTask schedulerUsed to manage the system's execution and handle the state transitions (Move, Stop, Fire).

Embassy Framework Documentation