Proj-2013-2014-BrasRobotique-1/SRS

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

=1.  Introduction=

1.1 Purpose of the requirements document
The main goals of this document which describes the robotic arm project are :
 * allow people to discover the technology we will develop
 * explain the approach adopted and solutions we have proposed
 * provide a working basis for future improvements

1.2 Scope of the product
The long-term goal of this project is to develop a control software manipulator arm for support of persons with disabilities. There are commercial products of arms which are unfortunately too expensive and does not have control system high levels. An example is the robotic arm Jaco.

1.3 Definitions, acronyms and abbreviations
Aruco
 * It is a library for augmented reality applications based on OpenCV

Marker
 * The library relies on the use of coded markers. Each marker has an unique code indicated by the black and white colors in it. The libary detect borders, and analyzes into the rectangular regions which of them are likely to be markers. Then, a decoding is performed and if the code is valid, it is considered that the rectangle is a marker.

OpenCV
 * OpenCv ( Open Computer Vision) is a free graphic library mainly designed for real-time image processing.

 SPADE
 * SPADE (Smart Python multi-Agent Devepment Environment) is multiagent and organizations platform based on the XMPP technology and written in the Python programming language. The SPADE Agent Library is a module for the Python programming language for building SPADE agents.XMPP is the Extensible Messaging and Presence Protocol, used for instant messaging, presence, multi-party chat, voice and video calls, etc.

1.4 References
General :

This project is a school project, located in Polytech Grenoble, and supported by AIR The project page on air wiki is available through this link

Technical :

2011-2012 Project page on the AIR wiki : - http://air.imag.fr/index.php/Proj-2011-2012-BrasRobotiqueHandicap

Librairies:

Aruco - http://www.uco.es/investiga/grupos/ava/node/26

OpenCV - http://opencv.org/

SPADE - https://github.com/javipalanca/spade

1.5 Overview of the remainder of the document
The remainder of this document will present the technical characteristics of the project such as requirements and constraints, and user characteristics. Section three outlines the detailed, specific and functional requirements, performance, system and other related requirements of the project. Supporting information about appendices is also provided in this same section.

=2.  General description= The long-term goal of this project is to develop control software manipulator arm for supporting people with disabilities. There are commercial products of robotic arms which are unfortunately too expensive and does not have high level control system. Therefore, the aim is to develop a robotic arm which will be able to perform series of movements using  markers. The part described in this document will focus on the detection of markers.

2.1 Product perspective
We have to consider the possible evolution of this project.

2.2 Product functions
Marker detection

Initially, From a webcam placed on the robotic arm, it should be possible to, in real time:
 * Detect a predefined type of marker placed on an object
 * Calculate its coordinates
 * Return the marker position
 * Save the coordinates of the marker on an XML file

Data transmission

Secondly, send the obtained data to the robot to enable it to move to this object. This requires several steps:
 * Connect to the robot using the client / server model based on the system of agents
 * Send the XML file which contains the position of the marker

Simulation

The simulator have to use this information to make the robot move in the right direction.

2.3 User characteristics
This project is intended to disabled people. The robotic arm will allow them to grab distant objects. The arm can be remote-controlled. Therefore, users can be developers who can create new sequences of instructions given to the robot.

2.4 General constraints

 * Unlike existing technologies, our robotic arm must have the feature of being able to detect an object with a marker and get it back.
 * It must also be able to interpret a series of instructions that will be given to him.
 * A format is imposed for writing data : XML.
 * The file format that records the result of the detection should not be changed. This may affect the detection of the position of the object when moving it.
 * The marker detection is written in C++
 * The system of agents is written in Python
 * The simulator is written in Python

2.5 Assumptions and dependencies
The system is based on ARUCO which enables programm to get back the position of the marker and SPADE which make the data transmission through an XML file possible.

=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)
Function:

Description:

Inputs:

Source:

Outputs:

Destination:

Action:
 * Natural language sentences (with MUST, MAY, SHALL)
 * Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)
 * Mathematical Notations
 * Tabular notations for several (condition --> action) tuples

Non functional requirements:

Pre-condition:

Post-condition:

Side-effects:

=4. Product evolution=
 * Remote-control
 * Use several types of markers
 * Send coordinates in real time on an interface
 * Giving to the robot type of markers to detect as parameters
 * Automatic recalibration of the position of the robot if the detected marker position is not optimal

=5. Appendices=

5.1 Specification

 * The global project's page can be found here
 * An other RICM4 group is working on this project. Their wiki page can be found there:
 * - Proj-2013-2014-BrasRobot-Handicap-2

=6. Index=