Upload
kfuscribd
View
108
Download
0
Embed Size (px)
Citation preview
A study on Visibility Graphs
Kadir Firat UyanikKOVAN Research Lab.Dept. of Computer Eng.
Middle East Technical Univ.Ankara, Turkey
Abstract— In my previous path planning studies (tangent bugalgorithm(tba), and artificial potential fields(apf)), local andglobal information about the environment is used, where inthe former obstacles in the environment are not specificallymodeled but sensed via range sensors, and local tangent graphsare constructed to follow until reaching the goal position. Inthe latter objects are modeled and being known priorly andthe environment sensed globally to generate velocity vectorsreactively.
In this study, these two methods, in a way, are combinedto construct visibility graphs which look like the local tangentgraphs of the tba algorithm, but they are constructed withtheir globally known models like it is in the apf. Once graph isobtained, an optimal path finding algorithm, A* in this case, isexecuted to obtain shortest path from current position to thegoal position. Moreover, triangular shaped robot is also usedin this study which requires considering its body shape whileconstructing the graph. This is done by using a method similarto Minkovski-sum, where obstacles are dilated to treat the robotas if it is a point-robot.
I. INTRODUCTION
The visibility graph[1].[2] is the simplest form of thevisibility maps. In common, all visibility maps are consistedof the nodes which share an edge if two-node are within theline of sight of each other.
The standard visibility graph is defined in a 2-D polygonalconfiguration space as it is shown in the figure 1. The nodesvi of the visibility graph include the start and goal location,as well as the all vertices of the configuration space obstacles.The graph edges eij are straight-line segments that connecttwo line-of-sight nodes vi and vj satisfying the followingcondition:
eij 6= ∅ ⇔ svj + (1− s)vj ∈ cl(Qfree)∀s ∈ [0, 1] (1)
The shortest can be found by using an optimal path findingalgorithm such as A* which is shown in the figure 2 for thecase give in figure 1.
However, the robot is assumed to be point-like in thiscase and also there are various unnecessary edges in thisgraph. More elegant approaches are implemented to get rid ofthis inadequacies which are explained in the implementationdetails section. Yet, there are other methods which increasesthe performance of this algorithm that are explained in thediscussions section.
Fig. 1. A screenshot from the webots simulator indicating the standardvisibility graph being constructed. Orange points shows the start and theblue shows goal position, obstacles are concave and convex type.
Fig. 2. A screenshot from the webots simulator indicating the shortest pathin this environment.
II. IMPLEMENTATION DETAILS
In this section, various test scenarios are explained byfocusing the possible solutions for obvious problems instandard graph construction.
A. Visibility Graph Reduction
The standard visibility graph has many needless edgeswhich are not going to be used in any case. These arethe ones that are going towards to the obstacles. In other
Fig. 3. Supporting and separating lines are shown, adapted from [3].
Fig. 4. A screenshot from the webots simulator indicating the reducedvisibility graph applying the supporting/separating lines properties.
words, the lines that are useful for path planning are the onesgoing around the obstacles, or passing through the verticesthat are extremes around the obstacles. The lines that arepassing through two extreme points are called supportingand separating lines as it is shown in figure 3.
If we apply this property to the graph shown earlier, weobtain the reduced visibility graph 5.
Although shortest path doesn’t change, the time it requiresto find decreases considerably. For instance, in earlier casethere are 58 edges in the graph whereas in the reduced graphcase there are 36 edges which is about 38% less than thestandard graph. In the earlier case finding the shortest pathrequires 0.074828 seconds, but it is 0.0443946 in the reducedgraph case. That is 40% faster than the standard graph.
B. Non-point Robot Configuration Space
If the visibility graph algorithm is supposed to be executedas a path planning module of an actual robot, the shape ofthe body of the robot should also be considered. In thisstudy, a non-rotational triangular shaped robot is used as
Fig. 5. A screenshot from the webots simulator indicating the reducedvisibility graph where obstacles are the modified configuration space obsta-cles.
Fig. 6. A screenshot from the webots simulator indicating the reducedvisibility graph where obstacles are the modified configuration space obsta-cles.
it is shown in the figure ??. The local reference point ofthe robot is taken as the top right corner. In order modifythe configuration space so that the robot can be treated as apoint-robot, the obstacles are dilated according to the localreference point chosen. Even the goal position is directlyvisible to the robot in this scenario, shortest path. it takesalmost half of a second to dilate the obstacles and finding theshortest path. Dilation is done by shifting the robot for everyvertices of the robot and for each vertices of the obstacles.The global position of the local reference point is recordedif there is no intersection between the obstacles. Then theconvex hull of these point set is calculated, and this results inthe final outer boundary of the configuration space obstacles.
The resultant configuration space can vary according to thechosen local reference vertex of the robots polygonal bodyas it is shown in the figures 6, and 7.
III. DISCUSSION
Current implementation isn’t considered to be optimizedin terms of the operation time. The intersection tests anddilation operations can be done in a more optimized way. For
Fig. 7. A screenshot from the webots simulator indicating the reducedvisibility graph where obstacles are the modified configuration space obsta-cles.
instance star algorithm, though in essence does very similarthing, could increase the performance of the system.
In the current implementation, CGAL’s[5] intersection testfunctions are utilized which does the following to detectsegment intersection:
Let V = v1, v2, ...vn be the set of vertices of the polygonalobstacles in the configuration space as well as the start andgoal configurations. Therefore, no intersection requires: t /∈[0, 1] and u /∈ [0, 1] where t and u represents a scalar value,fraction of the line segments between two arbitrary vertices.More formally [4]:
t =vkvi × vlvkvjvi × vlvk
u =vkvi × vjvivjvi × vlvk
∀vivj ,∀vkvl, vi 6= vj , vk 6= vl
For instance; if vjvi × vlvk = 0 then these line segmentsare parallel, and also if vkvi = 0 these lines are collinear.Otherwise t and u are going to be calculated as scalar values.If they are not in the interval of [0, 1], then these lines arenot intersecting with each other.
Visibility graph construction is done with the complexityof O(n3). This could be decreased by using rotationalsweep line algorithm and quick-sort algorithm inside thisalgorithm to the complexity of O(n2logn). Although theimplementations of these algorithm are done, not tested yet.
Sweep line algorithm also discards adding needless edgesbut only considers supporting and separating lines whichreduces the number of edges.
Yet another problem with not using Star algorithm inconfiguration space obstacle dilation is that the concaveobstacles can end up with not precisely correct boundariesas it is shown in the figure 9
One major problem that I came across during implemen-tation is the floating point number comparison. This problemaffected the my implementation time considerably, since this
Fig. 8. Rotational sweep line algorithm. Adapted from [3].
Fig. 9. The bottom edge of the dilated obstacle is not precisely correct. Thishappens because of the way I shift and drag the robots polygon around theobstacle. If there is no inner region intersection between the obstacles theposition of the local reference point recorded for the convex hull generation.Obviously, if the robot is moved to the concave vertex of the obstacle withany vertex of the obstacle overlapping occurs and the position of the localreference point cannot be recorded.
was more like a very deep bug in the source code, and it tooka lot of time to catch it. It is solved by doing the comparisonnot like bitwise or exact number comparison but by using adifference threshold between the numbers (e.g. 0.001).
IV. CONCLUSIONS
In this study, visibility graphs algorithm is implementedand tested on various cases. Please visit my youtube channelto see working performance of the algorithm while start andgoal positions are moved continuously and the whole graphand/or shortest path being found is shown at the same time.
REFERENCES
[1] J.C. Latombe. Robot Motion Planning. Kluwer Academic Publishers,Boston, MA, 1991.
[2] T.L.Perez and M.A. Wesley. 1979. An algorithm for planning collision-free paths among polyhedral obstacles. Commun. ACM 22, 10 (Oc-tober 1979), 560-570.
[3] Principles of Robot Motion by Howie Choset etal., MIT Press, 2005,ISBN: 0-262-03327-5
[4] Goldman R., Intersection of Two Lines in Three-Space, in Andrew S.Glassner, ed., Graphics Gems, Academic Press, p. 304, 1990.
[5] R. C. Veltkamp. Generic programming in CGAL, the ComputationalGeometry Algorithms Library. In F. Arbab and P. Slusallek, editors,Proceedings of the 6th Eurographics Workshop on ProgrammingParadigms in Graphics, Budapest, Hungary, 8 September 1997, pages127-138, 1997.