Statistics
| Branch: | Revision:

amiro-apps / README.md @ 9b067125

History | View | Annotate | Download (3.922 KB)

1
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.
118