Β· Class Project

RC Car's Control using an STM32 for path-following and navigation

For this group class project, we were assigned the task of following trajectories with a small-scale ackerman car, using a NUCLEO-STM32 board and FreeRTOS for task scheduling, interruptions, timers, among other features.

We focused on the following modules: an ESC to control the speed of the DC motor connected to the wheel axis, a Servo for steering, an MPU9250 IMU to read the acceleration and angular velocities, encoder readings from out DC motor to calculate the linear velocity of the car being passed through the CAN communication protocol, and a NRF module to read the global references from a camera placed at the ceiling looking downwards towards the mini-track. We implemented a Kalman Filter algorithm using the references read from the IMU, the encoder, and the camera global reference.

I collaborated with another student in the development of several modules of the ones stated before, as well as the code of the RTOS task scheduler. In order to follow trajectories, I used a PID controller to regulate the car’s linear velocity, and also programmed a Stanley Controller for the guidance system.

Play

Check out the repository!

Back to Projects