Skip to content

Commit 17012df

Browse files
committed
Adding KST param to deactivate joints, similar to controller
1 parent d7205fb commit 17012df

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

ihmc-avatar-interfaces/src/main/java/us/ihmc/avatar/networkProcessor/kinemtaticsStreamingToolboxModule/IKStreamingRTPluginFactory.java

+7
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,13 @@ public IKStreamingRTThread(String robotName,
224224
fullRobotModelFactory,
225225
yoGraphicsListRegistry,
226226
registry);
227+
228+
List<String> inactiveJoints = parameters.getInactiveJoints();
229+
for (int i = 0; i < inactiveJoints.size(); i++)
230+
{
231+
kinematicsStreamingToolboxController.getActiveOptimizationSettings().deactivateJoint(desiredFullRobotModel.getOneDoFJointByName(inactiveJoints.get(i)));
232+
}
233+
227234
kinematicsStreamingToolboxController.setCollisionModel(collisionModel);
228235

229236
MessageUnpacker<WholeBodyStreamingMessage> wholeBodyStreamingMessageUnpacker = MessageUnpackingTools.createWholeBodyStreamingMessageUnpacker();

ihmc-avatar-interfaces/src/main/java/us/ihmc/avatar/networkProcessor/kinemtaticsStreamingToolboxModule/KinematicsStreamingToolboxController.java

+6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import us.ihmc.avatar.networkProcessor.kinematicsToolboxModule.KinematicsToolboxModule;
99
import us.ihmc.avatar.networkProcessor.kinemtaticsStreamingToolboxModule.KinematicsStreamingToolboxParameters.ClockType;
1010
import us.ihmc.avatar.networkProcessor.modules.ToolboxController;
11+
import us.ihmc.commonWalkingControlModules.controllerCore.command.inverseKinematics.InverseKinematicsOptimizationSettingsCommand;
1112
import us.ihmc.commons.Conversions;
1213
import us.ihmc.communication.controllerAPI.CommandInputManager;
1314
import us.ihmc.communication.controllerAPI.StatusMessageOutputManager;
@@ -253,6 +254,11 @@ public void setRobotStateUpdater(IKRobotStateUpdater robotStateUpdater)
253254
tools.setRobotStateUpdater(robotStateUpdater);
254255
}
255256

257+
public InverseKinematicsOptimizationSettingsCommand getActiveOptimizationSettings()
258+
{
259+
return tools.getIKController().getActiveOptimizationSettings();
260+
}
261+
256262
public void updateCapturabilityBasedStatus(CapturabilityBasedStatus newStatus)
257263
{
258264
tools.updateCapturabilityBasedStatus(newStatus);

ihmc-avatar-interfaces/src/main/java/us/ihmc/avatar/networkProcessor/kinemtaticsStreamingToolboxModule/KinematicsStreamingToolboxModule.java

+5
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ public KinematicsStreamingToolboxModule(DRCRobotModel robotModel,
8282
registry);
8383
controller.setRobotStateUpdater(robotStateUpdater);
8484
controller.setCollisionModel(robotModel.getHumanoidRobotKinematicsCollisionModel());
85+
List<String> inactiveJoints = parameters.getInactiveJoints();
86+
for (int i = 0; i < inactiveJoints.size(); i++)
87+
{
88+
controller.getActiveOptimizationSettings().deactivateJoint(controller.getDesiredFullRobotModel().getOneDoFJointByName(inactiveJoints.get(i)));
89+
}
8590
Map<String, Double> initialConfiguration = fromStandPrep(robotModel);
8691
if (initialConfiguration != null)
8792
controller.setInitialRobotConfigurationNamedMap(initialConfiguration);

ihmc-avatar-interfaces/src/main/java/us/ihmc/avatar/networkProcessor/kinemtaticsStreamingToolboxModule/KinematicsStreamingToolboxParameters.java

+9
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import us.ihmc.euclid.tuple3D.interfaces.Tuple3DReadOnly;
1010
import us.ihmc.commons.UnitConversions;
1111

12+
import java.util.ArrayList;
13+
import java.util.List;
1214
import java.util.Map;
1315

1416
public class KinematicsStreamingToolboxParameters
@@ -269,6 +271,8 @@ public enum ClockType
269271
private double solverPrivilegedDefaultWeight;
270272
private double solverPrivilegedDefaultGain;
271273

274+
private final List<String> inactiveJoints = new ArrayList<>();
275+
272276
public static KinematicsStreamingToolboxParameters defaultParameters()
273277
{
274278
KinematicsStreamingToolboxParameters parameters = new KinematicsStreamingToolboxParameters();
@@ -1059,4 +1063,9 @@ public void setSolverPrivilegedDefaultGain(double solverPrivilegedDefaultGain)
10591063
{
10601064
this.solverPrivilegedDefaultGain = solverPrivilegedDefaultGain;
10611065
}
1066+
1067+
public List<String> getInactiveJoints()
1068+
{
1069+
return inactiveJoints;
1070+
}
10621071
}

0 commit comments

Comments
 (0)