Пример #1
0
def main():
    from bootstrapping_olympics.extra.reprep import ReprepPublisher

    usage = ""
    parser = OptionParser(usage=usage)
    parser.disable_interspersed_args()
    parser.add_option("-o",
                      dest='outdir',
                      default='diffeo_analysis',
                      help="Output directory [%default].")
    parser.add_option("-p", dest='pickle', help="Saved agent state")
    parser.add_option("-t", dest='templates', help="Directory with templates")
    (options, args) = parser.parse_args()
    if args:
        raise Exception('Extra args')

    print('Loading %r' % options.pickle)
    with open(options.pickle) as f:
        data = pickle.load(f)
    print('(done)')

    state = data.agent_state
    confid = '%s-%s' % (data.id_robot, data.id_agent)
    publisher = ReprepPublisher(confid)

    dd = state['diffeo_dynamics']

    actions = []

    for cmd_index, de in dd.commands2dynamics.items():
        original_cmd = dd.commands2label[cmd_index]
        print('Summarizing %s' % original_cmd)
        diffeo = de.summarize()
        a = Action(
            diffeo=diffeo,
            label="u%s" % cmd_index,  # index=cmd_index,
            invertible=False,
            primitive=True,
            original_cmd=original_cmd)
        actions.append(a)


#    actions = [actions[1], actions[4]]

    templates = list(load_templates(options.templates, shape=diffeo.d.shape))

    for template in templates[:1]:
        image = template.image
        name = template.name
        for action in actions:
            section_name = '%s-%s_%s_%s' % (name, action, action.label,
                                            action.original_cmd)
            print(section_name)
            S = publisher.section(section_name)
            compute_effects(S, action, image)

    filename = os.path.join(options.outdir, "%s-preds.html" % confid)
    publisher.r.to_html(filename)
Пример #2
0
def actions_analysis(args):
    from bootstrapping_olympics.extra.reprep import ReprepPublisher
    np.seterr(all='raise')
    usage = ""
    parser = OptionParser(usage=usage)
    parser.disable_interspersed_args()
    parser.add_option("-o", dest='outdir')
    parser.add_option("--actions", dest='actions', help="Saved actions")
    (options, args) = parser.parse_args(args=args)

    if not args:
        msg = ('Please supply command. Available: %s' %
               ", ".join(commands.keys()))
        raise Exception(msg)

    if options.outdir is None:
        raise Exception('Please supply "outdir".')
    if options.actions is None:
        raise Exception('Please supply "actions".')

    cmd = args[0]
    cmd_options = args[1:]

    if not cmd in commands:
        msg = ('Unknown command %r. Available: %s.' %
               (cmd, ", ".join(commands.keys())))
        raise Exception(msg)

    print('Loading %r' % options.actions)
    with open(options.actions) as f:
        data = pickle.load(f)
    print('(done)')

    id_robot = data['id_robot']
    id_agent = data['id_agent']
    actions = data['actions']

    print('id_robot: %s' % id_robot)
    print('id_agent: %s' % id_agent)

    for action in actions:
        print('* %s' % action)

    confid = '%s-%s' % (id_robot, id_agent)
    publisher = ReprepPublisher(confid)

    data['publisher'] = publisher

    commands[cmd](options, data, cmd_options)

    filename = os.path.join(options.outdir, cmd, "%s.html" % confid)
    logger.info('writing to file %r' % filename)
    publisher.r.to_html(filename)