void motion_CalibrationInit(void) { REGISTER_LOG_CLIENT("MOTION"); mtxDefaultSpeeds = OSMutexCreate(DEF_SPEED_MTX_PRIO, &OSLastError); LOG_TEST_OS_ERROR(OSLastError); encoder_SetDist(DEFAULT_ENCODER_DIST); encoder_SetResolution(DEFAULT_LEFT_TICKS_PER_M, DEFAULT_RIGHT_TICKS_PER_M); slippageThreshold = DEFAULT_SLIPPAGE; isSendErrorsEnabled = FALSE; odometrySensorUsed = MOUSE_SENSOR; pid_ConfigKP(motors[ALPHA_DELTA][ALPHA_MOTOR].PIDSys, 3000); pid_ConfigKI(motors[ALPHA_DELTA][ALPHA_MOTOR].PIDSys, 10); pid_ConfigKD(motors[ALPHA_DELTA][ALPHA_MOTOR].PIDSys, 10000); pid_ConfigDPeriod(motors[ALPHA_DELTA][ALPHA_MOTOR].PIDSys, 3); pid_ConfigKP(motors[ALPHA_DELTA][DELTA_MOTOR].PIDSys, 3000); pid_ConfigKI(motors[ALPHA_DELTA][DELTA_MOTOR].PIDSys, 10); pid_ConfigKD(motors[ALPHA_DELTA][DELTA_MOTOR].PIDSys, 5000); pid_ConfigDPeriod(motors[ALPHA_DELTA][DELTA_MOTOR].PIDSys, 3); pid_ConfigKP(motors[LEFT_RIGHT][LEFT_MOTOR].PIDSys, 2500); pid_ConfigKP(motors[LEFT_RIGHT][RIGHT_MOTOR].PIDSys, 2500); //register handlers protocol_SetHandler(M32_WHEEL_PID_TUNING, motion_wheelPIDTuning_handler); protocol_SetHandler(M32_ALPHADELTA_PID_TUNING, motion_alphaDeltaPIDTuning_handler); protocol_SetHandler(M32_ODOMETRY_TUNING, motion_odometryTuning_handler); }
void slippage_Init() { int i; for(i=0; i<MOTOR_PER_TYPE; i++) resetSlippage(i); REGISTER_LOG_CLIENT("SLIPPAGE"); }
void mouse_Init() { int i; uint8 code; REGISTER_LOG_CLIENT("MOUSE SENSOR"); flagCalibStep = OSFlagCreate(0x00, &OSLastError); LOG_TEST_OS_ERROR(OSLastError); ex_PushITHandler(MOUSE1_FAILURE, mouseFailureHandler); ex_PushITHandler(MOUSE2_FAILURE, mouseFailureHandler); mice[0].uart = CHANNEL_UART_MOUSE_1; mice[0].RatioKU = 1.00f; mice[0].RatioKV = 1.00f; mice[0].theta = -0.785997f; mice[0].Delta0 = 1500.0f; mice[0].DeltaA = 0.0f; mice[0].RX0 = -7668.8f; mice[0].RXA = 0.0f; mice[0].RY0 = 10150;//10565.61; mice[0].RYA = 0;//-3044.32*valueVTops/valueSample; mice[1].uart = CHANNEL_UART_MOUSE_2; mice[1].RatioKU = 1.00f; mice[1].RatioKV = 1.00f; mice[1].theta = -0.780678f; mice[1].Delta0 = 1499.5f; mice[1].DeltaA = 0.0f; mice[1].RX0 = -7741.7f; mice[1].RXA = 0.0f; mice[1].RY0 = -10214;//-10819.70; mice[1].RYA = 0;//3127.76*valueVTops/valueSample; corrLR = -6308*valueVTops/valueSample; corrRR = -6301*valueVTops/valueSample; for(i=0; i<MOUSE_NUMBER; i++) { //init mouse uart uart_Init(mice[i].uart, MOUSE_UART_BAUDRATE); //reset mice values mice[i].error = 0; mice[i].calibU = 0; mice[i].calibV = 0; mice[i].nbGoodMessage = 0; mice[i].nbCksmError = 0; mice[i].nbUnkError = 0; mice[i].calibAlpha1 = 0.0f; mice[i].calibAlpha2 = 0.0f; mice[i].calibDelta = 0.0f; mice[i].cosTheta = cosf(mice[i].theta); mice[i].sinTheta = sinf(mice[i].theta); sendCalibParameters(i); } }