Eikonal equation: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>ChrisGualtieri
m General Fixes + MOS + DMY changes using AWB
en>Skarmenadius
Line 1: Line 1:
{{Refimprove|date=June 2013}}
The individual who wrote the article is known as Jayson Hirano and he totally digs that name. What me and my family adore is performing ballet but I've been taking on new issues recently. Mississippi is where his home is. Invoicing is what I do for a living but I've always needed my own business.<br><br>My web page; [http://www.weddingwall.com.au/groups/easy-advice-for-successful-personal-development-today/ are psychics real]
 
'''Motion planning''' (also known as the "navigation problem" or the "piano mover's problem") is a term used in [[robotics]] for the process of breaking down a desired movement task into discrete motions that satisfy movement constraints and possibly optimize some aspect of the movement.
 
For example, consider navigating a [[mobile robot]] inside a building to a distant waypoint.  It should execute this task while avoiding walls and not falling down stairs.  A motion planning algorithm would take a description of these tasks as input, and produce the speed and turning commands sent to the robot's wheels.  Motion planning algorithms might address robots with a larger number of joints (e.g., industrial manipulators), more complex tasks (e.g. manipulation of objects), different constraints (e.g., a car that can only drive forward), and uncertainty (e.g. imperfect models of the environment or robot).
 
Motion planning has several robotics applications, such as [[Autonomous robot|autonomy]], [[automation]], and robot design in [[CAD]] software, as well as applications in other fields, such as animating [[digital character]]s, [[video game]] [[artificial intelligence]], [[architectural design]], [[robotic surgery]], and the study of [[biological molecule]]s.
 
==Concepts==
[[Image:Motion planning workspace 1.svg|thumb|Example of a workspace.]]
[[Image:Motion planning workspace 1 configuration space 1.svg|thumb|Configuration space of a point-sized robot. White = ''C<sub>free</sub>'', gray = ''C<sub>obs</sub>''.]]
[[Image:Motion planning workspace 1 configuration space 2.svg|thumb|Configuration space for a rectangular translating robot (pictured red). White = ''C<sub>free</sub>'', gray = ''C<sub>obs</sub>'', where dark gray = the objects, light gray = configurations where the robot would touch an object or leave the workspace.]]
[[Image:Motion planning configuration space curved valid path.svg|thumb|Example of a valid path.]]
[[Image:Motion planning configuration space curved invalid path.svg|thumb|Example of an invalid path.]]
[[Image:Motion planning configuration space road map path.svg|thumb|Example of a road map.]]
 
A basic motion planning problem is to produce a continuous motion that connects a start configuration S and a goal configuration G, while avoiding collision with known obstacles.  The robot and obstacle geometry is described in a 2D or 3D ''workspace'', while the motion is represented as a path in (possibly higher-dimensional) [[configuration space]].
 
===Configuration Space===
A configuration describes the pose of the robot, and the [[configuration space]] C is the set of all possible configurations.  For example:
* If the robot is a single point (zero-sized) translating in a 2-dimensional plane (the workspace), C is a plane, and a configuration can be represented using two parameters (x, y).
* If the robot is a 2D shape that can translate and rotate, the workspace is still 2-dimensional.   However, C is the special Euclidean group '''SE'''(2) = '''R'''<sup>2</sup> <math>\times</math> '''SO'''(2) (where '''SO'''(2) is the special [[orthogonal group]] of 2D rotations), and a configuration can be represented using 3 parameters (x, y, θ).
* If the robot is a solid 3D shape that can translate and rotate, the workspace is 3-dimensional, but C is the special Euclidean group '''SE(3)''' = '''R'''<sup>3</sup> <math>\times</math> '''SO'''(3), and a configuration requires 6 parameters: (x, y, z) for translation, and [[Euler angles]] (α, β, γ).
* If the robot is a fixed-base manipulator with N revolute joints (and no closed-loops), C is N-dimensional.
 
===Free Space===
The set of configurations that avoids collision with obstacles is called the free space C<sub>free</sub>.  The complement of C<sub>free</sub> in C is called the obstacle or forbidden region.
 
Often, it is prohibitively difficult to explicitly compute the shape of C<sub>free</sub>.  However, testing whether a given configuration is in C<sub>free</sub> is efficient.  First, [[forward kinematics]] determine the position of the robot's geometry, and [[collision detection]] tests if the robot's geometry collides with the environment's geometry.
 
==Algorithms==
Low-dimensional problems can be solved with grid-based algorithms that overlay a grid on top of configuration space, or geometric algorithms that compute the shape and connectivity of C<sub>free</sub>.
 
Exact motion planning for high-dimensional systems under complex constraints is computationally [[Computational complexity theory|intractable]].  Potential-field algorithms are efficient, but fall prey to local minima (an exception is the harmonic potential fields).  Sampling-based algorithms avoid the problem of local minima, and solve many problems quite quickly.
They are unable to determine that no path exists, but they have a probability of failure that decreases to zero as more time is spent.
 
Sampling-based algorithms are currently considered state-of-the-art for motion planning in high-dimensional spaces, and have been applied to problems which have dozens or even hundreds of dimensions (robotic manipulators, biological molecules, animated digital characters, and legged robots).
 
===Grid-Based Search===
Grid-based approaches overlay a grid on configuration space, and assume each configuration is identified with a grid point. At each grid point, the robot is allowed to move to adjacent grid points as long as the line between them is completely contained within C<sub>free</sub> (this is tested with collision detection).  This discretizes the set of actions, and [[search algorithms]] (like [[A* search algorithm|A*]]) are used to find a path from the start to the goal.
 
These approaches require setting a grid resolution. Search is faster with coarser grids, but the algorithm will fail to find paths through narrow portions of C<sub>free</sub>.  Furthermore, the number of points on the grid grows exponentially in the configuration space dimension, which make them inappropriate for high-dimensional problems.
 
Traditional grid-based approaches produce paths whose heading changes are constrained to multiples of a given base angle, often resulting in suboptimal paths. [[Any-angle path planning]] approaches find shorter paths by propagating information along grid edges (to search fast) without constraining their paths to grid edges (to find short paths).
 
Grid-based approaches often need to search repeatedly, for example, when the knowledge of the robot about the configuration space changes or the configuration space itself changes during path following. [[Incremental heuristic search]] algorithms replan fast by using experience with the previous similar path-planning problems to speed up their search for the current one.
 
===Interval-Based Search===
These approaches are similar to grid-based search approaches except
that they generate a paving covering entirely the configuration space instead of a grid
<ref>
{{cite journal|last=Jaulin|first=L.|
title=Path planning using intervals and graphs|journal=Reliable Computing|year=2001|
 
volume=7|issue=1|url=http://www.ensta-bretagne.fr/jaulin/paper_cameleon.pdf}}
</ref>
.
The paving is decomposed into two [[subpaving]]s X<sup>-</sup>,X<sup>+</sup> made with boxes
such that
X<sup>-</sup> ⊂ C<sub>free</sub> ⊂ X<sup>+</sup>.
Characterizing C<sub>free</sub> amounts to solve a [[set inversion|set inversion problem]].
[[Interval arithmetic|Interval analysis]] could
thus be used when C<sub>free</sub> cannot be described by linear inequalities in order to have a guaranteed
enclosure.
 
The robot is thus allowed to move freely in X<sup>-</sup>, and cannot go outside X<sup>+</sup>.
To both subpavings, a neighbor graph is built and paths can be found using
algorithms such as [[Dijkstra's algorithm|Dijkstra]] or [[A* search algorithm|A*]]. 
When a path is feasible in X<sup>-</sup>, it is also feasible
in C<sub>free</sub>. When no path exists in X<sup>+</sup> from one initial configuration to the goal,
we have the guarantee that no feasible path exists in C<sub>free</sub>.
As for the grid-based approach, the interval approach is inappropriate
for high-dimensional problems, due to the fact that the number of boxes to be generated
grows exponentially with respect to the dimension of configuration space.
 
An illustration is provided by the three figures on the right where
a hook with two degrees of freedom has to move from the left to the right, avoiding two horizontal small segments. 
[[File:Graph2displaycolor.jpg|thumb|
Motion from the initial configuration (blue) to the final configuration of the hook, avoiding the two obstacles (red segments). The left-bottom corner of the hook has to stay on the horizontal line,
which makes the hook two degrees of freedom.
]]
[[File:Graph1sivia.jpg|thumb|
Decomposition with boxes covering the configuration space: The subpaving X<sup>-</sup> is the union all red boxes
and the subpaving X<sup>+</sup> is the union of red and green boxes. The path corresponds to the motion
represented above.
]]
[[File:Graph3cameleon.jpg|thumb|
This figure corresponds to the same path as above but obtained with many fewer boxes.
The algorithm avoids bisecting boxes in parts of the configuration space
that do not influence the final result.
]]
The decomposition with subpavings using interval analysis also makes it possible to characterize
the topology of C<sub>free</sub> such as counting its number of connected components
<ref>
{{cite journal|last1=Delanoue|first1=N.|last2=Jaulin|first2=L.|last3=Cottenceau|first3=B.|
title=Counting the Number of Connected Components of a Set and Its Application to Robotics|
journal=Applied Parallel Computing, Lecture Notes in Computer Science|year=2006|volume=3732|
issue=1|url=http://www.ensta-bretagne.fr/jaulin/delanoueCounting.pdf}}
</ref>
.
 
===Geometric Algorithms===
Point robots among polygonal obstacles
* [[Visibility graph]]
* [[Cell decomposition]]
 
Translating objects among obstacles
* [[Minkowski sum]]
 
===Potential Fields===
One approach is to treat the robot's configuration as a point in a potential field that combines attraction to the goal, and repulsion from obstacles.  The resulting trajectory is output as the path.  This approach has advantages in that the trajectory is produced with little computation.  However, they can become trapped in [[local minima]] of the potential field, and fail to find a path.
 
===Sampling-Based Algorithms===
Sampling-based algorithms represent the configuration space with a roadmap of sampled configurations.
A basic algorithm samples N configurations in C, and retains those in C<sub>free</sub> to use as ''milestones''.  A roadmap is then constructed that connects two milestones P and Q if the line segment PQ is completely in C<sub>free</sub>.  Again, collision detection is used to test inclusion in C<sub>free</sub>.  To find a path that connects S and G, they are added to the roadmap.  If a path in the roadmap links S and G, the planner succeeds, and returns that path.  If not, the reason is not definitive: either there is no path in C<sub>free</sub>, or the planner did not sample enough milestones.
 
These algorithms work well for high-dimensional configuration spaces, because unlike combinatorial algorithms, their running time is not (explicitly) exponentially dependent on the dimension of C.  They are also (generally) substantially easier to implement.  They are probabilistically complete, meaning the probability that they will produce a solution approaches 1 as more time is spent.  However, they cannot determine if no solution exists.
 
Given basic ''visibility'' conditions on C<sub>free</sub>, it has been proven that as the number of configurations N grows higher, the probability that the above algorithm finds a solution approaches 1 exponentially.<ref>{{Cite journal
  | last1 = Hsu | first1 = D.
  | last2 = [[Jean-Claude Latombe|J.C. Latombe]] | first2 =J.C.
  | last3 = Motwani | first3 = R.
  | title = Path Planning in Expansive Configuration Spaces
  | journal = Proc. IEEE Int. Conf. on Robotics and Automation
  | year = 1997
  | postscript = <!--None-->
}}</ref>  Visibility is not explicitly dependent on the dimension of C; it is possible to have a high-dimensional space with "good" visibility or a low dimensional space with "poor" visibility.  The experimental success of sample-based methods suggests that most commonly seen spaces have good visibility.
 
There are many variants of this basic scheme:
* It is typically much faster to only test segments between nearby pairs of milestones, rather than all pairs.
* Nonuniform sampling distributions attempt to place more milestones in areas that improve the connectivity of the roadmap.
* [[Quasirandom]] samples typically produce a better covering of configuration space than [[pseudorandom]] ones, though some recent work argues that the effect of the source of randomness is minimal compared to the effect of the sampling distribution.
* It is possible to substantially reduce the number of milestones needed to solve a given problem by allowing curved eye sights (for example by crawling on the obstacles that block the way between two milestones <ref>{{Cite journal
  | last1 = Shvalb | first1 = N.
  | last2 = Ben Moshe | first2 =B.
  | last3 = Medina | first3 = O.
  | title = A real-time motion planning algorithm for a hyper-redundant set of mechanisms.
  | journal = Robotica
  | year = 2013
  | volume=31
  | issue=8
  | url=http://dx.doi.org/10.1017/S0263574713000489}}</ref>).
* If only one or a few planning queries are needed, it is not always necessary to construct a roadmap of the entire space.  Tree-growing variants are typically faster for this case (single-query planning).  Roadmaps are still useful if many queries are to be made on the same space (multi-query planning)
 
==Completeness and Performance==
A motion planner is said to be [[Completeness|complete]] if the planner in finite time either produces a solution or correctly reports that there is none. Most complete algorithms are geometry-based. The performance of a complete planner is assessed by its [[Computational complexity theory|computational complexity]].
 
''Resolution completeness'' is the property that the planner is guaranteed to find a path if the resolution of an underlying grid is fine enough.  Most resolution complete planners are grid-based or interval-based.  The computational complexity of resolution complete planners is dependent on the number of points in the underlying grid, which is O(1/h<sup>d</sup>), where h is the resolution (the length of one side of a grid cell) and d is the configuration space dimension.
 
''Probabilistic completeness'' is the property that as more “work” is performed, the probability that the planner fails to find a path, if one exists, asymptotically approaches zero.  Several sample-based methods are probabilistically complete.  The performance of a probabilistically complete planner is measured by the rate of convergence.
 
''Incomplete'' planners do not always produce a feasible path when one exists.  Sometimes incomplete planners do work well in practice.
 
==Problem Variants==
Many algorithms have been developed to handle variants of this basic problem.
 
===Differential Constraints===
[[Degrees of freedom (engineering)|Holonomic]]
* Manipulator arms (with dynamics)
 
[[Nonholonomic]]
* Cars
* Unicycles
* Planes
* Acceleration bounded systems
* Moving obstacles (time cannot go backward)
* Bevel-tip steerable needle
* Differential Drive Robots
 
===Optimality Constraints===
 
===Hybrid Systems===
 
[[Hybrid systems]] are those that mix discrete and continuous behavior.  Examples of such systems are:
* [[Robotics|Robotic manipulation]]
* [[Design for Assembly|Mechanical assembly]]
* Legged robot locomotion
* [[Self-Reconfiguring Modular Robotics|Reconfigurable robots]]
 
===Uncertainty===
* Motion uncertainty
* Missing information
* Active sensing
* Sensorless planning
 
==Applications==
* [[Robot navigation]]
* [[Automation]]
* The [[driverless car]]
* [[Robotic surgery]]
* [[Computer animation|Digital character animation]]
* [[Protein folding]]
* Safety and accessibility in [[computer-aided architectural design]]
 
==See also==
{{Portal|Robotics|Computer science}}
* [[Gimbal lock]] – similar traditional issue in mechanical engineering
* [[Pebble motion problems]] – multi-robot motion planning
* [[Kinodynamic planning]]
* [[Mountain climbing problem]]
* [[Velocity obstacle]]
* [[OMPL]] - The Open Motion Planning Library
 
==References==
{{Reflist}}
 
==Further reading==
*''Robot Motion Planning'', Jean-Claude Latombe, 1991, Kluwer Academic Publishers
*''[http://planning.cs.uiuc.edu/ Planning Algorithms]'', Steven M. LaValle, 2006, Cambridge University Press, ISBN 0-521-86205-1.
* ''Principles of Robot Motion: Theory, Algorithms, and Implementation'', H. Choset,  W. Burgard, S. Hutchinson, G. Kantor, [[Lydia Kavraki|L. E. Kavraki]], K. Lynch, and S. Thrun, MIT Press, April 2005.
* {{Cite book|author = Mark de Berg, Marc van Kreveld, [[Mark Overmars]], and Otfried Schwarzkopf | year = 2000 | title = Computational Geometry | publisher = [[Springer-Verlag]] | edition = 2nd revised | isbn = 3-540-65620-0}} Chapter 13: Robot Motion Planning: pp.&nbsp;267&ndash;290.
* BECKER, M. ; DANTAS, Carolina Meirelles ; MACEDO, Weber Perdigão, "[http://www.abcm.org.br/symposiumSeries/SSM_Vol2/Section_IV_Mobile_Robots/SSM2_IV_05.pdf Obstacle Avoidance Procedure for Mobile Robots]". In: Paulo Eigi Miyagi; Oswaldo Horikawa; Emilia Villani. (Org.). ''ABCM Symposium Series in Mechatronics'', Volume 2. 1 ed. São Paulo - SP: ABCM, 2006, v. 2, p.&nbsp;250-257. ISBN 978-85-85769-26-0
* R. Ball, and N. Dulay, "[http://webofthings.com/urban-iot/2010/pdfs/Ball.pdf Enhancing Traffic Intersection Control with Intelligent Objects]", First International Workshop the Urban Internet of Things, November 2010.
 
==External links==
{{Commons category|Motion planning}}
*"Open Robotics Automation Virtual Environment", http://openrave.org/
* [http://www.researchchannel.org/prog/displayevent.aspx?rID=2132&fID=567 Jean-Claude Latombe talks about his work with robots and motion planning, 5 April 2000]
*"Open Motion Planning Library ([[OMPL]])", http://ompl.kavrakilab.org
*"Motion Strategy Library", http://msl.cs.uiuc.edu/msl/
*"Motion Planning Kit", http://ai.stanford.edu/~mitul/mpk
*"Simox", http://simox.sourceforge.net
 
*"Robot Motion Planning and Control", http://www.laas.fr/%7Ejpl/book.html
 
{{Use dmy dates|date=September 2010}}
 
{{DEFAULTSORT:Motion Planning}}
[[Category:Robot kinematics]]
[[Category:Theoretical computer science]]

Revision as of 17:15, 27 February 2014

The individual who wrote the article is known as Jayson Hirano and he totally digs that name. What me and my family adore is performing ballet but I've been taking on new issues recently. Mississippi is where his home is. Invoicing is what I do for a living but I've always needed my own business.

My web page; are psychics real