Proj-2013-2014-RobAIR-1-SRS: Difference between revisions

From air
Jump to navigation Jump to search
 
(7 intermediate revisions by the same user not shown)
Line 15: Line 15:


==1.4 References==
==1.4 References==
* The global project's page can be found [[RobAIR2014|here]].
* 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]
* official website[http://www.webrtc.org/ webrtc.org]
* all old projects already done on [http://air.imag.fr/index.php/RobAIR RobAIR]
* 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-]
* the second group work on robair [http://air.imag.fr/index.php/Proj-2013-2014-RobAIR-2 Proj-2013-2014-RobAIR-]
* so much git on webrtc. The most importante are : - [https://developer.mozilla.org/fr/docs/WebRTC developer.mozilla.org] <br>
::- [http://www.html5rocks.com/en/tutorials/webrtc/basics/ www.html5rocks.com] <br>
::- [http://www.w3.org/TR/2013/WD-webrtc-20130910/ www.w3.org] (official documentation)<br>
::- [http://www.simpl.info/index.html www.simpl.info] <br>


==1.5 Overview of the remainder of the document==
==1.5 Overview of the remainder of the document==
Line 32: Line 33:


==2.2 Product functions==
==2.2 Product functions==
[[File:connection.png|400px|It's was how webRTC connection works]]<br/>
[[File:connection.png|400px]]|It's was how webRTC connection works<br/>
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.
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.
We need a ROS node to convert webrtc instructions to ROS.
Line 54: Line 55:


==2.5 Assumptions and dependencies==
==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=
=3.Specific requirements, covering functional, non-functional and interface requirements=
Line 64: Line 69:
==3.1 Requirement X.Y.Z (in Structured Natural Language)==
==3.1 Requirement X.Y.Z (in Structured Natural Language)==


Requirement : skype must be installed, internet connection between us application and robair, battery charged, access to steering commands the robot, all requirements of last years projects, ROS is used only on Linux systems
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 us interface and add directional buttun for control robair remotely via skype encoding (for VoIP)
'''Function''': receive video trafic, put it on our interface and add directional buttun for control robair remotely via webRTC encoding


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


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


'''Source''': directional button, webcam, skype
'''Source''': directional button, webcam, webrtc


'''Outputs''': webcam, directions information
'''Outputs''': webcam, directions information, voices information


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


'''Action''':
'''Action''':
* Etablished connection between many user
* Natural language sentences (with MUST, MAY, SHALL)
* Send/receive video stream
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)
* Controle ROBAIR with our interface
* Mathematical Notations
* Send data (text, sound, directionnal command)
* Tabular notations for several (condition --> action) tuples


'''Non functional requirements''':
'''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''':
'''Pre-condition''':
*materials conditions:
*materials conditions:
::- A RobAIR 2013 connected in the selected place.
::- A RobAIR must be connected in the selected place.
::- A ubuntu server connected to a display device and a camera.
::- A server to log our website connection.
::- A equipments with chrome or mozilla browsers.
::- A android/windows/Linux tablet.


*Software conditions:
*Software conditions:
::- Install the RobAIR2013-Server software on the ubuntu server.
::- Install the RobAIR2014-Server software on the ubuntu server on ROBAIR.
::- Just need lastest chrome/mozilla version.
::- Install the RobAIR2013 android application.
::- skype must be used in the server and client.


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


'''Side-effects''': latency? used a new interface and not skype interface
'''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=
=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. Appendices=
Line 115: Line 132:
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]


=6. Index=
==5.2 Sources==
::- The other groups who work on ROBAIR :
::- [https://developer.mozilla.org/fr/docs/WebRTC developer.mozilla.org] <br>
::- [http://www.html5rocks.com/en/tutorials/webrtc/basics/ www.html5rocks.com] <br>
::- [http://www.w3.org/TR/2013/WD-webrtc-20130910/ www.w3.org] (official documentation)<br>
::- [http://www.simpl.info/index.html www.simpl.info] <br>

==5.3 Licensing Requirements==
RobAIR will be released under a GPL license and will be open-source.

Latest revision as of 12:54, 8 April 2014

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.