You are on page 1of 27

VERSION 1.

SYSTEM REQUIREMENTS SPECIFICATION


Revisions

ENGR: D. Bloshkin

ENGR: M. Moffitt

ENGR: A. Heberger

ENGR: J. Baslow

MGR: D. Kaputa

Rev.

Description

Date

1.0

Initial
Specification

3-7-2016

1.1

Improvements

4-26-2016

Approved

Confidential

Table of Contents
1

Introduction.............................................................................................................................. 4
1.1 Overview................................................................................................................................ 4
1.2 Scope..................................................................................................................................... 4
1.3 Requiremen Marking.............................................................................................................. 4

Applicable documents............................................................................................................... 4
2.1 Standards............................................................................................................................... 4
2.2 Reference documents............................................................................................................ 4

Requirements............................................................................................................................ 5
3.1 Rover Description................................................................................................................... 5
3.1.1

Drawings...................................................................................................................... 5

3.2 Characteristics....................................................................................................................... 5
3.2.1

Performance and Functional Characteristics................................................................5

3.2.1.1 Controller Functional Requirements..........................................................................5


3.2.1.1.1Inputs/Outputs..................................................................................................... 5
3.2.1.1.2Functions.............................................................................................................. 6
3.2.1.1.3Thermal................................................................................................................ 6
3.2.1.1.4Electrical Power.................................................................................................... 6
3.2.1.2 Controller Performance Requirements......................................................................6
3.2.2

User Interface Requirements........................................................................................ 7

3.2.3

Nominal Operating Functionality.................................................................................. 7

3.2.4

Off-Nominal Operating Functionality............................................................................ 7

3.2.5

Operating Margins........................................................................................................ 7

3.2.6

Physical Characteristics............................................................................................... 7

3.2.7

Reliability..................................................................................................................... 7

3.2.8

Environmental conditions............................................................................................. 7

3.3 Design and Construction........................................................................................................ 7


3.3.1

Identification and Product Marking...............................................................................7

3.4 Interface Definition................................................................................................................ 7


3.4.1

Structural/Mechanical Interface................................................................................... 7

3.4.2

Power Interface............................................................................................................ 8

3.4.3

Processor to FPGA Position Command Interface...........................................................8

3.4.4

Encoder Interface......................................................................................................... 9

3.4.5

Camera Interface......................................................................................................... 9

3.4.6

Motor Drive Interface................................................................................................... 9


1

3.4.7
4

Confidential
Connector Interface...................................................................................................... 9

Verification................................................................................................................................ 9
4.1 Verification Conformance....................................................................................................... 9
4.1.1

Methods of Verification................................................................................................. 9

4.1.1.1 Analysis..................................................................................................................... 9
4.1.1.2 Inspection............................................................................................................... 10
4.1.1.3 Demonstration........................................................................................................ 10
4.1.1.4 Test......................................................................................................................... 10
4.1.2

Phases of Verification................................................................................................. 10

4.1.2.1 Qualification............................................................................................................ 10
4.1.2.2 Acceptance............................................................................................................. 11
4.2 Characteristics..................................................................................................................... 11
4.2.1

Performance and Functional Characteristics..............................................................11

4.2.1.1 Controller Functional Requirements........................................................................11


4.2.1.1.1Inputs/Outputs................................................................................................... 11
4.2.1.1.2Functions............................................................................................................ 11
4.2.1.1.3Thermal.............................................................................................................. 12
4.2.1.1.4Electrical Power.................................................................................................. 12
4.2.1.2 Controller Performance Requirements....................................................................12
4.2.2

User Interface Requirements...................................................................................... 12

4.2.3

Nominal Operating Functionality................................................................................ 12

4.2.4

Off-Nominal Operating Functionality..........................................................................13

4.2.5

Operating Margins...................................................................................................... 13

4.2.6

Physical Characteristics............................................................................................. 13

4.2.7

Reliability................................................................................................................... 13

4.2.8

Environmental conditions........................................................................................... 13

4.3 Design and Construction...................................................................................................... 13


4.3.1

Identification and Product Marking.............................................................................13

4.4 Interface Definition.............................................................................................................. 13

4.4.1

Structural/Mechanical Interface.................................................................................13

4.4.2

Power Interface.......................................................................................................... 13

4.4.3

Processor to FPGA Position Command Interface.........................................................14

4.4.4

Encoder Interface....................................................................................................... 14

4.4.5

Camera Interface....................................................................................................... 15

4.4.6

Motor Drive Interface................................................................................................. 15

4.4.7

Connector Interface.................................................................................................... 15

Definitions............................................................................................................................... 15

Confidential
5.1 Acronym List........................................................................................................................ 15
6

Appendix A Verification Cross Reference Matrix (VCRM)........................................................0

Appendix B Motor Command and status format.....................................................................0

1 INTRODUCTION
This document is meant to capture the performance requirements and desirable physical
characteristics that Shallbot is to attain in its final design and operational state.

Confidential

1.1 OVERVIEW
Shallbot is a rover based upon the Rover 5 platform which is being designed to compete in the
Embedded Systems Design II class competition in the College of Applied Science and
Technology at the Rochester Institute of Technology. There are three phases to the competition
however this single system requirements document shall envelope all of those phases. If there
are any phase specific requirements they shall be clearly denoted as applying only to that
specific phase. For the competition the main body of the rover must be used for all phases
however different attachments can be added or removed as desired.

1.2 SCOPE
This specification defines the overall functionality and establishes the performance, design,
development, and test requirements which Shallbot must satisfy.

1.3 REQUIREMENT MARKING


All requirements are marked with a unique identification designated by [R.ROV_XXXX] (where R
stands for requirement, and XXXX equals a numerical sequence). V is used in place of R for
section 4 which is the requirement verification section.

2 APPLICABLE DOCUMENTS
This section contains documents referenced in this specification. The revision listed is the
revision effective for this design effort. When no revision is listed, the latest issue in effect is
applicable.
Documents that do not have a specific revision specified may be
industry/government standards, etc. that when revised normally, do not directly impact the
design, development, or testing parameters of the item in question.

2.1 STANDARDS
2.2 REFERENCE DOCUMENTS
The documents listed herein are provided as background information for users of this
specification defining the source of the requirements in sections 3 and 4 of this specification.
The listing in this section does not levy new or relieve specific requirements which are imposed
by this specification or other contractual documents associated with procurement of this
specification.
Document Number

Document Title

Revision

Confidential

3 REQUIREMENTS
3.1 ROVER DESCRIPTION
Our rover Shallbot, will be designed using a Raspberry Pi, motor controller, and Rover 5
platform. It will be able to compete in various competitions where some will be controlled by the
user, and others will be autonomous. The plan to differentiate our rover from others is to use a
laptop 10.8V battery to power the motor drives. This will allow our group to have the fastest
rover, which will help us have the best time in the triumphant entrance challenge, and give us
the most power when it comes time for the sumo challenge. We will be working on the tennis
ball challenge the least, and will expect this tradeoff to help us perform better in the triumphant
entrance and sumo challenge.

3.1.1 DRAWINGS

3.2 CHARACTERISTICS
3.2.1 PERFORMANCE AND FUNCTIONAL CHARACTERISTICS
3.2.1.1 Controller Functional Requirements
[A functional requirement is a specific business need or behavior as seen by an external user of
the system.]
3.2.1.1.1 Inputs/Outputs
[R.ROV.30] Motor Encoders

Confidential
Each motor shall interface with a rotary encoder that will provide relative position feedback.
[R.ROV.31] Motor Encoders
The rover shall have a defined number of encoder ticks to measurement of 1 foot.
[R.ROV.32] Motor Encoders
The rover shall have a defined number of encoder ticks to measure a 90 degree +/- 1 degree
turn.
[R.ROV.33] Motor Encoders
The rover shall keep track of the encoder ticks so that they can be used later for movement
verification.
[R.ROV.40] Camera Module
The controller shall interface with a camera module by providing a digital command and
receiving a digital image.
[R.ROV.41] Camera Module
The camera shall be calibrated to be able to identify the colors: red, blue, and yellow.
[R.ROV.42] Camera Module
The camera shall be able to position the rover so that a tennis ball is in the center of the field of
view.
[R.ROV.50] Motor Driver
The controller shall interface with four motor drivers (one channel for each motor) by providing
a digital PWM signal.
[R.ROV.51] Motor Driver
The controller shall be able to receive the PWM signal to any of the four motors at all times.
[R.ROV.52] Motor Driver
The direction pins will be configurable so they can be changed at any time during operation.
[R.ROV.53] Motor Driver
The motor driver will provide feedback from the encoders.
[R.ROV.54] Motor Driver
The rover shall be able to stop instantaneously when preparing for making a turn.

Confidential
[R.ROV.60] Motor Driver Logic Power
The motor driver logic circuit shall interface with a +5 VDC +/- 100mV electrical power supply
from the Raspberry Pi.
[R.ROV.70] Motor Driver Output Power
The motor driver output circuit shall interface with a +10.8 VDC +/- 100mV laptop battery.
[R.ROV.80] Controller Power
The controller shall interface with a +5 VDC +/- 100mV electrical power supply from an external
power bank.
[R.ROV.90] Remote Desktop Interface
The controller shall interface with a remote PC via the built in WiFi peripheral on the Raspberry
Pi.

3.2.1.1.2 Functions
[R.ROV.100] Motor Driver
The motor controller shall communicate with the Raspberry Pi and receive and process
commands from the processor per the communications protocol defined in Appendix B.
3.2.1.1.3 Thermal
[R.ROV.110] Active Heating or Cooling
The rover shall not require active heating or cooling when operating within the environment.
3.2.1.1.4 Electrical Power
[R.ROV.120] Electrical Power Input
The rover shall have two battery packs that supply power to the digital and drive output
subsystems respectively.
[R.ROV.130] Power-up Sequence
The entire system will power up and be functional within 10 seconds of applying power.
3.2.1.2 Controller Performance Requirements
[A performance requirement specifies the speed or operational effectiveness of a capability that
must be delivered by the system architecture as seen by the technical layers within that system
architecture.]
[R.ROV.140] Camera Update Rate

Confidential
Camera shall update at a rate of 5 +/- 1 frames per second.
[R.ROV.150] Motor PWM Resolution
The motor command PWM shall have a resolution of 1000 ticks to have precision on the rover
speed.
[R.ROV.160] Motor Command Resolution
Motor command shall have a resolution of +/- 2 inches.

3.2.2 USER INTERFACE REQUIREMENTS


[R.ROV.170] GUI Requirements
The user interface shall run on the embedded Linux operating system through remote desktop
connection on the Raspberry Pi.
[R.ROV.171] GUI Layout
The user interface shall contain buttons to start the triumphant entrance and tennis ball
challenges.
[R.ROV.172] GUI Layout
The user interface shall contain buttons for the user to interact with for the sumo challenge that
will allow them to move the rover forward, backward, and turn both directions.
[R.ROV.173] GUI Layout
The user interface shall contain a map of the area and update the position of the rover based
on encoder ticks.
[R.ROV.174] GUI Layout
The user interface shall contain a live video stream from the camera during the tennis ball
challenge.
[R.ROV.175] GUI Layout
The user interface shall contain a button to reset the current state of the rover and end all
autonomous challenges.

3.2.3 NOMINAL OPERATING FUNCTIONALITY


[R.ROV.180] Operating States
There shall be a defined operating state for the triumphant entrance.

Confidential
[R.ROV.181] Operating States
There shall be a defined operating state for the tennis ball challenge.
[R.ROV.182] Operating States
There shall be a defined operating state for the sumo challenge.

[R.ROV.190] Position Command Latency


The rover commands will be received by the GUI and should instantaneously start the next
command when the previous finishes during the autonomous challenges.
[R.ROV.191] Position Command Latency
The rover commands will be received by the GUI and should instantaneously receive and
execute the next command from the user during the sumo challenge.

3.2.4 OFF-NOMINAL OPERATING FUNCTIONALITY


[R.ROV.200] Communication Loss
The rover shall execute commands unless it loses connection with the remote desktop, which in
this case it shall stop all functionality.
[R.ROV.210] Loss of Sensors
The rover shall generate encoder feedback as long as it is provided a valid PWM signal.
[R.ROV.220] Sensor Inputs out of Range
The rover shall turn stop functioning when voltage inputs are out of range.

3.2.5 PHYSICAL CHARACTERISTICS


[R.ROV.230] Weight
The rover shall weigh no more than 5 pounds.
[R.ROV.231] Weight
The rover shall weigh as close to 5 pounds without going over.
[R.ROV.240] Envelope
The rover shall be able to function untethered.

3.2.6 RELIABILITY
[R.ROV.250] Triumphant Entrance Reliability

Confidential
The rover shall run the triumphant entrance challenge without failure with five consecutive
runs.
[R.ROV.251] Tennis Ball Challenge Reliability
The rover shall run the tennis ball challenge without failure with five consecutive runs.
[R.ROV.252] Sumo Entrance Reliability
The rover shall be able to push a five pound weight for at least a minute.

3.2.7 ENVIRONMENTAL CONDITIONS


[R.ROV.260] Clean Floor
The rover shall operate correctly on a clean floor.
[R.ROV.261] Unlevel Floor
The rover shall operate correctly and compensate for an unlevel floor during the triumphant
entrance and tennis ball autonomous challenges.
[R.ROV.262] Obstacles
The rover shall correctly maneuver through the triumphant entrance course and not collide with
any of the objects in the room.
[R.ROV.263] Arena
The rover shall correctly maneuver through the tennis ball arena and not leave the specific
area.
[R.ROV.264] Obstacles
The rover shall not collide with non-targeted tennis balls when maneuvering through the tennis
ball arena.

3.3 INTERFACE DEFINITION


3.3.1 STRUCTURAL/MECHANICAL INTERFACE
[R.ROV.270] Raspberry Pi Mounting Interface
The Raspberry Pi shall attach to the rover chassis per the diagram below.

Confidential

[R.ROV.271] Motor Controller Board Mounting Interface


The motor controller board shall attach to the rover chassis per the diagram below.

[R.ROV.272] Camera Mounting Interface


The camera shall attach to the rover chassis per the diagram below.

Confidential

3.3.2 POWER INTERFACE


[R.ROV.280] Raspberry Pi Power Interface
The Raspberry Pi shall accept a cable connected to a battery pack that mates with the +5 VDC
+/- 100mV power input jack on the Raspberry Pi.
[R.ROV.290] Motor Drive Logic Power Interface
The motor driver logic power shall accept a two wire power input where ground is black and +5
VDC +/- 100mV is red from the Raspberry Pi.
[R.ROV.300] Motor Drive Output Power Interface
The motor driver output power shall accept a two wire power input where ground is black and
+10.8 VDC +/- 100mV is red from a laptop battery.
[R.ROV.310] Steady-state Input Voltage
The rover shall receive a steady input voltage that ranges from 4-6V +/- 100mV on the
Raspberry Pi and motor controller board
[R.ROV.311] Steady-state Input Voltage
The rover shall receive a steady input voltage that ranges from 9-12V +/- 100mV on the motor
drive.
[R.ROV.320] Single Point Ground
All grounds will be connected between the Raspberry Pi and the motor controller board.

3.3.3 PROCESSOR TO FPGA POSITION COMMAND INTERFACE


[R.ROV.330] Position Polarity
A positive position command to the motor controller shall move the rover forward.

[R.ROV.340] Position Scaling


All position commands shall be in units of encoder ticks.

3.3.4 ENCODER INTERFACE


[R.ROV.350] Encoder Scaling
Each motor encoder shall supply 300 5, +5 VDC pulses to the controller for every single
rotation of the motor. 300 counts equates to 1 inches.

Confidential

3.3.5 CAMERA INTERFACE


[R.ROV.360] Camera Interface
The camera shall communicate with the Raspberry Pi and provide the images to the Pi for
processing.
[R.ROV.361] Camera Detection
The camera shall detect a red tennis ball by using the following threshold values: Red min 19,
red max 255, yellow min 0, yellow max 18, and blue min 8, blue max 56.
[R.ROV.362] Camera Detection
The camera shall detect a yellow tennis ball by using the following threshold values: Red min
83, red max 255, yellow min 72, yellow max 255, and blue min 12, blue max 52.
[R.ROV.363] Camera Detection
The camera shall detect a blue tennis ball by using the following threshold values: Red min 8,
red max 28, yellow min 11, yellow max 37, and blue min 28, blue max 255.

4 VERIFICATION
Section 4 presents details of the verification approach, including verification requirements, the
definition of applicable terminology, and identified constraints imposed on verification
requirements.
The Verification Cross Reference Matrix (VCRM) is generated to show the requirement trace and
primary verification closure methods. The VCRM is located in Appendix A of this document.

4.1 VERIFICATION CONFORMANCE


The verification methods are inspection, demonstration, test, and analysis or a combination
thereof. The allocation of these methods is based upon design analyses, design maturity,
complexity of the item, criticality category and associated cost. Analysis and testing are
considered to be the primary methods used to verify performance requirements.

4.1.1 METHODS OF VERIFICATION


4.1.1.1 Analysis
Verification by analysis is the verification of a product or system using models, calculations and
testing equipment. Analysis allows someone to make predictive statements about the typical
performance of a product or system based on the confirmed test results of a sample set or by
combining the outcome of individual tests to conclude something new about the product or
system. It is often used to predict the breaking point or failure of a product or system by using
nondestructive tests to extrapolate the failure point.

Car: complete a series of tests which rev the engine at a specific rpm for a set length of
time, while monitoring engine vibration and temperature, to verify that the expected
results are achieve. Use this information to model the failure point of the engine, i.e. max
rpm sustained over a specific period of time.

Confidential
Software Application: complete a series of tests in which a specified number of users input
the characteristics of the car they are attempting to price and initiate the pricing
functionality at the same time. Measure the response of the system to ensure that the
pricing function returns its results within the time specified. Analyze the relationship
between increasing number of system users and the time it takes for pricing to be
returned. Record the results to capture system degradation. Use this information to
predict at what point the system no longer meets the maximum allowable time to return
pricing as defined by the requirements.

4.1.1.2 Inspection
Verification by inspection is the nondestructive examination of a product or system using one or
more of the five senses (visual, auditory, olfactory, tactile, taste). It may include simple
physical manipulation and measurements.

Car: visually examine the car to ensure that it has power windows, power adjustable seats,
air conditioning, a navigation system, a tow package, etc.

Software Application: visually examine the software for screens that were requested,
check for the fields needed for data entry, verify that the necessary buttons exist for
initiating required functionality, etc.

4.1.1.3 Demonstration
Verification by demonstration is the manipulation of the product or system as it is intended to
be used to verify that the results are as planned or expected.

Car: use the automatic switches to verify that the windows and seats work as intended,
start the vehicle and ensure that the air conditioning produces cold air, take the car for a
test drive to sense the acceleration and cornering as it was described based on the
requirements.

Software Application: enter all required fields on a screen and select the button to return a
specific report. Ensure that the report is returned with the type of data needed.

4.1.1.4 Test
Verification by test is the verification of a product or system using a controlled and predefined
series of inputs, data, or stimuli to ensure that the product or system will produce a very
specific and predefined output as specified by the requirements.

Car: accelerate the car from a complete stop to 60 mph, and verify that it can be done in
5.2 seconds. Accelerate through a turn under controlled conditions, producing .8G of
force, without the car loosing traction.

Software Application: enter the type and model of car, automatic windows, power steering,
and all other options as stated in the predefined test plan, select the price now button and
receive back a price quote of precisely $43,690.

4.1.2 PHASES OF VERIFICATION


4.1.2.1 Qualification
The qualification phase is the period during which the product design is verified to be in
compliance with all specification requirements and that at least minimum design margin exists

Confidential
to ensure that the requirements can continue to be met under worst-case conditions.
Qualification will be based on the full range of design requirements that are documented in this
product specification. The verification methods used to perform qualification activities include
analysis, demonstration, inspection, and test, or any combination of the four, and are defined in
Appendix A (VCRM).
4.1.2.2 Acceptance
No acceptance testing is to be performed.

4.2 CHARACTERISTICS
4.2.1 PERFORMANCE AND FUNCTIONAL CHARACTERISTICS
4.2.1.1 Controller Functional Requirements
[A functional requirement is a specific business need or behavior as seen by an external user of
the system.]
4.2.1.1.1 Inputs/Outputs
[V.ROV.30] Motor Encoders
The motor encoders will be verified by rotating the wheels with the tread off and measuring
encoder ticks on the oscilloscope.
[V.ROV.31] Motor Encoders
The motor encoder will be turned clockwise and counterclockwise and the encoder ticks will be
recorded by a python script to verify the correct number of ticks that represent 1 foot.
[V.ROV.32] Motor Encoders
The rover will be set on the ground and commanded to spin in a circle. The rover will complete
4 full circles and the number of encoder ticks will be recorded with a python script. Then the
number of encoder ticks will be divided by 16 to calculate the exact number of ticks for a 90
degree turn.
[V.ROV.33] Motor Encoders
A python script will be created to keep track of the encoder ticks and store them in variables so
they can be used for the other encoder tests.
[V.ROV.40] Camera Module
A python script will be ran on the Raspberry Pi remote desktop to see the live stream from the
camera to verify a working camera.
[V.ROV.41] Camera Module
A python script will be used with sliding values to adjust the threshold for identifying different
colors. This will allow verification that all three colored tennis balls can be identified.

Confidential
[V.ROV.42] Camera Module
A tennis ball will be placed off center from the rover camera and a python script will be ran to
have the rover move to center the ball in front of the rover.
[V.ROV.50] Motor Driver
The motor controller logic that is being used will be ran to test sending a PWM signal to all four
motors individually to verify that each can move properly.
[V.ROV.51] Motor Driver
Each motor will be verified that PWM is being sent to it by turning each motor on one at a time.
[V.ROV.52] Motor Driver
Each motor will be verified that the direction pin will change the rotation direction of each wheel
when a PWM is sent to the motor controller.
[V.ROV.53] Motor Driver
Each motor will be verified using the oscilloscope that an encoder feedback is being sent for
each motor rotation.
[V.ROV.54] Motor Driver
The rover will go full speed forward and come to a stop with no tread rotation to verify an
instant stop.
[V.ROV.60] Motor Driver Logic Power
The power supply will be turned on and set to +5 VDC and connected to the Raspberry Pi. Then
a remote desktop connection will be established with the Raspberry Pi to verify it is running.
[V.ROV.70] Motor Driver Output Power
The motors will be supplied with the +10.8 VDC laptop battery and commands will be supplied
to the Raspberry Pi to verify movement and that the power is being adequately supplied to the
motors.
[V.ROV.80] Controller Power
The motor drive controller board will be powered with a +5 VDC power supply and commands
will be sent to the Raspberry Pi to verify the motor controller board is powered correctly.
[V.ROV.90] Remote Desktop Interface
A remote desktop connection will be used to connect with the Raspberry Pi and load up a
python file to verify that it can connect with a computer in the lab.

Confidential
4.2.1.1.2 Functions
[V.ROV.100] Motor Driver
The command interpreter will be used to verify a text file filled with movement commands can
be ran and control the rover.
4.2.1.1.3 Thermal
[V.ROV.110] Active Heating or Cooling
The rover will be ran through all of the competitions and then the temperature of the rover will
be recorded to make it is in a safe limit.
4.2.1.1.4 Electrical Power
[V.ROV.120] Electrical Power Input
The rover will be powered with both batteries and movement commands will be sent to move
the rover and verify adequate power.
[V.ROV.130] Power-up Sequence
The rover system will be turned on and a stopwatch will be started from the time it takes to
start up and allow a remote desktop connection and then stopped to see if it is under 10
seconds.
4.2.1.2 Controller Performance Requirements
[A performance requirement specifies the speed or operational effectiveness of a capability that
must be delivered by the system architecture as seen by the technical layers within that system
architecture.]
[V.ROV.140] Camera Update Rate
The rover will be connected with the camera and a tennis ball will be used to verify that it can
capture enough frames per second to center the tennis ball within +/- 1 inch of the center of
the rover.
[V.ROV.150] Motor PWM Resolution
The PWM signal will modified by increments of 1 tick with a python script and the speed will be
observed to see that is increases as the PWM duty cycle increases.
[V.ROV.160] Motor Command Resolution
Motor commands will be sent to the rover and the distance traveled will be measured and will
need to be within +/- 2 inches of the distance the command sent.

4.2.2 USER INTERFACE REQUIREMENTS


[V.ROV.170] GUI Requirements

Confidential
A remote desktop connection will be established with the Raspberry Pi and the GUI will be
loaded and used to control some simple movements of the rover to verify control of the rover
by the GUI.
[V.ROV.171] GUI Layout
The triumphant entrance and tennis ball challenges will be started from the GUI to verify the
GUI buttons work.
[V.ROV.172] GUI Layout
The sumo buttons will be used to verify that the rover can be controlled by the user in a free
movement mode.
[V.ROV.173] GUI Layout
The rover will be placed in the starting spot of the triumphant entrance and ran to verify that
the map shows the movement of the rover and the final ending spot based on the encoder
ticks.
[V.ROV.174] GUI Layout
The camera will be attached to the Raspberry Pi and sent commands to move around and the
GUI will be looked at to verify it is showing a live stream of what the camera is seeing.
[V.ROV.175] GUI Layout
The rover will be running both autonomous challenges and when pressing the kill switch, the
rover will stop operation within 1ms +/- .1 ms.

4.2.3 NOMINAL OPERATING FUNCTIONALITY


[V.ROV.180] Operating States
The triumphant entrance challenge will be started by the GUI button and once it is running the
user will verify that no other GUI buttons can be clicked besides kill switch.
[V.ROV.181] Operating States
The tennis ball challenge will be started by the GUI button and once it is running the user will
verify that no other GUI buttons can be clicked besides kill switch.
[V.ROV.182] Operating States
The sumo controls will be toggled on which toggles the other challenges from being started.
Then the other challenge buttons will be pressed to verify they will not take over during the
sumo challenge.

Confidential
[V.ROV.190] Position Command Latency
The triumphant entrance challenge will be started and we will observe if the commands start
instantly during the sequence.
[V.ROV.191] Position Command Latency
The sumo challenge will be initialized and different movement commands will be sent. This will
verify if the time to switch commands happens instantaneously.

4.2.4 OFF-NOMINAL OPERATING FUNCTIONALITY


[V.ROV.200] Communication Loss
The rover will always have a connection to the remote desktop and turn off if it loses
connection. This will be verified by disconnecting the computer from the GUI and seeing how
the rover reacts.
[V.ROV.210] Loss of Sensors
The rover will constantly have encoder feedback when given a PWM signal. We will verify this by
turning on and off the PWM signal to see the encoder ticks.
[V.ROV.220] Sensor Inputs out of Range

4.2.5 PHYSICAL CHARACTERISTICS


[V.ROV.230] Weight
We will use a scale to verify that the rover does not exceed the 5 pounds weight limit.
[V.ROV.231] Weight
We will use a scale to verify that the rover is not less than 4 pounds.
[V.ROV.240] Envelope
The rover will be placed in the triumphant entrance starting spot and the challenge will be
started. This will verify that the rover can be controlled untethered.

4.2.6 RELIABILITY
[V.ROV.250] Triumphant Entrance Reliability
The triumphant entrance challenge will be ran multiple times until it works correctly 5 times in a
row. This will verify consistent success.
[V.ROV.251] Tennis Ball Challenge Reliability
The tennis ball challenge will be ran until we can generate five consecutive runs. This will verify
consistent success.

Confidential
[V.ROV.252] Sumo Entrance Reliability
The rover will be directed to push a 5 pound weight for a full minute and after we will have it
attempt the triumphant entrance to verify it can still preform after completing the sumo
challenge.

4.2.7 ENVIRONMENTAL CONDITIONS


[V.ROV.260] Clean Floor
We will sweep the floor and remove any clear debris and then test the triumphant entrance
challenge to make sure it can work correctly on a clear floor.
[V.ROV.261] Unlevel Floor
We will place the rover on an unlevel floor and have it move across it and record the difference
in encoder ticks. This will allow us to verify that we have detected an unlevel floor.
[V.ROV.262] Obstacles
We will run the triumphant entrance challenge repeatedly and verify that is does not collide
with any objects.
[V.ROV.263] Arena
We will run the tennis ball challenge repeatedly and make sure that it never leaves the arena.
[V.ROV.264] Obstacles
We will run the tennis ball challenge and verify that the rover does not collide with any of the
goals.

4.3 INTERFACE DEFINITION


4.3.1 STRUCTURAL/MECHANICAL INTERFACE
[V.ROV.270] Raspberry Pi Mounting Interface
Visual inspection will be used to make sure the Raspberry Pi is attached safely and securely.
[V.ROV.271] Motor Controller Board Mounting Interface
Visual inspection will be used to make sure the motor controller board is mounted safely and
securely.
[V.ROV.272] Camera Mounting Interface
Visual inspection will be used to make sure the camera is mounted safely, securely, and aligned
correctly.

Confidential

4.3.2 POWER INTERFACE


[V.ROV.280] Raspberry Pi Power Interface
Visual inspection will be used to verify the Raspberry Pi can mate with the +5 VDC battery pack.
[V.ROV.290] Motor Drive Logic Power Interface
Visual inspection will be used to verify that a two wire power input where ground is black and
+5 VDC is red from the Raspberry Pi.
[V.ROV.300] Motor Drive Output Power Interface
Visual inspection will be used to verify a two wire power input for +10.8 VDC is supplied to the
motor drive.
[V.ROV.310] Steady-state Input Voltage
The battery pack will be measured for 10 straight minutes and the voltage will be plotted in
Excel to make sure the voltage stays within a safe range.
[V.ROV.311] Steady-state Input Voltage
The battery pack will be measured for 10 straight minutes and the voltage will be plotted in
Excel to make sure the voltage stays within a safe range.
[V.ROV.320] Single Point Ground
Visual inspection will be used to verify that all grounds are connected between the Raspberry Pi
and the motor controller board.

4.3.3 PROCESSOR TO FPGA POSITION COMMAND INTERFACE


[V.ROV.330] Position Polarity
A positive position command will be sent to the rover to verify it moves forward and the same
will be done to verify it can move backward.
[V.ROV.340] Position Scaling
The code to move the rover will be visually inspected to make sure the functions to move the
rover is controlled by the number of encoder ticks you want in the movement.

4.3.4 ENCODER INTERFACE


[V.ROV.350] Encoder Scaling
A ruler will be used to verify the rover treads moved a full inch and the oscilloscope will be used
to measure the number of encoder ticks it took to generate the inch of movement.

Confidential

4.3.5 CAMERA INTERFACE


[V.ROV.360] Camera Interface
A python script will be used to verify the camera is sending live images to the Raspberry Pi and
we will be able to see what is happening in real time.
[V.ROV.361] Camera Detection
The appropriate thresholds will be applied to the OpenCV code and we will attempt detecting
just a red ball with the camera and displayed in a GUI.
[V.ROV.362] Camera Detection
The appropriate thresholds will be applied to the OpenCV code and we will attempt detecting
just a yellow ball with the camera and displayed in a GUI.
[V.ROV.363] Camera Detection
The appropriate thresholds will be applied to the OpenCV code and we will attempt detecting
just a blue ball with the camera and displayed in a GUI.

5 DEFINITIONS
5.1 ACRONYM LIST
Acronym

Definition

DC

Direct current

TBD

To be determined

CV

Computer vision

VDC

Volts of direct current

6 APPENDIX A VERIFICATION CROSS REFERENCE MATRIX (VCRM)


The following table acknowledges the two phases of verification namely Qualification and
Acceptance, and their associated verification methods. The recognized verification methods
are defined as: A = Analysis, I = Inspection, D = Demonstration, T = Test.

Confidential
Section
No.

Requiremen
t ID

Requirement Title

Meth
od

Verificatio
n ID

Comment

Confidential
3.2.1.1.1

R.ROV.30

Motor Encoders

V.ROV.30

3.2.1.1.1

R.ROV.31

Motor Encoders

V.ROV.31

3.2.1.1.1

R.ROV.32

Motor Encoders

V.ROV.32

3.2.1.1.1

R.ROV.33

Motor Encoders

V.ROV.33

3.2.1.1.1

R.ROV.40

Camera Module

V.ROV.40

3.2.1.1.1

R.ROV.41

Camera Module

V.ROV.41

3.2.1.1.1

R.ROV.42

Camera Module

V.ROV.42

3.2.1.1.1

R.ROV.50

Motor Driver

V.ROV.50

3.2.1.1.1

R.ROV.51

Motor Driver

V.ROV.51

3.2.1.1.1

R.ROV.52

Motor Driver

V.ROV.52

3.2.1.1.1

R.ROV.53

Motor Driver

V.ROV.53

3.2.1.1.1

R.ROV.54

Motor Driver

V.ROV.54

3.2.1.1.1

R.ROV.60

Motor Driver Logic


Power

V.ROV.60

3.2.1.1.1

R.ROV.70

Motor Driver Output


Power

V.ROV.70

3.2.1.1.1

R.ROV.80

Controller Power

V.ROV.80

3.2.1.1.1

R.ROV.90

Remote Desktop
Interface

V.ROV.90

3.2.1.1.2

R.ROV.100

Motor Driver

V.ROV.100

3.2.1.1.3

R.ROV.110

Active Heating or
Cooling

V.ROV.110

3.2.1.1.4

R.ROV.120

Electrical Power Input

V.ROV.120

3.2.1.1.4

R.ROV.130

Power-up Sequence

V.ROV.130

3.2.1.2

R.ROV.140

Camera Update Rate

V.ROV.140

3.2.1.2

R.ROV.150

Motor PWM Resolution

V.ROV.150

3.2.1.2

R.ROV.160

Motor Command
Resolution

V.ROV.160

3.2.2

R.ROV.170

GUI Requirements

V.ROV.170

3.2.2

R.ROV.171

GUI Layout

V.ROV.171

3.2.2

R.ROV.172

GUI Layout

V.ROV.172

3.2.2

R.ROV.173

GUI Layout

V.ROV.173

3.2.2

R.ROV.174

GUI Layout

V.ROV.174

3.2.2

R.ROV.175

GUI Layout

V.ROV.175

3.2.3

R.ROV.180

Operating States

V.ROV.180

3.2.3

R.ROV.181

Operating States

V.ROV.181

3.2.3

R.ROV.182

Operating States

V.ROV.182

Confidential
3.2.3

R.ROV.190

Position Command
Latency

V.ROV.190

3.2.3

R.ROV.191

Position Command
Latency

V.ROV.191

3.2.4

R.ROV.200

Communication Loss

V.ROV.200

3.2.4

R.ROV.210

Loss of Sensors

V.ROV.210

3.2.4

R.ROV.220

Sensor Inputs out of


Range

V.ROV.220

3.2.5

R.ROV.230

Weight

V.ROV.230

3.2.5

R.ROV.231

Weight

V.ROV.231

3.2.5

R.ROV.240

Envelope

V.ROV.240

3.2.6

R.ROV.250

Triumphant Entrance
Reliability

V.ROV.250

3.2.6

R.ROV.251

Tennis Ball Challenge


Reliability

V.ROV.251

3.2.6

R.ROV.252

Sumo Entrance
Reliability

V.ROV.252

3.2.7

R.ROV.260

Clean Floor

V.ROV.260

3.2.7

R.ROV.261

Unlevel Floor

V.ROV.261

3.2.7

R.ROV.262

Obstacles

V.ROV.262

3.2.7

R.ROV.263

Arena

V.ROV.263

3.2.7

R.ROV.264

Obstacles

V.ROV.264

3.3.1

R.ROV.270

Raspberry Pi Mounting
Interface

V.ROV.270

3.3.1

R.ROV.271

Motor Controller Board


Mounting Interface

V.ROV.271

3.3.1

R.ROV.272

Camera Mounting
Interface

V.ROV.272

3.3.2

R.ROV.280

Raspberry Pi Power
Interface

V.ROV.280

3.3.2

R.ROV.290

Motor Drive Logic


Power Interface

V.ROV.290

3.3.2

R.ROV.300

Motor Drive Output


Power Interface

V.ROV.300

3.3.2

R.ROV.310

Steady-state Input
Voltage

V.ROV.310

3.3.2

R.ROV.311

Steady-state Input
Voltage

V.ROV.311

3.3.2

R.ROV.320

Single Point Ground

V.ROV.320

3.3.3

R.ROV.330

Position Polarity

V.ROV.330

Confidential
3.3.3

R.ROV.340

Position Scaling

V.ROV.340

3.3.4

R.ROV.350

Encoder Scaling

V.ROV.350

3.3.5

R.ROV.360

Camera Interface

V.ROV.360

3.3.5

R.ROV.361

Camera Detection

V.ROV.361

3.3.5

R.ROV.362

Camera Detection

V.ROV.362

3.3.5

R.ROV.363

Camera Detection

V.ROV.363

7 APPENDIX B MOTOR COMMAND AND STATUS FORMAT

You might also like