diff --git a/launch/demo_vo_aprilag.launch b/launch/demo_vo_aprilag.launch
index e465cf962ab1191de9ef927952fe92df70771613..8a237945c05dca389b9f1fa9cf1261add576ea69 100644
--- a/launch/demo_vo_aprilag.launch
+++ b/launch/demo_vo_aprilag.launch
@@ -1,7 +1,7 @@
 <!-- -->
 <launch>
     <!--USER ARGS-->
-    <arg name="rviz" default="false" />
+    <arg name="rviz" default="true" />
     <arg name="speed" default="1" />
     <arg name="sec" default="0" />
     <arg name="sim_time" default="true" />
diff --git a/rviz/d435i.rviz b/rviz/d435i.rviz
index 850179ddc9f803fdd80f1cea304ea3ad64c090ab..b67f53ad7e0345febdaf17267fc41488b63e779b 100644
--- a/rviz/d435i.rviz
+++ b/rviz/d435i.rviz
@@ -143,7 +143,7 @@ Visualization Manager:
       Value: false
     - Class: rviz/Image
       Enabled: true
-      Image Topic: /image_vo_tracks
+      Image Topic: /wolf_ros_node/image_vo_tracks
       Max Value: 1
       Median window: 5
       Min Value: 0
@@ -155,7 +155,7 @@ Visualization Manager:
       Value: true
     - Class: rviz/Image
       Enabled: true
-      Image Topic: /image_vo_tracks_preprocessor
+      Image Topic: /wolf_ros_node/image_vo_tracks_preprocessor
       Max Value: 1
       Median window: 5
       Min Value: 0
diff --git a/rviz/d435i_apriltag.rviz b/rviz/d435i_apriltag.rviz
index 76f4c2dce2e43cec617569e7dc3806aae59e6436..1e533f5fbe8ffa95c0cc7c715beebb2be16d60b8 100644
--- a/rviz/d435i_apriltag.rviz
+++ b/rviz/d435i_apriltag.rviz
@@ -29,7 +29,7 @@ Panels:
     Experimental: false
     Name: Time
     SyncMode: 0
-    SyncSource: VO tracks
+    SyncSource: ""
 Preferences:
   PromptSaveOnExit: true
 Toolbars:
@@ -69,6 +69,12 @@ Visualization Manager:
       Frame Timeout: 15
       Frames:
         All Enabled: false
+        base_footprint:
+          Value: true
+        map:
+          Value: true
+        odom:
+          Value: true
       Marker Alpha: 1
       Marker Scale: 0.5
       Name: TF
@@ -76,7 +82,10 @@ Visualization Manager:
       Show Axes: true
       Show Names: false
       Tree:
-        {}
+        map:
+          odom:
+            base_footprint:
+              {}
       Update Interval: 0
       Value: true
     - Class: rviz/MarkerArray
@@ -136,7 +145,7 @@ Visualization Manager:
       Value: false
     - Class: rviz/Image
       Enabled: true
-      Image Topic: /image_vo_tracks
+      Image Topic: /wolf_ros_node/image_vo_tracks
       Max Value: 1
       Median window: 5
       Min Value: 0
@@ -160,7 +169,7 @@ Visualization Manager:
       Value: true
     - Class: rviz/Image
       Enabled: false
-      Image Topic: /image_vo_tracks_preprocessor
+      Image Topic: /wolf_ros_node/image_vo_tracks_preprocessor
       Max Value: 1
       Median window: 5
       Min Value: 0
diff --git a/rviz/euroc.rviz b/rviz/euroc.rviz
index 04c940921ab9179c343dac89b4a5e56b33ca8280..cf7f2e03abc37bc0a3b8816767e39092a916c8cd 100644
--- a/rviz/euroc.rviz
+++ b/rviz/euroc.rviz
@@ -148,7 +148,7 @@ Visualization Manager:
       Value: false
     - Class: rviz/Image
       Enabled: true
-      Image Topic: /image_vo_tracks
+      Image Topic: /wolf_ros_node/image_vo_tracks
       Max Value: 1
       Median window: 5
       Min Value: 0
@@ -160,7 +160,7 @@ Visualization Manager:
       Value: true
     - Class: rviz/Image
       Enabled: true
-      Image Topic: /image_vo_tracks_preprocessor
+      Image Topic: /wolf_ros_node/image_vo_tracks_preprocessor
       Max Value: 1
       Median window: 5
       Min Value: 0
diff --git a/yaml/demo_vio_apriltag_d435i.yaml b/yaml/demo_vio_apriltag_d435i.yaml
index 2d43c28c4c1b3d2ac7b4619bb48b5cb2cdb8865c..c0ae8fee71df66fec7d2c94347f6832cb5811fd9 100644
--- a/yaml/demo_vio_apriltag_d435i.yaml
+++ b/yaml/demo_vio_apriltag_d435i.yaml
@@ -114,19 +114,21 @@ config:
     -
       type: "PublisherVisionDebug"
       processor_name: "VISUALODOMETRY PROC"
-      topic: "/image_vo_tracks"
-      topic_preprocessor: "/image_vo_tracks_preprocessor"
+      topic: "image_vo_tracks"
+      topic_preprocessor: "image_vo_tracks_preprocessor"
       package: "wolf_ros_vision"
-      period: 0.05
+      period: 0.1
       follow: "publisher_vision_debug.yaml"
-    - 
-      type: "PublisherImuBias"
-      sensor_name: "IMU"
-      processor_name: "IMU"
-      topic: "/imu_bias"
-      package: "wolf_ros_imu"
-      period: 0.05
+
+    # - 
+    #   type: "PublisherImuBias"
+    #   sensor_name: "IMU"
+    #   processor_name: "IMU"
+    #   topic: "imu_bias"
+    #   package: "wolf_ros_imu"
+    #   period: 0.05
     -
+    
       type: "PublisherApriltagDebug"
       processor_name: "APRILTAG PROC"
       topic: "apriltag_detections"
diff --git a/yaml/demo_vio_d435i.yaml b/yaml/demo_vio_d435i.yaml
index dea29e415e532f5f54666cf34c9d5c1aeaef8b5f..e341ca816bb7d6b146892c011d5b005e803f5608 100644
--- a/yaml/demo_vio_d435i.yaml
+++ b/yaml/demo_vio_d435i.yaml
@@ -107,8 +107,8 @@ config:
     -
       type: "PublisherVisionDebug"
       processor_name: "VISUALODOMETRY PROC"
-      topic: "/image_vo_tracks"
-      topic_preprocessor: "/image_vo_tracks_preprocessor"
+      topic: "image_vo_tracks"
+      topic_preprocessor: "image_vo_tracks_preprocessor"
       package: "wolf_ros_vision"
       period: 0.05
       follow: "publisher_vision_debug.yaml"
@@ -116,6 +116,6 @@ config:
       type: "PublisherImuBias"
       sensor_name: "IMU"
       processor_name: "IMU"
-      topic: "/imu_bias"
+      topic: "imu_bias"
       package: "wolf_ros_imu"
       period: 0.05
diff --git a/yaml/demo_vio_euroc.yaml b/yaml/demo_vio_euroc.yaml
index b9c55f8d7d41dd82ebff41f9f90cb80ded7d5def..b765e884fb9b0dad08d5fd133f88fff135ce56f8 100644
--- a/yaml/demo_vio_euroc.yaml
+++ b/yaml/demo_vio_euroc.yaml
@@ -111,8 +111,8 @@ config:
     -
       type: "PublisherVisionDebug"
       processor_name: "VISUALODOMETRY PROC"
-      topic: "/image_vo_tracks"
-      topic_preprocessor: "/image_vo_tracks_preprocessor"
+      topic: "image_vo_tracks"
+      topic_preprocessor: "image_vo_tracks_preprocessor"
       package: "wolf_ros_vision"
       period: 0.05
       follow: "publisher_vision_debug.yaml"
@@ -120,6 +120,6 @@ config:
       type: "PublisherImuBias"
       sensor_name: "IMU"
       processor_name: "IMU"
-      topic: "/imu_bias"
+      topic: "imu_bias"
       package: "wolf_ros_imu"
       period: 0.05
diff --git a/yaml/demo_vo_apriltag_d435i.yaml b/yaml/demo_vo_apriltag_d435i.yaml
index d494662a02fe5fd5b4442c6bb5d62e763874651f..3de7d83b61aedc6dac201e4e735b2ca85fc84392 100644
--- a/yaml/demo_vo_apriltag_d435i.yaml
+++ b/yaml/demo_vo_apriltag_d435i.yaml
@@ -2,7 +2,7 @@ config:
 
   debug:
     profiling: true
-    profiling_file: "~/wolf_demo_vio_profiling.txt"
+    profiling_file: "~/wolf_demo_vo_apriltag_profiling.txt"
     print_problem: true
     print_depth: 3            # only if print_problem
     print_constr_by: true     # only if print_problem
@@ -38,6 +38,15 @@ config:
         # pose: [0,0,0,  0,0,0,1]
       using_raw: false
       follow: "camera_d435i.yaml"
+    -
+      type: "SensorCamera"
+      name: "CAMERA APRIL"
+      plugin: "vision"
+      extrinsic:
+        pose: [-0.006, 0.005, 0.012,  0,0,0,1]  # D435i left infra
+        # pose: [0,0,0,  0,0,0,1]
+      using_raw: false
+      follow: "camera_d435i.yaml"
 
   processors:
     -
@@ -46,10 +55,11 @@ config:
       sensor_name: "CAMERA"
       plugin: "vision"
       follow: "processor_visual_odometry.yaml"
+
     -
       type: "ProcessorTrackerLandmarkApriltag"
       name: "APRILTAG PROC"
-      sensor_name: "CAMERA"
+      sensor_name: "CAMERA APRIL"
       plugin: "apriltag"
       follow: "processor_tracker_landmark_apriltag.yaml"
       
@@ -59,46 +69,52 @@ config:
       type: "SubscriberCamera"
       topic: "/camera/infra1/image_rect_raw"
       sensor_name: "CAMERA"
+    
+    -
+      package: "wolf_ros_vision"
+      type: "SubscriberCamera"
+      topic: "/camera/infra1/image_rect_raw"
+      sensor_name: "CAMERA APRIL"
 
   ROS publisher:
-    # -
-    #   type: "PublisherGraph"
-    #   topic: "graph"
-    #   package: "wolf_ros_node"
-    #   period: 0.2
-    #   viz_scale: 0.3
-    #   text_scale: 0.1
-    #   landmark_text_z_offset: 0.3
-    #   landmark_length: 0.5
-    #   frame_width: 0.01
-    #   frame_length: 0.1
-    #   frame_vel_scale: 1.0
-    #   factors_width: 0.01
-    #   factor_lmk_color: [0, 1, 1, 0.004]
+    -
+      type: "PublisherGraph"
+      topic: "graph"
+      package: "wolf_ros_node"
+      period: 0.2
+      viz_scale: 0.3
+      text_scale: 0.1
+      landmark_text_z_offset: 0.3
+      landmark_length: 0.5
+      frame_width: 0.01
+      frame_length: 0.1
+      frame_vel_scale: 1.0
+      factors_width: 0.01
+      factor_lmk_color: [0, 1, 1, 0.004]
 
-    # -
-    #   type: "PublisherTf"
-    #   topic: " "
-    #   package: "wolf_ros_node"
-    #   period: 0.2
-    #   map_frame_id: "map"
-    #   odom_frame_id: "odom"
-    #   base_frame_id: "base_footprint"
-    #   publish_odom_tf: true
+    -
+      type: "PublisherTf"
+      topic: " "
+      package: "wolf_ros_node"
+      period: 0.2
+      map_frame_id: "map"
+      odom_frame_id: "odom"
+      base_frame_id: "base_footprint"
+      publish_odom_tf: true
 
-    # -
-    #   type: "PublisherVisionDebug"
-    #   processor_name: "VISUALODOMETRY PROC"
-    #   topic: "/image_vo_tracks"
-    #   topic_preprocessor: "/image_vo_tracks_preprocessor"
-    #   package: "wolf_ros_vision"
-    #   period: 100
-    #   follow: "publisher_vision_debug.yaml"
+    -
+      type: "PublisherVisionDebug"
+      processor_name: "VISUALODOMETRY PROC"
+      topic: "image_vo_tracks"
+      topic_preprocessor: "image_vo_tracks_preprocessor"
+      package: "wolf_ros_vision"
+      period: 0.1
+      follow: "publisher_vision_debug.yaml"
 
     -
       type: "PublisherApriltagDebug"
       processor_name: "APRILTAG PROC"
       topic: "apriltag_detections"
       package: "wolf_ros_apriltag"
-      period: 100
+      period: 0.1
 
diff --git a/yaml/demo_vo_d435i.yaml b/yaml/demo_vo_d435i.yaml
index 5afdc673ebc11f579060fcea0eb6c59b2d6ba34b..ee48cd9dceb26526fd09725c4fbc76ccbef5b64c 100644
--- a/yaml/demo_vo_d435i.yaml
+++ b/yaml/demo_vo_d435i.yaml
@@ -16,7 +16,7 @@ config:
     frame_structure: "PO"
     dimension: 3
     prior:
-      mode: "initial_guess"
+      mode: "factor"
       $state:
         P: [0,0,0]
         O: [1,0,0,0]  # arbitrary
@@ -83,8 +83,8 @@ config:
     -
       type: "PublisherVisionDebug"
       processor_name: "VISUALODOMETRY PROC"
-      topic: "/image_vo_tracks"
-      topic_preprocessor: "/image_vo_tracks_preprocessor"
+      topic: "image_vo_tracks"
+      topic_preprocessor: "image_vo_tracks_preprocessor"
       package: "wolf_ros_vision"
       period: 0.05
       follow: "publisher_vision_debug.yaml"
diff --git a/yaml/demo_vo_euroc.yaml b/yaml/demo_vo_euroc.yaml
index 8e45d480bcb82a174d06d83c1306593654d97276..95b1398825311ddf98e80c769376b6199296dcdb 100644
--- a/yaml/demo_vo_euroc.yaml
+++ b/yaml/demo_vo_euroc.yaml
@@ -19,10 +19,7 @@ config:
       mode: "factor"
       $state:
         P: [0,0,0]
-        # P: [0,0,0.5]
-        O: [0,0,0,1]
-        # O: [0, 0.20791169, 0, 0.9781476]  # x,y,z,w
-#        O: [0, -0.78770522698, 0, -0.61605233169] # -105 deg along Y axes
+        O: [0,0,0,1]  # arbitrary
       $sigma:
        P: [0.00001, 0.00001, 0.00001]
        O: [0.01, 0.01, 0.01]
@@ -64,16 +61,6 @@ config:
       type: "SubscriberCamera"
       topic: "/cam0/image_rect"
       sensor_name: "CAMERA"
-    -
-      package: "wolf_ros_imu"
-      type: "SubscriberImu"
-      topic: "/imu0"
-      sensor_name: "IMU"
-      # imu_x_axis: 3 # See VI-sensor axes in https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#platform_and_sensors   ??? 
-      # imu_y_axis: -2
-      # imu_z_axis: 1
-      cov_source: "sensor"
-      in_degrees: false
 
   ROS publisher:
     -
@@ -104,15 +91,8 @@ config:
     -
       type: "PublisherVisionDebug"
       processor_name: "VISUALODOMETRY PROC"
-      topic: "/image_vo_tracks"
-      topic_preprocessor: "/image_vo_tracks_preprocessor"
+      topic: "image_vo_tracks"
+      topic_preprocessor: "image_vo_tracks_preprocessor"
       package: "wolf_ros_vision"
       period: 0.05
       follow: "publisher_vision_debug.yaml"
-    - 
-      type: "PublisherImuBias"
-      sensor_name: "IMU"
-      processor_name: "IMU"
-      topic: "/imu_bias"
-      package: "wolf_ros_imu"
-      period: 0.05
diff --git a/yaml/processor_visual_odometry.yaml b/yaml/processor_visual_odometry.yaml
index 8fe26c1b51919d1d3b6bc85dca7d4f37be23f8a4..6fae6763ec665abb98874ed83e44a023fc8c4c47 100644
--- a/yaml/processor_visual_odometry.yaml
+++ b/yaml/processor_visual_odometry.yaml
@@ -3,6 +3,9 @@
 ####################################
 time_tolerance: 0.05
 
+state_getter: false
+state_priority: 0
+
 keyframe_vote:
     voting_active: true
     # Trigger a new keyframe creation as well as detection of new keypoints in last frame
@@ -77,5 +80,9 @@ ransac:
 # standard deviation of the pixel reprojection factor 
 std_pix: 0.5
 
-# before creating a landmark, wait until the track is old enough
-min_track_length_for_landmark: 10
+# Rules to create a new landmark from a track
+lmk_creation:
+    # wait until the track is old enough
+    min_track_length_for_landmark: 10
+    # enough pixel distance (does not make a big difference)
+    min_pixel_dist: 10.0