Self-Driving Controller Design (Course Project)

Status: Finished Date: 2014.3-2014.6 Member: Zexiang Liu, Lantian Cao, Yiming Ju

Problem Description:

The project is the main part of the course EI229 Science and Technology Innovation (Part 4-D). There are three tasks: design control algorithms respectively for auto-cruise in unknown road, tracking a car of random behavior and backing a car in a given position. The simulation platform is TORCS, a open-source car simulator (ref: http://torcs.sourceforge.net/).

Our Solution:

We constructed two PID controllers for speed control and steeling control respectively. For the first two tasks, we used curvature of the road and the position of front car as the input of controllers. In the backing task, we first designed a function which made the car circle along different radius and then we decomposed the backing route into two tangent circles, which we just needed to operate the function two times to achieve the car's backing.

Fig 1 TORCS

Fig 2 Track selection

My Contribution:

I designed the PID controllers of cruise and backing the car. The implementation was easy, but it was difficult to find the satisfying PID parameters, for the controller was asked to work in different tracks with several road conditions (for example, a muddy road). The bruce force method was used to tune the parameters, which took me almost 100 hours to make the controller work for most of the tracks as well as make the car keep a relatively high speed. Even though, our controller failed one time in a new track in the final test, which made me see some limitations of PID control.

Fig 3 Simulation Environment