Exemplo n.º 1
0
    "evaluator:lost": "exit:searching",
    "seeker:reached": "exit:waypoint",
    "seeker:lost": "exit:searching",
}

waypoint = StateMachine(waypoint_states, waypoint_transitions, "nextGoal")
searching = StateMachine(searching_states, searching_transitions, "evalulator")
blob = StateMachine(blob_states, blob_transitions, "blobsearch")
seek = StateMachine(seek_states, seek_transitions, "evalulator")

main_states = {
    "waypoint": waypoint,
    "searching": searching,
    "blobsearch": blob,
    "seek": seek,
    "end": EndSuccess(),
}

main_transitions = {
    "seek": "seek",
    "searching": "searching",
    "waypoint": "waypoint",
    "blobsearch": "blobsearch",
    "end": "end",
}

main = StateMachine(main_states, main_transitions, "waypoint")

main.attach()
rospy.spin()
Exemplo n.º 2
0
DIST_THRESHOLD = 5
MAX_SPEED_AT_DIST = 10  # distance at which rover should be traveling at max speed
MAX_SPEED_AT_ANGLE = math.pi / 2  # angular distance at which rover should be turning at max speed
MIN_DRIVE_SPEED = 150
MIN_TURNING_SPEED = 180

seek_states = {
    "evaluator":
    Evaluator(CONFIDENCE_THRESHOLD, DIST_THRESHOLD, goalTracker),
    "seeker":
    Seeker(CONFIDENCE_THRESHOLD, MAX_SPEED_AT_DIST, MAX_SPEED_AT_ANGLE,
           MIN_DRIVE_SPEED, MIN_TURNING_SPEED_SPEED),
    "failure":
    EndFail(),
    "success":
    EndSuccess(),
}

seek_transitions = {
    "evaluator:far": "failure",
    "evaluator:close": "seeker",
    "evaluator:lost": "success",
    "seeker:reached": "exit:waypoint",
    "seeker:lost": "failure",
}

seek = StateMachine(seek_states, seek_transitions, "evalulator")

seek.attach()
rospy.spin()
Exemplo n.º 3
0
pose1.latitude = 32.882112
pose1.longitude = -117.2343985
pose2 = PoseStamped()
pose2.pose.position.x = 2
pose3 = PoseStamped()
pose3.pose.position.x = 2
pose3.pose.position.y = 2

goalTracker = NextGoal([pose1, pose2, pose3])

waypoint_states = {
    "nextGoal":
    goalTracker,
    "following":
    FollowingState(MAX_SPEED_AT_DIST, MAX_SPEED_AT_ANGLE, MIN_DRIVE_SPEED,
                   MIN_TURNING_SPEED),
    "success":
    EndSuccess(),
}

waypoint_transitions = {
    "nextGoal:set": "following",
    "nextGoal:done": "success",
    "following:reached": "nextGoal",
}

waypoint = StateMachine(waypoint_states, waypoint_transitions, "nextGoal")

waypoint.attach()
rospy.spin()