Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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)