Spatial relationship definition

First released in version: 3.2

Define and monitor physical relationships between real-world objects via the interaction of their spatial properties

Summary

Object types can be assigned one or many spatial properties (3D spaces) in order to represent important geometric characteristics of the object. These could be fixed spaces around a set of workstations or 3D zones which move with the object wherever it goes, i.e. when the location of the object changes the location of the space changes with it.

Spatial relationships indicate the containment relationship between pairs of spaces. When the spaces of two different objects come together so that the 3D extent of one space completely encloses the 3D extent of the other, this fully-enclosed state between the two objects causes their containment relationship to become "true". When the objects move such that the 3D extents of the spaces no longer intersect at all, the containment relationship becomes "false". This "positive-containment, negative-overlap" behavior allows containment relationships to be stable when objects move about right on the edge of containment, avoiding multiple triggering of behavior.

Where an application has chosen to subscribe to events from a particular spatial relation, containment events provide the application with a very reliable, real-time handshake between two objects which can be used to drive connected systems and processes. Spatial relations turn locations (most of which are not interesting to business systems) into software-defined identifications, triggered by the spatial interactions between objects. These significant changes in state will only be triggered by a small fraction of sensed object locations.

Spatial Property Editor

SmartSpace provides an easy-to-use configuration client for defining the 3D geometries of the spaces owned by types and objects. This is a drag-and-drop interface which allows the user to define simple polygons around objects using mouse clicks.

Spatial Relationship Editor

The SmartSpace configuration client exposes an interface for defining which containment relations are actually of interest for the application. There may well be many possible containment permutations that are not actually of interest the application being configured, so it is necessary to explicitly request monitoring of the relationship between two spatial properties.

Spatial Monitoring at Runtime

At runtime the spatial relations that have been defined and the interaction events that are detected are available as real-time events for consumption by higher-level components (such as Business rules) or to be forwarded to external systems through one of the SmartSpace integration APIs or interfaces.

The spatial monitoring feature of SmartSpace is important as it acts as a filter between the noisy, very high bandwidth, low latency location data being generated by underlying sensor systems and the slower response, lower bandwidth information systems SmartSpace connects to. By turning high volumes of real-time location events into a few reliable and actionable business- and context-specific events, spatial monitoring converts sensed location data into a form that business systems can use.

First released in version: 3.2

Spatial monitoring

Spatial monitoring is a generic and scalable way of creating software definitions of the physical relationships that exist between objects in the real world that we want to detect and act on in SmartSpace. Two objects are said to have a spatial relationship when a 3D zone, either attached to the virtual object or statically placed in the world model (like a geofence), intersect in such a way that one zone fully contains another. This is called a containment event.

This is one of the most fundamental and powerful features of SmartSpace, as it provides a generic language by which we can turn millions of location and identification updates from a multitude of different sensing technologies into a concrete set of events that have real meaning to real-world business process. In particular, any applications that require monitoring or control (based on sensor-driven location data) must implement some kind of spatial monitoring to identify salient events in the flood of sensor data being generated. In fact, spatial monitoring is key to deploying location-aware applications across the enterprise, as it is fundamental to making those applications reliable, highly scalable and responsive.

Using location to drive business process is about extracting meaningful events and insight from a sea of location data being generated for all the objects moving around in an environment. At its core, SmartSpace uses spatial monitoring as the basis for providing accurate, reliable and real-time events to business systems. The following sections describe why this feature is so important.

Reliable Process Events

Location data is noisy, which means that any system (MES or ERP) trying to use location to monitor for interactions between two objects (or one object and some location in the environment) must be able to interpret the location stream in an efficient and reliable way.

Handling Big Data Streams

Business systems like MES and ERP are not designed for processing Big Data streams like those generated by the Ubisense DIMENSION4 Real-time Location System. Such high-fidelity location systems are true big data generators, with plant-wide tracking systems capable of generating in excess of six billion location events per day, or 70000 updates per second.

Scalability and Latency

The cellular nature of all SmartSpace services (described in Partitioning in the Ubisense Architecture and Protocols guide) means that spatial monitoring is actually deployed across a cellular patchwork, covering a tracking environment with spatial monitoring services that are dedicated to the collection of objects within each cell.