The project consists in a semplified version of an autonomous driving system, in particular are developed the longitudinal control for a traffic-light intersection and a lateral control for obstacle avoidance. The path plannig is performed using the high-level planner RRT (rapidly-exploring random tree) The longitudinal control is performed using the motion primitive technique The lateral control is performed using the preview point lateral control (is also defined the clothoid based lateral control)
git clone --recurse-submodules https://github.com/GiacomoCorradini/Autonomous_driving_simulator.git ~/Autonomous_driving_simulator
- enter inside the folder agent_communication_lib
cd ~/Autonomous_driving_simulator/agent_communication_lib
- compile the project with cmake (need ruby)
cmake -Bbuild
cmake --build build -t install
- copy file in bin/lib/libagent_lib.so into ../PyDrivingSim/agent
- copy file in bin/lib_static/libagent_lib.a into ../basic_agent_st/lib
- enter inside the folder Clothoids
cd ~/Autonomous_driving_simulator/basic_agent/Clothoids
- compile the project with cmake
cmake -Bbuild
cmake --build build -t install
- enter inside the folder basic_agent
cd ~/Autonomous_driving_simulator/basic_agent
- compile the project with cmake
cmake -Bbuild
cmake --build build
Open two different terminals
Run basic_agent in the first terminal
- enter inside the folder basic_agent
cd ~/Autonomous_driving_simulator/basic_agent
- run basic_agent
./bin/basic_agent
Run pydriving simulator in the second terminal
- enter inside the folder PyDrivingSim
cd ~/Autonomous_driving_simulator/PyDrivingSim
- run simulator.py
- to simulate the traffic-light environment
python3 simulator.py 0
- to simulate the traffic-light environment + obstacle avoidance
python3 simulator.py 1