├── Alternatives ├── LICENSE ├── README.md ├── cad-files ├── Kaya_Battery_Holder.iges ├── Kaya_Battery_Holder.step ├── Kaya_Battery_Holder.stl ├── Kaya_Battery_Terminal_Holder.iges ├── Kaya_Battery_Terminal_Holder.step ├── Kaya_Battery_Terminal_Holder.stl ├── Kaya_Electronics_Bay.iges ├── Kaya_Electronics_Bay.step ├── Kaya_Electronics_Bay.stl ├── Kaya_Motor_Bottom_Plate.iges ├── Kaya_Motor_Bottom_Plate.step ├── Kaya_Motor_Bottom_Plate.stl ├── Kaya_Motor_Top_Plate.iges ├── Kaya_Motor_Top_Plate.step ├── Kaya_Motor_Top_Plate.stl ├── Kaya_Nano_Base.iges ├── Kaya_Nano_Base.step ├── Kaya_Nano_Base.stl ├── Kaya_Pusher.iges ├── Kaya_Pusher.step ├── Kaya_Pusher.stl ├── Kaya_Pusher_Mount.iges ├── Kaya_Pusher_Mount.step ├── Kaya_Pusher_Mount.stl ├── Kaya_Realsense_Bridge.iges ├── Kaya_Realsense_Bridge.step ├── Kaya_Realsense_Bridge.stl ├── Kaya_Realsense_Mount.iges ├── Kaya_Realsense_Mount.step ├── Kaya_Realsense_Mount.stl ├── Kaya_Terminal_Block_Cover.iges ├── Kaya_Terminal_Block_Cover.step ├── Kaya_Terminal_Block_Cover.stl ├── Kaya_Wheel_Hub_Inside.iges ├── Kaya_Wheel_Hub_Inside.step ├── Kaya_Wheel_Hub_Inside.stl ├── Kaya_Wheel_Hub_Outside.iges ├── Kaya_Wheel_Hub_Outside.step ├── Kaya_Wheel_Hub_Outside.stl └── NVIDIA_Kaya_3D_Printed_Parts_List.pdf └── doc ├── assemble_kaya.md ├── images ├── kaya10.jpg ├── kaya11.jpg ├── kaya12.jpg ├── kaya13.jpg ├── kaya14.jpg ├── kaya15.jpg ├── kaya16.jpg ├── kaya17a.jpg ├── kaya17b.jpg ├── kaya18.jpg ├── kaya19.jpg ├── kaya2.jpg ├── kaya20.jpg ├── kaya21.jpg ├── kaya22a.jpg ├── kaya23.jpg ├── kaya24a.jpg ├── kaya24b.jpg ├── kaya25.jpg ├── kaya26.jpg ├── kaya27.jpg ├── kaya28.jpg ├── kaya29.jpg ├── kaya2a.jpg ├── kaya3.jpg ├── kaya4.jpg ├── kaya5.jpg ├── kaya5a.jpg ├── kaya6.jpg ├── kaya6a.jpg ├── kaya6b.jpg ├── kaya7.jpg ├── kaya8.jpg ├── kaya9.jpg ├── kaya_opt_a.jpg ├── kaya_opt_b.jpg ├── kaya_robot.jpg ├── kaya_wiring_diagram_v1.png ├── nano-wifi-1.jpg ├── nano-wifi-2.jpg ├── nano-wifi-3.jpg ├── nano-wifi-4.jpg ├── nano-wifi-5.jpg ├── nano_example1.jpg ├── nano_example2.jpg ├── nano_example3.jpg └── xavier_example.jpg ├── nano.md └── wire_bmi160_imu.md /Alternatives: -------------------------------------------------------------------------------- 1 | Other battery, charger and joystick options for Germany (locally available). 2 | Links: 3 | Battery: https://www.amazon.de/Powilling-ErsatzAkku-Dewalt-DCB200-DCB183/dp/B07K9SCJVG/ref=sr_1_21_sspa?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=dewalt+akku&qid=1564045704&s=gateway&sr=8-21-spons&psc=1 4 | Charger: https://www.amazon.de/dp/B01E85JRZ6/ref=pd_sim_b2b_1/260-0460346-0923826?_encoding=UTF8&pd_rd_i=B01E85JRZ6&pd_rd_r=69741dec-7a4a-4d32-92d0-b35ccfb7e4c4&pd_rd_w=BYxVG&pd_rd_wg=z6vwu&pf_rd_p=e1a147ba-55db-4b24-937f-1f31927c8f39&pf_rd_r=36AREKHE36QFVJXDH4SC&psc=1&refRID=36AREKHE36QFVJXDH4SC 5 | Joystick: https://www.amazon.de/dp/B07MCGVKHD/ref=sr_1_12_sspa?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=joystick+playstation+wireless&qid=1573058158&sr=8-12-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExM0FJVEREVVRRQllRJmVuY3J5cHRlZElkPUEwNzc0MTIzMVE5MDUyWllLVzJORiZlbmNyeXB0ZWRBZElkPUEwMjg3Njg5M0lIS1RXSlQ2UVU4QiZ3aWRnZXROYW1lPXNwX210ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU= 6 | 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 NVIDIA Isaac 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # kaya-robot 2 | 3 | Kaya is an open-source robot powered by NVIDIA's Isaac SDK and the Jetson Nano. 4 | 5 | This repository contains 3D-printable and editable CAD files in the `cad-files` folder (STL, STEP, IGES), as well as a complete bill of materials and assembly instructions for [NVIDIA Kaya](doc/assemble_kaya.md) in the `doc` folder. 6 | 7 | ![image](doc/images/kaya_robot.jpg) 8 | 9 | Kaya is intended to provide an accessible starting point for robotics development, and a number of sample apps for Kaya come packaged with the Isaac SDK. 10 | 11 | For more information on Kaya and the Isaac SDK, see the [NVIDIA Isaac SDK Documentation](https://docs.nvidia.com/isaac/isaac/doc/index.html). 12 | 13 | You can also join NVIDIA's developer community to ask questions and share your projects on the [Isaac SDK Forums](https://devtalk.nvidia.com/default/board/375/sdk/)! 14 | -------------------------------------------------------------------------------- /cad-files/Kaya_Battery_Holder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Battery_Holder.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Battery_Terminal_Holder.step: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION( ( '' ), ' ' ); 4 | FILE_NAME( '/vol/tmp/translate-129697055137538063/5cafa80a6e1b28179f496a65.step', '2019-04-11T20:48:10', ( '' ), ( '' ), ' ', ' ', ' ' ); 5 | FILE_SCHEMA( ( 'AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }' ) ); 6 | ENDSEC; 7 | DATA; 8 | #1 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION( ' ', ( #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26, #27, #28, #29, #30, #31, #32, #33, #34, #35, #36, #37, #38, #39 ), #6 ); 9 | #2 = PRODUCT_DEFINITION_CONTEXT( '', #40, 'design' ); 10 | #3 = APPLICATION_PROTOCOL_DEFINITION( 'international standard', 'automotive_design', 2001, #40 ); 11 | #4 = PRODUCT_CATEGORY_RELATIONSHIP( 'NONE', 'NONE', #41, #42 ); 12 | #5 = SHAPE_DEFINITION_REPRESENTATION( #43, #44 ); 13 | #6 = ( GEOMETRIC_REPRESENTATION_CONTEXT( 3 )GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( ( #47 ) )GLOBAL_UNIT_ASSIGNED_CONTEXT( ( #49, #50, #51 ) )REPRESENTATION_CONTEXT( 'NONE', 'WORKSPACE' ) ); 14 | #10 = STYLED_ITEM( '', ( #53 ), #54 ); 15 | #11 = STYLED_ITEM( '', ( #55 ), #56 ); 16 | #12 = STYLED_ITEM( '', ( #57 ), #58 ); 17 | #13 = STYLED_ITEM( '', ( #59 ), #60 ); 18 | #14 = STYLED_ITEM( '', ( #61 ), #62 ); 19 | #15 = STYLED_ITEM( '', ( #63 ), #64 ); 20 | #16 = STYLED_ITEM( '', ( #65 ), #66 ); 21 | #17 = STYLED_ITEM( '', ( #67 ), #68 ); 22 | #18 = STYLED_ITEM( '', ( #69 ), #70 ); 23 | #19 = STYLED_ITEM( '', ( #71 ), #72 ); 24 | #20 = STYLED_ITEM( '', ( #73 ), #74 ); 25 | #21 = STYLED_ITEM( '', ( #75 ), #76 ); 26 | #22 = STYLED_ITEM( '', ( #77 ), #78 ); 27 | #23 = STYLED_ITEM( '', ( #79 ), #80 ); 28 | #24 = STYLED_ITEM( '', ( #81 ), #82 ); 29 | #25 = STYLED_ITEM( '', ( #83 ), #84 ); 30 | #26 = STYLED_ITEM( '', ( #85 ), #86 ); 31 | #27 = STYLED_ITEM( '', ( #87 ), #88 ); 32 | #28 = STYLED_ITEM( '', ( #89 ), #90 ); 33 | #29 = STYLED_ITEM( '', ( #91 ), #92 ); 34 | #30 = STYLED_ITEM( '', ( #93 ), #94 ); 35 | #31 = STYLED_ITEM( '', ( #95 ), #96 ); 36 | #32 = STYLED_ITEM( '', ( #97 ), #98 ); 37 | #33 = STYLED_ITEM( '', ( #99 ), #100 ); 38 | #34 = STYLED_ITEM( '', ( #101 ), #102 ); 39 | #35 = STYLED_ITEM( '', ( #103 ), #104 ); 40 | #36 = STYLED_ITEM( '', ( #105 ), #106 ); 41 | #37 = STYLED_ITEM( '', ( #107 ), #108 ); 42 | #38 = STYLED_ITEM( '', ( #109 ), #110 ); 43 | #39 = STYLED_ITEM( '', ( #111 ), #112 ); 44 | #40 = APPLICATION_CONTEXT( 'core data for automotive mechanical design processes' ); 45 | #41 = PRODUCT_CATEGORY( 'part', 'NONE' ); 46 | #42 = PRODUCT_RELATED_PRODUCT_CATEGORY( 'detail', ' ', ( #113 ) ); 47 | #43 = PRODUCT_DEFINITION_SHAPE( 'NONE', 'NONE', #114 ); 48 | #44 = ADVANCED_BREP_SHAPE_REPRESENTATION( 'Part 2', ( #115, #116 ), #6 ); 49 | #47 = UNCERTAINTY_MEASURE_WITH_UNIT( LENGTH_MEASURE( 1.00000000000000E-06 ), #49, '', '' ); 50 | #49 = ( CONVERSION_BASED_UNIT( 'METRE', #119 )LENGTH_UNIT( )NAMED_UNIT( #122 ) ); 51 | #50 = ( NAMED_UNIT( #124 )PLANE_ANGLE_UNIT( )SI_UNIT( $, .RADIAN. ) ); 52 | #51 = ( NAMED_UNIT( #124 )SI_UNIT( $, .STERADIAN. )SOLID_ANGLE_UNIT( ) ); 53 | #53 = PRESENTATION_STYLE_ASSIGNMENT( ( #130 ) ); 54 | #54 = ADVANCED_FACE( '', ( #131 ), #132, .F. ); 55 | #55 = PRESENTATION_STYLE_ASSIGNMENT( ( #133 ) ); 56 | #56 = ADVANCED_FACE( '', ( #134 ), #135, .T. ); 57 | #57 = PRESENTATION_STYLE_ASSIGNMENT( ( #136 ) ); 58 | #58 = ADVANCED_FACE( '', ( #137 ), #138, .F. ); 59 | #59 = PRESENTATION_STYLE_ASSIGNMENT( ( #139 ) ); 60 | #60 = ADVANCED_FACE( '', ( #140 ), #141, .T. ); 61 | #61 = PRESENTATION_STYLE_ASSIGNMENT( ( #142 ) ); 62 | #62 = ADVANCED_FACE( '', ( #143 ), #144, .T. ); 63 | #63 = PRESENTATION_STYLE_ASSIGNMENT( ( #145 ) ); 64 | #64 = ADVANCED_FACE( '', ( #146 ), #147, .F. ); 65 | #65 = PRESENTATION_STYLE_ASSIGNMENT( ( #148 ) ); 66 | #66 = ADVANCED_FACE( '', ( #149 ), #150, .F. ); 67 | #67 = PRESENTATION_STYLE_ASSIGNMENT( ( #151 ) ); 68 | #68 = ADVANCED_FACE( '', ( #152 ), #153, .T. ); 69 | #69 = PRESENTATION_STYLE_ASSIGNMENT( ( #154 ) ); 70 | #70 = ADVANCED_FACE( '', ( #155 ), #156, .T. ); 71 | #71 = PRESENTATION_STYLE_ASSIGNMENT( ( #157 ) ); 72 | #72 = ADVANCED_FACE( '', ( #158 ), #159, .F. ); 73 | #73 = PRESENTATION_STYLE_ASSIGNMENT( ( #160 ) ); 74 | #74 = ADVANCED_FACE( '', ( #161, #162 ), #163, .F. ); 75 | #75 = PRESENTATION_STYLE_ASSIGNMENT( ( #164 ) ); 76 | #76 = ADVANCED_FACE( '', ( #165 ), #166, .F. ); 77 | #77 = PRESENTATION_STYLE_ASSIGNMENT( ( #167 ) ); 78 | #78 = ADVANCED_FACE( '', ( #168 ), #169, .T. ); 79 | #79 = PRESENTATION_STYLE_ASSIGNMENT( ( #170 ) ); 80 | #80 = ADVANCED_FACE( '', ( #171 ), #172, .F. ); 81 | #81 = PRESENTATION_STYLE_ASSIGNMENT( ( #173 ) ); 82 | #82 = ADVANCED_FACE( '', ( #174 ), #175, .F. ); 83 | #83 = PRESENTATION_STYLE_ASSIGNMENT( ( #176 ) ); 84 | #84 = ADVANCED_FACE( '', ( #177 ), #178, .T. ); 85 | #85 = PRESENTATION_STYLE_ASSIGNMENT( ( #179 ) ); 86 | #86 = ADVANCED_FACE( '', ( #180 ), #181, .T. ); 87 | #87 = PRESENTATION_STYLE_ASSIGNMENT( ( #182 ) ); 88 | #88 = ADVANCED_FACE( '', ( #183 ), #184, .F. ); 89 | #89 = PRESENTATION_STYLE_ASSIGNMENT( ( #185 ) ); 90 | #90 = ADVANCED_FACE( '', ( #186 ), #187, .F. ); 91 | #91 = PRESENTATION_STYLE_ASSIGNMENT( ( #188 ) ); 92 | #92 = ADVANCED_FACE( '', ( #189 ), #190, .F. ); 93 | #93 = PRESENTATION_STYLE_ASSIGNMENT( ( #191 ) ); 94 | #94 = ADVANCED_FACE( '', ( #192 ), #193, .T. ); 95 | #95 = PRESENTATION_STYLE_ASSIGNMENT( ( #194 ) ); 96 | #96 = ADVANCED_FACE( '', ( #195 ), #196, .F. ); 97 | #97 = PRESENTATION_STYLE_ASSIGNMENT( ( #197 ) ); 98 | #98 = ADVANCED_FACE( '', ( #198 ), #199, .F. ); 99 | #99 = PRESENTATION_STYLE_ASSIGNMENT( ( #200 ) ); 100 | #100 = ADVANCED_FACE( '', ( #201, #202 ), #203, .T. ); 101 | #101 = PRESENTATION_STYLE_ASSIGNMENT( ( #204 ) ); 102 | #102 = ADVANCED_FACE( '', ( #205 ), #206, .T. ); 103 | #103 = PRESENTATION_STYLE_ASSIGNMENT( ( #207 ) ); 104 | #104 = ADVANCED_FACE( '', ( #208 ), #209, .T. ); 105 | #105 = PRESENTATION_STYLE_ASSIGNMENT( ( #210 ) ); 106 | #106 = ADVANCED_FACE( '', ( #211 ), #212, .T. ); 107 | #107 = PRESENTATION_STYLE_ASSIGNMENT( ( #213 ) ); 108 | #108 = ADVANCED_FACE( '', ( #214 ), #215, .T. ); 109 | #109 = PRESENTATION_STYLE_ASSIGNMENT( ( #216 ) ); 110 | #110 = ADVANCED_FACE( '', ( #217, #218 ), #219, .F. ); 111 | #111 = PRESENTATION_STYLE_ASSIGNMENT( ( #220 ) ); 112 | #112 = ADVANCED_FACE( '', ( #221 ), #222, .F. ); 113 | #113 = PRODUCT( 'Part 2', 'Part 2', 'PART-Part 2-DESC', ( #223 ) ); 114 | #114 = PRODUCT_DEFINITION( 'NONE', 'NONE', #224, #2 ); 115 | #115 = MANIFOLD_SOLID_BREP( 'Part 2', #225 ); 116 | #116 = AXIS2_PLACEMENT_3D( '', #226, #227, #228 ); 117 | #119 = LENGTH_MEASURE_WITH_UNIT( LENGTH_MEASURE( 1.00000000000000 ), #229 ); 118 | #122 = DIMENSIONAL_EXPONENTS( 1.00000000000000, 0.00000000000000, 0.00000000000000, 0.00000000000000, 0.00000000000000, 0.00000000000000, 0.00000000000000 ); 119 | #124 = DIMENSIONAL_EXPONENTS( 0.00000000000000, 0.00000000000000, 0.00000000000000, 0.00000000000000, 0.00000000000000, 0.00000000000000, 0.00000000000000 ); 120 | #130 = SURFACE_STYLE_USAGE( .BOTH., #230 ); 121 | #131 = FACE_OUTER_BOUND( '', #231, .T. ); 122 | #132 = PLANE( '', #232 ); 123 | #133 = SURFACE_STYLE_USAGE( .BOTH., #233 ); 124 | #134 = FACE_OUTER_BOUND( '', #234, .T. ); 125 | #135 = PLANE( '', #235 ); 126 | #136 = SURFACE_STYLE_USAGE( .BOTH., #236 ); 127 | #137 = FACE_OUTER_BOUND( '', #237, .T. ); 128 | #138 = CYLINDRICAL_SURFACE( '', #238, 0.00100000000000000 ); 129 | #139 = SURFACE_STYLE_USAGE( .BOTH., #239 ); 130 | #140 = FACE_OUTER_BOUND( '', #240, .T. ); 131 | #141 = PLANE( '', #241 ); 132 | #142 = SURFACE_STYLE_USAGE( .BOTH., #242 ); 133 | #143 = FACE_OUTER_BOUND( '', #243, .T. ); 134 | #144 = CYLINDRICAL_SURFACE( '', #244, 0.00400000000000000 ); 135 | #145 = SURFACE_STYLE_USAGE( .BOTH., #245 ); 136 | #146 = FACE_OUTER_BOUND( '', #246, .T. ); 137 | #147 = CYLINDRICAL_SURFACE( '', #247, 0.00400000000000000 ); 138 | #148 = SURFACE_STYLE_USAGE( .BOTH., #248 ); 139 | #149 = FACE_OUTER_BOUND( '', #249, .T. ); 140 | #150 = PLANE( '', #250 ); 141 | #151 = SURFACE_STYLE_USAGE( .BOTH., #251 ); 142 | #152 = FACE_OUTER_BOUND( '', #252, .T. ); 143 | #153 = CYLINDRICAL_SURFACE( '', #253, 0.00100000000000000 ); 144 | #154 = SURFACE_STYLE_USAGE( .BOTH., #254 ); 145 | #155 = FACE_OUTER_BOUND( '', #255, .T. ); 146 | #156 = CYLINDRICAL_SURFACE( '', #256, 0.00100000000000000 ); 147 | #157 = SURFACE_STYLE_USAGE( .BOTH., #257 ); 148 | #158 = FACE_OUTER_BOUND( '', #258, .T. ); 149 | #159 = CYLINDRICAL_SURFACE( '', #259, 0.00200000000000000 ); 150 | #160 = SURFACE_STYLE_USAGE( .BOTH., #260 ); 151 | #161 = FACE_OUTER_BOUND( '', #261, .T. ); 152 | #162 = FACE_OUTER_BOUND( '', #262, .T. ); 153 | #163 = CYLINDRICAL_SURFACE( '', #263, 0.00180000000000000 ); 154 | #164 = SURFACE_STYLE_USAGE( .BOTH., #264 ); 155 | #165 = FACE_OUTER_BOUND( '', #265, .T. ); 156 | #166 = CYLINDRICAL_SURFACE( '', #266, 0.00200000000000000 ); 157 | #167 = SURFACE_STYLE_USAGE( .BOTH., #267 ); 158 | #168 = FACE_OUTER_BOUND( '', #268, .T. ); 159 | #169 = PLANE( '', #269 ); 160 | #170 = SURFACE_STYLE_USAGE( .BOTH., #270 ); 161 | #171 = FACE_OUTER_BOUND( '', #271, .T. ); 162 | #172 = PLANE( '', #272 ); 163 | #173 = SURFACE_STYLE_USAGE( .BOTH., #273 ); 164 | #174 = FACE_OUTER_BOUND( '', #274, .T. ); 165 | #175 = PLANE( '', #275 ); 166 | #176 = SURFACE_STYLE_USAGE( .BOTH., #276 ); 167 | #177 = FACE_OUTER_BOUND( '', #277, .T. ); 168 | #178 = PLANE( '', #278 ); 169 | #179 = SURFACE_STYLE_USAGE( .BOTH., #279 ); 170 | #180 = FACE_OUTER_BOUND( '', #280, .T. ); 171 | #181 = PLANE( '', #281 ); 172 | #182 = SURFACE_STYLE_USAGE( .BOTH., #282 ); 173 | #183 = FACE_OUTER_BOUND( '', #283, .T. ); 174 | #184 = CYLINDRICAL_SURFACE( '', #284, 0.00100000000000000 ); 175 | #185 = SURFACE_STYLE_USAGE( .BOTH., #285 ); 176 | #186 = FACE_OUTER_BOUND( '', #286, .T. ); 177 | #187 = PLANE( '', #287 ); 178 | #188 = SURFACE_STYLE_USAGE( .BOTH., #288 ); 179 | #189 = FACE_OUTER_BOUND( '', #289, .T. ); 180 | #190 = PLANE( '', #290 ); 181 | #191 = SURFACE_STYLE_USAGE( .BOTH., #291 ); 182 | #192 = FACE_OUTER_BOUND( '', #292, .T. ); 183 | #193 = PLANE( '', #293 ); 184 | #194 = SURFACE_STYLE_USAGE( .BOTH., #294 ); 185 | #195 = FACE_OUTER_BOUND( '', #295, .T. ); 186 | #196 = PLANE( '', #296 ); 187 | #197 = SURFACE_STYLE_USAGE( .BOTH., #297 ); 188 | #198 = FACE_OUTER_BOUND( '', #298, .T. ); 189 | #199 = PLANE( '', #299 ); 190 | #200 = SURFACE_STYLE_USAGE( .BOTH., #300 ); 191 | #201 = FACE_OUTER_BOUND( '', #301, .T. ); 192 | #202 = FACE_BOUND( '', #302, .T. ); 193 | #203 = PLANE( '', #303 ); 194 | #204 = SURFACE_STYLE_USAGE( .BOTH., #304 ); 195 | #205 = FACE_OUTER_BOUND( '', #305, .T. ); 196 | #206 = PLANE( '', #306 ); 197 | #207 = SURFACE_STYLE_USAGE( .BOTH., #307 ); 198 | #208 = FACE_OUTER_BOUND( '', #308, .T. ); 199 | #209 = PLANE( '', #309 ); 200 | #210 = SURFACE_STYLE_USAGE( .BOTH., #310 ); 201 | #211 = FACE_OUTER_BOUND( '', #311, .T. ); 202 | #212 = PLANE( '', #312 ); 203 | #213 = SURFACE_STYLE_USAGE( .BOTH., #313 ); 204 | #214 = FACE_OUTER_BOUND( '', #314, .T. ); 205 | #215 = PLANE( '', #315 ); 206 | #216 = SURFACE_STYLE_USAGE( .BOTH., #316 ); 207 | #217 = FACE_BOUND( '', #317, .T. ); 208 | #218 = FACE_OUTER_BOUND( '', #318, .T. ); 209 | #219 = PLANE( '', #319 ); 210 | #220 = SURFACE_STYLE_USAGE( .BOTH., #320 ); 211 | #221 = FACE_OUTER_BOUND( '', #321, .T. ); 212 | #222 = CYLINDRICAL_SURFACE( '', #322, 0.00400000000000000 ); 213 | #223 = PRODUCT_CONTEXT( '', #40, 'mechanical' ); 214 | #224 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE( ' ', 'NONE', #113, .NOT_KNOWN. ); 215 | #225 = CLOSED_SHELL( '', ( #56, #80, #88, #68, #70, #76, #72, #78, #92, #82, #106, #108, #110, #62, #74, #94, #112, #84, #104, #96, #98, #58, #90, #86, #102, #66, #54, #100, #60, #64 ) ); 216 | #226 = CARTESIAN_POINT( '', ( 0.00000000000000, 0.00000000000000, 0.00000000000000 ) ); 217 | #227 = DIRECTION( '', ( 0.00000000000000, 0.00000000000000, 1.00000000000000 ) ); 218 | #228 = DIRECTION( '', ( 1.00000000000000, 0.00000000000000, 0.00000000000000 ) ); 219 | #229 = ( LENGTH_UNIT( )NAMED_UNIT( #122 )SI_UNIT( $, .METRE. ) ); 220 | #230 = SURFACE_SIDE_STYLE( '', ( #324 ) ); 221 | #231 = EDGE_LOOP( '', ( #325, #326, #327, #328, #329 ) ); 222 | #232 = AXIS2_PLACEMENT_3D( '', #330, #331, #332 ); 223 | #233 = SURFACE_SIDE_STYLE( '', ( #333 ) ); 224 | #234 = EDGE_LOOP( '', ( #334, #335, #336, #337 ) ); 225 | #235 = AXIS2_PLACEMENT_3D( '', #338, #339, #340 ); 226 | #236 = SURFACE_SIDE_STYLE( '', ( #341 ) ); 227 | #237 = EDGE_LOOP( '', ( #342, #343, #344, #345 ) ); 228 | #238 = AXIS2_PLACEMENT_3D( '', #346, #347, #348 ); 229 | #239 = SURFACE_SIDE_STYLE( '', ( #349 ) ); 230 | #240 = EDGE_LOOP( '', ( #350, #351, #352, #353, #354, #355, #356 ) ); 231 | #241 = AXIS2_PLACEMENT_3D( '', #357, #358, #359 ); 232 | #242 = SURFACE_SIDE_STYLE( '', ( #360 ) ); 233 | #243 = EDGE_LOOP( '', ( #361, #362, #363, #364 ) ); 234 | #244 = AXIS2_PLACEMENT_3D( '', #365, #366, #367 ); 235 | #245 = SURFACE_SIDE_STYLE( '', ( #368 ) ); 236 | #246 = EDGE_LOOP( '', ( #369, #370, #371, #372 ) ); 237 | #247 = AXIS2_PLACEMENT_3D( '', #373, #374, #375 ); 238 | #248 = SURFACE_SIDE_STYLE( '', ( #376 ) ); 239 | #249 = EDGE_LOOP( '', ( #377, #378, #379, #380 ) ); 240 | #250 = AXIS2_PLACEMENT_3D( '', #381, #382, #383 ); 241 | #251 = SURFACE_SIDE_STYLE( '', ( #384 ) ); 242 | #252 = EDGE_LOOP( '', ( #385, #386, #387, #388 ) ); 243 | #253 = AXIS2_PLACEMENT_3D( '', #389, #390, #391 ); 244 | #254 = SURFACE_SIDE_STYLE( '', ( #392 ) ); 245 | #255 = EDGE_LOOP( '', ( #393, #394, #395, #396 ) ); 246 | #256 = AXIS2_PLACEMENT_3D( '', #397, #398, #399 ); 247 | #257 = SURFACE_SIDE_STYLE( '', ( #400 ) ); 248 | #258 = EDGE_LOOP( '', ( #401, #402, #403, #404, #405, #406 ) ); 249 | #259 = AXIS2_PLACEMENT_3D( '', #407, #408, #409 ); 250 | #260 = SURFACE_SIDE_STYLE( '', ( #410 ) ); 251 | #261 = EDGE_LOOP( '', ( #411 ) ); 252 | #262 = EDGE_LOOP( '', ( #412 ) ); 253 | #263 = AXIS2_PLACEMENT_3D( '', #413, #414, #415 ); 254 | #264 = SURFACE_SIDE_STYLE( '', ( #416 ) ); 255 | #265 = EDGE_LOOP( '', ( #417, #418, #419, #420, #421, #422 ) ); 256 | #266 = AXIS2_PLACEMENT_3D( '', #423, #424, #425 ); 257 | #267 = SURFACE_SIDE_STYLE( '', ( #426 ) ); 258 | #268 = EDGE_LOOP( '', ( #427, #428, #429, #430 ) ); 259 | #269 = AXIS2_PLACEMENT_3D( '', #431, #432, #433 ); 260 | #270 = SURFACE_SIDE_STYLE( '', ( #434 ) ); 261 | #271 = EDGE_LOOP( '', ( #435, #436, #437, #438, #439, #440 ) ); 262 | #272 = AXIS2_PLACEMENT_3D( '', #441, #442, #443 ); 263 | #273 = SURFACE_SIDE_STYLE( '', ( #444 ) ); 264 | #274 = EDGE_LOOP( '', ( #445, #446, #447, #448, #449 ) ); 265 | #275 = AXIS2_PLACEMENT_3D( '', #450, #451, #452 ); 266 | #276 = SURFACE_SIDE_STYLE( '', ( #453 ) ); 267 | #277 = EDGE_LOOP( '', ( #454, #455, #456, #457 ) ); 268 | #278 = AXIS2_PLACEMENT_3D( '', #458, #459, #460 ); 269 | #279 = SURFACE_SIDE_STYLE( '', ( #461 ) ); 270 | #280 = EDGE_LOOP( '', ( #462, #463, #464, #465 ) ); 271 | #281 = AXIS2_PLACEMENT_3D( '', #466, #467, #468 ); 272 | #282 = SURFACE_SIDE_STYLE( '', ( #469 ) ); 273 | #283 = EDGE_LOOP( '', ( #470, #471, #472, #473 ) ); 274 | #284 = AXIS2_PLACEMENT_3D( '', #474, #475, #476 ); 275 | #285 = SURFACE_SIDE_STYLE( '', ( #477 ) ); 276 | #286 = EDGE_LOOP( '', ( #478, #479, #480, #481, #482, #483 ) ); 277 | #287 = AXIS2_PLACEMENT_3D( '', #484, #485, #486 ); 278 | #288 = SURFACE_SIDE_STYLE( '', ( #487 ) ); 279 | #289 = EDGE_LOOP( '', ( #488, #489, #490, #491, #492 ) ); 280 | #290 = AXIS2_PLACEMENT_3D( '', #493, #494, #495 ); 281 | #291 = SURFACE_SIDE_STYLE( '', ( #496 ) ); 282 | #292 = EDGE_LOOP( '', ( #497, #498, #499, #500 ) ); 283 | #293 = AXIS2_PLACEMENT_3D( '', #501, #502, #503 ); 284 | #294 = SURFACE_SIDE_STYLE( '', ( #504 ) ); 285 | #295 = EDGE_LOOP( '', ( #505, #506, #507, #508, #509, #510, #511 ) ); 286 | #296 = AXIS2_PLACEMENT_3D( '', #512, #513, #514 ); 287 | #297 = SURFACE_SIDE_STYLE( '', ( #515 ) ); 288 | #298 = EDGE_LOOP( '', ( #516, #517, #518, #519 ) ); 289 | #299 = AXIS2_PLACEMENT_3D( '', #520, #521, #522 ); 290 | #300 = SURFACE_SIDE_STYLE( '', ( #523 ) ); 291 | #301 = EDGE_LOOP( '', ( #524, #525, #526, #527, #528, #529, #530, #531, #532, #533, #534, #535 ) ); 292 | #302 = EDGE_LOOP( '', ( #536 ) ); 293 | #303 = AXIS2_PLACEMENT_3D( '', #537, #538, #539 ); 294 | #304 = SURFACE_SIDE_STYLE( '', ( #540 ) ); 295 | #305 = EDGE_LOOP( '', ( #541, #542, #543, #544, #545, #546 ) ); 296 | #306 = AXIS2_PLACEMENT_3D( '', #547, #548, #549 ); 297 | #307 = SURFACE_SIDE_STYLE( '', ( #550 ) ); 298 | #308 = EDGE_LOOP( '', ( #551, #552, #553, #554 ) ); 299 | #309 = AXIS2_PLACEMENT_3D( '', #555, #556, #557 ); 300 | #310 = SURFACE_SIDE_STYLE( '', ( #558 ) ); 301 | #311 = EDGE_LOOP( '', ( #559, #560, #561, #562, #563, #564, #565, #566, #567, #568, #569, #570, #571, #572 ) ); 302 | #312 = AXIS2_PLACEMENT_3D( '', #573, #574, #575 ); 303 | #313 = SURFACE_SIDE_STYLE( '', ( #576 ) ); 304 | #314 = EDGE_LOOP( '', ( #577, #578, #579, #580, #581, #582, #583 ) ); 305 | #315 = AXIS2_PLACEMENT_3D( '', #584, #585, #586 ); 306 | #316 = SURFACE_SIDE_STYLE( '', ( #587 ) ); 307 | #317 = EDGE_LOOP( '', ( #588 ) ); 308 | #318 = EDGE_LOOP( '', ( #589, #590, #591, #592, #593, #594, #595, #596 ) ); 309 | #319 = AXIS2_PLACEMENT_3D( '', #597, #598, #599 ); 310 | #320 = SURFACE_SIDE_STYLE( '', ( #600 ) ); 311 | #321 = EDGE_LOOP( '', ( #601, #602, #603, #604 ) ); 312 | #322 = AXIS2_PLACEMENT_3D( '', #605, #606, #607 ); 313 | #324 = SURFACE_STYLE_FILL_AREA( #608 ); 314 | #325 = ORIENTED_EDGE( '', *, *, #609, .F. ); 315 | #326 = ORIENTED_EDGE( '', *, *, #610, .T. ); 316 | #327 = ORIENTED_EDGE( '', *, *, #611, .T. ); 317 | #328 = ORIENTED_EDGE( '', *, *, #612, .T. ); 318 | #329 = ORIENTED_EDGE( '', *, *, #613, .T. ); 319 | #330 = CARTESIAN_POINT( '', ( 0.0309135242541686, 0.0311122750687311, 0.00893623508226236 ) ); 320 | #331 = DIRECTION( '', ( 2.01733258561499E-17, 1.30595482718484E-05, 0.999999999914724 ) ); 321 | #332 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 322 | #333 = SURFACE_STYLE_FILL_AREA( #614 ); 323 | #334 = ORIENTED_EDGE( '', *, *, #615, .F. ); 324 | #335 = ORIENTED_EDGE( '', *, *, #616, .T. ); 325 | #336 = ORIENTED_EDGE( '', *, *, #617, .F. ); 326 | #337 = ORIENTED_EDGE( '', *, *, #618, .F. ); 327 | #338 = CARTESIAN_POINT( '', ( 0.0429134268946285, 0.0273603663956909, 0.0339362840826267 ) ); 328 | #339 = DIRECTION( '', ( -2.22428432257947E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 329 | #340 = DIRECTION( '', ( 0.999999999752628, -2.22428432276915E-05, 3.53979765112870E-25 ) ); 330 | #341 = SURFACE_STYLE_FILL_AREA( #619 ); 331 | #342 = ORIENTED_EDGE( '', *, *, #620, .F. ); 332 | #343 = ORIENTED_EDGE( '', *, *, #621, .F. ); 333 | #344 = ORIENTED_EDGE( '', *, *, #622, .F. ); 334 | #345 = ORIENTED_EDGE( '', *, *, #623, .F. ); 335 | #346 = CARTESIAN_POINT( '', ( 0.0196635017325764, 0.0263603830779705, 0.0339362971419571 ) ); 336 | #347 = DIRECTION( '', ( -2.01733258561499E-17, -1.30595482718484E-05, -0.999999999914724 ) ); 337 | #348 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 338 | #349 = SURFACE_STYLE_FILL_AREA( #624 ); 339 | #350 = ORIENTED_EDGE( '', *, *, #625, .F. ); 340 | #351 = ORIENTED_EDGE( '', *, *, #626, .T. ); 341 | #352 = ORIENTED_EDGE( '', *, *, #627, .F. ); 342 | #353 = ORIENTED_EDGE( '', *, *, #628, .T. ); 343 | #354 = ORIENTED_EDGE( '', *, *, #629, .F. ); 344 | #355 = ORIENTED_EDGE( '', *, *, #630, .T. ); 345 | #356 = ORIENTED_EDGE( '', *, *, #631, .T. ); 346 | #357 = CARTESIAN_POINT( '', ( 0.0309857428083260, 0.0311101569376851, 1.36677081109759E-05 ) ); 347 | #358 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 348 | #359 = DIRECTION( '', ( -0.506420108770792, 0.00000000000000, -0.862286885805751 ) ); 349 | #360 = SURFACE_STYLE_FILL_AREA( #632 ); 350 | #361 = ORIENTED_EDGE( '', *, *, #633, .F. ); 351 | #362 = ORIENTED_EDGE( '', *, *, #634, .T. ); 352 | #363 = ORIENTED_EDGE( '', *, *, #635, .F. ); 353 | #364 = ORIENTED_EDGE( '', *, *, #636, .T. ); 354 | #365 = CARTESIAN_POINT( '', ( 0.0309134128325717, 0.0261082881299346, 0.00993629951399354 ) ); 355 | #366 = DIRECTION( '', ( -2.22428432259357E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 356 | #367 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, 2.65484823834652E-25 ) ); 357 | #368 = SURFACE_STYLE_FILL_AREA( #637 ); 358 | #369 = ORIENTED_EDGE( '', *, *, #627, .T. ); 359 | #370 = ORIENTED_EDGE( '', *, *, #638, .T. ); 360 | #371 = ORIENTED_EDGE( '', *, *, #639, .F. ); 361 | #372 = ORIENTED_EDGE( '', *, *, #640, .T. ); 362 | #373 = CARTESIAN_POINT( '', ( 0.0309134573627438, 0.0281102881292686, 0.00993627336877791 ) ); 363 | #374 = DIRECTION( '', ( -2.22428432259357E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 364 | #375 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 365 | #376 = SURFACE_STYLE_FILL_AREA( #641 ); 366 | #377 = ORIENTED_EDGE( '', *, *, #642, .F. ); 367 | #378 = ORIENTED_EDGE( '', *, *, #643, .T. ); 368 | #379 = ORIENTED_EDGE( '', *, *, #644, .T. ); 369 | #380 = ORIENTED_EDGE( '', *, *, #645, .T. ); 370 | #381 = CARTESIAN_POINT( '', ( 0.0220384406846166, 0.0273578376970005, 0.00473628411297829 ) ); 371 | #382 = DIRECTION( '', ( 1.67068133253702E-16, 1.30595482718484E-05, 0.999999999914724 ) ); 372 | #383 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 373 | #384 = SURFACE_STYLE_FILL_AREA( #646 ); 374 | #385 = ORIENTED_EDGE( '', *, *, #647, .F. ); 375 | #386 = ORIENTED_EDGE( '', *, *, #648, .F. ); 376 | #387 = ORIENTED_EDGE( '', *, *, #638, .F. ); 377 | #388 = ORIENTED_EDGE( '', *, *, #626, .F. ); 378 | #389 = CARTESIAN_POINT( '', ( 0.0359134087111263, 0.0261081768319824, 0.00992988063175117 ) ); 379 | #390 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 380 | #391 = DIRECTION( '', ( 0.999999999752628, -2.22428432278325E-05, 3.53979765112870E-25 ) ); 381 | #392 = SURFACE_STYLE_FILL_AREA( #649 ); 382 | #393 = ORIENTED_EDGE( '', *, *, #650, .F. ); 383 | #394 = ORIENTED_EDGE( '', *, *, #651, .T. ); 384 | #395 = ORIENTED_EDGE( '', *, *, #652, .F. ); 385 | #396 = ORIENTED_EDGE( '', *, *, #653, .F. ); 386 | #397 = CARTESIAN_POINT( '', ( 0.0259134169540170, 0.0261083992602314, 0.00992988062884636 ) ); 387 | #398 = DIRECTION( '', ( -2.22428432259357E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 388 | #399 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 389 | #400 = SURFACE_STYLE_FILL_AREA( #654 ); 390 | #401 = ORIENTED_EDGE( '', *, *, #655, .F. ); 391 | #402 = ORIENTED_EDGE( '', *, *, #613, .F. ); 392 | #403 = ORIENTED_EDGE( '', *, *, #656, .F. ); 393 | #404 = ORIENTED_EDGE( '', *, *, #634, .F. ); 394 | #405 = ORIENTED_EDGE( '', *, *, #657, .T. ); 395 | #406 = ORIENTED_EDGE( '', *, *, #658, .F. ); 396 | #407 = CARTESIAN_POINT( '', ( 0.0361095657840945, 0.0261081333740863, 0.00693630043392183 ) ); 397 | #408 = DIRECTION( '', ( -2.22428432259357E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 398 | #409 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, 2.65484823834652E-25 ) ); 399 | #410 = SURFACE_STYLE_FILL_AREA( #659 ); 400 | #411 = ORIENTED_EDGE( '', *, *, #660, .T. ); 401 | #412 = ORIENTED_EDGE( '', *, *, #661, .T. ); 402 | #413 = CARTESIAN_POINT( '', ( 0.0309134128325717, 0.0261082881299346, 0.00993629951399354 ) ); 403 | #414 = DIRECTION( '', ( -2.22428432259357E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 404 | #415 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, 2.65484823834652E-25 ) ); 405 | #416 = SURFACE_STYLE_FILL_AREA( #662 ); 406 | #417 = ORIENTED_EDGE( '', *, *, #663, .F. ); 407 | #418 = ORIENTED_EDGE( '', *, *, #664, .T. ); 408 | #419 = ORIENTED_EDGE( '', *, *, #665, .T. ); 409 | #420 = ORIENTED_EDGE( '', *, *, #636, .F. ); 410 | #421 = ORIENTED_EDGE( '', *, *, #666, .F. ); 411 | #422 = ORIENTED_EDGE( '', *, *, #667, .F. ); 412 | #423 = CARTESIAN_POINT( '', ( 0.0257172598810489, 0.0261083645285173, 0.00693630043090306 ) ); 413 | #424 = DIRECTION( '', ( -2.22428432259357E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 414 | #425 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, 2.65484823834652E-25 ) ); 415 | #426 = SURFACE_STYLE_FILL_AREA( #668 ); 416 | #427 = ORIENTED_EDGE( '', *, *, #669, .F. ); 417 | #428 = ORIENTED_EDGE( '', *, *, #670, .F. ); 418 | #429 = ORIENTED_EDGE( '', *, *, #671, .T. ); 419 | #430 = ORIENTED_EDGE( '', *, *, #644, .F. ); 420 | #431 = CARTESIAN_POINT( '', ( 0.0171635242575500, 0.0311126135566961, 0.0114362350779429 ) ); 421 | #432 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 422 | #433 = DIRECTION( '', ( -2.22428432240390E-05, -0.999999999752628, 0.00000000000000 ) ); 423 | #434 = SURFACE_STYLE_FILL_AREA( #672 ); 424 | #435 = ORIENTED_EDGE( '', *, *, #673, .T. ); 425 | #436 = ORIENTED_EDGE( '', *, *, #617, .T. ); 426 | #437 = ORIENTED_EDGE( '', *, *, #609, .T. ); 427 | #438 = ORIENTED_EDGE( '', *, *, #655, .T. ); 428 | #439 = ORIENTED_EDGE( '', *, *, #674, .F. ); 429 | #440 = ORIENTED_EDGE( '', *, *, #675, .T. ); 430 | #441 = CARTESIAN_POINT( '', ( 0.0189134878308591, 0.0273603663956909, 0.0339362840826267 ) ); 431 | #442 = DIRECTION( '', ( -2.22428432257947E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 432 | #443 = DIRECTION( '', ( -0.999999999752628, -2.22428432276915E-05, -2.65484823834653E-25 ) ); 433 | #444 = SURFACE_STYLE_FILL_AREA( #676 ); 434 | #445 = ORIENTED_EDGE( '', *, *, #677, .T. ); 435 | #446 = ORIENTED_EDGE( '', *, *, #618, .T. ); 436 | #447 = ORIENTED_EDGE( '', *, *, #673, .F. ); 437 | #448 = ORIENTED_EDGE( '', *, *, #678, .T. ); 438 | #449 = ORIENTED_EDGE( '', *, *, #630, .F. ); 439 | #450 = CARTESIAN_POINT( '', ( 0.0446635242507873, 0.0311120018785075, 0.0114362350859311 ) ); 440 | #451 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 441 | #452 = DIRECTION( '', ( -2.22428432240390E-05, -0.999999999752628, 0.00000000000000 ) ); 442 | #453 = SURFACE_STYLE_FILL_AREA( #679 ); 443 | #454 = ORIENTED_EDGE( '', *, *, #680, .F. ); 444 | #455 = ORIENTED_EDGE( '', *, *, #681, .F. ); 445 | #456 = ORIENTED_EDGE( '', *, *, #682, .T. ); 446 | #457 = ORIENTED_EDGE( '', *, *, #683, .T. ); 447 | #458 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281104032197440, 0.0119362738264148 ) ); 448 | #459 = DIRECTION( '', ( 0.999999999752628, -2.22428432240390E-05, 0.00000000000000 ) ); 449 | #460 = DIRECTION( '', ( 2.22428432240390E-05, 0.999999999752628, 0.00000000000000 ) ); 450 | #461 = SURFACE_STYLE_FILL_AREA( #684 ); 451 | #462 = ORIENTED_EDGE( '', *, *, #675, .F. ); 452 | #463 = ORIENTED_EDGE( '', *, *, #685, .T. ); 453 | #464 = ORIENTED_EDGE( '', *, *, #631, .F. ); 454 | #465 = ORIENTED_EDGE( '', *, *, #678, .F. ); 455 | #466 = CARTESIAN_POINT( '', ( 0.0397884406978092, 0.0273582325074628, 0.00473628410782225 ) ); 456 | #467 = DIRECTION( '', ( 3.79789859167019E-18, -1.30595482718484E-05, -0.999999999914724 ) ); 457 | #468 = DIRECTION( '', ( 0.00000000000000, 0.999999999914724, -1.30595482718484E-05 ) ); 458 | #469 = SURFACE_STYLE_FILL_AREA( #686 ); 459 | #470 = ORIENTED_EDGE( '', *, *, #687, .F. ); 460 | #471 = ORIENTED_EDGE( '', *, *, #688, .F. ); 461 | #472 = ORIENTED_EDGE( '', *, *, #610, .F. ); 462 | #473 = ORIENTED_EDGE( '', *, *, #616, .F. ); 463 | #474 = CARTESIAN_POINT( '', ( 0.0421634129929113, 0.0263603830779705, 0.0339362971419571 ) ); 464 | #475 = DIRECTION( '', ( -2.01733258561499E-17, -1.30595482718484E-05, -0.999999999914724 ) ); 465 | #476 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 466 | #477 = SURFACE_STYLE_FILL_AREA( #689 ); 467 | #478 = ORIENTED_EDGE( '', *, *, #674, .T. ); 468 | #479 = ORIENTED_EDGE( '', *, *, #658, .T. ); 469 | #480 = ORIENTED_EDGE( '', *, *, #690, .F. ); 470 | #481 = ORIENTED_EDGE( '', *, *, #647, .T. ); 471 | #482 = ORIENTED_EDGE( '', *, *, #625, .T. ); 472 | #483 = ORIENTED_EDGE( '', *, *, #685, .F. ); 473 | #484 = CARTESIAN_POINT( '', ( 0.0349134406398004, 0.0273584010152470, 0.00933628410599273 ) ); 474 | #485 = DIRECTION( '', ( 0.999999999752628, -2.22428432240390E-05, 0.00000000000000 ) ); 475 | #486 = DIRECTION( '', ( 2.22428432240390E-05, 0.999999999752628, 0.00000000000000 ) ); 476 | #487 = SURFACE_STYLE_FILL_AREA( #691 ); 477 | #488 = ORIENTED_EDGE( '', *, *, #692, .F. ); 478 | #489 = ORIENTED_EDGE( '', *, *, #667, .T. ); 479 | #490 = ORIENTED_EDGE( '', *, *, #693, .T. ); 480 | #491 = ORIENTED_EDGE( '', *, *, #694, .F. ); 481 | #492 = ORIENTED_EDGE( '', *, *, #622, .T. ); 482 | #493 = CARTESIAN_POINT( '', ( 0.0309135242541686, 0.0311122750687311, 0.00893623508226236 ) ); 483 | #494 = DIRECTION( '', ( 2.01733258561499E-17, 1.30595482718484E-05, 0.999999999914724 ) ); 484 | #495 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 485 | #496 = SURFACE_STYLE_FILL_AREA( #695 ); 486 | #497 = ORIENTED_EDGE( '', *, *, #628, .F. ); 487 | #498 = ORIENTED_EDGE( '', *, *, #640, .F. ); 488 | #499 = ORIENTED_EDGE( '', *, *, #696, .T. ); 489 | #500 = ORIENTED_EDGE( '', *, *, #697, .T. ); 490 | #501 = CARTESIAN_POINT( '', ( 0.0349134573617543, 0.0281102252769983, 0.0119362738287387 ) ); 491 | #502 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 492 | #503 = DIRECTION( '', ( -2.22428432240390E-05, -0.999999999752628, 0.00000000000000 ) ); 493 | #504 = SURFACE_STYLE_FILL_AREA( #698 ); 494 | #505 = ORIENTED_EDGE( '', *, *, #669, .T. ); 495 | #506 = ORIENTED_EDGE( '', *, *, #643, .F. ); 496 | #507 = ORIENTED_EDGE( '', *, *, #699, .T. ); 497 | #508 = ORIENTED_EDGE( '', *, *, #663, .T. ); 498 | #509 = ORIENTED_EDGE( '', *, *, #692, .T. ); 499 | #510 = ORIENTED_EDGE( '', *, *, #621, .T. ); 500 | #511 = ORIENTED_EDGE( '', *, *, #700, .T. ); 501 | #512 = CARTESIAN_POINT( '', ( 0.0189134878308591, 0.0273603663956909, 0.0339362840826267 ) ); 502 | #513 = DIRECTION( '', ( -2.22428432257947E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 503 | #514 = DIRECTION( '', ( -0.999999999752628, -2.22428432276915E-05, -2.65484823834653E-25 ) ); 504 | #515 = SURFACE_STYLE_FILL_AREA( #701 ); 505 | #516 = ORIENTED_EDGE( '', *, *, #702, .T. ); 506 | #517 = ORIENTED_EDGE( '', *, *, #623, .T. ); 507 | #518 = ORIENTED_EDGE( '', *, *, #694, .T. ); 508 | #519 = ORIENTED_EDGE( '', *, *, #703, .F. ); 509 | #520 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0267353894454673, 0.0339362922445434 ) ); 510 | #521 = DIRECTION( '', ( 1.00000000000000, -2.63454522837791E-22, -2.01733258544296E-17 ) ); 511 | #522 = DIRECTION( '', ( -2.01733258544296E-17, 0.00000000000000, -1.00000000000000 ) ); 512 | #523 = SURFACE_STYLE_FILL_AREA( #704 ); 513 | #524 = ORIENTED_EDGE( '', *, *, #705, .F. ); 514 | #525 = ORIENTED_EDGE( '', *, *, #650, .T. ); 515 | #526 = ORIENTED_EDGE( '', *, *, #706, .T. ); 516 | #527 = ORIENTED_EDGE( '', *, *, #682, .F. ); 517 | #528 = ORIENTED_EDGE( '', *, *, #707, .F. ); 518 | #529 = ORIENTED_EDGE( '', *, *, #696, .F. ); 519 | #530 = ORIENTED_EDGE( '', *, *, #639, .T. ); 520 | #531 = ORIENTED_EDGE( '', *, *, #648, .T. ); 521 | #532 = ORIENTED_EDGE( '', *, *, #690, .T. ); 522 | #533 = ORIENTED_EDGE( '', *, *, #657, .F. ); 523 | #534 = ORIENTED_EDGE( '', *, *, #633, .T. ); 524 | #535 = ORIENTED_EDGE( '', *, *, #665, .F. ); 525 | #536 = ORIENTED_EDGE( '', *, *, #661, .F. ); 526 | #537 = CARTESIAN_POINT( '', ( 0.0309134574811533, 0.0281102671588534, 0.00833052008095393 ) ); 527 | #538 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 528 | #539 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 529 | #540 = SURFACE_STYLE_FILL_AREA( #708 ); 530 | #541 = ORIENTED_EDGE( '', *, *, #651, .F. ); 531 | #542 = ORIENTED_EDGE( '', *, *, #705, .T. ); 532 | #543 = ORIENTED_EDGE( '', *, *, #664, .F. ); 533 | #544 = ORIENTED_EDGE( '', *, *, #699, .F. ); 534 | #545 = ORIENTED_EDGE( '', *, *, #642, .T. ); 535 | #546 = ORIENTED_EDGE( '', *, *, #709, .F. ); 536 | #547 = CARTESIAN_POINT( '', ( 0.0269134406242160, 0.0273577893370632, 0.00933628411398097 ) ); 537 | #548 = DIRECTION( '', ( 0.999999999752628, -2.22428432240390E-05, 0.00000000000000 ) ); 538 | #549 = DIRECTION( '', ( 2.22428432240390E-05, 0.999999999752628, 0.00000000000000 ) ); 539 | #550 = SURFACE_STYLE_FILL_AREA( #710 ); 540 | #551 = ORIENTED_EDGE( '', *, *, #611, .F. ); 541 | #552 = ORIENTED_EDGE( '', *, *, #688, .T. ); 542 | #553 = ORIENTED_EDGE( '', *, *, #711, .F. ); 543 | #554 = ORIENTED_EDGE( '', *, *, #712, .T. ); 544 | #555 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0267353894454673, 0.0339362922445434 ) ); 545 | #556 = DIRECTION( '', ( 1.00000000000000, -2.63454522837791E-22, -2.01733258544296E-17 ) ); 546 | #557 = DIRECTION( '', ( -2.01733258544296E-17, 0.00000000000000, -1.00000000000000 ) ); 547 | #558 = SURFACE_STYLE_FILL_AREA( #713 ); 548 | #559 = ORIENTED_EDGE( '', *, *, #700, .F. ); 549 | #560 = ORIENTED_EDGE( '', *, *, #620, .T. ); 550 | #561 = ORIENTED_EDGE( '', *, *, #702, .F. ); 551 | #562 = ORIENTED_EDGE( '', *, *, #714, .F. ); 552 | #563 = ORIENTED_EDGE( '', *, *, #711, .T. ); 553 | #564 = ORIENTED_EDGE( '', *, *, #687, .T. ); 554 | #565 = ORIENTED_EDGE( '', *, *, #615, .T. ); 555 | #566 = ORIENTED_EDGE( '', *, *, #677, .F. ); 556 | #567 = ORIENTED_EDGE( '', *, *, #629, .T. ); 557 | #568 = ORIENTED_EDGE( '', *, *, #697, .F. ); 558 | #569 = ORIENTED_EDGE( '', *, *, #707, .T. ); 559 | #570 = ORIENTED_EDGE( '', *, *, #681, .T. ); 560 | #571 = ORIENTED_EDGE( '', *, *, #715, .T. ); 561 | #572 = ORIENTED_EDGE( '', *, *, #670, .T. ); 562 | #573 = CARTESIAN_POINT( '', ( 0.0309135242541686, 0.0311123403664724, 0.0139362350816117 ) ); 563 | #574 = DIRECTION( '', ( 2.01716782528076E-17, 1.30595482718484E-05, 0.999999999914724 ) ); 564 | #575 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 565 | #576 = SURFACE_STYLE_FILL_AREA( #716 ); 566 | #577 = ORIENTED_EDGE( '', *, *, #645, .F. ); 567 | #578 = ORIENTED_EDGE( '', *, *, #671, .F. ); 568 | #579 = ORIENTED_EDGE( '', *, *, #715, .F. ); 569 | #580 = ORIENTED_EDGE( '', *, *, #680, .T. ); 570 | #581 = ORIENTED_EDGE( '', *, *, #717, .F. ); 571 | #582 = ORIENTED_EDGE( '', *, *, #652, .T. ); 572 | #583 = ORIENTED_EDGE( '', *, *, #709, .T. ); 573 | #584 = CARTESIAN_POINT( '', ( 0.0309857428083260, 0.0311101569376851, 1.36677081109759E-05 ) ); 574 | #585 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 575 | #586 = DIRECTION( '', ( -0.506420108770792, 0.00000000000000, -0.862286885805751 ) ); 576 | #587 = SURFACE_STYLE_FILL_AREA( #718 ); 577 | #588 = ORIENTED_EDGE( '', *, *, #660, .F. ); 578 | #589 = ORIENTED_EDGE( '', *, *, #714, .T. ); 579 | #590 = ORIENTED_EDGE( '', *, *, #703, .T. ); 580 | #591 = ORIENTED_EDGE( '', *, *, #693, .F. ); 581 | #592 = ORIENTED_EDGE( '', *, *, #666, .T. ); 582 | #593 = ORIENTED_EDGE( '', *, *, #635, .T. ); 583 | #594 = ORIENTED_EDGE( '', *, *, #656, .T. ); 584 | #595 = ORIENTED_EDGE( '', *, *, #612, .F. ); 585 | #596 = ORIENTED_EDGE( '', *, *, #712, .F. ); 586 | #597 = CARTESIAN_POINT( '', ( 0.0309134129954668, 0.0261103077192657, 0.0114363004057974 ) ); 587 | #598 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 588 | #599 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 589 | #600 = SURFACE_STYLE_FILL_AREA( #719 ); 590 | #601 = ORIENTED_EDGE( '', *, *, #706, .F. ); 591 | #602 = ORIENTED_EDGE( '', *, *, #653, .T. ); 592 | #603 = ORIENTED_EDGE( '', *, *, #717, .T. ); 593 | #604 = ORIENTED_EDGE( '', *, *, #683, .F. ); 594 | #605 = CARTESIAN_POINT( '', ( 0.0309134573627438, 0.0281102881292686, 0.00993627336877791 ) ); 595 | #606 = DIRECTION( '', ( -2.22428432259357E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 596 | #607 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 597 | #608 = FILL_AREA_STYLE( '', ( #720 ) ); 598 | #609 = EDGE_CURVE( '', #721, #722, #723, .T. ); 599 | #610 = EDGE_CURVE( '', #721, #724, #725, .T. ); 600 | #611 = EDGE_CURVE( '', #724, #726, #727, .T. ); 601 | #612 = EDGE_CURVE( '', #726, #728, #729, .T. ); 602 | #613 = EDGE_CURVE( '', #728, #722, #730, .T. ); 603 | #614 = FILL_AREA_STYLE( '', ( #731 ) ); 604 | #615 = EDGE_CURVE( '', #732, #733, #734, .T. ); 605 | #616 = EDGE_CURVE( '', #732, #721, #735, .T. ); 606 | #617 = EDGE_CURVE( '', #736, #721, #737, .T. ); 607 | #618 = EDGE_CURVE( '', #733, #736, #738, .T. ); 608 | #619 = FILL_AREA_STYLE( '', ( #739 ) ); 609 | #620 = EDGE_CURVE( '', #740, #741, #742, .F. ); 610 | #621 = EDGE_CURVE( '', #743, #740, #744, .F. ); 611 | #622 = EDGE_CURVE( '', #745, #743, #746, .T. ); 612 | #623 = EDGE_CURVE( '', #741, #745, #747, .T. ); 613 | #624 = FILL_AREA_STYLE( '', ( #748 ) ); 614 | #625 = EDGE_CURVE( '', #749, #750, #751, .T. ); 615 | #626 = EDGE_CURVE( '', #749, #752, #753, .T. ); 616 | #627 = EDGE_CURVE( '', #754, #752, #755, .T. ); 617 | #628 = EDGE_CURVE( '', #754, #756, #757, .T. ); 618 | #629 = EDGE_CURVE( '', #758, #756, #759, .T. ); 619 | #630 = EDGE_CURVE( '', #758, #760, #761, .T. ); 620 | #631 = EDGE_CURVE( '', #760, #750, #762, .T. ); 621 | #632 = FILL_AREA_STYLE( '', ( #763 ) ); 622 | #633 = EDGE_CURVE( '', #764, #765, #766, .T. ); 623 | #634 = EDGE_CURVE( '', #764, #767, #768, .F. ); 624 | #635 = EDGE_CURVE( '', #769, #767, #770, .F. ); 625 | #636 = EDGE_CURVE( '', #769, #765, #771, .T. ); 626 | #637 = FILL_AREA_STYLE( '', ( #772 ) ); 627 | #638 = EDGE_CURVE( '', #752, #773, #774, .F. ); 628 | #639 = EDGE_CURVE( '', #775, #773, #776, .T. ); 629 | #640 = EDGE_CURVE( '', #775, #754, #777, .T. ); 630 | #641 = FILL_AREA_STYLE( '', ( #778 ) ); 631 | #642 = EDGE_CURVE( '', #779, #780, #781, .T. ); 632 | #643 = EDGE_CURVE( '', #779, #782, #783, .T. ); 633 | #644 = EDGE_CURVE( '', #782, #784, #785, .T. ); 634 | #645 = EDGE_CURVE( '', #784, #780, #786, .T. ); 635 | #646 = FILL_AREA_STYLE( '', ( #787 ) ); 636 | #647 = EDGE_CURVE( '', #788, #749, #789, .F. ); 637 | #648 = EDGE_CURVE( '', #773, #788, #790, .F. ); 638 | #649 = FILL_AREA_STYLE( '', ( #791 ) ); 639 | #650 = EDGE_CURVE( '', #792, #793, #794, .F. ); 640 | #651 = EDGE_CURVE( '', #792, #795, #796, .T. ); 641 | #652 = EDGE_CURVE( '', #797, #795, #798, .T. ); 642 | #653 = EDGE_CURVE( '', #793, #797, #799, .T. ); 643 | #654 = FILL_AREA_STYLE( '', ( #800 ) ); 644 | #655 = EDGE_CURVE( '', #722, #801, #802, .F. ); 645 | #656 = EDGE_CURVE( '', #767, #728, #803, .T. ); 646 | #657 = EDGE_CURVE( '', #764, #804, #805, .T. ); 647 | #658 = EDGE_CURVE( '', #801, #804, #806, .T. ); 648 | #659 = FILL_AREA_STYLE( '', ( #807 ) ); 649 | #660 = EDGE_CURVE( '', #808, #808, #809, .F. ); 650 | #661 = EDGE_CURVE( '', #810, #810, #811, .T. ); 651 | #662 = FILL_AREA_STYLE( '', ( #812 ) ); 652 | #663 = EDGE_CURVE( '', #813, #814, #815, .F. ); 653 | #664 = EDGE_CURVE( '', #813, #816, #817, .T. ); 654 | #665 = EDGE_CURVE( '', #816, #765, #818, .T. ); 655 | #666 = EDGE_CURVE( '', #819, #769, #820, .T. ); 656 | #667 = EDGE_CURVE( '', #814, #819, #821, .F. ); 657 | #668 = FILL_AREA_STYLE( '', ( #822 ) ); 658 | #669 = EDGE_CURVE( '', #823, #782, #824, .T. ); 659 | #670 = EDGE_CURVE( '', #825, #823, #826, .T. ); 660 | #671 = EDGE_CURVE( '', #825, #784, #827, .T. ); 661 | #672 = FILL_AREA_STYLE( '', ( #828 ) ); 662 | #673 = EDGE_CURVE( '', #829, #736, #830, .T. ); 663 | #674 = EDGE_CURVE( '', #831, #801, #832, .T. ); 664 | #675 = EDGE_CURVE( '', #831, #829, #833, .T. ); 665 | #676 = FILL_AREA_STYLE( '', ( #834 ) ); 666 | #677 = EDGE_CURVE( '', #758, #733, #835, .T. ); 667 | #678 = EDGE_CURVE( '', #829, #760, #836, .T. ); 668 | #679 = FILL_AREA_STYLE( '', ( #837 ) ); 669 | #680 = EDGE_CURVE( '', #838, #839, #840, .T. ); 670 | #681 = EDGE_CURVE( '', #841, #838, #842, .T. ); 671 | #682 = EDGE_CURVE( '', #841, #843, #844, .T. ); 672 | #683 = EDGE_CURVE( '', #843, #839, #845, .T. ); 673 | #684 = FILL_AREA_STYLE( '', ( #846 ) ); 674 | #685 = EDGE_CURVE( '', #831, #750, #847, .T. ); 675 | #686 = FILL_AREA_STYLE( '', ( #848 ) ); 676 | #687 = EDGE_CURVE( '', #849, #732, #850, .F. ); 677 | #688 = EDGE_CURVE( '', #724, #849, #851, .F. ); 678 | #689 = FILL_AREA_STYLE( '', ( #852 ) ); 679 | #690 = EDGE_CURVE( '', #788, #804, #853, .T. ); 680 | #691 = FILL_AREA_STYLE( '', ( #854 ) ); 681 | #692 = EDGE_CURVE( '', #814, #743, #855, .T. ); 682 | #693 = EDGE_CURVE( '', #819, #856, #857, .T. ); 683 | #694 = EDGE_CURVE( '', #745, #856, #858, .T. ); 684 | #695 = FILL_AREA_STYLE( '', ( #859 ) ); 685 | #696 = EDGE_CURVE( '', #775, #860, #861, .T. ); 686 | #697 = EDGE_CURVE( '', #860, #756, #862, .T. ); 687 | #698 = FILL_AREA_STYLE( '', ( #863 ) ); 688 | #699 = EDGE_CURVE( '', #779, #813, #864, .T. ); 689 | #700 = EDGE_CURVE( '', #740, #823, #865, .T. ); 690 | #701 = FILL_AREA_STYLE( '', ( #866 ) ); 691 | #702 = EDGE_CURVE( '', #867, #741, #868, .T. ); 692 | #703 = EDGE_CURVE( '', #867, #856, #869, .T. ); 693 | #704 = FILL_AREA_STYLE( '', ( #870 ) ); 694 | #705 = EDGE_CURVE( '', #792, #816, #871, .T. ); 695 | #706 = EDGE_CURVE( '', #793, #843, #872, .T. ); 696 | #707 = EDGE_CURVE( '', #860, #841, #873, .T. ); 697 | #708 = FILL_AREA_STYLE( '', ( #874 ) ); 698 | #709 = EDGE_CURVE( '', #795, #780, #875, .T. ); 699 | #710 = FILL_AREA_STYLE( '', ( #876 ) ); 700 | #711 = EDGE_CURVE( '', #877, #849, #878, .T. ); 701 | #712 = EDGE_CURVE( '', #877, #726, #879, .T. ); 702 | #713 = FILL_AREA_STYLE( '', ( #880 ) ); 703 | #714 = EDGE_CURVE( '', #877, #867, #881, .T. ); 704 | #715 = EDGE_CURVE( '', #838, #825, #882, .T. ); 705 | #716 = FILL_AREA_STYLE( '', ( #883 ) ); 706 | #717 = EDGE_CURVE( '', #797, #839, #884, .T. ); 707 | #718 = FILL_AREA_STYLE( '', ( #885 ) ); 708 | #719 = FILL_AREA_STYLE( '', ( #886 ) ); 709 | #720 = FILL_AREA_STYLE_COLOUR( '', #887 ); 710 | #721 = VERTEX_POINT( '', #888 ); 711 | #722 = VERTEX_POINT( '', #889 ); 712 | #723 = LINE( '', #890, #891 ); 713 | #724 = VERTEX_POINT( '', #892 ); 714 | #725 = CIRCLE( '', #893, 0.00100000000000000 ); 715 | #726 = VERTEX_POINT( '', #894 ); 716 | #727 = LINE( '', #895, #896 ); 717 | #728 = VERTEX_POINT( '', #897 ); 718 | #729 = LINE( '', #898, #899 ); 719 | #730 = LINE( '', #900, #901 ); 720 | #731 = FILL_AREA_STYLE_COLOUR( '', #902 ); 721 | #732 = VERTEX_POINT( '', #903 ); 722 | #733 = VERTEX_POINT( '', #904 ); 723 | #734 = LINE( '', #905, #906 ); 724 | #735 = B_SPLINE_CURVE_WITH_KNOTS( '', 1, ( #907, #908 ), .UNSPECIFIED., .F., .F., ( 2, 2 ), ( 0.00000000000000, 1.00000000000000 ), .UNSPECIFIED. ); 725 | #736 = VERTEX_POINT( '', #909 ); 726 | #737 = B_SPLINE_CURVE_WITH_KNOTS( '', 1, ( #910, #911 ), .UNSPECIFIED., .F., .F., ( 2, 2 ), ( 0.00000000000000, 1.00000000000000 ), .UNSPECIFIED. ); 727 | #738 = LINE( '', #912, #913 ); 728 | #739 = FILL_AREA_STYLE_COLOUR( '', #914 ); 729 | #740 = VERTEX_POINT( '', #915 ); 730 | #741 = VERTEX_POINT( '', #916 ); 731 | #742 = CIRCLE( '', #917, 0.00100000000000000 ); 732 | #743 = VERTEX_POINT( '', #918 ); 733 | #744 = LINE( '', #919, #920 ); 734 | #745 = VERTEX_POINT( '', #921 ); 735 | #746 = CIRCLE( '', #922, 0.00100000000000000 ); 736 | #747 = LINE( '', #923, #924 ); 737 | #748 = FILL_AREA_STYLE_COLOUR( '', #925 ); 738 | #749 = VERTEX_POINT( '', #926 ); 739 | #750 = VERTEX_POINT( '', #927 ); 740 | #751 = LINE( '', #928, #929 ); 741 | #752 = VERTEX_POINT( '', #930 ); 742 | #753 = CIRCLE( '', #931, 0.00100000000000000 ); 743 | #754 = VERTEX_POINT( '', #932 ); 744 | #755 = CIRCLE( '', #933, 0.00400000000000000 ); 745 | #756 = VERTEX_POINT( '', #934 ); 746 | #757 = LINE( '', #935, #936 ); 747 | #758 = VERTEX_POINT( '', #937 ); 748 | #759 = LINE( '', #938, #939 ); 749 | #760 = VERTEX_POINT( '', #940 ); 750 | #761 = LINE( '', #941, #942 ); 751 | #762 = LINE( '', #943, #944 ); 752 | #763 = FILL_AREA_STYLE_COLOUR( '', #945 ); 753 | #764 = VERTEX_POINT( '', #946 ); 754 | #765 = VERTEX_POINT( '', #947 ); 755 | #766 = CIRCLE( '', #948, 0.00400000000000000 ); 756 | #767 = VERTEX_POINT( '', #949 ); 757 | #768 = LINE( '', #950, #951 ); 758 | #769 = VERTEX_POINT( '', #952 ); 759 | #770 = CIRCLE( '', #953, 0.00400000000000000 ); 760 | #771 = LINE( '', #954, #955 ); 761 | #772 = FILL_AREA_STYLE_COLOUR( '', #956 ); 762 | #773 = VERTEX_POINT( '', #957 ); 763 | #774 = LINE( '', #958, #959 ); 764 | #775 = VERTEX_POINT( '', #960 ); 765 | #776 = CIRCLE( '', #961, 0.00400000000000000 ); 766 | #777 = LINE( '', #962, #963 ); 767 | #778 = FILL_AREA_STYLE_COLOUR( '', #964 ); 768 | #779 = VERTEX_POINT( '', #965 ); 769 | #780 = VERTEX_POINT( '', #966 ); 770 | #781 = LINE( '', #967, #968 ); 771 | #782 = VERTEX_POINT( '', #969 ); 772 | #783 = LINE( '', #970, #971 ); 773 | #784 = VERTEX_POINT( '', #972 ); 774 | #785 = LINE( '', #973, #974 ); 775 | #786 = LINE( '', #975, #976 ); 776 | #787 = FILL_AREA_STYLE_COLOUR( '', #977 ); 777 | #788 = VERTEX_POINT( '', #978 ); 778 | #789 = LINE( '', #979, #980 ); 779 | #790 = CIRCLE( '', #981, 0.00100000000000000 ); 780 | #791 = FILL_AREA_STYLE_COLOUR( '', #982 ); 781 | #792 = VERTEX_POINT( '', #983 ); 782 | #793 = VERTEX_POINT( '', #984 ); 783 | #794 = CIRCLE( '', #985, 0.00100000000000000 ); 784 | #795 = VERTEX_POINT( '', #986 ); 785 | #796 = LINE( '', #987, #988 ); 786 | #797 = VERTEX_POINT( '', #989 ); 787 | #798 = CIRCLE( '', #990, 0.00100000000000000 ); 788 | #799 = LINE( '', #991, #992 ); 789 | #800 = FILL_AREA_STYLE_COLOUR( '', #993 ); 790 | #801 = VERTEX_POINT( '', #994 ); 791 | #802 = CIRCLE( '', #995, 0.00200000000000000 ); 792 | #803 = CIRCLE( '', #996, 0.00200000000000000 ); 793 | #804 = VERTEX_POINT( '', #997 ); 794 | #805 = CIRCLE( '', #998, 0.00200000000000000 ); 795 | #806 = LINE( '', #999, #1000 ); 796 | #807 = FILL_AREA_STYLE_COLOUR( '', #1001 ); 797 | #808 = VERTEX_POINT( '', #1002 ); 798 | #809 = CIRCLE( '', #1003, 0.00180000000000000 ); 799 | #810 = VERTEX_POINT( '', #1004 ); 800 | #811 = CIRCLE( '', #1005, 0.00180000000000000 ); 801 | #812 = FILL_AREA_STYLE_COLOUR( '', #1006 ); 802 | #813 = VERTEX_POINT( '', #1007 ); 803 | #814 = VERTEX_POINT( '', #1008 ); 804 | #815 = CIRCLE( '', #1009, 0.00200000000000000 ); 805 | #816 = VERTEX_POINT( '', #1010 ); 806 | #817 = LINE( '', #1011, #1012 ); 807 | #818 = CIRCLE( '', #1013, 0.00200000000000000 ); 808 | #819 = VERTEX_POINT( '', #1014 ); 809 | #820 = CIRCLE( '', #1015, 0.00200000000000000 ); 810 | #821 = LINE( '', #1016, #1017 ); 811 | #822 = FILL_AREA_STYLE_COLOUR( '', #1018 ); 812 | #823 = VERTEX_POINT( '', #1019 ); 813 | #824 = LINE( '', #1020, #1021 ); 814 | #825 = VERTEX_POINT( '', #1022 ); 815 | #826 = LINE( '', #1023, #1024 ); 816 | #827 = LINE( '', #1025, #1026 ); 817 | #828 = FILL_AREA_STYLE_COLOUR( '', #1027 ); 818 | #829 = VERTEX_POINT( '', #1028 ); 819 | #830 = B_SPLINE_CURVE_WITH_KNOTS( '', 1, ( #1029, #1030 ), .UNSPECIFIED., .F., .F., ( 2, 2 ), ( 0.00000000000000, 0.456521739152318 ), .UNSPECIFIED. ); 820 | #831 = VERTEX_POINT( '', #1031 ); 821 | #832 = LINE( '', #1032, #1033 ); 822 | #833 = LINE( '', #1034, #1035 ); 823 | #834 = FILL_AREA_STYLE_COLOUR( '', #1036 ); 824 | #835 = LINE( '', #1037, #1038 ); 825 | #836 = LINE( '', #1039, #1040 ); 826 | #837 = FILL_AREA_STYLE_COLOUR( '', #1041 ); 827 | #838 = VERTEX_POINT( '', #1042 ); 828 | #839 = VERTEX_POINT( '', #1043 ); 829 | #840 = LINE( '', #1044, #1045 ); 830 | #841 = VERTEX_POINT( '', #1046 ); 831 | #842 = LINE( '', #1047, #1048 ); 832 | #843 = VERTEX_POINT( '', #1049 ); 833 | #844 = LINE( '', #1050, #1051 ); 834 | #845 = LINE( '', #1052, #1053 ); 835 | #846 = FILL_AREA_STYLE_COLOUR( '', #1054 ); 836 | #847 = LINE( '', #1055, #1056 ); 837 | #848 = FILL_AREA_STYLE_COLOUR( '', #1057 ); 838 | #849 = VERTEX_POINT( '', #1058 ); 839 | #850 = CIRCLE( '', #1059, 0.00100000000000000 ); 840 | #851 = LINE( '', #1060, #1061 ); 841 | #852 = FILL_AREA_STYLE_COLOUR( '', #1062 ); 842 | #853 = LINE( '', #1063, #1064 ); 843 | #854 = FILL_AREA_STYLE_COLOUR( '', #1065 ); 844 | #855 = LINE( '', #1066, #1067 ); 845 | #856 = VERTEX_POINT( '', #1068 ); 846 | #857 = LINE( '', #1069, #1070 ); 847 | #858 = LINE( '', #1071, #1072 ); 848 | #859 = FILL_AREA_STYLE_COLOUR( '', #1073 ); 849 | #860 = VERTEX_POINT( '', #1074 ); 850 | #861 = LINE( '', #1075, #1076 ); 851 | #862 = LINE( '', #1077, #1078 ); 852 | #863 = FILL_AREA_STYLE_COLOUR( '', #1079 ); 853 | #864 = LINE( '', #1080, #1081 ); 854 | #865 = LINE( '', #1082, #1083 ); 855 | #866 = FILL_AREA_STYLE_COLOUR( '', #1084 ); 856 | #867 = VERTEX_POINT( '', #1085 ); 857 | #868 = LINE( '', #1086, #1087 ); 858 | #869 = LINE( '', #1088, #1089 ); 859 | #870 = FILL_AREA_STYLE_COLOUR( '', #1090 ); 860 | #871 = LINE( '', #1091, #1092 ); 861 | #872 = CIRCLE( '', #1093, 0.00400000000000000 ); 862 | #873 = LINE( '', #1094, #1095 ); 863 | #874 = FILL_AREA_STYLE_COLOUR( '', #1096 ); 864 | #875 = LINE( '', #1097, #1098 ); 865 | #876 = FILL_AREA_STYLE_COLOUR( '', #1099 ); 866 | #877 = VERTEX_POINT( '', #1100 ); 867 | #878 = LINE( '', #1101, #1102 ); 868 | #879 = LINE( '', #1103, #1104 ); 869 | #880 = FILL_AREA_STYLE_COLOUR( '', #1105 ); 870 | #881 = LINE( '', #1106, #1107 ); 871 | #882 = LINE( '', #1108, #1109 ); 872 | #883 = FILL_AREA_STYLE_COLOUR( '', #1110 ); 873 | #884 = CIRCLE( '', #1111, 0.00400000000000000 ); 874 | #885 = FILL_AREA_STYLE_COLOUR( '', #1112 ); 875 | #886 = FILL_AREA_STYLE_COLOUR( '', #1113 ); 876 | #887 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 877 | #888 = CARTESIAN_POINT( '', ( 0.0421634352301886, 0.0273603068204251, 0.00893628408127281 ) ); 878 | #889 = CARTESIAN_POINT( '', ( 0.0361095936379820, 0.0273604223972698, 0.00893628407976343 ) ); 879 | #890 = CARTESIAN_POINT( '', ( 0.0309136077086102, 0.0273603068237693, 0.00893628408127277 ) ); 880 | #891 = VECTOR( '', #1114, 1.00000000000000 ); 881 | #892 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0263600565892636, 0.00893629714408900 ) ); 882 | #893 = AXIS2_PLACEMENT_3D( '', #1115, #1116, #1117 ); 883 | #894 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0261100470812520, 0.00893630040910023 ) ); 884 | #895 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0267350629567604, 0.00893629224667524 ) ); 885 | #896 = VECTOR( '', #1118, 1.00000000000000 ); 886 | #897 = CARTESIAN_POINT( '', ( 0.0361095658285802, 0.0261101594931821, 0.00893630040763218 ) ); 887 | #898 = CARTESIAN_POINT( '', ( 0.0309134129954668, 0.0261102750703950, 0.00893630040612280 ) ); 888 | #899 = VECTOR( '', #1119, 1.00000000000000 ); 889 | #900 = CARTESIAN_POINT( '', ( 0.0361096770872820, 0.0311121594915183, 0.00893623508377174 ) ); 890 | #901 = VECTOR( '', #1120, 1.00000000000000 ); 891 | #902 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 892 | #903 = CARTESIAN_POINT( '', ( 0.0421634352357544, 0.0273601218866724, 0.0139362840838900 ) ); 893 | #904 = CARTESIAN_POINT( '', ( 0.0446634407963458, 0.0273600662794406, 0.0139362840846162 ) ); 894 | #905 = CARTESIAN_POINT( '', ( 0.0421634352357544, 0.0273601218866724, 0.0139362840838900 ) ); 895 | #906 = VECTOR( '', #1121, 1.00000000000000 ); 896 | #907 = CARTESIAN_POINT( '', ( 0.0421634352357545, 0.0273601218866724, 0.0139362840838900 ) ); 897 | #908 = CARTESIAN_POINT( '', ( 0.0421634352357545, 0.0273600565889310, 0.00893628408454074 ) ); 898 | #909 = CARTESIAN_POINT( '', ( 0.0446634408031485, 0.0273603068204253, 0.00893628408127282 ) ); 899 | #910 = CARTESIAN_POINT( '', ( 0.0446634407827403, 0.0273606126591508, 0.00893628407727869 ) ); 900 | #911 = CARTESIAN_POINT( '', ( 0.0421634352246228, 0.0273605570519191, 0.00893628407800489 ) ); 901 | #912 = CARTESIAN_POINT( '', ( 0.0446634407963458, 0.0273600662794406, 0.0139362840846162 ) ); 902 | #913 = VECTOR( '', #1122, 1.00000000000000 ); 903 | #914 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 904 | #915 = CARTESIAN_POINT( '', ( 0.0196634794897331, 0.0273601218866724, 0.0139362840838900 ) ); 905 | #916 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0263601218870050, 0.0139362971434383 ) ); 906 | #917 = AXIS2_PLACEMENT_3D( '', #1123, #1124, #1125 ); 907 | #918 = CARTESIAN_POINT( '', ( 0.0196634794897331, 0.0273600565889310, 0.00893628408454072 ) ); 908 | #919 = CARTESIAN_POINT( '', ( 0.0196634794897331, 0.0273601218866724, 0.0139362840838900 ) ); 909 | #920 = VECTOR( '', #1126, 1.00000000000000 ); 910 | #921 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0263600565892636, 0.00893629714408900 ) ); 911 | #922 = AXIS2_PLACEMENT_3D( '', #1127, #1128, #1129 ); 912 | #923 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0263600565892636, 0.00893629714408899 ) ); 913 | #924 = VECTOR( '', #1130, 1.00000000000000 ); 914 | #925 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 915 | #926 = CARTESIAN_POINT( '', ( 0.0349135230602319, 0.0311101990730929, 0.00992981530760026 ) ); 916 | #927 = CARTESIAN_POINT( '', ( 0.0349135240902840, 0.0311101312472587, 0.00473623510971954 ) ); 917 | #928 = CARTESIAN_POINT( '', ( 0.0349135240902840, 0.0311101913211808, 0.00933623510930612 ) ); 918 | #929 = VECTOR( '', #1131, 1.00000000000000 ); 919 | #930 = CARTESIAN_POINT( '', ( 0.0349135207941172, 0.0311101990899089, 0.00993109908433921 ) ); 920 | #931 = AXIS2_PLACEMENT_3D( '', #1132, #1133, #1134 ); 921 | #932 = CARTESIAN_POINT( '', ( 0.0349135240902840, 0.0311101991568978, 0.00993623419129503 ) ); 922 | #933 = AXIS2_PLACEMENT_3D( '', #1135, #1136, #1137 ); 923 | #934 = CARTESIAN_POINT( '', ( 0.0349135240902840, 0.0311102513951028, 0.0139362351088927 ) ); 924 | #935 = CARTESIAN_POINT( '', ( 0.0349135240902840, 0.0311102252760003, 0.0119362346500939 ) ); 925 | #936 = VECTOR( '', #1138, 1.00000000000000 ); 926 | #937 = CARTESIAN_POINT( '', ( 0.0446635242063016, 0.0311100345273788, 0.0139362351117249 ) ); 927 | #938 = CARTESIAN_POINT( '', ( 0.0309135242096830, 0.0311103403664731, 0.0139362351077308 ) ); 928 | #939 = VECTOR( '', #1139, 1.00000000000000 ); 929 | #940 = CARTESIAN_POINT( '', ( 0.0446635242063016, 0.0311099143795347, 0.00473623511255173 ) ); 930 | #941 = CARTESIAN_POINT( '', ( 0.0446635242063016, 0.0311100018785081, 0.0114362351120502 ) ); 931 | #942 = VECTOR( '', #1140, 1.00000000000000 ); 932 | #943 = CARTESIAN_POINT( '', ( 0.0397885241482928, 0.0311100228133968, 0.00473623511113564 ) ); 933 | #944 = VECTOR( '', #1141, 1.00000000000000 ); 934 | #945 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 935 | #946 = CARTESIAN_POINT( '', ( 0.0343775593304257, 0.0281101849587031, 0.00793627398206343 ) ); 936 | #947 = CARTESIAN_POINT( '', ( 0.0274493553950619, 0.0281103390616571, 0.00793627398005092 ) ); 937 | #948 = AXIS2_PLACEMENT_3D( '', #1142, #1143, #1144 ); 938 | #949 = CARTESIAN_POINT( '', ( 0.0343775148447392, 0.0261101849593684, 0.00793630010115997 ) ); 939 | #950 = CARTESIAN_POINT( '', ( 0.0343775148002535, 0.0261081849593691, 0.00793630012727907 ) ); 940 | #951 = VECTOR( '', #1145, 1.00000000000000 ); 941 | #952 = CARTESIAN_POINT( '', ( 0.0274493109093754, 0.0261103390623224, 0.00793630009914745 ) ); 942 | #953 = AXIS2_PLACEMENT_3D( '', #1146, #1147, #1148 ); 943 | #954 = CARTESIAN_POINT( '', ( 0.0274493108648898, 0.0261083390623231, 0.00793630012526655 ) ); 944 | #955 = VECTOR( '', #1149, 1.00000000000000 ); 945 | #956 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 946 | #957 = CARTESIAN_POINT( '', ( 0.0349134540655875, 0.0281101990909069, 0.00993113826298401 ) ); 947 | #958 = CARTESIAN_POINT( '', ( 0.0349134540655875, 0.0281101990909069, 0.00993113826298401 ) ); 948 | #959 = VECTOR( '', #1150, 1.00000000000000 ); 949 | #960 = CARTESIAN_POINT( '', ( 0.0349134573617543, 0.0281101991578958, 0.00993627336993983 ) ); 950 | #961 = AXIS2_PLACEMENT_3D( '', #1151, #1152, #1153 ); 951 | #962 = CARTESIAN_POINT( '', ( 0.0349134573617543, 0.0281101991578958, 0.00993627336993983 ) ); 952 | #963 = VECTOR( '', #1154, 1.00000000000000 ); 953 | #964 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 954 | #965 = CARTESIAN_POINT( '', ( 0.0269134406783492, 0.0273601629985784, 0.00473628408261090 ) ); 955 | #966 = CARTESIAN_POINT( '', ( 0.0269135240922630, 0.0311103091900045, 0.00473623510739568 ) ); 956 | #967 = CARTESIAN_POINT( '', ( 0.0269134406242160, 0.0273577292631411, 0.00473628411439439 ) ); 957 | #968 = VECTOR( '', #1155, 1.00000000000000 ); 958 | #969 = CARTESIAN_POINT( '', ( 0.0171634407895030, 0.0273599461308594, 0.00473628408544310 ) ); 959 | #970 = CARTESIAN_POINT( '', ( 0.0220384406353072, 0.0273600545647167, 0.00473628408402700 ) ); 960 | #971 = VECTOR( '', #1156, 1.00000000000000 ); 961 | #972 = CARTESIAN_POINT( '', ( 0.0171635242130643, 0.0311105260577233, 0.00473623510456349 ) ); 962 | #973 = CARTESIAN_POINT( '', ( 0.0171634407450173, 0.0273579461308599, 0.00473628411156220 ) ); 963 | #974 = VECTOR( '', #1157, 1.00000000000000 ); 964 | #975 = CARTESIAN_POINT( '', ( 0.0220385241526637, 0.0311104176238639, 0.00473623510597959 ) ); 965 | #976 = VECTOR( '', #1158, 1.00000000000000 ); 966 | #977 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 967 | #978 = CARTESIAN_POINT( '', ( 0.0349134532415458, 0.0281101990741596, 0.00992985448624506 ) ); 968 | #979 = CARTESIAN_POINT( '', ( 0.0349134107714779, 0.0261081990747798, 0.00992988063146069 ) ); 969 | #980 = VECTOR( '', #1159, 1.00000000000000 ); 970 | #981 = AXIS2_PLACEMENT_3D( '', #1160, #1161, #1162 ); 971 | #982 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 972 | #983 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281103770168138, 0.00992985448392121 ) ); 973 | #984 = CARTESIAN_POINT( '', ( 0.0269134606599001, 0.0281103770335060, 0.00993113826066016 ) ); 974 | #985 = AXIS2_PLACEMENT_3D( '', #1163, #1164, #1165 ); 975 | #986 = CARTESIAN_POINT( '', ( 0.0269135240922630, 0.0311103770158159, 0.00992981530527640 ) ); 976 | #987 = CARTESIAN_POINT( '', ( 0.0269134406242160, 0.0273577970889524, 0.00992986431227511 ) ); 977 | #988 = VECTOR( '', #1166, 1.00000000000000 ); 978 | #989 = CARTESIAN_POINT( '', ( 0.0269135273884297, 0.0311103770325081, 0.00993109908201536 ) ); 979 | #990 = AXIS2_PLACEMENT_3D( '', #1167, #1168, #1169 ); 980 | #991 = CARTESIAN_POINT( '', ( 0.0269134606599001, 0.0281103770335060, 0.00993113826066016 ) ); 981 | #992 = VECTOR( '', #1170, 1.00000000000000 ); 982 | #993 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 983 | #994 = CARTESIAN_POINT( '', ( 0.0349134406842860, 0.0273603906051941, 0.00853916215207917 ) ); 984 | #995 = AXIS2_PLACEMENT_3D( '', #1171, #1172, #1173 ); 985 | #996 = AXIS2_PLACEMENT_3D( '', #1174, #1175, #1176 ); 986 | #997 = CARTESIAN_POINT( '', ( 0.0349134573617543, 0.0281101809121264, 0.00853915236015646 ) ); 987 | #998 = AXIS2_PLACEMENT_3D( '', #1177, #1178, #1179 ); 988 | #999 = CARTESIAN_POINT( '', ( 0.0349134128315822, 0.0261081809127925, 0.00853917850537209 ) ); 989 | #1000 = VECTOR( '', #1180, 1.00000000000000 ); 990 | #1001 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 991 | #1002 = CARTESIAN_POINT( '', ( 0.0291134128775026, 0.0261103281670518, 0.00993629948787444 ) ); 992 | #1003 = AXIS2_PLACEMENT_3D( '', #1181, #1182, #1183 ); 993 | #1004 = CARTESIAN_POINT( '', ( 0.0291134573631891, 0.0281103281663865, 0.00993627336877791 ) ); 994 | #1005 = AXIS2_PLACEMENT_3D( '', #1184, #1185, #1186 ); 995 | #1006 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 996 | #1007 = CARTESIAN_POINT( '', ( 0.0269134406783492, 0.0273602126624482, 0.00853916215440301 ) ); 997 | #1008 = CARTESIAN_POINT( '', ( 0.0257172877246533, 0.0273601912428385, 0.00893628408278221 ) ); 998 | #1009 = AXIS2_PLACEMENT_3D( '', #1187, #1188, #1189 ); 999 | #1010 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281103588548722, 0.00853915235783260 ) ); 1000 | #1011 = CARTESIAN_POINT( '', ( 0.0269134128335612, 0.0261083588555382, 0.00853917850304824 ) ); 1001 | #1012 = VECTOR( '', #1190, 1.00000000000000 ); 1002 | #1013 = AXIS2_PLACEMENT_3D( '', #1191, #1192, #1193 ); 1003 | #1014 = CARTESIAN_POINT( '', ( 0.0257172599255345, 0.0261103906476131, 0.00893630040461341 ) ); 1004 | #1015 = AXIS2_PLACEMENT_3D( '', #1194, #1195, #1196 ); 1005 | #1016 = CARTESIAN_POINT( '', ( 0.0257173711842364, 0.0311123906459493, 0.00893623508075297 ) ); 1006 | #1017 = VECTOR( '', #1197, 1.00000000000000 ); 1007 | #1018 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1008 | #1019 = CARTESIAN_POINT( '', ( 0.0171634407895030, 0.0273600662787035, 0.0139362840846162 ) ); 1009 | #1020 = CARTESIAN_POINT( '', ( 0.0171634407895030, 0.0273600336298328, 0.0114362840849416 ) ); 1010 | #1021 = VECTOR( '', #1198, 1.00000000000000 ); 1011 | #1022 = CARTESIAN_POINT( '', ( 0.0171635242130643, 0.0311106462055675, 0.0139362351037366 ) ); 1012 | #1023 = CARTESIAN_POINT( '', ( 0.0171635242575500, 0.0311126462055668, 0.0139362350776175 ) ); 1013 | #1024 = VECTOR( '', #1199, 1.00000000000000 ); 1014 | #1025 = CARTESIAN_POINT( '', ( 0.0171635242130643, 0.0311106135566967, 0.0114362351040620 ) ); 1015 | #1026 = VECTOR( '', #1200, 1.00000000000000 ); 1016 | #1027 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1017 | #1028 = CARTESIAN_POINT( '', ( 0.0446634408099513, 0.0273605578090487, 0.00473628407745486 ) ); 1018 | #1029 = CARTESIAN_POINT( '', ( 0.0446634408099512, 0.0273605578090486, 0.00473628407745486 ) ); 1019 | #1030 = CARTESIAN_POINT( '', ( 0.0446634408099513, 0.0273606126591514, 0.00893628407727871 ) ); 1020 | #1031 = CARTESIAN_POINT( '', ( 0.0349134406842860, 0.0273603409413243, 0.00473628408028705 ) ); 1021 | #1032 = CARTESIAN_POINT( '', ( 0.0349134406842860, 0.0273604010152464, 0.00933628407987363 ) ); 1022 | #1033 = VECTOR( '', #1201, 1.00000000000000 ); 1023 | #1034 = CARTESIAN_POINT( '', ( 0.0397884406484998, 0.0273604493751843, 0.00473628407887095 ) ); 1024 | #1035 = VECTOR( '', #1202, 1.00000000000000 ); 1025 | #1036 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1026 | #1037 = CARTESIAN_POINT( '', ( 0.0446635242507873, 0.0311120345273781, 0.0139362350856058 ) ); 1027 | #1038 = VECTOR( '', #1203, 1.00000000000000 ); 1028 | #1039 = CARTESIAN_POINT( '', ( 0.0446634407558181, 0.0273581240736009, 0.00473628410923834 ) ); 1029 | #1040 = VECTOR( '', #1204, 1.00000000000000 ); 1030 | #1041 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1031 | #1042 = CARTESIAN_POINT( '', ( 0.0269135240922630, 0.0311104293378487, 0.0139362351065688 ) ); 1032 | #1043 = CARTESIAN_POINT( '', ( 0.0269135240922630, 0.0311103770996436, 0.00993623418897117 ) ); 1033 | #1044 = CARTESIAN_POINT( '', ( 0.0269135240922630, 0.0311104032187462, 0.0119362346477700 ) ); 1034 | #1045 = VECTOR( '', #1205, 1.00000000000000 ); 1035 | #1046 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281104293388466, 0.0139362742852136 ) ); 1036 | #1047 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281104293388466, 0.0139362742852136 ) ); 1037 | #1048 = VECTOR( '', #1206, 1.00000000000000 ); 1038 | #1049 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281103771006415, 0.00993627336761598 ) ); 1039 | #1050 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281104032197440, 0.0119362738264148 ) ); 1040 | #1051 = VECTOR( '', #1207, 1.00000000000000 ); 1041 | #1052 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281103771006415, 0.00993627336761598 ) ); 1042 | #1053 = VECTOR( '', #1208, 1.00000000000000 ); 1043 | #1054 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1044 | #1055 = CARTESIAN_POINT( '', ( 0.0349134406398004, 0.0273583409413249, 0.00473628410640615 ) ); 1045 | #1056 = VECTOR( '', #1209, 1.00000000000000 ); 1046 | #1057 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1047 | #1058 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0263601218870050, 0.0139362971434383 ) ); 1048 | #1059 = AXIS2_PLACEMENT_3D( '', #1210, #1211, #1212 ); 1049 | #1060 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0263601218870050, 0.0139362971434383 ) ); 1050 | #1061 = VECTOR( '', #1213, 1.00000000000000 ); 1051 | #1062 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1052 | #1063 = CARTESIAN_POINT( '', ( 0.0349134573617543, 0.0281101781874832, 0.00833052008211586 ) ); 1053 | #1064 = VECTOR( '', #1214, 1.00000000000000 ); 1054 | #1065 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1055 | #1066 = CARTESIAN_POINT( '', ( 0.0309136077086102, 0.0273603068237693, 0.00893628408127277 ) ); 1056 | #1067 = VECTOR( '', #1215, 1.00000000000000 ); 1057 | #1068 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0261105030575643, 0.00893630040314539 ) ); 1058 | #1069 = CARTESIAN_POINT( '', ( 0.0309134129954668, 0.0261102750703950, 0.00893630040612280 ) ); 1059 | #1070 = VECTOR( '', #1216, 1.00000000000000 ); 1060 | #1071 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0267350629567604, 0.00893629224667524 ) ); 1061 | #1072 = VECTOR( '', #1217, 1.00000000000000 ); 1062 | #1073 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1063 | #1074 = CARTESIAN_POINT( '', ( 0.0349134573617543, 0.0281102513961008, 0.0139362742875375 ) ); 1064 | #1075 = CARTESIAN_POINT( '', ( 0.0349134573617543, 0.0281102252769983, 0.0119362738287387 ) ); 1065 | #1076 = VECTOR( '', #1218, 1.00000000000000 ); 1066 | #1077 = CARTESIAN_POINT( '', ( 0.0349134573617543, 0.0281102513961008, 0.0139362742875375 ) ); 1067 | #1078 = VECTOR( '', #1219, 1.00000000000000 ); 1068 | #1079 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1069 | #1080 = CARTESIAN_POINT( '', ( 0.0269134406783492, 0.0273602230725004, 0.00933628408219748 ) ); 1070 | #1081 = VECTOR( '', #1220, 1.00000000000000 ); 1071 | #1082 = CARTESIAN_POINT( '', ( 0.0309136077086102, 0.0273603721215106, 0.0139362840806221 ) ); 1072 | #1083 = VECTOR( '', #1221, 1.00000000000000 ); 1073 | #1084 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1074 | #1085 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0261105683553058, 0.0139363004091757 ) ); 1075 | #1086 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0311123403664724, 0.0139362350816117 ) ); 1076 | #1087 = VECTOR( '', #1222, 1.00000000000000 ); 1077 | #1088 = CARTESIAN_POINT( '', ( 0.0206635017325764, 0.0261105357064351, 0.0114363004028200 ) ); 1078 | #1089 = VECTOR( '', #1223, 1.00000000000000 ); 1079 | #1090 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1080 | #1091 = CARTESIAN_POINT( '', ( 0.0269134573637333, 0.0281103561302290, 0.00833052007979201 ) ); 1081 | #1092 = VECTOR( '', #1224, 1.00000000000000 ); 1082 | #1093 = AXIS2_PLACEMENT_3D( '', #1225, #1226, #1227 ); 1083 | #1094 = CARTESIAN_POINT( '', ( 0.0309134574811533, 0.0281103403674711, 0.0139362742863756 ) ); 1084 | #1095 = VECTOR( '', #1228, 1.00000000000000 ); 1085 | #1096 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1086 | #1097 = CARTESIAN_POINT( '', ( 0.0269135240922630, 0.0311103692639266, 0.00933623510698226 ) ); 1087 | #1098 = VECTOR( '', #1229, 1.00000000000000 ); 1088 | #1099 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1089 | #1100 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0261101123789933, 0.0139363004084495 ) ); 1090 | #1101 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0311123403664724, 0.0139362350816117 ) ); 1091 | #1102 = VECTOR( '', #1230, 1.00000000000000 ); 1092 | #1103 = CARTESIAN_POINT( '', ( 0.0411634129929112, 0.0261103735699588, 0.0339363004069684 ) ); 1093 | #1104 = VECTOR( '', #1231, 1.00000000000000 ); 1094 | #1105 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1095 | #1106 = CARTESIAN_POINT( '', ( 0.0309134129954668, 0.0261103403681364, 0.0139363004054721 ) ); 1096 | #1107 = VECTOR( '', #1232, 1.00000000000000 ); 1097 | #1108 = CARTESIAN_POINT( '', ( 0.0309135242096830, 0.0311103403664731, 0.0139362351077308 ) ); 1098 | #1109 = VECTOR( '', #1233, 1.00000000000000 ); 1099 | #1110 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1100 | #1111 = AXIS2_PLACEMENT_3D( '', #1234, #1235, #1236 ); 1101 | #1112 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1102 | #1113 = COLOUR_RGB( '', 0.917647063700000, 0.917647063700000, 0.917647063700000 ); 1103 | #1114 = DIRECTION( '', ( -0.999999999752628, -2.22428432238980E-05, 0.00000000000000 ) ); 1104 | #1115 = CARTESIAN_POINT( '', ( 0.0421634129929113, 0.0263600565892636, 0.00893629714408900 ) ); 1105 | #1116 = DIRECTION( '', ( 2.01733258561499E-17, 1.30595482718484E-05, 0.999999999914724 ) ); 1106 | #1117 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 1107 | #1118 = DIRECTION( '', ( -1.56731074519576E-32, -0.999999999914724, 1.30595482718484E-05 ) ); 1108 | #1119 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 1109 | #1120 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1110 | #1121 = DIRECTION( '', ( 0.999999999752628, -2.22428432238485E-05, 0.00000000000000 ) ); 1111 | #1122 = DIRECTION( '', ( 0.00000000000000, -1.30595482718573E-05, -0.999999999914724 ) ); 1112 | #1123 = CARTESIAN_POINT( '', ( 0.0196635017325764, 0.0263601218870050, 0.0139362971434383 ) ); 1113 | #1124 = DIRECTION( '', ( 2.01716782528076E-17, 1.30595482718484E-05, 0.999999999914724 ) ); 1114 | #1125 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 1115 | #1126 = DIRECTION( '', ( -2.01733257945699E-17, -1.30595482718484E-05, -0.999999999914724 ) ); 1116 | #1127 = CARTESIAN_POINT( '', ( 0.0196635017325764, 0.0263600565892636, 0.00893629714408900 ) ); 1117 | #1128 = DIRECTION( '', ( 2.01733258561499E-17, 1.30595482718484E-05, 0.999999999914724 ) ); 1118 | #1129 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 1119 | #1130 = DIRECTION( '', ( -2.01733258561499E-17, -1.30595482718484E-05, -0.999999999914724 ) ); 1120 | #1131 = DIRECTION( '', ( 9.15606782332707E-22, -1.30595482718484E-05, -0.999999999914724 ) ); 1121 | #1132 = CARTESIAN_POINT( '', ( 0.0359135199698282, 0.0311101768303185, 0.00992981530789074 ) ); 1122 | #1133 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1123 | #1134 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -4.42474706391087E-26 ) ); 1124 | #1135 = CARTESIAN_POINT( '', ( 0.0309135240912735, 0.0311102881282707, 0.00993623419013310 ) ); 1125 | #1136 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1126 | #1137 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1127 | #1138 = DIRECTION( '', ( 6.41079239085529E-21, 1.30595482718484E-05, 0.999999999914724 ) ); 1128 | #1139 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 1129 | #1140 = DIRECTION( '', ( 1.96920684575893E-22, -1.30595482718484E-05, -0.999999999914724 ) ); 1130 | #1141 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 1131 | #1142 = CARTESIAN_POINT( '', ( 0.0309134573627438, 0.0281102881292686, 0.00993627336877791 ) ); 1132 | #1143 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1133 | #1144 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1134 | #1145 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1135 | #1146 = CARTESIAN_POINT( '', ( 0.0309134128770574, 0.0261102881299340, 0.00993629948787444 ) ); 1136 | #1147 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1137 | #1148 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1138 | #1149 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1139 | #1150 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1140 | #1151 = CARTESIAN_POINT( '', ( 0.0309134573627438, 0.0281102881292686, 0.00993627336877791 ) ); 1141 | #1152 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1142 | #1153 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1143 | #1154 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1144 | #1155 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1145 | #1156 = DIRECTION( '', ( -0.999999999752628, -2.22428432238980E-05, 0.00000000000000 ) ); 1146 | #1157 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1147 | #1158 = DIRECTION( '', ( 0.999999999752628, -2.22428432240390E-05, 0.00000000000000 ) ); 1148 | #1159 = DIRECTION( '', ( -2.22428432259358E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 1149 | #1160 = CARTESIAN_POINT( '', ( 0.0359134532412985, 0.0281101768313165, 0.00992985448653554 ) ); 1150 | #1161 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1151 | #1162 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1152 | #1163 = CARTESIAN_POINT( '', ( 0.0259134614841891, 0.0281103992595654, 0.00992985448363073 ) ); 1153 | #1164 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1154 | #1165 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1155 | #1166 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1156 | #1167 = CARTESIAN_POINT( '', ( 0.0259135282127189, 0.0311103992585674, 0.00992981530498592 ) ); 1157 | #1168 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1158 | #1169 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -4.42474706391087E-26 ) ); 1159 | #1170 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1160 | #1171 = CARTESIAN_POINT( '', ( 0.0361095936379820, 0.0273603962781732, 0.00693628407993399 ) ); 1161 | #1172 = DIRECTION( '', ( -2.22428432257947E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1162 | #1173 = DIRECTION( '', ( 0.999999999752628, 2.22428432238979E-05, 0.00000000000000 ) ); 1163 | #1174 = CARTESIAN_POINT( '', ( 0.0361095658285802, 0.0261101333740856, 0.00693630040780274 ) ); 1164 | #1175 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1165 | #1176 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1166 | #1177 = CARTESIAN_POINT( '', ( 0.0361096103142666, 0.0281101333734203, 0.00693627428870620 ) ); 1167 | #1178 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1168 | #1179 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1169 | #1180 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1170 | #1181 = CARTESIAN_POINT( '', ( 0.0309134128770574, 0.0261102881299340, 0.00993629948787444 ) ); 1171 | #1182 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1172 | #1183 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1173 | #1184 = CARTESIAN_POINT( '', ( 0.0309134573627438, 0.0281102881292686, 0.00993627336877791 ) ); 1174 | #1185 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1175 | #1186 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1176 | #1187 = CARTESIAN_POINT( '', ( 0.0257172877246532, 0.0273601651237419, 0.00693628408295276 ) ); 1177 | #1188 = DIRECTION( '', ( -2.22428432257947E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1178 | #1189 = DIRECTION( '', ( 0.999999999752628, 2.22428432238979E-05, 0.00000000000000 ) ); 1179 | #1190 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1180 | #1191 = CARTESIAN_POINT( '', ( 0.0257173044112210, 0.0281103645278513, 0.00693627428568743 ) ); 1181 | #1192 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1182 | #1193 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1183 | #1194 = CARTESIAN_POINT( '', ( 0.0257172599255345, 0.0261103645285166, 0.00693630040478396 ) ); 1184 | #1195 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1185 | #1196 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1186 | #1197 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1187 | #1198 = DIRECTION( '', ( 1.96868985982420E-22, -1.30595482718484E-05, -0.999999999914724 ) ); 1188 | #1199 = DIRECTION( '', ( -2.22428432259358E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 1189 | #1200 = DIRECTION( '', ( 1.96920684575893E-22, -1.30595482718484E-05, -0.999999999914724 ) ); 1190 | #1201 = DIRECTION( '', ( -9.15533842637271E-22, 1.30595482718484E-05, 0.999999999914724 ) ); 1191 | #1202 = DIRECTION( '', ( 0.999999999752628, 2.22428432238980E-05, 0.00000000000000 ) ); 1192 | #1203 = DIRECTION( '', ( -2.22428432259358E-05, -0.999999999667352, 1.30595482686179E-05 ) ); 1193 | #1204 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1194 | #1205 = DIRECTION( '', ( -6.41079239085529E-21, -1.30595482718484E-05, -0.999999999914724 ) ); 1195 | #1206 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1196 | #1207 = DIRECTION( '', ( -6.41079239085529E-21, -1.30595482718484E-05, -0.999999999914724 ) ); 1197 | #1208 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1198 | #1209 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1199 | #1210 = CARTESIAN_POINT( '', ( 0.0421634129929113, 0.0263601218870050, 0.0139362971434383 ) ); 1200 | #1211 = DIRECTION( '', ( 2.01716782528076E-17, 1.30595482718484E-05, 0.999999999914724 ) ); 1201 | #1212 = DIRECTION( '', ( 0.00000000000000, -0.999999999914724, 1.30595482718484E-05 ) ); 1202 | #1213 = DIRECTION( '', ( -2.01733258561499E-17, -1.30595482718484E-05, -0.999999999914724 ) ); 1203 | #1214 = DIRECTION( '', ( 9.15585540519645E-22, -1.30595482718484E-05, -0.999999999914724 ) ); 1204 | #1215 = DIRECTION( '', ( -0.999999999752628, -2.22428432238980E-05, 0.00000000000000 ) ); 1205 | #1216 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 1206 | #1217 = DIRECTION( '', ( -1.56731074519576E-32, -0.999999999914724, 1.30595482718484E-05 ) ); 1207 | #1218 = DIRECTION( '', ( 6.41079239085529E-21, 1.30595482718484E-05, 0.999999999914724 ) ); 1208 | #1219 = DIRECTION( '', ( 2.22428432259358E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1209 | #1220 = DIRECTION( '', ( -9.15688939002265E-22, 1.30595482718484E-05, 0.999999999914724 ) ); 1210 | #1221 = DIRECTION( '', ( -0.999999999752628, -2.22428432238980E-05, 0.00000000000000 ) ); 1211 | #1222 = DIRECTION( '', ( 1.56731012783838E-32, 0.999999999914724, -1.30595482718484E-05 ) ); 1212 | #1223 = DIRECTION( '', ( -2.01733258561499E-17, -1.30595482718484E-05, -0.999999999914724 ) ); 1213 | #1224 = DIRECTION( '', ( 9.15688938096214E-22, -1.30595482718484E-05, -0.999999999914724 ) ); 1214 | #1225 = CARTESIAN_POINT( '', ( 0.0309134573627438, 0.0281102881292686, 0.00993627336877791 ) ); 1215 | #1226 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1216 | #1227 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1217 | #1228 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 1218 | #1229 = DIRECTION( '', ( 9.15606782332707E-22, -1.30595482718484E-05, -0.999999999914724 ) ); 1219 | #1230 = DIRECTION( '', ( 1.56731012783838E-32, 0.999999999914724, -1.30595482718484E-05 ) ); 1220 | #1231 = DIRECTION( '', ( -2.01733258561499E-17, -1.30595482718484E-05, -0.999999999914724 ) ); 1221 | #1232 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 1222 | #1233 = DIRECTION( '', ( -0.999999999752628, 2.22428432240390E-05, 0.00000000000000 ) ); 1223 | #1234 = CARTESIAN_POINT( '', ( 0.0309135240912735, 0.0311102881282707, 0.00993623419013310 ) ); 1224 | #1235 = DIRECTION( '', ( 2.22428432259357E-05, 0.999999999667352, -1.30595482686179E-05 ) ); 1225 | #1236 = DIRECTION( '', ( -0.999999999752628, 2.22428432278325E-05, -3.53979765112870E-25 ) ); 1226 | ENDSEC; 1227 | END-ISO-10303-21; 1228 | -------------------------------------------------------------------------------- /cad-files/Kaya_Battery_Terminal_Holder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Battery_Terminal_Holder.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Electronics_Bay.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Electronics_Bay.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Motor_Bottom_Plate.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Motor_Bottom_Plate.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Motor_Top_Plate.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Motor_Top_Plate.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Nano_Base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Nano_Base.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Pusher.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Pusher.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Pusher_Mount.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Pusher_Mount.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Realsense_Bridge.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Realsense_Bridge.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Realsense_Mount.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Realsense_Mount.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Terminal_Block_Cover.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Terminal_Block_Cover.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Wheel_Hub_Inside.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Wheel_Hub_Inside.stl -------------------------------------------------------------------------------- /cad-files/Kaya_Wheel_Hub_Outside.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/Kaya_Wheel_Hub_Outside.stl -------------------------------------------------------------------------------- /cad-files/NVIDIA_Kaya_3D_Printed_Parts_List.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/cad-files/NVIDIA_Kaya_3D_Printed_Parts_List.pdf -------------------------------------------------------------------------------- /doc/assemble_kaya.md: -------------------------------------------------------------------------------- 1 | NVIDIA Kaya 2 | =========== 3 | 4 | Kaya is a robot developed as a platform to demonstrate the power and 5 | flexibility of the Isaac Robot Engine running on the NVIDIA Jetson Nano 6 | platform. It has been intentionally designed using 3D printed parts and 7 | hobbyist components to be as accessible as possible. 8 | 9 | ![image](images/kaya_robot.jpg) 10 | 11 | The Kaya Robot 12 | 13 | Kaya features a three-wheeled holonomic drive which allows it to move in 14 | any direction, regardless of where it is facing. A RealSense depth 15 | camera allows Kaya to see the world around it in 3D, enabling features 16 | like mapping, localization, and object recognition. An on-board IMU and 17 | position feedback from the wheel motors provide accurate odometry 18 | information. Power is provided via an easily-swapped and fast-charging 19 | power tool battery. Outfitting the Jetson Nano with a Wi-Fi/Bluetooth 20 | card allows you to interact with the robot using Isaac Sight over Wi-Fi, 21 | and also allows you to connect a gamepad controller via Bluetooth. 22 | 23 | Use the instructions in this section to build and operate your own Kaya 24 | robot. 25 | 26 | Parts 27 | ----- 28 | 29 | For a list of 3D printed parts, and STL/STEP/IGES files for creating the parts, 30 | see either the [`cad-files`](https://github.com/nvidia-isaac/kaya-robot/tree/master/cad-files) folder in this GitHub repository, or the [Isaac Developer 31 | Downloads](https://developer.nvidia.com/isaac/downloads) website. 32 | 33 | The following is a list of the off-the-shelf components needed for 34 | building Kaya. Prices shown are approximate and subject to change by 35 | vendors. Many of these components or suitable replacements are available 36 | from a wide variety of sources, which you are encouraged to explore. 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 262 | 263 | 264 | 265 | 266 | 267 | 268 |
PART NAMEVENDOR PART #SOURCEQTYAPPROX COST
3D Printed Parts-See 3D Printed Parts List--
NVIDIA Jetson Nano Developer Kit945-13450-0000-000NVIDIA1$99.00
MicroSD Card (32GB)SDSQUNC-032G-GN6MAAmazon - SanDisk1$8.00
Intel Dual Band Wireless-Ac 8265 W/Bt8265NGWAmazon - Intel1$25.00
Dual Band Wi-Fi Antennas & IPEX4 to RP-SMA CablesCHAOHANG 6484109Amazon1$13.00
Intel RealSense Depth Camera D435961448Intel1$179.00
Bosch GY-BMI160 6DOF IMU Board (Generic Breakout)GY-BMI160Amazon / eBay / AliExpress1$5.00
Dynamixel MX-12W Servo Motor902-0086-000Robotis3$197.70
USB2AX v3.2a or U2D2XE-USB2AX (for USB2AX v3.2a) or RO-902-0132-000 (for U2D2)Trossen Robotics USB2AX v3.2a or Trossen Robotics U2D21$39.95 (for USB2AX v3.2a) or $49.90 (for U2D2)
Dynamixel 6 Port AX/MX Power HubIL-3PHUBTrossen Robotics1$7.95
VEX 3.25" Omni-Directional Wheel217-4775VEX Robotics3$53.97
DeWALT 20V MAX 2AH Li-ion BatteryDCB203Amazon - DeWALT1$45.00
DeWALT 20V MAX Li-ion Battery ChargerDCB107Amazon - DeWALT1$34.75
5V 6A DC-DC Step-Down RegulatorD24V60F5Pololu1$19.95
12V 5A DC-DC Step-Down RegulatorEA60-12VAmazon1$9.50
2.1 x 5.5mm Male Barrel Plug PigtailB072BXB2Y8Amazon1$0.94
Rocker Switch7395K28McMaster-Carr1$6.76
Terminal Block7527K44McMaster-Carr1$2.24
Terminal Block Jumpers7527K59McMaster-Carr2$0.49
Wire End/Terminal KitHC28-6Amazon-$10.00
18AWG Electrical Wire (Red and Black)-Amazon-$5.00
Female-Female Electrical Jumper Wires-Amazon4$5.00
MakerBeam 150x10x10mm Beamsbamb150p06Amazon - MakerBeam3$5.00
MakerBeam 25 pieces T-slot nuts inc screws101619Amazon - MakerBeam-$17.00
M3 18mm threaded standoff95947A525McMaster-Carr3$3.66
M3 x 35mm Socket Head Screw91292A033McMaster-Carr3$3.54
M3 x 8mm Socket Head Screw91292A112McMaster-Carr-$4.29
M3 x 5mm Socket Head Screw91292A110McMaster-Carr-$4.72
M3 Hex Nuts90591A250McMaster-Carr-$2.21
M2 x 6mm Phillips Screw92010A003McMaster-Carr-$4.39
261 | $812.87
269 | 270 | Dynamixel U2D2 & USB2AX Interchangeability 271 | ------------------------------------------ 272 | 273 | To communicate with the Dynamixel servo motors, either the USB2AX or 274 | U2D2 serial converters may be used. (The U2D2 converter is available as 275 | [Trossen Robotics 276 | RO-902-1032-000](https://www.trossenrobotics.com/dynamixel-u2d2.aspx) 277 | for $49.90. Price is approximate and subject to change by the vendor.) 278 | 279 | You must specify the USB device name of the converter in the `usb_port` 280 | parameter of the isaac.KayaBaseDriver component API so that your 281 | application can communicate with it. For the Kaya sample applications 282 | included in Isaac SDK, this is found in 283 | `\apps\kaya\robots\kaya_v.config.json`. In the following 284 | example, the U2D2 serial converter is specified. 285 | 286 | { 287 | "kaya_driver": { 288 | "isaac.KayaBaseDriver": { 289 | "usb_port": "/dev/ttyUSB0" 290 | } 291 | } 292 | } 293 | 294 | The devices have the following USB device names. 295 | 296 | - USB2AX: ttyACM0 297 | - U2D2: ttyUSB0 298 | 299 | See the Component API section of this documentation describing 300 | isaac.KayaBaseDriver for more information. 301 | 302 | Wiring Diagram 303 | -------------- 304 | 305 | See below for a wiring diagram for the Kaya robot. You may find it 306 | useful to reference this during the assembly process. Click for a larger 307 | version. 308 | 309 | Wiring Diagram for the NVIDIA Kaya Robot 310 | 311 | Wiring Diagram for the Kaya Robot 312 | 313 | Assembly Instructions 314 | --------------------- 315 | 316 | This section describes step-by-step assembly of the Kaya robot. 317 | 318 | The underscore-delimited names that appear in parentheses in the steps 319 | below are the names of the 3D-printed parts. See "Parts" section for links 320 | to that list. 321 | 322 | **1 Assign IDs to the Dynamixel Motors** 323 | 324 | When first purchased, the Dynamixel motors are all be assigned ID “1,” 325 | and must be assigned unique IDs and properly configured before being 326 | connected together on Kaya. This procedure requires a USB serial adapter 327 | (USB2AX or U2D2), an external 12V power source (the 12V DC-DC converter 328 | on Kaya), and a PC which on which to run the RoboPlus v1 software. 329 | 330 | RoboPlus v2 does not work with MX-12W. See 331 | [](http://www.robotis.us/roboplus1/) 332 | to download the RoboPlus v1 application. 333 | 334 | You can also complete this step after the rest of Kaya is assembled. 335 | Just be aware that you should only connect one motor at a time to avoid 336 | duplicate IDs. 337 | 338 | To assign IDs to the motors: 339 | 340 | 1. Start the RoboPlus v1 application. 341 | 2. Connect the USB serial converter to the desktop. 342 | 3. Connect each Dynamixel motor to the serial adapter. 343 | 4. Connect the Dynamixel motor to external (12V) power. 344 | 5. Launch Dynamixel Wizard in the RoboPlus v1 application. 345 | 6. Open Port (top menu) to detect connected motors. 346 | 7. Click on the correct motor, assign the ID \# below and wheel mode. 347 | Click Apply. 348 | 349 | > - Left: ID 1 350 | > - Rear: ID 2 351 | > - Right: ID 3 352 | 353 | 8. Repeat step 7 for each motor, and annotate the ID placard for each 354 | motor accordingly. 355 | 356 | **2 Install Dynamixel Servo Motors (3 per Robot)** 357 | 358 | 1. Insert 4 M2 nuts from the Dynamixel MX-12W motor kits into the 359 | second slot up from the horn (servo head) on all sides. Press firmly 360 | to secure. 361 | 2. Install each motor into a motor bottom plate 362 | (Kaya\_Motor\_Bottom\_Plate) using 4 M2 screws from the Dynamixel 363 | MX-12W motor kits. 364 | 365 | ![image](images/kaya2a.jpg) 366 | 367 | **3 Assemble the Inside Wheel Hub (3 per Robot)** 368 | 369 | 1. Insert an 18mm M3 standoff into hex hole on the back side of the hub 370 | (Kaya\_Wheel\_Hub\_Inside). 371 | 2. Using 4 M2 screws from the Dynamixel MX-12W motor kits, fasten the 372 | hub (Kaya\_Wheel\_Hub\_Inside) to the horn of the Dynamixel. Tighten 373 | evenly. Be careful not to overtighten. 374 | 3. Repeat for each motor. 375 | 376 | ![image](images/kaya3.jpg) 377 | 378 | **4 Cut and Crimp Power Wiring** 379 | 380 | 1. Cut 9 sections of 18 AWG (4 black, 5 red) wire to length and strip 381 | insulation from the ends (3-5mm). 382 | 2. Attach connectors according to the table using a suitable crimping 383 | tool. Take care to ensure that all connectors are mechanically 384 | secure and make good electrical contact. 385 | 386 | Refer to the following image, table and the Wiring Diagram when 387 | cutting and crimping wiring. 388 | 389 | ![image](images/kaya4.jpg) 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 |
Wire#ColorLengthTerminal 1 ConnectorTerminal 1 ConnectionTerminal 2 ConnectorTerminal 2 Connection
1Black140 mmMale SpadeBattery B-Fork SpadeTerminal Block B-
2Red80 mmMale SpadeBattery B+Female SpadeSwitch IN
3Red140 mmFemale SpadeSwitch OUTFork SpadeTerminal Block B+
4Black120 mmFork SpadeTerminal Block B-Fork Spade12V Regulator -IN
5Red120 mmFork SpadeTerminal Block B+Fork Spade12V Regulator +IN
6Black120 mmFork SpadeTerminal Block B-Bare Wire5V Regulator -IN
7Red120 mmFork SpadeTerminal Block B+Bare Wire5V Regulator +IN
8Black120 mmFork Spade12V Regulator -OUTBare WireDynamixel Hub -IN
9Red120 mmFork Spade12V Regulator +OUTBare WireDynamixel Hub +IN
494 | 495 | **5 Connect Battery Terminals to the Battery Holder** 496 | 497 | 1. Place Battery terminal cables (wires \#1 and \#2) into slots in the 498 | battery holder (Kaya\_Battery\_Holder), paddles facing each other as 499 | depicted below. The B+ (red wire) should be seated in the slot 500 | nearest to the notch cut out of the battery holder. Push firmly on 501 | the top of the crimps to seat properly in the channels. 502 | 503 | ![image](images/kaya5.jpg) 504 | 505 | 2. Secure the cables using the terminal holder 506 | (Kaya\_Battery\_Terminal\_Holder) and an M3 x 8mm screw. Check 507 | alignment with a battery, and use pliers to adjust the paddles until 508 | they align and seat properly. To avoid creating an electrical short 509 | between the battery terminals, cover any loose wire ends with 510 | electrical tape. 511 | 512 | ![image](images/kaya5a.jpg) 513 | 514 | **6 Assemble the Frame** 515 | 516 | 1. Attach each motor top plate (Kaya\_Motor\_Top\_Plate) to MakerBeams 517 | using 4 MakerBeam nuts and 4 M3 x 5mm screws at each corner. Slide 518 | MakerBeam nuts into channels first, 2 per side, and then align with 519 | the holes before fastening with screws. 520 | 521 | ![image](images/kaya6.jpg) 522 | 523 | 2. Between two motor top plates (Kaya\_Motor\_Top\_Plate), install 524 | Kaya\_Pusher\_Mount, remembering to slide nuts into place before 525 | attaching the second motor top plate. 526 | 3. Assemble the full triangle and tighten all 12 screws evenly. The 527 | side with the pusher mount (Kaya\_Pusher\_Mount) is the front of 528 | Kaya, for the purposes of the rest of this procedure. 529 | 530 | ![image](images/kaya6a.jpg) 531 | 532 | **7 Connect the Bottom Plate Assembly to the Motor Top Plate/MakerBeam 533 | Frame** 534 | 535 | 1. Attach each motor bottom plate (Kaya\_Motor\_Bottom\_Plate) 536 | assemblies to the frame in the correct configuration. The motor 537 | assembly tagged with Dynamixel ID 2 should sit opposite to the 538 | pusher mount (Kaya\_Pusher\_Mount), with the other two motor 539 | assemblies to the adjacent sides. 540 | 2. Insert 4 M3 nuts into a motor bottom plate 541 | (Kaya\_Motor\_Bottom\_Plate), and attach to motor top plates 542 | (Kaya\_Motor\_Top\_Plate) with 4 M3 x 8mm screws. Repeat for each 543 | motor. Tighten all 12 screws evenly. 544 | 545 | ![image](images/kaya7.jpg) 546 | 547 | **8 Connect Motor Wiring** 548 | 549 | - When all of the Dynamixel MX-12W servo motors have been assigned IDs 550 | (see step 1) and have been installed in the proper locations, 551 | connect them for power and data transmission using the cables from 552 | the Dynamixel MX-12W motor kits. 553 | 554 | All servo motors share common power and data lines, and communicate 555 | using data packets addressed by motor ID. For this reason, they may 556 | be connected in any order, or even wired individually to the 557 | Dynamixel Power Hub. For cable management purposes the best 558 | connection order is 1 - 3 - 2. 559 | 560 | ![image](images/kaya8.jpg) 561 | 562 | **9 Mount the IMU** 563 | 564 | 1. Solder male header pins to the IMU board. Arrange them with long 565 | ends on the labelled side of the board. Pins for 3V3, GND, SCL, and 566 | SDA will be used for I2C communication. 567 | 2. Mount the IMU board with header pins facing towards the center of 568 | the electronics bay (Kaya\_Electronics\_Bay) using 2 M2 x 6mm 569 | screws, as shown. 570 | 571 | > ![image](images/kaya9.jpg) 572 | 573 | **10 Mount DC Regulators** 574 | 575 | 1. Solder the blue screw terminals to the Pololu 5V 6A DC-DC Step-Down 576 | Regulator. 577 | 2. Fasten the 5V regulator and 12V regulator to the electronics bay 578 | (Kaya\_Electronics\_Bay) with 6 M2 x 6mm screws. Ensure the 579 | orientation of these regulators matches the image, with IN+/- on the 580 | 5V regulator on the same side as IN+/- on the 12V regulator. 581 | 582 | ![image](images/kaya10.jpg) 583 | 584 | **11 Connect IMU Wiring** 585 | 586 | 1. Attach female-to-female electrical jumper wires to IMU leads (3V3, 587 | GND, SCL, and SDA). Make note of what color wires are attached to 588 | each pin, these will later be connected to the Jetson Nano GPIO 589 | pins. 590 | 2. Optionally, use a dab of hot glue on the middle side of the headers 591 | to hold to the IMU pin headers firmly in place. 592 | 593 | ![image](images/kaya11.jpg) 594 | 595 | See [Wire the BMI160 IMU to the Jetson Nano or Xavier](wire_bmi160_imu.md) for more information. 596 | 597 | **12 Install Wi-Fi Antennas** 598 | 599 | 1. Connect the antenna cables to the Wi-Fi antennas using the SMA screw 600 | terminal. 601 | 2. Bend antennas to 90 degrees, and fit them in the designated channels 602 | on either side of the base (Kaya\_Nano\_Base). 603 | 3. Fasten antennas in place using zip-ties, as shown. 604 | 605 | ![image](images/kaya12.jpg) 606 | 607 | **13 Attach the Jetson Nano Base to the Frame** 608 | 609 | 1. Orient the Jetson Nano Base (Kaya\_Nano\_Base) so that the NVIDIA 610 | logo faces the Kaya pusher mount (Kaya\_Pusher\_Mount). 611 | 2. Slide 1 MakerBeam nut onto the top of the front MakerBeam, and 2 612 | onto the other two MakerBeams. Fasten the front screw first, then 613 | position the other 4 down to side beams. Tighten all screws evenly. 614 | 615 | ![image](images/kaya13.jpg) 616 | 617 | **14 Connect the Battery Chassis Assembly to the New Frame Assembly** 618 | 619 | 1. Stack the electronics bay (Kaya\_Electronics\_Bay) on top of the 620 | battery holder (Kaya\_Battery\_Holder) with the flat faces together, 621 | DC regulators face-up. 622 | 2. Bring the top of the electronics bay (Kaya\_Electronics\_Bay) into 623 | contact with the bottom of the base (Kaya\_Nano\_Base), so that it 624 | sits in the center of the frame assembly, between the motors. 625 | 3. Ensure that no cables are being pinched. Check that the front 626 | dynamixel cables are not on top of the 12V power supply. Then attach 627 | using 4 M3 x 35mm screws down through the base (Kaya\_Nano\_Base) 628 | and into 4 M3 nuts in the battery holder (Kaya\_Battery\_Holder). 629 | 630 | ![image](images/kaya14.jpg) 631 | 632 | **15 Prepare the Terminal Block** 633 | 634 | - Using terminal block jumpers, join the two leftmost terminal block 635 | connections together, then the two rightmost connections. This 636 | allows battery B+ and B- to be routed to the 12V and 5V DC 637 | regulators. 638 | 639 | Reference the Wiring Diagram when making electrical connections as 640 | outlined in the following steps. 641 | 642 | ![image](images/kaya15.jpg) 643 | 644 | **16 Install the Power Switch** 645 | 646 | 1. Locate the B+ wire (\#2, Red) from the battery holder, and feed it 647 | through the switch hole at the rear of of the base 648 | (Kaya\_Nano\_Base). Connect the female spade connector to the middle 649 | switch terminal. 650 | 2. Attach a second wire (\#3, Red, female spade to fork spade) to the 651 | outer switch terminal. 652 | 3. Orient the switch so that the two terminals are closest to the 653 | inside of Kaya. Slightly bend the connected terminal wires to face 654 | the outside of Kaya as in the image. This helps them to clear the 655 | battery holder (Kaya\_Battery\_Holder) once installed. 656 | 4. Feed the unattached fork spade connector through the switch hole and 657 | toward the rear of Kaya. 658 | 5. Being careful to avoid pinched wires, snap the switch down into 659 | place. 660 | 661 | ![image](images/kaya16.jpg) 662 | 663 | **17 Connect Regulator Inputs** 664 | 665 | 1. Pull the B- wire (\#1, Black) from the battery and the B+ wire from 666 | the switch (\#3, Red) to the rear of Kaya. Connect the fork spade 667 | connectors of these wires to the terminal block, referencing the 668 | Wiring Diagram. These wires should route neatly between the 669 | MakerBeams below the terminal block. 670 | 671 | image 672 | 673 | 2. Connect wires \#4 through \#7 to the terminal block using fork spade 674 | connectors. Reference photos and the Wiring Diagram for cable 675 | order. Bend the forks downward after they are connected onto the 676 | terminal block for a better fit. 677 | 678 | image 679 | 680 | 3. Tuck the other cables underneath the base (Kaya\_Nano\_Base) and 681 | into the electronics bay (Kaya\_Electronics\_Bay). Connect cables 682 | \#4 and \#5 to the 12V regulator IN+/-, and cables \#6 and \#7 to 683 | the 5V regulator IN+/-. Note that the connections on the 12V 684 | regulator are ordered +IN, -IN, -OUT, +OUT, as indicated in the 685 | Wiring Diagram. 686 | 687 | **18 Connect Regulator Outputs** 688 | 689 | 1. Attach a 2.1 x 5.5mm male barrel plug pigtail to the 5V regulator 690 | out screw terminals. Note that the Brown wire is +, and the Blue 691 | wire is -. (Center positive polarity.) 692 | 2. Connect the fork spade connectors of cables \#8 and \#9 to the 12V 693 | regulator OUT- and OUT+. Connect bare wire ends to the Dynamixel 694 | Power Hub screw terminals, routing the cables either back through or 695 | around the base (Kaya\_Nano\_Base). 696 | 697 | ![image](images/kaya18.jpg) 698 | 699 | **19 Mount the Terminal Block** 700 | 701 | 1. Mount the terminal block to the frame with 3 MakerBeam nuts and 2 M3 702 | x 8mm screws. Slide one extra nut ahead of right side of terminal 703 | block for later use with the terminal block cover 704 | (Kaya\_Terminal\_Block\_Cover). 705 | 2. Position the Terminal Block as far back as possible by using only 706 | the front set of mounting holes. 707 | 708 | ![image](images/kaya19.jpg) 709 | 710 | **20 Mount the Dynamixel Power Hub** 711 | 712 | 1. Connect the loose Dynamixel cable from servo motor ID3 to any port 713 | on the Dynamixel Power Hub. 714 | 2. Use another Dynamixel cable to connect the USB2AX to the Dynamixel 715 | Power Hub. Mount the Dynamixel Power Hub to the base 716 | (Kaya\_Nano\_Base) with 2 M2x6 screws, as shown below. 717 | 718 | ![image](images/kaya20.jpg) 719 | 720 | **21 Connect the Wi-Fi Card** 721 | 722 | - Connect the small antenna cable connectors (U.FL / AMC / UMCC / IPX) 723 | to the Wi-Fi card. These should snap into place with vertical 724 | pressure, but can be difficult to work with. It may be helpful to 725 | lay the card on a flat surface for best leverage. Take care not to 726 | damage the connectors on the card, and avoid disconnecting and 727 | reconnecting if possible. 728 | 729 | > ![image](images/kaya21.jpg) 730 | 731 | **22 Install the Wi-Fi Card** 732 | 733 | 1. Remove the Jetson Nano module from the carrier board by first 734 | removing 2 Phillips screws, then the 2 side latches. 735 | 2. Connect the Wi-Fi card and secure with the included screw. 736 | 737 | > ![image](images/kaya22a.jpg) 738 | 739 | 1. Reattach and secure the Jetson Nano module the carrier board. 740 | 741 | **23 Mount the Jetson Nano** 742 | 743 | 1. Mount the Jetson Nano Developer Kit to Kaya\_Nano\_Base using 4 M2 x 744 | 6mm screws, as shown in the image below. For cable management, it 745 | may be helpful to coil the antenna cables beneath the Jetson Nano. 746 | 2. Add a jumper across the header pins labeled “ADD JMPR TO DISABLE USB 747 | PWR” on the carrier board to allow the Jetson Nano to be powered via 748 | the 5V barrel jack connection. 749 | 750 | > ![image](images/kaya23.jpg) 751 | 752 | **24 Mount RealSense Camera** 753 | 754 | 1. Attach the RealSense camera to Kaya\_Realsense\_Mount with 2 M3 x 755 | 5mm screws. 756 | 2. Use 3 M3 x 8mm screws and 3 M3 nuts to attach the camera mount 757 | (Kaya\_Realsense\_Mount) to the camera bridge 758 | (Kaya\_Realsense\_Bridge). 759 | 3. Connect the USB-C cable to the RealSense camera. 760 | 761 | ![image](images/kaya24a.jpg) 762 | 763 | ![image](images/kaya24b.jpg) 764 | 765 | **25 Attach the RealSense Bridge to the Jetson Nano Base** 766 | 767 | - Use 4 M3 x 8mm and 4 M3 nuts to attach the camera bridge 768 | (Kaya\_Realsense\_Bridge) to the base (Kaya\_Nano\_Base). 769 | 770 | > ![image](images/kaya25.jpg) 771 | 772 | **26 Mount the Wheels** 773 | 774 | - Attach each Omniwheel using 1 M3 x 35mm screw through the outside 775 | wheel hub (Kaya\_Wheel\_Hub\_Outside), the wheel itself, and then 776 | into the inside hub (Kaya\_Wheel\_Hub\_Inside). Take care not to 777 | overtighten. 778 | 779 | Threadlocker may be used to prevent loosening of these fasteners. 780 | 781 | > ![image](images/kaya26.jpg) 782 | 783 | **27 Attach the Terminal Block Cover** 784 | 785 | - Using the extra MakerBeam nut from step 19, attach the terminal 786 | block cover (Kaya\_Terminal\_Block\_Cover) using a M3 x 5mm screw. 787 | 788 | > ![image](images/kaya27.jpg) 789 | 790 | **28 Connect Cables to Jetson Nano** 791 | 792 | 1. Connect the RealSense camera and USB2AX to the top 2 USB connectors 793 | on the Nano. 794 | 2. Ensure the power switch is **not** set to “ON”. 795 | 3. Route the barrel plug cable from the 5V regulator behind the 796 | terminal block cover (Kaya\_Terminal\_Block\_Cover) and plug into 797 | the barrel jack input of Jetson Nano. 798 | 799 | **Never connect the 5V barrel plug cable to the barrel jack input of 800 | the Dynamixel Power Hub.** This may cause irreversible damage to the 801 | voltage regulators. 802 | 803 | 4. Connect the jumper wires from the IMU to the Jetson Nano GPIO pins, 804 | referencing the Wiring Diagram and your earlier notes on wire 805 | colors. 806 | 807 | ![image](images/kaya28.jpg) 808 | 809 | **29 Clean Up Cables and Power On** 810 | 811 | 1. Tuck the front Dynamixel cables up in front of 12V regulator and 812 | MakerBeam. 813 | 2. Zip-tie other Dynamixel and power supply cables as desired. 814 | 3. Install Battery and ensure it snaps into place. If there is 815 | resistance, check for cables and any remaining 3D printed support 816 | material, then ensure your terminals are not bent. 817 | 4. Install the pusher (Kaya\_Pusher) by sliding it down into the pusher 818 | mount (Kaya\_Pusher\_Mount). 819 | 820 | Congratulations, you have fully assembled a Kaya robot! Have fun 821 | tinkering with your new creation and the Isaac Robot Engine! 822 | 823 | ![image](images/kaya29.jpg) 824 | 825 | Notes on Power-Hungry Applications 826 | ---------------------------------- 827 | 828 | You may encounter issues when running more demanding applications on 829 | Jetson Nano, especially when running in “MAX-N” mode. 830 | 831 | Be careful that 3D printed PLA plastic parts do not come into contact 832 | with the heatsink if there are concerns with Jetson Nano overheating. 833 | Kaya is not equipped with a fan to aid with cooling. The Jetson Nano 834 | Developer Kit provides a 4-pin connector to accommodate 5V PWM fans. 835 | However, adding a fan to Kaya requires removal or custom modification of 836 | several 3D printed parts. 837 | 838 | Raising the nominal output voltage of the 5V regulator can help 839 | safeguard against the effects of transient voltage dips. This can be 840 | accomplished by soldering a thru-hole resistor between the FB and GND 841 | pins on the Pololu 5V regulator board. A resistor value of 82.5 kOhm 842 | increases the nominal output voltage to 5.143V. 843 | 844 | > ![image](images/kaya_opt_a.jpg) 845 | 846 | The following image shows the resistor correctly installed. 847 | 848 | > ![image](images/kaya_opt_b.jpg) 849 | 850 | A capacitor (100-1000 uF) may also be placed across the regulator output 851 | terminals to further safeguard against transient voltage fluctuations. 852 | For more information, please reference the datasheet for the Microchip 853 | MIC2101. 854 | 855 | Running Isaac SDK on Kaya 856 | ------------------------- 857 | 858 | Once you have assembled your Kaya, use the procedures in 859 | [How to Get Started with Jetson Nano](nano.md) get started with Isaac on the Jetson Nano, and deploy 860 | and run a couple of sample applications. 861 | 862 | The Joystick Application 863 | ------------------------ 864 | 865 | The following steps deploy a simple joystick application that can be 866 | used to control the Kaya robot. 867 | 868 | 1. On the desktop system where the Isaac SDK is installed, enter the 869 | following command: 870 | 871 | ./engine/build/deploy.sh -d jetpack42 -h -p //apps/kaya:joystick-pkg 872 | 873 | 2. Change to the directory on your Nano and run the application with 874 | the following commands: 875 | 876 | cd deploy//joystick-pkg/ 877 | ./apps/kaya/joystick 878 | 879 | The Follow Me Application 880 | ------------------------- 881 | 882 | The following steps deploy an application to have the Kaya robot 883 | autonomously move towards a designated AprilTag fiducial. This 884 | application combines AprilTag detection, path planning, control, and the 885 | Kaya driver. It requires a working RealSense camera for AprilTag 886 | detection and path planning, and a joystick to enable autonomous mode. 887 | 888 | 1. On the desktop system where the Isaac SDK is installed, enter the 889 | following command: 890 | 891 | ./engine/build/deploy.sh -d jetpack42 -h -p //apps/kaya:follow_me-pkg 892 | 893 | Where <nano\_ip> is the IP address of the Jetson Nano on the 894 | robot. 895 | 896 | 2. Change to the directory on your Nano and run the application with 897 | the following commands: 898 | 899 | cd deploy//follow_me-pkg/ 900 | ./apps/kaya/follow_me 901 | 902 | 3. Open Isaac Sight on the desktop browser at <nano\_ip>:3000. In 903 | the Application Configuration panel on the right, click on 904 | fiducial\_as\_goal, and change the target\_fiducial\_id (default is 905 | "tag36h11\_9") to the id of the AprilTag in use. 906 | 907 | If you put the AprilTag within the RealSense camera's field of view, 908 | you should see in the Follower Kaya - Camera window that the april 909 | tag is detected, and a planned path shown in a blue line from the 910 | Kaya robot to the april tag. 911 | 912 | 4. If you hold down the R1 button on the joystick, the Kaya robot 913 | enters autonomous mode, and moves towards the april tag. Move the 914 | april tag around while keeping it within the camera's view, and Kaya 915 | follows it around. 916 | 917 | The Object Detection Application 918 | -------------------------------- 919 | 920 | This application uses YOLO (tiny-yolov3) on Kaya to perform object 921 | detection. The YOLO model is trained to recognize a few common objects 922 | in these three classes for trash classification: compost (apple, 923 | banana), metal (soda can), paper (paper box and small cardboard box). 924 | Here are the steps for running this application. 925 | 926 | 1. On the desktop system where the Isaac SDK is installed, enter the 927 | following command: 928 | 929 | ./engine/build/deploy.sh -d jetpack42 -h -p //apps/kaya:object_detection-pkg 930 | 931 | 2. Change to the directory on your Nano and run the application with 932 | the following commands: 933 | 934 | cd deploy//object_detection-pkg/ 935 | ./apps/kaya/object_detection_kaya 936 | 937 | Open Isaac Sight on the desktop browser at <nano\_ip>:3000. 938 | You should be able to see the live camera image. 939 | 940 | 3. Place an apple or a soda can in front of Kaya's camera, and you 941 | should see a bounding box around the object labeled as compost or 942 | metal, respectively. 943 | 944 | The Mapping Application 945 | ----------------------- 946 | 947 | The gmapping application demonstrates use of the Kaya robot to build an 948 | occupancy map of its environment. Kaya uses the Intel RealSense camera 949 | to perceive depth of obstacles, and wheel odometry and IMU to update its 950 | own state. Obstacle depth and robot state information are published to 951 | the host to build up a map. 952 | 953 | This application has two parts: gmapping\_distributed\_kaya that runs on 954 | the Kaya robot, and gmapping\_distributed\_host that runs on the host 955 | machine. 956 | 957 | 1. On the desktop system where the Isaac SDK is installed, enter the 958 | following command: 959 | 960 | ./engine/build/deploy.sh -d jetpack42 -h -p //apps/kaya:gmapping_distributed_kaya-pkg 961 | 962 | 2. Change to the directory on your Nano and run the application with 963 | the following commands: 964 | 965 | cd deploy//gmapping_distributed_kaya-pkg/ 966 | ./apps/kaya/gmapping_distributed_kaya 967 | 968 | Open Isaac Sight on the desktop browser at <nano\_ip>:3000. 969 | You should be able to see the camera RGB and depth image, as well as 970 | plot of the robot state. 971 | 972 | 3. Use the joystick to drive Kaya around and you should see the robot 973 | state being updated. 974 | 4. On the desktop system, open 975 | app/kaya/gmapping\_distributed\_host.app.json and change the 976 | tcp-subscriber host from "YOUR\_NANO\_IP\_HERE" to the IP address of 977 | the Jetson Nano on the robot (<nano\_ip>). 978 | 5. Build and run the host application with the following commands: 979 | 980 | bazel build //apps/kaya:gmapping_distributed_host 981 | bazel run //apps/kaya:gmapping_distributed_host 982 | 983 | 6. Open Isaac Sight on the desktop at localhost:3000. You should be 984 | able to see the map Kaya is building. Use the joystick to drive Kaya 985 | around and observe the map updates. 986 | 987 | If you see performance issues with the map update, go to the Kaya 988 | page of Isaac Sight webpage and disable camera RGB and depth 989 | visualization (uncheck Channels - viewer). 990 | 991 | IMU and Motor Permissions 992 | ------------------------- 993 | 994 | Kaya uses an IMU that connects using I2C protocol and motors that are 995 | connected through USB. Therefore the following commands need to be 996 | executed on Nano once. Please start a new terminal after running these 997 | commands. 998 | 999 | sudo adduser $USER dialout 1000 | sudo adduser $USER i2c 1001 | 1002 | For more information on the IMU, see the [Wire the BMI160 IMU to the Jetson Nano or Xavier](wire_bmi160_imu.md) section of this 1003 | document. 1004 | -------------------------------------------------------------------------------- /doc/images/kaya10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya10.jpg -------------------------------------------------------------------------------- /doc/images/kaya11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya11.jpg -------------------------------------------------------------------------------- /doc/images/kaya12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya12.jpg -------------------------------------------------------------------------------- /doc/images/kaya13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya13.jpg -------------------------------------------------------------------------------- /doc/images/kaya14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya14.jpg -------------------------------------------------------------------------------- /doc/images/kaya15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya15.jpg -------------------------------------------------------------------------------- /doc/images/kaya16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya16.jpg -------------------------------------------------------------------------------- /doc/images/kaya17a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya17a.jpg -------------------------------------------------------------------------------- /doc/images/kaya17b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya17b.jpg -------------------------------------------------------------------------------- /doc/images/kaya18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya18.jpg -------------------------------------------------------------------------------- /doc/images/kaya19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya19.jpg -------------------------------------------------------------------------------- /doc/images/kaya2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya2.jpg -------------------------------------------------------------------------------- /doc/images/kaya20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya20.jpg -------------------------------------------------------------------------------- /doc/images/kaya21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya21.jpg -------------------------------------------------------------------------------- /doc/images/kaya22a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya22a.jpg -------------------------------------------------------------------------------- /doc/images/kaya23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya23.jpg -------------------------------------------------------------------------------- /doc/images/kaya24a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya24a.jpg -------------------------------------------------------------------------------- /doc/images/kaya24b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya24b.jpg -------------------------------------------------------------------------------- /doc/images/kaya25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya25.jpg -------------------------------------------------------------------------------- /doc/images/kaya26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya26.jpg -------------------------------------------------------------------------------- /doc/images/kaya27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya27.jpg -------------------------------------------------------------------------------- /doc/images/kaya28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya28.jpg -------------------------------------------------------------------------------- /doc/images/kaya29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya29.jpg -------------------------------------------------------------------------------- /doc/images/kaya2a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya2a.jpg -------------------------------------------------------------------------------- /doc/images/kaya3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya3.jpg -------------------------------------------------------------------------------- /doc/images/kaya4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya4.jpg -------------------------------------------------------------------------------- /doc/images/kaya5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya5.jpg -------------------------------------------------------------------------------- /doc/images/kaya5a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya5a.jpg -------------------------------------------------------------------------------- /doc/images/kaya6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya6.jpg -------------------------------------------------------------------------------- /doc/images/kaya6a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya6a.jpg -------------------------------------------------------------------------------- /doc/images/kaya6b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya6b.jpg -------------------------------------------------------------------------------- /doc/images/kaya7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya7.jpg -------------------------------------------------------------------------------- /doc/images/kaya8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya8.jpg -------------------------------------------------------------------------------- /doc/images/kaya9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya9.jpg -------------------------------------------------------------------------------- /doc/images/kaya_opt_a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya_opt_a.jpg -------------------------------------------------------------------------------- /doc/images/kaya_opt_b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya_opt_b.jpg -------------------------------------------------------------------------------- /doc/images/kaya_robot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya_robot.jpg -------------------------------------------------------------------------------- /doc/images/kaya_wiring_diagram_v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/kaya_wiring_diagram_v1.png -------------------------------------------------------------------------------- /doc/images/nano-wifi-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/nano-wifi-1.jpg -------------------------------------------------------------------------------- /doc/images/nano-wifi-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/nano-wifi-2.jpg -------------------------------------------------------------------------------- /doc/images/nano-wifi-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/nano-wifi-3.jpg -------------------------------------------------------------------------------- /doc/images/nano-wifi-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/nano-wifi-4.jpg -------------------------------------------------------------------------------- /doc/images/nano-wifi-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/nano-wifi-5.jpg -------------------------------------------------------------------------------- /doc/images/nano_example1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/nano_example1.jpg -------------------------------------------------------------------------------- /doc/images/nano_example2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/nano_example2.jpg -------------------------------------------------------------------------------- /doc/images/nano_example3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/nano_example3.jpg -------------------------------------------------------------------------------- /doc/images/xavier_example.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nvidia-isaac/kaya-robot/dc2e240e67ff81b9477cddec0ff16b6ed158e52c/doc/images/xavier_example.jpg -------------------------------------------------------------------------------- /doc/nano.md: -------------------------------------------------------------------------------- 1 | How to Get Started With Jetson Nano 2 | =================================== 3 | 4 | This section describes how to flash, install wireless connectivity, and 5 | run Isaac SDK sample applications on the Jetson Nano device. To get 6 | started with Nano in general, from the very beginning, see [Getting 7 | Started with Jetson Nano Developer 8 | Kit](https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit). 9 | 10 | How to Flash Jetson Nano 11 | ------------------------ 12 | 13 | Nano can be flashed in two ways: 14 | 15 | - Via an SD Card: See the procedures in [Getting Started with Jetson 16 | Nano Developer 17 | Kit](https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit). 18 | - Via SDK Manager: See the procedures in [SDK Manager User 19 | Guide](https://docs.nvidia.com/sdk-manager) 20 | 21 | Use those documents to determine the best method for your use case. 22 | 23 | Connecting a Wi-Fi/Bluetooth Card 24 | --------------------------------- 25 | 26 | The Intel 8265 is used for Wi-Fi and Bluetooth connectivity. Use the 27 | following steps to install a Wi-Fi/Bluetooth card for Jetson Nano. 28 | 29 | 1. To access the M.2 slot on the carrier board, remove the two screws 30 | on the side and open the SODIMM latches using both your hands. 31 | 32 | ![image](images/nano-wifi-1.jpg) 33 | 34 | 2. When the Jetson Nano module pops up, slide it out gently. 35 | 36 | ![image](images/nano-wifi-2.jpg) 37 | 38 | 3. Take out the Intel wireless card, attach antenna on its U.FL sockets 39 | before inserting the card to the M.2 socket. Attaching the antena on 40 | the sockets requires a patience and getting used to. Use your nail 41 | to gently apply a force. You don't need that much force to clamp 42 | that in once you are in the right position. 43 | 44 | ![image](images/nano-wifi-3.jpg) 45 | 46 | 4. Slide the Intel 8265 card into the socket. 47 | 48 | ![image](images/nano-wifi-3.jpg) 49 | 50 | 5. Fix the Intel 8265 card in place with a screw, and replace the 51 | Jeston Nano module. Make sure to use the correct screws in each 52 | case. 53 | 54 | ![image](images/nano-wifi-4.jpg) 55 | 56 | Getting the IP Address 57 | ---------------------- 58 | 59 | Obtain the IP address of Jetson Nano with the following steps: 60 | 61 | 1. If necessary, connect a keyboard, mouse, and display, and boot the 62 | device as shown in the [Setup and First 63 | Boot](https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#setup) 64 | section of Getting Started with Jetson Nano Developer Kit. 65 | 2. At a terminal prompt, enter the following command: 66 | 67 | bob@jetson:~/$ ip addr show 68 | 69 | Sample Applications to Run on Jetson Nano 70 | ----------------------------------------- 71 | 72 | This section describes the steps to run two sample applications on 73 | Jetson Nano. The first does not require any peripherals. The second one 74 | is a more useful application that requires a camera to be connected. 75 | 76 | Other applications can be also deployed and run using the methods 77 | described here. 78 | 79 | ### Ping 80 | 81 | 1. On the host system where the Isaac SDK is installed, start by typing 82 | the following on your host machine with Isaac SDK. 83 | 84 | > bob@desktop:~/isaac$ /engine/build/deploy.sh -d jetpack42 -h -p //apps/tutorials/ping:ping-pkg 85 | > 86 | > You might need to use the --remote\_user USER flag if the user name on 87 | > the robot is not nvidia. 88 | 89 | 1. Change to the directory on your Jetson Nano and run the application 90 | with the following commands: 91 | 92 | > bob@jetson:~/$ cd deploy/bob/ping-pkg/ 93 | > bob@jetson:~/deploy/bob/ping-pkg$ ./apps/tutorials/ping/ping 94 | 95 | Where "bob" is your username on the host system. You should see "Hello 96 | World!" being printed every 1.5 seconds. 97 | 98 | ### OpenCV Edge Detection 99 | 100 | 1. For this sample, connect a camera to one of the USB ports on the 101 | Jetson Nano. 102 | 2. On the host system where the Isaac SDK is installed, type the 103 | following command: 104 | 105 | > bob@jetson:~/isaac$ ./engine/build/deploy.sh -d jetpack42 -h -p //apps/tutorials/opencv_edge_detection:opencv_edge_detection-pkg 106 | > 107 | > You might need to use the --remote\_user USER flag if the user name on 108 | > the robot is not nvidia. 109 | 110 | 1. Change to the directory on your Jetson Nano and run the application 111 | with the following commands: 112 | 113 | > bob@jetson:~/$ cd deploy/bob/opencv_edge_detection-pkg/ 114 | > bob@jetson:~/deploy/bob/opencv_edge_detection-pkg/$ ./apps/tutorials/opencv_edge_detection/opencv_edge_detection 115 | 116 | 1. To view the results, load http://<nano\_ip>:3000/ in your 117 | browser. Make sure that the application is running when you are 118 | loading the webpage. 119 | 120 | -------------------------------------------------------------------------------- /doc/wire_bmi160_imu.md: -------------------------------------------------------------------------------- 1 | Wire the BMI160 IMU to the Jetson Nano or Xavier 2 | ================================================ 3 | 4 | The Bosch Sensortec BMI160 Inertial Measurement Unit attaches to the 5 | Jetson board via the 40 pin GPIO Expansion Header. The IMU sample app is 6 | configured to look for the BMI160 on I2C bus 1. Here are instructions on 7 | how to wire the IMU to I2C bus 1. 8 | 9 | Jetson Nano 10 | ----------- 11 | 12 | From the BMI160 to the Jetson Nano 40 pin connector attach VIN to GPIO 13 | 1, GND to GPIO 6, SCL to GPIO 5, and SDA to GPIO 3. 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 |
BMI160GPIO
VIN
30 |

1

31 |
GND
36 |

6

37 |
SCL
42 |

5

43 |
SDA
48 |

3

49 |
53 | 54 | It is a little hard to see the wiring in these photos since the Nano is 55 | attached to a robot, so multiple photos are included. 56 | 57 | ![image](images/nano_example1.jpg) 58 | 59 | ![image](images/nano_example2.jpg) 60 | 61 | ![image](images/nano_example3.jpg) 62 | 63 | Wiring: 64 | 65 | Green wire: VIN => GPIO 1 66 | Red wire: SDA => GPIO 3 67 | Orange wire: SCL => GPIO 5 68 | Yellow wire: GND => GPIO 6 69 | 70 | Jetson Xavier 71 | ------------- 72 | 73 | From the BMI160 to the Jetson Xavier 40 pin connector attach VIN to GPIO 74 | 17, GND to GPIO 25, SCL to GPIO 28, and SDA to GPIO 27. 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 93 | 94 | 95 | 96 | 99 | 100 | 101 | 102 | 105 | 106 | 107 | 108 | 111 | 112 | 113 |
BMI160GPIO
VIN
91 |

17

92 |
GND
97 |

25

98 |
SCL
103 |

28

104 |
SDA
109 |

27

110 |
114 | 115 | ![image](images/xavier_example.jpg) 116 | 117 | Wiring: 118 | 119 | Green wire: VIN => GPIO 17 120 | Yellow wire: GND => GPIO 25 121 | Red wire: SDA => GPIO 27 122 | Orange wire: SCL => GPIO 28 123 | 124 | User Permissions 125 | ---------------- 126 | 127 | On the Jetson, `/dev/i2c-*` is owned by the user `root`, and are in the 128 | group `i2c`. The sample app will need to run as either root, or by a 129 | user in the i2c group. 130 | 131 | To add the current user to the i2c group, use the following command: 132 | 133 | sudo usermod -a -G i2c $USER 134 | --------------------------------------------------------------------------------