]> rtime.felk.cvut.cz Git - hubacji1/iamcar.git/blob - README.md
Remove path optimization from next run
[hubacji1/iamcar.git] / README.md
1 # I am car
2 Autonomous car architecture. For now, this project is base for RRT-based
3 planners testing.
4
5 This project is developed under [GNU GPLv3 license][]. For brief project
6 history see [changelog][].
7
8 [GNU GPLv3 license]: ./LICENSE
9 [changelog]: ./CHANGELOG.md
10
11 # Build
12 [CMake][] is used for the project build.
13
14 ##  Prerequisities
15 - `cmake`
16 - `libjsoncpp-dev`
17 - `libomp-dev`
18 - `libsdl2-dev`
19 - `freeglut3-dev`
20
21 ## Commands
22 For building the project run:
23 ```bash
24 mkdir build
25 cd build
26 cmake ../
27 make
28 ```
29
30 Or the build script may be used:
31 ```bash
32 bash build.sh
33 ```
34
35 ## Compile Macros
36 Macros that affects output binary may be used with the cmake commands as
37 follows:
38 ```bash
39 cmake -DPLANNER=LaValle1998 ../
40 make
41 ```
42
43 The list of available macros with values:
44 - `PLANNER`
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.
53
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.
59
60 To disable *OpenMP*, add `-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE` to `cmake`
61 command or to `build.sh` script.
62
63 [CMake]: https://cmake.org/
64
65 # Run
66 The scenarios may be run by:
67 ```bash
68 ./build/go_car_go < lpar.json > traj.json
69 ```
70
71 or by:
72 ```bash
73 ./bin/T2 < lpar.json > traj.json
74 ```
75
76 and plot with:
77 ```bash
78 python3 plot.py lpar.json traj.json
79 ```
80
81 # Scenarios
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.
84
85 ## Slots technical info
86 - Street width min.: 2.75 (sometimes 2.5m).
87
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
92
93 ### Large cars (size 02)
94 - Perpendicular: 2.4 x 5.30m
95 - Parallel: 2.2 x 6.5m
96
97 ## Examples
98 - [Parallel parking example](./lpar.json)
99 - [Perpendicular parking example](./lper.json)
100
101 # Tests
102 It is possible to run automated tests for multiple planners on one scenario.
103 For this purpose there is `test.sh` script.