initial commit
This commit is contained in:
+315
@@ -0,0 +1,315 @@
|
||||
|
||||
# Created by https://www.toptal.com/developers/gitignore/api/latex
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=latex
|
||||
|
||||
### LaTeX ###
|
||||
## Core latex/pdflatex auxiliary files:
|
||||
*.aux
|
||||
*.lof
|
||||
*.log
|
||||
*.lot
|
||||
*.fls
|
||||
*.out
|
||||
*.toc
|
||||
*.fmt
|
||||
*.fot
|
||||
*.cb
|
||||
*.cb2
|
||||
.*.lb
|
||||
|
||||
## Intermediate documents:
|
||||
*.dvi
|
||||
*.xdv
|
||||
*-converted-to.*
|
||||
# these rules might exclude image files for figures etc.
|
||||
# *.ps
|
||||
# *.eps
|
||||
# *.pdf
|
||||
|
||||
## Generated if empty string is given at "Please type another file name for output:"
|
||||
.pdf
|
||||
|
||||
## Bibliography auxiliary files (bibtex/biblatex/biber):
|
||||
*.bbl
|
||||
*.bcf
|
||||
*.blg
|
||||
*-blx.aux
|
||||
*-blx.bib
|
||||
*.run.xml
|
||||
|
||||
## Build tool auxiliary files:
|
||||
*.fdb_latexmk
|
||||
*.synctex
|
||||
*.synctex(busy)
|
||||
*.synctex.gz
|
||||
*.synctex.gz(busy)
|
||||
*.pdfsync
|
||||
|
||||
## Build tool directories for auxiliary files
|
||||
# latexrun
|
||||
latex.out/
|
||||
|
||||
## Auxiliary and intermediate files from other packages:
|
||||
# algorithms
|
||||
*.alg
|
||||
*.loa
|
||||
|
||||
# achemso
|
||||
acs-*.bib
|
||||
|
||||
# amsthm
|
||||
*.thm
|
||||
|
||||
# beamer
|
||||
*.nav
|
||||
*.pre
|
||||
*.snm
|
||||
*.vrb
|
||||
|
||||
# changes
|
||||
*.soc
|
||||
|
||||
# comment
|
||||
*.cut
|
||||
|
||||
# cprotect
|
||||
*.cpt
|
||||
|
||||
# elsarticle (documentclass of Elsevier journals)
|
||||
*.spl
|
||||
|
||||
# endnotes
|
||||
*.ent
|
||||
|
||||
# fixme
|
||||
*.lox
|
||||
|
||||
# feynmf/feynmp
|
||||
*.mf
|
||||
*.mp
|
||||
*.t[1-9]
|
||||
*.t[1-9][0-9]
|
||||
*.tfm
|
||||
|
||||
#(r)(e)ledmac/(r)(e)ledpar
|
||||
*.end
|
||||
*.?end
|
||||
*.[1-9]
|
||||
*.[1-9][0-9]
|
||||
*.[1-9][0-9][0-9]
|
||||
*.[1-9]R
|
||||
*.[1-9][0-9]R
|
||||
*.[1-9][0-9][0-9]R
|
||||
*.eledsec[1-9]
|
||||
*.eledsec[1-9]R
|
||||
*.eledsec[1-9][0-9]
|
||||
*.eledsec[1-9][0-9]R
|
||||
*.eledsec[1-9][0-9][0-9]
|
||||
*.eledsec[1-9][0-9][0-9]R
|
||||
|
||||
# glossaries
|
||||
*.acn
|
||||
*.acr
|
||||
*.glg
|
||||
*.glo
|
||||
*.gls
|
||||
*.glsdefs
|
||||
*.lzo
|
||||
*.lzs
|
||||
*.slg
|
||||
*.slo
|
||||
*.sls
|
||||
|
||||
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
|
||||
# *.ist
|
||||
|
||||
# gnuplot
|
||||
*.gnuplot
|
||||
*.table
|
||||
|
||||
# gnuplottex
|
||||
*-gnuplottex-*
|
||||
|
||||
# gregoriotex
|
||||
*.gaux
|
||||
*.glog
|
||||
*.gtex
|
||||
|
||||
# htlatex
|
||||
*.4ct
|
||||
*.4tc
|
||||
*.idv
|
||||
*.lg
|
||||
*.trc
|
||||
*.xref
|
||||
|
||||
# hyperref
|
||||
*.brf
|
||||
|
||||
# knitr
|
||||
*-concordance.tex
|
||||
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
|
||||
# *.tikz
|
||||
*-tikzDictionary
|
||||
|
||||
# listings
|
||||
*.lol
|
||||
|
||||
# luatexja-ruby
|
||||
*.ltjruby
|
||||
|
||||
# makeidx
|
||||
*.idx
|
||||
*.ilg
|
||||
*.ind
|
||||
|
||||
# minitoc
|
||||
*.maf
|
||||
*.mlf
|
||||
*.mlt
|
||||
*.mtc[0-9]*
|
||||
*.slf[0-9]*
|
||||
*.slt[0-9]*
|
||||
*.stc[0-9]*
|
||||
|
||||
# minted
|
||||
_minted*
|
||||
*.pyg
|
||||
|
||||
# morewrites
|
||||
*.mw
|
||||
|
||||
# newpax
|
||||
*.newpax
|
||||
|
||||
# nomencl
|
||||
*.nlg
|
||||
*.nlo
|
||||
*.nls
|
||||
|
||||
# pax
|
||||
*.pax
|
||||
|
||||
# pdfpcnotes
|
||||
*.pdfpc
|
||||
|
||||
# sagetex
|
||||
*.sagetex.sage
|
||||
*.sagetex.py
|
||||
*.sagetex.scmd
|
||||
|
||||
# scrwfile
|
||||
*.wrt
|
||||
|
||||
# svg
|
||||
svg-inkscape/
|
||||
|
||||
# sympy
|
||||
*.sout
|
||||
*.sympy
|
||||
sympy-plots-for-*.tex/
|
||||
|
||||
# pdfcomment
|
||||
*.upa
|
||||
*.upb
|
||||
|
||||
# pythontex
|
||||
*.pytxcode
|
||||
pythontex-files-*/
|
||||
|
||||
# tcolorbox
|
||||
*.listing
|
||||
|
||||
# thmtools
|
||||
*.loe
|
||||
|
||||
# TikZ & PGF
|
||||
*.dpth
|
||||
*.md5
|
||||
*.auxlock
|
||||
|
||||
# titletoc
|
||||
*.ptc
|
||||
|
||||
# todonotes
|
||||
*.tdo
|
||||
|
||||
# vhistory
|
||||
*.hst
|
||||
*.ver
|
||||
|
||||
# easy-todo
|
||||
*.lod
|
||||
|
||||
# xcolor
|
||||
*.xcp
|
||||
|
||||
# xmpincl
|
||||
*.xmpi
|
||||
|
||||
# xindy
|
||||
*.xdy
|
||||
|
||||
# xypic precompiled matrices and outlines
|
||||
*.xyc
|
||||
*.xyd
|
||||
|
||||
# endfloat
|
||||
*.ttt
|
||||
*.fff
|
||||
|
||||
# Latexian
|
||||
TSWLatexianTemp*
|
||||
|
||||
## Editors:
|
||||
# WinEdt
|
||||
*.bak
|
||||
*.sav
|
||||
|
||||
# Texpad
|
||||
.texpadtmp
|
||||
|
||||
# LyX
|
||||
*.lyx~
|
||||
|
||||
# Kile
|
||||
*.backup
|
||||
|
||||
# gummi
|
||||
.*.swp
|
||||
|
||||
# KBibTeX
|
||||
*~[0-9]*
|
||||
|
||||
# TeXnicCenter
|
||||
*.tps
|
||||
|
||||
# auto folder when using emacs and auctex
|
||||
./auto/*
|
||||
*.el
|
||||
|
||||
# expex forward references with \gathertags
|
||||
*-tags.tex
|
||||
|
||||
# standalone packages
|
||||
*.sta
|
||||
|
||||
# Makeindex log files
|
||||
*.lpz
|
||||
|
||||
# xwatermark package
|
||||
*.xwm
|
||||
|
||||
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
|
||||
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
|
||||
# Uncomment the next line to have this generated file ignored.
|
||||
#*Notes.bib
|
||||
|
||||
### LaTeX Patch ###
|
||||
# LIPIcs / OASIcs
|
||||
*.vtc
|
||||
|
||||
# glossaries
|
||||
*.glstex
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/latex
|
||||
@@ -0,0 +1,51 @@
|
||||
[General]
|
||||
kile_livePreviewEnabled=true
|
||||
kile_livePreviewStatusUserSpecified=true
|
||||
kile_livePreviewTool=LivePreview-PDFLaTeX
|
||||
lastDocument=main.tex
|
||||
|
||||
[document-settings,item:main.bib]
|
||||
Bookmarks=
|
||||
Encoding=UTF-8
|
||||
Highlighting=BibTeX
|
||||
Highlighting Set By User=false
|
||||
Indentation Mode=normal
|
||||
Mode=BibTeX
|
||||
Mode Set By User=false
|
||||
|
||||
[document-settings,item:main.tex]
|
||||
Bookmarks=
|
||||
Encoding=UTF-8
|
||||
Highlighting=LaTeX
|
||||
Highlighting Set By User=false
|
||||
Indentation Mode=normal
|
||||
Mode=LaTeX
|
||||
Mode Set By User=false
|
||||
|
||||
[item:main.bib]
|
||||
open=true
|
||||
order=1
|
||||
|
||||
[item:main.tex]
|
||||
open=true
|
||||
order=0
|
||||
|
||||
[item:mechforsch.kilepr]
|
||||
open=false
|
||||
order=-1
|
||||
|
||||
[view-settings,view=0,item:main.bib]
|
||||
CursorColumn=37
|
||||
CursorLine=112
|
||||
Dynamic Word Wrap=false
|
||||
JumpList=
|
||||
TextFolding={"checksum":"cb71bb47ec4a72f8446e70ca886b18c3c2c08129","ranges":[]}
|
||||
ViMarks=
|
||||
|
||||
[view-settings,view=0,item:main.tex]
|
||||
CursorColumn=96
|
||||
CursorLine=11
|
||||
Dynamic Word Wrap=false
|
||||
JumpList=
|
||||
TextFolding={"checksum":"f4caf9757786962cf6187282471f06ce0896d120","ranges":[]}
|
||||
ViMarks=
|
||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
|
After Width: | Height: | Size: 609 KiB |
@@ -0,0 +1,120 @@
|
||||
|
||||
@misc{moveitProgress,
|
||||
title = {Fortschritt der Entwicklung von MoveIt 2},
|
||||
url = {https://docs.google.com/spreadsheets/d/1aPb3hNP213iPHQIYgcnCYh9cGFUlZmi_06E_9iTSsOI/edit#gid=0},
|
||||
note = {letzter Zugriff: 5.4.2022},
|
||||
}
|
||||
|
||||
@misc{quaternion,
|
||||
title = {Humane Rigging 03 - 3D Bouncy Ball 05 - Quaternion Rotation},
|
||||
url = {https://www.youtube.com/watch?v=4mXL751ko0w},
|
||||
note = {letzter Zugriff: 5.4.2022},
|
||||
}
|
||||
|
||||
@misc{trianglestrip,
|
||||
title = {Android Lesson Eight: An Introduction to Index Buffer Objects (IBOs)},
|
||||
url = {https://www.learnopengles.com/tag/triangle-strips/},
|
||||
note = {letzter Zugriff: 5.4.2022},
|
||||
}
|
||||
|
||||
@misc{octomap,
|
||||
title = {OctoMap},
|
||||
url = {https://octomap.github.io},
|
||||
note = {letzter Zugriff: 13.4.2022},
|
||||
}
|
||||
|
||||
@misc{gazeborosport,
|
||||
title = {Port gazebo\_ros\_pkgs to ROS 2.0},
|
||||
url = {https://github.com/ros-simulation/gazebo_ros_pkgs/issues/512},
|
||||
note = {letzter Zugriff: 13.4.2022},
|
||||
}
|
||||
|
||||
@misc{moveit_docs,
|
||||
title = {MoveIt 2 Documentation},
|
||||
url = {https://moveit.picknik.ai/galactic/index.html},
|
||||
note = {letzter Zugriff: 13.4.2022},
|
||||
}
|
||||
|
||||
@misc{sdf,
|
||||
title = {SDFormat Specification},
|
||||
url = {http://sdformat.org/spec},
|
||||
note = {letzter Zugriff: 13.4.2022},
|
||||
}
|
||||
|
||||
@misc{urdf,
|
||||
title = {Tutorial: Using a URDF in Gazebo},
|
||||
url = {http://gazebosim.org/tutorials/?tut=ros_urdf},
|
||||
note = {letzter Zugriff: 13.4.2022},
|
||||
}
|
||||
|
||||
@article{AngleraudHoubrePieters+2019+318+329,
|
||||
author = {Alexandre Angleraud and Quentin Houbre and Roel Pieters},
|
||||
doi = {doi:10.1515/pjbr-2019-0025},
|
||||
url = {https://doi.org/10.1515/pjbr-2019-0025},
|
||||
title = {Teaching semantics and skills for human-robot collaboration},
|
||||
journal = {Paladyn, Journal of Behavioral Robotics},
|
||||
number = {1},
|
||||
volume = {10},
|
||||
year = {2019},
|
||||
pages = {318--329}
|
||||
}
|
||||
|
||||
@INPROCEEDINGS{6907656,
|
||||
author={Marzinotto, Alejandro and Colledanchise, Michele and Smith, Christian and Ögren, Petter},
|
||||
booktitle={2014 IEEE International Conference on Robotics and Automation (ICRA)},
|
||||
title={Towards a unified behavior trees framework for robot control},
|
||||
year={2014},
|
||||
volume={},
|
||||
number={},
|
||||
pages={5420-5427},
|
||||
doi={10.1109/ICRA.2014.6907656}
|
||||
}
|
||||
|
||||
@misc{isla2005handling,
|
||||
title={Handling complexity in the halo 2 ai. GDC 2005 Proceedings},
|
||||
author={Isla, D},
|
||||
year={2005}
|
||||
}
|
||||
|
||||
@misc{iisy,
|
||||
title={LBR iisy},
|
||||
url={https://www.kuka.com/de-de/produkte-leistungen/robotersysteme/industrieroboter/lbr-iisy},
|
||||
note = {letzter Zugriff: 18.4.2022},
|
||||
}
|
||||
|
||||
@misc{cobot,
|
||||
title={Cobots: der intelligente Roboter als Kollege},
|
||||
url={https://www.kuka.com/de-de/future-production/mensch-roboter-kollaboration/cobots},
|
||||
note = {letzter Zugriff: 18.4.2022},
|
||||
}
|
||||
|
||||
@misc{mrk,
|
||||
title={Mensch-Roboter-Kollaboration: Willkommen, Kollege Roboter!},
|
||||
url={https://www.kuka.com/de-de/future-production/mensch-roboter-kollaboration},
|
||||
note = {letzter Zugriff: 18.4.2022},
|
||||
}
|
||||
|
||||
@article{
|
||||
doi:10.1126/scirobotics.abm6074,
|
||||
author = {Steven Macenski and Tully Foote and Brian Gerkey and Chris Lalancette and William Woodall },
|
||||
title = {Robot Operating System 2: Design, architecture, and uses in the wild},
|
||||
journal = {Science Robotics},
|
||||
volume = {7},
|
||||
number = {66},
|
||||
pages = {eabm6074},
|
||||
year = {2022},
|
||||
doi = {10.1126/scirobotics.abm6074},
|
||||
URL = {https://www.science.org/doi/abs/10.1126/scirobotics.abm6074}
|
||||
}
|
||||
|
||||
@misc{ros-git,
|
||||
title={GitHub - ros2/ros2: The Robot Operating System, is a meta operating system for robots.},
|
||||
url={https://github.com/ros2/ros2},
|
||||
note = {letzter Zugriff: 02.04.2023},
|
||||
}
|
||||
|
||||
@misc{colcon,
|
||||
title={colcon - collective construction},
|
||||
url={https://colcon.readthedocs.io/en/released/},
|
||||
note = {letzter Zugriff: 02.04.2023},
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
% makeindex style file created by the glossaries package
|
||||
% for document 'main' on 2022-4-3
|
||||
actual '?'
|
||||
encap '|'
|
||||
level '!'
|
||||
quote '"'
|
||||
keyword "\\glossaryentry"
|
||||
preamble "\\glossarysection[\\glossarytoctitle]{\\glossarytitle}\\glossarypreamble\n\\begin{theglossary}\\glossaryheader\n"
|
||||
postamble "\%\n\\end{theglossary}\\glossarypostamble\n"
|
||||
group_skip "\\glsgroupskip\n"
|
||||
item_0 "\%\n"
|
||||
item_1 "\%\n"
|
||||
item_2 "\%\n"
|
||||
item_01 "\%\n"
|
||||
item_x1 "\\relax \\glsresetentrylist\n"
|
||||
item_12 "\%\n"
|
||||
item_x2 "\\relax \\glsresetentrylist\n"
|
||||
delim_0 "\{\\glossaryentrynumbers\{\\relax "
|
||||
delim_1 "\{\\glossaryentrynumbers\{\\relax "
|
||||
delim_2 "\{\\glossaryentrynumbers\{\\relax "
|
||||
delim_t "\}\}"
|
||||
delim_n "\\delimN "
|
||||
delim_r "\\delimR "
|
||||
headings_flag 1
|
||||
heading_prefix "\\glsgroupheading\{"
|
||||
heading_suffix "\}\\relax \\glsresetentrylist "
|
||||
symhead_positive "glssymbols"
|
||||
numhead_positive "glsnumbers"
|
||||
page_compositor "."
|
||||
suffix_2p ""
|
||||
suffix_3p ""
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
%!
|
||||
/pdfmark where{pop}
|
||||
{/globaldict where{pop globaldict}{userdict}ifelse/pdfmark/cleartomark load put}
|
||||
ifelse
|
||||
[
|
||||
/Title(\376\377\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g)
|
||||
/Action/GoTo/Dest(chapter.1)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000A\000u\000f\000g\000a\000b\000e)
|
||||
/Action/GoTo/Dest(chapter.2)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000L\000\366\000s\000u\000n\000g\000s\000k\000o\000n\000z\000e\000p\000t)
|
||||
/Count -4
|
||||
/Action/GoTo/Dest(chapter.3)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000R\000O\000S)
|
||||
/Count -2
|
||||
/Action/GoTo/Dest(section.3.1)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000M\000o\000v\000e\000I\000t)
|
||||
/Action/GoTo/Dest(subsection.3.1.1)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000B\000e\000h\000a\000v\000i\000o\000r\000\040\000T\000r\000e\000e)
|
||||
/Action/GoTo/Dest(subsection.3.1.2)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000G\000a\000z\000e\000b\000o)
|
||||
/Count -1
|
||||
/Action/GoTo/Dest(section.3.2)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000S\000e\000n\000s\000o\000r\000e\000n)
|
||||
/Action/GoTo/Dest(subsection.3.2.1)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000R\000o\000b\000o\000t\000e\000r)
|
||||
/Action/GoTo/Dest(section.3.3)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000Z\000u\000s\000a\000m\000m\000e\000n\000f\000a\000s\000s\000u\000n\000g)
|
||||
/Action/GoTo/Dest(section.3.4)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000U\000m\000s\000e\000t\000z\000u\000n\000g)
|
||||
/Count -1
|
||||
/Action/GoTo/Dest(chapter.4)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000R\000O\000S)
|
||||
/Count -4
|
||||
/Action/GoTo/Dest(section.4.1)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000A\000u\000s\000w\000a\000h\000l\000\040\000d\000e\000r\000\040\000R\000O\000S\000-\000U\000m\000g\000e\000b\000u\000n\000g)
|
||||
/Action/GoTo/Dest(subsection.4.1.1)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000G\000a\000z\000e\000b\000o)
|
||||
/Action/GoTo/Dest(subsection.4.1.2)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000M\000o\000v\000e\000I\000t)
|
||||
/Action/GoTo/Dest(subsection.4.1.3)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000B\000e\000h\000a\000v\000i\000o\000u\000r\000-\000T\000r\000e\000e\000s)
|
||||
/Action/GoTo/Dest(subsection.4.1.4)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000E\000r\000g\000e\000b\000n\000i\000s\000s\000e)
|
||||
/Action/GoTo/Dest(chapter.5)cvn
|
||||
/OUT pdfmark
|
||||
[
|
||||
/Title(\376\377\000D\000i\000s\000k\000u\000s\000s\000i\000o\000n)
|
||||
/Action/GoTo/Dest(chapter.6)cvn
|
||||
/OUT pdfmark
|
||||
@@ -0,0 +1,425 @@
|
||||
\documentclass[paper=a4,
|
||||
ngerman,
|
||||
captions=tableabove,
|
||||
fontsize=11pt,
|
||||
numbers=noenddot,
|
||||
parskip=half,
|
||||
]{scrreprt}
|
||||
\usepackage[ngerman]{babel}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{lmodern}
|
||||
\usepackage{csquotes}
|
||||
\usepackage[includehead,includefoot, left=3.0cm, right=2.5cm, top=1.5cm, bottom=1.5cm]{geometry}
|
||||
\usepackage{acro}
|
||||
\usepackage{listings}
|
||||
\usepackage[style=numeric,backend=biber]{biblatex}
|
||||
\usepackage{pdfpages}
|
||||
\usepackage{scrhack}
|
||||
\usepackage{xcolor}
|
||||
\usepackage{enumitem}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{tabularray}
|
||||
|
||||
\usepackage[letterspace=150]{microtype}
|
||||
\usepackage[onehalfspacing]{setspace}
|
||||
\usepackage[page]{totalcount}
|
||||
\usepackage[automark,headsepline=.4pt,plainheadsepline]{scrlayer-scrpage} % Erstellung von selbst definierten Kopfzeilen
|
||||
\clearpairofpagestyles%\clearscrheadfoot veraltet
|
||||
\renewcommand*{\chaptermarkformat}{
|
||||
\chaptername~\thechapter\autodot\enskip
|
||||
}
|
||||
|
||||
\ihead*{\rightmark}
|
||||
\ohead*{\thepage}
|
||||
\setkomafont{pageheadfoot}{\normalfont}
|
||||
|
||||
\pagestyle{scrheadings}
|
||||
|
||||
\pdfminorversion=7
|
||||
|
||||
\addbibresource{main.bib}
|
||||
|
||||
% Title Page
|
||||
\title{}
|
||||
\subtitle{mechatronisches Forschungsprojekt}
|
||||
\author{Bastian Maximilian Hofmann}
|
||||
|
||||
|
||||
\DeclareAcronym{ros}{
|
||||
short=ROS,
|
||||
long=Robot Operating System,
|
||||
}
|
||||
\DeclareAcronym{fsm}{
|
||||
short=FSM,
|
||||
long=Finite-State-Machine,
|
||||
}
|
||||
\DeclareAcronym{mrk}{
|
||||
short=MRK,
|
||||
long=Mensch-Roboter-Kollaboration,
|
||||
}
|
||||
|
||||
|
||||
\begin{document}
|
||||
|
||||
\setcounter{page}{1}
|
||||
\pagenumbering{Roman}
|
||||
|
||||
\begin{titlepage}
|
||||
|
||||
\includepdf[pages=-]{Deckblatt.pdf}
|
||||
|
||||
\end{titlepage}
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\includepdf[pages=-]{Aufgabenstellung.pdf}
|
||||
|
||||
\setcounter{page}{1}
|
||||
\pagenumbering{arabic}
|
||||
|
||||
|
||||
\chapter{Einleitung}
|
||||
\section{Motivation}
|
||||
Das Feld der Mensch-Roboter-Kollaboration entwickelt sich mit zunehmender Geschwindigkeit fort.
|
||||
Viele Unternehmen bieten neue Lösungen für die unterschiedlichsten Einsatzszenarien der Endanwender.
|
||||
|
||||
Dabei ist eine Prüfung des Anwendungsfalls sinnvoll, um etwaige Probleme der Interaktion früh erkennen und beheben zu können.
|
||||
Diese Prüfung kann durch eine Simulation, in welcher der konkrete Anwendungsfall abgebildet wird, vereinfacht werden.
|
||||
|
||||
Außerdem bietet eine Simulation die Möglichkeit, die Aufgabe des Roboters, ohne dessen Anschaffung, evaluieren zu können.
|
||||
Das so gefertigte Modell des Anwendungsfalls könnte später auch als Grundlage für einen digitalen Zwilling dienen.
|
||||
Dieser kann später zur Wartung und Fehlerdiagnose des Systems dienen.
|
||||
|
||||
-MRK häufiger ein Thema
|
||||
-Anwendungsfälle sollen evaluiert werden
|
||||
-Erprobung von Szenarien ohne Roboter
|
||||
|
||||
->Simulation eine kompletten Szenarios mit Roboter und Mensch
|
||||
\section{Stand der Wissenschaft}
|
||||
Aktuelle Arbeiten:
|
||||
|
||||
-Planung von Interaktionen
|
||||
|
||||
-Parametervergrleiche von maschinellen und menschlichen Bewegungen
|
||||
|
||||
-Vermeidung von Kollisionen und Strategie
|
||||
|
||||
-Steuerung von Robotern mit Behavior Trees
|
||||
|
||||
-> Keine allgemeine Simulation einen gesamten Szenarios mit Mensch.
|
||||
|
||||
\url{https://www.sciencedirect.com/science/article/pii/S2351978918311442}
|
||||
\url{https://www.researchgate.net/publication/319888916_Interactive_Simulation_of_Human-robot_Collaboration_Using_a_Force_Feedback_Device}
|
||||
\url{https://elib.dlr.de/120687/1/human_motion_projection.pdf}
|
||||
\url{https://www.researchgate.net/publication/220065749_Human-Robot_Collaboration_a_Survey}
|
||||
|
||||
\section{Welche Szenarien}
|
||||
Die drei Szenarien sollten so gewählt werden, dass vorher genutzte Bestandteile in späteren, komplexeren Szenarien weiter genutzt werden können.
|
||||
Hierfür kommen bestimmte Aufgaben, wie zum Beispiel die Manipulation von Objekten, besonders in Frage, da diese viele ähnliche Bestandteile haben, jedoch mehrere Szenarien denkbar sind.
|
||||
|
||||
Das erste abgebildete Szenario soll sich mit der Simulation einer bereits vollautomatisierten Fertigungsaufgabe handeln, in welcher ein Roboter im Arbeitsbereich eines Menschen Teile fertigt.
|
||||
Die zu erwartende Interaktion beschränkt sich hierbei auf die Anpassung der Fahrgeschwindigkeit bei Annäherung des Menschen.
|
||||
|
||||
Bei dem zweiten Szenario soll der Roboter Teile sortieren und auf ein Fließband legen, falls diese weiter genutzt werden können.
|
||||
Der Mensch muss nun nur noch den Ausschuss beseitigen, welcher vom Roboter in eine besondere Zone gelegt wird.
|
||||
|
||||
Die dritte simulierte Aufgabe stellt ein Colaborationsszenario dar, in welchem Mensch und Roboter an der selben Aufgabe arbeiten.
|
||||
Hierbei soll eine Palette entladen werden, wobei der Roboter nicht jedes Objekt ausreichend manipulieren kann.
|
||||
In diesen Fällen muss nun ein Mensch aushelfen, wodurch er mit dem Roboter in Interaktion tritt.
|
||||
\section{Welcher Nutzen / Contributions}
|
||||
- Erkennen von konzeptionellen Problemen vor Ersteinsatz
|
||||
|
||||
- Definition von Interaktion mit einfacheren Strukturen als State-Machines
|
||||
\chapter{Konzept}
|
||||
Die zu entwickelnde Simulation soll die bisher meißt separaten Zweige der Roboter- und Menschensimulation verbinden.
|
||||
Um die beiden Akteuren in der simulierten Umgebung zu steuern, werden Befehle von außerhalb der Simulation eingesetzt.
|
||||
Diese Befehle werden dabei von externer Software unter der Verwendung von Behavior Trees und Feedback aus der Simulation generiert.
|
||||
|
||||
Die zu erarbeitende Softwareumgebung soll einfach erweiterbar sein, um weitere Modifikationen und die Umsetzung anderer Projekte zuzulassen.
|
||||
Hierzu zählt die Austauschbarkeit und Erweiterbarkeit von Komponenten wie der simulierten Welt, dem Roboter oder dem simulierten Mensch.
|
||||
Um diese Möglichkeiten zu schaffen, sind die Systeme modular aufgebaut.
|
||||
|
||||
-Mensch und Roboter in Simulation
|
||||
-Austauschbare Welt
|
||||
-Beliebig erweiterbar
|
||||
\section{Simulation des Roboters}
|
||||
Der simulierte Roboter soll für viele unterschiedliche Szenarien nutzbar sein, was spezialisierte Robotertypen ausschließt.
|
||||
Außerdem ist die enge Interaktion mit Menschen interessant, was einen für Mensch-Roboter-Kollaboration ausgelegten Roboter spricht.
|
||||
Für diese beschriebenen Kriterien eignet sich der KUKA LBR iisy, welcher als Cobot vermarktet wird.
|
||||
Cobot ist dabei ein Portemanteau aus Collaborative und Robot, was die besondere Eignung für MRK-Szenarien noch einmal unterstreicht.
|
||||
Er besitzt auch einen modifizierbaren Endeffektor, um unterschiedlichste Aufgaben erfüllen zu können.
|
||||
|
||||
Um den Kuka iisy in der Simulation verwenden zu können, muss ein Modell des Roboterarms erstellt werden.
|
||||
Anhand dieses Modells kann der Roboter dann in der Simulation dargestellt werden und mit anderen Objekten interagieren.
|
||||
|
||||
-Beruhend auf echtem Roboter (Kuka iisy)
|
||||
-Kollision
|
||||
\section{Simulation des Menschen}
|
||||
Der Mensch soll in der Simulation typische Aufgaben erledigen und häufiges Verhalten abbilden können.
|
||||
Hierzu werden Animationen verwendet, welche die aktuelle Tätigkeit darstellen.
|
||||
Für komplexere Verhaltensweisen können Animationen und andere Aktionen, wie zum Beispiel eine Bewegung und Rotation kombiniert werden, um zum Beispiel die Aktion ``laufen'' auszuführen.
|
||||
|
||||
Auch hier wird ein Modell der Person für die Simulation benötigt.
|
||||
Außerdem werden mehrere Animationen und Übergänge zwischen diesen benötigt, um bestimmte Bewegungen darstellen zu können.
|
||||
Hinzu kommt noch eine Komponente, welche diese Animationen und andere Parameter von außen entgegennehmen kann, um sie in der Simulation ausführen zu können.
|
||||
Um die spätere Steuerung des Menschen von außerhalb zu erleichtern, müssen diese Aktionen im Fortschritt überwacht und abgebrochen werden können.
|
||||
|
||||
-Dynamische Ausführung von Befehlen
|
||||
-Erkennbare Bewegungsabläufe
|
||||
\section{Behavior Trees}
|
||||
-Steuerung von Mensch und Roboter
|
||||
-Vermeidung der Nachteile von großen State-Machines
|
||||
\chapter{Komponenten-/Softwareauswahl}
|
||||
\section{Dienstumgebung (ROS2)}
|
||||
\subsection{Auswahl}
|
||||
\subsection{Beschreibung}
|
||||
ROS2\cite{doi:10.1126/scirobotics.abm6074}, später auch einfach nur ROS genannt, beschreibt sich selbst als ``a meta operating system for robots''\cite{ros-git}.
|
||||
Hierbei ist ``operating system'' nicht in seiner herkömmlichen Bedeutung eines vollständigen Betriebssystems zu verstehen.
|
||||
Es handelt sich um eine gemeinsame Basis für Programme und Daten, welche durch ROS bereitgestellt wird.
|
||||
Einzelne Bestandteile sind dabei in Pakete gegliedert.
|
||||
Ein Paket kann dabei beliebig viele Daten und Programme beinhalten.
|
||||
Programme, welche mit anderen Programmen in der Umgebung interagieren, werden in ROS ``Nodes'' genannt.
|
||||
|
||||
Zu den Aufgaben von ROS gehören dabei:
|
||||
\begin{description}
|
||||
\item[Buildumgebung]\hfill \\
|
||||
ROS benutzt colcon \cite{colcon}, um Pakete in den Workspaces reproduzierbar zu erstellen.
|
||||
Hierfür werden CMake und einige Erweiterungen, wie z.B. ament\_cmake eingesetzt.
|
||||
|
||||
\item[Workspaceverwaltung]\hfill \\
|
||||
Pakete können in verschiedenen Verzeichnissen installiert werden und müssen für andere Pakete auffindbar sein.
|
||||
ROS nutzt hierfür von colcon generierte Skripte, welche beim Erstellen eines Pakets mit angelegt werden.
|
||||
Das Ausführen eines solchen Skripts fügt alle Pakete im Workspace der aktuellen Konsolenumgebung hinzu.
|
||||
|
||||
\item[Abhängigkeitsverwaltung]\hfill \\
|
||||
ROS kann durch die in den Paketen deklarierten Abhängigkeiten prüfen, ob diese in der aktuellen Umgebung verfügbar sind.
|
||||
Dies vermeidet Abstürze und undefiniertes Verhalten in der Ausführung von Nodes.
|
||||
|
||||
\item[Datenübertragung]\hfill \\
|
||||
Nodes müssen miteinander auf einem festgelegten Weg kommunizieren können, um beliebige Verbindungen dieser zu unterstützen.
|
||||
Dieser wird durch ROS in Form mehrerer Bibliotheken für unterschiedliche Sprachen bereitgestellt.
|
||||
|
||||
\item[Parameterübergabe]\hfill \\
|
||||
Nodes benötigen häufig problemspezifische Konfiguration, um in vorher nicht bedachten Szenarien eingesetzt werden zu können.
|
||||
ROS stellt diese durch deklarierfähige und integrierte Argumente bereit.
|
||||
|
||||
\item[Startverwaltung]\hfill \\
|
||||
In sogenannten ``launch''-Files können verschiedene Nodes und andere ``launch''-Files zu komplexen Startvorgängen zusammengefasst werden.
|
||||
\end{description}
|
||||
|
||||
|
||||
\section{Simulationsumgebung (Gazebo)}
|
||||
\subsection{Auswahl}
|
||||
Als Simulationsumgebung können verschiedene Programme genutzt werden, welche sich in ihrem Funktionsumfang stak unterscheiden.
|
||||
Hierfür kommen dedizierte Werkzeuge zur Robotersimulation, aber auch zum Beispiel universell einsetzbare Gameengines in Frage.
|
||||
Diese Werkzeuge müssen hierfür auf ihre Tauglichkeit für die gesetzte Aufgabe geprüft werden.
|
||||
Auch andere Aspekte sind hierbei zu betrachten, wie Lizenzen oder schwer bewertbare Aspekte wie Nutzerfreundlichkeit.
|
||||
Für die Auswahl kommen verschiedene Prgramme in Frage, welche im folgenden weiter beleuchtet werden.
|
||||
|
||||
CoppeliaSim:
|
||||
Gute Robotersimulation
|
||||
Keine Simulation von Menschen
|
||||
Library ist Open Source, jedoch nicht kostenfrei kommerziell einsetzbar.
|
||||
|
||||
Gazebo:
|
||||
Gute Robotersimulation
|
||||
Einfache Simulation von Menschen integriert, jedoch nicht für Aufgabe ausreichend.
|
||||
Open Source, keine Beschränkungen
|
||||
|
||||
Unity:
|
||||
Offizielles Roboterframework und 3rd-Party Lösung verfügbar.
|
||||
Gute Dokumentation
|
||||
Gute Werkzeuge für Menschensimulation.
|
||||
Robotersimulation möglich, jedoch mit anderem Aufbau.
|
||||
Lizenzen einfach gestaltet, jedoch nicht offen.
|
||||
|
||||
Unreal:
|
||||
3rd Party Lösung verfügbar
|
||||
Gute Dokumentation
|
||||
Gute Werkzeuge für Menschensimulation.
|
||||
Lizenz komplex, nicht offen.
|
||||
|
||||
Godot:
|
||||
3rd Party Lösung verfügbar
|
||||
Dokumentation stark im Wandel
|
||||
Gute Werkzeuge für Menschensimulation.
|
||||
Lizenz offen
|
||||
Keine explizite Robotersimulation, wäre nachzurüsten
|
||||
|
||||
\section{Robotersimulation}
|
||||
-URDF-Dateiformat
|
||||
|
||||
-Einteilung in Kollisions- und Anzeigemesh
|
||||
\section{Menschensimulation}
|
||||
-Nur vorprogrammierte Bewegungen möglich
|
||||
|
||||
-Nur einige vorgefertigte Animationen verfügbar
|
||||
|
||||
\section{Roboterumgebung (MoveIt2)}
|
||||
-populärste Umgebung für Bewegungsplanung in ROS2
|
||||
|
||||
-Integration mit ros\_control
|
||||
|
||||
-Integration von ros\_control in gazebo ignition möglich
|
||||
\chapter{Umsetzung}
|
||||
\section{Grundlegender Systemaufbau}
|
||||
-BehaviorTree -> ActorPluginServer -> ActorPluginServer
|
||||
|
||||
-BehaviorTree -> MoveIt -> ros\_control -> Gazebo
|
||||
\section{Mensch}
|
||||
\subsection{Übersicht (Diagramme)}
|
||||
\subsection{Modellierung}
|
||||
Rerigging des Actor-Modells
|
||||
Animation in eigenem Rig
|
||||
Konflikte durch 'verschiedene' Rigs in Animationen
|
||||
Erstellung eines neuen Rigify-Rigs
|
||||
Erneutes Erstellen von Animationen
|
||||
Disconnect Bones in Rig
|
||||
Flatten Hierarchy
|
||||
\subsection{Programmierung}
|
||||
\subsubsection{Message Queue}
|
||||
-2 rclcpp Instanzen kollidieren
|
||||
|
||||
-Anderes Protokoll nötig
|
||||
|
||||
-Möglichst einfach, von anderen Sprachen verwendbar und schnell
|
||||
|
||||
-Websocket zu langsam
|
||||
|
||||
-Shared memory schwer zu synchronisieren
|
||||
|
||||
-Message Queue guter Mix aus beiden
|
||||
\subsubsection{ROS-Server}
|
||||
-Transformieren von ROS2 action server in Message Queue
|
||||
|
||||
-Eigene state machine
|
||||
\subsubsection{Gazebo Plugin}
|
||||
-Relativ einfache Implementation
|
||||
|
||||
-Reagiert nur auf Nachrichten, kein Konzept der gesamten Abfolge
|
||||
\section{Roboter}
|
||||
\subsection{Übersicht (Diagramme)}
|
||||
\subsection{Modellierung}
|
||||
Erstellung der Robotermodelle aus Herstellerdaten
|
||||
|
||||
Kollision und Visualisierung
|
||||
\subsection{Details}
|
||||
\chapter{Szenarienbasierte Evaluation}
|
||||
\section{Simulation des Menschen}
|
||||
-Animationen und Bewegungen funktionieren
|
||||
|
||||
-Kollisionen möglich, aber mit Animationen schwer zu synchronisieren
|
||||
\section{Bewegung des Roboters}
|
||||
-Roboter kann sich bewegen
|
||||
|
||||
-Kollisionen verfügbar
|
||||
|
||||
-Interaktion technisch möglich, nicht implementiert. (Kooperation MoveIt/Gazebo nötig)
|
||||
\section{BehaviorTrees}
|
||||
\subsection{Nodes}
|
||||
-Nodes für implementierte Funktionen verfügbar
|
||||
|
||||
-Einige andere, technisch relevante Nodes auch implementiert
|
||||
\subsection{Kombinieren von Nodes zu einer Request}
|
||||
-MoveIt Planung benötigt mehrere Parameter, sollen aber in einzelnen Nodes gesetzt werden
|
||||
|
||||
-Kombination nötig, Beschreibung hier
|
||||
\chapter{Diskussion}
|
||||
\section{Lessons Learned bei der Umsetzung}
|
||||
-Viele kleine Unannehmlichkeiten, kombiniert ein großes Problemen
|
||||
|
||||
-Dokumentation für spätere Projekte
|
||||
\subsection{Erstellung des Robotermodells}
|
||||
-Keine direkten technischen Daten zum Roboter von Kuka
|
||||
|
||||
-Nur CAD-Dateien der Außenhülle
|
||||
|
||||
-Schätzung von Spezifikationen anhand Marketingmaterial
|
||||
\subsection{Gazebo}
|
||||
\subsubsection{Upgrade auf Ignition}
|
||||
Gazebo ist zu diesem Zeitpunkt in mehreren, teilweise gleichnamigen Versionen verfügbar, welche sich jedoch grundlegend unterscheiden.
|
||||
Ein altes Projekt mit dem früheren Namen Gazebo, welches nun in Gazebo Classic umbenannt wurde,
|
||||
die Neuimplementation der Simulationssoftware mit dem Namen Gazebo Ignition und
|
||||
die nächste Version, welche nur noch den Namen Gazebo tragen soll.
|
||||
Dies ist darauf zurückzuführen, dass Gazebo Classic und Ignition eine Zeit lang gleichzeitig existierten, jedoch unterschiedliche Funktionen und interne Schnittstellen besitzen.
|
||||
|
||||
Das Upgrade von Gazebo Classic auf Gazebo Ignition gestaltete sich aus mehreren Gründen schwierig.
|
||||
Dies ist am leichtesten an der geänderten Nutzeroberfläche sichtbar, welche in Ignition nun modular ausgeführt ist.
|
||||
Um dieses neue modulare System nutzen zu können, wurde das Dateiformat für die Simulationen angepasst.
|
||||
In diesem werden die benötigten Physikparameter, Nutzeroberflächen, Plugins und die Simulationswelt definiert.
|
||||
|
||||
Um alte Simulationsdateien zu migieren, empfiehlt sich die Erstellung einer neuen, leeren Welt in Gazebo Ignition,
|
||||
sodass alle benötigten Physik, Nuteroberflächen und Pluginreferenzen erstellt werden.
|
||||
Danach kann die Welt Stück für Stück in das neue Format übertragen werden, wobei nach jedem Eintrag ein Test zur Funktionsfähigkeit gemacht werden sollte, da sich bestimmte Parameterdeklarationen geändert haben.
|
||||
Die Arbeit in kleine Stücke aufzuteilen ist hierbei hilfreich, da Fehler während des Ladevorgangs im Log nicht weiter beschrieben werden.
|
||||
|
||||
Auch das alte Plugin musste auf das neue System angepasst werden, was auch hier zu einer kompletten Neuimplementation führte, da die internen Systeme zu große Unterschiede aufwiesen.
|
||||
Darunter fallen eine grundlegende Strukturänderung der unterliegenden Engine, welche auf ein Entity-Component-System umstellte, aber auch sahlreiche kleinere Änderungen
|
||||
\subsubsection{Pluginarchitektur}
|
||||
-Plugins werden im selben Kontext geladen, verwendung von Librarys mit globalem Kontext schwer
|
||||
\subsubsection{Doppelte Messagedienste}
|
||||
-Duplizierung von Messagediensten in ROS und Gazebo
|
||||
|
||||
-Potentielle Lösung in einer Präsentation angekündigt (mal sehen, ob ich die wiederfinde)
|
||||
\subsubsection{Fehlende Animationsgrundlagen}
|
||||
-Animationen werden als .col bereitgestellt
|
||||
|
||||
-Enthalten Textur, Mesh und Bones, jedoch nicht verbunden -> schlecht für Animation
|
||||
\subsection{ROS2}
|
||||
\subsubsection{Nachrichten und deren Echtzeitfähigkeit}
|
||||
-TCP und UDP verfügbar, jedoch nicht sofort kompatibel
|
||||
\subsubsection{Änderung der Compilertoolchain}
|
||||
-Änderung des Buildsystems von rosbuild auf catkin
|
||||
|
||||
-Benötigte Änderungen in CMakeFile und package
|
||||
\subsection{MoveIt2}
|
||||
\subsubsection{Upgrade auf MoveIt2}
|
||||
-Unterschiede in der Deklaration des Roboters selbst
|
||||
|
||||
-Änderungen der Deklaration der ros\_control Anbindung
|
||||
|
||||
-Vorerst kein Setup, manuelle Migration erforderlich
|
||||
|
||||
->Lesson learned: Projekte häufig auf Updates prüfen
|
||||
\subsubsection{Fehlerhafte Generierung der Roboter}
|
||||
-Einige Aspekte der Generierung nicht erforderlich oder falsch
|
||||
\subsubsection{Controller}
|
||||
-Controller benötigte Anpassungen und manuelle Tests
|
||||
\section{Lessons Learned bei den Szenarien}
|
||||
\subsection{Debugging}
|
||||
-async tty Option
|
||||
|
||||
-gdb ist ein Muss
|
||||
|
||||
-``Aufhängen'' von trees
|
||||
\chapter{Zusammenfassung und Ausblick}
|
||||
\section{Ergebnisse}
|
||||
\subsection{Graphische Repräsentation der Szenarien}
|
||||
-Szenarien graphisch abgebildet
|
||||
\subsection{Anpassung der Behavior Trees an Szenarien}
|
||||
-Trees angepasst
|
||||
\section{Diskussion}
|
||||
-Viele Iterationen benötigt
|
||||
|
||||
-Funktionstüchtige Simulation der Szenarien
|
||||
|
||||
-Bewegung der Objekte schwerer als gedacht
|
||||
|
||||
-Synchronisationsmechanismus Gazebo <-> MoveIt benötigt
|
||||
\section{Ausblick}
|
||||
\subsection{Umsetzung in anderem Simulator}
|
||||
-Einfachere ROS Anbindung
|
||||
-Potentiell einfacher ausbaubar auf Basis einer erweiterbaren Gameengine
|
||||
-Mangelhafte Dokumentation von Gazebo
|
||||
\subsection{Simulation bewegter Objekte}
|
||||
-Aufgrund von Komplexität des Prozesses nicht integriert
|
||||
\subsection{Ergänzung von Umgebungserkennung}
|
||||
-MoveIt hat Unterstützung
|
||||
|
||||
-Daten aus Gazebo extrahieren und in MoveIt einbinden
|
||||
|
||||
-Person in OctoMap erkennen
|
||||
|
||||
\printbibliography
|
||||
|
||||
\end{document}
|
||||
@@ -0,0 +1,37 @@
|
||||
[General]
|
||||
bib_extensions=.bib
|
||||
bibliographyBackendAutoDetected=Biber
|
||||
bibliographyBackendUserOverride=
|
||||
def_graphic_ext=pdf
|
||||
img_extIsRegExp=false
|
||||
img_extensions=.eps .jpg .jpeg .png .pdf .ps .fig .gif
|
||||
kileprversion=3
|
||||
kileversion=2.9.93
|
||||
masterDocument=
|
||||
name=Masterarbeit
|
||||
pkg_extIsRegExp=false
|
||||
pkg_extensions=.cls .sty .bbx .cbx .lbx
|
||||
src_extIsRegExp=false
|
||||
src_extensions=.tex .ltx .latex .dtx .ins
|
||||
|
||||
[Tools]
|
||||
MakeIndex=
|
||||
QuickBuild=
|
||||
|
||||
[item:main.bib]
|
||||
archive=true
|
||||
encoding=UTF-8
|
||||
highlight=BibTeX
|
||||
mode=BibTeX
|
||||
|
||||
[item:main.tex]
|
||||
archive=true
|
||||
encoding=UTF-8
|
||||
highlight=LaTeX
|
||||
mode=LaTeX
|
||||
|
||||
[item:mechforsch.kilepr]
|
||||
archive=true
|
||||
encoding=
|
||||
highlight=
|
||||
mode=
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user