After reading this forum thread, we were inspired to build a shifting X drive for our Toss Up robot.
Each of our robot’s four drive wheels is mounted in a rotating pod. These pods can be rotated between tank mode (wheels pointed straight forward), X mode (wheels pivoted 45°), and any angle in between 0 and 50 degrees. This rotation is powered by a single motor on a central gearbox. A chain system transfers motion from the gearbox to each of the four pods.
The range of 0 to 50 degrees gives us the ability to have any drive ratio between 1:1 and 1:1.56. This allows our robot to adapt to both offensive and defensive strategies as necessary. In addition, shifting to tank mode aids in crossing the bump.
The angle of the drive pods is measured by a potentiometer. This is used by the program to prevent the wheels from attempting to turn beyond their range of motion, and by preset commands to set the wheels to specific angles.
Our Variable Shifting X Drive has proved to be a very effective and reliable system. We will be attending worlds, so stop by our pits to check out the robot and tell us what you think!
This base was really cool to see running. Their switching between torque and speed was different to drive against. They could beat you to a position, and then shove you away from the cylinders if you tried to get close.
This was an excellent design, and absolutely deserving of the Excellence Award at Arizona State. We’ll make sure to find you guys at Worlds.
Wooooow… so cool. The best part of the base is its efficiency, and of course, your programming. It is really cool to see how the base switches between the two modes instantly. And also I assume that is not a light robot is it, how heavy is it
Very nice. When I looked at it, I thought it was a swerve drive, but this looks much cooler. In holonomic, you can go any direction so much faster than a waiting for a swerve drive to get your motors in place.
When you say two drive modes of 1:1 and 1.56:1 can you explain that? The wheels are directly driven without a transmission. Do you mean an effective ratio based upon being at the 45 degree offset?
Very cool drive, Cody like - been wanting to build one of those for forever now.
My issue with this idea has always been the loss of a motor. With only 10 in HS it’s 10% of your available power, which sucks. That and the extra complexity, which could come back to bite you in the butt.
But seriously, who cares - this thing is neat! Good luck guys.
It’s really cool to see this implemented on a competition robot, and I’m glad you found my writing helpful :). It was a pleasant surprise to see you referring to it two years later.
Well done on your awards so far this season (for those who didn’t look it up: 2 Excellence, 1 Design, 1 Judges’, 1 Innovate). Good luck with awards at Worlds, including Innovate, and good luck in the tournament as well.
Have you noticed any loss of performance when you use wheel angles other than the standard 0 degrees and 45 degrees? Do you have other preset angles that you use frequently in competition?
We eventually stopped pursuing these kinds of drive systems because when we tried setting the wheels permanently at 30/60 degrees our prototype wouldn’t drive straight reliably in the higher geared direction. I’m interested in what your experience has been - what happens if you offset the wheels by more than the 50 degrees that is currently the upper limit? What happens if you strafe while the wheels are at an angle significantly less than 45?
It was kind of painful, but I originally was going to make a 6 motor drive anyway, so you could look at it as saving me a motor.
Your documentation was definitely helpful. Please keep writing stuff like this!
At angles past 50 degrees we still drive straight reliably, but we do start to lose speed. Our robot is pretty heavy though. Large angles may work better if the robot was lighter, but still heavy enough to keep it stable.
If we try to strafe with the wheels close to the straight forward position, it either stalls or jumps back and forth a little bit. However, our programming prevents this scenario.