private MomentumBasedControllerFactory createDRCControllerFactory(DRCRobotModel robotModel, PacketCommunicator packetCommunicator) { ContactableBodiesFactory contactableBodiesFactory = robotModel.getContactPointParameters().getContactableBodiesFactory(); ArmControllerParameters armControllerParameters = robotModel.getArmControllerParameters(); WalkingControllerParameters walkingControllerParameters = robotModel.getWalkingControllerParameters(); final HighLevelState initialBehavior; CapturePointPlannerParameters capturePointPlannerParameters = robotModel.getCapturePointPlannerParameters(); ICPOptimizationParameters icpOptimizationParameters = robotModel.getICPOptimizationParameters(); initialBehavior = HighLevelState.WALKING; // HERE!! SideDependentList<String> feetContactSensorNames = sensorInformation.getFeetContactSensorNames(); SideDependentList<String> feetForceSensorNames = sensorInformation.getFeetForceSensorNames(); SideDependentList<String> wristForceSensorNames = sensorInformation.getWristForceSensorNames(); MomentumBasedControllerFactory controllerFactory = new MomentumBasedControllerFactory(contactableBodiesFactory, feetForceSensorNames, feetContactSensorNames, wristForceSensorNames, walkingControllerParameters, armControllerParameters, capturePointPlannerParameters, initialBehavior); controllerFactory.createControllerNetworkSubscriber(new PeriodicNonRealtimeThreadScheduler("CapturabilityBasedStatusProducer"), packetCommunicator); controllerFactory.setICPOptimizationControllerParameters(icpOptimizationParameters); // controllerFactory.addHighLevelBehaviorFactory(new JointPositionControllerFactory(true)); if (!USE_GUI) controllerFactory.createComponentBasedFootstepDataMessageGenerator(true, null); return controllerFactory; } }
feetContactSensorNames, wristForceSensorNames, walkingControllerParameters, armControllerParameters, capturePointPlannerParameters, HighLevelState.WALKING); controllerFactory.setICPOptimizationControllerParameters(icpOptimizationParameters);
walkingControllerParameters, armControllerParameters, capturePointPlannerParameters, HighLevelState.WALKING); controllerFactory.attachControllerFailureListeners(controllerFailureListeners); controllerFactory.setICPOptimizationControllerParameters(icpOptimizationParameters); if (setupControllerNetworkSubscriber) controllerFactory.createControllerNetworkSubscriber(new PeriodicNonRealtimeThreadScheduler("CapturabilityBasedStatusProducer"), controllerPacketCommunicator);
feetContactSensorNames, wristForceSensorNames, walkingControllerParameters, armControllerParameters, capturePointPlannerParameters, HighLevelState.WALKING); controllerFactory.setICPOptimizationControllerParameters(icpOptimizationParameters); controllerFactory.setHeadingAndVelocityEvaluationScriptParameters(walkingScriptParameters);
walkingControllerParameters, armControllerParameters, capturePointPlannerParameters, HighLevelState.WALKING); controllerFactory.attachControllerFailureListeners(controllerFailureListeners); controllerFactory.setICPOptimizationControllerParameters(icpOptimizationParameters); if (setupControllerNetworkSubscriber) controllerFactory.createControllerNetworkSubscriber(new PeriodicNonRealtimeThreadScheduler("CapturabilityBasedStatusProducer"), controllerPacketCommunicator);
diagnosticsWhenHangingControllerFactory.setTransitionRequested(true); momentumBasedControllerFactory.addHighLevelBehaviorFactory(diagnosticsWhenHangingControllerFactory); momentumBasedControllerFactory.setICPOptimizationControllerParameters(icpOptimizationParameters);
diagnosticsWhenHangingControllerFactory.setTransitionRequested(true); momentumBasedControllerFactory.addHighLevelBehaviorFactory(diagnosticsWhenHangingControllerFactory); momentumBasedControllerFactory.setICPOptimizationControllerParameters(icpOptimizationParameters);