diff --git a/launch/demo_visual_inertial_odometry.launch b/launch/demo_visual_inertial_odometry.launch
new file mode 100644
index 0000000000000000000000000000000000000000..f77432bfdcaf9fcf2247cb2991dc8210bb9117e5
--- /dev/null
+++ b/launch/demo_visual_inertial_odometry.launch
@@ -0,0 +1,43 @@
+<!-- -->
+<launch>
+    <!--USER ARGS-->
+    <arg name="rviz" default="true" />
+    <arg name="speed" default="1" />
+    <arg name="sec" default="0" />
+    <arg name="sim_time" default="true" />
+
+    <arg name="profiling" default="false" />
+    <arg name="gdb" default="false" />
+    <arg name="launch_pref" default="" unless="$(eval profiling or gdb)"/>
+    <arg name="launch_pref" value="valgrind --tool=callgrind --callgrind-out-file='callgrind.wolf.%p'" if="$(arg profiling)" />
+    <arg name="launch_pref" value="gdb -ex run --args" if="$(arg gdb)" />
+
+    <!--VISUALIZATION-->
+    <group if="$(arg rviz)">
+        <node name="rviz"
+             pkg="rviz"
+             type="rviz"
+             args="-d $(find wolf_demo_visual_odometry)/rviz/online.rviz" />
+    </group>
+
+
+    <!--Publish a CameraInfo topic reading at a standard wolf camera yaml file-->
+    <include file="$(find wolf_demo_visual_odometry)/launch/publisher_camera_info.launch" />
+
+    <!--Undistort the image using the published camera info and raw images-->
+    <node type="image_proc"
+          name="image_proc"
+          pkg="image_proc"
+          ns="cam0" />
+    
+
+    <!--WOLF-->
+    <node type="wolf_ros_node"
+          name="wolf_ros_node"
+          pkg="wolf_ros_node"
+          output="screen"
+          required="true"
+          launch-prefix="$(arg launch_pref)">
+        <param name="~yaml_file_path" value="$(find wolf_demo_visual_odometry)/yaml/demo_visual_inertial_odometry_euroc.yaml" />
+    </node>
+</launch>
diff --git a/yaml/demo_visual_inertial_odometry_euroc.yaml b/yaml/demo_visual_inertial_odometry_euroc.yaml
index eebd9ac0d30c969814236b67949e1393fb89e186..618832c51434eae53fafe9b3c1cec6ae5b366e48 100644
--- a/yaml/demo_visual_inertial_odometry_euroc.yaml
+++ b/yaml/demo_visual_inertial_odometry_euroc.yaml
@@ -22,6 +22,7 @@ config:
         # 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
         V: [0,0,0]
       $sigma:
        P: [0.00001, 0.00001, 0.00001]
@@ -63,7 +64,6 @@ config:
       name: "IMU PROC"
       sensor_name: "IMU"
       plugin: "imu"
-      apply_loss_function: false
       follow: "processor_imu.yaml"
       state_getter: true
       state_priority: 1
@@ -119,4 +119,10 @@ config:
       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_imu.yaml b/yaml/processor_imu.yaml
index a9beb5b99c808298629641cbdae1d0a11f7553c8..b8ca2c8c26e3171d7ea5be698c7c699a4b8b452f 100644
--- a/yaml/processor_imu.yaml
+++ b/yaml/processor_imu.yaml
@@ -1,5 +1,6 @@
 time_tolerance: 0.0025         # Time tolerance for joining KFs (half of 5ms or 200Hz)
 unmeasured_perturbation_std: 0.000001
+apply_loss_function: false
 keyframe_vote:
     voting_active:      false
     max_time_span:      1.0   # seconds