本文整理匯總了Python中pybullet.URDF_USE_SELF_COLLISION屬性的典型用法代碼示例。如果您正苦於以下問題:Python pybullet.URDF_USE_SELF_COLLISION屬性的具體用法?Python pybullet.URDF_USE_SELF_COLLISION怎麽用?Python pybullet.URDF_USE_SELF_COLLISION使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類pybullet
的用法示例。
在下文中一共展示了pybullet.URDF_USE_SELF_COLLISION屬性的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: reset
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import URDF_USE_SELF_COLLISION [as 別名]
def reset(self, bullet_client):
self._p = bullet_client
#print("Created bullet_client with id=", self._p._client)
if (self.doneLoading==0):
self.ordered_joints = []
self.doneLoading=1
if self.self_collision:
self.objects = self._p.loadMJCF(os.path.join(pybullet_data.getDataPath(),"mjcf", self.model_xml), flags=pybullet.URDF_USE_SELF_COLLISION|pybullet.URDF_USE_SELF_COLLISION_EXCLUDE_ALL_PARENTS)
self.parts, self.jdict, self.ordered_joints, self.robot_body = self.addToScene(self._p, self.objects )
else:
self.objects = self._p.loadMJCF(os.path.join(pybullet_data.getDataPath(),"mjcf", self.model_xml))
self.parts, self.jdict, self.ordered_joints, self.robot_body = self.addToScene(self._p, self.objects)
self.robot_specific_reset(self._p)
s = self.calc_state() # optimization: calc_state() can calculate something in self.* for calc_potential() to use
return s
示例2: init_jaco
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import URDF_USE_SELF_COLLISION [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
示例3: init_sawyer
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import URDF_USE_SELF_COLLISION [as 別名]
def init_sawyer(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, 'sawyer', 'sawyer_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(16, 24):
p.setCollisionFilterPair(robot, robot, i, 24, 0, physicsClientId=self.id)
else:
robot = p.loadURDF(os.path.join(self.directory, 'sawyer', 'sawyer.urdf'), useFixedBase=True, basePosition=[0, 0, 0], flags=p.URDF_USE_SELF_COLLISION, physicsClientId=self.id)
# Remove collisions between the various arm links for stability
for i in range(3, 24):
for j in range(3, 24):
p.setCollisionFilterPair(robot, robot, i, j, 0, physicsClientId=self.id)
for i in range(0, 3):
for j in range(0, 9):
p.setCollisionFilterPair(robot, robot, i, j, 0, physicsClientId=self.id)
robot_arm_joint_indices = [3, 8, 9, 10, 11, 13, 16]
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
示例4: init_kinova_gen3
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import URDF_USE_SELF_COLLISION [as 別名]
def init_kinova_gen3(self, print_joints=False):
robot = p.loadURDF(os.path.join(self.directory, 'kinova_gen3', 'GEN3_URDF_V12.urdf'), useFixedBase=True, basePosition=[0, 0, 0], flags=p.URDF_USE_SELF_COLLISION, physicsClientId=self.id)
robot_arm_joint_indices = [0, 1, 2, 3, 4, 5, 6]
if print_joints:
self.print_joint_info(robot, show_fixed=True)
# Initialize and position
p.resetBasePositionAndOrientation(robot, [-0.95, -0.3, 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
示例5: _load_model
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import URDF_USE_SELF_COLLISION [as 別名]
def _load_model(self):
if self.model_type == "MJCF":
self.robot_ids = p.loadMJCF(os.path.join(self.physics_model_dir, self.model_file), flags=p.URDF_USE_SELF_COLLISION+p.URDF_USE_SELF_COLLISION_EXCLUDE_ALL_PARENTS)
if self.model_type == "URDF":
self.robot_ids = (p.loadURDF(os.path.join(self.physics_model_dir, self.model_file), globalScaling = self.scale), )
self.parts, self.jdict, self.ordered_joints, self.robot_body = self.addToScene(self.robot_ids)
示例6: loadRobot
# 需要導入模塊: import pybullet [as 別名]
# 或者: from pybullet import URDF_USE_SELF_COLLISION [as 別名]
def loadRobot(self, translation, quaternion, physicsClientId=0):
"""
Loads the robot into a simulation, loads the joints and the links
descriptions. The joints are set to 0 rad.
Parameters:
translation - List containing 3 elements, the translation [x, y, z]
of the robot in the WORLD frame
quaternion - List containing 4 elements, the quaternion
[x, y, z, q] of the robot in the WORLD frame
physicsClientId - The id of the simulated instance in which the
robot is supposed to be loaded
Returns:
boolean - True if the method ran correctly, False otherwise
"""
try:
self.physics_client = physicsClientId
self.robot_model = pybullet.loadURDF(
self.description_file,
translation,
quaternion,
useFixedBase=False,
globalScaling=1.0,
physicsClientId=self.physics_client,
flags=pybullet.URDF_USE_SELF_COLLISION |
pybullet.URDF_USE_MATERIAL_COLORS_FROM_MTL)
except pybullet.error as e:
raise pybullet.error("Cannot load robot model: " + str(e))
for i in range(pybullet.getNumJoints(
self.robot_model,
physicsClientId=self.physics_client)):
if IS_VERSION_PYTHON_3:
# PYTHON 3 version needs a conversion bytes to str
joint_info = pybullet.getJointInfo(
self.robot_model,
i,
physicsClientId=self.physics_client)
self.link_dict[joint_info[12].decode('utf-8')] =\
Link(joint_info)
if joint_info[2] == pybullet.JOINT_PRISMATIC or\
joint_info[2] == pybullet.JOINT_REVOLUTE:
self.joint_dict[joint_info[1].decode('utf-8')] =\
Joint(joint_info)
else:
# PYTHON 2 Version
joint_info = pybullet.getJointInfo(
self.robot_model,
i,
physicsClientId=self.physics_client)
self.link_dict[joint_info[12]] = Link(joint_info)
if joint_info[2] == pybullet.JOINT_PRISMATIC or\
joint_info[2] == pybullet.JOINT_REVOLUTE:
self.joint_dict[joint_info[1]] = Joint(joint_info)