Python pybullet.getLinkState() Examples
The following are 30
code examples of pybullet.getLinkState().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pybullet
, or try the search function
.
Example #1
Source File: inverse_kinematics_husky_kuka.py From soccer-matlab with BSD 2-Clause "Simplified" License | 6 votes |
def accurateCalculateInverseKinematics( kukaId, endEffectorId, targetPos, threshold, maxIter): closeEnough = False iter = 0 dist2 = 1e30 while (not closeEnough and iter<maxIter): jointPoses = p.calculateInverseKinematics(kukaId,kukaEndEffectorIndex,targetPos) for i in range (numJoints): p.resetJointState(kukaId,i,jointPoses[i]) ls = p.getLinkState(kukaId,kukaEndEffectorIndex) newPos = ls[4] diff = [targetPos[0]-newPos[0],targetPos[1]-newPos[1],targetPos[2]-newPos[2]] dist2 = (diff[0]*diff[0] + diff[1]*diff[1] + diff[2]*diff[2]) closeEnough = (dist2 < threshold) iter=iter+1 #print ("Num iter: "+str(iter) + "threshold: "+str(dist2)) return jointPoses
Example #2
Source File: dressing.py From assistive-gym with MIT License | 6 votes |
def _get_obs(self, forces, forces_human): torso_pos = np.array(p.getLinkState(self.robot, 15 if self.robot_type == 'pr2' else 0, computeForwardKinematics=True, physicsClientId=self.id)[0]) state = p.getLinkState(self.robot, 76 if self.robot_type=='pr2' else 19 if self.robot_type=='sawyer' else 48 if self.robot_type=='baxter' else 8, computeForwardKinematics=True, physicsClientId=self.id) tool_pos = np.array(state[0]) tool_orient = np.array(state[1]) # Quaternions robot_joint_states = p.getJointStates(self.robot, jointIndices=self.robot_left_arm_joint_indices, physicsClientId=self.id) robot_joint_positions = np.array([x[0] for x in robot_joint_states]) robot_pos, robot_orient = p.getBasePositionAndOrientation(self.robot, physicsClientId=self.id) if self.human_control: human_pos = np.array(p.getBasePositionAndOrientation(self.human, physicsClientId=self.id)[0]) human_joint_states = p.getJointStates(self.human, jointIndices=self.human_controllable_joint_indices, physicsClientId=self.id) human_joint_positions = np.array([x[0] for x in human_joint_states]) # Human shoulder, elbow, and wrist joint locations shoulder_pos, shoulder_orient = p.getLinkState(self.human, 15, computeForwardKinematics=True, physicsClientId=self.id)[:2] elbow_pos, elbow_orient = p.getLinkState(self.human, 17, computeForwardKinematics=True, physicsClientId=self.id)[:2] wrist_pos, wrist_orient = p.getLinkState(self.human, 19, computeForwardKinematics=True, physicsClientId=self.id)[:2] robot_obs = np.concatenate([tool_pos-torso_pos, tool_orient, robot_joint_positions, shoulder_pos-torso_pos, elbow_pos-torso_pos, wrist_pos-torso_pos, forces]).ravel() if self.human_control: human_obs = np.concatenate([tool_pos-human_pos, tool_orient, human_joint_positions, shoulder_pos-human_pos, elbow_pos-human_pos, wrist_pos-human_pos, forces_human]).ravel() else: human_obs = [] return np.concatenate([robot_obs, human_obs]).ravel()
Example #3
Source File: bed_bathing.py From assistive-gym with MIT License | 6 votes |
def _get_obs(self, forces, forces_human): torso_pos = np.array(p.getLinkState(self.robot, 15 if self.robot_type == 'pr2' else 0, computeForwardKinematics=True, physicsClientId=self.id)[0]) state = p.getLinkState(self.tool, 1, computeForwardKinematics=True, physicsClientId=self.id) tool_pos = np.array(state[0]) tool_orient = np.array(state[1]) # Quaternions robot_joint_states = p.getJointStates(self.robot, jointIndices=self.robot_left_arm_joint_indices, physicsClientId=self.id) robot_joint_positions = np.array([x[0] for x in robot_joint_states]) robot_pos, robot_orient = p.getBasePositionAndOrientation(self.robot, physicsClientId=self.id) if self.human_control: human_pos = np.array(p.getBasePositionAndOrientation(self.human, physicsClientId=self.id)[0]) human_joint_states = p.getJointStates(self.human, jointIndices=self.human_controllable_joint_indices, physicsClientId=self.id) human_joint_positions = np.array([x[0] for x in human_joint_states]) # Human shoulder, elbow, and wrist joint locations shoulder_pos, shoulder_orient = p.getLinkState(self.human, 5, computeForwardKinematics=True, physicsClientId=self.id)[:2] elbow_pos, elbow_orient = p.getLinkState(self.human, 7, computeForwardKinematics=True, physicsClientId=self.id)[:2] wrist_pos, wrist_orient = p.getLinkState(self.human, 9, computeForwardKinematics=True, physicsClientId=self.id)[:2] robot_obs = np.concatenate([tool_pos-torso_pos, tool_orient, robot_joint_positions, shoulder_pos-torso_pos, elbow_pos-torso_pos, wrist_pos-torso_pos, forces]).ravel() if self.human_control: human_obs = np.concatenate([tool_pos-human_pos, tool_orient, human_joint_positions, shoulder_pos-human_pos, elbow_pos-human_pos, wrist_pos-human_pos, forces_human]).ravel() else: human_obs = [] return np.concatenate([robot_obs, human_obs]).ravel()
Example #4
Source File: bed_bathing.py From assistive-gym with MIT License | 6 votes |
def step(self, action): self.take_step(action, robot_arm='left', gains=self.config('robot_gains'), forces=self.config('robot_forces'), human_gains=0.05) total_force, tool_force, tool_force_on_human, total_force_on_human, new_contact_points = self.get_total_force() end_effector_velocity = np.linalg.norm(p.getLinkState(self.tool, 1, computeForwardKinematics=True, computeLinkVelocity=True, physicsClientId=self.id)[6]) obs = self._get_obs([tool_force], [total_force_on_human, tool_force_on_human]) # Get human preferences preferences_score = self.human_preferences(end_effector_velocity=end_effector_velocity, total_force_on_human=total_force_on_human, tool_force_at_target=tool_force_on_human) reward_distance = -min([c[8] for c in p.getClosestPoints(self.tool, self.human, distance=4.0, physicsClientId=self.id)]) reward_action = -np.sum(np.square(action)) # Penalize actions reward_new_contact_points = new_contact_points # Reward new contact points on a person reward = self.config('distance_weight')*reward_distance + self.config('action_weight')*reward_action + self.config('wiping_reward_weight')*reward_new_contact_points + preferences_score if self.gui and tool_force_on_human > 0: print('Task success:', self.task_success, 'Force at tool on human:', tool_force_on_human, reward_new_contact_points) info = {'total_force_on_human': total_force_on_human, 'task_success': int(self.task_success >= (self.total_target_count*self.config('task_success_threshold'))), 'action_robot_len': self.action_robot_len, 'action_human_len': self.action_human_len, 'obs_robot_len': self.obs_robot_len, 'obs_human_len': self.obs_human_len} done = False return obs, reward, done, info
Example #5
Source File: util.py From assistive-gym with MIT License | 6 votes |
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)
Example #6
Source File: feeding.py From assistive-gym with MIT License | 6 votes |
def _get_obs(self, forces, forces_human): torso_pos = np.array(p.getLinkState(self.robot, 15 if self.robot_type == 'pr2' else 0, computeForwardKinematics=True, physicsClientId=self.id)[0]) spoon_pos, spoon_orient = p.getBasePositionAndOrientation(self.spoon, physicsClientId=self.id) robot_right_joint_states = p.getJointStates(self.robot, jointIndices=self.robot_right_arm_joint_indices, physicsClientId=self.id) robot_right_joint_positions = np.array([x[0] for x in robot_right_joint_states]) robot_pos, robot_orient = p.getBasePositionAndOrientation(self.robot, physicsClientId=self.id) if self.human_control: human_pos = np.array(p.getBasePositionAndOrientation(self.human, physicsClientId=self.id)[0]) human_joint_states = p.getJointStates(self.human, jointIndices=self.human_controllable_joint_indices, physicsClientId=self.id) human_joint_positions = np.array([x[0] for x in human_joint_states]) head_pos, head_orient = p.getLinkState(self.human, 23, computeForwardKinematics=True, physicsClientId=self.id)[:2] robot_obs = np.concatenate([spoon_pos-torso_pos, spoon_orient, spoon_pos-self.target_pos, robot_right_joint_positions, head_pos-torso_pos, head_orient, forces]).ravel() if self.human_control: human_obs = np.concatenate([spoon_pos-human_pos, spoon_orient, spoon_pos-self.target_pos, human_joint_positions, head_pos-human_pos, head_orient, forces_human]).ravel() else: human_obs = [] return np.concatenate([robot_obs, human_obs]).ravel()
Example #7
Source File: drinking.py From assistive-gym with MIT License | 6 votes |
def _get_obs(self, forces, forces_human): torso_pos = np.array(p.getLinkState(self.robot, 15 if self.robot_type == 'pr2' else 0, computeForwardKinematics=True, physicsClientId=self.id)[0]) tool_pos, tool_orient = p.getBasePositionAndOrientation(self.cup, physicsClientId=self.id) robot_joint_states = p.getJointStates(self.robot, jointIndices=self.robot_right_arm_joint_indices, physicsClientId=self.id) robot_joint_positions = np.array([x[0] for x in robot_joint_states]) robot_pos, robot_orient = p.getBasePositionAndOrientation(self.robot, physicsClientId=self.id) if self.human_control: human_pos = np.array(p.getBasePositionAndOrientation(self.human, physicsClientId=self.id)[0]) human_joint_states = p.getJointStates(self.human, jointIndices=self.human_controllable_joint_indices, physicsClientId=self.id) human_joint_positions = np.array([x[0] for x in human_joint_states]) head_pos, head_orient = p.getLinkState(self.human, 23, computeForwardKinematics=True, physicsClientId=self.id)[:2] robot_obs = np.concatenate([tool_pos-torso_pos, tool_orient, tool_pos - self.target_pos, robot_joint_positions, head_pos-torso_pos, head_orient, forces]).ravel() if self.human_control: human_obs = np.concatenate([tool_pos-human_pos, tool_orient, tool_pos - self.target_pos, human_joint_positions, head_pos-human_pos, head_orient, forces_human]).ravel() else: human_obs = [] return np.concatenate([robot_obs, human_obs]).ravel()
Example #8
Source File: simulation.py From onshape-to-robot with MIT License | 6 votes |
def getRobotMass(self): """Returns the robot mass Returns: float -- the robot mass (kg) """ if self.mass is None: k = -1 self.mass = 0 while True: if k == -1 or p.getLinkState(self.robot, k) is not None: d = p.getDynamicsInfo(self.robot, k) self.mass += d[0] else: break k += 1 return self.mass
Example #9
Source File: simulation.py From onshape-to-robot with MIT License | 6 votes |
def frameToWorldMatrix(self, frame): """Gets the given frame to world matrix transformation. can be a frame name from URDF/SDF or "origin" for the part origin Arguments: frame {str} -- frame name Returns: np.matrix -- a 4x4 matrix """ if frame == 'origin': frameToWorldPose = p.getBasePositionAndOrientation(self.robot) else: frameToWorldPose = p.getLinkState(self.robot, self.frames[frame]) return self.poseToMatrix(frameToWorldPose)
Example #10
Source File: widowx_controller.py From visual_foresight with MIT License | 6 votes |
def _calculate_ik(self, targetPos, targetQuat, threshold=1e-5, maxIter=1000, nJoints=6): closeEnough = False iter_count = 0 dist2 = None best_ret, best_dist = None, float('inf') while (not closeEnough and iter_count < maxIter): jointPoses = list(p.calculateInverseKinematics(self._armID, 5, targetPos, targetQuat, JOINT_MIN, JOINT_MAX)) for i in range(nJoints): jointPoses[i] = max(min(jointPoses[i], JOINT_MAX[i]), JOINT_MIN[i]) p.resetJointState(self._armID, i, jointPoses[i]) ls = p.getLinkState(self._armID, 5, computeForwardKinematics=1) newPos, newQuat = ls[4], ls[5] dist2 = sum([(targetPos[i] - newPos[i]) ** 2 for i in range(3)]) closeEnough = dist2 < threshold iter_count += 1 if dist2 < best_dist: best_ret, best_dist = (jointPoses, newPos, newQuat), dist2 return best_ret
Example #11
Source File: panda_ik_controller.py From robosuite with MIT License | 6 votes |
def ik_robot_eef_joint_cartesian_pose(self): """ Returns the current cartesian pose of the last joint of the ik robot with respect to the base frame as a (pos, orn) tuple where orn is a x-y-z-w quaternion """ eef_pos_in_world = np.array(p.getLinkState(self.ik_robot, 6)[0]) eef_orn_in_world = np.array(p.getLinkState(self.ik_robot, 6)[1]) eef_pose_in_world = T.pose2mat((eef_pos_in_world, eef_orn_in_world)) base_pos_in_world = np.array(p.getBasePositionAndOrientation(self.ik_robot)[0]) base_orn_in_world = np.array(p.getBasePositionAndOrientation(self.ik_robot)[1]) base_pose_in_world = T.pose2mat((base_pos_in_world, base_orn_in_world)) world_pose_in_base = T.pose_inv(base_pose_in_world) eef_pose_in_base = T.pose_in_A_to_pose_in_B( pose_A=eef_pose_in_world, pose_A_in_B=world_pose_in_base ) return T.mat2pose(eef_pose_in_base)
Example #12
Source File: sawyer_ik_controller.py From robosuite with MIT License | 6 votes |
def ik_robot_eef_joint_cartesian_pose(self): """ Returns the current cartesian pose of the last joint of the ik robot with respect to the base frame as a (pos, orn) tuple where orn is a x-y-z-w quaternion """ eef_pos_in_world = np.array(p.getLinkState(self.ik_robot, 6)[0]) eef_orn_in_world = np.array(p.getLinkState(self.ik_robot, 6)[1]) eef_pose_in_world = T.pose2mat((eef_pos_in_world, eef_orn_in_world)) base_pos_in_world = np.array(p.getBasePositionAndOrientation(self.ik_robot)[0]) base_orn_in_world = np.array(p.getBasePositionAndOrientation(self.ik_robot)[1]) base_pose_in_world = T.pose2mat((base_pos_in_world, base_orn_in_world)) world_pose_in_base = T.pose_inv(base_pose_in_world) eef_pose_in_base = T.pose_in_A_to_pose_in_B( pose_A=eef_pose_in_world, pose_A_in_B=world_pose_in_base ) return T.mat2pose(eef_pose_in_base)
Example #13
Source File: arm_manipulation.py From assistive-gym with MIT License | 5 votes |
def step(self, action): self.take_step(action, robot_arm='both', gains=self.config('robot_gains'), forces=self.config('robot_forces'), human_gains=0.05, human_forces=2) tool_left_force, tool_right_force, total_force_on_human, tool_left_force_on_human, tool_right_force_on_human = self.get_total_force() end_effector_velocity = np.linalg.norm(p.getLinkState(self.robot, 78 if self.robot_type=='pr2' else 24 if self.robot_type=='sawyer' else 54 if self.robot_type=='baxter' else 9 if self.robot_type=='jaco' else 7, computeForwardKinematics=True, computeLinkVelocity=True, physicsClientId=self.id)[6]) end_effector_velocity += np.linalg.norm(p.getLinkState(self.robot, 55 if self.robot_type=='pr2' else 24 if self.robot_type=='sawyer' else 31 if self.robot_type=='baxter' else 9 if self.robot_type=='jaco' else 7, computeForwardKinematics=True, computeLinkVelocity=True, physicsClientId=self.id)[6]) obs = self._get_obs([tool_left_force, tool_right_force], [total_force_on_human, tool_left_force_on_human, tool_right_force_on_human]) # Get human preferences preferences_score = self.human_preferences(end_effector_velocity=end_effector_velocity, arm_manipulation_tool_forces_on_human=[tool_left_force_on_human, tool_right_force_on_human], arm_manipulation_total_force_on_human=total_force_on_human) tool_left_pos = np.array(p.getLinkState(self.robot, 78 if self.robot_type=='pr2' else 24 if self.robot_type=='sawyer' else 54 if self.robot_type=='baxter' else 9 if self.robot_type=='jaco' else 7, computeForwardKinematics=True, physicsClientId=self.id)[0]) tool_right_pos = np.array(p.getLinkState(self.robot, 55 if self.robot_type=='pr2' else 24 if self.robot_type=='sawyer' else 31 if self.robot_type=='baxter' else 9 if self.robot_type=='jaco' else 7, computeForwardKinematics=True, physicsClientId=self.id)[0]) elbow_pos = np.array(p.getLinkState(self.human, 7, computeForwardKinematics=True, physicsClientId=self.id)[0]) hand_pos = np.array(p.getLinkState(self.human, 9, computeForwardKinematics=True, physicsClientId=self.id)[0]) waist_pos = np.array(p.getLinkState(self.human, 24, computeForwardKinematics=True, physicsClientId=self.id)[0]) hips_pos = np.array(p.getLinkState(self.human, 27, computeForwardKinematics=True, physicsClientId=self.id)[0]) reward_distance_robot_left = -np.linalg.norm(tool_left_pos - elbow_pos) # Penalize distances away from human hand reward_distance_robot_right = -np.linalg.norm(tool_right_pos - hand_pos) # Penalize distances away from human hand reward_distance_human = -np.linalg.norm(elbow_pos - waist_pos) - np.linalg.norm(hand_pos - hips_pos) # Penalize distances between human hand and waist reward_action = -np.sum(np.square(action)) # Penalize actions if self.robot_type in ['sawyer', 'jaco', 'kinova_gen3']: reward = self.config('distance_human_weight')*reward_distance_human + 2*self.config('distance_end_effector_weight')*reward_distance_robot_left + self.config('action_weight')*reward_action + preferences_score else: reward = self.config('distance_human_weight')*reward_distance_human + self.config('distance_end_effector_weight')*reward_distance_robot_left + self.config('distance_end_effector_weight')*reward_distance_robot_right + self.config('action_weight')*reward_action + preferences_score if self.task_success == 0 or reward_distance_human > self.task_success: self.task_success = reward_distance_human if self.gui and total_force_on_human > 0: print('Task success:', self.task_success, 'Total force on human:', total_force_on_human, 'Tool force on human:', tool_left_force_on_human, tool_right_force_on_human) info = {'total_force_on_human': total_force_on_human, 'task_success': int(self.task_success >= self.config('task_success_threshold')), 'action_robot_len': self.action_robot_len, 'action_human_len': self.action_human_len, 'obs_robot_len': self.obs_robot_len, 'obs_human_len': self.obs_human_len} done = False return obs, reward, done, info
Example #14
Source File: Motionv0Env.py From bullet-gym with MIT License | 5 votes |
def state_fields_of_pv_of(body_id, vHelper, link_id=-1): if link_id == -1: (x,y,z), (a,b,c,d) = p.getBasePositionAndOrientation(body_id) (vx,vy,vz), (va,vb,vc) = p.getBaseVelocity(body_id, 0) else: (x,y,z), (a,b,c,d),_,_,_,_ = p.getLinkState(body_id, link_id) o = vHelper.getVelocities() (vx,vy,vz), (va,vb,vc) = (x-o[link_id+1][0],y-o[link_id+1][1],z-o[link_id+1][2]), (a-o[link_id+1][3],b-o[link_id+1][4],c-o[link_id+1][5]) return np.array([x,y,z,a,b,c,d,vx,vy,vz,va,vb,vc])
Example #15
Source File: kuka_button_gym_env.py From robotics-rl-srl with MIT License | 5 votes |
def getArmPos(self): """ :return: ([float]) Position (x, y, z) of kuka gripper """ return p.getLinkState(self._kuka.kuka_uid, self._kuka.kuka_gripper_index)[0]
Example #16
Source File: kuka.py From robotics-rl-srl with MIT License | 5 votes |
def getObservation(self): """ Returns the position and angle of the effector :return: ([float]) """ observation = [] state = p.getLinkState(self.kuka_uid, self.kuka_gripper_index) pos = state[0] orn = state[1] euler = p.getEulerFromQuaternion(orn) observation.extend(list(pos)) observation.extend(list(euler)) return observation
Example #17
Source File: robot_bases.py From GtS with MIT License | 5 votes |
def _state_fields_of_pose_of(self, body_id, link_id=-1): """Calls native pybullet method for getting real (scaled) robot body pose Note that there is difference between xyz in real world scale and xyz in simulation. Thus you should never call pybullet methods directly """ if link_id == -1: (x, y, z), (a, b, c, d) = p.getBasePositionAndOrientation(body_id) else: (x, y, z), (a, b, c, d), _, _, _, _ = p.getLinkState(body_id, link_id) x, y, z = x * self.scale, y * self.scale, z * self.scale return np.array([x, y, z, a, b, c, d])
Example #18
Source File: robot_bases.py From GtS with MIT License | 5 votes |
def speed(self): if self.bodyPartIndex == -1: (vx, vy, vz), _ = p.getBaseVelocity(self.bodies[self.bodyIndex]) else: (x,y,z), (a,b,c,d), _,_,_,_, (vx, vy, vz), (vr,vp,vyaw) = p.getLinkState(self.bodies[self.bodyIndex], self.bodyPartIndex, computeLinkVelocity=1) return np.array([vx, vy, vz])
Example #19
Source File: robot_bases.py From GtS with MIT License | 5 votes |
def angular_speed(self): if self.bodyPartIndex == -1: _, (vr,vp,vyaw) = p.getBaseVelocity(self.bodies[self.bodyIndex]) else: (x,y,z), (a,b,c,d), _,_,_,_, (vx, vy, vz), (vr,vp,vyaw) = p.getLinkState(self.bodies[self.bodyIndex], self.bodyPartIndex, computeLinkVelocity=1) return np.array([vr, vp, vyaw])
Example #20
Source File: robot_bases.py From midlevel-reps with MIT License | 5 votes |
def _state_fields_of_pose_of(self, body_id, link_id=-1): """Calls native pybullet method for getting real (scaled) robot body pose Note that there is difference between xyz in real world scale and xyz in simulation. Thus you should never call pybullet methods directly """ if link_id == -1: (x, y, z), (a, b, c, d) = p.getBasePositionAndOrientation(body_id) else: (x, y, z), (a, b, c, d), _, _, _, _ = p.getLinkState(body_id, link_id) x, y, z = x * self.scale, y * self.scale, z * self.scale return np.array([x, y, z, a, b, c, d])
Example #21
Source File: robot_bases.py From midlevel-reps with MIT License | 5 votes |
def speed(self): if self.bodyPartIndex == -1: (vx, vy, vz), _ = p.getBaseVelocity(self.bodies[self.bodyIndex]) else: (x,y,z), (a,b,c,d), _,_,_,_, (vx, vy, vz), (vr,vp,vyaw) = p.getLinkState(self.bodies[self.bodyIndex], self.bodyPartIndex, computeLinkVelocity=1) return np.array([vx, vy, vz])
Example #22
Source File: robot_bases.py From midlevel-reps with MIT License | 5 votes |
def angular_speed(self): if self.bodyPartIndex == -1: _, (vr,vp,vyaw) = p.getBaseVelocity(self.bodies[self.bodyIndex]) else: (x,y,z), (a,b,c,d), _,_,_,_, (vx, vy, vz), (vr,vp,vyaw) = p.getLinkState(self.bodies[self.bodyIndex], self.bodyPartIndex, computeLinkVelocity=1) return np.array([vr, vp, vyaw])
Example #23
Source File: gym_mujoco_xml_env.py From bullet-gym with MIT License | 5 votes |
def state_fields_of_pose_of(self, body_id, link_id=-1): # a method you will most probably need a lot to get pose and orientation if link_id == -1: (x, y, z), (a, b, c, d) = p.getBasePositionAndOrientation(body_id) else: (x, y, z), (a, b, c, d), _, _, _, _ = p.getLinkState(body_id, link_id) return np.array([x, y, z, a, b, c, d])
Example #24
Source File: gym_mujoco_xml_env.py From bullet-gym with MIT License | 5 votes |
def speed(self): if self.bodyPartIndex == -1: (vx, vy, vz), _ = p.getBaseVelocity(self.bodies[self.bodyIndex]) else: (x,y,z), (a,b,c,d), _,_,_,_, (vx, vy, vz), (vr,vp,vy) = p.getLinkState(self.bodies[self.bodyIndex], self.bodyPartIndex, computeLinkVelocity=1) return np.array([vx, vy, vz])
Example #25
Source File: MJCFCommon.py From bullet-gym with MIT License | 5 votes |
def state_fields_of_pose_of(body_id, link_id=-1): # a method you will most probably need a lot to get pose and orientation if link_id == -1: (x,y,z), (a,b,c,d) = p.getBasePositionAndOrientation(body_id) else: (x,y,z), (a,b,c,d),_,_,_,_ = p.getLinkState(body_id, link_id) return np.array([x,y,z,a,b,c,d])
Example #26
Source File: MJCFInvPendulumv0Env.py From bullet-gym with MIT License | 5 votes |
def state_fields_of_pose_of(body_id, link_id=-1): # a method you will most probably need a lot to get pose and orientation if link_id == -1: (x,y,z), (a,b,c,d) = p.getBasePositionAndOrientation(body_id) else: (x,y,z), (a,b,c,d),_,_,_,_ = p.getLinkState(body_id, link_id) return np.array([x,y,z,a,b,c,d])
Example #27
Source File: VelocityHelper.py From bullet-gym with MIT License | 5 votes |
def state_fields_of_pose_of(self, link_id=-1): # a method you will most probably need a lot to get pose and orientation if link_id == -1: (x,y,z), (a,b,c,d) = p.getBasePositionAndOrientation(self.body_id) else: (x,y,z), (a,b,c,d),_,_,_,_ = p.getLinkState(self.body_id, link_id) return np.array([x,y,z,a,b,c,d])
Example #28
Source File: MJCF2InvPendulumv0Env.py From bullet-gym with MIT License | 5 votes |
def state_fields_of_pose_of(body_id, link_id=-1): # a method you will most probably need a lot to get pose and orientation if link_id == -1: (x,y,z), (a,b,c,d) = p.getBasePositionAndOrientation(body_id) else: (x,y,z), (a,b,c,d),_,_,_,_ = p.getLinkState(body_id, link_id) return np.array([x,y,z,a,b,c,d])
Example #29
Source File: TemplateEnv.py From bullet-gym with MIT License | 5 votes |
def state_fields_of_pose_of(body_id, link_id=-1): # a method you will most probably need a lot to get pose and orientation if link_id == -1: (x,y,z), (a,b,c,d) = p.getBasePositionAndOrientation(body_id) else: (x,y,z), (a,b,c,d),_,_,_,_ = p.getLinkState(body_id, link_id) return np.array([x,y,z,a,b,c,d])
Example #30
Source File: RewardFunction.py From bullet-gym with MIT License | 5 votes |
def state_fields_of_pose_of(body_id, link_id=-1): # a method you will most probably need a lot to get pose and orientation if link_id == -1: (x,y,z), (a,b,c,d) = p.getBasePositionAndOrientation(body_id) else: (x,y,z), (a,b,c,d),_,_,_,_ = p.getLinkState(body_id, link_id) return (x,y,z),(a,b,c,d)