2 Autonomous car architecture
5 [CMake] is used for project build.
23 Macros that affects output binary may be used with the cmake commands as
26 cmake -DPLANNER=LaValle1998 ../
30 The list of available macros with values:
32 - `LaValle198` - RRT framework.
33 - `Kuwata2008` - RRT with changing cost and steering to goal.
34 - `Karaman2011` - RRT* framework.
35 - `TMAX` - Specify the upper time bound in seconds.
37 - `nn1` - Nearest neighbour basic DFS procedure.
39 - `nv1` - Near vertices basic DFS procedure.
41 - `sa1` - Basic sample procedure.
43 - `st1` - Steer directly to goal.
44 - `st2` - Steer with maximum turning radius and direction in mind.
45 - `st3` - Reeds and Shepp steer procedure.
46 - `st4` - Very basic closed-loop simulator.
48 - `co1` - Euclidean distance cost.
49 - `co2` - Reeds and Shepp distance.
51 - `co3` - Cumulative cost based on Euclidean distance.
52 - `co4` - Cumulative cost based on Reeds and Shepp distance.
54 To disable *OpenMP*, add `-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE` to `cmake`
55 command or to `build.sh` script.
57 [CMake]: https://cmake.org/
60 The scenarios may be run and plot by the following example command from root:
62 SC=lpar && cat $SC.json | ./build/go_car_go > traj.json &&
63 python plot.py $SC.json traj.json
67 The `go_car_go` program expects json formatted on std input. The output is json
68 formatted to std output.
70 - Street width min.: 2.75 (sometimes 2.5m).
72 ## Small cars (size 01)
73 - Norm: `ČSN 73 6056 s účinností od 1.8. 1988`.
74 - Perpendicular: 2.25 x 4.5m
75 - Parallel: 2.0 x 5,5m
77 ## Large cars (size 02)
78 - Perpendicular: 2.4 x 5.30m
79 - Parallel: 2.2 x 6.5m
81 ## Parallel parking example (large cars)
84 "init": [1.1, 6.5, 1.5707963267948966],
85 "goal": [-1.1, 14.37, 1.5707963267948966],
139 ## Perpendicular parking example
142 "init": [1.1, 6.5, 1.5707963267948966],
143 "goal": [-0.37, 14.2, 3.141592653589793],
198 for i in {0..19}; do $( bash test.sh )&& mv log log_$i; done
199 L=l; WHAT=par; for i in {0..19}; do mv log_${i}/*${L}${WHAT}* ${WHAT}/${L}${WHAT}_${i}.json; done
200 L=r; WHAT=par; for i in {0..19}; do mv log_${i}/*${L}${WHAT}* ${WHAT}/${L}${WHAT}_${i}.json; done
201 L=l; WHAT=per; for i in {0..19}; do mv log_${i}/*${L}${WHAT}* ${WHAT}/${L}${WHAT}_${i}.json; done
202 L=r; WHAT=per; for i in {0..19}; do mv log_${i}/*${L}${WHAT}* ${WHAT}/${L}${WHAT}_${i}.json; done
206 while ! timeout 2 ./bin/Kuwata2008st3co1 < lpar.json > traj.json; do
209 python plot.py lpar.json t.json &