Accept 2 additional values on the "a" (move all joints) instruction and send those out to set gripper roll and span. This integrates the 2 new servo joints into the move all joints system, bringing it from 5 joints to 7 joints.
However, DDE may not correctly send these values as of 2.5.3. This may happen even when only 5 values are sent in the DDE Dexter.move_all_joints command as it will try to guess where Joints 6 and 7 were before. There are two problems:
DDE is incorrectly converting the Joint 6 and 7 values. It seems to always send 3600 for joint 6 and 7200 for joint 7. There is some question as to what the values sent should be. Either:
The value should be in arcseconds and the firmware should be updated to convert that to degrees for the Dynamixel servo, or
The value should be sent in degrees and the Firmware should just pass it through. (current)
The initial values for these joints may not be set correctly.
Also, because the SetParam EERoll and EESpan commands also set the End Effector positions (which are Joints 6 and 7), DDE may not correctly track the commanded position, and if a 5 axes Dexter.move_all_joints command is issued, it will assume the user wants Joint 6 and 7 at their last known position, which may be different from where they are now due to the EERoll and EESpan SetParm commands. Either:
DDE could just NOT send positions when it isn't given position for higher order joints. This seems safest.
DDE could monitor the EERoll and EESpan commands to stay in the loop on their commanded positions.
Accept 2 additional values on the "a" (move all joints) instruction and send those out to set gripper roll and span. This integrates the 2 new servo joints into the move all joints system, bringing it from 5 joints to 7 joints.
However, DDE may not correctly send these values as of 2.5.3. This may happen even when only 5 values are sent in the DDE
Dexter.move_all_joints
command as it will try to guess where Joints 6 and 7 were before. There are two problems:The value should be in arcseconds and the firmware should be updated to convert that to degrees for the Dynamixel servo, or
The value should be sent in degrees and the Firmware should just pass it through. (current)
Also, because the SetParam EERoll and EESpan commands also set the End Effector positions (which are Joints 6 and 7), DDE may not correctly track the commanded position, and if a 5 axes Dexter.move_all_joints command is issued, it will assume the user wants Joint 6 and 7 at their last known position, which may be different from where they are now due to the EERoll and EESpan SetParm commands. Either:
DDE could just NOT send positions when it isn't given position for higher order joints. This seems safest.
DDE could monitor the EERoll and EESpan commands to stay in the loop on their commanded positions.
See:
https://github.com/cfry/dde/issues/35
https://github.com/HaddingtonDynamics/Dexter/wiki/set-parameter-oplet