@@ -73,30 +73,37 @@ public void renderImGuiWidgets()
73
73
74
74
public void publishHandCommand (RobotSide side , @ Nullable SakeHandPreset handPreset , boolean calibrate , boolean reset )
75
75
{
76
- SakeHandDesiredCommandMessage sakeHandDesiredCommandMessage = new SakeHandDesiredCommandMessage ();
77
- sakeHandDesiredCommandMessage .setRobotSide (side .toByte ());
78
- SakeHandParameters .resetDesiredCommandMessage (sakeHandDesiredCommandMessage );
79
-
80
- if (calibrate )
81
- {
82
- sakeHandDesiredCommandMessage .setRequestCalibration (true );
83
- }
84
- else if (reset )
76
+ if (sakeHandStatus .size () == 2 )
85
77
{
86
- sakeHandDesiredCommandMessage .setRequestResetErrors (true );
78
+ SakeHandDesiredCommandMessage sakeHandDesiredCommandMessage = new SakeHandDesiredCommandMessage ();
79
+ sakeHandDesiredCommandMessage .setRobotSide (side .toByte ());
80
+ SakeHandParameters .resetDesiredCommandMessage (sakeHandDesiredCommandMessage );
81
+
82
+ if (calibrate )
83
+ {
84
+ sakeHandDesiredCommandMessage .setRequestCalibration (true );
85
+ }
86
+ else if (reset )
87
+ {
88
+ sakeHandDesiredCommandMessage .setRequestResetErrors (true );
89
+ }
90
+ else if (handPreset != null )
91
+ {
92
+ double handPositionLowerLimit = sakeHandStatus .get (side ).getPositionLowerLimit ();
93
+ double handPositionUpperLimit = sakeHandStatus .get (side ).getPositionUpperLimit ();
94
+
95
+ sakeHandDesiredCommandMessage .setGripperDesiredPosition (SakeHandParameters .handOpenAngleToPosition (handPreset .getHandOpenAngle (),
96
+ handPositionLowerLimit ,
97
+ handPositionUpperLimit ));
98
+ sakeHandDesiredCommandMessage .setRawGripperTorqueLimit (SakeHandParameters .gripForceToRawTorque (handPreset .getFingertipGripForceLimit ()));
99
+ }
100
+
101
+ RDXBaseUI .pushNotification ("Commanding hand configuration..." );
102
+ communicationHelper .publish (SakeHandAPI .getHandSakeCommandTopic (robotName , side ), sakeHandDesiredCommandMessage );
87
103
}
88
- else if ( handPreset != null )
104
+ else
89
105
{
90
- double handPositionLowerLimit = sakeHandStatus .get (side ).getPositionLowerLimit ();
91
- double handPositionUpperLimit = sakeHandStatus .get (side ).getPositionUpperLimit ();
92
-
93
- sakeHandDesiredCommandMessage .setGripperDesiredPosition (SakeHandParameters .handOpenAngleToPosition (handPreset .getHandOpenAngle (),
94
- handPositionLowerLimit ,
95
- handPositionUpperLimit ));
96
- sakeHandDesiredCommandMessage .setRawGripperTorqueLimit (SakeHandParameters .gripForceToRawTorque (handPreset .getFingertipGripForceLimit ()));
106
+ RDXBaseUI .pushNotification ("No hands on this robot." );
97
107
}
98
-
99
- RDXBaseUI .pushNotification ("Commanding hand configuration..." );
100
- communicationHelper .publish (SakeHandAPI .getHandSakeCommandTopic (robotName , side ), sakeHandDesiredCommandMessage );
101
108
}
102
109
}
0 commit comments