@blueyerobotics/protocol-definitions 3.2.0-18bcac11 → 3.2.0-2ad7db62

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.
package/dist/control.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
2
  import { SetAquaTrollConnectionStatus, SetAquaTrollParameterUnit } from "./aquatroll";
3
- import { AutoAltitudeState, AutoDepthState, AutoHeadingState, AutoPilotHeaveState, AutoPilotSurgeYawState, CameraPanTiltZoom, ConnectionDuration, FilterMessage, GenericServo, GripperVelocities, GuestPortRestartInfo, Laser, LatLongPosition, Lights, MotionInput, MultibeamConfig, MultibeamServo, OperatorInfo, PingerConfiguration, RecordOn, ResetPositionSettings, StationKeepingState, StorageLocation, SystemTime, TiltStabilizationState, TiltVelocity, WaterDensity, WeatherVaningState } from "./message_formats";
3
+ import { AutoAltitudeState, AutoDepthState, AutoHeadingState, AutoPilotHeaveState, AutoPilotSurgeYawState, BoundingBox, CameraPanTiltZoom, ConnectionDuration, FilterMessage, GenericServo, GripperVelocities, GuestPortRestartInfo, Laser, LatLongPosition, Lights, MotionInput, MultibeamConfig, MultibeamServo, OperatorInfo, PingerConfiguration, RecordOn, ResetPositionSettings, StationKeepingState, StorageLocation, SystemTime, TiltStabilizationState, TiltVelocity, WaterDensity, WeatherVaningState } from "./message_formats";
4
4
  /**
5
5
  * Control
6
6
  *
@@ -241,6 +241,23 @@ export interface StartLogStreamingCtrl {
241
241
  /** Message sent to stop streaming log entries to the client. */
242
242
  export interface StopLogStreamingCtrl {
243
243
  }
244
+ /**
245
+ * Issue a command to set the single-object tracking (SOT) target.
246
+ *
247
+ * Send a bounding box to start tracking a new target. The CV pipeline will
248
+ * initialize the SOT tracker on the specified region of the video frame.
249
+ */
250
+ export interface SetSotTargetCtrl {
251
+ /** Target bounding box. */
252
+ boundingBox: BoundingBox | undefined;
253
+ /** Width of the frame the bounding box was drawn on. */
254
+ imageWidth: number;
255
+ /** Height of the frame the bounding box was drawn on. */
256
+ imageHeight: number;
257
+ }
258
+ /** Issue a command to clear the single-object tracking (SOT) target (stop tracking). */
259
+ export interface ClearSotTargetCtrl {
260
+ }
244
261
  export declare const MotionInputCtrl: MessageFns<MotionInputCtrl>;
245
262
  export declare const TiltVelocityCtrl: MessageFns<TiltVelocityCtrl>;
246
263
  export declare const LightsCtrl: MessageFns<LightsCtrl>;
@@ -288,6 +305,8 @@ export declare const SetTurbidityFilterCtrl: MessageFns<SetTurbidityFilterCtrl>;
288
305
  export declare const CameraPanTiltZoomCtrl: MessageFns<CameraPanTiltZoomCtrl>;
289
306
  export declare const StartLogStreamingCtrl: MessageFns<StartLogStreamingCtrl>;
290
307
  export declare const StopLogStreamingCtrl: MessageFns<StopLogStreamingCtrl>;
308
+ export declare const SetSotTargetCtrl: MessageFns<SetSotTargetCtrl>;
309
+ export declare const ClearSotTargetCtrl: MessageFns<ClearSotTargetCtrl>;
291
310
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
292
311
  type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
293
312
  [K in keyof T]?: DeepPartial<T[K]>;
package/dist/control.js CHANGED
@@ -5,7 +5,7 @@
5
5
  // protoc v3.21.12
6
6
  // source: control.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.StopLogStreamingCtrl = exports.StartLogStreamingCtrl = exports.CameraPanTiltZoomCtrl = exports.SetTurbidityFilterCtrl = exports.FormatRemovableStorageDeviceCtrl = exports.EndDiveCtrl = exports.StartDiveCtrl = exports.DeactivateMultibeamCtrl = exports.ActivateMultibeamCtrl = exports.SetMultibeamConfigCtrl = exports.SetAquaTrollConnectionStatusCtrl = exports.SetAquaTrollParameterUnitCtrl = exports.RestartGuestPortsCtrl = exports.ActivateGuestPortsCtrl = exports.DeactivateGuestPortsCtrl = exports.MultibeamServoCtrl = exports.GenericServoCtrl = exports.GripperCtrl = exports.SystemTimeCtrl = exports.PingerConfigurationCtrl = exports.WaterDensityCtrl = exports.TiltStabilizationCtrl = exports.CalibrateDvlGyroCtrl = exports.ResetOdometerCtrl = exports.ResetPositionCtrl = exports.ClearMissionCtrl = exports.PauseMissionCtrl = exports.RunMissionCtrl = exports.AutoPilotHeaveCtrl = exports.AutoPilotSurgeYawCtrl = exports.WeatherVaningCtrl = exports.StationKeepingCtrl = exports.AutoAltitudeCtrl = exports.AutoDepthCtrl = exports.AutoHeadingCtrl = exports.FinishCalibrationCtrl = exports.CancelCalibrationCtrl = exports.StartCalibrationCtrl = exports.TakePictureCtrl = exports.RecordCtrl = exports.WatchdogCtrl = exports.PilotGPSPositionCtrl = exports.LaserCtrl = exports.GuestportLightsCtrl = exports.LightsCtrl = exports.TiltVelocityCtrl = exports.MotionInputCtrl = void 0;
8
+ exports.ClearSotTargetCtrl = exports.SetSotTargetCtrl = exports.StopLogStreamingCtrl = exports.StartLogStreamingCtrl = exports.CameraPanTiltZoomCtrl = exports.SetTurbidityFilterCtrl = exports.FormatRemovableStorageDeviceCtrl = exports.EndDiveCtrl = exports.StartDiveCtrl = exports.DeactivateMultibeamCtrl = exports.ActivateMultibeamCtrl = exports.SetMultibeamConfigCtrl = exports.SetAquaTrollConnectionStatusCtrl = exports.SetAquaTrollParameterUnitCtrl = exports.RestartGuestPortsCtrl = exports.ActivateGuestPortsCtrl = exports.DeactivateGuestPortsCtrl = exports.MultibeamServoCtrl = exports.GenericServoCtrl = exports.GripperCtrl = exports.SystemTimeCtrl = exports.PingerConfigurationCtrl = exports.WaterDensityCtrl = exports.TiltStabilizationCtrl = exports.CalibrateDvlGyroCtrl = exports.ResetOdometerCtrl = exports.ResetPositionCtrl = exports.ClearMissionCtrl = exports.PauseMissionCtrl = exports.RunMissionCtrl = exports.AutoPilotHeaveCtrl = exports.AutoPilotSurgeYawCtrl = exports.WeatherVaningCtrl = exports.StationKeepingCtrl = exports.AutoAltitudeCtrl = exports.AutoDepthCtrl = exports.AutoHeadingCtrl = exports.FinishCalibrationCtrl = exports.CancelCalibrationCtrl = exports.StartCalibrationCtrl = exports.TakePictureCtrl = exports.RecordCtrl = exports.WatchdogCtrl = exports.PilotGPSPositionCtrl = exports.LaserCtrl = exports.GuestportLightsCtrl = exports.LightsCtrl = exports.TiltVelocityCtrl = exports.MotionInputCtrl = void 0;
9
9
  /* eslint-disable */
10
10
  const wire_1 = require("@bufbuild/protobuf/wire");
11
11
  const aquatroll_1 = require("./aquatroll");
@@ -2311,6 +2311,128 @@ exports.StopLogStreamingCtrl = {
2311
2311
  return message;
2312
2312
  },
2313
2313
  };
2314
+ function createBaseSetSotTargetCtrl() {
2315
+ return { boundingBox: undefined, imageWidth: 0, imageHeight: 0 };
2316
+ }
2317
+ exports.SetSotTargetCtrl = {
2318
+ encode(message, writer = new wire_1.BinaryWriter()) {
2319
+ if (message.boundingBox !== undefined) {
2320
+ message_formats_1.BoundingBox.encode(message.boundingBox, writer.uint32(10).fork()).join();
2321
+ }
2322
+ if (message.imageWidth !== 0) {
2323
+ writer.uint32(16).uint32(message.imageWidth);
2324
+ }
2325
+ if (message.imageHeight !== 0) {
2326
+ writer.uint32(24).uint32(message.imageHeight);
2327
+ }
2328
+ return writer;
2329
+ },
2330
+ decode(input, length) {
2331
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2332
+ const end = length === undefined ? reader.len : reader.pos + length;
2333
+ const message = createBaseSetSotTargetCtrl();
2334
+ while (reader.pos < end) {
2335
+ const tag = reader.uint32();
2336
+ switch (tag >>> 3) {
2337
+ case 1: {
2338
+ if (tag !== 10) {
2339
+ break;
2340
+ }
2341
+ message.boundingBox = message_formats_1.BoundingBox.decode(reader, reader.uint32());
2342
+ continue;
2343
+ }
2344
+ case 2: {
2345
+ if (tag !== 16) {
2346
+ break;
2347
+ }
2348
+ message.imageWidth = reader.uint32();
2349
+ continue;
2350
+ }
2351
+ case 3: {
2352
+ if (tag !== 24) {
2353
+ break;
2354
+ }
2355
+ message.imageHeight = reader.uint32();
2356
+ continue;
2357
+ }
2358
+ }
2359
+ if ((tag & 7) === 4 || tag === 0) {
2360
+ break;
2361
+ }
2362
+ reader.skip(tag & 7);
2363
+ }
2364
+ return message;
2365
+ },
2366
+ fromJSON(object) {
2367
+ return {
2368
+ boundingBox: isSet(object.boundingBox) ? message_formats_1.BoundingBox.fromJSON(object.boundingBox) : undefined,
2369
+ imageWidth: isSet(object.imageWidth) ? gt.Number(object.imageWidth) : 0,
2370
+ imageHeight: isSet(object.imageHeight) ? gt.Number(object.imageHeight) : 0,
2371
+ };
2372
+ },
2373
+ toJSON(message) {
2374
+ const obj = {};
2375
+ if (message.boundingBox !== undefined) {
2376
+ obj.boundingBox = message_formats_1.BoundingBox.toJSON(message.boundingBox);
2377
+ }
2378
+ if (message.imageWidth !== 0) {
2379
+ obj.imageWidth = Math.round(message.imageWidth);
2380
+ }
2381
+ if (message.imageHeight !== 0) {
2382
+ obj.imageHeight = Math.round(message.imageHeight);
2383
+ }
2384
+ return obj;
2385
+ },
2386
+ create(base) {
2387
+ return exports.SetSotTargetCtrl.fromPartial(base ?? {});
2388
+ },
2389
+ fromPartial(object) {
2390
+ const message = createBaseSetSotTargetCtrl();
2391
+ message.boundingBox = (object.boundingBox !== undefined && object.boundingBox !== null)
2392
+ ? message_formats_1.BoundingBox.fromPartial(object.boundingBox)
2393
+ : undefined;
2394
+ message.imageWidth = object.imageWidth ?? 0;
2395
+ message.imageHeight = object.imageHeight ?? 0;
2396
+ return message;
2397
+ },
2398
+ };
2399
+ function createBaseClearSotTargetCtrl() {
2400
+ return {};
2401
+ }
2402
+ exports.ClearSotTargetCtrl = {
2403
+ encode(_, writer = new wire_1.BinaryWriter()) {
2404
+ return writer;
2405
+ },
2406
+ decode(input, length) {
2407
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2408
+ const end = length === undefined ? reader.len : reader.pos + length;
2409
+ const message = createBaseClearSotTargetCtrl();
2410
+ while (reader.pos < end) {
2411
+ const tag = reader.uint32();
2412
+ switch (tag >>> 3) {
2413
+ }
2414
+ if ((tag & 7) === 4 || tag === 0) {
2415
+ break;
2416
+ }
2417
+ reader.skip(tag & 7);
2418
+ }
2419
+ return message;
2420
+ },
2421
+ fromJSON(_) {
2422
+ return {};
2423
+ },
2424
+ toJSON(_) {
2425
+ const obj = {};
2426
+ return obj;
2427
+ },
2428
+ create(base) {
2429
+ return exports.ClearSotTargetCtrl.fromPartial(base ?? {});
2430
+ },
2431
+ fromPartial(_) {
2432
+ const message = createBaseClearSotTargetCtrl();
2433
+ return message;
2434
+ },
2435
+ };
2314
2436
  const gt = (() => {
2315
2437
  if (typeof globalThis !== "undefined") {
2316
2438
  return globalThis;
@@ -136,6 +136,8 @@ export declare enum NotificationType {
136
136
  NOTIFICATION_TYPE_DVL_HIGH_TEMPERATURE_DETECTED = 31,
137
137
  /** NOTIFICATION_TYPE_DVL_THERMAL_PROTECTION_MODE_DETECTED - DVL thermal protection mode detected. */
138
138
  NOTIFICATION_TYPE_DVL_THERMAL_PROTECTION_MODE_DETECTED = 32,
139
+ /** NOTIFICATION_TYPE_VIDEO_PARTITION_NOT_MOUNTED - Video partition not mounted. */
140
+ NOTIFICATION_TYPE_VIDEO_PARTITION_NOT_MOUNTED = 33,
139
141
  UNRECOGNIZED = -1
140
142
  }
141
143
  export declare function notificationTypeFromJSON(object: any): NotificationType;
@@ -682,6 +684,46 @@ export interface Lights {
682
684
  export interface Laser {
683
685
  /** Laser intensity, any value above 0 turns the laser on (0..1). */
684
686
  value: number;
687
+ /** Modulate the laser at 5Hz for tracking. Only available on Ultra. */
688
+ modulated: boolean;
689
+ }
690
+ /** Point in 2D space. */
691
+ export interface Point2D {
692
+ /** X coordinate of the point (px). */
693
+ x: number;
694
+ /** Y coordinate of the point (px). */
695
+ y: number;
696
+ }
697
+ /**
698
+ * Message representing the detection of scaling lasers in the main camera.
699
+ *
700
+ * The message contains the centroids of the detected dots, the distance between them in pixels,
701
+ * and the confidence of the detection. The dots are detected through temporal DFT analysis of
702
+ * 5 Hz laser modulation, isolating flickering pixels from the static scene background.
703
+ *
704
+ * Only available on Ultra.
705
+ */
706
+ export interface LaserDetection {
707
+ /** True if the laser is detected by the drone. */
708
+ detected: boolean;
709
+ /** First dot centroid (leftmost). */
710
+ dot1: Point2D | undefined;
711
+ /** Second dot centroid (rightmost). */
712
+ dot2: Point2D | undefined;
713
+ /** Distance between dots in pixels. */
714
+ pixelDistance: number;
715
+ /** Confidence of the detection (0..1). */
716
+ confidence: number;
717
+ /** Source frame width. */
718
+ imageWidth: number;
719
+ /** Source frame height. */
720
+ imageHeight: number;
721
+ /** Real world distance between the two laser dots (m). */
722
+ laserWidth: number;
723
+ /** Distance after lens undistortion (px). */
724
+ correctedPixelDistance: number;
725
+ /** Estimated subject distance (m). */
726
+ estimatedDistance: number;
685
727
  }
686
728
  /** Latitude and longitude position in WGS 84 decimal degrees format. */
687
729
  export interface LatLongPosition {
@@ -1441,6 +1483,31 @@ export interface TiltVelocity {
1441
1483
  /**
1442
1484
  * Information about the drone.
1443
1485
  *
1486
+ * Information about a loaded computer vision model.
1487
+ */
1488
+ export interface CvModelInfo {
1489
+ /** Human-readable model name (from model_meta.json). */
1490
+ name: string;
1491
+ /** Type of CV model. */
1492
+ type: CvModelInfo_ModelType;
1493
+ /** Whether the model is currently running. */
1494
+ running: boolean;
1495
+ /** Execution provider (e.g. "cuda", "tensorrt"). */
1496
+ device: string;
1497
+ /** Package directory name (e.g. "tinyyolov2_package"). Stable identifier. */
1498
+ packageId: string;
1499
+ /** Class names the model can detect (indexed by class_id). */
1500
+ labels: string[];
1501
+ }
1502
+ export declare enum CvModelInfo_ModelType {
1503
+ MODEL_TYPE_UNSPECIFIED = 0,
1504
+ MODEL_TYPE_DETECTION = 1,
1505
+ MODEL_TYPE_SOT = 2,
1506
+ UNRECOGNIZED = -1
1507
+ }
1508
+ export declare function cvModelInfo_ModelTypeFromJSON(object: any): CvModelInfo_ModelType;
1509
+ export declare function cvModelInfo_ModelTypeToJSON(object: CvModelInfo_ModelType): string;
1510
+ /**
1444
1511
  * This message contains serial numbers and version information for
1445
1512
  * internal components in the drone. Primarily used for diagnostics, or to
1446
1513
  * determine the origin of a logfile.
@@ -1468,6 +1535,8 @@ export interface DroneInfo {
1468
1535
  gp: GuestPortInfo | undefined;
1469
1536
  /** Type of depth sensor that is connected to the drone. */
1470
1537
  depthSensor: PressureSensorType;
1538
+ /** List of loaded computer vision models. */
1539
+ cvModels: CvModelInfo[];
1471
1540
  }
1472
1541
  /** Known error states for the drone. */
1473
1542
  export interface ErrorFlags {
@@ -2166,6 +2235,22 @@ export interface BoundingBox {
2166
2235
  /** Height of the bounding box (px). */
2167
2236
  height: number;
2168
2237
  }
2238
+ /**
2239
+ * RLE-encoded binary segmentation mask relative to the bounding box.
2240
+ *
2241
+ * The mask bitmap has dimensions (mask_width x mask_height) covering the
2242
+ * detection's bounding box area. The counts field stores run-length encoded
2243
+ * data as packed uint16 little-endian: alternating background/foreground
2244
+ * pixel runs starting with background.
2245
+ */
2246
+ export interface SegmentationMask {
2247
+ /** Width of the RLE bitmap. */
2248
+ maskWidth: number;
2249
+ /** Height of the RLE bitmap. */
2250
+ maskHeight: number;
2251
+ /** RLE counts as packed uint16 little-endian. */
2252
+ counts: Uint8Array;
2253
+ }
2169
2254
  /** A single object detection from a computer vision model. */
2170
2255
  export interface ObjectDetection {
2171
2256
  /** Bounding box of the detected object. */
@@ -2178,6 +2263,8 @@ export interface ObjectDetection {
2178
2263
  className: string;
2179
2264
  /** Unique ID for tracking the same object across frames. */
2180
2265
  trackingId: number;
2266
+ /** Instance segmentation mask (absent if model has no segmentation). */
2267
+ mask: SegmentationMask | undefined;
2181
2268
  }
2182
2269
  /** A list of object detections from a single model for a single video frame. */
2183
2270
  export interface ModelDetections {
@@ -2224,6 +2311,31 @@ export interface OperatorInfo {
2224
2311
  /** E-mail address of the operator. */
2225
2312
  email: string;
2226
2313
  }
2314
+ /** Single-object tracking (SOT) state reported by the computer vision pipeline. */
2315
+ export interface SotState {
2316
+ /** Current tracking state. */
2317
+ state: SotState_State;
2318
+ /** Current tracked bounding box (valid when TRACKING). */
2319
+ boundingBox: BoundingBox | undefined;
2320
+ /** Width of the source frame in pixels. */
2321
+ imageWidth: number;
2322
+ /** Height of the source frame in pixels. */
2323
+ imageHeight: number;
2324
+ }
2325
+ /** Current state of the SOT tracker. */
2326
+ export declare enum SotState_State {
2327
+ /** STATE_UNSPECIFIED - Unspecified state. */
2328
+ STATE_UNSPECIFIED = 0,
2329
+ /** STATE_IDLE - No target selected, waiting for a target bounding box. */
2330
+ STATE_IDLE = 1,
2331
+ /** STATE_TRACKING - Actively tracking a target. */
2332
+ STATE_TRACKING = 2,
2333
+ /** STATE_LOST - Target was lost (tracker failed to follow the object). */
2334
+ STATE_LOST = 3,
2335
+ UNRECOGNIZED = -1
2336
+ }
2337
+ export declare function sotState_StateFromJSON(object: any): SotState_State;
2338
+ export declare function sotState_StateToJSON(object: SotState_State): string;
2227
2339
  export declare const BinlogRecord: MessageFns<BinlogRecord>;
2228
2340
  export declare const LogEntry: MessageFns<LogEntry>;
2229
2341
  export declare const KernelLogEntry: MessageFns<KernelLogEntry>;
@@ -2231,6 +2343,8 @@ export declare const KernelLogEntry_KeyValuePair: MessageFns<KernelLogEntry_KeyV
2231
2343
  export declare const MotionInput: MessageFns<MotionInput>;
2232
2344
  export declare const Lights: MessageFns<Lights>;
2233
2345
  export declare const Laser: MessageFns<Laser>;
2346
+ export declare const Point2D: MessageFns<Point2D>;
2347
+ export declare const LaserDetection: MessageFns<LaserDetection>;
2234
2348
  export declare const LatLongPosition: MessageFns<LatLongPosition>;
2235
2349
  export declare const ConnectionDuration: MessageFns<ConnectionDuration>;
2236
2350
  export declare const AutoHeadingState: MessageFns<AutoHeadingState>;
@@ -2287,6 +2401,7 @@ export declare const IperfStatus: MessageFns<IperfStatus>;
2287
2401
  export declare const NStreamers: MessageFns<NStreamers>;
2288
2402
  export declare const TiltAngle: MessageFns<TiltAngle>;
2289
2403
  export declare const TiltVelocity: MessageFns<TiltVelocity>;
2404
+ export declare const CvModelInfo: MessageFns<CvModelInfo>;
2290
2405
  export declare const DroneInfo: MessageFns<DroneInfo>;
2291
2406
  export declare const ErrorFlags: MessageFns<ErrorFlags>;
2292
2407
  export declare const CameraParameters: MessageFns<CameraParameters>;
@@ -2323,11 +2438,13 @@ export declare const SystemPerformanceInfo: MessageFns<SystemPerformanceInfo>;
2323
2438
  export declare const SurfaceUnitBatteryInfo: MessageFns<SurfaceUnitBatteryInfo>;
2324
2439
  export declare const SurfaceUnitVersionInfo: MessageFns<SurfaceUnitVersionInfo>;
2325
2440
  export declare const BoundingBox: MessageFns<BoundingBox>;
2441
+ export declare const SegmentationMask: MessageFns<SegmentationMask>;
2326
2442
  export declare const ObjectDetection: MessageFns<ObjectDetection>;
2327
2443
  export declare const ModelDetections: MessageFns<ModelDetections>;
2328
2444
  export declare const FilterMessage: MessageFns<FilterMessage>;
2329
2445
  export declare const CameraPanTiltZoom: MessageFns<CameraPanTiltZoom>;
2330
2446
  export declare const OperatorInfo: MessageFns<OperatorInfo>;
2447
+ export declare const SotState: MessageFns<SotState>;
2331
2448
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
2332
2449
  type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
2333
2450
  [K in keyof T]?: DeepPartial<T[K]>;