Skip to content

Commit 8a4cc62

Browse files
committed
First version of README.md
1 parent 4a386a8 commit 8a4cc62

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

README.md

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Cobolt - A model-based tool for evaluating topology control algorithms
2+
3+
This repository hosts the code of Cobolt, a model-based tool for the rapid simulative evaluation of topology control algorithms.
4+
5+
The Cobolt repository comprises a modified version of the [Simonstrator](https://dev.kom.e-technik.tu-darmstadt.de/simonstrator/) network simulator (version 2.5) and
6+
a set of of sample topology control algorithms specified using the modeling tool [eMoflon](https://emoflon.org/).
7+
8+
## Setup instructions
9+
10+
1. **Install Eclipse 2018-09 R with Modeling Components Oxygen (or newer)**
11+
* All Eclipse packages are available here: https://eclipse.org/downloads/
12+
1. **Install the Maven 2 Eclipse integration (m2e)**
13+
1. Navigate to the *Install* dialog (*Help → Install New Software...*).
14+
1. Select the standard Eclipse update site (e.g., http://download.eclipse.org/releases/2018-09 for Eclipse 2018-09)
15+
1. Install *General Purpose Tools/m2e - Maven Integration for Eclipse* –no need to restart Eclipse afterwards
16+
1. **Install eMoflon 3.5.1**
17+
1. Open the *Install* dialog.
18+
1. First, install only *PlantUML 1.1.21* (or above)–no need to restart Eclipse afterwards: https://hallvard.github.io/plantuml/
19+
1. Open the *Install* dialog.
20+
1. Paste the following Eclipse update site: https://github.com/eMoflon/eMoflon.github.io/raw/emoflon-tie-updatesite_3.5.1/eclipse-plugin/beta/updatesite
21+
1. Select *Manage...*.
22+
1. Enable at least the following update sites:
23+
* https://emoflon.org/eclipse-plugin/beta/updatesite/ (aka. https://emoflon.github.io/eclipse-plugin/beta/updatesite )
24+
* http://emoflon.org/emoflon-core-updatesite/stable/updatesite/
25+
* "Latest Eclipse release"
26+
1. Go back via *Apply and Close*.
27+
1. Make sure that the option *Contact all update sites during install to find required software* is enabled.
28+
1. Select *eMoflon::TIE-SDM* and complete the installation via *Next* etc.
29+
* Note: The dependency resolution may take some time...
30+
1. Restart Eclipse, open a fresh workspace, and switch to the *eMoflon* perspective.
31+
1. **Install Enterprise Architect 12 (or later)**
32+
* A 30-days trial version of Enterprise Architect is available here: https://www.sparxsystems.de/uml/download-trial/
33+
* Install the eMoflon 3.5.1 Enterprise Architect addin: https://github.com/eMoflon/eMoflon.github.io/raw/emoflon-tie-updatesite_3.5.1/eclipse-plugin/beta/updatesite/ea-ecore-addin.zip
34+
1. **Set up Cobolt**
35+
1. Right-click in Project Explorer → Import... → Team/Team Project Set
36+
1. URL: https://raw.githubusercontent.com/eMoflon/cobolt/master/cobolt.psf
37+
1. Let Eclipse check out and build all Cobolt and Simonstrator projects for you
38+
* Make sure that *Build → Build automatically* is enabled.
39+
1. Eclipse complains about the missing Tycho lifecycle plugin (*org.eclipse.tycho:tycho-compiler-plugin:1.0.0:compile*).
40+
* Use the quick fix (*Ctrl+1* when pointing at the error marker) to discover and install the appropriate m2e connectors.
41+
1. Restart Eclipse and let wait until the auto-build has completed.
42+
1. **Run a sample simulation**
43+
1. Navigate to *simonstrator-simrunner/config/dissertation/*.
44+
1. Right-click *GuiRunner.launch* and select *Run as... → GuiRunner*.
45+
1. Select the simulation configuration file *cobolt.xml* (in the folder *dissertation*).
46+
* If you wish, you can experiment with different settings
47+
* *size* configures the number of motes
48+
* *world_size* configures the side length of the area in meters
49+
* *topologyControlAlgorithm* configures the active topology control algorithms (e.g., MAXPOWER_TC D_KTC E_KTC LSTAR_KTC GG Yao RNG GMST LMST)
50+
* *topologyControlIntervalInMinutes* configures the interval between topology control executions in minutes
51+
1. Press *Start Simulation*.
52+
1. Two windows pop up: the simulation progress view and the topology visualization.
53+
* The shown blue graph is the virtual topology of the topology control algorithm (by default, kTC with k=1).
54+
* The topology control algorithm is executed periodically (by default, once every simulated minute).
55+
* In the Eclipse Console window, you can observe the simulation output.
56+
* Lines with 'iter#xxx CEH' refer to the context event handling.
57+
* Lines with 'iter#xxx TCA' refer to the topology control algorithm execution.
58+
* Lines with 'iter#xxx STAT' refer to the statistics recording.
59+
* 'xxx' is the iteration counter
60+
* Additional output is available in *simonstrator-simrunner/output/wsntraces/*
61+
* The subfolder *log* contains the logfile (similar to the console output)
62+
* The subfolder *energyConsumptionPerNode* contains statistics about how long each mote was in each state.
63+
* The subfolder *data* contains the performance data (e.g., execution time, link state modification counts,...)
64+
* The file *wsntraces_scenarioStatistics.csv* summarizes information about the scenario (e.g., initial topology density).
65+
66+
## Reproducing the evaluation results
67+
68+
Conduct the following steps to reproduce the Cobolt evaluation results.
69+
1. Install Jupyter: https://jupyter.org/
70+
1. Execute the launcher *simonstrator-simrunner/config/dissertation/CoboltEvaluationExecutor.launch* and wait for it to complete
71+
* This may take several days depending on the hardware platform.
72+
* **Important:** Abort the batch run using the 'STOP batch run' button, otherwise simulation processes may continue to run in the background.
73+
1. Concatenate the CSV files in *output/wsntraces/[...]/data* (without repeating the header!)
74+
2. Place the concatenated file in *jupyter/data/cobolt/dataCollected.csv*
75+
3. Execute the Jupyter notebook: *jupyter/DissertationEvaluation.ipynb*.
76+
* This notebook produces all evaluation plots (also for the tool cMoflon).
77+
78+
## Licensing
79+
GPLv3, see [LICENSE.txt](LICENSE.txt).

0 commit comments

Comments
 (0)