|
|
Line 1: |
Line 1: |
| The ROS script used for our project is given below | | The ROS script used for our project is given below |
|
| |
|
| |
| #!/usr/bin/python
| |
|
| |
| import rospy
| |
| import smach
| |
| import random
| |
| import argparse
| |
| import sys
| |
| from robot_smach_states.util.startup import startup
| |
|
| |
| from std_msgs.msg import Float64MultiArray
| |
|
| |
| class ArmTrajCopier:
| |
| def __init__(self):
| |
| rospy.init_node('armTrajCopier')
| |
|
| |
|
| |
| # standaard opstart gedoe van de AMIGO
| |
| parser = argparse.ArgumentParser()
| |
| parser.add_argument('robot', help='Robot name')
| |
| args = parser.parse_args()
| |
| rospy.loginfo('args: %s', args)
| |
|
| |
| robot_name = args.robot
| |
|
| |
| if robot_name == 'amigo':
| |
| from robot_skills.amigo import Amigo as Robot
| |
| else:
| |
| print "unknown robot"
| |
| return 1
| |
|
| |
| self.robot = Robot()
| |
|
| |
| multiArray = Float64MultiArray()
| |
| multiArray.data = [0.0, 1.5, 0.0, 0.0, 0.0, 0.0, 0.0,
| |
| 0.0, 1.5, 0.0, 0.0, 0.0, 0.0, 0.0]
| |
| self.move_arms(multiArray)
| |
|
| |
| # begin een rostopic en subscribe hier op
| |
| rospy.Subscriber("arm_angles", Float64MultiArray, self.move_arms)
| |
| # blijf doorgaan
| |
| rospy.spin()
| |
|
| |
| def move_arms(self, multiArray):
| |
|
| |
| # assign data
| |
| left = multiArray.data[0:7]
| |
| right = multiArray.data[7:15]
| |
|
| |
| # clamp data
| |
| #self.clamp(self, left[0], 0, -1.57
| |
| max(min(left[0], 0.0 ), -1.57)
| |
| max(min(left[1], 1.57), -1.57)
| |
| max(min(left[2], 1.57), -1.57)
| |
| max(min(left[3], 2.23), 0.0)
| |
| max(min(left[4], 1.83), -1.83)
| |
| max(min(left[5], 0.95), -0.95)
| |
| max(min(left[6], 0.61), -0.61)
| |
|
| |
| max(min(right[0], 0.0 ), -1.57)
| |
| max(min(right[1], 1.57), -1.57)
| |
| max(min(right[2], 1.57), -1.57)
| |
| max(min(right[3], 2.23), 0.0)
| |
| max(min(right[4], 1.83), -1.83)
| |
| max(min(right[5], 0.95), -0.95)
| |
| max(min(right[6], 0.61), -0.61)
| |
|
| |
| # maak een nieuwe trajectories voor links en rechts
| |
| self.robot.leftArm.default_trajectories['newTrajL'] = [ left ]
| |
| self.robot.rightArm.default_trajectories['newTrajR'] = [ right ]
| |
| # voer de trajectories uit
| |
| self.robot.leftArm.send_joint_trajectory('newTrajL', timeout=0.0)
| |
| self.robot.rightArm.send_joint_trajectory('newTrajR', timeout=0.0)
| |
|
| |
|
| |
| ################## intializing program ######################
| |
| if __name__ == '__main__':
| |
| armTrajCopier = ArmTrajCopier()
| |