checkpoint
[bachelor-thesis/written-stuff.git] / Ausarbeitung / wiselib.tex
index 8745d9f..4b84324 100644 (file)
@@ -1,5 +1,5 @@
 \section{Wiselib}
-The \definition{Wiselib}\cite{wiselib} is a C++\index{C++} algorithm library for
+The \definition{Wiselib}\cite{wiselib} is a C++ algorithm library for
 sensor networks, containing for example algorithms for routing, localization and
 time synchronization, and is strongly focused on portability and cross-platform
 development. In particular, it allows the user to develop applications that run
@@ -40,7 +40,7 @@ algorithm uses.
 \end{figure}
 Besides algorithms, and basic concepts and models, the Wiselib also consists of
 two other main parts: the internal interface and the external interface (see
-Figure \ref{fig:wiselib-arch}).
+Figure~\ref{fig:wiselib-arch}).
 
 \paragraph{External Interface}
 The \definition{External Interface} provides access to the underlying \ac{OS},
@@ -60,8 +60,9 @@ restricted platforms; for instance a wireless sensor node without dynamic memory
 management can use a static implementation of lists and other containers,
 whereas a full-grown desktop can use the dynamic implementation provided by the
 C++ \ac{STL}. For this purpose, the Wiselib also contains the
-\acused{pSTL}\definition{\acl{pSTL}} (\acs{pSTL}) which implements a
-subset of the \ac{STL} without the use of dynamic memory allocation.
+\acused{pSTL}\definition{pico Standard Template Library} (\acs{pSTL}) which
+implements a subset of the \ac{STL} without the use of dynamic memory
+allocation.
 
 \paragraph{Stackability}
 Another central design principle used in the Wiselib is
@@ -77,8 +78,8 @@ de- and encryption over the radio.
 \subsection{Roomba Control}
 Even more interesting is the fact that the Wiselib includes code to control an
 iRobot Roomba\index{Roomba} over a serial interface, and getting access to its
-internal sensor data, using the \acl{ROI}\index{\acl{ROI}} mentioned earlier.
-For this purpose, it defines two concepts for Robot Motion:
+internal sensor data, using the \ac{ROI}\index{Roomba Open Interface} mentioned
+earlier. For this purpose, it defines two concepts for Robot Motion:
 
 \paragraph{TurnWalkMotion concept}\index{TurnWalkMotion (concept)}
 This concept represents a simple robot that can turn on the spot and walk
@@ -127,10 +128,11 @@ guessing of the object's traveled distance and current orientation.
 
 \paragraph{ControlledMotion class}\index{ControlledMotion (class)}
 On top of the TurnWalkMotion and Odometer concepts builds the
-\definition{ControlledMotion} model. It takes implementations of each of these
-concepts as template parameters and extends the simple turn-and-walk paradigm by
-a temporal dimension, which let the robot stop after a specific time interval.
-In particular, it provides the following methods:
+\textit{ControlledMotion}\index{ControlledMotion (class)} model. It takes
+implementations of each of these concepts as template parameters and extends the
+simple turn-and-walk paradigm by a temporal dimension, which let the robot stop
+after a specific time interval. In particular, it provides the following
+methods:
 \begin{description}
   \item[\code{int move\_distance(distance\_t, velocity\_t)}] move the robot
     straight by a given distance with a given velocity
@@ -148,16 +150,17 @@ target values given by the user through the functions above, and if the actual
 values exceed the target values, the robot is stopped.
 
 \paragraph{Underlying Roomba Implementation}
-The actual communication with the Roomba is done in the \definition{RoombaModel}
-class. It implements the aforementioned TurnWalkMotion \index{TurnWalkMotion
-(concept)} and Odometer \index{Odometer (concept)} concepts and therewith allows
-the interaction with a ControlledMotion instance. In particular, it manages the
-serial communication with the Roomba and translates the function calls
-\code{turn()}, \code{move()} and \code{stop()} of the TurnWalkMotion concept to
-the according parameters for the \ac{ROI} \cmd{Drive} command, reads a subset of
-the Roomba's sensors and presents the sensor data to the user, and, while
-implementing the Odometer concept, calculates the covered distance and angle
-from the Roomba's right and left wheel rotations.
+The actual communication with the Roomba is done in the
+\textit{RoombaModel}\index{RoombaModel (class)} class. It implements the
+aforementioned TurnWalkMotion\index{TurnWalkMotion (concept)} and
+Odometer\index{Odometer (concept)} concepts and therewith allows the interaction
+with a ControlledMotion\index{ControlledMotion (class)} instance. In particular,
+it manages the serial communication with the Roomba and translates the function
+calls \code{turn()}, \code{move()} and \code{stop()} of the TurnWalkMotion
+concept to the according parameters for the \ac{ROI} \cmd{Drive} command, reads
+a subset of the Roomba's sensors and presents the sensor data to the user, and,
+while implementing the Odometer concept, calculates the covered distance and
+angle from the Roomba's right and left wheel rotations.
 
 The sensor data is read from the Roomba using the \cmd{Stream} command on the
 \ac{ROI}, which results in a sensor data packet (see Section
This page took 0.030206 seconds and 4 git commands to generate.