public ValkyrieSliderBoard(
      SimulationConstructionSet scs,
      YoVariableRegistry registry,
      DRCRobotModel drcRobotModel,
      ValkyrieSliderBoardType sliderBoardType) {
    selectedJoint =
        new EnumYoVariable<>("selectedJoint", registry, ValkyrieSliderBoardSelectableJoints.class);
    selectedJoint.set(ValkyrieSliderBoardSelectableJoints.RightKneeExtensor);

    final SliderBoardConfigurationManager sliderBoardConfigurationManager =
        new SliderBoardConfigurationManager(scs);

    switch (sliderBoardType) {
      case ON_BOARD_POSITION:
        setupSliderBoardForOnBoardPositionControl(
            registry, drcRobotModel.getGeneralizedRobotModel(), sliderBoardConfigurationManager);

        break;

      case TORQUE_PD_CONTROL:
        setupSliderBoardForForceControl(
            registry, drcRobotModel.getGeneralizedRobotModel(), sliderBoardConfigurationManager);

        break;

      case WALKING:
        new WalkControllerSliderBoard(scs, registry, drcRobotModel);
        setupJoyStickAndTreadmill(registry);
        break;
      case GRAVITY_COMPENSATION:
        new InverseDynamicsJointController.GravityCompensationSliderBoard(
            scs,
            drcRobotModel.createFullRobotModel(),
            registry,
            CommonNames.doIHMCControlRatio.toString(),
            0.0,
            1.0);

        break;
    }

    sliderBoardConfigurationManager.loadConfiguration(selectedJoint.getEnumValue().toString());
  }