Difference between revisions of "OpenIGTLink/ProtocolV2/Type/SensorData"
Line 268: | Line 268: | ||
====Sending 3-axis position==== | ====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: | 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: | ||
+ | {| border="1" cellpadding="5" cellspacing="0" align="center" | ||
+ | |- | ||
+ | | align="left" style="background:#e0e0e0;" | Data | ||
+ | | align="left" style="background:#e0e0e0;" | Type | ||
+ | | align="left" style="background:#e0e0e0;" | Value | ||
+ | |- | ||
+ | | align="left" | NSENSORS | ||
+ | | align="left" | uint16 | ||
+ | | align="left" | 3 | ||
+ | |- | ||
+ | | align="left" | LARRAY 0 | ||
+ | | align="left" | uint8 | ||
+ | | align="left" | 3 | ||
+ | |- | ||
+ | | align="left" | PREFIX 0 | ||
+ | | align="left" | int8 | ||
+ | | align="left" | 0 | ||
+ | |- | ||
+ | | align="left" | DIMENSION 0 | ||
+ | | align="left" | uint8[6] | ||
+ | | align="left" | 0x58 0x00 0x00 0x00 0x00 0x00 (N) | ||
+ | |- | ||
+ | | align="left" | NAME | ||
+ | | align="left" | char[20] | ||
+ | | align="left" | "FORCE" | ||
+ | |- | ||
+ | | align="left" | LARRAY 1 | ||
+ | | align="left" | uint8 | ||
+ | | align="left" | 3 | ||
+ | |- | ||
+ | | align="left" | PREFIX 1 | ||
+ | | align="left" | int8 | ||
+ | | align="left" | 0 | ||
+ | |- | ||
+ | | align="left" | DIMENSION 1 | ||
+ | | align="left" | uint8[6] | ||
+ | | align="left" | 0x58 0x08 0x00 0x00 0x00 0x00 (N*m) | ||
+ | |- | ||
+ | | align="left" | NAME 1 | ||
+ | | align="left" | char[20] | ||
+ | | align="left" | "TORQUE" | ||
+ | |- | ||
+ | | align="left" | LARRAY 2 | ||
+ | | align="left" | uint8 | ||
+ | | align="left" | 3 | ||
+ | |- | ||
+ | | align="left" | PREFIX 2 | ||
+ | | align="left" | int8 | ||
+ | | align="left" | 0 | ||
+ | |- | ||
+ | | align="left" | DIMENSION 2 | ||
+ | | align="left" | uint8[6] | ||
+ | | align="left" | 0x08 0x03 0x00 0x00 0x00 0x00 (m/s^2) | ||
+ | |- | ||
+ | | align="left" | NAME 2 | ||
+ | | align="left" | char[20] | ||
+ | | align="left" | "ACCEL" | ||
+ | |- | ||
+ | | align="left" | VALUE 0 | ||
+ | | align="left" | double[3] | ||
+ | | align="left" | {0.0, 0.0, 0.0} | ||
+ | |- | ||
+ | | align="left" | VALUE 1 | ||
+ | | align="left" | double[3] | ||
+ | | align="left" | {0.0, 0.0, 0.0} | ||
+ | |- | ||
+ | | align="left" | VALUE 2 | ||
+ | | align="left" | double[3] | ||
+ | | align="left" | {0.0, 0.0, 0.0} | ||
+ | |- | ||
+ | |} | ||
==GET_SENSOR== | ==GET_SENSOR== |
Revision as of 04:54, 10 November 2010
Home < OpenIGTLink < ProtocolV2 < Type < SensorDataContents
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:
Data | Type | Value |
NSENSORS | uint16 | 3 |
LARRAY 0 | uint8 | 3 |
PREFIX 0 | int8 | 0 |
DIMENSION 0 | uint8[6] | 0x58 0x00 0x00 0x00 0x00 0x00 (N) |
NAME | char[20] | "FORCE" |
LARRAY 1 | uint8 | 3 |
PREFIX 1 | int8 | 0 |
DIMENSION 1 | uint8[6] | 0x58 0x08 0x00 0x00 0x00 0x00 (N*m) |
NAME 1 | char[20] | "TORQUE" |
LARRAY 2 | uint8 | 3 |
PREFIX 2 | int8 | 0 |
DIMENSION 2 | uint8[6] | 0x08 0x03 0x00 0x00 0x00 0x00 (m/s^2) |
NAME 2 | char[20] | "ACCEL" |
VALUE 0 | double[3] | {0.0, 0.0, 0.0} |
VALUE 1 | double[3] | {0.0, 0.0, 0.0} |
VALUE 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