From 8410b94ef9d1296dcb3a4369b674240138dfccc2 Mon Sep 17 00:00:00 2001 From: Idril Geer <igeer@iri.upc.edu> Date: Mon, 7 Feb 2022 20:04:37 +0100 Subject: [PATCH] work on scripts --- bag/generate_trajectory_csv.bash | 19 ++++++++++++++++--- bag/shorten_topic.bash | 11 ++++++++++- bag/transpose_csv.py | 11 ++++++++++- launch/imu2d_demo.launch | 6 ++++-- yaml/imu2d_test5.yaml | 6 +++--- yaml/solver.yaml | 6 +++--- yaml/test_imu_params_microstrain.yaml | 8 ++++---- yaml/test_imu_subscriber_microstrain.yaml | 2 +- 8 files changed, 51 insertions(+), 18 deletions(-) diff --git a/bag/generate_trajectory_csv.bash b/bag/generate_trajectory_csv.bash index a5c8f60..67bdbf5 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 61c8184..7657ccb 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 d28863c..75296bd 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 7a30284..0b07463 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 d216840..37f81ab 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 ef04fd4..cb52fa3 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 05b747b..8ff5594 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 7c747b9..1bf1e8c 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 -- GitLab