A human computer interface apparatus for allowing a user to manually manipulate a probe within a three dimensional volume while a host computer tracks a position and orientation of said probe with respect to a fixed surface within said volume, said host computer displaying a user-controlled image on a display screen at a position derived from a position of said probe in said three dimensional volume, wherein said interface apparatus allows said probe to be moved in at least five degrees of freedom with respect to said fixed surface, said interface apparatus comprising:
- a probe manipulatable by a user;
- a support base;
- a movable linkage including a first, second, and third joint configuration, wherein said first joint configuration couples said probe to a first link member, allowing said probe to move in two degrees of freedom of rotation with respect to said first link member, said second joint configuration couples said first link member to a second link member, allowing rotation of said first link member with respect to said second link member, and said third joint configuration couples said second link member to said support base, allowing said second link member to move in two degrees of freedom of rotation with respect to said support base;
- at least one sensor associated with each of said first, second, and third joint configurations, wherein each of said sensors measures said rotation in a degree of freedom allowed by said joint configurations;
- and
- a microprocessor electrically coupled to said sensors and separate from said host computer system, said microprocessor reading data from said sensors and reporting a representation of said data to said host computer, said microprocessor receiving, decoding, and responding to high level host commands sent from said host computer, wherein said high level host commands include requests to report a single set of said representation of said data, requests to report a repeated stream of said representations of said data over time, and requests to modify parameters stored within memory local to said microprocessor and separate from said host computer.