Bot for the NASA Mars Rover Game
Autonomous cars are a subject of growing interest. Here, we try to pilot a 2D Mars Rover in real time :)
We use Selenium to interact with game.
We support the headless WebKit PhantomJS and the browsers Chrome and Chromium with the headless option.
We use convolution to retrieve wheels position (blue) and color detection for the road shape (green).
References:
From the road shape and the wheel position, we simulate some "sensors".
TODO: Use SCOOP instead of custom distributed computations. TODO: Reinforcement learning? Or implement Evolution Strategies as a Scalable Alternative to Reinforcement Learning. See also RLlib and https://eng.uber.com/deep-neuroevolution/.
We use genetic evolved neural networks. It doesn't work very well (tested the 1+4+1 strategy over 50 generations).
We can increase the speed of our program by evaluating the controllers
in parallel in a SLURM cluster, see main_distributed.py
.