Log in

View Full Version : Tank or arcade drive?


swwrobotics
18-02-2012, 15:42
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?

rzoeller
18-02-2012, 15:54
I know our drivers use arcade drive. They feel it offers them more control.

Ether
18-02-2012, 17:10
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?

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

gixxy
19-02-2012, 14:33
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.

delsaner
19-02-2012, 16:12
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.

Mr. Lim
19-02-2012, 16:44
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.

touchdownjesus4
23-02-2012, 18:10
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?

touchdownjesus4
23-02-2012, 18:43
left_wheels = (ForwardCommand + ClockwiseRotationCommand)/2

right_wheels = (ForwardCommand - ClockwiseRotationCommand)/2


ForwardCommand and ClockwiseRotationCommand are -1 to +1.




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?

rachelholladay
23-02-2012, 19:28
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.

touchdownjesus4
23-02-2012, 19:30
correct



left_wheels get set to (ForwardCommand + ClockwiseRotationCommand)/2

right_wheels get set to (ForwardCommand - ClockwiseRotationCommand)/2



So they stay within the range -1 to +1





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?

Joe Ross
23-02-2012, 19:36
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?

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.

left_wheels = (ForwardCommand + ClockwiseRotationCommand)/2

right_wheels = (ForwardCommand - ClockwiseRotationCommand)/2


ForwardCommand and ClockwiseRotationCommand are -1 to +1.




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)

Dusk Star
23-02-2012, 20:05
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!

touchdownjesus4
23-02-2012, 20:49
Ok I'll just use the arcade drive method, I had it in my mind that arcade drive was something different for some reason.

Ether
23-02-2012, 22:32
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?

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

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

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