RaceCar Automated Guided Vehicle

Fall 2023, Université de Sherbrooke

Preview

About the Project

Drop the Racecar in an unknown area and it gets to work on its own. It maps the space, spots road debris, photographs each piece and reports exactly where it is and how to get there.

We built it on ROS around a behaviour-based architecture, where an arbitration node decides, moment to moment, which function gets the motors. Beyond autonomy, we modelled the car's lateral dynamics with a bicycle model, tuned its PID controller through time-frequency analysis, and wrote the TCP/UDP services and web interface that let you drive it remotely.

Functions

Racecar functions diagram: sensors feed trajectory following, photography and obstacle detection, which command the actuators through arbitration

How it works

The Racecar follows a simple chain: sensors → functions → actuators. Four sensors feed it, an IMU, wheel encoders, a camera and a LiDAR, a laser scanner that measures the distance to everything around the car. Three functions turn that data into decisions.

Trajectory following

As the car drives, odometry combines the IMU and encoders to track its own position and orientation. At the same time, the laser scan finds walls and obstacles and measures how far away they are. Knowing where it is and where each obstacle sits relative to it, the car places them on a map, built up gradually as it roams the area. Once the map is complete, an A* path-planning algorithm computes the optimal trajectory to reach each piece of debris.

Photography

When debris is found, the car records its coordinates. An approach routine calculates the movements needed to centre the vehicle on the debris, then stops it for five seconds while the camera takes a picture automatically.

Obstacle detector

Running alongside, this safety function uses the LiDAR to watch the path ahead. If something is in the way, it stops the vehicle, backs up and records the obstacle's position.

From decisions to motion

Each function sends motor commands to an arbitration node, which applies the one with the highest priority. Manual teleoperation and the emergency stop first, then the obstacle detector, photography and trajectory following. The winning command drives the actuators. The servomotor sets the steering and the motor sets the speed.

The result

At the end of a run, the car produces a report listing every piece of debris with its photo, its coordinates and the optimal trajectory to reach it.

Robot

The Racecar robot

Web UI

Racecar web interface

Architecture

Racecar system architecture

Dynamic Modeling

Racecar dynamic model equations
Back to all projects