Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wallfollowing improvements #129

Open
wants to merge 91 commits into
base: development
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
49f327d
initial commit
Pietus3 Jun 25, 2020
b61c9f6
State before Development Merge
Pietus3 Jul 9, 2020
da9e96b
Merge branch 'development' of https://github.com/arpg-sophisticated/a…
Pietus3 Jul 9, 2020
b731ef7
Merge remote-tracking branch 'origin/wallfollowing-improvements' into…
Pietus3 Jul 9, 2020
a3185cc
State after merge
Pietus3 Jul 9, 2020
f29c76d
add bare cpp implementation of log_stats node
Rothu Jul 15, 2020
a4fb384
add more subscriber and publisher
Rothu Jul 15, 2020
dfbc55b
Merge
Pietus3 Jul 20, 2020
5f5fa98
Erweiterung des Wall Publishings
Pietus3 Jul 20, 2020
ccab881
launch Files erweiter um avoid static code
Pietus3 Jul 20, 2020
ace3c44
added results config file
Jul 20, 2020
ca6b3cc
fix curve entry detection
Rothu Jul 20, 2020
632c873
closes #122 - implemented
Jul 21, 2020
7788abe
closes #122 - implemented
Jul 21, 2020
325a648
Merge branch 'development' into log-stats
jhbruhn Jul 21, 2020
7fe1ea2
Merge branch 'wallfollowing-improvements' into log-stats
jhbruhn Jul 21, 2020
0a7a49f
Update boxing.h
jhbruhn Jul 21, 2020
d1f5f2b
Merge pull request #127 from arpg-sophisticated/log-stats
Jul 22, 2020
3cc77ef
enable analysis tool
jhbruhn Jul 22, 2020
27d7b11
Merge branch 'wallfollowing-improvements' of github.com:arpg-sophisti…
jhbruhn Jul 22, 2020
7fea5a1
update
Jul 22, 2020
ce194bc
Merge branch 'wallfollowing-improvements' of github.com:arpg-sophisti…
Jul 22, 2020
ffcaccf
results today
Jul 22, 2020
dd509af
column headers in latex data file to lowercase
Jul 22, 2020
28c8351
add braking safety margin to dynamic_reconfigure
Rothu Jul 27, 2020
1d67d70
fix braking safety margin to dynamic_reconfigure
Rothu Jul 27, 2020
0ab5b96
set dynamic_friction to 0.6
Rothu Jul 27, 2020
8828e41
adjust wallfollowing.cfg to more stable values
Rothu Jul 27, 2020
090ca87
update 20-07-27
Jul 27, 2020
d19a572
Merge branch 'wallfollowing-improvements' of github.com:arpg-sophisti…
Jul 27, 2020
9369e77
fix convertRpmToSpeed
Rothu Jul 30, 2020
7aa71b4
add physical properties to dynamic reconfigure
Rothu Aug 2, 2020
0a52c7e
improve trajectory before curve entries
Rothu Aug 2, 2020
f795c0c
crop pointcloud for wall detection step
Rothu Aug 4, 2020
69dbf11
imrove steering before curve entries
Rothu Aug 4, 2020
60766e1
Merge branch 'development' of https://github.com/arpg-sophisticated/a…
Pietus3 Aug 5, 2020
9627bf2
add small outlier detection
Aug 5, 2020
587c840
add correction factor for speed
Rothu Aug 10, 2020
41e8032
add dynamic reconfigure to radius porportion factor
Rothu Aug 10, 2020
b2f5ff0
merge
Rothu Aug 10, 2020
a51abbe
add explanation for speed correction factor
Rothu Aug 10, 2020
e37ee7c
add MAX_SENSIBLE_TRACK_WIDTH to avoid extreme outliers
Rothu Aug 10, 2020
c545eae
set wallfollowing parameter to stable default values
Rothu Aug 10, 2020
ed3f64a
add simple obstacle avoidance
Rothu Aug 11, 2020
6421af1
remove duplicates of parameter server getters
Rothu Aug 11, 2020
b311443
set friction to 0.5
Rothu Aug 11, 2020
a948b24
remove unnecessary functions
Rothu Aug 11, 2020
b5a66de
optimize code
Rothu Aug 11, 2020
879ab29
Fixed KoordinatenSystem in WallDetection
Pietus3 Aug 11, 2020
139f630
Added RQT directory
Aug 12, 2020
1d9e012
changed default wf5 launchfile
Aug 12, 2020
4664381
Merge branch 'wallfollowing-improvements' into feature/avoid_static_o…
Aug 12, 2020
fd9c4c5
flip right and left wall
Aug 12, 2020
0096b1e
improve obstacle avoidance
Aug 12, 2020
61e0011
fix on #128 - added offset to avoid extreme values
Aug 14, 2020
16cde04
fix on #128 - added offset to avoid extreme values
Aug 14, 2020
864e07c
Merge branch 'feature/avoid_static_obstacles' into wallfollowing-impr…
Aug 17, 2020
0472539
Paths changed
Aug 17, 2020
7a4d85f
uploaded video as gif
Aug 17, 2020
63f382a
Add 0.9 factor to wallfollowing2 to fix simulation performance
jhbruhn Aug 17, 2020
13ead6c
bMerge branch 'wallfollowing-improvements' of github.com:arpg-sophist…
jhbruhn Aug 17, 2020
615ab69
added
Aug 17, 2020
63b5687
Merge branch 'wallfollowing-improvements' of https://github.com/arpg-…
Aug 17, 2020
2d074aa
Add 3d printed parts
jhbruhn Aug 18, 2020
c562f51
Merge branch 'development' into wallfollowing-improvements
jhbruhn Aug 19, 2020
1c39029
add small outlier detection
Aug 19, 2020
a552496
increase braking
Aug 19, 2020
3f9427a
activate debug message
Aug 19, 2020
7ac98cd
deactivate obstacle avoidance node
Aug 19, 2020
de86b3e
Merge branch 'wallfollowing-improvements' of https://github.com/arpg-…
Aug 19, 2020
65d7093
Launch dynamic physical properties node in reinforcement learning script
jhbruhn Aug 19, 2020
8f85be4
Merge branch 'wallfollowing-improvements' of github.com:arpg-sophisti…
jhbruhn Aug 19, 2020
7a314ed
Add lap timer to q learning
jhbruhn Aug 19, 2020
bf1547f
add sanity check to wf5
Rothu Aug 19, 2020
6e4c1e1
Merge branch 'wallfollowing-improvements' of https://github.com/arpg-…
Rothu Aug 19, 2020
7168e14
Fix formatting
jhbruhn Aug 19, 2020
83c85a6
Merge branch 'wallfollowing-improvements' of github.com:arpg-sophisti…
jhbruhn Aug 19, 2020
21f0dee
added stats-nodes to q_learning-launch file
MaLangenk Aug 19, 2020
b83e388
Merge branch 'wallfollowing-improvements' of https://github.com/arpg-…
MaLangenk Aug 19, 2020
038451d
minor fixes
Aug 19, 2020
ae0357e
Merge branch 'wallfollowing-improvements' of github.com:arpg-sophisti…
Aug 19, 2020
fb659c1
reduce max view distance for outlier detection
Aug 19, 2020
f7605d2
Merge branch 'wallfollowing-improvements' of https://github.com/arpg-…
Aug 19, 2020
a7caa65
removed steering angle, added some log plots, minor fixes
Aug 19, 2020
41b7867
Merge branch 'wallfollowing-improvements' of github.com:arpg-sophisti…
Aug 19, 2020
9d63590
add topic_drive_param to physical launch file
MaLangenk Aug 19, 2020
0610204
Merge branch 'wallfollowing-improvements' of https://github.com/arpg-…
MaLangenk Aug 19, 2020
890089a
minor fixes
Aug 19, 2020
8b2868f
Merge branch 'wallfollowing-improvements' of github.com:arpg-sophisti…
Aug 19, 2020
da7de0d
added results
Aug 23, 2020
7ad74b8
Updated
Aug 23, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ PROJECT_BRIEF = "f1tenth Project Group of Technical University Dortmund
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.

PROJECT_LOGO = $(TRAVIS_BUILD_DIR)/doc/logo.png
PROJECT_LOGO = doc/logo.png
#PROJECT_LOGO = $(TRAVIS_BUILD_DIR)/doc/logo.png

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
Expand Down Expand Up @@ -790,7 +791,8 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.

INPUT = $(TRAVIS_BUILD_DIR)/docs/master
#INPUT = $(TRAVIS_BUILD_DIR)/docs/master
INPUT = ros_ws

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down
Binary file modified doc/ARPG.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
158 changes: 158 additions & 0 deletions doc/results/report/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Final report data

This directory contains the data used for the final report:
+ laptimes-gazebo-wf2.txt - Lap times of ten laps running Wallfollowing 2 in Gazebo
+ laptimes-gazebo-wf5.txt - Lap times of ten laps running Wallfollowing 5 in Gazebo
+ laptimes-gazebo-ql.txt - Lap times of ten laps running QL in Gazebo
* latex-data-QL-gazebo-1000.dat - This test was done after some changes on speed calculation, please loot at the latex template for simulation QL to get the right correction factors
* latex-data-WF2-1000.dat - This data was recorded during a simulation based test with Wallfollowing 2
* latex-data-WF5-1000.dat - This data was recorded during a simulation based test with Wallfollowing 5
* latex-data-WF2-500-real.dat - This data was recorded during a real racing test with Wallfollowing 2
* latex-data-WF5-500-real.dat - This data was recorded during a real racing test with Wallfollowing 5

## Latex/PGFPlot Code

### Simulation WF2/WF5

```
\begin{figure}
\label{fig:results-sim-wf-plot}
\center
\begin{tikzpicture}
\begin{axis}[width=1\textwidth, height=0.3\paperheight, scaled ticks=true, tick label style={/pgf/number format/fixed, font=\footnotesize},
%axis lines=middle,
%ymode=log,
ymin=0,
xmin=0,
xmax=250,
xlabel=\footnotesize $m$, ylabel=\footnotesize $\frac{m}{s}$,
xtick distance=25,
]

\addplot[smooth,red,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y=speed,x=distance]{data/latex-data-WF2-1000.dat};
\addplot[smooth,blue,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y=speed,x=distance]{data/latex-data-WF5-1000.dat};
\addlegendentry{\footnotesize WF2 $v_{cur}(d)$}
\addlegendentry{\footnotesize WF5 $v_{cur}(d)$}
\end{axis}
\end{tikzpicture}
\caption{Vergleich Geschwindigkeit $v$ nach gefahrener Distanz $d$, geglättet über 5 Werte (Simulation, Softwarestand v0.42g1)}
\end{figure}
```

### Simulation QL
```
\begin{figure}
\label{fig:results_ql}
\center
\begin{tikzpicture}
\begin{axis}[width=1\textwidth, height=0.3\paperheight, scaled ticks=true, tick label style={/pgf/number format/fixed, font=\footnotesize},
%axis lines=middle,
%ymode=log,
ymin=0,
xmin=0,
xmax=250,
xlabel=\footnotesize $m$, ylabel=\footnotesize $\frac{m}{s}$,
xtick distance=25,
]
\addplot[smooth,red,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y=speed,x=distance]{data/latex-data-WF2-1000.dat};
\addplot[smooth,blue,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y=speed,x=distance]{data/latex-data-WF5-1000.dat};
\addplot[smooth,green,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y expr=\thisrow{speed}*1.1111,x expr=(\thisrow{distance}*1.1111)+2.778]{data/latex-data-QL-gazebo-1000.dat};
\addlegendentry{\footnotesize WF2 $v_{cur}(d)$}
\addlegendentry{\footnotesize WF5 $v_{cur}(d)$}
\addlegendentry{\footnotesize QL $v_{cur}(d)$}
\end{axis}
\end{tikzpicture}
\caption{Vergleich Geschwindigkeit $v$ nach gefahrener Distanz $d$, geglättet über 5 Werte (Simulation, Softwarestand v0.42q1)}
\end{figure}
```

### Racing Test WF2/WF5
```
\begin{figure}
\label{fig:results_wf2_plot}
\center
\begin{tikzpicture}
\begin{axis}[width=1\textwidth, height=0.3\paperheight, scaled ticks=true, tick label style={/pgf/number format/fixed, font=\footnotesize},
%axis lines=middle,
%ymode=log,
%ymin=0,
xmin=0,
xmax=75,
xlabel=\footnotesize $m$, ylabel=\footnotesize $\frac{m}{s}$,
xtick distance=10,
]

\addplot[smooth,red,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y expr=\thisrow{speed}*0.9,x=distance]{data/latex-data-WF2-500-real.dat};
\addlegendentry{\footnotesize WF2 $v_{cur}(d)$}
\end{axis}
\end{tikzpicture}
\caption{WF2: Geschwindigkeit $v$ nach gefahrener Distanz $d$, geglättet über 5 Werte (Softwarestand v0.42r1)}
\end{figure}

\begin{figure}
\label{fig:results_wf5_plot}
\center
\begin{tikzpicture}
\begin{axis}[width=1\textwidth, height=0.3\paperheight, scaled ticks=true, tick label style={/pgf/number format/fixed, font=\footnotesize},
%axis lines=middle,
%ymode=log,
%ymin=0,
xmin=0,
xmax=90,
xlabel=\footnotesize $m$, ylabel=\footnotesize $\frac{m}{s}$,
xtick distance=10,
]

\addplot[smooth,red,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y=speed,x=distance]{data/latex-data-WF5-500-real.dat};
\addlegendentry{\footnotesize WF5 $v_{cur}(d)$}
\end{axis}
\end{tikzpicture}
\caption{WF5: Geschwindigkeit $v$ nach gefahrener Distanz $d$, geglättet über 5 Werte (Softwarestand v0.42r2)}
\end{figure}

\begin{figure}
\label{fig:results_wf2_plot_vmax}
\center
\begin{tikzpicture}
\begin{axis}[width=1\textwidth, height=0.3\paperheight, scaled ticks=true, tick label style={/pgf/number format/fixed, font=\footnotesize},
%axis lines=middle,
ymode=log,
%ymin=0,
xmin=0,
xmax=75,
xlabel=\footnotesize $m$, ylabel=\footnotesize $\frac{m}{s}$,
xtick distance=10,
]

\addplot[smooth,red,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y expr=\thisrow{speed}*0.9,x=distance]{data/latex-data-WF2-500-real.dat};
\addplot[smooth,blue,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y=maxspeed,x=distance]{data/latex-data-WF2-500-real.dat};
\addlegendentry{\footnotesize WF2 $v_{cur}(d)$}
\addlegendentry{\footnotesize WF2 $v_{max}(d)$}
\end{axis}
\end{tikzpicture}
\caption{WF2: Geschwindigkeiten $v_{cur} und v_{max}$ nach gefahrener Distanz $d$, geglättet über 5 Werte (Softwarestand v0.42r1)}
\end{figure}

\begin{figure}
\label{fig:results_wf5_plot_vmax}
\center
\begin{tikzpicture}
\begin{axis}[width=1\textwidth, height=0.3\paperheight, scaled ticks=true, tick label style={/pgf/number format/fixed, font=\footnotesize},
%axis lines=middle,
ymode=log,
%ymin=0,
xmin=0,
xmax=90,
xlabel=\footnotesize $m$, ylabel=\footnotesize $\frac{m}{s}$,
xtick distance=10,
]

\addplot[smooth,red,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y=speed,x=distance]{data/latex-data-WF5-500-real.dat};
\addplot[smooth,blue,solid,each nth point=5, filter discard warning=false, unbounded coords=discard] table [y=maxspeed,x=distance]{data/latex-data-WF5-500-real.dat};
\addlegendentry{\footnotesize WF5 $v_{cur}(d)$}
\addlegendentry{\footnotesize WF5 $v_{max}(d)$}
\end{axis}
\end{tikzpicture}
\caption{WF5: Geschwindigkeiten $v_{cur} und v_{max}$ nach gefahrener Distanz $d$, geglättet über 5 Werte (Softwarestand v0.42r2)}
\end{figure}
```
Loading