pic: FRC488's Octocanum Ver 2.0

An interesting design! We’ve used mecanum for the past two years and were very satisfied with it in many respects, but know that it needs some push to really up our competition level. Thus, we’ve been working on our own drive (though I didn’t know it had a cool name like ‘octocanum’) which is similar in idea to this.

Thanks for sharing! (And great questions everyone. This is a good thread to follow for anyone considering such shenanigans like we are!)

OK that’s pretty clear, thanks.

Were the forward/backward follower wheels mounted like this? And, I assume they were omni, correct?

Did you ever consider, or try, using the data from the follower wheels to compute rotation rate?


Ether, your follow wheel mounting assumption is correct. They were positioned as in your diagram, and they were omniwheels.

We did use them to calculate a rotation rate, let’s call that Rotation_Follow. We also had rotation from the gyro, let’s call that Rotation_Gyro.

We found that Rotation_Follow wasn’t as good as the Rotation_Gyro, we suspect due to minute wheel scrub and small errors accumulating, but it did not suffer from drift. Consequently, we used Rotation_Gyro exclusively, but ignored any change in rotation while Rotation_Follow was 0 (typically at the start of the match before the robot was moving anywhere, or during testing when the robot spent a lot of time on a bench or disabled). This eliminated a large part of our gyro drift.

I like it. Nicely done.


This is a clever solution. A Kalman Filter would be another good way to combine accurate (but drift-prone) gyro measurements with less precise (but stable) odometry measurements.

We tried a number of filters (Kalman was unfortunately beyond my reach, never had a strong grasp on linear algebra), but they turned out to be unnecessary - the gyro we used (don’t have the model # on me) was incredibly accurate - it usually only drifted ~3 degrees over the course of each match, even through collisions.

The “stationary detection” we did was only necessary when the robot was put on the field but the start of the match was delayed several minutes (yeah, we’ve all been there).

Mind sharing the model number of that gyro?

Also, you didn’t use the pair of follower wheels to try to determine rotation rate while translating, you just used it to detect the complete absence of velocity, correct?

The point midway between the translation follower wheels was said to be the center of rotation of the vehicle. To the extent that is true, you could extract vehicle rotation while translating.

*The center of rotation likely shifts around especially if weight distribution changes as manipulators move.


Wouldn’t that only be true while not translating? Translating would shift the center of rotation, would it not?

What’s the maximum speed at which you can switch between Mecanums and high-traction wheels? Plus, about many switches can be performed before there becomes a serious air deficiency such that it is unreasonable to switch at all, assuming you have about 3-4 tanks at 120 PSI at the start.

*Imagine a robot going around a circular track at constant speed such that it completes one lap every minute. The robot has a gyro mounted on it. The gyro rate will be 1 rpm, the same as if the robot were spinning in-place at 1 rpm.

I’ll have to check the math, but I believe that with 3 followers mounted [as shown](I’ll have to check the math, but I believe that with 3 followers mounted as shown, you can extract the vehicle’s rotation rate (the same rate measure by a gyro)), you can extract the vehicle’s rotation rate (the same rate measure by a gyro) for any vehicle motion.


Yes, but that’s with 3 follower wheels. 488 only has two follower wheels measuring the floor, so I was clarifying as our swerve has two and there is no way we could infer rate from that (in fact we have to factor in the gyro rotation rate to even to get an accurate linear velocity).

EDIT: 488 actually has three follower wheels in that diagram, I was mistaken. Trivial calculation in that case.


We tried Mecanum wheels and tried field oriented drive. It was a good exercise for our programmer who did it all on his own. It would work for 10 to 15 seconds and then the headings will be off. I think it is because of gyro drift. We use the gyro that comes in the KOP. Is there a better one that we should use? We tried a compass sensor but there is too much electro magnetic interference from the motors. Any help would be appreciated.

We’re still waiting for JohnGilb to tell us what sensor his team used.

How about it, John? :slight_smile:


The Discobots used the kit gyro last year to do field oriented drive on our omni-drive. We didn’t have to much issues with drift over the duration of the match. We did have it setup so that the driver could zero the gyro him self at any of the cardinal directions but he only needed to use it in a few matches.

Our biggest problem with the kit gyro was the initial calibration routine we were dead in the water during a few elimination matches at Lone Star because we didn’t let the robot sit still when we turned it on.

I’ve sent an email to the electrical lead on our team, I’ll let you know once he digs up the model number of our gyro. =]

YMMV, but we used 1 tank, (2) 1.5" bore, 2" stroke cylinders to switch between traction & mecanums, (2) .75" (6 or 8" stroke) to lift claw, and 2 small cylinders to deploy the minibot, and never had a want for more air.

That is what we did. Not necessarily for the suspension, but we wanted the traction wheels to be the most outward wheels for stability, and on the the fixed axles for strength. Also, if there was an pneumatic failure, we wanted the default wheels to be the traction wheels.

Not shown in the sketch below, the pistons were vertical, one on each side, and they pushed down where the front and rear pivot arms met in the center of the robot. We used the 8" Andymark wheels, not by preference, but budget. We had a new, unused set on the shelf as spares from the prior year. Also not shown below, the transmissions and outer axle bearing were rigidly mounted to chassis.

Yes, 8 motors on drivetrain, 1 CIM and 1 CIM-U-LATOR/775 per wheel.

While I personally preferred the field-orientated driving, unfortunately (for me) mentors don’t drive. Our driver preferred traditional controls, so that his orientation didn’t change when swapping between traction and mecanums.

You could do something like 451’s SOAD - Semi Omni Arcade Drive.

So, our electrical mentor says we used http://www.sparkfun.com/products/9410, and it looks pretty familiar.