4
A study on Visibility Graphs Kadir Firat Uyanik KOVAN Research Lab. Dept. of Computer Eng. Middle East Technical Univ. Ankara, Turkey [email protected] Abstract— In my previous path planning studies (tangent bug algorithm(tba), and artificial potential fields(apf)), local and global information about the environment is used, where in the former obstacles in the environment are not specifically modeled but sensed via range sensors, and local tangent graphs are constructed to follow until reaching the goal position. In the latter objects are modeled and being known priorly and the environment sensed globally to generate velocity vectors reactively. In this study, these two methods, in a way, are combined to construct visibility graphs which look like the local tangent graphs of the tba algorithm, but they are constructed with their globally known models like it is in the apf. Once graph is obtained, an optimal path finding algorithm, A* in this case, is executed to obtain shortest path from current position to the goal position. Moreover, triangular shaped robot is also used in this study which requires considering its body shape while constructing the graph. This is done by using a method similar to Minkovski-sum, where obstacles are dilated to treat the robot as if it is a point-robot. I. I NTRODUCTION The visibility graph[1].[2] is the simplest form of the visibility maps. In common, all visibility maps are consisted of the nodes which share an edge if two-node are within the line of sight of each other. The standard visibility graph is defined in a 2-D polygonal configuration space as it is shown in the figure 1. The nodes v i of the visibility graph include the start and goal location, as well as the all vertices of the configuration space obstacles. The graph edges e ij are straight-line segments that connect two line-of-sight nodes v i and v j satisfying the following condition: e ij 6= ∅⇔ sv j + (1 - s)v j cl(Q free )s [0, 1] (1) The shortest can be found by using an optimal path finding algorithm such as A* which is shown in the figure 2 for the case give in figure 1. However, the robot is assumed to be point-like in this case and also there are various unnecessary edges in this graph. More elegant approaches are implemented to get rid of this inadequacies which are explained in the implementation details section. Yet, there are other methods which increases the performance of this algorithm that are explained in the discussions section. Fig. 1. A screenshot from the webots simulator indicating the standard visibility graph being constructed. Orange points shows the start and the blue shows goal position, obstacles are concave and convex type. Fig. 2. A screenshot from the webots simulator indicating the shortest path in this environment. II. I MPLEMENTATION DETAILS In this section, various test scenarios are explained by focusing the possible solutions for obvious problems in standard graph construction. A. Visibility Graph Reduction The standard visibility graph has many needless edges which are not going to be used in any case. These are the ones that are going towards to the obstacles. In other

A study on visilibity graphs

Embed Size (px)

Citation preview

Page 1: A study on visilibity graphs

A study on Visibility Graphs

Kadir Firat UyanikKOVAN Research Lab.Dept. of Computer Eng.

Middle East Technical Univ.Ankara, Turkey

[email protected]

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

Page 2: A study on visilibity graphs

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

Page 3: A study on visilibity graphs

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.

Page 4: A study on visilibity graphs

[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.