<%BANNER%>

An Implementation of an ultrasonic indoor tracking system supporting the OSGI architecture of the ICTA lab

University of Florida Institutional Repository
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 E20110109_AAAAWW INGEST_TIME 2011-01-09T14:43:32Z PACKAGE UFE0000617_00001
AGREEMENT_INFO ACCOUNT UF PROJECT UFDC
FILES
FILE SIZE 34416 DFID F20110109_AABJZM ORIGIN DEPOSITOR PATH winkler_b_Page_130.jpg GLOBAL false PRESERVATION BIT MESSAGE_DIGEST ALGORITHM MD5
b25e277f0c1068c39a8775f6f55a7499
SHA-1
8da01136eb86ca8c46428504367d5e549e735fc4
1208 F20110109_AABJYY winkler_b_Page_105.txt
9563ef53dcb4d7166a0827f7810cd156
58d996da9d0b89cbae9202f77d9d8629bf2198a7
85147 F20110109_AABKFH winkler_b_Page_146.jpg
923fa05975bb4ce43b723b1bbed6e106
13b2ec854e8dabdf00ef3c898d746113cf592079
40284 F20110109_AABKES winkler_b_Page_131.jpg
cdb482bbf149d2c7305a6786d102dac1
de245379be0d70d905614f8b7ea8bec3b87b143c
2410 F20110109_AABJZN winkler_b_Page_008.txt
27fbb17ceaaee92024e1049a68a96fd6
3606f0bfe8f94230ada26ee574595fd4db7939d0
1797 F20110109_AABJYZ winkler_b_Page_032.txt
6b01f5307fbf17524d9573ba8c2bc983
c6642cca26f4e7e014e9b8ed740f622e93d749b4
35743 F20110109_AABKFI winkler_b_Page_147.jpg
2b17bdc6182992f0eeb696425fa61ea4
0ca3991bf5e93cb380fa75cdb23568b261a9b345
35622 F20110109_AABKET winkler_b_Page_132.jpg
9ea8fc9ebcb4fd0e60c210dcbf1975ba
4fa9affcdcd0327c40819c3e3503ab1fd7d6f778
6619 F20110109_AABJZO winkler_b_Page_022thm.jpg
1842d4bd944d06dc6a2cad3ed03605c4
0569f265bd0227d6e0a4f60a7983d250d1d77fb1
15327 F20110109_AABKFJ winkler_b_Page_148.jpg
ba1f8db00d019d26a8790345c3a15525
ef438224810f771a8ea09eb7482467244bb998ca
40338 F20110109_AABKEU winkler_b_Page_133.jpg
006af4aec7a4a580a4583c09ce79702b
b3b066b0c436bab826f2845f4dae222112c0ddc7
59412 F20110109_AABJZP winkler_b_Page_046.jpg
140eb36e753c12552f9c9e834d897bad
a7240352f109053a5539670a1b56aab03fa4eefa
25658 F20110109_AABKFK winkler_b_Page_001.jp2
c478687ecda5040667dd26909f0ba335
e66faa0840eead7e171a70c3f0c9a7a8f171d045
36418 F20110109_AABKEV winkler_b_Page_134.jpg
f907776fad928103aa873403e19ff028
55a4f02e90d140ad4e0d47b106dc4b8b3c6a20c7
12218 F20110109_AABJZQ winkler_b_Page_112.QC.jpg
b465935c98b1c8aba5604f2511caa646
0e89bc7cd55a182d323a53e1b964633bec606f15
40531 F20110109_AABKEW winkler_b_Page_135.jpg
a8fbcc300191d63371b26a7a2527e1c9
cb63b744da86ddbb7bbd9548edb789306113f1bd
17406 F20110109_AABJZR winkler_b_Page_073.pro
eabd98adf0de8d8fbdb32acedfe94a3e
cc327caa1fee800069637345cf6df98be558b608
107526 F20110109_AABKGA winkler_b_Page_018.jp2
32d3d3c0c80c5856e92e1f894893f6b7
58574c8b3fa9d528efeefd278743ebef5aea1009
5613 F20110109_AABKFL winkler_b_Page_002.jp2
3dfb167bcc962b64d684c29def729259
fc45a18cc98d44c424657b1512c5f6a3e1d27199
37944 F20110109_AABKEX winkler_b_Page_136.jpg
3dde73197aeb5a3ef56b7fb0b6007127
4cdfaa4ab5fe7cab4ad9c48e59811e1b23d3d184
13731 F20110109_AABJZS winkler_b_Page_115.QC.jpg
72b0254bf892118fa64ac1124ff3f008
83e3fa029cbc41f432a19e25583c32ab080e0328
1051975 F20110109_AABKGB winkler_b_Page_019.jp2
047ff536cee3e75dc5308b4eeb74eee8
6890ce91efed37b970a25c1f65b53e762d480a1a
13061 F20110109_AABKFM winkler_b_Page_003.jp2
64bcf96109a7a40eed28287ac65f90d0
b41ec75665a63b00f2b9dd4d11a9134b4ae5b1bd
40644 F20110109_AABKEY winkler_b_Page_137.jpg
3380c2aee338481794acaee6e2bc04f1
cdc6a4bc91254b0fec9835498fcd99f42fb4680c
11351 F20110109_AABJZT winkler_b_Page_120.QC.jpg
0d2e43843be5325ce433c54b87592d40
64b730d91e1c68dfe638fe21f44e1e2399f25770
742041 F20110109_AABKGC winkler_b_Page_020.jp2
396312f3697a1255d633af2055acda15
05a0c98c3b43298338872c776435323063faf9fa
31334 F20110109_AABKFN winkler_b_Page_004.jp2
d2628e69630ca11baa21441a45b29f20
0227ea1f5d7302904d009f217ef3da798661cfac
38476 F20110109_AABKEZ winkler_b_Page_138.jpg
11fbcea8d58665d1f38be312aeb48bfd
6e743fb67a44be282b744eba7e1ff47bfb764b06
81415 F20110109_AABJZU winkler_b_Page_057.jp2
7c2ab794bc817cda18d7939291b45353
06dfe646c1fe1399f329f66fa0655b9ee6958563
61783 F20110109_AABKGD winkler_b_Page_021.jp2
a385f3072bc78e13852a3faa6f53afb3
f6957b584388d2505469e9a0ab39d4a645ddd455
1051973 F20110109_AABKFO winkler_b_Page_005.jp2
e680fdae659a17bded7ea86be0cd4982
dad8f910a18dcf3cfb8c198701bd6b0a443e2e5d
19178 F20110109_AABJZV winkler_b_Page_058.QC.jpg
3eb0ffcd8c2d3ad1bfb0d007063924ee
f5e32f167eda0a1a40562dbea0567ec9fd55ff89
1051967 F20110109_AABKGE winkler_b_Page_022.jp2
acc5a195d2adf04b9e32d17e8c74dd1a
53573672d44413aaeb956e256b7a4aac8c42bb0b
1051956 F20110109_AABKFP winkler_b_Page_006.jp2
761db332f9364aa38d96e44f5edcb8b9
e63bff998846234078543d2af436da02b29597c7
651 F20110109_AABJZW winkler_b_Page_065.txt
45a87871e7c7ea5da9ad4e0e0d4b9df5
3002960021a16e24240b1432888d0504369e9c2d
767836 F20110109_AABKGF winkler_b_Page_023.jp2
bdf3b153fef7f289731ae0a24308f85f
d9fcb5aa201159985030a7e4469afe12acf0939a
478530 F20110109_AABKFQ winkler_b_Page_007.jp2
ababc9e4a7e32615de50c5961bd3629b
643ff89b7cd2b442cc2ae9a7cc95d2723e61e9ed
51617 F20110109_AABJZX winkler_b_Page_110.jp2
68e1565110508b6191a9bb7cdac974c0
ff3f4c9844a3fbee6de87b8da97318e958b13e81
656100 F20110109_AABKGG winkler_b_Page_024.jp2
e507a6c8146857126532af720dff7033
e8798614e532386b7f3a14659accd1c7de5487e3
F20110109_AABKFR winkler_b_Page_008.jp2
a185889563bc47ba07fe339a532d4f70
245d8c183337ea6037bd1c1220ea9d181090c1bc
47493 F20110109_AABJZY winkler_b_Page_136.jp2
03409a6031790721065b09e47e5e590e
874d99c93cafdd85db0a83c051eebe9ede2fd5c3
83280 F20110109_AABKGH winkler_b_Page_025.jp2
42f9ff4f6426d2228763b490a9cee22a
533ca306666a54c567cebfef37912421a4cdde43
1051984 F20110109_AABKFS winkler_b_Page_009.jp2
d2552edf6530822b425a60a3b7e77e18
f8548a1bb780d88111d95fb2ccb7c1f2d607315f
16381 F20110109_AABJZZ winkler_b_Page_055.QC.jpg
94a35cd173026adf83ad2af13e3da0bb
2f8eb83d8f056b62b6d497c149082d77d118bb9b
96277 F20110109_AABKGI winkler_b_Page_026.jp2
8c3dbf6b3d1fd4dfdd9f6a22bc2f92ec
c2a410a28ae8080b6a0b201d36005269819e8793
75848 F20110109_AABKFT winkler_b_Page_010.jp2
517ce33c044c70db248af1325339afdc
6d8cbac4f036a3c050de4a341a17d210dd98b9f9
103298 F20110109_AABKGJ winkler_b_Page_027.jp2
4b945054bdd323869cafae8791129067
098b5b2e3d5135a7a17fbbf7b321497e1b256553
92270 F20110109_AABKFU winkler_b_Page_011.jp2
2e7535812eb27dbd7f6fa46661e942de
9f10c68e1df26621337875ff9140932be6831b72
831935 F20110109_AABKGK winkler_b_Page_028.jp2
1562f69cb1318eb5982e3e03ab5b221e
08a107ebf793537fc8ba2bd4ce1b46947226f70e
100437 F20110109_AABKFV winkler_b_Page_012.jp2
3bbb9b79b4f5f634a3840c42fb1129a8
2beb17c02991b687a3e8f3a2aaaa055c49dce266
F20110109_AABKGL winkler_b_Page_029.jp2
b56843dbff564cef45041b9840a8e1c7
6b29b3456e09ac6a10bdbafae79f0b2ccb63bf27
670299 F20110109_AABKFW winkler_b_Page_013.jp2
ce8317e7b4ecdad7117e6bcbb1f4e031
9dd0441ecac0d05a9b43ea7ee6d6fa27973d3977
17385 F20110109_AABKFX winkler_b_Page_014.jp2
78e06252a3d010387d751253ae4456a4
f0ffb9cf45b8f5220631e4681f7b9f6c181c95ca
722147 F20110109_AABKHA winkler_b_Page_046.jp2
2e653d765d69b88028a71ea5d31ed25f
16c497a625c08a1c57b676878aaa2ba3c96bc3b0
78893 F20110109_AABKGM winkler_b_Page_030.jp2
561af7f337348c8c29db5f69847741b6
f0f62d313dba68f3584d1e3546249cbbbe516e45
87592 F20110109_AABKFY winkler_b_Page_015.jp2
76d612e1e34204f308a617a399564702
434ccce34d7b7fd1800290a97b928eb92bf2fe03
90391 F20110109_AABKHB winkler_b_Page_047.jp2
1d7eaf0359c5d280ea90ac3fea9a4bd4
06c806efc42a501fb3a6054888aa9f95fb07e596
1051884 F20110109_AABKGN winkler_b_Page_031.jp2
2d0bcf5630b8cf138497111ddf9ae037
241c526ea0b6697323bc03c0cc0eface2cc5be33
787369 F20110109_AABKFZ winkler_b_Page_017.jp2
451df0bbe9e4de710c72d61be12f8ac5
e59ebd62573bd42d67a505f9965cd77d8b60391f
81545 F20110109_AABKHC winkler_b_Page_049.jp2
ad14dc75005b5663cf9e1e5c832ea2b3
6edf0096688aea5a3a4bd509ee8dbdad6d115780
9613 F20110109_AABKGO winkler_b_Page_033.jp2
d52cbe2da4b24489697f2dd9c623c34e
50a8e16b2358d824c0418eea6683b20141a81983
98266 F20110109_AABKHD winkler_b_Page_050.jp2
466249e00bbf529ce6b1c568a5643992
5c1270228fa90196eb9c89bfd67c0d5c59f3aedf
55461 F20110109_AABKGP winkler_b_Page_034.jp2
fd860f505931900b6c7b9d91e0bc85fe
66c74b1d19a62a5c343bc410bb7a2b8410793b40
1044673 F20110109_AABKHE winkler_b_Page_051.jp2
f24b1f49ddf4e02727d5b4204afed37a
2670bde4d3d0b514583ac16b971aaeea0dc1d62e
99331 F20110109_AABKGQ winkler_b_Page_036.jp2
1d8da23f5cc9a9891547e4a2a74c049b
27110185c6b205e80358e9d3a265971480dfe822
101165 F20110109_AABKHF winkler_b_Page_052.jp2
487920a6e263534b0d8d10ca60cfb1a5
8d1df7406a6ad47e1bb64fff5a025d4d7d9ddde9
715404 F20110109_AABKGR winkler_b_Page_037.jp2
3a67bd25f72d48d518571d05ee77ef46
118ccc33d4b8591bb8fe301815b89ca3c89168f7
610628 F20110109_AABKHG winkler_b_Page_053.jp2
2e51694f3fa25739059cb7c0a934783a
0274b4bb4bb7c74e3f85686a64c500f08d616cf6
715948 F20110109_AABKGS winkler_b_Page_038.jp2
60aaa602d8ae47283127cc9e18c7d529
8142051650e4dfd6f8b32472fbaf9f323caba879
666604 F20110109_AABKHH winkler_b_Page_055.jp2
92627d6460cf4d87bcf01524993587e2
dd15481d831df97d9a274a5797b69f17f3437da2
637027 F20110109_AABKGT winkler_b_Page_039.jp2
a220b634d92a1ad929f6eb934c5f90d2
ddc54d34eb50c9331a2471a9be2727cd0d0aea86
525531 F20110109_AABKHI winkler_b_Page_056.jp2
bba3d34f41f9e5cf55288861fb663d8d
7aa5265f754269f70b8b6a8968993153f32c368a
33118 F20110109_AABKGU winkler_b_Page_040.jp2
0c716344c815d6e1294ef85290230cf4
d7e0e3870522c0a446d4526e5b903d7eda05ab58
744106 F20110109_AABKHJ winkler_b_Page_058.jp2
5badefe755de436c40debbadef90b1cc
17e901fc543e49c71d2ea06d1a3ede6ebbc7ad8e
680020 F20110109_AABKGV winkler_b_Page_041.jp2
830c476f5b0f1aed4e2328787ee22140
f4ec523b5e2021bdeee4795e1378dc5bee0a98b5
723729 F20110109_AABKHK winkler_b_Page_059.jp2
aaa22b5fe1697b4fac3e2b322ebd6566
051d8915b60872e11ba96c5ddba0b252c3cd0970
522784 F20110109_AABKGW winkler_b_Page_042.jp2
78a3f09446577b20093df9f294681bec
406d5d938f8eceddd5e19475f04e2217712b8502
43807 F20110109_AABKHL winkler_b_Page_061.jp2
e25cd5353228f237750d5da908de2167
0e4fc59a0076a03817131a4181951c0bc3827522
254316 F20110109_AABKGX winkler_b_Page_043.jp2
de23d4e7001e98c3e1d994231c61fe6e
690f6e5ecc4fb9c3b255bd98b0e93d9ad58230d0
63128 F20110109_AABKIA winkler_b_Page_081.jp2
a6d28d2fa85336909f4cb0f72c1c1017
454edec8d5efc777ae5054ca68ec87118c5cc61a
1051677 F20110109_AABKHM winkler_b_Page_062.jp2
acdad63ccf7d08b48d1bc5cdf98368b6
be1073b3ba14ff59c84b6fd1d069f85764ce2722
F20110109_AABKGY winkler_b_Page_044.jp2
f44b7a8de06a5c910a2d059382280072
1fae824429c6081ba5c5f1015b32cfc3e9cbf030
66380 F20110109_AABKIB winkler_b_Page_082.jp2
8356640ff47c755006f3ff3b63d0dbf0
43206f6c140ac87fa957d7d404c44c35b45d21f1
341235 F20110109_AABKGZ winkler_b_Page_045.jp2
f2f5104eaa10028ea29b85fd4b833254
b80169d13dbb69b5e9dfa8dfbb5e934368b6a380
63187 F20110109_AABKIC winkler_b_Page_083.jp2
6761a9aacb6825b0265196afe7950d96
6f3e58bd1b2230461f45b033449dcbccada00e25
1051589 F20110109_AABKHN winkler_b_Page_063.jp2
661f123f14756f4eee7c19b50567d643
af10455e22d1231467529d7f733b6e50cc9fa434
48987 F20110109_AABKID winkler_b_Page_085.jp2
bdc263c07ab393f3433b6ee300d18ad5
ba499aa3fd90802f4bdf510550f1095e7f755d20
1051986 F20110109_AABKHO winkler_b_Page_064.jp2
9947ec9362e14300a0a9e3d1178e327c
71b3acef64eadd4a6681c115389f0d08aee8a93c
49729 F20110109_AABKIE winkler_b_Page_086.jp2
4f7aa81012863448cf9fd39586de165d
066d191c4da24709056e869979bfb0621e3c5a59
1051844 F20110109_AABKHP winkler_b_Page_065.jp2
0f70ced7372431fcd55e500b8a157608
b4950513bf040f99b45484dda646dfd547e1acfc
49797 F20110109_AABKIF winkler_b_Page_087.jp2
d9874166af61e696faa0e70df85b9f64
9bbc2ec5694b0b973ac3e29610cc00d718a44865
F20110109_AABKHQ winkler_b_Page_068.jp2
d82ae91eb8993b7a45b60bec241effca
040f66f15c175d3fca8dfb876c64d69305d9e9fd
63201 F20110109_AABKIG winkler_b_Page_090.jp2
5cd22f0dd0e092cbc92a3ecd13ef4a1f
6e45ee48d4adee556b9d15b8c1cdb896ee4e5e79
1051915 F20110109_AABKHR winkler_b_Page_069.jp2
50639f8299f2ca3a9647366f50859357
f0354b2e6ff68f5d75b1e473b9ec7a6bc4271904
51530 F20110109_AABKIH winkler_b_Page_091.jp2
cb88e16ab3cca461c6d62f9236305cd7
4b87dc69f30b537df6b84c42e959260ab4741219
748263 F20110109_AABKHS winkler_b_Page_070.jp2
0e053aab1170a2562ed4d0e092c02600
0d6cc39c18e096d069539b5aadef17140f012175
92280 F20110109_AABKII winkler_b_Page_092.jp2
363d86a47ccb3a4a77560170fdd57a05
aff3d4900aa6983b57d7398d6f0eb68bbcf592b8
51140 F20110109_AABKHT winkler_b_Page_071.jp2
b74bda7aef9d66373456b6eaac40a840
e81856e5814790998c367a9c6d001182d0267cf7
53024 F20110109_AABKIJ winkler_b_Page_093.jp2
28eb9e7e15f8ee6e236cbe49e599e39a
525110d6b4aaee46084edf82bf61b006faba8c2e
88142 F20110109_AABKHU winkler_b_Page_074.jp2
d36b9859a0b7bb791ef83e6452c029c0
9507b2c20ce08b099a219ed011aecfd95ae224ab
69816 F20110109_AABKIK winkler_b_Page_094.jp2
36fe93aeb3a5a3b975100f12bb423f59
c2af01431aae69536d2362bc30e48b283edff2e2
101214 F20110109_AABKHV winkler_b_Page_075.jp2
a87d283b9e34c773191ee44148d5fd3c
255205b32f102ef2c57918fe90891a81212b9c87
67508 F20110109_AABKIL winkler_b_Page_096.jp2
dd428c26a2d52fa41689ab9ca4c308d4
c5ad5e4a75da12932e614205115ec934198a873a
30621 F20110109_AABKHW winkler_b_Page_077.jp2
8c2d8e32537c7366058b69f2f32e77e9
0d1672cdfb43ed528a0294b4e8ab63f7dd5c1ae5
45378 F20110109_AABKJA winkler_b_Page_118.jp2
5329e5483c37a609c3133e80d91fd940
67176f980211c97f092f2d68d71d09176a7bbdc1
52166 F20110109_AABKIM winkler_b_Page_097.jp2
bdd4d246234fba80377011041b98ecff
ad5a498691d074ceee43c3269c4d21bade49e1bb
74887 F20110109_AABKHX winkler_b_Page_078.jp2
f9fa3e8aa04ac2ec3756e28cb98031bb
3b8d8ced4167b6be4b056053b5eac90397f19a1d
43345 F20110109_AABKJB winkler_b_Page_120.jp2
4ddac4dd22e12b1551bad7c51c470bc9
ac1c5ea150e5c810707b88f23059d0571f81e01e
59326 F20110109_AABKIN winkler_b_Page_098.jp2
059e37b2d6ca9c7e715d013d1696d579
fde03dc2cdf06bb04af9e10b19feeb682ac4eff6
63732 F20110109_AABKHY winkler_b_Page_079.jp2
c05b6335e22c2ef23f9131c91e9549b6
61aa1ae5ffe7aca3d435a9ee66d75d6fcf397c18
50271 F20110109_AABKJC winkler_b_Page_121.jp2
4e055893d6aa161242ec7f46fde3d0f4
da1e150da45c83ebed9c6b3f43f73681467412f4
60135 F20110109_AABKHZ winkler_b_Page_080.jp2
86676f8b0a6d2bc6dec36c866aaed6ff
50fa3ae0f16ca495d2589bc067360e61002c2822
44178 F20110109_AABKJD winkler_b_Page_122.jp2
8f65038c4760d6ef453591dd783d1a13
a8c98b3b1bfab9f0b23f79f83648671f76874381
60734 F20110109_AABKIO winkler_b_Page_099.jp2
540d4590de0085133dcb99a6ac17bc33
f56adb3faf2efca687f6565b1b34f07951c82493
105538 F20110109_AABKIP winkler_b_Page_101.jp2
1773c38a719a42096a1b498c4fdd341f
41db4cf4ce1bd10cc75c92b56cdbcd51f6f8c22e
45215 F20110109_AABKJE winkler_b_Page_123.jp2
18822d6f738a494acee6860383c092e0
21b57f8097d2232320aa8b51f0b486fd83f88f42
62675 F20110109_AABKIQ winkler_b_Page_103.jp2
a4177e9b31aa4b9d4cff1c37603f64aa
be5ea19b5679ad84fcea78a8938bb5d3d3f753f8
42129 F20110109_AABKJF winkler_b_Page_124.jp2
d2e17a78e1bb921c694361c0f60360a2
da2b4a3990478140261a5984411f5c70708d7fc6
62032 F20110109_AABKIR winkler_b_Page_105.jp2
f10327feae85ff1673f819a48b7fbbea
2fe51a361519db98b702baeea9315d29086b0013
50354 F20110109_AABKJG winkler_b_Page_125.jp2
89e5b37c98e19ed258d4e45f78975101
17e16865ef5ce7500c1e1aea8014fb56edcc8c47
51473 F20110109_AABKIS winkler_b_Page_106.jp2
c034139ca2a77c6abaf97705eddfbdac
9822786ade9ccf43db587fbd6c57450858783b3e
44236 F20110109_AABKJH winkler_b_Page_126.jp2
bc1bee13614a78902ade16d652311e3e
dafe060880bc3410400f287e9a75b2bf7f1d5601
58254 F20110109_AABKIT winkler_b_Page_107.jp2
bd32e8b88fae01ff4a3339a38e032047
d55820c63d7e97ea1ffee2182bf87dc0c15cca02
47902 F20110109_AABKJI winkler_b_Page_127.jp2
5b0c9ebe8c7849871ee6d286104ca25d
7dd8ea32e700b72dc0a76e1250c9711173864be6
63100 F20110109_AABKIU winkler_b_Page_109.jp2
5862d318e681a6c656ac957c1bc850c7
296d5b0bdf58987530580be4c0fe68398297d4bf
41340 F20110109_AABKJJ winkler_b_Page_128.jp2
21878fd40b34bd745698ff4cd771bd89
f69fd706fcb52a5e7712bd250df6139dcae654e6
59337 F20110109_AABKIV winkler_b_Page_111.jp2
aae11a22aeb69b342202adb7b9ef8882
2f7c771c5f2f003a4556e6fb64963fb7e5329e09
50402 F20110109_AABKJK winkler_b_Page_129.jp2
3af7ac5d7dcddcd215c0f312d51563a4
92478eb1e5b16315db6e9111730b59ad0af0c767
50567 F20110109_AABKIW winkler_b_Page_114.jp2
d689a2832ce08c26b61d50297f288713
2a882741f46c28b018291b13755e90b6c9700535
47036 F20110109_AABKJL winkler_b_Page_130.jp2
dbe2c3942c9b764f969cc96227fa3fc3
b4cee383f19c27c2b7728aaf3112f3c9ae2b7794
58021 F20110109_AABKIX winkler_b_Page_115.jp2
a8417dc7c84579ed50980e4aaadbc9e7
f1e0ddb4088cf1cfa386a40d66e48b2b9f6ccf2d
1053954 F20110109_AABKKA winkler_b_Page_002.tif
485edaba4171382d41a3b6b19263827b
a41666748426cf81c621ed273b423aaac20e3266
46718 F20110109_AABKJM winkler_b_Page_132.jp2
938908bc195032a0c3195e95a1a4c484
a6c34b2f4c2e7c8deec932cb45efcf87b9c6c3c8
48310 F20110109_AABKIY winkler_b_Page_116.jp2
0e2d1244d0f5108bba60c58fcadf3c9e
d70e869e65569c27bced364a27b80cef00ab046e
F20110109_AABKKB winkler_b_Page_003.tif
7632499f0f9b1e7d47e38c300dae92c8
684ca1326018f54873cc9152390019019653150b
51038 F20110109_AABKJN winkler_b_Page_133.jp2
1503c0468377ce4e87a034e8f1bb935d
e70442a50443070fdf1e7edce2f4d4dfaf6bac5c
52934 F20110109_AABKIZ winkler_b_Page_117.jp2
33f7b7405b6adb6f0ef85a963ffbd356
91f6d7764c4aa47f5c3b3a697574f4c9989f73b2
F20110109_AABKKC winkler_b_Page_004.tif
01745e3ef2dd540f85adc19b524e81ec
ca5ec477391a3719d77d1f4269f2c91cc3c3804c
46222 F20110109_AABKJO winkler_b_Page_134.jp2
e91d1203129426f19fe7d211025c7464
f57cc9c29b1d774e03f1668ed27a0aafc6ffc33f
25271604 F20110109_AABKKD winkler_b_Page_005.tif
2d5ca14d3d79601c7536747046a16dbd
510277b09cf6f61c8b1f6cc50ac4236b09987f54
F20110109_AABKKE winkler_b_Page_006.tif
71bdafec541ea7281d61db8afe021f77
432cdde8f9b0b6cd5a25bf1d2004cd8e67f2e3d0
55344 F20110109_AABKJP winkler_b_Page_137.jp2
a9bda0591ca4bec8dbf17bed823e6b86
543c06e5f2e6830cd610d5261025cf4366394a06
F20110109_AABKKF winkler_b_Page_007.tif
b0f1c66e880e81e0b780963cea68442a
44a038a52bf8b874e20fa50b37602d2a29d9917b
49946 F20110109_AABKJQ winkler_b_Page_138.jp2
ff7b521084ba97774151549662c0e210
a461fb9ad59a21757347b74e4690ef7f56c712bf
F20110109_AABKKG winkler_b_Page_008.tif
8918d02aeff408aab00da50c0dff2c26
9616aa8c72f25fd8c1b6f4e501dfc01ca9ac9cf5
43645 F20110109_AABKJR winkler_b_Page_140.jp2
8feb50e28ae9e7a54c88be801a4359ae
4b6dc27b3b71b9068188e7487796d064f960a331
F20110109_AABKKH winkler_b_Page_009.tif
f6ea47f4b8d85f1d85b9d26194a5f639
6bce428ef920f72faf0a9c0250fd639487c3c275
51803 F20110109_AABKJS winkler_b_Page_141.jp2
f2c92d971c83436b2e2f165d29fe2dea
f9004d948737e3d7009e37bc569743f7c2b0f3a7
F20110109_AABKKI winkler_b_Page_010.tif
43042a07348139c0fa99697b67413c83
f7c345e93e679a13ed5e0c89efb31c26a0225d18
46012 F20110109_AABKJT winkler_b_Page_142.jp2
5384339bc88a39e65c6358f80ac26f55
f32f08b8b85eeb5689552c90a38574fd8a203cb8
F20110109_AABKKJ winkler_b_Page_013.tif
5d76321fc0150ff56846b6a89be7a883
c5d5465c9ca27a2e9cf5c92569ec09c3845c8a43
54243 F20110109_AABKJU winkler_b_Page_143.jp2
ad5e3c8a396375f7fd13d6fd86b13868
fe4c93736c25c84c6178950ec76c51342cb3269a
F20110109_AABKKK winkler_b_Page_014.tif
d60e622eb4cc1275042f0ac7ccf3e878
dd3f03884da9ed6fca2ff4eb992efccb28c8e67d
46307 F20110109_AABKJV winkler_b_Page_144.jp2
6ffce2594d6740d72fd71a46527b914d
e7230a1cd18db528f2a41d57fa5d15f92a38d8ba
F20110109_AABKKL winkler_b_Page_017.tif
60062f8801313d5585a9cb3a46e96fb4
d4caa70948dc7571b5f3b3967619e3fbbc48f69e
36732 F20110109_AABKJW winkler_b_Page_145.jp2
08adcc7608f82bf7a8f3ec25c2a69863
331ff30b678cb2ec453f60d3e877dd6a46f377d7
F20110109_AABKLA winkler_b_Page_035.tif
02615ff52e9f6f1f4cd5dd82b612b6e9
9f566ede2787e792b7d3bec0a663641f413e4b9d
F20110109_AABKKM winkler_b_Page_018.tif
38ccac95895cb37f670bcfc320cc11f2
6456989c12fe80bbed1fd1517f5350b188424702
1051963 F20110109_AABKJX winkler_b_Page_146.jp2
f47beb75cc6665612e60ca5a074f67de
660a1d05e4da988abf67cc92e1bfdedc4877e33d
F20110109_AABKLB winkler_b_Page_036.tif
f6136e91c8567e8b0c291257417f6509
28d70f2dc8e3531b5c9b63ad88adaf257b08aa18
F20110109_AABKKN winkler_b_Page_019.tif
017c8dc1d4ccf7bb138d286f80476508
6754ead3fb6af1225c0b13906413305e07936eef
628188 F20110109_AABKJY winkler_b_Page_147.jp2
affdf6dadc9883e8d25a0bfadb628ab6
b65a5c2a7adb369269daeae13bf23daa2da21208
8423998 F20110109_AABKLC winkler_b_Page_038.tif
706ea0efc2939e80e82d1648ef17ceac
e09024cee9734df5a72fcd28b716d3e6f9ba8a63
F20110109_AABKKO winkler_b_Page_020.tif
d17202a4267e687cddbba9baa5f3d6d2
986c1ce88e14028b57e9d8106ff3d5709bcf76f5
19091 F20110109_AABKJZ winkler_b_Page_148.jp2
40b92004b1027c87d44db7d9eca89746
f127afbd652c2c1451d1194d8d4d3663565fd2ee
F20110109_AABKLD winkler_b_Page_039.tif
348ff006bac355af9f1365dbaf7d1a12
7d29800672cbb597e2d932ac9cf514bf46ae3e58
F20110109_AABKKP winkler_b_Page_021.tif
e7160aff93988a526daccc824cfbb96d
771c323a5aa420ca416ee91a288f003c8c863058
F20110109_AABKLE winkler_b_Page_040.tif
e79f7e60277a96158721811e98ae59e0
2c2a39da9f05fc90cb1c6044646f5369cc9c8dc9
F20110109_AABKLF winkler_b_Page_043.tif
6eebd20b61217240d0ac8e87c7e95894
884ad62137bd3e196b6d9ee767a9f3d215b7dbeb
F20110109_AABKKQ winkler_b_Page_022.tif
1f228f64b7aec7deb136919b003f0d44
f0ff2f9441eca2b4f7c6a18bdc1b0f83c8768af1
F20110109_AABKLG winkler_b_Page_044.tif
ec447c34cfd950c9db0972f5f4671878
31184441ff713c17018e9b42e4448656261e5384
F20110109_AABKKR winkler_b_Page_024.tif
247a4e999926ce0c1941fa6502591dfd
8e84fba539e614701beb2bbbdc9b69746581213a
F20110109_AABKLH winkler_b_Page_045.tif
bac819d8bb93d477470c68d1c78dadb5
eb27174933fbc920101f6ed07d47979f0b659774
F20110109_AABKKS winkler_b_Page_026.tif
ee240573ed299b11a8ae58e187fc740e
57201cf030c959813a0d4a0ecb652fffa7a904ae
F20110109_AABKLI winkler_b_Page_046.tif
09108810a532d26d2e5fb18095a7d7ec
e70de49f50f845ba48121e56657ba1c138279288
F20110109_AABKKT winkler_b_Page_027.tif
40d830bb47d65ec8a4b6a64ffcb04263
55c0d58f214d6bf7755b1c99e935308a41e0fd77
F20110109_AABKLJ winkler_b_Page_047.tif
5ba518dbac096ff43637f596486ebff4
ccb02b30b70a4843c36589e1ed971de0adc7814d
F20110109_AABKKU winkler_b_Page_028.tif
117d9eab65e1be86534b8dbc36cb59bc
62969319e84718d1e6e4bd0b2d7e3e3930a1e603
F20110109_AABKLK winkler_b_Page_048.tif
0b8e48ce465874a11370aec7b1ad1aa7
592613a6fe03c860e2ba6b9facf91479fa4b343d
F20110109_AABKKV winkler_b_Page_029.tif
733754440d1cd3b8386f828f2bb07159
b6f5b00fff481976d1936951b643accc4f8ea6e6
F20110109_AABKLL winkler_b_Page_049.tif
49869ed2107d70fb6af643397925609b
8f34a9fe9982d4a36016355f4744f3b2bec7d4c5
F20110109_AABKKW winkler_b_Page_030.tif
005321a67eaa9e0e3090f035e5dcaa48
dc6d3eb4efb255dc1c5f1fb4482915ea025fdba5
F20110109_AABKLM winkler_b_Page_051.tif
ab2f43f902628779ea99db4d7712e59e
1ff66a64563d7450e7a79b73a19f74bd7fa43598
F20110109_AABKKX winkler_b_Page_031.tif
6d877a4afeb38750f65436f9af1cb0e6
3e8a3019f457cc23e9a037179f77813e0da06bd9
F20110109_AABKMA winkler_b_Page_066.tif
daf5ecbc6aa28b255c88082ba6e10410
94e7a14949a069d3f28ca8235bd0f14ee0d5595f
F20110109_AABKLN winkler_b_Page_052.tif
2821732ac5706f59969b62e74cf8fa8d
1e1ef299e3ebf3cbc2472d6ab1c44c4b2635d007
F20110109_AABKKY winkler_b_Page_032.tif
36f15cc249cd5b8f0522e2bea6a56be9
56926b83b9dfeb96234b8166554368c78bea11b2
F20110109_AABKMB winkler_b_Page_067.tif
a788120ae818b440f18dc2c294c63e6c
146cae9859aeda73a8906f02b212f4f0281e6ed8
F20110109_AABKLO winkler_b_Page_053.tif
07c6e6f742244334c3aa61262e811cc1
8a7d2c84a4dad02fca47efada1bf12089ef6b690
F20110109_AABKKZ winkler_b_Page_033.tif
3dd9606d087fbb84402817ff92d37264
e26cf3727c108747a39c6458c67228411a9f3ef6
F20110109_AABKMC winkler_b_Page_068.tif
41b397fda43d948057f4c9821676cd89
9d2b0c1c2d0c6c95e0762cbd9a8c3422cc5e01c7
F20110109_AABKLP winkler_b_Page_054.tif
1326db6f015f37b629090aa458390d26
f9e40b324498fe1f61bca8a3c764261a904fe97b
F20110109_AABKMD winkler_b_Page_069.tif
888274e1dad15455e952aaedf45dabb5
93ab449e1fb601abcec6ad8dd41f75053ae29f93
F20110109_AABKLQ winkler_b_Page_055.tif
6e94e77b1a686dc4c317e849177fe456
c4700da94b99eaf4bc7b8741d309f91d69e9173c
F20110109_AABKME winkler_b_Page_070.tif
f55eeee8b1ddcb10c8d94fc6e858ae07
cd9ad3e1859d6536f70547662eec7aad7ab3dfd8
F20110109_AABKMF winkler_b_Page_071.tif
9d5cc9e9d93c02dc094b59ef4805aa22
f9e3071641d87693498739e50f1f9de8c062eb8b
F20110109_AABKLR winkler_b_Page_056.tif
457a48ae6e769a6253939fa9aeae1f48
fae4419c340d9305e2b110aaa7a00d4411b7b35a
F20110109_AABKMG winkler_b_Page_072.tif
a54f6aec08e9ced1cb281d33a8e95ba4
1599d414730b8db99ff508f4742aebb8b633e982
F20110109_AABKLS winkler_b_Page_057.tif
2a29aaa7685ab8cf6d1e69a290cd75e5
ef8480ac319e51bf295ebaab9f7aa3af76942d3e
F20110109_AABKMH winkler_b_Page_074.tif
c4349c0b077743f912bc2f609e0448a0
efc2bf556038897e24bf63a7a022a0eaaf8b11c2
F20110109_AABKLT winkler_b_Page_058.tif
ecadfd2c5cdee4b921321bc7067e7025
3c3cd78b0ef680379beef6a84da455f2192c2a51
F20110109_AABKMI winkler_b_Page_075.tif
729101048a315afb53ede6e381cdce6a
01d8aa6f5c2a6339639bec5c4973832bc9288892
F20110109_AABKLU winkler_b_Page_059.tif
57000e20f77888e0590aba5ce5f9c61a
abf7f4fdfab0189ddb85a4d86d23ca74deca145a
F20110109_AABKMJ winkler_b_Page_076.tif
244b289f931207581b0a57fc877a099b
2e7926209777edda2e976ae98cabf5a6f3daa657
F20110109_AABKLV winkler_b_Page_060.tif
69b0e99ed9b71ce7ab1d0233c6696fb0
3b5e728343c340721d8b0c949b890753957d3818
F20110109_AABKMK winkler_b_Page_078.tif
67733543e27500bca1c790833ed97b69
3b1e89c2e7c7313c716cc53952d6b63677bc3485
F20110109_AABKLW winkler_b_Page_061.tif
655efbe6a82bbb99ca4749fd0ac7e6f6
fe7e5332c0904a8e1d5625ab7fe47a797a38ca41
F20110109_AABKML winkler_b_Page_080.tif
0be7d57fb3b9177cc6e48a1d8d4d28ec
5b57e6c3a00b518eacb445da7eb71e467f27b383
F20110109_AABKLX winkler_b_Page_062.tif
acbadf0e93839aa560d7a141d27f8c0b
4da5e7524dd4bbb7c196bf03481be2e57321504f
F20110109_AABKNA winkler_b_Page_096.tif
a9f000f4ed99884fe5c6fbfe91f0499d
db166042d60365600d95e290d58a9bc50c64a94f
F20110109_AABKMM winkler_b_Page_081.tif
624ffb9f7768e1d8b1565115f1c206df
c3d34dcc47c9239d7720b48944d44141a5b5b804
F20110109_AABKLY winkler_b_Page_063.tif
a6ed6d86c34879993132ba0d2d8e69c6
e63991ced12ec2df3a257c803785db627983ba5d
F20110109_AABKNB winkler_b_Page_097.tif
b1766d109fb1c0fd054ad048ad190be1
c7e0f245564cb21c9b377478ef2fc5c88137af3b
F20110109_AABKMN winkler_b_Page_082.tif
231e9fa1141648025a7763725fc93be9
10e62ac74f612463cd3935f729ff29eed7070261
F20110109_AABKLZ winkler_b_Page_064.tif
9f1acd4bac14e19cf31bf6b7ddf971af
754ba044415649555de79034dede39aba3c95eb2
F20110109_AABKNC winkler_b_Page_098.tif
ac2c9dd2f77f766a4b09b2aee0643147
b14bfb4b60b6de95acd6b25a25557790f27e4334
F20110109_AABKMO winkler_b_Page_084.tif
1047bc66d45360975873f65110047867
bc895b462d6d32e76c4adc7cda64946899ee7eee
F20110109_AABKND winkler_b_Page_099.tif
ce4d8ad13dd34a8bf79f2a9001c9351a
a666340dd8340d1d5f20942b9b02e3088c1c9ac4
F20110109_AABKMP winkler_b_Page_085.tif
00187c8c1e36c31a8f4a79085ab86c84
167bb05598b634dd417b27076bc73d462e445a29
F20110109_AABKNE winkler_b_Page_102.tif
2becd6bd687a58287a657a6af1e6b778
d1634b275866fa22d9d2e8c0458f7600cbe0bcfa
F20110109_AABKMQ winkler_b_Page_086.tif
d6dc7f9a0af63cb8e72137b4843376e9
b405a61da7748c64f1d0f0a41247644bf7766c88
F20110109_AABKNF winkler_b_Page_104.tif
5f31fdca32d02f0e3c6a24f5c30af7b3
6faf31efee7565af7760f72e17f92379f074fc92
F20110109_AABKMR winkler_b_Page_087.tif
f5d610ba1e9b57de473bccefe86431a2
c145d4380cd42ee22b426f49e23d436c980702bf
F20110109_AABKNG winkler_b_Page_106.tif
ac9c7f3a5771b3c5af96c087c726c904
85e2b0e90e048040f26a91eb38e5cea5d99b3000
F20110109_AABKNH winkler_b_Page_107.tif
a4a672d7186cbc8e5f9152a4fa9eff54
00df81be398252f7b5e307f0bc7cacdca24db0d0
F20110109_AABKMS winkler_b_Page_088.tif
a004e9e02f00b5ea2b45518beedcb1ec
485229fea5b1017776f8656bb765d0674f7b7983
F20110109_AABKNI winkler_b_Page_108.tif
124aea3b54378ace99d75f894767a86d
dad91071f66eda66dcd2de756f7fc63a6c9f4af6
F20110109_AABKMT winkler_b_Page_089.tif
adfe9fb338fecc3af2ada937924051a8
73a019029b7afcf761421fac1f30bddc44139980
F20110109_AABKNJ winkler_b_Page_109.tif
015e2e9b74913293715e5d38bc9ece8f
8b150f68d417c081fcd1ead902911a94a267d33b
F20110109_AABKMU winkler_b_Page_090.tif
9b2af57938c8ccd1b09669601fd8a895
9636b510c9b4eee3f1b9c73d1474783c757c2cd7
F20110109_AABKNK winkler_b_Page_110.tif
67acaeb3da05e1506583362cf9b6728c
22e068e482ca99c71270d94cbf0fe98c3b0d4c44
F20110109_AABKMV winkler_b_Page_091.tif
98aace0b5555bfd6c659cfd31f267af0
061d03eb74349d2632572221f1d3d4d9fc6c69d2
F20110109_AABKNL winkler_b_Page_111.tif
3a479916a4a569b52797711d2e35aa81
2d2f310c12674d728945f6a435fda779ec93fa9d
F20110109_AABKMW winkler_b_Page_092.tif
ce5a37d73a55b381f2dff15f505d6561
5fa396743b8a8c9bc054bccddc8d315402acef50
F20110109_AABKOA winkler_b_Page_130.tif
7d4d15e8a9ded9fb9d6fba71a1b34267
765a20905c76f3e392566c932fded976d69347e7
F20110109_AABKNM winkler_b_Page_112.tif
939b5098fc500a1c5ebd717a03f4173f
6100ec3ee464d288756dddebc81baf30731f16a4
F20110109_AABKMX winkler_b_Page_093.tif
3340c16917dedf50a08d3f06eacae386
e8fa440267b4759fff3349acb9b1e29cf9f4bb10
F20110109_AABKNN winkler_b_Page_113.tif
878bfb8a0e91d863441f7db07e95f984
863d6e0d9fb726c94be026cd488bbb644eb4183d
F20110109_AABKMY winkler_b_Page_094.tif
12649d49df6b66bf70d6a72aaf7629e4
cd5f650a289b43e563fd55afe2a314bf2d5a2a69
F20110109_AABKOB winkler_b_Page_132.tif
6d4d467f42a54477d2d83c4495aa4487
f98e3d79de49f1504337dde7d751ff1ba588e284
F20110109_AABKNO winkler_b_Page_115.tif
a64a58715316c24fd5db573f8ac8bfff
7f61046c4522faadaa980cdecc97cec5dc5cedc4
F20110109_AABKMZ winkler_b_Page_095.tif
60bc71ab78db3df5236ad9696456afcc
a391642aebd8450c5752c47435276e81357ec376
F20110109_AABKOC winkler_b_Page_133.tif
d19e02b9b48c104ac87617bd81d79110
587dbf1b7eecbd550a32a97fb976f12663372f32
F20110109_AABKNP winkler_b_Page_116.tif
1c56a2889c67492fec39116f6ca6c9f4
de1f66e6234403f74d30076186bea405025a2e87
F20110109_AABKOD winkler_b_Page_134.tif
99123ba5b16527ca27cd1d56964d86d2
8ed713f443dc9e4ca4dfd76fa23abab244a3aa16
F20110109_AABKNQ winkler_b_Page_117.tif
050c6d1997dd53b148ae837db501aa56
9393c01ab7dc9a00c20ef4fec82cf7578708418b
F20110109_AABKOE winkler_b_Page_135.tif
bdc15abd2a9813d9afa7fe7466bf8e67
1f08ebd9f65f1a11e96012d3ffaf7e719937ca7f
F20110109_AABKNR winkler_b_Page_119.tif
19431fab3d857a095cb64a0b3f6cf756
dfefc91e8f4ac79aef54d7705e8c5cd5c02e3b3b
F20110109_AABKOF winkler_b_Page_136.tif
443801e58a1897281fdc65ebb66364d8
1ee156969e4b52af4214aa59c4e8954419de5c07
F20110109_AABKNS winkler_b_Page_120.tif
54233b6dd84558fcdb55b6363a0c81cb
c83e0ce8b993a4cf6b19e34c2b4dcf0c766eec22
F20110109_AABKOG winkler_b_Page_137.tif
9dcb84e8bf518d4f0b0bd6f94cb187c4
895c9b9036c39b35d2d2c0916eb101df5e98d13a
F20110109_AABKOH winkler_b_Page_138.tif
63733b9ff66dd7de036e6d22f875f50f
ddfcc549229980f27cbf6393a615d676b19d30d2
F20110109_AABKNT winkler_b_Page_121.tif
928201c076868b955145b9ac1d88bf17
1ee72d32e54c932cf26e76e3ade8656a0d559a75
F20110109_AABKOI winkler_b_Page_139.tif
a98c3e1c046a40cdbd5d6f37a6138b73
58080df078bb905ab438dcd091b1eba033f14ad1
F20110109_AABKNU winkler_b_Page_122.tif
3cae9a18f1088a28b78e29ee82e861fb
1dc36a7009061596a3a4420170d2d259fd8a5132
F20110109_AABKOJ winkler_b_Page_140.tif
7a69ed5fb09026c53368ebe3717b3ba4
7883c17848d242617e9b6a38bc41c8c9a92fc572
F20110109_AABKNV winkler_b_Page_123.tif
5cc1c8aeb49f191693085e4a2c9be5ff
b4c8bd942fa63917a5438893022ec1764f7aec1a
F20110109_AABKOK winkler_b_Page_141.tif
46d9814481ab820c8c3732d0192e5e41
8fc542cd5b93aeeed83e3e64e59e3157fe951989
F20110109_AABKNW winkler_b_Page_125.tif
48379d418b5b9f55fcc888fad698e81c
5a3d1c0e69abc9df4ce388d1430c8da8db5e6bef
F20110109_AABKOL winkler_b_Page_142.tif
d9d5c1c8bd44346eea9fe7b04adf667c
ff63c8f5f21768b586d16458c34c835f9590c272
F20110109_AABKNX winkler_b_Page_127.tif
2a28248374fc1c6649c3e0d399e70935
cb19e4f59f0af32862797e6a4bcd2a26e37ec344
27558 F20110109_AABKPA winkler_b_Page_013.pro
d802da447009a60cfd3c728e155c875c
29abcca12bcaf9081711e64ec66bc4ae14ea0900
F20110109_AABKOM winkler_b_Page_143.tif
39bdb76abdff47423ed432c0d4abe9fb
1c81119cfbe87e521841bf937880e43adb084db8
F20110109_AABKNY winkler_b_Page_128.tif
9e6abf4457e6bd8b1fb9396f0792ddfc
fa1deb0bf6e4f5961d7fb96459a6ad21029e0f17
6458 F20110109_AABKPB winkler_b_Page_014.pro
b078cce039a52f472e5da8bf42cf2c98
9b03ece61f7fbaa88f2460e77244e59beca370db
F20110109_AABKON winkler_b_Page_145.tif
a0208f264556a476e4579a75f3cad4ea
1821b725c0c3c348255388f00a9226d37a8c4f83
F20110109_AABKNZ winkler_b_Page_129.tif
207539911cd32ba47e2049a167e62926
b5cdeb894b72a9d0a25e5ede7e769f92289e2990
40519 F20110109_AABKPC winkler_b_Page_015.pro
117971bbf9da5e736446ca4aa6c35249
afbb18cfb9e7e0da42da72f71e383ca670bd4168
F20110109_AABKOO winkler_b_Page_146.tif
b62330ae3494b57fe07fa14a4f3df605
7b953d5ab94cc136282a00a7595db4e22a6d5d18
41969 F20110109_AABKPD winkler_b_Page_016.pro
c8cfd52736a397370bd0256910b4e628
26478c26052d395337fa47fe212a6fc6b2390eca
F20110109_AABKOP winkler_b_Page_147.tif
41f5ecdc78daee7642be148fbf6de9fd
06a9fedcf62087dca09e77f882ef04a07f058b0d
49942 F20110109_AABKPE winkler_b_Page_018.pro
c368acf16994183d8acd95a5a88defac
6b473c250239602d8a8c67a2f25e1976c64ecb27
1118 F20110109_AABKOQ winkler_b_Page_002.pro
3a88dba394ef57a8d58d791627299a39
9f8e2e6945dc4bbb5a675755481f01dec4fe4d83
23691 F20110109_AABKPF winkler_b_Page_019.pro
5a952b6c23b19769ebf0db42b5a3e16c
92cb1b513f76239bf16bc4e35913aa81a73e2cda
4613 F20110109_AABKOR winkler_b_Page_003.pro
922300c4abeb03456d3e9bc9979aa738
b1a707c39eff39b5d459f03648ddbe5047d09553
29411 F20110109_AABKPG winkler_b_Page_020.pro
01fa2b12755f780a73db77e5e1c93471
ae2bcbefe0b63f611f913e73f9a0ceecd59d7e49
79359 F20110109_AABKOS winkler_b_Page_005.pro
35d0e2e8e3322660fc94da7d125e028b
da87915bf1a7e9f21d42e9a3860e592db8f3d389
27842 F20110109_AABKPH winkler_b_Page_021.pro
d8327052c1d9d05a718a200884ea4dce
07a1eb15cc9e168b75bb70f94657312f07c3d95c
88882 F20110109_AABKOT winkler_b_Page_006.pro
e9762222fc3a9cd76e7e6fd3b039b8df
bb44b7c9b222b60ae2e90f12a0a1b22bdd10a710
21222 F20110109_AABKPI winkler_b_Page_022.pro
a008dd0fee8d5714bcae555aa8017818
5f7fab81e7d540764344d8eb23ca0394c5b4ca7e
13583 F20110109_AABKPJ winkler_b_Page_023.pro
559e715d3767d9788f1a00a718eecead
7792388b5c2908c53a49a8e9929b3a5837f82c20
23674 F20110109_AABKOU winkler_b_Page_007.pro
9c61d25f18a280f634cb82b09762aa2d
15f5d45aaacd1d2c5546d385de4e4ef62c2bf5ff
18330 F20110109_AABKPK winkler_b_Page_024.pro
28abbf40ac065c3b95c662ba0b158075
2f9efa0518fa680fb077968145e49072de3cedab
60313 F20110109_AABKOV winkler_b_Page_008.pro
d3aa8e71969af7a1c33510e841a95b1b
f34044a06e4e429fcb46e8b5f1c5e22ceba2ec29
37832 F20110109_AABKPL winkler_b_Page_025.pro
ff62e4a279302d05842b489b7b175606
16e6edafa681a4be0ddc69a8d9e689b6a2494d81
56996 F20110109_AABKOW winkler_b_Page_009.pro
05474df76ffd0250b506e320f63cfccc
42583f67286171cd2b5d1d4ebd1aa7286303df04
22968 F20110109_AABKQA winkler_b_Page_041.pro
1a351e487b775df9bc3da0f6c4fa1ff3
d0136a9367cadec087101d63a613ad29aa9e9776
47644 F20110109_AABKPM winkler_b_Page_027.pro
eda557915c8c4bd0e48e1926552505e5
8fbea2d89fde873b223bd56aba8a640268d87fc5
33435 F20110109_AABKOX winkler_b_Page_010.pro
363cf84bad82af26566abe3c4e137500
c7c7fe39c5d9a615d92a6d8e48382b6b1bc9d705
19420 F20110109_AABKQB winkler_b_Page_042.pro
22ec5029c351ef29164980307ba211c6
4e0eb082e138477775ccaa06320c0c47030c7373
28048 F20110109_AABKPN winkler_b_Page_028.pro
c5d8fee35e85b261c38a6fd2e38b3718
028dfbce350d3a1984ec0aa2d3feaa9619e6a3b8
42670 F20110109_AABKOY winkler_b_Page_011.pro
a7139cbf1231a34b77ee0d0bbd596c90
835e5d872f27764f43250dbe8a63d94d66693261
9121 F20110109_AABKQC winkler_b_Page_043.pro
e1ee7dc13447452e43bc183c17cc3299
57f8fcd59935613fb5adf63a44350c8afaaef99f
17157 F20110109_AABKPO winkler_b_Page_029.pro
52d88f48aa856fefba25ce917950cde9
c324442105f72bf74dba9e2b8fb7df501f82154f
46494 F20110109_AABKOZ winkler_b_Page_012.pro
342be528818b7745c603b3515880e16d
543e87691d2e379b822c7126a2649409fc90e40f
7269 F20110109_AABKQD winkler_b_Page_044.pro
05a5654ef01f244618d21566e091d329
c2dc31d6db7f721249c891537f42cf7793ab83ad
35842 F20110109_AABKPP winkler_b_Page_030.pro
c28122c8ce92d301f4c8661a27383912
e1e0165db0e407876858bcd2d8ea8991de3ce2d0
10159 F20110109_AABKQE winkler_b_Page_045.pro
17c076bc890c9435bde1f723e927f6a5
82f490fab43fc10012cb15b00025b51e592e2fa3
932 F20110109_AABKPQ winkler_b_Page_031.pro
73bde9468044d5f096cce2175f7edd61
21ab0851169c558e32216fbb4a858caab5628965
28411 F20110109_AABKQF winkler_b_Page_046.pro
d4cdb700d2d05b6dcd2981c7524bd996
d3d793a10fcc37513881b4145d8975f356074903
43494 F20110109_AABKPR winkler_b_Page_032.pro
faba1b1b6c0310a1ec6b40bbb342fccf
7bca17acf79aeb3a708f94b67bf0188c1e50d09a
41536 F20110109_AABKQG winkler_b_Page_047.pro
e06b169941bf329d36ebcdfff7484655
3cad35c2d5bbce72e22dd8723bc82b25aea7252f
2775 F20110109_AABKPS winkler_b_Page_033.pro
4ddb24e293ad8dbf9927affa1f75b048
fdb3a511db7f1e888df45e4fecd800caeaad14d2
51208 F20110109_AABKQH winkler_b_Page_048.pro
56b063b24e920194cd0e7b1746053ded
45cc50b8518d00cf64ae87fb15037d0084383d2b
F20110109_AABKPT winkler_b_Page_034.pro
754b0e7f22eee7a570de9650acbc232b
06f6da6ae541ce33b0a42500e72911feacb04680
36478 F20110109_AABKQI winkler_b_Page_049.pro
7889d07b32e65008b784f99cf851727d
491904b9e0d8a7addc24e1a259bf26c6e5a7fb2d
26498 F20110109_AABKPU winkler_b_Page_035.pro
05f3924249255f383dee1963f32b2aed
02dac51b4626a1861c5a39a6509be54cf0f1acc6
44430 F20110109_AABKQJ winkler_b_Page_050.pro
b130a0f9fab9cf5d5bf96e0f2f3a4287
55261463eb43d20da50c0ba53f9781c4f7aa3ed8
47887 F20110109_AABKQK winkler_b_Page_051.pro
f25aecb624d1f35ee862424be5c752e6
8c53b2d8f0e3fd00d1bd481b9f13f697a114c669
45902 F20110109_AABKPV winkler_b_Page_036.pro
2d60c36cfad5930d8490c4bb5cfb6fe1
6d28c3c3cbbb903b5181c3b99b70e319769aabbd
30905 F20110109_AABKQL winkler_b_Page_055.pro
fcf87eaf3582ad7b2ab33a125729c732
cb311d9a8cc148f06f1b8a0f4c0c4ff1c72347f4
29332 F20110109_AABKPW winkler_b_Page_037.pro
506e5ff459ab2315715660c92f95f8cf
0f7080fb41cdd4b53e2e07803ea87d0671cb5834
16330 F20110109_AABKQM winkler_b_Page_056.pro
206119a578538cdae8aa6b6cfc9f573f
6959a82aa1d04de8b1859d8550b56f64d68d0de3
32546 F20110109_AABKPX winkler_b_Page_038.pro
1f9e198cf290377137af74361d08e89b
f41dc52a21e897cb73a7faf79b44fd26b68bdce2
41001 F20110109_AABKRA winkler_b_Page_074.pro
2a6de2a6ab665bebad7878bcab0bb271
6f50b5e4a92d8915bde8a706635b48f387b5a210
37188 F20110109_AABKQN winkler_b_Page_057.pro
0413469867915fce177371d3dc51d8ae
54d561773cd743b1bb549bb1f9f59a46219b2642
19970 F20110109_AABKPY winkler_b_Page_039.pro
b3159e1ae68d2818a754d3af65fba5ca
bb5e870c69aac335087696a8d38c98cee0bec7b6
46695 F20110109_AABKRB winkler_b_Page_075.pro
933c28a6b9a85cd01d1fbe96c4f9f0f5
eee7d18a54304e0e4fc391df90fb2f1b4717abb0
28468 F20110109_AABKQO winkler_b_Page_058.pro
e3177655bad40f653c865aeac4132938
da0302f5d6525613a58061297fafb36a8d0fd84f
14160 F20110109_AABKPZ winkler_b_Page_040.pro
f9bc374bb279ad23af05727eb8f26a66
b322b2fd1744afd91d08e497593a7ea91322fb40
11587 F20110109_AABKRC winkler_b_Page_077.pro
a5330ca1c2477d3394b8b4e2f330a0a9
8b83dc3623cd061f48361cccdd1ec21a6be20c95
34098 F20110109_AABKQP winkler_b_Page_059.pro
0037ee02a2162f9ef15f4cf095729424
e041f4b21d3945c0a7347be6396008658b843439
47314 F20110109_AABKRD winkler_b_Page_078.pro
f2d7110b56d872e430ec395702962c6a
7c1df3e96ba7d76f04ddeff76dbef6c155f3164b
15261 F20110109_AABKQQ winkler_b_Page_060.pro
1e51d799741d602a5ed7eea4f6ddca5e
da55971e8cc1cb02aaf707fe8a4ea30145926e21
34694 F20110109_AABKRE winkler_b_Page_080.pro
27921b5f27d1e057e68748bc80298d15
65a2caafc45c764050efabe2e080c3cb51c84e10
18841 F20110109_AABKQR winkler_b_Page_061.pro
602954cc441bd244070e72c82680c90a
bd986fb948a3734e61e1b34afcea3135cc2d5020
36575 F20110109_AABKRF winkler_b_Page_081.pro
78f82e9b6b3260bf9bbf8646647a6541
782fab3e70763dfc09785ecd4b1be68bfbb6d572
24764 F20110109_AABKQS winkler_b_Page_063.pro
a3118f1140c8c1b5d83064172c283b39
4c64bb81d67cd9e7243d07014869a16527175758
40083 F20110109_AABKRG winkler_b_Page_082.pro
bc8b8d2ad678b2eebf854de0b46cc1e4
10e2a1fc1af4482469ba7325d704ee179eb2bec4
22789 F20110109_AABKQT winkler_b_Page_066.pro
a482522b2d7779898fe59fa40a6e3dba
58819d89553a375d844a18a3c7b9cbf5f01c9990
36384 F20110109_AABKRH winkler_b_Page_083.pro
5e54a2f10eacad9fec0df9a71cfcd707
ab6298791e14b3cf3df239691de11b2c80c492c2
24637 F20110109_AABKQU winkler_b_Page_067.pro
8db67135b0926c9f6e62de525427c4cc
a44066120e6a05e9ad58dd61ccb6cb9efa7eb276
35787 F20110109_AABKRI winkler_b_Page_084.pro
dd7a13cc91ad4931079880e01f767309
9a571c54c942f41de4b49595150af95c622ae4ac
17493 F20110109_AABKQV winkler_b_Page_068.pro
60c11bcf903632d8512bb93373834bd0
6e822877dccf67de201705576e063791a1a9f638
27450 F20110109_AABKRJ winkler_b_Page_085.pro
ec7d9a50acb66901b34ca5f5d8fd4ee8
127f391cfeb93409493fde92478c39ed4cf355e3
28478 F20110109_AABKRK winkler_b_Page_087.pro
9af400edb81f4ec83344e75bb871c548
9d75cc2b3892b9d72bc793bb631e611939dcd318
21237 F20110109_AABKQW winkler_b_Page_069.pro
345cbc8ad59138e9dfd6bc42ac4f8dd0
d20fbb87915799e0c2712146b5ae6eef025cc0d0
33416 F20110109_AABKRL winkler_b_Page_089.pro
088d43edfe5b0801a7bc093312984ba8
45e18b949e55be0fce8bfc058cdee47d4a699b5b
27995 F20110109_AABKQX winkler_b_Page_070.pro
cb7299adc6b881a6606979442c863490
475411a85b06939f947494492341ddf7d81eb385
23283 F20110109_AABKSA winkler_b_Page_108.pro
392fa0330bd335dbff54670a3fd70e4a
235cb7ffecb8605417c9d9eaea46caadaade7762
35407 F20110109_AABKRM winkler_b_Page_090.pro
65c88d35ee01571f927539c2e843d995
40c698a5506201af7f4f6e8ee4973b315ac5aaf8
22299 F20110109_AABKQY winkler_b_Page_071.pro
f8490ae0ff78397e1d886718b9da706e
f9a097324d6f4bd3304de8199a1b6773d3658c6d
23710 F20110109_AABKSB winkler_b_Page_110.pro
0fcaaab83b091a974f53c566565a3895
696ef3dc51117b17a51aaf8b324eae4b3f3ec168
28805 F20110109_AABKRN winkler_b_Page_091.pro
4b5373548f316f9bfad52aef86bff810
de491052d547b3ac9fc2effb98094f2fe1b8d7a5
23359 F20110109_AABKSC winkler_b_Page_112.pro
7883b59beca5bc0860c4d1a372954ce5
13e675d5ef2b6d6fa2bd040e248ad3c65e5fe178
56293 F20110109_AABKRO winkler_b_Page_092.pro
74eaabd76bd54b35d579b1c60a319e75
fcfecfb546719015f6a1dfcd70a0d3ffab85a3fe
24191 F20110109_AABKQZ winkler_b_Page_072.pro
8032128e257ccbb206fbdf5056a06c68
6c86eb6c9bd620cdc369c1e06eece128755f8ffc
25306 F20110109_AABKSD winkler_b_Page_113.pro
5daf162bc80e132ec903e4ca25d26510
e40a94bdb4293f761f1b58dc540ff53f78c5ca46
26198 F20110109_AABKRP winkler_b_Page_093.pro
8a452a15db1f889964459088683e9931
2ea80aaccd2f8d582df8de622035bb21e76b017c
24183 F20110109_AABKSE winkler_b_Page_114.pro
5264c26a5184f66538aae7d2cfa9cade
bc32f7abdadcf40a90d54ad21e60c925cf8262e4
44925 F20110109_AABKRQ winkler_b_Page_095.pro
fc8815e852a8ee4a10b565a5193a648b
f96175eb7c3ff4ed325eb1cb9298374b7e5b1afa
23582 F20110109_AABKSF winkler_b_Page_115.pro
cfb93817aa6f5699a1161e2a6e316be4
071acff73c10b16b5a29b6a2d05b454f6d18af75
36441 F20110109_AABKRR winkler_b_Page_096.pro
496cd4c02aad0268a75e6f7eb5489695
5205237424baf75413a0560caa4276148af9fab5
23276 F20110109_AABKSG winkler_b_Page_116.pro
59bcedaebb9b78cc3389ac1fe71ba1f8
ae124c94b0245b6755578be770086ea312e12c96
34218 F20110109_AABKRS winkler_b_Page_098.pro
dcb6024b581ccac297a6f99ce7f077d1
38affd36279c92f67739a87ff614b16260f7676a
24894 F20110109_AABKSH winkler_b_Page_117.pro
0f7b00d73a4a0804183e0bcb226ca8c8
47314432f000fe25a25225b2fccba968ee32b474
26451 F20110109_AABKRT winkler_b_Page_100.pro
1c4db485a2c59805b380d39f7f3b3f14
48dd407fff8b7b780ecc8a9bb6db93ddfc876ee7
22444 F20110109_AABKSI winkler_b_Page_118.pro
9ae3c81c55a33ed205f63d6ca3d2ffe8
10e77ebb03040d01675d91f5b900c061bcf7118a
54398 F20110109_AABKRU winkler_b_Page_101.pro
791dae6df37def2cae5f235d5c12a4ea
7d790ddd7ffaea6db8d440a475f9b70fa24c0add
22036 F20110109_AABKSJ winkler_b_Page_120.pro
18f30c3b7653760119cb9eb6e743ac15
c68f4f4d8f5f3a6e0448d3df1cacf59d1c18ed9b
13723 F20110109_AABKRV winkler_b_Page_102.pro
8fabca74ea168eabc6f633952d5cd4bd
1ee6299c34bede9964d82de7ac20633c40efb57d
24024 F20110109_AABKSK winkler_b_Page_121.pro
053c431fcada9a147782be3a1ad3bb6a
671e5c3b803792dcf101f5d6928e6e8278c5934d
25475 F20110109_AABKRW winkler_b_Page_103.pro
593b5d13283b8304e870fe790956257c
12460d6586ff519d616a1ca85da20602b6b3ec70
21316 F20110109_AABKSL winkler_b_Page_122.pro
5af6f855e35f1d0359f9c2fee2a71e71
755ba8de48902f5f5f2fb0e2d3d8c81da4aa2f49
20432 F20110109_AABKSM winkler_b_Page_123.pro
7eb0cc2e634917b58038c4d5b3cc10be
bb0da266c538504061d9f0bf7d5ecdfffdc1cca9
22924 F20110109_AABKRX winkler_b_Page_104.pro
e612f8e8a2d0ad913e26532c30426823
13d00921f12096c5c7d4cba069cc524b3adc5b97
23764 F20110109_AABKTA winkler_b_Page_141.pro
a9f3265d71cb6c4dbfad1b8b0d08483e
358c3b65621c4d9485f6df19e476a23b8eb1f01c
19313 F20110109_AABKSN winkler_b_Page_124.pro
4adf31bb9844f6293f24bb99f3b6f1ca
49625ee65f36588b66bf645f314ce2dd2db6c527
26656 F20110109_AABKRY winkler_b_Page_105.pro
49fae97debf7badf6197e9a74a8656e4
3e0e2adbf023554f7d60446d936f9ba94a14471a
22839 F20110109_AABKTB winkler_b_Page_142.pro
59f301964c189df099469f0e7728bdfd
bdd40eb2106c41ecfe062daec4b3e56abada302f
25067 F20110109_AABKSO winkler_b_Page_125.pro
30963b8be11f8c5876bf92c887772697
1357d0308c5c7a9ce670291cc439e16b7477d11a
25589 F20110109_AABKRZ winkler_b_Page_107.pro
54aed1f849615cc92623ae4b97a21bce
eeb7eb29d55a0bafd04c166a06e8ba41b274b10d
F20110109_AABKTC winkler_b_Page_143.pro
147a8958c050023bdaaab935e9abd738
bb50ff205d3b2aaf64a5b0fa4f57d4d8842c5e6c
19075 F20110109_AABKSP winkler_b_Page_126.pro
916f372077ce89863e7d0e7e209cac10
360e9771e6f0296c84d2f65cf46d76862213e1a3
17994 F20110109_AABKTD winkler_b_Page_145.pro
c0b0285b4f44c8039cb9b0cd4f320bcd
6d3867b09234137734cac6bdf47a48bbbe1eed90
24413 F20110109_AABKSQ winkler_b_Page_127.pro
66c90d5de2a0ecd87e2057b05d5d5448
e45b94d9e289dc8af4d8c0cd01e614ae3500a58b
45202 F20110109_AABKTE winkler_b_Page_146.pro
9a05f48e0d35014af12befedc3d32593
e7b05328d475e1b002ac9a37b3b222699d7b608a
24427 F20110109_AABKSR winkler_b_Page_129.pro
346c66a740a8693ea25bc24ff73ab250
770391e76b3514bd70e6cb4bd98dbdce19ad9901
17186 F20110109_AABKTF winkler_b_Page_147.pro
c90fdd9041650727bd9b2a366dbc7b8d
27ba5cec50fc1ad47bad1a3f1c7c112d2850ed0a
24406 F20110109_AABKSS winkler_b_Page_131.pro
f7da8b4ff1ee2d62d64825d3064c0bf3
63a913ae3c07c8f06b9dabd93dcddb7956ff49cb
6931 F20110109_AABKTG winkler_b_Page_148.pro
799ef1ecf648eb42d944d36f8c5f4ab4
acdf5db25b8ff23fe09de7b55c82fb4308608857
19736 F20110109_AABKST winkler_b_Page_132.pro
cdbac92927eef9576da9deeed7ae4f0f
45d2eab63293e74a2b133475944be322e4a198fd
467 F20110109_AABKTH winkler_b_Page_001.txt
3b3fd722925f0b92119e7fd2b7e5f43d
0f3f323bdc53e92ca7aef9f33bf99a079924ea92
24321 F20110109_AABKSU winkler_b_Page_133.pro
5bb7589a922dfb349c0d25041f1685f4
4cee68bca6d77c918aa30f797aaa4ed74c76eb31
97 F20110109_AABKTI winkler_b_Page_002.txt
42edfc9c41778c46b7306ae5077062f6
c33fda50838544437eefe7b4b83ba147f7f87f29
22334 F20110109_AABKSV winkler_b_Page_134.pro
29bf5c4b30edb8b1646b0fcd81a3b171
3949b819c5d08874aa4dee805d6d7946b4764289
222 F20110109_AABKTJ winkler_b_Page_003.txt
192fc7521319fafa63699a04d72c40cc
afb7dd50952e30ba35c7e296561beb4178940b7d
23513 F20110109_AABKSW winkler_b_Page_136.pro
1195146180e5e907dfecee34af7cbbfa
69cdcf4cbed491fc185d517edd102c4bcb04f472
557 F20110109_AABKTK winkler_b_Page_004.txt
5b028a80fa315a1277902ec06bbdc5bb
148665703658bea1782cf4e50fe83eaa4b151f87
24489 F20110109_AABKSX winkler_b_Page_137.pro
b22764d942ea493a8ee77dfc8efe10a7
7a58a1135837b7f13e01cfae43917a5f18a412ac
3270 F20110109_AABKTL winkler_b_Page_005.txt
c10c2161a595c505758607e23d817374
46c8f88fef3f004fd7650aeb9880a98a49a3a7bc
582 F20110109_AABKUA winkler_b_Page_023.txt
a962b074727ee366f8c28dae48f527cb
36a751ef485363db7b58d022228364e5d22b4234
1006 F20110109_AABKTM winkler_b_Page_007.txt
60fbffe6aeb80be0fe4e3a6e7d1ee1da
a353613f7f5ed5f28bbcfeefbf7c799b472afa0c
25081 F20110109_AABKSY winkler_b_Page_139.pro
ced5bbf8a654c9190bc3d0af69c5caf2
989eb5a5c9fc0fe9acc75b57fc9b3bd53f288bac
745 F20110109_AABKUB winkler_b_Page_024.txt
10121c9bf0122123ec1d3e607f6f3446
532d77b217031d59c0cf43eef47c9b912f5e1a6f
2280 F20110109_AABKTN winkler_b_Page_009.txt
0e27d8f11387e1c400110f62c364a324
34a6851e47726bf9a5ed7935dad9f8d7b1c37027
20281 F20110109_AABKSZ winkler_b_Page_140.pro
d16b3a446961c70bdd2fc40d2bfc3b17
4069edc3098377392cc79e4371270683f5c77c9c
1747 F20110109_AABKUC winkler_b_Page_026.txt
8b3e5c7bd99b3851db6f1f68931d1894
2789bb8322656fc2db347ca058a0ac53d120442e
1513 F20110109_AABKTO winkler_b_Page_010.txt
8056b8434a47f05ec1e80f9aab92663a
d6bbe303b8c41a9ec5657595d5ae3e78de6cb338
1875 F20110109_AABKUD winkler_b_Page_027.txt
e5c2b16798423a0f3118c90a3ca2bf32
9d2aed92229b32eb1d8297f4af24ca2bdcd99bb5
1756 F20110109_AABKTP winkler_b_Page_011.txt
aafe8a2a34d87723140fe32d3ae53d7c
61afc11fc75ce869eb02868c0b4ca0af90fddb16
713 F20110109_AABKUE winkler_b_Page_029.txt
ea377b90c07c08e09fc3ab6e5435b872
d35a00d628d010611438f158103ba21df788fef7
1865 F20110109_AABKTQ winkler_b_Page_012.txt
1829144008709851807370a36cc9e6e7
cb7aa3fba30fe7dfd543263fbf2ef5463ab84579
4920 F20110109_AABLAA winkler_b_Page_037thm.jpg
e27cd8bb7a8099c42d21d3e2a4e2af2f
82b61f02106682b678f61bf12ff1dd27715b90b5
100 F20110109_AABKUF winkler_b_Page_031.txt
851003a130ec1fccb14f59b4086c333b
0271e001f0ebb5b76b87ecd85c915e2b650a57b8
1299 F20110109_AABKTR winkler_b_Page_013.txt
070d7ce5f75758b179fb07fbeb8811fc
c6f446558f8dac226d7efe147b8923243c81385d
13781 F20110109_AABLAB winkler_b_Page_042.QC.jpg
3f882560a9b4b7407dd1d94a67180676
d8413593f15608a8976a690a25ac25cbad115710
158 F20110109_AABKUG winkler_b_Page_033.txt
0afc1a10e36be1db7eea6d73da3e1752
a6c5f57416708e3250847a43fbf66fe46040ea9d
302 F20110109_AABKTS winkler_b_Page_014.txt
39797ea74eda43f8b9378b6a61ac1f6a
94b74e972dd26fc21821aa2808eedee3aa4e9544
4951 F20110109_AABLAC winkler_b_Page_020thm.jpg
a2a1ca66ee279b01fc2a1fe2d55de249
7904e822b3a979820ddf1b7d47af8616d91295cf
1232 F20110109_AABKUH winkler_b_Page_035.txt
e9eeef6a30207a3b387a6bf83dae4aad
9bce263d0bf1edd919e4ad0f833d4dc73417ca66
1729 F20110109_AABKTT winkler_b_Page_016.txt
05ce27bbeb04ad0e3efe102d11595454
3521207578acec4d93090492ef161542c3a14cf1
3098 F20110109_AABLAD winkler_b_Page_135thm.jpg
ab7a3dee53085722efaf6a1e26a7831c
5612196ec6bc1495f2ce2eff8889ebee1225daee
1848 F20110109_AABKUI winkler_b_Page_036.txt
11d9780e8f45e546330efec4bd6c325a
2335f0b47e2e24a88a89535bb23ab02c5cff4471
1061 F20110109_AABKTU winkler_b_Page_017.txt
bcc594f848c06f4305feb6ce13bc10d9
3c840bdd325722d4260e84c4df01b0ccd0290523
16665 F20110109_AABLAE winkler_b_Page_041.QC.jpg
e76693ad9a47c5f3c293c88448c8a238
a63c25960afb6a9317b0157ca305fcce8714132e
1556 F20110109_AABKUJ winkler_b_Page_037.txt
e3db742190ea8449f37013192fe84928
6351dc199ba17a29462acdd9b0190e6389adecf2
1964 F20110109_AABKTV winkler_b_Page_018.txt
659b8a0592dfdb288c6c9c4e4c8e9ef6
2279e7254eaf3e674c0784a0d90bc477001dc0b6
1507 F20110109_AABKUK winkler_b_Page_038.txt
4439fab0dae86ae8edd5252b49afb91f
33a89a54693fdf896af340bf276c3e7e31e96c43
1066 F20110109_AABKTW winkler_b_Page_019.txt
d4b6471debad838056f801a60d81b991
473262a75d8f85cce06b0677811660cde3826352
20314 F20110109_AABLAF winkler_b_Page_025.QC.jpg
7a8e76d865f61502bec18e96d8fae076
326408a42468c8feb914adb78a69308fa2404c15
614 F20110109_AABKUL winkler_b_Page_040.txt
f484f1025b2e6a21db996f6f336c06a8
50cec9fe06c8f91bf604da07b6e6ead52de8678a
1335 F20110109_AABKTX winkler_b_Page_020.txt
8f16708e36c26eda3e2b27958da51e1e
5ecfcf87b82ee8c79f214083302bf465ea4cc0c5
3180 F20110109_AABLAG winkler_b_Page_114thm.jpg
483a02952858fe71609b86175462da80
2e3e009a419af9ccfac97b413708e18ef27227b4
1522 F20110109_AABKVA winkler_b_Page_055.txt
32e99c904aaa11425711a68fb283dcc1
6fe6e1b3c475bae0a81b1af634923cdfb3b2f7dc
1104 F20110109_AABKUM winkler_b_Page_041.txt
4fc0a60587dad9eaff96f6dbb1c285cf
1c9f4386c24cb970c6bd3ad532987532c2452aff
1113 F20110109_AABKTY winkler_b_Page_021.txt
d77a9a5fab42b2846a929c3686d22cda
09a6d07a1ec04bec80e0e48d6878870d4bf7edd4
5377 F20110109_AABLAH winkler_b_Page_028thm.jpg
1bdba63e87374515061083bea71c3faa
a7edb14148b10edb6676dbb33c2067eaf41b1624
665 F20110109_AABKVB winkler_b_Page_056.txt
4f72565af17a742d0f7651896fe4331f
c599b3c0c40f5f60baa9ea683f2b3d117745debd
848 F20110109_AABKUN winkler_b_Page_042.txt
1fa23e24f0189e85c6617a870c5b22ce
fa8fe9858ae14e52957f259c4b7e84dfe30e7a7a
2986 F20110109_AABLAI winkler_b_Page_031thm.jpg
f84620fb52f596771c54429ca253a7d6
3648e1073a0a343d54bb2939e0bf09db9cbf1c5a
1216 F20110109_AABKVC winkler_b_Page_058.txt
b082b0b61794d81f63fee37f43e2dd6f
79506104f5370c6932cf6d2983d779b911b61dab
414 F20110109_AABKUO winkler_b_Page_043.txt
5badba223e8e538c5a678a350667c8a9
eba18eec6d3fbc0eb02ea7ab70e2dde90f7ec449
1007 F20110109_AABKTZ winkler_b_Page_022.txt
3a8f4f49429f090bfba3c00a089df9a7
fff6ded82ec5353eff517a6bc5343e82e22173ea
23781 F20110109_AABLAJ winkler_b_Page_012.QC.jpg
f9e96589efc6fd3d14be46aa5024ec41
a0a21d794e80d6931c09fa75fbf5bf648cb4be56
1571 F20110109_AABKVD winkler_b_Page_059.txt
7054ea2b7bd7eba73fe676049b383f54
63ef04359b164b7f51efba7a11b1573f2f2ba649
382 F20110109_AABKUP winkler_b_Page_044.txt
bf9995365e65348de65a01242659ffe3
73683ca160fd9ce046d2a554f5d9eaab59359da3
4942 F20110109_AABLAK winkler_b_Page_068thm.jpg
082fa399ca86d9b642a776028e3c4fea
1362c619672704b33f16894a9e9f47ab12a1bda5
705 F20110109_AABKVE winkler_b_Page_060.txt
79e8bf97310ebd6363edc56c68fabae2
49c7fc80ee714c3acb5936ab392f45661316d253
485 F20110109_AABKUQ winkler_b_Page_045.txt
dc0c563b1a9ede1e8a33c0a3d1fe53f5
ef44265040da833146b580938e5a8fec775e378c
4533 F20110109_AABLBA winkler_b_Page_101thm.jpg
e72321c06c9a13fc61f2bb60dbce58bd
b737d18c6702b34a7da8a1da058c9ca5a26148c8
2188 F20110109_AABLAL winkler_b_Page_004thm.jpg
3c3de49a1766984b420d472ec3c0259e
b6012df32fa8027dcd6292986f657703ff74a466
802 F20110109_AABKVF winkler_b_Page_061.txt
95d163511cfe682e0b886c850e7be279
c1db6d66b95265ade83726bc31f514e59a44ae9e
1247 F20110109_AABKUR winkler_b_Page_046.txt
8b7fe2beb40d41feb78084c727a7bfbf
53370496a84b4cf08c49ac8093e619f7cff2864c
13298 F20110109_AABLBB winkler_b_Page_079.QC.jpg
f42d88a66d1482313a21af1f0f04cf72
ed8052d41c4a691b2070ccea060fee4f437ff048
3026 F20110109_AABLAM winkler_b_Page_141thm.jpg
46495898c9b017384d3935d3a011798b
59857e714aac8f8a9d848af13cd7f07f01ea148e
1051 F20110109_AABKVG winkler_b_Page_063.txt
c67a03c9ae251ed947d5edcd692c91f0
ca26734eebff7a675372be43b083e0b16c154a7b
1857 F20110109_AABKUS winkler_b_Page_047.txt
97cd6bda3fa4aaa3e92e50c7423c1f4f
084ef4eb7984701f8f9f64e9b9337ffe7fa08d6c
3024 F20110109_AABLBC winkler_b_Page_123thm.jpg
d6abe3fbe9d100466fe6be20c5457ce3
4b168d0f3f42169ccb34d72fc896de123aa3f635
16483 F20110109_AABLAN winkler_b_Page_062.QC.jpg
54a1a2bdee44bbe1baf71903efbf6a7c
6562c760ee44efece912227d08af0f8782b620ba
672 F20110109_AABKVH winkler_b_Page_064.txt
0857162e44f0134f07f10f84d4413f57
2324d95315c2631b04e005a837adad5198600443
2006 F20110109_AABKUT winkler_b_Page_048.txt
7c2d5108bdecbff04ee21369fa1b9aa1
7326c48c7c95a6d1f23b684a462bb9debfc272cf
5065 F20110109_AABLBD winkler_b_Page_076thm.jpg
93ce24c21040028d802dc8bdfd5f6467
99fdc1938bfc8a01113486889931d4bddda27d08
19240 F20110109_AABLAO winkler_b_Page_049.QC.jpg
22241bc78e9792529bf15779ad64668b
a8ffa70038738a06dda6c9b5f65741a04ee36b67
1000 F20110109_AABKVI winkler_b_Page_066.txt
69c26fd90b89bdeaccb238687843e54d
3fcbceebaa3bd96856144d24e6735a5460e22ee8
1515 F20110109_AABKUU winkler_b_Page_049.txt
2832896196db3a56055efc30084523a4
7675478466cd1ebc086c727544406a9d860f2273
5751 F20110109_AABLBE winkler_b_Page_050thm.jpg
490339a0de5112091da09650d3eeeef0
70953a3c2fab962d72b6c2f6611f32ff86324bbd
4749 F20110109_AABLAP winkler_b_Page_039thm.jpg
88ae18b155e97e43016e6e6847401f86
618831a0dc96e476ae4b2efc01d4892024d42239
1279 F20110109_AABKVJ winkler_b_Page_067.txt
b58017711d33eb730575b3c25b991038
e792e23aedcff9bc4e286dcd6be0ca6b31a90a25
1806 F20110109_AABKUV winkler_b_Page_050.txt
063056446b7fde5ae063c537e53164b5
6fea7d521b3fccfa7570ea089bddf3521146e750
16078 F20110109_AABLBF winkler_b_Page_019.QC.jpg
f8e7859efa4240b219ed31a25dec3a10
989df71b61ab0abe1cc2ec5e4a8e80621b261c3a
13773 F20110109_AABLAQ winkler_b_Page_103.QC.jpg
6e1c7149b889eacb9111580f74a1a4b6
8ab2fb91b0e122453c2d8d94f4ca5141a774b025
780 F20110109_AABKVK winkler_b_Page_068.txt
49b788e9e14f9c4132cf4bed8d5fbf2a
bb5e9c5c143072cffec2ade8f11b0447d54af0a5
2144 F20110109_AABKUW winkler_b_Page_051.txt
86d08f1e7534d1fc163b0cc92ec74afa
ee5eb293871850ba47314b91fce7d252f2cedcee
2644 F20110109_AABLAR winkler_b_Page_045thm.jpg
d7d7ff46f17ff5966f16557dc49fe83f
388de2e8ba592d070f494c6e900dcc57416f753a
879 F20110109_AABKVL winkler_b_Page_069.txt
e80ed7684e670dacbb1b1edbb62c23d6
712a63a3b03d4f399050c8074ac6076fe3b64e65
1862 F20110109_AABKUX winkler_b_Page_052.txt
6177036d1fb6d728dee37c07da19c85a
ca3dbad8ed3d65c6a9e44dc7d0fc83c90a150e78
14143 F20110109_AABLBG winkler_b_Page_008.QC.jpg
2fe78b2bb3d939c4520d949aaafb1d33
757533bad9b9a6bd160c0365aa06b8ad8e584b74
2540 F20110109_AABLAS winkler_b_Page_043thm.jpg
ea44deadde9f7e9c658b7158ab14100c
99d478496a18d6c99c2decf5b8cee360ff9ee9ab
1198 F20110109_AABKVM winkler_b_Page_070.txt
31f72d42d99300659585b03df2cf205d
69cce8cd07000d477cbfda0da7dc1a9d1e9e6fad
1169 F20110109_AABKUY winkler_b_Page_053.txt
63a7c8da222e9958efa3aded772f551f
28932dbc0f3e269e259e8264c58062d0a43c06c2
1479 F20110109_AABKWA winkler_b_Page_086.txt
e178711574c78255abbff02c923ac8b9
2d679648c1b115d75d6db4f2c25a1454c2b8af60
3511 F20110109_AABLBH winkler_b_Page_079thm.jpg
9938bc84e1f64e51250c1ed86f5c65d7
2c23f6393e2f0e51529a1fcf02b038e9c2fdf505
12796 F20110109_AABLAT winkler_b_Page_114.QC.jpg
e8b8e810037d18dc2c520c6b76225c18
e951298809f6117c9cd0820714ade1adf6e22b34
895 F20110109_AABKVN winkler_b_Page_071.txt
108c1b5dca3467dfccede88e55ff807b
130edd4625872312411177d7256035d1bc3d9a91
1351 F20110109_AABKUZ winkler_b_Page_054.txt
2298cb47a4f39c412be20423a3757eb0
3170a9f954c7cff57aef41c73acb910b24bd62e6
1473 F20110109_AABKWB winkler_b_Page_087.txt
3923582996fccc29a1268dd87c222ed7
3c4b3257670e171ba7a085a3c5039116a1219782
3150 F20110109_AABLBI winkler_b_Page_142thm.jpg
0de9d30f93495d002f6aaa9068558ae3
51d020b6f94f6b8a509e8206bbbb76d6bf22df53
25854 F20110109_AABLAU winkler_b_Page_048.QC.jpg
9847609aaed070575f992aeb21a5d951
5ed507c42cece18a0c4a9346ccddf6fa5a21d1a1
1017 F20110109_AABKVO winkler_b_Page_072.txt
eecc12e73b8b42723c9da8b51d2ddc93
a80e7f8839def64ae350b6ac68c2a1dc7aa14f49
1476 F20110109_AABKWC winkler_b_Page_088.txt
655ad8f2845beb41f98cc7f72fccca33
08fcddd9addd32ebbd08b994fe482d87d49bc9d7
10986 F20110109_AABLBJ winkler_b_Page_122.QC.jpg
fe922d7977ccd45dfc09f7a8cd4548ee
0dbbfb71c2531379779985cd1ae0ce907660ad77
3354 F20110109_AABLAV winkler_b_Page_080thm.jpg
e7b3ae52ab6ea4ab4d6ec14c887c04b6
c205de41c4212aad1027301e95a9f1565edfb9ca
1701 F20110109_AABKVP winkler_b_Page_074.txt
2f77c7cee9e3b5c0e984b6db81df4370
62f289c7815b6013aaf7a648474f785d238a7f13
1726 F20110109_AABKWD winkler_b_Page_089.txt
01504fea3ddc80148f14aae4acd52454
4d022808fc555ca4c41feb2ca0826c54367e93d8
2547 F20110109_AABLBK winkler_b_Page_145thm.jpg
e0237052788a5f29188c6415599a80d2
e2f21af93109dec6bac69d47a31875546e3923e8
5047 F20110109_AABLAW winkler_b_Page_070thm.jpg
42b2efaf0de9c5a74be4f38e7dae6d0a
1ee07e64345ef305f3b712cc5499e3bb5a20e76c
F20110109_AABKVQ winkler_b_Page_075.txt
d8c38c2e28592dfd1b47040ad1f55623
5e7f031980cd1e3455af45259a1308689c672029
1457 F20110109_AABKWE winkler_b_Page_090.txt
baca56ca3516ac032a546c627b83065f
00713ccdc7a38f1cda556d03c71c1af810cb8792
1432 F20110109_AABLCA winkler_b_Page_002.QC.jpg
aa377749dc618ea820d22e2fca5b7b05
2a65df4215184fcd2e34c2a75823adc1882de15d
4912 F20110109_AABLBL winkler_b_Page_046thm.jpg
0fe8ee1de433c6c6296247c24734020b
8d800fdf2f9c119ead6bcfe2439257760f2eab5e
3681 F20110109_AABLAX winkler_b_Page_044thm.jpg
27b8e9a2f940e35a76ab68bda38868be
9b664a1ac902eaff8e5850c19a9da944abbccd1d
1663 F20110109_AABKVR winkler_b_Page_076.txt
937cae8399ef049f6472f43a7de45345
60b7595ee94577df5c18ee5d0e456e7ba1fae603
1331 F20110109_AABKWF winkler_b_Page_091.txt
33225386b63b48926258521cb214fb27
a1778e708adc2d52c4558aced832067c1adaa2f2
515 F20110109_AABLCB winkler_b_Page_002thm.jpg
679dd9cb231e62e2f9dc1454a8f28036
29f54f91712235e4e05b31c894f19760531da1b9
19200 F20110109_AABLBM winkler_b_Page_064.QC.jpg
389f73c908703eb6181cb10f925932a6
4950f65959c10ff01d7af393664b13685e7b8a3e
11926 F20110109_AABLAY winkler_b_Page_136.QC.jpg
8683f666740c2f42003498502e4e28a7
dfa8d039b1b0e33203d33ec7288e5ce8050e0896
624 F20110109_AABKVS winkler_b_Page_077.txt
3b2f7f7de402378c1d7c5b21f25c4fcf
e398c8ba720ce310f58540145fc8bffceda8a11c
2716 F20110109_AABKWG winkler_b_Page_092.txt
516e13c8c8d1a4f04c0f2d5b1b317ae9
d4d076464e2b9adc4d3233aaefaee68ffd624ca3
2855 F20110109_AABLCC winkler_b_Page_003.QC.jpg
17fe679ee105d86f74b6c07b012022c6
d5fdb1fef97b429eca23dc36eecad368d077efea
15205 F20110109_AABLBN winkler_b_Page_066.QC.jpg
09b0dd29f85e77a8f476e575ef6e89cd
7e1165cebe05bd810c7707deb197d372fdff553b
12293 F20110109_AABLAZ winkler_b_Page_116.QC.jpg
e63bd3c7d1a1f3b26a5e00fbd6cd4aca
4ea5a1e8ba5a572e2e615ca97e9cb7c5c6f4327d
2020 F20110109_AABKVT winkler_b_Page_078.txt
8bd9ed30e5850725d9b928cd32508b5b
a7c5dd069938c55661f2bdab9d13c60ef55864e8
1185 F20110109_AABKWH winkler_b_Page_093.txt
ce844fb234ab0abaf88d2948f67aaf65
fca942c399640c2b7c9174a6637fd648dfbc7d39
7826 F20110109_AABLCD winkler_b_Page_004.QC.jpg
71f83b855dc9ff4746214d7b4f90c535
c5a83901c7572883c81123c71654e91995fca187
3201 F20110109_AABLBO winkler_b_Page_138thm.jpg
7dffbf642a8ac713b85670174efcd228
26065670a0db8f04d6c2ea25406dd5d9ae9a2862
1816 F20110109_AABKVU winkler_b_Page_079.txt
4ae9dad2f120d21fc4141649f0004a21
af8ed105f75d307c038570f588690ca67da73a3e
59652 F20110109_AABJTG winkler_b_Page_084.jp2
aec388c1cb127224fa3546dea60b75d4
e767ea6afa8af6f3d04c9ec10bfaa25c52ad3536
1612 F20110109_AABKWI winkler_b_Page_094.txt
c38e7a3cc4313f2a7fd1c491aca78840
98a687d2174dd97835b95abea1a716b65485ce4e
15992 F20110109_AABLCE winkler_b_Page_005.QC.jpg
5166fca886f3e5d718bb86187e22a7dd
d07b0dec0ff78c3c2ebb6f303c647c2172a5428d
19549 F20110109_AABLBP winkler_b_Page_092.QC.jpg
19be2fed5e9502179f78046e35f5a412
368d27d0afea50ecc034eb7024d61f186c782081
1537 F20110109_AABKVV winkler_b_Page_081.txt
518392d53543df80632e2ac7e26c7494
98db0e79010b57e88532a240817af7a4de1582ee
25053 F20110109_AABJTH winkler_b_Page_135.pro
ebf9694ee3294fbdeb84033c11f30c0d
d924b6bb3937c6edc3061fdb8392f4ef5cebd163
2050 F20110109_AABKWJ winkler_b_Page_095.txt
3705cc36cbef8293fe414cb73297ffb3
cc95894b65e57a1e07aa7042b6789c6612f33c03
3975 F20110109_AABLCF winkler_b_Page_005thm.jpg
02b5d2b287f1ef2effd29847ade192c3
d3ee4bd0049aafb6fd3bffce771ae5bfeed8b5bd
5301 F20110109_AABLBQ winkler_b_Page_064thm.jpg
b90acbe4ebc186c57f817e30953177e4
eb0febf81de59316bec02ef52fba473780693d02
2098 F20110109_AABKVW winkler_b_Page_082.txt
ef4f587c9a48dda2e506bd497a3a76ea
b80b2d8d5850a6a9a34888c7316bfa0dd5589c4b
26512 F20110109_AABJTI winkler_b_Page_053.pro
6329aaff719e170bc5ea5545dacf4075
fe11e3fa2c4bb80278de60e8903e5e9700745636
1754 F20110109_AABKWK winkler_b_Page_096.txt
27598e0814b6e49f4e223189361bc4a1
38adc2162ae0b33febbd9dc02e5cb12df1e4d0af
5868 F20110109_AABLCG winkler_b_Page_007.QC.jpg
d4d2aadbb14a8d3ee2c31993f81a19df
0aa97ad7e83db141cdd386dbe265e30a8980f08d
3761 F20110109_AABLBR winkler_b_Page_008thm.jpg
a0514a8dc9577059170bac13e894b760
78ccdae6d3a20d6f04bb3c54652b682b011a8d64
F20110109_AABJTJ winkler_b_Page_037.tif
941392d3be06e71290e0308de401fa04
1cc947fc2be53124d1124202add1cbf98c9d3ef7
1426 F20110109_AABKWL winkler_b_Page_097.txt
8f6bbc1845e98d62990b75443fada19f
3715f497c4d2df1e287f30521464a644aada39f2
1769 F20110109_AABKVX winkler_b_Page_083.txt
61e2fb5dcebb1990f906fcd2cb4b7597
d7d97ff813ad590607b4d63560500ab0fde73893
F20110109_AABLBS winkler_b_Page_016thm.jpg
e13e8ea67c0cf83135af62b646577c6e
cbc59bf3b7c1c6da822578bffc90397821800728
1192 F20110109_AABKXA winkler_b_Page_116.txt
4c263332c4ca87ecfaaf8a8e1a847e59
e5177051fb6e57de82aea4a7e43a487e4e08ab91
5342 F20110109_AABJTK winkler_b_Page_011thm.jpg
3b9b8642d13e4096c976f609513ef084
58096ddf68bca9e53f4699b1def764e7ea652ec1
1408 F20110109_AABKWM winkler_b_Page_098.txt
bc9ef0c68dbd7646f7555542bd9d9ed8
92dd493c232f3c1204272b926eec92005ce74322
1634 F20110109_AABKVY winkler_b_Page_084.txt
0b89422139e48e2c8f60b27448bce9ba
100c1097fb43b81bcaea52c7f40d2b39690216d6
11877 F20110109_AABLCH winkler_b_Page_009.QC.jpg
71502448d61062e393986c47da946fc8
b085e215e5dc2f9a9fe46cd2881bfeb5c0d3729c
2895 F20110109_AABLBT winkler_b_Page_140thm.jpg
f5125659550e196f23ce061756ba9a36
6bee0ada991021f146dd2c71695297351eb364ba
1191 F20110109_AABKXB winkler_b_Page_117.txt
b8be38751c57fdc0b8f502c8d0e19e35
392f77e9e363265b20b4b8a99091d2658875358d
25327 F20110109_AABJTL winkler_b_Page_119.pro
9f67c6204348509d50cd584a3bb54e42
c00b4c5969d2c31c7e411a84b327e295f2eb4329
1627 F20110109_AABKWN winkler_b_Page_099.txt
33a569a2a45650ac73a42e70c66d376d
edab48ed33653afb3dcc0105f308d90247065477
1508 F20110109_AABKVZ winkler_b_Page_085.txt
f2def099911885c631df0165e7684860
a7409ac0774c0836b14027290da03112766e4120
3179 F20110109_AABLCI winkler_b_Page_009thm.jpg
92e5c3dd7d7c26145ecb11291e7d96a6
f51cdcd9014d8d4728691b0012a600445f424d40
10382 F20110109_AABLBU winkler_b_Page_100.QC.jpg
2af4377e635e1ffeef599ce0f746fd08
4c9b1dd4dd434a55ad8e7e2fa3facd554913e4f2
642927 F20110109_AABJUA winkler_b_Page_072.jp2
4f4bc293b0360f886398e6c4a6303381
f3b46db809579c1ff221dd6a8f6d169cfb116a4f
1159 F20110109_AABKXC winkler_b_Page_118.txt
c6bfadca14c2194cf924d5fef5abd937
6a81ac966bc7a2af79a55884509be57ac09718b2
68827 F20110109_AABJTM winkler_b_Page_074.jpg
89b0bb53d4b08a0c8b8247b9f8e6f0e7
8cdc246e3b1a7206fdc1b596cef5bdc6d20b4502
1942 F20110109_AABKWO winkler_b_Page_100.txt
42ec863d3db439bb50aad3e0358b274a
01cb8e368a3b318592c2052f507a8434b43c155f
17718 F20110109_AABLCJ winkler_b_Page_010.QC.jpg
b9294812114418221d5f8b7bde57080e
72b2ea15a96576f94495d3f94583906e3f432bba
11348 F20110109_AABLBV winkler_b_Page_141.QC.jpg
ac2e77812b9c5f81fed859ee3afa8c40
2ac93f7831b8bee38ff8fd34bf1d83e7dd9e0ec7
4705 F20110109_AABJUB winkler_b_Page_092thm.jpg
78110ba982621db285e1ef1c702b28a9
ad280ff211ee413994e40b3d4d050099055252de
1189 F20110109_AABKXD winkler_b_Page_119.txt
ae319f0a49c91df1d4eb8e6c07024739
fa8fa3fc13e9a1cb6fca78d3fa5a5b43e7b33b37
18523 F20110109_AABJTN winkler_b_Page_046.QC.jpg
77dbc28b600d3f318a13603bc500e50e
edc278bdf3ed4cc203aff09ddc9261cb305af484
2136 F20110109_AABKWP winkler_b_Page_101.txt
401e107902b150b1a4d38b44d46d80dc
867c063e3e25a076fc9cbc8489e416ef24f1af37
22252 F20110109_AABLCK winkler_b_Page_011.QC.jpg
98090915bf38be93e8ab87dfea7f9e9c
c2d60961674afc9e977d8e2ad4263c8f3e2fc007
4351 F20110109_AABLBW winkler_b_Page_041thm.jpg
6e6be80b329aad368c094586c283fdf7
36b96091943ec5e343ba46766eaeac323a2f23b5
5250 F20110109_AABJUC winkler_b_Page_072thm.jpg
ccfc49c8c493a63fcff0673183438ebd
bed0984b13912973a050e8d41297d8584a932fb1
1126 F20110109_AABKXE winkler_b_Page_120.txt
72aa4469b75324617ae6031b2280f140
67b4e3c6a8ad179d0e180ccfad7298d87f015d26
18379 F20110109_AABJTO winkler_b_Page_128.pro
23497efc7f71ee073060281000adb2d4
44a7071048d3ffac4c08ee844a49ea5a223d7571
680 F20110109_AABKWQ winkler_b_Page_102.txt
06d48978931f809f10c25cf4ea265fdb
90e58f6e6ee2db7fedb1d70d67403846ea8842e9
19583 F20110109_AABLDA winkler_b_Page_028.QC.jpg
370ab3cd84cc2eddaa4a6e97d2e39cb5
6bb89d4fb5286e2153804b7ab79bedc1bcfa2ac0
6104 F20110109_AABLCL winkler_b_Page_012thm.jpg
30edcc3694fa46ebacef14fc2d1c00f6
c2b71b4107f44d0028d04ff9ad88a27f1e65b1ae
5013 F20110109_AABLBX winkler_b_Page_025thm.jpg
cb33bc65a053ff74dee07feb5d1eac6f
da29cb0001e67ade75fa9b2e0ec1f6913b2cfd37
5024 F20110109_AABJUD winkler_b_Page_059thm.jpg
5305095aa1e191c819cff13023ecdeef
0268d699f4dba46b4adda5d87f9997c601d7d2a9
1050 F20110109_AABKXF winkler_b_Page_122.txt
c36b0065f59390d8c885ab287acbe883
f88bf77d97d69727cfc7c2431bc9352b194e64a3
3043 F20110109_AABJTP winkler_b_Page_108thm.jpg
7946d0726d6bb7e626fd11a7469582dc
a07ba838535bda5def2a77e81728017d9dbc17b2
1180 F20110109_AABKWR winkler_b_Page_103.txt
7ad51963d5512cc066e304b1f3ff8bbc
350adf9b52d4d93ffb38c8501f3e68d63b391f74
20427 F20110109_AABLDB winkler_b_Page_029.QC.jpg
d91a8d912e3d12b5233c2ae787f0f465
5557b9144bec858c271c36081b0ed9abe01d6746
17914 F20110109_AABLCM winkler_b_Page_013.QC.jpg
f521ae228291430297122c08c65a8aff
fb3a2bbb016432d9fa3e300dec0a4b545c9b18d1
222341 F20110109_AABLBY UFE0000617_00001.xml FULL
60b019b1b12ea07cd811a921527214f9
204910d16b028a90835fe121eeabbec136593da9
19233 F20110109_AABJUE winkler_b_Page_130.pro
9dcbbaee6c26966391d9407ecb212157
7df5f2e9c47114b56868ccc1019fa6d2ba3f62a6
870 F20110109_AABKXG winkler_b_Page_123.txt
17fd2c8e0e660419601072db7ba6ae3e
49d45f30218c1ce459c923c469278be7af0282b4
53664 F20110109_AABJTQ winkler_b_Page_055.jpg
49cb317893f1c6fd3edb3f31fa596daa
2e70858da98f5ae9dba80e00b6860acdfd821901
1102 F20110109_AABKWS winkler_b_Page_104.txt
2c3f1bd2e4d4be240a1686a5a16cda04
8915b1645183dfa5a6dfdc7d633b7589516d3ebf
5757 F20110109_AABLDC winkler_b_Page_029thm.jpg
815b9596e00c6f1f6bda077bdfb3a866
dd9124ab3ffa4ec3b91f51c6a905a99b8547542a
5270 F20110109_AABLCN winkler_b_Page_013thm.jpg
78c9a6d3272fa6ec15c47a74d2a4fbfb
7a5a2523f1fb2d2dbded62e6485f487a6d50e51d
6537 F20110109_AABLBZ winkler_b_Page_001.QC.jpg
a961ea49b1bb12c1800aae45cb097f90
4de7a93fa7a2915572950158407c7017ff353ed6
44893 F20110109_AABJUF winkler_b_Page_115.jpg
ec83f5162708245878a2f435b1a10595
185c97313864e32229bf9d1ee9cde52ea16707a3
1067 F20110109_AABKXH winkler_b_Page_124.txt
8d7d26b814dc0989ceaf368bf2d25347
f5454ee62cd9bd4252c1169026e48654b3403d10
53351 F20110109_AABJTR winkler_b_Page_054.jpg
fb75ad97c243a32f5989f4d3acfed199
ed485106238978616625692a70d6d8ba40d53051
1165 F20110109_AABKWT winkler_b_Page_106.txt
05d2f208715416ca401296b99467817f
a77cb8164f9a6cc60907ad8a033fc0f6d3a93e6b
3976 F20110109_AABKAA winkler_b_Page_002.jpg
daf87268dca9d1754771402d2b275384
37eade90a926d673fa063f8baa735fa079657afc
4608 F20110109_AABLDD winkler_b_Page_030thm.jpg
54546f2d629327bacaeaa35f0aa81ab4
7b8914ad515147f38306e5325fbf18b10169a477
1263 F20110109_AABLCO winkler_b_Page_014thm.jpg
eec9d6b780d329ba9e51a5cfd221dfd5
5982518532b25e2bc290382afd9f88199076be9b
12093 F20110109_AABJUG winkler_b_Page_137.QC.jpg
d1de1895be861fe83fabd62919b0375a
1e8aca574664e763ff6bc75f9874f74b1a86bca8
1218 F20110109_AABKXI winkler_b_Page_125.txt
9a6c14160b2b9c3095de84b0f2acf013
55f4d913565d8888a042fa6f21b522ee1af9a4cb
8667 F20110109_AABJTS winkler_b_Page_001.pro
c6e0beaf8234b8122105215b2a07a603
5129b802b9c87614998bb114cbce9a753db08b7d
1163 F20110109_AABKWU winkler_b_Page_108.txt
2354128cfeeb516141f314160c5b6967
f48676ed51293dadfbb85a27de471b9dac5268bf
41840 F20110109_AABKAB winkler_b_Page_102.jp2
0a7eb58731f519fdc40f16eda0a2e46e
718b2ca13ec8fac770290bb64fa1c5ac9b872935
905 F20110109_AABLDE winkler_b_Page_033thm.jpg
ff25c8fb8957776f1c997b32687ecdd9
141c7786b4a5e95d502e4ca6f4a7cace26c7cb2a
21131 F20110109_AABLCP winkler_b_Page_015.QC.jpg
f8f62952d81252127394408e80610755
75286cf34362f632f16594b592daff56ebe64c2c
F20110109_AABJUH winkler_b_Page_015.tif
83cac4b66f39b32916205f816f235e73
5b3b82c8168e163c1bba18c0f4fb4bb41ff43ab8
892 F20110109_AABKXJ winkler_b_Page_126.txt
d8a27dc4cade376a5e6330092f7a9249
01d7fa99f8a073e959d8749cf792916766c83903
1059 F20110109_AABJTT winkler_b_Page_140.txt
00e218eb0d8ccb6f04fe6c0d06de75a7
2dd569b53d28f49fbec67d62afd2faa7eb7966f7
1209 F20110109_AABKWV winkler_b_Page_109.txt
1edc732317799404f6f22e42c123e18e
fa1637dfd1048d79c81fb83bf0bc54e6dafadfac
59039 F20110109_AABKAC winkler_b_Page_069.jpg
0b294fd9ca17559c128f0729d77ea3c1
009a2b14fc62e363da98878d2e6a99f3d2850efa
12875 F20110109_AABLDF winkler_b_Page_034.QC.jpg
a43c6426c0fac63e5b00bc8e1c497138
bb3ba610d5e465be35f66f336f4a245f5edc7e3c
5055 F20110109_AABLCQ winkler_b_Page_015thm.jpg
a104456e83a6ca870ae9d5cffbd7eea4
7aadc9dc502185df511ef61a25e47451165f5715
F20110109_AABJUI winkler_b_Page_131.tif
e269a8ab17f4fdda01f16785891dc879
bbfccbe2556ac7187f75ce632033471c656001cc
1190 F20110109_AABKXK winkler_b_Page_127.txt
c1f565ca7a0731078acf08e1c294e058
14b6e6af9aacbe5a6a2a7ca016e7be2845cb09ff
F20110109_AABJTU winkler_b_Page_012.tif
ec398d9728e9b85395e7a1585dff07b8
d2292095efcae3c147e152eec8f0f1ede8d4db8d
F20110109_AABKWW winkler_b_Page_111.txt
79849e8fbc8acffe14930145ea63538e
adfd86d19c467e1d30ad98af185b7f407c768764
3005 F20110109_AABKAD winkler_b_Page_120thm.jpg
1359abf5075b6864a7bfab1d3da96ed1
519d8b539f69d6f5064e79ba9dfd608f595afdb1
17806 F20110109_AABLDG winkler_b_Page_035.QC.jpg
989e0fb7c34be592922de915ea01448f
2bd69a04a91f5df4a51437b9926972d86c1cf9f5
18314 F20110109_AABLCR winkler_b_Page_017.QC.jpg
747819d002658b2ca377a10b3cb644a6
f3d20eae54abd1ae32f419cd44d3716f8ff29625
13007 F20110109_AABJUJ winkler_b_Page_119.QC.jpg
63c2448321d206f08855334a948f8d26
10d114c40828caa5121da1ff61d968f082a4fc63
947 F20110109_AABKXL winkler_b_Page_128.txt
030ed4761a28f6173c87ceacfae94f8c
4ec2deeb181433cf33a0c7c236560caa03d7daa1
6081 F20110109_AABJTV winkler_b_Page_052thm.jpg
a4943580161dc19be55e2ae8d2249485
82d3f90b67dfe76f07af0f60ceeaf3241f243890
F20110109_AABKWX winkler_b_Page_112.txt
89a3048756762c83fea20deb1fab7d15
571e6ef55e0c389ce2865e6454ca839a32dab2f0
47245 F20110109_AABKAE winkler_b_Page_052.pro
7b2327e7bae744f10152fc899af075b7
d08123c1ea39918eaad42a130f96136972daa287
23085 F20110109_AABLDH winkler_b_Page_036.QC.jpg
532f00e6a4ab32ebc0128846fd671900
fd7fe6ed5c40b95af5bb61d64a74635db8d9189b
6290 F20110109_AABLCS winkler_b_Page_018thm.jpg
2368cf4156e0cc7d0b98e9dba8bcbcb0
c462265e8aa2f8f393c69c317c8ce90fe3662087
324 F20110109_AABKYA winkler_b_Page_148.txt
b769a1a27f36285122974aeda0a566c0
f256e3f4003d5b6dcc3af8026476323398923bec
F20110109_AABKXM winkler_b_Page_129.txt
ba378cc7fab526f179ec9dbfa3ec66f3
9b8d62b00d56e2f9d65e2131617c12ccdab4c090
455718 F20110109_AABJUK winkler_b_Page_060.jp2
f100696450697cf8aa3de7a81597b0e2
fe4a8f7fa0f9d3a57b5d8097850232a6ad9a547e
52543 F20110109_AABJTW winkler_b_Page_131.jp2
9d19da4ac0605d434a94052ccf640c1d
964bce5b19530e8950bd5a5145b9b4e99aa046cb
F20110109_AABKWY winkler_b_Page_113.txt
f8128a32bab9c080d62f168c359a1360
cdce8de475fea66b1b48f9afbecf0e08160a6b6e
86410 F20110109_AABKAF winkler_b_Page_076.jp2
8d0472f462151edf7eae3b1b46bfbaec
8c7baeb91fee78643ca9dfe63d4f0626bfbaba14
4334 F20110109_AABLCT winkler_b_Page_019thm.jpg
6acfdddb7efb4b581c0f270592cdc1d4
0d5711f345cf143683a0093a718ac8b855b7f749
2904 F20110109_AABKYB winkler_b_Page_088thm.jpg
ad736cfb73c4d94d75ff7a193d1621e5
eeca41bd97bd652ceab6f70c45333af6a70c5b09
1071 F20110109_AABKXN winkler_b_Page_132.txt
e0fc98478319c7b6514344fdcc233b74
da58fa9a51c6a812e08841edf6630e03611e126c
1735 F20110109_AABJUL winkler_b_Page_080.txt
89522421e7d3ef692f2a7ac0c15cf863
86ba627c49ee9e2c0b05f07ca02186a67510e27d
76676 F20110109_AABJTX winkler_b_Page_095.jp2
ebf3bbb4f621b355a2646e417d4d03a4
db2fd012fd90dd8ca0b4415e27155ecb2d66bea8
976 F20110109_AABKWZ winkler_b_Page_115.txt
91f32a32ca63b00abb276409d67ac537
c1b8de513a9f1b624023e1373a793bb3aa83641b
5880 F20110109_AABLDI winkler_b_Page_036thm.jpg
c7983631268510b3050a2c643462e279
ffa610d5c182681bf989974b3afd5a29573d1d2c
14855 F20110109_AABLCU winkler_b_Page_021.QC.jpg
3dfe368d38694eaa2287b8c25d0f5c29
14f02d97ceebc779477b98cf4ecf0fdc502f5917
6154 F20110109_AABKYC winkler_b_Page_027thm.jpg
45c324f951c5124bbac16e4bc69e4164
532a7ee3517b00cc21ae86c967edffe288d71b82
1134 F20110109_AABKXO winkler_b_Page_133.txt
8fc374ee41434f6ea45484341f810c79
ea538a2d48bb50053ab190ba57383e4766d8a517
49586 F20110109_AABJUM winkler_b_Page_088.jp2
7a9b19887ea531b0e01bfd0728c0521d
0df35623cb9e89c7e5a0834bd66da1b9a29b3e4e
F20110109_AABJTY winkler_b_Page_016.tif
1c88be47002a46250ddf05f9dcd281ad
1822207e7e0c98c83b99a0ab961adaab1b885939
28205 F20110109_AABKAG winkler_b_Page_097.pro
baf8d06c8be293e98e5f9a671b4b1981
8e9bae1d40b85c7b25d709d2baa30e7b4f8b6d19
3085 F20110109_AABJVA winkler_b_Page_133thm.jpg
a52b53bf86ea7e10e044f7e928f824b7
c9163433806e42a7b3663d1afed769091b8d3a92
18540 F20110109_AABLDJ winkler_b_Page_037.QC.jpg
700f1b9a5fa3c4a787ae1aac7470d5ee
00d7cf502b84af8ce8e7e5bc5907c42e1d1cf40c
3725 F20110109_AABLCV winkler_b_Page_021thm.jpg
ba5fba65d195699e9bc5e98c05d3c561
3c905b9c8b8d231a97c046de6a8d130de0782042
3138 F20110109_AABKYD winkler_b_Page_137thm.jpg
bd6694f3af97c4df2e8a5ed244cffe60
ec9a82710ae3d67afdc4181f5131bdf769b4224c
1110 F20110109_AABKXP winkler_b_Page_134.txt
c8179e468d533ecf6b358ebb5f28535e
fcae5d7675a5bee76a514451d7ee69ae9258b5a0
1152 F20110109_AABJUN winkler_b_Page_131.txt
c32694c32e6c97c37adcc4cda27a796e
136b75779e04e559f58e4128d30a8aeed6771739
16284 F20110109_AABJTZ winkler_b_Page_064.pro
215f7a73bddb77afe916255f69bcacc2
337f7664e950b7d59c4a37c4d32466e0d4619585
91883 F20110109_AABKAH winkler_b_Page_016.jp2
b664455f1244a909379af792deae69a5
e54cb57f118a4f511a1adc3c5d8424380f5211fa
557617 F20110109_AABJVB winkler_b_Page_067.jp2
2744421d2c7bde2e1b2b4532a47da9ce
749145b670265732cb906d04b91a17352dd5a028
8606 F20110109_AABLDK winkler_b_Page_040.QC.jpg
96a60734fda6fab9f946855778a945fb
3176e52512d021979f1ed1e0dc792965c83219e9
F20110109_AABLCW winkler_b_Page_022.QC.jpg
bab4b4ccd1e0c9e86b3f40050ed9db32
e1655cb8d7dae6beab528b49b8e35c0ebaa96610
3840 F20110109_AABKYE winkler_b_Page_095thm.jpg
6571480a48422622bfd497490df960f1
bd805f5f7b6cc2c27654ab99b46988c512f6624d
F20110109_AABKXQ winkler_b_Page_135.txt
1e2f707b0fe19d25c0548eda88b83c3f
dacf9230bda06fc7421d58be2acfebb8c7faadc2
26668 F20110109_AABJUO winkler_b_Page_111.pro
7d2869811767c51f8d657e748fa3935d
7c9a76d699e3eb4cdccc9c8d330f32102ee2d3cf
3719 F20110109_AABKAI winkler_b_Page_078thm.jpg
d0256a6b23cf54442e6e83081c7367dc
f103217cb1902f55247b4d10f4bbe0d4fb5a91bd
12659 F20110109_AABJVC winkler_b_Page_004.pro
c53db3fc992853f070c4f17d4203f8b3
c1fe7ffa0031dc544e2ab054f0ef02dbddbae65d
18366 F20110109_AABLEA winkler_b_Page_059.QC.jpg
d28ef424e13cb865309a63ccb4229c13
3b775e88b71107ff56c239fb23b62e2e66ca2276
2224 F20110109_AABLDL winkler_b_Page_040thm.jpg
79e2d34a10f277c5b8fc5376fd1be969
143d5339e779d8750940b0b5af91f574f66e7932
13806 F20110109_AABLCX winkler_b_Page_023.QC.jpg
3e9f76933e510dcff7d701aa8c844e25
3aa2fa2fa5c6cb617c524f0465cd5c275fd8322b
11674 F20110109_AABKYF winkler_b_Page_132.QC.jpg
b93e1df7f9408b35152fcefb37149cba
50ea7420724d48f669ef39e6d8cc17d60dba3e42
1204 F20110109_AABKXR winkler_b_Page_136.txt
0f2cf9794b5c8b4652ff5e97289b80ff
4067bf13f5f7dc85f7c20acd95c58a8df268d6c9
59089 F20110109_AABJUP winkler_b_Page_035.jpg
62efd090a9a558f46eef1e290c0c7308
13fc8f92ab95538c3258cd4a0e118d657ab307cd
11031 F20110109_AABKAJ winkler_b_Page_124.QC.jpg
3a149b60d4f8e3c0e9808f89b5f81466
4de346ace412a222792f5040a28ab299755e50ed
F20110109_AABJVD winkler_b_Page_034.tif
2056b76c1ee1a80130d4c347113cf36b
66e510434df78e70cc6a4c457e4839b42adfcaa3
3563 F20110109_AABLEB winkler_b_Page_060thm.jpg
f058016cbeaade0661ad4ab102ab18ba
c45a29c1227ffcedf933ff7445aca1c099d9d00d
3498 F20110109_AABLDM winkler_b_Page_042thm.jpg
1ed57f1b2ac18451493b67d34606ee02
a346c9caa6a551324d1573effa8d384a5544c552
4347 F20110109_AABLCY winkler_b_Page_024thm.jpg
e8c849d3911ad21d0b788c1b2ae36f16
7623e1dd40a85a26c6f0b259a86df84dd736bf3d
5328 F20110109_AABKYG winkler_b_Page_063thm.jpg
162ebe3bc4873cf9d67412d5cc39086c
8f963516bb1d1771af699277fa10ff80aa68a10c
1155 F20110109_AABKXS winkler_b_Page_137.txt
6f8f8a58e875a56b84707c9a5d53b524
f75c4c76d1a5765b0f0931e590195073763121db
F20110109_AABJUQ winkler_b_Page_105.tif
bb6630086f6a663cb4bd26f306520c69
c88a0dc23a73ab33fae81f33c845f41769ebb15e
3053 F20110109_AABKAK winkler_b_Page_131thm.jpg
2aab165fd3ca54f4abf16e62d395737e
05adf2389684d736342fd5311ad4368a5472b83e
4479 F20110109_AABJVE winkler_b_Page_067thm.jpg
351cdac252c9ad87ff5463fe7ee4a4c3
a3c54702937c971afc5edb7251183ec0062557bc
2948 F20110109_AABLEC winkler_b_Page_061thm.jpg
f133dd358144ac9358b619e1d79a3a10
dba648bf3741e5e4c580613d0997e0731f59c63c
8286 F20110109_AABLDN winkler_b_Page_043.QC.jpg
69322495510c4b0bf9a70062d084656c
75971023ba331d601daa0cbfdb60f21ef47bd33c
5714 F20110109_AABLCZ winkler_b_Page_026thm.jpg
b382d7bf3dfd154606d210c6703c6971
f33d28fda0712d633c689e3667a7558bfbf20239
10673 F20110109_AABKYH winkler_b_Page_126.QC.jpg
2cd67c27a52d6ba3f82263a489fc6e35
d362e4c0ccb9c51fc743ef875bb108b0dad91402
F20110109_AABKXT winkler_b_Page_139.txt
c7400f2db857c5ca392f5f5bd2911d6b
72cbb88d174de8e2864442891d12b249f1c533a0
1628 F20110109_AABJUR winkler_b_Page_028.txt
4748ef0c00e323a0b514573558f250bb
68ecbc055ea5a0da35f6b1faf3751f163620793a
59537 F20110109_AABKBA winkler_b_Page_010.jpg
142b2069306ab2eef015a88f6da0c302
6750e42365d4ccb4562c1d744d883028f5cf187b
48168 F20110109_AABKAL winkler_b_Page_096.jpg
b0f02a804ade1f2c5fa81965fd7605d0
bdfc43054ab7932e3c61b06479ff78ce2d31eccd
F20110109_AABJVF winkler_b_Page_073.tif
b6b3baed9828480bef2452ad0a20f750
db666a5037d8795a900d2defcc38a21b8c34eab0
4569 F20110109_AABLED winkler_b_Page_062thm.jpg
73ce444cdee0adaa60dd5c5f62cf1a01
91a26871d574bbc30d78ecaa6b28c436f1d3d4b4
11477 F20110109_AABLDO winkler_b_Page_044.QC.jpg
4a20707c66e1f038ac89db6f092374f4
ebd5221f4c51787434dfa20ef10be33d0ae08159
15919 F20110109_AABKYI winkler_b_Page_053.QC.jpg
242e76a45626c14e341da7abb6f127ee
3cad59b2df756b71ca87b2038ca77867ab2020f9
1125 F20110109_AABKXU winkler_b_Page_141.txt
dad65f568f742488c03b364d75647b1b
535cc44bb5a5593c923fd3ce479b1997919e7f31
F20110109_AABJUS winkler_b_Page_041.tif
8441c0f120c25eaf40b507b891a599f4
4069433839c7361f48cfd87281fce77954765ec1
72172 F20110109_AABKBB winkler_b_Page_011.jpg
3055d7d4de5cac1f8a149edfcc143c60
e516217d1d2e8367acfa508df66e58bd8bbf686a
4724 F20110109_AABKAM winkler_b_Page_014.QC.jpg
d41f09c7246df13337f4b65988e479a1
46ac047912e1a71baee341a393625615b6c7b733
4214 F20110109_AABJVG winkler_b_Page_023thm.jpg
9f956e0374d5f62533c558482c14b761
7367c6152d9634e4c38a3ab264dda705f6cbab41
19080 F20110109_AABLEE winkler_b_Page_063.QC.jpg
e8475e15fd427e0f18927baf60263038
a3e55566701aab3facee067f04de9dbc08058cca
8787 F20110109_AABLDP winkler_b_Page_045.QC.jpg
9a9e2ff0ae218b7c439f885abdcede1b
34998155f93fa63ee793431d2d40a0bbccd6cab2
3371 F20110109_AABKYJ winkler_b_Page_034thm.jpg
cafa887e18e463d233d1d5b7f6ee8bc2
d4635ed4d7e59221cf078cf0487812e2b48377c8
F20110109_AABKXV winkler_b_Page_142.txt
4492588eec9faae3ecac695fe2d9df75
e182377f3d65d39c874a2049f9c4bf703bc8212a
1156 F20110109_AABJUT winkler_b_Page_110.txt
762a1754ef92380b794aac457b474af5
67ff4e38f9393c2f258f921e18ae6450b643429a
76009 F20110109_AABKBC winkler_b_Page_012.jpg
ada9728b2ad393e5d9bc296d22be406d
3b59b9cf0381b04818bb47057eb260f44a524535
F20110109_AABKAN winkler_b_Page_001.tif
9970c7c38685a2c92df0f9362873d821
67e62fa6d1fee24bedc15251f31372591ab53452
11687 F20110109_AABJVH winkler_b_Page_123.QC.jpg
87cb59891a3b6133d154f56e6e7c11d3
72125eda28405665d80c55382623db09be293534
25545 F20110109_AABLEF winkler_b_Page_065.QC.jpg
d1685b66579254410680dc1c21a1904a
8289b4556b3811cd8c6dc2d0e27ee20982fee9ad
20414 F20110109_AABLDQ winkler_b_Page_047.QC.jpg
82019bede1363aa017f143f2e0c66049
157013b142245b078a9b46a6d7df43ce791c23b1
10306 F20110109_AABKYK winkler_b_Page_087.QC.jpg
eba2d0d82c2a5f9447828d19d8efd78f
2a746fc848e6257e7a93fda9c253c54f56730626
1181 F20110109_AABKXW winkler_b_Page_143.txt
728e5b5ac229279ee2da540b32d56a61
00e8a1657d7ccc08b04a98a9b6c1126960730216
3015 F20110109_AABJUU winkler_b_Page_134thm.jpg
4096273b38f8c5e7c33201006c4dda7a
254435127737a5cc10407c16eee5a6838718ac08
55320 F20110109_AABKBD winkler_b_Page_013.jpg
83d1aeac778c94d2fcbbdbb43c6017c9
8e4d37c1b95b9349aa513f36102da0eb73416592
56404 F20110109_AABKAO winkler_b_Page_066.jp2
8501e93086eeb46103be8c6c1d396550
4e739d4bedd20be09516444073c53e5c8c6ad3e5
49479 F20110109_AABJVI winkler_b_Page_108.jp2
ab794b0dbedecc1ef897b26eedf67e29
315b77892a56263f232c0e67bd8e6ae278e171ef
6391 F20110109_AABLEG winkler_b_Page_065thm.jpg
f647497d190d4aa7458793d1912ef35b
a52e7dc3306321a7e1949ebb7ccd231076bc4c3e
5185 F20110109_AABLDR winkler_b_Page_049thm.jpg
c98544a889a8d6d3d597514ee936819a
80fcf707a5c0716fe90538731523f45c866cbcc0
13446 F20110109_AABKYL winkler_b_Page_094.QC.jpg
edb2fadb38d4d6da7d776df49d887e2e
1a65c81c46ac8a3f516df9b7434c37b7f6fdf255
891 F20110109_AABKXX winkler_b_Page_145.txt
a75682a07ce9ddeb35dcfa741867a15e
9456cb04077bae1b1df0a8581579d7e09247f9e5
51658 F20110109_AABJUV winkler_b_Page_135.jp2
1f6efc19f385c44e0f00c0463c60f0ce
097c410db0950b2daba86483746648eedf56aef8
13425 F20110109_AABKBE winkler_b_Page_014.jpg
8dd8dd8b92da58962d31691dce6b5094
3f482be9eea2e0816670226322a9e392d39d0e29
37751 F20110109_AABKAP winkler_b_Page_106.jpg
51f26e732b4b005be80f8797a6e9ba48
af1a636f94d0736aa629e441f0d1d37515602e9a
F20110109_AABJVJ winkler_b_Page_124.tif
20aea520c51e74e656ec5fa914d1052c
5f6baf70372f716d14943a9e715cf0b22dca0945
4288 F20110109_AABLEH winkler_b_Page_066thm.jpg
0916b457818996a7ab1d792020892a15
2b09a32d2063e01154f88d0bdba936c545043fa1
24720 F20110109_AABLDS winkler_b_Page_051.QC.jpg
a1190876a32d7d0d72a4e26156a56baf
ae2b31e1fc081d2c4b1b3e6b77ed46845ccbead2
3018 F20110109_AABKZA winkler_b_Page_129thm.jpg
e774c512aeb918115153a96e2507c071
3f03eb0f43da66955e6317a206a0cc49f997bbd5
9983 F20110109_AABKYM winkler_b_Page_145.QC.jpg
5030b0091c2fd0936dd6af87f674927e
a77b7d6c47c211283493ee6b27b7ff08ffe35c2c
1884 F20110109_AABKXY winkler_b_Page_146.txt
2cc3c9134f854e8e7ddfe7a45b6efd35
4eee288f255606bf11e1f96f1dc21c9528f99864
25634 F20110109_AABJUW winkler_b_Page_018.QC.jpg
9abc4448f770285e0dfe9dc18394ac6d
e3cb1c592bd543e497bcb655e2e778ff05377a54
68030 F20110109_AABKBF winkler_b_Page_015.jpg
1449a295b524e337b92e9c9337a36bc2
2035784429efaf9d9f85ac83005494209b5a8227
171491 F20110109_AABKAQ UFE0000617_00001.mets
386f3ff396cebf613a193a3dc24c46d5
3db43c7b2d3ffbdd16da3de1b4a7d0a28ab07da1
1708 F20110109_AABJVK winkler_b_Page_062.pro
9c53838e8fd0d74982826c158c33706c
04932e0a4f2f4cec87b19c0b3ddd25d33b0faa57
15737 F20110109_AABLEI winkler_b_Page_067.QC.jpg
07a00187a7cb8bbea409903c8625984f
a1d1ea40053d7a1dda1a80a1c536af14cf9f811a
6267 F20110109_AABLDT winkler_b_Page_051thm.jpg
ab65f3f03d6fb86f1c35905b701b7a14
71df4ce948fe0a6d6d197f46794a6a4fa135c7b2
14929 F20110109_AABKZB winkler_b_Page_024.QC.jpg
c0f26c6f1e745bfa842a6e8a313f5b73
77cc495eca81d05d9d51ced06122633f9e60d96e
4996 F20110109_AABKYN winkler_b_Page_017thm.jpg
404b7cff2d354710644913fb12182501
a1194b209b3b1f73b9cc31471610ffd1d123e0de
753 F20110109_AABKXZ winkler_b_Page_147.txt
e79859b7e992f0d77a4df3d71ee59348
30f7857e29f3efcde62d2a623c984a541bdb745c
6054322 F20110109_AABJUX winkler_b.pdf
e7e7a2e385aad6fe948c592e1cdc5adb
1c7d2f163982b15f0fa825d6cee32e83bedf7793
68387 F20110109_AABKBG winkler_b_Page_016.jpg
fd0979332105ade91a5d0cef71e804c9
4d2ffe62d66e7391b49f69e2e59f00aec93782a5
49269 F20110109_AABJVL winkler_b_Page_112.jp2
6145ddb085900107a3123c475c3e0838
25bdca21684c009e67c210babefa2b0e5fb52eb0
4247 F20110109_AABLDU winkler_b_Page_054thm.jpg
ac07ac175473d860e6e635dc8e6dac5c
a770e4159d7ddc95c7552797849b0bb5d42380be
11544 F20110109_AABKZC winkler_b_Page_118.QC.jpg
f6d5fe9cead07ab77a697890d828e05b
ffecbcaf5a5368f29dbbfe9a6456c71e48265742
19197 F20110109_AABKYO winkler_b_Page_030.QC.jpg
722431632e13afbb8d74224c29820143
7f0c3375d0d3e28cc84ef5871b50852ceae6d580
73222 F20110109_AABJUY winkler_b_Page_022.jpg
377b38fe0cea2b9ad841567c30227978
d066206673b2fbf2342fd68dfe5cd15e623fc3c0
39991 F20110109_AABJWA winkler_b_Page_076.pro
49db35e39ba252c773638e305a23559d
e34a9cdeffd8b0675731ad6aa945cce337606463
26558 F20110109_AABJVM winkler_b_Page_109.pro
66612b0b54670f91c9520720d35dcdf8
e14ef0635c96cdad3bbde8f61d9e7ddd864d230d
17254 F20110109_AABLEJ winkler_b_Page_068.QC.jpg
5aec21ba7d4230639013f582707d20d3
b0ea616d45d8c65a30ac1b79415482b699d1d3cd
4612 F20110109_AABLDV winkler_b_Page_055thm.jpg
6ac350afb0c24456d720c62fb5df2f2c
1f50e18978f5edda0bfa17f8e1beb41de3343b20
4391 F20110109_AABKZD winkler_b_Page_056thm.jpg
2d3c6f0d5be37fb13862cd6f04742e3b
6ef89573b183078f2286986024db91bd0b911ce5
3162 F20110109_AABKYP winkler_b_Page_115thm.jpg
ce53ec334a9cc262542da3bfe2d010c8
d3a9a780d5db39763bf4aad24ecb7bf72006857a
16995 F20110109_AABJUZ winkler_b_Page_038.QC.jpg
8293ae69e1066f94c4cfaaddb29220f0
550f7844e9839c98aa0fa2430c44dcc78dddf330
56455 F20110109_AABKBH winkler_b_Page_017.jpg
2e552e595ccada5942975d30cbcf5c6f
f9ac711c9f5850be35c0d720d2faf3c2b19695f5
1070 F20110109_AABJWB winkler_b_Page_130.txt
345d3023a3a653715df3829ab8b4ec8d
f32d6eec637434407ea17e72585120a2577f5057
22348 F20110109_AABKAT winkler_b_Page_001.jpg
36e34f2c307bd7725291a285aa36a2f2
b07f7062d9c5c6205e828afa7e972e95efa82ce8
19978 F20110109_AABJVN winkler_b_Page_138.pro
7e47f501ea66ab687891bd912e4ef108
3d3d3a4a4781f48abf94caf90e7e6df0409dd710
17112 F20110109_AABLEK winkler_b_Page_069.QC.jpg
82666d2a35763ddc22a1702f789557e6
b52486ade89f93b70e8b7a135c2bba3b8709cf76
15330 F20110109_AABLDW winkler_b_Page_056.QC.jpg
7cc1dabd2c0f0f7c6c0251f7eb77f447
4e15e5c8a40bbde5377b4e299d9805b2ad98d278
22493 F20110109_AABKZE winkler_b_Page_032.QC.jpg
127f0aa117a55f65f0d739fd1c3752db
1b96e7cab102a576a188ee49286cf3f95d7c5cd2
3615 F20110109_AABKYQ winkler_b_Page_082thm.jpg
6a56ef635a0be044111b32b71e2bb702
7588c6041cc72b13478491389bbf3da1956d92db
51498 F20110109_AABKBI winkler_b_Page_019.jpg
50d4c636731fd219c64a334bcfe721d9
8acf2a2ad4ebb182d7aafa30b9976af4c44775c5
2906 F20110109_AABJWC winkler_b_Page_127thm.jpg
b55dbe65667cc3f834080397630f4e6d
551cf861031351beccd05195535bcebc6bcab442
9371 F20110109_AABKAU winkler_b_Page_003.jpg
d573ea7dd822524afefc879ea698950b
959212881e7825482bc1eacdd90bb0f6e8800805
F20110109_AABJVO winkler_b_Page_101.tif
03653ba99710400c2af21f23345a78ed
74c74e6febc4ac908171c2e1821062edebcf443c
10522 F20110109_AABLFA winkler_b_Page_086.QC.jpg
e48293a136930d2e1c17a0e4b2f5c5c3
edd31572274cbe6012e5f4260973fbed73841992
4844 F20110109_AABLEL winkler_b_Page_069thm.jpg
617fc0d39b45b191b71111c310143602
62b1105d4b10a5447c91efddbf3d9b3cc9d35f8f
19673 F20110109_AABLDX winkler_b_Page_057.QC.jpg
4513aeb52ca42f9270bdd3f110fbb85a
23ec0898ed4a772187321927d5e51729582b308f
11747 F20110109_AABKZF winkler_b_Page_093.QC.jpg
63301607fb25d956a678b4a1b1f2c74a
69549e4bf9031ea4cec11980ca278a87747fd7b9
3107 F20110109_AABKYR winkler_b_Page_107thm.jpg
1fdf1681e4ae74c8d8fc2ae90e7ca2dc
255ad838868a33e8725e1deaaf029564178cef4a
57981 F20110109_AABKBJ winkler_b_Page_020.jpg
e09f3fdb7062fe1f3a722a40d838c825
84f5b91188f83212cf6c401b42d76ff409c506e5
3829 F20110109_AABJWD winkler_b_Page_096thm.jpg
c5b9f3cbe895a2cd3b7f18e8fa50894c
1e73595f022b0ec5af7b5c0a449177762ef956d2
25025 F20110109_AABKAV winkler_b_Page_004.jpg
a6223910ce28cde1e9d8685fb564b36b
5af25afc58721eb837ad5c15f01b4eda8a45b2a9
82709 F20110109_AABJVP winkler_b_Page_018.jpg
4c7eaabf0b719639895a695add084feb
daa33a929c304b92cd75ff3b91c36739743573c1
2869 F20110109_AABLFB winkler_b_Page_086thm.jpg
eaa6495428f6c005cbbf6690dc8a459e
357a9b130134858fbfd3807cf2ccd9f0b8ff148b
17664 F20110109_AABLEM winkler_b_Page_070.QC.jpg
547c093e3cf8bcf318d27c30424ec3cd
13205c53174ea30e515c1561cd6318c06e70121e
5107 F20110109_AABLDY winkler_b_Page_057thm.jpg
6a59d22458604c7946a34b0c1336c819
773e87db92f375bf34765e5ea700b37df39eae5a
10829 F20110109_AABKZG winkler_b_Page_144.QC.jpg
346ddc2fd9fbd4e04bf92c7c67e50bfe
b8319cd2f33c4afbcef83e7659715574c4d0bf89
18506 F20110109_AABKYS winkler_b_Page_020.QC.jpg
3ebc70a73f3437312b5082f2ea0058e0
c2138d898f7ae998943bcced61483fd7809d819e
47990 F20110109_AABKBK winkler_b_Page_021.jpg
b2f97bbb40a81bde0b1d0eba3689d675
85b8dff41df963cd74c1e09c6c740d0632a09d3a
43885 F20110109_AABJWE winkler_b_Page_026.pro
64d479df1e9db390ad30656127d97581
73ef17a6229499081d1cdfa725182ff443c55324
73875 F20110109_AABKAW winkler_b_Page_005.jpg
a182c12e1da51d3437689e0c4af0a312
e1d34b925ae2d03163d2046b6b918e7126065637
F20110109_AABJVQ winkler_b_Page_065.tif
f09bc0742f1773fb821344b3082b4d9e
28d0441d20358b58f9641c1e9d3f9f03f9259250
10985 F20110109_AABLFC winkler_b_Page_088.QC.jpg
cb9031d410ed8af0a362c7f58430df3e
43472aa828f4fd6fb77316fdfe0cfa7ec7392f70
12249 F20110109_AABLEN winkler_b_Page_071.QC.jpg
0ec990de01b5bc82a15f1b3922a6620d
e217b507cc0519cc3d3726d1649d7322b6e81eb3
5121 F20110109_AABLDZ winkler_b_Page_058thm.jpg
579224855e48037c8be5f038fd906ff5
11afae8bdbc57e10bbb3db8a373c66d021fd0cc9
23709 F20110109_AABKZH winkler_b_Page_050.QC.jpg
1e3718154b9cef13639ebb8bab2297a5
5ee07dea9c8e0be9f23eee47c9f281e333c7aaa9
20725 F20110109_AABKYT winkler_b_Page_016.QC.jpg
4250ef5cc2f9525961a4ba25b9ee47f7
ee98fe068c796f7cf7383b42469096cccd3d951d
43017 F20110109_AABKBL winkler_b_Page_023.jpg
0a04924ead42ead4eaa98e7d2536a0d8
cebbc474c3611a74b728de30f2e251fdc156801f
76203 F20110109_AABJWF winkler_b_Page_075.jpg
f119db4b05e66c4fa3be13cb04e99e8f
9ae9580aed3b1aa814e9e225c18752c39b3dcd63
22716 F20110109_AABKAX winkler_b_Page_007.jpg
31e9364a022618be5daf385f6622f444
72d0c4ae388600bdb12fb9f2db0b9addd8628841
76228 F20110109_AABJVR winkler_b_Page_052.jpg
083fc911bbf1ae0207ac08dd225a66c7
3584817ff6aaae746ff44e9e6e18cdba4fd63302
26033 F20110109_AABKCA winkler_b_Page_040.jpg
e25858b62872d1eab0f68bfc395dcfaf
615a8c6b12ba66c2b931d165db3cb0831bd49785
3234 F20110109_AABLFD winkler_b_Page_089thm.jpg
93dc174ff18156ccf7764e9172af2ca6
62ebb2c2f92922493510c3b76bec5a19ba35c590
17776 F20110109_AABLEO winkler_b_Page_072.QC.jpg
7fa9f89374f85bc59952ed0eba14778d
55ccc257e26b4528a3f72e2fd0b40095eea1c4be
13550 F20110109_AABKZI winkler_b_Page_111.QC.jpg
b8da93b04c525bfaf2a29ddc16041dfd
7eabeea11cc06df43161fd424fe5a1e3193d7d72
7263 F20110109_AABKYU winkler_b_Page_077.QC.jpg
007e672c822a3e70c4e223c695cba1b0
193b84c1de2bad57eb854d5ab0f106143a214aa2
44514 F20110109_AABKBM winkler_b_Page_024.jpg
12301d1f9bcc0e860230e08a3b2ba097
84dc2e7549dcf4bdc6eb33100fe6432661937364
11700 F20110109_AABJWG winkler_b_Page_104.QC.jpg
6b4b3b7ef2e72cb37641b21ac4936546
e57621476b95440d34255c8095561d59ea7b8a2b
58236 F20110109_AABKAY winkler_b_Page_008.jpg
4644c7137988f39dd0c9c7a6a502e56b
e4b9bf94e4158b91e47c186a337a8a178e9880f1
37212 F20110109_AABJVS winkler_b_Page_104.jpg
f055bb1a200aefcee2b0e3b0301b4284
c60421478592bf008b820c8215392f3a2bfa57e1
51679 F20110109_AABKCB winkler_b_Page_041.jpg
cff0be755dc969473072bacf3af6bea5
4c1b2c8c37ec1eb70d72bbdd45a320d1e8d5bc58
13490 F20110109_AABLFE winkler_b_Page_090.QC.jpg
25a10ac20e38678e28936a3f0d111e77
c5d64845704d27a60235552da5564cdbd89339b4
9855 F20110109_AABLEP winkler_b_Page_073.QC.jpg
e232be356b797ebc8e2ac64da5174416
cd20d4ca627ff4e09bb4e9dbb822f036d8b2550a
11876 F20110109_AABKZJ winkler_b_Page_061.QC.jpg
ef17dc8a12d31fdeefa8bea72ff20b3e
3d92fc2649db539906ba3c2d5031c849c5b721ec
3126 F20110109_AABKYV winkler_b_Page_071thm.jpg
171f1048afafe73e4091d3d34a7530b4
6e1c172a859894babb676851ba7a54614d04df39
62433 F20110109_AABKBN winkler_b_Page_025.jpg
383296188046697a55a3fdaf67084ef2
222367158f8b7466a3644b617b550b3102fef79a
70959 F20110109_AABJWH winkler_b_Page_054.jp2
ac742a1fed0e410981134a2b5c72233c
4674d22bb569083e3e59037be625f0af8a3ff8ab
49023 F20110109_AABKAZ winkler_b_Page_009.jpg
fc7e8529f36693d3d7c778d7fe8087a5
585e02c939ecc204dadd336cc54cca5ca48fd4d1
F20110109_AABJVT winkler_b_Page_050.tif
6013f76b37a5eacddae1aaca628acd5b
ee00061bcb67ff780ffbb22f966d20bcd321bf89
40516 F20110109_AABKCC winkler_b_Page_042.jpg
e674971a45f376eecf20bf65a27450a6
f6d51b740ce2766948185f4189e51c7f7a4a888b
3606 F20110109_AABLFF winkler_b_Page_090thm.jpg
b5d8a81c4f82bb3e1125b391a42bf370
38f2582409c6ab4559fb0424fc13b978068900fd
2659 F20110109_AABLEQ winkler_b_Page_073thm.jpg
e483479e57c9bea3f356f0c307c61fb1
e558732eeaae83fedce68a72bd2891ac68030694
12571 F20110109_AABKZK winkler_b_Page_089.QC.jpg
5d02c016279feed7668b3fa177ed2565
1fc01a86f2edf4e0ac834dacf10e344ea474492d
12130 F20110109_AABKYW winkler_b_Page_102.QC.jpg
b971764f702154cdee3ca4fbc6b10e13
b377020176b738077a7e4d5e2827566dc32b8885
73807 F20110109_AABKBO winkler_b_Page_026.jpg
31f95c18ee1e2191b7cb95711b081c8e
2047870a79a6e64f10a4d134f5b06f17d735c2f7
20780 F20110109_AABJWI winkler_b_Page_076.QC.jpg
192d5f608c11cae7139b54d7a182be6c
4a2f3f3ed3aa8e753bb5b8c5f8cc93474f290cd4
4592 F20110109_AABJVU winkler_b_Page_010thm.jpg
5f5ec6afbbb7cbf5e31e8af028b8b0d7
38d9662e4a481e93133ccec7979c4a96bd6c890d
41389 F20110109_AABKCD winkler_b_Page_044.jpg
fd7c69c81d04dfcfe8a563ba392ca889
8571cc6ae370334782db7ad14872e45a75ffd678
11065 F20110109_AABLFG winkler_b_Page_091.QC.jpg
1aa2289a5e2fd40354872291517a5301
d2fd522619c14e7e5a82f5402493f1bc95c467ee
21124 F20110109_AABLER winkler_b_Page_074.QC.jpg
25cc2d94f99a67caf13ecb28416819e2
9fa48582d45df37a2b58e43bfc44242e985a0b3d
13457 F20110109_AABKZL winkler_b_Page_082.QC.jpg
ac422ea37af02d1ec97ee1e52edf2a93
9534589d7ab6d7de6c321f37f88503a2ce6ea4c4
24970 F20110109_AABKYX winkler_b_Page_027.QC.jpg
f094a80447266824ccb9a6590250b20e
e09148dc4e4fcfa281faa989c9ff621f5c21600c
79420 F20110109_AABKBP winkler_b_Page_027.jpg
834f9a4cf8ce823d06c22832a99d50ba
686f1d342c6a174e1d341132c0f8b398dc670ab0
24033 F20110109_AABJWJ winkler_b_Page_052.QC.jpg
74dfc3ed6d4d951c0f6046f569a3798f
e1daf3d26337f912b5f8a0caf04b9624dd08dbb1
12552 F20110109_AABJVV winkler_b_Page_081.QC.jpg
7dbacc182261e64486af9e844e7628e1
8e91fe06c0000b91165ee46be8996a05e63ddd05
26414 F20110109_AABKCE winkler_b_Page_045.jpg
2516f36bda9093c46f2672ce32cd9f58
f6ca88ad720167c269e823c71ba089b0d81e231e
3051 F20110109_AABLFH winkler_b_Page_093thm.jpg
b65a17d98a66190632c6ccc2fc1c57e0
18fe2d16b69a9c75ec276611b1a9935f467a3a54
5182 F20110109_AABLES winkler_b_Page_074thm.jpg
53bd85547b2959bf2c22f3be968b431d
6596ee41703a3ef8f5bab5b5558f92281f820200
1002 F20110109_AABKZM winkler_b_Page_003thm.jpg
dbb7dd4ec5081b5bd6b15132ac8f366b
8df1550574a01e306d6199492ce05dbbfb9843f6
3295 F20110109_AABKYY winkler_b_Page_139thm.jpg
6d6250c0f4e84267c1f4dd96e8a023ed
c918ac84e30f12230b1b5ce4a96aa1e6f2253e74
60711 F20110109_AABKBQ winkler_b_Page_028.jpg
323d7ae8fa54016076d9a7342bc6eb2e
1681345f2ff1a7a283469dc58a48f166367ee4db
F20110109_AABJWK winkler_b_Page_011.tif
21ec0072b0944a289181db4c84260114
048f0f968e1882841ed812e51c20077477f96c1b
111 F20110109_AABJVW winkler_b_Page_062.txt
560421b8a415967b42aac52d10a8ae4a
0a9e608a462ead30cd89e2b7f510176dc508c35f
68858 F20110109_AABKCF winkler_b_Page_047.jpg
5d663a3fcc99be27c5aebc99a8285107
91ff0c1fc034cd9bf945a7fc33628339f757a4ea
3477 F20110109_AABLFI winkler_b_Page_094thm.jpg
b69a9ace18aed9b2a75ac2bf673382ba
a3c0c8704a875d54b0a5d3504aa44bfb62dad674
23588 F20110109_AABLET winkler_b_Page_075.QC.jpg
c34ba4b9c7b342ee1e4599a497a4c4a6
7f1e2396f67f2eb024e8a80d738fd64e00f61632
12076 F20110109_AABKZN winkler_b_Page_131.QC.jpg
e81b9b4b284eee3f49d8d0185631ca17
22ec7cf12c0cb5db513d63f4c8934a4da25dbf13
2862 F20110109_AABKYZ winkler_b_Page_119thm.jpg
08fbb815895ba5fbb838b3a3287d6105
e56d9d855f838d6fd739b61c3c691908d0a96d17
63691 F20110109_AABKBR winkler_b_Page_029.jpg
1419fbed55773ac22146dc29c31f9d7d
6117110fd7fc76c1e516bb3e8f9bcf2fa23855cc
F20110109_AABJWL winkler_b_Page_083.tif
10590a7b761e6e9859d4e35ddcc707ed
3c94ff24b1392ea154de44bb66c9fadef370997e
3100 F20110109_AABJVX winkler_b_Page_106thm.jpg
c184d0b1855d24db006932d60d63ce90
1ac82e9b28fa79921f68c9d2c0f8b49933db0ee4
83754 F20110109_AABKCG winkler_b_Page_048.jpg
9f7603e169a8ab35774129ad89ab6376
998992c3cebb600d2a2b3683a4caa4aebaec8afe
15140 F20110109_AABLFJ winkler_b_Page_095.QC.jpg
1f8d222241692713df079723a9a4467b
a63e3a8fcaad6fd952e83475ca8d7fbeb793e39b
5766 F20110109_AABLEU winkler_b_Page_075thm.jpg
43aa71824efbede21fe9b0ff9c3ac0eb
ed8dd0ad8270bd9968a7cb5b2bd111ffdb0aad1f
17557 F20110109_AABKZO winkler_b_Page_039.QC.jpg
66f450655dedcf7d378844d685fbca24
19da310a95536a88954a355c499b787f2f00de15
2907 F20110109_AABJXA winkler_b_Page_100thm.jpg
027065b64e99260dcda03d46baf662b5
400117ddee8b20b66b56d2367e403c427d2d5203
61523 F20110109_AABKBS winkler_b_Page_030.jpg
6e63be58b3785b3f9f41b9a47d262848
6df75ffe97832b0c5964051e0418e0fcd99c873b
33587 F20110109_AABJWM winkler_b_Page_099.pro
126f147e5caf4b279c2f8a478ab727d7
e31211d328198d71cfe758cbc1bc17b26783f842
727 F20110109_AABJVY winkler_b_Page_073.txt
576f38e83714fe118b1da9db67e35db2
88968d21611173ea5bd83d154b9edec8c70deedf
61120 F20110109_AABKCH winkler_b_Page_049.jpg
b84e644e1a5346e22c5552fb83ba15a0
522f12dabce391885e0dd297fc375568385670a4
2078 F20110109_AABLEV winkler_b_Page_077thm.jpg
fb90afe6efd05120c2deee5db5e6d149
3c6fe7ee3c0c166c48ca54e71c33e1f8ff547237
4264 F20110109_AABKZP winkler_b_Page_053thm.jpg
692e0a2a555af60e3e738bbb57e12420
f56df2d944f12d470565b05e818c5b7fa829cf6a
37548 F20110109_AABJXB winkler_b_Page_094.pro
4f995e9484e5b58cb1deacd07ea90575
4a34addbc68f2798ad552e9bcabab479c04a62ee
35719 F20110109_AABKBT winkler_b_Page_031.jpg
ee8bfc1d1cdde73a1057badcf939079a
4460e681e1c9d18f0116aff871c1fced24d0c8e7
59931 F20110109_AABJWN winkler_b_Page_058.jpg
2a42f372c9c89145f54f0c7db9a4b2d4
9b84209b4b760d61eb91b123838b052edbae38b2
107556 F20110109_AABJVZ winkler_b_Page_048.jp2
88276f4861047cef390a0447c6a82418
516f9a339c49d5ab4afbd74fdc40ef85ccc2c05d
13832 F20110109_AABLFK winkler_b_Page_096.QC.jpg
4a90a83f6ca06aa2b04c384b7b401c11
2ab8cf5e85e1bbb994d524e17ed1f387df22a8b3
3262 F20110109_AABLEW winkler_b_Page_083thm.jpg
78bc471a1dabd04695d5afaca7ef189e
0499363e9d72e64b17a0a4abef0b555c3f9e905f
3474 F20110109_AABKZQ winkler_b_Page_081thm.jpg
733eb540ad3c36a9ec67edcba29b5ac7
f3e8b59f9afc6636070f47857648ec95d9d8852d
11640 F20110109_AABJXC winkler_b_Page_060.QC.jpg
9b9f7b5595252a465e055afe18acf851
69ee37c4adc455fc2a72f20b6304ed83983da375
6297 F20110109_AABKBU winkler_b_Page_033.jpg
191c14623beea8bdc919443e90781e28
7160afd8a494567d96d5bfc521553c985e935d9f
37010 F20110109_AABJWO winkler_b_Page_116.jpg
19c705630cfbf9d7d4cc25134973f2d4
dfce64281d9f4932e680b7e3af174c7bc53c6a78
74768 F20110109_AABKCI winkler_b_Page_050.jpg
8313de499c240dd066e18501fc05f0fb
ac7d87bfb09f23ca68861c3e310a0664d9a806ab
3089 F20110109_AABLGA winkler_b_Page_111thm.jpg
80f47176d33da8fba010f7dda66c8dfd
0969b61868bb32b27a037957c00463ecefa50122
10926 F20110109_AABLFL winkler_b_Page_097.QC.jpg
937518559530ba77acdc95959f6071a6
eb6ec963b35446d30cbc5975f8b7229b3f1602eb
3401 F20110109_AABLEX winkler_b_Page_084thm.jpg
631493ccae3f2ca3a75ecde10266cc8e
8faa19374a4251c0f3e4e355b6a8efb6e9140857
1846 F20110109_AABKZR winkler_b_Page_007thm.jpg
4361887e8ca89b453b7ebcfc0559fab2
c830a38e6e998fa7bf6698ec8ed726c52cc60119
24661 F20110109_AABJXD winkler_b_Page_017.pro
456a8d966079d616cfd1945ed14d8eb8
11ece16ccae777854bc14f6ba14bec45e7ed993b
42544 F20110109_AABKBV winkler_b_Page_034.jpg
b62a338dc4778a4523c58237271d66ff
1c881b2a8d617b66e1ad82c96050de9853447c6a
6271 F20110109_AABJWP winkler_b_Page_048thm.jpg
93181f24287b967f72004da80e0ce282
9494b916ae7373134f8f97722c99ee9f3e4bfed4
80269 F20110109_AABKCJ winkler_b_Page_051.jpg
16f127557fb269fe893c927eca796c07
a8c79660d63e2334cb8e362bfb123b77536e8ffb
F20110109_AABLGB winkler_b_Page_112thm.jpg
379ee52140f7e5a6e528fe87708d1513
83b7281c08a7dbec15f4349ab6081ca1527bd43e
2988 F20110109_AABLFM winkler_b_Page_097thm.jpg
6aefd3cfcb03159126e9c7fb05864a7a
ab2261139f7b1280051855351eab2361fb97e022
10575 F20110109_AABLEY winkler_b_Page_085.QC.jpg
2e423faa70371b8482b679af97b1cba3
78212b1ddfd75a04feed398c409b0b1881dfd885
3592 F20110109_AABKZS winkler_b_Page_102thm.jpg
ea41d9d62c9ca09b4d8dc97434de9251
fd930538827588f20f9bb8bf04e890cb216b2f89
22154 F20110109_AABJXE winkler_b_Page_144.pro
4e87f3e3b0039abfc33a2771f48f12fb
70ddfacb4ff9c69611cdb00be64b21d91e78252d
75315 F20110109_AABKBW winkler_b_Page_036.jpg
c8ac4d4ddf61e874e9d9e7f5070f8046
b6642f80e2ede984813311671d4e6d414c865733
78428 F20110109_AABJWQ winkler_b_Page_006.jpg
9da062cd37501636272e98b01c564ef1
f85dc9638f9ea806fb545e3d8b738cab5ed48509
49731 F20110109_AABKCK winkler_b_Page_053.jpg
8408bdd67fa28e091b08155389c25a03
9ac5d613db93bb125aa7f8b30772bb05202ab820
F20110109_AABLGC winkler_b_Page_113.QC.jpg
f8b11779fe9c85cd57cd965f4a7030cb
7850cb8456ab38b0ca8931128756b16a2ab93f07
F20110109_AABLFN winkler_b_Page_098thm.jpg
1c30e8e89a0d3bd83628b159bc27533e
f3eb1c13bc26badfed9519d5ee5b97f8d716d9f0
2787 F20110109_AABLEZ winkler_b_Page_085thm.jpg
b7e95de931e5ec7d5d65e69e2e5f9078
881ac5f3c6637940aa887e3cb9e25b6c5db33cb2
2530 F20110109_AABKZT winkler_b_Page_147thm.jpg
e1fcd5f098ed57b8c9961b74e705ebd1
fcee69a0baa47724405cead89511059584b5d6e0
F20110109_AABJXF winkler_b_Page_077.tif
1ea5a2b116106865f260f0e90120adac
e6d140dbdf01166e2c23e1f37fedea3a314f54b3
56302 F20110109_AABKBX winkler_b_Page_037.jpg
dc8a33e7cdd40032aa48f917a2764013
d5cdf116f3777c1b49c6cd594bc3cd88afac83bb
1202 F20110109_AABJWR winkler_b_Page_114.txt
6557829ea3ec35eee0679ee259b824ad
bf1e9f294dfab59cf2086d68dda25c33abfe8952
66020 F20110109_AABKDA winkler_b_Page_076.jpg
200694f239b09201090de2efbc5944e4
077d934722c5b9c07e8d79849ebd506228b22e01
46497 F20110109_AABKCL winkler_b_Page_056.jpg
0d2485495bef3c884052f86f0368d18f
0d36626681221d0da608a39f8954b550abfe6176
3097 F20110109_AABLGD winkler_b_Page_113thm.jpg
c9f21c9a2ca40393e24fe3560a470977
088854288b3f07aa4cdcb600cf880c6e531f2e5b
12464 F20110109_AABLFO winkler_b_Page_099.QC.jpg
453d5d31cc74e9c21739a6df636fc393
f76e52ebabba9d1ae1166289c357ad5d19e4dd36
3048 F20110109_AABKZU winkler_b_Page_126thm.jpg
250802c64d452fbbd96d7ae76c686b0f
f9a9ba43fa5fb21e64da4e5320a085a0a46d039d
37905 F20110109_AABJXG winkler_b_Page_127.jpg
ba87038db6e24cd4ce8145c7381d5fe0
f1fbe746bfd128e587637bda00adbdee2f41bbd7
56538 F20110109_AABKBY winkler_b_Page_038.jpg
80d8147fe7cc01d637f437984197a3eb
f281ae15007883ece77a1bf331a7e42c9c447dcf
F20110109_AABJWS winkler_b_Page_025.tif
2b304f46f097689042af6dfb56de5229
d705f7cc73fd13ddf1c64dedaaf3009daa7df02e
23213 F20110109_AABKDB winkler_b_Page_077.jpg
35140b91fe1dede5bce16b437827dff5
f00c8dfe67970ad039820458736fcf8fb6b79afb
62628 F20110109_AABKCM winkler_b_Page_057.jpg
744da5fd35d315a0e829b79e28ebdecf
753d70559bdea8ba4efe80fc387a010aec2e4a21
3058 F20110109_AABLGE winkler_b_Page_116thm.jpg
dbff6e23661c6d4e63ce6a1458b663c1
e032fea4b20959224602a801a8ad0f04bc9a4290
3264 F20110109_AABLFP winkler_b_Page_099thm.jpg
62330e20b8c7ca20861e017c899f60d7
35c2a4a15c7f91b781d75eabdcd230ae387f5088
3167 F20110109_AABKZV winkler_b_Page_105thm.jpg
1345629d4e4766b5ad2442ed2ea07c56
c5751ca896c2e6c6cfa7d19e92c8ccdd5a98aafc
12986 F20110109_AABJXH winkler_b_Page_117.QC.jpg
c8f0d91cd37906694cd3641b8929fcee
7d1bf8cc6df22fbfb9ffd64879751afc04b06b0a
52348 F20110109_AABKBZ winkler_b_Page_039.jpg
77d31c8a0878ba062262f930ca4ce23b
fd16bf27d46c559e4a7823feedd9e84912c9c9ce
14944 F20110109_AABJWT winkler_b_Page_054.QC.jpg
2ac18e0b97deb94abc684fcb8dcdf37a
3b6fcf4a3db77b3476ca3e6e7bc54d429b705c53
54896 F20110109_AABKDC winkler_b_Page_078.jpg
8968ef57333f611bb91f2769243d60be
04e89fa1706a0b5c375e0a83ccee96c6f3bcacdf
57914 F20110109_AABKCN winkler_b_Page_059.jpg
8ef06237324cf97c09543cc9f9b0165d
1bf6553edb3fe710edfd05c193a48bf2a49f434c
3068 F20110109_AABLGF winkler_b_Page_117thm.jpg
b97fa24d519e92e05834004140866f30
937fdf6246c509a867e53087dbd5e79ef5ee8c8f
F20110109_AABLFQ winkler_b_Page_103thm.jpg
d14cbd38e1afaa6f7511e9f4062f60bb
7268ee2f31334bb6d788d295f369c56dcd8de1c8
4199 F20110109_AABKZW winkler_b_Page_006thm.jpg
a9610924e4fb8c5fdc95dd3a7cc7d938
607b13146c0236799aa59d727837213f716d4ef9
F20110109_AABJXI winkler_b_Page_025.txt
954f734155575a40d015835834988f57
564eb1f40422940106a7f7910751a92853e23564
16047 F20110109_AABJWU winkler_b_Page_006.QC.jpg
186f5b817ed848c22c9ff9ba3a2c1520
710347ce80633defe96938a63638d3511a1f14b3
46577 F20110109_AABKDD winkler_b_Page_079.jpg
68d88e83e321874bad262a9de15ea600
2d52cf38c67d081dcb290886061cf17b568f06a5
33430 F20110109_AABKCO winkler_b_Page_061.jpg
2cf7f855c0fb89bb9b8a074e07ae6043
89e38a98e35c07089b982f51283d146c2d85a8a7
3032 F20110109_AABLGG winkler_b_Page_118thm.jpg
8adaa9746ac46fea1b515713a2c6012a
7424a4943e56e6b95b9e3453fc28808dafd06d10
3118 F20110109_AABLFR winkler_b_Page_104thm.jpg
809a249f7b053bfb44ed0cc5ff03c01b
964b2bd9c6058f86ebaf27ca645aef4a3f92cf81
5113 F20110109_AABKZX winkler_b_Page_047thm.jpg
36707161aabc823c9bba75a0ed568a29
912b537ee3173be348d986841cb8e5db216d9dc1
836188 F20110109_AABJWV winkler_b_Page_035.jp2
0c0634b1b66eb7ca722ddde76e3ac325
48599dbc30ed8ec17f90b171ae1f9c137ab1ce4d
44083 F20110109_AABKDE winkler_b_Page_080.jpg
dff85e5b2f23ca0a6c4b98e8f34bb83b
6b974fb75e8a333881f9857d5c157504ccad7e85
66883 F20110109_AABKCP winkler_b_Page_062.jpg
9f00300478225408c47863d9c809580c
94f6b5005af858a8719e8dd1cc4b660992abaa0b
F20110109_AABJXJ winkler_b_Page_126.tif
953fbc40908bbfc93d769e71043f0800
24d062ea1b4dfd30e418ab4ae3765b992f168272
12425 F20110109_AABLGH winkler_b_Page_121.QC.jpg
c7ed22592eb53897e88e5035cfb63bf8
3041b9dc3165920168e4f3681777af0e9736c8ab
13706 F20110109_AABLFS winkler_b_Page_105.QC.jpg
788931d56d3e13b2cf47730e00ca09ac
20520250240e02513491cf8d9970442c21c10d34
10389 F20110109_AABKZY winkler_b_Page_031.QC.jpg
237cc906c55932f6390353cb2d1d7490
b6823f5ecc08d5eba454f24670348a477f694fca
49238 F20110109_AABJWW winkler_b_Page_100.jp2
348505571e7b8d269a413c1ec828b654
bed3cac351ec293d844b40337b5c0809eafb59b3
51519 F20110109_AABKDF winkler_b_Page_082.jpg
b5b3894f0017a956d7dad7fb33c4ac03
bbca7e271c034cc2eae2b7fdded42b2dd6744903
58742 F20110109_AABKCQ winkler_b_Page_063.jpg
0cc4d6a50d946e48a407aa3fc8006773
ac1f00dc1516d3bc2ed5ec5be74886642a46da29
2158 F20110109_AABJXK winkler_b_Page_033.QC.jpg
d4c0575fb773b21be19950c81f6f850a
75f2bdca605ae0234946ddf6e1997f342866fd0e
2768 F20110109_AABLGI winkler_b_Page_121thm.jpg
84c3b0996ef7c7b29cc13c05a453c91a
a965f1744c2a903830e21da669d0fc85a8278022
12325 F20110109_AABLFT winkler_b_Page_106.QC.jpg
01f878357b253044e1344b9ee57a294d
522001e9c2525341c910de29bb912f2c12a0aa08
12083 F20110109_AABKZZ winkler_b_Page_098.QC.jpg
e460bc32d4dcf1cf6a7f3a9906e53787
be6789a26d17c4fbc9788ac22780117eb6e35793
1541 F20110109_AABJWX winkler_b_Page_057.txt
01b96c458183c79fb0d26a75b3fa2d63
a8ca61d815382c926372be3b4a1d81e57987d859
46592 F20110109_AABKDG winkler_b_Page_083.jpg
d9b77d0d96bc41b51895a6128e5d121d
f101b51f441362dd2ca0447010fa083dd8e3dd19
72890 F20110109_AABKCR winkler_b_Page_064.jpg
1733c8cbd934ebddbcfa26eee9210e0e
dd6f69e67df03191b7c685a8230fad2e21c15f0b
F20110109_AABJXL winkler_b_Page_042.tif
7a2a6db2d682b06786f02d859f9c7931
cf080675def89b4c1787410e71941235a7fc4c1c
F20110109_AABLGJ winkler_b_Page_122thm.jpg
8ac04771b12e768232fb537e68dbf0fd
9cfd2594a03bc3b831495c692a1e61e0c7752716
13226 F20110109_AABLFU winkler_b_Page_107.QC.jpg
c2e2716991a1089b4d382e5e214f068d
64dbca7d228c1e7c41493ad523bf6bf6c4fe411c
12358 F20110109_AABJWY winkler_b_Page_135.QC.jpg
9c8055175f88430fbbf5237a7585c674
db5df254d3eb86ed1346324fecd20737374a71aa
34887 F20110109_AABKDH winkler_b_Page_085.jpg
ae0121a5ae843152f6af04bc2ec27e3a
1fc6883704d2b4ab3ff1a8097f993ba07a1da755
F20110109_AABJYA winkler_b_Page_118.tif
2f88f40687578ba479b581ec131a225c
e6cc2b3914b9062da4c09a37304b27ef2b2144bb
95293 F20110109_AABKCS winkler_b_Page_065.jpg
d0fff66d99464f9088455db33bca5c0f
18382e1d37c3248afc776f0e62afbd3015f4d4fc
F20110109_AABJXM winkler_b_Page_091thm.jpg
f52d92db95515e76cc7659c7e26c2312
43d46e6754add7b18f40c95ad449e635f93ae1fb
3045 F20110109_AABLGK winkler_b_Page_124thm.jpg
4df07db556ddea6f241059f82b382389
f963fdb3d71057893d508d35fc81a48c3718fb09
12074 F20110109_AABLFV winkler_b_Page_108.QC.jpg
0af6a7224e0f2ed5b219ad13e5fe6008
e3d17e9b39c2075e9dda5f3d6353d6294d03e725
45885 F20110109_AABJWZ winkler_b_Page_081.jpg
0b47652b4c6d57382e3e3274233ba46b
33b11ce9333b5c8f4c60c3a8c783f9c0d3a03777
36439 F20110109_AABKDI winkler_b_Page_086.jpg
0dcbb63a9fd6aef9b1f01b0dd868dcf3
ee0c264f7fe3110bbc9ab2361726137e583dc2a3
30573 F20110109_AABJYB winkler_b_Page_054.pro
442441de0f734587772ad77a2cb58e5a
ead0e60689a785dd69cf4beaf6ec4abcb3fd7556
46092 F20110109_AABKCT winkler_b_Page_066.jpg
dac34f6f44589c869d59e0eff02e1b17
681d431797424b67da019784b705c8a988c1857e
3570 F20110109_AABJXN winkler_b_Page_006.txt
668b1e6f22ea288312fffc9ec4c1b9ee
05a0e422a93b0f420e60f0412b3246eb5e26e939
13472 F20110109_AABLFW winkler_b_Page_109.QC.jpg
a551fe5b45908966cbcaa21ac9d0001e
b56b62e880d5351fe7f050f8282198317ee5e89f
40283 F20110109_AABJYC winkler_b_Page_073.jp2
df91bd4cfcdb9de8bd99a79be9538f2d
4d5bbe97fadc7fc5f0e62bab461a7525e579734e
47227 F20110109_AABKCU winkler_b_Page_067.jpg
bca98893cfc65d3cdc557782818e35d0
a3d311a25f65acd3c9079ae00f4c083a06fa2e4e
1188 F20110109_AABJXO winkler_b_Page_107.txt
bb812957638144e286d7f718db3255d8
eb1a41862b6da501a41410fe02075001adfd6a0a
2975 F20110109_AABLHA winkler_b_Page_143thm.jpg
44bb882fa7e21e587db11768b6ae449d
eceadacac75df000e9c143f6063dd0f14499e18e
11672 F20110109_AABLGL winkler_b_Page_125.QC.jpg
80c32cdd3de850df8bd5950e05cd656b
92b02164499f65c529c9abaf294cd99fd25ec4d1
3142 F20110109_AABLFX winkler_b_Page_109thm.jpg
b1181bead69a46d27eeba1c93b0d2cf4
03cd6e8a5fdb80753973f7dc4cc7ca1f8eac2005
36822 F20110109_AABKDJ winkler_b_Page_087.jpg
3af2aadf42b9931d364e4182edbef352
c09923c1393e50717cd27224f0b364d502c734f4
1615 F20110109_AABJYD winkler_b_Page_001thm.jpg
0dea6c576e70b338a5894bd5dcdd49c5
7aef1efdf7cda8b8843bf90056e2f0de656e3727
60481 F20110109_AABKCV winkler_b_Page_068.jpg
bd10987fa2948e0bd22387d8421f391e
2b83bb21e203ed9ef1d96eea5fe603dbf5c7bfaa
F20110109_AABJXP winkler_b_Page_079.tif
4beda82a86eabec84848b2d9c5a5288a
fcb6af4a47f4ecb47e82e163d7cc717b4794bf4d
3025 F20110109_AABLHB winkler_b_Page_144thm.jpg
19a101923553e4342563de616251f7ed
cfd4b4d6384805bc230e900b388257a4d61f2a3a
3049 F20110109_AABLGM winkler_b_Page_125thm.jpg
f308e628fb2988b823e480080d04b7a2
91dbde9de4b77c78c4699f9f76a4118a7e06a0d0
12276 F20110109_AABLFY winkler_b_Page_110.QC.jpg
025787a71112bea7203ff3de7392540f
4bb4750aa0867db6bdbe603c4aa5c169a35bc11d
36684 F20110109_AABKDK winkler_b_Page_088.jpg
9ddee907fdeedb6b2fa368f5c23ea85d
ef9ead4d75c727fd6f5b940a2a8504975a7a1530
49817 F20110109_AABJYE winkler_b_Page_104.jp2
b06c6275d2735acf34ae863d159b8578
3e35cf396b98b84d8db614031fb42568d4f08f71
56076 F20110109_AABKCW winkler_b_Page_070.jpg
9dd761bf3879fd38e7a1464fb3820e3d
d348807d7cb82819e1c34b9c38368c0be7093b0d
F20110109_AABJXQ winkler_b_Page_114.tif
22608e618a82aa6effeb2d863e0b1eae
07400d4fe88660241f6ca6955d8e1324d7d832b5
24232 F20110109_AABLHC winkler_b_Page_146.QC.jpg
3f68f2df90d6531e96066d4f82ee243b
407113e657c50739cae630cde09cd0fef21367cc
11377 F20110109_AABLGN winkler_b_Page_127.QC.jpg
32eac332025286cf6e067e56dba244e3
d3480dd5aecbc678e2ea269c72cf599e64f34140
F20110109_AABLFZ winkler_b_Page_110thm.jpg
dcda13a8bee1769ed90fa4755585f488
98806dcdeefa013010c5c12cebe97a7d768d2196
43380 F20110109_AABKEA winkler_b_Page_107.jpg
6010d84aeb81ce1e9743a6d7096b94f5
70c4825496f14a736021acc9f50b62ddaab32649
42912 F20110109_AABKDL winkler_b_Page_089.jpg
abd291db839613b784c92f0315b25162
3d546fa8e653056f66b139915d45c21410b6fb2a
2751 F20110109_AABJYF winkler_b_Page_087thm.jpg
63ac27f1aba89288bee47d544f042d0b
08f026270ff31564632d2f36b72060a39229494b
39498 F20110109_AABKCX winkler_b_Page_071.jpg
f1ca73d1d91b8ddabe08843a2455833a
58210cfa2d8c5973fb9a8ac1bb7ac20477586c78
5085 F20110109_AABJXR winkler_b_Page_035thm.jpg
4e2933d3f81bc7b332ad47a660934fa6
925e31df31c04ab23e1ad3d41dcc16085d273171
5945 F20110109_AABLHD winkler_b_Page_146thm.jpg
d26df267de5e8221a94564fbcd4235f0
e014e8d7ff4431bb55a934da33a253f85339b232
10451 F20110109_AABLGO winkler_b_Page_128.QC.jpg
c807906186d6e694bed3f93fa048c176
c8a5f17789d9de98847e3b65e56cad25b5865074
36944 F20110109_AABKEB winkler_b_Page_108.jpg
f64acbed0fbc1dd1169abb9cff7ce6a6
edce06a8f12213486c0a257e6ab698edee1d8170
46193 F20110109_AABKDM winkler_b_Page_090.jpg
75e8fcf7c13068674e0b33f85ce2fdce
784ae69fcd597b18ad3ac23a6ce250c1cb400352
28523 F20110109_AABJYG winkler_b_Page_088.pro
84230cd94d026dffb31ae02270186454
08ec0903fffe6bc70a1e9ad4badf10e8e65800e2
52508 F20110109_AABKCY winkler_b_Page_072.jpg
26e7704fb4510441996aecd8c627c515
2fac0ae6630d09dd6711c632a248c6270cd168d7
57338 F20110109_AABJXS winkler_b_Page_139.jp2
fe80b45c5f4ba715a770c0f57ab7d52b
a846dad7bb9b1a1c16f7004697822b1b3abdc6fb
10311 F20110109_AABLHE winkler_b_Page_147.QC.jpg
4ae5d684abc95093cc34bb736952a19b
088e60b7d6f7d2016e9524cb039f368e402c585b
2971 F20110109_AABLGP winkler_b_Page_128thm.jpg
bc3e975c4d08269411b30d660d218181
f0e289d863e33edfca026f82282583e743b749f8
45793 F20110109_AABKEC winkler_b_Page_109.jpg
d91d197c2bd29486ddb884870d218fcc
4f71926ffd088d7d715847ed069b98e1c8c0336f
37867 F20110109_AABKDN winkler_b_Page_091.jpg
e384a9e9b08e4c7a27bc798b7b814e61
0db1037efe6dcd45c9592dc2300ec6eeb98e4a76
F20110109_AABJYH winkler_b_Page_100.tif
0ef1814894e566d1ae84a17623f0fc64
15964999c6a681e8bf34301bff5ca6596a4feff6
32003 F20110109_AABKCZ winkler_b_Page_073.jpg
7f2bad1f9174a31d0daa4a061703486e
0b7f15f935e545f8e252af9bf541693455c4eeee
F20110109_AABJXT winkler_b_Page_148.tif
de9576a2a9e4eb0e6c6d73854dae24f0
7c0acb618901c481a99dacdb0fbcf7b0036923a4
4845 F20110109_AABLHF winkler_b_Page_148.QC.jpg
8baabb64c088904331be22f4c806a7a9
0654abdb2599289a1b891858b8ff78d4bb74e560
11291 F20110109_AABLGQ winkler_b_Page_129.QC.jpg
8a624f2ba14367741a851e525cdcfce2
9886bb9d3358b91bedd2f6d0e6075af4f618ced5
37418 F20110109_AABKED winkler_b_Page_110.jpg
6132c316e79aa9aa722547cb1e917b36
1729a5b724095882ebb159b662be492f34a8353a
67698 F20110109_AABKDO winkler_b_Page_092.jpg
3b6ad525c766d1d581e2ff49cc049657
858f0969e9fe5a26d1e98cd3df6053b058251347
29112 F20110109_AABJYI winkler_b_Page_086.pro
bc7608c1582675fcf43e05a8d4cca956
6409337708839aae0ceab4e3cb5d2bd4842a2052
1698 F20110109_AABJXU winkler_b_Page_015.txt
5fb41545885d97201443979fb350f335
9e009140e60d512cd05671d9a4f1d7f3d8192295
1463 F20110109_AABLHG winkler_b_Page_148thm.jpg
cbc07252a8fe41cb6e6bafcf4c6fbd97
ad9a8a5319aa62169b88218b917f22696133abfe
11162 F20110109_AABLGR winkler_b_Page_130.QC.jpg
1be75a65d56e39e8b5fea1f6c4f36e28
759593e398bc6f5d757a3df92594ab9a6c03f078
44821 F20110109_AABKEE winkler_b_Page_111.jpg
a7c64145e1c91b5301d11845497485ca
2350aee15a59fd8d1eb4d6157754b2410a4e5866
37662 F20110109_AABKDP winkler_b_Page_093.jpg
c8bf4da46cdc92032fd5493ebe0c5671
8503f124522ad4f215265667fdd3370153dd8124
12058 F20110109_AABJYJ winkler_b_Page_138.QC.jpg
35e5d8eeb2cf09eeae9435f7ec45071e
1810e9638bdbb0e49c37b239685f784f8f22bea9
24530 F20110109_AABJXV winkler_b_Page_043.jpg
64d2f710038e09a2ef348c0322e037ad
3284a0e2279eede51966b7d82c29a607da1de565
F20110109_AABLGS winkler_b_Page_130thm.jpg
aef75ce12f84fdc756bf15adf27f8327
33418331e01a48f3b82c437a4ff384e7e45e8984
37171 F20110109_AABKEF winkler_b_Page_112.jpg
286dffb9ed564051de6aaec21920d778
c95e849a7f519b71e241b19ac761d40b4818224e
49074 F20110109_AABKDQ winkler_b_Page_094.jpg
1cc1f6d7ec5e3af68ca2033d362bc3df
5efbb98572017552219a5edcb14000490533bcf5
23190 F20110109_AABJYK winkler_b_Page_026.QC.jpg
31766b78c4153fdc793d0bcc87bc587f
5fce8edb0c1edd19a387d89612623b4433ae7055
903 F20110109_AABJXW winkler_b_Page_039.txt
0174f5857c7abfb152eae168ad7abbc9
e4cb2d67da738d227444ef626888fb8d63544048
12617 F20110109_AABLGT winkler_b_Page_133.QC.jpg
6b9331eba1bedad1d9b09f699b04c2e3
984d2a1e40b2f5e3a11b1d8d2ca713f06cd07664
42996 F20110109_AABKEG winkler_b_Page_113.jpg
45a1b9ec3bfa931872af2db50ae48a26
b22bba4adb9c7382638986c19d569b2a27ca26d8
56654 F20110109_AABKDR winkler_b_Page_095.jpg
a02c474b565dab44372e42ce7fbba702
ad700ded2c0284a2e4ac4147502ee814faf0dd32
12413 F20110109_AABJYL winkler_b_Page_083.QC.jpg
e0e0a923cf2b15179e1d1d3f6dfb6e3d
145e90dbb4fd8793a82404de605d1a225feddcdc
56459 F20110109_AABJXX winkler_b_Page_113.jp2
6e9dfec122e1671981e4911d597f1d82
7d84a2e6ea97b15825a9950a7e9ae917f5e0a2d7
11546 F20110109_AABLGU winkler_b_Page_134.QC.jpg
d3b0b7044bea95061ecf23607cd3a68a
eea881ec944e83ef9699ca1ca38510b9d4aa631d
44759 F20110109_AABJZA winkler_b_Page_084.jpg
1afdf25a3b860c3012277b1bf0439923
1dd97b8a39d09fc1cd194b3fac211f80ce123539
37737 F20110109_AABKDS winkler_b_Page_097.jpg
0a03dc8b0bcf848a773f989f3e05e76c
77843994a1365328a800be20278bdf0ad90ff1be
20334 F20110109_AABJYM winkler_b_Page_101.QC.jpg
21e8a269450bd76c2fb02dcf6d42ccf5
cf5a0f678ae92595fede9171b5e59b9256c20e6a
1138 F20110109_AABJXY winkler_b_Page_144.txt
fe2a38cd2affc31730a3377aa08be2fb
601774734644627397009b1e54f14c5d9a2de601
40225 F20110109_AABKEH winkler_b_Page_114.jpg
d1347cb29f0586a9af3f043a10191e53
b63e91ef17e46f14be51376c07cde6d173980871
F20110109_AABLGV winkler_b_Page_136thm.jpg
cd511f150f05fab4a4c017bf13831221
74f858feed0a339b8c7dd7820dad0899244cf8b8
4197 F20110109_AABJZB winkler_b_Page_038thm.jpg
1eb7be6f6351f7968bccb8ae282c102a
b8e962063eea5a616e15153fac811d4f4cb8a6d0
43771 F20110109_AABKDT winkler_b_Page_098.jpg
4a8fbba6e10f89d4797e26aa1aef9b5b
baa0906cc2e5acd7ced5679f56a8fb0c05f805e6
F20110109_AABJYN winkler_b_Page_144.tif
5f41b0095038ad7c0b4ca054571a701d
921e37fe69d43edf6b773c9c5095aaf3a79c3909
F20110109_AABJXZ winkler_b_Page_023.tif
f0d343f900da9de092818a987d6f9c25
20ce9852120c695c5c385d566ae204ca18c70ac1
40838 F20110109_AABKEI winkler_b_Page_117.jpg
fbdb956fa5e9da48967754291d2dcf45
18c90496aca9594747a6f0c5b79b1162dfe5b442
12850 F20110109_AABLGW winkler_b_Page_139.QC.jpg
de02a7fab72a76d02e8cde49e983b64a
aac0ba099f89afd6366a572b82232498ba06110c
35905 F20110109_AABJZC winkler_b_Page_120.jpg
90b316c6ab8be8f85d25d4b4c979d4be
1de606d54920740e5aa36df1f43d6a01c7e96b53
43373 F20110109_AABKDU winkler_b_Page_099.jpg
d88d4f23f691a487e2441336d4f71838
bd7528f493c87bf9e093e83b2503b31213fc360b
14888 F20110109_AABJYO winkler_b_Page_065.pro
aa30f4b193a64cf1f1ad0a58cb3c5ae5
bc73ab455c0696e7b18557eac84ba6b2dd97d219
40630 F20110109_AABKEJ winkler_b_Page_119.jpg
bb2628bcd59bc05d33a0e88d835bf767
a3ec856f3e4d659c3d6f4f5b89bdec43f471a2ca
10453 F20110109_AABLGX winkler_b_Page_140.QC.jpg
b210f1f5e846eb1508226d67c3cc9172
bd24a9ec46037a895bab371afef1e2ec1017165c
73547 F20110109_AABJZD winkler_b_Page_032.jpg
497c1fb4f04603e90d7ef995a70130b2
bf84ccf7b5909da7aa5212c3641cd696759811da
34640 F20110109_AABKDV winkler_b_Page_100.jpg
9d84a209258c67924c35e0f5e1e28557
7691141f561c7abca6c5b41c09c67f6dec3b9435
988 F20110109_AABJYP winkler_b_Page_138.txt
1a8ffaf33dca541f0dadec839d482991
fcae95e4e5adc72be04a8e456ffdaf1d66c7f3b2
10963 F20110109_AABLGY winkler_b_Page_142.QC.jpg
4a4e9019c49b46257f6f3a9a336ffe92
0cf3c3b16d5ca7c9e2de1269166bd9ab32f11d8f
F20110109_AABJZE winkler_b_Page_103.tif
e09b52b9b322e55a03da25d14bed64b9
1f42fdaa876d72db40f980d5169337658461ce3e
73973 F20110109_AABKDW winkler_b_Page_101.jpg
907e425a0ccf6cfb55ff09af1f6333d0
d0269fdb53670ce17fcd9722dcb50ab54f504940
22982 F20110109_AABJYQ winkler_b_Page_106.pro
f4e64ae83bfaa345e478c4825c74b99b
5f1d5b901a4dc49b647eaec21d4384ea61c2dadc
38991 F20110109_AABKEK winkler_b_Page_121.jpg
f7358f525d34ac26be5c77349dfff7e3
4bd42cb0d026fb8b33965101e196e0829b7ec222
11922 F20110109_AABLGZ winkler_b_Page_143.QC.jpg
11561ad8eedd87d8debafde14363bf95
943672d652adc81501aee7c42b6d4e27b16bd322
13967 F20110109_AABJZF winkler_b_Page_078.QC.jpg
e2b7fdfc3d67d1757de06a9283ae33f0
064a555aed100ba08b859455336b32de39d309e4
35509 F20110109_AABKDX winkler_b_Page_102.jpg
17e35f4fc25a5fbc2e922c3a146b04a6
0c72b5a98781caaa9aa8b0a98b2c222e1a18dc7b
35779 F20110109_AABJYR winkler_b_Page_118.jpg
06117f3171bb5c18314a98d1be504568
7107814019e3156df8ef2510f1fa05a3f3954624
39671 F20110109_AABKFA winkler_b_Page_139.jpg
f68b86fa3908f78a2d59a76c4fef9131
f0762cc541913b532e0efbd3156db9821c9c9eab
35080 F20110109_AABKEL winkler_b_Page_122.jpg
10a1b56bbddf81bd46d9728b2de1ee55
fdc2af468aa4335b395e779b277845630ef8086a
12707 F20110109_AABJZG winkler_b_Page_084.QC.jpg
eca971ff67cc8129842c7b3f04beb3fd
d776d4a70a94e4b40996b4af8d9f45eea8c2c8ee
44505 F20110109_AABKDY winkler_b_Page_103.jpg
1fd6871b2b9fcfb3c5fa5b716d16154c
d14b8cfada85e827e7d34039a4ee11de00824b1b
50442 F20110109_AABJYS winkler_b_Page_119.jp2
f17bf8b5f1f851d7f4b5ee8b9282feed
4c4fb244e5d51b4cb98fe7be3ae3b2223e4b53c7
31722 F20110109_AABKFB winkler_b_Page_140.jpg
b74ab0805fe4043b0bacdaeb92b9259d
2798d24e419792414c8be2240fd34098bf9e2e92
37025 F20110109_AABKEM winkler_b_Page_123.jpg
a597e1e9c4247ce4500329373fbe18f4
5e0ee664b59ed137e16863b1320d3e980b124961
5599 F20110109_AABJZH winkler_b_Page_032thm.jpg
b1041578aa0110f85fa40158be7d34f6
39734d53c65cd1abfa120e3ef3235b260e82b845
45251 F20110109_AABKDZ winkler_b_Page_105.jpg
379e2bcfa8e69f328d5cfa07f37a9763
8d5aa11bb7b3c6442d4a957a7ca0ade7853ef351
94537 F20110109_AABJYT winkler_b_Page_032.jp2
96f194e80b6bee63a5320ac47ee87ee8
2d3c611b5900634d59fe1169d3333d279a606685
38168 F20110109_AABKFC winkler_b_Page_141.jpg
548486498dcf9727f2c9c59e0f34351d
c6802c0256fe71237013d031d5054c43389033a3
33683 F20110109_AABKEN winkler_b_Page_124.jpg
e3609ddba9103a27e170f195f624e33e
a7513bebae2f936b631a772d6008602b2471195e
36217 F20110109_AABJZI winkler_b_Page_079.pro
0527cb4ba1f966b1f87640450680898d
52b38318b641b3ad20edaa69f4c536b3c14bf69f
3076 F20110109_AABJYU winkler_b_Page_132thm.jpg
71c35b27cc99fb6d654d9fc47d8496a7
62fd6f32014141e751286a706431012057258b54
34260 F20110109_AABKFD winkler_b_Page_142.jpg
b56f694f14815df01ad114cdfdca040d
e461f9468703234a994c6210a97682255076f18d
38179 F20110109_AABKEO winkler_b_Page_125.jpg
ca122955201fb5576c82effb9e55cd53
f6388d48fa9c5bce7da5899be791dc1bcd695fdb
56502 F20110109_AABJZJ winkler_b_Page_089.jp2
1a29937bfbd748635045d92412507045
3532715e926b05eb1c74c7084c3b127ffb57dd3a
F20110109_AABJYV winkler_b_Page_030.txt
c592d791cdc438ffa341a75aa12839da
abfced148f1458c0b00c33770ba81cafb59c4bf2
39436 F20110109_AABKFE winkler_b_Page_143.jpg
ba6f0eddeff412d9373f795fdfbc307d
40b7a1cc02b3a351cb324bfb445f5d284b3c40f7
33689 F20110109_AABKEP winkler_b_Page_126.jpg
d9dfccb1b18ce315d9e31ddf38c26cd2
e6c561041fe3421fd85c87433278aba6be8512de
1100 F20110109_AABJZK winkler_b_Page_034.txt
1e13515a0654b7c4a1fb54b0ce5ca6b3
2fb3ebdccdfaec5a494c5502a90b62038131178b
1133 F20110109_AABJYW winkler_b_Page_121.txt
aff3fd63df074367945eb4620c9d32f3
f8974511beda28711fb6ebb37bbba570e27b6d76
34550 F20110109_AABKFF winkler_b_Page_144.jpg
5c4f8fcf413c94be693bae14bc9ade74
8de550e729d8a17fcab7a57e043a7ff7680fbca2
33706 F20110109_AABKEQ winkler_b_Page_128.jpg
48915fcb2e0f0d30508e1a55f846d46f
918eb65a22871a33207c4e665922d787831a6bfe
12217 F20110109_AABJZL winkler_b_Page_080.QC.jpg
40c75078bee90c69af5e59621a63b858
3f6099fc1729b56d6541437e0ffcdce50a538f34
36336 F20110109_AABJYX winkler_b_Page_060.jpg
d8149e7a8d53a3886de54195194ce905
bd697e7f748ec74fd2dedbefecf35024ac1ad1bd
29651 F20110109_AABKFG winkler_b_Page_145.jpg
ce1f91985ebe4124a9a475c1271a9f2c
64cac2f8ce9c009507d5b48957da3af78b1dd7f9
37752 F20110109_AABKER winkler_b_Page_129.jpg
1d5a21715a795e9d27840667598be3e6
1d5c125b7e56b6833abb38ecac59edc103c911c4



PAGE 1

AN IMPLEMENTATION OF AN ULTRASONIC INDOOR TRACKING SYSTEM SUPPORTING THE OSGI ARCHITECTURE OF THE ICTA LAB BY BRYON WINKLER A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY OF FLORIDA 2002

PAGE 2

Copyright 2002 by Bryon Winkler

PAGE 3

To my wife Tammy for all of her love and willingness to be left alone every weekend this summer. To my baby girl, Rebecca, for making me smile more each and everyday.

PAGE 4

ACKNOWLEDGMENTS I would like to thank Dr. Sumi Helal for all his work, guidance, and financial support as chairman of my committee. I would like Dr. Bermudez for many a good dive and paradigm shifts. I would like to thank Dr. Wilson for Unix knowledge and his commitment. Also, I thank Youssef Kaddoura for the GUI, Sree Kuchibhotla for OSGi help, Paul Bennett for hardware design and assembly, and Lisa Ran for her help on numerous test runs, code editing, and questions. iv

PAGE 5

TABLE OF CONTENTS Page ACKNOWLEDGEMENTS...............................................................................................iv LIST OF TABLES............................................................................................................vii LIST OF FIGURES.........................................................................................................viii ABSTRACT........................................................................................................................x CHAPTERS 1 INTRODUCTION............................................................................................................1 1.1 Smart Environment....................................................................................................2 1.2 Thesis Overview........................................................................................................3 2 CURRENT LOCATION SYSTEMS...............................................................................5 2.1 Positioning Systems...................................................................................................5 2.2 Tracking Systems.......................................................................................................6 2.3 Exisiting Systems.......................................................................................................6 2.3.1 Low Frequency.................................................................................................6 2.3.2 AIRID...............................................................................................................8 2.3.3 Ultrasonic.......................................................................................................11 2.3.3.1 AT&T BAT System.............................................................................12 2.3.3.2 Hexamite Local Positioning System....................................................15 2.3.4 Infra Red.........................................................................................................16 2.3.5 Motion Detectors............................................................................................17 2.3.6 GPS................................................................................................................17 2.3.7 Hybrid Systems (MIT Cricket)......................................................................19 3 THE PROBLEM.............................................................................................................22 4 OSGi...............................................................................................................................24 4.1 OSGi Architecture...................................................................................................24 4.2 Service......................................................................................................................26 4.3 Bundle......................................................................................................................27 4.4 Hexamite Bundles....................................................................................................28 4.4.1 Hexamite Software.........................................................................................28 4.4.2 Hexamite As a Service on OSGi....................................................................29 v

PAGE 6

5 THE PROTOTYPE.........................................................................................................31 5.1 Hardware..................................................................................................................31 5.1.1 Setup Strings..................................................................................................36 5.1.2 Distance Strings.............................................................................................39 5.2 Custom Software......................................................................................................40 5.2.1 Serial Connections.........................................................................................40 5.2.2 Software Setup...............................................................................................41 5.2.3 Distance String Breakdown...........................................................................42 5.2.4 Trilateration....................................................................................................45 5.2.5 Orientation......................................................................................................48 5.2.6 GUI.................................................................................................................49 6 DATA ANALYSIS........................................................................................................50 6.1 Test Process.............................................................................................................51 6.1.1 Matilda...........................................................................................................51 6.1.2 Real X and Y..................................................................................................53 6.1.2.1 Marking the Ground.............................................................................53 6.1.2.2 Measuring............................................................................................54 6.1.3 Test Location..................................................................................................55 6.1.4 Results............................................................................................................56 6.2 Errors........................................................................................................................57 6.2.1 Absolute Errors..............................................................................................57 6.2.2 Reflective Errors............................................................................................59 6.2.3 Environmental Errors.....................................................................................61 6.2.4 Calculation Errors..........................................................................................62 6.3 Height Effects..........................................................................................................62 6.4 Data Analysis Conclusion........................................................................................63 7 FUTURE WORK...........................................................................................................64 8 CONCLUSION..............................................................................................................66 APPENDIX A CUSTOM SOFTWARE CODE.....................................................................................67 B DATA.............................................................................................................................92 LIST OF REFERENCES.................................................................................................136 BIOGRAPHICAL SKETCH...........................................................................................138 vi

PAGE 7

LIST OF TABLES Table page 5.1 HE900T Pin Order.......................................................................................................36 5-2 Setup Strings ..............................................................................................................37 5-3 PCB Bits .....................................................................................................................37 5-4 Pilot Commands..........................................................................................................41 5-5 Calculation Example....................................................................................................44 5-6 Trilateration Formula...................................................................................................45 6-1 Actual Error.................................................................................................................57 vii

PAGE 8

LIST OF FIGURES Figure page 1-1 Architecture Overview................................................................................................3 2-1 Low cost RF transmitter..............................................................................................7 2-2 Medium cost assembled unit.......................................................................................7 2-3 AIR ID System.............................................................................................................9 2-4 Triangulation with modified ranges...........................................................................10 2-5 Computer Unlimited's Virtual Ink Memo..................................................................12 2-6 BAT Beacon..............................................................................................................13 2-7 BAT Pilot...................................................................................................................13 2-8 BAT System..............................................................................................................14 2-9 "no-chip" solution......................................................................................................18 2-10 Psuedolite System......................................................................................................19 2-11 Cricket Pilot...............................................................................................................21 4-1 OSGi Architecture.....................................................................................................25 4-2 Bundle State Transition Diagram..............................................................................27 4-3 Hexamite Structure....................................................................................................28 4-4 OSGi Hexamite Bundle.............................................................................................29 5-1 HE900M....................................................................................................................31 5-2 Area of Coverage.......................................................................................................32 5-3 ICTA Pilot Positions..................................................................................................33 5-4 Pilot Adjustable Base.................................................................................................34 viii

PAGE 9

5-5 HE900T.....................................................................................................................35 5-6 Distance Calculations................................................................................................43 5-7 Trilateration Graph....................................................................................................45 5-8 Basic Trilateration Case.............................................................................................46 5-9 Advanced Trilateration Case.....................................................................................48 5-10 Orientation.................................................................................................................49 6-1 Stationary Test...........................................................................................................50 6-2 Matilda.......................................................................................................................52 6-3 Styrofoam Measurements..........................................................................................53 6-4 Pilot Border Measurements.......................................................................................54 6-5 Ground Positions.......................................................................................................55 6-6 Test Positions.............................................................................................................56 6-7 Absolute Error Test...................................................................................................58 6-8 Shortest Distance Pilot Angle....................................................................................59 6-9 Reflective Error.........................................................................................................60 6-10 Receive Angle Error..................................................................................................60 6-11 Key Test.....................................................................................................................62 B-1 Test Positions............................................................................................................92 ix

PAGE 10

x Abstract of Thesis Presente d to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Science AN IMPLEMENTATION OF AN INDOOR ULTRASONIC TRACKING SYSTEM SUPPORTING THE OSGI ARCHITECTURE OF THE ICTA LAB By Bryon Winkler December 2002 Chair: Dr. Sumi Helal Major Department: Computer and In formation Sciences and Engineering The International Center of Technology for Successful Aging (ICTA) at the University of Florida is focused on creating a smart environment that will enable elderly persons to live a longer and safer independent lif estyle. OSGI is the software architecture used by the ICTA lab because of its ability to allow the interoperability of heterogeneous devices through services. The primary service required to maximize the intelligence of a smart environment is an indoor tracking system. An indoor track ing system allows the smart area to make decisions to better serve its user by enabling the area design to be proactive instead of solely reactive to user commands. The objective of this thesis is to create and implement such a system. After careful consideration, u ltrasonic sensors were chosen and this thesis documents the decision and imp lementation process.

PAGE 11

CHAPTER 1 INTRODUCTION The world population of people over the age of 65 is growing rapidly at a rate of 800,000 per month [13]. Eventually, many of these people reach a point where they can no longer live independently. Moving an elderly person into a nursing home often involves huge economic and emotional burdens. Many times, they are not able to pay the large deposits to move into assisted living facilities themselves, so they turn to the government for funding. Medicare spends approximately 1.5 billion dollars more per year for hospitalization and housing for individuals who live in a nursing home than for those that live independently on their own [2]. It is well documented that those who live in nursing homes tend to require more hospitalizations and doctors visits. Once moved into a facility, it is common for them to become depressed because of their lack of independence and to give up on life. It is in everyones best interest for people to live independently for as long as possible. Technology could lay an important role by providing a smart environment that aids the elderly in being independent. One possibility for this environment is a smart home. As seniors near the stage were others are talking to them about assisted living, physical or mental challenges may impede them from completing the day-to-day activities necessary to keep living independently. Smart homes will compensate for this impediment by providing a mechanism to easily perform tasks in the case of physical impairments, execute forgotten tasks to compensate for mental lapses, and provide an 1

PAGE 12

2 overall safer environment through quick access to outside resources in the case of an emergency. The mechanism used to make life easier is called a magic wand. A magic wand is usually a smart phone or PDA that allows the user to remotely control some of the services provided by the smart home. Mental lapses are handled through preprogrammed actions that are triggered by complex behavior algorithms or through users desires acknowledged during setup. An example is in the case of Alzheimer patients that need flashing objects to snap them out of trances. Here, preprogrammed actions use complex behavior algorithms to initiate flashing sequences in the proper device. We have all heard the phrase I have fallen and I cant get up! Younger people see this as a joke, but to elderly persons who live alone this is both a life-threatening situation and big cause of daily stress. Approximately 57,000 people, with 85% being over the age of 65, fall prey to hip fractures each year [11]. An elderly person who has fallen and broken a hip is immobile and, without assistance, could stay where they fell for days. The magic wand would allow a fallen user to call for help by dialing 911. Also, a location system could sense that a client is immobile in a preprogrammed non-sleeping area. The central computer would then signal a designated care provider or friend to check on the user. 1.1 Smart Environment A smart home environment consists of two main parts, the central computer that performs all necessary calculations, and an indoor network of devices that answer the requests of the central computer. These requests can be thought of as the services provided by the smart home. The figure below illustrates how services act as a layer

PAGE 13

3 between the user and the central computer. It also lists some of the common services provided by a smart home. All services are made aware of each other through the central computer. Figure 1-1 Architecture Overview The backbone of all the services is the location service. This service provides the basic information that enables most of the other services to function properly. 1.2 Thesis Overview The paper that follows is a description of the best choice for a low cost, accurate, and reliable indoor location system. This location system is installed and operational in the ICTA lab. In order to make a choice on what system to create or use, an in-depth study of the current methods available had to be undertaken. The results of this effort are listed in chapter 2. Chapter 4 discusses the ICTA labs decision to use the OSGi architecture and gives a description of it. The actual location system is covered in chapter 5 with an

PAGE 14

4 analysis of the data from testing it in chapter 6. Future work and implementations is covered in chapter 7. The paper finishes with a conclusion and two appendixes providing both the code used for our system and the data from testing.

PAGE 15

CHAPTER 2 CURRENT LOCATION SYSTEMS There are three basic different methods used to acquiring a persons location indoors. It should be noted there is not a set standard to define the methods. This paper uses the most popular definition, but some engineers use the terminology interchangeably. The current methods or systems are grouped into one of three categories: positioning, tracking, and hybrid. To remain consistent with the location system proposed, stationary devices are called pilots and mobile devices are considered to be beacons. 2.1 Positioning Systems With positioning systems, the environment provides the means to determine location and pushes the information to the end user for location calculations. The objective behind this kind of system is user privacy, which enables the user to determine the available resources in any given area they are currently in. With positioning systems, pilots are used to send location information to the mobile beacons. The beacons can be viewed as pulling the information from the surrounding environment. The location information conveyed is area identification or distance signals. Area identification is used to determine general spatial information. With distance signals the mobile receiver pings all devices in a room, uses a handshake protocol to acquire distance information from a transmitter, and makes the necessary trilateration or triangulation calculations to acquire the location in a particular area. This type of system is ideal for the business 5

PAGE 16

6 sector where employees are reluctant to use a system where their position is constantly monitored. 2.2 Tracking Systems Tracking systems are almost the complete inverse of positioning systems. The difference is that instead of the mobile user pulling information from the environment, it pushes location information to the environment. Here pilots ping the beacon in a synchronized manner and concatenate the location information into one giant string. The string is sent to a central computer that calculates the exact location per area. Location information in a tracking system is the beacon ID and its respective distance from the pilot. Tracking systems, if set up correctly, can have an accuracy range of .3 mm. Another difference from positioning systems is that tracking systems focus on avoiding user privacy. Tracking systems are ideal for environments where knowing the users location can change certain conditions that can make life easier, simpler, or safer. Users of tracking systems range from elderly or disabled persons to prisoners. 2.3 Existing Systems The systems described above use a myriad of different techniques to obtain a persons indoor position. The most common are low frequency RF, infrared, ultrasonic, and GPS. A detailed explanation with at least one example of each is given below. 2.3.1 Low Frequency Low frequency sensors in terms of tracking and positioning systems tend to work in the 418 MHz, 433 MHz, or 900 MHz spectrums. An advantage to this technique is that RF transmitters, receivers, and transceivers can be inexpensive [15].

PAGE 17

7 Figure 2-1 Low Cost RF Transmitter The main components necessary to create a RF location device are a transmitter, receiver, micro controller, antenna, board, and usually a RS232 serial connector. Here is a pre-assembled medium cost device that can be purchased from RF Digital Corporation with an educational discount, as of summer 2002, for $120 [16]. Figure 2-2 Medium Cost Assembled Unit The RF technique can be used to create a location system that is accurate per area or accurate within 3 meters in area without interference. This technique is commonly used in positioning and hybrid systems for general special awareness. With RF devices the transmitter is programmed to send a repeated message that conveys its serial number and other information necessary for the application in a repeated sequence. The different receivers then calculate the time of arrival (TOA) of the transmitters messages.

PAGE 18

8 An advantage of RF sensors is the availability of product support. RF sensors have been around since Edwin Harvey Armstrongs improvement of FM in 1912. There are many outlets available on the web to get support for creating your own RF system. Disadvantages of low cost RF systems for indoor positioning system include range and multiple transmitters per receiver. The standard range of low cost RF sensors is 300 feet. This combined with the fact that waves will penetrate walls and reflect off metal objects make it nearly impossible to accurately derive a users position. Multiple sensors create havoc with low cost sensors because synchronization techniques are complex. To get around this more intelligent and expensive sensor must be used. Several systems are available that allow you to adjust the range, but are very expensive at around $100,000. Such systems are used to track goods through a warehouse. A phone representative whose company will remain anonymous suggested a low cost hack to the range problem. He explained that in order to adjust the range on low cost systems One should just keep cutting the antenna and experimenting till the desired range is achieved. He latter told me there was a good special on antennas when purchased in bulk. The most popular type of system that uses the low frequency RF technique is AIRID. 2.3.2 AIRID AIRID LT is a system by RF IDeas Inc. that is principally marketed as a Hands-free solution in security. This system is designed to lock and unlock a workstation without having the users enter passwords. The system is made up of ID badges and a base unit that can support multiple badges. The badges act as transmitters and send a unique ID to the base unit. Base units have adjustable ranges enabling the range to be a single computer or a whole office. The base unit receives the transmission, uses the ID to

PAGE 19

9 access a database to retrieve the correct password, and then proceeds to log the user onto its machine via a serial connection. This process will be initiated as soon as the badge is within range of the base unit [17]. Figure 2-3 AIR ID System Jeffery Hightower and Gaetano Boriello at the University of Washington tried to use this system to create an indoor positioning system called SPOTON [9]. They surmised that by placing multiple adjustable range base units in desired locations it is possible to calculate a badges position. Strength of signal and triangulation algorithms is used to determine location. The graph below illustrates how the base units interact with each other to determine the position of a badge. Hightower and Boriello found there to be an almost inverse square relationship between the signal strength and the badges distance from the base unit [8].

PAGE 20

10 Base Badge Figure 2-4 Triangulation with modified ranges Internetworking the systems was handled by a Hydra Microwebserver since it is not feasible to have numerous serial cables running throughout an office. The Hydra allows base units to connect through it to the central computer by Ethernet. The result of this design is a semi-reliable system. This conclusion was drawn based upon two factors. First, the accuracy range was determined at best to be within 3 meters on a side. Second is the problem with measurement frequency. The AIRID API allowed for location measurement to occur only every 10 to 20 seconds. Hightower and Boriello found these results to be unsatisfactory so they created a new transmitter called Thing. Thing was recalibrated to increase the signal precision measurements. Their last publication, "Design and Calibration of the SpotON Ad-Hoc Location Sensing System," (University of Washington, Seattle, WA, August 2001) stated an increase in overall accuracy [7]. Since the amount of increase was never quantitatively defined no detail into the new approach is covered.

PAGE 21

11 2.3.3 Ultrasonic The use of ultrasonic signals to determine location is based upon trilateration. Trilateration is the process of calculating positions based on distance measurements. Ultrasonic receivers calculate the distance to a transmitter by using a predefined frequency. By using multiple receivers it is possible to calculate the varied distances from each receiver and thereby obtain an accurate location. A minimum of two receivers is needed for this calculation, but four receivers are recommended. The basis of using four transmitters is due to the limitations of ultrasonic signals. Ultrasonic signals are subject to loss of signal due to obstruction, false signals by reflections, and interference from high frequency sounds. Placing four transmitters allows a 360 coverage area and by using the two shortest signals an accuracy range within a millimeter can be achieved. A real life example of this accuracy is with Computers Unlimiteds Virtual Ink Memo [3]. This system replicates all movements on a whiteboard to your computer screen.

PAGE 22

12 Figure 2-5 Computers Unlimiteds Virtual Ink Memo After a thorough search on the web and numerous calls to sales representatives, the market for low cost OEM ultrasonic indoor systems was found to be almost non-existent. The most famous example of an ultrasonic tracking system is the Bat system developed by AT&T. 2.3.3.1 AT&T BAT System The Bat system developed by AT&T Labs Cambridge is a tracking system that was first presented to MOBICOMP in 1999 [1]. This system was named based on the way bats use sonar to navigate at night. The system has four main parts receivers (pilots), transmitters, controllers, and a central computer. Its purpose is to determine a persons exact location with an error range of only 3cm. Each transmitter is called a Bat (beacon)

PAGE 23

13 and has its own unique 48-bit identification number. The Bat is equipped with a bi-directional radio for communication with a controller. Figure 2-6 BAT Beacon The pilots are placed above ceiling tiles and collect ultrasonic chirps from the Bats. These pilots are connected using a high-speed serial network setup in a daisy-chain. By placing a series of interconnected pilots approximately 1.2m apart a three dimensional representation of the beacons location can be determined. Figure 2-7 BAT Pilot

PAGE 24

14 Each daisy chain communicates with a controller, which has a primary goal of synchronization and relaying location information to the central computer. An example of a typical controller area is illustrated below. Figure 2-8 BAT System Once the controller has recorded the location the information it performs two actions. First, it passes the location information on to the central computer for application use. Then it promotes synchronization information to the beacons through radio communication. Synchronization is achieved by having the beacons chirp at different timed intervals. This allows the beacons to power down and extends battery life. Setting

PAGE 25

15 multiple controllers up in cellular radio architecture can expand the area of coverage. Upon entering a new area, the beacon follows registration protocols to coordinate with the areas controller. Although the bat system seams like the ideal choice for a smart home, it has one disadvantage that makes it less than ideal for the smart home, number of sensors. Each sensor needs to be connected by a wire to create the daisy-chain network. The wiring required for each network is unreasonable and nearly impossible to setup in the average house. Another ultrasonic system more applicable to a smart home is an OEM product sold by an Australian company, Hexamite. 2.3.3.2 Hexamite Local Positioning System Hexamites Local Positioning System is a low cost OEM ultrasonic tracking or positioning system [6]. The system has a number of advantages to it that make it ideal for tracking people indoors: OEM product Pilots are not battery powered Beacons are small and have power saving features Highly accurate with 16m range System can be proactively controlled Room Size/ Measured Distance This system is currently implemented in the ICTA lab and is configured to be a tracking system. The system was chosen because it provided an overall best fit based on its benefits. Each advantage as it relates to the lab will be discussed here. An in-depth account of its functionality is in chapter five.

PAGE 26

16 Having an OEM product that is designed to track a persons location frees us from the burden of microchip programming and soldering. The system uses a high speed RS485 serial connection to relay location information. Typical RS485 cabling provides a wire for power and one for ground. This enables the pilots to be powered through their serial connection and only one power outlet is needed per network. Each beacon is very lightweight and small, roughly the size of a cell phone battery. The dimensions are X 1 X 2. The beacons have a lithium battery, which lasts 24 hours in active mode and 300 hours in deep sleep mode. This system is highly accurate and currently obtains positions within 22 cm without reflective corrections. This accuracy can be increased to within 3 cm, but this requires reflective software correction protocols. The system can be proactively controlled by allowing a caretaker, family member, or users to initiate a location cycle and then stop the system to save battery life. This allows spot-checking throughout the day if desired. The last advantage comes with varying room size. Each 900M pilot has can retrieve information at a range of up to 16 M. However, it is recommended for best results that room area of coverage should not be larger than 6 M. 2.3.4 Infra Red Infrared (IR) technology passes IR waves to communicate distance information. The systems work by having the beacon emit IR waves at a predefined time interval. The disadvantages with this type of system are accuracy and sunlight. Sunlight affects IR waves and in some cases prevents them from reaching the pilots. The best accuracy that

PAGE 27

17 can be achieved with this system is general spatial location. These systems have been generally replaced with ultrasonic systems. 2.3.5 Motion Detectors An interesting idea for location is to use motion detectors to determine location. The position of a person is known whenever they come within range. An advantage of this type of system is price. Another application is to use beam detectors to create a checkerboard pattern throughout a home. The distance between the detectors is based on how accurate you want the location information to be. Intel had the idea of combining low frequency RF waves for communication with motion detectors for general special awareness. This implementation allowed the RF link to be used to transmit the location information to the central computer eliminating the need for wires. This system was found to have two disadvantages: power consumption of the detectors and speed. 2.3.6 GPS With the federal governments ruling recently that all cell-phones must be able to acquire a persons location in the case of a 911 call, there has been a boom in research on GPS location systems. GPS is the ideal choice for use outdoors, but it is not a feasible choice indoors. The problem with indoor use is that for satellites need line of sight (LOS) to communicate with GPS devices. Once inside, LOS communication is lost. With obtaining an indoor position using GPS we have two choices: the use of new low power no-chip architecture that optimize wideband communication or pseudo satellites. This new architectures has been proposed by Global Locate to make GPS system feasible on a cell phone and conducive to indoor use. To minimize the incremental cost of adding GPS functionality, chip manufacturers plan to integrate RF and digital functions for GPS

PAGE 28

18 into the existing chips that perform these functions for cellular signals. The GPS receiver is relieved of the burden of searching out the satellite frequencies, demodulating satellite navigation data, and computing satellite coordinates, because this information is provided over a separate wireless link. In the cell phone environment, a separate wireless link is readily available. This "no-chip" GPS solution is a logical choice for cell phones [5]. The main advantage is that it consumes negligible power from the phone. The disadvantage to indoor location systems is in the accuracy. This system can only calculate a persons position within 10 to 30 meters. This is a good choice if only very general spatial location is required, but it is not practical for tracking someone room to room. Figure 2-9 no-chip solution

PAGE 29

19 A pseudo satellite system involves placing three miniature satellites in a room and running triangulation calculations [4]. This is identical to the ultrasonic options presented above and is subjected to the same advantages and disadvantages with increased expense. Figure 2-10 Pseudolite System 2.3.7 Hybrid System (MIT Cricket) Hybrid systems use any combination of the preceding techniques to create a positioning or tracking system. Most systems used by researchers are hybrid systems. These systems benefit from the advantages of merging techniques and fall prey to the various disadvantages.

PAGE 30

20 The Cricket Indoor Location System is an ongoing research project at MIT that was first introduced to MOBICOMP in August 2000 [14]. It is a positioning system where a PDA or other mobile listener receives signals from fixed transmitters to determine service availability within a set location. The beacons (transmitters) send out concurrent low-level RF and ultrasonic signals. The purpose of the RF signal is to wake up a listener and prepare it to receive ultrasonic pulses. Upon receiving both of these signals the listener correlates the signals, estimates distance to the different beacons, and estimates the space location that the current listener is in. Since low-level RF waves pass through walls nearby locations are known. Synchronization with multiple beacons is achieved by running a random collision algorithm on the RF signals. Data is encoded in the RF signals and relates semantics of the designated area of the beacon. Ultrasonic signals are only considered after a valid RF signal. This prevents interference of reflected Ultrasonic signals. The main idea is to obtain an unobtrusive and private environment by placing the burden of computation on the mobile device. The Cricket is not designed to be a tracking system and is designed for general spatial awareness and has an accuracy rating of 2 feet. Below is an example of their beacon.

PAGE 31

21 Figure 2-11 Cricket Pilot

PAGE 32

CHAPTER 3 THE PROBLEM The problem faced is to create a smart home that is capable of making decisions for users and to provide extra safety features that will keep seniors independent. In order to do this a smart house needs to know their location. By knowing the end users location, a smart home can make his life easier by making decisions for him that he might not make otherwise. It is common for an elderly person to do something like turn the lights out at bedtime one day and forget to do it the next three. Giving the central computer location information enables a smart home to control the different systems of a house in order provide an independent lifestyle. These systems include, but are not limited to lighting, temperature control, appliances, and safety systems. Location information is defined as an XY position relative to the house and the angle of orientation. The angle of orientation information is used for the visually impaired. Location information can be thought of as the backbone of the technologically enabled household environment. A smart home needs a location system that provides user tracking through hardware coupled with a custom software package that is capable of interacting with different devices. Through an exhaustive search of the existing hardware OEM systems the Hexamite Low Cost Positioning System became the ideal choice by providing the necessary functionality and meeting our budget constraints. In order for the interoperability of heterogeneous devices the Open Service Gateway Initiative (OSGi) was chosen for the house architecture. Because the OSGi platform uses a Java 22

PAGE 33

23 Embedded Server, Java is the obvious language to use to create our custom location software.

PAGE 34

CHAPTER 4 OSGI The open service gateway initiative (OSGi) is an open reference architecture designed primarily for the delivery of services on the Internet to local networks and devices. The OSGi platform specification provides a common architecture for service providers, developers, and equipment vendors to develop, deploy, and manage services in an organized and coordinated fashion. The host that manages the services in the local network is the service gateway. In order to provide services from different devices platform independence is a requirement. Because of this requirement of OSGi, Java TM is ideal for the default platform. Most of the terms used to describe the OSGi architecture are taken from Java TM parlance. 4.1 OSGi Architecture OSGi has a layered architecture as shown in figure 3.1. The architecture consists of three components: 1. Framework 2. Bundles 3. Services 24

PAGE 35

25 Service Figure 4-1 OSGi Architecture [12] The framework is the heart of the system as it provides a virtual environment on which services from different vendors can execute. It provides clear interfaces for registering new services and a powerful service lookup facility. The framework also provides basic eventing capabilities. Services are java objects that implement a standard interface and execute on the framework. A bundle is a collection of one or more services and is responsible for registering services with the framework. Services are exchanged among bundles through the framework in a secure and controlled manner. Thus, bundles may provide services to other bundles as well as use services from other bundles. Besides providing specification for framework, services and bundles, OSGi also contains Device access specification, which is a mechanism to couple device services to

PAGE 36

26 driver services. The terms used in this section are explained in more detail in the subsequent sections. 4.2 Service A service can be defined as a Java TM object implementing a concisely defined interface [12]. In OSGi environment, everything is a service; for example, a web server is a service, so is a library routine that helps in performing a complex calculation or a program to control a particular device. Applications that execute in the OSGi environment are a collection of services; all of which need not necessarily be from the same vendor. OSGi provides a mechanism for services to be shared between different applications. Every service consists of a service interface and a service implementation. Service interface is a Java TM interface, which specifies the semantics and the behavior of a service. The interface also hides the implementation details of the service. Service implementation, which is also called a service object, is a Java TM object of a class that implements the service interface. There can be many service implementations for a single service interface. This happens when different vendors provide the same service or if there are many flavors of the same service. For example, a service to control a camera has a standardized service interface but depending on the model and make of the camera might have different service implementations. When a bundle is started, it registers services with the framework service registry. A registered service is available to other bundles under the control of the framework. The framework provides a powerful lookup mechanism by which bundles can query for services and get their references. A registered service can be unregistered at any time

PAGE 37

27 by the bundle that registered it. Whenever a bundle is stopped, the framework automatically un-registers all the services registered by that bundle. 4.3 Bundle A bundle is a collection of services that are packaged in a well-defined fashion. It acts as a means by which services are hooked on to the OSGi framework. This section describes the structure of a bundle and its life cycle. Unlike other archive files, bundles have different states. A bundle can be in one of the following states: Installed, uninstalled, starting, stopping, resolved and active. Services contained within a bundle can be available only if the bundle is in active state. Figure 4-2 shows the state transition diagram of a bundle. In figure 4-2, the thick arrow lines represent the transitions triggered by the framework and the dotted arrows represent automatic transitions. Stop Sta r t Uninstall Update In sta ll Installed Resolved Startin g Sto pp in g Active Uninstalled Transition by administrative action Automatic transition Figure 4-2 Bundle State Transition Diagram [10]

PAGE 38

28 4.4 Hexamite Bundles Hexamite software can be packaged in to an OSGi bundle to provide a generic service for getting location information. The overview of the Hexamite software is given in section 4.4.1. The scheme used to plug the Hexamite software into OSGi framework and the design changes that were done to accomplish this task are explained in section 4.4.2. 4.4.1 Hexamite software Hexamite software contains the following modules 1. Communication module: This module communicates with the Hexamite hardware via the serial port. The communication includes initializing the pilots and reading the beacons location information, from the pilots. 2. Processing module: The location information received by the communication module is parsed and processed by this module. Processing module refines the information to a more usable format having the (X, Y) coordinates and the orientation. This refined information is stored in a Person object. Figure 4-3 Hexamite Structure [10] Communication Module Processing Module Person Ob j ec t Hexamite Hexamite hardware Serial p or t

PAGE 39

29 4.4.2 Hexamite as a service on OSGi The location information that is provided by hexamite might be used by several client applications simultaneously. An organized way to let many clients share the location information is by making the hexamite software a service on OSGi. Figure 4-4 shows this scheme. As it can be seen from the figure, the only two additions made are the Activator component and the Event broker component. The Activator component is required to interact with the OSGi framework. It provides a mechanism for the hexamite bundle to be started or stopped from the frameworks user. user interface. Communication Module Processing Module Person Ob j ec t Hexamite Event Broker Activator OSGi Framework Hexamite hardware Event Figure 4-4 OSGi Hexamite bundle [10]

PAGE 40

30 The processing module is changed to generate an event containing the location information. After generating an event, it is thrown to the event broker that was developed by Sree Kuchibhotla [10]. An event object containing the location information is sent to the event broker. Any client interested in the location event will have to register with the event broker.On receiving this event, the event broker sends the corresponsing event object to all the registered clients. The details about event broker can be found in [10].

PAGE 41

CHAPTER 5 THE PROTOTYPE The location system is made up of two central parts: OEM hardware, and custom software. The system works by having software setting up the system to the desired configuration. After setup the system returns a location distance string to the central computer twice a second. Upon receiving the string the software parses it, calculates position and orientation, and creates a location even every four seconds. A detailed account of each part of the system is presented below. 5.1 Hardware The Hexamite Low Cost Positioning Systems benefits (See page 9) made it the perfect choice for the hardware for a smart home tracking the system. This system is made up of three different devices, HE900M pilots, HE900T beacons, and a HE485 RS485/RS232 converter. The system is setup to have the stationary HE900Ms act as receivers. Figure 5-1 HE900M 31

PAGE 42

32 The deflection angle that the HE900M can receive is 130 at 6M and 85 at 8M. By placing one HE900M in every corner of an area it is possible to achieve 360 coverage of the mobile beacons. Figure 5-2 Area Coverage The HE900Ms each have four external wires that correspond to RS485 positive, RS485 negative, ground and power. These wires are attached directly to a RS485 four-wire cable that provides power to the devices and enables communication to the central computer. The pilots are positioned as follows in the ICTA lab and are interconnected by RS485 cabling. Each pilot has one cable that connects to the connector box above the ceiling to form a network. The ICTA cable box is in the approximate position as below.

PAGE 43

33 Co nn ecto r bo x Figure 5-3 ICTA Pilot Positions (0,0) X Y 1 2 3 4 A unique feature is the way each pilot is attached to the ceiling. The ICTA lab uses 3M ultra strong Velcro with an adjustable base that pivots and can be bent to cover a wide range of vertical angles. This design was created by Paul Bennett and allows for the adjustment of the pilots.

PAGE 44

34 Figure 5.4 Pilot Adjustable Base The tracking system requires the HE900T to be configured as a beacon. This device is lightweight and has a size of X 2X 1. By placing two HE900Ts on a person the system is able to acquire both their position and orientation.

PAGE 45

35 Figure 5-5 HE900T A Manganese Dioxide Lithium rechargeable 3V battery powers the mobile HE900T. The HE900T has an active operating time of 10 hours and has a power down sleep feature that extends battery life up to 300 hours. The backside of the HE900T has eight pins that allow the administrator to test and control the device. They also provide means to recharge the devices.

PAGE 46

36 Table 5.1 HE900T Pin Order Pin Configuration Pi# Function 1 Serial Output 2 Serial Input 3 Reset, this pin resets the devi c if it sinks beneath 1.5V 4 Ground/Return 5 Reserved 6 Reserved 7 Test Pin, pin is low 0V when the device sleeps, pin is high when device is active V=V(battery) 8 Power Input, Battery charge 4 16Vdc @2 -14 mA The custom software on the central computer communicates with the hardware, calculates the position, and creates location events for the architecture. The first step of the initialization process is for the software to read the hardware setup strings from the Settings.txt file in the Location package. A checksum, which is a integer representation of the ascii characters of the setup string, is created and passed to the HE900Ms for comparison. The HE900Ms configure themselves based on this setup string and return a + if the setup configuration is feasible. 5.1.1 Setup Strings Each string is broken down into seven parts. An example of the setup strings for our system is listed below.

PAGE 47

37 Table 5.2 Setup Strings #S 01 0D 03 01 06 00 #O 01 52 03 01 06 00 #Q 01 4E 03 01 06 00 #Y 11 50 03 01 06 00 Each line is a different string that begins with the # sign and requires a different pilot configuration attempt. The first part of the string represents the device address (DA). This is the secondary address per device and is one letter after the primary. In this case, the primary addresses are T, N, R, X and are displayed on the outside of the HE900Ms. The software is designed to read each line that begins with a # and create the checksum integer representation of the hexadecimal number parts that follow the DA. The second part of the string is the Program Control Byte (PCB). Setting different bits of the PCB provides the HE900M with different functionality. Here is a listing of the different bit functionalities for the pilot. Table 5.3 PCB Bits ***************************** If device is a Pilot************************** PCB.0 = if set this Pilot transmits sonic synchronization PCB.1 = if set this Pilot is I/O pin synchronized PCB.2 = if set this Pilot's Autotracking is Enabled PCB.3 = if set this Pilot transmits continuously PCB.4 = if set this Pilot is an initiator in a chain of pilots (master) PCB.5 = RESERVED PCB.6 = RESERVED PCB.7 = if cleared Device is a Pilot *********************************************************************** In our setup configuration pilots with secondary addresses S, O, and Q are setup with a PCB of 01. Pilot X is the master and has a PCB of 11. The thing to remember is that the all the numbers are in hexadecimal format. A PCB of 11corresponds to an integer

PAGE 48

38 representation of 17 that sets bits 4 (2 4 ) and 0 (2 0 ). The master must always be setup last per hardware requirements. Sonic synchronization is the process where the beacons send distance information to the pilots at a predefined time interval. Upon receiving the distance information from the beacons the master pilot creates a distance string that is passed to the next pilot defined in the setup string, the third part. Each pilot in the network follows the same procedure except that they concatenate their distance information to the same distance string. The last pilot send the distance string back to the central computer and initiates another acquisition cycle. The third part of the setup string is the Termination Byte (TB). The TB is the destination or address to which each pilot sends the distance string. The numbers that make up the third part are the hexadecimal representation of the ascii number of the primary address or device that the distance string is to be sent to. The only difference is the first string which has the hexadecimal number 0D. OD is the carriage return and tells the system to start a new acquisition cycle. This way the system continuously acquires distance information without a separate signal from the central computer. In the above example 50 corresponds to device P, 4E corresponds to device N, and 52 is the hexadecimal representation of device T. The fourth part is the Number of Beacons Byte (NBB). The NBB represents the number of beacons in the system plus one. The NBB defines the number of scalar values a pilot puts on the distance string. The pilot will put one value for each beacon plus one for itself on the passed distance string. An example of how scalars are used is presented below in the distance string section.. The last three parts of the setup string are ignored by the pilots and are relevant only to the beacons. The fifth part tells the beacon how

PAGE 49

39 many pilots it should receive messages from before it responds. In our case the number is one. The sixth part tells the beacons how many devices are in the system and the last part is ignored entirely. 5.1.2 Distance Strings The distance string passed to the central computer consists of four sets of three scalars. An example: 0E22 0123 0C34 P0B33 0E13 23A1 N03AB 3345 09C3 R0202 0FE3 00F2 The four sets correspond to the four pilots. The scalar distance measurements are in hexadecimal format and represent the number of millimeters to the beacon or nearest object. The first scalar is the distance from the pilot to the nearest obstacle. An obstacle is anything that reflects the sound wave back onto the pilot and can be anything from a beacon to a wall. The first set of three scalars in the above example is: 0E22 0123 0C34 Here 0E22 or 3618 millimeters represents a distance measurement from the master to the nearest obstacle, 0123 (291 mm) is the distance measurement from the master to beacon #1, and 0C34 (3124 mm) is the distance measurement to pilot #2. Every set of scalars after the first is read the same way except for one minor difference, the added pilot primary address. Each pilot after the master will add its primary address to the first scalar. The second set of scalars represents the second pilot and with our example this is pilot P. P0B33 0E13 23A1

PAGE 50

40 With this set and every set after the distance measurements are calculated the same except the pilot primary address is ignored. Here there is 0B33 (2867 mm) to the nearest obstacle, 0E13 (3603 mm) to beacon #1, and 2341 (9025 mm) to beacon #2. 5.2 Custom Software The Hexamite system provided a demo package that was of little value. As a result, all the necessary steps and calculations needed to meet the requirements had to be researched and invented. The custom code is attached to appendix A. Great care was taken to add very detailed comments and red highlighting for parts that will need to be changed if the system is upgraded or moved. The software is responsible for meeting the following requirements: Establish a serial connection with hardware to establish two way communication Read from Settings file and send appropriate setup information to hardware Retrieve and parse distance strings from hardware Perform trilateration calculations and plot distance information Provide a GUI to show an accurate representation of a users movement 5.2.1 Serial Connections Java is the software language choice to meet the necessary requirements of the system architecture. The javax.comm package provides the classes and methods necessary to facilitate serial communication between the hardware and software. The ComPortIdentifier class contains the getPortIdentifier() method that crerates a ComPortIdentifier object that is linked or controls a particular port. Once a communication port has been linked to the object, the open() method allows this port to follow the RS232 serial port communication protocol that hhttp://www.hexamite.com/as

PAGE 51

41 the parameters set by the setParamters() method of the SerialPort class. The javax.comm. package with its api can be downloaded from sun and thus will not be included in this thesis. The SerialConnection class was modified and is attached to the appendix. 5.2.2 Software Setup There are three hardware-defined commands that are passed between the hardware and software. These commands are used to initiate a particular hardware action. Table 5.4 Pilot Commands Control Characters decimal Hexadecimal HPD interpretation Carriage Return 13 0D This will force the master device to transmit synchronizing hyphen, and initiate a new position acquisition cycle for all devices on the network. Escape 27 1B BREAK! This will force all devices to be ready for commands. hyphen ' 45 2D The device enters position acquisition cycle. Escape is used to halt the pilots distance acquisition attempts. This command should be sent before each communication sequence and before the software program quits. The escape command enables the sleep mode function of the beacons. Carriage return sends a new acquisition cycle request to the master pilot. The hyphen is used only for hardware-to-hardware communication to inform the pilots a new acquisition cycle is about to begin. The master sends it after receiving a carriage return and places it at the beginning of the distance string. The distance string is then sent to the next pilot defined in the setup. The software starts off by sending the escape command to prepare the pilots for setup. Setup is achieved by reading the Settings.txt file and then sending the appropriate setup string to each pilot. If the configuration is feasible for all pilots a + is returned to the

PAGE 52

42 software. After the software receives the + a carriage return is sent to the hardware and the acquisition cycle begins. 5.2.3 Distance String Breakdown The distance strings are in the form discussed in the hardware section of this chapter. The softwares first task is to parse out all non-relevant information from the distance strings. It does this by reading the distance string byte per byte and then removing all entries that do not fall between 48 and 76 in ASCII. Bytes are continuously read till a carriage return is received. At this point the getInfo() method is called and passed the parsed string. Ultrasonic waves reflect off walls and objects and it is possible that some of the distance numbers represent reflected calculations. To help calculate a more accurate position of the user, only the shortest two distances are used. It is the getInfo() methods responsibility to separate out the shortest two distances and corresponding pilots from the parsed distance string. Each pilot sends and receives distance information to and from the beacons. These numbers are passed in hexadecimal form; need to be converted to integers, must be recalculated based on which pilot synchronized with the beacon, and need adjustments made to compensate for the hardwares clock cycle count In order to represent an accurate location all the numbers are initially converted to integer. The shortest distance represents the pilot that synchronized with the beacon. The distance representation from the synchronized or shortest distance pilot is a result of a ping going directly to and from the beacon. Therefore, the first calculation involves dividing the shortest distance in half and is called the synchronization distance. Because of sonic synchronization the

PAGE 53

43 synchronization distance value represents the first leg of all the other pilots distance statements. In order to correct for this the synchronization distance value needs to be subtracted from all other distances. The graph below helps illustrate this process with two pilots and can be easily extend to any number of pilots. Figure 5-6 Distance Calculations In the figure above the top pilot is the synchronized pilot and the synchronized distance value is the result of the half the total ping time. Since the top pilot is already synchronized the bottom pilot sends a request ping to the beacon that time stamps a return ping. The pilot then calculates the time of flight of the return ping and creates a distance value. This value is added to the synchronized distance value and is passed to the software by the acquisition distance string. Because sound travels .688 mm for every micro controller tick the all numbers need to be multiplied by .688. Here is a chart with the corresponding steps.

PAGE 54

44 Table 5.5 Calculation Example Step 1 -0E22 0123 0C34 P0B33 0E13 23A1 N03AB 3345 09C3 R0202 0FE3 00F2 Step 2 0E2201230C340B330E1323A103AB334509C302020FE300F2 Step 3 Shortest (beacon #1), Pilot = hex 0123 291 mm #1 Shortest (beacon #2), Pilot = hex 00F2 242 mm, #4 Next_Shortest (beacon #1), Pilot = hex 0FE3 4067 mm, #4 Next_Shortest (beacon #2), Pilot = hex 0C34 3124 mm, #1 Step 4 Shortest (beacon #1) = 291/2 Shortest (beacon #2) = 242/2 Next_Shortest (beacon #1) = Next_Shortest(beacon #1) 291/2 Next_Shortest (beacon #2) = Next_Shortest (beacon #2) 242/2 Step 5 Shortest (beacon #1) = Shortest (beacon #1) .688 Shortest (beacon #2) = Shortest (beacon #2) .688 Next_Shortest (beacon #1) = Next_Shortest(beacon #1) .688 Next_Shortest (beacon #2) = Next_Shortest (beacon #2) .688 Steps Defined: Step 1 Central computer receives distance string Step 2 Parsed Sting is sent to getInfo() method Step 3 getInfo() retrieves shortest distances Step 4 Shortest distance is divided in half and subtracted form next shortest Step 5 Distances are multiplied by .688 Step 6 New distances are passed to Tag objects

PAGE 55

45 5.2.4 Trilateration Trilateration is the process of obtaining a position based on distance measurements. The Tag class is responsible for the trilateration calculations. The new distance values calculated above are passed to the getTagLocation() method. Here trilateration calculations and the relative house position are calculated. The calculations are broken down for each pair of the closest two pilots. Trilateration uses basic geometry to create a beacons distance between pilot information based on the calculated distances. Trialateration is based on the following formula and diagram. Table 5.6 Trilateration Formula Trilateration Calculation is based on the following two formulas: // Xc=(L2^2-L1^2+LB^2)/(2*LB) // Yc=(L2^2-X^2)^1/2 // Where: // L1 is distance from Second Closest Pilot to tag // L2 is distance from Closest Pilot to tag // LB is distance between pilots Beacon L2 L1 Yc Xc LB Figure 5-7 Trilateration Graph The house position is based on a two dimensional Cartesian graph. In order to calculate the house position, Xc and Yc are taken into account based on their relation to

PAGE 56

46 the closest two pilots. There are two cases of calculation; the basic case, and the advanced case. The basic case occurs whenever the two pilots are next to each other on the perimeter. The final position is easily determined after Xc and Yc have been calculated. The final position is just an adjustment of Xc and Yc from the height and length based on the closest two pilots. Figure 5-8 Basic Trilateration Case (0,0) X Y 1 2 3 4 (0,0) X Y 1 2 3 4 Final Position: X = X Yc Y = Y Xc Final Position: X = X Yc Y = Xc Yc Xc Xc Yc In the figure above illustrates how the final position calculations differ depending on the closest and second closest pilot. Trigonometry is needed to solve the advanced case. The

PAGE 57

47 advanced case occurs whenever the two closest pilots are across form each other. An example is pilots 4 and 2. The first main difference is that a formula needs to be added to acquire the base. Base = Sqrt(length length + height height) Next we need to determine the angle between L2 and line 1 to 4. Using the arctangent function on the height over the length accomplishes this. Once this angle, called the primary angle, is acquired we can use the cosine of this angle and Xc to get the distance of Xc relative to the house and is illustrated by the double arrow on top. In order to acquire the true X position we need to include the distance from the center of the beacon to the edge of Xc. To do this we first subtract 45 from the primary angle. After this temp angle is calculated we use its tangent and Yc to determine the distance from the edge of Xc to the purple dashed vertical line. This calculation, called Xc offset, is applied to the cosine of the primary angle to acquire the diagonal Xc adjustment, which is illustrated by the smaller double-sided arrow. The X position of the house, in this case, is the following formula: X position = length (Xc relative diagonal Xc adjustment) The relative Yc is then a straightforward calculation. Relative Yc = Sqrt(Yc *Yc + Xc offset Xc Offset) The house Y position in this case is House Y Position = Relative Yc + (sin(primary angle)*Xc)

PAGE 58

48 Figure 5-9 Advanced Trilateration Case X Y 1 2 3 4 Xc L2 Yc 5.2.5 Orientation The ICTA custom software system has a built feature that provides a persons orientation. Orientation is achieved by placing a beacon on each of the users shoulders. By analyzing the house position of the left and right beacon orientation can be achieved. Once the house position is calculated for each beacon a Person object is created from the beacons. The Person object then calls the getPosition() method to calculated the Persons house position. The formula to calculate the position in listed below. //X Position p.x = (p.left.getX()-p.right.getX())/2 + p.right.getX(); //Y Position p.y = (p.left.getY()-p.right.getY())/2 + p.right.getY(); Here Person ps x position is based on the left beacon X position less the right beacon X position divided by two. Then this total is added back to the right beacons X position. The same method follows for the Y position. The purpose of this is to create a house position that represents the central point on a user. To determine the orientation the

PAGE 59

49 getOrientation() method compares the position of the right and left beacons to the central person position and calculates an angle of orientation. This calculation subtracts the difference of the beacons from the central position and uses the arctangent function to retrieve the angle. This angle then needs to be adjusted for the houses orientation. For the house, orientation 0 is an approximation of true North and points towards the wall between pilots 3 and 4. (0,0) 0 270 1 80 90 1 2 3 4 Figure 5-10 Orientation 5.2.6 GUI The display is set up using the client server architecture. The backend software that interacts with the hardware acts as the server and returns client that receives position events. The client is a graphical user interface (GUI) that knows the servers IP address and requests information through a socket connection. Once the event has been received the GUI displays an icon representing a person and the corresponding orientation. The orientation is displayed at 5 intervals to keep the display steady when hardware distance variations would cause a stationary person to move around. Example of the GUI can be found in the data Analysis chapter.

PAGE 60

CHAPTER 6 DATA ANALYSIS The goal on the outset was to create a tracking system that could track someones position indoors. A bonus idea was to obtain their orientation. At this point the system can determine a persons position within 22cm 96.7% of the time, but cannot accurately relay orientation. This chapter presents an overview of the testing process and provides an analysis of the results. A sample dataset test is shown below. Figure 6-1 Stationary Test 50

PAGE 61

51 Here 50 position reads were generated and only two fell outside the acceptable range. This GUI did not repaint over the previous value to better illustrate the results. The figure in the lower left shows the person at position (0,0) facing due west during start-up. 6.1 Test Process The accuracy test comprised of deriving the real X and Y position of our stationary test dummy and comparing the results to the systems calculations. In order to do this a test dummy needed to be created. 6.1.1 Matilda A test dummy was created by using a video camera tripod for legs, a piece of Styrofoam, a cardboard box for the body, a brown paper bag for the head, and plastic bubble wrap for hair. The result is Matilda.

PAGE 62

52 Figure 6-2 Matilda

PAGE 63

53 Assembly consists of placing the Styrofoam piece on top of the tripod via the tripod vertical stud. Once secure the cardboard box is tied to the Styrofoam by string. After this the head and hair is taped into place. 6.1.2 Real X and Y Marking the ground directly below the beacon positions on Matildas shoulders and measuring these positions with a metric tape measurer derived the real X and Y position. For best results the beacons are placed on top of the shoulders with their sensors facing the front. 6.1.2.1 Marking the Ground Marking the ground is a four-step process. First, Matilda must be in a vertical position. Second, the beacons sensors centers are placed directly above the point where the Styrofoam meets the cardboard. Third, the distance from the sensor to the Matildas front side is measured and this distance is marked on the Styrofoam base. Figure 6-3 Styrofoam Measurements

PAGE 64

54 Finally, a fishing string with a 1lb weight is pinned to the Styrofoam mark and dropped to the floor marking the real position. 6.1.2.2 Measuring In order to measure the real X and Y position the border of the pilot area needs to be determined. To do this, fishing line with the 1lb weight is dropped to the ground and marked in front of each 900M. Each marked position is now connected with string to form the pilot area border. Figure 6-4 Pilot Border Measurements Now that a border exists, the distance of the beacon plots from the area border is measured and the real position is determined.

PAGE 65

55 Figure 6-5 Ground Positions 6.1.3 Test Locations The choice was made to place Matilda in six different areas and to run multiple tests on each area. The choice for the position of the test areas and for the multiple tests in the areas was chosen based on what was thought to produce the least accurate results. Overall six areas were defined with four sub tests each. Each dark circle represents a different point the right beacon was tested. The sub tests were positioned so that if possible at least one beacon was without LOS of the closest pilot.

PAGE 66

56 6 5 4 3 2 1 Figure 6-6 Test Positions 6.1.4 Results Of the 22 position tests conducted, 1356 system results were recorded. The actual figures can be seen in appendix-b. The data was broken down into X/Y positions for each beacon, the Max and Min, and average to determine the number of bad reads and quantitative actual error. A bad read is defined as any number that has a difference that is greater than 400 mm from the average. Bad reads occurred 45 times or 3.3% with all but two occurring with the left beacon. Actual error was calculated by creating a central person location for both the average results and the real measurements then comparing their difference. The actual error was found to be within 22 cm in the worst case and within 1 cm for the best. The figure below separates the actual error of the 22 sub cases into four categories.

PAGE 67

57 Table 6-1 Actual Error Actual Error02468101214 <3 cm <10 cm <16 cm <22 cm A further analysis of theses results is presented in the next section. 6.2 Errors There are four main types of errors encountered when testing the system: absolute, reflective, environmental, and calculated. 6.2.1 Absolute Errors Absolute errors are different for each pilot and are caused by crystal clock frequency variations. Absolute errors are possible to correct because the amount of the error has a linear relationship per distance. To calculate the amount of error per pilot, three data sets where run at one-meter intervals from the pilot. The meter intervals where further enhanced by creating an arc that contained three points. One point was positioned directly in front of the pilot and the other two were spaced at approximately 45-degree intervals from the pilot. The illustration below depicts the process.

PAGE 68

58 Figure 6-7 Absolute Error Test In the illustration above each pushpin represents a meter increment from the base of the pilot. Because of human error in placing Matilda directly over each pushpin, the bad read threshold was set to 20 mm. The results of the test showed that there was an average absolute error of 7 cm for the first pilot. Pilots two and three were slightly better with an average absolute error of 6 cm and pilot four was the best with 5 cm. One particular problem faced was close to pilot measurements. In order to have a low miss rate the angle of the pilot had to increased so that devices are at a 45 degree angle or greater.

PAGE 69

59 Figure 6-8 Short Distance Pilot Angle 6.2.2 Reflective Errors Reflections by ultrasonic waves are caused by the ultrasonic ping bouncing off an object and are the major cause of errors. Unlike absolute errors, reflective errors fail to create any sort of linear relationship. Through testing, two types of reflective errors can be defined, non-disclosure and outside receiving angle (ORA). Non-disclosure errors can be synonymous with chaos and are unique for each test situation. These reflective errors bounce off multiple walls and are directly linked to the percentage of bad reads and actual positioning error. Reflective errors played a key role in the <22 cm category of the actual errors from section 6.1.4. These errors occurred in test area five. In each case, the

PAGE 70

60 shortest pilot distance is a result of reflections off the east wall. The figure below illustrates this case. Figure 6-9 Reflective Error Here, the red or dashed lines represent the true distance, but the actual distance recorded is a result of the reflection. Because area five is midway in the X position, the result of this reflection created the wrong closest pilot and caused X and Y positions to be off by as much as 300 mm. The reason the pilots would record a longer reflective read is unknown. ORA errors occur because the beacon reads a signal or ping from a pilot that is outside its receiving angle. The 900T have a receiving angle of 130 degrees at a distance of up to six meters. Having this angle leaves an angle of 25 degrees per side that can cause misreads. Figure 6-10 Receiving Angle Error If any reads come in outside the receiving angle they might return incorrect results or fail to get picked up. By placing the beacons on top of the shoulders and with the pilots facing downward, the ORA errors are not a factor.

PAGE 71

61 6.2.3 Environmental Errors Ultrasonic pulses are subjected to outside environmental influences. These influences are noises in the form of ultrasonic collisions. Collisions are wave patterns that pass have the same frequency as the systems. Wave patterns in the same frequency as the ultrasonic system will cause the message passed from the pilots and beacons to dissipate or reflect. Several Test experiments were created to test the system under normal household activity. These were radios, yelling, keys jingling, and finger snapping. Jingling keys produced the highest frequency sound and as a result was the only test that made the system unstable. The next illustration shows how the keys broke down the distancing ability of the system. Matilda remained stationary in the same position as the stationary test displayed in Figure 6-1.

PAGE 72

62 Figure 6-11 Key Test 6.2.4 Calculation Errors Calculated errors are human errors in measuring. When measuring the real position it is important that Matilda is perfectly vertical, the tape measure is perpendicular to the base area line, and the base area lines are flush with each other. Any variation in any of these conditions could result in a fairly large error in measurement. As an example, being off by 1 cm in each of the above conditions would result in an actual error of 4 cm. 6.3 Height Effects One limitation to the current system is height or measurements in the third dimension. Three good reads are required to calculate height and this is impossible with a four pilot system. An example of this limitation is when the user sits down. When this happens the

PAGE 73

63 system will try to calculate their position as if they were standing up. This leads to inaccuracies of up to 100 cm. 6.4 Data Analysis Conclusion Although an error rate of 22 cm sounds like a lot, it is not when you consider the object being tracked, people. A human can easily have a width of 22 cm. The 22 cm error can be further reduced through more rigorous testing and the implementation of reflective error correcting software protocols. It is recommended that further testing be done only after the ICTA lab has been built. This is because each minor change in pilot positioning or wall placement will result in making any previous tests obsolete.

PAGE 74

CHAPTER 7 FUTURE WORK This custom location system provides the basis to continue research in five related areas; visually impaired aided navigation systems, portability, more intelligent smart homes, increased orientation precision with height, and specialty clothing. Visually impaired navigation systems can be created by adding a distance to obstacle feature. An idea is to uses one HE900T as a base unit with two extra external mini ultrasonic sensors. The idea is to attach the mini sensors to the sides of a pair of sunglasses. The mini sensors along with the base will coordinate with stationary pilots to relay positioning information in the same fashion as the current system. The difference will be that the mini sensors will have audio attachments that will be connected to earpieces. The audio information will activate a series of beeps that represent the distance to the nearest object. When the left and right beeps occur at the same time, the object is straight ahead. The base unit is attached to a smart phone by a RS232 data link connection. The phone could run the calculations necessary to retrieve the distance to obstacle information. This information can be passed to the central computer through socket connection utilizing RF. The computer could then use speaker set up in the house to relay the distance information back to the blind person. Portability involves creating an indoor system that can calculate distance information based on the positioning of another location systems enabled devices. These devices 64

PAGE 75

65 would create an ad-hoc network to relay the distance or position information and facilitate communication. More intelligent smart home research can go in two directions. First, homes can be made more intelligent by analyzing users behavior. This can be done through a series of complex algorithms to determine a user patterns. These patterns can be combined with location information to perform a wide range of acts. Two examples of such an act is turning the oven off after it is used and signaling flashing objects to snap Alzheimers patients out of a trance state. The second direction to research is combining location information and audio commands. Modified voice recognition software can be used with location information to activate emergency procedures or turn on the lights in the room the user is currently in. The current operation of the added orientation feature to the custom software is not acceptable. More research needs to be done to retrieve more accurate repetitive distance results and a study into storing past positions to make a more intelligent estimation would probably be of interest. A theory is to add more pilots to the system. This will allow for more accurate repetitive distance measurements and allow for height calculations. Specialty clothing can be thought of as special garments worn by the elders that will help the tracking system acquire more accurate results and less cumbersome. An idea is to have multiple sensors attached to a single micro controller. The micro controller and sensors would then be embedded into a sweater that can be recharged at night on a hanger. This sweater will increase location accuracy through added sensors and it disperses the weight thereby making it less cumbersome on the user.

PAGE 76

CHAPTER 8 CONCLUSION From the beginning of this research project, the desired result was to create a low cost accurate location system that can act as the backbone for a smart home. As this thesis concludes, this has been accomplished to within 22 cm of accuracy. Exact orientation would have been a nice added feature, but is not a requirement of the current system. The system is unique in the sense that a low cost ultrasonic system designed for the sole purpose of enabling elders to live a longer more independent lifestyle did not exist. The design of this system is a result of a thorough analysis of the current OEM systems available and through the creation of custom software. Verification of accuracy was completed after numerous test runs and changes resulted in data analysis that met the acceptable error requirements. This paper is very detail oriented to provide a reference for future students work. The biggest challenge to overcome was adding error-reducing capabilities to the software. At this time, error reduction is handled absolute error reduction and accepting the shortest two distances and is accurate to within 22 cm. The system can be made more accurate with reflective error reduction techniques. These techniques require rigorous testing of the finished lab and cannot be conducted at this time. I feel confident that this location system is valuable and contribute to the overall goal of the ICTA lab, helping elders live safer, longer, and more independent lives. 66

PAGE 77

APPENDIX A CUSTOM SOFTWARE CODE This appendix provides the code to the custom software created for our system. Order of Files Location //main Tag //calculates position of each tag Person //Uses both beacon to return Persons position House //Class for the House Object SerialConnectionExcpetion //SerialConnection Exception Serial Connection //Facilitates Serial Communications Owner //creates GUI person Hexamite //GUI 67

PAGE 78

68 // // Designed By: Bryon Winkler // international Center for Successful Aging // University of Florida // // Class Location: // // Main class that opens the serial connection, sets // up the pilots by reading the Settings.txt file, parses // the input, performs calculations based on hardware, and // passes results to Tag and Person classes. // import javax.comm.*; import java.io.*; import java.util.Enumeration; import java.util.Properties; import java.net.*; import java.lang.Math; class Location { private static Tag left = new Tag(); private static Tag right = new Tag(); private static Person p = new Person(left,right); private static long num_pilots = 4; private static House h = new House(6030,4090); private static double orientation; private static BufferedReader in = null; private static SerialConnection connection = new SerialConnection(); private static byte escape = 0x1B; private static byte hex_return = 0x0D; private static char char_test = 43; public static String inputLine = new String(), outputLine; public static PrintWriter out; public static BufferedReader ins; //Constructor public Location(){} /*getInfo method takes a parsed distance string, converts hex to decimal, and compares beacon distance informatio to determine shortest distance info. This info is formated per harware specifications and passed to appropriate objects. */ public static void getInfo(String pilot_info){ //INITIALIZE With high numbers for comparison int minRight = 99999, minRight_next = 99999, pilotRight_min = 99999, pilotRight_next = 99999, minLeft = 99999, minLeft_next = 99999, pilotLeft_min = 99999, pilotLeft_next = 99999; int jj = 0, kk = 0, k = 8, x = 0, test_test=0; int j = 4;

PAGE 79

69 //while loop searches distance figures, set shortest two distances and //corresponding pilot numbers to desired variables. /***************************************************************** HERE RIGHT BEACON IS BEACON #1, LEFT IS BEACON #2 *****************************************************************/ while(x < num_pilots) { //parse the string to retrieve distance numbers. This jj = Integer.parseInt(pilot_info.substring(j,j+4),16); kk = Integer.parseInt(pilot_info.substring(k,k+4),16); //For international or compiler differences with Unicode if(jj < 0) jj+=65536; if(kk < 0) kk+=65536; //check for two shortest Right Pilot figures if(jj < minRight&& jj> 180) { minRight_next = minRight; pilotRight_next = pilotRight_min; minRight = jj; pilotRight_min = x+1; } else if(jj < minRight_next && jj > 180) { minRight_next = jj; pilotRight_next = x+1; } //check for two shortest leftt Pilot figures if(kk < minLeft&& kk> 180) { minLeft_next = minLeft; pilotLeft_next = pilotLeft_min; minLeft = kk; pilotLeft_min = x+1; } else if(kk < minLeft_next&& kk>180) { minLeft_next = kk; pilotLeft_next = x+1; } //Increment the counters to point at next set of distance info j+=12; k+=12; x++; } //to derive correct distances from sonic synch minRight = minRight/2; minLeft = minLeft/2; minRight_next = minRight_next minRight; minLeft_next = minLeft_next minLeft;

PAGE 80

70 //Calibrate for distance sound travels per microcontorller clock count double xxx = minRight; minRight = (int)(xxx .688); xxx = minLeft; minLeft = (int)(xxx .688); xxx = minRight_next; minRight_next = (int)(xxx .688); xxx = minLeft_next; minLeft_next = (int)(xxx .688); //get Tag location right.getTagLocation(minRight, minRight_next, pilotRight_min, pilotRight_next, h); left.getTagLocation(minLeft, minLeft_next, pilotLeft_min, pilotLeft_next, h); //get Person location p.getPosition(); //get orientation orientation = p.getOrientation(); //convert to cm String st1 = String.valueOf((int) (p.x/10)); int yy = Math.abs((int) (p.y/10)); String st2 = String.valueOf(yy); String st3 = String.valueOf((int)orientation); outputLine = st1+" +st2+" "+st3; out.println(outputLine); try { inputLine = ins.readLine(); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: ICTA."); System.exit(1); } //creates string for socket communication String socket_info = p.getSocketString(); //increment counter test_test++; } //main method public static void main(String Args[]) throws IOException { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(3333); } catch (IOException e) { System.err.println("Could not listen on port: 3333.");

PAGE 81

71 System.exit(1); } Socket clientSocket = null; try { clientSocket = serverSocket.accept(); } catch (IOException e) { System.err.println("Accept failed."); System.exit(1); } out = new PrintWriter(clientSocket.getOutputStream(), true); ins = new BufferedReader( new InputStreamReader( clientSocket.getInputStream())); outputLine = "start"; out.println(outputLine); //open serial connection to pilots try { connection.openConnection(); } catch (SerialConnectionException e2) {} BufferedReader br = new BufferedReader(new InputStreamReader(connection.is)); BufferedOutputStream bos = new BufferedOutputStream(connection.os); //send escape char(27) to break connection.os.write(escape); bos.flush(); //send char(13) to initiate bos.write(hex_return); bos.flush(); //wait till buffer is empty for(long xxxxx = 1;xxxxx<1500;xxxxx++){} //send char(27) to break bos.write(escape); bos.flush(); //open Settings.txt and read from file by line. All lines are ignored except setup strings. //These strings begin with # and are: // #S 01 0D 03 01 06 00 // #O 01 52 03 01 06 00 // #Q 01 4E 03 01 06 00 // #Y 11 50 03 01 06 00 // Where first four relate Pilot information and the last three are used by the beacon #Y is the // secondary address of the master pilot signified by the next // arguement 11. By setting all other pilots to 01 the device uses sonic

PAGE 82

72 //synchronization 50 is the primary ascii address in hex of the next pilot in the //chain. 03 represents the numbber of beacons + 1 // a full detailed explaination can be found at www.hexamite.com (low Cost //Positioning Device) try { in = new BufferedReader(new FileReader("Settings.txt")); } catch(FileNotFoundException nf) { System.out.println("File not found!"); System.exit(2); } int j = 0; long hex_value = 0; int tempHex = 0; String input, verifier, temp; while((input = in.readLine()) != null) { //This is a seetings string for the pilot if(input.startsWith("#")) { //create a checksum to verify permisible software settings //for he hardware. Input String is in hex, change to long add //to checksum for verification then concatinate all settings //strings and the checksums. Send to Hardware for verification //VB Checksome array is replace with a single long, hex_value hex_value = 0; for(int i=3; i < input.length()-1; i+=3) { temp = input.substring(i,i+2); //System.out.println("Substring is : + temp); tempHex = Integer.parseInt(temp.toUpperCase(),16); //System.out.println("hex_value is : + tempHex); hex_value = hex_value + tempHex; //System.out.println("Total hex_value is : + hex_value); } verifier = input + "; byte[] chk = new byte[verifier.length()]; chk = verifier.getBytes(); // Send out set up string and its checksum to pilots // An example: "#S 01 0D 03 01 06 00 24" Here 24 is the //checksum for(int i=0;i
PAGE 83

73 //must cast hexvalue to byte and send independently. //String getBytes() method breaks it up byte check_sum = (byte)hex_value; bos.write(check_sum); bos.flush(); //Send out char(13) to initiate new acquisition cylce bos.write(hex_return); bos.flush(); //wait for OK long pp = br.read(); if(pp!=43) { System.out.println("Hardware is Not Initialized!!!!!!!"); System.exit(1); } j++; } } //send out char(13) to intitialize new cycle bos.write(hex_return); bos.flush(); /*Loop and receive input from pilots(need to terminate via the stop button on the GUI) 4 pilot string = "0E02 101A 102A X0345 1FBD 1FBD J0E440 1FBB 1FBB L0789 1981 1A82"; 2 pilot string = "0E02 101A 102A R0E03 1FBD 1FBD See www.hexamite.com (Low Cost Position Device) for full explaination Each pilot returns three sets (scalars) of information. Here: 0E02 distance to nearest obstcale from master 101A distance master to beacon 1(right) 102A distance master to beacon 2(left) Same pattern follows for each pilot except all other pilots List their primary address ex:R0E03 */ long in_temp =0; long read_temp=0; String pilot_info = ""; //while loop parses out all non-distance information //the severapplication will be listening to the socket //if the string read is "start" it will start the following iteration while(in_temp<40000) { read_temp=br.read(); char chck = (char)read_temp;

PAGE 84

74 //check for valid numbers. Use ASCII for comparison if(read_temp>47 && read_temp <77) { pilot_info = pilot_info + (char)read_temp; } if(read_temp==13) { getInfo(pilot_info); } in_temp++; } //send char(27) to break and allow beacons to power down bos.write(escape); bos.flush(); //close connection connection.closeConnection(); } } // // Designed By: Bryon Winkler // International Center for Successful Aging // University of Florida // // Class Tag: Takes in integers representing the various distance // MEASUREMENTS // and performs trilateration calculations to determine the proper // position of the tag relative to the house. // // Tilateration Calculation is based on the following two formulas: // X=(L2^2-L1^2+LB^2)/(2*LB) // Y=(L2^2-X^2)^1/2 // Where: L1 is distance from Second_Pilot to tag // L2 is distance from First_Pilot to tag (usually shortest) // LB is distance between pilots // // The pilot numbering system is // #1 Southwest corner // #2 Southeast corner // #3 Northeast corner // #4 Northwest corner // // L2_pilot = number of pilot to L2 // L1_pilot = number of pilot to L1 // // House position (0,0) is in the SouthEast Corner (Against the Harris lab // by the backdoor) // //package Location; import java.lang.*; class Tag

PAGE 85

75 { //Class variables private long x; private long y; private long previous_x; private long previous_y; //Constructor public Tag(){} public long getX() { return this.x; } public long getY() { return this.y; } public void getTagLocation(long L2, long L1, long L2_Pilot, long L1_Pilot, House h) { //adjust for height of average person L2 = (long)Math.sqrt(L2*L2-1200*1200); L1 = (long)Math.sqrt(L1*L1-1200*1200); //Get the exact location in reference to the house if(L2_Pilot==1&&L1_Pilot==2) { //calculate base distance long base = h.getHeight(); //absolute error corrections L1 = L1 60; L2 = L2 70; //erroneous short readings: increase to compute while(L1+L2 < base) { L1 = L1+100*(L1/L2); L2 = L2+100; } //run trilateration long xx = Math.abs((L2*L2-L1*L1+base*base)/(2*base)); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the South Wall this.previous_x = this.x; this.previous_y = this.y; this.x = (long)yy; this.y = h.getHeight() xx; } else if(L2_Pilot==1&&L1_Pilot==4) {

PAGE 86

76 //calculate base distance long base = h.getLength(); //absolute error corrections L1 = L1 50; L2 = L2 70; //erroneous short readings: increase to compute while(L1+L2 < base) { L1 = L1+100*(L1/L2); L2 = L2+100; } //run trilateration long xx = Math.abs((L2*L2-L1*L1+base*base)/(2*base)); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the South Wall this.previous_x = this.x; this.previous_y = this.y; this.x = xx; this.y = h.getHeight() (long)yy; } else if(L2_Pilot==2&&L1_Pilot==1) { //calculate base distance long base = h.getHeight(); //absolute error corrections L1 = L1 70; L2 = L2 60; //erroneous short readings: increase to compute while(L1+L2 < base) { L1 = L1+100*(L1/L2); L2 = L2+100; } //run trilateration long xx = Math.abs((L2*L2-L1*L1+base*base)/(2*base)); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the South Wall this.previous_x = this.x; this.previous_y = this.y; this.x = (long)yy; this.y = xx; } else if(L2_Pilot==2&&L1_Pilot==3) { //calculate base distance

PAGE 87

77 long base = h.getLength(); //absolute error corrections L1 = L1 60; L2 = L2 60; //erroneous short readings: increase to compute while(L1+L2 < base) { L1 = L1+100*(L1/L2); L2 = L2+100; } //run trilateration long xx = Math.abs((L2*L2-L1*L1+base*base)/(2*base)); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the East Wall this.previous_x = this.x; this.previous_y = this.y; this.x = xx; this.y = (long)yy; } else if(L2_Pilot==3&&L1_Pilot==2) { //calculate base distance long base = h.getLength(); //absolute error corrections L1 = L1 60; L2 = L2 60; //erroneous short readings: increase to compute while(L1+L2 < base) { L1 = L1+100*(L1/L2); L2 = L2+100; } //run trilateration long xx = Math.abs((L2*L2-L1*L1+base*base)/(2*base)); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the East Wall this.previous_x = this.x; this.previous_y = this.y; this.x = h.getLength() xx; this.y = (long)yy; } else if(L2_Pilot==3&&L1_Pilot==4) { //calculate base distance long base = h.getHeight();

PAGE 88

78 //absolute error corrections L1 = L1 50; L2 = L2 60; //erroneous short readings: increase to compute while(L1+L2 < base) { L1 = L1+100*(L1/L2); L2 = L2+100; } //run trilateration long xx = Math.abs((L2*L2-L1*L1+base*base)/(2*base)); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the North Wall this.previous_x = this.x; this.previous_y = this.y; this.x = h.getLength() (long)yy; this.y = xx; } else if(L2_Pilot==4&&L1_Pilot==3) { //calculate base distance long base = h.getHeight(); //absolute error corrections L1 = L1 60; L2 = L2 50; //erroneous short readings: increase to compute while(L1+L2 < base) { L1 = L1+100*(L1/L2); L2 = L2+100; } //run trilateration long xx = Math.abs((L2*L2-L1*L1+base*base)/(2*base)); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the North Wall this.previous_x = this.x; this.previous_y = this.y; this.x = h.getLength() (long)yy; this.y = h.getHeight() xx; } else if(L2_Pilot==4&&L1_Pilot==1) { //calculate base distance long base = h.getLength();

PAGE 89

79 //absolute error corrections L1 = L1 70; L2 = L2 50; //erroneous short readings: increase to compute within ratio while(L1+L2 < base) { L1 = L1+(100*L1/L2); L2 = L2+100; } //run trilateration long xx = Math.abs((L2*L2-L1*L1+base*base)/(2*base)); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the West Wall this.previous_x = this.x; this.previous_y = this.y; this.x = h.getLength() xx; this.y = h.getHeight() (long)yy; } else { //we are on a diagonal 4-2, 2-4, 3-1 or 1-3 //absolute error corrections if(L1_Pilot==4) L1 = L1 50; else if (L1_Pilot == 3) L1 = L1 60; else if (L1_Pilot == 2) L1 = L1 60; else if (L1_Pilot == 1) L1 = L1 70; if(L2_Pilot==4) L2 = L2 50; else if (L2_Pilot == 3) L2 = L2 60; else if (L2_Pilot == 2) L2 = L2 60; else if (L2_Pilot == 1) L2 = L2 70; //calculate base distance double base = Math.sqrt((h.getHeight()*h.getHeight())+(h.getLength()*h.getLength())); //erroneous short readings: increase to compute while(L1+L2 < base) { L1 = L1+100*(L1/L2); L2 = L2+100; } //run trilateration double xx = Math.abs(((L2*L2-L1*L1+base*base)/(2*base))); double yy = Math.abs(Math.sqrt((L2*L2-xx*xx))); //Calculate in reference to the North Wall this.previous_x = this.x; this.previous_y = this.y;

PAGE 90

80 //calculate angle for diagonal pilots double opposite_over_adjacent = ((double)h.getHeight())/((double)h.getLength()); double angle = Math.atan(opposite_over_adjacent); //get the cosine of angle for diagonal calculations double cos = Math.cos(angle); //diagonal pilots: need to find correct xx double short_temp = yy/Math.sqrt(2); double xx_relative = cos*xx; // to find relative angle primary angle less 45 degrees double xx_angle = angle (3.141592653589/4); // to find xx offset double xx_offset = Math.abs(Math.tan(xx_angle)*yy); double xx_adjustment = cos*xx_offset; if(L2_Pilot == 4 || L2_Pilot == 3) { this.x = h.getLength() (long)(xx_relative xx_adjustment); } else if(L2_Pilot == 1 || L2_Pilot == 2) { this.x = (long)(xx_relative xx_adjustment); } double yy_offset = Math.sqrt(yy*yy+xx_adjustment*xx_adjustment); if(L2_Pilot == 4 || L2_Pilot == 1) { this.y = h.getHeight() (long)(Math.sin(angle)*xx + yy_offset); } else if(L2_Pilot == 2 || L2_Pilot == 3) { this.y = (long)(Math.sin(angle)*xx + yy_offset); } } } } // // Designed By: Bryon Winkler Lisa Ran // international Center for Successful Aging // University of Florida // // Class Person: Calculates the Person's position by utlizing the left and // right tags position. Provides the means to retrieve the left // and right tag. Positions are in reference to house. //

PAGE 91

81 import java.lang.*; class Person { private Tag left; private Tag right; public long x; public long y; private long previous_x; private long previous_y; private double orientation; //Constructor public Person(Tag left, Tag right) { this.left = left; this.right = right; } //returns left Tag public Tag getLeft() { return this.left; } //returns right Tag public Tag getRight() { return this.right; } //Method creates string for socket communication public String getSocketString() { String socket_info; //conver to fit GUI specifications in cm int guix = (int)this.x/70; int guiy = (int)this.y/70; int guiorientation = (int)this.orientation; socket_info = Integer.toString(guix) + " + Integer.toString(guiy) + " + Integer.toString(guiorientation); return socket_info; } //Method calculates the Persons center position. public void getPosition() { //X Position this.x = (this.left.getX()-this.right.getX())/2 + this.right.getX(); //Y Position this.y = (this.left.getY()-this.right.getY())/2 + this.right.getY(); } //Method calculates the Persons Orientation in degrees public double getOrientation()

PAGE 92

82 { //Break down into eight cases. One each for 0,90,180,270 and one for each //Quadrant I, II, III, IV. 0 represent due N. Here the argument to the //right of the && signs in the first four cases represent the condition where there //is a small error representing one of the Tag positions. If the difference form one //Tag to its central position is zero. We can conclude that their orientation is //exactly 0,90,180, or 270 //For 0 if((this.left.getY() > this.right.getY()) && ((this.left.getX()this.right.getX()== 0))) orientation = 0; //For 90 else if((this.right.getX() > this.left.getX()) && ((this.left.getY()this.right.getY()== 0))) orientation = 90; //For 180 else if((this.left.getY() < this.right.getY()) && ((this.left.getX()this.right.getX()== 0))) orientation = 180; //For 270 else if((this.right.getX() < this.left.getX()) && ((this.left.getY()this.right.getY()== 0))) orientation = 270; //For Quad 0 < orientation < 90 else if((this.right.getX() > this.left.getX()) && (this.left.getY() > this.right.getY())) { double x_orient = (double)(this.right.getX() this.x); double y_orient = (double)(this.y this.right.getY()); orientation = Math.toDegrees(Math.atan(x_orient/y_orient)); } //For 90 < orientation < 180 else if((this.right.getX() > this.left.getX()) && (this.left.getY() < this.right.getY())) { double x_orient = this.right.getX()-this.x; double y_orient = this.right.getY() this.y; orientation = 180Math.toDegrees(Math.atan(x_orient/y_orient)); } //For 180 < orientation < 270 else if((this.right.getX()< this.left.getX()) && (this.left.getY() < this.right.getY())) { double x_orient = this.left.getX() this.x; double y_orient = this.y-this.left.getY(); orientation = 180+Math.toDegrees(Math.atan(x_orient/y_orient)); } //For 270 < orientation < 360 else { double x_orient = this.left.getX() this.x; double y_orient = this.left.getY() this.y; orientation = 360 Math.toDegrees(Math.atan(x_orient/y_orient)); } return orientation; } } /*********************************************************************

PAGE 93

83 // Designed BY: Bryon Winkler // House Object /********************************************************************* import java.lang.*; class House { PRIVATE LONG HEIGHT; private long length; public House(long length, long height) { this.height = height; this.length = length; } public long getLength() { return this.length; } public long getHeight() { return this.height; } } //********************************************************** /* @(#)SerialConnectionException.java 1.3 98/06/04 SMI * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved. */ PUBLIC CLASS SERIALCONNECTIONEXCEPTION EXTENDS EXCEPTION { /** Constructs a SerialConnectionException with the specified detail message. * @param s the detail message. */ public SerialConnectionException(String str) { super(str); } /** Constructs a SerialConnectionException with no detail message. */ public SerialConnectionException() { super();

PAGE 94

84 } } //****************************************************************** /* University of Florida Computer Information Sciences Engineering Department Bryon Winkler * This program was modified to remove all refereences to the SerialDemo example in the Javax.comm package Parameters for this program remain unchanged making the above mentioned class unneccesary * @(#)SerialConnection.java 1.6 98/07/17 SMI * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved. */ import javax.comm.*; import java.io.*; import java.awt.event.*; import java.util.TooManyListenersException; /** A class that handles the details of a serial connection. Reads from one TextArea and writes to a second TextArea. Holds the state of the connection. */ public class SerialConnection implements SerialPortEventListener { public OutputStream os; public InputStream is; private Location parent; private CommPortIdentifier portId; private SerialPort sPort; private boolean open; /** Creates a SerialConnection object and initilizes variables passed in as params. @param parent A SerialDemo object. @param parameters A SerialParameters object. @param messageAreaOut The TextArea that messages that are to be sent out of the serial port are entered into. @param messageAreaIn The TextArea that messages comming into the serial port are displayed on. */ public SerialConnection() { open = false; } /**

PAGE 95

85 Attempts to open a serial connection and streams using the parameters in the SerialParameters object. If it is unsuccesfull at any step it returns the port to a closed state, throws a SerialConnectionException, and returns. Gives a timeout of 30 seconds on the portOpen to allow other applications to reliquish the port if have it open and no longer need it. */ public void openConnection() throws SerialConnectionException { // Obtain a CommPortIdentifier object for the port you want to open. try { portId = CommPortIdentifier.getPortIdentifier("COM1"); } catch (NoSuchPortException e) { throw new SerialConnectionException(e.getMessage()); } // Open the port represented by the CommPortIdentifier object. Give // the open call a relatively long timeout of 30 seconds to allow // a different application to reliquish the port if the user // wants to. try { sPort = (SerialPort)portId.open("Location", 30000); } catch (PortInUseException e) { throw new SerialConnectionException(e.getMessage()); } // Set the parameters of the connection. If they won't set, close the // port before throwing an exception. try { setConnectionParameters(); } catch (SerialConnectionException e) { sPort.close(); throw e; } // Open the input and output streams for the connection. If they won't // open, close the port before throwing an exception. try { os = sPort.getOutputStream(); is = sPort.getInputStream(); } catch (IOException e) { sPort.close(); throw new SerialConnectionException("Error opening i/o streams"); } // Add this object as an event listener for the serial port. try { sPort.addEventListener(this); } catch (TooManyListenersException e) { sPort.close();

PAGE 96

86 throw new SerialConnectionException("too many listeners added"); } // Set notifyOnDataAvailable to true to allow event driven input. sPort.notifyOnDataAvailable(true); // Set notifyOnBreakInterrup to allow event driven break handling. sPort.notifyOnBreakInterrupt(true); // Set receive timeout to allow breaking out of polling loop during // input handling. try { sPort.enableReceiveTimeout(30); } catch (UnsupportedCommOperationException e) { } open = true; } /** Sets the connection parameters to the setting in the parameters object. If set fails return the parameters object to origional settings and throw exception. */ public void setConnectionParameters() throws SerialConnectionException { // Set connection parameters, if set fails return parameters object // to original state. try { sPort.setSerialPortParams(19200,SerialPort.DATABITS_8,SerialPort.STOPBITS_2,SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) { throw new SerialConnectionException("Unsupported parameter"); } // Set flow control. try { sPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE); } catch (UnsupportedCommOperationException e) { throw new SerialConnectionException("Unsupported flow control"); } } /** Close the port and clean up associated elements. */ public void closeConnection() { // If port is alread closed just return. if (!open) { return; }

PAGE 97

87 // Check to make sure sPort has reference to avoid a NPE. if (sPort != null) { try { // close the i/o streams. os.close(); is.close(); } catch (IOException e) { System.err.println(e); } // Close the port. sPort.close(); } open = false; } /** Reports the open status of the port. @return true if port is open, false if port is closed. */ public boolean isOpen() { return open; } /** Method required to compile. If left as in original file it will steal bytes */ public void serialEvent(SerialPortEvent e) {} } //********************************************************************** //Owner.java Developed by Youssef IMPORT JAVA.AWT.*; import java.applet.*; public class Owner{ public Point Pos; public int Orient; public int Fact = 1; //to enlarge the persons head size public int ASize =30; public Owner(Point P, int Or){ Pos = new Point(P.x,P.y); Orient = Or; } public int getAntiClockWise (int or1) {//GACW if (or1 == 0) { or1 = 270; }else if ((or1 > 0) && (or1 <90)) { or1 = or1 + (180+(90-or1)); }else if ( or1 == 90 ) { or1 = 180; }else if ((or1 > 90) && (or1 <180))

PAGE 98

88 { or1 = 90 + (180 or1); }else if (or1 == 180) { or1 = 90; }else if ((or1 > 180) && (or1 <270)) { or1 = 270-or1; }else if (or1 == 270 ){ or1 = 0; }else if ((or1 > 270) && (or1 <360)) { or1 = 270 + (360-or1); }else if (or1 == 360 ) { or1 = 270; } return or1; }//GACW public void DrawOwner(Graphics gg) { Orient = getAntiClockWise (Orient); gg.fillArc(Pos.x-25,Pos.y-25,50,50,Orient,ASize); gg.fillArc(Pos.x-25,Pos.y-25,50,50,Orient+(180-ASize),ASize); gg.fillOval(Pos.x-10,Pos.y-10,20,20); }//drawOwner }//Owner //********************************************************************* //Hexamite.java Created By Youssef import java.applet.*; import java.util.*; import java.text.*; IMPORT JAVAX.SWING.*; import java.awt.event.*; import java.awt.*; import java.io.*; import java.net.*; import java.util.StringTokenizer; public class Hexamite extends JApplet implements Runnable, ActionListener { final int OriginX = 50; final int OriginY = 50; final int Factor = 1 ; final int Dominator = 1 ; Socket kkSocket = null; PrintWriter out = null; BufferedReader in = null; String fromServer= new String(); String fromUser= new String(); String Ack = new String(); BufferedReader stdIn; Thread thread; int count = 10; public int x=0,y=0,or=0,flag=0; public long xd,yd,ord;

PAGE 99

89 Owner o,oo; public void start() { thread = new Thread(this); thread.start(); } public void init(){ JButton button1 = new JButton("Start"); button1.addActionListener(this); JButton button2 = new JButton("Stop"); button2.addActionListener(this); Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); contentPane.add(button1); contentPane.add(button2); } public void run(){//r1 try {//r2 kkSocket = new Socket("Gainesville", 3333); out = new PrintWriter(kkSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream())); }//r2 catch (UnknownHostException e) {//r3 System.err.println("Don't know about host: Gainesville."); System.exit(1); }//r3 catch (IOException e) {//r4 System.err.println("Couldn't get I/O for the connection to: Gainesville."); System.exit(1); }//r4 stdIn = new BufferedReader(new InputStreamReader(System.in)); try{//r5 fromServer = in.readLine(); }//r5 catch (IOException e){//r6 System.err.println("Couldn't get I/O for the connection to: Gainesville."); System.exit(1); }//r6 while ( fromServer != null ) {//whilefromServer-r7 try {//r8 System.out.println("before repainting!"+fromServer); thread.sleep(5); }//r8 catch (InterruptedException e) {}//r9

PAGE 100

90 if (fromServer.equals("stop")) {//r10 System.exit(1); //break; }//r10 else if (fromServer.equals("start")) {//r11 fromUser = "go"; out.println(fromUser); }//r11 else if (fromServer != null ) {//r12 StringTokenizer tokenizer = new StringTokenizer(fromServer); int count = 0; while (tokenizer.hasMoreTokens()) {//whiletoken if (count == 0) {//if0 x = (Integer.valueOf(tokenizer.nextToken())).intValue(); }//if0 if (count == 1) {//if1 y = (Integer.valueOf(tokenizer.nextToken())).intValue(); }//if1 if (count == 2) {//if2 or = (Integer.valueOf(tokenizer.nextToken())).intValue(); }//if2 count++; }//whiletoken repaint(); System.out.println("here you go"); }//r12 fromUser = "go"; out.println(fromUser); try{ fromServer = in.readLine(); System.out.println("the next fromServer is ---->"+fromServer); } catch (IOException e){ System.err.println("Couldn't get I/O for the connection to: Gainesville."); System.exit(1); } }//whilefromServer } public void actionPerformed (ActionEvent e){ }

PAGE 101

91 public void paint(Graphics g){ DateFormat df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT); String str = df.format(new Date()); //Draw the date/time FontMetrics fm = g.getFontMetrics(); g.drawString(str,(getSize().width-fm.stringWidth(str)),((getSize().height fm.getHeight()))+fm.getAscent()); //choose font type g.setFont(new Font("Helvetica",Font.BOLD,24)); FontMetrics fm2 = g.getFontMetrics(); Point p2 = new Point(x+50,(417-y)+50); o = new Owner(p2,or+270); o.DrawOwner(g); DrawHouse(g,OriginX,OriginY,Factor,Dominator); } public void DrawHouse(Graphics gg,int origin_x,int origin_y,int fact,int dom){ gg.drawLine(origin_x,origin_y,((183*fact)/dom)+origin_x,origin_y); // here is the line that should be deleted and replace by 183,0 to 183,67 gg.drawLine(((183*fact)/dom)+origin_x,origin_y,((183*fact)/dom)+origin_x,((67*fact)/dom)+origin_y); gg.drawLine(((183*fact)/dom)+origin_x,((67*fact)/dom)+origin_y,((457*fact)/dom)+origin_x,((67*fact)/dom)+origin_y); gg.drawLine(((183*fact)/dom)+origin_x,origin_y,((183*fact)/dom)+origin_x,((42*fact)/dom)+origin_y); //gg.drawLine(((457*fact)/dom)+origin_x,((25*fact)/dom)+origin_y,((105*fact)/dom)+origin_x,((25*fact)/dom)+origin_y); gg.drawLine(((457*fact)/dom)+origin_x,((189*fact)/dom)+origin_y,((457*fact)/dom)+origin_x,((302*fact)/dom)+origin_y); gg.drawLine(((457*fact)/dom)+origin_x,((189*fact)/dom)+origin_y,((640*fact)/dom)+origin_x,((189*fact)/dom)+origin_y); gg.drawLine(((640*fact)/dom)+origin_x,((189*fact)/dom)+origin_y,((640*fact)/dom)+origin_x,((416*fact)/dom)+origin_y); gg.drawLine(((183*fact)/dom)+origin_x,((416*fact)/dom)+origin_y,((183*fact)/dom)+origin_x,((325*fact)/dom)+origin_y); gg.drawLine(((183*fact)/dom)+origin_x,((416*fact)/dom)+origin_y,((457*fact)/dom)+origin_x,((416*fact)/dom)+origin_y); gg.drawLine(origin_x,origin_y,origin_x,((416*fact)/dom)+origin_y); gg.drawLine(origin_x,((193*fact)/dom)+origin_y,((183*fact)/dom)+origin_x,((193*fact)/dom)+origin_y); // this is the door //gg.drawLine(((457*fact)/dom)+origin_x,((25*fact)/dom)+origin_y,((105*fact)/dom)+origin_x,((25*fact)/dom)+origin_y); } }

PAGE 102

APPENDIX B DATA This appendix is a collection of the data used in Chapter 6. All distance figures are in millimeters except for the Error, which is in centimeters. The sets are labeled one through six with up to 4 sub parts each. The diagram bellow shows the test setup. Each sub-part is numbered based on the right tag position and each section has its number in a box. 6 5 4 3 2 1 1 1 1 1 1 2 4 2 22 2 2 3 3 3 3 3 3 4 4 4 4 Figure B-1 Test Positions Note: Tests 21 and 34 were not considered in the analysis because key tests were conducted during these tests. 92

PAGE 103

93 3839 3021 2840 Set11 3849 2999 2840 3850 2977 2840 3845 2996 2840 3838 3010 2840 3850 2997 2845 3838 3010 2840 3843 3009 2840 3845 2993 2844 3844 2995 2840 3850 2983 3869 3864 3865 3869 3869 3866 3869 3869 3869 3869 3864 2841 3833 3020 3864 2840 3845 2987 3866 2845 3850 2986 3864 2841 3846 2987 3865 2839 3842 3013 3869 2843 3849 2985 3869 2843 3842 3002 3864 2841 3839 3008 3865 2844 3838 3010 3865 2844 3856 2974 3865 2847 3844 2998 3864 2840 3851 2984 3864 2841 3850 2986 3869 2845 3844 3009 3870 2846 3845 2996 3866 2845 3851 2986 3865 2841 3839 3001 3865 2841 3844 3009 3866 2845 3833 3011 3865 2844 3849 2988 3869 2843 3842 3002 3866 2845 3848 3001 3866 2845 3849 2996 3864 2841 3853 2989 3868 2839 3844 2986 3869 2843 3845 2987 3870 2844 3839 2999 3871 2843

PAGE 104

94 3851 2973 3865 2845 3843 3000 3864 2840 3843 3000 3869 2844 3850 2986 3870 2844 3843 3011 3869 2843 3843 2997 3868 2843 3845 2984 3864 2841 3843 2997 3864 2840 3847 2985 3865 2841 3847 2987 3865 2841 3846 2987 3869 2839 3852 2984 3865 2846 3833 3022 3865 2846 3850 2986 3864 2840 3849 2996 3866 2845 3842 3011 3864 2840 3848 3001 3869 2843 3849 2999 3869 2843 3845 2984 3864 2840 RightX RightY LeftX LeftY Person Average x y 3845.088 2996.14 3866.544 2842.316 3855.816 2919.228 Max 3856 3022 3871 2847 Min 3833 2973 3864 2839 Real 3850 3092 3960 2775 3905 2933.5 Difference Average -4.91228 -95.8596 -93.4561 67.31579 -49.1842 -14.2719 5.121303 Bad 4

PAGE 105

95 3838 2946 4057 3075 Set12 3828 2964 4063 3073 3824 2973 4057 3075 3854 2915 4057 3075 3860 2913 4058 3074 3847 2932 4064 3073 3842 2940 4060 3081 3844 2939 4059 3076 3847 2932 4059 3075 3848 2938 4059 3076 3827 2960 4059 3076 3855 2916 4060 3077 3828 2959 4059 3075 3845 2926 4060 3077 3825 2973 4059 3076 3847 2929 4059 3075 3837 2942 4059 3076 3855 2916 4060 3077 3843 2933 4060 3077 3841 2933 4060 3074 3845 2926 4059 3076 3851 2922 4057 3075 3846 2930 4058 3074 3851 2930 4057 3075 3842 2938 4063 3073 3829 2963 4064 3073 3847 2932 4059 3076 3850 2917 4059 3076 3859 2909 4059 3076 3842 2934 4060 3077 3825 2974 4059 3076 3824 2967 4064 3073 3854 2909 4059 3075 3829 2965 4060 3080 3851 2930 4059 3076 3851 2924 4060 3081 3842 2940 4064 3075 3831 2971 4064 3072 3838 2948 4059 3076

PAGE 106

96 3847 2931 4060 3074 3834 2956 4059 3075 3830 2972 4059 3076 3851 2923 4059 3076 3842 2938 4058 3073 3859 2906 4058 3074 3850 2923 4057 3075 3842 2939 4058 3074 3846 2930 4058 3074 3833 2956 4057 3075 3852 2922 4059 3075 3852 2920 4059 3075 3852 2928 4058 3074 3824 2965 4058 3074 3830 2962 4058 3073 3855 2919 4058 3074 3834 2962 4057 3075 3851 2922 4058 3074 3848 2938 4065 3074 3853 2929 4065 3079 3851 2924 4060 3077 RightX RightY LeftX LeftY Person Average x y 3842.967 2937.883 4059.483 3075.3 3951.225 3006.592 Max 3860 2974 4065 3081 Min 3824 2906 4057 3072 Real 3850 2910 4060 3091 3955 3000.5 Difference Error -7.03333 27.88333 -0.51667 -15.7 -3.775 6.091667 0.716652 Bad 0

PAGE 107

97 4014 2934 3882 3160 Set13 4009 2934 3879 3168 4010 2942 3874 3170 4015 2933 3879 3167 4013 2932 3879 3168 4014 2934 3882 3160 4015 2933 3878 3162 4016 2934 3876 3175 4009 2934 3879 3168 4014 2934 3874 3170 4014 2934 3879 3168 4016 2934 3874 3171 4016 2934 3878 3162 4016 2934 3880 3169 4016 2934 3882 3160 4016 2934 3880 3168 4016 2934 3880 3168 4016 2933 3880 3168 4016 2934 3879 3169 4016 2934 3880 3168 4015 2933 3878 3162 4014 2934 3882 3161 4016 2934 3882 3161 4016 2933 3879 3168 4009 2935 3878 3162 4016 2934 3879 3169 4016 2934 3880 3168 4016 2934 3874 3172 4013 2933 3874 3171 4014 2931 3882 3160 4013 2933 3879 3168 4013 2933 3874 3170 4013 2933 3878 3170 4013 2933 3882 3161 4009 2934 3878 3169 4014 2934 3874 3171 4014 2934 3880 3169 4015 2933 3880 3168

PAGE 108

98 4015 2935 3880 3168 4014 2934 3874 3171 4016 2933 3880 3169 4009 2933 3883 3161 4015 2933 3883 3160 4015 2933 3880 3168 4016 2934 3880 3168 4016 2934 3875 3172 4016 2933 3883 3161 4016 2934 3876 3170 4016 2934 3875 3171 4016 2933 3874 3171 4016 2932 3879 3167 4015 2933 3879 3168 4016 2934 3882 3161 4016 2932 3883 3159 4014 2931 3881 3159 4013 2932 3874 3170 4013 2932 3878 3167 4013 2932 3874 3168 4013 2932 3879 3168 RightX RightY LeftX LeftY Person Average X y 4014.322 2933.525 3878.627 3166.712 3946.475 3050.119 Max 4016 2942 3883 3175 Min 4009 2931 3874 3159 Real 4030 2890 3900 3120 3965 3005 Difference Error -15.678 43.52542 -21.3729 46.71186 -18.5254 45.11864 5 Bad 1

PAGE 109

99 3876 3264 3690 3004 Set14 3872 3272 3692 3001 3876 3263 3690 3000 3875 3263 3684 3003 3875 3263 3684 3003 3876 3262 3685 2996 3873 3273 3690 3004 3871 3272 3685 3004 3872 3272 3689 2995 3878 3254 3685 3002 3875 3263 3684 3003 3874 3264 3689 3002 3872 3271 3692 3007 3873 3278 3688 2994 3874 3264 3683 2998 3875 3262 3684 3003 3872 3273 3684 3003 3874 3264 3684 3003 3875 3263 3687 3010 3875 3263 3685 3002 3874 3264 3689 3002 3871 3272 3688 2994 3878 3255 3690 3004 3874 3264 3690 3004 3881 3247 3684 3003 3877 3256 3692 3007 3880 3260 3689 3002 3878 3255 3690 3004 3886 3238 3690 3004 3872 3272 3689 2995 3878 3257 3685 3004 3875 3264 3690 3004 3873 3272 3691 3002 3876 3263 3691 3002 3875 3264 3690 3004 3875 3264 3692 3009 3878 3269 3690 3004 3875 3264 3684 3003 3875 3264 3688 2995

PAGE 110

100 3872 3272 3690 3004 3872 3273 3691 3002 3876 3263 3686 3004 3875 3264 3690 3004 3876 3263 3684 3003 3880 3256 3690 3004 3872 3272 3685 3002 3873 3278 3684 3003 3875 3263 3689 3002 3874 3264 3690 3004 3876 3264 3690 3004 3873 3272 3691 3002 3873 3274 3685 3003 3876 3264 3686 3002 3876 3263 3689 3002 3876 3263 3690 3004 3878 3256 3686 3002 3872 3273 3686 3002 3876 3263 3690 3004 3875 3264 3690 3004 3875 3263 3685 3002 RightX RightY LeftX LeftY Average x y 3875.083 3264.567 3687.883 3002.433 3781.483 3133.5 Max 3886 3278 3692 3010 Min 3871 3238 3683 2994 Real 3990 3130 3790 2925 3890 3027.5 Difference Error -114.917 134.5667 -102.117 77.43333 -108.517 106 15.16966 Bad 1

PAGE 111

101 2672 1631 2833 1984 Set22 2668 1640 2850 1974 2665 1625 2849 1975 2666 1624 2843 1989 2667 1639 2843 1975 2671 1624 2837 1967 2668 1640 2849 1982 2665 1627 2836 1985 2669 1626 2810 1983 2674 1618 2842 1968 2660 1633 2833 1974 2665 1633 2831 1977 2669 1626 2842 1967 2671 1633 2837 1983 2669 1626 2831 1975 2669 1626 2842 1985 2669 1626 2836 1985 2665 1633 2852 1969 2669 1625 2848 1982 2670 1623 2853 1972 2661 1640 2841 1967 2671 1633 2848 1975 2664 1625 2848 1982 2665 1633 2848 1974 2664 1632 2856 1975 2659 1633 2665 1640 2668 1618 2665 1633 2660 1632 2666 1632 2669 1625 2669 1625 2664 1633 28521981 2664 1632 28531975 2663 1634 2664 1632 28431966 2669 1624 2667 1639 2852 1976 2846 1983 2831 1982 2843 1975 2843 1975 2836 1974 2831 1975 2841 1977 2836 1975 2842 1967 2843 1966

PAGE 112

102 2664 1625 2665 1624 2667 1639 2671 1624 2666 1632 2671 1633 2665 1624 2665 1624 2666 1630 2671 1624 2671 1622 2660 1631 28431973 2665 1631 28431973 2664 1632 2665 1623 1974 2665 1631 2665 1624 1973 2666 1632 2666 1630 1973 2666 1641 2660 1631 1973 RightY LeftX LeftY Person Average x y 2666.367 1629.667 1975.352754.0081802.508 Max 1641 2856 1618 28101966 1840 260016602680 -210.333 241.65315.3574.00833 2854 1973 2838 1973 2849 1972 2831 1974 2837 1966 2849 1973 2836 1974 2832 1973 2844 1974 2848 1980 2850 1979 2835 1974 2831 2836 1967 2843 2836 1974 2843 2842 1985 2849 RightX 2841.65 2674 1989 Min 2659 Real 2760 1750 Difference Error -93.6333 52.50833 9.074337 bad 0

PAGE 113

103 2860 1449 Set23 2863 1471 2859 1446 2861 1479 2867 1529 2853 1454 2869 1531 2863 1471 2868 1475 2863 1471 2863 1447 2863 1471 2860 1480 2756 1866 2860 1480 2863 1471 2859 1477 2867 1499 2863 1477 2863 1502 2745 1882 2860 1476 2863 1471 2858 1474 2857 1482 2854 1457 2864 1505 2859 1446 2863 1477 2867 1503 2863 1471 2863 1471 2852 1452 2868 1502 2864 1502 2872 1499 2865 1505 2495 1891 2495 1891 2495 1891 2495 1892 2495 1891 2495 1898 2495 1891 2495 1897 2493 1893 2495 1898 2494 1892 2495 1891 2495 1898 2495 1891 2495 1898 2495 1898 2494 1892 2495 1898 2494 1892 2493 1893 2493 1893 2495 1898 2495 1898 2494 1899 2495 1891 2495 1891 2494 1892 2495 1898 2494 1899 2494 1899 2496 1896 2494 1899 2495 1892 2495 1892 2495 1891 2495 1891 2495 1891

PAGE 114

104 2865 1476 2865 1476 2863 1471 2865 1476 2865 1476 2868 1502 2863 1471 2868 1475 2869 1505 2860 1449 25001884 2864 1473 24951891 2861 1479 24951898 2860 1476 2746 1858 1891 2864 1473 2860 1452 1892 2868 1502 2746 1864 1897 2861 1455 2741 1851 1891 2875 1538 2859 1487 1890 RightX RightY LeftY Person Average x y 2853.153 1511.966 2494.9151893.4922674.0341702.729 Max 1882 25001899 1884 2720 1750 Difference Error 133.1525 -168.034 -5.08475 bad 2495 1897 2496 1896 2495 1891 2496 1890 2495 1891 2495 1891 2495 1891 2494 1892 2495 1891 2495 1891 2495 2495 1891 2494 2496 1896 2495 2495 1898 2495 2496 1890 2496 LeftX 2875 Min 2741 1446 2493 Real 1680 2500 1820 2610 73.49153 64.0339 -47.2712 7.959212 2

PAGE 115

105 2783 1571 25071775 S1568 25041770 25081774 1769 2783 2789 1597 2788 1598 25062788 1598 250517692786 1592 25051769 1594 25061768 25021775 2788 1598 25051769 2782 2783 1568 2788 1594 25072788 1594 250617672788 1594 25071766 1593 25081767 25031766 1767 2791 2780 1559 2785 1585 25062788 1598 250617692790 1589 25061767 1588 25061769 25061767 1767 2785 2788 1594 2791 1589 25062788 1594 249817742793 1599 25061767 1597 25061767 25061767 et24 2782 2783 1564 2789 1602 2505 2788 1594 2507 1768 1571 2505 1769 2507 1766 1769 2788 2785 1588 2788 1594 2506 1768 1565 2506 1767 2508 1774 1766 2789 2792 1592 2792 1592 2506 2785 1588 2506 1769 1589 2507 1768 2507 1776 1767 2785 2787 1565 2782 1565 2506 2790 1589 2506 1769 1585 2507 1768 2508 1775 1769 2789 2793 1595

PAGE 116

106 2792 1592 2506 1767 2783 2789 1597 2790 1600 25062781 1570 250617672788 1598 25061767 1597 25081767 25061768 1767 2789 2788 1594 2782 1565 25072789 1597 250717762780 1567 25071768 1598 25061769 2779 1564 25071770 2792 1592 25081770 2786 1588 25071769 2789 RightX RightY LeftX LeftY Person x y 2787.2 1587.233 2506.051769.2832646.6251678.258 1602 25081781 Min 2779 1559 1766 2570173026901800 Difference Error -22.8 -282.767 -63.9539.28333-43.375-121.742 bad 0 2785 1570 2506 1767 1568 2506 1767 2507 1766 1767 2789 2793 1595 2788 1598 2506 2792 1596 2507 1776 1602 2505 1769 2506 1769 1777 2788 1597 2505 1781 Average Max 2793 2498 Real 2810 1870 12.92379

PAGE 117

107 1124 3579 1280 3194 Set31 1106 3539 1270 3199 1101 3530 1270 3199 1132 3596 1263 3197 1106 3540 1263 3197 1140 3613 1262 3197 1136 3605 1263 3197 1136 3606 1260 3184 1105 3540 1276 3207 1132 3598 1262 3199 1136 3605 1254 3195 1125 3581 1267 3205 1136 3606 1264 3192 863 3206 1262 3197 1136 3605 1270 3199 1142 3619 1263 3197 1140 3614 1268 3206 834 3178 1266 3203 832 3176 1268 3206 863 3206 1270 3199 869 3213 1267 3205 876 3219 1270 3201 838 3182 1264 3192 833 3177 1260 3203 1118 3564 1271 3200 832 3176 1265 3191 1128 3588 1265 3210 826 3171 1265 3191 854 3197 1268 3199 862 3206 1260 3203 861 3205 1269 3200 1135 3604 1262 3197 831 3177 1264 3192 809 3157 1262 3197 845 3188 1269 3207 801 3153 1268 3199 1122 3574 1255 3196

PAGE 118

108 1136 3607 1267 3205 834 3177 12643197 RightY LeftX LeftY 3619 1280 3149 12543184 3370 117032001090-0.78947 95.87719-1.3859629.17544 1121 3573 1268 3206 833 3177 1262 3197 848 3191 1273 3213 848 3191 1260 3204 834 3178 1263 3189 801 3149 1268 3205 848 3191 1263 3195 841 3185 1270 3199 841 3185 1265 3190 854 3197 1271 3199 839 3182 1271 3199 871 3214 1258 3190 835 3178 1268 3203 1141 3614 1271 3198 1138 3606 1272 3200 1126 3580 1265 3198 847 3189 1265 3191 1130 3588 1266 3191 RightX Person Average x y 972.4737 3369.211 1265.877 3198.614 1119.175 3283.912 Max 1142 3213 Min 801 Real 1010 3285 Difference Error -37.5263 -1.08772 2.919571 bad 1

PAGE 119

1160 3321 1171 3374 Set32 3383 1161 1173 1158 1156 1168 1162 1171 1167 3337 11763380 1162 3322 11743377 1177 1187 3362 11803389 1174 1162 1162 1155 3315 1177 3384 1153 3320 1170 3372 1147 3318 1177 3384 1156 3315 1177 3384 1159 3320 1178 3385 1160 3321 1177 3384 1146 3310 1171 3374 1158 3328 1177 3384 1155 3314 1177 3384 1176 3346 1171 3372 1176 3346 1169 3370 1173 3339 1177 3382 1170 3337 1177 3382 1158 3316 1171 3372 1184 3366 1178 1154 3320 1178 3383 1182 3354 1176 3380 1173 3339 1175 3378 1186 3360 1177 3382 1156 3314 1170 3370 1157 3315 1177 3382 1162 3322 1178 3379 3321 1173 3371 3339 1178 3379 3314 1182 3380 3320 1177 3382 3331 1291 3476 3322 1176 3380 3343 1177 3378 3345 1170 3370 3351 1174 3377 3322 1170 3370 3322 1170 3370 109

PAGE 120

110 1157 1156 1166 1188 1160 1166 1163 1160 1162 1160 3322 11753380 1168 3331 11743379 1160 1170 3336 11713374 1186 1158 3317 11633359 1162 3322 11783385 1160 1167 3325 11783385 1156 RightX LeftX LeftY Person Average x y 1164.661 3328.661 1176.5893379.768Max 1188 3366 12913476Min 1146 3310 11633359Real 990 3210 11603400Difference 174.6607 118.6607 16.58929-20.2321 bad 4 3315 1171 3372 3314 1174 3377 3329 1178 3391 3363 1168 3367 3320 1177 3378 3328 1170 3370 3317 1176 3382 3322 1175 3380 3317 1177 3384 3322 1170 3372 3360 1178 3383 3322 1171 3374 3316 1171 3372 RightY 1170.625 3354.214 1075 3305 Error 95.625 49.21429 10.75462

PAGE 121

111 1339 Set33 1322 1331 1320 1313 1324 1322 1308 1322 1310 1317 1331 1303 1322 1319 1318 1312 1312 1310 1322 1319 1318 1309 1319 1310 1315 1318 1312 1325 1316 1320 1313 1313 1326 1322 3318 1022 3401 3320 1019 3387 3336 1019 3387 3320 1012 3379 3318 1021 3399 3326 1019 3387 3315 1019 3389 3310 1020 3389 3315 1018 3388 3324 1021 3399 3326 1022 3401 3330 1019 3387 3322 1013 3379 3333 1020 3389 3319 1020 3389 3318 1012 3379 3318 1020 3398 3318 1019 3387 3324 1011 3376 3332 1019 3387 3327 1019 3387 3327 1012 3379 3310 1013 3379 3319 1021 3399 3324 1012 3379 3312 1021 3399 3327 1011 3378 3317 1015 3390 3329 1019 3387 3311 1013 3379 3318 1014 3380 3316 1015 3390 3317 1020 3398 3328 1020 3394 3331 1013 3375

PAGE 122

112 1322 1327 1319 1320 1314 1319 1319 1323 3332 10153387 1321 3319 10193387 1319 3326 10183382 1318 1329 3321 10193387 1319 1310 3322 10193387 1311 1332 3330 10133379 1312 1314 3331 10203389 1312 1315 3332 10193387 Average x y 1318.309 3322.327 1017.2183386.909Max 3336 10223401 3375 1120 3255 Difference 198.3091 202.3273 7.218182 bad 3321 1019 3384 3320 1014 3380 3326 1013 3379 3317 1022 3397 3317 1014 3380 3326 1022 3397 3326 1019 3387 3324 1014 3377 3326 1013 3384 3323 1015 3387 3316 1019 3387 3318 1018 3386 1167.764 3354.618 1339 Min 1303 3310 1011 Real 3120 1010 3390 1065 -3.09091 102.7636 99.61818 14.31228 5

PAGE 123

113 1113 645 1374539 S637 1380521 1374539 556 1113 1108 654 1117 639 13741112 647 13715481113 645 1377531 654 1367556 1113 646 1373540 540 1107 1112 647 1113 646 1371 1107 656 1366557 647 1370548 1367556 557 1107 1113 645 1107 656 13671112 647 13745401113 647 1363565 656 1367557 1371548 523 1109 1113 646 13641113 646 13675561113 645 1369554 655 1367555 1375539 et41 1118 1107 655 1108 654 1368 1108 654 1367 556 645 1377 531 1365 564 539 1108 1116 640 1373 1107 656 1380 523 655 1376 532 1374 541 546 1112 1113 645 1107 655 1366 1112 647 1370 547 655 1363 564 1371 547 557 1107 1113 646 1107 656 1386 1117 638 1377 532 655 1368 556 563 1107 1108 654

PAGE 124

114 1112 647 1376 532 1108 1111 648 1112 647 13641112 647 13765321107 656 1366558 647 1380523 1366557 532 1116 1113 646 1113 646 13701113 645 13715461108 654 1364563 1113 645 1371546 1109 654 1364563 1112 647 1370547 1109 654 1370547 RightX RightY LeftX LeftY Position Average x y 1370.931546.44831241.009597.6034 Max Min 1107 637 1130 770 13006201215695 Difference Error -18.9138 -121.241 70.93103-73.551726.00862-97.3966 Bad 2 1117 639 1371 546 654 1371 546 1374 540 563 1112 1112 647 1113 646 1377 1111 648 1370 548 640 1376 533 1371 546 547 1107 655 1367 556 1111.086 648.7586 1118 656 1386 565 1363 521 Real 10.08094

PAGE 125

115 1294 378 1396 863 Set42 872 868 880 863 871 869 857 852 852 857 869 887 854 841 856 863 867 852 858 870 853 869 864 852 847 853 821 831 829 865 850 852 850 861 850 858 853 1294 387 1408 1109 771 1399 1292 387 1404 1308 327 1398 1294 388 1391 1102 778 1399 1100 780 1394 1102 781 1391 1101 779 1390 1296 381 1394 1281 406 1400 1294 379 1407 1299 369 1402 1110 757 1388 1108 773 1396 1102 769 1398 1092 795 1406 1291 398 1391 1110 757 1395 1293 389 1399 1308 329 1391 1305 347 1404 1291 397 1396 1286 413 1391 1116 761 1390 1111 759 1386 1286 413 c1387 1286 414 1382 1291 398 1388 1283 422 1396 1286 413 c1393 1283 422 1391 1278 438 1393 1285 416 1386 1275 423 c1399 1288 406 1395 1283 423 1391

PAGE 126

116 1272 432 1401 856 876 862 858 863 841 847 857 841 852 841 858 856 836 1288 405 1386853 835 853 850 857 1310 327 1391852 855.569Max 887Min Real Difference 110.8103 -54.9138 74.2545585.56897 Bad 2 1280 409 1400 1275 423 1403 1285 415 1394 1277 423 1396 1288 405 1388 1286 407 1390 1102 769 1395 1286 405 1388 1281 422 1391 1284 412 1388 1283 414 1394 1291 397 1401 1308 338 1384 1275 423 1384 1286 407 1391 1103 767 1399 1094 792 1394 RightX RightY LeftX LeftY Person Average x y 1240.81 495.0862 1394.255 1317.532 675.3276 1310 795 1408 1092 327 1382 821 1130 550 1320 770 1225 660 Error 92.53245 15.32759 9.379333

PAGE 127

117 1330 601 1163 831 Set43 832 1335 1323 1331 1317 1326 1327 1335 1312 606 1162833 1330 598 1163832 1334 1333 591 1163831 1337 1333 1333 1340 1329 602 1161 834 1329 600 1162 833 1326 607 1163 832 1333 591 1154 833 1314 603 1163 831 1329 600 1163 832 1326 608 1163 832 1322 596 1163 832 1330 599 1163 832 1329 600 1163 832 1333 592 1162 833 1333 590 1163 831 1326 607 1158 838 1329 601 1162 833 1314 603 1163 1329 600 1163 832 1329 600 1162 833 1330 599 1163 832 1329 600 1161 834 1334 589 1163 831 1331 597 1163 831 591 1163 831 595 1163 832 597 1164 830 596 1163 831 607 1162 833 606 1158 838 591 1163 832 590 1163 832 583 1163 832 592 1162 833 591 1163 832 576 1163 832

PAGE 128

118 1329 1328 1332 1329 1333 1329 1329 1329 1313 1335 591 1163832 1333 591 1163832 1338 584 1163832 1335 1335 591 1164830 1313 1316 610 1162833 1330 1329 601 1161834 1333 RightX LeftX LeftY Person Average 1328.714 597.1429 832.2679Max 1340 610 1168838Min 1312 576 1154824Real 1250 540 1170790Difference 78.71429 57.14286 -7.8392942.26786 Bad 4 600 1163 832 601 1161 834 591 1168 824 602 1155 834 591 1163 831 600 1163 832 600 1162 833 600 1161 834 604 1163 832 591 1156 833 605 1163 832 601 1163 832 591 1162 833 RightY x y 1162.161 1245.438 714.7054 1210 665 Error 35.4375 49.70536 6.104457

PAGE 129

119 1360 Set44 1368 1365 1353 1366 1361 1366 1366 1359 1368 1375 1353 1366 1366 1362 1358 1356 1365 1359 1366 1356 1363 1357 1368 1360 1364 1360 1360 1356 1348 1366 1360 1369 1353 1362 1357 1357 875 1033 690 872 1041 686 868 1039 690 877 1033 691 867 1033 690 876 1040 689 868 1033 691 866 1041 687 888 1041 688 872 1041 688 852 1035 688 877 1033 690 867 1041 688 866 1033 690 875 1037 694 869 1029 697 882 1035 688 868 1041 687 875 1033 690 867 1041 687 882 1040 687 871 1042 685 881 1035 688 864 1035 687 875 1030 695 879 1041 687 875 1035 688 875 1041 687 882 1041 687 879 1033 690 867 1041 687 876 1041 688 871 1040 687 878 1041 688 882 1033 690 889 1039 690 889 1036 695

PAGE 130

120 1354 1365 1357 1368 1364 1359 1364 1358 1348 885 1033690 1364 870 1028698 1360 876 1039690 1356 1362 882 1041688 1360 1360 876 1033690 1359 1349 884 1040688 1364 1364 869 1033690 1357 1359 876 1038690 RightX LeftX LeftY Person Average x y 1360.776 874.3966 1036.621689.3793Max 889 1042698 683 1320 695 Difference Error 40.77586 144.3966 -43.3793 Bad 883 1039 689 868 1033 690 889 1032 692 872 1033 690 867 1032 692 868 1040 687 868 1033 690 869 1036 695 882 1033 690 876 1038 683 875 1040 688 869 1039 690 869 1034 689 RightY 1198.698 781.8879 1375 Min 1348 852 1028 Real 730 1080 660 1200 29.37931 -1.30172 86.88793 8.689768 2

PAGE 131

121 2810 955 30476732809 958 3047673 998 3047673 3047673 673 2808 2823 896 2814 924 30462814 924 30466732789 1015 3046673 971 3045654 2799 987 3046673 673 2804 2816 908 2804 972 30462814 914 30465592813 927 3046477 924 3046346 673 2809 2804 960 2819 931 30462814 943 30474582815 927 3047677 985 3047677 3047677 730 2805 2814 943 2805 970 30472805 957 30466732795 998 3047444 987 3046502 SET51 2795 2809 958 2814 924 3047 2804 954 3046 668 942 3046 650 3045 668 673 2798 2805 970 3046 2814 927 3047 691 954 3046 673 3046 673 673 2815 2800 969 3046 2800 972 3052 770 945 3051 536 3046 673 673 2804 2805 945 2804 957 3046 957 3047 673 3047 677 531 2799

PAGE 132

122 2815 940 3047630 677 2809 2819 915 2814 943 30472814 927 30467122814 927 3046673 912 3047630 3047585 677 2804 957 2810 942 30472815 924 30476732809 945 3046673 2814 927 3046730 2809 958 3047673 2809 958 3047673 2815 956 3047654 RightX RightY LeftX LeftY Average x 2809.052 948.1724 3046.138646.29312927.595797.2328 2823 1015 3052774 2789 3015346 Real 820 30305803022.5700 Difference Error -205.948 128.1724 16.1379366.2931-94.905213.5872 BAD 3 2815 943 3047 2800 972 3049 774 945 3046 673 3015 389 677 2819 2815 927 2809 958 3047 2814 943 3047 650 3046 673 766 2815 927 3047 717 Person y Max Min 896 3015 97.23276

PAGE 133

123 2988 682 3200 1129 S31901101 2984 664 320511412984 664 3201 2983 668 2979 1139 677 32051139 2979 658 319911242983 663 3194 2984 659 2979 1126 31991126 663 32051139 2983 663 319911242988 664 3205 2983 663 2978 1136 32041090 681 32041133 2979 681 321011482983 663 3209 2982 668 2973 1111 676 31941111 2978 663 319911242979 681 3199 2983 663 2983 et 52 2988 669 1129 3194 1114 681 3200 1129 2978 663 3194 1111 2978 663 3205 2980 1111 3201 1129 658 3190 1101 2983 663 3199 1124 2973 685 3199 2974 681 2983 1139 3200 1123 663 3200 1123 2979 681 3200 1123 2983 663 3205 2980 677 2979 1146 3198 1121 685 3200 1123 2983 663 3200 1123 2983 663 3195 2975 1124 3200 1123 663 3199 1124

PAGE 134

124 2983 663 3210 1148 1139 31911100 663 32011129 2983 663 320611382980 681 3215 2984 664 2980 2974 681 32211175 32061138 664 32001126 2998 660 320611382984 664 3210 2984 664 32011126 2988 664 3195 3003 RightY LeftX LeftY Person 2982.268 668.3571 3201.054 Max 3003 630 3070Difference 132.2679 2988 659 3205 2979 658 2983 1163 3200 1123 681 3201 1126 2983 663 3200 1123 2984 664 2988 1151 2979 681 3200 1123 1113 2988 664 3199 1124 2980 681 3191 1103 661 3201 1129 RightX Average x y 1127.071 3091.661 897.7143 685 3221 1175 Min 2973 658 3190 1090 Real 2850 820 2960 725 Error 38.35714 131.0536 307.0714 131.6607 172.7143 21.71745 Bad 4

PAGE 135

125 3124 3124 3119 3119 3115 3119 3124 3119 3119 3125 3119 3120 3124 3124 3134 985 29193125 958 29193115 927 29193114 924 29183125 958 29193129 967 29193119 936 29193114 924 29183124 955 2919891 3115 924 2923891 3119 939 29193129 970 2919891 3128 967 29203125 958 29203120 943 2924 3120 943 29203129 970 29193120 943 29193129 970 29233114 924 29183125 958 29243133 982 29233119 939 29203119 939 2919 955 2919 891 Set53 955 2919 887 939 2918 890 939 2919 891 927 2919 887 939 2919 887 955 2918 890 939 2919 891 939 2919 887 958 2919 887 939 2919 891 943 2920 887 955 2919 887 955 2919 891 891 891 891 880 891 891 891 890 891 894 894 895 894 891 891 891 894 891 895 894 897

PAGE 136

126 3134 985 2919891 3119 939 2923891 3119 939 29183134 985 2924 955 2918939 2918 3125 958 29203119 939 2918 3124 955 29183123 952 2918 3124 955 2919982 2918 3123 952 29182919891 3124 955 2919 3119 939 2918 3119 939 2923895 2919891 2918890 2919897 2919891 2918754 LeftX LeftY Person x y 2919.417886.53333021.133918.8083 2924897 2918754 28708302945710 49.4166756.5333376.13333208.8083 894 891 3124 890 3119 894 774 890 880 894 891 3133 894 890 3129 970 880 894 3128 970 3123 952 3124 955 3125 958 3123 952 RightX RightY Average 3122.85 951.0833 Max 3134 985 Min 3114 924 Real 3020 590 Difference Error 102.85 361.0833 22.22548 Bad 1

PAGE 137

127 2969 863 27892964 862 27892964 862 27892964 862 27902968 852 27892970 863 27902968 866 27942969 863 27902963 883 27942963 866 27942964 880 27892963 866 27942968 866 27892968 866 27922968 863 27942963 883 27932962 869 27942964 862 27892969 863 27942964 862 27932963 869 27942968 848 27952963 866 2788 2969 863 27902962 865 27892968 863 27892963 866 27952968 863 27892963 880 27952962 869 27942964 862 27952963 866 27882969 863 27942969 877 27942968 848 27942969 866 2794 2969 863 2794669 689 Set54 689 672 689 693 689 656 672 669 669 689 669 677 677 669 673 669 689 669 673 673 610 693 672 689 689 651 672 651 673 651 693 669 669 669 673

PAGE 138

128 2969 863 2789689 2964 862 27892965 862 2790 866 2789866 2789 2964 866 27942964 862 2789 2965 862 27952964 866 2789 2965 862 2790862 2795 2964 880 27902795669 2964 862 2789 2969 848 2794 2965 862 2794673 2964 862 2790689 2789677 693 2973 2963 866 RightX RightY LeftX LeftY Person x y 2791.593675.37292878.72770.0593 Min 2962 848 Real 3030 790 3010580Difference 74.74576 -218.40795.37288-141.2885.05932 2 689 672 2963 689 2963 693 673 693 669 693 689 2965 651 689 2968 852 689 669 2968 866 2968 848 2788 2973 878 2794 669 878 2794 651 2789 672 Average 2965.847 864.7458 Max 2973 883 2795 693 2788 610 3020 685 Error -64.1525 16.49092 Bad

PAGE 139

129 5091 6814828859 Set61 5091 681 5088 68748285088 68748258585090 6834832860 6864825858 4827858 859 5088 687 5095 68948345083 67948178615091 6814826857 6824825858 4825858 856 5084 5083 673 5093 69348258585089 6814825858 6864826857 4825858 858 5083 5088 687 5079 6674825 5090 6834825859 6834825859 4819857 856 5086 5090 683 5088 68848255088 68648278585095 6894819857 4827 858 859 5088 5092 682 5085 675 4828 5091 681 4825 858 4825 859 862 5090 5087 685 5093 693 4826 5090 683 4824 864 674 4826 857 4826 857 5088 5088 687 5088 687 4827 5090 683 4825 858 680 4825 859 4833 861 858 5090 5088 686 5088 686 4818 5087 685 4817 861 674 4825 859 4832 860 859

PAGE 140

130 5090 6834825859 4826860 863 5091 6804826857 5090 6834824859 5088 6874828859 5088 68648245090 6834820852 4817863 5088 6874825865 860 6844825865 5088 5088 687860 5093 69348286834826860 5090 683858 RightX LeftX LeftY Person Average x y 5088.655 683.52734825.091859.05454956.873 6934834865 6674817852 64049708105045 43.52727-144.90949.05455-88.1273 5088 686 5083 680 4817 864 5085 675 5091 684 4826 5091 687 4825 859 4826 859 5090 4825 RightY 771.2909 Max 5095 Min 5079 Real 5120 725 Difference Error -31.3455 46.29091 9.954529 Bad 2

PAGE 141

131 5000 796 4861 567 Set62 5000 796 4859 572 4999 794 4858 572 4999 795 4855 564 5000 796 4858 572 5000 796 4862 579 4999 795 4860 577 4999 794 4857 569 5000 796 4858 572 4994 788 4851 568 5000 796 607l 415 4999 794 4862 579 4999 795 4864 574 4999 794 4861 577 4999 794 4854 563 4994 788 4854 562 4999 795 4860 565 4999 794 4854 563 4999 794 4864 574 4995 789 4865 576 5000 796 4858 573 4993 787 4858 572 4999 794 4859 572 4994 788 4854 565 4998 793 4858 571 5005 802 4859 572 4999 794 4859 572 4999 795 4854 563 5000 795 4852 578 5000 796 4859 573 5000 796 4852 570 796 4854 565 4999 4859 572 5000 796 569 5006 803 4864 4994 788 4855 564 5000 796 4862 579

PAGE 142

132 5001 797 4859 573 5000 796 4858572 4993 787 4864574 4999 795 4858572 787 4855576 794 4857 793 4855575 802 4854564 RightY LeftX LeftY Person x 794.0714 4867.145 803 5354 787 4851 840 5120 -45.9286 -252.855 4999 795 4854 565 5006 4868 570 4998 793 573 4994 788 5354 4999 795 4860 566 4990 792 4864 573 4998 793 4854 562 4999 795 576 4999 794 4857 4999 568 4999 794 4855 575 4998 4993 787 4857 571 5005 794 4858 572 RightX Average y 4998.554 570.3571 803 4864 702 4993 4855 571 4999 4932.85 682.2143 Max 5006 702 Min 4990 415 Real 4970 590 5045 715 Difference Error 28.55357 -19.6429 -112.15 -32.7857 11.68445 Bad 5

PAGE 143

133 4830 783 5048 544 Set63 4826 777 4838 785 4830 783 4830 783 4828 789 4830 782 4830 783 4830 783 4818 773 5048543 4830 783 5056546 4826 776 4830 783 5059552 4826 776 4830 783 4826 777 4830 783 4830 783 4830 782 4832 777 4830 783 4830 783 4830 783 4825 775 4825 775 4833 778 4826 777 5059552 4829 783 5059552 4830 783 5060 553 4830 783 5060 553 4830 783 5061 554 4830 783 5050 543 4825 775 5059 552 4825 775 5059 552 4830 783 5051 550 4825 775 5054 543 4825 775 5055 545 4826 776 5060 553 5055 544 5055 545 5059 552 5059 552 5055 544 5059 551 5052 538 5463 962 5059 552 5054 546 5047 542 5065 561 5059 551 5059 552 5048 536 5058 553 5055 544 5059 552 5055 545 5059 552 5055 544 5058 553

PAGE 144

134 4833 778 4830 783 553 4822 779 4832 777 559 4826 776 552 4826 776 4830 783 552 4830 783 4829 781 552 770 783 5051551 4838 776 559 4828 780 551 4829 781 5055544 783 548l 782 5055544 782 5059551 782 5059552 775 5051551 783 5054546 RightY LeftX LeftY Person x 780.0862 5063.702554.67244946.239 789 5463962 770 5047439 850 50906605010 -69.9138 -26.2982-105.328-63.7612 5058 554 5058 5058 553 5055 5059 5060 553 5059 5055 545 5059 4828 5059 552 4829 5063 5059 4830 439 4830 4830 4830 4825 4830 RightX Average y 4828.776 667.3793 Max 4838 Min 4818 Real 4930 755 Difference Error -101.224 -87.6207 10.83645 Bad 2

PAGE 145

135 4928 581 Set64 4926 566 4923 559 4927 568 4920 553 4927 568 4921 564 4927 568 4920 563 4919 563 4926 566 4921 564 4931 575 4923 571 4924 570 RightX RightY Average 4924.2 566.6 Max 4931 581 Min 4919 553 Real 4920 640 Difference Error 4.2 -73.4 5.564775 Bad 0 5139 753 5139 753 5140 748 5139 753 5139 753 5139 753 5139 753 5139 753 5137 751 5138 752 5137 751 5138 752 5137 751 5143 758 5137 751 LeftX LeftY x y 5138.667 752.3333 5031.433 659.4667 5143 758 5137 748 5150 790 5035 715 -11.3333 -37.6667 -3.56667 -55.5333

PAGE 146

LIST OF REFERENCES [1] AT&T Laboratories Cambridge, The BAT Ultrasonic Location System, http://www.uk.research.att.com/bat/ September 2001 [2] Centers for Medicaid and Medicare Services, Fiscal Year Report, http://cms.hhs.gov/ July 2002 [3] Computers Unlimited, Product Page, http://www.unlimited.com/productpage.asp?family_id=7395# July 2002 [4] GPSWorld, Centimeter-Accuracy Indoor Navigation Using GPS-Like Pseudolites, http://www.gpsworld.com/gpsworld/article/articleDetail.jsp?id=3086 November 2001 [5] GPSWorld, Indoor GPS: The No-Chip Challenge, http://www.gpsworld.com/gpsworld/article/articleDetail.jsp?id=3053 September 2001 [6] Hexamite, Local Positioning System, http://www.hexamite.com/ July 2002 [7] Hightower, Jeffery SpotOn: Ad-Hoc Location Sensing, http://portolano.cs.washington.edu/projects/spoton/ July 2002 [8] Hightower, Jeffrey, and Gaetano Borriello, A Survey and Taxonomy of Location Systems for Ubiquitous Computing, http://www.cs.washington.edu/homes/jeffro/pubs/hightower2001survey/hightowe r2001survey.pdf University of Washington, February 2000 [9] Hightower, Jeffrey, and Gaetano Borriello, SpotOn: An Indoor 3D Location Sensing Technology Based on RF Signal Strength, http://www.cs.washington.edu/homes/jeffro/pubs/hightower2000indoor/hightowe r2000indoor.pdf University of Washington, February 2000 [10] Kuchibhotla, Sree, An OSGi Based Infrastructure for Smart Homes of the Future, Masters thesis, University of Florida, August 2002 [11] National Institute of Health, News Release, http://www.nia.nih.gov/news/pr/2001/1213.htm December 2001 136 [12] OSGi Initiative, about, http://www.osgi.org July 2002

PAGE 147

137 [13] Oxford University, Injuries of Aging Persons Report, http://www.jr2.ox.ac.uk/bandolier/band25/b25-2.html March 1998 [14] Priyantha, Nissanka, Anit Chakraborty, and Hari Balakrishnan, The Cricket Indoor Location System, http://nms.lcs.mit.edu/projects/cricket/ August 2000 [15] RFDigital Wireless, Product Description: RFD20043, http://www.rfdigital.com/product.htm?item=rfd24003 July 2002 [16] RFDigital Wireless, Product Description: RFD27991, http://www.rfdigital.com/product.htm?item=rfd27991 July 2002 [17] RFIDeas Inc., Proximity Activated Identification, http://www.pcprox.com/Support/AIRID/airid.html July 2002

PAGE 148

138 BIOGRAPHICAL SKETCH Bryon Winkler is an avid SCUBA dive r who lives on the water in Melbourne Beach, Florida, with his wife, Tammy, and da ughter, Rebecca. His current life pursuit is to make money so that he can spoil his family and dive in exotic places.


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

Material Information

Title: An Implementation of an ultrasonic indoor tracking system supporting the OSGI architecture of the ICTA lab
Physical Description: Mixed Material
Language: English
Creator: Winkler, Bryon ( Dissertant )
Helal, Abdelsalam A. ( Thesis advisor )
Publisher: University of Florida
Place of Publication: Gainesville, Fla.
Publication Date: 2002
Copyright Date: 2002

Subjects

Subjects / Keywords: Computer and Information Science and Engineering thesis, M.S
Home automation   ( lcsh )
Intelligent buildings   ( lcsh )
Dissertations, Academic -- UF -- Computer and Information Science and Engineering

Notes

Abstract: The International Center of Technology for Successful Aging (ICTA) at the University of Florida is focused on creating a smart environment that will enable elderly persons to live a longer and safer independent lifestyle. OSGI is the software architecture used by the ICTA lab because of its ability to allow the interoperability of heterogeneous devices through services. The primary service required to maximize the intelligence of a smart environment is an indoor tracking system. An indoor tracking system allows the smart area to make decisions to better serve its user by enabling the area design to be proactive instead of solely reactive to user commands. The objective of this thesis is to create and implement such a system. After careful consideration, ultrasonic sensors were chosen and this thesis documents the decision and implementation process.
Subject: ICTA, location, OSGI, positioning, systems, tracking, ultrasonic
General Note: Title from title page of source document.
General Note: Includes vita.
Thesis: Thesis (M.S.)--University of Florida, 2002.
Bibliography: Includes bibliographical references.
General Note: Text (Electronic thesis) in PDF format.

Record Information

Source Institution: University of Florida
Holding Location: University of Florida
Rights Management: All rights reserved by the source institution and holding location.
Resource Identifier: aleph - 002898420
System ID: UFE0000617:00001

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

Material Information

Title: An Implementation of an ultrasonic indoor tracking system supporting the OSGI architecture of the ICTA lab
Physical Description: Mixed Material
Language: English
Creator: Winkler, Bryon ( Dissertant )
Helal, Abdelsalam A. ( Thesis advisor )
Publisher: University of Florida
Place of Publication: Gainesville, Fla.
Publication Date: 2002
Copyright Date: 2002

Subjects

Subjects / Keywords: Computer and Information Science and Engineering thesis, M.S
Home automation   ( lcsh )
Intelligent buildings   ( lcsh )
Dissertations, Academic -- UF -- Computer and Information Science and Engineering

Notes

Abstract: The International Center of Technology for Successful Aging (ICTA) at the University of Florida is focused on creating a smart environment that will enable elderly persons to live a longer and safer independent lifestyle. OSGI is the software architecture used by the ICTA lab because of its ability to allow the interoperability of heterogeneous devices through services. The primary service required to maximize the intelligence of a smart environment is an indoor tracking system. An indoor tracking system allows the smart area to make decisions to better serve its user by enabling the area design to be proactive instead of solely reactive to user commands. The objective of this thesis is to create and implement such a system. After careful consideration, ultrasonic sensors were chosen and this thesis documents the decision and implementation process.
Subject: ICTA, location, OSGI, positioning, systems, tracking, ultrasonic
General Note: Title from title page of source document.
General Note: Includes vita.
Thesis: Thesis (M.S.)--University of Florida, 2002.
Bibliography: Includes bibliographical references.
General Note: Text (Electronic thesis) in PDF format.

Record Information

Source Institution: University of Florida
Holding Location: University of Florida
Rights Management: All rights reserved by the source institution and holding location.
Resource Identifier: aleph - 002898420
System ID: UFE0000617:00001


This item has the following downloads:


Full Text











AN IMPLEMENTATION OF AN ULTRASONIC INDOOR TRACKING SYSTEM
SUPPORTING THE OSGI ARCHITECTURE OF THE ICTA LAB













BY

BRYON WINKLER


A THESIS PRESENTED TO THE GRADUATE SCHOOL
OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT
OF THE REQUIREMENTS FOR THE DEGREE OF
MASTER OF SCIENCE

UNIVERSITY OF FLORIDA


2002




























Copyright 2002

by

Bryon Winkler




























To my wife Tammy for all of her love and willingness to be left alone every weekend this
summer. To my baby girl, Rebecca, for making me smile more each and everyday.
















ACKNOWLEDGMENTS

I would like to thank Dr. Sumi Helal for all his work, guidance, and financial support

as chairman of my committee. I would like Dr. Bermudez for many a good dive and

paradigm shifts. I would like to thank Dr. Wilson for Unix knowledge and his

commitment.

Also, I thank Youssef Kaddoura for the GUI, Sree Kuchibhotla for OSGi help, Paul

Bennett for hardware design and assembly, and Lisa Ran for her help on numerous test

runs, code editing, and questions.














TABLE OF CONTENTS
Page

A C K N O W LE D G E M E N T S ....................................................................... ................... iv

LIST O F TA BLE S ............... ...................................... ............ ............ vii

LIST O F FIGU RE S ...................................................... .......... .............. .. viii

A B S T R A C T ................................................................................................... . x


CHAPTERS

1 IN T R O D U C T IO N ................... .... .............................. ........ ....... .. .......... .

1.1 Sm art E nvironm ent ................................................................. ................. 2
1.2 T h esis O v erv iew ..................................................... ................ .. 3

2 CURRENT LOCATION SYSTEM S ........................................... .......................... 5

2.1 Positioning System s ..................................................... .......... .......... 5
2.2 Tracking System s .................. ................................ .. ...... ................ .6
2.3 Exisiting System s..................................................... 6
2.3.1 Low Frequency.....................................................6...
2.3.2 A IR ID ...................... ........ ...... .......... ....................
2 .3 .3 U ltrasonic ................................................................. ............ 11
2.3.3.1 A T& T B A T System .................................... ... ................... ........... 12
2.3.3.2 Hexamite Local Positioning System .................................................15
2 .3 .4 Infra R ed .................................................................................. 16
2 .3 .5 M otion D etectors ............................................................ ...................... 17
2 .3 .6 G P S ........................... ................................................ 1 7
2.3.7 H ybrid System s (M IT C ricket) ............................................. .................... 19

3 THE PROBLEM ........... .. .. .. ........ ........... ......22

4 O S G i ..........................................................................2 4

4.1 O SG i A architecture ........................ .................. ...... ........... .........24
4.2 Service ................................................. 26
4 .3 B undle ............... .... ................. ............................................27
4 .4 H ex am ite B undles .................................................................. ... ..... ... ....... 2 8
4.4.1 H exam ite Softw are..................................................................... ............... 28
4.4.2 Hexamite As a Service on OSGi....................................................... 29


v











5 TH E PR O TO TY PE ........................................................................................ ......... 31

5 .1 H ard w are ............................... .......... ................................... 3 1
5.1.1 Setup String s .......................... ....................................... .... .. ..36
5.1.2 D instance Strings ............................ ...................... .. .............. .............39
5.2 Custom Softw are....... ..... .. ...... ......... .. ......... .... .. .. .... .. .... ..............40
5 .2 .1 S erial C on n section s ........................................ ..........................................4 0
5.2.2 Softw are Setup ...................... .................. ................... .........4 1
5.2.3 D instance String Breakdow n ........................................ ........................ 42
5 .2 .4 T rilateration ......... ................................................................... .... .... .... .. 4 5
5.2.5 Orientation ................ ... .......................... ........ .... ........ 48
5 .2 .6 G U I ............................................................................................................ 4 9

6 D A TA A N A L Y SIS ......... .. .................................................... ......... ........ 50

6 .1 T est P ro cess ....................................................... 5 1
6.1.1 M atilda ....................................................................................... ................. 51
6 .1.2 R eal X an d Y .............................................................53
6.1.2.1 M parking the G round......................................... .......................... 53
6.1.2 .2 M easuring ................................................... .. ......... ........... 54
6 .1 .3 T e st L o c atio n ............................................................................................. 5 5
6 .1 .4 R e su lts ................................................... ....................................5 6
6 .2 E rro rs ................................................................................................................... 5 7
6.2 .1 A b solute E errors ............................................................57
6.2.2 R effective E rrors ................................................ ............... 59
6.2.3 Environmental Errors ........................................ 61
6.2.4 C alculation Errors ............................................... ............... 62
6 .3 H eight E effects ................................................................62
6.4 Data Analysis Conclusion..................................... ......... 63

7 FU TU RE W ORK ......................................................... 64

8 C O N C L U SIO N ...............................................................................................66

APPENDIX

A CUSTOM SOFTWARE CODE .......................................................... ...................... ....67

B D A T A ............... ... ...........................................................9 2

LIST OF REFERENCES ........................ ......... ......... 136

BIOGRAPHICAL SKETCH ................ ........ ................138
















LIST OF TABLES

Table page

5.1 HE900T Pin Order .................. .......................................... .. .............. 36

5-2 Setup Strings ................................................................... 37

5 -3 P C B B its ............................................................................................................... 3 7

5-4 Pilot C om m hands ........................ .. ........................ .. .... ......... ........ 41

5-5 C alculation E xam ple............ ... ............................................................. ........ .. ....... .. 44

5-6 T rilateration F orm ula........... ...... ...................................... ................ ........... ...... 45

6 -1 A ctu al E rror ......... ......................................................................................57
















LIST OF FIGURES

Figure page


1-1 A rchitectu re O v erview ..................................................................... .....................3

2-1 Low cost R F transm hitter ......... ...................................................... ...................... 7

2-2 M edium cost assem bled unit ............................................... ............................ 7

2-3 A IR ID System ............... ........ .................................................... 9

2-4 Triangulation with modified ranges................. .............................. ...............10

2-5 Computer Unlimited's Virtual Ink M em o............................................................... 12

2-6 B A T B eacon ........................................... ............................. 13

2 -7 B A T P ilo t............................................................................................................. 1 3

2-8 B A T System ................................................................... 14

2 -9 "n o-chip solution .......... ............................................................................. .. .... 18

2-10 Psuedolite System ................................................... .............. .. ...... 19

2 -1 1 C rick et P ilot ..................................................................... 2 1

4-1 O SG i A architecture ......... ................................................................... 25

4-2 Bundle State Transition D iagram ........................................ ......................... 27

4-3 H exam ite Structure ........................................... ............. .......... .... 28

4-4 O SG i H exam ite Bundle ............................................................ .......29

5 -1 H E 9 0 0 M ........................................................................................ 3 1

5-2 Area of Coverage .................................................. ............. .... ..... 32

5-3 ICTA Pilot Positions .............................................. ........ .............. .. 33

5-4 Pilot Adjustable Base.................... ................................. .. 34









5 -5 H E 9 0 0 T ................................................................................................. ............... 3 5

5-6 D instance C calculation s ........................................................................ ................... 43

5-7 T rilateration G raph ........................................................................... ....................4 5

5-8 B asic Trilateration C ase.................................................... ............................... 46

5-9 Advanced Trilateration Case .............................................................................48

5-10 O orientation ......... ..... ................................................................... ........... 49

6-1 Stationary Test .............................................. ................. 50

6 -2 M a tild a .................................................................................................................. 5 2

6-3 Styrofoam Measurements .......................................................... ...............53

6-4 P ilot B order M easurem ents .................................................................................. 54

6 -5 G ro u n d P o sitio n s .................................................................................................. 5 5

6 -6 T e st P o sitio n s ........................................................................................................ 5 6

6 -7 A b solu te E rror T est .............................................................................................. 5 8

6-8 Shortest Distance Pilot Angle.............................. ...............59

6 -9 R eflectiv e E rro r .................................................................................................... 6 0

6-10 Receive Angle Error ............... .......... .............. 60

6 -1 1 K ey T est.......................................................62

B -i T e st P o sitio n s ....................................................................................................... 9 2


















ix















Abstract of Thesis Presented to the Graduate School
of the University of Florida in Partial Fulfillment of the
Requirements for the Degree of Master of Science

AN IMPLEMENTATION OF AN INDOOR ULTRASONIC TRACKING SYSTEM
SUPPORTING THE OSGI ARCHITECTURE OF THE ICTA LAB

By

Bryon Winkler

December 2002


Chair: Dr. Sumi Helal
Major Department: Computer and Information Sciences and Engineering

The International Center of Technology for Successful Aging (ICTA) at the

University of Florida is focused on creating a smart environment that will enable elderly

persons to live a longer and safer independent lifestyle. OSGI is the software architecture

used by the ICTA lab because of its ability to allow the interoperability of heterogeneous

devices through services.

The primary service required to maximize the intelligence of a smart environment

is an indoor tracking system. An indoor tracking system allows the smart area to make

decisions to better serve its user by enabling the area design to be proactive instead of

solely reactive to user commands. The objective of this thesis is to create and implement

such a system. After careful consideration, ultrasonic sensors were chosen and this thesis

documents the decision and implementation process.
















CHAPTER 1
INTRODUCTION

The world population of people over the age of 65 is growing rapidly at a rate of

800,000 per month [13]. Eventually, many of these people reach a point where they can

no longer live independently. Moving an elderly person into a nursing home often

involves huge economic and emotional burdens. Many times, they are not able to pay the

large deposits to move into assisted living facilities themselves, so they turn to the

government for funding. Medicare spends approximately 1.5 billion dollars more per

year for hospitalization and housing for individuals who live in a nursing home than for

those that live independently on their own [2]. It is well documented that those who live

in nursing homes tend to require more hospitalizations and doctors visits. Once moved

into a facility, it is common for them to become depressed because of their lack of

independence and to give up on life. It is in everyone's best interest for people to live

independently for as long as possible. Technology could lay an important role by

providing a smart environment that aids the elderly in being independent. One possibility

for this environment is a "smart home."

As seniors near the stage were others are talking to them about assisted living,

physical or mental challenges may impede them from completing the day-to-day

activities necessary to keep living independently. Smart homes will compensate for this

impediment by providing a mechanism to easily perform tasks in the case of physical

impairments, execute forgotten tasks to compensate for mental lapses, and provide an











overall safer environment through quick access to outside resources in the case of an

emergency.

The mechanism used to make life easier is called a "magic wand." A magic wand is

usually a smart phone or PDA that allows the user to remotely control some of the

services provided by the smart home. Mental lapses are handled through preprogrammed

actions that are triggered by complex behavior algorithms or through users desires

acknowledged during setup. An example is in the case of Alzheimer patients that need

flashing objects to snap them out of trances. Here, preprogrammed actions use complex

behavior algorithms to initiate flashing sequences in the proper device.

We have all heard the phrase "I have fallen and I can't get up!" Younger people see

this as ajoke, but to elderly persons who live alone this is both a life-threatening situation

and big cause of daily stress. Approximately 57,000 people, with 85% being over the age

of 65, fall prey to hip fractures each year [11]. An elderly person who has fallen and

broken a hip is immobile and, without assistance, could stay where they fell for days.

The magic wand would allow a fallen user to call for help by dialing 911. Also, a

location system could sense that a client is immobile in a preprogrammed non-sleeping

area. The central computer would then signal a designated care provider or friend to

check on the user.

1.1 Smart Environment

A smart home environment consists of two main parts, the central computer that

performs all necessary calculations, and an indoor network of devices that answer the

requests of the central computer. These requests can be thought of as the services

provided by the smart home. The figure below illustrates how services act as a layer











between the user and the central computer. It also lists some of the common services

provided by a smart home. All services are made aware of each other through the central

computer.




Flash Object


Health >


Central Emergency
Computer
X10


Room


Location



Figure 1-1 Architecture Overview

The backbone of all the services is the location service. This service provides the basic

information that enables most of the other services to function properly.

1.2 Thesis Overview

The paper that follows is a description of the best choice for a low cost, accurate, and

reliable indoor location system. This location system is installed and operational in the

ICTA lab. In order to make a choice on what system to create or use, an in-depth study

of the current methods available had to be undertaken. The results of this effort are listed

in chapter 2. Chapter 4 discusses the ICTA lab's decision to use the OSGi architecture

and gives a description of it. The actual location system is covered in chapter 5 with an






4



analysis of the data from testing it in chapter 6. Future work and implementations is

covered in chapter 7. The paper finishes with a conclusion and two appendixes providing

both the code used for our system and the data from testing.
















CHAPTER 2
CURRENT LOCATION SYSTEMS

There are three basic different methods used to acquiring a person's location indoors.

It should be noted there is not a set standard to define the methods. This paper uses the

most popular definition, but some engineers use the terminology interchangeably. The

current methods or systems are grouped into one of three categories: positioning,

tracking, and hybrid. To remain consistent with the location system proposed, stationary

devices are called pilots and mobile devices are considered to be beacons.

2.1 Positioning Systems

With positioning systems, the environment provides the means to determine location

and pushes the information to the end user for location calculations. The objective

behind this kind of system is user privacy, which enables the user to determine the

available resources in any given area they are currently in. With positioning systems,

pilots are used to send location information to the mobile beacons. The beacons can be

viewed as pulling the information from the surrounding environment. The location

information conveyed is area identification or distance signals. Area identification is

used to determine general spatial information. With distance signals the mobile receiver

pings all devices in a room, uses a handshake protocol to acquire distance information

from a transmitter, and makes the necessary trilateration or triangulation calculations to

acquire the location in a particular area. This type of system is ideal for the business











sector where employees are reluctant to use a system where their position is constantly

monitored.

2.2 Tracking Systems

Tracking systems are almost the complete inverse of positioning systems. The

difference is that instead of the mobile user pulling information from the environment, it

pushes location information to the environment. Here pilots ping the beacon in a

synchronized manner and concatenate the location information into one giant string. The

string is sent to a central computer that calculates the exact location per area. Location

information in a tracking system is the beacon ID and its respective distance from the

pilot. Tracking systems, if set up correctly, can have an accuracy range of .3 mm.

Another difference from positioning systems is that tracking systems focus on avoiding

user privacy. Tracking systems are ideal for environments where knowing the user's

location can change certain conditions that can make life easier, simpler, or safer. Users

of tracking systems range from elderly or disabled persons to prisoners.

2.3 Existing Systems

The systems described above use a myriad of different techniques to obtain a person's

indoor position. The most common are low frequency RF, infrared, ultrasonic, and GPS.

A detailed explanation with at least one example of each is given below.

2.3.1 Low Frequency

Low frequency sensors in terms of tracking and positioning systems tend to work in

the 418 MHz, 433 MHz, or 900 MHz spectrums. An advantage to this technique is that

RF transmitters, receivers, and transceivers can be inexpensive [15].





















Figure 2-1 Low Cost RF Transmitter

The main components necessary to create a RF location device are a transmitter,

receiver, micro controller, antenna, board, and usually a RS232 serial connector. Here is

a pre-assembled medium cost device that can be purchased from RF Digital Corporation

with an educational discount, as of summer 2002, for $120 [16].














Figure 2-2 Medium Cost Assembled Unit

The RF technique can be used to create a location system that is accurate per area or

accurate within 3 meters in area without interference. This technique is commonly used

in positioning and hybrid systems for general special awareness. With RF devices the

transmitter is programmed to send a repeated message that conveys its serial number and

other information necessary for the application in a repeated sequence. The different

receivers then calculate the time of arrival (TOA) of the transmitter's messages.











An advantage of RF sensors is the availability of product support. RF sensors have

been around since Edwin Harvey Armstrong's improvement of FM in 1912. There are

many outlets available on the web to get support for creating your own RF system.

Disadvantages of low cost RF systems for indoor positioning system include range and

multiple transmitters per receiver. The standard range of low cost RF sensors is 300 feet.

This combined with the fact that waves will penetrate walls and reflect off metal objects

make it nearly impossible to accurately derive a users position. Multiple sensors create

havoc with low cost sensors because synchronization techniques are complex. To get

around this more intelligent and expensive sensor must be used. Several systems are

available that allow you to adjust the range, but are very expensive at around $100,000.

Such systems are used to track goods through a warehouse. A phone representative

whose company will remain anonymous suggested a low cost hack to the range problem.

He explained that in order to adjust the range on low cost systems "One should just keep

cutting the antenna and experimenting till the desired range is achieved." He latter told

me there was a good special on antennas when purchased in bulk. The most popular type

of system that uses the low frequency RF technique is AIRID.

2.3.2 AIRID

AIRID LT is a system by RF IDeas Inc. that is principally marketed as a "Hands-free

solution in security." This system is designed to lock and unlock a workstation without

having the users enter passwords. The system is made up of ID badges and a base unit

that can support multiple badges. The badges act as transmitters and send a unique ID to

the base unit. Base units have adjustable ranges enabling the range to be a single

computer or a whole office. The base unit receives the transmission, uses the ID to











access a database to retrieve the correct password, and then proceeds to log the user onto

its machine via a serial connection. This process will be initiated as soon as the badge is

within range of the base unit [17].











F...









Figure 2-3 AIR ID System

Jeffery Hightower and Gaetano Boriello at the University of Washington tried to use

this system to create an indoor positioning system called SPOTON [9]. They surmised

that by placing multiple adjustable range base units in desired locations it is possible to

calculate a badge's position. Strength of signal and triangulation algorithms is used to

determine location. The graph below illustrates how the base units interact with each

other to determine the position of a badge. Hightower and Boriello found there to be an

almost inverse square relationship between the signal strength and the badge's distance

from the base unit [8].

















/ Base

Badge





Figure 2-4 Triangulation with modified ranges

Internetworking the systems was handled by a Hydra Microwebserver since it is not

feasible to have numerous serial cables running throughout an office. The Hydra allows

base units to connect through it to the central computer by Ethernet.

The result of this design is a semi-reliable system. This conclusion was drawn based

upon two factors. First, the accuracy range was determined at best to be within 3 meters

on a side. Second is the problem with measurement frequency. The AIRID API allowed

for location measurement to occur only every 10 to 20 seconds.

Hightower and Boriello found these results to be unsatisfactory so they created a new

transmitter called Thing. Thing was recalibrated to increase the signal precision

measurements. Their last publication, "Design and Calibration of the SpotON Ad-Hoc

Location Sensing System," (University of Washington, Seattle, WA, August 2001) stated

an increase in overall accuracy [7]. Since the amount of increase was never

quantitatively defined no detail into the new approach is covered.











2.3.3 Ultrasonic

The use of ultrasonic signals to determine location is based upon trilateration.

Trilateration is the process of calculating positions based on distance measurements.

Ultrasonic receivers calculate the distance to a transmitter by using a predefined

frequency. By using multiple receivers it is possible to calculate the varied distances

from each receiver and thereby obtain an accurate location. A minimum of two receivers

is needed for this calculation, but four receivers are recommended. The basis of using

four transmitters is due to the limitations of ultrasonic signals. Ultrasonic signals are

subject to loss of signal due to obstruction, false signals by reflections, and interference

from high frequency sounds. Placing four transmitters allows a 3600 coverage area and

by using the two shortest signals an accuracy range within a millimeter can be achieved.

A real life example of this accuracy is with Computers Unlimited's Virtual Ink Memo

[3]. This system replicates all movements on a whiteboard to your computer screen.






12














-p

















Figure 2-5 Computers Unlimited's Virtual Ink Memo

After a thorough search on the web and numerous calls to sales representatives, the

market for low cost OEM ultrasonic indoor systems was found to be almost non-existent.

The most famous example of an ultrasonic tracking system is the Bat system developed

by AT&T.

2.3.3.1 AT&T BAT System

The Bat system developed by AT&T Labs Cambridge is a tracking system that was

first presented to MOBICOMP in 1999 [1]. This system was named based on the way

bats use sonar to navigate at night. The system has four main parts receivers (pilots),

transmitters, controllers, and a central computer. Its purpose is to determine a person's

exact location with an error range of only 3cm. Each transmitter is called a Bat (beacon)











and has its own unique 48-bit identification number. The Bat is equipped with a bi-

directional radio for communication with a controller.


Figure 2-6 BAT Beacon

The pilots are placed above ceiling tiles and collect ultrasonic chirps from the Bats.

These pilots are connected using a high-speed serial network setup in a daisy-chain. By

placing a series of interconnected pilots approximately 1.2m apart a three dimensional

representation of the beacons location can be determined.


Figure 2-7 BAT Pilot











Each daisy chain communicates with a controller, which has a primary goal of

synchronization and relaying location information to the central computer. An example

of a typical controller area is illustrated below.


Figure 2-8 BAT System

Once the controller has recorded the location the information it performs two actions.

First, it passes the location information on to the central computer for application use.

Then it promotes synchronization information to the beacons through radio

communication. Synchronization is achieved by having the beacons "chirp" at different

timed intervals. This allows the beacons to power down and extends battery life. Setting











multiple controllers up in cellular radio architecture can expand the area of coverage.

Upon entering a new area, the beacon follows registration protocols to coordinate with

the areas controller.

Although the bat system seams like the ideal choice for a smart home, it has one

disadvantage that makes it less than ideal for the smart home, number of sensors. Each

sensor needs to be connected by a wire to create the daisy-chain network. The wiring

required for each network is unreasonable and nearly impossible to setup in the average

house. Another ultrasonic system more applicable to a smart home is an OEM product

sold by an Australian company, Hexamite.

2.3.3.2 Hexamite Local Positioning System

Hexamite's Local Positioning System is a low cost OEM ultrasonic tracking or

positioning system [6]. The system has a number of advantages to it that make it ideal

for tracking people indoor's:

OEM product

Pilots are not battery powered

Beacons are small and have power saving features

Highly accurate with 16m range

System can be proactively controlled

Room Size/ Measured Distance

This system is currently implemented in the ICTA lab and is configured to be a

tracking system. The system was chosen because it provided an overall best fit based on

its benefits. Each advantage as it relates to the lab will be discussed here. An in-depth

account of its functionality is in chapter five.











Having an OEM product that is designed to track a person's location frees us from the

burden of microchip programming and soldering. The system uses a high speed RS485

serial connection to relay location information. Typical RS485 cabling provides a wire

for power and one for ground. This enables the pilots to be powered through their serial

connection and only one power outlet is needed per network.

Each beacon is very lightweight and small, roughly the size of a cell phone battery.

The dimensions are 1/" X 1" X 21/2". The beacons have a lithium battery, which lasts 24

hours in active mode and 300 hours in deep sleep mode.

This system is highly accurate and currently obtains positions within 22 cm without

reflective corrections. This accuracy can be increased to within 3 cm, but this requires

reflective software correction protocols.

The system can be proactively controlled by allowing a caretaker, family member, or

users to initiate a location cycle and then stop the system to save battery life. This allows

spot-checking throughout the day if desired.

The last advantage comes with varying room size. Each 900M pilot has can retrieve

information at a range of up to 16 M. However, it is recommended for best results that

room area of coverage should not be larger than 6 M.

2.3.4 Infra Red

Infrared (IR) technology passes IR waves to communicate distance information. The

systems work by having the beacon emit IR waves at a predefined time interval. The

disadvantages with this type of system are accuracy and sunlight. Sunlight affects IR

waves and in some cases prevents them from reaching the pilots. The best accuracy that











can be achieved with this system is general spatial location. These systems have been

generally replaced with ultrasonic systems.

2.3.5 Motion Detectors

An interesting idea for location is to use motion detectors to determine location. The

position of a person is known whenever they come within range. An advantage of this

type of system is price. Another application is to use beam detectors to create a

checkerboard pattern throughout a home. The distance between the detectors is based on

how accurate you want the location information to be. Intel had the idea of combining

low frequency RF waves for communication with motion detectors for general special

awareness. This implementation allowed the RF link to be used to transmit the location

information to the central computer eliminating the need for wires. This system was

found to have two disadvantages: power consumption of the detectors and speed.

2.3.6 GPS

With the federal governments ruling recently that all cell-phones must be able to

acquire a person's location in the case of a 911 call, there has been a boom in research on

GPS location systems. GPS is the ideal choice for use outdoors, but it is not a feasible

choice indoors. The problem with indoor use is that for satellites need line of sight

(LOS) to communicate with GPS devices. Once inside, LOS communication is lost.

With obtaining an indoor position using GPS we have two choices: the use of new low

power no-chip architecture that optimize wideband communication or pseudo satellites.

This new architectures has been proposed by Global Locate to make GPS system feasible

on a cell phone and conducive to indoor use. To minimize the incremental cost of adding

GPS functionality, chip manufacturers plan to integrate RF and digital functions for GPS










into the existing chips that perform these functions for cellular signals. The GPS receiver

is relieved of the burden of searching out the satellite frequencies, demodulating satellite

navigation data, and computing satellite coordinates, because this information is provided

over a separate wireless link. In the cell phone environment, a separate wireless link is

readily available. This "no-chip" GPS solution is a logical choice for cell phones [5].

The main advantage is that it consumes negligible power from the phone. The

disadvantage to indoor location systems is in the accuracy. This system can only

calculate a person's position within 10 to 30 meters. This is a good choice if only very

general spatial location is required, but it is not practical for tracking someone room to

room.


hardware functions
integration
-1000ms
F Real-time
Sconvolution Search
f processor all
code
f delay
chips
at a
time


Figure 2-9 "no-chip" solution











A pseudo satellite system involves placing three miniature satellites in a room and

running triangulation calculations [4]. This is identical to the ultrasonic options

presented above and is subjected to the same advantages and disadvantages with

increased expense.


1 -WLEIF
^^-^*BIIII'S ^^


Figure 2-10 Pseudolite System

2.3.7 Hybrid System (MIT Cricket)

Hybrid systems use any combination of the preceding techniques to create a

positioning or tracking system. Most systems used by researchers are hybrid systems.

These systems benefit from the advantages of merging techniques and fall prey to the

various disadvantages.










The Cricket Indoor Location System is an ongoing research project at MIT that was

first introduced to MOBICOMP in August 2000 [14]. It is a positioning system where a

PDA or other mobile listener receives signals from fixed transmitters to determine service

availability within a set location. The beacons (transmitters) send out concurrent low-

level RF and ultrasonic signals. The purpose of the RF signal is to wake up a listener and

prepare it to receive ultrasonic pulses. Upon receiving both of these signals the listener

correlates the signals, estimates distance to the different beacons, and estimates the space

location that the current listener is in. Since low-level RF waves pass through walls

nearby locations are known. Synchronization with multiple beacons is achieved by

running a random collision algorithm on the RF signals. Data is encoded in the RF

signals and relates semantics of the designated area of the beacon. Ultrasonic signals are

only considered after a valid RF signal. This prevents interference of reflected Ultrasonic

signals. The main idea is to obtain an unobtrusive and private environment by placing

the burden of computation on the mobile device. The Cricket is not designed to be a

tracking system and is designed for general spatial awareness and has an accuracy rating

of 2 feet. Below is an example of their beacon.






































Figure 2-11 Cricket Pilot















CHAPTER 3
THE PROBLEM

The problem faced is to create a smart home that is capable of making decisions for

users and to provide extra safety features that will keep seniors independent. In order to

do this a smart house needs to know their location. By knowing the end users location, a

smart home can make his life easier by making decisions for him that he might not make

otherwise. It is common for an elderly person to do something like turn the lights out at

bedtime one day and forget to do it the next three. Giving the central computer location

information enables a smart home to control the different systems of a house in order

provide an independent lifestyle. These systems include, but are not limited to lighting,

temperature control, appliances, and safety systems. Location information is defined as

an XY position relative to the house and the angle of orientation. The angle of

orientation information is used for the visually impaired. Location information can be

thought of as the backbone of the technologically enabled household environment.

A smart home needs a location system that provides user tracking through hardware

coupled with a custom software package that is capable of interacting with different

devices. Through an exhaustive search of the existing hardware OEM systems the

Hexamite Low Cost Positioning System became the ideal choice by providing the

necessary functionality and meeting our budget constraints. In order for the

interoperability of heterogeneous devices the Open Service Gateway Initiative (OSGi)

was chosen for the house architecture. Because the OSGi platform uses a Java







23



Embedded Server, Java is the obvious language to use to create our custom location

software.
















CHAPTER 4
OSGI

The open service gateway initiative (OSGi) is an open reference architecture designed

primarily for the delivery of services on the Internet to local networks and devices. The

OSGi platform specification provides a common architecture for service providers,

developers, and equipment vendors to develop, deploy, and manage services in an

organized and coordinated fashion. The host that manages the services in the local

network is the service gateway.

In order to provide services from different devices platform independence is a

requirement. Because of this requirement of OSGi, JavaTM is ideal for the default

platform. Most of the terms used to describe the OSGi architecture are taken from Java

TM parlance.

4.1 OSGi Architecture

OSGi has a layered architecture as shown in figure 3.1. The architecture consists of three

components:

1. Framework

2. Bundles

3. Services























1 X I Java Vu

Service
Service Operating System

Driver Driver Driver

Hardware
Figure 4-1 OSGi Architecture [12]

The framework is the heart of the system as it provides a virtual environment on which

services from different vendors can execute. It provides clear interfaces for registering

new services and a powerful service lookup facility. The framework also provides basic

evening capabilities.

Services are java objects that implement a standard interface and execute on the

framework. A bundle is a collection of one or more services and is responsible for

registering services with the framework. Services are exchanged among bundles through

the framework in a secure and controlled manner. Thus, bundles may provide services to

other bundles as well as use services from other bundles.

Besides providing specification for framework, services and bundles, OSGi also

contains Device access specification, which is a mechanism to couple device services to











driver services. The terms used in this section are explained in more detail in the

subsequent sections.

4.2 Service

A service can be defined as a Java TM object implementing a concisely defined interface

[12]. In OSGi environment, everything is a service; for example, a web server is a

service, so is a library routine that helps in performing a complex calculation or a

program to control a particular device. Applications that execute in the OSGi

environment are a collection of services; all of which need not necessarily be from the

same vendor. OSGi provides a mechanism for services to be shared between different

applications.

Every service consists of a service interface and a service implementation. Service

interface is a Java TM interface, which specifies the semantics and the behavior of a

service. The interface also hides the implementation details of the service. Service

implementation, which is also called a service object, is a Java TM object of a class that

implements the service interface. There can be many service implementations for a

single service interface. This happens when different vendors provide the same service

or if there are many flavors of the same service. For example, a service to control a

camera has a standardized service interface but depending on the model and make of the

camera might have different service implementations. When a bundle is started, it

registers services with the framework service registry. A registered service is available to

other bundles under the control of the framework.

The framework provides a powerful lookup mechanism by which bundles can query

for services and get their references. A registered service can be unregistered at any time











by the bundle that registered it. Whenever a bundle is stopped, the framework

automatically un-registers all the services registered by that bundle.

4.3 Bundle

A bundle is a collection of services that are packaged in a well-defined fashion. It acts as

a means by which services are hooked on to the OSGi framework. This section describes

the structure of a bundle and its life cycle. Unlike other archive files, bundles have

different states. A bundle can be in one of the following states: Installed, uninstalled,

starting, stopping, resolved and active.

Services contained within a bundle can be available only if the bundle is in active

state. Figure 4-2 shows the state transition diagram of a bundle. In figure 4-2, the thick

arrow lines represent the transitions triggered by the framework and the dotted arrows

represent automatic transitions.

Install ,
Installed ~

Update Resolved

Uninstall
Start


Uninstalled Stoppi
Stop

Active





Transition by administrative action
----------- Automatic transition

Figure 4-2 Bundle State Transition Diagram [10]












4.4 Hexamite Bundles

Hexamite software can be packaged in to an OSGi bundle to provide a generic service

for getting location information. The overview of the Hexamite software is given in

section 4.4.1. The scheme used to plug the Hexamite software into OSGi framework and

the design changes that were done to accomplish this task are explained in section 4.4.2.

4.4.1 Hexamite software

Hexamite software contains the following modules

1. Communication module: This module communicates with the Hexamite hardware
via the serial port. The communication includes initializing the pilots and reading
the beacons' location information, from the pilots.

2. Processing module: The location information received by the communication
module is parsed and processed by this module. Processing module refines the
information to a more usable format having the (X, Y) coordinates and the
orientation. This refined information is stored in a Person object.


,-- - Hexamite
Person
/ Obiect
/ \
I \
I Processing Module
S4 I Hexamite
S Communication Module -----------hardware
4 ---


Fire 4-3 Hexamit Structure [10]
Figure 4-3 Hexamite Structure [10]












4.4.2 Hexamite as a service on OSGi

The location information that is provided by hexamite might be used by several client

applications simultaneously. An organized way to let many clients share the location

information is by making the hexamite software a service on OSGi.

Figure 4-4 shows this scheme. As it can be seen from the figure, the only two

additions made are the Activator component and the Event broker component. The

Activator component is required to interact with the OSGi framework. It provides a

mechanism for the hexamite bundle to be started or stopped from the framework's user.




S0, Hexamite


Event
---- ------ ---



4_ Activator

T I
I
I


user interface.


Figure 4-4 OSGi Hexamite bundle [10]


I



I


:I






30



The processing module is changed to generate an event containing the location

information. After generating an event, it is thrown to the event broker that was

developed by Sree Kuchibhotla [10]. An event object containing the location information

is sent to the event broker.

Any client interested in the location event will have to register with the event

broker.On receiving this event, the event broker sends the corresponsing event object to

all the registered clients. The details about event broker can be found in [10].
















CHAPTER 5
THE PROTOTYPE

The location system is made up of two central parts: OEM hardware, and custom

software. The system works by having software setting up the system to the desired

configuration. After setup the system returns a location distance string to the central

computer twice a second. Upon receiving the string the software parses it, calculates

position and orientation, and creates a location even every four seconds. A detailed

account of each part of the system is presented below.

5.1 Hardware

The Hexamite Low Cost Positioning System's benefits (See page 9) made it the

perfect choice for the hardware for a smart home tracking the system. This system is

made up of three different devices, HE900M pilots, HE900T beacons, and a HE485

RS485/RS232 converter. The system is setup to have the stationary HE900M's act as

receivers.














Figure 5-1 HE900M










The deflection angle that the HE900M can receive is 1300 at 6M and 850 at 8M. By

placing one HE900M in every corer of an area it is possible to achieve 3600 coverage of

the mobile beacons.






















Figure 5-2 Area Coverage

The HE900M's each have four external wires that correspond to RS485 positive,

RS485 negative, ground and power. These wires are attached directly to a RS485 four-

wire cable that provides power to the devices and enables communication to the central

computer. The pilots are positioned as follows in the ICTA lab and are interconnected by

RS485 cabling. Each pilot has one cable that connects to the connector box above the

ceiling to form a network. The ICTA cable box is in the approximate position as below.











Connector box

w


Figure 5-3 ICTA Pilot Positions

A unique feature is the way each pilot is attached to the ceiling. The ICTA lab uses

3M ultra strong Velcro with an adjustable base that pivots and can be bent to cover a

wide range of vertical angles. This design was created by Paul Bennett and allows for the

adjustment of the pilots.





































figure 3.4 Filot Acjustable Base

The tracking system requires the HE900T to be configured as a beacon. This device is

lightweight and has a size of /4" X 21/2"X 1". By placing two HE900T's on a person the

system is able to acquire both their position and orientation.




























Figure 5-5 HE900T

A Manganese Dioxide Lithium rechargeable 3V battery powers the mobile HE900T.

The HE900T has an active operating time of 10 hours and has a power down sleep

feature that extends battery life up to 300 hours. The backside of the HE900T has eight

pins that allow the administrator to test and control the device. They also provide means

to recharge the devices.











Table 5.1 HE900T Pin Order


The custom software on the central computer communicates with the hardware,

calculates the position, and creates location events for the architecture. The first step of

the initialization process is for the software to read the hardware setup strings from the

Settings.txt file in the Location package. A checksum, which is a integer representation

of the ascii characters of the setup string, is created and passed to the HE900M's for

comparison. The HE900M's configure themselves based on this setup string and return a

"+" if the setup configuration is feasible.


5.1.1 Setup Strings

Each string is broken down into seven parts. An example of the setup strings for our

system is listed below.


Pin Configuration

Pi Function


1 Serial Output
2-
Serial Input -

3 Reset, this pin resets the devi
if it sinks beneath 1.5V
4 Ground/Return
5 Reserved
6 Reserved
7 Test Pin, pin is low OV when
the device sleeps, pin is high
when device is active
V=V(battery)
8 Power Input, Battery charge
16Vdc @2 -14 mA











Table 5.2 Setup Strings


#S 01 OD 03 01 06 00
#0 01 52 03 01 06 00
#Q 01 4E 03 01 06 00
#Y 11 50 03 01 06 00



Each line is a different string that begins with the # sign and requires a different pilot

configuration attempt. The first part of the string represents the device address (DA).

This is the secondary address per device and is one letter after the primary. In this case,

the primary addresses are T, N, R, X and are displayed on the outside of the HE900M's.

The software is designed to read each line that begins with a # and create the checksum

integer representation of the hexadecimal number parts that follow the DA.

The second part of the string is the Program Control Byte (PCB). Setting different bits

of the PCB provides the HE900M with different functionality. Here is a listing of the

different bit functionalities for the pilot.

Table 5.3 PCB Bits

***************************** If device is a Pilot**************************
PCB.0 = if set this Pilot transmits sonic synchronization
PCB. 1 = if set this Pilot is I/O pin synchronized
PCB.2 = if set this Pilot's Autotracking is Enabled
PCB.3 = if set this Pilot transmits continuously
PCB.4 = if set this Pilot is an initiator in a chain of pilots (master)
PCB.5 = RESERVED
PCB.6 = RESERVED
PCB.7 = if cleared Device is a Pilot


In our setup configuration pilots with secondary addresses S, 0, and Q are setup with a

PCB of 01. Pilot X is the master and has a PCB of 11. The thing to remember is that the

all the numbers are in hexadecimal format. A PCB of 1 corresponds to an integer










representation of 17 that sets bits 4 (24) and 0 (20). The master must always be setup last

per hardware requirements. Sonic synchronization is the process where the beacons send

distance information to the pilots at a predefined time interval. Upon receiving the

distance information from the beacons the master pilot creates a distance string that is

passed to the next pilot defined in the setup string, the third part. Each pilot in the

network follows the same procedure except that they concatenate their distance

information to the same distance string. The last pilot send the distance string back to the

central computer and initiates another acquisition cycle. The third part of the setup

string is the Termination Byte (TB). The TB is the destination or address to which each

pilot sends the distance string. The numbers that make up the third part are the

hexadecimal representation of the ascii number of the primary address or device that the

distance string is to be sent to. The only difference is the first string which has the

hexadecimal number OD. OD is the carriage return and tells the system to start a new

acquisition cycle. This way the system continuously acquires distance information

without a separate signal from the central computer. In the above example 50

corresponds to device P, 4E corresponds to device N, and 52 is the hexadecimal

representation of device T.

The fourth part is the Number of Beacons Byte (NBB). The NBB represents the

number of beacons in the system plus one. The NBB defines the number of scalar values

a pilot puts on the distance string. The pilot will put one value for each beacon plus one

for itself on the passed distance string. An example of how scalars are used is presented

below in the distance string section.. The last three parts of the setup string are ignored

by the pilots and are relevant only to the beacons. The fifth part tells the beacon how











many pilots it should receive messages from before it responds. In our case the number

is one. The sixth part tells the beacons how many devices are in the system and the last

part is ignored entirely.

5.1.2 Distance Strings

The distance string passed to the central computer consists of four sets of three scalars.

An example:

0E22 0123 0C34 POB33 0E13 23A1 N03AB 3345 09C3 R0202 OFE3 00F2

The four sets correspond to the four pilots. The scalar distance measurements are in

hexadecimal format and represent the number of millimeters to the beacon or nearest

object. The first scalar is the distance from the pilot to the nearest obstacle. An obstacle

is anything that reflects the sound wave back onto the pilot and can be anything from a

beacon to a wall. The first set of three scalars in the above example is:

0E22 0123 0C34

Here 0E22 or 3618 millimeters represents a distance measurement from the master to

the nearest obstacle, 0123 (291 mm) is the distance measurement from the master to

beacon #1, and 0C34 (3124 mm) is the distance measurement to pilot #2. Every set of

scalars after the first is read the same way except for one minor difference, the added

pilot primary address. Each pilot after the master will add its primary address to the first

scalar. The second set of scalars represents the second pilot and with our example this is

pilot P.


POB33 0E13 23A1











With this set and every set after the distance measurements are calculated the same

except the pilot primary address is ignored. Here there is 0B33 (2867 mm) to the nearest

obstacle, 0E13 (3603 mm) to beacon #1, and 2341 (9025 mm) to beacon #2.

5.2 Custom Software

The Hexamite system provided a demo package that was of little value. As a result,

all the necessary steps and calculations needed to meet the requirements had to be

researched and invented. The custom code is attached to appendix A. Great care was

taken to add very detailed comments and red highlighting for parts that will need to be

changed if the system is upgraded or moved. The software is responsible for meeting the

following requirements:

Establish a serial connection with hardware to establish two way communication

Read from Settings file and send appropriate setup information to hardware

Retrieve and parse distance strings from hardware

Perform trilateration calculations and plot distance information

Provide a GUI to show an accurate representation of a users movement

5.2.1 Serial Connections

Java is the software language choice to meet the necessary requirements of the system

architecture. The javax.comm package provides the classes and methods necessary to

facilitate serial communication between the hardware and software. The

ComPortIdentifier class contains the getPortIdentifiero method that creates a

ComPortIdentifier object that is linked or controls a particular port. Once a

communication port has been linked to the object, the open() method allows this port to

follow the RS232 serial port communication protocol that hhttp://www.hexamite.com/as











the parameters set by the setParamters( method of the SerialPort class. The javax.comm.

package with it's api can be downloaded from sun and thus will not be included in this

thesis. The SerialConnection class was modified and is attached to the appendix.

5.2.2 Software Setup

There are three hardware-defined commands that are passed between the hardware and

software. These commands are used to initiate a particular hardware action.

Table 5.4 Pilot Commands

Control
l decimal Hexadecimal HPD interpretation
Characters
This will force the master device to transmit
Carriage 13 D synchronizing hyphen, and initiate a new
Return position acquisition cycle for all devices on
the network.
S 7 i BREAK! This will force all devices to be
Escape 27 1B
ready for commands.
hyphen' -' 45 2D The device enters position acquisition cycle.


Escape is used to halt the pilot's distance acquisition attempts. This command should

be sent before each communication sequence and before the software program quits. The

escape command enables the sleep mode function of the beacons. Carriage return sends a

new acquisition cycle request to the master pilot. The hyphen is used only for hardware-

to-hardware communication to inform the pilots a new acquisition cycle is about to begin.

The master sends it after receiving a carriage return and places it at the beginning of the

distance string. The distance string is then sent to the next pilot defined in the setup.

The software starts off by sending the escape command to prepare the pilots for setup.

Setup is achieved by reading the Settings.txt file and then sending the appropriate setup

string to each pilot. If the configuration is feasible for all pilots a "+" is returned to the











software. After the software receives the "+" a carriage return is sent to the hardware and

the acquisition cycle begins.

5.2.3 Distance String Breakdown

The distance strings are in the form discussed in the hardware section of this chapter.

The software's first task is to parse out all non-relevant information from the distance

strings. It does this by reading the distance string byte per byte and then removing all

entries that do not fall between 48 and 76 in ASCII. Bytes are continuously read till a

carriage return is received. At this point the getInfo( method is called and passed the

parsed string.

Ultrasonic waves reflect off walls and objects and it is possible that some of the

distance numbers represent reflected calculations. To help calculate a more accurate

position of the user, only the shortest two distances are used. It is the getInfo() method's

responsibility to separate out the shortest two distances and corresponding pilots from the

parsed distance string.

Each pilot sends and receives distance information to and from the beacons. These

numbers are passed in hexadecimal form; need to be converted to integers, must be

recalculated based on which pilot synchronized with the beacon, and need adjustments

made to compensate for the hardware's clock cycle count. In order to represent an

accurate location all the numbers are initially converted to integer. The shortest distance

represents the pilot that synchronized with the beacon. The distance representation from

the synchronized or shortest distance pilot is a result of a ping going directly to and from

the beacon. Therefore, the first calculation involves dividing the shortest distance in half

and is called the synchronization distance. Because of sonic synchronization the










synchronization distance value represents the first leg of all the other pilots distance

statements. In order to correct for this the synchronization distance value needs to be

subtracted from all other distances. The graph below helps illustrate this process with

two pilots and can be easily extend to any number of pilots.


0










Figure 5-6 Distance Calculations

In the figure above the top pilot is the synchronized pilot and the synchronized

distance value is the result of the half the total ping time. Since the top pilot is already

synchronized the bottom pilot sends a request ping to the beacon that time stamps a

return ping. The pilot then calculates the time of flight of the return ping and creates a

distance value. This value is added to the synchronized distance value and is passed to

the software by the acquisition distance string.

Because sound travels .688 mm for every micro controller tick the all numbers need to

be multiplied by .688. Here is a chart with the corresponding steps.











Table 5.5 Calculation Example



Step 1

-0E22 0123 0C34 POB33 0E13 23A1 N03AB 3345 09C3 R0202 0FE3 00F2

Step 2

OE2201230C340B330E1323A103AB334509C302020FE300F2

Step 3


Shortest (beacon #1), Pilot
Shortest (beacon #2), Pilot
NextShortest (beacon #1), Pilot
NextShortest (beacon #2), Pilot


hex 0123 -4
hex 00F2 -4
hex OFE3 --
hex 0C34 -4


291 mm, #1
242 mm, #4
4067 mm, #4
3124 mm, #1


Step 4


Shortest (beacon #1)
Shortest (beacon #2)
NextShortest (beacon #1)
NextShortest (beacon #2)


291/2
242/2
NextShortest(beacon #1) 291/2
NextShortest (beacon #2) 242/2


Step 5


Shortest (beacon #1)
Shortest (beacon #2)
NextShortest (beacon #1)
Next Shortest (beacon #2)


Shortest (beacon #1)
Shortest (beacon #2)
NextShortest(beacon #1)
NextShortest (beacon #2)


*.688
*.688
*.688
*.688


Steps Defined:
Step 1 Central computer receives distance string
Step 2 Parsed Sting is sent to getInfoo method
Step 3 getInfoo retrieves shortest distances
Step 4 Shortest distance is divided in half and subtracted form next shortest
Step 5 Distances are multiplied by .688
Step 6 New distances are passed to Tag objects











5.2.4 Trilateration

Trilateration is the process of obtaining a position based on distance measurements.

The Tag class is responsible for the trilateration calculations. The new distance values

calculated above are passed to the getTagLocation( method. Here trilateration

calculations and the relative house position are calculated. The calculations are broken

down for each pair of the closest two pilots.

Trilateration uses basic geometry to create a beacon's distance between pilot

information based on the calculated distances. Trialateration is based on the following

formula and diagram.

Table 5.6 Trilateration Formula

Trilateration Calculation is based on the following two formulas:
// Xc=(L2A2-L lA2+LBA2)/(2*LB)
// Yc=(L2A2-X^2)A1/2
// Where:
// L1 is distance from Second Closest Pilot to tag
// L2 is distance from Closest Pilot to tag
// LB is distance between pilots



Beacon



L2 L1
Yc


Xc F
LB LB
Figure 5-7 Trilateration Graph

The house position is based on a two dimensional Cartesian graph. In order to

calculate the house position, Xc and Yc are taken into account based on their relation to










the closest two pilots. There are two cases of calculation; the basic case, and the

advanced case. The basic case occurs whenever the two pilots are next to each other on

the perimeter. The final position is easily determined after Xc and Yc have been

calculated. The final position is just an adjustment of Xc and Yc from the height and

length based on the closest two pilots.


Figure 5-8 Basic Trilateration Case

In the figure above illustrates how the final position calculations differ depending on the

closest and second closest pilot. Trigonometry is needed to solve the advanced case. The











advanced case occurs whenever the two closest pilots are across form each other. An

example is pilots 4 and 2. The first main difference is that a formula needs to be added to

acquire the base.

Base = Sqrt(length length + height height)

Next we need to determine the angle between L2 and line 1 to 4. Using the arctangent

function on the height over the length accomplishes this. Once this angle, called the

primary angle, is acquired we can use the cosine of this angle and Xc to get the distance

of Xc relative to the house and is illustrated by the double arrow on top. In order to

acquire the true X position we need to include the distance from the center of the beacon

to the edge of Xc. To do this we first subtract 45 from the primary angle. After this temp

angle is calculated we use its tangent and Yc to determine the distance from the edge of

Xc to the purple dashed vertical line. This calculation, called Xc offset, is applied to the

cosine of the primary angle to acquire the diagonal Xc adjustment, which is illustrated by

the smaller double-sided arrow. The X position of the house, in this case, is the

following formula:

X position = length (Xc relative diagonal Xc adjustment)

The relative Yc is then a straightforward calculation.

Relative Yc = Sqrt(Yc *Yc + Xc offset Xc Offset)

The house Y position in this case is

House Y Position = Relative Yc + (sin(primary angle)*Xc)




























Figure 5-9 Advanced Trilateration Case


5.2.5 Orientation

The ICTA custom software system has a built feature that provides a person's

orientation. Orientation is achieved by placing a beacon on each of the users shoulders.

By analyzing the house position of the left and right beacon orientation can be achieved.

Once the house position is calculated for each beacon a Person object is created from the

beacons. The Person object then calls the getPosition( method to calculated the Person's

house position. The formula to calculate the position in listed below.

//X Position
p.x = (p.left.getX(-p.right.getX()/2 + p.right.getX);
//Y Position
p.y = (p.left.getY(-p.right.getY()/2 + p.right.getY);

Here Person p's x position is based on the left beacon X position less the right beacon

X position divided by two. Then this total is added back to the right beacons X position.

The same method follows for the Y position. The purpose of this is to create a house

position that represents the central point on a user. To determine the orientation the











getOrientation() method compares the position of the right and left beacons to the central

person position and calculates an angle of orientation. This calculation subtracts the

difference of the beacons from the central position and uses the arctangent function to

retrieve the angle. This angle then needs to be adjusted for the houses orientation. For

the house, orientation 0 is an approximation of true North and points towards the wall

between pilots 3 and 4.


1 4
270




180 0




(0,0) 90
2 F3

Figure 5-10 Orientation

5.2.6 GUI

The display is set up using the client server architecture. The backed software that

interacts with the hardware acts as the server and returns client that receives position

events. The client is a graphical user interface (GUI) that knows the servers IP address

and requests information through a socket connection. Once the event has been received

the GUI displays an icon representing a person and the corresponding orientation. The

orientation is displayed at 5 intervals to keep the display steady when hardware distance

variations would cause a stationary person to move around. Example of the GUI can be

found in the data Analysis chapter.











CHAPTER 6
DATA ANALYSIS
The goal on the outset was to create a tracking system that could track someone's
position indoors. A bonus idea was to obtain their orientation. At this point the system
can determine a persons position within 22cm 96.7% of the time, but cannot accurately
relay orientation. This chapter presents an overview of the testing process and provides
an analysis of the results. A sample dataset test is shown below.


I AIpp


4

f


A startlllCJI 6 iJ 1 : 1 J : igJj: L 1. $i |S: 1LE1 I_ a iTt s__ak .-
Figure 6-1 Stationary Test


404











Here 50 position reads were generated and only two fell outside the acceptable range.

This GUI did not repaint over the previous value to better illustrate the results. The

figure in the lower left shows the person at position (0,0) facing due west during start-up.

6.1 Test Process

The accuracy test comprised of deriving the real X and Y position of our stationary

test dummy and comparing the results to the systems calculations. In order to do this a

test dummy needed to be created.

6.1.1 Matilda

A test dummy was created by using a video camera tripod for legs, a piece of

Styrofoam, a cardboard box for the body, a brown paper bag for the head, and plastic

bubble wrap for hair. The result is Matilda.


















i~~(i


-_- .' ,


Figure 6-2 Matilda










Assembly consists of placing the Styrofoam piece on top of the tripod via the tripod

vertical stud. Once secure the cardboard box is tied to the Styrofoam by string. After

this the head and hair is taped into place.

6.1.2 Real X and Y

Marking the ground directly below the beacon positions on Matilda's shoulders and

measuring these positions with a metric tape measure derived the real X and Y position.

For best results the beacons are placed on top of the shoulders with their sensors facing

the front.

6.1.2.1 Marking the Ground

Marking the ground is a four-step process. First, Matilda must be in a vertical

position. Second, the beacons sensors centers are placed directly above the point where

the Styrofoam meets the cardboard. Third, the distance from the sensor to the Matilda's

front side is measured and this distance is marked on the Styrofoam base.
-a L'~ ...:


Figure 6-3 Styrofoam Measurements











Finally, a fishing string with a lib weight is pinned to the Styrofoam mark and dropped to

the floor marking the real position.

6.1.2.2 Measuring

In order to measure the real X and Y position the border of the pilot area needs to be

determined. To do this, fishing line with the llb weight is dropped to the ground and

marked in front of each 900M. Each marked position is now connected with string to

form the pilot area border.


Figure 6-4 Pilot Border Measurements

Now that a border exists, the distance of the beacon plots from the area border is

measured and the real position is determined.






































Figure 6-5 Ground Positions


6.1.3 Test Locations

The choice was made to place Matilda in six different areas and to run multiple tests

on each area. The choice for the position of the test areas and for the multiple tests in the

areas was chosen based on what was thought to produce the least accurate results.

Overall six areas were defined with four sub tests each. Each dark circle represents a

different point the right beacon was tested. The sub tests were positioned so that if

possible at least one beacon was without LOS of the closest pilot.



















S5 6


Figure 6-6 Test Positions

6.1.4 Results

Of the 22 position tests conducted, 1356 system results were recorded. The actual

figures can be seen in appendix-b. The data was broken down into X/Y positions for

each beacon, the Max and Min, and average to determine the number of bad reads and

quantitative actual error. A bad read is defined as any number that has a difference that is

greater than 400 mm from the average. Bad reads occurred 45 times or 3.3% with all but

two occurring with the left beacon. Actual error was calculated by creating a central

person location for both the average results and the real measurements then comparing

their difference. The actual error was found to be within 22 cm in the worst case and

within 1 cm for the best. The figure below separates the actual error of the 22 sub cases

into four categories.












Table 6-1 Actual Error


Actual Error

14
122
10 -
8
6
4-
2 -

<3 cm <10 cm <16 cm <22 cm



A further analysis of theses results is presented in the next section.

6.2 Errors

There are four main types of errors encountered when testing the system: absolute,

reflective, environmental, and calculated.

6.2.1 Absolute Errors

Absolute errors are different for each pilot and are caused by crystal clock frequency

variations. Absolute errors are possible to correct because the amount of the error has a

linear relationship per distance. To calculate the amount of error per pilot, three data sets

where run at one-meter intervals from the pilot. The meter intervals where further

enhanced by creating an arc that contained three points. One point was positioned

directly in front of the pilot and the other two were spaced at approximately 45-degree

intervals from the pilot. The illustration below depicts the process.






































Figure 6-7 Absolute Error Test

In the illustration above each pushpin represents a meter increment from the base of

the pilot. Because of human error in placing Matilda directly over each pushpin, the bad

read threshold was set to 20 mm. The results of the test showed that there was an average

absolute error of 7 cm for the first pilot. Pilots two and three were slightly better with an

average absolute error of 6 cm and pilot four was the best with 5 cm.

One particular problem faced was close to pilot measurements. In order to have a low

miss rate the angle of the pilot had to increased so that devices are at a 45 degree angle or

greater.





































Figure 6-8 Short Distance Pilot Angle


6.2.2 Reflective Errors

Reflections by ultrasonic waves are caused by the ultrasonic ping bouncing off an

object and are the major cause of errors. Unlike absolute errors, reflective errors fail to

create any sort of linear relationship. Through testing, two types of reflective errors can

be defined, non-disclosure and outside receiving angle (ORA). Non-disclosure errors can

be synonymous with chaos and are unique for each test situation. These reflective errors

bounce off multiple walls and are directly linked to the percentage of bad reads and

actual positioning error. Reflective errors played a key role in the <22 cm category of the

actual errors from section 6.1.4. These errors occurred in test area five. In each case, the











shortest pilot distance is a result of reflections off the east wall. The figure below

illustrates this case.










Figure 6-9 Reflective Error

Here, the red or dashed lines represent the true distance, but the actual distance recorded

is a result of the reflection. Because area five is midway in the X position, the result of

this reflection created the wrong closest pilot and caused X and Y positions to be off by

as much as 300 mm. The reason the pilots would record a longer reflective read is

unknown.

ORA errors occur because the beacon reads a signal or ping from a pilot that is outside

its receiving angle. The 900T have a receiving angle of 130 degrees at a distance of up to

six meters. Having this angle leaves an angle of 25 degrees per side that can cause

misreads.








Figure 6-10 Receiving Angle Error

If any reads come in outside the receiving angle they might return incorrect results or

fail to get picked up. By placing the beacons on top of the shoulders and with the pilots

facing downward, the ORA errors are not a factor.











6.2.3 Environmental Errors

Ultrasonic pulses are subjected to outside environmental influences. These influences

are noises in the form of ultrasonic collisions. Collisions are wave patterns that pass have

the same frequency as the systems. Wave patterns in the same frequency as the ultrasonic

system will cause the message passed from the pilots and beacons to dissipate or reflect.

Several Test experiments were created to test the system under normal household

activity. These were radios, yelling, keys jingling, and finger snapping. Jingling keys

produced the highest frequency sound and as a result was the only test that made the

system unstable. The next illustration shows how the keys broke down the distancing

ability of the system. Matilda remained stationary in the same position as the stationary

test displayed in Figure 6-1.










.Ijl_


JStal.t | i 1| J E JI j .L. J J.-' I .--I IJjj j Bj I J "' I, ,", 4


Figure 6-11 Key Test

6.2.4 Calculation Errors

Calculated errors are human errors in measuring. When measuring the real position it

is important that Matilda is perfectly vertical, the tape measure is perpendicular to the

base area line, and the base area lines are flush with each other. Any variation in any of

these conditions could result in a fairly large error in measurement. As an example,

being off by 1 cm in each of the above conditions would result in an actual error of 4 cm.

6.3 Height Effects

One limitation to the current system is height or measurements in the third dimension.

Three good reads are required to calculate height and this is impossible with a four pilot

system. An example of this limitation is when the user sits down. When this happens the


I AAple Vewr: exmie~las










system will try to calculate their position as if they were standing up. This leads to

inaccuracies of up to 100 cm.

6.4 Data Analysis Conclusion

Although an error rate of 22 cm sounds like a lot, it is not when you consider the

object being tracked, people. A human can easily have a width of 22 cm. The 22 cm

error can be further reduced through more rigorous testing and the implementation of

reflective error correcting software protocols. It is recommended that further testing be

done only after the ICTA lab has been built. This is because each minor change in pilot

positioning or wall placement will result in making any previous tests obsolete.
















CHAPTER 7
FUTURE WORK

This custom location system provides the basis to continue research in five related

areas; visually impaired aided navigation systems, portability, more intelligent smart

homes, increased orientation precision with height, and specialty clothing. Visually

impaired navigation systems can be created by adding a distance to obstacle feature. An

idea is to uses one HE900T as a base unit with two extra external mini ultrasonic sensors.

The idea is to attach the mini sensors to the sides of a pair of sunglasses. The mini

sensors along with the base will coordinate with stationary pilots to relay positioning

information in the same fashion as the current system. The difference will be that the

mini sensors will have audio attachments that will be connected to earpieces. The audio

information will activate a series of beeps that represent the distance to the nearest object.

When the left and right beeps occur at the same time, the object is straight ahead. The

base unit is attached to a smart phone by a RS232 data link connection. The phone could

run the calculations necessary to retrieve the distance to obstacle information. This

information can be passed to the central computer through socket connection utilizing

RF. The computer could then use speaker set up in the house to relay the distance

information back to the blind person.

Portability involves creating an indoor system that can calculate distance information

based on the positioning of another location systems enabled devices. These devices











would create an ad-hoc network to relay the distance or position information and

facilitate communication.

More intelligent smart home research can go in two directions. First, homes can be

made more intelligent by analyzing users behavior. This can be done through a series of

complex algorithms to determine a user patterns. These patterns can be combined with

location information to perform a wide range of acts. Two examples of such an act is

turning the oven off after it is used and signaling flashing objects to snap Alzheimer's

patients out of a trance state. The second direction to research is combining location

information and audio commands. Modified voice recognition software can be used with

location information to activate emergency procedures or turn on the lights in the room

the user is currently in.

The current operation of the added orientation feature to the custom software is not

acceptable. More research needs to be done to retrieve more accurate repetitive distance

results and a study into storing past positions to make a more intelligent estimation would

probably be of interest. A theory is to add more pilots to the system. This will allow for

more accurate repetitive distance measurements and allow for height calculations.

Specialty clothing can be thought of as special garments worn by the elders that will

help the tracking system acquire more accurate results and less cumbersome. An idea is

to have multiple sensors attached to a single micro controller. The micro controller and

sensors would then be embedded into a sweater that can be recharged at night on a

hanger. This sweater will increase location accuracy through added sensors and it

disperses the weight thereby making it less cumbersome on the user.















CHAPTER 8
CONCLUSION

From the beginning of this research project, the desired result was to create a low cost

accurate location system that can act as the backbone for a smart home. As this thesis

concludes, this has been accomplished to within 22 cm of accuracy. Exact orientation

would have been a nice added feature, but is not a requirement of the current system.

The system is unique in the sense that a low cost ultrasonic system designed for the

sole purpose of enabling elders to live a longer more independent lifestyle did not exist.

The design of this system is a result of a thorough analysis of the current OEM systems

available and through the creation of custom software. Verification of accuracy was

completed after numerous test runs and changes resulted in data analysis that met the

acceptable error requirements. This paper is very detail oriented to provide a reference

for future students work.

The biggest challenge to overcome was adding error-reducing capabilities to the

software. At this time, error reduction is handled absolute error reduction and accepting

the shortest two distances and is accurate to within 22 cm. The system can be made more

accurate with reflective error reduction techniques. These techniques require rigorous

testing of the finished lab and cannot be conducted at this time. I feel confident that this

location system is valuable and contribute to the overall goal of the ICTA lab, "helping

elders live safer, longer, and more independent lives.














APPENDIX A
CUSTOM SOFTWARE CODE



This appendix provides the code to the custom software created for our system.


Order of Files

Location

Tag

Person

House

SerialConnectionExcpetion

Serial Connection

Owner

Hexamite


//main

//calculates position of each tag

//Uses both beacon to return Person's position

//Class for the House Object

//SerialConnection Exception

//Facilitates Serial Communications

//creates GUI person

//GUI










//
// Designed By: Bryon Winkler
// international Center for Successful Aging
// University of Florida
//
// Class Location:
//
// Main class that opens the serial connection, sets
// up the pilots by reading the Settings.txt file, parses
// the input, performs calculations based on hardware, and
// passes results to Tag and Person classes.
//

import javax.comm.*;
import java.io.*;
import java.util.Enumeration;
import java.util.Properties;
import java.net.*;
import java.lang.Math;

class Location
{
private static Tag left = new Tag();
private static Tag right = new Tag();
private static Person p = new Person(left,right);
private static long numpilots = 4;
private static House h = new House(6030,4090);
private static double orientation;
private static BufferedReader in = null;
private static SerialConnection connection = new SerialConnection();
private static byte escape = OxIB;
private static byte hexreturn = OxOD;
private static char char test = 43;
public static String inputLine = new String(), outputLine;
public static PrintWriter out;
public static BufferedReader ins;


//Constructor
public Location(){

/*getInfo method takes a parsed distance string, converts hex to decimal,
and compares beacon distance information to determine shortest distance info.
This info is formated per harware specifications and passed to appropriate
objects. */

public static void getInfo(String pilotinfo){

//INITIALIZE With high numbers for comparison
int minRight = 99999, minRightnext = 99999, pilotRightmin = 99999, pilotRightnext = 99999,
minLeft = 99999, minLeft next = 99999,
pilotLeftmin = 99999, pilotLeftnext = 99999;
intjj = 0, kk = 0, k = 8, x = 0, testtest=0;
intj = 4;










//while loop searches distance figures, set shortest two distances and //corresponding pilot
numbers to desired variables.

/***************************************++++++++++++++++++++++++++
HERE RIGHT BEACON IS BEACON #1, LEFT IS BEACON #2
****************************************+++++++++++++++++++++++++/

while(x < numpilots)
{
//parse the string to retrieve distance numbers. This
jj = Integer.parselnt(pilotinfo.substring(jj+4),16);
kk = Integer.parselnt(pilotinfo.substring(k,k+4),16);

//For international or compiler differences with Unicode
if(j < 0)jj+=65536;
if(kk < 0) kk+=65536;

//check for two shortest Right Pilot figures
if(jj < minRight&&jj> 180)
{
minRight next = minRight;
pilotRightnext = pilotRightmin;
minRight = jj;
pilotRightmin = x+1;
}
else if(jj < minRight next &&jj > 180)
{
minRight next = jj;
pilotRightnext = x+1;
}

//check for two shortest leftt Pilot figures
if(kk < minLeft&& kk> 180)
{
minLeft next = minLeft;
pilotLeft next = pilotLeft min;
minLeft = kk;
pilotLeftmin = x+1;
}
else if(kk < minLeftnext&& kk>180)
{
minLeft next = kk;
pilotLeftnext = x+1;
}

//Increment the counters to point at next set of distance info
j+=12;
k+=12;
x++;


//to derive correct distances from sonic synch
minRight = minRight/2;
minLeft = minLeft/2;
minRight next = minRightnext minRight;
minLeft next = minLeft next minLeft;











//Calibrate for distance sound travels per microcontorller clock count
double xxx = minRight;
minRight = (int)(xxx .688);
xxx = minLeft;
minLeft = (int)(xxx .688);
xxx = minRight next;
minRight next = (int)(xxx .688);
xxx = minLeft next;
minLeftnext = (int)(xxx .688);

//get Tag location
right.getTagLocation(minRight, minRightnext, pilotRightmin,
pilotRightnext, h);
left.getTagLocation(minLeft, minLeft next, pilotLeftmin, pilotLeft next, h);

//get Person location
p.getPosition();

//get orientation
orientation = p.getOrientation();

//convert to cm
String stl = String.valueOf((int) (p.x/10));
int yy = Math.abs((int) (p.y/10));

String st2 = String.valueOf(yy);
String st3 = String.valueOf((int)orientation);

outputLine = stl+" +st2+" "+st3;
out.println(outputLine);
try
{
inputLine = ins.readLine();
}
catch (IOException e)
{
System.err.println(" Couldn't get I/O for the connection to: ICTA.");
System.exit(l);
}

//creates string for socket communication
String socketinfo = p.getSocketString();

//increment counter
test test++;
}

//main method
public static void main(String Args[]) throws IOException
{
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(3333);
} catch (IOException e) {
System.err.println("Could not listen on port: 3333.");










System.exit(l);
}

Socket clientSocket = null;
try
{
clientSocket = serverSocket.accept();
}
catch (IOException e)
{
System.err.println("Accept failed.");
System.exit(l);
}

out = new PrintWriter(clientSocket.getOutputStream(, true);
ins = new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream());

outputLine = "start";
out.println(outputLine);

//open serial connection to pilots
try
{
connection.openConnection();

catch (SerialConnectionException e2) { }

BufferedReader br = new BufferedReader(new InputStreamReader(connection.is));
BufferedOutputStream bos = new BufferedOutputStream(connection.os);

//send escape char(27) to break
connection.os.write(escape);
bos.flush();

//send char(13) to initiate
bos.write(hexreturn);
bos.flush();

//wait till buffer is empty
for(long xxxxx = 1;xxxxx<1500;xxxxx++){}

//send char(27) to break
bos.write(escape);
bos.flush();

//open Settings.txt and read from file by line. All lines are ignored except setup strings.
//These strings begin with # and are:
// #S 01 OD 03 01 06 00
// #0 01 52 03 01 06 00
// #Q01 4E03 01 06 00
// #Y 11 50 03 01 06 00
// Where first four relate Pilot information and the last three are used by the beacon #Y is the
// secondary address of the master pilot signified by the next
// argument 11. By setting all other pilots to 01 the device uses sonic







72


//synchronization 50 is the primary ascii address in hex of the next pilot in the
//chain. 03 represents the number of beacons + 1
// a full detailed explanation can be found at www.hexamite.com (low Cost //Positioning Device)

try
{
in = new BufferedReader(new FileReader(" Settings.txt"));
}
catch(FileNotFoundException nf)
{
System.out.println("File not found!");
System.exit(2);
}

intj = 0;
long hexvalue = 0;
int tempHex = 0;
String input, verifier, temp;

while((input = in.readLine()) != null)
{

//This is a meetings string for the pilot
if(input.startsWith("#"))
{
//create a checksum to verify permisible software settings
//for he hardware. Input String is in hex, change to long add
//to checksum for verification then concatinate all settings
//strings and the checksums. Send to Hardware for verification
//VB Checksome array is replace with a single long, hexvalue

hex value = 0;

for(int i=3; i < input.length()-1; i+=3)
{
temp = input.substring(i,i+2);
//System.out.println("Substring is : + temp);
tempHex = Integer.parseInt(temp.toUpperCase(),16);
//System.out.println("hexvalue is : + tempHex);
hexvalue = hexvalue + tempHex;
//System.out.println("Total hexvalue is : + hexvalue);
}

verifier = input + ";
byte[] chk = new byte[verifier.length()];
chk = verifier.getBytes();

// Send out set up string and its checksum to pilots
// An example: "#S 01 OD 03 01 06 00 24" Here 24 is the checksumum

for(int i=0;i bos.write(chk[i]);
bos.flush();










//must cast hexvalue to byte and send independently.
//String getBytes() method breaks it up

byte checksum = (byte)hexvalue;
bos.write(checksum);
bos.flush();

//Send out char(13) to initiate new acquisition cylce
bos.write(hex_return);
bos.flush();

//wait for OK
long pp = br.read();
if(pp!=43)
{
System.out.println("Hardware is Not Initialized!!!!!!!");
System.exit(l);
}
j++;





//send out char(13) to intitialize new cycle
bos.write(hex return);
bos.flush();

/*Loop and receive input from pilots(need to terminate via the stop button on the GUI) 4 pilot
string =
"0E02 101A 102A X0345 1FBD 1FBD JOE440 1FBB 1FBB L0789 1981 1A82";
2 pilot string = "0E02 101A 102A ROE03 1FBD 1FBD
See www.hexamite.com (Low Cost Position Device) for full explanation
Each pilot returns three sets (scalars) of information.
Here: 0E02 distance to nearest obstcale from master
101A distance master to beacon 1(right)
102A distance master to beacon 2(left)
Same pattern follows for each pilot except all other pilots List
their primary address ex:ROE03
*/


long in temp =0;
long readtemp=0;
String pilotinfo = "";

//while loop parses out all non-distance information
//the severapplication will be listening to the socket
//if the string read is "start" it will start the following iteration



while(in temp<40000)
{
readtemp=br.read();
char chck = (char)readtemp;











//check for valid numbers. Use ASCII for comparison
if(readtemp>47 && readtemp <77)
{
pilotinfo = pilotinfo + (char)readtemp;
}
if(readtemp==13)
{
getInfo(pilotinfo);
}
intemp++;


//send char(27) to break and allow beacons to power down
bos.write(escape);
bos.flush();

//close connection
connection.closeConnection();
}
}

//
// Designed By: Bryon Winkler
// International Center for Successful Aging
// University of Florida

// Class Tag: Takes in integers representing the various distance
// MEASUREMENTS
// and performs trilateration calculations to determine the proper
// position of the tag relative to the house.

// Tilateration Calculation is based on the following two formulas:
// X=(L2A2-L 1A2+LBA2)/(2*LB)
// Y=(L2A2-X^2)A1/2
// Where: L1 is distance from SecondPilot to tag
// L2 is distance from FirstPilot to tag (usually shortest)
// LB is distance between pilots

// The pilot numbering system is
// #1 Southwest comer
// #2 Southeast comer
// #3 Northeast comer
// #4 Northwest comer
//
// L2_pilot = number of pilot to L2
// L lpilot = number of pilot to L 1

// House position (0,0) is in the SouthEast Corner (Against the Harris lab
// by the backdoor)


//package Location;
import java.lang.*;


class Tag










{
//Class variables
private long x;
private long y;
private long previous_x;
private long previously;

//Constructor
public Tag(){

public long getX(
{
return this.x;
}

public long getY(
{
return this.y;
}

public void getTagLocation(long L2, long L1, long L2_Pilot, long Ll_Pilot, House h)
{
//adjust for height of average person
L2 = (long)Math.sqrt(L2*L2-1200*1200);
L1 = (long)Math.sqrt(L1*L1-1200*1200);

//Get the exact location in reference to the house
if(L2_Pilot== &&L _Pilot==2)
{
//calculate base distance
long base = h.getHeight();

//absolute error corrections
L1 = L 60;
L2 = L2 70;

//erroneous short readings: increase to compute
while(L1+L2 < base)
{
L1 = L1+100*(L1/L2);
L2 = L2+100;
}

//run trilateration
long xx = Math.abs((L2*L2-Ll*Ll+base*base)/(2*base));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));

//Calculate in reference to the South Wall
this.previous_x = this.x;
this.previous_y = this.y;
this.x = (long)yy;
this.y = h.getHeight( xx;

}
else if(L2_Pilot== &&L l_Pilot==4)
{










//calculate base distance
long base = h.getLength();

//absolute error corrections
L1 = L 50;
L2 = L2 70;

//erroneous short readings: increase to compute
while(L1+L2 < base)
{
L1 = L1+100*(L1/L2);
L2 = L2+100;
}

//run trilateration
long xx = Math.abs((L2*L2-Ll*Ll+base*base)/(2*base));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));

//Calculate in reference to the South Wall
this.previous_x = this.x;
this.previous_y = this.y;
this.x = xx;
this.y = h.getHeight() (long)yy;

}
else if(L2_Pilot==2&&L _Pilot==1)
{
//calculate base distance
long base = h.getHeight();

//absolute error corrections
L1 = L 70;
L2 = L2 60;

//erroneous short readings: increase to compute
while(L1+L2 < base)
{
L1 = L1+100*(L1/L2);
L2 = L2+100;
}

//run trilateration
long xx = Math.abs((L2*L2-Ll*Ll+base*base)/(2*base));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));


//Calculate in reference to the South Wall
this.previous_x = this.x;
this.previous_y = this.y;
this.x = (long)yy;
this.y = xx;

else if(L2Pilot2&&LPilot
else if(L2_Pilot==2&&LlPilot==3)


//calculate base distance










long base = h.getLength();

//absolute error corrections
L1 = L 60;
L2 = L2 60;

//erroneous short readings: increase to compute
while(L1+L2 < base)
{
L1 = L1+100*(L1/L2);
L2 = L2+100;
}

//run trilateration
long xx = Math.abs((L2*L2-Ll*Ll+base*base)/(2*base));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));

//Calculate in reference to the East Wall
this.previous_x = this.x;
this.previous_y = this.y;
this.x = xx;
this.y = (long)yy;


}
else if(L2_Pilot==3&&L _Pilot==2)
{
//calculate base distance
long base = h.getLength();

//absolute error corrections
L1 = L 60;
L2 = L2 60;

//erroneous short readings: increase to compute
while(L1+L2 < base)
{
L1 = L1+100*(L1/L2);
L2 = L2+100;
}

//run trilateration
long xx = Math.abs((L2*L2-Ll*Ll+base*base)/(2*base));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));

//Calculate in reference to the East Wall
this.previous_x = this.x;
this.previous_y = this.y;
this.x = h.getLength() xx;
this.y = (long)yy;

}
else if(L2_Pilot==3&&L _Pilot==4)
{
//calculate base distance
long base = h.getHeight();











//absolute error corrections
L1 = L -50;
L2 = L2 60;

//erroneous short readings: increase to compute
while(L1+L2 < base)
{
L1 = L1+100*(L1/L2);
L2 = L2+100;
}

//run trilateration
long xx = Math.abs((L2*L2-Ll*Ll+base*base)/(2*base));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));

//Calculate in reference to the North Wall
this.previous_x = this.x;
this.previous_y = this.y;
this.x = h.getLength() (long)yy;
this.y = xx;
}

else if(L2_Pilot==4&&L _Pilot==3)
{
//calculate base distance
long base = h.getHeight();

//absolute error corrections
L1 = L 60;
L2 = L2 50;

//erroneous short readings: increase to compute
while(L1+L2 < base)
{
L1 = L1+100*(L1/L2);
L2 = L2+100;
}

//run trilateration
long xx = Math.abs((L2*L2-Ll*Ll+base*base)/(2*base));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));

//Calculate in reference to the North Wall
this.previous_x = this.x;
this.previous_y = this.y;
this.x = h.getLength() (long)yy;
this.y = h.getHeight( xx;

}
else if(L2_Pilot==4&&L _Pilot==1)
{
//calculate base distance
long base = h.getLength();










//absolute error corrections
L1 = L 70;
L2 = L2 50;

//erroneous short readings: increase to compute within ratio
while(L1+L2 < base)
{
L1 = L1+(100*L1/L2);
L2 = L2+100;
}

//run trilateration
long xx = Math.abs((L2*L2-Ll*Ll+base*base)/(2*base));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));


//Calculate in reference to the West Wall
this.previous_x = this.x;
this.previous_y = this.y;
this.x = h.getLength() xx;
this.y = h.getHeight() (long)yy;
}
else
{ //we are on a diagonal 4-2, 2-4, 3-1 or 1-3

//absolute error corrections
if(L1_Pilot==4) L = L 50;
else if (L1_Pilot == 3) L1 = L1 60;
else if (L1_Pilot == 2) L1 = L1 60;
else if (L1_Pilot == 1) L1 = L1 70;

if(L2_Pilot==4) L2 = L2 50;
else if (L2_Pilot == 3) L2 = L2 60;
else if (L2_Pilot == 2) L2 = L2 60;
else if (L2_Pilot == 1) L2 = L2 70;

//calculate base distance
double base =
Math.sqrt((h.getHeight()*h.getHeight()+(h.getLength()*h.getLength());

//erroneous short readings: increase to compute
while(L1+L2 < base)
{
L1 = L1+100*(L1/L2);
L2 = L2+100;
}

//run trilateration
double xx = Math.abs(((L2*L2-Ll*Ll+base*base)/(2*base)));
double yy = Math.abs(Math.sqrt((L2*L2-xx*xx)));


//Calculate in reference to the North Wall
this.previous_x = this.x;
this.previousy = this.y;










//calculate angle for diagonal pilots
double opposite_overadjacent =
((double)h.getHeight()/((double)h.getLength();
double angle = Math.atan(opposite_overadjacent);

//get the cosine of angle for diagonal calculations
double cos = Math.cos(angle);

//diagonal pilots: need to find correct xx
double shorttemp = yy/Math.sqrt(2);
double xx relative = cos*xx;

// to find relative angle primary angle less 45 degrees
double xxangle = angle (3.141592653589/4);

// to find xx offset
double xxoffset = Math.abs(Math.tan(xxangle)*yy);
double xxadjustment = cos*xxoffset;

if(L2_Pilot == 4 1| L2_Pilot == 3)
{
this.x = h.getLength) (long)(xx relative xx adjustment);


else if(L2 Pilot == 1 || L2 Pilot == 2)


this.x = (long)(xx relative xx adjustment);


double yy_offset = Math.sqrt(yy*yy+xxadjustment*xxadjustment);

if(L2_Pilot == 4 1| L2_Pilot == 1)
{
this.y = h.getHeighto (long)(Math.sin(angle)*xx + yy offset);


If
else if(L2_Pilot
{


== 2 1 L2 Pilot == 3)


this.y = (long)(Math.sin(angle)*xx + yy_offset);


Designed By: Bryon Winkler Lisa Ran
international Center for Successful Aging
University of Florida

Class Person: Calculates the Person's position by utilizing the left and
right tags position. Provides the means to retrieve the left
and right tag. Positions are in reference to house.










import java.lang.*;

class Person
{
private Tag left;
private Tag right;
public long x;
public long y;
private long previous;
private long previously;
private double orientation;
//Constructor
public Person(Tag left, Tag right)
{
this.left = left;
this.right = right;
}

//returns left Tag
public Tag getLeft()
{
return this.left;
}

//returns right Tag
public Tag getRight(
{
return this.right;
}

//Method creates string for socket communication
public String getSocketString(
{
String socketinfo;
covervr to fit GUI specifications in cm
int guix = (int)this.x/70;
int guiy = (int)this.y/70;
int guiorientation = (int)this.orientation;
socketinfo = Integer.toString(guix) +" + Integer.toString(guiy) +
"" + Integer.toString(guiorientation);
return socket info;
}

//Method calculates the Persons center position.
public void getPosition()
{
//X Position
this.x = (this.left.getX()-this.right.getX()/2 + this.right.getX();

//Y Position
this.y = (this.left.getY()-this.right.getY()/2 + this.right.getY();

}

//Method calculates the Persons Orientation in degrees
public double getOrientation()











//Break down into eight cases. One each for 0,90,180,270 and one for each
//Quadrant I, II, III, IV. 0 represent due N. Here the argument to the
//right of the && signs in the first four cases represent the condition where there //is a small error
representing one of the Tag positions. If the difference form one //Tag to its central position is
zero. We can conclude that their orientation is exactlI 0,90,180, or 270

//For 0
if((this.left.getY() > this.right.getY()) && ((this.left.getX(- this.right.getX()== 0)))
orientation = 0;

//For 90
else if((this.right.getX() > this.left.getX()) && ((this.left.getY(- this.right.getY()== 0))) orientation= 90;

//For 180
else if((this.left.getY() < this.right.getY()) && ((this.left.getX(- this.right.getX()== 0)))
orientation = 180;

//For 270
else if((this.right.getX() < this.left.getX() && ((this.left.getY(- this.right.getY()== 0)))
orientation = 270;

//For Quad 0 < orientation < 90
else if((this.right.getX() > this.left.getX()) && (this.left.getY() > this.right.getY())
{
double xorient = (double)(this.right.getX() this.x);
double y_orient = (double)(this.y this.right.getY());
orientation = Math.toDegrees(Math.atan(xorient/y_orient));
}

//For 90 < orientation < 180
else if((this.right.getX() > this.left.getX()) && (this.left.getY() < this.right.getY())
double orient = this.right.getX-this.x
double x_orient = this.right.get() this.x;
double yorient = this.right.getY() this.y;
orientation = 180- Math.toDegrees(Math.atan(xorient/y_orient));
}

//For 180 < orientation < 270
else if((this.right.getX(< this.left.getX() && (this.left.getY() < this.right.getY())
{
double xorient = this.left.getX() this.x;
double y_orient = this.y-this.left.getY();
orientation = 180+Math.toDegrees(Math.atan(xorient/y_orient));
}
//For 270 < orientation < 360
else
double orient = this.eft.getX this.x
double x_orient = this.left.getX() this.x;
double yorient = this.left.getY() this.y;
orientation = 360 Math.toDegrees(Math.atan(xorient/y_orient));
}
return orientation;

/I










// Designed BY: Bryon Winkler
// House Object
/*********************************************************************

import java.lang.*;

class House
{

PRIVATE LONG HEIGHT;
private long length;

public House(long length, long height)
{
this.height = height;
this.length = length;
}

public long getLength()
{
return this.length;
}

public long getHeight()
{
return this.height;
}


//**********************************************************

/* @(#)SerialConnectionException.java 1.3 98/06/04 SMI
*
* Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
*
*/


PUBLIC CLASS SERIALCONNECTIONEXCEPTION EXTENDS EXCEPTION {

/**
Constructs a SerialConnectionException
with the specified detail message.
*
@param s the detail message.
*/
public SerialConnectionException(String str) {
super(str);
}

/**
Constructs a SerialConnectionException
with no detail message.
*/
public SerialConnectionException() {
super();







84


}
}

//******************************************************************

/* University of Florida
* Computer Information Sciences Engineering Department
* Bryon Winkler
*
* This program was modified to remove all references to the SerialDemo
* example in the Javax.comm package Parameters for this program remain
* unchanged making the above mentioned class unneccesary
*
* @(#)SerialConnection.java 1.6 98/07/17 SMI
*
* Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
*
*/

import javax.comm.*;
import java.io.*;

import j ava.awt.event.*;
import java.util.TooManyListenersException;

/**
A class that handles the details of a serial connection. Reads from one
TextArea and writes to a second TextArea.
Holds the state of the connection.
*/
public class SerialConnection implements SerialPortEventListener {

public OutputStream os;
public InputStream is;
private Location parent;
private CommPortIdentifier portId;
private SerialPort sPort;

private boolean open;

/**
Creates a SerialConnection object and initilizes variables passed in
as params.

@parm parent A SerialDemo object.
@parm parameters A SerialParameters object.
@parm messageAreaOut The TextArea that messages that are to be sent out
of the serial port are entered into.
@parm messageAreaIn The TextArea that messages coming into the serial
port are displayed on.
*/
public SerialConnection() {
open = false;
I










Attempts to open a serial connection and streams using the parameters
in the SerialParameters object. If it is unsuccesfull at any step it
returns the port to a closed state, throws a
SerialConnectionException, and returns.

Gives a timeout of 30 seconds on the portOpen to allow other applications
to reliquish the port if have it open and no longer need it.
*/
public void openConnection() throws SerialConnectionException {

// Obtain a CommPortIdentifier object for the port you want to open.
try {
portId =
CommPortIdentifier.getPortIdentifier(" COM1");
} catch (NoSuchPortException e) {
throw new SerialConnectionException(e.getMessage());
}


// Open the port represented by the CommPortIdentifier object. Give
// the open call a relatively long timeout of 30 seconds to allow
// a different application to reliquish the port if the user
// wants to.
try {
sPort = (SerialPort)portId.open("Location", 30000);
} catch (PortInUseException e) {
throw new SerialConnectionException(e.getMessage());
}

// Set the parameters of the connection. If they won't set, close the
// port before throwing an exception.
try {
setConnectionParameters();
} catch (SerialConnectionException e) {
sPort.close();
throw e;
}




// Open the input and output streams for the connection. If they won't
// open, close the port before throwing an exception.
try {
os = sPort.getOutputStream();
is = sPort.getInputStream();
} catch (IOException e) {
sPort.close();
throw new SerialConnectionException("Error opening i/o streams");
}

// Add this object as an event listener for the serial port.
try {
sPort.addEventListener(this);
} catch (TooManyListenersException e) {
sPort.close();







86


throw new SerialConnectionException("too many listeners added");
}

// Set notifyOnDataAvailable to true to allow event driven input.
sPort.notifyOnDataAvailable(true);

// Set notifyOnBreakInterrup to allow event driven break handling.
sPort.notifyOnBreakInterrupt(true);

// Set receive timeout to allow breaking out of polling loop during
// input handling.
try {
sPort.enableReceiveTimeout(30);
} catch (UnsupportedCommOperationException e) {
}

open = true;
}
/**
Sets the connection parameters to the setting in the parameters object.
If set fails return the parameters object to original settings and
throw exception.
*/
public void setConnectionParameters() throws SerialConnectionException {


// Set connection parameters, if set fails return parameters object
//to original state.


try {

sPort.setSerialPortParams(19200,SerialPort.DATABITS_8,SerialPort.STOPBITS_2,SerialPort.PARITYN
ONE);
} catch (UnsupportedCommOperationException e) {
throw new SerialConnectionException("Unsupported parameter");
}

// Set flow control.
try {
sPort.setFlowControlMode(SerialPort.FLOWCONTROLNONE);
} catch (UnsupportedCommOperationException e) {
throw new SerialConnectionException("Unsupported flow control");
}
}

/**
Close the port and clean up associated elements.
*/
public void closeConnection( {
// If port is already closed just return.
if (!open) {
return;










// Check to make sure sPort has reference to avoid a NPE.
if (sPort != null) {
try {
// close the i/o streams.
os.close();
is.close();
} catch (IOException e) {
System.err.println(e);
}

// Close the port.
sPort.close();
}

open = false;
}

/**
Reports the open status of the port.
@return true if port is open, false if port is closed.
*/
public boolean isOpen()
return open;
}

/**
Method required to compile. If left as in original file it will steal bytes
*/

public void serialEvent(SerialPortEvent e) {
}

//**********************************************************************
//Owner.java Developed by Youssef
IMPORT JAVA.AWT.*;
import java.applet.*;

public class Owner{
public Point Pos;
public int Orient;
public int Fact = 1; //to enlarge the persons head size
public int ASize =30;

public Owner(Point P, int Or){
Pos = new Point(P.x,P.y);
Orient = Or;
}
public int getAntiClockWise (int orl)
{//GACW
if (orl == 0)
{ orl = 270;
}else if ((orl > 0) && (orl <90))
{ orl = orl + (180+(90-orl));
}else if ( orl == 90 )
{ orl = 180;
}else if ((orl > 90) && (orl <180))










{ orl = 90 + (180 orl);
}else if (orl == 180)
{ orl = 90;
}else if ((orl > 180) && (orl <270))
{ orl = 270-orl;
}else if(orl == 270 ){
orl = 0;
}else if ((orl > 270) && (orl <360))
{ orl = 270 + (360-orl);
}else if(orl == 360)
{ orl = 270;
}
return orl;
}//GACW
public void DrawOwner(Graphics gg)
{
Orient = getAntiClockWise (Orient);
gg.fillArc(Pos.x-25,Pos.y-25,50,50,Orient,ASize);
gg.fillArc(Pos.x-25,Pos.y-25,50,50,Orient+(180-ASize),ASize);
gg.fillOval(Pos.x-10,Pos.y-10,20,20);

}//drawOwner
}//Owner

//*********************************************************************
//Hexamite.java Created By Youssef

import java.applet.*;
import java.util.*;
import java.text.*;
IMPORT JAVAX. SWING.*;
import j ava.awt.event.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.StringTokenizer;


public class Hexamite extends JApplet implements Runnable, ActionListener {

final int OriginX = 50;
final int OriginY = 50;
final int Factor = 1 ;
final int Dominator = 1 ;

Socket kkSocket = null;
PrintWriter out = null;
BufferedReader in = null;
String fromServer= new String();
String fromUser= new String();
String Ack = new String();
BufferedReader stdIn;
Thread thread;
int count = 10;
public int x=0,y=0,or-0,flag=0;
public long xd,yd,ord;











Owner o,oo;

public void start() {

thread = new Thread(this);
thread. start();
I

public void init(){
JButton button = new JButton("Start");
buttonl.addActionListener(this);

JButton button = new JButton("Stop");
button2.addActionListener(this);

Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayouto);
contentPane.add(buttonl);
contentPane.add(button2);

I
public void run(){//rl

try {//r2
kkSocket = new Socket("Gainesville", 3333);
out = new PrintWriter(kkSocket.getOutputStream(, true);
in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream());
}//r2
catch (UnknownHostException e) {//r3
System.err.println("Don't know about host: Gainesville.");
System.exit(l);
}//r3
catch (IOException e) {//r4
System.err.println(" Couldn't get I/O for the connection to: Gainesville.");
System.exit(l);
}//r4

stdIn = new BufferedReader(new InputStreamReader(System.in));

try{//r5
fromServer = in.readLine();
}//r5
catch (IOException e){//r6
System.err.println(" Couldn't get I/O for the connection to: Gainesville.");
System.exit(l);
}//r6

while (fromServer != null)
{//whilefromServer-r7
try {//r8
System.out.println("before repainting! "+fromServer);
thread.sleep(5);
}//r8
catch (InterruptedException e) { }//r9











if (fromServer.equals("stop"))
{//rl0
System.exit(l);
//break;
}//rl0
else if (fromServer.equals("start"))
{//rll
fromUser = "go";
out.println(fromUser);
}//rll
else if (fromServer != null)
{//r12
StringTokenizer tokenizer = new StringTokenizer(fromServer);
int count = 0;
while (tokenizer.hasMoreTokens())
{//whiletoken
if (count == 0)
{//ifO
x = (Integer.valueOf(tokenizer.nextToken()).intValue();

}//ifo
if (count == 1)
{//ifl
y = (Integer.valueOf(tokenizer.nextToken()).intValue();
}//ifl
if (count == 2)
{//if2
or = (Integer.valueOf(tokenizer.nextToken()).intValue();
}//if2

count++;

}//whiletoken
repaint();
System.out.println("here you go");
}//r12

fromUser = "go";
out.println(fromUser);

try{
fromServer = in.readLine();
System.out.println("the next fromServer is ---->"+fromServer);
} catch (IOException e){
System.err.println(" Couldn't get I/O for the connection to: Gainesville.");
System.exit(l);
}
}//whilefromServer



public void actionPerformed (ActionEvent e){