Proj-2013-2014-RobAIR-1-SRS

=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


 * The other group who work on robair : [|here]
 * official websitewebrtc.org
 * all old projects already done on RobAIR
 * the second group work on robair Proj-2013-2014-RobAIR-

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
|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 QOS 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:
 * http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
 * http://en.wikipedia.org/wiki/Software_requirements_specification
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998

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.