university of cincinnati center...fr. conceicao rodrigues college of engineering, university of...

75
1 UNIVERSITY OF CINCINNATI DATE: 11/18/2004 I, Saurabh Naik , hereby submit this work as part of the requirements for the degree of: Master of Sciences , in: Industrial Engineering , It is entitled: Online Documentation and Diagnostic system for the Bearcat Cub Approved by: Dr. Ernest L. Hall Dr. Richard L. Shell Dr. Ronald L.Huston

Upload: others

Post on 23-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

1

UNIVERSITY OF CINCINNATI

DATE: 11/18/2004

I, Saurabh Naik , hereby submit this work as part of the requirements for the degree of: Master of Sciences , in: Industrial Engineering , It is entitled: Online Documentation and Diagnostic system for the Bearcat Cub

Approved by:

Dr. Ernest L. Hall Dr. Richard L. Shell

Dr. Ronald L.Huston

Page 2: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

2

Online Documentation and Diagnostic system for the Bearcat Cub

A thesis submitted to the

Division of Graduate studies and Research

Of the University of Cincinnati

In partial fulfillment of the requirements for the degree of

Master of Science

in the Department of Mechanical, Industrial and Nuclear Engineering

Of the College of Engineering

2004

by

Saurabh Naik

B.E (Production Engineering)

Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001.

Thesis Advisor and Committee Chair: Dr. Ernest L. Hall

Page 3: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

3

Abstract The Center for Robotics Research at the University of Cincinnati has been developing

autonomous vehicles since its establishment in 1983.The robot team competes every year

in the "International Ground Vehicles Competition" conducted by the Association for

Unmanned Vehicle Systems. The robot team consists of undergraduate, graduate, post-

graduate students and alumni. The team also recruits new members every year. The design

process is a joint effort by members from various disciplines. . The latest robot being

developed by the team is the Bearcat Cub. The design of the Cub is based on the Bearcat

Brat but a lot of new functionality and components have been added to the design. Some of

the new components include an Ethernet based motion controller, Bumblebee stereovision

system and a Honda generator as the power source. The source code is being created on the

.Net platform using C++ as the programming language.

It is imperative that information about the Cub, its components, code and design is

available to the team members for better understanding of the whole design process. To

succeed in its goals, members of the team must share not only data but also interpretations,

analysis and their conclusions of that data. The objective of this thesis is to create a secure

online documentation and diagnostics system for the Bearcat Cub, which will allow the

members to refer to information about components, understand the source code and record

their observations in the diagnostic system.

The online system was developed on the Visual.Net platform using ASP.Net as the

framework and VB.Net as the coding language. The database was created using MS

Access and is stored on a Windows SQL2000 server. The source code for the Cub is also

Page 4: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

4

being developed on the same platform, which will allow for integration of the two systems

in future. The diagnostic system was tested successfully by adding error details and

subsequent solutions to the database. This system should be very helpful to the team

members for securely accessing and altering information from a remote location.

Page 5: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

5

Page 6: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

6

Acknowledgement I would like to thank my advisor, Dr.Ernest Hall, without whose guidance and support this

thesis would not have been possible. His suggestions and feedback had greatly helped me in

my thesis and I am really grateful for his help and support.

I would like to thank Dr.Richard L.Shell and Dr.Ronald L.Huston for agreeing to be on the

committee. I would also like to thank them for their suggestions and positive feedback.

I would like to thank the Robotics Team members for all the help and support they have given

me during my graduate period of study at the University Of Cincinnati. I would like to thank

all my friends and well-wishers who had helped me from time to time.

Last but not the least; I would like to thank my family for their encouragement and support in

all my endeavors. I owe all my success to them.

Page 7: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

7

TABLE OF CONTENTS ACKNOWLEDGEMENT...............................................................................................................................6 LIST OF TABLES ...........................................................................................................................................9 LIST OF FIGURES .......................................................................................................................................10 1. INTRODUCTION................................................................................................................................12

1.1 OBJECTIVE ...................................................................................................................................12 1.2 ORGANIZATION OF THESIS ..........................................................................................................13

2. MAJOR SYSTEMS AND COMPONENTS OF THE BEARCAT CUB...............................................14 2.1 THE MECHANICAL SYSTEM .................................................................................................................14

2.1.1 Robot Frame..................................................................................................................................14 2.1.2 Wheels, motor and gearbox...........................................................................................................14

2.2 ELECTRICAL AND ELECTRONIC SYSTEMS ...........................................................................................15 2.2.1 Galil DMC2100 motion controller ................................................................................................16 2.2.2 Vision Systems ...............................................................................................................................17 2.2.3 Emergency E-stop..........................................................................................................................19 2.2.4 GPS................................................................................................................................................19 2.2.5 Servo motors..................................................................................................................................20 2.2.6 CPU...............................................................................................................................................20

2.3 LINE FOLLOWING SYSTEM...................................................................................................................20 2.4 OBSTACLE AVOIDANCE........................................................................................................................21 2.5 WAYPOINT NAVIGATION......................................................................................................................23 2.6 SYSTEM INTEGRATION .........................................................................................................................24 2.7 SAFETY AND RELIABILITY....................................................................................................................24

2.7.1 Performance ..................................................................................................................................25 3. THE INTERNET AND VISUAL .NET ...................................................................................................26

3.1 HYPERTEXT TRANSFER PROTOCOL ....................................................................................................26 3.2 WEB PAGES ...........................................................................................................................................27

3.2.1 Static Web pages ...........................................................................................................................27 3.2.2 Dynamic web pages.......................................................................................................................27

3.3 CLIENT SIDE TECHNOLOGIES ...............................................................................................................27 3.4 SERVER SIDE TECHNOLOGIES .............................................................................................................28 3.5 MORE ON .NET AND ASP.NET ...........................................................................................................28

3.5.1. NET Framework ...........................................................................................................................28 3.5 2 How ASP.NET works.....................................................................................................................29

3. 6 ASP VS. ASP.NET ...............................................................................................................................30 3.6.1 ASP .NET Controls........................................................................................................................30 3.6.2 Event Aware Controls....................................................................................................................31 3.6.3 High Scalability.............................................................................................................................31 3.6.4 Compiled Code ..............................................................................................................................31 3.6.5 Easy Configuration........................................................................................................................31 3.6.6 Easy Deployment...........................................................................................................................31 3.6.7 Compatibility .................................................................................................................................31

4. THE ONLINE DOCUMENTATION AND DIAGNOSTICS SYSTEM FOR THE BEARCAT CUB.........................................................................................................................................................................32

4.1 SOURCE CODE DOCUMENTATION........................................................................................................32 4.1.1 The Obstacle Avoidance and Line following module ....................................................................32

4.1.1.1 Vision System.........................................................................................................................................32 4.1.1.2 Motion Control System...........................................................................................................................37 4.1.1.3 Obstacle Avoidance System ...................................................................................................................40

Page 8: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

8

4.1.2 The GPS based Navigation System module ...................................................................................45 4.2 DESCRIPTION OF THE VARIOUS COMPONENTS OF THE CUB................................................................51

4.2.1 Mechanical System ........................................................................................................................51 4.2.2 Transmission system......................................................................................................................52

4.2.2.1 Wheels ....................................................................................................................................................52 4.2.2.2 Gearbox ..................................................................................................................................................53 4.2.2.3 Castor Wheel ..........................................................................................................................................54 4.2.2.4 Motors.....................................................................................................................................................55

4.2.3 Electrical and Electronic systems..................................................................................................56 4.2.3.1 Amplifiers...............................................................................................................................................56 4.2.3.2 Power System .........................................................................................................................................57 4.2.3.3 Motion Controller ...................................................................................................................................58 4.2.3.4 GPS.........................................................................................................................................................59 4.2.3.5 ISCAN ....................................................................................................................................................60 4.2.3.6 VAC Video Switch .................................................................................................................................61 4.2.3.7 Camera....................................................................................................................................................62 4.2.3.8 Bumblebee Stereovision system .............................................................................................................62 4.2.3.9 CPU ........................................................................................................................................................63 4.2.3.11 Legacy Monitors ...................................................................................................................................65

4.3 DIAGNOSTIC SYSTEM FOR THE BEARCAT CUB ...................................................................................66 4.3.1 The Database.................................................................................................................................67 4.3.2 Different Modules in the Data Repository.....................................................................................67

5. CONCLUSIONS AND RECOMMENDATIONS ...................................................................................73 6. REFERENCES...........................................................................................................................................74

Page 9: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

9

List of Tables

2.1 Comparison of Requirements and measured performance 18 4.1 Vis_main Class 28 4.2 Vis_tran Class 29 4.3 ISCAN class 29 4.4 ISCANDRV Class 29 4.5 MATRIX Class 30 4.6 Camera Class 30 4.7 VIS_L Class 31

4.8 VIS_R Class 31

4.9 G-Cart Class 32

4.10 man_move Class 33

4.11 CAR Class 33

4.12 GALIL Class 34

4.13 SICKLMS Class 36

4.14 GPSMAIN Class 41

4.15 GPS Class 42

4.16 ComAccess Class 42

4.17 SICKLMS Class 43

4.18 GALIL Class 43

Page 10: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

10

List of Figures

2.1 Basic Robot Structure 72.2 Generator 82.3 Bearcat Block Diagram 92.4 Motion Control Diagram 102.5 Bumblebee Stereovision 112.6 Point to point navigation 132.7 Points of line 142.8 Distance from Line 142.9 Zones, angles and radial dimensions 152.10 Obstacles seen by program after data processing 163.1 World wide web architecture 194.1 Points of line 284.2 Distance from Line 284.3 Motion Control Diagram 324.4 Field of view of Laser Scanner 364.5 Motion Control Class Diagram using UML 384.6 Navigation Module Class Diagram using UML 444.7 Design process 454.8 Basic Robot Structure 464.9 Wheel 474.10 Gearbox 474.11 Castor Wheel 484.12 Motor 494.13 Amplifier 504.14 Generator 514.15 Motion Controller 524.16 GPS 544.17 Video Switch 564.18 Handy Cam 564.19 Bumblebee Stereovision camera 574.20 Laptop 584.21 Remote E-stop 594.22 Monitor 604.23 Steps in design of Diagnostic system 61

Page 11: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

11

4.24 Schematic diagram of system 634.25 Login Page snapshot 644.26 Selection Page snapshot 654.27 Error description page snapshot 664.28 New Error entry page 67

Page 12: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

12

1. Introduction

Documentation is a vital but often unappreciated part of almost every product. The Internet

has revolutionized the whole world in its methods of information sharing. In this new era

of combined education and collective learning, the learning still seems to be incomplete if

there is no one single platform or framework through which information is shared.

The thesis delves on recommending an online documentation system for the UC Robotics

Team, which will allow storage, retrieval, and sharing of its data securely. The University

of Cincinnati Center for Robotics is a research group of engineers, who build intelligent

autonomous vehicles. The team participates in the Annual Intelligent Ground Vehicles

Competition every year and is currently working on the development of a new autonomous

vehicle, the Bearcat Cub. So it becomes imperative for every member to understand the

complexities of every system involved for the effective functioning of the Cub. Building

an online referral system will provide answers to questions technical or otherwise and lead

to better communication and better understanding of the robot.

1.1 Objective Lack of relevant and accurate information at the right time is the main source of

bottlenecking, and stagnation in any project. This can be reduced to a great extent by

choosing and adopting the right methodology for information storage, retrieval and

sharing. In the existing era of information sharing through Internet, it would be wise to

capitalize on it for its speed and accessibility.

The UC Robotics team is facing problems of lack of information about the Cub because of

the nonexistence of a centralized documentation system. The main objective of this project

is to minimize such a backlog in workflow due to lack of information. The project uses the

Page 13: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

13

internet technology specifically the .NET technology for data management and elaborates

its uses, implementation methods, advantages and disadvantages. The solution will

empower users, current as well as future, to have a better understanding of the various

components and it will serve as an excellent tool for design, analysis and effective

decision-making.

1.2 Organization of Thesis To facilitate ease of reading the thesis is segmented into chapters. The segmentation is

carried out in such a way that it provides easy understanding. Chapter 2 describes the

various components of the autonomous guide vehicle Bearcat Cub. Chapter 3 gives a brief

outline of the components that are crucial for the building of web to database application.

Chapter 4 sketches the implementation of the Documentation and Diagnostic System in

ASP.NET[1] using VB.NET. Chapter 5 outlines the recommendations for future

enhancements.

Page 14: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

14

2. Major systems and components of the Bearcat Cub 2.1 The Mechanical System The mechanical system[2] of the robot includes the external frame of the robot, the way it

has been constructed with consideration for strength and durability.

2.1.1 Robot Frame The frame is made of 80/20 aluminum extrusions to have a lightweight structure without

compromising on the strength. The attachments are made with small joining strips at the

ends or by using corner brackets that sit inside the joints. The advantage of using these is

that the frame can be easily reshaped if new components are to be added. Stress and weight

calculations for the joints were carried out using a factor of safety of 125%. A drawing of

the basic structure is shown in Figure 2.1

Figure 2.1 Basic Robot Structure

2.1.2 Wheels, motor and gearbox There are two kinds of wheels on the cub. The main drive wheels are 19” diameter

enhanced traction wheels designed by Michelin for Segway’s human transporter. The other

wheel is a castor wheel, which helps to improve the navigation capabilities of the robot by

providing a zero turning radius. This 8”, 90 series, dual castor wheel, is from Borne & Co.

The wheel size (19”), the maximum allowable speed (5 miles/hour), a frictional coefficient

of 0.125 and a gearbox efficiency of 70% have been used to calculate the required gear

ratio. The calculations generated a gear ratio of 25:1. The motor power required is 1.355 hp

Page 15: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

15

per motor. Two Pacific Scientifics’ PMA43R-00112-00 2 hp brushless servomotors have

been selected for providing power.

The gearbox and the motors have been selected based on calculated values. The robot’s

power system consists of 2 Honda EU-2000i super quiet sets, as shown in Figure 2.1. The

advantage of having a generator instead of batteries is that the power supply is

uninterrupted and refueling is faster.

Figure 2.2 Honda Generator

2.2 Electrical and Electronic systems The electrical systems of the robot include the motion controller, the cameras, the

stereovision camera, GPS, and the emergency E-stop system. The functional block

diagram of the design is shown in Figure 2.3.

Page 16: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

16

Figure 2.3 Bearcat Cub Block Diagram

2.2.1 Galil DMC2100 motion controller The Galil DMC 2130 motion control board[3] is the main controller card of the system and

it is controlled through a computer. Copley amplifiers deliver power to the motors after

amplifying the signals they receive from the motion controller. Steering is achieved by

applying differential speeds at the right and left wheels. The obstacle avoidance system

sends data to the computer, which is also used to determine the change in performance of

the motors. It is compact and is enclosed in a durable container. The controller can

accommodate 1-8 axis formats and can control stepper or servomotors on any combination

of axes. The Bearcat Cub has the ability to turn about its drive axis, which is called Zero

Turning Radius (ZTR). The block diagram of the system is shown in Figure 2.4.

Bearcat Cub Control Logic

Serial I/O RS 422

Pentium based CPU

Serial I/O RS 422

Remote E- Stop

ISCAN I/O

Ethernet

Garmin GPS76

Futaba E-Stop

ISCAN Tracker

Bumblebee Stereovision

Galil DMC2100

Video

Left Motor

Right Motor

Left camera

Right Camera

Page 17: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

17

Figure 2.4 Motion Control Diagram

2.2.2 Vision Systems The cameras provide the image that is used by the line following and obstacle avoidance

systems. The cameras used by the cub are Sony handy cams. Each camera has its own

LCD monitor. There are 2 cameras, the right and left cameras, for line following. The two

outside cameras use a video switch, which takes inputs from both the cameras but uses the

output from only one of them at a time. The switch helps to use the output from the other

camera if the first one loses sight of the line. An imaging board is also present which has

software having the capability to detect the white part of the line and move accordingly.

The video tracker works in conjunction with the computer program to detect the obstacle,

find the centre portion of the obstacle, and then take the necessary steps to avoid it by

following the instructions from the computer based on the program.

Page 18: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

18

Figure 2.5 Bumblebee Stereovision

Field of view is the width, height or diameter of a scene to be monitored. It is usually

determined by the focal length of a lens and the distance to the objects. In the figure above,

‘ө’ is considered as the field of view. ‘d’ is the distance between the robot and the obstacle.

The width of the robot has been measured and the value obtained is 36 inches. A distance

of 12 inches beyond the robot on either side is assumed to be within the field of vision.

Thus, in this problem, the known values are:

d = 36”, 48”, 60” (for varying distances between the robot and the obstacle.

r = distance from the center point of the robot to a point 12 inches wide of the robot. This

length is found to be 30” from measurements made.

Thus, ө/2 can be found with the following simple equation.

Tan (ө/2) = r/d = 30/36

(ө/2) = tan -1 (0.8333)

= 39.80

The field of view ө = 79.6°

Field of View (ө)

d = distance to obstacle varied as 36”, 48”and 60”

36”

r = 30”

Bearcat Cub

Page 19: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

19

As the distance‘d’ increases, the angle field of view decreases and so the field of view

angle would be the highest for this case.

The Bumblebee stereovision system comes with the choice of 3 different lenses- 2mm,

4mm, and 6mm. The field of view for these lenses is 100°, 70°, and 50° respectively.

The conclusion is that we need the vision system with 2mm lenses.

2.2.3 Emergency E-stop The contest rules require that the robot consist of an emergency e-stop system that can

work from a distance of 50 feet. The robot also has a manual emergency stop system but

the e-stop is a remote control electrical device that can make the robot stop from a

distance. The e-stop for the cub consists of a Futaba transmitter, a receiver, an amplifier

and a solid-state relay. The transmitter sends FM signals at a specified frequency. This

signal activates the relay, which in turn, activates the emergency stop and cuts power to the

motor. The advantage of using this transmitter is that it does not have to be in line of sight

with the receiver for it to work.

2.2.4 GPS A commercially available GPS system has been used for the Bearcat Cub. The main

criteria for the selection are Wide Area Augmentation System (WAAS) capability, and

embedded navigation features. The Garmin 76 has the before mentioned requirements and

has thus been selected for implementation. The GPS tracks the NAVSTAR GPS

constellation of satellites. The signals are received by an antenna and are tracked with 12

parallel channels of L1. C/A code is then down converted to an IF frequency and digitally

processed to obtain a full navigation solution of position, velocity, time and heading. The

solution is then sent over the serial link via the 10-pin connector. This is shown in Figure

2.6.

Page 20: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

20

Figure 2.6 Point to Point Navigation

2.2.5 Servo motors Bearcat Cub uses DC Brushless servomotors PMA43R-00112-00 provided by Pacific

Scientific. Servomotors are small and powerful and efficient for servo controls. The circuit

board based on the feedback from encoder in the motor gives signal to the amplifier. The

amplified signal is sent to the motor to turn proportionately. The difference between the

actual position and position reached is sensed by the encoder in the motor and fed back to

the circuit board which modifies the signal by a PID compensator that is to be sent back to

the amplifier. Thus, servomotors are useful in achieving minimal error and maximum

accuracy. For stepper motors, no encoder is present as it sends signals only in steps.

2.2.6 CPU A laptop is the central processing unit of the Bearcat Cub. It processes data from

stereovision, the GPS system and Iscan system that control the cameras. As weight is one

of the major considerations in Bearcat Cub design, a Pentium 4 laptop is used as the

processor for the robot. The software determines the movement of the vehicle with inputs

from different components. The program is written in C++ by using the Visual Studio

.NET compiler.

2.3 Line Following System For the line following competition, the Bearcat Cub has been designed to negotiate an

outdoor obstacle course in a prescribed time while staying with in 5mph speed limit and

Target B (x2, y2) at d

α

Origin A (x1, y1)

Page 21: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

21

avoiding obstacles. Inputs from both the cameras are fed in with the Iscan tracker

processing the image of the line. With reference to the robot’s orientation, the brightest

spot is detected on the image, which is considered as the line to be followed.

As mentioned before, the vision system[4] comprises of two cameras. The Iscan tracker,

which processes the image of the line, finds the centroid of brightest or darkest captured

image. At any time, Bearcat Cub tracks only one line. When the track is lost, the central

controller switches control to the other camera. Calibration of the camera is done to

determine the relationship between the real world 3D coordinate systems to 2D coordinate

system, as perceived by the image of the camera. The centroid of the line segments for the

two images obtained on the screen is returned to the Iscan tracker as shown as points (x1,

y1) and (x2, y2) as shown in Figure 2.7. These points are used to determine the angle and

distance between the robot and the line.

Figure 2.7 Points on Line Figure 2.8 Distance from Line

2.4 Obstacle Avoidance A stereovision system[4] is placed in the front of the robot and is used to determine the

presence of any object in front of the vehicle. The range of the system was chosen to be

eight meters with 10 resolutions for the contest. The frontal area of the robot is divided into

4 zones as shown in Figure 2.9.The following algorithm is used to check for the presence

of obstacles in each zone, and then adjust the robot’s path.

Every time the program gets a feedback from the stereo vision, a variable called ob_factor

is initialized to zero and updated according to the following pseudo-code:

for (each zone, i = 1 to 4) {

Page 22: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

22

if (obstacle is present in zone) {

ob_factor = (ob_factor*10) + i }

} If there are no obstacles in the path, the variable ob_factor remains zero. If there are any

obstacles, the variable accordingly provides information on the configuration of the

obstacles.

While checking for the presence of obstacle in each zone, if there is an obstacle present,

the program also records three values, ob_left, ob_right, and ob_near. For each zone, the

program sweeps the data array received from the stereovision from the starting angle of the

zone to the ending angle of the zone and checks for the presence of obstacle within the

radial dimension shown in Figure 2.9.

Figure 2.9 Zones, Angles and Radial Dimensions

If the distance measured is less than that of the radial dimension of the zone, it indicates

the presence of an obstacle. The two values ob_left and ob_right are recorded to indicate

the angular points where the obstacle is present in the left and right extremes of the zone

respectively. The value ob_near indicates the angular point where the obstacle is closest to

the robot. The corresponding distances of the obstacle for the three angular points are also

recorded for each zone. After processing the boundaries are reduced as shown in Figure

2.10.

Starting angle of the zone

Ending angle of the zone

Radial dimension

1

23

4

Page 23: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

23

Figure 2.10 the Obstacles As Seen By the Program after Data Processing

2.5 Waypoint Navigation Global Positioning System (GPS) technology lays the basis for waypoint navigation[5] in

the Bearcat cub. The classical closed feedback control loop was utilized in the modeling of

the navigational challenge problem, with an input command, feedback signal, error signal,

and output transfer function characteristics. The target waypoint destinations are specified

as the input command and the feedback signal is provided by the Garmin GPS 76 based on

its position with reference to satellite data. Using the current position co-ordinates, the

GPS Garmin 76 provides bearing and range from the target waypoint to determine the

error. Correction signals are generated to reduce the error to a certain tolerance based on

the bearing angle error signal generated by the Garmin GPS 76 unit. The corrective signals

are sent to the robot motion control system, which translates the commands into motor

control voltages that steer and propel (right, left or stop) the robot on the course. Once the

bearing angle error and target range have been reduced to the required tolerance, the robot

reaches its target destination waypoint. Now, the process continues for all the waypoints in

the input file finally returning the robot to the home base. Since the navigational challenge

also has obstacles, the Bearcat Cub with the aid of Point Grey stereovision system,

performs obstacle avoidance during waypoint navigation. The navigational program

routine is transferred to stereo the vision's control in the event of an obstacle in the range.

Once the robot effectively evades the obstacles, the original target waypoint is restored and

the navigational routine is resumed.

After data processing

1

23

4 1

23

4

Page 24: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

24

2.6 System Integration This is the portion where all the individual sub systems have to work in a cohesive fashion

and make the robot work to meet the expectations. The line following algorithm makes

sure that the robot is within the course. The front camera sends the image it sees to the

computer and again a specified sub routine determines the presence of simulated potholes.

The stereovision detects the presence of obstacles and obstacle avoidance takes precedence

over pothole detection. Whenever there is a need to change the direction of motion, the

computer sends signals to the motion controller, which in turn makes the motors and

wheels, work accordingly. The frame of the robot supports the entire system and also

provides protection from collisions.

2.7 Safety and Reliability There are three different safety systems built in to stop the robot. One is the manual e-stop

system and another is the remote control e-stop system capable of stopping the robot from

a range of 65 feet, which is higher than the contest requirements of 50 feet. A third safety

is provided by a power disconnect switch. The gearboxes have also been selected to stop

when power is not applied. The motor generator sets selected have hazards from both

internal combustion and electric powered systems. However, properly used, the risks are

the same as for other small engine devices.

Reliability of a new robot is difficult to predict. A potential failure mode and effects

analysis will be done during testing. Front bumpers are present which reduce the impact of

physical shocks from reaching the stereovision and cameras mounted on the robot. All

circuits have been color coded to ensure proper reconnection with the black for ground.

Page 25: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

25

2.7.1 Performance The performance for key requirement is shown in table 2.1 Task Requirement Measured 1 Line following Solid and dashed lines, white or

colored, left or right Accuracy 0.3 inch

2 Obstacle avoidance Detect and turn Detect and turn 3 Pothole detection 2 foot diameter 2 foot diameter 4 Waypoint detection 5 foot radius 5 foot radius 5 Emergency stop 50 foot range 65 foot range 6 Turning radius 0 degrees 7 Maximum speed 5 mph 5 mph 8 Ramp climbing ability 15 degrees 20 degrees 9 Braking distance 6 feet 1 foot

Table 2.1 Comparison of requirements and measured performance

Page 26: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

26

3. The Internet and Visual .NET The Internet is defined as a worldwide network of computers connected together through a

standard network protocol known as transmission Control protocol or TCP/IP.

3.1 Hypertext Transfer Protocol The Hypertext Transfer Protocol (HTTP)[6] is an application-level protocol for distributed,

collaborative, hypermedia information systems. It is a generic, stateless, protocol that can

be used for many tasks beyond its use for hypertext, such as name servers and distributed

object management systems, through extension of its request methods, error codes and

headers. A feature of HTTP is the typing and negotiation of data representation, allowing

systems to be built independently of the data being transferred. It is the standard protocol

used by the Web Browser and the Web server to communicate i.e. to send requests and

replies between servers and browsers. A text document containing labels of special

commands written in Hypertext Markup language.

Figure 3.1 World Wide Web Architecture

Page 27: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

27

3.2 Web pages 3.2.1 Static Web pages Static web page content is determined at the time of writing the document. As implied

above, every request for a static page gives the same response. Static Web pages are simple

and easy to create. They can be viewed quickly and can be stored as local copies, on the

client’s computer, for quicker access in the future. Problem with static web pages is the

lack of adaptability. If a static page needs to be changed, someone has to manually change

the code on each revision. This can take up lots of time if the validity of the information in

the file expires frequently.

3.2.2 Dynamic web pages Dynamic web pages changes appearance depending upon what information is stored in the

database. Rather than writing an HTML page, instructions on how to make the page are

written. The server then creates the actual HTML and presents the data in a readable form.

This technique allows the development of incredibly rich content on the Internet. Dynamic

web pages do not require any extra processing on the client's machine as against static

pages, so they are generally faster.

The two ways of providing dynamic web page content are client side and server side

technologies.

3.3 Client side technologies In the client side models, modules attached to the browser do all the work of creating

dynamic pages. The HTML code is typically sent to browser along with separate file

containing a set of instructions, which is referenced from within the HTML page.

Client-side technologies have fallen down in the recent times, as they take a long time to

Page 28: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

28

download, especially if we have to download a second file with separate instructions.

Another problem with this is that each browser interprets this set of instructions in

different ways. So the trend moved towards server side scripting. To name some client side

technologies are HTML, DHTML, XHTML, JavaScript, and VBScript.

3.4 Server Side Technologies With the server model, the HTML source is sent to the web server with an intermingled set

of instructions. Again this set of instructions will be used to generate HTML for the page at

the time the user requests the page. Once again the page is dynamically generated upon

request. Essentially, all the processing is done in the server, before the page is sent back to

the browser. The advantage of this being, you are taking all the processing load away from

the browser enabling a faster response and that there is not much of anomalies at the client

side with the use of different browsers. Some server side technologies are CGI, JSP, Java,

ASP and the latest addition to it is the ASP.NET[1].

3.5 More on .NET and ASP.NET At the heart of the .NET technology is the .Net framework, which provides the core

technology that underpins it all. The framework itself consists of several components, of

which ASP. NET is just one.

3.5.1. NET Framework The .NET Framework is the infrastructure for the new Microsoft .NET Platform. The .NET

Framework is a common environment for building, deploying, and running Web

applications and Web Services. The .NET Framework contains a common language

runtime and common class libraries – like ADO .NET, ASP .NET and Windows Forms -

to provide advanced standard services that can be integrated into a variety of computer

systems. The .NET Framework provides a feature-rich application environment, simplified

Page 29: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

29

development and easy integration between a numbers of different development languages.

The .NET Framework is language neutral. Currently it supports C++, C#, Visual Basic,

and JScript (The Microsoft version of JavaScript). Microsoft's Visual Studio.NET is a

common development environment for the new .NET Framework.

. NET Advantages

• It offers multiple language support.

• It has a rich set of libraries, a la JVM

• Its open-standard friendly (e.g., HTTP and XML)

• Its code is compiled natively, regardless of language or deployment (Web or desktop).

. NET Disadvantages

• It is yet another platform to consider, which means rewriting and learning new tricks.

• Microsoft tends to have good ideas, but mediocre implementation.

• Currently, it's only available on Windows.

• Microsoft claims C#, IL, and CLR/CLS will be submitted to ECMA, but there's still no

clear view on what will be standardized from the platform.

3.5 2 How ASP.NET works For most purposes, ASP.Net pages can be thought of just like normal HTML pages that

have certain marked up for special consideration. When .Net is installed, the local IIS web

server is automatically configured to look out for files with the extension ‘. aspx’ and to

use the ASP.NET module to handle them. Technically speaking, this module parses the

contents of the ‘.aspx’ file; it breaks them down into separate commands in order to

establish the overall structure of our code. Having done this, it arranges the command

within a pre-defined class definition, not necessarily together, and not necessarily in the

Page 30: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

30

order in which we wrote them. That class is then used to define a special ASP.NET page

object, and one of the tasks this object then performs is to generate a stream of HTML that

can be sent to IIS and from here, back to the client.

ASP .NET is the next generation ASP, but it's not an upgraded version of ASP. ASP .NET

is an entirely new paradigm for server-side ASP scripting. ASP .NET is a part of the new

.NET (dot net) Framework.

3. 6 ASP vs. ASP.NET • Better Language Support

• Programmable Controls

• Event Driven Programming

• XML Based Components

• Higher Scalability

• Increased Performance - Compiled Code

• Easier Configuration and Deployment

• Not Fully ASP Compatible

3.6.1 Language Support

ASP .NET uses the new ADO .NET.

ASP .NET supports full Visual Basic, not VBScript.

ASP .NET supports C# (C sharp) and C++.

ASP .NET supports JScript as before

3.6.1 ASP .NET Controls • ASP .NET contains a large set of HTML controls. Almost all HTML elements on a page

can be defined as ASP .NET control objects that can be controlled by scripts. ASP .NET

also contains a new set of object oriented input controls, like programmable list boxes,

Page 31: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

31

validation controls. A new data grid control supports sorting, data paging, and everything

you expect from a dataset control.

3.6.2 Event Aware Controls All ASP .NET objects on a Web page can expose events that can be processed by ASP

.NET code. Load, Click and Change events handled by code makes coding much simpler

and much better organized.

3.6.3 High Scalability Much has been done with ASP .NET to provide greater scalability. Server to server

communication has been greatly enhanced, making it possible to scale an application over

several servers. One example of this is the ability to run XML parsers, XSL

transformations and even resource hungry session objects on other servers.

3.6.4 Compiled Code The first request for an ASP .NET page on the server will compile the ASP .NET code and

keep a cached copy in memory y. The result of this is greatly increased performance.

3.6.5 Easy Configuration Configuration of ASP .NET is done with plain text files. Configuration files can be

uploaded or changed while the application is running. No need to restart the server. No

more met abase or registry puzzle.

3.6.6 Easy Deployment No more server restart to deploy or replace compiled code. ASP .NET simply redirects all

new requests to the new code.

3.6.7 Compatibility ASP .NET is not fully compatible with earlier versions of ASP, so most of the old ASP

code will need some changes to run under ASP .NET. To overcome this problem, ASP

.NET uses a new file extension ".aspx". This will make ASP .NET applications able to run

side by side with standard ASP applications on the same server.

Page 32: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

32

4. The Online Documentation and Diagnostics System for the Bearcat Cub This system can be divided into three distinct areas

• The Documentation of the Source Code

• Description of the various components of the Cub

• Failure mode analysis using the Diagnostic system

The following sections describe each of these sections followed by a description of the

approach taken for their creation.

4.1 Source Code Documentation The source code has two main modules

• The Obstacle Avoidance and Line Following module

• The Navigation module

4.1.1 The Obstacle Avoidance and Line following module The Bearcat can autonomously navigate and avoid only a limited configuration of

obstacles in an unstructured environment. An algorithm has been developed to avoid

obstacles in an unstructured environment. The algorithm uses the feedback from the laser

scanner. It filters the data received, identifies potential obstacles and accordingly changes

its path to avoid the obstacles based on their configuration. This is achieved by sending

explicit motion commands to the motion controller, which moves the robot. The Obstacle

Avoidance and Line Following module uses the vision system and the motion control

system.

4.1.1.1 Vision System The Bearcat Cub is being designed to negotiate around an outdoor obstacle course while

staying within the 5 mph speed limit and avoiding the obstacles on the track. The Bearcat’s

Page 33: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

33

vision system comprise of two Sony DCR-TRV19 Handy cams and a Bumblebee

Stereovision system, which is currently under development. The vision system for line

following uses 2 CCD cameras and an image tracking device (ISCAN) for the front end

processing of the image captured by the cameras. The Iscan tracker is used to process the

image of the line. The tracker finds the centroid of the brightest or darkest region in a

captured image. The three dimensional world co-ordinates are reduced to two dimensional

image coordinates using transformations between the ground plane to the image plane. A

novel four-point calibration system was designed to transform the image co-ordinates back

to world co-ordinates for navigation purposes. Camera calibration is a

process to determine the relationship between a given 3-D coordinate system (world

coordinates) and the 2-D image plane a camera perceives (image coordinates).

The objective of the vision system is to make the robot follow a line using a camera. At

any given instant, the Bearcat tracks only one line, either right or left. If the track is lost

from one side, then the central controller through a video switch changes to the other

camera. In order to obtain accurate information about the position of the line with respect

to the centroid of the robot, the distance and the angle of the line with respect to the

centroid of the robot has to be known. When the robot is run in its auto-mode, two Iscan

windows are formed at the top and bottom of the image screen as shown in Figure 4.1.The

centroids of the line segments are returned by the Iscan tracker these are shown as points

(x1, y1) and (x2, y2) in Figure 4.1. These data-points are used to determine the angle and

distance of the line to the robot as shown in Figure 4.2. The calculated distance and angle

are used as inputs for the motion control system.

Page 34: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

34

Fig 4.1: Two windows are used to capture Fig 4.2: Position of the robot in relation to the two points on the boundary line. Line

The code that is used for the vision system is as follows:

An object of this class is called when the robot is programmed to run in auto mode

Table 4.1

Class: Vis_Main Function Description AutoModeMain( ) This is the Constructor void ResetDMCcontrol ( ) Resets the Galil at the start of Auto mode

int ReturnCamera ( ) Checks which camera is currently capturing the Line and returns it

void RightCamSet ( ) sets the right camera as the default void LeftCamSet ( ) sets the left camera as the default

void vis_main ( ) initializes all variables involved and sets camera values

This class is used for transforming the 3D real world coordinates into 2D coordinates. It

also sets different parameters like the distances to be maintained from the track by the

robot and the angle.

Table 4.2

Class: Vis_Tran Function Description int Visiontransform ( ) converts the 3D coordinates into 2D coordinates

Page 35: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

35

void MakeMoveAI ( ) sets the values for the test track like maximum/minimum and hugging distance

void initstuff ( ) initializes the ISCAN and DMC

int AngleOK ( )

checks if the angle of the line with respect to the robot is correct by comparing it to an array of average values and sends message back accordingly

void resetAngleOK ( ) resets the angle if it is erroneous

This class is used to send commands to the ISCAN from the main processor.

Table 4.3

Class: ISCAN Function Description

void readData ( ) sends data o/p request to the ISCAN,reads data from serial port and fills data structure

int newdataavailable ( ) checks if new data is available int sendcommand ( ) sends 2 bit commands to ISCAN void change_y_pos ( ) changes the gate window parameters void printdata ( ) prints ISCAN data to the screen

This is the ISCAN driver class. It is used for initializing the ISCAN and setting different

parameters for the display and gate window.

Table 4.4

Class: ISCANDRV Function Description void initISCAN ( ) initializes the ISCAN values void set_thresh_display( ) sets the threshold display void set_xhair_display( ) sets the crosshair position void set_target( ) selects the desired target characteristics void set_bright_level( ) adjusts the brightness level void set_h_pos( ) sets the horizontal position of the window void set_h_size( ) sets the horizontal size of the window void set_v_pos( ) sets the vertical position of the window

Page 36: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

36

void set_v_size( ) sets the vertical size of the window void set_gate_pos( ) sets the position of the gate void set_gate_size( ) sets the size of the gate

This class is used to perform matrix operations to convert the real world coordinates into

2D coordinates

Table 4.5

Class: MATRIX Function Description void mprint ( ) prints the contents of the matrix pointer void smmult( ) multiplies matrix pointers with a constant int madd( ) adds matrices int mmult( ) multiplies matrices int mcopy( ) creates a copy of a matrix int mtrans( ) calculates transverse int minv ( ) calculates inverse int nsolve( ) used for row computations void mzero( ) sets matrix values to zero void calib_constants( ) sets the calibration constants for the cameras

This class is used to switch cameras when one of them loses the line and the ISCAN

reports loss of track

Table 4.6

Class: Camera Function Description void camera_change( ) This function switches cameras

This class is used to initialize the left camera variables and also set the calibration

constants which are calculated by the matrix class

Table 4.7

Page 37: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

37

Class: VIS_L Function Description

int vis_l( ) This function initializes the left camera and sets calibration constants

This class is used to initialize the left camera variables and also set the calibration

constants, which are calculated by the matrix class.

Table 4.8

Class: VIS_R Function Description

int vis_r( ) This function initializes the right camera and sets calibration constants.

4.1.1.2 Motion Control System The motion control system[7] shown in the Figure 4.3 enables the vehicle to move along a

path parallel to the track and to negotiate obstacles. Steering is achieved by applying

differential speeds to the left and right wheels. Manipulating the sum and difference of the

speed of the right wheels, the velocity and orientation of the vehicle can be controlled at

any instant. Two motors power the gear trains. The motor torque is increased by a factor of

40 using a worm gear train. The power to each motor is delivered through an amplifier that

amplifies the signal from the Galil2130 DMC motion controller. The data from the vision

and obstacle avoidance systems work as an input to the central controller to give

commands to the motion control system.

Figure 4.3 Block Diagram of the Motion Control System

Page 38: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

38

Description of the code for Motion Control

This is the main module, which provides an interface to the user to select manual /auto

mode, initialize Galil and test other systems.

Table 4.9

This class is called when the manual mode option is selected from the main program. It

contains functions which allow the robot to be moved forward and backward, turn and

change speeds. It also has a soft stop option which prevents the overuse of the emergency

stop.

Class: G-cart Function Description G-Cart( ) This is the constructor for the main program

void main( ) This function displays the menu, which allows the user to select manual/auto mode. It also selects camera,initialises obstacle count,DMC,ISCAN and Speed settings

Page 39: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

39

Table 4.10

A CAR object is created when the Robot is run in auto mode. It has functions to control the

speed of the robot in both axes. It also has functions, which allow transverse and angular

motion.

Table 4.11

The Galil class is the most important class in the motion control module. It is responsible

for initializing the Galil, exchange of data between the DMC2100 motion controller and

the pc.

Class: man_move Function Description

int manual_move( ) This function provides interface for manual movement ;forward and backward movement, turning and soft stop

Class: Car Function Description Car( ) this is the Constructor void SpeedCarx ( ) controls speed on robot in the X axis void SpeedCary ( ) controls speed on robot in the Y axis void stopCAR ( ) stops the robot void steerCAR ( ) turns the robot by varying wheel speeds void startCAR ( ) initializes all variables involved void GetSpeedX ( ) checks and returns speed in the X direction

void GetSpeedY ( ) checks and returns speed in the Y direction void movexy ( ) moves the robot to specific coordinates void rot xy ( ) turns the robot according to specific angular coordinates

Page 40: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

40

Table 4.12

4.1.1.3 Obstacle Avoidance System The laser scanner[8] works by measuring the time of flight of laser light pulses. It is a non-

contact measurement device that scans its surroundings two dimensionally. The pulsed

laser beam is deflected by an internal rotating mirror so that a fan shaped scan is made of

the surrounding area and the shape of the object is determined by the sequence of impulses

Class: Galil Function Description

void writeDMC ( ) This function when invoked will pass a character to DMC

void readDMC ( ) This function is used to read the DMC_base integer value.

void writeStatus ( ) the functions checks the status of the DMC void readStatus ( ) the function returns the status of the DMC

int galilhasInfo ( )

This function returns the hash information by sending

the5th bit of the DMC_status value.

int galilisReady ( ) This function checks if the Galil is ready to accept commands

void resetDMC ( ) This function resets the DMC, thus clearing the stored buffer variables

void sendDMC ( ) sends string to DMC void download ( ) downloads files from the computer to the DMC void getDMC ( ) confirms data availability and retrieves it

char fromDMC ( ) checks character availability from the DMC and returns it

void inDMC ( ) requests data from the DMC and returns it void submitDMC ( )

sends command to DMC and returns error message if the command doesn’t execute

void clear DMC ( ) clears the buffer in the DMC void set_upDMC ( )

This function when called sends the necessary settings for proper operation of the steering and drive motors.

void initDMC ( ) Open a handle to controller number

Page 41: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

41

received. The scan angle being used currently is 180° with a resolution of 0.5°. Now with

this resolution and scan angle we get a clear profile of the path in front of our robot. We

get data such as at every angle scanned the distance of the point of reflection of laser beam

from any object in the field of view with its coordinates can be determined. Giving these

values in the algorithm used for tracking the robot can avoid obstacles easily.

The laser scanner on the robot communicates with the host computer using a serial

interface. The interface being used is RS 422. The transfer rate is 9.6 K baud. The data is

transferred in binary format where a byte of data consists of 1 start bit, 8 data bits, and a

parity bit with even parity or without parity and 1 stop bit. The real time measurement data

scanned by the device is given out in binary format. We are using a RS-422 serial interface

card with our scanner, which supports higher baud rates for faster communication.

The measurement data from the laser scanner is used for object measurement and

determining position. The measurement data corresponds to the surrounding contour

scanned by the device and is given out in binary format via the RS 422 interface. This data

can be seen in a GUI environment gives us the coordinates of every point in the field of

view. In the binary format as the individual values are given in sequence, particular angular

positions can be allocated on the basis of the value’s positions in the data string.

Figure 4.4

Page 42: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

42

Field of view of the Laser Scanner

The source code being used is follows

This class gets the coordinates for the obstacles, checks if they are in range and sends

feedback to the computer. It also initializes the Scanner variables.

Table 4.13

Class: SICKLMS Function Description SICKLMS ( ) Copies data members to new GPS object.

void readdata( ) Reads GPS data from serial port and returns a pointer to a string array containing the data.

void getdistancearray ( ) Returns distance array in millimeters on laser scan value for all angles

float getminvalue ( ) gets the minimum values range for the obstacles

void changebaudrate ( ) the function is called if the default rate of

Page 43: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

43

9600 has to be changed

void changeangleresolution ( ) this function changes the resolution of the SICK LMS from the default value of 180 degrees at 0.5 increments

void printData ( ) prints scanner data to the screen

int getQuadrant( )

Determines if the range point at the given angle is an obstacle in the path of the laser scanner based on the width and safety margin input parameters.

int getdistance( ) Returns distance in millimeters on laser scan value at specified angle.

Void setPort (com2) Sets the comport and initializes it SetBaud( ) Sets the baud rate SetParameters( ) Sets parameters like bit rate and parity SetByteSize( ) Sets the byte size

Figure 4.5

Page 44: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

44

Page 45: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

45

4.1.2 The GPS based Navigation System module

The navigational system[5] has been modeled as a closed feedback control loop. This model

has an input command, feedback signal, error signal, and output transfer function

characteristics. The input command is the target waypoint destination. A feedback signal is

provided by the GPS unit position information. The GPS unit uses the current position

information and calculates the bearing and range from the target waypoint to determine the

error. The bearing and range to the target waypoint create the error signal. Correction signals

are generated to reduce the error to a certain tolerance based on the bearing angle error signal

generated by the GPS unit. The correction signals consist of turn right, turn left, forward

motion, or stop. These corrective commands are sent to the robot motion control system,

which translates these commands into motor control voltages that steer and propel the robot on

the course. Once the bearing angle error and target range have been reduced to the required

tolerance the command is considered complete and the robot has arrived at its target

destination waypoint. At this point the next target waypoint is selected and the process is

repeated until all target waypoints in the database have been reached.

The robot may not always be able to reach its intended target waypoint directly because of

obstacles on the path. To handle this situation, the laser scanner is used to detect obstacles on

the path. The control of the robot is transferred to the obstacle avoidance routine once an

obstacle is detected. The obstacle avoidance routine is basically the same feedback control

loop used for the GPS navigation except that the target waypoint command is replaced with

the target point that will guide the robot around the path obstacle. The obstacle avoidance

routine is recursively repeated so that each new obstacle detected during the obstacle

avoidance routine becomes the new target waypoint. This allows the robot to avoid any new

Page 46: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

46

obstacles detected during obstacle avoidance mode. Once the robot successfully avoids the

obstacles, the original target waypoint is restored and the navigational feedback control loop is

resumed.

The code used for Navigation is as follows

This class displays the menu options in navigation mode. It allows user to enter and set data

point and test the GPS system

Table 4.14

This class is used to interact with the Garmin GPS. It initializes the GPS variables, exchanges

data between the CPU and the GPS, creates a waypoint file and tracks waypoints.

Table 4.15

Class: GPSMAIN Function Description float obstacle ( ) Gets and stores data about obstacle

void Displaymenu( ) This is the main menu for navigation. It displays the options to the user and allows them to run it in auto/manual mode.

Page 47: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

47

This class has been created for interaction between the GPS and CPU through the Comport. It

has functions which allow data transfer between the two devices. It has functions to initialize

the comport, read data from and write data to the GPS.

Table 4.16

Class: GPS Function Description

GPS ( ) This is the Constructor. It initializes NMEA variables

void readGPSdata( ) updates GPS position data void Stringcount ( ) counts waypoints void getGPSdata ( ) sets target and copies NMEA variables int checkSUM ( ) calculates routine for NMEA sequence

void CreateWayPointfile ( ) allows user to create a waypoint file and store it

void SelectWayPoint ( ) Selects the waypoint and sets it as target. also checks if it has been detected already

void InputWayPoint ( ) allows to enter individual waypoints

void printinfo ( ) prints GPS class data member contents to screen

Class: ComAccess Function Description ComAccess( ) this is the Constructor ComAccess(LPCSTR,lpszPortNum ) Overloaded Constructor

bool Open ( ) initializes port number,Baudrate,parity,Stopbits and Byte size

void Close ( ) closes comport DWORD WriteData ( ) writes data to the comport DWORD ReadData ( ) reads data from the Comport to a buffer

LPSTR GetErrorMessage( ) checks if comport is working properly and sends error message if its not

Page 48: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

48

This is the Laser Scanner class. This class gets the coordinates for the obstacles, checks if they

are in range and sends feedback to the computer. It also initializes the Scanner variables

Table 4.17

Class: SICKLMS Function Description SICKLMS ( ) Copies data members to new GPS object.

void readdata( ) Reads GPS data from serial port and returns a pointer to a string array containing the data.

void getdistancearray ( ) Returns distance array in millimeters on laser scan value for all angles

float getminvalue ( ) gets the minimum values range for the obstacles

void changebaudrate ( ) the function is called if the default rate of 9600 has to be changed

void changeangleresolution ( ) this function changes the resolution of the SICK LMS from the default value of 180 degrees at 0.5 increments

void printData ( ) prints scanner data to the screen

int getQuadrant( )

Determines if the range point at the given angle is an obstacle in the path of the laser scanner based on the width and safety margin input parameters.

int getdistance( ) Returns distance in millimeters on laser scan value at specified angle.

Void setPort (com2) Sets the comport and initializes it SetBaud( ) Sets the baud rate SetParameters( ) Sets parameters like bit rate and parity SetByteSize( ) Sets the byte size

Page 49: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

49

The Galil class is the most important class in the motion control module. It is responsible for

initializing the Galil, exchange of data between the DMC2100 motion controller and the CPU.

This class is used by the navigation module for moving the robot after the waypoint has been

selected by the GPS program.

Table 4.18

Class: Galil Function Description

void writeDMC ( ) This function when invoked will pass a character to DMC

void readDMC ( ) This function is used to read the DMC_base integer value.

void writeStatus ( ) the functions checks the status of the DMC void readStatus ( ) the function returns the status of the DMC

int galilhasInfo ( )

This function returns the hash information by

sending the5th bit of the DMC_status value.

int galilisReady ( ) This function checks if the Galil is ready to accept commands

void resetDMC ( ) This function resets the DMC, thus clearing the stored buffer variables

void sendDMC ( ) sends string to DMC void download ( ) downloads files from the computer to the DMC void getDMC ( ) confirms data availability and retrieves it

char fromDMC ( ) checks character availability from the DMC and returns it

void inDMC ( ) requests data from the DMC and returns it

void submitDMC ( ) sends command to DMC and returns error message if the command doesn’t execute

void clear DMC ( ) clears the buffer in the DMC

void set_upDMC ( ) This function when called sends the necessary settings for proper operation of the steering and drive motors.

void initDMC ( ) Open a handle to controller number

Page 50: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

50

Figure 4.6

Page 51: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

51

4.2 Description of the various components of the Cub

The design process[9] used for the Bearcat Cub is as follows

Figure 4.7

4.2.1 Mechanical System The frame is made of 80/20 aluminum extrusions creating a lightweight structure without

compromising on the strength. The attachments are made with small joining strips at the

ends or by using corner brackets that sit inside the joints. The advantage of using these is

Progress Evaluation

Solution plan

Design concept

Implementation

Testing

Problem definition

Bearcat Cub

Page 52: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

52

that the frame can be easily reshaped if new components are to be added. Stress and weight

calculations for the joints were carried out using a factor of safety of 125%. A drawing of

the basic structure is shown in Figure 4.8.

Figure 4.8

4.2.2 Transmission system

4.2.2.1 Wheels

The Bearcat Cub uses 19” diameter enhanced traction wheels designed by Michelin. The tires

on the Segway HT are manufactured using a unique tread compound (a silica-based

compound instead of traditional carbon-based materials), giving enhanced traction and

minimized marking on indoor floors, and a specially engineered tubeless construction that

allows low pressure for comfort and traction while minimizing rolling resistance for long

range. The tire is mounted on an equally unique wheel design: the wheel is constructed of a

sophisticated engineering-grade thermoplastic. This composite material allows lightweight and

excellent durability, and actually reduces noise transmitted from the drive system. The wheel

is molded around a forged steel hub, eliminating fasteners that can loosen over time. The

attachment between this hub and the transmissions incorporates a unique taper and hex design,

Page 53: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

53

which allows a single nut to attach or remove the wheel while retaining the security of

multiple-bolt systems more typically seen in conventional applications.

Figure 4.9

4.2.2.2 Gearbox

The Segway gearbox incorporates a two-stage reduction system, which provides a 24:1

reduction, allowing the motor to operate at powerful, efficient speeds throughout the full range

of speeds of the Segway HT. Each gear is cut to a helical profile, which creates a spiral

engagement to minimize noise and increase the load capability of the gears. The number of

teeth on each gear is chosen to produce non-integer gear ratios. This means that the teeth will

mesh in a different location each revolution, maximizing the life of the gearbox. The gearbox

is pre-assembled and lubricated, and is designed to require no maintenance.

Figure 4.10

Page 54: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

54

4.2.2.3 Castor Wheel

The castor wheel helps improve the navigation capabilities of the robot by providing a zero

turning radius. This 8”, 90 series, dual castor wheel is manufactured by Borne & Co. Dual

wheel casters address the problem of how to minimize overall height and maximize load

capacity on resilient tread wheels. Dual wheel casters also improve stability and swivel

more easily than wider-face single wheels because differential action reduces the

"scrubbing" effect of soft treads against the floors.

Figure 4.11

Page 55: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

55

4.2.2.4 Motors

The Bearcat Cub uses two Pacific Scientifics’ PMA43R-00112-00 2 hp brushless

servomotors. The PMA43R Series motor has continuous torque capacity of 8.3 Nm. These

rugged motors are well suited for speed and position control applications requiring

maximum performance at maximum value. The PMA4 Series is available with

commutating encoder or SinCos encoder feedback devices in addition to the standard

resolver primary feedback, for integration with other control schemes. The circuit board

based on the feedback from encoder in the motor, gives signal to the amplifier. The

amplified signal is sent to the motor to turn proportionately. The difference between the

actual position and position reached is sensed by the encoder in the motor and fed back to

the circuit board which modifies the signal by a PID compensator that is to be sent back to

the amplifier. Thus, servomotors are useful in achieving minimal error and maximum

accuracy. For stepper motors, no encoder is present as it sends signals only in steps.

Figure 4.12

Page 56: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

56

4.2.3 Electrical and Electronic systems 4.2.3.1 Amplifiers

The Copley Control 52344AC amplifier is being used by the Bearcat Cub. The 52344AC

model is a servo amplifier for Hall commutated DC brushless motor operating in six-step

(trapezoidal) mode. Signal, logic, Halls, encoder, and monitor signals are all optically isolated

from the mains. Built with surface-mount technology, these amplifiers offer a full complement

of features for DC brushless motor control. Torque-mode operation is standard, and there are

two modes of velocity-loop operation. Frequency to voltage conversion of Hall or encoder

signals gives tachless velocity-loop operation. Output voltage control gives velocity loop

operation without the use of encoder or Hall signals. Voltage mode is smooth around zero, and

has enough speed regulation to work well with PLC’s, or motion control IC’s. Separate

current-limits provide protection for motors while optimizing acceleration characteristics. Peak

current, continuous current and peak time are individually settable via the internal header, or

by external signals. Fail-safe operation in either polarity results from an internal jumper that

selects the default input level and input resistor pull-up or pull-down connections so that the

amplifier shuts down with no input.

Figure 4.13

Page 57: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

57

4.2.3.2 Power System

The robot’s power system is a pair of Honda EU-2000i generators, as shown in Figure 1.10.

The advantage of having a generator set in place of batteries is that the power supply is not

interrupted for a long time since refueling the generator set is much quicker than recharging.

The EU2000 utilizes inverter technology to provide 2000 watts of lightweight, quiet and

efficient power. This generator runs up to 15 hours on a single tank of gas when used with the

Eco-Throttle feature. This generator produces only 59dB of sound at 7 meters with a full load.

The Honda Inverter Technology makes this generator ideally suited for use with sensitive

devices like a computer because the generator produces a clean sine wave of energy that

prevents surging. To prevent any possible damage to the unit, the Oil Alert will shut the unit

off when the oil drops below a safe operating level. The unit also has a DC terminal for use

when charging 12-volt automotive type batteries. The available power is commonly used for

the following typical electric devices. Two like EU series generators can be linked in parallel

to increase available wattage through the generator outlets.

Figure 4.14

Page 58: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

58

4.2.3.3 Motion Controller

The Galil DMC 2130 motion control board is the main controller card of the system and it is

controlled through a computer. Copley amplifiers deliver power to the motors after amplifying

the signals they receive from the motion controller. Steering is achieved by applying

differential speeds at the right and left wheels. The obstacle avoidance system sends data to the

computer which is also used to determine the change in performance of the motors. The

DMC2100 is compact and is enclosed in a durable container. The controller can accommodate

1-8 axis formats and can control stepper or servomotors on any combination of axes. The

motion control of the Bearcat Cub has the ability to turn about its drive axis, which is called

Zero Turning Radius (ZTR). The DMC-2130 has an Ethernet 10/100Base-T port. The

controllers also include two RS232 serial ports. The DMC-2100 controllers incorporate a 32-

bit microcomputer and provide such advanced features as PID compensation with velocity and

acceleration feed forward, programmable notch, program memory with multitasking for

simultaneously running up to eight application programs, and uncommitted I/O for

synchronizing motion with external events. They handle various modes of motion including

point to-point positioning, jogging, linear and circular interpolation, contouring, electronic

gearing and ECAM.

Figure 4.15

Page 59: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

59

4.2.3.4 GPS

The methodology behind the Bearcat navigational challenge problem was to select a

commercially available GPS unit and utilize the built in features of the unit to provide a

solution to the GPS navigational problem. This approach relies on the GPS unit’s navigational

processing features and reduces the computational load that the robot CPU must perform to

navigate the course. The advantage of this method is that it reduces the computational load on

the robot computer CPU freeing valuable processing time for other duties. This method is also

beneficial in that it relies on the GPS navigational algorithms developed by the GPS unit

manufacturer. The GPS unit manufacturer has invested in the development and optimized

these GPS navigation algorithms, which reduces development time for the robot navigation

algorithm. The main criteria for the selection are Wide Area Augmentation System (WAAS)

capability, and embedded navigation features. The Garmin 76 has the before mentioned

requirements and has thus been selected for implementation. The GPS tracks the NAVSTAR

GPS constellation of satellites. The signals are received by an antenna and are tracked with 12

parallel channels of L1. C/A code is then down converted to an IF frequency and digitally

processed to obtain a full navigation solution of position, velocity, time and heading. The

solution is then sent over the serial link via the 10-pin connector.

Figure 4.16

Page 60: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

60

4.2.3.5 ISCAN

The Bearcat Cub is equipped with two Sony DCR-TRV19 video cameras. Each camera is

aimed toward the ground on either side of the robot. At any given moment, Bearcat Cub only

tracks from one of the cameras. It tracks the lines by creating two windows sequentially. Each

window is a section of the video picture. It then finds the centroid of the largest blob in that

window. The centroid itself is formed by finding the most intense spots in the video window as

determined by calibration of the tracking device, an ISCAN automatic video tracker. The

tracker returns to Bearcat’s computer the x and y position of the centroid as well as its size in

height and width. This is done for each of the two windows. The coordinates from the ISCAN

are then converted into real world coordinates via a transformation matrix. The two points are

then connected and the angle and distance can be estimated with great accuracy. This is a

representation of the view through the camera and how the ISCAN tracker and computer

discover the track line by using a line of best fit approach .the robot then takes such data and

will turn itself to be inline parallel with the line it is tracking. In order to stay towards the

middle of the track, Bearcat will modify its course by adding a correction based upon how

close it is to the line. At the ideal distance, usually in the middle of the track, this modifier is 0.

As Bearcat approaches the line this number grows to the maximum correction set by the

developer.

Page 61: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

61

The ISCAN tracker can also fulfill another role. When it loses track of the line, that is, when it

can no longer find a centroid, it reports a loss of track. This can be very helpful since the lines

on either of the tracks can be broken and the robot will need to know when to switch the

camera to track the other side of the track. When it needs to do this, the computer sends a

signal to a video switch, which switches the cameras.

4.2.3.6 VAC Video Switch

A video switch allows the user to select one output from multiple base band video inputs. The

video switch receives input from the two cameras and switches them when the camera loses

sight of the line. The PN 17-511-114 video switch manufactured by Video Accessory

Corporation is being used by the Cub.

Features:

• True 75 Ohm BNC connectors provide accurate matching to coax cable (also available with

RCA connectors)

• High-quality RF relays provide exceptionally flat gain characteristics bandwidth, with DC to

100 MHz

• Optically isolated remote control input avoid the potential for ground from long control cable

runs Simple, reliable, and non-proprietary remote switching functionality

Figure 4.17

Page 62: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

62

4.2.3.7 Camera

The Bearcat Cub uses two state of the art Sony DCR-TRV19 Handy cams for its vision

system. The cameras are very compact and have LCD monitors which help when the cameras

are being calibrated.

Figure 4.18

4.2.3.8 Bumblebee Stereovision system

Bumblebee is a two-lens stereovision camera system. It provides a balance between 3D data

quality, processing speed, size and price. Bumblebee is pre-calibrated for lens distortions and

camera misalignments. It doesn't require in-field calibration and is guaranteed to stay

calibrated. The left and right images are aligned within 0.05 pixels RMS error. The calibration

information is pre loaded on the camera, allowing the software to retrieve the image correction

Page 63: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

63

information. This allows seamless swapping of the cameras, or retrieving the correct

information when multiple cameras are on the bus. Bumblebee allows inter-camera

synchronization. By virtue of being on the same Firewire bus, all Bumblebee cameras

synchronize themselves. This is particularly useful for acquiring 3D data from multiple points

of view, such that it is exactly registered in time and space. The calibration retention system

prevents the unit from losing calibration when the device is subject to mechanical shock and

vibration. Two 1/3" progressive scan CCD's to provide significantly better light collection and

signal-to-noise ratio. High-speed IEEE-1394 digital communication allows powering of the

camera and camera control through a single cable. Accurate pre-calibration for lens distortions

and camera misalignments Automatic inter-camera synchronization allow acquisition of 3D

data from multiple points of view.

Figure 4.19

4.2.3.9 CPU

A laptop is the central processing unit of the Bearcat Cub. It processes data from stereovision,

the GPS system and Iscan system that control the cameras. As weight is one of the major

considerations in Bearcat Cub design, a Pentium 4 laptop is used as the processor for the robot.

The movement of the vehicle is determined by the software with inputs from different

components. The program is written in C++ by using the Visual Studio .NET compiler. The

Dell D800 was selected for the Bearcat Cub because of the computation power it provides for

the numerous applications required for the functioning of the robot. The user interfaces for the

Page 64: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

64

ISCAN, GALIL and other devices have been uploaded on the laptop which makes it

convenient for the team to make any programming changes. The laptop also has an inbuilt

wireless card, which will allow the robot to be controlled through a wireless interface.

Figure 4.20

4.2.3.10 Futaba FRF-0302U Emergency Stop

The contest rules require that the robot consist of an emergency e-stop system that can work

from a distance of 50 feet. The robot also has a manual emergency stop system but the e-stop

is a remote control electrical device that can make the robot stop from a distance. The e-stop

for the cub consists of a Futaba transmitter, a receiver, an amplifier and a solid-state relay. The

transmitter sends FM signals at a specified frequency. This signal activates the relay, which in

turn, activates the emergency stop and cuts power to the motor. The advantage of using this

transmitter is that it does not have to be in line of sight with the receiver for it to work. The

FRF-0302U is a small, rugged radio remote control system designed specifically for use in

industrial applications. The transmitter provides short-to-medium range remote control of three

internal receiver relays. The electronic designs of the transmitter and receiver utilize

microprocessors for intelligence and state-of-the-art surface mount component technology to

minimize size. The transmitter incorporates an automatic power-off feature that extends

battery life to more than several months of typical use. The unique direct sequence data

Page 65: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

65

encoding techniques, 16-bit identification code, and frequency selectivity give the system

superior reliability and immunity to false activation from RF interference and allow multiple

FRF systems to be operated independently in the same area.

Figure 4.21

4.2.3.11 Legacy Monitors

The Legacy Monitor was selected for the Bearcat Cub because of two reasons. The size and

weight of the monitor is a lot less compared to the older monitors and it has higher resolution

with color.

Figure 4.22

Page 66: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

66

4.3 Diagnostic System for the Bearcat Cub

Figure 4.23

Steps involved in creation of the Diagnostic system

Page 67: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

67

4.3.1 The Database

The project uses MS Access as its Database since it is scalable, simple to build and compatible

with the Visual. Net[10]. The database has different tables to store user information, error details

and information about the Cub. The error details table has columns for error description, possible

cause, potential solution, date of entry, the sub-system involved and the error indicators. The user

information table stores login information and authorization details. The database[11] is created as

a shared access folder so that it can be accessed and used all over the world. Once the database is

created it is necessary to establish a link in and out of the database so that the tables can be read

and accessed. The project provides an interface for the users to add, modify and view the data.

This is accomplished by the forms in ASP.NET.the whole database is stored on the Bearcat

Server[12].

The Application program has a user authentication for data security. It has different levels of

security built into it. It has a regular user account which can only view and read data, and not

modify any data. Any user authenticated and who can login to the system is a user who can view

all information. The administrator is a user who has the authority to modify data in the application

system. The Application is subdivided into different modules. Each module branches out from the

main application into specific modules. Once the user logs on to the system he is taken to a

selection page, where he can choose a specific module using hyperlinks. Once the user clicks on

the hyper link he is taken to the module.

The user authentication is maintained for the whole project, which implies that a user cannot just

enter the application system without formally logging on into the system. If he tries to access any

module without logging in, he is automatically taken to the authentication screen.

4.3.2 Different Modules in the Data Repository

The Schematic Diagram of the entire system also shows the different modules. They are

Page 68: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

68

• Diagnostic System[13]

• Source Code Documentation

• System Components

Figure 4.24 Schematic diagram

Page 69: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

69

The Screenshots of the different modules of the system are shown below

Login Page

Figure 4.25

This page allows user to enter username and password and authenticates it. It then redirects

the user to the Selection page.

Page 70: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

70

Selection Page

Figure 4.26

This page allows the user to view the menu and select the sub-system he/she wants to

view.

Page 71: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

71

View Error Description Page

Figure 4.27

This page displays the errors uploaded in the database and allows the user to make

modifications.

Page 72: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

72

Add New Error Description Page

Figure 4.28

This page allows the entry of new errors and stores them in the database.

Page 73: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

73

5. Conclusions and Recommendations A Documentation and Diagnosis System is very valuable in terms of centralization of

information. It ensures that when it comes to sharing of information, accurate and relevant

information is available to the users remotely. The establishment of a security system ensures

that the data is available only to the intended audience. The documentation system has made

the source code more structured, easier to understand and readily available. It also solves the

problem of duplicity of code, which may confuse the team members.

The Bearcat Cub is in its developmental stage. A database that stores information about the

components of the robot is very helpful, as it can be referred to frequently during design if the

team needs any specific technical information about any component. The information can be

used to order more parts or to test compatibility between components.

The diagnostic system is the most important part of this project as it keeps a log of all

problems, which have been faced during design. The team consists of members from different

disciplines. It allows the members to share their knowledge amongst the team. It is also helpful

to new team members who might not have faced a particular problem before and would not

know the solution. Most problems arise during the design stage of product development, so the

diagnostic tool will be extremely helpful during design and in the future. It also ensures that

the same problem is not addressed twice using different methodologies thus preventing

members from accidentally making changes, which might affect the functioning of the robot.

The robot team is currently working on creating a wireless interface, which will allow control

of the robot over the Internet. I recommend integration of this system with the wireless control

module[14], which will make it a complete system.

Page 74: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

74

6. References [1] O. C. Rob Birdwell, Chris Goode, Ajoy Krishnamoorthy, Juan T. Llibre, and N. R.

Christopher L. Miller, David Sussman, Chris Ullman, Beginning

ASP.NET using VB.NET, First ed. United Kingdom: Wrox Press, 2001.

[2] U. C. R. Team, "Design report of Bearcat Cub," UC Center for Robotics Research,

Cincinnati 2004.

[3] G. Incorporated, "DMC-2130 Technical Reference Guide," 1.6 ed. Sunnyvale,

California: Galil, 2002.

[4] V. Murthy, "Obstacle Avoidance in Unstructured Environment for the Bearcat," in

MINE. Cincinnati: University of Cincinnati, 2003.

[5] B. Sethuramasamyraja, "GPS based waypoint navigation for an autonomous guided

vehicle - Bearcat III," in MINE. Cincinnati: University of Cincinnati, 2003.

[6] E. Castro, HTML for the World Wide Web with XHTML and CSS:Visual QuickStart

Guide, Fifth ed. Berkeley California: Peachpit Press, 2003.

[7] S. Francis, "Remote administration of an autonomous guided vehicle through web

based wireless interfaces," in MINE. Cincinnati: University of Cincinnati, 2003.

[8] M. Saxena, "Obstacle Avoidance using Laser Scanner for Bearcat III," in MINE.

Cincinnati: University of Cincinnati, 2001.

[9] J. A. Hoffer, J. F. George, and J. S. Valacich, Modern Systems

Analysis and Design, Second ed. New York: Addison-Wesley, 1998.

[10] Microsoft, "Microoft .NET Developer Training Manual," 2001.

Page 75: UNIVERSITY OF CINCINNATI Center...Fr. Conceicao Rodrigues College of Engineering, University of Mumbai, India, 2001. Thesis Advisor and Committee Chair: Dr. Ernest L. Hall 3 Abstract

75

[11] J. A. H. Fred R. cFadden, Mary B. Prescott, Modern Database Management, Sixth

ed. New York: Addison-Wesley, 2000.

[12] Microsoft, "Microsoft Windows 2000 server," 2000.

[13] V. Selvaraj, "Failure Mode Analysis of an Autonomous Guided Robot using

JDBC," in MINE. Cincinnati: University of Cincinnati, 2001.

[14] S. Narayanan, "Application of Web Services for Remote Access of Bearcat III

Robot Using the .NET Frame Work," in MINE. Cincinnati: University of

Cincinnati, 2003.