All Projects → Jasonnor → Car Simulator

Jasonnor / Car Simulator

Licence: mit
Autonomous car simulator (based on JavaScript & WebGL) implemented by fuzzy control system, genetic algorithm and particle swarm optimization.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Car Simulator

Jenetics
Jenetics - Genetic Algorithm, Genetic Programming, Evolutionary Algorithm, and Multi-objective Optimization
Stars: ✭ 616 (+83.88%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Csb Ai Starter
Starter Bot for Codingame's Coders Strike Back AI Challenge (Simulation Engine + Random Search)
Stars: ✭ 32 (-90.45%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Geneticsharp
GeneticSharp is a fast, extensible, multi-platform and multithreading C# Genetic Algorithm library that simplifies the development of applications using Genetic Algorithms (GAs).
Stars: ✭ 813 (+142.69%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Three.js
JavaScript 3D Library.
Stars: ✭ 78,237 (+23254.33%)
Mutual labels:  webgl, virtual-reality
Artificial Intelligence
Awesome Artificial Intelligence Projects
Stars: ✭ 330 (-1.49%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Pagmo2
A C++ platform to perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model.
Stars: ✭ 540 (+61.19%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Ai Programmer
Using artificial intelligence and genetic algorithms to automatically write programs. Tutorial: http://www.primaryobjects.com/cms/article149
Stars: ✭ 948 (+182.99%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Pytsp
A 2D/3D visualization of the Traveling Salesman Problem main heuristics
Stars: ✭ 122 (-63.58%)
Mutual labels:  webgl, genetic-algorithm
Machine Learning Flappy Bird
Machine Learning for Flappy Bird using Neural Network and Genetic Algorithm
Stars: ✭ 1,683 (+402.39%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Radiate
Radiate is a parallel genetic programming engine capable of evolving solutions to many problems as well as training learning algorithms.
Stars: ✭ 65 (-80.6%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Patches
Patches is a visual programming editor for building WebVR and WebGL experiences.
Stars: ✭ 164 (-51.04%)
Mutual labels:  webgl, virtual-reality
Scikit Opt
Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Optimization Algorithm,Immune Algorithm, Artificial Fish Swarm Algorithm, Differential Evolution and TSP(Traveling salesman)
Stars: ✭ 2,791 (+733.13%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Unity Webxr Export
Develop and export WebXR experiences using Unity WebGL
Stars: ✭ 130 (-61.19%)
Mutual labels:  webgl, virtual-reality
Solid
🎯 A comprehensive gradient-free optimization framework written in Python
Stars: ✭ 546 (+62.99%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Ipyvolume
3d plotting for Python in the Jupyter notebook based on IPython widgets using WebGL
Stars: ✭ 1,696 (+406.27%)
Mutual labels:  webgl, virtual-reality
Construct
JavaScript Digital Organisms simulator
Stars: ✭ 17 (-94.93%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Exokit
Native VR/AR/XR engine for JavaScript 🦖
Stars: ✭ 809 (+141.49%)
Mutual labels:  webgl, virtual-reality
Worlds2
Building Virtual Reality Worlds using Three.js
Stars: ✭ 34 (-89.85%)
Mutual labels:  webgl, virtual-reality
Notebooks
Some notebooks
Stars: ✭ 53 (-84.18%)
Mutual labels:  artificial-intelligence, genetic-algorithm
Mlkit
A simple machine learning framework written in Swift 🤖
Stars: ✭ 144 (-57.01%)
Mutual labels:  artificial-intelligence, genetic-algorithm

Car Simulator

Car Simulator use the fuzzy control system, genetic algorithm and particle swarm optimization to simulate the movement of the autonomous car on the map. It also support VR device, see here for details.

Input contains the three distance sensors of the car (front, 45 degrees left and right), which can be obtained from the defined motion equation, the position of car and the angle between the car and the horizontal axis. Output is the rotation angle of steering wheel.

The target is to reach the end line without encountering the wall and output the movement trajectory (including the position of each point in time, the sensor value and the rotation angle of steering wheel) as a text file, then display on the graphical interface.

The motion equation of the simulated car is as follows:

motion-equation

Fuzzy Control System

Fuzzy control system use the custom seven fuzzy rules and discrete center of gravity defuzzifier. See here for the details.

Genetic Algorithm

Car Simulator use the real-valued genetic algorithm (GA) to train the radial base function network (RBFN) and the car will control by RBFN. The gene is defined as the three parameters of RBFN (w, m, σ) of mixed dimension vector. The fitness function is the mean variance of the expected output of the data set and the RBFN output in the specific input case. The lowest fitness value is the best RBFN parameter.

The structure of the radial base function network is as follows:

rbfn

Particle Swarm Optimization

Car Simulator can also use the particle swarm optimization (PSO) to train RBFN. The PSO coordinate is defined as the three parameters of RBFN (w, m, σ) of mixed dimension vector. The fitness function is the mean variance of the expected output of the data set and the RBFN output in the specific input case. The lowest fitness value is the best RBFN parameter.

Getting Started

https://jasonnor.github.io/Car-Simulator/

Car Simulator also support the VR device, please open this page.

preview

  1. Status
  2. Control button
  3. Camera first person / third person switch
  4. Rotation angle of steering wheel and moving speed
  5. Start the fuzzy control system
  6. RBFN parameters setting
  7. GA parameters setting
  8. PSO parameters setting
  9. Save the trajectory and data
  10. Operating instructions
  11. Graphic interface

Instructions

instructions

4-Dimensional Output Data Format

InputA1 InputB1 InputC1 Output1
InputA2 InputB2 InputC2 Output2
...

Where InputA is value of center distance sensor, InputB is value of right distance sensor, InputC is value of left distance sensor and output is rotation angle of steering wheel. The default datasets can be found here.

6-Dimensional Output Data Format

InputA1 InputB1 InputC1 InputD1 InputE1 Output1
InputA2 InputB2 InputC2 InputD1 InputE1 Output2
...

Where InputA is X coordinate of the car, InputB is Y coordinate of the car, InputC is value of center distance sensor, InputD is value of right distance sensor, InputE is value of left distance sensor and output is rotation angle of steering wheel. The default datasets can be found here.

Preview

fuzzy

camera

trajectory

first-person

success

failure

poor-driving

Reference

Contributing

Please feel free to use it if you are interested in fixing issues and contributing directly to the code base.

License

Car Simulator is released under the MIT license. See the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].