The purpose of this repository is to demonstrate our deployment of different tasks on a physical vehicle provided by AutonomousStuff. This work was done for the course CS 588 taught by Dr. Forsyth at the University of Illinois at Urbana-Champaign.
The contributers to this project are as follows:
- Priyam Mazumdar
- Hung Le
- Li-Kai Chuang
- Na-Teng Hung
- Nikash Walia
Given a series of waypoints we had to transform from global coordinates to the car’s local frame, and then use the goal angle as feedback to PID control. After that, we used the GEM simulator to demonstrate our result.
Video of PID Control: GEM PID Control Video

In this exercise, we learned to utilize the ROS publisher and subscriber to publish to the flashing signal light topic and learned to use the command to change the signal light on and off. We then write an iterative loop such that the signal light turns on and off at an SOS pattern (three left, three right).
Video of Distress Signal: Distress Signal Video
For braking at the pedestrian, we utilized the Zed camera for depth perception and estimate the location of the pedestrian using YOLO detection. While the vehicle follows a straight line at a constant speed with the PID controller, we command the vehicle to be 0 (stopping) when a certain distance is reached at the location of the pedestrian. Once the pedestrian is out of view, the vehicle will then continue until again detecting another pedestrian.
Video of Pedestrian Detection: Pedestrian Detection
For SLAM, we were given a Rosbag which contains the GEM vehicle data running around the parking lot. We simply followed the repo by rsasaki0109 to reconstruct the mapping using LIDAR-based slam in ROS2.
Video of SLAM: SLAM
In this exercise, we were given some waypoint examples and a pure pursuit controller that was tuned. We first create a figure-8 path using the GPS coordinates in (Lattitude, Longitude, and Azimuth), which we then convert into local XY coordinates using the Alvinxy library, then we feed each waypoint to the pure pursuit controller. At the intersection of the crossing figure-8, we create a special case to just look at the waypoint in a narrow vision such that it will only follow straight ahead to cross the “x” part of the figure-8 and complete the remaining loop back to the original starting point.
Interior Video of Figure 8: Interior
Exterior Video of Figure 8: Exterior
For the final project, we performed a waypoint follow determined by traffic cones, where each observed traffic cone prompts the car to avoid it and swerve around to the next observed traffic cone.
Interior Video of Final Project: Interior
Exterior Video of Final Project: Exterior
The image below is a testing example of where might the observed cones (red) relative to
the vehicle position (green triangle) in a predetermined path (blue lines). For the real
test, the car is not given any path and solely relies on the visibility of the cones,
which was done using a Blob and Coloring filter on the orange cones and coupled with
depth sensing (Zed camera) to determine the relative position of the current cone to the car.




