Regarding controlling servo motors simultaneouly

Regarding controlling servo motors simultaneouly

Post by Kenneth W Ch » Tue, 11 Aug 1998 04:00:00



Does anyone know how to program servo motors with the BAsic Stamp II? I know
how to get the servos to go individually.  However, I want to control 2
servos simultaneously meaning I want them to move in sync with each other.  
Is there a way of doing it.  Also, I have Scott Edward's Mini SSC II
controller board .  


Thanks

KEn

--
Kenneth Chin
Box 0149
3700 Spruce St.
Philadelphia, PA 19104

"The horror! The horror!"
                -Heart of Darkness

 
 
 

Regarding controlling servo motors simultaneouly

Post by Tim Jacob » Tue, 11 Aug 1998 04:00:00



> Does anyone know how to program servo motors with the BAsic Stamp II? I know
> how to get the servos to go individually.  However, I want to control 2
> servos simultaneously meaning I want them to move in sync with each other.
> Is there a way of doing it.  Also, I have Scott Edward's Mini SSC II
> controller board .



It doesn't need to be simultaneous, just send one pulse to one servo,
then another to the other servo as soon as the first is done.

Ordinary PPM RC TXs use this arrangement for anything up to 8 servos.

The servos need a pulse every 10 to 16 ms or so, so you'll have some
spare processing time in there somewhere.

Hope this helps,

Tim

 
 
 

Regarding controlling servo motors simultaneouly

Post by Bob Cousi » Thu, 13 Aug 1998 04:00:00



>Is there such a long delay from the time the pulse is received until
>the servo actually moves to make that 1 mS difference negligible?  

I would have thought so. 1ms is not very long you know

Quote:>How long does it take from the time a pulse is received (trailing
>edge) until the servo actually 1) begins to move and 2) finishes
>moving approx 5 degrees.

The servo I happen to have here takes 3ms to move 1 degree, therefore 15ms for 5
degrees. I'm pretty sure you won't notice a delay of 1ms.

--
Bob Cousins, Software Engineer.
Home page at http://www.lintilla.demon.co.uk/

 
 
 

Regarding controlling servo motors simultaneouly

Post by Frank E Gennar » Thu, 13 Aug 1998 04:00:00


Excerpts from netnews.comp.robotics.misc: 12-Aug-98 Re: Regarding

Quote:>The servo that was almost centered would have already finished moving
>before the other finished receiving it's pulse.  Wouldn't it?  

>Is there such a long delay from the time the pulse is received until
>the servo actually moves to make that 1 mS difference negligible?  

>How long does it take from the time a pulse is received (trailing
>edge) until the servo actually 1) begins to move and 2) finishes
>moving approx 5 degrees.

    Servos update their positions about every 20ms, so the first servo
probably would not have started moving when the second one recieved its
pulse. It probably takes at least 50ms to move to its final position.
You won't even notice the 1ms difference. 1ms is only 1/1000 of a
second, which is a very short time for mechanical rotation. I made a
Stamp I control 3 servos simultanneously and it works fine. Why would
you need that accurate timing?

Frank

 
 
 

Regarding controlling servo motors simultaneouly

Post by Brian Scear » Thu, 13 Aug 1998 04:00:00



> This would still require approx. a 2 mS pulse (+ a small delta)
> for one and a 1 mS pulse (+ a small delta)  for the other (there
> would be a small delta from their original positions).
> The servo that was almost centered would have already finished
> moving before the other finished receiving it's pulse.  Wouldn't
> it?

I don't know, but let's do the arithmetic.

"Standard" servos take about 0.2 seconds to move 60 degrees (the
spec sheets don't usually say it, but that's what the "speed" figure
means -- time to move 60 degrees).  So, to move five degrees takes
5/60 * 0.2 ~= 17mS.

So, your first servo would probably not be at its destination before
the second servo starts moving.

--

            Read, think, (possibly) post -- do not alter this order.

 
 
 

Regarding controlling servo motors simultaneouly

Post by Jon Wit » Thu, 13 Aug 1998 04:00:00


Woooah! Go simple early!

Why not just pump the same control pulse to both servos? If you need
to be able to control them individually at some stage and can spare an
output - throw in some external logic.

        Jon Witte
        Deepest Norfolk, UK

 
 
 

Regarding controlling servo motors simultaneouly

Post by Chuck McMani » Thu, 13 Aug 1998 04:00:00



> Well you can't literally control servos simultaneously, but you
> can get SO CLOSE you'll never know the diff. Just put the commands
> directly after each other.

Mike responded:

Quote:> This has always bugged me.  I'm not sure I agree with the "you can't
> literally".

Mike is of course correct, the answer would be more appropriately "With
Scott Edward's design you cannot." That is because he designed it to
control individual servos, not a group of servos.

This "feature" of the SSC hit me big time when I built the Lynxmotion
arm. (www.lynxmotion.com) This arm uses several servos to move the arm,
and shipped with an SSC. However even at 9600 baud it take 12mS to
initiate six servo moves. Further, two of those servos are moving "in
parallel" (both tied to the shoulder joint) so they ideally get kicked
off at exactly the same time. Finally, path planning is impossible
because the different servos slew at full speed and that makes the
inverse kinematic equations difficult to say the least.

The "fix" was to write new PIC code that didn't start any servo until
all six had been set. Further slew rates are added to allow for
intermediate positioning.  However you no longer have a servo controller
you have a motion controller for an arm.

--Chuck

 
 
 

Regarding controlling servo motors simultaneouly

Post by Joe Covingto » Fri, 14 Aug 1998 04:00:00




> > Does anyone know how to program servo motors with the BAsic Stamp II? I know
> > how to get the servos to go individually.  However, I want to control 2
> > servos simultaneously meaning I want them to move in sync with each other.
> > Is there a way of doing it.  Also, I have Scott Edward's Mini SSC II
> > controller board .


> It doesn't need to be simultaneous, just send one pulse to one servo,
> then another to the other servo as soon as the first is done.

> Ordinary PPM RC TXs use this arrangement for anything up to 8 servos.

> The servos need a pulse every 10 to 16 ms or so, so you'll have some
> spare processing time in there somewhere.

> Hope this helps,

> Tim

Will the servos be commanded to *different* positions simultaneously?
If they are going to be commanded to the same position everytime
can't you just connect both to the same pin?

Just a thought!

 
 
 

Regarding controlling servo motors simultaneouly

Post by Dennis Cla » Fri, 14 Aug 1998 04:00:00


[snip]
: > It doesn't need to be simultaneous, just send one pulse to one servo,
: > then another to the other servo as soon as the first is done.
: >
: > Ordinary PPM RC TXs use this arrangement for anything up to 8 servos.
: >
: > The servos need a pulse every 10 to 16 ms or so, so you'll have some
: > spare processing time in there somewhere.

: Will the servos be commanded to *different* positions simultaneously?
: If they are going to be commanded to the same position everytime
: can't you just connect both to the same pin?

  Rarely.  Since a human is instigating the movement via joysticks, there
are measurable time delays on the human side.  Where the movement must
be coordinated, the servos are either on the same pin or have their actions
"mixed" at the transmitter so that they get the instructions at the same
time.

DLC
--
------------------------------------------------------------

| Hewlett Packard Ft. Collins NSD     Ft. Collins CO 80525 |
| Be well, Do good work, stay in touch -- Garrison Keillor |
------------------------- CUT HERE -------------------------

 
 
 

Regarding controlling servo motors simultaneouly

Post by Mike » Wed, 19 Aug 1998 04:00:00


On Wed, 12 Aug 1998 10:35:44 -0400, Frank E Gennari


>Excerpts from netnews.comp.robotics.misc: 12-Aug-98 Re: Regarding

>>The servo that was almost centered would have already finished moving
>>before the other finished receiving it's pulse.  Wouldn't it?  

>>Is there such a long delay from the time the pulse is received until
>>the servo actually moves to make that 1 mS difference negligible?  

>>How long does it take from the time a pulse is received (trailing
>>edge) until the servo actually 1) begins to move and 2) finishes
>>moving approx 5 degrees.

>    Servos update their positions about every 20ms, so the first servo
>probably would not have started moving when the second one recieved its
>pulse. It probably takes at least 50ms to move to its final position.
>You won't even notice the 1ms difference. 1ms is only 1/1000 of a
>second, which is a very short time for mechanical rotation. I made a
>Stamp I control 3 servos simultanneously and it works fine. Why would
>you need that accurate timing?

Servos update their positions at a rate depending on when the pulse is
repeated.  I assume when a pulse is first sent, that the servo begins
moving almost immediately.

I agree that a slew rate of 60 degrees in .22 seconds that the first
servo would still be moving when the second one started.  But, my
point is that there might be several mili-seconds when the two servos
are bucking each other.   Remember that these are controlled by Basic
instructions (not exactly the fastest); they might be controlled by an
SSC chip which takes mili-seconds just for the commands to be passed.

On an RC airplane this might not be a problem since we are talking
about air between the control surfaces.  But what about a mechanical
link that depends on two links moving simultaneously with each other.
This results in increased power drain, motor wear, etc.

Seems to me that it should be possible to design a servo controller
that can have servos move simultaneously with respect to each other.
Obviously there would probably still be some overlap but it seems that
it could be minimized.

1) Load up PWM pulse lengths
2) Start them all such that they all finish (trailing edge of pulse)
at the same time.
3) This would allow all to begin movement, with some known lag, at the
same time.

Are there any spec sheets on the Futaba servos?  I have looked and
cannot find any specifications on their control and operation.

- Show quoted text -

Quote:>Frank

 
 
 

Regarding controlling servo motors simultaneouly

Post by Onat Ahm » Thu, 20 Aug 1998 04:00:00


 In Mike 's opinion;

: On Wed, 12 Aug 1998 10:35:44 -0400, Frank E Gennari
:
: >Excerpts from netnews.comp.robotics.misc: 12-Aug-98 Re: Regarding

: >>The servo that was almost centered would have already finished moving
: >>before the other finished receiving it's pulse.  Wouldn't it?  
: >>
: >>Is there such a long delay from the time the pulse is received until
: >>the servo actually moves to make that 1 mS difference negligible?  
: >>
: >>How long does it take from the time a pulse is received (trailing
: >>edge) until the servo actually 1) begins to move and 2) finishes
: >>moving approx 5 degrees.
: >
: >
: >    Servos update their positions about every 20ms, so the first servo
: >probably would not have started moving when the second one recieved its
: >pulse. It probably takes at least 50ms to move to its final position.
: >You won't even notice the 1ms difference. 1ms is only 1/1000 of a
: >second, which is a very short time for mechanical rotation. I made a
: >Stamp I control 3 servos simultanneously and it works fine. Why would
: >you need that accurate timing?
:
: Servos update their positions at a rate depending on when the pulse is
: repeated.  I assume when a pulse is first sent, that the servo begins
: moving almost immediately.
:
: I agree that a slew rate of 60 degrees in .22 seconds that the first
: servo would still be moving when the second one started.  But, my
: point is that there might be several mili-seconds when the two servos
: are bucking each other.   Remember that these are controlled by Basic
: instructions (not exactly the fastest); they might be controlled by an
: SSC chip which takes mili-seconds just for the commands to be passed.
:
: On an RC airplane this might not be a problem since we are talking
: about air between the control surfaces.  But what about a mechanical
: link that depends on two links moving simultaneously with each other.
: This results in increased power drain, motor wear, etc.
:
: Seems to me that it should be possible to design a servo controller
: that can have servos move simultaneously with respect to each other.
: Obviously there would probably still be some overlap but it seems that
: it could be minimized.
:
: 1) Load up PWM pulse lengths
: 2) Start them all such that they all finish (trailing edge of pulse)
: at the same time.
: 3) This would allow all to begin movement, with some known lag, at the
: same time.
:
:
: Are there any spec sheets on the Futaba servos?  I have looked and
: cannot find any specifications on their control and operation.
:
: >Frank
:

Hi;

This is the wrong way to do it! <hehe> For two servos, no problem, you
might be able to get it right most of the time, but things get difficult
if the two servos are commanded to similar pulse times. Then you might
not have enough speed to drop off the pulse to the first servo, and go
and drop it off for the second (think of driving 8-16 servos this way).
There is also the problem of ordering; which servo should you serve first?
Also, CPU utilization; you will need a pretty fast CPU to do it this way,
especially as the number of servos increase, but the CPU sits idle
about 95% of the time...

The *real* rc systems do it the other way that was stated, send one
pulse to one servo, wait, turn it off, and send to the next servo. The
maximum time difference between two servos is 2ms. I don't think
you would be worried about that (come to think of it, you are controlling
the servos at only 50Hz; too slow for any dynamic control anyway).

More info at my web pages.

| Ahmet ONAT  Kyoto Univ. Japan                                 |

| WWW page  : http://turbine.kuee.kyoto-u.ac.jp/staff/onat.html |
|             My 6 leg walker, RC airplanes & more in home page |

   Land mines kill civilians in peacetime! Support total ban.

 
 
 

Regarding controlling servo motors simultaneouly

Post by Mike » Thu, 20 Aug 1998 04:00:00




> In Mike 's opinion;

>: On Wed, 12 Aug 1998 10:35:44 -0400, Frank E Gennari

>:
>: >Excerpts from netnews.comp.robotics.misc: 12-Aug-98 Re: Regarding

>: >>The servo that was almost centered would have already finished moving
>: >>before the other finished receiving it's pulse.  Wouldn't it?  
>: >>
>: >>Is there such a long delay from the time the pulse is received until
>: >>the servo actually moves to make that 1 mS difference negligible?  
>: >>
>: >>How long does it take from the time a pulse is received (trailing
>: >>edge) until the servo actually 1) begins to move and 2) finishes
>: >>moving approx 5 degrees.
>: >
>: >
>: >    Servos update their positions about every 20ms, so the first servo
>: >probably would not have started moving when the second one recieved its
>: >pulse. It probably takes at least 50ms to move to its final position.
>: >You won't even notice the 1ms difference. 1ms is only 1/1000 of a
>: >second, which is a very short time for mechanical rotation. I made a
>: >Stamp I control 3 servos simultanneously and it works fine. Why would
>: >you need that accurate timing?
>:
>: Servos update their positions at a rate depending on when the pulse is
>: repeated.  I assume when a pulse is first sent, that the servo begins
>: moving almost immediately.
>:
>: I agree that a slew rate of 60 degrees in .22 seconds that the first
>: servo would still be moving when the second one started.  But, my
>: point is that there might be several mili-seconds when the two servos
>: are bucking each other.   Remember that these are controlled by Basic
>: instructions (not exactly the fastest); they might be controlled by an
>: SSC chip which takes mili-seconds just for the commands to be passed.
>:
>: On an RC airplane this might not be a problem since we are talking
>: about air between the control surfaces.  But what about a mechanical
>: link that depends on two links moving simultaneously with each other.
>: This results in increased power drain, motor wear, etc.
>:
>: Seems to me that it should be possible to design a servo controller
>: that can have servos move simultaneously with respect to each other.
>: Obviously there would probably still be some overlap but it seems that
>: it could be minimized.
>:
>: 1) Load up PWM pulse lengths
>: 2) Start them all such that they all finish (trailing edge of pulse)
>: at the same time.
>: 3) This would allow all to begin movement, with some known lag, at the
>: same time.
>:
>:
>: Are there any spec sheets on the Futaba servos?  I have looked and
>: cannot find any specifications on their control and operation.
>:
>: >Frank
>:

>Hi;

>This is the wrong way to do it! <hehe> For two servos, no problem, you
>might be able to get it right most of the time, but things get difficult
>if the two servos are commanded to similar pulse times. Then you might
>not have enough speed to drop off the pulse to the first servo, and go
>and drop it off for the second (think of driving 8-16 servos this way).

Not talking about Basic, I'm talking about H/W controller, where you
would send all commands (pulse widths) followed by a command (enable)
to initiate the motion.

- Show quoted text -

>There is also the problem of ordering; which servo should you serve first?
>Also, CPU utilization; you will need a pretty fast CPU to do it this way,
>especially as the number of servos increase, but the CPU sits idle
>about 95% of the time...

>The *real* rc systems do it the other way that was stated, send one
>pulse to one servo, wait, turn it off, and send to the next servo. The
>maximum time difference between two servos is 2ms. I don't think
>you would be worried about that (come to think of it, you are controlling
>the servos at only 50Hz; too slow for any dynamic control anyway).

>More info at my web pages.

>| Ahmet ONAT  Kyoto Univ. Japan                                 |

>| WWW page  : http://turbine.kuee.kyoto-u.ac.jp/staff/onat.html |
>|             My 6 leg walker, RC airplanes & more in home page |

>   Land mines kill civilians in peacetime! Support total ban.

 
 
 

1. OT: Spindle/Servo Motor Control (NOT R/C servos)

I got this wonderful little spindle from Westwind, Model 1487/01. It has
airbearings and an air pressured automatic spindle and - of course - no
controller.

Can anyone point me into a direction on learning more about those
controllers (i.e. MCS LA200 seems compatible) and how to build them?

Are the pinouts or any more other data available on those spindles?

Any help is greatly appreciated!

Matthias

2. probleme lors de l'envoi d'un mail externe

3. help me regarding motor control

4. Has anyone used LAPBAPI comm. software?

5. Multiple Servo Motors Control with OOPic II

6. Cisco 827 - logging on, but nothing being logged

7. Hardwired servo motor control?

8. Any experience with running multi threaded server on sco (to save on memory)

9. servo motor control

10. Stepper motor /servo control resources

11. More on servo hack for speed control and notes about used motors

12. servo motor control unit