private void createControllerCore(YoVariableRegistry walkingControllerRegistry)
{
JointBasics[] jointsToIgnore = DRCControllerThread.createListOfJointsToIgnore(fullRobotModel, robotModel, robotModel.getSensorInformation());
JointBasics[] jointsToOptimizeFor = HighLevelHumanoidControllerToolbox.computeJointsToOptimizeFor(fullRobotModel, jointsToIgnore);
FloatingJointBasics rootJoint = fullRobotModel.getRootJoint();
ReferenceFrame centerOfMassFrame = referenceFrames.getCenterOfMassFrame();
WalkingControllerParameters walkingControllerParameters = robotModel.getWalkingControllerParameters();
MomentumOptimizationSettings momentumOptimizationSettings = walkingControllerParameters.getMomentumOptimizationSettings();
WholeBodyControlCoreToolbox toolbox = new WholeBodyControlCoreToolbox(controlDT, gravityZ, rootJoint, jointsToOptimizeFor, centerOfMassFrame,
momentumOptimizationSettings, yoGraphicsListRegistry, walkingControllerRegistry);
toolbox.setupForInverseDynamicsSolver(contactableBodies);
JointPrivilegedConfigurationParameters jointPrivilegedConfigurationParameters = walkingControllerParameters.getJointPrivilegedConfigurationParameters();
toolbox.setJointPrivilegedConfigurationParameters(jointPrivilegedConfigurationParameters);
FeedbackControlCommandList template = managerFactory.createFeedbackControlTemplate();
controllerOutput = new JointDesiredOutputList(fullRobotModel.getControllableOneDoFJoints());
controllerCore = new WholeBodyControllerCore(toolbox, template, controllerOutput, walkingControllerRegistry);
}