From ec1fbca5756ef7a91dd2d729b350758698336047 Mon Sep 17 00:00:00 2001 From: Silvan Fuhrer Date: Fri, 25 Nov 2022 11:11:47 +0100 Subject: [PATCH] Logger: add option to disable logging of topics with lat/lon fields (#2147) * Logger: add option to disable logging of topics with lat/lon fields Signed-off-by: Silvan Fuhrer --- src/modules/logger/logged_topics.cpp | 61 ++++++++++++++++++---------- src/modules/logger/logged_topics.h | 3 +- src/modules/logger/params.c | 10 ++++- 3 files changed, 51 insertions(+), 23 deletions(-) diff --git a/src/modules/logger/logged_topics.cpp b/src/modules/logger/logged_topics.cpp index 13bc588044..087bb62ac1 100644 --- a/src/modules/logger/logged_topics.cpp +++ b/src/modules/logger/logged_topics.cpp @@ -55,7 +55,6 @@ void LoggedTopics::add_default_topics() add_topic("airspeed", 1000); add_optional_topic("airspeed_validated", 200); add_optional_topic("autotune_attitude_control_status", 100); - add_optional_topic("camera_capture"); add_optional_topic("camera_trigger"); add_topic("cellular_status", 200); add_topic("commander_state"); @@ -63,14 +62,9 @@ void LoggedTopics::add_default_topics() add_topic("custom_action_status"); add_optional_topic("esc_status", 250); add_topic("failure_detector_status", 100); - add_topic("follow_target_status", 100); - add_optional_topic("follow_target", 500); - add_topic("follow_target_estimator", 100); add_optional_topic("generator_status"); - add_optional_topic("gps_dump"); add_optional_topic("gripper"); add_optional_topic("heater_status"); - add_topic("home_position"); add_topic("hover_thrust_estimate", 100); add_topic("input_rc", 500); add_topic("log_message_incoming"); @@ -81,7 +75,6 @@ void LoggedTopics::add_default_topics() add_topic("manual_control_setpoint", 200); add_topic("manual_control_switches"); add_topic("mission_result"); - add_topic("navigator_mission_item"); add_topic("npfg_status", 100); add_topic("offboard_control_mode", 100); add_topic("parameter_update"); @@ -89,7 +82,6 @@ void LoggedTopics::add_default_topics() add_topic("autotune_attitude_control_status", 100); add_topic("position_controller_status", 500); add_topic("position_controller_landing_status", 100); - add_topic("position_setpoint_triplet", 200); add_optional_topic("px4io_status"); add_topic("radio_status"); add_topic("radio_status_extensions"); @@ -103,29 +95,40 @@ void LoggedTopics::add_default_topics() add_optional_topic("takeoff_status", 1000); add_optional_topic("tecs_status", 200); add_topic("trajectory_setpoint", 200); - add_topic("transponder_report"); add_topic("vehicle_acceleration", 50); add_topic("vehicle_air_data", 200); add_topic("vehicle_angular_velocity", 20); add_topic("vehicle_attitude", 50); add_topic("vehicle_attitude_setpoint", 50); - add_topic("vehicle_command"); add_topic("vehicle_command_ack"); add_topic("vehicle_constraints", 1000); add_topic("vehicle_control_mode"); - add_topic("vehicle_global_position", 200); - add_topic("vehicle_gps_position", 500); add_topic("vehicle_land_detected"); - add_topic("vehicle_local_position", 100); add_topic("vehicle_local_position_setpoint", 100); add_topic("vehicle_magnetometer", 200); add_topic("vehicle_rates_setpoint", 20); - add_topic("vehicle_roi", 1000); add_topic("vehicle_status"); add_topic("vehicle_status_flags"); add_optional_topic("vtol_vehicle_status", 200); add_topic("wind", 1000); + if (!_do_not_log_position_data) { + add_optional_topic("camera_capture"); + add_topic("follow_target_status", 100); + add_optional_topic("follow_target", 500); + add_topic("follow_target_estimator", 100); + add_optional_topic("gps_dump"); + add_topic("home_position"); + add_topic("navigator_mission_item"); + add_topic("position_setpoint_triplet", 200); + add_topic("transponder_report"); + add_topic("vehicle_command"); + add_topic("vehicle_global_position", 200); + add_topic("vehicle_gps_position", 500); + add_topic("vehicle_local_position", 100); + add_topic("vehicle_roi", 1000); + } + // multi topics add_optional_topic_multi("actuator_outputs", 100, 3); add_optional_topic_multi("airspeed_wind", 1000, 4); @@ -142,8 +145,12 @@ void LoggedTopics::add_default_topics() static constexpr uint8_t MAX_ESTIMATOR_INSTANCES = 6; // artificially limited until PlotJuggler fixed add_optional_topic("estimator_selector_status"); add_optional_topic_multi("estimator_attitude", 500, MAX_ESTIMATOR_INSTANCES); - add_optional_topic_multi("estimator_global_position", 1000, MAX_ESTIMATOR_INSTANCES); - add_optional_topic_multi("estimator_local_position", 500, MAX_ESTIMATOR_INSTANCES); + + if (!_do_not_log_position_data) { + add_optional_topic_multi("estimator_global_position", 1000, MAX_ESTIMATOR_INSTANCES); + add_optional_topic_multi("estimator_local_position", 500, MAX_ESTIMATOR_INSTANCES); + } + add_optional_topic_multi("estimator_wind", 1000, MAX_ESTIMATOR_INSTANCES); #endif @@ -183,7 +190,9 @@ void LoggedTopics::add_default_topics() add_topic_multi("optical_flow", 1000, 1); add_optional_topic_multi("sensor_accel", 1000, 4); add_optional_topic_multi("sensor_baro", 1000, 4); - add_topic_multi("sensor_gps", 1000, 2); + + if (!_do_not_log_position_data) { add_topic_multi("sensor_gps", 1000, 2); } + add_topic_multi("sensor_gnss_relative", 1000, 1); add_optional_topic_multi("sensor_gyro", 1000, 4); add_optional_topic_multi("sensor_mag", 1000, 4); @@ -310,7 +319,9 @@ void LoggedTopics::add_estimator_replay_topics() add_topic("sensor_combined"); add_topic("sensor_selection"); add_topic("vehicle_air_data"); - add_topic("vehicle_gps_position"); + + if (!_do_not_log_position_data) { add_topic("vehicle_gps_position"); } + add_topic("vehicle_land_detected"); add_topic("vehicle_magnetometer"); add_topic("vehicle_status"); @@ -427,13 +438,16 @@ int LoggedTopics::add_topics_from_file(const char *fname) void LoggedTopics::initialize_mission_topics(MissionLogType mission_log_type) { if (mission_log_type == MissionLogType::Complete) { - add_mission_topic("camera_capture"); add_mission_topic("mission_result"); - add_mission_topic("vehicle_global_position", 1000); add_mission_topic("vehicle_status", 1000); + if (!_do_not_log_position_data) { + add_mission_topic("camera_capture"); + add_mission_topic("vehicle_global_position", 1000); + } + } else if (mission_log_type == MissionLogType::Geotagging) { - add_mission_topic("camera_capture"); + if (!_do_not_log_position_data) { add_mission_topic("camera_capture"); } } } @@ -535,6 +549,11 @@ bool LoggedTopics::initialize_logged_topics(SDLogProfileMask profile) void LoggedTopics::initialize_configured_topics(SDLogProfileMask profile) { + int32_t do_not_log_position_data = 0; + param_get(param_find("SDLOG_NO_POS_DAT"), &do_not_log_position_data); + + _do_not_log_position_data = do_not_log_position_data >= 1; + // load appropriate topics for profile // the order matters: if several profiles add the same topic, the logging rate of the last one will be used if (profile & SDLogProfileMask::DEFAULT) { diff --git a/src/modules/logger/logged_topics.h b/src/modules/logger/logged_topics.h index 49e1bdd4f6..c2be01b708 100644 --- a/src/modules/logger/logged_topics.h +++ b/src/modules/logger/logged_topics.h @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2019 PX4 Development Team. All rights reserved. + * Copyright (c) 2019-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -187,6 +187,7 @@ private: float _rate_factor{1.0f}; bool _dynamic_control_allocation{false}; + bool _do_not_log_position_data{false}; }; } //namespace logger diff --git a/src/modules/logger/params.c b/src/modules/logger/params.c index 2fe6b07c19..481148838d 100644 --- a/src/modules/logger/params.c +++ b/src/modules/logger/params.c @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2012-2016 PX4 Development Team. All rights reserved. + * Copyright (c) 2012-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -219,3 +219,11 @@ PARAM_DEFINE_INT32(SDLOG_KEY, 2); * @group SD Logging */ PARAM_DEFINE_INT32(SDLOG_EXCH_KEY, 1); + +/** + * Disable logging of topics containing absolute position data + * + * @boolean + * @group SD Logging + */ +PARAM_DEFINE_INT32(SDLOG_NO_POS_DAT, 0);