578bff246aade619fc84448c7f44174e electronics-15-02993.pdf 7fbebfb601d7f0de5480aade169670f0555871c0 electronics-15-02993.pdf 1929286f28a78d24b6659b14e772233ebe55c3cd6885bc15d3f4e0987a05e91e electronics-15-02993.pdf Title: State Machine Model of the Operation Control ofa Differential- Drive Mobile Robot Subject: Existing robotic control frameworks often rely on complex hierarchical state machines or middleware infrastructures, which may be unsuitable for resource-constrained embedded systems and difficult to map directly to low-level code. This work presents a complete state‑machine model for the reactive control layer of a differential‑drive mobile robot. Although mobile‑robot controllers often exhibit considerable complexity—particularly at lower levels, where numerous hardware-dependent operations occur—this work shows that a network of concurrent state machines provides a clear and lightweight method for specifying and implementing control behavior. The proposed approach decomposes the reactive controller into two concurrent extended finite‑state machines (CEFSMs) responsible for locomotion and lidar operation, connected through simple and predictable protocols. This structure enables a direct mapping from model diagrams to procedural code in languages such as C++ and Lua. The method has been used extensively in an undergraduate Embedded Systems course since 2011, supporting both physical robots (Arduino‑based) and their digital twins in CoppeliaSim. We also introduce a discrete control strategy that approximates continuous behavior and incorporates a simplified proportional–integral–derivative (PID) controller for pose correction. The approach reduces development effort, increases model clarity, and yields reusable code across hardware and simulation platforms. Quantitative evaluation shows that the proposed PID-based control strategy can improve positioning accuracy by up to an order of magnitude compared to a baseline on–off controller, without increasing the computational cost. In addition, the control cycle time has been significantly reduced (from 31 ms to 12 ms) in order to ensure a stable execution period; this, in turn, results in a more predictable controller output and improved trajectory consistency. Keywords: differential‑drive mobile robots; embedded control systems; extended finite‑state machines (EFSM); concurrent state machines; state‑machine‑based control; reactive robot control; model-to-code mapping; digital twins; robotics education Author: Lluís Ribas-Xirgo Creator: LaTeX with hyperref Producer: pdfTeX-1.40.25; modified using OpenPDF 1.4.2 CreationDate: Wed Jul 8 15:00:09 2026 CEST ModDate: Wed Jul 8 15:12:09 2026 CEST Custom Metadata: yes Metadata Stream: no Tagged: no UserProperties: no Suspects: no Form: none JavaScript: no Pages: 28 Encrypted: no Page size: 595.276 x 841.89 pts (A4) Page rot: 0 File size: 10802385 bytes Optimized: no PDF version: 1.7 name type encoding emb sub uni object ID ------------------------------------ ----------------- ---------------- --- --- --- --------- BBGACH+URWPalladioL-Ital Type 1 Custom yes yes yes 74 0 LKTQCK+URWPalladioL-Bold Type 1 Custom yes yes yes 75 0 BSUDQZ+URWPalladioL-Roma Type 1 Custom yes yes yes 76 0 KEGQMM+PazoMath-Italic Type 1 Builtin yes yes yes 215 0 SOSTRQ+CMR10 Type 1 Builtin yes yes yes 216 0 GIEAZQ+CMSY10 Type 1 Builtin yes yes yes 217 0 ZIJIOS+CMEX10 Type 1 Builtin yes yes yes 299 0 SYFPBV+CMMI10 Type 1 Builtin yes yes yes 320 0 FTWHAS+PazoMath Type 1 Builtin yes yes yes 333 0 JXBVFQ+URWPalladioL-BoldItal Type 1 Custom yes yes yes 348 0 Jhove (Rel. 1.28.0, 2023-05-18) Date: 2026-09-30 03:57:23 CEST RepresentationInformation: electronics-15-02993.pdf ReportingModule: PDF-hul, Rel. 1.12.4 (2023-03-16) LastModified: 2026-09-29 14:18:21 CEST Size: 10802385 Format: PDF Version: 1.7 Status: Well-Formed and valid SignatureMatches: PDF-hul MIMEtype: application/pdf PDFMetadata: Objects: 587 FreeObjects: 1 IncrementalUpdates: 0 DocumentCatalog: ViewerPreferences: HideToolbar: false HideMenubar: false HideWindowUI: false FitWindow: true CenterWindow: false DisplayDocTitle: false NonFullScreenPageMode: UseNone Direction: L2R ViewArea: CropBox ViewClip: CropBox PrintArea: CropBox PageClip: CropBox PageLayout: SinglePage PageMode: UseNone Outlines: Item: Title: Introduction Item: Title: Literature Overview Item: Title: Controller Stack Item: Title: L0 Model Item: Title: Movement Control Item: Title: Programming Item: Title: Conclusions Item: Title: References Info: Title: State Machine Model of the Operation Control ofa Differential- Drive Mobile Robot Author: Lluís Ribas-Xirgo Subject: Existing robotic control frameworks often rely on complex hierarchical state machines or middleware infrastructures, which may be unsuitable for resource-constrained embedded systems and difficult to map directly to low-level code. This work presents a complete state‑machine model for the reactive control layer of a differential‑drive mobile robot. Although mobile‑robot controllers often exhibit considerable complexity—particularly at lower levels, where numerous hardware-dependent operations occur—this work shows that a network of concurrent state machines provides a clear and lightweight method for specifying and implementing control behavior. The proposed approach decomposes the reactive controller into two concurrent extended finite‑state machines (CEFSMs) responsible for locomotion and lidar operation, connected through simple and predictable protocols. This structure enables a direct mapping from model diagrams to procedural code in languages such as C++ and Lua. The method has been used extensively in an undergraduate Embedded Systems course since 2011, supporting both physical robots (Arduino‑based) and their digital twins in CoppeliaSim. We also introduce a discrete control strategy that approximates continuous behavior and incorporates a simplified proportional–integral–derivative (PID) controller for pose correction. The approach reduces development effort, increases model clarity, and yields reusable code across hardware and simulation platforms. Quantitative evaluation shows that the proposed PID-based control strategy can improve positioning accuracy by up to an order of magnitude compared to a baseline on–off controller, without increasing the computational cost. In addition, the control cycle time has been significantly reduced (from 31 ms to 12 ms) in order to ensure a stable execution period; this, in turn, results in a more predictable controller output and improved trajectory consistency. Keywords: differential‑drive mobile robots; embedded control systems; extended finite‑state machines (EFSM); concurrent state machines; state‑machine‑based control; reactive robot control; model-to-code mapping; digital twins; robotics education Creator: LaTeX with hyperref Producer: pdfTeX-1.40.25; modified using OpenPDF 1.4.2 CreationDate: Wed Jul 08 15:00:09 CEST 2026 ModDate: Wed Jul 08 15:12:09 CEST 2026 ID: 0x765f0cda72169f8334de64cc981909c4, 0xb539b55e77d63b041f0260e1f45bfd51 Filters: FilterPipeline: FlateDecode Images: Image: NisoImageMetadata: FormatName: image/png ImageWidth: 1288 ImageHeight: 1552 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 3410 ImageHeight: 1592 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 1164 ImageHeight: 1124 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 1860 ImageHeight: 980 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 2632 ImageHeight: 2024 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 2784 ImageHeight: 1532 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 3076 ImageHeight: 1792 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 2894 ImageHeight: 946 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 1568 ImageHeight: 1488 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 2831 ImageHeight: 1472 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 1000 ImageHeight: 1120 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Image: NisoImageMetadata: FormatName: image/png ImageWidth: 3080 ImageHeight: 1531 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Filter: FlateDecode Fonts: Type1: Font: BaseFont: SYFPBV+CMMI10 FontSubset: true FirstChar: 60 LastChar: 62 FontDescriptor: FontName: SYFPBV+CMMI10 Flags: Symbolic FontBBox: -32, -250, 1048, 750 FontFile: true ToUnicode: true Font: BaseFont: KEGQMM+PazoMath-Italic FontSubset: true FirstChar: 97 LastChar: 112 FontDescriptor: FontName: KEGQMM+PazoMath-Italic Flags: Symbolic FontBBox: -70, -277, 902, 733 FontFile: true ToUnicode: true Font: BaseFont: SOSTRQ+CMR10 FontSubset: true FirstChar: 40 LastChar: 93 FontDescriptor: FontName: SOSTRQ+CMR10 Flags: Symbolic FontBBox: -40, -250, 1009, 750 FontFile: true ToUnicode: true Font: BaseFont: GIEAZQ+CMSY10 FontSubset: true FirstChar: 0 LastChar: 106 FontDescriptor: FontName: GIEAZQ+CMSY10 Flags: Symbolic FontBBox: -29, -960, 1116, 775 FontFile: true ToUnicode: true Font: BaseFont: BBGACH+URWPalladioL-Ital FontSubset: true FirstChar: 2 LastChar: 150 FontDescriptor: FontName: BBGACH+URWPalladioL-Ital Flags: Symbolic FontBBox: -170, -305, 1010, 941 FontFile: true EncodingDictionary: Differences: true ToUnicode: true Font: BaseFont: LKTQCK+URWPalladioL-Bold FontSubset: true FirstChar: 3 LastChar: 237 FontDescriptor: FontName: LKTQCK+URWPalladioL-Bold Flags: Symbolic FontBBox: -152, -301, 1000, 935 FontFile: true EncodingDictionary: Differences: true ToUnicode: true Font: BaseFont: ZIJIOS+CMEX10 FontSubset: true FirstChar: 0 LastChar: 113 FontDescriptor: FontName: ZIJIOS+CMEX10 Flags: Symbolic FontBBox: -24, -2960, 1454, 772 FontFile: true ToUnicode: true Font: BaseFont: BSUDQZ+URWPalladioL-Roma FontSubset: true FirstChar: 2 LastChar: 252 FontDescriptor: FontName: BSUDQZ+URWPalladioL-Roma Flags: Symbolic FontBBox: -166, -283, 1021, 943 FontFile: true EncodingDictionary: Differences: true ToUnicode: true Font: BaseFont: JXBVFQ+URWPalladioL-BoldItal FontSubset: true FirstChar: 95 LastChar: 115 FontDescriptor: FontName: JXBVFQ+URWPalladioL-BoldItal Flags: Symbolic FontBBox: -170, -300, 1073, 935 FontFile: true EncodingDictionary: Differences: true ToUnicode: true Font: BaseFont: FTWHAS+PazoMath FontSubset: true FirstChar: 68 LastChar: 181 FontDescriptor: FontName: FTWHAS+PazoMath Flags: Symbolic FontBBox: -40, -283, 878, 946 FontFile: true ToUnicode: true Pages: Page: Sequence: 1 Annotations: Annotation: Subtype: Link Rect: 34, 204, 124, 223 Annotation: Subtype: Link Rect: 88, 77, 152, 84 Annotation: Subtype: Link Rect: 34, 64, 119, 72 Annotation: Subtype: Link Rect: 34, 773, 153, 809 Annotation: Subtype: Link Rect: 515, 773, 560, 809 Annotation: Subtype: Link Rect: 117, 663, 128, 677 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 2 Annotations: Annotation: Subtype: Link Rect: 479, 742, 486, 754 ActionDest: 13 Annotation: Subtype: Link Rect: 524, 589, 531, 601 ActionDest: 18 Annotation: Subtype: Link Rect: 549, 561, 556, 573 ActionDest: 23 Annotation: Subtype: Link Rect: 202, 533, 209, 545 ActionDest: 28 Annotation: Subtype: Link Rect: 491, 505, 498, 517 ActionDest: 33 Annotation: Subtype: Link Rect: 370, 366, 377, 378 ActionDest: 18 Annotation: Subtype: Link Rect: 398, 366, 405, 378 ActionDest: 23 Annotation: Subtype: Link Rect: 408, 338, 415, 350 ActionDest: 23 Annotation: Subtype: Link Rect: 462, 324, 469, 336 ActionDest: 28 Annotation: Subtype: Link Rect: 247, 296, 254, 308 ActionDest: 33 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 3 Annotations: Annotation: Subtype: Link Rect: 550, 700, 556, 709 ActionDest: 43 Annotation: Subtype: Link Rect: 425, 658, 432, 667 ActionDest: 43 Annotation: Subtype: Link Rect: 392, 561, 399, 569 ActionDest: 43 Annotation: Subtype: Link Rect: 524, 561, 531, 569 ActionDest: 43 Annotation: Subtype: Link Rect: 335, 505, 342, 514 ActionDest: 43 Annotation: Subtype: Link Rect: 345, 505, 352, 514 ActionDest: 43 Annotation: Subtype: Link Rect: 364, 435, 371, 444 ActionDest: 43 Annotation: Subtype: Link Rect: 429, 407, 436, 416 ActionDest: 43 Annotation: Subtype: Link Rect: 514, 407, 521, 416 ActionDest: 43 Annotation: Subtype: Link Rect: 522, 407, 529, 416 ActionDest: 146 Annotation: Subtype: Link Rect: 194, 393, 201, 402 ActionDest: 43 Annotation: Subtype: Link Rect: 436, 379, 443, 388 ActionDest: 43 Annotation: Subtype: Link Rect: 444, 379, 451, 388 ActionDest: 146 Annotation: Subtype: Link Rect: 434, 338, 446, 347 ActionDest: 146 Annotation: Subtype: Link Rect: 271, 310, 278, 319 ActionDest: 43 Annotation: Subtype: Link Rect: 545, 296, 557, 305 ActionDest: 146 Annotation: Subtype: Link Rect: 343, 198, 355, 207 ActionDest: 146 Annotation: Subtype: Link Rect: 261, 129, 273, 138 ActionDest: 146 Annotation: Subtype: Link Rect: 545, 115, 557, 124 ActionDest: 146 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 4 Annotations: Annotation: Subtype: Link Rect: 431, 758, 443, 767 ActionDest: 146 Annotation: Subtype: Link Rect: 376, 730, 388, 740 ActionDest: 146 Annotation: Subtype: Link Rect: 544, 717, 556, 726 ActionDest: 146 Annotation: Subtype: Link Rect: 338, 689, 350, 698 ActionDest: 146 Annotation: Subtype: Link Rect: 456, 577, 468, 586 ActionDest: 146 Annotation: Subtype: Link Rect: 497, 410, 509, 419 ActionDest: 146 Annotation: Subtype: Link Rect: 418, 341, 430, 350 ActionDest: 146 Annotation: Subtype: Link Rect: 431, 341, 443, 350 ActionDest: 146 Annotation: Subtype: Link Rect: 241, 229, 253, 238 ActionDest: 146 Annotation: Subtype: Link Rect: 253, 229, 265, 238 ActionDest: 146 Annotation: Subtype: Link Rect: 275, 201, 287, 210 ActionDest: 146 Annotation: Subtype: Link Rect: 290, 201, 302, 210 ActionDest: 146 Annotation: Subtype: Link Rect: 491, 173, 503, 182 ActionDest: 146 Annotation: Subtype: Link Rect: 506, 173, 518, 182 ActionDest: 146 Annotation: Subtype: Link Rect: 366, 132, 378, 141 ActionDest: 146 Annotation: Subtype: Link Rect: 379, 132, 390, 141 ActionDest: 146 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 5 Annotations: Annotation: Subtype: Link Rect: 455, 758, 467, 767 ActionDest: 146 Annotation: Subtype: Link Rect: 444, 730, 456, 740 ActionDest: 146 Annotation: Subtype: Link Rect: 269, 396, 281, 405 ActionDest: 197 Annotation: Subtype: Link Rect: 250, 382, 262, 391 ActionDest: 197 Annotation: Subtype: Link Rect: 228, 354, 240, 364 ActionDest: 197 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 6 Annotations: Annotation: Subtype: Link Rect: 363, 575, 370, 587 ActionDest: 91 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 7 Annotations: Annotation: Subtype: Link Rect: 377, 408, 384, 420 ActionDest: 218 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 8 Annotations: Annotation: Subtype: Link Rect: 258, 728, 265, 740 ActionDest: 28 Annotation: Subtype: Link Rect: 348, 448, 355, 460 ActionDest: 23 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 9 Annotations: Annotation: Subtype: Link Rect: 409, 589, 416, 601 ActionDest: 232 Annotation: Subtype: Link Rect: 348, 122, 355, 134 ActionDest: 232 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 10 Annotations: Annotation: Subtype: Link Rect: 321, 408, 328, 420 ActionDest: 234 Annotation: Subtype: Link Rect: 549, 254, 556, 266 ActionDest: 234 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 11 Annotations: Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 12 Annotations: Annotation: Subtype: Link Rect: 200, 686, 208, 698 ActionDest: 278 Annotation: Subtype: Link Rect: 320, 616, 327, 628 ActionDest: 28 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 13 Annotations: Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 14 Annotations: Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 15 Annotations: Annotation: Subtype: Link Rect: 409, 555, 416, 568 ActionDest: 284 Annotation: Subtype: Link Rect: 235, 213, 242, 225 ActionDest: 284 Annotation: Subtype: Link Rect: 278, 186, 285, 199 ActionDest: 284 Annotation: Subtype: Link Rect: 506, 130, 513, 143 ActionDest: 284 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 16 Annotations: Annotation: Subtype: Link Rect: 291, 626, 298, 638 ActionDest: 284 Annotation: Subtype: Link Rect: 359, 626, 366, 638 ActionDest: 285 Annotation: Subtype: Link Rect: 351, 288, 357, 301 ActionDest: 285 Annotation: Subtype: Link Rect: 355, 274, 362, 286 ActionDest: 285 Annotation: Subtype: Link Rect: 495, 163, 502, 175 ActionDest: 285 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 17 Annotations: Annotation: Subtype: Link Rect: 440, 609, 452, 621 ActionDest: 33 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 18 Annotations: Annotation: Subtype: Link Rect: 408, 756, 414, 768 ActionDest: 286 Annotation: Subtype: Link Rect: 210, 285, 217, 297 ActionDest: 286 Annotation: Subtype: Link Rect: 293, 272, 300, 284 ActionDest: 286 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 19 Annotations: Annotation: Subtype: Link Rect: 553, 304, 560, 316 ActionDest: 362 Annotation: Subtype: Link Rect: 437, 262, 444, 274 ActionDest: 362 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 20 Annotations: Annotation: Subtype: Link Rect: 252, 374, 265, 386 ActionDest: 405 Annotation: Subtype: Link Rect: 219, 304, 226, 316 ActionDest: 404 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 21 Annotations: Annotation: Subtype: Link Rect: 428, 290, 440, 302 ActionDest: 405 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 22 Annotations: Annotation: Subtype: Link Rect: 398, 451, 410, 463 ActionDest: 406 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 23 Annotations: Annotation: Subtype: Link Rect: 212, 756, 219, 768 ActionDest: 407 Annotation: Subtype: Link Rect: 309, 742, 316, 754 ActionDest: 285 Annotation: Subtype: Link Rect: 502, 538, 514, 550 ActionDest: 38 Annotation: Subtype: Link Rect: 326, 412, 333, 425 ActionDest: 407 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 24 Annotations: Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 25 Annotations: Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 26 Annotations: Annotation: Subtype: Link Rect: 252, 296, 290, 307 Annotation: Subtype: Link Rect: 520, 270, 557, 281 Annotation: Subtype: Link Rect: 59, 258, 95, 268 Annotation: Subtype: Link Rect: 229, 232, 266, 243 Annotation: Subtype: Link Rect: 188, 194, 226, 205 Annotation: Subtype: Link Rect: 232, 194, 268, 205 Annotation: Subtype: Link Rect: 321, 168, 560, 179 Annotation: Subtype: Link Rect: 56, 155, 97, 166 Annotation: Subtype: Link Rect: 196, 104, 234, 115 Annotation: Subtype: Link Rect: 176, 67, 213, 77 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 27 Annotations: Annotation: Subtype: Link Rect: 328, 743, 366, 754 Annotation: Subtype: Link Rect: 90, 693, 128, 703 Annotation: Subtype: Link Rect: 120, 654, 157, 665 Annotation: Subtype: Link Rect: 253, 616, 291, 627 Annotation: Subtype: Link Rect: 177, 590, 214, 601 Annotation: Subtype: Link Rect: 200, 565, 237, 576 Annotation: Subtype: Link Rect: 243, 565, 280, 576 Annotation: Subtype: Link Rect: 392, 539, 429, 550 Annotation: Subtype: Link Rect: 519, 526, 557, 539 Annotation: Subtype: Link Rect: 429, 513, 466, 524 Annotation: Subtype: Link Rect: 278, 462, 316, 473 Annotation: Subtype: Link Rect: 510, 386, 547, 397 Annotation: Subtype: Link Rect: 331, 360, 369, 371 Annotation: Subtype: Link Rect: 321, 296, 358, 307 Annotation: Subtype: Link Rect: 291, 271, 328, 282 Annotation: Subtype: Link Rect: 201, 195, 238, 205 Annotation: Subtype: Link Rect: 374, 169, 412, 180 Annotation: Subtype: Link Rect: 313, 130, 350, 141 Annotation: Subtype: Link Rect: 519, 105, 557, 116 Annotation: Subtype: Link Rect: 59, 93, 95, 103 Annotation: Subtype: Link Rect: 104, 67, 142, 78 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Page: Sequence: 28 Annotations: Annotation: Subtype: Link Rect: 474, 743, 511, 754 Annotation: Subtype: Link Rect: 407, 705, 444, 716 Annotation: Subtype: Link Rect: 408, 680, 445, 690 Annotation: Subtype: Link Rect: 398, 27, 560, 37 Checksum: 42e04c28 Type: CRC32 Checksum: 578bff246aade619fc84448c7f44174e Type: MD5 Checksum: 7fbebfb601d7f0de5480aade169670f0555871c0 Type: SHA-1 Checksum: 1929286f28a78d24b6659b14e772233ebe55c3cd6885bc15d3f4e0987a05e91e Type: SHA-256