I started to do some calculations for the motors that will drive the treads. Ideally these should be fast, strong and light. To select the right motors it is necessary to calculate the required speed and torque of the motors.
I want the robot to have maximum speed somewhere between 0.5 and 1 m/s. The diameter of the sprocket wheels driving the treads is 9.5 cm including the treads, which is the equivalent to a circumference of 30 cm. This means that the motor must rotate between 1.7-3.3 rotations per second or 102-198 rpm (rotations per minute). There are plenty of gear-motors with these speeds so this should not be a problem.
The second thing to consider is the torque that is needed. A main factor here is the weight that the final robot will have and the maximum inclination that it will be able to handle. It is hard at this point to be sure of the final weight, but my previous robot which has slightly fewer components but uses a too heavy aluminum frame and a very heavy battery is 14 kg. I will try to make this robot lighter, but let's assume that the final weight will be 20 kg just to be on the safe side.
I will assume that it is enough if the robot can climb a 10 degree slope. This means that it will need to counteract the effect of gravity at this angle which is g * sin(10) = 9.81 m/s
2 * 0.17 = 1.7 m/s
2.
If we want the robot to accelerate to its top speed in 2 seconds, it must in addition be able to accelerate with 0.25-0.5 m/s
2. That is, its total acceleration must be between 2.05 and 2.2 m/s
2. It is interesting to note that almost all the needed acceleration has to do with counteracting gravity. If the robot would only need to handle inclined surfaces of 5 degrees, the acceleration range would be between 1.1 and 1.6 m/s
2 instead. If it was sufficient for the robot to move on a flat ground, the required acceleration would be just 0.25-0.5 m/s
2. I will only look at an acceleration of the intermediate 2.1 m/s
2 below.
To calculate the required torque, we need to multiply the desired acceleration with the radius of the drive sprocket (with the treads) and the weight of the robot. This gives us a torque of 2.1 m/s
2 *(0.095 m/2) * 20 kg = 2.0 Nm.
There are several thing that I have not considered here like the extra torque needed when the robot starts, but motors are usually able to produce a much larger torque for a short time so this problem can safely be ignored. Now it is time to look for an appropriate motor which can produce a torque of about 2 Nm and a speed between 100 and 200 rpm.
Let's look at the motor to the right in the picture below from since I happen to have a number of those already that I bought from
ELFA. It is manufactured by
Micro Motors and is called type E192 and its weight is between 385 and 480 g depending on the model. It can be ordered with different gearing and for a motor with a speed of 155 rpm it will have a torque of 600 Nm. For a slightly slower speed of 105 rpm, the torque will be 900 Nm. These motors are fast enough, but have too low torques. To get a torque at 2.2 Nm, the speed needs to be reduced to 40 rpm which will give a speed of the robot of only 0.2 m/s.

Of these motors, the best choice is probably the motor with a speed of 105 rpm. The torque is less than half of what I need, but the robot will have two treads so as long as it is moving straight ahead with both treads moving the torque will be doubled. However, the robot will not be able to handle an incline of 10 degrees although 5 degrees will not be a problem. Considering that the robot will mainly be used indoors, this may be sufficient.
There is an alternative however. Many smaller robots use modified R/C-servos to drive the wheels and initially I though that this would not be possible for a larger robot, but if we look at the data for a strong robot servo, the picture changes.
The
Hitec servo HSR-5995 TG (shown to the left above) delivers a maximum torque of 2.94 Nm and has a maximum speed of 83 rpm. This is slightly too slow, but the torque is more than sufficient. It also weights almost nothing (62 g) and could theoretically be mounted inside the treads. The tricky part here is that these figures are maximum values so it is hard to know what this means in practice but it looks tempting to use modified servos instead of the huge traditional motor.
One advantage of the gear-motor is that it has a very robust design. Although the servo has titanium gears, it is not designed to take any load in the direction orthogonal to the axis so this needs to be accounted for if the servo is to be used.
It is also worth considering slightly faster servos. For example, the servo
HSR-5925 MG has a maximum speed of 125 rpm, but the torque drops to 0.9 Nm. It may be a solution to use two servos for each thread which would double the torque, but I am not sure what will happen if the two servos act on the same thread but are controlled by different control circuits. It is possible that they will accidentally counteract each other.
Here are the equations used to do the motor calculations:
r: radius of the wheel (or thread) in meters
w: weight of the robot in kg
v: maximum incline of the ground
s: desired speed of the robot in meters per second
a: desired acceleration of the robot in meters per second squared
g: gravitational acceleration (= 9.81 m/s2)
We can now calculate the require speed S of the motor in rotations per minute as
S = 60 s / 2 π r
The required torque M (in Nm) is calculated as
M = [ a + g sin(v) ] r w
Remember to check that the sin-calculation uses degrees if the incline angles are given in degrees.