Joysticks with circular motion

We are using our joystick to control our turret. However, like most joysticks manufactured today, the joystick has a square restrictor that forces a square motion. Short of opening the joystick and machining a restrictor to allow only circular motion, is there another joystick currently on the market that is set up this way for USB and is a reasonable price?

The square motion causes issues with aiming the turret - when you are in one of the corners you have fine control and your amplitude is larger. When you are in either the x or y axis, however, the turret is more sensitive because your distance from center is smaller and a change creates a larger actual angle change (we convert the joystick to polar coordinates).

We really don’t have time to change what we have, but perhaps we can be ready for next season.

May I ask why you need two joystick axes for turret control?

For example, our turret is controlled solely by the X axis of the operator’s joystick. Alternatively, you could use a stick with a yaw axis (Z or twist).

Because we have our joystick set up to handle the turret similar to how crab is programmed - push in a direction and the turret turns to that direction.

Do you need magnitude from the stick, or just direction? In the latter case you could use a continuous pot or encoder with a knob.

We started out with that as one of our designs. However, we like to simplify the controls system as much as possible, and the joystick’s integrated buttons made that chore much easier. We already have a knob for the left hand that sets distance for the turret system :).

I would suggest that you use one of the joystick controllers that allows yaw control by twisting the joystick.

We use this to control our crab/swerve drive… twist one way turn that way
twist the other way and turn the other way…

Just make sure and find one that will work with the present system.

How about using the joytick’s throttle, it will stay in place? If you aren’t satisfied with the small throttle on the kit joystick you can buy a better one or just a USB throttle. My team uses theSaitek AV8R (Only $35 w/ free shipping right now) for the past 2 years. Its not circular, but has 5 axis (x, y, twist, dual throttle) and 12 well located buttons.

I concur, a three-axis joystick with the z “rotational” axis being used to “throttle” would seem like an ideal method. The problem is that 3-axis joysticks are often made for industrial purposes, and tend to be pricey. A quick google search only yielded a few results for 3-axis USB joysticks. :frowning:

edit: see below.

Really?

I have a Microsoft Sidewinder from ~10 years ago that has the twist function on the Z. It couldn’t have been more than $50 then.

I’d have imagined that would only be more widespread now than in 1999.

We’re using the Logitech 3D pro. The joystick Brian linked to earlier has it too.

Hmm, perhaps I should have searched amazon/best buy/etc instead of google. I see that there are a number that I was unable to find. :o

These things looked sick in person :smiley: We could probably find a practical and intuitive use for all of those axes too, hmm.

I think I need to clarify a bit.

Our turret looks at the gyro and initial heading of the robot to determine absolute angle to the field.

If the joystick is pushed to the west - the turret turns and aims west. If the joystick is pushed north - the turret turns and aims north. Regardless of what direction the robot is facing.

That is why I need the circular range of motion joystick. Adjusting the gain of the turret for angles close to the x and y axis result in the turret being very slow in the corners because the joystick is much further from the center. Adjusting for the corners makes it touchy when the joystick is pushed in the direction of x and y axis.

Potentionally we could use an encoder and calibrate it - continous turn pots have too much of a dead zone to be desirable. However we have many functions that are tied to joystick buttons that are simply too late to change.

Perhaps we’ll just machine a 2 part collar that will fit around the top of the joystick to limit it to circular motion.

What do you do if (when) the joystick returns to center?

Ditto on that question. I’m assuming it stays in whatever the last position it was told to goto was?

A “field-centric” turret control is possibly one of the coolest things I’ve seen done control wise in FIRST. A number of teams have done field-centric drives (especially holonomic and mecanums), which is perhaps even more daunting, but you’re the first I know of to do field-centric turret control.

I don’t know of any circular range of motion joysticks, and was unable to find one (although I did run into customizable joysticks designed for arcade machine enthusiasts, which may or may not be useful to you). Depending on how you have your code written (namely the return to center question), it might be possible to use a trackball though. You’d have to fine tune it for the trackball control and your driver would have to relearn the system, but it could potentially work well.

Why not just use a pot?

We are using this joystick this year for our crab drive. It has a circular restrainer and works great. It even has twist.

http://www.logitech.com/index.cfm/gaming/pc_gaming/joysticks/devices/291&cl=us,en

Ours definitely moves in a square.

With regards to what happens when the joystick returns to center - the turret simply stays at the last angle it was directed to go to. We use the magnitude (the R value coming out of the Labview rect => polar coversion vi) to add a deadzone to the joystick.

Seeing this thing in action the first time (in our room) dropped the jaws of many team members. I have to give all the kudos to the two Junior programmers and the two sophmore programmers who did it. The math is far easier than I thought it would be when we started.

The neatest part of it was when we put the robot on a turntable. You could push the joystick in a direction and release it. From then on, no matter how you turned the robot on the turntable, the turret always pointed in the same direction. I was amazed.

It allows anyone to walk up to our gunner station and have intuitive control. Push the joystick toward the target robot, and you’re on target. We’re going to let judges play with it to see if they’re as startled by the performance as we were :slight_smile: .

Al - we considered a pot - like a 10 turn. However, I was concerned about what would happen in the off-instance where the gunner reached the end of the turns in a critical situation and had to spin it around the other way. I like trying to simplify and plan for every eventuality, and that created a problem I didn’t want our gunner to have to deal with.

I’m really liking this idea - I hope I get a chance to try it.

Do you use |R| just for a dead zone, or do you also use it to vary the speed with which it approaches the intended direction?

Again, cool!