Hi guys,
I have been working with DC motors for a very long time. The ones I work
with are called starter motors on very big diesels. These have lifetimes
like all DC motors. The big problem on small motors that aren't heat sinked
is breakdown of the varnish that is on the armature windings.
A bigger problem is the commutator surface. Normally it is an even surface of copper
that the brushes contact. Over time this surface gets hit with constant
current spikes. If brush wear is even then the current is distibuted evenly.
If hot spots occur then the surface starts getting burned. The more
burning the more nonconduction of the surface and the motor starts losing
performance. Take an old DC (or AC) brushed motor apart and look at the
commutator. I have been amazed at some of these still working despite their
appearance. If your motor doesn't turn and some one moves the drive
wheel ( do this with an object not your hand) and all of a sudden the motor
starts moving then you may have commutator brush problems. When you
move the motor it goes to a different spot on the commutator that isn't
burned then it starts to spin.
HOT Cims also can affect brush springs. As they get softer they don't exert
as much force on the commutator. Less force less contact less current. The
dust from the brushes also gets in the brush retainers thus they don't slide.
The problem with CIMs is like all DC motors they will spin like crazy with
no load and sound just fine. You must load the motor to test it. A little
Dyno would be perfect.
I advocate what many of you already said. Run your bot for a test run
on the carpeted practice area. Then feel all the connections. Any heat
is lost voltage. Its that simple. A simple thing to do is carefully place
a voltmeter in the Robot where you can easily see it. Make leads that
attach from the battery lead to the input side of your motor controller.
When the robot is running it should not drop more than a few tenths of
a volt. If it is you are losing voltage thats a bad thing. If you are then
just start probing from the battery to the next thing and so on until you
find out who is dropping all the voltage. A loose connection can get so
hot it will burn

your fingers so be careful.
If you find you are delivering full voltage to the controller then you need to
see what voltage is being applied to your motor at full throttle. It should
be at least 95% of the applied voltage. (Your motor control uses parallel
MosFets that act as switches that turn on and off very fast, the motor
armature is an inductor so this integrates an RMS current through the
winding and produces Electro motive Force to spin the motor ) As you
approach full signal the mosfets turn on for such a long time verus off
that it will appear as the MosFets are fully on. (they still have Rds on though)
I put a lot of buzz words in here so you guys can hit Wikipedia to learn
more.
The summary is Check your system for voltage drops, (heat or voltmeter)
You need to have the robot under load to do this so
DO IT SAFELY, have a mentor around to observe
If you have full voltage then clean out your drive line
of carpet fuzz, check bearings (for string,hair), clean chains
If you still seem to not have the power it may be prudent
to change out the CIMS. If you have two maybe you can
change one at a time to see if only one is bad.
Sorry for the long post but knowledge is Power

(ha-ha)