Two Finger Caging of Concave Polygon
description
Transcript of Two Finger Caging of Concave Polygon
Two Finger Caging of Two Finger Caging of Concave PolygonConcave Polygon
Peam PipattanasompornPeam Pipattanasomporn
Advisor: Attawith SudsangAdvisor: Attawith Sudsang
OutlineOutline
Objectives & Basic Concepts Objectives & Basic Concepts Maximal Cage ProblemMaximal Cage Problem Minimal Cage ProblemMinimal Cage Problem Discussion & ConclusionDiscussion & Conclusion
Objectives & Objectives & Basic ConceptsBasic Concepts
Definition of CagingDefinition of Caging
Object is caged when it cannot escape to Object is caged when it cannot escape to infinity w/o penetrating obstacles.infinity w/o penetrating obstacles.
Our system:Our system: Rigid Object, represented with simple Rigid Object, represented with simple
polygons.polygons. 2 Point Fingers.2 Point Fingers. On a plane, 2D problem.On a plane, 2D problem.
ObjectivesObjectives
““Determine sets of configurations that can Determine sets of configurations that can cage the object with two fingers.”cage the object with two fingers.”
ObjectivesObjectives
Characterize ALL Characterize ALL maximal cages & maximal cages & minimal cages.minimal cages.
Previous WorkPrevious Work
Rimon & Blake’s: Two 1-DOF finger cagingRimon & Blake’s: Two 1-DOF finger caging Largest cage that leads to a certain immobilizing Largest cage that leads to a certain immobilizing
grasp.grasp. Topological change of Free (configuration) space.Topological change of Free (configuration) space.
Our WorkOur Work
Transform the Configuration space into a Search Transform the Configuration space into a Search graph.graph.
All largest possible cages.All largest possible cages. Not cage that leads to a specified immobilizing grasp.Not cage that leads to a specified immobilizing grasp.
Configuration SpaceConfiguration Space
System of 7-DOFSystem of 7-DOF 3-DOF rigid object orientation/position3-DOF rigid object orientation/position 2x2-DOF positions of the fingers2x2-DOF positions of the fingers However, However, whether the object is cagedwhether the object is caged is independent is independent
from choice of coordinates (3-DOF ambiguity.)from choice of coordinates (3-DOF ambiguity.)
Configuration SpaceConfiguration Space
Fix the rigid object’s Fix the rigid object’s orientation/position.orientation/position.
2x2-DOF positions of 2x2-DOF positions of the fingers (u, v).the fingers (u, v).
Analyze motion of Analyze motion of fingers relative to the fingers relative to the object.object.
Object is not caged Object is not caged when two fingers are at when two fingers are at the same point.the same point.
Maximal Cage ProblemMaximal Cage Problem
Maximal CageMaximal Cage
A connected set containing every configuration A connected set containing every configuration (u, v) that can cage the object.(u, v) that can cage the object.
A maximal cage is associated with ONE critical A maximal cage is associated with ONE critical distance ddistance d++..
Critical Distance dCritical Distance d++
Least separation distance between fingers that Least separation distance between fingers that allows object to escape.allows object to escape.
dd++(u,v)(u,v) Different dDifferent d++ implies implies
DifferentDifferentmaximal cage.maximal cage.
Problem DefinitionProblem Definition
Characterize all Maximal Cages.Characterize all Maximal Cages. Set DescriptionSet Description
Describe configurations in a maximal cage.Describe configurations in a maximal cage. By a configuration in the maximal cage and its dBy a configuration in the maximal cage and its d++..
Point InclusionPoint Inclusion Which maximal cage a configuration (u, v) is in?Which maximal cage a configuration (u, v) is in? If so, what is dIf so, what is d++ of the maximal cage? of the maximal cage?
Determining dDetermining d++(u, v)(u, v)
To characterize a maximal cage, To characterize a maximal cage, we need:we need: A configuration (u,v) inside a A configuration (u,v) inside a
maximal cage.maximal cage. d+ of such configuration.d+ of such configuration.
How to determine dHow to determine d++(u,v), least (u,v), least upper-bound separation upper-bound separation distance that allows the object to distance that allows the object to escape?escape? Consider an escape motion starting Consider an escape motion starting
from (u,v).from (u,v).
uu
vv
Upperbound Separation DistanceUpperbound Separation Distance
Upperbound Separation Upperbound Separation DistanceDistance
dd++(u, v)(u, v)
dd++(u, v)(u, v)
Consider all possible escape motions Consider all possible escape motions starting from (u, v) for least separation starting from (u, v) for least separation distance.distance.
Infinitely many motions.Infinitely many motions.
Solution OverviewSolution Overview RR4 4 Config’ SpaceConfig’ Space Finite GraphFinite Graph A Fingers’ MotionA Fingers’ Motion A Path in the GraphA Path in the Graph Configuration (u, v)Configuration (u, v) State P, (u,v) State P, (u,v) P P Separation distanceSeparation distance Transition distanceTransition distance
uu
vv
Upper-bound separation distance Upper-bound separation distance Upper-bound Transition Distance Upper-bound Transition Distance
PP
55
88
Solution OverviewSolution Overview R4 Config’ SpaceR4 Config’ Space Finite GraphFinite Graph A Fingers’ MotionA Fingers’ Motion A Path in the GraphA Path in the Graph Configuration (u, v)Configuration (u, v) State P, (u,v) State P, (u,v) P P Separation distanceSeparation distance Transition distanceTransition distance
dd++(u, v) (u, v) dd++PP
To determine dTo determine d++ of a configuration is to determine d of a configuration is to determine d++ of a of a state.state.
Graph ConstructionGraph Construction
StatesStates Partition R4 Partition R4
Configuration Pieces Configuration Pieces PPii (States) (States)
Graph ConstructionGraph Construction
States’ States’ Representatives:Representatives: Each Each representative representative is a is a
certain configuration certain configuration (u, v) in(u, v) in P, P, dd++
P P = d= d++(u, v)(u, v)..
Finding dFinding d+ + of all of all representatives (drepresentatives (d++
PP for for
all P) is sufficient to all P) is sufficient to characterize all maximal characterize all maximal cages.cages.
Configuration Space Configuration Space Partitioning***Partitioning***
Configuration that Configuration that squeezes to the same squeezes to the same pair of edges is in the pair of edges is in the same configuration same configuration piece.piece.
State State Configuration Configuration PiecePiece
State can be referred by State can be referred by an edge pair: {ean edge pair: {e ii, e, ejj}}
eeii
eejj
Piece’s PropertyPiece’s Property
From any (u, v) in a piece P:{eFrom any (u, v) in a piece P:{e ii, e, ejj}, there exists }, there exists
a “non-increasing separation distance” finger a “non-increasing separation distance” finger motion from (u, v) to a local minimum of P.motion from (u, v) to a local minimum of P.
Piece PropertyPiece Property
FACT:FACT: Each piece partition this way is associated Each piece partition this way is associated with at most ONE maximal cage.with at most ONE maximal cage.
FACT: FACT: If a configuration in piece If a configuration in piece is in a maximal is in a maximal cagecage, then its, then its local minimum is as well local minimum is as well..
Piece PropertyPiece Property
Use the state’s local minimum as state’s Use the state’s local minimum as state’s representativerepresentative..
Consequently: Consequently: Computing dComputing d++ of all of all representatives is sufficient for representatives is sufficient for characterizing all maximal cages.characterizing all maximal cages.
TransitionsTransitions
Two nearby pieces P, Q in RTwo nearby pieces P, Q in R44 is linked is linked with Pwith PQ.Q.
Represents Fingers’ Represents Fingers’ MotionMotion from local from local minimum of P to that of Q with least upper-minimum of P to that of Q with least upper-bound separation distance.bound separation distance.
Transition distance [PTransition distance [PQ] = Least upper-Q] = Least upper-bound separation distance of such bound separation distance of such MotionMotion..
Transition ConcatenationTransition Concatenation
Concatenating a series of Concatenating a series of transitions from P to a piece transitions from P to a piece associated with {eassociated with {ekk, e, ekk} (k is } (k is
a constant) to obtain an a constant) to obtain an Escape PathEscape Path..
AnAn Escape Path Escape Path implies implies An An Escape MotionEscape Motion..
dd++ of Piece of Piece
dd++PP is obtained from an is obtained from an
Escape Path with least Escape Path with least upper-bound transition upper-bound transition distance.distance.
Reduction to Shortest Path Prob.Reduction to Shortest Path Prob.
Use Dijkstra’s Algorithm to Use Dijkstra’s Algorithm to solve this problem.solve this problem.
With an upper-bound fact:With an upper-bound fact: dd++
PP ≤ max(d ≤ max(d++QQ, [P, [PQ])Q])
Instead of:Instead of: dd++
PP ≤ d ≤ d++QQ + |P + |PQ|Q|
Start from any {eStart from any {ekk, e, ekk}}
Running Time AnalysisRunning Time Analysis
O(nO(n22) states. (n = # edges)) states. (n = # edges) Partitioning requires O(1) for each state Partitioning requires O(1) for each state
O(nO(n22).). Dijkstra’s Algorithm takes: O(nDijkstra’s Algorithm takes: O(n22 lg n + t), lg n + t),
t = number of transitions.t = number of transitions. Only “basic transitions” should be included Only “basic transitions” should be included
in the graph.in the graph.
Basic TransitionsBasic Transitions
At most 3 basic At most 3 basic transitions for each transitions for each distinct pair of edge edistinct pair of edge e ii and vertex v.and vertex v. Link between edges Link between edges
sharing v (esharing v (ejj, e, ekk).). Link between an edge Link between an edge
w/ v as an end point w/ v as an end point and eand emm..
x is a projection of v x is a projection of v on eon eii
Transition DistanceTransition Distance
= |v – x|= |v – x| Transition: Sliding fingers Transition: Sliding fingers
from one local minimum from one local minimum to the other.to the other.
Candidates: fingers’ Candidates: fingers’ motion on edges.motion on edges.
v must be included in the v must be included in the motion.motion.
Transit between pieces at Transit between pieces at (v, x) is minimal.(v, x) is minimal.
Recall: “Piece’s Property”Recall: “Piece’s Property”
Basic Transitions are SufficientBasic Transitions are Sufficient
Possible non-basic transition (a).Possible non-basic transition (a). Replace such with sequence of basic Replace such with sequence of basic
transitions w/ equal (or less) upper-bound transitions w/ equal (or less) upper-bound separation distanceseparation distance..
Basic TransitionsBasic Transitions
Require a ray-shoot for eRequire a ray-shoot for emm
.. O((√k) lg n) for each ray-O((√k) lg n) for each ray-
shoot query.shoot query. Ray-shoot algorithm Ray-shoot algorithm
require O(nrequire O(n22) pre-) pre-computation time.computation time.
(k = # simple polygons.)(k = # simple polygons.) By Hershberger & Suri.By Hershberger & Suri.
Running Time AnalysisRunning Time Analysis
Total time required: O(nTotal time required: O(n2 2 (√k) lg n)(√k) lg n) O(nO(n2 2 (√k) lg n) for pre-computation(√k) lg n) for pre-computation O(nO(n22 lg n) for d lg n) for d++ propagation w/ Dijkstra’s. propagation w/ Dijkstra’s. O((√k) lg n) for maximal cage query.O((√k) lg n) for maximal cage query.
Maximal Cage QueryMaximal Cage Query
If dIf d++ of local minimum of P (d of local minimum of P (d++PP) is known.) is known.
Given (u, v) in piece P.Given (u, v) in piece P.
If |u-v| < dIf |u-v| < d++PP , (u, v) is in a maximal cage. , (u, v) is in a maximal cage.
Squeeze (u,v) toSqueeze (u,v) toan edge pair toan edge pair tofind (u,v)’s find (u,v)’s containing piece P.containing piece P.
O((√k) lg n)O((√k) lg n)
Minimal CageMinimal Cage
Critical Distance dCritical Distance d--
Greatest separation distance that allows object to Greatest separation distance that allows object to escape.escape.
dd--(u,v)(u,v)
Problem DefinitionProblem Definition
Characterize all Minimal Cages.Characterize all Minimal Cages. Set DescriptionSet Description
Describe configurations in a minimal cage.Describe configurations in a minimal cage. By a configuration in the minimal cage and its dBy a configuration in the minimal cage and its d--..
Point InclusionPoint Inclusion Which minimal cage a configuration (u, v) is in?Which minimal cage a configuration (u, v) is in? If so, what is dIf so, what is d-- of the minimal cage? of the minimal cage?
Grouping ConfigurationsGrouping Configurations
Configuration that Configuration that stretches to the same stretches to the same pair of vertices is in the pair of vertices is in the same piece.same piece.
A piece P is associated A piece P is associated with a vertex pair: {vwith a vertex pair: {vii, v, vjj}}(the local maximum)(the local maximum)
Every (u, v) in P can Every (u, v) in P can move to the local move to the local maximum of P with non-maximum of P with non-decreasing separation decreasing separation motion.motion.
Characterize Minimal CagesCharacterize Minimal Cages
After the graph constructionAfter the graph construction Piece - pair of verticesPiece - pair of vertices Transitions - basic transitionsTransitions - basic transitions
Solve all dSolve all d-- with Dijkstra’s Algorithm in the with Dijkstra’s Algorithm in the same manner.same manner.
Discussion & ConclusionDiscussion & Conclusion
AlgorithmAlgorithm
Combinatorial Search Algorithm.Combinatorial Search Algorithm. n = # vertices, k = # simple polygonsn = # vertices, k = # simple polygons O(nO(n22 √k lg n) pre-computation time √k lg n) pre-computation time
(characterize all maximal/minimal cages.)(characterize all maximal/minimal cages.) O(√k lg n) optimal cage query time.O(√k lg n) optimal cage query time.
(4.2) Improvement(4.2) Improvement
In characterizing all Maximal Cages.In characterizing all Maximal Cages. Partition free space (RPartition free space (R22) into ‘r’ Convex Regions.) into ‘r’ Convex Regions. Pieces are cartesian product of a pair of convex Pieces are cartesian product of a pair of convex
regions.regions.
ImprovementImprovement
O(nO(n2 2 ++ rr22 lg r), pre-computation time lg r), pre-computation time O(lg n), maximal cage query time.O(lg n), maximal cage query time. Can be applied to characterizing all Can be applied to characterizing all
maximal cages in 3D.maximal cages in 3D.