@jawji/orchestrator 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +181 -0
  3. package/dist/adapters/mavsdk-adapter.d.ts +4 -0
  4. package/dist/adapters/mavsdk-adapter.d.ts.map +1 -0
  5. package/dist/adapters/mavsdk-adapter.js +51 -0
  6. package/dist/adapters/mavsdk-adapter.js.map +1 -0
  7. package/dist/adapters/vlm-client.d.ts +3 -0
  8. package/dist/adapters/vlm-client.d.ts.map +1 -0
  9. package/dist/adapters/vlm-client.js +19 -0
  10. package/dist/adapters/vlm-client.js.map +1 -0
  11. package/dist/grpc/mavsdk-client.d.ts +8 -0
  12. package/dist/grpc/mavsdk-client.d.ts.map +1 -0
  13. package/dist/grpc/mavsdk-client.js +34 -0
  14. package/dist/grpc/mavsdk-client.js.map +1 -0
  15. package/dist/index.d.ts +14 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +8 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/modes/landing-zone-check.d.ts +3 -0
  20. package/dist/modes/landing-zone-check.d.ts.map +1 -0
  21. package/dist/modes/landing-zone-check.js +52 -0
  22. package/dist/modes/landing-zone-check.js.map +1 -0
  23. package/dist/modes/vision-assist-mode.d.ts +8 -0
  24. package/dist/modes/vision-assist-mode.d.ts.map +1 -0
  25. package/dist/modes/vision-assist-mode.js +2 -0
  26. package/dist/modes/vision-assist-mode.js.map +1 -0
  27. package/dist/orchestrator.d.ts +13 -0
  28. package/dist/orchestrator.d.ts.map +1 -0
  29. package/dist/orchestrator.js +106 -0
  30. package/dist/orchestrator.js.map +1 -0
  31. package/dist/server/status-server.d.ts +23 -0
  32. package/dist/server/status-server.d.ts.map +1 -0
  33. package/dist/server/status-server.js +35 -0
  34. package/dist/server/status-server.js.map +1 -0
  35. package/dist/types.d.ts +55 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/types.js +2 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/vlm/miril-client.d.ts +12 -0
  40. package/dist/vlm/miril-client.d.ts.map +1 -0
  41. package/dist/vlm/miril-client.js +45 -0
  42. package/dist/vlm/miril-client.js.map +1 -0
  43. package/package.json +47 -0
  44. package/proto/action/action.proto +368 -0
  45. package/proto/mavsdk_options.proto +23 -0
  46. package/proto/mission/mission.proto +285 -0
  47. package/proto/telemetry/telemetry.proto +897 -0
@@ -0,0 +1,897 @@
1
+ syntax = "proto3";
2
+
3
+ package mavsdk.rpc.telemetry;
4
+
5
+ import "mavsdk_options.proto";
6
+
7
+ option java_package = "io.mavsdk.telemetry";
8
+ option java_outer_classname = "TelemetryProto";
9
+
10
+ /*
11
+ * Allow users to get vehicle telemetry and state information
12
+ * (e.g. battery, GPS, RC connection, flight mode etc.) and set telemetry update rates.
13
+ * Certain Telemetry Topics such as, Position or Velocity_Ned require GPS Fix before data gets published.
14
+ */
15
+ service TelemetryService {
16
+ // Subscribe to 'position' updates.
17
+ rpc SubscribePosition(SubscribePositionRequest) returns(stream PositionResponse) {}
18
+ // Subscribe to 'home position' updates.
19
+ rpc SubscribeHome(SubscribeHomeRequest) returns(stream HomeResponse) {}
20
+ // Subscribe to in-air updates.
21
+ rpc SubscribeInAir(SubscribeInAirRequest) returns(stream InAirResponse) {}
22
+ // Subscribe to landed state updates
23
+ rpc SubscribeLandedState(SubscribeLandedStateRequest) returns(stream LandedStateResponse) {}
24
+ // Subscribe to armed updates.
25
+ rpc SubscribeArmed(SubscribeArmedRequest) returns(stream ArmedResponse) {}
26
+ // subscribe to vtol state Updates
27
+ rpc SubscribeVtolState(SubscribeVtolStateRequest) returns(stream VtolStateResponse) {}
28
+ // Subscribe to 'attitude' updates (quaternion).
29
+ rpc SubscribeAttitudeQuaternion(SubscribeAttitudeQuaternionRequest) returns(stream AttitudeQuaternionResponse) {}
30
+ // Subscribe to 'attitude' updates (Euler).
31
+ rpc SubscribeAttitudeEuler(SubscribeAttitudeEulerRequest) returns(stream AttitudeEulerResponse) {}
32
+ // Subscribe to 'attitude' updates (angular velocity)
33
+ rpc SubscribeAttitudeAngularVelocityBody(SubscribeAttitudeAngularVelocityBodyRequest) returns(stream AttitudeAngularVelocityBodyResponse) {}
34
+ // Subscribe to 'ground speed' updates (NED).
35
+ rpc SubscribeVelocityNed(SubscribeVelocityNedRequest) returns(stream VelocityNedResponse) {}
36
+ // Subscribe to 'GPS info' updates.
37
+ rpc SubscribeGpsInfo(SubscribeGpsInfoRequest) returns(stream GpsInfoResponse) {}
38
+ // Subscribe to 'Raw GPS' updates.
39
+ rpc SubscribeRawGps(SubscribeRawGpsRequest) returns(stream RawGpsResponse) {}
40
+ // Subscribe to 'battery' updates.
41
+ rpc SubscribeBattery(SubscribeBatteryRequest) returns(stream BatteryResponse) {}
42
+ // Subscribe to 'flight mode' updates.
43
+ rpc SubscribeFlightMode(SubscribeFlightModeRequest) returns(stream FlightModeResponse) {}
44
+ // Subscribe to 'health' updates.
45
+ rpc SubscribeHealth(SubscribeHealthRequest) returns(stream HealthResponse) {}
46
+ // Subscribe to 'RC status' updates.
47
+ rpc SubscribeRcStatus(SubscribeRcStatusRequest) returns(stream RcStatusResponse) {}
48
+ // Subscribe to 'status text' updates.
49
+ rpc SubscribeStatusText(SubscribeStatusTextRequest) returns(stream StatusTextResponse) {}
50
+ // Subscribe to 'actuator control target' updates.
51
+ rpc SubscribeActuatorControlTarget(SubscribeActuatorControlTargetRequest) returns(stream ActuatorControlTargetResponse) {}
52
+ // Subscribe to 'actuator output status' updates.
53
+ rpc SubscribeActuatorOutputStatus(SubscribeActuatorOutputStatusRequest) returns(stream ActuatorOutputStatusResponse) {}
54
+ // Subscribe to 'odometry' updates.
55
+ rpc SubscribeOdometry(SubscribeOdometryRequest) returns(stream OdometryResponse) {}
56
+ // Subscribe to 'position velocity' updates.
57
+ rpc SubscribePositionVelocityNed(SubscribePositionVelocityNedRequest) returns(stream PositionVelocityNedResponse) {}
58
+ // Subscribe to 'ground truth' updates.
59
+ rpc SubscribeGroundTruth(SubscribeGroundTruthRequest) returns(stream GroundTruthResponse) {}
60
+ // Subscribe to 'fixedwing metrics' updates.
61
+ rpc SubscribeFixedwingMetrics(SubscribeFixedwingMetricsRequest) returns(stream FixedwingMetricsResponse) {}
62
+ // Subscribe to 'IMU' updates (in SI units in NED body frame).
63
+ rpc SubscribeImu(SubscribeImuRequest) returns(stream ImuResponse) {}
64
+ // Subscribe to 'Scaled IMU' updates.
65
+ rpc SubscribeScaledImu(SubscribeScaledImuRequest) returns(stream ScaledImuResponse) {}
66
+ // Subscribe to 'Raw IMU' updates (note that units are are incorrect and "raw" as provided by the sensor)
67
+ rpc SubscribeRawImu(SubscribeRawImuRequest) returns(stream RawImuResponse) {}
68
+ // Subscribe to 'HealthAllOk' updates.
69
+ rpc SubscribeHealthAllOk(SubscribeHealthAllOkRequest) returns(stream HealthAllOkResponse) {}
70
+ // Subscribe to 'unix epoch time' updates.
71
+ rpc SubscribeUnixEpochTime(SubscribeUnixEpochTimeRequest) returns(stream UnixEpochTimeResponse) {}
72
+ // Subscribe to 'Distance Sensor' updates.
73
+ rpc SubscribeDistanceSensor(SubscribeDistanceSensorRequest) returns(stream DistanceSensorResponse) {}
74
+ // Subscribe to 'Scaled Pressure' updates.
75
+ rpc SubscribeScaledPressure(SubscribeScaledPressureRequest) returns(stream ScaledPressureResponse) {}
76
+ // Subscribe to 'Heading' updates.
77
+ rpc SubscribeHeading(SubscribeHeadingRequest) returns(stream HeadingResponse) {}
78
+ // Subscribe to 'Altitude' updates.
79
+ rpc SubscribeAltitude(SubscribeAltitudeRequest) returns(stream AltitudeResponse){}
80
+ // Subscribe to 'Wind Estimated' updates.
81
+ rpc SubscribeWind(SubscribeWindRequest) returns(stream WindResponse){}
82
+
83
+ // Set rate to 'position' updates.
84
+ rpc SetRatePosition(SetRatePositionRequest) returns(SetRatePositionResponse) {}
85
+ // Set rate to 'home position' updates.
86
+ rpc SetRateHome(SetRateHomeRequest) returns(SetRateHomeResponse) {}
87
+ // Set rate to in-air updates.
88
+ rpc SetRateInAir(SetRateInAirRequest) returns(SetRateInAirResponse) {}
89
+ // Set rate to landed state updates
90
+ rpc SetRateLandedState(SetRateLandedStateRequest) returns(SetRateLandedStateResponse) {}
91
+ // Set rate to VTOL state updates
92
+ rpc SetRateVtolState(SetRateVtolStateRequest) returns(SetRateVtolStateResponse) {}
93
+ // Set rate to 'attitude euler angle' updates.
94
+ rpc SetRateAttitudeQuaternion(SetRateAttitudeQuaternionRequest) returns(SetRateAttitudeQuaternionResponse) {}
95
+ // Set rate to 'attitude quaternion' updates.
96
+ rpc SetRateAttitudeEuler(SetRateAttitudeEulerRequest) returns(SetRateAttitudeEulerResponse) {}
97
+ // Set rate of camera attitude updates.
98
+ // Set rate to 'ground speed' updates (NED).
99
+ rpc SetRateVelocityNed(SetRateVelocityNedRequest) returns(SetRateVelocityNedResponse) {}
100
+ // Set rate to 'GPS info' updates.
101
+ rpc SetRateGpsInfo(SetRateGpsInfoRequest) returns(SetRateGpsInfoResponse) {}
102
+ // Set rate to 'Raw GPS' updates.
103
+ rpc SetRateRawGps(SetRateRawGpsRequest) returns(SetRateRawGpsResponse) {}
104
+ // Set rate to 'battery' updates.
105
+ rpc SetRateBattery(SetRateBatteryRequest) returns(SetRateBatteryResponse) {}
106
+ // Set rate to 'RC status' updates.
107
+ rpc SetRateRcStatus(SetRateRcStatusRequest) returns(SetRateRcStatusResponse) {}
108
+ // Set rate to 'actuator control target' updates.
109
+ rpc SetRateActuatorControlTarget(SetRateActuatorControlTargetRequest) returns(SetRateActuatorControlTargetResponse) {}
110
+ // Set rate to 'actuator output status' updates.
111
+ rpc SetRateActuatorOutputStatus(SetRateActuatorOutputStatusRequest) returns(SetRateActuatorOutputStatusResponse) {}
112
+ // Set rate to 'odometry' updates.
113
+ rpc SetRateOdometry(SetRateOdometryRequest) returns(SetRateOdometryResponse) {}
114
+ // Set rate to 'position velocity' updates.
115
+ rpc SetRatePositionVelocityNed(SetRatePositionVelocityNedRequest) returns(SetRatePositionVelocityNedResponse) {}
116
+ // Set rate to 'ground truth' updates.
117
+ rpc SetRateGroundTruth(SetRateGroundTruthRequest) returns(SetRateGroundTruthResponse) {}
118
+ // Set rate to 'fixedwing metrics' updates.
119
+ rpc SetRateFixedwingMetrics(SetRateFixedwingMetricsRequest) returns(SetRateFixedwingMetricsResponse) {}
120
+ // Set rate to 'IMU' updates.
121
+ rpc SetRateImu(SetRateImuRequest) returns(SetRateImuResponse) {}
122
+ // Set rate to 'Scaled IMU' updates.
123
+ rpc SetRateScaledImu(SetRateScaledImuRequest) returns(SetRateScaledImuResponse) {}
124
+ // Set rate to 'Raw IMU' updates.
125
+ rpc SetRateRawImu(SetRateRawImuRequest) returns(SetRateRawImuResponse) {}
126
+ // Set rate to 'unix epoch time' updates.
127
+ rpc SetRateUnixEpochTime(SetRateUnixEpochTimeRequest) returns(SetRateUnixEpochTimeResponse) {}
128
+ // Set rate to 'Distance Sensor' updates.
129
+ rpc SetRateDistanceSensor(SetRateDistanceSensorRequest) returns(SetRateDistanceSensorResponse) {}
130
+ // Set rate to 'Altitude' updates.
131
+ rpc SetRateAltitude(SetRateAltitudeRequest) returns(SetRateAltitudeResponse){}
132
+ // Set rate to 'Health' updates.
133
+ rpc SetRateHealth(SetRateHealthRequest) returns(SetRateHealthResponse){}
134
+
135
+ // Get the GPS location of where the estimator has been initialized.
136
+ rpc GetGpsGlobalOrigin(GetGpsGlobalOriginRequest) returns(GetGpsGlobalOriginResponse) {}
137
+
138
+
139
+ }
140
+
141
+ message SubscribePositionRequest {}
142
+ message PositionResponse {
143
+ Position position = 1; // The next position
144
+ }
145
+
146
+ message SubscribeHomeRequest {}
147
+ message HomeResponse {
148
+ HomePosition home = 1; // The next home position
149
+ }
150
+
151
+ message SubscribeInAirRequest {}
152
+ message InAirResponse {
153
+ bool is_in_air = 1; // The next 'in-air' state
154
+ }
155
+
156
+ message SubscribeLandedStateRequest {}
157
+ message LandedStateResponse {
158
+ LandedState landed_state = 1; // The next 'landed' state
159
+ }
160
+
161
+ message SubscribeArmedRequest {}
162
+ message ArmedResponse {
163
+ bool is_armed = 1; // The next 'armed' state
164
+ }
165
+
166
+ message SubscribeVtolStateRequest {}
167
+ message VtolStateResponse {
168
+ VtolState vtol_state = 1; // The next 'vtol' state
169
+ }
170
+
171
+ message SubscribeAttitudeQuaternionRequest {}
172
+ message AttitudeQuaternionResponse {
173
+ Quaternion attitude_quaternion = 1; // The next attitude (quaternion)
174
+ }
175
+
176
+ message SubscribeAttitudeEulerRequest {}
177
+ message AttitudeEulerResponse {
178
+ EulerAngle attitude_euler = 1; // The next attitude (Euler)
179
+ }
180
+
181
+ message SubscribeAttitudeAngularVelocityBodyRequest {}
182
+ message AttitudeAngularVelocityBodyResponse {
183
+ AngularVelocityBody attitude_angular_velocity_body = 1; // The next angular velocity (rad/s)
184
+ }
185
+
186
+ message SubscribeVelocityNedRequest {}
187
+ message VelocityNedResponse {
188
+ VelocityNed velocity_ned = 1; // The next velocity (NED)
189
+ }
190
+
191
+ message SubscribeGpsInfoRequest {}
192
+ message GpsInfoResponse {
193
+ GpsInfo gps_info = 1; // The next 'GPS info' state
194
+ }
195
+
196
+ message SubscribeRawGpsRequest {}
197
+ message RawGpsResponse {
198
+ RawGps raw_gps = 1; // The next 'Raw GPS' state. Warning: this is an advanced feature, use `Position` updates to get the location of the drone!
199
+ }
200
+
201
+ message SubscribeBatteryRequest {}
202
+ message BatteryResponse {
203
+ Battery battery = 1; // The next 'battery' state
204
+ }
205
+
206
+ message SubscribeFlightModeRequest {}
207
+ message FlightModeResponse {
208
+ FlightMode flight_mode = 1; // The next flight mode
209
+ }
210
+
211
+ message SubscribeHealthRequest {}
212
+ message HealthResponse {
213
+ Health health = 1; // The next 'health' state
214
+ }
215
+
216
+ message SubscribeRcStatusRequest {}
217
+ message RcStatusResponse {
218
+ RcStatus rc_status = 1; // The next RC status
219
+ }
220
+
221
+ message SubscribeStatusTextRequest {}
222
+ message StatusTextResponse {
223
+ StatusText status_text = 1; // The next 'status text'
224
+ }
225
+
226
+ message SubscribeActuatorControlTargetRequest {}
227
+ message ActuatorControlTargetResponse {
228
+ ActuatorControlTarget actuator_control_target = 1; // The next actuator control target
229
+ }
230
+
231
+ message SubscribeActuatorOutputStatusRequest {}
232
+ message ActuatorOutputStatusResponse {
233
+ ActuatorOutputStatus actuator_output_status = 1; // The next actuator output status
234
+ }
235
+
236
+ message SubscribeOdometryRequest {}
237
+ message OdometryResponse {
238
+ Odometry odometry = 1; // The next odometry status
239
+ }
240
+
241
+ message SubscribePositionVelocityNedRequest {}
242
+ message PositionVelocityNedResponse {
243
+ PositionVelocityNed position_velocity_ned = 1; // The next position and velocity status
244
+ }
245
+
246
+ message SubscribeGroundTruthRequest {}
247
+ message GroundTruthResponse {
248
+ GroundTruth ground_truth = 1; // Ground truth position information available in simulation
249
+ }
250
+
251
+ message SubscribeFixedwingMetricsRequest {}
252
+ message FixedwingMetricsResponse {
253
+ FixedwingMetrics fixedwing_metrics = 1; // The next fixedwing metrics
254
+ }
255
+
256
+ message SubscribeImuRequest {}
257
+ message ImuResponse {
258
+ Imu imu = 1; // The next IMU status
259
+ }
260
+
261
+ message SubscribeScaledImuRequest {}
262
+ message ScaledImuResponse {
263
+ Imu imu = 1; // The next scaled IMU status
264
+ }
265
+
266
+ message SubscribeRawImuRequest {}
267
+ message RawImuResponse {
268
+ Imu imu = 1; // The next raw IMU status
269
+ }
270
+
271
+ message SubscribeHealthAllOkRequest {}
272
+ message HealthAllOkResponse {
273
+ bool is_health_all_ok = 1; // The next 'health all ok' status
274
+ }
275
+
276
+ message SubscribeUnixEpochTimeRequest {}
277
+ message UnixEpochTimeResponse {
278
+ uint64 time_us = 1; // The next 'unix epoch time' status
279
+ }
280
+
281
+ message SubscribeDistanceSensorRequest {}
282
+ message DistanceSensorResponse {
283
+ DistanceSensor distance_sensor = 1; // The next Distance Sensor status
284
+ }
285
+
286
+ message SubscribeScaledPressureRequest {}
287
+ message ScaledPressureResponse {
288
+ ScaledPressure scaled_pressure = 1; // The next Scaled Pressure status
289
+ }
290
+
291
+ message SubscribeHeadingRequest {}
292
+ message HeadingResponse {
293
+ Heading heading_deg = 1; // The next heading (yaw) in degrees
294
+ }
295
+
296
+ message SubscribeAltitudeRequest {}
297
+ message AltitudeResponse {
298
+ Altitude altitude = 1; // The next altitude
299
+ }
300
+
301
+ message SubscribeWindRequest {}
302
+ message WindResponse {
303
+ Wind wind = 1; // The next wind
304
+ }
305
+
306
+ message SetRatePositionRequest {
307
+ double rate_hz = 1; // The requested rate (in Hertz)
308
+ }
309
+ message SetRatePositionResponse {
310
+ TelemetryResult telemetry_result = 1;
311
+ }
312
+
313
+ message SetRateHomeRequest {
314
+ double rate_hz = 1; // The requested rate (in Hertz)
315
+ }
316
+ message SetRateHomeResponse {
317
+ TelemetryResult telemetry_result = 1;
318
+ }
319
+
320
+ message SetRateInAirRequest {
321
+ double rate_hz = 1; // The requested rate (in Hertz)
322
+ }
323
+ message SetRateInAirResponse {
324
+ TelemetryResult telemetry_result = 1;
325
+ }
326
+
327
+ message SetRateLandedStateRequest {
328
+ double rate_hz = 1; // The requested rate (in Hertz)
329
+ }
330
+ message SetRateLandedStateResponse {
331
+ TelemetryResult telemetry_result = 1;
332
+ }
333
+
334
+ message SetRateVtolStateRequest {
335
+ double rate_hz = 1; // The requested rate (in Hertz)
336
+ }
337
+ message SetRateVtolStateResponse {
338
+ TelemetryResult telemetry_result = 1;
339
+ }
340
+
341
+ message SetRateAttitudeEulerRequest {
342
+ double rate_hz = 1; // The requested rate (in Hertz)
343
+ }
344
+ message SetRateAttitudeEulerResponse {
345
+ TelemetryResult telemetry_result = 1;
346
+ }
347
+
348
+ message SetRateAttitudeQuaternionRequest {
349
+ double rate_hz = 1; // The requested rate (in Hertz)
350
+ }
351
+ message SetRateAttitudeQuaternionResponse {
352
+ TelemetryResult telemetry_result = 1;
353
+ }
354
+
355
+ message SetRateAttitudeAngularVelocityBodyRequest {
356
+ double rate_hz = 1; // The requested rate (in Hertz)
357
+ }
358
+ message SetRateAttitudeAngularVelocityBodyResponse {
359
+ TelemetryResult telemetry_result = 1;
360
+ }
361
+
362
+ message SetRateVelocityNedRequest {
363
+ double rate_hz = 1; // The requested rate (in Hertz)
364
+ }
365
+ message SetRateVelocityNedResponse {
366
+ TelemetryResult telemetry_result = 1;
367
+ }
368
+
369
+ message SetRateGpsInfoRequest {
370
+ double rate_hz = 1; // The requested rate (in Hertz)
371
+ }
372
+ message SetRateGpsInfoResponse {
373
+ TelemetryResult telemetry_result = 1;
374
+ }
375
+
376
+ message SetRateRawGpsRequest {
377
+ double rate_hz = 1; // The requested rate (in Hertz)
378
+ }
379
+ message SetRateRawGpsResponse {
380
+ TelemetryResult telemetry_result = 1;
381
+ }
382
+
383
+ message SetRateBatteryRequest {
384
+ double rate_hz = 1; // The requested rate (in Hertz)
385
+ }
386
+ message SetRateBatteryResponse {
387
+ TelemetryResult telemetry_result = 1;
388
+ }
389
+
390
+ message SetRateRcStatusRequest {
391
+ double rate_hz = 1; // The requested rate (in Hertz)
392
+ }
393
+ message SetRateRcStatusResponse {
394
+ TelemetryResult telemetry_result = 1;
395
+ }
396
+
397
+ message SetRateActuatorControlTargetRequest {
398
+ double rate_hz = 1; // The requested rate (in Hertz)
399
+ }
400
+ message SetRateActuatorControlTargetResponse {
401
+ TelemetryResult telemetry_result = 1;
402
+ }
403
+
404
+ message SetRateActuatorOutputStatusRequest {
405
+ double rate_hz = 1; // The requested rate (in Hertz)
406
+ }
407
+ message SetRateActuatorOutputStatusResponse {
408
+ TelemetryResult telemetry_result = 1;
409
+ }
410
+
411
+ message SetRateOdometryRequest {
412
+ double rate_hz = 1; // The requested rate (in Hertz)
413
+ }
414
+ message SetRateOdometryResponse {
415
+ TelemetryResult telemetry_result = 1;
416
+ }
417
+
418
+ message SetRatePositionVelocityNedRequest {
419
+ double rate_hz = 1; // The requested rate (in Hertz)
420
+ }
421
+ message SetRatePositionVelocityNedResponse {
422
+ TelemetryResult telemetry_result = 1;
423
+ }
424
+
425
+ message SetRateGroundTruthRequest {
426
+ double rate_hz = 1; // The requested rate (in Hertz)
427
+ }
428
+ message SetRateGroundTruthResponse {
429
+ TelemetryResult telemetry_result = 1;
430
+ }
431
+
432
+ message SetRateFixedwingMetricsRequest {
433
+ double rate_hz = 1; // The requested rate (in Hertz)
434
+ }
435
+ message SetRateFixedwingMetricsResponse {
436
+ TelemetryResult telemetry_result = 1;
437
+ }
438
+
439
+ message SetRateImuRequest {
440
+ double rate_hz = 1; // The requested rate (in Hertz)
441
+ }
442
+ message SetRateImuResponse {
443
+ TelemetryResult telemetry_result = 1;
444
+ }
445
+
446
+ message SetRateScaledImuRequest {
447
+ double rate_hz = 1; // The requested rate (in Hertz)
448
+ }
449
+ message SetRateScaledImuResponse {
450
+ TelemetryResult telemetry_result = 1;
451
+ }
452
+
453
+ message SetRateRawImuRequest {
454
+ double rate_hz = 1; // The requested rate (in Hertz)
455
+ }
456
+ message SetRateRawImuResponse {
457
+ TelemetryResult telemetry_result = 1;
458
+ }
459
+
460
+ message SetRateUnixEpochTimeRequest {
461
+ double rate_hz = 1; // The requested rate (in Hertz)
462
+ }
463
+ message SetRateUnixEpochTimeResponse {
464
+ TelemetryResult telemetry_result = 1;
465
+ }
466
+
467
+ message SetRateDistanceSensorRequest {
468
+ double rate_hz = 1; // The requested rate (in Hertz)
469
+ }
470
+ message SetRateDistanceSensorResponse {
471
+ TelemetryResult telemetry_result = 1;
472
+ }
473
+
474
+ message GetGpsGlobalOriginRequest {}
475
+ message GetGpsGlobalOriginResponse {
476
+ TelemetryResult telemetry_result = 1;
477
+ GpsGlobalOrigin gps_global_origin = 2;
478
+ }
479
+
480
+ message SetRateAltitudeRequest {
481
+ double rate_hz = 1; // The requested rate (in Hertz)
482
+ }
483
+ message SetRateAltitudeResponse {
484
+ TelemetryResult telemetry_result = 1;
485
+ }
486
+
487
+ message SetRateHealthRequest {
488
+ double rate_hz = 1; // The requested rate (in Hertz)
489
+ }
490
+ message SetRateHealthResponse {
491
+ TelemetryResult telemetry_result = 1;
492
+ }
493
+
494
+ // Position type in global coordinates.
495
+ message Position {
496
+ double latitude_deg = 1 [(mavsdk.options.default_value)="NaN"]; // Latitude in degrees (range: -90 to +90)
497
+ double longitude_deg = 2 [(mavsdk.options.default_value)="NaN"]; // Longitude in degrees (range: -180 to +180)
498
+ float absolute_altitude_m = 3 [(mavsdk.options.default_value)="NaN"]; // Altitude AMSL (above mean sea level) in metres
499
+ float relative_altitude_m = 4 [(mavsdk.options.default_value)="NaN"]; // Altitude relative to takeoff altitude in metres
500
+ }
501
+
502
+ // Heading type used for global position
503
+ message Heading {
504
+ double heading_deg = 1 [(mavsdk.options.default_value)="NaN"]; // Heading in degrees (range: 0 to +360)
505
+ }
506
+
507
+ /*
508
+ * Quaternion type.
509
+ *
510
+ * All rotations and axis systems follow the right-hand rule.
511
+ * The Hamilton quaternion product definition is used.
512
+ * A zero-rotation quaternion is represented by (1,0,0,0).
513
+ * The quaternion could also be written as w + xi + yj + zk.
514
+ *
515
+ * For more info see: https://en.wikipedia.org/wiki/Quaternion
516
+ */
517
+ message Quaternion {
518
+ float w = 1 [(mavsdk.options.default_value)="NaN"]; // Quaternion entry 0, also denoted as a
519
+ float x = 2 [(mavsdk.options.default_value)="NaN"]; // Quaternion entry 1, also denoted as b
520
+ float y = 3 [(mavsdk.options.default_value)="NaN"]; // Quaternion entry 2, also denoted as c
521
+ float z = 4 [(mavsdk.options.default_value)="NaN"]; // Quaternion entry 3, also denoted as d
522
+ uint64 timestamp_us = 5; // Timestamp in microseconds
523
+ }
524
+
525
+ /*
526
+ * Home position type.
527
+ *
528
+ * Includes the global GPS position, local NED position, surface quaternion,
529
+ * and approach vector from the MAVLink HOME_POSITION message.
530
+ */
531
+ message HomePosition {
532
+ uint64 timestamp_us = 1; // Timestamp (UNIX Epoch or since system boot) in microseconds
533
+ double latitude_deg = 2 [(mavsdk.options.default_value)="NaN"]; // Latitude in degrees (range: -90 to +90)
534
+ double longitude_deg = 3 [(mavsdk.options.default_value)="NaN"]; // Longitude in degrees (range: -180 to +180)
535
+ float absolute_altitude_m = 4 [(mavsdk.options.default_value)="NaN"]; // Altitude AMSL (above mean sea level) in metres
536
+ float relative_altitude_m = 5 [(mavsdk.options.default_value)="NaN"]; // Altitude relative to takeoff altitude in metres
537
+ float local_north_m = 6 [(mavsdk.options.default_value)="NaN"]; // Local North position in NED frame (m)
538
+ float local_east_m = 7 [(mavsdk.options.default_value)="NaN"]; // Local East position in NED frame (m)
539
+ float local_down_m = 8 [(mavsdk.options.default_value)="NaN"]; // Local Down position in NED frame (m, positive down)
540
+ Quaternion q = 9; // Surface quaternion (world-to-surface-normal and heading)
541
+ float approach_north_m = 10 [(mavsdk.options.default_value)="NaN"]; // Local North position of the approach vector end in NED frame (m)
542
+ float approach_east_m = 11 [(mavsdk.options.default_value)="NaN"]; // Local East position of the approach vector end in NED frame (m)
543
+ float approach_down_m = 12 [(mavsdk.options.default_value)="NaN"]; // Local Down position of the approach vector end in NED frame (m)
544
+ }
545
+
546
+ /*
547
+ * Euler angle type.
548
+ *
549
+ * All rotations and axis systems follow the right-hand rule.
550
+ * The Euler angles follow the convention of a 3-2-1 intrinsic Tait-Bryan rotation sequence.
551
+ *
552
+ * For more info see https://en.wikipedia.org/wiki/Euler_angles
553
+ */
554
+ message EulerAngle {
555
+ float roll_deg = 1 [(mavsdk.options.default_value)="NaN"]; // Roll angle in degrees, positive is banking to the right
556
+ float pitch_deg = 2 [(mavsdk.options.default_value)="NaN"]; // Pitch angle in degrees, positive is pitching nose up
557
+ float yaw_deg = 3 [(mavsdk.options.default_value)="NaN"]; // Yaw angle in degrees, positive is clock-wise seen from above
558
+ uint64 timestamp_us = 4; // Timestamp in microseconds
559
+ }
560
+
561
+ // Angular velocity type.
562
+ message AngularVelocityBody {
563
+ float roll_rad_s = 1 [(mavsdk.options.default_value)="NaN"]; // Roll angular velocity
564
+ float pitch_rad_s = 2 [(mavsdk.options.default_value)="NaN"]; // Pitch angular velocity
565
+ float yaw_rad_s = 3 [(mavsdk.options.default_value)="NaN"]; // Yaw angular velocity
566
+ }
567
+
568
+ // GPS information type.
569
+ message GpsInfo {
570
+ int32 num_satellites = 1 [(mavsdk.options.default_value)="0"]; // Number of visible satellites in use
571
+ FixType fix_type = 2; // Fix type
572
+ }
573
+
574
+ /*
575
+ * Raw GPS information type.
576
+ *
577
+ * Warning: this is an advanced type! If you want the location of the drone, use
578
+ * the position instead. This message exposes the raw values of the GNSS sensor.
579
+ */
580
+ message RawGps {
581
+ uint64 timestamp_us = 1; // Timestamp in microseconds (UNIX Epoch time or time since system boot, to be inferred)
582
+ double latitude_deg = 2; // Latitude in degrees (WGS84, EGM96 ellipsoid)
583
+ double longitude_deg = 3; // Longitude in degrees (WGS84, EGM96 ellipsoid)
584
+ float absolute_altitude_m = 4; // Altitude AMSL (above mean sea level) in metres
585
+ float hdop = 5; // GPS HDOP horizontal dilution of position (unitless). If unknown, set to NaN
586
+ float vdop = 6; // GPS VDOP vertical dilution of position (unitless). If unknown, set to NaN
587
+ float velocity_m_s = 7; // Ground velocity in metres per second
588
+ float cog_deg = 8; // Course over ground (NOT heading, but direction of movement) in degrees. If unknown, set to NaN
589
+ float altitude_ellipsoid_m = 9; // Altitude in metres (above WGS84, EGM96 ellipsoid)
590
+ float horizontal_uncertainty_m = 10; // Position uncertainty in metres
591
+ float vertical_uncertainty_m = 11; // Altitude uncertainty in metres
592
+ float velocity_uncertainty_m_s = 12; // Velocity uncertainty in metres per second
593
+ float heading_uncertainty_deg = 13; // Heading uncertainty in degrees
594
+ float yaw_deg = 14; // Yaw in earth frame from north.
595
+ }
596
+
597
+ // GPS fix type.
598
+ enum FixType {
599
+ FIX_TYPE_NO_GPS = 0; // No GPS connected
600
+ FIX_TYPE_NO_FIX = 1; // No position information, GPS is connected
601
+ FIX_TYPE_FIX_2D = 2; // 2D position
602
+ FIX_TYPE_FIX_3D = 3; // 3D position
603
+ FIX_TYPE_FIX_DGPS = 4; // DGPS/SBAS aided 3D position
604
+ FIX_TYPE_RTK_FLOAT = 5; // RTK float, 3D position
605
+ FIX_TYPE_RTK_FIXED = 6; // RTK Fixed, 3D position
606
+ }
607
+
608
+ // Battery function type.
609
+ enum BatteryFunction {
610
+ BATTERY_FUNCTION_UNKNOWN = 0; // Battery function is unknown
611
+ BATTERY_FUNCTION_ALL = 1; // Battery supports all flight systems
612
+ BATTERY_FUNCTION_PROPULSION = 2; // Battery for the propulsion system
613
+ BATTERY_FUNCTION_AVIONICS = 3; // Avionics battery
614
+ BATTERY_FUNCTION_PAYLOAD = 4; // Payload battery
615
+
616
+ }
617
+
618
+ // Battery type.
619
+ message Battery {
620
+ uint32 id = 1 [(mavsdk.options.default_value)="0"]; // Battery ID, for systems with multiple batteries
621
+ float temperature_degc = 2 [(mavsdk.options.default_value)="NaN"]; // Temperature of the battery in degrees Celsius. NAN for unknown temperature
622
+ float voltage_v = 3 [(mavsdk.options.default_value)="NaN"]; // Voltage in volts
623
+ float current_battery_a = 4 [(mavsdk.options.default_value)="NaN"]; // Battery current in Amps, NAN if autopilot does not measure the current
624
+ float capacity_consumed_ah = 5 [(mavsdk.options.default_value)="NaN"]; // Consumed charge in Amp hours, NAN if autopilot does not provide consumption estimate
625
+ float remaining_percent = 6 [(mavsdk.options.default_value)="NaN"]; // Estimated battery remaining (range: 0 to 100)
626
+ float time_remaining_s = 7 [(mavsdk.options.default_value)="NaN"]; // Estimated battery usage time remaining
627
+ BatteryFunction battery_function = 8; // Function of the battery
628
+ }
629
+
630
+ /*
631
+ * Flight modes.
632
+ *
633
+ * For more information about flight modes, check out
634
+ * https://docs.px4.io/master/en/config/flight_mode.html.
635
+ */
636
+ enum FlightMode {
637
+ FLIGHT_MODE_UNKNOWN = 0; // Mode not known
638
+ FLIGHT_MODE_READY = 1; // Armed and ready to take off
639
+ FLIGHT_MODE_TAKEOFF = 2; // Taking off
640
+ FLIGHT_MODE_HOLD = 3; // Holding (hovering in place (or circling for fixed-wing vehicles)
641
+ FLIGHT_MODE_MISSION = 4; // In mission
642
+ FLIGHT_MODE_RETURN_TO_LAUNCH = 5; // Returning to launch position (then landing)
643
+ FLIGHT_MODE_LAND = 6; // Landing
644
+ FLIGHT_MODE_OFFBOARD = 7; // In 'offboard' mode
645
+ FLIGHT_MODE_FOLLOW_ME = 8; // In 'follow-me' mode
646
+ FLIGHT_MODE_MANUAL = 9; // In 'Manual' mode
647
+ FLIGHT_MODE_ALTCTL = 10; // In 'Altitude Control' mode
648
+ FLIGHT_MODE_POSCTL = 11; // In 'Position Control' mode
649
+ FLIGHT_MODE_ACRO = 12; // In 'Acro' mode
650
+ FLIGHT_MODE_STABILIZED = 13; // In 'Stabilize' mode
651
+ FLIGHT_MODE_RATTITUDE = 14; // In 'Rattitude' mode
652
+ }
653
+
654
+ // Health type.
655
+ message Health {
656
+ bool is_gyrometer_calibration_ok = 1 [(mavsdk.options.default_value)="false"]; // True if the gyrometer is calibrated
657
+ bool is_accelerometer_calibration_ok = 2 [(mavsdk.options.default_value)="false"]; // True if the accelerometer is calibrated
658
+ bool is_magnetometer_calibration_ok = 3 [(mavsdk.options.default_value)="false"]; // True if the magnetometer is calibrated
659
+ bool is_local_position_ok = 5 [(mavsdk.options.default_value)="false"]; // True if the local position estimate is good enough to fly in 'position control' mode
660
+ bool is_global_position_ok = 6 [(mavsdk.options.default_value)="false"]; // True if the global position estimate is good enough to fly in 'position control' mode
661
+ bool is_home_position_ok = 7 [(mavsdk.options.default_value)="false"]; // True if the home position has been initialized properly
662
+ bool is_armable = 8 [(mavsdk.options.default_value)="false"]; // True if system can be armed
663
+ }
664
+
665
+ // Remote control status type.
666
+ message RcStatus {
667
+ bool was_available_once = 1 [(mavsdk.options.default_value)="false"]; // True if an RC signal has been available once
668
+ bool is_available = 2 [(mavsdk.options.default_value)="false"]; // True if the RC signal is available now
669
+ float signal_strength_percent = 3 [(mavsdk.options.default_value)="NaN"]; // Signal strength (range: 0 to 100, NaN if unknown)
670
+ }
671
+
672
+ // Status types.
673
+ enum StatusTextType {
674
+ STATUS_TEXT_TYPE_DEBUG = 0; // Debug
675
+ STATUS_TEXT_TYPE_INFO = 1; // Information
676
+ STATUS_TEXT_TYPE_NOTICE = 2; // Notice
677
+ STATUS_TEXT_TYPE_WARNING = 3; // Warning
678
+ STATUS_TEXT_TYPE_ERROR = 4; // Error
679
+ STATUS_TEXT_TYPE_CRITICAL = 5; // Critical
680
+ STATUS_TEXT_TYPE_ALERT = 6; // Alert
681
+ STATUS_TEXT_TYPE_EMERGENCY = 7; // Emergency
682
+ }
683
+
684
+ // StatusText information type.
685
+ message StatusText {
686
+ StatusTextType type = 1; // Message type
687
+ string text = 2; // MAVLink status message
688
+ }
689
+
690
+ // Actuator control target type.
691
+ message ActuatorControlTarget {
692
+ int32 group = 1 [(mavsdk.options.default_value)="0"]; // An actuator control group is e.g. 'attitude' for the core flight controls, or 'gimbal' for a payload.
693
+ repeated float controls = 2; // Controls normed from -1 to 1, where 0 is neutral position.
694
+ }
695
+
696
+ // Actuator output status type.
697
+ message ActuatorOutputStatus {
698
+ uint32 active = 1 [(mavsdk.options.default_value)="0"]; // Active outputs
699
+ repeated float actuator = 2; // Servo/motor output values
700
+ }
701
+
702
+ // Landed State enumeration.
703
+ enum LandedState {
704
+ LANDED_STATE_UNKNOWN = 0; // Landed state is unknown
705
+ LANDED_STATE_ON_GROUND = 1; // The vehicle is on the ground
706
+ LANDED_STATE_IN_AIR = 2; // The vehicle is in the air
707
+ LANDED_STATE_TAKING_OFF = 3; // The vehicle is taking off
708
+ LANDED_STATE_LANDING = 4; // The vehicle is landing
709
+ }
710
+
711
+ // VTOL State enumeration
712
+ enum VtolState {
713
+ VTOL_STATE_UNDEFINED = 0; // MAV is not configured as VTOL
714
+ VTOL_STATE_TRANSITION_TO_FW = 1; // VTOL is in transition from multicopter to fixed-wing
715
+ VTOL_STATE_TRANSITION_TO_MC = 2; // VTOL is in transition from fixed-wing to multicopter
716
+ VTOL_STATE_MC = 3; // VTOL is in multicopter state
717
+ VTOL_STATE_FW = 4; // VTOL is in fixed-wing state
718
+ }
719
+
720
+ /*
721
+ * Covariance type.
722
+ *
723
+ * Row-major representation of a 6x6 cross-covariance matrix
724
+ * upper right triangle.
725
+ * Set first to NaN if unknown.
726
+ */
727
+ message Covariance {
728
+ repeated float covariance_matrix = 1; // Representation of a covariance matrix.
729
+ }
730
+
731
+ // Velocity type, represented in the Body (X Y Z) frame and in metres/second.
732
+ message VelocityBody {
733
+ float x_m_s = 1; // Velocity in X in metres/second
734
+ float y_m_s = 2; // Velocity in Y in metres/second
735
+ float z_m_s = 3; // Velocity in Z in metres/second
736
+ }
737
+
738
+ // Position type, represented in the Body (X Y Z) frame
739
+ message PositionBody {
740
+ float x_m = 1; // X Position in metres.
741
+ float y_m = 2; // Y Position in metres.
742
+ float z_m = 3; // Z Position in metres.
743
+ }
744
+
745
+ // Odometry message type.
746
+ message Odometry {
747
+ // Mavlink frame id
748
+ enum MavFrame {
749
+ MAV_FRAME_UNDEF = 0; // Frame is undefined.
750
+ MAV_FRAME_BODY_NED = 8; // Setpoint in body NED frame. This makes sense if all position control is externalized - e.g. useful to command 2 m/s^2 acceleration to the right.
751
+ MAV_FRAME_VISION_NED = 16; // Odometry local coordinate frame of data given by a vision estimation system, Z-down (x: north, y: east, z: down).
752
+ MAV_FRAME_ESTIM_NED = 18; // Odometry local coordinate frame of data given by an estimator running onboard the vehicle, Z-down (x: north, y: east, z: down).
753
+ }
754
+
755
+ uint64 time_usec = 1; // Timestamp (0 to use Backend timestamp).
756
+ MavFrame frame_id = 2; // Coordinate frame of reference for the pose data.
757
+ MavFrame child_frame_id = 3; // Coordinate frame of reference for the velocity in free space (twist) data.
758
+ PositionBody position_body = 4; // Position.
759
+ Quaternion q = 5; // Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation).
760
+ VelocityBody velocity_body = 6; // Linear velocity (m/s).
761
+ AngularVelocityBody angular_velocity_body = 7; // Angular velocity (rad/s).
762
+ Covariance pose_covariance = 8; // Pose cross-covariance matrix.
763
+ Covariance velocity_covariance = 9; // Velocity cross-covariance matrix.
764
+ }
765
+
766
+ // DistanceSensor message type.
767
+ message DistanceSensor {
768
+ float minimum_distance_m = 1 [(mavsdk.options.default_value)="NaN"]; // Minimum distance the sensor can measure, NaN if unknown.
769
+ float maximum_distance_m = 2 [(mavsdk.options.default_value)="NaN"]; // Maximum distance the sensor can measure, NaN if unknown.
770
+ float current_distance_m = 3 [(mavsdk.options.default_value)="NaN"]; // Current distance reading, NaN if unknown.
771
+ EulerAngle orientation = 4; // Sensor Orientation reading.
772
+ }
773
+
774
+ // Scaled Pressure message type.
775
+ message ScaledPressure {
776
+ uint64 timestamp_us = 1; // Timestamp (time since system boot)
777
+ float absolute_pressure_hpa = 2; // Absolute pressure in hPa
778
+ float differential_pressure_hpa = 3; // Differential pressure 1 in hPa
779
+ float temperature_deg = 4; // Absolute pressure temperature (in celsius)
780
+ float differential_pressure_temperature_deg = 5; // Differential pressure temperature (in celsius, 0 if not available)
781
+ }
782
+
783
+ // PositionNed message type.
784
+ message PositionNed {
785
+ float north_m = 1 [(mavsdk.options.default_value)="NaN"]; // Position along north direction in metres
786
+ float east_m = 2 [(mavsdk.options.default_value)="NaN"]; // Position along east direction in metres
787
+ float down_m = 3 [(mavsdk.options.default_value)="NaN"]; // Position along down direction in metres
788
+ }
789
+
790
+ // VelocityNed message type.
791
+ message VelocityNed {
792
+ float north_m_s = 1; // Velocity along north direction in metres per second
793
+ float east_m_s = 2; // Velocity along east direction in metres per second
794
+ float down_m_s = 3; // Velocity along down direction in metres per second
795
+ }
796
+
797
+ // PositionVelocityNed message type.
798
+ message PositionVelocityNed {
799
+ PositionNed position = 1; // Position (NED)
800
+ VelocityNed velocity = 2; // Velocity (NED)
801
+ }
802
+
803
+ // GroundTruth message type.
804
+ message GroundTruth {
805
+ double latitude_deg = 1 [(mavsdk.options.default_value)="NaN"]; // Latitude in degrees (range: -90 to +90)
806
+ double longitude_deg = 2 [(mavsdk.options.default_value)="NaN"]; // Longitude in degrees (range: -180 to 180)
807
+ float absolute_altitude_m = 3 [(mavsdk.options.default_value)="NaN"]; // Altitude AMSL (above mean sea level) in metres
808
+ uint64 timestamp_us = 4; // Timestamp in microseconds (since system boot)
809
+ }
810
+
811
+ // FixedwingMetrics message type.
812
+ message FixedwingMetrics {
813
+ float airspeed_m_s = 1 [(mavsdk.options.default_value)="NaN"]; // Current indicated airspeed (IAS) in metres per second
814
+ float throttle_percentage = 2 [(mavsdk.options.default_value)="NaN"]; // Current throttle setting (0 to 100)
815
+ float climb_rate_m_s = 3 [(mavsdk.options.default_value)="NaN"]; // Current climb rate in metres per second
816
+ float groundspeed_m_s = 4 [(mavsdk.options.default_value)="NaN"]; // Current groundspeed metres per second
817
+ float heading_deg = 5 [(mavsdk.options.default_value)="NaN"]; // Current heading in compass units (0-360, 0=north)
818
+ float absolute_altitude_m = 6 [(mavsdk.options.default_value)="NaN"]; // Current altitude in metres (MSL)
819
+ }
820
+
821
+ // AccelerationFrd message type.
822
+ message AccelerationFrd {
823
+ float forward_m_s2 = 1 [(mavsdk.options.default_value)="NaN"]; // Acceleration in forward direction in metres per second^2
824
+ float right_m_s2 = 2 [(mavsdk.options.default_value)="NaN"]; // Acceleration in right direction in metres per second^2
825
+ float down_m_s2 = 3 [(mavsdk.options.default_value)="NaN"]; // Acceleration in down direction in metres per second^2
826
+ }
827
+
828
+ // AngularVelocityFrd message type.
829
+ message AngularVelocityFrd {
830
+ float forward_rad_s = 1 [(mavsdk.options.default_value)="NaN"]; // Angular velocity in forward direction in radians per second
831
+ float right_rad_s = 2 [(mavsdk.options.default_value)="NaN"]; // Angular velocity in right direction in radians per second
832
+ float down_rad_s = 3 [(mavsdk.options.default_value)="NaN"]; // Angular velocity in Down direction in radians per second
833
+ }
834
+
835
+ // MagneticFieldFrd message type.
836
+ message MagneticFieldFrd {
837
+ float forward_gauss = 1 [(mavsdk.options.default_value)="NaN"]; // Magnetic field in forward direction measured in Gauss
838
+ float right_gauss = 2 [(mavsdk.options.default_value)="NaN"]; // Magnetic field in East direction measured in Gauss
839
+ float down_gauss = 3 [(mavsdk.options.default_value)="NaN"]; // Magnetic field in Down direction measured in Gauss
840
+ }
841
+
842
+ // Imu message type.
843
+ message Imu {
844
+ AccelerationFrd acceleration_frd = 1; // Acceleration
845
+ AngularVelocityFrd angular_velocity_frd = 2; // Angular velocity
846
+ MagneticFieldFrd magnetic_field_frd = 3; // Magnetic field
847
+ float temperature_degc = 4 [(mavsdk.options.default_value)="NaN"]; // Temperature
848
+ uint64 timestamp_us = 5; // Timestamp in microseconds
849
+ }
850
+
851
+ // Gps global origin type.
852
+ message GpsGlobalOrigin {
853
+ double latitude_deg = 1 [(mavsdk.options.default_value)="NaN"]; // Latitude of the origin
854
+ double longitude_deg = 2 [(mavsdk.options.default_value)="NaN"]; // Longitude of the origin
855
+ float altitude_m = 3 [(mavsdk.options.default_value)="NaN"]; // Altitude AMSL (above mean sea level) in metres
856
+ }
857
+
858
+ // Altitude message type
859
+ message Altitude {
860
+ float altitude_monotonic_m = 1 [(mavsdk.options.default_value)="NaN"]; // Altitude in meters is initialized on system boot and monotonic
861
+ float altitude_amsl_m = 2 [(mavsdk.options.default_value)="NaN"]; // Altitude AMSL (above mean sea level) in meters
862
+ float altitude_local_m = 3 [(mavsdk.options.default_value)="NaN"]; // Local altitude in meters
863
+ float altitude_relative_m = 4 [(mavsdk.options.default_value)="NaN"]; // Altitude above home position in meters
864
+ float altitude_terrain_m = 5 [(mavsdk.options.default_value)="NaN"]; // Altitude above terrain in meters
865
+ float bottom_clearance_m = 6 [(mavsdk.options.default_value)="NaN"]; // This is not the altitude, but the clear space below the system according to the fused clearance estimate in meters.
866
+ uint64 timestamp_us = 7; // Timestamp in microseconds (since system boot)
867
+ }
868
+
869
+ // Wind message type
870
+ message Wind {
871
+ float wind_x_ned_m_s = 1 [(mavsdk.options.default_value)="NaN"]; // Wind in North (NED) direction
872
+ float wind_y_ned_m_s = 2 [(mavsdk.options.default_value)="NaN"]; // Wind in East (NED) direction
873
+ float wind_z_ned_m_s = 3 [(mavsdk.options.default_value)="NaN"]; // Wind in down (NED) direction
874
+ float horizontal_variability_stddev_m_s = 4 [(mavsdk.options.default_value)="NaN"]; // Variability of wind in XY, 1-STD estimated from a 1 Hz lowpassed wind estimate
875
+ float vertical_variability_stddev_m_s = 5 [(mavsdk.options.default_value)="NaN"]; // Variability of wind in Z, 1-STD estimated from a 1 Hz lowpassed wind estimate
876
+ float wind_altitude_msl_m = 6 [(mavsdk.options.default_value)="NaN"]; // Altitude (MSL) that this measurement was taken at
877
+ float horizontal_wind_speed_accuracy_m_s = 7 [(mavsdk.options.default_value)="NaN"]; // Horizontal speed 1-STD accuracy
878
+ float vertical_wind_speed_accuracy_m_s = 8 [(mavsdk.options.default_value)="NaN"]; // Vertical speed 1-STD accuracy
879
+ }
880
+
881
+ // Result type.
882
+ message TelemetryResult {
883
+ // Possible results returned for telemetry requests.
884
+ enum Result {
885
+ RESULT_UNKNOWN = 0; // Unknown result
886
+ RESULT_SUCCESS = 1; // Success: the telemetry command was accepted by the vehicle
887
+ RESULT_NO_SYSTEM = 2; // No system connected
888
+ RESULT_CONNECTION_ERROR = 3; // Connection error
889
+ RESULT_BUSY = 4; // Vehicle is busy
890
+ RESULT_COMMAND_DENIED = 5; // Command refused by vehicle
891
+ RESULT_TIMEOUT = 6; // Request timed out
892
+ RESULT_UNSUPPORTED = 7; // Request not supported
893
+ }
894
+
895
+ Result result = 1; // Result enum value
896
+ string result_str = 2; // Human-readable English string describing the result
897
+ }