Dr Joe's Diff Swerve

The whole idea of a diff swerve is that you have 2 motors, but depending on how you drive the motors, you can send all the power from those 2 motors to the steering output OR to the wheels output OR to a combination of the two.

In a normal swerve module you need 2 motors, one for steering one for the wheel. But the power from the steering motor cannot be redirected to the wheels or vice versa. The wheel motor drives the wheels, the steering motor just steers.

As it turns out, steering is a low power task (most of the time at least) so if you can sneak power from the steering motor into the wheels, you are in a better position (potentially).

One thing that I regret is that this design took soooooo looooong to get done (and it still isn’t done done). Once FIRST moves to 20 slots on the Power Distribution Panel, a lot of the impetus for Diff Swerve is gone. You could just add a 2nd motor to the drive wheel (using 12 motors for your drive is crazy when you only have 15 available – using 12 when you have 19? Well that isn’t 100% crazy – maybe only 75%, right about my level of crazy :wink: )

6 Likes

A quick sanity check for degrees of freedom means that any drivetrain with swerve-like motion needs 3 degrees of freedom (movement in x, y, and in angle). Theoretically, a clever differential arrangement exists where you only use 3 motors to control all 4 swerve modules, but it would be difficult, and I think neither I nor anyone else have the time or patience to do it all out.

2 Likes

Fair enough! It would drive me nuts as well! If I had that knowledge anyway. Lol.

If you allow the robot to move in any direction while also rotating and you don’t want the tires to slip then each swerve module needs to have independent control of its steering angle and wheel speed. I think that requires you to have 2 motors per module.

2 Likes

I see. I was just curious, because on the Instagram post, it claimed it is possible to use 4 instead of 8. I love this tho. Looks great! Can’t wait to see where the project goes! :slight_smile:

Yeah, I edited that so say something more sensical but I guess it got reverted to the non-sensical original. JJ

4 Likes

No worries!

Do you think that the per module price of this could be under $500? I don’t have a good feel for what these 3D printed parts cost.

1 Like

I think you can do it with 3 motors, but it would be a much more difficult mechanical and software challenge than with 8 (or 6 using 3 modules). Blame @Nate_Laverdure for this idea:

Or, you could take advantage of the time domain and control both steering and speed with 1 motor. Here is a terrible idea I was tossing around in my head late last year. Each module wants to steer clockwise (when driving forward), but you have a brake that stops the module at the desired heading.

Please note: Just because it’s possible to reduce the number of motors with ideas like these, doesn’t mean the ideas are good!

9 Likes

Ah, I see what you are saying. Forgetting about all the complicated mechanisms this would require, you would then have the problem that cars with differentials have – if one wheel loses traction you need some sort of limited slip mechanism to allow any torque to go to then non-traction free tires.

Tricky.

But still an interesting thought experiment. Thanks. JJ

1 Like

Not sure about the price. Of course a lot depends on what is included or not in that price (if you include the Falcons I would say almost certainly not). But no matter what it would be challenging to be sure. Volume helps of course. The gears and shafts are pricey if you buy a handful of them but that price drop to almost rounding error if the volume is high enough.

We’ll see.

Would you ever sell printable files (.STL or .3mf)? We have an Ultimaker S5 and I really want to try to print these in a Nylon-PVA combo.

Because of sensor latency in Falcons, it’ll always be difficult to control a differential swerve as well as a non-diffy when doing precision lathing and such. This is definitely the best differential swerve I’ve seen here though, quite amazing.

It would be nice if the spur gears could be standard Vex gears, but I know how difficult it is to get the ratios to work out perfectly. Without that modification this ends up being more expensive than the multi-bevel versions, unless you make enough that it becomes a KOP chassis option.

Big fan of this design. I think it’ll inspire others to work on similar concepts in the coming weeks. Can you share the math you used to work out valid gear pairs? What happens if you’re slightly off (e.g. a gear ends up being a tooth larger or smaller)?

2 Likes

Agreed! I would even say that swerve relies upon being “overactuated”-- that’s what gives swerve the special ability to approximate holonomic motion (over time scales of a certain length), despite using wheels that are not designed for holonomic motion. Decreasing the # of actuators reduces the quality of that approximation.

1 Like

Latency, Even if the mechanicals are solid can the 3 brains, roborio, 2 motor controls coordinate fast enough for precision navigation? Maintain control in heavy robot to robot interaction?

Can you give a bit of an explanation of the advantages of the Fuse1 and SLS over more “traditional” FDM printers. Is it really necessary for something like this or just what you had access to?

Making this custom is probably more work and resources than 99%+ of teams are willing to put into a drivetrain. But if you can get this (or a version of it) to market at a reasonable price, it could be a competitive option for some of the more advanced teams.

2 Likes

Yes.

With a sufficiently high steering ratio, this acts just like a split-steering swerve. The issue is what % difference at high speed is required to turn the wheel a noticeable difference before your control loop can correct the error. At a motor speed of 5000 rpm, a difference of 1% from the commanded speed gives 2 * 1% * 5000 = 100 rpm rotational input command. This design has a steering ratio of 12:1, so the module rotates at 8.3 rpm. Over 20 ms (a relatively slow control loop + latency) this gives you only 1 degree of error before the robot can respond. I’m sure this is well within the allowable range to maintain a stable heading.

Previous designs have had steering ratios less than or equal to the drive ratio, amplifying this effect and making the swerve twitchy at high speeds. That’s why this is the “first viable”- it mechanically solves a difficult controls problem.

5 Likes

First of all, I have spent 3 years working on the Fuse1 so I can’t really be fair with respect to comparing it to other 3D printing technologies. Also, I am an employee of Formlabs, but this answer is my personal opinion, not anything official from Formlabs.

So…

The Fuse1 is A-MAZ-ING! I am continually impressed with the parts that it produces. It is not the answer to every thing but it produces really good parts. The material (Nylon PA11) is just so much better than typical SLA or FDM materials. The detail is kind of in the middle. If you push SLA (on a Form3 for example) you can get better detail than SLS but Fuse1/SLS has considerably better surfaces than FDM. From my point of view one of the best features is that the material is tough while also resistant to creep (unlike many SLA materials that are pretty terrible at creep).

As to parts of this design that are designed specifically to utilize the benefits of SLS, there are many. Some of the more obvious are that the large parts are hollow. All I have to do is have some powder drain holes and I can have large parts that are both super strong and super light. Another is involve printing “anti-backlash” gears. Basically the steering sensor needs a gear train that has a 1:5 gearset and then a 5:1 gearset. I need this geartrain to have as little backlash as I can because I want to keep the sensing errors down to a minimum. So I designed in tandem gears that a slightly out of phase with the main gear but mounted on springy spokes (google anti-backlash gear – this is just an SLS friendly one piece implementation of the mechanism you can buy from Berg or Stock Drive Products).

There are more but I have to get to a robotics meeting…

11 Likes

Can confirm. We had the attached SLS nylon part made for us in 2016. It lived out front of the robot, and was repeatedly smashed into field obstacles. The SLS nylon never even flinched, even when we bent the hex shaft inside it.

[Edit] pro tip: If you can’t get your hands on a Formlabs Fuse 1 (although they are very reasonably priced), ask around to see if any colleges or manufacturers in your neighborhood have an SLS printer. Since

  • Each print file the whole volume with powder,
  • The unused Nylon powder has limited reusability because it’s been heated close to melting
  • the powder process allows you to stack parts in any orientation, without support

the printer owners may be happy to throw your parts in with their own print jobs, free of charge.

2 Likes

I’ve always been attracted to SLA printing far more than FDM, so when Formlabs put the first consumer grade (or really prosumer) SLA on the market, it got me excited. Even though I could never justify the cost of buying one for myself, it has been awesome to see all the cool resin print options achieved with it.

With SLS, the end goal in my mind has always been metal printing. But I’m not surprised to see Dr Joe and Formlabs finding a way to make nylon SLS incredibly impactful. The fact that it’s also a differential swerve is beyond cool.

@Joe_Johnson how much have you considered mixing between SLS and SLA printing for various components within this assembly (or other iterations)? I’m imagining flexible resin wheel treads, or even belts. Even the antibacklash encoder gears seem like a great candidate for SLA printing.