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.