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
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
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