Ejemplo n.º 1
0
    def _decide_motor_value(self):
        det = self._object_detection()

        if det is None:
            forward = 5.0
            angle = 0.0
        # otherwsie steer towards target
        else:
            # move robot forward and steer proportional target's x-distance from center
            center = detection_center(det)
            forward = 5.0
            angle = 5.0 * center[0]

        print("det:{}".format(det))

        return forward, angle
Ejemplo n.º 2
0
    def decide_motor_value(self):

        prob = self._decide_blocked()
        self.collision_state = prob > 0.5
        self.update_target_detection()
        self.get_bottle = False

        if self.target_detection:
            rbbox = self.target_detection['rbbox']
            closer = (rbbox[2] - rbbox[0]) * (rbbox[3] - rbbox[1])
        else:
            closer = 0.0

        # otherwise go forward if no target detected
        if self.collision_state:
            forward = 0.0
            angle = self.turn_block
        elif self.target_detection is None:
            forward = self.speed
            angle = 0.0
        # otherwsie steer towards target
        else:
            if closer > 0.2:
                forward = 0.0
                angle = 0.0
                #angle = self.turn_block
                self.get_bottle = True
            else:
                # move robot forward and steer proportional target's x-distance from center
                center = detection_center(self.target_detection)
                forward = self.speed * 0.8
                angle = 0.001 * (150 - center[0])
                #angle = self.turn_gain * center[0]
                rospy.loginfo("center: {}".format(center))

        rospy.loginfo(
            "blocked: {},  det:{}, closer:{}, forward:{}, angle:{}".format(
                prob, self.target_detection, closer, forward, angle))

        return forward, angle, self.get_bottle
Ejemplo n.º 3
0
    def _decide_motor_value(self):
        self.collision_state = self._decide_blocked() > 0.3
        self.target_detection = self._object_detection()

        # otherwise go forward if no target detected
        if self.collision_state:
            forward = 0.0
            angle = self.turn_block
        elif self.target_detection is None:
            forward = self.speed
            angle = 0.0
        # otherwsie steer towards target
        else:
            # move robot forward and steer proportional target's x-distance from center
            center = detection_center(self.target_detection)
            forward = self.speed
            angle = self.turn_gain * center[0]

        rospy.loginfo("blocked: {},  det:{}".format(self.collision_state,
                                                    self.target_detection))

        return forward, angle