Professional Documents
Culture Documents
Abstract
The development of methods for autonomous navigation of a mobile robot in a real world
environment is one of the major areas of interest for current research. Still there are problems when
facing this challenge, including unstructured environments, moving obstacles and sensor
integration.
This report details an attempt to develop an autonomous robot using only ultrasonic sensors for
sensing the environment and GPS and a digital compass for pose and localization. Also an
algorithm for navigation based on reactive behaviour is presented. The implementation of it was not
fully possible due to the reliability of data gathered from the ultrasonic sensors. Therefore it is
concluded that the use of only ultrasonic sensors for triggering reactive behaviours in an outdoor
environment is not ideal and a different approach needs to be take to solve the problem.
Acknowledgements
The author would like to thank his thesis supervisor, Professor Goldenberg, for allowing for such a
project to be carried out and sparking an interest within the immense field of robotics.
Special thanks are also given to Nicolas Wrathall and Graeme Ashford for taking the time and effort
to share their valuable knowledge. Also, this is extended to Ryan Mantel who was of incredible help
!
"
# $"
$ %
%& '
% # "
% ($ "
% ($ )
%%
%' * $ " %
%+ $ ,
4. $ " %
' - $ %
' . / 0 %'
+ # " , %1
+ %1
+ '
+ 2# '
+ '
+%& '
+'3 " '
/ $ ''
4 & '
"" 5 6# & '4
7 "$ 1%
List of Figures
/ 62 3 3 +
/ 6 ) - 8 9
/ %68$ # : ; "" 0 $ $ . ) " 1
/ '68 " ) ) " ) $
/ +6 $
/ 6& )$ ( '
/ 46 +
/ 62 2# <=( +
/ 16= 0 = %%
/ 6 $ ) ( 4
/ 6 2# ) () " " ) %
/ 6 2# ) () " " )'' %%
/ %6 ) 0$ " 0 $ : %+
/ '6 ) 0$ " 0 $ 0 %
/ +6/ ) 0$ " 0 $ : %4
/ 6/ 0$ " 0 $ 0 %4
Autonomous robots are machines able to perform tasks without human
intervention. For these robots to be able to interact with its surroundings they must
be programmed to respond to outside stimuli. Often times this stimuli can contain
chaotic and unpredictable variables which make them difficult to model. This is the
reason why many kinds of robots have some degree of autonomy, while complete
systems. These include cleaning floors, mowing lawns, wastewater treatment and
robotic systems and even though a robot that can manoeuvre autonomously in an
urban environment is extremely desirable, it is still a long time from occurring due
use and integration of multiple sensors. These problems create uncertainties that
cannot be solved with the use of indoor navigation algorithms that have been
widely research in the past and it is this gap in knowledge that currently drives
1.1. Motivation
by self-driven robots including vacuuming, lawn mowing and pool cleaning. Other
4
implemented in a small scale. Possible applications for this field are; intelligent
robots for services in hospitals, offices, factories or any type of hazardous area.
for these systems drive investigation towards new techniques for navigation. Still,
achieved.
localization, goal recognition and path planning for a mobile robot navigating
indoors and it is fair to say that the majority of the past research has focused on
because of their wide variety. Therefore, outdoor autonomy is most easily achieved
in the air and sea, since obstacles are less common. On ground, several issues
arise, including terrain, weather, object recognition, random moving obstacles and
computer vision solutions have certain limitation that can make them impractical in
positioning systems (GPS), inertial measurement units (IMU) and sonar. These
sensors, along with the hardware and software that have to accompany them,
constitute a great cost in investment for the robot. This justifies the need for further
research into the implementation of low cost sensors and their ability to provide the
1.2. Objectives
The aim of this project is to present a design of a simple, low cost method of
described as reactive logic). This will allow the robot to divide its tasks into simple
behaviours, which will be layered on top of each other. Simple control systems will
then be implemented at each layer of the program to verify the functionality of the
system.
proposed design will try to demonstrates how commercially available sensor can
autonomously through using only global positioning system and a digital compass
as its only means of localization. To achieve this, ultrasonic sensors help the robot
interact with its environment while the GPS guides it to its destination.
case the model incorporates 3 particular behaviours which allow it to interact with
following and obstacle avoidance. These are part of the reactive logic of the robot
which uses information from its sensors to respond to the changes in its
environment. This means that the robot will not have to be provided with mapping
1
or localization algorithms, but instead only uses ultrasonic emitter and receiver for
It must be mentioned that even though this project strives for results
using reactive logic since it allows the robot to encounter a variety of different
giving a complex control system, which by itself would not solve the outdoor
navigation problem but when layered with other behaviours provides a feasible
solution.
There are two different problems that need to be solved for a navigation
I?’ from the robots perspective. If a robot does not know where it is, it becomes
usually determined indirectly by measurement of speed and time, but it may also
be measured directly.
wheel encoders. This technique allows for direction and velocity to be measured
based on vehicle dimension and knowledge of the time between encoder pulse.
Therefore if rotational speed of a shaft can be obtained from the encoder, angular
and linear velocity of the vehicle can be calculated along with heading and distance
traveled.
prior knowledge of time, gravitational field, initial position, initial velocity, and initial
orientation relative to a known reference frame Then the linear acceleration of the
vehicle within the inertial reference frame can be determined by tracking both the
current angular velocity of the system and the current linear acceleration of the
system. Integrating inertial accelerations yields inertial velocity. Integrating again
enables the current position of the vehicle relative to the initial position.
error over the course of time and cannot be used without periodically updating its
GPS has been extensively used in land vehicle navigation applications. The
main advantage of using GPS is that the data gathered does not depend on
previous readings and therefore errors in localization do not grow over the course
of time. The disadvantage is its accuracy and precision, which is dependant on its
Studies have been done in order to tackle the limitations of GPS technology.
Ohno et al,[1] use map-based navigation for an outdoor environment. The robots
positioning data. Through testing the authors found that even when DGPS position
measurements were highly inaccurate, the heading data was still reliable. From
this the authors propose 2 separate correction techniques for heading and
positioning for the mobile robot. However testing of the system was only done in
areas with walk ways amongst buildings and testing of the DGPS data still has to
collision-free path for the robot from one specific position to another. It is aimed at
ahead.
The path planning problem has been studied extensively and examples
environment since they present a less complicated solution. In the basic variation
of path planning, the task is to generate a collision-free path for a movable object
among known and static obstacles. Most of the current approaches to path
GPS data can also be integrated for use in path planning. Although in
certain setting GPS can encounter the so-called urban canyon environments where
the signals from the transmitting satellites can be blocked by high-rise buildings. To
solve the problem a constrained method was proposed by [13]. It is based on the
%
idea of approximating the path of the robot to that of a line, which would be a
common assumption for most roads. This constraint then helps to minimize the
number of necessary satellites for localization to 2. Then, with the use of a detailed
continuous lines. This information is stored in the database of the proposed GPS
Path planning can thus be an efficient way of movement for a robot, but it
environments.
from the bottom up using layered sets of rules. In reactive navigation no specific
set of independent, simple behaviours. These are defined by what triggers them
(usually a sensor reading) and the action taken (which usually involves an end-
effector). Behaviours are then layered on top of one another. When two behaviors
conflict, a central arbitrator decides which should take precedence. The robot'
s
overall behaviour is emergent, and, will be greater than the sum of its parts. Since
path might become obstructed, a reactive approach can work particularly well in
less efficient than path planning since it might take a longer time to achieve the
goal and the system may reach deadlock state or get stuck in a loop depending on
/ 62 3 3
autonomous vehicles. The main technological challenge for competitor of the race
encourage the development of new technologies needed to create the first fully
autonomous mobile robot. In 2005 five teams where successful at completing the
race.
consists of 6 pentium M blade servers, taking the inputs from its sensors. Pose
sensors include GPS with satellite base differential correction, a GPS compass, an
inertial measurement unit (IMU) with 6 degrees of freedom and wheel odometry.
Perception sensors include 4 laser range finders, both monocular and stereo vision
and a radar. Stanley “low-level modules, feed raw data from light detection and
ranging (LIDAR), the camera, GPS sets and inertial sensors into software
programs [to control] the vehicle’s speed, direction and decision making”[9].
estimate the vehicles 15 state variables at 100hz using an unscented Kalman filter
(UKF). The filter incorporates readings from the GPS, the GPS compass, the IMU
and the wheel encoders. While the GPS is available a “weak” UKF model is used
since absolute positioning is constantly given. When GPS is unavailable the pose
of the vehicle heavily relays on data from the IMU and therefore a more restrictive
UKF model is used. It is through the integration of the gyroscope data and wheel
Software then uses readings from the LIDAR and vision to determine an
occupancy grid of drivable terrain. This is done since LIDAR has the limitation it
can only detect obstacles about 25 meters ahead, which is a problem when dealing
with high speeds. It is then when the stereo vision system is used to compare the
readings of the laser with the images captured, while computer algorithms “learn”
the terrain and map out an optimal driving surface thus determining what part of
the image outside of the laser range should be chosen for driving.
Centre are sponsors for the Wayfarer payload for the Packbot. The Packbot [figure
The capabilities of the Wayfarer are discussed by Yamauchi in [10], [11] and
[12]. Some of the algorithms of navigation programmed into the Wayfarer are
avoidance and stasis detection and escape. Here, only the obstacle detection and
Obstacle detection is done with the use of LIDAR. Generally, the LIDAR
system involves a laser range finder reflected by a rotating mirror. The laser is
surrounding and be able to detect distances. These 2 sensors help in the creation
of a scaled vector field histogram. This technique creates an occupancy grid with a
polar histogram of the obstacles detected by the sensors. Obstacles detected by
the 3D stereovision system are projected to a 2-D field and are used to update the
occupancy grid. This occupancy grid is just basically a frame with cells
representing a 2D plane surrounding the robot, and each cell stores the probability
of that corresponding location in space being occupied. The occupancy grid is also
then analysed using a real time Hough transform to find lines that correspond to
walls. The Hough transform works on the principal that it uses the points from the
For perimeter following, the Wayfarer uses the lines determined by the
Hough transform analysis of the occupancy grid to steer the robot so that it is
parallel to the obstacle. With this information the Wayfarer can also perform
mapping and localization. As the robot moves through the environment the range
data is used to create the update the occupancy grid, effectively creating a map of
determine its new locations with respect to its previous location in order to be able
to properly update the occupancy grid. For localization a combination of GPS and
The limitations of the Wayfarer are mainly due to limitations in the sensors it
possesses. The sensors are unable to detect glass obstacles and objects with
narrow cross sections such as telephone pole wires. Also, while the sensors work
well to detect other solid obstacles, they typically are not able to differentiate
between solid objects, which the robot needs to steer around from foliage. The
Wayfarer is also not design to deal with moving obstacles which would lead to
collisions if the robot is not able to react fast enough to its changing environment.
1
Finally, another limitation is the speed at which the robot can move since testing
has been limited to the robots maximal speed. It is therefore unclear if the achieve
robot platform.
autonomous vehicle (AV). The main limitation of the robot will be that it has to be
navigate, the robot must have a specific goal as to where it is headed. Also, when
moving, the robot must be able to sense the proximity of the objects around it and
react accordingly. This is done by the integration of sensors fro positioning, pose
positioning system receiver, a digital compass and ultrasonic sensors. These are
all available commercially and have previously been used to provide useful
should be like insects, equipped with simple control mechanisms tuned to their
The figure above shows the mechanical enclosure that houses the
Ashford) with the motors and sensors. Inside it contains the interface board for the
GPS receiver as well as the keypad and the microcontroller board. On the outside,
the housing supports the GPS receiver, the Digital compass, the LCD screen, the
keypad and all the mountings for the connectors of the motors, the power supply
On top of this platform more components where mounted to give the robot
manoeuvrability and its sensing ability (figure 5). First a chassis was built which
holds the 12V geared DC motors and the tank treads. On the back of the robot a
L298 motor controller was incorporated to be able to handle the higher currents
demanded by the motors, since the original microcontroller board was only able to
supply one volt per motor. Finally supports where adapted to the test platform in
To run the robot a simple interface with the keypad and LCD was created.
When turned on the user is prompted to wait for GPS initialization with the option of
waiting for the wide area augmentation system (WAAS) to be initialized. Once the
WAAS system is initialized the left LED besides the LCD screen will light up.
For simplicity reasons, upon continuation the user must carry the robot to
the desired destination and once there the coordinates will be recorded into the
memory. Then the user will have to carry the robot to its desired starting point and
3.3. Navigation
Navigation is done, as mentioned before, with the use of GPS data from the
receiver which updates at 1Hz, and its heading is corrected with the use of an
algorithm which controls motor voltage based on the digital compass readings. The
%
vehicle will therefore continuously monitor its position and orientation compared to
its desired position and orientation, and the vehicles control system will guide it
The main advantage of using GPS for localization is that the data gathered
does not depend on previous readings and therefore errors in localization do not
grow over the course of time as they would with localization methods such as dead
reckoning with wheel encoding. The disadvantage of using GPS is its accuracy,
there are obstructions in between the receiver and the satellites it communicates
with [1].
the AV. An obstacle avoidance algorithm is implemented to give the robot the
necessary reactive behaviour when encountering something in its path. When the
algorithm will then have to choose suitable way to steer away from the obstruction
For more information about the vehicles control system and navigation
The board allows communication with analog and digital inputs as well as a UART
port, 2 SPI pots, 1 USB port 1 I2C ports. These ports allow for connections to be
'
made with the sensors, the display and the debugging tools such as Hyper terminal
/ 6& )$ (
Also, for user input a 12 button keypad is connected also to the microcontrollers
input/output ports with the use of a resistor network contained inside the test
platform.
The module provides a 42 KHz ultrasonic ping for object ranging at distances from
outputs including serial (0-5V), analog voltage or PW output. To interface with the
+
microcontroller the sensors are also connected to the analog input/output ports.
The readings recorded by the ADC buffers are then calibrated at 9.8mV per inch
/ 46
with integrated antenna. Its 12-channel receiver continuously tracks satellites and
small variations in the GPS satellites'signals in the western hemisphere. The GPS
/ 62 2# <=(
precision compass for performance up to a ±60° tilt range. The connection to the
microcontroller board is done using a SPI port and it updated at 8 Hz. For
correction between true north from magnetic north the data from GPS is used.
/ 16= 0 = %%
For motion, a pair of Lynxmotion GHM-12 Spur Gear Head Motor are used
and are connected to Lynxmotion 2" wide tracks. These tracks provide a little more
versatility than normal wheels since the robot is able to traverse uneven surfaces
without getting stuck. Still there small size poses limitations to the terrain they are
Figure 10 shows the flow diagram for navigation of the AV. It shows the
simplicity with which the three main robot behaviours operate. This is done with a
present. In theory, this method allows for further behaviours to be added, and each
one can be layered one on top of the other depending on priority. Each behaviour
can then have its own independent control system that dictates how the robot
behaves overall.
4
/ 6 $ ) (
and desired heading have to be computed using the GPS data. Distance remaining
For 2 points on a sphere with given latitude and longitudes, the formula is
given by:
d = R.c (1)
where
c = 2 * atan2(root_a, root_(1-a))
To calculate the heading that would follow a circular arc around a sphere a
(2)
(Note; angle returned from an atan2 function ranges from –180 to 180 degrees and
Once this is done, the algorithm loops until it reaches a specified distance
from the target. This distance is set at 3 meters since this is the minimum
For navigation, the following logic was programmed. It tries to include the
mechanical limitation of the prototype that where encountered during testing. (see
section 5). First the AV calculates it desired heading from GPS data. Then, the AV
must poll its ultrasonic sensors in order to determine if there exists an obstacle in
its path. If there is, the AV will have to try to turn away from it, while if there isn’t
1
then the AV will use its heading control to change the motor’s PWM and thus its
direction.
the algorithm. It is triggered when the robot senses an obstacle immediately in front
at a distance closer than 15 inches. In the case where all sensors detect a value
be completely surrounded. If only the front sensor returns this distance then the AV
will start turning towards the direction that senses the obstacle farthest away. If one
side sensor detects this distance then the wall following behaviour will determine
Turning control is programmed by setting the PWM of the left or right motor
to cero depending on the direction of the turn. The AV will then start turning until
the front sensor shows no obstacle is within a certain distance or if it comes too
close to an obstacle. In the first case, once the condition is met the robot will
continue with another behaviour. In the later case, the PWM of the motors is set to
Wall following behaviour is triggered when the AV does not need to perform
obstacle avoidance. The other condition that must be meet is that an obstacles
needs to be located in the direction of the front sensor, or the sensor which is
pointing towards the desired heading. This is because the AV would either drive
eventually drive straight into the obstacle or try to run into it leading to the
be at 75 inches away from the AV, it is considered that the desired path is blocked,
and therefore the AV most follow the obstacle that blocks the path until the desired
%
heading is free. To follow the obstacle the side sensors will determine the distance
The unobstructed heading control is used in the cases where the AV doesn’t
detect an obstacle in the direct path on which the robot wants to move meaning
neither obstacle avoidance or wall following have been triggered. The way the
control system works is it calculates the heading error, which is the difference from
the AV’s current heading to the desired heading. Then to correct this error, since
error is subtracted from the PWM of one of the motors, depending on the desired
turning direction. The function is then calibrated for the vehicle in such a way that
any heading error with a value above 90 degrees will decrease the motors speeds
to 0, giving the minimum turning radius possible for the prototype. This is a turn
radius of approximately 36 inches which is due to the fact that even though one
motor is set to stop, the friction with the ground will still cause the treads to turn.
degrees will then cause the AV to have a higher turning radius. Thus the AV
increases its turning radius as the heading error tends to cero, which would set the
4.
to verify the working status of the AV. Each behaviour was tested for functionality
Due to the size restriction of the treads and the torque available to drive the
motors, the vehicle was tested only on even surfaces that did not present large
testing of the GPS navigation was done in an area with clear view of the sky,
enabling reception of signal from several satellites. Because of this most testing
was performed at King’s College Circle at the University of Toronto. This area
The fist behaviour to be tested was the unobstructed heading control, which
the error found in the difference between the desired heading and the actual
Results from a test run show the GPS coordinates recorded by the AV at 2hz (the
GPS was still transmitting at 1Hz). The point in red shows the desired destination
39.685
39.684
39.683
Latitude North (degrees)
39.682
Vehicle
39.681 position
39.68
Destination
39.679
Linear
39.678 (Ideal path)
39.677
-23.735 -23.73 -23.725 -23.72 -23.715 -23.71 -23.705
Longitude East (degrees)
/ 6 2# ) () " " )
The graph shows a large disparity between the straight line that should be
followed by the AV and the actual direction taken. This was determined to be due
to the fact that correction of heading was not enough at the starting stages of
motion when the heading error was small. Once the AV approached the target the
heading error became larger and thus more drastic correction was performed by
the controller leading to it eventually steering towards the target. To fix this, more
testing was done using higher proportional constants to correct the error.
%%
39.686
39.685
39.684
39.683
Latitude North (degrees)
39.682
39.681 Vehicle
location
39.68 Destination
39.679
Linear (Ideal)
39.678
39.677
39.676
-23.73 -23.725 -23.72 -23.715 -23.71 -23.705
Longitude East (degrees)
With the use of the higher constant an improvement in the trajectory was
noticed, yet it still shows large deviations form the desired straight line. This
motor direction and later discussed in the limitations section. The reason being that
tight turns are hard to be obtained because of the malfunction of one of the logic
gates inside of the motor controller leading to the inability of the right motor to be
able to turn in the reverse direction. Then the minimum turn radius of the robot on a
tiled floor was calculated to be 36 inches, which is fairly large for an AV than only
It is worth mentioning that even though large deviations from the ideal
straight line where encountered, the unobstructed heading control still provided the
%'
AV a way of reaching the target (within its specified 3 meter tolerance). So even
though this control system encounters some limitations, it still serves the original
purpose of serving for integration with other behaviours for the AV navigation
algorithm.
Most of the time spent in the testing of the prototype was used trying to
obtain reliable obstacle avoidance and wall following behaviours. Testing of the
obstacle avoidance behaviour and wall following was done both indoors and
outdoors, yet eventually fell short of desired expectations. This was caused by
erratic sensor readings. These problems were not limited to the outdoor
environment but were also found indoors during testing of the obstacle avoidance.
Indoors, reflection of sonar waves from small features on the floor were read
by the sensors. Specifically, with sensor placement of 4 inches about the tiled floor,
a small unevenness of about 5mm in height and a patch of dirt left by a shoe where
detected when the robot was at about one foot from the feature. It was therefore
decided to elevate the height of the sensor to 8 inches and to point them slightly
upwards. This helps to limit the detection of false obstacles but will limit the ability
of the robot to detect small steps in the terrain that have a height of about 2 inches,
never achieved. Noise introduced in these environments made the data gathered
positioning of obstacles.
%+
accomplished since they are based purely on the reading of the sonar sensors. For
example, for obstacle avoidance the reading from a sonar sensor is continuously
updated to give the positioning of the obstacle in front and the control system then
determines the PWM of the motors in order to steer the AV. But when noise levels
become so high that the distance read by the sensor oscillates between the
threshold distance that activates the behaviour, the robot will erratically enter the
turning control.
To try to limit the problem an analysis of the data gathered by the sensors
filter the data gathered. The first set of data shows sensor readings at 50 Hz taken
of the sky, while the second set shows data gathered close to a wall located at 180
600
500
Analog value recorded
400
200
100
0
1
27
53
79
105
131
157
183
209
235
261
287
313
339
365
391
417
443
469
495
521
/ %6 ) 0$ " 0 $ :
%
600
500
Analog value recorded
400
200
100
0
1
31
61
91
121
151
181
211
241
271
301
331
361
391
421
451
481
511
Descrete time series at 50Hz
/ '6 ) 0$ " 0 $ 0
The first graph shows a dip in the readings that cannot be fully explained
except as ambient noise. The second set of data shows large oscillation in values
read by the sonar sensor even though the object placed in front of it was always
kept at a fixed distance. It seems as if the sensor was reading 2 different distances
that changed periodically. This might have been due to an echo effect, but it is hard
A second order low pass Butterworth filter was applied with cut-off
frequency of 20 Hz, which is a bit less than half of the sampling frequency. The
600
500
Filtered analog value
400
200
100
0
1
31
61
91
121
151
181
211
241
271
301
331
361
391
421
451
481
511
Dicrete time series
/ +6/ ) 0$ " 0 $ :
600
Analog value recorded
500
400
300
datas set 1
200
100
0
1
30
59
88
117
146
175
204
233
262
291
320
349
378
407
436
465
494
523
Time interval
/ 6/ 0$ " 0 $ 0
The graphs shows that filtering is still not able attenuate noise with large
magnitudes and long periods. Filtering is therefore unable to yield the expected
values of distance, as the constant component of the signal that would be due to
the constant distance from the sonar to the object, was not obtained.
%
Without proper sonar readings robust wall following and obstacle avoidance
behaviours were not achieved. This presents a downfall in the development of this
project. Its repercussions and possible solutions are discussed in the following
sections.
%1
Section 3.2 described the test platform designed by Nicolas Wrathall. It was
this platform that was used as a base for the AV since this was the material that
Unfortunately, this layout was not made with the intention of further development
and created complications when adding the robot chassis, the external motor
control and the rechargeable batteries used to run the motors and controller board.
The main disadvantage was all the external wiring which had to be used in order to
connect the motor cables, the motor power supply, the controller board power
supply and the GPS receiver. These cables can easily become entangled with the
treads that drive the robot and can become loosened due to vibrations during
driving.
5.1. Motors
There are certain mechanical limitations that are caused by the use of the
12V DV geared motors. These can only provide a maximum speed of about 253
rpm at no load, which is then decreased due to the weight of the robot. This limits
The current drawn by the motors is also a limitation to the design. The
microcontroller board uses L293 motor controller that can only handle up to 1 amp
of current per motor. For this reason an external L298 motorcontroller was used.
This motor controller is rated at 2 amps per motor but it is mentioned. The 12V DC
motors used for the AV actually have a stall current of 3.8 amps and it is believed
that at one point during testing this current value cause a logic gate failure in one of
'
the controller switches which lead to motor malfunction. The result was that the
right motor is no longer able to operate in reverse limiting the turning radius of the
development of the program used for navigation since its limits the heading
correction of the AV when driving towards a target and when avoiding obstacles.
Also, even thought the microcontroller board has the input capability to
process enconder readings, the motors used for the robot do not have this output
and therefore vehicle velocity cannot be tracked. This is a constraint to the control
system for navigation and the potential use of inertial navigation in future
developments.
during the implementation of the design. The AV is only able to traverse flat fields,
paved areas and uneven surfaces that create abrupt obstacles not above 1 inch in
height.
One of the motivating points for the undertaking of this project was the
due to the fact the outdoor environment poses many complications for the sensors
"
done using a statistic known as CEP (Circular Error Probable) and are usually
tested under ideal conditions. These conditions refer to a clear view of the sky with
'
no obstructions above 5 degrees elevation from the field of view. These conditions
do not represent real life situations and thus inaccuracies are introduced. These
are due to reduced number of satellites seen by the receiver, a reduced strength of
Also, since GPS works as a passive receiver that updates positioning every
second, in cases where the vehicle speed is large it would create a problem of
important. To correct these positioning error different techniques can be used. For
more complicated systems, inertial navigation, vision and dead reckoning can be
used to continuously update positioning during the elapsed time during received
GPS signals.
This was one of the mayor problems faced during the development of the AV.
The accuracy and repeatability of the data gathered by the sensors was
lacking since problems with noise were encountered. Due to this lack of accuracy it
that small objects on the ground were not read. Outdoors, this could not be
repeated. For the code presented in appendix A (based on the algorithm presented
in figure 10), testing outdoors showed erratic behaviour of sensor readings even
while the environment remains static. This leads to serious problems since the
'
robot relies entirely on its ultrasonic sensor readings to arbitrate which part of the
As the design process for the AV matured, it became evident that the
mechanical limitations created further complications for the control system that
could be implemented. A lack a sensed vehicle speed meant that a proper PID
control system for speed and heading based on a feed back loop could not be
radius, separation, angular velocity and turn radius. Encoder would provide the
angular velocity necessary to develop the model. Instead, the control system
detailed in section 3.5 for unobstructed heading control (based on PWP) was used.
It assumes that correction of the heading error can be done by changing the PWM
of the motors but lacks a complete model of vehicle dynamics for correction.
The results presented in section 4.1 show the limitations of the PWM control
used since large deviations from an ideal path were obtained, even though the AV
to be interfaced with a lego building set and its NXT sensors. This was the
concept model of an AV [19]. Because of this an initial design was created which
used only lego parts and sensors. This design suffered greatly from mechanical
'%
and sensorial problems. First, the flexibility of lego parts makes the robot chassis
very fragile. Also the controller board is made for running at 5-10 volts, which is
also fed to the motor through a L293 motor controller. The controller then has a 1.5
volt drop before it is transmitted to the motors. This implies that even thought the
motors can be run at 12 volts, they where actually being run at approximately 8
volts when connected to the board. Adding to this, the weight of the vehicle and the
uneven terrain added to the torque needed to be provided by the motor. Eventually
the motors would stall when lower PWM values were used for turning negating
there use completely. Because of this the external motor controller were used.
''
#$
towards its given destination. Unfortunately, the necessary wall following and
First, the results obtained in section 4.3 show that outdoor navigation is with
only ultrasonic sensors for obstacle avoidance and wall following is a greater
can help with these tasks. For systems described in section 2.4 it can be seen that
many advanced robots use a combination of vision, LIDAR and radar to solve this
problem. But since part of the motivation of this project was to motivate the use of
redundant sonar sensors should be used. Still, vision-based systems are quite
systems. An analysis of the ability of the dsPIC used for this project would need to
external digital signal processor needs to be embedded within the camera system
itself.
Motors with encoders can provide an approximated speed of the vehicle which can
be used along with the GPS reading for updating position. Also, because of the
'+
flexibility of the behaviour based algorithm, the use of wheel encoder would allow
for the implementation of a already proven control system like the one
demonstrated in [19] and [1]. This fulfills one of the goals set out by the project
0.35m/s, only small error are introduced when updating positioning at 1Hz
(frequency of the GPS receiver). These errors are small in comparison to the 3-
meter precision of the GPS receiver and therefore would only be completely
started from scratch instead of an adaptation of an already build test platform. This
would allow for proper positioning of cables inside of the robot instead of partly on
the outside. It also would help to accommodate external batteries that power the
motors and the microcontroller separately. Finally the external motor controller
could be placed with other electrical components also eliminating more external
wiring.
'
%&
' ( &
8$ " $ 0 " " 2 $)
. $ > 0 0 $ $
? @"% ) $A
BB )
C/ &D& . C/ & C //E F8C#,, GH
C/. 38D. 38C //GH
C/7 # D#7 C //E &, C* E 8C # GH
C/7 D& 3*C# 8C //GH
C/ D& 3*C# 8C //GH
C/2 D& 3*C# 8C //GH
? @ $A
? @ $A
? @ $A
? @ $ $A
BBBBBBBBBBBBBBBBBBBBBBBBBB& 8 8 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
? ) # % ' +1
BI8 " ) 0 $ / &J =!IB
? ) 8 C#* 3 1' BB 54% BB 54+% BB 5 %
BB#. 3 )
? ) #. % #3&
? ) #. ' #3&
BB % 2=8 8
? ) 3% C, 82
? ) 3%7 C, 8&%
BB ',*/8 8
? ) 3' C, 82
? ) 3'7 C, 8/
BB / :3 )
BB % 2=8 8
? ) % C 34
? ) 7% C3
? ) K% C '
BB ',*/8 8
? ) ' C/
? ) 7' C 3+
? ) K' C +
? ) BB %
? ) K &C&= 5++
? ) K &C&= 5
? ) 2# C C$ LML
? ) 2# C $: C $ LIL
? ) 2# C C$ C 53
? ) 2# C C$ C 5
? )
? )
? ) $:
? ) %
? ) '
? ) 2# & 5'7
? ) 2#22 5+
? ) 2#2 5'
? ) #2 * 5'3
? ) #2 7 5'
? ) #2 5'+
BB,&3 3 )
? ) D > GDD AA GE 5 G
? ) ,&3C C 3
? ) ,&3C* C 3
? ) ,&3C C 3
? ) ,&3C C 3
? ) ,&3C C & %
? ) ,&3C%C & '
BB? ) ,&3C 8 7* DD,&3C* J G>
D,&3C* J GG
BI $ $ IB
BB N& 8 8 OCC CCDDCC " CCD5 G>CC CCD% GGGH
BB N& 8 8 OCC CCDDCC " CCD G>CC CCD% GGGH
BI ) $ $ ) IB
BB %N& 8 8 OCF7 D% GH
BB 'N& 8 8 OCK7 D% GH
BI3 ) 0 $ IB
8 C$ N OH
$ FC N OH
) "C$ N OH
"C N OH
"N OH
"C" H
BI<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< IB
BI3 ) 0 $ IB
BI3 ) 0 $ IB
BB %H
BB ) - 7
$ 8FC7 )) N OH
8FC7 )) C, H
8FC7 )) C# H
$ 8FC7 )) C C- H BB "$
$ FC7 )) N OH
FC7 )) C, H
FC7 )) C# H
$ FC7 )) C&$: H
$ FC H BB " :
$ "C $: H
$ C" H
#* H
/* H
* H
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BB2# 3
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-8&C H BB-8& 8 )# /5
C-8&C H
-8&C H
0C " C) H
0C2# C) H
C H
)C H
)C H
CH
) C H
CH
) C H
$ C$ "$ H
$ C$ "$ H
2# C; C H
H
) $ ! C H
) C$ $ H
) C$ $ H
32# C C H
32# C 3H
$ C" H
) 2# C " H
) 2# C H
) C H
$ C C H
) 2# C C H
) "C C H
C H
$C "H
$C " H
+
) 5C "H
) C "H
) $C H
) C H
) "C H
0 C2# C) H
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
0: H
: C) H
: C C) H
: H
H
$ N+ OH
$ - 7 N OH
$ I C" H
C H
C0 C) H
C0 C H
$ 0 C$ H
"C) H
C" H
C" $H
C. H
C. H
C. H
C. %H
C. 'H
C. +H
C H
C "H
;C H
:C" H
8+C$ C" H
) C H
) " C H
) C "H
C" C H
) C" H
FC" H
"C$ C" H
:C H
"C H
) H
) %H
) 'H
% H
' H
$ =H
$ ,H
) $ H
) " C$ H
) $ C H
) C C$ H
) C C H
) C$ H
) C$ H
) C H BB $ ) )
) " $H
) H
# C C H
# C H
# C H
# C" C H
C" H
C" H
) "C $H
) "C0 H
C C0 $H
$:C"H
$:C H
) C ))H
C H
) $ C H
) $ C C H
C"0 H
C H
C" H
" C #C H
:8 "
P
H BB 0 >
: H BB >
H BB >
H BB
:H
Q 8 :H
0 "
P
C H
) C H
$ C$ "$ H
C H
) C H
$ C$ "$ H
Q" >" > "C0 " > > C " C" > H
5H
0 " I" C" H
0 " I" C" H
0 " " $N' OH
C" J H
" $C" H
+
" $C) H
C :D G
P
8 : J HBB )0
8 : :J H
8 : J H
8 : J H
8 J HBB
# J8 C#* 3HBB "
8& 8& J HBB :
#& 8 # J 'HBB "
/ 8 /J HBB ")
*& 8 *J HBB "
BB #, J %HBB &#- " '<4
8& 8 J HBB $
Q
C#. D GH
C D GH
C +D GH
C- 8D GH
C 85D GH
C +D GH
C: " D GH
C D ) 0 C " GH
C # D GH
# C D GH
#C D GH
C D $ > GH
C D ) 0 C " >) GH
C) 0 D ) 0 C " >) GH
C) 0 D ) 0 C " GH
C2# D ) 0 C " > 0 " " > 0 " " 7GH
C D ) 0 C" > C > GH
C D $ C " GH
C D $ C " GH
C %D) $ C " GH
C$ D GH
C$ D GH
2# C D GH
0C" : D$ 2# C" : N O> " : C GH
0 C" : D $ I" : > 5C GH
) C$ D 0 " " > 0 " " 7GH
) C$ D 0 " " > 0 " " 7GH
C$ %D 0 " " > 0 " " 7GH
) C D 0 " " > 0 " " 7GH
C0 " D 0 " I " GH
C -FC- 8D GH BB 5 - 8
C0 D $ GH
C D GH
+%
C" D $ I GH
C D $ " GH
C D GH
,&3C 8 7*D GH
C C D C GH
C D C GH
C D C GH
CD C GH
C$ D GH
C: " D GH
D G
P
"C" J H
#* J H
/* J H
* J H
C DGH
C#. DGH
C +DGH
C 85DGH
C # DGH
C- 8DGH
C :DGH
C DGH
C: " DGH
C D GH
"C) J H
C" J H
C" $ J H
C J H
8 +C$ C" J H
C DGH
C" DR# . RGH
C D' GH
C" DR) 2# RGH
C D GH
C DGH
C 3 J H
C 3 *J H
" C J H
C" DR ! 2# RGH
C D' GH
C D GH
C D%>GH BB) 0
+'
C D'>GH BB) 0
#. %J H BB )
#. 'J H BB $
C H
:"J H
)C H
0$ D2# C; C JJ EE S0 C2# C) GP
)D " C SJ 8 : GP
" C J 8 : H
C D' GH
J " )D > RT R> " C GH
C" D GH
Q
QBB0$ D2# C; C JJ G
C DGH
J " )D > RU J T R>
2# C; C GH
C" D GH
C D' GH
J " )D > RT R> GH
C" D GH
C D GH
0$ DS: C) EE 0: SJ GP
: C) J H
0: J H
C DGH
J " )D > RU 6T 6T R>
2# C; C > GH
C" D GH
C D' GH
J " )D > R=3 #6T )R>$C " GH
C" D GH
C D GH
C DGH
J " )D > RT =* 6T )R> C" >
$C GH
C" D GH
C D' GH
J " )D > R(6
T )#6T )R>C >"C GH
C" D GH
C D GH
Q
++
C DGH
C" DR* 0 " RGH
C D' GH
C" DR ) RGH
C D%GH
BBBBBBBBBBBBBBB ) BBBBBBBBBBBBBBBBBBBB
0$ D 0: SJ GP
C DGH
C" DR?6 I6 RGH
: C) J H
0: J H
0$ DS: C) GP
)D C-8&C SJ -8&C GP
C-8&C J -8&C H
C D' GH
J " )D > R=3 #6T )R>
$C " GH
C" D GH
QBB )D C-8&C SJ -8&C G
QBB0$ DS: C) G
)D 0: JJ GP BB
C-8&C J -8&C H
BB 0 ")
0$ D C-8&C JJ -8&C GH
BB0 ) 0 "
BB C DGH
BB C" DR RGH
BB0$ D$C "AJ 'GH
0$ D C" JJ L
(LEE S0 C2# C) GH BB "
" C" J E H
C0 " D" C" GH
BB " 0 " )
C DGH
J " )D > R, 6T T ') R> C > C GH
C" D GH
C D' GH
J " )D > R, 6T
T ') R> C > C GH
C" D GH
C D GH
C DGH
C" DR. " RGH
C D GH
QBB )D 0: JJ G
+
QBB0$ DS: C) EE 0: SJ G
C DGH
C" DR# ? RGH
: C) J H
0: J H
0$ DS: C) V
V 0: SJ GH
BB0 ) ?:
0$ D C" JJ L
(LEE S0 C2# C) GH BB "
C DGH
C" DR RGH
C D GH
C "J H
BB
:" J''H BB 0 $
5 C"0 H BB ) "0
) C$ H
C J C D C " C" > GH
C$ H
C$ H
0$ D C A %G
P
$ :C DGH BB " " "
BB
)D %C @% V
V C @% V
V C @% G
P
C DGH
Q
)D %C A 4+EE C )C C" C C$ A 4+G
P
DGH
Q
P
0 C) 0DGH
Q
BB )
C J C D C " C" >
" $N" $C" W OGH
QBB 0$ D C A % G
C DGH
C DGH
C" DR. " $ RGH
C D' GH
C D+GH
+4
#. %J H
#. 'J H
C DGH
C" DR* # RGH
0$ D G
QBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB ) ) BBBBBBBBBBBBBBBBBBBBBBBBBBB
BI
D G
P
:" J+ H
C$ J " C$ < C$ H
)D D C$ GA GP
)D C$ @< GP
BB )
C$ J% W C$ H
#. 'J ' H BB $
5 C"0 J ' < :" I D C$ GH BB ) )
)D 5 C"0 @ G
P
#. %J H
Q
P
#. %J ' < :" I D C$ GH BB )
Q
Q
)D C$ A< EE C$ @ GP
#. %J ' H
5 C"0 J ' < :" I D C$ GH
)D 5 C"0 @ G
P
#. 'J H
Q
P
#. 'J ' < :" I D C$ GH
Q
Q
)D C$ A EE C$ @ GP
BB )
#. 'J ' H
5 C"0 J ' < :" I D C$ GH
)D 5 C"0 @ G
P
#. %J H
Q
P
+
P
#. 'J ' < :" I D C$ GH
Q
Q
PQ BB )D D C$ GA %G
Q
P
BB " )D 5 0 >R $> C$J T )X X R> C$ GH
BB0 C- 7DD$ IG 5 0 > D 5 0 GGH
#. 'J ' H
#. %J ' H
QBB )D D C$ GA %G
BB " "
$ :C D G
P
BB $ Y C C Y
: C H
C J 3&7-/FF B H BB 1 (" $
C J 3&7-/FF B H
%C J 3&7-/FF B H
BB C" C C C$ DG Y
C J " C$ W1 H
)D C A% G
P
C J C <% H
Q
C J " C$ H
%C J " C$ <1 H
)D +C @G
P
+C J% W 'C H
Q
+1
)D< +@ C$ Z C EE C$ Z C @ 1 GH
P C )C C" C C$ J C H
: C J H
Q
)D D C$ Z C G@ +GH
P C )C C" C C$ J C H
: C J H
Q
)D D C$ Z %C G@ +GH
P C )C C" C C$ J %C H
: C J %H
Q
)D D C$ Z 'C G@ +GH
P C )C C" C C$ J 'C H
: C J 'H
Q
)D<1 @ C$ Z +C EE C$ Z +C @ +GH
P C )C C" C C$ J +C H
: C J +H
Q
PQ
Q
0 C) 0 D G
P
$ :C DGH BB $ :
:"J % H
)D %C @ 4+GBB 0$ 0 ) 0 $
P
BB) 0
#. %J H
#. 'J H
C" DR 7 8 &,* =* 3RGH
C D' GH
Q
BB 0 ) 0 0 $ $
P
)D 'C @ 4+V
V +C @ 4+G
P
C J 4+Z +C H BB 3&7-/FF Y
)D C @G
P
#. %J ' H
#. 'J ' < :"I D C GH
Q
P
#. 'J ' H
#. %J ' < :"I D C GH
Q
Q
)D C @ 4+ V
V C @ 4+GH
P
C J 4+Z C H 3&7-/FF Y
)D C AG
P
#. C J' H
#. C J' < :"I D C GH
Q
P
#. C J' H
#. C J' < :"I D C GH
Q
Q
H
Q BB )) 0 ) 0 $ )
Q BB )) )
IB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
0 C- 7D$ I C C0 > C GP
BB 5 " 6
BB0 C- 7DD$ IG > ! )D GGH
BB0$ )$
> H
C- 8F *J H BB 8F "
)D JH @ C H WWGP
J 8FC7 )) C# W8FC7 )) C, W H
)D AJ ! )D8FC7 )) GG <J ! )D8FC7 )) GH
8FC7 )) N OJ C C0 N OH
Q
8FC7 )) C, WJ C H
)DS- 8 -8F7/GP
- 8F *2 J 8FC7 )) N8FC7 )) C# OH BB0
8FC7 )) C, <<H BB $
8FC7 )) C# WWH BB "
)D8FC7 )) C# JJ ! )D8FC7 )) GGP
8FC7 )) C# J H
Q
Q
C- 8F *J H BB 8F "
H
Q
C -FC- 8D GP
BB- 8
- 7 2 J +H BB- 7 2 J +<<A + + 7 [ 1' #
- 3*J H BB < > "
- 8 J H
C- 8F # J +H BB" +< $ $ $
C- F # J +H BB" +< $ $ $
- 8 -8F *, J H BB " 0$ ) $)
- 8 - F *, J H BB " 0$ $
- 3* - 8* J H BB - 8
- 8 -8F* J H BB - 8 > 8F "
C- 8F /J H
C- F /J H
C- 8F *J H BB 8F "
C- F *J H BB F "
5C" : N OJ K &C&= H
5C" : N OJ K &C&= H
5C" : N OJ 5C H
5C $ : J H
) D5C" J H 5C" @ 5C H 5C" WWGP
5C" : N 5C" W %OJ " : N 5C" OH
5C $ : WJ " : N 5C" OH
Q
5C" : N 5C" W %OJ 5C $ : T +H
0 C- 7 D$ I C C0 > C GP
BB 5 " 6
BB0 C- 7DD$ IG > ! )D GGH
BB0$ )$
> H
C- 8F *J H BB 8F "
)D JH @ C H WWGP
J 8FC7 )) C# W8FC7 )) C, W H
)D AJ ! )D8FC7 )) GG <J ! )D8FC7 )) GH
8FC7 )) N OJ C C0 N OH
Q
8FC7 )) C, WJ C H
)DS- 8 -8F7/GP
- 8F *2 J 8FC7 )) N8FC7 )) C# OH BB0
8FC7 )) C, <<H BB $
8FC7 )) C# WWH BB "
)D8FC7 )) C# JJ ! )D8FC7 )) GGP
8FC7 )) C# J H
Q
Q
C- 8F *J H BB 8F "
H
Q
0$ D- 8 - F3 GP
FC7 )) N FC7 )) C# OJ - F *2H
0 $D FC GP
6
)D FC7 )) N FC7 )) C# OJJ 2# C C $ GP
FC7 )) C&$: J H
"C $: J H
FC7 )) C# WWH
FC J H
Q
:H
6
)D FC7 )) N FC7 )) C# OJJ 2# C $: C $ GP
FC7 )) C# WWH
FC J $: H
Q
P
)D FC7 )) C&$: JJ G FC7 )) C&$: J FC7 )) N FC7 )) C# OH
FC7 )) C&$: \J FC7 )) N FC7 )) C# OH
FC7 )) C# WWH
Q
%
:H
$: 6
)D FC7 )) N FC7 )) C# OJJ 2# C C $ C GP
FC7 )) C# WWH
FC J H
Q
)D "C $: JJ GP
)D FC7 )) N FC7 )) C# OA 5%1G "C $: J D FC7 )) N FC7 )) C# O< 5%4GI H
"C $: J D FC7 )) N FC7 )) C# O< 5% GI H
FC7 )) C# WWH
Q
P
)D FC7 )) N FC7 )) C# OA 5%1G "C $: WJ D FC7 )) N FC7 )) C# O< 5%4GH
"C $: WJ FC7 )) N FC7 )) C# O< 5% H
FC7 )) C# WWH
)D "C $: SJ FC7 )) C&$: GP
FC J H
FC7 )) C# J H
Q
Q
:H
6
)D FC7 )) N FC7 )) C# OJJ 2# C C $ C GP
FC J H
FC7 )) C, J FC7 )) C# W H BB $ M>& >,/
FC7 )) C# J H
0C" : D FC7 )) > FC7 )) C, GH
Q
:H
) 6
FC J H
QBB 0 $D FC G
QBB0$ D- 8 - F3 G
C- F /J H
QBB CC CCDD "> C" GGC- F "D G
)D8FC7 )) C, SJ GP
0$ DS- 8 -8F7/GP
- 8F *2 J 8FC7 )) N8FC7 )) C# OH
8FC7 )) C# WWH
)D8FC7 )) C# JJ ! )D8FC7 )) GGP
8FC7 )) C# J H
Q
8FC7 )) C, <<H
)D8FC7 )) C, JJ GP
8FC7 )) C# J H BB " ! 0 ""
'
:H BB 5 0$ "
Q
QBBDS- 8 -8F7/G
QBB )D8FC7 )) C, SJ G
C- 8F /J H
QBB CC CCDD "> C" GGC- 8F "D G
)D8FC7 )) C, SJ GP
0$ DS- 8 -8F7/GP
- 8F *2 J 8FC7 )) N8FC7 )) C# OH
8FC7 )) C# WWH
)D8FC7 )) C# JJ ! )D8FC7 )) GGP
8FC7 )) C# J H
Q
8FC7 )) C, <<H
)D8FC7 )) C, JJ GP
8FC7 )) C# J H BB " ! 0 ""
:H BB 5 0$ "
Q
QBBDS- 8 -8F7/G
QBB )D8FC7 )) C, SJ G
C- 8F /J H
QBB CC CCDD "> C" GGC- 8F "D G
0 $ D" : C 3GP
2# &6
) DJ H @J" : C H WWGP
0 $D" : C GP
6 BB )
)D2# C" : N OJJ L
>L
GP
" : C WWH
"C " J H
-8&C J H
Q
+
:H
6 BB-8&
)D2# C" : N OJJ L
>L
GP
" : C WWH
"C " J H
C J H
C J H
"C J H
Q
P
-8&C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
Q
:H
6 BB
)D2# C" : N OJJ L>
LGP
" : C WWH
"C " J H
C J H
C J H
"C J H
Q
C" J 2# C" : N OH
:H
%6 BB,
)D2# C" : N OJJ L
>L
GP
" : C WWH
Q
)D2# C" : N OSJ LLGP
)D "C @ GP
C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
"C WWH
)D "C JJ G "C " J H
Q
P
C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
Q
Q
:H
6 BB, $ "$
)D2# C" : N OJJ L
>LGP
" : C WWH
2# C " J H
"C " J H
BB
BB C0 " D
Q
C$ "$ J 2# C" : N OH
:H
46 BB "
)D2# C" : N OJJ L
>L
GP
" : C WWH
"C " J H
2# C J H
Q
P
2# C " WJ D2# C" : N O< ' GI "C " H
"C " BJ H
Q
:H
6 BB&
)D2# C" : N OJJ L
>L
GP
" : C WWH
"C " J H
-8&C J H
)D2# C SJ GP
"C C WJ 2# C H
C WWH
Q
Q
P
2# C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
Q
:H
4
16 BB-8&
)D2# C" : N OJJ L>L
GP
" : C WWH
"C " J H
C J H
Q
P
-8&C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
Q
:H
6BB
)D2# C" : N OJJ L
>L
G" : C WWH
P
C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
Q
:H
6BB
C C J 2# C" : N OH
" : C WWH
) 6
:H
QBB 0 $D" : C G
QBB) DJ H @J" : C H WWG
:H
2#22 6
) DJ H @J" : C H WWGP
0 $D" : C GP
6 BB )
)D2# C" : N OJJ L
>L
GP
" : C WWH
"C " J H
-8&C J H
Q
:H
6 BB-8& 8
)D2# C" : N OJJ L
>L
GP
" : C WWH
"C " J H
C J H
C J H
"C J H
Q
P
-8&C WJ D2# C" : N O<
' GI "C " H
"C " BJ H
Q
:H
6 BB
)D2# C" : N OJJ L
>L
GP
" : C WWH
Q
)D2# C" : N OSJ LL
GP
)D "C @ GP
C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
"C WWH
)D "C JJ G "C " J H
Q
P
C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
Q
Q
:H
%6 BB $ "$
)D2# C" : N OJJ L>
LGP
" : C WWH
"C " J H
C J H
C J H
"C J H
Q
C$ "$ J 2# C" : N OH
:H
'6 BB
)D2# C" : N OJJ L>L
G" : C WWH
)D2# C" : N OSJ LL
GP
)D "C @ %GP
C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
"C WWH
)D "C JJ %G "C " J H
Q
P
C WJ D2# C" : N O< ' GI "C " H
"C " BJ H
Q
Q
:H
1
+6 BB $ "$
)D2# C" : N OJJ L
>L
G" : C WWH
C$ "$ J 2# C" : N OH
:H
6 BB2# ;
)D2# C" : N OJJ L
>L
GP
" : C WWH
J H
"C " J H
)D2# C; C JJ GC 3 J H
C3 J H
)D2# C; C A G 0C2# C)
J H
Q
2# C; C J 2# C" : N O<' H
:H
46 BB ) <
)D2# C" : N OJJ L>L
GP
" : C WWH
$C "J H
)D2# C" : N W OJJ LLV
V2# C" : N W OJJ L >
LG "C " J H
)D2# C" : N W OJJ LL G "C " J H
"C " J H
$C " J )DE2# C" : N W OGH
Q
P
WJ D2# C" : N O<
' GI "C " H
"C " BJ H
Q
:H
16
:H
6BB32#
:H
6BB32# ) 3 < %
:H
4
) 6
:H
QBB 0 $D" : C G
QBB) DJ H @J" : C H WWG
:H
2#2 6
J H
:H
#2 *6
) DJ H @J" : C H WWGP
0 $D" : C GP
6 BB )
)D2# C" : N OJJ L >
LGP
" : C WWH
)D2# C" : N W OJJ LL G "C " J H
)D2# C" : N W%OJJ LL
G "C " J H
"C " J H
$C J H
Q
:H
6 BB$ !
)D2# C" : N OJJ L
>L
GP
" : C WWH
WJ H
Q
P
$C J )DE2# C" : N W OGH
0$ D2# C" : N W OSJ L
>L
G WWH
BB$C WJ D2# C" : N O<
' GI "C " H
BB "C " BJ H
Q
:H
6 BB
)D2# C" : N OJJ L
>L
GP
" : C WWH
WJ H
Q
P
C J )DE2# C" : N W OGH
0$ D2# C" : N W OSJ L
>L
G WWH
BB C WJ D2# C" : N O<
' GI "C " H
BB "C " BJ H
Q
:H
%6 BB"
4
) 6
:H
QBB 0 $D" : C G
QBB) DJ H @J" : C H WWG
:H
#2 76
J H
:H
#2 6
J H
:H
) 6
J H
QBB 0 $ D" : C 3G
"C) J 'H
C" J #&,H
C" $ J #&=H
DR * *8RGH
Q
)D GP BBS: C) GP
)D 3&7-/4A %+GP
)D 3&7-/4@J %+ G 0: J H
)D 3&7-/4AJ %+ EE 3&7-/4@J ++ G 0: J +H
)D 3&7-/4AJ ++ EE 3&7-/4@J 4 G 0: J H
)D 3&7-/4AJ 4 G 0: J H
)D: C C) GP
)D : JJ 3&7-/4GP
: C) J H
: C C) J H
: J H
Q
P
: J 3&7-/4H
C D GH
Q
QBB )D: C C) G
P
: C C) J H
: J 3&7-/4H
C D GH
QBB
QBB )D 3&7-/ A %+G
)D 3&7-/ A %+GP
)D 3&7-/ @J %+ G 0: J H
)D 3&7-/ AJ %+ EE 3&7-/ @J ++ G 0: J 'H
)D 3&7-/ AJ ++ EE 3&7-/ @J 4 G 0: J 4H
)D 3&7-/ AJ 4 G 0: J H
)D: C C) GP
)D : JJ 3&7-/ GP
: C) J H
: C C) J H
: J H
Q
P
: J 3&7-/ H
C D GH
Q
QBB )D: C C) G
P
: C C) J H
: J 3&7-/ H
C D GH
QBB
4%
)D 3&7-/1A %+GP
)D 3&7-/1@J %+ G 0: J %H
)D 3&7-/1AJ %+ EE 3&7-/1@J ++ G 0: J H
)D 3&7-/1AJ ++ EE 3&7-/1@J 4 G 0: J 1H
)D 3&7-/1AJ 4 G 0: J H
)D: C C) GP
)D : JJ 3&7-/1GP
: C) J H
: C C) J H
: J H
Q
P
: J 3&7-/1H
C D GH
Q
QBB )D: C C) G
P
: C C) J H
: J 3&7-/1H
C D GH
QBB
QBB )D 3&7-/1A %+G
P
: C C) J H
: J H
QBB
QBB )DS: C) G
BI
1J ) J
J )4J
J )
J )1J %
IB
C 3 *J H
C 3 /J H
Q
:J H
H
;C WWH
)D 8 : A GBB )
8 : <J HBB
8 : : WWHBB :
8 : WWH
)D : WW JJ G
PBB )
: J HBB :
4'
BB 8 : J H
8 : WWHBB
BI)D 8 : T A G
C3 J H
C3 J HIB
Q
)D : T+ JJ GP
BB ! " %
)D %! C " C) JJ EE %" SJ GP
%" J H
) DJ H @ " C$ C H WWGP
% " C$ N OJ H
QBB)
% " C$ C" J H
QBB )
%! C " C) J H
BB ! " '
)D '! C " C) JJ EE '" SJ GP
'" J H
) DJ H @ " C$ C H WWGP
' " C$ N OJ H
QBB)
' " C$ C" J H
QBB )
'! C " C) J H
Q
BB 0$
)D # C JJ EE : T +JJ GP
# C J H
# 7-/J L
$LH
C3 J H
# C" C WWH
Q
)D : T+ JJ GP
)D # 8 8 # (GP
# C WWH
# 8 8 # (J H
Q
# C J H
C3 J H
Q
8 : : J :H
/ 8 /J HBB ")
6 BB$ $
,&3C%J D0 C$ >
4GH
,&3C J D0 C$ >GH
,&3C J D0 C$ >
+GH
,&3C J D0 C$ >
'GH
,&3C* J H
0$ D,&3C* SJ GH BB
# J % I'H
BB '
C0 C J H
:H
6 BB 0
,&3C* J H
0$ D,&3C* SJ GHBB
,&3C%J D0 C $ >%GH
,&3C J D0 C $ >GH
,&3C J D0 C $ >GH
,&3C J D0 C $ >GH
,&3C* J H
0$ D,&3C* SJ GHBB > '
C0 C J H
:H
6 BB) $ $ 0
,&3C* J H
0$ D,&3C* SJ GHBB
# J % I' HBB '
C0 C) J HBB )
C0 C J HBB $ $
:H
) 6
# J % I' H
C0 C) J H
:H
QBB 0 $D C0 C G
QBB )D C0 C G
P
0 $D C GP
6 BB
,&3C J H
0 C$ J 5 H
C0 C) J H
C J H
8& 8&]# J H BB"
# J% H
:H
6 BB )
# J % ,I H
C J H
:H
6 BB 0
J " )D >
R, 6T +)R> "C0 " C GH
4
%6 BB0 $
,&3C J H BB0 $
)DI C" SJ GP
0 C $ J I C" H
C" WWH
C0 C) J H
Q
P
C J 'H
# J% H
Q
:H
'6 BB 0
,&3C J H
0 C $ J 5 W' H
C0 C) J H
C J +H
# J% H
:H
+6 BB 0 0
J " )D > R, 6T +)R> "C0 " C GH
C" J H
C J H
# J% H
:H
6 BB0 $
,&3C J H BB0 $
)DI C" SJ GP
0 C $ J I C" H
C" WWH
C0 C) J H
Q
P
C J 4H BB : C
# J % ,I H BB
Q
:H
46
8& 8&]# J %H BB" >%<<A 6+ D + G
# J % ,I H
C J H
:H
) 6
:H
QBB 0 $D C G
44
QBB
8& 8 J H
C8 /J H
Q
C 8 /J H
BB C "J 8 +H
%" WJ +H
% 0C " J H
%! C " C) J H
)DC 8%*#G C 8%*# J H
C 8%*# J H
C 8% /J H BB ")
QBB CC CCDD "> C" GGC 8% "D G
BB C "J 8 +H
'" WJ +H
4
' 0C " J H
'! C " C) J H
)DC 8'*#G C 8'*# J H
C 8'*# J H
C 8' /J H BB ")
QBB CC CCDD "> C" GGC 8' "D G
0 $D # C GP
6
)D "C $ JJ LL
G# C J H
)D "C $ JJ LL GP
# C J H
# C WWH
C3 J H
Q
BB P
BB # C J H
BB # C WWH
BB C3 J H
BB # C C J D8 W+ GT 1'4 HBB
BB Q
:H
6
$ =J "C $ H
$ = J$ =T + H
# C J %H
:H
%6
$ ,J "C $ H
$ , J$ ,T + H
# C J H
C3 J H
41
# C C J D8 W+ GT 1'4 H BB
$ J H
$ J + I$ =H
$ WJ$ ,H
$ BJ H
" C$ J$ H
)D C C JJ L
.LG$ <J C H
)D C C JJ L
*LG$ WJ C H
0$ D$ AJ % G$ <J % H
0$ D$ @ G$ WJ % H
# C WWH
0C " C) J H
:H
'6
# C WWH
# C J H
:H
Q
C # /J H BB "
QBB CC CCDD "> C" GGC # "D G
C$ D GP
"C) J H
"J 8 : WH
" C #C J # C H
0$ D "C) JJ GP
)D # C JJ EE 8 A # C C EE C 3 JJ GP
BB )D # C JJ EE " C #C JJ # C GP
BB" C #C J # C H
# C J H
# 7-/J L $L
H
C3 J H
Q
)D # C A" C #C G "C) J H
)D 8 : A "GP
C3 J H
# C J H
Q
Q
QBB C$ D G
C$ D GP
"C) J H
"H
)D # C SJ GP
C D+GH
C3 J H
# C J H
Q
"J 8 : W H
" C #C J # C H
0$ D "C) JJ GP
)D # C JJ EE 8 A # C C EE C 3 JJ GP
BB )D # C JJ EE " C #C JJ # C GP
BB" C #C J # C H
# C J H
# 7-/J L $L
H
C3 J H
Q
)D # C A" C #C G "C) J H
)D 8 : A "GP
C3 J H
# C J H
C D GH
Q
Q
QBB C$ D G
C D $ > GP
BB $ %J $ > $ 'J )
BB J) 0 >J
)D$ JJ %GP
)D JJ GP
3% J H
3%7 J H
Q
)D JJ GP
3% J H
3%7 J H
Q
Q
)D$ JJ 'GP
)D JJ GP
3' J H
3'7 J H
Q
)D JJ GP
3' J H
3'7 J H
Q
Q
QBB C D $ > G
C- 8D GP
8FC7 )) C, J H
8FC7 )) C# J H
FC7 )) C, J H
FC7 )) C# J H
8FC7 )) C C- J H
FC J H
C- 8F # J +H BB" < $ $
C- F # J H BB" 4J $ $
- 8 -8F *, J H BB " 0$ ) $)
- 8 - F *, J H BB " 0$ $
BB- 3* 7 -3 J H
- 3* - 8* J H BB - 8
- 8 -8F* J H BB - 8 > 8F "
C- 8F /J H
C- F /J H
C- 8F *J H BB 8F "
C- F *J H BB F "
C- 8F # J H BB" < $ $
C- F # J 4H BB" 4J $ $
- 8 -8F *, J H BB " 0$ ) $)
- 8 - F *, J H BB " 0$ $
- 3* - 8* J H BB - 8
- 8 -8F* J H BB - 8 > 8F "
C- 8F /J H
C- F /J H
C- 8F *J H BB 8F "
C- F *J H BB F "
QBB C- 8D G
C # D GP
BI
) $ #"
&]> 3 > 3 # 8 ) $ 3 3
31 3
: J
:"J
IB
# C J H
# C J H
$ J H
$ =J H
$ ,J H
# C C J H
# C J H
# C" C J H
BB "C$ C" J H
C # *J H
# 8 8 #* J H
# 7-/J H BB # ))
# & J H BB # )
# 8 8 # (J H
C 3 J H BB $ $ # 0)
BB # & &]*J H
BB # & &]# J H
BB # & * J H
# 8 8 # * J H BB ##
QBB C#
#C D GP
C3 J H
"C J H
"C C "J H
"C$ C" J H
"C$ N OJ L
$LH
"C N OJ # 8/H
8 C$ N OJ 8 : :H
BB # C J H
BBC 3 J H
) DHHGP
BB )D # C JJ EE 8 : A # C C EE C 3 JJ GP
)D # C JJ EE 8 A # C C EE C 3 JJ GP
BBC # DGH
"C J # C H
# C J H
# 7-/J L $L
H
C3 J H
)D # 8 8 # ( JJ GP
# C WWH
Q
QBB)
QBB # C
#C D GP
"C$ C" J H
"C$ N OJ L$L
H
8 C$ N OJ 8 : :H
:C J H
C3 J H
) DHHGP
BB )D # C JJ EE 8 : A # C C EE C 3 JJ GP
)D # C JJ EE 8 A # C C EE C 3 JJ GP
BB # 8 8 #* J H
# C J H
# 7-/J L
$LH
C3 J H
)D # 8 8 # ( JJ GP
# C WWH
Q
QBB)
QBB # C
C#. D GP
#8& J H
C#8* J H BB
C#8 # J H BB" > ))
C#8&]# J H BB" > ) #. ); > <<A#. : I8 D'B/ G
C#8 3 J H BB) <
#8#* J H BB "
#. & J H
C# 3 J H BB "
C# 3 J H BB "
'
C# 3%J H BB "
C# 3'J H BB "
C#* =J H BB #. = $
C#* =J H BB #. = $ ,*/8 8
C#* %= J H BB #. %= $
C#* '= J H BB #. '= $ 2=8 8
#. & J H
38& J H
38& J H
/,8 & J H
/,87& J H
(3& J H
C# (3 = J H BB B " #.
C# (3 = J H BB B " #.
C# (3%= J H BB B " #.
C# (3'= J H BB B " #.
#3&'J H BB
#3&%J H BB
#3& J H BB %
#3& J H BB '
Q
C D GP
8 J 5////H
8 7 J 5////H
8 & J 5////H
8 3 J 5////H
8 *J 5////H
8 /J 5////H
8 2 J 5////H
C8 3 J H BB -8#-8
C8 3 J H BB -8#-8
C8 3 J H BB -8#-8%
C8 & %J H BB -8#-8'
C8 & 'J H BB -8#-8+
C8 3 J H BB -8#-8
C8 3 J H BB -8#-84
C8 *4J H BB#.
C8 *+J H BB#.
C8 *%J H BB#. %
C8 * J H BB#. '
C8 21J H BB3
C8 2 J H BB3 7
C8 2 J H BB3
C8 24J H BB3 7
C8 &%J H BB3%
C8 2 J H BB3%7
C8 / J H BB3'
C8 2 J H BB3'7
C8 3 +J H BB 8 D- 7G
+
C8 31J H BB
C8 3 J H BB
Q
C 85D GP
BB )DK G C 8'*# J H BB
BB C 8'*# J H BB "
BB )DK G C 8%*# J H BB
BB C 8%*# J H BB "
)DK%G C 8 *# J H BB
C 8 *# J H BB "
)DK'G C 8 *# J H BB
C 8 *# J H BB "
C 8 #J H BB ""
C 8 #J H
C 8% # J H
C 8' # J H
C 8 /J H BB ")
C 8 /J H
C 8% /J H
C 8' /J H
C 8 *J H BB "
C 8 *J H
C 8% *J H
C 8' *J H
C 3 #J H
BBC # *J H BB # "
BBC # # J 4H
QBB C 85
C +D GP
BB) "
8+& J H BB :> <
8+& 8&]# J H BB" > <<A 6'D 4 G
8+& 8 J H BB +
BB C8+ /J H
BB C8+ *J H
Q
C: " D GP
: C) J H
: C C) J H
0: J H
C 3 *J H
C 3 J H
BB " " " 3#&/2@ +6A
C#&/2 J H
C#&/2 J H
C#&/2%J H
C#&/2'J H
C#&/2+J H
C#&/2 J H
C#&/24J H
C#&/2 J H
C#&/21J H
C#&/2 J H
C#&/2 J H
C#&/2 J H
BB ) $ 5" " 3& @ +6%A
C(&/2 J H
BB $ : $ 0 $" : 3& %@+6A
C 3& J H
BB3 $ 0 B= $ 0 3& @16A 3#&/2@ +6A
3& &=# J H
BB3 $ 0 " 0 3& @%A 3& ,@ +6A
C J H
C& , J H
C& , J H
C& ,%J H
C& ,'J H
C& ,+J H
C& , J H
C& ,4J H
C& , J H
C& ,1J H
C& , J H
C& , J H
C& , J H
BB3 $ 0 " 0 B= $ 3&= @ +6A
QBB C: " D G
BI
)J
)%J
)J
0
" J )'
%J )
'J )
+J )
4
J )+
1J ) J
J )4J
J )
J )1J %
IB
C D C GP
H
) D J H @+I C H WWGH
J H
BI C H
C J8 W C I 1H
)D C AJ 1' G C <J 1' H
)D C @ G C J H
0$ D C @8 GHBB ) C $ 8 >0 ) 8
0$ D8 @ C GHIB
Q
C D C GP
H
)DJ H @ C H WWG C D GH
BI C H
C J 8 : :W C H
)D C AJ G C <J H
)D C @ G C J H
0$ D C @ 8 : : GH
0$ D C A 8 : : GHIB
Q
CD C GP
"H
"J 8 : W C H
0$ D 8 : @ "GH
Q
,&3C 8 7*D GP
C #, J #,H
#, J 4H
,&3C* J H
0$ D,&3C* SJ GH
C D'GH
,&3C* J H
0$ D,&3C* SJ GH
#, J C #,H
Q
C C D C GP
,&3C J D C >GH
,&3C J D C >GH
,&3C J D C >GH
,&3C%J D C >
%GH
Q
C0 D $ G
P
BB,&3C J H
BB# 87 J AA 'H
,&3C%J D>4GH
,&3C J D>GH
,&3C J D>+GH
,&3C J D>'GH
BIC 7 %J D>4GH
C7 J D>GH
C7 J D>
+GH
C7 J D>
'GHIB
,&3C 8 7*DGH
BB# 87 J H
,&3C%J D>%GH
,&3C J D>GH
,&3C J D>GH
,&3C J D>GH
BIC 7 %J D>%GH
C7 J D>GH
C7 J D>GH
C7 J D>GHIB
,&3C 8 7*DGH
C D' GH
BI
I & $ $ ,&3
IB
C D G
P
,&3C J H
C0 D 5 GH
C D GH
Q
BI0 )$ $ ,&3 IB
C" D $ IG
P
,&3C J H BB 0 $
0$ DI G
C0 DI WWGH
Q
BI
I2 $ " ) "
IB
C D $ " G
1
P
,&3C J H
C0 D 5 W" GH
Q
C D G
P
BB "H
,&3C J H BB 0
C D + GH
C C D 5 GH
,&3C 8 7*DGH
C D' GH
,&3C 8 7*DGH
C C D 5&GH
,&3C 8 7*DGH
C D GH
C C D 5 GH
,&3C 8 7*DGH
C C D 5 GH
,&3C 8 7*DGH
C D +GH
BB ! $ 8
C J H
C0 C) J H
C0 C J H
8& J H BB :> <
8& 8&]# J H BB" > <<A 6 D %% G
8& 8 J H BB )) +
# J% H
C8 # J 4H BB "" J
C8 /J H BB ")
C8 *J H BB "
Q
C$ D GP
BB-#3 8*,&3 =* 3 2
C DGH
C C J D) C WD G) C B GH
C C J D) C WD G) C B GH
7C C J D C W D G C B GH
7C C J D C W D G C B GH
C C IJ # B H
C C IJ # B H
7C C IJ # B H
7C C IJ # B H
)D JJ GP
)D A G 4H
1H
Q
P
J D > GH
IJ < ID% BD I# GGH
0$ D AJ % G <J % H
0$ D @ G WJ % H
H
Q
QBB) C$ D 0 " " > 0 " " 7G
C H
C C H
C H
BB C H
BB C H
C C0 $H
H
C C0 $ J # I D C C GI % 4''1,B H
BI)D C JJ GP
)D C A G 1H
4H
QIB
BB P
J I D C I C C0 $> C I 1+ GB# H
0$ D @ G WJ % H
0$ D AJ % G <J % H
H
BBQ
QBB) C$ D 0 " " > 0 " " 7G
C C J D) C WD G) C B GH
C C J D) C WD G) C B GH
7C C J D C WD G C B GH
7C C J D C WD G C B GH
C C IJ I# B% H
C C IJ I# B% H
7C C IJ I# B% H
7C C IJ I# B% H
J 7C C < C C H
J 7C C < C C H
J ; D D B GI D B GW DC C GI D7C C GI D B GI D B GGH
1
)D AJ G "C J I D GH
"C J I D GH
"C IJ % 4,I ,H
"C H
N O $ >R >
R- ) $ > 114>
+
N%O *3 3 : >^ , : ) ($ R
# / && ) ($ >* " >/ > 11+>` < '>
"" 11< '
N O 7K $ >^. ) 6 # ) $ # : _> $
2 ">7 $
>
_& )$ & >( > 141
4<