Skip to content
JamesNewton edited this page Sep 14, 2018 · 28 revisions

Dexter status data

The status of the Dexter robot arm is returned to DDE by the Firmware after every command. All the _DELTA and _AT values are scaled by the calibration values in the AxisCal.txt file. DDE calculates additional status data and adds it to the status array1 available to jobs. This includes slope values for each joint.

Units are always integer arc seconds. For each of the following "Joint..." sections:
*_AT - Current incremental position goal toward the commanded final position goal.
*_DELTA - Instantaneous error in position. Difference between _AT and actual position.
*_PID_DELTA - Accumulated corrective error signal. Related to force due to inertia, gravity, etc.
*_FORCE_DELTA - In follow mode, this is the offset from commanded position necessary to keep force at zero.
*_SIN - The current A2D value from the sin sensor on that joints encoder.
*_COS - The current A2D value from the cos sensor on that joints encoder.
PLAYBACK_ - Not used? The step and direction ticks sent to the motor in the time between status updates. August 2018 changed to Measured angle of the joint
SENT_ - Little used? Commanded position goal.
SLOPE_ - Unused. Was rate of change of _AT. Measurement of joint speed. April 2018 changed to servo information (see below)

In April 2018, the FPGA and Firmware (see line 2455) code was changed so that the Dynamixel servo data is returned in the SLOPE items as follows:
Joint 6 position replaces SLOPE_BASE_POSITION,
Joint 6 force replaces SLOPE_PIVOT_POSITION,
Joint 7 position replaces SLOPE_END_POSITION,
Joint 7 force replaces SLOPE_ANGLE_POSITION.

In August 2018, the FPGA and Firmware was changed to return the actual measured angle of each joint encoder as follows:
BASE_MEASURED_ANGLE replaces PLAYBACK_BASE_POSITION
PIVOT_MEASURED_ANGLE replaces PLAYBACK_PIVOT_POSITION
END_MEASURED_ANGLE replaces PLAYBACK_END_POSITION
ANGLE_MEASURED_ANGLE replaces PLAYBACK_ANGLE_POSITION
ROT_MEASURED_ANGLE replaces PLAYBACK_ROT_POSITION

Returned data

Address Description
00 Job number
01 Instruction number
02 Start time
03 End time
04 Oplet (e.g. 'g')
05 ?
06 DMA_READ_DATA
07 DMA_READ_DATA
08 RECORD_BLOCK_SIZE
09 END_EFFECTOR_IO_IN
  Joint 1: BASE
10 BASE_POSITION_AT
11 BASE_POSITION_DELTA
12 BASE_POSITION_PID_DELTA
13 BASE_POSITION_FORCE_DELTA
14 BASE_SIN
15 BASE_COS
16 PLAYBACK_BASE_POSITION (Now BASE_MEASURED_ANGLE)
17 SENT_BASE_POSITION
18 SLOPE_BASE_POSITION (Now Joint 6 angle)
  Joint 2: PIVOT
19 PIVOT_POSITION_AT
20 PIVOT_POSITION_DELTA
21 PIVOT_POSITION_PID_DELTA
22 PIVOT_POSITION_FORCE_DELTA
23 PIVOT_SIN
24 PIVOT_COS
25 PLAYBACK_PIVOT_POSITION (Now PIVOT_MEASURED_ANGLE)
26 SENT_PIVOT_POSITION
27 SLOPE_PIVOT_POSITION (Now Joint 6 force)
  Joint 3: END
28 END_POSITION_AT
29 END_POSITION_DELTA
30 END_POSITION_PID_DELTA
31 END_POSITION_FORCE_DELTA
32 END_SIN
33 END_COS
34 PLAYBACK_END_POSITION (Now END_MEASURED_ANGLE)
35 SENT_END_POSITION
36 SLOPE_END_POSITION
  Joint 4: ANGLE
37 ANGLE_POSITION_AT
38 ANGLE_POSITION_DELTA
39 ANGLE_POSITION_PID_DELTA
40 ANGLE_POSITION_FORCE_DELTA
41 ANGLE_SIN
42 ANGLE_COS
43 PLAYBACK_ANGLE_POSITION (Now ANGLE_MEASURED_ANGLE)
44 SENT_ANGLE_POSITION
45 SLOPE_ANGLE_POSITION
  Joint 5: ROT
46 ROT_POSITION_AT
47 ROT_POSITION_DELTA
48 ROT_POSITION_PID_DELTA
49 ROT_POSITION_FORCE_DELTA
50 ROT_SIN
51 ROT_COS
52 PLAYBACK_ROT_POSITION (Now ROT_MEASURED_ANGLE)
53 SENT_ROT_POSITION
54 SLOPE_ROT_POSITION

Clone this wiki locally