RobAIR2013-RICM4-Groupe3-Suivi

= the Team =

Thomas Nunes & Morgan Bidois

We are two engineering students of Polytech'Grenoble in 4th year, in RICM (Computer Networks and Multimedia Communication) with a multimedia speciality. We have a weekly time slot of six hours dedicated of this projet during the semester (january to may).

= Project objective = Our projet is a part of the RobAIR2013 project.

The common project
It's a common project with two others establishments: The RobAIR project consists of the development of a telepresence robot used for museum tours. It is a low cost robot (well below the maket price).  The platform and software used for this robot are extensible and open-source.
 * ENSIMAG, an other Grenoble engineering shool.
 * Superior Pole Design of Villefontaine.

Our sub project objectives
We are responsible in this project to:
 * The communication between the robot and the controller.
 * Visioconferencing between the robot and the controller.
 * The communication between the controller and the tablets which allows the user to controle the robot.
 * The tablet interface to controll the robot.

=Technologies used=


 * Jitsi: XMPP/Jingle client for Visioconferencing.
 * Android/JAVA for tablet interface.
 * JSON the file which containt the description of robot commands.
 * HTTP and websockets to transmit command between the serveur and tablets.
 * OSGi used to implements a dynamic component model.
 * HTML5 Can be used for Android tablet interface.

=Material=
 * 1 Intel tablet on Android.
 * 1 other Intel tablet on Ubuntu for the robot (must turn on unix platform).
 * 1 SmartTV to display the visioconferencing.
 * 1 PC connected to the SmartTV.

=Progress of the project=

The project starts the 14th january 2013 and takes place in Polytech'Grenoble.

WEEK 1: 01/14 - 01/21

 * We choose and discover the project, objective and the organisation with others teams. Project with big team, 20 persons work on this project (7 polytech electrical engineers, ~4 designers, 6 Polytech enginneers devloppers and others ~6 Ensimag enginneers devloppers).
 * We share informations with others teams to co-ordonate our works.

WEEK 2: 01/21 - 01/28

 * We organized a meeting with the 3I4 and RICM4 students. During this meeting, we talked about what everyone understood of this project and what everyone objectives are to define the common objectives and present the work of each groups.


 * We met with the three students from Pole Design de Villefontaine and they told us what they have been working on for the last month. They purpose a marketing way for the robAIR project. We will work together on the interface design to form an efficient and ergonomic Human–computer Interaction. Thus we explain to them the specifications of the future tablet interface.


 * Meeting with Rémi Barraquand at INRIA to talk about ROS framework and its API for JAVA.

WEEK 3: 01/28 - 02/03

 * Meeting of open source software.


 * Talk with Thomas Calmant and Joao Claudio Américo who worked on RobAIR 2012 project. They recommend to use OSGi to organize with a composant model our application and help us about the use of jitsi.

WEEK 4: 02/04 - 02/10

 * Meeting with RICM5 who started last week to plan the project. They purpose an overall architecture for the projet to define all interface of the differents sub-projets.
 * Lesson on ANT builder.

WEEK 5: 02/11 - 02/17

 * RICM5 present us the news changements in the architecture. Now, all the components of the application will be developed in ROS.That means, now we will have to use ROS in the side of the Robot and the server. The communications between them will have to be transparent for the ROS.
 * After speaking with RICM5, we chose to stop use libjitsi or jitsi to use libjingle. We did this choice beacause the documentation on these tools isn't very developed, and libjingle seems to be more documented because it's a google project. This choice changes the language of programming : C++.

WEEK 6: 02/18 - 02/24

 * Trying to install all the library needed to use libjingle. Get new discussion with the RICM5.
 * New changements in the project because, after this meeting, we chose to stop try using libjingle to modify jitsi. Indeed, the code of the software is too difficult and complexe to understand, that makes us unable to use it. The XMPP will continued to be used to transmit the order to the robot. The visioconferencing will be done by another framework (GStreamer).

WEEK 7: 02/25 - 03/03

 * The RICM5 asked us to begin the client-side's interface.
 * They have already done a first work, doing a server in python language for the rendering of the html pages.
 * We begin to study this existence code.

WEEK 8: 03/04 - 03/10

 * After understand how the servers work, we begin to try to modify them to have a first version. In this version, we did two buttons, which send message via websockets to the server. This was done to simulate two orders (advance and back).

WEEK 9: 03/11 - 03/17

 * We divided the work in two parts to work alone in one part. The first part, is about the rendering of the client page html in which the client will command the robot and the ohter part, is about the managment of the reservation.
 * HTML client page : try to modify the aspect of the page.
 * Reservation : begin to read and understand another code done by the RICM5, running a server to create and assignate the reservation.

WEEK 10: 03/18 - 03/24

 * Client page : Remove the buttons to put an other tool to control the robot : a virtual joystick. The virtual joystick, is a common tool in video game on the tablet that why we choose to implement it. In function of the joystick's position, we send the order to server : advance, back, left, right.
 * Reservation : Modification of the server to be able to connect to it from the client and controle the access to the command page. To be able to connect to the application, you have to enter a valid jabber identifiant (test@test.gmail by example). This control is established because the visioconferencing need it to work.

WEEK 11: 02/25 - 02/31
=Appendices=

Specification

 * SRS.
 * UML.