Skip to content

Commit

Permalink
impl
Browse files Browse the repository at this point in the history
  • Loading branch information
Foo committed Feb 12, 2024
1 parent 179161c commit ec4bd1b
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ If you have found this library useful, please find the time to leave a **star**

This repository contains:
- [documentation](./doc/MT-RRT.pdf): pdf discussing generalities about **RRT** together with info explaining how to use this library
- [readme](./ReadMeExample.cpp): hello world example showing you how to use in a nutshell this library. Have a look also [here](#usage).
- [src](./src/): the sources containing the main features offered by this library. In particular:
- [src/core](./src/core/): containing **MT-RRT-core**, that provides background functionalities and the classical mon-thread implementation of the **RRT** algorithm.
- [src/core](./src/multi-threaded/): containing **MT-RRT-multi-threaded**, that stores the multithreaded **RRT** planners proposed by this library
- [problems](./problems/): explaining how to use this library on 3 concrete examples of planning problems, check the [ReadMe.md](./problems/ReadMe.md) of the samples. Have a look also [here](#samples).
- [src/core](./src/core/): containing **MT-RRT-core**, that provides basic functionalities and the classical mono-thread implementation of the **RRT** algorithm.
- [src/multi-threaded](./src/multi-threaded/): containing **MT-RRT-multi-threaded**, that stores the multithreaded **RRT** planners proposed by this library
- [problems](./problems/): explaining how to use this library through 3 concrete planning problems examples, check the [ReadMe.md](./problems/ReadMe.md) of the samples. Have a look also [here](#samples).

## DOCUMENTATION

Expand Down Expand Up @@ -106,14 +107,14 @@ mt_rrt::PlannerSolution solution = planner.solve(start_state, end_state, paramet

Haven't already left a **star**? Do it now ;)!

Tree classes of samples are contained in [./problems](./problems/). Such samples represent sample planning problems and aims at showing how to use **MT-RRT** in order to solve them.
The [documentation](doc/MT-RRT.pdf) extensively describes the samples and it is strongly encouraged also to have a look to [ReadMe.md](./problems/ReadMe.md) in the samples folder before dive into the samples implementations.
Three classes of samples are contained in [./problems](./problems/). These are planning problemexamples showing how to use **MT-RRT** in order to solve them.
The [documentation](doc/MT-RRT.pdf) extensively describes the samples and it is strongly encouraged also to have a look to the samples [ReadMe.md](./problems/ReadMe.md).
In particular:
- [./problems/problem-trivial](./problems/problem-trivial) represents a 2D maze problem
- [./problems/problem-planarRobots](./problems/problem-planarRobots) represents a planar robots planning problem
- [./problems/problem-navigation](./problems/problem-navigation) represents a 2D moving cart problem
- [./problems/problem-trivial](./problems/problem-trivial) represents a 2D maze problem
- [./problems/problem-planarRobots](./problems/problem-planarRobots) represents a planar robots planning problem
- [./problems/problem-navigation](./problems/problem-navigation) represents a 2D moving cart problem

Notice that these are just samples, but as long as you provide your connector and your samples, you can solve with this library ANY kind of problem!!
Notice that these are just samples, but as long as you provide a connector and a sampler suitable for your specific problem, you can solve ANY kind of problem with this library!!

## CMAKE SUPPORT

Expand Down
6 changes: 3 additions & 3 deletions problems/ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Each class of example contains the sources implementing the specific conenctor a
- **parameters**, used to describe the **mt_rrt::Parameters** to adopt with the obvious meaning of notation
- **planner** with:
- **type**, specifiying the kind of planner to use. Value for this field can be any of:
- STANDARD -> classic mono-thread RRT
- EMBARASS -> to use the EmbarassinglyParallelPlanner
- PQUERY -> to use the ParallelizedQueriesPlanner
- SHARED -> to use the SharedTreePlanner
Expand All @@ -22,11 +23,10 @@ Each class of example contains the sources implementing the specific conenctor a
- **threads**, specifying the number of threads that can be used by the planner (it is discarded in case type is STANDARD)
- **synchronization**, for specyfing the synchronization degree in case the type of planner is LINKED or MULTIAG
- **scene**, which contains problem specific information describing the problem
- an array of **cases**, which are the problems to solve for that scenario
**parameters** can be overriden at the single case level. For example you can specify to use more threads for a certain case.
- an array of **cases**, which are the problems to solve for that scenario. **parameters** can be overriden at the single case level. For example you can specify to use more threads for only one case and not the others.

How to run the samples?
- If you use **Visual Studio** in **Windows**, the samples will be extra target, one per **json**, that can be compiled and runned. After all results will be computed, they willbe saved into a special folder and later accessed by a python scipt that will render them. The python script will be automatically runned when running the sample application.
- If you use **Visual Studio** in **Windows**, the samples will be extra target, one per **json**, that can be compiled and runned. After all results will be computed, they will be saved into a special folder and later accessed by a python script that will render them. The python script will be automatically runned after results will be ready, in order to render them.
- In all other cases, samples will be created as **CMake** [custom targets](https://cmake.org/cmake/help/latest/command/add_custom_target.html), which are basically post build command that can be run from the command line. Therefore, any sample can be run in the same way any other target is build. For example using ninja in Linux, go to the build folder and run `ninja MT-RRT-problem-planarRobots-Samples-Scenario-04` (or any other sample). Results will be computed and rendered using a python script as similarly described for **Visual Studio**.

Feel free to play with the **json** files, change the parameters or the kind of planner and see the results!
Expand Down

0 comments on commit ec4bd1b

Please sign in to comment.