A4MCAR - Readme file for the project added.
Signed-off-by: Mustafa Ozcelikors <mozcelikors@gmail.com>
diff --git a/a4mcar/readme.txt b/a4mcar/readme.txt
new file mode 100644
index 0000000..5820c23
--- /dev/null
+++ b/a4mcar/readme.txt
@@ -0,0 +1,116 @@
+Description:
+ A4MCAR Project - Readme File
+
+Author:
+ M. Ozcelikors <mozcelikors@gmail.com>, Fachhochschule Dortmund
+
+Supervision & Mentoring:
+ Robert Hoettger
+
+Disclaimer:
+ Copyright (c) 2017 FH Dortmund and others
+ All rights reserved. This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ This project has been granted during the Google Summer of Code 2017.
+
+Scope:
+ In this readme file, the project descriptions and objectives are given. This readme file also
+ introduces the file system of all the applications developed for XMOS xCORE-200 eXplorerKIT,
+ Raspberry Pi 3, and Android phones, as well its shows where created models and scripts are
+ located.
+
+Project Abstract:
+ Distributing software effectively to multi core, many core, and distributed systems has been
+ studied for decades but still advances successively driven by domain specific constraints.
+ Programming vehicle ECUs is one of the most constrained domains that recently approached the need
+ for concurrency due to advanced driver assistant systems or autonomous driving approaches.
+ To answer the needs of automotive industry in this manner with an open-source approach, recent
+ studies have been made such as the Eclipse-based APP4MC platform. Although APP4MC provides
+ sufficient tooling in parallel computing for automotive domain, the demonstration and evaluation
+ of its results would improve its performance and allow to investigate the optimization of goals
+ such as resource usage and energy consumption. With the project, software distribution challenges
+ for such automotive systems should be analyzed upon instruction precise modeling, affinity
+ constrained distribution, and reducing task response times achieved by advanced software
+ parallelization. Advanced software parallelization will be achieved on a remote controlled
+ demonstrator car that will have a distributed and parallel architecture.
+
+ A4MCAR is a demonstrator car which features not only low level functionalities such
+ as sensor and motor driving but also high level features such as image processing,
+ camera streaming, server-based wireless driving via Web, bluetooth connectivity
+ via Android application, system core monitoring and analysis features and touchscreen UI.
+ Our experiments along the multi-task heterogeneous demonstrator A4MCAR show that using APP4MC
+ results instead of OS-based or sequential implementations on a distributed heterogeneous
+ system significantly improves its responsiveness in order to potentially reduce energy
+ consumption and replaces error prone manual constraint considerations for mixed-critical
+ applications.
+
+Project Objectives:
+ - Development of a distributed multi-core demonstrator for the APP4MC platform that involves
+ features with the emphasis of automotive applications.
+ - General study on parallelization, scheduling, and popular trends (such as POSIX threads,
+ RTOS paralellization etc.)
+ - Researching techniques to retrieve information (number of instructions, communication costs)
+ and system trace from platforms such as xCORE and Linux to achieve precise modelling with APP4MC.
+ - In order to achieve optimization goals such as reduced energy consumption and reduced resource
+ usage, different affinity constrained software distributions will be evaluated and energy features
+ will be invoked to see if the goals are met.
+ - Developing a basic and modular online parallelization evaluation software that will retrieve
+ scheduling properties such as slack times, execution times, and deadlines from all the processes
+ and that will tell how many of the deadlines are met, how good of a software distribution it is
+ while the software is being executed.
+ - Also taking system traces from the software to carry out offline software evaluation in order
+ to figure out means to balance the load on cores.
+ - Comparing the conventional schedulers non-constrained affinity distribution (such as a Linux OS
+ scheduler) to the affinity constrained distribution from APP4MC to see if performance can be
+ improved.
+
+File System and Applications:
+ The a4mcar directory have to be placed in the home directory: /home/pi
+ The external libraries and modules that needs to be downloaded are located at:
+ https://gitlab.pimes.fh-dortmund.de/RPublic/a4mcar_required_modules.git
+
+ The dependencies are installed using setup scripts that are created. External modules involve
+ virtkeyboard, psutil, mjpg_streamer for those who want to manually install the dependencies.
+
+ The repository should have the following main folders:
+
+ web_interface : The web interface that is developed for A4MCAR project which is used to control
+ A4MCAR over remote Wi-Fi connection.
+
+ In order to set up web_interface, run the setup script:
+ web_interface/setup_web_interface.sh
+
+ In order to run the web_interface correctly, the high-level modules core_reader
+ and ethernet_client should be ready and working.
+ To run the web_interface one should connect to the access point of Raspberry Pi
+ from a client computer web browser and visit
+ http://<IP_Address>/jqueryControl2.php or http://<IP_Address>/jqueryControl.php
+
+ high_level_applications : This module consists of several high-level applications that are developed for
+ A4MCAR's high-level module (Raspberry Pi). These applications involve:
+ touchscreen_display, core_recorder, dummy_loads, ethernet_client, and
+ image_processing.
+
+ In order to run the applications, respective Python files could be run or C/C++
+ binaries could be executed. Also the scripts that are located under scripts
+ folder could be used to initialize some of the applications.
+
+ In order to set up high_level_applications module dependencies, one should run
+ the setup script and follow the instructions:
+ high_level_applications/setup_high_level_applications.sh
+
+ models: A4MCAR's hardware and software model with Eclipse APP4MC is located in this
+ directory.
+
+ android_application: This directory consists of the source files that belong to the A4MCAR's bluetooth
+ based driving application. The source and design files could be used in an Android
+ IDE in order to make tweaks to the application and to generate new .apk files.
+
+ low_level_applications: low_level_applications module involves the source code for the low-level module that
+ are run using a multi-core microcontroller XMOS xCORE-200 eXplorerKIT. The low level
+ applications are responsible for tasks such as sensor driving, actuation, communication,
+ and core monitoring of the A4MCAR. The low_level_applications module could be imported
+ into xTIMEcomposer to make tweaks to the tasks.
+
\ No newline at end of file