amiro-apps / README.md @ 9b067125
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. |