Inspiration
At a traffic signal, vehicles traditionally have to come to a stop to allow other vehicles to pass. This creates traffic buildup and unnecessarily increases carbon emissions. We wanted to find a way to avoid this... especially in a world that is beginning to turn towards automation for ease of several tasks in our daily lives.
What it does
Our program simulates the interactions between automated cars at an intersection with no lights/signals while eliminating collisions. The program dynamically adjusts the velocity and acceleration of cars in-time so that cars seamlessly and realistically can enter and exit the intersection.
How we built it
We built this by using Pygame for our graphics which clearly and realistically displays a 4-lane intersection with cars of various sizes. We also had a Car class that encapsulated most of the methods and information that we used to evaluate the car's current state along with its surroundings, position, speed, acceleration, dimensions, etc... Most of the changes in interactions between cars were managed within the Simulation class which made several decisions and also displayed/updated our graphics. These two classes were able to communicate to accurately account for constant changes that occurred simultaneously.
Challenges we ran into
Our largest challenge was deciding how to systematically create an algorithm that would account for all cases of interactions between cars since there are lots of possibilities when there are multiple pieces interacting in a single simulation such as this. We also had trouble working with several constraints at once, which was difficult at first.
Accomplishments that we're proud of
We're proud of how realistic our simulation was and how applicable it could be to a real situation. We are also proud of our work in working with the several moving pieces and having them all "communicate" with each other in a clean and organized way. We also used advanced physics and math like 2D kinematics, integrals, and derivatives. Although these calculations didn’t make it into the submission version of our program, we’re proud of our work on them. We even derived some formulas that we didn’t learn beforehand!
What we learned
We learned how to work with several pieces of a problem and bring them together for a seamless solution. We learned that this requires organization and lots of modularization.
What's next for Optimized Transportation
We plan to take this further to account for turns and to account for possible errors that could occur as a result of real-life situations leading to accidents. We could also try to constrain speed and acceleration more and randomize these based on experimental data to better emulate the real variations that can be seen in non-automated cars.
Log in or sign up for Devpost to join the conversation.