
% this command "pretty prints" a C++
\newglossaryentry{C++}{
	name={C\nolinebreak[4]\hspace{-.05em}\raisebox{.3ex}{\footnotesize\textbf{++}}},
	description={
		Eine hardwarenahe, performante Programmiersprache.
	}
}
\newglossaryentry{python}{
	name={Python},
	description={
		Eine höhere, einfach zu benutzende Programmiersprache.
	}
}

\newglossaryentry{ROS}{
	name={ROS, kurz für Robot Operating System},
	text={ROS},
	sort={ROS},
	description={
		Das Robot Operating System ist eine Sammlung von Softwarebibliotheken und Werkzeugen, die hilfreich beim Erstellen von Roboter Applikationen
		sind. Es enthält Treiber, fertig implementierte Standardalgoritmen und andere hilfreiche Funktionen. Es ist vollständig Open Source.
	}
}

\newglossaryentry{ROS Node}{
	name={ROS Node},
	text={Node},
	description={
		Eine ROS Node ist ein Teilprogramm, welches von \gls{ROS} verwaltet wird. Es kann Informationen als \gls{Topic} veröffentlichen und
		\glspl{Topic} abonnieren, um die dort veröffentlichten Informationen weiter zu verarbeiten.
	}
}

\newglossaryentry{ROS Nodelet}{
	name={ROS Nodelet},
	description={
		Ein ROS Nodelet ist ein Programm, welches in einem Verbund mit mehreren anderen Nodelets mittels \gls{ROS} gestartet wird. Alle Nodelets einer
		Gruppe haben die Möglichkeit auf geteilten Anwendungsspeicher zuzugreifen.
	}
}

\newglossaryentry{ROS Message}{
	name={ROS Message},
	text={Message},
	sort={ROS Message},
	description={
		Ein Datensatz, der von ROS von einer \gls{ROS Node} an eine andere übertragen wird. Sie wird unter einem \gls{Topic} veröffentlicht
		und alle Abonenten diese \glspl{Topic} erhalten die Message. \gls{ROS} definiert eigene Datentypen denen Nachrichten entsprechen müssen.
	}
}

\newglossaryentry{Topic}{
	name={ROS Topic},
	text={Topic},
	sort={ROS Topic},
	description={
		Über ein Topic stellt eine \gls{ROS Node} \glspl{ROS Message} bereit. Es ist eine Bekanntmachung, das andere \glspl{ROS Node} hier
		Informationen erhalten können.
	}
}

\newglossaryentry{ROS Noetic}{
	name={ROS Noetic Ninjemy},
	text={ROS Noetic},
	description={
		Die aktuelle Distribution von ROS. Sie wurde 2020 veröffentlicht und wird bis 2025 Updates erhalten.
	}
}

\newglossaryentry{Callback}{
	name={Callback-Funktion},
	description={
		Eine Funktion, die unter bestimmten Bedingungen automatisch aufgerufen wird. Im Bezug auf \gls{ROS} geht es meistens um Funktionen die für
		jede \gls{ROS Message} auf einem abonnierten \gls{Topic} mit deren Inhalt aufgerufen werden.
	}
}

\newglossaryentry{OpenCV}{
	name={OpenCV},
	description={
		OpenCV ist eine Open Source Software Bibliothek mit typischen Algorithmen und Funktionen für die Bildverarbeitung, \emph{Computer Vision} und
		maschinelles Leren.
	}
}

\newglossaryentry{JetBot}{
	name={JetBot},
	description={
		Der in deser Arbeit verwendete Roboter. Gesteuert wird er von einem NVIDIA Jetson Nano Entwicklerboard, auf welchem die erstellten
		Programme laufen.
	}
}

\newglossaryentry{Welt-coords}{
	name={Weltkoordinaten},
	text={Weltkoordinate},
	plural={Weltkoordinaten},
	description={
		Ein 3D-Koordinatensystem, das die gesamte Scene/Welt des derzeitigen Systems umfasst.
	},
	sort={koordinaten-welt}
}

\newglossaryentry{Objekt-coords}{
	name={Roboterkoordinaten (Objektkoordinaten)},
	text={Roboterkoordinate},
	plural={Roboterkoordinaten},
	description={
		Ein 3D-Koordinatensystem welches relativ zum Roboter/Objekt liegt. Es bewegt sich mit dem Roboter und hat seinen Uhrsprung im/nahe am
		Fahrzeug.
	},
	sort={koordinaten-roboter}
}

\newglossaryentry{Bild-coords}{
	name={Kamerakoordinaten},
	text={Kamerakoordinate},
	plural={Kamerakoordinaten},
	description={
		Ein 3D-Koordinatensystem, welches die sicht der Kamera Widerspiegelt. $x$ und $y$-Koor\-di\-na\-ten kor\-ros\-pondieren dabei zu \gls{pixel-coords} und
		die $z$-Achse stellt die Entfernung zur Kamera dar.
	},
	sort={koordinaten-kamera}
}

\newglossaryentry{pixel-coords}{
	name={Pixelkoordinaten (Bildkoordinaten)},
	text={Pixelkoordinate},
	plural={Pixelkoordinaten},
	description={
		Ein 2D-Koordinatensystem, welches die Position der Bild-Pixel abbildet. Es liegt in der $x$/$y$-Ebene des \glspl{Bild-coords}, der Ursprung
		ist aber um die halbe bildgröße nach links-oben verschoben.
	},
	sort={koordinaten-pixel}
}

\newglossaryentry{ROI}{
	name={ROI, kurz für Region of Interest},
	text={ROI},
	description={Ein Bildbereich, der für die derzeitige Anwendung relevant ist. Das restliche Bild wird vernachlässigt.}
}

\newglossaryentry{gauss-filter}{
	name={Gaußscher Filter},
	description={
		Eine Filterfunktion um Bilder zu glätten. Sie bildet den mittels einer 2D-Gaußfunktion gewichteten Mittelwert einer \gls{Pixelnachbarschaft}.
	}
}

\newglossaryentry{canny}{
	name={Canny-Edge-Detektor},
	description={
		Ein Algorithmus zur Erkennung von Kanten in Bildern, entwickelt von John Canny \cite{Canny:computationAlapproachEdgeDetection}.
	}
}

\newglossaryentry{Gradientenorientierung}{
	name={Gradientenorientierung},
	description={Richtung des Farbgradienten in einer Pixelnachbarschaft. Verläuft von dunklen zu hellen Bildbereichen.}
}

\newglossaryentry{Kernel}{
	name={Kernel},
	plural={Kerneln},
	description={Eine Matrix die beim Filtern und Verarbeiten von Bildern verwendet wird. Mit ihr werden Pixelnachbarschaften gewichtet.}
}

\newglossaryentry{Pixel}{
	name={Pixel},
	description={Ein einzelner Bildpunkt. Er hat einen Wert zwischen Schwarz ($0$) und Weiß ($255$).}
}

\newglossaryentry{Pixelnachbarschaft}{
	name={Pixelnachbarschaft},
	plural={Pixelnachbarschaften},
	description={
		Ein Bereich festgelegter Größe um einen relevanten Hauptpixel.
	}
}
