diff --git a/bag/test_no_map.bag b/bag/test_no_map.bag new file mode 100644 index 0000000000000000000000000000000000000000..129d9940c5a20c18c203aa582dc976af35bd05d4 Binary files /dev/null and b/bag/test_no_map.bag differ diff --git a/launch/imu2d_demo.launch b/launch/imu2d_demo.launch index 3f2da8e16b4302452dffaa7a2c817d768ba3a700..97f98df7fa7b600a0802996448327e31bf5da509 100644 --- a/launch/imu2d_demo.launch +++ b/launch/imu2d_demo.launch @@ -10,25 +10,32 @@ <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 /ana/sensors/bno055_imu/imu/topic_enable std_msgs/Bool "data: True"'/> + <node pkg="tf" type="static_transform_publisher" - name="static_tf2" + name="static_tf" args="0 0 0 0 0 0 /ana/base_footprint /ana/base_link 100"/> <node pkg="tf" type="static_transform_publisher" - name="static_tf" + name="static_tf2" args="0 0 0 0 0 0 /ana/base_link /ana/imu_bno055 100"/> <node pkg="tf" type="static_transform_publisher" name="static_tf3" - args="0 0 0 0 0 0 /ana/base_link /ana/velodyne 100"/> + args="0 0 0 3.14159265 0 0 /ana/base_link /ana/velodyne 100"/> + + <node pkg="tf" + type="static_transform_publisher" + name="static_tf4" + args="-0.11 0.01 0 0 0 0 /ana/base_link /ana/imu_microstrain 100"/> <node pkg="rosbag" type="play" name="player" - args="-s $(arg sec) -r $(arg speed) -k --clock $(find wolf_demo_imu2d)/bag/test3_filtered2_nomap.bag"/> + args="-s $(arg sec) -r $(arg speed) -k --clock $(find wolf_demo_imu2d)/bag/test_no_map.bag"/> <node type="rviz" name="rviz" diff --git a/rviz/imu2d_demo.rviz b/rviz/imu2d_demo.rviz index 10c1926278078b375aced5fa774e90a62a861149..1fb31303cb74517c54c7bb6ee596a72ba74c0621 100644 --- a/rviz/imu2d_demo.rviz +++ b/rviz/imu2d_demo.rviz @@ -6,7 +6,6 @@ Panels: Expanded: - /Global Options1 - /TF1 - - /TF1/Status1 - /TF1/Frames1 - /TF1/Tree1 - /Odometry1 @@ -40,7 +39,7 @@ Panels: Experimental: false Name: Time SyncMode: 0 - SyncSource: "" + SyncSource: LaserScan Toolbars: toolButtonStyle: 2 Visualization Manager: @@ -79,23 +78,46 @@ Visualization Manager: Value: false ana/front_right_axle: Value: false + ana/imu_bno055: + Value: true + ana/imu_microstrain: + Value: true ana/odom: Value: true ana/rear_left_axle: Value: false ana/rear_right_axle: Value: false + ana/velodyne: + Value: true + map: + Value: true Marker Scale: 1 Name: TF Show Arrows: true Show Axes: true Show Names: true Tree: - ana/odom: - ana/base_footprint: - {} - ana/base_footprint_robot: - {} + map: + ana/odom: + ana/base_footprint: + ana/base_link: + ana/front_left_axle: + {} + ana/front_right_axle: + {} + ana/imu_bno055: + {} + ana/imu_microstrain: + {} + ana/rear_left_axle: + {} + ana/rear_right_axle: + {} + ana/velodyne: + {} + ana/base_footprint_robot: + {} Update Interval: 0 Value: true - Angle Tolerance: 0.100000001 @@ -175,17 +197,22 @@ Visualization Manager: Marker Topic: /wolf_ros_node/graph_factors Name: Factors Namespaces: - {} + factors_processorimu2d: true + factors_processorodom2d: true + factors_processorodomicp: false + factors_text_processorimu2d: false + factors_text_processorodom2d: false + factors_text_processorodomicp: false Queue Size: 100 Value: true - Class: rviz/MarkerArray - Enabled: true + Enabled: false Marker Topic: /wolf_ros_node/graph_trajectory Name: Trajectory Namespaces: {} Queue Size: 100 - Value: true + Value: false - Class: rviz/Axes Enabled: true Length: 1 @@ -236,17 +263,17 @@ Visualization Manager: - Alpha: 1 Class: rviz_plugin_tutorials/Imu Color: 204; 51; 204 - Enabled: true + Enabled: false History Length: 1 Name: Imu Topic: /ana/sensors/bno055_imu/imu_remapped Unreliable: false - Value: true + Value: false Enabled: true Global Options: Background Color: 48; 48; 48 Default Light: true - Fixed Frame: ana/odom + Fixed Frame: map Frame Rate: 30 Name: root Tools: @@ -276,11 +303,11 @@ Visualization Manager: Invert Z Axis: false Name: Current View Near Clip Distance: 0.00999999978 - Scale: 27.2575378 + Scale: 77.8121338 Target Frame: ana/base_link Value: TopDownOrtho (rviz) - X: -6.06173658 - Y: -5.61819553 + X: -0.064257361 + Y: -0.334138036 Saved: ~ Window Geometry: Displays: @@ -288,7 +315,7 @@ Window Geometry: Height: 1056 Hide Left Dock: false Hide Right Dock: false - QMainWindow State: 000000ff00000000fd00000004000000000000027f00000396fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000002800000396000000dd00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000396fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000002800000396000000b000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073f0000003efc0100000002fb0000000800540069006d006501000000000000073f0000030000fffffffb0000000800540069006d00650100000000000004500000000000000000000003a50000039600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + QMainWindow State: 000000ff00000000fd00000004000000000000027f00000396fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000002800000396000000dd00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000396fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000002800000396000000b000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073f0000003efc0100000002fb0000000800540069006d006501000000000000073f0000030000fffffffb0000000800540069006d00650100000000000004500000000000000000000004ba0000039600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 Selection: collapsed: false Time: diff --git a/yaml/imu2d.yaml b/yaml/imu2d.yaml index 6704e15fd04dac83e13c34704cad6a962238a360..2dfaaf112c5686cc2f02a602870abae3754ed15b 100644 --- a/yaml/imu2d.yaml +++ b/yaml/imu2d.yaml @@ -1,7 +1,9 @@ config: - profiling: - enabled: true - file_name: "~/wolf_demo_profiling_imu2d.txt" + debug: + profiling: true + profiling_file: "~/wolf_demo_profiling_imu2d.txt" + print_problem: true + print_period: 5 problem: tree_manager: type: "none" @@ -35,7 +37,7 @@ config: extrinsic: pose: [0,0,0] k_disp_to_disp: 0.1 - k_rot_to_rot: 0.2 + k_rot_to_rot: 1.5 - type: "SensorLaser2d" name: "scanner_front_left" @@ -43,7 +45,7 @@ config: extrinsic: # pose: [0.15,0.15,0] # pose: [0.2,0.1, 1.57] - pose: [0,0,0] #Last value was pi + pose: [0,0,3.1415926535] #Last value was pi LaserScanParams: angle_min: -3.14159274101 angle_max: 3.14159274101 @@ -55,17 +57,29 @@ config: angle_std_dev: 0.01 - type: "SensorImu2d" - name: "sensorimu2d" + name: "microstrain" plugin: "imu" extrinsic: - pose: [0,0,0] - a_noise: 0.53 - w_noise: 0.11 + pose: [0,0,0] + a_noise: 0.053 + w_noise: 0.011 ab_initial_stdev: 0.5 # m/s2 - initial bias wb_initial_stdev: 0.1 # rad/sec - initial bias ab_rate_stdev: 0.00001 # m/s2/sqrt(s) - wb_rate_stdev: 0.00001 # rad/s/sqrt(s) + wb_rate_stdev: 0.0000001 # rad/s/sqrt(s) + - + type: "SensorImu2d" + name: "bno" + plugin: "imu" + extrinsic: + pose: [0,0,0] + a_noise: 0.053 + w_noise: 0.011 + ab_initial_stdev: 0.5 # m/s2 - initial bias + wb_initial_stdev: 0.1 # rad/sec - initial bias + ab_rate_stdev: 0.00001 # m/s2/sqrt(s) + wb_rate_stdev: 0.00001 # rad/s/sqrt(s) processors: - @@ -74,7 +88,7 @@ config: sensor_name: "odom2d" plugin: "core" keyframe_vote: - voting_active: false + voting_active: true max_time_span: 1 max_buff_length: 999 dist_traveled: 999 @@ -82,6 +96,8 @@ config: cov_det: 999 unmeasured_perturbation_std: 0.01 time_tolerance: 0.05 #Half the sample time + state_getter: false + state_priority: 1 apply_loss_function: false - type: "ProcessorOdomIcp" @@ -89,37 +105,55 @@ config: sensor_name: "scanner_front_left" plugin: "laser" keyframe_vote: - voting_active: true + voting_active: false min_features_for_keyframe: 10 max_new_features: 15 follow: "csm.yaml" vfk_min_dist: 999 vfk_min_angle: 999 - vfk_min_time: 1 + vfk_min_time: 2 vfk_min_error: 0.05 vfk_max_points: 140 time_tolerance: 0.05 #Half the sample time - apply_loss_function: true + state_getter: false + state_priority: 1 + apply_loss_function: false + #- + # type: "ProcessorLoopClosureIcp" + # name: "processorloopclosureicp" + # sensor_name: "scanner_front_left" + # plugin: "laser" + # recent_key_frames_ignored: 2 + # key_frames_to_wait: 2 + # max_error_threshold: 0.01 + # min_points_percent: 50 + # time_tolerance: 0.05 #Half the sample time + # keyframe_vote: + # voting_active: false + # follow: "csm.yaml" + # apply_loss_function: true - - type: "ProcessorLoopClosureIcp" - name: "processorloopclosureicp" - sensor_name: "scanner_front_left" - plugin: "laser" - recent_key_frames_ignored: 2 - key_frames_to_wait: 2 - max_error_threshold: 0.01 - min_points_percent: 50 - time_tolerance: 0.05 #Half the sample time - keyframe_vote: + type: "ProcessorImu2d" + name: "processorimu2d" + sensor_name: "bno" + plugin: "imu" + time_tolerance: 0.008 #Half the sample time, bno + unmeasured_perturbation_std: 0.1 + keyframe_vote: voting_active: false - follow: "csm.yaml" - apply_loss_function: true + max_time_span: 2 + max_buff_length: 1000000 + dist_traveled: 10 + angle_turned: 3.14 + state_getter: true + state_priority: 1 + apply_loss_function: false - type: "ProcessorImu2d" name: "processorimu2d" - sensor_name: "sensorimu2d" + sensor_name: "microstrain" plugin: "imu" - time_tolerance: 0.008 #Half the sample time + time_tolerance: 0.005 #Half the sample time, microstrain unmeasured_perturbation_std: 0.1 keyframe_vote: voting_active: false @@ -127,8 +161,9 @@ config: max_buff_length: 1000000 dist_traveled: 10 angle_turned: 3.14 + state_getter: true + state_priority: 2 apply_loss_function: false - ROS subscriber: - @@ -139,19 +174,41 @@ config: - package: "wolf_ros_laser" type: "SubscriberLaser2d" - topic: "/ana/sensors/scan" + topic: "/ana/sensors/scan_mal" sensor_name: "scanner_front_left" - load_params_from_msg: false + load_params_from_msg: true - package: "wolf_ros_imu" - type: "SubscriberImu" - topic: "/ana/sensors/bno055_imu/imu_mal" - sensor_name: "sensorimu2d" + type: "SubscriberImuEnableable" + topic: "/ana/sensors/bno055_imu/imu" + topic_enable: "/ana/sensors/bno055_imu/imu/topic_enable" + static_init_duration: 0 + lowpass_filter: false + lowpass_cutoff_freq: 5 + dt: 0.016 + sensor_name: "bno" + #bno: imu_x_axis: 3 - imu_y_axis: 2 - imu_z_axis: -1 + imu_y_axis: -2 + imu_z_axis: 1 cov_source: "sensor" in_degrees: true + - + package: "wolf_ros_imu" + type: "SubscriberImuEnableable" + topic: "/ana/imu/data_mal" + topic_enable: "/ana/sensors/bno055_imu/imu/topic_enable" + static_init_duration: 0 + lowpass_filter: false + lowpass_cutoff_freq: 5 + dt: 0.016 + sensor_name: "microstrain" + #microstrain: + imu_x_axis: 1 + imu_y_axis: -2 + imu_z_axis: -3 + cov_source: "sensor" + in_degrees: false ROS publisher: -