university of cincinnati center...fr. conceicao rodrigues college of engineering, university of...
TRANSCRIPT
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
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
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
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.
5
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.
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
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
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
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
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
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
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.
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
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.
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
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.
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
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.
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)
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) {
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
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
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.
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
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
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
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
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
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,
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.
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
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.
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
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
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
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
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
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
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
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
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
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
44
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
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.
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
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
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
50
Figure 4.6
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
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,
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
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
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
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
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
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
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
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.
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
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
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
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
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
66
4.3 Diagnostic System for the Bearcat Cub
Figure 4.23
Steps involved in creation of the Diagnostic system
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
68
• Diagnostic System[13]
• Source Code Documentation
• System Components
Figure 4.24 Schematic diagram
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.
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.
71
View Error Description Page
Figure 4.27
This page displays the errors uploaded in the database and allows the user to make
modifications.
72
Add New Error Description Page
Figure 4.28
This page allows the entry of new errors and stores them in the database.
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.
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.
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.