Team: HTMB

SDS (Software Design Specification)

mailto:HTMB
Hyoungsuk Kong Taeho Kim Mina Jeong Bo Jin
kong@cs.utah.edu taek@cs.utah.edu jeong@cs.utah.edu bojin@cs.utah.edu


Table of Contents

1.0 Introduction
1.1 Purpose of this Document
1.2 Scope of the Development Project
1.3 Definitions, Acronyms, and Abbreviations
1.4 References
1.5 Overview of Document
2.0 System architecture description
2.1 Overview of modules / components
2.2 Structure and relationships
2.3 User Interface Issues
2.3.1 User Interface Specification
2.3.2 User Manual
3.0 Detailed description of components
3.1 Component template description
3.2 ActiveX Control
3.3 Visual Basic
3.4 Image Control
3.5 Camera
4.0 Reuse and relationships to other products
4.1 Role of reuse in project design
4.2 Role of reuse in project implementation
5.0 Design decisions and tradeoffs

6.0 Pseudocode for components

Change Log


1.0 Introduction


1.1 Purpose of this Document

The software Design Specification (SDS) document is to give an overview of the requirements for the DesignJug project (Field of View Coordinate Correction). These requirements are based on information from a client, ideas created during our team meeting. This document also provides a general product overview to sponsor, potential user.


1.2 Scope of the Development Project

This project ( field of View Coordinate Correction ) involves reading live GPS, compass and inclination signals and then laying a coordinate system over a live video image. The live image is looking in the same direction as the compass heading and the GPS coordinate is the location of the camera. Magnetic declination must be taken into account. A flat plane in the field of view is assumed.


1.3 Definitions, Acronyms, and Abbreviations

HTMB : out team name
GPS: Global Positioning System
JPEG:Joint Photographic Experts Group (also abbreviated jpg) and pronounced jay-peg. JPEG is compression technique for colour images and photographs that balances compression against loss of detail in the image. The greater the compression, the more information is lost (this is called Lossy compression).
Fully autonomous: there is no human in control of the vehicle at all. No contact with the vehicle can be made once the race is underway. The vehicle must 'see' what is ahead of it and navigate appropriately.


1.4 References


1.5 Overview of Document


2.0 System architecture description


2.1 Overview of modules / components

Component Description
1. GPS hardware unit This GPS unit will be hooked up to the notebook's serial port. And It will continuously provide the GPS coordinate of where we at.
2. Video Camera Video Camera will be aiming at the direction of the moving vehicle, keep sending framed video stream to the notebook.
3. Video Capturing Software This Software will be provided from the sponsor, it will capture the stilled picture from the video, then send the picture to the program we wrote.
4. GPS Info page This page will be displayed on our application, It will provide us all the information we need from the GPS unit. Such like Latitude,Longitude, and satellite information.
5. Image Processing page This page will also be displayed on our application. It will load the picture from the video capturing software and then we will look at the picture and use mouse to draw a line(path) on the picture. After this our application will process the line and then output the coordinate list on the screen.

2.2 Structure and relationships



2.3 User interface issues

This Application will be running on the autonomous ground vihecle. Main goal of this software will be according to the GPS information and the Live video image from the moving vihecle, find out the correct path to avoid crash into any object in front of the vihecle.

This software will be needed for space exploration or rescueing a life. In some environment houmanbeing can't approach, this application will guide autonomous ground vihecle to approach the destination. For example Landing on mars.


2.3.1 User Interface Specification

There are 4 tabs connected in a window. Most of them are showing GPS coordinate data and setting up the port nubmer, vehicle identification, etc. with GPS protocol. The right most interface has image box and several list boxes and text boxes. The boxes in the left side shows the GPS data. The image box in the middle shows the real road picture in front of a vehicle, and we can draw the line on that picture. The boxes in the right side shows the world coordinates of the line drawn by. Hence, the most important purpose of the user interface is that we draw the line on the image in front of the vehicle, and vehicle follows the line to move forward.

2.3.2 User Manual


First Tab & Second Tab : sets up a com port.
Third Tab : Gets GPS status. Click the 'start' button.
Fourth Tab : GPS information which show the location of the user by using GPS coordinates.
Fifth Tab : Draw the line on the middle image box
    - 'clear' buttons : erase the line on the image
    - 'save' buttons : saves the line image and the list of coordinates data
    - 'process' buttons : calculates real coordinates from 2D line on the picture to make a vehicle move
    - 'capture' buttons : captures a picture on the image box.

3.0 Detailed description of components


3.1 Component template description

Identification The unique name for the component and the location of the component in the system.
Type A module, a subprogram, a data file, a control procedure, a class, etc
Purpose Function and performance requirements implemented by the design component, including derived requirements. Derived requirements are not explicitly stated in the SRS, but are implied or adjunct to formally stated SDS requirements.
Function What the component does, the transformation process, the specific inputs that are processed, the algorithms that are used, the outputs that are produced, where the data items are stored, and which data items are modified.
Subordinates The internal structure of the component, the constituents of the component, and the functional requirements satisfied by each part.
Dependencies How the component's function and performance relate to other components. How this component is used by other components. The other components that use this component. Interaction details such as timing, interaction conditions (such as order of execution and data sharing), and responsibility for creation, duplication, use, storage, and elimination of components.
Interfaces Detailed descriptions of all external and internal interfaces as well as of any mechanisms for communicating through messages, parameters, or common data areas. All error messages and error codes should be identified. All screen formats, interactive messages, and other user interface components (originally defined in the SRS) should be given here.
Resources A complete description of all resources (hardware or software) external to the component but required to carry out its functions. Some examples are CPU execution time, memory (primary, secondary, or archival), buffers, I/O channels, plotters, printers, math libraries, hardware registers, interrupt structures, and system services.
Processing The full description of the functions presented in the Function subsection. Pseudocode can be used to document algorithms, equations, and logic.
Data For the data internal to the component, describes the representation method, initial values, use, semantics, and format. This information will probably be recorded in the data dictionary.

3.2 ActiveX Control

Identification ActiveX Control
Type Library
Purpose Gather the information of mouse position, capture the picture, draw a line
Function It will return the position of the each point in a line, so that we can calculate new coordinate.
Subordinates N/A
Dependencies ActiveX Control is very important component of our project. Without this, we can't really do much in our project. Timing must be correct, up-to-second in this project. This will interact with mouse, and button down/up events.
Interfaces It will produce lines on the picture, and return coordinates of points in the line.
Resources N/A
Processing N/A
Data Pictures, GPS coordinates.

3.3 Visual Basic 6

Identification Visual Basic 6
Type IDE
Purpose We are going to make GUI interface from Visual Basic, and ActiveX Control
Function N/A
Subordinates N/A
Dependencies It will depend on the GPS data, picture frames, and the ActiveX Control.
Interfaces User will only see the GUI interface
Resources We are going to use embedded GPS device, and the camera that sponsor provided use with.
Processing N/A at the moment
Data N/A at the moment

3.4 Image Control

Identification IC Image Control
Type Lisence, and Library
Purpose Provide the 'right' to capture, edit image.
Function N/A
Subordinates N/A
Dependencies It needs to feed the image from the camera. We will use this image in our VB6 GUI.
Interfaces User will be able to capture the image from the camera.
Resources We are going to use embedded GPS device, and the camera that sponsor provided use with.
Processing N/A
Data IC Image Control liscence, Camera, Images.

3.5 Camera

Identification Camera
Type Equipment
Purpose To feed the image in front of the vehicle, capture image, calculate the distance.
Function N/A
Subordinates N/A
Dependencies Need power to turn on. It need to be installed at the top front of the vehicle. Need to install V-Stream software application to find camera device.
Interfaces N/A
Resources USB port
Processing N/A
Data N/A

4.0 Reuse and relationships to other products


4.1 Role of reuse in project design

project will use all the product components which is provided for GPS receiver. Since we need GPS data to calculate the path in real world from the video image, we will use GPS data which the given application receive to process calculations.

4.2 Role of reuse in project implementation

application form will be reused for GPS receiving part, so we will add a panel option to see our project part which shows video images and data updating in real time with calculation with GPS data and path coordinates in the image.

5.0 Design decisions and tradeoffs

We decided to use the Visual Basic instead of c++ for some reasons. The source code from sponsor is coded with Visual basic so we could implement the source code into our code easily. Also, with that source code, we could focus on our project rather than not using the source, because the basic stuff we need is already built in that code. Hence, what we worked was in .net c++, but we changed our decision to use visual basic.

6.0 Pseudocode for components

Part I. GPS data receive

//Variables
GPS gps = new GPS_receiver();
double altitude, latitude, longitude;

latitude = GPS.get_latitude();
altitude = GPS.get_altitude();
longitude = GPS.get_longitude();


Part II. Drawing path manually
	
-----------------------------------------------------------------------------------------------

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

      // Update the mouse path with the mouse information
      // Enable painting to draw path
			
-----------------------------------------------------------------------------------------------

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

      // Update the mouse path that is drawn onto the Panel.
	
-----------------------------------------------------------------------------------------------


Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
	   //No more drawings after draw the path.
	
-----------------------------------------------------------------------------------------------

Private Sub Clear_Click()
      
	// Clear the Panel display.
	
-----------------------------------------------------------------------------------------------



Part III. Collect coordinate lists of path

// Image process with software sponsor provide

x_on_image = ....
y_on_image = ....


Part IV. Calculate coordinate lists in real world

// Calculate coordinates in real world from data which the above                      // process collect

x_on_real_world = x_on_image * scale + x_GPS;
y_on_real_world = y_on_image * scale + x_GPS;


Change log

Version Release Date Modification
1.0 02/03/05 Initial release of SDS
1.1 02/15/05 Update SDS
2.0 02/18/05 Initial release of SDS V2.0


Back to cs4500
Back to Home
Back to Top

Maintained by
       Taeho Kim


Maintained by Taeho Kim