Now add a statemashine to handle what action the car currently follows (drinvin staigth to next node, detecting a block, finding the best way arround, set point beneath the path to drive arround, drive to block, return to path).
With the path (and waypoints) you can also manage the position calculation).
Here's a techdemo of such a racing game with paths:
(you see the human controlled car)
PS: to give the cars more AI you should let them brake/accelerate with blocking obstacles.