Mathematics & Path Planning for Autonomous Mobile Robots Caroline Paulic Math 480 April 1, 2013
What is path planning for autonomous mobile robots? Mobile- The robot moves around its environment Autonomous- No outside human intervention Path planning- Determining a path from an initial configuration to a goal configuration such that the robot doesn't collide with any obstacles
Keep These Questions In Mind How can the robot be represented? How can the space be represented? How can the robot reason with respect to its representation of space?
How can the robot be represented? Point robot- Abstract the robot down to a single point Can make up for the robot's radius by dilating all obstacles out by a distance equivalent to the robot's radius
So, how should we represent our space?
Representing Space: Discrete Case The environment is broken up into discrete chunks This can be done in a number of ways, but we won't be covering that today Note that these chunks don't necessarily have to be of the same size or shape (depending on what representation technique is chosen)
Representing Space: Voronoi Diagram Represent each obstacle as a point Each line segment is equidistant between two obstacles Nodes are equidistant between three obstacles
Representing Space: Continuous Case Represented by a continuous plane in Rn for an n-dimensional configuration space A configuration space represents all of the possible kinematic states of the robot The configuration space has one dimension for every degree of freedom of the robot Unlike the discrete case, this space is not divided up at all
How can we search our space in order to find a path from the start to the goal?
Searching A Discrete Space: Voronoi Diagram From a start position, move directly away from the nearest obstacle until we reach a point that lies on one of the line segments Follow the segment until we are in a spot such that we can move directly towards the goal while avoiding obstacles
Searching A Discrete Space: Graph Search Take the environmental representation and make it into a graph Each cell represents a node in the graph If a robot can move from one cell to another, then those nodes are connected in the graph Cells that would result in a collision are not included in the graph Search the resulting graph Now, our problem is reduced to finding an efficient path from the start node to the goal node
Graph Search: Depth-First Searches deep within the first node before moving to the next
Graph Search: Breadth-First Searches through every node on one level before moving down to the next level
Graph Search: Dijkstra's Algorithm Similar to breadth-first search Difference is that it keeps track of the cost associated with each edge traversal (only positive costs are considered) Still exhaustively enumerates all possibilities, but then chooses the one with the least estimated cost
Graph Search: Best-First Choose the open node that is closest to the goal For obstacle free environments, this is efficient In more complex environments, not so much...
Searching A Continuous State Space: Potential Fields Robot is treated as a particle acting under the influence of a potential field The robot is modeled as carrying an electric charge
Potential Field: Obstacles Obstacles carry the same charge as the robot (repels) Typically modeled as a barrier that rises to infinity as the robot approaches it Example: Uobstacle=||q - obstacle||-2 q is the robot's state obstacle is the point on the obstacle that is closest to the robot
Potential Field: Obstacles We can then take the gradient of our function to obtain an artificial force field *Recall that the gradient of a function gives us the direction in which the function is growing the fastest*
Potential Field: Goal We want to model the goal field such that the robot is drawn towards the goal Typically modeled to be parabolic Example: Ugoal=||q - goal||2
Potential Field: Sum We can sum the goal field and the obstacle fields to get the net artificial potential
Potential Fields: Local Minima Problems can arise with local minima Robot gets stuck Example: There are a few solutions to this problem: Taking a random number of steps in one direction Invoking a procedural planner, such as a wall follower Increasing the potential when the robot visits a region, so it is repelled by previously visited regions Others that we won't cover today
Sources Computational Principles of Mobile Robotics (Second Edition), Dudek and Jenkin Introduction to Algorithms (Third Edition), Cormen, Leiserson, Rivest, and Stein http://www.nazriomar.com/web- server/depth-first-vs-breadth-first/ http://www.cs.wustl.edu/~pless/546/lectu res/L11.html