コード例 #1
0
def plotPos(name, media, plotEstim, rs):

    states = getXYHandData(name, 100)
    print(len(states.items()))
    for _,v in states.items():        
        posX, posY = [], []
        for j in range(len(v)):
            posX.append(v[j][0])
            posY.append(v[j][1])
        dist=rs.getDistanceToTarget(posX[0],posY[0])
        if dist<=0.15:
            media.plot(posX,posY, c ='b')
        elif dist<=0.28:
            media.plot(posX,posY, c ='green')
        else:
            media.plot(posX,posY, c ='red')
        

    if plotEstim==True:
        estimStates = getEstimatedXYHandData(name, 100)
        for _,v in estimStates.items():
            eX, eY = [], []
            for j in range(len(v)):
                eX.append(v[j][0])
                eY.append(v[j][1])
            media.plot(eX,eY, c ='black')
コード例 #2
0
def trajectoriesAnimation(what, foldername="None", targetSize="0.05"):
    rs = ReadSetupFile()
    if what == "CMAES":
        name = rs.CMAESpath + targetSize + "/" + foldername + "/Log/"
    elif what == "Brent":
        name = BrentTrajectoriesFolder
    else:
        name = rs.RBFNpath + foldername + "/Log/"

    ec = getXYElbowData(name)
    hc = getXYHandData(name)

    posIni = np.loadtxt(pathDataFolder + rs.experimentFilePosIni)

    xEl, yEl, xHa, yHa = [], [], [], []
    for key, val in ec.items():
        for el in val:
            xEl.append(el[0])
            yEl.append(el[1])
        for elhc in hc[key]:
            xHa.append(elhc[0])
            yHa.append(elhc[1])

    fig = plt.figure()
    upperArm, = plt.plot([], [])
    foreArm, = plt.plot([], [])
    plt.xlim(-0.7, 0.7)
    plt.ylim(-0.7, 0.7)
    plt.plot([-0.7, 0.7], [rs.YTarget, rs.YTarget])
    plt.scatter([-rs.sizeOfTarget[3] / 2, rs.sizeOfTarget[3] / 2],
                [rs.YTarget, rs.YTarget],
                c='g',
                marker='o',
                s=50)
    plt.scatter([el[0] for el in posIni], [el[1] for el in posIni], c='b')

    def init():
        upperArm.set_data([0], [0])
        foreArm.set_data([xEl[0]], [yEl[0]])
        return upperArm, foreArm

    def animate(i):
        xe = (0, xEl[i])
        ye = (0, yEl[i])
        xh = (xEl[i], xHa[i])
        yh = (yEl[i], yHa[i])
        upperArm.set_data(xe, ye)
        foreArm.set_data(xh, yh)
        return upperArm, foreArm

    ani = animation.FuncAnimation(fig,
                                  animate,
                                  init_func=init,
                                  frames=len(xEl),
                                  blit=True,
                                  interval=20,
                                  repeat=True)
    plt.show(block=True)
コード例 #3
0
def trajectoriesAnimation(what, foldername = "None", targetSize = "0.05"):
    rs = ReadSetupFile()
    if what == "CMAES":
        name = rs.CMAESpath + targetSize + "/" + foldername + "/Log/"
    elif what == "Brent":
        name = BrentTrajectoriesFolder
    else:
        name = rs.NNpath + foldername + "/Log/"

    ec = getXYElbowData(name)
    wc = getXYWristData(name)
    hc = getXYHandData(name)
    
    posIni = np.loadtxt(pathDataFolder + rs.experimentFilePosIni)
    
    xEl, yEl, xW, yW, xHa, yHa = [], [], [], [], [], []
    for key, val in ec.items():
        for el in val:
            xEl.append(el[0])
            yEl.append(el[1])
        for ew in wc[key]:
            xW.append(ew[0])
            yW.append(ew[1])
        for elhc in hc[key]:
            xHa.append(elhc[0])
            yHa.append(elhc[1])
    
    fig = plt.figure()
    upperArm, = plt.plot([],[]) 
    foreArm, = plt.plot([],[])
    hand, = plt.plot([],[])
    plt.xlim(-0.7, 0.7)
    plt.ylim(-0.7,0.7)
    plt.plot([-0.7,0.7], [rs.YTarget, rs.YTarget])
    plt.scatter([-rs.sizeOfTarget[3]/2, rs.sizeOfTarget[3]/2], [rs.YTarget, rs.YTarget], c ='g', marker='o', s=50)
    plt.scatter([el[0] for el in posIni],[el[1] for el in posIni], c='b')
    
    def init():
        upperArm.set_data([0], [0])
        foreArm.set_data([xEl[0]], [yEl[0]])
        hand.set_data([xW[0]], [yW[0]])
        return upperArm, foreArm, hand
    
    def animate(i):
        xe = (0, xEl[i])
        ye = (0, yEl[i])
        xww = (xEl[i], xW[i])
        yww = (yEl[i], yW[i])
        xh = (xW[i], xHa[i])
        yh = (yW[i], yHa[i])
        upperArm.set_data(xe, ye)
        foreArm.set_data(xww,yww)
        hand.set_data(xh, yh)
        return upperArm, foreArm, hand
    
    ani = animation.FuncAnimation(fig, animate, init_func=init, frames=len(xEl), blit=True, interval=20, repeat=True)
    plt.show(block = True)
コード例 #4
0
def trajectoriesAnimation(what, rs,foldername = "None", targetSize = "0.05"):
    if what == "OPTI":
        name = rs.OPTIpath + targetSize + "/" + foldername + "/Log/"
    elif what == "Brent":
        name = BrentTrajectoriesFolder
    else:
        name = rs.path + foldername + "/Log/"

    ec = getXYElbowData(name)
    hc = getXYHandData(name)
    
    posIni = np.loadtxt(pathDataFolder + rs.experimentFilePosIni)
    
    xEl, yEl, xHa, yHa = [], [], [], []
    for key, val in ec.items():
        for el in val:
            xEl.append(el[0])
            yEl.append(el[1])
        for elhc in hc[key]:
            xHa.append(elhc[0])
            yHa.append(elhc[1])
    
    fig = plt.figure(1, figsize=(16,9))
    upperArm, = plt.plot([],[]) 
    foreArm, = plt.plot([],[])
    plt.xlim(-0.7, 0.7)
    plt.ylim(-0.7,0.7)
    plt.plot([-0.7,0.7], [rs.YTarget, rs.YTarget])
    plt.scatter([-rs.target_size[3]/2, rs.target_size[3]/2], [rs.YTarget, rs.YTarget], c ='g', marker='o', s=50)
    plt.scatter([el[0] for el in posIni],[el[1] for el in posIni], c='b')
    
    def init():
        upperArm.set_data([0], [0])
        foreArm.set_data([xEl[0]], [yEl[0]])
        return upperArm, foreArm
    
    def animate(i):
        xe = (0, xEl[i])
        ye = (0, yEl[i])
        xh = (xEl[i], xHa[i])
        yh = (yEl[i], yHa[i])
        upperArm.set_data(xe, ye)
        foreArm.set_data(xh, yh)
        return upperArm, foreArm
    
    animation.FuncAnimation(fig, animate, init_func=init, frames=len(xEl), blit=True, interval=20, repeat=True)
    plt.show(block = True)
コード例 #5
0
def plotPos(name, media, plotEstim):
    states = getXYHandData(name)
    factor = min(1, 100./len(states.items()))

    for k,v in states.items():
        if  rd.random()<factor:
            posX, posY = [], []
            for j in range(len(v)):
                posX.append(v[j][0])
                posY.append(v[j][1])
            media.plot(posX,posY, c ='b')

    if plotEstim==True:
        estimStates = getEstimatedXYHandData(name)
        for k,v in estimStates.items():
            if  rd.random()<factor:
                eX, eY = [], []
                for j in range(len(v)):
                    eX.append(v[j][0])
                    eY.append(v[j][1])
                media.plot(eX,eY, c ='r')
コード例 #6
0
def plotPos(name, media, plotEstim):
    states = getXYHandData(name)
    factor = min(1, 100. / len(states.items()))

    for k, v in states.items():
        if rd.random() < factor:
            posX, posY = [], []
            for j in range(len(v)):
                posX.append(v[j][0])
                posY.append(v[j][1])
            media.plot(posX, posY, c='b')

    if plotEstim == True:
        estimStates = getEstimatedXYHandData(name)
        for k, v in estimStates.items():
            if rd.random() < factor:
                eX, eY = [], []
                for j in range(len(v)):
                    eX.append(v[j][0])
                    eY.append(v[j][1])
                media.plot(eX, eY, c='r')