Shifting Swerve, Feedback wanted

Hey, I would love some feedback on my most recent swerve design. It is shifting (and yes I know the trade-off I’m making). 775 is on a 66:1 ratio for turning.
Also, what do you guys think about the thin wall of the bearing hole in the last picture?

CAD: https://a360.co/2IkWL4F

Image 1: https://imgur.com/a/pFPznQ5
Image 2: https://imgur.com/a/4bHfzja
Image 3: https://imgur.com/a/D4Otrcv

1 Like

Love the packaging. Well done!!

Very clean layout. Couple of minor comments:

You may want to consider a more substantial means of retaining the steering turret bearing than using bolt heads. I would look at machining some blocks that can be bolted on either side of the base plate that have flanges to hold the bearing. I think the way you have it is probably strong enough, but it is putting some fairly concentrated loads into the bearing race that might fret over time. Plus it induces bending loads into the bolt shank that bolts are generally not designed to carry.

Relative to the 775 steering motor; I would not suggest this motor for this application. For one thing, you should not need that much power for steering so a 775 seems like overkill. Another thing is that the steering motor spends a decent amount of time stalled (holding a steady position while resisting a torque load). 775s are not good for stalled applications. If your gear ratio on the steering motor is high enough, it may be that the torque on the module does not really backdrive the motor, so you may be OK, but even if you are OK from a stalling standpoint, it still seems like the wrong motor for this application.

What is the gear ratio for the steering? It looks pretty low. As a comparison point, we are typically running 70:1 gearboxes on our 9015 steering motors (not counting the final drive ratio between the output gear and the turret gear).

As a CAD exercise, this is an interesting concept. I really like the way it looks.

However, the practicality of this design for a FRC competition robot is minimal, as I am sure you were alluding to in your OP re trade-offs.

There are two reasons why you would want a low gear and high gear:

  1. To allow precise movements in low gear while allowing high speed in high gear.

  2. To provide more power for pushing matches in low gear while allowing high speed in high gear.

We have found that it is much easier to incorporate low speed and high speed settings in the software to address reason #1. This year, I think our team implemented 3 different speeds - normal, creeper and boost - in the code that were implemented using different buttons on the controllers. Each mode would limit the max power to the motors to different levels. In creeper mode, the power limit is low so that you get slow movements with “normal” amounts of joystick input allowing for precision control for things like lining up on the hang bar or placing cubes on the scale. Boost allows for maximum power to be applied to the motor allowing for really high speeds. They rarely used boost as the field was constrained enough that you could rarely find a long straight run that allowed you to really utilize the higher speed. By the end of the season, I had become accustomed to the sounds of the robot that when they did use the boost, I could tell the difference in the sounds that the motors made.

To address reason #2, there are “tricks” that you can do with swerve that allow you to “win” a pushing match without needing the low speed gear. For one thing, if you are getting pushed, you can turn your wheels sideways to resist this pushing without needing any power to do so. Or you can turn all your wheels to point toward the center of the robot which again provides very high resistance to being pushed without requiring any power. If you are playing defense and you are effectively tying up the other robot(s) using these techniques, then you are winning the pushing battle (even though you may not be pushing them). While it is true that these techniques do not allow you to push them into some other area of the field, you can effectively impede their progress and if you are in a narrow alley where they cannot get around you, you can force them to use extra time trying to find another route.

In addition, if you are in a pushing battle with swerve, you can steer the pushing battle by steering while you are being pushed. This can be very effective at causing the opposing robot to push you in a direction they don’t want to go which will result in them either disengaging from the battle or continuing to spend time to push you where you want to go. When you combine this with the resistance techniques above (alternating between the two techniques), it can be very effective at controlling the pushing battle which can strategically result in “winning” that battle.

You probably knew all of that already. But, the bottom line is that once you factor in these techniques, the added cost and weight of a shifting gearbox on a swerve drive generally is not a good trade-off. If cost and weight were not limited (such as a non-FIRST application of swerve) this would be a really interesting option to achieve a wider speed and power range than a single speed swerve.

Anyway, I enjoyed poking around in the design. Looks like you have having fun with this exercise. We would love to have you guys over to our practice field to spend a day talking about swerve and driving our robots. We’ll have to figure out a way to do that some time this summer.

Many teams have used this or a very similar bearing and used screw heads to retain it with no issues, so this is a pretty blanket statement to make without diving deeper into the design. My guess is this would probably be fine, although I would say to minimize manufacturing needs while not using the screw head method you could print some parts to retain the bearing and mount that with screws (source: 33’s 2018 swerve).

Again, many teams have used a 775pro for steering on the swerve, including one that was on Einstein this year. While I do not disagree that a motor with that much power isn’t necessary, stalling the motor should not be a consideration here. So long as the module is not some sort of caster setup, with the wheel centered around the steering axis there really shouldn’t be any load working to rotate the module. Any decent amount of reduction between the motor and the module should be enough to fight off any rotational force that the module is seeing.

We used an AndyMark 9015 motor with an 65.45:1 ratio on our module for the 2018 season. Going forward we plan to switch to a BAG motor and an ~80-84:1 ratio. We have found our steering is much faster then it needs to be, and that the 550 motors got hotter then the drive motors ever did. We like switching to the BAG since the 9015 is discontinued now anyway.

He said 775pro on a 66:1 ratio. Also, sharing your ratio without the final stage isn’t very helpful for comparison if that last stage has any kind of ratio.

You’re right that this would probably work just fine. As someone who works in industry this stuck out as something that is not a good design practice. These are the kinds of items that I point out to the students on our team when reviewing their designs. But sometimes it makes sense to bend the rules a bit in order to come up with something that fits and is simple enough to execute.

Yeah, we will need to find a new steering motor as well although we probably have enough 9015s laying around for the next several seasons. We’ve not really looked into what to replace it with. The bag motor is probably a good option.

I missed that. I had pulled up the CAD model and was busy looking at that before I posted. I should have gone back and read the post more carefully.

Our final ratio (had to pull up the parts list for the steering encoder) is 3:1. And I mis-spoke on the gearbox. It is a dual stage 7:1 + 9:1 so the total ratio is 189:1. The steering seems plenty fast at that ratio.

After the 2016 season we looked at shifting 2 speed swerve. Several iterations of shifting cad where done in the summer. After reviewing all the design and manufacturing issues we dropped shifting and put our efforts into a better solution. CVT
Lov’in the CVT swerve.

I would totally use an older motor such as a 9015, however the only small motor that is still sold is the 775 and bag motor basically. There are no pinions sold for the bag motor that I can find, so the only option left was 775. This ratio seems a little low to me as well, but when we went to worlds we got to check out 1323’s swerve and they were running an even lower ratio on a 775. Not sure if they are doing it wrong, but theirs worked darn well. We’ll have to experiment and see what works.

We would love to come over in the summer! I’m only available on the weekends, but lets try to organize something. I’ll talk with my team and get back to you! Thanks for the offer!

I’m not sure what the sweet spot is for the gear ratio on the steering either. We have found that with the high ratios it is easy to dial in the PID to get nice stable steering without jittering. But we have not done any scientific explorations of different ratios to see what the best ratio is. Basically, we found a ratio that worked for us a few years ago and we have not really changed it since.

I can’t really say that 1323 is doing it wrong either. Obviously they were able to get their control system to work with the ratio they are using. Honestly, I could see good arguments for using a lower ratio as you will generally have less backlash in the geartrain and therefore a more immediate response of the module to the motor rotation which makes it easier to control. On the flip side, if the steering speed is too high, then the “gain” of the system is higher which makes control harder. So the sweet spot is somewhere in between these two extremes.

Might be an interesting poll to see what ratios all the swerve teams are using.

Since we are using versa planetaries on our steering motors, it is relatively easy for us to swap out a stage to change gear ratios. I might pose this as a challenge to our team to explore different steering gear ratios and see if we can find the best one in terms of speed, controllability and power consumption.

I’m trying to get the team spooled up to do a swerve camp for other teams this summer. We have talked about doing this for the past couple of years. If we end up getting accepted to IRI, it will probably have to wait until after we get back from that, but I will be sure to have our new team captain get in contact with you and your team to let you know about it once we have it organized. Stay tuned.

Regarding the discussion around using 775Pro for the steering, I think the 775Pro motor (or the AndyMark equiv) should be the default motor for every application on a FIRST robot; If you don’t have a good reason not to use it, that’s the motor you use.

If you use a Talon SRX it is trivial to limit the current to make it essentially impossible to smoke them. If you gear them properly you don’t have to worry about that except in oddball cases anyway.

Finally, more power is almost always better in FIRST. Swerve steering seems like it is a low power application but if you want to go left and your wheels are pointed straight ahead, making that 90 degree turn faster is very desirable and requires more power (doing the same work in a shorter time is the definition of increased power).

Dr. Joe J.

While we have been using BAG motors for past few years for steering (with a 70:1 ratio) and 9015’s before that - another great value option is the Banebot RS550 for less than $8 a pop and more power, and seems not to be discontinued.
http://www.banebots.com/product/M5-RS550-12.html

A big reason not to use a 775pro for swerve turning is the high free speed. Not only are there lighter motors out there, but an alternative with a lower free speed means less weight, cost, and potential failure points for that steering reduction. As always, it’s a trade off, but I think there are a lot of great reasons to go with a different motor for steering a swerve module.

Correct me if I’m wrong, but I would think that taking this approach to every mechanism on the robot leads to allowing more inefficiencies? (why optimize it if it has way too much power anyways?) This then leads to dead, or close to it, batteries by the time the match ends. Since the real limit in FRC is the amount of energy in the battery, not spending it on things that can work just fine with less power, like the aforementioned swerve steering, leaves it open to other mechanisms or to make the robot much less likely to brown out near the end of the match.

Limiting voltage means lower free speed and hence lower power draw. Marcus, your weight point is valid though.

The free speed thing is kind of moot, because a 775 with the same reduction as, say, a BAG will be faster but also more easily controlled with a PID loop because you’re always running so low of a current relative to its stall current.

To show the math:
BAG:

  • 13,180 RPM
  • .43 N*M

775Pro:

  • 18,730 RPM
  • .71 N*M

13180/18730 = 70.4%
Thus given identical reductions, the 775Pro and BAG have the same free speed when the 775Pro is given 70.4% of the BAG’s voltage

(.71 Nm) * 70.4% / (.43 Nm) = 116.2%
Thus the 775Pro at 70.4% voltage has 116.2% of the BAG’s torque

The weights are actually surprisingly similar too (.71 vs .8 lbs, .36lbs for 4 modules), so you get quite a bit of extra performance for surprisingly little weight

Since you are using absolute position feedback of the module to feed you PID, if the rotation speed is too high, you will get a lot of overshoot and jitter on the steering. You really can’t control something that is geared for 1000s of RPMs to make 1 degree movements. You need to gear them down to a slower speed to control them. Making a 90 degree turn faster than your control system can respond is not desirable.

But the bigger issue is when you are driving straight and accelerating or decelerating, the drive motor excerts a torque into the steering turret. The steering motor needs to react that torque to hold the module straight. So, you end up applying some moderate torque loads at 0 RPM (stall). Gearing up the steering reduces those max stall loads. But they are still there.

So, you really need a motor that is suitable for operating at stall. Using the VEX motor testing data, the 775 Pro is not particularly good for operating at Stall. Several other motors that they have tested are very good at operating at stall. So, I think there are better options for steering motors than the 775. The Banebots 550 seems to do pretty well at low to moderate stall torque loads. The Andymark Neverest motor is really good at stalling. We talked about using that motor, but ended up using the 9015 since that is what we have used in the past. But from the data, the Neverest might be a better choice.

According to the Vex motor testing data, you can stall a 775pro indefinitely at <4V, and for longer than an FRC match at 6V…

To add on to the 775 vs BAG discussion

Even in a drop in replacement situation (same gearing) the 775 pro lasts longer at stall for a given torque. Say you need the motor to resist a torque of 0.34 N*m, the 775 can do so at just 4V and will last forever doing so, the BAG motor on the other hand requires 8V to do so, after a few seconds 8 volts will not longer be enough… (I chose dummy numbers here, and yes the 775 does see torque fade as well, meaning it would require more voltage after a while, but the basic idea here is that the 775 is hardly working, and therefore happy, while the BAG is working hard and therefore unhappy)

Factor in the additional gearing you would likely see if using a 775 and it only looks better.

6328 looked into swapping our intake motors over to BAGs this year before champs when we decided to apply a small “holding power” to the wheels when we got a cube. Stalling 775s has become such a loudly publicized “bad idea” that we immediately looked at BAG motors (they look like CIMs, they must handle stall like CIMs right?) but because they required so much more power to get us the same “hold” they would have burned up, while the 775 was happy in this application.

~Zac

We actually used a stalled 775 this year for holding the altitude on our shooter. We used a VP with three stages in a 200:1 ratio and the voltage was sub 4v. we never burned out a motor and it still works now. Also, reference the vex chart in the KOP

Yeah, I am probably not able to see clearly through the haze left over from all the 775pros that we smoked last year.

We swore off those motors this year and had a drama-free season (in sharp contrast to the drama-filled season last year with the 775pros). But, I suspect that if we study our motor uses carefully and really run the numbers, we may decide that we can run 775pros again with little to no risk of drama.