So I am going to be using mecanum wheels for my robot’s drive. I have heard the term “deadzones” thrown around throughout the forums on topics relating to mecanum wheels, and I tried researching what they are, but I’m always confused by them. What are deadzones, and are they necessary for the programming of mecanum wheels?
Deadzones are just basically where you don’t want the drive to respond to the joysticks. Like when you have released the joystick, the value returned may or may not be zero. You want it to be zero if it is close enough, so you create a deadzone. You can see if the joystick value is a certain value away from zero, like 10 or so. Check the mecanum drive source code for an implementation.
Deadzones are simply to adjust for the Joystick not going all the way back to zero. For example, you could put in your code that any joystick value between -10 and 10 would be instead substituted for zero. This keeps your motors from moving at a very small value, like 3 for example, when you aren’t actually trying to send a 3 to your motors.
These are not necessary for Mecanum drive specifically, but they are useful on really just about any drive train.
Another term relating to this you could research would be Joystick Thresholds.
Thanks guys! That makes sense. I think I can very quickly code an implementation of deadzones in my code, and I can see deadzones being useful in reducing the possibility of the motors burning out.
Maybe I’m olde fashioned, but I think a more common term might be “deadband.” It’s the same concept, of course, but maybe you might find more of what you’re looking for on Google if you use deadband rather than deadzone.
A deadzone can also refer to an area ruined by ecological disaster, plague, nuclear meltdown, a section of the audience wiped out by a SkyRise robot falling out of the field, etc.
If you’re programming in RobotC, there is a Sample Program (File → Opwn Sample Programs → Remote Control) that is for mecanum wheels that incorporates a dead zone that is set as a variable, so you can manipulate based on your controller.
The comments in the RobotC program make it simple to understand what is going on.