|
36 | 36 |
|
37 | 37 | This pure-Python package provides classes for directed and undirected graphs: vertices |
38 | 38 | connected by edges, with edge costs and path planning. Self-loops and |
39 | | -parallel edges are permitted. |
| 39 | +parallel edges are permitted. Performance is good enough to support bundle adjustment, pose-graph SLAM and path planning over thousands of vertices. |
40 | 40 |
|
41 | 41 | Vertices can optionally be *embedded*: given a coordinate in a space of any |
42 | 42 | dimension. Edge costs are then computed from the vertex positions using a |
@@ -85,7 +85,7 @@ The data file and the complete example are in the notebook [`examples/roads.ipyn |
85 | 85 |
|
86 | 86 |  |
87 | 87 |
|
88 | | -A directed graph of the road network of central London, taken from [OpenStreetMap](https://www.openstreetmap.org/copyright), and the shortest drive between Buckingham Palace and Tower Bridge, there (solid) and back (dashed). The two routes differ in length, 5,515 m and 5,948 m, because of the one-way streets. The notebook [`examples/london.ipynb`](https://github.com/petercorke/pgraph-python/blob/main/examples/london.ipynb) builds the graph from the map data, keeps the part of it that can be driven around in, and plans with `A*`. |
| 88 | +A directed graph of the road network of central London, taken from [OpenStreetMap](https://www.openstreetmap.org/copyright), and the shortest drive between Buckingham Palace and Tower Bridge, there (solid) and back (dashed). The two routes differ in length, 5,515 m and 5,948 m, because of the one-way streets. The notebook [`examples/london.ipynb`](https://github.com/petercorke/pgraph-python/blob/main/examples/london.ipynb) builds the graph from the map data, keeps the part of it that can be driven around in, and plans with `A*`. This graph has over 4,000 vertices. |
89 | 89 |
|
90 | 90 | Map data © OpenStreetMap contributors, available under the [Open Database License](https://www.openstreetmap.org/copyright). |
91 | 91 |
|
@@ -229,9 +229,8 @@ Timings of the key operations on random geometric graphs, each vertex joined to |
229 | 229 | | path, uniform cost | ms / query | 0.0536 | 0.936 | 8.06 | 1.1 | |
230 | 230 | | path, A* | ms / query | 0.046 | 0.721 | 3.68 | 1.0 | |
231 | 231 |
|
232 | | -## MATLAB version |
| 232 | +## History |
233 | 233 |
|
234 | | -This is a re-engineered version of [PGraph.m](https://github.com/petercorke/spatialmath-matlab/blob/main/PGraph.m) which ships as part of the [Spatial Math Toolbox for MATLAB](https://github.com/petercorke/spatialmath-matlab). This class is used to support bundle adjustment, pose-graph SLAM and various planners such as PRM, RRT and Lattice. |
| 234 | +This is a re-engineered version of [PGraph.m](https://github.com/petercorke/spatialmath-matlab/blob/main/PGraph.m) which ships as part of the [Spatial Math Toolbox for MATLAB](https://github.com/petercorke/spatialmath-matlab). That class was used to support bundle adjustment, pose-graph SLAM and various planners such as PRM, RRT and Lattice. |
235 | 235 |
|
236 | | -The Python version was designed from the start to work with directed and undirected graphs, whereas directed graphs were a late addition to the MATLAB version. Semantics are similar but not identical. In particular the use of subclassing rather than references to |
237 | | -_user data_ is encouraged. |
| 236 | +The Python version was designed from the start to work with directed and undirected graphs, whereas directed graphs were a late addition to the MATLAB version. Semantics are similar but not identical. In particular the use of subclassing rather than references to _user data_ is encouraged. |
0 commit comments