Go to Post You're not crazy. Eleven is the new seven. - Michael Corsetto [more]
Home
Go Back   Chief Delphi > Competition > Rules/Strategy
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 03-02-2014, 14:53
mickztlin mickztlin is offline
Y_SO_CRIO
FRC #2637
Team Role: Electrical
 
Join Date: Feb 2012
Rookie Year: 2011
Location: Rancho palos verdes
Posts: 26
mickztlin can only hope to improve
Cool Two joystick tank drive vs one stick arcade drive

I understand that for driving tank drive you can set one joystick to both sides of the drive train, or have two joysticks set to each side of the drive train. In all previous years we have chosen one joystick for drive train but it seems like two would give back more accurate control. So my question is, what is everyones elses opinion on this?
__________________
To the victors go the swarf!
  #2   Spotlight this post!  
Unread 03-02-2014, 14:57
wilful's Avatar
wilful wilful is offline
766 Alum & 4212 Mentor
FRC #4212 (TechnoFerrets)
Team Role: Mentor
 
Join Date: Jan 2009
Rookie Year: 2009
Location: Planet Earth
Posts: 69
wilful will become famous soon enough
Re: Two joystick tank drive vs one stick arcade drive

It is really best for each driver to figure out which setup they like best.

Personally, I like two joysticks on a game controller, but in 2011 the driver preferred arcade on a game controller while the driver for 2012 and 2013 preferred a setup using two full joysticks.
__________________
Wilful
2009-2013 Student, FRC 766
2013-Present College Student and Mentor, FRC 4212
  #3   Spotlight this post!  
Unread 03-02-2014, 14:58
FilthyArgonian's Avatar
FilthyArgonian FilthyArgonian is offline
Registered User
AKA: John Gallagher
FRC #1086 (Blue Cheese)
Team Role: CAD
 
Join Date: Mar 2012
Rookie Year: 2011
Location: Glen Allen, Virginia
Posts: 40
FilthyArgonian is an unknown quantity at this point
Re: Two joystick tank drive vs one stick arcade drive

Two-stick drive seems more intuitive at first, but with a lot of practice, one-stick arcade drive will give the drive greater control of the robot. This only really applies to the standard drive trains as mecanum, octocanum, kiwi, swerve, or any other type of drive will have different options for control style.
  #4   Spotlight this post!  
Unread 03-02-2014, 15:02
AGPapa's Avatar
AGPapa AGPapa is offline
Registered User
AKA: Antonio Papa
FRC #5895
Team Role: Mentor
 
Join Date: Mar 2012
Rookie Year: 2011
Location: Robbinsville, NJ
Posts: 323
AGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond reputeAGPapa has a reputation beyond repute
Re: Two joystick tank drive vs one stick arcade drive

Quote:
Originally Posted by FilthyArgonian View Post
one-stick arcade drive will give the drive greater control of the robot.
Why?
__________________
Team 2590 Student [2011-2014]
Team 5684 Mentor [2015]
Team 5895 Mentor [2016-]
  #5   Spotlight this post!  
Unread 03-02-2014, 15:20
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: Two joystick tank drive vs one stick arcade drive

We have used a mixed style algorithm for the past few years. We currently use the 'CulverDrive' algorithm, derived from the 'Cheesy Drive' algorithm published by the Cheesy Poofs. In both cases, there is a 'throttle' and 'wheel' (steering) input which is mixed in software to a left and right command. The Arcade algorithm does something similar, in a very mathematically simplified way.

We then split the mixed algorithm between the two sticks, so the X axis is on one stick and the Y axis is on the other stick. This separates the driving from the steering, allowing the driver to more finely control both (specifically, it prevents quick changes in throttle control from bumping the steering control, and vice-versa). The driver can maintain a steering command and modify the throttle command easily as they are detached.

You can do the same with the Arcade algorithm by mapping the X input to the X axis of one stick, and the Y input to the Y axis of the other stick.

We use Logitech F310 gamepads, as we were not impressed by the quality of the xbox gamepads (specifically, they do not return to the same center very well compared to the Logitech gamepads). Our drivers also prefer the circular stick boundaries of the F310 vs the octagonal boundary of the xbox, and we coded in assumptions of a circular boundary for the CulverDrive.

We found, after much testing, that the two-stick tank drive resulted in 'trinary' (3-position, almost binary) motions. The driver would usually only put each stick in 3 positions: +1, 0, -1. Both sticks would be full forward, and to turn, the inner wheel stick would go to either 0 (driver removes thumb from stick) or -1 (driver does a full reverse spin turn). We tried to fix this on our 2011 robot using an 'arc control' code that would adjust the inner wheel transfer function (so a 0 on the inner wheel would become a +0.4 or so), but this was an intermediate measure as the driver was trained on two-stick tank and we could not switch to a mixed control setup until the next season.

With the separated throttle/wheel, the driver still drives with a trinary throttle, but can now finely control the wheel input independently to gracefully turn. The algorithm also tries to maintain a constant radius turn for a given wheel input independent of throttle (we can adjust this as one of the calibratable 'feel' parameters)


IMHO, if the driver is not already trained, you should not let the driver pick. We initially did this and most drivers picked the tank drive because they were familiar with the robot mechanics and it made sense to them (there was no 'magic software'). However, with practice, all of our drivers who have tried it have adopted our 'CulverDrive', and the Halo/Cheesy style drives as well. We believe it's WAY easier for a driver to control a high speed FRC robot well with a mixed control, YMMV.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
  #6   Spotlight this post!  
Unread 03-02-2014, 15:27
JohnFogarty's Avatar
JohnFogarty JohnFogarty is offline
Trapped under a pile of MECANUMS :P
AKA: @doctorfogarty
FTC #11444 (Garnet Squadron) & FRC#1102 (M'Aiken Magic)
Team Role: Mentor
 
Join Date: Aug 2009
Rookie Year: 2006
Location: SC
Posts: 1,577
JohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond reputeJohnFogarty has a reputation beyond repute
Re: Two joystick tank drive vs one stick arcade drive

Quote:
Originally Posted by apalrd View Post
We have used a mixed style algorithm for the past few years. We currently use the 'CulverDrive' algorithm, derived from the 'Cheesy Drive' algorithm published by the Cheesy Poofs. In both cases, there is a 'throttle' and 'wheel' (steering) input which is mixed in software to a left and right command. The Arcade algorithm does something similar, in a very mathematically simplified way.

We then split the mixed algorithm between the two sticks, so the X axis is on one stick and the Y axis is on the other stick. This separates the driving from the steering, allowing the driver to more finely control both (specifically, it prevents quick changes in throttle control from bumping the steering control, and vice-versa). The driver can maintain a steering command and modify the throttle command easily as they are detached.

You can do the same with the Arcade algorithm by mapping the X input to the X axis of one stick, and the Y input to the Y axis of the other stick.

We use Logitech F310 gamepads, as we were not impressed by the quality of the xbox gamepads (specifically, they do not return to the same center very well compared to the Logitech gamepads). Our drivers also prefer the circular stick boundaries of the F310 vs the octagonal boundary of the xbox, and we coded in assumptions of a circular boundary for the CulverDrive.

We found, after much testing, that the two-stick tank drive resulted in 'trinary' (3-position, almost binary) motions. The driver would usually only put each stick in 3 positions: +1, 0, -1. Both sticks would be full forward, and to turn, the inner wheel stick would go to either 0 (driver removes thumb from stick) or -1 (driver does a full reverse spin turn). We tried to fix this on our 2011 robot using an 'arc control' code that would adjust the inner wheel transfer function (so a 0 on the inner wheel would become a +0.4 or so), but this was an intermediate measure as the driver was trained on two-stick tank and we could not switch to a mixed control setup until the next season.

With the separated throttle/wheel, the driver still drives with a trinary throttle, but can now finely control the wheel input independently to gracefully turn. The algorithm also tries to maintain a constant radius turn for a given wheel input independent of throttle (we can adjust this as one of the calibratable 'feel' parameters)


IMHO, if the driver is not already trained, you should not let the driver pick. We initially did this and most drivers picked the tank drive because they were familiar with the robot mechanics and it made sense to them (there was no 'magic software'). However, with practice, all of our drivers who have tried it have adopted our 'CulverDrive', and the Halo/Cheesy style drives as well. We believe it's WAY easier for a driver to control a high speed FRC robot well with a mixed control, YMMV.
That is really interesting. I'm surprised I haven't looked this up by now. With my old team (1102) I used tank drive because it was more simple to code and also everyone seemed to prefer it because of it's native logic.

Working with my new team and new mentors it was suggested to me to work on coding something very similar to cheesy-drive. I personally love it. The control is much better than anything I drove as a student before. I'm going to have to look up the cheesy drive to see how different it is from the code I've written.
__________________
John Fogarty
2010 FTC World Championship Winner & 2013-2014 FRC Orlando Regional Winner
Mentor FRC Team 1102 M'Aiken Magic
"Head Bot Coach" FTC Team 11444 Garnet Squadron
Former Student & Mentor FLL 1102, FTC 1102 & FTC 3864, FRC 1772, FRC 5632
2013 FTC World Championship Guest Speaker
  #7   Spotlight this post!  
Unread 03-02-2014, 15:31
FilthyArgonian's Avatar
FilthyArgonian FilthyArgonian is offline
Registered User
AKA: John Gallagher
FRC #1086 (Blue Cheese)
Team Role: CAD
 
Join Date: Mar 2012
Rookie Year: 2011
Location: Glen Allen, Virginia
Posts: 40
FilthyArgonian is an unknown quantity at this point
Re: Two joystick tank drive vs one stick arcade drive

when you use two stick tank drive the value from your joysticks might not be identical when you want them to be (due to human error or joystick inaccuracy), it can cause your robot to turn to one side or do things you might not expect.
  #8   Spotlight this post!  
Unread 03-02-2014, 15:45
FilthyArgonian's Avatar
FilthyArgonian FilthyArgonian is offline
Registered User
AKA: John Gallagher
FRC #1086 (Blue Cheese)
Team Role: CAD
 
Join Date: Mar 2012
Rookie Year: 2011
Location: Glen Allen, Virginia
Posts: 40
FilthyArgonian is an unknown quantity at this point
Re: Two joystick tank drive vs one stick arcade drive

Quote:
Originally Posted by FilthyArgonian View Post
when you use two stick tank drive the value from your joysticks might not be identical when you want them to be (due to human error or joystick inaccuracy), it can cause your robot to turn to one side or do things you might not expect.
Of course, this is assuming that by two stick tank drive you mean one joystick controls the left half of your drivetrain and another joystick controls the right half.
  #9   Spotlight this post!  
Unread 03-02-2014, 15:48
AllenGregoryIV's Avatar
AllenGregoryIV AllenGregoryIV is offline
Engineering Coach
AKA: Allen "JAG" Gregory
FRC #3847 (Spectrum)
Team Role: Coach
 
Join Date: Jul 2008
Rookie Year: 2003
Location: Texas
Posts: 2,557
AllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond reputeAllenGregoryIV has a reputation beyond repute
Send a message via AIM to AllenGregoryIV
Re: Two joystick tank drive vs one stick arcade drive

Anyone that can figure out how to get some variant of Cheesy Drive/Halo Drive working and have their drivers trained with it should do it. We switched to it last year and we will never go back. You'll see a much more smooth motion from your robot once your driver stops trying to turn in place all the time. Even a poorly tuned version of cheesy drive just looks better and can arc around corners much easier. I know some drivers who can get similar motions out of a tank drive robot but it is far more difficult in my opinion.

Also I highly recommend avoiding single stick arcade, since it will make your driver prone to unintentionally arcing the robot because it's hard to keep the stick perfectly straight.
__________________

Team 647 | Cyber Wolf Corps | Alumni | 2003-2006 | Shoemaker HS
Team 2587 | DiscoBots | Mentor | 2008-2011 | Rice University / Houston Food Bank
Team 3847 | Spectrum | Coach | 2012-20... | St Agnes Academy
LRI | Alamo Regional | 2014-20...
"Competition has been shown to be useful up to a certain point and no further, but cooperation, which is the thing we must strive for today, begins where competition leaves off." - Franklin D. Roosevelt
  #10   Spotlight this post!  
Unread 03-02-2014, 15:51
FilthyArgonian's Avatar
FilthyArgonian FilthyArgonian is offline
Registered User
AKA: John Gallagher
FRC #1086 (Blue Cheese)
Team Role: CAD
 
Join Date: Mar 2012
Rookie Year: 2011
Location: Glen Allen, Virginia
Posts: 40
FilthyArgonian is an unknown quantity at this point
Re: Two joystick tank drive vs one stick arcade drive

Quote:
Originally Posted by AllenGregoryIV View Post
Anyone that can figure out how to get some variant of Cheesy Drive/Halo Drive working and have their drivers trained with it should do it.
I completely agree with this. Halo Drive is my favorite that i have used (though i have extremely limited experience with regards to robot driving) but in a decision between one stick arcade and two stick tank, i think one stick arcade is better.
  #11   Spotlight this post!  
Unread 03-02-2014, 16:24
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,091
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Two joystick tank drive vs one stick arcade drive

Quote:
Originally Posted by apalrd View Post
We then split the mixed algorithm between the two sticks, so the X axis is on one stick and the Y axis is on the other stick.
I'm wondering if Linear Interpolated Arcade, with the joysticks assigned as mentioned above, would provide similarly improved driver control.

http://www.chiefdelphi.com/forums/sh....php?p=1240254

http://www.chiefdelphi.com/forums/sh....php?p=1329493



Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 00:58.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi