|
|
Line 190: |
Line 190: |
| | | |
| =Comments= | | =Comments= |
− |
| |
− | ''Junichi'':
| |
− | *How about adding 8- or 16-bit status field in TDATA? This will allow us to indicate that coordinate system is not registered. I would like to keep START_PUSH message simple....
| |
− |
| |
− | ''Alexander'':
| |
− | *What status types can be specified?
| |
− | *In the case the coordinate system is not valid, a STATUS message should be returned.
| |
− | *Well, I understand that you would like to keep it as simple as possible. We really like to specifiy the coordinate system like "Camera" or "Patient". We could also specifiy a SET_COORD message, but I think this would be overkill. I still vote for a data specific argument field in START_PUSH. Maybe other future data types can also use this field?
| |
− | *Due to consistency, I think we should add this field to STOP_PUSH, too.
| |
− | *We would like to allow only one TDATA push for each client at a time, so a second START_PUSH will stop the first and start the second. A STOP_PUSH will stop the push regardless of the arguments in the body. What do you think about that?
| |
− |
| |
− | ''Junichi'':
| |
− | * I haven't defined status types... it can be a bit array like: bit 0: registered or not; bit 1: line-of-site error; ....
| |
− | ** Do you think it is useful? if not, we can omit it.
| |
− | * I agree that we need a way to specify coordinate system. It's good idea to have data specific field in the START_PUSH.
| |
− | * I agree with the last comment. I would say one TDATA push for each device name, because multiple data sources may exist. The coordinate system can be overwritten by another START_PUSH message with the same device name and type.
| |
− |
| |
− | ''Alexander'':
| |
− | * I think we don't need the status type. But maybe we define a TDATA in v3 after collecting some feedback from different users. I could think about other fields like diameter of instruments, etc. But for now I would like to keep TDATA as simple as possible.
| |
− | * Ok, starting another trackingdata push with the same device name will implictly stop the first one. But if another device name is used, a second push will be started.
| |
Revision as of 04:14, 14 July 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
TDATA
Data
|
Type
|
Description
|
NSENSOR
|
UINT16
|
Number of sensors
|
FORMAT
|
UINT16
|
Bit 1: Name flag
Bit 2: Arbitrary value 1 (*)
Bit 3: Arbitrary value 2 (*)
Bit 4: Arbitrary value 3 (*)
Bit 5: Arbitrary value 4 (*)
Bit 8: Position flag (m)
Bit 9: Velocity flag (m/s)
Bit 10: Acceleration flag (m/s^2)
Bit 11: Force flag (N)
Bit 12: Angle flag (Rad)
Bit 13: Angular velocity flag (Rad/s)
Bit 14: Angular acceleration flag (Rad/s^2)
Bit 15: Torque flag (N*m)
|
SENSOR1
|
(NAME)
|
UINT8[20]
|
Sensor name
|
(ARB1)
|
FLOAT32
|
Arbitrary value 1
|
(ARB2)
|
FLOAT32
|
Arbitrary value 2
|
(ARB3)
|
FLOAT32
|
Arbitrary value 3
|
(ARB4)
|
FLOAT32
|
Arbitrary value 4
|
(POSITION)
|
FLOAT32[3]
|
Position (m)
|
(VEL)
|
FLOAT32[3]
|
Velocity (m/s)
|
(ACCEL)
|
FLOAT32[3]
|
Acceleration (m/s^2)
|
(FORCE)
|
FLOAT32[3]
|
Force (N)
|
(ANG)
|
FLOAT32[3]
|
Angle (rad)
|
(ANGVEL)
|
FLOAT32[3]
|
Angular velocity (rad/s)
|
(ANGVEL)
|
FLOAT32[3]
|
Angular accelearation (rad/s^2)
|
(TORQUE)
|
FLOAT32[3]
|
Torque (N*m)
|
...
|
SENSOR_N
|
(NAME)
|
UINT8[20]
|
Sensor name
|
(ARB1)
|
FLOAT32
|
Arbitrary value 1
|
(ARB2)
|
FLOAT32
|
Arbitrary value 2
|
(ARB3)
|
FLOAT32
|
Arbitrary value 3
|
(ARB4)
|
FLOAT32
|
Arbitrary value 4
|
(POSITION)
|
FLOAT32[3]
|
Position (m)
|
(VEL)
|
FLOAT32[3]
|
Velocity (m/s)
|
(ACCEL)
|
FLOAT32[3]
|
Acceleration (m/s^2)
|
(FORCE)
|
FLOAT32[3]
|
Force (N)
|
(ANG)
|
FLOAT32[3]
|
Angle (rad)
|
(ANGVEL)
|
FLOAT32[3]
|
Angular velocity (rad/s)
|
(ANGVEL)
|
FLOAT32[3]
|
Angular accelearation (rad/s^2)
|
(TORQUE)
|
FLOAT32[3]
|
Torque (N*m)
|
GET_TDATA
STT_TDATA
STP_TDATA
RTS_TDATA
Implementations
The TDATA message type is implemented in the following source code.
Contributors
Alexander Schaal