270 likes | 392 Views
This overview explores the application of bug algorithms in robot navigation to target points in obstacle-laden environments. Robots equipped with sensors move toward goals while employing simple behaviors, such as moving in straight lines or following walls upon encountering obstacles. We delve into various bug behaviors, including Bug 0 (no memory), Bug 1 (circumnavigating obstacles), and Bug 2 (greedy approach), highlighting their effectiveness. We also discuss the Tangent Bug algorithm, which utilizes range sensors to enhance obstacle avoidance by selecting optimal points along detected boundaries.
E N D
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 tturning robot
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 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 exhaustivesearch 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 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 choosethe point that minimizes
What if the distance starts to go up? • M is the point with shortestdistance to goal
What if the distance starts to go up? • M is the point with shortestdistance 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).