示例#1
0
    def define_jobs_context(self, context):
        from pkg_resources import resource_filename  # @UnresolvedImport
        config_dir = resource_filename("yc1304.uzhturtle", "config")
        
        GlobalConfig.global_load_dir(config_dir)
        GlobalConfig.global_load_dir('${DATASET_UZHTURTLE}')
        
        rm = context.get_report_manager()
        rm.set_html_resources_prefix('uzh-turtle-stats')

        data_central = self.get_data_central()
        
        logs = list(self.get_explogs_by_tag('uzhturtle'))
        agents = ['stats2', 'bdse_e1_ss']
        robots = ['uzhturtle_un1_cf1', 'uzhturtle_un1_cf1_third']


        for c, id_explog in iterate_context_explogs(context, logs):
            explog = get_conftools_explogs().instance(id_explog)

            print id_explog, explog

        jobs_learn_parallel(context,
                            data_central=data_central,
                            explogs_learn=logs,
                            agents=agents, robots=robots,
                            episodes_per_tranche=2)
示例#2
0
    def define_jobs_context(self, context):    
        id_agent = 'exp10_bdser1'
        
        id_robot = 'uA_b1_tw_cf'
        id_adapter = 'uA_b1_tw_cf'
        explogs_learn = good_logs_cf
        explogs_test = ['unicornA_tran1_2013-04-12-23-34-08']
        
        explogs_convert = explogs_learn + explogs_test
        for c, id_explog in iterate_context_explogs(context, explogs_convert):
            c.subtask(RS2BConvertOne,
                        boot_root=self.get_boot_root(),
                        id_explog=id_explog,
                        id_adapter=id_adapter,
                        id_robot=id_robot)
         
        context.checkpoint('conversion')

        context.subtask(LearnLog, agent=id_agent, robot=id_robot, interval_publish=5000)

        context.checkpoint('learning')
        
        context.subtask(PublishLearningResult, agent=id_agent, robot=id_robot)

         
        test_episodes = explogs_test
        for c, id_episode in iterate_context_episodes(context, test_episodes):
            c.subtask(ServoField, id_robot=id_robot, id_agent=id_agent,
                                  variation='default', id_episode=id_episode)
示例#3
0
    def define_jobs_context(self, context):
        rm = context.get_report_manager()
        rm.set_html_resources_prefix('jbds-nav')

        logs = set(self.get_explogs_by_tag('navigation'))
        logs = list(logs)
        assert len(logs) >= 4

        data_central = self.get_data_central()
        recipe_episodeready_by_convert2(context, data_central.get_boot_root())
        recipe_navigation_map1(context, data_central)
        
        for c, id_explog in iterate_context_explogs(context, logs):
            explog = get_conftools_explogs().instance(id_explog)
            # Get the map that we need
            annotation_navigation = explog.get_annotations()['navigation'] 
            id_explog_map = annotation_navigation['map']
            id_robot = annotation_navigation['robot']
#             if not 'params' in annotation_navigation:
#                 self.error('incomplete %r' % id_explog)
#                 continue
            navigation_params = annotation_navigation['params']
                    
            nmap = c.get_resource(RP_NAVIGATION_MAP,
                                  id_episode=id_explog_map,
                                  id_robot=id_robot)
            
            out_base = os.path.join(c.get_output_dir(), '%s' % id_explog)
            c.comp_config(reconstruct_servo_state, id_explog, id_robot, nmap,
                          out_base=out_base,
                          navigation_params=navigation_params,
                          job_id='reconstruct')        
            
            extra_dep = [c.get_resource(RM_EPISODE_READY, id_robot=id_robot,
                                        id_episode=id_explog)]
            nmap_dist = c.comp_config(nmap_distances, data_central,
                                                id_episode=id_explog,
                                                id_robot=id_robot, nmap=nmap,
                                                extra_dep=extra_dep)
            
            report_keys = dict(id_robot=id_robot, id_episode=id_explog,
                               id_episode_map=id_explog_map)
            r = c.comp(report_nmap_distances, nmap, nmap_dist)
            c.add_report(r, 'nmap_distances', **report_keys)
            
            ep = c.get_resource(RM_EPISODE_READY,
                                id_episode=id_explog, id_robot=id_robot)
            poses = c.comp_config(poses_from_episode, data_central=data_central,
                                  id_robot=id_robot, id_episode=id_explog,
                                  extra_dep=[ep])
            
            ep0 = c.get_resource(RM_EPISODE_READY,
                                 id_episode=id_explog_map, id_robot=id_robot)
            poses0 = c.comp_config(poses_from_episode, data_central=data_central,
                                  id_robot=id_robot, id_episode=id_explog_map,
                                  extra_dep=[ep0])
             
            r = c.comp(report_trajectory, poses, poses0)
            c.add_report(r, 'trajectory', **report_keys)
示例#4
0
 def define_jobs_context(self, context):    
     config = self.get_rs2b_config()
     explogs = list(config.explogs.keys())     
     
     for c, id_explog in iterate_context_explogs(context, explogs):
         explog = config.explogs.instance(id_explog)
         if not isinstance(explog, ExpLogFromYaml):
             continue  # XX
         if explog.get_outside_movie() is None:
             continue
     
         c.subtask(MakeVideoSFX, id_explog=id_explog, add_job_prefix='', add_outdir='')
示例#5
0
    def define_jobs_context(self, context):
        from pkg_resources import resource_filename  # @UnresolvedImport

        config_dir = resource_filename("yc1304.uzhturtle", "config")
        GlobalConfig.global_load_dir(config_dir)
        GlobalConfig.global_load_dir("${DATASET_UZHTURTLE}")

        rm = context.get_report_manager()
        rm.set_html_resources_prefix("uzh-turtle-plots")

        data_central = self.get_data_central()

        id_robot = "uzhturtle_un1_cf1_third"
        recipe_episodeready_by_convert2(context, boot_root=self.get_boot_root())

        logs = list(self.get_explogs_by_tag("uzhturtle"))
        for c, id_explog in iterate_context_explogs(context, logs):
            jobs_turtleplot(c, data_central, id_robot, id_episode=id_explog)
示例#6
0
    def define_jobs_context(self, context):    
        id_agent = 'exp10_bdser1'
        
        id_robot = 'exp12_uA_b1_tw_cf'
        id_adapter = 'uA_b1_tw_cf'
        
        explogs_learn = good_logs_cf
        explogs_test = ['unicornA_tran1_2013-04-12-23-34-08']        
        explogs_convert = explogs_learn + explogs_test

        agent = None
        for c, id_explog in iterate_context_explogs(context, explogs_convert):
            episodes = c.subtask(RS2BConvertOne,
                                   boot_root=self.get_boot_root(),
                                   id_explog=id_explog,
                                   id_adapter=id_adapter,
                                   id_robot=id_robot)
        
            if id_explog in explogs_learn:
                agent_i = c.subtask(LearnLogNoSave, agent=id_agent, robot=id_robot,
                                    episodes=episodes)
                if agent is None:
                    agent = agent_i
                else:
                    agent = context.comp(merge_agents, agent, agent_i) 
            
        id_episodes = explogs_learn
        data_central = self.get_data_central()
        context.comp(save_state, data_central, id_agent, id_robot, agent, id_episodes)
            

        context.checkpoint('learning')
        
        context.subtask(PublishLearningResult, agent=id_agent, robot=id_robot)

         
        test_episodes = [
            'unicornA_tran1_2013-04-12-23-34-08'
        ]
         
        for c, id_episode in iterate_context_episodes(context, test_episodes):
            c.subtask(ServoField, id_robot=id_robot, id_agent=id_agent,
                                  variation='default', id_episode=id_episode)
示例#7
0
    def define_jobs_context(self, context):
        logs = (set(self.get_explogs_by_tag('servo')) & 
                set(self.get_explogs_by_tag('fieldsampler')))
        
        assert len(logs) >= 4
        
        for c, id_explog in iterate_context_explogs(context, logs):
            explog = get_conftools_explogs().instance(id_explog)

            # jobs_video_servo_multi(c, id_explog)

            annotation_servo = explog.get_annotations()['servo'] 
            id_robot = annotation_servo['robot']
            goal_at = annotation_servo['goal']
                    
            out_base = os.path.join(c.get_output_dir(), '%s' % id_explog)
            
            c.comp_config(reconstruct_servo_state_nomap,
                          id_explog, id_robot, out_base, goal_at=goal_at)
示例#8
0
    def define_jobs_context(self, cc):    
        id_agent = 'exp13_bdser1'
        id_robot = 'exp13_uA_b1_tw_cf'
        id_adapter = 'uA_b1_tw_cf_strip'
        explogs_learn = good_logs_cf
        explogs_test = ['unicornA_tran1_2013-04-12-23-34-08']
        
        explogs_convert = explogs_learn + explogs_test
        for c, id_explog in iterate_context_explogs(cc, explogs_convert):
            c.subtask(RS2BConvertOne,
                        boot_root=self.get_boot_root(),
                        id_explog=id_explog,
                        id_adapter=id_adapter,
                        id_robot=id_robot)
         
        cc.checkpoint('conversion')

        cc.subtask(LearnLog, agent=id_agent, robot=id_robot, interval_publish=5000)

        cc.checkpoint('learning')
        
        cc.subtask(PublishLearningResult, agent=id_agent, robot=id_robot)

         
        test_episodes = explogs_test
        for c, id_episode in iterate_context_episodes(cc, test_episodes):
            c.subtask(ServoField, id_robot=id_robot, id_agent=id_agent,
                                  variation='default', id_episode=id_episode)
 
        data_central = self.get_data_central()
        
        cc.add_report(cc.comp(report_prediction,
                              data_central=data_central,
                              id_agent=id_agent,
                              id_robot=id_robot),
                      'prediction', id_agent=id_agent, id_robot=id_robot)

        cc.add_report(cc.comp(report_prediction2,
                              data_central=data_central,
                              id_agent=id_agent,
                              id_robot=id_robot),
                      'prediction2', id_agent=id_agent, id_robot=id_robot)