OP, I think to find optimal shift points you'll have to do a little math to figure out what works best for your particular robot and goals. Providing more details would be great.
In our
first attempt at automatic shifting we are utilizing a shift table scheme. A CSV file is loaded onto the robot representing a shift table with throttle position on one axis and speed of the robot on another axis. The robot code automatically sets the actual throttle position and speed values based on how many rows/columns are in the CSV file and based on a 'max shift table speed' variable, namely just above the fastest speed 1st gear can reach.
A representation of what our table looks like. We haven't set actual values (or shape) yet.
1 indicates first gear, 2 indicates second gear, and 0 indicates keeping the last gear the robot was in to give the table some hysteresis.
We plan on setting up the table for optimal acceleration at high throttle values and energy conservation at low throttle values. Then optimizing the table through testing. As a car guy used to tuning spark and fuel maps like this it seemed like a straight-forward way to do shifting for the robot.
We don't shift while rotating in place.
Comments from you experts who've been doing this for a long time are more than welcome.