2 Autonomous car architecture. For now, this project is base for RRT-based
5 This project is developed under [GNU GPLv3 license][]. For brief project
6 history see [changelog][].
8 [GNU GPLv3 license]: ./LICENSE
9 [changelog]: ./CHANGELOG.md
12 [CMake][] is used for the project build.
22 For building the project run:
30 Or the build script may be used:
36 Macros that affects output binary may be used with the cmake commands as
39 cmake -DPLANNER=LaValle1998 ../
43 The list of available macros with values:
45 - `LaValle198` - RRT framework.
46 - `Kuwata2008` - RRT with changing cost and steering to goal.
47 - `Karaman2011` - RRT* framework.
48 - `T1` - testing planner.
49 - `T2` - testing planner based on RRT*.
50 - `T3` - testing planner, update T2 to bidirectional.
51 - `Klamm2015` - RRT*-Connect planner.
52 - `TMAX` - Specify the upper time bound in seconds.
54 Implemented Steering procedures:
55 - `st1` - Steer directly to goal, no constraints.
56 - `st2` - Steer with maximum turning radius and direction in mind.
57 - `st3` - Reeds and Shepp steer procedure.
58 - `st4` - Very basic closed-loop simulator.
60 To disable *OpenMP*, add `-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE` to `cmake`
61 command or to `build.sh` script.
63 [CMake]: https://cmake.org/
66 The scenarios may be run by:
68 ./build/go_car_go < lpar.json > traj.json
73 ./bin/T2 < lpar.json > traj.json
78 python3 plot.py lpar.json traj.json
82 The `go_car_go` program expects json formatted on std input. The output is json
83 formatted to std output. Statistics are written to error output.
85 ## Slots technical info
86 - Street width min.: 2.75 (sometimes 2.5m).
88 ### Small cars (size 01)
89 - Norm: `ČSN 73 6056 s účinností od 1.8. 1988`.
90 - Perpendicular: 2.25 x 4.5m
91 - Parallel: 2.0 x 5,5m
93 ### Large cars (size 02)
94 - Perpendicular: 2.4 x 5.30m
95 - Parallel: 2.2 x 6.5m
98 - [Parallel parking example](./lpar.json)
99 - [Perpendicular parking example](./lper.json)
102 It is possible to run automated tests for multiple planners on one scenario.
103 For this purpose there is `test.sh` script.