To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.technicOpen lugnet.technic in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Technic / 14423
14422  |  14424
Subject: 
Classic timing circuits and XOR gates (long)
Newsgroups: 
lugnet.technic
Date: 
Fri, 5 Aug 2005 19:06:04 GMT
Viewed: 
3229 times
  
I've been making progress on SSClagorpion draft 1.....

Inchworm ( http://www.kclague.net/Inchworm/index.htm ), Quad242 (
http://www.kclague.net/Quad242/index.htm ) and Hes363 are precursors to SSC in
many ways.  On Inchworm I invented an asynchronous design technique for creating
pneumatic circuits with complex waveforms.  In Quad242, I applied the technique
to create a quadraped that had no gravity well.  This means that quad242's body
does not go up and down as it walks.  This achieved:

0. Start with all feet down
1. Lift front left and back right legs
2. Sweep down legs back, and up legs forward
3. Drop up feet, so that all four feet are weight bearing.
4. Lift the front right and back left legs
5. Sweep the down legs back, and the up legs forward.
6. Drop up feet, so that all four feet are weight bearing.

Notice that step 6 leaves us in the initial state described by step 0, so we can
repeat steps 1/6 to achieve walking motion.

I also learned about walking backwards and turning with Quad242 using polarity
reversors.

In Hex363 (and PhD, PhD2) I moved from four legs to six legs.  Not a big change
from Quad242.

The asynchronous design technique I invented has advantages and disadvantages:

Advantages:

1.  It allows you to create complex piston sequences on paper, and know that
they will work.

2.  It makes sure that all piston movements are complete before moving onto the
next step.

3.  The pistons you use for muscle pistons (the things that actually move the
legs), are also used as timing pistons.

Disadvantages:

1.  If the timing pistons start out in a state (combination of pistons expanded
and contracted) that is not a valid step in the sequence, the circuit can lock
up, and no forward progress is made.

2.  Gravity tends to put the muscle pistons into wrong state (i.e. all legs
lifted.

3.  Creating the timing you want, can sometimes involve non-muscle pistons,
which slow down walking.

4.  Making sure all the legs are coordinated, can slow things down, because you
are always waiting for the slowest piston.

In the end, these creatures walk slowly, and tend to freeze up and stop walking.
This makes them less reliable than I like.  When Sigurd showed me his fabulous
hexapod walker, he mentioned that he ran into reliability problems too.

I was motivated by Mark Bellis' "pick and place" pneumatic arm, that picks
things up from one place, and drops them in another.  Mark's pneumatic arm does
not use my asynchronous design technique, and never locks up. It was Mark's use
of XOR gates to control the wrist that intrigued me.

XOR is a kind of calculation that computers use based on boolean logic.
Basically XOR tells you when two things are the same or different.

Mark used a classical pneumatic timing circuit used to create pneumatic engines
(as described on Dr. C. S. Soh's wonderful pneumatic website
http://www.fifth-r.com/cssoh1/develop.htm).

Pictorially this sequence looks like this:

http://www.brickshelf.com/cgi-bin/gallery.cgi?i=417362

Here is the waveform of the two piston timing circuit described by Dr. Soh:

   _   expanded
A / \_ contracted
    _  expanded
B _/ \ contracted

In Dr. Soh's diagram, piston B mimics piston A, and piston A mimics piston B but
does it backwards.  This is a negative feedback loop that makes the circuit go
through repeated cycles.  In words the cyle is:

1.  Piston A expands
2.  Piston B mimics piston A, so B expands
3.  Piston A mimics piston B, but backwards, so piston A contracts
4.  Piston B mimics piston A, so B contracts.
5.  Piston A mimics piston B, but backwards, so piston A expands (same as step
1)


When starting on SSClagorpion (yes, it is very much alive), I wanted to create a
faster and more reliable pneumatic circuit, compared to Quad242.  Quad242 goes
through a sequence of expanding and contracting to acheive the walking sequence
described above.  It can be drawn out graphically using waveforms.
    _     expand
A  / \___ contract raise and lower front left and back right legs
       _  expand
B  ___/ \ contract raise and lower front right and back left legs
     __   expand
C  _/  \_ contract sweep the up legs forward and the down legs back

To acheive this with my asycnchronous design technique we need two timing only
pistons, leading to four extra piston transitions (not shown in graph).  This
changes the minimal 6 step sequence into a 10 step sequence, slowing down the
design.

I realised that using a six piston classical timing circuit, I could acheive the
Quad 242 type sequence in six states.  In the timing circuit, piston B mimics
piston A, piston C mimics piston B, piston D mimics piston C, piston E mimics
piston D, piston F mimics piston E, and piston A mimics piston F, only
backwards.

Here is the timing diagram of the circuit.

     _____
A   /     \_____/
      _____
B   _/     \_____
       _____
C   __/     \____
        _____
D   ___/     \___
         _____
E   ____/     \__
          _____
F   _____/     \_
              10
    0123456789010 <- the cycle has started to repeat.

This circuit creates a 12 step sequence.  We can combine these piston states
using XOR gates to create a Quad242 walking sequence.

Here is a collage of four pictures show how an XOR gate works.  The stand alone
switches at the bottom of the picture represents the values being driven into
the XOR gate.

http://www.brickshelf.com/cgi-bin/gallery.cgi?i=433934

The four swtiches controlled by the piston form the XOR gate.  This is an old
picture, and not an optimal LEGO geometry for XOR's.  I borrowed the XOR
geometry from one of the pneumatic Marks (either Bellis or Tarrabain).  I'll
provide a picture as a follow up to this post.

To start with we need to create the pattern of leg lift for the front left and
back right legs.  We can do this by XORing piston A's state with piston C's
state.
     _____
A   /     \_____
       _____
C   __/     \___

     _     _
A^E / \___/ \___

The XOR output controls the front left and right back lift.  There are two
outputs of the XOR, one for the expand port on the front left and back right,
and the other for the contract ports.  The output of the XOR really looks like
this:
     _     _
A^E / \___/ \___ top left and back right leg lift cylinder expand port
       ___   ___ top left and bacl right leg lift culinder contract port
    \_/   \_/

When A and C are different, the XOR output applies pressure to the expand port
of the leg lift piston.  When A and C are the same, the XOR output applies
pressure to the contract port of the leg lift piston.

The pressure ports on Piston A are one input to the XOR, and the input to the
switches are hooked to the same pressure hoses that drive piston E.  The output
s of the XOR gate drive the leg lift pistons.

One thing to notice is that the six piston timing circuit creates a 12 step
sequence, but Quad242 is a six step sequence.  Notice that in the A XOR E we get
two leg lifts.  By using XOR gates, we get two Quad242 sequence for each central
timing circuit sequence.

Similary, by XORing and D and F we can create the pressure sequence to raise and
lower the front left and back right legs.

We can create the leg sweep timing by XORing B and E.

     _____
A   /     \_____/
      _____
B   _/     \_____
       _____
C   __/     \____
        _____
D   ___/     \___
         _____
E   ____/     \__
          _____
F   _____/     \_
              10
    0123456789010 <- the cycle has started to repeat.
     _     _
A^C / \___/ \___  front left, back right leg lift
        _     _
D^F ___/ \___/ \  front right, back left leg lift
      __    __
B^E _/  \__/  \_  up legs forward, down legs back

I've used this timing circuit and XOR technique to make the first SSClagorpion
walk.  Given that most of the pistons in this design have XOR gates (4
switches), plus the switch needed to create the basic timing circuit, most of
the pistons have to push and pull five switches.  This requires very high
pressure, making walking slow (again :^).  I got around this problem just as
Mark Bellis did in his "pick and place 'bot", by proving adding a second piston
to those pistons that have XOR gates on them.

I guess I've been droning on...... sorry.

In studying the possibilities of six piston timing circuit and XOR gates I came
up with all combinations of XORs for the six pistons.  The XOR patterns break
down into three groups:
  1. Piston expands and immedialy contracts (or visa versa) (5/1,1/5)
  2. Piston expands, waits for one piston transitions (or visa versa) (4/2,2/4)
  3. Piston expands, waits for two piston transitions (or visa versa) (3/3)

Not suprisingly, we can pick three of the waveforms to create Quad242 timing
circuit using two of group 2 and one of group three.

We can also create the sequence that my inchworm uses by using all of the group
1 waveforms.

Here is the all possible XORs of a six stage timing circuit.
     _____
A   /     \_____
      _____
B   _/     \____
       _____
C   __/     \___
        _____
D   ___/     \__
         _____
E   ____/     \_
          _____
F   _____/     \

          Group   (1) (2) (3)
     Duty Cycle   1/5 2/4 3/3
                  5/1 4/2
                                +------Inchworm
                                |   +--Quad242
                                V   V
A^B /\____/\____   x            x
     _     _
A^C / \___/ \___       x            x
     __    __
A^D /  \__/  \__           x
     ___   ___
A^E /   \_/   \_       x
     ____  ____
A^F /    \/    \   x            x

B^C _/\____/\___   x            x
      _     _
B^D _/ \___/ \__       x
      __    __
B^E _/  \__/  \_           x        x
      ___   ___
B^F _/   \_/   \       x

C^D __/\____/\__   x            x
       _     _
C^E __/ \___/ \_       x
       __    __
C^F __/  \__/  \           x

D^E ___/\____/\_   x            x
        _     _
D^F ___/ \___/ \       x            x

E^F ____/\____/\   x            x


Well, this is another one of my long diatribes about pneumatics, but usually
there are at least a few people who wade through a long post like this.

I hope it is comprehensible.

Kevin



Message has 2 Replies:
  Re: Classic timing circuits and XOR gates (long)
 
hi kevin, looks good, only a few thinks are not cleare to my, are the XOR gates somware in the body whare the don't have any oder function?....... and do the legs just need to keep up whit the central timing system?..... or did the walker make sure (...) (19 years ago, 8-Aug-05, to lugnet.technic)
  Re: Classic timing circuits and XOR gates (long)
 
In lugnet.technic, Kevin L. Clague wrote: (SNIP) (...) (SNIP) (...) (SNIP) (...) (SNIP) (...) Can I suggest that in order to avoid leaks (very important in walking robots!) you use the full XOR gate from my diagram: (URL) single switch is the right (...) (19 years ago, 8-Aug-05, to lugnet.technic)

25 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