AMiRo-Apps is a collection of applications and configurations for the Autonomous
Mini Robot (AMiRo) [1]. It is tightly coupled to the AMiRo-OS and uRtWare
projects, which provide a sophisticated operating system (based on ChibiOS) amd
a real-time middleware for embedded devices.
Copyright (C) 2018..2019 Thomas Schöpping et al.
(a complete list of all authors is given below)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
This research/work was supported by the Cluster of Excellence
Cognitive Interaction Technology 'CITEC' (EXC 277) at Bielefeld
University, which is funded by the German Research Foundation (DFG).
Authors:
- Thomas Schöpping
- Marc Rothmann
References:
[1] S. Herbrechtsmeier, T. Korthals, T. Schopping and U. Rückert, "AMiRo: A
modular & customizable open-source mini robot platform," 2016 20th
International Conference on System Theory, Control and Computing (ICSTCC),
Sinaia, 2016, pp. 687-692.
################################################################################
# #
# RRRRRRRR EEEEEEEE AAA DDDDDDDD MM MM EEEEEEEE #
# RR RR EE AA AA DD DD MMM MMM EE #
# RR RR EE AA AA DD DD MMMM MMMM EE #
# RRRRRRRR EEEEEE AA AA DD DD MM MMM MM EEEEEE #
# RR RR EE AAAAAAAAA DD DD MM MM EE #
# RR RR EE AA AA DD DD MM MM EE #
# RR RR EEEEEEEE AA AA DDDDDDDD MM MM EEEEEEEE #
# #
################################################################################
This file will help you to setup all required software on your system, compile
the source code, and flash it to the AMiRo modules.
================================================================================
CONTENTS:
1 Required software
2 Folder structure
================================================================================
1 - REQUIRED SOFTWARE
---------------------
Since AMiRo-Apps depends on the AMiRo-OS and uRtWare projects, both are included
as Git submodules. Use the provided ./setup.sh script to initialize those. When
AMiRo-OS is fully configured, there is no additional software required by
AMiRo-Apps. For further details about the initialization follow the instructions
in the script and refer to the README.txt file of AMiRo-OS and uRtWare
respectively.
2 - FOLDER STRUCTURE
--------------------
At its root, the AMiRo-Apps projects has six folders to distiquish between the
most fundamental parts:
.
├── apps
│ This folder includes individual applications, which can used by
│ configigurations. Apps will usually be implemented as nodes for the
│ middleware and provide acording interfaces via some message type(s).
├── configurations
│ Each configuration combines multiple apps and distributes them among any
│ supported modules. Furthermore, configurations may modify parameters for
│ each module individually. Finally, each configuration should come with a
│ makefile, so a user can just use this to build and flash the whole setup.
│ For better understanding, have a look at this example:
│ - module A: using apps 1, 2 and 3 with parameters X and Y.
│ - module B: using apps 1 and 4 with parameter X.
│ - module C: using apps 1, 5, 6 and 7 with parameters X and Z.
│ - Makefile: set and build everything.
│ Note that each configuration needs to explicitely support a module and
│ that there can never be an implicit default configuration.
├── messagetypes
│ Apps shoud take advantage of the middleware and thus implement nodes,
│ which communicate via messages. Such messages may have payloads of
│ arbitrary types, which can be defined in this folder.
├── middleware
│ This folder contains the µRtWare submodule and interface files.
├── os
│ This folder contains the AMiRo-OS submodule and interface files.
└── tools
Usable tools can be found in this dirctory.
================================================================================