本文整理汇总了Python中pybullet.changeVisualShape方法的典型用法代码示例。如果您正苦于以下问题:Python pybullet.changeVisualShape方法的具体用法?Python pybullet.changeVisualShape怎么用?Python pybullet.changeVisualShape使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pybullet
的用法示例。
在下文中一共展示了pybullet.changeVisualShape方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: init_pr2
# 需要导入模块: import pybullet [as 别名]
# 或者: from pybullet import changeVisualShape [as 别名]
def init_pr2(self, print_joints=False):
if self.task == 'arm_manipulation':
robot = p.loadURDF(os.path.join(self.directory, 'PR2', 'pr2_no_torso_lift_tall_arm_manipulation.urdf'), useFixedBase=True, basePosition=[0, 0, 0], physicsClientId=self.id)
robot_right_arm_joint_indices = [42, 43, 44, 46, 47, 49, 50]
robot_left_arm_joint_indices = [65, 66, 67, 69, 70, 72, 73]
else:
robot = p.loadURDF(os.path.join(self.directory, 'PR2', 'pr2_no_torso_lift_tall.urdf'), useFixedBase=True, basePosition=[0, 0, 0], flags=p.URDF_USE_INERTIA_FROM_FILE, physicsClientId=self.id)
robot_right_arm_joint_indices = [42, 43, 44, 46, 47, 49, 50]
robot_left_arm_joint_indices = [64, 65, 66, 68, 69, 71, 72]
if print_joints:
self.print_joint_info(robot, show_fixed=True)
# Initialize and position PR2
p.resetBasePositionAndOrientation(robot, [-2, -2, 0], [0, 0, 0, 1], physicsClientId=self.id)
# Recolor PR2
if self.task == 'arm_manipulation':
for i in [19, 42, 65]:
p.changeVisualShape(robot, i, rgbaColor=[1.0, 1.0, 1.0, 1.0], physicsClientId=self.id)
for i in [43, 46, 49, 59, 61, 66, 69, 72, 82, 84]:
p.changeVisualShape(robot, i, rgbaColor=[0.4, 0.4, 0.4, 1.0], physicsClientId=self.id)
for i in [45, 51, 68, 74]:
p.changeVisualShape(robot, i, rgbaColor=[0.7, 0.7, 0.7, 1.0], physicsClientId=self.id)
else:
for i in [19, 42, 64]:
p.changeVisualShape(robot, i, rgbaColor=[1.0, 1.0, 1.0, 1.0], physicsClientId=self.id)
for i in [43, 46, 49, 58, 60, 65, 68, 71, 80, 82]:
p.changeVisualShape(robot, i, rgbaColor=[0.4, 0.4, 0.4, 1.0], physicsClientId=self.id)
for i in [45, 51, 67, 73]:
p.changeVisualShape(robot, i, rgbaColor=[0.7, 0.7, 0.7, 1.0], physicsClientId=self.id)
p.changeVisualShape(robot, 20, rgbaColor=[0.8, 0.8, 0.8, 1.0], physicsClientId=self.id)
p.changeVisualShape(robot, 40, rgbaColor=[0.6, 0.6, 0.6, 1.0], 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_right_arm_joint_indices, robot_left_arm_joint_indices
示例2: init_baxter
# 需要导入模块: import pybullet [as 别名]
# 或者: from pybullet import changeVisualShape [as 别名]
def init_baxter(self, print_joints=False):
if self.task == 'arm_manipulation':
robot = p.loadURDF(os.path.join(self.directory, 'baxter', 'baxter_custom_arm_manipulation.urdf'), useFixedBase=True, basePosition=[0, 0, 0], physicsClientId=self.id)
robot_right_arm_joint_indices = [12, 13, 14, 15, 16, 18, 19]
robot_left_arm_joint_indices = [35, 36, 37, 38, 39, 41, 42]
else:
robot = p.loadURDF(os.path.join(self.directory, 'baxter', 'baxter_custom.urdf'), useFixedBase=True, basePosition=[0, 0, 0], physicsClientId=self.id)
robot_right_arm_joint_indices = [12, 13, 14, 15, 16, 18, 19]
robot_left_arm_joint_indices = [34, 35, 36, 37, 38, 40, 41]
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)
if self.task == 'arm_manipulation':
for i in [20, 21, 23, 32, 33, 43, 44, 46, 55, 56]:
p.changeVisualShape(robot, i, rgbaColor=[1.0, 1.0, 1.0, 0.0], physicsClientId=self.id)
else:
for i in [20, 21, 23, 31, 32, 42, 43, 45, 53, 54]:
p.changeVisualShape(robot, i, rgbaColor=[1.0, 1.0, 1.0, 0.0], 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_right_arm_joint_indices, robot_left_arm_joint_indices
示例3: robot_specific_reset
# 需要导入模块: import pybullet [as 别名]
# 或者: from pybullet import changeVisualShape [as 别名]
def robot_specific_reset(self):
WalkerBase.robot_specific_reset(self)
humanoidId = -1
numBodies = p.getNumBodies()
for i in range (numBodies):
bodyInfo = p.getBodyInfo(i)
if bodyInfo[1].decode("ascii") == 'humanoid':
humanoidId = i
## Spherical radiance/glass shield to protect the robot's camera
if self.glass_id is None:
glass_id = p.loadMJCF(os.path.join(self.physics_model_dir, "glass.xml"))[0]
#print("setting up glass", glass_id, humanoidId)
p.changeVisualShape(glass_id, -1, rgbaColor=[0, 0, 0, 0])
cid = p.createConstraint(humanoidId, -1, glass_id,-1,p.JOINT_FIXED,[0,0,0],[0,0,1.4],[0,0,1])
self.motor_names = ["abdomen_z", "abdomen_y", "abdomen_x"]
self.motor_power = [100, 100, 100]
self.motor_names += ["right_hip_x", "right_hip_z", "right_hip_y", "right_knee"]
self.motor_power += [100, 100, 300, 200]
self.motor_names += ["left_hip_x", "left_hip_z", "left_hip_y", "left_knee"]
self.motor_power += [100, 100, 300, 200]
self.motor_names += ["right_shoulder1", "right_shoulder2", "right_elbow"]
self.motor_power += [75, 75, 75]
self.motor_names += ["left_shoulder1", "left_shoulder2", "left_elbow"]
self.motor_power += [75, 75, 75]
self.motors = [self.jdict[n] for n in self.motor_names]
示例4: step
# 需要导入模块: import pybullet [as 别名]
# 或者: from pybullet import changeVisualShape [as 别名]
def step(self, action):
obs, rew, env_done, info = SemanticRobotEnv.step(self,action=action)
self.close_semantic_ids = self.get_close_semantic_pos(dist_max=1.0, orn_max=np.pi/5)
for i in self.close_semantic_ids:
flagId = self.semantic_flagIds[i]
p.changeVisualShape(flagId, -1, rgbaColor=[0, 1, 0, 1])
return obs,rew,env_done,info
示例5: _reset
# 需要导入模块: import pybullet [as 别名]
# 或者: from pybullet import changeVisualShape [as 别名]
def _reset(self):
CameraRobotEnv._reset(self)
for flagId in self.semantic_flagIds:
p.changeVisualShape(flagId, -1, rgbaColor=[1, 0, 0, 1])
示例6: __init__
# 需要导入模块: import pybullet [as 别名]
# 或者: from pybullet import changeVisualShape [as 别名]
def __init__(self, robot, gravity, timestep, frame_skip, env=None):
Scene.__init__(self, gravity, timestep, frame_skip, env)
filename = os.path.join(pybullet_data.getDataPath(), "stadium_no_collision.sdf")
self.stadium = p.loadSDF(filename)
planeName = os.path.join(pybullet_data.getDataPath(), "mjcf/ground_plane.xml")
self.ground_plane_mjcf = p.loadMJCF(planeName)
for i in self.ground_plane_mjcf:
pos, orn = p.getBasePositionAndOrientation(i)
p.resetBasePositionAndOrientation(i, [pos[0], pos[1], pos[2] - 0.005], orn)
for i in self.ground_plane_mjcf:
p.changeVisualShape(i, -1, rgbaColor=[1, 1, 1, 0.5])
self.scene_obj_list = self.stadium
示例7: __init__
# 需要导入模块: import pybullet [as 别名]
# 或者: from pybullet import changeVisualShape [as 别名]
def __init__(self, robot, task,
gui=False,
opengl2=False,
ros=False,
features="",
ros_name="simulation",
option=None,
plot_task=False,
directory='.',
capture=False,
show_images=False,
randomize_color=False,
fast_reset=False,
agent=None,
*args, **kwargs):
# Do not start the gui if we aren't going to do anything with it.
self.gui = gui \
and not plot_task \
and agent is not None \
and agent is not "null"
self.opengl2 = opengl2 and not plot_task \
and agent is not None \
and agent is not "null"
self.robot = GetRobotInterface(robot)
features = GetFeatures(features)
self.task = GetTaskDefinition(
task, self.robot, features, *args, **kwargs)
self.fast_reset = fast_reset
# managed list of processes and other metadata
self.procs = []
self.ros = ros
# saving
self.capture = capture
self.show_images = show_images
self.directory = directory
self.randomize_color = randomize_color
# self.iterations = 0
# self.max_iterations = 100
if ros:
# boot up ROS and open a connection to the simulation server
self._start_ros(ros_name)
self.open()
if randomize_color:
for i in xrange(pb.getNumJoints(self.robot.handle)):
color = np.random.random((4,))
color[3] = 1.
pb.changeVisualShape(self.robot.handle, i, rgbaColor=color,
physicsClientId=self.client)
if plot_task:
print("SHOWING TASK")
showTask(self.task.task)
print("DONE")
sys.exit(0)
示例8: __init__
# 需要导入模块: import pybullet [as 别名]
# 或者: from pybullet import changeVisualShape [as 别名]
def __init__(self, robot, model_id, gravity, timestep, frame_skip, env = None):
Scene.__init__(self, gravity, timestep, frame_skip, env)
# contains cpp_world.clean_everything()
# stadium_pose = cpp_household.Pose()
# if self.zero_at_running_strip_start_line:
# stadium_pose.set_xyz(27, 21, 0) # see RUN_STARTLINE, RUN_RAD constants
filename = os.path.join(get_model_path(model_id), "mesh_z_up.obj")
#filename = os.path.join(get_model_path(model_id), "3d", "blender.obj")
#textureID = p.loadTexture(os.path.join(get_model_path(model_id), "3d", "rgb.mtl"))
if robot.model_type == "MJCF":
MJCF_SCALING = robot.mjcf_scaling
scaling = [1.0/MJCF_SCALING, 1.0/MJCF_SCALING, 0.6/MJCF_SCALING]
else:
scaling = [1, 1, 1]
magnified = [2, 2, 2]
collisionId = p.createCollisionShape(p.GEOM_MESH, fileName=filename, meshScale=scaling, flags=p.GEOM_FORCE_CONCAVE_TRIMESH)
view_only_mesh = os.path.join(get_model_path(model_id), "mesh_view_only_z_up.obj")
if os.path.exists(view_only_mesh):
visualId = p.createVisualShape(p.GEOM_MESH,
fileName=view_only_mesh,
meshScale=scaling, flags=p.GEOM_FORCE_CONCAVE_TRIMESH)
else:
visualId = -1
boundaryUid = p.createMultiBody(baseCollisionShapeIndex = collisionId, baseVisualShapeIndex = visualId)
p.changeDynamics(boundaryUid, -1, lateralFriction=1)
#print(p.getDynamicsInfo(boundaryUid, -1))
self.scene_obj_list = [(boundaryUid, -1)] # baselink index -1
planeName = os.path.join(pybullet_data.getDataPath(), "mjcf/ground_plane.xml")
self.ground_plane_mjcf = p.loadMJCF(planeName)
if "z_offset" in self.env.config:
z_offset = self.env.config["z_offset"]
else:
z_offset = -10 #with hole filling, we don't need ground plane to be the same height as actual floors
p.resetBasePositionAndOrientation(self.ground_plane_mjcf[0], posObj = [0,0,z_offset], ornObj = [0,0,0,1])
p.changeVisualShape(boundaryUid, -1, rgbaColor=[168 / 255.0, 164 / 255.0, 92 / 255.0, 1.0],
specularColor=[0.5, 0.5, 0.5])