@foxglove/schemas 0.7.1 → 0.7.3

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 (119) hide show
  1. package/.github/workflows/ci.yml +51 -1
  2. package/.vscode/settings.json +10 -1
  3. package/Linux.flatc.binary.clang++-12.zip +0 -0
  4. package/README.md +5 -25
  5. package/flatc +0 -0
  6. package/internal/generateFlatbufferSchema.d.ts +6 -0
  7. package/internal/generateFlatbufferSchema.d.ts.map +1 -0
  8. package/internal/generateFlatbufferSchema.js +172 -0
  9. package/internal/generateFlatbufferSchema.js.map +1 -0
  10. package/internal/generateFlatbufferSchema.test.d.ts +2 -0
  11. package/internal/generateFlatbufferSchema.test.d.ts.map +1 -0
  12. package/internal/generateFlatbufferSchema.test.js +120 -0
  13. package/internal/generateFlatbufferSchema.test.js.map +1 -0
  14. package/internal/generateFlatbufferSchema.test.ts +118 -0
  15. package/internal/generateFlatbufferSchema.ts +189 -0
  16. package/internal/generateProto.test.js +1 -1
  17. package/internal/generateProto.test.js.map +1 -1
  18. package/internal/generateProto.test.ts +1 -1
  19. package/internal/schemas.d.ts.map +1 -1
  20. package/internal/schemas.js +21 -11
  21. package/internal/schemas.js.map +1 -1
  22. package/internal/schemas.test.js +1 -1
  23. package/internal/schemas.test.js.map +1 -1
  24. package/internal/schemas.test.ts +1 -1
  25. package/internal/schemas.ts +23 -11
  26. package/internal/testFixtures.d.ts.map +1 -1
  27. package/internal/testFixtures.js +11 -1
  28. package/internal/testFixtures.js.map +1 -1
  29. package/internal/testFixtures.ts +12 -1
  30. package/internal/types.d.ts +2 -1
  31. package/internal/types.d.ts.map +1 -1
  32. package/internal/types.ts +2 -1
  33. package/package.json +1 -1
  34. package/python/Makefile +39 -0
  35. package/python/Pipfile +17 -0
  36. package/python/Pipfile.lock +329 -0
  37. package/python/foxglove-schemas-protobuf/README.md +23 -0
  38. package/python/foxglove-schemas-protobuf/foxglove_schemas_protobuf/__init__.py +0 -0
  39. package/python/foxglove-schemas-protobuf/foxglove_schemas_protobuf/py.typed +0 -0
  40. package/python/foxglove-schemas-protobuf/pyproject.toml +11 -0
  41. package/python/foxglove-schemas-protobuf/setup.cfg +21 -0
  42. package/python/foxglove-schemas-protobuf/tests/test_schemas.py +5 -0
  43. package/schemas/README.md +8 -2
  44. package/schemas/flatbuffer/ArrowPrimitive.fbs +29 -0
  45. package/schemas/flatbuffer/ByteVector.fbs +8 -0
  46. package/schemas/flatbuffer/CameraCalibration.fbs +78 -0
  47. package/schemas/flatbuffer/CircleAnnotation.fbs +30 -0
  48. package/schemas/flatbuffer/Color.fbs +20 -0
  49. package/schemas/flatbuffer/CompressedImage.fbs +24 -0
  50. package/schemas/flatbuffer/CubePrimitive.fbs +21 -0
  51. package/schemas/flatbuffer/CylinderPrimitive.fbs +27 -0
  52. package/schemas/flatbuffer/Duration.fbs +10 -0
  53. package/schemas/flatbuffer/FrameTransform.fbs +27 -0
  54. package/schemas/flatbuffer/GeoJSON.fbs +11 -0
  55. package/schemas/flatbuffer/Grid.fbs +40 -0
  56. package/schemas/flatbuffer/ImageAnnotations.fbs +17 -0
  57. package/schemas/flatbuffer/KeyValuePair.fbs +14 -0
  58. package/schemas/flatbuffer/LaserScan.fbs +32 -0
  59. package/schemas/flatbuffer/LinePrimitive.fbs +49 -0
  60. package/schemas/flatbuffer/LocationFix.fbs +34 -0
  61. package/schemas/flatbuffer/Log.fbs +42 -0
  62. package/schemas/flatbuffer/ModelPrimitive.fbs +33 -0
  63. package/schemas/flatbuffer/PackedElementField.fbs +37 -0
  64. package/schemas/flatbuffer/Point2.fbs +14 -0
  65. package/schemas/flatbuffer/Point3.fbs +17 -0
  66. package/schemas/flatbuffer/PointCloud.fbs +30 -0
  67. package/schemas/flatbuffer/PointsAnnotation.fbs +45 -0
  68. package/schemas/flatbuffer/Pose.fbs +17 -0
  69. package/schemas/flatbuffer/PoseInFrame.fbs +20 -0
  70. package/schemas/flatbuffer/PosesInFrame.fbs +20 -0
  71. package/schemas/flatbuffer/Quaternion.fbs +20 -0
  72. package/schemas/flatbuffer/RawImage.fbs +33 -0
  73. package/schemas/flatbuffer/SceneEntity.fbs +62 -0
  74. package/schemas/flatbuffer/SceneEntityDeletion.fbs +27 -0
  75. package/schemas/flatbuffer/SceneUpdate.fbs +17 -0
  76. package/schemas/flatbuffer/SpherePrimitive.fbs +21 -0
  77. package/schemas/flatbuffer/TextPrimitive.fbs +29 -0
  78. package/schemas/flatbuffer/Time.fbs +9 -0
  79. package/schemas/flatbuffer/TriangleListPrimitive.fbs +29 -0
  80. package/schemas/flatbuffer/Vector2.fbs +14 -0
  81. package/schemas/flatbuffer/Vector3.fbs +17 -0
  82. package/schemas/jsonschema/CameraCalibration.json +2 -2
  83. package/schemas/jsonschema/CompressedImage.json +1 -1
  84. package/schemas/jsonschema/CubePrimitive.json +1 -1
  85. package/schemas/jsonschema/RawImage.json +1 -1
  86. package/schemas/jsonschema/SceneEntity.json +1 -1
  87. package/schemas/jsonschema/SceneUpdate.json +1 -1
  88. package/schemas/jsonschema/index.d.ts +4510 -35
  89. package/schemas/jsonschema/index.d.ts.map +1 -1
  90. package/schemas/jsonschema/index.js +7 -7
  91. package/schemas/jsonschema/index.js.map +1 -1
  92. package/schemas/jsonschema/index.ts +42 -42
  93. package/schemas/proto/foxglove/CameraCalibration.proto +3 -1
  94. package/schemas/proto/foxglove/CompressedImage.proto +2 -0
  95. package/schemas/proto/foxglove/CubePrimitive.proto +1 -1
  96. package/schemas/proto/foxglove/RawImage.proto +2 -0
  97. package/schemas/ros1/CameraCalibration.msg +3 -1
  98. package/schemas/ros1/CompressedImage.msg +2 -0
  99. package/schemas/ros1/CubePrimitive.msg +1 -1
  100. package/schemas/ros1/RawImage.msg +2 -0
  101. package/schemas/ros2/CameraCalibration.msg +3 -1
  102. package/schemas/ros2/CompressedImage.msg +2 -0
  103. package/schemas/ros2/CubePrimitive.msg +1 -1
  104. package/schemas/ros2/RawImage.msg +2 -0
  105. package/schemas/typescript/CameraCalibration.d.ts +6 -2
  106. package/schemas/typescript/CameraCalibration.d.ts.map +1 -1
  107. package/schemas/typescript/CameraCalibration.ts +6 -2
  108. package/schemas/typescript/CompressedImage.d.ts +5 -1
  109. package/schemas/typescript/CompressedImage.d.ts.map +1 -1
  110. package/schemas/typescript/CompressedImage.ts +5 -1
  111. package/schemas/typescript/CubePrimitive.d.ts +1 -1
  112. package/schemas/typescript/CubePrimitive.d.ts.map +1 -1
  113. package/schemas/typescript/CubePrimitive.ts +1 -1
  114. package/schemas/typescript/RawImage.d.ts +5 -1
  115. package/schemas/typescript/RawImage.d.ts.map +1 -1
  116. package/schemas/typescript/RawImage.ts +5 -1
  117. package/scripts/updateGeneratedFiles.js +14 -2
  118. package/scripts/updateGeneratedFiles.js.map +1 -1
  119. package/scripts/updateGeneratedFiles.ts +26 -2
@@ -0,0 +1,27 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Color.fbs";
4
+ include "Pose.fbs";
5
+ include "Vector3.fbs";
6
+
7
+ namespace foxglove;
8
+
9
+ /// A primitive representing a cylinder, elliptic cylinder, or truncated cone
10
+ table CylinderPrimitive {
11
+ /// Position of the center of the cylinder and orientation of the cylinder. The flat face(s) are perpendicular to the z-axis.
12
+ pose:foxglove.Pose;
13
+
14
+ /// Size of the cylinder's bounding box
15
+ size:foxglove.Vector3;
16
+
17
+ /// 0-1, ratio of the diameter of the cylinder's bottom face (min z) to the bottom of the bounding box
18
+ bottom_scale:double;
19
+
20
+ /// 0-1, ratio of the diameter of the cylinder's top face (max z) to the top of the bounding box
21
+ top_scale:double;
22
+
23
+ /// Color of the cylinder
24
+ color:foxglove.Color;
25
+ }
26
+
27
+ root_type CylinderPrimitive;
@@ -0,0 +1,10 @@
1
+
2
+ namespace foxglove;
3
+
4
+ struct Duration {
5
+ /// Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
6
+ sec:int32;
7
+ /// if sec === 0 : -999,999,999 <= nsec <= +999,999,999
8
+ /// otherwise sign of sec must match sign of nsec or be 0 and abs(nsec) <= 999,999,999
9
+ nsec:int32;
10
+ }
@@ -0,0 +1,27 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Quaternion.fbs";
4
+ include "Time.fbs";
5
+ include "Vector3.fbs";
6
+
7
+ namespace foxglove;
8
+
9
+ /// A transform between two reference frames in 3D space
10
+ table FrameTransform {
11
+ /// Timestamp of transform
12
+ timestamp:Time;
13
+
14
+ /// Name of the parent frame
15
+ parent_frame_id:string;
16
+
17
+ /// Name of the child frame
18
+ child_frame_id:string;
19
+
20
+ /// Translation component of the transform
21
+ translation:foxglove.Vector3;
22
+
23
+ /// Rotation component of the transform
24
+ rotation:foxglove.Quaternion;
25
+ }
26
+
27
+ root_type FrameTransform;
@@ -0,0 +1,11 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ namespace foxglove;
4
+
5
+ /// GeoJSON data for annotating maps
6
+ table GeoJSON {
7
+ /// GeoJSON data encoded as a UTF-8 string
8
+ geojson:string;
9
+ }
10
+
11
+ root_type GeoJSON;
@@ -0,0 +1,40 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "PackedElementField.fbs";
4
+ include "Pose.fbs";
5
+ include "Time.fbs";
6
+ include "Vector2.fbs";
7
+
8
+ namespace foxglove;
9
+
10
+ /// A 2D grid of data
11
+ table Grid {
12
+ /// Timestamp of grid
13
+ timestamp:Time;
14
+
15
+ /// Frame of reference
16
+ frame_id:string;
17
+
18
+ /// Origin of grid's corner relative to frame of reference; grid is positioned in the x-y plane relative to this origin
19
+ pose:foxglove.Pose;
20
+
21
+ /// Number of grid columns
22
+ column_count:uint32;
23
+
24
+ /// Size of single grid cell along x and y axes, relative to `pose`
25
+ cell_size:foxglove.Vector2;
26
+
27
+ /// Number of bytes between rows in `data`
28
+ row_stride:uint32;
29
+
30
+ /// Number of bytes between cells within a row in `data`
31
+ cell_stride:uint32;
32
+
33
+ /// Fields in `data`
34
+ fields:[foxglove.PackedElementField];
35
+
36
+ /// Grid cell data, interpreted using `fields`, in row-major (y-major) order
37
+ data:[uint8];
38
+ }
39
+
40
+ root_type Grid;
@@ -0,0 +1,17 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "CircleAnnotation.fbs";
4
+ include "PointsAnnotation.fbs";
5
+
6
+ namespace foxglove;
7
+
8
+ /// Array of annotations for a 2D image
9
+ table ImageAnnotations {
10
+ /// Circle annotations
11
+ circles:[foxglove.CircleAnnotation];
12
+
13
+ /// Points annotations
14
+ points:[foxglove.PointsAnnotation];
15
+ }
16
+
17
+ root_type ImageAnnotations;
@@ -0,0 +1,14 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ namespace foxglove;
4
+
5
+ /// A key with its associated value
6
+ table KeyValuePair {
7
+ /// Key
8
+ key:string;
9
+
10
+ /// Value
11
+ value:string;
12
+ }
13
+
14
+ root_type KeyValuePair;
@@ -0,0 +1,32 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Pose.fbs";
4
+ include "Time.fbs";
5
+
6
+ namespace foxglove;
7
+
8
+ /// A single scan from a planar laser range-finder
9
+ table LaserScan {
10
+ /// Timestamp of scan
11
+ timestamp:Time;
12
+
13
+ /// Frame of reference
14
+ frame_id:string;
15
+
16
+ /// Origin of scan relative to frame of reference; points are positioned in the x-y plane relative to this origin; angles are interpreted as counterclockwise rotations around the z axis with 0 rad being in the +x direction
17
+ pose:foxglove.Pose;
18
+
19
+ /// Bearing of first point, in radians
20
+ start_angle:double;
21
+
22
+ /// Bearing of last point, in radians
23
+ end_angle:double;
24
+
25
+ /// Distance of detections from origin; assumed to be at equally-spaced angles between `start_angle` and `end_angle`
26
+ ranges:[double];
27
+
28
+ /// Intensity of detections
29
+ intensities:[double];
30
+ }
31
+
32
+ root_type LaserScan;
@@ -0,0 +1,49 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Color.fbs";
4
+ include "Point3.fbs";
5
+ include "Pose.fbs";
6
+
7
+ namespace foxglove;
8
+
9
+ /// An enumeration indicating how input points should be interpreted to create lines
10
+ enum LineType : ubyte {
11
+ /// 0-1, 1-2, ..., (n-1)-n
12
+ LINE_STRIP = 0,
13
+
14
+ /// 0-1, 1-2, ..., (n-1)-n, n-0
15
+ LINE_LOOP = 1,
16
+
17
+ /// 0-1, 2-3, 4-5, ...
18
+ LINE_LIST = 2,
19
+ }
20
+ /// A primitive representing a series of points connected by lines
21
+ table LinePrimitive {
22
+ /// Drawing primitive to use for lines
23
+ type:LineType;
24
+
25
+ /// Origin of lines relative to reference frame
26
+ pose:foxglove.Pose;
27
+
28
+ /// Line thickness
29
+ thickness:double;
30
+
31
+ /// Indicates whether `thickness` is a fixed size in screen pixels (true), or specified in world coordinates and scales with distance from the camera (false)
32
+ scale_invariant:bool;
33
+
34
+ /// Points along the line
35
+ points:[foxglove.Point3];
36
+
37
+ /// Solid color to use for the whole line. One of `color` or `colors` must be provided.
38
+ color:foxglove.Color;
39
+
40
+ /// Per-point colors (if specified, must have the same length as `points`). One of `color` or `colors` must be provided.
41
+ colors:[foxglove.Color];
42
+
43
+ /// Indices into the `points` and `colors` attribute arrays, which can be used to avoid duplicating attribute data.
44
+ ///
45
+ /// If omitted or empty, indexing will not be used. This default behavior is equivalent to specifying [0, 1, ..., N-1] for the indices (where N is the number of `points` provided).
46
+ indices:[uint32];
47
+ }
48
+
49
+ root_type LinePrimitive;
@@ -0,0 +1,34 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ namespace foxglove;
4
+
5
+ /// Type of position covariance
6
+ enum PositionCovarianceType : ubyte {
7
+ UNKNOWN = 0,
8
+
9
+ APPROXIMATED = 1,
10
+
11
+ DIAGONAL_KNOWN = 2,
12
+
13
+ KNOWN = 3,
14
+ }
15
+ /// A navigation satellite fix for any Global Navigation Satellite System
16
+ table LocationFix {
17
+ /// Latitude in degrees
18
+ latitude:double;
19
+
20
+ /// Longitude in degrees
21
+ longitude:double;
22
+
23
+ /// Altitude in meters
24
+ altitude:double;
25
+
26
+ /// Position covariance (m^2) defined relative to a tangential plane through the reported position. The components are East, North, and Up (ENU), in row-major order.
27
+ /// length 9
28
+ position_covariance:[double];
29
+
30
+ /// If `position_covariance` is available, `position_covariance_type` must be set to indicate the type of covariance.
31
+ position_covariance_type:PositionCovarianceType;
32
+ }
33
+
34
+ root_type LocationFix;
@@ -0,0 +1,42 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Time.fbs";
4
+
5
+ namespace foxglove;
6
+
7
+ /// Log level
8
+ enum LogLevel : ubyte {
9
+ UNKNOWN = 0,
10
+
11
+ DEBUG = 1,
12
+
13
+ INFO = 2,
14
+
15
+ WARNING = 3,
16
+
17
+ ERROR = 4,
18
+
19
+ FATAL = 5,
20
+ }
21
+ /// A log message
22
+ table Log {
23
+ /// Timestamp of log message
24
+ timestamp:Time;
25
+
26
+ /// Log level
27
+ level:LogLevel;
28
+
29
+ /// Log message
30
+ message:string;
31
+
32
+ /// Process or node name
33
+ name:string;
34
+
35
+ /// Filename
36
+ file:string;
37
+
38
+ /// Line number in the file
39
+ line:uint32;
40
+ }
41
+
42
+ root_type Log;
@@ -0,0 +1,33 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Color.fbs";
4
+ include "Pose.fbs";
5
+ include "Vector3.fbs";
6
+
7
+ namespace foxglove;
8
+
9
+ /// A primitive representing a 3D model file loaded from an external URL or embedded data
10
+ table ModelPrimitive {
11
+ /// Origin of model relative to reference frame
12
+ pose:foxglove.Pose;
13
+
14
+ /// Scale factor to apply to the model along each axis
15
+ scale:foxglove.Vector3;
16
+
17
+ /// Solid color to use for the whole model if `override_color` is true.
18
+ color:foxglove.Color;
19
+
20
+ /// Whether to use the color specified in `color` instead of any materials embedded in the original model.
21
+ override_color:bool;
22
+
23
+ /// URL pointing to model file. One of `url` or `data` should be provided.
24
+ url:string;
25
+
26
+ /// [Media type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of embedded model (e.g. `model/gltf-binary`). Required if `data` is provided instead of `url`. Overrides the inferred media type if `url` is provided.
27
+ media_type:string;
28
+
29
+ /// Embedded model. One of `url` or `data` should be provided. If `data` is provided, `media_type` must be set to indicate the type of the data.
30
+ data:[uint8];
31
+ }
32
+
33
+ root_type ModelPrimitive;
@@ -0,0 +1,37 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ namespace foxglove;
4
+
5
+ /// Numeric type
6
+ enum NumericType : ubyte {
7
+ UNKNOWN = 0,
8
+
9
+ UINT8 = 1,
10
+
11
+ INT8 = 2,
12
+
13
+ UINT16 = 3,
14
+
15
+ INT16 = 4,
16
+
17
+ UINT32 = 5,
18
+
19
+ INT32 = 6,
20
+
21
+ FLOAT32 = 7,
22
+
23
+ FLOAT64 = 8,
24
+ }
25
+ /// A field present within each element in a byte array of packed elements.
26
+ table PackedElementField {
27
+ /// Name of the field
28
+ name:string;
29
+
30
+ /// Byte offset from start of data buffer
31
+ offset:uint32;
32
+
33
+ /// Type of data in the field. Integers are stored using little-endian byte order.
34
+ type:NumericType;
35
+ }
36
+
37
+ root_type PackedElementField;
@@ -0,0 +1,14 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ namespace foxglove;
4
+
5
+ /// A point representing a position in 2D space
6
+ table Point2 {
7
+ /// x coordinate position
8
+ x:double;
9
+
10
+ /// y coordinate position
11
+ y:double;
12
+ }
13
+
14
+ root_type Point2;
@@ -0,0 +1,17 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ namespace foxglove;
4
+
5
+ /// A point representing a position in 3D space
6
+ table Point3 {
7
+ /// x coordinate position
8
+ x:double;
9
+
10
+ /// y coordinate position
11
+ y:double;
12
+
13
+ /// z coordinate position
14
+ z:double;
15
+ }
16
+
17
+ root_type Point3;
@@ -0,0 +1,30 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "PackedElementField.fbs";
4
+ include "Pose.fbs";
5
+ include "Time.fbs";
6
+
7
+ namespace foxglove;
8
+
9
+ /// A collection of N-dimensional points, which may contain additional fields with information like normals, intensity, etc.
10
+ table PointCloud {
11
+ /// Timestamp of point cloud
12
+ timestamp:Time;
13
+
14
+ /// Frame of reference
15
+ frame_id:string;
16
+
17
+ /// The origin of the point cloud relative to the frame of reference
18
+ pose:foxglove.Pose;
19
+
20
+ /// Number of bytes between points in the `data`
21
+ point_stride:uint32;
22
+
23
+ /// Fields in the `data`
24
+ fields:[foxglove.PackedElementField];
25
+
26
+ /// Point data, interpreted using `fields`
27
+ data:[uint8];
28
+ }
29
+
30
+ root_type PointCloud;
@@ -0,0 +1,45 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Color.fbs";
4
+ include "Point2.fbs";
5
+ include "Time.fbs";
6
+
7
+ namespace foxglove;
8
+
9
+ /// Type of points annotation
10
+ enum PointsAnnotationType : ubyte {
11
+ UNKNOWN = 0,
12
+
13
+ POINTS = 1,
14
+
15
+ LINE_LOOP = 2,
16
+
17
+ LINE_STRIP = 3,
18
+
19
+ LINE_LIST = 4,
20
+ }
21
+ /// An array of points on a 2D image
22
+ table PointsAnnotation {
23
+ /// Timestamp of annotation
24
+ timestamp:Time;
25
+
26
+ /// Type of points annotation to draw
27
+ type:PointsAnnotationType;
28
+
29
+ /// Points in 2D image coordinates
30
+ points:[foxglove.Point2];
31
+
32
+ /// Outline color
33
+ outline_color:foxglove.Color;
34
+
35
+ /// Per-point colors, if `type` is `POINTS`, or per-segment stroke colors, if `type` is `LINE_LIST`.
36
+ outline_colors:[foxglove.Color];
37
+
38
+ /// Fill color
39
+ fill_color:foxglove.Color;
40
+
41
+ /// Stroke thickness
42
+ thickness:double;
43
+ }
44
+
45
+ root_type PointsAnnotation;
@@ -0,0 +1,17 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Quaternion.fbs";
4
+ include "Vector3.fbs";
5
+
6
+ namespace foxglove;
7
+
8
+ /// A position and orientation for an object or reference frame in 3D space
9
+ table Pose {
10
+ /// Point denoting position in 3D space
11
+ position:foxglove.Vector3;
12
+
13
+ /// Quaternion denoting orientation in 3D space
14
+ orientation:foxglove.Quaternion;
15
+ }
16
+
17
+ root_type Pose;
@@ -0,0 +1,20 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Pose.fbs";
4
+ include "Time.fbs";
5
+
6
+ namespace foxglove;
7
+
8
+ /// A timestamped pose for an object or reference frame in 3D space
9
+ table PoseInFrame {
10
+ /// Timestamp of pose
11
+ timestamp:Time;
12
+
13
+ /// Frame of reference for pose position and orientation
14
+ frame_id:string;
15
+
16
+ /// Pose in 3D space
17
+ pose:foxglove.Pose;
18
+ }
19
+
20
+ root_type PoseInFrame;
@@ -0,0 +1,20 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Pose.fbs";
4
+ include "Time.fbs";
5
+
6
+ namespace foxglove;
7
+
8
+ /// An array of timestamped poses for an object or reference frame in 3D space
9
+ table PosesInFrame {
10
+ /// Timestamp of pose
11
+ timestamp:Time;
12
+
13
+ /// Frame of reference for pose position and orientation
14
+ frame_id:string;
15
+
16
+ /// Poses in 3D space
17
+ poses:[foxglove.Pose];
18
+ }
19
+
20
+ root_type PosesInFrame;
@@ -0,0 +1,20 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ namespace foxglove;
4
+
5
+ /// A [quaternion](https://eater.net/quaternions) representing a rotation in 3D space
6
+ table Quaternion {
7
+ /// x value
8
+ x:double;
9
+
10
+ /// y value
11
+ y:double;
12
+
13
+ /// z value
14
+ z:double;
15
+
16
+ /// w value
17
+ w:double = 1.0;
18
+ }
19
+
20
+ root_type Quaternion;
@@ -0,0 +1,33 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "Time.fbs";
4
+
5
+ namespace foxglove;
6
+
7
+ /// A raw image
8
+ table RawImage {
9
+ /// Timestamp of image
10
+ timestamp:Time;
11
+
12
+ /// Frame of reference for the image. The origin of the frame is the optical center of the camera. +x points to the right in the image, +y points down, and +z points into the plane of the image.
13
+ frame_id:string;
14
+
15
+ /// Image width
16
+ width:uint32;
17
+
18
+ /// Image height
19
+ height:uint32;
20
+
21
+ /// Encoding of the raw image data
22
+ ///
23
+ /// Supported values: `8UC1`, `8UC3`, `16UC1`, `32FC1`, `bayer_bggr8`, `bayer_gbrg8`, `bayer_grbg8`, `bayer_rggb8`, `bgr8`, `bgra8`, `mono8`, `mono16`, `rgb8`, `rgba8`, `yuv422`
24
+ encoding:string;
25
+
26
+ /// Byte length of a single row
27
+ step:uint32;
28
+
29
+ /// Raw image data
30
+ data:[uint8];
31
+ }
32
+
33
+ root_type RawImage;
@@ -0,0 +1,62 @@
1
+ // Generated by https://github.com/foxglove/schemas
2
+
3
+ include "ArrowPrimitive.fbs";
4
+ include "CubePrimitive.fbs";
5
+ include "CylinderPrimitive.fbs";
6
+ include "Duration.fbs";
7
+ include "KeyValuePair.fbs";
8
+ include "LinePrimitive.fbs";
9
+ include "ModelPrimitive.fbs";
10
+ include "SpherePrimitive.fbs";
11
+ include "TextPrimitive.fbs";
12
+ include "Time.fbs";
13
+ include "TriangleListPrimitive.fbs";
14
+
15
+ namespace foxglove;
16
+
17
+ /// A visual element in a 3D scene. An entity may be composed of multiple primitives which all share the same frame of reference.
18
+ table SceneEntity {
19
+ /// Timestamp of the entity
20
+ timestamp:Time;
21
+
22
+ /// Frame of reference
23
+ frame_id:string;
24
+
25
+ /// Identifier for the entity. A entity will replace any prior entity on the same topic with the same `id`.
26
+ id:string;
27
+
28
+ /// Length of time (relative to `timestamp`) after which the entity should be automatically removed. Zero value indicates the entity should remain visible until it is replaced or deleted.
29
+ lifetime:Duration;
30
+
31
+ /// Whether the entity should keep its location in the fixed frame (false) or follow the frame specified in `frame_id` as it moves relative to the fixed frame (true)
32
+ frame_locked:bool;
33
+
34
+ /// Additional user-provided metadata associated with the entity. Keys must be unique.
35
+ metadata:[foxglove.KeyValuePair];
36
+
37
+ /// Arrow primitives
38
+ arrows:[foxglove.ArrowPrimitive];
39
+
40
+ /// Cube primitives
41
+ cubes:[foxglove.CubePrimitive];
42
+
43
+ /// Sphere primitives
44
+ spheres:[foxglove.SpherePrimitive];
45
+
46
+ /// Cylinder primitives
47
+ cylinders:[foxglove.CylinderPrimitive];
48
+
49
+ /// Line primitives
50
+ lines:[foxglove.LinePrimitive];
51
+
52
+ /// Triangle list primitives
53
+ triangles:[foxglove.TriangleListPrimitive];
54
+
55
+ /// Text primitives
56
+ texts:[foxglove.TextPrimitive];
57
+
58
+ /// Model primitives
59
+ models:[foxglove.ModelPrimitive];
60
+ }
61
+
62
+ root_type SceneEntity;