CIMs, Weight, and Max Speed

Will a 2 CIM per side drive train have a reduction in maximum speed when going from a 60 pound load to a 120 pound load? I am hoping to program autonomous using just the drive train and the electrical board while the rest of the robot is being built, but the algorithms I am using are dependent on the maximum speed of the robot.

I would expect a slight decrease in speed due to increased friction on carpet from the extra weight. This is assuming traction wheels. I would guess that Mecanum wheels would have a larger decrease in top speed.

However i would expect the biggest difference to be in acceleration.


Yes, you will have noticeably different performance between 60lbs and 120lbs.

You can use the JVN Mechanical Design Calculator to calculate more accurate (not perfectly accurate, but very good) speeds for your robot.

If we strap on some metal blocks in order to increase the weight of the drive train to 120 lbs, will the drive train act similarly, or will the location of the center of mass change things? Is there anything else wrong with this approach?

If you are using encoders the speed would not matter. You could just read shaft revolutions.

There will be some differences with air resistance(though probably insignificant), weight distribution, and weight transfer when moving. Though I’m not sure how big of a difference any of these would be. If you do strap on metal blocks, make sure they’re secured well so they don’t go flying.

And I would recommend using encoders. Any system not measuring the motor’s output is highly theoretical and can be influenced negatively by a variety of real-world factors, including friction in the gearboxes, differing traction on each side due to weight distrobution, etc.

We are indeed using encoders. We are using Team 254’s TrajectoryLib found here: GitHub - Team254/TrajectoryLib: Library for trajectory generation and following
The algorithm calculates smooth position and velocity curves in order to get the robot to follow a smooth path. As the robot follows the path, the algorithm compares the position measured by encoders to the theoretical position and adjusts motor output accordingly.

The reason I’m asking about maximum velocity is because the algorithm requires the maximum velocity of the robot in order to generate the path and to set the motor outputs correctly.

This seems a little overkill compared to just straight encoder values? what are the advantages?

The motion mapping algorithm allows for a smooth 2D path in tank drive, and accounts for any inconsistencies, such as friction and battery voltage, making the autonomous repeatable and consistent.

We were inspired by this video by Team 254: The Cheesy Poofs:

Back to the original question, there will be a significant reduction in acceleration (assuming you’re not already traction limited), but a minimal change in maximum speed (reflected in JVN’s calculator by frame efficiency). Top speed = free speed of motor * wheel radius * frame efficiency / gear reduction.