spatialdds-ros 0.3.0__py3-none-any.whl

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 (87) hide show
  1. spatialdds_idl18/PROVENANCE.md +66 -0
  2. spatialdds_idl18/__init__.py +9 -0
  3. spatialdds_idl18/_field_aliases.py +26 -0
  4. spatialdds_idl18/builtin/__init__.py +11 -0
  5. spatialdds_idl18/builtin/_types.py +28 -0
  6. spatialdds_idl18/spatial/__init__.py +33 -0
  7. spatialdds_idl18/spatial/anchors/__init__.py +20 -0
  8. spatialdds_idl18/spatial/anchors/_anchors.py +102 -0
  9. spatialdds_idl18/spatial/argeo/__init__.py +22 -0
  10. spatialdds_idl18/spatial/argeo/_argeo.py +97 -0
  11. spatialdds_idl18/spatial/common/__init__.py +27 -0
  12. spatialdds_idl18/spatial/common/_types.py +104 -0
  13. spatialdds_idl18/spatial/core/GnssService/__init__.py +17 -0
  14. spatialdds_idl18/spatial/core/GnssService/_core.py +27 -0
  15. spatialdds_idl18/spatial/core/__init__.py +40 -0
  16. spatialdds_idl18/spatial/core/_core.py +338 -0
  17. spatialdds_idl18/spatial/disco/__init__.py +34 -0
  18. spatialdds_idl18/spatial/disco/_discovery.py +252 -0
  19. spatialdds_idl18/spatial/events/__init__.py +29 -0
  20. spatialdds_idl18/spatial/events/_events.py +164 -0
  21. spatialdds_idl18/spatial/events/enums/__init__.py +19 -0
  22. spatialdds_idl18/spatial/events/enums/crossing_direction_enum/__init__.py +11 -0
  23. spatialdds_idl18/spatial/events/enums/crossing_direction_enum/_events.py +25 -0
  24. spatialdds_idl18/spatial/events/enums/event_state_enum/__init__.py +11 -0
  25. spatialdds_idl18/spatial/events/enums/event_state_enum/_events.py +26 -0
  26. spatialdds_idl18/spatial/events/enums/event_type_enum/__init__.py +11 -0
  27. spatialdds_idl18/spatial/events/enums/event_type_enum/_events.py +36 -0
  28. spatialdds_idl18/spatial/events/enums/severity_enum/__init__.py +11 -0
  29. spatialdds_idl18/spatial/events/enums/severity_enum/_events.py +26 -0
  30. spatialdds_idl18/spatial/events/enums/zone_kind_enum/__init__.py +11 -0
  31. spatialdds_idl18/spatial/events/enums/zone_kind_enum/_events.py +31 -0
  32. spatialdds_idl18/spatial/mapping/__init__.py +30 -0
  33. spatialdds_idl18/spatial/mapping/_mapping.py +168 -0
  34. spatialdds_idl18/spatial/mapping/enums/__init__.py +19 -0
  35. spatialdds_idl18/spatial/mapping/enums/alignment_method/__init__.py +11 -0
  36. spatialdds_idl18/spatial/mapping/enums/alignment_method/_mapping.py +31 -0
  37. spatialdds_idl18/spatial/mapping/enums/edge_type/__init__.py +11 -0
  38. spatialdds_idl18/spatial/mapping/enums/edge_type/_mapping.py +34 -0
  39. spatialdds_idl18/spatial/mapping/enums/map_event_kind/__init__.py +11 -0
  40. spatialdds_idl18/spatial/mapping/enums/map_event_kind/_mapping.py +29 -0
  41. spatialdds_idl18/spatial/mapping/enums/map_kind/__init__.py +11 -0
  42. spatialdds_idl18/spatial/mapping/enums/map_kind/_mapping.py +32 -0
  43. spatialdds_idl18/spatial/mapping/enums/map_status/__init__.py +11 -0
  44. spatialdds_idl18/spatial/mapping/enums/map_status/_mapping.py +27 -0
  45. spatialdds_idl18/spatial/owm/__init__.py +22 -0
  46. spatialdds_idl18/spatial/owm/_owm.py +103 -0
  47. spatialdds_idl18/spatial/semantics/__init__.py +22 -0
  48. spatialdds_idl18/spatial/semantics/_semantics.py +174 -0
  49. spatialdds_idl18/spatial/sensing/__init__.py +21 -0
  50. spatialdds_idl18/spatial/sensing/common/__init__.py +34 -0
  51. spatialdds_idl18/spatial/sensing/common/_common.py +192 -0
  52. spatialdds_idl18/spatial/sensing/lidar/__init__.py +32 -0
  53. spatialdds_idl18/spatial/sensing/lidar/_lidar.py +135 -0
  54. spatialdds_idl18/spatial/sensing/rad/__init__.py +33 -0
  55. spatialdds_idl18/spatial/sensing/rad/_rad.py +191 -0
  56. spatialdds_idl18/spatial/sensing/radio/__init__.py +22 -0
  57. spatialdds_idl18/spatial/sensing/radio/_radio.py +141 -0
  58. spatialdds_idl18/spatial/sensing/rf_beam/__init__.py +25 -0
  59. spatialdds_idl18/spatial/sensing/rf_beam/_rf_beam.py +117 -0
  60. spatialdds_idl18/spatial/sensing/vision/__init__.py +36 -0
  61. spatialdds_idl18/spatial/sensing/vision/_vision.py +170 -0
  62. spatialdds_idl18/spatial/slam_frontend/__init__.py +22 -0
  63. spatialdds_idl18/spatial/slam_frontend/_slam_frontend.py +144 -0
  64. spatialdds_idl18/spatial/vio/__init__.py +20 -0
  65. spatialdds_idl18/spatial/vio/_vio.py +134 -0
  66. spatialdds_ros/__init__.py +6 -0
  67. spatialdds_ros/adapter.py +336 -0
  68. spatialdds_ros/announce.py +231 -0
  69. spatialdds_ros/config.py +293 -0
  70. spatialdds_ros/frames.py +219 -0
  71. spatialdds_ros/kinematic.py +140 -0
  72. spatialdds_ros/qos.py +101 -0
  73. spatialdds_ros/recording.py +167 -0
  74. spatialdds_ros/robot_node.py +287 -0
  75. spatialdds_ros/standalone.py +221 -0
  76. spatialdds_ros/tempo.py +114 -0
  77. spatialdds_ros/topics.py +64 -0
  78. spatialdds_ros/transport.py +170 -0
  79. spatialdds_ros-0.3.0.data/data/share/ament_index/resource_index/packages/spatialdds_ros +0 -0
  80. spatialdds_ros-0.3.0.data/data/share/spatialdds_ros/package.xml +29 -0
  81. spatialdds_ros-0.3.0.dist-info/METADATA +331 -0
  82. spatialdds_ros-0.3.0.dist-info/RECORD +87 -0
  83. spatialdds_ros-0.3.0.dist-info/WHEEL +5 -0
  84. spatialdds_ros-0.3.0.dist-info/entry_points.txt +3 -0
  85. spatialdds_ros-0.3.0.dist-info/licenses/LICENSE +21 -0
  86. spatialdds_ros-0.3.0.dist-info/top_level.txt +2 -0
  87. spatialdds_ros-0.3.0.dist-info/zip-safe +1 -0
@@ -0,0 +1,66 @@
1
+ # Where these types came from
2
+
3
+ Generated SpatialDDS **1.8** Python bindings, vendored. Do not edit by hand —
4
+ every file here is idlc output plus two mechanical patches, and an edit would
5
+ be lost the next time they are regenerated.
6
+
7
+ | | |
8
+ |---|---|
9
+ | IDL source | `idl/v1.8/` in `OpenArCloud/SpatialDDS-spec`, at `9c3e1f2` (2026-10-15) |
10
+ | generator | `scripts/generate_types.py` in `OpenArCloud/SpatialDDS-demo` |
11
+ | vendored from | that repo's `spatialdds_idl18/` at `cf4ec23` |
12
+ | files | 64 |
13
+
14
+ The spec's `idl/v1.8` and the demo's copy were verified byte-identical at the
15
+ time of vendoring, so these bindings correspond to the specification's IDL and
16
+ not to a demo-local variant.
17
+
18
+ ## Why vendored rather than depended on
19
+
20
+ The `spatialdds` distribution on PyPI (0.5.4, this library's toolchain) ships
21
+ the gateway, canonical JSON and the record helpers — it does **not** ship IDL
22
+ bindings. There is no published package to depend on, and generating at
23
+ install time would need `idlc` and a CycloneDDS build on every machine that
24
+ installs this library, including CI runners and a robot. So they are vendored,
25
+ with the provenance above standing in for a version constraint.
26
+
27
+ ## The two patches, and why they are the generator's job
28
+
29
+ Both are applied by `generate_types.py` after idlc runs, and both are
30
+ mechanical consequences of idlc's output rather than choices:
31
+
32
+ **1. The root package is bound.** idlc annotates a nested member with a
33
+ fully-qualified *string* — `cov_pos: 'spatialdds_idl18.spatial.common.Mat3x3'`
34
+ — while importing only `from spatialdds_idl18 import spatial`. The root name in
35
+ those annotations is therefore unbound and `typing.get_type_hints()` raises
36
+ `NameError` on every generated dataclass with a nested member. So each such
37
+ module also does `import spatialdds_idl18`.
38
+
39
+ CycloneDDS resolves annotations with its own machinery and never calls
40
+ `get_type_hints`, which is why this defect sat unnoticed for a year while
41
+ everything on the wire worked. It still mattered: `get_type_hints` is how
42
+ dataclass-based tooling reads a type, so schema generators and validators
43
+ could not introspect these bindings at all. Fixed upstream in SpatialDDS-demo
44
+ `b856788`, and in openvps `26c7182`.
45
+
46
+ **2. Union discriminators are imported.** idlc emits some discriminators as
47
+ bare names it never imports; the generator resolves each against the module
48
+ that defines it and writes the import.
49
+
50
+ ## The gate
51
+
52
+ `test/test_generated_types.py` imports every module in this tree and calls
53
+ `typing.get_type_hints()` on every generated dataclass. It walks the tree from
54
+ disk rather than from a written-down list, because a hand-kept list checks only
55
+ the modules somebody remembered.
56
+
57
+ That gate is the reason this directory can be trusted by anything that
58
+ introspects types — which, in this library, is the MCAP schema validation in
59
+ the acceptance run.
60
+
61
+ ## Regenerating
62
+
63
+ Not from this repository. The generator and the IDL both live elsewhere; to
64
+ move to a newer 1.8 revision, regenerate in SpatialDDS-demo and re-vendor,
65
+ updating the table above. The gate will tell you immediately if a regeneration
66
+ dropped either patch.
@@ -0,0 +1,9 @@
1
+ # Generated by scripts/generate_types.py — do not edit.
2
+ # Regenerate with: docker run --rm -v "$PWD:/repo" -w /repo cyclonedds-python \
3
+ # python3 scripts/generate_types.py
4
+ """Generated SpatialDDS 1.7 types. See scripts/generate_types.py."""
5
+
6
+ from . import builtin
7
+ from . import spatial
8
+
9
+ __all__ = ["builtin", "spatial"]
@@ -0,0 +1,26 @@
1
+ # Generated by scripts/generate_types.py — do not edit.
2
+ # Regenerate with: docker run --rm -v "$PWD:/repo" -w /repo cyclonedds-python \
3
+ # python3 scripts/generate_types.py
4
+
5
+ """Python attribute -> IDL field name, for fields renamed to dodge
6
+ Python keywords. See fix_python_keyword_fields in the generator."""
7
+
8
+ FIELD_ALIASES = {
9
+ "spatial.disco.CoverageElement": {
10
+ "_global": "global",
11
+ },
12
+ "spatial.disco.Transform": {
13
+ "_from": "from",
14
+ },
15
+ "spatial.disco.ValidityWindow": {
16
+ "_from": "from",
17
+ },
18
+ "spatial.sensing.common.ROI": {
19
+ "_global": "global",
20
+ },
21
+ }
22
+
23
+
24
+ def wire_name(typename: str, attr: str) -> str:
25
+ """The IDL field name for a generated attribute."""
26
+ return FIELD_ALIASES.get(typename, {}).get(attr, attr)
@@ -0,0 +1,11 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: builtin
5
+
6
+ """
7
+
8
+ from ._types import Time
9
+ __all__ = [
10
+ "Time",
11
+ ]
@@ -0,0 +1,28 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: builtin
5
+ IDL file: types.idl
6
+
7
+ """
8
+
9
+ from dataclasses import dataclass
10
+ from enum import auto
11
+ from typing import TYPE_CHECKING, Optional
12
+
13
+ import cyclonedds.idl as idl
14
+ import cyclonedds.idl.annotations as annotate
15
+ import cyclonedds.idl.types as types
16
+
17
+ # root module import for resolving types
18
+ from spatialdds_idl18 import builtin
19
+
20
+
21
+ @dataclass
22
+ @annotate.appendable
23
+ @annotate.autoid("sequential")
24
+ class Time(idl.IdlStruct, typename="builtin.Time"):
25
+ sec: types.int64
26
+ nanosec: types.uint32
27
+
28
+
@@ -0,0 +1,33 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial
5
+
6
+ """
7
+
8
+ from . import anchors
9
+ from . import argeo
10
+ from . import common
11
+ from . import core
12
+ from . import disco
13
+ from . import events
14
+ from . import mapping
15
+ from . import owm
16
+ from . import semantics
17
+ from . import sensing
18
+ from . import slam_frontend
19
+ from . import vio
20
+ __all__ = [
21
+ "anchors",
22
+ "argeo",
23
+ "common",
24
+ "core",
25
+ "disco",
26
+ "events",
27
+ "mapping",
28
+ "owm",
29
+ "semantics",
30
+ "sensing",
31
+ "slam_frontend",
32
+ "vio",
33
+ ]
@@ -0,0 +1,20 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.anchors
5
+
6
+ """
7
+
8
+ from ._anchors import AnchorDelta, AnchorEntry, AnchorOp, AnchorSet, AnchorSetRequest, AnchorSetResponse, FrameRef, GeoPose, MODULE_ID, Time
9
+ __all__ = [
10
+ "AnchorDelta",
11
+ "AnchorEntry",
12
+ "AnchorOp",
13
+ "AnchorSet",
14
+ "AnchorSetRequest",
15
+ "AnchorSetResponse",
16
+ "FrameRef",
17
+ "GeoPose",
18
+ "MODULE_ID",
19
+ "Time",
20
+ ]
@@ -0,0 +1,102 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.anchors
5
+ IDL file: anchors.idl
6
+
7
+ """
8
+
9
+ from dataclasses import dataclass
10
+ from enum import auto
11
+ from typing import TYPE_CHECKING, Optional
12
+
13
+ import cyclonedds.idl as idl
14
+ import cyclonedds.idl.annotations as annotate
15
+ import cyclonedds.idl.types as types
16
+
17
+ # root module import for resolving types
18
+ # generate_types.py: bind the root name the dotted
19
+ # annotations below already use, so get_type_hints works
20
+ import spatialdds_idl18
21
+ from spatialdds_idl18 import spatial
22
+
23
+ if TYPE_CHECKING:
24
+ import builtin
25
+ import spatial.core
26
+
27
+
28
+ MODULE_ID = "spatial.anchors/1.8"
29
+ Time = types.typedef['spatialdds_idl18.spatial.anchors.Time', 'spatialdds_idl18.builtin.Time']
30
+ GeoPose = types.typedef['spatialdds_idl18.spatial.anchors.GeoPose', 'spatialdds_idl18.spatial.core.GeoPose']
31
+ FrameRef = types.typedef['spatialdds_idl18.spatial.anchors.FrameRef', 'spatialdds_idl18.spatial.core.FrameRef']
32
+
33
+ @dataclass
34
+ @annotate.appendable
35
+ @annotate.autoid("sequential")
36
+ class AnchorEntry(idl.IdlStruct, typename="spatial.anchors.AnchorEntry"):
37
+ anchor_id: str
38
+ annotate.key("anchor_id")
39
+ name: str
40
+ geopose: 'spatialdds_idl18.spatial.anchors.GeoPose'
41
+ confidence: types.float64
42
+ tags: types.sequence[str, 8]
43
+ stamp: 'spatialdds_idl18.spatial.anchors.Time'
44
+ checksum: str
45
+
46
+
47
+ @dataclass
48
+ @annotate.appendable
49
+ @annotate.autoid("sequential")
50
+ class AnchorSet(idl.IdlStruct, typename="spatial.anchors.AnchorSet"):
51
+ set_id: str
52
+ annotate.key("set_id")
53
+ title: str
54
+ provider_id: str
55
+ map_frame: 'spatialdds_idl18.spatial.anchors.FrameRef'
56
+ version: str
57
+ tags: types.sequence[str, 16]
58
+ center_lat: types.float64
59
+ center_lon: types.float64
60
+ radius_m: types.float64
61
+ anchors: types.sequence['spatialdds_idl18.spatial.anchors.AnchorEntry', 256]
62
+ stamp: 'spatialdds_idl18.spatial.anchors.Time'
63
+ checksum: str
64
+
65
+ @annotate.final
66
+ class AnchorOp(idl.IdlEnum, typename="spatial.anchors.AnchorOp", default="ADD"):
67
+ ADD = 0
68
+ UPDATE = 1
69
+ REMOVE = 2
70
+
71
+ @dataclass
72
+ @annotate.appendable
73
+ @annotate.autoid("sequential")
74
+ class AnchorDelta(idl.IdlStruct, typename="spatial.anchors.AnchorDelta"):
75
+ set_id: str
76
+ annotate.key("set_id")
77
+ op: 'spatialdds_idl18.spatial.anchors.AnchorOp'
78
+ entry: 'spatialdds_idl18.spatial.anchors.AnchorEntry'
79
+ revision: types.uint64
80
+ stamp: 'spatialdds_idl18.spatial.anchors.Time'
81
+ post_checksum: str
82
+
83
+
84
+ @dataclass
85
+ @annotate.appendable
86
+ @annotate.autoid("sequential")
87
+ class AnchorSetRequest(idl.IdlStruct, typename="spatial.anchors.AnchorSetRequest"):
88
+ set_id: str
89
+ annotate.key("set_id")
90
+ up_to_revision: types.uint64
91
+
92
+
93
+ @dataclass
94
+ @annotate.appendable
95
+ @annotate.autoid("sequential")
96
+ class AnchorSetResponse(idl.IdlStruct, typename="spatial.anchors.AnchorSetResponse"):
97
+ set_id: str
98
+ annotate.key("set_id")
99
+ revision: types.uint64
100
+ set: 'spatialdds_idl18.spatial.anchors.AnchorSet'
101
+
102
+
@@ -0,0 +1,22 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.argeo
5
+
6
+ """
7
+
8
+ from ._argeo import CovMatrix, FrameRef, FramedPose, GeoPose, MODULE_ID, NodeGeo, PoseSE3, QualityRequirements, Time, VpsRequest, VpsResponse, VpsStatus
9
+ __all__ = [
10
+ "CovMatrix",
11
+ "FrameRef",
12
+ "FramedPose",
13
+ "GeoPose",
14
+ "MODULE_ID",
15
+ "NodeGeo",
16
+ "PoseSE3",
17
+ "QualityRequirements",
18
+ "Time",
19
+ "VpsRequest",
20
+ "VpsResponse",
21
+ "VpsStatus",
22
+ ]
@@ -0,0 +1,97 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.argeo
5
+ IDL file: argeo.idl
6
+
7
+ """
8
+
9
+ from dataclasses import dataclass
10
+ from enum import auto
11
+ from typing import TYPE_CHECKING, Optional
12
+
13
+ import cyclonedds.idl as idl
14
+ import cyclonedds.idl.annotations as annotate
15
+ import cyclonedds.idl.types as types
16
+
17
+ # root module import for resolving types
18
+ # generate_types.py: bind the root name the dotted
19
+ # annotations below already use, so get_type_hints works
20
+ import spatialdds_idl18
21
+ from spatialdds_idl18 import spatial
22
+
23
+ if TYPE_CHECKING:
24
+ import builtin
25
+ import spatial.common
26
+ import spatial.core
27
+
28
+
29
+ MODULE_ID = "spatial.argeo/1.8"
30
+ Time = types.typedef['spatialdds_idl18.spatial.argeo.Time', 'spatialdds_idl18.builtin.Time']
31
+ PoseSE3 = types.typedef['spatialdds_idl18.spatial.argeo.PoseSE3', 'spatialdds_idl18.spatial.core.PoseSE3']
32
+ FramedPose = types.typedef['spatialdds_idl18.spatial.argeo.FramedPose', 'spatialdds_idl18.spatial.core.FramedPose']
33
+ GeoPose = types.typedef['spatialdds_idl18.spatial.argeo.GeoPose', 'spatialdds_idl18.spatial.core.GeoPose']
34
+ CovMatrix = types.typedef['spatialdds_idl18.spatial.argeo.CovMatrix', 'spatialdds_idl18.spatial.core.CovMatrix']
35
+ FrameRef = types.typedef['spatialdds_idl18.spatial.argeo.FrameRef', 'spatialdds_idl18.spatial.common.FrameRef']
36
+
37
+ @dataclass
38
+ @annotate.appendable
39
+ @annotate.autoid("sequential")
40
+ class NodeGeo(idl.IdlStruct, typename="spatial.argeo.NodeGeo"):
41
+ map_id: str
42
+ node_id: str
43
+ annotate.key("node_id")
44
+ poses: types.sequence['spatialdds_idl18.spatial.argeo.FramedPose', 8]
45
+ has_geopose: bool
46
+ geopose: 'spatialdds_idl18.spatial.argeo.GeoPose'
47
+ source_id: str
48
+ seq: types.uint64
49
+ graph_epoch: types.uint64
50
+
51
+
52
+ @dataclass
53
+ @annotate.appendable
54
+ @annotate.autoid("sequential")
55
+ class QualityRequirements(idl.IdlStruct, typename="spatial.argeo.QualityRequirements"):
56
+ max_rmse_m: types.float64
57
+ min_confidence: types.float64
58
+
59
+ @annotate.final
60
+ class VpsStatus(idl.IdlEnum, typename="spatial.argeo.VpsStatus", default="VPS_SUCCESS"):
61
+ VPS_SUCCESS = 0
62
+ VPS_DEGRADED = 1
63
+ VPS_FAILED = 2
64
+
65
+ @dataclass
66
+ @annotate.appendable
67
+ @annotate.autoid("sequential")
68
+ class VpsRequest(idl.IdlStruct, typename="spatial.argeo.VpsRequest"):
69
+ query_id: str
70
+ annotate.key("query_id")
71
+ service_id: str
72
+ client_frame_ref: 'spatialdds_idl18.spatial.argeo.FrameRef'
73
+ has_prior_geopose: bool
74
+ prior_geopose: 'spatialdds_idl18.spatial.argeo.GeoPose'
75
+ query_blobs: types.sequence['spatialdds_idl18.spatial.core.BlobRef', 8]
76
+ query_stream_id: str
77
+ has_quality_requirements: bool
78
+ quality_requirements: 'spatialdds_idl18.spatial.argeo.QualityRequirements'
79
+ stamp: 'spatialdds_idl18.spatial.argeo.Time'
80
+
81
+
82
+ @dataclass
83
+ @annotate.appendable
84
+ @annotate.autoid("sequential")
85
+ class VpsResponse(idl.IdlStruct, typename="spatial.argeo.VpsResponse"):
86
+ query_id: str
87
+ annotate.key("query_id")
88
+ service_id: str
89
+ status: 'spatialdds_idl18.spatial.argeo.VpsStatus'
90
+ has_node_geo: bool
91
+ node_geo: 'spatialdds_idl18.spatial.argeo.NodeGeo'
92
+ confidence: types.float64
93
+ has_rmse_m: bool
94
+ rmse_m: types.float64
95
+ stamp: 'spatialdds_idl18.spatial.argeo.Time'
96
+
97
+
@@ -0,0 +1,27 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.common
5
+
6
+ """
7
+
8
+ from ._types import Aabb3D, AssetRef, BBox2D, CoordConvention, CovScope, CovarianceType, FrameRef, KV, Mat12x12, Mat3x3, Mat6x6, MetaKV, QuaternionXYZW, ScaleStatus, SpatialUri, Vec2, Vec3
9
+ __all__ = [
10
+ "Aabb3D",
11
+ "AssetRef",
12
+ "BBox2D",
13
+ "CoordConvention",
14
+ "CovScope",
15
+ "CovarianceType",
16
+ "FrameRef",
17
+ "KV",
18
+ "Mat12x12",
19
+ "Mat3x3",
20
+ "Mat6x6",
21
+ "MetaKV",
22
+ "QuaternionXYZW",
23
+ "ScaleStatus",
24
+ "SpatialUri",
25
+ "Vec2",
26
+ "Vec3",
27
+ ]
@@ -0,0 +1,104 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.common
5
+ IDL file: types.idl
6
+
7
+ """
8
+
9
+ from dataclasses import dataclass
10
+ from enum import auto
11
+ from typing import TYPE_CHECKING, Optional
12
+
13
+ import cyclonedds.idl as idl
14
+ import cyclonedds.idl.annotations as annotate
15
+ import cyclonedds.idl.types as types
16
+
17
+ # root module import for resolving types
18
+ # generate_types.py: bind the root name the dotted
19
+ # annotations below already use, so get_type_hints works
20
+ import spatialdds_idl18
21
+ from spatialdds_idl18 import spatial
22
+
23
+ BBox2D = types.typedef['spatialdds_idl18.spatial.common.BBox2D', types.array[types.float64, 4]]
24
+ Aabb3D = types.typedef['spatialdds_idl18.spatial.common.Aabb3D', types.array[types.float64, 6]]
25
+ Vec3 = types.typedef['spatialdds_idl18.spatial.common.Vec3', types.array[types.float64, 3]]
26
+ Mat3x3 = types.typedef['spatialdds_idl18.spatial.common.Mat3x3', types.array[types.float64, 9]]
27
+ Mat6x6 = types.typedef['spatialdds_idl18.spatial.common.Mat6x6', types.array[types.float64, 36]]
28
+ Mat12x12 = types.typedef['spatialdds_idl18.spatial.common.Mat12x12', types.array[types.float64, 144]]
29
+ QuaternionXYZW = types.typedef['spatialdds_idl18.spatial.common.QuaternionXYZW', types.array[types.float64, 4]]
30
+ SpatialUri = types.typedef['spatialdds_idl18.spatial.common.SpatialUri', str]
31
+
32
+ @dataclass
33
+ @annotate.appendable
34
+ @annotate.autoid("sequential")
35
+ class Vec2(idl.IdlStruct, typename="spatial.common.Vec2"):
36
+ x: types.float64
37
+ y: types.float64
38
+
39
+ @annotate.final
40
+ class CovarianceType(idl.IdlEnum, typename="spatial.common.CovarianceType", default="COV_NONE"):
41
+ COV_NONE = 0
42
+ COV_POS3 = 3
43
+ COV_POSE6 = 6
44
+ COV_ROT3 = 9
45
+ COV_POSE6_TWIST6 = 12
46
+ @annotate.final
47
+ class CoordConvention(idl.IdlEnum, typename="spatial.common.CoordConvention", default="ENU"):
48
+ ENU = 0
49
+ CV = 1
50
+ GRAPHICS = 2
51
+ UNITY_LH = 3
52
+ NED = 4
53
+ OTHER = 5
54
+ @annotate.final
55
+ class ScaleStatus(idl.IdlEnum, typename="spatial.common.ScaleStatus", default="SCALE_UNKNOWN"):
56
+ SCALE_UNKNOWN = 0
57
+ SCALE_DECLARED = 1
58
+ SCALE_DERIVED = 2
59
+ @annotate.final
60
+ class CovScope(idl.IdlEnum, typename="spatial.common.CovScope", default="COV_SCOPE_LOCAL"):
61
+ COV_SCOPE_LOCAL = 0
62
+ COV_SCOPE_COMPOSED = 1
63
+
64
+ @dataclass
65
+ @annotate.appendable
66
+ @annotate.autoid("sequential")
67
+ class FrameRef(idl.IdlStruct, typename="spatial.common.FrameRef"):
68
+ uuid: str
69
+ fqn: str
70
+ has_coord_convention: bool
71
+ coord_convention: 'spatialdds_idl18.spatial.common.CoordConvention'
72
+ has_scale: bool
73
+ scale_status: 'spatialdds_idl18.spatial.common.ScaleStatus'
74
+ meters_per_unit: types.float64
75
+ display_unit: str
76
+
77
+
78
+ @dataclass
79
+ @annotate.appendable
80
+ @annotate.autoid("sequential")
81
+ class KV(idl.IdlStruct, typename="spatial.common.KV"):
82
+ key: str
83
+ value: str
84
+
85
+
86
+ @dataclass
87
+ @annotate.appendable
88
+ @annotate.autoid("sequential")
89
+ class MetaKV(idl.IdlStruct, typename="spatial.common.MetaKV"):
90
+ namespace: str
91
+ json: str
92
+ entries: types.sequence['spatialdds_idl18.spatial.common.KV', 64]
93
+
94
+
95
+ @dataclass
96
+ @annotate.appendable
97
+ @annotate.autoid("sequential")
98
+ class AssetRef(idl.IdlStruct, typename="spatial.common.AssetRef"):
99
+ uri: str
100
+ media_type: str
101
+ hash: str
102
+ meta: types.sequence['spatialdds_idl18.spatial.common.MetaKV', 16]
103
+
104
+
@@ -0,0 +1,17 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.core.GnssService
5
+
6
+ """
7
+
8
+ from ._core import BEIDOU, GALILEO, GLONASS, GPS, IRNSS, QZSS, SBAS_SV
9
+ __all__ = [
10
+ "BEIDOU",
11
+ "GALILEO",
12
+ "GLONASS",
13
+ "GPS",
14
+ "IRNSS",
15
+ "QZSS",
16
+ "SBAS_SV",
17
+ ]
@@ -0,0 +1,27 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.core.GnssService
5
+ IDL file: core.idl
6
+
7
+ """
8
+
9
+ from dataclasses import dataclass
10
+ from enum import auto
11
+ from typing import TYPE_CHECKING, Optional
12
+
13
+ import cyclonedds.idl as idl
14
+ import cyclonedds.idl.annotations as annotate
15
+ import cyclonedds.idl.types as types
16
+
17
+ # root module import for resolving types
18
+ from spatialdds_idl18 import spatial
19
+
20
+ GPS = 1
21
+ GLONASS = 2
22
+ BEIDOU = 4
23
+ GALILEO = 8
24
+ QZSS = 16
25
+ IRNSS = 32
26
+ SBAS_SV = 64
27
+
@@ -0,0 +1,40 @@
1
+ """
2
+ Generated by Eclipse Cyclone DDS idlc Python Backend
3
+ Cyclone DDS IDL version: v11.0.1
4
+ Module: spatial.core
5
+
6
+ """
7
+
8
+ from . import GnssService
9
+ from ._core import Aabb3, BlobChunk, BlobRef, ComponentRef, CovMatrix, Edge, EdgeTypeCore, EntityBinding, FrameRef, FrameTransform, FramedPose, GeoAnchor, GeoPose, GnssFixType, MODULE_ID, NavSatStatus, Node, PatchOp, PlannedTrajectory, PlannedWaypoint, PoseSE3, SnapshotRequest, SnapshotResponse, SpatialUri, TileKey, TileMeta, TilePatch, Time
10
+ __all__ = [
11
+ "GnssService",
12
+ "Aabb3",
13
+ "BlobChunk",
14
+ "BlobRef",
15
+ "ComponentRef",
16
+ "CovMatrix",
17
+ "Edge",
18
+ "EdgeTypeCore",
19
+ "EntityBinding",
20
+ "FrameRef",
21
+ "FrameTransform",
22
+ "FramedPose",
23
+ "GeoAnchor",
24
+ "GeoPose",
25
+ "GnssFixType",
26
+ "MODULE_ID",
27
+ "NavSatStatus",
28
+ "Node",
29
+ "PatchOp",
30
+ "PlannedTrajectory",
31
+ "PlannedWaypoint",
32
+ "PoseSE3",
33
+ "SnapshotRequest",
34
+ "SnapshotResponse",
35
+ "SpatialUri",
36
+ "TileKey",
37
+ "TileMeta",
38
+ "TilePatch",
39
+ "Time",
40
+ ]