def plot_individual(self, path, plot_name, individual): """ Saves a graphical representation of the individual """ if self.static_tree is not None: pytree = PyTree(self.add_to_static_tree(individual), behaviors=behaviors) else: pytree = PyTree(individual[:], behaviors=behaviors) pytree.save_fig(path, name=plot_name)
def plot_individual(path, plot_name, individual): """ Saves a graphical representation of the individual """ pytree = PyTree(individual[:], behaviors=behaviors) pytree.save_fig(path, name=plot_name)
def paper_figures(): # pylint: disable=import-outside-toplevel """ Creates the bt figures used in the paper """ from behavior_tree_learning.py_trees_interface import PyTree import behavior_tree_learning.behaviors_figures as behaviors behavior_tree.load_settings_from_file('BT_SETTINGS_TOWER.yaml') # Tower planned tree = ['s(', 'f(', 'Green at A?', 's(', 'f(', 'picked Green?', 'pick Green!', ')', 'place at A!', ')', ')', \ 'f(', 'Blue at pos B?', 's(', 'f(', 'Blue on Green?', 's(', 'f(', 'picked Blue?', 'pick Blue!', ')', 'place on Green!', ')', ')', 'apply force Blue!', ')', ')', \ 'f(', 'Red at pos C?', 's(', 'f(', 'Red on Blue?', 's(', 'f(', 'picked Red?', 'pick Red!', ')', 'place on Blue!', ')', ')', 'apply force Red!', ')', ')', ')'] pytree = PyTree(tree[:], behaviors=behaviors) pytree.save_fig('logs/paperfigures/', name='tower_planned', svg=True) # Tower solved tree = ['s(', 'f(', 'Green at pos A?', 's(', 'pick Green!', 'place at A!', ')', ')', \ 'f(', 'Blue at pos B?', 's(', 'f(', 'Blue on Green?', 's(', 'pick Blue!', 'place on Green!', ')', ')', 'apply force Blue!', ')', ')', \ 'f(', 'Red at pos C?', 's(', 'f(', 'Red on Blue?', 's(', 'pick Red!', 'place on Blue!', ')', ')', 'apply force Red!', ')', ')', ')'] pytree = PyTree(tree[:], behaviors=behaviors) pytree.save_fig('logs/paperfigures/', name='tower_solved', svg=True) behavior_tree.load_settings_from_file('BT_SETTINGS_CROISSANT.yaml') # Croissant planned tree = ['s(', 'f(', 'Green at pos B?', 's(', 'f(', 'picked Green?', 'pick Green!', ')', 'place at B!', ')', ')', \ 'f(', 'Blue at pos D?', 's(', 'f(', 'Blue on Green?', 's(', 'f(', 'picked Blue?', 'pick Blue!', ')', 'place on Green!', ')', ')', 'apply force Blue!', ')', ')', \ 'f(', 'Red at pos A?', 's(', 'f(', 'picked Red?', 'pick Red!', ')', 'place at A!', ')', ')', \ 'f(', 'Yellow at pos C?', 's(', 'f(', 'picked Yellow?', 'pick Yellow!', ')', 'place at C!', ')', ')', ')'] pytree = PyTree(tree[:], behaviors=behaviors) pytree.save_fig('logs/paperfigures/', name='croissant_planned', svg=True) # Croissant solved tree = ['s(', 'f(', 'Green at pos B?', 's(', 'pick Green!', 'place at B!', ')', ')', \ 'f(', 'Red at pos A?', 's(', 'pick Red!', 'place at A!', ')', ')', \ 'f(', 'Yellow at pos C?', 's(', 'pick Yellow!', 'place at C!', ')', ')', \ 'f(', 'Blue at pos D?', 's(', 'f(', 'Blue on Green?', 's(', 'pick Blue!', 'place on Green!', ')', ')', 'apply force Blue!', ')', ')', ')'] pytree = PyTree(tree[:], behaviors=behaviors) pytree.save_fig('logs/paperfigures/', name='croissant_solved', svg=True) behavior_tree.load_settings_from_file('BT_SETTINGS_BALANCE.yaml') # Balance planned tree = [ 's(', 'f(', 'Green at pos B?', 's(', 'f(', 'Blue at pos A?', 'put Blue at A!', ')', 'f(', 'Green on Blue?', 'put Green on Blue!', ')', 'apply force Green!', ')', ')', ')' ] pytree = PyTree(tree[:], behaviors=behaviors) pytree.save_fig('logs/paperfigures/', name='balance_planned', svg=True) # Balance solved tree = [ 'f(', 'Green at pos B?', 's(', 'put Red at A!', 'put Green on Red!', 'apply force Green!', ')', ')' ] pytree = PyTree(tree[:], behaviors=behaviors) pytree.save_fig('logs/paperfigures/', name='balance_solved', svg=True) behavior_tree.load_settings_from_file('BT_SETTINGS_BLOCKING.yaml') # Blocking planned tree = ['s(', 'f(', 'Green at A?', 'put Green at A!', ')', \ 'f(', 'Blue at E?', 's(', 'f(', 'Blue on Green?', 'put Blue on Green!', ')', 'apply force Blue!', ')', ')', \ 'f(', 'Red at C?', 'put Red at C!', ')', ')'] pytree = PyTree(tree[:], behaviors=behaviors) pytree.save_fig('logs/paperfigures/', name='blocking_planned', svg=True) # Blocking solved tree = ['s(', 'put Blue on Green!', 'f(', 'Green at A?', 'put Red at D!', ')', \ 'put Green at A!', \ 'f(', 'Blue at E?', 'apply force Blue!', ')', \ 'put Red at C!', ')'] pytree = PyTree(tree[:], behaviors=behaviors) pytree.save_fig('logs/paperfigures/', name='blocking_solved', svg=True)