This is the project for the fourth course in the Udacity C++ Nanodegree Program: Concurrency.
This project is a traffic simulation in which vehicles are moving along streets and are crossing intersections. Each intersection is equipped with a traffic light to simulate real world traffic, so that a maximum of one car can be inside an intersection at a given time. A suitable and thread-safe communication protocol manages transmissions between vehicles and intersections. Concurrent programming principles (such as mutexes, locks and message queues) along with Modern C++ features are used to implement the traffic lights and integrate them properly in the code base.
- cmake >= 2.8
- All OSes: click here for installation instructions
- make >= 4.1 (Linux, Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- OpenCV >= 4.1
- The OpenCV 4.1.0 source code can be found here
- gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - install Xcode command line tools
- Windows: recommend using MinGW
- Clone this repo.
- Make a build directory in the top level directory:
mkdir build && cd build
- Compile:
cmake .. && make
- Run it:
./traffic_simulation
.