37 from sr_robot_commander.sr_arm_commander
import SrArmCommander
38 from sr_robot_commander.sr_hand_commander
import SrHandCommander
39 from sr_robot_commander.sr_robot_commander
import SrRobotCommander
41 rospy.init_node(
"right_hand_arm_joint_pos", anonymous=
True)
46 hand_commander = SrHandCommander(name=
"right_hand")
47 arm_commander = SrArmCommander(name=
"right_arm")
49 robot_commander = SrRobotCommander(name=
"right_arm_and_hand")
50 arm_commander.set_max_velocity_scaling_factor(0.1)
53 arm_home_joints_goal = {
'ra_shoulder_pan_joint': 0.00,
'ra_elbow_joint': 2.00,
54 'ra_shoulder_lift_joint': -1.25,
'ra_wrist_1_joint': -0.733,
55 'ra_wrist_2_joint': 1.5708,
'ra_wrist_3_joint': 0.00}
57 arm_hand_home_joints_goal = {
'ra_shoulder_pan_joint': 0.00,
'ra_elbow_joint': 2.00,
58 'ra_shoulder_lift_joint': -1.25,
'ra_wrist_1_joint': -0.733,
59 'ra_wrist_2_joint': 1.5708,
'ra_wrist_3_joint': 0.00,
60 'rh_THJ1': 0.52,
'rh_THJ2': 0.61,
'rh_THJ3': 0.0,
'rh_THJ4': 1.20,
61 'rh_THJ5': 0.17,
'rh_FFJ1': 1.5707,
'rh_FFJ2': 1.5707,
'rh_FFJ3': 1.5707,
62 'rh_FFJ4': 0.0,
'rh_MFJ1': 1.5707,
'rh_MFJ2': 1.5707,
'rh_MFJ3': 1.5707,
63 'rh_MFJ4': 0.0,
'rh_RFJ1': 1.5707,
'rh_RFJ2': 1.5707,
'rh_RFJ3': 1.5707,
64 'rh_RFJ4': 0.0,
'rh_LFJ1': 1.5707,
'rh_LFJ2': 1.5707,
'rh_LFJ3': 1.5707,
65 'rh_LFJ4': 0.0,
'rh_LFJ5': 0.0,
'rh_WRJ1': 0.0,
'rh_WRJ2': 0.0}
67 hand_arm_joints_goal_1 = {
'rh_FFJ1': 1.57,
'rh_FFJ2': 1.57,
'rh_FFJ3': 1.574,
'rh_FFJ4': -0.00,
68 'rh_THJ4': -0.00,
'rh_THJ5': 6.49,
'rh_THJ1': -1.49,
'rh_THJ2': 4.72,
69 'rh_THJ3': 3.19,
'rh_LFJ2': 1.57,
'rh_LFJ3': 1.57,
'rh_LFJ1': 1.57,
70 'rh_LFJ4': 0.00,
'rh_LFJ5': -3.13,
'rh_RFJ4': -0.00,
'rh_RFJ1': 1.57,
71 'rh_RFJ2': 1.57,
'rh_RFJ3': 1.57,
'rh_MFJ1': 1.57,
'rh_MFJ3': 1.57,
72 'rh_MFJ2': 1.57,
'rh_MFJ4': -0.00,
'rh_WRJ2': -1.29,
'rh_WRJ1': 0.00,
73 'ra_shoulder_pan_joint': 0.00,
'ra_elbow_joint': 2.00,
74 'ra_shoulder_lift_joint': -1.57,
'ra_wrist_3_joint': 0.00}
76 hand_arm_joints_goal_2 = {
'rh_FFJ1': -0.00,
'rh_FFJ2': 1.31,
'rh_FFJ3': 1.36,
'rh_FFJ4': -0.00,
77 'rh_MFJ1': 0.42,
'rh_MFJ2': 1.57,
'rh_MFJ3': 1.21,
'rh_MFJ4': 0.0,
78 'rh_RFJ1': -0.00,
'rh_RFJ2': 1.5707,
'rh_RFJ3': 1.41,
'rh_RFJ4': -0.00,
79 'rh_LFJ1': 1.57,
'rh_LFJ2': 0.84,
'rh_LFJ3': 0.36,
'rh_LFJ4': 0.22,
80 'rh_LFJ5': 0.19,
'rh_THJ1': 0.0,
'rh_THJ2': 0.0,
'rh_THJ3': 0.0,
81 'rh_THJ4': 0.0,
'rh_THJ5': 0.0,
'rh_WRJ1': 0.6,
'rh_WRJ2': 0.0,
82 'ra_shoulder_pan_joint': 0.00,
'ra_elbow_joint': 2.10,
83 'ra_shoulder_lift_joint': -1.4,
'ra_wrist_1_joint': -0.733,
84 'ra_wrist_2_joint': 1.5708,
'ra_wrist_3_joint': 0.00}
90 arm_to_home_plan = arm_commander.plan_to_joint_value_target(arm_home_joints_goal)
91 arm_to_home_plan_quality = arm_commander.evaluate_given_plan(arm_to_home_plan)
92 eval_arm_home_plan_quality = arm_commander.evaluate_plan_quality(arm_to_home_plan_quality)
94 if eval_arm_home_plan_quality !=
'good':
95 rospy.logfatal(
"Plan quality to the home position is poor! " +
96 "For safety please refer to the hand and arm documentation " +
97 "for where to start the arm " +
98 "to ensure no unexpected movements during plan and execute.")
99 sys.exit(
"Exiting script to allow for the arm to be manually moved to better start position ...")
102 rospy.loginfo(
"Planning and moving arm to home joint states\n" + str(arm_home_joints_goal) +
"\n")
103 arm_commander.execute_plan(arm_to_home_plan)
112 rospy.loginfo(
"Moving hand to joint state: open")
113 hand_commander.move_to_named_target(
"open")
117 raw_input(
"Press Enter to continue...")
118 rospy.loginfo(
"Moving hand to joint states\n" + str(hand_arm_joints_goal_1) +
"\n")
119 robot_commander.move_to_joint_value_target_unsafe(hand_arm_joints_goal_1, 6.0,
True)
123 raw_input(
"Press Enter to continue...")
124 rospy.loginfo(
"Moving hand and arm to joint states\n" + str(hand_arm_joints_goal_2) +
"\n")
125 robot_commander.move_to_joint_value_target_unsafe(hand_arm_joints_goal_2, 6.0,
True)
129 raw_input(
"Press Enter to continue...")
130 rospy.loginfo(
"Moving arm and hand to joint states\n" + str(arm_hand_home_joints_goal) +
"\n")
131 robot_commander.move_to_joint_value_target_unsafe(arm_hand_home_joints_goal, 6.0,
True)