增加画行为树的代码
This commit is contained in:
parent
d44b0389b8
commit
576e312fec
|
@ -1,3 +0,0 @@
|
||||||
from . import navigate
|
|
||||||
from . import dstar_lite
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ import pickle
|
||||||
|
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from robowaiter.scene import scene
|
|
||||||
|
|
||||||
from robowaiter.algos.navigator.dstar_lite import DStarLite, euclidean_distance
|
from robowaiter.algos.navigator.dstar_lite import DStarLite, euclidean_distance
|
||||||
|
|
||||||
|
@ -94,6 +93,7 @@ class Navigator:
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
# 根据map计算并保存cost_map
|
# 根据map计算并保存cost_map
|
||||||
|
from robowaiter.scene import scene
|
||||||
|
|
||||||
file_name = 'map_4.pkl'
|
file_name = 'map_4.pkl'
|
||||||
if os.path.exists(file_name):
|
if os.path.exists(file_name):
|
||||||
|
|
|
@ -81,7 +81,8 @@ class Bahavior(ptree.behaviour.Behaviour):
|
||||||
|
|
||||||
|
|
||||||
# let behavior node interact with the scene
|
# let behavior node interact with the scene
|
||||||
def set_scene(self, scene):
|
def set_scene(self, scene=None):
|
||||||
|
if scene:
|
||||||
self.scene = scene
|
self.scene = scene
|
||||||
self.robot = scene.robot
|
self.robot = scene.robot
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ from typing import Any
|
||||||
|
|
||||||
class Selector(ptree.composites.Selector):
|
class Selector(ptree.composites.Selector):
|
||||||
print_name = "Selector"
|
print_name = "Selector"
|
||||||
|
ins_name = "Selector"
|
||||||
type = "Selector"
|
type = "Selector"
|
||||||
|
|
||||||
def __init__(self,*args,**kwargs):
|
def __init__(self,*args,**kwargs):
|
||||||
|
|
|
@ -3,6 +3,7 @@ from typing import Any
|
||||||
|
|
||||||
class Sequence(ptree.composites.Sequence):
|
class Sequence(ptree.composites.Sequence):
|
||||||
print_name = "Sequence"
|
print_name = "Sequence"
|
||||||
|
ins_name = "Selector"
|
||||||
type = "Sequence"
|
type = "Sequence"
|
||||||
|
|
||||||
def __init__(self,*args,**kwargs):
|
def __init__(self,*args,**kwargs):
|
||||||
|
|
|
@ -107,9 +107,12 @@ def format_trans_to_bracket(file_path: str) -> str:
|
||||||
for i in range(level):
|
for i in range(level):
|
||||||
ptml_new += '}'
|
ptml_new += '}'
|
||||||
|
|
||||||
import re
|
file_name = os.path.basename(file_path).split(".")[0]
|
||||||
new_path = re.sub('\\\[a-zA-Z0-9_]*\.ptml', '/bracket_ptml.ptml', file_path)
|
dir_path = os.path.dirname(file_path)
|
||||||
with open(new_path, 'w+') as file:
|
# import re
|
||||||
|
# new_path = re.sub('\\\[a-zA-Z0-9_]*\.ptml', '/bracket_ptml.ptml', file_path)
|
||||||
|
new_path = os.path.join(dir_path,file_name+"_bracket.ptml")
|
||||||
|
with open(new_path, 'w') as file:
|
||||||
file.write(ptml_new)
|
file.write(ptml_new)
|
||||||
return new_path
|
return new_path
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ class Robot(object):
|
||||||
self.action_list = None
|
self.action_list = None
|
||||||
|
|
||||||
|
|
||||||
def set_scene(self,scene):
|
def set_scene(self,scene=None):
|
||||||
self.scene = scene
|
self.scene = scene
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -111,10 +111,10 @@ def dot_tree(
|
||||||
if with_qualified_names:
|
if with_qualified_names:
|
||||||
node_label += f"\n({utilities.get_fully_qualified_name(behaviour)})"
|
node_label += f"\n({utilities.get_fully_qualified_name(behaviour)})"
|
||||||
'''
|
'''
|
||||||
if node_name == "Sequence":
|
# if node_name == "Sequence":
|
||||||
node_name = ">"
|
# node_name = ">"
|
||||||
if node_name == "Selector":
|
# if node_name == "Selector":
|
||||||
node_name = "?"
|
# node_name = "?"
|
||||||
return node_name
|
return node_name
|
||||||
|
|
||||||
fontsize = 20
|
fontsize = 20
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
selector
|
||||||
|
sequence
|
||||||
|
cond CustomerChatting()
|
||||||
|
act DealChat()
|
||||||
|
sequence
|
||||||
|
cond HasSubTask()
|
||||||
|
sequence
|
||||||
|
act SubTaskPlaceHolder()
|
||||||
|
sequence
|
||||||
|
cond FocusingCustomer()
|
||||||
|
act ServeCustomer()
|
||||||
|
sequence
|
||||||
|
cond NewCustomerComing()
|
||||||
|
selector
|
||||||
|
cond At(Robot,Bar)
|
||||||
|
act MoveTo(Bar)
|
||||||
|
act GreetCustomer()
|
|
@ -0,0 +1,28 @@
|
||||||
|
selector
|
||||||
|
{
|
||||||
|
sequence
|
||||||
|
{
|
||||||
|
cond CustomerChatting()
|
||||||
|
act DealChat()
|
||||||
|
|
||||||
|
} sequence
|
||||||
|
{
|
||||||
|
cond HasSubTask()
|
||||||
|
sequence
|
||||||
|
{
|
||||||
|
act SubTaskPlaceHolder()
|
||||||
|
|
||||||
|
} sequence
|
||||||
|
cond FocusingCustomer()
|
||||||
|
act ServeCustomer()
|
||||||
|
|
||||||
|
} sequence
|
||||||
|
{
|
||||||
|
cond NewCustomerComing()
|
||||||
|
selector
|
||||||
|
{
|
||||||
|
cond At(Robot,Bar)
|
||||||
|
act MoveTo(Bar)
|
||||||
|
|
||||||
|
} act GreetCustomer()
|
||||||
|
}}
|
|
@ -0,0 +1,21 @@
|
||||||
|
# from robowaiter.scene.scene import Scene
|
||||||
|
# from robowaiter.behavior_tree.ptml.ptmlCompiler import load
|
||||||
|
|
||||||
|
import os
|
||||||
|
from robowaiter.robot.robot import Robot
|
||||||
|
from robowaiter.utils.bt.draw import render_dot_tree
|
||||||
|
from robowaiter.utils.basic import get_root_path
|
||||||
|
from robowaiter.utils.bt.load import load_bt_from_ptml
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
# create robot
|
||||||
|
root_path = get_root_path()
|
||||||
|
ptml_path = os.path.join(root_path, 'robowaiter/utils/draw_bt/Default.ptml')
|
||||||
|
behavior_lib_path = os.path.join(root_path, 'robowaiter/behavior_lib')
|
||||||
|
bt = load_bt_from_ptml(None, ptml_path, behavior_lib_path)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
render_dot_tree(bt.root,name="test")
|
||||||
|
# build and tick
|
|
@ -0,0 +1,39 @@
|
||||||
|
digraph pastafarianism {
|
||||||
|
ordering=out;
|
||||||
|
graph [fontname="times-roman"];
|
||||||
|
node [fontname="times-roman"];
|
||||||
|
edge [fontname="times-roman"];
|
||||||
|
"a3ac082f-ad46-4cc9-86b4-3e76c3c564d3" [fillcolor=cyan, fontcolor=black, fontsize=20, height=0.01, label=Selector, shape=diamond, style=filled, width=0.01];
|
||||||
|
"717a1290-56bc-41e1-9b4b-e6df93d40e64" [fillcolor=orange, fontcolor=black, fontsize=20, height=0.01, label=Sequence, shape=octagon, style=filled, width=0.01];
|
||||||
|
"a3ac082f-ad46-4cc9-86b4-3e76c3c564d3" -> "717a1290-56bc-41e1-9b4b-e6df93d40e64";
|
||||||
|
"b3236b13-d5f2-4643-ae7c-6f27bd4ab6f2" [fillcolor=yellow, fontcolor=black, fontsize=20, label="CustomerChatting()", shape=ellipse, style=filled];
|
||||||
|
"717a1290-56bc-41e1-9b4b-e6df93d40e64" -> "b3236b13-d5f2-4643-ae7c-6f27bd4ab6f2";
|
||||||
|
"28015225-b7a4-4f38-b26f-4dbe5eea4154" [fillcolor=lawngreen, fontcolor=black, fontsize=20, label="DealChat()", shape=box, style=filled];
|
||||||
|
"717a1290-56bc-41e1-9b4b-e6df93d40e64" -> "28015225-b7a4-4f38-b26f-4dbe5eea4154";
|
||||||
|
"ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e" [fillcolor=orange, fontcolor=black, fontsize=20, height=0.01, label=Sequence, shape=octagon, style=filled, width=0.01];
|
||||||
|
"a3ac082f-ad46-4cc9-86b4-3e76c3c564d3" -> "ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e";
|
||||||
|
"2f77f976-499c-4601-9d8c-86dd80d66dfa" [fillcolor=yellow, fontcolor=black, fontsize=20, label="HasSubTask()", shape=ellipse, style=filled];
|
||||||
|
"ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e" -> "2f77f976-499c-4601-9d8c-86dd80d66dfa";
|
||||||
|
"2428792c-3896-443d-8744-f5e286644fad" [fillcolor=orange, fontcolor=black, fontsize=20, height=0.01, label=Sequence, shape=octagon, style=filled, width=0.01];
|
||||||
|
"ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e" -> "2428792c-3896-443d-8744-f5e286644fad";
|
||||||
|
"4bb7a9c3-521b-408f-b403-1fd25d54b192" [fillcolor=lawngreen, fontcolor=black, fontsize=20, label="SubTaskPlaceHolder()", shape=box, style=filled];
|
||||||
|
"2428792c-3896-443d-8744-f5e286644fad" -> "4bb7a9c3-521b-408f-b403-1fd25d54b192";
|
||||||
|
"64b2362a-d99e-4e99-8772-ad1419e53a2e" [fillcolor=orange, fontcolor=black, fontsize=20, height=0.01, label=Sequence, shape=octagon, style=filled, width=0.01];
|
||||||
|
"ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e" -> "64b2362a-d99e-4e99-8772-ad1419e53a2e";
|
||||||
|
"fd7124ba-c9d1-4fde-8063-e8337d335121" [fillcolor=yellow, fontcolor=black, fontsize=20, label="FocusingCustomer()", shape=ellipse, style=filled];
|
||||||
|
"64b2362a-d99e-4e99-8772-ad1419e53a2e" -> "fd7124ba-c9d1-4fde-8063-e8337d335121";
|
||||||
|
"169ebec9-3645-4fbb-a533-5186a8e5967b" [fillcolor=lawngreen, fontcolor=black, fontsize=20, label="ServeCustomer()", shape=box, style=filled];
|
||||||
|
"64b2362a-d99e-4e99-8772-ad1419e53a2e" -> "169ebec9-3645-4fbb-a533-5186a8e5967b";
|
||||||
|
"bea12066-ecbd-49b0-8934-efcb2c38b5f5" [fillcolor=orange, fontcolor=black, fontsize=20, height=0.01, label=Sequence, shape=octagon, style=filled, width=0.01];
|
||||||
|
"ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e" -> "bea12066-ecbd-49b0-8934-efcb2c38b5f5";
|
||||||
|
"a847a0cc-c5af-4757-aa8c-8baef72788dc" [fillcolor=yellow, fontcolor=black, fontsize=20, label="NewCustomerComing()", shape=ellipse, style=filled];
|
||||||
|
"bea12066-ecbd-49b0-8934-efcb2c38b5f5" -> "a847a0cc-c5af-4757-aa8c-8baef72788dc";
|
||||||
|
"99354f05-1716-46b2-9151-d88eac0a5b27" [fillcolor=cyan, fontcolor=black, fontsize=20, height=0.01, label=Selector, shape=diamond, style=filled, width=0.01];
|
||||||
|
"bea12066-ecbd-49b0-8934-efcb2c38b5f5" -> "99354f05-1716-46b2-9151-d88eac0a5b27";
|
||||||
|
"19de10a3-7554-43a3-b892-34cb2e32ab9a" [fillcolor=yellow, fontcolor=black, fontsize=20, label="At(Robot,Bar)", shape=ellipse, style=filled];
|
||||||
|
"99354f05-1716-46b2-9151-d88eac0a5b27" -> "19de10a3-7554-43a3-b892-34cb2e32ab9a";
|
||||||
|
"4286d652-c4ef-4522-a7f1-b5c865dcc4c9" [fillcolor=lawngreen, fontcolor=black, fontsize=20, label="MoveTo(Bar)", shape=box, style=filled];
|
||||||
|
"99354f05-1716-46b2-9151-d88eac0a5b27" -> "4286d652-c4ef-4522-a7f1-b5c865dcc4c9";
|
||||||
|
"a3766a34-5152-4f82-8fba-8bf1f6b3830b" [fillcolor=lawngreen, fontcolor=black, fontsize=20, label="GreetCustomer()", shape=box, style=filled];
|
||||||
|
"bea12066-ecbd-49b0-8934-efcb2c38b5f5" -> "a3766a34-5152-4f82-8fba-8bf1f6b3830b";
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 98 KiB |
|
@ -0,0 +1,211 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
|
||||||
|
-->
|
||||||
|
<!-- Title: pastafarianism Pages: 1 -->
|
||||||
|
<svg width="1699pt" height="417pt"
|
||||||
|
viewBox="0.00 0.00 1699.49 416.87" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 412.87)">
|
||||||
|
<title>pastafarianism</title>
|
||||||
|
<polygon fill="white" stroke="none" points="-4,4 -4,-412.87 1695.49,-412.87 1695.49,4 -4,4"/>
|
||||||
|
<!-- a3ac082f-ad46-4cc9-86b4-3e76c3c564d3 -->
|
||||||
|
<g id="node1" class="node">
|
||||||
|
<title>a3ac082f-ad46-4cc9-86b4-3e76c3c564d3</title>
|
||||||
|
<polygon fill="cyan" stroke="black" points="495.87,-408.87 412.37,-377.62 495.87,-346.37 579.37,-377.62 495.87,-408.87"/>
|
||||||
|
<text text-anchor="middle" x="495.87" y="-370.24" font-family="Times New Roman,serif" font-size="20.00">Selector</text>
|
||||||
|
</g>
|
||||||
|
<!-- 717a1290-56bc-41e1-9b4b-e6df93d40e64 -->
|
||||||
|
<g id="node2" class="node">
|
||||||
|
<title>717a1290-56bc-41e1-9b4b-e6df93d40e64</title>
|
||||||
|
<polygon fill="orange" stroke="black" points="395.38,-276.54 395.38,-296.35 352.9,-310.37 292.83,-310.37 250.35,-296.35 250.35,-276.54 292.83,-262.53 352.9,-262.53 395.38,-276.54"/>
|
||||||
|
<text text-anchor="middle" x="322.87" y="-279.07" font-family="Times New Roman,serif" font-size="20.00">Sequence</text>
|
||||||
|
</g>
|
||||||
|
<!-- a3ac082f-ad46-4cc9-86b4-3e76c3c564d3->717a1290-56bc-41e1-9b4b-e6df93d40e64 -->
|
||||||
|
<g id="edge1" class="edge">
|
||||||
|
<title>a3ac082f-ad46-4cc9-86b4-3e76c3c564d3->717a1290-56bc-41e1-9b4b-e6df93d40e64</title>
|
||||||
|
<path fill="none" stroke="black" d="M461.27,-358.78C435.8,-345.66 400.81,-327.62 372.38,-312.97"/>
|
||||||
|
<polygon fill="black" stroke="black" points="374.07,-309.9 363.58,-308.43 370.87,-316.13 374.07,-309.9"/>
|
||||||
|
</g>
|
||||||
|
<!-- ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e -->
|
||||||
|
<g id="node5" class="node">
|
||||||
|
<title>ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e</title>
|
||||||
|
<polygon fill="orange" stroke="black" points="742.38,-276.54 742.38,-296.35 699.9,-310.37 639.83,-310.37 597.35,-296.35 597.35,-276.54 639.83,-262.53 699.9,-262.53 742.38,-276.54"/>
|
||||||
|
<text text-anchor="middle" x="669.87" y="-279.07" font-family="Times New Roman,serif" font-size="20.00">Sequence</text>
|
||||||
|
</g>
|
||||||
|
<!-- a3ac082f-ad46-4cc9-86b4-3e76c3c564d3->ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e -->
|
||||||
|
<g id="edge4" class="edge">
|
||||||
|
<title>a3ac082f-ad46-4cc9-86b4-3e76c3c564d3->ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e</title>
|
||||||
|
<path fill="none" stroke="black" d="M530.24,-359C556.02,-345.79 591.68,-327.51 620.51,-312.74"/>
|
||||||
|
<polygon fill="black" stroke="black" points="621.74,-316.04 629.04,-308.37 618.55,-309.81 621.74,-316.04"/>
|
||||||
|
</g>
|
||||||
|
<!-- b3236b13-d5f2-4643-ae7c-6f27bd4ab6f2 -->
|
||||||
|
<g id="node3" class="node">
|
||||||
|
<title>b3236b13-d5f2-4643-ae7c-6f27bd4ab6f2</title>
|
||||||
|
<ellipse fill="yellow" stroke="black" cx="125.87" cy="-202.61" rx="125.87" ry="22.1"/>
|
||||||
|
<text text-anchor="middle" x="125.87" y="-195.24" font-family="Times New Roman,serif" font-size="20.00">CustomerChatting()</text>
|
||||||
|
</g>
|
||||||
|
<!-- 717a1290-56bc-41e1-9b4b-e6df93d40e64->b3236b13-d5f2-4643-ae7c-6f27bd4ab6f2 -->
|
||||||
|
<g id="edge2" class="edge">
|
||||||
|
<title>717a1290-56bc-41e1-9b4b-e6df93d40e64->b3236b13-d5f2-4643-ae7c-6f27bd4ab6f2</title>
|
||||||
|
<path fill="none" stroke="black" d="M278.16,-266.88C250.24,-255.28 213.99,-240.22 183.86,-227.7"/>
|
||||||
|
<polygon fill="black" stroke="black" points="185.46,-224.58 174.88,-223.97 182.77,-231.04 185.46,-224.58"/>
|
||||||
|
</g>
|
||||||
|
<!-- 28015225-b7a4-4f38-b26f-4dbe5eea4154 -->
|
||||||
|
<g id="node4" class="node">
|
||||||
|
<title>28015225-b7a4-4f38-b26f-4dbe5eea4154</title>
|
||||||
|
<polygon fill="lawngreen" stroke="black" points="376.24,-220.61 269.49,-220.61 269.49,-184.61 376.24,-184.61 376.24,-220.61"/>
|
||||||
|
<text text-anchor="middle" x="322.87" y="-195.24" font-family="Times New Roman,serif" font-size="20.00">DealChat()</text>
|
||||||
|
</g>
|
||||||
|
<!-- 717a1290-56bc-41e1-9b4b-e6df93d40e64->28015225-b7a4-4f38-b26f-4dbe5eea4154 -->
|
||||||
|
<g id="edge3" class="edge">
|
||||||
|
<title>717a1290-56bc-41e1-9b4b-e6df93d40e64->28015225-b7a4-4f38-b26f-4dbe5eea4154</title>
|
||||||
|
<path fill="none" stroke="black" d="M322.87,-262.22C322.87,-252.88 322.87,-242.01 322.87,-232.2"/>
|
||||||
|
<polygon fill="black" stroke="black" points="326.37,-232.43 322.87,-222.43 319.37,-232.43 326.37,-232.43"/>
|
||||||
|
</g>
|
||||||
|
<!-- 2f77f976-499c-4601-9d8c-86dd80d66dfa -->
|
||||||
|
<g id="node6" class="node">
|
||||||
|
<title>2f77f976-499c-4601-9d8c-86dd80d66dfa</title>
|
||||||
|
<ellipse fill="yellow" stroke="black" cx="486.87" cy="-202.61" rx="92.45" ry="22.1"/>
|
||||||
|
<text text-anchor="middle" x="486.87" y="-195.24" font-family="Times New Roman,serif" font-size="20.00">HasSubTask()</text>
|
||||||
|
</g>
|
||||||
|
<!-- ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e->2f77f976-499c-4601-9d8c-86dd80d66dfa -->
|
||||||
|
<g id="edge5" class="edge">
|
||||||
|
<title>ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e->2f77f976-499c-4601-9d8c-86dd80d66dfa</title>
|
||||||
|
<path fill="none" stroke="black" d="M626.96,-266.26C600.92,-254.61 567.48,-239.66 539.8,-227.28"/>
|
||||||
|
<polygon fill="black" stroke="black" points="541.44,-224.18 530.88,-223.3 538.58,-230.57 541.44,-224.18"/>
|
||||||
|
</g>
|
||||||
|
<!-- 2428792c-3896-443d-8744-f5e286644fad -->
|
||||||
|
<g id="node7" class="node">
|
||||||
|
<title>2428792c-3896-443d-8744-f5e286644fad</title>
|
||||||
|
<polygon fill="orange" stroke="black" points="742.38,-192.7 742.38,-212.52 699.9,-226.53 639.83,-226.53 597.35,-212.52 597.35,-192.7 639.83,-178.69 699.9,-178.69 742.38,-192.7"/>
|
||||||
|
<text text-anchor="middle" x="669.87" y="-195.24" font-family="Times New Roman,serif" font-size="20.00">Sequence</text>
|
||||||
|
</g>
|
||||||
|
<!-- ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e->2428792c-3896-443d-8744-f5e286644fad -->
|
||||||
|
<g id="edge6" class="edge">
|
||||||
|
<title>ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e->2428792c-3896-443d-8744-f5e286644fad</title>
|
||||||
|
<path fill="none" stroke="black" d="M669.87,-262.22C669.87,-254.79 669.87,-246.39 669.87,-238.33"/>
|
||||||
|
<polygon fill="black" stroke="black" points="673.37,-238.42 669.87,-228.42 666.37,-238.42 673.37,-238.42"/>
|
||||||
|
</g>
|
||||||
|
<!-- 64b2362a-d99e-4e99-8772-ad1419e53a2e -->
|
||||||
|
<g id="node9" class="node">
|
||||||
|
<title>64b2362a-d99e-4e99-8772-ad1419e53a2e</title>
|
||||||
|
<polygon fill="orange" stroke="black" points="905.38,-192.7 905.38,-212.52 862.9,-226.53 802.83,-226.53 760.35,-212.52 760.35,-192.7 802.83,-178.69 862.9,-178.69 905.38,-192.7"/>
|
||||||
|
<text text-anchor="middle" x="832.87" y="-195.24" font-family="Times New Roman,serif" font-size="20.00">Sequence</text>
|
||||||
|
</g>
|
||||||
|
<!-- ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e->64b2362a-d99e-4e99-8772-ad1419e53a2e -->
|
||||||
|
<g id="edge8" class="edge">
|
||||||
|
<title>ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e->64b2362a-d99e-4e99-8772-ad1419e53a2e</title>
|
||||||
|
<path fill="none" stroke="black" d="M709.74,-265.43C731.74,-254.38 759.28,-240.56 782.73,-228.78"/>
|
||||||
|
<polygon fill="black" stroke="black" points="784.12,-232 791.48,-224.39 780.98,-225.75 784.12,-232"/>
|
||||||
|
</g>
|
||||||
|
<!-- bea12066-ecbd-49b0-8934-efcb2c38b5f5 -->
|
||||||
|
<g id="node12" class="node">
|
||||||
|
<title>bea12066-ecbd-49b0-8934-efcb2c38b5f5</title>
|
||||||
|
<polygon fill="orange" stroke="black" points="1384.38,-192.7 1384.38,-212.52 1341.9,-226.53 1281.83,-226.53 1239.35,-212.52 1239.35,-192.7 1281.83,-178.69 1341.9,-178.69 1384.38,-192.7"/>
|
||||||
|
<text text-anchor="middle" x="1311.87" y="-195.24" font-family="Times New Roman,serif" font-size="20.00">Sequence</text>
|
||||||
|
</g>
|
||||||
|
<!-- ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e->bea12066-ecbd-49b0-8934-efcb2c38b5f5 -->
|
||||||
|
<g id="edge11" class="edge">
|
||||||
|
<title>ff83c742-a2ba-4aa5-8b3a-39ecd7c03b0e->bea12066-ecbd-49b0-8934-efcb2c38b5f5</title>
|
||||||
|
<path fill="none" stroke="black" d="M742.57,-276.18C862.55,-260.89 1101.31,-230.45 1228.15,-214.28"/>
|
||||||
|
<polygon fill="black" stroke="black" points="1228.34,-217.79 1237.82,-213.05 1227.46,-210.84 1228.34,-217.79"/>
|
||||||
|
</g>
|
||||||
|
<!-- 4bb7a9c3-521b-408f-b403-1fd25d54b192 -->
|
||||||
|
<g id="node8" class="node">
|
||||||
|
<title>4bb7a9c3-521b-408f-b403-1fd25d54b192</title>
|
||||||
|
<polygon fill="lawngreen" stroke="black" points="574.49,-129.44 373.24,-129.44 373.24,-93.44 574.49,-93.44 574.49,-129.44"/>
|
||||||
|
<text text-anchor="middle" x="473.87" y="-104.07" font-family="Times New Roman,serif" font-size="20.00">SubTaskPlaceHolder()</text>
|
||||||
|
</g>
|
||||||
|
<!-- 2428792c-3896-443d-8744-f5e286644fad->4bb7a9c3-521b-408f-b403-1fd25d54b192 -->
|
||||||
|
<g id="edge7" class="edge">
|
||||||
|
<title>2428792c-3896-443d-8744-f5e286644fad->4bb7a9c3-521b-408f-b403-1fd25d54b192</title>
|
||||||
|
<path fill="none" stroke="black" d="M627.82,-182.48C596.86,-168.4 554.7,-149.22 522.33,-134.49"/>
|
||||||
|
<polygon fill="black" stroke="black" points="524.12,-131.46 513.57,-130.51 521.22,-137.83 524.12,-131.46"/>
|
||||||
|
</g>
|
||||||
|
<!-- fd7124ba-c9d1-4fde-8063-e8337d335121 -->
|
||||||
|
<g id="node10" class="node">
|
||||||
|
<title>fd7124ba-c9d1-4fde-8063-e8337d335121</title>
|
||||||
|
<ellipse fill="yellow" stroke="black" cx="720.87" cy="-111.44" rx="128.52" ry="22.1"/>
|
||||||
|
<text text-anchor="middle" x="720.87" y="-104.07" font-family="Times New Roman,serif" font-size="20.00">FocusingCustomer()</text>
|
||||||
|
</g>
|
||||||
|
<!-- 64b2362a-d99e-4e99-8772-ad1419e53a2e->fd7124ba-c9d1-4fde-8063-e8337d335121 -->
|
||||||
|
<g id="edge9" class="edge">
|
||||||
|
<title>64b2362a-d99e-4e99-8772-ad1419e53a2e->fd7124ba-c9d1-4fde-8063-e8337d335121</title>
|
||||||
|
<path fill="none" stroke="black" d="M803.73,-178.42C789.1,-166.77 771.27,-152.57 755.9,-140.33"/>
|
||||||
|
<polygon fill="black" stroke="black" points="758.36,-137.82 748.36,-134.33 754,-143.3 758.36,-137.82"/>
|
||||||
|
</g>
|
||||||
|
<!-- 169ebec9-3645-4fbb-a533-5186a8e5967b -->
|
||||||
|
<g id="node11" class="node">
|
||||||
|
<title>169ebec9-3645-4fbb-a533-5186a8e5967b</title>
|
||||||
|
<polygon fill="lawngreen" stroke="black" points="1020.49,-129.44 867.24,-129.44 867.24,-93.44 1020.49,-93.44 1020.49,-129.44"/>
|
||||||
|
<text text-anchor="middle" x="943.87" y="-104.07" font-family="Times New Roman,serif" font-size="20.00">ServeCustomer()</text>
|
||||||
|
</g>
|
||||||
|
<!-- 64b2362a-d99e-4e99-8772-ad1419e53a2e->169ebec9-3645-4fbb-a533-5186a8e5967b -->
|
||||||
|
<g id="edge10" class="edge">
|
||||||
|
<title>64b2362a-d99e-4e99-8772-ad1419e53a2e->169ebec9-3645-4fbb-a533-5186a8e5967b</title>
|
||||||
|
<path fill="none" stroke="black" d="M861.74,-178.42C877.67,-165.62 897.45,-149.73 913.6,-136.76"/>
|
||||||
|
<polygon fill="black" stroke="black" points="915.36,-139.83 920.97,-130.84 910.98,-134.37 915.36,-139.83"/>
|
||||||
|
</g>
|
||||||
|
<!-- a847a0cc-c5af-4757-aa8c-8baef72788dc -->
|
||||||
|
<g id="node13" class="node">
|
||||||
|
<title>a847a0cc-c5af-4757-aa8c-8baef72788dc</title>
|
||||||
|
<ellipse fill="yellow" stroke="black" cx="1186.87" cy="-111.44" rx="148.14" ry="22.1"/>
|
||||||
|
<text text-anchor="middle" x="1186.87" y="-104.07" font-family="Times New Roman,serif" font-size="20.00">NewCustomerComing()</text>
|
||||||
|
</g>
|
||||||
|
<!-- bea12066-ecbd-49b0-8934-efcb2c38b5f5->a847a0cc-c5af-4757-aa8c-8baef72788dc -->
|
||||||
|
<g id="edge12" class="edge">
|
||||||
|
<title>bea12066-ecbd-49b0-8934-efcb2c38b5f5->a847a0cc-c5af-4757-aa8c-8baef72788dc</title>
|
||||||
|
<path fill="none" stroke="black" d="M1280,-178.88C1263.4,-167.04 1242.97,-152.46 1225.48,-139.99"/>
|
||||||
|
<polygon fill="black" stroke="black" points="1227.51,-137.14 1217.34,-134.18 1223.44,-142.84 1227.51,-137.14"/>
|
||||||
|
</g>
|
||||||
|
<!-- 99354f05-1716-46b2-9151-d88eac0a5b27 -->
|
||||||
|
<g id="node14" class="node">
|
||||||
|
<title>99354f05-1716-46b2-9151-d88eac0a5b27</title>
|
||||||
|
<polygon fill="cyan" stroke="black" points="1436.87,-142.69 1353.37,-111.44 1436.87,-80.19 1520.37,-111.44 1436.87,-142.69"/>
|
||||||
|
<text text-anchor="middle" x="1436.87" y="-104.07" font-family="Times New Roman,serif" font-size="20.00">Selector</text>
|
||||||
|
</g>
|
||||||
|
<!-- bea12066-ecbd-49b0-8934-efcb2c38b5f5->99354f05-1716-46b2-9151-d88eac0a5b27 -->
|
||||||
|
<g id="edge13" class="edge">
|
||||||
|
<title>bea12066-ecbd-49b0-8934-efcb2c38b5f5->99354f05-1716-46b2-9151-d88eac0a5b27</title>
|
||||||
|
<path fill="none" stroke="black" d="M1343.73,-178.88C1360.85,-166.67 1382.05,-151.54 1399.9,-138.81"/>
|
||||||
|
<polygon fill="black" stroke="black" points="1401.55,-141.94 1407.65,-133.28 1397.48,-136.24 1401.55,-141.94"/>
|
||||||
|
</g>
|
||||||
|
<!-- a3766a34-5152-4f82-8fba-8bf1f6b3830b -->
|
||||||
|
<g id="node17" class="node">
|
||||||
|
<title>a3766a34-5152-4f82-8fba-8bf1f6b3830b</title>
|
||||||
|
<polygon fill="lawngreen" stroke="black" points="1691.49,-129.44 1538.24,-129.44 1538.24,-93.44 1691.49,-93.44 1691.49,-129.44"/>
|
||||||
|
<text text-anchor="middle" x="1614.87" y="-104.07" font-family="Times New Roman,serif" font-size="20.00">GreetCustomer()</text>
|
||||||
|
</g>
|
||||||
|
<!-- bea12066-ecbd-49b0-8934-efcb2c38b5f5->a3766a34-5152-4f82-8fba-8bf1f6b3830b -->
|
||||||
|
<g id="edge16" class="edge">
|
||||||
|
<title>bea12066-ecbd-49b0-8934-efcb2c38b5f5->a3766a34-5152-4f82-8fba-8bf1f6b3830b</title>
|
||||||
|
<path fill="none" stroke="black" d="M1369.59,-187.32C1413.74,-176.07 1475.98,-159.54 1529.87,-142.69 1538.78,-139.91 1548.16,-136.78 1557.3,-133.61"/>
|
||||||
|
<polygon fill="black" stroke="black" points="1558.17,-137.02 1566.45,-130.4 1555.85,-130.41 1558.17,-137.02"/>
|
||||||
|
</g>
|
||||||
|
<!-- 19de10a3-7554-43a3-b892-34cb2e32ab9a -->
|
||||||
|
<g id="node15" class="node">
|
||||||
|
<title>19de10a3-7554-43a3-b892-34cb2e32ab9a</title>
|
||||||
|
<ellipse fill="yellow" stroke="black" cx="1347.87" cy="-22.1" rx="95.64" ry="22.1"/>
|
||||||
|
<text text-anchor="middle" x="1347.87" y="-14.72" font-family="Times New Roman,serif" font-size="20.00">At(Robot,Bar)</text>
|
||||||
|
</g>
|
||||||
|
<!-- 99354f05-1716-46b2-9151-d88eac0a5b27->19de10a3-7554-43a3-b892-34cb2e32ab9a -->
|
||||||
|
<g id="edge14" class="edge">
|
||||||
|
<title>99354f05-1716-46b2-9151-d88eac0a5b27->19de10a3-7554-43a3-b892-34cb2e32ab9a</title>
|
||||||
|
<path fill="none" stroke="black" d="M1414.41,-88.4C1403.11,-77.32 1389.28,-63.74 1377.16,-51.84"/>
|
||||||
|
<polygon fill="black" stroke="black" points="1379.76,-49.5 1370.17,-44.99 1374.86,-54.49 1379.76,-49.5"/>
|
||||||
|
</g>
|
||||||
|
<!-- 4286d652-c4ef-4522-a7f1-b5c865dcc4c9 -->
|
||||||
|
<g id="node16" class="node">
|
||||||
|
<title>4286d652-c4ef-4522-a7f1-b5c865dcc4c9</title>
|
||||||
|
<polygon fill="lawngreen" stroke="black" points="1589.74,-40.1 1461.99,-40.1 1461.99,-4.1 1589.74,-4.1 1589.74,-40.1"/>
|
||||||
|
<text text-anchor="middle" x="1525.87" y="-14.72" font-family="Times New Roman,serif" font-size="20.00">MoveTo(Bar)</text>
|
||||||
|
</g>
|
||||||
|
<!-- 99354f05-1716-46b2-9151-d88eac0a5b27->4286d652-c4ef-4522-a7f1-b5c865dcc4c9 -->
|
||||||
|
<g id="edge15" class="edge">
|
||||||
|
<title>99354f05-1716-46b2-9151-d88eac0a5b27->4286d652-c4ef-4522-a7f1-b5c865dcc4c9</title>
|
||||||
|
<path fill="none" stroke="black" d="M1459.32,-88.4C1471.74,-76.21 1487.23,-61.02 1500.13,-48.35"/>
|
||||||
|
<polygon fill="black" stroke="black" points="1502.42,-51.01 1507.1,-41.51 1497.51,-46.02 1502.42,-51.01"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 15 KiB |
Loading…
Reference in New Issue