/usr/lib/python3/dist-packages/morse/middleware/sockets/jointstate.py is in python3-morse-simulator 1.4-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import logging; logger = logging.getLogger("morse." + __name__)
import json
from morse.middleware.socket_datastream import SocketPublisher
def fill_missing_pr2_joints(joints):
pr2_joints = {
'laser_tilt_mount_joint':0.0,
'fl_caster_rotation_joint':0.0,
'fl_caster_l_wheel_joint':0.0,
'fl_caster_r_wheel_joint':0.0,
'fr_caster_rotation_joint':0.0,
'fr_caster_l_wheel_joint':0.0,
'fr_caster_r_wheel_joint':0.0,
'bl_caster_rotation_joint':0.0,
'bl_caster_l_wheel_joint':0.0,
'bl_caster_r_wheel_joint':0.0,
'br_caster_rotation_joint':0.0,
'br_caster_l_wheel_joint':0.0,
'br_caster_r_wheel_joint':0.0,
'r_gripper_motor_slider_joint':0.0,
'r_gripper_motor_screw_joint':0.0,
'r_gripper_l_finger_joint':0.0,
'r_gripper_r_finger_joint':0.0,
'r_gripper_l_finger_tip_joint':0.0,
'r_gripper_r_finger_tip_joint':0.0,
'r_gripper_joint':0.0,
'l_gripper_motor_slider_joint':0.0,
'l_gripper_motor_screw_joint':0.0,
'l_gripper_l_finger_joint':0.0,
'l_gripper_r_finger_joint':0.0,
'l_gripper_l_finger_tip_joint':0.0,
'l_gripper_r_finger_tip_joint':0.0,
'l_gripper_joint':0.0,
'torso_lift_joint':0.0,
'torso_lift_motor_screw_joint':0.0,
'head_pan_joint':0.0,
'head_tilt_joint':0.0,
'l_shoulder_pan_joint':0.0,
'l_shoulder_lift_joint':0.0,
'l_upper_arm_roll_joint':0.0,
'l_elbow_flex_joint':0.0,
'l_forearm_roll_joint':0.0,
'l_wrist_flex_joint':0.0,
'l_wrist_roll_joint':0.0,
'r_shoulder_pan_joint':0.0,
'r_shoulder_lift_joint':0.0,
'r_upper_arm_roll_joint':0.0,
'r_elbow_flex_joint':0.0,
'r_forearm_roll_joint':0.0,
'r_wrist_flex_joint':0.0,
'r_wrist_roll_joint':0.0}
for k, v in joints.items():
if k != 'timestamp':
for name, value in v.items():
pr2_joints[name] = value
return pr2_joints
class PR2JointStatePublisher(SocketPublisher):
_type_name = "a JSON dict containing the values of each of the Willow Garage's PR2 joints"
def encode(self):
joints = fill_missing_pr2_joints(self.component_instance.local_data)
return (json.dumps(joints) + '\n').encode()
|