Ubiquitous Tracking in DWARF - Ubitrack Middleware Agent
On each machine one Ubitrack Middleware Agent (UMA) is started locally. This UMA is connected to the local Chair.ServiceManager (need: Chair.ServiceManager (hostname = local hostname
)) and receives now information about all local objects (nodes) and the measurements (edges) between them. All possible paths between to arbitrary local objects can be computed and stored together with the corresponding set of attributes. After this step, all local objects are grouped in a supernode and the paths are cached.
If a new object appears in the tracking range of a local tracker, it is stored as an anonymous object until it is identified. Therefor the local UMA tries to connect to other UMAs which are in close range and requests for information about their local objects in order to find similarities. If the anonymous object can be identified, a communication channel to its UMA is set up. The new object is now stored in both UMAs. If the object leaves the local tracking range, it is deleted from the local UMA as well as the communication channel.
Possible cases for the start of a path search
- source object and target object is registered at the local UMA:
In this case, a path between source and target object is already set up. Nothing to do than evaluation of the error function.
- source object is registered at the local UMA:
A help request is sent to all UMA in the Ubitrack System in order to localize the target object. TargetUMA sends back a response message (this UMA stores the target object locally) and a communication channel is set up. Now the path search for the target object can be started.
- target object is registered at the local UMA:
A help request is sent to all UMA in the Ubitrack System in order to localize the source object. SourceUMA sends back a response message (this UMA stores the source object locally) and a communication channel is set up. All information, which is needed for the path search is sent to the SourceUMA. Now the path search for the target object can be started at the SourceUMA.
- none of them is registerd at the local UMA:
A help request is sent to all the other UMA in the Ubitrack System in order to find the UMA in which the source and the target objects are stored locally. SourceUMA and TargetUMA send a response message to the RequestUMA and a communication channel between SourceUMA, RequestUMA and TargetUMA, RequestUMA is set up. Information, which is important for the path search is send to the SourceUMA.
Result of the path search
In cases of a non-edgewise evaluation, a list of all possible paths is returned. After evaluation of the error function, the path are ordered by value. The application can select a suitable path. The Data Flow Graph is set up along this path by starting filter and inference components.
In case of an edgewise evaluation of the error function, one single path is returned. For calibration, a second path search must be started. Finding a different path is possible by choosing an appropriate the error function ("path2 unlike path1").
Computation of inferred attributes
The attributes of measurements must be recomputed in case of any filtering (interpolation, extrapolation) steps along the path. Therefor, the lokal UMA computes error of the filtering step of an measurement and combines this with the error of the measurement (see Pereira, Localization and Tracking in Robot Networks
, Cox, Automoumous Robot Vehicles
). This should not influence other attributes than pose error(?).
- 03 Mar 2004