X-Git-Url: http://rtime.felk.cvut.cz/gitweb/hubacji1/rrts.git/blobdiff_plain/2d5398fbcf444aea37745c539f09edb58b1305bf..HEAD:/README.md diff --git a/README.md b/README.md index 3eca60e..c223498 100644 --- a/README.md +++ b/README.md @@ -1,76 +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: -- `rrtext10.cc`: "cost" RS-B -- Reeds & Shepp (build), B-Spline paper (search) -- `rrtext9.cc`: "nn" 3D grid for nodes storage, -- `rrtext8.cc`: "nn" 3D [K-d tree][] for nodes storage, -- `rrtext7.cc`: "nn" 2D [K-d tree][] for nodes storage, -- `rrtext6.cc`: "cost" RS-RS -- Reeds & Shepp (build), Reeds & Shepp (search), -- `rrtext5.cc`: "cost" RS-E -- Reeds & Shepp (build), Euclidean (search), -- `rrtext4.cc`: "nn" 2D grid for nodes storage, -- `rrtext3.cc`: "path optimization" Dijkstra algorithm, -- `rrtext2.cc`: "collision" [cute c2][] for collision detection, -- `rrtext1.cc`: "cost" RS-H -- Reeds & Shepp (build), Matej's heur. (search). - -[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`: RS-H, cute. -- `RRTCE2`: cute, RS-E. -- `RRTCE3`: cute, RS-RS. -- `RRTCE4`: RS-H, cute, 2D grid. -- `RRTCE5`: cute, 2D grid, RS-E. -- `RRTCE6`: cute, 2D grid, RS-RS. -- `RRTCE7`: cute, Dijkstra, 2D grid, RS-E. -- `RRTCE8`: cute, Dijkstra, 2D grid, RS-RS. -- `RRTCE9`: cute, Dijkstra, 2D grid, RS-H. -- `RRTCE10`: cute, Dijkstra, 2D tree, RS-RS. -- `RRTCE11`: cute, Dijkstra, 2D tree, RS-E. -- `RRTCE12`: cute, Dijkstra, 2D tree, RS-H. -- `RRTCE13`: cute, Dijkstra, 3D tree, RS-RS. -- `RRTCE14`: cute, Dijkstra, 3D tree, RS-H. -- `RRTCE15`: cute, Dijkstra, 3D grid, RS-RS. -- `RRTCE16`: cute, Dijkstra, 3D grid, 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. @@ -79,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.