Difference between revisions of "Talk:Proj-2014-2015-SmartCampus2015/SRS"

From air
Jump to navigation Jump to search
Line 1: Line 1:
  +
=1. Introduction=
[[Image:SmartCampus-logo.png|400px|thumb|right]]
 
  +
==1.1 Purpose of the requirements document==
[[Image:SmartCampus2014-001.jpg|400px|thumb|right]]
 
  +
This Software Requirements Specification (SRS) identifies the requirements for the [[RobAIR2013 | RobAIR]] project. The purpose of the present document is to explain how we organize our project, the different steps of the conception and the project achievement.
[[Image:SmartCampus-RICMTeam2014.jpg|400px|thumb|right|SmartCampus's Team working hard !]]
 
  +
==1.2 Scope of the product==
Encadrants : Didier Donsez <br>
 
  +
* The purpose of this project is to send and receive video by webRTC protocol. Moreover, we need to control ROBAIR with our graphic interface.
Etudiants : (mailing list du projet : [mailto:smartcampus2015@googlegroups.com <smartcampus2014@googlegroups.com>])
 
  +
* It is a low cost robot (well below the maket price).
* Augustin Husson (chef de projet)
 
  +
* The platform and software used for this robot are extensible and open-source.
* Jérôme Barbier
 
  +
==1.3 Definitions, acronyms and abbreviations==
* Rodolphe Freby
 
  +
* '''WebRTC''' : Web Real-Time Communication is an API definition drafted by the World Wide Web Consortium (W3C) that supports browser-to-browser applications for voice calling, video chat, and P2P file sharing without plugins.
* Labat Paul
 
  +
* '''Arduino''' : It is a open-source board with a microcontroller, intended to make the application of interactive objects or environments more accessible.
* Adji Sambe
 
  +
* '''ROS''' : Robot Operating System is a software framework for robot software development, (see also Robotics middleware) providing operating system-like functionality on a heterogeneous computer cluster.
<br>
 
  +
* '''telepresence''': It is refers to a set of technologies which allow a person to feel as if they were present, to give the appearance of being present.
Les documents importants :
 
  +
* '''Ubuntu''' : is a computer operating system based on the Debian Linux distribution and distributed as free and open source software, using its own desktop environment.
* Le dépôt Git se trouve [https://github.com/Nexucis/SmartCampus ici]
 
  +
* '''P2P''' : Peer-to-Peer Protocol is an Application-layer protocol that can be used to form and maintain an overlay among participant nodes. It provides mechanisms for nodes to join, leave, publish, or search for a resource-object in the overlay.
   
  +
==1.4 References==
= Présentation du projet =
 
  +
* The global project's page can be found [[RobAIR2014|here]].
Le projet a débuté le 28 janvier 2015 et va durer environ 2 mois. La page complète du projet se trouve [http://air.imag.fr/index.php/SmartCampus2015 ici]
 
  +
* The last RICM4 groups are working on this project. Here are their wiki page:
  +
:- [[RobAIR2013-RICM4-Groupe1-Suivi | Group 1]]
  +
:- [[RobAIR2013-RICM4-Groupe2-Suivi | Group 2]]
  +
:- [[RobAIR2013-RICM4-Groupe3-Suivi | Group 3]]
  +
* official website[http://www.webrtc.org/ webrtc.org]
  +
* all old projects already done on [http://air.imag.fr/index.php/RobAIR RobAIR]
  +
* the second group work on robair [http://air.imag.fr/index.php/Proj-2013-2014-RobAIR-2 Proj-2013-2014-RobAIR-]
   
  +
==1.5 Overview of the remainder of the document==
<br>
 
  +
The rest of the SRS examines the specifications of the [[robAIR2014 | robAIR2014]] project in details. Section two of the SRS presents the general factors that affect the robAIR and its requirements, such as user characteristics and project constraints. Section three outlines the detailed, specific and functional requirements, performance, system and other related requirements of the project. Supporting information about appendices is provided in Section three.
L’équipe est formée de 5 membres de RICM5, tous sont en option Systèmes et Réseaux. Le chef de projet est Augustin Husson.<br>
 
   
  +
=2. General description=
Durant ce projet innovant, nous utilisons la méthodologie Agile et le Scrum Master est Jérôme BARBIER. La durée d’un sprint a été déterminée à une semaine.
 
  +
==2.1 Product perspective==
  +
At first, the user goal is very simple. In fact, he just need to log on our website on join robair connection. After that, he will be able to send/receive video conferance, control the robot with our graphic interface.<br>
  +
How will work our project ? The user will be connected by websocket to ROBAIR. Next, he will send/receive data (like move commande or video stream) by webrtc channel. When Robair receive the command, he will send it to ROS to do some actions (except stream).
   
  +
==2.2 Product functions==
= Progression du projet =
 
  +
[[File:connection.png|400px]]|It's was how webRTC connection works<br/>
11 sous-projets ont été identifiés et décrits à travers ce diagramme :
 
  +
If a user want to join ROBAIR, he will click on "JoinRobair" button. If he want to shut down his stream video, he will click on "stop Video Stream" button.
[[File:gantt1.png | 1050px| center| thumb | Diagramme de Gantt prévisionnel]]
 
  +
We need a ROS node to convert webrtc instructions to ROS.
   
  +
The robot interface functions:
== Sprint 1 : du 02/02 au 10/02 ==
 
  +
::- Control the robot
* compréhension du sujet et de ce qui a été fait précédemment.
 
  +
::- close/add stream video
* Mettre en place un serveur DHCP
 
  +
::- join/close channel to communicate with ROBAIR
   
  +
==2.3 User characteristics==
== Sprint 1 : du 03/02 au 09/02 ==
 
  +
The user doesn’t need to be familiar with programming and doesn't need a specific formation.<br>
[[File:Archi02.png | 450px| right| thumb | Architecture globale de SmartCampus (M : extrémité d'une communication MQTT)]]
 
  +
He just needs to know how to use a tablet and a television
'''Tâches principales'''
 
* Génie Logiciel : finir l'architecture du projet (1ère version)
 
** détailler le diagramme de classe
 
** diagramme contexte, use-cases, scenarii d'utilisation, etc.
 
** mettre au propre les schémas
 
** finir le cahier des charges et rédiger MPI
 
   
  +
==2.4 General constraints==
* Recherches et application des technologies
 
  +
*Platform constraints:
** voir si le couplage Arduino/OpenHab est possible (voir le [http://air.imag.fr/index.php/SmartCampus2014/Tutoriels#Comment_se_connecter_en_SSH_.C3.A0_la_carte_Galileo tutoriel pour se connecter à la carte en SSH])
 
  +
::- ROS must operate on an Ubuntu platform.
** faire un choix de techno : Titanium/[[PhoneGap]] en fonction de la RA
 
  +
::- The Platform need some of this two browsers : chrome/mozilla
** petite démo de la techno choisie
 
  +
*Environemental constraints:
  +
::- Wifi with Internet access for the robot and for the controller.
  +
::- The robot can’t climb up steep slopes.
   
  +
==2.5 Assumptions and dependencies==
* Maquette
 
  +
::- The robot site has wifi access in all the visit area.
** plan papier de la maquette (nombre de bâtiments, localisation, etc.)
 
  +
::- The robot base can be accessed at any time.
** plan SVG des pièces de base pour la découpeuse laser
 
  +
::- The robot can be connected with many users
** matériel externe (train LEGO, objets imprimante 3D, ...)
 
  +
::- The robot can be control by one user.
<br>
 
   
  +
=3.Specific requirements, covering functional, non-functional and interface requirements=
'''Tâches additionnelles'''
 
  +
* document external interfaces,
* Contacter CROUS, semitag, METRO pour l'open data
 
  +
* describe system functionality and performance
* Recherche d'une alternative à l'[[Arduino]] si il ne supporte pas openHAB ([[Windows Azure]], [[Raspberry Pi]])
 
  +
* specify logical database requirements,
* Petite démo d'openHAB avec cette alternative
 
  +
* design constraints,
* Couplage de openHAB avec Mosquitto (voir le [http://air.imag.fr/index.php/SmartCampus2014/Tutoriels#Comment_utiliser_openHAB_avec_Mosquitto_.3F tutoriel dédié])
 
  +
* emergent system properties and quality characteristics.
   
  +
==3.1 Requirement X.Y.Z (in Structured Natural Language)==
   
  +
Requirement : chrome/mozilla browser must be installed, internet connection between our application and robair, battery charged, access to steering commands the robot, all requirements of last years projects, ROS is used only on Linux systems.
[[File:SmartCampusMaquette02.png | 450px| center | thumb | Plan de la maquette (3x2m)]]
 
  +
  +
'''Function''': receive video trafic, put it on our interface and add directional buttun for control robair remotely via webRTC encoding
   
  +
'''Description''': use browser interface for video-conference to allow us to control robair
== Sprint 2 : du 10/02 au 16/02 ==
 
[[File:smart2014-prototype0.jpg | 200px| right| thumb | Premier prototype de bâtiment]]
 
*'''[[Arduino Galileo]]'''
 
** Installation d'un OS sur Arduino Galileo avec une jvm et le système arduino
 
** Openhab sur [[Arduino Galileo]]
 
** Connexions avec des capteurs / ajout de shield arduino
 
** Mosquitto sur Arduino Galileo
 
** Intégration du projet Smart Citizen
 
 
* '''Serveur MQTT / http'''
 
** Recherche technologique (voir le tutoriel sur [http://air.imag.fr/index.php/SmartCampus2014/Tutoriels#Mis_en_place_d.27une_base_de_donn.C3.A9e_mongodb_.28en_locale.29 mongodb], [http://air.imag.fr/index.php/SmartCampus2014/Tutoriels#Mis_en_place_NodeJs_Mongoose Node.js Mongoose] et le [http://air.imag.fr/index.php/SmartCampus2014/Tutoriels#Mis_en_place_NodeJs_Mongoose_MQTT couplage Mongoose/MQTT])
 
** Un prototype alliant serveur MQTT et HTTP
 
** Schéma de base de donnée
 
   
  +
'''Inputs''': webcam, directionnal buttons, voice buttons, create and join channel.
* '''Application Cliente de réalité augmentée'''
 
** Prototype avec lecture d’un [[QRCode]] et affichage du numéro lu
 
** Design IHM de l’application : maquettes avec des traits tordus
 
   
  +
'''Source''': directional button, webcam, webrtc
* '''Maquette'''
 
** Plans SVG d'un prototype
 
** Découpe d’un premier prototype
 
<br>
 
   
  +
'''Outputs''': webcam, directions information, voices information
== Sprint 3 : du 17/02 au 23/02 ==
 
* '''Arduino Galileo'''
 
** OS sur Arduino Galileo / JVM / openHAB / Mosquitto
 
** Intégration avec le serveur
 
   
  +
'''Destination''': robair for the direction, robair and us application for the video
* '''Application mobile'''
 
** Recherche technologique (bootstrap, map, pop-ups, plein-écran, etc.)
 
** Mise au propre sur wiki
 
** Petite démo : une map avec éléments cliquables (voir le [http://air.imag.fr/index.php/SmartCampus2014/Tutoriels#Int.C3.A9grer_une_carte_Google_et_fixer_ses_limites tutoriel dédié])
 
   
* '''Maquette'''
+
'''Action''':
  +
* Etablished connection between many user
** Plans de tous les bâtiments (planches de 60*40cm) --> Changement de la taille de la maquette
 
  +
* Send/receive video stream
  +
* Controle ROBAIR with our interface
  +
* Send data (text, sound, directionnal command)
   
  +
'''Non functional requirements''':
<br>
 
  +
::- beautiful HMI.
'''Tâches additionnelles'''
 
  +
::- We can't restart video after shut down the stream.
* Découpe de la moitié des bâtiments
 
  +
::- we can't redirect the video stream to a other device.
* Montage des bâtiments (chercher de la colle à bois)
 
  +
::- All users have the directionnal buttons in their interface. We want only one (in progress...)
* Découpe routes, terrains, pistes cyclables
 
* Une cafetière dans la salle robotique
 
<br>
 
   
  +
'''Pre-condition''':
== Sprint 4 : du 24/02 au 02/03 ==
 
  +
*materials conditions:
* '''Arduino Galileo'''
 
  +
::- A RobAIR must be connected in the selected place.
** OS sur Arduino Galileo / JVM / openHAB / Mosquitto
 
  +
::- A server to log our website connection.
** Capteurs : pression, température, humidité, NFC, leds, affichage, air quality, afficheur 7 segments, etc.
 
  +
::- A equipments with chrome or mozilla browsers.
*** leds : chenillard, bouton poussoir
 
*** température : alerte led + speaker quand dépassement d'un seuil, affichage sur 7 segments
 
*** compteur : BP + afficheur 7 segments
 
(voir les [http://air.imag.fr/index.php/SmartCampus2014/TutoArduino tutoriels dédiés])
 
   
  +
*Software conditions:
* '''Application mobile'''
 
  +
::- Install the RobAIR2014-Server software on the ubuntu server on ROBAIR.
** Finir design
 
  +
::- Just need lastest chrome/mozilla version.
** Présentation et validation du design (par le groupe)
 
** Petite démo : un mode plein écran + layout (menu top, barre de notifications et conteneurs)
 
   
* '''Serveur'''
+
'''Post-condition''':
  +
::- The user can do videoconferencing with people who met the robot.
** Décision sur la méthode de remplissage de la BD
 
  +
::- The user can control the robot by us interface.
** Finir le serveur + README
 
  +
::- The user can send voices data to robair speak.
** Simple interface admin SmartCampus (récupérer des données en ajax)
 
   
* '''Maquette'''
+
'''Side-effects''':
  +
::- bit latency of the stream (in general the quality is nice).
** Refaire le plan de la maquette (changement de dimensions)
 
  +
::- sometimes we have a fail of connection, just restart the connection and all will be functional.
** Plans de tous les bâtiments (planches de 60*40cm)
 
   
  +
=4. Product evolution=
* '''Interface administrateur'''
 
  +
::- add other project like '''COQP''' to selected whitch ROBAIR you want.
** Design à gros grain : analyse des besoins et aspect général
 
  +
::- Switch between different robots.
** Recherche technologique (Ajax, template avec jade, approche modulaire (widgets), etc.)
 
  +
::- Control the robot thanks to a neuronal device.
  +
::- Thanks to a lidar, the robot makes its own map. (in progress...)
  +
::- Ability to read QRcodes and display related contents on the tablet.
  +
::- able to do as we want talk and not with previously saved text
   
  +
=5. Appendices=
<br>
 
   
  +
==5.1. SRS structure==
== Sprint 5 : du 10/03 au 16/03 ==
 
  +
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.
   
* '''Arduino Galileo'''
+
'''References:'''
  +
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
** Sketch sur Galileo
 
  +
* http://en.wikipedia.org/wiki/Software_requirements_specification
** Mise en réseaux des Galileo
 
  +
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]
** Intégration aux autres sous-projets
 
** Capteurs + Mosquitto
 
** Capteurs de pression (tam tam en papier)
 
** Câblage électrique des Arduino
 
   
  +
==5.2 Sources==
* '''Application mobile'''
 
  +
::- The other groups who work on ROBAIR :
** Intégration avec le serveur : afficher des éléments
 
  +
::- [https://developer.mozilla.org/fr/docs/WebRTC developer.mozilla.org] <br>
** Intégration avec le serveur : envoyer des éléments (crowdsourcing)
 
  +
::- [http://www.html5rocks.com/en/tutorials/webrtc/basics/ www.html5rocks.com] <br>
** Test avec GeckoView
 
  +
::- [http://www.w3.org/TR/2013/WD-webrtc-20130910/ www.w3.org] (official documentation)<br>
** Test plus complet ChromeView
 
  +
::- [http://www.simpl.info/index.html www.simpl.info] <br>
** Travailler le crowdsourcing
 
   
  +
==5.3 Licensing Requirements==
* '''Serveur'''
 
  +
RobAIR will be released under a GPL license and will be open-source.
** Super admin SmartCampus : fonctionnalités (+ implémentation) et design interface
 
** Tuto pour ajouter une route personnalisée
 
** Documentation du serveur
 
 
* '''Maquette'''
 
** Plans de tous les bâtiments, qui rentrent sur des planches de 60*40cm
 
** Découpe laser de la moitié (ou plus) des bâtiments
 
 
* '''Interface administrateur'''
 
** Premier jet rudimentaire avec layouts + (système widgets)
 
** Intégration avec le serveur
 
** Ajout d’un système d’identification
 
 
* '''Robots'''
 
** Recherche techno
 
** Robots multi-langage ? (javascript, perl, C, scala, lua, ocaml, java ou autre…)
 
** Robot pour les menus du CROUS
 
** Robots pour les événements CROUS, EVE, UJF
 
** Robot pour le covoiturage : application mash-up de sites spécialisés
 
** COQP : prise de contact, étude du code
 
** Casier NFC : contact de l’équipe
 
<br>
 
 
== Sprint 6 : du 17/03 au 23/03 ==
 
[[Image:SmartCampus-LaserCuttedBuilding1.jpg|200px|thumb|right|Laser Cut Buildings for SmartCampus]]
 
[[Image:SmartCampus-LaserCuttedBuilding2.jpg|200px|thumb|right|Laser Cut Buildings for SmartCampus]][[Image:SmartCampus-LaserCuttedBuilding3.jpg|200px|thumb|right|Laser Cutted Building for SmartCampus]]
 
 
* '''Arduino Galileo'''
 
** Recherche communication ino/python
 
** Dupliquer les OS Galileo
 
** Mise en réseaux des Galileo
 
 
(voir les [http://air.imag.fr/index.php/SmartCampus2014/TutoGalileo tutoriels sur Galileo])
 
 
* '''Application mobile'''
 
** Intégration avec le serveur
 
** Informations simple (lampadaire cassé)
 
** MAP
 
** Intégrer les différents éléments : applis, map, covoiturage, etc.
 
** Test avec GeckoView/ChromeView
 
 
* '''Serveur'''
 
** Charge la BD de mock data
 
** Super admin SmartCampus
 
 
* '''Maquette'''
 
** Montage des maquettes
 
** Découpe du terrain, routes, tram, etc.
 
** Disposer les QRcodes
 
 
* '''Robots'''
 
** Robots pour EVE
 
** Intégration COQP
 
** Intégration Casier NFC (contact de l’équipe pour accès à leur BD, lancer le code sur nos machine)
 
** Robot pour la TAG/metro
 
** Horaires pour les arrêts de tram
 
** Événement (travaux, greves)
 
<br>
 
 
== Sprint 7 : du 24/03 au 27/03 ==
 
* '''Arduino Galileo'''
 
** Dupliquer les OS Galileo
 
** Mettre à jour l'interface d'OpenHAB
 
** Préparer la démo (capteurs, OpenHAB, etc.)
 
 
(voir les [http://air.imag.fr/index.php/SmartCampus2014/TutoGalileo tutoriels sur Galileo])
 
 
* '''Application mobile'''
 
** Test de l'application sur mobile pour la démo
 
** Retouches
 
** Intégrer les horaires de tram
 
** Mise à jour des descriptions
 
** Super admin SmartCampus (ajout item OpenHAB)
 
** Mise en production sur le cloud
 
 
* '''Maquette'''
 
** Disposer les QRcodes
 
 
* '''Interface administrateur'''
 
** Terminer l’application
 
 
*'''Autres'''
 
** Casier NFC (projet Walid et Lotfi)
 
** Finir les READMEs et nettoyer le dépot
 
 
* '''Soutenance'''
 
** Diapos
 
** Flyer + poster
 
** Finir wiki Air
 
<br>
 
 
= Galerie =
 
[[Image:SmartCampus2014-001.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-002.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-003.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-004.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-005.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-006.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-007.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-008.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-009.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-010.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-011.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-012.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-013.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-014.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus2014-015.jpg|200px|Smart Campus 2014]]
 
[[Image:SmartCampus-logo.png|200px|Logo]]
 
[[Image:SmartCampus-RICMTeam2014.jpg|200px||SmartCampus's Team working hard !]]
 
[[Image:SmartCampusMaquette02.png|200px|Plan de la maquette (3x2m)]]
 
[[Image:SmartCampusSEMICON01.jpg|200px|Demo SmartCampus @ SEMICOM2014]]
 
 
= Vidéos =
 
Vous trouverez ci-desous des liens youtube sur des vidéos d'un partie de notre démo :
 
*[http://youtu.be/yzhQsh858uI Allumage+Extinction Leds via openhab avec Galileo sketch arduino]
 
*[https://www.youtube.com/watch?v=jeICG9IgD6E Visualisation de donnnées d'un capteur d'humidité et d'un capteur de pollution via Openhab avec Galileo sketch arduino]
 
* [https://www.youtube.com/watch?v=i1yOKK2O4fY&feature=youtu.be Une vidéo de notre maquette]
 
 
= Documents et liens annexes =
 
* Le dépôt Git se trouve [https://github.com/LaureneGuelorget/SmartCampus2014 ici]
 
* Le cahier des charges se trouve [http://air.imag.fr/index.php/SmartCampus2014/CDC ici]
 
* [http://air.imag.fr/index.php/SmartCampus2014/Tutoriels Tutoriels maison]
 
* [http://air.imag.fr/index.php/SmartCampus2014/TutoArduino Tutoriels Arduino]
 
* [http://air.imag.fr/index.php/SmartCampus2014/TutoGalileo Tutoriels Galileo]
 
 
= Récompenses =
 
* [http://www.trophee-objets-connectes.fr/ 1er Trophée des Objets Connectés] : [https://twitter.com/umanlife/status/479677774341627904/photo/1 Prix projet de recherche]
 
 
[[Image:SmartCampus-Trophee-Equipe-1.jpg|200px|Trophée Objets Connectés pour Smart Campus 2014]][[Image:SmartCampus-Trophee-Equipe-2.jpg|400px|Trophée Objets Connectés pour Smart Campus 2014]]
 
 
= Présentations / Expositions =
 
==EclipseCon Toulouse 2014==
 
Démonstration à distance
 
 
==Makerfaire Paris 2014==
 
http://www.makerfaireparis.com/
 
 
Sur le stand Intel Software Academic
 
 
==SEMICON, Grenoble==
 
Présentation au salon SEMICOM 2014, Grenoble, http://www.semiconeuropa.org/
 
 
[[Image:SmartCampusSEMICON01.jpg|300px|Demo SmartCampus @ SEMICOM2014]]
 
==Journée GreLibre, Grenoble==
 
Journee GreLibre Open Data et Open SOurce le 18/10/2014 à la Mairie de Grenoble.
 

Revision as of 14:54, 9 March 2015

1. Introduction

1.1 Purpose of the requirements document

This Software Requirements Specification (SRS) identifies the requirements for the RobAIR project. The purpose of the present document is to explain how we organize our project, the different steps of the conception and the project achievement.

1.2 Scope of the product

  • The purpose of this project is to send and receive video by webRTC protocol. Moreover, we need to control ROBAIR with our graphic interface.
  • It is a low cost robot (well below the maket price).
  • The platform and software used for this robot are extensible and open-source.

1.3 Definitions, acronyms and abbreviations

  • WebRTC : Web Real-Time Communication is an API definition drafted by the World Wide Web Consortium (W3C) that supports browser-to-browser applications for voice calling, video chat, and P2P file sharing without plugins.
  • Arduino : It is a open-source board with a microcontroller, intended to make the application of interactive objects or environments more accessible.
  • ROS : Robot Operating System is a software framework for robot software development, (see also Robotics middleware) providing operating system-like functionality on a heterogeneous computer cluster.
  • telepresence: It is refers to a set of technologies which allow a person to feel as if they were present, to give the appearance of being present.
  • Ubuntu : is a computer operating system based on the Debian Linux distribution and distributed as free and open source software, using its own desktop environment.
  • P2P : Peer-to-Peer Protocol is an Application-layer protocol that can be used to form and maintain an overlay among participant nodes. It provides mechanisms for nodes to join, leave, publish, or search for a resource-object in the overlay.

1.4 References

  • The global project's page can be found here.
  • The last RICM4 groups are working on this project. Here are their wiki page:
- Group 1
- Group 2
- Group 3

1.5 Overview of the remainder of the document

The rest of the SRS examines the specifications of the robAIR2014 project in details. Section two of the SRS presents the general factors that affect the robAIR and its requirements, such as user characteristics and project constraints. Section three outlines the detailed, specific and functional requirements, performance, system and other related requirements of the project. Supporting information about appendices is provided in Section three.

2. General description

2.1 Product perspective

At first, the user goal is very simple. In fact, he just need to log on our website on join robair connection. After that, he will be able to send/receive video conferance, control the robot with our graphic interface.
How will work our project ? The user will be connected by websocket to ROBAIR. Next, he will send/receive data (like move commande or video stream) by webrtc channel. When Robair receive the command, he will send it to ROS to do some actions (except stream).

2.2 Product functions

Connection.png|It's was how webRTC connection works
If a user want to join ROBAIR, he will click on "JoinRobair" button. If he want to shut down his stream video, he will click on "stop Video Stream" button. We need a ROS node to convert webrtc instructions to ROS.

The robot interface functions:

- Control the robot
- close/add stream video
- join/close channel to communicate with ROBAIR

2.3 User characteristics

The user doesn’t need to be familiar with programming and doesn't need a specific formation.
He just needs to know how to use a tablet and a television

2.4 General constraints

  • Platform constraints:
- ROS must operate on an Ubuntu platform.
- The Platform need some of this two browsers : chrome/mozilla
  • Environemental constraints:
- Wifi with Internet access for the robot and for the controller.
- The robot can’t climb up steep slopes.

2.5 Assumptions and dependencies

- The robot site has wifi access in all the visit area.
- The robot base can be accessed at any time.
- The robot can be connected with many users
- The robot can be control by one user.

3.Specific requirements, covering functional, non-functional and interface requirements

  • document external interfaces,
  • describe system functionality and performance
  • specify logical database requirements,
  • design constraints,
  • emergent system properties and quality characteristics.

3.1 Requirement X.Y.Z (in Structured Natural Language)

Requirement : chrome/mozilla browser must be installed, internet connection between our application and robair, battery charged, access to steering commands the robot, all requirements of last years projects, ROS is used only on Linux systems.

Function: receive video trafic, put it on our interface and add directional buttun for control robair remotely via webRTC encoding

Description: use browser interface for video-conference to allow us to control robair

Inputs: webcam, directionnal buttons, voice buttons, create and join channel.

Source: directional button, webcam, webrtc

Outputs: webcam, directions information, voices information

Destination: robair for the direction, robair and us application for the video

Action:

  • Etablished connection between many user
  • Send/receive video stream
  • Controle ROBAIR with our interface
  • Send data (text, sound, directionnal command)

Non functional requirements:

- beautiful HMI.
- We can't restart video after shut down the stream.
- we can't redirect the video stream to a other device.
- All users have the directionnal buttons in their interface. We want only one (in progress...)

Pre-condition:

  • materials conditions:
- A RobAIR must be connected in the selected place.
- A server to log our website connection.
- A equipments with chrome or mozilla browsers.
  • Software conditions:
- Install the RobAIR2014-Server software on the ubuntu server on ROBAIR.
- Just need lastest chrome/mozilla version.

Post-condition:

- The user can do videoconferencing with people who met the robot.
- The user can control the robot by us interface.
- The user can send voices data to robair speak.

Side-effects:

- bit latency of the stream (in general the quality is nice).
- sometimes we have a fail of connection, just restart the connection and all will be functional.

4. Product evolution

- add other project like COQP to selected whitch ROBAIR you want.
- Switch between different robots.
- Control the robot thanks to a neuronal device.
- Thanks to a lidar, the robot makes its own map. (in progress...)
- Ability to read QRcodes and display related contents on the tablet.
- able to do as we want talk and not with previously saved text

5. Appendices

5.1. SRS structure

The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.

References:

5.2 Sources

- The other groups who work on ROBAIR :
- developer.mozilla.org
- www.html5rocks.com
- www.w3.org (official documentation)
- www.simpl.info

5.3 Licensing Requirements

RobAIR will be released under a GPL license and will be open-source.