representing and navigating space

advertisement
Thinking about space
Robotics
Bridgewater State College
Spring 2005
Thinking about space
●
Brooks once claimed unnecessary
–
●
But for complex tasks found necessary.
Can't go from here to your car without
thinking about the space and obstacles in
between.
–
No planning done without thinking about space
Representing Space
●
Easiest way of internal representation
–
●
Use a map.
Needed for
–
Knowing where to go/navigation
●
“free space”
–
Recognize regions or locations in environment
–
Recognize objects in environment
How does robot represent environment?
●
●
Let environment represent itself.
–
All planning and manipulation of environment
take place on real environment at given time.
–
Plans only based on instantaneous immediate
sensor input.
If internal representation
–
What are the primitives?
●
Objects? Features? Symbolic entities? Spacial
occupancy? etc?
Decomposing space.
●
Simple method:
–
Divide the space into equal sized squares
–
Decide for every square, is this square free or
filled.
–
Could implement with 2d array.
–
bitmap/occupancy grid
–
Space considerations (how much?)
–
Plus side- General
●
Can also add other information like confidence, terrain
info etc.
Occupancy grid storage
●
Cells that are all the same still represented
separately
–
Wastes lots of space
–
Can't similar pixels be compressed?
Quad Tree
●
Recursive data structure.
–
Represents square 2-D region
–
Hierarchical
●
●
●
May reduce storage
–
Large spaces of occupied or unoccupied space
–
Scattered spaces – storage no better than occupancy grid.
Worst case worse than occupancy since extra
overhead.
Base-2 nice for decisions.
BSP-tree
●
Binary Space Partitioning trees.
–
Usually in computer graphics.
–
Useful for 2d spaces
●
●
Free space divided into regions by lines parallel to
outside edge.
Each boundary divide cell into two – but not
necessarily evenly.
●
Arbitrary division point
●
No unique BSP-tree for a given space.
Exact division
●
Subdivide space into several nonoverlapping regions.
–
●
●
Union of parts is exactly the whole space.
Non-overlapping not necessary, but
convenient
End spatial decomposition methods.
Geometric modelling
●
●
Spatial decomposition can use a lot of
memory
Geometric maps one answer
–
Describe world in terms of simple geometric
shapes, points, line, polygons and circles.
–
Will assume 2d representation since we don't
have manipulators
–
Key components
●
●
Set of primitives for describing objects
Set of composition and deformation operators to
manipulate objects
Shortcomings
●
Lack of stability
–
●
Representation changes a lot from small input
change.
Lack of expressive power
–
Different environments map to same
representation
–
Difficult (impossible) to represent salient features
in modelling system.
Lack of uniqueness
●
Models may approximate input
–
Express single set of observations more than
one way.
–
Minimal descriptive length
●
Associate cost with each model and attempt to find
single model that minimizes cost.
Stabilizer
●
Minimize problems by adding stabilizer
–
Discard outlying data points
–
Prefer longer line segments.
●
And parallel to other directions.
–
Prefer models that are more compact possible
for set of data points.
–
Prefer models with uniform curvature.
Topological Representations
●
●
Noisy data -> hard to make good geometry
Humans seem to use more topological
approach,
–
So how about for robots
–
Cognitive science approach
–
Key to topological:
●
●
Some explicit representation of connectivity between
two places
May have no “metric data” at all.
Topological Reps II
●
Abstract the environment
–
Descrete spaces connected by edges
–
Represent as graph
–
G = (V, E)
●
V: Set of nodes; E: set of edges that connect them.
–
Book example of ceiling mounted landmarks
–
Airplane travel.
Part II
Representing the robot in space
●
Up to now,
–
just concerned with representing the world
–
But need to represent the robot in the world.
–
Now let's represent the robot.
Configuration Space
●
Configuration space formalism
–
Specification for physical state of robot relating
to fixed environmental frame
–
For simple rigid robot that can move and turn on
flat surface but has no limbs
–
Configuration q=[x,y,
●
What does this remind you of from mobility?
C-Space constraints
●
Contraints prohibit robot from entering some
areas
–
Circular robot with radius r can't go closer to any
object than distance r
–
Written as G(q)=0 where q is the pose
–
Holonomic constraint
●
●
Any constraint that does not involve velocity
For any real world obstical – can expand to set of
points and solve to keep the robot's pose correct.
Non-holinomic Contraints
●
Non-holinomic Contraints
–
Contraints on what velocities are allowed
●
Much more difficult to calculate.
–
Getting from point A to point B without complete
pose control
–
Parallel parking
–
Backing a tractor trailor truck.
–
Free flying robots (conservation of angular
momentum.
–
C-space Search path can get large.
Simplification
●
Point-robot assumption
–
Assume robot is a point capable of omnidirectional movement
–
Physics jokes?
–
But robotics: so have to make up for this
–
Do so with object dilation
–
Show on board.
Path Planning
●
●
Now we've covered
–
representing space
–
Representing robot in space
Now plan motion
–
Big field – entire book written just on path
planning for robots
–
Skim surface.
Path Planning Summary
●
Want to get from point A to point B
–
Often want minimum length path.
–
Sometimes minimum cost path
●
Not always the same
–
Rochester NY example.
–
Path curvature
–
Obsicles
–
Anytime algorithms
–
“safe paths”
Standard Path Planning
●
“standard” planning basic assumptions:
–
Rigid robot A
–
Static, known environment W
–
Robot domain is euclidean (we'll use 2-d space)
–
Known set of obsticles in W: B1 B2 ... Bq
–
Robot travels in straight line segments perfectly
Evaluating Planning Techniques
–
Environment and robot
●
Different techniques are needed for different robot
capabilities
–
Soundness: is the planned path guaranteed to
be collision free?
–
Complete: if a path exists is is guaranteed to be
found?
–
Optomality: cost of path found vs. best path
–
Space and time complexity.
Graph Search
●
Basic graph search learned in most CS
classes
–
If you have a topological graph
●
●
Start from initial node, expand that node
–
Add adjacent nodes to OPEN list
–
Found goal? If not, choose one of the nodes on OPEN and
put start node on CLOSED list.
Depth-first / Breadth-first / A* search
Optimizing Search
●
Evaluation function f(n)
–
n is a node on the graph
–
Smaller values of f(n) means n more likely to be
on optimal path.
–
Choose node with smallest value of f(n)
–
Assume no 0 or negative values for f(n) (every
move costs something)
–
F(n) = g(n)+h(n)
–
G(n) is estimated cost from start to n
–
H(n) is estimated cost from n to goal
GraphSearch Procedure
●
Procedure GraphSearch(s, goal)
–
OPEN := {s}.
–
CLOSED :={}.
–
Found := false.
–
While (OPEN ≠ Ø) and (not found) do
●
OPEN := OPEN – {n}.
●
CLOSED := CLOSED  {n}
●
If n ∈ goal then
–
●
found := true
else
–
OPEN := OPEN  M. (where M is set of all nodes
directly accessible from n)
A* search
●
Use G(n) as upper bound on cost thus far
–
●
Use h(n) as lower bound on cost of time to
go
–
●
maximize g(n)
Underestimate cost remaining
Will find optimal path to goal.
Dynamic Programming
●
Solution must adhere to Bellman's principle
–
Given points A, B, C
–
Optimal path from A to B through C found by
optimal path from A to C and optimal path from C
to B
–
Create “cost table” for moving from place to place
till have a good solution to end point.
●
Use heuristics to not create entire cost table.
Visibility Graph planning.
●
V-Graph
–
Technique produces minimum length path
●
–
Through graph traversal.
Defined:
●
●
G=(V, E) such that V is made up of union of all
verticies of polygonal obsticles as well as start and
end points of path.
Edges of graph connect all vertices that are visible to
one another.
V-Graph planning II
●
Once V-Graph setup
–
Have graph whose edges can be traversed w/out
hitting anything
–
Start and goal nodes are included in verticies
–
So can travel from start to goal w/out hitting
anything
–
Can search graph in time O(N2) on the number
of verticies.
To Be continued
●
More Navigation next time.
Download