I feel like this must have been discussed many times on here, but I just can’t seem to find a clear explanantion of the math involved.

I’m looking for info about how to help my students determine the smallest gear reduction (maximum top speed) a robot can be geared for to avoid brownouts at takeoff, based on how many motors it has, its weight, and wheel diameter and also, hopefully, a better understanding of the physics behind the calculations. Alternatively (if it’s easier) how to gear for max acceleration at takeoff will also work.

I know that I can use a motor curve to look up the current that a motor will draw and the torque it will have based on the speed it is spinning at (at least, I think that’s what a motor curve does). Since a robot initally takes off from rest, my understanding is that it initially needs to (theoretically) momentarily draw the stall current? Of course, it also starts to move right away, so it probably never actually gets quite to that value and, once the robot is in motion, the motors don’t need as much current to spin. Once the robot is in motion, it should be basically fine (assuming it’s going over level ground, not pushing another robot, etc.)

To avoid brownouts, I know we need to keep the total current draw under a certain amount, but I’m not sure how to get a good approximation of the average current a motor will draw durring the first few moments of takeoff at a certain gear ratio, since just using the starting ~stall current would imply that it isn’t safe to use 4 NEO’s/Falcons/CIMs, which obviously isn’t the case.

Hopefully that makes sense.

If it would be helpful to use “real” numbers, let’s assume an approximately maximum weight robot with bumpers + battery (~150 lbs), 4" wheels, and using either 4 or 6 NEO motors.

A finer point - I’m aware that BOTH acceleration and top speed are important to actually optimize robot perfromance, with the ideal gear ratio designed to minimize the time to cross a target distance while both accelerating and, potentially, finishing the trip at max speed. At this point, I’m primarily concerned with making sure our robots stop browning out without resorting to just going super slow, so don’t want to get too lost in the finer points of that discussion and can live with just making sure we don’t overshoot our maximum top speed (or top acceleration), but if anyone wants to point me in the right direction to optimize everything, I’d certainly appreciate it.

Thank you all so much!