Drivers Control

This thread is to find out what teams use to drive their robot (1-2 Logitech Joysticks, Xbox controller, Logitech Gamepad, custom controller, wheel, Etc.) and how you use them.
For competitions I also am curious about a steering wheel. In 2013, at the Boston Regional, I saw team 846 use a driving wheel to drive the robot. To ANY team that uses this kind of setup please explain how it works.

My team in 2011 used one Logitech joystick to drive mecanum and another for the arm

in 2012 we used 2 Logitech joysticks for tank drive and a custom controller (basically a box with 10 arcade styles buttons) for shooter/pickup/weight movement

in 2013 we used 2 Logitech joysticks for tank drive and a Logitech game pad for shooter/pickup

As the driver for the past 2 years I am curious about other set ups and controllers that can allow me to control the robot better, faster, more accurate, etc.

Typically for a tank drive, the steering wheel is used for turning. Velocity in the forwards and backwards direction is controlled either with a joystick next to the wheel or buttons on the wheel, or even pedals on the floor.

In other words: Turn wheel, turn robot. Apply throttle, robot moves in the direction it is pointing.

On 1540, we use an xbox controller to drive (tank drive, one joystick per side), and custom-build a control panel to control everything else. That normally consists of switches, buttons, knobs, and an LED display to show how much air pressure we have.

3397 has always used Logitech joysticks.

2010: 1 joystick. Had arcade style turning with a single trigger to active the ball shooter mechanism.

2011: We used two joysticks, one for the drive, arcade style, and one for the arm. It was an elevator, so as we pulled back the joystick, the arm would raise. Push it forward, it would lower.

2012: We also used two joysticks here. One controlled mecanum wheels. It would drive like arcade, but when we needed to crab, we would push the side buttons on top of the controller and it would crab. The other joystick had one button to lift the elevator, and the trigger to start the flywheel and shoot the balls.

2013: We used 3 joysticks. 2 were used to control the tank drive that we had this year, 1 was used for the arm. While it was a rotary arm instead of an elevator, it worked the same way as our 2011 arm. Pull back to lift, push foreword to lower. We had a trigger that would slowly push disks out of our arm, and button to suck them in, and a button to quickly “vomit” them out of our arm. (We did not shoot disks, more details on that, go here.)

Overall, I liked driving our 2012 robot the best, because it was, plain and simple, so much fun. Our most effective drive system was probably when we went with arcade in 2011, but that is just because we were used to it. This was out first year trying tank, so we hope to have a better control system and a bit more practice with the style by the time our next competition (CTTD) comes around.

On a side note: What steering wheels to teams use and where do they get them?

On 3309 this year we used 2 Xbox 360 controllers. The base driver (me) used the controller in a “Halo/Cheesy Drive” control scheme to drive our WCD base. The left stick was throttle and the right stick was turn. We also had some good autocorrect code using a gyro so our robot would actually drive straight. We used the right analog trigger so when it was held we would be in low gear and switch back to high when it was released.
The second driver used his Xbox controller to run the shooter, with buttons for preset speeds. There was also a button which when held would shoot when the wheel was at the right RPM. The right stick was for small turning adjustments (to let him help me line up at the pyramid) and the right stick was for our dumper.

We used a steering wheel for a swerve drive, and I know that bomb squad has done the same in the past.

We had swerve so that the two front wheels would always be at the same angle, and the rear wheels would always be at the same angle.

We had two modes. In the first mode, we had no control over our orientation. We had one joystick that set the direction that robot would travel.

The second mode used a steering wheel and two pedals. The pedals set the robot’s speed. The wheel changed the turning radius. If the point we where were turning around was outside the robot’s frame perimeter, the robot “snaked” and the wheels would go like this
/…/

This would also have the two left wheels drive a little bit faster, as they had to travel a farther distance.

If the point of turning was inside of the robot’s frame perimeter, it would just skid steer turn.

Also, we had two buttons which control “crab mode”, which would add 90 degrees to the wheel angle and caused the robot to go sideways.

This worked for one year for a very strange driver, but the year after, we just went with two joysticks.

Did you guys do the math for this, or develop it empirically?

We did the math. The steering wheel angles were mapped to a turning circle radius. Then, we figured out what the radius for the inner wheels was and the radius for the outer wheels was. We found the ratio of the two radii, set the outer wheels to the speed set by the pedals, and multiplied the pedal speed by the ratio of the inner/outer radius to get the speed for the inner wheels.

It only made a difference for really the tighter turns. It also helped in 09 to maintain traction with the floor.

:slight_smile:

The steering wheel angles were mapped to a turning circle radius.

But you said the front wheels were linked so they have to be at the same angle (also the back). So the inner and outer wheels do not have the same turning radius. So did you use the inner or the outer wheels to determine the angle for the desired radius? Or maybe halfway between?

Yup, we did it halfway in between. This solution isn’t perfect, as the wheels can’t be at exactly the right angle. This caused some funky sliding issues before we wrote code to change the inner/outer wheel speeds. Our thought was that the simplicity that came from a linked swerve was worth this little inefficiency.

We really loved our gamepad + joystick setup this year. The gamepad was used by the driver. Our main driver this year preferred tank drive, I prefer cheesy drive. While I find that cheesy allows most people to perform better, it really depends on your driver. Also we tried xbox controllers last year but we prefer the gamepads because the joysticks are located right next to each other.

The operator controls really can vary year to year. We’ve used a logitech joystick for the past few years because we haven’t needed anything else. Ideally we would have custom buttons for each year, but we don’t have enough manpower to design and build a control board each year. For now, if we ever run into a situation where we need more buttons/joysticks we will likely use an xbox controller/gamepad.

Well… it’s pretty hard to beat this as far as controllers go. It made our robot look about twice as awesome as it really was :smiley: It’s plug & play :stuck_out_tongue:

I’ve only been on my team 2 years, but as the lead programmer, I’ve set up a number of different controls systems for our team to use. We’ve tried the following for driving:

Two logitech joysticks for tank-drive
One logitech joystick arcade style using the x axis(left to right)
One logitech 3D joystick arcade style using the z axis(twist)
One Xbox controller

In addition, we used the throttle lever at the bottom of the joystick to throttle the maximum speed up and down, and we used a side thumb button to invert driving, when the robot was turned around.

The result was that our drivers(and myself) preferred using a the logitech 3D joystick to drive arcade style using the z axis to turn, and we used a second logitech joystick to control various other functions on the robot including our shooter(2012) and our climbing mechanism(2013)

2008: This was before my year, but in 2008, 957 used a steering wheel and two beige kit joysticks. The robot had ackermann steering, so the steering wheel controlled the angle of the front wheels. The joystick controlled the left and right drive motors. It did not work very well… :stuck_out_tongue:

2009: Since we had a crab-drive robot that didn’t work very well, I don’t recall what we used (it may have had 2 modes, but I’m not sure).

2010 and 2011: Standard tank drive with 2 kit joysticks
T-shirt launcher: Also standard tank drive, but the older beige (pre-2009) kit joysticks

2012 and 2013: Mecanum drive with 2 kit joysticks

Here’s the setup we use for mecanum (someone mentioned it in a thread several years ago, but I can’t find it):

Linear motion was controlled by the average position of the two joysticks
Rotation was controlled by the difference in the Y axes of the joysticks

In essence, if you move the joysticks “together” (keep them in identical positions), you get only translational motion. If you move one forward and one backwards (as you would when turning a tank drive robot), you cause the robot to turn.

In 2012, I did some testing to compare this setup with using a single 3-axis (four if you count the throttle) joystick, and found that it gives you more control and precision than a single joystick. With a single joystick, it was easy to mix up the lateral and translational axes and there was limited precision in rotational control.

Starting in 2013, 846 has a been using a steering wheel for turning and a joystick for throttle. We tried out the idea after seeing 971 use a steering wheel setup. Having the turn and throttle components on separate controls allows us to drive straight and turn in place more easily, and it also allows better control of arc turning (turning while driving forwards/backwards).

We found this as the optimal driving scheme after experimenting with several other setups as well:
2011-2012 - Single joystick for forward and turn, forward and back motion for throttle, joystick twist for turn. This made arc turning difficult because both motions were controlled with one hand. Turning in general was also difficult because the twist was more sensitive and turning with the wrist was more difficult to control precisely.
Off-season - We also tried two other setups during off-season, tank drive and vector drive. Tank drive used two joysticks, one to control the left side and one to control the right side. This made the driving feel more natural, but it also made precise control difficult. Driving straight was difficult and precise turning speed was hard to control. Vector drive used the angle of the joystick to specify the direction of the robot and the magnitude to control the speed. The robot would turn automatically to face the angle pointed by the joystick and move forward at that speed. Although this field-centric setup made it easier to go the direction we wanted, it was difficult to control for tight manipulations.

Any chance you could post the model of steering wheel?

We use a Ferrari GT Racing Wheel for our steering wheel. It can be found here: http://www.amazon.com/gp/product/B000U1MU2K/sr=1-1/qid=1357360819/ref=olp_product_details?ie=UTF8&me=&qid=1357360819&seller=&sr=1-1

For the past few year 2994 has used 1 or 2 logitech joysticks depending on if the driver preferred tank or arcade drive and then a logitech gamepad for everything else (this year the mini joysticks for rotating the arm and the buttons for shooting, and last year the same buttons for shooting).

2011- cyborgx joystick arcade drive style on a west coast drive

2010/2012- cyborgx joystick on a mechanum drive also arcade style

2013- xbox controller with an arcade style drive on the a modified kit bot chassis

my favorite was the xbox controller it was a lot more comfortable to drive with and the co-driver also had one controlling the shooter

From what I know, which may not be correct outside of 2012 and 2013:

Main Driver:

  • 2010:
    One Joystick. Either Attack 3 or Attack 3D. Arcade Drive variant where rotation was done through two buttons on top of the joystick (our programmer was new that year :smiley: ).
  • 2011:
    Tank Drive with two Attack 3 Joysticks.
  • 2012:
    Tank Drive with two Attack 3 Joysticks.
  • 2013:
    Tank Drive with two Attack 3 Joysticks (I see a pattern here…)

Driver preference tends to be key. Our drivers have often times preferred tank drive over Arcade/ Kaj Drive because they like the ability to reduce the power going to one wheel independently from the other wheel. For some drivers this is difficult to master, however it works great for precision steering if trained properly.