/// <summary> /// load a robot design file /// </summary> /// <param name="filename"></param> public void LoadRobot(String filename) { if (rob.Load(filename)) { motionModel motion_model = rob.GetBestMotionModel(); txtName.Text = rob.Name; txtTotalMass.Text = Convert.ToString(rob.TotalMass_kg); txtNoOfThreads.Text = Convert.ToString(rob.GetMappingThreads()); txtBodyWidth.Text = Convert.ToString(rob.BodyWidth_mm); txtBodyLength.Text = Convert.ToString(rob.BodyLength_mm); txtBodyHeight.Text = Convert.ToString(rob.BodyHeight_mm); cmbBodyShape.SelectedIndex = Convert.ToInt32(rob.BodyShape); cmbPropulsion.SelectedIndex = rob.propulsionType; txtWheelBase.Text = Convert.ToString(rob.WheelBase_mm); txtWheelBaseForward.Text = Convert.ToString(rob.WheelBaseForward_mm); txtWheelDiameter.Text = Convert.ToString(rob.WheelDiameter_mm); cmbWheelFeedback.SelectedIndex = rob.WheelPositionFeedbackType; txtGearRatio.Text = Convert.ToString(rob.GearRatio); txtCountsPerRev.Text = Convert.ToString(rob.CountsPerRev); txtMotorNoLoadSpeedRPM.Text = Convert.ToString(rob.MotorNoLoadSpeedRPM); txtMotorTorque.Text = Convert.ToString(rob.MotorTorqueKgMm); txtCameraBaseline.Text = Convert.ToString(rob.head.calibration[0].baseline); txtCameraFOV.Text = Convert.ToString(rob.head.calibration[0].leftcam.camera_FOV_degrees); txtRollAngle.Text = Convert.ToString(rob.head.calibration[0].positionOrientation.roll * 180.0f / (float)Math.PI); cmbHeadType.SelectedIndex = rob.HeadType; txtHeadSize.Text = Convert.ToString(rob.HeadSize_mm); cmbHeadShape.SelectedIndex = rob.HeadShape; txtHeadHeightFromGround.Text = Convert.ToString(rob.head.z); txtHeadPositionLeft.Text = Convert.ToString(rob.head.x); txtHeadPositionForward.Text = Convert.ToString(rob.head.y); txtNoOfCameras.Text = Convert.ToString(rob.head.no_of_stereo_cameras); cmbCameraOrientation.SelectedIndex = rob.CameraOrientation; txtGridLevels.Text = Convert.ToString(rob.LocalGridLevels); txtGridWidth.Text = Convert.ToString(rob.LocalGridDimension * rob.LocalGridCellSize_mm); txtGridHeight.Text = Convert.ToString(rob.LocalGridDimensionVertical * rob.LocalGridCellSize_mm); txtGridCellDimension.Text = Convert.ToString(rob.LocalGridCellSize_mm); txtGridInterval.Text = Convert.ToString(rob.LocalGridInterval_mm); txtMappingRange.Text = Convert.ToString(rob.LocalGridMappingRange_mm); txtLocalGridLocalisationRadius.Text = Convert.ToString(rob.LocalGridLocalisationRadius_mm); txtTrialPoses.Text = Convert.ToString(motion_model.survey_trial_poses); txtCullingThreshold.Text = Convert.ToString(motion_model.cull_threshold); chkEnableScanMatching.Checked = rob.EnableScanMatching; updateSensorModelStatus(); } }