-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Simon Stieber
committed
Jul 6, 2021
0 parents
commit 2da42a5
Showing
240 changed files
with
30,468 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# eclipse | ||
bin | ||
*.launch | ||
.settings | ||
.metadata | ||
.classpath | ||
.project | ||
|
||
# idea | ||
out | ||
*.ipr | ||
*.iws | ||
*.iml | ||
.idea | ||
|
||
# gradle | ||
build | ||
.gradle | ||
|
||
# other | ||
eclipse | ||
run | ||
/classes/ | ||
|
||
# vscode | ||
c_project/out | ||
/Planung/~$*.docx | ||
*.lck | ||
/c_project/obj/ | ||
/c_project/cmake-build-debug-propware/ | ||
/c_project/cmake-build-debug/ | ||
/c_project/CMakeFiles/ | ||
/c_project/CMakeCache.txt | ||
/c_project/*.i | ||
/c_project/*.s | ||
|
||
/c_project_schlitten/obj/ | ||
/c_project_schlitten/cmake-build-debug-propware/ | ||
/c_project_schlitten/cmake-build-debug/ | ||
/c_project_schlitten/CMakeFiles/ | ||
/c_project_schlitten/CMakeCache.txt | ||
/c_project_schlitten/*.i | ||
/c_project_schlitten/*.s | ||
|
||
*~$*.docx | ||
*~*.tmp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2021 Institute for Software and Systems Engineering (ISSE) | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# A Real-Word Realization of the AntNet Routing Algorithm with ActivityBots | ||
|
||
Real World Implementation of Ant-Colonization-Optimization (ACO) using Paralax Activity Bots | ||
|
||
## Abstract | ||
|
||
Moving from a theoretical implementation only using simulations to a real-world implementation there are many challenges that need to be addressed. In this video we present a real-world implementation of the AntNet Routing Algorithm using a fleet of educational Robots called ActivityBots [1] produced by Parallax. | ||
It utilizes the Ant Colony Optimization (ACO)[2] algorithm by Prof. Dr. Marco Dorigo to find a short path. | ||
While traversing the graph, the individual ants leave behind a trail of pheromones when successfully reaching the goal. | ||
In turn other ants can use a heuristic over the distance and the pheromones to choose which exit to select when at a node. | ||
Following this procedure, the ants converge to a single short path, however an optimal path can’t be guaranteed. | ||
|
||
As robotic ants don’t have a way of leaving behind pheromones nor have shared knowledge, we equipped each ant with an WiFi-chip to collect the information on a single server. This server also evaluates the heuristic at the node to allow simple changes of parameters without having to repeatedly reprogram the mobile Robots while staying true to biology and the algorithm. Each Robot is equipped with a line follower sensor at the bottom with a resolution of 8 bit spanning the width of the robot. A node in the graph is represented by an intersection which has the ID and entry number encoded in barcodes at the entry and exit. Connections between the nodes are built using several bidirectional road segments to prevent collisions of approaching vehicles. Due to the limited number of real ants, the algorithm can be speed up by supporting it with further simulated ants. | ||
|
||
Purpose of the development of this project was to support the education of swarm algorithms like ACO by visualizing them in the real word. Only seeing simulations on a screen is often dull. Using our centralized approach students can implement new swarm algorithms by only changing code on the server and instantly see their results on the ActivityBots leading to a more motivating environment. | ||
|
||
[1] ActivityBot 360° Robot Kit by Parallax Inc. Online. https://www.parallax.com/product/activitybot-360-robot-kit/ [Accessed on 2021-04-13] | ||
[2] M. Dorigo, T. Stützle: Ant Colony Optimization. MIT Press / Bradford Books, Cambridge MA 2004, ISBN 0-262-04219-3. | ||
|
||
## Important Links | ||
### Video Source | ||
View a Demo of this Project [on YouTube](https://www.youtube.com/watch?v=7R8DzrirUuw). | ||
|
||
### SourceCode | ||
Access the source code on the [ISSE GitLab]( https://gitlab.isse.de/mki/teaching/soes_activitybot). | ||
|
||
## Project structure | ||
### [C-Project](c_project) | ||
- Source code of the C++ project running on the ActivityBots | ||
- uses the Library PopWare | ||
- Follows the lines on the floor and waits for commands from the PC | ||
|
||
### [Routing Table](routingtable) | ||
- Source Code of the Kotlin/Java Project running on the PC | ||
- Manages communication between Bots and PC | ||
- Executes the Algorithm and sends instructions to the individual Bots | ||
|
||
### [Barcode Encoder](codeencoder) | ||
- Helper project to automatically generate printable roundabout segments | ||
- Encodes the given node ID into a barcode and saves it into a svg or pdf file | ||
- InkScape must be installed for the conversion from svg to pdf | ||
|
||
### [Ant Shield](antshield) | ||
- 3d-printable shield for improving the performance of the LineFollower | ||
- Blocks incoming light from the sides and therefore improves the detection rate of the black lines | ||
- Available as Creo Part, Step and STL | ||
|
||
### [Printables](printables) | ||
- This folder contains all printable rail-segments that make up the map the Ants drive on | ||
- The segments have to printed on A3 Paper, cut to size, optionally they can be laminated to improve longevity | ||
- Additionally, a printable calibration strip is given to check how well the LineFollower is working | ||
- The individual sensors should only kick on in the center of the strips, otherwise it has to be recalibrated | ||
- A representation of the map shown in the demo video can be found in the file [2013Map.xlsx](printables/2013Map.xlsx) | ||
|
||
### [Documentation](docs) | ||
- Further documentation | ||
- [Overview of the code with project structure as well as relevant code segments](docs/CodeÜbersicht.pdf) | ||
- [Assembly instructions of the ActivityBots hardware](docs/Aufbauanleitung%20Ants.pdf) | ||
|
||
---- | ||
## Contact | ||
Jonas Wilfert -- [email protected] | ||
Niklas Paprotta -- [email protected] | ||
Oliver Kosak -- [email protected] | ||
Simon Stieber -- [email protected] |
Binary file not shown.
Binary file not shown.
Oops, something went wrong.