Mecanum vs Poor Man's Mecanum

with PMM/ x drive, there is never a point where all motors are running in the same direction, which makes it slower in most cases. Mecanum can have all four motors run forward and backward with it going at its full speed. The frame setup for an x drive is also more complex.

1 Like

1986 is by no means a normal mecanum, no matter how you slice it.

492 the same year on the other hand…

2 Likes

I’m not sure what you mean by this. To go forward, they all rotate in the forward direction. To go left, they all rotate in the left direction. If you mean direction based on looking at them from the outside (or inside), then they all go in the same direction when rotating in place, same as mecanum and skid steer.

1 Like

I think he’s trying to point out how, from above, two wheels have to go diagonally left and two diagonally right to drive forward.

^ This. This makes PMM/X drive fundamentally slower and weaker than mecanum in that direction

X drive is weaker, but sqrt(2) times as fast. To picture this, imagine two tank drives moving along the X and y axes away from the origin at 1 m/s. The fourth point of the rectangle formed by these drives and the origin represents the X-drive, which is moving in each direction at 1 m/s and thus has a vector speed of sqrt(2) m/s.

Mecanum is theoretically the same.

Note that the sqrt(2) factor increase in speed leads to a similar reduction in force.

1 Like

isn’t the speed sqrt2/2? the vector in the direction that the motor is going in is 1, so the x and y axis speeds should be sqrt2/2. and the same applies for mecanum, but only when strafing. the speed going directly forwards and backwards is still 1, since the vectors are all pointing in the same direction. The same idea can be applied to the amount of force, so there is a reduction in force.

1 Like

Your explanation is paradoxical- if both were divided by a factor of sqrt(2) (which is the same thing as being multiplied by a factor of sqrt(2)/2) then the total power (speed times torque) is reduced by a total factor of 2. Where did this energy go? We are assuming perfect efficiency.

My high school physics teacher had a mantra that continues to carry me through these types of problems. Perpendicular vectors are independent.

Let’s consider relative speeds of two drives, each geared at 1 ft/s.

Each pink vector moves at 1 ft/s. On the tank drive, we average these vectors to get the net speed which is 1 ft/s in the direction of the y=x line (45 degrees). Or, <sqrt(2)/2, sqrt(2)/2>

For the x-drive, each wheel spins at 1 ft/s without impacting the speed of the other wheel. So when we average these vectors, we get (<1, 0> (top wheel) + <1, 0> (bottom wheel)) / 2 = <1, 0> in the x direction, and similar for the Y direction. So we have a net speed of <1, 1>, or exactly sqrt(2) times the speed of the tank drive in this specific orientation.

Now consider force. Let’s say each wheel of the drivetrain contributes 32.5 lbf of force. We are in a pushing match here. The tank drivetrain has 150 total lbf in the vector direction <-sqrt(2)/2, -sqrt(2)/2> for a vector force of <106, 106>. The x-drive has a total force of 75 lbf in each direction, for a vector force of <75, 75>. The magnitude of this force vector is 106 lbf- exactly sqrt(2)/2 times the magnitude of the tank drive’s force.

And finally, because it’s all really just math until you test it, here is empirical evidence that an x-drive is faster than a tank drive in the robot-forward direction.

Edit: I didn’t cover mecanum, but the math for this is exactly the same as the x-drive, just with fancy wheels. The rollers are the exact same.

1 Like

I’d like to point out that you can ignore all these computations if you stick to a sensible drive train.

10 Likes

^^ This, as I stated back in post 17 - assuming weaker refers to acceleration, “as fast” refers to free speed, and only left/right/forward/reverse travel are considered.

Given the same motors, same gear ratio, and same wheel diameter, X drive is effectively geared √2 faster than mecanum for forward/reverse/left/right travel. For an apples-to-apples comparison, let us consider wheels of 8 inch diameter (or for simplicity, 25/π inches in diameter which is about 7.96").

Let’s rotate all of the mecanum wheels one rotation in the forward direction. None of the rollers are required to actually roll, and the robot moves forward 25 inches.

Let’s rotate all of the 4WK/X-drive/PMM wheels one rotation in the forward direction. For illustration, I’ll describe what happens to the left front wheel. As the wheel has rollers in the direction parallel to the drive axle, and assuming the robot does not rotate, the position, based on this one wheel, is completely indeterminate in the left/front - right/rear (45 degree bias) direction. Just based on this one wheel, we know that the wheel will travel 25 inches in the right/front (45 degree bias) direction, and an indeterminate amount in the left/front - right/rear (45 degree bias) direction.

However, as we have rolled all wheels in the “forward” direction, the robot will (in the ideal case) translate forward with no rotation. This means that each wheel will travel in the forward direction. The only place that the left front wheel can end up and meet both conditions is 25"√2 (~35.35)" forward of its origonal position.

The same logic applies to all four wheels - the X-drive robot will travel √2 times as fast in the forward direction per wheel revolution than the mecanum. Extension to left/right is also not very difficult, and assuming good rollers, it will come out the same.

What is interesting is when you look at travel on the bias. When accelerating or traveling on a 45 degree bias, the same considerations show that the X drive accelerates √2 times faster than the Mecanum, but the Mecanum has a free speed √2 times as fast as the X drive.

Either way, you don’t get something for nothing.

2 Likes

^ I don’t use x drive, used mecanum once, but the computations don’t seem hard, its just I don’t touch them

Yes, however you just added the two vectors on the x drive, and averaged the one on the normal drive. if you break down the vectors of each wheel, it is sqrt 2 /2 in the forwards direction, compared to the 1 of the regular dt. My guess is that that the energy lost is what moves the rollers on the omnis. also, I don’t think you can really assume perfect efficiency, theoretical can be very different than real

You’re right, I poorly explained this approximation. I would struggle to prove it from basic principles. It comes from the tank drive short-segment kinematics that many teams use for odometry, which is only valid as an approximation over short distances or if there is no rotation. I average the vectors that are pointing in the same direction, but ultimately the effect is the same as assuming the robot moves in that direction at a speed equal to all the same wheels, and that the omni wheels allow for completely independent motion. I was attempting to cloak this intuition in quantitativeness, but ultimately weakened my own argument.

“Speed Vectors” as I’ve used them here are not really a thing in rigid-body mechanics- it’s impossible for two different parts of the same rigid body to have different speed vectors (or for wheels to do so without slip), and so it’s only useful to describe the entire body as having a speed vector.

Ultimately math is used to describe physical phenomena, and so if your math doesn’t match the experimental data, there are one of three possibilities:

  1. The data is wrong.
  2. The assumptions you made about the problem are invalid.
  3. A logic error was made in the flow of your math.

Given that my math explains the observed phenomena shown in the video and yours says that the opposite should happen, I am more inclined to believe my own, although I could yet be off base.

Explain what you mean here. What is the forwards direction? Can you explain how to add the speed vectors together? I can make my same argument in both frames.

Just for fun, I calculated what this would look like. Wolfram|Alpha. Assuming 4 CIMs, peak power output (half of which gets transferred to the rollers as I said in my initial post), assuming 8 rollers per omni and four wheels. Each 4" DuraOmni wheel is 0.59 lbs, and I guessed that about 50% of the weight comes from the TPU rollers in sum which is a generous amount. Obviously you’re not outputting peak power for most of the match, but if the rollers are far from burning your fingers at the end of the match, then something is wrong here (also note, carpet friction isn’t accounted for here.)

See above. There is no feasible way 50% of your drive power gets dumped into the rollers.

GeeTwo also explains it in a different way which I found equally convincing.

ok, I talked about this with a couple other people, and I understand your reasoning.

This was mine, because after reading what you said, I wasn’t clear, nor very logical.

understandable

What I mean here is that, in your drawing, my logic was that rather than adding the vectors, you’d instead break them down into components, one pointing in the direction you indicate as the sum, and the other vectors perpendicular to that. This would make the speed sqrt2/2 on each wheel, and I assumed that the two vectors that are tangent cancel each other out, since they are equal and point in the opposite direction.

Now, I have never used x drive, so I can’t say I have a whole lot of experience with it. However, from the video you showed, it seems that x drive is faster, but from my observations of the video you posted earlier, it seems that the motors either a) have more power, or b) are wasting more energy when in x drive configuration due to the increased noise, so I am not sure how this affected the end result. If there are other videos testing the same thing, I’d be interested to see.

Just for reference, we have a simulator showing the differences between and wheel magnitudes here on our team reference: https://seamonsters-2605.github.io/sketches/mecanum/

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.