Esempio n. 1
0
def UnitTestController(fileName):
    '''
    Tests the approximated command obtained from training states
    '''
    rs = ReadXmlFile(fileName)
    fa = initController(rs)

    stateAll, commandAll = stateAndCommandDataFromTrajs(
        loadStateCommandPairsByStartCoords(pathDataFolder + "TrajRepository/"))
    #stateAll, commandAll = stateAndCommandDataFromTrajs(loadStateCommandPairsByStartCoords(BrentTrajectoriesFolder))
    #print ("len:", len(commandAll[0]))
    state = np.vstack(np.array(stateAll))
    command = np.vstack(np.array(commandAll))

    fa.getTrainingData(state, command)
    if (rs.regression == "RBFN"):
        fa.train(rs.lamb)
    else:
        fa.train()
    fa.saveTheta("test")
    fa.loadTheta("test")

    for _ in os.listdir(BrentTrajectoriesFolder):
        for i in range(len(state)):
            if rd.random() < 0.06:
                outNN = fa.computeOutput(np.array(state[i]))
                print("Real  :", command[i])
                print("Learn :", outNN)
Esempio n. 2
0
def setPosSquare():
    rs = ReadXmlFile("setup.xml")
    filename3 = pathDataFolder + "PosSquare"
    data3 = []
    for j in range(20):
        for i in range(20):
            point = [rs.XTarget - 0.3 + i * 0.03, rs.YTarget - 0.4 + j * 0.01]
            data3.append(point)
    np.savetxt(filename3, data3)
Esempio n. 3
0
def runChoice():
    checkL = True
    fileName = raw_input('Name of file to load setup : ')
    rs = ReadXmlFile(fileName)
    while checkL:
        printMainMenu()
        choix = input('Enter the number corresponding to the script you want to run: ')
        choix = int(choix)
        if(chooseFunction(choix, rs)==0): break
Esempio n. 4
0
def setPosCircu1():
    rs = ReadXmlFile("setup.xml")
    filename = pathDataFolder + "PosCircu1"
    data = []
    point = [
        rs.XTarget + (0.1 + 3 * 0.1) * np.cos(-3 * np.pi / 12 - np.pi / 4),
        rs.YTarget + (0.1 + 3 * 0.1) * np.sin(-3 * np.pi / 12 - np.pi / 4)
    ]
    data.append(point)
    np.savetxt(filename, data)
Esempio n. 5
0
def UnitTestArmModel(fileName):
    '''
    Tests the next state 
    '''
    rs = ReadXmlFile(fileName)

    arm = Arm26()
    arm.setDT(rs.dt)

    state, estimState, command, noisycommand, nextEstimState, nextState = {}, {}, {}, {}, {}, {}
    for el in os.listdir(BrentTrajectoriesFolder):
        state[el], estimState[el], command[el], noisycommand[
            el], nextEstimState[el], nextState[el] = [], [], [], [], [], []
        data = np.loadtxt(BrentTrajectoriesFolder + el)
        for i in range(data.shape[0]):
            estimState[el].append(
                np.array([data[i][4], data[i][5], data[i][6], data[i][7]]))
            state[el].append(
                np.array([data[i][8], data[i][9], data[i][10], data[i][11]]))
            noisycommand[el].append(
                np.array([
                    data[i][12], data[i][13], data[i][14], data[i][15],
                    data[i][16], data[i][17]
                ]))
            command[el].append(
                np.array([
                    data[i][18], data[i][19], data[i][20], data[i][21],
                    data[i][22], data[i][23]
                ]))
            nextEstimState[el].append(
                np.array([data[i][24], data[i][25], data[i][26], data[i][27]]))
            nextState[el].append(
                np.array([data[i][28], data[i][29], data[i][30], data[i][31]]))

    for el in os.listdir(BrentTrajectoriesFolder):
        for i in range(len(state[el])):
            if rd.random() < 0.06:
                outNextStateNoisy = arm.computeNextState(
                    noisycommand[el][i], state[el][i])
                outNextState = arm.computeNextState(command[el][i],
                                                    state[el][i])

                print("U      :", command[el][i])
                print("UNoisy :", noisycommand[el][i])
                print(
                    "---------------------------------------------------------"
                )
                print("Real :", nextState[el][i])
                print("ArmN :", outNextStateNoisy)
                print("Arm26 :", outNextState)
                print(
                    "---------------------------------------------------------"
                )
Esempio n. 6
0
def setPosCircu28():
    rs = ReadXmlFile("setup.xml")
    filename = pathDataFolder + "PosCircu28"
    data2 = []
    for j in range(4):
        for i in range(7):
            point = [
                rs.XTarget +
                (0.1 + j * 0.1) * np.cos(-i * np.pi / 12 - np.pi / 4),
                rs.YTarget +
                (0.1 + j * 0.1) * np.sin(-i * np.pi / 12 - np.pi / 4)
            ]
            data2.append(point)
    np.savetxt(filename, data2)
Esempio n. 7
0
def setPosCircu540():
    rs = ReadXmlFile("setup.xml")
    filename2 = pathDataFolder + "PosCircu540"
    data2 = []
    for j in range(20):
        for i in range(27):
            point = [
                rs.XTarget +
                (0.1 + j * 0.02) * np.cos(-i * np.pi / 40 - np.pi / 5),
                rs.YTarget +
                (0.1 + j * 0.02) * np.sin(-i * np.pi / 40 - np.pi / 5)
            ]
            data2.append(point)
    np.savetxt(filename2, data2)
Esempio n. 8
0
def testRegression(setupFile, thetaFile):
    """ 
    
    """
    rs=ReadXmlFile(setupFile)
    stateAll, commandAll = loadTrajs(pathDataFolder + "Brent/", 0.01, rs.det)
    stateAll=np.array(stateAll)
    arm=ArmType[rs.Arm]()
    trajReg = np.empty_like(stateAll)
    trajMaker = TrajMaker(rs,0.02,None,rs.path+thetaFile)

    for i in range(stateAll.shape[0]):
        coordHand = arm.mgdEndEffector(stateAll[i][0][2:])
        trajReg[i]=trajMaker.runTrajectory2(coordHand[0], coordHand[1])[0]
        
    plotRegBrent(trajReg, stateAll)
Esempio n. 9
0
def runChoice():
    checkL = True
    fileName = 'setupHitVelgamma6.xml'
    rs = ReadXmlFile(fileName)

    nameTheta = 'Best'
    nameF = 'results_folder'
    nbret = 5
    generateFromCMAESNController(nbret, rs, nameTheta, nameF)
    plotVelocityProfile("OPTI", rs, nameF)
    plotXYPositions("OPTI", rs, nameF, "All", False)
    plotCostColorMap("OPTI", rs, nameF)
    plotTimeDistanceTarget(nameF, rs)
    plotFittsLaw(nameF, rs)
    plotTimeColorMap("OPTI", rs, nameF)
    plotScattergram("OPTI", nameF, rs)
Esempio n. 10
0
def run_missing_CMAES():
    rs = ReadXmlFile(sys.argv[1])
    nb_process = 20
    for gamma in range(3, 9):
        for targetsize in [0.005, 0.01, 0.02, 0.04]:
            for i in range(15):
                if not check_if_theta_file_exists(gamma, targetsize, i):
                    print("gamma =", gamma, "nbtheta:",
                          count_best_files(gamma))
                p = ThreadPool(processes=15)
                #run cmaes on each targets size on separate processor
                posIni = np.loadtxt(pathDataFolder + rs.experimentFilePosIni)
                p.map(
                    partial(launchCMAESForSpecificTargetSizeAndSpecificPoint,
                            targetsize, rs, True, noise), enumerate(posIni))
            p.close()
            p.join()
Esempio n. 11
0
def setPosCircu15():
    rs = ReadXmlFile("setup.xml")
    filename = pathDataFolder + "PosCircu15"
    data = []
    for i in range(3):
        point = [
            rs.XTarget + 0.0975 * np.cos((-i - 1) * np.pi / 4),
            rs.YTarget + 0.0975 * np.sin((-i - 1) * np.pi / 4)
        ]
        data.append(point)
    for i in range(5):
        point = [
            rs.XTarget + 0.243 * np.cos(-i * np.pi / 8 - np.pi / 4),
            rs.YTarget + 0.243 * np.sin(-i * np.pi / 8 - np.pi / 4)
        ]
        data.append(point)
    for i in range(7):
        point = [
            rs.XTarget + 0.39 * np.cos(-i * np.pi / 12 - np.pi / 4),
            rs.YTarget + 0.39 * np.sin(-i * np.pi / 12 - np.pi / 4)
        ]
        data.append(point)
    np.savetxt(filename, data)
Esempio n. 12
0
from Main.MainCMAES import generateFromRegression
from Regression.RunRegression import run
from Plot.plotFunctions import plotXYPositions
from Main.Test import *
from Utils.Chrono import Chrono
from Utils.ReadXmlFile import ReadXmlFile

setupFile = "setupRBFN.xml"
thetaName = "ScriptRBFNxml"
folder = "TrajRBFNxml"

rs = ReadXmlFile(setupFile)
c = Chrono()
run(rs)
c.stop()
generateFromRegression(1, rs, thetaName, folder)
plotXYPositions("Regression", rs, folder, "All", True)
testRegression(rs, thetaName, folder)
Esempio n. 13
0
from Utils.Chrono import Chrono
from Utils.ReadXmlFile import ReadXmlFile
from Utils.FileReading import loadTrajForModel
from Experiments.Experiments import Experiments
from GlobalVariables import  pathDataFolder
from Regression.NeuraNetTF import NeuralNetTF
import numpy as np

rs=ReadXmlFile("setupNN1th.xml")

foldername = rs.CMAESpath + str(0.04) + "/"
thetaname = foldername + rs.thetaFile
exp = Experiments(rs, 0.04, False, foldername, thetaname,rs.popsizeCmaes,rs.period, "Inv")
#exp2 = Experiments(rs, 0.04, False, foldername, thetaname,rs.popsizeCmaes,rs.period,"Reg")
exp3 = Experiments(rs, 0.04, False, foldername, thetaname,rs.popsizeCmaes,rs.period,"Hyb")

'''
c=Chrono()
for i in range(30):
    cost, time = exp.runMultiProcessTrajectories(10)
c.stop()
print("Average cost: ", cost)
print("Average time: ", time)
'''
stateAndCommand, nextState = loadTrajForModel(pathDataFolder + "Brent/", 10)
#stateAndCommand, nextState = loadTrajForModel(pathDataFolder + "CMAEScluster/0.02/cluster/Log/", 10)
state=stateAndCommand[:,:4]
command=stateAndCommand[:,4:]

#exp2.tm.stateEstimator.initStore(state)
exp3.tm.stateEstimator.initStore(state)
Esempio n. 14
0
from multiprocess.pool import ThreadPool
from GlobalVariables import pathDataFolder
from Utils.Chrono import Chrono


def check_if_theta_file_exists(gamma, target_size, num):
    dir = "../Data/CMAESK10gamma" + str(gamma) + "/" + str(
        target_size) + "/" + str(num) + "/Theta/"
    return os.path.isdir(dir)


def launch(rs, gamma):
    gamma = int(gamma)
    all_points = []
    for target_size in [0.005, 0.01, 0.02, 0.04]:
        for i in range(15):
            if not check_if_theta_file_exists(gamma, target_size, i):
                all_points.append([i, target_size])

    p = ThreadPool(processes=len(all_points))
    posIni = np.loadtxt(pathDataFolder + rs.experimentFilePosIni)
    p.map(partial(launchCMAESMissing, rs, True, gamma),
          [[point[0], posIni[point[0]], point[1]] for point in all_points])
    p.close()
    p.join()


if __name__ == '__main__':
    rs = ReadXmlFile(sys.argv[1])
    launch(rs, float(sys.argv[2]))
Esempio n. 15
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Author: Corentin Arnaud


Description: plot data from CMAES
'''
from Utils.ReadXmlFile import ReadXmlFile
from Plot.plotFunctions import *

fileName = "setupK10gamma3.xml"
folder = "Best"

rs = ReadXmlFile(fileName)

plotScattergram("OPTI", folder, rs)
plotCostColorMap("OPTI", rs, folder)
plotCostColorMapFor12("OPTI", rs, folder)
plotTimeColorMap("OPTI", rs, folder)
plotPerfSizeDist(folder, rs)
plotTimeDistanceTarget(folder, rs)
plotFittsLaw(folder, rs)
plotXYPositions("OPTI", rs, folder, "All", False)
plotXYPositions("OPTI", rs, folder, "All", False, zoom=True)
plotVelocityProfile("OPTI", rs, folder)