From 21382645ad467b9d8b8989395cd57df14f350c75 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Mon, 19 Aug 2024 11:08:56 +0200 Subject: [PATCH 01/33] adds shacl files for a simulated radar/lidar sensor with manipulation/failure models --- .../simulated_sensor_failure_model_shape.ttl | 645 ++++++++++++++++++ .../simulated_sensor_ontology.ttl | 22 + simulated-sensor/simulated_sensor_shape.ttl | 67 ++ 3 files changed, 734 insertions(+) create mode 100644 simulated-sensor/simulated_sensor_failure_model_shape.ttl create mode 100644 simulated-sensor/simulated_sensor_ontology.ttl create mode 100644 simulated-sensor/simulated_sensor_shape.ttl diff --git a/simulated-sensor/simulated_sensor_failure_model_shape.ttl b/simulated-sensor/simulated_sensor_failure_model_shape.ttl new file mode 100644 index 0000000..247bfc1 --- /dev/null +++ b/simulated-sensor/simulated_sensor_failure_model_shape.ttl @@ -0,0 +1,645 @@ +@prefix sh: . +@prefix ex: . +@prefix xsd: . + +# Failure Model: packageLoss +ex:PackageLossShape + a sh:NodeShape ; + sh:targetClass ex:PackageLoss ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path ex:Duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path ex:IntervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + ] ; + sh:property [ + sh:path ex:DurationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] . + +# Failure Model: packageDelay +ex:PackageDelayShape + a sh:NodeShape ; + sh:targetClass ex:PackageDelay ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence in seconds" ; + ] ; + sh:property [ + sh:path ex:DelaySize ; + sh:datatype xsd:integer ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minCount 0 ; + sh:maxInclusive 100 ; + sh:description "Occupancy of the ringbuffer at start of the simulation" ; + ] ; + sh:property [ + sh:path ex:DegradationSize ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Amount of packages that are delayed" ; + ] ; + sh:property [ + sh:path ex:RingBufferMaxUseSize ; + sh:datatype xsd:integer ; + sh:minCount 0 ; # if not defined, default value (100) is used + sh:maxCount 1 ; + sh:minInclusive 1 ; + sh:maxInclusive 100 ; + sh:description "Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss" ; + ] . + + +# Failure Model: detectionPointShift -> Shift of single detection points for simulating vibration effects +ex:DetectionPointShift + a sh:NodeShape ; + sh:targetClass ex:DetectionPointShift ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path ex:Duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path ex:IntervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + ] ; + sh:property [ + sh:path ex:DurationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences"; + ] ; + sh:property [ + sh:path ex:MaxDepthDisturbance ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting distance between the sensor and detection point" ; + ] ; + sh:property [ + sh:path ex:MaxAzimuthDisturbance; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting Azimuth between the sensor and detection point" ; + ] ; + sh:property [ + sh:path ex:MaxAltitudeDisturbance ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting Altitude between the sensor and detection point" ; + ] ; + sh:property [ + sh:path ex:Distribution ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) + sh:minInclusive 2 ; + sh:description "Kind of distrbution used to calculate the detection point shift" ; + ] . + + +# Failure Model: velocityPointShift +ex:VelocityPointShift + a sh:NodeShape ; + sh:targetClass ex:VelocityPointShift ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path ex:Duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path ex:IntervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path ex:DurationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path ex:MaxVelocityDisturbance ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Maximal shift/change of the velocity" ; + sh:property [ + sh:path ex:Distribution ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) + sh:minInclusive 2 ; + sh:description "Kind of distrbution used to calculate the velocity shift" ; + ] . + +# Failure Model: rangeReduction +ex:RangeReduction + a sh:NodeShape ; + sh:targetClass ex:RangeReduction ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path ex:Duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path ex:IntervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path ex:DurationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path ex:RangeReductionValue; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Distance of the range reduction in meters" ; + ] . + +# Failure Model: detectNonExistingPoints +ex:DetectNonExistingPoints + a sh:NodeShape ; + sh:targetClass ex:DetectNonExistingPoints ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path ex:Duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path ex:IntervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path ex:DurationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path ex:AmountDetections ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Amount of non-existant points that shall be spawned" ; + ] ; + sh:property [ + sh:path ex:HorFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the ghost points are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path ex:VertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the ghost points are spawned (vertical)"; + ] . + + +# Failure Model: sensorShift due to collision +ex:CollisionSensorShift + a sh:NodeShape ; + sh:targetClass ex:CollisionSensorShift ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Yaw ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Yaw rotation of the shift" ; + ] ; + sh:property [ + sh:path ex:Pitch ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Pitch rotation of the shift" ; + ] ; + sh:property [ + sh:path ex:Roll ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Roll rotation of the shift" ; + ] ; + sh:property [ + sh:path ex:ShiftTriggerFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 1; + sh:maxInclusive 1; + sh:description "If true, the shift will happen at the first collision" ; + ] . + +# Failure Model: sensorShift due to degradation (constantly shifting) +ex:ConstantSensorShift + a sh:NodeShape ; + sh:targetClass ex:ConstantSensorShift ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path ex:Duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path ex:IntervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + ] ; + sh:property [ + sh:path ex:DurationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path ex:Yaw ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Yaw rotation of the shift" ; + ] ; + sh:property [ + sh:path ex:Pitch ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Pitch rotation of the shift" ; + ] ; + sh:property [ + sh:path ex:Roll ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Roll rotation of the shift" ; + ] ; + sh:property [ + sh:path ex:ShiftFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:maxInclusive 1; + sh:description "If true, the shift occurs once at the beginning of the failur event, otherwise a constant shift is simulated" ; + ] ; + sh:property [ + sh:path ex:ShiftTriggerFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:maxInclusive 0; + sh:description "If true, the shift will happen at the first collision" ; + ] . + + +# Failure Model: sensorBlockageRandomLifetime +ex:SensorBlockageRandomLifetime + a sh:NodeShape ; + sh:targetClass ex:SensorBlockageRandomLifetime ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path ex:IntervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path ex:AmountOfBlockingObjects ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path ex:Type ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; + ] ; + sh:property [ + sh:path ex:LifeTime ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 1; + sh:maxInclusive 1; + sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; + ] ; + sh:property [ + sh:path ex:MaxBlockingObjectLifeTime; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Maximum lifetime of the blocking object(s) in seconds" ; + ] ; + sh:property [ + sh:path ex:BlockageDropSpeed; + sh:datatype xsd:integer ; + sh:minCount 0 ; # default is 0 + sh:maxCount 1 ; + sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; + ] ; + sh:property [ + sh:path ex:HorFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path ex:VertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; + ] . + + + # Failure Model: sensorBlockageDefinedLifetime +ex:SensorBlockageDefinedLifetime + a sh:NodeShape ; + sh:targetClass ex:SensorBlockageDefinedLifetime ; + sh:property [ + sh:path ex:Start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path ex:Interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path ex:IntervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path ex:AmountOfBlockingObjects ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path ex:Type ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; + ] ; + sh:property [ + sh:path ex:LifeTime ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:maxInclusive 0 ; + sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; + ] ; + sh:property [ + sh:path ex:BlockingObjectLifeTime ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive + sh:description "Lifetime of each blocking object in seconds" ; + ] ; + sh:property [ + sh:path ex:BlockageDropSpeed; + sh:datatype xsd:integer ; + sh:minCount 0 ; # default is 0 + sh:maxCount 1 ; + sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; + ] ; + sh:property [ + sh:path ex:HorFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path ex:VertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; + ] . \ No newline at end of file diff --git a/simulated-sensor/simulated_sensor_ontology.ttl b/simulated-sensor/simulated_sensor_ontology.ttl new file mode 100644 index 0000000..45ee8ac --- /dev/null +++ b/simulated-sensor/simulated_sensor_ontology.ttl @@ -0,0 +1,22 @@ +@prefix dcterms: . +@prefix gax-core: . +@prefix gx: . +@prefix owl: . +@prefix rdfs: . +@prefix simulated-sensor: . +@prefix xsd: . +@prefix openlabel: . +@prefix gx: . + +simulated-sensor: a owl:Ontology ; + rdfs:label "Ontology definition for simulated_sensor"@en ; + dcterms:contributor "Rhea C. Rinaldo (IQZ), Aaron Blickle (IQZ), Johannes Heinrich (IQZ)" ; + dcterms:creator "The GAIA-X 4 PLC AAD Project Team" ; + dcterms:identifier "https://github.com/GAIA-X4PLC-AAD/ontology-management-base/tree/main/simulated-sensor/" ; + owl:versionIRI ; + owl:versionInfo "0.1" . + +simulated-sensor:SimulatedSensor a owl:Class ; + rdfs:label "class definition simulated sensor"@en ; + rdfs:comment "A simulated RADAR or LIDAR sensor in CARLA"@en ; + rdfs:subClassOf gx:DataResource . \ No newline at end of file diff --git a/simulated-sensor/simulated_sensor_shape.ttl b/simulated-sensor/simulated_sensor_shape.ttl new file mode 100644 index 0000000..84865b0 --- /dev/null +++ b/simulated-sensor/simulated_sensor_shape.ttl @@ -0,0 +1,67 @@ +@prefix sh: . +@prefix ex: . + +ex:SimulatedSensor + a sh:NodeShape ; + sh:targetClass ex:SimulatedSensor ; + # sensorType (String, mandatory) + sh:property [ + sh:path ex:sensorType ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Type of Sensor used in the simulation" ; + ] ; + # mountingPosition (Tuple of three floats, mandatory) + sh:property [ + sh:path ex:mountingPosition ; + sh:datatype xsd:float ; + sh:minCount 3 ; + sh:maxCount 3 ; + sh:description "Position of the sensor on the vehicle (x, y, z)" ; + ] ; + # numberOfBeams (Integer, mandatory) + sh:property [ + sh:path ex:numberOfBeams ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:description "Number of beams the radar or lidar sensor shall send" ; + ] ; + # distance (Integer, mandatory) + sh:property [ + sh:path ex:distance ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:description "Covered distance or range in meters" ; + ] ; + # fieldOfView (Tuple of three floats, mandatory) + sh:property [ + sh:path ex:fieldOfView ; + sh:nodeKind sh:List ; + sh:datatype xsd:float ; + sh:minCount 3 ; + sh:maxCount 3 ; + sh:description "For RADAR: horizontal and vertical angles; For LIDAR: horizontal FoV, upper FoV, lower FoV" ; + ] ; + # Ensure at least one failure model is present + sh:property [ + sh:path ex:hasFailureModel ; + sh:minCount 1 ; + sh:or ( + [ sh:node ex:PackageLossShape ] + [ sh:node ex:PackageDelayShape ] + [ sh:node ex:DetectionPointShift ] + [ sh:node ex:VelocityPointShift ] + [ sh:node ex:RangeReduction ] + [ sh:node ex:DetectNonExistingPoints ] + [ sh:node ex:CollisionSensorShift ] + [ sh:node ex:ConstantSensorShift ] + [ sh:node ex:SensorBlockageRandomLifetime ] + [ sh:node ex:SensorBlockageDefinedLifetime ] + ) ; + sh:description "Failure model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed." ; + ] . From 7eca27f8cf44e53772da06e3531e5ae6bc0af4d1 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Tue, 20 Aug 2024 15:15:33 +0200 Subject: [PATCH 02/33] integrates failure models in simulated sensor shape and fixes some other issues --- .../simulated_sensor_failure_model_shape.ttl | 645 ---------------- simulated-sensor/simulated_sensor_shape.ttl | 702 +++++++++++++++++- 2 files changed, 682 insertions(+), 665 deletions(-) delete mode 100644 simulated-sensor/simulated_sensor_failure_model_shape.ttl diff --git a/simulated-sensor/simulated_sensor_failure_model_shape.ttl b/simulated-sensor/simulated_sensor_failure_model_shape.ttl deleted file mode 100644 index 247bfc1..0000000 --- a/simulated-sensor/simulated_sensor_failure_model_shape.ttl +++ /dev/null @@ -1,645 +0,0 @@ -@prefix sh: . -@prefix ex: . -@prefix xsd: . - -# Failure Model: packageLoss -ex:PackageLossShape - a sh:NodeShape ; - sh:targetClass ex:PackageLoss ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; - ] ; - sh:property [ - sh:path ex:Duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; - ] ; - sh:property [ - sh:path ex:IntervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; - ] ; - sh:property [ - sh:path ex:DurationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; - ] . - -# Failure Model: packageDelay -ex:PackageDelayShape - a sh:NodeShape ; - sh:targetClass ex:PackageDelay ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence in seconds" ; - ] ; - sh:property [ - sh:path ex:DelaySize ; - sh:datatype xsd:integer ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minCount 0 ; - sh:maxInclusive 100 ; - sh:description "Occupancy of the ringbuffer at start of the simulation" ; - ] ; - sh:property [ - sh:path ex:DegradationSize ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Amount of packages that are delayed" ; - ] ; - sh:property [ - sh:path ex:RingBufferMaxUseSize ; - sh:datatype xsd:integer ; - sh:minCount 0 ; # if not defined, default value (100) is used - sh:maxCount 1 ; - sh:minInclusive 1 ; - sh:maxInclusive 100 ; - sh:description "Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss" ; - ] . - - -# Failure Model: detectionPointShift -> Shift of single detection points for simulating vibration effects -ex:DetectionPointShift - a sh:NodeShape ; - sh:targetClass ex:DetectionPointShift ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; - ] ; - sh:property [ - sh:path ex:Duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; - ] ; - sh:property [ - sh:path ex:IntervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; - ] ; - sh:property [ - sh:path ex:DurationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences"; - ] ; - sh:property [ - sh:path ex:MaxDepthDisturbance ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting distance between the sensor and detection point" ; - ] ; - sh:property [ - sh:path ex:MaxAzimuthDisturbance; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting Azimuth between the sensor and detection point" ; - ] ; - sh:property [ - sh:path ex:MaxAltitudeDisturbance ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting Altitude between the sensor and detection point" ; - ] ; - sh:property [ - sh:path ex:Distribution ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) - sh:minInclusive 2 ; - sh:description "Kind of distrbution used to calculate the detection point shift" ; - ] . - - -# Failure Model: velocityPointShift -ex:VelocityPointShift - a sh:NodeShape ; - sh:targetClass ex:VelocityPointShift ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; - ] ; - sh:property [ - sh:path ex:Duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; - ] ; - sh:property [ - sh:path ex:IntervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; - ] ; - sh:property [ - sh:path ex:DurationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; - ] ; - sh:property [ - sh:path ex:MaxVelocityDisturbance ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Maximal shift/change of the velocity" ; - sh:property [ - sh:path ex:Distribution ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) - sh:minInclusive 2 ; - sh:description "Kind of distrbution used to calculate the velocity shift" ; - ] . - -# Failure Model: rangeReduction -ex:RangeReduction - a sh:NodeShape ; - sh:targetClass ex:RangeReduction ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; - ] ; - sh:property [ - sh:path ex:Duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; - ] ; - sh:property [ - sh:path ex:IntervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; - ] ; - sh:property [ - sh:path ex:DurationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; - ] ; - sh:property [ - sh:path ex:RangeReductionValue; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Distance of the range reduction in meters" ; - ] . - -# Failure Model: detectNonExistingPoints -ex:DetectNonExistingPoints - a sh:NodeShape ; - sh:targetClass ex:DetectNonExistingPoints ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; - ] ; - sh:property [ - sh:path ex:Duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; - ] ; - sh:property [ - sh:path ex:IntervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; - ] ; - sh:property [ - sh:path ex:DurationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; - ] ; - sh:property [ - sh:path ex:AmountDetections ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Amount of non-existant points that shall be spawned" ; - ] ; - sh:property [ - sh:path ex:HorFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the ghost points are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path ex:VertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the ghost points are spawned (vertical)"; - ] . - - -# Failure Model: sensorShift due to collision -ex:CollisionSensorShift - a sh:NodeShape ; - sh:targetClass ex:CollisionSensorShift ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Yaw ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Yaw rotation of the shift" ; - ] ; - sh:property [ - sh:path ex:Pitch ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Pitch rotation of the shift" ; - ] ; - sh:property [ - sh:path ex:Roll ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Roll rotation of the shift" ; - ] ; - sh:property [ - sh:path ex:ShiftTriggerFlag ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 1; - sh:maxInclusive 1; - sh:description "If true, the shift will happen at the first collision" ; - ] . - -# Failure Model: sensorShift due to degradation (constantly shifting) -ex:ConstantSensorShift - a sh:NodeShape ; - sh:targetClass ex:ConstantSensorShift ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; - ] ; - sh:property [ - sh:path ex:Duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; - ] ; - sh:property [ - sh:path ex:IntervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; - ] ; - sh:property [ - sh:path ex:DurationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; - ] ; - sh:property [ - sh:path ex:Yaw ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Yaw rotation of the shift" ; - ] ; - sh:property [ - sh:path ex:Pitch ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Pitch rotation of the shift" ; - ] ; - sh:property [ - sh:path ex:Roll ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Roll rotation of the shift" ; - ] ; - sh:property [ - sh:path ex:ShiftFlag ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; - sh:maxInclusive 1; - sh:description "If true, the shift occurs once at the beginning of the failur event, otherwise a constant shift is simulated" ; - ] ; - sh:property [ - sh:path ex:ShiftTriggerFlag ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; - sh:maxInclusive 0; - sh:description "If true, the shift will happen at the first collision" ; - ] . - - -# Failure Model: sensorBlockageRandomLifetime -ex:SensorBlockageRandomLifetime - a sh:NodeShape ; - sh:targetClass ex:SensorBlockageRandomLifetime ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; - ] ; - sh:property [ - sh:path ex:IntervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; - ] ; - sh:property [ - sh:path ex:AmountOfBlockingObjects ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change (decrease) of the duration between failure ocurrences" ; - ] ; - sh:property [ - sh:path ex:Type ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; - ] ; - sh:property [ - sh:path ex:LifeTime ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 1; - sh:maxInclusive 1; - sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; - ] ; - sh:property [ - sh:path ex:MaxBlockingObjectLifeTime; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Maximum lifetime of the blocking object(s) in seconds" ; - ] ; - sh:property [ - sh:path ex:BlockageDropSpeed; - sh:datatype xsd:integer ; - sh:minCount 0 ; # default is 0 - sh:maxCount 1 ; - sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; - ] ; - sh:property [ - sh:path ex:HorFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path ex:VertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; - ] . - - - # Failure Model: sensorBlockageDefinedLifetime -ex:SensorBlockageDefinedLifetime - a sh:NodeShape ; - sh:targetClass ex:SensorBlockageDefinedLifetime ; - sh:property [ - sh:path ex:Start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; - ] ; - sh:property [ - sh:path ex:Interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; - ] ; - sh:property [ - sh:path ex:IntervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; - ] ; - sh:property [ - sh:path ex:AmountOfBlockingObjects ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change (decrease) of the duration between failure ocurrences" ; - ] ; - sh:property [ - sh:path ex:Type ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; - ] ; - sh:property [ - sh:path ex:LifeTime ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:maxInclusive 0 ; - sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; - ] ; - sh:property [ - sh:path ex:BlockingObjectLifeTime ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive - sh:description "Lifetime of each blocking object in seconds" ; - ] ; - sh:property [ - sh:path ex:BlockageDropSpeed; - sh:datatype xsd:integer ; - sh:minCount 0 ; # default is 0 - sh:maxCount 1 ; - sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; - ] ; - sh:property [ - sh:path ex:HorFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path ex:VertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; - ] . \ No newline at end of file diff --git a/simulated-sensor/simulated_sensor_shape.ttl b/simulated-sensor/simulated_sensor_shape.ttl index 84865b0..51b241f 100644 --- a/simulated-sensor/simulated_sensor_shape.ttl +++ b/simulated-sensor/simulated_sensor_shape.ttl @@ -1,67 +1,729 @@ +@prefix simulated-sensor: . @prefix sh: . -@prefix ex: . +@prefix skos: . +@prefix xsd: . -ex:SimulatedSensor - a sh:NodeShape ; - sh:targetClass ex:SimulatedSensor ; +simulated-sensor:SimulatedSensorShape a sh:NodeShape ; + sh:targetClass simulated-sensor:SimulatedSensor ; # sensorType (String, mandatory) sh:property [ - sh:path ex:sensorType ; + skos:example "RADAR" ; + sh:path simulated-sensor:sensorType ; sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ; + sh:name "sensorType"@en ; + sh:order 0 ; sh:description "Type of Sensor used in the simulation" ; ] ; # mountingPosition (Tuple of three floats, mandatory) sh:property [ - sh:path ex:mountingPosition ; + skos:example "25.0" ; + sh:path simulated-sensor:mountingPosition ; sh:datatype xsd:float ; sh:minCount 3 ; sh:maxCount 3 ; + sh:name "mountingPosition"@en ; + sh:order 1 ; sh:description "Position of the sensor on the vehicle (x, y, z)" ; ] ; # numberOfBeams (Integer, mandatory) sh:property [ - sh:path ex:numberOfBeams ; + skos:example "60" ; + sh:path simulated-sensor:numberOfBeams ; sh:datatype xsd:integer ; sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0; + sh:name "numberOfBeams"@en ; + sh:order 2 ; sh:description "Number of beams the radar or lidar sensor shall send" ; ] ; # distance (Integer, mandatory) sh:property [ - sh:path ex:distance ; + skos:example "30" ; + sh:path simulated-sensor:distance ; sh:datatype xsd:float ; sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0; + sh:name "distance"@en ; + sh:order 3 ; sh:description "Covered distance or range in meters" ; ] ; # fieldOfView (Tuple of three floats, mandatory) sh:property [ - sh:path ex:fieldOfView ; + skos:example "30.0" ; + sh:path simulated-sensor:fieldOfView ; sh:nodeKind sh:List ; sh:datatype xsd:float ; sh:minCount 3 ; sh:maxCount 3 ; + sh:name "fieldOfView"@en ; + sh:order 4 ; sh:description "For RADAR: horizontal and vertical angles; For LIDAR: horizontal FoV, upper FoV, lower FoV" ; ] ; # Ensure at least one failure model is present sh:property [ - sh:path ex:hasFailureModel ; + skos:example "PackageLossShape" ; + sh:path simulated-sensor:hasFailureModel ; sh:minCount 1 ; + sh:name "definedFailureModel"@en ; sh:or ( - [ sh:node ex:PackageLossShape ] - [ sh:node ex:PackageDelayShape ] - [ sh:node ex:DetectionPointShift ] - [ sh:node ex:VelocityPointShift ] - [ sh:node ex:RangeReduction ] - [ sh:node ex:DetectNonExistingPoints ] - [ sh:node ex:CollisionSensorShift ] - [ sh:node ex:ConstantSensorShift ] - [ sh:node ex:SensorBlockageRandomLifetime ] - [ sh:node ex:SensorBlockageDefinedLifetime ] + [ sh:node simulated-sensor:PackageLossShape ] + [ sh:node simulated-sensor:PackageDelayShape ] + [ sh:node simulated-sensor:DetectionPointShiftShape ] + [ sh:node simulated-sensor:VelocityPointShiftShape ] + [ sh:node simulated-sensor:RangeReductionShape ] + [ sh:node simulated-sensor:DetectNonExistingPointsShape ] + [ sh:node simulated-sensor:CollisionSensorShiftShape ] + [ sh:node simulated-sensor:ConstantSensorShiftShape ] + [ sh:node simulated-sensor:SensorBlockageRandomLifetimeShape ] + [ sh:node simulated-sensor:SensorBlockageDefinedLifetimeShape ] ) ; + sh:order 5 ; sh:description "Failure model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed." ; ] . + +# Available Failuremodels: +# Failure Model: packageLoss +simulated-sensor:PackageLossShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:PackageLoss ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] . + +# Failure Model: packageDelay +simulated-sensor:PackageDelayShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:PackageDelay ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:delaySize ; + sh:datatype xsd:integer ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minCount 0 ; + sh:maxInclusive 100 ; + sh:description "Occupancy of the ringbuffer at start of the simulation" ; + ] ; + sh:property [ + sh:path simulated-sensor:degradationSize ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Amount of packages that are delayed" ; + ] ; + sh:property [ + sh:path simulated-sensor:ringBufferMaxUseSize ; + sh:datatype xsd:integer ; + sh:minCount 0 ; # if not defined, default value (100) is used + sh:maxCount 1 ; + sh:minInclusive 1 ; + sh:maxInclusive 100 ; + sh:description "Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss" ; + ] . + +# Failure Model: detectionPointShift -> Shift of single detection points for simulating vibration effects +simulated-sensor:DetectionPointShiftShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:DetectionPointShift ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences"; + ] ; + sh:property [ + sh:path simulated-sensor:maxDepthDisturbance ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting distance between the sensor and detection point" ; + ] ; + sh:property [ + sh:path simulated-sensor:maxAzimuthDisturbance; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting Azimuth between the sensor and detection point" ; + ] ; + sh:property [ + sh:path simulated-sensor:maxAltitudeDisturbance ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting Altitude between the sensor and detection point" ; + ] ; + sh:property [ + sh:path simulated-sensor:distribution ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) + sh:minInclusive 2 ; + sh:description "Kind of distrbution used to calculate the detection point shift" ; + ] . + + +# Failure Model: velocityPointShift +simulated-sensor:VelocityPointShiftShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:VelocityPointShift ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:maxVelocityDisturbance ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Maximal shift/change of the velocity" ; + ] ; + sh:property [ + sh:path simulated-sensor:distribution ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) + sh:minInclusive 2 ; + sh:description "Kind of distrbution used to calculate the velocity shift" ; + ] . + +# Failure Model: rangeReduction +simulated-sensor:RangeReductionShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:RangeReduction ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:rangeReductionValue; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Distance of the range reduction in meters" ; + ] . + +# Failure Model: detectNonExistingPoints +simulated-sensor:DetectNonExistingPointsShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:DetectNonExistingPoints ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:amountDetections ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Amount of non-existant points that shall be spawned" ; + ] ; + sh:property [ + sh:path simulated-sensor:horFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the ghost points are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path simulated-sensor:vertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the ghost points are spawned (vertical)"; + ] . + + +# Failure Model: sensorShift due to collision +simulated-sensor:CollisionSensorShiftShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:CollisionSensorShift ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:yaw ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Yaw rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:pitch ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Pitch rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:roll ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Roll rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:shiftTriggerFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 1; + sh:maxInclusive 1; + sh:description "If true, the shift will happen at the first collision" ; + ] . + +# Failure Model: sensorShift due to degradation (constantly shifting) +simulated-sensor:ConstantSensorShiftShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:ConstantSensorShift ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the failure is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:yaw ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Yaw rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:pitch ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Pitch rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:roll ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Roll rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:shiftFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:maxInclusive 1; + sh:description "If true, the shift occurs once at the beginning of the failur event, otherwise a constant shift is simulated" ; + ] ; + sh:property [ + sh:path simulated-sensor:shiftTriggerFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:maxInclusive 0; + sh:description "If true, the shift will happen at the first collision" ; + ] . + + +# Failure Model: sensorBlockageRandomLifetime +simulated-sensor:SensorBlockageRandomLifetimeShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:SensorBlockageRandomLifetime ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path simulated-sensor:amountOfBlockingObjects ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:type ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; + ] ; + sh:property [ + sh:path simulated-sensor:lifeTime ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 1; + sh:maxInclusive 1; + sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; + ] ; + sh:property [ + sh:path simulated-sensor:maxBlockingObjectLifeTime; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Maximum lifetime of the blocking object(s) in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:blockageDropSpeed; + sh:datatype xsd:integer ; + sh:minCount 0 ; # default is 0 + sh:maxCount 1 ; + sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; + ] ; + sh:property [ + sh:path simulated-sensor:horFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path simulated-sensor:vertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; + ] . + + +# Failure Model: sensorBlockageDefinedLifetime +simulated-sensor:SensorBlockageDefinedLifetimeShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:SensorBlockageDefinedLifetime ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "Start of the failure in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the failure in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + ] ; + sh:property [ + sh:path simulated-sensor:amountOfBlockingObjects ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change (decrease) of the duration between failure ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:type ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; + ] ; + sh:property [ + sh:path simulated-sensor:lifeTime ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:maxInclusive 0 ; + sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; + ] ; + sh:property [ + sh:path simulated-sensor:blockingObjectLifeTime ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Lifetime of each blocking object in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:blockageDropSpeed; + sh:datatype xsd:integer ; + sh:minCount 0 ; # default is 0 + sh:maxCount 1 ; + sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; + ] ; + sh:property [ + sh:path simulated-sensor:horFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path simulated-sensor:vertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; + ] . \ No newline at end of file From 1c34233c811a2edefb011c62479106448b3ac411 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Wed, 21 Aug 2024 09:23:23 +0200 Subject: [PATCH 03/33] updates wording from failure to manipulation --- simulated-sensor/simulated_sensor_shape.ttl | 100 ++++++++++---------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/simulated-sensor/simulated_sensor_shape.ttl b/simulated-sensor/simulated_sensor_shape.ttl index 51b241f..b64302d 100644 --- a/simulated-sensor/simulated_sensor_shape.ttl +++ b/simulated-sensor/simulated_sensor_shape.ttl @@ -63,12 +63,12 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; sh:order 4 ; sh:description "For RADAR: horizontal and vertical angles; For LIDAR: horizontal FoV, upper FoV, lower FoV" ; ] ; - # Ensure at least one failure model is present + # Ensure at least one failure/attack model is present sh:property [ skos:example "PackageLossShape" ; - sh:path simulated-sensor:hasFailureModel ; + sh:path simulated-sensor:manipulationModel ; sh:minCount 1 ; - sh:name "definedFailureModel"@en ; + sh:name "definedManipulationModel"@en ; sh:or ( [ sh:node simulated-sensor:PackageLossShape ] [ sh:node simulated-sensor:PackageDelayShape ] @@ -82,11 +82,11 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; [ sh:node simulated-sensor:SensorBlockageDefinedLifetimeShape ] ) ; sh:order 5 ; - sh:description "Failure model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed." ; + sh:description "Manipulation (failure and attack patterns) model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed." ; ] . -# Available Failuremodels: -# Failure Model: packageLoss +# Available manipulation models: +# Model: packageLoss simulated-sensor:PackageLossShape a sh:NodeShape ; sh:targetClass simulated-sensor:PackageLoss ; @@ -96,7 +96,7 @@ simulated-sensor:PackageLossShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -104,7 +104,7 @@ simulated-sensor:PackageLossShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:duration ; @@ -112,24 +112,24 @@ simulated-sensor:PackageLossShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; + sh:description "Time the pattern of manipulation is active in seconds" ; ] ; sh:property [ sh:path simulated-sensor:intervalDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + sh:description "Change/worsening (decrease) of the time of re-occurrence"; ] ; sh:property [ sh:path simulated-sensor:durationDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; ] . -# Failure Model: packageDelay +# Model: packageDelay simulated-sensor:PackageDelayShape a sh:NodeShape ; sh:targetClass simulated-sensor:PackageDelay ; @@ -139,7 +139,7 @@ simulated-sensor:PackageDelayShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -147,7 +147,7 @@ simulated-sensor:PackageDelayShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:delaySize ; @@ -175,7 +175,7 @@ simulated-sensor:PackageDelayShape sh:description "Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss" ; ] . -# Failure Model: detectionPointShift -> Shift of single detection points for simulating vibration effects +# Model: detectionPointShift -> Shift of single detection points for simulating vibration effects simulated-sensor:DetectionPointShiftShape a sh:NodeShape ; sh:targetClass simulated-sensor:DetectionPointShift ; @@ -185,7 +185,7 @@ simulated-sensor:DetectionPointShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -193,7 +193,7 @@ simulated-sensor:DetectionPointShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:duration ; @@ -201,21 +201,21 @@ simulated-sensor:DetectionPointShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; + sh:description "Time the pattern of manipulation is active in seconds" ; ] ; sh:property [ sh:path simulated-sensor:intervalDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + sh:description "Change/worsening (decrease) of the time of re-occurrence"; ] ; sh:property [ sh:path simulated-sensor:durationDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences"; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences"; ] ; sh:property [ sh:path simulated-sensor:maxDepthDisturbance ; @@ -249,7 +249,7 @@ simulated-sensor:DetectionPointShiftShape ] . -# Failure Model: velocityPointShift +# Model: velocityPointShift simulated-sensor:VelocityPointShiftShape a sh:NodeShape ; sh:targetClass simulated-sensor:VelocityPointShift ; @@ -259,7 +259,7 @@ simulated-sensor:VelocityPointShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -267,7 +267,7 @@ simulated-sensor:VelocityPointShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:duration ; @@ -275,21 +275,21 @@ simulated-sensor:VelocityPointShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; + sh:description "Time the pattern of manipulation is active in seconds" ; ] ; sh:property [ sh:path simulated-sensor:intervalDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; ] ; sh:property [ sh:path simulated-sensor:durationDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; ] ; sh:property [ sh:path simulated-sensor:maxVelocityDisturbance ; @@ -318,7 +318,7 @@ simulated-sensor:RangeReductionShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -326,7 +326,7 @@ simulated-sensor:RangeReductionShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:duration ; @@ -334,21 +334,21 @@ simulated-sensor:RangeReductionShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; + sh:description "Time the pattern of manipulation is active in seconds" ; ] ; sh:property [ sh:path simulated-sensor:intervalDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; ] ; sh:property [ sh:path simulated-sensor:durationDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; ] ; sh:property [ sh:path simulated-sensor:rangeReductionValue; @@ -369,7 +369,7 @@ simulated-sensor:DetectNonExistingPointsShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -377,7 +377,7 @@ simulated-sensor:DetectNonExistingPointsShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:duration ; @@ -385,21 +385,21 @@ simulated-sensor:DetectNonExistingPointsShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; + sh:description "Time the pattern of manipulation is active in seconds" ; ] ; sh:property [ sh:path simulated-sensor:intervalDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; ] ; sh:property [ sh:path simulated-sensor:durationDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; ] ; sh:property [ sh:path simulated-sensor:amountDetections ; @@ -439,7 +439,7 @@ simulated-sensor:CollisionSensorShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:yaw ; @@ -482,7 +482,7 @@ simulated-sensor:ConstantSensorShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -490,7 +490,7 @@ simulated-sensor:ConstantSensorShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:duration ; @@ -498,21 +498,21 @@ simulated-sensor:ConstantSensorShiftShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Time the failure is active in seconds" ; + sh:description "Time the pattern of manipulation is active in seconds" ; ] ; sh:property [ sh:path simulated-sensor:intervalDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure"; + sh:description "Change/worsening (decrease) of the time of re-occurrence"; ] ; sh:property [ sh:path simulated-sensor:durationDegradation ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between failure ocurrences" ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; ] ; sh:property [ sh:path simulated-sensor:yaw ; @@ -565,7 +565,7 @@ simulated-sensor:SensorBlockageRandomLifetimeShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -573,7 +573,7 @@ simulated-sensor:SensorBlockageRandomLifetimeShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:intervalDegradation ; @@ -581,7 +581,7 @@ simulated-sensor:SensorBlockageRandomLifetimeShape sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; ] ; sh:property [ sh:path simulated-sensor:amountOfBlockingObjects ; @@ -589,7 +589,7 @@ simulated-sensor:SensorBlockageRandomLifetimeShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Change (decrease) of the duration between failure ocurrences" ; + sh:description "Change (decrease) of the duration between re-ocurrences" ; ] ; sh:property [ sh:path simulated-sensor:type ; @@ -652,7 +652,7 @@ simulated-sensor:SensorBlockageDefinedLifetimeShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "Start of the failure in the simulation in seconds" ; + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; ] ; sh:property [ sh:path simulated-sensor:interval ; @@ -660,7 +660,7 @@ simulated-sensor:SensorBlockageDefinedLifetimeShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the failure in seconds" ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; ] ; sh:property [ sh:path simulated-sensor:intervalDegradation ; @@ -668,7 +668,7 @@ simulated-sensor:SensorBlockageDefinedLifetimeShape sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence of the failure" ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; ] ; sh:property [ sh:path simulated-sensor:amountOfBlockingObjects ; @@ -676,7 +676,7 @@ simulated-sensor:SensorBlockageDefinedLifetimeShape sh:minCount 1 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:description "Change (decrease) of the duration between failure ocurrences" ; + sh:description "Change (decrease) of the duration between re-ocurrences" ; ] ; sh:property [ sh:path simulated-sensor:type ; From 88dc2dab13724cc6c988ca1d086474861c5b8c01 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Wed, 21 Aug 2024 09:49:24 +0200 Subject: [PATCH 04/33] changes mountingPosition from 3 floats to string based enum type --- simulated-sensor/simulated_sensor_shape.ttl | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/simulated-sensor/simulated_sensor_shape.ttl b/simulated-sensor/simulated_sensor_shape.ttl index b64302d..5d59196 100644 --- a/simulated-sensor/simulated_sensor_shape.ttl +++ b/simulated-sensor/simulated_sensor_shape.ttl @@ -18,14 +18,15 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; ] ; # mountingPosition (Tuple of three floats, mandatory) sh:property [ - skos:example "25.0" ; + skos:example "Front-mid" ; sh:path simulated-sensor:mountingPosition ; - sh:datatype xsd:float ; - sh:minCount 3 ; - sh:maxCount 3 ; + sh:datatype xsd:string ; + sh:in ("Front-left" "Front-right" "Front-mid" "Top-left" "Top-right" "Top-mid" "Back-left" "Back-right" "Back-mid") ; + sh:minCount 1 ; + sh:maxCount 1 ; sh:name "mountingPosition"@en ; sh:order 1 ; - sh:description "Position of the sensor on the vehicle (x, y, z)" ; + sh:description "Position of the sensor on the vehicle. The precise coordinates are calculated in the world-coordinate system. Note that any back options will also induce a rotation of the sensor so that its field of view covers the vehicle rear." ; ] ; # numberOfBeams (Integer, mandatory) sh:property [ From c2a6c19dfc1bee2f7962822f35ed2a633b90d7e8 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Wed, 21 Aug 2024 09:54:04 +0200 Subject: [PATCH 05/33] adds first version of json instance --- .../simulated-sensor_instance.json | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 simulated-sensor/simulated-sensor_instance.json diff --git a/simulated-sensor/simulated-sensor_instance.json b/simulated-sensor/simulated-sensor_instance.json new file mode 100755 index 0000000..daeb05c --- /dev/null +++ b/simulated-sensor/simulated-sensor_instance.json @@ -0,0 +1,34 @@ +{ + "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", + "skos": "http://www.w3.org/2004/02/skos/core#", + "simulated-sensor": "https://github.com/GAIA-X4PLC-AAD/ontology-management-base/tree/main/simulated-sensor/", + "sh": "http://www.w3.org/ns/shacl#" + }, + "@id": "did:web:registry.gaia-x.eu:SimulatedSensor:B6gYmAU2PiHe8c3aqSbazCkrE7sUfCkRPFv2", + "@type": "simulated-sensor:SimulatedSensor", + "simulated-sensor:sensorType": { + "@value": "RADAR", + "@type": "xsd:string" + }, + "simulated-sensor:mountingPosition": "Front-mid", + "simulated-sensor:numberOfBeams": 1500, + "simulated-sensor:distance": { + "@value": "100", + "@type": "xsd:float" + }, + "simulated-sensor:fieldOfView": [ + { + "@value": "60", + "@type": "xsd:float" + }, + { + "@value": "30", + "@type": "xsd:float" + }, + { + "@value": "0", + "@type": "xsd:float" + } + ] +} \ No newline at end of file From 10aa4933820c25470a96e5ec224b4f0957f3243a Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Thu, 22 Aug 2024 14:12:28 +0200 Subject: [PATCH 06/33] adds folder + shape for manipulated sensor simulation WIP --- ...manipulated-sensor-simulation_ontology.ttl | 16 +++++ .../manipulated-sensor-simulation_shacl.ttl | 68 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl create mode 100644 manipulated-sensor-simulation/manipulated-sensor-simulation_shacl.ttl diff --git a/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl b/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl new file mode 100644 index 0000000..4283964 --- /dev/null +++ b/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl @@ -0,0 +1,16 @@ +@prefix dcterms: . +@prefix owl: . +@prefix rdfs: . +@prefix manipulated-sensor-simulation: . +@prefix xsd: . +@prefix gx: . + +manipulated-sensor-simulation: a owl:Ontology ; + rdfs:label "ontology definition for sensor-failure-simulation"@en ; + dcterms:contributor "IQZ" ; + owl:versionInfo "0.1" . + +manipulated-sensor-simulation:ManipulatedSensorSimulation a owl:Class ; + rdfs:label "class definition for ManipulatedSensorSimulation" ; + rdfs:comment "Service for sensor failure and attack simulation"@en ; + rdfs:subClassOf gx:SoftwareResource . diff --git a/manipulated-sensor-simulation/manipulated-sensor-simulation_shacl.ttl b/manipulated-sensor-simulation/manipulated-sensor-simulation_shacl.ttl new file mode 100644 index 0000000..fad2f51 --- /dev/null +++ b/manipulated-sensor-simulation/manipulated-sensor-simulation_shacl.ttl @@ -0,0 +1,68 @@ +@prefix manipulated-sensor-simulation: . +@prefix service: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . +@prefix simulated-sensor: . + + +manipulated-sensor-simulation:ManipulatedSensorSimulationShape a sh:NodeShape; + sh:property + [ + sh:maxCount 1 ; + sh:minCount 1 ; + sh:node service:Service ; + sh:order 1 ; + sh:path manipulated-sensor-simulation:service ], + [ + sh:minCount 1 ; + sh:node simulated-sensor:SimulatedSensor ; + sh:order 2 ; + sh:path manipulated-sensor-simulation:simulatedSensor ], + [ + sh:minCount 1 ; + sh:node manipulated-sensor-simulation:Scenario ; + sh:order 3 ; + sh:path manipulated-sensor-simulation:sensorSpecification ] , + [ + sh:maxCount 1 ; + sh:minCount 0 ; + sh:node manipulated-sensor-simulation:VehicleModel ; + sh:order 4 ; + sh:path manipulated-sensor-simulation:sensorSpecification ] , + [ + sh:minCount 1 ; + sh:maxCount 3 ; + sh:node manipulated-sensor-simulation:KeyPerformanceIndicator ; + sh:order 5 ; + sh:path manipulated-sensor-simulation:keyPerformanceIndicator ] ; + sh:targetClass manipulated-sensor-simulation:ManipulatedSensorSimulation . + + +manipulated-sensor-simulation:ScenarioShape a sh:NodeShape ; + sh:property [ + skos:example "FollowLeadingVehicle" ; + sh:path manipulated-sensor-simulation:scenario ; + sh:datatype xsd:string ; + sh:description "Identifier string of CARLAs ScenarioRUNNER scenario" ; + ] ; +sh:targetClass manipulated-sensor-simulation:Scenario . + +manipulated-sensor-simulation:VehicleModelShape a sh:NodeShape ; + sh:property [ + skos:example "vehicle.audi.tt" ; + sh:path manipulated-sensor-simulation:vehicleModel ; + sh:datatype xsd:string ; + sh:description "Desired vehicle model provided as the identifier in CARLAs blueprint library" ; + ] ; +sh:targetClass manipulated-sensor-simulation:VehicleModel . + +manipulated-sensor-simulation:KeyPerformanceIndicatorShape a sh:NodeShape ; + sh:property [ + skos:example "TTC" ; + sh:path manipulated-sensor-simulation:keyPerformanceIndicator ; + sh:datatype xsd:string ; + sh:in ("TTC" "THW" "VAC") ; + sh:description "ecu.test KPI for ALKS simulation" ; + ] ; +sh:targetClass manipulated-sensor-simulation:KeyPerformanceIndicator . \ No newline at end of file From b2831e73cc3bb48f8796ccdccd62044de33e5d77 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 22 Aug 2024 12:13:03 +0000 Subject: [PATCH 07/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- manipulated-sensor-simulation/VARIABLES.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 manipulated-sensor-simulation/VARIABLES.md diff --git a/manipulated-sensor-simulation/VARIABLES.md b/manipulated-sensor-simulation/VARIABLES.md new file mode 100644 index 0000000..363ec1c --- /dev/null +++ b/manipulated-sensor-simulation/VARIABLES.md @@ -0,0 +1,18 @@ +# Variables of SHACL Files in this folder + +## Prefixes + +- manipulated-sensor-simulation: + +## List of SHACL Properties + +| Shape | Property prefix | Property | MinCount | MaxCount | Description | Datatype/NodeKind | Filename | +| --- | --- | --- | --- | --- | --- | --- | --- | +| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | service | 1 | 1 | | | manipulated-sensor-simulation_shacl.ttl | +| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | simulatedSensor | 1 | | | | manipulated-sensor-simulation_shacl.ttl | +| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | sensorSpecification | 1 | | | | manipulated-sensor-simulation_shacl.ttl | +| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | sensorSpecification | 0 | 1 | | | manipulated-sensor-simulation_shacl.ttl | +| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | keyPerformanceIndicator | 1 | 3 | | | manipulated-sensor-simulation_shacl.ttl | +| ScenarioShape | manipulated-sensor-simulation | scenario | | | Identifier string of CARLAs ScenarioRUNNER scenario | | manipulated-sensor-simulation_shacl.ttl | +| VehicleModelShape | manipulated-sensor-simulation | vehicleModel | | | Desired vehicle model provided as the identifier in CARLAs blueprint library | | manipulated-sensor-simulation_shacl.ttl | +| KeyPerformanceIndicatorShape | manipulated-sensor-simulation | keyPerformanceIndicator | | | ecu.test KPI for ALKS simulation | | manipulated-sensor-simulation_shacl.ttl | From 5d0f8f7decbb1b21bb5b1e34b4f0d416a13ce75c Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Thu, 22 Aug 2024 15:05:59 +0200 Subject: [PATCH 08/33] renames _shape -> _shacl --- simulated-sensor/simulated_sensor_shacl.ttl | 730 ++++++++++++++++++++ 1 file changed, 730 insertions(+) create mode 100644 simulated-sensor/simulated_sensor_shacl.ttl diff --git a/simulated-sensor/simulated_sensor_shacl.ttl b/simulated-sensor/simulated_sensor_shacl.ttl new file mode 100644 index 0000000..5d59196 --- /dev/null +++ b/simulated-sensor/simulated_sensor_shacl.ttl @@ -0,0 +1,730 @@ +@prefix simulated-sensor: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +simulated-sensor:SimulatedSensorShape a sh:NodeShape ; + sh:targetClass simulated-sensor:SimulatedSensor ; + # sensorType (String, mandatory) + sh:property [ + skos:example "RADAR" ; + sh:path simulated-sensor:sensorType ; + sh:datatype xsd:string ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:name "sensorType"@en ; + sh:order 0 ; + sh:description "Type of Sensor used in the simulation" ; + ] ; + # mountingPosition (Tuple of three floats, mandatory) + sh:property [ + skos:example "Front-mid" ; + sh:path simulated-sensor:mountingPosition ; + sh:datatype xsd:string ; + sh:in ("Front-left" "Front-right" "Front-mid" "Top-left" "Top-right" "Top-mid" "Back-left" "Back-right" "Back-mid") ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:name "mountingPosition"@en ; + sh:order 1 ; + sh:description "Position of the sensor on the vehicle. The precise coordinates are calculated in the world-coordinate system. Note that any back options will also induce a rotation of the sensor so that its field of view covers the vehicle rear." ; + ] ; + # numberOfBeams (Integer, mandatory) + sh:property [ + skos:example "60" ; + sh:path simulated-sensor:numberOfBeams ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:name "numberOfBeams"@en ; + sh:order 2 ; + sh:description "Number of beams the radar or lidar sensor shall send" ; + ] ; + # distance (Integer, mandatory) + sh:property [ + skos:example "30" ; + sh:path simulated-sensor:distance ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:name "distance"@en ; + sh:order 3 ; + sh:description "Covered distance or range in meters" ; + ] ; + # fieldOfView (Tuple of three floats, mandatory) + sh:property [ + skos:example "30.0" ; + sh:path simulated-sensor:fieldOfView ; + sh:nodeKind sh:List ; + sh:datatype xsd:float ; + sh:minCount 3 ; + sh:maxCount 3 ; + sh:name "fieldOfView"@en ; + sh:order 4 ; + sh:description "For RADAR: horizontal and vertical angles; For LIDAR: horizontal FoV, upper FoV, lower FoV" ; + ] ; + # Ensure at least one failure/attack model is present + sh:property [ + skos:example "PackageLossShape" ; + sh:path simulated-sensor:manipulationModel ; + sh:minCount 1 ; + sh:name "definedManipulationModel"@en ; + sh:or ( + [ sh:node simulated-sensor:PackageLossShape ] + [ sh:node simulated-sensor:PackageDelayShape ] + [ sh:node simulated-sensor:DetectionPointShiftShape ] + [ sh:node simulated-sensor:VelocityPointShiftShape ] + [ sh:node simulated-sensor:RangeReductionShape ] + [ sh:node simulated-sensor:DetectNonExistingPointsShape ] + [ sh:node simulated-sensor:CollisionSensorShiftShape ] + [ sh:node simulated-sensor:ConstantSensorShiftShape ] + [ sh:node simulated-sensor:SensorBlockageRandomLifetimeShape ] + [ sh:node simulated-sensor:SensorBlockageDefinedLifetimeShape ] + ) ; + sh:order 5 ; + sh:description "Manipulation (failure and attack patterns) model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed." ; + ] . + +# Available manipulation models: +# Model: packageLoss +simulated-sensor:PackageLossShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:PackageLoss ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the pattern of manipulation is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence"; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; + ] . + +# Model: packageDelay +simulated-sensor:PackageDelayShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:PackageDelay ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:delaySize ; + sh:datatype xsd:integer ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minCount 0 ; + sh:maxInclusive 100 ; + sh:description "Occupancy of the ringbuffer at start of the simulation" ; + ] ; + sh:property [ + sh:path simulated-sensor:degradationSize ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Amount of packages that are delayed" ; + ] ; + sh:property [ + sh:path simulated-sensor:ringBufferMaxUseSize ; + sh:datatype xsd:integer ; + sh:minCount 0 ; # if not defined, default value (100) is used + sh:maxCount 1 ; + sh:minInclusive 1 ; + sh:maxInclusive 100 ; + sh:description "Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss" ; + ] . + +# Model: detectionPointShift -> Shift of single detection points for simulating vibration effects +simulated-sensor:DetectionPointShiftShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:DetectionPointShift ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the pattern of manipulation is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence"; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences"; + ] ; + sh:property [ + sh:path simulated-sensor:maxDepthDisturbance ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting distance between the sensor and detection point" ; + ] ; + sh:property [ + sh:path simulated-sensor:maxAzimuthDisturbance; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting Azimuth between the sensor and detection point" ; + ] ; + sh:property [ + sh:path simulated-sensor:maxAltitudeDisturbance ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Maximal shifting Altitude between the sensor and detection point" ; + ] ; + sh:property [ + sh:path simulated-sensor:distribution ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) + sh:minInclusive 2 ; + sh:description "Kind of distrbution used to calculate the detection point shift" ; + ] . + + +# Model: velocityPointShift +simulated-sensor:VelocityPointShiftShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:VelocityPointShift ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the pattern of manipulation is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:maxVelocityDisturbance ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Maximal shift/change of the velocity" ; + ] ; + sh:property [ + sh:path simulated-sensor:distribution ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) + sh:minInclusive 2 ; + sh:description "Kind of distrbution used to calculate the velocity shift" ; + ] . + +# Failure Model: rangeReduction +simulated-sensor:RangeReductionShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:RangeReduction ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the pattern of manipulation is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:rangeReductionValue; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Distance of the range reduction in meters" ; + ] . + +# Failure Model: detectNonExistingPoints +simulated-sensor:DetectNonExistingPointsShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:DetectNonExistingPoints ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the pattern of manipulation is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:amountDetections ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Amount of non-existant points that shall be spawned" ; + ] ; + sh:property [ + sh:path simulated-sensor:horFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the ghost points are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path simulated-sensor:vertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the ghost points are spawned (vertical)"; + ] . + + +# Failure Model: sensorShift due to collision +simulated-sensor:CollisionSensorShiftShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:CollisionSensorShift ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:yaw ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Yaw rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:pitch ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Pitch rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:roll ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Roll rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:shiftTriggerFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 1; + sh:maxInclusive 1; + sh:description "If true, the shift will happen at the first collision" ; + ] . + +# Failure Model: sensorShift due to degradation (constantly shifting) +simulated-sensor:ConstantSensorShiftShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:ConstantSensorShift ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:duration ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Time the pattern of manipulation is active in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence"; + ] ; + sh:property [ + sh:path simulated-sensor:durationDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:yaw ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Yaw rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:pitch ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Pitch rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:roll ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "Roll rotation of the shift" ; + ] ; + sh:property [ + sh:path simulated-sensor:shiftFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:maxInclusive 1; + sh:description "If true, the shift occurs once at the beginning of the failur event, otherwise a constant shift is simulated" ; + ] ; + sh:property [ + sh:path simulated-sensor:shiftTriggerFlag ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; + sh:maxInclusive 0; + sh:description "If true, the shift will happen at the first collision" ; + ] . + + +# Failure Model: sensorBlockageRandomLifetime +simulated-sensor:SensorBlockageRandomLifetimeShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:SensorBlockageRandomLifetime ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; + ] ; + sh:property [ + sh:path simulated-sensor:amountOfBlockingObjects ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change (decrease) of the duration between re-ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:type ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; + ] ; + sh:property [ + sh:path simulated-sensor:lifeTime ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 1; + sh:maxInclusive 1; + sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; + ] ; + sh:property [ + sh:path simulated-sensor:maxBlockingObjectLifeTime; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Maximum lifetime of the blocking object(s) in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:blockageDropSpeed; + sh:datatype xsd:integer ; + sh:minCount 0 ; # default is 0 + sh:maxCount 1 ; + sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; + ] ; + sh:property [ + sh:path simulated-sensor:horFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path simulated-sensor:vertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; + ] . + + +# Failure Model: sensorBlockageDefinedLifetime +simulated-sensor:SensorBlockageDefinedLifetimeShape + a sh:NodeShape ; + sh:targetClass simulated-sensor:SensorBlockageDefinedLifetime ; + sh:property [ + sh:path simulated-sensor:start ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation + sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:interval ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:intervalDegradation ; + sh:datatype xsd:float ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change/worsening (decrease) of the time of re-occurrence" ; + ] ; + sh:property [ + sh:path simulated-sensor:amountOfBlockingObjects ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Change (decrease) of the duration between re-ocurrences" ; + ] ; + sh:property [ + sh:path simulated-sensor:type ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; + ] ; + sh:property [ + sh:path simulated-sensor:lifeTime ; + sh:datatype xsd:boolean ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:maxInclusive 0 ; + sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; + ] ; + sh:property [ + sh:path simulated-sensor:blockingObjectLifeTime ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0 ; + sh:description "Lifetime of each blocking object in seconds" ; + ] ; + sh:property [ + sh:path simulated-sensor:blockageDropSpeed; + sh:datatype xsd:integer ; + sh:minCount 0 ; # default is 0 + sh:maxCount 1 ; + sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; + ] ; + sh:property [ + sh:path simulated-sensor:horFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; + ] ; + sh:property [ + sh:path simulated-sensor:vertFOVFlag ; + sh:datatype xsd:integer ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top + sh:maxInclusive 2; + sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; + ] . \ No newline at end of file From 392e2d3dd058528daf79ca31b2ed977dbd4b0acd Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 22 Aug 2024 13:06:29 +0000 Subject: [PATCH 09/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- simulated-sensor/VARIABLES.md | 91 +++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 simulated-sensor/VARIABLES.md diff --git a/simulated-sensor/VARIABLES.md b/simulated-sensor/VARIABLES.md new file mode 100644 index 0000000..abbb261 --- /dev/null +++ b/simulated-sensor/VARIABLES.md @@ -0,0 +1,91 @@ +# Variables of SHACL Files in this folder + +## Prefixes + +- simulated-sensor: + +## List of SHACL Properties + +| Shape | Property prefix | Property | MinCount | MaxCount | Description | Datatype/NodeKind | Filename | +| --- | --- | --- | --- | --- | --- | --- | --- | +| SimulatedSensorShape | simulated-sensor | sensorType | 1 | 1 | Type of Sensor used in the simulation | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | mountingPosition | 1 | 1 | Position of the sensor on the vehicle. The precise coordinates are calculated in the world-coordinate system. Note that any back options will also induce a rotation of the sensor so that its field of view covers the vehicle rear. | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | numberOfBeams | 1 | 1 | Number of beams the radar or lidar sensor shall send | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | distance | 1 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | fieldOfView | 3 | 3 | For RADAR: horizontal and vertical angles; For LIDAR: horizontal FoV, upper FoV, lower FoV | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | manipulationModel | 1 | | Manipulation (failure and attack patterns) model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed. | | simulated_sensor_shacl.ttl | +| PackageLossShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| PackageLossShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| PackageLossShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | +| PackageLossShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | +| PackageLossShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | +| PackageDelayShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| PackageDelayShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| PackageDelayShape | simulated-sensor | delaySize | 0 | 1 | Occupancy of the ringbuffer at start of the simulation | | simulated_sensor_shacl.ttl | +| PackageDelayShape | simulated-sensor | degradationSize | 1 | 1 | Amount of packages that are delayed | | simulated_sensor_shacl.ttl | +| PackageDelayShape | simulated-sensor | ringBufferMaxUseSize | 0 | 1 | Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | maxDepthDisturbance | 0 | 1 | Maximal shifting distance between the sensor and detection point | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | maxAzimuthDisturbance | 0 | 1 | Maximal shifting Azimuth between the sensor and detection point | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | maxAltitudeDisturbance | 0 | 1 | Maximal shifting Altitude between the sensor and detection point | | simulated_sensor_shacl.ttl | +| DetectionPointShiftShape | simulated-sensor | distribution | 1 | 1 | Kind of distrbution used to calculate the detection point shift | | simulated_sensor_shacl.ttl | +| VelocityPointShiftShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| VelocityPointShiftShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| VelocityPointShiftShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | +| VelocityPointShiftShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | +| VelocityPointShiftShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | +| VelocityPointShiftShape | simulated-sensor | maxVelocityDisturbance | 1 | 1 | Maximal shift/change of the velocity | | simulated_sensor_shacl.ttl | +| VelocityPointShiftShape | simulated-sensor | distribution | 1 | 1 | Kind of distrbution used to calculate the velocity shift | | simulated_sensor_shacl.ttl | +| RangeReductionShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| RangeReductionShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| RangeReductionShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | +| RangeReductionShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | +| RangeReductionShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | +| RangeReductionShape | simulated-sensor | rangeReductionValue | 1 | 1 | Distance of the range reduction in meters | | simulated_sensor_shacl.ttl | +| DetectNonExistingPointsShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| DetectNonExistingPointsShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| DetectNonExistingPointsShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | +| DetectNonExistingPointsShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | +| DetectNonExistingPointsShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | +| DetectNonExistingPointsShape | simulated-sensor | amountDetections | 1 | 1 | Amount of non-existant points that shall be spawned | | simulated_sensor_shacl.ttl | +| DetectNonExistingPointsShape | simulated-sensor | horFOVFlag | 1 | 1 | Flag to indicate where the ghost points are spawned (horizontal) | | simulated_sensor_shacl.ttl | +| DetectNonExistingPointsShape | simulated-sensor | vertFOVFlag | 1 | 1 | Flag to indicate where the ghost points are spawned (vertical) | | simulated_sensor_shacl.ttl | +| CollisionSensorShiftShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| CollisionSensorShiftShape | simulated-sensor | yaw | 1 | 1 | Yaw rotation of the shift | | simulated_sensor_shacl.ttl | +| CollisionSensorShiftShape | simulated-sensor | pitch | 1 | 1 | Pitch rotation of the shift | | simulated_sensor_shacl.ttl | +| CollisionSensorShiftShape | simulated-sensor | roll | 1 | 1 | Roll rotation of the shift | | simulated_sensor_shacl.ttl | +| CollisionSensorShiftShape | simulated-sensor | shiftTriggerFlag | 1 | 1 | If true, the shift will happen at the first collision | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | yaw | 1 | 1 | Yaw rotation of the shift | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | pitch | 1 | 1 | Pitch rotation of the shift | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | roll | 1 | 1 | Roll rotation of the shift | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | shiftFlag | 1 | 1 | If true, the shift occurs once at the beginning of the failur event, otherwise a constant shift is simulated | | simulated_sensor_shacl.ttl | +| ConstantSensorShiftShape | simulated-sensor | shiftTriggerFlag | 1 | 1 | If true, the shift will happen at the first collision | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | amountOfBlockingObjects | 1 | 1 | Change (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | type | 1 | 1 | If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | lifeTime | 1 | 1 | If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | maxBlockingObjectLifeTime | 0 | 1 | Maximum lifetime of the blocking object(s) in seconds | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | blockageDropSpeed | 0 | 1 | Fall speed of the blocking object (e.g. to simulate dirt falling off the lense) | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | horFOVFlag | 1 | 1 | Flag to indicate where the blocking objects are spawned (horizontal) | | simulated_sensor_shacl.ttl | +| SensorBlockageRandomLifetimeShape | simulated-sensor | vertFOVFlag | 1 | 1 | Flag to indicate where the blocking objects are spawned (vertical) | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | amountOfBlockingObjects | 1 | 1 | Change (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | type | 1 | 1 | If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | lifeTime | 1 | 1 | If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | blockingObjectLifeTime | 1 | 1 | Lifetime of each blocking object in seconds | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | blockageDropSpeed | 0 | 1 | Fall speed of the blocking object (e.g. to simulate dirt falling off the lense) | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | horFOVFlag | 1 | 1 | Flag to indicate where the blocking objects are spawned (horizontal) | | simulated_sensor_shacl.ttl | +| SensorBlockageDefinedLifetimeShape | simulated-sensor | vertFOVFlag | 1 | 1 | Flag to indicate where the blocking objects are spawned (vertical) | | simulated_sensor_shacl.ttl | From 12f8aa025624d10964a869cb873bf306639adb8d Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Thu, 22 Aug 2024 15:06:41 +0200 Subject: [PATCH 10/33] removes old shape file --- simulated-sensor/simulated_sensor_shacl.ttl | 730 -------------------- 1 file changed, 730 deletions(-) delete mode 100644 simulated-sensor/simulated_sensor_shacl.ttl diff --git a/simulated-sensor/simulated_sensor_shacl.ttl b/simulated-sensor/simulated_sensor_shacl.ttl deleted file mode 100644 index 5d59196..0000000 --- a/simulated-sensor/simulated_sensor_shacl.ttl +++ /dev/null @@ -1,730 +0,0 @@ -@prefix simulated-sensor: . -@prefix sh: . -@prefix skos: . -@prefix xsd: . - -simulated-sensor:SimulatedSensorShape a sh:NodeShape ; - sh:targetClass simulated-sensor:SimulatedSensor ; - # sensorType (String, mandatory) - sh:property [ - skos:example "RADAR" ; - sh:path simulated-sensor:sensorType ; - sh:datatype xsd:string ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:name "sensorType"@en ; - sh:order 0 ; - sh:description "Type of Sensor used in the simulation" ; - ] ; - # mountingPosition (Tuple of three floats, mandatory) - sh:property [ - skos:example "Front-mid" ; - sh:path simulated-sensor:mountingPosition ; - sh:datatype xsd:string ; - sh:in ("Front-left" "Front-right" "Front-mid" "Top-left" "Top-right" "Top-mid" "Back-left" "Back-right" "Back-mid") ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:name "mountingPosition"@en ; - sh:order 1 ; - sh:description "Position of the sensor on the vehicle. The precise coordinates are calculated in the world-coordinate system. Note that any back options will also induce a rotation of the sensor so that its field of view covers the vehicle rear." ; - ] ; - # numberOfBeams (Integer, mandatory) - sh:property [ - skos:example "60" ; - sh:path simulated-sensor:numberOfBeams ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; - sh:name "numberOfBeams"@en ; - sh:order 2 ; - sh:description "Number of beams the radar or lidar sensor shall send" ; - ] ; - # distance (Integer, mandatory) - sh:property [ - skos:example "30" ; - sh:path simulated-sensor:distance ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; - sh:name "distance"@en ; - sh:order 3 ; - sh:description "Covered distance or range in meters" ; - ] ; - # fieldOfView (Tuple of three floats, mandatory) - sh:property [ - skos:example "30.0" ; - sh:path simulated-sensor:fieldOfView ; - sh:nodeKind sh:List ; - sh:datatype xsd:float ; - sh:minCount 3 ; - sh:maxCount 3 ; - sh:name "fieldOfView"@en ; - sh:order 4 ; - sh:description "For RADAR: horizontal and vertical angles; For LIDAR: horizontal FoV, upper FoV, lower FoV" ; - ] ; - # Ensure at least one failure/attack model is present - sh:property [ - skos:example "PackageLossShape" ; - sh:path simulated-sensor:manipulationModel ; - sh:minCount 1 ; - sh:name "definedManipulationModel"@en ; - sh:or ( - [ sh:node simulated-sensor:PackageLossShape ] - [ sh:node simulated-sensor:PackageDelayShape ] - [ sh:node simulated-sensor:DetectionPointShiftShape ] - [ sh:node simulated-sensor:VelocityPointShiftShape ] - [ sh:node simulated-sensor:RangeReductionShape ] - [ sh:node simulated-sensor:DetectNonExistingPointsShape ] - [ sh:node simulated-sensor:CollisionSensorShiftShape ] - [ sh:node simulated-sensor:ConstantSensorShiftShape ] - [ sh:node simulated-sensor:SensorBlockageRandomLifetimeShape ] - [ sh:node simulated-sensor:SensorBlockageDefinedLifetimeShape ] - ) ; - sh:order 5 ; - sh:description "Manipulation (failure and attack patterns) model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed." ; - ] . - -# Available manipulation models: -# Model: packageLoss -simulated-sensor:PackageLossShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:PackageLoss ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence"; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] . - -# Model: packageDelay -simulated-sensor:PackageDelayShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:PackageDelay ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:delaySize ; - sh:datatype xsd:integer ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minCount 0 ; - sh:maxInclusive 100 ; - sh:description "Occupancy of the ringbuffer at start of the simulation" ; - ] ; - sh:property [ - sh:path simulated-sensor:degradationSize ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Amount of packages that are delayed" ; - ] ; - sh:property [ - sh:path simulated-sensor:ringBufferMaxUseSize ; - sh:datatype xsd:integer ; - sh:minCount 0 ; # if not defined, default value (100) is used - sh:maxCount 1 ; - sh:minInclusive 1 ; - sh:maxInclusive 100 ; - sh:description "Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss" ; - ] . - -# Model: detectionPointShift -> Shift of single detection points for simulating vibration effects -simulated-sensor:DetectionPointShiftShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:DetectionPointShift ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence"; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences"; - ] ; - sh:property [ - sh:path simulated-sensor:maxDepthDisturbance ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting distance between the sensor and detection point" ; - ] ; - sh:property [ - sh:path simulated-sensor:maxAzimuthDisturbance; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting Azimuth between the sensor and detection point" ; - ] ; - sh:property [ - sh:path simulated-sensor:maxAltitudeDisturbance ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting Altitude between the sensor and detection point" ; - ] ; - sh:property [ - sh:path simulated-sensor:distribution ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) - sh:minInclusive 2 ; - sh:description "Kind of distrbution used to calculate the detection point shift" ; - ] . - - -# Model: velocityPointShift -simulated-sensor:VelocityPointShiftShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:VelocityPointShift ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:maxVelocityDisturbance ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Maximal shift/change of the velocity" ; - ] ; - sh:property [ - sh:path simulated-sensor:distribution ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) - sh:minInclusive 2 ; - sh:description "Kind of distrbution used to calculate the velocity shift" ; - ] . - -# Failure Model: rangeReduction -simulated-sensor:RangeReductionShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:RangeReduction ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:rangeReductionValue; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Distance of the range reduction in meters" ; - ] . - -# Failure Model: detectNonExistingPoints -simulated-sensor:DetectNonExistingPointsShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:DetectNonExistingPoints ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:amountDetections ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Amount of non-existant points that shall be spawned" ; - ] ; - sh:property [ - sh:path simulated-sensor:horFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the ghost points are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path simulated-sensor:vertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the ghost points are spawned (vertical)"; - ] . - - -# Failure Model: sensorShift due to collision -simulated-sensor:CollisionSensorShiftShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:CollisionSensorShift ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:yaw ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Yaw rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:pitch ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Pitch rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:roll ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Roll rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:shiftTriggerFlag ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 1; - sh:maxInclusive 1; - sh:description "If true, the shift will happen at the first collision" ; - ] . - -# Failure Model: sensorShift due to degradation (constantly shifting) -simulated-sensor:ConstantSensorShiftShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:ConstantSensorShift ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence"; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:yaw ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Yaw rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:pitch ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Pitch rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:roll ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Roll rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:shiftFlag ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; - sh:maxInclusive 1; - sh:description "If true, the shift occurs once at the beginning of the failur event, otherwise a constant shift is simulated" ; - ] ; - sh:property [ - sh:path simulated-sensor:shiftTriggerFlag ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; - sh:maxInclusive 0; - sh:description "If true, the shift will happen at the first collision" ; - ] . - - -# Failure Model: sensorBlockageRandomLifetime -simulated-sensor:SensorBlockageRandomLifetimeShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:SensorBlockageRandomLifetime ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:amountOfBlockingObjects ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:type ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; - ] ; - sh:property [ - sh:path simulated-sensor:lifeTime ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 1; - sh:maxInclusive 1; - sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; - ] ; - sh:property [ - sh:path simulated-sensor:maxBlockingObjectLifeTime; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Maximum lifetime of the blocking object(s) in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:blockageDropSpeed; - sh:datatype xsd:integer ; - sh:minCount 0 ; # default is 0 - sh:maxCount 1 ; - sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; - ] ; - sh:property [ - sh:path simulated-sensor:horFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path simulated-sensor:vertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; - ] . - - -# Failure Model: sensorBlockageDefinedLifetime -simulated-sensor:SensorBlockageDefinedLifetimeShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:SensorBlockageDefinedLifetime ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:amountOfBlockingObjects ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:type ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; - ] ; - sh:property [ - sh:path simulated-sensor:lifeTime ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:maxInclusive 0 ; - sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; - ] ; - sh:property [ - sh:path simulated-sensor:blockingObjectLifeTime ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Lifetime of each blocking object in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:blockageDropSpeed; - sh:datatype xsd:integer ; - sh:minCount 0 ; # default is 0 - sh:maxCount 1 ; - sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; - ] ; - sh:property [ - sh:path simulated-sensor:horFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path simulated-sensor:vertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; - ] . \ No newline at end of file From 879fe271a66092dc51c1ad728cb3fd5163ead359 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Thu, 22 Aug 2024 15:10:50 +0200 Subject: [PATCH 11/33] renames shape to shacl now (hopefully) --- .../{simulated_sensor_shape.ttl => simulated_sensor_shacl.ttl} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename simulated-sensor/{simulated_sensor_shape.ttl => simulated_sensor_shacl.ttl} (100%) diff --git a/simulated-sensor/simulated_sensor_shape.ttl b/simulated-sensor/simulated_sensor_shacl.ttl similarity index 100% rename from simulated-sensor/simulated_sensor_shape.ttl rename to simulated-sensor/simulated_sensor_shacl.ttl From 53de2c67359b8c6d1845b03e0ba7da0f7bc0c35d Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Thu, 22 Aug 2024 15:28:54 +0200 Subject: [PATCH 12/33] updates code ownership --- CODEOWNERS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CODEOWNERS b/CODEOWNERS index 7383321..7a6784e 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -50,3 +50,10 @@ # ositrace directory (Pierre AND Robert) /ositrace @robertschubert /ositrace @pmai + +# simulated-sensor directory (Rhea) +/simulated-sensor @telina + +# manipulated-sensor-simulation directory (Rhea AND Valentin) +/manipulated-sensor-simulation @telina +/manipulated-sensor-simulation @ValentinFischerTT From 59659131048c0676094b5125fc057fd0b6cf2b66 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Mon, 23 Sep 2024 09:27:54 +0200 Subject: [PATCH 13/33] adds manipulation models to ontology and json instance --- .../simulated-sensor_instance.json | 337 +++++++++++++++++- .../simulated_sensor_ontology.ttl | 42 ++- 2 files changed, 377 insertions(+), 2 deletions(-) diff --git a/simulated-sensor/simulated-sensor_instance.json b/simulated-sensor/simulated-sensor_instance.json index daeb05c..f1741e1 100755 --- a/simulated-sensor/simulated-sensor_instance.json +++ b/simulated-sensor/simulated-sensor_instance.json @@ -30,5 +30,340 @@ "@value": "0", "@type": "xsd:float" } - ] + ], + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:PackageLoss", + "simulated-sensor:durationDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:intervalDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:duration": { + "@value": "0.1", + "@type": "xsd:float" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:PackageDelay", + "simulated-sensor:ringBufferMaxUseSize": { + "@value": "100", + "@type": "xsd:integer" + }, + "simulated-sensor:degradationSize": { + "@value": "100", + "@type": "xsd:integer" + }, + "simulated-sensor:delaySize": { + "@value": "5", + "@type": "xsd:integer" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:DetectionPointShift", + "simulated-sensor:distribution": { + "@value": "1", + "@type": "xsd:integer" + }, + "simulated-sensor:maxAltitudeDisturbance": { + "@value": "3", + "@type": "xsd:float" + }, + "simulated-sensor:maxAzimuthDisturbance": { + "@value": "3", + "@type": "xsd:float" + }, + "simulated-sensor:maxDepthDisturbance": { + "@value": "3", + "@type": "xsd:float" + }, + "simulated-sensor:durationDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:intervalDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:duration": { + "@value": "0.5", + "@type": "xsd:float" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:VelocityPointShift", + "simulated-sensor:distribution": { + "@value": "2", + "@type": "xsd:integer" + }, + "simulated-sensor:maxVelocityDisturbance": { + "@value": "15", + "@type": "xsd:float" + }, + "simulated-sensor:durationDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:intervalDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:duration": { + "@value": "0.5", + "@type": "xsd:float" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:RangeReduction", + "simulated-sensor:rangeReductionValue": { + "@value": "30", + "@type": "xsd:float" + }, + "simulated-sensor:durationDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:intervalDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:duration": { + "@value": "0.5", + "@type": "xsd:float" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:DetectNonExistingPoints", + "simulated-sensor:vertFOVFlag": { + "@value": "2", + "@type": "xsd:integer" + }, + "simulated-sensor:horFOVFlag": { + "@value": "2", + "@type": "xsd:integer" + }, + "simulated-sensor:amountDetections": { + "@value": "25", + "@type": "xsd:integer" + }, + "simulated-sensor:durationDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:intervalDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:duration": { + "@value": "0.5", + "@type": "xsd:float" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:CollisionSensorShift", + "simulated-sensor:shiftTriggerFlag": { + "@value": "1", + "@type": "xsd:boolean" + }, + "simulated-sensor:roll": { + "@value": "-5", + "@type": "xsd:float" + }, + "simulated-sensor:pitch": { + "@value": "6", + "@type": "xsd:float" + }, + "simulated-sensor:yaw": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:ConstantSensorShift", + "simulated-sensor:shiftFlag": { + "@value": "1", + "@type": "xsd:boolean" + }, + "simulated-sensor:shiftTriggerFlag": { + "@value": "0", + "@type": "xsd:boolean" + }, + "simulated-sensor:roll": { + "@value": "-5", + "@type": "xsd:float" + }, + "simulated-sensor:pitch": { + "@value": "6", + "@type": "xsd:float" + }, + "simulated-sensor:yaw": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:durationDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:intervalDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:duration": { + "@value": "0.5", + "@type": "xsd:float" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:SensorBlockageRandomLifetime", + "simulated-sensor:vertFOVFlag": { + "@value": "2", + "@type": "xsd:integer" + }, + "simulated-sensor:horFOVFlag": { + "@value": "2", + "@type": "xsd:integer" + }, + "simulated-sensor:blockageDropSpeed": { + "@value": "0", + "@type": "xsd:float" + }, + "simulated-sensor:maxBlockingObjectLifeTime": { + "@value": "100", + "@type": "xsd:float" + }, + "simulated-sensor:lifeTime": { + "@value": "1", + "@type": "xsd:boolean" + }, + "simulated-sensor:type": { + "@value": "1", + "@type": "xsd:boolean" + }, + "simulated-sensor:amountOfBlockingObjects": { + "@value": "7", + "@type": "xsd:integer" + }, + "simulated-sensor:intervalDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:duration": { + "@value": "0.5", + "@type": "xsd:float" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + }, + "simulated-sensor:manipulationModel": { + "@type": "simulated-sensor:SensorBlockageDefinedLifetime", + "simulated-sensor:vertFOVFlag": { + "@value": "2", + "@type": "xsd:integer" + }, + "simulated-sensor:horFOVFlag": { + "@value": "2", + "@type": "xsd:integer" + }, + "simulated-sensor:blockageDropSpeed": { + "@value": "0", + "@type": "xsd:float" + }, + "simulated-sensor:blockingObjectLifeTime": { + "@value": "100", + "@type": "xsd:float" + }, + "simulated-sensor:lifeTime": { + "@value": "1", + "@type": "xsd:boolean" + }, + "simulated-sensor:type": { + "@value": "1", + "@type": "xsd:boolean" + }, + "simulated-sensor:amountOfBlockingObjects": { + "@value": "7", + "@type": "xsd:integer" + }, + "simulated-sensor:intervalDegradation": { + "@value": "2", + "@type": "xsd:float" + }, + "simulated-sensor:interval": { + "@value": "8", + "@type": "xsd:float" + }, + "simulated-sensor:start": { + "@value": "0", + "@type": "xsd:float" + } + } + } \ No newline at end of file diff --git a/simulated-sensor/simulated_sensor_ontology.ttl b/simulated-sensor/simulated_sensor_ontology.ttl index 45ee8ac..73afabd 100644 --- a/simulated-sensor/simulated_sensor_ontology.ttl +++ b/simulated-sensor/simulated_sensor_ontology.ttl @@ -19,4 +19,44 @@ simulated-sensor: a owl:Ontology ; simulated-sensor:SimulatedSensor a owl:Class ; rdfs:label "class definition simulated sensor"@en ; rdfs:comment "A simulated RADAR or LIDAR sensor in CARLA"@en ; - rdfs:subClassOf gx:DataResource . \ No newline at end of file + rdfs:subClassOf gx:DataResource . + +simulated-sensor:PackageLoss a owl:Class ; + rdfs:label "class definition for the package loss manipulation model"@en ; + rdfs:comment "Package loss manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:PackageDelay a owl:Class ; + rdfs:label "class definition for the package delay manipulation model"@en ; + rdfs:comment "Package delay manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:DetectionPointShift a owl:Class ; + rdfs:label "class definition for the detection point shift manipulation model"@en ; + rdfs:comment "Detection point shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:VelocityPointShift a owl:Class ; + rdfs:label "class definition for the velocity point shift manipulation model"@en ; + rdfs:comment "Velocity point shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:RangeReduction a owl:Class ; + rdfs:label "class definition for the range reduction manipulation model"@en ; + rdfs:comment "Range reduction manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:DetectNonExistingPoints a owl:Class ; + rdfs:label "class definition for the detect non-existant points manipulation model"@en ; + rdfs:comment "Detect non-existing points manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:CollisionSensorShift a owl:Class ; + rdfs:label "class definition for the collision shift manipulation model"@en ; + rdfs:comment "Collision shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:ConstantSensorShift a owl:Class ; + rdfs:label "class definition for the constant shift manipulation model"@en ; + rdfs:comment "Constant shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:SensorBlockageRandomLifetime a owl:Class ; + rdfs:label "class definition for the random lifetime blockage manipulation model"@en ; + rdfs:comment "Random lifetime blockage manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + +simulated-sensor:SensorBlockageDefinedLifetime a owl:Class ; + rdfs:label "class definition for the defined lifetime blockage manipulation model"@en ; + rdfs:comment "Defined lifetime blockage manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; From 5e0bd087cd496991f23466dda633ede1bf5dd93d Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Mon, 23 Sep 2024 09:59:52 +0200 Subject: [PATCH 14/33] adds KPI, vehicle model etc to ontology --- .../manipulated-sensor-simulation_ontology.ttl | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl b/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl index 4283964..fc7a637 100644 --- a/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl +++ b/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl @@ -14,3 +14,16 @@ manipulated-sensor-simulation:ManipulatedSensorSimulation a owl:Class ; rdfs:label "class definition for ManipulatedSensorSimulation" ; rdfs:comment "Service for sensor failure and attack simulation"@en ; rdfs:subClassOf gx:SoftwareResource . + +manipulated-sensor-simulation:Scenario a owl:Class ; + rdfs:label "class definition for the simulated scenario" ; + rdfs:comment "The scenario that shall be simulated via CARLAs scenario runner"@en ; + +manipulated-sensor-simulation:VehicleModel a owl:Class ; + rdfs:label "class definition for the vehicle model used in the simulation" ; + rdfs:comment "The vehicle model (as CARLA blueprint identifier) that shall be used for the simulations"@en ; + +manipulated-sensor-simulation:KeyPerformanceIndicator a owl:Class ; + rdfs:label "class definition for the Key Performance Indicators (KPIs) that shall be evaluated" ; + rdfs:comment "The Key Performance Indicators (KPIs) that shall be evaluated during the scenario simulation"@en ; + From 030852258dc55eec8633ccc270f56a80aa37dbe2 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Tue, 24 Sep 2024 14:10:56 +0200 Subject: [PATCH 15/33] fixes simulated sensor ontology incorrect endings of class def --- .../simulated_sensor_ontology.ttl | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/simulated-sensor/simulated_sensor_ontology.ttl b/simulated-sensor/simulated_sensor_ontology.ttl index 73afabd..3165e10 100644 --- a/simulated-sensor/simulated_sensor_ontology.ttl +++ b/simulated-sensor/simulated_sensor_ontology.ttl @@ -23,40 +23,40 @@ simulated-sensor:SimulatedSensor a owl:Class ; simulated-sensor:PackageLoss a owl:Class ; rdfs:label "class definition for the package loss manipulation model"@en ; - rdfs:comment "Package loss manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Package loss manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:PackageDelay a owl:Class ; rdfs:label "class definition for the package delay manipulation model"@en ; - rdfs:comment "Package delay manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Package delay manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:DetectionPointShift a owl:Class ; rdfs:label "class definition for the detection point shift manipulation model"@en ; - rdfs:comment "Detection point shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Detection point shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:VelocityPointShift a owl:Class ; rdfs:label "class definition for the velocity point shift manipulation model"@en ; - rdfs:comment "Velocity point shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Velocity point shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:RangeReduction a owl:Class ; rdfs:label "class definition for the range reduction manipulation model"@en ; - rdfs:comment "Range reduction manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Range reduction manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:DetectNonExistingPoints a owl:Class ; rdfs:label "class definition for the detect non-existant points manipulation model"@en ; - rdfs:comment "Detect non-existing points manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Detect non-existing points manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:CollisionSensorShift a owl:Class ; rdfs:label "class definition for the collision shift manipulation model"@en ; - rdfs:comment "Collision shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Collision shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:ConstantSensorShift a owl:Class ; rdfs:label "class definition for the constant shift manipulation model"@en ; - rdfs:comment "Constant shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Constant shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:SensorBlockageRandomLifetime a owl:Class ; rdfs:label "class definition for the random lifetime blockage manipulation model"@en ; - rdfs:comment "Random lifetime blockage manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Random lifetime blockage manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . simulated-sensor:SensorBlockageDefinedLifetime a owl:Class ; rdfs:label "class definition for the defined lifetime blockage manipulation model"@en ; - rdfs:comment "Defined lifetime blockage manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en ; + rdfs:comment "Defined lifetime blockage manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . From 46782145dbbc11abc04d3358dc92ccbbfc5414a9 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Wed, 4 Dec 2024 15:47:32 +0100 Subject: [PATCH 16/33] reworks simulated sensor definition to match any sensor in a simulator --- manipulated-sensor-simulation/VARIABLES.md | 18 - ...manipulated-sensor-simulation_ontology.ttl | 29 - .../manipulated-sensor-simulation_shacl.ttl | 68 -- .../simulated_sensor_ontology.ttl | 48 +- simulated-sensor/simulated_sensor_shacl.ttl | 736 +++--------------- 5 files changed, 101 insertions(+), 798 deletions(-) delete mode 100644 manipulated-sensor-simulation/VARIABLES.md delete mode 100644 manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl delete mode 100644 manipulated-sensor-simulation/manipulated-sensor-simulation_shacl.ttl diff --git a/manipulated-sensor-simulation/VARIABLES.md b/manipulated-sensor-simulation/VARIABLES.md deleted file mode 100644 index 363ec1c..0000000 --- a/manipulated-sensor-simulation/VARIABLES.md +++ /dev/null @@ -1,18 +0,0 @@ -# Variables of SHACL Files in this folder - -## Prefixes - -- manipulated-sensor-simulation: - -## List of SHACL Properties - -| Shape | Property prefix | Property | MinCount | MaxCount | Description | Datatype/NodeKind | Filename | -| --- | --- | --- | --- | --- | --- | --- | --- | -| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | service | 1 | 1 | | | manipulated-sensor-simulation_shacl.ttl | -| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | simulatedSensor | 1 | | | | manipulated-sensor-simulation_shacl.ttl | -| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | sensorSpecification | 1 | | | | manipulated-sensor-simulation_shacl.ttl | -| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | sensorSpecification | 0 | 1 | | | manipulated-sensor-simulation_shacl.ttl | -| ManipulatedSensorSimulationShape | manipulated-sensor-simulation | keyPerformanceIndicator | 1 | 3 | | | manipulated-sensor-simulation_shacl.ttl | -| ScenarioShape | manipulated-sensor-simulation | scenario | | | Identifier string of CARLAs ScenarioRUNNER scenario | | manipulated-sensor-simulation_shacl.ttl | -| VehicleModelShape | manipulated-sensor-simulation | vehicleModel | | | Desired vehicle model provided as the identifier in CARLAs blueprint library | | manipulated-sensor-simulation_shacl.ttl | -| KeyPerformanceIndicatorShape | manipulated-sensor-simulation | keyPerformanceIndicator | | | ecu.test KPI for ALKS simulation | | manipulated-sensor-simulation_shacl.ttl | diff --git a/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl b/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl deleted file mode 100644 index fc7a637..0000000 --- a/manipulated-sensor-simulation/manipulated-sensor-simulation_ontology.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix dcterms: . -@prefix owl: . -@prefix rdfs: . -@prefix manipulated-sensor-simulation: . -@prefix xsd: . -@prefix gx: . - -manipulated-sensor-simulation: a owl:Ontology ; - rdfs:label "ontology definition for sensor-failure-simulation"@en ; - dcterms:contributor "IQZ" ; - owl:versionInfo "0.1" . - -manipulated-sensor-simulation:ManipulatedSensorSimulation a owl:Class ; - rdfs:label "class definition for ManipulatedSensorSimulation" ; - rdfs:comment "Service for sensor failure and attack simulation"@en ; - rdfs:subClassOf gx:SoftwareResource . - -manipulated-sensor-simulation:Scenario a owl:Class ; - rdfs:label "class definition for the simulated scenario" ; - rdfs:comment "The scenario that shall be simulated via CARLAs scenario runner"@en ; - -manipulated-sensor-simulation:VehicleModel a owl:Class ; - rdfs:label "class definition for the vehicle model used in the simulation" ; - rdfs:comment "The vehicle model (as CARLA blueprint identifier) that shall be used for the simulations"@en ; - -manipulated-sensor-simulation:KeyPerformanceIndicator a owl:Class ; - rdfs:label "class definition for the Key Performance Indicators (KPIs) that shall be evaluated" ; - rdfs:comment "The Key Performance Indicators (KPIs) that shall be evaluated during the scenario simulation"@en ; - diff --git a/manipulated-sensor-simulation/manipulated-sensor-simulation_shacl.ttl b/manipulated-sensor-simulation/manipulated-sensor-simulation_shacl.ttl deleted file mode 100644 index fad2f51..0000000 --- a/manipulated-sensor-simulation/manipulated-sensor-simulation_shacl.ttl +++ /dev/null @@ -1,68 +0,0 @@ -@prefix manipulated-sensor-simulation: . -@prefix service: . -@prefix sh: . -@prefix skos: . -@prefix xsd: . -@prefix simulated-sensor: . - - -manipulated-sensor-simulation:ManipulatedSensorSimulationShape a sh:NodeShape; - sh:property - [ - sh:maxCount 1 ; - sh:minCount 1 ; - sh:node service:Service ; - sh:order 1 ; - sh:path manipulated-sensor-simulation:service ], - [ - sh:minCount 1 ; - sh:node simulated-sensor:SimulatedSensor ; - sh:order 2 ; - sh:path manipulated-sensor-simulation:simulatedSensor ], - [ - sh:minCount 1 ; - sh:node manipulated-sensor-simulation:Scenario ; - sh:order 3 ; - sh:path manipulated-sensor-simulation:sensorSpecification ] , - [ - sh:maxCount 1 ; - sh:minCount 0 ; - sh:node manipulated-sensor-simulation:VehicleModel ; - sh:order 4 ; - sh:path manipulated-sensor-simulation:sensorSpecification ] , - [ - sh:minCount 1 ; - sh:maxCount 3 ; - sh:node manipulated-sensor-simulation:KeyPerformanceIndicator ; - sh:order 5 ; - sh:path manipulated-sensor-simulation:keyPerformanceIndicator ] ; - sh:targetClass manipulated-sensor-simulation:ManipulatedSensorSimulation . - - -manipulated-sensor-simulation:ScenarioShape a sh:NodeShape ; - sh:property [ - skos:example "FollowLeadingVehicle" ; - sh:path manipulated-sensor-simulation:scenario ; - sh:datatype xsd:string ; - sh:description "Identifier string of CARLAs ScenarioRUNNER scenario" ; - ] ; -sh:targetClass manipulated-sensor-simulation:Scenario . - -manipulated-sensor-simulation:VehicleModelShape a sh:NodeShape ; - sh:property [ - skos:example "vehicle.audi.tt" ; - sh:path manipulated-sensor-simulation:vehicleModel ; - sh:datatype xsd:string ; - sh:description "Desired vehicle model provided as the identifier in CARLAs blueprint library" ; - ] ; -sh:targetClass manipulated-sensor-simulation:VehicleModel . - -manipulated-sensor-simulation:KeyPerformanceIndicatorShape a sh:NodeShape ; - sh:property [ - skos:example "TTC" ; - sh:path manipulated-sensor-simulation:keyPerformanceIndicator ; - sh:datatype xsd:string ; - sh:in ("TTC" "THW" "VAC") ; - sh:description "ecu.test KPI for ALKS simulation" ; - ] ; -sh:targetClass manipulated-sensor-simulation:KeyPerformanceIndicator . \ No newline at end of file diff --git a/simulated-sensor/simulated_sensor_ontology.ttl b/simulated-sensor/simulated_sensor_ontology.ttl index 3165e10..32b4bfd 100644 --- a/simulated-sensor/simulated_sensor_ontology.ttl +++ b/simulated-sensor/simulated_sensor_ontology.ttl @@ -18,45 +18,17 @@ simulated-sensor: a owl:Ontology ; simulated-sensor:SimulatedSensor a owl:Class ; rdfs:label "class definition simulated sensor"@en ; - rdfs:comment "A simulated RADAR or LIDAR sensor in CARLA"@en ; + rdfs:comment "A sensor in an automotive driving simulator"@en ; rdfs:subClassOf gx:DataResource . -simulated-sensor:PackageLoss a owl:Class ; - rdfs:label "class definition for the package loss manipulation model"@en ; - rdfs:comment "Package loss manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . +simulated-sensor:Radar a owl:Class ; + rdfs:label "class definition for a simulated radar sensor"@en ; + rdfs:comment "A simulated RADAR sensor"@en . -simulated-sensor:PackageDelay a owl:Class ; - rdfs:label "class definition for the package delay manipulation model"@en ; - rdfs:comment "Package delay manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . +simulated-sensor:Lidar a owl:Class ; + rdfs:label "class definition for a simulated lidar sensor"@en ; + rdfs:comment "A simulated LIDAR sensor"@en . -simulated-sensor:DetectionPointShift a owl:Class ; - rdfs:label "class definition for the detection point shift manipulation model"@en ; - rdfs:comment "Detection point shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . - -simulated-sensor:VelocityPointShift a owl:Class ; - rdfs:label "class definition for the velocity point shift manipulation model"@en ; - rdfs:comment "Velocity point shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . - -simulated-sensor:RangeReduction a owl:Class ; - rdfs:label "class definition for the range reduction manipulation model"@en ; - rdfs:comment "Range reduction manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . - -simulated-sensor:DetectNonExistingPoints a owl:Class ; - rdfs:label "class definition for the detect non-existant points manipulation model"@en ; - rdfs:comment "Detect non-existing points manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . - -simulated-sensor:CollisionSensorShift a owl:Class ; - rdfs:label "class definition for the collision shift manipulation model"@en ; - rdfs:comment "Collision shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . - -simulated-sensor:ConstantSensorShift a owl:Class ; - rdfs:label "class definition for the constant shift manipulation model"@en ; - rdfs:comment "Constant shift manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . - -simulated-sensor:SensorBlockageRandomLifetime a owl:Class ; - rdfs:label "class definition for the random lifetime blockage manipulation model"@en ; - rdfs:comment "Random lifetime blockage manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . - -simulated-sensor:SensorBlockageDefinedLifetime a owl:Class ; - rdfs:label "class definition for the defined lifetime blockage manipulation model"@en ; - rdfs:comment "Defined lifetime blockage manipulation model for a simulated RADAR/LIDAR sensor in CARLA"@en . +simulated-sensor:Camera a owl:Class ; + rdfs:label "class definition for a simulated camera sensor"@en ; + rdfs:comment "A simulated camera sensor"@en . \ No newline at end of file diff --git a/simulated-sensor/simulated_sensor_shacl.ttl b/simulated-sensor/simulated_sensor_shacl.ttl index 5d59196..00768b9 100644 --- a/simulated-sensor/simulated_sensor_shacl.ttl +++ b/simulated-sensor/simulated_sensor_shacl.ttl @@ -5,726 +5,172 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; sh:targetClass simulated-sensor:SimulatedSensor ; - # sensorType (String, mandatory) + # mountingPosition (Tuple of three floats, mandatory) + # Ensure at least one sensor is available sh:property [ - skos:example "RADAR" ; + skos:example "Radar" ; sh:path simulated-sensor:sensorType ; - sh:datatype xsd:string ; sh:minCount 1 ; - sh:maxCount 1 ; + sh:maxCount 1; sh:name "sensorType"@en ; + sh:or ( + [ sh:node simulated-sensor:Radar ] + [ sh:node simulated-sensor:Lidar ] + [ sh:node simulated-sensor:Camera ] + ) ; sh:order 0 ; - sh:description "Type of Sensor used in the simulation" ; + sh:description "Perception and other relevant sensors for autonomous driving" ; ] ; - # mountingPosition (Tuple of three floats, mandatory) + sh:property [ + skos:example "RADAR" ; + sh:path simulated-sensor:sensorIdentifier ; + sh:datatype xsd:string ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:name "sensorIdentifier"@en ; + sh:order 1 ; + sh:description "Name/Identifier of the sensor in the simulator" ; + ] ; + # mountingPosition TODO: Perhaps this is too specific, not all simulators will use the same metric/parametrization for this sh:property [ skos:example "Front-mid" ; sh:path simulated-sensor:mountingPosition ; sh:datatype xsd:string ; sh:in ("Front-left" "Front-right" "Front-mid" "Top-left" "Top-right" "Top-mid" "Back-left" "Back-right" "Back-mid") ; - sh:minCount 1 ; + sh:minCount 0 ; sh:maxCount 1 ; sh:name "mountingPosition"@en ; - sh:order 1 ; - sh:description "Position of the sensor on the vehicle. The precise coordinates are calculated in the world-coordinate system. Note that any back options will also induce a rotation of the sensor so that its field of view covers the vehicle rear." ; - ] ; - # numberOfBeams (Integer, mandatory) + sh:order 2 ; + sh:description "Possible mounting positions of the radar" ; + ] . + +# Available sensors +# RADAR +simulated-sensor:Radar + a sh:NodeShape ; + sh:targetClass simulated-sensor:Radar ; + # numberOfBeams (Integer) sh:property [ skos:example "60" ; sh:path simulated-sensor:numberOfBeams ; sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; + sh:minCount 0 ; sh:minInclusive 0; sh:name "numberOfBeams"@en ; sh:order 2 ; - sh:description "Number of beams the radar or lidar sensor shall send" ; + sh:description "Number of beams sent by the radar sensor" ; ] ; - # distance (Integer, mandatory) + # distance (Integer) sh:property [ skos:example "30" ; sh:path simulated-sensor:distance ; sh:datatype xsd:float ; - sh:minCount 1 ; + sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0; sh:name "distance"@en ; sh:order 3 ; sh:description "Covered distance or range in meters" ; ] ; - # fieldOfView (Tuple of three floats, mandatory) + # fieldOfView (Tuple of three floats) sh:property [ skos:example "30.0" ; sh:path simulated-sensor:fieldOfView ; sh:nodeKind sh:List ; sh:datatype xsd:float ; - sh:minCount 3 ; - sh:maxCount 3 ; - sh:name "fieldOfView"@en ; - sh:order 4 ; - sh:description "For RADAR: horizontal and vertical angles; For LIDAR: horizontal FoV, upper FoV, lower FoV" ; - ] ; - # Ensure at least one failure/attack model is present - sh:property [ - skos:example "PackageLossShape" ; - sh:path simulated-sensor:manipulationModel ; - sh:minCount 1 ; - sh:name "definedManipulationModel"@en ; - sh:or ( - [ sh:node simulated-sensor:PackageLossShape ] - [ sh:node simulated-sensor:PackageDelayShape ] - [ sh:node simulated-sensor:DetectionPointShiftShape ] - [ sh:node simulated-sensor:VelocityPointShiftShape ] - [ sh:node simulated-sensor:RangeReductionShape ] - [ sh:node simulated-sensor:DetectNonExistingPointsShape ] - [ sh:node simulated-sensor:CollisionSensorShiftShape ] - [ sh:node simulated-sensor:ConstantSensorShiftShape ] - [ sh:node simulated-sensor:SensorBlockageRandomLifetimeShape ] - [ sh:node simulated-sensor:SensorBlockageDefinedLifetimeShape ] - ) ; - sh:order 5 ; - sh:description "Manipulation (failure and attack patterns) model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed." ; - ] . - -# Available manipulation models: -# Model: packageLoss -simulated-sensor:PackageLossShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:PackageLoss ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence"; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] . - -# Model: packageDelay -simulated-sensor:PackageDelayShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:PackageDelay ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:delaySize ; - sh:datatype xsd:integer ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minCount 0 ; - sh:maxInclusive 100 ; - sh:description "Occupancy of the ringbuffer at start of the simulation" ; - ] ; - sh:property [ - sh:path simulated-sensor:degradationSize ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Amount of packages that are delayed" ; - ] ; - sh:property [ - sh:path simulated-sensor:ringBufferMaxUseSize ; - sh:datatype xsd:integer ; - sh:minCount 0 ; # if not defined, default value (100) is used - sh:maxCount 1 ; - sh:minInclusive 1 ; - sh:maxInclusive 100 ; - sh:description "Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss" ; - ] . - -# Model: detectionPointShift -> Shift of single detection points for simulating vibration effects -simulated-sensor:DetectionPointShiftShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:DetectionPointShift ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence"; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences"; - ] ; - sh:property [ - sh:path simulated-sensor:maxDepthDisturbance ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting distance between the sensor and detection point" ; - ] ; - sh:property [ - sh:path simulated-sensor:maxAzimuthDisturbance; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting Azimuth between the sensor and detection point" ; - ] ; - sh:property [ - sh:path simulated-sensor:maxAltitudeDisturbance ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Maximal shifting Altitude between the sensor and detection point" ; - ] ; - sh:property [ - sh:path simulated-sensor:distribution ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) - sh:minInclusive 2 ; - sh:description "Kind of distrbution used to calculate the detection point shift" ; + sh:name "fieldOfView"@en ; + sh:order 4 ; + sh:description "Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV" ; ] . - -# Model: velocityPointShift -simulated-sensor:VelocityPointShiftShape +# LIDAR +simulated-sensor:Lidar a sh:NodeShape ; - sh:targetClass simulated-sensor:VelocityPointShift ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] ; + sh:targetClass simulated-sensor:Lidar ; + # numberOfBeams (Integer) sh:property [ - sh:path simulated-sensor:maxVelocityDisturbance ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Maximal shift/change of the velocity" ; - ] ; - sh:property [ - sh:path simulated-sensor:distribution ; + skos:example "60" ; + sh:path simulated-sensor:numberOfBeams ; sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # Enum values for distribution (0 - nothing, 1 - Weibull, 2 - linear) - sh:minInclusive 2 ; - sh:description "Kind of distrbution used to calculate the velocity shift" ; - ] . - -# Failure Model: rangeReduction -simulated-sensor:RangeReductionShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:RangeReduction ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:rangeReductionValue; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Distance of the range reduction in meters" ; - ] . - -# Failure Model: detectNonExistingPoints -simulated-sensor:DetectNonExistingPointsShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:DetectNonExistingPoints ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; + sh:minInclusive 0; + sh:name "numberOfBeams"@en ; + sh:order 2 ; + sh:description "Number of beams sent by the lidar sensor" ; ] ; + # distance (Integer) sh:property [ - sh:path simulated-sensor:intervalDegradation ; + skos:example "30" ; + sh:path simulated-sensor:distance ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; + sh:minInclusive 0; + sh:name "distance"@en ; + sh:order 3 ; + sh:description "Covered distance or range in meters" ; ] ; + # fieldOfView (Tuple of three floats) sh:property [ - sh:path simulated-sensor:durationDegradation ; + skos:example "30.0" ; + sh:path simulated-sensor:fieldOfView ; + sh:nodeKind sh:List ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:amountDetections ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Amount of non-existant points that shall be spawned" ; - ] ; - sh:property [ - sh:path simulated-sensor:horFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the ghost points are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path simulated-sensor:vertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the ghost points are spawned (vertical)"; + sh:name "fieldOfView"@en ; + sh:order 4 ; + sh:description "Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV" ; ] . - -# Failure Model: sensorShift due to collision -simulated-sensor:CollisionSensorShiftShape +# CAMERA +simulated-sensor:Camera a sh:NodeShape ; - sh:targetClass simulated-sensor:CollisionSensorShift ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:yaw ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Yaw rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:pitch ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Pitch rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:roll ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Roll rotation of the shift" ; - ] ; + sh:targetClass simulated-sensor:Camera ; sh:property [ - sh:path simulated-sensor:shiftTriggerFlag ; + skos:example "true" ; + sh:path simulated-sensor:rgbFlag ; sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 1; - sh:maxInclusive 1; - sh:description "If true, the shift will happen at the first collision" ; - ] . - -# Failure Model: sensorShift due to degradation (constantly shifting) -simulated-sensor:ConstantSensorShiftShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:ConstantSensorShift ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:duration ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Time the pattern of manipulation is active in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence"; - ] ; - sh:property [ - sh:path simulated-sensor:durationDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:description "Change/worsening (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:yaw ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Yaw rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:pitch ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Pitch rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:roll ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "Roll rotation of the shift" ; - ] ; - sh:property [ - sh:path simulated-sensor:shiftFlag ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; - sh:maxInclusive 1; - sh:description "If true, the shift occurs once at the beginning of the failur event, otherwise a constant shift is simulated" ; + sh:name "rgbFlag"@en ; + sh:order 0 ; + sh:description "If true, camera is RGB camera" ; ] ; sh:property [ - sh:path simulated-sensor:shiftTriggerFlag ; + skos:example "false" ; + sh:path simulated-sensor:3dflag ; sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; - sh:maxInclusive 0; - sh:description "If true, the shift will happen at the first collision" ; - ] . - - -# Failure Model: sensorBlockageRandomLifetime -simulated-sensor:SensorBlockageRandomLifetimeShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:SensorBlockageRandomLifetime ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:amountOfBlockingObjects ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:type ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; + sh:name "3dflag"@en ; + sh:order 1 ; + sh:description "If true, camera is 3D camera" ; ] ; sh:property [ - sh:path simulated-sensor:lifeTime ; + skos:example "false" ; + sh:path simulated-sensor:detphFlag ; sh:datatype xsd:boolean ; - sh:minCount 1 ; + sh:minCount 0 ; sh:maxCount 1 ; - sh:minInclusive 1; - sh:maxInclusive 1; - sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; + sh:name "depthFlag"@en ; + sh:order 2 ; + sh:description "If true, camera is depth camera" ; ] ; + # fieldOfView (Tuple of three floats) sh:property [ - sh:path simulated-sensor:maxBlockingObjectLifeTime; + skos:example "30.0" ; + sh:path simulated-sensor:fieldOfView ; + sh:nodeKind sh:List ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Maximum lifetime of the blocking object(s) in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:blockageDropSpeed; - sh:datatype xsd:integer ; - sh:minCount 0 ; # default is 0 - sh:maxCount 1 ; - sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; - ] ; - sh:property [ - sh:path simulated-sensor:horFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path simulated-sensor:vertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; + sh:name "fieldOfView"@en ; + sh:order 3 ; + sh:description "Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV" ; ] . -# Failure Model: sensorBlockageDefinedLifetime -simulated-sensor:SensorBlockageDefinedLifetimeShape - a sh:NodeShape ; - sh:targetClass simulated-sensor:SensorBlockageDefinedLifetime ; - sh:property [ - sh:path simulated-sensor:start ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; # minimal value is 0 corresponding to start of the simulation - sh:description "First occurrence of the pattern of manipulation in the simulation in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:interval ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Interval of re-occurrence of the manipulation pattern in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:intervalDegradation ; - sh:datatype xsd:float ; - sh:minCount 0 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change/worsening (decrease) of the time of re-occurrence" ; - ] ; - sh:property [ - sh:path simulated-sensor:amountOfBlockingObjects ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Change (decrease) of the duration between re-ocurrences" ; - ] ; - sh:property [ - sh:path simulated-sensor:type ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:description "If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor" ; - ] ; - sh:property [ - sh:path simulated-sensor:lifeTime ; - sh:datatype xsd:boolean ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:maxInclusive 0 ; - sh:description "If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined" ; - ] ; - sh:property [ - sh:path simulated-sensor:blockingObjectLifeTime ; - sh:datatype xsd:float ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0 ; - sh:description "Lifetime of each blocking object in seconds" ; - ] ; - sh:property [ - sh:path simulated-sensor:blockageDropSpeed; - sh:datatype xsd:integer ; - sh:minCount 0 ; # default is 0 - sh:maxCount 1 ; - sh:description "Fall speed of the blocking object (e.g. to simulate dirt falling off the lense)" ; - ] ; - sh:property [ - sh:path simulated-sensor:horFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - left, 1 - everywhere in horizontal FOV, 2 - right - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (horizontal)" ; - ] ; - sh:property [ - sh:path simulated-sensor:vertFOVFlag ; - sh:datatype xsd:integer ; - sh:minCount 1 ; - sh:maxCount 1 ; - sh:minInclusive 0; # 0 - bottom, 1 - everywhere in vertical FOV, 2 - top - sh:maxInclusive 2; - sh:description "Flag to indicate where the blocking objects are spawned (vertical)"; - ] . \ No newline at end of file + From b53d6368dfbad9c2335901258f6fe9a42a06b5b7 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 4 Dec 2024 14:48:07 +0000 Subject: [PATCH 17/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- simulated-sensor/VARIABLES.md | 94 +++++------------------------------ 1 file changed, 13 insertions(+), 81 deletions(-) diff --git a/simulated-sensor/VARIABLES.md b/simulated-sensor/VARIABLES.md index abbb261..ad8e7d9 100644 --- a/simulated-sensor/VARIABLES.md +++ b/simulated-sensor/VARIABLES.md @@ -8,84 +8,16 @@ | Shape | Property prefix | Property | MinCount | MaxCount | Description | Datatype/NodeKind | Filename | | --- | --- | --- | --- | --- | --- | --- | --- | -| SimulatedSensorShape | simulated-sensor | sensorType | 1 | 1 | Type of Sensor used in the simulation | | simulated_sensor_shacl.ttl | -| SimulatedSensorShape | simulated-sensor | mountingPosition | 1 | 1 | Position of the sensor on the vehicle. The precise coordinates are calculated in the world-coordinate system. Note that any back options will also induce a rotation of the sensor so that its field of view covers the vehicle rear. | | simulated_sensor_shacl.ttl | -| SimulatedSensorShape | simulated-sensor | numberOfBeams | 1 | 1 | Number of beams the radar or lidar sensor shall send | | simulated_sensor_shacl.ttl | -| SimulatedSensorShape | simulated-sensor | distance | 1 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | -| SimulatedSensorShape | simulated-sensor | fieldOfView | 3 | 3 | For RADAR: horizontal and vertical angles; For LIDAR: horizontal FoV, upper FoV, lower FoV | | simulated_sensor_shacl.ttl | -| SimulatedSensorShape | simulated-sensor | manipulationModel | 1 | | Manipulation (failure and attack patterns) model(s) of the sensor. Each definition will lead to another independent simulation. Note that always one reference simulation with a non-manipulated sensor is performed. | | simulated_sensor_shacl.ttl | -| PackageLossShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| PackageLossShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| PackageLossShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | -| PackageLossShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | -| PackageLossShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | -| PackageDelayShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| PackageDelayShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| PackageDelayShape | simulated-sensor | delaySize | 0 | 1 | Occupancy of the ringbuffer at start of the simulation | | simulated_sensor_shacl.ttl | -| PackageDelayShape | simulated-sensor | degradationSize | 1 | 1 | Amount of packages that are delayed | | simulated_sensor_shacl.ttl | -| PackageDelayShape | simulated-sensor | ringBufferMaxUseSize | 0 | 1 | Amount of raw data packages that fit into the ringbuffer before it overflows and causes package loss | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | maxDepthDisturbance | 0 | 1 | Maximal shifting distance between the sensor and detection point | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | maxAzimuthDisturbance | 0 | 1 | Maximal shifting Azimuth between the sensor and detection point | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | maxAltitudeDisturbance | 0 | 1 | Maximal shifting Altitude between the sensor and detection point | | simulated_sensor_shacl.ttl | -| DetectionPointShiftShape | simulated-sensor | distribution | 1 | 1 | Kind of distrbution used to calculate the detection point shift | | simulated_sensor_shacl.ttl | -| VelocityPointShiftShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| VelocityPointShiftShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| VelocityPointShiftShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | -| VelocityPointShiftShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | -| VelocityPointShiftShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | -| VelocityPointShiftShape | simulated-sensor | maxVelocityDisturbance | 1 | 1 | Maximal shift/change of the velocity | | simulated_sensor_shacl.ttl | -| VelocityPointShiftShape | simulated-sensor | distribution | 1 | 1 | Kind of distrbution used to calculate the velocity shift | | simulated_sensor_shacl.ttl | -| RangeReductionShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| RangeReductionShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| RangeReductionShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | -| RangeReductionShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | -| RangeReductionShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | -| RangeReductionShape | simulated-sensor | rangeReductionValue | 1 | 1 | Distance of the range reduction in meters | | simulated_sensor_shacl.ttl | -| DetectNonExistingPointsShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| DetectNonExistingPointsShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| DetectNonExistingPointsShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | -| DetectNonExistingPointsShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | -| DetectNonExistingPointsShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | -| DetectNonExistingPointsShape | simulated-sensor | amountDetections | 1 | 1 | Amount of non-existant points that shall be spawned | | simulated_sensor_shacl.ttl | -| DetectNonExistingPointsShape | simulated-sensor | horFOVFlag | 1 | 1 | Flag to indicate where the ghost points are spawned (horizontal) | | simulated_sensor_shacl.ttl | -| DetectNonExistingPointsShape | simulated-sensor | vertFOVFlag | 1 | 1 | Flag to indicate where the ghost points are spawned (vertical) | | simulated_sensor_shacl.ttl | -| CollisionSensorShiftShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| CollisionSensorShiftShape | simulated-sensor | yaw | 1 | 1 | Yaw rotation of the shift | | simulated_sensor_shacl.ttl | -| CollisionSensorShiftShape | simulated-sensor | pitch | 1 | 1 | Pitch rotation of the shift | | simulated_sensor_shacl.ttl | -| CollisionSensorShiftShape | simulated-sensor | roll | 1 | 1 | Roll rotation of the shift | | simulated_sensor_shacl.ttl | -| CollisionSensorShiftShape | simulated-sensor | shiftTriggerFlag | 1 | 1 | If true, the shift will happen at the first collision | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | duration | 1 | 1 | Time the pattern of manipulation is active in seconds | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | durationDegradation | 0 | 1 | Change/worsening (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | yaw | 1 | 1 | Yaw rotation of the shift | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | pitch | 1 | 1 | Pitch rotation of the shift | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | roll | 1 | 1 | Roll rotation of the shift | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | shiftFlag | 1 | 1 | If true, the shift occurs once at the beginning of the failur event, otherwise a constant shift is simulated | | simulated_sensor_shacl.ttl | -| ConstantSensorShiftShape | simulated-sensor | shiftTriggerFlag | 1 | 1 | If true, the shift will happen at the first collision | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | amountOfBlockingObjects | 1 | 1 | Change (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | type | 1 | 1 | If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | lifeTime | 1 | 1 | If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | maxBlockingObjectLifeTime | 0 | 1 | Maximum lifetime of the blocking object(s) in seconds | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | blockageDropSpeed | 0 | 1 | Fall speed of the blocking object (e.g. to simulate dirt falling off the lense) | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | horFOVFlag | 1 | 1 | Flag to indicate where the blocking objects are spawned (horizontal) | | simulated_sensor_shacl.ttl | -| SensorBlockageRandomLifetimeShape | simulated-sensor | vertFOVFlag | 1 | 1 | Flag to indicate where the blocking objects are spawned (vertical) | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | start | 1 | 1 | First occurrence of the pattern of manipulation in the simulation in seconds | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | interval | 1 | 1 | Interval of re-occurrence of the manipulation pattern in seconds | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | intervalDegradation | 0 | 1 | Change/worsening (decrease) of the time of re-occurrence | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | amountOfBlockingObjects | 1 | 1 | Change (decrease) of the duration between re-ocurrences | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | type | 1 | 1 | If true, blockage points are spawend in the entire FOV of the sensor. Otherwise in 1m distance to the sensor | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | lifeTime | 1 | 1 | If true, the blocking object will have a random lifetime, otherwise the lifetime has to be defined | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | blockingObjectLifeTime | 1 | 1 | Lifetime of each blocking object in seconds | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | blockageDropSpeed | 0 | 1 | Fall speed of the blocking object (e.g. to simulate dirt falling off the lense) | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | horFOVFlag | 1 | 1 | Flag to indicate where the blocking objects are spawned (horizontal) | | simulated_sensor_shacl.ttl | -| SensorBlockageDefinedLifetimeShape | simulated-sensor | vertFOVFlag | 1 | 1 | Flag to indicate where the blocking objects are spawned (vertical) | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | sensorType | 1 | 1 | Perception and other relevant sensors for autonomous driving | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | sensorIdentifier | 0 | 1 | Name/Identifier of the sensor in the simulator | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | mountingPosition | 0 | 1 | Possible mounting positions of the radar | | simulated_sensor_shacl.ttl | +| Radar | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the radar sensor | | simulated_sensor_shacl.ttl | +| Radar | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | +| Radar | simulated-sensor | fieldOfView | 0 | 1 | Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV | | simulated_sensor_shacl.ttl | +| Lidar | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the lidar sensor | | simulated_sensor_shacl.ttl | +| Lidar | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | +| Lidar | simulated-sensor | fieldOfView | 0 | 1 | Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV | | simulated_sensor_shacl.ttl | +| Camera | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated_sensor_shacl.ttl | +| Camera | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated_sensor_shacl.ttl | +| Camera | simulated-sensor | detphFlag | 0 | 1 | If true, camera is depth camera | | simulated_sensor_shacl.ttl | +| Camera | simulated-sensor | fieldOfView | 0 | 1 | Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV | | simulated_sensor_shacl.ttl | From b49e6d7a70ff3246e231e1147c024e6782c6d863 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Wed, 4 Dec 2024 16:18:22 +0100 Subject: [PATCH 18/33] updates simulated sensor instance --- .../simulated-sensor_instance.json | 370 +----------------- 1 file changed, 21 insertions(+), 349 deletions(-) diff --git a/simulated-sensor/simulated-sensor_instance.json b/simulated-sensor/simulated-sensor_instance.json index f1741e1..2021fbd 100755 --- a/simulated-sensor/simulated-sensor_instance.json +++ b/simulated-sensor/simulated-sensor_instance.json @@ -7,363 +7,35 @@ }, "@id": "did:web:registry.gaia-x.eu:SimulatedSensor:B6gYmAU2PiHe8c3aqSbazCkrE7sUfCkRPFv2", "@type": "simulated-sensor:SimulatedSensor", - "simulated-sensor:sensorType": { - "@value": "RADAR", - "@type": "xsd:string" - }, + "simulated-sensor:sensorIdentifier": "sensor.other.radar", "simulated-sensor:mountingPosition": "Front-mid", - "simulated-sensor:numberOfBeams": 1500, - "simulated-sensor:distance": { - "@value": "100", - "@type": "xsd:float" - }, - "simulated-sensor:fieldOfView": [ - { - "@value": "60", - "@type": "xsd:float" - }, - { - "@value": "30", - "@type": "xsd:float" - }, - { - "@value": "0", - "@type": "xsd:float" - } - ], - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:PackageLoss", - "simulated-sensor:durationDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:intervalDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:duration": { - "@value": "0.1", - "@type": "xsd:float" - }, - "simulated-sensor:interval": { - "@value": "8", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:PackageDelay", - "simulated-sensor:ringBufferMaxUseSize": { - "@value": "100", - "@type": "xsd:integer" - }, - "simulated-sensor:degradationSize": { - "@value": "100", - "@type": "xsd:integer" - }, - "simulated-sensor:delaySize": { - "@value": "5", - "@type": "xsd:integer" - }, - "simulated-sensor:interval": { - "@value": "8", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:DetectionPointShift", - "simulated-sensor:distribution": { - "@value": "1", - "@type": "xsd:integer" - }, - "simulated-sensor:maxAltitudeDisturbance": { - "@value": "3", - "@type": "xsd:float" - }, - "simulated-sensor:maxAzimuthDisturbance": { - "@value": "3", - "@type": "xsd:float" - }, - "simulated-sensor:maxDepthDisturbance": { - "@value": "3", - "@type": "xsd:float" - }, - "simulated-sensor:durationDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:intervalDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:duration": { - "@value": "0.5", - "@type": "xsd:float" - }, - "simulated-sensor:interval": { - "@value": "8", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:VelocityPointShift", - "simulated-sensor:distribution": { - "@value": "2", - "@type": "xsd:integer" - }, - "simulated-sensor:maxVelocityDisturbance": { - "@value": "15", - "@type": "xsd:float" - }, - "simulated-sensor:durationDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:intervalDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:duration": { - "@value": "0.5", - "@type": "xsd:float" - }, - "simulated-sensor:interval": { - "@value": "8", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:RangeReduction", - "simulated-sensor:rangeReductionValue": { - "@value": "30", - "@type": "xsd:float" - }, - "simulated-sensor:durationDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:intervalDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:duration": { - "@value": "0.5", - "@type": "xsd:float" - }, - "simulated-sensor:interval": { - "@value": "8", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:DetectNonExistingPoints", - "simulated-sensor:vertFOVFlag": { - "@value": "2", - "@type": "xsd:integer" - }, - "simulated-sensor:horFOVFlag": { - "@value": "2", - "@type": "xsd:integer" - }, - "simulated-sensor:amountDetections": { - "@value": "25", - "@type": "xsd:integer" - }, - "simulated-sensor:durationDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:intervalDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:duration": { - "@value": "0.5", - "@type": "xsd:float" - }, - "simulated-sensor:interval": { - "@value": "8", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:CollisionSensorShift", - "simulated-sensor:shiftTriggerFlag": { - "@value": "1", - "@type": "xsd:boolean" - }, - "simulated-sensor:roll": { - "@value": "-5", - "@type": "xsd:float" - }, - "simulated-sensor:pitch": { - "@value": "6", - "@type": "xsd:float" - }, - "simulated-sensor:yaw": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:ConstantSensorShift", - "simulated-sensor:shiftFlag": { - "@value": "1", - "@type": "xsd:boolean" - }, - "simulated-sensor:shiftTriggerFlag": { - "@value": "0", - "@type": "xsd:boolean" - }, - "simulated-sensor:roll": { - "@value": "-5", - "@type": "xsd:float" - }, - "simulated-sensor:pitch": { - "@value": "6", - "@type": "xsd:float" - }, - "simulated-sensor:yaw": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:durationDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:intervalDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:duration": { - "@value": "0.5", - "@type": "xsd:float" - }, - "simulated-sensor:interval": { - "@value": "8", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:SensorBlockageRandomLifetime", - "simulated-sensor:vertFOVFlag": { - "@value": "2", - "@type": "xsd:integer" - }, - "simulated-sensor:horFOVFlag": { - "@value": "2", + "simulated-sensor:sensorType": { + "@type": "simulated-sensor:Radar", + "simulated-sensor:numberOfBeams": { + "@value": "1500", "@type": "xsd:integer" }, - "simulated-sensor:blockageDropSpeed": { - "@value": "0", - "@type": "xsd:float" - }, - "simulated-sensor:maxBlockingObjectLifeTime": { + "simulated-sensor:distance": { "@value": "100", - "@type": "xsd:float" - }, - "simulated-sensor:lifeTime": { - "@value": "1", - "@type": "xsd:boolean" - }, - "simulated-sensor:type": { - "@value": "1", - "@type": "xsd:boolean" - }, - "simulated-sensor:amountOfBlockingObjects": { - "@value": "7", "@type": "xsd:integer" }, - "simulated-sensor:intervalDegradation": { - "@value": "2", - "@type": "xsd:float" - }, "simulated-sensor:duration": { - "@value": "0.5", - "@type": "xsd:float" - }, - "simulated-sensor:interval": { - "@value": "8", - "@type": "xsd:float" - }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } - }, - "simulated-sensor:manipulationModel": { - "@type": "simulated-sensor:SensorBlockageDefinedLifetime", - "simulated-sensor:vertFOVFlag": { - "@value": "2", - "@type": "xsd:integer" - }, - "simulated-sensor:horFOVFlag": { - "@value": "2", - "@type": "xsd:integer" - }, - "simulated-sensor:blockageDropSpeed": { - "@value": "0", - "@type": "xsd:float" - }, - "simulated-sensor:blockingObjectLifeTime": { - "@value": "100", - "@type": "xsd:float" - }, - "simulated-sensor:lifeTime": { - "@value": "1", - "@type": "xsd:boolean" - }, - "simulated-sensor:type": { - "@value": "1", - "@type": "xsd:boolean" - }, - "simulated-sensor:amountOfBlockingObjects": { - "@value": "7", - "@type": "xsd:integer" - }, - "simulated-sensor:intervalDegradation": { - "@value": "2", - "@type": "xsd:float" - }, - "simulated-sensor:interval": { - "@value": "8", + "@value": "0.1", "@type": "xsd:float" }, - "simulated-sensor:start": { - "@value": "0", - "@type": "xsd:float" - } + "simulated-sensor:fieldOfView": [ + { + "@value": "60", + "@type": "xsd:float" + }, + { + "@value": "30", + "@type": "xsd:float" + }, + { + "@value": "0", + "@type": "xsd:float" + } + ], } - } \ No newline at end of file From e9e63e5e1126ec569a05e1dc0d584fc30a268e87 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Thu, 5 Dec 2024 13:51:06 +0100 Subject: [PATCH 19/33] fixes json instance --- simulated-sensor/simulated-sensor_instance.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simulated-sensor/simulated-sensor_instance.json b/simulated-sensor/simulated-sensor_instance.json index 2021fbd..9f3b3e3 100755 --- a/simulated-sensor/simulated-sensor_instance.json +++ b/simulated-sensor/simulated-sensor_instance.json @@ -36,6 +36,6 @@ "@value": "0", "@type": "xsd:float" } - ], + ] } } \ No newline at end of file From f95fda16cc5d8f3b92cc89f568379888596e3dd0 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Thu, 5 Dec 2024 20:07:03 +0100 Subject: [PATCH 20/33] fixes errors in shacl and reworks fov attribute --- .../simulated_sensor_ontology.ttl | 6 +- simulated-sensor/simulated_sensor_shacl.ttl | 86 ++++++++++++------- 2 files changed, 60 insertions(+), 32 deletions(-) diff --git a/simulated-sensor/simulated_sensor_ontology.ttl b/simulated-sensor/simulated_sensor_ontology.ttl index 32b4bfd..5e66956 100644 --- a/simulated-sensor/simulated_sensor_ontology.ttl +++ b/simulated-sensor/simulated_sensor_ontology.ttl @@ -31,4 +31,8 @@ simulated-sensor:Lidar a owl:Class ; simulated-sensor:Camera a owl:Class ; rdfs:label "class definition for a simulated camera sensor"@en ; - rdfs:comment "A simulated camera sensor"@en . \ No newline at end of file + rdfs:comment "A simulated camera sensor"@en . + +simulated-sensor:FieldOfView a owl:Class ; + rdfs:label "class definition for the Field of View (FoV) of a perception sensor"@en ; + rdfs:comment "A field of view as float angles"@en . \ No newline at end of file diff --git a/simulated-sensor/simulated_sensor_shacl.ttl b/simulated-sensor/simulated_sensor_shacl.ttl index 00768b9..00611ad 100644 --- a/simulated-sensor/simulated_sensor_shacl.ttl +++ b/simulated-sensor/simulated_sensor_shacl.ttl @@ -14,9 +14,9 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; sh:maxCount 1; sh:name "sensorType"@en ; sh:or ( - [ sh:node simulated-sensor:Radar ] - [ sh:node simulated-sensor:Lidar ] - [ sh:node simulated-sensor:Camera ] + [ sh:node simulated-sensor:RadarShape ] + [ sh:node simulated-sensor:LidarShape ] + [ sh:node simulated-sensor:CameraShape ] ) ; sh:order 0 ; sh:description "Perception and other relevant sensors for autonomous driving" ; @@ -46,8 +46,7 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; # Available sensors # RADAR -simulated-sensor:Radar - a sh:NodeShape ; +simulated-sensor:RadarShape a sh:NodeShape ; sh:targetClass simulated-sensor:Radar ; # numberOfBeams (Integer) sh:property [ @@ -64,7 +63,7 @@ simulated-sensor:Radar sh:property [ skos:example "30" ; sh:path simulated-sensor:distance ; - sh:datatype xsd:float ; + sh:datatype xsd:integer ; sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0; @@ -74,20 +73,16 @@ simulated-sensor:Radar ] ; # fieldOfView (Tuple of three floats) sh:property [ - skos:example "30.0" ; - sh:path simulated-sensor:fieldOfView ; - sh:nodeKind sh:List ; - sh:datatype xsd:float ; + skos:example "30.0 70.0 20.0" ; + sh:path simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "fieldOfView"@en ; - sh:order 4 ; - sh:description "Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV" ; + sh:order 3 ; + sh:description "Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV)" ; ] . # LIDAR -simulated-sensor:Lidar - a sh:NodeShape ; +simulated-sensor:LidarShape a sh:NodeShape ; sh:targetClass simulated-sensor:Lidar ; # numberOfBeams (Integer) sh:property [ @@ -104,7 +99,7 @@ simulated-sensor:Lidar sh:property [ skos:example "30" ; sh:path simulated-sensor:distance ; - sh:datatype xsd:float ; + sh:datatype xsd:integer ; sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0; @@ -114,20 +109,17 @@ simulated-sensor:Lidar ] ; # fieldOfView (Tuple of three floats) sh:property [ - skos:example "30.0" ; - sh:path simulated-sensor:fieldOfView ; - sh:nodeKind sh:List ; - sh:datatype xsd:float ; + skos:example "30.0 70.0 20.0" ; + sh:path simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "fieldOfView"@en ; - sh:order 4 ; - sh:description "Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV" ; + sh:order 3 ; + sh:description "Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV)" ; + ] . # CAMERA -simulated-sensor:Camera - a sh:NodeShape ; +simulated-sensor:CameraShape a sh:NodeShape ; sh:targetClass simulated-sensor:Camera ; sh:property [ skos:example "true" ; @@ -151,7 +143,7 @@ simulated-sensor:Camera ] ; sh:property [ skos:example "false" ; - sh:path simulated-sensor:detphFlag ; + sh:path simulated-sensor:depthFlag ; sh:datatype xsd:boolean ; sh:minCount 0 ; sh:maxCount 1 ; @@ -160,17 +152,49 @@ simulated-sensor:Camera sh:description "If true, camera is depth camera" ; ] ; # fieldOfView (Tuple of three floats) + sh:property [ + skos:example "30.0 70.0 20.0" ; + sh:path simulated-sensor:FieldOfViewShape ; + sh:minCount 0 ; + sh:maxCount 1 ; + sh:order 3 ; + sh:description "Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV)" ; + + ] . + +simulated-sensor:FieldOfViewShape a sh:NodeShape ; + sh:targetClass simulated-sensor:FieldOfView ; sh:property [ skos:example "30.0" ; - sh:path simulated-sensor:fieldOfView ; - sh:nodeKind sh:List ; + sh:path simulated-sensor:fovAngle1 ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:name "fovAngle1"@end ; + sh:order 0 ; + sh:description "FoV angle 1" + ] ; + sh:property [ + skos:example "30.0" ; + sh:path simulated-sensor:fovAngle2 ; + sh:datatype xsd:float ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:name "fovAngle2"@end ; + sh:order 1 ; + sh:description "FoV angle 2" + ] ; + sh:property [ + skos:example "30.0" ; + sh:path simulated-sensor:fovAngle3 ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "fieldOfView"@en ; - sh:order 3 ; - sh:description "Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV" ; + sh:name "fovAngle3"@end ; + sh:order 2 ; + sh:description "FoV angle 3" ] . + From b58a2075d395394ed4d541b46099c47d7f48b77b Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 5 Dec 2024 19:07:35 +0000 Subject: [PATCH 21/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- simulated-sensor/VARIABLES.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/simulated-sensor/VARIABLES.md b/simulated-sensor/VARIABLES.md index ad8e7d9..02780ad 100644 --- a/simulated-sensor/VARIABLES.md +++ b/simulated-sensor/VARIABLES.md @@ -11,13 +11,16 @@ | SimulatedSensorShape | simulated-sensor | sensorType | 1 | 1 | Perception and other relevant sensors for autonomous driving | | simulated_sensor_shacl.ttl | | SimulatedSensorShape | simulated-sensor | sensorIdentifier | 0 | 1 | Name/Identifier of the sensor in the simulator | | simulated_sensor_shacl.ttl | | SimulatedSensorShape | simulated-sensor | mountingPosition | 0 | 1 | Possible mounting positions of the radar | | simulated_sensor_shacl.ttl | -| Radar | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the radar sensor | | simulated_sensor_shacl.ttl | -| Radar | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | -| Radar | simulated-sensor | fieldOfView | 0 | 1 | Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV | | simulated_sensor_shacl.ttl | -| Lidar | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the lidar sensor | | simulated_sensor_shacl.ttl | -| Lidar | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | -| Lidar | simulated-sensor | fieldOfView | 0 | 1 | Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV | | simulated_sensor_shacl.ttl | -| Camera | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated_sensor_shacl.ttl | -| Camera | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated_sensor_shacl.ttl | -| Camera | simulated-sensor | detphFlag | 0 | 1 | If true, camera is depth camera | | simulated_sensor_shacl.ttl | -| Camera | simulated-sensor | fieldOfView | 0 | 1 | Depending on the simulator, either horizontal and vertical angles or horizontal FoV, upper FoV and lower FoV | | simulated_sensor_shacl.ttl | +| RadarShape | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the radar sensor | | simulated_sensor_shacl.ttl | +| RadarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | +| RadarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated_sensor_shacl.ttl | +| LidarShape | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the lidar sensor | | simulated_sensor_shacl.ttl | +| LidarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | +| LidarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated_sensor_shacl.ttl | +| CameraShape | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated_sensor_shacl.ttl | +| CameraShape | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated_sensor_shacl.ttl | +| CameraShape | simulated-sensor | depthFlag | 0 | 1 | If true, camera is depth camera | | simulated_sensor_shacl.ttl | +| CameraShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated_sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle1 | 1 | 1 | FoV angle 1 | | simulated_sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle2 | 1 | 1 | FoV angle 2 | | simulated_sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle3 | 0 | 1 | FoV angle 3 | | simulated_sensor_shacl.ttl | From 20c0128e84a4d4635cb73e29615a3a401ea5b85e Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Mon, 9 Dec 2024 10:11:56 +0100 Subject: [PATCH 22/33] renames shacl and ontology file --- ...imulated_sensor_ontology.ttl => simulated-sensor_ontology.ttl} | 0 .../{simulated_sensor_shacl.ttl => simulated-sensor_shacl.ttl} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename simulated-sensor/{simulated_sensor_ontology.ttl => simulated-sensor_ontology.ttl} (100%) rename simulated-sensor/{simulated_sensor_shacl.ttl => simulated-sensor_shacl.ttl} (100%) diff --git a/simulated-sensor/simulated_sensor_ontology.ttl b/simulated-sensor/simulated-sensor_ontology.ttl similarity index 100% rename from simulated-sensor/simulated_sensor_ontology.ttl rename to simulated-sensor/simulated-sensor_ontology.ttl diff --git a/simulated-sensor/simulated_sensor_shacl.ttl b/simulated-sensor/simulated-sensor_shacl.ttl similarity index 100% rename from simulated-sensor/simulated_sensor_shacl.ttl rename to simulated-sensor/simulated-sensor_shacl.ttl From 989b71cd18b4a2af17bd873f0bf1c075e7c10d4f Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 9 Dec 2024 09:12:49 +0000 Subject: [PATCH 23/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- simulated-sensor/VARIABLES.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/simulated-sensor/VARIABLES.md b/simulated-sensor/VARIABLES.md index 02780ad..227b5a7 100644 --- a/simulated-sensor/VARIABLES.md +++ b/simulated-sensor/VARIABLES.md @@ -8,19 +8,19 @@ | Shape | Property prefix | Property | MinCount | MaxCount | Description | Datatype/NodeKind | Filename | | --- | --- | --- | --- | --- | --- | --- | --- | -| SimulatedSensorShape | simulated-sensor | sensorType | 1 | 1 | Perception and other relevant sensors for autonomous driving | | simulated_sensor_shacl.ttl | -| SimulatedSensorShape | simulated-sensor | sensorIdentifier | 0 | 1 | Name/Identifier of the sensor in the simulator | | simulated_sensor_shacl.ttl | -| SimulatedSensorShape | simulated-sensor | mountingPosition | 0 | 1 | Possible mounting positions of the radar | | simulated_sensor_shacl.ttl | -| RadarShape | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the radar sensor | | simulated_sensor_shacl.ttl | -| RadarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | -| RadarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated_sensor_shacl.ttl | -| LidarShape | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the lidar sensor | | simulated_sensor_shacl.ttl | -| LidarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated_sensor_shacl.ttl | -| LidarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated_sensor_shacl.ttl | -| CameraShape | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated_sensor_shacl.ttl | -| CameraShape | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated_sensor_shacl.ttl | -| CameraShape | simulated-sensor | depthFlag | 0 | 1 | If true, camera is depth camera | | simulated_sensor_shacl.ttl | -| CameraShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated_sensor_shacl.ttl | -| FieldOfViewShape | simulated-sensor | fovAngle1 | 1 | 1 | FoV angle 1 | | simulated_sensor_shacl.ttl | -| FieldOfViewShape | simulated-sensor | fovAngle2 | 1 | 1 | FoV angle 2 | | simulated_sensor_shacl.ttl | -| FieldOfViewShape | simulated-sensor | fovAngle3 | 0 | 1 | FoV angle 3 | | simulated_sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | sensorType | 1 | 1 | Perception and other relevant sensors for autonomous driving | | simulated-sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | sensorIdentifier | 0 | 1 | Name/Identifier of the sensor in the simulator | | simulated-sensor_shacl.ttl | +| SimulatedSensorShape | simulated-sensor | mountingPosition | 0 | 1 | Possible mounting positions of the radar | | simulated-sensor_shacl.ttl | +| RadarShape | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the radar sensor | | simulated-sensor_shacl.ttl | +| RadarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | +| RadarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | +| LidarShape | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the lidar sensor | | simulated-sensor_shacl.ttl | +| LidarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | +| LidarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | +| CameraShape | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated-sensor_shacl.ttl | +| CameraShape | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated-sensor_shacl.ttl | +| CameraShape | simulated-sensor | depthFlag | 0 | 1 | If true, camera is depth camera | | simulated-sensor_shacl.ttl | +| CameraShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle1 | 1 | 1 | FoV angle 1 | | simulated-sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle2 | 1 | 1 | FoV angle 2 | | simulated-sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle3 | 0 | 1 | FoV angle 3 | | simulated-sensor_shacl.ttl | From 2fe542ddbc620ae044648f845f4121600f200760 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Mon, 9 Dec 2024 12:16:29 +0100 Subject: [PATCH 24/33] cleans up simulated sensor shape and ontology --- .../simulated-sensor_instance.json | 16 ++---- .../simulated-sensor_ontology.ttl | 1 - simulated-sensor/simulated-sensor_shacl.ttl | 57 +++++++++++-------- 3 files changed, 37 insertions(+), 37 deletions(-) diff --git a/simulated-sensor/simulated-sensor_instance.json b/simulated-sensor/simulated-sensor_instance.json index 9f3b3e3..6c083f6 100755 --- a/simulated-sensor/simulated-sensor_instance.json +++ b/simulated-sensor/simulated-sensor_instance.json @@ -7,8 +7,6 @@ }, "@id": "did:web:registry.gaia-x.eu:SimulatedSensor:B6gYmAU2PiHe8c3aqSbazCkrE7sUfCkRPFv2", "@type": "simulated-sensor:SimulatedSensor", - "simulated-sensor:sensorIdentifier": "sensor.other.radar", - "simulated-sensor:mountingPosition": "Front-mid", "simulated-sensor:sensorType": { "@type": "simulated-sensor:Radar", "simulated-sensor:numberOfBeams": { @@ -16,11 +14,7 @@ "@type": "xsd:integer" }, "simulated-sensor:distance": { - "@value": "100", - "@type": "xsd:integer" - }, - "simulated-sensor:duration": { - "@value": "0.1", + "@value": "100.0", "@type": "xsd:float" }, "simulated-sensor:fieldOfView": [ @@ -31,11 +25,9 @@ { "@value": "30", "@type": "xsd:float" - }, - { - "@value": "0", - "@type": "xsd:float" } ] - } + }, + "simulated-sensor:sensorIdentifier": "sensor.other.radar", + "simulated-sensor:mountingPosition": "Front-mid" } \ No newline at end of file diff --git a/simulated-sensor/simulated-sensor_ontology.ttl b/simulated-sensor/simulated-sensor_ontology.ttl index 5e66956..01f4d73 100644 --- a/simulated-sensor/simulated-sensor_ontology.ttl +++ b/simulated-sensor/simulated-sensor_ontology.ttl @@ -6,7 +6,6 @@ @prefix simulated-sensor: . @prefix xsd: . @prefix openlabel: . -@prefix gx: . simulated-sensor: a owl:Ontology ; rdfs:label "Ontology definition for simulated_sensor"@en ; diff --git a/simulated-sensor/simulated-sensor_shacl.ttl b/simulated-sensor/simulated-sensor_shacl.ttl index 00611ad..9bfe154 100644 --- a/simulated-sensor/simulated-sensor_shacl.ttl +++ b/simulated-sensor/simulated-sensor_shacl.ttl @@ -5,7 +5,6 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; sh:targetClass simulated-sensor:SimulatedSensor ; - # mountingPosition (Tuple of three floats, mandatory) # Ensure at least one sensor is available sh:property [ skos:example "Radar" ; @@ -21,6 +20,7 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; sh:order 0 ; sh:description "Perception and other relevant sensors for autonomous driving" ; ] ; + # sensorIdentifier (string) sh:property [ skos:example "RADAR" ; sh:path simulated-sensor:sensorIdentifier ; @@ -48,79 +48,83 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; # RADAR simulated-sensor:RadarShape a sh:NodeShape ; sh:targetClass simulated-sensor:Radar ; - # numberOfBeams (Integer) + # numberOfBeams (integer) sh:property [ - skos:example "60" ; + skos:example "1500" ; sh:path simulated-sensor:numberOfBeams ; sh:datatype xsd:integer ; sh:minCount 0 ; - sh:minInclusive 0; + sh:maxCount 1 ; + sh:minInclusive 0 ; sh:name "numberOfBeams"@en ; - sh:order 2 ; + sh:order 0 ; sh:description "Number of beams sent by the radar sensor" ; ] ; - # distance (Integer) + # distance (float) sh:property [ - skos:example "30" ; + skos:example "30.0" ; sh:path simulated-sensor:distance ; - sh:datatype xsd:integer ; + sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0; sh:name "distance"@en ; - sh:order 3 ; + sh:order 1 ; sh:description "Covered distance or range in meters" ; ] ; # fieldOfView (Tuple of three floats) sh:property [ skos:example "30.0 70.0 20.0" ; + sh:name "fov"@en ; sh:path simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; - sh:order 3 ; + sh:order 2 ; sh:description "Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV)" ; ] . # LIDAR simulated-sensor:LidarShape a sh:NodeShape ; sh:targetClass simulated-sensor:Lidar ; - # numberOfBeams (Integer) + # numberOfBeams (integer) sh:property [ - skos:example "60" ; + skos:example "1500" ; sh:path simulated-sensor:numberOfBeams ; sh:datatype xsd:integer ; sh:minCount 0 ; + sh:maxCount 1 ; sh:minInclusive 0; sh:name "numberOfBeams"@en ; - sh:order 2 ; + sh:order 0 ; sh:description "Number of beams sent by the lidar sensor" ; ] ; - # distance (Integer) + # distance (float) sh:property [ - skos:example "30" ; + skos:example "30.0" ; sh:path simulated-sensor:distance ; - sh:datatype xsd:integer ; + sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0; sh:name "distance"@en ; - sh:order 3 ; + sh:order 1 ; sh:description "Covered distance or range in meters" ; ] ; # fieldOfView (Tuple of three floats) sh:property [ skos:example "30.0 70.0 20.0" ; + sh:name "fov"@en ; sh:path simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; - sh:order 3 ; + sh:order 2 ; sh:description "Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV)" ; - ] . # CAMERA simulated-sensor:CameraShape a sh:NodeShape ; sh:targetClass simulated-sensor:Camera ; + # rgbFlag (boolean) to indicate whether camera is RGB camera sh:property [ skos:example "true" ; sh:path simulated-sensor:rgbFlag ; @@ -131,6 +135,7 @@ simulated-sensor:CameraShape a sh:NodeShape ; sh:order 0 ; sh:description "If true, camera is RGB camera" ; ] ; + # 3dFlag (boolean) to indicate whether camera is 3D camera sh:property [ skos:example "false" ; sh:path simulated-sensor:3dflag ; @@ -141,6 +146,7 @@ simulated-sensor:CameraShape a sh:NodeShape ; sh:order 1 ; sh:description "If true, camera is 3D camera" ; ] ; + # depthFlag (boolean) to indicate whether camera is depth camera sh:property [ skos:example "false" ; sh:path simulated-sensor:depthFlag ; @@ -154,16 +160,17 @@ simulated-sensor:CameraShape a sh:NodeShape ; # fieldOfView (Tuple of three floats) sh:property [ skos:example "30.0 70.0 20.0" ; + sh:name "fov"@en ; sh:path simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 3 ; sh:description "Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV)" ; - ] . simulated-sensor:FieldOfViewShape a sh:NodeShape ; sh:targetClass simulated-sensor:FieldOfView ; + # fov angle 1 (float) sh:property [ skos:example "30.0" ; sh:path simulated-sensor:fovAngle1 ; @@ -172,18 +179,20 @@ simulated-sensor:FieldOfViewShape a sh:NodeShape ; sh:maxCount 1 ; sh:name "fovAngle1"@end ; sh:order 0 ; - sh:description "FoV angle 1" + sh:description "FoV angle 1 (mandatory if FoV attribute is used)" ] ; + # fov angle 2 (float) sh:property [ skos:example "30.0" ; sh:path simulated-sensor:fovAngle2 ; sh:datatype xsd:float ; - sh:minCount 1 ; + sh:minCount 0 ; sh:maxCount 1 ; sh:name "fovAngle2"@end ; sh:order 1 ; - sh:description "FoV angle 2" + sh:description "FoV angle 2 (optional, depending on simulator and sensor type)" ] ; + # fov angle 3 (float) sh:property [ skos:example "30.0" ; sh:path simulated-sensor:fovAngle3 ; @@ -192,7 +201,7 @@ simulated-sensor:FieldOfViewShape a sh:NodeShape ; sh:maxCount 1 ; sh:name "fovAngle3"@end ; sh:order 2 ; - sh:description "FoV angle 3" + sh:description "FoV angle 3 (optional, depending on simulator and sensor type)" ] . From 0dacc461b773818cc46f0519f3601e79bcaad1b3 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 9 Dec 2024 11:17:13 +0000 Subject: [PATCH 25/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- simulated-sensor/VARIABLES.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/simulated-sensor/VARIABLES.md b/simulated-sensor/VARIABLES.md index 227b5a7..92f9baa 100644 --- a/simulated-sensor/VARIABLES.md +++ b/simulated-sensor/VARIABLES.md @@ -11,16 +11,16 @@ | SimulatedSensorShape | simulated-sensor | sensorType | 1 | 1 | Perception and other relevant sensors for autonomous driving | | simulated-sensor_shacl.ttl | | SimulatedSensorShape | simulated-sensor | sensorIdentifier | 0 | 1 | Name/Identifier of the sensor in the simulator | | simulated-sensor_shacl.ttl | | SimulatedSensorShape | simulated-sensor | mountingPosition | 0 | 1 | Possible mounting positions of the radar | | simulated-sensor_shacl.ttl | -| RadarShape | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the radar sensor | | simulated-sensor_shacl.ttl | -| RadarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | +| RadarShape | simulated-sensor | numberOfBeams | 0 | 1 | Number of beams sent by the radar sensor | | simulated-sensor_shacl.ttl | +| RadarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | | RadarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | -| LidarShape | simulated-sensor | numberOfBeams | 0 | | Number of beams sent by the lidar sensor | | simulated-sensor_shacl.ttl | -| LidarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | +| LidarShape | simulated-sensor | numberOfBeams | 0 | 1 | Number of beams sent by the lidar sensor | | simulated-sensor_shacl.ttl | +| LidarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | | LidarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | depthFlag | 0 | 1 | If true, camera is depth camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | -| FieldOfViewShape | simulated-sensor | fovAngle1 | 1 | 1 | FoV angle 1 | | simulated-sensor_shacl.ttl | -| FieldOfViewShape | simulated-sensor | fovAngle2 | 1 | 1 | FoV angle 2 | | simulated-sensor_shacl.ttl | -| FieldOfViewShape | simulated-sensor | fovAngle3 | 0 | 1 | FoV angle 3 | | simulated-sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle1 | 1 | 1 | FoV angle 1 (mandatory if FoV attribute is used) | | simulated-sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle2 | 0 | 1 | FoV angle 2 (optional, depending on simulator and sensor type) | | simulated-sensor_shacl.ttl | +| FieldOfViewShape | simulated-sensor | fovAngle3 | 0 | 1 | FoV angle 3 (optional, depending on simulator and sensor type) | | simulated-sensor_shacl.ttl | From 4dc7fbab1fd050acb8659276e8a87e60aede70dd Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Tue, 10 Dec 2024 13:12:34 +0100 Subject: [PATCH 26/33] fixes sh:name issues in simulated sensor shacl --- simulated-sensor/simulated-sensor_shacl.ttl | 28 ++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/simulated-sensor/simulated-sensor_shacl.ttl b/simulated-sensor/simulated-sensor_shacl.ttl index 9bfe154..068347b 100644 --- a/simulated-sensor/simulated-sensor_shacl.ttl +++ b/simulated-sensor/simulated-sensor_shacl.ttl @@ -11,7 +11,7 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; sh:path simulated-sensor:sensorType ; sh:minCount 1 ; sh:maxCount 1; - sh:name "sensorType"@en ; + sh:name "sensor type"@en ; sh:or ( [ sh:node simulated-sensor:RadarShape ] [ sh:node simulated-sensor:LidarShape ] @@ -27,7 +27,7 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; sh:datatype xsd:string ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "sensorIdentifier"@en ; + sh:name "sensor identifier"@en ; sh:order 1 ; sh:description "Name/Identifier of the sensor in the simulator" ; ] ; @@ -39,7 +39,7 @@ simulated-sensor:SimulatedSensorShape a sh:NodeShape ; sh:in ("Front-left" "Front-right" "Front-mid" "Top-left" "Top-right" "Top-mid" "Back-left" "Back-right" "Back-mid") ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "mountingPosition"@en ; + sh:name "mounting position"@en ; sh:order 2 ; sh:description "Possible mounting positions of the radar" ; ] . @@ -56,7 +56,7 @@ simulated-sensor:RadarShape a sh:NodeShape ; sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0 ; - sh:name "numberOfBeams"@en ; + sh:name "number of beams"@en ; sh:order 0 ; sh:description "Number of beams sent by the radar sensor" ; ] ; @@ -75,7 +75,7 @@ simulated-sensor:RadarShape a sh:NodeShape ; # fieldOfView (Tuple of three floats) sh:property [ skos:example "30.0 70.0 20.0" ; - sh:name "fov"@en ; + sh:name "FoV"@en ; sh:path simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; @@ -94,7 +94,7 @@ simulated-sensor:LidarShape a sh:NodeShape ; sh:minCount 0 ; sh:maxCount 1 ; sh:minInclusive 0; - sh:name "numberOfBeams"@en ; + sh:name "number of beams"@en ; sh:order 0 ; sh:description "Number of beams sent by the lidar sensor" ; ] ; @@ -113,7 +113,7 @@ simulated-sensor:LidarShape a sh:NodeShape ; # fieldOfView (Tuple of three floats) sh:property [ skos:example "30.0 70.0 20.0" ; - sh:name "fov"@en ; + sh:name "FoV"@en ; sh:path simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; @@ -131,7 +131,7 @@ simulated-sensor:CameraShape a sh:NodeShape ; sh:datatype xsd:boolean ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "rgbFlag"@en ; + sh:name "RGB flag"@en ; sh:order 0 ; sh:description "If true, camera is RGB camera" ; ] ; @@ -142,7 +142,7 @@ simulated-sensor:CameraShape a sh:NodeShape ; sh:datatype xsd:boolean ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "3dflag"@en ; + sh:name "3D flag"@en ; sh:order 1 ; sh:description "If true, camera is 3D camera" ; ] ; @@ -153,14 +153,14 @@ simulated-sensor:CameraShape a sh:NodeShape ; sh:datatype xsd:boolean ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "depthFlag"@en ; + sh:name "depth flag"@en ; sh:order 2 ; sh:description "If true, camera is depth camera" ; ] ; # fieldOfView (Tuple of three floats) sh:property [ skos:example "30.0 70.0 20.0" ; - sh:name "fov"@en ; + sh:name "FoV"@en ; sh:path simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; @@ -177,7 +177,7 @@ simulated-sensor:FieldOfViewShape a sh:NodeShape ; sh:datatype xsd:float ; sh:minCount 1 ; sh:maxCount 1 ; - sh:name "fovAngle1"@end ; + sh:name "FoV angle 1"@en ; sh:order 0 ; sh:description "FoV angle 1 (mandatory if FoV attribute is used)" ] ; @@ -188,7 +188,7 @@ simulated-sensor:FieldOfViewShape a sh:NodeShape ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "fovAngle2"@end ; + sh:name "FoV angle 2"@en ; sh:order 1 ; sh:description "FoV angle 2 (optional, depending on simulator and sensor type)" ] ; @@ -199,7 +199,7 @@ simulated-sensor:FieldOfViewShape a sh:NodeShape ; sh:datatype xsd:float ; sh:minCount 0 ; sh:maxCount 1 ; - sh:name "fovAngle3"@end ; + sh:name "FoV angle 3"@en ; sh:order 2 ; sh:description "FoV angle 3 (optional, depending on simulator and sensor type)" ] . From 87e693231cd3255b8cf77ac21e2d9e4c1991efa9 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Tue, 10 Dec 2024 13:16:34 +0100 Subject: [PATCH 27/33] fixes error in fieldOfViewShape usage in simulated sensor shacl --- simulated-sensor/simulated-sensor_shacl.ttl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/simulated-sensor/simulated-sensor_shacl.ttl b/simulated-sensor/simulated-sensor_shacl.ttl index 068347b..e55c176 100644 --- a/simulated-sensor/simulated-sensor_shacl.ttl +++ b/simulated-sensor/simulated-sensor_shacl.ttl @@ -76,7 +76,7 @@ simulated-sensor:RadarShape a sh:NodeShape ; sh:property [ skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; - sh:path simulated-sensor:FieldOfViewShape ; + sh:node simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 2 ; @@ -114,7 +114,7 @@ simulated-sensor:LidarShape a sh:NodeShape ; sh:property [ skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; - sh:path simulated-sensor:FieldOfViewShape ; + sh:node simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 2 ; @@ -161,7 +161,7 @@ simulated-sensor:CameraShape a sh:NodeShape ; sh:property [ skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; - sh:path simulated-sensor:FieldOfViewShape ; + sh:node simulated-sensor:FieldOfViewShape ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 3 ; From af28aab804012b000deaa8fc0d327efb133c3389 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 10 Dec 2024 12:19:02 +0000 Subject: [PATCH 28/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- simulated-sensor/VARIABLES.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/simulated-sensor/VARIABLES.md b/simulated-sensor/VARIABLES.md index 92f9baa..878c454 100644 --- a/simulated-sensor/VARIABLES.md +++ b/simulated-sensor/VARIABLES.md @@ -13,14 +13,11 @@ | SimulatedSensorShape | simulated-sensor | mountingPosition | 0 | 1 | Possible mounting positions of the radar | | simulated-sensor_shacl.ttl | | RadarShape | simulated-sensor | numberOfBeams | 0 | 1 | Number of beams sent by the radar sensor | | simulated-sensor_shacl.ttl | | RadarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | -| RadarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | LidarShape | simulated-sensor | numberOfBeams | 0 | 1 | Number of beams sent by the lidar sensor | | simulated-sensor_shacl.ttl | | LidarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | -| LidarShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | depthFlag | 0 | 1 | If true, camera is depth camera | | simulated-sensor_shacl.ttl | -| CameraShape | simulated-sensor | FieldOfViewShape | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle1 | 1 | 1 | FoV angle 1 (mandatory if FoV attribute is used) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle2 | 0 | 1 | FoV angle 2 (optional, depending on simulator and sensor type) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle3 | 0 | 1 | FoV angle 3 (optional, depending on simulator and sensor type) | | simulated-sensor_shacl.ttl | From c3b59783fb3f6d054d18fedf185d47816422694c Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Tue, 10 Dec 2024 15:44:52 +0100 Subject: [PATCH 29/33] adds missing sh:path for FieldOfView --- simulated-sensor/simulated-sensor_shacl.ttl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/simulated-sensor/simulated-sensor_shacl.ttl b/simulated-sensor/simulated-sensor_shacl.ttl index e55c176..b6abd4b 100644 --- a/simulated-sensor/simulated-sensor_shacl.ttl +++ b/simulated-sensor/simulated-sensor_shacl.ttl @@ -77,6 +77,7 @@ simulated-sensor:RadarShape a sh:NodeShape ; skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; sh:node simulated-sensor:FieldOfViewShape ; + sh:path simulated-sensor:FieldOfView ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 2 ; @@ -115,6 +116,7 @@ simulated-sensor:LidarShape a sh:NodeShape ; skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; sh:node simulated-sensor:FieldOfViewShape ; + sh:path simulated-sensor:FieldOfView ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 2 ; @@ -162,6 +164,7 @@ simulated-sensor:CameraShape a sh:NodeShape ; skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; sh:node simulated-sensor:FieldOfViewShape ; + sh:path simulated-sensor:FieldOfView ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 3 ; From 41e02f77a5bfab3ffd71a91e4b7c4b83c575fd1c Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 10 Dec 2024 14:46:20 +0000 Subject: [PATCH 30/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- simulated-sensor/VARIABLES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/simulated-sensor/VARIABLES.md b/simulated-sensor/VARIABLES.md index 878c454..f4fdab6 100644 --- a/simulated-sensor/VARIABLES.md +++ b/simulated-sensor/VARIABLES.md @@ -13,11 +13,14 @@ | SimulatedSensorShape | simulated-sensor | mountingPosition | 0 | 1 | Possible mounting positions of the radar | | simulated-sensor_shacl.ttl | | RadarShape | simulated-sensor | numberOfBeams | 0 | 1 | Number of beams sent by the radar sensor | | simulated-sensor_shacl.ttl | | RadarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | +| RadarShape | simulated-sensor | FieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | LidarShape | simulated-sensor | numberOfBeams | 0 | 1 | Number of beams sent by the lidar sensor | | simulated-sensor_shacl.ttl | | LidarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | +| LidarShape | simulated-sensor | FieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | depthFlag | 0 | 1 | If true, camera is depth camera | | simulated-sensor_shacl.ttl | +| CameraShape | simulated-sensor | FieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle1 | 1 | 1 | FoV angle 1 (mandatory if FoV attribute is used) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle2 | 0 | 1 | FoV angle 2 (optional, depending on simulator and sensor type) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle3 | 0 | 1 | FoV angle 3 (optional, depending on simulator and sensor type) | | simulated-sensor_shacl.ttl | From db83a02615697fe057805a261e348219598323c3 Mon Sep 17 00:00:00 2001 From: Mirco Nierenz <116268884+MircoNierenz@users.noreply.github.com> Date: Wed, 11 Dec 2024 13:37:38 +0100 Subject: [PATCH 31/33] Update scenario_shacl.ttl (#132) * Update scenario_shacl.ttl sh:node scenario:Content to sh:node scenario:ContentShape Signed-off-by: Mirco Nierenz <116268884+MircoNierenz@users.noreply.github.com> * instance: catalogs as list ttl : remove sh:datatype xsd:anyURI if node type scenario:EnvironmentModels -> scenario:environmentModels * Add VARIABLES.md files Signed-off-by: GitHub Action * set maxCount 1 for scenario:usedStandardFunctions * Add VARIABLES.md files Signed-off-by: GitHub Action --------- Signed-off-by: Mirco Nierenz <116268884+MircoNierenz@users.noreply.github.com> Signed-off-by: GitHub Action Co-authored-by: GitHub Action --- scenario/VARIABLES.md | 8 ++++---- scenario/scenario_instance.json | 8 +++++--- scenario/scenario_shacl.ttl | 10 ++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/scenario/VARIABLES.md b/scenario/VARIABLES.md index 97abc28..2672558 100644 --- a/scenario/VARIABLES.md +++ b/scenario/VARIABLES.md @@ -20,12 +20,12 @@ | ContentShape | scenario | abstractionLevel | | 1 | Pegasus type of scenario | | scenario_shacl.ttl | | ContentShape | scenario | timeDate | 0 | 1 | Time of the scenario if applicaple. Either time of recording or if synthetic the time it happens. | | scenario_shacl.ttl | | ContentShape | scenario | aim | 0 | 1 | Purpose of this scenario. | | scenario_shacl.ttl | -| ContentShape | scenario | usedStandardFunctions | 0 | | Use of the functionalities from the standard. E.g. which Actions are used. | | scenario_shacl.ttl | +| ContentShape | scenario | usedStandardFunctions | 0 | 1 | Use of the functionalities from the standard. E.g. which Actions are used. | | scenario_shacl.ttl | | ContentShape | scenario | movementDescription | | 1 | Type of movement used by traffic participants according to the OpenSCENARIO standard. | | scenario_shacl.ttl | | ContentShape | scenario | customCommands | 0 | 1 | Scenario/domain specific commands or actions | | scenario_shacl.ttl | -| ContentShape | scenario | catalogs | 0 | | Link to Catalogs | | scenario_shacl.ttl | -| ContentShape | scenario | EnvironmentModels | 0 | | Link to environment models | | scenario_shacl.ttl | -| ContentShape | scenario | trafficSpace | 0 | 1 | Link to traffic space | | scenario_shacl.ttl | +| ContentShape | scenario | catalogs | 0 | | Link to Catalogs | | scenario_shacl.ttl | +| ContentShape | scenario | environmentModels | 0 | | Link to environment models | | scenario_shacl.ttl | +| ContentShape | scenario | trafficSpace | 0 | 1 | Link to traffic space | | scenario_shacl.ttl | | ContentShape | scenario | sunAzimuth | 0 | | Azimuth of the sun in degrees | | scenario_shacl.ttl | | ContentShape | scenario | countrySpecificSign | 0 | 1 | Country specific traffic signs | | scenario_shacl.ttl | | ContentShape | scenario | countrySpecificTrafficParticipants | 0 | 1 | Country specific traffic participants | | scenario_shacl.ttl | diff --git a/scenario/scenario_instance.json b/scenario/scenario_instance.json index 1725188..755b74c 100644 --- a/scenario/scenario_instance.json +++ b/scenario/scenario_instance.json @@ -46,8 +46,9 @@ } }, "scenario:content": { - "@type": "undefined", - "scenario:catalogs": { + "@type": "scenario:Content", + "scenario:catalogs": [ + { "@type": "manifest:Link", "manifest:path": { "@value": "https://inavlid.link.com/my_pedestrian_catalog.xosc", @@ -56,7 +57,8 @@ "manifest:type": "assetData", "manifest:format": "other", "manifest:accessRole": "owner" - }, + } + ], "scenario:abstractionLevel": "Logical", "scenario:country": { "@value": "Germany", diff --git a/scenario/scenario_shacl.ttl b/scenario/scenario_shacl.ttl index 3ac910e..2d88816 100644 --- a/scenario/scenario_shacl.ttl +++ b/scenario/scenario_shacl.ttl @@ -26,7 +26,7 @@ scenario:ScenarioShape a sh:NodeShape ; sh:path scenario:format ], [ sh:maxCount 1 ; sh:minCount 1 ; - sh:node scenario:Content ; + sh:node scenario:ContentShape ; sh:name "content object" ; sh:description "content object with properties for scenario intrinsic attributes" ; sh:order 3 ; @@ -118,6 +118,7 @@ scenario:ContentShape a sh:NodeShape ; sh:datatype xsd:string ; sh:description "Use of the functionalities from the standard. E.g. which Actions are used."@en ; sh:message "Validation of usedStandardFunctions failed!"@en ; + sh:maxCount 1 ; sh:minCount 0 ; sh:name "used functions in the standard"@en ; sh:order 4 ; @@ -140,7 +141,6 @@ scenario:ContentShape a sh:NodeShape ; sh:order 6 ; sh:path scenario:customCommands ], [ skos:example "http://mywebsite.de/Catalogs" ; - sh:datatype xsd:anyURI ; sh:description "Link to Catalogs"@en ; sh:message "Validation of catalogs failed!"@en ; sh:minCount 0 ; @@ -149,16 +149,14 @@ scenario:ContentShape a sh:NodeShape ; sh:order 7 ; sh:path scenario:catalogs ], [ skos:example "http://mywebsite.de/myModel.fbx" ; - sh:datatype xsd:anyURI ; sh:description "Link to environment models"@en ; sh:message "Validation of environment failed!"@en ; sh:minCount 0 ; sh:name "3d models"@en ; sh:node manifest:LinkShape ; sh:order 8 ; - sh:path scenario:EnvironmentModels ], + sh:path scenario:environmentModels ], [ skos:example "http://mywebsite.de/map.xodr" ; - sh:datatype xsd:anyURI ; sh:description "Link to traffic space"@en ; sh:maxCount 1 ; sh:message "Validation of trafficSpace failed!"@en ; @@ -288,4 +286,4 @@ scenario:DataSourceShape a sh:NodeShape ; sh:name "source description"@en ; sh:order 2 ; sh:path scenario:sourceDescription ] ; - sh:targetClass scenario:DataSource . \ No newline at end of file + sh:targetClass scenario:DataSource . From eb600dca459eb8f7f124f2a3ec4ee8f7640750e7 Mon Sep 17 00:00:00 2001 From: Rhea Rinaldo Date: Thu, 12 Dec 2024 10:10:53 +0100 Subject: [PATCH 32/33] fixes incorrect upper camelCase and json instance --- simulated-sensor/simulated-sensor_instance.json | 9 +++++---- simulated-sensor/simulated-sensor_shacl.ttl | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/simulated-sensor/simulated-sensor_instance.json b/simulated-sensor/simulated-sensor_instance.json index 6c083f6..42a8e8c 100755 --- a/simulated-sensor/simulated-sensor_instance.json +++ b/simulated-sensor/simulated-sensor_instance.json @@ -17,16 +17,17 @@ "@value": "100.0", "@type": "xsd:float" }, - "simulated-sensor:fieldOfView": [ - { + "simulated-sensor:fieldOfView": { + "@type": "simulated-sensor:FieldOfView", + "simulated-sensor:fovAngle1": { "@value": "60", "@type": "xsd:float" }, - { + "simulated-sensor:fovAngle2": { "@value": "30", "@type": "xsd:float" } - ] + } }, "simulated-sensor:sensorIdentifier": "sensor.other.radar", "simulated-sensor:mountingPosition": "Front-mid" diff --git a/simulated-sensor/simulated-sensor_shacl.ttl b/simulated-sensor/simulated-sensor_shacl.ttl index b6abd4b..8ed6c11 100644 --- a/simulated-sensor/simulated-sensor_shacl.ttl +++ b/simulated-sensor/simulated-sensor_shacl.ttl @@ -77,7 +77,7 @@ simulated-sensor:RadarShape a sh:NodeShape ; skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; sh:node simulated-sensor:FieldOfViewShape ; - sh:path simulated-sensor:FieldOfView ; + sh:path simulated-sensor:fieldOfView ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 2 ; @@ -116,7 +116,7 @@ simulated-sensor:LidarShape a sh:NodeShape ; skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; sh:node simulated-sensor:FieldOfViewShape ; - sh:path simulated-sensor:FieldOfView ; + sh:path simulated-sensor:fieldOfView ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 2 ; @@ -164,7 +164,7 @@ simulated-sensor:CameraShape a sh:NodeShape ; skos:example "30.0 70.0 20.0" ; sh:name "FoV"@en ; sh:node simulated-sensor:FieldOfViewShape ; - sh:path simulated-sensor:FieldOfView ; + sh:path simulated-sensor:fieldOfView ; sh:minCount 0 ; sh:maxCount 1 ; sh:order 3 ; From 9329a8eeec3915cab569ebe5fbd971edfe239a9f Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 12 Dec 2024 09:11:38 +0000 Subject: [PATCH 33/33] Add VARIABLES.md files Signed-off-by: GitHub Action --- simulated-sensor/VARIABLES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/simulated-sensor/VARIABLES.md b/simulated-sensor/VARIABLES.md index f4fdab6..2eb350f 100644 --- a/simulated-sensor/VARIABLES.md +++ b/simulated-sensor/VARIABLES.md @@ -13,14 +13,14 @@ | SimulatedSensorShape | simulated-sensor | mountingPosition | 0 | 1 | Possible mounting positions of the radar | | simulated-sensor_shacl.ttl | | RadarShape | simulated-sensor | numberOfBeams | 0 | 1 | Number of beams sent by the radar sensor | | simulated-sensor_shacl.ttl | | RadarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | -| RadarShape | simulated-sensor | FieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | +| RadarShape | simulated-sensor | fieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | LidarShape | simulated-sensor | numberOfBeams | 0 | 1 | Number of beams sent by the lidar sensor | | simulated-sensor_shacl.ttl | | LidarShape | simulated-sensor | distance | 0 | 1 | Covered distance or range in meters | | simulated-sensor_shacl.ttl | -| LidarShape | simulated-sensor | FieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | +| LidarShape | simulated-sensor | fieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | rgbFlag | 0 | 1 | If true, camera is RGB camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | 3dflag | 0 | 1 | If true, camera is 3D camera | | simulated-sensor_shacl.ttl | | CameraShape | simulated-sensor | depthFlag | 0 | 1 | If true, camera is depth camera | | simulated-sensor_shacl.ttl | -| CameraShape | simulated-sensor | FieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | +| CameraShape | simulated-sensor | fieldOfView | 0 | 1 | Field of view angles, supporting up to three values (e.g., horizontal, upper, and lower FoV) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle1 | 1 | 1 | FoV angle 1 (mandatory if FoV attribute is used) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle2 | 0 | 1 | FoV angle 2 (optional, depending on simulator and sensor type) | | simulated-sensor_shacl.ttl | | FieldOfViewShape | simulated-sensor | fovAngle3 | 0 | 1 | FoV angle 3 (optional, depending on simulator and sensor type) | | simulated-sensor_shacl.ttl |