Jeff Shelton 12 February 2015 - Purdue University · 2015. 2. 9. · Jeff Shelton – 12 February...

92
Jeff Shelton – 12 February 2015 1

Transcript of Jeff Shelton 12 February 2015 - Purdue University · 2015. 2. 9. · Jeff Shelton – 12 February...

  • Jeff Shelton – 12 February 2015

    1

  • Jeff Shelton – 12 February 2015 2

  • Jeff Shelton – 12 February 2015

    3

  • Jeff Shelton – 12 February 2015

    4

    LS

    RS

    CLOSE

  • Jeff Shelton – 12 February 2015

    LEFT

    RIGHT

    FORWARD

    5

  • Jeff Shelton – 12 February 2015

    6

    LEFT

    RIGHT

    FORWARD

    LS

    RS

    CLOSE

  • Jeff Shelton – 12 February 2015

    7

    LEFT

    RIGHT

    FORWARD

    LS

    RS

    CLOSE

  • Jeff Shelton – 12 February 2015

    8

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    L R F Inputs: LS RS CL

    9

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    L R F Inputs: LS RS CL

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    10

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    L R F Inputs: LS RS CL

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    11

    By convention, the initial (starting) state is typically named S0. If this is not the

    case, you should indicate the initial state for your FSM.

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100

    12

    Object detected to left of robot!

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    13

    Object detected to right of robot!

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    14

    Object still present to left

    of robot

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    15

    Object directly ahead

    of robot!

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    16

    Object now on right side

    of robot

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    17

    Object detected on both sides of robot

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    18

    Object directly ahead

    of robot!

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    19

    Object still present to

    right of robot

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    20

    Object now on left side of

    robot

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    110

    21

    Object detected on both sides of robot

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    110

    110

    22

    Object detected on both sides of robot

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    110

    110

    xx1

    23

    Object directly ahead

    of robot!

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    110

    110

    xx1

    xx1

    24

    Object directly ahead

    of robot!

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    110

    110

    xx1

    xx1

    000

    25

    Default movement is to move forward…

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    110

    110

    xx1

    xx1

    000

    000

    26

    … and make right hand turns

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    110

    110

    xx1

    xx1

    000

    000 000

    27

    … until one of the sensors detects an

    object.

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1 010

    100

    110

    110

    xx1

    xx1

    000

    000 000

    28

    We can merge two inputs for S2…

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    29

    Are we done?

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    30

    Are all the input combinations

    handled?

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    31

    001 011 101 111

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    32

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    33

    001 011 101 111

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    34

    001 011 101 111

    Oops! We missed one!

    000

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    35

    000

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    36

    001 011 101 111

    000 000 010

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    37

    000

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    000 0x0

    38

    000

    001 011 101 111

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    0x0 0x0

    39

    000

    001 011 101 111

    000 010

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    0x0 0x0

    40

    000

    001 011 101 111

    000 010

    100

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    0x0 0x0

    41

    000

    001 011 101 111

    000 010

    100

    110

  • Jeff Shelton – 12 February 2015

    1 0 1

    0 0 1

    0 1 1

    S1 (LT) S2 (RT)

    S0 (STOP)

    0 0 0

    S3 (FOR)

    Sx (xxx)

    L R F Inputs: LS RS CL

    100 010

    100

    xx1

    010

    110

    xx1

    100

    110

    110

    xx1

    xx1

    000

    0x0 0x0

    42

    000

    100

    110

  • Jeff Shelton – 12 February 2015

  • Jeff Shelton – 12 February 2015 44

    P

    N

  • Jeff Shelton – 12 February 2015

    45

    P

    N

  • Jeff Shelton – 12 February 2015 46

    P Start N P

  • Jeff Shelton – 12 February 2015 47

    P N Start

  • Jeff Shelton – 12 February 2015 48

    P N Start

  • Jeff Shelton – 12 February 2015 49

    P N Start

  • Jeff Shelton – 12 February 2015 50

    Start P N

  • Jeff Shelton – 12 February 2015 51

    P N

  • Jeff Shelton – 12 February 2015 52

    P N

  • Jeff Shelton – 12 February 2015 53

    P N

  • Jeff Shelton – 12 February 2015 54

    N P

  • Jeff Shelton – 12 February 2015 55

    P N

  • Jeff Shelton – 12 February 2015

    56

    P

    N

  • Jeff Shelton – 12 February 2015

    57

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    58

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    59

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    00 Exactly on target…

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    60

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    01

    00

    Beyond target position

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    61

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00

    Not yet to target position

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    62

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    Treat as either a "don't care," condition or as an

    error… maybe create an emergency

    shutdown state?

    We shouldn't get a 7/8ths signal when

    we are stopped

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    63

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    64

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00 Exactly on target…

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    65

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    Again, either a "don't care," or an error…

    We're not able to jump to the other side of the target without passing through the

    7/8ths zone

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    66

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10 Not yet to target…

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    67

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 7/8ths of way to target

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    68

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11

  • Jeff Shelton – 12 February 2015

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    69

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    Exactly on target…

  • Jeff Shelton – 12 February 2015

    01

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    70

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X"

    Another "don't care," or an error…

    Shouldn't be able to jump to other side of

    the target without passing through

    target

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    71

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    01

    Shouldn't get a "P" signal when already in

    7/8ths zone

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    72

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    01

    Still in 7/8ths zone

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    73

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    01

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    74

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00 Exactly on target…

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    75

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01

    Approaching target from

    negative side

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    76

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01 10

    Another "don't care" or error

    state

    Can't jump to opposite side of

    7/8ths zone

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    77

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01 10

    11 Inside 7/8ths zone

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    78

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01 10

    11

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    79

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01 10

    11 00

    Exactly on target…

  • Jeff Shelton – 12 February 2015

    01

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    80

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01 10

    11 00

    "X" Can't jump away from target while moving towards it

    "Don't care" or error

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    81

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01 10

    11 00

    10 "X"

    01 Can't jump to other side of

    target

    "Don't care" or error

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    82

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01 10

    11 00

    10 "X"

    01

    11

    Still in 7/8ths zone

  • Jeff Shelton – 12 February 2015

    10

    Sx (xxx)

    F R S

    Q1 Q2 Q3

    Inputs: P N

    83

    S0 (STOP)

    0 0 0

    0 0 0

    S2 (REVERSE)

    0 1 0

    0 1 0

    0 1 1

    S4 (SLOW REV)

    0 1 1

    S3 (SLOW FOR)

    1 0 1

    1 0 1

    S1 (FORWARD)

    1 0 0

    1 0 0

    10 01

    00 11 "X"

    00

    "X"

    01

    10

    11 00

    "X" 01

    11

    00

    01 10

    11 00

    10 "X"

    01

    11

  • Jeff Shelton – 12 February 2015 84

    Input Current State Next State Output

    P N F R S

    0 0 S0 S0 0 0 0

    0 0 S1 S0 1 0 0

    0 0 S2 S0 0 1 0

    0 0 S3 S0 1 0 1

    0 0 S4 S0 0 1 1

    0 1 S0 S2 0 0 0

    0 1 S1 X 1 0 0

    0 1 S2 S2 0 1 0

    0 1 S3 X 1 0 1

    0 1 S4 X 0 1 1

    1 0 S0 S1 0 0 0

    1 0 S1 S1 1 0 0

    1 0 S2 X 0 1 0

    1 0 S3 X 1 0 1

    1 0 S4 X 0 1 1

    1 1 S0 X 0 0 0

    1 1 S1 S3 1 0 0

    1 1 S2 S4 0 1 0

    1 1 S3 S3 1 0 1

    1 1 S4 S4 0 1 1

  • Jeff Shelton – 12 February 2015 85

    Input Current State Next State Output

    P N Q0 Q1 Q2 Q0* Q1* Q2* F R S

    0 0 0 0 0 0 0 0 0 0 0

    0 0 0 1 0 0 0 0 0 1 0

    0 0 0 1 1 0 0 0 0 1 1

    0 0 1 0 0 0 0 0 1 0 0

    0 0 1 0 1 0 0 0 1 0 1

    0 1 0 0 0 0 1 0 0 0 0

    0 1 0 1 0 0 1 0 0 1 0

    0 1 0 1 1 X X X 0 1 1

    0 1 1 0 0 X X X 1 0 0

    0 1 1 0 1 X X X 1 0 1

    1 0 0 0 0 1 0 0 0 0 0

    1 0 0 1 0 X X X 0 1 0

    1 0 0 1 1 X X X 0 1 1

    1 0 1 0 0 1 0 0 1 0 0

    1 0 1 0 1 X X X 1 0 1

    1 1 0 0 0 X X X 0 0 0

    1 1 0 1 0 0 1 1 0 1 0

    1 1 0 1 1 0 1 1 0 1 1

    1 1 1 0 0 1 0 1 1 0 0

    1 1 1 0 1 1 0 1 1 0 1

  • Jeff Shelton – 12 February 2015

    Q1 Q2Q0*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q0*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    86

  • Jeff Shelton – 12 February 2015

    Q1 Q2Q0*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q0*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    87

    0 0 X 0

    0 0 X 1

    0 0 X 0

    1 1 1 X

    0 0 0 X

    0 0 1 X

    X 0 X X

    X 0 X X

    X 0 X X

    X X 1 X

    X X 0 X

    X X 1 X

    0 X X X

    0 X X X

    0 X X X

    X X X 1

    X X X 1

    X X X 0

    0 X X 0

    0 X X 1

    0 X X 0

    X X X 1

    X X X 1

    X X X 0

  • Jeff Shelton – 12 February 2015

    Q1 Q2Q0*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q0*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    88

    0 0 X 0

    0 0 X 1

    0 0 X 0

    1 1 1 X

    0 0 0 X

    0 0 1 X

    X 0 X X

    X 0 X X

    X 0 X X

    X X 1 X

    X X 0 X

    X X 1 X

    0 X X X

    0 X X X

    0 X X X

    X X X 1

    X X X 1

    X X X 0

    0 X X 0

    0 X X 1

    0 X X 0

    X X X 1

    X X X 1

    X X X 0

    𝑄0∗ = 𝑃 ⋅ 𝑄1

  • Jeff Shelton – 12 February 2015

    Q1 Q2Q0*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q0*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    89

    0 0 X 0

    0 0 X 1

    0 0 X 0

    1 1 1 X

    0 0 0 X

    0 0 1 X

    X 0 X X

    X 0 X X

    X 0 X X

    X X 1 X

    X X 0 X

    X X 1 X

    0 X X X

    0 X X X

    0 X X X

    X X X 1

    X X X 1

    X X X 0

    0 X X 0

    0 X X 1

    0 X X 0

    X X X 1

    X X X 1

    X X X 0

    𝑄0∗ = 𝑃 ⋅ 𝑄1 𝑄1∗ = 𝑁 ⋅ 𝑄0

  • Jeff Shelton – 12 February 2015

    Q1 Q2Q0*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q0*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    90

    0 0 X 0

    0 0 X 1

    0 0 X 0

    1 1 1 X

    0 0 0 X

    0 0 1 X

    X 0 X X

    X 0 X X

    X 0 X X

    X X 1 X

    X X 0 X

    X X 1 X

    0 X X X

    0 X X X

    0 X X X

    X X X 1

    X X X 1

    X X X 0

    0 X X 0

    0 X X 1

    0 X X 0

    X X X 1

    X X X 1

    X X X 0

    𝑄0∗ = 𝑃 ⋅ 𝑄1 𝑄1∗ = 𝑁 ⋅ 𝑄0 𝑄2∗ = 𝑃 ⋅ 𝑁

  • Jeff Shelton – 12 February 2015

    Q1 Q2Q0*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q0*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q1*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 0) 00 01 11 10

    00

    01

    11N Q0

    10

    Q1 Q2Q2*

    (P = 1) 00 01 11 10

    00

    01

    11N Q0

    10

    91

    0 0 X 0

    0 0 X 1

    0 0 X 0

    1 1 1 X

    0 0 0 X

    0 0 1 X

    X 0 X X

    X 0 X X

    X 0 X X

    X X 1 X

    X X 0 X

    X X 1 X

    0 X X X

    0 X X X

    0 X X X

    X X X 1

    X X X 1

    X X X 0

    0 X X 0

    0 X X 1

    0 X X 0

    X X X 1

    X X X 1

    X X X 0

    𝑄0∗ = 𝑃 ⋅ 𝑄1 𝑄1∗ = 𝑁 ⋅ 𝑄0 𝑄2∗ = 𝑃 ⋅ 𝑁

    𝐹 = 𝑄0 𝑅 = 𝑄1 𝑆 = 𝑄2

  • Jeff Shelton – 12 February 2015

    92