Exemplo n.º 1
0
        public void update()
        {
            int   no_of_cameras = Convert.ToInt32(txtNoOfCameras.Text);
            robot new_rob       = new robot(no_of_cameras, robot.MAPPING_DPSLAM);

            for (int i = 0; i < rob.head.no_of_stereo_cameras; i++)
            {
                new_rob.head.calibration[i] = rob.head.calibration[i];
                new_rob.head.sensormodel[i] = rob.head.sensormodel[i];
            }
            rob = new_rob;

            rob.Name         = txtName.Text;
            rob.TotalMass_kg = Convert.ToSingle(txtTotalMass.Text);
            rob.SetMappingThreads(Convert.ToInt32(txtNoOfThreads.Text));
            rob.BodyWidth_mm              = Convert.ToSingle(txtBodyWidth.Text);
            rob.BodyLength_mm             = Convert.ToSingle(txtBodyLength.Text);
            rob.BodyHeight_mm             = Convert.ToSingle(txtBodyHeight.Text);
            rob.BodyShape                 = cmbBodyShape.SelectedIndex;
            rob.propulsionType            = Convert.ToInt32(cmbPropulsion.SelectedIndex);
            rob.WheelBase_mm              = Convert.ToSingle(txtWheelBase.Text);
            rob.WheelBaseForward_mm       = Convert.ToSingle(txtWheelBaseForward.Text);
            rob.WheelDiameter_mm          = Convert.ToSingle(txtWheelDiameter.Text);
            rob.WheelPositionFeedbackType = Convert.ToInt32(cmbWheelFeedback.SelectedIndex);
            rob.GearRatio                 = Convert.ToInt32(txtGearRatio.Text);
            rob.CountsPerRev              = Convert.ToInt32(txtCountsPerRev.Text);
            rob.MotorNoLoadSpeedRPM       = Convert.ToSingle(txtMotorNoLoadSpeedRPM.Text);
            rob.MotorTorqueKgMm           = Convert.ToSingle(txtMotorTorque.Text);
            for (int i = 0; i < rob.head.no_of_stereo_cameras; i++)
            {
                rob.head.calibration[i].baseline = Convert.ToSingle(txtCameraBaseline.Text);
                rob.head.calibration[i].leftcam.camera_FOV_degrees  = Convert.ToSingle(txtCameraFOV.Text);
                rob.head.calibration[i].rightcam.camera_FOV_degrees = Convert.ToSingle(txtCameraFOV.Text);
                rob.head.calibration[i].positionOrientation.roll    = Convert.ToSingle(txtRollAngle.Text) * (float)Math.PI / 180.0f;
            }
            rob.HeadType    = Convert.ToInt32(cmbHeadType.SelectedIndex);
            rob.HeadSize_mm = Convert.ToSingle(txtHeadSize.Text);
            rob.HeadShape   = Convert.ToInt32(cmbHeadShape.SelectedIndex);
            rob.head.x      = Convert.ToSingle(txtHeadPositionLeft.Text);
            rob.head.y      = Convert.ToSingle(txtHeadPositionForward.Text);
            rob.head.z      = Convert.ToSingle(txtHeadHeightFromGround.Text);
            rob.head.no_of_stereo_cameras = Convert.ToInt32(txtNoOfCameras.Text);
            rob.CameraOrientation         = Convert.ToInt32(cmbCameraOrientation.SelectedIndex);

            rob.LocalGridCellSize_mm           = Convert.ToSingle(txtGridCellDimension.Text);
            rob.LocalGridLevels                = Convert.ToInt32(txtGridLevels.Text);
            rob.LocalGridDimension             = (int)(Convert.ToInt32(txtGridWidth.Text) / rob.LocalGridCellSize_mm);
            rob.LocalGridDimensionVertical     = (int)(Convert.ToInt32(txtGridHeight.Text) / rob.LocalGridCellSize_mm);
            rob.LocalGridInterval_mm           = Convert.ToSingle(txtGridInterval.Text);
            rob.LocalGridMappingRange_mm       = Convert.ToSingle(txtMappingRange.Text);
            rob.LocalGridLocalisationRadius_mm = Convert.ToSingle(txtLocalGridLocalisationRadius.Text);
            rob.SetMotionModelTrialPoses(Convert.ToInt32(txtTrialPoses.Text));
            rob.SetMotionModelCullingThreshold(Convert.ToInt32(txtCullingThreshold.Text));
            rob.EnableScanMatching = chkEnableScanMatching.Checked;
        }