Tests to run the simulation with motors
This commit is contained in:
33
CM3020 Artificial Intelligence/Week 8/Files/motor_test.py
Normal file
33
CM3020 Artificial Intelligence/Week 8/Files/motor_test.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import genome
|
||||||
|
import creature
|
||||||
|
import pybullet as p
|
||||||
|
import time
|
||||||
|
import random
|
||||||
|
# ... usual starter code to create a sim and floor
|
||||||
|
p.connect(p.GUI)
|
||||||
|
p.setPhysicsEngineParameter(enableFileCaching=0)
|
||||||
|
p.configureDebugVisualizer(p.COV_ENABLE_GUI, 0)
|
||||||
|
plane_shape = p.createCollisionShape(p.GEOM_PLANE)
|
||||||
|
floor = p.createMultiBody(plane_shape, plane_shape)
|
||||||
|
p.setGravity(0, 0, -10)
|
||||||
|
p.setRealTimeSimulation(1)
|
||||||
|
|
||||||
|
# generate a random creature
|
||||||
|
cr = creature.Creature(gene_count=3)
|
||||||
|
# save it to XML
|
||||||
|
with open('test.urdf', 'w') as f:
|
||||||
|
f.write(cr.to_xml())
|
||||||
|
# load it into the sim
|
||||||
|
rob1 = p.loadURDF('test.urdf')
|
||||||
|
# iterate
|
||||||
|
while True:
|
||||||
|
motors = cr.get_motors()
|
||||||
|
assert len(motors) == p.getNumJoints(rob1), "Something went wrong"
|
||||||
|
for jid in range(p.getNumJoints(rob1)):
|
||||||
|
mode = p.VELOCITY_CONTROL
|
||||||
|
vel = 5 * (random.random() - 0.5)
|
||||||
|
p.setJointMotorControl2(rob1,
|
||||||
|
jid,
|
||||||
|
controlMode=mode,
|
||||||
|
targetVelocity=vel)
|
||||||
|
time.sleep(0.5)
|
||||||
Reference in New Issue
Block a user