From 7e4822d4c251ee5163035fce8e09cebe2f49ba72 Mon Sep 17 00:00:00 2001
From: Niklas Yann Wettengel <niyawe@uni-koblenz.de>
Date: Thu, 3 Nov 2016 22:28:52 +0100
Subject: [PATCH] Trimmed the branch to only the homer_map_manager sub
 directory

---
 .../CHANGELOG.rst => CHANGELOG.rst            |    0
 .../CMakeLists.txt => CMakeLists.txt          |    0
 README.md                                     |   58 +-
 homer_map_manager/README.md                   |   42 -
 homer_mapnav_msgs/CHANGELOG.rst               |    9 -
 homer_mapnav_msgs/CMakeLists.txt              |   33 -
 homer_mapnav_msgs/README.md                   |  244 ---
 homer_mapnav_msgs/msg/MapLayers.msg           |   10 -
 homer_mapnav_msgs/msg/ModifyMap.msg           |   21 -
 homer_mapnav_msgs/msg/ModifyPOI.msg           |    2 -
 homer_mapnav_msgs/msg/NavigateToPOI.msg       |    3 -
 homer_mapnav_msgs/msg/PointOfInterest.msg     |   13 -
 homer_mapnav_msgs/msg/PointsOfInterest.msg    |    1 -
 homer_mapnav_msgs/msg/RegionOfInterest.msg    |   12 -
 homer_mapnav_msgs/msg/RegionsOfInterest.msg   |    1 -
 homer_mapnav_msgs/msg/RoiChange.msg           |    3 -
 homer_mapnav_msgs/msg/StartNavigation.msg     |    4 -
 homer_mapnav_msgs/msg/TargetUnreachable.msg   |    9 -
 homer_mapnav_msgs/package.xml                 |   22 -
 homer_mapnav_msgs/readme.pdf                  |  Bin 121801 -> 0 bytes
 homer_mapnav_msgs/srv/GetPointsOfInterest.srv |    2 -
 .../srv/GetRegionOfInterestName.srv           |    3 -
 .../srv/GetRegionsOfInterest.srv              |    2 -
 homer_mapnav_msgs/srv/LoadMap.srv             |    2 -
 homer_mapnav_msgs/srv/PointInsideRois.srv     |    3 -
 homer_mapnav_msgs/srv/SaveMap.srv             |    2 -
 homer_mapping/CHANGELOG.rst                   |    9 -
 homer_mapping/CMakeLists.txt                  |   91 --
 homer_mapping/README.md                       |   67 -
 homer_mapping/config/homer_mapping.yaml       |   34 -
 .../homer_mapping/OccupancyMap/OccupancyMap.h |  385 -----
 .../ParticleFilter/HyperSlamFilter.h          |  163 --
 .../homer_mapping/ParticleFilter/Particle.h   |   64 -
 .../ParticleFilter/ParticleFilter.h           |  320 ----
 .../homer_mapping/ParticleFilter/SlamFilter.h |  327 ----
 .../ParticleFilter/SlamParticle.h             |   72 -
 .../include/homer_mapping/slam_node.h         |  186 ---
 homer_mapping/launch/homer_mapping.launch     |    5 -
 homer_mapping/mainpage.dox                    |   26 -
 homer_mapping/manifest.xml                    |   23 -
 homer_mapping/package.xml                     |   34 -
 homer_mapping/readme.pdf                      |  Bin 113506 -> 0 bytes
 homer_mapping/src/CMakeLists.txt              |    2 -
 .../src/OccupancyMap/OccupancyMap.cpp         |  977 ------------
 .../src/ParticleFilter/HyperSlamFilter.cpp    |  202 ---
 homer_mapping/src/ParticleFilter/Particle.cpp |   10 -
 .../src/ParticleFilter/SlamFilter.cpp         |  662 --------
 .../src/ParticleFilter/SlamParticle.cpp       |   30 -
 homer_mapping/src/slam_node.cpp               |  387 -----
 homer_nav_libs/CHANGELOG.rst                  |    9 -
 homer_nav_libs/CMakeLists.txt                 |   44 -
 homer_nav_libs/README.md                      |   13 -
 .../homer_nav_libs/Explorer/Explorer.h        |  359 -----
 .../include/homer_nav_libs/Explorer/GridMap.h |  575 -------
 .../include/homer_nav_libs/Math/Box2D.h       |  184 ---
 .../include/homer_nav_libs/Math/Line2D.h      |  223 ---
 .../include/homer_nav_libs/Math/Math.h        |  129 --
 .../include/homer_nav_libs/Math/Pixel.h       |   59 -
 .../include/homer_nav_libs/Math/Point2D.h     |  312 ----
 .../include/homer_nav_libs/Math/Pose.h        |   72 -
 .../homer_nav_libs/Math/Transformation2D.h    |  143 --
 .../include/homer_nav_libs/Math/mat2.h        |   77 -
 .../include/homer_nav_libs/Math/mat2_inl.h    |   86 -
 .../include/homer_nav_libs/Math/vec2.h        |  189 ---
 homer_nav_libs/include/homer_nav_libs/tools.h |  396 -----
 homer_nav_libs/package.xml                    |   23 -
 homer_nav_libs/readme.pdf                     |  Bin 79468 -> 0 bytes
 homer_nav_libs/src/Explorer/Explorer.cpp      | 1408 -----------------
 homer_nav_libs/src/Math/Line2D.cpp            |   99 --
 homer_nav_libs/src/Math/Math.cpp              |  135 --
 homer_nav_libs/src/Math/Point2D.cpp           |   33 -
 homer_nav_libs/src/Math/Pose.cpp              |  117 --
 homer_nav_libs/src/Math/Transformation2D.cpp  |  308 ----
 .../src/SpeedControl/CMakeLists.txt           |    5 -
 .../src/SpeedControl/SpeedControl.cpp         |  177 ---
 .../src/SpeedControl/SpeedControl.h           |   71 -
 homer_navigation/CHANGELOG.rst                |    9 -
 homer_navigation/CMakeLists.txt               |   55 -
 homer_navigation/README.md                    |   76 -
 homer_navigation/config/homer_navigation.yaml |   40 -
 .../config/homer_navigation_pioneer.yaml      |   39 -
 .../homer_navigation/homer_navigation_node.h  |  329 ----
 .../launch/homer_navigation.launch            |    4 -
 .../launch/homer_navigation_pioneer.launch    |    4 -
 homer_navigation/package.xml                  |   36 -
 homer_navigation/readme.pdf                   |  Bin 120202 -> 0 bytes
 .../src/homer_navigation_node.cpp             | 1084 -------------
 .../images => images}/rosgraph.png            |  Bin
 .../images => images}/rosgraph.svg            |    0
 .../homer_map_manager/Managers/MapManager.h   |    0
 .../Managers/MaskingManager.h                 |    0
 .../homer_map_manager/Managers/PoiManager.h   |    0
 .../homer_map_manager/Managers/RoiManager.h   |    0
 .../homer_map_manager/MapIO/image_loader.h    |    0
 .../homer_map_manager/MapIO/map_loader.h      |    0
 .../homer_map_manager/MapIO/map_saver.h       |    0
 .../Workers/PointOfInterest/PointOfInterest.h |    0
 .../homer_map_manager/map_manager_node.h      |    0
 .../mainpage.dox => mainpage.dox              |    0
 .../manifest.xml => manifest.xml              |    0
 homer_map_manager/package.xml => package.xml  |    0
 homer_map_manager/readme.pdf => readme.pdf    |  Bin
 .../src => src}/Managers/MapManager.cpp       |    0
 .../src => src}/Managers/MaskingManager.cpp   |    0
 .../src => src}/Managers/PoiManager.cpp       |    0
 .../src => src}/Managers/RoiManager.cpp       |    0
 .../src => src}/MapIO/image_loader.cpp        |    0
 .../src => src}/MapIO/map_loader.cpp          |    0
 .../src => src}/MapIO/map_saver.cpp           |    0
 .../Workers/PointOfInterest/CMakeLists.txt    |    0
 .../src => src}/map_manager_node.cpp          |    0
 111 files changed, 42 insertions(+), 11457 deletions(-)
 rename homer_map_manager/CHANGELOG.rst => CHANGELOG.rst (100%)
 rename homer_map_manager/CMakeLists.txt => CMakeLists.txt (100%)
 delete mode 100644 homer_map_manager/README.md
 delete mode 100644 homer_mapnav_msgs/CHANGELOG.rst
 delete mode 100644 homer_mapnav_msgs/CMakeLists.txt
 delete mode 100644 homer_mapnav_msgs/README.md
 delete mode 100644 homer_mapnav_msgs/msg/MapLayers.msg
 delete mode 100644 homer_mapnav_msgs/msg/ModifyMap.msg
 delete mode 100644 homer_mapnav_msgs/msg/ModifyPOI.msg
 delete mode 100644 homer_mapnav_msgs/msg/NavigateToPOI.msg
 delete mode 100644 homer_mapnav_msgs/msg/PointOfInterest.msg
 delete mode 100644 homer_mapnav_msgs/msg/PointsOfInterest.msg
 delete mode 100644 homer_mapnav_msgs/msg/RegionOfInterest.msg
 delete mode 100644 homer_mapnav_msgs/msg/RegionsOfInterest.msg
 delete mode 100644 homer_mapnav_msgs/msg/RoiChange.msg
 delete mode 100644 homer_mapnav_msgs/msg/StartNavigation.msg
 delete mode 100644 homer_mapnav_msgs/msg/TargetUnreachable.msg
 delete mode 100644 homer_mapnav_msgs/package.xml
 delete mode 100644 homer_mapnav_msgs/readme.pdf
 delete mode 100644 homer_mapnav_msgs/srv/GetPointsOfInterest.srv
 delete mode 100644 homer_mapnav_msgs/srv/GetRegionOfInterestName.srv
 delete mode 100644 homer_mapnav_msgs/srv/GetRegionsOfInterest.srv
 delete mode 100644 homer_mapnav_msgs/srv/LoadMap.srv
 delete mode 100644 homer_mapnav_msgs/srv/PointInsideRois.srv
 delete mode 100644 homer_mapnav_msgs/srv/SaveMap.srv
 delete mode 100644 homer_mapping/CHANGELOG.rst
 delete mode 100644 homer_mapping/CMakeLists.txt
 delete mode 100644 homer_mapping/README.md
 delete mode 100644 homer_mapping/config/homer_mapping.yaml
 delete mode 100644 homer_mapping/include/homer_mapping/OccupancyMap/OccupancyMap.h
 delete mode 100755 homer_mapping/include/homer_mapping/ParticleFilter/HyperSlamFilter.h
 delete mode 100644 homer_mapping/include/homer_mapping/ParticleFilter/Particle.h
 delete mode 100644 homer_mapping/include/homer_mapping/ParticleFilter/ParticleFilter.h
 delete mode 100644 homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h
 delete mode 100644 homer_mapping/include/homer_mapping/ParticleFilter/SlamParticle.h
 delete mode 100644 homer_mapping/include/homer_mapping/slam_node.h
 delete mode 100644 homer_mapping/launch/homer_mapping.launch
 delete mode 100644 homer_mapping/mainpage.dox
 delete mode 100644 homer_mapping/manifest.xml
 delete mode 100644 homer_mapping/package.xml
 delete mode 100644 homer_mapping/readme.pdf
 delete mode 100644 homer_mapping/src/CMakeLists.txt
 delete mode 100644 homer_mapping/src/OccupancyMap/OccupancyMap.cpp
 delete mode 100755 homer_mapping/src/ParticleFilter/HyperSlamFilter.cpp
 delete mode 100644 homer_mapping/src/ParticleFilter/Particle.cpp
 delete mode 100644 homer_mapping/src/ParticleFilter/SlamFilter.cpp
 delete mode 100644 homer_mapping/src/ParticleFilter/SlamParticle.cpp
 delete mode 100644 homer_mapping/src/slam_node.cpp
 delete mode 100644 homer_nav_libs/CHANGELOG.rst
 delete mode 100644 homer_nav_libs/CMakeLists.txt
 delete mode 100644 homer_nav_libs/README.md
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Explorer/Explorer.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Explorer/GridMap.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/Box2D.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/Line2D.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/Math.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/Pixel.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/Point2D.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/Pose.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/Transformation2D.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/mat2.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/mat2_inl.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/Math/vec2.h
 delete mode 100644 homer_nav_libs/include/homer_nav_libs/tools.h
 delete mode 100644 homer_nav_libs/package.xml
 delete mode 100644 homer_nav_libs/readme.pdf
 delete mode 100644 homer_nav_libs/src/Explorer/Explorer.cpp
 delete mode 100644 homer_nav_libs/src/Math/Line2D.cpp
 delete mode 100644 homer_nav_libs/src/Math/Math.cpp
 delete mode 100644 homer_nav_libs/src/Math/Point2D.cpp
 delete mode 100644 homer_nav_libs/src/Math/Pose.cpp
 delete mode 100644 homer_nav_libs/src/Math/Transformation2D.cpp
 delete mode 100644 homer_nav_libs/src/SpeedControl/CMakeLists.txt
 delete mode 100644 homer_nav_libs/src/SpeedControl/SpeedControl.cpp
 delete mode 100644 homer_nav_libs/src/SpeedControl/SpeedControl.h
 delete mode 100644 homer_navigation/CHANGELOG.rst
 delete mode 100644 homer_navigation/CMakeLists.txt
 delete mode 100644 homer_navigation/README.md
 delete mode 100644 homer_navigation/config/homer_navigation.yaml
 delete mode 100644 homer_navigation/config/homer_navigation_pioneer.yaml
 delete mode 100644 homer_navigation/include/homer_navigation/homer_navigation_node.h
 delete mode 100644 homer_navigation/launch/homer_navigation.launch
 delete mode 100644 homer_navigation/launch/homer_navigation_pioneer.launch
 delete mode 100644 homer_navigation/package.xml
 delete mode 100644 homer_navigation/readme.pdf
 delete mode 100644 homer_navigation/src/homer_navigation_node.cpp
 rename {homer_map_manager/images => images}/rosgraph.png (100%)
 rename {homer_map_manager/images => images}/rosgraph.svg (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/Managers/MapManager.h (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/Managers/MaskingManager.h (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/Managers/PoiManager.h (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/Managers/RoiManager.h (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/MapIO/image_loader.h (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/MapIO/map_loader.h (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/MapIO/map_saver.h (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/Workers/PointOfInterest/PointOfInterest.h (100%)
 rename {homer_map_manager/include => include}/homer_map_manager/map_manager_node.h (100%)
 rename homer_map_manager/mainpage.dox => mainpage.dox (100%)
 rename homer_map_manager/manifest.xml => manifest.xml (100%)
 rename homer_map_manager/package.xml => package.xml (100%)
 rename homer_map_manager/readme.pdf => readme.pdf (100%)
 rename {homer_map_manager/src => src}/Managers/MapManager.cpp (100%)
 rename {homer_map_manager/src => src}/Managers/MaskingManager.cpp (100%)
 rename {homer_map_manager/src => src}/Managers/PoiManager.cpp (100%)
 rename {homer_map_manager/src => src}/Managers/RoiManager.cpp (100%)
 rename {homer_map_manager/src => src}/MapIO/image_loader.cpp (100%)
 rename {homer_map_manager/src => src}/MapIO/map_loader.cpp (100%)
 rename {homer_map_manager/src => src}/MapIO/map_saver.cpp (100%)
 rename {homer_map_manager/src => src}/Workers/PointOfInterest/CMakeLists.txt (100%)
 rename {homer_map_manager/src => src}/map_manager_node.cpp (100%)

diff --git a/homer_map_manager/CHANGELOG.rst b/CHANGELOG.rst
similarity index 100%
rename from homer_map_manager/CHANGELOG.rst
rename to CHANGELOG.rst
diff --git a/homer_map_manager/CMakeLists.txt b/CMakeLists.txt
similarity index 100%
rename from homer_map_manager/CMakeLists.txt
rename to CMakeLists.txt
diff --git a/README.md b/README.md
index 4443d398..39a46914 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,42 @@
-# mapping
-
-See:
-
-* [mapping]
-* [navigation]
-* [map_manager]
-* [map_msgs]
-* [nav_libs]
-
-[mapping]: homer_mapping/README.md
-[navigation]: homer_navigation/README.md
-[map_manager]: map_manager/README.md
-[map_msgs]: map_msgs/README.md
-[nav_libs]: nav_libs/README.md
-
+# map_manager
+
+## Known Issues / Todo's 
+
+Aus bisher ungeklärten Gründen kann es in seltenen Fällen passieren, dass der map_manager die Verbindung zum roscore verliert. In diesem Fall muss er durch rosrun map_manager map_manager neugestartet werden.
+
+
+## Introduction 
+
+Der map_manager ist der Mittelpunkt der Kommunikation zwischen homer_mapping, homer_navigation, GUI und die Spiel-Nodes.
+Das Zusammenspiel dieser Nodes ist im Screenshot des rqt_graphs zu sehen.
+
+![rqt_graph](images/rosgraph.png)
+
+Er verwaltet die aktuell durch das mapping erstellte Karte sowie weitere Kartebenen. Aktuell sind das die SLAM-Karte, die aktuellen Laserdaten in einer weiteren Ebene und eine Masking-Ebene, in der mit Hilfe der GUI Hindernisse oder freie Flächen in die Karte gezeichnet werden können.
+Jedes mal, wenn eine SLAM-Karte von der mapping-Node geschickt wird, wird diese mit allen anderen Karteneben überschrieben (in der Reihenfolge SLAM, Masking, Laserdaten) und als eine zusammengefügte Karte versendet.
+Zudem verwaltet der map_manager alle erstellten Points Of Interest (POIs), die z.B. als Ziele für die Navigation verwendet werden.
+Die Node ist außerdem zuständig für das Speichern und Laden der Kartenebenen und der POIs. Dabei wird die SLAM-Ebene sowie die Masking-Ebene berücksichtigt.
+
+
+
+## Topics 
+
+
+#### Publisher 
+* `/map`: Die aktuelle Karte, die aus allen aktivierten Kartenebenen zusammengesetzt ist. Diese wird in der GUI angezeigt und für die Navigation verwendet.
+* `/map_manager/poi_list`: Verschickt einen Vektor mit allen aktuellen POIs. Dieser Publisher wird immer ausgelöst, sobald sich ein POI ändert oder ein neuer hinzugefügt wird.
+* `/map_manager/loaded_map`: Wenn eine Karte geladen wird, wird über dieses Topic die geladene SLAM-Ebene an die homer_mapping-Node verschickt.
+* `/map_manager/mask_slam`: Über die GUI kann die SLAM-Map verändert werden. Diese Modifizierungen werden über dieses Topic vom map_manager an das homer_mapping versendet.
+
+#### Subscriber
+
+* `/homer_mapping/slam_map (nav_msgs/OccupancyGrid)`: Hierüber wird die aktuelle SLAM-Map empfangen.
+* `/map_manager/save_map (map_messages/SaveMap)`: Hierüber wird der Befehl zum Speichern der Karte inklusive des Dateinamens empfangen.
+* `/map_manager/load_map (map_messages/SaveMap)`: Hiermit wird eine Karte geladen und alle bisherigen Kartenebenen durch die geladenen ersetzt.
+* `/map_manager/toggle_map_visibility (map_messages/MapLayers)`: Hierüber können einzelne Kartenebenen aktiviert beziehungsweise deaktiviert werden. Deaktivierte werden nicht mehr beim Zusammenfügen der Karte berücksichtigt und dementsprechend auch nicht in der GUI angezeigt sowie für die Navigation verwendet.
+* `/scan (nav_msgs/LaserScan)`: Der aktuelle Laserscan, der in die Laserscan-Ebene gezeichnet wird.
+* `/map_manager/add_POI (map_messages/PointOfInterest)`: Hierüber kann ein POI hinzugefügt werden.
+* `/map_manager/modify_POI (map_messages/ModifyPOI)`: Hierüber kann ein vorhandener POI verändert werden (Name, Position,...)
+* `/map_manager/delete_POI (map_messages/DeletePointOfInterest)`: Hierüber kann ein vorhander POI gelöscht werden.
+* `/map_manager/modify_map (map_messages/ModifyMap)`: Über dieses Topic werden die Koordinaten der Polygone verschickt, die über die GUI maskiert wurden. Außerdem wird die Kartenebene mitgeteilt, die verändet werden soll (SLAM oder Masking-Ebene).
+* `/map_manager/reset_maps (std_msgs/Empty)`: Hierüber werden alle Kartenebenen zurückgesetzt.
\ No newline at end of file
diff --git a/homer_map_manager/README.md b/homer_map_manager/README.md
deleted file mode 100644
index 39a46914..00000000
--- a/homer_map_manager/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# map_manager
-
-## Known Issues / Todo's 
-
-Aus bisher ungeklärten Gründen kann es in seltenen Fällen passieren, dass der map_manager die Verbindung zum roscore verliert. In diesem Fall muss er durch rosrun map_manager map_manager neugestartet werden.
-
-
-## Introduction 
-
-Der map_manager ist der Mittelpunkt der Kommunikation zwischen homer_mapping, homer_navigation, GUI und die Spiel-Nodes.
-Das Zusammenspiel dieser Nodes ist im Screenshot des rqt_graphs zu sehen.
-
-![rqt_graph](images/rosgraph.png)
-
-Er verwaltet die aktuell durch das mapping erstellte Karte sowie weitere Kartebenen. Aktuell sind das die SLAM-Karte, die aktuellen Laserdaten in einer weiteren Ebene und eine Masking-Ebene, in der mit Hilfe der GUI Hindernisse oder freie Flächen in die Karte gezeichnet werden können.
-Jedes mal, wenn eine SLAM-Karte von der mapping-Node geschickt wird, wird diese mit allen anderen Karteneben überschrieben (in der Reihenfolge SLAM, Masking, Laserdaten) und als eine zusammengefügte Karte versendet.
-Zudem verwaltet der map_manager alle erstellten Points Of Interest (POIs), die z.B. als Ziele für die Navigation verwendet werden.
-Die Node ist außerdem zuständig für das Speichern und Laden der Kartenebenen und der POIs. Dabei wird die SLAM-Ebene sowie die Masking-Ebene berücksichtigt.
-
-
-
-## Topics 
-
-
-#### Publisher 
-* `/map`: Die aktuelle Karte, die aus allen aktivierten Kartenebenen zusammengesetzt ist. Diese wird in der GUI angezeigt und für die Navigation verwendet.
-* `/map_manager/poi_list`: Verschickt einen Vektor mit allen aktuellen POIs. Dieser Publisher wird immer ausgelöst, sobald sich ein POI ändert oder ein neuer hinzugefügt wird.
-* `/map_manager/loaded_map`: Wenn eine Karte geladen wird, wird über dieses Topic die geladene SLAM-Ebene an die homer_mapping-Node verschickt.
-* `/map_manager/mask_slam`: Über die GUI kann die SLAM-Map verändert werden. Diese Modifizierungen werden über dieses Topic vom map_manager an das homer_mapping versendet.
-
-#### Subscriber
-
-* `/homer_mapping/slam_map (nav_msgs/OccupancyGrid)`: Hierüber wird die aktuelle SLAM-Map empfangen.
-* `/map_manager/save_map (map_messages/SaveMap)`: Hierüber wird der Befehl zum Speichern der Karte inklusive des Dateinamens empfangen.
-* `/map_manager/load_map (map_messages/SaveMap)`: Hiermit wird eine Karte geladen und alle bisherigen Kartenebenen durch die geladenen ersetzt.
-* `/map_manager/toggle_map_visibility (map_messages/MapLayers)`: Hierüber können einzelne Kartenebenen aktiviert beziehungsweise deaktiviert werden. Deaktivierte werden nicht mehr beim Zusammenfügen der Karte berücksichtigt und dementsprechend auch nicht in der GUI angezeigt sowie für die Navigation verwendet.
-* `/scan (nav_msgs/LaserScan)`: Der aktuelle Laserscan, der in die Laserscan-Ebene gezeichnet wird.
-* `/map_manager/add_POI (map_messages/PointOfInterest)`: Hierüber kann ein POI hinzugefügt werden.
-* `/map_manager/modify_POI (map_messages/ModifyPOI)`: Hierüber kann ein vorhandener POI verändert werden (Name, Position,...)
-* `/map_manager/delete_POI (map_messages/DeletePointOfInterest)`: Hierüber kann ein vorhander POI gelöscht werden.
-* `/map_manager/modify_map (map_messages/ModifyMap)`: Über dieses Topic werden die Koordinaten der Polygone verschickt, die über die GUI maskiert wurden. Außerdem wird die Kartenebene mitgeteilt, die verändet werden soll (SLAM oder Masking-Ebene).
-* `/map_manager/reset_maps (std_msgs/Empty)`: Hierüber werden alle Kartenebenen zurückgesetzt.
\ No newline at end of file
diff --git a/homer_mapnav_msgs/CHANGELOG.rst b/homer_mapnav_msgs/CHANGELOG.rst
deleted file mode 100644
index 324dcbdf..00000000
--- a/homer_mapnav_msgs/CHANGELOG.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Changelog for package homer_mapnav_msgs
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-0.1.1 (2016-11-03)
-------------------
-* fixes
-* initial commit
-* Contributors: Niklas Yann Wettengel
diff --git a/homer_mapnav_msgs/CMakeLists.txt b/homer_mapnav_msgs/CMakeLists.txt
deleted file mode 100644
index 53485c0f..00000000
--- a/homer_mapnav_msgs/CMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-cmake_minimum_required(VERSION 2.8.3)
-
-project(homer_mapnav_msgs)
-
-find_package(catkin REQUIRED 
-	COMPONENTS message_generation nav_msgs geometry_msgs)
-
-add_message_files(FILES
-	MapLayers.msg
-	ModifyMap.msg
-	PointOfInterest.msg
-	PointsOfInterest.msg
-	RegionOfInterest.msg
-	RegionsOfInterest.msg
-	ModifyPOI.msg
-	TargetUnreachable.msg
-	StartNavigation.msg
-	NavigateToPOI.msg
-	RoiChange.msg
-)
-
-add_service_files(FILES
-	GetPointsOfInterest.srv
-	GetRegionsOfInterest.srv
-	GetRegionOfInterestName.srv
-	PointInsideRois.srv
-	LoadMap.srv
-	SaveMap.srv
-)
-
-generate_messages(DEPENDENCIES geometry_msgs nav_msgs)
-
-catkin_package(CATKIN_DEPENDS message_runtime geometry_msgs nav_msgs)
diff --git a/homer_mapnav_msgs/README.md b/homer_mapnav_msgs/README.md
deleted file mode 100644
index 47aeac04..00000000
--- a/homer_mapnav_msgs/README.md
+++ /dev/null
@@ -1,244 +0,0 @@
-# map_messages
-
-
-## Introduction 
-
-Dieses Package enthält alle benutzerdefinierten Messages, die neben den in ROS enthaltenen Messages für das Mapping und die Navigation verwendet werden. Das Package enthält keine Node oder Librabries.
-
-## Messages 
-
-
-### PointOfInterest
-
-
-Die PointOfInterest-Message enthält alle Informationen, um einen POI zu erstellen, zu verschicken und zu speichern.
-
-~~~~~~ {.cpp}
-PointOfInterest.msg
-
-
-
-int32 DEFAULT=100
-int32 VICTIM=200
-int32 OBJECT=300
-int32 GRIPPABLE_OBJECT=400
-int32 PERSON=600
-int32 ROOMBA=700
-int32 HAZARD_MATERIAL=800
-int32 START_POSITION=900
-int32 START_ORIENTATION=1000
-
-int32 type
-string name
-string remarks
-
-geometry_msgs/Pose pose
-~~~~~~
-
-* `type` bezeichnet den Typ des POIs. Es kann eine der in dieser Message vorhandenen Konstanten verwendet werden. 
-* `name` bezeichnet den Namen des POIs. Dieser Name muss einzigartig sein, da die POIs über ihren Namen unterschieden werden.
-* `remarks`: Hier können Anmerkungen reingeschrieben werden. Diese werden in der GUI angezeigt.
-* `pose` bezeichnet die Position und Orientierung des POIS im /map-Frame.
-
-
-### ModifyPOI
-
-
-ModifyPOI ist dafür zuständig, einen vorhandenen POI zu verändern.
-
-~~~~~~ {.cpp}
-ModifyPOI.msg
-
-PointOfInterest poi
-string old_name
-~~~~~~
-
-* `poi` beinhaltet den POI, durch den der alte ersetzt werden soll.
-* `old_name` bezeichnet den Namen des POIs, der verändert werden soll.
-
-
-### TargetUnreachable
-
-
-
-TargetUnreachable wird von der Navigation versendet, sobald kein Pfad mehr zu einem Ziel geplant werden kann.
-
-
-~~~~~~ {.cpp}
-TargetUnreachable.msg
-
-int8 UNKNOWN=0
-int8 TILT_OCCURED=10
-int8 GRAVE_TILT_OCCURED=15
-int8 STALL_OCCURED=20
-int8 LASER_OBSTACLE=30
-
-int8 reason
-~~~~~~
-
-* `reason` kann einen von den in dieser Message definierten Konstanten annehmen und beschreibt den Grund des Fehlers.
-
-
-### SaveMap
-
-SaveMap wird versendet, wenn eine Karte gespeichert oder geladen werden soll und beinhaltet den Dateipfad zum Kartenordner.
-
-
-~~~~~~ {.cpp}
-SaveMap.msg
-
-string filename
-~~~~~~
-
-* `filename` bezeichnet den Dateipfad zum Kartenordner.
-
-
-### PointsOfInterest
-
-
-PointsOfInterest wird verwendet, um alle aktuellen POIs zu versenden.
-
-
-~~~~~~ {.cpp}
-PointsOfInterest.msg
-
-PointOfInterest[] pois
-~~~~~~
-
-* `pois` beinhaltet einen Vektor mit allen aktuellen POIs.
-
-
-### StartNavigation
-
-
-StartNavigation ist eine von zwei Methoden, um eine Navigation zu starten. Hier wird Der POI mitgegeben, zu dem der Roboter navigieren soll.
-
-
-~~~~~~ {.cpp}
-StartNavigation.msg
-
-geometry_msgs/Pose goal
-float32 distance_to_target
-bool skip_final_turn
-bool fast_planning
-~~~~~~
-
-* `goal` beinhaltet den Ziel-POI
-* `distance_to_target`: Hier kann angegeben werden, ab welcher Distanz zum Ziel die Navigation als erfolgreich abgeschlossen wird. 
-* `skip_final_turn`: Hier kann eingestellt werden, ob der Roboter sich am Ziel-POI in Richtund der POI-Orientierung ausrichten soll oder nicht.
-* `fast_planning`: Mit dieser Option kann ein experimentelles "Schnelles Planen" eingeschaltet werden. Es werden nur Pfade geplant, die sich in einer Boundingbox zwischen Roboter und Zielposition befinden.
-
-
-### MapLayers
-
-MapLayers definiert die vorhanden Kartenebenen als Konstanten und kann zudem verwendet werden, um einzelne Ebenen ein- oder auszuschalten.
-
-
-~~~~~~ {.cpp}
-MapLayers.msg
-
-int32 SLAM_LAYER=0
-int32 MASKING_LAYER=1
-int32 KINECT_LAYER=2
-int32 SICK_LAYER=3
-
-int32 layer
-bool state
-~~~~~~
-
-* `layer` enthält die Kartenebenen-ID und kann einen Wert dern in dieser Message definierten Konstanten annehmen.
-* `state` besagt, ob die ausgewählte Kartenebene aktiviert sein soll.
-
-
-
-
-### NavigateToPOI
-
-
-NavigateToPOI ist die zweite Art eine Navigation zu starten. Anstatt das gesamte POI-Objekt mitzugeben, wird nur der Name eines bereits im map_manger vorhandenen POIs mitgegeben, der daraufhin von der Navigation nachgeschlagen wird.
-
-~~~~~~ {.cpp}
-NavigateToPOI.msg
-
-string poi_name
-float32 distance_to_target
-bool skip_final_turn
-~~~~~~
-
-* `poi_name` beschreibt den Namen des POIS, zu dem navigiert werden soll.
-* `distance_to_target` siehe StartNavigation
-* `skip_final_turn` siehe StartNavigation
-
-
-### ModifyMap
-
-
-Mit dieser Message können Bereiche in einzelnen Kartenebenen verändert werden.
-
-
-~~~~~~ {.cpp}
-ModifyMap.msg
-
-int32 FREE = 0         
-int32 BLOCKED = 100    
-int32 OBSTACLE = 99     
-int32 NOT_MASKED = -1 
-
-geometry_msgs/Point[] region
-int32 maskAction
-int32 mapLayer 
-~~~~~~
-
-* `region` beschreibt die Eckpunkte des Polygons, das maskiert werden soll.
-* `maskAction` kann einen Wert der in dieser Message definierten Konstanten annehmen. OBSTACLE  wird in der Karte rot dargestellt. Mit NOT_MASKED können bereits maskierte Bereiche wieder gelöscht werden.
-* `mapLayer` enthält die ID der zu verändernden Kartenebene. Die IDs sind in der Message MapLayers definiert.
-
-
-
-### DeletePointOfInterest
-
-Löscht einen vorhandenen POI.
-
-
-~~~~~~ {.cpp}
-DeletePointOfInterest.msg
-
-string name
-~~~~~~
-
-* `name` beschreibt den Namen des zu löschenden POIs.
-
-
-### DoMapping
-
-
-
-Mit dieser Message kann das Mapping ein- oder ausgeschaltet werden.
-
-~~~~~~ {.cpp}
-DoMapping.msg
-
-bool state
-~~~~~~
-
-* `state` beinhaltet den Zustand des Mappings (true = an, false = off).
-
-
-## Services 
-
-### GetPointsOfInterest
-
-
-Über diesen Service kann die aktuelle Liste der POIs angefordert werden.
-
-
-~~~~~~ {.cpp}
-GetPointsOfInterest.srv
-
----
-PointsOfInterest poi_list
-~~~~~~
-
-* `poi_list` beinhaltet einen Vektor mit allen aktuellen POIs.
-
-
diff --git a/homer_mapnav_msgs/msg/MapLayers.msg b/homer_mapnav_msgs/msg/MapLayers.msg
deleted file mode 100644
index f39bfdce..00000000
--- a/homer_mapnav_msgs/msg/MapLayers.msg
+++ /dev/null
@@ -1,10 +0,0 @@
-int32 SLAM_LAYER=0
-int32 MASKING_LAYER=1
-int32 KINECT_LAYER=2
-int32 SICK_LAYER=3
-int32 HOKUYO_BACK=4
-int32 HOKUYO_FRONT=5
-int32 RAPID_MAP=6
-
-int32 layer    # map layer name
-bool state 	# visibility state (on/off)
diff --git a/homer_mapnav_msgs/msg/ModifyMap.msg b/homer_mapnav_msgs/msg/ModifyMap.msg
deleted file mode 100644
index 0db7b6d8..00000000
--- a/homer_mapnav_msgs/msg/ModifyMap.msg
+++ /dev/null
@@ -1,21 +0,0 @@
-int32 HIGH_SENSITIV = -2  # Area is highly sensitiv for Obstacles
-int32 NOT_MASKED = -1     # Area is not masked: use slam map
-int32 FREE = 0            # Area is free
-int32 OBSTACLE = 99       # Area is occupied by an obstacle (e.g. 3d scan) 
-int32 BLOCKED = 100       # Area blocked by user (use UNBLOCK to .. )
-int32 HOKUYO = 101		  # Area is blocked by Hokuyo Obstacle
-int32 KINECT = 102 		  # Area is blocked by Kinect Obstacle
-int32 DEPTH = 102		  # Area is blocked by Depth Camera Obstacle
-int32 RAPID = 103		  # Area is blocked by Rapid Mapping
-
-
-
-int32 SET_FREE = 0      	  # Mark area free, area must not be BLOCKED
-int32 SET_BLOCKED = 100       # Block area
-int32 SET_OBSTACLE = 99   	  # Mark area as occupied by an obstacle (e.g. 3d scan)
-int32 SET_HIGH_SENSITIV = -2  # Mark Area as highly sensitiv for Obstacles
-
-
-geometry_msgs/Point[] region
-int32 maskAction
-int32 mapLayer #currently not used. modifications only take place in the masking map layer
diff --git a/homer_mapnav_msgs/msg/ModifyPOI.msg b/homer_mapnav_msgs/msg/ModifyPOI.msg
deleted file mode 100644
index 59786f4b..00000000
--- a/homer_mapnav_msgs/msg/ModifyPOI.msg
+++ /dev/null
@@ -1,2 +0,0 @@
-PointOfInterest poi
-string old_name #necessary if name of poi is changed
diff --git a/homer_mapnav_msgs/msg/NavigateToPOI.msg b/homer_mapnav_msgs/msg/NavigateToPOI.msg
deleted file mode 100644
index 342f1d1f..00000000
--- a/homer_mapnav_msgs/msg/NavigateToPOI.msg
+++ /dev/null
@@ -1,3 +0,0 @@
-string poi_name
-float32 distance_to_target
-bool skip_final_turn
diff --git a/homer_mapnav_msgs/msg/PointOfInterest.msg b/homer_mapnav_msgs/msg/PointOfInterest.msg
deleted file mode 100644
index af6654c8..00000000
--- a/homer_mapnav_msgs/msg/PointOfInterest.msg
+++ /dev/null
@@ -1,13 +0,0 @@
-#POI types
-int32 DEFAULT=100
-int32 OBJECT=300
-int32 GRIPPABLE_OBJECT=400
-int32 PERSON=600
-int32 START_POSITION=900
-int32 START_ORIENTATION=1000
-
-int32 type
-string name
-string remarks
-
-geometry_msgs/Pose pose
diff --git a/homer_mapnav_msgs/msg/PointsOfInterest.msg b/homer_mapnav_msgs/msg/PointsOfInterest.msg
deleted file mode 100644
index a2cfa937..00000000
--- a/homer_mapnav_msgs/msg/PointsOfInterest.msg
+++ /dev/null
@@ -1 +0,0 @@
-PointOfInterest[] pois
diff --git a/homer_mapnav_msgs/msg/RegionOfInterest.msg b/homer_mapnav_msgs/msg/RegionOfInterest.msg
deleted file mode 100644
index 6b4d3058..00000000
--- a/homer_mapnav_msgs/msg/RegionOfInterest.msg
+++ /dev/null
@@ -1,12 +0,0 @@
-#ROI types
-int32 DEFAULT=100
-int32 ROOM=200
-int32 AREA=300
-int32 FORBIDDEN_AREA=400
-
-int32 type
-string name
-string remarks
-
-int32 id
-geometry_msgs/Point[4] points
diff --git a/homer_mapnav_msgs/msg/RegionsOfInterest.msg b/homer_mapnav_msgs/msg/RegionsOfInterest.msg
deleted file mode 100644
index 73c0b1b0..00000000
--- a/homer_mapnav_msgs/msg/RegionsOfInterest.msg
+++ /dev/null
@@ -1 +0,0 @@
-RegionOfInterest[] rois
diff --git a/homer_mapnav_msgs/msg/RoiChange.msg b/homer_mapnav_msgs/msg/RoiChange.msg
deleted file mode 100644
index 7074ae58..00000000
--- a/homer_mapnav_msgs/msg/RoiChange.msg
+++ /dev/null
@@ -1,3 +0,0 @@
-int32 id
-string name
-bool action # true-> enter, false-> left
diff --git a/homer_mapnav_msgs/msg/StartNavigation.msg b/homer_mapnav_msgs/msg/StartNavigation.msg
deleted file mode 100644
index cff7a639..00000000
--- a/homer_mapnav_msgs/msg/StartNavigation.msg
+++ /dev/null
@@ -1,4 +0,0 @@
-geometry_msgs/Pose goal
-float32 distance_to_target #default should bei 0.01 [m]
-bool skip_final_turn
-bool fast_planning #path planning within bounding box containing robot pose and target
diff --git a/homer_mapnav_msgs/msg/TargetUnreachable.msg b/homer_mapnav_msgs/msg/TargetUnreachable.msg
deleted file mode 100644
index f69ddf67..00000000
--- a/homer_mapnav_msgs/msg/TargetUnreachable.msg
+++ /dev/null
@@ -1,9 +0,0 @@
-int8 UNKNOWN=0
-int8 TILT_OCCURED=10
-int8 GRAVE_TILT_OCCURED=15
-int8 STALL_OCCURED=20
-int8 LASER_OBSTACLE=30
-int8 LASER_TIMEOUT=35
-int8 NO_PATH_FOUND=40
-
-int8 reason
diff --git a/homer_mapnav_msgs/package.xml b/homer_mapnav_msgs/package.xml
deleted file mode 100644
index f1c2ef8a..00000000
--- a/homer_mapnav_msgs/package.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<package>
-  <name>homer_mapnav_msgs</name>
-  <version>0.1.1</version>
-  <description> homer_mapnav_msgs contains the messages used for mapping and navigation
-  </description>
-  <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer>
-  <author email="mknauf@uni-koblenz.de">Malte Knauf</author>
-  <license>GPLv3</license>
-  
-  <buildtool_depend>catkin</buildtool_depend>
- 
-  <build_depend>message_generation</build_depend>
-  <build_depend>genmsg</build_depend>
-  <build_depend>geometry_msgs</build_depend>
-  <build_depend>nav_msgs</build_depend>
-  
-  <run_depend>geometry_msgs</run_depend>
-  <run_depend>nav_msgs</run_depend>
-  <run_depend>message_runtime</run_depend>
-</package>
-
-
diff --git a/homer_mapnav_msgs/readme.pdf b/homer_mapnav_msgs/readme.pdf
deleted file mode 100644
index bb76e2631376e2bda2c6ca741778247f62e4e6a2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 121801
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
Cn|n+E

diff --git a/homer_mapnav_msgs/srv/GetPointsOfInterest.srv b/homer_mapnav_msgs/srv/GetPointsOfInterest.srv
deleted file mode 100644
index e7a3c1a7..00000000
--- a/homer_mapnav_msgs/srv/GetPointsOfInterest.srv
+++ /dev/null
@@ -1,2 +0,0 @@
----
-PointsOfInterest poi_list
diff --git a/homer_mapnav_msgs/srv/GetRegionOfInterestName.srv b/homer_mapnav_msgs/srv/GetRegionOfInterestName.srv
deleted file mode 100644
index 9bf4c9a5..00000000
--- a/homer_mapnav_msgs/srv/GetRegionOfInterestName.srv
+++ /dev/null
@@ -1,3 +0,0 @@
-int32 roi_id
----
-string name
diff --git a/homer_mapnav_msgs/srv/GetRegionsOfInterest.srv b/homer_mapnav_msgs/srv/GetRegionsOfInterest.srv
deleted file mode 100644
index f98be082..00000000
--- a/homer_mapnav_msgs/srv/GetRegionsOfInterest.srv
+++ /dev/null
@@ -1,2 +0,0 @@
----
-RegionsOfInterest roi_list
diff --git a/homer_mapnav_msgs/srv/LoadMap.srv b/homer_mapnav_msgs/srv/LoadMap.srv
deleted file mode 100644
index ef2e165e..00000000
--- a/homer_mapnav_msgs/srv/LoadMap.srv
+++ /dev/null
@@ -1,2 +0,0 @@
-std_msgs/String filename
----
diff --git a/homer_mapnav_msgs/srv/PointInsideRois.srv b/homer_mapnav_msgs/srv/PointInsideRois.srv
deleted file mode 100644
index 2b371741..00000000
--- a/homer_mapnav_msgs/srv/PointInsideRois.srv
+++ /dev/null
@@ -1,3 +0,0 @@
-geometry_msgs/PointStamped point
----
-homer_mapnav_msgs/RegionOfInterest[]  rois
diff --git a/homer_mapnav_msgs/srv/SaveMap.srv b/homer_mapnav_msgs/srv/SaveMap.srv
deleted file mode 100644
index 67831529..00000000
--- a/homer_mapnav_msgs/srv/SaveMap.srv
+++ /dev/null
@@ -1,2 +0,0 @@
-std_msgs/String folder
----
diff --git a/homer_mapping/CHANGELOG.rst b/homer_mapping/CHANGELOG.rst
deleted file mode 100644
index 4b7831ec..00000000
--- a/homer_mapping/CHANGELOG.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Changelog for package homer_mapping
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-0.1.1 (2016-11-03)
-------------------
-* fixes
-* initial commit
-* Contributors: Niklas Yann Wettengel
diff --git a/homer_mapping/CMakeLists.txt b/homer_mapping/CMakeLists.txt
deleted file mode 100644
index fee377db..00000000
--- a/homer_mapping/CMakeLists.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-cmake_minimum_required(VERSION 2.8.3)
-project(homer_mapping)
-
-find_package(
-	catkin REQUIRED COMPONENTS
-		roscpp
-		homer_mapnav_msgs
-		sensor_msgs
-		nav_msgs
-		homer_nav_libs
-		tf
-		roslib
-)
-find_package(OpenMP)
-if (OPENMP_FOUND)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
-endif()
-find_package(tf REQUIRED)
-
-set(CMAKE_BUILD_TYPE Release)
-
-
-include_directories(
-	include
-	${catkin_INCLUDE_DIRS}
-)
-
-catkin_package(
-	INCLUDE_DIRS include
-	CATKIN_DEPENDS
-		roscpp
-		homer_mapnav_msgs
-		homer_nav_libs
-		nav_msgs
-		tf
-		roslib
-		LIBRARIES homerOccupancyMap homerParticleFilter
-)
-
-add_library(homerOccupancyMap
-	src/OccupancyMap/OccupancyMap.cpp
-	
-)
-
-target_link_libraries(
-	homerOccupancyMap
-		${catkin_LIBRARIES}
-		${tf_LIBRARIES}
-)
-set(
-	ParticleFilter_SRC
-		src/ParticleFilter/HyperSlamFilter.cpp
-		src/ParticleFilter/SlamParticle.cpp
-		src/ParticleFilter/SlamFilter.cpp
-		src/ParticleFilter/Particle.cpp
-)
-
-add_library(
-	homerParticleFilter
-		${ParticleFilter_SRC}
-)
-
-target_link_libraries(
-	homerParticleFilter
-		${catkin_LIBRARIES}
-)
-
-add_executable(homer_mapping src/slam_node.cpp)
-
-target_link_libraries(
-	homer_mapping
-		${catkin_LIBRARIES}
-		homerParticleFilter
-		homerOccupancyMap
-)
-
-add_dependencies(
-	homer_mapping
-		${catkin_EXPORTED_TARGETS}
-)
-
-install(DIRECTORY include/${PROJECT_NAME}/
-	DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
-)
-
-install(TARGETS homerOccupancyMap homerParticleFilter homer_mapping
-	ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
-	LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
-	RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
-)
diff --git a/homer_mapping/README.md b/homer_mapping/README.md
deleted file mode 100644
index e2781906..00000000
--- a/homer_mapping/README.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# homer_mapping
-
-## Introduction 
-
-Das Package homer_mapping besteht aus einer gleichnamigen Node. Diese ist für die Lokalisierung und Kartierung des Roboters mit Hilfe der Odometrie des Roboters und eines Laserscanners zuständig.
-Das SLAM-Problem wird durch den Partikelfilter-Algorithmus gelöst.
-Die Node erwartet kontiniuierlich Odometrie-Werte und Laserdaten und verschickt in konstanten Abständen korrigierte Poseschätzungen über das Topic /pose und tf-Transformation /map -> /base_link.
-Zudem kann der Roboter sich auf einer vorher geladenen Karte lokalisieren, sowie eine aktuell erstellte Karte abgespeichert werden.
-Es besteht die Option, die Kartierung ein- oder auszuschalten. Beim Laden einer Karte wird die Kartierung automatisch ausgeschaltet.
-
-## Topics 
-
-
-
-
-
-
-#### Publisher 
-* `/pose (geometry_msgs/PoseStamped)`: Die aktuell ermittelte Pose relativ zu Karte (im Frame /map) des Roboters aus dem Partikelfilter.
-* `/homer_mapping/slam_map (nav_msgs/OccupancyGrid)`: Das aktuelle Karte des Roboters.
-
-
-
-#### Subscriber
-
-* `/odom (nav_msgs/Odometry)`: Die aktuellen Odometrie-Werte vom Roboter. Diese werden für die Partikelfilter benötigt.
-  `/scan (sensor_msgs/LaserScan)`: Die aktuelle Lasermessung, die vom Partikelfilter benötigt wird.
-* `/homer_mapping/userdef_pose (geometry_msgs/Pose)`: Mit diesem Topic kann die die aktuell vom Partikelfilter berechnete Pose auf eine benutzerdefinierte gesetzt werden. Der Partikelfilter arbeitet nun mit dieser weiter.
-* `/homer_mapping/do_mapping (map_messages/DoMapping)`: Mit diesem Topic kann die Kartierung ein- oder ausgeschaltet werden.
-* `/map_manager/reset_maps (std_msgs/Empty)`: Hiermit kann die aktuelle Karte zurückgesetzt werden.
-* `/map_manager/loaded_map (nav_msgs/OccupancyGrid)`: Mit diesem Topic kann die aktuelle Karte durch eine andere (geladene) Karte ausgetauscht werden.
-* `/map_manager/mask_slam (nav_msgs/OccupancyGrid)`: Im OccupancyGrid dieses Topics stehen Informationen, welche Teile der aktuellen Karte durch andere Werte (frei oder belegt) ersetzt werden sollen.
-
-## Launch Files 
-
-* `homer_mapping.launch`: Dieses Launchfile lädt die Parameterdatei `homer_mapping.yaml` und startet die Node homer_mapping sowie die Node map_manager im gleichnamigen Package.
-* `homer_mapping_rviz.launch`:`Dieses Launchfile hat die gleiche Funktionalität wie das obige, wobei es zusätzlich rviz startet.
-
-## Parameter 
-
-
-### homer_mapping.yaml
-
-
-
-* `/homer_mapping/size:` Size beschreibt die Größe einer Seite der Karte in Metern. Die Karte ist quadratisch
-* `/homer_mapping/resolution:` Resolution ist die Länge einer (quadratischen) Zelle der Karte in Metern
-* `/homer_mapping/backside_checking:` Wenn auf "true" gesetzt, wird verhindet, dass Vorder- und Rückseite einer dickeren Wand auf die gematcht werden.
-* `/homer_mapping/obstacle_borders:` Wenn auf "true" gesetzt, wird um eingetragene Hindernisse ein kleiner Rand unbekanntes Gebiet gelassen.
-* `/homer_mapping/measure_sampling_step:` Minimale Distanz in Metern, die zwischen zwei aufeinanderfolgenden Messpunkten im Laserscan vorhanden sein muss, um sie für die Poseberechnung zu verwenden
-* `/homer_mapping/laser_scanner/free_reading_distance:` Minimale Distanz in Metern, die als hindernissfrei angenommen wird, wenn der aktuelle Messpunkt fehlerhaft ist
-* `/particlefilter/error_values/rotation_error_rotating:` Rotationsfehler in Prozent, der beim Rotieren des Roboters auftritt
-* `/particlefilter/error_values/rotation_error_translating:` Rotationsfehler in Grad, der beim Fahren von einem Meter auftritt
-* `/particlefilter/error_values/translation_error_translating:` Translationsfehler in Prozent, der beim Geradeausfahren auftritt
-* `/particlefilter/error_values/translation_error_rotating:` Translationsfehler in Metern, der beim Rotieren von einem Grad auftritt
-* `/particlefilter/error_values/move_jitter_while_turning:` Streuung der neu berechneten Pose in Meter pro Grad Drehung
-* `/particlefilter/hyper_slamfilter/particlefilter_num:` Anzahl der Partikelfilter im Hyperpartikelfilter (ist standardmäßig auf 1 gesetzt)
-* `/particlefilter/particle_num:` Anzahl der Partikel in jedem Partikelfilter
-* `/particlefilter/max_rotation_per_second:` Maximale Rotation in Radiant pro Sekunde, die der Roboter sich drehen darf, ohne dass das Mapping ausgesetzt wird
-* `/particlefilter/wait_time:` Minimale Zeit, die zwischen zwei Mapping-Schritten verstrichen sein muss
-* `/particlefilter/update_min_move_angle:` Minimale Rotation in Grad, die durchgeführt werden muss, damit ein Partikelfilterschritt ausgeführt wird...
-* `/particlefilter/update_min_move_dist:` ...oder minimale Distanz in Metern, die der Roboter geradeaus fährt...
-* `/particlefilter/max_update_interval:` ...oder minimale Wartezeit, in der der Roboter still steht.
-* `/selflocalization/scatter_var_xy:` Streuung der Partikel in x/y-Richtung in Metern beim Setzen einer benutzerdefinierten Pose
-* `/selflocalization/scatter_var_theta:` Streuung der Ausrichtung der Partikel in Radiant beim Setzen einer benutzerdefinierten Pose
-
-
diff --git a/homer_mapping/config/homer_mapping.yaml b/homer_mapping/config/homer_mapping.yaml
deleted file mode 100644
index a7e2bf69..00000000
--- a/homer_mapping/config/homer_mapping.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-/homer_mapping/size: 40                                          # size of one edge of the map in m. map is quadratic
-/homer_mapping/resolution: 0.05                                  # m meter per cell
-/homer_mapping/max_laser:  20.0                                   # m max range for including range into map
-
-#map config values
-/homer_mapping/backside_checking: false                           # Enable checking to avoid matching front- and backside of obstacles, e.g. walls. Useful when creating high resolution maps
-/homer_mapping/obstacle_borders: true                            # Leaves a small border around obstacles unchanged when inserting a laser scan. Improves stability of generated map
-/homer_mapping/measure_sampling_step: 0.1                        # m Minimum distance in m between two samples for probability calculation
-
-/homer_mapping/laser_scanner/free_reading_distance: 0.8          # Minimum distance in m to be classified as free in case of errorneous measurement
-
-/particlefilter/error_values/rotation_error_rotating: 10.0       # percent
-/particlefilter/error_values/rotation_error_translating: 2.0     # degrees per meter
-/particlefilter/error_values/translation_error_translating: 10.0 # percent
-/particlefilter/error_values/translation_error_rotating: 0.05    # m per degree
-/particlefilter/error_values/move_jitter_while_turning: 0.1      # m per degree
-
-/particlefilter/hyper_slamfilter/particlefilter_num: 1
-
-/particlefilter/particle_num: 1000
-/particlefilter/max_rotation_per_second: 0.4                     # maximal rotation in radiants if mapping is performed. if rotation is bigger, mapping is interrupted
-/particlefilter/wait_time: 0.05                                  # minimum time to wait between two slam steps in seconds
-
-#the map is only updated when the robot has turned a minimal angle, has moved a minimal distance or a maximal time has passed
-/particlefilter/update_min_move_angle: 2                         # degrees
-/particlefilter/update_min_move_dist: 0.05                       # m
-/particlefilter/max_update_interval: 0.5                         # sec
-
-/selflocalization/scatter_var_xy: 0.1                            # m
-/selflocalization/scatter_var_theta: 0.2                         # radiants
-
-
-/map_manager/roi_updates: true                                   # toggles if a entering or exiting of a roi is beeing published
-map_manager/roi_polling_time: 0.5                                # sec timeinterval after which the roi status is checked 
diff --git a/homer_mapping/include/homer_mapping/OccupancyMap/OccupancyMap.h b/homer_mapping/include/homer_mapping/OccupancyMap/OccupancyMap.h
deleted file mode 100644
index 0235e860..00000000
--- a/homer_mapping/include/homer_mapping/OccupancyMap/OccupancyMap.h
+++ /dev/null
@@ -1,385 +0,0 @@
-#ifndef OCCUPANCYMAP_H
-#define OCCUPANCYMAP_H
-
-#include <vector>
-#include <list>
-#include <string>
-#include <iostream>
-
-#include <Eigen/Geometry>
-
-#include <homer_nav_libs/Math/Pose.h>
-#include <homer_nav_libs/Math/Point2D.h>
-#include <homer_nav_libs/Math/Box2D.h>
-
-#include <nav_msgs/OccupancyGrid.h>
-#include <tf/transform_listener.h>
-
-#include <sensor_msgs/LaserScan.h>
-
-class QImage;
-
-using namespace std;
-
-/**
- * Structure to store the start and end point of each laser range in the current scan
- * @param sensorPos position of the laser in the current scan (in base_link frame)
- * @param endPos position of the end point of the laser frame in the current scan (in base_link frame)
- * @param free indicates if the laser range hit an obstacle (false) or not (true)
- */
-struct RangeMeasurement
-{
-  geometry_msgs::Point sensorPos;
-  geometry_msgs::Point endPos;
-  bool free;
-};
-
-/**
- * Used in struct MeasurePoint to specify if a measurement point is at the border of a scan segment
- */
-enum BorderType
-{
-  NoBorder,
-  LeftBorder,
-  RightBorder
-};
-
-/**
- * Structure to store a measurement point for computeLaserScanProbability()
- * @param hitPos Position of measured obstacle (robot coordinates)
- * @param frontPos Position to check for NOT_KNOWN terrain
- *                   This is needed to assure that front- and backside of obstacles can be distinguished
- * @param border specifies if the measurement point is at the border of a scan segment
- */
-struct MeasurePoint
-{
-  Point2D hitPos;
-  Point2D frontPos;
-  BorderType borderType;
-};
-
-/**
- * @class OccupancyMap
- *
- * @author Malte Knauf, Stephan Wirth, Susanne Maur (RX), David Gossow (RX), Susanne Thierfelder (R16)
- *
- * @brief This class holds and manages an occupancy map.
- *
- * An occupancy map is a map where free space and occupied space are marked. This map stores values
- * for free and occupied space in an (2D-)unsigned char array. This array can be seen as a graylevel image.
- * The darker a cell, the higher the probability that this cell is occupied by an obstacle.
- * The size of the map and the size of one cell can be defined in the setup file with the values
- * MAP_SIZE and MAP_CELL_SIZE. The origin of the coordinate system of the map is the center of the array.
- * The x-axis is heading front, the y-axis points to the left (like the robot's coordinate system).
- * The mapping data has to be inserted via the method insertLaserData().
- */
-class OccupancyMap {
-
-  public:
-    static const int8_t INACCESSIBLE = 100;
-    static const int8_t OBSTACLE = 99;
-    static const int8_t OCCUPIED = 98;
-    static const int8_t UNKNOWN = 50;
-    static const int8_t NOT_SEEN_YET = -1;
-    static const int8_t FREE = 0;
-
-    /**
-     * The default constructor calls initMembers().
-     */
-    OccupancyMap();
-
-    /**
-     * Constructor for a loaded map.
-     */
-    OccupancyMap(float*& occupancyProbability, geometry_msgs::Pose origin, float resolution, int pixelSize, Box2D<int> exploredRegion);
-
-    /**
-     * Copy constructor, copies all members inclusive the arrays that lie behind the pointers.
-     * @param occupancyMap Source for copying
-     */
-    OccupancyMap(const OccupancyMap& occupancyMap);
-
-    /**
-     * Method to init all members with default values from the configuration file. All arrays are initialized.
-     */
-    void initMembers();
-
-    /**
-     * Assignment operator, copies all members (deep copy!)
-     * @param source Source to copy from
-     * @return Reference to copied OccupancyMap
-     */
-    OccupancyMap& operator=(const OccupancyMap& source);
-
-    /**
-     * Deletes all dynamically allocated memory.
-     */
-    ~OccupancyMap();
-
-    /*
-    /**
-     * @return The resolution of the map in m.
-     */
-//    int resolution() const;
-
-    geometry_msgs::Pose origin() const;
-
-    /**
-     * @return Width of the map.
-     */
-    int width() const;
-
-    /**
-     * @return Height of the map.
-     */
-    int height() const;
-    
-    /**
-     * This method is used to reset all HighSensitive areas
-     */
-    void resetHighSensitive();
-
-    /**
-     * @return Probability of pixel p being occupied.
-     */
-    float getOccupancyProbability(Eigen::Vector2i p);
-
-    /**
-     * @brief This function inserts the data of a laserscan into the map.
-     *
-     * With the given data, start and end cells of a laser beam are computed and given to the
-     * method markLineFree().
-     * If the measurement is smaller than VALID_MAX_RANGE, markOccupied() is called for the endpoint.
-     * @param laserData The laser data msg.
-     */
-    void insertLaserData( sensor_msgs::LaserScan::ConstPtr laserData, tf::Transform transform);
-
-    void insertRanges( vector<RangeMeasurement> ranges , ros::Time stamp = ros::Time::now() );
-
-    /**
-     * @brief gives a list specially processed coordinates to be used for computeLaserScanProbability
-     */
-    std::vector<MeasurePoint> getMeasurePoints( sensor_msgs::LaserScanConstPtr laserData );
-
-    /**
-     * This method computes a score that describes how good the given hypothesis matches with the map
-     * @param robotPose The pose of the robot
-     * @return The "fitting factor". The higher the factor, the better the fitting.
-     *         This factor is NOT normalized, it is a positive float between 0 and FLOAT_MAX
-     */
-    float computeScore( Pose robotPose, std::vector<MeasurePoint> measurePoints );
-
-    /**
-     * @return QImage of size m_PixelSize, m_PixelSize with values of m_OccupancyProbability scaled to 0-254
-     */
-    QImage getProbabilityQImage(int trancparencyThreshold, bool showInaccessible) const;
-
-    //puma2::ColorImageRGB8* getUpdateImage( bool withMap=true ); TODO
-
-    /**
-     * Returns an "image" of the obstacles e.g. seen in the 3D scans
-     * @returns image with dark red dots in areas where the obstacles were seen
-     */
-    //puma2::ColorImageRGB8* getObstacleImage ( ); TODO
-
-    /**
-     * Returns an "image" of occupancy probability image.
-     * @param[out] data vector containing occupancy probabilities. 0 = free, 100 = occupied, -1 = NOT_KNOWN
-     * @param[out] width Width of data array
-     * @param[out] height Height of data array
-     * @param[out] resolution Resolution of the map (m_Resolution)
-     */
-    void getOccupancyProbabilityImage(vector<int8_t> &data, int& width, int& height, float &resolution);
-
-    /**
-     * This method marks free the position of the robot (according to its dimensions).
-     */
-    void markRobotPositionFree();
-
-    /**
-     * @brief Computes the contrast of a single pixel.
-     * @param prob probability value (100=occupied, 50=NOT_KNOWN, 0=free) of a pixel.
-     * @return Contrast value from 0 (no contrast) to 1 (max. contrast) of this pixel
-     */
-    double contrastFromProbability (int8_t prob);
-
-    /**
-     * @brief This method computes the sharpness of the occupancy grid
-     * @return Contrast value from 0 (no contrast) to 1 (max. contrast) of the map
-     */
-    double evaluateByContrast();
-
-    /// GETTERS
-
-    Box2D<int> getExploredRegion() { return m_ExploredRegion; }
-    Box2D<int> getChangedRegion() { return m_ChangedRegion; }
-
-    /**
-     * Sets cells of this map to free or occupied according to maskMap
-     */
-     void applyMasking(const nav_msgs::OccupancyGrid::ConstPtr &msg);
-
-
-  protected:
-
-    /**
-     * This method increments m_MeasurementCount for pixel p.
-     * @param p Pixel that has been measured.
-     */
-    void incrementMeasurementCount(Eigen::Vector2i p);
-
-    /**
-     * This method increments the occupancy count int m_OccupancyCount for pixel p.
-     * @param p Occupied pixel.
-     */
-    void incrementOccupancyCount(Eigen::Vector2i p);
-
-    /**
-     * This method increments m_MeasurementCount and if neccessary m_OccupancyCount for all pixels.
-     */
-    void applyChanges();
-
-    void clearChanges();
-
-    /**
-     * This method scales the counts of all pixels down to the given value.
-     * @param maxCount Maximum value to which all counts are set.
-     */
-    void scaleDownCounts(int maxCount);
-
-   /**
-     * This function paints a line from a start pixel to an end pixel.
-     * The computation is made with the Bresenham algorithm.
-     * @param data array on which the line shall be painted
-     * @param startPixel starting coordinates of the beam
-     * @param endPixel ending coordinates of the beam
-     * @param value The value with which the lines are marked.
-     */
-    template<class DataT>
-    void drawLine(DataT* data, Eigen::Vector2i& startPixel, Eigen::Vector2i& endPixel, char value);
-
-    /**
-     * This method computes the values for m_OccupancyProbabilities from m_MeasurementCount and m_OccupancyCount.
-     */
-    void computeOccupancyProbabilities();
-
-    /**
-     * This method sets all values of m_CurrentChanges to NO_CHANGE.
-     */
-    void clearCurrentChanges();
-
-    /**
-     * This method resets all values of m_MinChangeX, m_MaxChangeX, m_MinChangeY and m_MaxChangeY.
-     * This means that no current changes are assumed.
-     */
-    void resetChangedRegion();
-
-    /**
-     * This method updates the values of m_MinChangeX, m_MaxChangeX, m_MinChangeY and m_MaxChangeY to current changes.
-     * The area around the current robot pose will be included to the changed region.
-     * @param robotPose The current pose of the robot.
-     */
-    void updateChangedRegion(Pose robotPose);
-
-    /**
-     * This method sets all values of m_MinChangeX, m_MaxChangeX, m_MinChangeY and m_MaxChangeY
-      * to initial values so that the complete map will be processed.
-     */
-    void maximizeChangedRegion();
-
-    /**
-     * This method resets all values of m_ExploredX, m_MaxExploredX, m_MinExploredY and m_MaxExploredY.
-     */
-    void resetExploredRegion();
-
-    /**
-     * Deletes all allocated members.
-     */
-     void cleanUp();
-
-    /**
-     * Stores the size of one map pixel in m.
-     */
-    float m_Resolution;
-
-    /**
-     * Stores the origin of the map
-     */
-    geometry_msgs::Pose m_Origin;
-    /**
-     * Stores the width of the map in cell numbers.
-     */
-    int m_PixelSize;
-
-    /**
-     * Stores the size of the map arrays, i.e. m_PixelSize * m_PixelSize
-     * for faster computation.
-     */
-    unsigned m_ByteSize;
-
-    /**
-     * Array to store occupancy probability values.
-     * Values between 0 and 1.
-     */
-    float* m_OccupancyProbability;
-
-    // Counts how often a pixel is hit by a measurement.
-    unsigned short* m_MeasurementCount;
-
-    // Counts how often a pixel is hit by a measurement that says the pixel is occupied.
-    unsigned short* m_OccupancyCount;
-
-    // Counts how often a cell is marked as inaccessible via markInaccessible()
-    unsigned char* m_InaccessibleCount;
-
-    // Used for setting flags for cells, that have been modified during the current update.
-    unsigned char* m_CurrentChanges;
-    
-    // Used for high Sensitive areas
-    unsigned short* m_HighSensitive;
-
-    /**
-     * Store values from config files.
-     */
-    // maximum valid range of one laser measurement
-    float m_LaserMaxRange;
-    //minimum valid range of one laser measurement
-    float m_LaserMinRange;
-    //minimum range classified as free in case of errorneous laser measurement
-    float m_FreeReadingDistance;
-    //enables checking to avoid matching front- and backside of an obstacle, e.g. wall
-    bool m_BacksideChecking;
-    //leaves a small border around obstacles unchanged when inserting a laser scan
-    bool m_ObstacleBorders;
-    //minimum distance in m between two samples for probability calculation
-    float m_MeasureSamplingStep;
-    
-    //bool to reset high_sensitive Areas on the next iteration
-    bool m_reset_high;
-
-    //position of the laser scaner in base_link frame
-    geometry_msgs::Point m_LaserPos;
-
-    /**
-     * Defines a bounding box around the changes in the current map.
-     */
-    Box2D<int> m_ChangedRegion;
-
-    /**
-     * Defines a bounding box around the area in the map, which is already explored.
-     */
-    Box2D<int> m_ExploredRegion;
-
-    /**
-     * ros transform listener
-     */
-    tf::TransformListener m_tfListener;
-    
-    /**
-     * ros transformation laser to base_link
-     */    
-    tf::StampedTransform m_laserTransform;
-    tf::Transform m_latestMapTransform;
-
-};
-#endif
diff --git a/homer_mapping/include/homer_mapping/ParticleFilter/HyperSlamFilter.h b/homer_mapping/include/homer_mapping/ParticleFilter/HyperSlamFilter.h
deleted file mode 100755
index c85da226..00000000
--- a/homer_mapping/include/homer_mapping/ParticleFilter/HyperSlamFilter.h
+++ /dev/null
@@ -1,163 +0,0 @@
-#ifndef HYPERSLAMFILTER_H
-#define HYPERSLAMFILTER_H
-
-#include <vector>
-#include <homer_mapping/ParticleFilter/ParticleFilter.h>
-#include <homer_mapping/ParticleFilter/SlamParticle.h>
-#include <homer_mapping/ParticleFilter/SlamFilter.h>
-#include <homer_nav_libs/Math/Pose.h>
-#include <homer_mapping/OccupancyMap/OccupancyMap.h>
-
-#include <sensor_msgs/LaserScan.h>
-
-class OccupancyMap;
-
-/**
- * @class HyperSlamFilter
- *
- * @author Malte Knauf, Stephan Wirth, Susanne Maur
- *
- * @brief This class is used to determine the robot's most likely pose with given map and given laser data.
- *
- * A particle filter is a descrete method to describe and compute with a probability distribution.
- * This particle filter uses an occupancy map to determine the probability of robot states.
- * The robot states are stored in a particle together with their weight @see SlamParticle.
- *
- * @see SlamParticle
- * @see ParticleFilter
- * @see OccupancyMap
- */
-class HyperSlamFilter {
-
-  public:
-
-   /**
-     * This constructor initializes the random number generator and sets the member variables to the given values.
-     * @param particleNum Number of particleFilters to use.
-     */
-    HyperSlamFilter(int particleFilterNum, int particleNum);
-
-    /**
-     * The destructor releases the OccupancyMap and the particles.
-     */
-    ~HyperSlamFilter();
-
-    /**
-     * This method runs the filter routine.
-     * The given odometry measurement is used as movement hypothesis, the laserData-vector is used
-     * as measurement and is used to weight the particles.
-     * @param currentPoseOdometry Odometry data of time t.
-     * @param laserData msg containing the laser measurement.
-     * @param measurementTime Time stamp of the measurement.
-     * @param filterDurationTime Returns the time in ms that the filtering needed
-     */
-    void filter(Pose currentPoseOdometry, sensor_msgs::LaserScanConstPtr laserData, ros::Time measurementTime,
-                ros::Duration  &filterDuration);
-
-    /**
-     * Computes and sets the new value for m_Alpha1.
-     * @param percent Rotation error while rotating (see class constructor for details)
-     */
-    void setRotationErrorRotating(float percent);
-
-    /**
-     * Computes and sets the new value for m_Alpha2.
-     * @param degreesPerMeter Rotation error while translating (see class constructor for details)
-     */
-    void setRotationErrorTranslating(float degreesPerMeter);
-
-    /**
-     * Computes and sets the new value for m_Alpha3.
-     * @param percent Translation error while translating (see class constructor for details)
-     */
-    void setTranslationErrorTranslating(float percent);
-
-    /**
-     * Computes and sets the new value for m_Alpha4.
-     * @param  mPerDegree Translation error while rotating (see class constructor for details)
-     */
-    void setTranslationErrorRotating(float mPerDegree);
-
-    /**
-     * Computes and sets the new value for m_Alpha5.
-     * @param  mPerDegree Move jitter while turning (see class constructor for details)
-     */
-    void setMoveJitterWhileTurning(float mPerDegree);
-
-    /**
-     * Sets a new minimal size of a cluster of scan points which is considered in scan matching.
-     * @param  clusterSize Minimal size of a cluster in mm of scan points which is considered in scan matching.
-     */
-    void setScanMatchingClusterSize(float clusterSize);
-
-    /**
-     * Sets whether the map is updated or just used for self-localization.
-     * @param doMapping True if robot shall do mapping, false otherwise.
-     */
-    void setMapping(bool doMapping);
-
-    /**
-     * Deletes the current occupancy map and copies a new one into the system.
-     * @param occupancyMap The occupancy map to load into the system (copies are being made)
-     */
-    void setOccupancyMap(OccupancyMap* occupancyMap);
-
-    /**
-     * Sets the robot pose in the current occupancy map.
-     * @param Robot pose.
-     * @param scatterVariance if not equal to 0 the poses are equally scattered around the pose
-     */
-    void setRobotPose(Pose pose, double scatterVarXY=0.0, double scatterVarTheta=0.0);
-
-    /**
-     *Returns the best SlamFilter
-     */
-    SlamFilter* getBestSlamFilter();
-    
-    void resetHigh();
-
-    /**
-     * Factor (default 0.98) of the contrast of the best particle.
-     * If the contrast of the worst particle is below this threshold
-     * it will be replaced by the best particle
-     * @param deletionThreshold see above
-     */
-    void setDeletionThreshold(double deletionThreshold);
-
-    /**
-     * applies masking to map of slam filter set in GUI
-     * @param msg masking message received from GUI
-     */
-    void applyMasking(const nav_msgs::OccupancyGrid::ConstPtr &msg)
-    {
-        for(unsigned i = 0; i < m_ParticleFilterNum; ++i)
-        {
-            m_SlamFilters[i]->applyMasking(msg);
-        }
-    }
-
-  private:
-
-    /** Used SlamFilters */
-    std::vector <SlamFilter*> m_SlamFilters;
-
-    /** Number of SlamFilters */
-    unsigned m_ParticleFilterNum;
-
-    /** Number of Particles of SlamFilter */
-    unsigned m_ParticleNum;
-
-    /** */
-    double m_DeletionThreshold;
-
-    /** Best SLAM Filter */
-    SlamFilter* m_BestSlamFilter;
-
-    /** Worst SlamFilter */
-    SlamFilter* m_WorstSlamFilter;
-
-    bool m_DoMapping;
-
-};
-#endif
-
diff --git a/homer_mapping/include/homer_mapping/ParticleFilter/Particle.h b/homer_mapping/include/homer_mapping/ParticleFilter/Particle.h
deleted file mode 100644
index bd96aa85..00000000
--- a/homer_mapping/include/homer_mapping/ParticleFilter/Particle.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef PARTICLE_H
-#define PARTICLE_H  
-
-#include <iostream>
-#include <fstream>
-
-/** 
- * @class Particle
- *
- * @author Malte Knauf, Stephan Wirth
- *
- * @brief This class is an implementation of a "particle".
- *
- * A particle as it is used in particle filters is a set of one state and one importance factor (=weight).
- * A set of Particles is a discrete representation of a probability distribution.
- * 
- * @see ParticleFilter
- */
-class Particle {
-    
-  public:
-    /**
-     * This constructor assigns the given weight to the member m_Weight.
-     * @param weight The weight of the particle.
-     */
-    Particle(float weight = 0.0, int id = 0);
-
-    /**
-     * The destructor does nothing so far.
-     */
-    virtual ~Particle();
-
-    /**
-     * This method returns the importance factor of the particle.
-     * @return The importance factor (=weight) of the particle.
-     */
-    inline float getWeight() const { return m_Weight; }
-
-    /**
-     * Method to set the weight of the particle.
-     * @param newWeight New weight for the particle.
-     */
-    inline void setWeight(float newWeight) { m_Weight=newWeight; }
-
-    /**
-     * @return id of the particle that is stored in m_Id
-     */
-    inline int getId() { return m_Id; }
-
-  private:
-    /**
-     * Stores the importance factor (=weight) of the particle. This should be a value between 0 and 1.
-     */
-    float m_Weight;
-
-    /**
-     * Stores the id of the particle (for testing purpose)
-     */
-    int m_Id;
-
-};
-
-#endif
-
diff --git a/homer_mapping/include/homer_mapping/ParticleFilter/ParticleFilter.h b/homer_mapping/include/homer_mapping/ParticleFilter/ParticleFilter.h
deleted file mode 100644
index 651f7587..00000000
--- a/homer_mapping/include/homer_mapping/ParticleFilter/ParticleFilter.h
+++ /dev/null
@@ -1,320 +0,0 @@
-#ifndef PARTICLEFILTER_H
-#define PARTICLEFILTER_H
-
-#include <iostream>
-#include <cmath>
-#include <limits.h>
-#include <omp.h>
-
-#include <ros/ros.h>
-
-class Particle;
-
-const float MIN_EFFECTIVE_PARTICLE_WEIGHT = 0.2;
-
-/**
- * @class ParticleFilter
- *
- * @author Malte Knauf, Stephan Wirth
- *
- * @brief This class is a template class for a particle filter.
- *
- * A particle filter is a descrete method to describe and compute with a probability distribution.
- * This template class implements the basic methods for a particle filter: sort() and resample().
- * Use this class do derivate your custom particle filter from it. Use a self-defined subclass of
- * Particle as ParticleType.
- *
- * @see Particle
- */
-template <class ParticleType>
-class ParticleFilter {
-
-  public:
-    /**
-     * The constructor initializes the random number generator and allocates the memory for the particle lists.
-     * The lists will have particleNum elements.
-     * @param particleNum Number of particles for the filter.
-     */
-    ParticleFilter<ParticleType>(int particleNum);
-
-    /**
-     * The destructor releases the particle lists.
-     */
-    virtual ~ParticleFilter();
-
-    /**
-     * @return Number of particles used in this filter
-     */
-    int getParticleNum();
-
-    /**
-     * @return The number of effective particles (according to "Improving Grid-based SLAM with Rao-Blackwellized Particle
-     * Filters by Adaptive Proposals and Selective Resampling (2005)" by Giorgio Grisetti, Cyrill Stachniss, Wolfram Burgard
-     */
-    int getEffectiveParticleNum() const;
-    int getEffectiveParticleNum2() const;
-
-    /**
-     * @return Pointer to the particle that has the highest weight.
-     */
-    ParticleType* getBestParticle() const;
-
-
-  protected:
-
-    /**
-     * This method generates a random variable in the interval [0,1].
-     * @param init The initial value for the static random base number. When running the constructor of this
-     * class, this method is run once with the C-function time() as parameter to initialize it.
-     * Then you should use it without parameter.
-     * @return Random value between 0 and 1
-     */
-    double random01(unsigned long init = 0) const;
-
-    /**
-     * This method sorts the particles in m_CurrentList from leftIndex to rightIndex according to their weight.
-     * The particle with the highest weight is at position 0 after calling this function. The algorithm used here is
-     * known as quicksort and works recursively.
-     * @param leftIndex Left index of area to sort
-     * @param rightIndex Right index of area to sort
-     */
-    void sort(int leftIndex, int rightIndex);
-
-    /**
-     * This method normalizes the weights of the particles. After calling this function, the sum of the weights of
-     * all particles in m_CurrentList equals 1.0.
-     * In this function the sum of all weights of the particles of m_CurrentList is computed and each weight of each
-     * particle is devided through this sum.
-     */
-    void normalize();
-
-    /**
-     * This method selects a new set of particles out of an old set according to their weight
-     * (importance resampling). The particles from the list m_CurrentList points to are used as source,
-     * m_LastList points to the destination list. The pointers m_CurrentList and m_LastList are switched.
-     * The higher the weight of a particle, the more particles are drawn (copied) from this particle.
-     * The weight remains untouched, because measure() will be called afterwards.
-     * This method only works on a sorted m_CurrentList, therefore sort() is called first.
-     */
-    void resample();
-
-    /**
-     * This method drifts the particles (second step of a filter process).
-     * Has to be implemented in sub-classes (pure virtual function).
-     */
-    virtual void drift() = 0;
-
-    /**
-     * This method has to be implemented in sub-classes. It is used to determine the weight of each particle.
-     */
-    virtual void measure() = 0;
-
-    /**
-     * These two pointers point to m_ParticleListOne and to m_ParticleListTwo.
-     * The particles are drawn from m_LastList to m_CurrentList to avoid new and delete commands.
-     * In each run, the pointers are switched in resample().
-     */
-    ParticleType** m_CurrentList;
-    ParticleType** m_LastList;
-
-    /**
-     * Stores the number of particles.
-     */
-    int m_ParticleNum;
-
-    /**
-     * Stores the number of effective particles.
-     */
-    int m_EffectiveParticleNum;
-};
-
-template <class ParticleType>
-ParticleFilter<ParticleType>::ParticleFilter(int particleNum) {
-  // initialize particle lists
-  m_CurrentList = new ParticleType*[particleNum];
-  m_LastList = new ParticleType*[particleNum];
-
-  // initialize random number generator
-  random01(time(0));
-
-  m_ParticleNum = particleNum;
-}
-
-
-template <class ParticleType>
-ParticleFilter<ParticleType>::~ParticleFilter() {
-  if (m_CurrentList) {
-    delete[] m_CurrentList;
-    m_CurrentList = 0;
-  }
-  if (m_LastList) {
-    delete[] m_LastList;
-    m_LastList = 0;
-  }
-}
-
-template <class ParticleType>
-int ParticleFilter<ParticleType>::getParticleNum() {
-  return m_ParticleNum;
-}
-
-template <class ParticleType>
-double ParticleFilter<ParticleType>::random01(unsigned long init) const {
-  static unsigned long n;
-  if (init > 0) {
-    n = init;
-  }
-  n = 1664525 * n + 1013904223;
-  // create double from unsigned long
-  return (double)(n/2) / (double)LONG_MAX;
-}
-
-
-template <class ParticleType>
-void ParticleFilter<ParticleType>::sort(int indexLeft, int indexRight) {
-
-  // SOMETHING LEFT TO SORT?
-  if (indexLeft >= indexRight) {
-    // ready!
-    return;
-  }
-
-  // CREATE PARTITION
-  int le = indexLeft;
-  int ri = indexRight;
-  int first = le;
-  int pivot = ri--;
-  while(le <= ri) {
-    // skip from left
-    while(m_CurrentList[le]->getWeight() > m_CurrentList[pivot]->getWeight()) {
-      le++;
-    }
-    // skip from right
-    while((ri >= first) && (m_CurrentList[ri]->getWeight() <= m_CurrentList[pivot]->getWeight())) {
-      ri--;
-    }
-    // now we have two elements to swap
-    if(le < ri) {
-      // swap
-      ParticleType* temp = m_CurrentList[le];
-      m_CurrentList[le] = m_CurrentList[ri];
-      m_CurrentList[ri] = temp;
-      le++;
-    }
-  }
-
-  if(le != pivot) {
-    // swap
-    ParticleType* temp = m_CurrentList[le];
-    m_CurrentList[le] = m_CurrentList[pivot];
-    m_CurrentList[pivot] = temp;
-  }
-
-  // sort left side
-  sort(indexLeft, le - 1);
-  // sort right side
-  sort(le + 1, indexRight);
-
-}
-
-template <class ParticleType>
-void ParticleFilter<ParticleType>::normalize() {
-
-  float weightSum = 0.0;
-  for (int i = 0; i < m_ParticleNum; i++) {
-    weightSum += m_CurrentList[i]->getWeight();
-  }
-  // only normalize if weightSum is big enough to divide
-  if (weightSum > 0.000001) 
-  {
-    
-    //calculating parallel on 8 threats 
-    omp_set_num_threads(8);
-    int i = 0;
-   // #pragma omp parallel for 
-    for ( i = 0; i < m_ParticleNum; i++) 
-    {
-      float newWeight = m_CurrentList[i]->getWeight() / weightSum;
-      m_CurrentList[i]->setWeight(newWeight);
-    }
-  }
-  else 
-  {
-      ROS_WARN_STREAM( "Particle weights VERY small: " << weightSum << ". Got "<< m_ParticleNum << " particles.");
-  }
-}
-
-template <class ParticleType>
-void ParticleFilter<ParticleType>::resample() 
-{
-    // swap pointers
-    ParticleType** help = m_LastList;
-    m_LastList = m_CurrentList;
-    m_CurrentList = help;
-    // now we copy from m_LastList to m_CurrentList
-
-    int drawIndex = 0;
-    // index of the particle where we are drawing to
-    int targetIndex = 0;
-
-    int numToDraw = 0;
-    do {
-      numToDraw = static_cast<int>(round((m_ParticleNum * m_LastList[drawIndex]->getWeight()) + 0.5));
-      for (int i = 0; i < numToDraw; i++) {
-        *m_CurrentList[targetIndex++] = *m_LastList[drawIndex];
-        // don't draw too much
-        if (targetIndex >= m_ParticleNum) {
-          break;
-        }
-      }
-      drawIndex++;
-    } while (numToDraw > 0 && targetIndex < m_ParticleNum);
-
-    // fill the rest of the particle list
-    for (int i = targetIndex; i < m_ParticleNum; i++) {
-      float particlePos = random01();
-      float weightSum = 0.0;
-      drawIndex = 0;
-      weightSum += m_LastList[drawIndex]->getWeight();
-      while (weightSum < particlePos) {
-        weightSum += m_LastList[++drawIndex]->getWeight();
-      }
-      *m_CurrentList[i] = *m_LastList[drawIndex];
-    }
-}
-
-
-template <class ParticleType>
-int ParticleFilter<ParticleType>::getEffectiveParticleNum() const {
-  // does not work with normalized particle weights
-  // does not work with our weights at all (algorithm of Grisetti)
-  float squareSum = 0;
-  for (int i = 0; i < m_ParticleNum; i++) {
-    float weight = m_CurrentList[i]->getWeight();
-    squareSum += weight * weight;
-  }
-  return static_cast<int>(1.0f / squareSum);
-}
-
-
-template <class ParticleType>
-int ParticleFilter<ParticleType>::getEffectiveParticleNum2() const {
-    // does not work with normalized particle weights
-  int effectiveParticleNum = 0;
-  for (int i = 0; i < m_ParticleNum; i++) {
-    if (m_CurrentList[i]->getWeight() > MIN_EFFECTIVE_PARTICLE_WEIGHT) {
-      effectiveParticleNum ++;
-    }
-  }
-  return effectiveParticleNum;
-}
-
-
-template <class ParticleType>
-ParticleType* ParticleFilter<ParticleType>::getBestParticle() const {
-  return m_CurrentList[0];
-}
-
-
-#endif
-
diff --git a/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h b/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h
deleted file mode 100644
index a712fb39..00000000
--- a/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h
+++ /dev/null
@@ -1,327 +0,0 @@
-#ifndef SLAMFILTER_H
-#define SLAMFILTER_H
-
-#include <vector>
-#include <homer_mapping/ParticleFilter/ParticleFilter.h>
-#include <homer_mapping/ParticleFilter/SlamParticle.h>
-#include <homer_nav_libs/Math/Pose.h>
-#include <homer_mapping/OccupancyMap/OccupancyMap.h>
-
-#include <sensor_msgs/LaserScan.h>
-#include <homer_nav_libs/Math/Transformation2D.h>
-#include <homer_nav_libs/Math/Math.h>
-
-#include <tf/transform_broadcaster.h>
-
-#include <cmath>
-#include <fstream>
-#include <sstream>
-
-#include "ros/ros.h"
-
-
-class OccupancyMap;
-
-/**
- * @class SlamFilter
- *
- * @author Malte Knauf, Stephan Wirth, Susanne Maur
- *
- * @brief This class is used to determine the robot's most likely pose with given map and given laser data.
- *
- * A particle filter is a descrete method to describe and compute with a probability distribution.
- * This particle filter uses an occupancy map to determine the probability of robot states.
- * The robot states are stored in a particle together with their weight @see SlamParticle.
- *
- * @see SlamParticle
- * @see ParticleFilter
- * @see OccupancyMap
- */
-class SlamFilter : public ParticleFilter<SlamParticle> {
-
-  public:
-
-   /**
-     * This constructor initializes the random number generator and sets the member variables to the given values.
-     * @param particleNum Number of particles to use.
-     */
-    SlamFilter(int particleNum);
-
-    /// @brief copy constructor
-    SlamFilter( SlamFilter& slamFilter );
-
-    /**
-     * The destructor releases the OccupancyMap and the particles.
-     */
-    ~SlamFilter();
-
-    /**
-     * This method runs the filter routine.
-     * The given odometry measurement is used as movement hypothesis, the laserData-vector is used
-     * as measurement and is used to weight the particles.
-     * @param currentPoseOdometry Odometry data of time t.
-     * @param laserData msg containing the laser measurement.
-     * @param measurementTime Time stamp of the measurement.
-     * @param filterDurationTime Returns the time that the filtering needed
-     */
-    void filter(Pose currentPoseOdometry, sensor_msgs::LaserScanConstPtr laserData, ros::Time measurementTime,
-                ros::Duration  &filterDuration);
-
-    /**
-     * @return The Pose of the most important particle (particle with highest weight).
-     */
-    Pose getLikeliestPose(ros::Time poseTime = ros::Time::now());
-
-    /**
-     * This method can be used to retrieve the most likely map that is stored by the particle filter.
-     * @return Pointer to the most likely occupancy map.
-     */
-    OccupancyMap* getLikeliestMap() const;
-
-    /**
-     * This function prints out the list of particles to stdout via cout.
-     */
-    void printParticles() const;
-    
-    void resetHigh();
-
-    /**
-     * Computes and sets the new value for m_Alpha1.
-     * @param percent Rotation error while rotating (see class constructor for details)
-     */
-    void setRotationErrorRotating(float percent);
-
-    /**
-     * Computes and sets the new value for m_Alpha2.
-     * @param degreesPerMeter Rotation error while translating (see class constructor for details)
-     */
-    void setRotationErrorTranslating(float degreesPerMeter);
-
-    /**
-     * Computes and sets the new value for m_Alpha3.
-     * @param percent Translation error while translating (see class constructor for details)
-     */
-    void setTranslationErrorTranslating(float percent);
-
-    /**
-     * Computes and sets the new value for m_Alpha4.
-     * @param  mPerDegree Translation error while rotating (see class constructor for details)
-     */
-    void setTranslationErrorRotating(float mPerDegree);
-
-    /**
-     * Computes and sets the new value for m_Alpha5.
-     * @param  mPerDegree Move jitter while turning (see class constructor for details)
-     */
-    void setMoveJitterWhileTurning(float mPerDegree);
-
-    /**
-     * Sets a new minimal size of a cluster of scan points which is considered in scan matching.
-     * @param  clusterSize Minimal size of a cluster in mm of scan points which is considered in scan matching.
-     */
-    void setScanMatchingClusterSize(float clusterSize);
-
-    /**
-     * Sets whether the map is updated or just used for self-localization.
-     * @param doMapping True if robot shall do mapping, false otherwise.
-     */
-    void setMapping(bool doMapping);
-
-    /**
-     * Deletes the current occupancy map and copies a new one into the system.
-     * @param occupancyMap The occupancy map to load into the system (is being copied)
-     */
-    void setOccupancyMap(OccupancyMap* occupancyMap);
-
-    /**
-     * Sets the robot pose in the current occupancy map.
-     * @param Robot pose.
-     * @param scatterVariance if not equal to 0 the poses are equally scattered around the pose
-     */
-    void setRobotPose(Pose pose, double scatterVarXY=0.0, double scatterVarTheta=0.0);
-
-    /**
-     * @return Vector of current particle poses. The vector is sorted according to the weights of the
-     * particles. The pose of the particle with the highest value is the first element of the vector.
-     */
-    std::vector<Pose>* getParticlePoses() const;
-
-    /**
-    * @return vector of all particles
-    */
-    std::vector<SlamParticle*>* getParticles() const;
-
-    /**
-     * @return Vector of current particle weights. The vector is sorted by weight, highest weight first.
-     */
-    std::vector<float> getParticleWeights() const;
-
-    /**
-     * Calculates and returns the variance of the current likeliest particle poses.
-     * The orientation of the particle is neglected.
-     * @param The number of treated particles.
-     * @param[out] poseVarianceX The variance of particle poses in x direction.
-     * @param[out] poseVarianceY The variance of particle poses in y direction.
-     */
-    void getPoseVariances(int particleNum, float& poseVarianceX, float& poseVarianceY);
-
-    /**
-     * This method reduces the number of particles used in this SlamFilter to the given value.
-     * @param newParticleNumber The new number of particles
-     */
-    void reduceParticleNumber(int newParticleNumber);
-
-    /**
-     * This method returns the contrast of the occupancy grid
-     * @return Contrast value from 0 (no contrast) to 1 (max. contrast) of the map
-     */
-    double evaluateByContrast();
-
-    /**
-     * This method passes a masking map to to the underlying occupancy map
-     */
-    void applyMasking(const nav_msgs::OccupancyGrid::ConstPtr &msg);
-
-
-  private:
-
-    /**
-     * This method filter outliers in the given laser scan
-     * @param rawData the laser scan to check
-     * @param maxDiff maximal difference between two adjacent ranges
-     * @return filtered scan without outliers
-     */
-    vector<float> filterOutliers(sensor_msgs::LaserScanConstPtr rawData, float maxDiff );
-
-    /**
-     * This method generates Gauss-distributed random variables with the given variance. The computation
-     * method is the Polar Method that is described in the book "A First Course on Probability" by Sheldon Ross.
-     * @param variance The variance for the Gauss-distribution that is used to generate the random variable.
-     * @return A random variable that is N(0, variance) distributed.
-     */
-    double randomGauss(float variance = 1.0) const;
-
-    /**
-     * This method drifts the particles according to the last two odometry readings (time t-1 and time t).
-     */
-    void drift();
-
-    /**
-     * This method weightens each particle according to the given laser measurement in m_LaserData.
-     */
-    void measure();
-
-    /**
-     * This method updates the map by inserting the current laser measurement at the pose of the likeliest particle.
-     */
-    void updateMap();
-
-    /**
-     * For weightening the particles, the filter needs a map.
-     * This variable holds a pointer to a map.
-     * @see OccupancyMap
-     */
-    OccupancyMap* m_OccupancyMap;
-
-    /**
-     * threshold values for when the map will be updated.
-     * The map is only updated when the robot has turned a minimal angle (m_UpdateMinMoveAngle in radiants),
-     * has moved a minimal distance (m_UpdateMinMoveDistance in m) or a maximal time has passed (m_MaxUpdateInterval)
-     */
-    float m_UpdateMinMoveAngle;
-    float m_UpdateMinMoveDistance;
-    ros::Duration m_MaxUpdateInterval;
-
-    /**
-     * This variable holds the rotation error that the robot makes while it is rotating.
-     * Has to be given in percent. Example: robot makes errors of 3 degrees while making a 60 degrees
-     * move -> error is 5% -> rotationErrorRotating = 5)
-     */
-    float m_Alpha1;
-
-    /**
-     * This variable holds the rotation error that the robot makes while it is translating
-     * (moving forward or backwards). Has to be given in degrees per meter.
-     */
-    float m_Alpha2;
-
-    /**
-     * This variable holds the translation error that the robot makes while it is translating.
-     * Has to be given in percent.
-     */
-    float m_Alpha3;
-
-    /**
-     * This variable holds the translation error that the robot makes while it is rotating.
-     * This error only carries weight, if a translation es performed at the same time.
-     * See also m_Alpha5.
-     * Has to be given in milimeters per degree. Example: Robot makes a turn of 10 degrees and moves its
-     * center unintentional 15 mm. -> translationErrorRotating = 15.0 / 10.0 = 1.5
-     */
-    float m_Alpha4;
-
-    /**
-     * This variable holds a move jitter that is considered if the robot is turning.
-     * Has to be given in milimeters per degree.
-     */
-    float m_Alpha5;
-
-    /**
-     * The maximal rotation if mapping is performed. If the rotation is bigger, mapping is interrupted.
-     * This value may depend on the computing power, because it is influenced by the size of time intervals of mapping.
-     */
-    float m_MaxRotationPerSecond;
-
-    /**
-     * Last laser data.
-     */
-    sensor_msgs::LaserScanPtr m_CurrentLaserData;
-
-    /**
-     * Last two odometry measurements.
-     */
-    Pose m_ReferencePoseOdometry;
-    Pose m_CurrentPoseOdometry;
-
-    /**
-     * Time stamp of the last sensor measurement.
-     */
-    ros::Time m_ReferenceMeasurementTime;
-
-    /**
-     * True if it is the first run of SlamFilter, false otherwise.
-     */
-    bool m_FirstRun;
-
-    /**
-     * This variabe is true, if the SlamFilter is used for mapping and updates the map,
-     * false if it is just used for self-localization.
-     */
-    bool m_DoMapping;
-
-    /** Points used in last measure() step */
-    vector<MeasurePoint> m_MeasurePoints;
-
-    /// Pose of robot during last map update
-    Pose m_LastUpdatePose;
-    
-    tf::Transform m_latestTransform;
-
-    /**
-     *  Time stamp of the last particle filter step
-     */
-    ros::Time m_LastUpdateTime;
-
-    /**
-     * Calculates the square of given input f
-     * @param f input
-     * @return square of input
-     */
-    template<class T>
-    T sqr(T f)
-    {
-        return f * f;
-    }
-};
-#endif
-
diff --git a/homer_mapping/include/homer_mapping/ParticleFilter/SlamParticle.h b/homer_mapping/include/homer_mapping/ParticleFilter/SlamParticle.h
deleted file mode 100644
index dc05b056..00000000
--- a/homer_mapping/include/homer_mapping/ParticleFilter/SlamParticle.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef SLAMPARTICLE_H
-#define SLAMPARTICLE_H
-
-#include <iostream>
-#include <fstream>
-
-#include <homer_mapping/ParticleFilter/Particle.h>
-
-/**
- * @class SlamParticle
- *
- * @author Malte Knauf, Stephan Wirth
- *
- * @brief This class defines a particle for the SlamFilter.
- *
- * This particle contains a weight (inherited from base class) and a Pose (position + orientation).
- * The Pose describes a possible position and orientation of the robot.
- *
- * @see SlamFilter
- * @see Particle
- */
-class SlamParticle : public Particle
-{
-
-  public:
-    /**
-     * This constructor assigns the given weight to the member m_Weight.
-     * @param weight The weight of the particle.
-     * @param robotX X-Position of the robot (world coordinates in m).
-     * @param robotY Y-Position of the robot (world coordinates in m).
-     * @param robotTheta Orientation of the robot (radiants).
-     */
-    SlamParticle ( float weight = 1.0, float robotX = 0.0, float robotY = 0.0, float robotTheta = 0.0 );
-
-    ///@brief copy contructor
-    SlamParticle ( SlamParticle& slamParticle );
-
-    /**
-     * The destructor does nothing so far.
-     */
-    ~SlamParticle();
-
-    /**
-     * Sets the three members m_RobotPositionX, m_RobotPositionY, m_RobotOrientation.
-     * @param robotX X-Position of the robot (world coordinates in m).
-     * @param robotY Y-Position of the robot (world coordinates in m).
-     * @param robotTheta Orientation of the robot (radiants).
-     */
-    void setRobotPose ( float robotX, float robotY, float robotTheta );
-
-    /**
-     * Returns the content of the three members m_RobotPositionX, m_RobotPositionY, m_RobotOrientation.
-     * @param[out] robotX X-Position of the robot (world coordinates in m).
-     * @param[out] robotY Y-Position of the robot (world coordinates in m).
-     * @param[out] robotTheta Orientation of the robot (radiants).
-     */
-    void getRobotPose ( float& robotX, float& robotY, float& robotTheta );
-
-
-  private:
-
-    /**
-     * These members store the pose of the robot.
-     */
-    float m_RobotPositionX;
-    float m_RobotPositionY;
-    float m_RobotOrientation;
-
-};
-
-#endif
-
diff --git a/homer_mapping/include/homer_mapping/slam_node.h b/homer_mapping/include/homer_mapping/slam_node.h
deleted file mode 100644
index 5e4081a4..00000000
--- a/homer_mapping/include/homer_mapping/slam_node.h
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef SLAM_NODE_H
-#define SLAM_NODE_H
-
-#include <vector>
-#include <map>
-#include <sstream>
-#include <vector>
-#include <iostream>
-#include <fstream>
-#include <sstream>
-#include <cmath>
-#include <stdlib.h>
-
-#include <homer_nav_libs/Math/Pose.h>
-
-#include <tf/transform_broadcaster.h>
-
-#include <sensor_msgs/LaserScan.h>
-#include <nav_msgs/Odometry.h>
-#include <nav_msgs/OccupancyGrid.h>
-#include <geometry_msgs/Pose.h>
-#include <geometry_msgs/PoseWithCovariance.h>
-#include <geometry_msgs/PoseWithCovarianceStamped.h>
-#include <std_msgs/Empty.h>
-#include <std_msgs/Bool.h>
-#include <nav_msgs/Odometry.h>
-#include <nav_msgs/OccupancyGrid.h>
-#include <tf/tf.h>
-
-#include <homer_mapping/ParticleFilter/SlamFilter.h>
-#include <homer_mapping/ParticleFilter/HyperSlamFilter.h>
-#include <homer_nav_libs/Math/Box2D.h>
-#include <homer_mapping/OccupancyMap/OccupancyMap.h>
-
-class OccupancyMap;
-class SlamFilter;
-class HyperSlamFilter;
-
-/**
- * @class SlamNode
- *
- * @author Malte Knauf, Stephan Wirth, Susanne Maur (RX), David Gossow (RX),
- *         Christian Fuchs (R12), Nicolai Wojke (R14), Susanne Thierfelder (R16)
- *
- *
- * @brief The Simultaneous localization and mapping module
- *
- * This module receives odometry and laser data and computes the
- * robot's position and a map out of this data. Then it sends a
- * geometry_msgs/PoseStamped and nav_msgs/OccupancyGrid message.
- */
-class SlamNode
-{
-
-public:
-
-    /**
-     * The constructor adds the message types and prepares the module for receiving them.
-     */
-    SlamNode(ros::NodeHandle *nh);
-
-    /**
-     * This method initializes the member variables.
-     */
-    virtual void init();
-
-    /**
-     * The destructor deletes the filter thread instance.
-     */
-    virtual ~SlamNode();
-
-private:
-
-    /**
-     * Callback methods for all incoming messages
-     */
-    void callbackLaserScan( const sensor_msgs::LaserScan::ConstPtr& msg );
-    void callbackOdometry( const nav_msgs::Odometry::ConstPtr& msg );
-    void callbackUserDefPose( const geometry_msgs::Pose::ConstPtr& msg );
-    void callbackDoMapping( const std_msgs::Bool::ConstPtr& msg );
-    void callbackResetMap( const std_msgs::Empty::ConstPtr& msg );
-    void callbackLoadedMap( const nav_msgs::OccupancyGrid::ConstPtr& msg );
-    void callbackMasking( const nav_msgs::OccupancyGrid::ConstPtr& msg );
-    void callbackResetHigh(const std_msgs::Empty::ConstPtr& msg);
-	void callbackInitialPose(const geometry_msgs::PoseWithCovarianceStamped::ConstPtr& msg);
-
-    /**
-     * This function resets the current maps to the initial state.
-     */
-    void resetMaps();
-
-    /**
-     * This function processes the current odometry data in combination with the
-     * last send odometry and laser informations to pass on corresponding data
-     * to the filter threads.
-
-    /**
-     * This method retrieves the current map of the slam filter and sends a map
-     * data message containing the map.
-     */
-    void sendMapDataMessage(ros::Time mapTime = ros::Time::now());
-
-    /**
-     * This variables stores the last odometry measurement as reference that is used
-     * to compute the pose of the robot during a specific laserscan.
-     */
-    Pose m_ReferenceOdometryPose;
-
-	Pose m_LastLikeliestPose;
-
-    /**
-     * This variable stores the time of the last odometry measurement as reference
-     * which is used to compute the pose of the robot during a specific laserscan.
-     */
-    ros::Time m_ReferenceOdometryTime;
-
-    /**
-     * This variable stores the time the last map message was sent to be able to
-     * compute the time for the next map send.
-     */
-    ros::Time m_LastMapSendTime;
-    ros::Time m_LastPositionSendTime;
-
-    /**
-     * This variable stores the last laser measurement.
-     */
-    sensor_msgs::LaserScan::ConstPtr m_LastLaserData;
-
-    /**
-     * time stamp of last particle filter step
-     */
-    ros::Time m_LastMappingTime;
-
-
-    /**
-     * This variable stores a pointer to the hyper slam filter
-     */
-    HyperSlamFilter* m_HyperSlamFilter;
-
-    /**
-     * Scatter variances in self localization.
-     */
-    double m_ScatterVarXY;
-    double m_ScatterVarTheta;
-
-    /**
-     * This variabe is true, if the slam algorithm is used for mapping and
-     * keeps updating the map, false otherwise.
-     */
-    bool m_DoMapping;
-
-	/**
-	 * Vectors used to queue laser and odom messages to find a fit
-	 */
-	std::vector<sensor_msgs::LaserScan::ConstPtr> m_laser_queue;
-	std::vector<nav_msgs::Odometry::ConstPtr> m_odom_queue;
-
-    /**
-     * duration to wait between two particle filter steps
-     */
-    ros::Duration m_WaitDuration;
-
-    /**
-     * Broadcasts the transform map -> base_link
-     */
-    tf::TransformBroadcaster m_tfBroadcaster;
-
-    /**
-     * subscribers and publishers
-     */
-    ros::Subscriber m_LaserScanSubscriber;
-    ros::Subscriber m_OdometrySubscriber;
-    ros::Subscriber m_UserDefPoseSubscriber;
-    ros::Subscriber m_DoMappingSubscriber;
-    ros::Subscriber m_ResetMapSubscriber;
-    ros::Subscriber m_LoadMapSubscriber;
-    ros::Subscriber m_MaskingSubscriber;
-    ros::Subscriber m_ResetHighSubscriber;
-	ros::Subscriber m_InitialPoseSubscriber;
-
-    ros::Publisher m_PoseStampedPublisher;
-    ros::Publisher m_SLAMMapPublisher;
-
-};
-
-#endif
diff --git a/homer_mapping/launch/homer_mapping.launch b/homer_mapping/launch/homer_mapping.launch
deleted file mode 100644
index d268a336..00000000
--- a/homer_mapping/launch/homer_mapping.launch
+++ /dev/null
@@ -1,5 +0,0 @@
-<launch>
- <rosparam command="load" file="$(find homer_mapping)/config/homer_mapping.yaml"/>
- <node name="homer_mapping" pkg="homer_mapping" type="homer_mapping" output="screen"/>
- <node name="map_manager" pkg="homer_map_manager" type="map_manager" output="screen"/>
-</launch>
diff --git a/homer_mapping/mainpage.dox b/homer_mapping/mainpage.dox
deleted file mode 100644
index 054b63cf..00000000
--- a/homer_mapping/mainpage.dox
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
-\mainpage
-\htmlinclude manifest.html
-
-\b homer_mapping is ... 
-
-<!-- 
-Provide an overview of your package.
--->
-
-
-\section codeapi Code API
-
-<!--
-Provide links to specific auto-generated API documentation within your
-package that is of particular interest to a reader. Doxygen will
-document pretty much every part of your code, so do your best here to
-point the reader to the actual API.
-
-If your codebase is fairly large or has different sets of APIs, you
-should use the doxygen 'group' tag to keep these APIs together. For
-example, the roscpp documentation has 'libros' group.
--->
-
-
-*/
diff --git a/homer_mapping/manifest.xml b/homer_mapping/manifest.xml
deleted file mode 100644
index 2c9977b6..00000000
--- a/homer_mapping/manifest.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<package>
-  <description brief="homer_mapping">
-
-     homer_mapping
-
-  </description>
-  <author>Malte</author>
-  <license>BSD</license>
-  <review status="unreviewed" notes=""/>
-  <url>http://ros.org/wiki/homer_mapping</url>
-  <depend package="std_msgs"/>
-  <depend package="roscpp"/>
-  <depend package="sensor_msgs"/>
-  <depend package="nav_msgs"/>
-  <depend package="tf"/>
-  <depend package="roslib"/>  
-
-  <depend package="robbie_architecture"/>
-  <depend package="BaseLib"/>
-  <depend package="map_messages"/>
-</package>
-
-
diff --git a/homer_mapping/package.xml b/homer_mapping/package.xml
deleted file mode 100644
index bb664fa5..00000000
--- a/homer_mapping/package.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<package>
-  <name>homer_mapping</name>
-  <version>0.1.1</version>
-  <description>
-
-     homer_mapping
-
-  </description>
-  <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer>
-  <author email="mknauf@uni-koblenz.de">Malte Knauf</author>
-
-  <license>GPLv3</license>
-  <buildtool_depend>catkin</buildtool_depend>
-
-  <build_depend>roscpp</build_depend>
-  <build_depend>sensor_msgs</build_depend>
-  <build_depend>nav_msgs</build_depend>
-  <build_depend>tf</build_depend>
-  <build_depend>roslib</build_depend>
-  <build_depend>homer_nav_libs</build_depend>
-  <build_depend>homer_mapnav_msgs</build_depend>
-  <build_depend>cmake_modules</build_depend>
- 
-
-  <run_depend>std_msgs</run_depend>
-  <run_depend>roscpp</run_depend>
-  <run_depend>sensor_msgs</run_depend>
-  <run_depend>nav_msgs</run_depend>
-  <run_depend>tf</run_depend>
-  <run_depend>roslib</run_depend>  
-  <run_depend>homer_nav_libs</run_depend>
-  <run_depend>homer_mapnav_msgs</run_depend>
-
-</package>
diff --git a/homer_mapping/readme.pdf b/homer_mapping/readme.pdf
deleted file mode 100644
index 07f93c8ff0f8b7c478d0e93269eb5df0febdd4ad..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 113506
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
CwC<b$

diff --git a/homer_mapping/src/CMakeLists.txt b/homer_mapping/src/CMakeLists.txt
deleted file mode 100644
index e5e17710..00000000
--- a/homer_mapping/src/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-add_subdirectory(Workers)
-add_subdirectory(Modules)
diff --git a/homer_mapping/src/OccupancyMap/OccupancyMap.cpp b/homer_mapping/src/OccupancyMap/OccupancyMap.cpp
deleted file mode 100644
index 5ab3b94a..00000000
--- a/homer_mapping/src/OccupancyMap/OccupancyMap.cpp
+++ /dev/null
@@ -1,977 +0,0 @@
-#include <homer_mapping/OccupancyMap/OccupancyMap.h>
-
-#include <homer_nav_libs/Math/Math.h>
-
-#include <cmath>
-#include <vector>
-#include <fstream>
-#include <sstream>
-#include <QImage>
-
-#include <Eigen/Geometry>
-
-#include <ros/ros.h>
-#include <tf/transform_listener.h>
-
-#include <homer_mapnav_msgs/ModifyMap.h>
-#include <homer_nav_libs/tools.h>
-
-//uncomment this to get extended information on the tracer
-//#define TRACER_OUTPUT
-
-using namespace std;
-
-const float UNKNOWN_LIKELIHOOD = 0.3;
-
-// Flags of current changes //
-const char NO_CHANGE = 0;
-const char OCCUPIED = 1;
-const char FREE = 2;
-//the safety border around occupied pixels which is left unchanged
-const char SAFETY_BORDER = 3;
-///////////////////////////////
-
-//assumed laser measure count for loaded maps
-const int LOADED_MEASURECOUNT = 10;
-
-
-OccupancyMap::OccupancyMap()
-{
-  initMembers();
-}
-
-OccupancyMap::OccupancyMap(float *&occupancyProbability, geometry_msgs::Pose origin, float resolution, int pixelSize, Box2D<int> exploredRegion)
-{
-    initMembers();
-
-
-    m_Origin = origin;
-    m_Resolution = resolution;
-    m_PixelSize = pixelSize;
-    m_ByteSize = pixelSize * pixelSize;
-    m_ExploredRegion = exploredRegion;
-    m_ChangedRegion = exploredRegion;
-
-    if ( m_OccupancyProbability )
-    {
-      delete[] m_OccupancyProbability;
-    }
-    m_OccupancyProbability = occupancyProbability;
-    for(unsigned i = 0; i < m_ByteSize; i++)
-    {
-        if(m_OccupancyProbability[i] != 0.5)
-        {
-            m_MeasurementCount[i] = LOADED_MEASURECOUNT;
-            m_OccupancyCount[i] = m_OccupancyProbability[i] * (float)LOADED_MEASURECOUNT;
-        }
-    }
-}
-
-
-OccupancyMap::OccupancyMap ( const OccupancyMap& occupancyMap )
-{
-  m_OccupancyProbability = 0;
-  m_MeasurementCount = 0;
-  m_OccupancyCount = 0;
-  m_CurrentChanges = 0;
-  m_InaccessibleCount = 0;
-  m_HighSensitive = 0;
-  m_LaserMaxRange = 0;
-  m_LaserMinRange = 0;
-
-  *this = occupancyMap;
-}
-
-OccupancyMap::~OccupancyMap()
-{
-  cleanUp();
-}
-
-void OccupancyMap::initMembers()
-{
-  float mapSize;
-  ros::param::get("/homer_mapping/size", mapSize);
-  ros::param::get("/homer_mapping/resolution", m_Resolution);
-  ros::param::param("/homer_mapping/max_laser", m_LaserMaxRange, (float) 8.0);
-
-  //add one safety pixel
-  m_PixelSize = mapSize / m_Resolution + 1;
-  m_ByteSize = m_PixelSize * m_PixelSize;
-
-  m_Origin.position.x = -m_PixelSize*m_Resolution/2;
-  m_Origin.position.y = -m_PixelSize*m_Resolution/2;
-  m_Origin.orientation.w = 1.0;
-  m_Origin.orientation.x = 0.0;
-  m_Origin.orientation.y = 0.0;
-  m_Origin.orientation.z = 0.0;
-
-  ros::param::get("/homer_mapping/backside_checking", m_BacksideChecking);
-  ros::param::get("/homer_mapping/obstacle_borders", m_ObstacleBorders);
-  ros::param::get("/homer_mapping/measure_sampling_step", m_MeasureSamplingStep);
-  ros::param::get("/homer_mapping/laser_scanner/free_reading_distance", m_FreeReadingDistance);
-
-  m_OccupancyProbability = new float[m_ByteSize];
-  m_MeasurementCount = new unsigned short[m_ByteSize];
-  m_OccupancyCount = new unsigned short[m_ByteSize];
-  m_CurrentChanges = new unsigned char[m_ByteSize];
-  m_InaccessibleCount = new unsigned char[m_ByteSize];
-  m_HighSensitive = new unsigned short[m_ByteSize];
-  for ( unsigned i=0; i<m_ByteSize; i++ )
-  {
-    m_OccupancyProbability[i]=UNKNOWN_LIKELIHOOD;
-    m_OccupancyCount[i]=0;
-    m_MeasurementCount[i]=0;
-    m_CurrentChanges[i]=NO_CHANGE;
-    m_InaccessibleCount[i]=0;
-    m_HighSensitive[i] = 0;
-  }
-
-  m_ExploredRegion=Box2D<int> ( m_PixelSize/2.1, m_PixelSize/2.1, m_PixelSize/1.9, m_PixelSize/1.9 );
-  maximizeChangedRegion();
-  
-  try
-  {
-  	bool got_transform = m_tfListener.waitForTransform("/base_link","/laser", ros::Time(0), ros::Duration(1));
-  	while(!got_transform); 	
-  	{
-  		ROS_ERROR_STREAM("need transformation from base_link to laser!");
-  		got_transform = m_tfListener.waitForTransform("/base_link","/laser", ros::Time(0), ros::Duration(1));
-  	}
-  	
-    m_tfListener.lookupTransform("/base_link", "/laser", ros::Time(0), m_laserTransform);
-  }
-  catch (tf::TransformException ex) {
-      ROS_ERROR_STREAM(ex.what());
-  }
-  
-}
-
-
-OccupancyMap& OccupancyMap::operator= ( const OccupancyMap & occupancyMap )
-{
-  // free allocated memory
-  cleanUp();
-
-  m_Resolution = occupancyMap.m_Resolution;
-  m_ExploredRegion =  occupancyMap.m_ExploredRegion;
-  m_PixelSize = occupancyMap.m_PixelSize;
-  m_ByteSize = occupancyMap.m_ByteSize;
-
-  ros::param::get("/homer_mapping/backside_checking", m_BacksideChecking);
-
-  // re-allocate all arrays
-  m_OccupancyProbability = new float[m_ByteSize];
-  m_MeasurementCount = new unsigned short[m_ByteSize];
-  m_OccupancyCount = new unsigned short[m_ByteSize];
-  m_CurrentChanges = new unsigned char[m_ByteSize];
-  m_InaccessibleCount = new unsigned char[m_ByteSize];
-  m_HighSensitive = new unsigned short[m_ByteSize];
-
-  // copy array data
-  memcpy ( m_OccupancyProbability, occupancyMap.m_OccupancyProbability, m_ByteSize * sizeof ( *m_OccupancyProbability ) );
-  memcpy ( m_MeasurementCount, occupancyMap.m_MeasurementCount, m_ByteSize * sizeof ( *m_MeasurementCount ) );
-  memcpy ( m_OccupancyCount, occupancyMap.m_OccupancyCount, m_ByteSize * sizeof ( *m_OccupancyCount ) );
-  memcpy ( m_CurrentChanges, occupancyMap.m_CurrentChanges, m_ByteSize * sizeof ( *m_CurrentChanges ) );
-  memcpy ( m_InaccessibleCount, occupancyMap.m_InaccessibleCount, m_ByteSize * sizeof ( *m_InaccessibleCount ) );
-  memcpy ( m_HighSensitive, occupancyMap.m_HighSensitive, m_ByteSize * sizeof ( *m_HighSensitive) );
-
-
-  return *this;
-}
-
-int OccupancyMap::width() const
-{
-  return m_PixelSize;
-}
-
-int OccupancyMap::height() const
-{
-  return m_PixelSize;
-}
-
-float OccupancyMap::getOccupancyProbability ( Eigen::Vector2i p )
-{
-  unsigned offset = m_PixelSize * p.y() + p.x();
-  if ( offset > unsigned ( m_ByteSize ) )
-  {
-    return UNKNOWN_LIKELIHOOD;
-  }
-  return m_OccupancyProbability[ offset ];
-}
-
-void OccupancyMap::resetHighSensitive()
-{
-	ROS_INFO_STREAM("High sensitive Areas reseted");
-	m_reset_high = true;
-}
-
-void OccupancyMap::computeOccupancyProbabilities()
-{
-  for ( int y = m_ChangedRegion.minY(); y <= m_ChangedRegion.maxY(); y++ )
-  {
-    int yOffset = m_PixelSize * y;
-    for ( int x = m_ChangedRegion.minX(); x <= m_ChangedRegion.maxX(); x++ )
-    {
-      int i = x + yOffset;
-      if ( m_MeasurementCount[i] > 0 )
-      {
-        m_OccupancyProbability[i] = m_OccupancyCount[i] / static_cast<float>  	( m_MeasurementCount[i] );
-		if (m_HighSensitive[i] == 1)
-		{
-		  if(m_reset_high == true)
-		  {
-		  	m_OccupancyCount[i] = 0;
-		  	m_OccupancyProbability[i] = 0;
-		  }
-		  if(m_MeasurementCount[i] > 20 )
-		  {
-		  	m_MeasurementCount[i] = 10; 	
-		  	m_OccupancyCount[i] = 10 * m_OccupancyProbability[i];
-		  }
-		  if(m_OccupancyProbability[i] > 0.3)
-		  {
-		    m_OccupancyProbability[i] =  1 ; 
-		  }
-		}      
-      }
-      else
-      {
-        m_OccupancyProbability[i] = UNKNOWN_LIKELIHOOD;
-      }
-    }
-  }
-  if(m_reset_high  == true)
-  {
-  	m_reset_high = false;
-  }
-}
-
-void OccupancyMap::insertLaserData ( sensor_msgs::LaserScan::ConstPtr laserData, tf::Transform transform)
-{
-  m_latestMapTransform = transform;
-  markRobotPositionFree();
-  ros::Time stamp = laserData->header.stamp;
-
-  //m_LaserMaxRange = laserData->range_max;
-  m_LaserMinRange = laserData->range_min;
-
-
-  m_LaserPos.x = m_laserTransform.getOrigin().getX();
-  m_LaserPos.y = m_laserTransform.getOrigin().getY();
-
-  std::vector<RangeMeasurement> ranges;
-  ranges.reserve ( laserData->ranges.size() );
-
-  bool errorFound=false;
-  int lastValidIndex=-1;
-  float lastValidRange=m_FreeReadingDistance;
-
-  RangeMeasurement rangeMeasurement;
-  rangeMeasurement.sensorPos = m_LaserPos;
-  
-  for ( unsigned int i = 0; i < laserData->ranges.size(); i++ )
-  {
-    if ( ( laserData->ranges[i] >= m_LaserMinRange ) && ( laserData->ranges[i] <= m_LaserMaxRange ) )
-    {
-      //if we're at the end of an errorneous segment, interpolate
-      //between last valid point and current point
-      if ( errorFound )
-      {
-        //smaller of the two ranges belonging to end points
-        float range = Math::min ( lastValidRange, laserData->ranges[i] );
-        range -= m_Resolution * 2;
-
-        if ( range < m_FreeReadingDistance )
-        {
-          range = m_FreeReadingDistance;
-        }
-        else
-          if ( range > m_LaserMaxRange )
-          {
-            range = m_LaserMaxRange;
-          }
-
-        //choose smaller range
-        for ( unsigned j=lastValidIndex+1; j<i; j++ )
-        {  
-			float alpha = laserData->angle_min + j * laserData->angle_increment;
-			geometry_msgs::Point point;
-			tf::Vector3 pin;
-			tf::Vector3 pout;
-			pin.setX( cos(alpha) * range);
-			pin.setY( sin(alpha) * range);
-			pin.setZ(0);
-
-			pout = m_laserTransform * pin;
-
-			point.x = pout.x();
-			point.y = pout.y();
-
-			rangeMeasurement.endPos = point;
-			rangeMeasurement.free = true;
-			ranges.push_back ( rangeMeasurement );
-        }                             
-      }
-	  float alpha = laserData->angle_min + i * laserData->angle_increment;
-	  geometry_msgs::Point point;
-	  tf::Vector3 pin;
-	  tf::Vector3 pout;
-	  pin.setX( cos(alpha) * laserData->ranges[i]);
-	  pin.setY( sin(alpha) * laserData->ranges[i]);
-	  pin.setZ(0);
-
-	  pout = m_laserTransform * pin;
-
-	  point.x = pout.x();
-	  point.y = pout.y();
-
-	  rangeMeasurement.endPos = point;
-      rangeMeasurement.free = false;
-      ranges.push_back ( rangeMeasurement );
-
-      errorFound=false;
-      lastValidIndex=i;
-      lastValidRange=laserData->ranges[i];
-    }
-    else
-    {
-      errorFound=true;
-    }
-  }
-
-//  if ( errorFound )
-//  {
-//    for ( unsigned j=lastValidIndex+1; j<laserData->ranges.size(); j++ )
-//    {
-//      rangeMeasurement.endPos = map_tools::laser_range_to_point(m_FreeReadingDistance, j, laserData->angle_min, laserData->angle_increment, m_tfListener, laserData->header.frame_id, "/base_link"); //
-
-//      rangeMeasurement.free = true;
-//      ranges.push_back ( rangeMeasurement );
-//    }
-//  }
-
-  insertRanges ( ranges , laserData->header.stamp);
-}
-
-
-void OccupancyMap::insertRanges ( vector<RangeMeasurement> ranges, ros::Time stamp )
-{
-  clearChanges();
-
-  Eigen::Vector2i lastEndPixel;
-
-  //paint safety borders
-  if ( m_ObstacleBorders )
-  {
-    for ( unsigned i=0; i<ranges.size(); i++ )
-    {
-      geometry_msgs::Point endPosWorld = map_tools::transformPoint(ranges[i].endPos, m_latestMapTransform);
-      Eigen::Vector2i endPixel = map_tools::toMapCoords(endPosWorld, m_Origin, m_Resolution);
-
-      for ( int y=endPixel.y()-1; y <= endPixel.y() +1; y++ )
-      {
-        for ( int x=endPixel.x()-1; x <= endPixel.x() +1; x++ )
-        {
-          unsigned offset=x+m_PixelSize*y;
-          if ( offset < unsigned ( m_ByteSize ) )
-          {
-            m_CurrentChanges[ offset ] = SAFETY_BORDER;
-          }
-        }
-      }
-    }
-  }
-  //paint safety ranges
-  for ( unsigned i=0; i<ranges.size(); i++ )
-  {
-      geometry_msgs::Point startPosWorld = map_tools::transformPoint(ranges[i].endPos, m_latestMapTransform);
-      Eigen::Vector2i startPixel = map_tools::toMapCoords(startPosWorld, m_Origin, m_Resolution);
-    geometry_msgs::Point endPos;
-    endPos.x = ranges[i].endPos.x * 4;
-    endPos.y = ranges[i].endPos.y * 4;
-
-    geometry_msgs::Point endPosWorld = map_tools::transformPoint(endPos, m_latestMapTransform);
-    Eigen::Vector2i endPixel = map_tools::toMapCoords(endPosWorld, m_Origin, m_Resolution);
-
-
-    if(endPixel.x() < 0) endPixel.x() = 0;
-    if(endPixel.y() < 0) endPixel.y() = 0;
-    if(endPixel.x() >= m_PixelSize) endPixel.x() = m_PixelSize - 1;
-    if(endPixel.y() >= m_PixelSize) endPixel.y() = m_PixelSize - 1;
-
-    drawLine ( m_CurrentChanges, startPixel, endPixel, SAFETY_BORDER );
-  }
-
-  //paint end pixels
-  for ( unsigned i=0; i<ranges.size(); i++ )
-  {
-    if ( !ranges[i].free )
-    {
-      geometry_msgs::Point endPosWorld = map_tools::transformPoint(ranges[i].endPos, m_latestMapTransform);
-      Eigen::Vector2i endPixel = map_tools::toMapCoords(endPosWorld, m_Origin, m_Resolution);
-
-      if ( endPixel != lastEndPixel )
-      {
-        unsigned offset = endPixel.x() + m_PixelSize * endPixel.y();
-        if ( offset < m_ByteSize )
-        {
-          m_CurrentChanges[ offset ] = ::OCCUPIED;
-        }
-      }
-      lastEndPixel=endPixel;
-      }
-  }
-
-  //paint free ranges
-  geometry_msgs::Point sensorPosWorld = map_tools::transformPoint(ranges[0].sensorPos, m_latestMapTransform);
-  Eigen::Vector2i sensorPixel = map_tools::toMapCoords(sensorPosWorld, m_Origin, m_Resolution);
-  
-  for ( unsigned i=0; i<ranges.size(); i++ )
-  {
-    geometry_msgs::Point endPosWorld = map_tools::transformPoint(ranges[i].endPos, m_latestMapTransform);
-    Eigen::Vector2i endPixel = map_tools::toMapCoords(endPosWorld, m_Origin, m_Resolution);
-
-    m_ChangedRegion.enclose ( sensorPixel.x(), sensorPixel.y() );
-    m_ChangedRegion.enclose ( endPixel.x(), endPixel.y() );
-
-    if ( endPixel != lastEndPixel )
-    {
-        drawLine ( m_CurrentChanges, sensorPixel, endPixel, ::FREE );
-    }
-
-    lastEndPixel=endPixel;
-  }
-
-  m_ChangedRegion.clip ( Box2D<int> ( 0,0,m_PixelSize-1,m_PixelSize-1 ) );
-  m_ExploredRegion.enclose ( m_ChangedRegion );
-  applyChanges();
-  computeOccupancyProbabilities();
-}
-
-double OccupancyMap::contrastFromProbability ( int8_t prob )
-{
-  // range from 0..126 (=127 values) and 128..255 (=128 values)
-  double diff = ( ( double ) prob - UNKNOWN );
-  double contrast;
-  if ( prob <= UNKNOWN )
-  {
-    contrast = ( diff / UNKNOWN ); // 0..1
-  }
-  else
-  {
-    contrast = ( diff / ( UNKNOWN+1 ) );  // 0..1
-  }
-  return ( contrast * contrast );
-}
-
-double OccupancyMap::evaluateByContrast()
-{
-  double contrastSum = 0.0;
-  unsigned int contrastCnt = 0;
-
-  for ( int y = m_ExploredRegion.minY(); y <= m_ExploredRegion.maxY(); y++ )
-  {
-    for ( int x = m_ExploredRegion.minX(); x <= m_ExploredRegion.maxX(); x++ )
-    {
-      int i = x + y * m_PixelSize;
-      if ( m_MeasurementCount [i] > 1 )
-      {
-        int prob = m_OccupancyProbability[i] * 100;
-        if ( prob != NOT_SEEN_YET ) // ignore not yet seen cells
-        {
-          contrastSum += contrastFromProbability ( prob );
-          contrastCnt++;
-        }
-      }
-    }
-  }
-  if ( ( contrastCnt ) > 0 )
-  {
-    return ( ( contrastSum / contrastCnt ) * 100 );
-  }
-  return ( 0 );
-}
-
-
-
-vector<MeasurePoint> OccupancyMap::getMeasurePoints (sensor_msgs::LaserScanConstPtr laserData)
-{
-  vector<MeasurePoint> result;
-  result.reserve ( laserData->ranges.size() );
-
-  double minDist = m_MeasureSamplingStep;
-
-  //m_LaserMaxRange = laserData->range_max;
-  m_LaserMinRange = laserData->range_min;
-
-  Point2D lastHitPos;
-  Point2D lastUsedHitPos;
-
-  //extract points for measuring
-  for ( unsigned int i=0; i < laserData->ranges.size(); i++ )
-  {
-    if ( laserData->ranges[i] <= m_LaserMaxRange && laserData->ranges[i] >= m_LaserMinRange )
-    {
-		float alpha = laserData->angle_min + i * laserData->angle_increment;
-		tf::Vector3 pin;
-		tf::Vector3 pout;
-		pin.setX( cos(alpha) * laserData->ranges[i]);
-		pin.setY( sin(alpha) * laserData->ranges[i]);
-		pin.setZ(0);
-
-		pout = m_laserTransform * pin;
-        
-        Point2D hitPos(pout.x(), pout.y());
-
-      if ( hitPos.distance ( lastUsedHitPos ) >= minDist )
-      {
-        MeasurePoint p;
-        //preserve borders of segments
-        if ( ( i!=0 ) &&
-                ( lastUsedHitPos.distance ( lastHitPos ) > m_Resolution*0.5 ) &&
-                ( hitPos.distance ( lastHitPos ) >= minDist*1.5 ) )
-        {
-          p.hitPos = lastHitPos;
-          p.borderType = RightBorder;
-          result.push_back ( p );
-          p.hitPos = hitPos;
-          p.borderType = LeftBorder;
-          result.push_back ( p );
-          lastUsedHitPos = hitPos;
-        }
-        else
-        {
-          //save current point
-          p.hitPos = hitPos;
-          p.borderType = NoBorder;
-          result.push_back ( p );
-          lastUsedHitPos = hitPos;
-        }
-      }
-      lastHitPos = hitPos;
-    }
-  }
-
-  //the first and last one are border pixels
-  if ( result.size() > 0 )
-  {
-    result[0].borderType = LeftBorder;
-    result[result.size()-1].borderType = RightBorder;
-  }
-
-  //calculate front check points
-  for ( unsigned i=0; i < result.size(); i++ )
-  {
-    CVec2 diff;
-
-    switch ( result[i].borderType )
-    {
-      case NoBorder:
-        diff = result[i-1].hitPos - result[i+1].hitPos;
-        break;
-      case LeftBorder:
-        diff = result[i].hitPos - result[i+1].hitPos;
-        break;
-      case RightBorder:
-        diff = result[i-1].hitPos - result[i].hitPos;
-        break;
-    }
-
-    CVec2 normal = diff.rotate ( Math::Pi * 0.5 );
-    normal.normalize();
-    normal *= m_Resolution * sqrt ( 2.0 ) * 10.0;
-
-    result[i].frontPos = result[i].hitPos + normal;
-  }
-
-  return result;
-}
-
-
-float OccupancyMap::computeScore ( Pose robotPose, std::vector<MeasurePoint> measurePoints )
-{
-  // This is a very simple implementation, using only the end point of the beam.
-  // For every beam the end cell is computed and tested if the cell is occupied.
-  unsigned lastOffset=0;
-  unsigned hitOffset=0;
-  unsigned frontOffset=0;
-  float fittingFactor = 0.0;
-
-  float sinTheta = sin ( robotPose.theta() );
-  float cosTheta = cos ( robotPose.theta() );
-
-  for ( unsigned int i = 0; i < measurePoints.size(); i++ )
-  {
-    //fast variant:
-    float x = cosTheta * measurePoints[i].hitPos.x() - sinTheta * measurePoints[i].hitPos.y() + robotPose.x();
-    float y = sinTheta * measurePoints[i].hitPos.x() + cosTheta * measurePoints[i].hitPos.y() + robotPose.y();
-    geometry_msgs::Point hitPos;
-    hitPos.x = x;
-    hitPos.y = y;
-
-    Eigen::Vector2i hitPixel = map_tools::toMapCoords(hitPos, m_Origin, m_Resolution);
-    hitOffset = hitPixel.x() + m_PixelSize*hitPixel.y();
-
-    //avoid multiple measuring of same pixel or unknown pixel
-    if ( ( hitOffset == lastOffset ) || ( hitOffset >= unsigned ( m_ByteSize ) ) || ( m_MeasurementCount[hitOffset] == 0 ) )
-    {
-      continue;
-    }
-
-    if ( m_BacksideChecking )
-    {
-      //avoid matching of back and front pixels of obstacles
-      x = cosTheta * measurePoints[i].frontPos.x() - sinTheta * measurePoints[i].frontPos.y() + robotPose.x();
-      y = sinTheta * measurePoints[i].frontPos.x() + cosTheta * measurePoints[i].frontPos.y() + robotPose.y();
-      geometry_msgs::Point frontPos;
-      frontPos.x = x;
-      frontPos.y = y;
-
-      Eigen::Vector2i frontPixel = map_tools::toMapCoords(frontPos, m_Origin, m_Resolution);
-      frontOffset = frontPixel.x() + m_PixelSize*frontPixel.y();
-
-      if ( ( frontOffset >= unsigned ( m_ByteSize ) ) || ( m_MeasurementCount[frontOffset] == 0 ) )
-      {
-        continue;
-      }
-    }
-
-    lastOffset=hitOffset;
-    //fittingFactor += m_SmoothOccupancyProbability[ offset ];
-    fittingFactor += m_OccupancyProbability[ hitOffset ];
-  }
-  return fittingFactor;
-}
-
-
-template<class DataT>
-void OccupancyMap::drawLine ( DataT* data, Eigen::Vector2i& startPixel, Eigen::Vector2i& endPixel, char value )
-{
-
-  //bresenham algorithm
-  int xstart = startPixel.x();
-  int ystart = startPixel.y();
-  int xend = endPixel.x();
-  int yend = endPixel.y();
-
-  int x, y, t, dist, xerr, yerr, dx, dy, incx, incy;
-  // compute distances
-  dx = xend - xstart;
-  dy = yend - ystart;
-
-  // compute increment
-  if ( dx < 0 )
-  {
-    incx = -1;
-    dx = -dx;
-  }
-  else
-  {
-    incx = dx ? 1 : 0;
-  }
-
-  if ( dy < 0 )
-  {
-    incy = -1;
-    dy = -dy;
-  }
-  else
-  {
-    incy = dy ? 1 : 0;
-  }
-
-  // which distance is greater?
-  dist = ( dx > dy ) ? dx : dy;
-  // initializing
-  x = xstart;
-  y = ystart;
-  xerr = dx;
-  yerr = dy;
-
-  // compute cells
-  for ( t = 0; t < dist; t++ )
-  {
-    int index = x + m_PixelSize * y;
-    // set flag to free if no flag is set
-    // (do not overwrite occupied cells)
-    if(index < 0) continue;
-    if ( data[index] == NO_CHANGE )
-    {
-      data[index] = value;
-    }
-/*    if ( data[index] == OCCUPIED || data[index] == SAFETY_BORDER )
-    {
-      return;
-    }*/
-    xerr += dx;
-    yerr += dy;
-    if ( xerr > dist )
-    {
-      xerr -= dist;
-      x += incx;
-    }
-    if ( yerr > dist )
-    {
-      yerr -= dist;
-      y += incy;
-    }
-  }
-}
-
-
-void OccupancyMap::applyChanges()
-{
-  for ( int y = m_ChangedRegion.minY(); y <= m_ChangedRegion.maxY(); y++ )
-  {
-    int yOffset = m_PixelSize * y;
-    for ( int x = m_ChangedRegion.minX(); x <= m_ChangedRegion.maxX(); x++ )
-    {
-      int i = x + yOffset;
-      if ( ( m_CurrentChanges[i] == ::FREE || m_CurrentChanges[i] == ::OCCUPIED ) && m_MeasurementCount[i] < SHRT_MAX )
-      {
-        m_MeasurementCount[i]++;
-      }
-      if ( m_CurrentChanges[i] == ::OCCUPIED && m_OccupancyCount[i] < USHRT_MAX )
-      {
-        m_OccupancyCount[i]++;
-      }
-    }
-  }
-}
-
-void OccupancyMap::clearChanges()
-{
-  m_ChangedRegion.expand ( 2 );
-  m_ChangedRegion.clip ( Box2D<int> ( 0,0,m_PixelSize-1,m_PixelSize-1 ) );
-  for ( int y = m_ChangedRegion.minY(); y <= m_ChangedRegion.maxY(); y++ )
-  {
-    int yOffset = m_PixelSize * y;
-    for ( int x = m_ChangedRegion.minX(); x <= m_ChangedRegion.maxX(); x++ )
-    {
-      int i = x + yOffset;
-      m_CurrentChanges[i] = NO_CHANGE;
-    }
-  }
-  m_ChangedRegion=Box2D<int> ( m_PixelSize - 1, m_PixelSize - 1, 0, 0 );
-}
-
-void OccupancyMap::incrementMeasurementCount ( Eigen::Vector2i p )
-{
-  unsigned index = p.x() + m_PixelSize * p.y();
-  if ( index < m_ByteSize )
-  {
-    if ( m_CurrentChanges[index] == NO_CHANGE && m_MeasurementCount[index] < USHRT_MAX )
-    {
-      m_CurrentChanges[index] = ::FREE;
-      m_MeasurementCount[index]++;
-    }
-  }
-  else
-  {
-    ROS_ERROR( "Index out of bounds: x = %d, y = %d", p.x(), p.y() );
-  }
-}
-
-void OccupancyMap::incrementOccupancyCount ( Eigen::Vector2i p )
-{
-  int index = p.x() + m_PixelSize * p.y();
-  if ( ( m_CurrentChanges[index] == NO_CHANGE || m_CurrentChanges[index] == ::FREE ) && m_MeasurementCount[index] < USHRT_MAX )
-  {
-    m_CurrentChanges[index] = ::OCCUPIED;
-    m_OccupancyCount[index]++;
-  }
-}
-
-void OccupancyMap::scaleDownCounts ( int maxCount )
-{
-  clearChanges();
-  if ( maxCount <= 0 )
-  {
-    ROS_WARN("WARNING: argument maxCount is choosen to small, resetting map.");
-    memset ( m_MeasurementCount, 0, m_ByteSize );
-    memset ( m_OccupancyCount, 0, m_ByteSize );
-    memset ( m_InaccessibleCount, 0, m_ByteSize );
-  }
-  else
-  {
-    for ( unsigned i = 0; i < m_ByteSize; i++ )
-    {
-      int scalingFactor = m_MeasurementCount[i] / maxCount;
-      if ( scalingFactor != 0 )
-      {
-        m_MeasurementCount[i] /= scalingFactor;
-        m_OccupancyCount[i] /= scalingFactor;
-        m_InaccessibleCount[i] /= scalingFactor;
-      }
-      if ( m_InaccessibleCount[i] > maxCount )
-      {
-        m_InaccessibleCount[i] = maxCount;
-      }
-    }
-  }
-  maximizeChangedRegion();
-  applyChanges();
-  computeOccupancyProbabilities();
-}
-
-
-void OccupancyMap::markRobotPositionFree()
-{
-  geometry_msgs::Point point;
-  point.x = 0;
-  point.y = 0;
-  point.z = 0;
-  geometry_msgs::Point endPosWorld = map_tools::transformPoint(point, m_latestMapTransform);
-  Eigen::Vector2i robotPixel = map_tools::toMapCoords(endPosWorld, m_Origin, m_Resolution);
-
-  int width = 0.4 / m_Resolution;
-  for ( int i = robotPixel.y() - width; i <= robotPixel.y() + width; i++ )
-  {
-    for ( int j = robotPixel.x() - width; j <= robotPixel.x() + width; j++ )
-    {
-      incrementMeasurementCount ( Eigen::Vector2i ( i, j ) );
-    }
-  }
-  Box2D<int> robotBox ( robotPixel.x()-width, robotPixel.y()-width, robotPixel.x() +width, robotPixel.y() +width );
-  m_ChangedRegion.enclose ( robotBox );
-  m_ExploredRegion.enclose ( robotBox );
-}
-
-
-QImage OccupancyMap::getProbabilityQImage ( int trancparencyThreshold, bool showInaccessible ) const
-{
-  QImage retImage ( m_PixelSize, m_PixelSize, QImage::Format_RGB32 );
-  for ( int y = 0; y < m_PixelSize; y++ )
-  {
-    for ( int x = 0; x < m_PixelSize; x++ )
-    {
-      int index = x + y * m_PixelSize;
-      int value = UNKNOWN;
-      if ( m_MeasurementCount[index] > 0 )
-      {
-        value = static_cast<int> ( ( 1.0 - m_OccupancyProbability[index] ) * 255 );
-        if ( m_MeasurementCount[index] < trancparencyThreshold )
-        {
-          value = static_cast<int> ( ( 0.75 + 0.025 * m_MeasurementCount[index] ) * ( 1.0 - m_OccupancyProbability[index] ) * 255 );
-        }
-      }
-      if ( showInaccessible && m_InaccessibleCount[index] >= 2 )
-      {
-        value = 0;
-      }
-      retImage.setPixel ( x, y, qRgb ( value, value, value ) );
-    }
-  }
-  return retImage;
-}
-
-void OccupancyMap::getOccupancyProbabilityImage ( vector<int8_t>& data, int& width, int& height, float& resolution )
-{
-  width = m_PixelSize;
-  height = m_PixelSize;
-  resolution = m_Resolution;
-  data.resize(m_PixelSize * m_PixelSize);
-  std::fill(data.begin(), data.end(), (int8_t)NOT_SEEN_YET); //note: linker error without strange cast from int8_t to int8_t
-  for ( int y = m_ExploredRegion.minY(); y <= m_ExploredRegion.maxY(); y++ )
-  {
-    int yOffset = m_PixelSize * y;
-    for ( int x = m_ExploredRegion.minX(); x <= m_ExploredRegion.maxX(); x++ )
-    {
-      int i = x + yOffset;
-      if ( m_MeasurementCount[i] < 1 )
-      {
-        continue;
-      }
-      // set inaccessible points to black
-      if ( m_InaccessibleCount[i] >= 2 )
-      {
-        data[i] = 99;
-        continue;
-      }
-      if(m_OccupancyProbability[i] == UNKNOWN_LIKELIHOOD)
-      {
-          data[i] = NOT_SEEN_YET;
-      }
-      else
-      {
-        data[i] = (int)(m_OccupancyProbability[i] * 99); //TODO maybe - 2 (or *0.99 or smth)
-      }
-    }
-  }
-}
-
-void OccupancyMap::maximizeChangedRegion()
-{
-  m_ChangedRegion=m_ExploredRegion;
-}
-
-void OccupancyMap::applyMasking(const nav_msgs::OccupancyGrid::ConstPtr &msg)
-{
-    if(msg->data.size() != m_ByteSize)
-    {
-        ROS_ERROR_STREAM("Size Mismatch between SLAM map (" << m_ByteSize << ") and masking map (" << msg->data.size() << ")");
-        return;
-    }
-    for(size_t y = 0; y < msg->info.height; y++)
-    {
-        int yOffset = msg->info.width * y;
-        for(size_t x = 0; x < msg->info.width; x++)
-        {
-            int i = yOffset + x;
-
-            switch(msg->data[i])
-            {
-            case homer_mapnav_msgs::ModifyMap::BLOCKED:
-            case homer_mapnav_msgs::ModifyMap::OBSTACLE:
-                //increase measure count of cells which were not yet visible to be able to modify unknown areas
-                if(m_MeasurementCount[i] == 0)
-                    m_MeasurementCount[i] = 10;
-
-                m_OccupancyCount[i] = m_MeasurementCount[i];
-                m_OccupancyProbability[i] = 1.0;
-                m_ExploredRegion.enclose(x, y);
-                break;
-            case homer_mapnav_msgs::ModifyMap::FREE:
-                //see comment above
-                if(m_MeasurementCount[i] == 0)
-                    m_MeasurementCount[i] = 10;
-
-                m_OccupancyCount[i] = 0;
-                m_OccupancyProbability[i] = 0.0;
-                m_ExploredRegion.enclose(x, y);
-                break;
-            case homer_mapnav_msgs::ModifyMap::HIGH_SENSITIV:
-            	m_HighSensitive[i] = 1;
-                break;
-            }
-        }
-    }
-}
-
-void OccupancyMap::cleanUp()
-{
-  if ( m_OccupancyProbability )
-  {
-    delete[] m_OccupancyProbability;
-  }
-  if ( m_MeasurementCount )
-  {
-    delete[] m_MeasurementCount;
-  }
-  if ( m_OccupancyCount )
-  {
-    delete[] m_OccupancyCount;
-  }
-  if ( m_CurrentChanges )
-  {
-    delete[] m_CurrentChanges;
-  }
-  if ( m_InaccessibleCount )
-  {
-    delete[] m_InaccessibleCount;
-  }
-  if ( m_HighSensitive ) 
-  {
-    delete[] m_HighSensitive;
-  }
-}
diff --git a/homer_mapping/src/ParticleFilter/HyperSlamFilter.cpp b/homer_mapping/src/ParticleFilter/HyperSlamFilter.cpp
deleted file mode 100755
index 7265b0ea..00000000
--- a/homer_mapping/src/ParticleFilter/HyperSlamFilter.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-#include <homer_mapping/ParticleFilter/HyperSlamFilter.h>
-
-#include <vector>
-#include <cmath>
-#include <fstream>
-#include <sstream>
-#include <stdlib.h>
-
-#include "ros/ros.h"
-
-using namespace std;
-
-HyperSlamFilter::HyperSlamFilter (int particleFilterNum, int particleNum )
-{
-  m_ParticleFilterNum = particleFilterNum;
-        if ( m_ParticleFilterNum < 1 )
-        {
-                m_ParticleFilterNum = 1;
-        }
-  ROS_DEBUG( "Using %d Hyper Particles.", particleFilterNum);
-
-  m_ParticleNum = particleNum;
-
-        m_DoMapping = true;
-
-  m_DeletionThreshold = 0.98;
-
-  for ( unsigned i=0; i < m_ParticleFilterNum; i++ )
-  {
-    ostringstream stream;
-    stream << "SlamFilter " << i;
-    SlamFilter *slamFilter = new SlamFilter ( particleNum );
-    m_SlamFilters.push_back ( slamFilter );
-  }
-
-  m_BestSlamFilter = m_SlamFilters[0];
-}
-
-HyperSlamFilter::~HyperSlamFilter()
-{
-  for (unsigned i = 0; i < m_ParticleFilterNum; i++)
-  {
-    if( m_SlamFilters[i] )
-    {
-      delete m_SlamFilters[i];
-      m_SlamFilters[i] = 0;
-    }
-  }
-}
-
-void HyperSlamFilter::setRotationErrorRotating ( float percent )
-{
-   for ( unsigned i=0; i < m_SlamFilters.size(); i++ )
-   {
-     m_SlamFilters[i]->setRotationErrorRotating(percent / 100.0);
-   }
-}
-
-void HyperSlamFilter::setRotationErrorTranslating ( float degreePerMeter )
-{
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    m_SlamFilters[i]->setRotationErrorTranslating(degreePerMeter / 180.0 * M_PI);
-  }
-}
-
-void HyperSlamFilter::setTranslationErrorTranslating ( float percent )
-{
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    m_SlamFilters[i]->setTranslationErrorTranslating(percent / 100.0);
-  }
-}
-
-void HyperSlamFilter::setTranslationErrorRotating ( float mPerDegree )
-{
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    m_SlamFilters[i]->setTranslationErrorRotating( mPerDegree / 180.0 * M_PI );
-  }
-}
-
-void HyperSlamFilter::setMoveJitterWhileTurning ( float mPerDegree )
-{
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    m_SlamFilters[i]->setMoveJitterWhileTurning( mPerDegree / 180.0 * M_PI );
-  }
-}
-
-void HyperSlamFilter::setScanMatchingClusterSize ( float minClusterSize )
-{
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    m_SlamFilters[i]->setScanMatchingClusterSize( minClusterSize );
-  }
-}
-
-void HyperSlamFilter::resetHigh()
-{
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    m_SlamFilters[i]->resetHigh();
-  }
-}
-
-void HyperSlamFilter::setMapping ( bool doMapping )
-{
-    m_DoMapping = doMapping;
-}
-
-void HyperSlamFilter:: setOccupancyMap ( OccupancyMap* occupancyMap )
-{
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    m_SlamFilters[i]->setOccupancyMap( occupancyMap );
-  }
-}
-
-void HyperSlamFilter::setRobotPose ( Pose pose, double scatterVarXY, double scatterVarTheta )
-{
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    m_SlamFilters[i]->setRobotPose(pose, scatterVarXY, scatterVarTheta);
-  }
-}
-
-void HyperSlamFilter::filter ( Pose currentPose, sensor_msgs::LaserScanConstPtr laserData, ros::Time measurementTime, ros::Duration &filterDuration)
-{
-  //call filter methods of all particle filters
-  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-  {
-    bool randOnOff;
-
-	if(m_SlamFilters.size() == 1)
-	{
-		randOnOff = true;
-	}
-	else
-	{
-		//if mapping is on, switch on with 80% probability to introduce some randomness in different particle filters
-		randOnOff = (rand() % 100) < 80;
-	}
-    m_SlamFilters[i]->setMapping( m_DoMapping && randOnOff );
-    m_SlamFilters[i]->filter(currentPose, laserData, measurementTime, filterDuration);
-	   	
-  }
-  if(m_SlamFilters.size() != 1)
-  {
-	  //determine which map has the best/worst contrast
-	  double bestContrast = 0.0;
-	  static unsigned int bestFilter = 0;
-	  double worstContrast = 100.0;
-	  static unsigned int worstFilter = 0;
-
-	  for ( unsigned int i=0; i < m_SlamFilters.size(); i++ )
-	  {
-		double contrast = m_SlamFilters[i]->evaluateByContrast();
-		            {
-		                    if( contrast > bestContrast )
-		                    {
-		                            bestContrast = contrast;
-		                            bestFilter = i;
-		                    }
-		                    if ( contrast < worstContrast )
-		                    {
-		                            worstContrast = contrast;
-		                            worstFilter = i;
-		                    }
-		            }
-	  }
-
-	  // set best filter
-	  SlamFilter* lastBestFilter = m_BestSlamFilter;
-	  m_BestSlamFilter = m_SlamFilters[bestFilter];
-
-	  if ( m_BestSlamFilter != lastBestFilter )
-	  {
-		ROS_INFO( "Switched to best filter %d (bestContrast: %f) -- the worst filter is %d (worstContrast: %f)", bestFilter, bestContrast, worstFilter, worstContrast); //TODO
-	  }
-
-	  if ( bestFilter != worstFilter )
-	  {
-		if ( worstContrast < ( bestContrast * m_DeletionThreshold ) )
-		{
-		  // replace the worst filter by the one with the best contrast
-		  delete m_SlamFilters[worstFilter];
-		  m_SlamFilters[worstFilter] = new SlamFilter ( * m_SlamFilters [bestFilter] );
-		}
-	  }
-   }
-}
-
-SlamFilter* HyperSlamFilter::getBestSlamFilter()
-{
-  return m_BestSlamFilter;
-}
-
-void HyperSlamFilter::setDeletionThreshold(double deletionThreshold)
-{
-  m_DeletionThreshold = deletionThreshold;
-}
diff --git a/homer_mapping/src/ParticleFilter/Particle.cpp b/homer_mapping/src/ParticleFilter/Particle.cpp
deleted file mode 100644
index 1d64cf73..00000000
--- a/homer_mapping/src/ParticleFilter/Particle.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <homer_mapping/ParticleFilter/Particle.h>
-
-Particle::Particle(float weight, int id) {
-  m_Weight = weight;
-  m_Id = id;
-}
-
-Particle::~Particle() {
-}
-
diff --git a/homer_mapping/src/ParticleFilter/SlamFilter.cpp b/homer_mapping/src/ParticleFilter/SlamFilter.cpp
deleted file mode 100644
index 628ae187..00000000
--- a/homer_mapping/src/ParticleFilter/SlamFilter.cpp
+++ /dev/null
@@ -1,662 +0,0 @@
-#include <homer_mapping/ParticleFilter/SlamFilter.h>
-#include <omp.h>
-
-// minimum move for translation in m
-const float MIN_MOVE_DISTANCE2 = 0.001 * 0.001;
-// minimum turn in radiants
-const float MIN_TURN_DISTANCE2 = 0.001 * 0.001;
-
-const float M_2PI = 2 * M_PI;
-
-SlamFilter::SlamFilter ( int particleNum ) : ParticleFilter<SlamParticle> ( particleNum )
-{
-
-  m_OccupancyMap = new OccupancyMap();
-  // generate initial particles
-  for ( int i = 0; i < m_ParticleNum; i++ )
-  {
-    m_CurrentList[i] = new SlamParticle();
-    m_LastList[i] = new SlamParticle();
-  }
-
-  float rotationErrorRotating = 0.0;
-  ros::param::get("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating);
-  float rotationErrorTranslating = 0.0;
-  ros::param::get("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating);
-  float translationErrorTranslating = 0.0;
-  ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorTranslating);
-  float translationErrorRotating = 0.0;
-  ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorRotating);
-  float moveJitterWhileTurning = 0.0;
-  ros::param::get("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning);
-  ros::param::get("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond);
-
-  int updateMinMoveAngleDegrees;
-  ros::param::get("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees);
-  m_UpdateMinMoveAngle = Math::deg2Rad(updateMinMoveAngleDegrees);
-  ros::param::get("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance);
-  double maxUpdateInterval;
-  ros::param::get("/particlefilter/max_update_interval", maxUpdateInterval);
-  m_MaxUpdateInterval = ros::Duration(maxUpdateInterval);
-
-  setRotationErrorRotating ( rotationErrorRotating );
-  setRotationErrorTranslating ( rotationErrorTranslating );
-  setTranslationErrorTranslating ( translationErrorTranslating );
-  setTranslationErrorRotating ( translationErrorRotating );
-  setMoveJitterWhileTurning ( moveJitterWhileTurning );
-
-  m_FirstRun = true;
-  m_DoMapping = true;
-
-  m_EffectiveParticleNum = m_ParticleNum;
-  m_LastUpdateTime = ros::Time(0);
-}
-
-SlamFilter::SlamFilter ( SlamFilter& slamFilter ) : ParticleFilter<SlamParticle> ( slamFilter.m_ParticleNum )
-{
-  m_OccupancyMap = new OccupancyMap ( * ( slamFilter.m_OccupancyMap ) );
-  // generate initial particles
-  for ( int i = 0; i < m_ParticleNum; i++ )
-  {
-    if ( slamFilter.m_CurrentList[i] == 0 )
-    {
-      m_CurrentList[i]=0;
-    }
-    else
-    {
-      m_CurrentList[i] = new SlamParticle ( * ( slamFilter.m_CurrentList[i] ) );
-    }
-    if ( slamFilter.m_LastList[i] == 0 )
-    {
-      m_LastList[i]=0;
-    }
-    else
-    {
-      m_LastList[i] = new SlamParticle ( * ( slamFilter.m_LastList[i] ) );
-    }
-  }
-
-  float rotationErrorRotating = 0.0;
-  ros::param::get("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating);
-  float rotationErrorTranslating = 0.0;
-  ros::param::get("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating);
-  float translationErrorTranslating = 0.0;
-  ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorTranslating);
-  float translationErrorRotating = 0.0;
-  ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorRotating);
-  float moveJitterWhileTurning = 0.0;
-  ros::param::get("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning);
-  ros::param::get("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond);
-
-  int updateMinMoveAngleDegrees;
-  ros::param::get("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees);
-  m_UpdateMinMoveAngle = Math::deg2Rad(updateMinMoveAngleDegrees);
-  ros::param::get("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance);
-  double maxUpdateInterval;
-  ros::param::get("/particlefilter/max_update_interval", maxUpdateInterval);
-  m_MaxUpdateInterval = ros::Duration(maxUpdateInterval);
-
-  setRotationErrorRotating ( rotationErrorRotating );
-  setRotationErrorTranslating ( rotationErrorTranslating );
-  setTranslationErrorTranslating ( translationErrorTranslating );
-  setTranslationErrorRotating ( translationErrorRotating );
-  setMoveJitterWhileTurning ( moveJitterWhileTurning );
-
-  m_FirstRun = slamFilter.m_FirstRun;
-  m_DoMapping = slamFilter.m_DoMapping;
-
-  m_EffectiveParticleNum = slamFilter.m_EffectiveParticleNum;
-
-  m_LastUpdateTime = slamFilter.m_LastUpdateTime;
-
-  m_ReferencePoseOdometry = slamFilter.m_ReferencePoseOdometry;
-  m_ReferenceMeasurementTime = slamFilter.m_ReferenceMeasurementTime;
-}
-
-
-SlamFilter::~SlamFilter()
-{
-  if ( m_OccupancyMap )
-  {
-    delete m_OccupancyMap;
-  }
-  for ( int i = 0; i < m_ParticleNum; i++ )
-  {
-    if ( m_CurrentList[i] )
-    {
-      delete m_CurrentList[i];
-      m_CurrentList[i] = 0;
-    }
-    if ( m_LastList[i] )
-    {
-      delete m_LastList[i];
-      m_LastList[i] = 0;
-    }
-  }
-}
-
-
-void SlamFilter::setRotationErrorRotating ( float percent )
-{
-  m_Alpha1 = percent / 100.0;
-}
-
-void SlamFilter::resetHigh()
-{
-  m_OccupancyMap->resetHighSensitive();
-}
-
-void SlamFilter::setRotationErrorTranslating ( float degreePerMeter )
-{
-  m_Alpha2 = degreePerMeter / 180.0 * M_PI;
-}
-
-void SlamFilter::setTranslationErrorTranslating ( float percent )
-{
-  m_Alpha3 = percent / 100.0;
-}
-
-void SlamFilter::setTranslationErrorRotating ( float mPerDegree )
-{
-  m_Alpha4 = mPerDegree / 180.0 * M_PI;
-}
-
-void SlamFilter::setMoveJitterWhileTurning ( float mPerDegree )
-{
-  m_Alpha5 = mPerDegree / 180.0 * M_PI;
-}
-
-void SlamFilter::setScanMatchingClusterSize ( float minClusterSize )
-{
-  minClusterSize = minClusterSize;
-}
-
-void SlamFilter::setMapping ( bool doMapping )
-{
-  m_DoMapping = doMapping;
-}
-
-void SlamFilter:: setOccupancyMap ( OccupancyMap* occupancyMap )
-{
-    //delete old
-  if ( m_OccupancyMap )
-  {
-    delete m_OccupancyMap;
-  }
-        //copy
-  m_OccupancyMap = occupancyMap;
-}
-
-
-vector<Pose>* SlamFilter::getParticlePoses() const
-{
-  vector<Pose>* particlePoses = new vector<Pose>();
-  for ( int i = 0; i < m_ParticleNum; i++ )
-  {
-    float robotX, robotY, robotTheta;
-    SlamParticle* particle = m_CurrentList[i];
-    particle->getRobotPose ( robotX, robotY, robotTheta );
-    particlePoses->push_back ( Pose ( robotX, robotY, robotTheta ) );
-  }
-  return particlePoses;
-}
-
-vector<SlamParticle*>* SlamFilter::getParticles() const
-{
-  vector<SlamParticle*>* particles = new vector<SlamParticle*>();
-  for ( int i = 0; i < m_ParticleNum; i++ )
-  {
-    SlamParticle* particle = m_CurrentList[i];
-    particles->push_back ( particle );
-  }
-  return particles;
-}
-
-void SlamFilter::setRobotPose ( Pose pose, double scatterVarXY, double scatterVarTheta )
-{
-  // set first particle to exact position
-  m_CurrentList[0]->setRobotPose ( pose.x(), pose.y(), pose.theta() );
-  m_LastList[0]->setRobotPose ( pose.x(), pose.y(), pose.theta() );
-  // scatter remaining particles
-  for ( int i = 1; i < m_ParticleNum; ++i )
-  {
-    const double scatterX = randomGauss() * scatterVarXY;
-    const double scatterY = randomGauss() * scatterVarXY;
-    const double scatterTheta = randomGauss() * scatterVarTheta;
-
-    m_CurrentList[i]->setRobotPose ( pose.x()+scatterX, pose.y()+scatterY, pose.theta()+scatterTheta );
-    m_LastList[i]->setRobotPose ( pose.x()+scatterX, pose.y()+scatterY, pose.theta()+scatterTheta );
-  }
-}
-
-vector<float> SlamFilter::getParticleWeights() const
-{
-  vector<float> particleWeights ( m_ParticleNum );
-  for ( int i = 0; i < m_ParticleNum; i++ )
-  {
-    particleWeights[i] = m_CurrentList[i]->getWeight();
-  }
-  return particleWeights;
-}
-
-double SlamFilter::randomGauss ( float variance ) const
-{
-  if ( variance < 0 )
-  {
-    variance = -variance;
-  }
-  double x1, x2, w, y1;
-  do
-  {
-    x1 = 2.0 * random01() - 1.0;
-    x2 = 2.0 * random01() - 1.0;
-    w = x1 * x1 + x2 * x2;
-  }
-  while ( w >= 1.0 );
-
-  w = sqrt ( ( -2.0 * log ( w ) ) / w );
-  y1 = x1 * w;
-  // now y1 is uniformly distributed
-  return sqrt ( variance ) * y1;
-}
-
-vector<float> SlamFilter::filterOutliers (sensor_msgs::LaserScanConstPtr rawData, float maxDiff )
-{
-  if ( rawData->ranges.size() < 2 )
-  {
-    return rawData->ranges;
-  }
-  vector<float> filteredData = rawData->ranges;
-  for ( unsigned int i = 1; i < filteredData.size() - 1; i++ )
-  {
-    if ( abs ( ( float ) ( rawData->ranges[i-1] - rawData->ranges[i]*2 + rawData->ranges[i+1] ) ) > maxDiff*2 )
-    {
-      filteredData[i] = 0;
-    }
-  }
-  if ( fabs ( rawData->ranges[0] - rawData->ranges[1] ) > maxDiff )
-  {
-    filteredData[0] = 0;
-  }
-  if ( fabs ( rawData->ranges[ rawData->ranges.size()-1 ] - rawData->ranges[ rawData->ranges.size()-2 ] ) > maxDiff )
-  {
-    filteredData[ rawData->ranges.size()-1 ] = 0;
-  }
-
-  return filteredData;
-}
-
-void SlamFilter::filter (Pose currentPose, sensor_msgs::LaserScanConstPtr laserData, ros::Time measurementTime, ros::Duration &FilterDuration)
-{
-  // if first run, initialize data
-  if ( m_FirstRun )
-  {
-    m_FirstRun = false;
-    // only do mapping, save first pose as reference
-    if ( m_DoMapping )
-    {
-      tf::Transform transform(tf::createQuaternionFromYaw(0.0), tf::Vector3(0.0, 0.0, 0.0));
-      m_OccupancyMap->insertLaserData ( laserData , transform);
-    }
-    m_CurrentLaserData = boost::make_shared<sensor_msgs::LaserScan>(*laserData); //copy const ptr to be able to change values; //test
-    m_ReferencePoseOdometry = currentPose;
-    m_ReferenceMeasurementTime = measurementTime;
-
-    measure();
-    ROS_INFO_STREAM("first run!");
-    normalize();
-    sort ( 0, m_ParticleNum - 1 );
-    return;
-  }
-  //m_CurrentLaserConfig = laserConf;
-  m_CurrentPoseOdometry = currentPose;
-  m_CurrentLaserData = boost::make_shared<sensor_msgs::LaserScan>(*laserData); //copy const ptr to be able to change values
-  m_CurrentLaserData->ranges = filterOutliers ( laserData, 0.3 );
-
-  Transformation2D trans = m_CurrentPoseOdometry - m_ReferencePoseOdometry;
-
-  // do not resample if move to small
-  if ( sqr ( trans.x() ) + sqr ( trans.y() ) < MIN_MOVE_DISTANCE2 && sqr ( trans.theta() ) < MIN_TURN_DISTANCE2 )
-  {
-    ROS_DEBUG_STREAM( "Move too small, will not resample." );
-    if ( m_EffectiveParticleNum < m_ParticleNum / 10 )
-    {
-      resample();
-      ROS_INFO_STREAM( "Particles too scattered, resampling." );
-      // filter steps
-	  drift();
-	  measure();
-	  normalize();
-
-	  sort ( 0, m_ParticleNum - 1 );
-    }
-  }
-  else
-  {
-    resample();
-    // filter steps
-	drift();
-	measure();
-	normalize();
-
-	sort ( 0, m_ParticleNum - 1 );
-  }
-
-  Pose likeliestPose = getLikeliestPose(measurementTime); //test
-  Transformation2D transSinceLastUpdate = likeliestPose - m_LastUpdatePose;
-
-  ostringstream stream;
-  stream.precision ( 2 );
-  stream << "Transformation since last update: angle=" << Math::rad2Deg ( transSinceLastUpdate.theta() ) << " dist=" << transSinceLastUpdate.magnitude() << "m" << endl;
-
-  bool update = ( fabs ( transSinceLastUpdate.theta() ) > m_UpdateMinMoveAngle  ) ||
-                ( transSinceLastUpdate.magnitude() > m_UpdateMinMoveDistance ) ||
-                ( ( measurementTime - m_LastUpdateTime ) > m_MaxUpdateInterval );
-
-  if ( m_DoMapping && update )
-  {
-    stream << "Updating map.";
-	double elapsedSeconds = ( measurementTime - m_ReferenceMeasurementTime ).toSec();
-	double thetaPerSecond;
-	if(elapsedSeconds == 0.0)
-	{
-	  thetaPerSecond = trans.theta();
-	}
-	else
-	{
-	  thetaPerSecond = trans.theta() / elapsedSeconds;
-	}    
-    
-    m_LastUpdatePose = likeliestPose;
-    m_LastUpdateTime = measurementTime;
-    if ( std::fabs(thetaPerSecond) < m_MaxRotationPerSecond )
-    {
-      updateMap();
-    }
-    else
-    {
-      ROS_DEBUG_STREAM( "No mapping performed, rotation angle too big." );
-    }
-  }
-  else
-  {
-    stream << "No map update performed.";
-  }
-  ROS_DEBUG_STREAM( stream.str() );
-  // safe last used pose and laserdata as reference
-  
-  m_ReferencePoseOdometry = m_CurrentPoseOdometry;
-  m_ReferenceMeasurementTime = measurementTime;
-}
-
-/**
- *  For the probabilistic motion model of the robot we use the following three parameters:
- *  - When the robot starts, the initial orientation may have errors (a few degrees). (m_InitialOrientationError)
- *  - The distance of the robot movement may be wrong (a percentage of the moved distance). (m_TranslationError)
- *  - The orientation of the robot when the motion was finished may be wrong (a percentage of the rotation) (m_RotationError).
- *  [cf. "An Efficient FastSLAM Algorithm for Generating Maps of Large-Scale Cyclic Environments
- *   from Raw Laser Range Measurements", Dirk Haenelt et. al.]
- *  We use Gaussian-Distributions to estimate the error.
- *  The expected value of the errors are zero.
- */
-
-void SlamFilter::drift()
-{
-
-  float rx = m_ReferencePoseOdometry.x();
-  float ry = m_ReferencePoseOdometry.y();
-  float rt = m_ReferencePoseOdometry.theta();
-  float cx = m_CurrentPoseOdometry.x();
-  float cy = m_CurrentPoseOdometry.y();
-  float ct = m_CurrentPoseOdometry.theta();
-
-  Transformation2D odoTrans = m_CurrentPoseOdometry - m_ReferencePoseOdometry;
-
-  // find out if driving forward or backward
-  bool backwardMove = false;
-  float scalar = odoTrans.x() * cosf ( rt ) + odoTrans.y() * sinf ( rt );
-  if ( scalar <= 0 )
-  {
-    backwardMove = true;
-  }
-  float distance = sqrt ( sqr ( odoTrans.x() ) + sqr ( odoTrans.y() ) );
-  float deltaRot1, deltaTrans, deltaRot2;
-  if ( distance < sqrt ( MIN_MOVE_DISTANCE2 ) )
-  {
-    deltaRot1 = odoTrans.theta();
-    deltaTrans = 0.0;
-    deltaRot2 = 0.0;
-  }
-  else if ( backwardMove )
-  {
-    deltaRot1 = atan2 ( ry - cy, rx - cx ) - rt;
-    deltaTrans = - distance;
-    deltaRot2 = ct - rt - deltaRot1;
-  }
-  else
-  {
-    deltaRot1 = atan2 ( odoTrans.y(), odoTrans.x() ) - rt;
-    deltaTrans = distance;
-    deltaRot2 = ct - rt - deltaRot1;
-  }
-
-  while ( deltaRot1 >= M_PI ) deltaRot1 -= M_2PI;
-  while ( deltaRot1 < -M_PI ) deltaRot1 += M_2PI;
-  while ( deltaRot2 >= M_PI ) deltaRot2 -= M_2PI;
-  while ( deltaRot2 < -M_PI ) deltaRot2 += M_2PI;
-
-  // always leave one particle with pure displacement
-  SlamParticle* particle = m_CurrentList[0];
-  // get stored pose
-  float robotX, robotY, robotTheta;
-  particle->getRobotPose ( robotX, robotY, robotTheta );
-  Pose pose ( robotX, robotY, robotTheta );
-  // move pose
-  float posX = pose.x() + deltaTrans * cos ( pose.theta() + deltaRot1 );
-  float posY = pose.y() + deltaTrans * sin ( pose.theta() + deltaRot1 );
-  float theta  = pose.theta() + deltaRot1 + deltaRot2;
-  while ( theta > M_PI ) theta -= M_2PI;
-  while ( theta <= -M_PI ) theta += M_2PI;
-  // save new pose
-  particle->setRobotPose ( posX, posY, theta );
-  int i = 1;
-  
-  //calculating parallel on 8 threats 
-  //TODO: ERROR ON RESET MAPS
-//  omp_set_num_threads(4);
-//  #pragma omp parallel for 
-  for ( i = 1; i < m_ParticleNum; i++ )
-  {
-    SlamParticle* particle = m_CurrentList[i];
-    // get stored pose
-    float robotX, robotY, robotTheta;
-    particle->getRobotPose ( robotX, robotY, robotTheta );
-    Pose pose ( robotX, robotY, robotTheta );
-    // move pose
-    float estDeltaRot1 = deltaRot1 - randomGauss ( m_Alpha1 * fabs ( deltaRot1 ) + m_Alpha2 * deltaTrans );
-    float estDeltaTrans = deltaTrans - randomGauss ( m_Alpha3 * deltaTrans + m_Alpha4 * ( fabs ( deltaRot1 ) + fabs ( deltaRot2 ) ) );
-    float estDeltaRot2 = deltaRot2 - randomGauss ( m_Alpha1 * fabs ( deltaRot2 ) + m_Alpha2 * deltaTrans );
-
-    float posX = pose.x() + estDeltaTrans * cos ( pose.theta() + estDeltaRot1 ) + randomGauss ( m_Alpha5 * fabs ( estDeltaRot1 + estDeltaRot2 ) );
-    float posY = pose.y() + estDeltaTrans * sin ( pose.theta() + estDeltaRot1 ) + randomGauss ( m_Alpha5 * fabs ( estDeltaRot1 + estDeltaRot2 ) );
-    float theta  = pose.theta() + estDeltaRot1 + estDeltaRot2;
-
-    // save new pose
-    while ( theta > M_PI ) theta -= M_2PI;
-    while ( theta <= -M_PI ) theta += M_2PI;
-
-    particle->setRobotPose ( posX, posY, theta );
-  }
-  
-  
-}
-
-
-void SlamFilter::measure()
-{
-  if ( m_OccupancyMap )
-  {
-    m_MeasurePoints = m_OccupancyMap->getMeasurePoints ( m_CurrentLaserData );
-
-    //calculating parallel on 8 threats 
-    omp_set_num_threads(8);
-    int i = 0;
-    //#pragma omp parallel for 
-    for (i = 0; i < m_ParticleNum; i++ )
-    {
-      SlamParticle* particle = m_CurrentList[i];
-      if ( !particle )
-      {
-        ROS_ERROR_STREAM("ERROR: Particle is NULL-pointer!");
-      }
-      else
-      {
-        // calculate weights
-        float robotX, robotY, robotTheta;
-        particle->getRobotPose ( robotX, robotY, robotTheta );
-        Pose pose ( robotX, robotY, robotTheta );
-        float weight = m_OccupancyMap->computeScore ( pose, m_MeasurePoints );
-        particle->setWeight ( weight );
-      }
-    }
-  }
-  m_EffectiveParticleNum = getEffectiveParticleNum2();
-
-}
-
-void SlamFilter::updateMap()
-{
-  m_OccupancyMap->insertLaserData ( m_CurrentLaserData, m_latestTransform);
-}
-
-void SlamFilter::printParticles() const
-{
-  cout << endl << "### PARTICLE LIST ###" << endl;
-  cout << right << fixed;
-  cout.width ( 5 );
-  for ( int i = 0; i < m_ParticleNum; i++ )
-  {
-    SlamParticle* p_particle = m_CurrentList[i];
-    if ( p_particle )
-    {
-      float robotX, robotY, robotTheta;
-      p_particle->getRobotPose ( robotX, robotY, robotTheta );
-      cout << "Particle " << i << ": (" << robotX << "," << robotY << "," << robotTheta * 180.0 / M_PI << "), weight:\t" << p_particle->getWeight() << endl;
-    }
-  }
-  cout << "### END OF LIST ###" << endl;
-}
-
-
-void SlamFilter::reduceParticleNumber ( int newParticleNum )
-{
-  if ( newParticleNum < m_ParticleNum )
-  {
-
-    SlamParticle** newCurrentList = new SlamParticle*[newParticleNum];
-    SlamParticle** newLastList = new SlamParticle*[newParticleNum];
-
-    for ( int i = 0; i < newParticleNum; i++ )
-    {
-      newCurrentList[i] = m_CurrentList[i];
-      newLastList[i] = m_LastList[i];
-    }
-
-    for ( int i = newParticleNum + 1; i < m_ParticleNum; i++ )
-    {
-      delete m_CurrentList[i];
-      delete m_LastList[i];
-    }
-    delete[] m_CurrentList;
-    delete[] m_LastList;
-
-    m_CurrentList = newCurrentList;
-    m_LastList = newLastList;
-
-    m_ParticleNum = newParticleNum;
-    normalize();
-  }
-}
-
-Pose SlamFilter::getLikeliestPose(ros::Time poseTime) 
-{
-  float percentage = 0.4; //TODO param? //test 
-  float sumX = 0, sumY = 0, sumDirX = 0, sumDirY = 0;
-  int numParticles = static_cast<int> ( percentage / 100 * m_ParticleNum );
-  if ( 0 == numParticles )
-  {
-    numParticles = 1;
-  }
-  for ( int i = 0; i < numParticles; i++ )
-  {
-    float robotX, robotY, robotTheta;
-    m_CurrentList[i]->getRobotPose ( robotX, robotY, robotTheta );
-    sumX += robotX;
-    sumY += robotY;
-    // calculate sum of vectors in unit circle
-    sumDirX += cos ( robotTheta );
-    sumDirY += sin ( robotTheta );
-  }
-  float meanTheta = atan2 ( sumDirY, sumDirX );
-  float meanX = sumX / numParticles;
-  float meanY = sumY / numParticles;
-  //broadcast transform map -> base_link
-  tf::Transform transform(tf::createQuaternionFromYaw(meanTheta),
-                          tf::Vector3(sumX / numParticles, sumY / numParticles, 0.0));
-  tf::TransformBroadcaster tfBroadcaster;
-  m_latestTransform = transform;
-   
-  tfBroadcaster.sendTransform(tf::StampedTransform(m_latestTransform, poseTime, "/map", "/base_link"));
-  return Pose ( meanX, meanY, meanTheta );
-}
-
-OccupancyMap* SlamFilter::getLikeliestMap() const
-{
-  return m_OccupancyMap;
-}
-
-void SlamFilter::getPoseVariances ( int particleNum, float& poseVarianceX, float& poseVarianceY )
-{
-
-  // the particles of m_CurrentList are sorted by their weights
-  if ( particleNum > m_ParticleNum || particleNum <= 0 )
-  {
-    particleNum = m_ParticleNum;
-  }
-  // calculate average pose
-  float averagePoseX = 0;
-  float averagePoseY = 0;
-  float robotX = 0.0;
-  float robotY = 0.0;
-  float robotTheta = 0.0;
-  for ( int i = 0; i < particleNum; i++ )
-  {
-    m_CurrentList[i]->getRobotPose ( robotX, robotY, robotTheta );
-    averagePoseX += robotX;
-    averagePoseY += robotY;
-  }
-  averagePoseX /= particleNum;
-  averagePoseY /= particleNum;
-
-  // calculate standard deviation of pose
-  poseVarianceX = 0.0;
-  poseVarianceY = 0.0;
-  for ( int i = 0; i < particleNum; i++ )
-  {
-    m_CurrentList[i]->getRobotPose ( robotX, robotY, robotTheta );
-    poseVarianceX += ( averagePoseX - robotX ) * ( averagePoseX - robotX );
-    poseVarianceY += ( averagePoseY - robotY ) * ( averagePoseY - robotY );
-  }
-  poseVarianceX /= particleNum;
-  poseVarianceY /= particleNum;
-}
-
-double SlamFilter::evaluateByContrast()
-{
-  return m_OccupancyMap->evaluateByContrast();
-}
-
-void SlamFilter::applyMasking(const nav_msgs::OccupancyGrid::ConstPtr &msg)
-{
-    m_OccupancyMap->applyMasking(msg);
-}
diff --git a/homer_mapping/src/ParticleFilter/SlamParticle.cpp b/homer_mapping/src/ParticleFilter/SlamParticle.cpp
deleted file mode 100644
index c0024dec..00000000
--- a/homer_mapping/src/ParticleFilter/SlamParticle.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <homer_mapping/ParticleFilter/SlamParticle.h>
-
-SlamParticle::SlamParticle(float weight, float robotX, float robotY, float robotTheta) : Particle(weight) {
-  m_RobotPositionX = robotX;
-  m_RobotPositionY = robotY;
-  m_RobotOrientation = robotTheta;
-}
-
-SlamParticle::SlamParticle( SlamParticle& slamParticle )
-{
-  m_RobotPositionX = slamParticle.m_RobotPositionX;
-  m_RobotPositionY = slamParticle.m_RobotPositionY;
-  m_RobotOrientation = slamParticle.m_RobotOrientation;
-}
-
-SlamParticle::~SlamParticle() {
-}
-
-void SlamParticle::setRobotPose(float robotX, float robotY, float robotTheta) {
-  m_RobotPositionX = robotX;
-  m_RobotPositionY = robotY;
-  m_RobotOrientation = robotTheta;
-}
-
-void SlamParticle::getRobotPose(float& robotX, float& robotY, float& robotTheta) {
-  robotX = m_RobotPositionX;
-  robotY = m_RobotPositionY;
-  robotTheta = m_RobotOrientation;
-}
-
diff --git a/homer_mapping/src/slam_node.cpp b/homer_mapping/src/slam_node.cpp
deleted file mode 100644
index c80692b2..00000000
--- a/homer_mapping/src/slam_node.cpp
+++ /dev/null
@@ -1,387 +0,0 @@
-#include <homer_mapping/slam_node.h>
-
-SlamNode::SlamNode(ros::NodeHandle* nh)
-  : m_HyperSlamFilter( 0 )
-{
-    init();
-
-    // subscribe to topics
-    m_LaserScanSubscriber 	= nh->subscribe<sensor_msgs::LaserScan>("/scan", 1, &SlamNode::callbackLaserScan, this);
-    m_OdometrySubscriber 	= nh->subscribe<nav_msgs::Odometry>("/odom", 1, &SlamNode::callbackOdometry, this);
-    m_UserDefPoseSubscriber = nh->subscribe<geometry_msgs::Pose>("/homer_mapping/userdef_pose", 1, &SlamNode::callbackUserDefPose, this);
-	m_InitialPoseSubscriber = nh->subscribe<geometry_msgs::PoseWithCovarianceStamped>("/initialpose", 1, &SlamNode::callbackInitialPose, this);
-    m_DoMappingSubscriber 	= nh->subscribe<std_msgs::Bool>("/homer_mapping/do_mapping", 1, &SlamNode::callbackDoMapping, this);
-    m_ResetMapSubscriber 	= nh->subscribe<std_msgs::Empty>("/map_manager/reset_maps", 1, &SlamNode::callbackResetMap, this);
-    m_LoadMapSubscriber 	= nh->subscribe<nav_msgs::OccupancyGrid>("/map_manager/loaded_map", 1, &SlamNode::callbackLoadedMap, this);
-    m_MaskingSubscriber 	= nh->subscribe<nav_msgs::OccupancyGrid>("/map_manager/mask_slam", 1, &SlamNode::callbackMasking, this);
-    m_ResetHighSubscriber 	= nh->subscribe<std_msgs::Empty>("/map_manager/reset_high", 1, &SlamNode::callbackResetHigh, this);
-
-    // advertise topics
-    m_PoseStampedPublisher 	= nh->advertise<geometry_msgs::PoseStamped>("/pose", 2);
-    m_SLAMMapPublisher 		= nh->advertise<nav_msgs::OccupancyGrid>("/homer_mapping/slam_map", 1);
-    
-    
-  geometry_msgs::PoseStamped poseMsg;
-  poseMsg.header.stamp = ros::Time(0);
-  poseMsg.header.frame_id = "map";
-  poseMsg.pose.position.x = 0.0;
-  poseMsg.pose.position.y = 0.0;
-  poseMsg.pose.position.z = 0.0;
-  tf::Quaternion quatTF = tf::createQuaternionFromYaw(0.0);
-  geometry_msgs::Quaternion quatMsg;
-  tf::quaternionTFToMsg(quatTF, quatMsg); //conversion from tf::Quaternion to
-  poseMsg.pose.orientation = quatMsg;
-  m_PoseStampedPublisher.publish(poseMsg);
-
-////  //broadcast transform map -> base_link
-  tf::Transform transform(quatTF, tf::Vector3(0.0, 0.0, 0.0));
-  m_tfBroadcaster.sendTransform(tf::StampedTransform(transform, poseMsg.header.stamp, "map", "base_link"));
-  Pose userdef_pose(poseMsg.pose.position.x, poseMsg.pose.position.y, tf::getYaw(poseMsg.pose.orientation));
-  m_HyperSlamFilter->setRobotPose( userdef_pose, m_ScatterVarXY, m_ScatterVarTheta );
-    
-}
-
-void SlamNode::init()
-{
-    double waitTime;
-	ros::param::get("/particlefilter/wait_time", waitTime);
-    m_WaitDuration = ros::Duration(waitTime);
-	ros::param::get("/selflocalization/scatter_var_xy", m_ScatterVarXY);
-	ros::param::get("/selflocalization/scatter_var_theta", m_ScatterVarTheta);
-
-    m_DoMapping = true;
-
-    int particleNum;
-	ros::param::get("/particlefilter/particle_num", particleNum);
-    int particleFilterNum;
-	ros::param::get("/particlefilter/hyper_slamfilter/particlefilter_num", particleFilterNum);
-    m_HyperSlamFilter = new HyperSlamFilter ( particleFilterNum, particleNum );
-
-    m_ReferenceOdometryTime = ros::Time(0);
-    m_LastMapSendTime 		= ros::Time(0);
-    m_LastPositionSendTime 	= ros::Time(0);
-    m_LastMappingTime 		= ros::Time(0);
-    m_ReferenceOdometryTime = ros::Time(0);
-    
-    m_laser_queue.clear();
-    m_odom_queue.clear();
-}
-
-SlamNode::~SlamNode()
-{
-  delete m_HyperSlamFilter;
-}
-
-void SlamNode::resetMaps()
-{
-  ROS_INFO( "Resetting maps.." );
-
-  delete m_HyperSlamFilter;
-  m_HyperSlamFilter = 0;
-
-  init();
-  geometry_msgs::PoseStamped poseMsg;
-  poseMsg.header.stamp = ros::Time::now();
-  poseMsg.header.frame_id = "map";
-  poseMsg.pose.position.x = 0.0;
-  poseMsg.pose.position.y = 0.0;
-  poseMsg.pose.position.z = 0.0;
-  tf::Quaternion quatTF = tf::createQuaternionFromYaw(0.0);
-  geometry_msgs::Quaternion quatMsg;
-  tf::quaternionTFToMsg(quatTF, quatMsg); //conversion from tf::Quaternion to
-  poseMsg.pose.orientation = quatMsg;
-  m_PoseStampedPublisher.publish(poseMsg);
-
-  m_LastLikeliestPose.set(0.0, 0.0);
-  m_LastLikeliestPose.setTheta(0.0f);
-
-////  //broadcast transform map -> base_link
-  tf::Transform transform(quatTF, tf::Vector3(0.0, 0.0, 0.0));
-  m_tfBroadcaster.sendTransform(tf::StampedTransform(transform, poseMsg.header.stamp, "map", "base_link"));
-  Pose userdef_pose(poseMsg.pose.position.x, poseMsg.pose.position.y, tf::getYaw(poseMsg.pose.orientation));
-  m_HyperSlamFilter->setRobotPose( userdef_pose, m_ScatterVarXY, m_ScatterVarTheta );
-
-//  sendMapDataMessage();
-}
-
-void SlamNode::callbackResetHigh(const std_msgs::Empty::ConstPtr& msg)
-{
-	m_HyperSlamFilter->resetHigh();
-}
-
-
-void SlamNode::sendMapDataMessage(ros::Time mapTime)
-{
-  std::vector<int8_t> mapData;
-  int width, height;
-  float resolution;
-
-  OccupancyMap* occMap = m_HyperSlamFilter->getBestSlamFilter()->getLikeliestMap();
-  occMap->getOccupancyProbabilityImage (mapData, width, height, resolution);
-
-  if ( width != height )
-  {
-    ROS_ERROR_STREAM("ERROR: Map is not quadratic! can not send map!");
-  }
-  else
-  {
-    nav_msgs::OccupancyGrid mapMsg;
-    std_msgs::Header header;
-    header.stamp = mapTime;
-    header.frame_id = "map";
-    mapMsg.header = header;
-    nav_msgs::MapMetaData mapMetaData;
-    mapMetaData.width = width;
-    mapMetaData.height = height;
-    mapMetaData.resolution = resolution;
-    mapMetaData.origin.position.x = -height*resolution/2;
-    mapMetaData.origin.position.y = -width*resolution/2;
-    mapMetaData.origin.orientation.w = 1.0;
-    mapMetaData.origin.orientation.x = 0.0;
-    mapMetaData.origin.orientation.y = 0.0;
-    mapMetaData.origin.orientation.z = 0.0;
-    mapMsg.info = mapMetaData;
-    mapMsg.data = mapData;
-
-    m_SLAMMapPublisher.publish(mapMsg);
-  }
-}
-
-void SlamNode::callbackUserDefPose( const geometry_msgs::Pose::ConstPtr& msg )
-{
-    Pose userdef_pose(msg->position.x, msg->position.y, tf::getYaw(msg->orientation));
-    m_HyperSlamFilter->setRobotPose( userdef_pose, m_ScatterVarXY, m_ScatterVarTheta );
-}
-
-void SlamNode::callbackInitialPose(const geometry_msgs::PoseWithCovarianceStamped::ConstPtr& msg)
-{
-    Pose userdef_pose(msg->pose.pose.position.x, msg->pose.pose.position.y, tf::getYaw(msg->pose.pose.orientation));
-    m_HyperSlamFilter->setRobotPose( userdef_pose, m_ScatterVarXY, m_ScatterVarTheta );
-}
-
-void SlamNode::callbackLaserScan(const sensor_msgs::LaserScan::ConstPtr& msg)
-{
-	m_laser_queue.push_back(msg);
-	if(m_laser_queue.size() > 5) //Todo param
-	{
-		m_laser_queue.erase(m_laser_queue.begin());
-	}
-}
-
-void SlamNode::callbackOdometry( const nav_msgs::Odometry::ConstPtr& msg) 
-{
-	m_odom_queue.push_back(msg);
-	static int last_i = 0;
-	if(m_odom_queue.size() > 5) //Todo param
-	{
-		last_i--;
-		if(last_i < 0)
-		{
-			last_i = 0;
-		}
-		m_odom_queue.erase(m_odom_queue.begin());
-	}
-
-	static Pose last_interpolatedPose(0.0, 0.0, 0.0);
-    ros::Time currentOdometryTime = msg->header.stamp; 
-	if( ( ros::Time::now() - m_LastMappingTime > m_WaitDuration ) &&  m_odom_queue.size() > 1 && m_laser_queue.size() > 0)
-	{
-		int i, j;
-		bool got_match = false;
-		
-		for( i = m_odom_queue.size()-1; i > 0 ; i--)
-		{
-			//Check if we would repeat a calculation which is already done but still in the queue
-			if(m_odom_queue.at(i-1)->header.stamp == m_ReferenceOdometryTime)
-			{
-				break;
-			}
-			
-			for(j = m_laser_queue.size()-1; j > -1; j--)
-			{
-				//	find a laserscan in between two odometry readings (or at the same time)
-				if(
-					(m_laser_queue.at(j)->header.stamp >= m_odom_queue.at(i-1)->header.stamp)
-					&& 
-					(m_odom_queue.at(i)->header.stamp >= m_laser_queue.at(j)->header.stamp) 
-				  )
-				{
-					got_match = true;
-					break;
-				}
-			}
-			if(got_match)
-			{
-				break;
-			}
-		}
-		
-		if(got_match)
-		{
-			last_i = i;
-			m_LastLaserData = m_laser_queue.at(j);
-			m_LastMappingTime = m_LastLaserData->header.stamp;
-
-		 	float odoX = m_odom_queue.at(i)->pose.pose.position.x;
-			float odoY = m_odom_queue.at(i)->pose.pose.position.y;
-			float odoTheta = tf::getYaw(m_odom_queue.at(i)->pose.pose.orientation);
-			Pose currentOdometryPose ( odoX, odoY, odoTheta );
-			currentOdometryTime = m_odom_queue.at(i)->header.stamp; 
-
-		 	odoX = m_odom_queue.at(i-1)->pose.pose.position.x;
-			odoY = m_odom_queue.at(i-1)->pose.pose.position.y;
-			odoTheta = tf::getYaw(m_odom_queue.at(i-1)->pose.pose.orientation);
-			Pose lastOdometryPose ( odoX, odoY, odoTheta );
-    		m_ReferenceOdometryPose = lastOdometryPose;
-    		m_ReferenceOdometryTime = m_odom_queue.at(i-1)->header.stamp;
-
-			
-			ros::Time startTime = ros::Time::now();
-			// laserscan in between current odometry reading and m_ReferenceOdometry
-			// -> calculate pose of robot during laser scan
-			ros::Duration d1 = m_LastLaserData->header.stamp - m_ReferenceOdometryTime;
-			ros::Duration d2 = currentOdometryTime - m_ReferenceOdometryTime;
-
-			float timeFactor;
-			if(d1.toSec() == 0.0)
-			{
-				timeFactor = 0.0f;
-			}
-			else if(d2.toSec() == 0.0)
-			{
-				timeFactor = 1.0f;
-			}
-			else
-			{
-				timeFactor = d1.toSec() / d2.toSec();
-			}
-			ros::Duration duration = ros::Duration(0);
-
-			last_interpolatedPose = m_ReferenceOdometryPose.interpolate ( currentOdometryPose, timeFactor );
-			m_HyperSlamFilter->filter( last_interpolatedPose, m_LastLaserData, m_LastLaserData->header.stamp, duration);
-			ros::Time finishTime = ros::Time::now();
-
-			m_LastLikeliestPose = m_HyperSlamFilter->getBestSlamFilter()->getLikeliestPose(m_LastLaserData->header.stamp);
-
-			//TODO löschen
-			m_LastPositionSendTime = m_LastLaserData->header.stamp;
-			// send map max. every 500 ms
-			if ( (m_LastLaserData->header.stamp - m_LastMapSendTime).toSec() > 0.5 )
-			{
-				sendMapDataMessage(m_LastLaserData->header.stamp);
-				m_LastMapSendTime = m_LastLaserData->header.stamp;
-			}
-
-			ROS_DEBUG_STREAM("Pos. data calc time: " << (finishTime - startTime).toSec() << "s" );
-			ROS_DEBUG_STREAM("Map send Interval: " << ( finishTime - m_LastPositionSendTime ).toSec() << "s" );
-		}
-	}
-	Pose currentPose = m_LastLikeliestPose;
-	//currentPose.setX(currentPose.x() - last_interpolatedPose.x());
-	//currentPose.setY(currentPose.y() - last_interpolatedPose.y());
-	//currentPose.setTheta(currentPose.theta() - last_interpolatedPose.theta());
-	for(int i = (last_i-1<0?0:last_i-1); i < m_odom_queue.size(); i++)
-	{
-		currentPose.setX(currentPose.x() + m_odom_queue.at(i)->twist.twist.linear.x);
-		currentPose.setY(currentPose.y() + m_odom_queue.at(i)->twist.twist.linear.y);
-		currentPose.setTheta(currentPose.theta() + m_odom_queue.at(i)->twist.twist.angular.z);
-	}
-
-	geometry_msgs::PoseStamped poseMsg;
-	//header
-	poseMsg.header.stamp = msg->header.stamp;
-	poseMsg.header.frame_id = "map";
-
-	//position and orientation
-	poseMsg.pose.position.x = currentPose.x();
-	poseMsg.pose.position.y = currentPose.y();
-	poseMsg.pose.position.z = 0.0;
-	tf::Quaternion quatTF = tf::createQuaternionFromYaw(currentPose.theta());
-	geometry_msgs::Quaternion quatMsg;
-	tf::quaternionTFToMsg(quatTF, quatMsg); //conversion from tf::Quaternion to geometry_msgs::Quaternion
-	poseMsg.pose.orientation = quatMsg;
-	m_PoseStampedPublisher.publish(poseMsg);
-	//broadcast transform map -> base_link
-	//tf::Transform transform(quatTF,tf::Vector3(currentPose.x(), currentPose.y(), 0.0));
-  	//m_tfBroadcaster.sendTransform(tf::StampedTransform(transform, msg->header.stamp, "map", "base_link"));
-}
-
-void SlamNode::callbackDoMapping(const std_msgs::Bool::ConstPtr &msg)
-{
-    m_DoMapping = msg->data;
-    m_HyperSlamFilter->setMapping ( m_DoMapping );
-    ROS_INFO_STREAM( "Do mapping is set to " << ( m_DoMapping ) );
-}
-
-void SlamNode::callbackResetMap(const std_msgs::Empty::ConstPtr &msg)
-{
-    resetMaps();
-}
-
-void SlamNode::callbackLoadedMap(const nav_msgs::OccupancyGrid::ConstPtr &msg)
-{
-    float res = msg->info.resolution;
-    int height = msg->info.height; // cell size
-    int width = msg->info.width; //cell size
-    if(height!=width) {
-        ROS_ERROR("Height != width in loaded map");
-        return;
-    }
-
-    //convert map vector from ros format to robbie probability array
-    float* map = new float[msg->data.size()];
-     //generate exploredRegion
-     int minX = INT_MIN;
-     int minY = INT_MIN;
-     int maxX = INT_MAX;
-     int maxY = INT_MAX;
-     for(size_t y = 0; y < msg->info.height; y++)
-     {
-         int yOffset = msg->info.width * y;
-         for(size_t x = 0; x < msg->info.width; x++)
-         {
-             int i = yOffset + x;
-             if(msg->data[i] == -1 )
-                 map[i] = 0.5;
-             else
-                 map[i] = msg->data[i]/100.0;
-
-             if(map[i]!=0.5) {
-                 if(minX==INT_MIN || minX > (int)x)
-                     minX = (int)x;
-                 if(minY==INT_MIN || minY > (int)y)
-                     minY = (int)y;
-                 if(maxX==INT_MAX || maxX < (int)x)
-                     maxX = (int)x;
-                 if(maxY==INT_MAX || maxY < (int)y)
-                     maxY = (int)y;
-             }
-         }
-     }
-     Box2D<int> exploredRegion = Box2D<int> ( minX, minY, maxX, maxY );
-     OccupancyMap* occMap = new OccupancyMap(map, msg->info.origin, res, width, exploredRegion);
-     m_HyperSlamFilter->setOccupancyMap( occMap );
-     m_HyperSlamFilter->setMapping( false ); //is this already done by gui message?
-     ROS_INFO_STREAM( "Replacing occupancy map" );
-}
-
-void SlamNode::callbackMasking(const nav_msgs::OccupancyGrid::ConstPtr &msg)
-{
-    m_HyperSlamFilter->applyMasking(msg);
-}
-
-/**
- * @brief main function
- */
-int main(int argc, char** argv)
-{
-    ros::init(argc, argv, "homer_mapping");
-    ros::NodeHandle nh;
-
-    SlamNode slamNode(&nh);
-
-    ros::Rate loop_rate(50); 
-    ros::spin();
-    return 0;
-}
-
diff --git a/homer_nav_libs/CHANGELOG.rst b/homer_nav_libs/CHANGELOG.rst
deleted file mode 100644
index df486cd2..00000000
--- a/homer_nav_libs/CHANGELOG.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Changelog for package homer_nav_libs
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-0.1.1 (2016-11-03)
-------------------
-* fixes
-* initial commit
-* Contributors: Niklas Yann Wettengel
diff --git a/homer_nav_libs/CMakeLists.txt b/homer_nav_libs/CMakeLists.txt
deleted file mode 100644
index c3682171..00000000
--- a/homer_nav_libs/CMakeLists.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-cmake_minimum_required(VERSION 2.8.3)
-project(homer_nav_libs)
-
-find_package(catkin REQUIRED COMPONENTS
-  roscpp
-  geometry_msgs
-  sensor_msgs
-  tf
-  cmake_modules
-)
-
-find_package(Eigen3 REQUIRED)
-
-catkin_package(
-	INCLUDE_DIRS include
-	LIBRARIES homerExplorer homerMappingMath
-	CATKIN_DEPENDS  roscpp geometry_msgs tf
-	DEPENDS Eigen3)
-
-
-include_directories(
-  include
-  ${catkin_INCLUDE_DIRS}
-  ${EIGEN3_INCLUDE_DIRS}
-)
-
-add_library(homerExplorer src/Explorer/Explorer.cpp)
-add_library(homerMappingMath
-	src/Math/Line2D.cpp
-	src/Math/Transformation2D.cpp
-	src/Math/Pose.cpp
-	src/Math/Math.cpp
-	src/Math/Point2D.cpp
-)
-
-install(DIRECTORY include/${PROJECT_NAME}/
-	DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
-)
-
-install(TARGETS homerExplorer homerMappingMath
-	ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
-	LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
-	RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
-)
diff --git a/homer_nav_libs/README.md b/homer_nav_libs/README.md
deleted file mode 100644
index 4c31e40e..00000000
--- a/homer_nav_libs/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# nav_libs
-
-## Known Issues / Todo's 
-
-Im Package nav_libs ist eine Kopie der Robbie-Bibliothek Math, umbenannt in MappingMath, die nur von homer_mapping benutzt werden soll, solange es keine vernünftige Alternative für die Pose gibt.
-
-## Introduction 
-
-Das Package nav_libs enthält einige Bibliotheken, die vom Package homer_mapping und nav_libs verwendet werden. Außerdem enthält es im Ordner tools die Header-Datei tools.h, die Funktionen zum Transformieren in verschiedene Koordinatenframes enthält. All diese Funktionen befinden sich im namespace "map_tools".
-
-* Die Bibliothek `Explorer` wird von homer_mapping und homer_navigation verwendet und enthält die Pfadplanungsalgorithmen A-Stern sowie die dafür benötigte Datenstruktur der GridMap.
-* Die Bibliothek `SpeedControl` wird von homer_navigation verwendet und  ist dafür zuständig abhängig von den aktuellen Laserdaten die höchstzulässige Geschwindigkeit zu berechnen.
-* Die Bibliothek `MappingMath` wird von homer_mapping verwendet und enthält die Datenstruktur Pose, in der die aktuelle Roboterposition innerhalb der Node gespeichert wird.
diff --git a/homer_nav_libs/include/homer_nav_libs/Explorer/Explorer.h b/homer_nav_libs/include/homer_nav_libs/Explorer/Explorer.h
deleted file mode 100644
index 2d349912..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Explorer/Explorer.h
+++ /dev/null
@@ -1,359 +0,0 @@
-#ifndef EXPLORER_H
-#define EXPLORER_H
-
-#include <vector>
-#include <cmath>
-#include <iostream>
-#include <queue>
-#include <sstream>
-#include <geometry_msgs/Pose.h>
-
-#include <homer_nav_libs/Explorer/GridMap.h>
-#include <homer_nav_libs/tools.h>
-
-namespace ExplorerConstants
-{
-  static int8_t UNKNOWN;
-  static const int8_t NOT_SEEN_YET = -1;
-  static const double MAX_DISTANCE = DBL_MAX;
-  static const double MAX_COST = DBL_MAX;
-  static const int OBSTACLE = INT_MAX;
-}
-
-/**
- * @class  Explorer
- * @author Malte Knauf, Stephan Wirth, David Gossow (RX)
- * @brief  Path planning & exploration class
- *
- * Usage:
- *
- * - Call setOccupancyMap() to set the base map for path finding.
- * - Set a start point by calling setStart()
- *
- * - For path planning:
- *   +Choose a target by calling setTarget()
- *   +To correct a target to the nearest approachable position,
- *    call getNearestAccessibleTarget
- *   +Call getPathTransformPath()
- *
- *  -For exploration:
- *   +Call resetExploration()
- *   +Call getExplorationTransformPath()
- *   +The calculated target is the last element in the returned path
- *
- * - Call sampleWaypointsFromPath() to extract waypoints from a calculated path
- *
- * This class uses a couple of "maps" for computation and storing data:
- *
- * - m_OccupancyMap stores the occupancy probabilities in double values. A value of 100 means
- *       totally occupied, 0 totally free.
- * - m_ObstacleDistanceMap stores in each cell the distance (one unit = one cell) to the nearest obstacle.
- *       This map is computed by an eucledian distance transformation from m_OccupancyMap.
- * - m_FrontierMap is a bool map which has 1 in frontier cells and 0 in all others. A frontier
- *       is defined as a free cell that has one of its four direct neighbours in unknown space and is "safe" for
- *       the robot (m_ObstacleDistanceMap is used for that).
- * - m_DrivingDistanceMap is a double map that stores for each cell the distance to m_Start. It is computed
- *       by a flood-fill (seed-fill) algorithm. The values are therefor only an approximation and not exact.
- *       m_DrivingDistanceMap is used to search the nearest frontier when requesting an auto target.
- * - m_TargetMap is a double map that stores for each cell the distance to m_Target. It is computed
- *       like m_DrivingDistanceMap. This map is used as heuristic for the A*-Pathfinding algorithm.
- * - m_NavigationMap is used to mark the cells that are touched by the A*-Pathfinding algorithm.
- *
- *
- * The coordinate system and units that are used in this class are based on map cells.
- * @see GridMap
- *
- */
-class Explorer
-{
-
-  public:
-
-    /**
-     * @brief Default constructor.
-     * @param minAllowedObstacleDistance,maxAllowedObstacleDistance Range of allowed distances to next obstacle [Pixels]
-     * @param minSafeObstacleDistance,maxSafeObstacleDistance Range of distances to next obstacle considered as safe [Pixels]
-     * @param safePathWeight Weight for safer path
-     */
-    Explorer ( double minAllowedObstacleDistance, double maxAllowedObstacleDistance,
-               double minSafeObstacleDistance, double maxSafeObstacleDistance,
-               double safePathWeight, double frontierSafenessFactor=1.0, int unknownThreshold=50 );
-
-    /**
-     * @brief Destructor deletes all dynamically allocated memory used by the maps
-     */
-    ~Explorer();
-
-    void setUnknownThreshold(int unknownTresh);
-    void setAllowedObstacleDistance ( double min, double max );
-    void setSafeObstacleDistance ( double min, double max );
-    void setFrontierSafenessFactor ( double frontierSafenessFactor );
-    void setSafePathWeight ( double weight );
-    /**
-     * @brief Copies and sets the occupancy map.
-     * @param width Width of the map
-     * @param height Height of the map
-     * @param origin Real-world pose of the cell (0,0) in the map
-     * @param data GridMap-data (occupancy probabilities: 0 = free, 100 = occupied) of size width * height
-     */
-    void setOccupancyMap ( int width, int height, geometry_msgs::Pose origin, int8_t* mapData);
-
-    /** only update occupied areas in current occupancy map */
-    void updateObstacles ( int width, int height, geometry_msgs::Pose origin, int8_t* mapData );
-
-    /**
-     * @brief Sets the start position for the path finding algorithm.
-     * m_Start is set to the given value.
-     * If startPixel lies outside the map, m_Start remains untouched.
-     * @param startPixel Start position for path finding in pixel (map-) coordinates.
-     */
-    void setStart ( Eigen::Vector2i start );
-
-    /**
-     * @brief Resets the internal state of the exploration mode.
-     * Sets m_DesiredDistance to 0, such that getExplorationTransformPath() triggers
-     * a frontier exploration if there is no prior call of setTarget(point, distance).
-     * Call this method once before every exploration.
-     */
-    void resetExploration();
-
-    /**
-     * Sets the target position for path finding. m_Target is set to the given value.
-     * If endPixel lies outside of the map, m_Target remains untouched.
-     * computeTargetDistanceMap() is called at the end of this method. m
-     * @param targetPixel Target to reach from startPixel
-     */
-    void setTarget ( Eigen::Vector2i targetPixel );
-
-    /**
-     * Sets the target region for path finding. m_ExplorationMap is set to the given region.
-     * If targetPixel lies outside of the map, the exploration map is set empty.
-     * @param targetPixel Center of the target region to reach from startPixel
-     * @param radius Radius of the target region in pixels
-     */
-    void setTarget( Eigen::Vector2i targetPixel, int radius );
-
-    /**
-     * @brief find the nearest position to target that is approachble from the start position
-     */
-    Eigen::Vector2i getNearestAccessibleTarget ( Eigen::Vector2i target );
-
-    /**
-     * @brief find the nearest position to target surpassing the minimum obstacle distance
-     */
-    Eigen::Vector2i getNearestWalkablePoint ( Eigen::Vector2i target );
-
-    /**
-     * @brief Returns the map-coordinates of the nearest frontier to m_Start.
-     * Uses m_DrivingDistanceMap and m_ObstacleDistanceMap. If there is no frontier left,
-     * nextFrontier remains untouched.
-     * @param[out] nextFrontier Nearest frontier in map-coordinates.
-     * @return true if frontier found and stored in nextFrontier, false if no frontier found (nextFrontier
-     *         remains untouched).
-     */
-    bool getNearestFrontier ( Eigen::Vector2i& nextFrontier );
-
-    /**
-     * Computes the path from m_Start to m_Target with path transform.
-     * The result is returned. If the returned vector contains no elements, there is no path.
-     * @return vector with path points
-     */
-    std::vector<Eigen::Vector2i> getPath( bool &success );
-
-    /**
-     * Computes the path from m_Start to the next frontier using exploration transform.
-     * The result is returned. If the returned vector contains no elements, there is no path.
-     * @return vector with path points
-     */
-    std::vector<Eigen::Vector2i> getExplorationTransformPath( bool &success );
-
-    /**
-     * @brief Returns a version of the path that contains less vertices.
-     * @note  The nearer the next obstacle, the more waypoints are created.
-     * @param path List of vertices to be simplified
-     * @param treshold[0..1] a lower threshold results in more waypoints (default:1.0)
-     * @return Vector of (sampled) waypoints.
-     */
-    std::vector<Eigen::Vector2i> sampleWaypointsFromPath ( std::vector<Eigen::Vector2i> path, float threshold=1.0 );
-
-    /**
-     * Getters for the different transforms (see constructor for description)
-     */
-    GridMap<int8_t>* getOccupancyMap();
-    GridMap<double>* getObstacleTransform();
-    GridMap<double>* getCostTransform();
-    GridMap<bool>* getTargetMap();
-    GridMap<double>* getDrivingDistanceTransform();
-    GridMap<double>* getTargetDistanceTransform();
-    GridMap<double>* getPathTransform();
-    GridMap<double>* getExplorationTransform();
-
-    /**
-     * @return Start position
-     */
-    Eigen::Vector2i getStart() const;
-
-    /**
-     * @return Target position
-     */
-    Eigen::Vector2i getTarget() const;
-
-  private:
-
-    /** @brief Delete the given map and set pointer to 0 */
-    template <class T>
-    void releaseMap ( GridMap<T>*& map )
-    {
-      if ( map )
-      {
-        delete map;
-        map=0;
-      }
-    }
-
-    /** @brief Delete and re-create given map */
-    template <class T>
-    void resetMap ( GridMap<T>*& map )
-    {
-      if ( !m_OccupancyMap )
-      {
-        ROS_ERROR ( "Occupancy map is missing." );
-        return;
-      }
-      releaseMap ( map );
-      map = new GridMap<T> ( m_OccupancyMap->width(), m_OccupancyMap->height() );
-    }
-
-    /**
-     * @return true if the robot can stand on the given position without touching an obstacle, false otherwise
-     * @warning Call computeWalkableMaps before
-     */
-    inline bool isWalkable ( int x, int y ) const
-    {
-      return ( ( m_OccupancyMap->getValue ( x, y ) <= ExplorerConstants::UNKNOWN ) &&
-               ( m_ObstacleTransform->getValue ( x, y ) > m_MinAllowedObstacleDistance ) );
-    }
-
-    /**
-     * @return true if point is approachable from the current start position, false otherwise.
-     * @warning m_OccupancyMap, m_ObstacleTransform and m_DrivingDistanceTransform have to be present!
-     * @warning Call computeApproachableMaps before
-     */
-    inline bool isApproachable ( int x, int y ) const
-    {
-      return ( m_DrivingDistanceTransform->getValue ( x, y ) < ExplorerConstants::MAX_DISTANCE );
-    }
-
-    /** @brief Releases all memory of the member maps */
-    void releaseMaps();
-
-    /**
-      * @brief Helper function for computeDistanceTransformation.
-      * @param f 1D-Array for distance transformation
-      * @param n Number of elements in f
-      * @return Distance transformation of f
-      */
-    double* distanceTransform1D ( double *f, int n );
-
-    /**
-     * @brief Fills the given map from given start point with distance values to this point.
-     * The filling will only be performed on cells that are marked as free in m_OccupancyMap and
-     * that have an obstacle distance value between m_MinimumObstacleDistance and m_MaximumObstacleDistance.
-     * The map that is passed as argument will be fully overwritten by this function.
-     * @param map GridMap to fill
-     * @param start Start point for the fill algorithm
-     */
-    void distanceFloodFill ( GridMap<double>* map, Eigen::Vector2i start );
-
-    /** @brief Compute map needed for path calculation */
-    void computePathTransform();
-
-    /** @brief Compute map needed for exploration path calculation */
-    void computeExplorationTransform();
-
-    /** @brief Compute the distances to the next obstacle with eucledian distance transform from m_OccupancyMap. */
-    void computeObstacleTransform();
-
-    /** @brief Compute cost function based on obstacle transform */
-    void computeCostTransform();
-
-    /** @brief Compute the frontiers between free and unknown space. Depends on OccupancyMap and ObstacleTransform. */
-    void computeFrontierMap();
-
-    /** @brief Compute the target region (a circle of radius m_DesiredDistance around m_Target). */
-    void computeRegionMap();
-
-    /** @brief Compute the target map, which is either a frontier map or a region map. */
-    void computeTargetMap();
-
-    /** @brief Compute a map of driving distances from the start point */
-    void computeDrivingDistanceTransform();
-
-    /** @brief Compute a map of driving distances to the target point */
-    void computeTargetDistanceTransform();
-
-    /** @brief Compute maps needed for isWalkable */
-    void computeWalkableMaps();
-
-    /** @brief Compute maps needed for isApproachable */
-    void computeApproachableMaps();
-
-    /** @brief Start point for the way search algorithm. */
-    Eigen::Vector2i m_Start;
-
-    /** @brief Target for the way search algorithm */
-    Eigen::Vector2i m_Target;
-
-    /** @brief Desired distance to target in pixels */
-    int m_DesiredDistance;
-
-    /** @brief Occupancy map */
-    GridMap<int8_t>* m_OccupancyMap;
-
-    /** @see computeObstacleTransform */
-    GridMap<double>* m_ObstacleTransform;
-
-    /** @see computeCostTransform */
-    GridMap<double>* m_CostTransform;
-
-    /** @see computeTargetMap */
-    GridMap<bool>* m_TargetMap;
-
-    /** computeDrivingDistanceTransform */
-    GridMap<double>* m_DrivingDistanceTransform;
-
-    /** @see computeTargetDistanceTransform */
-    GridMap<double>* m_TargetDistanceTransform;
-
-    /** @see computePathTransform */
-    GridMap<double>* m_PathTransform;
-
-    /** @see computeExplorationTransform */
-    GridMap<double>* m_ExplorationTransform;
-
-    /** @see constructor */
-    double m_MinAllowedObstacleDistance;
-    double m_MaxAllowedObstacleDistance;
-
-    double m_MinSafeObstacleDistance;
-    double m_MaxSafeObstacleDistance;
-
-    /**
-     * Weight for safer path
-     */
-    double m_SafePathWeight;
-
-    /**
-     * Factor for minObstacleDistance that determines if a frontier pixel is valid
-     */
-    double m_FrontierSafenessFactor;
-
-    /**
-     * Real-world pose of the point (0,0) in the map
-     */
-    geometry_msgs::Pose m_Origin;
-
-};
-
-#endif
-
diff --git a/homer_nav_libs/include/homer_nav_libs/Explorer/GridMap.h b/homer_nav_libs/include/homer_nav_libs/Explorer/GridMap.h
deleted file mode 100644
index 64b3469e..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Explorer/GridMap.h
+++ /dev/null
@@ -1,575 +0,0 @@
-#ifndef   GridMap_H
-#define   GridMap_H
-
-#include <float.h>
-#include <iostream>
-#include <sstream>
-
-#include "ros/ros.h"
-
-#include <Eigen/Geometry>
-
-#define GRIDMAP_SAFE_ACCESS
-
-/**
- * @class  GridMap
- * @author Malte Knauf, Stephan Wirth, David Gossow (RX)
- * @brief  GridMap data structure. Implemeted as template class. The template type
- *         defines the data type of each map cell.
- */
-
-template<class DataT>
-class GridMap
-{
-
-	public:
-
-		/// Initialize empty map
-		GridMap();
-
-		/**
-		 * @param width Width of the map.
-		 * @param height Height of the map.
-		 * @param data Pointer to map data, must be of size width*height.
-		 * @param copyData if true, the map data will be copied
-		 *                 if false, GridMap takes ownership of the pointer
-         * @param cellSize physical size of each map cell [m]
-		 * @param centerX,centerY center of the map in world coordinates
-		 */
-		GridMap ( int width, int height, DataT* data = 0, bool copyData = true, float cellSize = 1, float centerX = 0, float centerY = 0 );
-
-		/// Copy data from given region
-        GridMap ( int width, int height, DataT* data, Eigen::AlignedBox2i extractRegion );
-
-		/// Copy data from given map
-		GridMap<DataT> ( const GridMap<DataT>& other ) { m_Data=0; *this = other; }
-
-		/// Copy data from given map
-		GridMap<DataT>& operator= ( const GridMap<DataT>& other );
-
-        ~GridMap();
-
-		/// Convert map coordinates to world coordinates
-		void mapToWorld ( int mapX, int mapY, float& worldX, float& worldY );
-
-		/// Convert world coordinates to map coordinates
-		void worldToMap ( float worldX, float worldY, int& mapX, int& mapY );
-
-		/// @brief set value at given position
-		inline void setValue ( int x, int y, DataT val );
-
-		/// @brief replace content with given value
-		void fill ( DataT val );
-		
-		/// @brief Draw a filled polygon into the map (world coords)
-        void drawPolygon ( std::vector<Eigen::Vector2d> vertices, DataT value );
-
-		/// @brief Draw a filled circle into the map (world coords)
-        void drawCircle( Eigen::Vector2d center, float radius, DataT value );
-
-		/// @return Value at the given position.
-		inline DataT getValue ( int x, int y ) const;
-
-		/// @return Pointer to given pixel
-        inline DataT* getDirectAccess ( int x, int y );
-
-		/// @return width in grid cells
-		int width() const { return m_Width; }
-
-		/// @return height in grid cells
-		int height() const { return m_Height; }
-
-  /// @return center of the map in world coordinates
-  Eigen::Vector2d center() const {return Eigen::Vector2d(m_CenterX,m_CenterY);}
-
-		/// @return side length of one cell in mm
-		float cellSize() { return m_CellSize; }
-
-	private:
-
-		void drawLine ( DataT *data, int startX, int startY, int endX, int endY, DataT value );
-		void fillPolygon ( DataT* data, int x, int y, char value );
-
-		int m_Width;
-		int m_Height;
-		int m_DataSize;
-		DataT* m_Data;
-		float m_CellSize;
-		float m_CenterX;
-		float m_CenterY;
-};
-
-
-template<class DataT>
-GridMap<DataT>::GridMap()
-{
-	m_Width = 0;
-	m_Height = 0;
-	m_DataSize = 0;
-	m_Data = 0;
-	m_CellSize = 0;
-	m_CenterX = 0;
-	m_CenterY = 0;
-}
-
-template<class DataT>
-GridMap<DataT>::GridMap ( int width, int height, DataT* data, bool copyData, float cellSize, float centerX, float centerY )
-{
-	m_Width = width;
-	m_Height = height;
-	m_CellSize = cellSize;
-	m_DataSize = width * height;
-	m_CenterX = centerX;
-	m_CenterY = centerY;
-	m_Data = 0;
-
-	if ( data )
-	{
-		if ( copyData )
-		{
-			m_Data = new DataT[m_DataSize];
-
-			for ( int i = 0; i < m_DataSize; i++ )
-			{
-				m_Data[i] = data[i];
-			}
-		}
-		else
-		{
-			m_Data = data;
-		}
-	}
-	else
-	{
-		m_Data = new DataT[m_DataSize];
-
-		for ( int i = 0; i < m_DataSize; i++ )
-		{
-			m_Data[i] = 0;
-		}
-	}
-}
-
-template<class DataT>
-GridMap<DataT>::GridMap (int width, int height, DataT* data, Eigen::AlignedBox2i extractRegion )
-{
-    m_Width = extractRegion.sizes().x();
-    m_Height = extractRegion.sizes().y();
-	m_DataSize = m_Width * m_Height;
-	m_Data = new DataT[m_DataSize];
-	m_CellSize = 1;
-	m_CenterX = 0;
-	m_CenterY = 0;
-
-    for ( int y = extractRegion.min().y(); y <= extractRegion.max().y(); y++ )
-	{
-        int yOffset = m_Width * y;
-
-        for ( int x = extractRegion.min().x(); x <= extractRegion.max().x(); x++ )
-		{
-            int i = x + yOffset;
-			m_Data[i] = data[i];
-		}
-	}
-}
-
-
-template<class DataT>
-inline DataT* GridMap<DataT>::getDirectAccess ( int x, int y )
-{
-#ifdef GRIDMAP_SAFE_ACCESS
-	if ( x >= 0 && x < m_Width && y >= 0 && y < m_Height )
-	{
-        return &m_Data[y * m_Width + x];
-	}
-	else
-	{
-		throw;
-	}
-#else
-    return &m_Data[y * m_Width + x];
-#endif
-}
-
-
-template<class DataT>
-GridMap<DataT>& GridMap<DataT>::operator= ( const GridMap<DataT>& other )
-{
-	delete[] m_Data;
-	m_Width = other.m_Width;
-	m_Height = other.m_Height;
-	m_DataSize = other.m_DataSize;
-	m_Data = new DataT[m_DataSize];
-	memcpy ( m_Data, other.m_Data, sizeof ( DataT ) *m_DataSize );
-	m_CellSize = other.m_CellSize;
-	m_CenterX = other.m_CenterX;
-	m_CenterY = other.m_CenterY;
-  return *this;
-}
-/* TODO
-template<class DataT>
-GridMap<DataT>::GridMap ( ExtendedInStream& strm )
-{
-	short version;
-	strm >> version;
-	strm >> m_Width;
-	strm >> m_Height;
-	strm >> m_CellSize;
-	strm >> m_CenterX;
-	strm >> m_CenterY;
-	m_DataSize = m_Width * m_Height;
-	m_Data = new DataT[m_DataSize];
-	strm.get ( m_Data, m_DataSize );
-}
-*/
-template<class DataT>
-GridMap<DataT>::~GridMap()
-{
-	if ( m_Data )
-	{
-		delete m_Data;
-		m_Data = 0;
-	}
-}
-/*
-template<class DataT>
-void GridMap<DataT>::storer ( ExtendedOutStream& strm ) const
-{
-	strm << short ( 12 );
-	strm << m_Width;
-	strm << m_Height;
-	strm << m_CellSize;
-	strm << m_CenterX;
-	strm << m_CenterY;
-	strm.put ( m_Data, m_DataSize );
-}
-*/
-
-template<class DataT>
-void GridMap<DataT>::mapToWorld ( int mapX, int mapY, float& worldX, float& worldY )
-{
-	worldX = m_CenterX + m_CellSize * ( mapX - m_Width / 2 );
-	worldY = m_CenterY + m_CellSize * ( mapY - m_Height / 2 );
-}
-
-template<class DataT>
-void GridMap<DataT>::worldToMap ( float worldX, float worldY, int& mapX, int& mapY )
-{
-	mapX = float ( m_Width ) / 2.0  - ( ( worldY - m_CenterY ) / m_CellSize + 0.5 );
-	mapY = float ( m_Height ) / 2.0 - ( ( worldX - m_CenterX ) / m_CellSize + 0.5 );
-
-	if ( mapX < 0 || mapX >= m_Width || mapY < 0 || mapY >= m_Height )
-	{
-                //ROS_WARN_STREAM ( "Index out of bounds: " << mapX << "," << mapY ); //TODO
-
-		if ( mapX < 0 )
-		{
-			mapX = 0;
-		}
-
-		if ( mapX >= m_Width )
-		{
-			mapX = m_Width - 1;
-		}
-
-		if ( mapY < 0 )
-		{
-			mapY = 0;
-		}
-
-		if ( mapY >= m_Height )
-		{
-			mapY = m_Height - 1;
-		}
-	}
-}
-
-
-template<class DataT>
-inline void GridMap<DataT>::setValue ( int x, int y, DataT val )
-{
-#ifdef GRIDMAP_SAFE_ACCESS
-	if ( x >= 0 && x < m_Width && y >= 0 && y < m_Height )
-	{
-        m_Data[y * m_Width + x] = val;
-	}
-	else
-	{
-		throw;
-	}
-#else
-    m_Data[y * m_Width + x] = val;
-#endif
-}
-
-template<class DataT>
-inline DataT GridMap<DataT>::getValue ( int x, int y ) const
-{
-#ifdef GRIDMAP_SAFE_ACCESS
-	if ( x >= 0 && x < m_Width && y >= 0 && y < m_Height )
-	{
-        return  m_Data[y * m_Width + x];
-	}
-	else
-	{
-                ROS_ERROR_STREAM( "Accessing map pixels " << x << "," << y << ": out of bounds (0,0," << m_Width-1 << "," << m_Height-1 << ")" ); //TODO
-		throw;
-	}
-#else
-    return  m_Data[y * m_Width + x];
-#endif
-}
-
-template<class DataT>
-void GridMap<DataT>::fill ( DataT val )
-{
-	for ( int i = 0; i < m_DataSize; i++ )
-	{
-		m_Data[i] = val;
-	}
-}
-
-/* TODO do we need image representation?
-template<class DataT>
-puma2::ColorImageRGB8* GridMap<DataT>::getImage ( DataT specialValue, DataT clipRangeLow, DataT clipRangeHigh )
-{
-	puma2::ColorImageRGB8* image = new puma2::ColorImageRGB8 ( m_Width, m_Height );
-	double maxVal = 0.0001;
-	double minVal = 0.0;
-
-	for ( int i = 0; i < m_DataSize; i++ )
-    {
-		if ( ( m_Data[i] < minVal ) && ( m_Data[i] != specialValue ) )
-		{
-			minVal = m_Data[i];
-		}
-
-		if ( ( m_Data[i] > maxVal ) && ( m_Data[i] != specialValue ) )
-		{
-			maxVal = m_Data[i];
-		}
-	}
-
-	std::ostringstream stream;
-
-	stream << " Min: " << minVal << "Max: " << maxVal;
-	stream << " ClipMin: " << double ( clipRangeLow ) << " ClipMax: " << double ( clipRangeHigh );
-        ROS_DEBUG_STREAM ( stream.str() ); //TODO: was TRACE_SYSTEMINFO
-
-	if ( maxVal > clipRangeHigh )
-	{
-		maxVal = clipRangeHigh;
-	}
-
-	if ( minVal < clipRangeLow )
-	{
-		minVal = clipRangeLow;
-	}
-
-	double range = maxVal - minVal;
-
-	puma2::ColorImageRGB8::PixelType* imageData;
-	imageData = image->unsafeRowPointerArray() [0];
-
-	for ( int i = 0; i < m_DataSize; i++ )
-	{
-		DataT currentValue = m_Data[i];
-
-		if ( currentValue == specialValue )
-		{
-			imageData[i][0] = 40;
-			imageData[i][1] = 220;
-			imageData[i][2] = 120;
-			continue;
-		}
-
-		if ( currentValue > clipRangeHigh )
-		{
-			imageData[i][0] = 200;
-			imageData[i][1] = 200;
-			imageData[i][2] = 128;
-			continue;
-		}
-
-		if ( currentValue < clipRangeLow )
-		{
-			imageData[i][0] = 40;
-			imageData[i][1] = 40;
-			imageData[i][2] = 180;
-			continue;
-		}
-
-		double valueDouble  = ( ( double ) ( currentValue - minVal ) ) / range;
-
-		unsigned char value = ( unsigned char ) ( valueDouble * 255 );
-
-		imageData[i][0] = value;
-		imageData[i][1] = value;
-		imageData[i][2] = value;
-	}
-
-	return image;
-}
-*/
-
-
-
-template<class DataT>
-void GridMap<DataT>::drawCircle(Eigen::Vector2d center, float radius, DataT value )
-{
-	int centerMapX,centerMapY;
-	worldToMap( center.x(), center.y(), centerMapX, centerMapY );
-	
-	int radiusCells = radius / m_CellSize;
-	int radiusCells2 = radiusCells*radiusCells;
-	
-    Eigen::AlignedBox2i bBox( Eigen::Vector2i(centerMapX - radiusCells, centerMapY - radiusCells), Eigen::Vector2i(centerMapX + radiusCells, centerMapY + radiusCells) );
-    Eigen::AlignedBox2i bBoxGrid( Eigen::Vector2i(0,0), Eigen::Vector2i(m_Width-1,m_Height-1) );
-    bBox.clamp( bBoxGrid );
-	
-    for ( int y = bBox.min().y(); y <= bBox.max().y(); y++ )
-	{
-        for ( int x = bBox.min().x(); x <= bBox.max().x(); x++ )
-		{
-			int xC = x-centerMapX;
-            int yC = y-centerMapY;
-			if ( xC*xC+yC*yC <= radiusCells2 )
-			{
-				setValue( x, y, value );
-			}
-		}
-	}
-}
-
-
-template<class DataT>
-void GridMap<DataT>::drawPolygon (std::vector<Eigen::Vector2d> vertices, DataT value )
-{
-  if ( vertices.size() == 0 )
-  {
-    ROS_INFO( "No vertices given!" );
-    return;
-  }
-	//make temp. map
-	DataT* data = new DataT[ m_DataSize ];
-	for ( int i = 0; i < m_DataSize; i++ )
-	{
-		data[i] = 0;
-	}
-	
-  //draw the lines surrounding the polygon
-  for ( unsigned int i = 0; i < vertices.size(); i++ )
-  {
-		int i2 = ( i+1 ) % vertices.size();
-		int startX,startY,endX,endY;
-		worldToMap( vertices[i].x(), vertices[i].y(), startX, startY );
-		worldToMap( vertices[i2].x(), vertices[i2].y(), endX, endY );
-    drawLine ( data, startX, startY, endX, endY, 1 );
-  }
-  //claculate a point in the middle of the polygon
-  float midX = 0;
-  float midY = 0;
-  for ( unsigned int i = 0; i < vertices.size(); i++ )
-  {
-    midX += vertices[i].x();
-    midY += vertices[i].y();
-  }
-  midX /= vertices.size();
-  midY /= vertices.size();
-	int midMapX,midMapY;
-	worldToMap( midX, midY, midMapX, midMapY );
-  //fill polygon
-  fillPolygon ( data, midMapX, midMapY, 1 );
-	
-	//copy polygon to map
-	for ( int i = 0; i < m_DataSize; i++ )
-	{
-		if ( data[i] != 0 )
-		{
-			m_Data[i] = value;
-		}
-	}
-	
-	delete[] data;
-}
-
-template<class DataT>
-void GridMap<DataT>::fillPolygon ( DataT* data, int x, int y, char value )
-{
-  int index = x + m_Width * y;
-  if ( value != data[index] )
-  {
-    data[index] = value;
-    fillPolygon ( data, x + 1, y, value );
-    fillPolygon ( data, x - 1, y, value );
-    fillPolygon ( data, x, y + 1, value );
-    fillPolygon ( data, x, y - 1, value );
-  }
-}
-
-
-template<class DataT>
-void GridMap<DataT>::drawLine ( DataT *data, int startX, int startY, int endX, int endY, DataT value )
-{
-  //bresenham algorithm
-  int x, y, t, dist, xerr, yerr, dx, dy, incx, incy;
-  // compute distances
-  dx = endX - startX;
-  dy = endY - startY;
-
-  // compute increment
-  if ( dx < 0 )
-  {
-    incx = -1;
-    dx = -dx;
-  }
-  else
-  {
-    incx = dx ? 1 : 0;
-  }
-
-  if ( dy < 0 )
-  {
-    incy = -1;
-    dy = -dy;
-  }
-  else
-  {
-    incy = dy ? 1 : 0;
-  }
-
-  // which distance is greater?
-  dist = ( dx > dy ) ? dx : dy;
-  // initializing
-  x = startX;
-  y = startY;
-  xerr = dx;
-  yerr = dy;
-
-  // compute cells
-  for ( t = 0; t < dist; t++ )
-  {
-    data[x + m_Width * y] = value;
-		
-    xerr += dx;
-    yerr += dy;
-    if ( xerr > dist )
-    {
-      xerr -= dist;
-      x += incx;
-    }
-    if ( yerr > dist )
-    {
-      yerr -= dist;
-      y += incy;
-    }
-  }
-}
-
-
-
-#endif
-
-#ifdef GRIDMAP_SAFE_ACCESS
-#undef GRIDMAP_SAFE_ACCESS
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/Box2D.h b/homer_nav_libs/include/homer_nav_libs/Math/Box2D.h
deleted file mode 100644
index fc6a5478..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/Box2D.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- *  Box2D.h
- *
- *  (C) 2008 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- *  Additional information:
- *  $Id: Box2D.h 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#ifndef Box2D_H
-#define Box2D_H
-
-#include <homer_nav_libs/Math/Point2D.h>
-#include <vector>
-
-/**
- * @class  Box2D
- * @author David Gossow (RX)
- * @brief  Represents a box given by the upper-left and lower-right corner
- */
-template<class T=float>
-class Box2D
-{
-
-  public:
-
-    /** @brief Creates a box given by top-left (minX,minY) and lower-right (maxX,maxY) coordinates */
-    Box2D(T minX=0, T minY=0, T maxX=0, T maxY=0);
-
-    /** @brief The destructor */
-    ~Box2D() {};
-
-    inline void setMinX(T value) { m_MinX=value; }
-    inline void setMaxX(T value) { m_MaxX=value; }
-    inline void setMinY(T value) { m_MinY=value; }
-    inline void setMaxY(T value) { m_MaxY=value; }
-
-    inline T minX() const { return m_MinX; }
-    inline T maxX() const { return m_MaxX; }
-    inline T minY() const { return m_MinY; }
-    inline T maxY() const { return m_MaxY; }
-
-    inline T width() const { return m_MaxX-m_MinX; }
-    inline T height() const { return m_MaxY-m_MinY; }
-
-    std::vector< Point2D > vertices();
-
-    /** @brief Clip the box to fit into clipArea */
-    void clip( Box2D<T> clipArea );
-
-    /** @return true if the given point is inside the box */
-    bool contains( T x, T y );
-
-    /** @brief enlarge the box by 'size' units in all directions */
-    void expand( T size );
-
-    /** @brief shrink the box by 'size' units in all directions */
-    void shrink( T size );
-
-    /** @brief expand the box so that it contains the given point */
-    void enclose( Point2D point );
-    void enclose( T x, T y );
-
-    template<class OtherT>
-    void enclose( Box2D<OtherT> box );
-
-    Point2D centerPoint()
-    {
-        Point2D center;
-        center.setX(m_MinX + ( (m_MaxX - m_MinX) / 2 ) );
-        center.setY(m_MinY + ( (m_MaxY - m_MinY) / 2 ) );
-        return center;
-    }
-
-    /** @brief area covered by the box */
-    T area();
-
-    Box2D<T>& operator/= ( T div ) { m_MinX/=div; m_MinY/=div; m_MaxX/=div; m_MaxY/=div; return *this; }
-    Box2D<T>& operator*= ( T div ) { m_MinX*=div; m_MinY*=div; m_MaxX*=div; m_MaxY*=div; return *this; }
-
-  private:
-
-    T m_MinX;
-    T m_MaxX;
-    T m_MinY;
-    T m_MaxY;
-
-};
-
-template<class T>
-Box2D<T>::Box2D(T minX, T minY, T maxX, T maxY)
-{
-  m_MinX=minX;
-  m_MinY=minY;
-  m_MaxX=maxX;
-  m_MaxY=maxY;
-}
-
-template<class T>
-void Box2D<T>::clip( Box2D<T> clipArea )
-{
-  if (m_MinX < clipArea.minX()) { m_MinX=clipArea.minX(); }
-  if (m_MinY < clipArea.minY()) { m_MinY=clipArea.minY(); }
-  if (m_MaxX > clipArea.maxX()) { m_MaxX=clipArea.maxX(); }
-  if (m_MaxY > clipArea.maxY()) { m_MaxY=clipArea.maxY(); }
-}
-
-template<class T>
-bool Box2D<T>::contains( T x, T y )
-{
-  return ( (x>=m_MinX) && (x<=m_MaxX) && (y>=m_MinY) && (y<=m_MaxY) );
-}
-
-template<class T>
-    void Box2D<T>::expand( T size )
-{
-  m_MinX-=size;
-  m_MaxX+=size;
-  m_MinY-=size;
-  m_MaxY+=size;
-}
-
-template<class T>
-void Box2D<T>::shrink( T size )
-{
-  m_MinX+=size;
-  m_MaxX-=size;
-  m_MinY+=size;
-  m_MaxY-=size;
-}
-
-template<class T>
-T Box2D<T>::area()
-{
-  T width = m_MaxX - m_MinX;
-  T height = m_MaxY - m_MinY;
-
-  T capacity = width * height;
-
-  return (T) capacity;
-}
-
-template<class T>
-void Box2D<T>::enclose( Point2D point )
-{
-  if ( m_MinX > point.x() ) { m_MinX=point.x(); }
-  if ( m_MinY > point.y() ) { m_MinY=point.y(); }
-  if ( m_MaxX < point.x() ) { m_MaxX=point.x(); }
-  if ( m_MaxY < point.y() ) { m_MaxY=point.y(); }
-}
-
-template<class T>
-void Box2D<T>::enclose( T x, T y )
-{
-  if ( m_MinX > x ) { m_MinX=x; }
-  if ( m_MinY > y ) { m_MinY=y; }
-  if ( m_MaxX < x ) { m_MaxX=x; }
-  if ( m_MaxY < y ) { m_MaxY=y; }
-}
-
-template<class T>
-template<class OtherT>
-void Box2D<T>::enclose( Box2D<OtherT> box )
-{
-  enclose( box.minX(), box.minY() );
-  enclose( box.maxX(), box.maxY() );
-}
-
-
-template<class T>
-std::vector< Point2D > Box2D<T>::vertices()
-{
-  std::vector<Point2D> myVertices(5);
-  myVertices[0]=Point2D( m_MinX-0.5, m_MinY-0.5 );
-  myVertices[1]=Point2D( m_MinX-0.5, m_MaxY+0.5 );
-  myVertices[2]=Point2D( m_MaxX+0.5, m_MaxY+0.5 );
-  myVertices[3]=Point2D( m_MaxX+0.5, m_MinY-0.5 );
-  myVertices[4]=myVertices[0];
-  return myVertices;
-}
-
-
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/Line2D.h b/homer_nav_libs/include/homer_nav_libs/Math/Line2D.h
deleted file mode 100644
index 9761be66..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/Line2D.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- *  Line2D.h
- *
- *  (C) 2008 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- *  Information on Code Review state:
- *  Author: SM; DevelTest: Date; Reviewer: Initials; Review: Date; State: NOK
- *
- *  Additional information:
- *  $Id: Line2D.h 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#ifndef LINE2D_H
-#define LINE2D_H
-
-#include <homer_nav_libs/Math/vec2.h>
-#include <homer_nav_libs/Math/mat2.h>
-#include <homer_nav_libs/Math/Point2D.h>
-#include <vector>
-
-/**
- * @class Line2D
- *
- * @author Susanne Maur
- *
- */
-class Line2D
-{
-
-  public:
-
-    /**
-     * Creates a new line.
-     * @param start Start point of the line.
-     * @param end End point of the line.
-     */
-    inline Line2D ( Point2D start, Point2D end )
-    {
-      m_Start = start;
-      m_Vec = end-m_Start;
-    }
-
-
-    /**
-      * Creates a new line.
-      * @param start Start point of the line.
-      * @param vec The vector from start to end point of the line.
-      */
-    inline Line2D ( Point2D start,  CVec2 vec )
-    {
-      m_Start = start;
-      m_Vec = vec;
-    }
-
-    /**
-     * Destructor does nothing.
-     */
-    inline ~Line2D() {}
-
-    /**
-     * Sets the start point of the line to a new value.
-     * @param start Start point of the line.
-     */
-    inline void setStart ( const Point2D start )
-    {
-      Point2D end = m_Start + m_Vec;
-      m_Start = start;
-      m_Vec = end-m_Start;
-    }
-
-    /**
-     * Sets the end point of the line to a new value.
-     * @param end End point of the line.
-     */
-
-    inline void setEnd ( const Point2D end )
-    {
-      m_Vec = end - m_Start;
-    }
-
-    /**
-     * Returns the start point of the line.
-     * @return Start point of the line.
-     */
-    inline Point2D start() const
-    {
-      return m_Start;
-    }
-
-    /**
-     * Returns the end point of the line.
-     * @return End point of the line.
-     */
-    inline Point2D end() const
-    {
-      return m_Start + m_Vec;
-    }
-
-    /**
-     * Returns a vector from the start to the end of the line.
-     * @return Vector to the end point of the line.
-     */
-    inline CVec2 vec() const
-    {
-      return m_Vec;
-    }
-
-    inline bool operator== ( const Line2D& line ) const
-    {
-      return ( m_Start == line.start() && end() == line.end() );
-    }
-
-    /**
-     * Returns the gradient of the line.
-     * @return Gradient of the line.
-     */
-    float gradient() const ;
-
-    /**
-    * Returns the length of the line.
-    * @return Length of the line.
-     */
-    inline float length() const {
-      return m_Vec.magnitude();
-    }
-
-    /**
-     * Returns the minimum  euclidean distance of the given point to the line.
-     * @param point Point of which the distance to the line will be calculated.
-     * @return Distance of point to line.
-     */
-    inline float distance ( Point2D point ) const
-    {
-      Point2D pointOnLine = getRootPoint ( point );
-      return ( point - pointOnLine ).magnitude();
-    }
-
-    /**
-     * Rotates the line round the origin.
-     * @param angle The angle of rotation in radiants.
-     */
-    inline void rotate ( float angle )
-    {
-      CMat2 rotMat = CMat2 ( angle );
-      m_Start = rotMat * m_Start;
-      m_Vec = rotMat * m_Vec;
-    }
-
-    /**
-     * Returns the point of the line with the minimal distance to a given point.
-     * This algorithm may return a point which lies on the extension of the line and not on itself.
-     * See also: getClosestPoint.
-     * @param point Point to which the distance is calculated.
-     * @return Root point of the line.
-     */
-    inline Point2D getRootPoint ( Point2D point ) const
-    {
-      float t = ( point-m_Start ) * m_Vec;
-      t /= m_Vec * m_Vec;
-      Point2D pointOnLine = m_Start + ( t * m_Vec );
-      return pointOnLine;
-    }
-
-    /**
-     * Returns the normal of the line.
-     * @return Normal of the line.
-     */
-    inline CVec2 getNormal() const {
-      return m_Vec.getNormal()/m_Vec.magnitude();
-    }
-
-    /**
-    * Returns the point of the line with the minimal distance to a given point.
-    * This algorithm returns always a point which lies on the line.
-    * Therefor it is not always the root point.
-    * See also: getRootPoint.
-    * @param point Point to which the distance is calculated.
-    * @return Root point of the line.
-     */
-    Point2D getClosestPoint ( Point2D point ) const;
-
-    /**
-    * Returns the intersection point of this line with a second line.
-    * The intersection point is element of this line.
-    * @param line The line with which the intersection is calculated.
-    * @return Intersection point.
-     */
-    Point2D getIntersectionPoint ( Line2D line ) const;
-
-    /**
-     * Returns the parameter t which identifies the intersection point of this line with a second line.
-     * The intersection point is element of this line.
-     * @param line The line with which the intersection is calculated.
-     * @return Parameter t which identifies the intersection point on the line.
-     */
-    float getIntersectionPointParameter ( Line2D line ) const;
-
-    /**
-     * @return Vertices, e.g. for use in a VectorObject
-     * @param  substeps number of linear interpolation steps between start and end
-     */
-    std::vector< Point2D > vertices ( unsigned substeps=0 );
-
-    /**
-     * @overwrite
-     */
-    std::string toString() const;
-
-  private:
-
-    /**
-     * Start point of the line.
-     */
-    Point2D m_Start;
-
-    /**
-     * Vector from the start to the end of the line.
-     */
-    CVec2 m_Vec;
-};
-
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/Math.h b/homer_nav_libs/include/homer_nav_libs/Math/Math.h
deleted file mode 100644
index d1ce8e65..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/Math.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- *  Math.h
- *
- *  (C) 2007 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- *  Additional information:
- *  $Id: $
- *******************************************************************************/
-
-#ifndef Math_H
-#define Math_H
-
-#include <vector>
-#include <homer_nav_libs/Math/Point2D.h>
-
-/**
- * @class  Math
- * @brief  Generic math and statistics functions
- * @author David Gossow (RX)
- */
-class Math
-{
-  public:
-
-    struct WeightedValue
-    {
-      float value;
-      float weight;
-    };
-
-    static const double Pi = 3.14159265358979323846;
-
-    /** @return mean value */
-    template<class ContainerT>
-    static double mean ( const ContainerT& values );
-
-    /** @return variance of given values */
-    template<class ContainerT>
-    static double variance ( const ContainerT& values );
-
-    /** @return mean angle of given values
-     *  @note   there are always two possible choices for the mean angle. This function returns the one with the smallest deviation
-     *  @note   Works for angles in [-Pi..Pi], negative angles are treated
-     */
-    static float meanAngle ( const std::vector<float>& angles );
-
-    static float meanAngleWeighted ( const std::vector< WeightedValue >& weightedAngles );
-
-    /** @return variance for given mean */
-    static float angleVariance ( float meanAngle, const std::vector<float>& angles );
-
-    /** @return minimal angle needed to turn from angle 1 to angle 2 [-Pi..Pi] */
-    static float minTurnAngle ( float angle1, float angle2 );
-
-    static Point2D center ( std::vector<Point2D>& points );
-
-    static float deg2Rad ( float deg ) { return deg / 180.0*Pi; }
-
-    static float rad2Deg ( float rad ) { return rad / Pi*180.0; }
-
-    static double randomGauss ( float variance = 1.0 );
-
-    static double random01 ( unsigned long init = 0 );
-
-    /** @return ratio between one dimension seen under old viewangle and dimension under new viewangle*/
-    static double angleToPercent ( double newAngle, double oldAngle ) { return tan ( ( Pi / 180.0 ) * newAngle / 2 ) / tan ( ( Pi / 180.0 ) * oldAngle / 2 ); };
-
-    /** @return angle under which the ratio between dimension seen under old viewangle and new viewangle equals percent*/
-    static double percentToAngle ( double percent, double angle ) { return 2* atan ( tan ( ( Pi / 180.0 ) * angle / 2 ) * percent ) * ( 180 / Pi ); };
-
-    /** @return horizontal view angle corresponding to diagonal view angle and aspect ratio (e.g. 4.0/3.0)*/
-    static double horizontalViewAngle ( double diagonalAngle, double aspectRatio ) { return verticalViewAngle ( diagonalAngle, 1.0 / aspectRatio ); };
-
-    /** @return vertical view angle corresponding to diagonal view angle and aspect ratio (e.g. 4.0/3.0)*/
-    static double verticalViewAngle ( double diagonalAngle, double aspectRatio )
-    {
-      return percentToAngle ( 1.0 / sqrt ( pow ( aspectRatio, 2 ) + 1.0 ), diagonalAngle );
-    };
-
-    template<class ValueT>
-    static inline ValueT min ( ValueT a, ValueT b ) { return a < b ? a : b; }
-
-    template<class ValueT>
-    static inline ValueT max ( ValueT a, ValueT b ) { return a > b ? a : b; }
-
-  private:
-
-    /** @brief The constructor */
-    Math();
-
-    /** @brief The destructor */
-    ~Math();
-
-};
-
-template<class ContainerT>
-double Math::mean ( const ContainerT& values )
-{
-  typename ContainerT::const_iterator it;
-  it = values.begin();
-  double sum = 0;
-  while ( it != values.end() )
-  {
-    sum += *it;
-    it++;
-  }
-  return sum / double ( values.size() );
-}
-
-
-template<class ContainerT>
-double Math::variance ( const ContainerT& values )
-{
-  double mean = mean ( values );
-  typename ContainerT::const_iterator it;
-  it = values.begin();
-  double sum = 0;
-  while ( it != values.end() )
-  {
-    double diff = *it - mean;
-    sum += diff * diff;
-    it++;
-  }
-  return sum / double ( values.size() );
-}
-
-
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/Pixel.h b/homer_nav_libs/include/homer_nav_libs/Math/Pixel.h
deleted file mode 100644
index cc58f229..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/Pixel.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- *  Pixel.h
- *
- *  (C) 2006 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- * $Id: Pixel.h 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#ifndef PIXEL_H
-#define PIXEL_H
-
-#include <homer_nav_libs/Math/Point2D.h>
-#include <vector>
-
-/** @class Pixel
-  * @brief Stores discrete pixel coordinates
-  * @author Stephan Wirth, David Gossow (RX)
-  */
-class Pixel {
-
-  public:
-
-    inline Pixel( int x = 0, int y = 0) { m_X = x; m_Y = y; };
-    inline ~Pixel() {};
-
-    inline int x() const { return m_X; }
-    inline int y() const { return m_Y; }
-
-    inline void setX( int x ) { m_X = x; }
-    inline void setY( int y ) { m_Y = y; }
-
-    inline bool operator ==( Pixel& rhs ) { return ( m_X == rhs.m_X ) && ( m_Y == rhs.m_Y ); }
-    inline bool operator !=( Pixel& rhs ) { return ( m_X != rhs.m_X ) || ( m_Y != rhs.m_Y ); }
-    inline Pixel operator *( float rhs ) { return Pixel( m_X * rhs, m_Y * rhs ); }
-    inline Pixel operator /( float rhs ) { return Pixel( m_X / rhs, m_Y / rhs ); }
-
-    inline Point2D toPoint2D() { return Point2D( m_X, m_Y ); }
-    
-    inline std::vector<Point2D> vertices()
-    {
-      std::vector<Point2D> result(5);
-      result[0]=Point2D( m_X-0.5, m_Y-0.5 );
-      result[1]=Point2D( m_X+0.5, m_Y-0.5 );
-      result[2]=Point2D( m_X+0.5, m_Y+0.5 );
-      result[3]=Point2D( m_X-0.5, m_Y+0.5 );
-      result[4]=result[0];
-      return result;
-    }
-
-  private:
-
-    int m_X;
-    int m_Y;
-
-};
-
-
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/Point2D.h b/homer_nav_libs/include/homer_nav_libs/Math/Point2D.h
deleted file mode 100644
index fdbf6fd0..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/Point2D.h
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- *  Point2D.h
- *
- *  (C) 2008 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- * $Id: Point2D.h 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#include <iostream>
-#include <sstream>
-
-#include <homer_nav_libs/Math/vec2.h>
-#include <float.h>
-
-#ifndef POINT2D_H
-#define POINT2D_H
-
-/**
- * @class Point2D
- *
- * @author Susanne Maur
- *
- */
-class Point2D
-{
-
-  public:
-
-    /**
-     * Creates a new point in 2D with x- and y-coordinat set to zero.
-     */
-    inline Point2D()
-    {
-      m_X = 0.0;
-      m_Y = 0.0;
-    }
-
-    /**
-    * Creates a new point in 2D.
-    * @param x x-coordinate of the point.
-    * @param y y-coordinate of the point.
-     */
-    inline Point2D ( double x, double y )
-    {
-      m_X = x;
-      m_Y = y;
-    }
-
-
-
-    /**
-     * Copy construcor
-     */
-    inline Point2D (const Point2D& p){
-      m_X = p.x();
-      m_Y = p.y();
-    }
-    
-    /**
-    * Creates a new point in 2D.
-    * @param v Vector form origin to the point.
-     */
-    inline Point2D ( const CVec2& v )
-    {
-      m_X = v[0];
-      m_Y = v[1];
-    }
-
-    /**
-    * Destructor, does nothing.
-     */
-    inline ~Point2D()
-    {
-    }
-
-    /**
-    * Returns the x-coordinate of the point.
-    * @return the x-coordinate of the point.
-     */
-    inline double x() const
-    {
-      return m_X;
-    }
-
-    /**
-    * Returns the y-coordinate of the point.
-    * @return the y-coordinate of the point.
-     */
-    inline double y() const
-    {
-      return m_Y;
-    }
-
-    /**
-    * Sets the x- and y-coordinate of the point to new values.
-    * @param x the new value of the x coordinate.
-    * @param y the new value of the x coordinate.
-     */
-    inline void set ( double x, double y )
-    {
-      m_X = x;
-      m_Y = y;
-    }
-
-    /**
-    * Sets the x-coordinate of the point to a new value.
-    * @param x the new value of the x coordinate.
-     */
-    inline void setX ( double x )
-    {
-      m_X = x;
-    }
-
-    /**
-    * Sets the y-coordinate of the point to a new value.
-    * @param y the new value of the x coordinate.
-     */
-    inline void setY ( double y )
-    {
-      m_Y = y;
-    }
-
-    /**
-     * Overloaded operators.
-     */
-
-    inline Point2D& operator= ( const Point2D& p) {
-      m_X = p.x();
-      m_Y = p.y(); 
-      return *this;
-    }
-
-    inline Point2D operator+ ( const CVec2& v ) const
-    {
-      return Point2D ( m_X + v[0], m_Y + v[1] );
-    }
-
-    inline Point2D operator+ ( const Point2D& p ) const
-    {
-      return Point2D ( m_X + p.x(), m_Y + p.y() );
-    }
-
-    inline CVec2 operator- ( const Point2D& p ) const
-    {
-      return CVec2 ( m_X - p.x(), m_Y - p.y() );
-    }
-
-    inline Point2D operator- ( const CVec2& v ) const
-    {
-      return Point2D ( m_X - v[0], m_Y - v[1] );
-    }
-
-    inline Point2D operator* ( double scalar ) const
-    {
-      return Point2D ( m_X * scalar, m_Y * scalar );
-    }
-
-    inline Point2D operator/ ( double scalar ) const
-    {
-      return Point2D ( m_X / scalar, m_Y / scalar );
-    }
-
-    inline Point2D& operator+= ( const CVec2& v )
-    {
-      m_X += v[0];
-      m_Y += v[1];
-      return ( *this );
-    }
-
-    inline Point2D& operator-= ( const CVec2& v )
-    {
-      m_X -= v[0];
-      m_Y -= v[1];
-      return ( *this );
-    }
-
-    inline Point2D& operator*= ( double scalar )
-    {
-      m_X *= scalar;
-      m_Y *= scalar;
-      return ( *this );
-    }
-
-    inline Point2D& operator/= ( double scalar )
-    {
-      m_X /= scalar;
-      m_Y /= scalar;
-      return ( *this );
-    }
-
-    inline double operator [] ( unsigned int i ) const
-    {
-      return ( ( double* ) this ) [i];
-    }
-
-    inline double& operator [] ( unsigned int i )
-    {
-      return ( ( double* ) this ) [i];
-    }
-
-    inline bool operator== ( const Point2D& point ) const
-    {
-      return ( fabs(m_X - point.x()) < 0.001 && fabs(m_Y - point.y()) < 0.001 );
-    }
-
-    inline bool operator!= ( const Point2D& point ) const
-    {
-      return !((*this)== point);
-    }
-
-    /**
-    * Returns the distance to a given point.
-    * @param point The point to calculate the distance to.
-    * @return the distance between point the two points.
-     */
-    inline double distance ( const Point2D& point ) const
-    {
-      return sqrt ( ( m_X-point.x() ) * ( m_X-point.x() ) + ( m_Y-point.y() ) * ( m_Y-point.y() ) );
-    }
-
-    /**
-    * Returns the distance to origin.
-    * @return the distance between point the two points.
-     */
-    inline double distance ( ) const
-    {
-      return sqrt ( m_X * m_X + m_Y * m_Y );
-    }
-
-    /**
-    * Checks whether two points are equal.
-    * @param p The point to check equality.
-    * @return true if points are equal, false otherwise.
-     */
-    inline bool equal ( const Point2D& point ) const
-    {
-      if ( ( *this - point ).magnitude() < 0.0001 )
-      {
-        return true;
-      }
-      else
-      {
-        return false;
-      }
-    }
-
-    /**
-    * Returns the vector which represents the point in 2D.
-    * @return vector which represents the point in 2D.
-     */
-    inline CVec2 toVector() const
-    {
-      return CVec2 ( m_X, m_Y );
-    }
-
-        /**
-     * Returns the angle of the corresponding polar coordinates.
-     * @return polar angle.
-         */
-    float getPolarAngle () const;
-
-    /**
-    * Rotate by angle (in radiants) around center.
-    * @param center Center of rotation
-    * @param angle Angle in radiants
-     */
-    inline void rotate ( const Point2D& center, float angle )
-    {
-      double x0=m_X-center.m_X;
-      double y0=m_Y-center.m_Y;
-      double xRot =  x0*cos ( angle ) - y0*sin ( angle );
-      double yRot =  x0*sin ( angle ) + y0*cos ( angle );
-      m_X = xRot+center.m_X;
-      m_Y = yRot+center.m_Y;
-    }
-
-    /**
-     * Rotate by angle (in radiants) around (0,0).
-     * @param angle Angle in radiants
-     */
-    inline void rotate ( float angle )
-    {
-      double xRot =  m_X*cos ( angle ) - m_Y*sin ( angle );
-      double yRot =  m_X*sin ( angle ) + m_Y*cos ( angle );
-      m_X = xRot;
-      m_Y = yRot;
-    }
-
-    /**
-    * Returns the string representation of the point.
-    * @return string representation of the point.
-     */
-    inline std::string toString() const
-    {
-      std::ostringstream str;
-      str << m_X << " " << m_Y;
-      return str.str();
-    }
-
-    /** @return "invalid" Point (used as end marker in vector drawings) **/
-    static Point2D invalidPoint() { return Point2D( DBL_MAX, DBL_MAX  ); }
-
-    bool isValid() { return ( ( m_X != DBL_MAX ) || ( m_Y != DBL_MAX ) ); }
-
-  protected:
-
-    double m_X;
-    double m_Y;
-};
-
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/Pose.h b/homer_nav_libs/include/homer_nav_libs/Math/Pose.h
deleted file mode 100644
index a4b47b9a..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/Pose.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- *  Pose.h
- *
- *  (C) 2006 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- * $Id: Pose.h 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#ifndef POSE_H
-#define POSE_H
-
-#include <homer_nav_libs/Math/Point2D.h>
-
-class Transformation2D;
-
-/**
- * @class Pose
- *
- * @author Stephan Wirth, Susanne Maur (RX), David Gossow (RX)
- * @brief Class to describe and hold a pose of the robot (x, y)-Position + Orientation
- *        in world-coordinates
- */
-class Pose : public Point2D {
-
-public:
-
-    /**
-     * Constructor which initializes the members with the given values.
-     * @param x x-position
-     * @param y y-position
-     * @param theta orientation in radiants
-     */
-    Pose(float x, float y, float theta);
-
-    /**
-     * Default constructor, initializes members to 0.
-     */
-    Pose();
-
-    /**
-    * The destructor is empty.
-    */
-    ~Pose();
-
-    float theta() const;
-
-    void setTheta(float theta);
-
-    Pose operator+ ( const Transformation2D& transformation ) const;
-    Pose operator- ( const Transformation2D& transformation ) const;
-    Transformation2D operator- ( const Pose& pose ) const;
-
-    /**
-     * Interpolates between two poses and returns a pose which correlates with
-     * current pose +  t * (reference pose - current pose)
-     * @param referencePose The second pose to interpolate between.
-     * @param t The factor of interpolation.
-     * @return Interpolated pose
-     */
-    Pose interpolate(const Pose& referencePose, float t) const;
-
-//    Pose( ExtendedInStream& extStrm );
-
-//    void storer( ExtendedOutStream& extStrm ) const;
-
-protected:
-
-    float m_Theta;
-};
-
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/Transformation2D.h b/homer_nav_libs/include/homer_nav_libs/Math/Transformation2D.h
deleted file mode 100644
index a2ba0d67..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/Transformation2D.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- *  Transformation2D.h
- *
- *  (C) 2008 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- * $Id: Transformation2D.h 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#ifndef TRANSFORMATION2D_H
-#define TRANSFORMATION2D_H
-
-#include <cmath>
-#include <vector>
-#include <homer_nav_libs/Math/Point2D.h>
-#include <homer_nav_libs/Math/Line2D.h>
-
-
-/**
- * @class Transformation2D
- *
- * @author Susanne Maur
- *
- * @brief Class to describe a transformation of poses in 2D.
- * This inplies a translation in x and y direction each and a rotation.
- */
-class Transformation2D : public CVec2
-{
-
-  public:
-
-    /**
-     * Constructor that initializes the members.
-     * @param x translation in x direction in m
-     * @param y translation in y direction in m
-     * @param theta rotation in radiants
-     */
-    Transformation2D ( double x, double y, double theta );
-
-    /**
-     * Constructor that initializes the members.
-     * @param vec a vector which represents the translation in x and y direction
-     * @param theta rotation in radiants
-     */
-    Transformation2D ( const CVec2& vec, double theta );
-
-    /**
-     * Default constructor sets all members to 0.0.
-     */
-    Transformation2D();
-
-    /**
-     * Default destructor.
-     */
-    ~Transformation2D();
-
-    /**
-     * Sets the values of transformation.
-     * @param x translation in x direction in mm
-     * @param y translation in y direction in mm
-     * @param theta rotation in radiants
-     */
-    void set ( double x, double y, double theta );
-
-    /**
-     * Returns the rotation in radiants.
-     * @return rotation in radiants
-     */
-    double theta() const;
-
-    /**
-     * Adds two transformations.
-     */
-    Transformation2D operator+ ( Transformation2D t ) const;
-    Transformation2D& operator+= ( Transformation2D t );
-
-    /**
-     * Subtracts two transformations.
-     */
-    Transformation2D operator- ( Transformation2D t ) const;
-    Transformation2D& operator-= ( Transformation2D t );
-
-    /**
-     * Scales a transformation by a factor
-     */
-    Transformation2D operator* ( float factor ) const;
-    Transformation2D& operator*= ( float factor );
-
-    /**
-     * Scales a transformation by a factor
-     */
-    Transformation2D operator/ ( float factor ) const;
-    Transformation2D& operator/= ( float factor );
-
-    /**
-     * Test equality of transformations.
-     */
-    bool operator== ( Transformation2D t ) const;
-    bool operator!= ( Transformation2D t ) const;
-
-    /**
-     * Compare transformations.
-     * (attention: algebraic signs are taken into account, if necessary use fabs())
-     */
-    bool operator<= ( Transformation2D t ) const;
-    bool operator>= ( Transformation2D t ) const;
-    bool operator< ( Transformation2D t ) const;
-    bool operator> ( Transformation2D t ) const;
-
-    /**
-     * Applies abs() on every attribute.
-     */
-    Transformation2D abs() const;
-
-    /**
-     * Inverts the transformation, scales every attribute with -1.
-     */
-    Transformation2D inverse() const;
-
-    /**
-     * Transformes points by first rotation, then translating.
-     */
-    Point2D transform ( const Point2D& point ) const;
-    std::vector<Point2D> transform ( const std::vector<Point2D>& points ) const;
-
-    /**
-     * Transformes lines by first rotation, then translating.
-     */
-    Line2D transform ( const Line2D& line ) const;
-    std::vector<Line2D> transform ( const std::vector<Line2D>& lines ) const;
-
-    /**
-     * Returns the string representation of the transformation.
-     * @return string representation of the transformation.
-     */
-    std::string toString() const;
-
-  private:
-    double m_Theta;
-};
-
-#endif
-
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/mat2.h b/homer_nav_libs/include/homer_nav_libs/Math/mat2.h
deleted file mode 100644
index 45365d81..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/mat2.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- *  mat2.h
- *
- *  (C) 2006 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- * Author: Frank Neuhaus
- *******************************************************************************/
-
-#ifndef MAT2_H
-#define MAT2_H
-
-#include <math.h>
-#include <homer_nav_libs/Math/Point2D.h>
-#include <homer_nav_libs/Math/vec2.h>
-
-class CMat2
-{
-	public:
-		CMat2();
-		CMat2(float rot);
-		~CMat2();
-
-		CMat2 operator *(const CMat2 &mat) const;
-
-		CVec2 operator *(const CVec2& v) const;
-
-		Point2D operator *(const Point2D& p) const;
-        
-        float& operator [] (unsigned int position) {
-            return fMatrix[position];
-        }
-        
-        CMat2 operator +(const CMat2 rhs) const {
-            CMat2 newMatrix;
-            for (unsigned int i = 0; i < 4; i++) {
-                newMatrix[i] = valueAt(i) + rhs.valueAt(i);
-            }
-            return newMatrix;
-        }
-        
-        CMat2 operator -(const CMat2 rhs) const {
-            CMat2 newMatrix;
-            for (unsigned int i = 0; i < 4; i++) {
-                newMatrix[i] = valueAt(i) - rhs.valueAt(i);
-            }
-            return newMatrix;
-        }
-        
-        float valueAt(unsigned int position) const{
-            return fMatrix[position];
-        }
-        
-		union
-		{
-			float fMatrix[4];
-			float m[2][2];
-			struct
-			{
-				float xx, xy;
-				float yx, yy;
-			};
-		};
-
-		void transpose();
-		void loadIdentity();
-
-		void makeRotation(float fA);
-
-		bool invert();
-};
-
-
-
-#include "mat2_inl.h"
-
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/mat2_inl.h b/homer_nav_libs/include/homer_nav_libs/Math/mat2_inl.h
deleted file mode 100644
index e3f77e16..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/mat2_inl.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- *  mat2_inl.h
- *
- *  (C) 2006 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- * Author: Frank Neuhaus
- *******************************************************************************/
-
-#include <assert.h>
-
-inline CMat2::CMat2(){
-    for (unsigned int i = 0; i < 4; i++) {
-        fMatrix[i] = 0;
-    }
-}
-
-inline CMat2::~CMat2()
-{}
-
-inline CMat2::CMat2(float rot)
-{
-	makeRotation(rot);
-}
-
-inline CMat2 CMat2::operator * ( const CMat2 & mat ) const
-{
-    CMat2 retValue;
-    for (unsigned int line = 0; line < 2; line++) {
-        for (unsigned int column = 0; column < 2; column++) {
-            retValue[line*2 + column] = valueAt(line*2 + column) + mat.valueAt(column*2 + line);
-        }
-    }
-    return retValue;
-}
-
-inline CVec2 CMat2::operator * ( const CVec2& v ) const
-{
-	return CVec2(xx*v[0] + xy*v[1],yx*v[0] + yy*v[1]);
-}
-
-inline Point2D CMat2::operator * ( const Point2D& p ) const
-{
-	return Point2D(xx*p.x() + xy*p.y(), yx*p.x() + yy*p.y());
-}
-
-inline void CMat2::transpose()
-{
-	float t=xy;
-	xy=yx;
-	yx=t;
-}
-
-inline void CMat2::loadIdentity()
-{
-	xx=1.0f; xy=0.0f;
-	yx=0.0f; yy=1.0f;
-}
-
-inline void CMat2::makeRotation ( float fA )
-{
-	xx=yy=cosf(fA);
-	yx=sinf(fA);
-	xy=-yx;
-}
-
-inline bool CMat2::invert()
-{
-	CMat2 tmp;
-	float det = fMatrix[0]*fMatrix[3] - fMatrix[1]*fMatrix[2];
-
-	if(fabs(det) < 0.001f)	return false;
-
-	det = 1.0 / det;
-	tmp.fMatrix[0] = fMatrix[3]*det;
-	tmp.fMatrix[1] = -fMatrix[1]*det;
-	tmp.fMatrix[2] = -fMatrix[2]*det;
-	tmp.fMatrix[3] = fMatrix[0]*det;
-
-	(*this)=tmp;
-	return true;
-}
-
-
-
-
diff --git a/homer_nav_libs/include/homer_nav_libs/Math/vec2.h b/homer_nav_libs/include/homer_nav_libs/Math/vec2.h
deleted file mode 100644
index 39a72c8e..00000000
--- a/homer_nav_libs/include/homer_nav_libs/Math/vec2.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- *  vec2.h
- *
- *  (C) 2006 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- * Author: Frank Neuhaus, Susanne Maur
- *******************************************************************************/
-
-#include <iostream>
-#include <sstream>
-
-#ifndef VEC2_H
-#define VEC2_H
-
-#include <math.h>
-
-class CVec2
-{
-  public:
-
-    inline CVec2()
-    {
-      m_X = 0; m_Y = 0;
-    }
-
-    inline CVec2 ( double x, double y )
-    {
-      m_X=x; m_Y=y;
-    }
-
-    inline CVec2 ( const CVec2& vec )
-    {
-      m_X=vec.x(); m_Y=vec.y();
-    }
-
-    inline CVec2 operator+ ( const CVec2& vVector ) const
-    {
-      return CVec2 ( vVector[0] + m_X, vVector[1] + m_Y );
-    };
-
-    inline CVec2 operator- ( const CVec2& vVector ) const
-    {
-      return CVec2 ( m_X - vVector[0], m_Y - vVector[1] );
-    };
-    
-    inline CVec2 operator- ( ) const
-    {
-        return CVec2 ( - m_X, - m_Y );
-    };
-
-    inline CVec2 operator* ( double num ) const
-    {
-      return CVec2 ( m_X * num, m_Y * num );
-    };
-
-    inline double operator* ( const CVec2& vVector ) const
-    {
-      return m_X*vVector[0]+m_Y*vVector[1];
-    }
-
-    inline CVec2 operator/ ( double num ) const
-    {
-      return CVec2 ( m_X / num, m_Y / num );
-    }
-
-    inline void set ( double fx, double fy )
-    {
-      m_X=fx; m_Y=fy;
-    }
-
-    inline double x() const
-    {
-      return m_X;
-    }
-
-    inline double y() const
-    {
-      return m_Y;
-    }
-
-    inline double magnitude() const
-    {
-      double sumOfSquares = m_X*m_X + m_Y*m_Y;
-      return sqrt ( sumOfSquares );
-    }
-
-    inline double operator [] ( unsigned int i ) const
-    {
-      return ( ( double* ) this ) [i];
-    }
-
-    inline double& operator [] ( unsigned int i )
-    {
-      return ( ( double* ) this ) [i];
-    }
-
-    inline CVec2& operator/= ( double num )
-    {
-      double inv=1.0f/num;
-      m_X*=inv;
-      m_Y*=inv;
-      return ( *this );
-    }
-
-    inline CVec2& operator*= ( double num )
-    {
-      m_X*=num;
-      m_Y*=num;
-      return ( *this );
-    }
-
-    inline CVec2& normalize()
-    {
-      return ( *this/=magnitude() );
-    }
-
-    inline CVec2& makePerp()
-    {
-      double xn=m_X;
-      m_X=-m_Y;
-      m_Y=xn;
-      return *this;
-    }
-
-    inline CVec2 getNormal() const
-    {
-      return CVec2 ( m_Y, -m_X ); //?
-    }
-
-    inline CVec2 getNormalized() const
-    {
-      return ( *this ) /magnitude();
-    }
-
-    inline double sqr() const
-    {
-      return ( *this ) * ( *this );
-    }
-
-    inline double dot ( const CVec2& vec ) const
-    {
-      return ( m_X*vec[0] ) + ( m_Y*vec[1] );
-    }
-
-    inline double getAngle ( const CVec2& vec ) const
-    {
-      return acos ( dot ( vec ) / ( magnitude() *vec.magnitude() ) );
-    }
-
-    /// @param angle Rotation angle in radiants
-    inline CVec2 rotate ( float angle ) const
-    {
-      double xRot =  m_X*cos ( angle ) - m_Y*sin ( angle );
-      double yRot =  m_X*sin ( angle ) + m_Y*cos ( angle );
-      return CVec2 ( xRot, yRot );
-    }
-
-    inline bool equal ( CVec2 vec ) const
-    {
-      return ( m_X==vec.x() && m_Y==vec.y() );
-    }
-
-    /**
-     * Returns the string representation of the vector.
-     * @return string representation of the point.
-     */
-    inline std::string toString() const
-    {
-      std::ostringstream str;
-      str << m_X << " " << m_Y;
-      return str.str();
-    }
-
-  protected:
-    double m_X, m_Y;
-};
-
-inline CVec2 operator* ( double f, const CVec2& v )
-{
-  return v*f;
-}
-
-inline CVec2 normalize ( const CVec2& v )
-{
-  return v/v.magnitude();
-}
-
-#endif
diff --git a/homer_nav_libs/include/homer_nav_libs/tools.h b/homer_nav_libs/include/homer_nav_libs/tools.h
deleted file mode 100644
index 112c22f3..00000000
--- a/homer_nav_libs/include/homer_nav_libs/tools.h
+++ /dev/null
@@ -1,396 +0,0 @@
-#ifndef TOOLS_H
-#define TOOLS_H
-
-#include <Eigen/Geometry>
-#include <geometry_msgs/Point.h>
-#include <geometry_msgs/Pose.h>
-#include <sensor_msgs/LaserScan.h>
-#include <tf/transform_listener.h>
-#include <ros/ros.h>
-#include <vector>
-
-/**
- * @author Malte Knauf (2014)
- * Convenience functions that are often used in the mapping and navigation process
- */
-namespace map_tools
-{
-
-    /**
-     * @brief Converts a point p in world frame /map to the respective cell position in the map
-     * @param p Point in world frame
-     * @param origin Origin of the map
-     * @param resolution Resolution of the map
-     * @return Cell position of the point
-     */
-    Eigen::Vector2i toMapCoords(geometry_msgs::Point p, geometry_msgs::Pose origin, float resolution)
-    {
-        int x_idx = (p.x - origin.position.x)/resolution + 0.51;
-        int y_idx = (p.y - origin.position.y)/resolution + 0.51;
-        Eigen::Vector2i ret(x_idx, y_idx);
-        return ret;
-    }
-
-    /**
-     * @brief Converts the cell position of a point to its respective position in the world frame
-     * @param idx Cell position of the point
-     * @param origin Origin of the map
-     * @param resolution Resolution of the map
-     * @return Point in world frame
-     */
-    geometry_msgs::Point fromMapCoords(Eigen::Vector2i idx, geometry_msgs::Pose origin, float resolution)
-    {
-        geometry_msgs::Point ret;
-        ret.x = origin.position.x + (idx.x() - 0.5) * resolution;
-        ret.y = origin.position.y + (idx.y() - 0.5) * resolution;
-        return ret;
-    }
-
-    /**
-     * @brief Converts the QT pixel position of a point to its respective position in the world frame
-     * @param idx Cell position of the point
-     * @param origin Origin of the map
-     * @param resolution Resolution of the map
-     * @return Point in world frame
-     */
-    geometry_msgs::Point qtFromMapCoords(Eigen::Vector2i idx, geometry_msgs::Pose origin, float resolution)
-    {
-        geometry_msgs::Point ret;
-        ret.x = -(origin.position.x + idx.y()) * resolution;
-        ret.y = -(origin.position.y + idx.x()) * resolution;
-        return ret;
-    }
-
-    /**
-     * @brief map_index returns for a given point in the map real-world frame the respective index in the map
-     * @param p Point in the real-world frame (usually the frame /map or /world)
-     * @param origin Pose of the point (0,0) of the map in the real-world frame
-     * @param width Width of the map
-     * @param resolution Resolution in meters/cell of the map
-     * @return index of point in the map
-     */
-    int map_index(geometry_msgs::Point p, geometry_msgs::Pose origin, float width, float resolution)
-    {
-        return (int)(width *
-               ((p.y - origin.position.y)/resolution + 0.51) +
-               ((p.x - origin.position.x)/resolution + 0.51));
-    }
-
-    /**
-     * @brief point_in_map returns true if given point is in the map. False otherwise
-     * @param p Point in the real-world frame (usually the frame /map or /world)
-     * @param origin Pose of the point (0,0) of the map in the real-world frame
-     * @param width Width of the map
-     * @param resolution Resolution in meters/cell of the map
-     * @return true or false
-     */
-    bool point_in_map(geometry_msgs::Point p, geometry_msgs::Pose origin, float width, float resolution)
-    {
-        int x_idx = (p.x - origin.position.x)/resolution + 0.51;
-        int y_idx = (p.y - origin.position.y)/resolution + 0.51;
-        if(x_idx < 0 || y_idx < 0 || x_idx >= width || y_idx >= width) return false;
-        return true;
-    }
-
-    /**
-     * @brief transformPoint wrapper to transform points between coordinate frames
-     * @param point input point in from_frame
-     * @param listener transform listener
-     * @param from_frame input frame
-     * @param to_frame output frame
-     * @return transformed point in to_frame
-     */
-    geometry_msgs::Point transformPoint(geometry_msgs::Point point, tf::TransformListener &listener,
-                                        std::string from_frame, std::string to_frame, ros::Time stamp = ros::Time(0))
-    {
-        geometry_msgs::PointStamped pin;
-        geometry_msgs::PointStamped pout;
-        pin.header.frame_id = from_frame;
-        pin.point = point;
-        try
-        {
-            listener.transformPoint(to_frame, stamp, pin, "/map",pout);
-            return pout.point;
-        }
-        catch (tf::TransformException ex){
-              ROS_ERROR("%s",ex.what());
-        }
-    }
-    
-    geometry_msgs::Point transformPoint(const geometry_msgs::Point point, tf::StampedTransform transform)
-    {    
-      geometry_msgs::Point point_out;
-	  tf::Vector3 pin;
-	  tf::Vector3 pout;
-	  pin.setX(point.x);
-	  pin.setY(point.y);
-	  pin.setZ(point.z);
-
-	  pout = transform* pin;
-
-	  point_out.x = pout.x();
-	  point_out.y = pout.y();
-
-	  return point_out;
-	 }
-     geometry_msgs::Point transformPoint(const geometry_msgs::Point point, tf::Transform transform)
-    {    
-      geometry_msgs::Point point_out;
-	  tf::Vector3 pin;
-	  tf::Vector3 pout;
-	  pin.setX(point.x);
-	  pin.setY(point.y);
-	  pin.setZ(point.z);
-
-	  pout = transform* pin;
-
-	  point_out.x = pout.x();
-	  point_out.y = pout.y();
-	  point_out.z = pout.z();
-
-	  return point_out;
-	 }
-    
-    /**
-     * @brief transformPoint wrapper to transform points between coordinate frames at specific time
-     * @param point input point in from_frame
-     * @param listener transform listener
-     * @param Time to look for transform
-     * @param from_frame input frame
-     * @param to_frame output frame
-     * @return transformed point in to_frame
-     */
-    geometry_msgs::Point transformPoint(geometry_msgs::Point point, tf::TransformListener &listener, const ros::Time & time ,
-                                        std::string from_frame, std::string to_frame)
-    {
-        geometry_msgs::PointStamped pin;
-        geometry_msgs::PointStamped pout;
-        pin.header.frame_id = from_frame;
-        pin.point = point;
-        try
-        {
-            listener.transformPoint(to_frame, time, pin, "/map" ,pout);
-            return pout.point;
-        }
-        catch (tf::TransformException ex){
-              ROS_ERROR("%s",ex.what());
-        }
-    }
-
-    /**
-     * @brief laser_range_to_point converts a single given laser scan range in polar coordinates
-     *          to the respective point in euclidean coordinates in the target frame
-     * @param laser_range range of the laser point to convert
-     * @param index
-     * @param start_angle
-     * @param angle_step
-     * @param listener
-     * @param from_frame
-     * @param to_frame
-     * @return
-     */
-    geometry_msgs::Point laser_range_to_point(float laser_range, int index, float start_angle,
-                                              float angle_step, tf::TransformListener &listener,
-                                              std::string from_frame, std::string to_frame, ros::Time stamp = ros::Time(0), float time_inc = 0)
-    {
-        float alpha = start_angle + index * angle_step;
-        geometry_msgs::PointStamped pin;
-        geometry_msgs::PointStamped pout;
-        pin.header.frame_id = from_frame;
-        pin.point.x = cos(alpha) * laser_range;
-        pin.point.y = sin(alpha) * laser_range;
-
-        try
-        {      
-            listener.transformPoint(to_frame, stamp, pin, "/map", pout);
-            return pout.point;
-        }
-        catch (tf::TransformException ex){
-              //ROS_ERROR("%s",ex.what());
-        }
-    }
-
-    /**
-     * @brief laser_ranges_to_points converts a given laser scan in polar coordinates
-     *          to the respective points in euclidean coordinates in the target frame
-     * @param laser_data laser data ranges
-     * @param start_angle angle of the first measurement
-     * @param angle_step angle increment between two consecutive laser measurements
-     * @param range_min minimum valid range
-     * @param range_max maximum valid range
-     * @return vector containing the laser measurements in euclidean points
-     */
-    std::vector<geometry_msgs::Point> laser_ranges_to_points(const std::vector<float>& laser_data, float start_angle,
-                                                        float angle_step, float range_min, float range_max,
-                                                        tf::TransformListener &listener,
-                                                        std::string from_frame, std::string to_frame, ros::Time stamp = ros::Time(0), float time_inc = 0)
-    {
-        std::vector<geometry_msgs::Point> ret;
-        float alpha = start_angle;
-        for (int i = 0; i < laser_data.size(); i++) {
-          if(laser_data[i] < range_min || laser_data[i] > range_max)
-          {
-              alpha += angle_step;
-              continue;
-          }
-          geometry_msgs::Point point;
-          point.x = cos(alpha) * laser_data.at(i);
-          point.y = sin(alpha) * laser_data.at(i);
-
-          geometry_msgs::PointStamped pin;
-          pin.header.frame_id = from_frame;
-          pin.point = point;
-          geometry_msgs::PointStamped pout;
-          try
-          {
-              listener.transformPoint(to_frame, stamp, pin, "/map", pout);
-              ret.push_back(pout.point);
-          }
-          catch (tf::TransformException ex){
-                //ROS_ERROR("%s",ex.what());
-          }
-
-          alpha += angle_step;
-        }
-        return ret;
-    }
-    
-    
-        /**
-     * @brief laser_msg_to_points converts a given laser scan in polar coordinates
-     *          to the respective points in euclidean coordinates in the target frame 
-     *			at a specific time
-     * @param scan laser data msg
-     * @param listener TransformListener
-     * @param to_frame target frame
-     * @return vector containing the laser measurements in euclidean points
-     */
-    std::vector<geometry_msgs::Point> laser_msg_to_points(const sensor_msgs::LaserScan::ConstPtr& scan,
-                                                        tf::TransformListener &listener, std::string to_frame, ros::Time stamp = ros::Time(0))
-    {
-        std::vector<geometry_msgs::Point> ret;
-        float alpha = scan->angle_min;
-		if(!listener.waitForTransform(scan->header.frame_id, to_frame, stamp, ros::Duration(0.3)))
-		{
-			return ret;
-		}
-        for (int i = 0; i < scan->ranges.size(); i++) {
-          if(scan->ranges[i] < scan->range_min || scan->ranges[i] > scan->range_max)
-          {
-              alpha += scan->angle_increment;
-              continue;
-          }
-          geometry_msgs::Point point;
-          point.x = cos(alpha) * scan->ranges.at(i);
-          point.y = sin(alpha) * scan->ranges.at(i);
-
-          geometry_msgs::PointStamped pin;
-          pin.header.frame_id = scan->header.frame_id;
-          pin.point = point;
-          geometry_msgs::PointStamped pout;
-          try
-          {
-              //listener.transformPoint(to_frame, (stamp + ros::Duration( i * scan->time_increment)), pin, "/map" ,pout);
-              listener.transformPoint(to_frame, stamp, pin, "/map" ,pout);
-              ret.push_back(pout.point);
-          }
-          catch (tf::TransformException ex){
-                ROS_ERROR("%s",ex.what());
-          }
-
-          alpha += scan->angle_increment;
-        }
-        return ret;
-    }
-    
-     /**
-     * @brief get_max_move_distance searches for the nearest values in an defined area 
-     * @param vector points: laserPoints in base_link
-     * @return float distance to nearest Point
-     */
-float get_max_move_distance(std::vector<geometry_msgs::Point> points, float min_x, float min_y)
-{
-	float minDistance = 30; 
-	for (unsigned int i = 0; i < points.size(); i++)
-	{
-		if(std::fabs(points[i].y) < min_y && points[i].x > min_x)
-		{
-			float distance = sqrt((points[i].x * points[i].x) + (points[i].y * points[i].y));
-			if (distance < minDistance)
-			{
-				minDistance = distance;
-			}
-		}
-	}
-	float maxMoveDist = minDistance - min_x;
-	if (maxMoveDist < 0) 
-	{
-		maxMoveDist = 0.0;
-	}
-	return maxMoveDist;
-}
-    
-
-    /**
-     * @brief Calculates the euclidean distance (in cells) between to points in the map
-     * @param a Point a
-     * @param b point b
-     * @return euclidean distance in cells
-     */
-    double distance(const Eigen::Vector2i& a, const Eigen::Vector2i& b)
-    {
-        return sqrt((a.x() - b.x()) * (a.x() - b.x()) + (a.y() - b.y()) * (a.y() - b.y()));
-    }
-
-    /**
-     * @brief Calculates the euclidean distance (in m) between to points in the world
-     * @param a Point a
-     * @param b point b
-     * @return euclidean distance in m
-     */
-    double distance(const geometry_msgs::Point& a, const geometry_msgs::Point& b)
-    {
-        return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
-    }
-
-/**
- * @brief findValue
- * @param map Pointer to the map to search
- * @param width Width of the map
- * @param height Height of the map
- * @param center_x \__ Center point of circle to search within
- * @param center_y /
- * @param value Value to search for in given map
- * @param radius Radius of the circle
- * @return true if the given value could be found within the given radius around (x,y)
- */
-    bool findValue(const std::vector<int8_t>* map, int width, int height, int center_x, int center_y, unsigned char value, float radius)
-    {
-
-      int start_x = int ( center_x - radius );
-      int start_y = int ( center_y - radius );
-      int end_x = int ( center_x + radius );
-      int end_y = int ( center_y + radius );
-
-      if ( start_x < 0 ) { start_x = 0; }
-      if ( start_y < 0 ) { start_y = 0; }
-      if ( end_x >= int ( width ) ) { end_x = width - 1; }
-      if ( end_y >= int ( height ) ) { end_y = height - 1; }
-
-      float sqr_radius = radius*radius;
-
-      for ( int y = start_y; y <= end_y; y++ )
-        for ( int x = start_x; x <= end_x; x++ )
-        {
-          if ( map->at(x+width*y) > value )
-          {
-            float sqr_dist = float ( x - center_x ) * float ( x - center_x ) + float ( y - center_y ) * float ( y - center_y );
-            if ( sqr_dist <= sqr_radius ) { return true; }
-          }
-        }
-
-      return false;
-    }
-}
-
-#endif // TOOLS_H
diff --git a/homer_nav_libs/package.xml b/homer_nav_libs/package.xml
deleted file mode 100644
index 7f2a2eaa..00000000
--- a/homer_nav_libs/package.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<package>
-  <name>homer_nav_libs</name>
-  <version>0.1.1</version>
-  <description>The nav_libs package</description>
-
-  <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer>
-  <author email="mknauf@uni-koblenz.de">Malte Knauf</author>
-  <license>GPLv3</license>
-
-  <buildtool_depend>catkin</buildtool_depend>
-  <build_depend>geometry_msgs</build_depend>
-  <build_depend>roscpp</build_depend>
-  <build_depend>tf</build_depend>
-  <build_depend>cmake_modules</build_depend>
-  <build_depend>eigen</build_depend>
-
-  <run_depend>roscpp</run_depend>
-  <run_depend>geometry_msgs</run_depend>
-  <run_depend>tf</run_depend>
-  <run_depend>eigen</run_depend>
-
-</package>
diff --git a/homer_nav_libs/readme.pdf b/homer_nav_libs/readme.pdf
deleted file mode 100644
index 98fc92ccae14a8a818948ce4c73a8926f6ad2028..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 79468
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
z%0A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
THI2*M($K(wOI6j?-;E0ZaiSHe

diff --git a/homer_nav_libs/src/Explorer/Explorer.cpp b/homer_nav_libs/src/Explorer/Explorer.cpp
deleted file mode 100644
index 509964e4..00000000
--- a/homer_nav_libs/src/Explorer/Explorer.cpp
+++ /dev/null
@@ -1,1408 +0,0 @@
-#include <homer_nav_libs/Explorer/Explorer.h>
-
-using namespace std;
-using namespace ExplorerConstants;
-
-Explorer::Explorer ( double minAllowedObstacleDistance, double maxAllowedObstacleDistance,
-             double minSafeObstacleDistance, double maxSafeObstacleDistance,
-             double safePathWeight, double frontierSafenessFactor, int unknownThreshold )
-{
-  ExplorerConstants::UNKNOWN = unknownThreshold;
-
-  m_MinAllowedObstacleDistance = minAllowedObstacleDistance;
-  m_MaxAllowedObstacleDistance = maxAllowedObstacleDistance;
-
-  m_MinSafeObstacleDistance = minSafeObstacleDistance;
-  m_MaxSafeObstacleDistance = maxSafeObstacleDistance;
-
-  m_SafePathWeight = safePathWeight;
-  m_FrontierSafenessFactor = frontierSafenessFactor;
-
-  m_OccupancyMap = 0;
-  m_ObstacleTransform = 0;
-  m_CostTransform = 0;
-  m_TargetMap = 0;
-  m_DrivingDistanceTransform = 0;
-  m_TargetDistanceTransform = 0;
-  m_PathTransform = 0;
-  m_ExplorationTransform = 0;
-  m_DesiredDistance = 0;
-}
-
-Explorer::~Explorer()
-{
-  releaseMaps();
-  releaseMap( m_OccupancyMap );
-}
-
-void Explorer::releaseMaps()
-{
-  releaseMap( m_TargetMap );
-  releaseMap( m_ObstacleTransform );
-  releaseMap( m_CostTransform );
-  releaseMap( m_DrivingDistanceTransform );
-  releaseMap( m_TargetDistanceTransform );
-  releaseMap( m_PathTransform );
-  releaseMap( m_ExplorationTransform );
-}
-
-// SETTERS ////////////////////////////////////////////////////////////////////////////////////////////////
-
-void Explorer::setUnknownThreshold(int unknownTresh)
-{
-    ExplorerConstants::UNKNOWN = unknownTresh;
-}
-
-void Explorer::setAllowedObstacleDistance ( double min, double max )
-{
-  m_MinAllowedObstacleDistance = min;
-  m_MaxAllowedObstacleDistance = max;
-  releaseMaps();
-}
-
-void Explorer::setSafeObstacleDistance ( double min, double max )
-{
-  m_MinSafeObstacleDistance = min;
-  m_MaxSafeObstacleDistance = max;
-  releaseMaps();
-}
-
-void Explorer::setSafePathWeight ( double weight )
-{
-  m_SafePathWeight = weight;
-  releaseMaps();
-}
-
-void Explorer::setFrontierSafenessFactor( double frontierSafenessFactor )
-{
-  m_FrontierSafenessFactor = frontierSafenessFactor;
-  releaseMaps();
-}
-
-void Explorer::setOccupancyMap ( int width, int height, geometry_msgs::Pose origin, int8_t* data )
-{
-  if ( !data ) {
-    ROS_ERROR( "Received 0-pointer." );
-    return;
-  }
-  releaseMaps();
-  releaseMap( m_OccupancyMap );
-  //m_OccupancyMap = new GridMap<unsigned char> ( width, height, data, exploredRegion );
-  m_OccupancyMap = new GridMap<int8_t> ( width, height, data );
-  m_Origin = origin;
-}
-
-
-void Explorer::updateObstacles(int width, int height, geometry_msgs::Pose origin, int8_t* mapData)
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-  if ( (width != m_OccupancyMap->width()) || (height != m_OccupancyMap->height()) ) {
-    ROS_ERROR_STREAM( "Wrong map size!" );
-    return;
-  }
-  for ( unsigned i=0; i<m_OccupancyMap->width()*m_OccupancyMap->height(); i++ )
-  {
-    int8_t* myMapData=m_OccupancyMap->getDirectAccess(0,0);
-    if ( myMapData[i] != UNKNOWN )
-    {
-      myMapData[i]=mapData[i];
-    }
-  }
-  releaseMaps();
-}
-
-void Explorer::resetExploration()
-{
-  m_DesiredDistance = 0;
-}
-
-void Explorer::setStart ( Eigen::Vector2i start )
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR_STREAM( "Occupancy map is missing." );
-    return;
-  }
-  if (( start.x() <= 1 ) || ( start.y() <= 1 ) || ( start.x() >= m_OccupancyMap->width()-1 ) || ( start.y() >= m_OccupancyMap->height()-1 ) )
-  {
-    ROS_ERROR_STREAM( "Invalid position!" );
-    return;
-  }
-  computeWalkableMaps();
-
-  if ( !isWalkable( start.x(), start.y() ) )
-  {
-    Eigen::Vector2i correctedStart=getNearestWalkablePoint( start );
-    if ( !isWalkable( correctedStart.x(), correctedStart.y() ) )
-    {
-      ROS_ERROR_STREAM( "No walkable position was found on the map!" );
-    } 
-    else
-    {
-      ROS_INFO_STREAM("Start position " << start.x() << "," << start.y() <<  " was corrected to " << correctedStart.x() << "," << correctedStart.y());
-    }
-    m_Start = correctedStart;
-    return;
-  }
-  m_Start = start;
-}
-
-
-Eigen::Vector2i Explorer::getNearestAccessibleTarget(Eigen::Vector2i target )
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return target;
-  }
-  if ( ( target.x() <= 1 ) || ( target.y() <= 1 ) || ( target.x() >= m_OccupancyMap->width()-1 ) || ( target.y() >= m_OccupancyMap->height()-1 ) )
-  {
-    ROS_ERROR( "Invalid position!" );
-    return target;
-  }
-  computeApproachableMaps();
-  computeWalkableMaps();
-  Eigen::Vector2i correctTarget=target;
-
-  if ( !isApproachable( target.x(), target.y() ) )
-  {
-    ROS_INFO_STREAM("target cell in drivingdistancetransform: " << m_DrivingDistanceTransform->getValue ( target.x(), target.y() ));
-    ROS_INFO_STREAM("target " << target << " is not approachable. Correcting target...");
-    int minSqrDist=INT_MAX;
-    for ( int x = 0; x < m_ObstacleTransform->height(); x++ )
-    {
-      for ( int y = 0; y < m_ObstacleTransform->width(); y++ )
-      {
-        bool isSafe = m_ObstacleTransform->getValue ( x, y ) > m_FrontierSafenessFactor * m_MinAllowedObstacleDistance;
-        if ( isApproachable ( x,y ) && isWalkable( x , y) && isSafe )
-        {
-          int xDiff = target.x() - x;
-          int yDiff = target.y() - y;
-          int sqrDist = xDiff*xDiff + yDiff*yDiff;
-          if ( sqrDist < minSqrDist )
-          {
-            correctTarget.x() = x;
-            correctTarget.y() = y;
-            minSqrDist = sqrDist;
-          }
-        }
-      }
-    }
-  }
-  ROS_DEBUG_STREAM("Target position " << target.x() << "," << target.y() << " was corrected to " << correctTarget.x() << "," << correctTarget.y());
-
-  return correctTarget;
-}
-
-
-Eigen::Vector2i Explorer::getNearestWalkablePoint( Eigen::Vector2i target )
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return target;
-  }
-  if (( target.x() <= 1 ) || ( target.y() <= 1 ) || ( target.x() >= m_OccupancyMap->width()-1 ) || ( target.y() >= m_OccupancyMap->height()-1 ) )
-  {
-    ROS_ERROR( "Invalid position!" );
-    return target;
-  }
-
-  computeWalkableMaps();
-  Eigen::Vector2i correctTarget=target;
-
-
-  if ( !isWalkable( target.x(), target.y() ) )
-  {
-    int minSqrDist=INT_MAX;
-    for ( int x = 0; x < m_ObstacleTransform->height(); x++ )
-    {
-      for ( int y = 0; y < m_ObstacleTransform->width(); y++ )
-      {
-        if ( isWalkable ( x,y ) )
-        {
-          int xDiff = target.x() - x;
-          int yDiff = target.y() - y;
-          int sqrDist = xDiff*xDiff + yDiff*yDiff;
-          if ( sqrDist < minSqrDist )
-          {
-            correctTarget.x() = x;
-            correctTarget.y() = y;
-            minSqrDist = sqrDist;
-          }
-        }
-      }
-    }
-  }
-  ROS_DEBUG_STREAM("Position " << target.x() << "," << target.y() << " was corrected to " << correctTarget.x() << "," << correctTarget.y());
-
-  return correctTarget;
-}
-
-
-void Explorer::setTarget (Eigen::Vector2i target )
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-  if ( ( target.x() <= 1 ) || ( target.y() <= 1 ) || ( target.x() >= m_OccupancyMap->width()-1 ) || ( target.y() >= m_OccupancyMap->height()-1 ) )
-  {
-    ROS_ERROR( "Invalid position!" );
-    return;
-  }
-  computeApproachableMaps();
-  if ( !isApproachable ( target.x(), target.y() ) )
-  {
-    ROS_WARN( "Target position is not approachable. Path computation will possibly fail." );
-  }
-  m_Target = target;
-  m_DesiredDistance = 0;
-}
-
-
-void Explorer::setTarget (Eigen::Vector2i target, int desiredDistance )
-{
-  ROS_ERROR_STREAM("setTarget still in use!!");
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-  
-  if ( desiredDistance < 1 )
-  {
-    setTarget( target );
-    return;
-  }
-  
-  if ( target.x() + desiredDistance <= 1 || target.x() - desiredDistance >= m_OccupancyMap->width()-1 ||
-       target.y() + desiredDistance <= 1 || target.y() - desiredDistance >= m_OccupancyMap->height()-1 )
-  {
-    ROS_ERROR( "Invalid position" );
-    return;
-  }
-  computeApproachableMaps();
-  // TODO: check if region is approachable
-  m_Target = target;
-  m_DesiredDistance = desiredDistance;
-}
-
-
-// GETTERS ////////////////////////////////////////////////////////////////////////////////////////////////
-
-Eigen::Vector2i Explorer::getStart() const
-{
-  return m_Start;
-}
-
-Eigen::Vector2i Explorer::getTarget() const
-{
-  return m_Target;
-}
-
-GridMap<int8_t>* Explorer::getOccupancyMap()
-{
-  return m_OccupancyMap;
-}
-
-GridMap<double>* Explorer::getObstacleTransform()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return 0;
-  }
-  computeObstacleTransform();
-  return m_ObstacleTransform;
-}
-
-GridMap<double>* Explorer::getCostTransform()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return 0;
-  }
-  computeCostTransform();
-  return m_CostTransform;
-}
-
-GridMap<bool>* Explorer::getTargetMap()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return 0;
-  }
-
-  computeTargetMap();
-  return m_TargetMap;
-}
-
-GridMap<double>* Explorer::getDrivingDistanceTransform()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return 0;
-  }
-  computeDrivingDistanceTransform();
-  return m_DrivingDistanceTransform;
-}
-
-GridMap<double>* Explorer::getTargetDistanceTransform()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return 0;
-  }
-  computeTargetDistanceTransform();
-  return m_TargetDistanceTransform;
-}
-
-GridMap<double>* Explorer::getPathTransform()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return 0;
-  }
-  computePathTransform();
-  return m_PathTransform;
-}
-
-GridMap<double>* Explorer::getExplorationTransform()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return 0;
-  }
-  computeExplorationTransform();
-  return m_ExplorationTransform;
-}
-
-
-
-// MAP GENERATION ////////////////////////////////////////////////////////////////////////////////////////////////7
-
-
-void Explorer::computeApproachableMaps()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-  computeDrivingDistanceTransform();
-}
-
-
-void Explorer::computeWalkableMaps()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-  computeObstacleTransform();
-}
-
-
-void Explorer::computeDrivingDistanceTransform()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-
-  if ( m_DrivingDistanceTransform ) { return; }
-
-  ROS_DEBUG( "Computing drivingDistanceTransform..."  );
-  resetMap( m_DrivingDistanceTransform );
-  distanceFloodFill ( m_DrivingDistanceTransform, m_Start );
-}
-
-
-void Explorer::computeTargetDistanceTransform()
-{
-  if ( !m_OccupancyMap )
-  {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-
-  if ( m_TargetDistanceTransform ) { return; }
-
-  ROS_DEBUG( "Computing targetDistanceTransform..."  );
-  resetMap( m_TargetDistanceTransform );
-  distanceFloodFill ( m_TargetDistanceTransform, m_Target );
-}
-
-
-void Explorer::computeRegionMap()
-{
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-  
-  resetMap( m_TargetMap );
-  ROS_DEBUG( "Computing target region map..."  );
-  
-  m_TargetMap->fill( false );
-  const int desiredDistanceSquared = m_DesiredDistance * m_DesiredDistance;
-  int height = m_OccupancyMap->height();
-  int width = m_OccupancyMap->width();
-  
-  // draw a circle onto the ExplorationMap
-  const int firstX = m_Target.x() - m_DesiredDistance <= 1 ? 2 : m_Target.x() - m_DesiredDistance;
-  const int firstY = m_Target.y() - m_DesiredDistance <= 1 ? 2 : m_Target.y() - m_DesiredDistance;
-  const int lastX  = m_Target.x() + m_DesiredDistance >= width-1  ? width-2  : m_Target.x() + m_DesiredDistance;
-  const int lastY  = m_Target.y() + m_DesiredDistance >= height-1 ? height-2 : m_Target.y() + m_DesiredDistance;
-  
-  for ( int y = firstY; y <= lastY; ++y )
-  {
-    for ( int x = firstX; x <= lastX; ++x ) 
-    {
-      const int dx = x - m_Target.x();
-      const int dy = y - m_Target.y();
-      
-      if ( dx*dx + dy*dy <= desiredDistanceSquared )
-      {
-        m_TargetMap->setValue( x, y, true );
-      }
-    }
-  }
-}
-
-void Explorer::computeFrontierMap()
-{
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Occupancy map is missing." );
-    return;
-  }
-
-  // if ( m_FrontierMap ) { return; }
-
-  resetMap( m_TargetMap );
-  
-  ROS_DEBUG( "Computing frontier map..."  );
-  m_TargetMap->fill ( 0 );
-  // extract borders
-  for ( int y = 1; y < m_OccupancyMap->height() - 1; y++ )
-  {
-    for ( int x = 1; x < m_OccupancyMap->width() - 1; x++ )
-    {
-      int value = m_OccupancyMap->getValue ( x, y );
-      int value_u = m_OccupancyMap->getValue ( x, y - 1 );
-      int value_d = m_OccupancyMap->getValue ( x, y + 1 );
-      int value_l = m_OccupancyMap->getValue ( x - 1, y );
-      int value_r = m_OccupancyMap->getValue ( x + 1, y );
-      bool isFree = value < UNKNOWN && value != NOT_SEEN_YET;
-      bool upUnknown = (value_u == UNKNOWN || value_u == NOT_SEEN_YET);
-      bool downUnknown = (value_d == UNKNOWN || value_u == NOT_SEEN_YET);
-      bool leftUnknown = (value_l == UNKNOWN || value_u == NOT_SEEN_YET);
-      bool rightUnknown = (value_r == UNKNOWN || value_u == NOT_SEEN_YET);
-      bool hasUnknownNeighbour = upUnknown || downUnknown || leftUnknown || rightUnknown;
-      bool isSafe = m_ObstacleTransform->getValue ( x, y ) > m_FrontierSafenessFactor * m_MinAllowedObstacleDistance;
-      if ( isFree && hasUnknownNeighbour && isSafe )
-      {
-        m_TargetMap->setValue ( x, y, 1 );
-      }
-      else
-      {
-        m_TargetMap->setValue ( x, y, 0 );
-      }
-    }
-  }
-}
-
-void Explorer::computeTargetMap()
-{
-  ROS_ERROR_STREAM("target Map shouldn't be used anymore!");
-  if ( m_DesiredDistance < 1 )
-  {
-    computeFrontierMap();
-  }
-  else
-  {     
-    computeRegionMap();
-  }
-}
-
-void Explorer::computeObstacleTransform()
-{
-  if ( !m_OccupancyMap) 
-  {
-    ROS_ERROR( "Missing occupancy map. Aborting." );
-    return;
-  }
-
-  if ( m_ObstacleTransform ) 
-  { 
-  	return; 
-  }
-
-  resetMap( m_ObstacleTransform );
-
-  ROS_DEBUG( "Computing obstacle transform..."  );
-  for ( int x = 0; x < m_ObstacleTransform->width(); x++ )
-  {
-    for ( int y = 0; y < m_ObstacleTransform->height(); y++ )
-    {
-      if ( m_OccupancyMap->getValue(x, y) >  UNKNOWN ||  
-           m_OccupancyMap->getValue(x, y) == NOT_SEEN_YET)
-      {
-        m_ObstacleTransform->setValue ( x, y, 0 ); // Obstacle
-      }
-      else
-      {
-        m_ObstacleTransform->setValue ( x, y, INT_MAX ); // Free
-      }
-    }
-  }
-
-  int width = m_ObstacleTransform->width();
-  int height = m_ObstacleTransform->height();
-  double* f = new double[width > height ? width : height];
-
-  // transform along columns
-  for ( int x = 0; x < width; x++ )
-  {
-    for ( int y = 0; y < height; y++ )
-    {
-      // copy column
-      f[y] = m_ObstacleTransform->getValue ( x, y );
-    }
-    // 1-D transform of column
-    double* d = distanceTransform1D ( f, height );
-    // copy transformed 1-D to output image
-    for ( int y = 0; y < height; y++ )
-    {
-      m_ObstacleTransform->setValue ( x, y, d[y] );
-    }
-    delete [] d;
-  }
-
-  // transform along rows
-  for ( int y = 0; y < height; y++ )
-  {
-    for ( int x = 0; x < width; x++ )
-    {
-      f[x] = m_ObstacleTransform->getValue ( x, y );
-    }
-    double* d = distanceTransform1D ( f, width );
-    for ( int x = 0; x < width; x++ )
-    {
-      m_ObstacleTransform->setValue ( x, y, d[x] );
-    }
-    delete [] d;
-  }
-  delete f;
-
-  // take square roots
-  for ( int y = 0; y < m_ObstacleTransform->height(); y++ )
-  {
-    for ( int x = 0; x < m_ObstacleTransform->width(); x++ )
-    {
-      if ( isWalkable( x,y ) )
-      {
-        float value = sqrt ( m_ObstacleTransform->getValue ( x, y ) );
-        m_ObstacleTransform->setValue ( x, y, value );
-      }
-    }
-  }
-}
-
-
-void Explorer::computeCostTransform()
-{
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Missing occupancy map. Aborting." );
-    return;
-  }
-
-  if ( m_CostTransform ) { return; }
-
-  computeObstacleTransform();
-  computeApproachableMaps();
-
-  resetMap( m_CostTransform );
-  m_CostTransform->fill( ExplorerConstants::MAX_COST );
-
-  for ( unsigned y=0; y<m_CostTransform->height(); y++)
-  {
-    for ( unsigned x=0; x<m_CostTransform->width(); x++)
-    {
-      if ( !isApproachable( x, y ) ) {
-        continue;
-      }
-      double dist = m_ObstacleTransform->getValue(x, y);
-      double cost = 0;
-      if ( dist < m_MinSafeObstacleDistance ) {
-        cost = m_MinSafeObstacleDistance - dist;
-      }
-//      if ( dist > m_MaxSafeObstacleDistance ) {
-//        cost = dist - m_MaxSafeObstacleDistance;
-//      }
-      m_CostTransform->setValue( x, y, cost * cost );
-    }
-  }
-}
-
-
-void Explorer::computePathTransform()
-{
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Missing occupancy map. Aborting." );
-    return;
-  }
-
-  if ( m_PathTransform ) { return; }
-
-  computeObstacleTransform();
-  computeCostTransform();
-
-  resetMap( m_PathTransform );
-
-  ROS_DEBUG( "Computing path transform..."  );
-  GridMap<double>* map = m_PathTransform;
-  int width = map->width();
-  int height = map->height();
-  double maxDistance = MAX_DISTANCE;
-  map->fill ( maxDistance );
-
-  int fromX = m_Target.x();
-  int fromY = m_Target.y();
-  map->setValue ( fromX, fromY, 0 );
-
-  queue<int> xQueue;
-  queue<int> yQueue;
-  xQueue.push ( fromX + 1 );
-  yQueue.push ( fromY );
-  xQueue.push ( fromX - 1 );
-  yQueue.push ( fromY );
-  xQueue.push ( fromX );
-  yQueue.push ( fromY - 1 );
-  xQueue.push ( fromX );
-  yQueue.push ( fromY + 1 );
-  int xVal, yVal;
-  while ( !xQueue.empty() )
-  {
-    xVal = xQueue.front();
-    yVal = yQueue.front();
-    xQueue.pop();
-    yQueue.pop();
-    if ( xVal > 0 && xVal < width - 1 && yVal > 0 && yVal < height - 1 && isWalkable( xVal, yVal ) )
-    {
-      float value = map->getValue ( xVal, yVal );
-      float value_u = map->getValue ( xVal, yVal - 1 ) + 1;
-      float value_d = map->getValue ( xVal, yVal + 1 ) + 1;
-      float value_l = map->getValue ( xVal - 1, yVal ) + 1;
-      float value_r = map->getValue ( xVal + 1, yVal ) + 1;
-
-      float value_ur = map->getValue ( xVal + 1, yVal - 1 ) + 1.4142;
-      float value_ul = map->getValue ( xVal - 1, yVal - 1 ) + 1.4142;
-      float value_ll = map->getValue ( xVal - 1, yVal + 1 ) + 1.4142;
-      float value_lr = map->getValue ( xVal + 1, yVal + 1 ) + 1.4142;
-
-      float min1 = value_u < value_d ? value_u : value_d;
-      float min2 = value_l < value_r ? value_l : value_r;
-      float min3 = value_ur < value_ul ? value_ur : value_ul;
-      float min4 = value_ll < value_lr ? value_ll : value_lr;
-      float min12 = min1 < min2 ? min1 : min2;
-      float min34 = min3 < min4 ? min3 : min4;
-      float min = min12 < min34 ? min12 : min34;
-      float newVal = min + m_SafePathWeight * m_CostTransform->getValue( xVal, yVal );
-      if ( value > newVal )
-      {
-        map->setValue ( xVal, yVal, newVal );
-        if ( map->getValue ( xVal, yVal + 1 ) > newVal + 1 )
-        {
-          xQueue.push ( xVal );
-          yQueue.push ( yVal + 1 );
-        }
-        if ( map->getValue ( xVal, yVal - 1 ) > newVal + 1 )
-        {
-          xQueue.push ( xVal );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal + 1, yVal ) > newVal + 1 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal );
-        }
-        if ( map->getValue ( xVal - 1, yVal ) > newVal + 1 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal );
-        }
-        if ( map->getValue ( xVal + 1, yVal - 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal - 1, yVal - 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal + 1, yVal + 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal + 1 );
-        }
-        if ( map->getValue ( xVal - 1, yVal + 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal + 1 );
-        }
-      }
-    }
-  }
-}
-
-
-void Explorer::computeExplorationTransform()
-{
-  ROS_ERROR_STREAM("Exploration Transform shouldn't be used!");
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Missing occupancy map. Aborting." );
-    return;
-  }
-
-  if ( m_ExplorationTransform ) { return; }
-
-  ROS_DEBUG_STREAM("computeExplorationTransform: before obstacle transform");
-  computeObstacleTransform();
-  ROS_DEBUG_STREAM("computeExplorationTransform: before cost transform");
-  computeCostTransform();
-  ROS_DEBUG_STREAM("computeExplorationTransform: before target map");
-  computeTargetMap();
-  ROS_DEBUG_STREAM("computeExplorationTransform: before walkable maps");
-  computeWalkableMaps();
-  ROS_DEBUG_STREAM("computeExplorationTransform: before exploration transform");
-  resetMap( m_ExplorationTransform );
-
-  ROS_DEBUG( "Computing exploration transform..."  );
-  GridMap<double>* map = m_ExplorationTransform;
-  int width = map->width();
-  int height = map->height();
-  double maxDistance = MAX_DISTANCE;
-  map->fill ( maxDistance );
-  queue<int> xQueue;
-  queue<int> yQueue;
-  // fill seeds: Mark the frontiers as targets
-  ROS_DEBUG_STREAM("computeExplorationTransform: before first loop");
-  for ( int y = 0; y < m_TargetMap->height(); y++ )
-  {
-    for ( int x = 0; x < m_TargetMap->width(); x++ )
-    {
-      if ( m_TargetMap->getValue ( x, y ) == 1 )
-      {
-        map->setValue ( x, y, 0 );
-        xQueue.push ( x + 1 );
-        yQueue.push ( y );
-        xQueue.push ( x - 1 );
-        yQueue.push ( y );
-        xQueue.push ( x );
-        yQueue.push ( y - 1 );
-        xQueue.push ( x );
-        yQueue.push ( y + 1 );
-      }
-    }
-  }
-  ROS_DEBUG_STREAM("computeExplorationTransform: After first looop");
-  // Now go through the coordinates in the queue
-  int xVal, yVal;
-  ROS_DEBUG_STREAM("computeExplorationTransform: before while loop");
-  while ( !xQueue.empty() )
-  {
-    xVal = xQueue.front();
-    yVal = yQueue.front();
-    xQueue.pop();
-    yQueue.pop();
-    if ( xVal > 0 && xVal < width - 1 && yVal > 0 && yVal < height - 1 && isWalkable ( xVal, yVal ) )
-    {
-      // Get own cost and the cost of the 8 neighbor cells (neighbors plus the cost to go there)
-      float value = map->getValue ( xVal, yVal );
-      float value_u = map->getValue ( xVal, yVal - 1 ) + 1;
-      float value_d = map->getValue ( xVal, yVal + 1 ) + 1;
-      float value_l = map->getValue ( xVal - 1, yVal ) + 1;
-      float value_r = map->getValue ( xVal + 1, yVal ) + 1;
-      float value_ur = map->getValue ( xVal + 1, yVal - 1 ) + 1.4142;
-      float value_ul = map->getValue ( xVal - 1, yVal - 1 ) + 1.4142;
-      float value_ll = map->getValue ( xVal - 1, yVal + 1 ) + 1.4142;
-      float value_lr = map->getValue ( xVal + 1, yVal + 1 ) + 1.4142;
-      float min1 = value_u < value_d ? value_u : value_d;
-      float min2 = value_l < value_r ? value_l : value_r;
-      float min3 = value_ur < value_ul ? value_ur : value_ul;
-      float min4 = value_ll < value_lr ? value_ll : value_lr;
-      float min12 = min1 < min2 ? min1 : min2;
-      float min34 = min3 < min4 ? min3 : min4;
-      float min = min12 < min34 ? min12 : min34;
-      float newVal = min + m_SafePathWeight * m_CostTransform->getValue( xVal, yVal );
-      if ( value > newVal )
-      {
-        // Cost is lower then the currently known cost: Reduce cost here
-        map->setValue ( xVal, yVal, newVal );
-        // Add the neighbours that might profit in the queue
-        if ( map->getValue ( xVal, yVal + 1 ) > newVal + 1 )
-        {
-          xQueue.push ( xVal );
-          yQueue.push ( yVal + 1 );
-        }
-        if ( map->getValue ( xVal, yVal - 1 ) > newVal + 1 )
-        {
-          xQueue.push ( xVal );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal + 1, yVal ) > newVal + 1 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal );
-        }
-        if ( map->getValue ( xVal - 1, yVal ) > newVal + 1 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal );
-        }
-        if ( map->getValue ( xVal + 1, yVal - 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal - 1, yVal - 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal + 1, yVal + 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal + 1 );
-        }
-        if ( map->getValue ( xVal - 1, yVal + 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal + 1 );
-        }
-      }
-    }
-  }
-  ROS_DEBUG_STREAM("computeExplorationTransform: after exploration transform");
-}
-
-
-vector<Eigen::Vector2i> Explorer::sampleWaypointsFromPath ( std::vector<Eigen::Vector2i> pathPoints, float threshold )
-{
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Missing occupancy map. Aborting." );
-    return pathPoints;
-  }
-  if ( pathPoints.size() < 3 ) {
-    return pathPoints;
-  }
-
-  computeObstacleTransform();
-
-  vector<Eigen::Vector2i> simplifiedPath;
-  simplifiedPath.reserve( pathPoints.size() );
-
-  Eigen::Vector2i lastAddedPoint = pathPoints[0];
-  simplifiedPath.push_back ( lastAddedPoint );
-
-  for ( unsigned int i = 1; i < pathPoints.size() - 1; i++ )
-  {
-    double distanceToNextPoint = map_tools::distance(lastAddedPoint, pathPoints.at(i));
-    double obstacleDistanceLastAddedPoint = m_ObstacleTransform->getValue ( lastAddedPoint.x(), lastAddedPoint.y() );
-    double obstacleDistancePossibleNextPoint = m_ObstacleTransform->getValue ( pathPoints[i].x(), pathPoints[i].y() );
-    if (( distanceToNextPoint >= obstacleDistanceLastAddedPoint*threshold ) ||
-        ( distanceToNextPoint >= obstacleDistancePossibleNextPoint*threshold )  )
-    {
-      simplifiedPath.push_back ( pathPoints[i] );
-      lastAddedPoint = pathPoints[i];
-    }
-  }
-  simplifiedPath.push_back ( pathPoints[pathPoints.size() - 1] );
-  return simplifiedPath;
-}
-
-
-std::vector<Eigen::Vector2i> Explorer::getPath(bool& success)
-{
-  success = false;
-  
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Missing occupancy map. Aborting." );
-    return vector<Eigen::Vector2i>();
-  }
-  
-  if ( m_DesiredDistance > 0 ) {
-    // we are actually performing an exploration since the target
-    // is a region.
-      ROS_ERROR_STREAM("Desired Distance > 0: Executing getExplorationTransformPath");
-    return getExplorationTransformPath( success );
-  }
-  ROS_DEBUG_STREAM("Computing Path Transform");
-  computePathTransform();
-  ROS_DEBUG_STREAM("Finished Path Transform");
- 
-  vector<Eigen::Vector2i> path;
-
-  int x = m_Start.x();
-  int y = m_Start.y();
-
-  int width = m_OccupancyMap->width();
-  int height = m_OccupancyMap->height();
-
-  //special case: start and end point are equal, return single waypoint
-  if ( map_tools::distance( m_Start, m_Target ) < 2.0 )
-  {
-    success = true;
-    path.push_back ( Eigen::Vector2i( m_Start.x(), m_Start.y() ) );
-    return path;
-  }
-
-  while ( x != m_Target.x() || y != m_Target.y() )
-  {
-    path.push_back ( Eigen::Vector2i( x, y ) );
-    int minPosX = x;
-    int minPosY = y;
-    double min = m_PathTransform->getValue ( x, y );
-
-    if ( ( x <= 1 ) || ( y <= 1 ) || ( x >= width-1 ) || ( y >= height-1 ) )
-    {
-      ROS_ERROR( "Out of map bounds" );
-      return vector<Eigen::Vector2i>();
-    }
-
-    for ( int i = -1; i <= 1; i++ )
-    {
-      for ( int j = -1; j <= 1; j++ )
-      {
-        double pt = m_PathTransform->getValue ( x + i, y + j );
-        if ( pt < min )
-        {
-          min = pt;
-          minPosX = x + i;
-          minPosY = y + j;
-        }
-      }
-    }
-    if ( minPosX == x && minPosY == y )
-    {
-      ROS_WARN( "Target is unreachable!" );
-      return vector<Eigen::Vector2i>();
-    }
-    else
-    {
-      x = minPosX;
-      y = minPosY;
-    }
-  }
-  success = true;
-
-  return path;
-}
-
-vector<Eigen::Vector2i> Explorer::getExplorationTransformPath(bool& success)
-{
-  success = false;
-
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Missing occupancy map. Aborting." );
-    return vector<Eigen::Vector2i>();
-  }
-  
-  ROS_DEBUG_STREAM("Exploration Transform: Before obstacle transform");
-  computeObstacleTransform();
-  ROS_DEBUG_STREAM("Exploration Transform: Before exploration transform");
-  computeExplorationTransform();
-  ROS_DEBUG_STREAM("Exploration Transform: after obstacle transform");
-  
-  //check if we are already there
-  if ( m_TargetMap->getValue ( m_Start.x(), m_Start.y() ) )
-  {
-    success = true;
-    vector<Eigen::Vector2i> path;
-    path.push_back ( Eigen::Vector2i ( m_Start.x(), m_Start.y() ) );
-    return path;
-  }
-
-  int width = m_OccupancyMap->width();
-  int height = m_OccupancyMap->height();
-
-  vector<Eigen::Vector2i> path;
-  int x = m_Start.x();
-  int y = m_Start.y();
-
-  if ( m_ObstacleTransform->getValue ( x, y ) < m_MinAllowedObstacleDistance )
-  {
-    // robot got stuck!
-    // find way out using ObstacleTransform...
-    int maxPosX = x;
-    int maxPosY = y;
-
-    if ( ( x <= 1 ) || ( y <= 1 ) || ( x >= width-1 ) || ( y >= height-1 ) )
-    {
-      ROS_ERROR( "Out of map bounds" );
-      return vector<Eigen::Vector2i>();
-    }
-
-    while ( m_ObstacleTransform->getValue ( maxPosX, maxPosY ) < m_MinAllowedObstacleDistance )
-    {
-      double max = m_ObstacleTransform->getValue ( x, y );
-      for ( int i = -1; i <= 1; i++ )
-      {
-        for ( int j = -1; j <= 1; j++ )
-        {
-          double pt = m_ObstacleTransform->getValue ( x + i, y + j );
-          if ( pt > max )
-          {
-            max = pt;
-            maxPosX = x + i;
-            maxPosY = y + j;
-          }
-        }
-      }
-      if ( maxPosX == x && maxPosY == y ) // no ascentFound
-      {
-        break;
-      }
-      else
-      {
-        path.push_back ( Eigen::Vector2i ( maxPosX, maxPosY ) );
-        x = maxPosX;
-        y = maxPosY;
-      }
-    }
-  }
-  // now path is "free"
-  bool descentFound = true;
-  while ( descentFound )
-  {
-    descentFound = false;
-    int minPosX = x;
-    int minPosY = y;
-    double min = m_ExplorationTransform->getValue ( x, y );
-    if ( ( x <= 1 ) || ( y <= 1 ) || ( x >= width-1 ) || ( y >= height-1 ) )
-    {
-      ROS_ERROR( "Out of map bounds" );
-      return vector<Eigen::Vector2i>();
-    }
-
-    for ( int i = -1; i <= 1; i++ )
-    {
-      for ( int j = -1; j <= 1; j++ )
-      {
-        double pt = m_ExplorationTransform->getValue ( x + i, y + j );
-        if ( pt < min )
-        {
-          min = pt;
-          minPosX = x + i;
-          minPosY = y + j;
-        }
-      }
-    }
-    if ( minPosX == x && minPosY == y ) // no descentFound
-    {
-      descentFound = false;
-    }
-    else
-    {
-      descentFound = true;
-      path.push_back ( Eigen::Vector2i ( minPosX, minPosY ) );
-      x = minPosX;
-      y = minPosY;
-    }
-  }
-  success = true;
-
-  ROS_INFO_STREAM("Exploration Transform: End of function");
-  return path;
-
-#if 0  
-  // START P2AT HACK
-  vector< Eigen::Vector2i > newPath;
-  for ( unsigned start=0; start<path.size()-1; ++start )
-  {
-    int maxVal = start+1;
-    for ( unsigned end=start+1; end<path.size(); ++end )
-    {
-      bool ok = true;
-      // draw bresenham line and check wether an object is within maximum allowed distance
-      // THANKS TO WIKIPEDIA 
-      int x, y, t, dx, dy, incx, incy, pdx, pdy, ddx, ddy, es, el, err;
-      /* Entfernung in beiden Dimensionen berechnen */
-      dx = path[end].x() - path[start].x();
-      dy = path[end].y() - path[start].y();
-      /* Vorzeichen des Inkrements bestimmen */
-      incx = (dx > 0) ? 1 : (dx < 0) ? -1 : 0;
-      incy = (dy > 0) ? 1 : (dy < 0) ? -1 : 0;
-      if(dx<0) dx = -dx;
-      if(dy<0) dy = -dy;
-      /* feststellen, welche Entfernung größer ist */
-      if (dx>dy)
-      {
-        /* x ist schnelle Richtung */
-        pdx=incx; pdy=0;    /* pd. ist Parallelschritt */
-        ddx=incx; ddy=incy; /* dd. ist Diagonalschritt */
-        es =dy;   el =dx;   /* Fehlerschritte schnell, langsam */
-      } else
-      {
-        /* y ist schnelle Richtung */
-        pdx=0;    pdy=incy; /* pd. ist Parallelschritt */
-        ddx=incx; ddy=incy; /* dd. ist Diagonalschritt */
-        es =dx;   el =dy;   /* Fehlerschritte schnell, langsam */
-      }
-      /* Initialisierungen vor Schleifenbeginn */
-      x = path[start].x();
-      y = path[start].y();
-      err = el/2;
-      /* Pixel berechnen */
-      for(t=0; t<el; ++t) /* t zaehlt die Pixel, el ist auch Anzahl */
-      {
-        /* Aktualisierung Fehlerterm */
-        err -= es; 
-        if(err<0)
-        {
-          /* Fehlerterm wieder positiv (>=0) machen */
-          err += el;
-          /* Schritt in langsame Richtung, Diagonalschritt */
-          x += ddx;
-          y += ddy;
-        } else
-        {
-          /* Schritt in schnelle Richtung, Parallelschritt */
-          x += pdx;
-          y += pdy;
-        }
-      
-        // --- start: check if obstacle around
-        if ( m_ObstacleTransform->getValue ( x, y ) < m_MinAllowedObstacleDistance )
-        {
-          ok = false;
-          break;
-        }
-        // --- end  : check if obstacle around
-      } // Pixel berechnen
-      
-      if ( ok )
-      {
-        maxVal = end;
-      }
-    } // for: inner
-    newPath.push_back( path[maxVal] );
-    start = maxVal; // incremented by foor loop to max+1
-  } // for: outer
-  // END: P2AT HACK
-
-  success = true;
-  return newPath;
-#endif
-}
-
-
-bool Explorer::getNearestFrontier ( Eigen::Vector2i& nextFrontier )
-{
-  if ( !m_OccupancyMap) {
-    ROS_ERROR( "Missing occupancy map. Aborting." );
-    return false;
-  }
-
-  computeFrontierMap();
-  computeDrivingDistanceTransform();
-
-  bool found = false;
-  int distXPos = -1;
-  int distYPos = -1;
-  double dist = 10000000;
-  for ( int y = 0; y < m_TargetMap->height(); y++ )
-  {
-    for ( int x = 0; x < m_TargetMap->width(); x++ )
-    {
-      if ( m_TargetMap->getValue ( x, y ) == 1 && m_DrivingDistanceTransform->getValue ( x, y ) < 999999 )
-      {
-        if ( m_DrivingDistanceTransform->getValue ( x, y ) < dist )
-        {
-          found = true;
-          dist = m_DrivingDistanceTransform->getValue ( x, y );
-          distXPos = x;
-          distYPos = y;
-        }
-      }
-    }
-  }
-  if ( found )
-  {
-    nextFrontier.x() =  distXPos;
-    nextFrontier.y() =  distYPos;
-    return true;
-  }
-  else
-  {
-    return false;
-  }
-}
-
-
-
-// HELPERS //////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-
-void Explorer::distanceFloodFill ( GridMap<double>* map, Eigen::Vector2i start )
-{
-  if ( !map ) {
-    ROS_ERROR( "Received 0-pointer!" );
-  }
-
-  computeObstacleTransform();
-
-  int width = map->width();
-  int height = map->height();
-  map->fill ( MAX_DISTANCE );
-
-  int fromX = start.x();
-  int fromY = start.y();
-  map->setValue ( fromX, fromY, 0 );
-
-  queue<int> xQueue;
-  queue<int> yQueue;
-  xQueue.push ( fromX + 1 );
-  yQueue.push ( fromY );
-  xQueue.push ( fromX - 1 );
-  yQueue.push ( fromY );
-  xQueue.push ( fromX );
-  yQueue.push ( fromY - 1 );
-  xQueue.push ( fromX );
-  yQueue.push ( fromY + 1 );
-  int xVal, yVal;
-  while ( !xQueue.empty() )
-  {
-    xVal = xQueue.front();
-    yVal = yQueue.front();
-    xQueue.pop();
-    yQueue.pop();
-    bool isFree = (m_OccupancyMap->getValue ( xVal, yVal ) < UNKNOWN  ||
-                   m_OccupancyMap->getValue ( xVal, yVal ) != NOT_SEEN_YET); // only fill free cells
-    bool isSafe = m_ObstacleTransform->getValue ( xVal, yVal ) > m_MinAllowedObstacleDistance;
-    if ( xVal > 0 && xVal < width - 1 && yVal > 0 && yVal < height - 1 && isFree && isSafe )
-    {
-      float value = map->getValue ( xVal, yVal );
-      float value_u = map->getValue ( xVal, yVal - 1 ) + 1;
-      float value_d = map->getValue ( xVal, yVal + 1 ) + 1;
-      float value_l = map->getValue ( xVal - 1, yVal ) + 1;
-      float value_r = map->getValue ( xVal + 1, yVal ) + 1;
-
-      float value_ur = map->getValue ( xVal + 1, yVal - 1 ) + 1.4142;
-      float value_ul = map->getValue ( xVal - 1, yVal - 1 ) + 1.4142;
-      float value_ll = map->getValue ( xVal - 1, yVal + 1 ) + 1.4142;
-      float value_lr = map->getValue ( xVal + 1, yVal + 1 ) + 1.4142;
-
-      float min1 = value_u < value_d ? value_u : value_d;
-      float min2 = value_l < value_r ? value_l : value_r;
-      float min3 = value_ur < value_ul ? value_ur : value_ul;
-      float min4 = value_ll < value_lr ? value_ll : value_lr;
-      float min12 = min1 < min2 ? min1 : min2;
-      float min34 = min3 < min4 ? min3 : min4;
-      float min = min12 < min34 ? min12 : min34;
-      float newVal = min;
-      if ( value > newVal )
-      {
-        map->setValue ( xVal, yVal, newVal );
-        if ( map->getValue ( xVal, yVal + 1 ) > newVal + 1 )
-        {
-          xQueue.push ( xVal );
-          yQueue.push ( yVal + 1 );
-        }
-        if ( map->getValue ( xVal, yVal - 1 ) > newVal + 1 )
-        {
-          xQueue.push ( xVal );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal + 1, yVal ) > newVal + 1 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal );
-        }
-        if ( map->getValue ( xVal - 1, yVal ) > newVal + 1 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal );
-        }
-        if ( map->getValue ( xVal + 1, yVal - 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal - 1, yVal - 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal - 1 );
-        }
-        if ( map->getValue ( xVal + 1, yVal + 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal + 1 );
-          yQueue.push ( yVal + 1 );
-        }
-        if ( map->getValue ( xVal - 1, yVal + 1 ) > newVal + 1.4142 )
-        {
-          xQueue.push ( xVal - 1 );
-          yQueue.push ( yVal + 1 );
-        }
-      }
-    }
-  }
-}
-
-
-// Implementation taken from http://www.cs.cmu.edu/~cil/vnew.html
-double* Explorer::distanceTransform1D ( double *f, int n )
-{
-  //int width = m_OccupancyMap->width();
-  //int height = m_OccupancyMap->height();
-  //double maxDistance = height > width ? height : width;
-
-  double *d = new double[n];
-  int *v = new int[n];
-  double *z = new double[n+1];
-  int k = 0;
-  v[0] = 0;
-  z[0] = -INT_MAX;
-  z[1] = INT_MAX;
-  for ( int q = 1; q <= n-1; q++ )
-  {
-    double s  = ( ( f[q]+ ( q*q ) )- ( f[v[k]]+ ( v[k]*v[k] ) ) ) / ( 2*q-2*v[k] );
-    while ( s <= z[k] )
-    {
-      k--;
-      s  = ( ( f[q]+ ( q*q ) )- ( f[v[k]]+ ( v[k]*v[k] ) ) ) / ( 2*q-2*v[k] );
-    }
-    k++;
-    v[k] = q;
-    z[k] = s;
-    z[k+1] = INT_MAX;
-  }
-
-  k = 0;
-  for ( int q = 0; q <= n-1; q++ )
-  {
-    while ( z[k+1] < q )
-      k++;
-    d[q] = ( ( q-v[k] ) * ( q-v[k] ) ) + f[v[k]];
-  }
-
-  delete [] v;
-  delete [] z;
-  return d;
-}
diff --git a/homer_nav_libs/src/Math/Line2D.cpp b/homer_nav_libs/src/Math/Line2D.cpp
deleted file mode 100644
index 89cd5310..00000000
--- a/homer_nav_libs/src/Math/Line2D.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- *  Line2D.cpp
- *
- *  (C) 2007 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- *  Information on Code Review state:
- *  Author: SM; DevelTest: Date; Reviewer: Initials; Review: Date; State: NOK
- *
- *  Additional information:
- *  $Id: Line2D.cpp 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#include <iostream>
-#include <sstream>
-
-#include <homer_nav_libs/Math/Line2D.h>
-#include <homer_nav_libs/Math/vec2.h>
-
-#define THIS Line2D
-
-float THIS::gradient() const
-{
-  float gradient = 10000000.0;
-  if ( m_Vec[0] != 0.0 )
-  {
-    gradient = m_Vec[1]/m_Vec[0];
-  }
-  return gradient;
-}
-
-std::vector< Point2D > THIS::vertices ( unsigned substeps )
-{
-  unsigned steps = substeps+2;
-  std::vector<Point2D> myVertices ( steps );
-  for ( unsigned i=0; i<steps; i++ )
-  {
-    float t= float ( i ) / float ( steps-1 );
-    myVertices[i] = m_Start + t*m_Vec;
-  }
-  return myVertices;
-}
-
-Point2D THIS::getClosestPoint ( Point2D point ) const
-{
-  float t = ( point-m_Start ) * m_Vec;
-  t /= m_Vec * m_Vec;
-  if ( t > 1.0 )
-  {
-    t = 1.0;
-  }
-  else if ( t < 0.0 )
-  {
-    t = 0.0;
-  }
-  Point2D pointOnLine = m_Start + ( t * m_Vec );
-  return pointOnLine;
-}
-
-Point2D THIS::getIntersectionPoint ( Line2D line ) const
-{
-  Point2D intersecPoint;
-  double det1 = m_Vec.x() * ( -line.vec().y() ) - ( -line.vec().x() ) * m_Vec.y();
-  // lines are not parallel
-  if ( det1 != 0 )
-  {
-    CVec2 startToStart = line.start() -m_Start;
-    // calculate intersection
-    double lambda = ( startToStart.x() * ( -line.vec().y() ) - ( -line.vec().x() ) * startToStart.y() ) / det1;
-    intersecPoint = m_Start + lambda* m_Vec;
-  }
-
-  return intersecPoint;
-}
-
-float THIS::getIntersectionPointParameter ( Line2D line ) const
-{
-  double lambda = 0.0;
-  double det1 = m_Vec.x() * ( -line.vec().y() ) - ( -line.vec().x() ) * m_Vec.y();
-  // lines are not parallel
-  if ( det1 != 0 )
-  {
-    CVec2 startToStart = line.start() -m_Start;
-    // calculate intersection
-    lambda = ( startToStart.x() * ( -line.vec().y() ) - ( -line.vec().x() ) * startToStart.y() ) / det1;
-  }
-
-  return lambda;
-}
-
-std::string THIS::toString() const
-{
-  std::ostringstream str;
-//   str << "Startpoint: " << m_Start.x() << " " << m_Start.y() << " Endpoint: " << end().x() << " " << end().y() <<
-//   " Vector: " << m_Vec.x() << " " << m_Vec.y() << " ";
-  str << m_Start.x() << " " << m_Start.y() << std::endl << end().x() << " " << end().y() << std::endl;
-  return str.str();
-}
-
diff --git a/homer_nav_libs/src/Math/Math.cpp b/homer_nav_libs/src/Math/Math.cpp
deleted file mode 100644
index 5ad74fc3..00000000
--- a/homer_nav_libs/src/Math/Math.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- *  Math.cpp
- *
- *  (C) 2007 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- *  Additional information:
- *  $Id: $ 
- *******************************************************************************/
-
-#include <limits.h>
-#include <homer_nav_libs/Math/Math.h>
-#include <math.h>
-
-#include <homer_nav_libs/Math/vec2.h>
-
-#define THIS Math
-
-THIS::THIS()
-{
-}
-
-THIS::~THIS()
-{
-}
-
-float THIS::meanAngle( const std::vector<float>& angles )
-{
-  //calculate vectors from angles
-  CVec2 vectorSum(0,0);
-  for ( unsigned i=0; i<angles.size(); i++ )
-  {
-    vectorSum = vectorSum + CVec2( cos( angles[i] ), sin ( angles[i] ) );
-  }
-  //return vectorSum.getAngle( CVec2(1,0) );
-  if ( vectorSum.magnitude() == 0 ) { return 0; }
-  return atan2( vectorSum.y(), vectorSum.x() );
-}
-
-
-float THIS::meanAngleWeighted( const std::vector< WeightedValue >& weightedAngles )
-{
-  //calculate vectors from angles
-  CVec2 vectorSum(0,0);
-  for ( unsigned i=0; i<weightedAngles.size(); i++ )
-  {
-    vectorSum = vectorSum + weightedAngles[i].weight * CVec2( cos( weightedAngles[i].value ), sin ( weightedAngles[i].value ) );
-  }
-  //return vectorSum.getAngle( CVec2(1,0) );
-  if ( vectorSum.magnitude() == 0 ) { return 0; }
-  return atan2( vectorSum.y(), vectorSum.x() );
-}
-
-
-float THIS::angleVariance( float meanAngle, const std::vector<float>& angles )
-{
-  float quadSum=0;
-  for( unsigned i=0; i < angles.size(); i++ )
-  {
-    float turnAngle=minTurnAngle( angles[i], meanAngle );
-    quadSum += turnAngle*turnAngle;
-  }
-  return quadSum / float ( angles.size() );
-}
-
-
-float THIS::minTurnAngle( float angle1, float angle2 )
-{
-/*  CVec2 vector1( cos( angle1 ), sin ( angle1 ) );
-  CVec2 vector2( cos( angle2 ), sin ( angle2 ) );
-  return vector1.getAngle( vector2 );
-  */
-  angle1 *= 180.0/M_PI;
-  angle2 *= 180.0/M_PI;
-  //if(angle1 < 0) angle1 += M_PI * 2;
-  //if(angle2 < 0) angle2 += M_PI * 2;
-  int diff= angle2 - angle1;
-  diff = (diff + 180) % 360 - 180;
-
-  //float sign=1;
-  //if ( diff < 0 ) { sign=-1; }
-  //minimal turn angle:
-  //if the absolute difference is above 180°, calculate the difference in other direction
-  //if ( fabs(diff) > M_PI ) {
-  //  diff = 2*M_PI - fabs(diff);
-  //  diff *= sign;
-  //}
-
-  float ret = static_cast<double>(diff) * M_PI/180.0;
-  return ret;
-}
-
-Point2D THIS::center( std::vector<Point2D>& points )
-{
-  double numPoints = double( points.size() );
-  double sumX=0, sumY=0;
-  for( unsigned i=0; i < points.size(); i++ )
-  {
-    sumX += points[i].x();
-    sumY += points[i].y();
-  }
-  return Point2D( sumX / numPoints, sumY / numPoints );
-}
-
-
-double THIS::randomGauss(float variance)
-{
-  if (variance < 0) {
-    variance = -variance;
-  }
-  double x1, x2, w, y1;
-  do {
-    x1 = 2.0 * random01() - 1.0;
-    x2 = 2.0 * random01() - 1.0;
-    w = x1 * x1 + x2 * x2;
-  } while ( w >= 1.0 );
-
-  w = sqrt((-2.0 * log(w)) / w);
-  y1 = x1 * w;
-  // now y1 is uniformly distributed
-  return sqrt(variance) * y1;
-}
-
-double THIS::random01(unsigned long init)
-{
-  static unsigned long n;
-  if (init > 0) {
-    n = init;
-  }
-  n = 1664525 * n + 1013904223;
-  // create double from unsigned long
-  return (double)(n/2) / (double)LONG_MAX;
-}
-
-#undef THIS
diff --git a/homer_nav_libs/src/Math/Point2D.cpp b/homer_nav_libs/src/Math/Point2D.cpp
deleted file mode 100644
index 13c321d7..00000000
--- a/homer_nav_libs/src/Math/Point2D.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- *  Point2D.cpp
- *
- *  (C) 2008 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- *  Additional information:
- *  $Id: $ 
- *******************************************************************************/
-
-#include <homer_nav_libs/Math/Point2D.h>
-
-#define THIS Point2D 
-
-float THIS::getPolarAngle () const
-{
-  float angle = atan ( m_Y /m_X );
-  if ( m_X < 0 )
-  {
-    angle = - ( M_PI - angle );
-  }
-  while ( angle >= M_PI )
-  {
-    angle -= 2*M_PI;
-  }
-  while ( angle < -M_PI )
-  {
-    angle += 2*M_PI;
-  }
-  return angle;
-}
-
-#undef THIS
diff --git a/homer_nav_libs/src/Math/Pose.cpp b/homer_nav_libs/src/Math/Pose.cpp
deleted file mode 100644
index 129d123a..00000000
--- a/homer_nav_libs/src/Math/Pose.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- *  Pose.cpp
- *
- *  (C) 2006 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- *  $Id: Pose.cpp 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#include <cmath>
-
-#include <homer_nav_libs/Math/Pose.h>
-#include <homer_nav_libs/Math/Transformation2D.h>
-
-using namespace std;
-
-
-#define THIS Pose
-
-THIS::THIS(float x, float y, float theta) : Point2D(x, y) {
-  m_Theta = theta;
-}
-
-THIS::THIS() {
-  m_Theta = 0.0;
-}
-
-THIS::~THIS() {
-}
-
-float THIS::theta() const {
-  return m_Theta;
-}
-
-void THIS::setTheta(float theta) {
-  m_Theta = theta;
-}
-
-Pose THIS::operator+ ( const Transformation2D& transformation ) const {
-  float x, y, theta;
-  x = m_X + transformation.x();
-  y = m_Y + transformation.y();
-  theta = m_Theta + transformation.theta();
-  while (theta >= M_PI) theta -= 2*M_PI;
-  while (theta < -M_PI) theta += 2*M_PI;
-
-	return Pose(x, y, theta);
-}
-
-Pose THIS::operator- ( const Transformation2D& transformation ) const {
-  float x, y, theta;
-  x = m_X - transformation.x();
-  y = m_Y - transformation.y();
-  theta = m_Theta - transformation.theta();
-  while (theta >= M_PI) theta -= 2*M_PI;
-  while (theta < -M_PI) theta += 2*M_PI;
-
-	return Pose(x, y, theta);
-}
-
-Transformation2D THIS::operator- ( const Pose& pose ) const {
-  float x, y, theta;
-  x = m_X - pose.x();
-  y = m_Y - pose.y();
-
-  float s1, s2;
-  if (m_Theta > pose.theta()) {
-    s1 = -( 2 * M_PI - m_Theta + pose.theta());
-    s2 = m_Theta - pose.theta();
-  } else {
-    s1 = 2 * M_PI - pose.theta() + m_Theta;
-    s2 = -(pose.theta() - m_Theta);
-  }
-  if (fabs(s1) > fabs(s2)) {
-    theta = s2;
-  } else {
-    theta = s1;
-  }
-  while (theta >= M_PI) theta -= 2*M_PI;
-  while (theta < -M_PI) theta += 2*M_PI;
-
-	return Transformation2D(x, y, theta);
-}
-
-Pose THIS::interpolate(const Pose& referencePose, float t) const {
-
-  float newX = m_X + t * (referencePose.x() - m_X);
-  float newY = m_Y + t * (referencePose.y() - m_Y);
-
-  // Calculate mean angle by adding the vem_Thetaors in unit circle
-  float x1 = cosf(m_Theta);
-  float y1 = sinf(m_Theta);
-  float x2 = cosf(referencePose.theta());
-  float y2 = sinf(referencePose.theta());
-  float newTheta = atan2 (y1*(1-t)+y2*t, x1*(1-t)+x2*t);
-
-  return Pose(newX, newY, newTheta);
-}
-
-//THIS::THIS( ExtendedInStream& extStrm )
-//{
-//  char version;
-//  extStrm >> version;
-//  extStrm >> m_X;
-//  extStrm >> m_Y;
-//  extStrm >> m_Theta;
-//}
-
-//void THIS::storer( ExtendedOutStream& extStrm ) const
-//{
-//  char version=10;
-//  extStrm << version;
-//  extStrm << m_X;
-//  extStrm << m_Y;
-//  extStrm << m_Theta;
-//}
-
diff --git a/homer_nav_libs/src/Math/Transformation2D.cpp b/homer_nav_libs/src/Math/Transformation2D.cpp
deleted file mode 100644
index f60629cd..00000000
--- a/homer_nav_libs/src/Math/Transformation2D.cpp
+++ /dev/null
@@ -1,308 +0,0 @@
-/*******************************************************************************
- *  Transformation2D.cpp
- *
- *  (C) 2008 AG Aktives Sehen <agas@uni-koblenz.de>
- *           Universitaet Koblenz-Landau
- *
- * $Id: Transformation2D.cpp 44313 2011-04-06 22:46:28Z agas $
- *******************************************************************************/
-
-#include <homer_nav_libs/Math/Transformation2D.h>
-
-#include <cmath>
-#include <vector>
-#include <iostream>
-#include <sstream>
-#include <homer_nav_libs/Math/vec2.h> // TODO das sieht nach baselib aus ggf. durch baselib ersetzen
-#include <homer_nav_libs/Math/mat2.h> // TODO das sieht nach baselib aus ggf. durch baselib ersetzen
-#include <homer_nav_libs/Math/Point2D.h>
-#include <homer_nav_libs/Math/Line2D.h>
-
-#define THIS Transformation2D
-#define BASE CVec2
-
-THIS::Transformation2D() : BASE()
-{
-  m_Theta = 0.0;
-}
-
-THIS::Transformation2D ( double x, double y, double theta ) : BASE ( x,y )
-{
-  m_Theta = theta;
-}
-
-THIS::Transformation2D ( const CVec2& vec, double theta ) : BASE ( vec )
-{
-  m_Theta = theta;
-}
-
-THIS::~Transformation2D()
-{
-}
-
-void THIS::set ( double x, double y, double theta )
-{
-  m_X = x;
-  m_Y = y;
-  m_Theta = theta;
-}
-
-double THIS::theta() const
-{
-  return m_Theta;
-}
-
-Transformation2D THIS::operator+ ( Transformation2D t ) const
-{
-  double theta = m_Theta + t.theta();
-  // TODO comment only for scan matching test
-//   while ( theta >= M_PI ) theta -= 2*M_PI;
-//   while ( theta < -M_PI ) theta += 2*M_PI;
-  return Transformation2D ( m_X + t.x(), m_Y + t.y(), theta );
-}
-
-Transformation2D& THIS::operator+= ( Transformation2D t )
-{
-  m_X += t.x();
-  m_Y += t.y();
-  m_Theta += t.theta();
-  // TODO comment only for scan matching test
-//   while ( m_Theta >= M_PI ) m_Theta -= 2*M_PI;
-//   while ( m_Theta < -M_PI ) m_Theta += 2*M_PI;
-  return ( *this );
-}
-
-Transformation2D THIS::operator- ( Transformation2D t ) const
-{
-  float s1, s2, theta;
-  if ( m_Theta > t.theta() )
-  {
-    s1 = - ( 2 * M_PI - m_Theta + t.theta() );
-    s2 = m_Theta - t.theta();
-  }
-  else
-  {
-    s1 = 2 * M_PI - t.theta() + m_Theta;
-    s2 = - ( t.theta() - m_Theta );
-  }
-  if ( fabs ( s1 ) > fabs ( s2 ) )
-  {
-    theta = s2;
-  }
-  else
-  {
-    theta = s1;
-  }
-  while ( theta >= M_PI ) theta -= 2*M_PI;
-  while ( theta < -M_PI ) theta += 2*M_PI;
-//   double theta = m_Theta - t.theta();
-//   while ( theta >= M_PI ) theta -= 2*M_PI;
-//   while ( theta < -M_PI ) theta += 2*M_PI;
-  return Transformation2D ( m_X - t.x(), m_Y - t.y(), theta );
-}
-
-Transformation2D& THIS::operator-= ( Transformation2D t )
-{
-  m_X -= t.x();
-  m_Y -= t.y();
-
-  float s1, s2, theta;
-  if ( m_Theta > t.theta() )
-  {
-    s1 = - ( 2 * M_PI - m_Theta + t.theta() );
-    s2 = m_Theta - t.theta();
-  }
-  else
-  {
-    s1 = 2 * M_PI - t.theta() + m_Theta;
-    s2 = - ( t.theta() - m_Theta );
-  }
-  if ( fabs ( s1 ) > fabs ( s2 ) )
-  {
-    theta = s2;
-  }
-  else
-  {
-    theta = s1;
-  }
-  while ( theta >= M_PI ) theta -= 2*M_PI;
-  while ( theta < -M_PI ) theta += 2*M_PI;
-  m_Theta = theta;
-
-  return ( *this );
-
-//   m_X -= t.x();
-//   m_Y -= t.y();
-//   m_Theta -= t.theta();
-//   while ( m_Theta >= M_PI ) m_Theta -= 2*M_PI;
-//   while ( m_Theta < -M_PI ) m_Theta += 2*M_PI;
-//   return ( *this );
-}
-
-Transformation2D THIS::operator* ( float factor ) const
-{
-
-  double theta = m_Theta * factor;
-  while ( theta >= M_PI ) theta -= 2*M_PI;
-  while ( theta < -M_PI ) theta += 2*M_PI;
-  return Transformation2D ( m_X * factor, m_Y * factor, theta );
-}
-
-Transformation2D& THIS::operator*= ( float factor )
-{
-  m_X *= factor;
-  m_Y *= factor;
-  m_Theta *= factor;
-  while ( m_Theta >= M_PI ) m_Theta -= 2*M_PI;
-  while ( m_Theta < -M_PI ) m_Theta += 2*M_PI;
-  return ( *this );
-}
-
-
-Transformation2D THIS::operator/ ( float factor ) const
-{
-  double theta = m_Theta / factor;
-  return Transformation2D ( m_X / factor, m_Y / factor, theta );
-}
-
-Transformation2D& THIS::operator/= ( float factor )
-{
-  m_X /= factor;
-  m_Y /= factor;
-  m_Theta /= factor;
-  return ( *this );
-}
-
-bool THIS::operator== ( Transformation2D t ) const
-{
-  if ( t.x() == m_X && t.y() == m_Y && t.theta() == m_Theta )
-  {
-    return true;
-  }
-  else
-  {
-    return false;
-  }
-}
-
-bool THIS::operator!= ( Transformation2D t ) const
-{
-  return ! ( ( *this ) ==t );
-}
-
-bool THIS::operator<= ( Transformation2D t ) const
-{
-  return ( this->magnitude() <= t.magnitude() ) && ( m_Theta <= t.theta() );
-}
-
-bool THIS::operator>= ( Transformation2D t ) const
-{
-  return ( this->magnitude() >= t.magnitude() ) && ( m_Theta >= t.theta() );
-}
-
-bool THIS::operator< ( Transformation2D t ) const
-{
-  return ( m_X < t.x() ) || ( m_Y < t.y() ) || ( ( m_Theta < t.theta() ) && ( *this <= t ) );
-}
-
-bool THIS::operator> ( Transformation2D t ) const
-{
-  return ( m_X > t.x() ) || ( m_Y > t.y() ) || ( ( m_Theta > t.theta() ) && ( *this >= t ) );
-}
-
-Transformation2D THIS::abs() const
-{
-  return Transformation2D ( std::abs ( m_X ), std::abs ( m_Y ), std::abs ( m_Theta ) );
-}
-
-Transformation2D THIS::inverse() const
-{
-  return ( *this ) * ( -1.0 );
-}
-
-Point2D THIS::transform ( const Point2D& point ) const
-{
-  CMat2 rotMat = CMat2 ( m_Theta );
-  CVec2 transVec = CVec2 ( m_X, m_Y );
-  Point2D transformedPoint = rotMat * ( point );
-  transformedPoint += transVec;
-  return transformedPoint;
-}
-
-std::vector<Point2D> THIS::transform ( const std::vector<Point2D>& points ) const
-{
-  CMat2 rotMat = CMat2 ( m_Theta );
-  CVec2 transVec = CVec2 ( m_X, m_Y );
-  std::vector<Point2D> transformedPoints;
-  std::vector<Point2D>::const_iterator iter = points.begin();
-  while ( iter != points.end() )
-  {
-    Point2D currPoint = rotMat * ( *iter );
-    currPoint += transVec;
-    transformedPoints.push_back ( currPoint );
-    iter++;
-  }
-  return transformedPoints;
-}
-
-// // Reihenfolge rotation/translation vertauscht !!!
-// Point2D THIS::transform ( Point2D point ) const
-// {
-//   CMat2 rotMat = CMat2 ( m_Theta );
-//   CVec2 transVec = CVec2 ( m_X, m_Y );
-//   Point2D transformedPoint = point+transVec;
-//   transformedPoint = rotMat * point;
-//   return transformedPoint;
-// }
-//
-// // Reihenfolge rotation/translation vertauscht !!!
-// std::vector<Point2D> THIS::transform ( std::vector<Point2D> points ) const
-// {
-//   CMat2 rotMat = CMat2 ( m_Theta );
-//   CVec2 transVec = CVec2 ( m_X, m_Y );
-//   std::vector<Point2D> transformedPoints;
-//   std::vector<Point2D>::const_iterator iter = points.begin();
-//   while ( iter != points.end() )
-//   {
-//     Point2D currPoint = ( *iter )+ transVec;
-//     currPoint = rotMat * currPoint;
-//     transformedPoints.push_back ( currPoint );
-//     iter++;
-//   }
-//   return transformedPoints;
-// }
-
-Line2D THIS::transform ( const Line2D& line ) const
-{
-  CMat2 rotMat = CMat2 ( m_Theta );
-  CVec2 transVec = CVec2 ( m_X, m_Y );
-  Line2D transformedLine = Line2D ( rotMat * line.start() + transVec, rotMat * line.end() + transVec );
-  return transformedLine;
-}
-
-std::vector<Line2D> THIS::transform ( const std::vector<Line2D>& lines ) const
-{
-  //CMat2 rotMat = CMat2 ( m_Theta );
-  //CVec2 transVec = CVec2 ( m_X, m_Y );
-  std::vector<Line2D> transformedLines;
-  std::vector<Line2D>::const_iterator iter = lines.begin();
-  while ( iter != lines.end() )
-  {
-    transformedLines.push_back ( transform(*iter) );
-    iter++;
-  }
-  return transformedLines;
-}
-
-std::string THIS::toString() const
-{
-  std::ostringstream str;
-  str << "deltaX: " << m_X << ", deltaY: " << m_Y << ", deltaTheta: " << m_Theta;
-  return str.str();
-}
-
-
-
-#undef THIS
-#undef BASE
-
diff --git a/homer_nav_libs/src/SpeedControl/CMakeLists.txt b/homer_nav_libs/src/SpeedControl/CMakeLists.txt
deleted file mode 100644
index 154b60eb..00000000
--- a/homer_nav_libs/src/SpeedControl/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set(SpeedControl_SRC
-  SpeedControl.cpp
-)
-
-add_library(SpeedControl ${SpeedControl_SRC})
diff --git a/homer_nav_libs/src/SpeedControl/SpeedControl.cpp b/homer_nav_libs/src/SpeedControl/SpeedControl.cpp
deleted file mode 100644
index c939197e..00000000
--- a/homer_nav_libs/src/SpeedControl/SpeedControl.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-#include <cmath>
-#include <iostream>
-
-#include <ros/ros.h>
-#include "SpeedControl.h"
-#include "tools/loadRosConfig.h"
-
-using namespace std;
-
-// Robot dimensions in m
-//       
-//       
-//  /-------------\  <-- MAX_X
-//  |      x      |
-//  |      |      |
-//  |      |      |
-//  | y-----      |
-//  |             |
-//  |    ROBOT    |
-//  |             |
-//  \-------------/  <-- MIN_X
-//  ^             ^
-//  |             |
-//  MAX_Y      MIN_Y
-//
-float ROBOT_MIN_X = -0.30;
-float ROBOT_MAX_X =  0.30;
-float ROBOT_MIN_Y = -0.27;
-float ROBOT_MAX_Y =  0.27;
-
-
-namespace {
-  Eigen::AlignedBox2f InnerDangerZone,
-        OuterDangerZone;
-  float InnerDangerZoneFactor,
-        OuterDangerZoneFactor;
-
-  inline Eigen::AlignedBox2f loadRect(const string& path)
-  {
-    pair<float, float> pX, pY;
-	ros::param::get(path + "/x_min", pX.first);
-	ros::param::get(path + "/x_max", pX.second);
-	ros::param::get(path + "/y_min", pY.first);
-	ros::param::get(path + "/y_max", pY.second);
-
-    Eigen::Vector2f first(pX.first, pY.first), second(pX.second, pY.second);
-    return Eigen::AlignedBox2f(first, second);
-  }  
-}
-
-void SpeedControl::loadDimensions()
-{
-  InnerDangerZone = loadRect("/homer_navigation/speed_control/inner_danger_zone");
-  InnerDangerZoneFactor;
-  ros::param::get("/homer_navigation/speed_control/inner_danger_zone/speed_factor", InnerDangerZoneFactor);
-  OuterDangerZone = loadRect("/homer_navigation/speed_control/inner_danger_zone");
-  OuterDangerZoneFactor;
-  ros::param::get("/homer_navigation/speed_control/outer_danger_zone/speed_factor", OuterDangerZoneFactor);
-  if(!OuterDangerZone.contains(InnerDangerZone))
-    ROS_WARN_STREAM("InnerDangerZone is not contained in OuterDangerZone");
-}
-
-float SpeedControl::getSpeedFactor(const vector<geometry_msgs::Point>& points, float minVal, float maxVal )
-{
-  float minFactor = 1.0;
-  for (unsigned i = 0; i < points.size(); i++)
-  {
-    Eigen::Vector2f point(points[i].x, points[i].y);
-    if(InnerDangerZone.contains(point))
-    {
-      minFactor = InnerDangerZoneFactor;
-      break;
-    }
-    if(OuterDangerZone.contains(point))
-      minFactor = OuterDangerZoneFactor;
-  }
-  minFactor = sqrt(minFactor);
-  float range = maxVal - minVal;
-  minFactor = minVal + range*minFactor;
-  return minFactor;
-}
-
-float SpeedControl::getMaxMoveDistance(vector<geometry_msgs::Point> points)
-{
-  float minDistance = 4; // distance in m to nearest obstacle in front
-  for (unsigned int i = 0; i < points.size(); i++)
-  {
-      if(points[i].y > ROBOT_MIN_Y && points[i].y < ROBOT_MAX_Y && points[i].x > ROBOT_MAX_X)
-      {
-        float distance = sqrt((points[i].x * points[i].x) + (points[i].y * points[i].y));
-        if (distance < minDistance)
-        {
-          minDistance = distance;
-        }
-      }
-  }
-  float maxMoveDist = minDistance - ROBOT_MAX_X;
-  if (maxMoveDist < 0) {
-    maxMoveDist = 0.0;
-  }
-  return maxMoveDist;
-}
-
-float SpeedControl::getMaxMoveDistance(std::vector< Eigen::Vector3d >* kinectData, float minObstacleHeight, float minObstacleFromRobotDistance, float maxObstacleFromRobotDistance)
-{
-  // Check for obstacles in Kinect image: Look for closest point
-
-  float minDistance = 4; // distance to nearest obstacle in front
-
-  for(int i=0;i<kinectData->size();++i)
-  {
-    Eigen::Vector2d p = Eigen::Vector2d(kinectData->at(i).x(), kinectData->at(i).y());
-    if(!std::isnan(p.x()))
-    {
-      // Filter point cloud
-        if(p.x() > minObstacleFromRobotDistance && p.x() < maxObstacleFromRobotDistance && kinectData->at(i).z() > minObstacleHeight)
-      {
-        // Check for collisions outside of robot
-        if(p.y() > ROBOT_MIN_Y && p.y() < ROBOT_MAX_Y && p.x() > ROBOT_MAX_X)
-        {
-          float distance = sqrt((p.x() * p.x()) + (p.y() * p.y()));
-          if (distance < minDistance)
-          {
-            minDistance = distance;
-          }
-        }
-      }
-    }
-  }
-
-  float maxMoveDist = minDistance - ROBOT_MAX_X;
-  if (maxMoveDist < 0) {
-    maxMoveDist = 0.0;
-  }
-  return maxMoveDist;
-}
-
-float SpeedControl::getTurnSpeedFactor( float speedFactor, float turnAngle, float minVal, float maxVal )
-{
-  //turn faster for larger angles
-  float angleDependentFactor = sqrt( fabs(turnAngle) / M_PI );
-  angleDependentFactor = minVal + angleDependentFactor*(maxVal-minVal);
-  return sqrt( speedFactor * angleDependentFactor );
-}
-
-float SpeedControl::getMinTurnAngle(std::vector<geometry_msgs::Point> laserData, float minAngle, float maxAngle, float minDistance, float maxDistance)
-{
-    float turn_factor = 1.0;
-    for (unsigned int i = 0; i < laserData.size(); i++)
-    {
-        if(laserData[i].y > ROBOT_MIN_Y && laserData[i].y < ROBOT_MAX_Y && laserData[i].x > ROBOT_MAX_X)
-        {
-          float distance = sqrt((laserData[i].x * laserData[i].x) + (laserData[i].y * laserData[i].y));
-          if (distance < minDistance + ROBOT_MAX_X)
-          {
-            turn_factor = 0.0;
-          }
-          else if(distance > maxDistance + ROBOT_MAX_X)
-          {
-              turn_factor = 1.0;
-          }
-          else
-          {
-              turn_factor = (distance - minDistance)/maxDistance;
-          }
-        }
-    }
-    float range = maxAngle - minAngle;
-    return minAngle + turn_factor * range;
-}
-
-SpeedControl::SpeedControl() {
-}
-
-SpeedControl::~SpeedControl() {
-}
-
diff --git a/homer_nav_libs/src/SpeedControl/SpeedControl.h b/homer_nav_libs/src/SpeedControl/SpeedControl.h
deleted file mode 100644
index 7bef0e9a..00000000
--- a/homer_nav_libs/src/SpeedControl/SpeedControl.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef SPEEDCONTROL_H
-#define SPEEDCONTROL_H  
-
-#include <vector>
-#include <Eigen/Geometry>
-#include <geometry_msgs/Point.h>
-
-/** 
- * @class SpeedControl
- * @author Malte Knauf, Stephan Wirth
- * @brief Class for computing a speed factor with respect to a given laser measurement.
- */
-class SpeedControl {
-    
-  public:
-
-    /**
-     * @brief Loads robot and safety zone dimensions config values
-     */
-    static void loadDimensions();
-
-    /**
-     * Calculates the speed factor for the robot. If a measured obstacle lies in the "danger zone"
-     * that is defined in SpeedControl.cpp, the speed factor will be below maxVal. The nearer the obstacle,
-     * the smaller the speed factor.
-     * @param laserData Laser measurement
-     * @param minVal,maxVal range of return values
-     * @return Speed factor, value between minVal and maxVal. The higher the speed factor, the safer is it to drive fast.
-     */
-    static float getSpeedFactor(const std::vector<geometry_msgs::Point>& points, float minVal=0.2, float maxVal=1.0);
-
-    /**
-     * Calculates the maximum distance the robot can move without touching an obstacle.
-     * @param laserPoints Current laser measurement transformed to (valid) points in map frame
-     * @param laserConf The configuration of the LRF that took the measurement
-     * @return maximum distance (m) the robot can move based on the given laserscan.
-     */
-    static float getMaxMoveDistance(std::vector<geometry_msgs::Point> laserData);
-
-    static float getMaxMoveDistance(std::vector< Eigen::Vector3d >* kinectData, float minObstacleHeight, float minObstacleFromRobotDistance, float maxObstacleFromRobotDistance);
-
-    /// @return if the angle is larger, the turn speed factor will be higher
-    static float getTurnSpeedFactor( float speedFactor, float turnAngle, float minVal, float maxVal );
-
-    /**
-     * Calculates the minimum angle between the robot's orientation and the next waypoint which is necessary
-     * to trigger a rotation instead of a straight line
-     * @brief getMinTurnAngle
-     * @param laserData
-     * @param minAngle
-     * @param maxAngle
-     * @return
-     */
-    static float getMinTurnAngle(std::vector<geometry_msgs::Point> laserData, float minAngle, float maxAngle,
-                                                                              float minDistance, float maxDistance);
-
-  private:
-
-    /** 
-     * Constructor is empty and private because this class will never be instanciated.
-     */
-    SpeedControl();
-    
-    /**
-     * Destructor is empty.
-     */
-    ~SpeedControl();
-
-};
-#endif
-
diff --git a/homer_navigation/CHANGELOG.rst b/homer_navigation/CHANGELOG.rst
deleted file mode 100644
index 5c4aae42..00000000
--- a/homer_navigation/CHANGELOG.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Changelog for package homer_navigation
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-0.1.1 (2016-11-03)
-------------------
-* fixes
-* initial commit
-* Contributors: Niklas Yann Wettengel
diff --git a/homer_navigation/CMakeLists.txt b/homer_navigation/CMakeLists.txt
deleted file mode 100644
index 94d03307..00000000
--- a/homer_navigation/CMakeLists.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-cmake_minimum_required(VERSION 2.8.3)
-project(homer_navigation)
-
-find_package(catkin REQUIRED COMPONENTS
-  roscpp
-  roslib
-  homer_robbie_architecture
-  nav_msgs
-  sensor_msgs
-  homer_mapnav_msgs
-  homer_nav_libs
-  tf
-  cmake_modules
-)
-
-find_package(Eigen3 REQUIRED)
-
-set(CMAKE_BUILD_TYPE Release)
-
-catkin_package(
-  INCLUDE_DIRS include
-  CATKIN_DEPENDS
-  	roscpp
-	roslib
-	homer_robbie_architecture
-	nav_msgs
-	sensor_msgs
-	homer_mapnav_msgs
-	homer_nav_libs
-	tf
-)
-
-include_directories(
-  include
-  ${catkin_INCLUDE_DIRS}
-  ${Eigen3_INCLUDE_DIRS}
-)
-
-add_executable(homer_navigation src/homer_navigation_node.cpp)
-add_dependencies(homer_navigation ${catkin_EXPORTED_TARGETS})
-
-target_link_libraries(homer_navigation
-   ${catkin_LIBRARIES}
-   ${EIGEN3_LIBRARIES}
- )
-
-install(DIRECTORY include/${PROJECT_NAME}/
-	DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
-)
-
-install(TARGETS homer_navigation
-	ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
-	LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
-	RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
-)
diff --git a/homer_navigation/README.md b/homer_navigation/README.md
deleted file mode 100644
index 01fa1271..00000000
--- a/homer_navigation/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# homer_navigation
-
-## Introduction 
-
-Das Package "homer_navigation" mit seiner gleichnamigen Node ist für die Navigation des Roboters zuständig. Es hält stets die aktuelle Karte des Roboters vor, die auf Topic /map empfangen wurde und berechnet anhand von dieser Karte einen Pfad vom Roboter zu einem gegebenen Zielpunkt. Dafür verwendet die Navigation die sogenannte Pfad-Transformation - eine Kombination aus Distanz-Transformation und Hindernistransformation -, in Verbindung mit A-Stern, um einen optimalen Pfad zu finden. Das Verhältnis zwischen Distanz- und Hindernis-Transformation kann über einen Parameter angepasst werden.
-Nach der Pfadberechnung ist das Package außerdem dafür zuständig den Roboter diesen Pfad zum Ziel abfahren zu lassen.
-
-## Topics 
-
-#### Publisher 
-* `/homer_navigation/target_reached (std_msgs/String)`: Wenn der Roboter sein Ziel erreicht hat, wird eine Message über dieses Topic veschickt.
-* `/homer_navigation/target_unreachable (mapnav_msgs/TargetUnreachable)`: Über dieses Topic wird mitgeteilt, wenn der Roboter sein Ziel nicht erreichen kann und die Navigation abgebrochen wurde. Ein Statuscode wird mitgeliefert (siehe Package map_messages).
-* `/homer_navigation/path (nav_msgs/Path)`: Hierüber wird der aktuelle Pfad zur Visualisierung an die GUI geschickt.
-* `/robot_platform/cmd_vel (geometry_msgs/Twist)`: Über dieses Topic werden die aktuellen Fahrbefehle zum Roboter geschickt. 
-* `/ptu/set_pan_tilt (ptu/SetPanTilt)`: Über dieses Topic wird die PTU nach navigation auf  0, 0 gefahren.
-* `/ptu/center_world_point (ptu/CenterWorldPoint)`: Über dieses Topic wird die PTU auf den nächsten Wegpunkt centriert.
-
-#### Subscriber
-* `/map (nav_msgs/OccupancyGrid)`: Die jeweils aktuelle Map wird empfangen, um sie für die Pfadplanung und Hindernisvermeidung während der Navigation zu verwenden.
-* `/pose (geometry_msgs/PoseStamped)`: Die aktuelle Pose des Roboters wird als Startpunkt der Pfadplanung verwendet.
-* `/scan (sensor_msgs/LaserScan)`: Der aktuelle LaserScan wird zur Hindernisvermeidung verwendet.
-* `/front_scan (sensor_msgs/LaserScan)`: Der aktuelle LaserScan wird zur Hindernisvermeidung verwendet.
-* `/homer_navigation/start_navigation (mapnav_msgs/StartNavigation)`: Startet die Pfadplanung und anschließend die Navigation zur mitgelieferten Zielpose.
-* `/move_base_simple/goal (geometry_msgs/PoseStamped)`: Started die Pfadplanung und anschließende Navigation zur Zielpose.
-* `/homer_navigation/stop_navigation (std_msgs/Empty)`: Stoppt die aktuelle Navigation.
-* `/homer_navigation/navigate_to_POI (mapnav_msgs/NavigateToPOI)`: Startet die Pfadplanung und anschließend die Navigation zum POI mit angegebenen Namen. Der entsprechende POI wird anschließend vom map_manager erfragt.
-* `/homer_navigation/unknown_threshold (std_msgs/Int8)`: Über dieses Topic kann der Schwellwert verändert werden, ab dem ein Zellwahrscheinlichkeit als belegt und damit unbefahrbar markiert wird. Standard ist 50 (%).
-* `/homer_navigation/refresh_params (std_msgs/Empty)`: Über dieses Topic lassen sich die Parameter neu auslesen.
-* `/homer_navigation/max_depth_move_distance (std_msgs/Float32)`: Über dieses Topic lässt sich die Hindernissdistance der Tiefendaten übermitteln. 
-
-## Launch Files 
-
-* `homer_navigation.launch:` Startet die Navigation und lädt alle Navigations-Paramter in den Parameterserver.
-
-## Parameter 
-
-
-### homer_navigation
-* `/homer_navigation/safe_path_weight:`               1.2  # factor weight for safer path in relation to shortest path
-* `/homer_navigation/waypoint_sampling_threshold:`    1.5  # factor of how dense the path waypoints are sampled regarding the obstacle_distance of the last or next waypoint 
-* `/homer_navigation/frontier_safeness_factor:`       1.4  # factor of min_allowed_obstacle_distance to an obstacle of a cell which is considered safe
-
-### cost calculation parameters
-* `/homer_navigation/allowed_obstacle_distance/min:`  0.3  # m robot must stay further away than this from obstacles
-* `/homer_navigation/allowed_obstacle_distance/max:`  5.0  # m not used at the moment
-* `/homer_navigation/safe_obstacle_distance/min:`     0.7  # m if possible robot should move further away than this from obstacles
-* `/homer_navigation/safe_obstacle_distance/max:`     1.5  # m further away than this from obstacles doesn't give a lesser cost addition
-
-### collision Avoidance parameters
-* `/homer_navigation/collision_distance:`             0.3  # m distance to obstacle from robotFront in which the obstacle avoidance will be executed
-* `/homer_navigation/collision_distance_near_target:` 0.2  # m distance to obstacle from robotFront where obstacle avoidance won't be executed when near the target
-* `/homer_navigation/backward_collision_distance:`    0.5  # m distance behind robot in which the robot won't back up into while doing collision avoidance 
-* `/homer_navigation/min_y:`                          0.27 # m half robot width for max_move_distance calculation 
-* `/homer_navigation/min_x:`                          0.3  # m distance from base_link to robot front for max_move_distance calculation 
-
-### check path on map update
-* `/homer_navigation/check_path:`                     true # bool toggles if the calculated path will be checked for obstacles while navigating
-* `/homer_navigation/check_path_max_distance:`        2    # m maximal distance from robot position in which the path is being checked for obstacles
-
-### speed parameters
-* `/homer_navigation/min_turn_angle:`                 0.15 # rad values lower than this angle will let the navigation assume reaching the designated position   
-* `/homer_navigation/max_turn_speed:`                 0.6  # rad/s max turn velocity the navigation can send
-* `/homer_navigation/min_turn_speed:`                 0.3  # rad/s min turn speed for Final Turn so the Robot doesn't stop turning
-* `/homer_navigation/max_drive_angle:`                0.6  # rad threshold for driving and turning - if above that value only turn
-
-* `/homer_navigation/max_move_speed:`                 0.4  # m/s   max move speed the navigation can send
-
-### caution factors values near 0 mean high caution values greater values mean less caution
-### if any factor equals 0 the robot can't follow paths !!
-* `/homer_navigation/map_speed_factor:`               1.2  # factor for the max speed calculation of the obstacleDistancemap
-* `/homer_navigation/waypoint_speed_factor:`          1.2  # factor for the max speed calculation with the distance to the next waypoint
-* `/homer_navigation/obstacle_speed_factor:`          1.0  # factor for the max speed calculation with the last laser may movement distance
-
-* `/homer_navigation/callback_error_duration:`        0.3  # s max duration between pose and laser callbacks before error handling is executed
-
-* `/homer_navigation/use_ptu:` 				          false# bool toggles if the ptu is being used to look at the next Waypoint during navigation
diff --git a/homer_navigation/config/homer_navigation.yaml b/homer_navigation/config/homer_navigation.yaml
deleted file mode 100644
index 24e17193..00000000
--- a/homer_navigation/config/homer_navigation.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-/homer_navigation/safe_path_weight:               0.1  # factor weight for safer path in relation to shortest path
-/homer_navigation/waypoint_sampling_threshold:    1.5  # factor of how dense the path waypoints are sampled regarding the obstacle_distance of the last or next waypoint 
-/homer_navigation/frontier_safeness_factor:       1.4  # factor of min_allowed_obstacle_distance to an obstacle of a cell which is considered safe
-
-### cost calculation parameters
-/homer_navigation/allowed_obstacle_distance/min:  0.27  # m robot must stay further away than this from obstacles
-/homer_navigation/allowed_obstacle_distance/max:  5.0  # m not used at the moment
-/homer_navigation/safe_obstacle_distance/min:     1.5  # m if possible robot should move further away than this from obstacles
-/homer_navigation/safe_obstacle_distance/max:     3.0  # m further away than this from obstacles doesn't give a lesser cost addition
-
-### collision Avoidance parameters
-/homer_navigation/collision_distance:             0.3  # m distance to obstacle from robotFront in which the obstacle avoidance will be executed
-/homer_navigation/collision_distance_near_target: 0.2  # m distance to obstacle from robotFront where obstacle avoidance won't be executed when near the target
-/homer_navigation/backward_collision_distance:    0.5  # m distance behind robot in which the robot won't back up into while doing collision avoidance 
-/homer_navigation/min_y:                          0.23 # m half robot width for max_move_distance calculation 
-/homer_navigation/min_x:                          0.3  # m distance from base_link to robot front for max_move_distance calculation 
-
-### check path on map update
-/homer_navigation/check_path:                     true # toggles if the calculated path will be checked for obstacles while navigating
-/homer_navigation/check_path_max_distance:        2    # m maximal distance from robot position in which the path is being checked for obstacles
-
-### speed parameters
-/homer_navigation/min_turn_angle:                 0.1 # rad values lower than this angle will let the navigation assume reaching the designated position   
-/homer_navigation/max_turn_speed:                 0.6  # rad/s max turn velocity the navigation can send
-/homer_navigation/min_turn_speed:                 0.2  # rad/s min turn speed for Final Turn so the Robot doesn't stop turning
-/homer_navigation/max_drive_angle:                0.3  # rad threshold for driving and turning - if above that value only turn
-
-/homer_navigation/max_move_speed:                 1.0  # m/s   max move speed the navigation can send
-### caution factors values near 0 mean high caution values greater values mean less caution
-### if any factor equals 0 the robot can't follow paths !!
-/homer_navigation/map_speed_factor:               0.7 # factor for the max speed calculation of the obstacleDistancemap
-/homer_navigation/waypoint_speed_factor:          10  # factor for the max speed calculation with the distance to the next Waypoint
-/homer_navigation/obstacle_speed_factor:          0.5  # factor for the max speed calculation with the last laser max movement distance
-/homer_navigation/target_distance_speed_factor:   0.4  # factor for the max speed calculation with the distance to target
-
-/homer_navigation/callback_error_duration:        0.3  # s max duration between pose and laser callbacks before error handling is executed
-
-/homer_navigation/use_ptu:                       false # bool toggles if the ptu is being used to look at the next Waypoint during navigation
-/homer_navigation/unknown_threshold:              50   # obstacle strenght under which the obstacle is ignored by navigation
-/homer_navigation/waypoint_radius_factor:         0.25 # factor for includance of obstacle map
diff --git a/homer_navigation/config/homer_navigation_pioneer.yaml b/homer_navigation/config/homer_navigation_pioneer.yaml
deleted file mode 100644
index 0a1370d1..00000000
--- a/homer_navigation/config/homer_navigation_pioneer.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-/homer_navigation/safe_path_weight:               0.1  # factor weight for safer path in relation to shortest path
-/homer_navigation/waypoint_sampling_threshold:    1.5  # factor of how dense the path waypoints are sampled regarding the obstacle_distance of the last or next waypoint 
-/homer_navigation/frontier_safeness_factor:       1.4  # factor of min_allowed_obstacle_distance to an obstacle of a cell which is considered safe
-
-### cost calculation parameters
-/homer_navigation/allowed_obstacle_distance/min:  0.27  # m robot must stay further away than this from obstacles
-/homer_navigation/allowed_obstacle_distance/max:  5.0  # m not used at the moment
-/homer_navigation/safe_obstacle_distance/min:     0.5  # m if possible robot should move further away than this from obstacles
-/homer_navigation/safe_obstacle_distance/max:     1.5  # m further away than this from obstacles doesn't give a lesser cost addition
-
-### collision Avoidance parameters
-/homer_navigation/collision_distance:             0.3  # m distance to obstacle from robotFront in which the obstacle avoidance will be executed
-/homer_navigation/collision_distance_near_target: 0.2  # m distance to obstacle from robotFront where obstacle avoidance won't be executed when near the target
-/homer_navigation/backward_collision_distance:    0.5  # m distance behind robot in which the robot won't back up into while doing collision avoidance 
-/homer_navigation/min_y:                          0.23 # m half robot width for max_move_distance calculation 
-/homer_navigation/min_x:                          0.3  # m distance from base_link to robot front for max_move_distance calculation 
-
-### check path on map update
-/homer_navigation/check_path:                     true # toggles if the calculated path will be checked for obstacles while navigating
-/homer_navigation/check_path_max_distance:        2    # m maximal distance from robot position in which the path is being checked for obstacles
-
-### speed parameters
-/homer_navigation/min_turn_angle:                 0.1 # rad values lower than this angle will let the navigation assume reaching the designated position   
-/homer_navigation/max_turn_speed:                 0.5  # rad/s max turn velocity the navigation can send
-/homer_navigation/min_turn_speed:                 0.3  # rad/s min turn speed for Final Turn so the Robot doesn't stop turning
-/homer_navigation/max_drive_angle:                0.4  # rad threshold for driving and turning - if above that value only turn
-
-/homer_navigation/max_move_speed:                 0.4  # m/s   max move speed the navigation can send
-### caution factors values near 0 mean high caution values greater values mean less caution
-### if any factor equals 0 the robot can't follow paths !!
-/homer_navigation/map_speed_factor:               1.2  # factor for the max speed calculation of the obstacleDistancemap
-/homer_navigation/waypoint_speed_factor:          1.3  # factor for the max speed calculation with the distance to the next Waypoint
-/homer_navigation/obstacle_speed_factor:          0.8  # factor for the max speed calculation with the last laser max movement distance
-
-/homer_navigation/callback_error_duration:        0.3  # s max duration between pose and laser callbacks before error handling is executed
-
-/homer_navigation/use_ptu:                       false # bool toggles if the ptu is being used to look at the next Waypoint during navigation
-/homer_navigation/unknown_threshold:              50   # obstacle strenght under which the obstacle is ignored by navigation
-/homer_navigation/waypoint_radius_factor:         0.25 # factor for includance of obstacle map
diff --git a/homer_navigation/include/homer_navigation/homer_navigation_node.h b/homer_navigation/include/homer_navigation/homer_navigation_node.h
deleted file mode 100644
index a273994b..00000000
--- a/homer_navigation/include/homer_navigation/homer_navigation_node.h
+++ /dev/null
@@ -1,329 +0,0 @@
-#ifndef FastNavigationModule_H
-#define FastNavigationModule_H
-
-#include <vector>
-#include <string>
-#include <sstream>
-#include <cmath>
-
-#include <ros/ros.h>
-#include <ros/package.h>
-
-#include <tf/transform_listener.h>
-
-#include <homer_robbie_architecture/Architecture/StateMachine/StateMachine.h>
-
-#include <nav_msgs/OccupancyGrid.h>
-#include <nav_msgs/Path.h>
-#include <geometry_msgs/PoseStamped.h>
-#include <geometry_msgs/Twist.h>
-#include <sensor_msgs/LaserScan.h>
-#include <homer_mapnav_msgs/StartNavigation.h>
-#include <homer_mapnav_msgs/NavigateToPOI.h>
-#include <homer_mapnav_msgs/TargetUnreachable.h>
-#include <homer_mapnav_msgs/GetPointsOfInterest.h>
-#include <std_msgs/Int8.h>
-#include <std_msgs/Float32.h>
-#include <std_msgs/Empty.h>
-#include <std_msgs/String.h>
-#include <std_msgs/Float32.h>
-#include <homer_ptu_msgs/CenterWorldPoint.h>
-#include <homer_ptu_msgs/SetPanTilt.h>
-
-#include <homer_nav_libs/tools.h>
-#include <homer_nav_libs/Explorer/Explorer.h>
-
-class Explorer;
-/**
- * @class  HomerNavigationNode
- * @author Malte Knauf, Stephan Wirth, David Gossow (RX), Florian Polster
- * @brief  Performs autonomous navigation
- */
-class HomerNavigationNode {
-
-	public:
-
-		/**
-		 * @brief   States of the state machines
-		 */
-		enum ProcessState
-		{
-			IDLE,
-			AWAITING_PATHPLANNING_MAP,
-			FOLLOWING_PATH,
-			AVOIDING_COLLISION,
-			FINAL_TURN
-		};
-
-		/**
-		 * The constructor
-		 */
-		HomerNavigationNode();
-
-		/**
-		 * The destructor
-		 */
-		virtual ~HomerNavigationNode();
-
-		/** @brief Is called in constant intervals. */
-		void idleProcess();
-
-
-	protected:
-		/** @brief Handles incoming messages. */
-		void mapCallback(const nav_msgs::OccupancyGrid::ConstPtr& msg);
-		void poseCallback(const geometry_msgs::PoseStamped::ConstPtr& msg);
-		void laserDataCallback(const sensor_msgs::LaserScan::ConstPtr& msg);
-		void downlaserDataCallback(const sensor_msgs::LaserScan::ConstPtr& msg);
-		void startNavigationCallback(const homer_mapnav_msgs::StartNavigation::ConstPtr& msg);
-		void moveBaseSimpleGoalCallback(const geometry_msgs::PoseStamped::ConstPtr& msg);
-		void stopNavigationCallback(const std_msgs::Empty::ConstPtr& msg);
-
-		void navigateToPOICallback(const homer_mapnav_msgs::NavigateToPOI::ConstPtr& msg);
-		void unknownThresholdCallback(const std_msgs::Int8::ConstPtr& msg);
-		void maxDepthMoveDistanceCallback(const std_msgs::Float32::ConstPtr& msg);
-
-
-		/** @brief initializes and refreshs parameters */
-		void loadParameters();
-
-		/** @brief Is called when all modules are loaded and thread has started. */
-		virtual void init();
-
-		/** @brief Detect & handle possible collision */
-		void handleCollision();
-
-	private:
-		/** @brief Start navigation to m_Target on  last_map_data_ */
-		void startNavigation();
-
-		/** @brief Check if obstacles are blocking the way in last_map_data_ */
-		bool checkPath();
-
-		/** @brief calculate path from current robot position to target approximation */
-		void calculatePath();
-
-		/** @brief Send message containing current navigation path */
-		void sendPathData();
-
-		/** @brief Sends target reached and stops the robot. */
-		void sendTargetReachedMsg();
-
-		/**
-		 * @brief Sends a target unreachable with given reason and stops the robot.
-		 * @param reason reason for unreachable target (see homer_mapnav_msgs::TargetUnreachable for possible reasons)
-		 */
-		void sendTargetUnreachableMsg( int8_t reason );
-
-		/** @brief reloads all params from the parameterserver */
-		void refreshParamsCallback(const std_msgs::Empty::ConstPtr& msg);
-
-		/** @brief Navigate robot to next waypoint */
-		void performNextMove();
-
-		/** @brief Finishes navigation or starts turning to target direction if the target position has been reached */
-		void targetPositionReached();
-
-		/** @return Angle from robot_pose_ to point in degrees */
-		int angleToPointDeg(geometry_msgs::Point point);
-
-		/** @brief Calculates current maximal backwards distance on map Data */
-		bool backwardObstacle();
-
-		/** @brief stops the Robot */
-		void stopRobot();
-
-		/**
-		 * @brief Sets each cell of the map to -1 outside the bounding box
-		 *        containing the robot pose and the current target
-		 */
-		void maskMap();
-
-		/**
-		 * @brief Current path was finished (either successful or not),
-		 *        sets state machine to path planning to check if the robot is already at the goal
-		 */
-		void currentPathFinished();
-
-		//convenience math functions
-		/**
-		 * Computes minimum turn angle from angle 1 to angle 2
-		 * @param angle1 from angle
-		 * @param angle2 to angle
-		 * @return minimal angle needed to turn from angle 1 to angle 2 [-Pi..Pi]
-		 */
-		static float minTurnAngle ( float angle1, float angle2 );
-
-		/**
-		 * converts value from degree to radiant
-		 * @param deg Value in degree
-		 * @return value in radiants
-		 */
-		static float deg2Rad ( float deg ) { return deg / 180.0*M_PI; }
-
-		/**
-		 * converts value from radiants to degrees
-		 * @param rad Value in radiants
-		 * @return value in degrees
-		 */
-		static float rad2Deg ( float rad ) { return rad / M_PI*180.0; }
-
-		bool drawPolygon ( std::vector< geometry_msgs::Point > vertices);
-		void drawLine ( std::vector<int> &data, int startX, int startY, int endX, int endY, int value );
-		bool fillPolygon ( std::vector<int> &data, int x, int y, int value );
-
-		/** @brief calcs the maximal move distance from Laser and DepthData */
-		void calcMaxMoveDist();
-
-		/// @brief Worker instances
-		Explorer* m_explorer;
-
-		/// @brief State machine
-		StateMachine<ProcessState> m_MainMachine;
-
-		/// @brief Navigation options & data
-
-		/** list of waypoints subsampled from m_PixelPath */
-		std::vector<geometry_msgs::PoseStamped> m_waypoints;
-
-		/** Path planned by Explorer, pixel accuracy */
-		std::vector<Eigen::Vector2i> m_pixel_path;
-
-		/** target point */
-		geometry_msgs::Point m_target_point;
-		
-		/** target name if called via Navigate_to_POI */
-		std::string m_target_name;
-
-		/** orientation the robot should have at the target point */
-		double m_target_orientation;
-
-		/** allowed distance to target */
-		float m_desired_distance;
-
-		/** check if the final turn should be skipped */
-		bool m_skip_final_turn;
-
-		/**
-		 *  check if navigation should perform fast planning. In this mode a path is only planned within
-		 *  a bounding box containing the robot pose and the target point
-		 */
-		bool m_fast_path_planning;
-
-		/** current pose of the robot */
-		geometry_msgs::Pose m_robot_pose;
-		
-		/** last pose of the robot */
-		geometry_msgs::Pose m_robot_last_pose;
-
-		/** time stamp of the last incoming laser scan */
-		ros::Time m_last_laser_time;
-		/** time stamp of the last incoming pose */
-		ros::Time m_last_pose_time;
-
-		/** Distance factor of a frontier cell considered save for exploration */
-		float m_FrontierSafenessFactor;
-
-		double m_SafePathWeight;
-
-		///map parameters
-		double m_resolution;
-		double m_width;
-		double m_height;
-		geometry_msgs::Pose m_origin;
-
-		/// @brief Configuration parameters
-
-		/** Allowed distances of obstacles to robot. Robot must move within these bounds */
-		std::pair<float,float> m_AllowedObstacleDistance;
-
-		/** Safe distances of obstacles to robot. If possible, robot should move within these bounds */
-		std::pair<float,float> m_SafeObstacleDistance;
-
-		/** threshold to sample down waypoints */
-		float m_waypoint_sampling_threshold;
-
-		float m_max_move_distance;
-		float m_max_move_sick;
-		float m_max_move_down;
-		float m_max_move_depth;
-
-		/** if distance to nearest obstacle is below collision distance trigger collision avoidance */
-		float m_collision_distance;
-
-		/** if distance to nearest obstacle is below collision distance don't drive backwards */
-		float m_backward_collision_distance;
-		/** do not drive back in collision avoidance when this near target */
-		float m_collision_distance_near_target;
-
-		/** if true, obstacles in path will be detected and path will be replanned */
-		bool m_check_path;
-
-		/** waypoints will only be checked for obstacles if they are closer than check_path_max_distance to robot */
-		float m_check_path_max_distance;
-
-		bool m_avoided_collision;
-
-		float m_min_turn_angle;
-		float m_max_turn_speed;
-		float m_min_turn_speed;
-		float m_max_move_speed;
-		float m_max_drive_angle;
-		float m_waypoint_radius_factor;
-
-		float m_distance_to_target;
-		float m_act_speed;
-		float m_angular_avoidance;
-
-		float m_map_speed_factor;
-		float m_waypoint_speed_factor;
-		float m_obstacle_speed_factor;
-		float m_target_distance_speed_factor;
-
-		float m_min_y;
-		float m_min_x;
-
-		float m_callback_error_duration;
-
-		bool  m_last_check_path_res;
-		bool  m_use_ptu;
-		bool  m_new_target;
-
-		bool  m_path_reaches_target;
-		int   m_last_calculations_failed;
-		int   m_unknown_threshold;
-
-		/** last map data */
-		std::vector<int8_t> * m_last_map_data;
-
-		//ros specific members
-		tf::TransformListener m_transform_listener;
-
-		//subscribers
-		ros::Subscriber m_map_sub;
-		ros::Subscriber m_pose_sub;
-		ros::Subscriber m_laser_data_sub;
-		ros::Subscriber m_down_laser_data_sub;
-		ros::Subscriber m_laser_back_data_sub;
-		ros::Subscriber m_start_navigation_sub;
-		ros::Subscriber m_stop_navigation_sub;
-		ros::Subscriber m_navigate_to_poi_sub;
-		ros::Subscriber m_unknown_threshold_sub;
-		ros::Subscriber m_refresh_param_sub;
-		ros::Subscriber m_max_move_depth_sub;
-		ros::Subscriber m_move_base_simple_goal_sub;
-
-		//publishers
-		ros::Publisher  m_cmd_vel_pub;
-		ros::Publisher  m_target_reached_string_pub;
-		//ros::Publisher  m_target_reached_empty_pub;
-		ros::Publisher  m_target_unreachable_pub;
-		ros::Publisher  m_path_pub;
-		ros::Publisher  m_ptu_center_world_point_pub;
-		ros::Publisher  m_set_pan_tilt_pub;
-		ros::Publisher  m_debug_pub;
-
-		//service clients
-		ros::ServiceClient m_get_POIs_client;
-};
-#endif
diff --git a/homer_navigation/launch/homer_navigation.launch b/homer_navigation/launch/homer_navigation.launch
deleted file mode 100644
index db217818..00000000
--- a/homer_navigation/launch/homer_navigation.launch
+++ /dev/null
@@ -1,4 +0,0 @@
-<launch>
- <rosparam command="load" file="$(find homer_navigation)/config/homer_navigation.yaml"/>
- <node ns="/homer_navigation" name="homer_navigation" pkg="homer_navigation" type="homer_navigation" output="screen"/>
-</launch>
diff --git a/homer_navigation/launch/homer_navigation_pioneer.launch b/homer_navigation/launch/homer_navigation_pioneer.launch
deleted file mode 100644
index df3c3ac5..00000000
--- a/homer_navigation/launch/homer_navigation_pioneer.launch
+++ /dev/null
@@ -1,4 +0,0 @@
-<launch>
- <rosparam command="load" file="$(find homer_navigation)/config/homer_navigation_pioneer.yaml"/>
- <node ns="/homer_navigation" name="homer_navigation" pkg="homer_navigation" type="homer_navigation" output="screen"/>
-</launch>
diff --git a/homer_navigation/package.xml b/homer_navigation/package.xml
deleted file mode 100644
index 5752245c..00000000
--- a/homer_navigation/package.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0"?>
-<package>
-  <name>homer_navigation</name>
-  <version>0.1.1</version>
-  <description>The homer_navigation package</description>
-
-  <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer>
-  <author email="mknauf@uni-koblenz.de">Malte Knauf</author>
-  <author email="fpolster@uni-koblenz.de">Florian Polster</author>
-  <license>GPLv3</license>
-
-  <buildtool_depend>catkin</buildtool_depend>
-  
-  <build_depend>roscpp</build_depend>
-  <build_depend>roslib</build_depend>
-  <build_depend>homer_robbie_architecture</build_depend>
-  <build_depend>homer_nav_libs</build_depend>
-  <build_depend>nav_msgs</build_depend>
-  <build_depend>sensor_msgs</build_depend>
-  <build_depend>homer_mapnav_msgs</build_depend>
-  <build_depend>std_msgs</build_depend>
-  <build_depend>tf</build_depend>
-  <build_depend>cmake_modules</build_depend>
-  <build_depend>eigen</build_depend>
-  
-  <run_depend>roscpp</run_depend>
-  <run_depend>roslib</run_depend>
-  <run_depend>homer_robbie_architecture</run_depend>
-  <run_depend>homer_nav_libs</run_depend>
-  <run_depend>nav_msgs</run_depend>
-  <run_depend>sensor_msgs</run_depend>
-  <run_depend>homer_mapnav_msgs</run_depend>
-  <run_depend>std_msgs</run_depend>
-  <run_depend>tf</run_depend>
-
-</package>
diff --git a/homer_navigation/readme.pdf b/homer_navigation/readme.pdf
deleted file mode 100644
index 133628daa3fde419c7bc018c0ea9183625cce4c6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 120202
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
S85&xe8=7#bs=E5SaRC6iOKKzl

diff --git a/homer_navigation/src/homer_navigation_node.cpp b/homer_navigation/src/homer_navigation_node.cpp
deleted file mode 100644
index 9bad6a76..00000000
--- a/homer_navigation/src/homer_navigation_node.cpp
+++ /dev/null
@@ -1,1084 +0,0 @@
-#include "homer_navigation/homer_navigation_node.h"
-
-HomerNavigationNode::HomerNavigationNode()
-{
-	ros::NodeHandle nh;
-
-	//subscribers
-	m_map_sub 					= nh.subscribe<nav_msgs::OccupancyGrid>("/map", 1, &HomerNavigationNode::mapCallback, this);
-	m_pose_sub					= nh.subscribe<geometry_msgs::PoseStamped>("/pose", 1, &HomerNavigationNode::poseCallback, this);
-	m_laser_data_sub			= nh.subscribe<sensor_msgs::LaserScan>("/scan", 1, &HomerNavigationNode::laserDataCallback, this);
-	m_down_laser_data_sub 		= nh.subscribe<sensor_msgs::LaserScan>("/front_scan", 1, &HomerNavigationNode::downlaserDataCallback, this);
-	m_start_navigation_sub 		= nh.subscribe<homer_mapnav_msgs::StartNavigation>("/homer_navigation/start_navigation", 1, &HomerNavigationNode::startNavigationCallback, this);
-	m_move_base_simple_goal_sub = nh.subscribe<geometry_msgs::PoseStamped>("/move_base_simple/goal", 1, &HomerNavigationNode::moveBaseSimpleGoalCallback, this); // for RVIZ usage
-	m_stop_navigation_sub 		= nh.subscribe<std_msgs::Empty>("/homer_navigation/stop_navigation", 1, &HomerNavigationNode::stopNavigationCallback, this);
-	m_navigate_to_poi_sub		= nh.subscribe<homer_mapnav_msgs::NavigateToPOI>("/homer_navigation/navigate_to_POI", 1, &HomerNavigationNode::navigateToPOICallback, this);
-	m_unknown_threshold_sub 	= nh.subscribe<std_msgs::Int8>("/homer_navigation/unknown_threshold", 1, &HomerNavigationNode::unknownThresholdCallback, this);	
-	m_refresh_param_sub 		= nh.subscribe<std_msgs::Empty>("/homer_navigation/refresh_params", 1, &HomerNavigationNode::refreshParamsCallback, this);
-	m_max_move_depth_sub 		= nh.subscribe<std_msgs::Float32>("/homer_navigation/max_depth_move_distance", 1, &HomerNavigationNode::maxDepthMoveDistanceCallback, this);
-
-	m_cmd_vel_pub				= nh.advertise<geometry_msgs::Twist>("/robot_platform/cmd_vel", 1);
-	m_target_reached_string_pub = nh.advertise<std_msgs::String>("/homer_navigation/target_reached", 1);
-	//m_target_reached_empty_pub 	= nh.advertise<std_msgs::Empty>("/homer_navigation/target_reached", 1);
-	m_target_unreachable_pub 	= nh.advertise<homer_mapnav_msgs::TargetUnreachable>("/homer_navigation/target_unreachable", 1);
-	m_path_pub 					= nh.advertise<nav_msgs::Path>("/homer_navigation/path", 1);
-	m_ptu_center_world_point_pub= nh.advertise<homer_ptu_msgs::CenterWorldPoint>( "/ptu/center_world_point", 1);
-	m_set_pan_tilt_pub			= nh.advertise<homer_ptu_msgs::SetPanTilt>("/ptu/set_pan_tilt", 1);
-	m_debug_pub     		    = nh.advertise<std_msgs::String>("/homer_navigation/debug",1);
-
-	m_get_POIs_client 			= nh.serviceClient<homer_mapnav_msgs::GetPointsOfInterest>("/map_manager/get_pois");
-
-	m_MainMachine.setName( "HomerNavigation Main" );
-	ADD_MACHINE_STATE( m_MainMachine, IDLE );
-	ADD_MACHINE_STATE( m_MainMachine, AWAITING_PATHPLANNING_MAP );
-	ADD_MACHINE_STATE( m_MainMachine, FOLLOWING_PATH );
-	ADD_MACHINE_STATE( m_MainMachine, AVOIDING_COLLISION );
-	ADD_MACHINE_STATE( m_MainMachine, FINAL_TURN );
-
-	init();
-}
-
-void HomerNavigationNode::loadParameters()
-{
-	//Explorer constructor 
-	ros::param::param("/homer_mapping/resolution", 						m_resolution, (double) 0.05);
-	ros::param::param("/homer_navigation/allowed_obstacle_distance/min", 	m_AllowedObstacleDistance.first, (float) 0.3);
-	ros::param::param("/homer_navigation/allowed_obstacle_distance/max", 	m_AllowedObstacleDistance.second, (float) 5.0);
-	ros::param::param("/homer_navigation/safe_obstacle_distance/min", 	m_SafeObstacleDistance.first, (float) 0.7);
-	ros::param::param("/homer_navigation/safe_obstacle_distance/max", 	m_SafeObstacleDistance.second, (float) 1.5);
-	ros::param::param("/homer_navigation/frontier_safeness_factor", 		m_FrontierSafenessFactor, (float) 1.4);
-	ros::param::param("/homer_navigation/safe_path_weight", 				m_SafePathWeight, (double) 1.2);
-	ros::param::param("/homer_navigation/waypoint_sampling_threshold", 	m_waypoint_sampling_threshold, (float) 1.5);    
-	m_AllowedObstacleDistance.first 	/= m_resolution;
-	m_AllowedObstacleDistance.second	/= m_resolution;
-	m_SafeObstacleDistance.first 		/= m_resolution;
-	m_SafeObstacleDistance.second 		/= m_resolution;
-
-	//check path 
-	ros::param::param("/homer_navigation/check_path", 					m_check_path, (bool) true);
-	ros::param::param("/homer_navigation/check_path_max_distance", 		m_check_path_max_distance, (float) 2.0);
-
-	//collision 
-	ros::param::param("/homer_navigation/collision_distance", 			m_collision_distance, (float) 0.3);
-	ros::param::param("/homer_navigation/collision_distance_near_target", m_collision_distance_near_target, (float) 0.2);
-	ros::param::param("/homer_navigation/backward_collision_distance", 	m_backward_collision_distance, (float) 0.5);
-
-	//cmd_vel config values
-	ros::param::param("/homer_navigation/min_turn_angle", 				m_min_turn_angle, (float) 0.15);
-	ros::param::param("/homer_navigation/max_turn_speed", 				m_max_turn_speed, (float) 0.6);
-	ros::param::param("/homer_navigation/min_turn_speed",					m_min_turn_speed, (float) 0.3);
-	ros::param::param("/homer_navigation/max_move_speed", 				m_max_move_speed, (float) 0.4);
-	ros::param::param("/homer_navigation/max_drive_angle",				m_max_drive_angle, (float) 0.6);
-
-	//caution factors
-	ros::param::param("/homer_navigation/map_speed_factor", 				m_map_speed_factor, (float) 1.0);	
-	ros::param::param("/homer_navigation/waypoint_speed_factor", 			m_waypoint_speed_factor, (float) 1.0);	
-	ros::param::param("/homer_navigation/obstacle_speed_factor", 			m_obstacle_speed_factor, (float) 1.0);	
-	ros::param::param("/homer_navigation/target_distance_speed_factor", 	m_target_distance_speed_factor, (float) 0.4);	
-
-	//robot dimensions
-	ros::param::param("/homer_navigation/min_x", 							m_min_x, (float) 0.3);
-	ros::param::param("/homer_navigation/min_y",							m_min_y, (float) 0.27);
-
-	//error durations
-	ros::param::param("/homer_navigation/callback_error_duration", 		m_callback_error_duration, (float) 0.3);
-
-	ros::param::param("/homer_navigation/use_ptu",						m_use_ptu, (bool) false);
-
-	ros::param::param("/homer_navigation/unknown_threshold", 				m_unknown_threshold, (int) 50);
-	ros::param::param("/homer_navigation/waypoint_radius_factor",			m_waypoint_radius_factor, (float) 0.25);
-}
-
-void HomerNavigationNode::init()
-{
-	m_max_move_sick				= 40.0;
-	m_max_move_down				= 40.0;
-	m_max_move_depth			= 40.0;
-	m_robot_pose.position.x 	= 0.0;
-	m_robot_pose.position.y 	= 0.0;
-	m_robot_pose.position.z 	= 0.0;   
-	m_robot_pose.orientation 	= tf::createQuaternionMsgFromYaw(0.0);
-	m_robot_last_pose = m_robot_pose;
-	m_avoided_collision 		= false; 
-	m_act_speed 				= 0;
-	m_angular_avoidance 		= 0;
-	m_last_calculations_failed 	= 0;
-	m_last_check_path_res		= false;
-	m_new_target 				= true;
-
-	loadParameters();
-
-	m_explorer = new Explorer ( m_AllowedObstacleDistance.first, m_AllowedObstacleDistance.second,
-			m_SafeObstacleDistance.first, m_SafeObstacleDistance.second,
-			m_SafePathWeight, m_FrontierSafenessFactor, m_unknown_threshold );
-	m_last_map_data = new std::vector<int8_t>(0);
-
-	m_MainMachine.setState ( IDLE );
-}
-
-HomerNavigationNode::~HomerNavigationNode()
-{
-	if(m_explorer)
-	{
-		delete m_explorer;
-	}
-	if(m_last_map_data)
-	{
-		delete m_last_map_data;
-	}
-}
-
-void HomerNavigationNode::stopRobot()
-{
-	m_act_speed = 0;
-	geometry_msgs::Twist cmd_vel_msg;
-	cmd_vel_msg.linear.x  = 0;
-	cmd_vel_msg.linear.y  = 0;
-	cmd_vel_msg.linear.z  = 0;
-	cmd_vel_msg.angular.x = 0;
-	cmd_vel_msg.angular.y = 0;
-	cmd_vel_msg.angular.z = 0;
-	m_cmd_vel_pub.publish(cmd_vel_msg);
-	ros::Duration(0.1).sleep();
-	m_cmd_vel_pub.publish(cmd_vel_msg);
-	ros::Duration(0.1).sleep();
-	m_cmd_vel_pub.publish(cmd_vel_msg);
-}
-
-void HomerNavigationNode::idleProcess()
-{
-	if ( m_MainMachine.state() == FOLLOWING_PATH )
-	{
-		if ( (ros::Time::now() - m_last_laser_time) > ros::Duration( m_callback_error_duration ) )
-		{
-			ROS_ERROR_STREAM("Laser data timeout!\n");
-			stopRobot();
-		}
-		if ( (ros::Time::now() - m_last_pose_time) > ros::Duration( m_callback_error_duration )  )
-		{
-			ROS_ERROR_STREAM("Pose timeout!\n");
-			stopRobot();
-		}
-	}
-}
-
-void HomerNavigationNode::calculatePath()
-{
-	if ( m_distance_to_target < m_desired_distance && !m_new_target)
-	{
-		m_path_reaches_target = true;
-		return;
-	}
-	m_explorer->setOccupancyMap(m_width, m_width, m_origin, &(*m_last_map_data)[0]);
-	m_explorer->setStart( map_tools::toMapCoords( m_robot_pose.position,  m_origin, m_resolution) );
-
-	bool success;
-	m_pixel_path = m_explorer->getPath( success );
-	if ( !success)
-	{
-		ROS_WARN_STREAM("No path found for navigation" );
-		m_last_calculations_failed++;
-		ROS_INFO_STREAM("last_calculation_failed: "<<m_last_calculations_failed);
-		if(m_last_calculations_failed > 8)
-		{
-			sendTargetUnreachableMsg(homer_mapnav_msgs::TargetUnreachable::NO_PATH_FOUND);
-		}
-	}
-	else
-	{
-		m_last_calculations_failed = 0;
-		std::vector<Eigen::Vector2i> waypoint_pixels = m_explorer->sampleWaypointsFromPath ( m_pixel_path, m_waypoint_sampling_threshold );
-		m_waypoints.clear();
-		ROS_INFO_STREAM("homer_navigation::calculatePath - Path Size: " << waypoint_pixels.size());
-		if(waypoint_pixels.size() > 0)
-		{
-			for(std::vector<Eigen::Vector2i>::iterator it = waypoint_pixels.begin(); it != waypoint_pixels.end(); ++it)
-			{
-				geometry_msgs::PoseStamped poseStamped;
-				poseStamped.header.frame_id = "/map";
-				poseStamped.pose.position = map_tools::fromMapCoords(*it, m_origin, m_resolution);
-				poseStamped.pose.orientation.x = 0.0;
-				poseStamped.pose.orientation.y = 0.0;
-				poseStamped.pose.orientation.z = 0.0;
-				poseStamped.pose.orientation.w = 1.0;
-				m_waypoints.push_back(poseStamped);
-			}
-			sendPathData();
-		}
-		else
-		{
-			sendTargetUnreachableMsg(homer_mapnav_msgs::TargetUnreachable::NO_PATH_FOUND);		
-		}
-
-		m_last_laser_time = ros::Time::now();
-		m_last_pose_time  = ros::Time::now();
-	}
-}
-
-void HomerNavigationNode::startNavigation()
-{
-	if ( m_distance_to_target < m_desired_distance && !m_new_target)
-	{
-		ROS_INFO_STREAM( "Will not (re-)plan path: Target position already reached." );
-		m_path_reaches_target = true;
-		targetPositionReached();
-		return;
-	}
-	ROS_INFO_STREAM( "Distance to target still too large (" << m_distance_to_target << "m; requested: " << m_desired_distance << "m)" );
-
-	if(m_fast_path_planning)
-	{
-		maskMap();
-	}
-
-	m_explorer->setOccupancyMap(m_width, m_width, m_origin, &(*m_last_map_data)[0]);
-	m_explorer->setStart(map_tools::toMapCoords(m_robot_pose.position, m_origin, m_resolution));
-	Eigen::Vector2i new_target_approx = m_explorer->getNearestAccessibleTarget(map_tools::toMapCoords(m_target_point, m_origin, m_resolution));
-
-	geometry_msgs::Point new_target_approx_world = map_tools::fromMapCoords(new_target_approx, m_origin, m_resolution);
-	ROS_INFO_STREAM("start Navigation: Approx target: " << new_target_approx_world);
-
-	m_path_reaches_target = ( map_tools::distance(new_target_approx_world, m_target_point ) < m_desired_distance );
-
-	bool new_approx_is_better = ( map_tools::distance( m_robot_pose.position, m_target_point ) - map_tools::distance( new_target_approx_world, m_target_point ) ) > 2 * m_desired_distance;
-	if ( !new_approx_is_better && !m_path_reaches_target )
-	{
-		ROS_WARN_STREAM( "No better way to target found, turning and then reporting as unreachable."
-				<<     std::endl << "Distance to target: " << m_distance_to_target << "m; requested: " << m_desired_distance << "m" );
-		m_MainMachine.setState( FINAL_TURN );
-	}
-	else
-	{
-		m_explorer->setTarget ( new_target_approx);
-		m_MainMachine.setState ( FOLLOWING_PATH );
-		calculatePath();
-	}
-}
-
-void HomerNavigationNode::sendPathData()
-{
-	nav_msgs::Path msg;
-	msg.header.frame_id = "/map";
-	msg.header.stamp = ros::Time::now();
-	if(m_waypoints.size() > 0)
-	{
-		msg.poses = m_waypoints;
-		geometry_msgs::PoseStamped pose_stamped;
-		pose_stamped.pose = m_robot_pose;
-		pose_stamped.header.frame_id = "/map";
-		pose_stamped.header.stamp = ros::Time::now();
-		msg.poses.insert(msg.poses.begin(), pose_stamped);
-	}
-	m_path_pub.publish(msg);
-}
-
-void HomerNavigationNode::sendTargetReachedMsg() 
-{
-	stopRobot();
-	m_MainMachine.setState( IDLE );
-	std_msgs::String reached_string_msg;
-	reached_string_msg.data = m_target_name;
-	m_target_reached_string_pub.publish(reached_string_msg);
-	m_waypoints.clear();
-	nav_msgs::Path empty_path_msg;
-	empty_path_msg.poses = m_waypoints;
-	m_path_pub.publish(empty_path_msg);
-	ROS_INFO_STREAM("=== Reached Target " << m_target_name << " ===");
-}
-
-void HomerNavigationNode::sendTargetUnreachableMsg( int8_t reason ) 
-{
-	stopRobot();
-	m_MainMachine.setState( IDLE );
-	homer_mapnav_msgs::TargetUnreachable unreachable_msg;
-	unreachable_msg.reason = reason;
-	m_target_unreachable_pub.publish(unreachable_msg);
-	m_waypoints.clear();
-	nav_msgs::Path empty_path_msg;
-	empty_path_msg.poses = m_waypoints;
-	m_path_pub.publish(empty_path_msg);
-	ROS_INFO_STREAM("=== TargetUnreachableMsg ===");
-}
-
-void HomerNavigationNode::targetPositionReached()
-{
-	ROS_INFO_STREAM( "Target position reached. Distance to target: " << m_distance_to_target << "m. Desired distance:" << m_desired_distance << "m" );
-	stopRobot();
-	m_waypoints.clear();
-	sendPathData();
-	m_MainMachine.setState( FINAL_TURN );
-	ROS_INFO_STREAM("Turning to look-at point");
-}
-
-bool HomerNavigationNode::checkPath()
-{
-	if(m_pixel_path.size() != 0)
-	{
-		for ( unsigned i = 0; i < m_pixel_path.size()-1; i++ )
-		{
-			geometry_msgs::Point p = map_tools::fromMapCoords(m_pixel_path.at(i), m_origin, m_resolution);
-			if ( map_tools::distance( m_robot_pose.position, p) > m_check_path_max_distance )
-			{
-				return true;
-			}
-			for(int a = 0; a < 5; a++)
-			{
-				if (map_tools::findValue( m_last_map_data, m_width, m_height, 
-							m_pixel_path[i].x() + (m_pixel_path[i+1].x() - m_pixel_path[i].x()) * a/4, 
-							m_pixel_path[i].y() + (m_pixel_path[i+1].y() - m_pixel_path[i].y()) * a/4,
-							90, 2 ))
-				{
-					ROS_WARN_STREAM("Obstacle detected in current path recalculating" );
-					return false;
-				}
-			}
-		}
-	}
-}
-
-void HomerNavigationNode::handleCollision ()
-{
-	if ( m_MainMachine.state() == FOLLOWING_PATH )
-	{
-		stopRobot();
-		m_MainMachine.setState( AVOIDING_COLLISION );
-		ROS_WARN_STREAM( "Collision detected while following path!" );
-	}
-}
-
-void HomerNavigationNode::performNextMove()
-{
-	if(m_MainMachine.state() == FOLLOWING_PATH )
-	{
-		if ( m_distance_to_target < m_desired_distance && !m_new_target)
-		{
-			ROS_INFO_STREAM( "Desired distance to target was reached." );
-			targetPositionReached();
-			return;
-		}
-		//if we have accidentaly skipped waypoints, recalculate path
-		float minDistance = FLT_MAX;
-		float distance;
-		unsigned nearestWaypoint=0;
-		for ( unsigned i=0; i<m_waypoints.size(); i++ )
-		{
-			distance = map_tools::distance( m_robot_pose.position, m_waypoints[i].pose.position );
-			if ( distance < minDistance ) {
-				nearestWaypoint = i;
-				minDistance = distance;
-			}
-		}
-		if ( nearestWaypoint != 0 )
-		{
-			//if the target is nearer than the waypoint don't recalculate
-			if(m_waypoints.size() != 2)
-			{
-				ROS_WARN_STREAM("Waypoints skipped. Recalculating path!");
-				calculatePath();
-				if ( m_MainMachine.state() != FOLLOWING_PATH ) 
-				{ 
-					return; 
-				}
-			}
-			else
-			{
-				m_waypoints.erase(m_waypoints.begin());
-			}
-		}
-
-		Eigen::Vector2i waypointPixel = map_tools::toMapCoords(m_waypoints[0].pose.position, m_origin, m_resolution);
-		float obstacleDistanceMap = m_explorer->getObstacleTransform()->getValue( waypointPixel.x(), waypointPixel.y() ) * m_resolution;
-		float waypointRadius = m_waypoint_radius_factor * obstacleDistanceMap;
-
-		if ( ( waypointRadius < m_resolution ) || ( m_waypoints.size() == 1 ) )
-		{
-			waypointRadius = m_resolution;
-		}
-
-		if(m_waypoints.size() != 0)
-		{
-			//calculate distance between last_pose->current_pose and waypoint
-			Eigen::Vector2f line; //direction of the line
-			line[0] = m_robot_pose.position.x - m_robot_last_pose.position.x;
-			line[1] = m_robot_pose.position.y - m_robot_last_pose.position.y;
-			Eigen::Vector2f point_to_start; //vector from the point to the start of the line
-			point_to_start[0] = m_robot_last_pose.position.x - m_waypoints[0].pose.position.x;
-			point_to_start[1] = m_robot_last_pose.position.y - m_waypoints[0].pose.position.y;
-			float dot = point_to_start[0] * line[0] + point_to_start[1] * line[1]; //dot product of point_to_start * line
-			Eigen::Vector2f distance; //shortest distance vector from point to line
-			distance[0] = point_to_start[0] - dot * line[0]; 
-			distance[1] = point_to_start[1] - dot * line[1];
-			float distance_to_waypoint = sqrt((double)(distance[0] * distance[0] + distance[1] * distance[1]));
-
-			//check if current waypoint has been reached
-			if((distance_to_waypoint < waypointRadius && m_waypoints.size() > 1) || (m_distance_to_target < waypointRadius))
-			{
-				m_waypoints.erase ( m_waypoints.begin() );
-			}
-
-		}
-
-		sendPathData();
-		//last wayoint reached
-		if ( m_waypoints.size() == 0 )
-		{
-			ROS_INFO_STREAM("Last waypoint reached");
-			currentPathFinished();
-			return;
-		}
-
-		if(m_use_ptu)
-		{
-			ROS_INFO_STREAM("Moving PTU to center next Waypoint");
-			homer_ptu_msgs::CenterWorldPoint ptu_msg;
-			ptu_msg.point.x = m_waypoints[0].pose.position.x;
-			ptu_msg.point.y = m_waypoints[0].pose.position.y;
-			ptu_msg.point.z = 0;
-			ptu_msg.permanent = true;
-			m_ptu_center_world_point_pub.publish(ptu_msg);
-		}
-
-		float distanceToWaypoint = map_tools::distance( m_robot_pose.position, m_waypoints[0].pose.position );
-		float angleToWaypoint = angleToPointDeg ( m_waypoints[0].pose.position );
-		if (angleToWaypoint < -180)
-		{
-			angleToWaypoint += 360;
-		}
-		float angle = deg2Rad( angleToWaypoint );
-
-		//linear speed calculation
-		if(m_avoided_collision)
-		{
-			if( std::abs(angleToWaypoint) < 10)
-			{
-				m_avoided_collision = false;
-			}
-		}
-		else if (abs(angle) > m_max_drive_angle)
-		{
-			m_act_speed = 0.0;
-		}
-		else
-		{
-			float obstacleMapDistance = 1;
-			for(int wpi = -1; wpi < std::min((int)m_waypoints.size(),(int) 2); wpi++)
-			{
-				Eigen::Vector2i robotPixel;
-				if(wpi == -1)
-				{
-					robotPixel = map_tools::toMapCoords(m_robot_pose.position, m_origin, m_resolution);
-				}
-				else
-				{
-					robotPixel = map_tools::toMapCoords(m_waypoints[wpi].pose.position, m_origin, m_resolution);
-				}
-				obstacleMapDistance = std::min((float)obstacleMapDistance,(float)( m_explorer->getObstacleTransform()->getValue( robotPixel.x(), robotPixel.y() ) * m_resolution));
-			}
-
-			float max_move_distance_speed = m_max_move_speed * m_max_move_distance * m_obstacle_speed_factor; 
-			float max_map_distance_speed = m_max_move_speed * obstacleMapDistance * m_map_speed_factor;	
-			m_act_speed = std::min(std::max((float)0.1,m_distance_to_target * m_target_distance_speed_factor) ,std::min(std::min(m_max_move_speed, max_move_distance_speed), std::min(max_map_distance_speed, distanceToWaypoint *  m_waypoint_speed_factor)));
-			std_msgs::String tmp; 
-			std::stringstream str; 
-			str << "m_obstacle_speed " << max_move_distance_speed <<" max_map_distance_speed "<<max_map_distance_speed;
-			tmp.data = str.str();
-			m_debug_pub.publish(tmp);
-		}
-
-		//angular speed calculation
-		if (angle < 0 )
-		{
-			angle = std::max(angle * (float) 0.8, -m_max_turn_speed);
-			m_act_speed = m_act_speed + angle / 2.0;
-			if(m_act_speed < 0 )
-			{
-				m_act_speed = 0;
-			}
-		}
-		else
-		{
-			angle = std::min(angle * (float) 0.8, m_max_turn_speed);
-			m_act_speed = m_act_speed - angle / 2.0;
-			if(m_act_speed < 0 ) 
-			{
-				m_act_speed = 0;
-			}
-		}
-		geometry_msgs::Twist cmd_vel_msg;
-		cmd_vel_msg.linear.x = m_act_speed;			
-		cmd_vel_msg.angular.z = angle;
-		m_cmd_vel_pub.publish(cmd_vel_msg);
-
-		ROS_DEBUG_STREAM("Driving & turning" << std::endl << "linear: " << m_act_speed << " angular: " << angle << std::endl
-				<< "distanceToWaypoint:" << distanceToWaypoint << "angleToWaypoint: " << angleToWaypoint << std::endl );
-	}
-	else if(m_MainMachine.state()== AVOIDING_COLLISION)
-	{
-		if( m_distance_to_target < m_desired_distance && !m_new_target)
-		{
-			ROS_INFO_STREAM("Collision detected near target. Switch to final turn.");
-			targetPositionReached();
-		} 
-		else if ( m_max_move_distance <= m_collision_distance && m_waypoints.size() > 1 || m_max_move_distance <= m_collision_distance_near_target )
-		{
-			ROS_WARN_STREAM( "Maximum driving distance too short (" << m_max_move_distance << "m)! Moving back." );
-			geometry_msgs::Twist cmd_vel_msg;
-			if(!HomerNavigationNode::backwardObstacle())
-			{
-				cmd_vel_msg.linear.x = -0.2;
-			}
-			else
-			{
-				if(m_angular_avoidance == 0)
-				{
-					float angleToWaypoint = angleToPointDeg ( m_waypoints[0].pose.position );
-					if(angleToWaypoint < -180)
-					{
-						angleToWaypoint += 360;
-					}
-					if (angleToWaypoint < 0 )
-					{
-						m_angular_avoidance = -0.4; 
-					}
-					else
-					{
-						m_angular_avoidance = 0.4;
-					}
-				}
-				cmd_vel_msg.angular.z = m_angular_avoidance;
-			}
-			m_cmd_vel_pub.publish(cmd_vel_msg);	
-		} 
-		else
-		{
-			m_angular_avoidance = 0;
-			m_avoided_collision = true;
-			ROS_WARN_STREAM( "Collision avoided. Updating path." );
-			currentPathFinished();
-		}
-	}
-	else if(m_MainMachine.state()== FINAL_TURN)
-	{
-		if(m_use_ptu)
-		{
-			//reset PTU
-			homer_ptu_msgs::SetPanTilt msg;
-			msg.absolute 	= true;
-			msg.panAngle 	= 0;
-			msg.tiltAngle 	= 0;
-			m_set_pan_tilt_pub.publish(msg);
-		}
-
-		if ( m_skip_final_turn ) 
-		{
-			ROS_INFO_STREAM("Final turn skipped. Target reached.");
-			if(m_path_reaches_target)
-			{
-				sendTargetReachedMsg();
-			}
-			else
-			{
-				sendTargetUnreachableMsg(homer_mapnav_msgs::TargetUnreachable::NO_PATH_FOUND);
-			}
-			return;
-		}
-
-		float turnAngle = minTurnAngle( tf::getYaw(m_robot_pose.orientation), m_target_orientation );
-		ROS_DEBUG_STREAM("homer_navigation::PerformNextMove:: Final Turn. Robot orientation: " << rad2Deg(tf::getYaw(m_robot_pose.orientation)) << ". Target orientation: " << rad2Deg(m_target_orientation) << "homer_navigation::PerformNextMove:: turnAngle: " << rad2Deg(turnAngle));
-
-		if (std::fabs(turnAngle) < m_min_turn_angle) 
-		{
-			ROS_INFO_STREAM(":::::::NEAREST WALKABLE TARGET REACHED BECAUSE lower " << m_min_turn_angle);
-			ROS_INFO_STREAM("target angle = "<< m_target_orientation );
-			ROS_INFO_STREAM("is angle = "<< tf::getYaw(m_robot_pose.orientation));
-			ROS_INFO_STREAM("m_distance_to_target = " << m_distance_to_target);
-			ROS_INFO_STREAM("m_desired_distance = " << m_desired_distance);
-			if(m_path_reaches_target)
-			{
-				sendTargetReachedMsg();
-			}
-			else
-			{
-				sendTargetUnreachableMsg(homer_mapnav_msgs::TargetUnreachable::NO_PATH_FOUND);
-			}
-			return;
-		}
-		else
-		{
-			if (turnAngle< 0 )
-			{
-				turnAngle= std::max(std::min(turnAngle, -m_min_turn_speed ),-m_max_turn_speed);
-			}
-			else
-			{
-				turnAngle = std::min(std::max(turnAngle, m_min_turn_speed ),m_max_turn_speed);
-			}
-			geometry_msgs::Twist cmd_vel_msg;
-			cmd_vel_msg.angular.z = turnAngle;
-			m_cmd_vel_pub.publish(cmd_vel_msg);				
-		}
-	}
-}
-
-void HomerNavigationNode::currentPathFinished()
-{
-	ROS_INFO_STREAM( "Current path was finished, initiating recalculation.");
-	m_waypoints.clear();
-	stopRobot();
-	m_MainMachine.setState( AWAITING_PATHPLANNING_MAP );
-}
-
-int HomerNavigationNode::angleToPointDeg ( geometry_msgs::Point target )
-{
-	double cx = m_robot_pose.position.x;
-	double cy = m_robot_pose.position.y;
-	int targetAngle = rad2Deg( atan2 ( target.y - cy, target.x - cx ) );
-	int currentAngle = rad2Deg( tf::getYaw(m_robot_pose.orientation) );
-
-	int angleDiff = targetAngle - currentAngle;
-	angleDiff = (angleDiff + 180) % 360 - 180;
-	return angleDiff;
-}
-
-bool HomerNavigationNode::drawPolygon ( std::vector< geometry_msgs::Point > vertices)
-{
-	if ( vertices.size() == 0 )
-	{
-		ROS_INFO_STREAM( "No vertices given!" );
-		return false;
-	}
-	//make temp. map
-	std::vector<int> data(m_width * m_height);
-	for ( int i = 0; i < data.size(); i++ )
-	{
-		data[i] = 0;
-	}
-
-	//draw the lines surrounding the polygon
-	for ( unsigned int i = 0; i < vertices.size(); i++ )
-	{
-		int i2 = ( i+1 ) % vertices.size();
-		drawLine ( data, vertices[i].x, vertices[i].y, vertices[i2].x, vertices[i2].y,  30);
-	}
-	//calculate a point in the middle of the polygon
-	float midX = 0;
-	float midY = 0;
-	for ( unsigned int i = 0; i < vertices.size(); i++ )
-	{
-		midX += vertices[i].x;
-		midY += vertices[i].y;
-	}
-	midX /= vertices.size();
-	midY /= vertices.size();
-	//fill polygon
-	return fillPolygon ( data, (int)midX, (int)midY, 30 );
-}
-
-void HomerNavigationNode::drawLine ( std::vector<int> &data, int startX, int startY, int endX, int endY, int value )
-{
-	//bresenham algorithm
-	int x, y, t, dist, xerr, yerr, dx, dy, incx, incy;
-	// compute distances
-	dx = endX - startX;
-	dy = endY - startY;
-
-	// compute increment
-	if ( dx < 0 )
-	{
-		incx = -1;
-		dx = -dx;
-	}
-	else
-	{
-		incx = dx ? 1 : 0;
-	}
-
-	if ( dy < 0 )
-	{
-		incy = -1;
-		dy = -dy;
-	}
-	else
-	{
-		incy = dy ? 1 : 0;
-	}
-
-	// which distance is greater?
-	dist = ( dx > dy ) ? dx : dy;
-	// initializing
-	x = startX;
-	y = startY;
-	xerr = dx;
-	yerr = dy;
-
-	// compute cells
-	for ( t = 0; t < dist; t++ )
-	{
-		int index = x + m_width* y;
-		if(index < 0 || index > data.size())
-		{
-			continue;
-		}
-		data[index] = value;
-
-		xerr += dx;
-		yerr += dy;
-		if ( xerr > dist )
-		{
-			xerr -= dist;
-			x += incx;
-		}
-		if ( yerr > dist )
-		{
-			yerr -= dist;
-			y += incy;
-		}
-	}
-}
-
-bool HomerNavigationNode::fillPolygon ( std::vector<int> &data, int x, int y, int value )
-{
-	int index = x + m_width * y;
-	bool tmp = false;
-
-	if ((int)m_last_map_data->at(index)> 90)
-	{
-		tmp = true;
-	}
-	if ( data[index] != value )
-	{
-		data[index] = value;
-		if (fillPolygon ( data, x + 1, y, value ))
-		{
-			tmp =  true;
-		}
-		if(fillPolygon ( data, x - 1, y, value ))
-		{
-			tmp = true;
-		}
-		if(fillPolygon ( data, x, y + 1, value ))
-		{
-			tmp = true;
-		}
-		if(fillPolygon ( data, x, y - 1, value ))
-		{
-			tmp = true;
-		}
-	}
-	return tmp;
-}
-
-bool HomerNavigationNode::backwardObstacle()
-{
-	std::vector<geometry_msgs::Point> vertices; 
-	geometry_msgs::Point base_link_point;
-	geometry_msgs::Point map_point;
-	Eigen::Vector2i map_coord;
-
-	std::vector<float> x;
-	std::vector<float> y;
-
-	x.push_back(- m_min_x - m_backward_collision_distance);
-	y.push_back(m_min_y);
-
-	x.push_back(- m_min_x - m_backward_collision_distance);
-	y.push_back(-m_min_y);
-
-	x.push_back(-0.1);
-	y.push_back(-m_min_y);
-
-	x.push_back(-0.1);
-	y.push_back(m_min_y);
-
-	for(int i = 0; i<x.size(); i++)
-	{
-		base_link_point.x = x[i];
-		base_link_point.y = y[i];
-		map_coord = map_tools::toMapCoords(map_tools::transformPoint(base_link_point, m_transform_listener ,"/base_link", "/map"), m_origin, m_resolution);
-		map_point.x = map_coord.x(); 
-		map_point.y = map_coord.y();
-		vertices.push_back(map_point);
-	}
-
-	return drawPolygon(vertices);
-}
-
-void HomerNavigationNode::maskMap()
-{
-	//generate bounding box
-	ROS_INFO_STREAM("Calculating Bounding box for fast planning");
-	Eigen::Vector2i pose_pixel =  map_tools::toMapCoords( m_robot_pose.position,  m_origin, m_resolution);
-	Eigen::Vector2i target_pixel =  map_tools::toMapCoords( m_target_point,  m_origin, m_resolution);
-	Eigen::Vector2i safe_pixel_distance(m_AllowedObstacleDistance.first * 4,
-			m_AllowedObstacleDistance.first * 4);
-	Eigen::AlignedBox2i planning_box;
-	planning_box.extend(pose_pixel);
-	planning_box.extend(target_pixel);
-	ROS_INFO_STREAM("Bounding Box: (" << planning_box.min() << " " << planning_box.max());
-	Eigen::AlignedBox2i safe_planning_box(planning_box.min() - safe_pixel_distance, planning_box.max() + safe_pixel_distance);
-	ROS_INFO_STREAM("safe Bounding Box: (" << safe_planning_box.min() << " " << safe_planning_box.max());
-	ROS_INFO_STREAM("min in m: " <<map_tools::fromMapCoords(safe_planning_box.min(), m_origin, m_resolution));
-	ROS_INFO_STREAM("max in m: "<<map_tools::fromMapCoords(safe_planning_box.max(), m_origin, m_resolution));
-	for(size_t x = 0; x < m_width; x++)
-	{
-		for(size_t y = 0; y < m_width; y++)
-		{
-			if(!safe_planning_box.contains(Eigen::Vector2i(x, y)))
-			{
-				m_last_map_data->at(y * m_width + x) = -1;
-			}
-		}		
-	}	
-}
-
-//convenience math functions
-float HomerNavigationNode::minTurnAngle( float angle1, float angle2 )
-{
-	angle1 *= 180.0/M_PI;
-	angle2 *= 180.0/M_PI;
-
-	int diff= angle2 - angle1;
-	diff = (diff + 180) % 360 - 180;
-    if (diff < -180)
-    {
-        diff += 360;
-    }
-
-	float ret = static_cast<double>(diff) * M_PI/180.0;
-	return ret;
-}
-
-void HomerNavigationNode::refreshParamsCallback(const std_msgs::Empty::ConstPtr& msg)
-{
-	ROS_INFO_STREAM("Refreshing Parameters");
-	loadParameters();
-}
-
-void HomerNavigationNode::mapCallback(const nav_msgs::OccupancyGrid::ConstPtr& msg)
-{
-    if(msg->info.height != msg->info.width)
-	{
-		ROS_ERROR_STREAM("Incoming Map not quadratic. No map update!");
-		return;
-	}
-	if(m_last_map_data)
-	{
-		delete m_last_map_data;
-	}
-
-	m_last_map_data = new std::vector<int8_t>(msg->data);
-	m_origin = msg->info.origin;
-	m_width = msg->info.width;
-	m_height = msg->info.height;
-	m_resolution = msg->info.resolution;
-
-	switch ( m_MainMachine.state() )
-	{
-		case AWAITING_PATHPLANNING_MAP:
-			startNavigation();
-			break;
-		case FOLLOWING_PATH:
-			{
-				if ( m_check_path)
-				{
-					if( !checkPath())
-					{
-						if(!m_last_check_path_res)
-						{
-							calculatePath();
-						}
-						m_last_check_path_res = false;
-					}
-					else
-					{
-						m_last_check_path_res = true;
-					}
-				}
-				break;
-			}
-	}
-}
-
-void HomerNavigationNode::poseCallback(const geometry_msgs::PoseStamped::ConstPtr& msg)
-{
-	m_robot_last_pose = m_robot_pose;
-	m_robot_pose = msg->pose;
-	m_last_pose_time = ros::Time::now();
-	m_distance_to_target = map_tools::distance( m_robot_pose.position, m_target_point );
-	m_new_target = false;
-	performNextMove();
-}
-
-void HomerNavigationNode::calcMaxMoveDist()
-{
-	m_max_move_distance = std::min (m_max_move_sick, std::min(m_max_move_down, m_max_move_depth));
-	if(m_max_move_distance <= m_collision_distance && std::fabs(m_act_speed) > 0.1 && m_waypoints.size() > 1 ||
-			m_max_move_distance <= m_collision_distance_near_target && std::fabs(m_act_speed) > 0.1 && m_waypoints.size() == 1 ||
-			m_max_move_distance <= 0.1 )
-	{
-		handleCollision();
-	}
-}
-void HomerNavigationNode::maxDepthMoveDistanceCallback(const std_msgs::Float32::ConstPtr& msg)
-{
-	m_max_move_depth = msg->data;
-	calcMaxMoveDist();
-}
-
-void HomerNavigationNode::laserDataCallback(const sensor_msgs::LaserScan::ConstPtr& msg)
-{
-	m_last_laser_time = ros::Time::now();
-	m_max_move_sick = map_tools::get_max_move_distance ( map_tools::laser_ranges_to_points(msg->ranges, msg->angle_min, msg->angle_increment, msg->range_min, msg->range_max, m_transform_listener, msg->header.frame_id, "/base_link"), m_min_x, m_min_y); 
-	calcMaxMoveDist();
-}
-
-
-void HomerNavigationNode::downlaserDataCallback(const sensor_msgs::LaserScan::ConstPtr& msg)
-{
-	m_max_move_down = map_tools::get_max_move_distance ( map_tools::laser_ranges_to_points(msg->ranges, msg->angle_min, msg->angle_increment, msg->range_min, msg->range_max, m_transform_listener, msg->header.frame_id, "/base_link"), m_min_x, m_min_y); 
-	calcMaxMoveDist();
-}
-
-void HomerNavigationNode::startNavigationCallback(const homer_mapnav_msgs::StartNavigation::ConstPtr& msg)
-{
-	m_avoided_collision  = false;
-	m_target_point 		 = msg->goal.position;
-	m_target_orientation = tf::getYaw(msg->goal.orientation);
-	m_desired_distance 	 = msg->distance_to_target < 0.1 ? 0.1 : msg->distance_to_target;
-	m_skip_final_turn 	 = msg->skip_final_turn;
-	m_fast_path_planning = msg->fast_planning;
-	m_new_target 		 = true;
-	m_target_name        = "";
-
-	ROS_INFO_STREAM("Navigating to target " << m_target_point.x << ", " << m_target_point.y
-			<< "\nTarget orientation: " << m_target_orientation
-			<< "Desired distance to target: " << m_desired_distance);
-
-	m_MainMachine.setState( AWAITING_PATHPLANNING_MAP );
-}
-
-void HomerNavigationNode::moveBaseSimpleGoalCallback(const geometry_msgs::PoseStamped::ConstPtr& msg)
-{
-	if(msg->header.frame_id != "map")
-	{
-		tf::StampedTransform transform;
-		if(m_transform_listener.waitForTransform("map", msg->header.frame_id, msg->header.stamp, ros::Duration(1.0)))
-		{
-			try
-			{
-				m_transform_listener.lookupTransform("map", msg->header.frame_id, msg->header.stamp, transform);
-				tf::Vector3 targetPos(msg->pose.position.x, msg->pose.position.y, msg->pose.position.z);
-				targetPos = transform * targetPos;
-				m_target_point.x = targetPos.getX();
-				m_target_point.y = targetPos.getY();
-				m_target_orientation 	= tf::getYaw(transform*tf::Quaternion(msg->pose.orientation.x, msg->pose.orientation.y, msg->pose.orientation.z, msg->pose.orientation.w));
-			}
-			catch(tf::TransformException ex)
-			{
-				ROS_ERROR_STREAM(ex.what());
-				return;
-			}
-		}
-		else
-		{
-			try
-			{
-				m_transform_listener.lookupTransform("map", msg->header.frame_id, ros::Time(0), transform);
-				tf::Vector3 targetPos(msg->pose.position.x, msg->pose.position.y, msg->pose.position.z);
-				targetPos = transform * targetPos;
-				m_target_point.x = targetPos.getX();
-				m_target_point.y = targetPos.getY();
-				m_target_orientation 	= tf::getYaw(transform*tf::Quaternion(msg->pose.orientation.x, msg->pose.orientation.y, msg->pose.orientation.z, msg->pose.orientation.w));
-			}
-			catch(tf::TransformException ex)
-			{
-				ROS_ERROR_STREAM(ex.what());
-				return;
-			}
-		}
-	}
-	else
-	{
-		m_target_point 			= msg->pose.position;
-		m_target_orientation 	= tf::getYaw(msg->pose.orientation);
-	}
-	m_avoided_collision 	= false;
-	m_desired_distance 		= 0.1;
-	m_skip_final_turn 		= false;
-	m_fast_path_planning 	= false;
-	m_new_target 		    = true;
-
-	ROS_INFO_STREAM("Navigating to target via Move Base Simple x: " << m_target_point.x << ", y: " << m_target_point.y
-			<< "\nTarget orientation: " << m_target_orientation
-			<< " Desired distance to target: " << m_desired_distance
-			<< "\nframe_id: " << msg->header.frame_id);
-
-	m_MainMachine.setState( AWAITING_PATHPLANNING_MAP );
-}
-
-void HomerNavigationNode::navigateToPOICallback(const homer_mapnav_msgs::NavigateToPOI::ConstPtr &msg)
-{
-	homer_mapnav_msgs::GetPointsOfInterest srv;
-	m_get_POIs_client.call(srv);
-	std::vector<homer_mapnav_msgs::PointOfInterest>::iterator it;
-	for(it = srv.response.poi_list.pois.begin(); it != srv.response.poi_list.pois.end(); ++it)
-	{
-		if(it->name == msg->poi_name)
-		{
-			m_avoided_collision  = false;	
-			m_target_point 		 = it->pose.position;
-			m_target_orientation = tf::getYaw(it->pose.orientation);
-			m_desired_distance 	 = msg->distance_to_target < 0.1 ? 0.1 : msg->distance_to_target;
-			m_skip_final_turn 	 = msg->skip_final_turn;
-			m_fast_path_planning = false;
-			m_new_target 		 = true;
-			m_target_name        = msg->poi_name;
-
-			ROS_INFO_STREAM("Navigating to target " << m_target_point.x << ", " << m_target_point.y
-					<< "\nTarget orientation: " << m_target_orientation
-					<< "Desired distance to target: " << m_desired_distance);
-
-			m_MainMachine.setState( AWAITING_PATHPLANNING_MAP );
-			return;
-		}
-	}
-
-	ROS_ERROR_STREAM("No point of interest with name '" << msg->poi_name << "' found in current poi list");
-	sendTargetUnreachableMsg(homer_mapnav_msgs::TargetUnreachable::UNKNOWN);
-}
-
-void HomerNavigationNode::stopNavigationCallback(const std_msgs::Empty::ConstPtr& msg)
-{
-	ROS_INFO_STREAM("Stopping navigation." );
-	m_MainMachine.setState( IDLE );
-	m_avoided_collision = false;
-	stopRobot();
-
-	m_waypoints.clear();
-	nav_msgs::Path empty_path_msg;
-	empty_path_msg.poses = m_waypoints;
-	m_path_pub.publish(empty_path_msg);
-}
-
-void HomerNavigationNode::unknownThresholdCallback(const std_msgs::Int8::ConstPtr &msg)
-{
-	m_explorer->setUnknownThreshold(static_cast<int>(msg->data));
-}
-
-int main(int argc, char **argv)
-{
-	ros::init(argc, argv, "homer_navigation");
-
-	HomerNavigationNode node;
-
-	ros::Rate rate(50);
-
-	while(ros::ok())
-	{
-		ros::spinOnce();
-		node.idleProcess();
-		rate.sleep();
-	}
-
-	return 0;
-}
diff --git a/homer_map_manager/images/rosgraph.png b/images/rosgraph.png
similarity index 100%
rename from homer_map_manager/images/rosgraph.png
rename to images/rosgraph.png
diff --git a/homer_map_manager/images/rosgraph.svg b/images/rosgraph.svg
similarity index 100%
rename from homer_map_manager/images/rosgraph.svg
rename to images/rosgraph.svg
diff --git a/homer_map_manager/include/homer_map_manager/Managers/MapManager.h b/include/homer_map_manager/Managers/MapManager.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/Managers/MapManager.h
rename to include/homer_map_manager/Managers/MapManager.h
diff --git a/homer_map_manager/include/homer_map_manager/Managers/MaskingManager.h b/include/homer_map_manager/Managers/MaskingManager.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/Managers/MaskingManager.h
rename to include/homer_map_manager/Managers/MaskingManager.h
diff --git a/homer_map_manager/include/homer_map_manager/Managers/PoiManager.h b/include/homer_map_manager/Managers/PoiManager.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/Managers/PoiManager.h
rename to include/homer_map_manager/Managers/PoiManager.h
diff --git a/homer_map_manager/include/homer_map_manager/Managers/RoiManager.h b/include/homer_map_manager/Managers/RoiManager.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/Managers/RoiManager.h
rename to include/homer_map_manager/Managers/RoiManager.h
diff --git a/homer_map_manager/include/homer_map_manager/MapIO/image_loader.h b/include/homer_map_manager/MapIO/image_loader.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/MapIO/image_loader.h
rename to include/homer_map_manager/MapIO/image_loader.h
diff --git a/homer_map_manager/include/homer_map_manager/MapIO/map_loader.h b/include/homer_map_manager/MapIO/map_loader.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/MapIO/map_loader.h
rename to include/homer_map_manager/MapIO/map_loader.h
diff --git a/homer_map_manager/include/homer_map_manager/MapIO/map_saver.h b/include/homer_map_manager/MapIO/map_saver.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/MapIO/map_saver.h
rename to include/homer_map_manager/MapIO/map_saver.h
diff --git a/homer_map_manager/include/homer_map_manager/Workers/PointOfInterest/PointOfInterest.h b/include/homer_map_manager/Workers/PointOfInterest/PointOfInterest.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/Workers/PointOfInterest/PointOfInterest.h
rename to include/homer_map_manager/Workers/PointOfInterest/PointOfInterest.h
diff --git a/homer_map_manager/include/homer_map_manager/map_manager_node.h b/include/homer_map_manager/map_manager_node.h
similarity index 100%
rename from homer_map_manager/include/homer_map_manager/map_manager_node.h
rename to include/homer_map_manager/map_manager_node.h
diff --git a/homer_map_manager/mainpage.dox b/mainpage.dox
similarity index 100%
rename from homer_map_manager/mainpage.dox
rename to mainpage.dox
diff --git a/homer_map_manager/manifest.xml b/manifest.xml
similarity index 100%
rename from homer_map_manager/manifest.xml
rename to manifest.xml
diff --git a/homer_map_manager/package.xml b/package.xml
similarity index 100%
rename from homer_map_manager/package.xml
rename to package.xml
diff --git a/homer_map_manager/readme.pdf b/readme.pdf
similarity index 100%
rename from homer_map_manager/readme.pdf
rename to readme.pdf
diff --git a/homer_map_manager/src/Managers/MapManager.cpp b/src/Managers/MapManager.cpp
similarity index 100%
rename from homer_map_manager/src/Managers/MapManager.cpp
rename to src/Managers/MapManager.cpp
diff --git a/homer_map_manager/src/Managers/MaskingManager.cpp b/src/Managers/MaskingManager.cpp
similarity index 100%
rename from homer_map_manager/src/Managers/MaskingManager.cpp
rename to src/Managers/MaskingManager.cpp
diff --git a/homer_map_manager/src/Managers/PoiManager.cpp b/src/Managers/PoiManager.cpp
similarity index 100%
rename from homer_map_manager/src/Managers/PoiManager.cpp
rename to src/Managers/PoiManager.cpp
diff --git a/homer_map_manager/src/Managers/RoiManager.cpp b/src/Managers/RoiManager.cpp
similarity index 100%
rename from homer_map_manager/src/Managers/RoiManager.cpp
rename to src/Managers/RoiManager.cpp
diff --git a/homer_map_manager/src/MapIO/image_loader.cpp b/src/MapIO/image_loader.cpp
similarity index 100%
rename from homer_map_manager/src/MapIO/image_loader.cpp
rename to src/MapIO/image_loader.cpp
diff --git a/homer_map_manager/src/MapIO/map_loader.cpp b/src/MapIO/map_loader.cpp
similarity index 100%
rename from homer_map_manager/src/MapIO/map_loader.cpp
rename to src/MapIO/map_loader.cpp
diff --git a/homer_map_manager/src/MapIO/map_saver.cpp b/src/MapIO/map_saver.cpp
similarity index 100%
rename from homer_map_manager/src/MapIO/map_saver.cpp
rename to src/MapIO/map_saver.cpp
diff --git a/homer_map_manager/src/Workers/PointOfInterest/CMakeLists.txt b/src/Workers/PointOfInterest/CMakeLists.txt
similarity index 100%
rename from homer_map_manager/src/Workers/PointOfInterest/CMakeLists.txt
rename to src/Workers/PointOfInterest/CMakeLists.txt
diff --git a/homer_map_manager/src/map_manager_node.cpp b/src/map_manager_node.cpp
similarity index 100%
rename from homer_map_manager/src/map_manager_node.cpp
rename to src/map_manager_node.cpp
-- 
GitLab