amiro-apps / README.md @ 5d321afa
History | View | Annotate | Download (3.922 KB)
| 1 | 6d4ba740 | Thomas Schöpping | About & License |
|---|---|---|---|
| 2 | =============== |
||
| 3 | |||
| 4 | AMiRo-Apps is a collection of applications and configurations for the Autonomous |
||
| 5 | Mini Robot (AMiRo) [1]. It is tightly coupled to the AMiRo-OS and uRtWare |
||
| 6 | projects, which provide a sophisticated operating system (based on ChibiOS) amd |
||
| 7 | a real-time middleware for embedded devices. |
||
| 8 | |||
| 9 | Copyright (C) 2018..2020 Thomas Schöpping et al. |
||
| 10 | (a complete list of all authors is given below) |
||
| 11 | |||
| 12 | This program is free software: you can redistribute it and/or modify |
||
| 13 | it under the terms of the GNU General Public License as published by |
||
| 14 | the Free Software Foundation, either version 3 of the License, or (at |
||
| 15 | your option) any later version. |
||
| 16 | |||
| 17 | This program is distributed in the hope that it will be useful, but |
||
| 18 | WITHOUT ANY WARRANTY; without even the implied warranty of |
||
| 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
||
| 20 | General Public License for more details. |
||
| 21 | |||
| 22 | You should have received a copy of the GNU General Public License |
||
| 23 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
||
| 24 | |||
| 25 | This research/work was supported by the Cluster of Excellence |
||
| 26 | Cognitive Interaction Technology 'CITEC' (EXC 277) at Bielefeld |
||
| 27 | University, which is funded by the German Research Foundation (DFG). |
||
| 28 | |||
| 29 | Authors: |
||
| 30 | |||
| 31 | - Thomas Schöpping <tschoepp[at]cit-ec.uni-bielefeld.de> |
||
| 32 | |||
| 33 | References: |
||
| 34 | |||
| 35 | [1] S. Herbrechtsmeier, T. Korthals, T. Schopping and U. Rückert, "AMiRo: A |
||
| 36 | modular & customizable open-source mini robot platform," 2016 20th |
||
| 37 | International Conference on System Theory, Control and Computing (ICSTCC), |
||
| 38 | Sinaia, 2016, pp. 687-692. |
||
| 39 | |||
| 40 | -------------------------------------------------------------------------------- |
||
| 41 | |||
| 42 | Contents |
||
| 43 | ======== |
||
| 44 | |||
| 45 | 1. Required Software |
||
| 46 | 2. Folder Structure |
||
| 47 | |||
| 48 | -------------------------------------------------------------------------------- |
||
| 49 | |||
| 50 | 1 Required Software |
||
| 51 | =================== |
||
| 52 | |||
| 53 | Since AMiRo-Apps depends on the AMiRo-OS and µRtWare projects, both are included |
||
| 54 | as Git submodules. Use the provided ./setup.sh script to initialize those. When |
||
| 55 | AMiRo-OS is fully configured, there is no additional software required by |
||
| 56 | AMiRo-Apps. For further details about the initialization follow the instructions |
||
| 57 | in the script and refer to the README.md file of AMiRo-OS and µRtWare |
||
| 58 | respectively. |
||
| 59 | |||
| 60 | |||
| 61 | 2 Folder Structure |
||
| 62 | ================== |
||
| 63 | |||
| 64 | At its root, the AMiRo-Apps project has seven folders to distiquish between the |
||
| 65 | most fundamental parts: |
||
| 66 | |||
| 67 | 2.1 `apps/` |
||
| 68 | ----------- |
||
| 69 | |||
| 70 | This folder includes individual applications, which can used by |
||
| 71 | configigurations (see `configurations/`). Apps will usually be implemented |
||
| 72 | as nodes for the middleware and provide according interfaces via some message |
||
| 73 | type(s) (see `messagetypes/`). |
||
| 74 | |||
| 75 | 2.2 `configurations/` |
||
| 76 | --------------------- |
||
| 77 | |||
| 78 | Each configuration combines multiple apps and distributes them among any |
||
| 79 | supported modules. Furthermore, configurations may modify parameters for each |
||
| 80 | module individually. Finally, each configuration should come with a Makefile, so |
||
| 81 | a user can just use this to build and flash the whole setup. |
||
| 82 | For better understanding, have a look at this example: |
||
| 83 | |||
| 84 | - module A: using apps 1, 2 and 3 with parameters X and Y. |
||
| 85 | - module B: using apps 1 and 4 with parameter X. |
||
| 86 | - module C: using apps 1, 5, 6 and 7 with parameters X and Z. |
||
| 87 | - Makefile: setup and build everything. |
||
| 88 | |||
| 89 | Note that each configuration needs to explicitely support a module and that |
||
| 90 | there can never be an implicit default configuration. |
||
| 91 | |||
| 92 | 2.3 `doc/` |
||
| 93 | ---------- |
||
| 94 | |||
| 95 | Any documentation related files are located in this directory. |
||
| 96 | |||
| 97 | 2.4 `messagetypes/` |
||
| 98 | ------------------- |
||
| 99 | |||
| 100 | Apps shoud take advantage of the middleware and thus implement nodes, which |
||
| 101 | communicate via messages and/or requests. Such messages/requests may have |
||
| 102 | payloads of arbitrary types, which can be defined in this folder. |
||
| 103 | |||
| 104 | 2.5 `middleware/` |
||
| 105 | ----------------- |
||
| 106 | |||
| 107 | This folder contains the µRtWare submodule and interface files. |
||
| 108 | |||
| 109 | 2.6 `os/` |
||
| 110 | --------- |
||
| 111 | |||
| 112 | This folder contains the AMiRo-OS submodule and interface files. |
||
| 113 | |||
| 114 | 2.7 `tools/` |
||
| 115 | ------------ |
||
| 116 | |||
| 117 | Helpful tools can be found in this dirctory. |