<%BANNER%>

Storing and Predicting Dynamic Attributes in a World Model Knowledge Store

Permanent Link: http://ufdc.ufl.edu/UFE0020089/00001

Material Information

Title: Storing and Predicting Dynamic Attributes in a World Model Knowledge Store
Physical Description: Mixed Material
Copyright Date: 2008

Record Information

Source Institution: University of Florida
Holding Location: University of Florida
Rights Management: All rights reserved by the source institution and holding location.
System ID: UFE0020089:00001

Permanent Link: http://ufdc.ufl.edu/UFE0020089/00001

Material Information

Title: Storing and Predicting Dynamic Attributes in a World Model Knowledge Store
Physical Description: Mixed Material
Copyright Date: 2008

Record Information

Source Institution: University of Florida
Holding Location: University of Florida
Rights Management: All rights reserved by the source institution and holding location.
System ID: UFE0020089:00001


This item has the following downloads:


Full Text





STORING AND PREDICTING DYNAMIC ATTRIBUTES IN A WORLD MODEL
KNOWLEDGE STORE
























By

DANIEL ADAM KENT


A DISSERTATION PRESENTED TO THE GRADUATE SCHOOL
OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT
OF THE REQUIREMENTS FOR THE DEGREE OF
DOCTOR OF PHILOSOPHY

UNIVERSITY OF FLORIDA

2007

































2007 Daniel Adam Kent




























To my parents, Iris & Bill.
For believing in me when I didn't even believe in myself.


"All our dreams can come true... if we have the courage to pursue them.
Walt Disney









ACKNOWLEDGMENTS

First I would like to thank my family for their unending support of every endeavor I've

ever dreamt up. A long time ago I was told to always just do as well as I could; look where it got

me today. I would like to extend unending thanks to my Mom, Dad, Brandi, Uncle Steve and

especially my hero, Grandpa.

I would also like to sincerely thank my advisor and friend, Dr. Carl Crane, for his

incredible support of me and my research. From Gainesville, FL to Barstow, CA, he has always

found a way to make my journey more enjoyable. I would also like to thank Dave Armstrong for

his endless days of support for me and everything done at CIMAR. Through an Intelligent

Ground Vehicle Competition and two DARPA Grand Challenges, I learned that Dave may not

always care about aesthetics, but when he does, I'm sure my phone will ring. I would also like to

thank the other members of my graduate committee, Dr. Antonio Arroyo, Dr. Warren Dixon, Dr.

Eric Schwartz and Dr. Jeff Wit. Their support, critiques and many insights were very helpful to

my research.

CIMAR's autonomous ground vehicle work would not be possible without the support of

the robotics research group at the Air Force Research Labs at Tyndall Air Force Base, Florida.

Special thanks to Walt Waltz, Al Nease and everyone at AFRL for their support of CIMAR.

I would be amiss if I didn't thank the support of the members of the JAUS Working

Group, especially Carl Evans and the World Modeling Task Group, for their support of my

research. Their many ideas, comments and questions have been invaluable to my research

endeavors. I would also like to thank the members of the Experimentation Task Group for the

valuable experiences of the many experiments I've been able to participate in over the years.

Lastly, but beyond least, I would like to extend a thank you to the entire CIMAR family,

past and present. They have made this journey all the more enjoyable. We may have gotten lost









in the desert along the way, run into a few trees and hit more than our fair share of walls, but we

did it together. I would like to especially thank Tom Galluzzo and Bob Touchton for their daily

support of my work throughout five long years. I would also like to specifically thank Roberto

Montane for everything he's done. Since day one, he's been there for whatever I needed and

whenever I needed it. I could not have finished any of this without his help.









TABLE OF CONTENTS

page

A CK N O W LED G M EN T S ................................................................. ........... ............. .....

L IST O F T A B L E S ...................................................................................................... . 9

L IST O F FIG U R E S .................................... .. .................. ................... ............... 11

ABSTRAC T ............................ ......................... 13

CHAPTER

1 INTRODUCTION ................. .............. ................................... ..... 15

Motivation and Problem Statement ............................ .................. ............... 15
P proposed Solution ................................................................................................................... 16
R research E nvironm ent.......... ...................................................................... ......... .......17

2 BACKGROUND AND LITERATURE REVIEW ..................................... .................20

Dynam ic Environm ent Concerns........................................................................... 20
L o c a liz a tio n ............................................................................................................... 2 1
Motion Planning ......................................................................... 22
Decision M making and Behavior Control ................................................. ............... 22
M option Prediction and M odeling........................................................................ 24
D database Technologies ..................................... .. ........... .. ............26
Spatial D database Technologies.............................................. .............................. 27
M moving O objects D databases ...................................................................... .............. 27
JAU S and the W orld M odel M message Set ........................................ ......................... 29

3 TH EORETICAL APPROA CH ........................................... .................. ............... 34

Spatiotem poral W orld M odel Architecture ........................................ ........................ 34
R request Object Id Block M essage...................... .... .............................. ............... 35
Assign Object Id Block M message ................................................... ............... 36
C create O bject(s) M message ............................................................................... ........ 36
Confirm Creation M essage...........................................................................37
M odify O bject(s) M message ................................................................ ........ ................ 38
C onfirm M odification M essage.................................................................. ............... 38
D elete Object(s) M essage........................................................................... 39
Confirm D election M essage...........................................................................39
Q uery O bject(s) M message ................................................................. ........ .................40
R report O bject(s) M message ....................................................................... ..................40
Query Object(s) Future State M essage................................ ......................... ........ 41
Report Object(s) Future State M essage................................ ......................... ....... 42
Query Geospatial Bounds Message.......................... .............................42


6









Report Geospatial Bounds Message.......................... ........... ............... 43
Query Tem poral Bounds M message ............................................................................ 43
Report Tem poral Bounds M message ............................................ ......................... 44
The Statistics-Based Nth Order Polynomial Predictor ............ ...................................44

4 IMPLEMENTATION DETAILS .......... ........ ................. ............... 51

JAUS World Model Vector Knowledge Store Message Set...............................................51
D database Selection and D design ................................................................ ............... 53
G generic P redictor Interface ......... ...................................................................................... 55
Polynomial Predictor Implementation..................... ....... ............................. 56
Dynamic World Model Vector Knowledge Store ...................................... ............... 58

5 TE STIN G A N D R E SU L T S.......................................................................... ....................69

Laser Tracking Sm art Sensor ................................................................. ............... 69
T est P procedure and Plans ... ...... .......... ...... ................................ .. ......... .............. 71
Test Scenario 1: Tracked Object Using Polynomial Predictor from Stationary
Platform ............ ............. ......... ............ .............. ........... 72
Test Scenario 2: Tracked Object Using Polynomial Predictor from Moving
P platform ..... .... ................... ..... ... ....... ............... ................... ..... 72
Test Scenario 3: Tracked Object Using Linear Predictor from Moving Platform ..........72
Test Scenario 4: Velocity Attribute Using Polynomial Predictor .................................73
Test Scenario 5: Heading Attribute Using Polynomial Predictor .............................. 73
Test R results .......... ...................................... ............................................ 73
Test Scenario 1 Results..............................................73
T est Scenario 2 R results .................................................. .............................. 74
T est Scenario 3 R results .................................................. .............................. 75
T est Scenario 4 R results .................................................. .............................. 77
T est Scenario 5 R results .................................................. .............................. 77
T testing Sum m ary ................................................................................ 78

6 FUTURE WORK AND CONCLUSIONS................................................................ 119

F u tu re W o rk .................................................................................................................... 1 1 9
C o n clu sio n ................... ...................1...................2.........2

APPENDIX

A JAUS WORLD MODEL MESSAGE SET .................................................................... 124

B SAM PLE CODE EXCERPTS............... .................................................. ............... 154

JAUS Vector Object .............. .......................................................154
G generic Predictor ..................155................................................
Generic Predictor Structure ........................................................... ................. 155
Generic Predictor ToBuffer M ethod ........................................ ........................ 156
Polynom ial Predictor ToBuffer M ethod ............................ ............ ..... ............. 156


7









P process JA U S M messages ............................................................................ ........... .......... 157
C create O objects M message ....................................................................... ...................157
M odify O object M message ............................... .................................... .......................159
Q uery Future State M essage............ ................................. .................. ............... 167
Prediction Algorithm Solver Functions ................................................... ................... 174
Linear Predictor ............. ..... ....... .............................. 174
Polynomial Predictor ......... .. .......................... ............ ........ ................ 175

C NUM ERIC EXAM PLE .................................................................................. 182

L IST O F R E FE R E N C E S ............................................................................. ..........................187

B IO G R A PH IC A L SK E T C H ......................................................................... .. ...................... 191









































8









LIST OF TABLES

Table page

2-1 Common Spatial Database Management Systems (DBMS)........................... ........33

4-1 JA U S W M V K S M message Set.................................................................. .....................64

4-2 Object table data fields, PostgreSQL type and description .................. ............... 65

4-3 Feature Class table data fields, PostgreSQL types, and description................................66

4-4 Polynomial Predictor configuration parameters ..................................... .................66

5-1 Scenario 1 Test Plan..................... .. .................... ............ 81

5-2 Scenario 2 Test Plan..................... .. .................... ............ 82

5-3 Scenario 3 Test Plan .............. ....................................... ............... 83

5-4 Scenario 4 Test Plan............. ........ .. .................... ............ 84

5-5 Scenario 5 Test Plan..................... .. .................... ............ 85

5-6 Error analysis of test scenario 2 .............. .............................. .......... .......................... .. 86

5-7 E rror analysis of test scenario 3 .........................................................................................86

5-8 E rror analysis of test scenario 4 .........................................................................................87

5-9 E rror analysis of test scenario 5 .........................................................................................87

A JA U S V sector Object M apping ........... ................. ................. ................. ............... 131

A-2 Code F021h: Set Vector Knowledge Store Feature Class Metadata .............................141

A-3 Code F023h: Request Vector Knowledge Store Object ID Block...............................141

A-4 Code F120h: Create Vector Knowledge Store Object(s).............................................. 142

A-5 Code F122h: Modify Vector Knowledge Store Object(s)......................... ............143

A-6 Code F123h: Delete Vector Knowledge Store Object(s)...............................................143

A-7 Code F130h: Query Vector Knowledge Store Object(s) ...............................................144

A-8 Code F13 lh: Query Vector Knowledge Store Feature Class Metadata .......................147

A-9 Code F132h: Query Vector Knowledge Store Geospatial Bounds..............................147









A-10 Code F133h: Query Vector Knowledge Store Temporal Bounds .................................147

A-11 Code F134h: Query Vector Knowledge Store Object(s) Future State............................148

A-12 Code F320h: Assign Vector Knowledge Store Object ID Block .................................. 149

A-13 Code F321h: Report Vector Knowledge Store Object(s) Creation ........... ..................149

A-14 Code F322h: Report Vector Knowledge Store Object(s) Modification .........................150

A-15 Code F323h: Report Vector Knowledge Store Object(s) Deletion ........... ..................150

A-16 Code F330h: Report Vector Knowledge Store Object(s) ................................................151

A-17 Code F33 h: Report Vector Knowledge Store Object(s)................................................152

A-18 Code F332h: Report Vector Knowledge Store Geospatial Bounds..............................152

A-19 Code F333h: Report Vector Knowledge Store Temporal Bounds ...............................153

A-20 Code F334h: Report Vector Knowledge Store Object(s) Future State............................153

C- Dataset used in num eric example ............................................................................. 185

C-2 Statistical Values from num eric example ............................................. ............... 186









LIST OF FIGURES


Figure page

1-1 The NaviGATOR....................................................... ............ ............... 19

2-1 Spatial operators Touches, Intersect and Within .................................... ............... 32

2-2 JA U S System T opology ........................................................................... ....................32

3-1 Overview of the input and output messages associated with the Spatiotemporal
W world M odel A architecture ......................................... .. .. .............................. ................49

3-2 W indow Size and W indow Count...................... .... ................................ ............... 50

4-1 Entity-Relationship Diagram of WMVKS Database ..................................................67

4-2 World Model Vector Knowledge Store Implementation Diagram................................68

5-1 L aser tracking algorithm ......... ................. ............................................ ........................79

5-2 L aser tracking algorithm ......... ................. ............................................ ........................79

5-3 The TailGator using the tracking algorithm to follow a lawn tractor.............................80

5-4 Laser Tracking Smart Sensor output ......... ........ ........ ....................... 80

5-5 Laser Tracking Smart Sensor setup for collection of test data .............. ................81

5-6 Easting vs. Nothing Plot for Test Scenario 1....................................... ............... 88

5-7 Easting and Northing vs. Time Plot for Test Scenario 1 ............................................. 89

5-8 Easting vs. Time Plot with Prediction Values for Test Scenario 1 ....................................90

5-9 Northing vs. Time with Prediction Values for Test Scenario 1 ......................................91

5-10 Easting vs. Northing with Prediction Values for Test Scenario 1 .....................................92

5-11 Easting vs. N orthing for Test Scenario 2 ........................................ ........ ............... 93

5-12 Easting and Northing vs. Time plot for Test Scenario 2........................................... 94

5-13 Easting vs. Tim e Plot for Test Scenario 2....................................... ....................... 95

5-14 Easting vs. Time with prediction values for test scenario 2. Close up of time period
4 4 -64 second d s ........................................................ ................... 9 6









5-15 Easting vs. Time with prediction values for test scenario 2. Close up of time period
12 0 -14 0 seco n d s..................................................... ................ 9 7

5-16 Easting vs. Time with prediction values for test scenario 2. Close up of time period
16 8 -18 8 seco n d s..................................................................... 9 8

5-17 Northing vs. Time with prediction values for Test Scenario 2........................................99

5-18 Northing vs. Time with prediction values for Test Scenario 2. Close up of time
period 30-90 seconds .......................... ...... ..................... .... ......... ......... 100

5-19 Northing vs. Time with prediction values for Test Scenario 2. Close up of time
period 125-155 seconds .............................................. .. ............. ....... 101

5-22 Easting vs. Time with prediction values for test scenario 3. Close up plots of critical
sections are provided in figures 5-23, 5-24 and 5-25 as shown.................................... 104

5-23 Easting vs. Time with prediction values for test scenario 3. Close up of time period
4 4 -6 4 seco n d s...................................................................... 10 5

5-24 Easting vs. Time with prediction values for test scenario 3. Close up of time period
12 0 -14 0 seco n d s.................................................................... 10 6

5-25 Easting vs. Time with prediction values for test scenario 3. Close up of time period
16 8 -18 8 seco n d s.................................................................... 10 7

5-26 Northing vs. Time with predicted values for test scenario 3. Close ups of highlighted
areas are provided in figures 5-27 and 5-28 as indicated.....................................108

5-27 Northing vs. Time with predicted values for test scenario 3. Close up of time period
3 2 -9 5 seco n d s...................................................................... 10 9

5-28 Northing vs. Time with predicted values for test scenario 3. Close up of time period
12 5 -15 5 seco n d s.................................................................... 1 10

5-30 Northing Error vs. Tim e for test scenario 3 .................................................................. 112

5-31 Velocity vs. Tim e plot for test scenario 4......................................................... ......... 113

5-32 Velocity vs. Time plot with prediction values for test scenario 4 .................................114

5-33 Error vs Tim e for test scenario 4 ...................................................................... 115

5-34 Heading vs. Tim e plot for test scenario 5 ................................... .......... ...... .. ....... 116

5-35 Heading vs. Time plot with prediction values for test scenario 5..................................117

5-36 Error vs. Tim e plot for test scenario 5 ...................................................... ............ 118









Abstract of Dissertation Presented to the Graduate School
of the University of Florida in Partial Fulfillment of the
Requirements for the Degree of Doctor of Philosophy

STORING AND PREDICTING DYNAMIC ATTRIBUTES IN A WORLD MODEL
KNOWLEDGE STORE

By

Daniel Adam Kent

May 2007

Chair: Carl D. Crane, III
Major: Mechanical Engineering

The world is an ever-changing, dynamic environment. If robots and other intelligent

systems are to find ways to cope with and reason about the world adequately, they must be

capable of understanding these dynamic features. This work examines the need for a centralized

knowledge store capable of storing information that is both spatial and temporal in nature. The

interface of a new and unique architecture to handle the exchange of dynamic information and

questions about the future state of that information is presented. A novel algorithm, called the

Statistics-Based Nh Order Polynomial Predictor (SNOPP), is also developed which allows state

prediction of almost any time-variant data.

Each of these contributions is demonstrated through the use of a reference implementation.

The author's reference implementation is done using the Joint Architecture for Unmanned

Systems (JAUS), a widely accepted, open robotics architecture developed for use in defense

programs.

The architecture and predictor are tested using a real-world sensor algorithm deployed on

an autonomous vehicle at the University of Florida's Center for Intelligent Machines and

Robotics (CIMAR). Findings and results of these tests are given which examine the behavior of









the architecture and novel prediction algorithm in a variety of scenarios involving different time-

variant data types.

The Dynamic World Model architecture and the SNOPP algorithm provide significant

contributions to the future of robotics. Many robotic problems, including decision making, health

monitoring and path planning, stand to benefit from better understanding of the dynamic nature

of both the robot and its environment. This dissertation provides a framework in which many of

these and other problems may be addressed and summarily solved by future robotic engineers.









CHAPTER 1
INTRODUCTION

The world of mobile, intelligent robotics is expanding rapidly. As the shape, size, function

and capabilities of these systems change, so does the complexity. One of the more complex

functions to be addressed in recent years is that of modeling and understanding more fully the

environment in which the robot operates. This dissertation documents the author's work in that

area, including background literature material, theoretical details and research results from a

reference implementation of the system developed. The focus of the author's work is on

modeling dynamic information and predicting the future state of that information.

Two primary contributions are put forth in this document. Firstly, a framework in which a

large variety of problems can be addressed and solved is presented, both theoretically and in

detail. Second, in the effort to implement and test that framework, a novel algorithm named the

Statistics-Based Nh Order Polynomial Predictor (SNOPP) is developed with which dynamic

attribute prediction is possible; the results of which are presented and discussed.

Motivation and Problem Statement

As robots move out of the lab and into the real world they are forced more and more often

to deal with the constraints of that world. One of these constraints which have not historically

been dealt with is that the nature of the real world is to exhibit many dynamic characteristics.

Historically most mobile robot systems have assumed the world to be relatively static and

constant. If a dynamic object was present, it would be treated as a static object with respect to

any planning or behavioral efforts.

In more recent work, development has begun on systems which address dynamic elements

of the world. Particular effort has been paid to the problem of planning motion within an

environment which comprises a combination of static and dynamic elements. Research has also









been conducted in using prediction and estimation techniques in the area of autonomous

behavior generation and mission planning.

A weakness of each of these approaches is that the data is segregated in such a way that the

dynamic information can only be used to accomplish a specific task. The author's work was

focused on developing a framework within which any of these and many other tasks can be

completed both separately and cooperatively by an autonomous system.

Proposed Solution

To accomplish this task, the author developed a knowledge store capable of storing and

querying dynamic information. The knowledge store is responsible for the storage, evaluation

and prediction of the future state for any defined dynamic information. This framework supports

a variety of possible modeling or prediction algorithms with which a particular item can be

modeled. To accomplish this, the sensing or reasoning portion of the robot which seeks to store

the information will specify the methodology which the knowledge store should use. The

following is an overview of the steps involved in the creation and use of a series of dynamic

information. For the sake of this example one should assume the dynamic information is the

position of some moving object.

* A sensing element on the robot determines the current position of some moving object.
How this is information is determined is not significant to the knowledge store's operation.

* The sensing element creates within the knowledge store the observed object and designates
it as "dynamic." It also designates the prediction/estimation algorithm (of the ones
possible) which the knowledge store should use in modeling the new object.

* As new position information becomes available, the sensing element updates the
knowledge store with the latest information.

* As planning, decision making, or other sensing elements seek to complete their specialized
goals, they query the knowledge store for the current or future position of the object. The
knowledge store uses the designated estimation algorithm to produce future position
estimates.









* The sense and planning elements continue to update and use the information until the
object is no longer sensed or of concern to any planning element.


It was beyond the scope of the work presented herein to address evaluation within the

knowledge store of the correct selection or appropriateness of the estimation algorithm applied.

Instead it is assumed that the sensing element which has identified the information of interest

knows the best algorithm which should be applied. For this work, the prediction algorithms

available in the knowledge store were defined apriori and agreed upon by the sensor and

knowledge store developers.

Research Environment

The research documented herein was done at the Center for Intelligent Machines and

Robotics (CIMAR) at the University of Florida. CIMAR has been conducting research in

autonomous vehicles and robotics for over 15 years and has seen a large amount of success as

competitors in the Defense Advanced Research Projects Agency (DARPA) Grand Challenge in

both 2004 and 2005 (Figure 1-1 is the NaviGATOR, CIMAR's 2005 entry in the DARPA Grand

Challenge). Much of this work is directly related to CIMAR's involvement and support of the

robotic activities of the Air Force Research Lab (Tyndall Air Force Base, Panama City, FL).

CIMAR has also actively been involved with the Joint Architecture for Unmanned Systems

(JAUS) Working Group during the time of author's work. This architecture has provided a solid

and reliable foundation on which new ideas and concepts can quickly be implemented and tested

in the field.

The NaviGATOR platform is now in use as the primary autonomous test bed at CIMAR.

It's a robust and proven platform which includes a variety of sensor systems. It also provides

room for ample computing hardware nodes which allow for the rapid development and

deployment of new technologies. The system is completely JAUS based and supports a number









of essential JAUS components such as the Global Position Sensor and the Velocity State Sensor

which are critical to this research ([1] for more details on these components and JAUS in

general). The NaviGATOR also supports several pre-installed LADAR systems which were used

in support of this research. The modularity of the JAUS architecture allows researchers at

CIMAR to add and remove non-critical components from the system at will.

CIMAR also has recently developed a vast library of software to support its recent JAUS

activities both within the working group's activities and independent research. This software

library, written in C, decreases the development time of reliable and efficient JAUS components.

The work done in this research made use of these libraries to evaluate a reference

implementation.




































Figure 1-1 The NaviGATOR, CIMAR's entry in the 2005 DARPA Grand Challenge.









CHAPTER 2
BACKGROUND AND LITERATURE REVIEW

Work done by the author has laid the foundation for work which can be done in many new

and exciting areas within the realm of autonomous and unmanned systems. The dynamic

environment concerns section outlines some of the fields in which dynamic objects and attributes

are of interest to robotic algorithms. The motion prediction and modeling section provides an

overview of some of the many predictive algorithms in use by robotic systems. Lastly, the

database technologies section aims to address the methodologies by which this dynamic and

spatial information may be stored and made available to a variety of modules simultaneously. A

significant contribution of the author's work is that it forms a foundation for future work within

the Joint Architecture for Unmanned Systems (JAUS), a standardized robotics architecture. The

JAUS and the World Modeling Message Set section examines the structure of the architecture

and the current set of world modeling functionality available in JAUS.

Dynamic Environment Concerns

Mobile robots have been slowly moving out of research labs and into the real world since

the days of Shakey [2]. In recent years, many of the traditional problems which faced so-called

field robotics have been solved with increasing reliability. These include many of the actions

along the "sense-plan-act" cycle that most robotic systems demonstrate. However, most of this

success has been seen only in the realm of static environments. The real world, and the world

researchers ultimately want their robots to operate in, is dynamic. The real world is abundantly

full of dynamic parameters and attributes with which robots need to understand and cope. For

this reason, in order to sufficiently operate in this real world, the "sense" and "plan" segments of

the cycle must be able to reason about and handle these dynamic parameters.









The following are three major areas of interest in which the incorporation of dynamic

objects and predictive estimation theories have been applied. In each, the dynamic knowledge

has shown an improvement in the system's ability to address its individual concern.

Localization

A primary challenge of any autonomous or semi-autonomous robot is to determine its

location within the world. In the realm of outdoor robotics, this is often done through the use of

some form of global positioning system (GPS) combined with an inertial navigation system

(INS). However, GPS typically does not work for autonomous robots deployed in indoor

environments. A popularly accepted approach to the problem of locating a robot within its

environment is that of Simultaneous Localization and Mapping (SLAM) which was first outlined

in [3]. Since then SLAM has been extensively used in a variety of environments both 2D and

3D. The primary goal of a SLAM algorithm is to provide an estimate of the robot's position

through feature extraction and mapping. Most of this work is based on probabilistic methods

which determine a maximum likelihood for the vehicle's position and orientation.

However, much of the research done has operated under the assumption that the robot's

environment is static [4]. In [4] is it suggested that if the dynamic objects can be filtered out, the

results of the SLAM algorithm will be better. It is also pointed out that while the SLAM

algorithms are interested in removing the dynamic obstacles, the detection and tracking of

moving objects (DATMO) algorithms are especially interested in exactly the data that is to be

filtered. Therefore SLAM with DATMO is presented with favorable results [4].

Other researchers have worked on various other methods to improve SLAM results

through careful consideration of dynamic objects. The work has often been applied to problems

dealing with the tracking of people [5, 6]. A thorough overview of many of these approaches is

presented in [7]. Many of these approaches make use of various probabilistic tracking and









estimation techniques to intelligently estimate which sensor reading should be filtered when

considering dynamic objects.

Motion Planning

Planning the future state of an autonomous agent is the essence of the mobile robot

problem. While the future state can consist of a number of things, many times the focus on a

mobile robot is to plan its behavior, or path, within the environment. In the case of a static or

presumed static environment, this problem has to some extent been solved [8]. The solutions to

these problems most often align themselves along two fronts, those that find an entire path

solution before starting motion, and those that react only to the current world state. So called

deliberative and reactive motion planners each have associated strengths and weaknesses (the

likes of which are outside the scope of this discussion), however most do not treat dynamic

objects in some prescribed fashion. Other work in the area of motion planning has focused on

iterative techniques such as D* [9], however these too do not take into account the fundamental

nature of dynamic objects. That is predicting and compensating for not only the position or

velocity, but the estimated position or velocity of the object at some future point in time.

The most recent work being done in motion planning is beginning to address this three

dimensional problem; that is X, Y and time. Initial work in this area concentrated on treating

objects as having constant velocity [10]. Later work is beginning to build beyond the constant

velocity assumption and addressing so-called Non-Linear Velocity Objects (NLVO) [11]. These

approaches and others extend many of the deliberative and iterative planning techniques

developed for static problems to allow compensation for moving objects [12-14].

Decision Making and Behavior Control

Motion planning is a significant part of the autonomous mobile robot's job. However,

higher level decision making and behavior generation services also face the challenges of a









dynamic and changing environment. Some robotics architectures, notably 4D/RCS [15], dictate

the inclusion of prediction and simulation capabilities at each layer of the architecture to

facilitate future state estimation.

This 4D/RCS architecture has seen use in a number of different autonomous systems. The

PRIDE (PRediction in Dynamic Environments) architecture is based on the 4D/RCS scheme and

has been developed specifically to address on-road autonomous driving [16]. PRIDE makes use

of a multi-resolution, hierarchical architecture to incorporate different prediction methodologies

at different levels of the framework. Results from simulation experiments using PRIDE have

shown that different predictive routines can be combined to successfully plan at varying time

horizons for situation assessment tasks [16, 17].

Similar on-road work has also been done with predictive behavior generation in the field of

driver assistance [18]. The work done therein concentrates on an architecture whereby the

motivations, goals, plans and probable paths of surrounding vehicles are used to generate

predicted situations. Situations are given levels of probability of occurring and all possible

situations are fused for decision making. This work also makes use of a database or knowledge

store as the fundamental storage and distribution of dynamic data to other modules within the

architecture.

While estimations and predictions of future states or events are of significant importance to

decisions about the actions of other mobile agents, it is also applicable to the study of the robot

itself. MENSA (Mission Effectiveness and Safety Assessment) is an architecture designed to

handle primarily health monitoring and contingency resolution [20]. MENSA aids a robot's

ability to reason about itself and arrive at decisions based on its current state, predicted states and

mission goals. MENSA is comprised of four modules sensor monitoring, mission assessment,









fault diagnosis, and capability assessment. Central to these modules is a shared knowledge store.

In the MENSA architecture, predicted sensor values are performed in the sensor monitoring

module.

Motion Prediction and Modeling

There exists a multitude of prediction and modeling algorithms in use for both robotic and

non-robotic systems. The following is a survey of various tracking and estimation techniques

presented in the literature which have been applied to robots. Many of these approaches rely on

some a priori knowledge of either the environment or the object being tracked, however some do

not.

In [21] a constant velocity model is used to estimate the target's motion in a tracking

problem. The constant velocity model uses a short history of the target's motion and extrapolates

velocity. To improve the performance of the system, the uncertainty in the direction of the

velocity is modeled as a Gaussian distribution. The heading estimate is further improved by

incorporating known world information (gaps) into the estimator. The work has shown that the

use of velocity estimation compared to similar work without consideration of the dynamics has

improved the performance of the tracking algorithm.

In [22] the problem of motion estimation is considered in a fixed environment. The

problem is broken into two stages, a learning phase and an estimation phase. In the learning

stage, data about the trajectories of real agents moving about the environment is captured. This

represents the training data set. The training data is clustered, yielding a series of possible

trajectories in the environment. The second phase is the motion estimation phase. In the motion

estimation phase, the likelihood that some observed, partial trajectory is part of one of the

trajectories previously learned is evaluated. The estimated motion is then the trained trajectory

which has the maximum likelihood. This particular approach depends heavily on the fact that









certain paths through a particular environment might be preferred over others. It also embeds an

assumption that the environmental constraints which influence these preferred paths tend to

remain constant.

In [23] the problem of motion prediction is applied to the RoboCup problem (where a team

of robots is challenged with playing soccer against an opposing team of robots). One problem

presented in particular is modeling the motion of the soccer ball. In order to predict the behavior

of the ball two different models are used. When the ball is rolling freely a neural network is used

to predict its motion. When the ball is not rolling freely its motion is estimated through the use of

a collision model between it and the robots. The combination of these models was shown to have

better results for the prediction of the ball's motion than previous work done using a Kalman

filter.

Prediction of the ball for RoboCup has also been studied in [24]. Here a grey prediction

algorithm is used. The grey predictor has the advantage of needing to know none of the internal

structure or characteristics of the system being observed. Therefore it is able to model and

predict the trajectory of the ball sufficiently. This work also implements a switching behavior to

the algorithm. Depending on how far the robot is from the ball, the prediction length is modified

to reflect the increased time it would take the robot to intercept the ball. Simulated results show

an improved performance in the system with the switching grey predictor.

In [25], an algorithm for the prediction of an object's position and orientation is presented

which makes use of an autoregressive (AR) model. The complete algorithm for position and

orientation estimation is presented in separate parts, first dealing with the translational motion

then the rotational. The results presented show good performance of the system in estimating

motion both with varying and uniform acceleration.









The prediction work done in [26] focuses primarily on estimating the motion of other

intelligent agents. Here an "Intelligent Prediction" algorithm is developed. This approach takes

into account the dynamic and kinematic characteristics observed along with some a priori

knowledge of the agent's goals and behaviors.

In [23] Kalman filtering techniques are presented to solve the problem of estimating the

position and orientation of moving obstacles. An advantage of the Kalman filtering approach is

that the estimator begins with the first step, whereas most other approaches require some

minimum data history to yield favorable estimates. Two Kalman filters are developed, one for

translational estimation and the other for rotational.

Work done in [27] focuses mainly on the use of predictive motion in building a motion

planner. However, it does outline a method for estimated motion based on a Polynomial Neural

Network (PNN). The PNN is seeded with the moving object's position at the current and

previous time steps and the output is the estimated position of the object at the next time step. As

in most neural networks, the performance of the system is very dependent on a large set of

training data.

Database Technologies

An important contribution of this work is to take the storage and prediction elements of

spatial information and co-locate them into one service on the mobile platform. Current database

systems, both object-relational and relational, can be extended to support spatial and temporal

capabilities (see Table 2-1 for more details). Recent advances in spatiotemporal and moving

objects databases provide a framework for the query and storage of objects that move spatially

within the environment.









Spatial Database Technologies

A spatial database is a relational or object-oriented database which has been enhanced to

support spatial data and perform spatial operators on that data (for a through technical discussion

of spatial databases and their operators see [28]). Spatial data is usually divided into two primary

categories, raster and vector. The focus of the work in this research is in the storage and

interpretation of vector representations. Vector data is typically divided into one of three types:

points, lines and polygons. In general, these objects are not restricted to 2D representations and

can include a mixture of planar and non-planar data. An important aspect of spatial database is

not only the storage of spatial data types, but the ability to perform logical operations on that

data. Typically these operations include at minimum relational operations between entities such

as touches (any point of both entities are equal), intersect (entities intersect such that there is a set

of collective points shared), or within (one entity completely encapsulated within the interior of

another). Figure 2-1 describes these operators.

An important feature of most commercial spatial databases is that of spatial indexes. A

spatial index makes use of the spatial relationships among data members to improve the

performance of queries and spatial operators [28]. Table 2-1 lists several commonly available

relational and object-relational database systems and the various spatial options available for

each. Several other factors are presented in Table 2-1 including 3D data support, raster data

support, compliance with the standard outlined by the OpenGIS Consortium (OGC) in [29] and

relative system costs.

Moving Objects Databases

Recent work in DBMSs has concentrated more on the moving object problem. In a Moving

Object Database (MOD), information about geometries that change over time are stored. The









MOD is an extension to the spatial database and the temporal database [30]. MODs are

comprised primarily of two distinct parts, the query language and the spatio-temporal data types.

Early work on MODs could not make use of DBMS systems due to limitations on indexing

and data types. Two significant efforts in the early development of MODs sought to overcome

these limitations, namely the Databases fOr MovINg Objects (DOMINO) project [31-33] which

implements the Moving Objects Spatio-Temporal (MOST) data model [34, 35]. The MOST data

model introduced the concept of a dynamic attribute. This is an attribute whose value changes

with respect to time without being explicitly updated [34]. These efforts sought to solve many of

the fundamental DBMS questions in dealing with moving objects. To simplify the problems,

these efforts made use of a number of assumptions [30].

Several of the assumptions hinder the technology's use in robotics. Paramount to these is

an assumption that the moving object will update the database with new information whenever

the object's position deviates by some threshold. Based on this assumption, uncertainty in the

object's position is based on knowing that it is at most "threshold" distance away from its last

known position. The MOST model also supports two methods to model the object's motion, first

through the use of a motion vector. This vector can be any function with respect to time that

describes the future motion of the attribute it describes. Higher-level information can also be

used. In the case of vehicles, it is more realistic to assume that the vehicle travels along some

road network. If the possible road network is known, then the motion of the vehicle can be

constrained to that network [30].

The significant work done to date in MODs concentrates on the storage, modeling and

querying of moving objects, including work on uncertainty analysis [36]. However, little to no

work has been done to include within the MOD the ability for the database to develop it own









model of the attribute and reason about its future. Instead a MOD relies on a close relationship

with the moving object itself to provide that information.

JAUS and the World Model Message Set

The Joint Architecture for Unmanned Systems (JAUS) is an effort to develop an upper

level design for the various interfaces in the realm of unmanned systems. The initiative started in

1998 when the Office of the Secretary of Defense charted what was then the Joint Architecture

for Unmanned Ground Vehicles Working Group (JAUGS WG). JAUGS has since transitioned to

encompass the realm of all unmanned systems. It is the goal of the working group to develop a

framework which

aids in procurement of robotics systems by ensuring mutual compatibility,

encourages industry competition without fear of being locked in to proprietary solutions,

enables developers to focus on application needs rather than basic infrastructure, and

reduces the burden of technology transfer between programs.


JAUS defines a component-based messaging architecture which defines the data format

and message specifications for communicating between different computing nodes and

processes. It defines an architectural layout of System, Subsystem, Node and Component which

correspond, respectively, to a combination of robotic resources, a particular robot or control unit,

a computing resource and a software process. Figure 2-2 shows the JAUS topology. Various

components are defined in the JAUS Reference Architecture (RA) for well-defined robotic

software roles [1]. These include global position, velocity feedback, actuator control and

configuration management. The RA includes a definition of various data types used to

communicate between components. It also includes a set of messages which define the way in









which information is passed between components and the nature in which this communication

takes place.

Much work has been done in recent years to progress JAUS into emerging areas of robotic

research. One key area of interest to the JAUS Working Group (WG) has been in the area of

World Modeling. What follows is the definition of a World Model as adopted by the JAUS

standard.

The world model is the intelligent system's best estimate of the state of the world. The
world model includes a database of knowledge about the world, plus a database
management system that stores and retrieves information. The world model also contains a
simulation capability that generates expectations and predictions. The world model
provides answers to requests about the present, past, and probable future states of the
world. The world model provides this information service to the behavior generation
system element in order to make intelligent plans and behavioral choices. It provides
information to the sensory processing system element to perform correlation, model
matching, and model-based recognition of states, objects, and events. It provides
information to the value judgment system element to compute values such as cost, benefit,
risk, uncertainty, importance, and attractiveness. The world model is kept up to date by the
sensory processing system element. [37]

As can be seen, one of the primary goals of the World Model, as defined above, is to

provide a "simulation capability." However, work done to date within JAUS deals solely with

the query and storage of static geospatial data [38]. The work done in this dissertation focuses on

vector data representation, therefore the area of interest in the JAUS documentation is that which

deals with the World Model Vector Knowledge Store. The messages and capabilities therein

support the following capabilities:

* Create point, line or polygonal objectss. These objects can contain a number of feature
classes [38] and each feature class may contain a single feature class attribute.

* Delete an object or a group of objects in an area.

* Query for objects by region, id, feature class, attribute or any combination thereof.









This core set of query and storage functionality, along with the developed spatial data

types provided the foundation for the implementation detailed in Chapter 4. The JAUS World

Model message set also establishes a set of terminology including feature class and feature class

attribute which are used extensively in the author's implementation. More details about these can

be found in [38].

While much of the basic functionality is retained, many of the existing JAUS messages

needed to be changed or extended to support the architectural requirements. The modified JAUS

message set, as used by the author, is included as Appendix A.










































Figure 2-1 Spatial operators Touches, Intersect and Within.


i00


010


Figure 2-2 JAUS System Topology


Intersect Operator

Polygon & Line


Touches Operator

Polygon & Polygon




Polygon & Line Polygon & Point





Line & Line






Line & Point


Line & Line


Within Operator
Polygon & Polygon





Polygon & Line





Polygon & Point



Line& Line
Line & Line









Table 2-1 Common Spatial Database Management Systems (DBMS) [39-47]
OGC Spatial Coordinate
DBMS OS Spatial Extension Compliance Index System 3D Raster Cost


Oracle


DB2


MS Access
MS SQL Server


Informix

PostgreSQL
MySQL


Linux, Windows


Linux, Windows


Windows
Windows


Linux, Windows

Linux, Windows
Linux, Windows


Oracle Spatial
Oracle Locator
ArcSDE
DB2 Spatial
Extender
ArcSDE
GeoMedia
SpatialWare
GeoMedia
ArcSDE
Spatial Datablade
ArcSDE
PostGIS
Native


Compliant
Compliant
Compliant


Compliant

Compliant

Implementing

Compliant
Compliant
Compliant
Compliant


sssss
ss
sss


SS
S
S
S
SS
SS
SSS
Open-Source
Open-Source
Open-Source
Open-Source









CHAPTER 3
THEORETICAL APPROACH

The storage and querying of dynamic information is a challenging problem. In this chapter

the author describes two parts of the unique problem. Firstly, the architectural requirements of a

centralized knowledge store are discussed and a solution proposed. Following that, a unique

prediction algorithm for estimating the future state of information without a priori knowledge of

the behavior of the system is described. Through the combination of the architecture described

and use of various prediction methods like the one described herein, a vast array of dynamic and

temporal knowledge store problems may be solved.

Spatiotemporal World Model Architecture

The use of knowledge stores as centralized repositories for information is not a new

concept in either computer science or robotics. There is a long tradition of knowledge stores such

as databases being used in applications ranging from financial to stock control. Also, in robotics,

common, centralized knowledge representations have been used successfully in a number of

robotic systems. However, few of these systems have attempted to cope with the various

demands of both spatial and temporal knowledge. Further, providing predictive behavior about

the future state of information is something only recently explored by the moving objects

database (MOD) researchers.

In developing an architecture for use on a robotic system, several constraints and concerns

are of importance. Firstly is the flexibility of the interface. The kind of spatiotemporal data most

often encountered on an intelligent robotic platform is from some form of sensing capability. It is

then appropriate to design the interface to the knowledge store in such a way as to cater to the

capabilities of most sensing systems. Secondly, the architecture should scale with the scope of

the robot and its mission. From simple vacuuming robotic systems for home use to a fleet of









robotic platforms deployed together, the spatiotemporal knowledge store should provide a

solution that suits the needs of both. To those ends, the architecture presented here provides a

flexible yet robust interface which allows the robotic system designer to make best use of the

information available on the system. It provides capabilities to create objects, modify them,

delete them and ask questions about their past, present and future state. Each object is assigned a

unique object id for identification purposes either by the knowledge store or the client. Objects

may have associated with them both geospatial information and attribute information. The

geospatial information describes the geometry, position and orientation of an object in the

context of the world. The attribute information can be used to hold any other significant

information about the object which may include but is not limited to color, velocity, height,

classification and/or name.

A novel feature of this architecture is the capacity for multiple estimation techniques for

object and attributes prediction. Rather than attempt to apply a single prediction technique to all

objects, the knowledge store is flexible in allowing the client to specify which technique to use.

Current work has focused on having a collection of prediction techniques defined apriori which

a knowledge store client can select from in creating or modifying objects and their attributes.

This capability extends the flexibility and scalability of the architecture by allowing particular

prediction techniques to be created and scaled to the particular application of interest; without the

need to modify or change the overall architecture and message set. Figure 3-1 shows the various

input and output messages for the architecture. Each message and its various fields are described

below in detail.

Request Object Id Block Message

Request Id









Block Size

The Request Object Id Block message is used by the knowledge store client to request a

range of object ids which it may use. The Request Id is used by the knowledge store to track any

response to the client. The Block Size field indicated the number of object ids the client is

requesting.

Assign Object Id Block Message

* Request Id

* Block Size

* Object Ids


The Assign Object Id Block message is sent in response to a Request Object Id Block

message. This message includes the Request Id of the original request. The Block Size field is

the size of object ids allocated by the knowledge store for use by the requesting client. The

OBJECT IDS field is a list of the object ids allocated.

Create Object(s) Message

* Request Id

* Object Count

* Object Id (optional)

* Object Estimator Type (optional)

* Object Time Stamp (optional)

* Object Geospatial Information

* Object Attributes Information









The Create Object(s) message includes allows the client to create one or more unique

objects within the knowledge store. The Request Id field is used to track the creation request and

is used in any response from the knowledge store. The Object Count field is provided to indicate

how many objects are included in the message. Each object is constructed from set of fields

including Object Id, Object Estimator Type, Object Time Stamp, Object Geospatial Information

and Object Attributes. The Object Id field is optional. It is provided when the client would like to

create an object with a particular unique object id. The Object Estimator Type field is also

optional. It indicates which of the available estimation algorithms available should be used to

estimate the geospatial position of the object for queries about its future state. If this field is not

present, it is assumed that the object is to be considered static by the knowledge store. The

Object Time Stamp field is optional. This field is used to indicate the time at which the

geospatial information about the object was measured or otherwise known to be valid. The

Object Geospatial Information is a collection of all the information needed to completely define

the geospatial configuration of the object. Lastly, the Object Attributes Information is a list of

attributes which are attached to the object. It is assumed that each attribute can also be declared

as either static or dynamic with an appropriate estimator and timestamp.

Confirm Creation Message

* Request Id

* Creation Result

* Object Ids

The Confirm Creation message is sent by the knowledge store to the client following the

receipt of a Create Object(s) message. This message includes the Request Id of the original

creation. The Creation Result field is used to indicate the success or failure of the creation









request. For each object in the original request, the appropriate Object Id (either assigned by the

knowledge store or as requested) is included.

Modify Object(s) Message

* Request Id

* Object Count

* Object Id

* Object Estimator Type (optional)

* Object Time Stamp (optional)

* Object Geospatial Information

* Object Attributes Information (optional)

The Modify Object message is used by the knowledge store client to modify or add

information about an object in the knowledge store. The Request Id is used by the knowledge

store in its response to track the original request. The Object Count field is used to indicate the

number of objects included to be modified. The Object Id field indicates which object in the

knowledge store that the client would like changed or updated. Like the Create Object(s)

message, this message includes information about the object which should be changed or

updated. The client is given the opportunity to change the Object Estimator Type, update the

Object Time Stamp and update or replace the Object Geospatial Information and Object

Attributes Information.

Confirm Modification Message

* Request Id

* Modification Result

The Confirm Modification message is sent by the knowledge store in response to a Modify

Object message. This message includes two fields, the Request Id of the original modification









message and a result. The Modification Result is used to indicate success or failure of the

request.

Delete Object(s) Message

* Request Id

* Object Ids (optional)

* Deletion Region (optional)

* Deletion Attributes (optional)

The Delete Object(s) message is sent to the knowledge store from a client who wishes to

delete one or more objects from the knowledge store. The Request Id is used to track the input

for any response. There are 3 ways objects can be identified for deletion. The first is to identify

the unique Object Id of the objects) to be deleted. The second method is to provide a Deletion

Region. Here the client provides a geometric region to the knowledge store; all objects within

that region (either wholly or partly) will be deleted. The last method is to provide a list of

Deletion Attributes. This will cause the knowledge store to remove any object which matches all

the attributes provided. These various methods can be combined to form more complex deletion

requests. Such combinations result in logical conjunctions and could allow deletion of a

particular object only if it is inside the deletion region or removal of all objects in a region that

match a particular attribute value. Through combinations of the three methods, a large number of

flexible deletion commands can be constructed.

Confirm Deletion Message

* Request Id

* Deletion Result

* Object Ids









The Confirm Deletion message is sent by the knowledge store in response to a Delete

Object(s) message. This includes the Request Id field of the original deletion request for tracking

purposes. The Deletion Result indicates success or failure of the request. The Object Ids field is a

list of the objects successfully removed from the knowledge store.

Query Object(s) Message

* Request Id

* History Size (optional)

* Object Ids (optional)

* Query Region (optional)

* Query Attributes (optional)

The Query Object(s) message is used by a client to find information about the current or

past state of one or more objects in the knowledge store. The Request Id is used to track the

query and identify the response from the knowledge store. The History Size field is optional.

This field indicates the time period of object history to include in the response. There are three

ways objects can be identified for inclusion in the response. The first method is to explicitly

identify the objects) through the use of their Object Ids. The second method consists of

identifying a Query Region. This defines a geometric region in which all objects within (either

wholly or partly) will be included in the result. Lastly, specific Query Attributes can be included.

Any object which matches all the included attributes will be included in the result. Like the

Delete Object(s) message, these fields can be combined to provide more flexible queries.

Combinations are considered to be logical conjunctions. This allows queries such as a specific

object if it is inside some region or all objects with a particular attribute value.

Report Object(s) Message

* Request Id









* Query Result

* History Size (optional)

* Object Count

* Object Id

* Object Estimator Type (optional)

* Object Time Stamp (optional)

* Object Geospatial Information

* Object Attributes Information

The Report Object(s) message is sent by the knowledge store in response to a Query

Object(s) message. This message contains the results, if any, of the presented query. The Request

Id is used to identify to the client which query this is the response to. The Query Result field is

used to indicate the success or failure of the original query. The History Size field is optional and

is included if the original query included it. The Object Count field indicates how many unique

objects are included in the report. For each object included, the Object Id, Object Estimator

Type, Object Time Stamp, Object Geospatial Information and Object Attributes Information are

included as appropriate. If a history of data is included, each of the Object Time Stamp, Object

Geospatial Information and Object Attribute Information will include a collection of values

which constitute the history of object.

Query Object(s) Future State Message

* Request Id

* Query Time

* Object Count

* Object Id

* Object Attributes (optional)









The Query Object(s) Future State message is sent to the knowledge store by a client which

is interested in the future state of some objectss. The Request Id is used by the knowledge store

to track the response. The Query Time field is used to indicate the point in time at which the

future state of the object is of interest. The Object Count field indicates how many objects are

included in the query. Each object queried includes the unique Object Id and which Object

Attributes (if any) are to be included in the response.

Report Object(s) Future State Message

* Request Id

* Query Result

* Object Count

* Object Id

* Object Time Stamp

* Object Geospatial Information Estimate

* Object Attributes Information Estimate (optional)

The Report Object(s) Future State message is sent by the knowledge store in response to a

Query Object(s) Future State message. The Request Id field is used to indicate which originating

query this response is for. The Query Result field indicates the success or failure of the query.

Object Count indicates how many objects are included in the report. Each object includes its

unique Object Id, the Object Time Stamp for the future state, the Object Geospatial Information

Estimate and if requested, the Object Attributes Information Estimate.

Query Geospatial Bounds Message

* Request Id

* Object Attributes Information (optional)









The Query Geospatial Bounds message is used by the knowledge store client to ask for the

geometric bounds of the knowledge store. The Request Id is used to identify the query and its

response. The Object Attributes Information field is optional. This field can be used to specify

one or more attributes to filter the results. This causes the knowledge store to return the bounding

geometry of only the objects that match the given attributes.

Report Geospatial Bounds Message

* Request Id

* Query Result

* Boundary Geospatial Information

* Object Attributes Information (optional)

The Report Geospatial Bounds message is sent in response to a Query Geospatial Bounds

message. This message includes four fields. The Request Id field is used to identify which query

this result is in response to. The Query Result indicates the success of failure of the input query.

The Boundary Geospatial Information defines the geometry of the knowledge store's boundary

based on the query. If the result has been filtered by some attributes, the Object Attributes

Information is included in the response.

Query Temporal Bounds Message

* Request Id

* Object Attributes Information (optional)

The Query Temporal Bounds message is used by the knowledge store client to ask for the

temporal bounds of the knowledge store. The Request Id is used to identify the query and its

response. The Object Attributes Information field is optional. This field can be used to specify

one or more attributes to filter the results. This causes the knowledge store to return the upper

and lower timestamp of the objects that only match the given attributes.









Report Temporal Bounds Message

* Request Id

* Query Result

* Temporal Information

* Object Attributes Information (optional)

The Report Temporal Bounds message is sent in response to a Query Temporal Bounds

message. This message includes four fields. The Request Id field is used to identify which query

this result is in response to. The Query Result indicates the success of failure of the input query.

The Temporal Information defines the upper and lower time stamp of the knowledge store's

boundary based on the query. If the result has been filtered by some attributes, the Object

Attributes Information is included in the response.

The Statistics-Based Nth Order Polynomial Predictor

The methods by which the future state of a value can be estimated, or predicted, are

multitude. Many of the more popular methods are covered within the literature review provided

in Chapter Two. As discussed there, many of those methods, including Kalman Filters and most

Neural Networks, incorporate a model of the object to aid in the prediction of the algorithm. For

the author's work, it was desired to find an algorithm that was generic enough to be applied to a

very large variety of data without apriori knowledge of the system model.

To that end, the author has devised a unique algorithm called the Statistics-Based Nh Order

Polynomial Predictor (SNOPP). SNOPP is a novel combination of real-time data analysis and

statistics to generate a polynomial which can be used to estimate the future state of any

continuous time-variant data. That is, for a small change in time, the change in the output is

small. Systems exhibiting discontinuous behavior can be modeled, however large errors may be

observed around any discontinuous point.









SNOPP works to find a polynomial which best fits the trend of a given data set. Stated

formally, the data set is the matrix D which has size n x 2:

X1 yi-

D= x2 2. (3.1)

Xn Yn.

The algorithm works by analyzing a given data set repetitively, attempting to fit a

polynomial to the data at a series of different orders (1st, 2nd ... nth). It also varies the length, or

history, of information. By varying the history size, SNOPP can achieve stable results for long

data trends, yet quickly react to changes in the data set. Three parameters govern the solution

space of the algorithm, a maximum order value, the window size and window count. The

maximum order value is an upper limit on the order to which the algorithm will attempt to fit a

polynomial. Window size is the number of data points which will be analyzed per solution

iteration. Window count is the number of data windows to solve, which is the number of

solutions to iterate through. Figure 3-2 shows the relationship between the window size and

window count parameters for some hypothetical data set. The window size parameter should

always be set equal to or greater than the maximum order value in ensure convergence of the

solution of the polynomial. Once the three parameters are set, the algorithm continues as follows.

SNOPP independently analyzes subsets of the original data set which are defined by the

window size and window count. For each subset, it seeks to find the best fit polynomial of up to

the maximum order. First, a polynomial of the highest possible order (let k = maximum order) is

fit to the data using the least-squares fit method. This polynomial is defined as,

Y = O + PlX + f22 + ... + fkk. (3.2)

The least-squares method is based upon minimizing the sum of the residuals at each data

point. The residual equation is given as,









n
3 = [Yi (0o + #1X + 22X2 + + /kXk)]2. (3.3)
i=l

The solution then, is to minimize 322 with respect to each /,

a (Z2)
aI = 0, for i = 1,...k. (3.4)


The polynomial can also be described in matrix form as,






S= XP. (3.5)

S7o" 1 x- x-

where: y= 2 = 1 andX= 2 "'" X2
Yn. Xn X..


In this form the solution for 0 can be found by premultiplying by Xt as,

XTy = XTX#, (3.6)

which can be solved numerically or inverted directly if X is well-formed, resulting in:

S= (XTX)-1Ty. (3.7)

This yields a k-order polynomial that is the best fit to the given data sub-set. However, it is

plausible that one or more of the order terms are not statistically significant. That is, while the

algorithm may have attempted to fit a 5h-order polynomial and found said solution, the best fit to

the data may actually be a 2nd-order polynomial. SNOPP uses a Type I Sum of Squares statistical

test to determine exactly what order polynomial best approximates the given data. The Type I

Sum of Squares evaluates the difference between a polynomial and its lower-order equivalent for

each polynomial up to the maximum order. For each test, the null hypothesis is that Ho: fi = 0









while the alternative hypothesis is Ha: Pfi # 0. This test is done using the following as the F

Value:

S(SSModel ) (SSMode )(t-l)
i =MSE (3.8)


Here MSE is the Mean Squared Error of the original k-order polynomial and is found by

Zi= Z,(Yij_ Y)2
MSE = =-(+ -(3.9)
n- (k + 1)
where y is the mean of the dataset.

(SSModel)i is defined as the Sum of Squares of the model or residuals and is calculated as
n
(SSModel)i = j- y)2. (3.10)
j=0
where j = [1 x j xJ]


It is important to note here that Pi is the value obtained from a least squares fit of a polynomial

of i-order. That is to say a polynomial must be fit to the original dataset for every order 1 to k.

Using equation (3.8) a value for F, can be found. This value is evaluated against the

standard F-Distribution, which is a one-tailed continuous distribution. The F-Distribution is

evaluated with two degrees of freedom. The first degree of freedom is equal to 1 because this test

is always evaluating an equation with one more term of variance than the former, dfi = 1. The

second degree of freedom is equal to the degree of freedom of the MSE value, or df2 = n -

(k + 1). The alternative hypothesis (Ha: fli 0) is rejected if the probability of it being untrue is

above some critical value. Typically a very large probability is applied to this test such as 20%.

If the test reveals that a particular li has a high probability of being equal to zero, then that term

and all higher-level terms are considered zero.









This yields a value for exactly what order polynomial best fits the given data set (letp

equal this order). This yields a polynomial of orderp for the given window size. SNOPP then

repeats this polynomial fit and analysis a total of window count times. Each time, the data set

grows by window size data points. This provides a number possible polynomials, each

statistically determined to be the best fit for their given data set. The algorithm then selects the

polynomial which has the lowest order solution. In case of a tie, the solution with the largest data

set is used.

The lowest order polynomial is chosen because higher-order polynomials tend to fit data

well within the dataset, but diverge wildly when used for extrapolation, which is the goal of the

future state estimator. The data set with the largest history is used because with larger data sets

provide more statistical significance and a more stable trend for data extrapolation. By

combining small window size with a large number of window counts, long, stable trends in the

data can be accommodated, but changes in that trend can be quickly detected and adjusted to by

the smaller datasets which represent the most recent history of the data.

A numeric example of the SNOPP algorithm is included in Appendix C of this dissertation

for clarity.













Request Object Id Block


Create Object(s)


Modify Object(s)


Delete Object(s)


Query Object(s)


Query Object Future
State

Query Geospatial
Bounds


Query Temporal Bounds


Confirm Creation


Confirm Deletion


Report Object(s)
_____________


Figure 3-1 Overview of the input and output messages associated with the Spatiotemporal World
Model Architecture.


I


























w-- n
>-













X Value

Figure 3-2 Window Size and Window Count are two governing parameters for the Statitics-
Based Nh Order Polynomial Predictor. Here the relationship between the dataset,
Window Size and Window Count is shown.









CHAPTER 4
IMPLEMENTATION DETAILS

In this chapter, the author outlines the technical details of a reference implementation of

the architecture and prediction algorithm presented in the previous chapter. Many technical

challenges existed in implementing the theoretical Spatiotemporal World Model and the

Statistics Based Nth-Order Polynomial Predictor. Discussion of those challenges and the way

each was overcome is detailed herein. The JAUS world model vector knowledge store message

set section discusses the details of the JAUS messages implemented to embed the theoretical

architecture into the research environment available. The database selection and design section

discusses the geospatial database selected for use in this implementation and the design of the

database's tables. To easily and flexibly implement a variety of prediction techniques, a generic

predictor interface was designed and is described in the section titled the same. The polynomial

predictor section outlines the details of the reference implementation of the SNOPP algorithm.

Lastly, the world model vector knowledge store section details how the various pieces were

brought together into a single JAUS component.

JAUS World Model Vector Knowledge Store Message Set

The Center for Intelligent Machines and Robotics (CIMAR) has been involved in the

activities of the Joint Architecture for Unmanned Systems (JAUS) Working Group for several

years through sponsored work with the Air Force Research Lab (AFRL) at Tyndall Air Force

Base. As such, the bulk of the research work done at CIMAR focuses on the usability and

extension of JAUS to solve a large variety of ever-increasingly complex robotic system

problems. As discussed in Chapter 2, recent work within the JAUS Working Group has focused

on the area of world modeling. However, the work done prior to the author's research was

primarily focused on the query and storage of static geospatial data objects. Therefore the









research presented herein was focused on extending the existing World Model Vector

Knowledge Store (WMVKS) component to support the generic Spatiotemporal World Model

Architecture defined in the previous chapter.

This approach provided a number of key advantages. Firstly, a vast and reliable collection

of software which has been developed at CIMAR to aid in the development and deployment of

JAUS components. Secondly, the ability to quickly insert the author's experimental component

into an existing JAUS robotic platform for field testing and evaluation. Lastly, a wealth of

knowledge about the JAUS architecture and its capabilities allowed the author to focus more on

application details and less on basic infrastructure of the system.

The JAUS WMVKS message set is based upon three primary entities; the object geometry,

feature classes and feature class attributes. The object geometry can be one of a point, line or

polygon along with the associated global coordinates of each vertex of the geometry. The current

WMVKS message set only supports the global latitude and longitude coordinate system based on

the WGS84 ellipsoid. This is the primary global coordinate system defined for use in JAUS.

Associated with each object is also one or more feature classes. Feature classes are used to

categorize the geometries. Examples of feature classes may include roads, terrain, occupancy,

trees, etc. The feature classes can be closely associated with different layers of information in

typical geospatial information (GIS) system. Associated with each feature class is a single

feature class attribute. A feature class attribute can be of several different types (byte, integer,

float, RGB, etc). These attributes provide more detailed data about the feature class they

describe. For example, an object may have the "Velocity MetersPerSecond" feature class

associated with it, and its attribute value may be "11.2." This value would indicate the velocity

of the object it is attached to. In the reference implementation, both objects and their feature class









attributes can be considered dynamic by the WMVKS. The message set supports the ability to

designate separate estimation algorithms for each object and each feature class attribute. This

allows a large variety of objects and feature classes to be handled by the component.

In order to successfully deploy the WMVKS as a Spatiotemporal World Model, the

existing WMVKS message set had to be modified and extended to support a large variety of new

data. Table 4-1 lists the various messages and implemented in the WMVKS component

developed for this research. Messages which did not exist in the original WMVKS message set

and have been added for this research are indicated in the appropriate column. The message set

definition is included as Appendix A.

Some key messages and their content were developed specifically to support the author's

work. These include the Query Vector Knowledge Store Objects Future State, Report Vector

Knowledge Store Objects Future State, and Modify Vector Knowledge Store Objects messages.

The original WMVKS message set did not provide an interface to allow a client to change or

modify an object's state after insertion. The new modify message addresses this need. The

original WMVKS message set also did not address the ability to query about time-variant data.

To that end, the query and report future state messages were developed. These messages extend

the functionality of the original knowledge store, adding the ability to reason about the future of

an object or its attributes.

Database Selection and Design

A significant challenge of world modeling task was to implement some methodology to

store the knowledge store's objects and attributes. As discussed in Chapter 2, Spatial Databases

are relational or object-relational database management systems (DBMS) which specialize in the

handling of spatial data. The DBMS approach was chosen for the author's work because it

provided a number of advantages such as









persistent storage capabilities,

high-level (e.g. SQL) interface languages,

availability of robust and complete spatial query capabilities,

support of temporal data types and queries, and

portability of code between projects.

A constraint of the development environment at CIMAR is that all the robotic systems run

on some version of the Linux operating system. This is due to a number of factors which are

themselves outside the scope of this discussion. However, in the selection of a candidate spatial

database technology, it was a requirement for the purposes of this work. The author was also

interested in attempting to accomplish the goals of the work through the use of an open-source

implementation. While various DBMS technologies are available cheaply or for free to

educational institutions, a majority of the author's work was destined for use by AFRL, where

the DBMS of choice could cost significantly more. See Table 2-1 for more details about various

Spatial DBMS technologies.

PostgreSQL is an open source object-relational DBMS. PostGIS is a collection of data

types and functions which "spatially extend" PostgreSQL to allow the database to function as a

spatial knowledge store. PostGIS is also available open source. A companion software library,

Geometry Engine Open Source (GEOS) [48], is a C/C++ API which implements the OpenGIS

Consortium's Simple Features Specification for SQL [29]. This is important because the bulk of

the work done at CIMAR is done in the C/C++ programming languages. PostgreSQL, PostGIS

and the GEOS library provide the core geospatial capabilities of the implementation.

PostgreSQL also supports data types for temporal data. This allows support for the storage and









querying of time stamps in the database, providing the necessary temporal capabilities for the

implementation.

The design of a database schema was also required. The goal was to easily and efficiently

store a large variety of objects within the database which could be quickly and easily queried.

Two tables were created to store the objects and their related feature classes. Figure 4-1 shows

the Entity-Relationship Diagram for the database design and the various field names for each

table.

The Objects table consists of 9 fields: object id, objecttype, buffer meters,

object timestamp, utminit longitude, estimator type, estimatorsolution, vectorobject, and

geometry. Table 4-2 lists these fields, their PostgreSQL data type and a brief description of

each. The FeatureClass table consists of 7 fields: object id, fcid, fc_estimator type,

fc_estimatorsolution, fc_data_type, attribute and attributetimestamp. Table 4-3 lists these

fields, their PostgreSQL data types and a brief description of each. To ease in the use of these

two tables, a unique SQL VIEW is constructed in the database. This is constructed as a SQL

JOIN of the two tables with the following statement:

CREATE VIEW snapshot AS
SELECT FROM objects JOIN featureclasses
USING (object id);

This allows quick and easy access to the combination of data from the two tables and is used

extensively in the various query responses.

Generic Predictor Interface

One key element to the overall Spatiotemporal World Model Knowledge Store

Architecture is the ability to easily deploy a variety of prediction algorithms. It was important

that the reference implementation address this in a flexible and robust manner. To that end, the

Generic Predictor Interface was developed. The Generic Predictor provides a common set of









functionality that all predictors must implement. The methods supplied by the interface include

solver, estimator, toBuffer and fromBuffer. The interface also provides common storage for the

data set that the prediction algorithm is concerned with. It also provides a storage container for

any specific parameters that a specific predictor needs. One common configuration parameter is

included in the interface. This is a value for the minimum number of data points the predictor can

solve for. This is important because some prediction algorithms are unable to find a solution if

less than the minimum number of data points are provided. (e.g. a linear solution is not viable

given a single data point)

The solver method is used to generically involve a specific algorithm's unique solution.

The estimator method similarly provides a common method of retrieving the value of a given

predictor for a given data point. Lastly, the toBuffer and fromBuffer methods provide a

mechanism by which a specific predictor can pack its critical data into and from a byte buffer.

This is used in conjunction with the estimatorsolution fields in the database to provide fast,

efficient access to the predictor's solution for future state queries. Three different prediction

techniques were implemented to support the author's work: a static predictor, a linear predictor

and a polynomial predictor. The implementation details of the polynomial predictor are covered

in the next section. Details of the static and linear predictors are covered in the Dynamic World

Model Vector Knowledge Store section later in this chapter. Excerpts of the Generic Predictor

code are provided in Appendix B.

Polynomial Predictor Implementation

The Polynomial Predictor is an implementation of the Statistics-Based Nth Order

Polynomial Predictor (SNOPP) described theoretically in Chapter 3. One key feature of the

polynomial predictor is the incorporation of a number of configuration parameters that control its

behavior. These configuration parameters are listed in Table 4-4. The Window Count and









Window Size parameters align with the ones outlined in the discussion of SNOPP in the previous

chapter. The Minimum and Maximum Order values provide limits on the solution provided by

the predictor. The P-Critical Value parameter is used to control which level of confidence is

imposed on the alternative hypothesis test. The Minimum Point Count parameter is inherited

from the Generic Predictor and indicates the minimum number of points needed to evaluate the

predictor. This is usually driven by some combination of Window Size and/or Maximum Order.

The predictor makes use of the GNU Science Library (GSL) [49] for its multivariable

least-squares fit functions. The gslmultifitlinear( method fits a function of the form y = Xp.

The y vector is formed from the collection of values from the object or attribute being predicted.

Each row of the X matrix is the corresponding timestamp value, raised to the powers 0 through

k. This casts the multivariable least-squares regression in the form of a kth order polynomial, i.e.

Y = fo +/ix + /2x2 + ... + /fxk.

This predictor also makes use of GSL to evaluate the F-Value obtained from equation

(3.8). To evaluate this, the cumulative distribution value Q(x) is found using the

gsl_cdf_fdist_Q () function. This value is evaluated against the P-Critical Value provided to

analyze the alternative hypothesis outlined in Chapter 3. This yields the statistically significant

order solution (p). For each window (defined by Window Count) the Polynomial Predictor

compares the output solution for p. As outlined in Chapter 3, the solution with the lowest order

and greatest window size is chosen.

To aid in the ease of use by the WMVKS, the Polynomial Predictor implements the

Generic Predictor Interface discussed previously. To do so it must provide functions for the

solver, estimator, toBuffer and fromBuffer methods. The solver and estimator functions are

straight-forward and either solve for the prediction equation, or estimate using that solution. The









toBuffer method packs a collection of solution-critical values into a byte buffer. These include

the solution's order and the j vector. The fromBuffer method does the inverse operation. This

provides a quick and flexible way to store the vital information for future state queries.

Dynamic World Model Vector Knowledge Store

The purpose of this chapter, thus far, has been to outline the building blocks that make up

the World Model Vector Knowledge Store (WMVKS) that was implemented to support the

author's work. Figure 4-2 shows an outline of the WMVKS as implemented. The WMVKS was

implemented as a JAUS Component based on a common component template developed at

CIMAR for previous JAUS work. This allowed the author to focus efforts on the implementation

of the WMVKS behavior and not the overall JAUS architectural requirements. Each message

outlined in Table 4-1 needed to be implemented to be used by the WMVKS. The code to

implement the various messages is also based on a flexible skeleton created previously at

CIMAR for JAUS messages.

The WMVKS is an event-driven component. That is, it only has to process data as requests

and queries are received and has no observed periodic behavior (outside the normal JAUS

periodic behavior which is a 1 Hz Report Heartbeat Pulse message). Therefore, its state machine

is rather simple. JAUS defines several valid states of a given component. However, the WMVKS

typically transitions straight to READY unless some error or fault is detected. When a message is

received, the component does whatever work is necessary to process and answer that request.

As discussed previously, a key feature of the overall Dynamic World Model Knowledge

Store architecture is the ability to deploy different prediction algorithms. To support the author's

work, three unique prediction algorithms were implemented; a static predictor, a linear predictor

and the polynomial predictor discussed previously. Each predictor implements the Generic









Predictor interface to allow ease of use by the WMVKS. The static predictor is the most simple.

It is used as the prediction algorithm for any static object or attribute and is included for

completeness in the design. It stores the latest value from the dataset as the solution and returns

this as the estimated value for any point in time. The linear predictor implements a simple least-

squares linear fit to a set of data. For the implementation used, up to ten data points are used to

fit the data. The linear fit predictor stores its result in a similar manor to the polynomial predictor

through the use of the toBuffer and fromBuffer methods of the Generic Predictor interface. The

least-squares approximation is done using the gsl_fit linear( method from the GSL library.

The static and linear prediction algorithms were implemented to provide robust solution

future state queries. While the polynomial predictor was the primary prediction method

developed and tested for this dissertation, it was realized that no valid solution would exist for

data sets prior to the minimum point count defined in the polynomial predictor. Rather than

handle this as a special case in that predictor, the author made use of the flexible predictor

capabilities to implement lower count prediction techniques. Therefore, when a data set is made

up of a single value, the static predictor is automatically invoked, regardless of the estimation

type identified (the original estimation type value is preserved and left unmodified in the

database record). If more than a single data point is present, but less than the specified

predictor's minimum point count, the linear predictor is used. This not only allowed a more

robust solution to state prediction, it also increased the capability of the WMVKS by providing

three prediction algorithms instead of just the one.

One of the more complex messages handled by the WMVKS is the Create Vector

Knowledge Store Object(s) message. This message may contain one or more objects with

various attributes which must be handled by the WMVKS and added to its current collection of









objects. The code for this procedure is included as part of Appendix B. The following is a step-

by-step explanation of this process:

1. The received Create Vector Knowledge Store Object(s) message is "unpacked" from the
byte buffer into its specific data structure.

2. For each object, the object id bit is checked to see if it has been included, if not, the next
valid value is queried from the database.

3. Each object is translated from its data structure into an SQL INSERT statement for
storage into the Objects table of the database:
INSERT INTO objects()
VALUES ();

4. Each feature class included with an object is similarly converted into an SQL INSERT
statement for insertion into the FeatureClass table of the database.
INSERT INTO featureclass(
)
VALUES ();

5. If the confirmation has been requested, a Report Vector Knowledge Store Objects
Creation message is sent back to the originating client with a list of the object ids which
have been stored.

Similar to the create message, the Modify Vector Knowledge Store Object message

invokes a complex process in the WMVKS. This process involves the various prediction

algorithms; invoking them to provide solutions for future state estimation. Each time an object is

modified, new information is included in the state history. This allows a new, updated solution to

be found for future state estimation. The more often an object's state is updated, the more

quickly the various predictors may be able react to changes in the observed behavior and account

for it in the future state estimator. Using the prediction methods implemented for the author's

work, prediction of an object's position is limited to estimating the centroid of the object. This

means the bounds of a polygon or line are considered static for the author's work. This

assumption may not always be true. Since the prediction algorithms implemented in the

WMVKS are only concerned with the state of a single time-varying dataset, the estimation of









future geospatial position is broken down into two datasets (Easting vs. Time and Northing vs.

Time). The position solution is then the combination of two separate prediction solutions.

Position estimation is done in the Universal Transverse Mercator (UTM) coordinate system

rather than the Latitude, Longitude and Altitude (LLA) coordinate system so that Euclidean

Geometry can be applied. Projection between coordinate systems is provided by a UTM library

that is part of CIMAR's core library set.

The code to handle receipt of a Modify Vector Knowledge Store Objects message is also

included in Appendix B, but a step-by-step account is provided here for clarity:

1. The received Modify Vector Knowledge Store Objects message is "unpacked" from the
byte buffer into its specific data structure.

2. The object id included in the received message is checked against the database. If the
target object does not exist, an error may be reported.

3. The vectorobject data field is retrieved from the database through the use of a SQL
SELECT statement and used to create a copy of the database object in memory:
SELECT vectorobject FROM objects
WHERE objectid = ;

4. The information contained in the modify message is compared to the information
retrieved from the database. Certain fields (such as buffermeters) are replaced if
modified. Modification of values in the database is done using a SQL UPDATE
statement:
UPDATE objects SET buffermeters =
WHERE objectid = ;

5. In the case of a dynamic object or attribute, the WMVKS adds the included information
to the existing object or attribute history, as appropriate. If the value being modified is
considered static, the modification message is used to replace the current value with the
modified one.

6. The modified and/or updated version of the vectorobject information is generated and
updated in the appropriate field of the database.









7. Since object information has changed, the prediction solution must be updated. For each
feature class, the appropriate predictor (static, linear or polynomial) is called and the
solution is stored in the fc_estimatorsolution field of the FeatureClass table. For every
object, the estimator solution is populated with the prediction solution for both the
Easting (X) and Northing (Y) values.

8. If the confirmation bit has been requested, the WMVKS responds to the originating client
with a Report Vector Knowledge Store Object Modification message.

The create and modify messages provide the primary methodology for a data provider

(such as a sensor) to insert or change data within the WMVKS. However, other clients may be

primarily interested in the consumption of that information. Clients interested only in the current

state of an object or some attribute can use the Query Vector Knowledge Store Obj ect(s)

message. This message retrieves the object from the database through a SQL SELECT statement.

This query message is flexible in the way it can be constructed, from boundary queries to

specific objects and/or attributes

The other approach that can be employed is to query the future state of an object or

attribute. This is done through the use of the Query Vector Knowledge Store Object(s) Future

State message. This message can be used in two ways, designated by the query type field. In the

he first, called Absolute Query, the timestamp provided is considered an absolute time in the

future at which to query the state of an object and its attributes. The other, Relative Query, is

used to specify some time offset which will be added to the current time at which the WMVKS

receives the message. This feature was added to the message to ease the use of registered

periodic events (called Service Connections in JAUS, this mechanic is outside the scope of the

author's discussion [1]). In either case, the query time is used by the appropriate predictor to

generate an estimate for the future value of the object and its attributes. The code for handling a

Query Vector Knowledge Store Object(s) Future State message is also included in Appendix B.

An outline of this code is provided below:









1. The received Query Vector Knowledge Store Object(s) Future State message is
"unpacked" from the byte buffer into its own data structure.

2. For each object specified in the query, the database is checked to ensure an object with
that id value exists.

3. For each object queried, the query time value is setup, either using the absolute or relative
time method. Note, this means multiple future state queries can be setup with different
query times. The advantage of this is the ability to construct a query for the future state of
a single object at multiple query times or offsets using a single message.

4. For each object queried, the appropriate object predictor solution (in byte buffer format)
is read from the database using an SQL SELECT statement:
SELECT estimatorsolution FROM objects
WHERE objectid = ;

5. This object predictor solution is unpacked appropriately (into both an X and Y predictor)
and then used to estimate the position of the object at the given query time using the
estimate function.

6. For each object queried, the appropriately queried attributes are also estimated. To do so,
the attribute estimator solutions are first retrieved from the database using a SQL
SELECT statement. They are then converted using the predictor's fromBuffer method.
Lastly, state estimates are conducted using the appropriate query time and estimator
method.

7. The object's position estimation and any appropriate attribute estimations are then
returned to the querying client via a Report Vector Knowledge Store Object(s) Future
State message.

The WMVKS component provides a robust implementation of the Spatiotemporal World

Model architecture outlined in Chapter 3. It does so by combining the capabilities of the JAUS

World Model Vector Knowledge Store message set, the advantages of the PostgreSQL database,

and the capabilities of an array of unique prediction techniques. The techniques and approach

outlined above provide a unique solution to the problem of storing and querying the future state

of a dynamic object or attribute within the JAUS architecture. Many of the same techniques

could easily be applied to any other robotics architecture, provided the messaging interface could

be modified to support the message interface introduced in Chapter 3.









Table 4-1 JAUS WMVKS Message Set as implemented in the reference World Model Vector
Knowledge Store component developed to support the author's research. Both new
and extended JAUS messages are listed.
JAUS
JAU New Input / Output
Message Name Command
Coe Message Message
Code

Request Vector Knowledge Store Object Id Block F120h Input
Assign Vector Knowledge Store Object Id Block F320h Output
Create Vector Knowledge Store Objects F121h Input
Report Vector Knowledge Store Objects Creation F321h Output
Modify Vector Knowledge Store Objects F122h Input
Report Vector Knowledge Store Object Modification F322h Output
Delete Vector Knowledge Store Objects F123h Input
Report Vector Knowledge Store Objects Deletion F323h Output
Query Vector Knowledge Store Objects F130h Input
Report Vector Knowledge Store Objects F330h Output
Query Vector Knowledge Store Geospatial Bounds F132h Input
Report Vector Knowledge Store Geospatial Bounds F332h Output
Query Vector Knowledge Store Temporal Bounds F133h Input
Report Vector Knowledge Store Temporal Bounds F333h Output
Query Vector Knowledge Store Objects Future State F134h Input
Report Vector Knowledge Store Objects Future State F334h Output









Table 4-2 Object table data fields, PostgreSQL type and description.
Field Name PostgreSQL Type Description


object id


object type


buffer meters


obj ect timestamp



utm init longitude


estimator type


estimator solution


vector obj ect


Geometry


INT4
PRIMARY KEY

INT2


FLOAT


TIMESTAMP


DOUBLE
PRECISION


INT2


BYTEA


BYTEA


GEOMETRY


Unique object id value assigned to each object.

Value of the JAUS WMVKS object type
(i.e. point, line or polygon).
Size of an optional buffer around the object's
geometry.
Last time stamp value associated with the object
geometry. Used for temporal queries.
Value, in radians, of the longitude of the first point
associated with this object. This is provided to
ensure proper projection between LLA and UTM
for an object.
Value of the estimator type associated with this
geometry.
Hex string of the binary array of the estimator
solution. Used to quickly provide solutions to
future state queries.
Hex string of the binary array of the JAUS Vector
Object structure.
PostGIS geometry column used to store the latest
geometry value of the object. Used for geospatial
queries.









Table 4-3 Feature Class table data fields, PostgreSQL types, and description.
Field Name PostgreSQL Type Description

INT4
object id AR Unique object id value assigned to each object.
PRIMARY KEY

INT4Feature Class id value, non-unique. However,
fc id M Y KY there can only be one fcid value per object id
PRIMARY KEY
value.

r t TT2 Value of the estimator type associated with this
fc_estimator type INT2
geometry.
Hex string of the binary array of the estimator
fc_estimatorsolution BYTEA solution. Used to quickly provide solutions to
future state queries.

Value of the enumerated data type of this feature
fc_datatype INT2
class' attribute.
Attr e INT8 Feature Class Attribute value, stored as an 8-byte
Attribute INT8
integer.

attrp T TAMP Last time stamp value associated with the object
attributetimestamp TIMESTAMP
geometry. Used for temporal queries.

Table 4-4 Polynomial Predictor configuration parameters
Parameter Name Description

Minimum P t The minimum number of data points for which the predictor can
Minimum Point .
ount successfully be used. This is usually dependent on the Minimum /
Maximum Order parameters and/or the Window Size parameter.
S. This is the minimum order polynomial the predictor will analyze for a
Minimum Order
solution. Usually 0 or 1.
This is the maximum order polynomial the predictor will analyze for a
Maximum Order solution. Higher order polynomials can give better results in dynamic
situations, and lower order ones are more stable in extrapolation.
Window Size This is the size of each data window to analyze.

.Wi w C t This is the number of data windows, each Window Size larger than the
Window Count
previous, to analyze.
This value is used to evaluate the statistical significance of a particular
P-Critical Value
order.














utm_initlogitude




estimator_type




estimator solution


object id


fc_data_type


attribute


fc_estimatortype


attributetimestamp


vector_object


fc estimator solution





HA\
HAS


Figure 4-1 Entity-Relationship Diagram of WMVKS Database


object id


object_type




buffer meters




object_timestamp


geometry









JAUS World Model
Message Set


I


Geospatial Objects


Responses


Figure 4-2 World Model Vector Knowledge Store Implementation Diagram.


World
Model
Clients


World Model Vector
Knowledge Store









CHAPTER 5
TESTING AND RESULTS

Previous chapters have dealt with the background and implementation details of the

author's dissertation. Herein, the testing methodology and results for a series of test are

presented. To test the World Model Vector Knowledge Store (WMVKS) component a

component capable of behaving as a source of dynamic information was required. The laser

tracking smart sensor section covers a component developed to address this need. The test

procedure and plans chapter describes the various test scenarios devised and how each was

conducted. Lastly, the test results section provides an overview of the results obtained by the

author's work.

Laser Tracking Smart Sensor

In order to properly test the WMVKS and its implementation, a source of dynamic

information was needed. For the author's work, a simple laser-based object tracking algorithm

was implemented to collect real-world test data which could used to test the knowledge store.

The Laser Tracking Smart Sensor (LTSS) was developed based on a combination of previous

research activities at CIMAR.

In the spring of 2003, a laser-based tracking algorithm was developed by the author and

another researcher at CIMAR to support the "follow-the-leader" challenge at the Intelligent

Ground Vehicle Competition (IGVC). This challenge was to follow at some fixed distance a

human-driven lawn tractor. However, the algorithm has shown effectiveness at tracking and

following a number of objects including other robots, humans and larger vehicles.

The laser-tracking algorithm works by first receiving a user input which "seeds" the

system and identifies the object to be tracked (Figure 5-la). The system then searches for all

neighboring points within some threshold distance to the object. Once all neighboring points are









identified, a bounding box around the collection is established (Figure 5-1b). On successive laser

scans, the system uses an estimated bounding box to seed itself and repeat the threshold based

search. The system is controlled to allow the collection of points to grow and shrink at some

user-defined rate.

The algorithm builds up a history of the tracked object's position and uses them to estimate

the velocity of the object. This velocity is in turn used to estimate the future position of the

object at successive laser scans. Due to the fast (35-70Hz) rate at which laser scans occur, a

linear velocity prediction has yielded adequate results. The LTSS algorithm has been shown to

be incredibly capable at not only tracking a visible dynamic object, but estimating and

reacquiring the object if it travels through the shadow of another object. Figure 5-2 shows the

LTSS algorithm in action. The selected object is shown in orange while the current and future

bounding boxes are shown in blue and green respectively. The estimated velocity vector is also

shown.

This algorithm successfully enabled the CIMAR entry to complete the "follow-the-leader"

course in the first attempt at the 2003 IGVC competition. CIMAR's entry (the TailGator) was the

only vehicle to complete the course at the competition. Figure 5-3 shows the TailGator platform

on the course following a human-driven lawn tractor.

More recent work has been done by the author to integrate this laser algorithm into the

JAUS system architecture onboard the NaviGATOR. For the DARPA Grand Challenge contest,

CIMAR developed a common sensor architecture called Smart Sensors. The LTSS is based on

this architecture which allows easy interfacing with the existing JAUS infrastructure onboard the

NaviGATOR. More information about the Smart Sensor architecture can be found in [50].









The IGVC laser algorithm was integrated into a smart sensor and interfaced to the planar

laser mounted on the front of the NaviGATOR. Figure 5-4 shows the output of this Smart Sensor

and provides a brief description. This setup was used track a truck driving in front of the

NaviGATOR as a test location near the university. These tests provided a collection of data used

to evaluate the performance of the WMVKS. Figure 5-5 shows the test setup with the

NaviGATOR and the truck used as the tracked object.

Test Procedure and Plans

The LTSS data was used to test the WMVKS and its associated algorithms. For the

author's work, log files were generated by the LTSS which contained the tracked object's

position and a timestamp for each iteration of the LTSS. Also logged at the same time were the

NaviGATOR's position, velocity and heading values. This provided a variety of time-variant

data which could be used to evaluate the performance of the WMVKS. Two test setups were

devised. In the first test, the NaviGATOR was stationary while a moving object passed in front

of it. This object was detected, then tracked by the LTSS and its position logged. Since the

NaviGATOR is stationary for this test, it position, velocity and heading data is not used in the

author's work. In the second test (shown in Figure 5-5), the NaviGATOR is driven some

distance behind a large truck in a looped course. The truck is detected and tracked throughout the

loop. Once again the object's position is logged, along with the NaviGATOR's position, velocity

and heading. Each test was performed five times. The log files were later taken and played-back

in real time to the WMVKS and the results of the prediction algorithms recorded. To test the

capabilities of the WMVKS, these log files were used to analyze five different test scenarios.

Each scenario is described below along with a respective test plan.









Test Scenario 1: Tracked Object Using Polynomial Predictor from Stationary Platform

In this scenario, the tracked object is moving while the NaviGATOR is stationary. It

demonstrates basic behavior of the tracking algorithm and WMVKS performance. The

polynomial predictor is used to estimate the future position of the tracked object one second, two

seconds, three seconds, four seconds and five seconds in the future. Table 5-1 outlines the test

plan; included therein is the test purpose, hypothesis, expected results, test design and logged

data.

Test Scenario 2: Tracked Object Using Polynomial Predictor from Moving Platform

In this scenario, the tracked object is moving while the NaviGATOR is following it at

some distance (both vehicles are human-driven for this test). This test demonstrates performance

of the WMVKS for a common scenario, which is tracking objects moving around the vehicle

while the vehicle itself is in motion. The polynomial predictor is used to estimate the future

position of the tracked object one second, two seconds, three seconds, four seconds and five

seconds in the future. Table 5-2 outlines the test plan; included therein is the test purpose,

hypothesis, expected results, test design and logged data.

Test Scenario 3: Tracked Object Using Linear Predictor from Moving Platform

In this scenario, the tracked object is moving while the NaviGATOR is following it at

some distance (both vehicles are human-driven for this test). This test is done in contrast to

scenario two in using the same inputs but analyzing it using the linear predictor instead. The

linear predictor is used to estimate the future position of the tracked object one second, two

seconds, three seconds, four seconds and five seconds in the future. Table 5-3 outlines the test

plan; included therein is the test purpose, hypothesis, expected results, test design and logged

data.









Test Scenario 4: Velocity Attribute Using Polynomial Predictor

In this scenario, the WMVKS is used to predict the future state of a feature class attribute

rather than an object's position. This shows the ability of the WMVKS to handle data that is not

geospatial in nature. The data used in this test was collected from the NaviGATOR's Velocity

State Sensor (a standard JAUS component) during the test runs described previously. The

polynomial predictor is used to estimate the velocity of the NaviGATOR one second, two

seconds, three seconds, four seconds and five seconds in the future. Table 5-4 outlines the test

plan; included therein is the test purpose, hypothesis, expected results, test design and logged

data.

Test Scenario 5: Heading Attribute Using Polynomial Predictor

In this scenario, the WMVKS is used to predict the future state of a feature class attribute

which represents the heading (or orientation) of some object. Data used for this test was collected

from the Global Position Sensor component (a standard JAUS component) onboard the

NaviGATOR. The polynomial predictor is used to estimate the state of the attribute one second,

two seconds, three seconds, four seconds and five seconds in the future. Table 5-5 outlines the

test plan; included therein is the test purpose, hypothesis, expected results, test design and logged

data.

Test Results

In this section, the data collected for each test scenario will be analyzed and presented.

Each test scenario was conducted five times. In this chapter, only one of each of these tests will

be presented and discussed. Representative charts for each scenario are presented.

Test Scenario 1 Results

The purpose of this test scenario is to show the position estimation capabilities of the

WMVKS as implemented by the author. As discussed in Chapter 4, to estimate the position of an









object, two polynomial predictors are employed, one for the eating (x) value and one for the

nothing (y) value. The position values are estimated in the Universal Transverse Mercator

(UTM) coordinate system and converted into Latitude and Longitude prior to being sent to the

LTSS. The test plan for this test is included as Table 5-1.

Figure 5-6 show a typical plot of the eating vs. nothing values used as source data for this

series of tests. This chart shows that the tracked object moved primarily along the north/south

axis with very little movement in the east/west direction. In figure 5-7 eating and nothing

values are plotted separately with respect to time. Figure 5-8 shows the eating vs. time plot with

the one second, three second and five second prediction values. Figure 5-9 shows the nothing

vs. time plot with one second, three second and five second prediction values. Figure 5-10 shows

the combined eating vs. nothing plot with the predicted values.

Overall, test scenario 1 has demonstrated the ability of the WMVKS to handle dynamic

position data, reason about the future state of that data and provide feedback to the LTSS. It has

shown successful use of the polynomial predictor algorithm and the new JAUS world model

message set implemented by the author.

Test Scenario 2 Results

The purpose of this test is to demonstrate the ability of the WMVKS to handle prediction

of an object tracked by the LTSS over a much longer distance and time span. The test data

covers over 3 minutes and 800 meters in length. Figure 5-11 shows a plot of eating vs. nothing

for a typical data set from this test.

Figure 5-12 shows the same data plotted against time with eating on the left axis and

nothing on the right axis. Figure 5-13 provides a plot of just the eating value vs. time and the

one second, three second and five second prediction values. Due to the scale of this plot, details

are difficult to read. Therefore Figures 5-14, 5-15 and 5-16 provide closer views of the more









critical sections of the plot. Figure 5-17 shows the nothing vs. time plot with corresponding

prediction values. Again, Figures 5-18 and 5-19 are provided for clarity.

Figures 5-20 and 5-21 show, graphically, the error in the 1 second predictor plotted on one

axis with the actual and predicted values plotted on the other axis. These charts show that the

polynomial predictor demonstrates large errors around changes in the data trend, but quickly

reacquires the proper trend and provides good prediction results.

The previous charts show graphically the error in the polynomial predictor. An analysis

was conducted which calculated the error in the predicted value for all five trials of this scenario;

the results of which are presented in Table 5-6. Here, the performance of the polynomial

predictor can be shown to yield favorable results. The average error on the 1 second predictor is

0.68 meters for the eating value and 0.60 meters for the nothing values. Combined there is an

overall 1.26 meter average error in the predicted position compared with the recorded true

position 1 second in the future. The standard deviation value for the 1 second prediction was

calculated to be 1.89 meters for the combined total of eating and nothing. This means that if

one assumes the error is normally distributed, 68% of the data falls within one standard deviation

and 95% of the data is within two standard deviations (3.78 meters here) from the average value.

Therefore for the 1 second predictor, 68% of the time, the error in the predicted value will be

between -0.6 and 3.2 meters.

Test Scenario 3 Results

The purpose of this test is to show the ability of the WMVKS to apply a different

prediction algorithm to the same set of input data. Using the same data set used in scenario 3, the

position of the tracked object is estimated using the linear predictor.

As the same initial data set is used in both scenario 2 and 3, figures 5-11 and 5-12 again

illustrate the source data. Figure 5-22 provides a plot of the eating value vs. time including the









one second, three second and five second prediction values. Due to the scale of this plot, details

are difficult to read. Therefore, figures 5-23, 5-24 and 5-25 provide closer views of more critical

areas of the plot. Figure 5-26 provides a plot of the nothing value vs. time including the one

second, three second and five second prediction values. Again, figures 5-27 and 5-28 are

provided for clarity.

The plots shown in figures 5-20 through 5-24 demonstrate the prediction qualities of the

linear prediction algorithm. Compared to figures 5-13 through 5-19, the linear predictor does not

yield results as accurate as the polynomial predictor. The linear predictor does exhibit a slightly

better response time to changes in trends, but has a much larger spread in the data at any given

time. This is most likely due to the rather small maximum point size used for this test (10). A

smaller value provides quicker response to trend changes, but less stable results overall due to

less data history in the estimator's solution.

Again, an analysis of the error was conducted and the results are presented in Table 5-7.

Figure 5-29 shows the error values with respect to time plotted alongside the actual and predicted

values for the 1 second prediction of the eating value. Figure 5-30 shows the same plot for the

nothing data. The values calculated in the error analysis demonstrate that the polynomial

prediction method provides better overall results in this test scenario than the linear predictor.

The linear predictor has a 1.55 meter error on average in the eating data (for a 1 second

prediction) and a 0.89 meter error in the nothing data. This yields a combined average error of

2.44 meters for a 1 second prediction. This value is 1.2 meters more than the polynomial

predictor for the same data set and prediction interval which is a 91% difference.









Test Scenario 4 Results

The purpose of this test scenario is to demonstrate the WMVKS' ability to handle dynamic

feature class attributes and reason about the future state of those attributes. The velocity of the

NaviGATOR over the course of a 3 minute drive is used as the sample data set.

Figure 5-31 shows a plot of the velocity data vs. time which is typical of this test scenario.

Figure 5-32 shows the same velocity vs. time plot combined with the predicted values one

second, three seconds and five seconds in the future. Figure 5-33 shows a plot of the 1 second

predictor's results. Here the error vs. time is plotted alongside the actual and predicted values. A

summary of the error results in included in Table 5-8.

This test successfully demonstrates the ability of the WMVKS to predict the future state of

dynamic feature class attributes. It also demonstrates the ability to make use of estimation

techniques for a variety of data. Here the polynomial predictor is used as the prediction algorithm

and yields favorable results with an average error of 0.38 meters per second for the 1 second

predictor and a standard deviation of 0.34 meters.

Test Scenario 5 Results

This last test scenario is designed to demonstrate something that was mentioned in Chapter

3 when the SNOPP algorithm was introduced. This prediction algorithm does not make use of

any parameters which indicate the nature or model of the data being predicted. Therefore, it

cannot adequately handle discontinuous data. Heading data exhibits this discontinuous behavior

anytime it crosses the -nt / nt threshold. This test demonstrates the behavior of the polynomial

prediction algorithm when such a discontinuity is encountered. Figure 5-34 shows a plot of the

heading data vs. time. Figure 5-35 shows the same data and included the predicted values for one

second, three seconds and five seconds in the future. Figure 5-36 shows the 1 second error plot

for the same data set. Error analysis results are included in Table 5-9.









Before and after the discontinuity point (at approximately 133 seconds) the polynomial

predictor shows prediction capabilities similar to those observed for other dynamic data sets.

However, one can observe that immediately after the discontinuity point the predictor's solution

is wildly incorrect. In actuality it predicts values well outside the range of -7t to 7n which is

considered valid for heading values. The effect of this can be seen in both Figure 5-36 (with error

values approaching 12 radians) and Table 5-9 where the average heading error even 1 second in

the future is 0.26 radians but the standard deviation is 0.92 radians. Much of the error and size of

the standard deviation can be attributed to the large errors encountered around the discontinuity

point.

Testing Summary

The test scenarios described in this chapter have highlighted the primary functionality of

the WMVKS. The JAUS message set introduced in chapter 4 has been shown sufficient to

support a large variety of data types and test scenarios. The ability to predict using different

prediction algorithms has also been demonstrated in test scenario 3. Lastly, the polynomial

predictor has been shown to be flexible enough to be used for a large variety of data in the

prediction of future state. It has yielded favorable results in tracking not only objects, but also

attributes as well. The linear prediction method was compared to the polynomial predictor and

shown to yield less favorable results overall and in general provide much less stable behavior

when used to predict future states.













1 16
S ....


a b
Figure 5-1 Laser tracking algorithm. In (a) the orange dot is the seed point while the algorithm
searches and identifies close neighbors in yellow. In (b) the search has been
completed and the object to be tracked is surrounded by the inner bounding box. The
outer bounding box is the estimated future position of the object which has been
grown slightly. At first the object's velocity vector is unknown so the future position
and current position are coincident.







1*




Figure 5-2 Laser tracking algorithm. The tracked object is highlighted in orange. The current
bounding box is shown in blue which the estimated future position of the object is
shown in green. The estimated velocity vector is also shown.























Figure 5-3 The TailGator using the tracking algorithm to follow a lawn tractor. The TailGator
was the only robot at the 2003 Intelligent Ground Vehicle Competition to
successfully complete the course.


Figure 5-4 Laser Tracking Smart Sensor output. Tracked object shown in green with a black
bounding box. Red cells are another non-tracked object. Note the vehicle is located in
the center of the grid and the vehicle heading is indicated by the small blue line
(north-west here).


1l






















figure 3-5 Laser tracking Smart sensor setup tor collection ot test data. Ihe NavliAIUK
(blue) is used to track the moving object (white truck) around a large test circuit.

Table 5-1 Scenario 1 Test Plan


Test
Description



Test Purpose


Hypothesis


Expected
Results


Test Design


Logged Data


In this test, an object detected by the LTSS will be inserted into the WMVKS.
The object's position will be updated by the LTSS while its future position will
be estimated using the polynomial predictor. For this test, the object will be
moving and the robotic platform will be stationary.
To show the ability of the WMVKS to reason about and estimate the future
geospatial position of an object using the polynomial predictor algorithm.
The polynomial predictor will yield favorable tracking of the object's future
position.
The WMVKS will successfully handle a variety of create, modify and query
messages to facilitate the creation and monitoring of an object and its future
position.
For this test, the NaviGATOR is stationary while a truck is driven in front of it.
The LTSS identifies and tracks the truck as it moves across the sensor's field of
view. The position of the tracked object is updated in the WMVKS at 10 Hz. The
future state of the object is queried at 5 Hz. Each time, the position 1 second, 2
seconds, 3 seconds, 4 seconds and 5 seconds in the future is queried.

The following configuration values are used in the polynomial predictor for this
test:

Minimum Point Count: 10
Minimum Order: 0
Maximum Order: 3
Window Size: 5
Window Count: 20
P-Critical Value: 0.2 (20%)
The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4
seconds and 5 seconds in the future with appropriate timestamp for each report.










Table 5-2 Scenario 2 Test Plan


Test
Description




Test Purpose


Hypothesis


Expected
Results


Test Design


Logged Data


In this test, an object detected by the LTSS will be inserted into the WMVKS.
The object's position will be updated by the LTSS while its future position will
be estimated using the polynomial predictor. For this test, both the object and the
robotic platform will be moving. This test is much longer in length than test 1
and will show a larger variety in the data set.
To show the ability of the WMVKS to reason about and estimate the future
geospatial position of an object using the polynomial predictor algorithm.
The polynomial predictor will yield favorable tracking of the object's future
position.
The WMVKS will successfully handle a variety of create, modify and query
messages to facilitate the creation and monitoring of an object and its future
position.
For this test, the NaviGATOR is following a truck which driven in front of it.
The LTSS identifies and tracks the truck as it moves. The position of the tracked
object is updated in the WMVKS at 10 Hz. The future state of the object is
queried at 5 Hz. Each time, the position 1 second, 2 seconds, 3 seconds, 4
seconds and 5 seconds in the future is queried.

The following configuration values are used in the polynomial predictor for this
test:

Minimum Point Count: 10
Minimum Order: 0
Maximum Order: 3
Window Size: 5
Window Count: 20
P-Critical Value: 0.2 (20%)
The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4
seconds and 5 seconds in the future with appropriate timestamp for each report.









Table 5-3 Scenario 3 Test Plan


Test
Description



Test Purpose


Hypothesis


Expected
Results
Test Design


Logged Data


In this test, an object detected by the LTSS will be inserted into the WMVKS.
The object's position will be updated by the LTSS while its future position will
be estimated using the linear predictor. For this test, both the object and the
robotic platform will be moving.
To contrast the difference in results obtained using the polynomial and linear
predictors
The linear predictor will show less optimal prediction capabilities, but more
quickly adjust to trend changes.
The linear prediction algorithm will show less optimal prediction capabilities,
but perform better than the polynomial predictor around trend changes.
For this test, the NaviGATOR is following a truck which driven in front of it.
The LTSS identifies and tracks the truck as it moves. The position of the tracked
object is updated in the WMVKS at 10 Hz. The future state of the object is
queried at 5 Hz. Each time, the position 1 second, 2 seconds, 3 seconds, 4
seconds and 5 seconds in the future is queried.

The following configuration values are used in the linear predictor for this test:

Minimum Point Count: 2
Maximum Point Count: 10
The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4
seconds and 5 seconds in the future with appropriate timestamp for each report.









Table 5-4 Scenario 4 Test Plan


Test
Description


Test Purpose


Hypothesis
Expected
Results


Test Design


Logged Data


In this test, the velocity of the NaviGATOR as it drives some path will be
attached to a point object as a dynamic feature class attribute. Its value will be
updated and its future value will be predicted using the polynomial predictor.
To show the ability of the WMVKS to reason about and estimate values for
dynamic feature class attributes.
The polynomial predictor will yield favorable tracking of the velocity value.
The WMVKS will successfully handle a variety of create, modify and query
messages to facilitate the creation and monitoring of a feature class attribute and
its future state.
For this test, the NaviGATOR's velocity value is updated in the WMVKS at 10
Hz. The future state of the value is queried at 5 Hz. Each time, the position 1
second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future is queried.

The following configuration values are used in the polynomial predictor for this
test:

Minimum Point Count: 10
Minimum Order: 0
Maximum Order: 3
Window Size: 5
Window Count: 20
P-Critical Value: 0.2 (20%)
The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4
seconds and 5 seconds in the future with appropriate timestamp for each report.









Table 5-5 Scenario 5 Test Plan


Test
Description


Test Purpose


Hypothesis
Expected
Results


Test Design


Logged Data


In this test, the heading of the NaviGATOR as it drives will be attached to a
point object as a dynamic feature class attribute. Its value will be updated and its
future state will be predicted using the polynomial predictor.
To show the behavior of the polynomial predictor when estimating the value of a
non-continuous signal.
The polynomial predictor will exhibit poor tracking for discontinuous signals.
The polynomial predictor will reasonably predict the heading value between
discontinuity points. However at the points of discontinuity the predictor will
have very large errors.
For this test, the NaviGATOR's heading value is updated in the WMVKS at 10
Hz. The future state of the value is queried at 5 Hz. Each time, the position 1
second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future is queried.

The following configuration values are used in the polynomial predictor for this
test:

Minimum Point Count: 10
Minimum Order: 0
Maximum Order: 3
Window Size: 5
Window Count: 20
P-Critical Value: 0.2 (20%)
The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4
seconds and 5 seconds in the future with appropriate timestamp for each report.









Table 5-6 Error analysis of test scenario 2
Easting Northing Combined
(meters) (meters) (meters)
Average 0.676 0.600 1.276
1 Second Standard Deviation (o) 0.967 1.372 1.892
2*c 1.935 2.744 3.784
Average 1.423 1.236 2.659
2 Seconds Standard Deviation (o) 2.071 2.740 4.011
2*c 4.141 5.480 8.022
Average 2.479 2.102 4.581
3 Seconds Standard Deviation (o) 3.682 4.556 6.924
2*c 7.365 9.111 13.849
Average 3.856 3.171 7.027
4 Seconds Standard Deviation (o) 5.834 6.761 10.561
2*c 11.668 13.523 21.122
Average 5.516 4.454 9.971
5 Seconds Standard Deviation (o) 8.495 9.351 14.890
2*" 16.989 18.702 29.781

Table 5-7 Error analysis of test scenario 3
Easting Northing Combined
(meters) (meters) (meters)
Average 1.553 0.891 2.444
1 Second Standard Deviation (o) 1.472 1.086 2.008
2*c 2.944 2.172 4.016
Average 3.051 1.762 4.813
2 Seconds Standard Deviation (o) 2.820 2.151 3.876
2*c 5.640 4.302 7.751
Average 4.696 2.743 7.440
3 Seconds Standard Deviation (o) 4.274 3.375 5.943
2*c 8.549 6.750 11.887
Average 6.537 3.837 10.374
4 Seconds Standard Deviation (o) 5.911 4.762 8.311
2*c 11.821 9.525 16.621
Average 8.553 5.027 13.580
5 Seconds Standard Deviation (o) 7.688 6.252 10.921
2*" 15.376 12.504 21.842









Table 5-8 Error analysis of test scenario 4
Speed
(Meters per Sec)
Average 0.376
1 Second Standard Deviation (c) 0.397
2*c 0.794
Average 0.584
2 Seconds Standard Deviation (c) 0.625
2* 1.250
Average 0.811
3 Seconds Standard Deviation (c) 0.892
2* 1.783
Average 1.067
4 Seconds Standard Deviation (0) 1.210
2* 2.419
Average 1.354
5 Seconds Standard Deviation (c) 1.585
2*" 3.169


Table 5-9 Error analysis of test scenario 5
Heading
(radians)
Average 0.265
1 Second Standard Deviation (c) 0.915
2* 1.831
Average 0.419
2 Seconds Standard Deviation (c) 1.494
2* 2.987
Average 0.587
3 Seconds Standard Deviation (c) 2.199
2* 4.398
Average 0.777
4 Seconds Standard Deviation (c) 3.045
2* 6.091
Average 0.983
5 Seconds Standard Deviation (c) 4.026
2*" 8.051


















200






150



E


t 100
00 0
00 z





50






0
0 50 100 150 200
Easting (m)


Figure 5-6 Easting vs. Northing Plot for Test Scenario 1.














































- Easting Northing


Figure 5-7 Easting and Northing vs. Time Plot for Test Scenario 1.


I-
cI 80
w


E
CM
0


100 z





50





0


2 4 6 8 10 12 14 16
Time (sec)


















0
x xPo
x x

cA'n
QO0 AA
0 A


A
0 A

000 0
00(OA J


A
0 A


0
AA


- Easting 0 1 Sec Prediction
A 3 Sec Prediction x 5 Sec Prediction


8
Time (sec)


Figure 5-8 Easting vs. Time Plot with Prediction Values for Test Scenario 1.


S82

E


c 80
ILl


AA A
4K


00
0


X XXX X x


A A












































- Northing 0 1 Sec Prediction
A 3 Sec Prediction X 5 Sec Prediction


Figure 5-9 Northing vs. Time with Prediction Values for Test Scenario 1.


E
0


z 100





50





0


0 2 4 6 8 10 12 14
Time (sec)


Ix* x
,yX
oA A

-rrvaraooo
A A



















200 -X






150 0





CA
t 100 -
o0
z
SxA

A 0



50


Object Track o 1 Sec Prediction

A 3 Sec Prediction x 5 Sec Predictor

0
0 50 100 150 200
Easting (m)

Figure 5-10 Easting vs. Nothing with Prediction Values for Test Scenario 1.





















160



140



120



100
E



z

60



40



20



0
0 100 200 300 400 500

Easting (m)


Figure 5-11 Easting vs. Northing for Test Scenario 2.





















160
500


140


400
120



100
E 300
C c
80
LU 0


60 200



40

100

20



0 0
0 20 40 60 80 100 120 140 160 180 200

Northing Easting Time (sec)


Figure 5-12 Easting and Northing vs. Time plot for Test Scenario 2.























































100


- Easting
A 3 Sec Prediction


1 Sec Prediction
X 5 Sec Prediction


Time (seconds)


Figure 5-13


Easting vs. Time Plot for Test Scenario 2. Boxes correspond to close-ups of data which are shown in figures 5-14, 5-15
and 5-16 respectively.


400





E 300


LUi

200





100





0


120


140


160


180


200
























A X


505





E 495


U."

485





475 -





465
44 46 48 50 52 54 56 58 60 62 64
S Easting 1 Sec Prediction
A 3 Sec Prediction X 5 Sec Prediction Time (seconds)

Figure 5-14 Easting vs. Time with prediction values for test scenario 2. Close up of time period 44-64 seconds.























95 X





AE 75
85 A )



5 A A











X X
A X

A







Mx X



45 A
SXX A




A X X




ec Prediction
55X X A A







120 122 124 126 128 130 132 134 136 138 140
Easting 1 Sec Prediction
A 3 Sec Prediction X 5 Sec Prediction Time (seconds)

Figure 5-15 Easting vs. Time with prediction values for test scenario 2. Close up of time period 120-140 seconds.



































AA
A AA


XX
x


xIc,)I&


a, -
x

A x xa


AAAA A


XXXX X


A A
X


168 170 172 174 176 178 180 182 184 18(
S Easting 1 Sec Prediction
A 3 Sec Prediction X 5 Sec Prediction Time (seconds)

Figure 5-16 Easting vs. Time with prediction values for test scenario 2. Close up of time period 168-188 seconds.


E 320


u_


A
X X :x x


)KA


X A
XAA
X^






















140 I


120


100 i


80 -
z X

60 -


40
5-19








Nothing 0 1 Sec Prediction Time (sec)
A 3 Sec Prediction X 5 Sec Prediction
Figure 5-17 Northing vs. Time with prediction values for Test Scenario 2.























180



170



= 160

0,


z 150



140



130



120
30 4
Northing
A 3 Sec Prediction


A

A


x A


AotA




A
A x
a


0 50 60 70 80 90


0 1 Sec Prediction
X 5 Sec Prediction


Time (sec)


Figure 5-18 Northing vs. Time with prediction values for Test Scenario 2. Close up of time period 30-90 seconds.




xml version 1.0 encoding UTF-8
REPORT xmlns http:www.fcla.edudlsmddaitss xmlns:xsi http:www.w3.org2001XMLSchema-instance xsi:schemaLocation http:www.fcla.edudlsmddaitssdaitssReport.xsd
INGEST IEID E20101208_AAAAID INGEST_TIME 2010-12-08T09:48:19Z PACKAGE UFE0020089_00001
AGREEMENT_INFO ACCOUNT UF PROJECT UFDC
FILES
FILE SIZE 1477 DFID F20101208_AAAMOD ORIGIN DEPOSITOR PATH kent_d_Page_148.txt GLOBAL false PRESERVATION BIT MESSAGE_DIGEST ALGORITHM MD5
7e1bb5d171cae35253e475d563063d34
SHA-1
eebd539c078568cf34f4b4416cc2aa19a08a163e
987 F20101208_AAAMNO kent_d_Page_114.txt
50458bab8c3f09726f3bde79da58b209
ecb4ec36364e98706c71c9f803038dfd7505fc4b
104856 F20101208_AAALKM kent_d_Page_037.jp2
4cd8ddd1daf6f921c305a85eadc8e505
d37003ab7c9187bc9b12394882d3c7d66fa7cf0c
9648 F20101208_AAALJY kent_d_Page_100.pro
7dc873244a4b49a9948702409e3ba42f
104669420479e47eb1c4ff9fccef6c2d19a37848
8423998 F20101208_AAALLB kent_d_Page_068.tif
91527817d2bd70a9bbb4664c224ff7c5
56a230d791d8fd30b7bb814aeca1611264d43979
2100 F20101208_AAAMOE kent_d_Page_149.txt
a70e0d023684b1a589b071a9a2983a5f
ae67bc4adcb9a54fe263016637a23384e11d83d9
150 F20101208_AAAMNP kent_d_Page_116.txt
43242a279f79c28ffc0e51c2dfb90212
7b453b0bd856c0868a438f489ced582a7d201fac
478 F20101208_AAALKN kent_d_Page_049.txt
bddfe95ab145be21babb6a403342ad24
9ab6a30e95544d82d0003e7f5d3392d285f95bbf
23179 F20101208_AAALJZ kent_d_Page_029.QC.jpg
7a20187690cd0958e4f60d97207b47d1
3a8a3a0c441906fc082b1533db737d07c9d0de47
83202 F20101208_AAALLC kent_d_Page_063.jpg
135dce55998488919985cde2de9d174f
8268ae2e7e6f661f12e9a05f6cedcaab5279d537
1415 F20101208_AAAMOF kent_d_Page_151.txt
fe54d307d1f9fe67f49a5a3452684ef7
20d0476d62cd8a4f8fb5dbc71a7c163b80e8bb5f
446 F20101208_AAAMNQ kent_d_Page_117.txt
cc49c92184382c38aa9a0c512dbaa13b
cb72a096ff5b3557028ee3a30c99602cba119e32
1051960 F20101208_AAALKO kent_d_Page_010.jp2
c1236629e123da4cae514e958c1437ff
14047005d97ec132bad245b8b8628c5de61169cc
6753 F20101208_AAALLD kent_d_Page_187thm.jpg
41c0f2dde2243f060ab6db9f75841945
4e72149ca86a5b613b3084c42675a9f2c2151f06
1637 F20101208_AAAMOG kent_d_Page_152.txt
5d9a4f62c49272cddbc7db902d72669b
5d6fbfda31f2c0dde4c629277574b3f88cf8740b
2003 F20101208_AAAMNR kent_d_Page_119.txt
0b3fe4ae6404ede685267c621ad43e4a
7bbaeb10dd36aa63e3513df002dbcaf1978f5810
25271604 F20101208_AAALKP kent_d_Page_164.tif
d0d531a972bfb6c5b69ff3cb21f5a547
e1e72356e9496ec98b9733a15f92eaf06c4b668c
26144 F20101208_AAALLE kent_d_Page_062.QC.jpg
b3c641f747a7be5a9b44f90295ff6a33
186e0cfdfe911648f4d680330c4c8cab924a9894
2066 F20101208_AAAMOH kent_d_Page_153.txt
7bcf447a1721d01257439edd0b8cee4b
1d8dda6d9108d7dfeb419e0398149b454265866c
1998 F20101208_AAAMNS kent_d_Page_120.txt
7355a95d2091ea3dc35edc0728ee3227
eefa7fedecb785f580dc73b90f0cf03b9479cb14
53379 F20101208_AAALKQ kent_d_Page_125.pro
d8f9c3f9393d66d595e561e3a284ccef
70d8313d495015d3e5318915938205508f9a5a4c
1044904 F20101208_AAALLF kent_d_Page_176.jp2
c1bd9ca27b03e2fe24e918e011d7d4bb
1535b54043a47ae6df470a1106be3876797d0569
1846 F20101208_AAAMOI kent_d_Page_154.txt
cbfd3a8b0e2ef2cee920593c73f199ec
b51116b9a0f14069a5219b72634f6323095154d6
2130 F20101208_AAAMNT kent_d_Page_121.txt
5c6f5be07700d2f7fac1e944f19378ba
5fff7c451b6c40254cdef9d1cd2a25efad33c04c
54853 F20101208_AAALKR kent_d_Page_075.pro
d6cfddb3c923fad34915bf4d0319785e
1bbbc1a9ae9ebb53cab003376df6b67d76a371ff
7910 F20101208_AAALLG kent_d_Page_005.QC.jpg
c1f2ded8221b97df0c30d408fd7bf45f
b881466975d5b8f3b94ebe428710c78ab4ea616f
1999 F20101208_AAAMOJ kent_d_Page_155.txt
19382d4693798693657641a63ce59a94
96d2a745750209ea960bd4f394e0f88ff5f80000
2138 F20101208_AAAMNU kent_d_Page_125.txt
92f2007352b5311c9cfd7ae18dc46ee9
c600265cdd96512765dff73f7c926dc83c76883f
113124 F20101208_AAALKS kent_d_Page_074.jp2
851dae1aa4f6630c12663c1af1befe44
382bb6e376a91d25674f4630bbe93e645e6b3ba2
5476 F20101208_AAALLH kent_d_Page_186.QC.jpg
f6361f1f170252bec2967f3cf8d9fffb
4fda12ad6af56ebab50da86529badb1791e0f6bb
2002 F20101208_AAAMOK kent_d_Page_156.txt
df97df22fa3f334054a20bee3f30f84e
d165a5889fad17698843e9c0dcfd95a547de3554
2113 F20101208_AAAMNV kent_d_Page_126.txt
6f7948ebbd4f33ead71be7799f192346
51db244a66c302b964145ba68d90409c2636988d
21133 F20101208_AAALKT kent_d_Page_182.QC.jpg
64ed85ac62d96a354e2fabcc79d32870
27e7c0e56202f45b7d8f3ef7e798694d592e770e
25265604 F20101208_AAALLI kent_d_Page_098.tif
071d293c5cb0cff4e9a19ef778e449bc
9a43092d3f58ec053820af4cd85dedeaabeec6c6
1690 F20101208_AAAMOL kent_d_Page_159.txt
08770e388ee1beca331a02be75baf19f
a6ce3df9008b22e90adc16392d5d3ce26c93f5a6
1951 F20101208_AAAMNW kent_d_Page_127.txt
33eadd36485d60baf3eb57052b3ad2ed
ee2c9ac970860e73ca127073907cfab280cd11a2
77007 F20101208_AAALLJ kent_d_Page_009.jpg
5d9bda6d14d66b9bf2717ca77b286bc0
249cc8566e615903c87809a3af44f232c08f410c
4168 F20101208_AAALKU kent_d_Page_130thm.jpg
69298dd425aca453a7a1a898e1f0ac01
6f3f6c5d45a3b22ec6b0a2b2ca288dfcb721c65f
2487 F20101208_AAAMPA kent_d_Page_187.txt
23984c0a8f59f6aca5633a5ec77f1101
42081646411e9b79229c27241dd8ff04d881f42b
2052 F20101208_AAAMOM kent_d_Page_161.txt
011bd0b83494348d3cb984e3297aa6d9
86534f7f4fe3fb1b6886cce357af6511ed0b5e47
1141 F20101208_AAAMNX kent_d_Page_133.txt
64a1415528f1ea32577e52efc3328147
0eb7de09d3a7b48645354bf469231bfc5a9a7117
2161 F20101208_AAALLK kent_d_Page_122.txt
17ea75d98c6260b996d043153e9c76da
c1d43f2ae073b94d832dca3d7ca667f94ceed3b0
11158 F20101208_AAALKV kent_d_Page_088.jpg
1ef7e7bf2922319ce67b1cd69402425e
458c9c14b826fd00cb9307a7e20d6be2766dff0f
622 F20101208_AAAMPB kent_d_Page_190.txt
6a4f52af70977809c1cc24224f4b77c1
55166e4b6e1b9cfe2b16af49986783f55e9a498f
1935 F20101208_AAAMON kent_d_Page_162.txt
b3e4aba202d5f323be28f31e6fea5fe6
0017035c70123e10768205c2725d3cecc59e11f5
1207 F20101208_AAAMNY kent_d_Page_138.txt
59d428559f8cb3826998db85f4a38d00
9988f5ea51a5b214ba153470b9bc849fb9f23d5c
F20101208_AAALLL kent_d_Page_067.tif
6cab84481445837e073b93882d559ff3
b328f33439b48186b350884f2d1e22af1217e73a
59773 F20101208_AAALKW kent_d_Page_136.jp2
a8e9a5169de1d0bf8ff850053f54d940
8ce6e1965ed41b4858f6cafeaf5317a9c107f9cf
3054082 F20101208_AAAMPC kent_d.pdf
9731b38f24e768a0aaf61b20801251f9
5aace444355eb7937911d0bc1873fd1c86f685b9
1959 F20101208_AAAMOO kent_d_Page_165.txt
7a278ed6ffe45fb193a2fdddef99c0a6
8f5759f52739a059695604075cffde71b3c9da82
1071 F20101208_AAAMNZ kent_d_Page_139.txt
48546aaf3339be43bac6437a0fd95a33
21de8862a44459a4b27721130ca735fd3f2ee854
73823 F20101208_AAALMA kent_d_Page_072.jpg
2033f7cc94c9fc1fb200c2520ba85bb4
a25bf976bb71f902d435f14a3820926c86e1bf91
1051965 F20101208_AAALLM kent_d_Page_124.jp2
763e5b0dab0f7d386806a280d8d0296b
eb726b3ac1c102793835be85989cfbcb8869aff4
75739 F20101208_AAALKX kent_d_Page_183.jp2
17aa8d470de54bbe1be9f7976d3b3154
a0c3238d143f0020cfae7d79fbb8e4ba4297ffda
3083 F20101208_AAAMPD kent_d_Page_002.QC.jpg
0c62e0208215af84c8aa290c145e0473
970d342026e33e2c12fe94c66873e84936e2d892
2102 F20101208_AAALMB kent_d_Page_172.txt
c0be6d80553d8903069058a58e5470e7
1cb554d0ae602acf9b62db2189af40287e7cdd08
51230 F20101208_AAALKY kent_d_Page_017.pro
4afe612adba0f76da0883bad0dbb2e3b
afc3008080c886f7cec4e7b7bfb6ba78e4d6ddb4
1334 F20101208_AAAMPE kent_d_Page_002thm.jpg
5c1d7888bd1c309d59d849b610a0989a
f8578c691c5690c66925955fb52986d9fb250dcd
2272 F20101208_AAAMOP kent_d_Page_166.txt
8cce2e1c2320f371521a8a6122ae2a8b
cce577b75cdc47f00eabde9003c42e96b89e7bac
76750 F20101208_AAALMC kent_d_Page_058.jpg
bffdee93e02cc06600e93fc841c4b9b6
251e811283384a771a2c35138cc36561ca02e34c
448763 F20101208_AAALLN kent_d_Page_095.jp2
f4378845d3b7f45ca4242fdf89692370
f65894a3aff2e31cd3e72de584cec6ad9666ca94
59355 F20101208_AAALKZ kent_d_Page_173.jpg
d78327f9a4eb46dbdf10c1a21a03523f
b7305981bc3678b4773724f991c4ab0a67542487
4590 F20101208_AAAMPF kent_d_Page_003.QC.jpg
57d013e5e41fc162af2da24f9a17c0e4
a078bd39c7423683afd1697e7c5e4d6fe28cabcb
1744 F20101208_AAAMOQ kent_d_Page_167.txt
0c4f5388d1f3d2dc34be04d171605047
344044e2361c05e57d6f035d13fc6973d6f8ec47
2759 F20101208_AAALMD kent_d_Page_011.txt
8e912e70d491c8912c563974803536c8
b50413beb968145ee1bfba3fc05785632c2d3abc
1697 F20101208_AAALLO kent_d_Page_082.txt
78f9efcac8ae510f9cf8de35f7bcc204
c792ac9e8042ae04e3377e17eda00706c1d659c8
24847 F20101208_AAAMPG kent_d_Page_004.QC.jpg
f8fd964c8096af7bd3e840b62f12595b
4c9e22af5bfd290443d5168f7af75107d73fa7fb
1966 F20101208_AAAMOR kent_d_Page_171.txt
e029f67437d2e23aca68f34c035ef7ca
6343ea712d23f88d77e0dc93bb17424aa8a56707
134 F20101208_AAALME kent_d_Page_184.txt
91f010717665e8d8cab374ada322a82c
7863b354564cf832d1baf733aaed5f35752f58f9
17891 F20101208_AAALLP kent_d_Page_170.QC.jpg
7d40d9aefc1af68c28a58268e3992678
e09eb162b24e6f8fa73e8d9bab3672f7a86dabd3
6780 F20101208_AAAMPH kent_d_Page_004thm.jpg
0758fc030c1068f077d454903f51279f
6813e944944c1c1e4205b4696630d642c9265a50
1803 F20101208_AAAMOS kent_d_Page_173.txt
d69e8aa98a88f1c3fc1756d3b86c1e2e
9181074a2b1b6e27b2f39c5d5024554feb2e4715
54600 F20101208_AAALMF kent_d_Page_038.jpg
0f08a2a277c54e6153a839be21ed8413
cf3c9d23d559d152318b72a4629c928b18e4f264
124872 F20101208_AAALLQ kent_d_Page_062.jp2
58b5899f64a9f374e23b9055017d9e67
a92e467eaaa368d1d47a99363a4adb18aa005b95
2519 F20101208_AAAMPI kent_d_Page_005thm.jpg
3a1197445e5e00dc7ecd921f40449f15
3d1e2aeb0d8dab20cf8e4fd7b5abc2aa65e035ea
1559 F20101208_AAAMOT kent_d_Page_175.txt
c8fbfcf974ba5a827b5862198cff9a8d
3eef8e6f1bce1fb626612365239a3690ddd0ff7a
837337 F20101208_AAALMG kent_d_Page_157.jp2
b890d782181c99a9c20dc7c9bd18bb17
380ae8e49ab0c306aab0f6ea24202ae17359a228
F20101208_AAALLR kent_d_Page_093.tif
67cdf2bd42ce181e8d3ed1cd4a661316
a3f38a7e2f810d2f03b637600602850f3ad5dbb3
22537 F20101208_AAAMPJ kent_d_Page_006.QC.jpg
c7f0b6338f758bf762c9d8a39376be3f
43b28cfa053e4c8263ae679e5c574e13af614447
2084 F20101208_AAAMOU kent_d_Page_178.txt
63d421d2316df9e94b6330aee02ff8ec
69a55b844f1b73e82f4f2955cd15697e9d638ba1
130172 F20101208_AAALMH kent_d_Page_187.jp2
7a7894adc63b8c49e66c69e481b35ddf
04ac9f03854a6dee4f40227e79ef86a7ccba48eb
14462 F20101208_AAALLS kent_d_Page_146.QC.jpg
87b947d0eab87326f63a67ed07225592
98e985c6113b3a1787f529b92ef9b95b67a4c89d
5990 F20101208_AAAMPK kent_d_Page_007thm.jpg
df4db6c112a42496df84ae39123335c8
e6eb59a0e7476c6b5150a524d35ab8350ca9f2d3
1804 F20101208_AAAMOV kent_d_Page_179.txt
255fce6ae9d59a2380e4764b0d7fb848
d402ae3826692cb6d3bf6a6ef11feb63208fcf63
1021 F20101208_AAALMI kent_d_Page_131.txt
bbe4a01b9d2cc288c634628a8b4dc014
d8dedf63c9b9e906f2aba7ffa386f4e1a2e877c7
4992 F20101208_AAALLT kent_d_Page_093.pro
696da8a63c499c15afa8ed6787049e23
997821332df5fa709a2d3526245c5381f8c1a05e
8088 F20101208_AAAMPL kent_d_Page_008.QC.jpg
e9274433813f31baac78460cc5af90c0
4a28a971259fd0b50c2385c214393a6fa25bc7e9
255 F20101208_AAAMOW kent_d_Page_181.txt
c45aa891974e852813bd5f27583dd14a
565f22b5d2abfc1c61dcabc46f661a53129e090a
1051964 F20101208_AAALMJ kent_d_Page_156.jp2
0b02e886d2755f8b36ad26ad8507edab
33e612f0fbe8a0056a6790771cc473e5895e51a4
28887 F20101208_AAALLU kent_d_Page_005.jp2
03b855e5a8250c644cb0fbf1eb897ddd
58eed1facb7a181d171e8ed471714e734d38e526
4044 F20101208_AAAMQA kent_d_Page_019thm.jpg
006354c55164478d7aa4794eb93324f4
c98197df1a61212d98eb8a23752c19f586213826
2472 F20101208_AAAMPM kent_d_Page_008thm.jpg
1e6319b58da3507b8a5dbe545b46d835
bda827f3671f0a8dec59f82262159d3df22325c8
1981 F20101208_AAAMOX kent_d_Page_182.txt
6522c4e1fd5127e8536a8333a4234f80
4ef4226f8fb00e06537917c90676476272fa833d
628289 F20101208_AAALMK kent_d_Page_118.jp2
8d580434357ca52d779150ead798803e
28a73dc26afd67c3c23009844876ab331233acee
75409 F20101208_AAALLV kent_d_Page_066.jpg
7dd019acf368b63e719c85e31cba9c30
26eaf3e38bbbd521be6337ae373c1b3d107a308a
6682 F20101208_AAAMQB kent_d_Page_020thm.jpg
11a5e63cecf00f44c210c50852624793
42278d1874b155736ea65d97003be90e39acdc6f
5628 F20101208_AAAMPN kent_d_Page_009thm.jpg
f2c2e025c48c2a1b72ba850fba4982cf
39eecf1f614de97cf8ba9ecde875c4d2667d1520
1956 F20101208_AAAMOY kent_d_Page_183.txt
485d1693c5e566aa9abe4ae6c781a2bd
de947f5ac0a97865b635d8e0274659713b3830cc
3600 F20101208_AAALML kent_d_Page_114thm.jpg
669f414cefee678d41ddc0f1c25e557e
4c0b73211e4214bb8daabc97346ceff99e68001c
8735 F20101208_AAALLW kent_d_Page_067.pro
373b15c0d3d0b41461c21b498df4d257
b46acf436c2778ee9792bdafb5f2c6d19c09f561
7154 F20101208_AAAMQC kent_d_Page_021thm.jpg
32116df20a0871e2a05832daa97187f1
c71391cd4804edc7d0d2e636e425e3ed4bfb084b
4390 F20101208_AAAMPO kent_d_Page_010thm.jpg
f65775a6a358a50f52877d3e2178d5c8
6b4c21765c319354fe07a8e5dba94a06a91ef7ec
2515 F20101208_AAAMOZ kent_d_Page_185.txt
b419ec65dfc61352c6e0ea567c9126af
00edb362d22e959da21b9ef4e8d436caa3861f61
1053954 F20101208_AAALMM kent_d_Page_071.tif
602b1994abae0da82e2cbd99addd4a56
650c5192740071c70bb9193ccb62882cdce817b8
5446 F20101208_AAALLX kent_d_Page_181.pro
d05ba59bc2889d50090c9d85e1b4d1ed
34f3d09c8cc8da286b24c561d3084df420d5553e
685 F20101208_AAALNA kent_d_Page_031.txt
a2d542a0a8be53b0000bb79d3bf01129
73ed87358b489057543856ef76a7d6e29685d28e
6898 F20101208_AAAMQD kent_d_Page_022thm.jpg
2a997df7f6dc080338b14a232668620b
09c254364e633454dabe350214371e2797696587
22356 F20101208_AAAMPP kent_d_Page_011.QC.jpg
eccc90705c20b8fe19a7b4297b0b21a4
d50031e883b09ced38981afcb6cfd20bcf8af582
1989 F20101208_AAALMN kent_d_Page_072.txt
804e1c001a343aba01a33b307db6447b
72d072f90f5169c540d2c8472c30d2eba943af1d
46030 F20101208_AAALLY kent_d_Page_054.pro
acb5f8114abd85599d50cf8c0d885a13
88798fe440beac7785e798a3e50878f43e737f02
14719 F20101208_AAALNB kent_d_Page_135.QC.jpg
f7828ac9a2ffcfa908ef9f95fe31b865
bb4c31b30da05412b82928a2c1dff99cbbb5339c
6987 F20101208_AAAMQE kent_d_Page_023thm.jpg
0fbe59fa5dbff6d629d604a4c9aa5d64
dafdfb3e79d8dce95e81d9ef3db6e6d186c6fdf5
F20101208_AAALLZ kent_d_Page_130.tif
ee1c2dd7d38b0736c9673f26547ebdb6
ed585c4d9bc9112fa9f80a4325cdc07b3720ee13
78111 F20101208_AAALNC kent_d_Page_059.jpg
b4e990f71b5b3d35e510802310a46e05
38cace158b0071bce00b87a2d5dab7637b278932
24886 F20101208_AAAMQF kent_d_Page_024.QC.jpg
07d0263ca14947cd6271922d8b9e98b0
3feb45015d7f47e1f901c44771bfdb633e719910
6154 F20101208_AAAMPQ kent_d_Page_011thm.jpg
af4d000549a43cfa6305d8ce9d6045f3
bf691daa3cbeb16da3baf1c657964202e72b179d
56810 F20101208_AAALMO kent_d_Page_086.jpg
636580fd904e95e0595e4b8f0eef15a9
763cda22ec58287e1fc53e74bac7896d8e7d4340
8115 F20101208_AAALND kent_d_Page_106.QC.jpg
62d8ac9bc01d1c10b423488e67478c76
f255e4e27f4d65fe8d6b8fb2c71d3c5293edcf80
7045 F20101208_AAAMQG kent_d_Page_024thm.jpg
97e63e8602b4a181e58cdb0e9b9f8d6d
8991faa85cb7de9351a54150aba742767ea1322b
27078 F20101208_AAAMPR kent_d_Page_012.QC.jpg
36eaec72af16a338b474f29348e13364
911959b66559c715722e80c7189ce252aacef078
71557 F20101208_AAALMP kent_d_Page_129.jpg
314e433dc17622af43950c3e039c0eff
5068ed79981b956561c74c54485a7cf887bdabad
F20101208_AAALNE kent_d_Page_155.tif
d9f0b463456c39ba83afc8fff4a920fb
0b95d4513753ba9a86850f57e3940a913a4d37fe
23906 F20101208_AAAMQH kent_d_Page_025.QC.jpg
312cdef1b5068c63730f95c2228cd6f9
7444a3023a332907e83d292402315fb15a4a2f0b
7152 F20101208_AAAMPS kent_d_Page_012thm.jpg
c390b3457d2a595ffab8cd9d78b1c961
8f3f729fce65a95db0f4b1017d8a0c0845911a8b
F20101208_AAALMQ kent_d_Page_158.tif
f64b9c7ac7d3b14c481e821de6b245fb
e57abc8a8d33d34b3734b27b6ad9bd9b8fe88282
2179 F20101208_AAALNF kent_d_Page_021.txt
729f59c61dd273d68766eca9512f9099
24c9c26b61c0d6ecb5b2eed9adbc6aca30abd507
6818 F20101208_AAAMQI kent_d_Page_025thm.jpg
32e2e040cdd17461750cd2fd8f8ec364
677ee8ac8b826bf01b77b5ec2fbd28b9e7e32c39
20026 F20101208_AAAMPT kent_d_Page_013.QC.jpg
01fdd3fbe3290f338ae46d922025478b
68bfc54404c432af41f2cb25ff955c43038eafed
66310 F20101208_AAALMR kent_d_Page_158.jpg
754a7bc85629e7ec58ebcd243fee4cee
c70bfb526eef72fba2a95528dddff17697489437
1695 F20101208_AAALNG kent_d_Page_078.txt
446807bc77b1da224fabd2ddccc001e9
7a3d6d9cce58679a7bcb270760fc26170098896f
21912 F20101208_AAAMQJ kent_d_Page_026.QC.jpg
724387bc373d9b1c4fddcee7bbb5ec9f
718f3cd5feacb852bd07081c8569391bc1c680a0
9165 F20101208_AAAMPU kent_d_Page_014.QC.jpg
94bb8875d0181c59208aa6359824716e
ca21aa0efcb9505a63a3ed36c100a08ec45cf2a3
F20101208_AAALMS kent_d_Page_021.tif
5ab08ecb259b496fc1f039e48c74fc4c
06ad01296311d43229c4cd0abcb4b4d1ba7f14fa
25917 F20101208_AAALNH kent_d_Page_056.QC.jpg
f9336d3f11931fdf8a92d21d5df3f067
a00d4810a4210f0e6f237aaa41fdd7bc11e0ecfc
25796 F20101208_AAAMQK kent_d_Page_028.QC.jpg
55e2c29c1e5828cc693647012fe83bcd
9997302ee6e9afd3a51b9ef6d2ed0a2ccdba00eb
23889 F20101208_AAAMPV kent_d_Page_015.QC.jpg
498bebf07b686b3fa5547ee834532937
b41d50ec7fcbe7057fb36b4b17b53d6b37d1e27f
1029 F20101208_AAALMT kent_d_Page_036.txt
d08fc29e60041efc84e607facf3339c3
d880dcf81cbf59a15d2bb3672d8280dc5af6606a
5045 F20101208_AAALNI kent_d_Page_041thm.jpg
31e997381f0b0315402a0eba5a168127
db28810f6ddddadc91cb44af92515ab0dfcc7fa3
6812 F20101208_AAAMQL kent_d_Page_028thm.jpg
25be0072c94227b84362483ec45c3fe2
9ac4687e5794105edaaebaae17bc8b30350ce135
24450 F20101208_AAAMPW kent_d_Page_016.QC.jpg
b5c2557b82a868bdcfbfa36d1a824294
60b88abd30d2017462bfd54d02bc771ce49e40b9
2116 F20101208_AAALMU kent_d_Page_077.txt
39c805bfebc4ae2039eaab5f1eed0b73
7c7f4c9cf8c2ce53e7953a96759176da1727ecb4
48034 F20101208_AAALNJ kent_d_Page_129.pro
40faac55e9e8ab65786ed0629c10b24c
8f85d024f7874311c95e10a7a4b102e0d91d76b8
5413 F20101208_AAAMRA kent_d_Page_038thm.jpg
f1cfbc9a67ee5020a36c3d9970f6663c
795bcd59a2992d2f6b3dcc1ab9329da20572a076
6656 F20101208_AAAMQM kent_d_Page_029thm.jpg
5416e3bc90d12c0047bc816b7c9a0441
669130cfcca267cc4b0e6437411ec8d9e34a1ff7
6702 F20101208_AAAMPX kent_d_Page_017thm.jpg
e160d941b6f5c43c081f58d4c3e32020
d2150132315ba61f418d8c88158b57e27016ef6b
8734 F20101208_AAALMV kent_d_Page_090.pro
e426edffe5c2719e63e489cb0ee45b76
e7d768bf58f8aaffee7dff34c684ccd8f091ccd3
25040 F20101208_AAALNK kent_d_Page_017.QC.jpg
8b64241542adb6893293057f90ca0ce2
2e2a7686b9e2af517214f385288870b0fcb6c818
18633 F20101208_AAAMRB kent_d_Page_039.QC.jpg
a05998175d67d78752128d3d958e9041
1d5aa57cce638e8977ecd43c843b9609fae96a53
6429 F20101208_AAAMQN kent_d_Page_030thm.jpg
c85abd180f3b191022fd83b7d412d9fb
77fc5b595ce45cd2290dcdfddd78af163da5e3cb
11745 F20101208_AAAMPY kent_d_Page_018.QC.jpg
49ef1d6a2cc679c2062ac7d3d1eecc97
15b00957c72ff9650255f60a956b52061d8b2cf0
23710 F20101208_AAALMW kent_d_Page_030.QC.jpg
768c8aaf223d81de453bf18f68815f2e
8bf1861b326c003290e75e79856d15b051b04ceb
640952 F20101208_AAALNL kent_d_Page_106.jp2
675b906204de97c50d83eb59516e8fa2
73ccc567659260c5ee0031649e07b32f34ae16e9
5316 F20101208_AAAMRC kent_d_Page_039thm.jpg
f6d743fa90d48661e925f1844a4f1e02
1af7088bf5bd342b2dc5cd04cbfeb736927fde10
3170 F20101208_AAAMQO kent_d_Page_031thm.jpg
cdde15ebcaf39b0e6a73a4d9a61f5a8e
1cfa59ba4d369240191da02661fc573cc09a932d
3586 F20101208_AAAMPZ kent_d_Page_018thm.jpg
c81b15dfe26e50ab9b4ead6e3b07b045
ced83fb53b57b66b1fe1d8680fcf7e192901d272
21588 F20101208_AAALMX kent_d_Page_145.pro
e06e543d11889f8919cde4fcc439dfb3
ae9fa1fa00117fcf817713437c2a280aaa891ce3
26010 F20101208_AAALOA kent_d_Page_067.jpg
f72380bdf087ed4dcc3ac61e7a2ce8ec
1ff8d025ec12fd55a43a1a885ec042857ad36a1b
5146 F20101208_AAALNM kent_d_Page_154thm.jpg
223663dc6c22a08aac3b92f18935ea53
643e95e0b1f2a84404c1f4300632d4d9501a44a4
21385 F20101208_AAAMRD kent_d_Page_040.QC.jpg
c106540a7ddd457294c51c5b759e200b
d2d35238b12ecf4c4c0b5ce5fe698d31524866d4
5049 F20101208_AAAMQP kent_d_Page_032thm.jpg
227c5dbd0c82ba979f9bf1eaae35b9db
60e23490629b7afc27c1e8175665435e5f7e92e0
53867 F20101208_AAALMY kent_d_Page_028.pro
bc45791534772a150cf99d54d5c8ac7a
8b593b0fc7bf7589cf2ebdcae54746d5ac18e1fa
315242 F20101208_AAALOB kent_d_Page_092.jp2
2b613721ed26d3854aee620150182fb8
714cccf94eb436c7a8804182c653b296d5785675
23752 F20101208_AAALNN kent_d_Page_124.QC.jpg
5cf1307160401734a3a5a843e72099aa
97df049a507e66010db5984375371a32da4fed13
17123 F20101208_AAAMRE kent_d_Page_041.QC.jpg
bfd43f122ce1d75b1349c6e2ff7186df
ec7cbb3f35c8dc7ac59587bf0b93b34dd84925d2
8653 F20101208_AAAMQQ kent_d_Page_033.QC.jpg
73ee5658ee13d6ff9a2bb1f532c2797c
23df8e40b3377c7219dfa2d1b4b1fca7e29448ab
72586 F20101208_AAALMZ kent_d_Page_120.jpg
ea11c1c8cb461c6b87e7b30c446f94c4
5fbb82d582a373272c6cfb03c39a4da42f8f5063
7971 F20101208_AAALOC kent_d_Page_117.pro
71e980f6f8cabde561e3f6c8cc607a1e
29d7ee50f1d2d9e36ff76c6ae0d022260f91d56f
865 F20101208_AAALNO kent_d_Page_018.txt
85276a05827d1c17037b15714d06d3ca
c654c16a97996920d1f298ab678d4c8b87399478
5318 F20101208_AAAMRF kent_d_Page_042thm.jpg
d5e867b81a4ae7f225e16bd1e71af974
613e6971a6eb38c46a43b1a57f977133ee1d0959
19600 F20101208_AAALOD kent_d_Page_123.QC.jpg
b014635081d1e91c983e6bb61b635322
b6405742fa938ed9e1b580719084888e2395d3dd
21138 F20101208_AAAMRG kent_d_Page_043.QC.jpg
d82f9d5dd384bb032e9e0cee9ec1df7d
12953a127ae27fe5aee88cef72e3ce30802a75e2
3000 F20101208_AAAMQR kent_d_Page_033thm.jpg
9a96155564995e82bfa1b49829267f67
2c94118eef8109e0442572c856966235de2eeb86
F20101208_AAALOE kent_d_Page_184.tif
9fa6aafb001f2ba5795e57e3f1a7e0f9
c7569091ffa3b4d1ca306da7a3430b0f0c7f47a5
13142 F20101208_AAALNP kent_d_Page_131.QC.jpg
b829cb12505c71156421053543330495
1c7b2f7bf21aff6d3d4a4b5cc3eaa1a40f517596
6023 F20101208_AAAMRH kent_d_Page_043thm.jpg
1ac1e81736f609a2809fbfea6ef7598f
ea19e51580ba2f748a2fc6ec87f10e926bd2ce04
23720 F20101208_AAAMQS kent_d_Page_034.QC.jpg
4f6f5462a39816a0de4fdbc750422ad9
bd1ae5a7c0f48213f2af4e63cfdd20c29ce2a7ae
43807 F20101208_AAALOF kent_d_Page_146.jpg
51773cb4457ee4d47d39d91e053e1bbd
e0ccfb23022750ec5394d8f121b534300220f60a
F20101208_AAALNQ kent_d_Page_017.tif
17155101437fbb36525d4d727b19c95a
d06054522749a8c768df30aaaed31399b0dcc0d0
22303 F20101208_AAAMRI kent_d_Page_044.QC.jpg
8a757634350a59e3fb1270183750ce09
eee162845d34d27cd31aa0ebe37d90edbac5ad7c
6690 F20101208_AAAMQT kent_d_Page_034thm.jpg
8b23a7a0c25cb841cd04679781b4f42c
1862721affbea34c012a0e99c10cbe184dfe12e3
12492 F20101208_AAALOG kent_d_Page_019.QC.jpg
3f2849dd164cfcd75a75a0f0d2056d25
ab1cbe77bfd843c3918f56c47250dc0b53af53de
F20101208_AAALNR kent_d_Page_011.tif
944fd6e025a404b625d52bda8d5181f5
e60d3e2a4de674847e54119b68b3d28091543774
23686 F20101208_AAAMRJ kent_d_Page_045.QC.jpg
1276645a7ca9472c2416bdf3be384761
41d2dd9f60660d5a7af103d0e24145561d62e497
23747 F20101208_AAAMQU kent_d_Page_035.QC.jpg
1005997897534038c68fef5935609ca4
8017a3625ea8ea1655989a4ec269cc49bdab1898
5981 F20101208_AAALOH kent_d_Page_040thm.jpg
0773493837f0f46f25b8a24f27b70777
3278c89a6603e00925785e00b4af8dbe984a5d02
71993 F20101208_AAALNS kent_d_Page_035.jpg
444d97c24819a63551375d0d0337be56
8440c55c1dc80ecf51f8f59d73e636ab709bc2c0
6286 F20101208_AAAMRK kent_d_Page_045thm.jpg
cf4d4494227b0388f2b21744b02cb1d9
61c0e85a6387c7f826c0fe98b119e1883aa2c8e1
6628 F20101208_AAAMQV kent_d_Page_035thm.jpg
27d15a49aafc664160a777885dc334ae
2c7dcf880f89250acc026861dd73b92969dd9783
116502 F20101208_AAALOI kent_d_Page_126.jp2
3ef5cd9ef0959fe6fe996a5c81719b2e
e868be139cb8d06cbed813305ba9d2a2652ad7c3
2460 F20101208_AAALNT kent_d_Page_116.pro
98bc635efd4a6e1c5e8656dd16efd9e0
6c71f03ac3c1531ff49b45926383f0edfe560e25
17878 F20101208_AAAMRL kent_d_Page_048.QC.jpg
d4d85f1e1702783ec731d1bbaef47c65
898c9c7493c6d9fea3f01642dc23dc19880179fa
13882 F20101208_AAAMQW kent_d_Page_036.QC.jpg
688631c2d63b4091c599605f74b2e407
56cd7be59f4b110cbf17c7a50bcb942ba285a084
8741 F20101208_AAALOJ kent_d_Page_095.pro
dc2dc43b9899385bf6ac57a74bd01204
9a376b0914bd744f3e82e5d5ee462e68809bd74d
75762 F20101208_AAALNU kent_d_Page_048.jp2
cd12c22a1d03ac781b65b77353b95b75
f3894e90ef676b7b75f52525a66e045cdbc8eaf7
6181 F20101208_AAAMSA kent_d_Page_061thm.jpg
399b6460c42d5f460fffe7e6c7e6e356
cd47ac5e29cc5300e3e864a9be358d9dbef2762c
19543 F20101208_AAAMRM kent_d_Page_049.QC.jpg
b90017df4794f5dd15c3a5dd64bb5458
033b2ab46b840fb4a45a2f51e0d9c7ad871d8fa0
23361 F20101208_AAAMQX kent_d_Page_037.QC.jpg
dc6b7799cf6b239814ecdf9570c8d744
6967cb34fe6e7edbd3a12dce91fa10b262b8f96f
49382 F20101208_AAALOK kent_d_Page_033.jp2
484ba7fb316cd50bc2c709bd69f2c2ee
ae1099e3eca1e161eb53760ffd9791cbf9ec298a
59856 F20101208_AAALNV kent_d_Page_149.jpg
fa51624e24ea76f7e208ceace09b22c4
2a45445924692b93a3745e791fc52143fadf0850
7032 F20101208_AAAMSB kent_d_Page_062thm.jpg
bb82660dd48ef83785636c53184cded0
350e624211df45ca573c591f79df1cfa383fe892
6208 F20101208_AAAMRN kent_d_Page_049thm.jpg
d57f949099201cde7aad58c8d88c9cb8
aca0cc9be5c39c2a23e899b245812998321f8961
6288 F20101208_AAAMQY kent_d_Page_037thm.jpg
0b5ce91e3c859977c3d36841b1e6cb6a
ddddfd73e6700773707427df69a5df8b630040c7
1894 F20101208_AAALOL kent_d_Page_170.txt
28a7ab4d568439ca0d1d82ffe468a3e9
c606b0eb5a02a1e96dbc85138870d1a47179d977
76613 F20101208_AAALNW kent_d_Page_051.jpg
e9ca6bc83d19f1ec67e5dbe8d86fcf0e
73e663423fe8fa6f1e23ee13b25e36d5353e17be
24946 F20101208_AAAMSC kent_d_Page_063.QC.jpg
7e2bf45f59223b976aa6d40feeca4633
430b5366fa682670cb9bd0c79fdc73397fdd767e
2466 F20101208_AAAMRO kent_d_Page_050thm.jpg
601295edc1cff3de8d51e4e99be06c85
0c8fb22e7c32eac0cabfb2dc360c45cbb57edace
18959 F20101208_AAAMQZ kent_d_Page_038.QC.jpg
5484d7471884fed498843ab616892afb
07e36998f0309629f1b6a1724b05974c11545211
70315 F20101208_AAALPA kent_d_Page_076.jpg
0628b240fe5a5925c1689b87632766aa
c8b72c57752ec026b0895a2ce30f65e0a5f0ee72
26162 F20101208_AAALOM kent_d_Page_136.pro
2cf236d558d740c6c9a9a3d91507594a
8e7afea0b72c8baa8cc17cef2c198b8f0e7a3f0a
6100 F20101208_AAALNX kent_d_Page_044thm.jpg
88120651305fec66f1944a9edf14b759
dc068b5117a9a8963c675936d8bc7b3a52982604
19540 F20101208_AAAMSD kent_d_Page_064.QC.jpg
0894fd5bec366f32829de0422c27f6ea
ee0983703d020315734838ad9797d3398d77ba24
25201 F20101208_AAAMRP kent_d_Page_051.QC.jpg
0115c371be5a891e3956eb9e71e397b6
9ec9269548e0069c7a31a00bff3bb5ee0da70f39
514 F20101208_AAALPB kent_d_Page_095.txt
a330c6bef22c878af48416e61936ac63
17caa8fa89104f586553b4b56f5a62005c84e790
8111 F20101208_AAALON kent_d_Page_107.QC.jpg
8d62ca887c27d7a7a9faf4e9cad04a74
722cb231846872a8c8442cede12aeba88ffb6c09
2280 F20101208_AAALNY kent_d_Page_016.txt
aa800b426774e98fc714258d61adbf00
1956c3225bbef7c064addab8c880245d059120e2
5050 F20101208_AAAMSE kent_d_Page_064thm.jpg
fb36a4ef20f7b1670843bc2039df0125
7eee158fa9adea408c5046d809e813dcbe6da5d0
25205 F20101208_AAAMRQ kent_d_Page_053.QC.jpg
41781e7fcf4263c69e1f6655fab05a0c
1cc1ff4ed8a30b41cfd4fc9e578ef40dde248076
4618 F20101208_AAALPC kent_d_Page_151thm.jpg
5f544d12197d0b40213bdd2b3b9d8713
b1a563d18e6fe8a89bad14b78a7f9a6c953e1f50
117023 F20101208_AAALOO kent_d_Page_053.jp2
f99329b1a0821df3de9fa83be1e190c7
5a31a1bfb02573395e28de239547a456786915fb
1000528 F20101208_AAALNZ kent_d_Page_174.jp2
5662fbd0fcddf0f322af93796e563ccf
4103c906b0f975acedfc167c9a37feba9d910461
4861 F20101208_AAAMSF kent_d_Page_065thm.jpg
4ea200ea5c4937aac677095ec7fee982
4486f5994fbad2cdf9f0e912d63517a5ff6b6473
6830 F20101208_AAAMRR kent_d_Page_053thm.jpg
58d3c981eca701a8b7b555725fa8c5bf
63bc106c38aedbd6c0c199ca0a0a670317db2661
76378 F20101208_AAALPD kent_d_Page_121.jpg
61cd6e7c5f6c406f9804976672ca9700
f796d610f69c1fc3a735a6b9dcb6b479f9c06b8a
497621 F20101208_AAALOP kent_d_Page_100.jp2
aa7512b032ae1227fc7876cbaa6437cb
49522f89363d28bcb52b138278478fc4f72066ae
23525 F20101208_AAAMSG kent_d_Page_066.QC.jpg
37fa0c96517742771a63035658df4e9e
032d237b1062e0d2cf51d8ee76f07a3db38c5ff6
73807 F20101208_AAALPE kent_d_Page_027.jpg
344ad8c41f79f91694b98eaab49ae78f
dd5f60aeb3845d2de0c6de738fb6663fb576434d
8293 F20101208_AAAMSH kent_d_Page_067.QC.jpg
499170e359fb92fd3b3632307e130aae
cfd91f7d38d4db05d66ea4fc5eca509ba449c37c
23069 F20101208_AAAMRS kent_d_Page_054.QC.jpg
7abca2838069a16fc6de3409af5d0787
4ad34448681323b696721ce979ec9c01a95d2e85
1051981 F20101208_AAALPF kent_d_Page_160.jp2
8c15888dd12a561965f09137dea1382b
f5062f08dfd5ee8035a8354e6cea08b341b56222
1816 F20101208_AAALOQ kent_d_Page_160.txt
ba51f10abe69283c89b91a6f8e9c87f0
c7a255829975cbf9f57db1f69b3183c8faeb54a5
11647 F20101208_AAAMSI kent_d_Page_068.QC.jpg
5645224afbcc3bbfbe9c7b3496f074a9
05a1be7a2a5accb9f88c6d343db0f56a634c85cc
22835 F20101208_AAAMRT kent_d_Page_055.QC.jpg
59a9f880fa1ced6db216d097b4cc9054
bde5d0d1bfcb6f2e875e899ebdbc2fa148ee6e71
6126 F20101208_AAALPG kent_d_Page_055thm.jpg
364bce34c192cf0222e9dbbe9698de02
e1b8f1faca753c5903cb03d6a8c98a8adc879515
18301 F20101208_AAALOR kent_d_Page_161.QC.jpg
8c9014e4c56eaf7e1c42ef25cacd6ab0
b42a7fdb8192406b4961a49951b326b6cc575f58
3780 F20101208_AAAMSJ kent_d_Page_068thm.jpg
f4df85059d697338d6328f82bce02b59
69e38d1ca410017044cc07aac059d86153726c45
6883 F20101208_AAAMRU kent_d_Page_056thm.jpg
57192a91423b82f2a68581c2735be5e9
1947e08656a8ec5503e611338cf6ff3755413f82
F20101208_AAALPH kent_d_Page_138.tif
21234c886fa8fedea279820b39399486
b11e50e6ff1e8e9b776b27b61bdd0400cc6e051c
61313 F20101208_AAALOS kent_d_Page_167.jpg
eca5d91d1c6fdba9d1b3818cb00d1a7a
e92eb11a1fb479bfff25c192c9343f7d71f459e8
23587 F20101208_AAAMSK kent_d_Page_070.QC.jpg
39b0e12befc8925a00e33c6085d451f0
fafa5bd0241f6e59db050c47f56e27ea89b04131
26046 F20101208_AAAMRV kent_d_Page_058.QC.jpg
bc6e8828de25421b56c3a32202789ee1
1274341151f3f203cf79e5e053c9dbeb1d98c648
4161 F20101208_AAALPI kent_d_Page_132thm.jpg
58e33a517667817a658a3489b6a116d3
bf6973370a1c80b8fb4cff684eb6382c1db13368
55020 F20101208_AAALOT kent_d_Page_042.jpg
bd82240491c438ad6cf96e9623d07b50
40fc33e20a1a44152f843bbe1016fc818c95f3cb
24218 F20101208_AAAMSL kent_d_Page_071.QC.jpg
58aa2660c7776c5fc0621ee914f57b87
404f86f31c969d7491dc884595b5dad7011e1e59
25812 F20101208_AAAMRW kent_d_Page_059.QC.jpg
2cb2173a7f0e514c6c4095797e1698fb
27ef9ac55a52e72853de0e3f8f09190f74319791
1052 F20101208_AAALPJ kent_d_Page_079.txt
0f943b547725081a8042e267e2bf9560
4efee9f716e337e4808d18d493cd946d40c9b027
3213 F20101208_AAALOU kent_d_Page_012.txt
a01e853c734ff9eddc14a18a9fe372ff
4f22ece66ebf095aedbca37917c903c4e5efbf47
5266 F20101208_AAAMTA kent_d_Page_082thm.jpg
4949cce95e6ecdc2431a9d06e4aabb97
0de7a34fa68be0660f7c7d39f35763ef47b1a833
6698 F20101208_AAAMSM kent_d_Page_071thm.jpg
00999094afb7e9245ce08954a1a3b508
98992ab45ea9035e070488ea847051a9c0dedfe0
6921 F20101208_AAAMRX kent_d_Page_059thm.jpg
8b15624b477161dc2b9fcb66b602c643
8b158bb34e36eda8dee134a07ebee5a750bff5ea
2248 F20101208_AAALPK kent_d_Page_150.txt
ea3af76a0e3b6d1a7dd01549aa0b5740
61c3699f0fb690b21418a7f727af1ade6d4f9ee2
6034 F20101208_AAALOV kent_d_Page_124thm.jpg
9da1dca4e8e7a9653ded2417f5653ddf
4cee20d126d1a74e0fb6ce88b4ac3bc37bcddbfd
16282 F20101208_AAAMTB kent_d_Page_083.QC.jpg
0385baf62d563899eea39588dee740f6
cabb89edc23dcb591fb30fd396e3648455bb7821
24973 F20101208_AAAMSN kent_d_Page_072.QC.jpg
f9c24be71a311f140ef2f2ea31bb624f
49f931fce4139ddfa7d8844871b2b393a757e339
6668 F20101208_AAAMRY kent_d_Page_060thm.jpg
86d474984ca11d1f5ba476cae68beb81
d5921be0f689cce99ba4460013cd3b4f550446f6
660438 F20101208_AAALPL kent_d_Page_104.jp2
e75b6733a4abfec7a1781932b4490fc2
44d57c80302bde7163aee605cd782b38c6353c87
4790 F20101208_AAALOW kent_d_Page_162thm.jpg
496f90b1dbd65e91d4794a9de56a443b
69474351d61a2ef83da6bc7ef634e575718dd5df
4642 F20101208_AAAMTC kent_d_Page_083thm.jpg
33fafbc432e002b5d1ded00f28e7c34c
35023fdb360dca7e2cd4b46ad71cc1a07e8179cf
6797 F20101208_AAAMSO kent_d_Page_073thm.jpg
520b3bd8d6714126363335c44183eabe
e9d2fa72e10c4a430848ca0506833b0aa8b3bfd4
22350 F20101208_AAAMRZ kent_d_Page_061.QC.jpg
eabf329008c0b395fdd6986f73e6b718
3dbb534e1f9798c0d24096857cb932c13c21d88e
24810 F20101208_AAALPM kent_d_Page_023.QC.jpg
e6b52c5d0011d243503438ddfa8fddbc
f8adfe6f63d401dc135e691e6360487d0f09fd10
56520 F20101208_AAALOX kent_d_Page_049.jpg
05db04313545eed07a15f1d1532d00c0
32efdfa7e7a455a041f03f8a5fd17ef776500600
5011 F20101208_AAALQA kent_d_Page_135thm.jpg
d21f6c23bcff895f3f24623f7289b19c
bdcad7aadb7d6ac91cca87d6c745fc47a13d20d3
16926 F20101208_AAAMTD kent_d_Page_084.QC.jpg
284b134fe2869b64610e078e20983e1e
c0f67d665abcf5c54c36c2823e780b7c177c116f
6919 F20101208_AAAMSP kent_d_Page_074thm.jpg
89f0672f8e5504924e5812b6edcb0c7a
79fe32f6e0d8dd1a225cbea9fc9b5c8792df989f
90256 F20101208_AAALPN kent_d_Page_078.jp2
2950f653f3aba8421953582812632ef1
e07a58be8554833b8a7f1a996d284f68b1b54394
2698 F20101208_AAALOY kent_d_Page_103thm.jpg
673bddad16bd97de5dfe90bae23da9e4
a30a4065a612bd21ae0e3965786993d77bbcb248
58496 F20101208_AAALQB kent_d_Page_150.jpg
746b2ee0f8bbac0a6bd2e7f53d276994
dbb7b612ee59633ea232316453799f7be80dbb54
16777 F20101208_AAAMTE kent_d_Page_085.QC.jpg
83d6918a29b3c71bac2e1472605c5534
4c8ec304b2560d4b3ec90afa675f3d6bc661a5af
24876 F20101208_AAAMSQ kent_d_Page_075.QC.jpg
dbf13e8c18c9298c4e5666a208a8147b
26e5568a4a2c29ce3aa4b33573a330c89e6f0425
2577 F20101208_AAALPO kent_d_Page_143.txt
9cd502e4a679e61746f30097f0d51706
9f6fa93ab42a67b8cb3d89211be6fc2acf3c1005
11974 F20101208_AAALOZ kent_d_Page_142.QC.jpg
799bcd54f8393e3ef23a7075cf29ff7f
8ae578d727e7f0d97e8ce93712be62d8fc90e2f0
1051962 F20101208_AAALQC kent_d_Page_168.jp2
e63e00c7a089fa873cb8bd0a459a34d4
d48ed0e3a5d007275f5ad7533e9b7bd1b7bf4f4b
4837 F20101208_AAAMTF kent_d_Page_085thm.jpg
bbdc805d699c0520d7a8d3cc92eefa1f
0b755dba7e2e5408277fdae1471eb8a68e795d83
F20101208_AAAMSR kent_d_Page_075thm.jpg
3b6e1a77871faa05663e31ff304ed570
83653dec94a08a5ebdc928fd6c1e7dab07f14c83
4487 F20101208_AAALPP kent_d_Page_177thm.jpg
794bb57786eb610bf41f1f70d7e5c33f
d3d3a93e7603b111714e23a724bb862100ae8623
9837 F20101208_AAALQD kent_d_Page_031.QC.jpg
70bdafaea019eb957ed9a8d2a819dca0
359f6804d5e97d17381e7852132e30df9b022fd0
5040 F20101208_AAAMTG kent_d_Page_086thm.jpg
59092a6e8645d141c3e4939670300014
884e601cd3b549811a59a641c5a9500c6bace436
6364 F20101208_AAAMSS kent_d_Page_076thm.jpg
eb177b9471baad1dcef89eec8f22f02a
0e186440013c433d6865cd905c129279c63d595e
70277 F20101208_AAALPQ kent_d_Page_164.jpg
51c3f586fb04e2bba936fea7ca901c36
c3de8c4d2783d7c8b936ae8edf7a05d9d3c6008f
2783 F20101208_AAALQE kent_d_Page_107thm.jpg
f6932d0ebc7a54befee9ded60221157a
2b1c882dc4ac2012bb90ca7c48cb19adfed9c89b
4181 F20101208_AAAMTH kent_d_Page_087thm.jpg
f128f28082b3e00a171e99ba875fbac8
6399323f9d750747673ebc6f940625df354c62f7
5845 F20101208_AAALQF kent_d_Page_143thm.jpg
293c04cdd426b18552c98bc90b81c130
dce13bcbe48ed6150f41bfd508872eabae2c6c90
1738 F20101208_AAAMTI kent_d_Page_088thm.jpg
c8a306b0d50cfe5ead71af7061f9d7cd
0261d672b906450fc422a379fdc1e5b333c053bd
24855 F20101208_AAAMST kent_d_Page_077.QC.jpg
a0571f4b6f39259d1c3ae91b4df802d2
8d335a86ea040b11b4a9b70a1f317f8a66ccb47a
F20101208_AAALQG kent_d_Page_191.tif
2508d0096a88e337cc22acdc44e11b9e
28dccfc4bfce70fa4a27e775a96b4449dd38886a
4496 F20101208_AAALPR kent_d_Page_131thm.jpg
6fd5773a0cb984b00cb2189ce19f34c2
575583a2561c89d1ac6c0c92592a6a4897a48a03
2436 F20101208_AAAMTJ kent_d_Page_089thm.jpg
b0bdf4cfd2c0735a0e14ee7e2fc4d649
0c08e19b1669ead1b1d96fcd311d088a2cf936d4
6936 F20101208_AAAMSU kent_d_Page_077thm.jpg
db43f90704da11865b6fc602f9c553d2
52ad7cf564c5a10684a2678b8e4465328e0d9984
72259 F20101208_AAALQH kent_d_Page_147.jp2
d9ab1eeeac5d09cf34123ad810d86ce6
7146b58174ad91f5e4329718d952c6af93c84b8c
59662 F20101208_AAALPS kent_d_Page_064.jpg
7e1e00522423ad9a0a877cdcb6eb8dcc
144b6424bc198cbd15707050feb10f5114400121
6297 F20101208_AAAMTK kent_d_Page_090.QC.jpg
38da0a95cec1da47134aaf2c2ea0b1e3
83e707ecc5caac16c6d6ee5bee98faf502dac5b1
5690 F20101208_AAAMSV kent_d_Page_078thm.jpg
723b7d885590e690033430d183b1801b
985885170288cb78ae09dbf0209aa54bcebba50f
F20101208_AAALQI kent_d_Page_103.tif
b0996f0e1f77b531d9807937076eba92
95f025491be31205af02ac1d2a385b18a9664fd5
F20101208_AAALPT kent_d_Page_189.tif
db0d408a332c1739ac9b921457cff45e
45f5f7aa5542b4cb7cb266a7c9da69523fed23b2
2437 F20101208_AAAMTL kent_d_Page_090thm.jpg
ebbb2ee51e9aab48ebad337f93bdeaad
a181b1332e4455742b130c07b9909a85bc2ff6ce
12479 F20101208_AAAMSW kent_d_Page_079.QC.jpg
8ee8863b7202da4b0d30d7fe1aeaedde
37fef5e18dbe00fcd8f21ea762cdaecb51f47f51
3264 F20101208_AAALQJ kent_d_Page_184.pro
a38a79eb25b7e9ebb48ad3c3a12a2ab3
b69832ca0dfd1ab3a9c5e7c83b8181e5a163c9e4
2080 F20101208_AAALPU kent_d_Page_020.txt
6b5d0cfa732cb9faa4f2fd21c5a0d7f9
f58b29b67c74c7521af05955295cb40d3bdd4031
2358 F20101208_AAAMUA kent_d_Page_100thm.jpg
89a27cf1ceeb0046b6fdd0f8803e0aca
8e075232aa965fc722ff964c8f50a033e1f7b8f3
5620 F20101208_AAAMTM kent_d_Page_091.QC.jpg
ed926a7a757980358d4f2850e26f70ac
5ee32f3d65cf7c55a2932b5e72c8ddaa52c7f64b
4523 F20101208_AAAMSX kent_d_Page_080thm.jpg
58aa4de10df3b4abc9d0af3853501624
6926803679f499877abf377dffe6240ed002300f
2557 F20101208_AAALQK kent_d_Page_094thm.jpg
6d6edacfa4dd99a8764c95a813416839
07c37372719587aec90786493202a9551af5c2a8
50717 F20101208_AAALPV kent_d_Page_046.jpg
355d3cc4008bb85795868338542ae607
66bf6f6973ddc93a33ec2451bce184fbc6d77dd9
7042 F20101208_AAAMUB kent_d_Page_101.QC.jpg
52f660573c522619260cb58b0020d641
6f86042d702048b285e2d184783453243a8521d6
2225 F20101208_AAAMTN kent_d_Page_091thm.jpg
fdcce2ab9935726318bd6618adbe897e
6fe45912032ec8531db68c6886125b86338fb88e
7166 F20101208_AAAMSY kent_d_Page_081thm.jpg
d70f07ab566575e71289e70849a345bb
c1a8ea6e8a3f2e70343bcb19083780c8dceec9a2
1051983 F20101208_AAALQL kent_d_Page_164.jp2
21382f081be011b5ac15ab9982bbd8b0
156b89df3ad7a3a82dbb48ab11bab2d81147232b
F20101208_AAALPW kent_d_Page_119.tif
e07f1580272d21adc8b18e6fe7bc296a
7c3b2f50455ff176b18163b0b049052f7cdcb9e0
2726 F20101208_AAAMUC kent_d_Page_102thm.jpg
cc1c784b49d41523438c412bd221802f
f8ea3b0f7cb0515952b87cbbea786cf6cf87a980
5634 F20101208_AAAMTO kent_d_Page_092.QC.jpg
4756e33123f116e43616d78d828cdd0a
72be9e8d2996e2a182eec5167f8fab8fbd106507
19305 F20101208_AAAMSZ kent_d_Page_082.QC.jpg
9d6663ec17f006c0eaac8aa798bf8a1a
637eb233f2d2d5d1601ef000d178440fffb6eb62
67483 F20101208_AAALRA kent_d_Page_054.jpg
09b0b415eb0fdad50dc5a2333fc5e1d1
046232f6a39bc1d871f695a9e9d9d73509e5a291
6551 F20101208_AAALQM kent_d_Page_016thm.jpg
f6ef6878c737c6407087c42d8254a4e4
4cdde1df0ea5b06b64cefb0556c5be8c8a45e5cd
F20101208_AAALPX kent_d_Page_181.tif
c7ee48e4a3e07f5938f2bac27d9b0911
124d8fb313cb9a6b72e7fbfb7c18ee47199a077e
8017 F20101208_AAAMUD kent_d_Page_104.QC.jpg
8260e189938bf22238337b488c7c2fcf
6dbdaef5df50d64000c4c6d38ed4ea3af727c944
2097 F20101208_AAAMTP kent_d_Page_092thm.jpg
dd48a36fb365d1dcd8977a32fc8ffc6c
7faf0c8c2312b237fd47be084444074432085d2f
2837 F20101208_AAALRB kent_d_Page_106thm.jpg
dba53ea70a2b9b95884c88a128a68c29
14dea6e060777e5850c227726a88cdf6b7ec4747
935203 F20101208_AAALQN kent_d_Page_173.jp2
cf4b208d6a2dd2f3ea2aa1d457e6fc1d
c553546eee70fe93fe1fa33a63bab933895f5cf7
406824 F20101208_AAALPY kent_d_Page_091.jp2
2b36ca96cdc41845bf7ed5eef9fc8796
b49b06a30b7098166fbc3dbf1bee12d3681656a9
2884 F20101208_AAAMUE kent_d_Page_104thm.jpg
cd6c66017a285d242c9f492ada3ebb99
8ff5d29b12e5a153536df5d9a60c036fae9be47a
4601 F20101208_AAAMTQ kent_d_Page_093.QC.jpg
01b17d9df2dc3e9f62dedba5d8a874fd
49e37ad609cf1df2357f1462287ce6a0b7abd76c
48882 F20101208_AAALRC kent_d_Page_140.jpg
89fab2d2add6dba27f531546ca72b233
bca8471c1a7efd08ab1756814e8b3a402588b6d7
52730 F20101208_AAALQO kent_d_Page_131.jp2
292e12eef783a23781b07d8f01a4ff97
26efdaa9cb34e87c31b2056960e95132f13a111f
2223 F20101208_AAALPZ kent_d_Page_164.txt
d6f256a7b93a8dba2b279f043ee89b9b
883157bec93bf7447c60e1aea8c059336b4a0661
8107 F20101208_AAAMUF kent_d_Page_105.QC.jpg
e2d41582614c87fd934d8b64faa176ee
bb838e995e7a25ed89ab252c48a403f7bf4b1980
1964 F20101208_AAAMTR kent_d_Page_093thm.jpg
6502447d44cd1f756cef399a57ed7b59
70701486e724fa4d1f7cc736a2c210780c31d06c
24723 F20101208_AAALRD kent_d_Page_036.pro
f38b0329a968e31780d678c31498c2c1
5642bd0d539be34903b8907f5a98fdd0d10163e1
5704 F20101208_AAALQP kent_d_Page_047thm.jpg
e39f3e33785a812867b29738031636db
23797c4a05ac88855792e4528639659f2edd6b05
8714 F20101208_AAAMUG kent_d_Page_108.QC.jpg
f62beef3d8fe5488c3eed474dba6d7c0
4ee3ab5105c40c9be747663489ef82269daca8d6
6517 F20101208_AAAMTS kent_d_Page_094.QC.jpg
1e081237f312ad86398c97b5d755b3a0
2845fba1f248e0350b4e3b73f54be34fb04cdcd0
56267 F20101208_AAALRE kent_d_Page_179.jpg
95b7c0f776acf0dd2b6c9094add10820
a4072774220f0c12097296308ff43ffa6d6f44c3
6454 F20101208_AAALQQ kent_d_Page_026thm.jpg
160562ec0a00e1c3e0599b5b626636a4
c4ab8eeea406ab8664974ba0c876e76c94c10d14
8021 F20101208_AAAMUH kent_d_Page_109.QC.jpg
3f8270eecaecdadefc65bf92ff01783b
ef0f32d740d967cef2c52ca06ca63cb70257c348
7203 F20101208_AAAMTT kent_d_Page_095.QC.jpg
b1e82005bdf0c77864d98bf4c587ea1e
240d02c9c69ec320e287383eefbd77718567473c
41505 F20101208_AAALRF kent_d_Page_078.pro
3b0fb9eadc4c865686db6a46efd859af
375bc552d84aba919c42036f1e93c1410210cbf4
1863 F20101208_AAALQR kent_d_Page_026.txt
59a4c3cb646fa606588d95fa127b81ac
c32116ce01d0e242016d0e27f9ae37b81efdc5ba
2747 F20101208_AAAMUI kent_d_Page_109thm.jpg
c8144da034abe69ef271b91bbc8afd9c
7b5592ee3037eb5f599e88a6d8ddb5a41aba9dd4
7475 F20101208_AAALRG kent_d_Page_103.QC.jpg
2b121fb15a6e534ad17b8b93482dc197
cd5037643e8332bad1451ce487b755e77f62d4e1
7841 F20101208_AAAMUJ kent_d_Page_110.QC.jpg
45cb3f193f62086d60ec143f00bd6f39
343feea16010723da03ec3814b6320c492a98459
2468 F20101208_AAAMTU kent_d_Page_096thm.jpg
06b0e02405f704eed254b160fed9b511
99c99e75bbc8c620f4856c2189ef8d511afc638f
3796 F20101208_AAALRH kent_d_Page_088.QC.jpg
1ce9e6b2696846c69389d5f215f5cd44
13638815ec2e8b9be8fa54e1ee2ef87af6c13c39
4692 F20101208_AAALQS kent_d_Page_137thm.jpg
9393c56e63401692a75cc3f6e0c5dd2a
e07a2e035e86ae2d35cff288fe7b84fab274f34f
2781 F20101208_AAAMUK kent_d_Page_110thm.jpg
b1a92e6163b9b1d0ec584aeaa1747d18
11de4444d95893dab45f05fa5d4e4a937b1c6e19
7224 F20101208_AAAMTV kent_d_Page_097.QC.jpg
e655dbfe7cbf5e8291266177f559b717
1ac07d92b8f2ff5ad77bc50386a79d74a738f22d
559399 F20101208_AAALRI kent_d_Page_097.jp2
d7600a2ab7b62d607ecab1b4d61e510a
41e0e743883118c41eef48af3c63fbdea9ac7919
1116 F20101208_AAALQT kent_d_Page_136.txt
0d50c7ad98a0e2da8f3d549b7a3e75f8
89c0e9e0622e540a32acdc13eae52b25ada27ff4
3073 F20101208_AAAMUL kent_d_Page_111thm.jpg
2ae7420c81f4e3ee47807e42a93c5fdb
25b154d87ffe60deace41ed93d87a62c62336c95
2591 F20101208_AAAMTW kent_d_Page_097thm.jpg
eb652ec9c36b2f44045a6eda106b8340
c9b881b805e7c5b360e2aadd203c181bd7c68c4c
50480 F20101208_AAALRJ kent_d_Page_157.jpg
b0f85483669417d14a4439df53b9e841
2425841bb280aeaca23ef5184fb4f29e768e4993
1711 F20101208_AAALQU kent_d_Page_177.txt
a69469fea9958c63682b79d9b4163232
42fc28254b7c763769a64777016c3b4bf5e555bb
7034 F20101208_AAAMVA kent_d_Page_125thm.jpg
7c50ea5bd25ca5c28bc68f9f64be612f
8965d2c7ee60975d5f46fbbee5373b8bfdab109d
8268 F20101208_AAAMUM kent_d_Page_112.QC.jpg
e527660adcaa1b33396b7f9456a2e4f2
132ca35e6e3f17c62b423b1d58b37f3471026bfd
6982 F20101208_AAAMTX kent_d_Page_098.QC.jpg
56512eea6d923696185d33bd21f0cf84
700ec9ad6ae2197f07cb3c7bd650b030c4754c4a
F20101208_AAALRK kent_d_Page_064.tif
1215f18190911065b574f1cb3d1f4281
de4c93b5c1bb2ea12479db3cba07ec5bc0efe691
24171 F20101208_AAALQV kent_d_Page_137.pro
c94460496f22d37907a714f270682bb1
fd3697439244cc9fd3c5eb30e9d44b660f5c11fd
25705 F20101208_AAAMVB kent_d_Page_126.QC.jpg
7dfe3ece95bbb51e9762cbe7ed7a32a3
65bf60ddc44dc3d964a62224b02602ba4b7ffb92
2812 F20101208_AAAMUN kent_d_Page_112thm.jpg
9b31a7ee9c90836f2d1109bca2c6845c
0ba4e0f8c08daf169d568dee6828656d0c5cf40a
2673 F20101208_AAAMTY kent_d_Page_099thm.jpg
5e2ea7eb74d2fbb6893dd25ae9d99154
efea5478eb1dbe58c97d4b317749c0fda5171df6
546527 F20101208_AAALRL kent_d_Page_019.jp2
8b41b4d0d801098c64a148c039bd57d1
143aaa305a2dcc5b4ced06d995f8342c6be9d105
14994 F20101208_AAALQW kent_d_Page_080.QC.jpg
0177c889aa1cb0effd46508ebcc08fbc
02a66fb39e9f3ea985d286d1aa6f19905c2c19a6
24111 F20101208_AAAMVC kent_d_Page_127.QC.jpg
357ecd7216b91095cef98a88d0f7c731
b3834d3df72fb2a9d5c0e91e8c48db19a5353348
5737 F20101208_AAAMUO kent_d_Page_113.QC.jpg
940d4c4b7e7962fb90addbc253b21aac
63932a5e0cd7294dc1d04009344bad7675ac34b0
6584 F20101208_AAAMTZ kent_d_Page_100.QC.jpg
19cc9db8d3767761d2da8d58de112d08
072b553dfa5877e6bd3c3993173379ebcb690f3c
53394 F20101208_AAALRM kent_d_Page_080.jpg
151d7c8359e836a05e97d6400519d1d9
009b446d0350333ad9f17d3216fcd405c95dc61f
7078 F20101208_AAALQX kent_d_Page_126thm.jpg
4ebe5deb7737b4094b2cf4499b6c453d
349e2615dfeb5f179e960eb472d336efcba1cdb9
F20101208_AAALSA kent_d_Page_108.tif
19c4a65ef560027c94b4073bce06f8ac
9bd8f331888d259cc81a797dc9ccb1fa4a02f030
25367 F20101208_AAAMVD kent_d_Page_128.QC.jpg
582ef99129e2953879ff5dbbd442528b
4aa2e1d452a1257d3ce18dc5f6aa75673fcafb84
F20101208_AAAMUP kent_d_Page_115.QC.jpg
a054a2941e996215ed5d3554817f54df
a77cc369f46e4207a5d5b293be849a08644023e3
5956 F20101208_AAALRN kent_d_Page_013thm.jpg
13b3058f9b8e5bf5e0bec159d7a14bfc
1d2f7ac4ecb8ed3013c6729cd3ce427bcbb06d10
105221 F20101208_AAALQY kent_d_Page_119.jp2
db3a5178f07b5b10687426eaceb18195
072064e44e06faa7e834d7b98b61e8f1cb7ec507
21162 F20101208_AAALSB kent_d_Page_109.pro
5e2911c20138171d9615845c89384dad
5220c387c13bca10c9f84d3ed8492c44b6f1e4b9
7046 F20101208_AAAMVE kent_d_Page_128thm.jpg
b477f3aa051917a988c0a72ea7d97d65
b8733126556fd774a42245f67a66e8d63b3b1ed8
2682 F20101208_AAAMUQ kent_d_Page_115thm.jpg
6047fd775950015717bf8c234046813d
9898c45158fecb45c7b8fc013de289fcd46501a4
6992 F20101208_AAALRO kent_d_Page_052thm.jpg
c5096b545a5b4c938315ad3f7d186e1e
e1e733b52494489997470a17df31e1188f91c76e
5511 F20101208_AAALQZ kent_d_Page_002.jp2
1beb24980d508873ac606113787178f3
10a785b9c3cdd174d727609c5019ca453c6e739e
6461 F20101208_AAALSC kent_d_Page_119thm.jpg
ba8c3ce1c21b8c2eaf91dea4b4b2fcc5
74834bfd045c74d16d6545a6d16fb35beb8e705c
23729 F20101208_AAAMVF kent_d_Page_129.QC.jpg
4ebd76ca068c9be65d8a41fc3b9ea2c1
14cfc11861b4278740c5ad6a841b8506502673c7
5780 F20101208_AAAMUR kent_d_Page_116.QC.jpg
a46c86b28ac69829305cd03fc545097c
0ab7abd04d61a5855b954c5f151d16fb2dfad52a
2360 F20101208_AAALRP kent_d_Page_113thm.jpg
917a4d63493fc72ffcf86ed6810c3573
d1501815024fcace390636638516e6376b7f75c4
F20101208_AAALSD kent_d_Page_084.tif
a9b72ea879176d2275f207821f49c8f3
4ab2356a04d91d1f939afe738c1d5b69d4bc1cd6
6744 F20101208_AAAMVG kent_d_Page_129thm.jpg
38be45fdf56b8ebe862ee58f192dfeeb
e7de264a2629852998f8f8327c7935153db09a25
7616 F20101208_AAAMUS kent_d_Page_117.QC.jpg
fc94bc320defb2f0cba9f7fd7dc09894
4d5d5a5e22d34908cd4d50762aa87757172462d2
F20101208_AAALRQ kent_d_Page_053.tif
79856b45024b997d83535a764bd68ff6
f7d6d692e17d854dfac2d5181fbf1d50dc90fdfd
5076 F20101208_AAALSE kent_d_Page_155thm.jpg
3c82bca2d3bbc19e4810e88c5ab747ab
c295226e627d0730be6d50721c117ad69ecf9ba4
15035 F20101208_AAAMVH kent_d_Page_130.QC.jpg
18591c41416c24eb6f50197d650a3b69
8b009c46947ad6b656948ca0b335a41da0b3ae38
2850 F20101208_AAAMUT kent_d_Page_117thm.jpg
6c2a50ed63de185952f9937c7c351233
62fdeb3be4300516aace308a43b3f42b18ed6ac9
6841 F20101208_AAALRR kent_d_Page_127thm.jpg
072111db5d0183986d18aed2a7e49921
5de4c92e3cafc89ebb7b932411dad9da3fd2b435
689836 F20101208_AAALSF kent_d_Page_117.jp2
48a4192ad27521a6db162019ab24c2d6
4fae5b1f595f35208a045aab97e6bede1737ab46
12436 F20101208_AAAMVI kent_d_Page_132.QC.jpg
f42d6172ab9959e25dacb9fbcbe4f505
68268b6404c886da33030e9a3d1bcffa6389cf40
2579 F20101208_AAAMUU kent_d_Page_118thm.jpg
e1c054a8db438aa05406009dc4196d3e
4e560d343fdc89386d14805eb77e2e91e114736a
45091 F20101208_AAALRS kent_d_Page_136.jpg
1cbd6eda6a3dc75af3672db1df1b2cd6
dd85272dcbf0be63071bc41585241263789f0795
13116 F20101208_AAALSG kent_d_Page_080.pro
663bf4303fd4536d153f043a0099f72a
ab06f6576be710a6d2d2df0e494e870b7e531df4
14656 F20101208_AAAMVJ kent_d_Page_133.QC.jpg
b42a9e68ae9494d1ad7390ebefaee347
9cd877e5b26aee711721bfddf41ac7eac4e0b53a
100764 F20101208_AAALSH kent_d_Page_006.pro
4453fb2725f3dd2898a77e73e0a97e92
e6ef4025da214ddaded25b93505f595fd045858b
4079 F20101208_AAAMVK kent_d_Page_134thm.jpg
cb751a751f8689e705d58fbb6154a72c
d573191aab67282affb5052b581b6a9917511005
23095 F20101208_AAAMUV kent_d_Page_119.QC.jpg
27e86a1714ab55af82646651025ca34e
005c7a6ebf91b8423872c33375c899617b3dd703
19594 F20101208_AAALRT kent_d_Page_096.jpg
8434afe77952ebe9589ce64f7bc22e29
650f781f55e2204661f5281b74adb6200041cf5b
F20101208_AAALSI kent_d_Page_171.tif
f5d3b69eb6058977233c5cd62db77bba
f55eb954d425824b18cb513881f356e374a11d13
14007 F20101208_AAAMVL kent_d_Page_136.QC.jpg
e2dad8a6b40dc40bbec8fbc21c3321ba
3da8363a104e6de6047cbbc132ab04bf0b8682ba
23625 F20101208_AAAMUW kent_d_Page_120.QC.jpg
ec16b1d7ce5d62d9917dbb96b750e82d
4f16209acece3315ef75b508f3345c9e8d5a6282
6645 F20101208_AAALRU kent_d_Page_070thm.jpg
fa30c5f01c74b000973755c35ec2cbd8
e73ae60c34442e227696e75aa026ab1757b23a8b
46178 F20101208_AAALSJ kent_d_Page_151.jpg
48a35873b4c6269faf65c17a71b6db01
65326ae3650127a4f4b67e94d59ecf3f5cbc9a98
5468 F20101208_AAAMWA kent_d_Page_147thm.jpg
18e6fd770bd1069981f58ec8a2a03199
748b12a6f34459e299d894d3e4db236a0afd4d55
4489 F20101208_AAAMVM kent_d_Page_136thm.jpg
22643ff034e64faa26ecf1d4efa7ab7c
631d64d7ded473a9c4580300d6e42fca6f5d7232
24743 F20101208_AAAMUX kent_d_Page_121.QC.jpg
f2d108ae9917bcbc9b5a8837204e3c92
e32660fd5c1fefb2a0ba420c5364d37726b1a2d8
F20101208_AAALRV kent_d_Page_102.tif
1b068c9354f8630db218b0187df9584e
6d4e85b1bdbf9194937caeb684ded7eb9d5e74d6
5435 F20101208_AAALSK kent_d_Page_006thm.jpg
b630861e2da5b59af96b4386856b371a
9f6ffec97a1ee97447029de67075876f8068d893
19803 F20101208_AAAMWB kent_d_Page_149.QC.jpg
0bd0cb8578d2d8c8a744b8e884d29d44
b7eda901d57c89eaecb7519fc6aba1b64cdcd8f8
14101 F20101208_AAAMVN kent_d_Page_137.QC.jpg
b4912794db5fd6cde9d19e2b0dba531a
2933cb25b60c7f4c6a598b09aada6df513777cf2
6894 F20101208_AAAMUY kent_d_Page_121thm.jpg
70f32492fd9150e3a55f69863e5e5359
e130b33d46e09c4eb3bf7c2aede3b1a6ea4082da
241753 F20101208_AAALRW kent_d_Page_116.jp2
5ba274a92628cd42bc41d5d72c7f6100
092a068260fa818906a6b2ae4dd3a0f8a0fad488
23843 F20101208_AAALSL kent_d_Page_007.QC.jpg
1ea1ad84847f609badc07d687cf20ec8
ca58a1cc6b3dbf13c26eef0f873ffffed2fe6739
18860 F20101208_AAAMWC kent_d_Page_150.QC.jpg
62af8132a19d21c3507f1ce193b6dc5f
6500d6150f56a18d67b450e136a8ae7c9e872300
15374 F20101208_AAAMVO kent_d_Page_138.QC.jpg
53c7893fa0466dfc686aa8cf837bcfa1
28e118886427b49e64aaa6284f51453d0ec3c947
5348 F20101208_AAAMUZ kent_d_Page_123thm.jpg
9b1f515ba70c345d922a17b94465265e
2f99ed92a8ad53e39a9a5f273ccb57a1e40bf49e
6538 F20101208_AAALRX kent_d_Page_072thm.jpg
decc220ca9e94fc002c0b655c04cb78c
27ece08a9577b348d166767fe89514b61308aeff
15932 F20101208_AAALTA kent_d_Page_148.QC.jpg
45d848054521da1662d0f0cb6ebd1285
acb7e0f7ef722cdcbdbfef0dab18c40a629a92ad
7773 F20101208_AAALSM kent_d_Page_102.QC.jpg
19cecfe84cb5293480a6432dfa11221c
139a87593bce5e249222996d6e85fe353c0fd0a5
5993 F20101208_AAAMWD kent_d_Page_150thm.jpg
d82ba6e1a7be76cc100c8a6be7069e3b
386b051daa652a81799627f3a8f2a0e3745bb745
5060 F20101208_AAAMVP kent_d_Page_138thm.jpg
765d381a16dc39070544cd4d407ba33d
e234e7b46bef949cd363842af12b0a64d455524c
F20101208_AAALRY kent_d_Page_065.tif
df9603b4c625748d169b306ce8c46b21
f54b8790443a52df617c281ea8b5861ae212d407
26009 F20101208_AAALTB kent_d_Page_130.pro
35124cb72fe363bc3a6527997c874f6b
78513178729abd3f245f81cc44eee2f1e929a162
F20101208_AAALSN kent_d_Page_100.tif
4b26f2602f33ac97f36af305dcc2e0d9
5f159619bb2b0e4836cd5ba77a7377d57724e02b
17199 F20101208_AAAMWE kent_d_Page_152.QC.jpg
a40f4af3f3a036fb4990952d9d35c208
6cc95f449323e045a8dc8aeef4c86329647f8f23
4808 F20101208_AAAMVQ kent_d_Page_139thm.jpg
65082b5b9ffe592cf2404175c2c5069c
ae55ed3b4530ccdb57fd29b765e020c953d78d76
77568 F20101208_AAALRZ kent_d_Page_126.jpg
804119653a71c85235e0bdc5873288fb
c6287009b24e092bcfe8654373bbdccced3683f1
1924 F20101208_AAALTC kent_d_Page_029.txt
e094f260dd1765432ca8532352906698
49b87be870e10ed518469fe3a46736498cbcc939
113536 F20101208_AAALSO kent_d_Page_077.jp2
a9db4350125eb5cd8257a09794487d08
d5c337eddfe43aa0cea8c99eda925c2bb4d88994
5233 F20101208_AAAMWF kent_d_Page_153thm.jpg
882e974e0b611b41d95341874b6b0533
5035b8f9e80d960f13a63b0a80525f8684f4022a
15195 F20101208_AAAMVR kent_d_Page_140.QC.jpg
d5fbf7e4ba460406868766635132d74b
94924b1615f7d635a3ab47a5df9feb11111c41a6
281706 F20101208_AAALTD UFE0020089_00001.xml FULL
20eb4eb2c91bf807d1c238c9daab7087
9d00c1eea19fe70c117b87d2f7e19a0ebcb17391
6560 F20101208_AAALSP kent_d_Page_015thm.jpg
ad35a1cec0f964ea153c85fb251c2b87
abcbb1a91d9c4920baa3fc639475a0e22b955e94
18167 F20101208_AAAMWG kent_d_Page_154.QC.jpg
cec84a5459f3f88ebe14ec980788dc8d
9540e7f0db677dd5e19e1a6f08840585bd596ec9
5093 F20101208_AAAMVS kent_d_Page_140thm.jpg
20392ea6bdc48333a6813d5049a6a8fb
f81917a43c330dc3d20116bf6d7b4e331c9e28f9
4881 F20101208_AAALSQ kent_d_Page_174thm.jpg
b23deb0c04a889bec757c73376b8e6e8
a3134ed061c317d587f35936b4b269fcd7f20485
18268 F20101208_AAAMWH kent_d_Page_155.QC.jpg
b83f08f93d39fb49db67e3deb13aff89
e093b8b9fa0fb836a669386c43b388683b137951
4582 F20101208_AAAMVT kent_d_Page_141thm.jpg
1e057632553c27088751fe0fa294e733
485d677fc1c40b0ff25632b303a6be47a7466d12
F20101208_AAALSR kent_d_Page_049.tif
a1edfb88011df4d60373776325e6a4e0
c8b2b8f8ac04281c998be3e045ff0c8f5defc269
18522 F20101208_AAAMWI kent_d_Page_156.QC.jpg
d18e9d1feb2c4d4b11837a72355576df
2b2fc60f97391a4edc902dcd99a9ae084b1bcb06
3700 F20101208_AAAMVU kent_d_Page_142thm.jpg
2d7fbc19862e8fed8556cee4182a10d0
00542fb9676c61598362cc4f0652bb5b11a210e6
22657 F20101208_AAALTG kent_d_Page_001.jpg
d8c8cb0c4ca5a1784952fc4fa235dfbf
362a452d2f64fa33dfed19d343b522c674fa80ce
58505 F20101208_AAALSS kent_d_Page_144.jp2
19ae3037943af15ab11d702c3a14b033
d7d24af9aa1d67382ec8f11efc3c9f651d4ec4f0
14761 F20101208_AAAMWJ kent_d_Page_157.QC.jpg
54fed6ab24dafe0b1ecb5849e5fc2c23
c23f92479115f5f195cb79422ab8c21947525497
20064 F20101208_AAAMVV kent_d_Page_143.QC.jpg
ce8cd3e1a7e0dbf59286dc4677f2a5df
48ef3faf4ebd6c5d3b610c50ff993672c3ef9ea7
9955 F20101208_AAALTH kent_d_Page_002.jpg
cb6318f439677a94b76a3147e75ac199
741afa7312b574ceed3f6e069c9fe25adeb5a151
7247 F20101208_AAALST kent_d_Page_050.QC.jpg
2118741446d84d67a1330d3f4f699bb7
32b4285f0e97fe69661c6e2b2dbe149eba010d70
4394 F20101208_AAAMWK kent_d_Page_157thm.jpg
68888a5172157ae9a6d77b5280f206b7
eeeb6b5bcf8482b50ee782b8b2c8dc3cee84f036
14070 F20101208_AAALTI kent_d_Page_003.jpg
deea2e6df6412d34caadd9a0fd41e259
9260853e47c05f46701c06ef9299de76a778b337
18722 F20101208_AAAMWL kent_d_Page_158.QC.jpg
67291ea33ce95aa91b16668a474d38b8
06ef0e2ba1d310c31cdab8030390be1c26d3d6bf
F20101208_AAAMVW kent_d_Page_144.QC.jpg
0f634926d56793c2f7da2dcbd3ac72cb
86e507207bed61fc30d5323464a464b85344fb85
76575 F20101208_AAALTJ kent_d_Page_004.jpg
2bf76d278b544a335b1a34b9f04646c6
dcc0fb260c78c9e72eb06a31c2034d6c21ae1ec4
F20101208_AAALSU kent_d_Page_034.tif
2fa5c56555abb01c8d51ce9d1340a64d
2a089baef731cc5446b8cb0946933850ff50192e
4845 F20101208_AAAMXA kent_d_Page_170thm.jpg
68e21f2838f32096ded9e0cce0ba61ac
99bee84d77ac8b5db04f62a89e5f2bddb161187f
14978 F20101208_AAAMWM kent_d_Page_159.QC.jpg
9acd6b3282dff730b4f709c0c3b3af04
4a07591c2583a307da1fa550099717dede2571ab
12622 F20101208_AAAMVX kent_d_Page_145.QC.jpg
721f624405748872502d809264f2193c
4b65a0e13fa84c7f1040b287383c6df4e99e7b97
31037 F20101208_AAALTK kent_d_Page_008.jpg
2d40898917b9056c8744be3c1f080225
0984ad63f8b6062a95d5ef47993b6959088bf879
2518 F20101208_AAALSV kent_d_Page_101thm.jpg
5dcd5e3e4457b97f11691466e9b73178
1e2ebb3b27beed5396c099a3db278a6f206e4d22
18307 F20101208_AAAMXB kent_d_Page_171.QC.jpg
0588cfd4b52c3555875f9a2f7eb8d488
63ab35bb92d168e0784622f6fa704bebfe25fd06
4324 F20101208_AAAMWN kent_d_Page_159thm.jpg
cad6f46db4cbc97d3898e8e6aa077da9
80907969d2567a04934b2e3e1c1f7badf1fb4d7b
4212 F20101208_AAAMVY kent_d_Page_145thm.jpg
4c09a5a2578b943b9c854c161eece50f
0133c993fce398fca3e8b16f296c1aa6133a1e68
52397 F20101208_AAALTL kent_d_Page_010.jpg
1df33d8422b3dd6e21000e3478fcb221
2d089e554c89aa16c157bc9d6289d223c684956d
21970 F20101208_AAALSW kent_d_Page_185.QC.jpg
db70a62ad4889da52e98f11ca990c291
bb83679f46cded1fcf5e62cd022a52a077bbcd64
4908 F20101208_AAAMXC kent_d_Page_171thm.jpg
296bf01b19409a3b2100765da9be7046
86c1b7d6db58612bd57fd9902cf7c61fc3ef319b
4747 F20101208_AAAMWO kent_d_Page_160thm.jpg
fd18d52714a781f4fd80416279bd7f51
c6dba8bb551c03bcf990f0e4641d3b0dbc274880
19100 F20101208_AAAMVZ kent_d_Page_147.QC.jpg
a78a041ee00fafa0170a1f46a74036b8
abc8642e1b8151bd92e1778e17c5b547deb12c5e
41085 F20101208_AAALUA kent_d_Page_032.jpg
8deeec99736feb926384d4896eb907b0
730af96ad2f4a2de34998e0250dea509c85b11a0
78149 F20101208_AAALTM kent_d_Page_011.jpg
004285645f2ea06ac90e23b595a930ab
1777b3c255512dc4ba95f75396fdccd90746613d
F20101208_AAALSX kent_d_Page_129.tif
7e9d24d76703f20db959d879c22cf5ff
0cb4adc4d043ba80cb71bf10fbbf0f3848a891ba
18347 F20101208_AAAMXD kent_d_Page_172.QC.jpg
95fdb9dd83683d3bb3a35e30d11dba28
7e863c45651fa572f415a9cab7f130979fa5e2d3
4953 F20101208_AAAMWP kent_d_Page_161thm.jpg
64fe9263bf541bb71289868f78eb07cc
6006528dd3a3e616194c220ce2191547f5ed8b03
25691 F20101208_AAALUB kent_d_Page_033.jpg
e309d73188057f993f3f81e281cc31fe
1399bb75352b6d592a9d0480b28ecc9183769067
94532 F20101208_AAALTN kent_d_Page_012.jpg
87ee6632e6fc7cebb1c51c2ce896ac40
05a2f9fb7361ec76434c5118efa4f05aa30af30d
1982 F20101208_AAALSY kent_d_Page_055.txt
391e33561d5d0a3121f93d1ecb355968
ffc81f95ef148bfbb1d5db12fd0de4a0ba0fe006
4898 F20101208_AAAMXE kent_d_Page_172thm.jpg
c214d592e57fc54a7dcb35e8d27be0b8
6f9ce5c54fe6a0ddb0f2f175885fb9d9c55ea8c5
17163 F20101208_AAAMWQ kent_d_Page_162.QC.jpg
0875e5d40250942caebddb5129aa4640
91414bfe89508a5b80ec1dd8f8266a35590d9490
40720 F20101208_AAALUC kent_d_Page_036.jpg
36b321c1881f6f3f9e0d620509c72acc
4f00a3ac0cbc508339c89020902611317202ce84
65807 F20101208_AAALTO kent_d_Page_013.jpg
66d7ea193590bbee48e34b8ec5839bf3
df1b52a935390c4f749cedbcdec18bde531272ec
116111 F20101208_AAALSZ kent_d_Page_125.jp2
720e367c6eb601168f04912bfca97ad3
a6a1516a62abd040f7dcbdd3990e758703fa1cef
15973 F20101208_AAAMXF kent_d_Page_173.QC.jpg
a49b661caa86c11ae032d86eec5781e6
bda725250fcd95f7aee58fc05a2a6739314cefaa
19111 F20101208_AAAMWR kent_d_Page_163.QC.jpg
012542865ef996f1c69a9022ec6fb282
eb6a69f8c59a94203bd3dfeff2b7dbc282566d12
69709 F20101208_AAALUD kent_d_Page_037.jpg
dc8b9358100946261a00ceee1f45683f
f8fceb136610750054128d3fbaba9787f6ddb44e
27702 F20101208_AAALTP kent_d_Page_014.jpg
0b784efb469079f0993464a9efda9f14
b3656cb4810218653722923c4544e0c6624a6864
4652 F20101208_AAAMXG kent_d_Page_173thm.jpg
793e7c4549c4090c026ddedbad1a5364
2c0c24742f973fc0b71685d433dc6338c5461497
5208 F20101208_AAAMWS kent_d_Page_163thm.jpg
a63fdda42297ea852ea9b2c697f87071
b8f26f160ee5496fdea58168ac2e2f52c2c4bf69
55336 F20101208_AAALUE kent_d_Page_039.jpg
3e3a68fe3885ca388a04f7e9a37ec24f
ba343b43a5c1b495ab7b6c7c0f837a25e8919cc0
72897 F20101208_AAALTQ kent_d_Page_015.jpg
e14acb97297b215057f999763fc0ca11
c7c104d4a97be6c1a5dff09a9c6e2206d3f2dd70
16078 F20101208_AAAMXH kent_d_Page_174.QC.jpg
3dc7906dd5f85a880bb6e7a21f8f4234
1e537d06496eeb276f128d48f538674999a5fea3
19144 F20101208_AAAMWT kent_d_Page_164.QC.jpg
fbb33d0a8b9ea99979bfd6f9962c6dfe
997003467246b26a4a1b715ee7dc18b9ab6e87b4
64336 F20101208_AAALUF kent_d_Page_040.jpg
60d182d29b972910bf41273a2d39adfb
6649cac296a76d50a79ba9f59e76add161a09bf7
74969 F20101208_AAALTR kent_d_Page_017.jpg
fcc642289a7cc788be8d5a202d2c8723
9432d7b7c4bda6b2ba4d2f91730f7d19e493a3db
610348 F20101208_AAAMAA kent_d_Page_105.jp2
4cf879c3d879053ca98fb35d806ee04a
c8788c240668370fc4d85c347c05791b0d72392e
4512 F20101208_AAAMXI kent_d_Page_175thm.jpg
f36c840078af13b685bf8acdd79fd860
31c2a44ae6965d2590b7e95a1adc632f551d9a97
18757 F20101208_AAAMWU kent_d_Page_166.QC.jpg
b34289975de824d03a7b0d3db98e8722
f098823a20b3b867c5d855e490b8a7506b8981c5
64154 F20101208_AAALUG kent_d_Page_043.jpg
1a43dbca439876053d4bec4fe46d6d99
8dea0bdabc81a2f70e9da5e020c46591353f86e1
36567 F20101208_AAALTS kent_d_Page_018.jpg
02711ace362fabcf1b60ae48ff27becd
765cf40193be0de1d7d80e16c30484f0bd6055e8
15702 F20101208_AAAMXJ kent_d_Page_176.QC.jpg
04da9d992835b15995a041ffbdb07d84
fe368580ef7a23439b4bf374f22d085377cca6dc
5094 F20101208_AAAMWV kent_d_Page_166thm.jpg
d406ba38ee542b562a85d401ac4b66f0
91e4a4cce13ee1a849eae5e9ba633b0143ec3bdd
70096 F20101208_AAALUH kent_d_Page_045.jpg
3c7e9cb2b5364cffd922a785e59ea5f1
649c62cbd47d809f9e428e61c3014940ac0f32df
79415 F20101208_AAALTT kent_d_Page_021.jpg
ae6208157904723e814cc52d198b4c18
34e88ebc33a4e5a68ca5a7d5d33682ff6c60205e
878773 F20101208_AAAMAB kent_d_Page_108.jp2
a27f613d47b0268062d5a231efb3a3e8
ff89317e756b124580f56e6948820ca22d36e975
4498 F20101208_AAAMXK kent_d_Page_176thm.jpg
2fe532e0e80eb3829aafb8e8472feb6c
8b272ca5c6cba4201b92658c9b0f0eec8c4e1ba8
17204 F20101208_AAAMWW kent_d_Page_167.QC.jpg
65287e342e15116f4b21ed51e3536f98
4679cec09e4196a8d061cec0e8169962b4810253
52605 F20101208_AAALUI kent_d_Page_048.jpg
9019d724daa7f57179560567bc8b607b
e3041160e7aaeeb66af73fb7c65890120f9ab33b
75871 F20101208_AAALTU kent_d_Page_022.jpg
c07e04eca52ed412acd36803460d3fc7
1e7b706a0e428260bda2f2e05276d2f64e14675e
782753 F20101208_AAAMAC kent_d_Page_109.jp2
261080ae258b5bed3032e9dcf67bdf69
d2f58d5b14a7e74f2738720ca463d00fdd4407c6
16156 F20101208_AAAMXL kent_d_Page_177.QC.jpg
a9e6995957e6c56e8f8ca77380515bc9
b494409f379a896bc06214c8fbd2e2f2c0f0420e
69505 F20101208_AAALUJ kent_d_Page_055.jpg
b5b1f4b71826448b2eb6d4644eacec08
8f6c7afe92c1f3f07fc93176fa96e7410bb76b94
824750 F20101208_AAAMAD kent_d_Page_111.jp2
ba4b8d92c5087de052c2d9e032ac0354
46a41e33da38b55a671863f4f6d19c4aad355ff8
3065 F20101208_AAAMYA kent_d_Page_190thm.jpg
2a3f1f832211574d69e974501574b5ed
583b08cfeb8034f4911cc37015256aa84f54935f
14845 F20101208_AAAMXM kent_d_Page_179.QC.jpg
d7bf6e910b2c92a34797c40a41eda09c
2ae7674b55d9b7778a0336e9777e79de2392446e
16771 F20101208_AAAMWX kent_d_Page_168.QC.jpg
403ff06790ecc6474de3f1fe0b5813ed
a1115a1f0d951ba2012e6880ab426505d9d4ed02
77811 F20101208_AAALUK kent_d_Page_056.jpg
db70286dfa8f6eaff203abdc278ef45c
6e91ef0c30aab7959ce4ad3bc613205a218b4a48
74397 F20101208_AAALTV kent_d_Page_023.jpg
f00e92c205c8ea08b7cd4aace3052632
1e0e445ffffb8a0d5174f2648ebc84fff384673e
858891 F20101208_AAAMAE kent_d_Page_112.jp2
b73dcd36ae7ad7911b9da376376c8c58
b4c8620fece5dca89ce0ab6c81f29a9166256d44
4252 F20101208_AAAMYB kent_d_Page_191thm.jpg
8c367899319cf206c397570bdb7d9d00
50b6aca1ac3224912d050b5f8f542c4692a5bbf5
4089 F20101208_AAAMXN kent_d_Page_179thm.jpg
2545b59f131485f499b53caafce74699
9d172a5b851bf2fa530a4e849b41f2bcc6741452
20937 F20101208_AAAMWY kent_d_Page_169.QC.jpg
71af02d717d3e7c3e4f4646fe15cf6df
95e74e5deaa9725d95f268c26e727799edc5375c
74958 F20101208_AAALUL kent_d_Page_057.jpg
49d56c54e9cb6eecf9c8604b545d444c
e65ce14df724bdf63d30131d6c1feed5a4d01c78
75160 F20101208_AAALTW kent_d_Page_024.jpg
843c822339cd116ef20f5e4eb6e8fa87
b6caa3d4254e3c6296c3a4dc81bbe6034c9abba3
303670 F20101208_AAAMAF kent_d_Page_113.jp2
ee5c7da881e36a617072521b7be1baae
741e6a96a606324b8b1885556da1faca17cd3ffb
217612 F20101208_AAAMYC UFE0020089_00001.mets
208b856d1d01be8c5e97b7bb6c92ec19
de2085adb3211517f912c3ffa589e0fdf0688192
F20101208_AAAMXO kent_d_Page_181thm.jpg
2ebac09147969d6dd38aa0510ba21810
60bfc5bf0a6700a32d7378ef829f5cecb1af9e71
5423 F20101208_AAAMWZ kent_d_Page_169thm.jpg
8a5e6ee476c8a5637d268dcbbefeaf88
2da0e745f558f11cdc74cb4d78decbac897fce3a
75792 F20101208_AAALUM kent_d_Page_060.jpg
a1b85b118542f8795de0379921c8745d
830f1aadbf2e91e78250217cfd25fe7415b5a5db
74088 F20101208_AAALTX kent_d_Page_025.jpg
6611492246dbbcae04ebc80a2edbd701
d63e329e024970a7a1520bb7fb7a165a95b830dd
109333 F20101208_AAAMAG kent_d_Page_120.jp2
13c5f3e2622bd506d0fa11478054e048
f5d5ed2c429ea45994769c7ee4095ebdb9f092cc
68446 F20101208_AAALVA kent_d_Page_082.jpg
d659bbcda56ba779ae08f70592818163
9580a922928f45621f6e5adc3b1dd33cc427c0e3
17245 F20101208_AAAMXP kent_d_Page_183.QC.jpg
aa70d8d0abeb0259d7570eca29646523
f6bde2b2b5e3e0c581bd89117865ec808e3851fc
73826 F20101208_AAALUN kent_d_Page_061.jpg
85afafa88a3bd5ae19f86caf6e8db8f7
0b66b63f700c02f3b2feef7b7f4d03bb695ae020
65882 F20101208_AAALTY kent_d_Page_026.jpg
1191bbf64e388af9253f7d993c91e9be
5d5806813d07da97aecdb1b05ee3f5c5911f3971
108713 F20101208_AAAMAH kent_d_Page_127.jp2
695648c8b05375472a2ba757351fbd67
826aefe89371d72780741a5bd73ef8a796a7b2eb
56818 F20101208_AAALVB kent_d_Page_083.jpg
cdf2ce7ff0944d1710317373920b11e8
d3b84ffec01727e266c782d7d0a78970b9887098
5167 F20101208_AAAMXQ kent_d_Page_183thm.jpg
0a3ab3983796cff7be6b1d96dc55ed94
34cfa78f94481d98c48d6e8d872e4b6aecf70f77
83325 F20101208_AAALUO kent_d_Page_062.jpg
09a6e6cd8e8e79abca9501d125ed8278
05ddf69f4e1b2ebfaa2dd64a921b47367ab76229
77756 F20101208_AAALTZ kent_d_Page_028.jpg
83a255514bda79bcebf6aa0afbc890d0
6e7fb1c353575d892ec75e7e6b8867eb62d9051e
113760 F20101208_AAAMAI kent_d_Page_128.jp2
07d77592481fa1b13e2248940e0fe2f6
3b75ff36c007d219a6671156843d60b195745fa2
56238 F20101208_AAALVC kent_d_Page_084.jpg
5ef92c576f7237c8758bdad1b35f15d2
c528ee20ad003d12436a9ea480080aea598dc9ce
4397 F20101208_AAAMXR kent_d_Page_184.QC.jpg
610f2dd8001afcd4fe7a785eaa3127a6
750a2edb0aaf6eb33b7c871eb66dfe94bb371371
107381 F20101208_AAAMAJ kent_d_Page_129.jp2
69a4089b8851f97e91eabdda4cc2a7eb
ece13694df083d5b58fa63c9b7d7e8b7cc039642
20317 F20101208_AAALVD kent_d_Page_090.jpg
3d222e22cf60c0f29d27c93fb1633270
5f68d0c3bff9c98dbc56e211944fa6fb7a14720f
52041 F20101208_AAALUP kent_d_Page_065.jpg
e25aa3f15b75b52cff3e055cce735c49
c66a2554bb31869269a8ba33622ef8dd48be2005
1651 F20101208_AAAMXS kent_d_Page_184thm.jpg
e7ca98920f51d3f0dad9fc46c7e6606b
e28dee34f8c8929c4a3426174b60a16528f35ea1
60854 F20101208_AAAMAK kent_d_Page_130.jp2
77aa711a591ea91c2c54a0e94c106c00
199313dd64566592ad992b603f359177e1cfa4a7
15841 F20101208_AAALVE kent_d_Page_092.jpg
43a16fe26426ffa1138dbb9d3bf42d3d
5f3bdcfa5e261652b6dd22b94ea896afc4c7a435
71297 F20101208_AAALUQ kent_d_Page_069.jpg
23a8c848983fe8e773555696ccabffa9
7142e8b86d7054369fdf432557523e1e0f71f3d3
5081 F20101208_AAAMXT kent_d_Page_185thm.jpg
de9f35fd0fb1cc63d4b59a73473fb1f7
45c9c1b9ed9b221d58cf8d7fe6e2f2021c3a894b
805422 F20101208_AAAMBA kent_d_Page_159.jp2
7a406b6f4b3ddc9e303f1eb28d89f1a3
0af0dd8782dcbbfd1edd75d819ebb519372b25b7
48541 F20101208_AAAMAL kent_d_Page_134.jp2
879dda4e36461ded0e3d8ee83e3ff840
bbc7bab276a5696295a5ec9ad0c82a1a710b79cd
13369 F20101208_AAALVF kent_d_Page_093.jpg
04dbb31bab4671287830dfb62f3d474f
f8f9d8f0eb9406f7aec51167658e10d165b280ea
70578 F20101208_AAALUR kent_d_Page_070.jpg
9f5789bb3f4e80f4a057ffe0235871de
f496280cf0f260aa655f8d062fd5fce21931fb03
1656 F20101208_AAAMXU kent_d_Page_186thm.jpg
ef2628345322dfba31d79d54ae721427
226cda13a94e86ca2585a327f1a11bc51a0ab786
1051951 F20101208_AAAMBB kent_d_Page_161.jp2
626afdcfc575f3198de043dd16eddea3
216e470aa0f676711628fb90ac628ed12d91c90a
57079 F20101208_AAAMAM kent_d_Page_137.jp2
b8ae9337e8b9c07484267e10113d8e85
94a8090b29e10175017b499806ada49342871cb5
18101 F20101208_AAALVG kent_d_Page_094.jpg
b1dfeeb25f696119d81054f2ba022e2a
2959e2c7f7192f16429d6bfbf8ff9ab4d3e44e5b
73334 F20101208_AAALUS kent_d_Page_071.jpg
f5ce8fd153ada6802ab1ef4dab2eb92e
c1d206a1f2925420b59b9248bc93f3aedf23a3d8
24919 F20101208_AAAMXV kent_d_Page_187.QC.jpg
cc5391f5ef0ec97f098e76e8a27dcf24
c668f4dfa3ef5acfe28b1715bd53d030c8b7a154
64717 F20101208_AAAMAN kent_d_Page_138.jp2
0784b3648537a7bbd65b588a11016dec
80158acf33895ece363fe77a85cc524711ee0fdb
21081 F20101208_AAALVH kent_d_Page_095.jpg
20989ea484e58e704dfbeee61b5680b4
0133979fb7e6ff4f06484f8520c347ef770f5974
70933 F20101208_AAALUT kent_d_Page_073.jpg
ccc9874aab76e3b2a84957a1c795f8c2
da558ab5c8010e961035b12f7dec6cfd448868a6
25734 F20101208_AAAMXW kent_d_Page_188.QC.jpg
dfe76f9d1b3312ca35fbf1bcb317258a
b9e848dfc1cd48d7ba3bd57607bae83fff80c212
F20101208_AAAMBC kent_d_Page_162.jp2
72d684c90a9ecf740293a6c3052044ba
99aa5ed4a0b556847b2f32f0ccdf38744cbc7bd5
57459 F20101208_AAAMAO kent_d_Page_139.jp2
0e490689d9eff6913be5d0ef1cdb0a1e
4f3c5b678c854534e60c25d0927272961061ceab
21905 F20101208_AAALVI kent_d_Page_097.jpg
a3af0b4f55b294b9dc32b2f1eb366e7e
25d49ff53c5a6237321a8a671d02229430b54662
75264 F20101208_AAALUU kent_d_Page_074.jpg
807dbdd894ebc33b184034a97e472606
6a3a3e0160f151456684345f61a0fe69f4072886
7176 F20101208_AAAMXX kent_d_Page_188thm.jpg
8874868ba6a06dea550bf42768b2b61c
460dd7d9fc8eb809163b4ac72a00c1db95e3b3a6
1051966 F20101208_AAAMBD kent_d_Page_166.jp2
e28b2410900d6af828e54dfe5b880fe0
d1f78441dc6efbc900c7181da17fc0ffc3e7ea58
64837 F20101208_AAAMAP kent_d_Page_140.jp2
1223a706977cdace33cb62fe3df5015d
2e1e65cf90cedc5747ed45628bf903de221bb61a
21647 F20101208_AAALVJ kent_d_Page_098.jpg
6af821a9b26174e8b29b3b843980a0ee
55c0d7a9cfa869fd1d06eeebc914c667d2af574b
76248 F20101208_AAALUV kent_d_Page_075.jpg
dd429194b9180941d69f02e02d04549a
485c66ea40791d08a7ce66d8305bb826a7978a76
1014118 F20101208_AAAMBE kent_d_Page_167.jp2
cfd70b91200f906f3ebd8e8baa95155a
6545ca0f49d82f1deb086ad56b554de50daa48fb
48056 F20101208_AAAMAQ kent_d_Page_142.jp2
03802ed21224fbb64c97dd5b427dd6ef
f930dc180498e739a021dc731d889961018c87f4
21980 F20101208_AAALVK kent_d_Page_099.jpg
88374cc50929db457b33a4cc419a7737
21d803b412dcd03544ff540ae9bde994e25f7174
7026 F20101208_AAAMXY kent_d_Page_189thm.jpg
b0d872eb85c64980f35ca581cfc51684
85b00b1f889699f950a6d16664b4bf2bc6bee2de
F20101208_AAAMBF kent_d_Page_170.jp2
0dbdf7b350c6f5ec90a5520c6b94d96c
f30afec489ce3a848d813607b8312a806630c1ee
83922 F20101208_AAAMAR kent_d_Page_143.jp2
3a42327781c228be90291dcc922f6e96
460519e3bc6ee9428423771ace1dbef3c1d65482
21411 F20101208_AAALVL kent_d_Page_101.jpg
844f91d25bb4db0882f50fe7bc6d2446
f0522b64f0b120642bb968c4c096cec82e42b277
76074 F20101208_AAALUW kent_d_Page_077.jpg
e5c6b76561819e81e991ecd2342c2295
89fcd69364e22ff6d49a96739e21ab01403acf10
9284 F20101208_AAAMXZ kent_d_Page_190.QC.jpg
a6cd962dedfc8062b798dded2d07b5ad
4232825d18aa7b5debd323dbe026826dbfcf4560
1051986 F20101208_AAAMBG kent_d_Page_172.jp2
d25775c10a42c20da6d5fb112519c165
f554f014634baeeaa6c08d3071cc1cfc3a2e8b39
21741 F20101208_AAALWA kent_d_Page_118.jpg
98cc3264c94fb77430934ff706675a01
5e6dd4cd836f0f15c04b36b7b3bec8ea63e27680
48770 F20101208_AAAMAS kent_d_Page_145.jp2
9248c6e471ff4e6a90e94d2ceeb92288
f2ff7a7b57084bd839d8809d8517363f4455d5ac
21617 F20101208_AAALVM kent_d_Page_102.jpg
a913ff1e2573f626c42f552e7629b5e0
0bfef120100c1157fea185cf91c526eb84f9e39b
60929 F20101208_AAALUX kent_d_Page_078.jpg
0e16d1387ff6ae042e47004ea48a1d2d
cdaa032f4cf60ecba36715c81c779d46fb5652b8
1006703 F20101208_AAAMBH kent_d_Page_175.jp2
fb08b70a940d1e3a828bc4701dfe34af
bec448aa80fc8205819aff125018b5963f6293c1
69912 F20101208_AAALWB kent_d_Page_119.jpg
f044484d02a509a56c6b9681534fc51d
8c62169a073d61f0ee005d435acdab3eb94800c4
65912 F20101208_AAAMAT kent_d_Page_148.jp2
1eddf7db5e28e0efdaaab3cea66ff02d
98b0feb984e22c0d24f176650280ee6dcc3ecdf8
21575 F20101208_AAALVN kent_d_Page_103.jpg
d1a76739604feae3c307601e1a7501d9
d4bdac5e03b841b9d2bba177dac64cf927889f83
42066 F20101208_AAALUY kent_d_Page_079.jpg
1be8fd06220a924b9a7bfc9a8db01517
a0721baddea08fab3f8673b413aa7b0c29a51432
1051972 F20101208_AAAMBI kent_d_Page_177.jp2
3bf90bc630477fee2c825358130d2e78
9c5bf15dc27f058376205596992de4974c129d5d
75808 F20101208_AAALWC kent_d_Page_122.jpg
f005c4a8a3c094cfcc360f4c984cda10
42f202efbcdb31575c5145206628af831e2d8a05
81026 F20101208_AAAMAU kent_d_Page_149.jp2
be8fccee36930f27c82da1e953f59d72
479d5c7c65077df3b89c072f1beb32371b597ac2
25084 F20101208_AAALVO kent_d_Page_104.jpg
eaee638c19d9f4984bc98f55689d9f7d
80d15188d7b1e963cc338d9b7dc0617cd150d8d5
90560 F20101208_AAALUZ kent_d_Page_081.jpg
dad1f67195914e9609b490efcf0d4b08
90ea2a2f5cdf4c595de789e0209ebe5ccfbfbd17
1051982 F20101208_AAAMBJ kent_d_Page_178.jp2
d1837f4e92f50da1a7d4cbd698e93a91
7bd1bd5b484d7de4b57df0213b54c496b9d88b55
89099 F20101208_AAALWD kent_d_Page_124.jpg
f6099fbb5b7358c64e46f4b57109f206
da4992aef1dec17adc591b0847e5451f5eb4e4eb
76911 F20101208_AAAMAV kent_d_Page_150.jp2
bd6bef6e8525b4f494443b70841945a1
b6b64202566b285ff15d5d04da45e0095c09b567
25781 F20101208_AAALVP kent_d_Page_106.jpg
dd071bd5fecceac5fd80d558fb230907
928df889d28b154fd7c72fba280dd9fe0d50765c
F20101208_AAAMBK kent_d_Page_179.jp2
e30ef17b88e921b465473d2be117f761
e29039d4a2b1200bc5ee8097eaff5e3eaccbac75
77720 F20101208_AAALWE kent_d_Page_125.jpg
ccab41f59b0417b4b4ac9e21be41ce1a
1f61b4e61e48833276dc40571c0d2521b318f486
61259 F20101208_AAAMAW kent_d_Page_151.jp2
af8bd30323dd2609557f4ee538dc2ae4
4101bef886a1694090461cec669a73a468f472c6
23493 F20101208_AAALVQ kent_d_Page_107.jpg
7c870cd60d816b8f6cc805272d269da0
d24484c2a6239dd1da32b45064ce0bcd336e1669
132551 F20101208_AAAMBL kent_d_Page_181.jp2
e9d534a97ee7648f75c402f157f4fa07
6b2c773d36ccd948a34a8b7b51d72d96df95af58
73229 F20101208_AAALWF kent_d_Page_127.jpg
abbb24f115f01275298a9e71c839ae25
b0062c44d51bbed050713caf986ec87000cc5fe3
72291 F20101208_AAAMAX kent_d_Page_153.jp2
7cdd5e9b426be200242fca7c36ba7990
652f263182774108678a7b15c244964d44ca8a61
27938 F20101208_AAALVR kent_d_Page_108.jpg
837d865a22df4b8c76bf6a744064cdd2
e7d5526cdbba7502731b8ec5ffe26951f666768d
F20101208_AAAMCA kent_d_Page_014.tif
f7745e0341120b2ac08173810a604e56
a774075d5dca2f9a4acbaced3eda2e3803833890
76113 F20101208_AAALWG kent_d_Page_128.jpg
c4781c40f73828f7a4d41cd4765ff999
36b9d4fa14d66b682f498896de6383856ed76d90
F20101208_AAAMAY kent_d_Page_154.jp2
301539b8a33403c495c01d76ecec8b33
016f20cf22e3179146668676dcd74b182f79def2
26136 F20101208_AAALVS kent_d_Page_109.jpg
465f98c95609b57719ac4a36ae6895c9
7e962632bb494ed62b75d4cdb6bf77cde2ff61ed
F20101208_AAAMCB kent_d_Page_016.tif
8bbeb9f4b7bd4d65f8c7105154a24ca7
c2f9f67ddbd35759b704ca26021a3be12c1646cd
1051921 F20101208_AAAMBM kent_d_Page_185.jp2
bf786dff4304460663f5bd1901ff1d9b
056ef086e5054663fd0d99f1fdebf9602cad6f6e
41222 F20101208_AAALWH kent_d_Page_131.jpg
215b5faffc6ba7d49efc4118accb275f
0845141f2692c6a44bd11548afe8c6bbd392e2bc
F20101208_AAAMAZ kent_d_Page_158.jp2
63606b9ec33e27bfb6076b234859ff76
8d6c9579a8c9399661a8da2d597c513e9b37452a
24333 F20101208_AAALVT kent_d_Page_110.jpg
970deb1361d854e450b8a2d0be164ec6
96842fde06c88323c55cd9fd341a411feafa09a7
F20101208_AAAMCC kent_d_Page_018.tif
abc14a3ac0f43b11c668308cec1a693d
4ba663873fc472574154178bb618de44dbbc691c
141632 F20101208_AAAMBN kent_d_Page_188.jp2
38795a264c7706be3c8539ebbede8849
cc2173a667e1001ccdb5cba0f9c8b5d20e10a0ad
40238 F20101208_AAALWI kent_d_Page_132.jpg
ef75a90664bc1704a22873ba73d3376c
39b9e3e98461bb166664d29541181ec2c4c97424
30055 F20101208_AAALVU kent_d_Page_111.jpg
1883bbd26e3b86a7d8f255a1c135f477
52db0b6ba2307762aea356e1de3f64a88a02e15a
131428 F20101208_AAAMBO kent_d_Page_189.jp2
6457b4999fda30f50fac29f966ec99dc
a795edb6124f444b1ee25c994b6cb7deef549f62
46055 F20101208_AAALWJ kent_d_Page_133.jpg
d56d5015547af3d8dc7ec265e713fe5d
33c420ca1ad10f080f68e1d5c7c90a16c75a51d9
25071 F20101208_AAALVV kent_d_Page_112.jpg
5373da384c487513f562adc55200f543
28ab641468fb9afbbd0df980d743d797d26b6a00
F20101208_AAAMCD kent_d_Page_019.tif
bda12a65f3b2f912fb3cce040703f5cd
2c68dcaeef4239789644a17dc1a75249888b85d9
38065 F20101208_AAAMBP kent_d_Page_190.jp2
426ea18939fadbc3bf58203a3031d46a
01621b1840cc1f2fb78094687a7c158813eb8744
38052 F20101208_AAALWK kent_d_Page_134.jpg
5fba46900b900a1897ae9b9e1000bbb7
e933865e0eccee6bdc784de7cfc2dd2a37535124
33726 F20101208_AAALVW kent_d_Page_114.jpg
dc541e24b4b23b08e9ae48aab73a63b5
31a706cd4fb3a997d39beca9d056e0ec743bae42
F20101208_AAAMCE kent_d_Page_020.tif
c94a73295c0182fb8608dfd8683b6323
64df957dce33747074ff1968efdd047adef76731
62992 F20101208_AAAMBQ kent_d_Page_191.jp2
99e4d475b04919bb8e1f899124734e29
84bd7e52512042a5278ad5249ef22cbe346d308a
45858 F20101208_AAALWL kent_d_Page_135.jpg
0ef3815ed949b52691052dcfd1ebc0df
1318bbc55f22b343521c5b60e449668400e74315
F20101208_AAAMCF kent_d_Page_022.tif
5b6ca33574ce1f109244ded4d2397332
5f055e59ecdb1ae2428600063c63392c19892982
F20101208_AAAMBR kent_d_Page_001.tif
bad37facc6833e5e429eb16b2df74f0c
94cd8677c2105a9dd8af0d3cc142c82554db8373
43371 F20101208_AAALWM kent_d_Page_137.jpg
e50bbd96134faef6838262118699ce37
c2882a5eee8adf4a57d834ab021986b48de133a7
24968 F20101208_AAALVX kent_d_Page_115.jpg
f5a9da34d8ca3c5729f707da4c20aae4
a5289d9b8dfee708bdbd98b9fde686264b1e4cee
F20101208_AAAMCG kent_d_Page_025.tif
8cb895077d0ec9f14419042df1e67fb1
fab2b95e6932a1ba00b9480c84172a58439259b6
67788 F20101208_AAALXA kent_d_Page_161.jpg
c9d0dfe0788ce5ee2f1e337dc600e6f4
5b14f3bbb52431fc00d907fcfd894858618a1bfe
F20101208_AAAMBS kent_d_Page_002.tif
f41efa5915ad79fa8dcfde860c1a3a27
979a2998647aa41df082cf65de4c594661bd9cdb
45083 F20101208_AAALWN kent_d_Page_141.jpg
78838a7420ae22e3cff87861289e8c8b
ce253e75062429bc0bd13ad9b07e8c35eb45aaa8
16393 F20101208_AAALVY kent_d_Page_116.jpg
7dc6a85c4718b372e1ce6c5ae8843d6d
42829c7c4c8318d61db049bfb24c04df19ee1c31
F20101208_AAAMCH kent_d_Page_026.tif
4910382bb2e6455678901a5550a7df56
d6bec8775476fc81d56525d10cf604aa4fab854b
65278 F20101208_AAALXB kent_d_Page_165.jpg
c99ee7120c3f46bc0f436bcde679e76f
dc7a3ac4425641c6ad30022709dc74299a98ce11
F20101208_AAAMBT kent_d_Page_003.tif
45aafefbfe9665cb5ab3577a44aecfd9
e920d1ef6062052ae426473fafa934afb4daf486
38685 F20101208_AAALWO kent_d_Page_142.jpg
1d5bc71e5b0e7d6056124affb06ebefa
027f64034e94c3b4d7457ce6810e0e39a193dff2
23380 F20101208_AAALVZ kent_d_Page_117.jpg
74937843c160486684aac2309151eb95
f7ed6609ea11ff34754512cd7cd77a2d32e53d37
F20101208_AAAMCI kent_d_Page_028.tif
215dbf094f16c5af6f7ffd2d24a9405c
e42f324ac10b89324c721a438d7571fd27347ce9
71728 F20101208_AAALXC kent_d_Page_166.jpg
da0a3003d938642fc7f6c21b8cc0e3a9
b1de428e4e037d30460e68fd9817afec9b29c065
F20101208_AAAMBU kent_d_Page_004.tif
b966e218985a3083eaf5b76046bcdece
325c18989a92ca39d4b8c71703537c46167f1736
65023 F20101208_AAALWP kent_d_Page_143.jpg
3d5a33c08926b32c6619635fd5cdce48
064124d8434800016f25aa43704337a9010ca99f
F20101208_AAAMCJ kent_d_Page_030.tif
ecc312a8a41568ede04b6be637a0a82e
8326a61e2629c94e38c0e0bbac99de21f4273b9d
76162 F20101208_AAALXD kent_d_Page_169.jpg
18c4dd2e274de094931a3a9f30ae0bfa
069f6b30bbbf4abafd42e1a2e2152acfd6d42a9e
F20101208_AAAMBV kent_d_Page_005.tif
7db8def9ee31cfa3cab0ee962069e4b8
b890c83f94a2db657d2ffbb20267b825308b8c73
44710 F20101208_AAALWQ kent_d_Page_144.jpg
0c025fc09e96e54ca3705f976c6c6039
98d044e9613cb37cdd7e2e3362824428aca62fa7
F20101208_AAAMCK kent_d_Page_031.tif
46e3f754b16a05ceae2e1f80fef74a03
233ff46a0341d84e8525b6c620e79469eb915654
66201 F20101208_AAALXE kent_d_Page_170.jpg
a1c25ee0a2bd4b2af3f8c89e94152ff5
62258d3e8e264a103eb24337f73f06f770c5336f
F20101208_AAAMBW kent_d_Page_006.tif
b2c46f98c139ede0d325d007a3374b20
cb9b0b38ccb956f8cb194d2ea7ce09f541c8004b
F20101208_AAAMDA kent_d_Page_051.tif
a9c63dc620ca202d9289a019447d2dd4
31ae12de12ba9b450649da6a7b13c324344ab0c9
38356 F20101208_AAALWR kent_d_Page_145.jpg
73a4ee9472ed20df70c3387ded84896e
ed472c007584a8d9ea0fc5ae57290710f071dcdc
F20101208_AAAMCL kent_d_Page_032.tif
c99c0104b22ce0135aeb1a03ce82fe72
1f7738a1cabb71d832476a3db81ca51bcd7cc998
56620 F20101208_AAALXF kent_d_Page_174.jpg
809059f1abc97bf3993a907b6daa4662
04775f5ae600aca2ee91572d2a6c518bef986a61
F20101208_AAAMBX kent_d_Page_007.tif
0d9384d1b3ea36ea4be26224673d4c3b
49f25d711026c0dc6c4bc8e33ed694d9bc1365b6
F20101208_AAAMDB kent_d_Page_055.tif
c63f7822c332a1d320f724e354e31b28
bac9ab1ded256fd70cb4e9e51ed5f7312af8569c
59508 F20101208_AAALWS kent_d_Page_147.jpg
bd425193556cea661beb0dd44a42b481
9de411090f95a4408cc6721f8442932a9f729d88
1054428 F20101208_AAAMCM kent_d_Page_033.tif
a13253a9f41c24200afc6016efa92840
b1772e1499e346823364cbbe07dede71a18844b0
53369 F20101208_AAALXG kent_d_Page_176.jpg
119b08377520f6b9c0dfef6dde4088fb
7ab8770a10bd7c8b45cf54d5132a01ec99edbd48
F20101208_AAAMBY kent_d_Page_008.tif
798c5265281138907fdb14ade363b978
24cada57e5eebe11981fd25f3ce15c710a9c20ec
F20101208_AAAMDC kent_d_Page_057.tif
58b5ccec1fd977c3cd26f84dcc1dacc8
92a67fd7dcd3e2d079fb9d1dfba82589b8e28afb
53186 F20101208_AAALWT kent_d_Page_152.jpg
81ea2f51e58ded0e50f6e634584d11c6
6871d11d10156982ec6826bb4f7d4035c1f544f5
F20101208_AAALAA kent_d_Page_107.tif
6761a7299cfa8a8376bdfeef5ac63a3c
55a211609c66d406feb14bcf1b73e3d1406da167
F20101208_AAAMCN kent_d_Page_035.tif
eabaf16ad6440e1fc90228715a9fd483
b89173ff83a3eff47104ce91c3a2dac87c53d103
60453 F20101208_AAALXH kent_d_Page_177.jpg
f52130db1db0e74292653ec8e2664565
ae261417e177ca7c1966e3d53a6395badeb89381
F20101208_AAAMBZ kent_d_Page_013.tif
e298cc5328a785a3a6aed27410cbca55
3fbf00c4d63c7071ead0ae54730bc4247607014a
F20101208_AAAMDD kent_d_Page_058.tif
317fd6b3183af50484848b96bc38757f
2c4af91d226e276d29731235e389cfbbf7123039
56214 F20101208_AAALWU kent_d_Page_153.jpg
93efafc6a0af00debf21dc58eda0788c
e9eeef7f150aad6ebbeff590fa80c39ebc869ed5
13566 F20101208_AAALAB kent_d_Page_003.jp2
64f71107e886daeac7a828a80a6f8697
4c55e7cc78a1e22f023c8586abecef2b5d16d6e2
F20101208_AAAMCO kent_d_Page_037.tif
3ad5d567bf9d09cc727af4fd98bb36f4
3ee8017ba7b78658e2694bc8d0e98d1ad29a0099
65908 F20101208_AAALXI kent_d_Page_178.jpg
2c6fa9844dcb771c733160d0ae30cf3b
2b730d6b27ffef51ef60a6f204fd970b4840c251
61985 F20101208_AAALWV kent_d_Page_154.jpg
6dbc7cf94bf5d4ca7b8778307dd686bb
e3b19d29c1d4df1f2e7297a774ff460fbc033c48
F20101208_AAAMCP kent_d_Page_038.tif
be6af9461979f2ae2575c489fc2198ef
a3f209429c6c6b3f565a92f02ec82105d517dd3f
50763 F20101208_AAALXJ kent_d_Page_180.jpg
f6ed3c2d3041ad1365d7ce9ec507ca8d
0f7d62bfc16563b74d249b9ee46a06ab4123bcff
F20101208_AAAMDE kent_d_Page_059.tif
79040da56827ec90c42b5552d4e7f073
5b5d9d881b36371a1e7f57dd7e0eb5b1792e7b81
64775 F20101208_AAALWW kent_d_Page_155.jpg
f0958cb02d73bf3f17a78e9b6701835f
c7fb1e7bc6825e4b2c882325e7a764991c75280c
F20101208_AAALAC kent_d_Page_156.tif
5f3ba1ecbcc925054c7501295aaf4905
8056c09649d750d6d2751b1dab985d52c0c4cfe2
F20101208_AAAMCQ kent_d_Page_039.tif
286b72c83ba362641dd3b9e8dd6c3ace
717ecb63bb3ec4b9f1af0f54e800337907186fe8
15683 F20101208_AAALXK kent_d_Page_181.jpg
8a7525204c58e9543817ac57c0e80f00
7fbce4ffc6fbee2c6ecd7f95e21a591a20a57365
F20101208_AAAMDF kent_d_Page_060.tif
84d7deae064868d03effd24e39c4117a
8864582e5f5fd5d4cd2cf700fa4473733a528bbc
69828 F20101208_AAALWX kent_d_Page_156.jpg
434f8da74b6dff872e12aacf340b98c5
c504e8a9682c56f3c3dc145ca14f2b16acaffd0e
25140 F20101208_AAALAD kent_d_Page_022.QC.jpg
e14d9b81a2d66c427d6891a8c98b2fe6
0ad7ef5670ee393789aaa8bfe30110eab3a68d30
F20101208_AAAMCR kent_d_Page_040.tif
a60955cb9bc6dc229e9c95e2af20b1bc
304e54ead684c31b04110b5087ed4d482bbb3be8
65675 F20101208_AAALXL kent_d_Page_182.jpg
21019ef6c402925b5d81c42162276de3
fe1caa60ed0ebfd8f62a99242c56a9c8b44752bb
F20101208_AAAMDG kent_d_Page_063.tif
39e28fda80c2d26ce56038eff0a4f333
194a5ee22f99c07965f90db2b97838cb3a3fe576
899 F20101208_AAALAE kent_d_Page_033.txt
f1ff445f4a76395e24208c66f96cd119
ee6eec30da32bc44bc06286d08ceaa578995364f
1051970 F20101208_AAALYA kent_d_Page_011.jp2
f01002e1f58e96fea8daea76f56176e5
2a41606bd13fd2dece5159a98936e310cffdfbbd
F20101208_AAAMCS kent_d_Page_041.tif
1777ca26dce60186635e1527cb4078b8
7121e564748ba2db18b85b69ca5406604fc79901
54223 F20101208_AAALXM kent_d_Page_183.jpg
c4dbdb9ed6a2e9b50b8235e53d00def0
78131f4d304de30ac9463eafb13a3966c6bd8f55
F20101208_AAAMDH kent_d_Page_066.tif
af4a095c60e0cebc9938387f3aa7b6ad
ddd5822121f402487eeabee8950839793ef4d498
F20101208_AAAMCT kent_d_Page_042.tif
75ccba3b90ea0dea65294d7029358411
2af11325a16a90578da0c072846823fd5e70b3d4
54277 F20101208_AAALWY kent_d_Page_159.jpg
497ba99335d094778fe3f6cd00ce2aa2
afb9d0653ccf68fb91842ac402a1f30b76c417c5
4799 F20101208_AAALAF kent_d_Page_146thm.jpg
60840994506a5371dff718a9625ea239
4084c5828a5ac893b9ee60e318bb0297b9927fe2
1051973 F20101208_AAALYB kent_d_Page_012.jp2
2985df22caf6e2eb7bcfbe4ee138b66e
9e4c4d1cd052ad43963c2feb9f365399ea2cb915
12784 F20101208_AAALXN kent_d_Page_184.jpg
c8e36ac80ccfe77c3df485a4a2e0dfeb
0e2176825e3c1465a172f15f6d4c41481578e746
F20101208_AAAMDI kent_d_Page_069.tif
945cb4b86d7b28c6e562ad404a719444
8a9c9a32d1a48e019058e66302574dd8e2e0061e
F20101208_AAAMCU kent_d_Page_043.tif
d9bd3774c69da7bafbbc3ce4b3d25b1c
64d73a399c92f48603c79dfad24c32f1e75788f6
65776 F20101208_AAALWZ kent_d_Page_160.jpg
69753a236b6a99ce8be609c34688c968
ab07e36454fff24cee469e67015bb21704cfb92d
2038 F20101208_AAALAG kent_d_Page_124.txt
2d4100370b28c33234b04c4fd4c96628
a8d57a11df1ec8f525af5933bd86ead5417e968d
93915 F20101208_AAALYC kent_d_Page_013.jp2
4b88347006d4f85f198403d2718f049b
118b5a1f59075e9c1e6157283631efc92d11366c
84862 F20101208_AAALXO kent_d_Page_185.jpg
561432da3cd3865ed923f561d2cb678f
5d53ac700c56b6d47bfd976ae4564e6dcd0d1704
F20101208_AAAMDJ kent_d_Page_070.tif
41d411d6feff15c015e2fa84ae4b164b
400ab9ead6613320663526e609e335546dfae42b
F20101208_AAAMCV kent_d_Page_044.tif
ffb01abc9e105a05de3c50eddd415899
6940e606aee84a08877e5651bdf42097b5739e3e
26342 F20101208_AAALAH kent_d_Page_021.QC.jpg
beb6c78da8e8d88ce12da37e1e7fcdae
5834d50d1da101128bc794245e66823323ca91d5
37264 F20101208_AAALYD kent_d_Page_014.jp2
2bb9f4f7ef25307dcdf026c8557b2a8e
6c37fcd8f933034222f8167818ff6ef63bc403a5
19716 F20101208_AAALXP kent_d_Page_186.jpg
cdd7f1d1fa8aed52eef7cabcd3206d16
10c3c657e7f28bc523d5e0466e3eca89f3d2e429
F20101208_AAAMDK kent_d_Page_073.tif
1b46d043b8094fb1adcfcead6baa287c
436d383b26078b63f7e980a7c319100cfc468655
F20101208_AAAMCW kent_d_Page_045.tif
8756428b42fc601b8f20150aaa584f2a
c04b8834ad0f186e69b1c7cf01b8ecc122277403
94891 F20101208_AAALAI kent_d_Page_182.jp2
d24cb668554bfc219ee86e0fdd0af4c9
718fadc257c8d9a88748df49facb485dad05e5b3
109494 F20101208_AAALYE kent_d_Page_015.jp2
2b93626725a5cdc5d4581dacd808ad2f
048ffa85fb66c912e95e64ee0e36373e2ac2c546
85090 F20101208_AAALXQ kent_d_Page_187.jpg
a26d08d091c6a181f2f8a775322d8907
708963fac2c82f719f8fb8cb94d6b5103c970187
F20101208_AAAMEA kent_d_Page_099.tif
07539744a914bd51f80a3f071c6791d0
84373f69fe4b2e11fb46d0e8c41b703b60b2ebcd
F20101208_AAAMDL kent_d_Page_074.tif
2fe2829e4f3455cc605cad9e6278f14d
4dd26fb85a05e5b6d14b72229034dde397d109c8
F20101208_AAAMCX kent_d_Page_046.tif
bb537a9cbc57b11450f18e7cfc38b664
4eadf983db65edf962183606ff26e243a8a096eb
F20101208_AAALAJ kent_d_Page_056.tif
0eb15094a016ac98f6ffbe0520d5c31c
9050853f4b904993a1d54a0d3ad777eba61ad795
119662 F20101208_AAALYF kent_d_Page_016.jp2
7e135fec6322a0d670b9515bffbd9e09
ad2b3c08d02d46b89b6ac4246db52b1f76023664
86881 F20101208_AAALXR kent_d_Page_188.jpg
8d481a8979d76fdcadd4b252e3f84eec
a13d0c338ac40fd94ee0efcd8bcc67ededf390b6
F20101208_AAAMEB kent_d_Page_101.tif
0cbcc045da0596c0b206312c723807a1
f5c0408656f31beb6f5276967ff9c56b2c889f22
F20101208_AAAMDM kent_d_Page_075.tif
8fd33150c2af22ca9de13a188337ef45
780ffe08e4076e39d0f8c501fdc716ee9305c202
F20101208_AAAMCY kent_d_Page_048.tif
456bb65178b305425b60f9a2fc421d02
9b060f7d4250ef325756e9edd358e537a0ffdcab
F20101208_AAALAK kent_d_Page_015.txt
9acc6691f6b5c6b8f79e612f1ab8c360
0393832e535e4df796f4f02bad0541bf45025ec5
112717 F20101208_AAALYG kent_d_Page_017.jp2
3cbcb46253c21934260784a31457a13d
43ad1b05ba2d68b60028e9ec1eb73ca572a72410
83041 F20101208_AAALXS kent_d_Page_189.jpg
ecf27a20a2a3f18635941eb7e05c86b6
f13806af5e94d62af9fe7512b7c5d4bb8bb9794c
F20101208_AAAMEC kent_d_Page_104.tif
54ea7d310edf0e4f7c9fee979ad2a42d
d78ba1fc8749a0ae360f9031874d1060de970d95
F20101208_AAAMDN kent_d_Page_076.tif
b8b6567204853ddbaaad0778fb814b91
f47757353a1a8bc61c5864e9a1f551e11892d498
F20101208_AAAMCZ kent_d_Page_050.tif
dd2d9d94932ef09a9c6e832d11bbbbc8
cc10dc8ce9a644d17302698544210295737802cd
F20101208_AAALAL kent_d_Page_127.tif
b0e96d3a0417786c130d63f1df881a22
156d2190475af232774999786b82c1d5e686edfa
118673 F20101208_AAALYH kent_d_Page_021.jp2
5d122dec36a1413199eb5156f60c4384
0b5aa662ff04e2955a3c0e4694912766205d1411
29500 F20101208_AAALXT kent_d_Page_190.jpg
5e62233fb1b05705a590e9fcf82b5d93
892869154bdaf82307fd282157984fb5a4dd5b0e
42513 F20101208_AAALBA kent_d_Page_165.pro
cefbdb92ff4b014d0e6e8efc1a68f350
3307d3f4c6c3f286341f00700fa2a1a6792af506
F20101208_AAAMED kent_d_Page_105.tif
7b2d53fb58abbb9490bc55cb72fa2fda
670dc0769ab24c8ef7bf064cdbffafc79f9ca5e8
F20101208_AAAMDO kent_d_Page_079.tif
fe08d14a4eaf03be8b58af26178f80ac
e020ffae0692e090a04f2c30e58bca628f008e44
26892 F20101208_AAALAM kent_d_Page_135.pro
5761f03f76a718ca99375e6e6085e0aa
5d990617c3146740aedf3d695e20ffb1d6f70d3c
114305 F20101208_AAALYI kent_d_Page_022.jp2
ebd66e274275800b94697e71228a7b8d
f068a379bb5a74e0958b57de9893b138ba98e070
45779 F20101208_AAALXU kent_d_Page_191.jpg
503fa07a8d59157e93d3091a8b75e4c5
68383f19b221e5b46d48bb069bb32fe6c4f756cf
2037 F20101208_AAALBB kent_d_Page_128.txt
94b22c4a183f16d3a5f52ee8813d0c5c
fc9daccf556d16d2df5a3a175e28f2f6b5fad82d
F20101208_AAAMEE kent_d_Page_106.tif
440a5394ad0bd0926fe15beabb400bdc
44ecf64e6a471e7053842f408bfa9c4a0ac08a15
F20101208_AAAMDP kent_d_Page_081.tif
9c6c45620d216470815b83163a6c26c1
524d652b268ec2934a48a6a20a762affac49e482
30547 F20101208_AAALAN kent_d_Page_152.pro
56003499cb335aea035f03579c1db288
ba90929150adf6d447d7dacc0165e0797436e344
113324 F20101208_AAALYJ kent_d_Page_023.jp2
262316beb64a29e6c20ec31f6f4f61db
29ea1c9a852fee173c6f091b95e5ebcf7e67ea5e
24304 F20101208_AAALXV kent_d_Page_001.jp2
414c84c5bd1b5c87a91e10d551d1cadd
4b9e026f042a6dcf6818cbb11d7a97146bf5a987
9536 F20101208_AAALBC kent_d_Page_104.pro
4e355745c565454c535e7279d79a06ef
7d5bf1c0f7ac6a84616c0d3ae6ff345c4cb27871
F20101208_AAAMDQ kent_d_Page_082.tif
0ed171e1c3bff95e702109a315b69a79
72e85e2253d4522a1633fd61ce07e592a88608cc
17362 F20101208_AAALAO kent_d_Page_046.QC.jpg
6f91906c299d3de224c277a9fa7602de
b34208b3ed37e8973946bf68f305004f4c231c3d
111933 F20101208_AAALYK kent_d_Page_024.jp2
8658ce8bbed3e71119d54d9edde57691
81106753077f5da2a112b76769c31f806ccf886f
112846 F20101208_AAALXW kent_d_Page_004.jp2
72ec85ceee4d5393601c368f81284b8c
31bc5528eff1cd65a7b31a9b4bcd2e0849e7bc48
F20101208_AAAMEF kent_d_Page_109.tif
0d84420bf1c7507778fafd2cbd507023
db32c0a4754345e7a6fbef19581cef3e2318212b
F20101208_AAAMDR kent_d_Page_085.tif
ed2155cbe138dfc61ef85621d16339a8
bef64e4bad1ea3fe5edf57cf76ce15cca57b4ae5
2180 F20101208_AAALAP kent_d_Page_116thm.jpg
621ef4120508372637084efa2dca5a1d
61a5a0481dae1d97e090c000c9dec978374b3f8d
99766 F20101208_AAALYL kent_d_Page_026.jp2
28c3b5423e485931397d95a84283018f
ded3d3476c97092efde1ef4a254e0a9c7eb63ca7
F20101208_AAALXX kent_d_Page_006.jp2
f4f3828cd935cd4074b58516edc04017
55cc9f238f023200aeaaf985ff1625551a209534
1273 F20101208_AAALBD kent_d_Page_065.txt
0b143024329267eb109049f984b51acb
3a8ba588f9d7fa1446e91bd0f1dfac283fc2f460
F20101208_AAAMEG kent_d_Page_111.tif
6f1d2941566d72b8136b61b1b5cd1a0e
8b012d4cf4fae7c0283be7b50a4e87a017034d80
F20101208_AAAMDS kent_d_Page_086.tif
9a736b2cf2779eb01a5145804b7e8358
1f4c3947adb6fd58d22203ead13d5eb1b34d3b50
1051959 F20101208_AAALAQ kent_d_Page_114.jp2
04f0cc2eb6e1ee9dcd590f159236f3a8
51c717225e52f2a68d7df7678e00559d13f2be50
114512 F20101208_AAALZA kent_d_Page_051.jp2
c3812957f13d260b5b57674311ab8779
6f90d7fd310efa2ad141f3f410bf8de6f9dddefa
121557 F20101208_AAALYM kent_d_Page_030.jp2
42736043c355ad28e3cca4b2c6c68e38
395edef57347c2a65468a21c2aa5837ecd0fa9c9
F20101208_AAALXY kent_d_Page_007.jp2
f230c76f2d77d32f17f2c9602563ff2b
f02248952d476c716a745ac27d0d65e85b54af4c
F20101208_AAALBE kent_d_Page_147.tif
09fd1447a1e53f611e1c1975bcc00060
b8e4934afd7989a0e05fba95e2f096943865ec5a
F20101208_AAAMEH kent_d_Page_112.tif
caddc9b6e67768143259be20e537d483
c7441c574f8cbc6ba751964ee6c83f32b8a3fd4f
F20101208_AAAMDT kent_d_Page_087.tif
31253f99d6f1e183753fa13b338df78a
69b41227a1832576be8b7ad1eaf969cefebb1177
25246 F20101208_AAALAR kent_d_Page_074.QC.jpg
0c01b2100a45cbbdcb9e9ecbf3216ce1
7b5e972739791033cac9a866519d698659ccfbce
119462 F20101208_AAALZB kent_d_Page_052.jp2
40a26f80fa291f7310da4db1ada69fc0
c572a14338acf44602eba5b0b9485ecfa0f70a83
40651 F20101208_AAALYN kent_d_Page_031.jp2
9be47bd54e7454a1c310e4a1400c5150
07b3c5861740146cadf0555e98a0ae5a0549479f
54349 F20101208_AAALBF kent_d_Page_175.jpg
65ce07567813f99617132382b1efe782
f14c28b02ca494b4a97280cc0063fa9bc4162e04
F20101208_AAAMEI kent_d_Page_113.tif
cbbab9ce3c73864ebb20b3fbb37ee8dc
5d7404cfce44121856873f43a9a8c2486808f5b5
F20101208_AAAMDU kent_d_Page_088.tif
9bba4b1a3f51094bf76e487acd79209e
6fdefbb1779c52cebaaf1d9f8754ef86221b449c
F20101208_AAALAS kent_d_Page_155.jp2
9a381f504f633658aa7cdaeb9e5710f6
3e4b029d40d4653842809556424fdbbfbd7acfa1
101353 F20101208_AAALZC kent_d_Page_054.jp2
c4aa95d90d4048b473a599bbbe811a59
3917487ab9e003061c94f33c0c9a87a6f2f607b2
429318 F20101208_AAALYO kent_d_Page_032.jp2
08b93390b1166d4d070c59c364abed47
2e8f691cf86cc788ea22b1b29a55c0655befcfc5
693702 F20101208_AAALXZ kent_d_Page_008.jp2
4e60631fd4cbe145759ae0779662d826
655ac95ec74d5f0fddbc85e5a2d4b1a3af13a2a1
47190 F20101208_AAALBG kent_d_Page_171.pro
c549cec84639643076c0956416bf96a8
4ca84d91083702af05e141e5d988960a972ba872
F20101208_AAAMEJ kent_d_Page_116.tif
419a0f20004cb9d7f22a16c9961bfeec
60a5fb62cde2430c22a5394a996cb38fbec19039
F20101208_AAAMDV kent_d_Page_091.tif
d597be8df501fa1cb91b64967c98670b
58ea861391fe66713e47529e41711828ca84f678
104263 F20101208_AAALAT kent_d_Page_076.jp2
021b0640f833cafcb25796c737f2f91e
08895f6546d7febeb4244c233a684aa8a9e0cddd
115711 F20101208_AAALZD kent_d_Page_058.jp2
14b96a98652b25e36a1067dd685ad77f
91bc8a40f3bca9bb9d058a79d5f6c60c5508736d
107909 F20101208_AAALYP kent_d_Page_035.jp2
45037a2cf8dcb2c053c0b4437504d37e
24d78d60d6c7785a5f98e6ab1b5bd51e3f693ac8
1051977 F20101208_AAALBH kent_d_Page_171.jp2
8fffd14e75f0c50acf19afa564f92156
718d07fc7e5fe41c59ea94788263715bb00a6639
F20101208_AAAMEK kent_d_Page_117.tif
6d1ea7e0d5c2bcec8e2595d4fca3be22
2e23c0a19deb71f00e0cfb46c6452c550b089036
F20101208_AAAMDW kent_d_Page_092.tif
350dabd76558f76506da9c108eb9189e
4668c825c9e7cbf6daf4d311da6a9cc36f168a54
1911 F20101208_AAALAU kent_d_Page_129.txt
bb95e14f5b1b65d5a9724935ad201048
b0d8c7153922371d52dbca438b36320ff97ef19a
117705 F20101208_AAALZE kent_d_Page_059.jp2
362406f7896f51be83ef2ce5c4d3dd6a
405e1f7d4069d30e2cafde885626d21002eaea19
57084 F20101208_AAALYQ kent_d_Page_036.jp2
acfa9605ee71208b2c311a6bf893b2aa
ccc18916fce82e1536158bf0421f2f994ba77a23
2194 F20101208_AAALBI kent_d_Page_056.txt
58f00666decea1464d53c16047f704ae
e246c41d31459d4f247dbe3bf6835917d3475384
F20101208_AAAMFA kent_d_Page_140.tif
0b3a269446708fccdb9e82a83e6fd92d
0ed0ef7d5f554fae7230afb23f5619c7030887ed
F20101208_AAAMEL kent_d_Page_118.tif
e0b026975d2c2f3d2ed4e70e3b5ec513
8610a2a41f21a8757166986fc9add2669dbda264
F20101208_AAAMDX kent_d_Page_094.tif
96884161feeef8f50123911628b9dbb4
bbde1be8ec1200ea25c0126488c05228a659ece7
F20101208_AAALAV kent_d_Page_089.tif
e4c221665293f5a8c2f6d2769ce11bec
16769f7ab1d7cb18537fff95ec7150fbf89ace5d
115138 F20101208_AAALZF kent_d_Page_060.jp2
dde650d39cb8f49ca6b30fec329fcba6
c0ca236c8ccd17d16670bca793fc87027e1d7a72
80392 F20101208_AAALYR kent_d_Page_039.jp2
e8dd9c5d16aacf7f83a955c77386a894
4fe64d54121acdb5ce70c3b849ccfda099da394d
F20101208_AAALBJ kent_d_Page_072.tif
006c593e0221971cd0d12bdfa13efeac
22ed8ad2166b7826faf18a5acb8f0d30d70cdc6f
F20101208_AAAMFB kent_d_Page_141.tif
790c4295325e98b7b1263e8bcd4bdd50
d563e2ccc915cf5ff1ca1d81888d619f5f57de00
F20101208_AAAMEM kent_d_Page_120.tif
80196dbaa0639b36cf86915638ae9838
d5ca67f83ad3adddd4b5c8508fccb53100431793
F20101208_AAAMDY kent_d_Page_096.tif
bc3ef8d7b395427539215d10b6862153
237039dc1caeb8933d5c5efb0969358984bf8388
103043 F20101208_AAALAW kent_d_Page_045.jp2
b52d4437ef03d72a08169871a8f927f3
cff01112d4c543350e6b8e6fc5ba0200460ed816
110848 F20101208_AAALZG kent_d_Page_061.jp2
a37a5c93c2d5f549e6594dd32066dbdc
90a2d01c2bfd165ef90dd16e401ffb3295fea8c5
95296 F20101208_AAALYS kent_d_Page_040.jp2
e75feaa37445e332298b9808f1db8641
a0321a29ccc0afdbdd280454b1d30ecc9a3af877
289940 F20101208_AAALBK kent_d_Page_067.jp2
ee6229224dbb6980ff03d91005fa59ed
56d4f76403e8a47b8e9358751d046f37adc35b19
F20101208_AAAMFC kent_d_Page_142.tif
5afd463d34c7c423df0bce8a1cbdc87a
5021b2a4fc9a13d4e314fec6caba87112a53d65f
F20101208_AAAMEN kent_d_Page_121.tif
ae819e58fb4c04071d37c25c3b9df880
9e489eee07faa787e781eaa8477f815805912193
F20101208_AAAMDZ kent_d_Page_097.tif
bfd2099e4ba13e5bd560aacdfaefaa2e
b911106a4658b85b18d183afffae69d87a86d1e1
110176 F20101208_AAALAX kent_d_Page_025.jp2
8df4571224e63d10bd018da9d71fe2e7
37a6b04d10d0314777b496bb38c9305c9b43955c
79731 F20101208_AAALZH kent_d_Page_064.jp2
bf53fcf00e62f7938b7d2161d6e78b17
d7329c50f132404ae2ecb1c62215faa388fcf861
72269 F20101208_AAALYT kent_d_Page_041.jp2
07ae860ef22681e3314780dfc4b81118
a8330ede196b034061052f42384b5738f6263475
25880 F20101208_AAALCA kent_d_Page_125.QC.jpg
61cdee6d4bc64d19162853cceb80e0f6
2dfa683d2880f6831bf1731991cce85bbd038944
243 F20101208_AAALBL kent_d_Page_068.txt
2528186d124dca58cd47e4041aef8197
854326d991aae4453a96c56a0bbbdcbc15ed4edb
F20101208_AAAMFD kent_d_Page_143.tif
441476e1258e0088574c537a0cb1ddbb
102c42536f67dddb43bb1d935d5184a5034306d4
F20101208_AAAMEO kent_d_Page_122.tif
eea22327c5a0961c479c20b3b00017ca
3015c901ca3e62ec7a9fcbc1ae5d4aaa70d2416b
59898 F20101208_AAALAY kent_d_Page_047.jpg
39027b635a5552819e76be529eb2f47b
63680de286ace8fa83531c156b82ca5d7b1ea6e5
406626 F20101208_AAALZI kent_d_Page_068.jp2
16e14307a3ebd9a8d914f5f831f2ff8a
00c54355f8b58f46af99c0ae183aacf9a7aa0863
81328 F20101208_AAALYU kent_d_Page_042.jp2
85b792c5102f89fc05fd57e8747d4fe7
a6dd8a5261502a19f195cd7c8a639d15a559e9e5
49805 F20101208_AAALCB kent_d_Page_018.jp2
a1b63428e5ab91a808ae5e5d9d85a236
2e67fb2c7f655e77cf1ecb6771efde4fcf4689a7
107107 F20101208_AAALBM kent_d_Page_073.jp2
dec6a30920a91be5fcb44c191d9a7021
d0edfc3d24eb4c50148fabe4360baebd63553eef
F20101208_AAAMFE kent_d_Page_144.tif
647fc68b553346463c042daef6a0dcbe
5528debb424a00b253decee16745589e1f53c946
F20101208_AAAMEP kent_d_Page_123.tif
08fb3f43db54c85f6c7261d5d7facaf2
018a4e9059e59d54a58ae83a1c3b90c4e6d3dfd2
67493 F20101208_AAALAZ kent_d_Page_065.jp2
268b018f614d1d2117169e3bb4f429bc
a92af06da3bba6ab63fc223528acd48875ecf549
105813 F20101208_AAALZJ kent_d_Page_069.jp2
a59ce02855b7325cdf72449fa90bc9d6
740bff08ab68736f3c338828a3da9c0f6885072d
94751 F20101208_AAALYV kent_d_Page_043.jp2
57cefd179c61b0b783618bbc6a25564b
0ffe0b21a26c44e4d9a088b97dc9c01e2c148e43
34310 F20101208_AAALCC kent_d_Page_068.jpg
ba70ae938f4a500c254f88f53b054961
821c874756a125982e3cd3e6396c2b78721958ce
37035 F20101208_AAALBN kent_d_Page_039.pro
b6be770597ec59e51fe815334fba936a
c7e01dac56a563cb619c3df8e8d54dcade671817
F20101208_AAAMFF kent_d_Page_145.tif
6980b9bf19172d27e328f1991e9f4b88
84473709ad68d6b854d8ae103e858c6b238a860b
F20101208_AAAMEQ kent_d_Page_124.tif
ba92d9ae926a8b8f24106e24f768abf1
bfe45b50a3389ab97d99532ec245bb5778b923c1
109760 F20101208_AAALZK kent_d_Page_071.jp2
a700af1bdf3ec67cd66ae1fbaae8ebaf
498fc3ed87210da9f1a69ee72f684ab90a095fae
99490 F20101208_AAALYW kent_d_Page_044.jp2
4f51ff6ab7e225ca423d049232a5c99a
c2b310ba542d9434ba1b90345f48b62cc90fa995
49230 F20101208_AAALCD kent_d_Page_148.jpg
e89e80a3f15657fe3c9152728cb069f5
83313bbcec602fd435e6d4eba0f97a21a248e203
F20101208_AAALBO kent_d_Page_023.tif
9f015cef3297b3fc8d9257825aaf059f
02ab8020c1dae169113ede4acde1a1e11d314821
F20101208_AAAMER kent_d_Page_125.tif
88f979453198fcfff9756f0e86e7a2c2
e431bb50b9d39a121032e04da4ad157b941a0480
108072 F20101208_AAALZL kent_d_Page_072.jp2
a0b5623c3a7f9a6632021d458b520aca
068eb267e350ff6d2de1d012e7de8fbf1559cc76
85424 F20101208_AAALYX kent_d_Page_047.jp2
8c251aa059cf7d4a1b6579d0504f956c
62b54f68d45c9718cd911ea23dee00c2ab67b10c
6809 F20101208_AAALBP kent_d_Page_051thm.jpg
60629ae82df5adeddb287664bf09de16
3679150a8a8d2c0d7e594e9bf0d89c9f8a72f8e4
F20101208_AAAMFG kent_d_Page_148.tif
8ddd9e1ebc44a8160d1b159f5de4fb58
fed4c112fbceb26b19dd4db7b94667c636591b3a
F20101208_AAAMES kent_d_Page_126.tif
3775dd3072cbe7df09d4e95f6df161ee
be40b95a2c496e5b9df6ec87b0cdc51b01796498
632536 F20101208_AAALYY kent_d_Page_049.jp2
1737bd275c5b85cf65754a08eb3f2c60
a608d569a56bc4eb7546e897b4048db3fab66f20
1356 F20101208_AAALCE kent_d_Page_097.txt
e391a315b7f11939dd66473b06cae84b
70cdb1313351bad05279f99bf7b6b0254922bee8
111896 F20101208_AAALBQ kent_d_Page_034.jp2
5d9fa0416a6854ed366c0b9aeddeb777
472e1ecfb79c31b3d0c2ba000439642ee50cfc3f
115049 F20101208_AAALZM kent_d_Page_075.jp2
da999242bccb9618e50a92d69c26e5f1
77ffe7fc0f2397f2e09aa7b72dea3a872158491b
F20101208_AAAMFH kent_d_Page_149.tif
c2cdb73acd7ca6b0788cca202ec44cc8
a2c4498cdf24847f75986520d1ae21762b674592
F20101208_AAAMET kent_d_Page_128.tif
212604bff4a7595008e842a59268a506
28ed75747e228b1aba3be4825df9c3c01f9e578c
204215 F20101208_AAALYZ kent_d_Page_050.jp2
2b42fc53634a7df5bc75a75fbad71c45
3acb527c370d3e756e041b62ec9275412cf5e27b
1943 F20101208_AAALCF kent_d_Page_070.txt
60ccf19758374952d349dfbc8e0547ce
3fa10226684721c2af2d7f69762e9a01f78aba2e
631 F20101208_AAALBR kent_d_Page_101.txt
fff4407507fa60343869cf5ada0dfcb6
2cf2fdaf536564341ecb21718cc26c5701fb7115
515323 F20101208_AAALZN kent_d_Page_079.jp2
7d731e154230ee772517e7c117059757
58b9f8997bfb31f1114deaf1e6580f79825e3886
F20101208_AAAMFI kent_d_Page_151.tif
3edb7fcd36e39c247f9401c5bb1d84ff
2ebfc5061069416974637b2794eab32e3a4961c2
F20101208_AAAMEU kent_d_Page_131.tif
738285aa740545c1b81f7757982f279b
38394574b23030403e09266c7590540de247e494
43110 F20101208_AAALCG kent_d_Page_143.pro
d1fd702bea8c9ff18705543d134c4c34
25920391082c0ee63750e195efb67574ec7f75e0
1001 F20101208_AAALBS kent_d_Page_142.txt
42ebb136576544b65f5f7ba503bf0948
81de8d989ebf18806bac02a509217869e5b556dd
792295 F20101208_AAALZO kent_d_Page_080.jp2
6d54c1c7b0c61a3ca7d6a69ee87aa1ac
c32ef4c9ae4f127849818a2ec72949a4b4096d2a
F20101208_AAAMFJ kent_d_Page_152.tif
2ed15e5a631d3695b8217f0d8d8184be
c15b00db7b64dce3bbe887cff784c8b82761d96c
F20101208_AAAMEV kent_d_Page_132.tif
de0e87cde4363024ef4eb57375fb2255
619ec512604c08d237ae654730f6b5fb77132365
25256 F20101208_AAALCH kent_d_Page_057.QC.jpg
013b1d0810deb295c318c43194017ea1
b0f5ec5e197c12b1862bc1d99bf1e8286b492bcd
11340 F20101208_AAALBT kent_d_Page_098.pro
3eeed5648a4a74722ec7d70573bf5d0f
488e0591b9c59d35b05c706d9a79347ff1dc568a
90377 F20101208_AAALZP kent_d_Page_082.jp2
5db0bb697c16d32206316f0f774aa6bd
c62c5b31ca59be16e62cd8f8e085fede4e2e5e27
F20101208_AAAMFK kent_d_Page_153.tif
56a90ed29b76f881be984f7863b5bcff
e35374b5cd822159cbe70d0da1f2e075e0aab489
F20101208_AAAMEW kent_d_Page_133.tif
323ad9126d2e4f297a85b644593679d2
64953fe57463c93ed77b953d579134d44ac9a1de
68919 F20101208_AAALCI kent_d_Page_171.jpg
e634b7e17b292a7bb809de0706c59419
e0fce56f545463cc4d5bae48bf4783982c8e4a5b
106216 F20101208_AAALBU kent_d_Page_070.jp2
b5fa08a3409e7d5b8200e08159314f83
8e7dc9e94dbafbe6934fc4e97cad2a4e2f2ad212
75394 F20101208_AAALZQ kent_d_Page_084.jp2
ce020a24c87c5df22bc7dd6c3a7aef5b
88548100b76f9bfb0f772f4400e53d21eb3cd54b
F20101208_AAAMGA kent_d_Page_180.tif
329935f1daf2e7b5682c02f49d8f4e67
11cb1975a1cb15afe5a3fdcb490bc5b31150ed71
F20101208_AAAMFL kent_d_Page_159.tif
a18ee8782343f0c94d2f45e63243894f
4f7ccc4252729a6de8f9922d74bab742a3629a12
F20101208_AAAMEX kent_d_Page_134.tif
6f3dc9de3c7ddc4d8ab1595e574c97a2
649f7c8fa73b6111da5b489ff57c4c9ff37aef68
220751 F20101208_AAALCJ kent_d_Page_093.jp2
b79524e04a1171e58c7f2bf48a7b9f1e
1d057943963cb0fa5373a9739d944788a3b1e18a
56011 F20101208_AAALBV kent_d_Page_141.jp2
9133a430009df7562db08aa52115229e
78a0e0ea51460535f219aaf58e9fa2d2305a8384
79760 F20101208_AAALZR kent_d_Page_086.jp2
7e1b49ddac8b8654ab5bfbfcb71289ca
94ce4180f0ba505fe3b45b4fad7e5e60a185444c
F20101208_AAAMGB kent_d_Page_182.tif
66dea376ef474f8027ba418e9b34bd6f
9cfc7ff041fa166c2fd0c8bad82ee7d6c9a920a3
F20101208_AAAMFM kent_d_Page_160.tif
2938d4f91bb50f69216f7bd9fe548ee4
cd47ff5167fae49d1ee10016eb1a33ffa130b2de
F20101208_AAAMEY kent_d_Page_136.tif
b287f4b6a2f9ab98e3ffa2dfd069b0db
655527d1196a32970b056737804a3825966d7319
25051 F20101208_AAALCK kent_d_Page_122.QC.jpg
05ccc714b4e1f3f66d560b28d76d5a5f
95da9466c8abf095d3416a28b3495057404a4c38
666602 F20101208_AAALBW kent_d_Page_110.jp2
b68a97259b3fb570145c1a392b263e8c
7ccd17d6f0d5f522361182d1c0c70ae40e580560
54182 F20101208_AAALZS kent_d_Page_087.jp2
4cad0c003937ae905b785abb91ce594d
d1bef84bcf05a5ea174a02b0b6c23e34a0e8ff9e
F20101208_AAAMGC kent_d_Page_185.tif
0633f1646eb162bf5292548ca66ad569
ea8e1c5727ed8b4df89aa9958736672ac362e544
F20101208_AAAMFN kent_d_Page_161.tif
18f2645a95c3e081b0a90ab193570f04
09a2fea02e1516d6a7558e2400e3fe4195153ee9
F20101208_AAAMEZ kent_d_Page_137.tif
4a27cfbc70daa4b9adb49b917a155926
cdeb8270f8372a08273a8d134d3b8c08be005e0e
22990 F20101208_AAALCL kent_d_Page_069.QC.jpg
7380215c81dcf0c4fdfa45d6bebb3bbd
942029d12b27d9701743066eb7c23047a249ac47
75416 F20101208_AAALBX kent_d_Page_163.jpg
14279a0ba33891b809a5ba5ff793b4e0
1ddfc71e895759f1ec351e51c95f3b2f95d57e57
126392 F20101208_AAALZT kent_d_Page_088.jp2
189900759df127c55baa4ed1c7aa31df
40c3d45aadc5c30f0ee1f27b5577469774d5ec9f
23828 F20101208_AAALDA kent_d_Page_020.QC.jpg
e207249b6b1b68fd18cad879589ecf0e
3afb16a6cba32ed256f3e669642e31275f05eea1
F20101208_AAAMGD kent_d_Page_187.tif
6be7086bbe7a57448bebd23c2b6e2d30
2c09ada7793ef5e56e857ac944ea231a0c6cb3e9
F20101208_AAAMFO kent_d_Page_162.tif
4aa2651f1f5788df4f268b324137a290
fdcf3c48c17f6b89c9cb79c9e13c59a961d91e37
F20101208_AAALCM kent_d_Page_157.tif
16a0c8f60d5f704707ee8b19384d42a1
8ee21c7fb4b7e796fa815da987745a79521461ec
2174 F20101208_AAALBY kent_d_Page_169.txt
b571e8d36e172c6e93a68931a1069318
a6c8b931fae07c37bb5326e53ef64ff1e8adbd57
341959 F20101208_AAALZU kent_d_Page_089.jp2
c98531088bee87572e0551c2c5963d8e
0c8bb8e7113a92d498c48898ab347cd192717749
6558 F20101208_AAALDB kent_d_Page_066thm.jpg
282cec014d47aa682ba9c2b7a651d72b
04a7babe615b99a87f5f0f42f9c7c34dfb8cb572
F20101208_AAAMGE kent_d_Page_188.tif
f72d9b358c7d82a60b6e9d429172d84b
54007193557917aa0334c64f904de89c8d60e23c
F20101208_AAAMFP kent_d_Page_163.tif
30bd6c974ee2518bcb6f6f79b136bda5
8d77d241faa654c5790ebdc1ac1c64df53966308
1405 F20101208_AAALCN kent_d_Page_008.txt
42d6f3300276019336afdb73ca781bfe
22bfa7989d6de8adebdf27e6080a3c8359fa9c38
474 F20101208_AAALBZ kent_d_Page_088.txt
f8cf7d03ec23ffa7c1c1750490b4d85a
f9a4f595fc434ed09e88a57d830234aff1bd1e39
364536 F20101208_AAALZV kent_d_Page_094.jp2
4d3e01b67e33b62b8c96682b3890f772
8a8381d6ca0e0e7200024502d4ae7f0bf66d09ce
71566 F20101208_AAALDC kent_d_Page_046.jp2
a091a3ea83e860a908b0a470e61bdcc6
8cc644dacbe40bd91ffc41336304a7997ffaa9bb
F20101208_AAAMGF kent_d_Page_190.tif
0d861d5e506d5dc12388d9037d142a77
5689d266195502e81d0cddc5fdd69b76362b58c0
F20101208_AAAMFQ kent_d_Page_165.tif
5468f7c3fd97e2013acc5f53d17e6048
6659fbdc5188751243cd1cdd6ffca3d6a3096f7d
536 F20101208_AAALCO kent_d_Page_091.txt
15a6cc1b90019b046dc1d5b8b0f38958
bf59ee8e7378671218e43875dab88d1d448edb88
487684 F20101208_AAALZW kent_d_Page_096.jp2
4e5ddece7a7402776add9d4292641d75
c973f44abb13d84bbe0c90f3efd059475334087a
24486 F20101208_AAALDD kent_d_Page_027.QC.jpg
18e1e6272144003bd362f4a4c0e7820f
660aad88d1d332019468eddc129961c89816d3fc
4724 F20101208_AAAMGG kent_d_Page_003.pro
dde29f4cc58429bf300fa68ecf3146c2
74eaa0f83af0b3e4200cdee4a9f194e20dc2b04d
F20101208_AAAMFR kent_d_Page_166.tif
6d80d2f0281ff2b2cd25c049aa446187
29aa55f57d0d64f4a2b40856d64be5095d4c1c8c
1124 F20101208_AAALCP kent_d_Page_135.txt
8e6ad6a94eaf3ff1deade82e6af77a19
a7fb577c74798cf311db29c1522253e541719484
564733 F20101208_AAALZX kent_d_Page_101.jp2
ce98f5bb25a52a80cdd14f2c4df93a8e
190e9a4df72a29e3c783e04f5470711063d5edfa
7336 F20101208_AAALDE kent_d_Page_099.QC.jpg
7ee6981934ef7fe5018fb18740f03d52
4b8444fd26084a7f9163a739b8fce336933829e4
F20101208_AAAMFS kent_d_Page_168.tif
1076a4542935bf197a8909aa5faf3672
c1d97aa979d8928745c1efe1e477f9f905d0d2bb
1604 F20101208_AAALCQ kent_d_Page_123.txt
23978148704f35b0f2c2055cb88b16a7
65863ef3a3f3493dfdb5abed7aac03639b56e6f0
534854 F20101208_AAALZY kent_d_Page_102.jp2
c8b05b2f0aaf126bc4d55824c23b0fc6
d847e476788388e4e1ffb810bc67f22c6ea6d9e2
52407 F20101208_AAAMGH kent_d_Page_004.pro
20ead0c7bf9e6da977f4724a0b56ddcd
85739087f396cead600506d60d8f2ec29908ad69
F20101208_AAAMFT kent_d_Page_169.tif
06dde32c27a8b26454233396dddbadd6
f31c1deaa4b57972ad797373a61c42ea1420ba11
55199 F20101208_AAALCR kent_d_Page_056.pro
27c4c355fd39ce67989a26b5ca680e49
a1a7dcf190bd8cd9627b445905433c2dbda6da85
593190 F20101208_AAALZZ kent_d_Page_103.jp2
a10d979b5569feea7f225fb3fdaa79c7
e268457533ae7b45b6055b2ac6553f60be74383c
45040 F20101208_AAALDF kent_d_Page_139.jpg
e7545de64f9a79c15fb3a601fdc76f9e
b4968b3461b5598279936b0b103d17f62983ceb0
104077 F20101208_AAAMGI kent_d_Page_007.pro
4b5eab3d0494ac980190a705c3735283
f51183d04352e05ec28659204e83119f73183e56
F20101208_AAAMFU kent_d_Page_170.tif
da4ab8522a2b8ad51fedfe806562b6fd
2945dae93cfab12cb9dd4a18a62e8b6d2aa20fea
22379 F20101208_AAALCS kent_d_Page_050.jpg
28b278d8c64f979abd865c80f9f878b9
9cb0aab76bbf78082c080c3fcc93a792fcd8c9a9
21611 F20101208_AAALDG kent_d_Page_018.pro
d5f7f15c9582f98228ed356bd7ff5217
6da54e1c4d78f193647a590ca46eacfd15061b7b
31545 F20101208_AAAMGJ kent_d_Page_008.pro
d6b301fd7a0c072c66848e03bd2e3870
0ee160289b6a74af36901f7a037b7a9c57f12f97
F20101208_AAAMFV kent_d_Page_172.tif
cca817a77dea89622ac6c04369357e54
2ee78111aa46b6e39a1a3e3e335a4692d9083656
5302 F20101208_AAALCT kent_d_Page_111.pro
8061a47ee8d42f92db002922ac78210f
f12083eea0e7e2b7bfdb6bf5dc3deba508427eef
1796 F20101208_AAALDH kent_d_Page_003thm.jpg
d67862df6fda11863b73d5dee19bdb59
27097c2d8b9088e00f8b3015d3913687aa86f623
68569 F20101208_AAAMGK kent_d_Page_009.pro
8ce63fcd65440e1bb5b720ea2a24e722
f8a01193341c6795346b3285928ccb3abd16b8cb
F20101208_AAAMFW kent_d_Page_173.tif
e64fad6884dad1812e48677f52f57921
5a47d439663210cc92bd3205d9070645f0e9543d
2842 F20101208_AAALCU kent_d_Page_014thm.jpg
64cba945d61926c186e31d528e34ad55
eb5790e295082ef4386d5256be4b1cce7480ad3f
50490 F20101208_AAALDI kent_d_Page_132.jp2
74e8d0f0b0a0884a4aabbfc169ea505d
45fb6f047436837d4bbed0847d981f08a5cbbc66
19051 F20101208_AAAMHA kent_d_Page_033.pro
92fcb9b9ca01373b1f172ddd46b0d7b3
3282f3272fda20d0b5456308815387bb17858078
36276 F20101208_AAAMGL kent_d_Page_010.pro
f1c271637cbb0f74e02ddbb9361515ff
523d6b0722ee458859989820f94904d7ac9b9f16
F20101208_AAAMFX kent_d_Page_174.tif
2b3224f17b8fafd427e749e7ade353b4
97ed17ec8d94a5beafceb5474ccadd4cc2349d1f
67201 F20101208_AAALCV kent_d_Page_044.jpg
7f7e76320c7c8f35d1631bab395b637c
a9b46ae2249ab3e6856d671671246153e66ded5f
1106 F20101208_AAALDJ kent_d_Page_191.txt
4df3d4a31e437d9887384971e9af0856
e7abcd02804906f476d1beb25604ae20d2b707ff
51816 F20101208_AAAMHB kent_d_Page_034.pro
4140d2b56d437601db036d0ae10ba41d
acf49522f87d57208b7fc15679af4e96fcd3a8a2
69777 F20101208_AAAMGM kent_d_Page_011.pro
019d59673e945ea4e1ec3e5f56ce20ac
526f9ea009b99c8862fda02596b956b07458beb8
F20101208_AAAMFY kent_d_Page_175.tif
758e46e17acb88336ca9eb644ea977ef
d33bfceb60fc6de92cd1b72a1a6e4c952a4d32b4
36311 F20101208_AAALCW kent_d_Page_038.pro
820a637c3a9377317adf3f0a6ac59e80
f3467d2a4a641cb08f2619ff801f02151eb01535
74889 F20101208_AAALDK kent_d_Page_085.jp2
99edcac850c5b8e51eab91d4319dfe21
753400425f3569d57741a4992ddf801fd9bc2941
50419 F20101208_AAAMHC kent_d_Page_035.pro
1250900d8ffe0193b149700a3d76fcab
ce6d90889c3c31988222f613e3632fc29e3e60f1
80521 F20101208_AAAMGN kent_d_Page_012.pro
b811f2ef7754d7468b4aa513dc37ddf8
a2939fbfc2778d62d65e86a7617fab54e6a94e19
F20101208_AAAMFZ kent_d_Page_179.tif
7b4d7bce569d4f6e921cd26a0b35be3f
283cf6f15a65403c689344d81af73a27f9073235
1051979 F20101208_AAALCX kent_d_Page_163.jp2
461f8967d0b034695fcacac9cdbaf007
a426a4ea4b489cd2db214ffea7069f8aeb21108a
F20101208_AAALEA kent_d_Page_165.jp2
baa819c9039abbb0c31ce5bec7353126
eb2e9a5eb42d708779f5064b838429141cc8da89
47702 F20101208_AAALDL kent_d_Page_029.pro
dcefab57bef67df20fb60efc56396daf
e61c43edca6b6aebf932bc3140ba1343fb4a742e
49286 F20101208_AAAMHD kent_d_Page_037.pro
528dfb1b9056d705088bd7b9379b0537
d53bcc35f583ac5178cfb35f40a3f8def01fef47
15455 F20101208_AAAMGO kent_d_Page_014.pro
d0cf6ef47590b538bfeba32b53245fef
e15244144404d6bc8cb40c9f5ba3bed0e2b2821c
F20101208_AAALCY kent_d_Page_009.tif
87ac1d5064d9aba728c2aaaf24d33893
676805ce2c4ac6b977b3dbdde4a10b892a6d4879
950291 F20101208_AAALEB kent_d_Page_115.jp2
62fd0e77fb5630c5d520c77d50e42f34
27a2de5a8c406a09eb335f83d17cd9410d2b4b09
885 F20101208_AAALDM kent_d_Page_002.pro
be3145d89a07999e271a955728568c3f
db120c0416c60b6454fc927b6b680ae9337d47c2
32859 F20101208_AAAMHE kent_d_Page_041.pro
821f6082a7d86e3a4829bed06bd41fa1
6c223d70e5154a909671482a36d3d6056888884d
51132 F20101208_AAAMGP kent_d_Page_015.pro
f13426f167d9f980c1768c12cf0e986c
9895ee7c7c858bab07f6aa18f74aeae7d5677742
F20101208_AAALCZ kent_d_Page_090.tif
550641d1c634b71ad1fe79a00f28f98a
45bf9813d630dc332db52e48d8009808b0a500bb
5200 F20101208_AAALEC kent_d_Page_148thm.jpg
d7fbe038ed39963812505a888d1f5393
0c4bfd22ce053eb267ff008bd6a3f3728084cd6b
551 F20101208_AAALDN kent_d_Page_105.txt
240f5a31b5c31457eee09cf5e3180a81
809bc3224d47b6bb08f8339d8ea096099bfd7143
43838 F20101208_AAAMHF kent_d_Page_043.pro
43158974efa9a430d831918649e61a86
fd8794eab6bc553ebfedef69d973cf8f414abc56
56075 F20101208_AAAMGQ kent_d_Page_016.pro
102b769763e1311c64862061ddd589b2
df8f0acd2e2baa7244109e970008da8d032e9a86
F20101208_AAALED kent_d_Page_115.tif
228531082da76f92cbf128d7d5ec8cb8
e118aca760914ff3b3694435c75eac119acec282
F20101208_AAALDO kent_d_Page_015.tif
073ec0d60f34365d272b6efc1416ec34
d911d3adcffb33a81ffcb312532462b9fd4147c0
46519 F20101208_AAAMHG kent_d_Page_044.pro
9588189cf6b8099e08627b8286b3d1b0
9993eb5812bf7e4eb9b55ba1e0c7990f58ad506a
2209 F20101208_AAAMGR kent_d_Page_019.pro
c2f4565a7f2b95243627d065030e0403
8f607891490457dac83f8fdc8987683aaef989c0
8097 F20101208_AAALEE kent_d_Page_001.pro
c68c372e3fb3bc9881e777a938b91841
6efda5eb7401ffba742799f89b50bd0be0bc26fd
78609 F20101208_AAALDP kent_d_Page_052.jpg
43963233149768801596e681e1cd125f
94d30396f61c5ed8f191ebfdbde2723fdd3a69fe
34058 F20101208_AAAMHH kent_d_Page_046.pro
b7a3eb057b22ec94d81e822a4a777ed1
52b2b7562b88e4e97a50821a16df8d6f663368d8
50505 F20101208_AAAMGS kent_d_Page_020.pro
3b7f74425636c29315965127c5f3dc9d
b883f6757a1ce17cd56953f79d56db0a12a3e30b
94341 F20101208_AAALEF kent_d_Page_007.jpg
0ed7e0559ed74e96078cdb4f3a0b6432
3b22d25fc4a344d736c7cd8ec180795b14f0aba4
23872 F20101208_AAALDQ kent_d_Page_060.QC.jpg
d7c6372251574f2694603ce848dcf91d
03642cfe99b5908c3d025962af48c333e3ec246b
55257 F20101208_AAAMGT kent_d_Page_021.pro
d379758823b939fc904db7121a6a54cd
1603b1523ee574b0cbb0ec4928ce89882ebe4786
77538 F20101208_AAALDR kent_d_Page_083.jp2
aedbcb896f1470eef9ed75c4287b67c5
539f314980a2edc3278ee3b15206ff838c30e044
40662 F20101208_AAAMHI kent_d_Page_047.pro
bb67507651972cac5ed1cfe74826fecf
2e123eaf2d29d4cee88eec0112d00c94117ed49a
53497 F20101208_AAAMGU kent_d_Page_022.pro
b093345a0319caf581c9db1cff787226
83666b454a01ece22a815af53329b850ee45a5d1
16441 F20101208_AAALEG kent_d_Page_091.jpg
b69559c2e8c92d54c63804dc8ea83812
135d84f4fcf9c56b5998d85fe7eaee33583d4ab4
104325 F20101208_AAAKZA kent_d_Page_055.jp2
109fad79e789316ffce76b48e80957b4
3e0540e8c87db5b2ceb3c0c30c6901b31757c2cb
75713 F20101208_AAALDS kent_d_Page_053.jpg
8c7d229edf876dd631a8110a529eb560
83b6656bb4850058e84a9d8b60ebe4a17d3f652b
34649 F20101208_AAAMHJ kent_d_Page_048.pro
2ead9f058bddaee83473653c963bb894
9a71f18d746ecd1d0dd06eb2d376bb3df9ba4224
52322 F20101208_AAAMGV kent_d_Page_023.pro
a287cdfd6d4f78d3d5abfd00c98b4df5
f9adf59178c71aec0d5145f92e2a306bb3ca7fbb
1048 F20101208_AAAKYN kent_d_Page_130.txt
be34b17d8c842c135cb9e6d3406cc25d
d1f78862ed752804f9410f6aadcf7b66f9482978
4942 F20101208_AAALEH kent_d_Page_048thm.jpg
2361e2bed14907bb3746ffc810c0872e
0b860f311c3ceb9b99b8c279346724d17807199d
F20101208_AAAKZB kent_d_Page_110.tif
cdc2b5a461a155746973bad5368afcf6
b807f797edd7b27397b5bf80cc200d1477e840fe
438 F20101208_AAALDT kent_d_Page_113.txt
8266f5cbca8de41240f01a694ad53eff
89294ed570c3de134d3f0e003cf8ba43ebb7cf0d
10410 F20101208_AAAMHK kent_d_Page_049.pro
b76ef5e113e421496697f905bfe94a93
c89f6ecc7f5093b92fa71478b576835809cc6e1d
52603 F20101208_AAAMGW kent_d_Page_024.pro
4443752472708a43607c97dddf86c509
daeec3e2b5f075134b8a756d08b749e958d8c789
F20101208_AAAKYO kent_d_Page_176.tif
98293eb44dd857f8b0fb546517ff64d9
c1c5f727835465e4596a9f8320157ca175557a8f
594803 F20101208_AAALEI kent_d_Page_107.jp2
5559039fc65477b6df2fd3d7250bfb1b
db21984dfce3f57f9d09bae400b368b026328dd8
16500 F20101208_AAAKZC kent_d_Page_065.QC.jpg
053dadb3a21551fe2ae2baa833095be9
4dfd521dd9104107ae80b588cb0584f9d8336d1e
916 F20101208_AAALDU kent_d_Page_134.txt
b44a5d60ebb3fdff8f894ae4bbc19922
1935885842552594dfd44f541ad2295ced6c8418
50203 F20101208_AAAMIA kent_d_Page_072.pro
ddbbfb263785e072646e60c9e255cde0
53ba6848f03b55e8d71033ab6b2103a5a02c9d7b
6694 F20101208_AAAMHL kent_d_Page_050.pro
012b2284961b05bd09b6295d190a6060
90193f81c3a1adebf15ea7063c9864d73c08b35d
52216 F20101208_AAAMGX kent_d_Page_025.pro
dffd26028dfb3dc411898dd6d8d46e18
41a7e9aaa421481c4dcba0886e1cb9f0016adcfc
4233 F20101208_AAAKYP kent_d_Page_180thm.jpg
2b630ace17a12cafed6213e9175fbb93
3240686a057fa858e1665a78731e4959096cdd50
11101 F20101208_AAALEJ kent_d_Page_101.pro
2bfbf2099f5946b350eadc60fd960d7f
32959569ed921e771a2020c840575b2871cf9208
7359 F20101208_AAAKZD kent_d_Page_118.QC.jpg
b2e54c24c566e9a300aca22a77674653
51f80b101af3f314d3af83f4c7be9f8c11fde8b2
17627 F20101208_AAALDV kent_d_Page_165.QC.jpg
a19efc9a25e1df6562bf225a3c387917
780948c2cbf1358b83aff81284f8e919037a169a
49390 F20101208_AAAMIB kent_d_Page_073.pro
06a5485d45a25b5631eb49a9ed5acfdf
89de6a4f91215b6764c37ff42c9f1ffc1eaadc58
52232 F20101208_AAAMHM kent_d_Page_051.pro
0dd8031bfcf65371277e5ba4b10d7946
ce9abed17b13bd75579d2a6248ca6be26e5ec287
51160 F20101208_AAAMGY kent_d_Page_027.pro
993170f88400505b8f29925a6612eae2
c440eed4d2579ba2678b74c56f65c84bf7899820
2808 F20101208_AAAKYQ kent_d_Page_095thm.jpg
3ae4a1a1acd74cb44eadf94ca0b2a311
10f95b7c4def8cfdac2d9cd45b0dbac798884e39
549077 F20101208_AAALEK kent_d_Page_099.jp2
5626cf126f9439ff44da4baae1146fed
2ea466270de5a8c402432e143df882f1eb3d845f
114058 F20101208_AAAKZE kent_d_Page_122.jp2
b896085cfef8174bb6a52f2988e10ee8
fb84d5b27c22329f0edfc493c643a684250c3d34
10852 F20101208_AAALDW kent_d_Page_184.jp2
76559f1d17572ac1dfc61200e4c74674
040702691a030e41d3aa98e6b47a69f6d65e456a
53253 F20101208_AAAMIC kent_d_Page_074.pro
d71c61d0162999c06743fb4e99779c5e
07ca9e85f357082e035252f65633fa951ef5d8c9
54990 F20101208_AAAMHN kent_d_Page_052.pro
af805e88f6920fa4f0719ca3b3826492
8eba3e969e26d4b5a574b37f76e7af68a39a2602
16900 F20101208_AAAMGZ kent_d_Page_031.pro
a3b942e609aaaa25d1bf0a07f5badac5
9500d828f46d475e89ad8289f572601b9939ded4
984 F20101208_AAAKYR kent_d_Page_132.txt
00d355085e19dd51f27ab6e0f32f2979
e975be9f833a5dc117339f98c1e0ea4a2662f04f
6891 F20101208_AAALFA kent_d_Page_057thm.jpg
ec706fb94067d4d9a1b50d1cd8243395
7a471e99983568cfdf645163585969460b51b790
16634 F20101208_AAALEL kent_d_Page_089.jpg
e6ab36067c47545c21e34b719e885f32
f03730f0fc0c92b93d0870c36af40bb4613d8406
81749 F20101208_AAAKZF kent_d_Page_038.jp2
38db9eac149804420ca712b503a366d7
c4ec8dbc29c5e7e240ef3b8f2bb41312b7bbb60e
9907 F20101208_AAALDX kent_d_Page_032.pro
28eb9b3a7bffca8022056f2705aea4f3
769523a0e3b2ce188048e9b69c38de0f09348170
42782 F20101208_AAAMID kent_d_Page_082.pro
4dbef6fc73f477530849e5efb7670751
337706461191e41af09f04e47060d0d7dcf00cfc
52108 F20101208_AAAMHO kent_d_Page_053.pro
5a3ec59aa5addbf31a3ea53d5c5e0aeb
247cadacec56ced469fdfc1d14e4f748e8e2d0b2
44391 F20101208_AAAKYS kent_d_Page_040.pro
ae1c8dcf489379a0ddc1ac4fe50515e4
b7ff7be0e30dd002fbbca12bb6061a526ea93a7b
6371 F20101208_AAALFB kent_d_Page_182thm.jpg
5006d9ad74700ba25d3597febd4ea1f9
5c5b9e227987ee55dc5c72af037b2f37f97c3597
37017 F20101208_AAALEM kent_d_Page_083.pro
20834a46188bb504db3c881d04f55553
2ae82eef32cc6f5400460084d9c1d4b6eb11b73d
2612 F20101208_AAAKZG kent_d_Page_098thm.jpg
ada0bfe74dd16f4903ae04e015f0497a
5c250cbd7d9d32fa6aa4235de210427108db1689
F20101208_AAALDY kent_d_Page_083.tif
bde560d20d4b069c36fa6482583bcc7a
0a297c5617361550502c82f0ca13a0b35393c2ad
35037 F20101208_AAAMIE kent_d_Page_084.pro
2bfee6e330a58517d610f29c875764ef
76d7dfaa5ce11be5e41ccada772b5a72c55738db
47798 F20101208_AAAMHP kent_d_Page_055.pro
fb3600fec47fe1cde29a3516ff352f43
1036499bd17aeea963c7dc6016a21a6288d4e981
5898 F20101208_AAAKYT kent_d_Page_149thm.jpg
107bf3e65ac4acb7e1975204ab5f6b38
0bea35c0ca2f88b742d3a901ddfa035d33f33d62
6502 F20101208_AAALFC kent_d_Page_027thm.jpg
73a24fa6b702fae4717a400bce4237ea
61baad42d98086c5fcf2c3f48a149c361f5e68d0
19374 F20101208_AAALEN kent_d_Page_047.QC.jpg
551deaa6aba3a76c1a8fc652aba7056b
bfb52a39662ba214d86c87493a9a6b9239e38424
49360 F20101208_AAAKZH kent_d_Page_138.jpg
d7dce22d39aa885f4ddeb5dbc4e36376
742e62e5609a5638a722ebac73e4407ff58001fd
F20101208_AAALDZ kent_d_Page_095.tif
a7a06485a0ffab4d6b2097e33f2a4b41
1796157bf993815c15154c315c01ed09c89d1b0a
34751 F20101208_AAAMIF kent_d_Page_085.pro
4ae0f3c896a78d5538ea069f1360175f
b8c20fece093e2f5477ec95e112e04c1311b9448
53429 F20101208_AAAMHQ kent_d_Page_057.pro
a3e495d1080e61ff6398ae0f103aec6f
55217c422fb850aee8b908a82094b42bb89c414b
1767 F20101208_AAAKYU kent_d_Page_147.txt
a9bce44c395e779a8a995ddde9c2e3e1
74da351960ca943f705681b9807c9522f3fecda4
2383 F20101208_AAALFD kent_d_Page_189.txt
4d815b1e7d3fcf14ace39aff63a9b06c
c033ffe04dd05048537260b3ab7095253167c1d8
49702 F20101208_AAALEO kent_d_Page_185.pro
846d5ec4d3d92d404ab60afd83c79315
7bcb6bc72c18ae8e439fd58043156e0e911da50e
4791 F20101208_AAAKZI kent_d_Page_084thm.jpg
90cf744b079142db894f802c1578c082
e9fb9908bea437dcbc6b90db3352ce29c24138d8
40135 F20101208_AAAMIG kent_d_Page_086.pro
a9f78f00083ae8ebd1bb950f48bbde2d
67007d5496c2dbd259e06159972224c3310b8cd7
52683 F20101208_AAAMHR kent_d_Page_058.pro
14f50f12d8d20231c47b9f49715122a6
d6b1998d3341c331e3faef55c5552eb369f4bfad
17906 F20101208_AAAKYV kent_d_Page_178.QC.jpg
d2d90f7823aa02ad5b74cd8c2c392a3b
0859767a827b827a51aadfb8fbe6649cb25fff38
53643 F20101208_AAALFE kent_d_Page_122.pro
75582ee70e05a793fe50e95cef997220
68eb187b2727a4223eee2aeb1c35212f67ca4c36
19840 F20101208_AAALEP kent_d_Page_078.QC.jpg
378b83a8e2deb7be053d7c2fc53a797c
2269ff8a592734e7af2c02fce7837ee555851912
14768 F20101208_AAAKZJ kent_d_Page_151.QC.jpg
826e3d360f26a4625708de9593087950
6365c7d8834c589e5311a8c35a263e3ad8bbd3e7
5022 F20101208_AAAMIH kent_d_Page_088.pro
272fe2584034a7976e5174678ce52bd8
a45a312c4ee4ee67f31b41d63094f23ff6a08f18
56076 F20101208_AAAMHS kent_d_Page_059.pro
68ab55e93b79c59b39d23e4b9fa1d4d0
b518bdbe047f9789e0cd1b2a944e98920518c6b0
1858 F20101208_AAAKYW kent_d_Page_064.txt
3f82abac1e0468792524f9605539ced3
375d875cd5c0a6ecb0666e02fd4cd22461d4106f
66000 F20101208_AAALFF kent_d_Page_162.jpg
51fbd25831d631e4b3996489e8211dba
0a55fc41f1fd1b9b47b5477b295702345ed91df5
59464 F20101208_AAALEQ kent_d_Page_146.jp2
e1981fac10d6e634b8cfaf840d642669
791433fd2698eb6c6bed07bdb0471ce5fa1dbc41
690 F20101208_AAAKZK kent_d_Page_092.txt
928b6d81cb5d0219a48df7069c9bae57
2f952b1a146886c1fea5648dd6f27901f5448b50
5962 F20101208_AAAMII kent_d_Page_089.pro
5291e3bb4af0165eb47c3dd489ab0d52
a1677c13122a1878c99057ccde3bf26fd76767a3
54171 F20101208_AAAMHT kent_d_Page_060.pro
17aa8e54b1062bd5d1ecf0b0b43450a9
9aa54c86465ca4edaa46a5a407c90011830c3ff6
43923 F20101208_AAAKYX kent_d_Page_130.jpg
4ac7487f17a61f28674042415a43bd91
1b245c30b9d3b4aa8f1fa5cb2016d9bfa601afa9
F20101208_AAALFG kent_d_Page_010.tif
6c09b3f2ce5924a548a50de07451febc
92dec9468268e1dec1e5fc84062cde8d7d53c327
17594 F20101208_AAALER kent_d_Page_153.QC.jpg
8e7dd7890409633b4bcd114886d8451d
381ea081ae0bc1f49e9da7d31887e2a24b7dc033
2062 F20101208_AAAKZL kent_d_Page_017.txt
58cd58e6518677b8858003e250955909
1480c8008ade69a5a858ce6c18d59dce3be94b03
58734 F20101208_AAAMHU kent_d_Page_062.pro
3c975e6a3e59027da9038e9185e28632
c9a4f7faa4c8337bfa4d8ce833719d38a8143103
57815 F20101208_AAAKYY kent_d_Page_030.pro
c7aec5d9a1695a3fb84f55e745595a2e
8e586a39ecc9e5183b4b8dde7c6330c5ef24c60a
404 F20101208_AAALES kent_d_Page_186.txt
089aec2286bdfbad5d1a416e1dbf32ef
a70d185c9ebcf5f343110d26e0281118e4051bd1
50209 F20101208_AAAKZM kent_d_Page_041.jpg
d66baf34f4f9388fd90cc837c6e316a4
2ad3bb90ab1899785501cd7b7a1de329fd015296
7831 F20101208_AAAMIJ kent_d_Page_091.pro
5bbe68324c578286a779d41c47b9787e
3a90dafa159499b330490ac5f8296bd3acd30886
29961 F20101208_AAAMHV kent_d_Page_065.pro
56b151dbeafa792b516368a980c16665
2fa8dc9574a3dd91df145ffdf53b0367a831216a
F20101208_AAAKYZ kent_d_Page_140.txt
25e738091056b9b5b2afaebdcb29f1cc
40cb1f6d3c07abcac37f094d96548aa2e1ad685d
F20101208_AAALFH kent_d_Page_150.tif
5c57f26a217d3642298543675e090b09
b8051bd4ba9d0f38abf553622c9a5e4d3a489fd9
1467 F20101208_AAALET kent_d_Page_180.txt
4d0e927b94f029d1f90c281724eff121
b7e02d43c034799f8576b5b86a9f9b88376fb0e4
23789 F20101208_AAAKZN kent_d_Page_005.jpg
ea4bdb022fbcc2a735fe62ab96b1b7a5
6906ac4589c3add3137148dd15ec1217107432e3
8791 F20101208_AAAMIK kent_d_Page_092.pro
1c7a0bd6f5ed3a6ba76e64a44395358d
95fc6140a3a207b4d7006b62a3222b5f8ae88a26
51002 F20101208_AAAMHW kent_d_Page_066.pro
67cb9ce1936320cf9bfbe96f5bbf0592
d6b3535e53e424909032f95ce3dc55875ef547a1
F20101208_AAALFI kent_d_Page_078.tif
825b517876a13059eefcfb3a81307e67
ff58c646baf78411d9f613fd2b0df5df7c4cb6b2
22536 F20101208_AAALEU kent_d_Page_009.QC.jpg
1d5c0a3c58813a4a96889ac94e1e085e
042ddb3a2a8cd5946c10db290f3b6459a05ff6ff
F20101208_AAAKZO kent_d_Page_054.tif
671449ea365f2cca617a9956c12bd43c
c1e942bff57fe8c55be336fa37296ac9155aeca3
50749 F20101208_AAAMJA kent_d_Page_120.pro
72d57a609acd4fce3af83db4c6989cd3
89f86adab4384aa35c8248a8a36aa6d4751ed400
14343 F20101208_AAAMIL kent_d_Page_094.pro
eaf1485deed0ae82d9d0733bf2a0c1db
8e41fc913d9cf69b90a5446ae84399ef72c06fd3
5946 F20101208_AAAMHX kent_d_Page_068.pro
bdae310cc779286d4d2a826a1bac10d4
b510f58621968242157ce506c27370aabe3e9c43
116261 F20101208_AAALFJ kent_d_Page_056.jp2
a4bfc3df342af47b28eddfc82577b585
95580a72337b29eef9cc80188be8a58697791ae2
19911 F20101208_AAALEV kent_d_Page_100.jpg
9b5a708ef5ef667674ab192edd282cec
14baf14bd18eb080966605b4745f18c4f3497b8d
F20101208_AAAKZP kent_d_Page_183.tif
2b4564683fb1da1daad01ab5c315d202
156474a95dbc480222021e9ca9865a253f99e870
54093 F20101208_AAAMJB kent_d_Page_121.pro
6cefe81c9ee42956cbe49c11a5b3f1f5
671206e94a8d211a30026b11cd4d9528b2805249
9134 F20101208_AAAMIM kent_d_Page_096.pro
ef67281acbf50efed88ed50b642de133
3df23e472fa7b354519b38fe6489566b9f58e991
47994 F20101208_AAAMHY kent_d_Page_069.pro
618d63e406da7d59ee941b18c75efe0d
707f89aa7755004711825275fc0d656d416cb371
15219 F20101208_AAALFK kent_d_Page_190.pro
742406b68e53991ff662917c4f52a189
f68903fd142ca129ee5bff0dd187d15e71b574a6
48998 F20101208_AAALEW kent_d_Page_045.pro
731b1e4ebd44acb2b49079bf7c6d753e
0c583146b43d9ad4e65fa1d83a205ebc890de369
53613 F20101208_AAAKZQ kent_d_Page_077.pro
38f4f2dc13a5fbcfdf227c4cf4399c98
868a46ca57e02b2cac05b3c6ce1915c2ab1d76b0
48863 F20101208_AAAMJC kent_d_Page_124.pro
05b974dc961397e5ece7ba528ea50ef0
f3dd20cee19c9573724fef7009003319a405eda4
16543 F20101208_AAAMIN kent_d_Page_097.pro
ff5ee7664fa9fb713ab25d51c0035da9
d80b540ac6b3e6f394d95488482367b08871fbd6
49087 F20101208_AAAMHZ kent_d_Page_070.pro
5bb42a409dc4307ca16502e46d6ae6b9
c629835e4523add3c561ec6de12a3f0acca16330
20429 F20101208_AAALFL kent_d_Page_079.pro
10a3177539561271e8c96042130406f8
fcc0e3c44b64d4b3094a46ac7ab1bd5586c4f6d0
6621 F20101208_AAALEX kent_d_Page_096.QC.jpg
963d1d7996c08b6bf4eb2f7ce0112b84
107c902da1be8294899e94dcd7c088ee71836927
F20101208_AAAKZR kent_d_Page_036.tif
8f94809090539c835dbf8f6964034824
a6c78dd6f2e7d9f6aa0e652301e0b06b879d9f6f
23046 F20101208_AAALGA kent_d_Page_076.QC.jpg
3be46c4108d89a7d9af02f7f5fa99e36
cea596f2f57c9da3e2323da29f9f534a430d4987
53450 F20101208_AAAMJD kent_d_Page_126.pro
8bf5df760ce243965c6ef2928091f43c
06df5f94bb05373c10571bc500b67cd04b8ca018
7731 F20101208_AAAMIO kent_d_Page_099.pro
92289e9055cb83eb41c03b18efa88b43
7050e27fddfdcfb09b1bb07f938febea0bbbaceb
51174 F20101208_AAALFM kent_d_Page_061.pro
5dafca031d1a37d49d28ca4427c718fe
d49c570bc232ab3cb4ff50b0e84bc921ccfd9f91
4613 F20101208_AAALEY kent_d_Page_144thm.jpg
bd47937153f7b1b4c0705fcf2c2b989d
51da67bcca8d0ac065f8b7aff9b272512b185e80
14833 F20101208_AAAKZS kent_d_Page_191.QC.jpg
06947524d9598e208ef64d9f6b8f6067
5023c5f2b4640a81ef7659b67019a8d9e4d51618
3689 F20101208_AAALGB kent_d_Page_079thm.jpg
2efdeb790b3d2ad50d6250c59d27db16
ac2a83abde4b75f923c4f8efcdb07c71358caa0f
49210 F20101208_AAAMJE kent_d_Page_127.pro
f9dc886509a280106137bf39ad325014
38def0c788523d36b88166483234b87418eed643
6360 F20101208_AAAMIP kent_d_Page_102.pro
15cafe3853f111a40496fad33b01fad0
119f5247c604e6c76a298caa68cad3350d8febf8
4223 F20101208_AAALFN kent_d_Page_036thm.jpg
365cc6d5bbcf0851b52d29aa315b804e
78f1e39cb7d80c7a13c674750e3d2ee5b7b1f31c
100474 F20101208_AAALEZ kent_d_Page_066.jp2
e18fe0bc33f7489395469f1b19c2c41c
cc77bc31e6d6137c554f0970a414f76794415939
80948 F20101208_AAAKZT kent_d_Page_016.jpg
696032d3bbf1cd26d0bab698ffbce79f
dd9f65a6fd142ef04db2ef52dd857131d31aa1e3
25799 F20101208_AAALGC kent_d_Page_141.pro
1db7829552528c378f4735f7a4b9c255
920eb93aeb76ffbcf4789765eb131db81a04d4c1
51598 F20101208_AAAMJF kent_d_Page_128.pro
f2a48385778426bad49591a3f84fd2d9
098d9c3b94caeff5ced616545257451c6f2dd880
4874 F20101208_AAAMIQ kent_d_Page_103.pro
c170539f8457755208ed63ec7040120e
b03eb089355c062c86084dcea7b50aec86d49fb7
37906 F20101208_AAALFO kent_d_Page_019.jpg
fb6a273a235fae0937d1549d0c1e33b8
0cc28fff918dd7875be0b151b155da42e57d8da6
1393 F20101208_AAAKZU kent_d_Page_048.txt
a8b4784941727dc476a68e709beadd27
03e109624d7ab1e39b859b3efc49b6a5e86a82e6
59553 F20101208_AAALGD kent_d_Page_123.jpg
668b7cac933a0e1e25cf4d8fde95b53c
506d5f34f9955e6156ea23415bbcd3502626e859
22937 F20101208_AAAMJG kent_d_Page_131.pro
b35644a893086a2714c8d892122346af
bfff5f8eb09d6d9720f3c9b8dcdf91419b54d6d5
9162 F20101208_AAAMIR kent_d_Page_105.pro
a89110986750677b013193de6f5759e2
0d8de83112267e88eb059caea5981e47231bf3aa
811929 F20101208_AAALFP kent_d_Page_180.jp2
bee164beab051592ee7ff010622a0227
2cbcaf82ccc2475ee0f2f962d836ebe345bdaa53
F20101208_AAAKZV kent_d_Page_154.tif
c6d0cf32569108740f72553bd7797198
6d1dd1cf631e732e011d9f9a7f380c1fe6acb6c7
61206 F20101208_AAALGE kent_d_Page_135.jp2
cb4099ef45a2e36974aceac70becad85
6378fa261b9a76ac28222591925083308ed41b1a
27452 F20101208_AAAMJH kent_d_Page_133.pro
559780333c104c2f37355a56d0444bbb
dda0863f5863e962dcc60bce4b033c2516143c66
12122 F20101208_AAAMIS kent_d_Page_106.pro
824e511d1d53fe9e66a83425c63f5920
a9b6da1e03d15d10b90291416b002b365e79d0f0
614 F20101208_AAALFQ kent_d_Page_099.txt
6012b20cc04df24f81d4b92e72368fde
3c230e196c44e612713e40ecf0c60857d78053ab
12279 F20101208_AAAKZW kent_d_Page_005.pro
a69015031b2a08cb82bfdfc92d83e710
83457f3d377af880a4699cc3a3b0e69d7e876c99
F20101208_AAALGF kent_d_Page_024.tif
b118c41f698a1d35905013fcd683df90
326a40acc2c62ca532ab4b2410cd871cf05ae21a
20766 F20101208_AAAMJI kent_d_Page_134.pro
6d82f589ff92daf0ea0daba13c1597a3
4c8b38478f5d7ba6996853c8af4cc22e7f4513c9
12179 F20101208_AAAMIT kent_d_Page_107.pro
1a94cc8740ebb3875a7fa3545c1d6e01
c5c669b77d62744f9a340a999f893b63d7170ac4
42093 F20101208_AAALFR kent_d_Page_013.pro
d6a7167b774f26d25576e43a78de1710
866cfaeec0ca21444b180ee7a608bf8ed64ebd3a
45842 F20101208_AAAKZX kent_d_Page_026.pro
638b0e8983dbf04e2d490b28db04b826
3986469f4ed53d999c24fe6a5a9665ee05ebde27
40165 F20101208_AAALGG kent_d_Page_123.pro
daf7182b5ec2d87025c0062147af9db4
77f27777ef6377ec00c9f9cc46c12490c87caacc
25968 F20101208_AAAMJJ kent_d_Page_138.pro
49d958874392da532cade2a610f0ac6f
b6d76be763cea256a87ee332092ebde0a4eae4ce
12322 F20101208_AAAMIU kent_d_Page_108.pro
53142722154fffe817ac7637e9d3967a
88fde76a449027fb27da586856a87ac209f60e03
408 F20101208_AAALFS kent_d_Page_118.txt
39b4a9aa2898d07ba2060681b4b5c118
45d783b4aa44f3a9d54a38c087d4f1bed4d6d511
29439 F20101208_AAAKZY kent_d_Page_087.pro
4e6c35f877529b51a4482901b4f1751b
41efe24fa56d641f64b8aa626a6b5684e7bdb981
5257 F20101208_AAALGH kent_d_Page_046thm.jpg
3c322213fb956bc112115ea2e0d02b9a
43f7dcb47b03b6a584a3519a0ce155e3f0f279af
13148 F20101208_AAAMIV kent_d_Page_112.pro
c34b49834e2ff607abf08d90b1b5100f
c59245795814b7705e76eb3dc5316f10cb4764b2
1774 F20101208_AAALFT kent_d_Page_046.txt
2241c4e9afb63f545f570be394381c17
be5ad171ed6471d8d0e894b0f4a05b30aefb54f7
78329 F20101208_AAAKZZ kent_d_Page_030.jpg
c34fcc3619f963287346cb2615ebf939
18529f8aee7eca589020a6a7ef7bb98247be4ffe
24696 F20101208_AAAMJK kent_d_Page_139.pro
6f5e5729118dd734b06df91b57c51567
7eb3dcd82dc3f124ec6bd453cb7af0757fa9f1ed
5955 F20101208_AAAMIW kent_d_Page_113.pro
2c7862d32917b1df56cf8d5b221bb4de
8ecb26e2da8962169059b3fe58b4339c8194f6a4
10781 F20101208_AAALFU kent_d_Page_114.QC.jpg
990ae80d5103c7c9cd493ccac6802cc2
17285d539aa80b29268476953888073a219814b6
F20101208_AAALGI kent_d_Page_167.tif
e42978de13da70a7db1801501974ba44
bbf2be90332dea18b05a6ba4f5c433a88cbdb8de
48861 F20101208_AAAMKA kent_d_Page_163.pro
070bd309a30868962212d0ded2c1de83
c15b31953d6cf33239e5f7fa09f7fdd602e12fd5
F20101208_AAAMJL kent_d_Page_140.pro
65e5941591dd0cb021e7f30641f4809d
d72691f389a5be838707dbb791d9672ce82340b9
17999 F20101208_AAAMIX kent_d_Page_114.pro
b1012788fa64e874efc08ea036bf8e15
261b006550af17cd0a34bd8b27b0423259e747f8
F20101208_AAALFV kent_d_Page_009.jp2
b7bb4c4113855b8b89245cff0c269a47
d8b6f355b5b035a41d90217f7f7046535f97cfba
12058 F20101208_AAALGJ kent_d_Page_134.QC.jpg
8758c2c482b44a209623cc1ef41ae0e6
7446f70a20d785373efe9a6c46ed5703f7c9447b
47902 F20101208_AAAMKB kent_d_Page_164.pro
de6034b923de7594d1d01dbef5eee037
fe06604e55ff1ac297ff28f0335a5ded3d40a3a4
20670 F20101208_AAAMJM kent_d_Page_142.pro
8ea3eb0993481d18d05d2eb2b5c8ce62
6bec60f3f08b30feba4abec616e4604b72178826
6789 F20101208_AAAMIY kent_d_Page_115.pro
f4b8d42758ff8b275eeb42f48ff1d91b
444d18e03aca5326f82f3e6d4a6cd96deef0475a
6111 F20101208_AAALFW kent_d_Page_089.QC.jpg
b7b01111ce64ac239416813a30ddab62
c78f8c90c021ecb0a6e20769c991ed1bf03712c7
1646 F20101208_AAALGK kent_d_Page_141.txt
a2f13337ab47cd012e5b97f481815927
0daf8596b3ed89e742c1c155bf65def3121ad9e4
48314 F20101208_AAAMKC kent_d_Page_166.pro
046c993a5d3c393b04f6562c6e033e42
f2b76795ecebffd5a67d91c3c46ed1389456d1c3
25606 F20101208_AAAMJN kent_d_Page_144.pro
ab91064301ebf8c5b2830af19abf196a
b0f9fe9222f8c13990236dcbc16033c1e22e4450
5436 F20101208_AAAMIZ kent_d_Page_118.pro
93e113b61c16550a56c86d1c9a94d2fa
41f3bdd2041710eaf1002d8c38a62b04f63d49bc
73371 F20101208_AAALHA kent_d_Page_020.jpg
c5b7dc9c304f2ace298325b73d295f92
970de567e1256ab45a66606455622c686c1e5111
50266 F20101208_AAALGL kent_d_Page_071.pro
5c192fd395b1d98727a316275ef43a08
47c37fc26153a36e45ad7dc52eefa5c0f1921a59
38075 F20101208_AAALFX kent_d_Page_150.pro
404d3de6758952c76c36e243f0d31f2b
0d8d16c9750dc73732d6ea9c65c9adeab7b6bb91
39230 F20101208_AAAMKD kent_d_Page_167.pro
88ebca5cd957b72583000f0a619d84c5
65c00a1e3e3a7aacd71d71c820a91f085127d763
25969 F20101208_AAAMJO kent_d_Page_146.pro
eaae0a33359b227d88f5b5ef405d0d92
63aa6810280d2dbcd8de6089d36f4761e3f82245
17564 F20101208_AAALHB kent_d_Page_160.QC.jpg
61b42a8220883d16f153293ad9a2c709
57ecf54ed4b16d6030bfb2d87bcaa5d6146badf3
F20101208_AAALGM kent_d_Page_077.tif
ee2b8808910bc121d003d49fc58a8a00
b56f4cc7850dccad536322e15e1c7fff7d51ae04
F20101208_AAALFY kent_d_Page_169.jp2
ea2622740ee9d5b106799c9e2c8b25af
7054f967d7e55988096a1db88889682b8a75677b
39268 F20101208_AAAMKE kent_d_Page_168.pro
8cae32ffa7036ceb300a2d2077486e3c
768a6553e59cade41dac9a22cb63285037af6bcf
33256 F20101208_AAAMJP kent_d_Page_147.pro
05f8d542a740fd63fb073ffc786155b5
51a5571b01fba5e227727b1957d4ef651ad48c9c
15268 F20101208_AAALHC kent_d_Page_032.QC.jpg
ac2d372be9b925c829ded7f8505ee148
2d48f49fcb927d230da124400db70a8223a8b674
F20101208_AAALGN kent_d_Page_146.tif
bb599cb60d765bf083014bf4ce9c2acf
cf042bbf62e2e355d1e199b692a4099d2bb68b9a
12951 F20101208_AAALFZ kent_d_Page_087.QC.jpg
6e18b61edcee60124c0fa9f4bdde66f3
10c4da21972e894c38868c4ec3e23cbfff8f7c7f
44032 F20101208_AAAMKF kent_d_Page_170.pro
2b5722433a53fba291a712cf5d61df04
acdde0c298d3b1294b63c27ef58e4219c9bd3b24
29965 F20101208_AAAMJQ kent_d_Page_148.pro
fcefd54d59903c0efe205e26f8bd6639
a66683782094316060450801b70cf70ac68273fe
F20101208_AAALHD kent_d_Page_001.QC.jpg
ecba60784998ea83a19b79b984015ea1
edcfe344333c8b98a54c0feb3d9ed93446a9f137
505963 F20101208_AAALGO kent_d_Page_090.jp2
aa4b00ebb5824d132596277cf05a7390
6c12272a6ac39908f3aa550ad50eed7b8badd60d
47182 F20101208_AAAMKG kent_d_Page_172.pro
440cdac25ae6f7c42fc4a9adfcf1c456
f490121fd1ce0180686209f23e2141dd6ffe1803
27061 F20101208_AAAMJR kent_d_Page_151.pro
d26559edff87d04b3d26922da027e109
429a2951d2711f9861193b942e15d581ea88d357
49266 F20101208_AAALHE kent_d_Page_076.pro
31be1f74fe6ec7a7d05b4bd687f234d8
23dcee0864d4a8437d66c2e4377ecba13592f828
2124 F20101208_AAALGP kent_d_Page_028.txt
cc03c9b9d9a10683744afd6e9a518882
e6d90cb9b0e7f7b01381338613770d4e37d21c9f
37347 F20101208_AAAMKH kent_d_Page_173.pro
984cfd067e8d134b2bb1c647ab8338dd
94a949ccde6593f763f2ad410026bff2be2f728f
34546 F20101208_AAAMJS kent_d_Page_153.pro
72e7a2375165500877b08aeb27abe1e0
520bd092ac8c4e2f1ab51b7c5dcc8f885d32504c
46756 F20101208_AAALHF kent_d_Page_081.pro
9fc1a66a69e7cf312958ae2103fe8e68
9e7e34937eabc8c3761a5855b172af4f58b5e2ef
3062 F20101208_AAALGQ kent_d_Page_108thm.jpg
e906e3af60c294ff48d94aebc13ebf26
9d383d94d5409037025076a075de2dba04567e62
37499 F20101208_AAAMKI kent_d_Page_174.pro
36566bb7f7983e44a1aeaa78acd240e0
428733ce312d593206370f48aa957edcddfa60e1
41249 F20101208_AAAMJT kent_d_Page_154.pro
5e5fff2f693ab564b64eee385eea7189
eda56167c979938523aa43c43a74c6af48ffd95a
F20101208_AAALHG kent_d_Page_052.tif
84a33775516ba835d37f3d1993806bd3
de559bbf80ac00ac43d6a757f6b5e9069363600b
1495 F20101208_AAALGR kent_d_Page_042.txt
54a4f5e318a90776a2a189d509551e23
e7d00c42d473c0fa63f52cac0cdab22d7f0b245c
36360 F20101208_AAAMKJ kent_d_Page_175.pro
ccd4c2d4a3aa7c1eae834305020ef726
3856fae9e22224bd8c4aa150fef23c467d7a7d6b
44051 F20101208_AAAMJU kent_d_Page_155.pro
7c71a0508c1242ceefa5d4512358c59e
e528449fcd9b3a1299949afde383ce21177482d9
1939 F20101208_AAALHH kent_d_Page_158.txt
063781487ab9699512ee8b74f4864158
4f98016f4ab6dae4fd83b4f28e5817fe249c96cb
113353 F20101208_AAALGS kent_d_Page_057.jp2
c9572c1e166f636102de2e7f825cea1e
05598cc132460d789126a1c12622b788ada68b81
40446 F20101208_AAAMKK kent_d_Page_177.pro
5a5f92ee495b026ddb287a08190bb19d
ea3b1ffb218aa0d5aa198084e6917ded4a3d7c90
29641 F20101208_AAAMJV kent_d_Page_157.pro
6e02f1b22f4551538c84fec681c677f7
8caa3884683eab09cb1a029fc75e91104d0c1605
51031 F20101208_AAALHI kent_d_Page_169.pro
8c241a3cb2ed801d5926d10e08989321
92ff6ff742b39f045baacdf06f84eaa2fcf1e52e
105915 F20101208_AAALGT kent_d_Page_029.jp2
3d542c826789bf7b1640e9f8977fb043
82e7df9e9bc2e24ee532d79c5431471c9935c0e2
43340 F20101208_AAAMJW kent_d_Page_158.pro
e466fcadb43d199f6e939fca8fe26ae7
4b0bbd13c247cc9eab753661bc2cd32f1e6a2c0e
2334 F20101208_AAALGU kent_d_Page_067thm.jpg
336dab12548a09f6907a8a6f1d93d252
17823b8082242fbfeff3681cd0f141f0d446e901
2766 F20101208_AAAMLA kent_d_Page_009.txt
5274bc96e6e62c2377c4193912f48c16
018af6fe755b55bbf1f865cbb27d8499dcc2597f
47165 F20101208_AAAMKL kent_d_Page_178.pro
e4231112e2478c3b4992af65564a76f8
56adcd4548524784a59780cbde732726793a28d0
43507 F20101208_AAAMJX kent_d_Page_160.pro
5c586e09a4b8588fcaa7b9264c2a1d84
13b278ffab086876b58e6cf3f4426186810c4893
46906 F20101208_AAALHJ kent_d_Page_156.pro
1ff2a1b30759dd08009f92e9e0442d00
58698817d0f0e3cc0915730932dab31d39c87de6
4591 F20101208_AAALGV kent_d_Page_165thm.jpg
a7c1fa5c3efd025951f1218c09e9162e
3b90d6d7fdfccd1cb3c84408288d1666d9603c1c
1426 F20101208_AAAMLB kent_d_Page_010.txt
544881053af4d360889ff97c3f04c3fb
f05863a0f29ef65cfd55d61515633b12213f2105
39361 F20101208_AAAMKM kent_d_Page_179.pro
ebd4f814bf70e0baf69d7bd19dd07086
ecba1360aa77257b5b1e8fd1c5fa08e203e64d61
46670 F20101208_AAAMJY kent_d_Page_161.pro
8323b072f3667ac1fa0d13fa10326788
c3f0ed11e686f0d80c8cfab24449ab5d20eaa8f4
34091 F20101208_AAALHK kent_d_Page_176.pro
3ca4f688bf88e22a5f5d68f9e50cf743
eafd7d832b06b894ba79dd28553ffbc14fa892af
1471 F20101208_AAALGW kent_d_Page_176.txt
52cab812310a89f9d4fc4c28e07b1df3
20f3d7e8650409868078b12a6bcfd8e0b1a3475a
1880 F20101208_AAAMLC kent_d_Page_013.txt
f63ccf0e94a7045f0fc95579e7d877ab
52f1834ca09f9bd2a6f098c9d9007a71a32a30d5
32366 F20101208_AAAMKN kent_d_Page_180.pro
754bc6722189d04cfb3c152b0998891c
c5f8a417cecccfdf6edfa5b3405023cfbeb6af0e
43551 F20101208_AAAMJZ kent_d_Page_162.pro
dc9344b2d3823386c2dc08ad27775fba
a13efdfccdb62c81172131593e629176edeb4c23
2096 F20101208_AAALHL kent_d_Page_163.txt
fbab7647d76c4ff48161791407c586ab
fb2679080d438531a1294eebb8d2344190f74ca6
5118 F20101208_AAALGX kent_d_Page_158thm.jpg
20849b85f80672b76ffa1e9106a98cca
34eb6da7a075f8da987637d590131db1d71dc97c
F20101208_AAALIA kent_d_Page_122thm.jpg
615015bedba58b747bc2a79d36f5e2d1
2a731f667c096b2228164520af8b88c0126cb16c
621 F20101208_AAAMLD kent_d_Page_014.txt
b91ab73cb3c13e1c1cf2382c4f3acc74
820878538df233c5062e6fbe2fe83c2120d3e053
42463 F20101208_AAAMKO kent_d_Page_182.pro
f8574eb3acb3d91217527461bd9305a7
e53ac5330f09a097e4c142c6a83e3c9f0a03fd0e
15604 F20101208_AAALHM kent_d_Page_175.QC.jpg
052194eee3f853106365e148f9c77157
59b2e02fb07aa36a434231ba172bc3802f1adccd
55839 F20101208_AAALGY kent_d_Page_085.jpg
695c85337c32bc0314aa29871fe6d41a
b4be4250f325ded879bd915951447ae84cacf03e
37973 F20101208_AAALIB kent_d_Page_064.pro
1af40f8d65be8cd963f4a8630429187f
ac13a42545f6ee1ffde463cbdcdde5f0126b3c34
145 F20101208_AAAMLE kent_d_Page_019.txt
bb4e9f1d206065369494694458b1764a
b3334a87e5a45c591ef73f478d73e35750a89044
32903 F20101208_AAAMKP kent_d_Page_183.pro
ad422a59eeabae6ea56f88927011bef8
00bc156d97bab1a7cc5c43b5c0d01c6772cbd1ed
F20101208_AAALHN kent_d_Page_177.tif
3ff6e1861d07f3f6153d557127ff24b5
490f9fb83482a3aa25400a0c646fe2417e7f2ada
4725 F20101208_AAALGZ kent_d_Page_133thm.jpg
e840f4ad69958da03373510f6488c9d0
75ed46fa8f82b58499a8d489a3661aafea867e7c
6781 F20101208_AAALIC kent_d_Page_063thm.jpg
2614b27b93431a6d535dae2a58044c29
cdf29abad3e9d8a5b1a3ceb296077520add46c20
2109 F20101208_AAAMLF kent_d_Page_022.txt
10345c9dda8a08f0ff0ca1227d292734
95f525ad9f57bdc9d52075505f57a6758fbc41a4
F20101208_AAAMKQ kent_d_Page_186.pro
32f5eae1b6cbb905886c618f97b496cf
0cba24436123ac9b832b7e1c9295f5e133a0bc8e
1387 F20101208_AAALHO kent_d_Page_084.txt
a9d4fbda4953b513c732640e66a3b3e2
cf2c8201e328ae674226c41b201d14385a82880d
116456 F20101208_AAALID kent_d_Page_028.jp2
f5412144b13f2275262a1cd18c3b147a
666365bfff375149d60204855a8aaa7f6f3f7ba8
F20101208_AAAMLG kent_d_Page_023.txt
04b791a5584c220c5ee1c02ec5929666
33fe027eb7a16ee0ede49aaeaa8bf5c0d90a32cb
60418 F20101208_AAAMKR kent_d_Page_187.pro
6468e2e94ccb17230f9167ab88a56298
fbbf1f655a38a18061f08250eedeb66c4aa2384b
2266 F20101208_AAALHP kent_d_Page_001thm.jpg
8fa20cb661797894b18ad8f21b91237d
079e0915a35516cff40013804009f9a9911934a9
F20101208_AAALIE kent_d_Page_081.jp2
bad75dafe8faaea8bc69b65408e0252b
5facdf46622899ae7d4787d85410c8fecea2f8ef
F20101208_AAAMLH kent_d_Page_024.txt
f2247ff043fcb0ea13ba4d4000303fd9
7dc01b107571c395fc6bb929ae414c17ca9f4d32
65114 F20101208_AAAMKS kent_d_Page_188.pro
3b956c621fa0c53385280c132fbfa3c2
3fb38a6d1ffb439d043d39a1afe62af375ca2b66
38063 F20101208_AAALHQ kent_d_Page_149.pro
da5d21f998d924b3a6ef3d25d3ce5299
5cc5da23d08b78b9207e22a40914c65a92a1d2dd
22231 F20101208_AAALIF kent_d_Page_132.pro
3a8ef7d60b8cc9143e802f1649979440
3e06b3b9a3d6834fb2c51cbb687451817424e71d
2061 F20101208_AAAMLI kent_d_Page_025.txt
889f8816db8410de3d431ba91f5f0909
9b460d818c7b755ebe422ddca7ee82c6f445d36e
58658 F20101208_AAAMKT kent_d_Page_189.pro
05d78620a413d8cfa8e08d4779aa2324
326e4d34d15e9a60bb1424877bd2c22459e03202
15884 F20101208_AAALHR kent_d_Page_010.QC.jpg
a41f540293192c7abe313b77dc4f2b7d
be31aa3f9e87fe720dc84f4ae442431a009c734c
14391 F20101208_AAALIG kent_d_Page_141.QC.jpg
c95768f5cbd88fdd08028018e0fd3f47
1642d8be2de005e9903078d7eea99d5e12944217
2028 F20101208_AAAMLJ kent_d_Page_027.txt
0fdab22327e8da4016d0f8516415a7b9
0c099bd7e4d6e75eee37b9cc8533ad900a098481
26932 F20101208_AAAMKU kent_d_Page_191.pro
791986ad58fa4a91427a1d1ad636f5b0
c54b85b99ea7716dc7111d96deaded9294606a40
F20101208_AAALHS kent_d_Page_178.tif
14210c62343c0e71854eb5e079dbaec1
f924cbd6400b7f906827cb2fd4bfe3e43697b8db
4836 F20101208_AAALIH kent_d_Page_168thm.jpg
67f6dea6bd96b9d15bb6685b15707887
f1246f7757df7eb0979136ff82d9fc89e80f30ed
2351 F20101208_AAAMLK kent_d_Page_030.txt
c6db52305b7c89519c06ec59a9fae7fe
d75f0844453f365dba71c719593bededa717d63a
481 F20101208_AAAMKV kent_d_Page_001.txt
abb3d4e314511da9149cbc0af219e172
c1a596ca8e0248aade21cf6bc9f723153989e713
111182 F20101208_AAALHT kent_d_Page_027.jp2
f669b662d75cf9e6c3ba4c32bd2055e6
2cee91add0ce4200e1af84c788438901c454781e
17541 F20101208_AAALII kent_d_Page_086.QC.jpg
8500f396bcf27d89c5837b7aad11b62a
4dbbc736ee3bcb11eab94dd78fc949b0c440599e
561 F20101208_AAAMLL kent_d_Page_032.txt
c1057bd83fa11e5fb680463cd5652b8e
dba1353be9628af56d8c72654ef1d097842a6d2a
90 F20101208_AAAMKW kent_d_Page_002.txt
ba02cbfe56f9ab8553e1b7eee93da1c4
1da8cbd48180db7a5cd155d28cea4101c0f06226
F20101208_AAALHU kent_d_Page_012.tif
8b4e85848af74357733a6b9c9c76338e
4fab80d30d07e88c5708905d7612deccd4ede8a1
F20101208_AAALIJ kent_d_Page_029.tif
aab6b9e4fe093c1930b79a36dae71ccd
0ebcbebdf3ef38228bc26c773e5db448f6bc79e1
2081 F20101208_AAAMMA kent_d_Page_053.txt
f09f2860b3c626619a7f208128d0c033
b5b0549c30ed2990051b356392aaab3075f33a0b
488 F20101208_AAAMKX kent_d_Page_005.txt
bd6bc1a3be3ed003f36fba25437082fc
1bf26b674ea2f936cf574076949eb52bf63c8c83
61074 F20101208_AAALHV kent_d_Page_063.pro
b5732b57746bd6f95e524396a8101368
28887017bdf1759dcf9dfbf41c7b5c54b5b952eb
1840 F20101208_AAAMMB kent_d_Page_054.txt
e70941a90fe2bd0691985f698bcaccf2
e1b214c9e6666aa98b713b1bb117faccb4df3739
2135 F20101208_AAAMLM kent_d_Page_034.txt
0adaa4d3cbdddec02fe43ce97b8c0b7f
48f7b6abc72a812292ee4a1f44629c5333d125e8
4185 F20101208_AAAMKY kent_d_Page_006.txt
b891b81b0fd0df54da8a61ff3e887c3b
93a7e5fe6baba402c2d306362fcd0fd11c763566
32477 F20101208_AAALHW kent_d_Page_159.pro
a9a60ebf1aa5d9b3d54b59f2e07933bd
df2828d02255d61e91a18b9900f770be406f559b
36639 F20101208_AAALIK kent_d_Page_042.pro
57a29f3451c68e3055689296ca6d1e2a
bb160e99fbf3047a1c0d46704c90e7d73b591776
2104 F20101208_AAAMMC kent_d_Page_057.txt
07f68fdf9f4df3faa0eb9ea073d9f017
65bf5c2d60a43f2e5447a1bbb58cb507e90ab916
1997 F20101208_AAAMLN kent_d_Page_035.txt
76b23481618fb6fc8c1951b362c81803
50bb55ed29acdacc6e14961d2edc951a6be48b1b
4267 F20101208_AAAMKZ kent_d_Page_007.txt
0ff9a99d6de76c5f7193875abdb77498
8648d8c0d2ef500e29a3a8ea1d92d53407ecde44
67761 F20101208_AAALHX kent_d_Page_172.jpg
ec2ae11db3b4187a86f8ac233b732b63
c29bf09a027a0d4b22e6dc700d9c266043386875
9519 F20101208_AAALJA kent_d_Page_111.QC.jpg
84db1e000508c5aee56a518c5901fb5a
1a309232090f8b0106fa9c30647676647e0d041b
F20101208_AAALIL kent_d_Page_114.tif
4da58b7d99ad655180b9f15d0bdb0b73
1e35320bb0645408e01f7761dde1ebb289308320
2093 F20101208_AAAMMD kent_d_Page_058.txt
e28e35cb60cb5bf52891743003318985
42d9c20d206b5d667bfa10deea69cda5382b4cbe
1952 F20101208_AAAMLO kent_d_Page_037.txt
4bf8b82c5443b17fa1329cf6d0c104b3
be30c6f0c4e177643b9a20a9daae37cccd809274
4966 F20101208_AAALHY kent_d_Page_178thm.jpg
2c4826c2ea14782fea08d9bc1946c648
90398152971dc87a7ee44481dbdfddcaec67cdf1
6937 F20101208_AAALJB kent_d_Page_058thm.jpg
27014ca3666b9f33743f076a6c74b7cf
e0bd8570aacee6160ae010b4777393969ac2db69
109460 F20101208_AAALIM kent_d_Page_020.jp2
73b22dadb3d69291ece438119d5553bb
928df8cac33c10911120307305f5f152e2321646
2205 F20101208_AAAMME kent_d_Page_059.txt
2c73e24067961619c94f2867ac11a7cb
86b776802cdd2885c1467bad75f38791999a6e1f
1472 F20101208_AAAMLP kent_d_Page_038.txt
eb6e2aea5b382492c703d546df694ace
b9cebbe19331f2292d3ec392d4dfa15ffc552320
4955 F20101208_AAALHZ kent_d_Page_164thm.jpg
347560d4551cccd3695ad18e196383a5
260029a5de59ae50772a877d5c37e63f684aa783
2684 F20101208_AAALJC kent_d_Page_188.txt
96663e3173814376fbcb6988f5e77af1
eafcb0642e7827b492dd39f64e88e6d1d931f12a
F20101208_AAALIN kent_d_Page_027.tif
94a5b663203e648868c92f3ab8dbe7a8
740be5a361e67f4ee1db2685220b0bb643d1dc51
2259 F20101208_AAAMMF kent_d_Page_060.txt
bfe65b7df82d0d8e431348d4cac2be84
deb629752d29c263a6d80ee08a4157a127319ec9
1502 F20101208_AAAMLQ kent_d_Page_039.txt
228983b27f1ed88f0f7cf6a97cbf8519
68aa6a32032982a0191e471a8c8705aa00da07eb
16382 F20101208_AAALJD kent_d_Page_113.jpg
f43a3203b0d9f59f5eef8a830ea05a95
932410b8b65dd344c1f9ff68e247549e127a934d
25977 F20101208_AAALIO kent_d_Page_189.QC.jpg
8856307fd05d247199cc6259c93342d9
a6e2f3d90f6271deeb3ea17e0ed13147695c7f75
2181 F20101208_AAAMMG kent_d_Page_061.txt
dd6a17abf48dac016fb8063120db1237
810bcf680c8f327890f72529de0ec5ef587c7e72
1775 F20101208_AAAMLR kent_d_Page_040.txt
c754a35a7b8ae82e67ee71f23ce2f80b
c1b588c356380a2069f7d15745504619cbceb301
F20101208_AAALJE kent_d_Page_139.tif
5f7bafc43e60f1c279f15372ad2c165f
780d8d22170f7b9405aac1afe1760eb1efb0c665
434 F20101208_AAALIP kent_d_Page_115.txt
63f9780ecd747a07e67c83da9d9b65b1
8495ba578cf29189bbba4e80cd0cee2bc03c1161
2346 F20101208_AAAMMH kent_d_Page_062.txt
75b435edb2c69478a73848a1a7c53bcd
68feac844d0e1ac9c1ff3a7e01cfc42c7b9d7308
1357 F20101208_AAAMLS kent_d_Page_041.txt
6c1b3f3cbf95856d788c141ee0985114
403141b0835797cd3eacad2ae6d65e5e81b89802
6317 F20101208_AAALJF kent_d_Page_054thm.jpg
863907f5103154376a7d3cd1d771d1f9
26deda7361542792a709b3a79d3e0c6154161369
70708 F20101208_AAALIQ kent_d_Page_029.jpg
e676d726ec90302beb5f9c895d7501e0
5fe1e79c0b9ccb94b42438f9207f30755555a14d
2540 F20101208_AAAMMI kent_d_Page_063.txt
6a6f2dec1b91d42267a5e72a7d8c1963
baa7efac67729170e6e6f184ff6ef584716c70b6
1752 F20101208_AAAMLT kent_d_Page_043.txt
6f60611c1e7a6957397b22fcc6a2fa11
f227bec004f57174a5e525e9f943dff9a422aeb4
4615 F20101208_AAALJG kent_d_Page_181.QC.jpg
61f29ca9ddf7af1fc7b755b2b1732fdb
318fea007275d447b093804851e9ba9138547e06
14884 F20101208_AAALIR kent_d_Page_180.QC.jpg
deee6c0b47e0e5545b11f3a0d6f685ec
3321533047d7ef9724e01ac40e519c5e86a35164
2762 F20101208_AAAMMJ kent_d_Page_066.txt
9050e9c3f115c0b46baf68035ef300c8
099545159b07a60770bc209175576093c2c6e028
1870 F20101208_AAAMLU kent_d_Page_044.txt
ecfa01d144093e0bcfbda4d3d96444b4
5260ab97bce047b5b40fa412a22065b0238643b9
22778 F20101208_AAALJH kent_d_Page_073.QC.jpg
4d71cb20f8a788fa70129ee11290c915
4a1b187593c3aab1da5d08198ebadd77f1507d4b
41555 F20101208_AAALIS kent_d_Page_087.jpg
209e540ccd0e818349a04f9ecd0ae05d
289ad16b9303b48878ab46dd4a0aec2bbf4d29c4
427 F20101208_AAAMMK kent_d_Page_067.txt
59c2df056a876ce2f7dc5a82c472f2fd
4989a28421b6fe7c8ec51bf75b2a975164d88374
2140 F20101208_AAAMLV kent_d_Page_045.txt
08813deca4be7c148ca119a296e08dfa
e8bcc997684f2eeb4ca744f103d193b2123147b3
23895 F20101208_AAALJI kent_d_Page_110.pro
0de6be46737d0529a397ab9e3cde9af0
891bd1e10ee86c1973453a6cabbeaaeeb05e789a
F20101208_AAALIT kent_d_Page_135.tif
1d1e27c136b72408dfd8c77b6e0a46c5
83ba67eebd936f1c95de7dfeb1813093cdb05ef9
F20101208_AAAMML kent_d_Page_069.txt
578bdd8216af960e6fb9846e10fd01b1
e438b1a53882ead21ddba036b9287772d052cbe4
2008 F20101208_AAAMLW kent_d_Page_047.txt
e6f7201dfc4f533dd69b0d3b62fdfedc
5d003aefd8aca280aee0c07fd429e003c4fd81d9
F20101208_AAALJJ kent_d_Page_186.tif
1cf1b6f33abceb1001622471bb35ec44
31eb1dda83a7db67c38623acdef052dff9aa7ee1
6350 F20101208_AAALIU kent_d_Page_069thm.jpg
21df95c03a0a060bf04ed27d379dba35
790e3739691380752dc25f7a69c2fd89a527610f
1486 F20101208_AAAMNA kent_d_Page_094.txt
d2a201b3ac6d01bdaf8f7f2692380300
4f1c8eb63d4eaa0f5961ff00c80481b17fefb0bb
2016 F20101208_AAAMMM kent_d_Page_071.txt
58d5fe90e2b81dcead15745fe8d34d7b
53032a109e380fd0e9553d092ccfd0145464525a
431 F20101208_AAAMLX kent_d_Page_050.txt
4755fed9b31d403916f3ad86617e63a4
d60063788de6a65372af029f27301142f0ae282f
48007 F20101208_AAALJK kent_d_Page_119.pro
a9d5f4301e972b655e861ef016cbbb2e
e9c203f9eebf82d6e477c001683d4708eb35d53d
24848 F20101208_AAALIV kent_d_Page_105.jpg
887d3695860cc96fc32ad02f672b5e7f
6901fe752dba6a6fc542ca45bd4f9431f9d56a85
567 F20101208_AAAMNB kent_d_Page_096.txt
9c38834917f44c58c1f48d523c5ea80c
4acfcfcdd5bc08306093c8aad4c96f540fca5775
2136 F20101208_AAAMLY kent_d_Page_051.txt
c7dbe6419461cb6a07ff98e1090d3a11
26161be402a391a8053e8e55a5c8b621559a3b9b
F20101208_AAALIW kent_d_Page_080.tif
016816ea75c4294cd42443801d6fd27f
a9982ac5b476ff4e2b2dcbb3b4cda2570ee0d42c
639 F20101208_AAAMNC kent_d_Page_098.txt
c2c4817332821fdd311f912f8803ab69
244a356b14471c1bd1755403b813ec028e8c3264
F20101208_AAAMMN kent_d_Page_073.txt
3edd10c07c473c8f9527ae116ec5fff2
ab5e3283a84395da0eb287c75bce7a74378f7c49
2158 F20101208_AAAMLZ kent_d_Page_052.txt
7f9af0c355989b3f7c9c017d223aea44
299323c9d32871c1caeab3362b9c8322d984822f
1070 F20101208_AAALKA kent_d_Page_137.txt
91e047c3ad467e5d1baa52cc2c7aee94
6b5542b54c91d011b96a434a60f037a550151d7a
30151 F20101208_AAALJL kent_d_Page_031.jpg
1d5eb6d37746ec60fa5bd421e1b67326
20d054c05f23f382c456058b06d2f658664c38f6
26193 F20101208_AAALIX kent_d_Page_081.QC.jpg
a1e11b198991a70865b8186837ab0b7a
013aecb39b3a645d5e21e22da49ed222cbad4bb5
548 F20101208_AAAMND kent_d_Page_100.txt
e4648c692bce125f1a2dde3d30240b19
414e106c06c65892e775b96cbc92434ba41eb3f2
F20101208_AAAMMO kent_d_Page_074.txt
76fa7c6d5feaed7109b5a66284434e47
1be39485f5fa0de8cfb657ed72a96c318a8e41c3
67694 F20101208_AAALKB kent_d_Page_152.jp2
6daafd1be3870996eb174acc3df2f3a7
77267cf53d8229d79c24d2d30e12111c7955a16b
F20101208_AAALJM kent_d_Page_062.tif
77a7bd259af4b9b40281506963036a84
4cad637ac76af5dcb0502ff29459d49d8eff1c8e
74579 F20101208_AAALIY kent_d_Page_034.jpg
05c13cb25a4e29af5ba18ef0a88882ec
ed91cb909e769ac266077be39eb666fe233e7f26
353 F20101208_AAAMNE kent_d_Page_102.txt
7bd64cac80a9dc658ef0a5d3d8b88064
b653db4397e7c7c114b3e69b10a1a9763e30da93
2163 F20101208_AAAMMP kent_d_Page_075.txt
c22e0aebb7d60509668e5265876ed61e
9951dccd0824b78d0ef5be641118f65abe37b7ad
F20101208_AAALKC kent_d_Page_047.tif
667f0f327e658f885d699ba52207e1d5
9d568fed55900f6a6500d8b6a2c754af546f520f
1706 F20101208_AAALJN kent_d_Page_174.txt
4b412453aeb2bf0e2c5c9891b91a6cce
0275a3af9f89ce9561e6ca5d4d8a1c6edfbc4fcd
2959 F20101208_AAALIZ kent_d_Page_105thm.jpg
6c3e9e6ef8c169ce10e5609cc031e7c9
80f25477882ec7e9e04fc85333cd3027e4bba3a2
445 F20101208_AAAMNF kent_d_Page_103.txt
621d405e7f197352cbc4d67265611f43
2f82eea7ea5a76fb2d9f7f3873838d739fe7388d
1949 F20101208_AAAMMQ kent_d_Page_076.txt
6d9f879b8be7adf878c073795c081323
d22fc9a1aff89fe407f3debc1a7ca46a49a72f4d
6586 F20101208_AAALKD kent_d_Page_120thm.jpg
99bf817ae45a7a4a038d37267e05dec7
30c2e8009dafe4d0452ecbf06f76e9b8d0faee67
5512 F20101208_AAALJO kent_d_Page_152thm.jpg
6c76aa30182fd76f955dde99ce3935b7
5c3966432636c1d994bfc0728ddb7976a1d34edc
520 F20101208_AAAMNG kent_d_Page_104.txt
5684bcb6bbf6f145ad1376880f8566cc
d770372518488a50a3dd011b2c31640006225219
592 F20101208_AAAMMR kent_d_Page_080.txt
1b9316b9692211461a21c2e7bd40c97d
3211d22aaf563868de1e0e8ddfbf89dec4b49dae
85552 F20101208_AAALKE kent_d_Page_006.jpg
b3bae6a897615e09cd380ee3e7280349
a21c3091941898dbf93c1f16c839622841a1e553
286 F20101208_AAALJP kent_d_Page_003.txt
3a958c4ccf00de1019d408a03fc03912
ac72ac2c46c8fb2c4b2d45cb8270c804003d5405
768 F20101208_AAAMNH kent_d_Page_106.txt
ff892d457ebccf12edd67f8425f1e360
5c0ac406b74bbeeeb35a2ceb2570409a45999d69
1862 F20101208_AAAMMS kent_d_Page_081.txt
1d9bbd66bbd147b6357f39f49d8dd16d
9a763e57fdf5d732d3d06e1af6b415086f8db2de
F20101208_AAALKF kent_d_Page_061.tif
17481dc60eb1603ae90f578bcb43cc7c
4d066f160061ad0ba802d78a5a6e6153bfd64253
26017 F20101208_AAALJQ kent_d_Page_052.QC.jpg
e64b258123bad93738aaaf6db0e40b1a
521a2194bf1cdada0485b7645d160ff9508f933f
791 F20101208_AAAMNI kent_d_Page_107.txt
f3e4e79c8aa74472d4f69d0846991f8f
b4b84b77392cc386c1b762916a41cc1963fa0e19
1462 F20101208_AAAMMT kent_d_Page_083.txt
a11fd199a6112606a6153bf87becccff
f67676301cf709c190dbdd9129e2086b3bf140b4
4926 F20101208_AAALKG kent_d_Page_156thm.jpg
120f23abd282bd70567595e592e99240
6b5a2d93343b72f69a6d4a2ee0a140cbdaa4ceff
536346 F20101208_AAALJR kent_d_Page_098.jp2
2c66bab7ea3ba192cec62b14235360da
3a4c48e22ad3aab961c6f8f9805f8a983e681389
1012 F20101208_AAAMNJ kent_d_Page_108.txt
e21d2f251ac7e2605794d5a582e72be8
79b29cbead8633e85e6d8619105858aaf53f815e
1376 F20101208_AAAMMU kent_d_Page_085.txt
3440c473d0018d0d36ccd63a647ddd21
4d33bfc004297a61b17aaf4f08a3309367e33fd0
128619 F20101208_AAALKH kent_d_Page_063.jp2
1faf9956e3c9d3f9f31ef4f95954bfea
43e6b10c8b0b9794bbf6c8c35a1b8e4bd8e3cf65
61139 F20101208_AAALJS kent_d_Page_133.jp2
97ba986c46c27d054ea6df4577472cd7
e40d5ce1631434c81cf4bb63222140d37ba2aa72
1874 F20101208_AAAMNK kent_d_Page_109.txt
8602c691eb3b1b0db6713a87bc1f464f
6feabe8287fa4302b36d8f66180aaa4236d9250a
2447 F20101208_AAAMMV kent_d_Page_086.txt
06208e4d1eee8d2e5190e0cf70eb5022
d6686577560a0a7197e943fd8c07a4bfcd5d0cc9
14269 F20101208_AAALKI kent_d_Page_139.QC.jpg
7ef2da47dae1c4075ced3f5c9e63494f
5b4a5a3c77bfe9e5d98f49a1991e141e4eb9048d
89199 F20101208_AAALJT kent_d_Page_123.jp2
129ac8910c4b8f465e6003313239abdd
91f173ce69a0bb7dc96081db57296323ff6d2d59
1539 F20101208_AAAMNL kent_d_Page_110.txt
4b4f7c4e56341a92630875fd93ecab87
1e1ea11f0584c10834888438b35430481cd1fc5e
2091 F20101208_AAAMMW kent_d_Page_087.txt
717f2b6be4b7d8cfbc0ecff049c47843
789013282653cbb72d5e703c391650b27da6e3ab
114309 F20101208_AAALKJ kent_d_Page_121.jp2
faf012a1542cfd3b903d60d0435db754
e52a40d9a414b30c68934fe211a7f510a418426c
2099 F20101208_AAALJU kent_d_Page_004.txt
d8e5465a83ee809f9ab1f350b8ab0258
d90f6e12dde8998831305b742263666786b95b85
1225 F20101208_AAAMOA kent_d_Page_144.txt
3f37a9739af83c85b6460f468d193351
c8948348dcdf1625be63ffe0cd3a4adf42438e74
362 F20101208_AAAMNM kent_d_Page_111.txt
602be4c47e56376179fb3f3d61114dea
bd506c892c49576758345aad94b805f1cd59f8ff
424 F20101208_AAAMMX kent_d_Page_089.txt
1fb783a78ffda8ff28dd769279891ac9
ed21946be8eb5c7cfb10da0b08371da359ae3c23
1359 F20101208_AAALKK kent_d_Page_157.txt
55c9a98374cbbe53db34641d64d62a5a
b3321e77b667636502286d6aa54af1bfb44c5c3c
F20101208_AAALJV kent_d_Page_168.txt
cb996690eb8cb61610e95f38bf77c6bb
5d26c100ce4016176c761542b1393d17d3f64a35
1088 F20101208_AAAMOB kent_d_Page_145.txt
1403ec1c2b4554bc412dbc6adec739f6
e00348b36ada7bd867efeb69451552c548f44279
1317 F20101208_AAAMNN kent_d_Page_112.txt
6ceaec6cd4951fbfbbbd76b772b58dca
2c97abb1363e2df0abb4347ba5596a4c3762ba1a
487 F20101208_AAAMMY kent_d_Page_090.txt
76630462bc7b31574db0ae8992257317
02b1dc7766582f577e687dfa9f7e405b17642392
204885 F20101208_AAALKL kent_d_Page_186.jp2
005ba924da260a3d83d7ccd3939141c5
e7b15308aca9a251ffdc9807aa95d0705415ee84
18793 F20101208_AAALJW kent_d_Page_042.QC.jpg
a0014ed83f47e3dca35eeb5b3d62804d
a6552fec289bca7ff0d3597dbdcfb64d1c02c190
1275 F20101208_AAAMOC kent_d_Page_146.txt
30ac43cc47013a04cb5fe4bd676c1c91
e65812a10abc80ffbb43250e1e9d1c740a9aa030
409 F20101208_AAAMMZ kent_d_Page_093.txt
f4f3f2d0ee1c506ad0ffaedf533c2267
a0ded684f7b9edc255f363841bf2bca7303b7043
60357 F20101208_AAALJX kent_d_Page_168.jpg
e374f7afe029ee612488bc0630003a62
e04601c57cc68e954e5e06299cfa2ea8a67921ec
4730 F20101208_AAALLA kent_d_Page_167thm.jpg
8c503f41313bb424f51c39b6fe705ddb
c54f66666465a4f060c47562c8040e6bcebf874d



PAGE 1

1 STORING AND PREDICTING DYNAMIC ATTRIBUTES IN A WORLD MODEL KNOWLEDGE STORE By DANIEL ADAM KENT A DISSERTATION PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR OF PHILOSOPHY UNIVERSITY OF FLORIDA 2007

PAGE 2

2 2007 Daniel Adam Kent

PAGE 3

3 To my parents, Iris & Bill. Walt Disney

PAGE 4

4 ACKNOWLEDGMENTS ever dreamt up. A long time ago I was told to always just do as well as I could; look where it got me today. I would like to ext end unending thanks to my Mom, Dad, Brandi, Uncle Steve and especially my hero, Grandpa. I would also like to sincerely thank my advisor and friend, Dr. Carl Crane, for his incredible support of me and my research. From Gainesville, FL to Barstow, CA, he h as always found a way to make my journey more enjoyable. I would also like to thank Dave Armstrong for his endless days of support for me and everything done at CIMAR. Through an Intelligent Ground Vehicle Competition and two DARPA Grand Challenges, I lear ned that Dave may not thank the other members of my graduate committee, Dr. Antonio Arroyo, Dr. Warren Dixon, Dr. Eric Schwartz and Dr. Jeff Wit. Their suppor t, critiques and many insights were very helpful to my research. the robotics research group at the Air Force Research Labs at Tyndall Air Force Base, Florida. Special than ks to Walt Waltz, Al Nease and everyone at AFRL for their support of CIMAR. Group, especially Carl Evans and the World Modeling Task Group, for their support of my research. Their many ideas, comments and questions have been invaluable to my research endeavors. I would also like to thank the members of the Experimentation Task Group for the years. Lastly, but beyond least, I would like to extend a thank you to the entire CIMAR family, past and present. They have made this journey all the more enjoyable. We may have gotten lost

PAGE 5

5 in the desert along the way, run in to a few trees and hit more than our fair share of walls, but we did it together. I would like to especially thank Tom Galluzzo and Bob Touchton for their daily support of my work throughout five long years. I would also like to specifically thank Roberto whenever I needed it. I could not have finished any of this without his help.

PAGE 6

6 TABLE OF CONTENTS page ACKNOWLEDGMENTS ................................ ................................ ................................ ............... 4 LIST OF TABLES ................................ ................................ ................................ ........................... 9 LIST OF FIGURES ................................ ................................ ................................ ....................... 11 ABSTRACT ................................ ................................ ................................ ................................ ... 13 CHAPTER 1 INTRODUCTION ................................ ................................ ................................ .................. 15 Motivation and Problem Statement ................................ ................................ ........................ 15 Proposed Solution ................................ ................................ ................................ ................... 16 Research Environment ................................ ................................ ................................ ............ 17 2 BACKGROUND AND LITERATURE REVIEW ................................ ................................ 20 Dynamic Environment Concerns ................................ ................................ ............................ 20 Loca lization ................................ ................................ ................................ ..................... 21 Motion Planning ................................ ................................ ................................ .............. 22 Decision Making and Behavior Control ................................ ................................ .......... 22 Motion Prediction and Modeling ................................ ................................ ............................ 24 Database Technologies ................................ ................................ ................................ ........... 26 Spatial Da tabase Technologies ................................ ................................ ........................ 27 Moving Objects Databases ................................ ................................ .............................. 27 JAUS and the World Model Message Set ................................ ................................ .............. 29 3 THEORETICAL APPROACH ................................ ................................ .............................. 34 Spatiotemp oral World Model Architecture ................................ ................................ ............ 34 Request Object Id Block Message ................................ ................................ ................... 35 Assign Object Id Block Message ................................ ................................ .................... 36 Create Object(s) Message ................................ ................................ ................................ 36 Confirm Creation Message ................................ ................................ .............................. 37 Modify Object(s) Message ................................ ................................ .............................. 38 Confirm Modification Message ................................ ................................ ....................... 38 Delete Object(s) Message ................................ ................................ ................................ 39 Confirm Deletion Message ................................ ................................ .............................. 39 Query Object(s) Message ................................ ................................ ................................ 40 Report Object(s) Message ................................ ................................ ............................... 40 Query Object(s) Future State Message ................................ ................................ ............ 41 Report Object(s) Future State Message ................................ ................................ ........... 42 Query Geospatial Bounds Message ................................ ................................ ................. 42

PAGE 7

7 Report Geospatial Bounds Message ................................ ................................ ................ 43 Query Temporal Bounds Message ................................ ................................ .................. 43 Re port Temporal Bounds Message ................................ ................................ ................. 44 The Statistics Based N th Order Polynomial Predictor ................................ ............................ 44 4 IMPLEMENTATION DETAILS ................................ ................................ ........................... 51 JAUS Wor ld Model Vector Knowledge Store Message Set ................................ .................. 51 Database Selection and Design ................................ ................................ ............................... 53 Generic Predictor Interface ................................ ................................ ................................ ..... 55 Polynomial Predictor Implementation ................................ ................................ .................... 56 Dynamic World Model Vector Knowledge Store ................................ ................................ .. 58 5 TESTING AND RESULTS ................................ ................................ ................................ .... 69 Laser Tracking Smart Sensor ................................ ................................ ................................ .. 69 Test Procedure and Plans ................................ ................................ ................................ ........ 71 Test Scenario 1: Tracked Object Using Polynomial Predictor from Stationary Platform ................................ ................................ ................................ ........................ 72 Test Scenario 2: Tracked Object Using Polynomial Predictor from Moving Platform ................................ ................................ ................................ ........................ 72 Test Scenario 3: Tracked Object Using Linear Predictor from Moving Platform .......... 72 Test Scenario 4: Velocity Attribute Using Polynomial Predictor ................................ ... 73 Test Scenario 5: Heading Attribute Using Polynomial Predictor ................................ ... 73 Test Results ................................ ................................ ................................ ............................. 73 Test Scenario 1 Results ................................ ................................ ............................ 73 Test Scenario 2 Results ................................ ................................ ............................ 74 Test Scenario 3 Results ................................ ................................ ............................ 75 Test Sce nario 4 Results ................................ ................................ ............................ 77 Test Scenario 5 Results ................................ ................................ ............................ 77 Testing Summary ................................ ................................ ................................ .................... 78 6 FUTURE WORK AND CONCLUSIONS ................................ ................................ ........... 119 Fu ture Work ................................ ................................ ................................ .......................... 119 Conclusion ................................ ................................ ................................ ............................ 122 APPENDIX A JAUS WORLD MODEL MESSAGE SET ................................ ................................ .......... 124 B SAMPLE CODE EXCERPTS ................................ ................................ .............................. 154 JAUS Vector Object ................................ ................................ ................................ ............. 154 Generic Predictor ................................ ................................ ................................ .................. 155 Generic Predictor Structure ................................ ................................ ........................... 155 Generic Predictor ToBuffer Method ................................ ................................ ............. 156 Polynomial Predictor ToBuffer Method ................................ ................................ ........ 156

PAGE 8

8 Process JAUS Messages ................................ ................................ ................................ ....... 157 Create Objects Message ................................ ................................ ................................ 157 Modify Object Message ................................ ................................ ................................ 159 Query Future State Message ................................ ................................ .......................... 1 67 Prediction Algorithm Solver Functions ................................ ................................ ................ 174 Linear Predictor ................................ ................................ ................................ ............. 174 Polynomial Predictor ................................ ................................ ................................ ..... 175 C NUMERIC EXAMPLE ................................ ................................ ................................ ........ 182 LIST OF REFERENCES ................................ ................................ ................................ ............. 187 BIOGRAPHICAL SKETCH ................................ ................................ ................................ ....... 191

PAGE 9

9 LIST OF TABLES Table page 2 1 Common Spatial Database M anagement Systems (DBMS) ................................ .............. 33 4 1 JAUS WMVKS Message Set ................................ ................................ ............................. 64 4 2 Object table data fields, PostgreSQL type and description. ................................ ............... 65 4 3 Feature Class table data fields, PostgreSQL types, and description. ................................ 66 4 4 Polynomial Predictor configuration parameters ................................ ................................ 66 5 1 Scenario 1 Test Plan ................................ ................................ ................................ ........... 81 5 2 Scenario 2 Test Plan ................................ ................................ ................................ ........... 82 5 3 Scen ario 3 Test Plan ................................ ................................ ................................ ........... 83 5 4 Scenario 4 Test Plan ................................ ................................ ................................ ........... 84 5 5 Scenario 5 Test Plan ................................ ................................ ................................ ........... 85 5 6 Error analysis of test scenario 2 ................................ ................................ ......................... 86 5 7 Error analysis of test scenario 3 ................................ ................................ ......................... 86 5 8 Error analysis of test scenario 4 ................................ ................................ ......................... 87 5 9 Error analysis of test scenario 5 ................................ ................................ ......................... 87 A 1 JAUS Vector Object Mapping ................................ ................................ ......................... 131 A 2 Code F021h: Set Vector Knowledge Store Feature Class Metadata ............................... 141 A 3 Code F023h: Request Vector Knowledge Store Object ID Block ................................ ... 141 A 4 Code F120h: Create Vector Knowledge Store Object(s) ................................ ................. 142 A 5 Code F122h: Modify Vector Knowledge Store Object(s) ................................ ............... 143 A 6 Code F123h: Delete Vector Knowledge St ore Object(s) ................................ ................. 143 A 7 Code F130h: Query Vector Knowledge Store Object(s) ................................ ................. 144 A 8 Code F131h: Query Vector Knowledge Store Feature Class Metadata .......................... 147 A 9 Code F132h: Query Vector Knowledge Store Geospatial Bounds ................................ .. 147

PAGE 10

10 A 10 Code F133h: Query Vector Knowledge Store Temporal Bounds ................................ ... 147 A 11 Code F134h: Query Vector Knowledge Store Object(s) Future State ............................. 148 A 12 Code F320h: Assign Vector Knowledge Store Object ID Block ................................ .... 149 A 13 Code F321h: Report Vector Knowledge Store Object(s) Creation ................................ 149 A 14 Code F322h: Report Vector Knowledge Store Object(s) Modification .......................... 150 A 15 Code F323h: Report Vector Knowledge Store Object(s) Deletion ................................ 150 A 16 Code F330h: Report Vector Knowledge Store Object(s) ................................ ................ 151 A 17 Code F331h: Report Vector Knowledge Store Object(s) ................................ ................ 152 A 18 Code F332h: Report Vector Knowledge Store Geospatial Bounds ................................ 152 A 19 Code F333h: Report Vector Knowledge Store Temporal Bounds ................................ .. 153 A 20 Code F334h: Report Vector Knowledge Store Object(s) Future State ............................ 153 C 1 Dataset used in numeric example ................................ ................................ .................... 185 C 2 Statistical Values from numeric example ................................ ................................ ........ 186

PAGE 11

11 LIST OF FIGURES Figure page 1 1 The NaviGATOR ................................ ................................ ................................ ............... 19 2 1 Spatial operator s Touches, Intersect and Within ................................ ............................... 32 2 2 JAUS System Topology ................................ ................................ ................................ ..... 32 3 1 Overview of the input and output messages associated with the Spatiote mporal Wor ld Model Architecture ................................ ................................ ................................ 49 3 2 Window Size and Window Count ................................ ................................ ...................... 50 4 1 Entity Relationship Diagram of WMVKS Database ................................ ......................... 67 4 2 World Model Vector Knowled ge Store Implementation Diagram ................................ .... 68 5 1 Laser tracking algorithm ................................ ................................ ................................ .... 79 5 2 Laser tracking algorithm ................................ ................................ ................................ .... 79 5 3 The TailGator using the tracking algorithm to follow a lawn tractor ................................ 80 5 4 Laser Tracking Smart Sensor output ................................ ................................ .................. 80 5 5 Laser Tracking Smart Sensor setup for collection of test data ................................ .......... 81 5 6 Easting vs. No rthing Plot for Test Scenario 1 ................................ ................................ .... 88 5 7 Easting and Northing vs Time Plot for Test Scenario 1 ................................ ................... 89 5 8 Easting vs. Time Plot with Predic tion Values for Test Scenario 1 ................................ .... 90 5 9 Northing vs. Time with Predic tion Values for Test Scenario 1 ................................ ......... 91 5 10 Easting vs. Northing with Predic tion Values for Test Scenario 1 ................................ ..... 92 5 11 Easting vs. No rthing for Test Scenario 2 ................................ ................................ ........... 93 5 12 Easting and Northing vs Time plot for Test Scenario 2 ................................ .................... 94 5 13 Easting vs. Time Plot for Test Scenario 2 ................................ ................................ .......... 95 5 14 Easting vs. Time with prediction values for tes t scenario 2. Close up of time period 44 64 seconds ................................ ................................ ................................ ..................... 96

PAGE 12

12 5 15 Easting vs. Time with prediction values for test scenario 2. Close up o f time period 120 140 seconds ................................ ................................ ................................ ................. 97 5 16 Easting vs. Time with prediction values for test scenario 2. Close up of time period 168 188 seconds ................................ ................................ ................................ ................. 98 5 17 Northing vs. Time with predic tion values for Test Scenario 2 ................................ .......... 99 5 18 Northing vs. Time with prediction values for Test Scenario 2. Close up of time period 30 90 seconds ................................ ................................ ................................ ....... 100 5 19 Northing vs. Time with prediction values for Test Scenario 2. Close up of time period 125 155 seconds ................................ ................................ ................................ ... 101 5 22 Easting vs. Time with prediction values for test scenario 3. Close up plots of critical sections are provided in figure s 5 23, 5 24 and 5 25 as shown ................................ ...... 104 5 23 Easting vs. Time with prediction values for test scenario 3. Close up of time period 44 64 seconds ................................ ................................ ................................ ................... 105 5 24 Easting vs. Time with prediction values for test scenario 3. Close up of time period 120 140 seconds ................................ ................................ ................................ ............... 106 5 25 Easting vs. Time with prediction values for test scenario 3. Close up of time period 168 188 seconds ................................ ................................ ................................ ............... 107 5 26 Northing vs. Time with predicted values for test scenario 3. Close ups of highlighted areas are provided in fig ures 5 27 and 5 28 as indicated ................................ ................. 108 5 27 Northing vs. Time with predicted values for test scenario 3. Close up of time period 32 95 seconds ................................ ................................ ................................ ................... 109 5 28 Northing vs. Time with predicted values for test scenario 3. Close up of time period 125 155 seconds ................................ ................................ ................................ ............... 110 5 30 Northing Err or vs. Time for test scenario 3 ................................ ................................ ..... 112 5 31 Velocity vs Time plot for test scenario 4 ................................ ................................ ........ 113 5 32 Velocity vs. Time plot with predic tion values for test scenario 4 ................................ ... 114 5 33 Er ror vs Time for test scenario 4 ................................ ................................ ...................... 115 5 34 Heading vs Time plot for test scenario 5 ................................ ................................ ........ 116 5 35 Heading vs. Time plot with predi ction values fo r test scenario 5 ................................ .... 117 5 36 Error vs. Time plot for test sce nario 5 ................................ ................................ ............. 118

PAGE 13

13 Abstract of Dissertation Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy STORING AND PREDICTIONG DYNAMIC ATTRIBUTES IN A WORLD MODEL KNOWLEDGE STORE By Daniel Adam Kent May 2007 Chair: Carl D. Crane, III Major: Mechanical Engineering The world is an ever changing, dynamic environment. If robots and other intelligent systems are to find ways to cope with and reason about the world adequately, they must be capable of understanding these dynamic features. This work examines the need for a centralized knowledge store capable of storing information th at is both spatial and temporal in nature. The interface of a new and unique architecture to handle the exchange of dynamic information and questions about the future state of that information is presented. A novel algorithm, called the Statistics Based N t h Order Polynomial Predictor (SNOPP), is also developed which allows state prediction of almost any time variant data. Each of these contributions is demonstrated through the use of a reference implementation. using the Joint Architecture for Unmanned Systems (JAUS), a widely accepted, open robotics architecture developed for use in defense programs. The architecture and predictor are tested using a real world sensor algorithm deployed on an autonomous vehicle Robotics ( CIMAR). Findings and results of these tests are given which examine the behavior of

PAGE 14

14 the architecture and novel prediction algorithm in a variety of scenarios involving different t ime variant data types. The Dynamic World Model architecture and the SNOPP algorithm provide significant contributions to the future of robotics. Many robotic problems, including decision making, health monitoring and path planning, stand to benefit from b etter understanding of the dynamic nature of both the robot and its environment. This dissertation provides a framework in which many of these and other problems may be addressed and summarily solved by future robotic engineers.

PAGE 15

15 CHAPTER 1 INTRODUCTION The world of mobile, intelligent robotics is expanding rapidly. As the shape, size, function and capabilities of these systems change, so does the complexity. One of the more complex functions to be addressed in recent years is that of modeling and underst anding more fully the area, including background literature material, theoretical details and research results from a reference implementation of the system deve modeling dynamic information and predicting the future state of that information. Two primary contributions are put forth in this document. Firstly, a framework in which a large variety of problems can be addres sed and solved is presented, both theoretically and in detail. Second, in the effort to implement and test that framework, a novel algorithm named the Statistics Based N th Order Polynomial Predictor (SNOPP) is developed with which dynamic attribute predict ion is possible; the results of which are presented and discussed. Motivation and Problem Statement As robots move out of the lab and into the real world they are forced more and more often to deal with the constraints of that world. One of these constrain ts which have not historically been dealt with is that the nature of the real world is to exhibit many dynamic characteristics. Historically most mobile robot systems have assumed the world to be relatively static and constant. If a dynamic object was pres ent, it would be treated as a static object with respect to any planning or behavioral efforts. In more recent work, development has begun o n systems which address dynamic elements of the world. Particular effort has been paid to the problem of planning mo tion within an environment which comprises a combination of static and dynamic elements. Research has also

PAGE 16

16 been conducted in using prediction and estimation techniques in the area of autonomous behavior generation and mission planning. A weakness of each o f these approaches is that the data is segregated in such a way that the focused on developing a framework within which any of these and many other tasks can be compl eted both separately and cooperatively by an autonomous system. Proposed Solution To accomplish this task, the author developed a knowledge store capable of storing and querying dynamic information. The knowledge store is responsible for the storage, evalu ation and prediction of the future state for any defined dynamic information. This framework supports a variety of possible modeling or prediction algorithms with which a particular item can be modeled. To accomplish this, the sensing or reasoning portion of the robot which seeks to store the information will specify the methodology which the knowledge store should use. The following is an overview of the steps involved in the creation and use of a series of dynamic information. For the sake of this example one should assume the dynamic information is the position of some moving object. A sensing element on the robot determines the current position of some moving object. ion. The sensing element creates within the knowledge store the observed object and designates possible) which the knowledge store should use in modeling the new object. A s new position information becomes available, the sensing element updates the knowledge store with the latest information. As planning, decision making, or other sensing elements seek to complete their specialized goals, they query the knowledge store for the current or future position of the object. The knowledge store uses the designated estimation algorithm to produce future position estimates.

PAGE 17

17 The sense and planning elements continue to update and use the information until the object is no longer sensed or of concern to any planning element. It was beyond the scope of the work presented herein to address evaluation within the knowledge store of the correct selection or appropriateness of the estimation algorithm applied. Instead it is assumed that the s ensing element which has identified the information of interest knows the best algorithm which should be applied. For this work, the prediction algorithms available in the knowledge store were defined a priori and agreed upon by the sensor and knowledge st ore developers. Research Environment The research documented herein was done at the Center for Intelligent Machines and Robotics (CIMAR) at the University of Florida. CIMAR has been conducting research in autonomous vehicles and robotics for over 15 years and has seen a large amount of success as competitors in the Defense Advanced Research Projects Agency (DARPA) Grand Challenge in both 2004 and 2005 (Figure 1 Challenge). Much of this work is direct robotic activities of the Air Force Research Lab (Tyndall Air Force Base, Panama City, FL). CIMAR has also actively been involved with the Joint Architecture for Unmanned Systems (JAUS) Working Group dur and reliable foundation on which new ideas and concepts can quickly be implemented and tested in the field. The NaviGATOR platform is now in use as the primary autonomous test bed at CIM AR. room for ample computing hardware nodes which allow for the rapid development and deployment of new technologies. The system is compl etely JAUS based and sup ports a number

PAGE 18

18 of essential JAUS components such as the Global Position Sensor and the Velocity State Sensor which are critica l to this research ( [1] for more details on these components and JAUS in general ). The NaviGATOR also supports several pre installed LADAR systems which were used in support of this research. The modularity of the JAUS ar chitecture allows researchers at CIMAR to add and remove non critical components f rom the system at will. CIMAR also has recently developed a vast library of software to support its recent JAUS pendent research. This software library, written in C, decreases the development time of reliable and efficient JAUS components. The work done in this research made use of these libraries to evaluate a reference implementation.

PAGE 19

19 Figure 1 1 The NaviGATOR

PAGE 20

20 CHAPTER 2 BACKGROUND AND LITER ATURE REVIEW Work done by the author has laid the foundation for work which can be done in many new and exciting areas within the realm of autono mous and unmanned systems. The d ynamic environment c oncerns section outlines some of the fields in which dynamic objects and attributes are of inte r est to robotic algorithms. The motion prediction and m odeling section provides an overview of some of the many predictive algorithms in use by robotic systems. Lastly, the database technologies section aims to address the methodologies by which this dynam ic and spatial information may be stored and made available to a variety of modules simultaneously. A the Joint Architecture for Unmanned Systems (JAUS), a s tandardized robotics architecture. The JAUS and the World Modeling Message Set section examines the structure of the architecture and the current set of world modeling functionality available in JAUS. Dynamic Environment Concerns Mobile robots have been slowly moving out of research labs and into the real world since the days of Shakey [2] In recent years, many of the traditional problems which faced so called field robotics have been solved with increasing reliability. These include many of the ac tions plan success has been seen only in the realm of static environments. The real world, and the world researchers ultimately want their robots to operate in, is dyn amic. The real world is abundantly full of dynamic parameters and attributes with which robots need to understand and cope. For the cycle must be able to r eason about and handle these dynamic parameters.

PAGE 21

21 The following are three major areas of interest in which the incorporation of dynamic objects and predictive estimation theories have been applied. In each, the dynamic knowledge has shown an improvement in Localization A primary challenge of any autonomous or semi autonomous robot is to determine its location within the world. In the realm of outdoor robotics, this is often done through the use of some form of global positioning system (GPS) combined with an inertial navigation system (INS). However, GPS typically does not work for autonomous robots deployed in indoor environments. A popularly accepted approach to the problem of locating a robot within i ts environment is that of Simultaneous Localization and Mapping (SLAM) which was first outlined in [3] Since then SLAM has been extensively used in a varie ty of environments both 2D and through feature extraction and mapping. Most of this work is based on probabilistic methods which determine a maximum likelihood for environment is static [4] In [4] is it suggested that if the dynamic objects can be filtered out, the results of the SLAM algorithm will be better. It is also pointed out that while the SLAM algorithms are interested in removing the dynamic obstacles, the detection and tracki ng of moving objects (DATMO) algorithms are especially interested in exactly the data that is to be filtered. Therefore SLAM with DATMO is presented with favorable results [4] Other researchers have wo rked on various other methods to improve SLAM results through careful consideration of dynamic objects. The work has often been applied to problems dealing with the tracking of people [5, 6] A thorough overview of many of these approaches is presented in [7] Many of these appr oaches make use of various probabilistic tracking and

PAGE 22

22 estimation techniques to intelligently estimate which sensor reading should be filtered when considering dynamic objects. Motion Planning Planning the future state of an autonomous agent is the essence of the mobile robot problem. While the future state can consist of a number of things, many times the focus on a mobile robot is to plan its behavior, or path, within the environment. In the case of a static or presumed static environment, this problem has to some extent been solved [8] The solutions to these problems most often align themselves along two fronts, those that find an entire path solution before starting motion, and those that react only to the current world state. So called deliberative and reactive motion planners each have associated strengths and weaknesses (the likes of which are out side the scope of this discussion), however most do not treat dynamic objects in some prescribed fashion. Other work in the area of motion planning has focused on iterative techniques such as D* [9] however these too do not ta ke into account the fundamental nature of dynamic objects. That is predicting and compensating for not only the position or velocity, but the estimated position or velocity of the object at some future point in time. The most recent work being done in moti on planning is beginning to address this three dimensional problem; that is X, Y and time. Initial work in this area concentrated on treating objects as having constant velocity [10] Later work is beginning to build beyond the constant velocity assumption and addressing so called Non Linear Velocity Objects (NLVO) [11] These approaches and others extend many of the deliberative and iterative planning techniques developed for static problems to allow compensation for moving objects [12 14] Decision Making and Behavior Control higher level decision making and behavior generation services also face the challenges of a

PAGE 23

23 dynamic and changing environment. Some robotics architectures, notably 4D/RCS [15] dictate the inclusion of prediction and simulation capabilities at each layer of the architecture to faci litate future state estimation. This 4D/RCS architecture has seen use in a number of different autonomous systems. The PRIDE ( PRediction in Dynamic Environments ) architecture is based on the 4D/RCS scheme and has been developed specifically to address on road autonomous driving [16] PRIDE makes use of a multi resoluti on, hierarchical architecture to incorporate different prediction methodologies at different levels of the framework. Results from simulation experiments using PRIDE have shown that different predictive routines can be combined to successfully plan at vary ing time horizons for situation assessment tasks [16, 17] Similar on road work has also been done with predictiv e behavior generation in the field of driver assistance [18] The work done therein concentrates on an architecture whereby the motivations, goals, plans and probable paths of surrounding vehicles are used to generate predicted situations. Situations are given levels of probability of occurring and all possible situations are fused for decision making. This work also makes use of a database or knowledge store as the fundamental storage and distribution of dynamic data to other modules within the architecture. While estimations and predictions of future states or events are of significant importance to decisions about the action s of other mobile agents, it is also applicable to the study of the robot itself. MENSA (Mission Effectiveness and Safety Assessment) is an architecture designed to handle primarily health monitoring and contingency resolution [20] ability to reason about itself and arrive at decisions based on its current state, predicted states and mission goals. MENSA is comprised of four modules sensor monitoring, mission assess ment,

PAGE 24

24 fault diagnosis, and capability assessment. Central to these modules is a shared knowledge store. In the MENSA architecture, predicted sensor values are performed in the sensor monitoring module. Motion Prediction and Modeling There exists a multitud e of prediction and modeling algorithms in use for both robotic and non robotic systems. The following is a survey of various tracking and estimation techniques presented in the literature which have been applied to robots. Many of these approaches rely on some a priori knowledge of either the environment or the object being tracked, however some do not. In [21] a constant velocity mode velocity. To improve the performance of the system, the uncertainty in the direction of the velocity i s modeled as a Gaussian distribution. The heading estimate is further improved by incorporating known world information (gaps) into the estimator. The work has shown that the use of velocity estimation compared to similar work without consideration of the dynamics has improved the performance of the tracking algorithm. In [22] the problem of motion estimation is considered in a fixed environment. The problem is brok en into two stages, a learning phase and an estimation phase. In the learning stage, data about the trajectories of real agents moving about the environment is captured. This represents the training data set. The training data is clustered, yielding a seri es of possible trajectories in the environment. The second phase is the motion estimation phase. In the motion estimation phase, the likelihood that some observed, partial trajectory is part of one of the trajectories previously learned is evaluated. The e stimated motion is then the trained trajectory which has the maximum likelihood. This particular approach depends heavily on the fact that

PAGE 25

25 certain paths through a particular environment might be preferred over others. It also embeds an assumption that the environmental constraints which influence these preferred paths tend to remain constant. In [23] the problem of motion prediction is applied to the RoboCup problem (where a team of robots is challenged with playing soccer against an opposing team of robots). One problem presented in particular is modeling the motion of the soccer ball. In order to predict the behavior of the ball two different models are used. When the ball is rolling freely a neural network is used to predict its motion. When the ball is not rolling freely its motion is estimated through the use of a collision model between it and the robots. The combination of these models was shown to have done using a Kalman filter. Prediction of the ball for RoboCup has also been studied in [24] Here a grey prediction algorithm is used. The grey predictor has the advantage of needing to know none of the internal structure or characteristics of the system being observed. Therefore it is able to model and predict the trajectory of the ball sufficiently. This work also implements a switching behavior to the algorithm. Depending on how far the robot i s from the ball, the prediction length is modified to reflect the increased time it would take the robot to intercept the ball. Simulated results show an improved performance in the system with the switching grey predictor. In [25] which makes use of an autoregressive (AR) model. The complete algorithm for position and orientation estimation is presented in separate parts, first dealing wi th the translational motion then the rotational. The results presented show good performance of the system in estimating motion both with varying and uniform acceleration.

PAGE 26

26 The prediction work done in [26] focuses primarily on estimating the motion of other into account the dynamic and kinematic characteristics observed along with some a priori knowl In [23] Kalman filtering techniques are presented to solve the problem of estimating the position and orientation of moving obstacles. An advantage of the Kalman filtering approach is that the estimator begins with the first step, whereas most other approaches require some minimum data history to yield favorable estimates. Two Kalman filters are developed, one for translational estimation and the other for rotational. Work done in [27] focuses mainly on the use of predictive motion in building a motion planner. However, it does outline a method for estimated motion based on a Polynomial Neural nd previous time steps and the output is the estimated position of the object at the next time step. As in most neural networks, the performance of the system is very dependent on a large set of training data. Database Technologies An important contributio n of this work is to take the storage and prediction elements of spatial information and co locate them into one service on the mobile platform. Current database systems, both object relational and relational, can be extended to support spatial and tempora l capabilities (see Table 2 1 for more details). Recent advances in spatiotemporal and moving objects databases provide a framework for the query and storage of objects that move spatially within the environment.

PAGE 27

27 Spatial Database Technologies A spatial dat abase is a relational or object oriented database which has been enhanced to support spatial data and perform spatial operators on that data (for a through technical discussion of spatial databases and their operators see [28] ). Spatial data is usually divided into two primary categories, raster and vector. The focus of the work in t his research is in the storage and interpretation of vector representations. Vector data is typically divided into one of three types: points, lines and polygons. In general, these objects are not restricted to 2D representations and can include a mixture of planar and non planar data. An important aspect of spatial database is not only the storage of spatial data types, but the ability to perform logical operations on that data. Typically these operations include at minimum relational operations between en tities such as touches (any point of both entities are equal), intersect (entities intersect such that there is a set of collective points shared), or within (one entity completely encapsulated within the interior of another). Figure 2 1 describes these op erators. An important feature of most commercial spatial databases is that of spatial indexes. A spatial index makes use of the spatial relationships among data members to improve the performance of queries and spatial operators [28] Table 2 1 lists several commonly available relational and object relational database systems and t he various spatial options available for each. Several other factors are presented in Table 2 1 including 3D data support, raster data support, compliance with the standard outlined by the OpenGIS Consortium (OGC) in [29] and relative system costs. Moving Objects Databases Recent work in DBMSs has concentrated more on the moving object problem. In a Moving Object Database (MOD), information about geometries that change over time are stored. The

PAGE 28

28 MOD is an extension to the spatial database and the temporal database [30] MODs are comprised primarily of two distinct parts, the query language and the spatio temporal data types. Early work on MODs could not make use of DBMS systems due to limitations on indexing and data types. Two significant efforts in the early d evelopment of MODs sought to overcome these limitations, namely the Databases fOr MovINg Objects (DOMINO) project [31 33] which implements the Moving Objects Spatio Temporal (MOST) data model [34, 35] The MOST data model introduced the concept of a dynamic attribute This is an attribute whose value changes with respect to time without being explicitly updated [34] These efforts sought to solve many of the fundamental DBMS questions in dealing with moving objects. To simplify the p roblems, these efforts made use of a number of assumptions [30] an assumption that the moving object will update the database with new informati on whenever known position. The MOST model also supports two met through the use of a motion vector. This vector can be any function with respect to time that describes the future motion of the attribute it describes. Higher level information can also be used. In the case of vehi cles, it is more realistic to assume that the vehicle travels along some road network. If the possible road network is known, then the motion of the vehicle can be constrained to that network [30] The significant work done to date in MODs concentrates on the storage, modeling and querying of moving objects, including work on uncertainty analysis [36] However, little to no work has been done to include within the MOD the ability for the databas e to develop it own

PAGE 29

29 model of the attribute and reason about its future. Instead a MOD relies on a close relationship with the moving object itself to provide that information. JAUS and the World Model Message Set The Joint Architecture for Unmanned Systems (JAUS) is an effort to develop an upper level design for the various interfaces in the realm of unmanned systems. The initiative started in 1998 when the Office of the Secretary of Defense charted what was then the Joint Architecture for Unmanned Ground V ehicles Working Group (JAUGS WG). JAUGS has since transitioned to encompass the realm of all unmanned systems. It is the goal of the working group to develop a framework which aids in procurement of robotics systems by ensuring mutual compatibility, encour ages industry competition without fear of being locked in to proprietary solutions, enables developers to focus on application needs rather than basic infrastructure, and reduce s the burden of technology transfer between programs. JAUS defines a component based messaging architecture which defines the data format and message specifications for communicating between different computing nodes and processes. It defines an architectural layout of System, Subsystem, Node and Component which correspond, respecti vely, to a combination of robotic resources, a particular robot or control unit, a computing resource an d a software process. Figure 2 2 shows the JAUS topology. Various components are defined in the JAUS Reference Architecture (RA) for well defined roboti c software roles [1] These include global position, velocity feedback, actuator control an d configuration management. The RA includes a definition of various data types used to communicate between components. It also includes a set of messages which define the way in

PAGE 30

30 which information is passed between components and the nature in which this co mmunication takes place. Much work has been done in recent years to progress JAUS into emerging areas of robotic research. One key area of interest to the JAUS Working Group (WG) has been in the area of World Modeling. What follows is the definition of a W orld Model as adopted by the JAUS standard. The world world model includes a database of knowledge about the world, plus a database management system that stores and retrieves i nformation. The world model also contains a simulation capability that generates expectations and predictions. The world model provides answers to requests about the present, past, and probable future states of the world. The world model provides this info rmation service to the behavior generation system element in order to make intelligent plans and behavioral choices. It provides information to the sensory processing system element to perform correlation, model matching, and model based recognition of sta tes, objects, and events. It provides information to the value judgment system element to compute values such as cost, benefit, risk, uncertainty, importance, and attractiveness. The world model is kept up to date by the sensory processing system element. [37] As can be seen, one of the primary goals of the World Model, as defined above, is to S deals solely with the query and storage of static geospatial data [38] The work done i n this dissertation focuses on vector data representation, therefore the area of interest in the JAUS documentation is that which deals with the World Model Vector Knowledge Store. The messages and capabilities therein support the following capabilities: C reate point, line or polygonal object(s). These objects can contain a number of feature classes [38] and each feature class may contain a single feature class attribute. Delete an object or a group of objects in an area. Query for objects by region, id, feature class, attribute or any combination thereof.

PAGE 31

31 This core set of query and storage functionality, along with the developed spatial data types provided the foundation for the implementation detailed in Chapter 4. The JAUS World Model message set also establishes a set of terminology including feature class and feature class attribute whic be found in [38] While much of the basic functionality is retained, many of the existing JAUS messages needed to be changed or extended to support the architectural requirements. The modified JAUS message set, as used by the author, is included as Appendix A.

PAGE 32

32 Figure 2 1 Spatial operators Touches, Intersect and Within. Figure 2 2 JAUS System Topology

PAGE 33

33 Table 2 1 Common Spatial Database Management Systems (DBMS) [39 47] DBMS OS Spatial Extension OGC Compliance Spatial Index Coordinate System 3D Raster Cost Oracle Linux, Windows Oracle Spatial Compliant $$$$$ Oracle Locator Compliant $$ ArcSDE Compliant $$$ DB2 Linux, Windows DB2 Spatial Extender Compliant $$ ArcSDE Compliant $$ MS Access Windows GeoMedia $ MS SQL Server Windows SpatialWare Implementing $ GeoMedia $ ArcSDE Compliant $$ Informix Linux, Windows Spatial Datablade Compliant $$ ArcSDE Compliant $$$ PostgreSQL Linux, Windows PostGIS Compliant Open Source MySQL Linux, Windows Native Open Source

PAGE 34

34 CHAPTER 3 THEORETICAL APPROACH The storage and querying of dynamic information is a challenging problem. In this chapter the author describes two parts of the unique problem. Firstly, the architectural requirements of a centralized knowledge store are discussed and a solution proposed. Following that, a unique prediction algorithm for estimating the future state of informati on without a priori knowledge of the behavior of the system is described. Through the combination of the architecture described and use of various prediction methods like the one described herein, a vast array of dynamic and temporal knowledge store proble ms may be solved. Spatiotemporal World Model Architecture The use of knowledge stores as centralized repositories for information is not a new concept in either computer science or robotics. There is a long tradition of knowledge stores such as databases b eing used in applications ranging from financial to stock control. Also, in robotics, common, centralized knowledge representations have been used successfully in a number of robotic systems. However, few of these systems have attempted to cope with the va rious demands of both spatial and temporal knowledge. Further, providing predictive behavior about the future state of information is something only recently explored by the moving objects database (MOD) researchers. In developing an architecture for use o n a robotic system, several constraints and concerns are of importance. Firstly is the flexibility of the interface. The kind of spatiotemporal data most often encountered on an intelligent robotic platform is from some form of sensing capability. It is th en appropriate to design the interface to the knowledge store in such a way as to cater to the capabilities of most sensing systems. Secondly, the architecture should scale with the scope of the robot and its mission. From simple vacuuming robotic systems for home use to a fleet of

PAGE 35

35 robotic platforms deployed together, the spatiotemporal knowledge store should provide a solution that suits the needs of both. To those ends, the architecture presented here provides a flexible yet robust interface which allows the robotic system designer to make best use of the information available on the system. It provides capabilities to create objects, modify them, delete them and ask questions about their past, present and future state. Each object is assigned a unique obj ect id for identification purposes either by the knowledge store or the client. Objects may have associated with them both geospatial information and attribute information. The geospatial information describes the geometry, position and orientation of an o bject in the context of the world. The attribute information can be used to hold any other significant information about the object which may include but is not limited to color, velocity, height, classification and/or name. A novel feature of this archite cture is the capacity for multiple estimation techniques for object and attributes prediction. Rather than attempt to apply a single prediction technique to all objects, the knowledge store is flexible in allowing the client to specify which technique to u se. Current work has focused on having a collection of prediction techniques defined a priori which a knowledge store client can select from in creating or modifying objects and their attributes. This capability extends the flexibility and scalability of t he architecture by allowing particular prediction techniques to be created and scaled to the particular application of interest; without the need to modify or change the overall architecture and message set. Figure 3 1 shows the various input and output me ssages for the architecture. Each message and its various fields are described below in detail. Request Object Id Block Message Request Id

PAGE 36

36 Block Size The Request Object Id Block message is used by the knowledge store client to request a range of object i ds which it may use. The Request Id is used by the knowledge store to track any response to the client. The Block Size field indicated the number of object ids the client is requesting. Assign Object Id Block Message Request Id Block Size Object Ids Th e Assign Object Id Block message is sent in response to a Request Object Id Block message. This message includes the Request Id of the original request. The Block Size field is the size of object ids allocated by the knowledge store for use by the request ing client. The O BJECT I DS field is a list of the object ids allocated. Create Object(s) Message Request Id Object Count Object Id (optional) Object Estimator Type (optional) Object Time Stamp (optional) Object Geospatial Information Object Attributes Information

PAGE 37

37 The Create Object(s) message includes allows the client to create one or more unique objects within the knowledge store. The Request Id field is used to track the creation request and is used in any response from the knowledge store The Object Count field is provided to indicate how many objects are included in the message. Each object is constructed from set of fields including Object Id, Object Estimator Type Object Time Stamp Object Geospatial Information and Object Attributes The Object Id field is optional. It is provided when the client would like to create an object with a particular unique object id. The Object Estimator Type field is also optional. It indicates which of the available estimation algorithms available should be used to estimate the geospatial position of the object for queries about its future state. If this field is not present, it is assumed that the object is to be considered static by the knowledge store. The Object Time Stamp field is optional. This fiel d is used to indicate the time at which the geospatial information about the object was measured or otherwise known to be valid. The Object Geospatial Information is a collection of all the information needed to completely define the geospatial configurati on of the object. Lastly, the Object Attributes Information is a list of attributes which are attached to the object. It is assumed that each attribute can also be declared as either static or dynamic with an appropriate estimator and timestamp. Confirm Cr eation Message Request Id Creation Result Object Ids The Confirm Creation message is sent by the knowledge store to the client following the receipt of a Create Object(s) message. This message includes the Request Id of the original creation. The Creati on Result field is used to indicate the success or failure of the creation

PAGE 38

38 request. For each object in the original request, the appropriate Object Id (either assigned by the knowledge store or as requested) is included Modify Object (s) Message Request I d Object Count Object Id Object Estimator Type (optional) Object Time Stamp (optional) Object Geospatial Information Object Attributes Information ( optional ) The Modify Object message is used by the knowledge store client to modify or add information about an object in the knowledge store. The Request Id is used by the knowledge store in its response to track the original request. The Object Count field is used to indicate the number of objects included to be modified. The Object Id field indicates which object in the knowledge store that the client would like changed or updated. Like the Create Object(s) message, this message includes information about the obje ct which should be changed or updated. The client is given the opportunity to change the Object Estimator Type update the Object Time Stamp and update or replace the Object Geospatial Information and Object Attributes Information Confirm Modification Mes sage Request Id Modification Result The Confirm Modification message is sent by the knowledge store in response to a Modify Object message. This message includes two fields, the Request Id of the original modification

PAGE 39

39 message and a result. The Modification Result is used to indicate success or failure of the request Delete Object(s) Message Request Id Object Ids (optional) Deletion Region (optional) Deletion Attributes (optional) The Delete Object(s) message is sent to the knowledge store from a client who wishes to delete one or more objects from the knowledge store. The Request Id is used to track the input for any response. There are 3 ways objects can be identified for deletion. The first is to identify the unique Object Id of the object(s) to be delete d. The second method is to provide a Deletion Region Here the client provides a geometric region to the knowledge store; all objects within that region (either wholly or partly) will be deleted. The last method is to provide a list of Deletion Attributes This will cause the knowledge store to remove any object which matches all the attributes provided. These various methods can be combined to form more complex deletion requests. Such combinations result in logical conjunctions and could allow deletion of a particular object only if it is inside the deletion region or removal of all objects in a region that match a particular attribute value. Through combinations of the three methods, a large number of flexible deletion commands can be constructed Confirm Deletion Message Request Id Deletion Result Object Ids

PAGE 40

40 The Confirm Deletion message is sent by the knowledge store in response to a Delete Object(s) message. This includes the Request Id field of the original deletion request for tracking purposes. The Del etion Result indicates success or failure of the request. The Object Ids field is a list of the objects successfully removed from the knowledge store Query Object(s) Message Request Id History Size (optional) Object Ids (optional) Query Region (optional) Query Attributes (optional) The Query Object(s) message is used by a client to find information about the current or past state of one or more objects in the knowledge store. The Request Id is used to track the query and identify the response from the know ledge store. The History Size field is optional. This field indicates the time period of object history to include in the response. There are three ways objects can be identified for inclusion in the response. The first method is to explicitly identify the object(s) through the use of their Object Ids The second method consists of identifying a Query Region This defines a geometric region in which all objects within (either wholly or partly) will be included in the result. Lastly, specific Query Attribute s can be included. Any object which matches all the included attributes will be included in the result. Like the Delete Object(s) message, these fields can be combined to provide more flexible queries. Combinations are considered to be logical conjunctions This allows queries such as a specific object if it is inside some region or all objects with a particular attribute value Report Object(s) Message Request Id

PAGE 41

41 Query Result History Size (optional) Object Count Object Id Object Estimator Type (optional) Object Time Stamp (optional) Object Geospatial Information Object Attributes Information The Report Object(s) message is sent by the knowledge store in response to a Query Object(s) message. This message contains the results, if any, of the presented quer y. The Request Id is used to identify to the client which query this is the response to. The Query Result field is used to indicate the success or failure of the original query. The History Size field is optional and is included if the original query inclu ded it. The Object Count field indicates how many unique objects are included in the report. For each object included, the Object Id Object Estimator Type Object Time Stamp Object Geospatial Information and Object Attributes Information are included as appropriate. If a history of data is included, each of the Object Time Stamp Object Geospatial Information and Object Attribute Information will include a collection of values which constitute the history of object Query Object (s) Future State Message Re quest Id Query Time Object Count Object Id Object Attributes (optional)

PAGE 42

42 The Query Object(s) Future State message is sent to the knowledge store by a client which is interested in the future state of some object(s). The Request Id is used by the knowledge store to track the response. The Query Time field is used to indicate the point in time at which the future state of the object is of interest. The Object Count field indicates how many objects are included in the query. Each obje ct queried includes the unique Object Id and which Object Attributes (if any) are to be included in the response Report Ob j ect(s) Future State Message Request Id Query Result Object Count Object Id Object Time Stamp Object Geospatial Information Estimate Object Attributes Information Estimate (optional) The Report Object(s) Future State message is sent by the knowledge store in response to a Query Object(s) Future State message. The Request Id field is used to indicate which originating query this response is for. The Query Result field indicates the success or failure of the query. Object Count indicates how many objects are included in the report. Each object includes its unique Object Id the Object Time Stamp for the future state, the Object Geospatial Information Estimate and if requested, the Object Attributes Information Estimate Query Geospatial Bounds Message Request Id Object Attributes Information (optional)

PAGE 43

43 The Query Geospatial Bounds message is used by the knowledge store client to ask for the geometric bounds of the knowledge store. The Request Id is used to identify the query and its response. The Object Attributes Information field is optional. This field can be used to specify one or more attributes to filter the results. This causes the knowledge store to return the bounding geometry of only the objects that match the given attributes Report Geospatial Bounds Message Request Id Query Result Boundary Geo spatial Information Object Attributes Information (optional) The Report Geospatial Bounds message is sent in response to a Query Geospatial Bounds message. This message includes four fields. The Request Id field is used to identify which query this result is in response to. The Query Result indicates the success of failure of the input query. The Boundary Geospatial Information based on the query. If the result has been filtered by some attributes, the Object Attributes Information is included in the response Query Temporal Bounds Message Request Id Object Attributes Information (optional) The Query Temporal Bounds message is used by the knowledge store client to ask for the temporal bounds of the knowledge store. The Request Id is used to identify the query and its response. The Object Attributes Information field is optional. This field ca n be used to specify one or more attributes to filter the results. This causes the knowledge store to return the upper and lower timestamp of the objects that only match the given attributes

PAGE 44

44 Report Temporal Bounds Message Request Id Query Result Temporal Information Object Attributes Information (optional) The Report Temporal Bounds message is sent in response to a Query Temporal Bounds message. This message includes four fields. The Request Id field is used to identify which query this result is in respon se to. The Query Result indicates the success of failure of the input query. The Temporal Information boundary based on the query. If the result has been filtered by some attributes, the Objec t Attributes Information is included in the response The Statistics Based N th Order Polynomial Predictor The methods by which the future state of a value can be estimated, or predicted, are multitude. Many of the more popular methods are covered within th e literature review provided in Chapter Two. As discussed there, many of those methods, including Kalman Filters and most Neural Networks, incorporate a model of the object to aid in the prediction of the algorithm. For find an algorithm that was generic enough to be applied to a very large variety of data without a priori knowledge of the system model. To that end, the author has devised a unique algorithm called the Statistics Based N th Order Polynomial Predictor (SNOP P). SNOPP is a novel combination of real time data analysis and statistics to generate a polynomial which can be used to estimate the future state of any continuous time variant data. That is, for a small change in time, the change in the output is small. Systems exhibiting discontinuous behavior can be modeled, however large errors may be observed around any discontinuous point.

PAGE 45

45 SNOPP works to find a polynomial which best fits the trend of a given data set. Stated formally, the data set is the matrix D whi ch has size n 2: (3.1) The algorithm works by analyzing a given data set repetitively, attempting to fit a polynomial to the data at a series of different orders (1 st 2 nd th ). It also varies the length, or history, of information. By varying the history size, SNOPP can achieve stable results for long data trends, yet quickly react to changes in the data set. Three parameters govern the solution space of the algorithm, a maxim um order value, the window size and window count. The maximum order value is an upper limit on the order to which the algorithm will attempt to fit a polynomial. Window size is the number of data points which will be analyzed per solution iteration. Window count is the number of data windows to solve, which is the number of solutions to iterate through. Figure 3 2 shows the relationship between the window size and window count parameters for some hypothetical data set. The window size parameter should alway s be set equal to or greater than the maximum order value in ensure convergence of the solution of the polynomial. Once the three parameters are set, the algorithm continues as follows. SNOPP independently analyzes subsets of the original data set which a re defined by the window size and window count. For each subset, it seeks to find the best fit polynomial of up to the maximum order. First, a polynomial of the highest possible order (let k = maximum order) is fit to the data using the least squares fit m ethod. This polynomial is defined as, (3.2) The least squares method is based upon minimizing the sum of the residuals at each data point. The residual equation is given as,

PAGE 46

46 (3.3) The solution then, is to minimize with respect to each (3.4) The polynomial can also be described in matrix form as, where: and (3.5) In this form the solution for can be found by premultiplying by as, (3.6) which can be solved numerically or inverted directly if is well formed, resulting in: (3.7) This yields a k order polynomial that is the best fit to the given data sub set. However, it is plausible that one or more of the order terms are not statistically significant. That is, while the algorithm may have attempted to fit a 5 th order polynomial and found said solution, the best fit to the d ata may actually be a 2 nd order polynomial. SNOPP uses a Type I Sum of Squares statistical test to determine exactly what order polynomial best approximates the given data. The Type I Sum of Squares evaluates the difference between a polynomial and its low er order equivalent for each polynomial up to the maximum order. For each test, the null hypothesis is that

PAGE 47

47 while the alternative hypothesis is This test is done using the following as the F Value: (3.8) Here MSE is the Mean Squared Error of the original k order polynomial and is found by where is the mean of the dataset. (3.9) (SS Model ) i is defined as the Sum of Squares of the model or residuals and is calculated as where (3.10) It is important to note here that is the value obtained from a least squares fit of a polynomial of i order. That is to say a polynomial must be fit to the original dataset for every order 1 to k Using equation (3.8) a value for F i can be found. This value is evaluated against the standard F Distribution, which is a one tailed continuous distribution. T he F Distribution is evaluated with two degrees of freedom. The first degree of freedom is equal to 1 because this test is always evaluating an equation with one more term of variance than the former, The second degree of freedom is equal to the d egree of freedom of the MSE value, or The alternative hypothesis is rejected if the probability of it being untrue is above some critical value. Typically a very large probability is applied to this test such as 20%. If the test reveals that a particular has a high probability of being equal to zero, then that ter m and all higher level terms are considered zero.

PAGE 48

48 This yields a value for exactly what order polynomial best fits the given data set (let p equal this order). This yields a polynomial of order p for the given window size. SNOPP then repeats this polynomial fit and analysis a total of window count times. Each time, the data set grows by window size data points. This provides a number possible polynomials, each statistically determined to be the best fit for their given data set. The algorithm then selects th e polynomial which has the lowest order solution. In case of a tie, the solution with the largest data set is used. The lowest order polynomial is chosen because higher order polynomials tend to fit data well within the dataset, but diverge wildly when use d for extrapolation, which is the goal of the future state estimator. The data set with the largest history is used because with larger data sets provide more statistical significance and a more stable trend for data extrapolation. By combining small windo w size with a large number of window counts, long, stable trends in the data can be accommodated, but changes in that trend can be quickly detected and adjusted to by the smaller datasets which represent the most recent history of the data. A numeric examp le of the SNOPP algorithm is included in Appendix C of this dissertation for clarity.

PAGE 49

49 Figure 3 1 Overview of the input and output messages associated with the Spatiotemporal World Model Architecture.

PAGE 50

50 Figure 3 2 Window Size and Window Count are two governing parameters for the Statitics Based N th Order Polynomial Predictor. Here the relationship between the dataset, Window Size and Window Count is shown.

PAGE 51

51 CHAPTER 4 IMPLEMENTATION DETAI LS In this chapter, the author outlines the technical details of a reference implementation of the architecture and prediction algorithm presented in the previous chapter. Many technical challenges existed in implementing the theoretical Spatiotemporal World Model and the Statistics Based Nth Order Polynomial Predictor. Discussion of those challenges and the way each was overcome is detailed herein. The JAUS w orl d model vector knowledge store message s et section discusses the d etails of the JAUS messages implemented to embed the theoretical architecture into the resea rch environment available. The database selection and d esign section discusses the geospatial database selected for use in this implementation and the design of the ty of prediction techniques, a g eneric p redictor interface was designed and is described in the sec tion titled the same. The p olynomial p redictor section outlines the details of the reference impl ementation of th e SNOPP algorithm. Lastly, the world model vector knowledge s tore section details how the various pieces were brought together into a single JAUS component. JAUS World Model Vector Knowledge Store Message Set The Center for Intelligent Mach ines and Robotics (CIMAR) has been involved in the activities of the Joint Architecture for Unmanned Systems (JAUS) Working Group for several years through sponsored work with the Air Force Research Lab (AFRL) at Tyndall Air Force Base. As such, the bulk o f the research work done at CIMAR focuses on the usability and extension of JAUS to solve a large variety of ever increasingly complex robotic system problems. As discussed in Chapter 2, recent work within the JAUS Working Group has focused on the area of primarily focused on the query and storage of static geospatial data objects. Therefore the

PAGE 52

5 2 research presented herein was focused on extending the existing World Model Vector Knowled ge Store (WMVKS) component to support the generic Spatiotemporal World Model Architecture defined in the previous chapter. This approach provided a number of key advantages. Firstly, a vast and reliable collection of software which has been developed at CI MAR to aid in the development and deployment of into an existing JAUS robotic platform for field testing and evaluation. Lastly, a wealth of knowledge about the JA US architecture and its capabilities allowed the author to focus more on application details and less on basic infrastructure of the system. The JAUS WMVKS message set is based upon three primary entities; the object geometry, feature classes and feature c lass attributes. The object geometry can be one of a point, line or polygon along with the associated global coordinates of each vertex of the geometry. The current WMVKS message set only supports the global latitude and longitude coordinate system based o n the WGS84 ellipsoid. This is the primary global coordinate system defined for use in JAUS. Associated with each object is also one or more feature classes. Feature classes are used to categorize the geometries. Examples of feature classes may include roa ds, terrain, occupancy, trees, etc. The feature classes can be closely associated with different layers of information in typical geospatial information (GIS) system. Associated with each feature class is a single feature class attribute. A feature class a ttribute can be of several different types (byte, integer, float, RGB, etc). These attributes provide more detailed data about the feature class they associated with i of the object it is attached to. In the reference implementation, both objects and their feature class

PAGE 53

53 attributes can be considered dynamic by the WMVKS. The message set suppo rts the ability to designate separate estimation algorithms for each object and each feature class attribute. This allows a large variety of objects and feature classes to be handled by the component. In order to successfully deploy the WMVKS as a Spatiote mporal World Model, the existing WMVKS message set had to be modified and extended to support a large variety of new data. Table 4 1 lists the various messages and implemented in the WMVKS component developed for this research. Messages which did not exist in the original WMVKS message set and have been added for this research are indicated in the appropriate column. The message set definition is included as Appendix A. work. These include the Query Vector Knowledge Store Objects Future State, Report Vector Knowledge Store Objects Future State, and Modify Vector Knowledge Store Objects messages. The original WMVKS message set did not provide an interface to allow a client to change or original WMVKS message set also did not address the ability to query about time variant data. To that end, the query and report future state messages we re developed. These messages extend the functionality of the original knowledge store, adding the ability to reason about the future of an object or its attributes. Database Selection and Design A significant challenge of world modeling task was to impleme nt some methodology to are relational or object relational database management systems (DBMS) which specialize in the handling of spatial data. The DBMS approa provided a number of advantages such as

PAGE 54

54 persistent storage capabilities, high level (e.g. SQL) interface languages, availability of robust and complete spatial query capabilities, support of temporal data types and queries, and portability of code between projects. A constraint of the development environment at CIMAR is that all the robotic systems run on some version of the Linux operating system. This is due to a number of factors which are themselves o utside the scope of this discussion. However, in the selection of a candidate spatial database technology, it was a requirement for the purposes of this work. The author was also interested in attempting to accomplish the goals of the work through the use of an open source implementation. While various DBMS technologies are available cheaply or for free to the DBMS of choice could cost significantly more. See Table 2 1 for more details about various Spatial DBMS technologies. PostgreSQL is an open source object relational DBMS. PostGIS is a collection of data spatial knowl edge store. PostGIS is also available open source. A companion software library, Geometry Engine Open Source (GEOS) [48] is a C/C++ API which implements the OpenGIS [29] This is important because the bulk of the work done at CIMAR is done in the C/C++ programming languages. Pos tgreSQL, PostGIS and the GEOS library provide the core geospatial capabilities of the implementation. PostgreSQL also supports data types for temporal data. This allows support for the storage and

PAGE 55

55 querying of time stamps in the database, providing the nece ssary temporal capabilities for the implementation. The design of a database schema was also required. The goal was to easily and efficiently store a large variety of objects within the database which could be quickly and easily queried. Two tables were cr eated to store the objects and their related feature classes. Figure 4 1 shows the Entity Relationship Diagram for the database design and the various field names for each table. The Objects table consists of 9 fields: object_id, object_type, buffer_meter s, object_timestamp, utm_init_longitude, estimator_type, estimator_solution, vector_object, and geometry. Table 4 2 lists these fields, their PostgreSQL data type and a brief description of each. The FeatureClass table consists of 7 fields: object_id, fc_ id, fc_estimator_type, fc_estimator_solution, fc_data_type, attribute and attribute_timestamp. Table 4 3 lists these fields, their PostgreSQL data types and a brief description of each. To ease in the use of these two tables, a unique SQL VIEW is construct ed in the database. This is constructed as a SQL JOIN of the two tables with the following statement: CREATE VIEW snapshot AS SELECT FROM objects JOIN featureclasses USING (object_id); This allows quick and easy access to the combination of data fr om the two tables and is used extensively in the various query responses. Generic Predictor Interface One key element to the overall Spatiotemporal World Model Knowledge Store Architecture is the ability to easily deploy a variety of prediction algorithms. It was important that the reference implementation address this in a flexible and robust manner. To that end, the Generic Predictor Interface was developed. The Generic Predictor provides a common set of

PAGE 56

56 functionality that all predictors must implement. T he methods supplied by the interface include solver, estimator, toBuffer and fromBuffer. The interface also provides common storage for the data set that the prediction algorithm is concerned with. It also provides a storage container for any specific para meters that a specific predictor needs. One common configuration parameter is included in the interface. This is a value for the minimum number of data points the predictor can solve for. This is important because some prediction algorithms are unable to f ind a solution if less than the minimum number of data points are provided. (e.g. a linear solution is not viable given a single data point) The estimator method simil arly provides a common method of retrieving the value of a given predictor for a given data point. Lastly, the toBuffer and fromBuffer methods provide a mechanism by which a specific predictor can pack its critical data into and from a byte buffer. This is used in conjunction with the estimator_solution fields in the database to provide fast, edictor, a linear predictor and a polynomial predictor. The implementation details of the polynomial predictor are covered in the next section. Details of the static and linear predictors are covered in the Dynamic World Model Vector Knowledge Store sectio n later in this chapter. Excerpts of the Generic Predictor code are provided in Appendix B. Polynomial Predictor Implementation The Polynomial Predictor is an implementation of the Statistics Based N th Order Polynomial Predictor (SNOPP) described theoretic ally in Chapter 3. One key feature of the polynomial predictor is the incorporation of a number of configuration parameters that control its behavior. These configuration parameters are listed in Table 4 4. The Window Count and

PAGE 57

57 Window Size parameters align with the ones outlined in the discussion of SNOPP in the previous chapter. The Minimum and Maximum Order values provide limits on the solution provided by the predictor. The P Critical Value parameter is used to control which level of confidence is impose d on the alternative hypothesis test. The Minimum Point Count parameter is inherited from the Generic Predictor and indicates the minimum number of points needed to evaluate the predictor. This is usually driven by some combination of Window Size and/or Ma ximum Order. The predictor makes use of the GNU Science Library (GSL) [49] f or its multivariable least squares fit functions. The gsl_multifit_linear() method fits a function of the form The vector is formed from the collection of values from the object or attribute being predicted. Each row of the matrix is the corresponding timestamp value, raised to the powers 0 through k This casts the multivariable least squares regression in the form of a k th order polynomial, i.e. This predictor also makes use of GSL to e valuate the F Value obtained from equation (3.8). To evaluate this, the cumulative distribution value Q(x) is found using the gsl_cdf_fdist_Q () function. This value is evaluated against the P Critical Value provided to analyze the alternative hypothesis ou tlined in Chapter 3. This yields the statistically significant order solution ( p ). For each window (defined by Window Count) the Polynomial Predictor compares the output solution for As outlined in Chapter 3, the solution with the lowest order and grea test window size is chosen. To aid in the ease of use by the WMVKS, the Polynomial Predictor implements the Generic Predictor Interface discussed previously. To do so it must provide functions for the solver, estimator, toBuffer and fromBuffer methods. Th e solver and estimator functions are straight forward and either solve for the prediction equation, or estimate using that solution. The

PAGE 58

58 toBuffer method packs a collection of solution critical values into a byte buffer. These include nd the vector. The fromBuffer method does the inverse operation. This provides a quick and flexible way to store the vital information for future state queries. Dynamic World Model Vector Knowledge Store The purpose of this chapter, thus far, has been to outline the building blocks that make up the World Model Vector Knowledge Store (WMVKS) that was implemented to support the 2 shows an outline of the WMVKS as implemented. The WMVKS was implemented as a JAUS Component based on a common component template developed at CIMAR for previous JAUS work. This allowed the author to focus efforts on the implementation of the WMVKS behavior and not the overall JAUS architectural requirements. Each message outlined in Table 4 1 needed to be i mplemented to be used by the WMVKS. The code to implement the various messages is also based on a flexible skeleton created previously at CIMAR for JAUS messages. The WMVKS is an event driven component. That is, it only has to process data as requests and queries are received and has no observed periodic behavior (outside the normal JAUS periodic behavior which is a 1 Hz Report Heartbeat Pulse message). Therefore, its state machine is rather simple. JAUS defines several valid states of a given component. Ho wever, the WMVKS typically transitions straight to READY unless some error or fault is detected. When a message is received, the component does whatever work is necessary to process and answer that request. As discussed previously, a key feature of the overall Dynamic World Model Knowledge work, three unique prediction algorithms were implemented; a static pre dictor, a linear predictor and the polynomial predictor discussed previously. Each predictor implements the Generic

PAGE 59

59 Predictor interface to allow ease of use by the WMVKS. The static predictor is the most simple. It is used as the prediction algorithm for a ny static object or attribute and is included for completeness in the design. It stores the latest value from the dataset as the solution and returns this as the estimated value for any point in time. The linear predictor implements a simple least squares linear fit to a set of data. For the implementation used, up to ten data points are used to fit the data. The linear fit predictor stores its result in a similar manor to the polynomial predictor through the use of the toBuffer and fromBuffer methods of th e Generic Predictor interface. The least squares approximation is done using the gsl_fit_linear() method from the GSL library. The static and linear prediction algorithms were implemented to provide robust solution future state queries. While the polynomia l predictor was the primary prediction method developed and tested for this dissertation, it was realized that no valid solution would exist for data sets prior to the minimum point count defined in the polynomial predictor. Rather than handle this as a sp ecial case in that predictor, the author made use of the flexible predictor capabilities to implement lower count prediction techniques. Therefore, when a data set is made up of a single value, the static predictor is automatically invoked, regardless of t he estimation type identified (the original estimation type value is preserved and left unmodified in the database record). If more than a single data point is present, but less than the specified ed. This not only allowed a more robust solution to state prediction, it also increased the capability of the WMVKS by providing three prediction algorithms instead of just the one. One of the more complex messages handled by the WMVKS is the Create Vecto r Knowledge Store Object(s) message. This message may contain one or more objects with various attributes which must be handled by the WMVKS and added to its current collection of

PAGE 60

60 objects. The code for this procedure is included as part of Appendix B. The following is a step by step explanation of this process: 1. byte buffer into its specific data structure. 2. For each object, the object id bit is checked to see if it has been included, if not, the next valid value is queried from the database. 3. Each object is translated from its data structure into an SQL INSERT statement for storage into the Objects table of the database: INSERT INTO objects(
) VALUES (); 4. Each feature class included with an object is similarly converted into an SQL INSERT statement for insertion into the FeatureClass table of the database. INSERT INTO featureclass(
) VALUES (); 5. If the confirmation has be en requested, a Report Vector Knowledge Store Objects Creation message is sent back to the originating client with a list of the object ids which have been stored. Similar to the create message, the Modify Vector Knowledge Store Object message invokes a c omplex process in the WMVKS. This process involves the various prediction algorithms; invoking them to provide solutions for future state estimation. Each time an object is modified, new information is included in the state history. This allows a new, upda ted solution to quickly the various predictors may be able react to changes in the observed behavior and account for it in the future state estimator. Using the pre assumption may not alway s be true. Since the prediction algorithms implemented in the WMVKS are only concerned with the state of a single time varying dataset, the estimation of

PAGE 61

61 future geospatial position is broken down into two datasets (Easting vs. Time and Northing vs. Time). The position solution is then the combination of two separate prediction solutions. Position estimation is done in the Universal Transverse Mercator (UTM) coordinate system rather than the Latitude, Longitude and Altitude (LLA) coordinate system so that Eu clidean Geometry can be applied. Projection between coordinate systems is provided by a UTM library The code to handle receipt of a Modify Vector Knowledge Store Objects message is also included in Appendix B, but a step by step account is provided here for clarity: 1. byte buffer into its specific data structure. 2. The object id included in the received message is checked against the data base. If the target object does not exist, an error may be reported. 3. The vector_object data field is retrieved from the database through the use of a SQL SELECT statement and used to create a copy of the database object in memory: SELECT vector_object FROM objects WHERE object_id = ; 4. The information contained in the modify message is compared to the information retrieved from the database. Certain fields (such as buffer_meters) are replaced if modified. Modifica tion of values in the database is done using a SQL UPDATE statement: UPDATE objects SET buffer_meters = WHERE object_id = ; 5. In the case of a dynamic object or attribute, the WMVKS adds the included information to the existing o bject or attribute history, as appropriate. If the value being modified is considered static, the modification message is used to replace the current value with the modified one. 6. The modified and/or updated version of the vector_object information is gene rated and updated in the appropriate field of the database.

PAGE 62

62 7. Since object information has changed, the prediction solution must be updated. For each feature class, the appropriate predictor (static, linear or polynomial) is called and the solution is store d in the fc_estimator_solution field of the FeatureClass table. For every object, the estimator_solution is populated with the prediction solution for both the Easting (X) and Northing (Y) values. 8. If the confirmation bit has been requested, the WMVKS resp onds to the originating client with a Report Vector Knowledge Store Object Modification message. The create and modify messages provide the primary methodology for a data provider (such as a sensor) to insert or change data within the WMVKS. However, othe r clients may be primarily interested in the consumption of that information. Clients interested only in the current state of an object or some attribute can use the Query Vector Knowledge Store Object(s) message. This message retrieves the object from the database through a SQL SELECT statement. This query message is flexible in the way it can be constructed, from boundary queries to specific objects and/or attributes The other approach that can be employed is to query the future state of an object or attr ibute. This is done through the use of the Query Vector Knowledge Store Object(s) Future State message. This message can be used in two ways, designated by the query type field. In the he first, called Absolute Query, the timestamp provided is considered a n absolute time in the future at which to query the state of an object and its attributes. The other, Relative Query, is used to specify some time offset which will be added to the current time at which the WMVKS receives the message. This feature was adde d to the message to ease the use of registered periodic events (called Service Connections in JAUS, this mechanic is outside the scope of the [1] ). In either case, the query time is used by the appropriate predictor to generate an estimate for the future value of the object and its attributes. The code for handling a Query Ve ctor Knowledge Store Object(s) Future State message is also included in Appendix B. An outline of this code is provided below:

PAGE 63

63 1. The received Query Vector Knowledge Store Object(s) Future State message is ucture. 2. For each object specified in the query, the database is checked to ensure an object with that id value exists. 3. For each object queried, the query time value is setup, either using the absolute or relative time method. Note, this means multiple fu ture state queries can be setup with different query times. The advantage of this is the ability to construct a query for the future state of a single object at multiple query times or offsets using a single message. 4. For each object queried, the appropria te object predictor solution (in byte buffer format) is read from the database using an SQL SELECT statement: SELECT estimator_solution FROM objects WHERE object_id = ; 5. This object predictor solution is unpacked appropriately (into bot h an X and Y predictor) and then used to estimate the position of the object at the given query time using the estimate function. 6. For each object queried, the appropriately queried attributes are also estimated. To do so, the attribute estimator solutions are first retrieved from the database using a SQL Lastly, state estimates are conducted using the appropriate query time and estimator method. 7. tion and any appropriate attribute estimations are then returned to the querying client via a Report Vector Knowledge Store Object(s) Future State message. The WMVKS component provides a robust implementation of the Spatiotemporal World Model architecture outlined in Chapter 3. It does so by combining the capabilities of the JAUS World Model Vector Knowledge Store message set, the advantages of the PostgreSQL database, and the capabilities of an array of unique prediction techniques. The techniques and approach outlined above provide a unique solution to the problem of storing and querying the future state of a dynamic object or attribute within the JAUS archi tecture. Many of the same techniques could easily be applied to any other robotics architecture, provided the messaging interface could be modified to support the message interface introduced in Chapter 3.

PAGE 64

64 Table 4 1 JAUS WMVKS Message Set as implemented i n the reference World Model Vector and extended JAUS messages are listed. Message Name JAUS Command Code New Message Input / Output Message Request Vector Knowledge Store Object Id Block F120h Input Assign Vector Knowledge Store Object Id Block F320h Output Create Vector Knowledge Store Objects F121h Input Report Vector Knowledge Store Objects Creation F321h Output Modify Vector Knowledge Store Objects F122h Input Report Vector Knowledge Store Object Modification F322h Output Delete Vector Knowledge Store Objects F123h Input Report Vector Knowledge Store Objects Deletion F323h Output Query Vector Knowledge Store Objects F130h Input Report Vector Knowledge Store Objects F330h Output Query Vector Knowledge Store Geospatial Bounds F132h Input Report Vector Knowledge Store Geospatial Bounds F332h Output Query Vector Knowledge Store Temporal Bounds F133h Input Report Vector Knowledge Store Temporal Bounds F333h Output Query Vector Knowledge Store Objects Future State F134h Input Report Vector Knowledge Store Objects Future State F334h Output

PAGE 65

65 Table 4 2 Object table data fields, PostgreSQL type and description. Field Name PostgreSQL Type Description object_id INT4 PRIMARY KEY Unique object id value assigned to each object. object_type INT2 Value of the JAUS WMVKS object type ( i.e. point, line or polygon). buffer_meters FLOAT Size of an optional buffer around the geometry. object_timestamp TIMESTAMP Last time stamp value associated with the object geometry. Used for temporal queries. utm_init_longitude DOUBLE PRECISION Value, in radians, of the longitude of the first point associated with this object. This is provided to ensure proper projection between LLA and UTM for an object. estimator_type INT2 Value of the estimator type associated with this geometry. estimator_solution BYTEA Hex string of the binary array of the estimator solution. Used to quickly provide solutions to future state queries. vector_object BYTEA Hex string of the binary array of the JAUS Vector Object structure. G eometry GEOMETRY PostGIS geometry column used to store the latest geometry value of the object. Used for geospatia l queries.

PAGE 66

66 Table 4 3 Feature Class table data fields, PostgreSQL types, and description. Field Name PostgreSQL Type Description object_id INT4 PRIMARY KEY Unique object id value assigned to each object. fc_id INT4 PRIMARY KEY Feature Class id value, non unique. However, there can only be one fc_id value per object_id value. fc_estimator_type INT2 Value of the estimator type associated with this geometry. fc_estimator_solution BYTEA Hex string of the binary array of the estimator solution. Used to quickly provide solutions to future state queries. fc_data_type INT2 Value of the enumerated data type of this feature A ttribute INT8 Feature Class Attribute value, stored as an 8 byte integer. attribute_timestamp TIMESTAMP Last time stamp value associated with the object geometry. Used for temporal queries. Table 4 4 Polynomial Predictor configuration parameters Parameter Name Description Minimum Point Count The minimum number of data points for which the predictor can successfully be used. This is usually dependent on the Minimum / Maximum Order parameters and/or the Window Size parameter. Minimu m Order This is the minimum order polynomial the predictor will analyze for a solution. Usually 0 or 1. Maximum Order This is the maximum order polynomial the predictor will analyze for a solution. Higher order polynomials can give better results in dynamic situations, and lower order ones are more stable in extrapolation. Window Size This is the size of each data window to analyze. Window Count This is the number of data windows, each Window Size larger than the previous, to analyze. P Critical Value This value is used to evaluate the statistical significance of a particular order.

PAGE 67

67 Figure 4 1 Entity Relationship Diagram of WMVKS Database

PAGE 68

68 Figure 4 2 World Model Vector Knowledge Store Implementation Diagram.

PAGE 69

69 CHAPTER 5 TESTING AND RESULTS Previous chapte rs have dealt with the background and implementation details of the presented. To test the World Model Vector Knowledge Store (WMVKS) component a component capable of behaving as a source of dynamic information was required. Th e l aser tracking smart s ensor section covers a component devel oped to address this need. The t est procedure and p lans chapter describes the various test scenarios devised and how e ach was condu cted. Lastly, the test r esults section provides an overview of the results obtained by the Laser Tracking Smart Sensor In order to properly test the WMVKS and its implementation, a source of dynamic ork, a simple laser based object tracking algorithm was implemented to collect real world test data which could used to test the knowledge store. The Laser Tracking Smart Sensor (LTSS) was developed based on a combination of previous research activities at CIMAR. In the spring of 2003, a laser based tracking algorithm was developed by the author and the Ground Vehicle Competition (IGVC). This challenge was to follow at s ome fixed distance a human driven lawn tractor. However, the algorithm has shown effectiveness at tracking and following a number of objects including other robots, humans and larger vehicles. The laser tracking algorithm works by first receiving a user i system and identifies the object to be tracked (Figure 5 1a). The system then searches for all neighboring points within some threshold distance to the object. Once all neighboring points are

PAGE 70

70 identified, a bounding box around the col lection is established (Figure 5 1b). On successive laser scans, the system uses an estimated bounding box to seed itself and repeat the threshold based search. The system is controlled to allow the collection of points to grow and shrink at some user defi ned rate. the velocity of the object. This velocity is in turn used to estimate the future position of the object at successive laser scans. Due to the fast (35 70 Hz) rate at which laser scans occur, a linear velocity prediction has yielded adequate results. The LTSS algorithm has been shown to be incredibly capable at not only tracking a visible dynamic object, but estimating and reacquiring the object if it travel s through the shadow of another object. Figure 5 2 shows the LTSS algorithm in action. The selected object is shown in orange while the current and future bounding boxes are shown in blue and green respectively. The estimated velocity vector is also shown. the only vehicle to complete the course at the competition. Figure 5 3 show s the TailGator platform on the course following a human driven lawn tractor. More recent work has been done by the author to integrate this laser algorithm into the JAUS system architecture onboard the NaviGATOR. For the DARPA Grand Challenge contest, CIM AR developed a common sensor architecture called Smart Sensors. The LTSS is based on this architecture which allows easy interfacing with the existing JAUS infrastructure onboard the NaviGATOR. More information about the Smart Sensor architecture can be fo und in [50]

PAGE 71

71 The IGVC laser algorithm was integrated into a smart sensor and interfaced to the planar laser mounted on the front of the NaviGATOR. Figure 5 4 shows the output of this Smart Sensor and provides a brief description. This setup was used track a truck driving in front of the NaviGATOR as a test location near the university. These tests provided a collection of data used to evaluate the performance of the WMVKS. Figure 5 5 shows the test setup with the NaviGATOR and the truck used as the tracked object. Test Procedure and Plans The LTSS data was used to test the WMVKS and its associated algorithm s. For the position and a timestamp for each iteration of the LTSS. Also logged at the same time were the ded a variety of time variant data which could be used to evaluate the performance of the WMVKS. Two test setups were devised. In the first test, the NaviGATOR was stationary while a moving object passed in front of it. This object was detected, then track ed by the LTSS and its position logged. Since the NaviGATOR is stationary for this test, it position, velocity and heading data is not used in the 5), the NaviGATOR is driven some distance behind a large truck in a looped course. The truck is detected and tracked throughout the and heading. Each test was performed five times. The log files were later taken and played back in real time to the WMVKS and the results of the prediction algorithms recorded. To test the capabilities of the WMVKS, these log files were used to analyze five different test scenarios. Each scenario is described below along with a respective test plan.

PAGE 72

72 Test Scenario 1: Tracked Object Using Polynomial Predictor from Stationary Platform In this scenario, the tracked object is moving while the NaviGATOR is stationary. It demonstrates basic behavior of the tracking algorithm and WMVKS performance. The polynomial predictor is used to estimate the future position of the tracked object one second, two seconds, three seconds, four seconds and five seconds in the future. Table 5 1 outlines the test plan; included therein is the test purpose, hypothesis, expected results, test design and logged data. Test Scenario 2: Tracked Object Using Polynomial Predictor from Moving Platform In this scenario, the tracked object is moving while the NaviGATOR is following it at some distance (both vehicles a re human driven for this test). This test demonstrates performance of the WMVKS for a common scenario, which is tracking objects moving around the vehicle while the vehicle itself is in motion. The polynomial predictor is used to estimate the future positi on of the tracked object one second, two seconds, three seconds, four seconds and five seconds in the future. Table 5 2 outlines the test plan; included therein is the test purpose, hypothesis, expected results, test design and logged data. Test Scenario 3 : Tracked Object Using Linear Predictor from Moving Platform In this scenario, the tracked object is moving while the NaviGATOR is following it at some distance (both vehicles are human driven for this test). This test is done in contrast to scenario two i n using the same inputs but analyzing it using the linear predictor instead. The linear predictor is used to estimate the future position of the tracked object one second, two seconds, three seconds, four seconds and five seconds in the future. Table 5 3 o utlines the test plan; included therein is the test purpose, hypothesis, expected results, test design and logged data.

PAGE 73

73 Test Scenario 4: Velocity Attribute Using Polynomial Predictor In this scenario, the WMVKS is used to predict the future state of a feat ure class attribute State Sensor (a standard JAUS component) durin g the test runs described previously. The polynomial predictor is used to estimate the velocity of the NaviGATOR one second, two seconds, three seconds, four seconds and five seconds in the future. Table 5 4 outlines the test plan; included therein is the test purpose, hypothesis, expected results, test design and logged data. Test Scenario 5: Heading Attribute Using Polynomial Predictor In this scenario, the WMVKS is used to predict the future state of a feature class attribute which represents the heading (or orientation) of some object. Data used for this test was collected from the Global Position Sensor component (a standard JAUS component) onboard the NaviGATOR. The polynomial predictor is used to estimate the state of the attribute one second, two sec onds, three seconds, four seconds and five seconds in the future. Table 5 5 outlines the test plan; included therein is the test purpose, hypothesis, expected results, test design and logged data. Test Results In this section, the data collected for each t est scenario will be analyzed and presented. Each test scenario was conducted five times. In this chapter, only one of each of these tests will be presented and discussed. Representative charts for each scenario are presented. Test Scenario 1 Results The p urpose of this test scenario is to show the position estimation capabilities of the WMVKS as implemented by the author. As discussed in Chapter 4, to estimate the position of an

PAGE 74

74 object, two polynomial predictors are employed, one for the easting (x) value and one for the northing (y) value. The position values are estimated in the Universal Transverse Mercator (UTM) coordinate system and converted into Latitude and Longitude prior to being sent to the LTSS. The test plan for this test is included as Table 5 1. Figure 5 6 show a typical plot of the easting vs. northing values used as source data for this series of tests. This chart shows that the tracked object moved primarily along the north/south axis with very little movement in the east/west direction. In figure 5 7 easting and northing values are plotted separately with respect to time. Figure 5 8 shows the easting vs. time plot with the one second, three second and five second prediction values. Figure 5 9 shows the northing vs. time plot with one second three second and five second prediction values. Figure 5 10 shows the combined easting vs. northing plot with the predicted values. Overall, test scenario 1 has demonstrated the ability of the WMVKS to handle dynamic position data, reason about the futu re state of that data and provide feedback to the LTSS. It has shown successful use of the polynomial predictor algorithm and the new JAUS world model message set implemented by the author. Test Scenario 2 Results The purpose of this test is to demonstrate the ability of the WMVKS to handle prediction of an object tracked by the LTSS over a much longer distance and time span. The test data covers over 3 minutes and 800 meters in length. Figure 5 11 shows a plot of easting vs. northing for a typical data set from this test. Figure 5 12 shows the same data plotted against time with easting on the left axis and northing on the right axis. Figure 5 13 provides a plot of just the easting value vs. time and the one second, three second and five second prediction v alues. Due to the scale of this plot, details are difficult to read. Therefore F igures 5 14, 5 15 and 5 16 provide closer views of the more

PAGE 75

75 critical sections of the plot. Figure 5 17 shows the northing vs. time plot with corresponding prediction values. Ag ain, F igures 5 18 and 5 19 are provided for clarity. Figures 5 20 and 5 21 show, graphically, the error in the 1 second predictor plotted on one axis with the actual and predicted values plotted on the other axis. These charts show that the polynomial pred ictor demonstrates large errors around changes in the data trend, but quickly reacquires the proper trend and provides good prediction results. The previous charts show graphically the error in the polynomial predictor An analysis was conducted which calc ulated the error in the predicted value for all five trials of this scenario; t he results of which are presented in Table 5 6. Here, the performance of the polynomial predictor can be shown to yield favorable results. The average error on the 1 second pred ictor is 0.68 meters for the easting value and 0. 60 meters for the northing values. Combined there is an overall 1.26 meter average error in the predicted position compared with the recorded true position 1 second in the future. The standard deviation valu e for the 1 second prediction was calculated to be 1.89 meters for the combined total of easting and northing. This means that if one assumes the error is normally distributed, 68% of the data falls within one standard deviation and 95% of the data is with in two standard deviations ( 3.78 meters here) from the average value Therefore for the 1 second predictor, 68% of the time, the error in the predicted value will be between 0.6 and 3.2 meters. Test Scenario 3 Results The purpose of this test is to show t he ability of the WMVKS to apply a different prediction algorithm to the same set of input data. Using the same data set used in scenario 3, the position of the tracked object is estimated using the linear predictor. As the same initial data set is used in both scenario 2 and 3, figures 5 11 and 5 12 again illustrate the source data. Figure 5 2 2 provides a plot of the easting value vs. time including the

PAGE 76

76 one second, three second and five second prediction values. Due to the scale of this plot, details are d ifficult to read. Therefore, figures 5 2 3 5 2 4 and 5 2 5 provide closer views of more critical areas of the plot. Figure 5 2 6 provides a plot of the northing value vs. time including the one second, three second and five second prediction values. Again, fi gures 5 27 and 5 28 are provided for clarity. The plots shown in figures 5 20 through 5 24 demonstrate the prediction qualities of the linear prediction algorithm. Compared to figures 5 13 through 5 19, the linear predictor does not yield results as accura te as the polynomial predictor. The linear predictor does exhibit a slightly better response time to changes in trends, but has a much larger spread in the data at any given time. This is most likely due to the rather small maximum point size used for this test (10). A smaller value provides quicker response to trend changes, but less stable results overall due to Again, an analysis of the error was conducted and the results are presented in Table 5 7. Figure 5 2 9 shows the error values with respect to time plotted alongside the actual and predicted values for the 1 second prediction of the easting value. Figure 5 30 shows the same plot for the northing data. The values calculated in the error analysis demonstra te that the polynomial prediction method provides better overall results in this test scenario than the linear predictor. The linear predictor has a 1.55 meter error on average in the easting data (for a 1 second prediction) and a 0.89 meter error in the n orthing data. This yields a combined average error of 2.44 meters for a 1 second prediction. This value is 1.2 meters more than the polynomial predictor for the same data set and prediction interval which is a 91% difference.

PAGE 77

77 Test Scenario 4 Results The feature class attributes and reason about the future state of those attributes. The velocity of the NaviGATOR over the course of a 3 minute drive is used as the sample dat a set. Figure 5 31 shows a plot of the velocity data vs. time which is typical of this test scenario. Figure 5 32 shows the same velocity vs. time plot combined with the predicted values one second, three seconds and five seconds in the future. Figure 5 33 shows a plot of the 1 second summary of the error results in included in Table 5 8. This test successfully demonstrates the ability of the WMVKS to predic t the future state of dynamic feature class attributes. It also demonstrates the ability to make use of estimation techniques for a variety of data. Here the polynomial predictor is u sed as the prediction algorithm and yields favorable results with an aver age error of 0.38 meters per second for the 1 second predictor and a standard deviation of 0.34 meters. Test Scenario 5 Results This last test scenario is designed to demonstrate something that was mentioned in Chapter 3 when the SNOPP algorithm was introd uced. This prediction algorithm does not make use of any parameters which indicate the nature or model of the data being predicted. Therefore, it cannot adequately handle discontinuous data. Heading data exhibits this discontinuous behavior anytime it cros ses the prediction algorithm when such a discontinuity is encountered. Figure 5 34 shows a plot of the heading data vs. time. Figure 5 35 shows the same data and included the predicted values for one second, three seconds and five seconds in the future. Figure 5 36 shows the 1 second error plot for the same data set. Error analysis results are included in Table 5 9.

PAGE 78

78 Before and after the discontinuity point (at approximately 133 seconds) the polynomial predictor shows prediction capabilities similar to those observed for other dynamic data sets. is wildly incorrect. In actuality it predicts va lues well outside the range of considered valid for heading values. The effect of this can be seen in both Figure 5 36 (with error values approaching 12 radians) and Table 5 9 where the average heading error even 1 second in the future is 0.26 radians but the standard deviation is 0.92 radians. Much of the error and size of the standard deviation can be attributed to the large errors encountered around the discontinuity point. Testing Summary The test scenarios described in this chapter hav e highlighted the primary functionality of the WMVKS. The JAUS message set introduced in chapter 4 has been shown sufficient to support a large variety of data types and test scenarios. The ability to predict using different prediction algorithms has also been demonstrated in test scenario 3. Lastly, the polynomial predictor has been shown to be flexible enough to be used for a large variety of data in the prediction of future state. It has yielded favorable results in tracking not only objects, but also at tributes as well. The linear prediction method was compared to the polynomial predictor and shown to yield less favorable results overall and in general provide much less stable behavior when used to predict future states.

PAGE 79

79 Figure 5 1 Laser tracking algorithm. In (a) the orange dot is the seed point while the algorithm searches and identifies close neighbors in yellow. In (b) the search has been completed and the object to be tracked is surrounded by the inner bounding box. T he outer bounding box is the estimated future position of the object which has been and current position are coincident. Figure 5 2 Laser tracking algorithm. The tracked object is highlighted in orange. The current bounding box is shown in blue which the estimated future position of the object is shown in green. The estimated velocity vector is also shown.

PAGE 80

80 Figure 5 3 The TailGator using t he tracking algorithm to follow a lawn tractor. The TailGator was the only robot at the 2003 Intelligent Ground Vehicle Competition to successfully complete the course. Figure 5 4 Laser Tracking Smart Sensor output. Tracked object shown in green with a black bounding box. Red cells are another non tracked object. Note the vehicle is located in the center of the grid and the vehicle heading is indicated by the small blue line (north west here).

PAGE 81

81 Figure 5 5 Laser Tracking Smart Sensor setup for collectio n of test data. The NaviGATOR (blue) is used to track the moving object (white truck) around a large test circuit. Table 5 1 Scenario 1 Test Plan Test Description In this test, an object detected by the LTSS will be inserted into the WMVKS. position will be updated by the LTSS while its future position will be estimated using the polynomial predictor. For this test, the object will be moving and the robotic platform will be stationary. Test Purpose To show the ability of the WMVKS to reason about and estimate the future geospatial position of an object using the polynomial predictor algorithm. Hypothesis position. Expected Results The WMVKS will successfully handl e a variety of create, modify and query messages to facilitate the creation and monitoring of an object and its future position. Test Design For this test, the NaviGATOR is stationary while a truck is driven in front of it. The LTSS identifies and tracks view. The position of the tracked object is updated in the WMVKS at 10 Hz. The future state of the object is queried at 5 Hz. Each time, the position 1 second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future is queried. The following configuration values are used in the polynomial predictor for this test: Minimum Point Count: 10 Minimum Order: 0 Maximum Order: 3 Window Size: 5 Window Count: 20 P Critical Value: 0.2 (20%) Logged Data The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future with appropriate timestamp for each report.

PAGE 82

82 Table 5 2 Scenario 2 Test Plan Test Description In this test, an object detected by the LTSS will be inserted into the WMVKS. be estimated using the polynomial predictor. For this test, both the object and the robotic platform will be moving. This test is much longer in length than test 1 and will show a larger variety in the data set. Test Purpose To show the ability of the WMVKS to reason about and estimate the future geospatial position of an object using the polynomial predictor algorithm. Hypothesis The polynomi position. Expected Results The WMVKS will successfully handle a variety of create, modify and query messages to facilitate the creation and monitoring of an object and its future position. Test Design For this test, the NaviGATOR is following a truck which driven in front of it. The LTSS identifies and tracks the truck as it moves. The position of the tracked object is updated in the WMVKS at 10 Hz. The future state of the object is queried at 5 Hz. Each time, the position 1 second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future is queried. The following configuration values are used in the polynomial predictor for this test: Minimum Point Count: 10 Minimum Order: 0 Maximum Or der: 3 Window Size: 5 Window Count: 20 P Critical Value: 0.2 (20%) Logged Data The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future with appropriate timestamp for each report.

PAGE 83

83 Table 5 3 Scenario 3 Test Plan Test Description In this test, an object detected by the LTSS will be inserted into the WMVKS. be estimated using the linear predictor. For this test, bot h the object and the robotic platform will be moving. Test Purpose To contrast the difference in results obtained using the polynomial and linear predictors Hypothesis The linear predictor will show less optimal prediction capabilities, but more quickly adjust to trend changes. Expected Results The linear prediction algorithm will show less optimal prediction capabilities, but perform better than the polynomial predictor around trend changes. Test Design For this test, the NaviGATOR is following a truck which driven in front of it. The LTSS identifies and tracks the truck as it moves. The position of the tracked object is updated in the WMVKS at 10 Hz. The future state of the object is queried at 5 Hz. Each time, the position 1 second, 2 seconds, 3 secon ds, 4 seconds and 5 seconds in the future is queried. The following configuration values are used in the linear predictor for this test: Minimum Point Count: 2 Maximum Point Count: 10 Logged Data The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future with appropriate timestamp for each report.

PAGE 84

84 Table 5 4 Scenario 4 Test Plan Test Description In this test, the velocity of the NaviGATOR as it drives some path will be attached to a point object as a dynamic feature class attribute. Its value will be updated and its future value will be predicted using the polynomial predictor. Test Purpose To show the ability of the WMVKS to reason about and estimate values for dynamic feature class attri butes. Hypothesis The polynomial predictor will yield favorable tracking of the velocity value. Expected Results The WMVKS will successfully handle a variety of create, modify and query messages to facilitate the creation and monitoring of a feature class attribute and its future state. Test Design Hz. The future state of the value is queried at 5 Hz. Each time, the position 1 second, 2 seconds, 3 seconds, 4 seconds and 5 sec onds in the future is queried. The following configuration values are used in the polynomial predictor for this test: Minimum Point Count: 10 Minimum Order: 0 Maximum Order: 3 Window Size: 5 Window Count: 20 P Critical Value: 0.2 (20%) Logged Data The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future with appropriate timestamp for each report.

PAGE 85

85 Table 5 5 Scenario 5 Test Plan Test Description In this test, the heading of the NaviGATOR as it drives will be attached to a point object as a dynamic feature class attribute. Its value will be updated and its future state will be predicted using the polynomial predictor. Test Purpose To show the behavior of the polynomial predictor when estimati ng the value of a non continuous signal. Hypothesis The polynomial predictor will exhibit poor tracking for discontinuous signals. Expected Results The polynomial predictor will reasonably predict the heading value between discontinuity points. However at the points of discontinuity the predictor will have very large errors. Test Design Hz. The future state of the value is queried at 5 Hz. Each time, the position 1 second, 2 seco nds, 3 seconds, 4 seconds and 5 seconds in the future is queried. The following configuration values are used in the polynomial predictor for this test: Minimum Point Count: 10 Minimum Order: 0 Maximum Order: 3 Window Size: 5 Window Count: 20 P Critical Value: 0.2 (20%) Logged Data The estimated position of the tracked object at 1 second, 2 seconds, 3 seconds, 4 seconds and 5 seconds in the future with appropriate timestamp for each report.

PAGE 86

86 Table 5 6 Error analysis of test s cenario 2 Easting (meters) Northing (meters) Combined (meters) 1 Second Average 0.676 0.600 1.276 0.967 1.372 1.892 1.935 2.744 3.784 2 Seconds Average 1.423 1.236 2.659 2.071 2.740 4.011 4.141 5.480 8.022 3 Seconds Average 2.479 2.102 4.581 3.682 4.556 6.924 7.365 9.111 13.849 4 Seconds Average 3.856 3.171 7.027 5.834 6.761 10.561 11.668 13.523 21.122 5 Seconds Average 5.516 4.454 9.971 8.495 9.351 14.890 16.989 18.702 29.781 Table 5 7 Error analysis of test scenari o 3 Easting (meters) Northing (meters) Combined (meters) 1 Second Average 1.553 0.891 2.444 1.472 1.086 2.008 2.944 2.172 4.016 2 Seconds Average 3.051 1.762 4.813 2.820 2.151 3.876 5.640 4.302 7.751 3 Seconds Average 4.696 2.743 7.440 4.274 3.375 5.943 8.549 6.750 11.887 4 Seconds Average 6.537 3.837 10.374 5.911 4.762 8.311 11.821 9.525 16.621 5 Seconds Average 8.553 5.027 13.580 7.688 6.252 10.921 15.376 12.504 21.842

PAGE 87

87 Table 5 8 Error analysis of test scenario 4 Speed (Meters per Sec) 1 Second Average 0.376 0.397 0.794 2 Seconds Average 0.584 0.625 1.250 3 Seconds Average 0.811 0.892 1.783 4 Seconds Average 1.067 Standard 1.210 2.419 5 Seconds Average 1.354 1.585 3.169 Table 5 9 Error analysis of test scenario 5 Heading (radians) 1 Second Average 0.265 0.915 1.831 2 Seconds Average 0.419 1.494 2.987 3 Seconds Average 0.587 2.199 4.398 4 Seconds Average 0.777 3.045 6.091 5 Seconds Average 0.983 4.026 8.051

PAGE 88

88 Figure 5 6 Easting vs. Northing Plot for Test Scenario 1. 0 50 100 150 200 0 50 100 150 200 Northing (m) Easting (m)

PAGE 89

89 Figure 5 7 Easting and Northing vs. Time Plot for Test Scenario 1. 0 50 100 150 200 250 74 76 78 80 82 84 86 88 0 2 4 6 8 10 12 14 16 Northing (m) Easting (m) Time (sec) Easting Northing

PAGE 90

90 Figure 5 8 Easting vs. Time Plot with Prediction Values for Test Scenario 1. 74 76 78 80 82 84 86 88 0 2 4 6 8 10 12 14 16 Easting (m) Time (sec) Easting 1 Sec Prediction 3 Sec Prediction 5 Sec Prediction

PAGE 91

91 Figure 5 9 Northing vs. Time with Prediction Values for Test Scenario 1. 0 50 100 150 200 250 0 2 4 6 8 10 12 14 16 Northing (m) Time (sec) Northing 1 Sec Prediction 3 Sec Prediction 5 Sec Prediction

PAGE 92

92 Figure 5 10 Easting vs. Northing with Prediction Values for Test Scenario 1. 0 50 100 150 200 0 50 100 150 200 Northing (m) Easting (m) Object Track 1 Sec Prediction 3 Sec Prediction 5 Sec Predictor

PAGE 93

93 Figure 5 11 Easting vs. Northing for Test Scenario 2.

PAGE 94

94 Figure 5 12 Easting and Northing vs. Time plot for Te st Scenario 2.

PAGE 95

95 Figure 5 13 Easting vs. Time Plot for Test Scenario 2. Boxes correspond to close ups of data which are shown in figures 5 14, 5 15 and 5 16 respectively.

PAGE 96

96 Figur e 5 14 Easting vs. Time with prediction values for test scenario 2. Close up of time period 44 64 seconds.

PAGE 97

97 Figure 5 15 Easting vs. Time with prediction values for test scenario 2. Close up of time period 120 140 seconds.

PAGE 98

98 Figure 5 16 Easting vs. Time with prediction values for test scenario 2. Close up of time period 168 18 8 seconds.

PAGE 99

99 Figure 5 17 Northing vs. Time with prediction values for Test Scenario 2. 5 18 5 19

PAGE 100

100 Figure 5 18 Northing vs. Time with prediction values for Test Scenario 2. Close up of time period 30 90 seconds.

PAGE 101

101 Figure 5 19 Northing vs. Time wi th prediction values for Test Scenario 2. Close up of time period 125 155 seconds.

PAGE 102

102 Figure 5 20 Easting Error vs. Time for test s cenario 2

PAGE 103

103 Figure 5 21 Northing Er ror vs. Time for test scenario 2

PAGE 104

104 Figure 5 22 Easting vs. Time with prediction values for test scenario 3. Close up plots of critical sections are provided in figures 5 2 3 5 2 4 and 5 2 5 as shown. 5 23 5 24 5 25

PAGE 105

105 Figure 5 2 3 Easting vs. Time with prediction values for test scenario 3. Close up of time period 44 6 4 seconds.

PAGE 106

106 Figure 5 2 4 Easting vs. Time with prediction values for test scenario 3. Close up of time period 120 140 seconds.

PAGE 107

107 Figure 5 2 5 Easting vs. Time with prediction values for test scenario 3. Close up of time period 168 188 seconds.

PAGE 108

108 Figure 5 2 6 Northing vs. Time with predicted values for test scenario 3. Close ups of highlighted areas are provided in figures 5 2 7 and 5 2 8 as indicated. 5 27 5 28

PAGE 109

109 Figure 5 27 Northing vs. Time with predicted values for test scenario 3. Close up of time period 32 95 seconds.

PAGE 110

110 Figure 5 2 8 Northing vs. Time with predicted values for test scenario 3. Close up of time period 125 155 seconds.

PAGE 111

111 Figure 5 2 9 Easting Error vs. Time for test scenario 3.

PAGE 112

112 Figure 5 30 Northing Error vs. Time for test scenario 3.

PAGE 113

113 Figure 5 31 Velocity vs. Time plot for test scenario 4.

PAGE 114

114 Figure 5 32 Velocity vs. Time plot with prediction values for test scenario 4.

PAGE 115

115 Figure 5 33 Error vs Time for test scenario 4.

PAGE 116

116 Figure 5 3 4 Heading vs. Time plot for test scenario 5.

PAGE 117

117 Figu re 5 3 5 Heading vs. Time plot with prediction values for test scenario 5

PAGE 118

118 Figure 5 3 6 Error vs. Time plot for test scenario 5.

PAGE 119

119 CHAPTER 6 FUTURE WORK AND CONC LUSIONS This dissertation has outlined the capable of providing advanced capabilities in coping with the storage and querying of dynamic information. Previous chapters have dealt with the specifics of the knowledge store, its implementation and some preliminary results. In this chapter, the author discusses opportunities for future work in the area and a summary of the dissertation and its contributions to the robotics community as a whole. Future Work of storing and querying dynamic information in a centralized knowledge store. However, there are a variety of other interesting challenges in the realm of world modeling which are still to be addressed. A significant problem is that of a common taxonomy b y which features and objects in the knowledge store can be understood. A main goal of the JAUS architecture is to promote interoperability amongst robotic platforms and between vendors. By adopting a common language and set of features, the information sto red in one robot may be more readily understood and used by another. This alludes to another significant challenge. That is of knowledge store synchronization. In a future world populated by hundreds if not thousands of autonomous and semi autonomous robot ic platforms, sharing information between those platforms will be necessary to success. World Modeling and geospatial information in general have significant challenges when trying to combine information from multiple sources. Questions especially arise wh en two vehicles have visited the same location but have differing interpretations. Or when visiting a place

PAGE 120

120 environment differently. Who to trust and why become significa nt questions which must be answered. The dynamic world model implemented and tested has shown the basic capabilities to handle a large variety of time Statistics Based N th Order Polynomial Predict or which was introduced. However, this estimation technique does not take into account any constraints which may be known about the data set. Other, more complex, estimation techniques can be implemented which may yield better results when applied to a spe cific data set. One technique which holds some promise is to combine state estimation with other knowledge available in the knowledge store; this is often done in the moving objects database field. For example, a vehicle, in most cases, travels along a spe cific roadway. If knowledge of a road network is available within the knowledge store, the specific geometry of that road a vehicle is on can be used to constrain the solution from the estimator. Other information that may be useful to state estimation tec hniques is the location of any objects or obstacles and the location of other known robots in the case of a multi robot system. Other estimation techniques, such as Kalman filters or neural networks, may benefit from more information about the nature of th e dataset. For example, while the polynomial predictor shows good results for most of the object tracking problem, it does exhibit large errors around changes in the data trends. Objects which move more rapidly or in tighter quarters could demonstrate even more sudden changes. Using a model based approach might yield better results in these environments through an understanding of the underlying dynamics of the system. This could allow the estimator to anticipate the future state based on the current state and the realm of possible or probable inputs to the system.

PAGE 121

121 The polynomial predictor implemented by the author has areas for future improvement as to a la rge variety of time variant data. Due to a lack of assumptions about the data or its behavior, the polynomial predictor works simply by observing the trend of a data set and extrapolating an assumption that a given trend will continue for some future time period. However, several key areas in the identification of the appropriate future trend could be improved upon. First, it is hypothesized that the use of the configuration parameters window size and window count could be done away with. Rather than iterat e on the data set looking for an appropriate history size, some method could be devised to identify the exact spot in the history to which a polynomial should be fit. The author attempted to solve this same problem by examining the time derivative of the d ata looking for local minimum and maximum points to indicate significant change in the data. This approach did not yield favorable results for the author, but may still be valid. Other approaches investigated but not test by the author were statistics base d to find some point at which the data shows a significant change or variation in trend. Another key part of the polynomial predictor algorithm is the evaluation of different the lowest order is selected as discussed previously. The reason the lowest order polynomial is selected is because higher order polynomials tend to exhibit much larger errors when used for extrapolation. However, it is possible that these h igher order polynomials might provide better estimation around trend changes because they address the nonlinearity of the data at those points. Therefore it is hypothesized that some other metric for the evaluation of the appropriate solution could be used and yield better results than the current method.

PAGE 122

122 The current implementation of the dynamic world model does not provide any reasoning or analysis of the estimator solutions. Rather, the solution, as found by a prediction algorithm, is reported as is. Man y times this is the proper behavior. However, some form of oversight or regulation functionality could provide added value to the system. For example, while an object may more hundreds of meters through the course of its observed behavior, it is very often not going to do so instantaneously, or near instantaneously. The capability in the world model to detect situations where a prediction has a high likelihood of being incorrect could either prevent those situations or at least inform a client that such an error may exist. Similar capabilities could (and perhaps should) be implemented in the prediction algorithms themselves, however building this into the primary world model framework would provide basic oversight to all prediction methods deployed. Similarl y, the current implementation requires that the client which generates the data identify the estimation technique to be used with a particular data set. However, no verification of the appropriateness of the selected technique is done. Adding the ability f or the knowledge store to analyze or monitor the accuracy of the estimator, in real time, may allow the knowledge store to alert clients that make use of that data when an inappropriate or significantly bad estimation technique is being used. Another appro ach may be to put the onus on the world model to select an appropriate estimation technique from a collection automatically. This would still allow for a large variety of techniques to be deployed for use, but exactly which method to use would be selected by the knowledge store using some criterion or other intelligent reasoning algorithm. Conclusion These ideas are only the tip of the iceberg for the future of world modeling. As the capabilities and expectations of robotic systems grow, the need for more a ccurate and powerful

PAGE 123

123 knowledge about the world around the system grows with it. Each new mission holds unique challenges which robotic engineers must solve. to storing and querying the state of dynamic information. It began with some background motivation and a simple problem statement. The world is moving, and the robots in it need to be capable of dealing with dynamic constraints. In Chapter 2, background literature i s presented which covers a range of topics from motion planning to spatial databases. Chapter 3 outlined the Chapter 3 is a technical discussion of a unique new app roach to estimating future state of a continuous time variant function which works in real time without a priori knowledge of the solution and Chapter 5 discus ses some results obtained through 5 test scenarios. observed by some sensing component, the architecture presented should be capable of handling a large variety of obje cts and attributes, any of which may be dynamic and changing. The work presented herein provides the start to a whole new series of challenges and solutions that may help propel autonomous and semi autonomous vehicles out of science fiction and into the re al world.

PAGE 124

124 APPENDIX A JAUS WORLD MODEL MES SAGE SET message set needed to be modified to include a number of additional fields a nd parameters. Also, a number of new messages needed to be implemented to take full advantage of the new architecture. What follows is a listing of the complete message set, including pre existing JAUS messages and any messages created or changed by the au thor. Local Data Types: JAUS Vector Object Input Messages: Code F021h: Set Vector Knowledge Store Feature Class Metadata Code F023h: Terminate Vector Knowledge Store Data Transfer Code F120h: Request Vector Knowledge Store Object ID Block Code F121h: Create Vector Knowledge Store Object(s) Code F122h: Modify Vector Knowledge Store Object(s) Code F1 23h: Delete Vector Knowledge Store Object(s) Code F130h: Query Vector Knowledge Store Object(s) Code F131h: Query Vector Knowledge Store Feature Class Metadata Code F132h: Query Vector Knowl edge Store Geospatial Bounds Code F133h: Query Vector Knowledge Store Temporal Bounds Code F134h: Query Vector Knowledge Store Object(s) Future State Output Messages: Code F320h: Assign Vec tor Knowledge Store Obje ct ID Block Code F321h: Report Vector Knowledge Store Object(s) Creation Code F322h: Report Vector Knowledge Store Object(s) Modification Code F323h: Report Vector Knowledge Store Object(s) Deletion Code F330h: Report Vector Knowledge Store Objects Code F331h: Report Vector Knowledge Store Feature Class Metadata Code F332h: Report Vector Knowledge Stor e Geospatial Bounds Code F333h: Report Vector Knowledge Store Temporal Bounds Code F334h: Report Vector Knowledge Store Object(s) Future State Code F424h: Report Vector Knowledge Store Data Transfer Termination

PAGE 125

125 JAUS Vector Object Most of the Vector Knowledge Store messages deal with the transport or modification of geospatial objects and their attributes. To that end, the author has modified the messages to include a new concept in JAUS, a local data type. The local data type, a Vector Object, consists of a series of message fields which are constant anytime the data type is used. Near future work in JAUS is to implement the complete message set in XML and one feature of the proposed XML sch ema is to support this kind of defined and reusable local data types. Another unique feature of the Vector Object is that is makes use of a local presence vector. While presence vectors have been used extensively in the JAUS message set in the past, never have they been used to control looping chunks of dynamic code. The Vector Object Presence Vector defines which fields are present in an individual Vector Object just as it would for a message. Table A 1 shows the Vector Object fields. Code F021h: Set Vecto r Knowledge Store Feature Class Metadata This message allows the creation, modification, or deletion of feature class metadata. The format of th ese metadata is not specified. It is left to the system designer to develo p a convention for doing this. Initia lly these data are to be used by the human operators. In the future a convention may be established Table A 2 shows the fields contained in this message. Code F023h: Terminate Vector Knowledge Store Data Transfer This message is a command class message that shall cause the vector knowledge store to immediately terminate the transfer of all current and outstanding data destined to the requesting component. Upon termination, the vector knowledge store shall send the requestor the Code F424h: Report Vector Knowledge Store Data Transfer Termination message. Code F120h: Request Vector Knowledge Store Object ID Block This message is used to request a collection of unique (and continuous) object ids. The knowledge store will attempt to

PAGE 126

126 set aside the requested block side object ids for use only by the requesting component. This allows a component to assign ids to objects itself and guarantee there will not be a conflict in the knowledge store. Table A 3 shows the fields contained in this message. Code F121h: Create Vector Knowledge Store Object(s) This message is used to add objects to the Vector Knowledge Store. This message allows multiple vector objects to be created using a single message. Field 1 of this message is the creation message properties. If b it zero is set, then the knowledge store shall return the Code F 321 h: Report Vector Knowledge Store Object(s) Creation message with the local request identifier specified in F ield 2 Field 3 indicates the number of vector objects included in the message. F ield 4 is the beginning of the definition of a single vector object. Each vector object is defined as outlined above in the Vector Object local data type. Table A 4 shows the fields contained in this message. Code F122h: Modify Vector Knowledge Store Objec t(s) This message is used to modify existing objects in the Vector Knowledge Store. This message allows multiple vector objects to be modified using a single message. Field 1 of this message is the message properties. If bit zero is set, then the knowle dge store shall return the Code F 322 h: Report Vector Knowledge Store Object(s) Modification message with the local request identifier specified in F ield 2 Field 3 indicates the number of vector objects included in the message. Field 4 is the beginning of the definition of a single vector object. Each vector object is defined as outlined above in the Vector Object local data type. Note that in this message, the Object Id field of each Vector Object is not optional and must be included. Table A 5 shows the f ields contained in this message. Code F123h: Delete Vector Knowledge Store Object(s) This message is used by a requesting component to delete objects from the Vector Knowledge Store. This message allows

PAGE 127

127 for a large number of objects to be removed from the knowledge store. It specifies the objects for removal in one of three ways; specific object id, object attributes or deletion region. Table A 6 shows the fields contained in this message. Code F131h: Query Vector Knowledge Store Feature Class Metadata This message shall cause the Vector Knowledge Store to reply to the requestor with the Code F 33 1h: Report Vector Knowledge Store Feature Class Metadata message with the requested data. There is a single field associated with this message. This field spec ifies the feature class metadata to return in the reply. There is also an option to return metadata for all feature classes present in the queried vector knowledge store. Table A 7 shows the fields contained in this message. Code F130h: Query Vector Knowl edge Store Object(s) This message allows the access to objects within the vector knowledge store. Table A 8 shows the fields contained in this message. Code F132h: Query Vector Knowledge Store Geospatial Bounds This message is used to request the spatial extents of a single feature class or of all feature classes within a vector knowledge store. The knowledge store shall respond with the Code 4A 23h: Report Vector Knowledge Store Geospatial Bounds message. The boundary is represented by two points which r epresent the rectangular region that just covers all of the data within the feature class layer or layers. Table A 9 shows the fields contained in this message. Code F133h: Query Vector Knowledge Store Temporal Bounds This message is used to request the t emporal extents of a single feature class or of all feature classes within a vector knowledge store. The knowledge store shall respond with the Code F 433 h: Report Vector Knowledge Store Temporal Bounds message. Table A 10 shows the fields contained in thi s message.

PAGE 128

128 Code F134h: Query Vector Knowledge Store Object Future State This message shall cause the Vector Knowledge Store to reply t o the requestor with the Code F334 h: Report Vector Knowledge Store Object Future State message with the requested data N ote: Relative Time is a time difference from the time the Vector Knowledge Store receives the message. Table A 11 shows the fields contained in this message. Code F320h: Assign Vector Knowledge Store Object ID Block This message shall be sent by the knowl edge store in response to a Code F120 h: Request Vector Knowledge Store Object Id Block message It contains the Local Request ID of the originating request, along with the upper and lower object ID blocks. This block is considered continuous between the tw o bounds returned. Values given are inclusive. Table A 12 shows the fields contained in this message. Code F321h: Report Vector Knowledge Store Object(s) Creation This message is used to confirm creation of objects in the vector knowledge store. This mes sage is sent only when an object creation message is requested by setting bit zero in the Code F 1 2 1 h: Create Vector Knowledge Store Object message. If this bit is set, this message will be transmitted and the local request identifier (field 1) is set to t he value sent with the Code F 121 h: Create Vector K nowledge Store Object message. Table A 13 shows the fields contained in this message. Code F322h: Report Vector Knowledge Store Object(s) Modification This message is used to confirm modification of the specified objects in the vector knowledge store. This message is only sent when confirmation is requested in the Code F122h: Modify Vector Knowledge Store Object(s) message. The local request identifier is the one included in the original modification mess age. Each object included in the modification is reported on with a success or failure of the request. Table A 14 shows the fields contained in this message.

PAGE 129

129 Code F323h: Report Vector Knowledge Store Object(s) Deletion This message is used to confirm dele tion of objects from the vector knowledge store. This message is only sent when confirmation is requested in the Code F123h: Delete Vector Knowledge Store Object(s) message. The local request identifier is the one included in the original message. The obje ct ID of each object removed from the knowledge store is returned. The deletion result field is used to indicate success or failure of the overall deletion request and indicates failure if the original request was improper in any form. Table A 15 shows the fields contained in this message. Code F330h: Report Vector Knowledge Store Objects This message is sent in direct response to a Code F 13 0h: Query Vector K nowledge Store Objects message. Table A 16 shows the fields contained in this message. Code F331h: Report Vector Knowledge Store Feature Class Metadata This message allows access to feature class metadata stored within the vector knowledge store. It is transferred in response to the Code F 13 1h: Query Vector Knowledge Store Feature Class Metadata messa ge. If the query message requests all feature classes, a separate message shall be sent for each feature class. These metadata are entered using the Code F021h: Set Vector Knowledge Store Feature Class Metadata message. Table A 17 shows the fields containe d in this message. Code F332h: Report Vector Knowledge Store Geospatial Bounds This message format is shown below. This message reports the bounds as a response to the Query Vector Knowledge Store Bounds message. In this message, the knowledge store ret urns the two geographic points that represent the extents of the data within a feature class layer or all feature class layers. Table A 18 shows the fields contained in this message.

PAGE 130

130 Code F333h: Report Vector Knowledge Store Temporal Bounds This message f ormat is shown below. This message reports the bounds as a response to the Query Vector Knowledge Store Temporal Bounds message. Table A 19 shows the fields contained in this message. Code F334h: Report Vector Knowledge Store Object(s) Future State This m essage is sent in response to a Code F134 h: Query Vector Knowledge Store Object Future State message. It includes the objects for which the future state was queried along with the results. Table A 20 shows the fields contained in this message. Code F424h: Report Vector Knowledge Store Data Transfer Termination This message notifies other JAUS components that data that were being transferred or were going to be transfe rred to them has been stopped. This message is sent in response to the Code F02 3 h: Termina te Vector Knowledg e Store Data Transfer message. It is also sent whenever data transfer is interrupted due to a change in the component state.

PAGE 131

131 Table A 1 JAUS Vector Object Mapping Field # Name Type Units Interpretation PV Bit # Object Presence Vector Short See Mapping Bit Field (See column for Object PV Mapping) Object ID Unsigned Integer N/A 0x00000000 Reserved 0 Object Type Byte N/A Enumeration 0: Point 1: Line 2: Polygon 3 255: Reserved Object Buffer Float Meters 1 Object Estimation Type Byte N/A Enumeration 0: Static 1 254: Algorithm Id 255: Reserved 2 Object Feature Class Count ( m ) Unsigned Short Integer N/A Note: If this field is Presence Vectored out, it will be assumed to be equal to 1 3 Object Feature Class 1 Id Unsigned Short Integer N/A Enumeration By implementation. 65,535 Reserved Object Feature Class 1 Estimation Type Byte N/A Enumeration 0: Static 1 254: Algorithm Id 255: Reserved 4

PAGE 132

132 Table A 1 Continued Object Feature Class 1 Attribute Data Type Byte N/A Enumeration 0: Byte 1: Short Integer 2: Integer 3: Long Integer 4: Unsigned Short Integer 5: Unsigned Integer 6: Unsigned Long Integer 7: Float 8: Long Float 9: RGB (3 Bytes) 10 255: Reserved Object Feature Class 1 Attribute Value Count ( n ) Unsigned Integer N/A Note: If this field is Presence Vectored out, it will be assumed to be equal to 1 5 Object Feature Class 1 Attribute Value 1 Confidence Value Byte Percentage 0 100% confidence in the attribute value 6 Object Feature Class 1 Attribute Value 1 Varies (see field 4) Varies with Feature Class Object Feature Class 1 Attribute Value 1 Lower Bound Varies (see field 4) Varies with Feature Class Used to provide a lower bound to the estimated Attribute Value 7

PAGE 133

133 Table A 1 Continued Object Feature Class 1 Attribute Value 1 Upper Bound Varies (see field 4) Varies with Feature Class Used to provide an upper bound to the estimated Attribute Value 7 Object Feature Class 1 Attribute Value 1 Time Stamp Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 8 Object Feature Class 1 Attribute Value n Confidence Value Byte Percentage 0 100% confidence in the attribute value 6 Object Feature Class 1 Attribute Value n Varies (see field 4) Varies with Feature Class Object Feature Class 1 Attribute Value n Lower Bound Varies (see field 4) Varies with Feature Class Used to provide a lower bound to the estimated Attribute Value 7 Object Feature Class 1 Attribute Value n Upper Bound Varies (see field 4) Varies with Feature Class Used to provide an upper bound to the estimated Attribute Value 7

PAGE 134

134 Table A 1 Continued Object Feature Class 1 Attribute Value n Time Stamp Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 8 Object Feature Class m Id Unsigned Short Integer N/A Enumeration By implementation. 65,535 Reserved Object Feature Class m Estimation Type Byte N/A Enumeration 0: Static 1 254: Algorithm Id 255: Reserved 4 Object Feature Class m Attribute Data Type Byte N/A Enumeration 0: Byte 1: Short Integer 2: Integer 3: Long Integer 4: Unsigned Short Integer 5: Unsigned Integer 6: Unsigned Long Integer 7: Float 8: Long Float 9: RGB (3 Bytes) 10 255: Reserved

PAGE 135

135 Table A 1 Continued Object Feature Class m Attribute Value Count ( n ) Unsigned Integer N/A Note: If this field is Presence Vectored out, it will be assumed to be equal to 1 5 Object Feature Class m Attribute Value 1 Confidence Value Byte Percentage 0 100% confidence in the attribute value 6 Object Feature Class m Attribute Value 1 Varies (see field 4) Varies with Feature Class Object Feature Class m Attribute Value 1 Lower Bound Varies (see field 4) Varies with Feature Class Used to provide a lower bound to the estimated Attribute Value 7 Object Feature Class m Attribute Value 1 Upper Bound Varies (see field 4) Varies with Feature Class Used to provide an upper bound to the estimated Attribute Value 7 Object Feature Class m Attribute Value 1 Time Stamp Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 8

PAGE 136

136 Table A 1 Continued Object Feature Class m Attribute Value n Confidence Value Byte Percentage 0 100% confidence in the attribute value 6 Object Feature Class m Attribute Value n Varies (see field 4) Varies with Feature Class Object Feature Class m Attribute Value n Lower Bound Varies (see field 4) Varies with Feature Class Used to provide a lower bound to the estimated Attribute Value 7 Object Feature Class m Attribute Value n Upper Bound Varies (see field 4) Varies with Feature Class Used to provide an upper bound to the estimated Attribute Value 7 Object Feature Class m Attribute Value n Time Stamp Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 8 Object Position Count ( r ) Unsigned Integer N/A Note: If this field is Presence Vectored out, it will be assumed to be equal to 1 9

PAGE 137

137 Table A 1 Continued Object Position 1 Time Stamp Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 10 Object Position 1 Confidence Value Byte N/A 0 100% confidence in the position values 11 Number of Points for Object Position 1 ( p ) Unsigned Short Integer N/A Object Position 1 Point 1 Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 Object Position 1 Point 1 Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 Object Position 1 Point 1 Lower Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 12 Object Position 1 Point 1 Lower Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 12

PAGE 138

138 Table A 1 Continued Object Position 1 Point 1 Upper Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 12 Object Position 1 Point 1 Upper Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 12 Object Position 1 Point p Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 Object Position 1 Point p Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 Object Position 1 Point p Lower Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 12 Object Position 1 Point p Lower Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 12 Object Position 1 Point p Upper Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 12 Object Position 1 Point p Upper Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 12

PAGE 139

139 Table A 1 Continued Object Position r Time Stamp Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 10 Object Position r Confidence Value Byte N/A 0 100% confidence in the position values 11 Number of Points for Object Position r ( p ) Unsigned Short Integer N/A Object Position r Point 1 Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 Object Position r Point 1 Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 Object Position r Point 1 Lower Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 12 Object Position r Point 1 Lower Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 12

PAGE 140

140 Table A 1 Continued Object Position r Point 1 Upper Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 12 Object Position r Point 1 Upper Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 12 Object Position r Point p Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 Object Position r Point p Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 Object Position r Point p Lower Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 12 Object Position r Point p Lower Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 12 Object Position r Point p Upper Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 12 Object Position r Point p Upper Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 12

PAGE 141

141 Table A 2 Code F021h: Set Vector Knowledge Store Feature Class Metadata Field # Name Type Units Interpretation 1 Metadata Options Byte N/A Enumeration 0: Append 1: Prepend 2: Overwrite 3 254: Reserved 255: Erase All 2 Feature Class Unsigned Short Integer N/A Enumeration By implementation. 65,535 Reserved 3 Number of String Characters Unsigned Short Integer N/A This field should be equal to zero only when Field 1 is equal to 255 (Erase All) 4 Feature Class Metadata String N/A Variable length string Ta ble A 3 Code F023h: Request Vector Knowledge Store Object ID Block Field # Name Type Units Interpretation 1 Local Request ID Byte N/A The local request id is used to identify the response to this message to the originating component. 2 Requested Block Size Unsigned Integer N/A The number of unique object ids being requested.

PAGE 142

142 Table A 4 Code F120h: Create Vector Knowledge Store Object(s) Field # Name Type Units Interpretation 1 Message Properties Byte N/A Bit Field 0: Request confirmation of object creation 1 7: Reserved 2 Local Request ID Byte N/A Request identifier to be used when returning confirmation to requesting component 3 Number of Objects ( n ) Unsigned Short Integer 0, reserved 4 Vector Object 1 JAUS Vector Object N/A This is a series of fields which follow the outline given for a JAUS Vector Object. Again, each object has a unique presence vector. 3 + n Vector Object n JAUS Vector Object N/A This is a series of fields which follow the outline given for a JAUS Vector Object. Again, each object has a unique presence vector.

PAGE 143

143 Table A 5 Code F122h: Modify Vector Knowledge Store Object(s) Field # Name Type Units Interpretation 1 Message Properties Byte N/A Bit Field 0: Request confirmation of object modification 1 7: Reserved 2 Local Request ID Byte N/A Request identifier to be used when returning confirmation to requesting component 3 Number of Objects ( n ) Unsigned Short Integer 0, reserved 4 Vector Object 1 JAUS Vector Object N/A This is a series of fields which follow the outline given for a JAUS Vector Object. Again, each object has a unique presence vector. 3 + n Vector Object n JAUS Vector Object N/A This is a series of fields which follow the outline given for a JAUS Vector Object. Again, each object has a unique presence vector. Table A 6 Code F123h: Delete Vector Knowledge Store Object(s) Field # Name Type Units Interpretation PV Bit # 1 Presence Vector Byte N/A See mapping column. 2 Local Request ID Byte N/A Request identifier to be used when returning data to requesting component 3 Number of Object IDs ( p ) Unsigned Short Integer N/A 1 4 Object ID 1 Unsigned Integer N/A 1 3+ p Object ID p Unsigned Integer N/A 1 4+ p Deletion Region JAUS Vector Object N/A JAUS Vector Object which defines the region in which objects can be deleted. Also can specify the feature classes and attribute values which may be deleted. 2

PAGE 144

144 Table A 7 Code F130h: Query Vector Knowledge Store Object(s) Field # Name Type Units Interpretation PV Bit # 1 Presence Vector Unsigned Short N/A See mapping column 2 Response Presence Vector Byte N/A Query Response Presence Vector. See Code F330h: Report Vector Knowledge Store Objects message for Presence Vector format. 3 Local Request ID Byte N/A Request identifier to be used when returning data to requesting component 4 History Size Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 0 5 Number of Object IDs ( p ) Unsigned Short Integer N/A 1 6 Object ID 1 Unsigned Integer N/A 1 5+ p Object ID p Unsigned Integer N/A 1 6+ p Object Estimation Type Byte N/A Enumeration 0: Static 1 254: Algorithm Id 255: All but Static 2

PAGE 145

145 Table A 7 Continued 7+ p Region Type Byte N/A Enumeration 0: Point 1: Line 2: Polygon 3 255: Reserved 3 8+ p Region Buffer Float Meters 4 9+ p Number of Feature Classes ( n ) Byte N/A 5 10+ p Feature Class 1 Unsigned Short Integer N/A Enumeration By implementation. 65,535 All 6 11+ p Feature Class 1 Estimation Type Byte N/A Enumeration 0: Static 1 254: Algorithm Id 255: All but Static 7 12+ p Feature Class 1 Attribute Data Type Byte N/A Enumeration 0: Byte 1: Short Integer 2: Integer 3: Long Integer 4: Unsigned Short Integer 5: Unsigned Integer 6: Unsigned Long Integer 7: Float 8: Long Float 9: RGB (3 Bytes) 10 255: Reserved 8 13+ p Feature Class Attribute 1 Varies (see field 4) Varies with Feature Class 8

PAGE 146

146 Table A 7 Continued 10+ p +3 n Feature Class n Unsigned Short Integer N/A Enumeration By implementation. 65,535 All 6 11+ p+ 3 n Feature Class n Estimation Type Byte N/A Enumeration 0: Static 1 254: Algorithm Id 255: All but Static 7 12+ p +3 n Feature Class n Attribute Data Type Byte N/A Enumeration 0: Byte 1: Short Integer 2: Integer 3: Long Integer 4: Unsigned Short Integer 5: Unsigned Integer 6: Unsigned Long Integer 7: Float 8: Long Float 9: RGB (3 Bytes) 10 255: Reserved 8 13+ p +3 n Feature Class Attribute n Varies (see previous field) Varies with Feature Class 8 14+ p +3 n Number of Region Points ( m) Unsigned Short Integer N/A 0, reserved 9 15+ p +3 n Query Region Point 1 Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 9 16+ p+3n Query Region Point 1 Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 9

PAGE 147

147 Table A 7 Continued Query Region Point m Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 9 Query Region Point m Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 9 Table A 8 Code F131h: Query Vector Knowledge Store Feature Class Metadata Field # Name Type Units Interpretation 1 Feature Class Unsigned Short Integer N/A Enumeration By implementation. 65,535 All Table A 9 Code F132h: Query Vector Knowledge Store Geospatial Bounds Field # Name Type Units Interpretation 1 Local Request ID Byte N/A Request identifier to be used when returning data to requesting component 2 Feature Class Unsigned Short Integer N/A Enumeration By implementation. 65,535 All Feature Classes Table A 10 Code F133h: Query Vector Knowledge Store Temporal Bounds Field # Name Type Units Interpretation 1 Local Request ID Byte N/A Request identifier to be used when returning data to requesting component 2 Feature Class Unsigned Short Integer N/A Enumeration By implementation. 65,535 All Feature Classes

PAGE 148

148 Table A 11 Code F134h: Query Vector Knowledge Store Object(s) Future State Field # Name Type Units Interpretation PV Bit # 1 Presence Vector Byte N/A See mapping column 2 Local Request ID Byte N/A Request identifier to be used when returning data to requesting component 3 Query Type Byte N/A Enumeration 0: Absolute Time 1: Relative Time 2 255: Reserved 4 Query Time Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 5 Object ID Unsigned Integer N/A 6 Object Confidence Value Byte Percent Interpretation: 95 would be a 95% Confidence Interval 1 7 Number of Feature Classes (m) Unsigned Short Integer N/A 8 Feature Class 1 Unsigned Short Integer N/A Enumeration By implementation. 65,535 All 9 Feature Class 1 Confidence Interval Percentage Byte Percent Interpretation: 95 would be a 95% Confidence Interval 2

PAGE 149

149 Table A 11 Continued 7 + m Feature Class m Unsigned Short Integer N/A Enumeration By implementation. 65,535 All 7 + 2m Feature Class m Confidence Interval Percentage Byte Percent Interpretation: 95 would be a 95% Confidence Interval Table A 12 Code F320h: Assign Vector Knowledge Store Object ID Block Field # Name Type Units Interpretation 1 Local Request ID Byte N/A Request identifier sent by requesting component 2 Object ID Block Lower Bound Unsigned Integer N/A Allocated Object ID block, lower bound 3 Object ID Block Upper Bound Unsigned Integer N/A Allocated Object ID block, upper bound Table A 13 Code F321h: Report Vector Knowledge Store Object(s) Creation Field # Name Type Units Interpretation 1 Local Request ID Byte N/A Local request identifier sent by creating component 2 Number of Object IDs ( p ) Unsigned Short Integer N/A 3 Object ID 1 Unsigned Integer 0x00000000 Invalid Object ID This value is used to inform the remote component that, for some reason, the corresponding object could not be created. 2+ p Object ID p Unsigned Integer 0x00000000 Invalid Object ID This value is used to inform the remote component that, for some reason, the corresponding object could not be created.

PAGE 150

150 Table A 14 Code F322h: Report Vector Knowledge Store Object(s) Modification Field # Name Type Units Interpretation 1 Local Request ID Byte N/A Local request identifier sent by creating component 2 Number of Object IDs ( p ) Unsigned Short Integer N/A 3 Object ID 1 Unsigned Integer N/A Unique Object ID of the object modified 4 Object 1 Modification Result Byte N/A Enumeration: 0: Failure 1: Success 2 255: Reserved 2+ p Object ID p Unsigned Integer N/A Unique Object ID of the object modified 3+ p Object p Modification Result N/A Enumeration: 0: Failure 1: Success 2 255: Reserved Table A 15 Code F323h: Report Vector Knowledge Store Object(s) Deletion Field # Name Type Units Interpretation 1 Local Request ID Byte N/A Local request identifier sent by creating component 2 Deletion Result Byte N/A Enumeration: 0: Failure 1: Success 2 255: Reserved 3 Number of Object IDs ( p ) Unsigned Short Integer N/A This being equal to 0 does not necessarily indicate a failure, as a proper deletion request may still yield 0 objects deleted 4 Object ID 1 Unsigned Integer N/A Unique Object ID of the object deleted 3+ p Object ID p Unsigned Integer N/A Unique Object ID of the object deleted

PAGE 151

151 Table A 16 Code F330h: Report Vector Knowledge Store Object(s) Field # Name Type Units Interpretation PV Bit # 1 Presence Vector Byte N/A Bit Field: Bit 0: Data is included after field 3. This is based on the presence vector received in the Code F130h: Query Vector Knowledge Store Objects Message. If data are present after field 3, this bit should be set. Bits 1 7: Reserved 2 Local Request ID Byte N/A Request identifier sent in query message 3 Number of Objects ( p ) Unsigned Short Integer N/A Number of Objects in Response to Query Message 4 History Size Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 0...31 1 5 Object 1 JAUS Vector Object N/A JAUS Vector Object that matches the originating query 1 4+ p Object p JAUS Vector Object N/A JAUS Vector Object that matches the originating query 1

PAGE 152

152 Table A 17 Code F331h: Report Vector Knowledge Store Object(s) Field # Name Type Units Interpretation 1 Feature Class Unsigned Short Integer N/A Enumeration By implementation. 65,535 Reserved 2 Number of String Characters Unsigned Short Integer N/A 3 Feature Class Metadata String N/A Variable length string Table A 18 Code F332h: Report Vector Knowledge Store Geospatial Bounds Field # Name Type Units Interpretation 1 Local Request ID Byte N/A Request identifier sent in query message 2 Feature Class Unsigned Short Integer N/A Enumeration By implementation. 65,535 Reserved 3 Southwest Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 4 Southwest Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180 5 Northeast Bound Latitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 90 Upper Limit = 90 6 Northeast Bound Longitude (WGS84) Integer Degrees Scaled Integer Lower Limit = 180 Upper Limit = 180

PAGE 153

15 3 Table A 19 Code F333h: Report Vector Knowledge Store Temporal Bounds Field # Name Type Units Interpretation 1 Local Request ID Byte N/A Request identifier sent in query message 2 Feature Class Unsigned Short Integer N/A Enumeration By implementation. 65,535 Reserved 3 Time Stamp Unsigned Integer N/A Bits 0 9: milliseconds, range 0...999 Bits 10 15: Seconds, range 0...59 Bits 16 21: Minutes, range 0...59 Bits 22 26: Hour (24 hour clock), range 0..23 Bits 27 31: Day, range 1...31 4 Date Stamp Unsigned Short N/A Bits 0 4: Day, range 1...31 Bits 5 8: Month, range 1...12 Bits 9 15: Year, range 2000...2127 Where 0 is 2000, 1 is 2001, etc. Table A 20 Code F334h: Report Vector Knowledge Store Object(s) Future State Field # Name Type Units Interpretation PV Bit # 1 Local Request ID Byte N/A Request identifier sent in query message 2 Number of Objects ( p ) Unsigned Short Integer N/A Number of Objects in Response to Query Message 3 Object 1 JAUS Vector Object N/A JAUS Vector Object that matches the originating query 1 2+ p Object p JAUS Vector Object N/A JAUS Vector Object that matches the originating query 1

PAGE 154

154 APPENDIX B SAMPLE CODE EXCERPTS This appendix contains selections from of the code written by the author to test the reference implementation in the World Model Vector Knowledge Store (WMVKS). Functions and data structures are included based on their overall importance to key features of the implementation. J AUS Vector Object The JAUS Vector object is implemented as four distinct objects JausWorldModelVectorObject, JausWorldModelFeatureClass, JausWorldModelFeatureClassAttribute and JausWorldModelSpatialDataSet. The structures are defined below: // JausWorldM odelVectorObject typedef struct { JausUnsignedInteger id; // Unique Object Id JausShortPresenceVector presenceVector; // Unique (per object) // presence vector for fields JausByte type; // Enumeration, see above JausFloat bufferMeters; / / Buffer Size in meters JausByte estimator; // Enumeration, see above Vector featureClasses; / / Dynamic Array of FeatureClass data Vector geospatialData; // Dynamic Array of VectorDatasets // (position history) }JausWorldModelVectorObject; // JausWorldModelFeatureClass typedef struct { JausUnsignedShort id; // Enumeration, defined by system // String of Metadata information defined for this Feature Class char metaData[JAUS_WM_FC_METADATA_STRING_LENGTH]; // Enumeration, defined as the type of estimation algorithm to be used // (0=Static, 1 254=Dynamic, 255=Reserved) JausByte estimator ; // List of Feature Class Attributes: Data Type and values Vector attributeHistory; // List of Feature Class Attributes Lower Bound Values Vector ciLowerHistory;

PAGE 155

155 // List of Feature Class Attributes Upper Bound Values Vector ciUpperHistory; }JausWorldModelFeatureClass; // JausWorldModelFeatureClassAttribute typedef struct { JausByte dataType; // Enumeration, see above JausTime timeStamp; // OPTIONAL: Valid time for this FC Attribute JausByte confidenceValue; // OPTIONAL: Confidence value or confidence // interval value (0 100%) FeatureClassAttributeValue current; // Attribute Value FeatureClassAttributeValue lowerBound; // OPTIONAL: Lower Bound FeatureClassAttributeValue upperBound; // OPTIONAL: Upper Bound }JausWorldModelFeatureClassAttribute; // JausWorldModelVectorObjectSpatialDataSet typedef struct { JausTime timeStamp; // OPTIONAL: Timestamp for this reading PointLla centroid; // Centroid of this dataset JausByte confidenceValue; // OPTIONAL: confidence interval Vector dataPoints; // PointLLAs in this dataset (Lat & Lon) Vector ciUpperPoints; // O PTIONAL: PointLLAs Confidence // Interval UpperBounds Points Vector ciLowerPoints; // OPTIONAL: PointLLAs Confidence // Interval LowerBounds Points }JausWorldModelVectorObjectSpatialDataSet; Generic Predictor These structures are used throughout t he code to store intermediate results of queries and reports as they are marshaled from the database to the JAUS messages and vice versa. In the text, the Generic Predictor Interface is discussed. Below is the datastructure of this implementation. Also pro vided is a sample of the generic toBuffer method and the polynomial Generic Predictor Structure // Generic Predictor typedef struct GenericPredictorStruct { // Unique Name char name[80]; // Estimator numeric id unsigned int id;

PAGE 156

156 // some optimization parameters unsigned long minimumPointCount; unsigned long maximumPointCount; // Current data DataPoint *dataArray; unsigned long dataSize; // Generic handles to Predictor functions int (* solver)( struct GenericPre dictorStruct *); double (* estimate)( struct GenericPredictorStruct *, double ); int (* solutionToBuffer)( struct GenericPredictorStruct *, unsigned char *buffer, unsigned int bufferSizeBytes); int (* solutionFromBuffer)( struct GenericPredictorStruct *, unsigned char *buffer, unsigned int bufferSizeBytes); void (* destroy)( struct GenericPredictorStruct *); // Placeholder pointer for specific predictor data void *solutionStruct; }GenericPredictorStruct; Generic Predictor ToBuffer Method // Generic Predictor To Buffer int genericPredictorSolutionToBuffer(GenericPredictor predictor, unsigned char *buffer, unsigned int bufferSizeBytes) { unsigned int index = 0; // Pack some predictor values // The reason we are packing the estimator id is for idetification // later Because, depending on the dataSize, the object >estimator // does not necessarily equal estimator id memcpy(buffer+index, &predictor >id, sizeof ( unsigned int )); index += sizeo f ( unsigned int ); // Pack the solution struct index += predictor >solutionToBuffer(predictor, buffer+index, bufferSizeBytes index); return index; } Polynomial Predictor ToBuffer Method // Polynomial Predictor toBuffer int polyEstimatorSolutionToBuffer(GenericPredictor polyEst, unsigned char *buffer, unsigned int bufferSizeBytes) { // We are going to store 3 things: power, beta, and startX // This allows us to quickly and easily use the estimator unsigned int index = 0; PolyEstimatorSolution sol = NULL ; unsigned int sizeBytes = 0; sol = (PolyEstimatorSolution) polyEst >solutionStruct;

PAGE 157

157 if (!sol) { // Bad Pointer return 0; } sizeBytes = ((sol >power+1) sizeof ( double )) + sizeof ( int ) + sizeof ( double ) + sizeof ( unsigned int ); if (bufferSizeBytes < sizeBytes) { // This is a problem, not enough space in the buffer return 0; } // Power memcpy(buffer+index, &sol >power, sizeof ( int )); index += sizeof ( int ); // startX memcpy(buffer+index, &sol > startX, sizeof ( double )); index += sizeof ( double ); // Betas memcpy(buffer+index, sol >beta, (sol >power+1) sizeof ( double )); index += (sol >power+1) sizeof ( double ); return index; } Process JAUS Messages Three particular messages define the behavior of the WMVKS. These are the create, modify and query future state messages. The functions that process these JAUS messages are included below. Create Objects Message // Process Create JausBoolean processCreateVksObjectsMessage(JausMessage message) { CreateVksObjectsMessage create = NULL ; ReportVksObjectsCreationMessage response = NULL ; JausMessage txMessage = NULL ; JausWorldModelVectorObject object = NULL ; unsigned int i = 0; unsigned int j = 0; int queryResult = 0; char tempQuery[4096] = {0}; char *sqlQuery = NULL ;

PAGE 158

158 create = createVksObjectsMessageFromJausMessage(message); if (!create) { cError( "processCreateVksObjectsMessage:%d: Oops. \ n" __LINE__ ); return JAUS_FALSE; } if (jausBytePresenceVectorIsBitSet(create >messageProperties, VKS_CREATE_PROPERTIES_CONFIRMATION_BIT)) { // Confirmation requested response = reportVksObjectsCreationMessageCreate(); response >source >id = wmvks >address >id; response >destination > id = create >source >id; response >requestId = create >requestId; response >objectCount = create >vectorObjects >elementCount; response >objectIds = (JausUnsignedInteger *) malloc(response >objectCount JAUS_UNSIGNED_INTEGER_SIZE_BYTES); } // Insert Objects into the Data Store for (i = 0; i < create >vectorObjects >elementCount; i++) { object = (JausWorldModelVectorObject) create >vectorObjects >elementData[i]; if (!jausShortPresenceVectorIsBitSet(object >presenceVector, J AUS_WM_OBJECT_PV_OBJECT_ID_BIT)) { // if the object ID bit is not set, we need to retrive the // next value from the id_seq so that we can set it to that sprintf(tempQuery, "SELECT NEXTVAL('%s_objectid_seq');" objectTableName); postgresDbQuer y(tempQuery); object >id = atoi(postgresDbGetResultValueByColumnName(0, "nextval" )); jausShortPresenceVectorSetBit(&object >presenceVector, JAUS_WM_OBJECT_PV_OBJECT_ID_BIT); } sqlQuery = createCreateObjectSql(object); queryResult = postgresDbQuery(sqlQuery); // done with sqlQuery, so free it free(sqlQuery); for (j = 0; j < object >featureClasses >elementCount; j++) { sqlQuery = createCreateFeatureClassSql( object >featureClasses >elementData[j], object >id); queryResult = postgresDbQuery(sqlQuery); // done with sqlQuery, so free it free(sqlQuery); }

PAGE 159

159 if (jausBytePresenceVectorIsBitSet(create >messageProperties, VKS_CREATE_PROPERTIES_CONFIRMATION_BIT)) { // Capture Object Id if (queryResult == 0) { // Successfully Inserted if (jausShortPresenceVectorIsBitSet(object >presenceVector, JAUS_WM_OBJECT_PV_OBJECT_ID_BIT)) { response >objectIds[i] = object >id; } else { sprintf(tempQuery, "SELECT CURRVAL('%s_objec tid_seq');" objectTableName); postgresDbQuery(tempQuery); response >objectIds[i] = atoi(postgresDbGetResultValueByColumnName(0, "currval" )); } objectCount++; } else { // Unsuccessful response >objectIds[i] = 0; } } } // Respond if requested if (jausBytePresenceVectorIsBitSet(create >messageProperties, VKS_CREATE_PROPERTIES_CONFIRMATION_BIT)) { txMessage = reportVksObjectsCreationMessageToJausMessage(response); nodeManagerSend(wmvksNmi, txMessage); jausMessageDestroy(txMessage); reportVksObjectsCreationMessageDestroy(response); } createVksObjectsMessageDestroy(create); return JAUS_TRUE; } Modify Object Message // Process Modify JausBoolean processModifyVksObjectMessage(JausMessage message) { ModifyVksObjectMessage modifyMsg = NULL ; JausWorldModelVectorObject dbObject = NULL ; JausWorldModelVectorObject msgObject = NULL ; JausWorldModelVectorObjectSpatialDataSet dataSet = NULL ;

PAGE 160

160 char *sqlQuery = NULL ; char *hexString = NULL ; int queryResult = 0; unsigned int i = 0; unsigned int j = 0; char *dataBuffer = NULL ; unsigned int dataSizeBytes; JausWorldModelFeatureClass msgFeatureClass = NULL ; JausWorldModelFeatureClass dbFeatureClass = NULL ; JausWorldModelFeatureClassAttribute msgFcAttribute = NULL ; JausWorldModelFeatureClassAttribute dbFcAttribute = NULL ; modifyMsg = modifyVksObjectMessageFromJausMessage(message); if (!modifyMsg) { cError( "processModifyVksObjectMessage:%d: Problem unpacking modifyMsg \ n" __LINE__ ); return JAUS_FALSE; } // For convience, let's grab that object pointer from the message msgObject = modifyMsg >vectorObject; // Allocate memory for sqlQuery sqlQuery = ( char *) calloc(1, 1024); // Now, we want to get the object (if it exists) from the dataBase sprintf(sqlQuery, "SELECT vectorobject FROM %s WHERE objectid=%d;" objectTableName, msgObject >id); queryResult = postgresDbQuery(sqlQuery); free(sqlQuery); // Check the results for errors if (queryResult != 0 || postgresDbGetResultCount() < 1) { cError( "processModifyVksObjectMessage:%d: Problem with modify. Object (id=%d) not found in dataBase. \ n" __LINE__ msgObject >id); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } // Great! Now we take that object and start comparing // Get the objectArray so we can create a vector Object hexString = postgresDbGetResultValueByColumnName(0, "vectorObject" ); if (!hexString) { cError( "processModifyVksObjectMessage:%d: Problem extracting hexString. \ n" __LINE__ ); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } // Now convert our hexString to a VectorObject dbObject = vectorObjectFromHexString(hexString);

PAGE 161

161 if (!dbObject) { cError( "processModifyVksObjectMessage:%d: Problem extracting dbObject. \ n" __LINE__ ); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } // Ok, now we can compare the objects and update parts of the database // as needed First let's compare the object types, if the Object Type // has changed, this could be a big problem For now, if the type has // changed, we'll just throw an error since interpreting what to do is // complicated and unnecessary for this implementation if (dbObject >type != msgObject >type) { cError( "processModifyVksObjectMessage:%d: Problem extracting dbObject. \ n" __LINE__ ); vectorObjectDestroy(dbObject); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } // Now, if this is a "static" object, we need to replace the // geospatialData if (msgObject >estimator == JAUS_WM_ESTIMATOR_STATIC) { // Destroy the dbObject data, we're replacing it vectorDestroy(dbObject >geospatialData, ( void *) vectorObjectDataSetDestroy); // Clone the dataSet (should only be one if static) from msgObject if (msgObject >geospatialData >elementCount > 1) { cLog( "processModifyVksObjectMessage:%d: WARNING... trying to modify a static object and providing more than one set of data points. \ n" ); } dbObject >geospatialData = vectorCopy(msgObject >geospatialData, ( void *) vectorObjectDataSetCopy, ( void *) vectorObjectDataSetDestroy); if (!dbObject >geospatialData) { cError( "processModifyVksObjectMessage:%d: Problem cloning msgObject > geospatialData. \ n" __LINE__ ); vectorObjectDestroy(dbObject); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } } else { // Else.... dynamic object // We need to add the data in the msgObject to the dbObject if (msgObject > geospatialData >elementCount > 1) { cLog( "processModifyVksObjectMessage:%d: WARNING... trying

PAGE 162

162 to modify an object and providing more than one set of data points. \ n" ); } for (i = 0; i < msgObject >geospatialData >elementCount; i++) { // BIG WARNING HERE... You REALLY should only modify with one // dataset. If we put in duplicate data sets, it could cause big // problems for some estimator algorithms. (I think) dataSet = vectorObjectDataSetCopy( (JausWorldModelVectorObjectSpatialDataSet) msgObject >geospatialData >elementData[i]); if (!dataSet) { cError( "processModifyVksObjectMessage:%d: Problem cloning dataset. \ n" __LINE__ ); vectorObjectDestroy(dbObject); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } vectorAdd(dbObject >geospatialData, dataSet); } } // Now that our geometry is straight, we should update the geometry object // in the dataBase Note: The geometry object in the db is only the last // known true geometry of the object hexString = vectorObjectToPostgisGeometryHexString(dbObject); if (!hexString) { cError( "createCreateObjectSql:%d: Problem with vectorObjectToHexBuffer! \ n" __LINE__ ); vectorObjectDestroy(dbObject); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } // Allocate memory for sqlQuery sqlQuery = ( char *) calloc(1, 1024); sprintf(sqlQuery, "UPDATE %s SET geom = 'srid= 1; %s'::geometry WHERE objectid = %d;" objectTableName, hexString, dbObject >id); queryResult = postgresDbQuery(sqlQuery); // We're done with this, so free it free(hexString); free(sqlQuery); // Test the result of the query if (queryResult != 0) { cLog( "processModifyVksObjectMessage:%d: WARNING... Error when trying to update geometry for object (ID=%). \ n" dbObject >id); } // Object Type test & update if (dbObject >type != msgObject >type) {

PAGE 163

163 dbObject >type = msgObject >type; // Allocate memory for sqlQuery sqlQuery = ( char *) calloc(1, 1024); sprintf(sqlQuery, "UPDATE %s SET object_type = %d WHERE objectid=%d;" objectTableName, dbObject >type, dbObject >id); queryResult = postgresDbQuery(sqlQuery); free(sqlQuery); } // Buffer_meters test & update if ( jausShortPresenceVectorIsBitSet(msgObject >presenceVector, JAUS_WM_OBJECT_PV_BUFFER_BIT) && dbObject >bufferMeters != msgObject >bufferMeters) { jausShortPresenceVectorSetBit(&dbObject >presenceVector, JAUS_WM_OBJECT_P V_BUFFER_BIT); dbObject >bufferMeters = msgObject >bufferMeters; // Allocate memory for sqlQuery sqlQuery = ( char *) calloc(1, 1024); sprintf(sqlQuery, "UPDATE %s SET buffer_meters = %f WHERE objectid=%d;" objectTableName, dbObject > bufferMeters, dbObject >id); queryResult = postgresDbQuery(sqlQuery); free(sqlQuery); } // Estimator test & update if ( jausShortPresenceVectorIsBitSet(msgObject >presenceVector, JAUS_WM_OBJECT_PV_OBJECT_ESTIMATOR_BIT) && dbObject >estimator != msgObject >estimator) { cLog( "processModifyVksObjectMessage:%d: WARNING... Changing the estimator might have strange consequences. \ n" __LINE__ ); jausShortPresenceVectorSetBit(&dbObject >presenceVector, JAUS_WM_OBJECT_PV_OBJECT_ESTIMATOR_BIT); dbObject >estimator = msgObject >estimator; // Allocate memory for sqlQuery sqlQuery = ( char *) calloc(1, 1024); sprintf(sqlQuery, "UPDATE %s SET estimator = %d WHERE objectid=%d;" objectTableName, dbObject >estimator, dbObject >id); queryResult = postgresDbQuery(sqlQuery); free(sqlQuery); } // Object TimeStamp // We're going to ASSUME the object timestamp has changed dataSet = (JausWorldModelVectorObjectSpatialDataSet) dbObject >geospatialData >elementData [dbObject >geospati alData >elementCount 1]; // Allocate memory for sqlQuery sqlQuery = ( char *) calloc(1, 1024); sprintf(sqlQuery, "UPDATE %s SET object_timestamp = '%s' WHERE

PAGE 164

164 objectid=%d;" objectTableName, jausTimeToSqlString(dataSet >timeStamp), dbObject >id); queryResult = postgresDbQuery(sqlQuery); free(sqlQuery); // OK... now we need to update featureClasses // A couple notes here... first, if a feature class does not match one // that is already attached to the object, we just add it Second, if it // does match, we update the information with the latest attribute value // Remember to test if the FC Attribute is static or not for (i = 0; i < msgObject >featureClasses >elementCount; i++) { msgFeatureClass = (JausWorldModelFeatureClass) msgObject > featureClasses >elementData[i]; for (j = 0; j < dbObject >featureClasses >elementCount; j++) { dbFeatureClass = (JausWorldModelFeatureClass) dbObject >featureClasses >elementData[j]; if (msgFeatureClass >id == dbFeatureClass >id) { // ok, we found it the match break ; } dbFeatureClass = NULL ; } if (dbFeatureClass != NULL ) { // This is an existing featureClass // Let's check some things (like dataType) msgFcAttribute = (JausWorldModelFeatureClassAttribute) msgFeatureClass >attributeHistory >elementData[0]; dbFcAttribute = (JausWorldModelFeatureClassAttribute) dbFeatureClass >attributeHistory >elementData[0]; if (dbFcAttribute >dataType != msgFcAttribute >dataType) { cError( "processModifyVksObjectMessage:%d: No no! You cannot change the dataType of a feature class! \ n" __LINE__ ); continue ; } // Test and update the FC Estimator if ( jausShortPresenceVectorIsBitSet(msgObject >presenceVector, JAUS_WM_OBJECT_PV_FC_ESTIMATOR_BIT) && msgFeatureClass >estimator != dbFeatureClass >estimator ) { cLog( "processModifyVksObjectMessage:%d: WARNING... Changing the estimator might have strange consequences. \ n" __LINE__ ); jausShortPresenceVectorSetBit(&dbObject >presenceVector, JAUS_WM_OBJECT_PV_FC_ESTIMATOR_BIT); dbFeatureClass >estimator = msgFeatureClass >estimator; }

PAGE 165

165 if (dbFeatureClass >estimator == JAUS_WM_ESTIMATO R_STATIC) { // Static featureClass attribute // Therefore replace the value in dbFeatureClass with the one // from msgFeatureClass Destroy the dbFeatureClass data, we're // replacing it vectorDestroy(dbFeatureClass >attributeHistory, ( void *) featureClassAttributeDestroy); // Clone the dataSet (should only be one if static) // from msgObject if (msgFeatureClass >attributeHistory >elementCount > 1) { cLog( "processModifyVksObjectMessage:%d: WARNING... trying to modify a static attribute and providing more than one set of attribute values. \ n" ); } dbFeatureClass >attributeHistory = vectorCopy( msgFeatureClass >attributeHistory, ( void *) featureClassAttributeCopy, ( void *) featureClassAttributeDestroy); if (!dbFeatureClass >attributeHistory) { cError( "processModifyVksObjectMessage:%d: Problem cloning the msgFeatureClass >attributeHistory \ n" __LINE__ ); continue ; } } else { // Dynam ic Feature Class // Add this msgAttribute to dbAttributeHistory for (j = 0; j < msgFeatureClass >attributeHistory >elementCount; j++) { // BIG WARNING HERE... You REALLY should only modify with one // dataset. If we put in duplicate data sets, it could cause // big problems for some estimator algorithms. (I think) dbFcAttrib ute = featureClassAttributeCopy( (JausWorldModelFeatureClassAttribute) ms gFeatureClass >attributeHistory >elementData[j]); if (!dbFcAttribute) { cError( "processModifyVksObjectMessage:%d: Problem cloning msgFeatureClassAttribute. \ n" __LINE__ ); continue ; } vectorAdd(dbFeatureClass >attributeHistory, dbFcAttribute); } } // Allocate memor y for sqlQuery sqlQuery = ( char *) calloc(1, 1024);

PAGE 166

166 sprintf(sqlQuery, "UPDATE %s SET fc_estimator_type=%d, fc_data_type=%d, attribute=%lld, attribute_timestamp='%s' WHERE fc_id = %d AND objectid=%d;" fcTableName, dbFeatureClass >esti mator, dbFcAttribute >dataType, dbFcAttribute >current.unsignedLongValue, jausTimeToSqlSt ring(dbFcAttribute >timeStamp), dbFeatureClass >id, dbObject >id); queryResult = postgresDbQuery(sqlQuery); free(sqlQuery); // Now we'll run the FC Predictor and get its hexBuffer hexString = featureClassPredictorToHexBuffer(dbFeatureClass); if (!hexString) { cError( "processModifyVksObjectMessage:%d: Problem with f eatureClassPredictorToHexBuffer! \ n" __LINE__ ); vectorObjectDestroy(dbObject); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } sqlQuery = ( char *) calloc(1, strlen(hexString) + 128); sprintf(sqlQuery, "UPDATE %s SET fc_estimator_solution = '%s' WHERE fc_id=%d AND objectid=%d;" fcTableName, hexString, dbFeatureClass >id, dbObject >id); queryResult = postgresDbQuery(sqlQuery); free(hexString); free(sqlQuery); } else { // There was no match for this feature class // So we just clone it and add it to the dbObject dbFeatureClass = featureClassCopy(msgFeatureClass); if (!dbFeatureClass) { cError( "processModifyVksObjectMessage:%d: Problem cloning msgFeatureClass. \ n" __LINE__ ); continue ; } vectorAdd(dbObject >featureClasses, dbFeatureClass); // Since this is a new feature class, we'll add it to the fc table sqlQuery = createCreateFeatureClassSql(dbFeatureClass, dbObject >id); queryResult = postgresDbQuery(sqlQuery); free(sqlQuery); } } // Now we'll put the byteArray version of dbObject back into the DB dataSizeBytes = vectorObjectSizeBytes(dbObject); dataBuffer = ( char *) malloc(dataSizeBytes); if (!vectorObjectToBuffer(dbObject, dataBuffer, dataSizeBytes)) { cError( "processModifyVksObjectMessage:%d: Problem packing vector dbObject to dataBuffer \ n" __LINE__ );

PAGE 167

167 vectorObjectDestroy(dbObject); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } hexString = bufferToHex(dataBuffer, dataSizeBytes); // Now let's update that into the DB sqlQuery = ( char *) malloc(strlen(he xString)+128); sprintf(sqlQuery, "UPDATE %s SET vectorObject = '%s' WHERE objectid=%d;" objectTableName, hexString, dbObject >id); queryResult = postgresDbQuery(sqlQuery); free(dataBuffer); free(hexString); free(sqlQuery); // Now we need to update the object estimator hexString = objectPredictorToHexBuffer(dbObject); if (!hexString) { cError( "processModifyVksObjectMessage:%d: Problem with featureClassPredictorToHexBuffer! \ n" __LINE__ ); vectorObjectDestroy(dbObject); modifyVksObjectMessageDestroy(modifyMsg); return JAUS_FALSE; } sqlQuery = ( char *) malloc( strlen(hexString) + 128 ); sprintf(sqlQuery, "UPDATE %s SET estimator_solution = '%s' WHERE objectid=%d;" objectTableName, hexString, dbObject >id); queryRe sult = postgresDbQuery(sqlQuery); // done with these pointers free(hexString); free(sqlQuery); vectorObjectDestroy(dbObject); modifyVksObjectMessageDestroy(modifyMsg); modifyCount++; return JAUS_TRUE; } Query Future State Message // Process Query Future State JausBoolean processQueryFutureStateMessage(JausMessage message) { QueryVksObjectFutureStateMessage query; ReportVksObjectFutureStateMessage report; JausMessage txMessage; JausWorldModelVectorObjectSpatialDataSet dataSet; JausWorld ModelFeatureClass fcClass; JausWorldModelFeatureClassAttribute fcAttribute;

PAGE 168

168 JausTime queryTime = NULL ; JausTime tempTime = NULL ; int characterCount = 0; int queryResult; char sqlQuery[1024] = {0}; char *hexString; unsigned int i = 0; GenericPredictor xPredictor; GenericPredictor yPredictor; GenericPredictor fcPredictor; PointUtm pointUtm; PointLla pointLla; // Unpack Query query = queryVksObjectFutureStateMessageFromJausMessage(message); if (!query) { cError( "processQueryFutureStateMessage:%d: Problem unpacking query message \ n" __LINE__ ); return JAUS_FALSE; } // First, let's ask the database for the object sprintf(sqlQuery, "SELECT object_type, estimator_solution, utm_init_longitude FROM %s WHERE objectid=%d;" objectTableName, query >objectId); queryResult = postgresDbQuery(sqlQuery); // Check the results for errors if (queryResult != 0 || postgresDbGetResultCount() == 0) { cError( "processQueryFutureStateMessage:%d: Object (id=%d) not found in dataBase. \ n" __LINE__ query >objectId); queryVksObjectFutureStateMessageDestroy(query); return JAUS_FALSE; } // Create report, NOTE: This also creates the report >vectorObject report = reportVksObjectFutureStateMessageCreate(); if (!report) { cError( "processQueryFutureStateMessage:%d: Problem creating report message \ n" __LINE__ ); queryVksObjectFutureStateMessageDestroy(query); return JAUS_FALSE; } report >requestId = query >requestId; // We're going to need one of these, might as well make it now dataSet = vectorObjectDataSetCreate(); if (!dataSet) { cError( "processQueryFutureStateMessage:%d: Error creating dataSet. \ n"

PAGE 169

169 __LINE__ ); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } vectorAdd(report >vectorObject >geospatialData, dataSet); // Let's setup the basic reportObjectPresenceVector jausShortPresenceV ectorSetBit(&report >vectorObject >presenceVector, JAUS_WM_OBJECT_PV_OBJECT_ID_BIT); jausShortPresenceVectorSetBit(&report >vectorObject >presenceVector, JAUS_WM_OBJECT_PV_FC_COUNT_BIT); jausShortPresenceVectorSetBit(&report >vectorObject >presenceVect or, JAUS_WM_OBJECT_PV_ATTRIBUTE_COUNT_BIT); jausShortPresenceVectorSetBit(&report >vectorObject >presenceVector, JAUS_WM_OBJECT_PV_ATTRIBUTE_TIMESTAMP_BIT); jausShortPresenceVectorSetBit(&report >vectorObject >presenceVector, JAUS_WM_OBJECT_PV_POSITION_COUNT_BIT); jausShortPresenceVectorSetBit(&report >vectorObject >presenceVector, JAUS_WM_OBJECT_PV_POSITION_TIMESTAMP_BIT); report >vectorObject >type = atoi(postgresDbGetResultValueByColumnName(0, "object_type" )); report >vectorObject >id = query >objectId; // Ok, now we get into the future state prediction // First, we should setup our query time. This is based on the query type if (query >queryType == VKS_FUTURE_STATE_ABSOLUTE_TIME) { queryTime = jausTimeCopy(query >queryTime); if (!queryTime) { cError( "processQueryFutureStateMessage:%d: Error creating queryTime \ n" __LINE__ ); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } } else if (query >queryType == VKS_FUTURE_STATE_RELATIVE_TIME) { // We're going to use this JausTime object, so we'll need to create it tempTime = jausTimeCreate(); if (!tempTime) { cError( "processQueryFutureStateMessage:%d: Er ror creating queryTime \ n" ); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } jausTimeSetCurrentTime(tempTime); queryTime = jausTimeAddTimeStamp(tempTime, query > queryTime); jausTimeDestroy(tempTime);

PAGE 170

170 if (!queryTime) { cError( "processQueryFutureStateMessage:%d: Error creating queryTime \ n" __LINE__ ); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } } else { cError( "processQueryFutureStateMessage:%d: Unknown query type value! (type=%d) \ n" query >queryType); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } // We'll retrieve the BYTEA of the object estimator from the result of the // previous query hexString = postgresDbGetResultValueByColumnName(0, "estimator_solution" ); // Take this hexString and shove it! No really, let's do something useful // with it, like make a couple object predictors xPredictor = predictorFromHexBuffer(hexString + characterCount, &characterCount); yPredictor = predictorFromHexBuffer(hexString + characterCount, &characterCount); // ok... we should test these if (!xPredictor || !yPredictor) { cError( "processQueryFutureStateMessage:%d: Error creating x and y predictors. \ n" __LINE__ ); jausTimeDestroy(queryTime); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } // We'll need a spot to put these values pointLla = pointLlaCreate(); if (!pointLla) { cError( "processQueryFutureStateMessage:%d: Error creating pointLla. \ n" __LINE__ ); genericPredictorDestroy(xPredictor); genericPredictorDestroy(yPredictor); jausTimeDestroy(queryTime); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } // We'll also need one of these b/c the estimators are done in UTM space pointUtm = pointUtmCreate();

PAGE 171

171 if (!pointUtm) { cError( "processQueryFutureStateMessage:%d: Error creating pointUtm. \ n" __LINE__ ); genericPredictorDestroy(xPredictor); genericPredictorDestroy(yPredictor); jausTimeDestroy(queryTime); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } // Ok... now THIS is our future estimator right here pointUtm >xMeters = genericPredictorEstimate(xPredictor, jausTimeToSeconds(queryTime)); pointUtm >yMeters = genericPredictorEstimate(yPredictor, jausTimeToSeconds(queryTime)); // We are done with our predictors, and should destroy them genericPredictorDestroy(xPredictor); genericPredictorDestroy(yPredictor); // We need to transform from UTM to LLA to put this in the message // Since we don't know what UTM zone this object w as in, we can ask the // DB for the utm_init_longitude and initialize utmLib with that pointLla >longitudeRadians = atof(postgresDbGetResultValueByColumnName(0, "utm_init_longitude" )); // Now we'll call utmInit with that point utmConversionInit(poi ntLla); // We're done with this, so we'll get rid of it pointLlaDestroy(pointLla); // OK... now we're free (and safe!) to use utmLib to do the reprojection pointLla = pointUtmToPointLla(pointUtm); if (!pointLla) { cError( "processQueryFutureStateMessage:%d: Error creating pointLla. \ n" __LINE__ ); jausTimeDestroy(queryTime); queryVksObjectFutureStateMessageDestroy(query); reportVksObjectFutureStateMessageDestroy(report); return JAUS_FALSE; } // Lastly, we'll add our estimate to the reportObject vectorAdd(dataSet >dataPoints, pointLla); // One last thing to do is go ahead and put the // objectTime stamp in the message jausTimeDestroy(dataSet >timeStamp); dataSet >timeStamp = jausTimeCopy(queryTime); // done with our UTM point, let's destroy it pointUtmDestroy(pointUtm);

PAGE 172

172 // GREAT! Now we have done the object estimate... we have to do the // feature class estimates Luckily, they are easier (I think) for (i = 0; i < query >featureClassCount; i++) { // First, we'll ask the DB if this object & fcId exists // We're only going to need the fc_estimator_solution for each result // (which should only be 1!) // NOTE: We'll use our "snapshot" view here. This allows us easy access // to the JOIN of object Table and fcTable sprintf(sqlQuery, "SELECT fc_id, fc_data_type, fc_estimator_solution FROM snapshot WHERE objectid=%d AND fc_id=%d;" query >objectId, query >featureClassIds[i]); queryResult = postgresDbQuery(sqlQuery); // Test the results // REALLY only should be 1 result if (queryResult != 0 || postgresDbGetResultCount() != 1) { cError( "processQueryFutureStateMessage:%d: FeatureClass (id=%d) for object (id=%d) not found in dataBase. \ n" __LINE__ query >featureClassIds[0], query > objectId); continue ; } // Great. Now we need to add a featureClass to our object fcClass = featureClassCreate(); if (!fcClass) { cError( "processQueryFutureStateMessage:%d: FeatureClass constructor. \ n" __LINE__ ); continue ; } fc Attribute = featureClassAttributeCreate(); if (!fcAttribute) { cError( "processQueryFutureStateMessage:%d: FeatureClass constructor. \ n" __LINE__ ); featureClassDestroy(fcClass); continue ; } // Stick some basic fc info in here fcClass >id = atoi(postgresDbGetResultValueByColumnName(0, "fc_id" )); fcAttribute >dataType = atoi(postgresDbGetResultValueByColumnName(0, "fc_data_type" )); // Ok.... now we have to get our estimator and run it // get the fc_estimator_sol from our db results hexString = postgresDbGetResultValueByColumnName(0, "fc_estimator_solution" ); characterCount = 0; // Take this hexString and ... do something useful with it, like make a // fc predictor fcPredictor =

PAGE 173

173 predictorFromHexBuffer(hexString+characterCount, &characterCount); if (!fcPredictor) { cError( "processQueryFutureStateMessage:%d: FeatureClass predictor failed. \ n" __LINE__ ); continue ; } featureClassA ttributeFromDouble(fcAttribute, genericPredictorEstimate(fcPredictor, jausTimeToSeconds(queryTime))); jausTimeDestroy(fcAttribute >timeStamp); fcAttribute >timeStamp = jausTimeCopy(queryTime); // Add this featureClass and attribute to report >vectorObject vectorAdd(fcClass >attributeHistory, fcAttribute); vectorAdd(report >vectorObject >featureClasses, fcClass); // We're done with this predictor, so we'll get rid of it genericPredictorDestroy(fcPredictor); } // Send the report txMessage = rep ortVksObjectFutureStateMessageToJausMessage(report); if (txMessage) { if (query >scFlag == JAUS_SERVICE_CONNECTION_MESSAGE) { // Service Connection Query txMessage >scFlag = JAUS_SERVICE_CONNECTION_MESSAGE; txMessage >sequenceNumber = message >sequenceNumber; } else { // Non SC Query txMessage >scFlag = JAUS_NOT_SERVICE_CONNECTION_MESSAGE; txMessage >sequenceNumber = 0; } txMessage >source >id = wmvks >address >id; txMessage >destination >id = query >source >id; nodeManagerSend(wmvksNmi, txMessage); jausAddressToString(txMessage >destination, sqlQuery); jausMessageDestroy(txMessage); } // Clean up jausTimeDestroy(queryTime); reportVksObjectFutureStateMessageDestroy(report); queryVksObjectFutureState MessageDestroy(query); return JAUS_TRUE; }

PAGE 174

174 Prediction Algorithm Solver Functions The following is the solver functions for the polynomial and linear predictors. These are included to show the details of the SNOPP implementation and how GSL is used. Line ar Predictor // Linear Predictor Solver Function int linearEstimatorSolver(GenericPredictor linearEst) { // Solution in the form Y = beta0 + beta1 X unsigned int i = 0; unsigned int startIndex = 0; double *xArray = NULL ; double *yArray = NULL ; LinearEstimatorSolution sol = NULL ; // Solve the problem using the LinearEstimator algorithm if (!linearEst) { cError( "linearEstimator:%d: Pointer is NULL. \ n" __LINE__ ); return CIMAR_FALSE; } if (!linearEst >dataArray) { cError( "linearEstimator:%d: Cannot solve because linearEst >dataArray is NULL. \ n" __LINE__ ); return CIMAR_FALSE; } sol = (LinearEstimatorSolution) linearEst >solutionStruct; if (linearEst >dataSize < sol >confMinimumPointCount) { cError( "linearEstimator:%d: Cannot solve because linearEst >dataSize <= sol >confMinimumPointCount (%d < %d). \ n" __LINE__ linearEst >dataSize, sol >confMinimumPointCount); return CIMAR_FALSE; } if (linearEst >dataSize > sol >confMaximumPointCount) { s tartIndex = linearEst >dataSize sol >confMaximumPointCount; linearEst >dataSize = sol >confMaximumPointCount; } // Allocate memory for the x array xArray = ( double *) calloc(linearEst >dataSize, sizeof ( double )); if (!xArray)

PAGE 175

175 { cError( "linearEstimator:%d: Cannot solve because error allocating memory for xArray. \ n" __LINE__ ); return CIMAR_FALSE; } // Allocate memory for the y array yArray = ( double *) calloc(linearEst >dataSize, sizeof ( double )); if (!yArray) { cError( "linearEstimator:%d: Cannot solve because error allocating memory for yArray. \ n" __LINE__ ); free(xArray); return CIMAR_FALSE; } // Setup StartX sol >startX = linearEst >dataArray[startIndex].x; // Setup the xArray & yArray for (i = 0; i < linearEst >dataSize; i++) { xArray[i] = linearEst >dataArray[startIndex + i].x sol >startX; yArray[i] = linearEst >dataArray[startIndex + i].y; } gsl_fit_linear(xArray, 1, yArray, 1, linearEst >dataSize, &sol >beta0, &sol >beta1, &sol >cov00, & sol >cov01, &sol >cov11, &sol >chiSq); free(yArray); free(xArray); return CIMAR_TRUE; } Polynomial Predictor // Polynomial Predictor Solver Function int polyEstimatorSolver(GenericPredictor polyEst) { int i = 0, j = 0, k = 0; double yMean = 0; // Need storage for interim solutions // power values from interim solutions of size confWindowCount int *solPower = NULL ; double *solBeta = NULL ; // Interim Solution Data DataPoint *tempData = NULL ; // subset of dataArray for interim solutions int tempDataSize = 0; // Solution parameters double *pValue; // need one of these for each confMaximumOrder double *tempBeta; // need confMaximumOrder+1

PAGE 176

176 double *typeOneSSModel; // need confMaximumOrder+1 double ssError; double msError; double yEstimate = 0; PolyEstimatorSolution sol = NULL ; sol = (PolyEstimatorSolution) polyEst >solutionStruct; // Solve the problem using the PolyEstimator algorithm if (!polyEst) { cError( "polyEstimator:%d: Pointer is NULL. \ n" __LINE__ ); return 1 ; } if (!polyEst >dataArray) { cError( "polyEstimator:%d: Cannot solve because polyEst >dataArray is NULL. \ n" __LINE__ ); return 1; } if (polyEst >dataSize < sol >confMinimumPointCount) { cError( "polyEstimator:%d: Cannot solve because polyEst >dataSize < sol >confMinimumPointCount (%ld < %d). \ n" __LINE__ polyEst >dataSize, sol >confMinimumPointCount); return 1; } // Allocate memory for solPower solPower = ( int *) calloc(sol > confWindowCount, sizeof ( int )); if (!solPower) { cError( "polyEstimator:%d: Problem allocating memory for solPower. \ n" __LINE__ ); return 1; } // Alloc ate memory for solBeta // This is [confWindowCount][confMaximumOrder+1] solBeta = ( double *) ca lloc((sol >confWindowCount (sol >confMaximumOrder+1)), sizeof ( double )); if (!solBeta) { free(solPower); cError( "polyEstimator:%d: Problem allocating memory for solBeta. \ n" __LINE__ ); return 1; } pValue = ( double *) calloc(sol > confMaximumOrder+1, sizeof ( double )); if (!pValue) { free(solBeta); free(solPower);

PAGE 177

177 cError( "polyEstimator:%d: Problem allocating memory for pValue. \ n" __LINE__ ); return 1; } tempBeta = ( double *) calloc(sol >confMaximumOrder+1, sizeof ( double ) ); if (!tempBeta) { free(pValue); free(solBeta); free(solPower); cError( "polyEstimator:%d: Problem allocating memory for tempBeta. \ n" __LINE__ ); return 1; } typeOneSSModel = ( double *) calloc(sol >confMaximumOrder+1, sizeof ( double )); if (!typeOneSSModel) { free(tempBeta); free(pValue); free(solBeta); free(solPower); cError( "polyEstimator:%d: Problem allocating memory for typeOneSSModel. \ n" __LINE__ ); return 1; } // Ok... now we can solve this problem // First, let go through the data and collect some statistics // Calculate deltaXMean sol >deltaXMean = 0; for (i = 1; i < polyEst >dataSize; i++) { sol >deltaXMean += polyEst >dataArray[i].x polyEst >dataArray[i 1].x; } sol >deltaXMean /= polyEst >dataSize; // We need to setup sol >power for this analysis sol >power = sol >confMaximumOrder; // *********************** NOTE ******************************* // We need to put a check in here to ensure that confWindowStepSize > // confMaximumOrder If that is NOT true, we can still do the analysis, // but we have to skip X generations of the window until tempData >= // confMaximumOrder Really we should NOT analyze less that // PE_MINIMUM_DATA_FACTOR confMaximumOrder data in a generation i = 0; tempDataSize = sol >confWindowStepSize; while (tempDataSize < sol >confMaximumOrder PE_MINIMUM_DATA_FACTOR) { i++; tempDataSize = sol >confWindowStepSize i; } // Analysis of windowCount

PAGE 178

178 // NOTE: the i=0 is NOT a bug, it is left out because the loop above sets // up our i value for (; i < sol >confWindowCount; i++) { // Allocate memory for tempData tempDataSize = sol >confWindowStepSize*(i+1); // Need to check if tempDataSize > polyEst >dataSize // If this is true, we've run out of data! // In this case, we'll run the analysis to the end of the data, // then exit if (tempDataSize > polyEst >dataSize) { tempDataSize = polyEst >dataSize; } // Check if previously allocated if (tempData != NULL ) free(tempData); // this is equal to i confWindowStepSize tempData = (DataPoint *) malloc( sizeof (DataPoint) tempDataSize); // Copy subset from dataArray memcpy(tempData, &polyEst >dataArray[polyEst > dataSize tempDataSize], tempDataSize* sizeof (DataPoint)); // WOO HOO... let's fit a polynomial fitPolynomial(tempData, tempDataSize, sol >confMaximumOrder, tempData[0].x, &solBeta[i*sol >confMaximumOrder]); // Calculate some statistics parameters // Note, right now the only ones acutally needed (or used) are ssError ssError = 0; for (j=0; j < tempDataSize; j++) { yMean += tempData[j].y; yEstimate = estimate(sol >confMaximumOrder, tempData[j].x tempData[0].x, &solBeta[i*sol > confMaximumOrder]); ssError += pow(tempData[j].y yEstimate, 2); } yMean /= tempDataSize; // Calculate the msError for F Test statistic msError = ssError / (tempDataSize (sol >confMaximumOrder+1)); // Now its gets complicated // we need to fit a polynomial of each order 1, 2, 3... // confMaximumOrder for (j = 1; j <= sol >confMaximumOrder; j++) { // fit a polynomial to the dataset with a power of j // put the results in tempBeta fitPolynomial(tempData, tempDataSize j, tempData[0].x, tempBeta); // take our newly fit lower order polynomial and collect some data typeOneSSModel[j] = 0; for (k = 0; k < tempDataSize; k++)

PAGE 179

179 { yEstimate = estimate(j, tempData[k].x tempData[0].x, tempBeta); typeOneSSModel[j] += pow(yEstimate yMean, 2); } // Type I SS // typeOneSSModel[j] typeOneSSModel[j 1] // F Statistic // typeOneSumSquares[j] / msError // P Critical Value from F Test(df1=1, df2=n (k+1)) pValue[j] = gsl_cdf_fdist_Q((typeOneSSModel[j] typeOneSSModel[j 1])/msError, 1, (tempDataSize (sol >confMaximumOrder+1))); } // Now we have to analyze these p values and find the proper order // this is the minimum order we are analyzing j = sol >confMinimumOrder; while (j < sol >confMaximumOrder && pValue[j+1] < sol >confPCriticalValue) j++; solPower[i] = j; // Usually we would draw conclusions once all the solutions are known // But we want the lowest order with the most history (in case of a tie // for order) Since the history is increasing and order is being // minimized, we can actually do this during evaluation // The current solution has an order less (or equal), // therefore it is better if (solPower[i] <= sol >power) { sol >power = solPower[i]; sol >historySize = tempDataSize; sol >startX = tempData[0].x; // We solve the final polynomial for this dataset // with the proper power fitPolynomial(tempData, tempDataSize, sol >power, tempData[0].x, sol >beta); } // This is a special check for tempDataSize == polyEst >dataSize // This was a sign that we were at the end of the data and need to // exit, like now if (tempDataSize == polyEst >dataSize) { break ; } } // Free Memory free(tempData); free(typeOneSSModel); free(tempBeta); free(pValue);

PAGE 180

180 free(solBeta); free(solPower); return 0; } // Polynomial Least Squares Fit int fitPolynomial(DataPoint *data, int dataSize, int power, double xOffset, double *coefficients) { int i, j; double chisq = 0.0; gsl_matrix *xMatrix = NULL ; gsl_matrix *covarianceMatrix = NULL ; gsl_vector *yVector = NULL ; gsl_vector *solutionVector = NULL ; gsl_multifit_linear_workspace *workspace = NULL ; // power + 1 because of constant parameter power++; // Create an xMatrix of size (dataSize x power) xMatrix = gsl_matrix_alloc(dataSize, power); // Create the yVector of size (dataSize) yVector = gsl_vector_alloc(dataSize); // Allocate the solution vector solutionVector = gsl_vector_alloc(power); // covariance matrix allocation covarianceMatrix = gsl_matrix_alloc(power, power); // Allocate workspace workspace = gsl_multifit_linear_alloc(d ataSize, power); // Populate the xMatrix and yVector for (i = 0; i < dataSize; i++) { for (j = 0; j < power; j++) { gsl_matrix_set(xMatrix, i, j, pow(data[i].x xOffset, j)); } gsl_vector_set(yVector, i, data[i].y); } // Least Squares Fit of data gsl_multifit_linear(xMatrix, yVector, solutionVector, covarianceMatrix, &chisq, workspace); for (i = 0; i < power; i++) { coefficients[i] = gsl_vector_get(solutionVector,i); }

PAGE 181

181 // Free allocated resources gsl_matrix_free(xMatrix); gsl_matrix_free(covarianceMatrix); gsl_vector_free(yVector); gsl_vector_free(solutionVector); gsl_multifit_linear_free(workspace); return -power; }

PAGE 182

182 APPENDIX C NUMERIC EXAMPLE The purpose of this appendix is to present a numeric example of the Statistics Based N th Order Polynomial Predictor (SNOPP) which was presented in Chapter 3. Of the purposes of this example, a known 3 rd order polynomial will be used to generate a series of dat a. A random quantity of error is added to these data points to better represent real world data. The resulting dataset is then evaluated and the resulting polynomial is determined using the SNOPP algorithm. The following 3 rd order polynomial was used to generate the sample dataset: This was used to generate a dataset with 40 values which are shown in Table C 1. The SNOPP algorithm first looks to fit a high order polynomial to the dataset. For t his example a 5 th order polynomial was used. The least squares method was applied as outlined in chapter 3 (Equation 3 7) and the polynomial solution yielded was The SNOPP algorithm now investigates each of the values to see if they are statistically significant to the dataset. To do so, a polynomial of each order up to the 5 th order must be calculated using the same least squares method. This yields a collection of polynomials whi ch can be sequentially tested in a Type I Sum of Squares method. The F Statistic for each is calculated as shown in Equation 3 8. First the Mean Squared Error (MSE) of the dataset is calculated using Equation 3 9 as follows:

PAGE 183

183 Next, the SS Model term is calculated for each using equation 3 10. The solution for is shown. The others are done similarly and are listed in table C 2 Note that the term was found previously by fitting a polynomial to the dataset with a maximum order of 4 Finally, the F Value for each order can be calculated using Equation 3 8. The example below is for the 4 th order test. Others are similar and results are included in Table C 2. Finally, the P Critical values are analyzed. Here, the 4 th order and higher terms are rejected because they have a P Critical value above the 0.2 threshold which indicates a greater than 20% cha nce that those terms are not statistically significant. This indicates the true solution is 3 rd order. Therefore the 3 rd order polynomial fitted previously is said to be the proper solution. Here the solution is This is

PAGE 184

184 reasonably close to the original polynomial used to generate the data which was

PAGE 185

185 Table C 1 Dataset used in numeric example n X Value Y Value Y Value with Error Error 1 0 626 626.527643 0.527643 2 0.2 626.22064 626.641172 0.420532 3 0.4 626.56912 625.787754 0.781366 4 0.6 627.07328 628.071084 0.997804 5 0.8 627.76096 627.510589 0.250371 6 1 628.66 627.010799 1.649201 7 1.2 629.79824 629.510619 0.287621 8 1.4 631.20352 630.902289 0.301231 9 1.6 632.90368 631.187051 1.716629 10 1.8 634.92656 634.287322 0.639238 11 2 637.3 638.266131 0.966131 12 2.2 640.05184 641.14496 1.09312 13 2.4 643.20992 643.671636 0.461716 14 2.6 646.80208 645.279907 1.522173 15 2.8 650.85616 652.397536 1.541376 16 3 655.4 655.518128 0.118128 17 3.2 660.46144 660.469276 0.007836 18 3.4 666.06832 665.11101 0.95731 19 3.6 672.24848 671.784873 0.463607 20 3.8 679.02976 678.361989 0.667771 21 4 686.44 686.564124 0.124124 22 4.2 694.50704 696.33044 1.8234 23 4.4 703.25872 701.383478 1.875242 24 4.6 712.72288 712.838421 0.115541 25 4.8 722.92736 723.331611 0.404251 26 5 733.9 734.933894 1.033894 27 5.2 745.66864 745.143632 0.525008 28 5.4 758.26112 756.637866 1.623254 29 5.6 771.70528 771.254488 0.450792 30 5.8 786.02896 784.966236 1.062724 31 6 801.26 802.414973 1.154973 32 6.2 817.42624 815.503091 1.923149 33 6.4 834.55552 835.913328 1.357808 34 6.6 852.67568 851.049287 1.626393 35 6.8 871.81456 872.889215 1.074655 36 7 892 891.107437 0.892563 37 7.2 913.25984 911.984246 1.275594 38 7.4 935.62192 934.408955 1.212965 39 7.6 959.11408 959.920287 0.806207 40 7.8 983.76416 982.771937 0.992223

PAGE 186

186 Tabl e C 2 Statistical Values from n umeric e xample Order SS Model F Value P Critical Value 1 385980.150741 319128.952406 < 0.0001 2 444363.750019 48271.645160 < 0.0001 3 445587.652161 1011.924079 < 0.0001 4 445588.491338 0.693833 0.410677 5 445589.206968 0.591684 0.447080

PAGE 187

187 LIST OF REFERENCES [1] JAUS, "Reference Architecture Specification ver. 3.2," JAUS Working Group, 2004. [2] N. Nilsson, "Shakey the Robot," in Technical Note 325 Menlo Park, CA: SRI International, 1984. [3] J. Leonard and H. Durrant Whyte "Simultaneous map building and localization for an autonomous mobile robot," in IEEE/RSJ International Workshop on Intelligent Robots and Systems 1991, pp. 1442 1447. [4] C. Wang and C. Thorpe, "Simultaneous l ocalization a nd mapping with detection and tracking of moving o bjects," in IEEE International Conference on Robotics & Automation 2002. [5] M. Montemerlo, S. Thrun, and W. Whittaker, "Conditional particle filters for simultaneous mobile robot localization and people t racking," in IEEE Internationa l Conference on Robotics & Automation (ICRA) 2002. [6] D. Hahnel, D Schulz, and W. Burgard, "Map building with mobile robots in populated e nvironments," in IEEE/RSJ International Conference on Intelligent Robots and Systems 2002. [7] D. Hahnel, R. Triebel, W. Burgard, and S. Thrun, "Map building with mobile robots in dynamic e nvironments," in IEEE International Conference on Robotics and Automation 2003. [8] D. Vasquez, F. Large, T. Frai chard, and C. Laugier, "Moving o bstac prediction for autonomous n avigation," in 8th International Conference on Control, Automation, Robotics and Vision Kunming, China, 2004. [9] A. Stentz, "Optimal and efficient path planning for partially known e nvironments," in IEEE International Conferen ce on Robotics and Automation 1994, pp. 3310 -3317. [10] P. F iorini and Z. Shiller, "Motion planning in dynamic environments using velocity o bstacles," International Journal of Robotics Research, vol. 17, 1998. [11] F. Large, S. Sekhavat, Z. Shi ller, and C. Laugier, "Towards real time global motion planning in a dynamic environment using the NLVO c oncept," in IEEE International Conference on Intelligent Robots and Systems 2002. [12] S. Petti and T. Fraichard, "Safe motion planning in dynamic e nvironments, in International Conference on Intelligent Robots and Systems 2005. [13] J. Berg, D. Ferg uson, and J. Kuffner, "Anytime path planning and replanning in dynamic e nvironments," in IEEE International Conference on Robotics and Automation 2006.

PAGE 188

188 [14] K. Bel ghith, F. Kabanza, L. Har tman, and R. Nkambou, "Anytime dynamic path planning with flexible probabilistic r oadmaps," in IEEE International Conference on Robotics and Automation 2006. [15] J. Albus, "4D/RCS: A r eferen ce model architecture for intelligent u nmanned ground v ehicles," in SPIE 16th Annual International Symposium on Aerospace/Defense Sensing, Simulation and Controls 2002. [16] C. Schlenoff, R Madhavan, and T. Barbera, "A hierarchical, multi resolutional m o ving object prediction approach for aut onomous on road d riving," in IEEE International Conference on Robotics and Automation 2004. [17] C. Schlenoff, R. Madhava n, and Z. Kootbally, "PRIDE: A hierarchical, integrated prediction framework for autonomous o n road d riving," in IEEE International Co nference on Robotics and Automation 2006. [18] I. Dagli, M. Brost, and G. B reuel, "Action recognition and p rediction for driver assistance systems using dynamic belief n etworks," in Conference on Agent Technologies, Infrastructures, Tools, and Application s for E Services 2002, pp. 179 194. [19] I. Dagli and D. Reichardt, "Motivation based approach to behavior p rediction," in IEEE Intelligent Vehicle Symposium 2002. [20] J. Franke, B. Satterfield, M. Cza jkowski, and S. Jameson, "Self awareness for vehicle safety and mission s uccess," in Unmanned Vehicle System Technology 2002. [21] T. Bandyopadhyay, Y. Li, M. Ang., and D. Hsu, "A greedy strategy for tracking a locally predictable target among o bstacles," in IEEE International Conference on Robotics and Au tomation 2006. [22] F. Large, D. Vasquez, T. Fkaich ard, and C. Laugier, "Avoiding cars and pedestrians using velocity obstacles and motion p rediction," in IEEE Intelligent Vehicles Symposium 2004. [23] Y. Sheng and Y. Wu, "Motion Prediction in a high spe ed, dynamic environment," in IEEE International Conference on Tools with Artificial Intelligence 2005. [24] C. Wong B. Lin, and C. Cheng, "Fuzzy tracking method with a switching grey prediction for mobile r obot," in IEEE International Conference on Fuzzy Systems 2001. [25] A. Elnagar and A. H ussein, "An adaptive motion prediction model for trajectory planner s ystems," in IEEE International Conference on Robotics & Automation 2003. [26] E. Bevil acqua and T. Kimura, "Obstacle movement prediction consideri dynamics and a priori k now ledge of its g oals," in IEEE International Conference on Industrial Technology 2002.

PAGE 189

189 [27] A. Foka and P. Trahanias, "Predictive autonomous robot n avigation," in IEEE/RSJ International Conference on Intelligent Robots and Systems 2002. [28] P. Rigaux, M. Scholl, and A. Voisard, Spatial Databases: With Application to GIS San Francisco: Morgan Kaufmann Publishers, 2002. [29 ] OpenGIS Consortium, "OpenGIS simple features s pecification for SQL," in OpenGIS Project D ocument 99 049 : OpenGIS Project Document 99 049, 1999. [30] R. Gting and M. Schneider, Moving O bjects D atabases Amsterdam Boston: Morgan Kaufmann, 2005. [31] O. Wolfson, B. Xu, S. Cham berlain, and L. Jiang, "Moving objects databases: issues and s olutions ," in 10th International Conference on Scientific and Statistical Database Management 1998. [32] O. Wolfson, L. Jiang, A. Sistla, S. Chamberlain, N. Rish e, and M. Deng, "Databases for tracking mobile units in real t ime," in International Conference on Database Theory 1999. [33] O. Wolfson, H. Cao, H. Lin, G. Trajcevski, F. Zhang and N. Rishe, "Management of dynamic location i nformation in DOMINO," in 8th International Conference on Extending Database Technology: Advances in Database Technology 2002. [34] A. Sistla, O. Wolfson, S. Chamberlain, and S. Dao, "Modeling and querying moving o bjects," in IEEE Conference on Data Engineering 1997. [35] A. Sistla, O. Wolfson, S. Chamberlain, and S. Dao, "Quer ying the uncertain position of moving o bjects," Lectu re Notes in Computer Science, vol. 1399, pp. 310 317, 1998. [36] G. Trajcevski, O. Wolfson, K. Hinrichs, and S. Chamberlain, "Managing uncertainty in moving objects databases," ACM Trans. Database Syst., vol. 29, pp. 463 507, 2004. [37] A. Meystel and J. A lbus, Intelligent Systems: Architecture, Design, and Control New York: Wiley, 2002. [38] JAUS, "World Model Knowledge Store Components ver. 1.5.1," JAUS Working Group, 2005. [39] 005. [40] MapInfo Corporation, "SpatialWare for SQL Server v4.8 User Guide," 2004. [41] ESRI, "ArcSDE: Advanced Spatial Data Server," 2006. [42] [43] Refractions Research, "PostG IS Manual v. 1.1.2," 2006.

PAGE 190

190 [44] MySQL, "MySQL 5.1 Reference Manual," 2006. [45] Version 8.2," 2004. [46] Safe Software, "Feature Manipulation Engine (FME) Readers and Writers, 2005. [47] OpenGIS Consortium, "Registered Products," 2006. [48] Refractions Research, "Geometry Engine Open Source," 2006. [49] GNU, "GNU Science Library," 2007. [50] B. Touchton, T. Galluzzo, D. Kent, and C. Crane, "Perception and p lanni ng architecture for autonomous ground v ehicles," in Computer vol. 39, December 2006, pp. 40 47.

PAGE 191

191 BIOGRAPHICAL SKETCH Daniel A. Kent was born in Winter Park, Florida. He was raised in Winter Springs, Florida and graduated from Lyman High School. He received a B.S. in Aerospace Engineering from Embry Riddle Aeronautical University in Daytona Beach, Florida in 2002. Mr. Kent is currently a Graduate Research Assistant at the Center for Intelligent Machines and Robotics (CIMAR) at the University of Florida. He is an active member of the Joint Architecture for Unmanned Systems (JAUS) Working Group and the Society of Automotive Engineers (SAE) AS 4 committee, both of which are working to establish a standard focused on the interop erability of robotic systems. He was also a member of Team CIMAR, a participant in the 2004 and 2005 DARPA Grand Challenge competitions, in which the NaviGATOR autonomous ground vehicle placed 8 th in the 2004 event and 18 th in 2005. After graduation, D r. Kent will continue his career as an engineer working on unmanned robotic vehicles at Defense Technologies Inc. in Gastonia NC.