Zone Algorithm
An algorithm that monitors the area within and around a zone.
Field | Type | Default | Unit |
---|---|---|---|
name |
string |
- |
- |
The user readable zone algorithm name |
|||
uuid |
string |
- |
- |
The uuid of the zone algorithm (uuid4) |
|||
shape |
- |
- |
|
Geometric shape (usually a Box) in which the algorithm detects certain behaviors/scenarios |
|||
disabled |
bool |
- |
- |
Disable this zone, setting this flag to |
|||
metadata |
optional google.protobuf.Struct |
- |
- |
Arbitrary metadata storage for client applications |
|||
volume |
- |
- |
|
Run volume monitoring within the zone |
|||
security |
- |
- |
|
Run alarm detection within the zone |
|||
exclusion |
- |
- |
|
Run exclusion zone |
|||
object_based_security |
- |
- |
|
Run object-based alarm detection within the zone |
|||
occupancy |
- |
- |
|
Run occupancy zone |
|||
traversal_security |
- |
- |
|
Run traversal zone |
Volume
Algorithm that measure the volume of a zone
The volume of a zone is approximated by computing a 'volume map' from the input point clouds. The volume map discretize the zone into 'tiles' in the xy-plane with a side-length of 'resolution'. Each tile contains the height information about the points that fall into this tile. The volume of the volume map can be calculated by adding up the volumes of the tiles in the volume map.
Field | Type | Default | Unit |
---|---|---|---|
resolution |
float |
- |
m |
Grid resolution per tile used to measure the volume. Reasonable default: 0.1 |
|||
empty_volume |
float |
- |
m^3 |
The measured volume while area covered by the zone is considered 'empty'. The value can be set using TareVolume method while the area of the zone is empty. Reasonable default: 0 |
|||
disable_when_occupied_zone_uuids |
repeated string |
- |
- |
Link volume zone to occupancy zones (by uuid). Disables the volume zone state when one of the occupancy zones is occupied. |
|||
angle_of_repose |
optional float |
- |
rad |
Angle of repose. Steepest angle of descent when the measured material is piled. See https://en.wikipedia.org/wiki/Angle_of_repose. |
|||
minimum_coverage |
optional float |
- |
- |
Minimum coverage value for zone. When the estimated coverage is below the configured threshold, the state output will be disabled. This can be used to automatically disable zones when the viewport to the zone area is blocked or the sensor is temporarily failed. Default: 0 |
Security
Algorithm that triggers an alarm if movement was detected in the zone
Field | Type | Default | Unit |
---|---|---|---|
min_points |
uint32 |
- |
- |
Minimum number of (foreground) points in the security zone to trigger the alarm. Reasonable default: 10 |
|||
max_points |
uint32 |
- |
- |
Maximum number of (foreground) points in the security zone that still triggers an alarm. More points will disable the alarm. This logic can be disabled by setting max_points to '0'. Default: 0 |
|||
minimum_intruding_duration |
float |
- |
s |
Minimum active intrusion duration before alarm is triggered. Default: 0 |
|||
minimum_intrusion_confidence |
float |
- |
- |
Minimum intrusion confidence before alarm is triggered. Only applicable when the minimum intruding duration is configured. Default: 1 |
|||
hold_duration |
float |
- |
s |
Alarm is kept active for the given duration to reduce jitter. Default: 0 |
Object Based Security
Algorithm that triggers an alarm when an object of one of the selected sizes is in the zone
Field | Type | Default | Unit |
---|---|---|---|
alarm_sizes |
repeated ObjectSize |
- |
- |
Selection of sizes which trigger an alarm. Each size in the array will only trigger an alarm for the interval of that size. |
|||
minimum_intruder_lifetime |
float |
- |
s |
Minimum lifetime of object before alarm is triggered. Default: 0 |
|||
minimum_intruder_track_length |
float |
- |
m |
Minimum track length of object before alarm is triggered. Default: 0 |
|||
minimum_intruding_duration |
float |
- |
s |
Minimum active intrusion duration before alarm is triggered. Default: 0 |
|||
objects_in_background |
bool |
- |
- |
Trigger alarm for objects with the "in_background" property. Enabling this might increase the false alarm rate. |
|||
minimum_intrusion_confidence |
float |
- |
- |
Minimum intrusion confidence before alarm is triggered. Only applicable when the minimum intruding duration is configured. Default: 1 |
|||
hold_duration |
float |
- |
s |
Alarm is kept active for the given duration to reduce jitter. Default: 0 |
Occupancy
Algorithm that detects if a zone is occupied
Field | Type | Default | Unit |
---|---|---|---|
min_points |
uint32 |
- |
- |
Minimum number of points to mark the zone as occupied. Reasonable default: 10 |
|||
adaptive_baseline_time_constant |
optional float |
- |
s |
If set, the min_points is not compared against zero but against an adaptive baseline. The baseline is calculated with an exponential filter with the zone point count as input. The given time constant is used to calculate the alpha for the exponential filter. After a restart, the baseline is initialized with the current zone point count. Reasonable default: 3600s (1 hour) |
|||
voxel_size |
optional float |
- |
m |
The point cloud inside the zone is down sampled with a voxel grid. This is done to achieve a distance-independent parametrization. The size of a voxel cell can be configured with this parameter. Default: 0.05m |
|||
invert |
bool |
- |
- |
Invert the state of the zone This might be useful in situations where e.g. a static crane should be detected in its home position. |
Traversal Security
Algorithm that detects if objects are traversing through the zone.
Field | Type | Default | Unit |
---|---|---|---|
alarm_sizes |
repeated ObjectSize |
- |
- |
Selection of sizes which trigger an alarm. An alarm will only be triggered by objects of sizes specified in the array. |
|||
hold_duration |
float |
- |
s |
Alarm is kept active for the given duration to reduce jitter. Default: 0 |