NUS Computer Engineering course on Real-Time Operating Systems.
Overview
In this project, teams are tasked with building a remote-controlled robotic car capable of
navigating an obstacle course as quickly as possible. Each car is built using similar components,
with the primary differentiating factor being the software and operating system developed by each
team. The cars require essential functionalities, including playing music, flashing lights, and
maneuvering abilities. The car uses an ESP32 for wireless control and a main microcontroller (FRDM
KL25Z), which contains an ARM Cortex M0+ processor. This processor runs a Real-Time Operating System
(Keil RTX), programmed with threads and interrupts in C.
Contributions
- Co-designed the OS architecture
- Recommended switching from HTTP to UDP protocol for control signals, reducing latency
- Implemented the flashing light functionality requirement
- Designed and procured a custom laser-cut acrylic chassis frame to enhance vehicle dynamics
- Drove the car during final obstacle course run to obtain the team's timing
Results
The thoughtful design and implementation of our Real-Time Operating System led to exceptionally low
control latency. Additionally, the joystick control system, developed by a team member, provided
finer control over the car's movements compared to traditional button controls. This responsiveness
and ease of control enabled our team to achieve the fastest lap time in our lab class by a
comfortable margin.