pic: Hart District Robotics Swerve Drive Prototype

This is a picture (taken with my phone) of team 691’s swerve drive prototype robot up to this point.

Very nice offseason project. I really like your use of simple design and use of COTS parts. How is that shifter working out for you guys? What is your control scheme (joystick setup and steering functions)? Are you having difficulties with the modules being in a rectangle instead of a perfect square layout? What motors/gearbox are you steering with?
Looks really clean. Nice work!

Can I see a close-up of the wheel mount?

videos please? :slight_smile:

This looks really nice and pretty simple. How long did it take you?

Why would that cause difficulties?


Perhaps with slightly more complex software? I would imagine that there would need to be code in place to keep the robot from trying to turn long ways by scrubbing the wheels (skid style). But this is just an assumption, the last swerve I programmed was a square and had some pretty major mechanical problems.

I’ve only heard that there is more difficulty in programming a rectangular swerve for reasons unknown to me.

Never dabbled in programming, so I am asking based on what others have told me.

So, is it easier (easier being a relative term) to program a square swerve in terms of controls?

edit: what Andrew said seems to make sense.

Thanks for the complements about this robot. :slight_smile:

We are building this with an extremely limited (nonexistent) budget so this is the original design that my team came up with in January (like week 1 or 2 of build); consequently this robot base isn’t perfect. We had the swerve module parts manufactured during the build season. We started actually making the swerve robot during the summer with a 2-3 hour meeting once a week. We have been working on it on and off since June or July. Most of the issues (in terms of why its taking so long) are related to a lack of funds for buying parts or not having easy access to machining equipment, making it so that we have to design so that we don’t use anything we don’t already have. Overall everything on this robot (excluding electronics) cost us, less than $1200. I know that the overall investment for our planned 2 swerve robots and additional mecanum robot was around $2500-$3500 in parts.

My intent for this offseason project is to use this as an opportunity to teach new members the basics of mechanics and using tools. My hope is that we can get this to function as a crab-drive that can pivot (by rotating the wheels such that they are tangent to a circular path).

I personally like the shifter, the rest of my team isn’t so fond of it. For a second version of this robot we plan on having drive gearboxes for each wheel, and because of our very limited machining and budget right now these will almost certainly be CIMPLE boxes.

Our intent with the joysticks is to get it so that we can translate with one joystick and then use a second joystick to control pivoting. For now we will likely make it so that it only pivots when it is not translating (primarily because this version uses two rather than 4 drive gearboxes). We still haven’t gotten this really driving yet, this was because we didn’t know what type of encoders to get and we didn’t have money to buy them. Mechanically we know this works, we are still trying to get our code working though.

I apologize if I am just rambling or I forgot to answer some of the questions.

Not really. The inverse kinematics1 are straightforward regardless whether it’s square or rectangular.

The challenge with swerve is not the inverse kinematics, but how to control each wheel2.

1The problem of figuring out the theoretically correct speed and steering angle for each of the 4 wheels for any given desired vehicle motion is called inverse kinematics. The derivation of the formulas for this is interesting but not beyond the reach of high school mathematics. The formulas themselves are straightforward.

2If you could make each wheel instantaneously go to its theoretically correct speed and steering angle, swerve would be simpler. But there are dynamics involved. It takes time to steer the wheel and change its speed. During this transition time, the vehicle may do unexpected and/or undesired things. So the real problem in implementing a competent swerve drive is how to control each wheel to obtain predictable operation and acceptable response to driver commands.

Not a whole lot keeping those chains on the big drive sprockets, and the drive chain in the upper part of the picture looks pretty loose.

You may want to consider a tensioning system of some sort for it. Transferring any sort of power through that chain is going to make it fly off.

Other than that, looks really neat.

I don’t know what you’re looking at. I see 180+ degrees of chain wrap on the visible sprockets, and it looks like nearly that much on the obscured gearbox output sprockets.

You may want to consider a tensioning system of some sort for it.

Are we talking about the same picture? In the one I see, the long chain runs do have tensioning sprockets.

I notice that it uses the banesbot transmissions for steering. They are not 1 to 1 on the chain drive. How are you measuring wheel angle?

We plan on measuring wheel angle with encoders or potentiometers mounted coaxially above the banebots gearbox output shaft. We don’t have those encoder mounts on the robot in this picture.

If you have a picture of the module itself, I would like to see it.

With respect to measuring wheel angle, I just want to warn you to make sure you buy a high quality sensor for this. My team learned this the hard way.

I’m curious how the p60s will hold up cantilevered that like. We’re overly cautious with them though.

The concept and gearing looks sound, can’t really comment on the modules at all.

I think you could make the frame a lot easier for you by reducing the number of members by more than half. A lot of time goes into fabrication of such a frame, and also a lot of weight.

It looks like you could do just two main 3x1 rails (one per side), and lesser framing just connecting those. Would save a lot of time and weight. The frame for our Swerve drive is JUST a perimeter of 2x1x1/16".

What most people don’t realize is the code is where you really make/break a crab drive. What have you guys accomplished there so far?

We used incremental encoders (s4’s) for our steering, but have used MA3’s in the past (as have a few other teams). I know other teams have used limitless potentiometers, and rotary hall effect sensors. Expect to pay $30 minimum for anything of quality.

Also, how are the p60s mounted? It looks like you need to take them apart and reassemble them around the box tube :ahh:

We set up steering drive 1:1, so that steering drive angle provides an accurate proxy measurement for pivot driving angle.

We also used chains/sprockets and belts/pulleys to provide our gear reduction. Drawback is no gearshift (yet). On the positive side, we’ve got no formal gearbox.

1640 has been running pivot drive two years now. We are pretty satisfied with how it works for us.

The very devil is the control software. We spent a lot of quality time on developing this.

Gearing other than 1:1 doesn’t have to sacrifice accuracy nor precision.

1:1 means that absolute angle measured on the steering drive corresponds to the absolute angle of the pivots. Other ratios require some sort of zeroing.