To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 13927
13926  |  13928
Subject: 
Motor mis-match.
Newsgroups: 
lugnet.robotics
Date: 
Mon, 15 Jan 2001 03:53:26 GMT
Original-From: 
Steve Baker <sjbaker1@airmail.net&AntiSpam&>
Reply-To: 
SJBAKER1@saynotospamAIRMAIL.NET
Viewed: 
784 times
  
I was having a boring evening - so I decided to test some theories
about Lego motors - and at the risk of seeming pedantic - here are
my findings:

Several times, people on this list have asked why their robots don't
drive in a straight line - the two most frequently given explanations
are:

  1) Mismatched motors.

  2) That all electric motors are somehow 'tuned' to run
     forwards - and hence run slower in reverse.

I was interested to see the magnitude of these two effects, so I
hooked up a rotation sensor to the output shaft of a motor and
wrote a little RCX program to run the motor forwards and backwards
for 10 seconds each - many times, displaying the rotation sensor
count on the LCD each time.

I tested all nine of my (modern Mindstorms) motors...which vary in
age between 3 months and a year - although it's impossible to say
which ones have had the most usage over that time.

I tested the motors first in the order 1,2,3,4,5,6,7,8,9, then
again in the order 9,8,7,6,5,4,3,2,1 just to ensure that the
batteries on my RCX weren't going flat or something. The results
varied a little from the first run of motor 1 to the last - and
the experimental error is in the region of 2% - even between
consecutive runs in the same direction with the same motor.

They mostly seem to rotate at about 800 rotation sensor 'clicks'
per 10 seconds which is 5 revs per second - or 300 RPM.  They might
go a little faster than that without the load of the rotation sensor
I guess - but as a practical matter, who cares?

The worst motor out of the nine managed only 788 clicks in 10 seconds
and the best did 891.  That's an 11% difference. (295 RPM versus
334 RPM) - presumably with a larger set of motors to test, including
some really old worn out/corroded ones and some really new ones - we'd
find greater variation even than that.

"Forwards" is defined here as the result of an "OnFwd" command
in NQC with the cable connected with it's "tail" pointing away from
the IR window on the RCX and running along the slot in the top of the
motor at the other end.

The theory that motors are optimised for that direction does
appear to be true - most motors ran slightly slower in reverse
than forwards - but generally only by 1 or 2% - which is less
than the experimental error...but I didn't find any motor that
ever ran faster 'backwards' than 'forwards' when averaged over
5 runs.  We may also deduce that the wiring arrangement that I
used is indeed the one that was intended to make the motor run
in the 'preferred' direction when you tell the RCX to make it
go "forwards".

My figures also suggest that motors run slightly faster when
cold than when hot (but only by about 1%).  On a series of five
10 second runs, nearly every motor ran slightly faster on the first
of the five runs than on the last.  You might say that was due to the
batteries being flatter after that time - but I checked that - and
motors had the same average speed on the second series of tests
with the same set of batteries as on the first...the only difference
I could think of being that the motor had time to cool off between runs.

I did some other tests with the motors connected to a long, complex
gear chain to provide some loading.  This reduced their speed to
about a quarter of the unloaded speed - but all the variations I saw
in the unloaded case seemed to hold true when the motors were loaded.

I also dismantled that chain of a dozen or so gearwheels - then
reassembled it to see if differences in how tightly I clamped the
axles and how accurately the gears were aligned would make much
difference - I was suprised to see about an 8% variation between
the two builds even though I'd taken as much care as I could not
to clamp anything too tightly of flop around too loosly causing the
gears to mis-align in either case.

I also tried connecting up all the Lego cables I own (a length of about
10 feet with about 20 connections along the way) to see if the voltage
drop would be noticable - and I saw about a 1% drop in speed with a couple
of quick tests...nothing terribly significant.

So - the conclusion is that almost certainly, the reason robots
don't go straight is PRIMARILY that Lego motors don't all go at
the same speed - and you can expect a 10% variation in speed
because of that.  The forwards versus reverse thing is also
a true statement - but it's *FAR* less significant because it
only affects the speed by about 1% in most motors.  Also (significantly)
even if you are quite careful, differences in your build technique
(how tightly you clamp the axles, etc) can easily make up for an 8%
difference in performance between the left and right drive chains
of your robot.  That huge variation alone is enough to doom efforts
to make something go in a straight line without some kind of measurement
device.

We can also say that the speed of motors varies by maybe 1 or 2%
over time for who knows what reasons ... temperature, phase-of-
the-moon, colour of robot?  Cable length doesn't matter much.

This means that if you drive forwards for 10 seconds then reverse for
10 seconds, the differences between running forwards and running backwards
will be comparable just to the random variations in motor speed over
that time.

We *need* stepper motors!

--
Steve Baker   HomeEmail: <sjbaker1@airmail.net>
              WorkEmail: <sjbaker@link.com>
              HomePage : http://web2.airmail.net/sjbaker1
              Projects : http://plib.sourceforge.net
                         http://tuxaqfh.sourceforge.net
                         http://tuxkart.sourceforge.net
                         http://prettypoly.sourceforge.net



Message has 4 Replies:
  Re: Motor mis-match.
 
Thank you! I'm glad to see someone has taken a semi-scientific approach to the whole question. I have one correction/comment to make though: It's doubtful that the Lego motors will heat up significantly enough to affect their operating speed. There (...) (24 years ago, 15-Jan-01, to lugnet.robotics)
  Re: Motor mis-match.
 
Steve Baker writes: > We *need* stepper motors! Noooooooo!!!!!! We need motors like servo motors, where they come in a box, and have a built-in controller. Except that they need to be multi-turn, and you need to be able to say "Measure the angular (...) (24 years ago, 15-Jan-01, to lugnet.robotics)
  Re: Motor mis-match.
 
(...) Very nice results! Another interesting thing to measure would be differences of the outputs. If you know these, you can put 3 motors each on its output and by changing the sequence measure whether the slowing down in a series is due to some (...) (24 years ago, 15-Jan-01, to lugnet.robotics)
  Re: Motor mis-match.
 
At 09:53 PM 1/14/01 -0600, you wrote: > I was having a boring evening - so I decided to test some theories > about Lego motors - and at the risk of seeming pedantic - here are > my findings: Did you reverse the motors by issuing the "Reverse" (...) (24 years ago, 15-Jan-01, to lugnet.robotics)

7 Messages in This Thread:





Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR