This project will apply and extend a JavaScript implementation of a logic-based language LPS to a multi-agent simulation of self-driving cars. All cars will employ the same set of rules, for driving to a goal destination, for avoiding accidents and for complying with traffic regulations. For example, if there is a collision warning, and one car is going to turn right, and the other car is driving straight, then the first car should stop and give way to the second car. However, they will have different initial locations and different goal destinations.
The existing Javascript implementation of LPS includes both peer-to-peer and shared memory approaches to multi-agent systems. The project will experiment with these and possibly other approaches to determine which approach is most suitable for the application.
The Javascript implementation also includes animation facilities. The project will use these facilities to animate traffic flows, and to experiment with different scenarios.
To find out about the Javascript implementation of LPS, go here: https://lps.js.org/. To find out more about LPS and see an example animation, go here: http://lps.doc.ic.ac.uk/.
To get an idea about the wider context of the application, go here: https://www.researchgate.net/publication/318079353_Ontology-Based_Driving_Decision_Making_A_Feasibility_Study_at_Uncontrolled_Intersections.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
What things you need to install the software and how to install them
Give examples
A step by step series of examples that tell you how to get a development env running
Say what the step will be
Give the example
And repeat
until finished
End with an example of getting some data out of the system or using it for a little demo
Explain how to run the automated tests for this system
Explain what these tests test and why
Give an example
Explain what these tests test and why
Give an example
Add additional notes about how to deploy this on a live system
- Dropwizard - The web framework used
- Maven - Dependency Management
- ROME - Used to generate RSS Feeds
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Billie Thompson - Initial work - PurpleBooth
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details
- Hat tip to anyone whose code was used
- Inspiration
- etc