NeuroRace is a project in the field of machine learning to control a vehicle in simulation and real world. It includes the topics of hardware, robotics, data processing and neural networks. Even the showcase concentrates on driving a vehicle, the developed framework is capable of handling even more complex tasks.
For who is NeuroRace?
NeuroRace is an open source project started and maintained by HTW Berlin. It addresses anyone who has minor to basic knowledge in robotics and machine learning with interests in autonomous controls.
To autonomously drive a vehicle, Convolutional Neural Networks can be used [LEC98]. A research team has proven, that a complex architecture is capable to drive a car by using an end-to-end concept [NVI16]. Therefor a paradigm called Imitation Learning has been applied [HUS17]. Hereby, the model is trained supervised and the action is mimicked. Based on this approach a real word prototype racecar in scale 1:10 is built within this project and equipped with a camera and different additional sensors. With the developed software framework 'neuroracer', data can be recorded to train a model, capable of driving autonomously on a random track with borders (borders are based on data, e.g. roads, pylons, etc.).
Furthermore, another paradigm, Reinforcement Learning [SB98] will be given by the framework to train a model. In Reinforcement Learning, a reward system is required for training instead of labeled data. Based on this approach, researchers successfully trained models, which are capable of solving different complex tasks [KOR13], even in the continuous action space [SIL14][LIL15]. With this paradigm in mind, a simulator [KH04] in combination with the Robot Operating System [QUI09] and OpenAI Gym [BRO16] is used, to provide the possibility of training different Reinforcement Learning algorithms. The MIT-Racecar project is used as base for the simulated version of the real world prototype.
The framework makes use of
TODO split stuff to chapters and prerequisites like numpy and ros
ROS, Gazebo, Python, OpenCV, NumPy, hdf5, Tensorflow, Keras, PyTorch, Arduino
The installation is supported in two ways, native and via docker.
See neuroracer-docker for install instructions for training, simulation and real world prototype.
The framework includes software for autonomous control and TODO
TODO - add sketch
There are three relevant packages for the machine learning part of this project. The base package neuroracer-ai, containing all requirements to handle a given input and produce an output by using a pretrained neural network.
The other two packages, neuroracer-ai-sl and neuroracer-ai-rl, TODO
A manual for how-to assemble all components and making required modifications to the vehicle, can be downloaded here.
NOTE - ALPHA VERSION: Will be updated and translated into english soon.
For media regarding simulation or robot, have a look at the corresponding repository.