Tank or arcade drive?

Hey everyone, just wondering, for this year’s game, would it be better to have a tank drive, or arcade drive using the joysticks that came in the kit? Our team is trying to figure out which one we should control the robot with and I was thinking maybe tank drive because it might be more intuitive. Any advice?

I know our drivers use arcade drive. They feel it offers them more control.

It’s personal preference. In other words, do hatever your driver(s) want.

By default our bot is Tank, but I have a button to switch to Arcade if you have to reach for a different button or switch and want to continue to drive the robot at the same time.

My personal preference from a performance standpoint is Tank Drive, primarily because precision of movement is allowed more in tank than arcade. I am no programmer, but I presume that Tank Drive is easier to code than arcade. We have used Tank Drive for the last few years, and we have gotten success with it.

As others have said though, it is really up to the drivers. Optimized performance and comfortable environment are generally associated with one another. Ask them and see what they would be more comfortable with.

Call me crazy, but every year I always insist my driver candidates try “Kaj Drive”

It’s similar to Arcade drive, but the Y-axis and X-axis are split respectively onto the left and right thumbsticks on a Logitech Gamepad.

**Left thumb controls forward and reverse.

Right thumb controls rotation.

**
Given how important “driving straight” is when driving up a bridge… you may want to consider this layout over tank. Tank drive is notoriously difficult for driving in straight lines.

I was thinking about doing something like this, just have no idea how to program it. I’m programming in java and currently have it set up to do tank drive but wanted to try out this type of system. How does your team implement this?

ok so the clockwise rotation command would come from the right joystick and the forward command from the left…

Would you just have the motor set at that speed given by the formula you gave?

Also, why are the values divided by 2?

Orginally our drivers asked for Tank. Then after driving around they wanted it switched to arcade because they felt it gave better control. So teleop driver is now arcade.
That being said, our Kinect-enabled autonomous drive is in Tank.

Alright great, probably could have answered that last question if I actually thought about it a little more. :rolleyes:

I’ll get some code set up to test out once we get to competition, I can’t wait to get more driving practice in!

One other question… If the value is divided by two would this limit the robot to only go at half speed at any given time?

You could use the following method

public void arcadeDrive(GenericHID moveStick, final int moveAxis, GenericHID rotateStick, final int rotateAxis, boolean squaredInputs)

Set moveStick and rotateStick to your controller and moveAxis to the y axis of the left stick and rotateAxis to the x axis of the right stick.

The disadvantage of this algorithm is that when Forward Command is 1 and ClockwiseRotationCommand is 0, you only move at half speed.

I’ve attached a quick comparison between Ether’s algorithm, the arcade drive in WPILib (Java and C++, not sure if it’s different in LabVIEW), and the algorithm that we use. (We drive with tank drive in telop, but find that “arcade” is easier to program for in autonomous)

Arcade_Comparison.xlsx (12.5 KB)


Arcade_Comparison.xlsx (12.5 KB)

We called that FPS drive, as the left movement, right rotation layout was immediately familiar from Halo, BF3, CoD, etc. And we implemented it, on a controller, with something like myrobot.arcadedrive(stick1.getrawaxis(KYaxis), stick1.getrawaxis(KZaxis)); synatax is probably wrong though!

Ok I’ll just use the arcade drive method, I had it in my mind that arcade drive was something different for some reason.

Thanks guys. I’m having a bad day today. Caffeine withdrawal.

http://www.chiefdelphi.com/forums/showpost.php?p=1062752&postcount=25

*

arcade diagram & code.pdf (20.9 KB)


arcade diagram & code.pdf (20.9 KB)