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 <silvan@auterion.com>
This commit is contained in:
Silvan Fuhrer 2022-11-25 11:11:47 +01:00 committed by fury1895
parent ebe0a4095c
commit ec1fbca575
3 changed files with 51 additions and 23 deletions

View File

@ -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) {

View File

@ -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

View File

@ -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);