diff --git a/launch/rpa_positioning_rosbag.launch b/launch/rpa_positioning_rosbag.launch index 10e25af44a9aef70134c9d1494ad6b588310bb90..e0b7d31bc6663bed7156d95354528dfd2829fc34 100644 --- a/launch/rpa_positioning_rosbag.launch +++ b/launch/rpa_positioning_rosbag.launch @@ -22,13 +22,13 @@ <!-- using "clock" option to use the simulated time. Rosbag launch as the first node --> <param name="use_sim_time" value="true" /> - <arg name="bag_path" default="/home/joanvallve/bags/GAUSS/loring_tests"/> + <!--<arg name="bag_path" default="/home/joanvallve/bags/GAUSS/loring_tests"/>--> <!--<arg name="bag_suffix" default="2021-02-16-15-49-27"/>--> <!--<arg name="bag_suffix" default="2021-02-16-15-55-07"/>--> - <arg name="bag_suffix" default="2021-02-16-14-39-56"/> + <!--<arg name="bag_suffix" default="2021-02-16-14-39-56"/>--> - <!--<arg name="bag_path" default="$(find gauss_ros)/bags"/>--> - <!--<arg name="bag_suffix" default="mini8"/>--> + <arg name="bag_path" default="$(find gauss_ros)/bags"/> + <arg name="bag_suffix" default="mini8"/> <!--POSITIONING--> <include file="$(find gauss_ros)/launch/rpa_positioning.launch"> diff --git a/yaml/IRI/params.yaml b/yaml/IRI/params.yaml new file mode 100644 index 0000000000000000000000000000000000000000..eed5cdec39697e2af3a52ce504b0c9b948ece084 --- /dev/null +++ b/yaml/IRI/params.yaml @@ -0,0 +1,145 @@ +config: + debug: + profiling: true + profiling_file: "~/profiling_M600.txt" + print_problem: false + print_period: 1 + + problem: + frame_structure: "POV" + dimension: 3 + tree_manager: + follow: "../tree_manager/sliding_window_20_0.yaml" + prior: + #follow: "../prior/POV_factor.yaml" + follow: "../prior/POV_fix.yaml" + + solver: + max_num_iterations: 20 + verbose: 0 + period: 0.0 + n_threads: 2 + update_immediately: true + min_num_iterations: 5 #if update immediately + compute_cov: true + cov_enum: 3 + cov_period: 1 + + sensors: + - + type: "SensorImu" + name: "IMU_odometer" + plugin: "imu" + follow: "../sensor_bno.yaml" + - + type: "SensorCompass" + name: "compass" + plugin: "imu" + follow: "../sensor_bno_compass.yaml" + - + type: "SensorGnss" + name: "gnss" + plugin: "gnss" + extrinsic: + pose: [1.36, -0.04, 0.280] # BNO055 in rosbag + follow: "../sensor_f9t.yaml" + + processors: + - + type: "ProcessorImu" + name: "processor IMU" + sensor_name: "IMU_odometer" + plugin: "imu" + follow: "../processor_imu.yaml" + - + type: "ProcessorCompass" + name: "processor compass" + sensor_name: "compass" + plugin: "imu" + follow: "../processor_compass.yaml" + - + type: "ProcessorTrackerGnss" + name: "processor gnss" + sensor_name: "gnss" + plugin: "gnss" + follow: "processor_gnss.yaml" + + ROS subscriber: + - + type: "SubscriberGnssUblox" + topic: "/ublox_gps/raw_data_stream" + sensor_name: "gnss" + package: "wolf_ros_gnss" + follow: "../subscriber_gnss_ublox.yaml" + - + type: "SubscriberImuEnableable" + topic: "/bno055_imu/imu" + sensor_name: "IMU_odometer" + package: "wolf_ros_imu" + follow: "subscriber_imu.yaml" + - + type: "SubscriberCompass" + topic: "/bno055_imu/magnetometer" + sensor_name: "compass" + package: "wolf_ros_imu" + follow: "subscriber_imu.yaml" + - + type: "SubscriberGnssFixPublisherEcef" + topic: "/ublox_gps/fix" + sensor_name: "gnss" + package: "wolf_ros_gnss" + marker_color: [0,0,1,1] + period: 0.1 + - + type: "SubscriberGnssFixNovatelPublisherEcef" + topic: "/novatel/oem7/bestpos" + sensor_name: "gnss" + package: "wolf_ros_gnss" + marker_color: [0,1,0,1] + period: 0.1 + + ROS publisher: + - + type: "PublisherRpaStateInfo" + topic: "rpa_state_info" + package: "wolf_ros_gauss" + period: 0.5 + follow: "publisher_rpa_state_info.yaml" + - + type: "PublisherRpaPositioningInfo" + topic: "rpa_positioning_info" + package: "wolf_ros_gauss" + period: 0.5 + sensor: "gnss" + - + type: "PublisherRpaImuGnssPositioning" + topic: "rpa_imu_gnss_positioning" + package: "wolf_ros_gauss" + period: 0.1 + sensor: "gnss" + - + type: "PublisherPose" + topic: "current_pose" + package: "wolf_ros_node" + marker_color: [1,0,0,1] + period: 0.1 + extrinsics: true + sensor: "gnss" + frame_id: "ENU" + - + type: "PublisherGnssTf" + topic: " " + package: "wolf_ros_gnss" + period: 0.01 + sensor_gnss_name: "gnss" + - + type: "PublisherGraph" + topic: "graph" + package: "wolf_ros_node" + period: 0.2 + - + type: "PublisherTrackerGnssInfo" + topic: "gnss_tracker" + package: "wolf_ros_gnss" + period: 0.2 + processor_gnss: "processor gnss" \ No newline at end of file diff --git a/yaml/IRI/params_only_gnss.yaml b/yaml/IRI/params_only_gnss.yaml new file mode 100644 index 0000000000000000000000000000000000000000..27a9982846ada8aeda89fe4f7815f37e20fdad69 --- /dev/null +++ b/yaml/IRI/params_only_gnss.yaml @@ -0,0 +1,104 @@ +config: + debug: + profiling: true + profiling_file: "~/profiling_M600_only_GNSS.txt" + print_problem: false + print_period: 1 + + problem: + frame_structure: "PO" + dimension: 3 + tree_manager: + follow: "../tree_manager/sliding_window_dual_20_10_10_0.yaml" + prior: + #follow: "../prior/PO_factor.yaml" + follow: "../prior/PO_fix.yaml" + + solver: + max_num_iterations: 20 + verbose: 0 + period: 0.0 + n_threads: 2 + update_immediately: true + min_num_iterations: 5 #if update immediately + compute_cov: false + cov_enum: 3 + cov_period: 1 + + sensors: + - + type: "SensorGnss" + name: "gnss" + plugin: "gnss" + extrinsic: + pose: [0, 0, 0] + follow: "../sensor_f9t.yaml" + + processors: + - + type: "ProcessorTrackerGnss" + name: "processor gnss" + sensor_name: "gnss" + plugin: "gnss" + follow: "processor_gnss.yaml" + + ROS subscriber: + - + type: "SubscriberGnssUblox" + topic: "/ublox_gps/raw_data_stream" + sensor_name: "gnss" + package: "wolf_ros_gnss" + follow: "../subscriber_gnss_ublox.yaml" + - + type: "SubscriberGnssFixPublisherEcef" + topic: "/ublox_gps/fix" + sensor_name: "gnss" + package: "wolf_ros_gnss" + marker_color: [0,0,1,1] + period: 0.1 + + ROS publisher: + - + type: "PublisherRpaStateInfo" + topic: "rpa_state_info" + package: "wolf_ros_gauss" + period: 0.5 + follow: "publisher_rpa_state_info.yaml" + - + type: "PublisherRpaPositioningInfo" + topic: "rpa_positioning_info" + package: "wolf_ros_gauss" + period: 0.5 + sensor: "gnss" + - + type: "PublisherRpaImuGnssPositioning" + topic: "rpa_imu_gnss_positioning" + package: "wolf_ros_gauss" + period: 0.1 + sensor: "gnss" + - + type: "PublisherPose" + topic: "current_pose" + package: "wolf_ros_node" + marker_color: [1,0,0,1] + period: 0.01 + extrinsics: true + sensor: "gnss" + frame_id: "ENU" + - + type: "PublisherGnssTf" + topic: " " + package: "wolf_ros_gnss" + period: 0.01 + sensor_gnss_name: "gnss" + - + type: "PublisherGraph" + topic: "graph" + package: "wolf_ros_node" + period: 0.2 + - + type: "PublisherTrackerGnssInfo" + topic: "gnss_tracker" + package: "wolf_ros_gnss" + period: 0.2 + processor_gnss: "processor gnss" \ No newline at end of file diff --git a/yaml/IRI/processor_gnss.yaml b/yaml/IRI/processor_gnss.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6fa1d2779d6aa05fa291dad5a878172b1b27f5b6 --- /dev/null +++ b/yaml/IRI/processor_gnss.yaml @@ -0,0 +1,42 @@ +time_tolerance: 0.1 +apply_loss_function: false +max_new_features: -1 #unlimited +remove_outliers: true +remove_outliers_with_fix: true +outlier_residual_th: 10 +init_frames: false +pseudo_ranges: true +enu_map_fix_dist: 5 +keyframe_vote: + voting_active: true + max_time_span: 0.01 + min_features_for_keyframe: 0 #4 +gnss: + sateph: 6 # satellite ephemeris/clock: EPHOPT_BRDC(0):broadcast ephemeris, EPHOPT_PREC(1): precise ephemeris, EPHOPT_SBAS(2): broadcast + SBAS, EPHOPT_SSRAPC(3): broadcast + SSR_APC, EPHOPT_SSRCOM(4): broadcast + SSR_COM, EPHOPT_LEX(5): QZSS LEX ephemeris, EPHOPT_SBAS2(6):broadcast + SBAS(sats with SBAS corr and sats with BRDC eph), EPHOPT_SBAS3(7):broadcast + SBAS(EPHOPT_SBAS if possible, otherwise EPHOPT_SBAS2), EPHOPT_SBAS4(8):broadcast + SBAS(EPHOPT_SBAS if possible, otherwise EPHOPT_BRDC) + ionoopt: 9 # ionosphere option: IONOOPT_OFF(0):correction off, IONOOPT_BRDC(1):broadcast mode, IONOOPT_SBAS(2):SBAS model, IONOOPT_IFLC(3):L1/L2 or L1/L5, IONOOPT_EST(4):estimation, IONOOPT_TEC(5):IONEX TEC model, IONOOPT_QZS(6):QZSS broadcast, IONOOPT_LEX(7):QZSS LEX ionosphere, IONOOPT_STEC(8):SLANT TEC mode, IONOOPT_SBAS2(9):broadcast + SBAS(sats with SBAS corr and sats with BRDC eph), IONOOPT_SBAS3(10):broadcast + SBAS(IONOOPT_SBAS if possible, otherwise IONOOPT_SBAS2), IONOOPT_SBAS4(11):broadcast + SBAS(IONOOPT_SBAS if possible, otherwise IONOOPT_BRDC) + tropopt: 2 # troposphere option: (0:correction off,1:Saastamoinen model,2:SBAS model,3:troposphere option: ZTD estimation,4:ZTD+grad estimation,5:ZTD correction,6:ZTD+grad correction) + sbascorr: 15 # SBAS option (1:long term correction,2:fast correction,4:ionosphere correction,8:ranging) + raim: 1 # apply RAIM + elmin: 0.26 # elevation min (rad) = 15 degrees + maxgdop: 30 # reject threshold of gdop (ground dilusion of precision) + min_sbas_sats: 5 # used in case of EPHOPT_SBAS3, EPHOPT_SBAS4, IONOOPT_SBAS3, IONOOPT_SBAS4 + constellations: + GPS: true + SBS: false + GLO: true + GAL: true + QZS: false + CMP: false + IRN: false + LEO: false + tdcp: + enabled: true + corr_iono: false + corr_tropo: false + loss_function: false + time_window: 10 # s + sigma_atm: 0.3 # m/sqrt(s) + sigma_carrier: 0.1 # m + multi_freq: false + remove_outliers: false + batch: false \ No newline at end of file diff --git a/yaml/IRI/publisher_rpa_state_info.yaml b/yaml/IRI/publisher_rpa_state_info.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0e42fe53e11cba46b8e8689968810d123157ca3f --- /dev/null +++ b/yaml/IRI/publisher_rpa_state_info.yaml @@ -0,0 +1,7 @@ +topic_security: "/alarm_data" +sensor: "gnss" +icao: 3434000 # M600a +k_H: 5.256522 +k_V: 4.891638 +HAL: 20 #20/10 +VAL: 30 #30/444 \ No newline at end of file diff --git a/yaml/IRI/subscriber_imu.yaml b/yaml/IRI/subscriber_imu.yaml new file mode 100644 index 0000000000000000000000000000000000000000..72c7da2dafdccde4e10dee0512844af9d9c6047a --- /dev/null +++ b/yaml/IRI/subscriber_imu.yaml @@ -0,0 +1,16 @@ +enableable: true +topic_enable: "gnss_available" + +imu_x_axis: -1 +imu_y_axis: 2 +imu_z_axis: -3 + +cov_source: "msg" + +in_degrees: true + +static_init_duration: 30.0 + +lowpass_filter: true +lowpass_cutoff_freq: 10 +dt: 0.01 \ No newline at end of file diff --git a/yaml/tree_manager/sliding_window_10_0.yaml b/yaml/tree_manager/sliding_window_10_0.yaml new file mode 100644 index 0000000000000000000000000000000000000000..26fa9e3756d53d4f7758c17652a960cf597a1684 --- /dev/null +++ b/yaml/tree_manager/sliding_window_10_0.yaml @@ -0,0 +1,4 @@ +type: "TreeManagerSlidingWindow" +n_frames: 10 +n_fix_first_frames: 0 +viral_remove_empty_parent: true \ No newline at end of file diff --git a/yaml/tree_manager/sliding_window_10_1.yaml b/yaml/tree_manager/sliding_window_10_1.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ae15151ef3be52fd1e4f20f980519a0342d0e246 --- /dev/null +++ b/yaml/tree_manager/sliding_window_10_1.yaml @@ -0,0 +1,4 @@ +type: "TreeManagerSlidingWindow" +n_frames: 10 +n_fix_first_frames: 1 +viral_remove_empty_parent: true \ No newline at end of file diff --git a/yaml/tree_manager/sliding_window_20_0.yaml b/yaml/tree_manager/sliding_window_20_0.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1b984838f7afb992cc14aad848a8fe3320502eeb --- /dev/null +++ b/yaml/tree_manager/sliding_window_20_0.yaml @@ -0,0 +1,4 @@ +type: "TreeManagerSlidingWindow" +n_frames: 20 +n_fix_first_frames: 0 +viral_remove_empty_parent: true \ No newline at end of file diff --git a/yaml/tree_manager/sliding_window_20_1.yaml b/yaml/tree_manager/sliding_window_20_1.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cf536655f641f932e58352ccae2920a91d6bf71e --- /dev/null +++ b/yaml/tree_manager/sliding_window_20_1.yaml @@ -0,0 +1,4 @@ +type: "TreeManagerSlidingWindow" +n_frames: 20 +n_fix_first_frames: 1 +viral_remove_empty_parent: true \ No newline at end of file diff --git a/yaml/tree_manager/sliding_window_20_10.yaml b/yaml/tree_manager/sliding_window_20_10.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3f9ada05b5344735a376939be0901c3b08a44822 --- /dev/null +++ b/yaml/tree_manager/sliding_window_20_10.yaml @@ -0,0 +1,4 @@ +type: "TreeManagerSlidingWindow" +n_frames: 20 +n_fix_first_frames: 10 +viral_remove_empty_parent: true \ No newline at end of file