本文整理匯總了Python中pybullet.stepSimulation方法的典型用法代碼示例。如果您正苦於以下問題:Python pybullet.stepSimulation方法的具體用法?Python pybullet.stepSimulation怎麽用?Python pybullet.stepSimulation使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類pybullet
的用法示例。
在下文中一共展示了pybullet.stepSimulation方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: setupWorld
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def setupWorld(self):
numObjects = 50
maximalCoordinates = False
p.resetSimulation()
p.setPhysicsEngineParameter(deterministicOverlappingPairs=1)
p.loadURDF("planeMesh.urdf",useMaximalCoordinates=maximalCoordinates)
kukaId = p.loadURDF("kuka_iiwa/model_free_base.urdf",[0,0,10], useMaximalCoordinates=maximalCoordinates)
for i in range (p.getNumJoints(kukaId)):
p.setJointMotorControl2(kukaId,i,p.POSITION_CONTROL,force=0)
for i in range (numObjects):
cube = p.loadURDF("cube_small.urdf",[0,i*0.02,(i+1)*0.2])
#p.changeDynamics(cube,-1,mass=100)
p.stepSimulation()
p.setGravity(0,0,-10)
示例2: test_rolling_friction
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def test_rolling_friction(self):
import pybullet as p
p.connect(p.DIRECT)
p.loadURDF("plane.urdf")
sphere = p.loadURDF("sphere2.urdf",[0,0,1])
p.resetBaseVelocity(sphere,linearVelocity=[1,0,0])
p.changeDynamics(sphere,-1,linearDamping=0,angularDamping=0)
#p.changeDynamics(sphere,-1,rollingFriction=0)
p.setGravity(0,0,-10)
for i in range (1000):
p.stepSimulation()
vel = p.getBaseVelocity(sphere)
self.assertLess(vel[0][0],1e-10)
self.assertLess(vel[0][1],1e-10)
self.assertLess(vel[0][2],1e-10)
self.assertLess(vel[1][0],1e-10)
self.assertLess(vel[1][1],1e-10)
self.assertLess(vel[1][2],1e-10)
p.disconnect()
示例3: _reset
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def _reset(self):
#print("KukaGymEnv _reset")
self.terminated = 0
p.resetSimulation()
p.setPhysicsEngineParameter(numSolverIterations=150)
p.setTimeStep(self._timeStep)
p.loadURDF(os.path.join(self._urdfRoot,"plane.urdf"),[0,0,-1])
p.loadURDF(os.path.join(self._urdfRoot,"table/table.urdf"), 0.5000000,0.00000,-.820000,0.000000,0.000000,0.0,1.0)
xpos = 0.55 +0.12*random.random()
ypos = 0 +0.2*random.random()
ang = 3.14*0.5+3.1415925438*random.random()
orn = p.getQuaternionFromEuler([0,0,ang])
self.blockUid =p.loadURDF(os.path.join(self._urdfRoot,"block.urdf"), xpos,ypos,-0.15,orn[0],orn[1],orn[2],orn[3])
p.setGravity(0,0,-10)
self._kuka = kuka.Kuka(urdfRootPath=self._urdfRoot, timeStep=self._timeStep)
self._envStepCounter = 0
p.stepSimulation()
self._observation = self.getExtendedObservation()
return np.array(self._observation)
示例4: _step
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def _step(self, action):
p.stepSimulation()
# time.sleep(self.timeStep)
self.state = p.getJointState(self.cartpole, 1)[0:2] + p.getJointState(self.cartpole, 0)[0:2]
theta, theta_dot, x, x_dot = self.state
dv = 0.1
deltav = [-10.*dv,-5.*dv, -2.*dv, -0.1*dv, 0, 0.1*dv, 2.*dv,5.*dv, 10.*dv][action]
p.setJointMotorControl2(self.cartpole, 0, p.VELOCITY_CONTROL, targetVelocity=(deltav + self.state[3]))
done = x < -self.x_threshold \
or x > self.x_threshold \
or theta < -self.theta_threshold_radians \
or theta > self.theta_threshold_radians
reward = 1.0
return np.array(self.state), reward, done, {}
示例5: step2
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def step2(self, action):
for i in range(self._actionRepeat):
self._kuka.applyAction(action)
p.stepSimulation()
if self._termination():
break
#self._observation = self.getExtendedObservation()
self._envStepCounter += 1
self._observation = self.getExtendedObservation()
if self._renders:
time.sleep(self._timeStep)
#print("self._envStepCounter")
#print(self._envStepCounter)
done = self._termination()
reward = self._reward()
#print("len=%r" % len(self._observation))
return np.array(self._observation), reward, done, {}
示例6: ik_random_restarts
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def ik_random_restarts(self, body, target_joint, target_pos, target_orient, world_creation, robot_arm_joint_indices, robot_lower_limits, robot_upper_limits, ik_indices=range(29, 29+7), max_iterations=1000, max_ik_random_restarts=50, random_restart_threshold=0.01, half_range=False, step_sim=False, check_env_collisions=False):
orient_orig = target_orient
best_ik_joints = None
best_ik_distance = 0
for r in range(max_ik_random_restarts):
target_joint_positions = self.ik(body, target_joint, target_pos, target_orient, ik_indices=ik_indices, max_iterations=max_iterations, half_range=half_range)
world_creation.setup_robot_joints(body, robot_arm_joint_indices, robot_lower_limits, robot_upper_limits, randomize_joint_positions=False, default_positions=np.array(target_joint_positions), tool=None)
if step_sim:
for _ in range(5):
p.stepSimulation(physicsClientId=self.id)
if len(p.getContactPoints(bodyA=body, bodyB=body, physicsClientId=self.id)) > 0 and orient_orig is not None:
# The robot's arm is in contact with itself. Continually randomize end effector orientation until a solution is found
target_orient = p.getQuaternionFromEuler(p.getEulerFromQuaternion(orient_orig, physicsClientId=self.id) + np.deg2rad(self.np_random.uniform(-45, 45, size=3)), physicsClientId=self.id)
if check_env_collisions:
for _ in range(25):
p.stepSimulation(physicsClientId=self.id)
gripper_pos, gripper_orient = p.getLinkState(body, target_joint, computeForwardKinematics=True, physicsClientId=self.id)[:2]
if np.linalg.norm(target_pos - np.array(gripper_pos)) < random_restart_threshold and (target_orient is None or np.linalg.norm(target_orient - np.array(gripper_orient)) < random_restart_threshold or np.isclose(np.linalg.norm(target_orient - np.array(gripper_orient)), 2, atol=random_restart_threshold)):
return True, np.array(target_joint_positions)
if best_ik_joints is None or np.linalg.norm(target_pos - np.array(gripper_pos)) < best_ik_distance:
best_ik_joints = target_joint_positions
best_ik_distance = np.linalg.norm(target_pos - np.array(gripper_pos))
world_creation.setup_robot_joints(body, robot_arm_joint_indices, robot_lower_limits, robot_upper_limits, randomize_joint_positions=False, default_positions=np.array(best_ik_joints), tool=None)
return False, np.array(best_ik_joints)
示例7: ik_jlwki
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def ik_jlwki(self, body, target_joint, target_pos, target_orient, world_creation, robot_arm_joint_indices, robot_lower_limits, robot_upper_limits, ik_indices=range(29, 29+7), max_iterations=100, success_threshold=0.03, half_range=False, step_sim=False, check_env_collisions=False):
target_joint_positions = self.ik(body, target_joint, target_pos, target_orient, ik_indices=ik_indices, max_iterations=max_iterations, half_range=half_range)
world_creation.setup_robot_joints(body, robot_arm_joint_indices, robot_lower_limits, robot_upper_limits, randomize_joint_positions=False, default_positions=np.array(target_joint_positions), tool=None)
if step_sim:
for _ in range(5):
p.stepSimulation(physicsClientId=self.id)
if len(p.getContactPoints(bodyA=body, bodyB=body, physicsClientId=self.id)) > 0:
# The robot's arm is in contact with itself.
return False, np.array(target_joint_positions)
if check_env_collisions:
for _ in range(25):
p.stepSimulation(physicsClientId=self.id)
gripper_pos, gripper_orient = p.getLinkState(body, target_joint, computeForwardKinematics=True, physicsClientId=self.id)[:2]
if np.linalg.norm(target_pos - np.array(gripper_pos)) < success_threshold and (target_orient is None or np.linalg.norm(target_orient - np.array(gripper_orient)) < success_threshold or np.isclose(np.linalg.norm(target_orient - np.array(gripper_orient)), 2, atol=success_threshold)):
return True, np.array(target_joint_positions)
return False, np.array(target_joint_positions)
示例8: setup_robot_joints
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def setup_robot_joints(self, robot, robot_joint_indices, lower_limits, upper_limits, randomize_joint_positions=False, default_positions=[1, 1, 0, -1.75, 0, -1.1, -0.5], tool=None):
if randomize_joint_positions:
# Randomize arm joint positions
# Keep trying random joint positions until the end effector is not colliding with anything
retry = True
while retry:
for j, lower_limit, upper_limit in zip(robot_joint_indices, lower_limits, upper_limits):
if lower_limit == -1e10:
lower_limit = -np.pi
upper_limit = np.pi
joint_range = upper_limit - lower_limit
p.resetJointState(robot, jointIndex=j, targetValue=self.np_random.uniform(lower_limit + joint_range/6.0, upper_limit - joint_range/6.0), targetVelocity=0, physicsClientId=self.id)
p.stepSimulation(physicsClientId=self.id)
retry = len(p.getContactPoints(bodyA=robot, physicsClientId=self.id)) > 0
if tool is not None:
retry = retry or (len(p.getContactPoints(bodyA=tool, physicsClientId=self.id)) > 0)
else:
default_positions[default_positions < lower_limits] = lower_limits[default_positions < lower_limits]
default_positions[default_positions > upper_limits] = upper_limits[default_positions > upper_limits]
for i, j in enumerate(robot_joint_indices):
p.resetJointState(robot, jointIndex=j, targetValue=default_positions[i], targetVelocity=0, physicsClientId=self.id)
示例9: step
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def step(self, action):
yaw = 0
while True:
yaw += -0.75
p.resetDebugVisualizerCamera(cameraDistance=1.2, cameraYaw=yaw, cameraPitch=-20, cameraTargetPosition=[0, 0, 1.0], physicsClientId=self.id)
indices = [4, 5, 6]
# indices = [14, 15, 16]
deltas = [0.01, 0.01, -0.01]
indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
deltas = [0, 0, 0, 0, 0.01, 0.01, -0.01, 0, 0, 0]
# indices = []
# deltas = []
# indices = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) + 10
# deltas = [0, 0, 0, 0, -0.01, 0.01, -0.01, 0, 0, 0]
for i, d in zip(indices, deltas):
joint_position = p.getJointState(self.human, jointIndex=i, physicsClientId=self.id)[0]
if joint_position + d > self.human_lower_limits[i] and joint_position + d < self.human_upper_limits[i]:
p.resetJointState(self.human, jointIndex=i, targetValue=joint_position+d, targetVelocity=0, physicsClientId=self.id)
p.stepSimulation(physicsClientId=self.id)
print('cameraYaw=%.2f, cameraPitch=%.2f, distance=%.2f' % p.getDebugVisualizerCamera(physicsClientId=self.id)[-4:-1])
self.enforce_realistic_human_joint_limits()
time.sleep(0.05)
return [], None, None, None
示例10: configure
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def configure(self, args):
self._args = args
#def _reset(self):
#if self._env_randomizer is not None:
# self._env_randomizer.randomize_env(self)
#self._last_base_position = [0, 0, 0]
#self._objectives = []
#if not self._torque_control_enabled:
# for _ in range(1 / self.timestep):
# if self._pd_control_enabled or self._accurate_motor_model_enabled:
# self.robot.ApplyAction([math.pi / 2] * 8)
# pybullet.stepSimulation()
#return self._noisy_observation()
示例11: _reset
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def _reset(self):
# reset your environment
# reset state
self.steps = 0
self.done = False
# reset pole on cart in starting poses
self.slider.set_state(0, 0) # reset joint position of cart
for _ in xrange(100): p.stepSimulation()
# give a fixed force push in a random direction to get things going...
theta = np.random.RandomState().uniform(low=-.1, high=.1, size=[2]) if self.random_theta else (0.0, 0.0)
self.polejoint.set_state(float(theta[0]) if not self.swingup else np.pi + float(theta[0]),0) # reset joint position of pole
self.pole2joint.set_state(float(theta[0]) if not self.swingup else np.pi + float(theta[1]),0) # reset joint position of pole2
self.polejoint.set_state(float(theta[0]), 0)
self.pole2joint.set_state(float(theta[1]), 0)
# bootstrap state by running for all repeats
for i in xrange(self.repeats):
self.set_state_element_for_repeat(i)
# return this state
return np.copy(self.state)
示例12: _reset
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def _reset(self):
# reset your environment
# reset state
self.steps = 0
self.done = False
# reset morphology
p.resetBasePositionAndOrientation(self.body, self.initPosition, self.initOrientation) # reset body position and orientation
resetPosition = 0
for joint in xrange(self.num_joints):
if self.random_initial_position:
resetPosition = np.random.random() * 2 * np.pi - np.pi
p.resetJointState(self.body, joint, resetPosition) # reset joint position of joints
for _ in xrange(100): p.stepSimulation()
# bootstrap state by running for all repeats
for i in xrange(self.repeats):
self.set_state_element_for_repeat(i)
# return this state
return np.copy(self.state)
示例13: _reset
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def _reset(self):
# reset state
self.steps = 0
self.done = False
# reset pole on cart in starting poses
p.resetBasePositionAndOrientation(self.cart, (0,0,0.08), (0,0,0,1))
p.resetBasePositionAndOrientation(self.pole, (0,0,0.35), (0,0,0,1))
for _ in xrange(100): p.stepSimulation()
# give a fixed force push in a random direction to get things going...
theta = np.multiply(np.multiply((np.random.random(), np.random.random(), 0),2) - (1,1,0),5) if self.random_theta else (1,0,0)
for _ in xrange(self.initial_force_steps):
p.stepSimulation()
p.applyExternalForce(self.pole, -1, theta, (0, 0, 0), p.WORLD_FRAME)
if self.delay > 0:
time.sleep(self.delay)
# bootstrap state by running for all repeats
for i in xrange(self.repeats):
self.set_state_element_for_repeat(i)
# return this state
return np.copy(self.state)
示例14: setupWorld
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def setupWorld():
p.resetSimulation()
p.setPhysicsEngineParameter(deterministicOverlappingPairs=1)
p.loadURDF("planeMesh.urdf")
kukaId = p.loadURDF("kuka_iiwa/model_free_base.urdf",[0,0,10])
for i in range (p.getNumJoints(kukaId)):
p.setJointMotorControl2(kukaId,i,p.POSITION_CONTROL,force=0)
for i in range (numObjects):
cube = p.loadURDF("cube_small.urdf",[0,i*0.02,(i+1)*0.2])
#p.changeDynamics(cube,-1,mass=100)
p.stepSimulation()
p.setGravity(0,0,-10)
示例15: buildJointNameToIdDict
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import stepSimulation [as 別名]
def buildJointNameToIdDict(self):
nJoints = p.getNumJoints(self.quadruped)
self.jointNameToId = {}
for i in range(nJoints):
jointInfo = p.getJointInfo(self.quadruped, i)
self.jointNameToId[jointInfo[1].decode('UTF-8')] = jointInfo[0]
self.resetPose()
for i in range(100):
p.stepSimulation()