Exemplo n.º 1
0
def launchCMAESForSpecificTargetSizeAndSpecificPoint(target_size,
                                                     rs,
                                                     save,
                                                     point,
                                                     noise=None):
    '''
    Run cmaes for a specific target size

    Input:    -target_size, size of the target, float
            -setuFile, file of setup, string
            -save: do we use a previous Best.theta file? True = Yes, False = use current controller, None = random controller
            noise: noise on muscle, if None, defalt noise from muscle setup, float
    '''
    pos = point[0]
    x = point[1][0]
    y = point[1][1]
    print("Starting the CMAES Optimization for target " + str(target_size) +
          " for point " + str(pos) + " !")
    foldername = rs.OPTIpath + str(target_size) + "/" + str(pos) + "/"

    thetaname = foldername + "Best"
    if save:
        checkIfFolderExists(foldername)
        copyfile(rs.OPTIpath + str(target_size) + "/" + "Best.theta",
                 foldername + "Best.theta")
    elif save == None:
        thetaname = None

    #Initializes all the class used to generate trajectory
    exp = Experiments(rs, target_size, False, foldername, thetaname,
                      rs.popsizeCmaes, rs.period)
    if (noise != None):
        exp.setNoise(noise)
    theta = exp.tm.controller.getTheta()
    thetaCMA = theta.flatten()

    #run the optimization (cmaes)
    cma.fmin(partial(exp.runTrajectoriesCMAESOnePoint, x, y),
             thetaCMA,
             rs.sigmaCmaes,
             options={
                 'maxiter': rs.maxIterCmaes,
                 'popsize': rs.popsizeCmaes,
                 'CMA_diagonal': True,
                 'verb_log': 0,
                 'verb_disp': 0,
                 'termination_callback': term()
             })
    print("End of optimization for target " + str(target_size) +
          " for point " + str(pos) + " !")
Exemplo n.º 2
0
def GenerateDataFromThetaNController(rs, target_size, foldername, thetaFile, repeat, save,noise=None):
    '''
    Generate Data from a given theta file

    Input:    -target_size, size of the target, float
            -save: do we save the results (false when running CMAES)? True = Yes, False = No
    '''
    os.system("rm "+foldername+"/Log/*.log 2>/dev/null")
    exp = Experiments(rs, target_size, save, foldername,None,rs.popsizeCmaes,rs.period)
    if(noise!=None): exp.setNoise(noise)
    cost, time = exp.runTrajectoriesForResultsGenerationNController(repeat,thetaFile)
    print("Average cost: ", cost)
    print("Average time: ", time)
    print("foldername : ", foldername)
    if (save):
        exp.saveCost()
Exemplo n.º 3
0
def launchCMAESForSpecificTargetSizeAndSpecificPoint(target_size, rs, save, point, noise=None):
    '''
    Run cmaes for a specific target size

    Input:    -target_size, size of the target, float
            -setuFile, file of setup, string
            -save: do we use a previous Best.theta file? True = Yes, False = use current controller, None = random controller
            noise: noise on muscle, if None, defalt noise from muscle setup, float
    '''
    pos=point[0]
    x=point[1][0]
    y=point[1][1]
    print("Starting the CMAES Optimization for target " + str(target_size) + " for point "+ str(pos)+" !")
    foldername = rs.OPTIpath + str(target_size)+"/"+str(pos)+"/"
    

    thetaname = foldername + "Best"
    if save:
        checkIfFolderExists(foldername)
        copyfile(rs.OPTIpath + str(target_size)+"/" + "Best.theta",foldername + "Best.theta")
    elif save==None:
        thetaname=None




    #Initializes all the class used to generate trajectory
    exp = Experiments(rs, target_size, False, foldername, thetaname,rs.popsizeCmaes,rs.period)
    if(noise!=None):
        exp.setNoise(noise)
    theta = exp.tm.controller.getTheta()
    thetaCMA = theta.flatten()

    #run the optimization (cmaes)
    cma.fmin(partial(exp.runTrajectoriesCMAESOnePoint, x, y), thetaCMA, rs.sigmaCmaes, options={'maxiter':rs.maxIterCmaes, 'popsize':rs.popsizeCmaes, 'CMA_diagonal':True, 'verb_log':0, 'verb_disp':0,'termination_callback':term()})
    print("End of optimization for target " + str(target_size) +  " for point "+ str(pos)+" !")
Exemplo n.º 4
0
def GenerateDataFromThetaNController(rs,
                                     target_size,
                                     foldername,
                                     thetaFile,
                                     repeat,
                                     save,
                                     noise=None):
    '''
    Generate Data from a given theta file

    Input:    -target_size, size of the target, float
            -save: do we save the results (false when running CMAES)? True = Yes, False = No
    '''
    os.system("rm " + foldername + "/Log/*.log 2>/dev/null")
    exp = Experiments(rs, target_size, save, foldername, None, rs.popsizeCmaes,
                      rs.period)
    if (noise != None): exp.setNoise(noise)
    cost, time = exp.runTrajectoriesForResultsGenerationNController(
        repeat, thetaFile)
    print("Average cost: ", cost)
    print("Average time: ", time)
    print("foldername : ", foldername)
    if (save):
        exp.saveCost()