There was no error correction involved (apart from any possible error
correction the Roomba itself implements in its underlying logic, and which is
not known to anyone except iRobot). To achieve this, the Wiselib Roomba Control
-is used to access the Roomba over the \ac{ROI}\index{\acs{ROI}}.
+is used to access the Roomba over the \ac{ROI}\index{Roomba Open Interface}.
\section{Setup}
\begin{figure}[htbp]
The test equipment consisted of a small x86 \index{netbook} netbook which was
mounted on an iRobot Roomba~530\index{Roomba} robot, as seen in
Figure~\ref{fig:roombasetup}. The netbook controlled the Roomba over a
-\acs{USB}-to-serial converter plugged into the Open Interface \index{\acs{ROI}}
-port on the Roomba, and hosted as the environment for executing the Wiselib
-\index{Wiselib} code.
+\acs{USB}-to-serial converter plugged into the \ac{ROI}\index{Roomba
+Open Interface} port on the Roomba, and hosted as the environment for
+executing the Wiselib \index{Wiselib} code.
In this experiment, the Roomba started right off with the full velocity the
movement was executed with; so there was no control to adhere a constant
acceleration when starting or stopping the movement. As mentioned before, due to
-limitations in the \acs{ROI}\index{\acs{ROI}} it is only possible to explicitly
-start and stop the Roomba's movements at different times, so the Wiselib's
-implementation of the Roomba control code first starts the Roomba's movement,
-keeps track of the turned angle and dcovered distance, and then stops
+limitations in the \ac{ROI}\index{Roomba Open Interface} it is only possible to
+explicitly start and stop the Roomba's movements at different times, so the
+Wiselib's implementation of the Roomba control code first starts the Roomba's
+movement, keeps track of the turned angle and dcovered distance, and then stops
the Roomba if these values exceed the target values.
The tests were done in two atomic drive modes: letting the Roomba walk a
pointed to the current orientation on the paper, as shown in
Fig.~\ref{fig:laserpointer}. The accuracy for these tests was 1~degree.
-After the initial setup, the application \prog{roomba\_tests} (see
+After the initial setup, the application \prog{roomba\_test} (see
section~\ref{sec:impl:measuring}) was started on the netbook for half-automatic
testing. It used a predefined array of nominal distances, angles and velocities
and for each pair of distance (for straight drive tests) or angle (for turn
error to increase.
The same effects also apply for turn tests. Additionally, there could be errors
-resulting from false assumptions about the Roomba's wheelbase\index{wheelbase}
+resulting from false assumptions about the Roomba's wheel base\index{wheel base}
diameter, resulting in false calculations of the circle the Roomba's wheels
describe while turning, and therefore leading to false results.