The K9TrackingSystem module was created to support the IS demonstration. It models the tracking of target landmarks by the K9 rover.
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:
- Random number
- Distance (rover to target)
- Angle (rover position relative to target)
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:
-
10 points decrease for an angular difference of 10 - 20 deg
-
20 points decrease for an angular difference of 20 - 30 deg
-
30 points decrease for an angular difference of 30 - 45 deg
-
50 points decrease for an angular difference of 45 - 90 deg
-
70 points decrease for an angular difference of 90 - 150 deg
-
90 points decrease for an angular difference of > 150 deg
K9TrackingSystem RobotName
The K9TrackingSystem publishes the following object classes and interactions:
The K9Subsystem subscribes to the following object classes and interactions:
- WheeledLocomotorObjClass
- TrackingSystemDefineLandmarkInteraction
- TrackingSystemDeleteLandmarkInteraction
- TrackingSystemStartTrackingInteraction
- TrackingSystemStopTrackingInteraction
In order for the K9Subsystem federate to run successfully in a simulation, it has to discover the following object instances:
- WheeledLocomotorInstance robotName:Locomotor
where robotName is the name entered at the command line.
A federate that wants to use the K9Subsystem must discover the following object instances:
- TrackingSystemObjClass robotName:TargetTracker
where robotName is the name entered at the command line.
The tracking system has a GUI that allows the user to manually set the fail flag for each tracker.
K9 Tracking System GUI Panel
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.
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
1.4.1