![]() |
Driving: Tank, Arcade or FPS?
This morning, before our programming mentor arrived, I suggested to some of the students that they see if they could get the robot running by themselves, and play around with it. After a while we got to discussing how to control it, whether to use tank drive, or arcade drive, with a game pad, or a joystick. A couple of them described the typical video game setup, where one joystick on a gamepad is used for turning, the other for forward/back. Something about "first person shooter". Anyways, after a while (and after the programming mentor arrived), they got it figured out, and now have FPS control of the robot...several students tried it, and were quite pleased with how easy it is to drive now.
I wonder, why it took us so long to figure this out? :o |
Re: Driving: Tank, Arcade or FPS?
Cheesy Drive is based off of this. Ask 254 for more info :-)
|
Re: Driving: Tank, Arcade or FPS?
We refer to this as split arcade drive, and absolulty love it. Once you try it you'll never go back. We use it exclusively when we use skid steer drivetrains.
|
Re: Driving: Tank, Arcade or FPS?
It's really a driver preference thing. I've always preferred tank, but I know other drivers prefer different setups.
|
Re: Driving: Tank, Arcade or FPS?
Anyone have experience with GTA style?
|
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
It would be button inputs dictate direction freeing up the full range of a joystick to setting the percent or throttle |
Re: Driving: Tank, Arcade or FPS?
Quote:
e.g : while ButtonX is pushed bot rotates at rateX? push and release ButtonX, bot rotates at rateX until another button is pushed? push and release ButtonX, bot rotates Xdegrees from where it was? push and release ButtonX, bot rotates to field-oriented headingX? etc etc etc |
Re: Driving: Tank, Arcade or FPS?
Quote:
eh ill just include an image. ![]() |
Re: Driving: Tank, Arcade or FPS?
I think we're going with a simple tank drive using the now pointless omni wheels and using an Xbox controller. Anyone else think that this will be the first year mecanums will be on Einstein? I feel like good maneuverability is one of the main keys to being successful in this years game.
|
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Now that I am not doing a billion things at once I will go over more in depth what I am talking about.
So generally speaking video game developers sink a lot of time into control systems when they make a game. When playing a game the controls should be either engaging and fun to use (like in the case of the original Wii it was supposed to be fun and involving to do those motion things) or to make it feel like there is no controller you are just plugged directly into the character you have. When you have a poor control system in a video game it really shows. When moving if you get stuck on objects its frustrating. When the inputs are delayed you feel sluggish and clumsy. When the control system is your enemy the game isn't difficult because its challenging its because the game is not responding the way you want it. That is where GTA drive tackles a number of issues, the original GTA's were 2D top down so they don't count and can go away in this discussion. But as soon as GTA went 3D it faced this wall of problems. With top down games your vision is done for you and it moves with the character so you don't need any controller input. When you move to 3D there is no way to have a character see in a 3rd person perspective and still see the entire world. It is just not possible, that being said this forces one of the vision controls onto the joysticks (keeping in mind most console controllers have 2 joysticks*). With only one joystick remaining lets look at the other tasks that need to be accomplished in order to fully control your character in a 3D environment. Now that we can see the world we can navigate through it. Most navigation is done with the other Joystick on a controller because it provides movement in all directions, its a simple obvious solution. But that is if you are controlling something that can move in all directions. Remember grand theft auto is done in cars a lot... That is the Auto part, in this aspect you don't actually need to move left or right because most cars don't strafe, instead you need to turn in a car. This makes putting movement on one joystick detrimental because of the zones of control on the joystick. When a joystick is in its neutral state most games treat it as dead. This means you get no input. The cardinal directions are just as simple you are either moving forward or backward, or in a position where you are turning. It is the diagonals that get sketchy. Since you are limited to a circle on most joysticks when combining forward and left you get these fuzzy zones where you can only move so fast while turning. This isn't actually ideal because this ties the speed and turning together in a way where you lose a lot of control. To tackle this issue (and make it feel more like driving a car) the developers of GTA said "Well what if when driving a car instead of having to push forward to drive forward and backwards to drive backwards we switched those to buttons." That is the basis of GTA drive that you have one button for forward and one button for backwards and now your speed and your turning are never tied together. Since it is also supposed to emulate driving it is more like that because the button for forward and backwards is used to accelerate to desired speed but I digress. Translating GTA drive to robotics we can start off with the same thing. Take a standard kitbot, and on the controller have one button be forward and one button be backwards. So if we take the left joystick and make it at its neutral state make the robot go (when pressed with a forward or backward button) at a set speed of say 50% of its total. As you tilt the stick forward you slowly increase the speed until you are at 100% and when you tilt it back you decrease the speed. The difference between this and movement being on one stick is that controllers are really limited on inputs. When you take only the forward tilt on a joystick as forward and backwards as backwards you only have a small area to define your speed**. With GTA drive in theory you have a larger area for controlling speed. * yes I know the N64 had one joystick but were talking about good controller design ** There is a work around to that but I don't want to ruin the surprise yet |
Re: Driving: Tank, Arcade or FPS?
Our team is trying the tank drive this year instead of the single joystick. So far it is working out great!
|
Re: Driving: Tank, Arcade or FPS?
As a (relatively) old-school driver I liked single-stick arcade control for FRC robots. This typically works best with a real gimbal'd joystick, where the driver can 'feel' center on the stick. Most common joysticks are not gimbal and thus lose a lot of the 'on-center' feeling that makes this control scheme beloved by many.
In recent years we've used game pads with single-stick arcade that I found easy to drive, and I liked it a lot. This takes some modest drive transforms to fine-tune to the driver's taste, but nothing complex. These transforms help address the 'on center' feeling and let the robot drive forward even if the thumb-stick is off-centered slightly. I've got an RC car with 'dual stick' arcade that I like to drive and find very easy to control. The divorced axes for f/r and l/r are really nice and lets one send precisely the inputs they want. I have raced a lot of Forza (car simulation game) which uses one thumb-stick for turning and two triggers for throttle/brake (forward/reverse on a robot) and like that too. The f/r and l/r axes are divorced, which is nice, and the forward/reverse axes are also divorced. For the extra-fine control required for a semi-realistic car sim it is great to be able to apply both the throttle and the brake, and I imagine it would work well for an FRC robot as well, but perhaps only marginally better than 'dual stick' arcade. I absolutely cannot stand 'tank drive' where two joysticks are used. It forces the driver to do the drive 'math' in their head, something a computer is MUCH better suited to do. I never felt that it was intuitive, fluid, or an efficient use of controllers. I know some people/teams have been successful with it, but I can only imagine how much more successful they could have been with any of the controls described above. |
Re: Driving: Tank, Arcade or FPS?
The FPS configuration is the same as a traditional RC car controller, but instead of a trigger for the throttle and a steering wheel, it uses the right joystick Y axis for throttle, and left joystick X axis for steering.
Which makes it even stranger that we never figured this out, because we used an RC car controller to drive our robot in 2008 and 09. |
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
My personal favorite way to drive a tank drivetrain is to use 2 single axis joysticks for tank drive control scheme. The removal of the degrees of freedom of the joysticks allows you way better feedback and control. This is because if you are off straight on a double-axis joystick, your hands will feel a different travel distance than the controls are being sent.
|
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
Two-stick tank drive is like drawing with an etch-a-sketch and single-stick arcade is like drawing with a pencil; yeah, the etch-a-sketch can sometimes make a good approximation of a pencil drawing, but it's never going to be quite as good. |
Re: Driving: Tank, Arcade or FPS?
RC Car Drive:
Left thumb Y axis gets mapped to ArcadeDrive forward-backward Right thumb X axis gets mapped to ArcadeDrive turning ![]() This drive control scheme is the only scheme that has been used by any of the teams I have been on, from 2007 to 2015. It gives the driver an absolutely guaranteed way of driving straight forward and back, and no other drive scheme mentioned here comes close. It also allows the driver to turn on a dime, with no forward-to-backward movement if none is required - useful when you don't have that much room. One thing my team noticed in 2012 was that teams who used two-stick tank or one-stick arcade drive were struggling to balance the bridge. Thinking about it, it makes sense - when you are trying to drive slowly forward or backward with one of those drives, you may end up inadvertently turning. This thread really should be a poll - I think RC car drive is actually a very popular drive (and is also by far my favorite! :D) With mecanum and slide and swerve drive, different drive schemes have to be used. I would probably recommend the First-Person Shooter drive, using the free axis of the forward-backward stick to strafe. |
Re: Driving: Tank, Arcade or FPS?
In FTC and VEX land we run split arcade but for holonomic drives, to keep the driving controls mostly the same regardless of drive system, we add a fairly large deadband on the LH joystick X value so Y being forward/backward is "preferred" and left/right movement is available when required plus RH joystick X value for rotate allows for some fun driving.
This scheme in action: http://www.youtube.com/watch?v=ClGWg43TtCI Might be handy since it's looking like FRC will have many holonomic drives this season. |
Re: Driving: Tank, Arcade or FPS?
Quote:
But less anecdotally . . . look at guitar-playing: the non-dominant hand is doing at least equal dexterity tasks, probably moreso. Practice and muscle memory can remove that weakness from that activity. |
Re: Driving: Tank, Arcade or FPS?
Quote:
Frankly, even FPS style control won't be guaranteed to drive perfectly straight without closed-loop control due to variances in motor torque and drivetrain drag. And when closed-loop control is in the mix, almost anything can manage to reliably drive straight. It is a horrific and sweeping generalization to say that: "teams who used two-stick tank or one-stick arcade drive were struggling to balance the bridge." Your conclusion that their control system was holding them back is simply false. Now, I'm not saying "FPS" drive is bad, it certainly is a great drive control scheme, but don't undercut your own argument by making such rash statements. Quote:
Still, how can a two-stick system drive straight at part-throttle? This is VERY difficult to do. Consider this thread from last year: http://www.chiefdelphi.com/forums/sh...d.php?t=125759 Team 33 found that all drivers wound up preferring FPS-style control to two-stick tank and found it "way easier" to control their robot(s). |
Re: Driving: Tank, Arcade or FPS?
This is an interesting system. I will suggest it to our programmer this afternoon and possibly start driving it around tonight! We normally use two stick tank drive. Something we will still do is to actually have two joysticks rather than just a gamepad. We found that when our drivers use a gamepad, they think of the robot as a warthog from Halo and just use full power all the time rather than slow careful movements when it's needed.
|
Re: Driving: Tank, Arcade or FPS?
Quote:
Who knows...it might even end up as part of the WPI library. |
Re: Driving: Tank, Arcade or FPS?
Quote:
Regarding "FPS Drive", I think the name is actually good for describing a drive that allows strafing - many FPSes (Halo, etc.) allow you to strafe using the left joystick (same one for going forward and backward). "RC Car Drive" could also be considered a bad name for the control scheme, because real RC cars are not tank drive and can't turn on a dime. Regarding the rest of your post, I am glad we agree that it is very important to have a foolproof way of going straight forward and backward. I am very curious about everyone's opinion about what drive control schemes perform the best, or if it matters at all. I think that your chosen scheme does impact your performance, but not as much as driver skill and practice. And yes, one of my statements up there could be considered a "horrific and sweeping generalization". I was considering removing it, but I'll leave it there for now. This was my first controversial post on CD!! :ahh: |
Re: Driving: Tank, Arcade or FPS?
Running octocanum this year, and because of the driver (I don't know why, he just likes it and it seems to work well) the traction wheels will be controlled via tank, however the mecanum drive will be a sort of split arcade where one joystick is f/b/l/r and one joystick is purely turning. Kind of a weird setup, but he likes it and it seems to work.
|
Re: Driving: Tank, Arcade or FPS?
I used to prefer 2-joystick tank drive to regular arcade, but after trying split-arcade, it's my new favorite. Very intuitive, especially for anyone who has played video games.
IMHO the terms "split-arcade" and "FPS" control modes are not interchangeable terms for the same thing. Split-arcade is for skid-steer robots, as it cannot handle strafing of any kind. FPS can only be used on swerve/mecanum/holonomic robots where the left joystick is full X-Y translation and the right joystick is rotation. |
Re: Driving: Tank, Arcade or FPS?
Question for those teams using XY on one Joystick and rotation on the other: do you use the left or the right joystick for XY? |
Re: Driving: Tank, Arcade or FPS?
Quote:
I have no question that 2-stick tank requires finesse; but from running driver training with RC controls, I know that that is not a unique situation. If people find something that they like, more power to them. I haven't discounted any method of control. |
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Here was 2220's progression (with skid steer robots):
2012: Joystick tank drive 2013: Controller-based tank drive 2014: Controller - based FPS drive Whatever paradigm of control you use (tank, arcade, FPS), for a lot of kids (at least in my experience), a controller is most intuitive. And FPS is almost always most intuitive from a controller. At least in my experience/opinion. Personally I'd shy away from telling the driver how they'll be controlling the robot |
Re: Driving: Tank, Arcade or FPS?
Quote:
I am a big forza fan and other fps games. Forza drives with the triggers controlling forward and brake and reverse. Left is reverse/break, and right is forward. The left joystick controls turning and the right stick is generally not used much, because if you are doing manual transmission you must use x and b for shifting. In Halo it is pretty much the same with the right stick being used to control where u look. I personally am going to drive with an xbox controller if the proggramers will let me. (We have no previous experience with one) I would like to merge both forza and halo and us the two triggers to drive and control speed. (Forward and reverse are only on the triggers) and then use the left stick for turning. Then the right joystick would be used to control all driving. (Forward, backwards, turn left, turn right) When used though the robot would only run at 25-50% speed, while all other drive controls are then not used during that time. The low speed would allow for fine movements without worry of over correcting or accelerating too fast when you are in a crammed place. |
Re: Driving: Tank, Arcade or FPS?
Quote:
|
On a semi related note does anyone have experience with creating there own controllers or joysticks if you could sling me a PM that'd be swell
|
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
Personally, when driving robots in 3rd-person, (SeaPerch, FTC, FTC, QuadCopters, and even a R/C fork lift), I find it far more intuitive to do the 0-radius turns and the forward/reverse via 'tank drive'. I also know that not every turn is 0-radius, particularly in warehouse operations where 0-radius means a large movement of the load at the extremes of the robot. In these situations, I can most definitely maintain finer direct tank control over the object than any software (that isn't fully autonomous with 3D sensing capability) under two conditions: (1)the inputs are scaled to 'S' curves rather than linear (2) I can maintain visual contact with the vehicle and the objects around it. QuadCopters, of course, are a bit trickier since there are a variety of types of flight control available and usually full autonomous is almost always preferred. Yet this isn't an argument for/against tank drive - but rather an anecdote that each driver will have preferences after trying the different styles. Hopefully the software team isn't force-feeding something to the driver, but rather letting multiple potential drivers try out the different modes. *Come to think of it, I could probably write a joystick emulator that converted 2-joystick 'Tank' to Descent's 1-joystick 'Arcade' to see what how the experience changes. |
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
However, there is one maneuver that the two-stick tank drive makes easy that I haven't found a good way to replicate on the FPS drive -- the "pivot turn." For two-stick "tank drive" on a skid steer, the "pivot turn" is easy to execute -- to pivot about the left side of the robot, move just the right stick; to pivot about the right side of the robot, move just the left stick. We haven't found a good way to get this motion using an FPS, as such a motion requires a coordinated synchronization of the forward/back stick and the rotation stick. Any teams have some good suggestions on how to do "pivot turns" with an FPS control approach? Essentially, this is the complementary problem to that of a two-stick tank drive having trouble making arcing turns (or, to a lesser extent, driving straight at low power settings). Back when we used two-stick tank controls for a skid-steer robot, we solved the "drive straight" problem by having a "trigger" on one of the sticks be a "drive straight override" -- in that case, only the stick with the trigger held is used to determine robot speed, and both sides of the robot were given the same motor commands to "drive straight." In any case, why do I ask about doing "pivot turns" with an FPS control approach? Well, we used "Speed Racer Drive" (FPS) on our robot last year, but have found that the "pivot turn" maneuver is often helpful for lining up on totes. Getting the robot to gently do a "pivot turn" is very hard for FPS, but would be pretty easy for a two-stick tank. (So, yes, we're considering switching back for this year, due to the usefulness of the "pivot turn" when aligning against a tote.) |
Re: Driving: Tank, Arcade or FPS?
can you just add a couple buttons for that? The gamepad has lots of buttons. you don't need speed control, just make one pair of buttons turn the right motors at a slow speed forward or back, and another pair turn the left motors at a slow speed forward or back.
But I'm not a programmer, so I don't know how difficult that is to actually implement. |
Re: Driving: Tank, Arcade or FPS?
Ken,
This is the first, and so far only, substantive argument I've heard in favor of two-stick tank drive. Congratulations! For that maneuver, the one-side pivot, I would suggest setting the right and left bumper buttons on a controller to disable all output to one drive-train side, or prevent any reverse movement on one drive-train side (obviously correlated to the button's side). This should be trivially easy to implement in code and result in the control scheme that you desire. In 2012 we used a similar type of control to align to the bridge, except instead of controller buttons we used two limit switches on our bridge-lowering mechanism to turn off one, or the other, drives. |
Re: Driving: Tank, Arcade or FPS?
Quote:
|
Re: Driving: Tank, Arcade or FPS?
Quote:
We are going with H-Drive this year, so our controls are as follows: Left Thumbstick = forward, back, strafe L/R Right Thumbstick: Left = turn left, Right = turn right Directional buttons = precise directional movements (50% speed of Left Thumbstick) This is an entirely different world than what I'm accustomed to (back when I drove a long time ago, using joysticks instead of videogame controllers), but the kids seem to work well with it, so that's all that matters to me. |
Re: Driving: Tank, Arcade or FPS?
Quote:
Why do you (apparently) think that the change in control scheme resulted in more wins? |
| All times are GMT -5. The time now is 22:21. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi