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!)
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.
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).
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.
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.
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.