X-Git-Url: http://rtime.felk.cvut.cz/gitweb/hubacji1/rrts.git/blobdiff_plain/8635f29a5b9ba29149367fc9dacaef51de0b6fa8..HEAD:/README.md diff --git a/README.md b/README.md index 9cd6e0f..c223498 100644 --- a/README.md +++ b/README.md @@ -1,102 +1,53 @@ -# RRT\* algorithm + + +Merged into http://rtime.felk.cvut.cz/gitweb/hubacji1/iamcar2.git + +Not updated anymore. + +RRT\* algorithm +=============== + RRTS is a C++ library with implementation of RRT\* planning algorithm. -# License +License +------- + The project is published under [GNU GPLv3][1]. [1]: ./LICENSE -# Build +Dependencies +------------ + +- `libbcar` (as submodule) +- `libjsoncpp-dev` + +Build +----- + To build the project run the following commands: -``` -mkdir build -cd build -cmake ../ -make -``` + + mkdir build + cd build + cmake ../ + make To build with ninja: -``` -mkdir build -cd build -cmake -DCMAKE_BUILD_TYPE=Release -G Ninja ../ -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. 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. - -[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. 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 - -# Contribute -Use [OneFlow][3] branching model and keep the [changelog][4]. + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Release -G Ninja ../ + ninja -v + +Contribute +---------- Write [great git commit messages][5]: + 1. Separate subject from body with a blank line. 2. Limit the subject line to 50 characters. 3. Capitalize the subject line. @@ -105,18 +56,31 @@ Write [great git commit messages][5]: 6. Wrap the body at 72 characters. 7. Use the body to explain what and why vs. how. -When adding feature or hotfix, use [Test-driven development (TDD)][2]: -1. Add tests to `ut` folder, add methods declaration, basic structure. -2. Run tests (just `make` in `build` folder), check that tests *fail*. -3. Implement functionality. -4. Run tests, check that tests *pass*. -5. Refactor. - -[2]: https://en.wikipedia.org/wiki/Test-driven_development -[3]: https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow -[4]: ./CHANGELOG.md [5]: https://chris.beams.io/posts/git-commit/ -# Documentation +Use [git send-email][6]: + + git config format.subjectPrefix "PATCH rrts" + git config sendemail.to "jiri.vlasak.2@cvut.cz" + +[6]: https://git-send-email.io/ + +Documentation +------------- + The documentation is generated by Doxygen, at least version `1.8.15` is needed. Just run `doxygen` in the project root directory. + + +RRT Extensions +============== + +There is basic RRT\* algorithm in `rrts.cc` file. To test different approaches +and upgrades to RRT, _extensions_ are declared in `rrtext.hh` and implemented in +`src/rrtextN.cc`, where `N` is the number of an extension. + +For more information, see the `incl/rrtext.hh` header file or the generated +documentation. + +RRT extensions are not to be used as the final planner. Instead, the _RRT* +planners_ declared in `incl/rrtsp.hh` are to be used as the final planner.