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)
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)
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)