Subject:
|
Re: SRS: Re: Servo Motor program: speed is fixed (unless close to stop value)
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Wed, 15 Dec 1999 20:14:47 GMT
|
Viewed:
|
682 times
|
| |
| |
Bryan ... of course the servo's pot is removed, but it's replaced with
either two fixed resistors or a pot which is not driven by the servo.
This allows you to adjust multiple servos to have exactly the same null
pulse width. I think (but don't know from experience) that some makes
of servos can be modified for motor use without removing the original
pot ... just disengaging it from the motor drive.
I guess that my explanation of slowing a modified servo wasn't very
clear. Here's another try: Let's say you have a servo that has had
it's pot removed and replaced with two fixed resistors of equal value.
When you send a pulse train of 1.8ms pulses to the servo it will turn
CW and when you send 1.3ms pulses the servo will turn CCW. At a pulse
width of around 1.5ms (1500us) the servo will think that it has found
the commanded position and will not drive its motor. Let's say that
for your servo that PW is exactly 1500us. If you send 1550us pulses
to the servo it will think that it is only slightly mispositioned, and
will turn its motor slowly. The same for 1450us pulses. The exact PW
values for the "fake" null position and the "fake" close to null
positions
has to be determined empirically. Each servo will be different. When
you send pulses that are much wider or narrower that the null value,
then
the servo's logic think, "Wow, I've got a long way to go so I'll go at
my fastest speed until I get close to the target position, and then I'll
start to slow down so that I don't overshoot and start oscillating." Of
course it never finds that "close to target" position since it only sees
the fixed resistors, so it never slows down. By sending a PW command
that is only slightly different than the null value we trick the servo
into thinking, "I'd better slow down, I'm almost there."
I hope this clears up any confusion I may have caused.
Play well,
- Nick -
Bryan Minugh wrote:
>
> The pot that could be driven close to the null position is extracted when
> the servo is modified for continuous rotation.
>
> ----- Original Message -----
> From: "Nick Taylor" <ntaylor@iname.com>
> To: "Bryan Minugh" <bminugh@uswest.net>
> Cc: <srs@seattlerobotics.org>
> Sent: Tuesday, December 14, 1999 11:46 PM
> Subject: Re: SRS: Re: Servo Motor program: speed is fixed (unless close to
> stop value)
>
> > Most servos automatically slow as the pot is driven to close to the
> > null position to prevent overshooting and hunting ... no need to do
> > it prgrammatically.
> > - Nick -
> >
> > Bryan Minugh wrote:
> > >
> > > Nick: Thanks for that hands-on-experience addendum to my post. The speed
> > > reduction you've seen for pulses close to the servo's stop value could be
> > > exploited as the servo nears the target position, to avoid over-shooting the
> > > mark. Likewise to get the faster wheel to wait for the slower one, without
> > > stopping it completely.
> > >
> > > -Bryan Minugh
> > >
> > > ----- Original Message -----
> > > From: "Nick Taylor" <ntaylor@iname.com>
> > > To: <srs@seattlerobotics.org>
> > > Sent: Tuesday, December 14, 1999 5:16 PM
> > > Subject: Re: SRS: Re: Servo Motor program: speed is fixed
> > >
> > > > Many (most? all?) RC servos slow down as they approach the null
> > > > point. You can take advantage of this to roughly control their
> > > > speed. Say that you've chosen exactly correct resistor values
> > > > (or used a pot), and that the servo is exactly on specification
> > > > (it won't be), then a 1.5ms (1500us) pulse will be the null pulse
> > > > width. For fast speed use a large change in PW, say 1.2ms for
> > > > one direction and 1.8ms for the other direction. You'll have
> > > > to determine the slow speed pulse width empirically ... try
> > > > 1550us, then adjust from there. The values for each servo will
> > > > almost certainly be different. Also, after you've found the
> > > > values that give the 'bot a straight line of travel when it is
> > > > first driven ... after it's been run for awhile it'll start to
> > > > curve in one direction of the other because of the heat generated
> > > > by the servo. The only way to get accurate speed and directional
> > > > control is to do what Bryan suggested ... and even then you'll
> > > > have failures caused by wheel slipage, so now you'll be in the
> > > > market for a Precision Navigation Vector compass. The process
> > > > of building and perfecting your robot never ends!
> > > >
> > > > Have fun and play well,
> > > > - Nick -
> > > >
> > > >
> > > >
> > > > Bryan Minugh wrote:
> > > > >
> > > > > The last four words of your post:
> > > > > "...at the same speed?"
> > > > > is something that can't be achieved with modified hobby servos. The motor
> > > > > runs at only one speed, and that speed varies from sample to sample. Only
> > > > > the direction and how long it turns can be controlled externally. Encoders can
> > > > > be added to count how many degrees each wheel has actually turned. When
> > > the
> > > > > encoders show one wheel has turned more than the other the software stops it
> > > > > until the slow one has "caught-up" (for traveling in a straight line with no
> > > > > wheel slippage).
> > > > >
> > > > > -Bryan Minugh
|
|
1 Message in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|