├── .gitignore ├── LICENSE ├── README.md ├── ade-envs ├── aderc-gpu-multi-foxy ├── aderc-gpu-multi-foxy-built └── aderc-gpu-multi-galactic ├── race-control └── race-controller.py ├── recorded-tracks ├── autonomous_stuff-lesux-parking-1.csv ├── boregas-lesux-parking-1.csv └── lvms-dallara-1-api-1.csv ├── scripts ├── build-autoware-auto.sh ├── install-ade.sh ├── move-ego-in-circle-autoware-auto.sh ├── ossdc-sim-demo-start-env.py ├── record-autoware-auto.sh ├── replay-autoware-auto.sh └── start-record-replay-autoware-auto.sh ├── sim-data ├── 2021.3-ossdc │ ├── backup.db │ └── data.db ├── config.yml ├── run-OSSDC-SIM-v1.bat └── run-OSSDC-SIM-v1.sh └── simulations ├── AutonomouStuff-Lexux-AVP-AutowareAuto └── Single_Ego-AVP-API-race-control.py ├── BorregasAve-Lexux-AVP-AutowareAuto └── Single_Ego-AVP-API-race-control.py ├── F1Tenth-API ├── Pure_Pursuit.py ├── Spielberg_raceline.csv ├── Spielberg_raceline_2.csv └── config_Spielberg_map.yaml └── LVMS-Dallara-AutowareAuto-2-EGOs ├── Multi_Ego-LVMS-API.py ├── README.md └── Single_Ego-LVMS-API-race-control.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OSSDC-SIM-Demos 2 | Demos of OSSDC SIM 3 | 4 | https://github.com/OSSDC/OSSDC-SIM 5 | 6 | Check simulations folder for different demos -------------------------------------------------------------------------------- /ade-envs/aderc-gpu-multi-foxy: -------------------------------------------------------------------------------- 1 | # For Intel CPU and Joystic 2 | # export ADE_DOCKER_RUN_ARGS="--network ade${EGO_NR} --cap-add=SYS_PTRACE --device /dev/input/js0 --device /dev/dri -v ${HOME}/.Xauthority:${HOME}/.Xauthority:ro -e XAUTHORITY=${HOME}/.Xauthority -e RMW_IMPLEMENTATION=rmw_cyclonedds_cpp --publish 909${EGO_NR}:9090 --publish 888${EGO_NR}:8888" 3 | 4 | # For AMD CPU and no Joystic 5 | export ADE_DOCKER_RUN_ARGS="--network ade${EGO_NR} --cap-add=SYS_PTRACE -v ${HOME}/.Xauthority:${HOME}/.Xauthority:ro -e XAUTHORITY=${HOME}/.Xauthority -e RMW_IMPLEMENTATION=rmw_cyclonedds_cpp -v /dev/shm:/dev/shm --publish 909${EGO_NR}:9090 --publish 888${EGO_NR}:8888 --publish 887${EGO_NR}:8870" 6 | 7 | export ADE_GITLAB=gitlab.com 8 | export ADE_REGISTRY=registry.gitlab.com 9 | export ADE_IMAGES=" 10 | registry.gitlab.com/autowarefoundation/autoware.auto/autowareauto/amd64/ade-foxy:master 11 | registry.gitlab.com/autowarefoundation/autoware.auto/autowareauto/amd64/binary-foxy:master 12 | " 13 | -------------------------------------------------------------------------------- /ade-envs/aderc-gpu-multi-foxy-built: -------------------------------------------------------------------------------- 1 | # For Intel CPU and Joystic 2 | # export ADE_DOCKER_RUN_ARGS="--network ade${EGO_NR} --cap-add=SYS_PTRACE --device /dev/input/js0 --device /dev/dri -v ${HOME}/.Xauthority:${HOME}/.Xauthority:ro -e XAUTHORITY=${HOME}/.Xauthority -e RMW_IMPLEMENTATION=rmw_cyclonedds_cpp --publish 909${EGO_NR}:9090 --publish 888${EGO_NR}:8888" 3 | 4 | # For AMD CPU and no Joystic 5 | export ADE_DOCKER_RUN_ARGS="--network ade${EGO_NR} --cap-add=SYS_PTRACE -v ${HOME}/.Xauthority:${HOME}/.Xauthority:ro -e XAUTHORITY=${HOME}/.Xauthority -e RMW_IMPLEMENTATION=rmw_cyclonedds_cpp -v /dev/shm:/dev/shm --publish 909${EGO_NR}:9090 --publish 888${EGO_NR}:8888 --publish 887${EGO_NR}:8870" 6 | 7 | export ADE_GITLAB=gitlab.com 8 | export ADE_REGISTRY=registry.gitlab.com 9 | export ADE_IMAGES=" 10 | registry.gitlab.com/ossdc/autowareauto/amd64/ade-foxy:commit-dd19396d386df0b95c05f76513a362af293b2d99 11 | registry.gitlab.com/ossdc/autowareauto/amd64/binary-foxy:commit-dd19396d386df0b95c05f76513a362af293b2d99 12 | " 13 | -------------------------------------------------------------------------------- /ade-envs/aderc-gpu-multi-galactic: -------------------------------------------------------------------------------- 1 | # For Intel CPU and Joystic 2 | # export ADE_DOCKER_RUN_ARGS="--network ade${EGO_NR} --cap-add=SYS_PTRACE --device /dev/input/js0 --device /dev/dri -v ${HOME}/.Xauthority:${HOME}/.Xauthority:ro -e XAUTHORITY=${HOME}/.Xauthority -e RMW_IMPLEMENTATION=rmw_cyclonedds_cpp --publish 909${EGO_NR}:9090 --publish 888${EGO_NR}:8888" 3 | 4 | # For AMD CPU and no Joystic 5 | export ADE_DOCKER_RUN_ARGS="--network ade${EGO_NR} --cap-add=SYS_PTRACE -v ${HOME}/.Xauthority:${HOME}/.Xauthority:ro -e XAUTHORITY=${HOME}/.Xauthority -e RMW_IMPLEMENTATION=rmw_cyclonedds_cpp -v /dev/shm:/dev/shm --publish 909${EGO_NR}:9090 --publish 888${EGO_NR}:8888 --publish 887${EGO_NR}:8870" 6 | 7 | export ADE_GITLAB=gitlab.com 8 | export ADE_REGISTRY=registry.gitlab.com 9 | export ADE_IMAGES=" 10 | registry.gitlab.com/ossdc/autowareauto/amd64/ade-galactic 11 | registry.gitlab.com/ossdc/autowareauto/amd64/binary-galactic 12 | " 13 | -------------------------------------------------------------------------------- /race-control/race-controller.py: -------------------------------------------------------------------------------- 1 | import pygame 2 | from pygame.locals import * 3 | import sys 4 | import socket 5 | import time 6 | 7 | def grab(x, y, w, h): 8 | "Grab a part of the screen" 9 | # get the dimension of the surface 10 | rect = pygame.Rect(x, y, w, h) 11 | # copy the part of the screen 12 | sub = screen.subsurface(rect) 13 | # create another surface with dimensions 14 | # This is done to unlock the screen surface 15 | # Unlock screen surface here: 16 | screenshot = pygame.Surface((w, h)) 17 | screenshot.blit(sub, (0, 0)) 18 | return screenshot 19 | 20 | def pos_relative_to_finish_line(x1, x2, y1, y2, xA, yA): 21 | v1 = (x2-x1, y2-y1) # Vector 1 22 | v2 = (x2-xA, y2-yA) # Vector 2 23 | xp = v1[0]*v2[1] - v1[1]*v2[0] # Cross product 24 | # if xp > 0: 25 | # print('on one side') 26 | # elif xp < 0: 27 | # print('on the other') 28 | # else: 29 | # print('on the same line!') 30 | return xp 31 | 32 | ## Here we define the UDP IP address as well as the port number that we have 33 | ## already defined in the client python script. 34 | UDP_IP_ADDRESS = "0.0.0.0" 35 | UDP_PORT_NO = 6789 36 | 37 | 38 | pygame.init() 39 | pygame.display.set_caption('OSSDC Race Control Center') 40 | 41 | flags = DOUBLEBUF 42 | size = width, height = 1000, 1000 43 | # speed = [2, 2] 44 | black = 0, 0, 0 45 | 46 | screen = pygame.display.set_mode(size, flags) 47 | 48 | WHITE = (255, 255, 255) 49 | BLUE = (0, 0, 255) 50 | GREEN = (0, 255, 0) 51 | RED = (255, 0, 0) 52 | 53 | pos = 0 54 | trail = [] 55 | trail_pos = 0 56 | track_points = [] 57 | 58 | pos = 0 59 | 60 | serverSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 61 | ## One difference is that we will have to bind our declared IP address 62 | ## and port number to our newly declared serverSock 63 | serverSock.bind((UDP_IP_ADDRESS, UDP_PORT_NO)) 64 | first = True 65 | 66 | font = pygame.font.SysFont(None, 24) 67 | maxspeed = 0 68 | 69 | # offset x is 300 and offset y is 350 70 | right_starting_point = (236.0460891723633, 296.31824493408203) 71 | left_starting_point = (244.4570121765137, 302.9487609863281) 72 | 73 | rel_prev_pos = None 74 | rel_curr_pos = None 75 | lap_count = 0 76 | start_time = None 77 | lap_time = 0 78 | best_lap_time = None 79 | 80 | while True: 81 | for event in pygame.event.get(): 82 | if event.type == pygame.QUIT: 83 | sys.exit() 84 | 85 | data, addr = serverSock.recvfrom(1024) 86 | data_array = data.decode().split(";") 87 | for elem in data_array: 88 | element_parts = elem.split(",") 89 | if len(element_parts) == 4: 90 | position = float(element_parts[1])+300, float(element_parts[2])+350 91 | # print(position) 92 | speed = float(element_parts[3]) 93 | # print(speed) 94 | if speed > maxspeed: 95 | maxspeed = speed 96 | # simid = element_parts[0] 97 | simid = addr[0] 98 | 99 | if start_time is None: 100 | start_time = time.time() 101 | 102 | if first and pos < 21: 103 | track_points.append(position) 104 | pos+=1 105 | trail.append(position) 106 | trail_pos+=1 107 | # first = True 108 | else: 109 | if first: 110 | pos = len(track_points)-2 111 | trail_pos = len(trail)-2 112 | first = False 113 | 114 | screen.fill(black) 115 | track_points.append(position) 116 | if trail_pos >= 20: 117 | trail_pos = 0 118 | else: 119 | trail_pos += 1 120 | trail[trail_pos]=position 121 | for i in range(pos): 122 | # print(i) 123 | pygame.draw.circle(screen, BLUE, track_points[i], 1) 124 | for i in range(20): 125 | if i == trail_pos: 126 | pygame.draw.circle(screen, RED, trail[i], 5) 127 | else: 128 | pygame.draw.circle(screen, WHITE, trail[i], 5) 129 | 130 | (x1, y1) = left_starting_point 131 | (x2, y2) = right_starting_point 132 | (xA, yA) = position 133 | rel_curr_pos = pos_relative_to_finish_line(x1, x2, y1, y2, xA, yA) 134 | 135 | if rel_prev_pos is not None: 136 | if rel_prev_pos > 0 and rel_curr_pos < 0: 137 | lap_count += 1 138 | lap_time = time.time() - start_time 139 | if best_lap_time is None: 140 | best_lap_time = lap_time 141 | if lap_time < best_lap_time: 142 | best_lap_time = lap_time 143 | start_time = time.time() 144 | rel_prev_pos = None 145 | elif rel_curr_pos == 0: 146 | lap_count += 1 147 | lap_time = time.time() - start_time 148 | if best_lap_time is None: 149 | best_lap_time = lap_time 150 | if lap_time < best_lap_time: 151 | best_lap_time = lap_time 152 | start_time = time.time() 153 | rel_prev_pos = None 154 | else: 155 | rel_prev_pos = rel_curr_pos 156 | else: 157 | if rel_curr_pos == 0: 158 | lap_count += 1 159 | lap_time = time.time() - start_time 160 | if best_lap_time is None: 161 | best_lap_time = lap_time 162 | if lap_time < best_lap_time: 163 | best_lap_time = lap_time 164 | start_time = time.time() 165 | else: 166 | rel_prev_pos = rel_curr_pos 167 | 168 | 169 | pos += 1 170 | img = font.render('simid: '+simid+", speed: "+str(int(speed))+", max speed: "+str(int(maxspeed))+", lap: "+str(lap_count)+", laptime: "+str(lap_time)+", fastest lap: "+str(best_lap_time), True, WHITE) 171 | screen.blit(img, (20, 20)) 172 | pygame.draw.line(screen, WHITE, right_starting_point, left_starting_point) 173 | 174 | sub = grab(0, 40, 950, 950) 175 | surf = pygame.transform.rotate(sub, 90) 176 | surf = pygame.transform.flip(surf, False, True) 177 | screen.blit(surf, (0, 40)) 178 | pygame.display.flip() 179 | -------------------------------------------------------------------------------- /recorded-tracks/autonomous_stuff-lesux-parking-1.csv: -------------------------------------------------------------------------------- 1 | t_sec, t_nanosec, x, y, orientation_x, orientation_y, orientation_z, orientation_w, longitudinal_velocity_mps, lateral_velocity_mps, acceleration_mps2, heading_rate_rps, front_wheel_angle_rad, rear_wheel_angle_rad 2 | 0, 0, -1.51797, -0.365255, -0.0119494, -0.00710664, 0.992932, -0.117866, 5.08573e-05, 0, 0, -9.8953e-08, -0, -0 3 | 0, 0, -2.0183, -0.48616, -0.0123796, -0.00603464, 0.992867, -0.118432, 1.70437, 0, 0, 0.00768383, -0, -0 4 | 0, 0, -2.50517, -0.603377, -0.0135132, -0.00483042, 0.992848, -0.118521, 2.67606, 0, 0, 0.0136883, -0, -0 5 | 0, 0, -3.02575, -0.720688, -0.0147349, -0.00729141, 0.993193, -0.115311, 2.97264, 0, 0, -0.00550092, -0.0440115, -0 6 | 0, 0, -3.58828, -0.809904, -0.0131922, -0.00722245, 0.994595, -0.10274, 3.64458, 0, 0, -0.0439877, -0.108459, -0 7 | 0, 0, -4.18974, -0.915749, -0.0108076, -0.00837551, 0.995246, -0.0964245, 4.23605, 0, 0, -0.0312183, -0.0619136, -0 8 | 0, 0, -4.77273, -0.988331, -0.00974461, -0.00671376, 0.996401, -0.0839391, 4.51773, 0, 0, 0.00332809, -0.132585, -0 9 | 0, 0, -5.31275, -1.03002, -0.00917661, -0.00430043, 0.997542, -0.0693366, 5.15147, 0, 0, -0.0221587, -0.0821161, -0 10 | 0, 0, -5.95725, -1.09183, -0.00678647, -0.00344586, 0.998118, -0.0608457, 5.59616, 0, 0, -0.00504067, -0.00683699, -0 11 | 0, 0, -6.6082, -1.1673, -0.00748596, -0.00217342, 0.998182, -0.0597707, 6.06024, 0, 0, 0.0282939, -0, -0 12 | 0, 0, -7.17652, -1.22874, -0.00847584, -0.00312305, 0.998337, -0.0569298, 6.38407, 0, 0, 0.0164729, -0.0497415, -0 13 | 0, 0, -7.7097, -1.26586, -0.00708856, -0.00259784, 0.998801, -0.0483711, 6.74799, 0, 0, -0.0573151, -0.11895, -0 14 | 0, 0, -8.26864, -1.27908, -0.00558264, -0.00207155, 0.999344, -0.0357134, 7.05685, 0, 0, -0.0263407, -0.126089, -0 15 | 0, 0, -8.91053, -1.28712, -0.00458527, -0.00186106, 0.999691, -0.0243443, 7.12893, 0, 0, -0.0216664, -0.0810309, -0 16 | 0, 0, -9.55071, -1.28226, -0.00394743, -0.00281117, 0.999913, -0.0122871, 7.09179, 0, 0, -0.00678735, -0.153171, -0 17 | 0, 0, -10.1156, -1.24909, -0.00395351, -0.00458941, 0.999974, 0.00378839, 7.09179, 0, 0, 0.0204513, -0.153171, -0 18 | 0, 0, -10.742, -1.16878, -0.00605804, -0.00585047, 0.999553, 0.0286796, 7.0342, 0, 0, 0.051328, -0.223737, -0 19 | 0, 0, -11.2855, -1.05242, -0.00849336, -0.00661272, 0.998309, 0.0571183, 6.95761, 0, 0, 0.0640559, -0.292032, -0 20 | 0, 0, -11.8095, -0.888389, -0.0111016, -0.00761903, 0.995732, 0.0913043, 6.8624, 0, 0, 0.0440127, -0.361521, -0 21 | 0, 0, -12.3039, -0.673009, -0.0108659, -0.011133, 0.991131, 0.131977, 6.73272, 0, 0, -0.067534, -0.42852, -0 22 | 0, 0, -12.8694, -0.333692, -0.00878551, -0.0131006, 0.98207, 0.187854, 6.53967, 0, 0, 0.0229959, -0.506923, -0 23 | 0, 0, -13.3106, 0.0356244, -0.00686652, -0.0142711, 0.969752, 0.243576, 6.31739, 0, 0, -0.0397375, -0.574812, -0 24 | 0, 0, -13.7493, 0.553139, -0.00526878, -0.0168932, 0.948768, 0.315479, 6.13515, 0, 0, -0.0351441, -0.642786, -0 25 | 0, 0, -14.049, 1.06807, -0.00451162, -0.013307, 0.924824, 0.380137, 5.89145, 0, 0, -0.0829575, -0.648293, -0 26 | 0, 0, -14.2931, 1.60316, -0.00802521, -0.0116035, 0.899608, 0.436471, 5.83197, 0, 0, 0.0572, -0.579565, -0 27 | 0, 0, -14.4981, 2.14882, -0.0104596, -0.0105611, 0.874599, 0.484618, 5.79203, 0, 0, 0.00285342, -0.510931, -0 28 | 0, 0, -14.6529, 2.64745, -0.0109382, -0.00960647, 0.853624, 0.520686, 5.76765, 0, 0, -0.0075654, -0.435603, -0 29 | 0, 0, -14.814, 3.26296, -0.0112845, -0.00815877, 0.830998, 0.556101, 5.7569, 0, 0, -0.00999407, -0.296719, -0 30 | 0, 0, -14.9309, 3.76872, -0.0116307, -0.00888283, 0.815397, 0.578717, 5.74976, 0, 0, -0.00741446, -0.22708, -0 31 | 0, 0, -15.0635, 4.388, -0.00973474, -0.00963438, 0.800666, 0.598955, 5.74953, 0, 0, -0.0316791, -0.160495, -0 32 | 0, 0, -15.1704, 4.89404, -0.00912788, -0.00943681, 0.792772, 0.609377, 5.73682, 0, 0, 0.050652, -0.0898765, -0 33 | 0, 0, -15.311, 5.50786, -0.00892882, -0.00934769, 0.788199, 0.615285, 5.71982, 0, 0, -0.00965323, -0.0215961, -0 34 | 0, 0, -15.4403, 6.00413, -0.00850949, -0.00892965, 0.78884, 0.614474, 5.69586, 0, 0, -0.0125701, 0.0458331, -0 35 | 0, 0, -15.6246, 6.59934, -0.00811641, -0.00832085, 0.794831, 0.60672, 5.66075, 0, 0, -0.0119436, 0.120084, -0 36 | 0, 0, -15.8262, 7.12393, -0.00784499, -0.00764249, 0.80518, 0.592929, 5.61862, 0, 0, -0.0113919, 0.189836, -0 37 | 0, 0, -16.067, 7.62579, -0.00767366, -0.00685595, 0.819715, 0.572679, 5.56682, 0, 0, -0.00872187, 0.259082, -0 38 | 0, 0, -16.3516, 8.09646, -0.00776795, -0.0060503, 0.837779, 0.545921, 5.50415, 0, 0, -0.00515113, 0.330203, -0 39 | 0, 0, -16.7171, 8.56685, -0.00804568, -0.00508746, 0.860631, 0.50914, 5.34937, 0, 0, 0.00154176, 0.40842, -0 40 | 0, 0, -17.1176, 9.00164, -0.00861927, -0.00494444, 0.881336, 0.472385, 5.34932, 0, 0, 0.00980968, 0.340745, -0 41 | 0, 0, -17.5717, 9.45962, -0.00985263, -0.00550657, 0.898014, 0.439823, 5.35922, 0, 0, 0.0263807, 0.270925, -0 42 | 0, 0, -18.0337, 9.91018, -0.0111018, -0.00633963, 0.909169, 0.416232, 5.36956, 0, 0, 0.0241567, 0.203495, -0 43 | 0, 0, -18.4556, 10.3231, -0.0106302, -0.0140121, 0.914946, 0.403194, 5.37433, 0, 0, 0.118556, 0.133304, -0 44 | 0, 0, -18.9074, 10.7745, -0.011916, -0.0193038, 0.917155, 0.397885, 5.31713, 0, 0, -0.00880942, -0, -0 45 | 0, 0, -19.2919, 11.1844, -0.00287929, -0.00983063, 0.918748, 0.394711, 5.09476, 0, 0, -0.0633883, -0, -0 46 | 0, 0, -19.6413, 11.5532, -0.00106914, -0.00894185, 0.919063, 0.394009, 5.08034, 0, 0, -0.0234985, -0, -0 47 | 0, 0, -19.9919, 11.9182, 0.000793401, -0.0107249, 0.919229, 0.393577, 5.06303, 0, 0, -0.0185651, -0, -0 48 | 0, 0, -20.3402, 12.2783, -0.00222437, -0.0153922, 0.919178, 0.393536, 5.04676, 0, 0, 0.321543, -0, -0 49 | 0, 0, -20.7402, 12.6943, -0.0127328, -0.0215526, 0.918051, 0.395671, 4.74, 0, 0, 0.327762, -0, -0 50 | 0, 0, -21.1684, 13.1494, -0.0206349, -0.0128146, 0.918762, 0.394063, 4.41337, 0, 0, -0.0194672, -0, -0 51 | 0, 0, -21.5392, 13.5523, -0.0223919, -0.00890089, 0.916675, 0.398905, 4.10105, 0, 0, -0.0141311, -0, -0 52 | 0, 0, -21.9852, 14.0276, -0.0222905, -0.00748951, 0.916732, 0.398809, 4.40977, 0, 0, -0.0169108, -0, -0 53 | 0, 0, -22.3404, 14.4081, -0.0222595, -0.00438323, 0.916504, 0.399381, 4.69885, 0, 0, -0.0207625, -0, -0 54 | 0, 0, -22.7446, 14.8482, -0.0164101, -0.0120414, 0.917897, 0.396297, 5.10177, 0, 0, 0.0389698, -0, -0 55 | 0, 0, -23.1363, 15.2636, -0.0113708, -0.0163308, 0.916934, 0.398542, 5.03155, 0, 0, -0.217934, -0, -0 56 | 0, 0, -23.5295, 15.6905, -0.0106284, -0.0155617, 0.91657, 0.39943, 5.33866, 0, 0, 0.0153172, -0, -0 57 | 0, 0, -23.8719, 16.0586, -0.0116127, -0.0145244, 0.9163, 0.400061, 5.61551, 0, 0, -0.040267, -0, -0 58 | 0, 0, -24.3123, 16.5354, -0.0103878, -0.0101524, 0.916371, 0.400066, 5.89845, 0, 0, -0.0496493, -0, -0 59 | 0, 0, -24.6917, 16.9465, -0.00917774, -0.00826191, 0.916316, 0.400266, 6.21589, 0, 0, -0.0412187, -0, -0 60 | 0, 0, -25.0435, 17.3272, -0.00911964, -0.00724853, 0.916208, 0.400535, 6.49604, 0, 0, -0.00428761, -0, -0 61 | 0, 0, -25.4049, 17.7274, -0.00948427, -0.0067429, 0.915223, 0.40278, 6.78907, 0, 0, 0.00845573, -0.0525269, -0 62 | 0, 0, -25.7668, 18.1573, -0.010004, -0.00680362, 0.911789, 0.410481, 7.12294, 0, 0, 0.014609, -0.121155, -0 63 | 0, 0, -26.0804, 18.5627, -0.0105676, -0.00666845, 0.906717, 0.421555, 7.12294, 0, 0, 0.00524895, -0.121155, -0 64 | 0, 0, -26.4421, 19.0427, -0.0104158, -0.00491916, 0.902431, 0.430681, 7.43516, 0, 0, -0.0164598, -0.100462, -0 65 | 0, 0, -26.8128, 19.5262, -0.0107228, -0.00463166, 0.900228, 0.435262, 7.62065, 0, 0, 0.00738771, -0.0311463, -0 66 | 0, 0, -27.234, 20.0652, -0.0113469, -0.00444483, 0.899249, 0.437267, 7.60275, 0, 0, 0.0126068, -0.00909024, -0 67 | 0, 0, -27.5963, 20.5513, -0.0123376, -0.00436027, 0.89687, 0.442101, 7.57796, 0, 0, 0.0248709, -0.076396, -0 68 | 0, 0, -27.9436, 21.0457, -0.0131472, -0.00466295, 0.8929, 0.450039, 7.54712, 0, 0, 0.0165597, -0.0628186, -0 69 | 0, 0, -28.3339, 21.6004, -0.0131845, -0.00516879, 0.889992, 0.455757, 7.53043, 0, 0, 0.00906983, -0.0320679, -0 70 | 0, 0, -28.7267, 22.1512, -0.013055, -0.00584272, 0.888976, 0.457731, 7.51283, 0, 0, -0.00602863, -0, -0 71 | 0, 0, -29.0732, 22.641, -0.012267, -0.00617722, 0.888294, 0.45907, 7.49299, 0, 0, -0.0143646, -0.0461274, -0 72 | 0, 0, -29.4052, 23.1385, -0.0117508, -0.00690873, 0.885574, 0.464298, 7.49299, 0, 0, 0.00821178, -0.0461274, -0 73 | 0, 0, -29.7221, 23.6433, -0.0114539, -0.00728411, 0.881286, 0.472389, 7.45571, 0, 0, -0.00944161, -0.100796, -0 74 | 0, 0, -29.9998, 24.0834, -0.0110497, -0.00719646, 0.878873, 0.476874, 7.43682, 0, 0, -0.012639, -0.0335282, -0 75 | 0, 0, -30.3212, 24.5823, -0.0106506, -0.00712606, 0.877988, 0.478511, 7.41706, 0, 0, -0.0077982, -0, -0 76 | 0, 0, -30.6424, 25.0795, -0.010347, -0.00690453, 0.877774, 0.478914, 7.39404, 0, 0, -0.00931639, -0, -0 77 | 0, 0, -30.9617, 25.5761, -0.0100936, -0.00674407, 0.877544, 0.479343, 7.37212, 0, 0, -0.00417058, -0.0307834, -0 78 | 0, 0, -31.2698, 26.0775, -0.0101303, -0.00743059, 0.875563, 0.48294, 7.33679, 0, 0, 0.0207386, -0.101474, -0 79 | 0, 0, -31.5914, 26.6521, -0.00951543, -0.00864863, 0.869907, 0.493048, 7.29208, 0, 0, -0.00367626, -0.166875, -0 80 | 0, 0, -31.8739, 27.2405, -0.00858304, -0.00993381, 0.859891, 0.510308, 7.21629, 0, 0, -0.00745797, -0.238964, -0 81 | 0, 0, -32.1055, 27.843, -0.00737051, -0.0114636, 0.845118, 0.534406, 7.21629, 0, 0, -0.0122521, -0.238964, -0 82 | 0, 0, -32.2658, 28.3871, -0.0058991, -0.0124846, 0.828835, 0.559322, 7.10596, 0, 0, -0.03043, -0.307965, -0 83 | 0, 0, -32.4014, 28.9351, -0.00479872, -0.0125306, 0.813593, 0.58128, 7.04948, 0, 0, -0.0285109, -0.259242, -0 84 | 0, 0, -32.5244, 29.4843, -0.00408922, -0.0120363, 0.801015, 0.598509, 7.02733, 0, 0, -0.0252425, -0.183877, -0 85 | 0, 0, -32.6566, 30.1014, -0.00445884, -0.011151, 0.790795, 0.611963, 7.00878, 0, 0, -0.0136285, -0.116014, -0 86 | 0, 0, -32.7765, 30.647, -0.00451841, -0.0118835, 0.785719, 0.618452, 6.97939, 0, 0, -0.0274333, -0.0470261, -0 87 | 0, 0, -32.9327, 31.3236, -0.00214592, -0.00947519, 0.783855, 0.620868, 6.93808, 0, 0, -0.0690389, -0, -0 88 | 0, 0, -33.0527, 31.8626, -0.000602894, -0.00882528, 0.782486, 0.622605, 6.89522, 0, 0, -0.00966246, -0.0455839, -0 89 | 0, 0, -33.1557, 32.4011, 0.000433721, -0.0105638, 0.77814, 0.628001, 6.83956, 0, 0, 0.020827, -0.115532, -0 90 | 0, 0, -33.2549, 33.0058, 0.00251293, -0.0125375, 0.771532, 0.636063, 6.79496, 0, 0, 0.00454926, -0.0581697, -0 91 | 0, 0, -33.3459, 33.5396, 0.0030341, -0.0126662, 0.768412, 0.639823, 6.75413, 0, 0, -0.0643691, -0, -0 92 | 0, 0, -33.4408, 34.07, 0.0036092, -0.0112651, 0.767566, 0.640861, 6.75413, 0, 0, -0.0111089, -0, -0 93 | 0, 0, -33.5482, 34.6635, 0.00217628, -0.00937939, 0.767396, 0.641101, 6.7126, 0, 0, 0.0118566, -0, -0 94 | 0, 0, -33.6553, 35.2538, -9.50061e-05, -0.00738887, 0.767415, 0.641108, 6.67769, 0, 0, 0.00431784, -0, -0 95 | 0, 0, -33.7465, 35.7756, -0.00163496, -0.00721535, 0.766633, 0.642044, 6.63493, 0, 0, 0.0208776, -0.0130375, -0 96 | 0, 0, -33.8294, 36.3614, -0.00288909, -0.00671496, 0.762108, 0.647408, 6.58739, 0, 0, 0.0105761, -0.0825425, -0 97 | 0, 0, -33.8768, 36.8804, -0.00263228, -0.00893838, 0.753885, 0.65694, 6.51783, 0, 0, 0.0305481, -0.151419, -0 98 | 0, 0, -33.8938, 37.3961, -0.00115862, -0.0114667, 0.741795, 0.670527, 6.43495, 0, 0, -0.0669858, -0.227192, -0 99 | 0, 0, -33.87, 37.9038, 0.0014855, -0.0124871, 0.725539, 0.688066, 6.32189, 0, 0, 0.0103343, -0.295345, -0 100 | 0, 0, -33.7858, 38.5241, -0.00205809, -0.0127687, 0.699575, 0.714442, 6.20621, 0, 0, 0.0189537, -0.363007, -0 101 | 0, 0, -33.632, 39.1182, -0.00299224, -0.0124949, 0.667237, 0.744735, 6.0872, 0, 0, -0.0139433, -0.432506, -0 102 | 0, 0, -33.4115, 39.6766, -0.00812622, -0.0110553, 0.629165, 0.777151, 5.98336, 0, 0, -0.0166708, -0.501905, -0 103 | 0, 0, -33.1139, 40.1744, -0.00669841, -0.00734714, 0.584147, 0.811587, 5.73862, 0, 0, 0.0667835, -0.577751, -0 104 | 0, 0, -32.7725, 40.6281, -0.00694768, -0.0100514, 0.538726, 0.842393, 5.62614, 0, 0, -0.0215709, -0.509391, -0 105 | 0, 0, -32.4052, 41.0556, -0.00570152, -0.00988385, 0.498862, 0.866606, 5.60218, 0, 0, -0.00514634, -0.439094, -0 106 | 0, 0, -32.0214, 41.4642, -0.00496805, -0.010239, 0.464859, 0.885311, 5.5842, 0, 0, 0.0116425, -0.368576, -0 107 | 0, 0, -31.6126, 41.8363, -0.00649695, -0.0130303, 0.429709, 0.90285, 5.53794, 0, 0, 0.0085041, -0.383355, -0 108 | 0, 0, -31.1286, 42.185, -0.0057067, -0.0123128, 0.387182, 0.921903, 5.36501, 0, 0, -0.0177712, -0.390224, -0 109 | 0, 0, -30.6307, 42.5033, -0.00469076, -0.01198, 0.349999, 0.936662, 5.34312, 0, 0, -0.010188, -0.322808, -0 110 | 0, 0, -30.0812, 42.8326, -0.00362181, -0.0118439, 0.318471, 0.947852, 5.32141, 0, 0, -0.00668306, -0.254029, -0 111 | 0, 0, -29.5779, 43.1273, -0.0024897, -0.0119045, 0.298289, 0.954398, 5.29988, 0, 0, -0.00496525, -0.183977, -0 112 | 0, 0, -29.0353, 43.4506, -0.00100525, -0.0113311, 0.28581, 0.958219, 5.27042, 0, 0, -0.0250294, -0.106689, -0 113 | 0, 0, -28.5494, 43.7565, -0.000264199, -0.010143, 0.28273, 0.959146, 5.20064, 0, 0, -0.0224573, -0, -0 114 | 0, 0, -28.0272, 44.0926, 0.000174744, -0.00882986, 0.282477, 0.959233, 5.16525, 0, 0, -0.0233319, -0, -0 115 | 0, 0, -27.5958, 44.3708, -5.32586e-05, -0.00763434, 0.282416, 0.959262, 5.13122, 0, 0, -0.0154673, -0, -0 116 | 0, 0, -27.1679, 44.6471, -0.00076372, -0.00676984, 0.282362, 0.959284, 5.09626, 0, 0, -0.012148, -0, -0 117 | 0, 0, -26.7431, 44.9213, -0.000776835, -0.00616227, 0.282339, 0.959295, 5.0619, 0, 0, -0.00485298, -0, -0 118 | 0, 0, -26.3215, 45.1935, -0.00136603, -0.00691706, 0.282332, 0.959291, 5.02944, 0, 0, 0.0391966, -0, -0 119 | 0, 0, -25.8194, 45.5147, -0.00144094, -0.00941819, 0.281352, 0.959557, 4.94207, 0, 0, 0.041519, -0.0577242, -0 120 | 0, 0, -25.353, 45.7868, 0.000348506, -0.0117913, 0.27475, 0.961443, 4.89467, 0, 0, 0.0290579, -0.0881088, -0 121 | 0, 0, -24.8488, 46.0789, 0.00234392, -0.0141718, 0.269663, 0.962847, 4.85688, 0, 0, 0.0427494, -0.0191298, -0 122 | 0, 0, -24.3925, 46.3444, 0.00266325, -0.0173383, 0.26648, 0.963681, 4.80889, 0, 0, 0.056113, -0.0387157, -0 123 | 0, 0, -23.8946, 46.6193, 0.00165508, -0.0199432, 0.26033, 0.965312, 4.75444, 0, 0, 0.028186, -0.0729931, -0 124 | 0, 0, -23.4488, 46.8766, 0.000956898, -0.0203553, 0.259304, 0.965581, 4.66049, 0, 0, -0.00831469, -0, -0 125 | 0, 0, -23.0065, 47.1263, 0.00187408, -0.0200319, 0.257568, 0.966051, 4.60944, 0, 0, -0.0100225, -0.04481, -0 126 | 0, 0, -22.4795, 47.3928, 0.00289115, -0.0201267, 0.248607, 0.968391, 4.54394, 0, 0, -0.000666748, -0.116297, -0 127 | 0, 0, -22.0028, 47.6385, 0.00290769, -0.0201169, 0.244398, 0.969462, 4.43946, 0, 0, 0.00116389, -0, -0 128 | 0, 0, -21.5373, 47.8864, 0.00273117, -0.0206057, 0.243538, 0.969669, 4.37862, 0, 0, 0.0143543, -0.0283968, -0 129 | 0, 0, -21.0326, 48.1313, 0.0025467, -0.0215602, 0.236718, 0.971336, 4.31888, 0, 0, 0.0115063, -0.0977101, -0 130 | 0, 0, -20.5664, 48.3343, 0.0027634, -0.0224566, 0.226478, 0.973754, 4.20012, 0, 0, 0.0125756, -0.172251, -0 131 | 0, 0, -20.0182, 48.5219, 0.00250574, -0.0233112, 0.205073, 0.978466, 4.12722, 0, 0, 0.00822235, -0.242977, -0 132 | 0, 0, -19.4689, 48.643, 0.00240872, -0.023536, 0.17337, 0.984573, 3.94554, 0, 0, -0.00777725, -0.387169, -0 133 | 0, 0, -18.9281, 48.6868, 0.00305262, -0.0232219, 0.132201, 0.990946, 3.83156, 0, 0, -0.0108284, -0.453417, -0 134 | 0, 0, -18.3725, 48.6455, 0.00559187, -0.0217786, 0.0801481, 0.996529, 3.62959, 0, 0, -0.0471436, -0.499338, -0 135 | 0, 0, -17.7989, 48.5718, 0.00424078, -0.0162557, 0.0342934, 0.999271, 3.58289, 0, 0, -0.0590983, -0.422589, -0 136 | 0, 0, -17.2721, 48.4956, 0.00596922, -0.0144492, 0.00280504, 0.999874, 3.52775, 0, 0, -0.0324991, -0.28329, -0 137 | 0, 0, -16.6836, 48.4184, 0.00675789, -0.0119619, -0.0193078, 0.999719, 3.46741, 0, 0, -0.0196428, -0.140042, -0 138 | 0, 0, -16.1408, 48.3682, 0.00564398, -0.0124282, -0.027443, 0.99953, 3.36478, 0, 0, -0.0085684, -0.0381106, -0 139 | 0, 0, -15.5801, 48.3089, 0.00327612, -0.0130471, -0.0361914, 0.999254, 3.31438, 0, 0, 0.0440487, -0.108463, -0 140 | 0, 0, -15.0109, 48.1888, 0.00218132, -0.0157984, -0.059211, 0.998118, 3.22316, 0, 0, 0.0224343, -0.248783, -0 141 | 0, 0, -14.5309, 48.034, 0.00185546, -0.0167553, -0.0869216, 0.996073, 3.12851, 0, 0, 0.0140731, -0.281139, -0 142 | 0, 0, -13.9406, 47.8487, 0.00278753, -0.017875, -0.108456, 0.993937, 3.07958, 0, 0, 0.00052994, -0.143226, -0 143 | 0, 0, -13.3965, 47.6746, 0.00122493, -0.0157209, -0.12355, 0.992213, 2.98547, 0, 0, -0.0285303, -0.184333, -0 144 | 0, 0, -12.8873, 47.4586, 0.000506042, -0.0146889, -0.14735, 0.988975, 2.89291, 0, 0, -0.00888633, -0.23265, -0 145 | 0, 0, -12.4155, 47.2607, 0.000224827, -0.0140892, -0.161927, 0.986702, 2.8325, 0, 0, -0.00243467, -0.145142, -0 146 | 0, 0, -11.9288, 47.0021, -0.000135162, -0.0136564, -0.187132, 0.98224, 2.73907, 0, 0, -0.00677664, -0.291491, -0 147 | 0, 0, -11.4835, 46.7084, 0.000184746, -0.0130387, -0.21703, 0.976078, 2.66072, 0, 0, -0.00600248, -0.276616, -0 148 | 0, 0, -11.0928, 46.377, 9.28137e-05, -0.01239, -0.253923, 0.967145, 2.49017, 0, 0, -0.00424282, -0.481389, -0 149 | 0, 0, -10.7508, 45.9952, 0.000536593, -0.0121312, -0.29745, 0.95466, 2.39675, 0, 0, 0.00196097, -0.441282, -0 150 | 0, 0, -10.4434, 45.5597, 0.00109904, -0.0120112, -0.345208, 0.938449, 2.26697, 0, 0, 0.00621844, -0.554447, -0 151 | 0, 0, -10.1754, 45.1259, 0.0016437, -0.0119016, -0.385338, 0.922697, 2.16059, 0, 0, -0.00242944, -0.497837, -0 152 | 0, 0, -9.94076, 44.6544, 0.00207329, -0.0123781, -0.425949, 0.90466, 2.06228, 0, 0, 0.0106658, -0.369331, -0 153 | 0, 0, -9.686, 44.1905, 0.00190217, -0.0134707, -0.4499, 0.892976, 2.02111, 0, 0, 0.00452149, -0.223994, -0 154 | 0, 0, -9.38418, 43.7334, 0.000507826, -0.0146365, -0.456613, 0.889545, 1.93741, 0, 0, 0.000668075, -0.0123196, -0 155 | 0, 0, -9.07978, 43.3089, -0.00114874, -0.0156025, -0.45654, 0.889565, 1.84838, 0, 0, 0.00222184, -0, -0 156 | 0, 0, -8.74888, 42.8764, -0.00230237, -0.0174103, -0.452268, 0.891709, 1.71938, 0, 0, 0.00352753, -0, -0 157 | -------------------------------------------------------------------------------- /recorded-tracks/boregas-lesux-parking-1.csv: -------------------------------------------------------------------------------- 1 | t_sec, t_nanosec, x, y, orientation_x, orientation_y, orientation_z, orientation_w, longitudinal_velocity_mps, lateral_velocity_mps, acceleration_mps2, heading_rate_rps, front_wheel_angle_rad, rear_wheel_angle_rad 2 | 0, 0, -0.399499, -1.50927, 0.0131782, 0.0045876, -0.792386, 0.60986, 4.80759e-05, 0, 0, 4.14322e-07, -0, -0 3 | 0, 0, -0.541943, -2.04368, 0.0128268, 0.00399313, -0.792425, 0.609822, 1.77353, 0, 0, 0.00220185, -0, -0 4 | 0, 0, -0.674765, -2.54253, 0.013022, 0.00376241, -0.792476, 0.609753, 2.74623, 0, 0, 0.003099, -0, -0 5 | 0, 0, -0.82425, -3.1037, 0.0131985, 0.00354146, -0.792552, 0.609651, 3.40359, 0, 0, 0.000111338, -0, -0 6 | 0, 0, -0.964864, -3.63172, 0.0130803, 0.00345849, -0.792626, 0.609559, 3.74715, 0, 0, -0.000690025, -0, -0 7 | 0, 0, -1.12547, -4.23419, 0.0130802, 0.00331339, -0.792695, 0.609469, 4.36316, 0, 0, 0.002949, -0, -0 8 | 0, 0, -1.25599, -4.72312, 0.0131599, 0.00307266, -0.792722, 0.609434, 4.67032, 0, 0, 0.00473842, -0, -0 9 | 0, 0, -1.39726, -5.25202, 0.0132225, 0.00269008, -0.792725, 0.60943, 4.97722, 0, 0, 0.00518068, -0, -0 10 | 0, 0, -1.56337, -5.8742, 0.0132843, 0.00236254, -0.792702, 0.609459, 5.31727, 0, 0, 0.00075378, -0, -0 11 | 0, 0, -1.71141, -6.4294, 0.0132911, 0.0023514, -0.792676, 0.609494, 5.62363, 0, 0, 0.000165638, -0, -0 12 | 0, 0, -1.90106, -7.1413, 0.0133009, 0.00234005, -0.792628, 0.609556, 6.33117, 0, 0, 0.000340169, -0, -0 13 | 0, 0, -2.05155, -7.70639, 0.0133169, 0.00233529, -0.792617, 0.609569, 6.63447, 0, 0, 0.00034789, -0, -0 14 | 0, 0, -2.1912, -8.23083, 0.0133299, 0.00232826, -0.792615, 0.609573, 6.90382, 0, 0, 0.000372909, -0, -0 15 | 0, 0, -2.3363, -8.77596, 0.013325, 0.00248906, -0.792592, 0.609602, 6.90382, 0, 0, -0.00864267, -0, -0 16 | 0, 0, -2.48658, -9.34178, 0.0133699, 0.00285633, -0.792522, 0.60969, 7.23553, 0, 0, 0.0084207, -0, -0 17 | 0, 0, -2.62287, -9.85426, 0.0137167, 0.00262157, -0.792522, 0.609684, 7.543, 0, 0, 0.0127033, -0, -0 18 | 0, 0, -2.76375, -10.3834, 0.0140737, 0.00235983, -0.792526, 0.609671, 7.86019, 0, 0, 0.0110694, -0, -0 19 | 0, 0, -2.93015, -11.0085, 0.0140118, 0.00225278, -0.792508, 0.609697, 8.20722, 0, 0, -0.0013296, -0, -0 20 | 0, 0, -3.10186, -11.6544, 0.0135322, 0.00232902, -0.792534, 0.609673, 8.50749, 0, 0, -0.0178384, -0, -0 21 | 0, 0, -3.23413, -12.1524, 0.0132956, 0.00216436, -0.792601, 0.609592, 8.50749, 0, 0, 0.00791694, -0, -0 22 | 0, 0, -3.36968, -12.662, 0.0133312, 0.00172809, -0.792616, 0.609573, 8.807, 0, 0, 0.0103341, -0, -0 23 | 0, 0, -3.53187, -13.271, 0.0133716, 0.00135786, -0.792578, 0.609622, 9.10573, 0, 0, 0.000993095, -0, -0 24 | 0, 0, -3.67416, -13.8055, 0.0133611, 0.0013836, -0.792546, 0.609664, 9.10573, 0, 0, -0.00121553, -0, -0 25 | 0, 0, -3.8932, -14.629, 0.0133312, 0.0014441, -0.792511, 0.609711, 9.43749, 0, 0, -0.00140448, -0, -0 26 | 0, 0, -4.09372, -15.3835, 0.0132966, 0.00149284, -0.792457, 0.609781, 9.74379, 0, 0, -0.00141018, -0, -0 27 | 0, 0, -4.27367, -16.061, 0.0132687, 0.00152788, -0.792404, 0.60985, 10.0514, 0, 0, -0.000314033, -0, -0 28 | 0, 0, -4.45773, -16.7544, 0.0131873, 0.00160853, -0.792365, 0.609903, 10.0514, 0, 0, -0.0173696, -0, -0 29 | 0, 0, -4.64547, -17.4627, 0.0133019, 0.00222447, -0.792273, 0.610018, 10.38, 0, 0, -0.000406432, -0, -0 30 | 0, 0, -4.78197, -17.9782, 0.0135948, 0.00259897, -0.792221, 0.610078, 10.6676, 0, 0, 0.00028993, -0, -0 31 | 0, 0, -4.97669, -18.7136, 0.0139526, 0.00274446, -0.792182, 0.610119, 10.9775, 0, 0, -0.00209492, -0, -0 32 | 0, 0, -5.20417, -19.5729, 0.0142232, 0.00335854, -0.792128, 0.61018, 10.9775, 0, 0, -0.0105322, -0, -0 33 | 0, 0, -5.43678, -20.4528, 0.0138291, 0.00361276, -0.792138, 0.610175, 11.3019, 0, 0, -0.00744458, -0, -0 34 | 0, 0, -5.61462, -21.1255, 0.0140155, 0.00399452, -0.792132, 0.610176, 11.5862, 0, 0, 0.00942451, -0, -0 35 | 0, 0, -5.76511, -21.6949, 0.0146304, 0.00454082, -0.792058, 0.610254, 11.5862, 0, 0, -0.00260638, -0, -0 36 | 0, 0, -5.91769, -22.2725, 0.0150552, 0.00518455, -0.791961, 0.610364, 11.8894, 0, 0, 0.0108517, -0, -0 37 | 0, 0, -6.10411, -22.9778, 0.0149614, 0.00478209, -0.791955, 0.610377, 12.279, 0, 0, -0.021813, -0, -0 38 | 0, 0, -6.32595, -23.8176, 0.0121395, 0.00365294, -0.791879, 0.610547, 12.279, 0, 0, -0.0590628, -0, -0 39 | 0, 0, -6.45428, -24.3044, 0.0102604, 0.00284452, -0.79183, 0.610649, 12.5765, 0, 0, -0.0251693, -0, -0 40 | 0, 0, -6.58362, -24.7956, 0.00879228, 0.00224753, -0.791771, 0.610751, 12.5765, 0, 0, -0.0337775, -0, -0 41 | 0, 0, -6.71407, -25.2914, 0.00793832, 0.00155604, -0.791719, 0.610832, 12.8658, 0, 0, 0.0186152, -0, -0 42 | 0, 0, -6.87893, -25.9182, 0.00847076, 0.0020113, -0.791581, 0.611002, 12.8658, 0, 0, -0.00407722, -0, -0 43 | 0, 0, -7.07932, -26.6814, 0.0087726, 0.00310668, -0.791466, 0.611142, 13.1733, 0, 0, -0.0176956, -0, -0 44 | 0, 0, -7.21452, -27.197, 0.0085373, 0.00342789, -0.791441, 0.611176, 13.1733, 0, 0, -0.0199638, -0, -0 45 | 0, 0, -7.35089, -27.7175, 0.00802344, 0.00317327, -0.791442, 0.611184, 13.471, 0, 0, -0.0120101, -0, -0 46 | 0, 0, -7.55735, -28.5064, 0.00747462, 0.00331631, -0.791409, 0.611233, 13.471, 0, 0, -0.00374179, -0, -0 47 | 0, 0, -7.6964, -29.0381, 0.00756972, 0.00353604, -0.791389, 0.611255, 13.7596, 0, 0, 0.00726598, -0, -0 48 | 0, 0, -7.8373, -29.5764, 0.0075996, 0.00294735, -0.791431, 0.611204, 13.7596, 0, 0, -0.00396366, -0, -0 49 | 0, 0, -7.97978, -30.1207, 0.00686251, 0.0023247, -0.791431, 0.611215, 14.1174, 0, 0, -0.011184, -0, -0 50 | 0, 0, -8.2322, -31.0854, 0.00479431, 0.00107345, -0.791423, 0.61125, 14.1174, 0, 0, -0.0335229, -0, -0 51 | 0, 0, -8.37815, -31.6434, 0.00320496, -8.6852e-05, -0.791435, 0.611246, 14.4061, 0, 0, -0.0311036, -0, -0 52 | 0, 0, -8.63664, -32.6313, 0.00278602, -0.00101895, -0.791389, 0.611305, 14.4061, 0, 0, 0.00218077, -0, -0 53 | 0, 0, -8.78606, -33.2024, 0.00283916, -0.000989264, -0.791359, 0.611345, 14.6811, 0, 0, 0.000885325, -0, -0 54 | 0, 0, -8.93668, -33.7782, 0.00288512, -0.000944796, -0.791334, 0.611376, 14.6811, 0, 0, -0.000308484, -0, -0 55 | 0, 0, -9.08819, -34.3584, 0.00283369, -0.000103695, -0.79121, 0.611538, 14.9738, 0, 0, -0.0347053, -0, -0 56 | 0, 0, -9.31712, -35.2374, 0.00266847, 0.00151883, -0.79086, 0.611989, 14.9738, 0, 0, -0.0379483, -0, -0 57 | 0, 0, -9.50933, -35.9776, 0.00341956, 0.002533, -0.790573, 0.612353, 15.2648, 0, 0, 0.012303, -0, -0 58 | 0, 0, -9.74198, -36.8756, 0.00423348, 0.00373034, -0.79029, 0.612707, 15.5696, 0, 0, -0.0300097, -0, -0 59 | 0, 0, -9.93734, -37.6323, 0.00409205, 0.00505728, -0.790196, 0.61282, 15.5696, 0, 0, -0.0387554, -0, -0 60 | 0, 0, -10.174, -38.5518, 0.00324065, 0.00521152, -0.790268, 0.612731, 15.8821, 0, 0, -0.0147574, -0, -0 61 | 0, 0, -10.3733, -39.3269, 0.00222335, 0.00441886, -0.79032, 0.612675, 15.8821, 0, 0, -0.0123214, -0, -0 62 | 0, 0, -10.5745, -40.1096, 0.00120877, 0.00361094, -0.790335, 0.612663, 16.1661, 0, 0, -0.0122866, -0, -0 63 | 0, 0, -10.8186, -41.059, 0.000633895, 0.00300906, -0.790312, 0.612698, 16.1661, 0, 0, 0.00157783, -0, -0 64 | 0, 0, -10.983, -41.698, 0.000644475, 0.00300381, -0.790298, 0.612715, 16.4796, 0, 0, -0.000973612, -0, -0 65 | 0, 0, -11.1511, -42.3411, 0.000568248, 0.00314257, -0.790827, 0.612031, 16.4796, 0, 0, -0.0101223, -0, -0 66 | 0, 0, -11.3261, -42.9873, 0.000415668, 0.00320598, -0.792547, 0.609802, 16.753, 0, 0, -0.00825813, -0.0645705, -0 67 | 0, 0, -11.5107, -43.6355, 0.000192054, 0.00328393, -0.795868, 0.605461, 16.753, 0, 0, -0.0155686, -0.0645705, -0 68 | 0, 0, -11.6571, -44.1221, -4.70132e-05, 0.00340223, -0.799519, 0.600631, 16.753, 0, 0, -0.022073, -0.0645705, -0 69 | 0, 0, -11.8612, -44.7723, -0.000481069, 0.00352876, -0.80514, 0.593074, 17.0219, 0, 0, -0.0202738, -0.093019, -0 70 | 0, 0, -12.0729, -45.4249, -0.000716384, 0.00347434, -0.810546, 0.585665, 17.0219, 0, 0, -0.000158778, -0.093019, -0 71 | 0, 0, -12.2355, -45.9163, -0.00073402, 0.00331936, -0.813995, 0.580862, 17.2861, 0, 0, 0.0055889, -0.0246815, -0 72 | 0, 0, -12.4009, -46.4096, -0.000707686, 0.00310902, -0.816774, 0.576949, 17.2861, 0, 0, 0.0100401, -0.0246815, -0 73 | 0, 0, -12.6819, -47.2337, 0.000838041, 0.00454602, -0.819901, 0.572487, 17.2861, 0, 0, 0.0344285, -0.0246815, -0 74 | 0, 0, -12.9126, -47.8959, 0.00274798, 0.00591645, -0.821513, 0.570152, 17.5452, 0, 0, 0.0399221, -0, -0 75 | 0, 0, -13.2088, -48.7282, 0.00518377, 0.0075702, -0.822833, 0.568209, 17.5452, 0, 0, 0.0428313, -0, -0 76 | 0, 0, -13.3903, -49.2301, 0.00623399, 0.00857813, -0.82342, 0.567334, 17.8268, 0, 0, -0.00657057, -0, -0 77 | 0, 0, -13.6359, -49.9028, 0.00638824, 0.00881129, -0.824225, 0.566158, 17.8268, 0, 0, 0.000214161, -0, -0 78 | 0, 0, -13.8861, -50.579, 0.00637421, 0.00873197, -0.824836, 0.565268, 17.8268, 0, 0, 0.00160446, -0, -0 79 | 0, 0, -14.0766, -51.0885, 0.00636721, 0.00864909, -0.825177, 0.564772, 18.1369, 0, 0, 0.00263339, -0, -0 80 | 0, 0, -14.2695, -51.6002, 0.00637055, 0.00854485, -0.825443, 0.564384, 18.1369, 0, 0, 0.00516917, -0, -0 81 | 0, 0, -14.595, -52.4587, 0.00645722, 0.0078536, -0.825673, 0.564057, 18.4324, 0, 0, 0.0243331, 0.024377, -0 82 | 0, 0, -14.7907, -52.9778, 0.00659536, 0.00727955, -0.825322, 0.564577, 18.4324, 0, 0, 0.0320995, 0.024377, -0 83 | 0, 0, -15.1127, -53.8514, 0.00673208, 0.00623102, -0.823085, 0.567844, 18.4324, 0, 0, 0.0233546, 0.024377, -0 84 | 0, 0, -15.3028, -54.3809, 0.00672367, 0.00567232, -0.820799, 0.571149, 18.7231, 0, 0, 0.0273344, 0.0703607, -0 85 | 0, 0, -15.4922, -54.9138, 0.00683358, 0.00513462, -0.81832, 0.5747, 18.7231, 0, 0, 0.0274216, 0.0703607, -0 86 | 0, 0, -15.8084, -55.8074, 0.00779485, 0.00501251, -0.814656, 0.57987, 18.9895, 0, 0, 0.0398854, 0.00223606, -0 87 | 0, 0, -15.9988, -56.3473, 0.0085069, 0.0052475, -0.813002, 0.582176, 18.9895, 0, 0, 0.0283487, 0.00223606, -0 88 | 0, 0, -16.1891, -56.8905, 0.00926179, 0.00557669, -0.811694, 0.583983, 18.9895, 0, 0, 0.0307331, 0.00223606, -0 89 | 0, 0, -16.5055, -57.8029, 0.010361, 0.00602328, -0.810081, 0.586196, 19.318, 0, 0, 0.0161075, -0, -0 90 | 0, 0, -16.6948, -58.3545, 0.0105432, 0.0060295, -0.809319, 0.587244, 19.318, 0, 0, 0.0089182, -0, -0 91 | 0, 0, -16.8835, -58.9093, 0.0106647, 0.00601956, -0.80871, 0.58808, 19.5389, 0, 0, 0.00723888, -0, -0 92 | 0, 0, -17.0715, -59.4674, 0.0107772, 0.00595477, -0.808228, 0.58874, 19.5389, 0, 0, 0.00981481, -0, -0 93 | 0, 0, -17.3215, -60.2166, 0.0109127, 0.00584428, -0.807726, 0.589428, 19.5389, 0, 0, 0.0086809, -0, -0 94 | 0, 0, -17.5086, -60.7821, 0.0109707, 0.0057918, -0.807427, 0.589838, 19.8614, 0, 0, 0.00292726, -0, -0 95 | 0, 0, -17.7577, -61.5409, 0.0109616, 0.00577338, -0.807109, 0.590272, 19.8614, 0, 0, -0.000408246, -0, -0 96 | 0, 0, -18.0067, -62.3051, 0.0109326, 0.00578066, -0.806868, 0.590602, 19.8614, 0, 0, -0.00149802, -0, -0 97 | 0, 0, -18.2557, -63.0747, 0.0109067, 0.00578819, -0.806651, 0.590899, 20.1799, 0, 0, 0.000390617, -0, -0 98 | 0, 0, -18.4409, -63.6564, 0.0104858, 0.00564267, -0.806101, 0.591657, 20.1799, 0, 0, -0.0365679, -0, -0 99 | 0, 0, -18.6825, -64.4406, 0.00856321, 0.00423605, -0.804094, 0.594426, 20.5327, 0, 0, -0.0348974, 0.0558792, -0 100 | 0, 0, -18.9175, -65.2314, 0.00706588, 0.00238262, -0.800901, 0.59875, 20.5327, 0, 0, 0.00353149, 0.0558792, -0 101 | 0, 0, -19.0912, -65.8277, 0.00656375, 0.001201, -0.798324, 0.602192, 20.5327, 0, 0, 0.0199284, 0.0558792, -0 102 | 0, 0, -19.263, -66.4271, 0.00667238, 0.00078171, -0.796006, 0.605251, 20.7793, 0, 0, 0.0385657, 0.0248728, -0 103 | 0, 0, -19.5478, -67.4329, 0.00853417, 0.00124609, -0.79339, 0.608652, 20.7793, 0, 0, 0.064083, 0.0248728, -0 104 | 0, 0, -19.7751, -68.2429, 0.0101815, 0.00111966, -0.791881, 0.610589, 21.0503, 0, 0, 0.0928121, -0, -0 105 | 0, 0, -20.0011, -69.058, 0.0118445, 0.000786476, -0.790725, 0.612057, 21.0503, 0, 0, 0.0640239, -0, -0 106 | 0, 0, -20.2256, -69.8785, 0.0133109, 0.000458895, -0.789818, 0.613196, 21.0503, 0, 0, 0.0736877, -0, -0 107 | 0, 0, -20.393, -70.4976, 0.0140716, 0.000275481, -0.789276, 0.613878, 21.3367, 0, 0, 0.0367681, -0, -0 108 | 0, 0, -20.6706, -71.5364, 0.0145877, -0.000847659, -0.788478, 0.614889, 21.3367, 0, 0, 0.0433465, -0, -0 109 | 0, 0, -20.8362, -72.1634, 0.0152696, -0.00103807, -0.788209, 0.615217, 21.6241, 0, 0, 0.0316567, -0, -0 110 | 0, 0, -21.0563, -73.0043, 0.015979, -0.00175073, -0.787906, 0.615585, 21.6241, 0, 0, 0.02918, -0, -0 111 | 0, 0, -21.2208, -73.6389, 0.016611, -0.00182544, -0.787769, 0.615744, 21.9208, 0, 0, 0.0396056, -0, -0 112 | 0, 0, -21.3853, -74.2767, 0.0166539, -0.00245699, -0.787606, 0.61595, 21.9208, 0, 0, 0.0232541, -0, -0 113 | 0, 0, -21.5492, -74.9175, 0.0167653, -0.0030192, -0.787371, 0.616244, 21.9208, 0, 0, 0.0185826, -0, -0 114 | 0, 0, -21.7089, -75.5636, 0.0158335, -0.00415827, -0.786105, 0.617876, 22.2426, 0, 0, -0.0333091, 0.0516679, -0 115 | 0, 0, -21.9149, -76.4314, 0.0144106, -0.00547118, -0.783045, 0.621774, 22.2426, 0, 0, -0.0394987, 0.0516679, -0 116 | 0, 0, -22.111, -77.306, 0.0133427, -0.00690522, -0.778301, 0.627711, 22.2426, 0, 0, 0.0103011, 0.0516679, -0 117 | 0, 0, -22.2998, -78.1857, 0.0133422, -0.00700151, -0.773381, 0.633762, 22.5103, 0, 0, -0.0043709, 0.0585019, -0 118 | 0, 0, -22.4375, -78.8495, 0.0137686, -0.00645564, -0.769946, 0.637928, 22.5103, 0, 0, -0.0300772, 0.0585019, -0 119 | 0, 0, -22.6627, -79.9634, 0.0140799, -0.0055282, -0.765365, 0.643419, 22.798, 0, 0, -0.000599766, -0, -0 120 | 0, 0, -22.7956, -80.636, 0.0141288, -0.0057302, -0.763162, 0.646028, 22.798, 0, 0, 0.0166811, -0, -0 121 | 0, 0, -22.9261, -81.3118, 0.0139973, -0.00600178, -0.761324, 0.648192, 22.798, 0, 0, 0.000506847, -0, -0 122 | 0, 0, -23.1368, -82.4453, 0.0140986, -0.00617698, -0.759146, 0.650739, 23.0623, 0, 0, 0.0165872, -0, -0 123 | 0, 0, -23.2596, -83.1296, 0.0143663, -0.0062724, -0.758233, 0.651795, 23.0623, 0, 0, 0.0181989, -0, -0 124 | 0, 0, -23.4586, -84.2771, 0.014807, -0.00639865, -0.757146, 0.653046, 23.3568, 0, 0, 0.0160639, -0, -0 125 | 0, 0, -23.5752, -84.9698, 0.0150728, -0.0066097, -0.756671, 0.653588, 23.3568, 0, 0, 0.0260967, -0, -0 126 | 0, 0, -23.728, -85.8982, 0.0154427, -0.00703048, -0.756171, 0.654153, 23.3568, 0, 0, 0.0281296, -0, -0 127 | 0, 0, -23.8781, -86.8316, 0.0157534, -0.00715947, -0.755772, 0.654607, 23.6243, 0, 0, 0.0128999, -0, -0 128 | 0, 0, -24.0259, -87.7705, 0.0159297, -0.0071921, -0.755415, 0.655013, 23.6243, 0, 0, 0.00126922, -0, -0 129 | 0, 0, -24.1719, -88.7151, 0.0157257, -0.00752376, -0.755067, 0.655416, 23.9163, 0, 0, -0.00169927, -0, -0 130 | 0, 0, -24.281, -89.4271, 0.0153179, -0.00771731, -0.754932, 0.655578, 23.9163, 0, 0, -0.0158436, -0, -0 131 | 0, 0, -24.4282, -90.3803, 0.0146323, -0.00777078, -0.755457, 0.654989, 23.9163, 0, 0, -0.034326, -0, -0 132 | 0, 0, -24.5811, -91.3373, 0.0142013, -0.00733575, -0.757495, 0.652646, 24.1877, 0, 0, -0.0330012, -0.0573976, -0 133 | 0, 0, -24.7021, -92.0569, 0.0139059, -0.00686842, -0.760396, 0.649275, 24.1877, 0, 0, -0.0375502, -0.0573976, -0 134 | 0, 0, -24.8716, -93.0189, 0.0135863, -0.00628041, -0.765602, 0.64314, 24.466, 0, 0, -0.0291523, -0.0644775, -0 135 | 0, 0, -25.0473, -93.9846, 0.0133988, -0.00584548, -0.771025, 0.636637, 24.466, 0, 0, -0.0197106, -0.0644775, -0 136 | 0, 0, -25.228, -94.9543, 0.0132821, -0.00552863, -0.775734, 0.630897, 24.466, 0, 0, -0.0137771, -0.0644775, -0 137 | 0, 0, -25.4138, -95.9279, 0.0131735, -0.00526245, -0.779338, 0.626443, 24.7672, 0, 0, -0.0145727, -0, -0 138 | 0, 0, -25.5574, -96.6604, 0.013058, -0.00496998, -0.781406, 0.623867, 24.7672, 0, 0, -0.0217889, -0, -0 139 | 0, 0, -25.7551, -97.6399, 0.0128912, -0.00448983, -0.7835, 0.621242, 25.0296, 0, 0, -0.0211532, -0, -0 140 | 0, 0, -25.96, -98.6228, 0.0125404, -0.0039864, -0.785089, 0.619243, 25.0296, 0, 0, -0.0317785, -0, -0 141 | 0, 0, -26.1184, -99.3622, 0.0122694, -0.00363233, -0.786029, 0.618057, 25.0296, 0, 0, -0.0279044, -0, -0 142 | 0, 0, -26.3355, -100.351, 0.01197, -0.00323553, -0.787025, 0.616797, 25.2974, 0, 0, -0.0223555, -0, -0 143 | 0, 0, -26.6157, -101.592, 0.0116853, -0.00285993, -0.787957, 0.615613, 25.2974, 0, 0, -0.0159433, -0, -0 144 | 0, 0, -26.7882, -102.339, 0.0115579, -0.00269314, -0.788391, 0.61506, 25.5688, 0, 0, -0.0127516, -0, -0 145 | 0, 0, -26.9048, -102.839, 0.011488, -0.00260104, -0.788639, 0.614744, 25.5688, 0, 0, -0.010947, -0, -0 146 | 0, 0, -27.0226, -103.339, 0.0114235, -0.0024722, -0.78885, 0.614475, 25.5688, 0, 0, -0.0151394, -0, -0 147 | 0, 0, -27.2616, -104.343, 0.0112994, -0.00216003, -0.789173, 0.614063, 25.8411, 0, 0, -0.012835, -0, -0 148 | 0, 0, -27.4437, -105.098, 0.0112258, -0.00197923, -0.789357, 0.613828, 25.8411, 0, 0, -0.0107598, -0, -0 149 | 0, 0, -27.7518, -106.362, 0.011055, -0.00169179, -0.789585, 0.61354, 25.8411, 0, 0, -0.0136122, -0, -0 150 | 0, 0, -27.9392, -107.124, 0.0109915, -0.00153989, -0.789697, 0.613396, 26.15, 0, 0, -0.00848083, -0, -0 151 | 0, 0, -28.1284, -107.888, 0.0109555, -0.00140503, -0.789796, 0.613271, 26.15, 0, 0, -0.00711682, -0, -0 152 | 0, 0, -28.2554, -108.399, 0.0109366, -0.00132336, -0.789854, 0.613196, 26.15, 0, 0, -0.00623583, -0, -0 153 | 0, 0, -28.4472, -109.167, 0.0109206, -0.00128253, -0.789932, 0.613095, 26.4336, 0, 0, -0.00153861, -0, -0 154 | 0, 0, -28.6405, -109.938, 0.0109129, -0.00127417, -0.789995, 0.613014, 26.4336, 0, 0, -0.000560297, -0, -0 155 | 0, 0, -28.7701, -110.453, 0.0109097, -0.00127268, -0.790029, 0.612971, 26.4336, 0, 0, -0.000326474, -0, -0 156 | 0, 0, -28.9656, -111.229, 0.0109145, -0.00135799, -0.790081, 0.612904, 26.4336, 0, 0, 0.00640547, -0, -0 157 | 0, 0, -29.1624, -112.007, 0.0108633, -0.00133831, -0.790113, 0.612863, 26.7227, 0, 0, -0.0106907, -0, -0 158 | 0, 0, -29.4265, -113.048, 0.0106981, -0.00104425, -0.790089, 0.612898, 26.7227, 0, 0, -0.0167342, -0, -0 159 | 0, 0, -29.6925, -114.094, 0.010812, -0.000827081, -0.790023, 0.612981, 27.0267, 0, 0, 0.00981659, -0, -0 160 | 0, 0, -29.8931, -114.881, 0.0108755, -0.000586132, -0.789975, 0.613043, 27.0267, 0, 0, -0.0108451, -0, -0 161 | 0, 0, -30.0946, -115.671, 0.010853, -0.00028213, -0.789945, 0.613082, 27.0267, 0, 0, -0.0143292, -0, -0 162 | 0, 0, -30.2295, -116.199, 0.010831, -9.69614e-05, -0.789936, 0.613094, 27.0267, 0, 0, -0.0114708, -0, -0 163 | 0, 0, -30.3647, -116.729, 0.0108208, -3.61238e-05, -0.789933, 0.613098, 27.3093, 0, 0, -0.00302991, -0, -0 164 | 0, 0, -30.6363, -117.791, 0.0108169, -2.5004e-05, -0.789929, 0.613103, 27.3093, 0, 0, 8.24578e-05, -0, -0 165 | 0, 0, -30.7726, -118.324, 0.0108162, -2.82712e-05, -0.789925, 0.613107, 27.3093, 0, 0, 0.000151096, -0, -0 166 | 0, 0, -30.9778, -119.126, 0.0108431, -0.000305871, -0.789955, 0.613069, 27.5951, 0, 0, 0.0173333, -0, -0 167 | 0, 0, -31.1151, -119.662, 0.0107923, -0.000540075, -0.789988, 0.613027, 27.5951, 0, 0, 0.00606423, -0, -0 168 | 0, 0, -31.46, -121.008, 0.0103923, -0.000973864, -0.790059, 0.612942, 27.5951, 0, 0, -0.0040372, -0, -0 169 | 0, 0, -31.7375, -122.09, 0.0103986, -0.0014033, -0.790087, 0.612905, 27.9122, 0, 0, 0.0148012, -0, -0 170 | 0, 0, -32.0164, -123.176, 0.0104277, -0.00152534, -0.790078, 0.612916, 27.9122, 0, 0, 0.00222768, -0, -0 171 | 0, 0, -32.1564, -123.722, 0.0104307, -0.00154506, -0.790069, 0.612927, 27.9122, 0, 0, 0.00127205, -0, -0 172 | 0, 0, -32.2967, -124.268, 0.0104305, -0.00154925, -0.79006, 0.612939, 28.1893, 0, 0, -5.30803e-05, -0, -0 173 | 0, 0, -32.5078, -125.09, 0.0104261, -0.00153766, -0.790045, 0.612958, 28.1893, 0, 0, -0.000914254, -0, -0 174 | 0, 0, -32.7905, -126.189, 0.0104175, -0.00151958, -0.790026, 0.612983, 28.1893, 0, 0, -0.0002917, -0, -0 175 | 0, 0, -33.0745, -127.294, 0.0104467, -0.00182211, -0.790053, 0.612947, 28.4717, 0, 0, 0.0140858, -0, -0 176 | 0, 0, -33.3599, -128.404, 0.0105376, -0.00230971, -0.790144, 0.612826, 28.4717, 0, 0, 0.019512, -0, -0 177 | 0, 0, -33.5749, -129.239, 0.0106266, -0.00270098, -0.790238, 0.612702, 28.788, 0, 0, 0.0183652, -0, -0 178 | 0, 0, -33.7186, -129.797, 0.0106239, -0.00294099, -0.790283, 0.612643, 28.788, 0, 0, 0.0136452, -0, -0 179 | 0, 0, -33.935, -130.637, 0.0106437, -0.00332954, -0.790323, 0.612589, 28.788, 0, 0, 0.0178469, -0, -0 180 | 0, 0, -34.1522, -131.48, 0.0106822, -0.00373143, -0.790329, 0.612579, 28.788, 0, 0, 0.0186086, -0, -0 181 | 0, 0, -34.2974, -132.043, 0.0106964, -0.00386688, -0.790317, 0.612593, 29.0982, 0, 0, 0.00601287, -0, -0 182 | 0, 0, -34.5158, -132.89, 0.010692, -0.00388323, -0.790293, 0.612624, 29.0982, 0, 0, -0.000997078, -0, -0 183 | 0, 0, -34.735, -133.74, 0.0106776, -0.00385326, -0.790268, 0.612656, 29.0982, 0, 0, -0.00222823, -0, -0 184 | 0, 0, -34.9549, -134.592, 0.0106372, -0.00358899, -0.790217, 0.612724, 29.3669, 0, 0, -0.0185705, -0, -0 185 | 0, 0, -35.1018, -135.162, 0.0105621, -0.00329775, -0.790157, 0.612805, 29.3669, 0, 0, -0.0265378, -0, -0 186 | 0, 0, -35.3228, -136.019, 0.0102189, -0.00289093, -0.790023, 0.612985, 29.3669, 0, 0, -0.0367703, -0, -0 187 | 0, 0, -35.5444, -136.878, 0.00988638, -0.00251446, -0.789861, 0.613202, 29.3669, 0, 0, -0.0293005, -0, -0 188 | 0, 0, -35.7665, -137.74, 0.00964088, -0.00215798, -0.789737, 0.613366, 29.6763, 0, 0, -0.0276337, -0, -0 189 | 0, 0, -35.9148, -138.316, 0.0095521, -0.00180239, -0.789681, 0.613441, 29.6763, 0, 0, -0.0290607, -0, -0 190 | 0, 0, -36.1378, -139.183, 0.00946127, -0.0011992, -0.789635, 0.613502, 29.6763, 0, 0, -0.0285728, -0, -0 191 | 0, 0, -36.3613, -140.052, 0.00942303, -0.00100684, -0.789618, 0.613526, 29.9574, 0, 0, -0.00482805, -0, -0 192 | 0, 0, -36.5106, -140.634, 0.00941551, -0.000983438, -0.789608, 0.613539, 29.9574, 0, 0, -0.00142796, -0, -0 193 | 0, 0, -36.735, -141.508, 0.00940017, -0.00087912, -0.789578, 0.613577, 29.9574, 0, 0, -0.00724394, -0, -0 194 | 0, 0, -36.96, -142.385, 0.00914908, -0.000845563, -0.789523, 0.613653, 30.2627, 0, 0, -0.0190599, -0, -0 195 | 0, 0, -37.261, -143.559, 0.00847819, -0.00105283, -0.789417, 0.613797, 30.2627, 0, 0, -0.0166369, -0, -0 196 | 0, 0, -37.5629, -144.738, 0.0078827, -0.00122284, -0.789329, 0.613919, 30.2627, 0, 0, -0.016669, -0, -0 197 | 0, 0, -37.8658, -145.922, 0.00776081, -0.000964976, -0.789274, 0.613992, 30.5698, 0, 0, -0.0116459, -0, -0 198 | 0, 0, -38.0176, -146.516, 0.00774532, -0.000895676, -0.789255, 0.614016, 30.5698, 0, 0, -0.00412359, -0, -0 199 | 0, 0, -38.1696, -147.111, 0.00773937, -0.00086812, -0.789237, 0.614039, 30.5698, 0, 0, -0.00167405, -0, -0 200 | 0, 0, -38.3981, -148.006, 0.00774419, -0.000941089, -0.789222, 0.614059, 30.8572, 0, 0, 0.00808607, -0, -0 201 | 0, 0, -38.7038, -149.204, 0.00767924, -0.00117203, -0.789229, 0.61405, 30.8572, 0, 0, -0.00531473, -0, -0 202 | 0, 0, -39.0104, -150.406, 0.00747978, -0.00120193, -0.789207, 0.61408, 30.8572, 0, 0, 0.000490564, -0, -0 203 | 0, 0, -39.3181, -151.613, 0.0076341, -0.00130292, -0.789168, 0.614129, 31.1602, 0, 0, 0.00298101, -0, -0 204 | 0, 0, -39.5496, -152.522, 0.00764, -0.0011786, -0.789135, 0.614171, 31.1602, 0, 0, -0.00680882, -0, -0 205 | 0, 0, -39.8591, -153.737, 0.00762143, -0.00109184, -0.789103, 0.614212, 31.4362, 0, 0, -0.00203469, -0, -0 206 | 0, 0, -40.0919, -154.652, 0.00760919, -0.00106, -0.789081, 0.614241, 31.4362, 0, 0, -0.00221997, -0, -0 207 | 0, 0, -40.3253, -155.569, 0.00758378, -0.00104595, -0.789059, 0.61427, 31.4362, 0, 0, -0.000683522, -0, -0 208 | 0, 0, -40.4813, -156.183, 0.00752517, -0.00116535, -0.789055, 0.614276, 31.4362, 0, 0, 0.00349178, -0, -0 209 | 0, 0, -40.7158, -157.105, 0.00737225, -0.00139315, -0.789058, 0.614273, 31.7226, 0, 0, -0.00264866, -0, -0 210 | 0, 0, -41.0295, -158.339, 0.00704157, -0.00163633, -0.789058, 0.614277, 31.7226, 0, 0, -0.00115387, -0, -0 211 | 0, 0, -41.3442, -159.577, 0.00700224, -0.001826, -0.789043, 0.614295, 31.9981, 0, 0, 0.00336795, -0, -0 212 | 0, 0, -41.6601, -160.821, 0.00698821, -0.00182327, -0.789017, 0.614329, 31.9981, 0, 0, -0.00175369, -0, -0 213 | 0, 0, -41.8184, -161.444, 0.0069715, -0.00173534, -0.788996, 0.614357, 31.9981, 0, 0, -0.0086689, -0, -0 214 | 0, 0, -41.977, -162.069, 0.00694552, -0.00158328, -0.788964, 0.614399, 31.9981, 0, 0, -0.0119595, -0, -0 215 | 0, 0, -42.295, -163.322, 0.00707793, -0.00158523, -0.788933, 0.614437, 32.3, 0, 0, 0.0114183, -0, -0 216 | 0, 0, -42.5343, -164.264, 0.00699022, -0.00160324, -0.788925, 0.614447, 32.3, 0, 0, -0.0118004, -0, -0 217 | 0, 0, -42.6942, -164.895, 0.00682475, -0.00158045, -0.788925, 0.614449, 32.3, 0, 0, -0.013756, -0, -0 218 | 0, 0, -42.8542, -165.526, 0.00677067, -0.00166153, -0.788923, 0.614453, 32.558, 0, 0, 0.00406688, -0, -0 219 | 0, 0, -43.0941, -166.471, 0.00682686, -0.00175391, -0.788895, 0.614488, 32.558, 0, 0, 0.00435625, -0, -0 220 | 0, 0, -43.4127, -167.728, 0.00694286, -0.00162284, -0.788856, 0.614537, 32.558, 0, 0, -0.00101362, -0, -0 221 | 0, 0, -43.6507, -168.667, 0.00699703, -0.00141215, -0.788807, 0.6146, 32.2909, 0, 0, -0.00684462, -0, -0 222 | 0, 0, -43.8883, -169.604, 0.00713567, -0.00140656, -0.788772, 0.614644, 32.2909, 0, 0, 0.0175353, -0, -0 223 | 0, 0, -44.2053, -170.855, 0.00714721, -0.00166385, -0.788808, 0.614595, 32.2909, 0, 0, -0.00706815, -0, -0 224 | 0, 0, -44.6028, -172.425, 0.00675868, -0.00205881, -0.788773, 0.614644, 32.3231, 0, 0, 0.0128237, -0, -0 225 | 0, 0, -44.8421, -173.37, 0.00671327, -0.00232649, -0.788684, 0.614758, 32.3231, 0, 0, 0.00218463, -0, -0 226 | 0, 0, -45.0815, -174.315, 0.00670903, -0.00229551, -0.788809, 0.614598, 32.4824, 0, 0, -0.00224286, -0, -0 227 | 0, 0, -45.2406, -174.943, 0.00674751, -0.00213203, -0.789034, 0.614309, 32.4824, 0, 0, -0.00818424, -0, -0 228 | 0, 0, -45.4776, -175.879, 0.00689304, -0.00173125, -0.789491, 0.61372, 32.4824, 0, 0, -0.00736621, -0, -0 229 | 0, 0, -45.7125, -176.805, 0.0074188, -0.00112691, -0.789927, 0.613155, 31.6299, 0, 0, 0.00673126, -0, -0 230 | 0, 0, -45.8677, -177.417, 0.0078226, -0.0006897, -0.790173, 0.612834, 31.6299, 0, 0, 0.00308839, -0, -0 231 | 0, 0, -46.0987, -178.327, 0.00834759, -1.94106e-05, -0.790456, 0.612462, 31.6299, 0, 0, -0.000660184, -0, -0 232 | 0, 0, -46.3278, -179.228, 0.00855356, 0.000318882, -0.790616, 0.612252, 31.6299, 0, 0, -0.00279617, -0, -0 233 | 0, 0, -46.6311, -180.417, 0.00865889, 0.000319019, -0.790701, 0.612141, 30.657, 0, 0, 0.00872323, -0, -0 234 | 0, 0, -46.932, -181.595, 0.00869555, 0.000471636, -0.790787, 0.61203, 30.657, 0, 0, -0.0057176, -0, -0 235 | 0, 0, -47.1562, -182.47, 0.00890423, 0.000651092, -0.790827, 0.611974, 29.9485, 0, 0, 0.00897259, -0, -0 236 | 0, 0, -47.379, -183.338, 0.00927867, 0.000767438, -0.790841, 0.611951, 29.9485, 0, 0, 0.0137871, -0, -0 237 | 0, 0, -47.6004, -184.199, 0.00939418, 0.000984512, -0.790882, 0.611896, 29.9485, 0, 0, -0.00480857, -0, -0 238 | 0, 0, -47.7472, -184.769, 0.00942651, 0.0010018, -0.790899, 0.611874, 29.9485, 0, 0, 0.00462536, -0, -0 239 | 0, 0, -48.0388, -185.9, 0.00949745, 0.00079852, -0.790907, 0.611862, 29.2424, 0, 0, 0.00725014, -0, -0 240 | 0, 0, -48.3277, -187.018, 0.00935912, 0.000414679, -0.790916, 0.611854, 29.2424, 0, 0, 0.00353386, -0, -0 241 | 0, 0, -48.6137, -188.124, 0.0091607, -5.87746e-05, -0.790921, 0.61185, 28.507, 0, 0, 0.00922941, -0, -0 242 | 0, 0, -48.8263, -188.944, 0.00899505, -0.000353823, -0.790931, 0.611839, 28.507, 0, 0, 0.00643953, -0, -0 243 | 0, 0, -49.177, -190.297, 0.00902904, -0.00054616, -0.790947, 0.611818, 27.7801, 0, 0, 0.00276304, -0, -0 244 | 0, 0, -49.3852, -191.099, 0.00904715, -0.000531295, -0.790965, 0.611794, 27.7801, 0, 0, -0.000862452, -0, -0 245 | 0, 0, -49.5231, -191.63, 0.00905481, -0.000486807, -0.790979, 0.611776, 27.7801, 0, 0, -0.00291883, -0, -0 246 | 0, 0, -49.6603, -192.158, 0.00908863, -0.000263851, -0.791007, 0.61174, 27.7801, 0, 0, -0.0125609, -0, -0 247 | 0, 0, -49.9325, -193.205, 0.00939442, 0.000282224, -0.791042, 0.611689, 27.0951, 0, 0, 0.00451447, -0, -0 248 | 0, 0, -50.1347, -193.983, 0.00978636, 0.00064356, -0.791045, 0.61168, 27.0951, 0, 0, 0.00633863, -0, -0 249 | 0, 0, -50.4019, -195.011, 0.0100002, 0.00113647, -0.791068, 0.611646, 26.421, 0, 0, -0.0147149, -0, -0 250 | 0, 0, -50.6003, -195.773, 0.00999013, 0.00132184, -0.791075, 0.611636, 26.421, 0, 0, -0.00345786, -0, -0 251 | 0, 0, -50.8623, -196.78, 0.00998904, 0.00135505, -0.791064, 0.61165, 26.421, 0, 0, -0.00121286, -0, -0 252 | 0, 0, -51.1855, -198.021, 0.00978074, 0.00119713, -0.791051, 0.611671, 25.6511, 0, 0, -0.0046709, -0, -0 253 | 0, 0, -51.3771, -198.757, 0.0094973, 0.000953871, -0.791043, 0.611686, 25.6511, 0, 0, -0.00500987, -0, -0 254 | 0, 0, -51.5038, -199.243, 0.00928535, 0.000792668, -0.79104, 0.611693, 25.6511, 0, 0, -0.00748475, -0, -0 255 | 0, 0, -51.6925, -199.967, 0.00897776, 0.000575064, -0.791037, 0.611702, 24.9509, 0, 0, -0.00582797, -0, -0 256 | 0, 0, -51.8794, -200.685, 0.00891897, 0.000516819, -0.791031, 0.611711, 24.9509, 0, 0, 0.000315948, -0, -0 257 | 0, 0, -52.0646, -201.395, 0.0089248, 0.000500588, -0.791023, 0.611721, 24.9509, 0, 0, 0.0012051, -0, -0 258 | 0, 0, -52.3692, -202.564, 0.00899532, 0.00014599, -0.790978, 0.611779, 24.2425, 0, 0, 0.0204921, -0, -0 259 | 0, 0, -52.6095, -203.485, 0.0090527, -0.000231511, -0.790944, 0.611822, 24.2425, 0, 0, 0.0070523, -0, -0 260 | 0, 0, -52.8469, -204.396, 0.00904534, -0.000341939, -0.790946, 0.611819, 23.4778, 0, 0, 0.00118405, -0, -0 261 | 0, 0, -53.0228, -205.07, 0.00926075, -0.000486584, -0.790925, 0.611843, 23.4778, 0, 0, 0.0235098, -0, -0 262 | 0, 0, -53.1969, -205.738, 0.00955116, -0.000666809, -0.790898, 0.611873, 23.4778, 0, 0, 0.0155117, -0, -0 263 | 0, 0, -53.4835, -206.837, 0.00962997, -0.000781857, -0.790907, 0.61186, 22.791, 0, 0, 0.00215867, -0, -0 264 | 0, 0, -53.7093, -207.703, 0.00964152, -0.000810444, -0.79092, 0.611844, 22.791, 0, 0, 0.00234652, -0, -0 265 | 0, 0, -53.8766, -208.345, 0.00965375, -0.000886082, -0.790921, 0.611841, 22.0338, 0, 0, 0.00407521, -0, -0 266 | 0, 0, -54.1517, -209.4, 0.0097066, -0.000907078, -0.790929, 0.61183, 22.0338, 0, 0, 0.00124384, -0, -0 267 | 0, 0, -54.3145, -210.024, 0.00974782, -0.000881884, -0.790935, 0.611822, 22.0338, 0, 0, 0.00113817, -0, -0 268 | 0, 0, -54.582, -211.05, 0.00990764, -0.000871823, -0.790932, 0.611824, 21.2861, 0, 0, 0.00622882, -0, -0 269 | 0, 0, -54.7402, -211.657, 0.00995726, -0.00087683, -0.790932, 0.611823, 21.2861, 0, 0, 0.00136978, -0, -0 270 | 0, 0, -54.8968, -212.258, 0.00996356, -0.000881565, -0.790934, 0.61182, 20.6163, 0, 0, 0.000339931, -0, -0 271 | 0, 0, -55.154, -213.245, 0.0099673, -0.000886494, -0.790937, 0.611816, 20.6163, 0, 0, -0.000305092, -0, -0 272 | 0, 0, -55.306, -213.828, 0.00996169, -0.00083932, -0.790942, 0.61181, 20.6163, 0, 0, -0.00271189, -0, -0 273 | 0, 0, -55.4564, -214.405, 0.0100354, -0.000922455, -0.790925, 0.61183, 19.9477, 0, 0, 0.0202435, -0, -0 274 | 0, 0, -55.7033, -215.352, 0.0105172, -0.00170655, -0.790813, 0.611965, 19.9477, 0, 0, 0.0375295, -0, -0 275 | 0, 0, -55.8492, -215.911, 0.0105857, -0.0021253, -0.790782, 0.612003, 19.1883, 0, 0, 0.00583459, -0, -0 276 | 0, 0, -56.0885, -216.828, 0.0100536, -0.00256173, -0.790817, 0.611964, 19.1883, 0, 0, -0.00439682, -0, -0 277 | 0, 0, -56.2297, -217.37, 0.010015, -0.00309749, -0.790792, 0.611995, 18.5133, 0, 0, 0.0259779, -0, -0 278 | 0, 0, -56.4155, -218.082, 0.0101127, -0.00394588, -0.790751, 0.612041, 18.5133, 0, 0, 0.0306926, -0, -0 279 | 0, 0, -56.5983, -218.783, 0.0101811, -0.00427678, -0.790775, 0.612007, 18.5133, 0, 0, 0.00418645, -0, -0 280 | 0, 0, -56.7334, -219.3, 0.0101916, -0.00429031, -0.790811, 0.61196, 17.8322, 0, 0, 0.000250402, -0, -0 281 | 0, 0, -56.8668, -219.811, 0.0101925, -0.00428248, -0.790841, 0.611922, 17.8322, 0, 0, -0.000436889, -0, -0 282 | 0, 0, -57.0854, -220.649, 0.0101841, -0.00421056, -0.790883, 0.611868, 17.1039, 0, 0, -0.00843461, -0, -0 283 | 0, 0, -57.2569, -221.307, 0.0101198, -0.00374227, -0.790946, 0.611791, 17.1039, 0, 0, -0.0188304, -0, -0 284 | 0, 0, -57.4255, -221.954, 0.0101182, -0.00324342, -0.790987, 0.61174, 17.1039, 0, 0, -0.00363571, -0, -0 285 | 0, 0, -57.5913, -222.589, 0.0106603, -0.00304924, -0.790942, 0.61179, 16.4595, 0, 0, 0.0203706, -0, -0 286 | 0, 0, -57.7542, -223.214, 0.0112833, -0.00291994, -0.790887, 0.611851, 16.4595, 0, 0, 0.0172717, -0, -0 287 | 0, 0, -57.9142, -223.827, 0.0113296, -0.00257692, -0.790905, 0.611829, 15.8093, 0, 0, -0.0158883, -0, -0 288 | 0, 0, -58.11, -224.578, 0.011167, -0.0021314, -0.790933, 0.611797, 15.8093, 0, 0, -0.00755877, -0, -0 289 | 0, 0, -58.3391, -225.456, 0.0111782, -0.00251944, -0.790872, 0.611874, 15.0953, 0, 0, 0.0115717, -0, -0 290 | 0, 0, -58.4883, -226.028, 0.0112156, -0.00281764, -0.790847, 0.611904, 15.0953, 0, 0, 0.00688264, -0, -0 291 | 0, 0, -58.6344, -226.588, 0.0112393, -0.00286503, -0.790863, 0.611884, 14.4324, 0, 0, 0.00142434, -0, -0 292 | 0, 0, -58.8455, -227.397, 0.0113646, -0.00278328, -0.790878, 0.611862, 14.4324, 0, 0, 0.000222471, -0, -0 293 | 0, 0, -59.0174, -228.056, 0.0112193, -0.00290691, -0.790735, 0.612049, 13.6344, 0, 0, -0.00206788, -0, -0 294 | 0, 0, -59.1885, -228.712, 0.0110283, -0.00305528, -0.790622, 0.612198, 13.6344, 0, 0, -0.00250047, -0, -0 295 | 0, 0, -59.3948, -229.505, 0.0107167, -0.00328163, -0.790533, 0.612317, 13.5477, 0, 0, -0.0040703, -0, -0 296 | 0, 0, -59.5342, -230.041, 0.0107249, -0.00335886, -0.790501, 0.612358, 13.5477, 0, 0, 0.00456113, -0, -0 297 | 0, 0, -59.6747, -230.581, 0.0108366, -0.00338987, -0.790487, 0.612373, 13.9216, 0, 0, 0.00562978, -0, -0 298 | 0, 0, -59.8165, -231.127, 0.0109538, -0.00339187, -0.790484, 0.612375, 13.9216, 0, 0, 0.0024511, -0, -0 299 | 0, 0, -59.9595, -231.677, 0.0110051, -0.00334318, -0.790483, 0.612376, 14.2039, 0, 0, 0.000115973, -0, -0 300 | 0, 0, -60.1036, -232.233, 0.0110526, -0.00328837, -0.790486, 0.612372, 14.2039, 0, 0, 0.00069755, -0, -0 301 | 0, 0, -60.249, -232.793, 0.0110112, -0.0034026, -0.790488, 0.61237, 14.5166, 0, 0, 0.00230563, -0, -0 302 | 0, 0, -60.5064, -233.785, 0.0109286, -0.00364825, -0.790475, 0.612387, 14.5166, 0, 0, 0.000942404, -0, -0 303 | 0, 0, -60.7301, -234.647, 0.0108633, -0.00370652, -0.790456, 0.612411, 14.8287, 0, 0, -0.000782868, -0, -0 304 | 0, 0, -60.9946, -235.666, 0.0108034, -0.00374129, -0.790439, 0.612434, 15.1412, 0, 0, -0.000717525, -0, -0 305 | 0, 0, -61.1474, -236.256, 0.0107798, -0.00378695, -0.790434, 0.61244, 15.1412, 0, 0, 0.00189069, -0, -0 306 | 0, 0, -61.379, -237.149, 0.010764, -0.00393713, -0.790447, 0.612424, 15.4237, 0, 0, 0.00283845, -0, -0 307 | 0, 0, -61.5741, -237.901, 0.0108216, -0.00385111, -0.79045, 0.612419, 15.4237, 0, 0, -0.00181177, -0, -0 308 | 0, 0, -61.7316, -238.508, 0.01089, -0.00369596, -0.790441, 0.61243, 15.6978, 0, 0, -0.00210806, -0, -0 309 | 0, 0, -61.8902, -239.12, 0.0110555, -0.00357321, -0.790428, 0.612445, 15.6978, 0, 0, 0.00568198, -0, -0 310 | 0, 0, -62.1305, -240.047, 0.0113911, -0.00343879, -0.790396, 0.61248, 15.9776, 0, 0, 0.00270316, -0, -0 311 | 0, 0, -62.3737, -240.985, 0.0113932, -0.00331434, -0.790367, 0.612519, 15.9776, 0, 0, -0.0034744, -0, -0 312 | 0, 0, -62.5783, -241.775, 0.0113673, -0.00324793, -0.790355, 0.612535, 16.2594, 0, 0, -0.000981552, -0, -0 313 | 0, 0, -62.8265, -242.733, 0.0113497, -0.00324991, -0.790346, 0.612547, 16.5409, 0, 0, -0.000329243, -0, -0 314 | 0, 0, -63.0354, -243.539, 0.0113377, -0.00325207, -0.790338, 0.612558, 16.5409, 0, 0, -0.000348689, -0, -0 315 | 0, 0, -63.1616, -244.027, 0.0113328, -0.00326868, -0.790334, 0.612562, 16.8228, 0, 0, 0.000909416, -0, -0 316 | 0, 0, -63.2886, -244.517, 0.0113306, -0.00330021, -0.790334, 0.612563, 16.8228, 0, 0, 0.00123309, -0, -0 317 | 0, 0, -63.4163, -245.01, 0.011328, -0.00333355, -0.790335, 0.612561, 16.8228, 0, 0, 0.00112949, -0, -0 318 | 0, 0, -63.6307, -245.838, 0.0112491, -0.00346703, -0.790343, 0.612551, 17.1384, 0, 0, 0.000659251, -0, -0 319 | 0, 0, -63.7603, -246.339, 0.0111927, -0.00355535, -0.790351, 0.612541, 17.1384, 0, 0, 0.000657035, -0, -0 320 | 0, 0, -63.9778, -247.179, 0.0110902, -0.00369966, -0.79036, 0.612531, 17.4196, 0, 0, -3.5635e-05, -0, -0 321 | 0, 0, -64.1093, -247.686, 0.0110258, -0.00378108, -0.790361, 0.612531, 17.4196, 0, 0, -1.78381e-05, -0, -0 322 | 0, 0, -64.2857, -248.367, 0.0110113, -0.00384791, -0.790357, 0.612535, 17.4196, 0, 0, 0.00181618, -0, -0 323 | 0, 0, -64.5079, -249.225, 0.0110167, -0.00391257, -0.790344, 0.612552, 17.7311, 0, 0, 0.00100225, -0, -0 324 | 0, 0, -64.6422, -249.744, 0.011016, -0.00391625, -0.790332, 0.612568, 17.7311, 0, 0, -0.000141308, -0, -0 325 | 0, 0, -64.8677, -250.615, 0.0110096, -0.00391096, -0.790306, 0.612601, 18.02, 0, 0, -0.000341381, -0, -0 326 | 0, 0, -65.0039, -251.141, 0.0110036, -0.00390906, -0.790285, 0.612628, 18.02, 0, 0, -0.0004189, -0, -0 327 | 0, 0, -65.1409, -251.67, 0.0109921, -0.00387367, -0.790255, 0.612667, 18.02, 0, 0, -0.00391938, -0, -0 328 | 0, 0, -65.3248, -252.381, 0.0109594, -0.00372806, -0.790182, 0.612762, 18.3322, 0, 0, -0.00616733, -0, -0 329 | 0, 0, -65.5101, -253.097, 0.0110256, -0.00351998, -0.790076, 0.6129, 18.3322, 0, 0, -0.00060408, -0, -0 330 | 0, 0, -65.65, -253.639, 0.0112171, -0.00329177, -0.789974, 0.613029, 18.3322, 0, 0, 0.00116383, -0, -0 331 | 0, 0, -65.8855, -254.551, 0.0114811, -0.0029207, -0.789746, 0.61332, 18.6934, 0, 0, -0.00323997, -0, -0 332 | 0, 0, -66.0282, -255.105, 0.011565, -0.00271255, -0.789586, 0.613525, 18.6934, 0, 0, -0.00422652, -0, -0 333 | 0, 0, -66.2688, -256.04, 0.0115393, -0.00254166, -0.789392, 0.613775, 19.2536, 0, 0, -0.00548995, -0, -0 334 | 0, 0, -66.4633, -256.797, 0.0114454, -0.00248829, -0.789545, 0.613581, 19.2536, 0, 0, -0.00521638, -0, -0 335 | 0, 0, -66.6098, -257.367, 0.011445, -0.00242525, -0.789835, 0.613207, 19.6355, 0, 0, -0.00217978, -0, -0 336 | 0, 0, -66.8054, -258.128, 0.0114893, -0.00231117, -0.790276, 0.612639, 19.6355, 0, 0, -0.00193549, -0, -0 337 | 0, 0, -67.0011, -258.889, 0.0115389, -0.00218367, -0.790669, 0.612132, 19.6265, 0, 0, -0.00218089, -0, -0 338 | 0, 0, -67.148, -259.458, 0.0115734, -0.00209227, -0.790914, 0.611814, 19.6265, 0, 0, -0.00183377, -0, -0 339 | 0, 0, -67.3931, -260.407, 0.011636, -0.00196492, -0.791231, 0.611403, 19.6265, 0, 0, -0.00104015, -0, -0 340 | 0, 0, -67.5404, -260.975, 0.0117823, -0.0018786, -0.791372, 0.611218, 19.5656, 0, 0, 0.00927993, -0, -0 341 | 0, 0, -67.7861, -261.92, 0.0124135, -0.00166278, -0.791538, 0.610992, 19.5656, 0, 0, 0.0160951, -0, -0 342 | 0, 0, -67.9337, -262.487, 0.0128093, -0.00147317, -0.791609, 0.610892, 19.5015, 0, 0, 0.0103888, -0, -0 343 | 0, 0, -68.0813, -263.052, 0.0131912, -0.00119674, -0.791665, 0.610812, 19.5015, 0, 0, 0.008521, -0, -0 344 | 0, 0, -68.3276, -263.993, 0.013663, -0.00102541, -0.791737, 0.610708, 19.5015, 0, 0, 0.0123377, -0, -0 345 | 0, 0, -68.4754, -264.557, 0.0138622, -0.00108514, -0.791773, 0.610657, 19.4379, 0, 0, 0.013114, -0, -0 346 | 0, 0, -68.7219, -265.495, 0.0140096, -0.00114292, -0.79182, 0.610593, 19.4379, 0, 0, 0.00199, -0, -0 347 | 0, 0, -68.8697, -266.057, 0.0140274, -0.00115382, -0.79184, 0.610567, 19.3668, 0, 0, 0.00123375, -0, -0 348 | 0, 0, -69.0667, -266.805, 0.0140466, -0.00116981, -0.791857, 0.610543, 19.3668, 0, 0, 0.00126856, -0, -0 349 | 0, 0, -69.2636, -267.552, 0.0139102, -0.00112996, -0.79187, 0.61053, 19.3028, 0, 0, -0.0182233, -0, -0 350 | 0, 0, -69.4603, -268.299, 0.01343, -0.000952678, -0.79188, 0.610528, 19.3028, 0, 0, -0.0259776, -0, -0 351 | 0, 0, -69.6567, -269.044, 0.0131602, -0.00089876, -0.79188, 0.610534, 19.3028, 0, 0, 0.00268978, -0, -0 352 | 0, 0, -69.8039, -269.602, 0.013234, -0.00102809, -0.791871, 0.610544, 19.2411, 0, 0, 0.0108404, -0, -0 353 | 0, 0, -70, -270.345, 0.0133412, -0.000896475, -0.791859, 0.610558, 19.2411, 0, 0, -0.0104447, -0, -0 354 | 0, 0, -70.1958, -271.087, 0.0133906, -0.000321827, -0.791847, 0.610572, 19.1786, 0, 0, -0.0168456, -0, -0 355 | 0, 0, -70.3913, -271.828, 0.0135351, -0.000101966, -0.791831, 0.610591, 19.1786, 0, 0, 0.00901758, -0, -0 356 | 0, 0, -70.5377, -272.383, 0.0137152, -0.00016919, -0.791821, 0.6106, 19.1786, 0, 0, 0.0130979, -0, -0 357 | 0, 0, -70.7816, -273.306, 0.013878, -0.000261359, -0.79181, 0.61061, 19.1107, 0, 0, 0.00278214, -0, -0 358 | 0, 0, -70.9277, -273.86, 0.0138945, -0.000284274, -0.791804, 0.610618, 19.1107, 0, 0, 0.00154139, -0, -0 359 | 0, 0, -71.1708, -274.781, 0.0139129, -0.000316897, -0.791791, 0.610633, 19.0492, 0, 0, 0.00138838, -0, -0 360 | 0, 0, -71.3164, -275.333, 0.0137954, -0.000287273, -0.791785, 0.610645, 19.0492, 0, 0, -0.0177177, -0, -0 361 | 0, 0, -71.5103, -276.067, 0.0132384, -8.41299e-05, -0.791776, 0.610668, 19.0492, 0, 0, -0.0309247, -0, -0 362 | 0, 0, -71.7036, -276.801, 0.012703, 3.45601e-05, -0.791755, 0.610707, 18.9871, 0, 0, -0.0106926, -0, -0 363 | 0, 0, -71.8461, -277.341, 0.0126289, -0.000116414, -0.791689, 0.610794, 18.9871, 0, 0, 0.00576778, -0, -0 364 | 0, 0, -71.9853, -277.869, 0.0126134, -0.000226312, -0.791625, 0.610877, 18.9871, 0, 0, -0.00310406, -0, -0 365 | 0, 0, -72.2573, -278.902, 0.0122447, 0.000321289, -0.791636, 0.61087, 18.0884, 0, 0, -0.0251918, -0, -0 366 | 0, 0, -72.3906, -279.408, 0.012107, 0.000549952, -0.791631, 0.610879, 18.0884, 0, 0, -0.00495197, -0, -0 367 | 0, 0, -72.5657, -280.074, 0.0122954, 0.000563546, -0.791577, 0.610946, 17.3151, 0, 0, 0.0100141, -0, -0 368 | 0, 0, -72.6951, -280.565, 0.0124672, 0.00053323, -0.791541, 0.610988, 17.3151, 0, 0, 0.00972754, -0, -0 369 | 0, 0, -72.8651, -281.211, 0.012557, 0.000534145, -0.791518, 0.611017, 16.5931, 0, 0, 0.00198625, -0, -0 370 | 0, 0, -73.0734, -282.003, 0.0126137, 0.000551228, -0.7915, 0.611038, 16.5931, 0, 0, 0.00114897, -0, -0 371 | 0, 0, -73.277, -282.777, 0.0126547, 0.000565369, -0.791488, 0.611053, 15.8722, 0, 0, 0.000866337, -0, -0 372 | 0, 0, -73.5152, -283.683, 0.0125136, 0.000651461, -0.791494, 0.611049, 15.8722, 0, 0, -0.0084882, -0, -0 373 | 0, 0, -73.7086, -284.419, 0.0123158, 0.00074984, -0.791501, 0.611044, 15.2208, 0, 0, -0.0081564, -0, -0 374 | 0, 0, -73.9347, -285.28, 0.0127449, 0.000714616, -0.79144, 0.611113, 14.5909, 0, 0, 0.016118, -0, -0 375 | 0, 0, -74.1182, -285.979, 0.0131986, 0.000813664, -0.791409, 0.611145, 14.5909, 0, 0, 0.0046151, -0, -0 376 | 0, 0, -74.3676, -286.928, 0.0137281, 0.00151231, -0.791431, 0.611102, 13.951, 0, 0, -0.00118777, -0, -0 377 | 0, 0, -74.5061, -287.456, 0.0139935, 0.0016382, -0.791418, 0.611113, 13.951, 0, 0, 0.011212, -0, -0 378 | 0, 0, -74.6418, -287.972, 0.0142443, 0.00154398, -0.791395, 0.611137, 13.2543, 0, 0, 0.0131949, -0, -0 379 | 0, 0, -74.8074, -288.603, 0.0144951, 0.00142888, -0.791383, 0.611147, 13.2543, 0, 0, 0.00491977, -0, -0 380 | 0, 0, -75.0004, -289.337, 0.0145097, 0.00140767, -0.791399, 0.611126, 12.5526, 0, 0, -2.06379e-05, -0, -0 381 | 0, 0, -75.1562, -289.931, 0.014503, 0.00140309, -0.791406, 0.611117, 12.5526, 0, 0, -0.000117735, -0, -0 382 | 0, 0, -75.3668, -290.733, 0.0144942, 0.00139851, -0.79141, 0.611113, 11.9184, 0, 0, -0.000115108, -0, -0 383 | 0, 0, -75.5965, -291.608, 0.0138011, 0.00167286, -0.79146, 0.611063, 11.2762, 0, 0, -0.0220323, -0, -0 384 | 0, 0, -75.7878, -292.338, 0.0130614, 0.00197376, -0.791476, 0.611057, 10.6437, 0, 0, -0.0239647, -0, -0 385 | 0, 0, -75.9189, -292.839, 0.0123099, 0.00206274, -0.791483, 0.611064, 10.6437, 0, 0, -0.0262197, -0, -0 386 | 0, 0, -76.095, -293.511, 0.0112273, 0.00218478, -0.791489, 0.611076, 9.93075, 0, 0, -0.0316912, -0, -0 387 | 0, 0, -76.285, -294.237, 0.0100852, 0.00223351, -0.791474, 0.611116, 9.2825, 0, 0, -0.0213619, -0, -0 388 | 0, 0, -76.4635, -294.921, 0.00902032, 0.00219649, -0.791448, 0.611165, 8.65149, 0, 0, -0.0199246, -0, -0 389 | 0, 0, -76.6103, -295.482, 0.00835388, 0.00243243, -0.791434, 0.611193, 8.65149, 0, 0, -0.0180322, -0, -0 390 | 0, 0, -76.7673, -296.083, 0.00770355, 0.00272038, -0.791411, 0.61123, 8.012, 0, 0, -0.0167049, -0, -0 391 | 0, 0, -76.9128, -296.641, 0.00758242, 0.00279501, -0.791361, 0.611296, 7.30663, 0, 0, 0.00040551, -0, -0 392 | 0, 0, -77.0946, -297.336, 0.00761555, 0.00279408, -0.791338, 0.611325, 6.67523, 0, 0, 0.00040196, -0, -0 393 | 0, 0, -77.2551, -297.95, 0.00763488, 0.00279338, -0.791333, 0.611332, 5.97657, 0, 0, 0.000196179, -0, -0 394 | 0, 0, -77.3945, -298.482, 0.00792792, 0.00267596, -0.791318, 0.611347, 4.65986, 0, 0, 0.00847797, -0, -0 395 | 0, 0, -77.5321, -299.007, 0.00841281, 0.00247994, -0.791328, 0.61133, 4.03148, 0, 0, 0.00693582, -0, -0 396 | 0, 0, -77.6735, -299.546, 0.00887951, 0.00232229, -0.791349, 0.611296, 2.78354, 0, 0, 0.00166465, -0, -0 397 | 0, 0, -77.8056, -300.042, 0.00864692, 0.00223294, -0.791745, 0.610787, 0.541974, 0, 0, -0.00219105, -0.0737988, -0 398 | 0, 0, -78.0752, -300.515, 0.00814652, 0.0020846, -0.815069, 0.579303, 1.53964, 0, 0, 0.000511074, -0.486249, -0 399 | 0, 0, -78.4382, -300.96, 0.00883558, 0.00165597, -0.844768, 0.535057, 2.47363, 0, 0, 0.0065323, -0.486249, -0 400 | 0, 0, -78.8494, -301.372, -0.00965057, -0.00162198, 0.87226, -0.488944, 3.06708, 0, 0, 0.00131758, -0.486249, -0 401 | 0, 0, -79.2829, -301.729, -0.0103361, -0.00216254, 0.896253, -0.443417, 3.72759, 0, 0, -0.00181016, -0.486249, -0 402 | 0, 0, -79.7847, -302.064, -0.0109765, -0.00269256, 0.919315, -0.393359, 4.02224, 0, 0, 0.00136317, -0.486249, -0 403 | 0, 0, -80.2997, -302.336, -0.0110603, -0.00357884, 0.938949, -0.34386, 4.60425, 0, 0, -0.0113317, -0.486249, -0 404 | 0, 0, -80.796, -302.538, -0.0110767, -0.00453662, 0.954719, -0.297269, 4.93357, 0, 0, -0.0128378, -0.486249, -0 405 | 0, 0, -81.3553, -302.704, -0.011075, -0.00577746, 0.969401, -0.245165, 5.35472, 0, 0, -0.010358, -0.486249, -0 406 | 0, 0, -81.9596, -302.824, -0.0022415, -0.0165635, 0.981395, -0.191272, 5.60736, 0, 0, -0.253725, -0.486249, -0 407 | 0, 0, -82.4819, -302.89, 0.00477568, -0.0272275, 0.98858, -0.148142, 5.78703, 0, 0, -0.14842, -0.486249, -0 408 | 0, 0, -83.1372, -302.886, 0.0187993, -0.0143414, 0.995481, -0.0919681, 5.88988, 0, 0, -0.239456, -0.486249, -0 409 | 0, 0, -83.6863, -302.827, 0.0274895, -0.01283, 0.998606, -0.0431852, 6.05368, 0, 0, -0.199807, -0.486249, -0 410 | 0, 0, -84.3648, -302.666, 0.0346775, -0.0087995, 0.999098, 0.0228596, 6.23751, 0, 0, -0.135689, -0.498296, -0 411 | 0, 0, -85.0324, -302.42, 0.0214867, -0.0124752, 0.99585, 0.087554, 6.38071, 0, 0, 0.281623, -0.387233, -0 412 | 0, 0, -85.5234, -302.225, 0.00815643, -0.00672636, 0.992276, 0.123601, 6.5746, 0, 0, 0.287428, -0.31634, -0 413 | 0, 0, -86.0938, -301.974, -0.00515186, -0.00441104, 0.987413, 0.158016, 6.98829, 0, 0, 0.280082, -0.247438, -0 414 | 0, 0, -86.618, -301.726, -0.0162175, -0.00044218, 0.983139, 0.182136, 7.29183, 0, 0, 0.180444, -0.181481, -0 415 | 0, 0, -87.0896, -301.497, -0.0212765, 0.00194327, 0.980265, 0.19653, 7.29183, 0, 0, 0.11657, -0.181481, -0 416 | 0, 0, -87.5642, -301.267, -0.0250553, 0.000560818, 0.978004, 0.207073, 7.53854, 0, 0, 0.107751, -0.111733, -0 417 | 0, 0, -88.1085, -301.01, -0.0238945, -0.0018684, 0.97653, 0.214045, 7.52871, 0, 0, -0.0812026, -0.0401402, -0 418 | 0, 0, -88.5859, -300.788, -0.0208711, -0.00219103, 0.976172, 0.215983, 7.5264, 0, 0, -0.0806427, -0, -0 419 | 0, 0, -89.1315, -300.535, -0.017562, -0.00264059, 0.97612, 0.216503, 7.52807, 0, 0, -0.0767502, -0, -0 420 | 0, 0, -89.7456, -300.25, -0.0158332, -0.00513634, 0.976156, 0.216432, 7.52547, 0, 0, -0.0100544, 0.0107325, -0 421 | 0, 0, -90.2952, -300.007, -0.0159046, -0.00731952, 0.976795, 0.213459, 7.51724, 0, 0, 0.0464813, 0.0853992, -0 422 | 0, 0, -90.8527, -299.785, -0.0184498, -0.0062582, 0.978767, 0.204047, 7.4967, 0, 0, 0.060154, 0.124745, -0 423 | 0, 0, -91.3443, -299.602, -0.0205457, -0.00625103, 0.980664, 0.194516, 7.4967, 0, 0, 0.0547034, 0.124745, -0 424 | 0, 0, -91.9071, -299.396, -0.0222739, -0.00831574, 0.982197, 0.186342, 7.49531, 0, 0, 0.0504443, 0.0550242, -0 425 | 0, 0, -92.5459, -299.184, -0.0230378, -0.00894804, 0.984316, 0.174672, 7.48564, 0, 0, -0.000221173, 0.107569, -0 426 | 0, 0, -93.1154, -299.004, -0.0214963, -0.0100012, 0.985931, 0.165465, 7.47268, 0, 0, -0.062914, 0.0655428, -0 427 | 0, 0, -93.683, -298.818, -0.0186697, -0.0106821, 0.986636, 0.161514, 7.4736, 0, 0, -0.0675523, -0, -0 428 | 0, 0, -94.1792, -298.653, -0.0175376, -0.0127441, 0.986788, 0.160563, 7.47186, 0, 0, -0.0130855, -0, -0 429 | 0, 0, -94.7464, -298.466, -0.0165745, -0.0155037, 0.986825, 0.160193, 7.46765, 0, 0, -0.0125788, -0, -0 430 | 0, 0, -95.2425, -298.303, -0.01637, -0.0160774, 0.986837, 0.160083, 7.46765, 0, 0, -0.0103995, -0, -0 431 | 0, 0, -95.871, -298.095, -0.00645695, -0.0105721, 0.987255, 0.158661, 7.45175, 0, 0, -0.688613, -0, -0 432 | 0, 0, -96.4114, -297.913, -0.00338906, -0.0106658, 0.987452, 0.157522, 7.1294, 0, 0, 0.0539148, -0.0152591, -0 433 | 0, 0, -97.0132, -297.693, -0.00529824, -0.0105089, 0.986391, 0.163996, 7.1283, 0, 0, 0.0103053, -0.0818764, -0 434 | 0, 0, -97.6001, -297.442, -0.00511637, -0.0127539, 0.983696, 0.179316, 7.094, 0, 0, -0.0027344, -0.153132, -0 435 | 0, 0, -98.1028, -297.189, -0.00445158, -0.0135026, 0.97986, 0.19918, 7.02837, 0, 0, -0.00833504, -0.226584, -0 436 | 0, 0, -98.5565, -296.908, -0.011324, -0.00455816, 0.974753, 0.22295, 6.54009, 0, 0, 0.0705376, -0.296144, -0 437 | 0, 0, -98.9749, -296.605, -0.00868591, -0.00784875, 0.967275, 0.253462, 6.41163, 0, 0, -0.080471, -0.364462, -0 438 | 0, 0, -99.3565, -296.267, -0.0052432, -0.00841531, 0.957764, 0.287384, 6.31262, 0, 0, -0.0750689, -0.434547, -0 439 | 0, 0, -99.6962, -295.896, -0.00400927, -0.0107631, 0.945695, 0.324852, 6.31262, 0, 0, 0.00948146, -0.434547, -0 440 | 0, 0, -100.077, -295.339, -0.00464577, -0.0110153, 0.923925, 0.382388, 5.99002, 0, 0, -0.00350956, -0.576211, -0 441 | 0, 0, -100.325, -294.801, -0.00522529, -0.0104217, 0.898321, 0.439185, 5.76374, 0, 0, -0.00403609, -0.64526, -0 442 | 0, 0, -100.461, -294.306, -0.00512968, -0.00910596, 0.870396, 0.492241, 5.52537, 0, 0, -0.021349, -0.68766, -0 443 | 0, 0, -100.533, -293.703, -0.00611733, -0.00849913, 0.831905, 0.554819, 5.37508, 0, 0, 0.025054, -0.68766, -0 444 | 0, 0, -100.516, -293.169, -0.00738687, -0.00775967, 0.793664, 0.608262, 5.22578, 0, 0, 0.0130333, -0.68766, -0 445 | 0, 0, -100.432, -292.657, -0.00850138, -0.00702533, 0.753133, 0.657775, 5.07693, 0, 0, -0.0147628, -0.684604, -0 446 | 0, 0, -100.299, -292.167, -0.00829782, -0.00592518, 0.713229, 0.700857, 5.00251, 0, 0, -0.0149612, -0.608563, -0 447 | 0, 0, -100.134, -291.692, -0.00816761, -0.00536596, 0.676042, 0.736798, 4.97304, 0, 0, 0.00483022, -0.540605, -0 448 | 0, 0, -99.884, -291.093, -0.00803332, -0.00453518, 0.632909, 0.774171, 4.955, 0, 0, -0.0279691, -0.460879, -0 449 | 0, 0, -99.5842, -290.464, -0.0064235, -0.00354282, 0.594867, 0.803791, 4.95276, 0, 0, -0.0184686, -0.325998, -0 450 | 0, 0, -99.3371, -289.977, -0.0053236, -0.00259655, 0.571922, 0.820286, 4.95265, 0, 0, -0.0258294, -0.248871, -0 451 | 0, 0, -99.0788, -289.477, -0.00398284, -0.00194699, 0.554542, 0.832144, 5.08431, 0, 0, -0.0206051, -0.181579, -0 452 | 0, 0, -98.8068, -288.94, -0.0023567, -0.00141117, 0.54331, 0.839528, 5.37227, 0, 0, -0.0247964, -0.110523, -0 453 | 0, 0, -98.5813, -288.471, -0.00125024, -0.000913181, 0.539717, 0.841845, 5.66267, 0, 0, -0.0177007, -0.0407505, -0 454 | 0, 0, -98.299, -287.862, -0.000545278, -0.000479655, 0.538999, 0.842306, 6.26, 0, 0, -0.0123171, -0, -0 455 | 0, 0, -98.084, -287.397, -8.85986e-05, -0.000179378, 0.538834, 0.842412, 6.26, 0, 0, -0.0126619, -0, -0 456 | 0, 0, -97.8605, -286.914, 0.000435192, 0.000255075, 0.538726, 0.842481, 6.5747, 0, 0, -0.0185668, -0, -0 457 | 0, 0, -97.6284, -286.413, 0.00101988, 0.00079108, 0.538671, 0.842515, 6.85703, 0, 0, -0.0196082, -0, -0 458 | 0, 0, -97.3944, -285.908, 0.00128638, 0.00137774, 0.538589, 0.842567, 6.95202, 0, 0, -0.00914678, -0, -0 459 | 0, 0, -97.1606, -285.403, 0.00133923, 0.00173105, 0.538495, 0.842626, 6.95362, 0, 0, -0.00781542, -0, -0 460 | 0, 0, -96.8687, -284.772, 0.000467319, 0.00209949, 0.538662, 0.842519, 6.94541, 0, 0, 0.00983881, -0, -0 461 | 0, 0, -96.6354, -284.267, -0.000216421, 0.00322903, 0.538935, 0.842341, 7.01783, 0, 0, -0.0240455, -0, -0 462 | 0, 0, -96.3402, -283.627, -0.00217489, 0.0033493, 0.538693, 0.842493, 6.33772, 0, 0, 0.100646, -0, -0 463 | 0, 0, -96.1079, -283.117, -0.00551714, -0.000583948, 0.538493, 0.842612, 5.64649, 0, 0, 0.076597, -0, -0 464 | 0, 0, -95.8881, -282.636, -0.00391336, -0.00442152, 0.538876, 0.842364, 4.88507, 0, 0, 0.0554669, -0, -0 465 | 0, 0, -95.6597, -282.136, -0.00296485, -0.00836227, 0.539087, 0.842203, 3.61276, 0, 0, 0.0212519, -0, -0 466 | 0, 0, -95.4322, -281.64, -0.00083958, -0.0115582, 0.539383, 0.841981, 2.28284, 0, 0, 0.0155204, -0, -0 467 | 0, 0, -95.2296, -281.137, -0.0014912, -0.0152061, 0.545259, 0.838128, 2.13459, 0, 0, 0.0386474, 0.166334, -0 468 | 0, 0, -95.1037, -280.629, -0.00524708, -0.0180584, 0.565598, 0.824467, 2.07148, 0, 0, 0.0355186, 0.311696, -0 469 | 0, 0, -95.0712, -280.114, -0.00758525, -0.01687, 0.600008, 0.79978, 1.92258, 0, 0, 0.00382945, 0.526453, -0 470 | 0, 0, -95.1637, -279.584, -0.0095666, -0.0162784, 0.649415, 0.7602, 1.69547, 0, 0, 0.00691284, 0.68766, -0 471 | 0, 0, -95.3321, -279.048, -0.0102175, -0.0152501, 0.698696, 0.715183, 2.29254, 0, 0, -0.0235072, 0.621579, -0 472 | 0, 0, -95.5727, -278.552, -0.00684791, -0.0124715, 0.746234, 0.665532, 2.80283, 0, 0, -0.0459719, 0.68766, -0 473 | 0, 0, -95.8563, -278.118, -0.00590964, -0.0101279, 0.787555, 0.616133, 3.30484, 0, 0, -0.0211656, 0.68766, -0 474 | 0, 0, -96.2134, -277.697, -0.00516706, -0.0083267, 0.828031, 0.560597, 3.71414, 0, 0, -0.00116598, 0.68766, -0 475 | 0, 0, -96.6558, -277.303, -0.00424648, -0.00726027, 0.866803, 0.49858, 3.62779, 0, 0, -0.0246907, 0.68766, -0 476 | 0, 0, -97.0989, -277.012, -0.00276773, -0.0043852, 0.897977, 0.440011, 3.43454, 0, 0, -0.0478579, 0.68766, -0 477 | 0, 0, -97.6157, -276.766, 0.000186417, 0.000917139, 0.927243, 0.374459, 3.24408, 0, 0, -0.031614, 0.68766, -0 478 | 0, 0, -98.1026, -276.615, 0.000330649, 0.00102805, 0.949208, 0.314649, 3.04062, 0, 0, -0.016211, 0.68766, -0 479 | 0, 0, -98.6366, -276.526, 0.00237, -0.00010857, 0.968355, 0.249565, 2.94026, 0, 0, -0.0186378, 0.68766, -0 480 | 0, 0, -99.2019, -276.507, 0.004529, -0.000953358, 0.983344, 0.181694, 2.72304, 0, 0, -0.0184678, 0.606862, -0 481 | 0, 0, -99.7485, -276.512, 0.00608623, -0.00131876, 0.991779, 0.127813, 2.69483, 0, 0, -0.00933599, 0.469131, -0 482 | 0, 0, -100.262, -276.523, 0.00507472, -0.00143641, 0.996033, 0.0888237, 2.66444, 0, 0, 0.0193106, 0.431698, -0 483 | 0, 0, -100.798, -276.617, 0.00499774, -0.00442829, 0.999267, 0.0376819, 2.51554, 0, 0, -0.00607004, 0.569847, -0 484 | 0, 0, -101.325, -276.8, 0.00653577, -0.00833059, 0.999721, -0.0211339, 2.35101, 0, 0, -0.0116374, 0.479625, -0 485 | 0, 0, -101.814, -276.961, 0.00786035, -0.00754564, 0.998146, -0.0598784, 2.31456, 0, 0, -0.00331359, 0.333878, -0 486 | 0, 0, -102.343, -277.115, 0.0094907, -0.00804201, 0.996401, -0.0838516, 2.28443, 0, 0, -0.0181825, 0.19166, -0 487 | 0, 0, -102.868, -277.226, 0.012121, -0.00829723, 0.995905, -0.089209, 2.22088, 0, 0, -0.0255218, -0.0147072, -0 488 | 0, 0, -103.428, -277.281, 0.0141249, -0.011209, 0.997004, -0.0752165, 2.12463, 0, 0, -0.00654321, -0.226184, -0 489 | 0, 0, -103.998, -277.241, 0.0149384, -0.014065, 0.999019, -0.0392574, 1.96754, 0, 0, -0.011377, -0.444591, -0 490 | 0, 0, -104.495, -277.09, 0.0143985, -0.0125527, 0.999734, 0.0129203, 1.72551, 0, 0, -0.00781626, -0.658095, -0 491 | -------------------------------------------------------------------------------- /scripts/build-autoware-auto.sh: -------------------------------------------------------------------------------- 1 | . /opt/AutowareAuto/setup.bash 2 | 3 | vcs import . < autoware.auto.foxy.repos 4 | sudo apt update; rosdep update; rosdep install --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} -yr 5 | colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release 6 | 7 | colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select recordreplay_planner_nodes 8 | colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select autoware_demos 9 | 10 | -------------------------------------------------------------------------------- /scripts/install-ade.sh: -------------------------------------------------------------------------------- 1 | python3 -m pip install --upgrade pip 2 | 3 | # Install docker 4 | 5 | sudo apt install docker.io -y 6 | 7 | sudo usermod -aG docker $USER 8 | newgrp docker 9 | 10 | #check docker is working 11 | docker run hello-world 12 | 13 | # add networks for AutowareAuto EGO 1 and 2 14 | docker network create ade0 15 | docker network create ade1 16 | 17 | # install ADE 18 | 19 | mkdir ~/adehome 20 | cd ~/adehome 21 | touch .adehome 22 | 23 | wget https://gitlab.com/ApexAI/ade-cli/-/jobs/1341322851/artifacts/raw/dist/ade+x86_64 24 | mv ade+x86_64 ade 25 | chmod +x ade 26 | cp ade ~/.local/bin 27 | which ~/adehome/ade 28 | 29 | ~/adehome/ade update-cli 30 | -------------------------------------------------------------------------------- /scripts/move-ego-in-circle-autoware-auto.sh: -------------------------------------------------------------------------------- 1 | ros2 topic pub /lgsvl/vehicle_control_cmd lgsvl_msgs/msg/VehicleControlData "{acceleration_pct: 0.5, target_wheel_angle: 0.6, target_wheel_angular_rate: 1.0, target_gear: 1}" -r 10 2 | -------------------------------------------------------------------------------- /scripts/ossdc-sim-demo-start-env.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from __future__ import absolute_import 4 | from __future__ import print_function 5 | from __future__ import unicode_literals 6 | 7 | import pexpect 8 | import sys 9 | import time 10 | import os 11 | from environs import Env 12 | 13 | debugging = True 14 | 15 | def force_exit(err): 16 | try: 17 | sys.exit(err) 18 | except SystemExit: 19 | os._exit(err) 20 | 21 | def run_cmd(parent,egoNr,cmdStr): 22 | adeName = "ade"+str(egoNr) 23 | shellCmd = 'sh -c "~/adehome/ade --name ade'+str(egoNr)+' enter"' 24 | print('Start shell:',shellCmd) 25 | child = pexpect.spawn(shellCmd) 26 | if debugging: # Just in case you also want to see the output for debugging 27 | child.logfile = open(adeName+".log", "ab") #sys.stdout 28 | 29 | COMMAND_PROMPT = "Entering "+adeName 30 | i = child.expect([pexpect.TIMEOUT, COMMAND_PROMPT ],10) 31 | if i != 0: 32 | print('Start cmd:',cmdStr) 33 | child.sendline(cmdStr) 34 | else: 35 | print('Timeout on:',cmdStr) 36 | return child 37 | 38 | 39 | childProc = [] 40 | 41 | env = Env() 42 | 43 | MULTI_EGO_COUNT = 2 44 | 45 | mainProc = [] 46 | cmdStrList = [] 47 | for i in range(MULTI_EGO_COUNT): 48 | egoNr = i 49 | # cmdStrList.append('sh -c "EGO_NR='+str(egoNr)+' ~/adehome/ade --name ade'+str(egoNr)+' --rc ../OSSDC-SIM-Demos/ade-envs/aderc-gpu-multi-foxy start --update"') 50 | cmdStrList.append('sh -c "EGO_NR='+str(egoNr)+' ~/adehome/ade --name ade'+str(egoNr)+' --rc ../OSSDC-SIM-Demos/ade-envs/aderc-gpu-multi-foxy-built start --update"') 51 | # cmdStrList.append('sh -c "EGO_NR='+str(egoNr)+' ~/adehome/ade --name ade'+str(egoNr)+' --rc ../OSSDC-SIM-Demos/ade-envs/aderc-gpu-multi-galactic start --update"') 52 | print('Start cmd:',cmdStrList[i]) 53 | mainProc.append(pexpect.spawn(cmdStrList[i])) 54 | # mainProc1.logfile = sys.stdout 55 | 56 | childProc.append(mainProc[i]) 57 | 58 | expectResult = [] 59 | oneFailed = False 60 | for i in range(MULTI_EGO_COUNT): 61 | egoNr = i 62 | COMMAND_PROMPT = "ADE has been started" 63 | expectResult.append(mainProc[i].expect([pexpect.TIMEOUT, COMMAND_PROMPT ],120)) 64 | if expectResult[i] == 0: 65 | print('Timeout on:',cmdStrList[i]) 66 | oneFaied = True 67 | 68 | if not oneFailed: 69 | for i in range(MULTI_EGO_COUNT): 70 | 71 | egoNr = i 72 | 73 | time.sleep(1) 74 | 75 | cmdStr = 'lgsvl_bridge' 76 | child = run_cmd(mainProc[i],egoNr,cmdStr) 77 | childProc.append(child) 78 | 79 | cmdStr = 'cd ~/rosboard && ./run' 80 | child = run_cmd(mainProc[i],egoNr,cmdStr) 81 | childProc.append(child) 82 | 83 | x=input("Click ENTER to STOP the run") 84 | 85 | for i in range(MULTI_EGO_COUNT): 86 | egoNr = i 87 | pexpect.spawn('ade --name ade'+str(egoNr)+' stop') 88 | 89 | time.sleep(2) 90 | 91 | for child in childProc: 92 | if child.isalive(): 93 | child.close() 94 | # Print the final state of the child. Normally isalive() should be FALSE. 95 | if child.isalive(): 96 | print('Child did not exit gracefully.') 97 | else: 98 | print('Child exited gracefully.') 99 | -------------------------------------------------------------------------------- /scripts/record-autoware-auto.sh: -------------------------------------------------------------------------------- 1 | ros2 action send_goal /planning/recordtrajectory autoware_auto_planning_msgs/action/RecordTrajectory "{record_path: "/tmp/path"}" --feedback 2 | cat /tmp/path 3 | -------------------------------------------------------------------------------- /scripts/replay-autoware-auto.sh: -------------------------------------------------------------------------------- 1 | ros2 action send_goal /planning/replaytrajectory autoware_auto_planning_msgs/action/ReplayTrajectory "{replay_path: "/tmp/path"}" --feedback 2 | cat /tmp/path 3 | -------------------------------------------------------------------------------- /scripts/start-record-replay-autoware-auto.sh: -------------------------------------------------------------------------------- 1 | ros2 launch autoware_demos recordreplay_planner_demo.launch.py recording_frame:='odom' run_pure_pursuit:=true 2 | -------------------------------------------------------------------------------- /sim-data/2021.3-ossdc/backup.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSSDC/OSSDC-SIM-Demos/dae79414b7d91c0db76882cdf4f16e454fc6137c/sim-data/2021.3-ossdc/backup.db -------------------------------------------------------------------------------- /sim-data/2021.3-ossdc/data.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSSDC/OSSDC-SIM-Demos/dae79414b7d91c0db76882cdf4f16e454fc6137c/sim-data/2021.3-ossdc/data.db -------------------------------------------------------------------------------- /sim-data/config.yml: -------------------------------------------------------------------------------- 1 | headless: false 2 | read_only: false 3 | api_hostname: "*" 4 | api_port: 8181 5 | cloud_url: "https://race.ossdc.org" 6 | -------------------------------------------------------------------------------- /sim-data/run-OSSDC-SIM-v1.bat: -------------------------------------------------------------------------------- 1 | .\OSSDC-SIM.exe --data .\2021.3-ossdc --cloudurl https://race.ossdc.org --simid OSSDC-SIM-v1 2 | -------------------------------------------------------------------------------- /sim-data/run-OSSDC-SIM-v1.sh: -------------------------------------------------------------------------------- 1 | ./OSSDC-SIM --data ./2021.3-ossdc --cloudurl https://race.ossdc.org --simid OSSDC-SIM-v1 2 | -------------------------------------------------------------------------------- /simulations/AutonomouStuff-Lexux-AVP-AutowareAuto/Single_Ego-AVP-API-race-control.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright (c) 2019-2021 LG Electronics, Inc. 4 | # 5 | # This software contains code licensed as described in LICENSE. 6 | # 7 | 8 | from turtle import speed 9 | from environs import Env 10 | import lgsvl 11 | import time 12 | import yaml 13 | import numpy as np 14 | from argparse import Namespace 15 | import socket 16 | 17 | 18 | ####################################################################################### 19 | ##################### SVL Simulator Environment ################################# 20 | ####################################################################################### 21 | 22 | # Create the environment variable 23 | env = Env() 24 | 25 | SIMULATOR_HOST = env.str("OSSDC__SIMULATOR_HOST", '192.168.1.41') 26 | if SIMULATOR_HOST is None: 27 | print("Set env OSSDC__SIMULATOR_HOST") 28 | exit() 29 | 30 | SIMULATOR_API_PORT = env.str("OSSDC__SIMULATOR_API_PORT", '8181') 31 | if SIMULATOR_API_PORT is None: 32 | print("Set env OSSDC__SIMULATOR_API_PORT") 33 | exit() 34 | 35 | SIMULATOR_BRIDGE_HOST_1 = env.str("OSSDC__SIMULATOR_BRIDGE_HOST_1", '192.168.1.35') 36 | if SIMULATOR_BRIDGE_HOST_1 is None: 37 | print("Set env OSSDC__SIMULATOR_BRIDGE_HOST_1") 38 | 39 | # SIMULATOR_BRIDGE_HOST_2 = env.str("OSSDC__SIMULATOR_BRIDGE_HOST_2", '192.168.1.35') 40 | # if SIMULATOR_BRIDGE_HOST_2 is None: 41 | # print("Set env OSSDC__SIMULATOR_BRIDGE_HOST_2") 42 | 43 | SIMULATOR_BRIDGE_PORT_1 = env.str("OSSDC__SIMULATOR_BRIDGE_PORT_1", "9090") 44 | if SIMULATOR_BRIDGE_PORT_1 is None: 45 | print("Set env OSSDC__SIMULATOR_BRIDGE_PORT_1") 46 | 47 | # SIMULATOR_BRIDGE_PORT_2 = env.str("OSSDC__SIMULATOR_BRIDGE_PORT_2", "9091") 48 | # if SIMULATOR_BRIDGE_PORT_2 is None: 49 | # print("Set env OSSDC__SIMULATOR_BRIDGE_PORT_2") 50 | 51 | # Create the sim instance and connect to the SVL Simulator 52 | sim = lgsvl.Simulator(SIMULATOR_HOST, int(SIMULATOR_API_PORT)) 53 | # map_uuid = "781b04c8-43b4-431e-af55-1ae2b2efc873" # RedBull 54 | # map_uuid = "a3be7bf6-b5a6-4e48-833d-a1f1dd6d7a1e" #LVMS 55 | # map_uuid = "431292c2-f6f6-4f5a-ae62-0964f6018d20" #Highway101GLE 56 | # map_uuid = "aae03d2a-b7ca-4a88-9e41-9035287a12cc" #BorregasAve 57 | map_uuid = "2aae5d39-a11c-4516-87c4-cdc9ca784551" #AutonomouStuff 58 | 59 | if sim.current_scene == map_uuid: 60 | sim.reset() 61 | else: 62 | sim.load(map_uuid) 63 | 64 | spawns = sim.get_spawn() 65 | 66 | # Load the EGO vehicle and spawn it on the track 67 | state = lgsvl.AgentState() 68 | state.transform = spawns[0] 69 | 70 | 71 | sensorsConfig = "5ab8175f-e1f1-427c-a86e-e882fa842977" # AWFLexus2016RXHybrid b22952f6-f82b-4eeb-ac28-2067e88569a1 - Autoware.Auto 72 | 73 | ego = sim.add_agent(name = sensorsConfig, agent_type = lgsvl.AgentType.EGO, state = state) 74 | 75 | if SIMULATOR_BRIDGE_HOST_1 is not None: 76 | ego.connect_bridge(SIMULATOR_BRIDGE_HOST_1, int(SIMULATOR_BRIDGE_PORT_1)) #connect to LGSVL bridge 77 | print("EGO1 Waiting for connection to ROS2 bridge ...") 78 | while not ego.bridge_connected: 79 | time.sleep(1) 80 | 81 | # # Load an NPC and spawn it on the track 82 | # ego2 = sim.add_agent(name = sensorsConfig, agent_type =lgsvl.AgentType.EGO, state = None) 83 | 84 | # if SIMULATOR_BRIDGE_HOST_2 is not None: 85 | # ego2.connect_bridge(SIMULATOR_BRIDGE_HOST_2, int(SIMULATOR_BRIDGE_PORT_2)) #connect to LGSVL bridge 86 | # print("EGO2 Waiting for connection to ROS2 bridge ...") 87 | # while not ego2.bridge_connected: 88 | # time.sleep(1) 89 | 90 | 91 | # Set a new daytime for the simulator, Time of day can be set from 0 ... 24 92 | print("Current time:", sim.time_of_day) 93 | sim.set_time_of_day(18) 94 | print(sim.time_of_day) 95 | 96 | # The simulator can be run for a set amount of time. 97 | # time_limit is optional and if omitted or set to 0, then the simulator will run indefinitely 98 | # Create Steps for running the simulation step by step 99 | step_time = 0.1 100 | duration = 10000000 101 | 102 | 103 | step_rate = int(1.0 / step_time) 104 | steps = duration * step_rate 105 | print("Stepping forward for {} steps of {}s per step" .format(steps, step_time)) 106 | 107 | # # Initial Ego Position - needs to be special because of our coordinate system 108 | # s = ego.state 109 | # x=125.231+8; 110 | # y=122.0; 111 | # z=-138.280 112 | # s.position.x = x # equals original x in our raceline data 113 | # s.rotation.y = y # 270 =- original value from raceline heading, if statement for pi and -pi 114 | # s.position.z = z # equals original (-)y in our raceline data 115 | # ego.state = s 116 | 117 | 118 | # s2 = ego2.state 119 | # x2=125.231; 120 | # y2=122.0; 121 | # z2=-138.280 122 | # s2.position.x = x2 # equals original x in our raceline data 123 | # s2.rotation.y = y2 # 270 =- original value from raceline heading, if statement for pi and -pi 124 | # s2.position.z = z2 # equals original (-)y in our raceline data 125 | # ego2.state = s2 126 | 127 | 128 | # sim.run(0) #time_limit=step_time) 129 | 130 | clientSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 131 | UDP_IP_ADDRESS = "192.168.1.243" 132 | UDP_PORT_NO = 6789 133 | 134 | 135 | simid = "ego1" 136 | for i in range(steps): 137 | sim.run(time_limit=step_time) 138 | # Get the current Information from the vehicle State 139 | state = ego.state # Create a state variable for the vehicle 140 | pos = state.position # Get vehicle position: X,Y,Y 141 | # rot= state.rotation # Get vehicle rotation/heading: X,Y,Y 142 | speed = state.speed # Get vehicle speed: X,Y,Y 143 | 144 | #Make correct transformation for the usage with the F1TENTH coordination 145 | pp_vehicle_x = pos.x 146 | pp_vehicle_y = pos.z 147 | message = simid + "," + str(pp_vehicle_x) + "," + str(pp_vehicle_y) + "," + str(speed) + ";" 148 | clientSock.sendto(message.encode('utf-8'), (UDP_IP_ADDRESS, UDP_PORT_NO)) 149 | -------------------------------------------------------------------------------- /simulations/BorregasAve-Lexux-AVP-AutowareAuto/Single_Ego-AVP-API-race-control.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright (c) 2019-2021 LG Electronics, Inc. 4 | # 5 | # This software contains code licensed as described in LICENSE. 6 | # 7 | 8 | from turtle import speed 9 | from environs import Env 10 | import lgsvl 11 | import time 12 | import yaml 13 | import numpy as np 14 | from argparse import Namespace 15 | import socket 16 | 17 | 18 | ####################################################################################### 19 | ##################### SVL Simulator Environment ################################# 20 | ####################################################################################### 21 | 22 | # Create the environment variable 23 | env = Env() 24 | 25 | SIMULATOR_HOST = env.str("OSSDC__SIMULATOR_HOST", '192.168.1.41') 26 | if SIMULATOR_HOST is None: 27 | print("Set env OSSDC__SIMULATOR_HOST") 28 | exit() 29 | 30 | SIMULATOR_API_PORT = env.str("OSSDC__SIMULATOR_API_PORT", '8181') 31 | if SIMULATOR_API_PORT is None: 32 | print("Set env OSSDC__SIMULATOR_API_PORT") 33 | exit() 34 | 35 | SIMULATOR_BRIDGE_HOST_1 = env.str("OSSDC__SIMULATOR_BRIDGE_HOST_1", '192.168.1.35') 36 | if SIMULATOR_BRIDGE_HOST_1 is None: 37 | print("Set env OSSDC__SIMULATOR_BRIDGE_HOST_1") 38 | 39 | # SIMULATOR_BRIDGE_HOST_2 = env.str("OSSDC__SIMULATOR_BRIDGE_HOST_2", '192.168.1.35') 40 | # if SIMULATOR_BRIDGE_HOST_2 is None: 41 | # print("Set env OSSDC__SIMULATOR_BRIDGE_HOST_2") 42 | 43 | SIMULATOR_BRIDGE_PORT_1 = env.str("OSSDC__SIMULATOR_BRIDGE_PORT_1", "9090") 44 | if SIMULATOR_BRIDGE_PORT_1 is None: 45 | print("Set env OSSDC__SIMULATOR_BRIDGE_PORT_1") 46 | 47 | # SIMULATOR_BRIDGE_PORT_2 = env.str("OSSDC__SIMULATOR_BRIDGE_PORT_2", "9091") 48 | # if SIMULATOR_BRIDGE_PORT_2 is None: 49 | # print("Set env OSSDC__SIMULATOR_BRIDGE_PORT_2") 50 | 51 | # Create the sim instance and connect to the SVL Simulator 52 | sim = lgsvl.Simulator(SIMULATOR_HOST, int(SIMULATOR_API_PORT)) 53 | # map_uuid = "781b04c8-43b4-431e-af55-1ae2b2efc873" # RedBull 54 | # map_uuid = "a3be7bf6-b5a6-4e48-833d-a1f1dd6d7a1e" #LVMS 55 | # map_uuid = "431292c2-f6f6-4f5a-ae62-0964f6018d20" #Highway101GLE 56 | map_uuid = "aae03d2a-b7ca-4a88-9e41-9035287a12cc" #BorregasAve 57 | 58 | if sim.current_scene == map_uuid: 59 | sim.reset() 60 | else: 61 | sim.load(map_uuid) 62 | 63 | spawns = sim.get_spawn() 64 | 65 | # Load the EGO vehicle and spawn it on the track 66 | state = lgsvl.AgentState() 67 | state.transform = spawns[0] 68 | 69 | 70 | sensorsConfig = "5ab8175f-e1f1-427c-a86e-e882fa842977" # AWFLexus2016RXHybrid b22952f6-f82b-4eeb-ac28-2067e88569a1 - Autoware.Auto 71 | 72 | ego = sim.add_agent(name = sensorsConfig, agent_type = lgsvl.AgentType.EGO, state = state) 73 | 74 | if SIMULATOR_BRIDGE_HOST_1 is not None: 75 | ego.connect_bridge(SIMULATOR_BRIDGE_HOST_1, int(SIMULATOR_BRIDGE_PORT_1)) #connect to LGSVL bridge 76 | print("EGO1 Waiting for connection to ROS2 bridge ...") 77 | while not ego.bridge_connected: 78 | time.sleep(1) 79 | 80 | # # Load an NPC and spawn it on the track 81 | # ego2 = sim.add_agent(name = sensorsConfig, agent_type =lgsvl.AgentType.EGO, state = None) 82 | 83 | # if SIMULATOR_BRIDGE_HOST_2 is not None: 84 | # ego2.connect_bridge(SIMULATOR_BRIDGE_HOST_2, int(SIMULATOR_BRIDGE_PORT_2)) #connect to LGSVL bridge 85 | # print("EGO2 Waiting for connection to ROS2 bridge ...") 86 | # while not ego2.bridge_connected: 87 | # time.sleep(1) 88 | 89 | 90 | # Set a new daytime for the simulator, Time of day can be set from 0 ... 24 91 | print("Current time:", sim.time_of_day) 92 | sim.set_time_of_day(18) 93 | print(sim.time_of_day) 94 | 95 | # The simulator can be run for a set amount of time. 96 | # time_limit is optional and if omitted or set to 0, then the simulator will run indefinitely 97 | # Create Steps for running the simulation step by step 98 | step_time = 0.1 99 | duration = 10000000 100 | 101 | 102 | step_rate = int(1.0 / step_time) 103 | steps = duration * step_rate 104 | print("Stepping forward for {} steps of {}s per step" .format(steps, step_time)) 105 | 106 | # # Initial Ego Position - needs to be special because of our coordinate system 107 | # s = ego.state 108 | # x=125.231+8; 109 | # y=122.0; 110 | # z=-138.280 111 | # s.position.x = x # equals original x in our raceline data 112 | # s.rotation.y = y # 270 =- original value from raceline heading, if statement for pi and -pi 113 | # s.position.z = z # equals original (-)y in our raceline data 114 | # ego.state = s 115 | 116 | 117 | # s2 = ego2.state 118 | # x2=125.231; 119 | # y2=122.0; 120 | # z2=-138.280 121 | # s2.position.x = x2 # equals original x in our raceline data 122 | # s2.rotation.y = y2 # 270 =- original value from raceline heading, if statement for pi and -pi 123 | # s2.position.z = z2 # equals original (-)y in our raceline data 124 | # ego2.state = s2 125 | 126 | 127 | # sim.run(0) #time_limit=step_time) 128 | 129 | clientSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 130 | UDP_IP_ADDRESS = "192.168.1.243" 131 | UDP_PORT_NO = 6789 132 | 133 | 134 | simid = "ego1" 135 | for i in range(steps): 136 | sim.run(time_limit=step_time) 137 | # Get the current Information from the vehicle State 138 | state = ego.state # Create a state variable for the vehicle 139 | pos = state.position # Get vehicle position: X,Y,Y 140 | # rot= state.rotation # Get vehicle rotation/heading: X,Y,Y 141 | speed = state.speed # Get vehicle speed: X,Y,Y 142 | 143 | #Make correct transformation for the usage with the F1TENTH coordination 144 | pp_vehicle_x = pos.x 145 | pp_vehicle_y = pos.z 146 | message = simid + "," + str(pp_vehicle_x) + "," + str(pp_vehicle_y) + "," + str(speed) + ";" 147 | clientSock.sendto(message.encode('utf-8'), (UDP_IP_ADDRESS, UDP_PORT_NO)) 148 | -------------------------------------------------------------------------------- /simulations/F1Tenth-API/Pure_Pursuit.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright (c) 2019-2021 LG Electronics, Inc. 4 | # 5 | # This software contains code licensed as described in LICENSE. 6 | # 7 | 8 | from environs import Env 9 | import lgsvl 10 | import time 11 | import yaml 12 | import numpy as np 13 | from numba import njit 14 | from argparse import Namespace 15 | import math 16 | import matplotlib.pyplot as plt 17 | 18 | ####################################################################################### 19 | ##################### PLANNER HELPERS ########################################## 20 | ####################################################################################### 21 | 22 | njit(fastmath=False, cache=True) 23 | def nearest_point_on_trajectory(point, trajectory): 24 | ''' 25 | Return the nearest point along the given piecewise linear trajectory. 26 | 27 | Same as nearest_point_on_line_segment, but vectorized. This method is quite fast, time constraints should 28 | not be an issue so long as trajectories are not insanely long. 29 | 30 | Order of magnitude: trajectory length: 1000 --> 0.0002 second computation (5000fps) 31 | 32 | point: size 2 numpy array 33 | trajectory: Nx2 matrix of (x,y) trajectory waypoints 34 | - these must be unique. If they are not unique, a divide by 0 error will destroy the world 35 | ''' 36 | diffs = trajectory[1:,:] - trajectory[:-1,:] 37 | l2s = diffs[:,0]**2 + diffs[:,1]**2 38 | # this is equivalent to the elementwise dot product 39 | # dots = np.sum((point - trajectory[:-1,:]) * diffs[:,:], axis=1) 40 | dots = np.empty((trajectory.shape[0]-1, )) 41 | for i in range(dots.shape[0]): 42 | dots[i] = np.dot((point - trajectory[i, :]), diffs[i, :]) 43 | t = dots / l2s 44 | t[t<0.0] = 0.0 45 | t[t>1.0] = 1.0 46 | # t = np.clip(dots / l2s, 0.0, 1.0) 47 | projections = trajectory[:-1,:] + (t*diffs.T).T 48 | # dists = np.linalg.norm(point - projections, axis=1) 49 | dists = np.empty((projections.shape[0],)) 50 | for i in range(dists.shape[0]): 51 | temp = point - projections[i] 52 | dists[i] = np.sqrt(np.sum(temp*temp)) 53 | min_dist_segment = np.argmin(dists) 54 | return projections[min_dist_segment], dists[min_dist_segment], t[min_dist_segment], min_dist_segment 55 | 56 | @njit(fastmath=False, cache=True) 57 | def first_point_on_trajectory_intersecting_circle(point, radius, trajectory, t=0.0, wrap=False): 58 | ''' starts at beginning of trajectory, and find the first point one radius away from the given point along the trajectory. 59 | 60 | Assumes that the first segment passes within a single radius of the point 61 | 62 | http://codereview.stackexchange.com/questions/86421/line-segment-to-circle-collision-algorithm 63 | ''' 64 | start_i = int(t) 65 | start_t = t % 1.0 66 | first_t = None 67 | first_i = None 68 | first_p = None 69 | trajectory = np.ascontiguousarray(trajectory) 70 | for i in range(start_i, trajectory.shape[0]-1): 71 | start = trajectory[i,:] 72 | end = trajectory[i+1,:]+1e-6 73 | V = np.ascontiguousarray(end - start) 74 | 75 | a = np.dot(V,V) 76 | b = 2.0*np.dot(V, start - point) 77 | c = np.dot(start, start) + np.dot(point,point) - 2.0*np.dot(start, point) - radius*radius 78 | discriminant = b*b-4*a*c 79 | 80 | if discriminant < 0: 81 | continue 82 | # print "NO INTERSECTION" 83 | # else: 84 | # if discriminant >= 0.0: 85 | discriminant = np.sqrt(discriminant) 86 | t1 = (-b - discriminant) / (2.0*a) 87 | t2 = (-b + discriminant) / (2.0*a) 88 | if i == start_i: 89 | if t1 >= 0.0 and t1 <= 1.0 and t1 >= start_t: 90 | first_t = t1 91 | first_i = i 92 | first_p = start + t1 * V 93 | break 94 | if t2 >= 0.0 and t2 <= 1.0 and t2 >= start_t: 95 | first_t = t2 96 | first_i = i 97 | first_p = start + t2 * V 98 | break 99 | elif t1 >= 0.0 and t1 <= 1.0: 100 | first_t = t1 101 | first_i = i 102 | first_p = start + t1 * V 103 | break 104 | elif t2 >= 0.0 and t2 <= 1.0: 105 | first_t = t2 106 | first_i = i 107 | first_p = start + t2 * V 108 | break 109 | # wrap around to the beginning of the trajectory if no intersection is found1 110 | if wrap and first_p is None: 111 | for i in range(-1, start_i): 112 | start = trajectory[i % trajectory.shape[0],:] 113 | end = trajectory[(i+1) % trajectory.shape[0],:]+1e-6 114 | V = end - start 115 | 116 | a = np.dot(V,V) 117 | b = 2.0*np.dot(V, start - point) 118 | c = np.dot(start, start) + np.dot(point,point) - 2.0*np.dot(start, point) - radius*radius 119 | discriminant = b*b-4*a*c 120 | 121 | if discriminant < 0: 122 | continue 123 | discriminant = np.sqrt(discriminant) 124 | t1 = (-b - discriminant) / (2.0*a) 125 | t2 = (-b + discriminant) / (2.0*a) 126 | if t1 >= 0.0 and t1 <= 1.0: 127 | first_t = t1 128 | first_i = i 129 | first_p = start + t1 * V 130 | break 131 | elif t2 >= 0.0 and t2 <= 1.0: 132 | first_t = t2 133 | first_i = i 134 | first_p = start + t2 * V 135 | break 136 | 137 | return first_p, first_i, first_t 138 | 139 | #@njit(fastmath=False, cache=True) 140 | def get_actuation(pose_theta, lookahead_point, position, lookahead_distance, wheelbase): 141 | waypoint_y = np.dot(np.array([np.sin(-pose_theta), np.cos(-pose_theta)]), lookahead_point[0:2]-position) 142 | speed = lookahead_point[2] 143 | if np.abs(waypoint_y) < 1e-6: 144 | return speed, 0. 145 | radius = 1/(2.0*waypoint_y/lookahead_distance**2) 146 | steering_angle = np.arctan(wheelbase/radius) 147 | return speed, steering_angle 148 | 149 | @njit(fastmath=False, cache=True) 150 | def pi_2_pi(angle): 151 | if angle > math.pi: 152 | return angle - 2.0 * math.pi 153 | if angle < -math.pi: 154 | return angle + 2.0 * math.pi 155 | 156 | return angle 157 | 158 | ####################################################################################### 159 | ##################### Pure Pursuit Planner ###################################### 160 | ####################################################################################### 161 | 162 | class PurePursuitPlanner: 163 | """ 164 | This is the PurePursuit ALgorithm that is traccking the desired path. In this case we are following the curvature 165 | optimal raceline. 166 | """ 167 | def __init__(self, conf, wb): 168 | self.wheelbase = wb 169 | self.conf = conf 170 | self.load_waypoints(conf) 171 | self.max_reacquire = 20. 172 | 173 | def load_waypoints(self, conf): 174 | # Loading the x and y waypoints in the "..._raceline.vsv" that include the path to follow 175 | self.waypoints = np.loadtxt(conf.wpt_path, delimiter=conf.wpt_delim, skiprows=conf.wpt_rowskip) 176 | 177 | def _get_current_waypoint(self, waypoints, lookahead_distance, position, theta): 178 | # Find the current waypoint on the map and calculate the lookahead point for the controller 179 | wpts = np.vstack((self.waypoints[:, self.conf.wpt_xind], self.waypoints[:, self.conf.wpt_yind])).T 180 | nearest_point, nearest_dist, t, i = nearest_point_on_trajectory(position, wpts) 181 | 182 | ########################################### 183 | # DEBUG 184 | ########################################## 185 | 186 | debugplot = 0 187 | if debugplot == 1: 188 | plt.cla() 189 | # plt.axis([-40, 2, -10, 10]) 190 | plt.axis([position[0] - 10, position[0] + 8.5, position[1] - 3.5, position[1] + 3.5]) 191 | plt.plot(self.waypoints[:, [1]], self.waypoints[:, [2]], linestyle='solid', linewidth=2, color='#005293') 192 | plt.plot(position[0], position[1], marker='o', color='green') 193 | plt.plot(nearest_point[0], nearest_point[1], marker='o', color='red') 194 | plt.pause(0.001) 195 | plt.axis('equal') 196 | 197 | ########################################### 198 | # DEBUG 199 | ########################################### 200 | 201 | if nearest_dist < lookahead_distance: 202 | lookahead_point, i2, t2 = first_point_on_trajectory_intersecting_circle(position, lookahead_distance, wpts, i+t, wrap=True) 203 | if i2 == None: 204 | return None 205 | current_waypoint = np.empty((3, )) 206 | # x, y 207 | current_waypoint[0:2] = wpts[i2, :] 208 | # speed 209 | current_waypoint[2] = waypoints[i, self.conf.wpt_vind] 210 | return current_waypoint 211 | elif nearest_dist < self.max_reacquire: 212 | return np.append(wpts[i, :], waypoints[i, self.conf.wpt_vind]) 213 | else: 214 | return None 215 | 216 | def plan(self, pose_x, pose_y, pose_theta, lookahead_distance, vgain): 217 | position = np.array([pose_x, pose_y]) 218 | lookahead_point = self._get_current_waypoint(self.waypoints, lookahead_distance, position, pose_theta) 219 | 220 | if lookahead_point is None: 221 | return 4.0, 0.0 222 | 223 | speed, steering_angle = get_actuation(pose_theta, lookahead_point, position, lookahead_distance, self.wheelbase) 224 | speed = vgain * speed 225 | 226 | return speed, steering_angle 227 | 228 | 229 | ####################################################################################### 230 | ##################### SVL Simulator Environment ################################# 231 | ####################################################################################### 232 | 233 | # Create the environment variable 234 | env = Env() 235 | 236 | # set simhost and adehost in C:\Windows\System32\drivers\etc\hosts 237 | SIMULATOR_HOST = env.str("LGSVL__SIMULATOR_HOST", '192.168.1.41') 238 | # SIMULATOR_BRIDGE = env.str("LGSVL__SIMULATOR_BRIDGE", 'adehost1') 239 | SIMULATOR_BRIDGE = None 240 | SIMULATOR_BRIDGE_PORT = env.str("LGSVL__SIMULATOR_BRIDGE_PORT", '9091') 241 | 242 | if SIMULATOR_HOST is None: 243 | print("Set env LGSVL__SIMULATOR_BRIDGE") 244 | exit() 245 | if SIMULATOR_BRIDGE is None: 246 | print("Set env LGSVL__SIMULATOR_HOST") 247 | 248 | # Create the sim instance and connect to the SVL Simulator 249 | sim = lgsvl.Simulator(SIMULATOR_HOST, env.int("LGSVL__SIMULATOR_PORT", lgsvl.wise.SimulatorSettings.simulator_port)) 250 | map_uuid = "781b04c8-43b4-431e-af55-1ae2b2efc873" #Red Bull 251 | # map_uuid = "62765742-57bf-4ccd-85e5-db8295d34ead" #IMS 252 | # map_uuid = "a3be7bf6-b5a6-4e48-833d-a1f1dd6d7a1e" #LVMS 253 | 254 | # Load the Racetrack and create the scene/environment 255 | if sim.current_scene == map_uuid: 256 | sim.reset() 257 | else: 258 | sim.load(map_uuid) 259 | 260 | spawns = sim.get_spawn() 261 | 262 | # Load the EGO vehicle and spawn it on the track 263 | state = lgsvl.AgentState() 264 | state.transform = spawns[0] 265 | 266 | ego_sensors_id = "3c0417f5-98d4-41ad-ad6d-10d2b0130f77" # Vehicle F1Tenth Config WITH sensors and bridge, run and enable ADE lgsvl_bridge host 267 | 268 | ego = sim.add_agent(name = ego_sensors_id, agent_type = lgsvl.AgentType.EGO, state = None) # Vehicle F1Tenth Config WITHOUT sensors 269 | 270 | if SIMULATOR_BRIDGE is not None: 271 | ego.connect_bridge(SIMULATOR_BRIDGE, int(SIMULATOR_BRIDGE_PORT)) #connect to LGSVL bridge 272 | print("Waiting for connection to ROS2 bridge ...") 273 | while not ego.bridge_connected: 274 | time.sleep(1) 275 | 276 | # Load the Sensors of the vehicle 277 | sensors = ego.get_sensors() 278 | 279 | # Set a new daytime for the simulator, Time of day can be set from 0 ... 24 280 | print("Current Day time in Simulation:", sim.time_of_day) 281 | sim.set_time_of_day(11.8) 282 | 283 | 284 | # The simulator can be run for a set amount of time. 285 | # time_limit is optional and if omitted or set to 0, then the simulator will run indefinitely 286 | # Create Steps for running the simulation step by step 287 | step_time = 0.1 # Simulation Timestep in s 288 | duration = 100 # Duration of Simulation in s 289 | step_rate = int(1.0 / step_time) 290 | steps = duration * step_rate # Calculate total of time steps 291 | print("Stepping forward for {} steps of {}s per step" .format(steps, step_time)) 292 | 293 | 294 | # Initial Ego Position - needs to be special because of our coordinate system 295 | s = ego.state 296 | s.position.x = -0.044086 # equals original x in our raceline data 297 | s.position.z = 0.8491629 # equals original (-)y in our raceline data 298 | s.rotation.y = 270-195 # 270 =- original value from raceline heading, if statement for pi and -pi 299 | ego.state = s 300 | 301 | # Create Planner object for Correct Planner class 302 | with open('config_Spielberg_map.yaml') as file: 303 | conf_dict = yaml.load(file, Loader=yaml.FullLoader) 304 | conf = Namespace(**conf_dict) 305 | planner = PurePursuitPlanner(conf, 0.17145 + 0.15875) 306 | 307 | # Create Controller object for the SVL Simulator 308 | c = lgsvl.VehicleControl() 309 | 310 | # Set Parameter for the Planner and the environment 311 | lookahead_distance= 1.7 312 | vgain = 1.05 313 | lap_counter = 0 314 | 315 | # Providing Time Measurements: Real Time and Simulation Time 316 | t0 = time.time() 317 | current_sim_time = sim.current_time 318 | 319 | for i in range(steps): 320 | 321 | sim.run(time_limit=step_time) 322 | 323 | # Get the current Information from the vehicle State 324 | state = ego.state # Create a state variable for the vehicle 325 | pos = state.position # Get vehicle position: X,Y,Y 326 | rot= state.rotation # Get vehicle rotation/heading: X,Y,Y 327 | speed = state.speed # Get vehicle speed: X,Y,Y 328 | 329 | #Make correct transformation for the usage with the F1TENTH coordination 330 | pp_vehicle_x = -pos.x 331 | pp_vehicle_y = -pos.z 332 | pp_heading = np.deg2rad(270-rot.y) 333 | 334 | # Call the Pure Pursuit Planner 335 | pp_speed, pp_steer = planner.plan(pp_vehicle_x,pp_vehicle_y,pp_heading, lookahead_distance, vgain) 336 | 337 | # Match the steering angle from the pp calculations to the SVL Simulator steering 338 | # 30 Degree: max steering angle of F1TENTH car = 0.523599 rad 339 | pp_steer = -pp_steer/0.523599 340 | 341 | # Match Steering angle from the pp calculations to the max Steering of SVL Simulator: -1/1 342 | if pp_steer > 1: 343 | pp_steer = 1 344 | elif pp_steer < -1: 345 | pp_steer = -1 346 | 347 | # Match the steering angle from the pp calculations to the SVL Simulator steering 348 | # Throttle Position 1 = 7.07888 m/s 349 | pp_speed = pp_speed / 7.078882266 350 | 351 | # Create Control Commands for the SVL simulator and send steering and speed to SVL 352 | c.throttle = pp_speed 353 | c.steering = pp_steer 354 | 355 | # a True in apply_control means the control will be continuously applied ("sticky"). False means the control will be applied for 1 frame 356 | ego.apply_control(c, True) 357 | 358 | 359 | 360 | t1 = time.time() 361 | print("Real time elapsed =", t1 - t0) 362 | print("Simulation time elapsed =", sim.current_time - current_sim_time) 363 | -------------------------------------------------------------------------------- /simulations/F1Tenth-API/config_Spielberg_map.yaml: -------------------------------------------------------------------------------- 1 | # metadata 2 | run_name: 'map_wide' 3 | logging: 'True' 4 | # characteristic number for map 5 | perf_num: 6 6 | 7 | # map paths 8 | map_path: './Spielberg_map' 9 | map_ext: '.png' 10 | 11 | # Before Start\ Finish Line: 5.5572091; 0.6514429; 3.4033109 12 | # Start\ Finish Line: -0.0440806;-0.8491629;3.4034118; 13 | # T1 (Niki Lauda): -26.8810112; -8.0811682; 3.3949863; 14 | # T2 (Remus): -72.7851387; 47.1581236; 2.3546648 15 | # Middle section: -51.7582509;52.9369422;6.1060188; 16 | # T3 (Schlossgold): 17 | # T4 (Rauch): 18 | # T5 (Wuerth): -44.1425135;20.8809411;5.3546563 19 | # T7 (Rindt): 20 | 21 | sx: -0.0440806 22 | sy: -0.8491629 23 | stheta: 3.4034118 24 | 25 | sx2: -72.7851387 26 | sy2: 47.1581236 27 | stheta2: 2.3546648 28 | 29 | sx3: 2.6599770 30 | sy3: -0.1246830 31 | stheta3: 3.4 32 | 33 | 34 | # raceline path and indices 35 | wpt_path: './Spielberg_raceline_2.csv' 36 | wpt_path2: './Spielberg_centerline.csv' 37 | wpt_delim: ';' 38 | wpt_rowskip: 3 39 | wpt_xind: 1 40 | wpt_yind: 2 41 | wpt_thind: 3 42 | wpt_vind: 5 43 | 44 | # varied params bound 45 | # physical params 46 | mass_min: 3.0 47 | mass_max: 4.0 48 | lf_min: 0.147 49 | lf_max: 0.170 50 | # controller params 51 | tlad_min: 0.2 52 | tlad_max: 5. 53 | vgain_min: 0.5 54 | vgain_max: 1.5 55 | 56 | # computation budget (can think of it as gen_num times pop_size) 57 | popsize: 100 58 | budget: 1000 59 | 60 | # optimization method 61 | optim_method: 'CMA' 62 | 63 | # seed 64 | seed: 12345 -------------------------------------------------------------------------------- /simulations/LVMS-Dallara-AutowareAuto-2-EGOs/Multi_Ego-LVMS-API.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright (c) 2019-2021 LG Electronics, Inc. 4 | # 5 | # This software contains code licensed as described in LICENSE. 6 | # 7 | 8 | from environs import Env 9 | import lgsvl 10 | import time 11 | import yaml 12 | import numpy as np 13 | from argparse import Namespace 14 | 15 | 16 | ####################################################################################### 17 | ##################### SVL Simulator Environment ################################# 18 | ####################################################################################### 19 | 20 | # Create the environment variable 21 | env = Env() 22 | 23 | SIMULATOR_HOST = env.str("OSSDC__SIMULATOR_HOST", '192.168.1.41') 24 | if SIMULATOR_HOST is None: 25 | print("Set env OSSDC__SIMULATOR_HOST") 26 | exit() 27 | 28 | SIMULATOR_API_PORT = env.str("OSSDC__SIMULATOR_API_PORT", '8181') 29 | if SIMULATOR_API_PORT is None: 30 | print("Set env OSSDC__SIMULATOR_API_PORT") 31 | exit() 32 | 33 | SIMULATOR_BRIDGE_HOST_1 = env.str("OSSDC__SIMULATOR_BRIDGE_HOST_1", '192.168.1.35') 34 | if SIMULATOR_BRIDGE_HOST_1 is None: 35 | print("Set env OSSDC__SIMULATOR_BRIDGE_HOST_1") 36 | 37 | SIMULATOR_BRIDGE_HOST_2 = env.str("OSSDC__SIMULATOR_BRIDGE_HOST_2", '192.168.1.35') 38 | if SIMULATOR_BRIDGE_HOST_2 is None: 39 | print("Set env OSSDC__SIMULATOR_BRIDGE_HOST_2") 40 | 41 | SIMULATOR_BRIDGE_PORT_1 = env.str("OSSDC__SIMULATOR_BRIDGE_PORT_1", "9090") 42 | if SIMULATOR_BRIDGE_PORT_1 is None: 43 | print("Set env OSSDC__SIMULATOR_BRIDGE_PORT_1") 44 | 45 | SIMULATOR_BRIDGE_PORT_2 = env.str("OSSDC__SIMULATOR_BRIDGE_PORT_2", "9091") 46 | if SIMULATOR_BRIDGE_PORT_2 is None: 47 | print("Set env OSSDC__SIMULATOR_BRIDGE_PORT_2") 48 | 49 | # Create the sim instance and connect to the SVL Simulator 50 | sim = lgsvl.Simulator(SIMULATOR_HOST, int(SIMULATOR_API_PORT)) 51 | # map_uuid = "781b04c8-43b4-431e-af55-1ae2b2efc873" # RedBull 52 | map_uuid = "a3be7bf6-b5a6-4e48-833d-a1f1dd6d7a1e" #LVMS 53 | # map_uuid = "431292c2-f6f6-4f5a-ae62-0964f6018d20" #Highway101GLE 54 | 55 | if sim.current_scene == map_uuid: 56 | sim.reset() 57 | else: 58 | sim.load(map_uuid) 59 | 60 | spawns = sim.get_spawn() 61 | 62 | # Load the EGO vehicle and spawn it on the track 63 | state = lgsvl.AgentState() 64 | state.transform = spawns[0] 65 | 66 | 67 | sensorsConfig = "bca640a7-4b05-4df6-9284-98b3cd18dd06" # Dallara Vehicle with OSSDC AutowareAuto AVP config 68 | 69 | ego = sim.add_agent(name = sensorsConfig, agent_type = lgsvl.AgentType.EGO, state = None) 70 | 71 | if SIMULATOR_BRIDGE_HOST_1 is not None: 72 | ego.connect_bridge(SIMULATOR_BRIDGE_HOST_1, int(SIMULATOR_BRIDGE_PORT_1)) #connect to LGSVL bridge 73 | print("EGO1 Waiting for connection to ROS2 bridge ...") 74 | while not ego.bridge_connected: 75 | time.sleep(1) 76 | 77 | # Load an NPC and spawn it on the track 78 | ego2 = sim.add_agent(name = sensorsConfig, agent_type =lgsvl.AgentType.EGO, state = None) 79 | 80 | if SIMULATOR_BRIDGE_HOST_2 is not None: 81 | ego2.connect_bridge(SIMULATOR_BRIDGE_HOST_2, int(SIMULATOR_BRIDGE_PORT_2)) #connect to LGSVL bridge 82 | print("EGO2 Waiting for connection to ROS2 bridge ...") 83 | while not ego2.bridge_connected: 84 | time.sleep(1) 85 | 86 | 87 | # Set a new daytime for the simulator, Time of day can be set from 0 ... 24 88 | print("Current time:", sim.time_of_day) 89 | sim.set_time_of_day(18) 90 | print(sim.time_of_day) 91 | 92 | # The simulator can be run for a set amount of time. 93 | # time_limit is optional and if omitted or set to 0, then the simulator will run indefinitely 94 | # Create Steps for running the simulation step by step 95 | step_time = 0.1 96 | duration = 10000000 97 | 98 | 99 | step_rate = int(1.0 / step_time) 100 | steps = duration * step_rate 101 | print("Stepping forward for {} steps of {}s per step" .format(steps, step_time)) 102 | 103 | # Initial Ego Position - needs to be special because of our coordinate system 104 | s = ego.state 105 | x=125.231+8; 106 | y=122.0; 107 | z=-138.280 108 | s.position.x = x # equals original x in our raceline data 109 | s.rotation.y = y # 270 =- original value from raceline heading, if statement for pi and -pi 110 | s.position.z = z # equals original (-)y in our raceline data 111 | ego.state = s 112 | 113 | 114 | s2 = ego2.state 115 | x2=125.231; 116 | y2=122.0; 117 | z2=-138.280 118 | s2.position.x = x2 # equals original x in our raceline data 119 | s2.rotation.y = y2 # 270 =- original value from raceline heading, if statement for pi and -pi 120 | s2.position.z = z2 # equals original (-)y in our raceline data 121 | ego2.state = s2 122 | 123 | 124 | # sim.run(0) #time_limit=step_time) 125 | 126 | for i in range(steps): 127 | sim.run(time_limit=step_time) 128 | 129 | -------------------------------------------------------------------------------- /simulations/LVMS-Dallara-AutowareAuto-2-EGOs/README.md: -------------------------------------------------------------------------------- 1 | # Install ADE (one time only) 2 | 3 |
  4 | sh OSSDC-SIM-Demos/scripts/install-ade.sh
  5 | 
6 | 7 | # Clone AutowareAuto (OSSDC version, one time only) 8 | 9 |
 10 | cd ~/adehome
 11 | git clone --recurse-submodules https://gitlab.com/OSSDC/AutowareAuto AutowareAuto-OSSDC
 12 | cd AutowareAuto-OSSDC
 13 | git checkout OSSDC-SIM-Demos
 14 | git pull
 15 | 
16 | 17 | # Start 2 ADE envs, one for each EGO 18 | 19 |
 20 | cd ~/adehome
 21 | pip3 install pexpect
 22 | cd AutowareAuto-OSSDC
 23 | python3 ../OSSDC-SIM-Demos/scripts/ossdc-sim-demo-start-env.py
 24 | 
25 | 26 | # Download and start OSSDC SIM 27 | 28 |
 29 | cd ~/adehome
 30 | wget https://github.com/OSSDC/OSSDC-SIM/releases/download/OSSDC-SIM-v1.1/OSSDC-SIM-v1_1-Linux.zip
 31 | unzip OSSDC-SIM-v1_1-Linux.zip
 32 | chmod +x OSSDC-SIM-v1_1-Linux/OSSDC-SIM
 33 | cp -r OSSDC-SIM-Demos/sim-data/* OSSDC-SIM-v1_1-Linux/
 34 | cd OSSDC-SIM-v1_1-Linux
 35 | bash run-OSSDC-SIM-v1.sh
 36 | 
37 | 38 | # Select and launch (click play button) the OSSDC SIM API simulation 39 | 40 | ![image](https://user-images.githubusercontent.com/51034490/172274409-09b7d394-7cea-4cfa-9562-2e6f62dccded.png) 41 | 42 | # Initialize the map and position the EGOs, set simulator host and bridge IPs 43 | 44 |
 45 | cd ~/adehome
 46 | export OSSDC__SIMULATOR_HOST=127.0.0.1
 47 | export OSSDC__SIMULATOR_BRIDGE_HOST_1=127.0.0.1
 48 | export OSSDC__SIMULATOR_BRIDGE_HOST_2=127.0.0.1
 49 | python3 OSSDC-SIM-Demos/simulations/LVMS-Dallara-AutowareAuto-2-EGOs/Multi_Ego-LVMS-API.py
 50 | 
51 | 52 | # Open a new ade shell and build AutowareAuto 53 | 54 |
 55 | cd ~/adehome
 56 | ./ade --name ade0 enter
 57 | cd AutowareAuto-OSSDC
 58 | bash ../OSSDC-SIM-Demos/scripts/build-autoware-auto.sh
 59 | 
60 | 61 | # Launch AutowareAuto record/replay node 62 | 63 |
 64 | cd ~/adehome
 65 | ./ade --name ade0 enter
 66 | cd AutowareAuto-OSSDC
 67 | source /opt/AutowareAuto/setup.bash
 68 | source install/setup.bash
 69 | bash ../OSSDC-SIM-Demos/scripts/start-record-replay-autoware-auto.sh
 70 | 
71 | 72 | # Open a new shell trigger the replay 73 | 74 |
 75 | cd ~/adehome
 76 | ./ade --name ade0 enter
 77 | cd AutowareAuto-OSSDC
 78 | source /opt/AutowareAuto/setup.bash
 79 | source install/setup.bash
 80 | cp ../OSSDC-SIM-Demos/recorded-tracks/lvms-dallara-1-api-1.csv /tmp/path
 81 | bash ../OSSDC-SIM-Demos/scripts/replay-autoware-auto.sh
 82 | 
83 | 84 | The first car in the simulator should start to move and follow the recorded track 85 | 86 | # Open a new shell to record a new track 87 | 88 |
 89 | cd ~/adehome
 90 | ./ade --name ade0 enter
 91 | cd AutowareAuto-OSSDC
 92 | source /opt/AutowareAuto/setup.bash
 93 | source install/setup.bash
 94 | bash ../OSSDC-SIM-Demos/scripts/replay-autoware-auto.sh
 95 | cp /tmp/path ../OSSDC-SIM-Demos/recorded-tracks/new_track.csv
 96 | 
97 | 98 | # Run OSSDC Race Control Center 99 | 100 |
101 | cd ~/adehome/OSSDC-SIM-Demos/race-control
102 | python race-controller.py
103 | 
104 | 105 | Use the Single_Ego-LVMS-API-race-control.py script which sends the data to race control. 106 | Update the UDP_IP_ADDRESS to point to where the race-controller.py script is running. 107 | -------------------------------------------------------------------------------- /simulations/LVMS-Dallara-AutowareAuto-2-EGOs/Single_Ego-LVMS-API-race-control.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # 3 | # Copyright (c) 2019-2021 LG Electronics, Inc. 4 | # 5 | # This software contains code licensed as described in LICENSE. 6 | # 7 | 8 | from turtle import speed 9 | from environs import Env 10 | import lgsvl 11 | import time 12 | import yaml 13 | import numpy as np 14 | from argparse import Namespace 15 | import socket 16 | 17 | 18 | ####################################################################################### 19 | ##################### SVL Simulator Environment ################################# 20 | ####################################################################################### 21 | 22 | # Create the environment variable 23 | env = Env() 24 | 25 | SIMULATOR_HOST = env.str("OSSDC__SIMULATOR_HOST", '192.168.1.243') 26 | if SIMULATOR_HOST is None: 27 | print("Set env OSSDC__SIMULATOR_HOST") 28 | exit() 29 | 30 | SIMULATOR_API_PORT = env.str("OSSDC__SIMULATOR_API_PORT", '8181') 31 | if SIMULATOR_API_PORT is None: 32 | print("Set env OSSDC__SIMULATOR_API_PORT") 33 | exit() 34 | 35 | SIMULATOR_BRIDGE_HOST_1 = env.str("OSSDC__SIMULATOR_BRIDGE_HOST_1", '192.168.1.35') 36 | if SIMULATOR_BRIDGE_HOST_1 is None: 37 | print("Set env OSSDC__SIMULATOR_BRIDGE_HOST_1") 38 | 39 | # SIMULATOR_BRIDGE_HOST_2 = env.str("OSSDC__SIMULATOR_BRIDGE_HOST_2", '192.168.1.35') 40 | # if SIMULATOR_BRIDGE_HOST_2 is None: 41 | # print("Set env OSSDC__SIMULATOR_BRIDGE_HOST_2") 42 | 43 | SIMULATOR_BRIDGE_PORT_1 = env.str("OSSDC__SIMULATOR_BRIDGE_PORT_1", "9090") 44 | if SIMULATOR_BRIDGE_PORT_1 is None: 45 | print("Set env OSSDC__SIMULATOR_BRIDGE_PORT_1") 46 | 47 | # SIMULATOR_BRIDGE_PORT_2 = env.str("OSSDC__SIMULATOR_BRIDGE_PORT_2", "9091") 48 | # if SIMULATOR_BRIDGE_PORT_2 is None: 49 | # print("Set env OSSDC__SIMULATOR_BRIDGE_PORT_2") 50 | 51 | # Create the sim instance and connect to the SVL Simulator 52 | sim = lgsvl.Simulator(SIMULATOR_HOST, int(SIMULATOR_API_PORT)) 53 | # map_uuid = "781b04c8-43b4-431e-af55-1ae2b2efc873" # RedBull 54 | map_uuid = "a3be7bf6-b5a6-4e48-833d-a1f1dd6d7a1e" #LVMS 55 | # map_uuid = "431292c2-f6f6-4f5a-ae62-0964f6018d20" #Highway101GLE 56 | 57 | if sim.current_scene == map_uuid: 58 | sim.reset() 59 | else: 60 | sim.load(map_uuid) 61 | 62 | spawns = sim.get_spawn() 63 | 64 | # Load the EGO vehicle and spawn it on the track 65 | state = lgsvl.AgentState() 66 | state.transform = spawns[0] 67 | 68 | 69 | sensorsConfig = "bca640a7-4b05-4df6-9284-98b3cd18dd06" # Dallara Vehicle with OSSDC AutowareAuto AVP config 70 | 71 | ego = sim.add_agent(name = sensorsConfig, agent_type = lgsvl.AgentType.EGO, state = None) 72 | 73 | if SIMULATOR_BRIDGE_HOST_1 is not None: 74 | ego.connect_bridge(SIMULATOR_BRIDGE_HOST_1, int(SIMULATOR_BRIDGE_PORT_1)) #connect to LGSVL bridge 75 | print("EGO1 Waiting for connection to ROS2 bridge ...") 76 | while not ego.bridge_connected: 77 | time.sleep(1) 78 | 79 | # # Load an NPC and spawn it on the track 80 | # ego2 = sim.add_agent(name = sensorsConfig, agent_type =lgsvl.AgentType.EGO, state = None) 81 | 82 | # if SIMULATOR_BRIDGE_HOST_2 is not None: 83 | # ego2.connect_bridge(SIMULATOR_BRIDGE_HOST_2, int(SIMULATOR_BRIDGE_PORT_2)) #connect to LGSVL bridge 84 | # print("EGO2 Waiting for connection to ROS2 bridge ...") 85 | # while not ego2.bridge_connected: 86 | # time.sleep(1) 87 | 88 | 89 | # Set a new daytime for the simulator, Time of day can be set from 0 ... 24 90 | print("Current time:", sim.time_of_day) 91 | sim.set_time_of_day(18) 92 | print(sim.time_of_day) 93 | 94 | # The simulator can be run for a set amount of time. 95 | # time_limit is optional and if omitted or set to 0, then the simulator will run indefinitely 96 | # Create Steps for running the simulation step by step 97 | step_time = 0.1 98 | duration = 10000000 99 | 100 | 101 | step_rate = int(1.0 / step_time) 102 | steps = duration * step_rate 103 | print("Stepping forward for {} steps of {}s per step" .format(steps, step_time)) 104 | 105 | # Initial Ego Position - needs to be special because of our coordinate system 106 | s = ego.state 107 | x=125.231+8; 108 | y=122.0; 109 | z=-138.280 110 | s.position.x = x # equals original x in our raceline data 111 | s.rotation.y = y # 270 =- original value from raceline heading, if statement for pi and -pi 112 | s.position.z = z # equals original (-)y in our raceline data 113 | ego.state = s 114 | 115 | 116 | # s2 = ego2.state 117 | # x2=125.231; 118 | # y2=122.0; 119 | # z2=-138.280 120 | # s2.position.x = x2 # equals original x in our raceline data 121 | # s2.rotation.y = y2 # 270 =- original value from raceline heading, if statement for pi and -pi 122 | # s2.position.z = z2 # equals original (-)y in our raceline data 123 | # ego2.state = s2 124 | 125 | 126 | # sim.run(0) #time_limit=step_time) 127 | 128 | clientSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 129 | UDP_IP_ADDRESS = "192.168.1.243" 130 | UDP_PORT_NO = 6789 131 | 132 | 133 | simid = "ego1" 134 | for i in range(steps): 135 | sim.run(time_limit=step_time) 136 | # Get the current Information from the vehicle State 137 | state = ego.state # Create a state variable for the vehicle 138 | pos = state.position # Get vehicle position: X,Y,Y 139 | # rot= state.rotation # Get vehicle rotation/heading: X,Y,Y 140 | speed = state.speed # Get vehicle speed: X,Y,Y 141 | 142 | #Make correct transformation for the usage with the F1TENTH coordination 143 | pp_vehicle_x = pos.x 144 | pp_vehicle_y = pos.z 145 | message = simid + "," + str(pp_vehicle_x) + "," + str(pp_vehicle_y) + "," + str(speed) + ";" 146 | clientSock.sendto(message.encode('utf-8'), (UDP_IP_ADDRESS, UDP_PORT_NO)) 147 | --------------------------------------------------------------------------------