本文整理匯總了Python中pybullet.loadURDF方法的典型用法代碼示例。如果您正苦於以下問題:Python pybullet.loadURDF方法的具體用法?Python pybullet.loadURDF怎麽用?Python pybullet.loadURDF使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類pybullet
的用法示例。
在下文中一共展示了pybullet.loadURDF方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: setupWorld
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [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: _reset
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [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)
示例3: _reset
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def _reset(self):
# print("-----------reset simulation---------------")
p.resetSimulation()
self.cartpole = p.loadURDF(os.path.join(pybullet_data.getDataPath(),"cartpole.urdf"),[0,0,0])
self.timeStep = 0.01
p.setJointMotorControl2(self.cartpole, 1, p.VELOCITY_CONTROL, force=0)
p.setGravity(0,0, -10)
p.setTimeStep(self.timeStep)
p.setRealTimeSimulation(0)
initialCartPos = self.np_random.uniform(low=-0.5, high=0.5, size=(1,))
initialAngle = self.np_random.uniform(low=-0.5, high=0.5, size=(1,))
p.resetJointState(self.cartpole, 1, initialAngle)
p.resetJointState(self.cartpole, 0, initialCartPos)
self.state = p.getJointState(self.cartpole, 1)[0:2] + p.getJointState(self.cartpole, 0)[0:2]
return np.array(self.state)
示例4: _reset
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def _reset(self):
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.5 +0.2*random.random()
ypos = 0 +0.25*random.random()
ang = 3.1415925438*random.random()
orn = p.getQuaternionFromEuler([0,0,ang])
self.blockUid =p.loadURDF(os.path.join(self._urdfRoot,"block.urdf"), xpos,ypos,-0.1,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)
示例5: setup_inverse_kinematics
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def setup_inverse_kinematics(self):
"""
This function is responsible for doing any setup for inverse kinematics.
Inverse Kinematics maps end effector (EEF) poses to joint angles that
are necessary to achieve those poses.
"""
# Set up a connection to the PyBullet simulator.
p.connect(p.DIRECT)
p.resetSimulation()
# get paths to urdfs
self.robot_urdf = pjoin(
self.bullet_data_path, "sawyer_description/urdf/sawyer_arm.urdf"
)
# load the urdfs
self.ik_robot = p.loadURDF(self.robot_urdf, (0, 0, 0.9), useFixedBase=1)
# Simulation will update as fast as it can in real time, instead of waiting for
# step commands like in the non-realtime case.
p.setRealTimeSimulation(1)
示例6: setup_inverse_kinematics
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def setup_inverse_kinematics(self):
"""
This function is responsible for doing any setup for inverse kinematics.
Inverse Kinematics maps end effector (EEF) poses to joint angles that
are necessary to achieve those poses.
"""
# Set up a connection to the PyBullet simulator.
p.connect(p.DIRECT)
p.resetSimulation()
# get paths to urdfs
self.robot_urdf = pjoin(
self.bullet_data_path, "panda_description/urdf/panda_arm.urdf"
)
# load the urdfs
self.ik_robot = p.loadURDF(self.robot_urdf, (0, 0, 0.9), useFixedBase=1)
# Simulation will update as fast as it can in real time, instead of waiting for
# step commands like in the non-realtime case.
p.setRealTimeSimulation(1)
示例7: __init__
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def __init__(self, robot_name, print_debug, email_cred_file='', log_file='', control_rate=100, gripper_attached='default'):
super(WidowXController, self).__init__(robot_name, print_debug, email_cred_file, log_file, control_rate, gripper_attached)
self._redist_rate = rospy.Rate(50)
self._arbotix = ArbotiX('/dev/ttyUSB0')
assert self._arbotix.syncWrite(MAX_TORQUE_L, [[servo_id, 255, 0] for servo_id in SERVO_IDS]) != -1, "failure during servo configuring"
assert self._arbotix.syncWrite(TORQUE_LIMIT, [[servo_id, 255, 0] for servo_id in SERVO_IDS]) != -1, "failure during servo configuring"
self._joint_lock = Lock()
self._angles, self._velocities = {}, {}
rospy.Subscriber("/joint_states", JointState, self._joint_callback)
time.sleep(1)
self._joint_pubs = [rospy.Publisher('/{}/command'.format(name), Float64, queue_size=1) for name in JOINT_NAMES[:-1]]
self._gripper_pub = rospy.Publisher('/gripper_prismatic_joint/command', Float64, queue_size=1)
p.connect(p.DIRECT)
widow_x_urdf = '/'.join(__file__.split('/')[:-1]) + '/widowx/widowx.urdf'
self._armID = p.loadURDF(widow_x_urdf, useFixedBase=True)
p.resetBasePositionAndOrientation(self._armID, [0, 0, 0], p.getQuaternionFromEuler([np.pi, np.pi, np.pi]))
self._n_errors = 0
示例8: init_jaco
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def init_jaco(self, print_joints=False):
# Enable self collisions to prevent the arm from going through the torso
if self.task == 'arm_manipulation':
robot = p.loadURDF(os.path.join(self.directory, 'jaco', 'j2s7s300_gym_arm_manipulation.urdf'), useFixedBase=True, basePosition=[0, 0, 0], flags=p.URDF_USE_SELF_COLLISION, physicsClientId=self.id)
# Disable collisions between the fingers and the tool
for i in range(10, 16):
p.setCollisionFilterPair(robot, robot, i, 9, 0, physicsClientId=self.id)
else:
robot = p.loadURDF(os.path.join(self.directory, 'jaco', 'j2s7s300_gym.urdf'), useFixedBase=True, basePosition=[0, 0, 0], flags=p.URDF_USE_SELF_COLLISION, physicsClientId=self.id)
robot_arm_joint_indices = [1, 2, 3, 4, 5, 6, 7]
if print_joints:
self.print_joint_info(robot, show_fixed=True)
# Initialize and position
p.resetBasePositionAndOrientation(robot, [-2, -2, 0.975], [0, 0, 0, 1], physicsClientId=self.id)
# Grab and enforce robot arm joint limits
lower_limits, upper_limits = self.enforce_joint_limits(robot)
return robot, lower_limits, upper_limits, robot_arm_joint_indices, robot_arm_joint_indices
示例9: _setup
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def _setup(self):
"""Sets up the robot + tray + objects.
"""
pybullet.resetSimulation(physicsClientId=self.cid)
pybullet.setPhysicsEngineParameter(numSolverIterations=150,
physicsClientId=self.cid)
# pybullet.setTimeStep(self._time_step, physicsClientId=self.cid)
pybullet.setGravity(0, 0, -10, physicsClientId=self.cid)
plane_path = os.path.join(self._urdf_root, 'plane.urdf')
pybullet.loadURDF(plane_path, [0, 0, -1],
physicsClientId=self.cid)
table_path = os.path.join(self._urdf_root, 'table/table.urdf')
pybullet.loadURDF(table_path, [0.0, 0.0, -.65],
[0., 0., 0., 1.], physicsClientId=self.cid)
# Load the target object
duck_path = os.path.join(self._urdf_root, 'duck_vhacd.urdf')
pos = [0]*3
orn = [0., 0., 0., 1.]
self._target_uid = pybullet.loadURDF(
duck_path, pos, orn, physicsClientId=self.cid)
示例10: _addTower
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def _addTower(self, pos, blocks, urdf_dir):
'''
Helper function that generats a tower containing listed blocks at the
specific position
'''
z = 0.025
ids = []
for block in blocks:
urdf_filename = os.path.join(
urdf_dir, self.model, self.block_urdf % block)
obj_id = pb.loadURDF(urdf_filename)
pb.resetBasePositionAndOrientation(
obj_id,
(pos[0], pos[1], z),
(0, 0, 0, 1))
self.addObject("block", "%s_block" % block, obj_id)
z += 0.05
ids.append(obj_id)
return ids
示例11: _setup
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def _setup(self):
'''
Create the mug at a random position on the ground, handle facing
roughly towards the robot. Robot's job is to grab and lift.
'''
rospack = rospkg.RosPack()
path = rospack.get_path('costar_simulation')
urdf_dir = os.path.join(path, self.urdf_dir)
tray_filename = os.path.join(urdf_dir, self.tray_dir, self.tray_urdf)
red_filename = os.path.join(urdf_dir, self.model, self.red_urdf)
blue_filename = os.path.join(urdf_dir, self.model, self.blue_urdf)
for position in self.tray_poses:
obj_id = pb.loadURDF(tray_filename)
pb.resetBasePositionAndOrientation(obj_id, position, (0, 0, 0, 1))
self._add_balls(self.num_red, red_filename, "red")
self._add_balls(self.num_blue, blue_filename, "blue")
示例12: _addTower
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def _addTower(self, pos, blocks, urdf_dir):
'''
Helper function that generats a tower containing listed blocks at the
specific position
'''
z = 0.025
ids = []
for block in blocks:
urdf_filename = os.path.join(
urdf_dir, self.model, self.block_urdf % block)
obj_id = pb.loadURDF(urdf_filename)
r = self._sampleRotation()
block_pos = self._samplePos(pos[0], pos[1], z)
pb.resetBasePositionAndOrientation(
obj_id,
block_pos,
r)
self.addObject("block", "%s_block" % block, obj_id)
z += 0.05
ids.append(obj_id)
return ids
示例13: load
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def load(self):
'''
This is an example of a function that allows you to load a robot from
file based on command line arguments. It just needs to find the
appropriate directory, use xacro to create a temporary robot urdf,
and then load that urdf with PyBullet.
'''
rospack = rospkg.RosPack()
path = rospack.get_path('costar_simulation')
filename = os.path.join(path, self.xacro_filename)
urdf_filename = os.path.join(path, 'robot', self.urdf_filename)
urdf = open(urdf_filename, "w")
# Recompile the URDF to make sure it's up to date
subprocess.call(['rosrun', 'xacro', 'xacro.py', filename], stdout=urdf)
self.handle = pb.loadURDF(urdf_filename)
self.grasp_idx = self.findGraspFrame()
#self.loadKinematicsFromURDF(urdf_filename, "base_link")
return self.handle
示例14: load
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def load(self):
'''
This is an example of a function that allows you to load a robot from
file based on command line arguments. It just needs to find the
appropriate directory, use xacro to create a temporary robot urdf,
and then load that urdf with PyBullet.
'''
rospack = rospkg.RosPack()
path = rospack.get_path('costar_simulation')
filename = os.path.join(path, self.xacro_filename)
urdf_filename = os.path.join(path, 'robot', self.urdf_filename)
urdf = open(urdf_filename, "w")
# Recompile the URDF to make sure it's up to date
subprocess.call(['rosrun', 'xacro', 'xacro.py', filename], stdout=urdf)
self.handle = pb.loadURDF(urdf_filename)
return self.handle
示例15: load
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import loadURDF [as 別名]
def load(self):
'''
This is an example of a function that allows you to load a robot from
file based on command line arguments. It just needs to find the
appropriate directory, use xacro to create a temporary robot urdf,
and then load that urdf with PyBullet.
'''
rospack = rospkg.RosPack()
path = rospack.get_path('costar_simulation')
filename = os.path.join(path, self.xacro_filename)
urdf_filename = os.path.join(path, 'robot', self.urdf_filename)
urdf = open(urdf_filename, "w")
# Recompile the URDF to make sure it's up to date
subprocess.call(['rosrun', 'xacro', 'xacro.py', filename], stdout=urdf)
self.handle = pb.loadURDF(urdf_filename)
self.grasp_idx = self.findGraspFrame()
self.loadKinematicsFromURDF(urdf_filename, "base_link")
return self.handle