dds (eagle eye - helicopter surveillance)
TRANSCRIPT
Senior Design Documentation Library Detailed Design Specification
Department of Computer Science and Engineering
the University of Texas at Arlington
Chapter 2: Documenting the Architecture
Eagle Eye
Team Members: Berkins, Nicholas
Sanders, Baron (TL) Shrestha, AmitTran, Nguyen
Last Updated: d MMMM yyyy 40113.1291666667 h:mm:ss am/pm
Copy Printed: d MMMM yyyy 39783.39375 h:mm:ss am/pm
Detailed Design Specification 1
Senior Design Documentation Library Detailed Design Specification
Table of Contents
1 Documenting the Detailed Designed Specification 4
1.1 Overview 41.2 Outline 41.3 Purpose41.4 Scope 41.5 Abbreviations 51.6 System Requirements 5
2 Layer Definition 6
2.1 Layer-Name and Description 6
2.1.1 Main Control Layer 6
2.1.2 User Interface Layer 6
2.1.3 Data Capture Layer 6
2.1.4 Target Identification Layer 6
2.1.5 Storage Layer 6
2.2 Inter Layer Data Flow Description 7
3 Inter-Subsystem Dataflow Section 8
4 Component Design 11
4.1 Data Capture Layer 11
4.1.1 Telemetry Acquisition Subsystem11
4.1.2 Video Stream Acquisition Subsystem 13
4.1.3 Capture Controller Subsystem 14
4.2 Target Identification Layer 16
4.2.1 Target Identification Subsystem 16
4.3 Storage Layer 18
4.3.1 Storage Manager Layer Subsystem 18
4.3.2 Video Recordings Layer Subsystem 20
Detailed Design Specification 2
Senior Design Documentation Library Detailed Design Specification
4.3.3 Identified Target Storage Layer Subsystem 21
4.3.4 Attributes Training Set Subsystem 22
4.4 User Interface Layer 23
4.4.1 GUI Subsystem 23
4.5 Main Control Layer 25
4.5.1 System Control Subsystem 25
5 Quality Assurance 29
5.1 Test Plans and Procedure 295.2 Modular/Unit Tests 295.3 Component Tests 295.4 Integration Tests 29
6 Requirements Traceability Matrix 29
7 Acceptance Plan 31
7.1 Criteria 31
7.1.1 The Eagle Eye system shall accept a video stream 31
7.1.2 The Eagle Eye system shall recognize the characteristics of a target with a given video stream and other data from the HC. 31
7.1.3 The Eagle Eye system shall output the targets and their attributes. 32
Detailed Design Specification 3
Senior Design Documentation Library Detailed Design Specification
1 Documenting the Detailed Designed Specification
1.1 Overview
This document specifies the detailed design for the Eagle Eye project. The motivation here is to enable explaining in the details all components of the system listed in the Eagle Eye’s Architecture Design Document as well as the components’ functions and relations to other components.
1.2 Outline
The basic outline of the detailed design description is Introduction Architecture Overview Component Design Quality Assurance Requirements Traceability Matrix Acceptance Plan
1.3 Purpose
The purpose of this project is to provide a software system on a ground control station to receive telemetry data and a video stream from an outside source. The software station will identify targets from the video stream and also locate targets using telemetry data. This system will be called Eagle Eye.
1.4 Scope
The system is designed to compete in the Unmanned Vehicle Systems International (AUVSI). This system can also be beneficial, if it is used in the senior design lab or with modifications could be used in other target recognition projects. The system is designed to recognize basic shapes, alphanumeric characters and colors.
The AUVSI competition 2009 scenario was to support a Company of US Marines while conducting a Patrol. An Unmanned Aerial System (UAS) will support their sweep with intelligence, surveillance and reconnaissance. In order to support them, our UAS must comply with Air Tasking Order special Instructions for departure and arrival procedures, and then remain with the assigned airspace. It will be tasked to search a large area for typical targets, and may be tasked to conduct an immediate route reconnaissance for convoy support or a point reconnaissance if requested. Our software will be the crucial link to identifying the ground targets.
The project scope is to design a system that assists the UAS in mission completion. The system will recognize targets based on the live video stream provided to the user. The system hardware will be a computer as a ground station. The system software will detect targets in the camera (WC)’s field of view and the user will manually control the camera to get the best quality pictures. The system output will be a form based on recognized targets.
Detailed Design Specification 4
Senior Design Documentation Library Detailed Design Specification
1.5 Abbreviations
HC HelicopterWC Webcam/CameraCSE Computer Science and EngineeringUTA University of Texas at ArlingtonAVL Autonomous Vehicle labAUVSI Unmanned Vehicle Systems InternationalUAS Unmanned Aerial SystemISR Intelligence, Surveillance and Reconnaissance
1.6 System Requirements
This section details the order of implementation of the key requirements listed in the Eagle Eye’s System Requirements Document. They are grouped into groups that are logical from both development and other stakeholders views and are the result of consultation and negotiation with all stakeholders.
Highest Priority
o The system shall have a Graphic User Interface (GUI)
o The system must accept a video stream
o The system shall recognize targets using the video stream
o The system shall be able to recognize the geometric shape of the target
o The system shall be able to recognize the targets alphanumeric character
o The system shall be able to recognize the background color of the target
o The system shall be able to recognize the target’s alphanumeric color
o The system shall be able to store target information into a file
o The system shall allow a user to retrieve all accepted targets and their individual
o The system shall have playback mode for all the recorded
Intermediate Priority
o The system shall accept telemetry data
o The system shall find the target location using telemetry data
o The system shall allow the user to accept a target or decline based on a snap shot
from the video stream and the telemetry data provided by the HC
Detailed Design Specification 5
Senior Design Documentation Library Detailed Design Specification
2 Layer Definition
This section describes the overall architecture of Eagle Eye. The system composed of 5 layers: Main Control Layer, User Interface Layer, Data Capture Layer, Target Identification Layer and Storage Layer. All of the layers work independently, except the Main Control Layer which will interact with the other four layers.
Figure 2 - Architecture Layer Diagram of Eagle Eye System
2.1 Layer-Name and Description
2.1.1 Main Control Layer The Main Control Layer is primarily responsible for controlling Eagle Eye System.
The controller will take in the video stream and the telemetry data from the data capture layer. It will pass this video and telemetry data to the storage and user interface layers. The Control layer will send a single frame from the video to the target identification layer for identification. It will also initiate listeners for the user interface and calls for the appropriate actions.
2.1.2 User Interface Layer The User Interface Layer is primarily responsible for presenting information to the
user and taking input from a user
2.1.3 Data Capture Layer The Data Capture Layer is primarily responsible for acquiring the video stream from
a camera (wireless or USB cable) and telemetry data from an outside source, i.e. from a helicopter or a text file
Detailed Design Specification 6
Senior Design Documentation Library Detailed Design Specification
2.1.4 Target Identification Layer The Target Identification layer is responsible for processing a single frame and
telemetry data The Target Identification layer is responsible for identifying targets based on a
training set of attributes in addition of using the processed video stream and processed telemetry data
2.1.5 Storage Layer The Storage layer is responsible for all storage-related tasks, such as video and
identified targets storage and retrieval.
Detailed Design Specification 7
Senior Design Documentation Library Detailed Design Specification
2.2 Inter Layer Data Flow Description
This section describes the type of data that flow among layers.
LayersData Flow Description
From To
Main Control
Storage Layer The Main Control Layer will send requests to retrieve or save data from the Storage Layer
Main Control
Data Capture Layer
The Main Control Layer will send requests to start/end data capturing.
Main Control
User Interface Layer
The Main Control Layer will send information to display on the User Interface Layer
Main Control
Target Identification
Layer
The Main Control Layer will send a still frame from the video stream to the Target Identification Layer
The User Interface Layer will identify targets in the still frame
The User Interface Layer will send results back to the System Control Subsystem
User Interface
Layer
Main Control The User Interface Layer will send user inputs to the Main Control Layer
Storage Layer
Main Control The Storage Layer will provide the Main Control Layer the options to retrieve stored videos and the identified targets based on the AVL format.
Data Capture Layer
Main Control The Data Capture Layer will provide video streams and telemetry data
Target Identification
Layer
Main Control The Target Identification Layer will send the potential targets in a still frame
Detailed Design Specification 8
Senior Design Documentation Library Detailed Design Specification
3 Inter-Subsystem Dataflow Section
This section describes the type of data that flow among subsystems in the layers.
Figure 1 – Eagle Eye‘s Architectural Dataflow Diagram
Now that the inter-subsystem dataflow are explicitly defined above, each data element flowing between subsystems is described in the table below.
Data Element Descriptions
1
This will be the signal from the System Control Subsystem, based on the user input, to start receiving telemetry and video data.
The reverse flow of data will also be the video stream along with the telemetry data going back from the Capture Controller Subsystem to the System Control Subsystem. The flow also contains a still captured frame with its given telemetry data when requested by the user
2The data that flows here would be the telemetry data that comes from the outside source (UAS or a text file) to the Telemetry Acquisition Subsystem.
3This data is a live video stream comes from a camera to the Video Stream Acquisition Subsystem.
4This is the telemetry data that was received by the Telemetry Acquisition Subsystem and is now being sent to the Capture Controller Subsystem.
5This data could be a live video stream or a video file that was received by the Video Stream Acquisition Subsystem and it is being sent to the Capture Controller Subsystem.
Detailed Design Specification 9
Senior Design Documentation Library Detailed Design Specification
6 When the System Control Subsystem has received the target along with its
attributes, the System Control sends it to be displayed to the GUI. The reserve flow of data will be the user input to the Main Control Subsystem
7
The flow of data from System Control subsystem to Storage Manager Subsystem is user action to retrieve saved data and video stream constantly recorded.
The flow of data from Storage Manager Subsystem to System Control subsystem is based on if the user decides to retrieve stored targets or video streams from the storage layer.
8
The data here which is the video stream and telemetry data will be provided to the Still Frame Capture Subsystem when desired by user
Once a target has been identified (with its still frame, and attributes), the System Control will receive results from the Target Identification Subsystem
9Target Identification Subsystem will call the Attributes Training Set Subsystem to provide the attributes to look for in the still frame
10This is the video stream that was received from Video Processing Subsystem by the Storage Manager Subsystem. It is also stored video that is sent back to the Storage Manager Subsystem in order to be sent to the System Control Subsystem
11 This is the stored target info that was received from the Target Identification Subsystem by the Storage Manager Subsystem. It is also stored target info that is sent back to the Storage Manager Subsystem in order to be sent to the System Control Subsystem.
12 This is the user input to the system.
Table 3.1 – Inter-Subsystem Data Element Descriptions
Table description
Data Element The name by which the data element is referred to in the rest of the document. Data element is also used for objects.
Description A written description of the data element
Detailed Design Specification 10
Senior Design Documentation Library Detailed Design Specification
ProducerSubsystem
GUISystem Control
Video Stream
Acquisition
Telemetry acquisition
Capture Controller
Attributes training set
Target Identification
Storage Manager
Video Recordings
Identified Targets
GUI 6
System Control
1 1 7
Telemetry acquisition
4
Video Stream acquisition
5
Capture Controller
1
Attributes training set
9
Target Identification
8
Storage Manager
7 9 10 11
Video Recordings
10
Identified Targets
11
User 12
Outside Sources
2
Camera 3
Table 3.2 – Producer-Consumer Relationships
Table description
Producer Subsystem The name of the layer or subsystem that creates the data elements specified. Note that this is the layer that invokes the constructor for the data element, not necessarily the layer that owns the constructor.
Consumer Subsystem The name of the layer or subsystem that uses the data element created by the producer layer.
Table Cells The intersection of the two layers. At the intersection of the two layers is a list of data element numbers referring to the Inter-Subsystem Data Element Description Table (Table 1). Elements listed in the intersection are created by the subsystem or layer on the left and consumed by the subsystem or layer above.
Detailed Design Specification 11
Senior Design Documentation Library Detailed Design Specification
4 Component Design
This section details the individual functions that will be utilized in each subsystem. For each of these functions, inputs, outputs, data structures, and important dependencies are defined. Each layer is reduced to subsystem and then to component level and all are described in detail below. Also included are the assumptions and responsibilities necessary for each subsystem and component.
4.1 Data Capture Layer
4.1.1 Telemetry Acquisition Subsystem
4.1.1.1 General
The Telemetry Acquisition Subsystem sends a message to an outside source to send telemetry data. Telemetry data from an outside source includes speed and altitude of HC, GPS location, position of HC with respect to the ground, and the position of a camera with respect to the HC and the camera axis. With one axis, the data would get a floating-point number for a WC location on the X-Y plane with reference to the WC.
4.1.1.2 Assumptions
Telemetry data received from outside source will be specific; such as speed and altitude of a HC, GPS location, and position of a HC and a WC with respect to the ground and target.
4.1.1.3 Responsibilities
Record speed of a HC
Record altitude of a HC
GPS location
Position of a HC with respect to the ground
Position of a WC with respect to a HC based on the degrees of freedom of a WC
Send the received telemetry data to the Telemetry Data Preparation Subsystem
4.1.1.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
get_Raw_TD Retrieves telemetry data from outside sources.
• Source Id • Telemetry data
Table 4.1.1.1: Subsystem Inter-layer Interfaces to Telemetry Acquisition Subsystem
Detailed Design Specification 12
Senior Design Documentation Library Detailed Design Specification
4.1.1.5 Public Method
get_Raw_TD(//this will be the state variables described in the table below); { //this will be used to assign the TD variables to a local variable for returning to the //capture controller }
TD-TABLE
Name Col. Offset Type Description
Phi 0 DoubleRoll angle in radians $-\pi < \phi < \pi$. Zero is level with the horizon and increasing $\phi$ is right wing down.
Theta 8 DoublePitch angle in radians $-\half\pi < \theta < \half\pi$. Zero is level with the horizon and increasing $\theta$ is nose up.
Psi 16 DoubleHeading (yaw) angle in radians. $-\pi < \psi < \pi$. Zero is due north and increasing $\psi$ is rotating clockwise when viewed from above. East is $\psi=\pi/2$, west is $\psi=-\pi/2$, and south is $\psi=\pm\pi$. Be sure to account for the discontinuity when facing south; it can cause problems if you compute $\Delta\psi = \psi - \psi'$. Use the \cmdline{turn_direction} routine instead.
P 24 DoubleBody frame roll rate in radians (unbiased). Positive $p$ is rolling right wing down. The actual range of the reading should be $\pm 90\deg$, although very high readings can result from bad gyro bias calibrations.
Q 32 Double Body frame pitch rate in radians (unbiased). Positive $q$ is pitching nose up.
R 40 DoubleBody frame yaw rate in radians (unbiased). Positive $r$ is rotating clockwise when viewed from above.
X 48 Double North position in local tangent plane in m (filtered)
Y 56 Double East position in local tangent plane in m (filtered)
Z 64 DoubleDown position in local tangent plane in m (filtered). Remember that negative $z$ positions are above ground level.
Vx 72 Double Forward velocity in body frame in m/s
Vy 80 Double Sideways velocity in body frame in m/s
Vz 88 DoubleDownward velocity in body frame in m/s. Remember that negative $vz$ is actually a climb when the aircraft is upright.
Mx 96 DoubleForward magnetometer reading (unscaled, filtered). The readings are signed and corrected for the hard iron calibration values that are in the AFCS's configuration file, but they are not scaled to any units like Tesla. This is not a problem since they are only used in proportion to each other, not in comparison to any outside magnetic force.
My 104 Double Sideways magnetometer reading (unscaled, filtered)
Detailed Design Specification 13
Senior Design Documentation Library Detailed Design Specification
Mz 112 Double Downward magnetometer reading (unscaled, filtered)
Ax 120 DoubleForward accelerometer reading in m/s/s (filtered). The acceleration values are roughly scaled to m/s/s and zeroed for when the IMU is level, although there may be some slight scale error. As with the magnetometer readings, this is not significant since the accelerometers are used in proportion to each other.
Ay 128 DoubleSideways accelerometer reading in m/s/s (filtered)
Az 136 DoubleDownward accelerometer reading in m/s/s (filtered)
Raw_p 144 DoubleRaw body frame roll rate in radians (biased). These raw values are typically not used by any application, but may be used for post-flight analysis of gyro bias drift during the flight.
Raw_q 152 DoubleRaw body frame pitch rate in radians (biased)
Raw_r 160 DoubleRaw body frame yaw rate in radians (biased)
Crc_err 168 DoubleNumber of CRC errors on the IMU serial link
Voltage 176 DoubleIMU bus voltage. This is computed from the band gap reference inside the IMU. 4.9 - 5.1 is good; if it drops below 4.8 volts the battery is nearly dead and not producing sufficient current for the regulator to maintain supply voltage. Expect the artificial horizon to begin tumbling and for other problems to occur if this happens.
Resets 184 DoubleNumber of IMU resets. If this value ever changes the IMU has received a significant shock and is likely to be producing bad data for a while. It is best to discontinue the flight as soon as possible.
Rpm0 186 intEngine RPM
Rpm1 188 intMain-rotor RPM
Rpm2 190 inttail-rotor PRM
4.1.1.6 Private method
None
4.1.2 Video Stream Acquisition Subsystem
4.1.2.1 General
The Video Stream Acquisition subsystem will receive video from WC. It is also responsible for sending all of the received video to the Capture Controller Subsystem
4.1.2.2 Assumptions
Camera will have high enough resolution to identify target
Detailed Design Specification 14
Senior Design Documentation Library Detailed Design Specification
4.1.2.3 Responsibilities
Capture video
Send all video to the capture controller
4.1.2.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
get_Raw_Video Receive video from outside source
• Video source Id as integer i.e. 0, 1, 2…
• Video
Table 4.1.2.1: Subsystem Inter-layer Interfaces to Video Stream Acquisition Subsystem
4.1.2.5 Public method
get_Raw_Video(); {
//this will be used to call the video from the webcam }
4.1.2.6 Private method
None
4.1.3 Capture Controller Subsystem
4.1.3.1 General
After the telemetry data has been received by the telemetry capture, it will keep two sets of telemetry data.
The controller will initiate the video stream and will then process it in the Capture Controller.
The processed video stream and telemetry data will be sent it to the System Control Subsystem.
The Capture Controller will send the frame plus captured telemetry data to the System Control Subsystem when requested by the user
4.1.3.2 Assumptions
Telemetry data received from an outside source will be specific format. (See TD-table)
Detailed Design Specification 15
Senior Design Documentation Library Detailed Design Specification
Stream video will maintain the standard of certain pixel resolution and type.
4.1.3.3 Responsibilities
Receive telemetry data from Telemetry Acquisition Layer
Prepare telemetry data received from outside source
Send/transfer telemetry data to the System Control Subsystem
Receive and process video data from Video Stream Acquisition Layer Subsystem
Send/transfer video data to the System Control Subsystem
Send/transfer video data to the Storage Manager Subsystem
Capture the still frame from the video stream
Calculate the telemetry data of the captured frame
Send the captured frame and telemetry data to the Target Identification Subsystem
4.1.3.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
start_Video_ Acquisition Start Video Capture Subsystem • Video Source
• Pass/Fail
start_TD_Acquisition
Message from User Input subsystem to start retrieving telemetry data from UAS
• User Input Message
• Pass/Fail
get_TD Send/transfer two telemetry data to the System Control Subsystem and Still Frame Capture Subsystem
• Time •2 sets of telemetry data
get_Video Send video to the main controller • Time • Video
capture_Frame Capture time of User input and call functions to get the frame at that time from the video stream as well as calculate the telemetry data of that frame.
• Time •Still Frame from the video
Table 4.2.1.1: Subsystem Inter-layer Interfaces to Capture Controller Subsystem
Detailed Design Specification 16
Senior Design Documentation Library Detailed Design Specification
4.1.3.5 Public methods
start_Raw_Video(//this will be a string that contains the type of video file){ while(video) {
get_Raw_Video(); }
}
start_TD_Acquisition {
//initialize variables from TD_table while (good) {
get_Raw_TD(); //save telemetry data in local variables and return to the controller return (TD-table varibles); pause 1 second;
}
get_Video(//this will be a string that contains the type of video file) {
while(video) { get_raw_Video();
}
get_TD(time) { //this will be used to send two sets of telemetry data that are closest to the time
//sent }
capture_Frame(time) { while(video) { //processes video to get frame out and returns the frame. } }
4.1.3.6 Private Method
None
Detailed Design Specification 17
Senior Design Documentation Library Detailed Design Specification
4.2 Target Identification Layer
4.1.4 Target Identification Subsystem
4.1.4.1 General
Target Identification Subsystem is responsible for identifying a target’s geometric shape, alphanumeric character, alphanumeric color and background color. This subsystem receives data from the Still Frame Capture Subsystem and User Inputs Subsystem. It is also responsible for sending the information (identified targets with their attributes) to the Storage Layer Subsystem and the System Controls Subsystem.
4.1.4.2 Assumptions
None
4.1.4.3 Responsibilities
Receive data from Still Frame Capture Subsystem
Identify targets
o Identify target’s basic geometric shapes
o Identify target’s background color
o Identify target’s alphanumeric character
o Identify target’s alphanumeric color
o Location
Send the identified target to the System Control Subsystem
4.1.4.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
Identify_Targets Receive data from Still Capture Subsystem and identify targets
• still frame, telemetry: an object of “image” class and an object of “telemetryData” class
• Pass/Fail
Table 4.2.4.1: Subsystem Inter-layer Interfaces to Target Identification Layer Subsystem
Detailed Design Specification 18
Senior Design Documentation Library Detailed Design Specification
4.1.4.5 Public Methods
Void identify_Targets(objectList* list, image* image, telemetryData data)
{
Load the “training.xml” if not loaded;
Call function object_Identification();
Call function object_Location();
}
4.1.4.6 Private Methods
Void object_Identification(objectList* list, image* image)
{
Step 1: Read image
Step 2: Convert image from rgb to gray
Step 3: Threshold the image
Step 4: Invert the Binary Image
Step 5: Find the boundaries Concentrate
Step 6: Determine Shapes properties
Step 7: Classify Shapes according to properties
}
Void object_Location(objectList* list, image* image, telemetryData data)
{
Step 1: convert camera orientation to the GPS orientation using the HC oritentation
Step 2: with the location of the objects in the still frame and the zoom of the camera, calculate the distance of the object to the HC.
Step 3: Calculate the object’s GPS location.
}
Detailed Design Specification 19
Senior Design Documentation Library Detailed Design Specification
4.3 Storage Layer
4.1.5 Storage Manager Layer Subsystem
4.1.5.1 General
The Storage Manager Subsystem will store the video from the video source as well as the targets from the target identification layer. The subsystem will allow for retrieval of targets and video.
4.1.5.2 Assumptions
None
4.1.5.3 Responsibilities
Store all the recorded videos
Store all the targets information including their respective attributes
Make video and target information available for the user
4.1.5.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
store_Videos Store the video received from the Video Processing Subsystem (Target Identification Layer )
• Video data •Pass/Fail
store_Targets Store targets and their attributes received from the Target Identification Subsystem
• Identified targets and their attributes
•Pass/Fail
Retrieve_Videos Send stored video to the System Controls Subsystem (User Interface Layer).
•Video file name
•Video
Retrieve_Targets Send stored information to the System Controls Subsystem (User Interface Layer)
•Stored targets and their attributes
•Stored targets and their attributes
Table 4.3.1.1: Subsystem Inter-layer Interfaces to Storage Manager Layer Subsystem
4.1.5.5 Public Methods
store _Videos(//parameter for video received from Main Control Subsystem){
Detailed Design Specification 20
Senior Design Documentation Library Detailed Design Specification
Step 1: Check the file format of the video
Step 2: Analyze each frame of the video received
Step 3: Check the space required to store the video file
Step 4: Call method save_Video of Video Recordings Layer Subsystem to save the video file
}
store_Targets(//parameter for target received from Target Identification Layer){
Step 1: Analyze the frame of the target received as an image
Step 2: Check the space required to store the target file and their attributes
Step 3: Call method save_Targets of Identified Target Storage Layer Subsystem to save the identified targets.
}
retrieve_Videos(//…){
Step 1: Call method get_Video of Video Recordings Layer Subsystem
Step 2: Check the stored video and if found, it retrieves the desired video
Step 3: Send the retrieve videos to the appropriate layer
}
retrieve_Targets(//…){
Step 1: Call method get_Targets of Identified Target Storage Layer Subsystem
Step 2: Check the stored targets and their attributes
Step 3: Send the retrieve targets and their attributes to the appropriate layer
}
4.1.5.6 Private Methods
None
Detailed Design Specification 21
Senior Design Documentation Library Detailed Design Specification
4.1.6 Video Recordings Layer Subsystem
4.1.6.1 General
All the videos that have been recorded will be stored in this layer.
4.1.6.2 Assumptions
None
4.1.6.3 Responsibilities
Store all the recorded videos
Make video for Storage Manager Layer Subsystem
4.1.6.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
save_Videos Take video and save to physical hard drive
•Video •Video file name
get_Videos Retrieve video from file.•Video file name
•Video
Table 4.3.2.1: Subsystem Inter-layer Interfaces to Video Recordings Layer Subsystem
4.1.6.5 Public Methods
save_Videos(//…){
//save video
}
get_Videos(//…){
//pass pointer to video
}
4.1.6.6 Private Methods
None
Detailed Design Specification 22
Senior Design Documentation Library Detailed Design Specification
4.1.7 Identified Target Storage Layer Subsystem
4.1.7.1 General
All the information regarding the identified targets is stored in this subsystem.
4.1.7.2 Assumptions
None
4.1.7.3 Responsibilities
Store all the identified targets and their attributes
Make video for Storage Manager Layer Subsystem
4.1.7.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
save_Targets Take identified targets’ information and save to physical hard drive
•Identified Targets
•Targets file name
get_Targets Retrieve identified targets from file.•Targets file name
•Identified Targets
Table 4.3.3.1: Subsystem Inter-layer Interfaces to Identified Targets Subsystem
4.1.7.5 Public Methods
save_Targets(Target inData){
create a new file name.
retrieve the picture from Target object and save a picture with the new defined name
retrieve the “telemetryData” object from Target object and save as txt file with the new defined name
update the new file name in the Storage Controller.
}
get_Targets(//…){
get file names from Storage Controller
Detailed Design Specification 23
Senior Design Documentation Library Detailed Design Specification
while ( counter > 0)
{retrieve the picture from one file name
retrieve the “telemetryData” object from one file name
send the picture + telemetryData to Storage Controller
decrease counter
}
}
4.1.7.6 Private Methods
None
4.1.8 Attributes Training Set Subsystem
4.1.8.1 General
Attributes Training Set Subsystem is responsible for defining target’s attributes such as target’s geometric shape, alphanumeric character, alphanumeric color and background color. This subsystem sends training data to the Target Identification Subsystem when identifying an object is needed.
4.1.8.2 Assumptions
None
4.1.8.3 Responsibilities
Define target’s attributes
o Basic geometric shapes
o Background color
o Target’s alphanumeric character
o Target’s alphanumeric color
Detailed Design Specification 24
Senior Design Documentation Library Detailed Design Specification
4.1.8.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
define_Targets Define the target’s attributes such as geometric shapes, alphanumeric character, color etc.
•Video data, still frame
• None
Table 4.2.4.1: Subsystem Inter-layer Interfaces to Target Identification Layer Subsystem
4.1.8.5 Public Methods
define_Targets(//…){
load “training.xml”
if not found “training.xml”
{
Create “training.xml” based on “training.txt” which contains the list of pictures.
}
}
4.1.8.6 Private Methods
None
4.2 User Interface Layer
4.2.1 GUI Subsystem
4.2.1.1 General
The View subsystem is to display the video stream, still frames and targets attributes.
4.2.1.2 Assumptions
None
Detailed Design Specification 25
Senior Design Documentation Library Detailed Design Specification
4.2.1.3 Responsibilities
Provide a GUI for the user to view all of the information
o Display the video stream received from the System Control subsystem
o Display the telemetry data received from the System Control subsystem
o Display the attributes of the potential targets from the System Control
subsystem
o Display Accept or Deny option for potential targets
Receive inputs from user through the GUI and call the appropriate functions or
methods.
4.2.1.4 Subsystem Inter-layer Interfaces
Detailed Design Specification 26
Senior Design Documentation Library Detailed Design Specification
4.2.1.5 Public Methods
display_EagleEye(//…){
//Display the start up GUI screen for the user.
}
4.2.1.6 Private Methods
None
4.3 Main Control Layer
4.3.1 System Control Subsystem
4.3.1.1 General
The System Control acts as a manager and checks everything that is coming into the its subsystem. The System Control receives the video stream, HC/WC telemetry data, and the targets attributes from the target identification layer and also anything that is received from the storage layer. Once all this is received the System Control sends this info to the View subsystem to be displayed to the user.
Detailed Design Specification 27
Senior Design Documentation Library Detailed Design Specification
4.3.1.2 Assumptions
None
4.3.1.3 Responsibilities
Receive Video stream from Video Processing subsystem and receive Telemetry
data from Telemetry Data Preparation subsystem
Receive a still frame and its potential targets from Target Identification subsystem
Receive and display recorded videos and identified targets from Storage Manager
subsystem
Send video stream, telemetry data, and all target attributes to the GUI subsystem
Transfer information regarding the identified and accepted targets and their
attributes to the Storage Layer
Transfer the video stream and telemetry data to the Still Frame Capture
Subsystem when the user capture a frame
4.3.1.4 Subsystem Inter-layer Interfaces
Method Description InformationRequired
Information Returned
display_TD Display HC/WC telemetry data from the Telemetry Data Preparation Subsystem
•HC/WC Telemetry data
•None
display_VideoStream Display video stream from Video Processing subsystem or Storage Manager Subsystem
•Video Stream •None
display_IdentifiedTargets Display identified targets from the Storage Manager Subsystem
•Identified Targets
•None
display_PotentialTargets Display potential targets from the Target Identification subsystem
•Target attributes, HC/WC telemetry data, and still frame
•None
user_Review User accept or decline potential targets •Targets identified
• Pass/Fail
transfer_Targets Transfer information regarding the identified and accepted targets and their attributes to the Storage Layer
• Video data, identified targets and their attributes
• Pass/Fail
Detailed Design Specification 28
Senior Design Documentation Library Detailed Design Specification
actionListener Method that listens for the user input from the GUI layer; then based on that user input performs the equivalent action desired from the user.
The action event or button chosen in the GUI
None
Table 4.4.3.1: Public Interface to System Control Subsystem
4.3.1.5 Public Methods
public void display_TD(//this will be a string that contains the type of data file)
{get_TD();
}
public void display_VideoStream(//this will be a string that contains the type of video file)
{get_Video();
}
public void display_IdentifiedTargets(//what choice was made)
{If(//the user wants video that’s been stored) {
retrieve_Video()}Else if(//the user wants targets that have identified and stored) {
Retieve_targets();}
}
public void display_PotentialTargets( )
{identify_Targets();
}
public void user_Review(Boolean acceptDecline )
{If( acceptDecline == true){ transfer_Targets();}Else
}
public void transfer_Targets(//the file type of the video and the file type of the data file)
Detailed Design Specification 29
Senior Design Documentation Library Detailed Design Specification
{Identify_Targets();
}
public void actionListener(actionPerformed)
{If(actionPerformed == Accept Button) {
user_Review(); }Else if(actionPerformed == Decline Button) {
//Discard; }Else if(actionPerformed == User wants to see stored targets){
display_IdentifiedTargets();}Else if(actionPerformed == User wants to see stored video){
display_IdentifiedTargets();}
}
4.3.1.6 Private Methods
N/A
Detailed Design Specification 30
Senior Design Documentation Library Detailed Design Specification
5 Quality Assurance
5.1 Test Plans and Procedure
The details of our test plans, procedures, and test cases will be outlined in the Test Plan Document.
5.2 Modular/Unit Tests
Camera Test Video Acquisition Test Telemetry Acquisition Test Connection Test Target Identification Test Storage Test
5.3 Component Tests
Record videos Store videos Store identified targets Retrieve identified targets
5.4 Integration Tests
Identify target Store videos Store identified targets
6 Requirements Traceability Matrix
This matrix identifies the subsystems used to satisfy the requirements detailed in the System Requirements Document.
Detailed Design Specification 31
Senior Design Documentation Library Detailed Design Specification
SRD section # Description GUI
System Control
Video Stream
Acquisition
Telemetry acquisition
Capture Controller
Attributes training set
Target Identification
Storage Manager
Video Recordings
Identified Targets
4.2.10A GUI interface X X
4.2.1Accept a video stream
X
4.2.4Recognize targets using the video stream
X X X X
4.2.6Recognize the geometric shape of the target
X X
4.2.7Recognize the targets alphanumeric character
X X
4.2.8Recognize the background color of the target
X X
4.2.9Recognize the target’s alphanumeric color
X X
4.2.19Store identified target information into a file
X X
4.2.20Allow a user to retrieve all accepted targets and their individual
X X
4.2.21Playback mode for all the recorded
X X
4.2.2 Accept telemetry data
X X
4.2.5Find the target location using telemetry data
X
4.2.18 Allow for accept or decline targets
X X
Detailed Design Specification 32
Senior Design Documentation Library Detailed Design Specification
7 Acceptance Plan
This section describes the conditions under which the final product will be deemed acceptable by the stakeholders. It is a duplicate of the acceptance criteria section from the System Requirements Document.
7.1 Criteria
7.1.1 The Eagle Eye system shall accept a video stream
7.1.1.1 Description
The system will take video as an input from the video recorder on autonomous helicopter.
7.1.1.2 Source:
AV-Competition Rules 2009
7.1.1.3 Applicable Constraints
Video must be of a least 800x600 resolutions.
7.1.1.4 Applicable Standards
N/A
7.1.2 The Eagle Eye system shall recognize the characteristics of a target with a given video stream and other data from the HC.
7.1.2.1 Description
The system will be able to recognize targets alphanumeric characters, colors, and geometric shapes from a given video stream and other given data.
7.1.2.2 Source:
Dr. Reyes and the AV-challenge documentation
7.1.2.3 Applicable Constraints
Object is no bigger than 8 square feet, colors used must be from the standard color chart, and the video must be of a least 800x600 resolutions.
7.1.2.4 Applicable Standards
N/A
Detailed Design Specification 33
Senior Design Documentation Library Detailed Design Specification
7.1.3 The Eagle Eye system shall output the targets and their attributes.
7.1.3.1 Description
All recognized targets and their attributes will be given to the user in accordance with the AV Competition Rules.
7.1.3.2 Source:
AV-Competition Rules 2009
7.1.3.3 Applicable Constraints
The format of the file should be specified on certain format type.
7.1.3.4 Applicable Standards
AV Competition Rules 2009
Detailed Design Specification 34