diff --git a/bag/generate_trajectory_csv.bash b/bag/generate_trajectory_csv.bash
index a5c8f600f0bcfca4bf33bc1f6d7ebea41a000623..67bdbf5b774a88bfc2020b29564064fb5ce394bb 100644
--- a/bag/generate_trajectory_csv.bash
+++ b/bag/generate_trajectory_csv.bash
@@ -1,4 +1,17 @@
 #!/bin/bash
-rosbag filter trajectory_recording.bag trajectory_recording_filtered.bag "t.to_sec() >=1620124021"
-rostopic echo -b trajectory_recording_filtered.bag /wolf_ros_node/trajectory -p > trajectory.csv
-python3 transpose_csv.py 
+BAG="ana_lab_2"
+t0=1620123952.21
+tend=1620123952.21
+
+#roslaunch wolf_demo_imu2d imu2d_demo.launch bag:=$BAG\_filtered_notf test:=0 speed:=1 suffix:="_GT"
+#rosbag filter trajectory_recording_GT.bag trajectory_recording_GT_tmp.bag "t.to_sec >= $tend"
+#rostopic echo -b trajectory_recording_GT_tmp.bag /wolf_ros_node/trajectory -p > trajectory_$BAG\_exp_$i.csv
+rm trajectory_recording_GT_tmp.bag
+#python3 transpose_csv.py trajectory_$BAG\_exp_$i.csv trajectory_$BAG\_exp_$i\_transp.csv
+for i in 10 20 30 40 50
+do
+  filtertime=$t0+$i+30.0-1.0
+  roslaunch wolf_demo_imu2d imu2d_demo.launch bag:=$BAG\_shortened_$i test:=5 speed:=1 suffix:="_$i"
+  rostopic echo -b trajectory_recording_$i.bag /wolf_ros_node/pose_pose_with_cov -p > trajectory_$BAG\_exp_$i.csv
+  python3 transpose_csv.py trajectory_$BAG\_exp_$i.csv trajectory_$BAG\_exp_$i\_transp.csv
+done
diff --git a/bag/shorten_topic.bash b/bag/shorten_topic.bash
index 61c8184d583cdf161fcf0ae7f9593e14477da853..7657ccbee8d1abd243035241aeef2ae303f28854 100644
--- a/bag/shorten_topic.bash
+++ b/bag/shorten_topic.bash
@@ -1,3 +1,12 @@
 #!/bin/bash
 BAG="ana_lab_2"
-rosbag filter $BAG\_filtered_notf.bag $BAG\_shortened.bag "topic != '/ana/sensors/scan' or (topic == '/ana/sensors/scan' and t.to_sec() <= 1620124012)"
+tstartstr=$(rosbag info $BAG.bag | grep start)
+t0=$(echo $tstr | cut -d "(" -f2 | cut -d ")" -f1 | bc -l)
+
+for i in 10 20 30 40 50
+do
+  cuttime=$(($t0+$i))
+  echo $cuttime
+  endtime=$(($cuttime+30.0))
+  rosbag filter $BAG\_filtered_notf.bag $BAG\_shortened\_$i.bag "(topic != '/ana/sensors/scan' and t.to_sec() <=$endtime) or (topic == '/ana/sensors/scan' and t.to_sec() <= $cuttime)"
+done
diff --git a/bag/transpose_csv.py b/bag/transpose_csv.py
index d28863c2498208047632b021035c7063fcdfa618..75296bd35fed68785e46deef9391c9b8cb24a4e3 100644
--- a/bag/transpose_csv.py
+++ b/bag/transpose_csv.py
@@ -1,2 +1,11 @@
 import pandas as pd
-pd.read_csv('trajectory.csv', header=None).T.to_csv('trajectory_transp.csv', header=False, index=False)
+import sys
+def transpose(in_bag, out_bag):
+    pd.read_csv(in_bag, header=None).T.to_csv(out_bag, header=False, index=False)
+
+if __name__ == '__main__':
+    in_bag = sys.argv[1]
+    out_bag = sys.argv[2]
+    transpose(in_bag, out_bag)
+    print("Done")
+
diff --git a/launch/imu2d_demo.launch b/launch/imu2d_demo.launch
index 7a30284c079b603fdaec2807ae3a248ae7111fbc..0b074634a0211c11e57855b9d99d2315aa844eb9 100644
--- a/launch/imu2d_demo.launch
+++ b/launch/imu2d_demo.launch
@@ -7,13 +7,14 @@
     <arg name="gdb" default="false" />
     <arg name="test" default="1" />
     <arg name="bag" default="test_no_map" />
+    <arg name="suffix" default="" />
     <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)" />
     <!-- using "clock" option to use the simulated time. Rosbag launch as the first node  -->
 
     <node pkg="rostopic" type="rostopic" name="" args='pub /helena/sensors/bno055_imu/imu/topic_enable std_msgs/Bool "data: True"'/>
-    <node pkg="rosbag" type="record" name="recorder" args='record -O $(find wolf_demo_imu2d)/bag/trajectory_recording.bag "/wolf_ros_node/trajectory" "/wolf_ros_node/graph_trajectory" "/wolf_ros_node/pose_pos_array"'/>
+    <node pkg="rosbag" type="record" name="recorder" args='record -O $(find wolf_demo_imu2d)/bag/trajectory_recording$(arg suffix).bag "/wolf_ros_node/trajectory" "/wolf_ros_node/pose_pose_with_cov"'/>
 
     <node pkg="tf"
           type="static_transform_publisher"
@@ -38,7 +39,8 @@
     <node pkg="rosbag"
     	  type="play"
     	  name="player"
-    	  args="-s $(arg sec) -r $(arg speed) -k --clock $(find wolf_demo_imu2d)/bag/$(arg bag).bag"/>      
+        required="true"
+    	  args="-s $(arg sec) -r $(arg speed) --clock $(find wolf_demo_imu2d)/bag/$(arg bag).bag"/>      
 
     <node type="rviz"
           name="rviz"
diff --git a/yaml/imu2d_test5.yaml b/yaml/imu2d_test5.yaml
index d2168404f832598c1b65f4efa8ed2e47a42fb4b6..37f81ab22d132723a3b9a4b207aee755b7d953f1 100644
--- a/yaml/imu2d_test5.yaml
+++ b/yaml/imu2d_test5.yaml
@@ -62,13 +62,13 @@ config:
       apply_loss_function: true
       keyframe_vote:
         voting_active: false
-      recent_frames_ignored: 3
+      recent_frames_ignored: 10
       frames_ignored_after_loop: 0
       max_error_threshold: 0.02
       min_points_percent: 40
-      max_loops: 3
+      max_loops: 1
       max_candidates: 5
-      max_attempts: 15
+      max_attempts: 5
       candidate_generation: "random" # 'random' or 'tree'
       icp:
         follow: "csm.yaml"
diff --git a/yaml/solver.yaml b/yaml/solver.yaml
index ef04fd43fffb6b5b6ede533e948e125d365f212d..cb52fa3d63983c71bcc06e5bc4c4f6b1daa6d28a 100644
--- a/yaml/solver.yaml
+++ b/yaml/solver.yaml
@@ -1,5 +1,5 @@
 minimizer: LEVENBERG_MARQUARDT
-max_num_iterations: 20
+max_num_iterations: 100
 verbose: 0
 period: 0.0
 n_threads: 2
@@ -8,6 +8,6 @@ min_num_iterations: 5 #if update immediately
 compute_cov: false
 cov_enum: 3 # if compute_cov
 cov_period: 1 # if compute_cov
-function_tolerance: 1e-8
-gradient_tolerance: 1e-9
+function_tolerance: 1e-9
+gradient_tolerance: 1e-10
 use_nonmonotonic_steps: false
diff --git a/yaml/test_imu_params_microstrain.yaml b/yaml/test_imu_params_microstrain.yaml
index 05b747ba2880c81b3bbe7232eb74815675a7ee3c..8ff559405ab5152c537da910a4d9abfac552dc6f 100644
--- a/yaml/test_imu_params_microstrain.yaml
+++ b/yaml/test_imu_params_microstrain.yaml
@@ -3,8 +3,8 @@ extrinsic:
   pose: [0,0,0]    
 a_noise: 0.9 #0.9
 w_noise: 0.01 #0.01
-ab_initial_stdev: 0.05     # m/s2    - initial bias
-wb_initial_stdev: 0.01     # rad/sec - initial bias
-ab_rate_stdev: 0.00001    # m/s2/sqrt(s)
-wb_rate_stdev: 0.00001    # rad/s/sqrt(s)
+ab_initial_stdev: 0.5     # m/s2    - initial bias
+wb_initial_stdev: 0.1     # rad/sec - initial bias
+ab_rate_stdev: 0.001    # m/s2/sqrt(s)
+wb_rate_stdev: 0.001    # rad/s/sqrt(s)
 orthogonal_gravity: true
diff --git a/yaml/test_imu_subscriber_microstrain.yaml b/yaml/test_imu_subscriber_microstrain.yaml
index 7c747b9d2dc4907c1128084f2929cc34a8c10542..1bf1e8c462c3917a25c3351d3749473cc930d7d2 100644
--- a/yaml/test_imu_subscriber_microstrain.yaml
+++ b/yaml/test_imu_subscriber_microstrain.yaml
@@ -9,5 +9,5 @@ in_degrees: false
 #all
 topic_enable: "/helena/sensors/bno055_imu/imu/topic_enable"
 static_init_duration: 3
-lowpass_filter: true
+lowpass_filter: false
 lowpass_cutoff_freq: 5