Maze Navigating Car

vivaciousaquaticΤεχνίτη Νοημοσύνη και Ρομποτική

13 Νοε 2013 (πριν από 3 χρόνια και 11 μήνες)

63 εμφανίσεις

Maze Navigating Car
-

Requirements

1

Maze Navigating Car

Requirements

Revision 0.16

Version 0.01
-

17 February 2002


Lenny
-

Initial Version

Version 0.02
-

18 February 2002


Mike
-

Added to initial version

Version 0.03
-

6 April 2002

Lenny
-

Modified Requirements section, added Interface Spec
ification Document to References
(2.3) section.

Version 0.04
-

11 April 2002


Lenny
-

Made changes to entire document!

Version 0.05


11 April 2002


Lenny


reworked the document adding automated table of contents

Version 0.06


13 April 2002


Lenny


adde
d old risks

Version 0.07


14 April 2002


Lenny


added use cases written by Alan


Lenny


added maze document to references section

Version 0.08


16 April 2002


Lenny


fixed numbering

Version 0.09


16 April 2002


Lenny


changed some formatting

Version

0.10


20 April 2002


Lenny


reworked the entire document again

Version 0.11


25 April 2002


Lenny and Alan


added new risks

Version 0.12


7 May 2002


Lenny


Updated server subsystem module description and added new risks

Version 0.13


8 May 2002


L
enny


Added screenshots to User Interface Description section

Version 0.14


11 May 2002


Lenny


Added header and footer and 3 Stooges names

Version 0.15


12 May 2002


Lenny


Added new pictures of Curly

Version 0.16


16 May 2002


Lenny


minor wording

changes







Mike Reinstein (Moe)



web_fella@hotmail.com

Alan Paulsen (Larry)

phearm@hotmail.com

Lenny Maiorani (Curly)

ldm5180@hotpop.com

Maze Navigating Car
-

Requirements

2

Table of Contents

1

Introduction

4

1.1

Purpose

4

1.2

System Overview

6

1.3

References

7

1.4

Document Overview

7

1.5

Risks (7 May 2002)

7

1.5.1

GUI Client Subsystem (Moe) Risks

7

1.5.2

Server Subsystem (Larry) Risks

7

1.5.3

Robot Subsystem (Curly) Risks

7

1.6

Risks (25 April 2002)

7

1.6.1

GUI Client Subsystem (Moe) Risks

7

1.6.2

Server
Subsystem (Larry) Risks

7

1.6.3

Robot Subsystem (Curly) Risks

7

1.7

Risks (11 April 2002)

8

1.7.1

GUI Client Subsystem (Moe) Risks

8

1.7.2

Server Subsystem (Larry) Risks

8

1.7.3

Robot Subsystem (Curly) Risks

8

1.8

Risks (6 April 2002)

8

1.8.1

GUI Client Subsystem (Moe) Risks

8

1.8.2

Serv
er Subsystem (Larry) Risks

8

1.8.3

Robot Subsystem (Curly) Risks

8

1.9

Risks (21 February 2002)

8

1.9.1

GUI Client Subsystem (Moe) Risks

8

1.9.2

Server Subsystem (Larry) Risks

9

1.9.3

Robot Subsystem (Curly) Risk
s

9

1.10

Context

9

2

Module Description

10

2.1

GUI Client Subsystem (Moe)

10

2.2

Server Subsystem (Larry)

10

2.3

Robot Subsystem (Curly)

10

3

User Inter
face Description

11

3.1

Robot Command Center Window Description

13

3.1.1

Screenshot

13

3.2

Streaming Video Window Description

13

3.2.1

Screenshot

13

3.3

Sensor Readings Window Description

14

3.3.1

Screenshot

14

3.4

System Logs Window Description

14

3.4.1

Screenshot

14

4

Hardware and Software Requirements

15

4.1

GUI Client Subsystem (Moe) Requirements

15

4.2

Serv
er Subsystem (Larry) Requirements

15

4.3

Robot Subsystem (Curly) Requirements

15

5

Use Cases

16

5.1

Image Processing

16

Maze Navigating Car
-

Requirements

3

5.2

Obey Stop Signs

16

5.3

Parallel Parking

16

5.4

Obey Speed Limits

16

5.5

Destination Navigation

16


Maze Navigating Car
-

Requirements

4

1

Introduction

1.1

Purpose

The purpose of this document is to describe the requirements set forth by

the
customer for the Maze Navigating Car (MNC). It will provide a listing and
explanation of all features to be included in the product, as well as provide a metric
for comparison between the project design and the delivered product. The product
prototyp
e is to be delivered at the end of CSC402
-

Real
-
time Systems on the 17
th

of
May 2002.


Early picture (still in development):



Current picture:

Maze Navigating Car
-

Requirements

5



Top view:



Maze Navigating Car
-

Requirements

6

Side above view:


1.2

System Overview

The MNC shall be an autonomous system capable of performing

maze navigation in
an environment similar to one found in the streets of a city. This functionality will be
achieved through the use of a low
-
resolution vision system that shall read street signs
and infrared distance sensors that shall detect the sides o
f the corridor. The MNC
shall be comprised of three separate and distinct subsystems:



A GUI client (Moe) shall display processed sensor data and video and provide
buttons for high
-
level control of the entire system, and shall format sensory
data from the
robot for display.



A server (Larry) shall process sensory data and streaming video from the
robot and shall determine the appropriate course of action for the vehicle
based on the processed data and shall send navigation commands (turn left,
turn right, st
op, etc.) to the robot.



A wheeled robot (Curly) shall provide perception of the physical environment
using infrared distance sensors and a video camera. This data and video will
be sent to the server. The robot shall autonomously traverse corridors and
d
etect intersections using the infrared distance sensors. The robot shall also
accept navigation commands (turn left, turn right, stop, etc.) from the server.


Maze Navigating Car
-

Requirements

7

1.3

References

The following documents provide additional details to support the requirements listed

in this document:



Maze Navigating Car Interface Specification



Maze Navigating Car
Maze Specification


1.4

Document Overview

This document is comprised of five major sections. Section 1 (this section) provides
an introduction to this document and briefly desc
ribes the Maze Navigating Car
system. Section 2 describes different modules that will make up the complete system.
Section 3 describes the user interface to the system. Section 4 provides hardware and
software requirements of the system. Section 5 is a

description of the development
process that will be used over the course of the project.


1.5

Risks (7 May 2002)

1.5.1

GUI Client Subsystem (Moe) Risks



Generating speech



Using the buttons to control stopping and starting

1.5.2

Server Subsystem (Larry) Risks



Navigating th
e maze accurately

1.5.3

Robot Subsystem (Curly) Risks



Avoiding walls



Recognizing intersections more reliably



Recognizing intersections earlier



Responding to server communications accurately

1.6

Risks (25 April 2002)

1.6.1

GUI Client Subsystem (Moe) Risks



Generating speech

1.6.2

Server Subsystem (Larry) Risks



Communicating with the robot



Blurred images in video while moving



Speed limit sign recognition



Arrow sign confirmation

1.6.3

Robot Subsystem (Curly) Risks



Going around corners because turning radius of the car is large.

Maze Navigating Car
-

Requirements

8



Operating
the car at an effective speed.



Communicating with the server.



Recognizing intersections



Accepting commands from the server and acting upon them

1.7

Risks (11 April 2002)

1.7.1

GUI Client Subsystem (Moe) Risks



None?

1.7.2

Server Subsystem (Larry) Risks



Too much background
noise in the video images.



Processing frames fast enough to make decisions and tell the robot
while moving.



Communicating with the robot.



Blurred images in video while moving.

1.7.3

Robot Subsystem (Curly) Risks



Going around corners because turning radius of the

car is large.



Operating the car at an effective speed.



Communicating with the server.


1.8

Risks (6 April 2002)

1.8.1

GUI Client Subsystem (Moe) Risks



Overlaying bounding boxes on images.

1.8.2

Server Subsystem (Larry) Risks



Too much background noise in the video images.



Processing frames fast enough to make decisions and tell the robot.



Communicating with the robot.

1.8.3

Robot Subsystem (Curly) Risks



Obtaining the PC
-
104 and Zircon
-
MM boards.



Making turns because the turning radius of the car is large.



Operating the car at an

effective speed.



Communicating with the server.

1.9

Risks (21 February 2002)

1.9.1

GUI Client Subsystem (Moe) Risks



Unknown…

Maze Navigating Car
-

Requirements

9

1.9.2

Server Subsystem (Larry) Risks



Background noise in the video images

1.9.3

Robot Subsystem (Curly) Risks



Getting Linux running



Capturing video from

the camera



Frame rate of the camera



Sending images over the network fast enough



Getting the maze constructed


1.10

Context

The software is designed to be utilized in a highly controlled academic setting
(CSC402
-

Software Engineering, CSC416
-

Real
-
time System
s) at Plattsburgh State
University. This program is not designed to perform in a commercial manner.
Trained professionals shall operate the MNC. It will be demonstrated in Hawkins
Hall, room 010.


The robot (Curly) uses a radio
-
controlled car as a base
and a PC/104 bus computer as
a controller. The computer runs Linux 2.4.17 with USB and PCMCIA support. The
robot (Curly) and the server (Larry) communicate over a wireless Ethernet 802.11b.


The development environments are JBuilder and the GNU C compile
r. The Java
Runtime Environment is version 1.4.


The robot subsystem is written in C and the server and client subsystems are written
in Java.


SSH is used remotely to log in to the robot from a PC. All executables are compiled
statically for the robot

and downloaded to it over an NFS mount.

Maze Navigating Car
-

Requirements

10

2

Module Description

2.1

GUI Client Subsystem (Moe)

The GUI client shall:



Display streaming video



Overlay graphics indicating the location and meaning of all signs



Allow graphical selection of next goal (hospital/police
station)



Generate speech indicating state transitions of MNC

2.2

Server Subsystem (Larry)

The server shall:



Receive video from the robot



Analyze the video to locate and interpret signs



Give commands to the robot to start, stop, turn left or right at an interse
ction,
change speed, backup, and parallel park in order to navigate to the goal while
obeying all traffic signs



Stream video to the GUI client



Receive high
-
level commands from the GUI client to control robot operations

2.3

Robot Subsystem (Curly)

The robot sha
ll:



Obey signs and traffic laws as observed by the server



Stream video to the server



Accept commands from the server to start, stop, turn, change speed, and park



Autonomously traverse along the center of corridors



Autonomously back out of dead ends



Autonom
ously parallel park in front of destination



Blink LED turn signals when a turn is to be executed



Detect parking spaces when a command to parallel park is received

Maze Navigating Car
-

Requirements

11

3

User Interface Description

The user interface shall be implemented as a GUI, a Graphical Use
r Interface. The client
shall provide a multiple window interface to display different types of data. This user
interface will be projected overhead for the demonstration. Control functions shall be
placed in one window, while image viewing shall be in
a separate window, with graphics
overlaid on top of the raw image to show the steps the server has taken to perform
analysis. Status information coming from the server and robot will be displayed in its
own window as well.


Screenshot of the User Interface

at startup…



Screenshot of the User Interface with all diagnostic windows open…

Maze Navigating Car
-

Requirements

12



Maze Navigating Car
-

Requirements

13

3.1

Robot Command Center Window Description

3.1.1

Screenshot


3.2

Streaming Video Window Description

3.2.1

Screenshot


Maze Navigating Car
-

Requirements

14

3.3

Sensor Readings Window Description

3.3.1

Screenshot


3.4

System Logs Window De
scription

3.4.1

Screenshot


Maze Navigating Car
-

Requirements

15

4

Hardware and Software Requirements

4.1

GUI Client Subsystem (Moe) Requirements



Java Runtime Environment (version 1.4 or greater)



1 GHz or faster, with 128 MB ram



10 Mbit Ethernet connection to the server

4.2

Server Subsystem (Larry) Require
ments



1 GHz with plenty
(how much?)

of RAM.



10Mbit Ethernet connection to the client



Wireless Ethernet connection using 802.11b to the robot

4.3

Robot Subsystem (Curly) Requirements



Linux 2.4.17 kernel with USB and PCMCIA support



USB Logitech Quickcam Express



PCMCIA Cabletron RoamAbout 802.11b



Servo motor controller



Wireless Ethernet connection using 802.11b to the server



Analog I/O to read distance sensors

Maze Navigating Car
-

Requirements

16

5

Use Cases

The following Use Cases will be demonstrated in the order they appear in this document.

5.1

Image

Processing

Show image processing by placing individual signs in front of camera, placing a
bounding box around them and giving verbal recognition, i.e. “Stop sign encountered.”
The following signs will be placed in front of the camera:



Stop Sign



Hospital

Sign with arrow



Speed Limit Sign



Police Sign with arrow

5.2

Obey Stop Signs

Place MNC in maze, and traverse a rectangular maze obeying stop signs as it encounters
them. Stop signs will only be placed at intersections and corners. After two times around
the
block move the stop signs to different locations and repeat this process.

5.3

Parallel Parking

Demonstrate parallel parking. Start in a parking space, drive out of the parking space and
park in the next available spot.

5.4

Obey Speed Limits

The MNC shall traverse

a corridor, and change speeds when speed limit signs are
encountered as it moves through the maze. Then change the location of the speed limit
signs, and start the MNC down the same corridor to demonstrate the changed behavior.
There will only be two di
fferent speeds.

5.5

Destination Navigation

Place the signs indicating direction to the hospital in the maze. Place the MNC anywhere
in the maze. Start the MNC and at the first hospital sign the car will turn in the direction
of the hospital. The MNC will fo
llow the signs until it reaches the hospital. Change the
starting location of the MNC and move the hospital along with the proper signs and
perform demonstration again. This can also be done with the police station.