ninja -v
```
+## Dependencies
+- `libbcar`
+- `libjsoncpp-dev`
+
# RRT Extensions
There is basic RRT\* algorithm in `rrts.cc` file. To test different approaches
and upgrades to RRT, *extensions* are declared in `rrtext.h` and implemented in
`rrtextX.cc`, where `X` is the number of an extension.
## Implemented extensions
-There is a list of implemented extensions and what they include:
-- `rrtext6.cc`: Reeds and Shepp for both -- building and search costs,
-- `rrtext5.cc`: different cost for building (Reeds and Shepp) and searching
- (Euclidean distance),
-- `rrtext4.cc`: store RRT nodes to grid,
-- `rrtext3.cc`: Dijkstra algorithm for path optimization,
-- `rrtext2.cc`: [cute c2][] for collision detection,
-- `rrtext1.cc`: different cost for building (Reeds and Shepp) and searching
- (Matej's heuristics).
+There is a list of implemented extensions and what they include. The extension
+number accomply to file `src/rrtextN.cc` where `N` is:
+
+1. "cost" RS-M -- Reeds & Shepp (build), Matej's heur. (search).
+2. "collision" [cute c2][] for collision detection,
+3. "path optimization" Dijkstra algorithm,
+4. "nn" 2D grid for nodes storage,
+5. "cost" RS-E -- Reeds & Shepp (build), Euclidean (search),
+6. "cost" RS-RS -- Reeds & Shepp (build), Reeds & Shepp (search),
+7. "nn" 2D [K-d tree][] for nodes storage,
+8. "nn" 3D [K-d tree][] for nodes storage,
+9. "nn" 3D grid for nodes storage,
+10. "cost" RS-H -- Reeds & Shepp (build), B-Spline paper (search)
+11. "goal zone" gz -- Use drivable of libbcar to check if goal found.
+12. "steer" -- Use random control input for `steer1`, use R&S for `steer2`.
+13. "path optimization" -- Dijkstra algorithm, goal zone for interesting nodes.
[cute c2]: https://github.com/RandyGaul/cute_headers/blob/master/cute_c2.h
+[K-d tree]: https://en.wikipedia.org/wiki/K-d_tree
## Compound extensions
-There is a list of classes with reference to extensions used:
-- `RRTCE1`: 1, 2.
+There is a list of classes with reference to extensions used. The extensio
+number accomply to class `RRTCEn` where `n` is:
+
+1. cute, gz, Dijkstra, RS-M.
+2. cute, gz, Dijkstra, RS-E.
+3. cute, gz, Dijkstra, RS-RS.
+4. RS-M, cute, 2D grid.
+5. cute, 2D grid, RS-E.
+6. cute, 2D grid, RS-RS.
+7. cute, Dijkstra, 2D grid, RS-E.
+8. cute, Dijkstra, 2D grid, RS-RS.
+9. cute, Dijkstra, 2D grid, RS-M.
+10. cute, Dijkstra, 2D tree, RS-RS.
+11. cute, Dijkstra, 2D tree, RS-E.
+12. cute, Dijkstra, 2D tree, RS-M.
+13. cute, Dijkstra, 3D tree, RS-RS.
+14. cute, Dijkstra, 3D tree, RS-M.
+15. cute, Dijkstra, 3D grid, RS-RS.
+16. cute, Dijkstra, 3D grid, RS-M.
+17. cute, gz, Dijkstra, RS-H.
+
+18. cute, gz, Dijkstra, 2D grid, RS-RS
+19. cute, gz, Dijkstra, 2D grid, RS-E
+20. cute, gz, Dijkstra, 2D grid, RS-M
+21. cute, gz, Dijkstra, 2D grid, RS-H
+
+22. cute, gz, Dijkstra, 2D tree, RS-RS
+23. cute, gz, Dijkstra, 2D tree, RS-E
+24. cute, gz, Dijkstra, 2D tree, RS-M
+25. cute, gz, Dijkstra, 2D tree, RS-H
+
+26. cute, gz, Dijkstra, 3D grid, RS-RS
+27. cute, gz, Dijkstra, 3D grid, RS-E
+28. cute, gz, Dijkstra, 3D grid, RS-M
+29. cute, gz, Dijkstra, 3D grid, RS-H
+
+30. cute, gz, Dijkstra, 3D tree, RS-RS
+31. cute, gz, Dijkstra, 3D tree, RS-E
+32. cute, gz, Dijkstra, 3D tree, RS-M
+33. cute, gz, Dijkstra, 3D tree, RS-H
+
+34. cute, gz, Dijkstra, 3D tree, RS-H, diff. steer
# Contribute
Use [OneFlow][3] branching model and keep the [changelog][4].