top of page
1dda4d_67765f7be3fe4a4bb433532b33842113~mv2.png

Autonomous Racing
using the F1TENTH platform

Implemented different strategies for high speed autonomous racing using the F1TENTH platform and tested it in simulation and physical hardware

Description

This semester long project aimed to develop experience on designing and calibrating advanced autonomous driving concepts on a small scale motor car that is capable of going at high speeds and has state of the art sensors - such as camera and lidars. We experiment with a variety of ideas and concepts and test them extensively in simulation and in physical settings.

​

​

​

​

​

​

​

​

​

​

​

​

At the end, we had to complete in head to head racing with other teams - each running their optimized autonomy stacks - in which we emerged runner's up!

​

Some ideas we worked on included Reactive racing methods, Pure pursuit based approaches, Model Predictive Control , methods of raceline optimization, dynamic local planners and more!

​

Overtake of slower car This is a video of a clean overtake (right behind the pillar) of a slower car. Once can see our algorithm here, a variation of pure pursuit on an optimized raceline that takes tigher turns accurately and cuts in to overtake the slower car and then leaves it in the dust

Concepts used

  1. Basic safety functionalities: Automatic Emergency Breaking and Caliberation

  2. Reactive Algorithms for racing - wall follow, follow the gap and variations. We also worked with reactive obstacle avoidance and dynamic switching of control strategies.

  3. Lidar SLAM to map environments and then use Pure pursuit based planners to race

  4. Stanley controllers

  5. RRT* based obstacle avoidance

  6. Model predictive control based planners

  7. Raceline optimization and testing

  8. Using camera feed to detect objects and estimate depth real time (deployment of ML models on the TensorRT engine)

  9. Using data logged from sensors to analyze performance and tune algorithms - several hundred hours on the track across the project to integrate and improve performance

Pure pursuit Once can see the effectivness of simple pure pursuit method here as it smoothens out turns and works well even without an optimized trajectory or raceline

Local planners Local planners such as RRT* can help the agent avoid dynamic and unexpected obstacles but require higher processing loads and have other problems with higher speeds. Thus to make them effective it is better to couple multiple planners and switch based on environmental conditions - eg. use pure pursuit to race fast, and if we notice something new on the track then slow down and switch to MPC or RRT* based planners

Compuation limits When working on software and simulation it is easy to forget how the environment can completely change the performance of different algorithms. The corridor on the left, with slippery floors and sharp corners makes skid and slip a key factor and affects how we design our algorithms and which one works better. Similarly computational overheads and hardware related delays can impact the performance of even textbook algorithms. For example, RRT* was implemented and optimized but it's random nature causes occational jitters and the computational non-determinsim makes it difficut to use for higher speeds (with our compute and implementation). Notice the slower speed and jitter above

Complex need not mean better When working for a particular goal - say speed in this environment, the best method may not be the most complex. Here we have reactive method - follow the gap which finds the best gap in the front and drives into it. This does not require maps or racelines and is computaitonally very light. Similarly it has a virtual bumper based obstacle avoidance method - which can work well enough and is much quicker to caliberate and develop. In the video to the left, I have slowed the video speed during the obstacles at the bottom so it is easier to observe how the algorithm detects various obstacles and gaps in its vision and chooses accordingly in run time

The Team

IMG-20230508-WA0014
IMG-20230425-WA0000
1dda4d_b67c9a71cfdf4c58bd0fcbb518280ec5~mv2
bottom of page