Joystick Tank Drive vs Controller

My team is trying to decide whether to use what we usually use which is rank drive with two joysticks or a controller. Name some advantages and disadvantages of both.

Honestly, just do what your driver’s comfortable with, whatever that is. I know it’s a non-answer, but what matters most here is what the driver specifically wants.


The advantages and disadvantages arent as important as is finding a setup your driver likes most. Using whatever the driver finds most comfortable will mean they will be able to start driving quicker without having to try and learn whatever system is otherwise given to them that they may not find intuitive.


If your team’s frc number is 4012, this isn’t your first FRC year. I’d just stick with whatever you’ve already been doing since there’s no reason to change it.

In a perfect world, what ever the driver wants so program both. Reality if you don’t have time, xBox is universal so I’d you end up somehow doing a mecanum or swerve maybe after, your driver is going to have some pretty strong experience with the controller. Although I like driving tank with a joystick rather than xBox controller.

The throw, or travel on joysticks is larger and you can generally do more fine control with them. However, Many games it has been beneficial for the driver to be able to move around to see around game elements. Controllers allow that freedom.

I know you’re looking for tank drive feedback, but I honestly think your team will do better using a “split-arcade drive” setup and one gamepad controller (like an Xbox controller).

Split-arcade drive is where you control the forward/reverse with the right stick Y-axis, and the turning with the left stick X-axis. There’s some other variations to this control mapping, but for the sake of simplicity I would start with that.

I think you’ll find that the learning curve is much quicker with this configuration because it mimics what most people are already familiar with in traditional video games. And it also makes driving straight much easier because you’re not trying to constantly match speeds on each side of the robot. I watched some of your match videos across multiple seasons, and it seemed apparent that your drivers were struggling with that.

I’m assuming you’re using Java, so instead of using the tankDrive method, you’ll want to use the arcadeDrive method and assign the “xSpeed” parameter to the right stick Y-axis, and the “zRotation” parameter to the left stick X-axis.,double)

Hope this helps.

I think this is sound advice, but I personally would switch the joysticks if the driver is right-handed. Having forward/reverse on the left stick Y-axis and turning on the right stick X-axis would directly correlate to the controls of video games that I grew up playing (I can’t remember off of the top of my head any games that had forward/reverse on the right joystick).

Ultimately this still boils down to whatever the driver prefers is what the controller mapping should be.

1 Like

Team 1712 created switches on the front pannel that allows us to switch between tank, arcade, and cheesy. personally, for tank drive, I prefer dual joysticks because they have far more accuracy. it all depends on the feel. cheesy drive is similar to split arcade, but the left joystick is the y-axis, and the right joystick is the x-axis. also, to turn in place, you need to press a bumper and move the right joystick. (all on a controller). the cheesy drive is a simple code on java, and there is a downloadable VI for it on labview. the one main downside is it is not practical for an autonomous.

Nothing new here.
We leave it up to the drive team. We can argue one system over another, but if your drive team has a viable preference - go with their choice.

1 Like

Problem with my team was that my lead mentor wanted everyone to drive but this year we compiled a drive team and I’m the main driver. I personally like tank drive with two joysticks, was just curious what others tended to use.

@djp0915 I recommend an FPS layout on a gamepad controller. This layout splits up the robot’s major motions very nicely, is easy to learn, lets the drivers move around behind the glass, and is independent of the driver station (what driver hasn’t felt the station shake from a hit?)

I disagree with this approach. I’ve talked at length about it recently.

I’ve personally always enjoyed what my old team called “Need for Speed” Drive. Named after the method of control used in many need for speed games(or GTA, Dirt, Forza, etc)

It is basically split arcade drive, but uses the left and right triggers for acceleration, and the left joystick for turn. It leaves the right thumb of the driver remain free in case they want to have control of anything else on the robot.

Interestingly, most Tanks do not actually even use Tank drive. It has long been known to be a poor control method in practical usage.


Our driver uses an XBox for tank.

It’s been in LV WPILib for a few years now.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.