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..2018 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. ================================================================================