%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (c) Andreas Hofmeier
%       http://www.lgut.uni-bremen.de/an-h/
%       http://an-h.de/
%       http://an-h.de.vu/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    This document is free software; you can redistribute it and/or
%    modify it under the terms of the GNU General Public License as
%    published by the Free Software Foundation; either version 2 of
%    the License, or (at your option) any later version.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% V1
%    Reviewed by
%	Michael Riemer
%	Jakob Sröter
%       Andreas Hofmeier
% V2 07.11.2004
%    Reviewed by
%	Dr. Shuwo Chen
%       Andreas Hofmeier
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[12pt]{article}
%\usepackage{a4,german}
\usepackage{a4}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
%\usepackage{ngerman}
\usepackage[dvips]{graphics}
\usepackage{latexsym}
\usepackage{exscale}
\usepackage{amssymb,amsmath}
%\documentclass[11pt]{report}
%\usepackage{isolatin1}
%\usepackage{german}
\usepackage{epsf}
\usepackage[dvips]{rotating}

\usepackage{longtable}
\usepackage{dcolumn}

\usepackage{listings}

%\usepackage{eurosym}
%\EUR{300}

\usepackage{multicol}
%\usepackage[dvips]{rotating}

%ENDHEAD

\parindent=0pt
\parskip=\baselineskip

%\setcounter{tocdepth}{4}
%\setcounter{secnumdepth}{4}

\pagestyle{plain}
%\pagestyle{myheadings}
%\markright{\mbox{\bf A. Hofmeier, Final Year Project: Interim Report}}

\begin{titlepage}
\title{
  \centerline{
%WAS NOT IN REPORT     \epsffile{../LSBULogo.eps}
  }
\vspace{2cm}
%WAS NOT IN REPORT-- Final Year Project --\vspace{1cm}\\
Communication Between\\Robots and a Computer via Lan\vspace{1cm}\\Interim Report}
\author{Andreas Bernhard Max Hofmeier}
%\date{12. Mai 2003}
\date{}
\end{titlepage}


\begin{document}
\maketitle

\begin{center}
\begin{tabular}{rl}

%WAS NOT IN REPORT Supervisor: & Dr. Shuwo Chen\\
Submission Date: & 09.11.2004\\
%WAS NOT IN REPORT \\
%WAS NOT IN REPORT Student: & Andreas Bernhard Max Hofmeier\\
Student ID: & 2406108\\
%WAS NOT IN REPORT Address: & Dante Road Student Residence\\
%WAS NOT IN REPORT  & Room 2G3\\
%WAS NOT IN REPORT  & 2 Dante Place\\
%WAS NOT IN REPORT  & London SE11 4RX \\
%WAS NOT IN REPORT Tele Number: & 0870 036 5618 \\
%WAS NOT IN REPORT eMail: & an-h@an-h.de
\\
Course: & Computer Systems and Networks (2388), \\
 & 3 Year, BEng, FT \\

\end{tabular}

\end{center}


\newpage
\begin{abstract}

\hspace{-0.685cm}
The proposed project is aimed to develop the software for the remote
control of robots on the Internet
\\\\
The feasibilities  of using the Internet to control
robots will be studied. Functionality analysis of the system will be
presented. In-time accessibility to the remote side via the Internet is
to be investigaten.
\\\\
The project develops a software platform in form of a library for GNU
Linux, an user interface and an interface to the robot. A simulator of the
robot will be developed to support the developing process of the whole
system.
\\\\
Up to now a initial structure of the system is developed. The aim,
the objectives and the deliverables have been specified. An example
test of the reliability and response time of some servers over the
Internet has been done.

\end{abstract}
\newpage

{\footnotesize
\tableofcontents
}
\newpage


\pagestyle{myheadings}
\markright{\mbox{\bf A. Hofmeier, Final Year Project: Interim Report}}


\section{Introduction}

Robots become more and more important because the technical progress
allows economic and useful applications. Controlling robots over short
distances with cable or wireless is not longer a problem, but more
often robots need to be controlled far away. For example a robot as
security guard or a pizza-robot is operating at home while controlled
from the office. For this demand a public communication network has to
be used.

One of the most flexible and economical possibilities is the Internet
which works packet-oriented. All data has to be fragmented before it
can be transfered. The transfer-process within the Internet can be
compared with the postal service (Ball, 1999). ``The packet should be
there within two days'' is a possible answer if the post clerk is
asked how long the packet takes. This little word ``should'' is the
problem. It should, but there is no guarantee. If many packets are
handed in, it may take a week to deliver the packet. The Internet has
the same problem even if a packet does not need a week, it cannot be
predicted how long a packet takes to be delivered. Because of this
random time delay the Internet has limits to which it can provide a
platform to control robots (Elhaji, 2000).

Within this project the feasibility of remote control of robots over
the Internet will be studied and a software platform on Linux which
provides this possibility delivered.

After the possibilities of the Internet are known the structure of a
system which uses these will be designed. The main part of the system
will be the library which is the software platform. For demonstrating
and testing purposes it is necessary to develop a user interface (UI)
which allows the user to control a robot. In one case the robot is a
simulation and in the other case a real robot. It is necessary to
develop an interface to the real robot and a simulator. These four
parts has to be assembled together.

%There are three possibilities of controlling a robot over the
%internet: direct control, supervisory control and job control
%(Kuk-Hyun, 2002).

The description of the project is following, and follows this layout:
Section 2, 3 and 4 define the aim, the objectives and the deliverables
of the project. In the next two sections the requirements and the way
for achieving the defined targets are discussed. The actual progress
of the project is mentioned in section 7. In the last section the
project plan is listed in form of an action plan and a Gantt-chart.


\newpage
\section{Aim}


The aim of the project is to develop a software platform on GNU Linux
systems (in the form of a library) for the communication between a
server and robots to realise remote control of robots over the
Internet. The communication between robots is allowed as well.


\section{Objectives}

\begin{enumerate}

\item

\begin{enumerate}

\item Feasibility study of real-time control of robots on the Internet.

\item Establishment of realistic levels according to the Internet
overloading

\item Block diagram of the architecture of the software platform

\end{enumerate}

\item

\begin{enumerate}


\item Developing the library

\item Developing the simulator and the user interface (UI)

\item Demonstrating the platform by using a simulation. Showing that it is
possible to control the simulated robot over an Internet connection.

\end{enumerate}

\item

\begin{enumerate}

\item Developing an interface to the real robot

\item Demonstrating the platform by means of the real robot. Showing that it is
possible to control the real robot over an Internet connection.

\end{enumerate}
\end{enumerate}


\section{Deliverables}

\begin{enumerate}

\item The Library (the Software Platform)

\item Documentation of the Library (API; description of the functions; how
to use)

\item User Interface

\item Documentation of the User Interface (User manual)

\item Simulator

\item Documentation of the Simulator (User manual)

\item Interface between Library and real Robot, for Demonstration.

\item Interim Report

\item Presentation

\item Final Report


\end{enumerate}


\section{Requirements to Meet Project Aim/Objectives}

\subsection{Resources to Meet Project Aim/Objectives}

\begin{enumerate}

\item Time and Work

The most important resource which is necessary to meet the project aims
is time. According the unit guide at least 300 hours have to be spent on the
project work. That are approximately 11 hours a week without Christmas and
Easter. At least this time will be spent for project work.


\item Computer and Internet

The second thing is access to a computer and the Internet. Computer
are essential in this project because the project outcome is a peace
of software and has to run on a computer. A computer will be used for
developing and testing the software. and is also necessary for using
the Internet which is indispensable to getting information and testing
the system. Computer and Internet access are available in the Learning
Resource Centre.

\item Access to a Robot

One Part of this project is to show the function of the system with
a real robot. This robot is located in the laboratory T411 at the
LSBU. For this reason access to this laboratory is necessary. 


\item Library Access

Another important source of information are books and journals which
are located in a library, for example. The necessary access is
possible in the Perry Library of the LSBU.


\item Supervisor

The assigned supervisor has to be present to supervise the project.

\end{enumerate}

\subsection{Technical Requirements}


\begin{enumerate}

\item According to the British Standard (1992) Industrial robots --
Recommendations for safety, a single point of failure must not cause
any hazards. The system have to be ensure that the robot stops if the
control-connection is broken. 

\item ``A Linux system can actually be adapted to work with as little
as 256 KB ROM and 512 KB RAM.'' (Addison, 2001) This network library
has to run on such small embedded GNU Linux systems, as a consequence
the library itself must be programmed very efficiently. Only the basic
system library (g)libc-library\footnote{This library contains the
commands for the C programming language} has to be used. According to
Mitchell (2001) the ld-linux-library is also necessary if the system
has to handel libraries dynamically (loading during the system runs).

\end{enumerate}



\section{Proposed Technical Approach}

\subsection{Basic Concept}

The Library provides the communication tools to the robot and server
control program. A command from a user goes the following way:

A user gives a command to the server control program on the user
interface. The server control program evaluates the command and sends
it throw the IP network (the Internet) by the functions in the Network
Library. The Network Library on the robot's side receives the command
and hands it over to the robot control program. The robot control
program evaluates the command again and drives the robot.

%NOTPDF
\includegraphics[width=14.54cm]{FYPInterimReport-basicstructure.eps}
%PDF
%PDF \includegraphics[width=13.15cm]{FYPInterimReport-basicstructure.eps}

This communication has to be bidirectional because it has to be
possible to get data from the robot. This is important to get the
acknowledgement for a command, get knowledge of the environment of the
robot and to monitor the robot (for example, to know what the robot is
doing now; energy repertoire and consumption).

This functionality will be implemented as a shared library for a GNU
Linux system. 


\subsection{Components of the Project}

All phases that are mentioned (marked as {\bf bold}) in the text
bellow are referring to the Gantt-chart and action plan in section
{\tt Project Planning} on page \pageref{pp}.

The project can only start after the aims and objectives are
established. This was done in the {\bf Clearing Project
Aim/Objectives}-phase.

At first a {\bf Feasibility Study} about how usable the Internet is for
controlling robots has to be done. After this part of the project it
has to be clear under which conditions the Internet can be used for
real-time application.

After the {\bf Feasibility Study} is carried out the {\bf Design
Structure}-phase begins. In this phase the design of the system has
to be worked out. The design covers the internal design of the library
and the design of the whole system (interaction between all parts:
Library, UI, simulator and the real robot). Furthermore it has to be
decided which protocol is used and which version of the Internet
protocol (IP) is preferred. A choice has to be made among TCP
socket streams, UDP, or an own protocol based on IP.

The {\bf Literature Search} is carried out simultaneous to the {\bf
Feasibility Study} and the {\bf Design Structure} because it is
necessary to take other people's work into account.

{\bf Interface to Robot}: In this part of the project an interface to
the real robot is established. The aim of this part is to take control
over of a robot. This is necessary for further stages of the project
({\bf Interface between Robot and Library}) to demonstrate the system
on the real robot. The library has to interact with the robot
therefore this part is performed in an early stage of the project. All
information gathered in this stage can help to ensure the match
between the robot and the library.

When the structure of the system is figured out the library will be
developed within the {\bf Build Library}-phase. The documentation
about the library has to be written simultaneous in the {\bf Write
Documentation (Library)}-phase. The last week of the
documentation-phase is reserved for reviews.

After a basic version of the library is developed, the {\bf Build
User Interface} and the {\bf Build Robot Simulator}-phase begins. During
the development of the user interface and the simulator it is possible
to find weaknesses of the system. Therefore these four stages are
carried out simultaneously. The simulator is a simple model of the robot
and is used to help develop and test the library. The user
interface will be used to send commands to the robot or the
simulator. 

The documentation of the user interface and the simulator has to
be written. This will be done within the {\bf Write Documentation
(UI/Simulator)}-phase of the project. The last week of this phase is
reserved for reviews.

At the end of the project the {\bf Interface to the Robot} will be
completed to the {\bf Interface between the Robot and the
Library}. This phase is called {\bf Interface between Robot and
Library}. After this phase it will be possible to control the robot
over the Internet by using the library developed before. This will be
demonstrated.

\subsection{Reports}

All reports will be completed and handed in by the
deadline. There are project-phases to write the reports
before the deadline. The Interim Report was written in the completed
{\bf Interim Report}-phase.

The Final Report will be written during the whole project in the {\bf
Final Report}-phase because this report has to show the process of
the project. Work on the Final Report will start after the {\bf
Feedback on Interim Report} is given.

Within the {\bf Prepare Presentation}-phase the presentation will be
prepared.


\section{Technical Progress to Date}

\begin{itemize}

\item Up to now the aims and objectives are clarified and the Interim Report
has been written.

\item About one third of the {\bf Feasibility Study} is done by now. Within
this phase a test of the reliability of the Internet is done. A script
was written to test the response time of some servers on the Internet
by using ping. A part of the {\bf Literature Search} is done now to
support the feasible study.

\item In addition the basic structure of the system has been worked
out.

\item Reliability and safety of the robot control have been considered.

\item Some enquiries about real-time GNU Linux on robots are done.


\end{itemize}

\section{Conclusions}

\begin{itemize}

\item The boundaries, aim, objectives and deliverables of the project
are defined now.

\item The interim report reflects the current project state, is
written and handed in in time.

\item A basic comprehension of the area needs to be enlarged.

\item The structure of the system and of the library has to be considered
and figured out.

\item It has to be decided which protocol should be used for the
communication. Choices are: TCP-socket streams, UDP, and a
self-developed protocol based on IP. In addition the version of the
Internet Protocol (IP) has to be considered.

\item After the system works in the simulation it is necessary to
demonstrate the operation on a real robot.

\item The project has to be documented well. For this reason the
documentation of the library, the UI and the simulator have to
be prepared. To deliver an evidence of project progress the interim and
final report have to be written. Additionally the project has to be
presented in a presentation and questions have to be answered
orally in the viva period.

\item One of the main problems which has to be considered is the random time
delay of an IP-Network. This is safety relevant because every robot has
to have an emergency stop.

\end{itemize}

\newpage
\section{References}


{\bf Addison, D.} (2001) Embedded Linux applications: An overview
[Online] Available at
http://www-106.ibm.com/developerworks/linux/library/l-embl.html
(accessed 20 September 2004)

{\bf Ball, P.; Farnham, J; Iraca, S.} (1999) Transmission Control
Protocol/Internet Protocol TCP/IP [Online] Available at
http://cne.gmu.edu/itcore/internet/tcpip/ tcpip.html (accessed 29
October 2004)

{\bf British Standard} (1992) Industrial robots -- Part 6:
Recommendations for safety; BS 7228-6:1992; EN 775:1992; ISO
10218:1992 [Online] Available at\\http://bsonline.techindex.co.uk/
(accessed 28 October 2004)

{\bf Elhaji, I.; Tan, J.; Xi, N.; Fung, W.K.; Liu, Y.H.; Kaga, T.;
Hasegawa, Y.; Fukuda, T.} (2000) Multi-site Internet-based cooperative
control of robotic operations. {\it Proceedings 2000 IEEE/RSJ
International Conference on Intelligent Robots and Systems}, 2, 31 Oct
- 5 Nov 2000 p826-831 [Online] Available at
http://0-ieeexplore.ieee.org.lispac.lsbu.ac.uk/iel5/7177/19309/00893121.pdf
(accessed 20 October 2004)

%{\bf Kuk-Hyun H.; Yong-Jae K.; Jong-Hwan K.; Hsia, S.} (2002)
%Internet control of personal robot between KAIST and UC Davis {\it
%Robotics and Automation, 2002. Proceedings. ICRA 02. IEEE
%International Conference on - Robotics and Automation Washington, DC},
%2, 11-15 May 2002 p2184 - 2189 [Online] Available at
%http://0-ieeexplore.ieee.org.lispac.lsbu.ac.uk/iel5/7916/21842/01014863.pdf
%(accessed 3 November 2004)

{\bf Mitchell M.; Oldham J.; Samuel A.} (2001) Advanced Linux
Programming,  New Riders Publishing [Online] Available at
http://docs.linux.cz/programming/ other/ALP/advanced-linux-programming.pdf
(accessed 20 September 2004)


\newpage
\section{Project Planning}

\subsection{Action Plan}

\begin{tabular}{|l|l|c|c|}

\hline
\multicolumn{2}{|l|}{} & Estimated Duration & \\
\multicolumn{2}{|l|}{Task} & in Weeks & Precedence \\
\hline
\hline
A & Interim Report & 3 & - \\
B & Final Report & 15 & Feedback A \\
C & Clearing Project Aim/Objectives & 5 & - \\
D & Literature Search & 8 & - \\
E & Feasibility Study & 3 & C \\
F & Prepare Presentation & 2 & - \\
G & Interface to Robot & 4 & C \\
H & Design Structure & 4 & C \\
I & Build Library & 8 & (G) \\
J & Write Documentation (Library) & 9 & (I) \\
K & Build User Interface & 7 & (I) \\
L & Build Robot Simulator & 7 & (I) \\
M & Write Documentation (UI/Simulator) & 5 & (K),(L) \\
N & Interface between Robot and Library & 3 & G,(M) \\
\hline

\end{tabular}

\begin{itemize}

\item Precedence:
\begin{itemize}

\item [X:] Task X has to be completed before the task can start.

\item [(X):] Task X has to be semi-completed before the task can
start. That means that task X has to be in a state in which is
possible to start a new task simultaneous. Tasks which run
simultaneous can have an influence among each other.

\end{itemize}

\item Duration and Overlapping

The weekly working time and effort is shared by overlapping tasks. For
example the effort to write the final report will start at a lower
level and increases during the project. On the other hand the effort
on developing the library is decreasing. The main work will be done
in the first three weeks. The last five weeks are planed for little
changes to fit the library, the UI and the simulator
together.

\newpage
\item Holiday Periodes

The holiday periods are not included in the calculation. It is
planned to do all project work within the lecture time. The holidays
are scheduled as a reserve in case that the project-work takes
longer than expected.

\end{itemize}

\subsection{Milestones}

\begin{enumerate}

\item On Tuesday, 9 November 2004, the project is defined by now and
has been started. This is reflected by the interim report which is
completed and handed in.

\item At this point (9$^{th}$ week of first semester) of the project it is possible to control the
robot with a little experimental program. The interface to the robot
is well understood.

\item In week 14 (first semester) an early simulation with library,
user interface and simulator shows the basic function of the system.

\item At the end of week seven (second semester) the system works. It
is now possible to control the robot over the Internet by using the
library. This will be demonstrated. The simulation works as well.

\item On Tuesday, 26 April 2005, the project and final report are
completed and handed in. 

\end{enumerate}


\newpage
\subsection{Project Schedule}
\label{pp}
\centerline{
%NOTPDF
\includegraphics[height=23cm]{FYPInterimReport-GanttChart.eps}
%PDF
%PDF \includegraphics[height=21cm]{FYPInterimReport-GanttChart.eps}
}



\end{document}