wheel movement whille controls at dead center

Two of my wheels are moving while the controls are at dead center I have a holonomic mecanum drive with all 4 motors turbo geared why and how can I fix it

What programming language are you using? RobotC has some sample programs that show how to set up a “deadband” ensuring that small deviations in centering on the joystick doesn’t cause the robot to move.
In sample programs under Remote Control you can find “Mecanum Drive with Deadzone Thresholds” which should help you with this particular problem.

The basic idea is that

if(joystickaxis1>10||joystickaxis2>10||joystickaxis3>10){//|| symbol means OR by the way
normal drive code
}else{
stopDriveMotors();
}

we are using easy c

Griffin is right. You need a dead band. But before that, try calibrating the joystick. Do so often when you have time to make sure the joysticks are returning correct values, because the calibration takes merely a few seconds if you get the hang of it.

My way of doing a dead zone: (not necessarily the most professional way)


int deadZone (int joystick)
{
int deadzone = 20; 

// usually a dead zone of 5 ~ 20 is acceptable, 
depending on your base. 
If your base does not even move at a power of 20, 
which is likely, 
set it to 20 if you're using default motor power mapping.

if (abs(joystick)<deadzone)
{
	return 0;
}
else
{
	return joystick;
}
}

task main ()
{
	while (true)
	{
		motor[port1] = deadZone(vexRT[Ch3]);
		wait1Msec(20);
	}
}

Which means when joystick’s reading is very small, you can’t use it anyway, and it causes drift/power consumption if you send this to motors. That’s why your base makes a high screechy sound when you do not activate motors. So in cases like this, we just forcefully give the motor value 0 rather than the joystick value.

I am redneckrobot’s coach (n5vei). He is using EasyC. It is tending to track slightly to the right and 2 of the wheels are moving when the sticks are dead center.