From 976df6ca2372333aab0252ddba29eb06b223e272 Mon Sep 17 00:00:00 2001 From: Frank Rohde <frank.rohde@tu-dresden.de> Date: Fri, 17 Sep 2021 18:30:05 +0200 Subject: [PATCH] many additions, some adjustments to SimpleScene.proto --- interfaces/SimpleScene/SimpleScene.proto | 64 ++++++++++++++++++++---- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/interfaces/SimpleScene/SimpleScene.proto b/interfaces/SimpleScene/SimpleScene.proto index 06a2a7d..7414919 100644 --- a/interfaces/SimpleScene/SimpleScene.proto +++ b/interfaces/SimpleScene/SimpleScene.proto @@ -9,41 +9,78 @@ message IposConfig { message IposObjectConfig { string id = 1; // unique for each object, but there may be multiple positioning sensors for that object string sensorId = 2; // unique (each sensor localizes a single object) - string type = 3; // CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER + string agentType = 3; // CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER + string sensorType = 4; // BLUETOOTH, UWB, NFC, RFID, IMU... } message IposPositionUpdate { repeated IposObject object = 1; } +message IposExitNotification { + repeated IposObject object = 1; +} + message IposObject { string id = 1; // unique for each object, but there may be multiple sensors string sensorId = 2; //unique string type = 3; // Applications may send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER - IposRelativePosition position = 4; + IposPosition position = 4; IposSimpleOrientation orientation = 5; string lastPosUpdate = 6; // https://en.wikipedia.org/wiki/ISO_8601 } -message IposFrame { +message IposFrameConfig { string id = 1; // unique for every frame, used for relative coordinates IposSpace space = 2; // cube defining the extension, might be (0,0,0) - IposPosition position = 3; // centre of the "frame" cube, absolute - float delta = 4; // min. Position to trigger a position update + IposPosition position = 3; // centre of the "frame" cube +} + +message RefSystem { + string id = 1; + IposPosition position = 2; // position of origin of RefSystem. May be relative or absolute +} + +message IposMonitoringRequest { + string frameId = 1; + float delta = 2; // min. change in position to trigger a position update + float updateFrequency = 3; // defines how many times per second a PositionUpdateEvent is sent + repeated string type = 4; // object-types to be observed; CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER + repeated string id = 5; // object-ids to be observed + string fusionStrategy = 6; // e.g., "accuracy" for accuracy-optimized monitoring if multiple positions sensors per agent + bool exit_notification = 7; // IPos will notify receiver when object has left the frame + repeated string properties = 8; // properties that shall be monitored: position or id or type + string requestorId = 9; // a requestor is, e.g., the OSM-App; FW requires this info to contact the requestor using a certain communication protocol. + string requestorProtocol = 10; // communication protocol, e.g., "mqtt"; Assumption: requestor = receiver } -// relative coordinates -message IposRelativePosition { - string IposFrame_id = 1; - IposPosition pos = 2; +message IposMonitoringResponse { + string frameId = 1; + string monitoringTaskId = 2; + string error = 3; +} + +message IposMonitoringUpdateRequest { + string monitoringTaskId = 1; + IposMonitoringRequest monitoringRequest = 2; // setting delta and updateFrequency to -1 cancels the monitoring task } -// relative coordinates message IposPosition { + string refSystemId = 1; // e.g., "WGS84" if absolute position, "ROOT" for testcases or if specific absolute position is actually irrelevant + IposPoint3D point = 2; + float accuracy = 3; // object is with 95% probability within x metres of this point (gaussian distribution) +} + +message IposPoint3D { float x = 1; // pos in x direction in m float y = 2; // pos in y direction in m float z = 3; // pos in z direction in m (up) - float accuracy = 4; // object is with 95% probability within x metres of this point (gaussian distribution) +} + +message POI { // point-of-interest + string description = 1; // e.g., "tag" + map<string, string> data = 2; // e.g., "id" -> tag-id; "type" -> "nfc" + IposPosition position = 3; } message IposSpace { @@ -58,3 +95,8 @@ message IposSimpleOrientation { float z = 3; // there is no orientation float w = 4; // available } + +message SensorRegistrationRequest { + IposObjectConfig objectConfig = 1; // depending on sensorTyp a type-specific information will be sent +} +// note: Beacon-positions are POIs and should be sent to sensor after registration. Bluetooth/UWB sensor need to know a reference system id. All Beacon-position sent to the Bluetooth/UWB sensor should have the same reference system id \ No newline at end of file -- GitLab