Tracker Server Users Guide

Application Overview

Recently, a group of individuals at IMTC (Interactive Media Technology Center) developed a system that uses cameras equipped with infrared filters to track infrared light sources. This system collects physical light information using the cameras and converts is to digital, vector data using a combination of hardware and software. In order to use this system for indoor positioning, a framework must exist that takes into account the attributes of each camera (i.e. position, field of view, etc.) as well as the attributes of the surrounding environment (i.e. size and shape of the room). This is where TrackerServer steps in. TrackerServer has three main functions:
  1. It allows the user to graphically construct the physical environment that the positioning system will service. This includes the dimensions of the area that the positioning system will service as well as the location and headings of each of the cameras.

  2. It uses the physical light information from the ITMC Tracker application and combines it with the physical attributes of the environment and computes the position of an infrared light source within the environment.

  3. It serves all of this positioning information in two ways, visually and over the network. Visually, the position of the light source will be shown within the graphical environment constructed earlier. Client applications will be able to connect TrackerServer over the network and request positioning information.
The main purpose of this application is to shift the positioning computation from each client onto the server so that they can simply connect to the server and get the positioning information without having to waste their own valuable CPU time.

Installing and running the application

  1. Create the application directory.( EX C:\TrackerServer )
  2. Download TS.ZIP to the directory created in step 1.
  3. Unzip TS.ZIP.
  4. Move or copy all of the DLL's to the windows system32 directory.
  5. Create a shortcut to the TrackerServer.EXE file located in the directory created in step 1.
  6. Start TrackerServer by double clicking on the shortcut.

Creating the environment

Using the Server Component

Implementing a client

Clients can connect to TrackerServer and request the positions of objects using a socket connection to the NT machine that TrackerServer is currently executing on. The IP address of the machine can be determined by running IPCONFIG at the command prompt of the NT Machine. The port is currently hard coded in the application to 44965.

The positioning protocol

After connecting to the machine the first piece of data that TrackerServer will want is the object ID of the target object.

NOTE: TrackerServer currently only supports one object and its ID is 0.

After that TrackerServer will return to the client the X,Y, and Z position as well as the time in the following format:

<>

The X,Y, and Z components will be integer values that specify the position of the object in the coordinate system used in TrackerServer. The TIME component is the number of seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time, according to the system clock. If an invalid object ID is passed to TrackerServer, it will return "Invalid Object ID" After returning the this information TrackerServer will drop the connection. This component of TrackerServer is multi-threaded will accept multiple simultaneous client connections.

Here is an example Tracker Server client implemented in C++.