From db4ee53b0304ef07a0a3804ec570404c42b22c53 Mon Sep 17 00:00:00 2001 From: Stephane Louis Dit Picard Date: Wed, 27 Mar 2024 18:08:41 +0100 Subject: [PATCH 01/10] fix: restore missing pose values (matrix/vector+quaternion/geodetic) --- API/common/commonopenapi.yaml | 347 +++++++----------- API/worldanalysis/worldanalysisopenapi.yaml | 369 +++++++++++--------- 2 files changed, 326 insertions(+), 390 deletions(-) diff --git a/API/common/commonopenapi.yaml b/API/common/commonopenapi.yaml index 845611c..c64513d 100644 --- a/API/common/commonopenapi.yaml +++ b/API/common/commonopenapi.yaml @@ -13,244 +13,135 @@ #------------------------------- schemas: - Mode_WorldAnalysis: - description: Mode representing the context of the relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - type: string - enum: [TRACKABLES_TO_DEVICE, DEVICE_TO_TRACKABLES] - example: TRACKABLES_TO_DEVICE - - Mode_WorldStorage: - description: Mode representing the context of the relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - type: string - enum: [TRACKABLES_TO_REQUEST, REQUEST_TO_TRACKABLES] - example: TRACKABLES_TO_REQUEST - - EncodingInformationStructure: - description: An object holding the info of a Trackable`'`s encoding information `:` the data format and the version. - required: - - dataFormat - - version - properties: - dataFormat: - description: Identifier of the target framework. - type: string - enum: [HOLOLENS, ARKIT, ARCORE, VUFORIA, ARUCO, OTHER] - example : "HOLOLENS" - version: - description: The version of the format - type: string - example : "1.01" - - Transform3D: - description: Coordinate reference system of the world anchor, a 4*4 matrix (rowmajor) represented by a float vector. - type: array - minItems: 16 - maxItems: 16 - items: - type: number - format: float - example: [ 1, 0, 0, 3, - 0, 1, 0, 3, - 0, 0, 1, 3, - 0, 0, 0, 1] - - UnitSystem: - description: Unit of length. + Mode_WorldAnalysis: + description: Mode representing the context of the relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + type: string + enum: [TRACKABLES_TO_DEVICE, DEVICE_TO_TRACKABLES] + example: TRACKABLES_TO_DEVICE + + Mode_WorldStorage: + description: Mode representing the context of the relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + type: string + enum: [TRACKABLES_TO_REQUEST, REQUEST_TO_TRACKABLES] + example: TRACKABLES_TO_REQUEST + + EncodingInformationStructure: + description: An object holding the info of a Trackable`'`s encoding information `:` the data format and the version. + required: + - dataFormat + - version + properties: + dataFormat: + description: Identifier of the target framework. type: string - enum: [MM, CM, DM, M, DAM, HM, KM, INCH, FOOT, YARD, MILE] - example: M - - Size: - description: Size object in format {width, length, depth}. - type: array - items: - type: number - format: double - minItems: 3 - maxItems: 3 - example: [1.0,1.0,1.5] - - Token: - type: string - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuYXV0aDAuY29tLyIsImF1ZCI6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2NhbGFuZGFyL3YxLyIsInN1YiI6InVzcl8xMjMiLCJpYXQiOjE0NTg3ODU3OTYsImV4cCI6MTQ1ODg3MjE5Nn0.CA7eaHjIHz5NxeIJoFK9krqaeZrPLwmMmgI_XiQiIkQ - description: A string representing the token of the User. - - Error: - required: - - code - - message - properties: - code: - type: integer - format: int32 - example: 406 - message: - type: string - example: "Error 406" - - SessionID: - type: string - example: 4JA1xVJSYKE47UM7RKDrfUcTXlJ0wxSQ - description: A string representing the session ID associated with the AR session. - - Pose: - description: An element representing the result of the pose estimation of an AR device, a Trackable or a WorldAnchor by the World Analysis - type: object - properties: - uuid: - description: UUID of the associated Anchor or Trackable - type: string - format: uuid - example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" - estimationState: - description: Extensible List of possible states of the pose estimation - type: string - enum: [OK, FAILURE] - example: OK - instructionInfo: - description: A message detailing the context of the pose estimation - type: string - example: Lighting is toom dim - timestamp: - description: Capture time of the pose as number of milliseconds since unix epoch - type: integer - example : 1704812114841 - confidence: - description: A score representing the confidence concerning the accuracy of the pose estimated - type: number - example : 50.00 - mode: - description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode_WorldAnalysis' - value: - description: The pose value - oneOf: - - $ref: '#/components/schemas/MatrixPoseValue' - - $ref: '#/components/schemas/VectorQuaternionPoseValue' - - $ref: '#/components/schemas/GeodeticPoseValue' - example: - type: "MATRIX" - transform: [ 1, 0, 0, 3, - 0, 1, 0, 3, - 0, 0, 1, 3, - 0, 0, 0, 1 ] - subscriptionUrl: - description: The URL to use for subscription (if available), see [/pose/subscriptions] - type: string - example: "http://mywordanalysisserver.com/pose/subscriptions?target=fa8bbe40-8052-11ec-a8a3-0242ac120002" - - PoseValue: - description: Base type to define the pose value - type: object - properties: - type: - description: Encoding type of the Pose - type: string - enum: [MATRIX, VECTOR_QUATERNION, GEODETIC] - - MatrixPoseValue: - description: A pose value that is described with a 4*4 matrix - allOf: #inheritance - - $ref: '#/components/schemas/PoseValue' - properties: - transform: - description : Pose data - $ref: '#/components/schemas/Transform3D' - unit: - description: Unit system of the pose - $ref: '#/components/schemas/UnitSystem' - - VectorQuaternionPoseValue: - description: A pose value that is described with a position and a rotation - allOf: #inheritance - - $ref: '#/components/schemas/PoseValue' - properties: - position: - description : Pose Position - $ref: '#/components/schemas/Vector3' - rotation: - description : Pose Rotation - $ref: '#/components/schemas/Quaternion' - unit: - description: Unit system of the pose - $ref: '#/components/schemas/UnitSystem' - - GeodeticPoseValue: - description : A pose value in a geodetic coordinate system - allOf: #inheritance - - $ref: '#/components/schemas/PoseValue' - properties: - altitude: - type: number - example: 70.0 - longitude: - type: number - example: 7.013579 - latitude: - type: number - example: 43.57351 - rotation: - description: Pose Rotation - $ref: '#/components/schemas/Quaternion' - geodeticsystem: - description: Associated geodetic system of the pose - type: string - example: "WGS84" - rotationTarget: - description: Coordinate system of the rotation - type : string - enum: [EASTUPSOUTH, WESTUPNORTH] - example: EASTUPSOUTH - - Vector3: - description: A 3 coordinates vector - type: array - minItems: 3 - maxItems: 3 - items: - type: number - format: float - example: [ 1, 0, 0 ] + enum: [HOLOLENS, ARKIT, ARCORE, VUFORIA, ARUCO, OTHER] + example : "HOLOLENS" + version: + description: The version of the format + type: string + example : "1.01" - Quaternion: - description: A quaternion + Transform3D: + description: Coordinate reference system of the world anchor, a 4*4 matrix (rowmajor) represented by a float vector. type: array - minItems: 4 - maxItems: 4 + minItems: 16 + maxItems: 16 items: type: number format: float - example: [ 0, 0, 0, 1 ] + example: [ 1, 0, 0, 3, + 0, 1, 0, 3, + 0, 0, 1, 3, + 0, 0, 0, 1] - TypeWorldStorage: - description: Trackable or Anchor + UnitSystem: + description: Unit of length. type: string - enum: [TRACKABLE, ANCHOR] - example: ANCHOR + enum: [MM, CM, DM, M, DAM, HM, KM, INCH, FOOT, YARD, MILE] + example: M - Capability: - description: An object representing a supported capability of the World Analysis and its associated metadata - type: object - uniqueItems: true - properties: - trackableType: - type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] - example: "FIDUCIAL_MARKER" - encodingInformation: - $ref: '#/components/schemas/EncodingInformationStructure' - framerate: - description: Number of frames per second the tracking of this type of trackable is performed by the World Analysis + Size: + description: Size object in format {width, length, depth}. + type: array + items: type: number - example : 30.0 - latency: - description: Mean tracking latency in milliseconds for this type of trackable - type: number - example: 10.0 - accuracy: - description: Accuracy score for the detection of this type of Trackable by the World Analysis - type: number - example: 50.0 + format: double + minItems: 3 + maxItems: 3 + example: [1.0,1.0,1.5] + + Token: + type: string + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2V4YW1wbGUuYXV0aDAuY29tLyIsImF1ZCI6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2NhbGFuZGFyL3YxLyIsInN1YiI6InVzcl8xMjMiLCJpYXQiOjE0NTg3ODU3OTYsImV4cCI6MTQ1ODg3MjE5Nn0.CA7eaHjIHz5NxeIJoFK9krqaeZrPLwmMmgI_XiQiIkQ + description: A string representing the token of the User. + + Error: + required: + - code + - message + properties: + code: + type: integer + format: int32 + example: 406 + message: + type: string + example: "Error 406" + + SessionID: + type: string + example: 4JA1xVJSYKE47UM7RKDrfUcTXlJ0wxSQ + description: A string representing the session ID associated with the AR session. + + Vector3: + description: A 3 coordinates vector + type: array + minItems: 3 + maxItems: 3 + items: + type: number + format: float + example: [ 1, 0, 0 ] + + Quaternion: + description: A quaternion + type: array + minItems: 4 + maxItems: 4 + items: + type: number + format: float + example: [ 0, 0, 0, 1 ] + + TypeWorldStorage: + description: Trackable or Anchor + type: string + enum: [TRACKABLE, ANCHOR] + example: ANCHOR + + Capability: + description: An object representing a supported capability of the World Analysis and its associated metadata + type: object + uniqueItems: true + properties: + trackableType: + type: string + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] + example: "FIDUCIAL_MARKER" + encodingInformation: + $ref: '#/components/schemas/EncodingInformationStructure' + framerate: + description: Number of frames per second the tracking of this type of trackable is performed by the World Analysis + type: number + example : 30.0 + latency: + description: Mean tracking latency in milliseconds for this type of trackable + type: number + example: 10.0 + accuracy: + description: Accuracy score for the detection of this type of Trackable by the World Analysis + type: number + example: 50.0 #------------------------------- # Reusable responses diff --git a/API/worldanalysis/worldanalysisopenapi.yaml b/API/worldanalysis/worldanalysisopenapi.yaml index 29a66b1..5206d16 100644 --- a/API/worldanalysis/worldanalysisopenapi.yaml +++ b/API/worldanalysis/worldanalysisopenapi.yaml @@ -449,175 +449,220 @@ components: # Reusable schemas (data models) #------------------------------- schemas: - - - Pose: - description: An element representing the result of the pose estimation of an AR device, a Trackable or a WorldAnchor by the World Analysis - type: object - properties: - uuid: - description: UUID of the associated Anchor or Trackable - type: string - format: uuid - example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" - estimationState: - description: Extensible List of possible states of the pose estimation - type: string - enum: [OK, FAILURE] - example: OK - instructionInfo: - description: A message detailing the context of the pose estimation - type: string - example: Lighting is toom dim - timestamp: - description: Capture time of the pose as number of milliseconds since unix epoch - type: integer - example : 1704812114841 - confidence: - description: A score representing the confidence concerning the accuracy of the pose estimated - type: number - example : 50.00 - mode: - description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' - value: - description: The pose value - oneOf: - - $ref: '#/components/schemas/MatrixPoseValue' - - $ref: '../common/commonopenapi.yaml#/components/schemas/VectorQuaternionPoseValue' - - $ref: '../common/commonopenapi.yaml#/components/schemas/GeodeticPoseValue' - example: - type: "MATRIX" - transform: [ 1, 0, 0, 3, - 0, 1, 0, 3, - 0, 0, 1, 3, - 0, 0, 0, 1 ] - - PoseValue: - description: Base type to define the pose value - type: object - properties: - type: - description: Encoding type of the Pose - type: string - enum: [MATRIX, VECTOR_QUATERNION, GEODETIC] + + Pose: + description: An element representing the result of the pose estimation of an AR device, a Trackable or a WorldAnchor by the World Analysis + type: object + properties: + uuid: + description: UUID of the associated Anchor or Trackable + type: string + format: uuid + example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" + estimationState: + description: Extensible List of possible states of the pose estimation + type: string + enum: [OK, FAILURE] + example: OK + instructionInfo: + description: A message detailing the context of the pose estimation + type: string + example: Lighting is toom dim + timestamp: + description: Capture time of the pose as number of milliseconds since unix epoch + type: integer + example : 1704812114841 + confidence: + description: A score representing the confidence concerning the accuracy of the pose estimated + type: number + example : 50.00 + mode: + description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + $ref: '#/components/schemas/Mode_WorldAnalysis' + value: + description: The pose value + oneOf: + - $ref: '#/components/schemas/MatrixPoseValue' + - $ref: '#/components/schemas/VectorQuaternionPoseValue' + - $ref: '#/components/schemas/GeodeticPoseValue' + example: + type: "MATRIX" + transform: [ 1, 0, 0, 3, + 0, 1, 0, 3, + 0, 0, 1, 3, + 0, 0, 0, 1 ] + subscriptionUrl: + description: The URL to use for subscription (if available), see [/pose/subscriptions] + type: string + example: "http://mywordanalysisserver.com/pose/subscriptions?target=fa8bbe40-8052-11ec-a8a3-0242ac120002" - MatrixPoseValue: - description: A pose value that is described with a 4*4 matrix - allOf: #inheritance + PoseValue: + description: Base type to define the pose value + type: object + properties: + type: + description: Encoding type of the Pose + type: string + enum: [MATRIX, VECTOR_QUATERNION, GEODETIC] + + MatrixPoseValue: + description: A pose value that is described with a 4*4 matrix + allOf: #inheritance + - $ref: '#/components/schemas/PoseValue' + properties: + transform: + description : Transor data + $ref: '../common/commonopenapi.yaml#/components/schemas/Transform3D' + unit: + description: Unit system of the pose + $ref: '../common/commonopenapi.yaml#/components/schemas/UnitSystem' + + VectorQuaternionPoseValue: + description: A pose value that is described with a position and a rotation + allOf: #inheritance - $ref: '#/components/schemas/PoseValue' - properties: - transform: - description : Pose data - $ref: '../common/commonopenapi.yaml#/components/schemas/Transform3D' - unit: - description: Unit system of the pose - $ref: '../common/commonopenapi.yaml#/components/schemas/UnitSystem' + properties: + position: + description : Pose Position + $ref: '../common/commonopenapi.yaml#/components/schemas/Vector3' + rotation: + description : Pose Rotation + $ref: '../common/commonopenapi.yaml#/components/schemas/Quaternion' + unit: + description: Unit system of the pose + $ref: '../common/commonopenapi.yaml#/components/schemas/UnitSystem' - PoseConfiguration: - description: An object representing the framerate that the World Analysis needs to reach for a given Trackable Type - type: object - uniqueItems: true - properties: - trackableType: - type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] - example: "FIDUCIAL_MARKER" - encodingInformation: - $ref: '../common/commonopenapi.yaml#/components/schemas/EncodingInformationStructure' - framerate: - description: Number of frames per second the tracking expected for this type of trackable is performed by the World Analysis - type: number - example : 30.0 + GeodeticPoseValue: + description : A pose value in a geodetic coordinate system + allOf: #inheritance + - $ref: '#/components/schemas/PoseValue' + properties: + altitude: + type: number + example: 70.0 + longitude: + type: number + example: 7.013579 + latitude: + type: number + example: 43.57351 + rotation: + description: Pose Rotation + $ref: '../common/commonopenapi.yaml#/components/schemas/Quaternion' + geodeticsystem: + description: Associated geodetic system of the pose + type: string + example: "WGS84" + rotationTarget: + description: Coordinate system of the rotation + type : string + enum: [EASTUPSOUTH, WESTUPNORTH] + example: EASTUPSOUTH - SubscriptionSingleRequest: - description: Request when subscribing for pose update of a Trackable or a WorldAnchor - type: object - properties: - target: - description: UUID of the Trackable or Anchor to subscribe - type: string + PoseConfiguration: + description: An object representing the framerate that the World Analysis needs to reach for a given Trackable Type + type: object + uniqueItems: true + properties: + trackableType: + type: string + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] + example: "FIDUCIAL_MARKER" + encodingInformation: + $ref: '../common/commonopenapi.yaml#/components/schemas/EncodingInformationStructure' + framerate: + description: Number of frames per second the tracking expected for this type of trackable is performed by the World Analysis + type: number + example : 30.0 + + SubscriptionSingleRequest: + description: Request when subscribing for pose update of a Trackable or a WorldAnchor + type: object + properties: + target: + description: UUID of the Trackable or Anchor to subscribe + type: string + format: uuid + example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" + mode: + description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' + validity: + description: Subscription validity delay in millisecond + type: integer + example: 20000 + webhookUrl: + description: Optional URL of your listening webhook for collecting the poses + type: string + default: null + example: "http://myscenemanagementserver.com/poses" + required: + - target + - mode + + SubscriptionMultipleRequest: + description: Request when subscribing for pose update of multiple Trackable or a WorldAnchor + type: object + properties: + targets: + description: List of UUID of the Trackable or Anchor to subscribe + type: array + items: format: uuid - example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" - mode: - description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + example: [ "fa8bbe40-8052-11ec-a8a3-0242ac120002", "fa8bbe40-8052-11ec-a8a3-0242ac120003"] + mode: + description: List of modes representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + type: array + items: $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' - validity: - description: Subscription validity delay in millisecond - type: integer - example: 20000 - webhookUrl: - description: Optional URL of your listening webhook for collecting the poses + validity: + description: Subscription validity delay in millisecond + type: integer + example: 20000 + webhookUrl: + description: Optional URL of your listening webhook for collecting the poses + type: string + default: null + example: "http://myscenemanagementserver.com/poses" + required: + - targets + - mode + + SubscriptionSingle: + description: Response when subscribing for pose update of a Trackable or a WorldAnchor + type: object + properties: + uuid: + description: UUID of the subscription + type: string + format: uuid + example: "bdc83e6b-a89d-4b29-9c99-e9015d448b10" + target: + description: UUID of the Trackable or Anchor associated with the subscription + type: string + format: uuid + example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" + mode: + description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' + validity: + type: integer + example: 20000 + webhookUrl: + description: Optional URL of the listening webhook that collect the poses type: string default: null - example: "http://myscenemanagementserver.com/poses" - required: - - target - - mode + websocketUrl: + description: Optional dynamically generated websocket url in case of no webhook provided in the request body + type: string + example: "wss://mywordanalysisserver.com/websocket/bdc83e6b-a89d-4b29-9c99-e9015d448b10" - SubscriptionMultipleRequest: - description: Request when subscribing for pose update of multiple Trackable or a WorldAnchor - type: object - properties: - targets: - description: List of UUID of the Trackable or Anchor to subscribe - type: array - items: - format: uuid - example: [ "fa8bbe40-8052-11ec-a8a3-0242ac120002", "fa8bbe40-8052-11ec-a8a3-0242ac120003"] - mode: - description: List of modes representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - type: array - items: - $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' - validity: - description: Subscription validity delay in millisecond - type: integer - example: 20000 - webhookUrl: - description: Optional URL of your listening webhook for collecting the poses - type: string - default: null - example: "http://myscenemanagementserver.com/poses" - required: - - targets - - mode - - SubscriptionSingle: - description: Response when subscribing for pose update of a Trackable or a WorldAnchor - type: object - properties: - uuid: - description: UUID of the subscription - type: string - format: uuid - example: "bdc83e6b-a89d-4b29-9c99-e9015d448b10" - target: - description: UUID of the Trackable or Anchor associated with the subscription - type: string - format: uuid - example: "fa8bbe40-8052-11ec-a8a3-0242ac120002" - mode: - description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' - validity: - type: integer - example: 20000 - webhookUrl: - description: Optional URL of the listening webhook that collect the poses - type: string - default: null - websocketUrl: - description: Optional dynamically generated websocket url in case of no webhook provided in the request body - type: string - example: "wss://mywordanalysisserver.com/websocket/bdc83e6b-a89d-4b29-9c99-e9015d448b10" - - SubscriptionMultiple: - description: Response when subscribing for pose update of multiple Trackable or a WorldAnchor - type: object - properties: - subscriptions: - type: array - items: - $ref: '#/components/schemas/SubscriptionSingle' + SubscriptionMultiple: + description: Response when subscribing for pose update of multiple Trackable or a WorldAnchor + type: object + properties: + subscriptions: + type: array + items: + $ref: '#/components/schemas/SubscriptionSingle' -- GitLab From 033d8cb97521ab8aa36e807f1482c9f5bd97c50b Mon Sep 17 00:00:00 2001 From: jlacoche Date: Tue, 9 Apr 2024 17:14:44 +0200 Subject: [PATCH 02/10] Add Mesh as a possible trackable type --- API/common/commonopenapi.yaml | 2 +- API/worldanalysis/worldanalysisopenapi.yaml | 2 +- API/worldstorage/worldstorageopenapi.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/API/common/commonopenapi.yaml b/API/common/commonopenapi.yaml index c64513d..516740d 100644 --- a/API/common/commonopenapi.yaml +++ b/API/common/commonopenapi.yaml @@ -126,7 +126,7 @@ properties: trackableType: type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MESH, MAP, GEOPOSE, OTHER] example: "FIDUCIAL_MARKER" encodingInformation: $ref: '#/components/schemas/EncodingInformationStructure' diff --git a/API/worldanalysis/worldanalysisopenapi.yaml b/API/worldanalysis/worldanalysisopenapi.yaml index 5206d16..378d97c 100644 --- a/API/worldanalysis/worldanalysisopenapi.yaml +++ b/API/worldanalysis/worldanalysisopenapi.yaml @@ -566,7 +566,7 @@ components: properties: trackableType: type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MESH, MAP, GEOPOSE, OTHER] example: "FIDUCIAL_MARKER" encodingInformation: $ref: '../common/commonopenapi.yaml#/components/schemas/EncodingInformationStructure' diff --git a/API/worldstorage/worldstorageopenapi.yaml b/API/worldstorage/worldstorageopenapi.yaml index b0ca2b1..1a7c8c9 100644 --- a/API/worldstorage/worldstorageopenapi.yaml +++ b/API/worldstorage/worldstorageopenapi.yaml @@ -703,7 +703,7 @@ components: trackableType: description: Extensible list of Trackable types, possibly handled by complient world storage implementation. type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, GEOPOSE, OTHER] + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MESH, MAP, GEOPOSE, OTHER] example: FIDUCIAL_MARKER trackableEncodingInformation: $ref: '../common/commonopenapi.yaml#/components/schemas/EncodingInformationStructure' -- GitLab From 84f816367c469b590cb2db47a4bb1b06b56729f9 Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Wed, 10 Apr 2024 17:42:17 +0200 Subject: [PATCH 03/10] Add an Unknown enum for the type because there is needed! --- API/common/commonopenapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API/common/commonopenapi.yaml b/API/common/commonopenapi.yaml index 845611c..c359f41 100644 --- a/API/common/commonopenapi.yaml +++ b/API/common/commonopenapi.yaml @@ -225,7 +225,7 @@ TypeWorldStorage: description: Trackable or Anchor type: string - enum: [TRACKABLE, ANCHOR] + enum: [TRACKABLE, ANCHOR, UNKNOWN] example: ANCHOR Capability: -- GitLab From 0f73cb97f11ecebcf924888993afe93519b15b55 Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Wed, 10 Apr 2024 17:53:39 +0200 Subject: [PATCH 04/10] Removed eric as maintener. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1931a16..f4e0d4b 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Contains the source code and specification related to the World Storage API. - Type internal (The group and any internal projects can be viewed by any user logged in w. EOL) can be made public when needed -**Maintainer**: Eric Villain +**Maintainer**: ? - [Access to the Forge](https://forge.etsi.org/rep/arf) -- GitLab From 04e87eab153ee743097be7ca8ce2e83ed87cf555 Mon Sep 17 00:00:00 2001 From: esle7566 Date: Mon, 15 Apr 2024 18:33:27 +0200 Subject: [PATCH 05/10] fix: error in previous merge, value UNKNOWN was removed from enum TypeWorldStorage --- API/common/commonopenapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API/common/commonopenapi.yaml b/API/common/commonopenapi.yaml index 516740d..7dbb8f2 100644 --- a/API/common/commonopenapi.yaml +++ b/API/common/commonopenapi.yaml @@ -116,7 +116,7 @@ TypeWorldStorage: description: Trackable or Anchor type: string - enum: [TRACKABLE, ANCHOR] + enum: [TRACKABLE, ANCHOR, UNKNOWN] example: ANCHOR Capability: -- GitLab From 47a1c4efa0dd08162f6d632e279443e1e39cc5ce Mon Sep 17 00:00:00 2001 From: esle7566 Date: Mon, 15 Apr 2024 18:34:46 +0200 Subject: [PATCH 06/10] refactor: Add a new schema to common to describe TrackableType --- API/common/commonopenapi.yaml | 10 +++++++--- API/worldstorage/worldstorageopenapi.yaml | 7 ++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/API/common/commonopenapi.yaml b/API/common/commonopenapi.yaml index 7dbb8f2..0c92edc 100644 --- a/API/common/commonopenapi.yaml +++ b/API/common/commonopenapi.yaml @@ -119,15 +119,19 @@ enum: [TRACKABLE, ANCHOR, UNKNOWN] example: ANCHOR + TrackableType: + description: Type for trackable + type: string + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MESH, MAP, GEOPOSE, OTHER] + example: "FIDUCIAL_MARKER" + Capability: description: An object representing a supported capability of the World Analysis and its associated metadata type: object uniqueItems: true properties: trackableType: - type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MESH, MAP, GEOPOSE, OTHER] - example: "FIDUCIAL_MARKER" + $ref: '#/components/schemas/TrackableType' encodingInformation: $ref: '#/components/schemas/EncodingInformationStructure' framerate: diff --git a/API/worldstorage/worldstorageopenapi.yaml b/API/worldstorage/worldstorageopenapi.yaml index 1a7c8c9..054ee18 100644 --- a/API/worldstorage/worldstorageopenapi.yaml +++ b/API/worldstorage/worldstorageopenapi.yaml @@ -701,12 +701,9 @@ components: format: uuid example: bd6ce7ce-7fe8-487d-a179-fddfe914f293 trackableType: - description: Extensible list of Trackable types, possibly handled by complient world storage implementation. - type: string - enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MESH, MAP, GEOPOSE, OTHER] - example: FIDUCIAL_MARKER + $ref: '../common/commonopenapi.yaml#/components/schemas/TrackableType' trackableEncodingInformation: - $ref: '../common/commonopenapi.yaml#/components/schemas/EncodingInformationStructure' + $ref: '../common/commonopenapi.yaml#/components/schemas/EncodingInformationStructure' trackablePayload: description: The data provided to create the Trackable in a specific format handled by the world storage service. type: string -- GitLab From 4d8c1a98018e7d2324900546d5cd024f604e604a Mon Sep 17 00:00:00 2001 From: jlacoche Date: Wed, 24 Apr 2024 11:24:15 +0200 Subject: [PATCH 07/10] fix : one bad reference to Mode_WorldAnalysis --- API/worldanalysis/worldanalysisopenapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API/worldanalysis/worldanalysisopenapi.yaml b/API/worldanalysis/worldanalysisopenapi.yaml index 378d97c..f515b4a 100644 --- a/API/worldanalysis/worldanalysisopenapi.yaml +++ b/API/worldanalysis/worldanalysisopenapi.yaml @@ -478,7 +478,7 @@ components: example : 50.00 mode: description: Mode representing the context of the Relocalization information (AR device to WorldAnchor/Trackable or WorldAnchor/Trackable to AR device) - $ref: '#/components/schemas/Mode_WorldAnalysis' + $ref: '../common/commonopenapi.yaml#/components/schemas/Mode_WorldAnalysis' value: description: The pose value oneOf: -- GitLab From c60cee2a1a6afb98c7e6364bf81700d948d5cefa Mon Sep 17 00:00:00 2001 From: jlacoche Date: Wed, 24 Apr 2024 15:49:06 +0200 Subject: [PATCH 08/10] Add PoseValue as possibility for posevalue parameter inside Pose. If not: NSWag uses MatrixPoseValue as only possibility --- API/worldanalysis/worldanalysisopenapi.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/API/worldanalysis/worldanalysisopenapi.yaml b/API/worldanalysis/worldanalysisopenapi.yaml index f515b4a..ca1e836 100644 --- a/API/worldanalysis/worldanalysisopenapi.yaml +++ b/API/worldanalysis/worldanalysisopenapi.yaml @@ -482,6 +482,7 @@ components: value: description: The pose value oneOf: + - $ref: '#/components/schemas/PoseValue' - $ref: '#/components/schemas/MatrixPoseValue' - $ref: '#/components/schemas/VectorQuaternionPoseValue' - $ref: '#/components/schemas/GeodeticPoseValue' -- GitLab From 746caeb0f68a91b08ec6012395eefecb88a8f1c6 Mon Sep 17 00:00:00 2001 From: jlacoche Date: Tue, 14 May 2024 18:37:31 +0200 Subject: [PATCH 09/10] Reloc information now returns the type of the requested uuid, get capabilities for a single uuid now returns a list of capabilities --- API/worldanalysis/worldanalysisopenapi.yaml | 6 ++++-- API/worldstorage/worldstorageopenapi.yaml | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/API/worldanalysis/worldanalysisopenapi.yaml b/API/worldanalysis/worldanalysisopenapi.yaml index ca1e836..ecb2f3b 100644 --- a/API/worldanalysis/worldanalysisopenapi.yaml +++ b/API/worldanalysis/worldanalysisopenapi.yaml @@ -429,8 +429,10 @@ paths: properties: type: $ref: '../common/commonopenapi.yaml#/components/schemas/TypeWorldStorage' - capability: - $ref: '../common/commonopenapi.yaml#/components/schemas/Capability' + capabilities: + type: array + items: + $ref: '../common/commonopenapi.yaml#/components/schemas/Capability' '400': $ref: '../common/commonopenapi.yaml#/components/responses/400_BadRequest' '403': diff --git a/API/worldstorage/worldstorageopenapi.yaml b/API/worldstorage/worldstorageopenapi.yaml index 054ee18..b2b9a3b 100644 --- a/API/worldstorage/worldstorageopenapi.yaml +++ b/API/worldstorage/worldstorageopenapi.yaml @@ -659,6 +659,8 @@ components: type: string format: uuid example: 89b7e1f5-dd41-4746-9279-e1ef9284fe4d + typeWorldStorage: + $ref: '../common/commonopenapi.yaml#/components/schemas/TypeWorldStorage' relocObjects: description: an array with trackables and their transforms linking them to the requestUUID element. type: array -- GitLab From 61f9f881fd6e4df80767f35107ae36750b307395 Mon Sep 17 00:00:00 2001 From: esle7566 Date: Fri, 17 May 2024 14:32:24 +0200 Subject: [PATCH 10/10] refactor: rename attribute in GET RelocalizationInformation from typeWorldStorage to requestType --- API/worldstorage/worldstorageopenapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API/worldstorage/worldstorageopenapi.yaml b/API/worldstorage/worldstorageopenapi.yaml index b2b9a3b..b8ebff1 100644 --- a/API/worldstorage/worldstorageopenapi.yaml +++ b/API/worldstorage/worldstorageopenapi.yaml @@ -659,7 +659,7 @@ components: type: string format: uuid example: 89b7e1f5-dd41-4746-9279-e1ef9284fe4d - typeWorldStorage: + requestType: $ref: '../common/commonopenapi.yaml#/components/schemas/TypeWorldStorage' relocObjects: description: an array with trackables and their transforms linking them to the requestUUID element. -- GitLab