Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

K9-Tracking System

Overview

The K9TrackingSystem module was created to support the IS demonstration. It models the tracking of target landmarks by the K9 rover.

Model Description

The model computes a single number (0 - 100) representing both the probability of the location and a corresponding confidence for each tracked object. This number is computed each time the rover has moved 1.0 m away from its last waypoint where the tracking index was computed. The tracking number is set to -1 if tracking is turned off. The computation considers the following factors:

The tracker confidence is initially set to 100 and decreases when the angle and distance deviate from their initial values due to rover movement. Change in angle affects the confidence value most strongly and to a much lesser degree by a change in distance. The random number generates some additional variability (noise).

Random number:
The range of the random number is currently set to 90 - 100.

Distance factor:
The distance decreases the confidence by 2 points for every two meter in distance change, to a maximum of a 10 point decrease.

Angle factor:
The angular change has the following effect on the confidence value:

Usage

K9TrackingSystem RobotName

API

The K9TrackingSystem publishes the following object classes and interactions:

The K9Subsystem subscribes to the following object classes and interactions:

In order for the K9Subsystem federate to run successfully in a simulation, it has to discover the following object instances:

where robotName is the name entered at the command line.

A federate that wants to use the K9Subsystem must discover the following object instances:

where robotName is the name entered at the command line.

GUI

The tracking system has a GUI that allows the user to manually set the fail flag for each tracker.

K9TrackingSystemGui.jpg

K9 Tracking System GUI Panel

Test Program

For testing, run an RTI and the following three components:

MSF/components/K9TrackingSystem  roverName
MSF/components/test_K9Tracker  roverName
MSF/components/manager/SimManager  3

The test program creates a WheeledLocomotor and a shell for discovering the TrackinSystemObjInstance published by the K9TrackingSystem module. The program moves the location of its WheeledLocomotor in the x-direction at a rate of 1m/sec. After 1 second simulation time, the test program defines three landmarks to the K9 trackingSystem and starts tracking them. After 10 seconds simulation time the test program stops tracking "object1" and at time 15 deletes landmark "object1". The test program reports the state of each landmark at each time-step.

Note:
The K9TrackingSystem computes the tracking index for the first time after tracking has been turned on and the rover has moved 1.0 meter.
If a tracker is turned off, its value will be -1.

Files

Code and data of the K9Subsystem model reside in the MSF/component/tracker/ directory and include the following files:

K9TrackingSystem.cpp		// This file creates the federate 
TrackingSystem.cpp		// Defines the TrackingSystem class
TrackingSystem.h
Tracker.cpp			// Defines an individual tracker
Tracker.h
test_trackingSystem.cpp		// Tests the functionality of the K9TrackingSystem
makefile

Generated on Thu Apr 7 18:21:15 2005 for MST API by  doxygen 1.4.1