def Start_Evaluation(self, pp, pb): self.sim = PYROSIM(playPaused=pp, playBlind=pb, evalTime=500) robot = ROBOT(self.sim, self.genome) self.sim.Start()
def Start_Evaluation(self, hideSim=True, startPaused=False): self.sim = PYROSIM(playPaused=startPaused, playBlind=hideSim, evalTime=c.evaluationTime) robot = ROBOT(self.sim, self.genome) self.sim.Start()
class INDIVIDUAL: def __init__(self, i): self.ID = i self.genome = numpy.random.random([4, 8]) * 2 - 1 self.fitness = 0 def Start_Evaluation(self, pp, pb): self.sim = PYROSIM(playPaused=pp, playBlind=pb, evalTime=500) robot = ROBOT(self.sim, self.genome) self.sim.Start() def Compute_Fitness(self): self.sim.Wait_To_Finish() sensorData = self.sim.Get_Sensor_Data(sensorID=4, s=1) self.fitness = sensorData[499] if (self.fitness > 10.0): self.fitness = 10.0 del self.sim def Mutate(self): s = random.randint(0, 3) m = random.randint(0, 7) self.genome[s, m] = random.gauss(self.genome[s, m], math.fabs(self.genome[s, m])) if (self.genome[s, m] > 1.0): self.genome[s, m] = 1.0 if (self.genome[s, m] < -1.0): self.genome[s, m] = -1.0 def Print(self): print '[', print self.ID, print self.fitness, print '] ',
def Start_Evaluation(self, env, pp, pb): self.sim = PYROSIM(playPaused=pp, playBlind=pb, evalTime=constants.evaluationTime) robot = ROBOT(self.sim, self.genome) env.Send_To(self.sim) self.sim.Start()
def __init__(self): self.sim = PYROSIM(playPaused=False) self.arena = ARENA(self.sim) xPosition = random.random()*(c.endX-c.startX) + c.startX yPosition = random.random()*(c.endY-c.startY) + c.startY self.robot = ROBOT(self.sim, x = xPosition , y = yPosition , theta = 0.0 ) self.sim.Start()
def _Test_Tree(): T = 1000 sim = PYROSIM(playPaused=False, playBlind=False, evalTime=T, xyz=[0, 0, 5], hpr=[90, -90, 0]) #sim = PYROSIM(playPaused=False, playBlind=False, evalTime=T, xyz=[-5,0,2], hpr=[0,-20,0]) t = Treebot() t.Send_To_Simulator(sim) sim.Start() sim.Wait_To_Finish() data = sim.Get_Results()
def Evaluate(self, obstacles, playBlind, playPaused): self.sims = {} for e in range(0, c.NUM_ENVIRONMENTS): self.sims[e] = PYROSIM(playBlind=playBlind, playPaused=playPaused) self.sim = self.sims[e] self.Send_To_Sim(e) obstacles.Send_To_Sim(self.sims[e]) self.sims[e].Start() self.fitness = 0.0 for e in range(0, c.NUM_ENVIRONMENTS): self.sim = self.sims[e] self.sims[e].Wait_To_Finish() self.Compute_Fitness()
def Play_Indv(robot, eval_time, environment=False): sensor_data = {} if environment: for i, env in enumerate(environment[:8]): sim = PYROSIM(playPaused=True, playBlind=False, evalTime=eval_time, xyz=(0, -2, 3), hpr=(90, -30, 0)) offset = robot.Send_To_Simulator(sim, eval_time=eval_time) env.Send_To_Simulator(sim, ID_offset=offset[0]) sim.Start() sim.Wait_To_Finish() sensor_data[i] = sim.Get_Results() print sensor_data return sensor_data
def Start_Evaluation(self,trialIndex,initialX,initialY,initialTheta,pp,pb): self.sims[trialIndex] = PYROSIM(playPaused=pp,playBlind=pb) self.robot = ROBOT(self.sims[trialIndex], self.genome, x = initialX , y = initialY , theta = initialTheta) del self.robot self.arena = ARENA(self.sims[trialIndex]) del self.arena self.sims[trialIndex].Start()
def Send_Sub_Population_To_Simulator(population, start_index): sensor_data = {} ID = 0 for offset in range(start_index, len(population), NUM_IN_PARALLEL): sims = [0] * NUM_IN_PARALLEL for i in range(NUM_IN_PARALLEL): if i + offset < len(population): sims[i] = PYROSIM(playBlind=True, evalTime=1000) indv_to_send = population[i + offset]['genome'] indv_to_send.Send_To_Simulator(sims[i], eval_time=1000) sims[i].Start() for i in range(NUM_IN_PARALLEL): if i + offset < len(population): sims[i].Wait_To_Finish() ID = population[i + offset]['ID'] sensor_data[i + offset] = sims[i].Get_Results() return sensor_data
def Send_Sub_Population_To_Simulator(self, start_index, environment=0): sensor_data = {} ID = 0 for offset in range(start_index, len(self.population), NUM_IN_PARALLEL): sims = [0] * NUM_IN_PARALLEL for i in range(NUM_IN_PARALLEL): if i + offset < len(self.population): sims[i] = PYROSIM(playBlind=True, evalTime=self.eval_time) indv_to_send = self.population[i + offset]['genome'] offsets = indv_to_send.Send_To_Simulator( sims[i], eval_time=self.eval_time) self.environments[environment].Send_To_Simulator( sims[i], ID_offset=offsets[0]) sims[i].Start() for i in range(NUM_IN_PARALLEL): if i + offset < len(self.population): sims[i].Wait_To_Finish() ID = self.population[i + offset]['ID'] sensor_data[i + offset] = sims[i].Get_Results() return sensor_data
def Evaluate(self, hideSim=True, startPaused=False): sim = PYROSIM(playPaused=startPaused, playBlind=hideSim, evalTime=c.evaluationTime) robot = ROBOT(sim, self.genome) sim.Start() sim.Wait_To_Finish() x = sim.Get_Sensor_Data(sensorID=4, s=0) y = sim.Get_Sensor_Data(sensorID=4, s=1) z = sim.Get_Sensor_Data(sensorID=4, s=2) # self.sensorData_0 = sim.Get_Sensor_Data(sensorID=0) # self.sensorData_1 = sim.Get_Sensor_Data(sensorID=1) # self.sensorData_2 = sim.Get_Sensor_Data(sensorID=2) # self.sensorData_3 = sim.Get_Sensor_Data(sensorID=3) # self.sensorData_4 = sim.Get_Sensor_Data(sensorID=4) # print(sim.Get_Sensor_Data(sensorID=4)) self.fitness = y[-1] del sim
from pyrosim import PYROSIM sim = PYROSIM(playPaused = True , evalTime = 1000) x = 0 y = 0 z = 0.1 for i in range(0,10): sim.Send_Cylinder(x=x, y=y, z=z, r1=0, r2=1, r3=0, length=1.0, radius=0.1) z = z + 2.0 * 0.1 sim.Start()
from pyrosim import PYROSIM ARM_LENGTH = 0.5 ARM_RADIUS = ARM_LENGTH / 10.0 sim = PYROSIM(playPaused=True, evalTime=1000) sim.Send_Cylinder(ID=0, x=0, y=0, z=ARM_LENGTH / 2.0 + ARM_RADIUS, r1=0, r2=0, r3=1, length=ARM_LENGTH, radius=ARM_RADIUS) sim.Send_Cylinder(ID=1, x=0, y=ARM_LENGTH / 2.0, z=ARM_LENGTH + ARM_RADIUS, r1=0, r2=1, r3=0, length=ARM_LENGTH, radius=ARM_RADIUS) sim.Send_Joint(ID=0, firstObjectID=0, secondObjectID=1,
import matplotlib.pyplot as plt from pyrosim import PYROSIM from robot import ROBOT import random for i in range(0, 3): ######################################################################################################################## # Pyrosim setup ######################################################################################################################## sim = PYROSIM(playPaused=False, evalTime=300) robot = ROBOT(sim, random.random() * 2 - 1) sim.Start() sim.Wait_To_Finish() sensorData_0 = sim.Get_Sensor_Data(sensorID=0) sensorData_1 = sim.Get_Sensor_Data(sensorID=1) sensorData_2 = sim.Get_Sensor_Data(sensorID=2) sensorData_3 = sim.Get_Sensor_Data(sensorID=3) sensorData_4 = sim.Get_Sensor_Data(sensorID=4) sensorData_5 = sim.Get_Sensor_Data(sensorID=5) # x = sim.Get_Sensor_Data(sensorID=5, s=0) # y = sim.Get_Sensor_Data(sensorID=5, s=1) # z = sim.Get_Sensor_Data(sensorID=5, s=2) # # print (x[-1]) # print(y[-1]) # print(z[-1]) ########################################################################################################################
from pyrosim import PYROSIM sim = PYROSIM() sim.Send_Cylinder() sim.Start()
from pyrosim import PYROSIM import math ARM_LENGTH = 0.5 ARM_RADIUS = ARM_LENGTH / 10.0 sim = PYROSIM(playPaused=True, evalTime=1000, debug=False) sim.Send_Cylinder(objectID=0, x=0, y=0, z=ARM_LENGTH / 2.0 + 2 * ARM_RADIUS, r1=0, r2=0, r3=1, length=ARM_LENGTH, radius=ARM_RADIUS) sim.Send_Cylinder(objectID=1, x=0, y=ARM_LENGTH / 2.0, z=ARM_LENGTH + 2 * ARM_RADIUS, r1=0, r2=1, r3=0, length=ARM_LENGTH, radius=ARM_RADIUS) sim.Send_Joint(jointID=0, firstObjectID=0,
#Sensor on feet sim.Send_Touch_Sensor(ID=sensorID, objectIndex=calfID) sensorID += 1 #Send a position sensor attached to the body sim.Send_Position_Sensor(ID=sensorID, objectIndex=bodyID) print sensorID sensorID += 1 return objID, jointID, sensorID if __name__ == '__main__': T = 1000 sim = PYROSIM(playPaused=False, playBlind=False, evalTime=T) objID = 0 jointID = 0 sensorID = 0 neuronID = 0 pos_sensor_list = [] N = 4 for i in range( N): #Create N potatoes, each with a different random network color = np.random.rand(3) objID, jointID, sensorID, neuronID = Send_Quadruped_Body_And_Brain( sim, x=i * 1.5 - N / 2., objID=objID, jointID=jointID, sensorID=sensorID,
from population import POPULATION from pyrosim import PYROSIM from robot import ROBOT from minimalRobot import MINIMAL_ROBOT from individual import INDIVIDUAL import constants as c from core01_HillClimber import * from environments import ENVIRONMENTS import matplotlib.pyplot as plt import copy as cp import sys import pickle import random import os.path import time genome = [ MatrixCreate(c.numHidNeurons, 5), MatrixCreate(c.numHidNeurons, 8), MatrixCreate(c.numHidNeurons, c.numHidNeurons) ] genome[0] = MatrixRandomize(genome[0], 0, 0) genome[1] = MatrixRandomize(genome[1], 0, 0) genome[2] = MatrixRandomize(genome[2], 0, 0) # Plain Robot without motor Neurons sim = PYROSIM(playPaused=True, playBlind=False, evalTime=1000000) robot = ROBOT(sim, genome) sim.Start()
from pyrosim import PYROSIM from robot import ROBOT import matplotlib.pyplot as plt import random for i in range(0, 10): sim = PYROSIM(playPaused=False, evalTime = 200) robot = ROBOT(sim, random.random() *2 - 1) sim.Start() sim.Wait_To_Finish() # sensorData = sim.Get_Sensor_Data(sensorID=2) # print sensorData # f = plt.figure() # pn = f.add_subplot(111) # plt.plot(sensorData) # pn.set_ylim(-10,+11) # plt.show()
from pyrosim import PYROSIM WHEEL_RADIUS = 0.1 sim = PYROSIM(playPaused=False, evalTime=1000) sim.Send_Cylinder(objectID=0, x=-2 * WHEEL_RADIUS, y=-2 * WHEEL_RADIUS, z=WHEEL_RADIUS, length=0, radius=WHEEL_RADIUS) sim.Send_Box(objectID=1, x=0, y=0, z=WHEEL_RADIUS, length=4 * WHEEL_RADIUS, width=4 * WHEEL_RADIUS, height=WHEEL_RADIUS) sim.Send_Joint(jointID=0, firstObjectID=0, secondObjectID=1, x=-2 * WHEEL_RADIUS, y=-2 * WHEEL_RADIUS, z=WHEEL_RADIUS, n1=1, n2=0, n3=0, lo=-3.14159 / 4.0,
from pyrosim import PYROSIM ARM_LENGTH = 0.5 ARM_RADIUS = ARM_LENGTH / 10.0 sim = PYROSIM(playPaused=False, evalTime=1000) sim.Send_Cylinder(objectID=0, x=0, y=0, z=ARM_LENGTH / 2.0 + ARM_RADIUS, r1=0, r2=0, r3=1, length=ARM_LENGTH, radius=ARM_RADIUS) sim.Send_Cylinder(objectID=1, x=0, y=ARM_LENGTH / 2.0, z=ARM_LENGTH + ARM_RADIUS, r1=0, r2=1, r3=0, length=ARM_LENGTH, radius=ARM_RADIUS) sim.Start() # sim.Collect_Sensor_Data()
from pyrosim import PYROSIM sim = PYROSIM(evalTime=10000) sim.Start()
from pyrosim import PYROSIM import matplotlib.pyplot as plt sim = PYROSIM(playPaused=True, evalTime=2000) sim.Send_Cylinder(objectID=0, x=0, y=0, z=0.6, length=1, radius=0.1) sim.Send_Cylinder(objectID=1, x=0, y=0.5, z=1.1, r=1, g=0, b=0, r1=0, r2=1, r3=0) sim.Send_Joint(jointID=0, firstObjectID=0, secondObjectID=1, x=0, y=0, z=1.1, n1=-1, n2=0, n3=0, lo=-3.14159 / 2, hi=3.14159 / 2)
from pyrosim import PYROSIM import constants pi = constants.pi sim = PYROSIM(playPaused=True, evalTime=10000) sim.Send_Cylinder(objectID=0, x=0, y=0, z=0.6, length=1.0, radius=0.1) sim.Send_Cylinder(objectID=1, x=0, y=0.5, z=1.1, length=1.0, radius=0.1, r=1, g=0, b=0, r1=0, r2=1, r3=0) sim.Send_Joint(jointID=0, firstObjectID=0, secondObjectID=1, x=0, y=0, z=1.1, n1=1, n2=0, n3=0, lo=-pi / 2, hi=pi / 2)
from pyrosim import PYROSIM sim = PYROSIM(playPaused=True, evalTime=1000) sim.Send_Cylinder(x=0, y=0, z=0.5, r1=0, r2=1, r3=0) sim.Start()
from pyrosim import PYROSIM sim = PYROSIM(playPaused=True, evalTime=1000) sim.Send_Cylinder(objectID=0, x=0, y=0, z=0.6, length=1.0, radius=0.1) sim.Send_Cylinder(objectID=1, x=0, y=0.5, z=1.1, r=1, g=0, b=0, r1=0, r2=1, r3=0) # sim.Send_Cylinder( length=1.0 , radius=0.1 ) sim.Start()
from pyrosim import PYROSIM import matplotlib.pyplot as plt sim = PYROSIM(playPaused=True , evalTime=100) sim.Send_Cylinder( objectID=0, x=0 , y=0 , z=.6 , length=1.0 , radius=0.1 ) sim.Send_Cylinder( objectID=1 , x=0 , y=.5 , z=1.1 , r1=0 , r2=1, r3=0 , length=1.0 , radius=0.1 , r=1, g=0, b=0) sim.Send_Joint( jointID = 0 , firstObjectID = 0 , secondObjectID = 1, x=0 , y=0 , z=1.1, n1 = -1 , n2 = 0 , n3 = 0, lo=-3.14159/2 , hi=3.14159/2 ) sim.Send_Touch_Sensor( sensorID = 0 , objectID = 0 ) sim.Send_Touch_Sensor( sensorID = 1 , objectID = 1 ) sim.Start() sim.Wait_To_Finish() sensorData = sim.Get_Sensor_Data(sensorID = 1) print sensorData #f = plt.figure() #pn = f.add_subplot(111) #plt.plot(sensorData) #plt.show()
from geodude import GEODUDE from pyrosim import PYROSIM import constants as c sim = PYROSIM( playPaused=True, playBlind=False, evalTime=10000) geodude1 = GEODUDE(sim) sim.Start() sim.Wait_To_Finish() # touch = sim.Get_Sensor_Data(sensorID=0) # print(touch)