This was conducted by Alex Oachesu, Peter Tenghamn and Linus Ranestål. It was written in the halls of Kristianstad University. The authors are first year students of the Bachelor Programme in Software Development at Kristianstads University. The course is supervised by Eric Chen and Kamilla Klonowska. 1. 1. 3 Car information The self driving car that was used in this project has the ability to detect lanes, obstacles, traffic lights, the legal speed limit and accidents. The self driving car has also the ability to calculate the distance required to stop. The Swedish intersection that was used, consisted of two lanes entering and exiting south, north, east and west. The left lane is only used when the chosen destination requires to turn left. The right lane is used for two types of destinations, straight ahead and also for turning right. One exiting lane on each side of the intersection.Research Questions
Questions that have to be stated repeatedly in order to reach the final algorithm:
How would the car reach the exit as safe as possible?
Where in the intersection should the car make a decision?
How many intricate is the intersection?
How many problems could the car handle on its own?
What would happen in certain test case scenarios?
How can we simplify the algorithm?
Limitations played a major part when this project was performed. The knowledge about how to create a great, effective and functional algorithm were definitely a disadvantage. Seeing that the project was executed by first year students, the knowledge was limited from the beginning. The limitation could also be to an advantage. E. g. keeping it simple, so it’s easier for the reader to understand. Another lack of knowledge is the intricacies of the self driving car and conforming it into the problem of navigating an intersection safely. The project is only conceptualised in a theoretical solution. There was no car, private intersection with traffic lights or any non human-test obstacles available to use for testing different scenarios.
There was no other specific solutions that was determined to be more efficient than the composed result. The algorithm started out being very simple and over time it became more and more efficient. Any other solutions were not mentioned in this paper. That is because this specific result was determined to be the most efficient one.
Approach In the beginning of the project, the problem was visualized by drawing a depiction of the intersection on a whiteboard. The algorithm was developed according to the issues that the depiction of the intersection revealed. After this the algorithm was put through three test scenarios, representing the three possible directional options that the self driving car could have approaching the intersection. Using the test results the algorithm was represented diagrammatically through a flowchart that was further developed into pseudo code. The performed project was based on knowledge gained from the Introduction to Computer Science course. No literature was used during this study.
The materials that were used was computers with different operating systems, pen, paper and a whiteboard. To be able to write the paper as easy as possible, Google Docs was used due to its ability to co work online with writing, editing and commenting. When drawing the flowchart, a software called draw. io was used. It was also used for its ability to simply co work online. Once an algorithm was created, the research questions were frequently referred to, to develop and improve it until it was functional, not too long and as safe as possible for all the trafficants. During the testing of the algorithm certain problems would occur. What was done to solve the problem was to go back to the top of the flowchart and run through it until a solution was found. Once the flowchart was perspicuous the next task was to create a pseudo-code from the created flowchart.
The purpose of this project was to create an algorithm for a self driven car, so it would be able to navigate through a Swedish intersection with traffic lights, with or without any traffic. While the car drove through the intersection, it would encounter and avoid obstacles. The car would avoid the obstacles in a safe way and would then proceed towards the chosen destination. This specific project was conducted to help develop and execute different kinds of problem solving techniques in a group environment. Keep in mind that this project was only conceptualised in a theoretical aspect. There was no car, no private intersection with traffic lights or any non human-test obstacles available for use in testing different practical scenarios.
During creation of the algorithm it was established what the intersection would be composed of. Some things discussed were, how many lanes would the intersection have upon entry, how many lanes would the intersection have upon exit and which other intersection lights would be green when our car would have a green light. It was also discussed how much the self driving car would be able to do on its own. Some examples of questions frequently asked was, would the car be able to manage its speed on its own and what would the car be able to scan.
When an idea was formulated of what the outcome would look like, some unexpected situations appeared that might complicate the algorithm. Following questions are examples that were brought up, what if a pedestrian or cyclist would cross the street when you have a green light, what would happen if there is an accident, would the car handle this on its own and what would happen if a person still crosses the crosswalk when the car is trying to cross towards its chosen destination. This project has enabled the development of communication and documentation skills, persuasion, understanding, adaptation and teamwork. Through the structure of activity, the challenges that emerged outlined the individual and group personal abilities of those involved. The feedback received was also a useful exercise of self-assessment and evaluation from outside the group.
The conclusion has come to demonstrate on a theoretical level that algorithms can be developed to guide a car through an intersection. At the same time it has been demonstrated that the complexity of data collection, analyzing and reacting to an environment is in constant change. It has also been demonstrated that problems can be solved by developing algorithms, that are graphically represented by a flowchart and can be the basis of a pseudo-code that can be applied later in a non-ambiguous and executable program.