Home Page Toolkit Overview Using GML User Input Services Calibrator Frame Grabber Service protocol Obtaining GML Installing GML Licence Developer Documentation Tcl/Tk API The GML Canvas Image processing Tcl Scripts Library List of Classes List of Files C/C++ API List of Classes List of Files |
Finger TrackerThis page documents the Finger Tracker service provided with GML. The system and algorithms used are described in length in the paper Visual Tracking of Bare Fingers for Interactive Surfaces This service emits the position of the fingertips present in the camera view in real time, in the form of appearance, movement, and disappearance events. General information about GML services is available on the parent page Contents Usage constraintsThe closer the environment is to an "ideal" one, the more robust the system will be (i.e. it will make few errors, there will be less jitter, and latency will be lower).
ProgramsBelow is a list of the programs provided with the GML that create a Finger Tracker service instance.
Communicating with the serviceTo start receiving events from the service, you must
Messages are formatted as plain ASCII text, with carriage return plus line feed line termination (DOS convention, crlf). All messages are concluded by an empty line, i.e. by the crlf sequence. Each message consists of one or more lines, the first of which is a header line that can usually be ignored safely upon reception. It consists of:
Two example messages: BIP/1.0 A47F64A1 00000000 0000000¬ ¬ BIP/1.0 A47F64A1 00000001 000000D¬ hello, world!¬ ¬ The header line is followed by zero or more events, one per line. Each event consists of a name, written between angle brackets, and zero or more pieces of meta-information, separated by space. Example message containing an event: BIP/1.0 A47F64A1 00000A14 0000025¬ <Motion> 173 172.15 240.36 1319768891¬ ¬ For more details and communication using UDP or multicast UDP, refer to the BIP specification. ChannelsThe finger tracker will only run (i.e. start emitting tracking events) if both the calibration and grabber channels are linked to a peer, and the calibration matrix is known. Note that in the monolithic version of the finger tracker, this is done automatically. events (output)The the events channel emits the fingertip tracking events (tm is always the current time in nanoseconds).
Other events may be emitted but should be ignored. calibration (inoutput)This channel is used to query and receive a calibration matrix from a calibration service, using either the simplified protocol or the standard protocol (see the documentation for the calibration service). The link will be established automatically. grabber (input)Used to maintain the connection to the source of images in which fingertips are tracked. The link will be established automatically. |
Contact: julien (dot) letessier (at) gmail (dot) com.
Copyright (c) 2000-2007 CLIPS-IMAG Laboratory, Grenoble, France. All rights reserved. W3CXHTML 1.0 W3CCSS 2.0 |