]> rtime.felk.cvut.cz Git - eurobot/public.git/commitdiff
robofsm: Add files with statecharts personal/silhape2/demo-boost
authorPetr Silhavik <silhavik.p@gmail.com>
Fri, 1 Mar 2013 13:35:38 +0000 (14:35 +0100)
committerPetr Silhavik <silhavik.p@gmail.com>
Fri, 1 Mar 2013 13:35:38 +0000 (14:35 +0100)
src/robofsm/demo.dot [new file with mode: 0644]
src/robofsm/demo.eps [new file with mode: 0644]
src/robofsm/fsmmove.dot [new file with mode: 0644]
src/robofsm/move.eps [new file with mode: 0644]

diff --git a/src/robofsm/demo.dot b/src/robofsm/demo.dot
new file mode 100644 (file)
index 0000000..e7e5a6e
--- /dev/null
@@ -0,0 +1,50 @@
+digraph statecharts {
+  ratio = 1.5;
+  subgraph asynchronous_state_machine {
+    init [peripheries=2]
+  }
+  subgraph demo {
+    init [peripheries=2]
+    competing [label=<competing>]
+    competing -> survey [style = dashed]
+    subgraph cluster_competing {
+      label = "competing"
+      survey [peripheries=2]
+      approach_target [label=<approach_target>]
+      approach_target -> recognize_init [style = dashed]
+      subgraph cluster_approach_target {
+        label = "approach_target"
+        recognize_init [peripheries=2]
+        get_target_back [label=<get_target_back>]
+        get_target_load [label=<get_target_load>]
+        get_target_touch [label=<get_target_touch>]
+        get_target_turn [label=<get_target_turn>]
+        recognize [label=<recognize>]
+        recognize_init [label=<recognize_init>]
+      }
+      go_home [label=<go_home>]
+      move_around [label=<move_around>]
+      survey [label=<survey>]
+    }
+    init [label=<init>]
+    wait_for_start [label=<wait_for_start>]
+  }
+  init -> wait_for_start [label = "evEntry"]
+  wait_for_start -> competing [label = "evStart"]
+  survey -> move_around [label = "evTimer"]
+  survey -> move_around [label = "evMotionError"]
+  survey -> approach_target [label = "evTargetDetected"]
+  approach_target -> go_home [label = "evReturn"]
+  approach_target -> move_around [label = "evReturn"]
+  approach_target -> approach_target [label = "evMotionError"]
+  approach_target -> move_around [label = "evMotionError"]
+  move_around -> survey [label = "evMotionDone"]
+  move_around -> survey [label = "evMotionError"]
+  go_home -> go_home [label = "evTimer"]
+  recognize_init -> recognize [label = "evRunSubFSM"]
+  recognize -> get_target_turn [label = "evCameraDone"]
+  get_target_turn -> get_target_load [label = "evMotionDone"]
+  get_target_turn -> get_target_touch [label = "evMotionDone"]
+  get_target_touch -> get_target_turn [label = "evMotionDone"]
+  get_target_load -> get_target_back [label = "evTimer"]
+}
diff --git a/src/robofsm/demo.eps b/src/robofsm/demo.eps
new file mode 100644 (file)
index 0000000..83deaec
--- /dev/null
@@ -0,0 +1,824 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: statecharts
+%%Pages: 1
+%%BoundingBox: 36 36 879 1296
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {   % i j npages
+       /npages exch def
+       /j exch def
+       /i exch def
+       /str 10 string def
+       npages 1 gt {
+               gsave
+                       coordfont setfont
+                       0 0 moveto
+                       (\() show i str cvs show (,) show j str cvs show (\)) show
+               grestore
+       } if
+} bind def
+
+/set_font {
+       findfont exch
+       scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {                 % width text
+       /text exch def
+       /width exch def
+       gsave
+               width 0 gt {
+                       [] 0 setdash
+                       text stringwidth pop width exch sub text length div 0 text ashow
+               } if
+       grestore
+} def
+
+/boxprim {                             % xcorner ycorner xsize ysize
+               4 2 roll
+               moveto
+               2 copy
+               exch 0 rlineto
+               0 exch rlineto
+               pop neg 0 rlineto
+               closepath
+} bind def
+
+/ellipse_path {
+       /ry exch def
+       /rx exch def
+       /y exch def
+       /x exch def
+       matrix currentmatrix
+       newpath
+       x y translate
+       rx ry scale
+       0 0 1 0 360 arc
+       setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+       [       % layer color sequence - darkest to lightest
+               [0 0 0]
+               [.2 .8 .8]
+               [.4 .8 .8]
+               [.6 .8 .8]
+               [.8 .8 .8]
+       ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+       layercolorseq curlayer 1 sub layerlen mod get
+       aload pop sethsbcolor
+       /nodecolor {nopcolor} def
+       /edgecolor {nopcolor} def
+       /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+       /myupper exch def
+       /mylower exch def
+       curlayer mylower lt
+       curlayer myupper gt
+       or
+       {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 879 1296
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 843 1260 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% cluster_competing
+gsave
+1 setlinewidth
+0 0 0 graphcolor
+newpath 8 10.59 moveto
+8 910.91 lineto
+827 910.91 lineto
+827 10.59 lineto
+closepath stroke
+0 0 0 graphcolor
+14 /Times-Roman set_font
+381.5 894.31 moveto 72 (competing) alignedtext
+grestore
+% cluster_approach_target
+gsave
+1 setlinewidth
+0 0 0 graphcolor
+newpath 16 21.18 moveto
+16 624.93 lineto
+418 624.93 lineto
+418 21.18 lineto
+closepath stroke
+0 0 0 graphcolor
+14 /Times-Roman set_font
+160 608.33 moveto 114 (approach_target) alignedtext
+grestore
+% init
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+446 1221.59 27.14 18.38 ellipse_path stroke
+1 setlinewidth
+0 0 0 nodecolor
+446 1221.59 31.08 22.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+434.5 1217.99 moveto 23 (init) alignedtext
+grestore
+% wait_for_start
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+446 1094.59 80.11 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+397 1090.99 moveto 98 (wait_for_start) alignedtext
+grestore
+% init->wait_for_start
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 446 1198.89 moveto
+446 1177.82 446 1146.37 446 1123.52 curveto
+stroke
+0 0 0 edgecolor
+newpath 449.5 1123.38 moveto
+446 1113.38 lineto
+442.5 1123.38 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 449.5 1123.38 moveto
+446 1113.38 lineto
+442.5 1123.38 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+446 1151.99 moveto 55 (evEntry) alignedtext
+grestore
+% competing
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+446 973.59 62.23 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+410 969.99 moveto 72 (competing) alignedtext
+grestore
+% survey
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+446 835.59 44.09 18.38 ellipse_path stroke
+1 setlinewidth
+0 0 0 nodecolor
+446 835.59 48.05 22.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+422.5 831.99 moveto 47 (survey) alignedtext
+grestore
+% competing->survey
+gsave
+1 setlinewidth
+dashed
+0 0 0 edgecolor
+newpath 446 954.98 moveto
+446 932.9 446 895.68 446 868.65 curveto
+stroke
+0 0 0 edgecolor
+newpath 449.5 868.49 moveto
+446 858.49 lineto
+442.5 868.49 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 449.5 868.49 moveto
+446 858.49 lineto
+442.5 868.49 lineto
+closepath stroke
+grestore
+% approach_target
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+108 708.59 91.92 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+51 704.99 moveto 114 (approach_target) alignedtext
+grestore
+% survey->approach_target
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 400.75 827.87 moveto
+355.2 819.19 283.5 803.03 225 778.59 curveto
+195.5 766.27 164.56 747.46 141.91 732.44 curveto
+stroke
+0 0 0 edgecolor
+newpath 143.6 729.36 moveto
+133.35 726.69 lineto
+139.7 735.17 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 143.6 729.36 moveto
+133.35 726.69 lineto
+139.7 735.17 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+225 765.99 moveto 124 (evTargetDetected) alignedtext
+grestore
+% move_around
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+708 549.59 77.78 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+661 545.99 moveto 94 (move_around) alignedtext
+grestore
+% survey->move_around
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 422.1 815.82 moveto
+391.3 787.82 344.36 734.95 368 689.59 curveto
+422.7 584.65 511.01 650.26 621 606.59 curveto
+641.25 598.55 661.74 585.43 677.74 573.8 curveto
+stroke
+0 0 0 edgecolor
+newpath 680.22 576.32 moveto
+686.14 567.54 lineto
+676.03 570.71 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 680.22 576.32 moveto
+686.14 567.54 lineto
+676.03 570.71 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+368 704.99 moveto 56 (evTimer) alignedtext
+grestore
+% survey->move_around
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 441.96 813.12 moveto
+437.71 782.42 434.73 726.91 460 689.59 curveto
+505.14 622.93 551.46 647.15 621 606.59 curveto
+638.9 596.15 658.23 583.62 674.12 572.97 curveto
+stroke
+0 0 0 edgecolor
+newpath 676.23 575.77 moveto
+682.56 567.27 lineto
+672.31 569.96 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 676.23 575.77 moveto
+682.56 567.27 lineto
+672.31 569.96 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+460 704.99 moveto 100 (evMotionError) alignedtext
+grestore
+% approach_target->approach_target
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 181.25 719.79 moveto
+202.02 719.33 218 715.59 218 708.59 curveto
+218 702.79 207.04 699.24 191.48 697.92 curveto
+stroke
+0 0 0 edgecolor
+newpath 191.42 694.41 moveto
+181.25 697.39 lineto
+191.06 701.4 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 191.42 694.41 moveto
+181.25 697.39 lineto
+191.06 701.4 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+218 704.99 moveto 100 (evMotionError) alignedtext
+grestore
+% recognize_init
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+111 549.59 79.9 18.38 ellipse_path stroke
+1 setlinewidth
+0 0 0 nodecolor
+111 549.59 83.9 22.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+62.5 545.99 moveto 97 (recognize_init) alignedtext
+grestore
+% approach_target->recognize_init
+gsave
+1 setlinewidth
+dashed
+0 0 0 edgecolor
+newpath 99.31 689.77 moveto
+95.31 680.08 91.01 667.95 89 656.59 curveto
+84.52 631.28 90.95 602.78 97.99 581.56 curveto
+stroke
+0 0 0 edgecolor
+newpath 101.32 582.66 moveto
+101.35 572.07 lineto
+94.72 580.33 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 101.32 582.66 moveto
+101.35 572.07 lineto
+94.72 580.33 lineto
+closepath stroke
+grestore
+% go_home
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+482 549.59 55.86 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+450.5 545.99 moveto 63 (go_home) alignedtext
+grestore
+% approach_target->go_home
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 102.18 690.07 moveto
+98.51 674.34 96.52 652.21 109 638.59 curveto
+156.23 587.04 358.47 635.79 422 606.59 curveto
+437.27 599.57 451.12 587.06 461.65 575.55 curveto
+stroke
+0 0 0 edgecolor
+newpath 464.46 577.65 moveto
+468.39 567.81 lineto
+459.18 573.05 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 464.46 577.65 moveto
+468.39 567.81 lineto
+459.18 573.05 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+109 643.99 moveto 64 (evReturn) alignedtext
+grestore
+% approach_target->move_around
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 131.55 690.52 moveto
+144.07 680.73 159.6 668.27 173 656.59 curveto
+181.77 648.95 181.36 643.3 192 638.59 curveto
+366.86 561.26 439.95 668.05 621 606.59 curveto
+642.11 599.43 663.1 585.91 679.17 573.84 curveto
+stroke
+0 0 0 edgecolor
+newpath 681.33 576.59 moveto
+687.1 567.7 lineto
+677.05 571.06 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 681.33 576.59 moveto
+687.1 567.7 lineto
+677.05 571.06 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+192 643.99 moveto 100 (evMotionError) alignedtext
+grestore
+% approach_target->move_around
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 177.39 696.25 moveto
+213.95 688.08 258.81 675.34 296 656.59 curveto
+307.59 650.75 306.97 643.46 319 638.59 curveto
+444.1 587.93 493.88 651.96 621 606.59 curveto
+642 599.1 662.98 585.57 679.08 573.58 curveto
+stroke
+0 0 0 edgecolor
+newpath 681.22 576.35 moveto
+687.02 567.48 lineto
+676.96 570.79 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 681.22 576.35 moveto
+687.02 567.48 lineto
+676.96 570.79 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+319 643.99 moveto 64 (evReturn) alignedtext
+grestore
+% recognize
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+113 422.59 58.19 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+79.5 418.99 moveto 67 (recognize) alignedtext
+grestore
+% recognize_init->recognize
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 111.36 526.89 moveto
+111.69 505.82 112.18 474.37 112.54 451.52 curveto
+stroke
+0 0 0 edgecolor
+newpath 116.05 451.43 moveto
+112.7 441.38 lineto
+109.05 451.32 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 116.05 451.43 moveto
+112.7 441.38 lineto
+109.05 451.32 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+113 479.99 moveto 100 (evRunSubFSM) alignedtext
+grestore
+% get_target_back
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+320 56.59 90.01 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+264 52.99 moveto 112 (get_target_back) alignedtext
+grestore
+% get_target_load
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+322 178.59 87.89 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+267.5 174.99 moveto 109 (get_target_load) alignedtext
+grestore
+% get_target_load->get_target_back
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 321.7 160.06 moveto
+321.37 140.27 320.85 108.63 320.47 85.54 curveto
+stroke
+0 0 0 edgecolor
+newpath 323.97 85.24 moveto
+320.31 75.3 lineto
+316.97 85.35 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 323.97 85.24 moveto
+320.31 75.3 lineto
+316.97 85.35 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+322 113.99 moveto 56 (evTimer) alignedtext
+grestore
+% get_target_touch
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+120 178.59 96.17 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+60 174.99 moveto 120 (get_target_touch) alignedtext
+grestore
+% get_target_turn
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+140 300.59 89.8 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+84.5 296.99 moveto 111 (get_target_turn) alignedtext
+grestore
+% get_target_touch->get_target_turn
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 135.36 197.07 moveto
+142.19 206.48 149.48 218.48 153 230.59 curveto
+156.92 244.08 154.8 259.38 151.23 272.24 curveto
+stroke
+0 0 0 edgecolor
+newpath 147.84 271.34 moveto
+148.14 281.94 lineto
+154.51 273.47 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 147.84 271.34 moveto
+148.14 281.94 lineto
+154.51 273.47 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+156 235.99 moveto 101 (evMotionDone) alignedtext
+grestore
+% get_target_turn->get_target_load
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 189.46 285.08 moveto
+212.48 276.46 239.48 264.28 261 248.59 curveto
+277.44 236.61 292.5 219.42 303.54 205.08 curveto
+stroke
+0 0 0 edgecolor
+newpath 306.38 207.13 moveto
+309.56 197.02 lineto
+300.77 202.94 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 306.38 207.13 moveto
+309.56 197.02 lineto
+300.77 202.94 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+281 235.99 moveto 101 (evMotionDone) alignedtext
+grestore
+% get_target_turn->get_target_touch
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 93.91 284.55 moveto
+77.7 276.43 61.23 264.78 52 248.59 curveto
+41.81 230.73 56.57 214.06 74.92 201.48 curveto
+stroke
+0 0 0 edgecolor
+newpath 76.97 204.32 moveto
+83.53 195.99 lineto
+73.21 198.42 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 76.97 204.32 moveto
+83.53 195.99 lineto
+73.21 198.42 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+52 235.99 moveto 101 (evMotionDone) alignedtext
+grestore
+% recognize->get_target_turn
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 117.1 404.06 moveto
+121.5 384.18 128.55 352.34 133.66 329.23 curveto
+stroke
+0 0 0 edgecolor
+newpath 137.12 329.82 moveto
+135.86 319.3 lineto
+130.28 328.3 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 137.12 329.82 moveto
+135.86 319.3 lineto
+130.28 328.3 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+129 357.99 moveto 107 (evCameraDone) alignedtext
+grestore
+% go_home->go_home
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 524.21 561.88 moveto
+541.46 562.65 556 558.55 556 549.59 curveto
+556 542.45 546.76 538.4 534.29 537.44 curveto
+stroke
+0 0 0 edgecolor
+newpath 534.26 533.94 moveto
+524.21 537.31 lineto
+534.17 540.94 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 534.26 533.94 moveto
+524.21 537.31 lineto
+534.17 540.94 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+556 545.99 moveto 56 (evTimer) alignedtext
+grestore
+% move_around->survey
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 693.97 567.88 moveto
+668.45 600.81 612.22 671.88 560 727.59 curveto
+532.86 756.54 499.73 787.48 476.2 808.79 curveto
+stroke
+0 0 0 edgecolor
+newpath 473.69 806.34 moveto
+468.61 815.64 lineto
+478.38 811.54 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 473.69 806.34 moveto
+468.61 815.64 lineto
+478.38 811.54 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+593 704.99 moveto 101 (evMotionDone) alignedtext
+grestore
+% move_around->survey
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 712.69 568.29 moveto
+720.29 603.16 731.21 678.97 697 727.59 curveto
+652.23 791.23 561.8 817.65 502.59 828.43 curveto
+stroke
+0 0 0 edgecolor
+newpath 501.9 825 moveto
+492.65 830.15 lineto
+503.1 831.89 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 501.9 825 moveto
+492.65 830.15 lineto
+503.1 831.89 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+713 704.99 moveto 100 (evMotionError) alignedtext
+grestore
+% wait_for_start->competing
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 446 1075.95 moveto
+446 1056.38 446 1025.34 446 1002.57 curveto
+stroke
+0 0 0 edgecolor
+newpath 449.5 1002.45 moveto
+446 992.45 lineto
+442.5 1002.45 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 449.5 1002.45 moveto
+446 992.45 lineto
+442.5 1002.45 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+446 1029.99 moveto 52 (evStart) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/src/robofsm/fsmmove.dot b/src/robofsm/fsmmove.dot
new file mode 100644 (file)
index 0000000..8b6f7ce
--- /dev/null
@@ -0,0 +1,35 @@
+digraph statecharts {
+ratio = 1.5;
+  subgraph FSMMotion {
+    MotionBase [peripheries=2]
+    MotionBase [label=<MotionBase>]
+    MotionBase -> wait_for_command [style = dashed]
+    subgraph cluster_MotionBase {
+      label = "MotionBase"
+      wait_for_command [peripheries=2]
+      lost [label=<lost>]
+      movement [label=<movement>]
+      wait_and_try_again [label=<wait_and_try_again>]
+      wait_for_command [label=<wait_for_command>]
+    }
+  }
+  subgraph asynchronous_state_machine {
+    MotionBase [peripheries=2]
+  }
+  wait_for_command -> movement [label = "evNewTarget"]
+  wait_for_command -> wait_and_try_again [label = "evNewTarget"]
+  movement -> lost [label = "evTrajectoryLost"]
+  movement -> wait_for_command [label = "evMoveStop"]
+  movement -> wait_and_try_again [label = "evObstacleSide"]
+  movement -> wait_and_try_again [label = "evObstacleBehind"]
+  movement -> wait_for_command [label = "evObstacle"]
+  movement -> wait_and_try_again [label = "evObstacle"]
+  movement -> wait_for_command [label = "evTrajectoryDone"]
+  lost -> movement [label = "evTimer"]
+  lost -> wait_and_try_again [label = "evTimer"]
+  lost -> wait_for_command [label = "evMoveStop"]
+  wait_and_try_again -> movement [label = "evTimer"]
+  wait_and_try_again -> wait_for_command [label = "evTimer"]
+  wait_and_try_again -> wait_for_command [label = "evTrajectoryDone"]
+  wait_and_try_again -> wait_for_command [label = "evMoveStop"]
+}
diff --git a/src/robofsm/move.eps b/src/robofsm/move.eps
new file mode 100644 (file)
index 0000000..dd7a784
--- /dev/null
@@ -0,0 +1,684 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: statecharts
+%%Pages: 1
+%%BoundingBox: 36 36 770 1133
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {   % i j npages
+       /npages exch def
+       /j exch def
+       /i exch def
+       /str 10 string def
+       npages 1 gt {
+               gsave
+                       coordfont setfont
+                       0 0 moveto
+                       (\() show i str cvs show (,) show j str cvs show (\)) show
+               grestore
+       } if
+} bind def
+
+/set_font {
+       findfont exch
+       scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {                 % width text
+       /text exch def
+       /width exch def
+       gsave
+               width 0 gt {
+                       [] 0 setdash
+                       text stringwidth pop width exch sub text length div 0 text ashow
+               } if
+       grestore
+} def
+
+/boxprim {                             % xcorner ycorner xsize ysize
+               4 2 roll
+               moveto
+               2 copy
+               exch 0 rlineto
+               0 exch rlineto
+               pop neg 0 rlineto
+               closepath
+} bind def
+
+/ellipse_path {
+       /ry exch def
+       /rx exch def
+       /y exch def
+       /x exch def
+       matrix currentmatrix
+       newpath
+       x y translate
+       rx ry scale
+       0 0 1 0 360 arc
+       setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+       [       % layer color sequence - darkest to lightest
+               [0 0 0]
+               [.2 .8 .8]
+               [.4 .8 .8]
+               [.6 .8 .8]
+               [.8 .8 .8]
+       ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+       layercolorseq curlayer 1 sub layerlen mod get
+       aload pop sethsbcolor
+       /nodecolor {nopcolor} def
+       /edgecolor {nopcolor} def
+       /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+       /myupper exch def
+       /mylower exch def
+       curlayer mylower lt
+       curlayer myupper gt
+       or
+       {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 770 1133
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 734 1097 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% cluster_MotionBase
+gsave
+1 setlinewidth
+0 0 0 graphcolor
+newpath 8.46 19.53 moveto
+8.46 908.31 lineto
+718.46 908.31 lineto
+718.46 19.53 lineto
+closepath stroke
+0 0 0 graphcolor
+14 /Times-Roman set_font
+322.96 891.71 moveto 81 (MotionBase) alignedtext
+grestore
+% MotionBase
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+400.46 1032.53 68.12 18.38 ellipse_path stroke
+1 setlinewidth
+0 0 0 nodecolor
+400.46 1032.53 72.09 22.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+359.96 1028.93 moveto 81 (MotionBase) alignedtext
+grestore
+% wait_for_command
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+400.46 769.53 103.94 18.38 ellipse_path stroke
+1 setlinewidth
+0 0 0 nodecolor
+400.46 769.53 107.94 22.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+334.96 765.93 moveto 131 (wait_for_command) alignedtext
+grestore
+% MotionBase->wait_for_command
+gsave
+1 setlinewidth
+dashed
+0 0 0 edgecolor
+newpath 400.46 1009.65 moveto
+400.46 962.91 400.46 856.3 400.46 802.25 curveto
+stroke
+0 0 0 edgecolor
+newpath 403.96 802.17 moveto
+400.46 792.17 lineto
+396.96 802.17 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 403.96 802.17 moveto
+400.46 792.17 lineto
+396.96 802.17 lineto
+closepath stroke
+grestore
+% movement
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+149.46 534.53 63.14 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+112.46 530.93 moveto 74 (movement) alignedtext
+grestore
+% wait_for_command->movement
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 377.35 747.11 moveto
+350.24 720.89 303.87 676.27 263.46 638.53 curveto
+234.09 611.1 199.99 580.1 176.79 559.13 curveto
+stroke
+0 0 0 edgecolor
+newpath 179.13 556.53 moveto
+169.36 552.43 lineto
+174.44 561.73 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 179.13 556.53 moveto
+169.36 552.43 lineto
+174.44 561.73 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+282.46 643.93 moveto 92 (evNewTarget) alignedtext
+grestore
+% wait_and_try_again
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+468.46 85.53 108.19 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+399.96 81.93 moveto 137 (wait_and_try_again) alignedtext
+grestore
+% wait_for_command->wait_and_try_again
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 315.84 755.51 moveto
+217.83 737.33 65.43 702.46 31.46 656.53 curveto
+-32.76 569.7 19.72 520.89 31.46 413.53 curveto
+43.4 304.39 44.09 252.32 133.46 188.53 curveto
+204.42 137.9 300.87 111.68 372.06 98.4 curveto
+stroke
+0 0 0 edgecolor
+newpath 372.72 101.84 moveto
+381.93 96.62 lineto
+371.47 94.95 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 372.72 101.84 moveto
+381.93 96.62 lineto
+371.47 94.95 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+31.46 418.93 moveto 92 (evNewTarget) alignedtext
+grestore
+% lost
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+571.46 310.53 28.99 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+558.96 306.93 moveto 25 (lost) alignedtext
+grestore
+% lost->wait_for_command
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 547.84 321.73 moveto
+499.26 344.98 391.88 397.67 382.46 413.53 curveto
+350.61 467.17 366.25 496.93 392.46 553.53 curveto
+414.91 602.02 457.02 589.17 477.46 638.53 curveto
+492.83 675.63 462.71 714.92 435.76 740.68 curveto
+stroke
+0 0 0 edgecolor
+newpath 433.26 738.22 moveto
+428.28 747.57 lineto
+438 743.37 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 433.26 738.22 moveto
+428.28 747.57 lineto
+438 743.37 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+392.46 530.93 moveto 85 (evMoveStop) alignedtext
+grestore
+% lost->movement
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 548.11 321.77 moveto
+541.82 324.54 534.96 327.34 528.46 329.53 curveto
+376.48 380.83 290.46 299.69 177.46 413.53 curveto
+153.46 437.72 148.42 478.15 148.08 505.56 curveto
+stroke
+0 0 0 edgecolor
+newpath 144.58 505.74 moveto
+148.16 515.71 lineto
+151.58 505.69 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 144.58 505.74 moveto
+148.16 515.71 lineto
+151.58 505.69 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+177.46 418.93 moveto 56 (evTimer) alignedtext
+grestore
+% lost->wait_and_try_again
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 563.21 292.5 moveto
+545.29 253.36 502.73 160.4 481.29 113.55 curveto
+stroke
+0 0 0 edgecolor
+newpath 484.39 111.92 moveto
+477.05 104.28 lineto
+478.03 114.83 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 484.39 111.92 moveto
+477.05 104.28 lineto
+478.03 114.83 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+523.46 193.93 moveto 56 (evTimer) alignedtext
+grestore
+% movement->wait_for_command
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 203.96 544.07 moveto
+257.07 556.37 335.88 583.15 378.46 638.53 curveto
+399.9 666.42 403.6 707.57 403.09 736.29 curveto
+stroke
+0 0 0 edgecolor
+newpath 399.58 736.51 moveto
+402.72 746.63 lineto
+406.58 736.77 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 399.58 736.51 moveto
+402.72 746.63 lineto
+406.58 736.77 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+388.46 643.93 moveto 85 (evMoveStop) alignedtext
+grestore
+% movement->wait_for_command
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 117.11 550.54 moveto
+75.77 573.15 12.9 616.2 42.46 656.53 curveto
+74.09 699.69 212.41 733.97 307.56 753.01 curveto
+stroke
+0 0 0 edgecolor
+newpath 307 756.47 moveto
+317.49 754.97 lineto
+308.36 749.6 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 307 756.47 moveto
+317.49 754.97 lineto
+308.36 749.6 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+42.46 643.93 moveto 76 (evObstacle) alignedtext
+grestore
+% movement->wait_for_command
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 140.82 553.23 moveto
+130.41 578.8 116.74 625.08 137.46 656.53 curveto
+173.71 711.56 242.95 739.89 301.29 754.43 curveto
+stroke
+0 0 0 edgecolor
+newpath 300.76 757.9 moveto
+311.3 756.82 lineto
+302.38 751.09 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 300.76 757.9 moveto
+311.3 756.82 lineto
+302.38 751.09 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+137.46 643.93 moveto 122 (evTrajectoryDone) alignedtext
+grestore
+% movement->lost
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 163.56 516.49 moveto
+187.39 486.39 235.2 427.85 257.46 413.53 curveto
+363.53 345.35 410.37 373.76 528.46 329.53 curveto
+531.77 328.29 535.19 326.93 538.59 325.52 curveto
+stroke
+0 0 0 edgecolor
+newpath 540.2 328.64 moveto
+548.01 321.48 lineto
+537.44 322.21 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 540.2 328.64 moveto
+548.01 321.48 lineto
+537.44 322.21 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+257.46 418.93 moveto 115 (evTrajectoryLost) alignedtext
+grestore
+% movement->wait_and_try_again
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 148.55 515.79 moveto
+146.81 491.39 141.8 447.81 127.46 413.53 curveto
+104.23 357.97 42.98 346.11 68.46 291.53 curveto
+123.79 173.03 277.84 121.42 377.81 99.89 curveto
+stroke
+0 0 0 edgecolor
+newpath 378.55 103.32 moveto
+387.62 97.84 lineto
+377.11 96.46 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 378.55 103.32 moveto
+387.62 97.84 lineto
+377.11 96.46 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+68.46 306.93 moveto 106 (evObstacleSide) alignedtext
+grestore
+% movement->wait_and_try_again
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 145.41 515.74 moveto
+140.96 491.66 135.54 448.79 144.46 413.53 curveto
+159.59 353.77 170.92 338.83 210.46 291.53 curveto
+276.29 212.81 376.23 143.45 430.37 108.85 curveto
+stroke
+0 0 0 edgecolor
+newpath 432.4 111.71 moveto
+438.98 103.4 lineto
+428.66 105.8 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 432.4 111.71 moveto
+438.98 103.4 lineto
+428.66 105.8 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+210.46 306.93 moveto 124 (evObstacleBehind) alignedtext
+grestore
+% movement->wait_and_try_again
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 144.11 515.97 moveto
+137.96 490.59 131.13 444.67 151.46 413.53 curveto
+200.39 338.6 268.95 390.5 334.46 329.53 curveto
+401.35 267.29 442.52 163.91 459.49 114.1 curveto
+stroke
+0 0 0 edgecolor
+newpath 462.91 114.91 moveto
+462.74 104.31 lineto
+456.26 112.7 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 462.91 114.91 moveto
+462.74 104.31 lineto
+456.26 112.7 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+368.46 306.93 moveto 76 (evObstacle) alignedtext
+grestore
+% wait_and_try_again->wait_for_command
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 496.74 103.5 moveto
+523.13 121.75 561.62 152.41 583.46 188.53 curveto
+603.31 221.36 630.44 298.38 609.46 329.53 curveto
+554.01 411.89 457.92 331.18 402.46 413.53 curveto
+371.03 460.21 455.71 463.64 477.46 515.53 curveto
+498.64 566.06 483.68 583.78 485.46 638.53 curveto
+485.72 646.53 488 648.95 485.46 656.53 curveto
+474.72 688.68 450.85 719.01 431.13 740.14 curveto
+stroke
+0 0 0 edgecolor
+newpath 428.47 737.86 moveto
+424.08 747.5 lineto
+433.53 742.7 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 428.47 737.86 moveto
+424.08 747.5 lineto
+433.53 742.7 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+402.46 418.93 moveto 56 (evTimer) alignedtext
+grestore
+% wait_and_try_again->wait_for_command
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 500.12 103.39 moveto
+528.85 121.25 570.17 151.36 593.46 188.53 curveto
+608.93 213.22 637.39 295.73 618.46 329.53 curveto
+583.57 391.85 516.35 351.21 481.46 413.53 curveto
+477.55 420.51 481.13 423.54 481.46 431.53 curveto
+485.62 531.55 524.75 562.13 491.46 656.53 curveto
+479.92 689.26 454.45 719.48 433.39 740.43 curveto
+stroke
+0 0 0 edgecolor
+newpath 430.9 737.96 moveto
+426.15 747.43 lineto
+435.77 742.99 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 430.9 737.96 moveto
+426.15 747.43 lineto
+435.77 742.99 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+481.46 418.93 moveto 122 (evTrajectoryDone) alignedtext
+grestore
+% wait_and_try_again->wait_for_command
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 503.34 103.06 moveto
+534.4 120.5 578.65 150.16 603.46 188.53 curveto
+637.98 241.91 634.79 266.39 627.46 329.53 curveto
+609.47 484.56 584.5 525.66 499.46 656.53 curveto
+479.5 687.25 451.65 718.27 430.57 740.02 curveto
+stroke
+0 0 0 edgecolor
+newpath 427.92 737.72 moveto
+423.42 747.31 lineto
+432.92 742.62 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 427.92 737.72 moveto
+423.42 747.31 lineto
+432.92 742.62 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+614.46 418.93 moveto 85 (evMoveStop) alignedtext
+grestore
+% wait_and_try_again->movement
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 473.14 104.32 moveto
+483.05 149.02 501.06 262.92 446.46 329.53 curveto
+363.03 431.34 246.77 312.45 162.46 413.53 curveto
+141.2 439.03 141.14 478.82 144.27 505.74 curveto
+stroke
+0 0 0 edgecolor
+newpath 140.81 506.29 moveto
+145.64 515.72 lineto
+147.75 505.34 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 140.81 506.29 moveto
+145.64 515.72 lineto
+147.75 505.34 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+468.46 306.93 moveto 56 (evTimer) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF