National Biocomputation Center

Shared Haptics (SHWinG)

The Shared Haptics Working Group (SHWinG) is a group of haptics, simulation, and teleoperation people interested in streaming and distributed haptic rendering over networks.

Things I'm gonna put more of here real soon:


Hapticservers on the net (PLEASE talk to the person first!!)
Biocomp Center:,
UWisconson-Lacrosse: (Steve Senger)

Until I get a chance to write up things better, here's a list of issues that we talked about at the last meeting:

Protocol classes

Here is information on the networking protocol for each of the protocol classes.

Initial Parameters/Handshaking:
For every protocol class, we are using TCP/IP port 9999 and sending 300 byte packets.

After connecting, the simulator side sends "haptic vX.Y", where X and Y denote the major and minor version numbers of the protocol class. If the hapticserver running on the machine supports that protocol class, it will respond with "ACK", otherwise "NAK". If "ACK"-nowledged, then the server will go into the protocol specified below.

At any time, to signal the end of the session, the simulator can send the line "quit", at which time the hapticserver will reset and await the next connection.

Class 1: Streaming Forces (version: 1.0)In this protocol class, the hapticserver is sending position and orientation information to the simulator as:

"px py pz m00 m01 m02 m10 m11 m12 m20 m21 m22 a"

Where (px,py,pz) are the x,y,z position of the device, m[][] are the elements of the rotation matrix, and a denotes whether the tool is active (button pressed, etc). Note that the hapticserver will only send this information if it has changed from the last time it was sent.

The simulator sends a force vector back to the hapticserver as:

"fx fy fz"

Where (fx,fy,fz) denotes the force vector in x,y,z. Note that the hapticserver may limit the maximum amount of force for safety reasons. This is a good thing.

Class 2: Streaming Wave Variables (version: 2.0)
(Gunter- do you have some input for here?)

Class 3: Caching Local Region Geometry (version: 3.0)
(Benjamin is currently working here)

Footer Links: