What do you think is a more efficient way to drive your robot?

I dont like tank because when you start from a stop, you might not press the joysticks at the exact same time so the bot turns a bit and the goes forwards. Arcade guarantees straight driving every single time!
Although it’s fun using tank and making your robot run a rally course, since tank allows for more complex maneuvers.

1 Like

I agree, arcade is very ideal for competitions with simple maneuvers but, tank can be very useful and also fun in certain environments.

1 Like

There was team at my school that made a last minute X-drive during a scrim. It was using the previous seasons tank code and it actually sort of worked :joy:

1 Like

I like tank because i think having control over both sides of the drive makes 180° turning better. I like to think of it as a human brain with two halves, and each stick controls one half of the robot. It’s just my preference, but I think it’s easily better than arcade because turning makes more sense with tank.


RC cars don’t usually use Arcade drive. They use these gun like remotes, with a wheel on it for steering. Imagine using that for driving your robot. It would be very diffucult to move the arm or the intake.

I’ve found tank drive really hard to use. Because I think it’s hard to process the movement of the robot while controlling two aspects at one time.

1 Like

That’s how I think of it. You just have a stick for steering instead of a wheel.

And that’s where preference really comes in. I (and I’m sure many others) find that comes easy.

1 Like

Sorry about that I’m just a really bad driver.

Not so, I also have this same issue, which is why I use arcade. It’s not that you’re bad, you’re just not used to it.

During every season, we use an equation so the output of the joysticks followed a cubic function. This allowed for finer control at lower speeds without using a piecewise function or sacrificing max/min speed. We also experimented with quadratic, and quartic, but our driver liked cubic the best.
For Turning Point we added some more driver assists. The first was slowing down turns when the joysticks were within a certain range. This helped our driver could aim more precisely, without hindering regular point turns. Another assist was equalizing the speed of both sides when the joysticks were within a certain range of each other. That would help drive straight even if the drivers joysticks were not perfectly aligned. Both of these assists were very specific to improving aim during Turning Point game play. You should analyze the current game and see if there are assists the driver would need in certain scenarios. These assists can help drive the robot more efficiently.


That’s a great Idea, I never thought of it. We will definitely use that this year.

Can you share your functions? If you can’t that’s fine lol

1 Like

The functions are just y = x, y = x^2, etc.

1 Like

Our team did the same thing last year and it is a really great way to make it a lot easier on the driver like this game to make the base a little less sensitive so that it is easier to stack cups, make it easier to get in the right position to pick up cubes, etc.

Long story short: easy way to make the game less stressful and difficult.


@shota_irl Sure! I realized after posting that I had oversimplified the actual functions that I used. Since it seems like a lot of people found it useful, so I’ll explain it in greater detail :smile:

Traditionally, you just set the motor equal to the the joystick’s value. This is represented by the dashed red equation y = x (see graph below). In order to get a curve with the following characteristics:

You can use the equation with the form:

In this equation n >= 1, x = unmodified joystick output, and y = requested motor speed. The graph below demonstrates the output of various values of n.


As you can see when n = 1 (blue), it actually results in the traditional output. Also note that they all intersect the points (0, 0) and(127, 127). Please be aware that if you choose an even value for n, the output will be positive even when you push the joystick backwards! You can solve this by multiplying the sign of the raw joystick value and the output of your function. When n is an odd number, the direction of the output will work as expected. Remember there is no correct value of n, and it’s up to the driver’s preferences.

@Gameoa Yes technically you are correct, but each of the functions have a specific constant that they need to be divided by, as you can see from my equation.


Oh yes, forgot to mention that part

It’s also important that for teams with v5, the denominator becomes 100^(n-1)


I’ve used tank drives with H drives in IQ. Just used the buttons to move the H-Drive.

That works too, but then you have less control and a few less buttons to use for other stuff, which for some robots can be important, like for example last season my team used every single button on the controller.

1 Like

We use mtr.move(n) in Pros which takes a number [-127, 127] and applies voltage to the motor. We found voltage control to be much smoother than velocity control during operator control for the drive.