OpenIGTLink/ProtocolV2/Type/SensorData

From NAMIC Wiki
Jump to: navigation, search
Home < OpenIGTLink < ProtocolV2 < Type < SensorData

<< Version 2 Draft Page

Summary

SDATA is a message type, which is used to transfer sensor reading, 3-axis position, velocity, acceleration, angle, angle velocity and angle acceleration. The message format is intended for manipulator control and various types of sensors.

Message Types

SENSOR

Data Type Description
NSENSORS uint16 Number of sensors
FORMAT 0
LARRAY 0 uint8 Length of array (0-255)
UNIT 0 uint64 See 64-bit UNIT field.
NAMELEN 0 uint8 Name length
...
FORMAT (NSENSORS-1)
LARRAY (NSENSORS-1) int8 Length of array (0-255)
UNIT (NSENSORS-1) int64 see 64-bit UNIT field.
NAMELEN (NSENSORS-1) uint8 Name length
NAME Table
NAME 0 char[NAMELEN] Name
...
NAME (NSENSORS-1) char[NAMELEN (NSENSORS-1)] Name
Padding* uint8 or none padding to align DATA with WORD
DATA
DATA 0 float64[LARRAY 0] value array for sensor 0
DATA 1 float64[LARRAY 1] value array for sensor 1
...
DATA (NSENSORS-1) float64[LARRAY (NSENSORS-1)] value array for sensor (NSENSORS-1)

In C/C++, the size of padding is determined by:

((NAMELEN0 + NAMELEN1 + ... ) % 2 == 0) ? 0 : 1


Examples

Sending 3-axis position

A device with 3-axis force (N), 3-axis torque (N*m) and 3-axis acceleration (mm/s^2) sensors is sending data to a data logger program. The names of the sensors are "FORCE", "TORQUE", and "ACCEL." The message structure may be as follows:

Data Type Value
NSENSORS uint16 3
LARRAY 0 uint8 3
UNIT 0 uint64 00000010 11000000 00000000 00000000 00000000 00000000 00000000 00000000
NAMELEN0 int8 5
LARRAY 1 uint8 3
UNIT1 uint64
NAMELEN1 int8 6
LARRAY 2 uint8 3
UNIT 2 uint64 0x08 0x03 0x00 0x00 0x00 0x00 (m/s^2)
NAMELEN2 int8 5
NAME 0 char[5] "FORCE"
NAME 1 char[6] "TORQUE"
NAME 2 char[5] "ACCEL"
DATA 0 double[3] {0.0, 0.0, 0.0}
DATA 1 double[3] {0.0, 0.0, 0.0}
DATA 2 double[3] {0.0, 0.0, 0.0}

GET_SENSOR

Data Type Description


STT_SENSOR

N/A

STP_SENSOR

N/A


RTS_SENSOR

N/A

Implementations

The TDATA message type is implemented in the following source code.

Contributors

Junichi Tokuda, Yuichiro Hayashi

Comments