Example #1
0
    def _reset_parameter(self):
        self.state_init = False
        self.ggcnn_init = False
        self.goal_set = False

        self.servo_goal = ServoToPoseGoal()
        self.error_code = 0
        self.ggcnn_xP_arr = []
        self.ggcnn_yP_arr = []
        self.ggcnn_zP_arr = []
        self.ggcnn_xO_arr = []
        self.ggcnn_yO_arr = []
        self.ggcnn_zO_arr = []
        self.ggcnn_wO_arr = []

        self.xP = None
        self.yP = None
        self.zP = None
        self.P_off = None
        self.xP_off = None
        self.yP_off = None
        self.zP_off = None

        self.grab_xP = None
        self.grab_yP = None
        self.grab_zP = None
        self.grab_xO = None
        self.grab_yO = None
        self.grab_zO = None
        self.grab_wO = None
        self.grab_width = None
        self.grab_quality = None
Example #2
0
    def _reset_parameter(self):
        self.init_state = False
        self.init_depth = False
        self.init_hand = False
        self.init_darknet = False
        self.goal_set = False

        self.depth = None
        self.depth_nan = None
        self.mask_hand = None
        self.best_box = None
        self.last_image_pose = None

        self.servo_goal = ServoToPoseGoal()
        self.error_code = 0
        self.xO = None
        self.yO = None
        self.zO = None
        self.wO = None
Example #3
0
    def _set_goal(self):

        # Define new goal
        self.servo_goal = ServoToPoseGoal()
        self.servo_goal.stamped_pose.header.frame_id = 'panda_link0'
        self.servo_goal.stamped_pose.pose.position.x = self.grab_xP
        self.servo_goal.stamped_pose.pose.position.y = self.grab_yP
        self.servo_goal.stamped_pose.pose.position.z = self.grab_zP
        self.servo_goal.stamped_pose.pose.orientation.x = self.grab_xO
        self.servo_goal.stamped_pose.pose.orientation.y = self.grab_yO
        self.servo_goal.stamped_pose.pose.orientation.z = self.grab_zO
        self.servo_goal.stamped_pose.pose.orientation.w = self.grab_wO
        self.servo_goal.scaling = self.scaling_handover

        # Send goal
        self.servo_pose_client.send_goal(self.servo_goal)
        self.goal_set = True
        print("MOVE - Goal:")
        print(self.servo_goal.stamped_pose.pose)

        # Publish result
        if (self.visualization_type):
            self.pub_visualization.publish(Empty())
Example #4
0
    def __init__(self):
      
        # Parameter
        self.state_move = 'startup'
        self.init_depth = False
        self.init_body = False
        self.init_hand = False
        self.state_init = False
        self.ggcnn_init = False
        self.goal_set = False

        self.depth_topic = rospy.get_param('/human_robot_handover_ros/camera/depth')
        self.bodyparts_topic = rospy.get_param('/human_robot_handover_ros/subscription/bodyparts')
        self.egohands_topic = rospy.get_param('/human_robot_handover_ros/subscription/egohands')
        
        self.ggcnn_topic = rospy.get_param('/human_robot_handover_ros/ggcnn/topic')
        self.ggcnn_window = rospy.get_param('/human_robot_handover_ros/ggcnn/window')
        self.ggcnn_dev_pos = rospy.get_param('/human_robot_handover_ros/ggcnn/deviation_position')
        self.ggcnn_dev_orient = rospy.get_param('/human_robot_handover_ros/ggcnn/deviation_orientation')

        self.arm_state = rospy.get_param('/human_robot_handover_ros/robot/arm_state')
        self.arm_servo_pose = rospy.get_param('/human_robot_handover_ros/robot/arm_servo_pose')
        self.arm_named_pose = rospy.get_param('/human_robot_handover_ros/robot/arm_named_pose')
        self.arm_gripper = rospy.get_param('/human_robot_handover_ros/robot/arm_gripper')
        
        self.dist_ggcnn = rospy.get_param('/human_robot_handover_ros/movement/dist_ggcnn')
        self.dist_final = rospy.get_param('/human_robot_handover_ros/movement/dist_final')
        self.speed_approach = rospy.get_param('/human_robot_handover_ros/movement/speed_approach')
        self.scaling_handover = rospy.get_param('/human_robot_handover_ros/movement/scaling_handover')

        self.gripper_open = rospy.get_param('/human_robot_handover_ros/gripper/gripper_open')
        self.gripper_closed = rospy.get_param('/human_robot_handover_ros/gripper/gripper_closed')

        self.visualization_type = rospy.get_param('/human_robot_handover_ros/visualization/activated')
        self.visualization_topic = rospy.get_param('/human_robot_handover_ros/visualization/topic')

        self.depth = None
        self.mask_body = None
        self.mask_hand = None

        self.servo_goal = ServoToPoseGoal()
        self.error_code = 0
        self.ggcnn_xP_arr = []
        self.ggcnn_yP_arr = []
        self.ggcnn_zP_arr = []
        self.ggcnn_xO_arr = []
        self.ggcnn_yO_arr = []
        self.ggcnn_zO_arr = []
        self.ggcnn_wO_arr = []

        self.xP = None
        self.yP = None
        self.zP = None
        self.P_off = None
        self.xP_off = None
        self.yP_off = None
        self.zP_off = None

        self.grab_xP = None
        self.grab_yP = None
        self.grab_zP = None
        self.grab_xO = None
        self.grab_yO = None
        self.grab_zO = None
        self.grab_wO = None
        self.grab_width = None
        self.grab_quality = None

        # Init
        self.bridge = cv_bridge.CvBridge()

        # Robot interface
        self.servo_pose_client = actionlib.SimpleActionClient(self.arm_servo_pose, ServoToPoseAction)
        self.servo_pose_client.wait_for_server()
        print("STARTUP -> named_pose_client OK")
        
        self.named_pose_client = actionlib.SimpleActionClient(self.arm_named_pose, MoveToNamedPoseAction)
        self.named_pose_client.wait_for_server()
        print("STARTUP -> named_pose_client OK")

        self.gripper_client = actionlib.SimpleActionClient(self.arm_gripper, ActuateGripperAction)
        self.gripper_client.wait_for_server()
        print("STARTUP -> gripper_client OK")

        # Subsriber
        rospy.Subscriber(self.depth_topic, Image, self._callback_depth, queue_size=1)
        rospy.Subscriber(self.bodyparts_topic, CompressedImage, self._callback_bodyparts, queue_size=1)
        rospy.Subscriber(self.egohands_topic, CompressedImage, self._callback_egohands, queue_size=1)
        rospy.Subscriber(self.ggcnn_topic, GraspPrediction, self._callback_ggcnn, queue_size=1)
        rospy.Subscriber(self.arm_state, ManipulatorState, self._callback_state, queue_size=1)
        
        # Services
        self.recover = rospy.ServiceProxy('/arm/recover', EmptyRequest)
        
        # Visualization
        if (self.visualization_type):
            self.pub_visualization = rospy.Publisher(self.visualization_topic, Empty, queue_size=1)
            self.pub_debug = rospy.Publisher('handover/DEBUG', Image, queue_size=1)
            rospy.Subscriber(self.visualization_topic, Empty, self._callback_visualization, queue_size=1)
Example #5
0
    def __init__(self):

        # Class for preparations
        self.prep = Preparations()
      
        # Parameter config
        self.topic_depth = rospy.get_param('/yolo_handover/subscription/depth')
        self.topic_darknet = rospy.get_param('/yolo_handover/subscription/darknet')
        self.topic_egohands = rospy.get_param('/yolo_handover/subscription/egohands')

        self.topic_arm = rospy.get_param('/yolo_handover/robot/arm_state')
        self.arm_servo_pose = rospy.get_param('/yolo_handover/robot/arm_servo_pose')
        self.arm_named_pose = rospy.get_param('/yolo_handover/robot/arm_named_pose')
        self.arm_gripper = rospy.get_param('/yolo_handover/robot/arm_gripper')
        
        self.dist_ignore = rospy.get_param('/yolo_handover/movement/dist_ignore')
        self.speed_approach = rospy.get_param('/yolo_handover/movement/speed_approach')
        self.scaling_handover = rospy.get_param('/yolo_handover/movement/scaling_handover')
        
        self.gripper_open = rospy.get_param('/yolo_handover/gripper/gripper_open')
        self.gripper_closed = rospy.get_param('/yolo_handover/gripper/gripper_closed')

        self.visualization_type = rospy.get_param('/human_robot_handover_ros/visualization/activated')
        self.visualization_topic = rospy.get_param('/human_robot_handover_ros/visualization/topic')

        # States
        self.state_move = 'startup'
        self.init_state = False
        self.init_depth = False
        self.init_hand = False
        self.init_darknet = False
        self.goal_set = False

        # Variables
        self.depth = None
        self.depth_nan = None
        self.mask_hand = None
        self.best_box = None
        self.last_image_pose = None

        self.servo_goal = ServoToPoseGoal()
        self.error_code = 0
        self.xO = None
        self.yO = None
        self.zO = None
        self.wO = None

        # Init
        self.bridge = cv_bridge.CvBridge()
        self.last_image_pose = None

        # Robot interface
        self.servo_pose_client = actionlib.SimpleActionClient(self.arm_servo_pose, ServoToPoseAction)
        self.servo_pose_client.wait_for_server()
        print("STARTUP -> named_pose_client OK")
        
        self.named_pose_client = actionlib.SimpleActionClient(self.arm_named_pose, MoveToNamedPoseAction)
        self.named_pose_client.wait_for_server()
        print("STARTUP -> named_pose_client OK")

        self.gripper_client = actionlib.SimpleActionClient(self.arm_gripper, ActuateGripperAction)
        self.gripper_client.wait_for_server()
        print("STARTUP -> gripper_client OK")

        # Subsriber
        rospy.Subscriber(self.topic_arm, ManipulatorState, self._callback_state, queue_size=1)
        rospy.Subscriber(self.topic_depth, Image, self._callback_depth, queue_size=1)
        rospy.Subscriber(self.topic_darknet, BoundingBoxes, self._callback_darknet, queue_size=1)
        rospy.Subscriber(self.topic_egohands, CompressedImage, self._callback_egohands, queue_size=1)
        
        # Visualization
        if (self.visualization_type):
            self.pub_visualization = rospy.Publisher(self.visualization_topic, Empty, queue_size=1)
            rospy.Subscriber(self.visualization_topic, Empty, self._callback_visualization, queue_size=1)
Example #6
0
    def __init__(self):

        # Parameter
        self.state_move = 'startup'
        self.state_init = False
        self.ggcnn_init = False
        self.goal_set = False

        self.ggcnn_topic = rospy.get_param(
            '/human_robot_handover_ros/ggcnn/topic')
        self.ggcnn_window = rospy.get_param(
            '/human_robot_handover_ros/ggcnn/window')
        self.ggcnn_dev_pos = rospy.get_param(
            '/human_robot_handover_ros/ggcnn/deviation_position')
        self.ggcnn_dev_orient = rospy.get_param(
            '/human_robot_handover_ros/ggcnn/deviation_orientation')

        self.arm_state = rospy.get_param(
            '/human_robot_handover_ros/robot/arm_state')
        self.arm_servo_pose = rospy.get_param(
            '/human_robot_handover_ros/robot/arm_servo_pose')
        self.arm_named_pose = rospy.get_param(
            '/human_robot_handover_ros/robot/arm_named_pose')
        self.arm_gripper = rospy.get_param(
            '/human_robot_handover_ros/robot/arm_gripper')

        self.move_x = rospy.get_param(
            '/human_robot_handover_ros/movement/move_x')
        self.move_y = rospy.get_param(
            '/human_robot_handover_ros/movement/move_y')
        self.move_z = rospy.get_param(
            '/human_robot_handover_ros/movement/move_z')
        self.dist_ggcnn = rospy.get_param(
            '/human_robot_handover_ros/movement/dist_ggcnn')
        self.dist_final = rospy.get_param(
            '/human_robot_handover_ros/movement/dist_final')
        self.move_final = rospy.get_param(
            '/human_robot_handover_ros/movement/move_final')
        self.speed_approach = rospy.get_param(
            '/human_robot_handover_ros/movement/speed_approach')
        self.scaling_handover = rospy.get_param(
            '/human_robot_handover_ros/movement/scaling_handover')

        self.gripper_open = rospy.get_param(
            '/human_robot_handover_ros/gripper/gripper_open')

        self.visualization_type = rospy.get_param(
            '/human_robot_handover_ros/visualization/activated')
        self.visualization_topic = rospy.get_param(
            '/human_robot_handover_ros/visualization/topic')

        self.servo_goal = ServoToPoseGoal()
        self.error_code = 0
        self.ggcnn_xP_arr = []
        self.ggcnn_yP_arr = []
        self.ggcnn_zP_arr = []
        self.ggcnn_xO_arr = []
        self.ggcnn_yO_arr = []
        self.ggcnn_zO_arr = []
        self.ggcnn_wO_arr = []

        self.xP = None
        self.yP = None
        self.zP = None
        self.P_off = None
        self.xP_off = None
        self.yP_off = None
        self.zP_off = None

        self.grab_xP = None
        self.grab_yP = None
        self.grab_zP = None
        self.grab_xO = None
        self.grab_yO = None
        self.grab_zO = None
        self.grab_wO = None
        self.grab_width = None
        self.grab_quality = None

        # Robot interface
        self.servo_pose_client = actionlib.SimpleActionClient(
            self.arm_servo_pose, ServoToPoseAction)
        self.servo_pose_client.wait_for_server()
        print("STARTUP -> named_pose_client OK")

        self.named_pose_client = actionlib.SimpleActionClient(
            self.arm_named_pose, MoveToNamedPoseAction)
        self.named_pose_client.wait_for_server()
        print("STARTUP -> named_pose_client OK")

        self.gripper_client = actionlib.SimpleActionClient(
            self.arm_gripper, ActuateGripperAction)
        self.gripper_client.wait_for_server()
        print("STARTUP -> gripper_client OK")

        # Subsriber
        rospy.Subscriber(self.arm_state,
                         ManipulatorState,
                         self._callback_state,
                         queue_size=1)
        rospy.Subscriber(self.ggcnn_topic,
                         GraspPrediction,
                         self._callback_ggcnn,
                         queue_size=1)

        # Visualization
        if (self.visualization_type):
            self.pub_visualization = rospy.Publisher(self.visualization_topic,
                                                     Empty,
                                                     queue_size=1)
            rospy.Subscriber(self.visualization_topic,
                             Empty,
                             self._callback_visualization,
                             queue_size=1)