diff --git a/src/main/jastadd/gen/Package.jadd b/src/main/jastadd/gen/Package.jadd
index 4c5900a715267b1a003c9d12ca7b81c5e2d0a91b..ad6a06d34a8267c825b7fd0b5d5b044a478c5afe 100644
--- a/src/main/jastadd/gen/Package.jadd
+++ b/src/main/jastadd/gen/Package.jadd
@@ -34,4 +34,13 @@ aspect PackageGen {
         this.setFileContent(res);
         return res;
     }
+
+    syn String TracingFile.generate(String rosHost, String rosMasterUri, String signalHost){
+
+        String res = de.tudresden.inf.st.pnml.gen.generators.JavaClassGenUtil
+            .generateTracingLauncherClass(rosHost, rosMasterUri, signalHost,
+                dinerosPackage().getNamespace());
+        this.setFileContent(res);
+        return res;
+    }
 }
\ No newline at end of file
diff --git a/src/main/jastadd/gen/Package.relast b/src/main/jastadd/gen/Package.relast
index a7e7465318b25656e6e681d206c6100ff242f1d9..cd1238c4f7946fa8f8cd9e500d214c25e5b7f54d 100644
--- a/src/main/jastadd/gen/Package.relast
+++ b/src/main/jastadd/gen/Package.relast
@@ -12,5 +12,6 @@ GradleFile:TemplateFile ;
 abstract JavaFile:TemplateFile ;
 NodeFile:JavaFile ;
 LauncherFile:JavaFile ;
+TracingFile:JavaFile ;
 
 PackageDirectory:PackageElement ::= Dir:PackageDirectory* File:PackageFile* <Name:String> ;
diff --git a/src/main/jastadd/gen/PackageNav.jadd b/src/main/jastadd/gen/PackageNav.jadd
index 7a6e47cbacdefe05f4873a6709ee0701258cea54..3219e592f4e84b3df1873cbd27dc34417151ae2e 100644
--- a/src/main/jastadd/gen/PackageNav.jadd
+++ b/src/main/jastadd/gen/PackageNav.jadd
@@ -38,6 +38,12 @@ aspect PackageNav {
         syn LauncherFile PackageFile.asLauncherFile() = null;
         eq LauncherFile.asLauncherFile() = this;
 
+        syn boolean PackageFile.isTracingFile() = false;
+        eq TracingFile.isTracingFile() = true;
+
+        syn TracingFile PackageFile.asTracingFile() = null;
+        eq TracingFile.asTracingFile() = this;
+
         syn boolean PackageFile.isGradleFile() = false;
         eq GradleFile.isGradleFile() = true;
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java b/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java
index 549ed6242c550ede98bb703896a6596c5e99b4bd..22189df857b8277be5c1ab255868b3194fed037c 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java
@@ -23,12 +23,9 @@ public class Main {
             return;
         }
 
-        String configPath = args[0];
-        //String configPath = "src/test/resources/GeneratorConfig.json";
-
         ObjectMapper generatorConfigObjectMapper = new ObjectMapper();
-        GeneratorConfig gc = generatorConfigObjectMapper.readValue(Files.readString(Paths.get(configPath)), GeneratorConfig.class);
-       /* GeneratorConfig gc = new GeneratorConfig("sample", "sample-pkg",
+        GeneratorConfig gc = generatorConfigObjectMapper.readValue(Files.readString(Paths.get(args[0])), GeneratorConfig.class);
+        /*GeneratorConfig gc = new GeneratorConfig("sample", "sample-pkg",
                 "de.tudresden.inf.st.sorting","0.1",
                 "src/test/resources/EngineConfig.json","mqtt", "localhost",
                 "http://localhost:11311","localhost",
diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java b/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java
index eb3759e3ff5ac062b396f52b8f496d176e73023c..7fe88e8412d4e3fc84621727b0ceef12065e805c 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java
@@ -120,6 +120,11 @@ public class PackageStructureBuilder {
                     launcher.setFileID(UUID.randomUUID().toString());
                     pd.addFile(launcher);
                 }
+
+                TracingFile tracingFile = new TracingFile();
+                tracingFile.setName("TracingNodeLauncher");
+                tracingFile.setFileID(UUID.randomUUID().toString());
+                pd.addFile(tracingFile);
             }
 
             if(pd.getName().equals("nets")){
@@ -265,6 +270,13 @@ public class PackageStructureBuilder {
             }
         }
 
+        System.out.println("Generating contents of tracing launcher.");
+        for (PackageFile pf : dinerosPackage.allPackageFiles()) {
+            if(pf.isTracingFile()){
+                pf.asTracingFile().generate(rosHost, rosMasterUri, signalHost);
+            }
+        }
+
         System.out.println("Generating contents of gradle files.");
         for (PackageFile pf : dinerosPackage.allPackageFiles()) {
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java b/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java
index e38b36bcf44c427b3473c529e272c92290d4b6c2..6e4dd95dccf596adf844b4ae7bd39700c2763e01 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java
@@ -17,6 +17,16 @@ public class JavaClassGenUtil extends AbstractGenUtil{
         return generate(context, "JavaLauncher.mustache");
     }
 
+    public static String generateTracingLauncherClass(String rosHost, String rosMasterUri, String signalHost,
+                                               String packageNamespace){
+
+        Map<String, Object> context = new HashMap<>();
+        LauncherContext launcherContext = new LauncherContext(rosHost, rosMasterUri, signalHost,
+                packageNamespace, null, null);
+        context.put("launcherContext", launcherContext);
+        return generate(context, "JavaTracingLauncher.mustache");
+    }
+
     public static String generateNodeClass(String packageNamespace, String nodeName, String protocol){
 
         Map<String, Object> context = new HashMap<>();
diff --git a/src/main/resources/mustache/JavaLauncher.mustache b/src/main/resources/mustache/JavaLauncher.mustache
index b22c7325e577001195082111ba8c50d08cbe2d35..437b7ee7bed3c083b14314311d8a4c837bcbf399 100644
--- a/src/main/resources/mustache/JavaLauncher.mustache
+++ b/src/main/resources/mustache/JavaLauncher.mustache
@@ -1,6 +1,7 @@
 {{#launcherContext}}
 package {{{packageNamespace}}}.launchers;
 
+import de.tudresden.inf.st.pnml.engine.tracing.TracingNode;
 import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
 import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser;
 
@@ -27,6 +28,7 @@ public class {{{nodeClassName}}}Launcher {
         // TODO: bind handlers to transitions
 
         new Thread(() -> nodeMainExecutor.execute(sensorNode, nodeConfiguration)) {{start();}};
+        new Thread(() -> nodeMainExecutor.execute(new TracingNode(), nodeConfiguration)) {{start();}};
     }
 }
 {{/launcherContext}}
\ No newline at end of file
diff --git a/src/main/resources/mustache/JavaTracingLauncher.mustache b/src/main/resources/mustache/JavaTracingLauncher.mustache
new file mode 100644
index 0000000000000000000000000000000000000000..5ef21ea96686002536595bc1c7d12139bd534e84
--- /dev/null
+++ b/src/main/resources/mustache/JavaTracingLauncher.mustache
@@ -0,0 +1,26 @@
+{{#launcherContext}}
+package {{{packageNamespace}}}.launchers;
+
+import de.tudresden.inf.st.pnml.engine.tracing.TracingNode;
+import org.ros.node.DefaultNodeMainExecutor;
+import org.ros.node.NodeConfiguration;
+import org.ros.node.NodeMainExecutor;
+
+import java.net.URI;
+
+public class TracingNodeLauncher {
+
+    private static final String ROS_HOST = "{{{rosHost}}}";
+    private static final String ROS_MASTER_URI = "{{{rosMasterUri}}}";
+    private static final String SIGNAL_HOST = "{{{signalHost}}}";
+
+    protected static final NodeConfiguration nodeConfiguration = NodeConfiguration.newPublic(ROS_HOST);
+    protected static final NodeMainExecutor nodeMainExecutor = DefaultNodeMainExecutor.newDefault();
+
+    public static void main(java.lang.String[] args) {
+
+        nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI));
+        new Thread(() -> nodeMainExecutor.execute(new TracingNode(), nodeConfiguration)) {{start();}};
+    }
+}
+{{/launcherContext}}
\ No newline at end of file
diff --git a/src/main/resources/static/pnml-relast-engine-fatjar-0.1.jar b/src/main/resources/static/pnml-relast-engine-fatjar-0.1.jar
index 07e243a4637c1493f47348f370ca9ff37748184d..6b9836bdaaeb962ab6b4d50755e445b81c76ba17 100644
Binary files a/src/main/resources/static/pnml-relast-engine-fatjar-0.1.jar and b/src/main/resources/static/pnml-relast-engine-fatjar-0.1.jar differ