top of page
GraphSLAM Algorithm For Autonomous Formula Style Racecar

Location: Carnegie Mellon Racing Driverless

Role: Lead on Path-Planning SLAM Team for Carnegie Mellon Racing Driverless
Date: September 2022 - September 2023
An algorithm that uses pose graph optimization to generate a more accurate representation of the race car’s environment and state estimate from noisy sensor data.
But what is pose graph optimization?
A technique that can be used in Simultaneous Localization and Mapping (SLAM) to correct the estimated poses (positions and orientations) of a robot as it traverses through an unknown environment. It minimizes the errors in the estimated poses by considering the nodes and edges that constrain the pose graph.

A pose graph consists of nodes and edges. The nodes represent the robot's pose at a timestamp and the edges represent the robot's spatial constraints or measurements. Such constraints can be defined by the robot's odometry (its relative motion) or by loop closures (the robot's revisitation of a previous location).

But why are loop closures important and how do we detect them?
Loop closures enforce consistency in the poses between current and previous observations of the same location. This allows the graph to optimize the nodes and edges and improve the accuracy of the estimates. Thanks to the car's perception pipeline trained on the FSOCO dataset, the GraphSLAM algorithm can match newly seen landmarks (track cones) to previously seen times to produce loop closures.
See How Pose Estimate Error Decreases With More Perceived Loop Closures

And here's a look at how GraphSLAM can improve noisy sensor estimates of the track as a result:

Ground Truth


Noisy
Optimized

Also...
See Carnegie Mellon Racing Driverlesss Demonstrate the First Formula Student Racecar to Complete an Autonomous Lap in North American History!

Takeaways from my experience working at CMR Driverless?
CMR Driverless's success is largely due to its team-first mentality and culture. After spending 2 years to help build a Formula style autonomous race car from scratch with highly passionate and brilliant CMU students, I've bonded and grown with my teammates over late night code sessions, afternoon meetings, and hours long track testing. Over the past couple years, I've learned how to lead a team and integrate our work with other subteam pipelines. Attending the New Hampshire Formula Hybrid competition late May also gave me first hand experience how to adapt to a dynamic environment where any engineering/programming failure is possible.
** Please note all code is proprietary to Carnegie Mellon Racing and therefore not publicly accessible **

bottom of page