├── 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 | 
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 | 
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 |
47 |
48 |
49 |
50 | 3D Printed Parts |
51 | - |
52 | See 3D Printed Parts List |
53 | - |
54 | - |
55 |
56 |
57 | NVIDIA Jetson Nano Developer Kit |
58 | 945-13450-0000-000 |
59 | NVIDIA |
60 | 1 |
61 | $99.00 |
62 |
63 |
64 | MicroSD Card (32GB) |
65 | SDSQUNC-032G-GN6MA |
66 | Amazon - SanDisk |
67 | 1 |
68 | $8.00 |
69 |
70 |
71 | Intel Dual Band Wireless-Ac 8265 W/Bt |
72 | 8265NGW |
73 | Amazon - Intel |
74 | 1 |
75 | $25.00 |
76 |
77 |
78 | Dual Band Wi-Fi Antennas & IPEX4 to RP-SMA Cables |
79 | CHAOHANG 6484109 |
80 | Amazon |
81 | 1 |
82 | $13.00 |
83 |
84 |
85 | Intel RealSense Depth Camera D435 |
86 | 961448 |
87 | Intel |
88 | 1 |
89 | $179.00 |
90 |
91 |
92 | Bosch GY-BMI160 6DOF IMU Board (Generic Breakout) |
93 | GY-BMI160 |
94 | Amazon / eBay / AliExpress |
95 | 1 |
96 | $5.00 |
97 |
98 |
99 | Dynamixel MX-12W Servo Motor |
100 | 902-0086-000 |
101 | Robotis |
102 | 3 |
103 | $197.70 |
104 |
105 |
106 | USB2AX v3.2a or U2D2 |
107 | XE-USB2AX (for USB2AX v3.2a) or RO-902-0132-000 (for U2D2) |
108 | Trossen Robotics USB2AX v3.2a or Trossen Robotics U2D2 |
109 | 1 |
110 | $39.95 (for USB2AX v3.2a) or $49.90 (for U2D2) |
111 |
112 |
113 | Dynamixel 6 Port AX/MX Power Hub |
114 | IL-3PHUB |
115 | Trossen Robotics |
116 | 1 |
117 | $7.95 |
118 |
119 |
120 | VEX 3.25" Omni-Directional Wheel |
121 | 217-4775 |
122 | VEX Robotics |
123 | 3 |
124 | $53.97 |
125 |
126 |
127 | DeWALT 20V MAX 2AH Li-ion Battery |
128 | DCB203 |
129 | Amazon - DeWALT |
130 | 1 |
131 | $45.00 |
132 |
133 |
134 | DeWALT 20V MAX Li-ion Battery Charger |
135 | DCB107 |
136 | Amazon - DeWALT |
137 | 1 |
138 | $34.75 |
139 |
140 |
141 | 5V 6A DC-DC Step-Down Regulator |
142 | D24V60F5 |
143 | Pololu |
144 | 1 |
145 | $19.95 |
146 |
147 |
148 | 12V 5A DC-DC Step-Down Regulator |
149 | EA60-12V |
150 | Amazon |
151 | 1 |
152 | $9.50 |
153 |
154 |
155 | 2.1 x 5.5mm Male Barrel Plug Pigtail |
156 | B072BXB2Y8 |
157 | Amazon |
158 | 1 |
159 | $0.94 |
160 |
161 |
162 | Rocker Switch |
163 | 7395K28 |
164 | McMaster-Carr |
165 | 1 |
166 | $6.76 |
167 |
168 |
169 | Terminal Block |
170 | 7527K44 |
171 | McMaster-Carr |
172 | 1 |
173 | $2.24 |
174 |
175 |
176 | Terminal Block Jumpers |
177 | 7527K59 |
178 | McMaster-Carr |
179 | 2 |
180 | $0.49 |
181 |
182 |
183 | Wire End/Terminal Kit |
184 | HC28-6 |
185 | Amazon |
186 | - |
187 | $10.00 |
188 |
189 |
190 | 18AWG Electrical Wire (Red and Black) |
191 | - |
192 | Amazon |
193 | - |
194 | $5.00 |
195 |
196 |
197 | Female-Female Electrical Jumper Wires |
198 | - |
199 | Amazon |
200 | 4 |
201 | $5.00 |
202 |
203 |
204 | MakerBeam 150x10x10mm Beams |
205 | bamb150p06 |
206 | Amazon - MakerBeam |
207 | 3 |
208 | $5.00 |
209 |
210 |
211 | MakerBeam 25 pieces T-slot nuts inc screws |
212 | 101619 |
213 | Amazon - MakerBeam |
214 | - |
215 | $17.00 |
216 |
217 |
218 | M3 18mm threaded standoff |
219 | 95947A525 |
220 | McMaster-Carr |
221 | 3 |
222 | $3.66 |
223 |
224 |
225 | M3 x 35mm Socket Head Screw |
226 | 91292A033 |
227 | McMaster-Carr |
228 | 3 |
229 | $3.54 |
230 |
231 |
232 | M3 x 8mm Socket Head Screw |
233 | 91292A112 |
234 | McMaster-Carr |
235 | - |
236 | $4.29 |
237 |
238 |
239 | M3 x 5mm Socket Head Screw |
240 | 91292A110 |
241 | McMaster-Carr |
242 | - |
243 | $4.72 |
244 |
245 |
246 | M3 Hex Nuts |
247 | 90591A250 |
248 | McMaster-Carr |
249 | - |
250 | $2.21 |
251 |
252 |
253 | M2 x 6mm Phillips Screw |
254 | 92010A003 |
255 | McMaster-Carr |
256 | - |
257 | $4.39 |
258 |
259 |
260 |
261 | |
262 | |
263 | |
264 | |
265 | $812.87 |
266 |
267 |
268 |
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 |
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 | 
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 | 
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 | 
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 | Wire# |
404 | Color |
405 | Length |
406 | Terminal 1 Connector |
407 | Terminal 1 Connection |
408 | Terminal 2 Connector |
409 | Terminal 2 Connection |
410 |
411 |
412 | 1 |
413 | Black |
414 | 140 mm |
415 | Male Spade |
416 | Battery B- |
417 | Fork Spade |
418 | Terminal Block B- |
419 |
420 |
421 | 2 |
422 | Red |
423 | 80 mm |
424 | Male Spade |
425 | Battery B+ |
426 | Female Spade |
427 | Switch IN |
428 |
429 |
430 | 3 |
431 | Red |
432 | 140 mm |
433 | Female Spade |
434 | Switch OUT |
435 | Fork Spade |
436 | Terminal Block B+ |
437 |
438 |
439 | 4 |
440 | Black |
441 | 120 mm |
442 | Fork Spade |
443 | Terminal Block B- |
444 | Fork Spade |
445 | 12V Regulator -IN |
446 |
447 |
448 | 5 |
449 | Red |
450 | 120 mm |
451 | Fork Spade |
452 | Terminal Block B+ |
453 | Fork Spade |
454 | 12V Regulator +IN |
455 |
456 |
457 | 6 |
458 | Black |
459 | 120 mm |
460 | Fork Spade |
461 | Terminal Block B- |
462 | Bare Wire |
463 | 5V Regulator -IN |
464 |
465 |
466 | 7 |
467 | Red |
468 | 120 mm |
469 | Fork Spade |
470 | Terminal Block B+ |
471 | Bare Wire |
472 | 5V Regulator +IN |
473 |
474 |
475 | 8 |
476 | Black |
477 | 120 mm |
478 | Fork Spade |
479 | 12V Regulator -OUT |
480 | Bare Wire |
481 | Dynamixel Hub -IN |
482 |
483 |
484 | 9 |
485 | Red |
486 | 120 mm |
487 | Fork Spade |
488 | 12V Regulator +OUT |
489 | Bare Wire |
490 | Dynamixel Hub +IN |
491 |
492 |
493 |
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | > 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 |
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 |
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 | 
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 | 
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 | 
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 | > 
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 | > 
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 | > 
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 | 
762 |
763 | 
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 | > 
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 | > 
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 | > 
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 | 
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 | 
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 | > 
845 |
846 | The following image shows the resistor correctly installed.
847 |
848 | > 
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 | 
33 |
34 | 2. When the Jetson Nano module pops up, slide it out gently.
35 |
36 | 
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 | 
45 |
46 | 4. Slide the Intel 8265 card into the socket.
47 |
48 | 
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 | 
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 |
25 |
26 |
27 |
28 | VIN |
29 |
30 | 1
31 | |
32 |
33 |
34 | GND |
35 |
36 | 6
37 | |
38 |
39 |
40 | SCL |
41 |
42 | 5
43 | |
44 |
45 |
46 | SDA |
47 |
48 | 3
49 | |
50 |
51 |
52 |
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 | 
58 |
59 | 
60 |
61 | 
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 |
86 |
87 |
88 |
89 | VIN |
90 |
91 | 17
92 | |
93 |
94 |
95 | GND |
96 |
97 | 25
98 | |
99 |
100 |
101 | SCL |
102 |
103 | 28
104 | |
105 |
106 |
107 | SDA |
108 |
109 | 27
110 | |
111 |
112 |
113 |
114 |
115 | 
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 |
--------------------------------------------------------------------------------