@Override
public void start(Stage primaryStage) throws Exception
{
String robotTargetString = getParameters().getNamed().getOrDefault("robotTarget", "REAL_ROBOT");
RobotTarget robotTarget = RobotTarget.valueOf(robotTargetString);
PrintTools.info("-------------------------------------------------------------------");
PrintTools.info(" -------- Loading parameters for RobotTarget: " + robotTarget + " -------");
PrintTools.info("-------------------------------------------------------------------");
ValkyrieRobotModel robotModel = new ValkyrieRobotModel(robotTarget, false, "DEFAULT", null, false, true);
String robotName = robotModel.getSimpleRobotName();
ValkyriePunchMessenger kickAndPunchMessenger = new ValkyriePunchMessenger(robotName, ros2Node);
WalkingControllerParameters walkingControllerParameters = robotModel.getWalkingControllerParameters();
SteppingParameters steppingParameters = walkingControllerParameters.getSteppingParameters();
double footLength = steppingParameters.getFootLength();
double footWidth = steppingParameters.getFootWidth();
ConvexPolygon2D footPolygon = new ConvexPolygon2D();
footPolygon.addVertex(footLength / 2.0, footWidth / 2.0);
footPolygon.addVertex(footLength / 2.0, -footWidth / 2.0);
footPolygon.addVertex(-footLength / 2.0, -footWidth / 2.0);
footPolygon.addVertex(-footLength / 2.0, footWidth / 2.0);
footPolygon.update();
SideDependentList<ConvexPolygon2D> footPolygons = new SideDependentList<>(footPolygon, footPolygon);
ui = new JoystickBasedSteppingMainUI(robotName, primaryStage, ros2Node, robotModel, walkingControllerParameters, null, kickAndPunchMessenger,
kickAndPunchMessenger, footPolygons);
ui.setActiveSecondaryControlOption(SecondaryControlOption.PUNCH);
}