Difference between revisions of "OpenIGTLink/ProtocolV2/Type/SensorData"

From NAMIC Wiki
Jump to: navigation, search
Line 68: Line 68:
 
UNIT is a 64-bit field to specify a unit consisting of SI-prefix (e.g. milli, micro, kilo etc...) and combination of SI-base and/or SI-derived unites.
 
UNIT is a 64-bit field to specify a unit consisting of SI-prefix (e.g. milli, micro, kilo etc...) and combination of SI-base and/or SI-derived unites.
  
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
+
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
 
   |PREFIX |  UNIT0  |  EXP0 |  UNIT1  |  EXP1 |  UNIT2  | EXP2
 
   |PREFIX |  UNIT0  |  EXP0 |  UNIT1  |  EXP1 |  UNIT2  | EXP2
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
+
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
 
   0              1              2              3              4  
 
   0              1              2              3              4  
+
 
  -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
 
  EXP2 |  UNIT3  |  EXP3 |  UNIT4  |  EXP4 |  UNIT5  |  EXP5 |
+
    ...-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
        EXP2 |  UNIT3  |  EXP3 |  UNIT4  |  EXP4 |  UNIT5  |  EXP5 |
  4              5              6              7
+
    ...-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 +
        4              5              6              7
  
  

Revision as of 04:09, 17 November 2010

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 uint16 Length of array (0-255)
UNIT 0 int64 See bellow
NAME 0 char[20] Name
...
FORMAT (NSENSORS-1)
LARRAY (NSENSORS-1) int8 Length of array (0-255)
UNIT (NSENSORS-1) int64 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 UNIT field

UNIT is a 64-bit field to specify a unit consisting of SI-prefix (e.g. milli, micro, kilo etc...) and combination of SI-base and/or SI-derived unites.

 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
 |PREFIX |   UNIT0   |  EXP0 |   UNIT1   |  EXP1 |   UNIT2   | EXP2
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
 0               1               2               3               4 


    ...-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       EXP2 |   UNIT3   |  EXP3 |   UNIT4   |  EXP4 |   UNIT5   |  EXP5 |
    ...-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        4               5               6               7


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.

SI base units
Value SI base unit name Value SI base unit name
0x01 meter 0x05 kelvin
0x02 gram 0x06 mole
0x03 second 0x07 candela
0x04 ampere -- --
SI derived units
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)
NAME0 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"
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