Mustafa Ozcelikors | d8f8a73 | 2017-07-17 14:02:35 +0200 | [diff] [blame] | 1 | Description: |
| 2 | A4MCAR Project - Readme File |
| 3 | |
| 4 | Author: |
| 5 | M. Ozcelikors <mozcelikors@gmail.com>, Fachhochschule Dortmund |
| 6 | |
| 7 | Supervision & Mentoring: |
| 8 | Robert Hoettger |
| 9 | |
| 10 | Disclaimer: |
| 11 | Copyright (c) 2017 FH Dortmund and others |
| 12 | All rights reserved. This program and the accompanying materials are made available under the |
| 13 | terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at |
| 14 | http://www.eclipse.org/legal/epl-v10.html |
| 15 | |
| 16 | This project has been granted during the Google Summer of Code 2017. |
| 17 | |
| 18 | Scope: |
| 19 | In this readme file, the project descriptions and objectives are given. This readme file also |
| 20 | introduces the file system of all the applications developed for XMOS xCORE-200 eXplorerKIT, |
| 21 | Raspberry Pi 3, and Android phones, as well its shows where created models and scripts are |
| 22 | located. |
| 23 | |
| 24 | Project Abstract: |
| 25 | Distributing software effectively to multi core, many core, and distributed systems has been |
| 26 | studied for decades but still advances successively driven by domain specific constraints. |
| 27 | Programming vehicle ECUs is one of the most constrained domains that recently approached the need |
| 28 | for concurrency due to advanced driver assistant systems or autonomous driving approaches. |
| 29 | To answer the needs of automotive industry in this manner with an open-source approach, recent |
| 30 | studies have been made such as the Eclipse-based APP4MC platform. Although APP4MC provides |
| 31 | sufficient tooling in parallel computing for automotive domain, the demonstration and evaluation |
| 32 | of its results would improve its performance and allow to investigate the optimization of goals |
| 33 | such as resource usage and energy consumption. With the project, software distribution challenges |
| 34 | for such automotive systems should be analyzed upon instruction precise modeling, affinity |
| 35 | constrained distribution, and reducing task response times achieved by advanced software |
| 36 | parallelization. Advanced software parallelization will be achieved on a remote controlled |
| 37 | demonstrator car that will have a distributed and parallel architecture. |
| 38 | |
| 39 | A4MCAR is a demonstrator car which features not only low level functionalities such |
| 40 | as sensor and motor driving but also high level features such as image processing, |
| 41 | camera streaming, server-based wireless driving via Web, bluetooth connectivity |
| 42 | via Android application, system core monitoring and analysis features and touchscreen UI. |
| 43 | Our experiments along the multi-task heterogeneous demonstrator A4MCAR show that using APP4MC |
| 44 | results instead of OS-based or sequential implementations on a distributed heterogeneous |
| 45 | system significantly improves its responsiveness in order to potentially reduce energy |
| 46 | consumption and replaces error prone manual constraint considerations for mixed-critical |
| 47 | applications. |
| 48 | |
| 49 | Project Objectives: |
| 50 | - Development of a distributed multi-core demonstrator for the APP4MC platform that involves |
| 51 | features with the emphasis of automotive applications. |
| 52 | - General study on parallelization, scheduling, and popular trends (such as POSIX threads, |
| 53 | RTOS paralellization etc.) |
| 54 | - Researching techniques to retrieve information (number of instructions, communication costs) |
| 55 | and system trace from platforms such as xCORE and Linux to achieve precise modelling with APP4MC. |
| 56 | - In order to achieve optimization goals such as reduced energy consumption and reduced resource |
| 57 | usage, different affinity constrained software distributions will be evaluated and energy features |
| 58 | will be invoked to see if the goals are met. |
| 59 | - Developing a basic and modular online parallelization evaluation software that will retrieve |
| 60 | scheduling properties such as slack times, execution times, and deadlines from all the processes |
| 61 | and that will tell how many of the deadlines are met, how good of a software distribution it is |
| 62 | while the software is being executed. |
| 63 | - Also taking system traces from the software to carry out offline software evaluation in order |
| 64 | to figure out means to balance the load on cores. |
| 65 | - Comparing the conventional schedulers non-constrained affinity distribution (such as a Linux OS |
| 66 | scheduler) to the affinity constrained distribution from APP4MC to see if performance can be |
| 67 | improved. |
| 68 | |
Mustafa Ozcelikors | 90f20c6 | 2017-08-20 19:01:37 +0200 | [diff] [blame^] | 69 | Introduction and Setup: |
| 70 | Please visit |
| 71 | http://a4mcar.readthedocs.io |
| 72 | |
Mustafa Ozcelikors | d8f8a73 | 2017-07-17 14:02:35 +0200 | [diff] [blame] | 73 | File System and Applications: |
| 74 | The a4mcar directory have to be placed in the home directory: /home/pi |
| 75 | The external libraries and modules that needs to be downloaded are located at: |
| 76 | https://gitlab.pimes.fh-dortmund.de/RPublic/a4mcar_required_modules.git |
| 77 | |
Mustafa Ozcelikors | 90f20c6 | 2017-08-20 19:01:37 +0200 | [diff] [blame^] | 78 | The dependencies are installed using setup scripts that are created. External modules involve |
| 79 | virtkeyboard, psutil, mjpg_streamer for those who want to manually install the dependencies. |
Mustafa Ozcelikors | d8f8a73 | 2017-07-17 14:02:35 +0200 | [diff] [blame] | 80 | |
| 81 | The repository should have the following main folders: |
| 82 | |
| 83 | web_interface : The web interface that is developed for A4MCAR project which is used to control |
| 84 | A4MCAR over remote Wi-Fi connection. |
| 85 | |
| 86 | In order to set up web_interface, run the setup script: |
| 87 | web_interface/setup_web_interface.sh |
| 88 | |
| 89 | In order to run the web_interface correctly, the high-level modules core_reader |
| 90 | and ethernet_client should be ready and working. |
| 91 | To run the web_interface one should connect to the access point of Raspberry Pi |
| 92 | from a client computer web browser and visit |
| 93 | http://<IP_Address>/jqueryControl2.php or http://<IP_Address>/jqueryControl.php |
| 94 | |
| 95 | high_level_applications : This module consists of several high-level applications that are developed for |
| 96 | A4MCAR's high-level module (Raspberry Pi). These applications involve: |
| 97 | touchscreen_display, core_recorder, dummy_loads, ethernet_client, and |
| 98 | image_processing. |
| 99 | |
| 100 | In order to run the applications, respective Python files could be run or C/C++ |
| 101 | binaries could be executed. Also the scripts that are located under scripts |
| 102 | folder could be used to initialize some of the applications. |
| 103 | |
| 104 | In order to set up high_level_applications module dependencies, one should run |
| 105 | the setup script and follow the instructions: |
| 106 | high_level_applications/setup_high_level_applications.sh |
| 107 | |
| 108 | models: A4MCAR's hardware and software model with Eclipse APP4MC is located in this |
| 109 | directory. |
| 110 | |
| 111 | android_application: This directory consists of the source files that belong to the A4MCAR's bluetooth |
| 112 | based driving application. The source and design files could be used in an Android |
| 113 | IDE in order to make tweaks to the application and to generate new .apk files. |
| 114 | |
| 115 | low_level_applications: low_level_applications module involves the source code for the low-level module that |
| 116 | are run using a multi-core microcontroller XMOS xCORE-200 eXplorerKIT. The low level |
| 117 | applications are responsible for tasks such as sensor driving, actuation, communication, |
| 118 | and core monitoring of the A4MCAR. The low_level_applications module could be imported |
| 119 | into xTIMEcomposer to make tweaks to the tasks. |
Mustafa Ozcelikors | f8e6a25 | 2017-07-30 20:18:40 +0200 | [diff] [blame] | 120 | |
Mustafa Ozcelikors | 90f20c6 | 2017-08-20 19:01:37 +0200 | [diff] [blame^] | 121 | docs: Involves documentation and Sphinx-generated how-to-setup manual. |
Mustafa Ozcelikors | d8f8a73 | 2017-07-17 14:02:35 +0200 | [diff] [blame] | 122 | |