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);
}
Example #2
0
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);
	}
}