From f48eb4ffbb08f66b1599003d1930e06f11bb7bee Mon Sep 17 00:00:00 2001 From: Jon Reeves Date: Wed, 5 Feb 2025 09:43:14 -0700 Subject: [PATCH 1/3] Updated FixedwingMetrics, added attitude and VFR_HUD publishers to the TelemetryServer --- protos/telemetry/telemetry.proto | 7 +++-- .../telemetry_server/telemetry_server.proto | 28 +++++++++++++++++-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/protos/telemetry/telemetry.proto b/protos/telemetry/telemetry.proto index 59cc1789f..d2ea487db 100644 --- a/protos/telemetry/telemetry.proto +++ b/protos/telemetry/telemetry.proto @@ -755,8 +755,11 @@ message GroundTruth { // FixedwingMetrics message type. message FixedwingMetrics { float airspeed_m_s = 1 [(mavsdk.options.default_value)="NaN"]; // Current indicated airspeed (IAS) in metres per second - float throttle_percentage = 2 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100) - float climb_rate_m_s = 3 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second + float groundspeed_m_s = 2 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second + float heading_deg = 3 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north) + float throttle_percentage = 4 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100) + float altitude_msl = 5 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) + float climb_rate_m_s = 6 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second } // AccelerationFrd message type. diff --git a/protos/telemetry_server/telemetry_server.proto b/protos/telemetry_server/telemetry_server.proto index c574d4438..b3adcbcdb 100644 --- a/protos/telemetry_server/telemetry_server.proto +++ b/protos/telemetry_server/telemetry_server.proto @@ -42,6 +42,10 @@ service TelemetryServerService { rpc PublishUnixEpochTime(PublishUnixEpochTimeRequest) returns(PublishUnixEpochTimeResponse) { option (mavsdk.options.async_type) = SYNC; } // Publish to "distance sensor" updates. rpc PublishDistanceSensor(PublishDistanceSensorRequest) returns(PublishDistanceSensorResponse) { option (mavsdk.options.async_type) = SYNC; } + // Publish to "attitude" updates. + rpc PublishAttitude(PublishAttitudeRequest) returns(PublishAttitudeResponse) { option (mavsdk.options.async_type) = SYNC; } + // Publish to "Visual Flight Rules HUD" updates. + rpc PublishVisualFlightRulesHud(PublishVisualFlightRulesHudRequest) returns(PublishVisualFlightRulesHudResponse) { option (mavsdk.options.async_type) = SYNC; } } message PublishPositionRequest { @@ -125,6 +129,15 @@ message PublishDistanceSensorRequest { DistanceSensor distance_sensor = 1; // The next 'Distance Sensor' status } +message PublishAttitudeRequest { + EulerAngle angle = 1; // roll/pitch/yaw body angles + AngularVelocityBody angular_velocity = 2; // roll/pitch/yaw angular velocities +} + +message PublishVisualFlightRulesHudRequest { + FixedwingMetrics fixed_wing_metrics = 1; +} + message PublishPositionResponse { TelemetryServerResult telemetry_server_result = 1; } @@ -187,6 +200,14 @@ message PublishDistanceSensorResponse { TelemetryServerResult telemetry_server_result = 1; } +message PublishAttitudeResponse { + TelemetryServerResult telemetry_server_result = 1; +} + +message PublishVisualFlightRulesHudResponse { + TelemetryServerResult telemetry_server_result = 1; +} + // Position type in global coordinates. message Position { double latitude_deg = 1 [(mavsdk.options.default_value)="NaN"]; // Latitude in degrees (range: -90 to +90) @@ -435,8 +456,11 @@ message GroundTruth { // FixedwingMetrics message type. message FixedwingMetrics { float airspeed_m_s = 1 [(mavsdk.options.default_value)="NaN"]; // Current indicated airspeed (IAS) in metres per second - float throttle_percentage = 2 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100) - float climb_rate_m_s = 3 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second + float groundspeed_m_s = 2 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second + float heading_deg = 3 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north) + float throttle_percentage = 4 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100) + float altitude_msl = 5 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) + float climb_rate_m_s = 6 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second } // AccelerationFrd message type. From 0015cebf9e775ad7851afb93403d7d8329cb2d61 Mon Sep 17 00:00:00 2001 From: Jon Reeves Date: Fri, 7 Feb 2025 07:56:59 -0700 Subject: [PATCH 2/3] Re-order fields for backward compatibility --- protos/telemetry/telemetry.proto | 10 +++++----- protos/telemetry_server/telemetry_server.proto | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/protos/telemetry/telemetry.proto b/protos/telemetry/telemetry.proto index d2ea487db..09c1c9229 100644 --- a/protos/telemetry/telemetry.proto +++ b/protos/telemetry/telemetry.proto @@ -755,11 +755,11 @@ message GroundTruth { // FixedwingMetrics message type. message FixedwingMetrics { float airspeed_m_s = 1 [(mavsdk.options.default_value)="NaN"]; // Current indicated airspeed (IAS) in metres per second - float groundspeed_m_s = 2 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second - float heading_deg = 3 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north) - float throttle_percentage = 4 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100) - float altitude_msl = 5 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) - float climb_rate_m_s = 6 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second + float throttle_percentage = 2 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100) + float climb_rate_m_s = 3 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second + float groundspeed_m_s = 4 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second + float heading_deg = 5 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north) + float altitude_msl = 6 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) } // AccelerationFrd message type. diff --git a/protos/telemetry_server/telemetry_server.proto b/protos/telemetry_server/telemetry_server.proto index b3adcbcdb..0822cb1bf 100644 --- a/protos/telemetry_server/telemetry_server.proto +++ b/protos/telemetry_server/telemetry_server.proto @@ -456,11 +456,11 @@ message GroundTruth { // FixedwingMetrics message type. message FixedwingMetrics { float airspeed_m_s = 1 [(mavsdk.options.default_value)="NaN"]; // Current indicated airspeed (IAS) in metres per second - float groundspeed_m_s = 2 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second - float heading_deg = 3 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north) - float throttle_percentage = 4 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100) - float altitude_msl = 5 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) - float climb_rate_m_s = 6 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second + float throttle_percentage = 2 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100) + float climb_rate_m_s = 3 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second + float groundspeed_m_s = 4 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second + float heading_deg = 5 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north) + float altitude_msl = 6 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) } // AccelerationFrd message type. From 15c1a10767ef1798bf0b01868d587fadbf926ac0 Mon Sep 17 00:00:00 2001 From: Jon Reeves Date: Sat, 8 Feb 2025 14:37:39 -0700 Subject: [PATCH 3/3] PR feedback: altitude_msl -> absolute_altitude_m --- protos/telemetry/telemetry.proto | 2 +- protos/telemetry_server/telemetry_server.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/protos/telemetry/telemetry.proto b/protos/telemetry/telemetry.proto index 09c1c9229..d3f290eea 100644 --- a/protos/telemetry/telemetry.proto +++ b/protos/telemetry/telemetry.proto @@ -759,7 +759,7 @@ message FixedwingMetrics { float climb_rate_m_s = 3 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second float groundspeed_m_s = 4 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second float heading_deg = 5 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north) - float altitude_msl = 6 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) + float absolute_altitude_m = 6 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) } // AccelerationFrd message type. diff --git a/protos/telemetry_server/telemetry_server.proto b/protos/telemetry_server/telemetry_server.proto index 0822cb1bf..9e13474ac 100644 --- a/protos/telemetry_server/telemetry_server.proto +++ b/protos/telemetry_server/telemetry_server.proto @@ -460,7 +460,7 @@ message FixedwingMetrics { float climb_rate_m_s = 3 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second float groundspeed_m_s = 4 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second float heading_deg = 5 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north) - float altitude_msl = 6 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) + float absolute_altitude_m = 6 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL) } // AccelerationFrd message type.