OpenIGTLink/ProtocolV2/Type/SensorData
Contents
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) |
PREFIX 0 | int8 | SI-prefix (-127 - 128) (see bellow) |
DIMENSION 0 | uint8[6] | Dimension (see bellow) |
NAME 0 | char[20] | Name |
... | ||
FORMAT (NSENSORS-1) | ||
LARRAY (NSENSORS-1) | int8 | Length of array (0-255) |
PREFIX (NSENSORS-1) | int8 | SI-prefix (-127 - 128) (see bellow) |
DIMENSION (NSENSORS-1) | uint8[6] | Dimension (see bellow) |
NAME (NSENSORS-1) | char[20] | Name |
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) |
Definition of PREFIX and DIMENSION fields
The PREFIX and DIMENSION fields are used to specify units. The PREFIX fields is an exponent representing SI prefix (e.g. milli, micro, nano, kilo, ...), while DIMENSIONS is combination of SI base units and/or SI-delived units.
PREFIX
Value | SI-prefix | Value | SI-prefix |
0x01 | deka (deca) (1e1) | 0xFF | deci (1e-1) |
0x02 | hecto (1e2) | 0xFE | centi (1e-2) |
0x03 | kilo (1e3) | 0xFD | milli (1e-3) |
0x06 | mega (1e6) | 0xFA | micro (1e-6) |
0x09 | giga (1e9) | 0XF7 | nano (1e-9) |
0x0C | tera (1e12) | 0XF4 | pico (1e-12) |
0x0F | peta (1e15) | 0XF1 | femto (1e-15) |
0x12 | exa (1e18) | 0XEE | atto (1e-18) |
0x15 | zetta (1e21) | 0XEB | zepto (1e-21) |
0x18 | yotta (1e24) | 0XE8 | yocto (1e-24) |
0x00 | None | -- | -- |
DIMENSION
DIMENSION can consist of up to 6 unit (either SI base unit or SI derived unit) with exponents (-3 - +3)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | UNIT0 | EXP0| UNIT1 | EXP1| UNIT2 | EXP2| UNIT3 | EXP3| UNIT4 | EXP4| UNIT5 | EXP5| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ byte 0 1 2 3 4 5
UNIT
UNIT0 - UNIT5 should be either one of SI base units or SI derived units shown bellow.
Value | SI base unit name | Value | SI base unit name |
0x01 | meter | 0x05 | kelvin |
0x02 | gram | 0x06 | mole |
0x03 | second | 0x07 | candela |
0x04 | ampere | -- | -- |
Value | Unit name | dimension | Value | Unit name | dimension |
0x08 | radian | meter/meter | 0x12 | ohm | meter^2-kilogram/second^3-ampere^2 |
0x09 | steradian | meter^2/meter^2 | 0x14 | siemens | second^3-ampere^2/meter^2-kilogram |
0x0A | hertz | /second | 0x15 | weber | meter^2-kilogram/second^2-ampere |
0x0B | newton | meter-kilogram/second^2 | 0x16 | tesla | kilogram/second^2-ampere |
0x0C | pascal | kilogram/meter-second^2 | 0x17 | henry | meter^2-kilogram/second^2-ampere^2 |
0x0D | joule | meter^2-kilogram/second^2 | 0x18 | lumen | candela-steradian |
0x0E | watt | meter^2-kilogram/second^3 | 0x19 | lux | candela-steradian/meter^2 |
0x0F | coulomb | second-ampere | 0x1A | becquerel | /second |
0x10 | volt | meter^2-kilogram/second^3-ampere | 0x1B | gray | meter^2/second^2 |
0x11 | farad | second^4-ampere^2/meter^2-kilogram | 0x1C | sievert | meter^2/second^2 |
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:
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