T.R | Title | User | Personal Name | Date | Lines |
---|
1448.1 | Something is not too hard everything is a fair amount of work | STAR::BMATTHEWS | | Fri Sep 15 1989 13:53 | 43 |
|
The glove communicates with the host over a 19.2K serial line
(typically 26 bytes updated 60 times a second), and comes with RS232
and RS422 interfaces. The host sends some commands to the glove to set
up which data to report. The glove typically reports the amount of
flex in the lower 2 joints of each finger, and the position (x, y, z)
and orientation (roll, pitch, and yaw) of the hand. The position and
orientation values come from a Polhemus Isotrak magnetic sensor
integrated with the glove.
What would be involved to:
1) port the simple Mac demo program, which just displays the flex
and Polhemus values on the screen as it receives them?
> Easiest way on VMS is some QIOs to the terminal port to which the glove
> is attached to read the data.
2) make the DataGlove into a mouse substitute, using the x and y
values as mouse x and y values, and using the flex values to
determine events like button clicks?
> Again on VMS the easiest is to issue a QIO to the DECWindows driver
> to pass an x event packet of your making to the server. More efficient
> but a little harder is to write a input class driver ala our mouse
> driver. The class driver hooks up to the terminal port driver on one end
> and calls DECWindows common driver routines to pass events to the server
> on the other end.
> For the full support of the data glove thru X you need an input extension
> to be able to pass all of the glove data to x clients.
>
I have the C source code for the demo program on-line, and can make
available the relevant parts of the DataGlove programming
documentation.
Please contact me at CLT::GOOD if you're interested in seeing the
demos, or in learning more about the Presence - Multi-Sensory I/O
project of which this is a part.
> Bill
|
1448.2 | One approach | ENUF::LEWIS | | Fri Sep 15 1989 14:10 | 20 |
| A qucik and dirty approach might be to simply use the rs-232 (or
dec-423) port on a workstation as the source of input for the device
connector. A program could easily be written to accept input data from
the glove, convert it to something meaningful for use by the existing demo
program, then use this program as the source of input from the glove.
Using the glove for a mouse substitute would be a bit more complicated.
You would need to write an interface to the device driver which
currently supports that port, essentially reproducing the functionality
described above using the rs-232 or dec-423 port. This should be
"do-able" but the programming required would undoubtedly be more
subtle.
Then of course, you just implement the functionality (port?) of the
demo program under DECwindows. Having the demo cource code should make
it that much easier.
john
|
1448.3 | redundant solution | ENUF::LEWIS | | Fri Sep 15 1989 14:14 | 6 |
| Sorry for what appears to be redundant solutions in .1 and .2, but Bill
must have hit his 'Return' key before I hit mine...
john
|
1448.4 | | PDVAX::P_DAVIS | Peter Davis | Fri Sep 15 1989 15:39 | 19 |
| Of course, using the data glove as a mouse substitute will probably
become tiresome pretty quickly, since the glove itself is uncomfortable
to wear, and you have to hold your arm in the air for prolonged
periods.
It's almost not worth it, unless you get to take advantage of the
richness of input variety that the glove is capable of. The only way I
can imagine to do this would be to extend X to support glove events
which report position (x, y, and z), orientation, curvature of each
finger, etc.
Actually, I'd be really interested in just getting X/DECwindows to
support pressure-sensitive tablets. I don't know if it's possible to
add a datum (pressure) to the MotionNotify structure. It might also be
useful to define an event for a change in stylus pressure, but that's
probably of secondary importance.
-pd
|
1448.5 | Thanks - that's what I was looking for | BAVIKI::GOOD | Michael Good | Fri Sep 15 1989 16:05 | 19 |
| Thanks for the quick help!
I'm glad to hear of the quick and dirty way for VMS. Is there an
equivalent for Ultrix? We would like to have the flexibility to
work with both operating systems.
As Peter indicates, I don't think a DataGlove used as a mouse
substitute is a great idea for most applications. But the technique
that is used to interface the DataGlove could also be used to interface
the EyePhone head-mounted display, and the combination of those two
devices (and other technology, such as voice input, tactile feedback,
and audio output) could be very powerful. But we want to take small
steps at a time.
By the way, we currently have a req open in our group which may
involve building these types of prototypes. Send me mail if you
want more information.
|
1448.6 | Use the equivalent kernal routines? | IO::MCCARTNEY | James T. McCartney III - DTN 381-2244 ZK02-2/N24 | Sun Sep 17 1989 07:46 | 4 |
|
Instead of doing a $QIO call, on Ultrix you call read(3) and write(3).
|
1448.7 | Portability | KASINO::TALLETT | Just one more bug to fix... | Thu Sep 21 1989 06:18 | 11 |
|
By using XSendEvent() as implied in .-3, to send simulated mouse
events to the XServer, your prog should be portable as far as
X is concerned. Your "read character from terminal port" routine
may have to be different on both systems, but the rest of the code
should be portable I guess.
Regards,
Paul Tallett,
CEC Karlsruhe
|