Sensor Based Planners Bug algorithms
Bug Algorithms World: The world is , has obstacles, starting point {S} and target point {T} The obstacles are closed and simple. Each point belongs at most to one obstacle. The world contains a finite number of obstacles locally.
Bug Algorithms Robot The robot is a point (Configuration Space) The robot knows his position The robot knows the target position Equipped with a sensor Infinite memory (though not necessary..)
Bug Behaviors Bug behaviors are simple: Move in a straight line to the target Follow a wall (right or left)
Definitions Start point Target point “Hit point” “Leave point”
Bug 0 (No memory) Head toward goal Follow obstacle until you can head toward goal again (left or right but not both) continue
Bug 0 - Example Assuming a left t turning robot
What map will foil bug 0?
What map will foil bug 0?
Bug 1 Head toward goal If an obstacle is encountered, circumnavigate it and remember how close you get to the goal Return to the closest point (by wall-following and continue)
Bug 1 - Example
Bug 2 Call the line from the starting point to the goal the m-line Head toward goal on the m-line If an obstacle in the way, follow it until you encounter the m-line again. Leave the obstacle and continue toward goal.
Bug1 vs Bug2 Bug1 is an exhaustive search algorithm It looks all the choices before committing Bug2 is a greedy algorithm It takes the first thing that looks better In many cases Bug2 will outperform bug 1
Tangent Bug Assume we have a range sensor (with a finite resolution and is noisy)
Tangent Bug
Tangent Bug Tangent bug relies on finding endpoints of finite, continuous segments of
Tangent Bug Tangent bug relies on finding endpoints of finite, continuous segments of
Tangent Bug – Motion to Goal Move to in a straight line toward goal If you “see” something in front of you For any such that choose the point that minimizes
Motion to Goal Example
What if the distance starts to go up? M is the point with shortest distance to goal
What if the distance starts to go up? M is the point with shortest distance to goal Start to act like a BUG! And follow boundary
d_reach and d_follow d_follow: is the shortest distance between the boundary which had been sensed and the goal. (observed thus far) d_reach: let A be all the points within line of sight of x with range R that are on the followed obstacle.
Tangent Bug – terminate boundary-following behavior When We found a point on the obstacle, which is closer to the goal than any point we sensed so far (on the currently followed obstacle).
Example – Zero Sensor Range
Example – Finite Sensor Range
Example – Infinite Sensor Range
d_followed (M) is constantly updated