Skip to main content
Log in

Planar max flow maps and determination of lanes with clearance

  • Published:
Autonomous Robots Aims and scope Submit manuscript

Abstract

One main challenge in multi-agent navigation is to generate trajectories minimizing bottlenecks in environments cluttered with obstacles. In this paper we approach this problem globally by taking into account the maximum flow capacity of a given polygonal environment. Given the difficulty in solving the continuous maximum flow of a planar environment, we present in this paper a GPU-based methodology which leads to practical methods for computing maximum flow maps in arbitrary two-dimensional polygonal domains. Once a flow map representation is obtained, lanes can be extracted and optimized in length while keeping constant the flow capacity achieved by the system of trajectories. This work extends our previous work on max flow maps by presenting a clearance-based flow generation method which takes into account the size of the agents at the flow generation phase. In this way we ensure that the maximum possible number of lanes with the needed clearance is always obtained, a property that was found to not be always obtained with our previous method. As a result we are able to generate trajectories of maximum flow from source to sink edges across a generic set of polygonal obstacles, enabling the deployment of large numbers of agents utilizing the maximum flow capacity of a continuous description of the environment and eliminating bottlenecks.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

References

  • Barnett, A., Shum, H. P. H., & Komura, T. (2016). Coordinated crowd simulation with topological scene analysis. Computer Graphics Forum, 35(6), 120–132.

    Article  Google Scholar 

  • Berczi, K., & Kobayashi, Y. (2017). The directed disjoint shortest paths problem. In K. Pruhs, & C. Sohler (Eds.), 25th annual European symposium on algorithms (ESA 2017), Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, Leibniz international proceedings in informatics (LIPIcs) (Vol. 87, pp. 13:1–13:13).

  • Camporesi, C., & Kallmann, M. (2014). Computing shortest path maps with GPU shaders. In Proceedings of the seventh international conference on motion in games, MIG ’14 (pp. 97–102). New York, NY, USA: ACM.

  • Dobson, A., Solovey, K., Shome, R., Halperin, D., & Bekris, K. E. (2017). Scalable asymptotically-optimal multi-robot motion planning. In 2017 international symposium on multi-robot and multi-agent systems (MRS) (pp 120–127), Los Angeles, CA, USA.

  • Farias, R., & Kallmann, M. (2018). GPU-based max flow maps in the plane. In Proceedings of robotics: Science and systems (RSS).

  • Farias, R., & Kallmann, M. (2019). Optimal path maps on the GPU. IEEE Transactions on Visualization and Computer Graphics,. https://doi.org/10.1109/TVCG.2019.2904271.

    Article  Google Scholar 

  • Gewali, L., Meng, A., Mitchell, J. S., & Ntafos, S. (1988). Path planning in \(0/1/\infty \) weighted regions with applications. In Proceedings of the fourth annual symposium on computational geometry, SCG ’88 (pp. 266–278). New York, NY, USA: ACM.

  • Karamouzas, I., Geraerts, R., & van der Stappen, A. F. (2012). Space-time group motion planning. In Workshop on the algorithmic foundations of robotics.

  • Ma, H., & Koenig, S. (2016). Optimal target assignment and path finding for teams of agents. In Proceedings of the 2016 international conference on autonomous agents and multiagent systems, international foundation for autonomous agents and multiagent systems, AAMAS ’16 (pp. 1144–1152), Richland, SC.

  • Ma, H., & Koenig, S. (2017). AI buzzwords explained: multi-agent path finding (MAPF). AI Matters, 3(3), 15–19.

    Article  Google Scholar 

  • Mitchell, J. S. B. (1988). On maximum flows in polyhedral domains. In Proceedings of the fourth annual symposium on computational geometry, SCG ’88 (pp. 341–351). New York, NY, USA: ACM.

  • Mitchell, J. S. B. (1990). On maximum flows in polyhedral domains. Journal of Computer and System Sciences, 40, 88–123.

    Article  MathSciNet  Google Scholar 

  • Mitchell, J. S. B. (1991). A new algorithm for shortest paths among obstacles in the plane. Annals of Mathematics and Artificial Intelligence, 3(1), 83–105.

    Article  MathSciNet  Google Scholar 

  • Sharon, G., Stern, R., Felner, A., & Sturtevant, N. R. (2015). Conflict-based search for optimal multi-agent pathfinding. Artificial Intelligence, 219(C), 40–66.

    Article  MathSciNet  Google Scholar 

  • Solovey, K., Yu, J., Zamir, O., & Halperin, D. (2015). Motion planning for unlabeled discs with optimality guarantees. In Robotics: Science and systems.

  • Strang, G. (1983). Maximal flow through a domain. Mathematical Programming, 26(2), 123–143.

    Article  MathSciNet  Google Scholar 

  • Surynek, P. (2010). An optimization variant of multi-robot path planning is intractable. In AAAI.

  • Svancara, J., & Surynek, P. (2017). New flow-based heuristic for search algorithms solving multi-agent path finding. In ICAART (2) (pp. 451–458). SciTePress.

  • Van Den Berg, J., Guy, S., Lin, M., & Manocha, D. (2011). Reciprocal n-body collision avoidance. In Robotics research—The 14th international symposium ISRR, no. STAR in Springer tracts in advanced robotics (pp. 3–19).

  • Yu, J., & LaValle, S. M. (2013a). Multi-agent path planning and network flow. Algorithmic foundations of robotics X (pp. 157–173). Berlin: Springer.

    Chapter  Google Scholar 

  • Yu, J., LaValle, S. M. (2013b). Planning optimal paths for multiple robots on graphs. In Proceedings of the IEEE international conference on robotics and automation (ICRA) (pp. 3612–3617).

  • Yu, J., & LaValle, S. M. (2013c). Structure and intractability of optimal multi-robot path planning on graphs. In Proceedings of the twenty-seventh AAAI conference on artificial intelligence, AAAI’13 (pp. 1443–1449). AAAI Press.

Download references

Acknowledgements

This research was sponsored by the Army Research Office and was accomplished under Grant Number W911NF-17-1-0463. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the Army Research Office or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation herein. The authors also thank Prof. Joseph S. B. Mitchell for several discussions on the topic of this paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Renato Farias.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This is one of the several papers published in Autonomous Robots comprising the Special Issue on Robotics: Science and Systems.

Electronic supplementary material

Below is the link to the electronic supplementary material.

Supplementary material 1 (TCP 1 KB)

Appendices

Appendix

Computation of SPMs based on GPU rasterization

This appendix describes the method employed in this work for computing SPMs. The full description of the method is available in our previous work (Farias and Kallmann 2019), which also includes several extensions. An earlier version of the approach, limited to point sources, was introduced by Camporesi and Kallmann (2014).

1.1 SPMs for point sources

We first describe the approach considering only point sources. The approach considers the input environment to be described in plane \(z=0\) of a 3D space, and then rasterizes “clipped cones” with apices placed at specific depths below the source points and obstacle vertices, relative to the \(z=0\) plane, such that the final rendered result from an orthographic top-down view is the desired SPM. Each apex’s z coordinate is equal to its distance to the closest source along the shortest path (its geodesic distance). When a cone is rasterized, meaning it is converted to the pixels which it occupies in a GPU buffer (placed at \(z=0\) plane), the depth values of the affected pixels increase proportionally to their Euclidean distances to the apex, and will thus contain the geodesic distances to the closest point source. Furthermore, in cases of overlap, the GPU’s depth test will only allow the smallest value to remain in the frame buffer. Figure 17 illustrates the steps of the process and the concept of clipped cones.

Fig. 17
figure 17

The steps of the SPM construction process for an environment with one source point and an obstacle with four vertices (Farias and Kallmann 2019). The cones are “clipped” by the visibility of the point that generated it. The top row shows the GPU buffer at each step. The bottom row is a 3D view of the underlying cones for illustration purposes

An array containing points with the xy coordinates of the \(n_s\) source points and n obstacle vertices is stored in the GPU. These points are referred to as “generator points”, or simply “generators.” A generator point will be a parent point to the previous vertex along a shortest path reaching the generator.

Fig. 18
figure 18

The circled points on the segment sources are the critical points, which are projections of obstacle vertices

The GPU framebuffer stores the following information for each pixel: (1) the red and green channels store the xy coordinates of the pixel’s current parent point in \({\mathcal {P}}\); (2) the blue channel stores the current known shortest path distance to the closest source; (3) the alpha channel is used as a flag to determine whether the pixel has yet to be rasterized by a generator. When the buffer is visualized, we zero out the blue channel so that we can visualize the xy coordinates of each region. This representation encodes all the information described in Definition 3.

The SPM generation process consists of choosing a generator from the array and rasterizing its clipped cone. Each generator is processed once.

First we determine which generator will rasterize cone next by choosing the one with the smallest distance to a source, among the ones that can become generators. Source points will be the first ones to be picked because their distance to sources is 0. Points which have already been chosen before are not considered, and a non-source point cannot become a generator if it has not been reached by a previous cone because its correct distance to source is not yet known.

Second, we rasterize the cone. The cone apex is placed under the generator at a depth equal to the geodesic distance of the generator. When the cone is rasterized, only the parts of the scene which have direct line-of-sight to the generator are to be affected, and therefore the cone is “clipped” against the region visible from the generator. This visibility determination is part of the construction of the clipped cones, and is done before the actual rasterization by determining the visible set in a dedicated buffer, and using it for the clipping. The pixels that are affected by the rasterization will thus have direct line-of-sight to the generator point, so they can calculate their Euclidean distance to it and add it to the generator’s geodesic distance. If this sum is smaller than the current distance stored in the pixel (from the cone of a previous generator), then its blue channel stores the new distance and its red and green channels are updated with the generator’s coordinates, making the generator the pixel’s new parent point.

After all generators have been processed, the result in the framebuffer will represent the desired SPM.

1.2 SPMs for segment sources

There are two main modifications needed in the basic algorithm in order to consider segment sources. First, segment sources have to be decomposed in sub-segments at critical points which encode where the visibility of the scene changes with respect to the segment. The other extension is to rasterize distances that come from “elongated” cones, instead of cones, when the associated generator is a segment or sub-segment instead of just points.

Let \(\mathbf {l}_i\) be a source segment with \(n_{c_i}\)critical points, \(n_{c_i} \ge 0\). A critical point defines a point where the orthogonal projection of an obstacle edge to the segment changes to a different edge of the same obstacle. Critical points are only considered when obstacle vertices can be projected to a segment through a projection line not crossing any obstacles. See Fig. 18 for examples.

Since critical points denote points where the visibility of the scene changes with respect to the segment, we must then consider each of the sub-segments between the endpoints and the critical points independently. We then consider that \(\mathbf {l}_i\) is now composed of \(n_{c_i}+2\) points: its two endpoints plus all of the critical points along its length, if any. Each pair of adjacent points defines a sub-segment that is included in the SPM generation process as an elongated cone. The basic SPM generation algorithm then proceeds. Elongated cones emanating from segment sources may reach visible obstacle vertices, which will eventually generate new cones during the propagation process and all generated costs are correctly merged in the final SPM representation. One example SPM with a line segment source is illustrated in Fig. 3.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Farias, R., Kallmann, M. Planar max flow maps and determination of lanes with clearance. Auton Robot 44, 1323–1339 (2020). https://doi.org/10.1007/s10514-020-09917-w

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10514-020-09917-w

Keywords

Navigation