next up previous
Next: Posturing the Jack Up: Real-Time Control of a Previous: Background

Sensor Interface

We are using the Flock of Birds from Ascension Technology, Inc. for position/orientation tracking. With an Extended Range Transmitter the operator can move about in an 8-10 foot hemisphere. Each Bird sensor is connected to a Silicon Graphics 310VGX via a direct RS232 connection running at 38,400 baud.

One of the initial problems with this system was slowdown of the simulation due to the sensors. The IRIX operating system introduces a substantial delay between when data arrives at a port and when it can be accessed. This problem was circumvented by delegating control of the Flock to a separate server process. This server will configure the Flock to suit a client's needs, then provide the client with updates when requested. The server takes updates from the Birds at the maximum possible rate, and responds to client requests by sending the most recent update from the appropriate Bird. This implementation allows us to access the Flock from any machine on our network and allows the client to run with minimal performance degradation due to the overhead of managing the sensors. We now get about 25-30 updates per second on each of the sensors, of which we use only about 8 to 10. We achieve a frame rate of about 8-10 frames per second on an SGI 310/VGX, with a shaded environment of about 2000 polygons. The bulk of the computation lies in the inverse kinematics routine, which runs in the interframe update to maximize position accuracy without sacrificing refresh rate.