diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/Doxygen/Doxyfile b/Doxygen/Doxyfile old mode 100644 new mode 100755 diff --git a/Doxygen/footer.html b/Doxygen/footer.html old mode 100644 new mode 100755 diff --git a/Doxygen/specialFiles/doxygengroups.h b/Doxygen/specialFiles/doxygengroups.h old mode 100644 new mode 100755 diff --git a/Doxygen/specialFiles/message documentiation b/Doxygen/specialFiles/message documentiation old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 diff --git a/Packet_Generator.py b/Packet_Generator.py old mode 100644 new mode 100755 index 072edd456a90ff4995096eb615189122fee496b9..d16dc9357e7ca17e318982b56c07b11a25439118 --- a/Packet_Generator.py +++ b/Packet_Generator.py @@ -6,7 +6,7 @@ from collections import namedtuple UDP_IP = "127.0.0.1" UDP_PORT1 = 32000 -UDP_PORT2 = 36000 +UDP_PORT2 = 36001 format_ = "<IIIiiiiiiddddddddddddddddddddddddddddddiiiiii" print "UDP target IP:", UDP_IP @@ -15,9 +15,9 @@ print "UDP target port2:", UDP_PORT2 u_struct = namedtuple("u_struct", "sequence pactyp version delx0 delx1 dely0 dely1 delz0 delz1 R_l00 R_l01 R_l02 R_l10 R_l11 R_l12 R_l20 R_l21 R_l22 R_r00 R_r01 R_r02 R_r10 R_r11 R_r12 R_r20 R_r21 R_r22 ltheta1 ltheta2 ld3 ltheta4 ltheta5 ltheta6 rtheta1, rtheta2, rd3, rtheta4, rtheta5, rtheta6 buttonstate0 buttonstate1 grasp0 grasp1 surgeon_mode checksum"); -csvfile1 = open('/home/homa/Documents/raven_2/left.txt'); +csvfile1 = open('/home/junjie/homa_wksp/raven_2/left.txt'); f_left = csv.reader(csvfile1) -csvfile2 = open('/home/homa/Documents/raven_2/right.txt') +csvfile2 = open('/home/junjie/homa_wksp/raven_2/right.txt') f_right = csv.reader(csvfile2) seq = 0; #l_line = f_left.next(); diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/ReadMe b/ReadMe old mode 100644 new mode 100755 diff --git a/Real_Packet_Generator.py b/Real_Packet_Generator.py new file mode 100755 index 0000000000000000000000000000000000000000..ef18a46470f03ea640aa732e1b4f147b7019c8c2 --- /dev/null +++ b/Real_Packet_Generator.py @@ -0,0 +1,90 @@ +import socket +import struct +import csv +import time +from collections import namedtuple + +UDP_IP = "127.0.0.1" +UDP_PORT1 = 32000 +UDP_PORT2 = 36001 +format_ = "<IIIiiiiiiddddddddddddddddddiiiiii" + +print "UDP target IP:", UDP_IP +print "UDP target port1:", UDP_PORT1 +print "UDP target port2:", UDP_PORT2 + +u_struct = namedtuple("u_struct", "sequence pactyp version delx0 delx1 dely0 dely1 delz0 delz1 R_l00 R_l01 R_l02 R_l10 R_l11 R_l12 R_l20 R_l21 R_l22 R_r00 R_r01 R_r02 R_r10 R_r11 R_r12 R_r20 R_r21 R_r22 buttonstate0 buttonstate1 grasp0 grasp1 surgeon_mode checksum"); + +csvfile1 = open('/home/junjie/homa_wksp/teleop_data/data1.csv'); +reader = csv.reader(csvfile1) +seq = 0; + +sock = socket.socket(socket.AF_INET, # Internet + socket.SOCK_DGRAM) # UDP +sock.bind((UDP_IP,UDP_PORT1)) +#Wait for a response from the robot +data = '' +while not data: + print("Waiting for Raven to become ready...") + data = sock.recvfrom(100) + if data[0].find('Ready') < 0: + data = '' + else: + print("Raven is ready...") + +line_no = 0 +# Skip the first packets +for i in range(0,200): + reader.next() +while (seq < 300): + line = reader.next(); + if ((line_no % 10) == 0): + seq = seq + 1; + # Later should look at the runlevel and sublevel to set the surgeon_mode + tuple_to_send = u_struct(sequence = seq, + pactyp = 0, + version = 0, + delx0 = int(float(line[9])), + delx1 = int(float(line[12])), + dely0 = int(float(line[10])), + dely1 = int(float(line[13])), + delz0 = int(float(line[11])), + delz1 = int(float(line[14])), + R_l00 = float(line[15]), + R_l01 = float(line[16]), + R_l02 = float(line[17]), + R_l10 = float(line[18]), + R_l11 = float(line[19]), + R_l12 = float(line[20]), + R_l20 = float(line[21]), + R_l21 = float(line[22]), + R_l22 = float(line[23]), + R_r00 = float(line[24]), + R_r01 = float(line[25]), + R_r02 = float(line[26]), + R_r10 = float(line[27]), + R_r11 = float(line[28]), + R_r12 = float(line[29]), + R_r20 = float(line[30]), + R_r21 = float(line[31]), + R_r22 = float(line[32]), + buttonstate0 = 0, + buttonstate1 = 0, + grasp0 = float((float(line[112])-float(line[113]))/2), + grasp1 = float((float(line[120])-float(line[121]))/2), + surgeon_mode = 1, + checksum=0); + + MESSAGE = struct.pack(format_,*tuple_to_send._asdict().values()); + + print "Packet No. ", seq + print struct.unpack(format_,MESSAGE); + print "\n" + + # Send the command to the robot + sock.sendto(MESSAGE, (UDP_IP, UDP_PORT2)) + time.sleep(0.1) + + line_no = line_no + 1; + + diff --git a/Real_Packet_Generator_2.py b/Real_Packet_Generator_2.py new file mode 100755 index 0000000000000000000000000000000000000000..053ff9bfebae42b2c0ae4205c4dc39a13f46863f --- /dev/null +++ b/Real_Packet_Generator_2.py @@ -0,0 +1,100 @@ +# Goes back and forth, repeating the same trajectory +import socket +import struct +import csv +import time +from collections import namedtuple + +UDP_IP = "127.0.0.1" +UDP_PORT1 = 32000 +UDP_PORT2 = 36001 +format_ = "<IIIiiiiiiddddddddddddddddddiiiiii" + +print "UDP target IP:", UDP_IP +print "UDP target port1:", UDP_PORT1 +print "UDP target port2:", UDP_PORT2 + +u_struct = namedtuple("u_struct", "sequence pactyp version delx0 delx1 dely0 dely1 delz0 delz1 R_l00 R_l01 R_l02 R_l10 R_l11 R_l12 R_l20 R_l21 R_l22 R_r00 R_r01 R_r02 R_r10 R_r11 R_r12 R_r20 R_r21 R_r22 buttonstate0 buttonstate1 grasp0 grasp1 surgeon_mode checksum"); + +csvfile1 = open('/home/junjie/homa_wksp/teleop_data/data1.csv'); +reader = csv.reader(csvfile1); +seq = 0; +fwd_bkw = 0; +while(1): + sock = socket.socket(socket.AF_INET, # Internet + socket.SOCK_DGRAM) # UDP + sock.bind((UDP_IP,UDP_PORT1)) + #Wait for a response from the robot + data = '' + while not data: + print("Waiting for Raven to become ready...") + data = sock.recvfrom(100) + if data[0].find('Ready') < 0: + data = '' + else: + print("Raven is ready...") + + line_no = 0; + packet_count = 0; + if (fwd_bkw == 0): + csvfile1.seek(0); + reader.next() + reader_list = []; + while (packet_count < 200): + if (fwd_bkw == 0): + line = reader.next(); + reader_list.append(line); + else: + line = reader_list[len(reader_list)-line_no-1]; + if ((line_no % 10) == 0): + packet_count = packet_count + 1; + seq = seq + 1; + # Later should look at the runlevel and sublevel to set the surgeon_mode + tuple_to_send = u_struct(sequence = packet_count, + pactyp = 0, + version = 0, + delx0 = int(float(line[9])), + delx1 = int(float(line[12])), + dely0 = int(float(line[10])), + dely1 = int(float(line[13])), + delz0 = int(float(line[11])), + delz1 = int(float(line[14])), + R_l00 = float(line[15]), + R_l01 = float(line[16]), + R_l02 = float(line[17]), + R_l10 = float(line[18]), + R_l11 = float(line[19]), + R_l12 = float(line[20]), + R_l20 = float(line[21]), + R_l21 = float(line[22]), + R_l22 = float(line[23]), + R_r00 = float(line[24]), + R_r01 = float(line[25]), + R_r02 = float(line[26]), + R_r10 = float(line[27]), + R_r11 = float(line[28]), + R_r12 = float(line[29]), + R_r20 = float(line[30]), + R_r21 = float(line[31]), + R_r22 = float(line[32]), + buttonstate0 = 0, + buttonstate1 = 0, + grasp0 = float((float(line[112])-float(line[113]))/2), + grasp1 = float((float(line[120])-float(line[121]))/2), + surgeon_mode = 1, + checksum=0); + + MESSAGE = struct.pack(format_,*tuple_to_send._asdict().values()); + + print "Packet No. ", packet_count + print struct.unpack(format_,MESSAGE); + print "\n" + + # Send the command to the robot + sock.sendto(MESSAGE, (UDP_IP, UDP_PORT2)) + time.sleep(0.1) + + line_no = line_no + 1; + fwd_bkw = 1 - fwd_bkw; + + diff --git a/Real_Packet_Generator_Surgeon.py b/Real_Packet_Generator_Surgeon.py new file mode 100755 index 0000000000000000000000000000000000000000..a33ae24ab4ef4c876a635fc15a51fa3b217b0c68 --- /dev/null +++ b/Real_Packet_Generator_Surgeon.py @@ -0,0 +1,151 @@ +import socket +import struct +import csv +import time +from collections import namedtuple +import threading +import sys +import signal +import time + +UDP_IP = "127.0.0.1" +UDP_PORT1 = 32000 +UDP_PORT2 = 36001 +format_ = "<IIIiiiiiiddddddddddddddddddiiiiii" + +fast_surgeon = 1; +if fast_surgeon: + MAX_LINES = 30000 + FREQ = 0.001 +else: + MAX_LINES = 3000 + FREQ = 0.01 + +#print "UDP target IP:", UDP_IP +#print "UDP target port1:", UDP_PORT1 +#print "UDP target port2:", UDP_PORT2 + +u_struct = namedtuple("u_struct", "sequence pactyp version delx0 delx1 dely0 dely1 delz0 delz1 R_l00 R_l01 R_l02 R_l10 R_l11 R_l12 R_l20 R_l21 R_l22 R_r00 R_r01 R_r02 R_r10 R_r11 R_r12 R_r20 R_r21 R_r22 buttonstate0 buttonstate1 grasp0 grasp1 surgeon_mode checksum"); + +# Not_Ready: state = 0, Operating: state = 1, Stopped: state = 2 +robot_state = 0; +sock1 = socket.socket(socket.AF_INET, # Internet + socket.SOCK_DGRAM) # UDP +sock1.bind((UDP_IP,UDP_PORT1)) +sock2 = socket.socket(socket.AF_INET, # Internet + socket.SOCK_DGRAM) # UDP +def readSignals(): + global robot_state + while(1): + data = sock1.recvfrom(100) + if (robot_state == 0): + if (data[0].find('Ready') > -1): + robot_state = 1; + else: + robot_state = 0; + + elif (robot_state == 1): + print "\rRaven is ready...", + if (data[0].find('Stopped') > -1): + robot_state = 2; + else: + robot_state = 1; + + elif (robot_state == 2): + print "\rRaven is stopped...", + if (data[0].find('Ready') > -1): + robot_state = 1; + else: + robot_state = 2; + +def sendPackets(): + seq = 0; + line_no = 0; + line = []; + csvfile1 = open('/home/junjie/homa_wksp/teleop_data/data1.csv'); + reader = csv.reader(csvfile1) + + # Skip the first packets + for i in range(0,200): + line = reader.next() + + global robot_state + + while (robot_state == 0): + print "\rWaiting for Raven...", + + # Send trajectory packets until the operation is done (e.g. 300 steps) + # Skip every 10 packets in the trajectory + while (line_no < MAX_LINES): + # If robot is ready, update the packet to be sent + if (robot_state == 1): + for i in range(0,1): + line = reader.next(); + line_no = line_no + 1; + print "Sending New Packet" + seq = seq + 1; + # Construct the packet to send + # Later should look at the runlevel and sublevel to set the surgeon_mode + tuple_to_send = u_struct(sequence = seq, + pactyp = 0, + version = 0, + delx0 = int(float(line[9])), + delx1 = int(float(line[12])), + dely0 = int(float(line[10])), + dely1 = int(float(line[13])), + delz0 = int(float(line[11])), + delz1 = int(float(line[14])), + R_l00 = float(line[15]), + R_l01 = float(line[16]), + R_l02 = float(line[17]), + R_l10 = float(line[18]), + R_l11 = float(line[19]), + R_l12 = float(line[20]), + R_l20 = float(line[21]), + R_l21 = float(line[22]), + R_l22 = float(line[23]), + R_r00 = float(line[24]), + R_r01 = float(line[25]), + R_r02 = float(line[26]), + R_r10 = float(line[27]), + R_r11 = float(line[28]), + R_r12 = float(line[29]), + R_r20 = float(line[30]), + R_r21 = float(line[31]), + R_r22 = float(line[32]), + buttonstate0 = 0, + buttonstate1 = 0, + grasp0 = float((float(line[112])-float(line[113]))/2), + grasp1 = float((float(line[120])-float(line[121]))/2), + surgeon_mode = 1, + checksum=0); + MESSAGE = struct.pack(format_,*tuple_to_send._asdict().values()); + if (robot_state == 1): + print struct.unpack(format_,MESSAGE); + print "\n" + # Send the command to the robot + sock2.sendto(MESSAGE, (UDP_IP, UDP_PORT2)) + time.sleep(FREQ) + # If in robot_s stay with the same packet but with new seq number + elif (robot_state == 2): + print "\rWaiting for the robot to be restarted", + sys.stdout.flush(); + sys.exit() + +t1 = threading.Thread(target=readSignals); +t2 = threading.Thread(target=sendPackets); +t1.daemon = True; +t2.daemon = True; +t1.start(); +t2.start(); + +while(1): + time.sleep(1) + + + + + + + + diff --git a/Relay_Start_Signal/Relay_Start_Signal.ino b/Relay_Start_Signal/Relay_Start_Signal.ino new file mode 100755 index 0000000000000000000000000000000000000000..5543839b3939e107893a5f29fc085698dfb6a256 --- /dev/null +++ b/Relay_Start_Signal/Relay_Start_Signal.ino @@ -0,0 +1,57 @@ +// RelayShieldDemoCode.pde to control seeed relay shield by arduino. +// Copyright (c) 2010 seeed technology inc. +// Author: Steve Chang +// Version: september 2, 2010 +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +unsigned char relayPin[4] = {4,5,6,7}; +int relayNum = 3; +String inputString = ""; // a string to hold incoming data +boolean stringComplete = false; // whether the string is complete + +void(*resetFunc)(void)=0; + +void setup() +{ + // initialize serial communication at 9600 bits per second: + Serial.begin(9600); + // Relay Pin for resetting PLC + pinMode(relayPin[relayNum],OUTPUT); +} + +void loop() { + // print the string when a newline arrives: + if (inputString == "1") + { + //Serial.println("Send Start Signal.."); + digitalWrite(relayPin[relayNum],HIGH); + delay(1000); + digitalWrite(relayPin[relayNum],LOW); + delay(1000); + } + // clear the string: + inputString = ""; +} + +// Wait for the start signal sent by the code, then send it +void serialEvent() { + while (Serial.available()) { + // get the new byte: + inputString += (char)Serial.read(); + //Serial.println(inputString); + } +} + diff --git a/bin/err_network.log b/bin/err_network.log old mode 100644 new mode 100755 diff --git a/bin/r2_control b/bin/r2_control index ed38bf765dd4aa2d4dd9d9a425fd2b366621cbfa..78c28fffccd4604f58d40a56527b5031d20ac600 100755 Binary files a/bin/r2_control and b/bin/r2_control differ diff --git a/cfg/MyStuff.cfg b/cfg/MyStuff.cfg new file mode 100755 index 0000000000000000000000000000000000000000..d1e06e0c0bbb32db62b09ed2a9d3f540afb17cbf --- /dev/null +++ b/cfg/MyStuff.cfg @@ -0,0 +1,31 @@ +#! /usr/bin/env python +# Raven Visualization offset configuration + +PACKAGE='raven_2' +import roslib; roslib.load_manifest(PACKAGE) + + + +from dynamic_reconfigure.parameter_generator import * + +gen = ParameterGenerator() +# Name Type Reconfiguration level Description Default Min Max +gen.add("shoulder_l", double_t, 0, "An offet to add to the shoulder_l", 0, -50, 50) +gen.add("elbow_l", double_t, 0, "An offet to add to the elbow_l", 0, -50, 50) +gen.add("insertion_l", double_t, 0, "An offet to add to the insertion_l", 0, -50, 50) +gen.add("roll_l", double_t, 0, "An offet to add to the roll_l", 0, -50, 50) +gen.add("wrist_l", double_t, 0, "An offet to add to the wrist_l", 0, -50, 50) +gen.add("grasp1_l", double_t, 0, "An offet to add to the grasp1_l", 0, -50, 50) +gen.add("grasp2_l", double_t, 0, "An offet to add to the grasp2_l", 0, -50, 50) + +gen.add("shoulder_r", double_t, 0, "An offet to add to the shoulder_r", 0, -50, 50) +gen.add("elbow_r", double_t, 0, "An offet to add to the elbow_r", 0, -50, 50) +gen.add("insertion_r", double_t, 0, "An offet to add to the shoulder_r", 0, -50, 50) +gen.add("roll_r", double_t, 0, "An offet to add to the roll_r", 0, -50, 50) +gen.add("wrist_r", double_t, 0, "An offet to add to the wrist_r", 0, -50, 50) +gen.add("grasp1_r", double_t, 0, "An offet to add to the grasp1_r", 0, -50, 50) +gen.add("grasp2_r", double_t, 0, "An offet to add to the grasp2_r", 0, -50, 50) + + +exit(gen.generate(PACKAGE, "dynamic_reconfigure_node", "MyStuff")) + diff --git a/cfg/MyStuff.cfgc b/cfg/MyStuff.cfgc new file mode 100755 index 0000000000000000000000000000000000000000..5983de8604c35b8e19e2cc731bdfa703f7304f93 Binary files /dev/null and b/cfg/MyStuff.cfgc differ diff --git a/cfg/cpp/raven_2/MyStuffConfig.h b/cfg/cpp/raven_2/MyStuffConfig.h new file mode 100755 index 0000000000000000000000000000000000000000..03e26ca6cd04434186e388f80a17192bbfec675c --- /dev/null +++ b/cfg/cpp/raven_2/MyStuffConfig.h @@ -0,0 +1,691 @@ +//#line 2 "/opt/ros/indigo/share/dynamic_reconfigure/templates/ConfigType.h.template" +// ********************************************************* +// +// File autogenerated for the raven_2 package +// by the dynamic_reconfigure package. +// Please do not edit. +// +// ********************************************************/ + +/*********************************************************** + * Software License Agreement (BSD License) + * + * Copyright (c) 2008, Willow Garage, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of the Willow Garage nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + ***********************************************************/ + +// Author: Blaise Gassend + + +#ifndef __raven_2__MYSTUFFCONFIG_H__ +#define __raven_2__MYSTUFFCONFIG_H__ + +#include <dynamic_reconfigure/config_tools.h> +#include <limits> +#include <ros/node_handle.h> +#include <dynamic_reconfigure/ConfigDescription.h> +#include <dynamic_reconfigure/ParamDescription.h> +#include <dynamic_reconfigure/Group.h> +#include <dynamic_reconfigure/config_init_mutex.h> +#include <boost/any.hpp> + +namespace raven_2 +{ + class MyStuffConfigStatics; + + class MyStuffConfig + { + public: + class AbstractParamDescription : public dynamic_reconfigure::ParamDescription + { + public: + AbstractParamDescription(std::string n, std::string t, uint32_t l, + std::string d, std::string e) + { + name = n; + type = t; + level = l; + description = d; + edit_method = e; + } + + virtual void clamp(MyStuffConfig &config, const MyStuffConfig &max, const MyStuffConfig &min) const = 0; + virtual void calcLevel(uint32_t &level, const MyStuffConfig &config1, const MyStuffConfig &config2) const = 0; + virtual void fromServer(const ros::NodeHandle &nh, MyStuffConfig &config) const = 0; + virtual void toServer(const ros::NodeHandle &nh, const MyStuffConfig &config) const = 0; + virtual bool fromMessage(const dynamic_reconfigure::Config &msg, MyStuffConfig &config) const = 0; + virtual void toMessage(dynamic_reconfigure::Config &msg, const MyStuffConfig &config) const = 0; + virtual void getValue(const MyStuffConfig &config, boost::any &val) const = 0; + }; + + typedef boost::shared_ptr<AbstractParamDescription> AbstractParamDescriptionPtr; + typedef boost::shared_ptr<const AbstractParamDescription> AbstractParamDescriptionConstPtr; + + template <class T> + class ParamDescription : public AbstractParamDescription + { + public: + ParamDescription(std::string name, std::string type, uint32_t level, + std::string description, std::string edit_method, T MyStuffConfig::* f) : + AbstractParamDescription(name, type, level, description, edit_method), + field(f) + {} + + T (MyStuffConfig::* field); + + virtual void clamp(MyStuffConfig &config, const MyStuffConfig &max, const MyStuffConfig &min) const + { + if (config.*field > max.*field) + config.*field = max.*field; + + if (config.*field < min.*field) + config.*field = min.*field; + } + + virtual void calcLevel(uint32_t &comb_level, const MyStuffConfig &config1, const MyStuffConfig &config2) const + { + if (config1.*field != config2.*field) + comb_level |= level; + } + + virtual void fromServer(const ros::NodeHandle &nh, MyStuffConfig &config) const + { + nh.getParam(name, config.*field); + } + + virtual void toServer(const ros::NodeHandle &nh, const MyStuffConfig &config) const + { + nh.setParam(name, config.*field); + } + + virtual bool fromMessage(const dynamic_reconfigure::Config &msg, MyStuffConfig &config) const + { + return dynamic_reconfigure::ConfigTools::getParameter(msg, name, config.*field); + } + + virtual void toMessage(dynamic_reconfigure::Config &msg, const MyStuffConfig &config) const + { + dynamic_reconfigure::ConfigTools::appendParameter(msg, name, config.*field); + } + + virtual void getValue(const MyStuffConfig &config, boost::any &val) const + { + val = config.*field; + } + }; + + class AbstractGroupDescription : public dynamic_reconfigure::Group + { + public: + AbstractGroupDescription(std::string n, std::string t, int p, int i, bool s) + { + name = n; + type = t; + parent = p; + state = s; + id = i; + } + + std::vector<AbstractParamDescriptionConstPtr> abstract_parameters; + bool state; + + virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &config) const = 0; + virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &config) const =0; + virtual void updateParams(boost::any &cfg, MyStuffConfig &top) const= 0; + virtual void setInitialState(boost::any &cfg) const = 0; + + + void convertParams() + { + for(std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = abstract_parameters.begin(); i != abstract_parameters.end(); ++i) + { + parameters.push_back(dynamic_reconfigure::ParamDescription(**i)); + } + } + }; + + typedef boost::shared_ptr<AbstractGroupDescription> AbstractGroupDescriptionPtr; + typedef boost::shared_ptr<const AbstractGroupDescription> AbstractGroupDescriptionConstPtr; + + template<class T, class PT> + class GroupDescription : public AbstractGroupDescription + { + public: + GroupDescription(std::string name, std::string type, int parent, int id, bool s, T PT::* f) : AbstractGroupDescription(name, type, parent, id, s), field(f) + { + } + + GroupDescription(const GroupDescription<T, PT>& g): AbstractGroupDescription(g.name, g.type, g.parent, g.id, g.state), field(g.field), groups(g.groups) + { + parameters = g.parameters; + abstract_parameters = g.abstract_parameters; + } + + virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &cfg) const + { + PT* config = boost::any_cast<PT*>(cfg); + if(!dynamic_reconfigure::ConfigTools::getGroupState(msg, name, (*config).*field)) + return false; + + for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) + { + boost::any n = &((*config).*field); + if(!(*i)->fromMessage(msg, n)) + return false; + } + + return true; + } + + virtual void setInitialState(boost::any &cfg) const + { + PT* config = boost::any_cast<PT*>(cfg); + T* group = &((*config).*field); + group->state = state; + + for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) + { + boost::any n = boost::any(&((*config).*field)); + (*i)->setInitialState(n); + } + + } + + virtual void updateParams(boost::any &cfg, MyStuffConfig &top) const + { + PT* config = boost::any_cast<PT*>(cfg); + + T* f = &((*config).*field); + f->setParams(top, abstract_parameters); + + for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) + { + boost::any n = &((*config).*field); + (*i)->updateParams(n, top); + } + } + + virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &cfg) const + { + const PT config = boost::any_cast<PT>(cfg); + dynamic_reconfigure::ConfigTools::appendGroup<T>(msg, name, id, parent, config.*field); + + for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) + { + (*i)->toMessage(msg, config.*field); + } + } + + T (PT::* field); + std::vector<MyStuffConfig::AbstractGroupDescriptionConstPtr> groups; + }; + +class DEFAULT +{ + public: + DEFAULT() + { + state = true; + name = "Default"; + } + + void setParams(MyStuffConfig &config, const std::vector<AbstractParamDescriptionConstPtr> params) + { + for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator _i = params.begin(); _i != params.end(); ++_i) + { + boost::any val; + (*_i)->getValue(config, val); + + if("shoulder_l"==(*_i)->name){shoulder_l = boost::any_cast<double>(val);} + if("elbow_l"==(*_i)->name){elbow_l = boost::any_cast<double>(val);} + if("insertion_l"==(*_i)->name){insertion_l = boost::any_cast<double>(val);} + if("roll_l"==(*_i)->name){roll_l = boost::any_cast<double>(val);} + if("wrist_l"==(*_i)->name){wrist_l = boost::any_cast<double>(val);} + if("grasp1_l"==(*_i)->name){grasp1_l = boost::any_cast<double>(val);} + if("grasp2_l"==(*_i)->name){grasp2_l = boost::any_cast<double>(val);} + if("shoulder_r"==(*_i)->name){shoulder_r = boost::any_cast<double>(val);} + if("elbow_r"==(*_i)->name){elbow_r = boost::any_cast<double>(val);} + if("insertion_r"==(*_i)->name){insertion_r = boost::any_cast<double>(val);} + if("roll_r"==(*_i)->name){roll_r = boost::any_cast<double>(val);} + if("wrist_r"==(*_i)->name){wrist_r = boost::any_cast<double>(val);} + if("grasp1_r"==(*_i)->name){grasp1_r = boost::any_cast<double>(val);} + if("grasp2_r"==(*_i)->name){grasp2_r = boost::any_cast<double>(val);} + } + } + + double shoulder_l; +double elbow_l; +double insertion_l; +double roll_l; +double wrist_l; +double grasp1_l; +double grasp2_l; +double shoulder_r; +double elbow_r; +double insertion_r; +double roll_r; +double wrist_r; +double grasp1_r; +double grasp2_r; + + bool state; + std::string name; + + +}groups; + + + +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double shoulder_l; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double elbow_l; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double insertion_l; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double roll_l; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double wrist_l; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double grasp1_l; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double grasp2_l; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double shoulder_r; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double elbow_r; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double insertion_r; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double roll_r; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double wrist_r; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double grasp1_r; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + double grasp2_r; +//#line 255 "/opt/ros/indigo/share/dynamic_reconfigure/templates/ConfigType.h.template" + + bool __fromMessage__(dynamic_reconfigure::Config &msg) + { + const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); + const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); + + int count = 0; + for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) + if ((*i)->fromMessage(msg, *this)) + count++; + + for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); i ++) + { + if ((*i)->id == 0) + { + boost::any n = boost::any(this); + (*i)->updateParams(n, *this); + (*i)->fromMessage(msg, n); + } + } + + if (count != dynamic_reconfigure::ConfigTools::size(msg)) + { + ROS_ERROR("MyStuffConfig::__fromMessage__ called with an unexpected parameter."); + ROS_ERROR("Booleans:"); + for (unsigned int i = 0; i < msg.bools.size(); i++) + ROS_ERROR(" %s", msg.bools[i].name.c_str()); + ROS_ERROR("Integers:"); + for (unsigned int i = 0; i < msg.ints.size(); i++) + ROS_ERROR(" %s", msg.ints[i].name.c_str()); + ROS_ERROR("Doubles:"); + for (unsigned int i = 0; i < msg.doubles.size(); i++) + ROS_ERROR(" %s", msg.doubles[i].name.c_str()); + ROS_ERROR("Strings:"); + for (unsigned int i = 0; i < msg.strs.size(); i++) + ROS_ERROR(" %s", msg.strs[i].name.c_str()); + // @todo Check that there are no duplicates. Make this error more + // explicit. + return false; + } + return true; + } + + // This version of __toMessage__ is used during initialization of + // statics when __getParamDescriptions__ can't be called yet. + void __toMessage__(dynamic_reconfigure::Config &msg, const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__, const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__) const + { + dynamic_reconfigure::ConfigTools::clear(msg); + for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) + (*i)->toMessage(msg, *this); + + for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); ++i) + { + if((*i)->id == 0) + { + (*i)->toMessage(msg, *this); + } + } + } + + void __toMessage__(dynamic_reconfigure::Config &msg) const + { + const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); + const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); + __toMessage__(msg, __param_descriptions__, __group_descriptions__); + } + + void __toServer__(const ros::NodeHandle &nh) const + { + const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); + for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) + (*i)->toServer(nh, *this); + } + + void __fromServer__(const ros::NodeHandle &nh) + { + static bool setup=false; + + const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); + for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) + (*i)->fromServer(nh, *this); + + const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); + for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); i++){ + if (!setup && (*i)->id == 0) { + setup = true; + boost::any n = boost::any(this); + (*i)->setInitialState(n); + } + } + } + + void __clamp__() + { + const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); + const MyStuffConfig &__max__ = __getMax__(); + const MyStuffConfig &__min__ = __getMin__(); + for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) + (*i)->clamp(*this, __max__, __min__); + } + + uint32_t __level__(const MyStuffConfig &config) const + { + const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); + uint32_t level = 0; + for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) + (*i)->calcLevel(level, config, *this); + return level; + } + + static const dynamic_reconfigure::ConfigDescription &__getDescriptionMessage__(); + static const MyStuffConfig &__getDefault__(); + static const MyStuffConfig &__getMax__(); + static const MyStuffConfig &__getMin__(); + static const std::vector<AbstractParamDescriptionConstPtr> &__getParamDescriptions__(); + static const std::vector<AbstractGroupDescriptionConstPtr> &__getGroupDescriptions__(); + + private: + static const MyStuffConfigStatics *__get_statics__(); + }; + + template <> // Max and min are ignored for strings. + inline void MyStuffConfig::ParamDescription<std::string>::clamp(MyStuffConfig &config, const MyStuffConfig &max, const MyStuffConfig &min) const + { + return; + } + + class MyStuffConfigStatics + { + friend class MyStuffConfig; + + MyStuffConfigStatics() + { +MyStuffConfig::GroupDescription<MyStuffConfig::DEFAULT, MyStuffConfig> Default("Default", "", 0, 0, true, &MyStuffConfig::groups); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.shoulder_l = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.shoulder_l = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.shoulder_l = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("shoulder_l", "double", 0, "An offet to add to the shoulder_l", "", &MyStuffConfig::shoulder_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("shoulder_l", "double", 0, "An offet to add to the shoulder_l", "", &MyStuffConfig::shoulder_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.elbow_l = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.elbow_l = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.elbow_l = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("elbow_l", "double", 0, "An offet to add to the elbow_l", "", &MyStuffConfig::elbow_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("elbow_l", "double", 0, "An offet to add to the elbow_l", "", &MyStuffConfig::elbow_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.insertion_l = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.insertion_l = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.insertion_l = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("insertion_l", "double", 0, "An offet to add to the insertion_l", "", &MyStuffConfig::insertion_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("insertion_l", "double", 0, "An offet to add to the insertion_l", "", &MyStuffConfig::insertion_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.roll_l = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.roll_l = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.roll_l = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("roll_l", "double", 0, "An offet to add to the roll_l", "", &MyStuffConfig::roll_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("roll_l", "double", 0, "An offet to add to the roll_l", "", &MyStuffConfig::roll_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.wrist_l = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.wrist_l = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.wrist_l = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("wrist_l", "double", 0, "An offet to add to the wrist_l", "", &MyStuffConfig::wrist_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("wrist_l", "double", 0, "An offet to add to the wrist_l", "", &MyStuffConfig::wrist_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.grasp1_l = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.grasp1_l = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.grasp1_l = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("grasp1_l", "double", 0, "An offet to add to the grasp1_l", "", &MyStuffConfig::grasp1_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("grasp1_l", "double", 0, "An offet to add to the grasp1_l", "", &MyStuffConfig::grasp1_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.grasp2_l = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.grasp2_l = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.grasp2_l = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("grasp2_l", "double", 0, "An offet to add to the grasp2_l", "", &MyStuffConfig::grasp2_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("grasp2_l", "double", 0, "An offet to add to the grasp2_l", "", &MyStuffConfig::grasp2_l))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.shoulder_r = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.shoulder_r = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.shoulder_r = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("shoulder_r", "double", 0, "An offet to add to the shoulder_r", "", &MyStuffConfig::shoulder_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("shoulder_r", "double", 0, "An offet to add to the shoulder_r", "", &MyStuffConfig::shoulder_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.elbow_r = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.elbow_r = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.elbow_r = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("elbow_r", "double", 0, "An offet to add to the elbow_r", "", &MyStuffConfig::elbow_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("elbow_r", "double", 0, "An offet to add to the elbow_r", "", &MyStuffConfig::elbow_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.insertion_r = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.insertion_r = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.insertion_r = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("insertion_r", "double", 0, "An offet to add to the shoulder_r", "", &MyStuffConfig::insertion_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("insertion_r", "double", 0, "An offet to add to the shoulder_r", "", &MyStuffConfig::insertion_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.roll_r = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.roll_r = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.roll_r = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("roll_r", "double", 0, "An offet to add to the roll_r", "", &MyStuffConfig::roll_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("roll_r", "double", 0, "An offet to add to the roll_r", "", &MyStuffConfig::roll_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.wrist_r = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.wrist_r = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.wrist_r = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("wrist_r", "double", 0, "An offet to add to the wrist_r", "", &MyStuffConfig::wrist_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("wrist_r", "double", 0, "An offet to add to the wrist_r", "", &MyStuffConfig::wrist_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.grasp1_r = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.grasp1_r = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.grasp1_r = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("grasp1_r", "double", 0, "An offet to add to the grasp1_r", "", &MyStuffConfig::grasp1_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("grasp1_r", "double", 0, "An offet to add to the grasp1_r", "", &MyStuffConfig::grasp1_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __min__.grasp2_r = -50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __max__.grasp2_r = 50.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __default__.grasp2_r = 0.0; +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.abstract_parameters.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("grasp2_r", "double", 0, "An offet to add to the grasp2_r", "", &MyStuffConfig::grasp2_r))); +//#line 259 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __param_descriptions__.push_back(MyStuffConfig::AbstractParamDescriptionConstPtr(new MyStuffConfig::ParamDescription<double>("grasp2_r", "double", 0, "An offet to add to the grasp2_r", "", &MyStuffConfig::grasp2_r))); +//#line 233 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + Default.convertParams(); +//#line 233 "/opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py" + __group_descriptions__.push_back(MyStuffConfig::AbstractGroupDescriptionConstPtr(new MyStuffConfig::GroupDescription<MyStuffConfig::DEFAULT, MyStuffConfig>(Default))); +//#line 390 "/opt/ros/indigo/share/dynamic_reconfigure/templates/ConfigType.h.template" + + for (std::vector<MyStuffConfig::AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); ++i) + { + __description_message__.groups.push_back(**i); + } + __max__.__toMessage__(__description_message__.max, __param_descriptions__, __group_descriptions__); + __min__.__toMessage__(__description_message__.min, __param_descriptions__, __group_descriptions__); + __default__.__toMessage__(__description_message__.dflt, __param_descriptions__, __group_descriptions__); + } + std::vector<MyStuffConfig::AbstractParamDescriptionConstPtr> __param_descriptions__; + std::vector<MyStuffConfig::AbstractGroupDescriptionConstPtr> __group_descriptions__; + MyStuffConfig __max__; + MyStuffConfig __min__; + MyStuffConfig __default__; + dynamic_reconfigure::ConfigDescription __description_message__; + + static const MyStuffConfigStatics *get_instance() + { + // Split this off in a separate function because I know that + // instance will get initialized the first time get_instance is + // called, and I am guaranteeing that get_instance gets called at + // most once. + static MyStuffConfigStatics instance; + return &instance; + } + }; + + inline const dynamic_reconfigure::ConfigDescription &MyStuffConfig::__getDescriptionMessage__() + { + return __get_statics__()->__description_message__; + } + + inline const MyStuffConfig &MyStuffConfig::__getDefault__() + { + return __get_statics__()->__default__; + } + + inline const MyStuffConfig &MyStuffConfig::__getMax__() + { + return __get_statics__()->__max__; + } + + inline const MyStuffConfig &MyStuffConfig::__getMin__() + { + return __get_statics__()->__min__; + } + + inline const std::vector<MyStuffConfig::AbstractParamDescriptionConstPtr> &MyStuffConfig::__getParamDescriptions__() + { + return __get_statics__()->__param_descriptions__; + } + + inline const std::vector<MyStuffConfig::AbstractGroupDescriptionConstPtr> &MyStuffConfig::__getGroupDescriptions__() + { + return __get_statics__()->__group_descriptions__; + } + + inline const MyStuffConfigStatics *MyStuffConfig::__get_statics__() + { + const static MyStuffConfigStatics *statics; + + if (statics) // Common case + return statics; + + boost::mutex::scoped_lock lock(dynamic_reconfigure::__init_mutex__); + + if (statics) // In case we lost a race. + return statics; + + statics = MyStuffConfigStatics::get_instance(); + + return statics; + } + + +} + +#endif // __MYSTUFFRECONFIGURATOR_H__ diff --git a/cmake_install.cmake b/cmake_install.cmake old mode 100644 new mode 100755 diff --git a/data1_3_7_13.bag b/data1_3_7_13.bag deleted file mode 100755 index 7a9e09345eec889b96564efa3c5b62664f933285..0000000000000000000000000000000000000000 Binary files a/data1_3_7_13.bag and /dev/null differ diff --git a/docs/MyStuffConfig-usage.dox b/docs/MyStuffConfig-usage.dox old mode 100644 new mode 100755 diff --git a/docs/MyStuffConfig.dox b/docs/MyStuffConfig.dox old mode 100644 new mode 100755 diff --git a/docs/MyStuffConfig.wikidoc b/docs/MyStuffConfig.wikidoc old mode 100644 new mode 100755 diff --git a/include/DOF_type.h b/include/DOF_type.h old mode 100644 new mode 100755 diff --git a/include/DS0.h b/include/DS0.h old mode 100644 new mode 100755 diff --git a/include/DS1.h b/include/DS1.h old mode 100644 new mode 100755 diff --git a/include/IMG_0227whiteback_720.jpg b/include/IMG_0227whiteback_720.jpg old mode 100644 new mode 100755 diff --git a/include/RavenMask.jpg b/include/RavenMask.jpg old mode 100644 new mode 100755 diff --git a/include/USB_packets.h b/include/USB_packets.h old mode 100644 new mode 100755 diff --git a/include/itp_teleoperation.h b/include/itp_teleoperation.h old mode 100644 new mode 100755 index e95b2969f53026c2f6b844ab59b1d40c88bf65e5..25332ebd9c4299c057809e9218558d765cde269c --- a/include/itp_teleoperation.h +++ b/include/itp_teleoperation.h @@ -37,8 +37,8 @@ #define TELEOPERATION_H #define SURGEON_ENGAGED 1 #define SURGEON_DISENGAGED 0 +#include "defines.h" -#define simulator /* u_struct : structure passed from master to slave. This struct defines an incremental movment packet type. @@ -59,7 +59,7 @@ surgeon_mode SURGEON_ENGAGED or SURGEON_DISENGAGED (formerly Pedal_Down or P checksum */ -#ifdef simulator +#ifdef simulator_packet struct u_struct { unsigned int sequence; unsigned int pactyp; @@ -70,8 +70,10 @@ struct u_struct { int delz[2]; double R_l[3][3]; double R_r[3][3]; - double ljoints[6]; +#ifdef simulator + double ljoints[6]; double rjoints[6]; +#endif int buttonstate[2]; int grasp[2]; int surgeon_mode; diff --git a/include/mainpage.h b/include/mainpage.h old mode 100644 new mode 100755 diff --git a/include/raven/USB_init.h b/include/raven/USB_init.h old mode 100644 new mode 100755 index 36f451bb8b0ab88c8836e72b0c46c436da702b9e..71680d3e0829f12d7bc8c136573c311530f59375 --- a/include/raven/USB_init.h +++ b/include/raven/USB_init.h @@ -34,6 +34,17 @@ #include <unistd.h> #include <sys/ioctl.h> #include <vector> +#include <unistd.h> +#include <fcntl.h> +#include <sys/ioctl.h> +#include <errno.h> +#include <paths.h> +#include <termios.h> +#include <sysexits.h> +#include <sys/param.h> +#include <sys/select.h> +#include <sys/time.h> +#include <time.h> #include "defines.h" #include "struct.h" @@ -57,6 +68,7 @@ typedef struct } USBStruct; +static struct termios gOriginalTTYAttrs; //Defines @@ -81,4 +93,8 @@ int usb_write(int id, void *buffer, size_t len); int usb_reset_encoders(int boardid); +int openSerialPort(void); +int writeSerialPort(int serialFileDescriptor, void *buffer); +void closeSerialPort(int serialFileDescriptor); + #endif diff --git a/include/raven/console_process.h b/include/raven/console_process.h old mode 100644 new mode 100755 diff --git a/include/raven/defines.h b/include/raven/defines.h old mode 100644 new mode 100755 index 16f7340272a27272b1c39577706cb9e5827f5a67..b4ee0643a3470ea09461d0a0d1d7f5039e1ed4d5 --- a/include/raven/defines.h +++ b/include/raven/defines.h @@ -29,6 +29,14 @@ #include <math.h> +//#define simulator +#define simulator_packet +#define skip_init_button +#define skip_restart_button +#define surgeon_packet_gen +//#define test_gdb +//#define no_logging + #define RAVEN_MODULE_VERSION RAVEN_II_RELEASE_02 #define device robot_device @@ -36,21 +44,21 @@ #define RAVEN_II 1 //#define KIST -#define RAVEN_TOOLS -//#define DV_ADAPTER 1 +//#define RAVEN_TOOLS +#define DV_ADAPTER 1 //#define RAVEN_II_SQUARE 1 //for Santa Cruz style tool carriage //#define RICKS_TOOLS -//#undef RAVEN_TOOLS -#undef DV_ADAPTER +#undef RAVEN_TOOLS +//#undef DV_ADAPTER #undef RAVEN_II_SQUARE #undef RICKS_TOOLS // Two arm identification // Change this to match device ID in /dev/brl_usbXX -#define GREEN_ARM_SERIAL 37 -#define GOLD_ARM_SERIAL 29 +#define GREEN_ARM_SERIAL 29 +#define GOLD_ARM_SERIAL 37 #define GREEN_ARM GREEN_ARM_SERIAL #define GOLD_ARM GOLD_ARM_SERIAL @@ -255,16 +263,16 @@ #define GRASP2_MAX_DAC 4500 // up from 2000 on 10/10/2013 //up from 2500 on 2/28/14 #else -#define MAX_INST_DAC 20000 //32000 +#define MAX_INST_DAC 12000 //20000 //32000 // Doubled position joints 4-Apr-2013 by HK -#define SHOULDER_MAX_DAC 5000 // 2000 usually moves 1000 doesn't -#define ELBOW_MAX_DAC 5000 // "" -#define Z_INS_MAX_DAC 4000 // 1000 moves but doesn't overcome friction in tool joints -#define TOOL_ROT_MAX_DAC 3000 // 10000 These are set really low for safety sake -#define WRIST_MAX_DAC 1900 // 20000 -#define GRASP1_MAX_DAC 2400 // 15000 -#define GRASP2_MAX_DAC 2400 +#define SHOULDER_MAX_DAC 10000//5000 // 2000 usually moves 1000 doesn't +#define ELBOW_MAX_DAC 10000//5000 // "" +#define Z_INS_MAX_DAC 8000//4000 // 1000 moves but doesn't overcome friction in tool joints +#define TOOL_ROT_MAX_DAC 6000//3000 // 10000 These are set really low for safety sake +#define WRIST_MAX_DAC 2700//1900 // 20000 +#define GRASP1_MAX_DAC 4800//2400 // 15000 +#define GRASP2_MAX_DAC 4800//2400 #endif diff --git a/include/raven/dof.h b/include/raven/dof.h old mode 100644 new mode 100755 diff --git a/include/raven/fifo.h b/include/raven/fifo.h old mode 100644 new mode 100755 diff --git a/include/raven/fwd_cable_coupling.h b/include/raven/fwd_cable_coupling.h old mode 100644 new mode 100755 diff --git a/include/raven/fwd_kinematics.h b/include/raven/fwd_kinematics.h old mode 100644 new mode 100755 diff --git a/include/raven/get_USB_packet.h b/include/raven/get_USB_packet.h old mode 100644 new mode 100755 diff --git a/include/raven/grav_comp.h b/include/raven/grav_comp.h old mode 100644 new mode 100755 diff --git a/include/raven/hmatrix.h b/include/raven/hmatrix.h old mode 100644 new mode 100755 diff --git a/include/raven/homing.h b/include/raven/homing.h old mode 100644 new mode 100755 diff --git a/include/raven/init.h b/include/raven/init.h old mode 100644 new mode 100755 diff --git a/include/raven/inv_cable_coupling.h b/include/raven/inv_cable_coupling.h old mode 100644 new mode 100755 diff --git a/include/raven/inv_kinematics.h b/include/raven/inv_kinematics.h old mode 100644 new mode 100755 diff --git a/include/raven/local_io.h b/include/raven/local_io.h old mode 100644 new mode 100755 diff --git a/include/raven/log.h b/include/raven/log.h old mode 100644 new mode 100755 diff --git a/include/raven/mapping.h b/include/raven/mapping.h old mode 100644 new mode 100755 diff --git a/include/raven/motor.h b/include/raven/motor.h old mode 100644 new mode 100755 diff --git a/include/raven/network_layer.h b/include/raven/network_layer.h old mode 100644 new mode 100755 diff --git a/include/raven/overdrive_detect.h b/include/raven/overdrive_detect.h old mode 100644 new mode 100755 diff --git a/include/raven/parallel.h b/include/raven/parallel.h old mode 100644 new mode 100755 diff --git a/include/raven/pid_control.h b/include/raven/pid_control.h old mode 100644 new mode 100755 diff --git a/include/raven/put_USB_packet.h b/include/raven/put_USB_packet.h old mode 100644 new mode 100755 diff --git a/include/raven/r2_kinematics.h b/include/raven/r2_kinematics.h old mode 100644 new mode 100755 diff --git a/include/raven/reconfigure.h b/include/raven/reconfigure.h old mode 100644 new mode 100755 diff --git a/include/raven/rt_process_preempt.h b/include/raven/rt_process_preempt.h old mode 100644 new mode 100755 diff --git a/include/raven/rt_raven.h b/include/raven/rt_raven.h old mode 100644 new mode 100755 diff --git a/include/raven/state_estimate.h b/include/raven/state_estimate.h old mode 100644 new mode 100755 diff --git a/include/raven/state_machine.h b/include/raven/state_machine.h old mode 100644 new mode 100755 diff --git a/include/raven/struct.h b/include/raven/struct.h old mode 100644 new mode 100755 diff --git a/include/raven/t_to_DAC_val.h b/include/raven/t_to_DAC_val.h old mode 100644 new mode 100755 diff --git a/include/raven/tool.h b/include/raven/tool.h old mode 100644 new mode 100755 diff --git a/include/raven/trajectory.h b/include/raven/trajectory.h old mode 100644 new mode 100755 diff --git a/include/raven/update_atmel_io.h b/include/raven/update_atmel_io.h old mode 100644 new mode 100755 diff --git a/include/raven/update_device_state.h b/include/raven/update_device_state.h old mode 100644 new mode 100755 diff --git a/include/raven/utils.h b/include/raven/utils.h old mode 100644 new mode 100755 diff --git a/launch/raven_2.launch b/launch/raven_2.launch old mode 100644 new mode 100755 diff --git a/launch/raven_2_gdb.launch b/launch/raven_2_gdb.launch old mode 100644 new mode 100755 index 29593b2ac3b1ccd230bd9788da9110b056af7d92..bb68012efc0157868d95ab04f0c3e61a7a8166a0 --- a/launch/raven_2_gdb.launch +++ b/launch/raven_2_gdb.launch @@ -2,5 +2,5 @@ <rosparam file="$(find raven_2)/params/r2params.yaml" command="load" output="screen" /> <arg name="inject_mode"/> <param name="inject" value="$(arg inject_mode)"/> - <node name ="r2_control" pkg="raven_2" type="r2_control" output="screen" launch-prefix="gdbserver localhost:1234"/> + <node name ="r2_control" pkg="raven_2" type="r2_control" output="screen" launch-prefix="nice --20 gdbserver localhost:1234"/> </launch> diff --git a/left.txt b/left.txt deleted file mode 100755 index 795dd474f5c5f7c151f2aa0b7682131d845d5cff..0000000000000000000000000000000000000000 --- a/left.txt +++ /dev/null @@ -1,387 +0,0 @@ --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150,-90,430,-2.2463e-14,-90,-30,10 --42.317,5.2262,7.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.21,-89.135,429.92,0.49726,-90.203,-29.361,10 --42.317,5.2262,7.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.41,-88.275,429.83,0.988,-90.405,-28.724,10 --42.317,5.2262,8.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.6,-87.42,429.74,1.4723,-90.605,-28.089,10 --42.317,5.2262,8.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.79,-86.57,429.64,1.9504,-90.804,-27.458,10 --42.317,5.2262,9.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.97,-85.726,429.53,2.4223,-91.002,-26.829,10 --42.317,5.2262,9.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-151.14,-84.888,429.42,2.8881,-91.198,-26.203,10 --42.317,5.2262,10.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-151.31,-84.055,429.3,3.3481,-91.392,-25.581,10 --42.317,5.2262,10.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-151.47,-83.228,429.18,3.8023,-91.584,-24.962,10 --42.317,5.2262,11.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-151.62,-82.407,429.05,4.2508,-91.775,-24.346,10 --42.317,5.2262,11.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-151.77,-81.592,428.92,4.6939,-91.963,-23.734,10 --42.317,5.2262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-151.91,-80.782,428.78,5.1316,-92.15,-23.126,10 --42.317,5.2262,12.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.04,-79.979,428.64,5.5641,-92.334,-22.521,10 --42.317,5.2262,13.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.17,-79.183,428.49,5.9915,-92.516,-21.92,10 --42.317,5.2262,13.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.29,-78.392,428.34,6.414,-92.696,-21.323,10 --42.317,5.2262,14.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.4,-77.608,428.18,6.8316,-92.874,-20.73,10 --42.317,5.2262,14.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.51,-76.83,428.02,7.2446,-93.049,-20.141,10 --42.317,5.2262,15.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.61,-76.058,427.85,7.6531,-93.222,-19.557,10 --42.317,5.2262,15.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.71,-75.294,427.67,8.0572,-93.393,-18.976,10 --42.317,5.2262,16.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.8,-74.535,427.49,8.457,-93.561,-18.4,10 --42.317,5.2262,16.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.88,-73.783,427.31,8.8527,-93.727,-17.828,10 --42.317,5.2262,17.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.96,-73.038,427.12,9.2445,-93.89,-17.261,10 --42.317,5.2262,17.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.03,-72.3,426.93,9.6324,-94.051,-16.699,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.1,-71.568,426.73,10.017,-94.209,-16.141,10 --42.317,5.2262,17.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.03,-72.3,426.93,9.6324,-94.051,-16.699,10 --42.317,5.2262,17.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.96,-73.038,427.12,9.2445,-93.89,-17.261,10 --42.317,5.2262,16.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.88,-73.783,427.31,8.8527,-93.727,-17.828,10 --42.317,5.2262,16.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.8,-74.535,427.49,8.457,-93.561,-18.4,10 --42.317,5.2262,15.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.71,-75.294,427.67,8.0572,-93.393,-18.976,10 --42.317,5.2262,15.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.61,-76.058,427.85,7.6531,-93.222,-19.557,10 --42.317,5.2262,14.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.51,-76.83,428.02,7.2446,-93.049,-20.141,10 --42.317,5.2262,14.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.4,-77.608,428.18,6.8316,-92.874,-20.73,10 --42.317,5.2262,13.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.29,-78.392,428.34,6.414,-92.696,-21.323,10 --42.317,5.2262,13.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.17,-79.183,428.49,5.9915,-92.516,-21.92,10 --42.317,5.2262,12.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.04,-79.979,428.64,5.5641,-92.334,-22.521,10 --42.317,5.2262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-151.91,-80.782,428.78,5.1316,-92.15,-23.126,10 --42.317,5.7262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.88,-80.739,428.71,4.8906,-93.07,-23.278,10 --42.317,6.2262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.85,-80.702,428.64,4.6491,-93.986,-23.431,10 --42.317,6.7262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-154.82,-80.671,428.55,4.4074,-94.896,-23.583,10 --42.317,7.2262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.78,-80.645,428.46,4.1658,-95.802,-23.735,10 --42.317,7.7262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.73,-80.626,428.36,3.9245,-96.701,-23.887,10 --42.317,7.7262,11.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.6,-81.422,428.5,3.5406,-96.537,-24.494,10 --42.317,7.7262,11.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.46,-82.224,428.63,3.1521,-96.371,-25.105,10 --42.317,7.7262,10.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.32,-83.032,428.76,2.7587,-96.202,-25.719,10 --42.317,7.7262,10.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.17,-83.846,428.88,2.3603,-96.031,-26.337,10 --42.317,7.7262,9.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.01,-84.666,429,1.9568,-95.857,-26.957,10 --42.317,7.7262,9.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.85,-85.491,429.11,1.548,-95.681,-27.581,10 --42.317,7.7262,8.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.68,-86.322,429.22,1.1337,-95.502,-28.207,10 --42.317,7.7262,8.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.5,-87.159,429.32,0.71387,-95.321,-28.836,10 --42.317,7.7262,7.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.32,-88.001,429.42,0.28829,-95.138,-29.468,10 --42.317,7.7262,7.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.13,-88.848,429.51,-0.14319,-94.953,-30.102,10 --42.317,7.7262,7.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.32,-88.001,429.42,0.28829,-95.138,-29.468,10 --42.317,7.7262,8.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.5,-87.159,429.32,0.71387,-95.321,-28.836,10 --42.317,7.7262,8.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.68,-86.322,429.22,1.1337,-95.502,-28.207,10 --42.317,7.7262,9.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.85,-85.491,429.11,1.548,-95.681,-27.581,10 --42.317,7.7262,9.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.01,-84.666,429,1.9568,-95.857,-26.957,10 --42.317,7.7262,10.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.17,-83.846,428.88,2.3603,-96.031,-26.337,10 --42.317,7.7262,10.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.32,-83.032,428.76,2.7587,-96.202,-25.719,10 --42.317,7.7262,11.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.46,-82.224,428.63,3.1521,-96.371,-25.105,10 --42.317,7.7262,11.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.6,-81.422,428.5,3.5406,-96.537,-24.494,10 --42.317,7.7262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.73,-80.626,428.36,3.9245,-96.701,-23.887,10 --42.317,7.7262,12.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.85,-79.836,428.22,4.3038,-96.862,-23.283,10 --42.317,7.7262,13.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.97,-79.052,428.07,4.6787,-97.021,-22.682,10 --42.317,7.7262,13.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.08,-78.275,427.91,5.0494,-97.177,-22.086,10 --42.317,7.7262,14.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.19,-77.503,427.75,5.416,-97.33,-21.493,10 --42.317,7.7262,14.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.29,-76.739,427.59,5.7786,-97.481,-20.904,10 --42.317,7.7262,15.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.38,-75.98,427.42,6.1375,-97.628,-20.32,10 --42.317,7.7262,15.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.46,-75.228,427.24,6.4926,-97.773,-19.739,10 --42.317,7.7262,16.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.54,-74.482,427.07,6.8443,-97.915,-19.163,10 --42.317,7.7262,16.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.62,-73.743,426.88,7.1926,-98.055,-18.59,10 --42.317,7.7262,17.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.69,-73.01,426.69,7.5376,-98.191,-18.022,10 --42.317,7.7262,17.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.75,-72.284,426.5,7.8796,-98.325,-17.459,10 --42.317,7.7262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.81,-71.564,426.3,8.2185,-98.457,-16.9,10 --42.317,7.7262,18.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.86,-70.851,426.1,8.5547,-98.585,-16.345,10 --42.317,7.7262,19.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.9,-70.144,425.89,8.8881,-98.711,-15.795,10 --42.317,7.7262,19.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.94,-69.444,425.68,9.219,-98.834,-15.249,10 --42.317,7.7262,20.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.98,-68.75,425.47,9.5474,-98.954,-14.708,10 --42.317,7.7262,20.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.01,-68.063,425.25,9.8734,-99.071,-14.172,10 --42.317,7.7262,21.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.03,-67.382,425.02,10.197,-99.186,-13.64,10 --42.317,7.7262,21.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.05,-66.708,424.79,10.519,-99.299,-13.113,10 --42.317,7.7262,22.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.07,-66.04,424.56,10.839,-99.408,-12.591,10 --42.317,7.7262,22.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-65.379,424.33,11.157,-99.515,-12.074,10 --42.317,7.7262,23.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.724,424.09,11.473,-99.62,-11.561,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-158.08,-64.076,423.84,11.787,-99.722,-11.053,10 --42.317,7.2262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-157.16,-64.036,423.94,12.237,-98.942,-10.906,10 --42.317,6.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-156.25,-64.004,424.03,12.688,-98.157,-10.758,10 --42.317,6.2262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-155.32,-63.98,424.12,13.138,-97.369,-10.611,10 --42.317,5.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-154.4,-63.964,424.2,13.587,-96.577,-10.463,10 --42.317,5.2262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-153.47,-63.957,424.27,14.035,-95.781,-10.315,10 --42.317,4.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-152.53,-63.958,424.33,14.482,-94.982,-10.167,10 --42.317,4.2262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-151.59,-63.967,424.39,14.927,-94.18,-10.019,10 --42.317,3.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.65,-63.984,424.44,15.369,-93.375,-9.8704,10 --42.317,3.7262,24.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.66,-63.327,424.19,15.74,-93.521,-9.3716,10 --42.317,3.7262,24.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.66,-62.676,423.94,16.109,-93.664,-8.8777,10 --42.317,3.7262,25.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.66,-62.031,423.68,16.475,-93.804,-8.3888,10 --42.317,3.7262,25.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.66,-61.393,423.42,16.839,-93.942,-7.9048,10 --42.317,3.7262,25.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.66,-62.031,423.68,16.475,-93.804,-8.3888,10 --42.317,3.7262,24.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.66,-62.676,423.94,16.109,-93.664,-8.8777,10 --42.317,3.7262,24.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.66,-63.327,424.19,15.74,-93.521,-9.3716,10 --42.317,3.7262,23.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.65,-63.984,424.44,15.369,-93.375,-9.8704,10 --42.317,3.7262,23.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.64,-64.649,424.68,14.995,-93.228,-10.374,10 --42.317,3.7262,22.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.62,-65.32,424.92,14.619,-93.077,-10.883,10 --42.317,3.7262,22.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.6,-65.997,425.16,14.239,-92.925,-11.397,10 --42.317,3.7262,21.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.57,-66.681,425.39,13.857,-92.769,-11.915,10 --42.317,3.7262,21.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.54,-67.372,425.62,13.471,-92.612,-12.439,10 --42.317,3.7262,20.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.5,-68.07,425.85,13.083,-92.451,-12.967,10 --42.317,3.7262,20.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.46,-68.775,426.06,12.69,-92.289,-13.501,10 --42.317,3.7262,19.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.41,-69.486,426.28,12.295,-92.123,-14.039,10 --42.317,3.7262,19.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.35,-70.204,426.49,11.895,-91.956,-14.582,10 --42.317,3.7262,18.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.29,-70.929,426.7,11.492,-91.786,-15.13,10 --42.317,3.7262,18.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.22,-71.66,426.9,11.085,-91.613,-15.683,10 --42.317,3.7262,17.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.15,-72.398,427.1,10.674,-91.438,-16.24,10 --42.317,3.7262,17.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-150.07,-73.143,427.29,10.259,-91.261,-16.802,10 --42.317,3.7262,16.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.99,-73.894,427.48,9.8397,-91.081,-17.368,10 --42.317,3.7262,16.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.9,-74.652,427.66,9.4158,-90.899,-17.94,10 --42.317,3.7262,15.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.8,-75.417,427.84,8.9874,-90.715,-18.515,10 --42.317,3.7262,15.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.7,-76.188,428.01,8.5543,-90.529,-19.095,10 --42.317,3.7262,14.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.59,-76.966,428.18,8.1164,-90.34,-19.68,10 --42.317,3.7262,14.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.48,-77.75,428.34,7.6736,-90.149,-20.269,10 --42.317,3.7262,13.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.36,-78.54,428.5,7.2256,-89.957,-20.862,10 --42.317,3.7262,13.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.23,-79.337,428.65,6.7724,-89.762,-21.459,10 --42.317,3.7262,12.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-149.1,-80.14,428.8,6.3139,-89.565,-22.06,10 --42.317,3.7262,12.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-148.96,-80.949,428.94,5.8499,-89.367,-22.665,10 --42.317,3.7262,11.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-148.81,-81.764,429.08,5.3802,-89.166,-23.274,10 --42.317,3.7262,11.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-148.66,-82.585,429.21,4.9048,-88.965,-23.887,10 --42.317,3.7262,10.882,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-148.5,-83.413,429.34,4.4235,-88.761,-24.504,10 --42.317,3.7262,10.382,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-148.33,-84.245,429.46,3.9362,-88.556,-25.123,10 --42.317,3.7262,9.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-148.16,-85.084,429.57,3.4428,-88.35,-25.747,10 --42.317,3.7262,9.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-147.98,-85.928,429.68,2.9431,-88.142,-26.374,10 --42.317,3.7262,8.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-147.79,-86.778,429.78,2.4371,-87.933,-27.003,10 --42.317,3.7262,8.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-147.6,-87.633,429.88,1.9246,-87.723,-27.636,10 --42.317,3.7262,7.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-147.4,-88.493,429.98,1.4055,-87.512,-28.272,10 --42.317,3.7262,7.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-147.2,-89.358,430.06,0.87968,-87.3,-28.911,10 --42.317,3.7262,6.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-146.98,-90.228,430.14,0.34706,-87.087,-29.552,10 --42.317,3.7262,6.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-146.76,-91.103,430.22,-0.19247,-86.874,-30.196,10 --42.317,3.7262,5.8821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-146.54,-91.983,430.29,-0.73901,-86.661,-30.842,10 --42.317,3.7262,5.3821,-0.78381,-0.60196,-0.1526,-0.0072781,0.25462,-0.96701,0.62096,-0.75684,-0.20395,-146.3,-92.867,430.35,-1.2926,-86.446,-31.49,10 diff --git a/mainpage.dox b/mainpage.dox old mode 100644 new mode 100755 diff --git a/manifest.xml b/manifest.xml old mode 100644 new mode 100755 diff --git a/msg/raven_automove.msg b/msg/raven_automove.msg old mode 100644 new mode 100755 diff --git a/msg/raven_state.msg b/msg/raven_state.msg old mode 100644 new mode 100755 diff --git a/params/r2params.yaml b/params/r2params.yaml old mode 100644 new mode 100755 index 98d1ec991749b2df278a975dbaec1cf705f05ca2..99d3bc1d28e55e481fea5968edf2bcd5a1312d2d --- a/params/r2params.yaml +++ b/params/r2params.yaml @@ -4,13 +4,15 @@ # Of particular note, the order is different for R_I vs R_II.221 # Position axes are 1-3. 4th is not used. 5-8 are tool axes. # +# changed gold wrist kp from 0.05 to 0,03 + gains_gold_kp: - 0.300 - 0.300 - 0.150 - 0.00 - 0.09 -- 0.05 +- 0.03 - 0.02 - 0.02 gains_gold_kd: diff --git a/raven_2.depend b/raven_2.depend old mode 100644 new mode 100755 diff --git a/raven_2.layout b/raven_2.layout old mode 100644 new mode 100755 diff --git a/right.txt b/right.txt deleted file mode 100755 index 9caf6f3c5d8c0bbd5afa12345d72d3cbaa995b66..0000000000000000000000000000000000000000 --- a/right.txt +++ /dev/null @@ -1,387 +0,0 @@ --37.205,-6.592,4.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30,90,435,50,-80,30,20 --37.205,-6.592,5.0173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.036,91.175,434.92,49.165,-79.267,29.412,20 --37.205,-6.592,5.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.083,92.338,434.83,48.327,-78.541,28.825,20 --37.205,-6.592,6.0173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.141,93.49,434.73,47.486,-77.823,28.239,20 --37.205,-6.592,6.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.209,94.629,434.62,46.644,-77.113,27.654,20 --37.205,-6.592,7.0173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.287,95.756,434.51,45.799,-76.412,27.07,20 --37.205,-6.592,7.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.374,96.87,434.38,44.951,-75.72,26.488,20 --37.205,-6.592,8.0173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.471,97.97,434.25,44.102,-75.037,25.907,20 --37.205,-6.592,8.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.577,99.057,434.12,43.251,-74.363,25.328,20 --37.205,-6.592,9.0173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.692,100.13,433.98,42.398,-73.7,24.75,20 --37.205,-6.592,9.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.814,101.19,433.83,41.544,-73.047,24.175,20 --37.205,-6.592,10.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.945,102.24,433.67,40.689,-72.405,23.601,20 --37.205,-6.592,10.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,31.084,103.27,433.51,39.833,-71.773,23.03,20 --37.205,-6.592,11.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,31.23,104.29,433.33,38.975,-71.153,22.46,20 --37.205,-6.592,11.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,31.382,105.29,433.16,38.117,-70.543,21.893,20 --37.205,-6.592,12.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,31.542,106.28,432.97,37.259,-69.945,21.328,20 --37.205,-7.092,12.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.498,106,432.94,37.681,-70.872,20.921,20 --37.205,-6.592,12.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,31.542,106.28,432.97,37.259,-69.945,21.328,20 --37.205,-6.092,12.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,32.59,106.55,433,36.843,-69.018,21.738,20 --37.205,-5.592,12.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,33.643,106.82,433.02,36.433,-68.091,22.152,20 --37.205,-5.092,12.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.699,107.08,433.03,36.03,-67.164,22.57,20 --37.205,-5.092,11.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.531,106.1,433.22,36.915,-67.75,23.145,20 --37.205,-5.092,11.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.369,105.11,433.4,37.799,-68.348,23.722,20 --37.205,-5.092,10.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.214,104.1,433.58,38.684,-68.957,24.301,20 --37.205,-5.092,10.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.066,103.08,433.74,39.568,-69.578,24.882,20 --37.205,-5.092,9.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,33.926,102.05,433.91,40.451,-70.211,25.465,20 --37.205,-5.092,9.0173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,33.793,101,434.06,41.333,-70.855,26.049,20 --37.205,-5.092,8.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,33.668,99.934,434.21,42.214,-71.51,26.635,20 --37.205,-5.092,9.0173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,33.793,101,434.06,41.333,-70.855,26.049,20 --37.205,-5.092,9.5173,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,33.926,102.05,433.91,40.451,-70.211,25.465,20 --37.205,-5.092,10.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.066,103.08,433.74,39.568,-69.578,24.882,20 --37.205,-5.092,10.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.214,104.1,433.58,38.684,-68.957,24.301,20 --37.205,-5.092,11.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.369,105.11,433.4,37.799,-68.348,23.722,20 --37.205,-5.092,11.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.531,106.1,433.22,36.915,-67.75,23.145,20 --37.205,-5.092,12.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.699,107.08,433.03,36.03,-67.164,22.57,20 --37.205,-5.092,12.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.873,108.04,432.84,35.145,-66.59,21.997,20 --37.205,-4.592,12.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,35.934,108.28,432.83,34.742,-65.67,22.415,20 --37.205,-4.092,12.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,36.996,108.52,432.83,34.347,-64.751,22.837,20 --37.205,-3.592,12.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,38.059,108.75,432.81,33.961,-63.835,23.262,20 --37.205,-3.092,12.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,39.121,108.98,432.78,33.585,-62.923,23.691,20 --37.205,-2.592,12.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,40.183,109.19,432.75,33.219,-62.016,24.123,20 --37.205,-2.092,12.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,41.243,109.4,432.71,32.864,-61.113,24.56,20 --37.205,-1.592,12.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,42.3,109.6,432.65,32.521,-60.215,24.999,20 --37.205,-1.592,13.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,42.492,110.51,432.44,31.584,-59.688,24.406,20 --37.205,-1.592,13.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,42.689,111.4,432.23,30.648,-59.173,23.815,20 --37.205,-1.592,14.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,42.89,112.28,432.01,29.714,-58.671,23.225,20 --37.205,-1.592,14.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,43.095,113.14,431.78,28.782,-58.181,22.638,20 --37.205,-1.592,15.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,43.303,113.99,431.55,27.852,-57.705,22.054,20 --37.205,-1.592,15.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,43.515,114.83,431.31,26.924,-57.24,21.471,20 --37.205,-1.592,16.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,43.73,115.65,431.07,25.999,-56.789,20.892,20 --37.205,-1.592,16.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,43.948,116.45,430.82,25.076,-56.349,20.315,20 --37.205,-1.592,17.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,44.169,117.25,430.57,24.156,-55.921,19.741,20 --37.205,-1.592,17.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,44.392,118.03,430.32,23.239,-55.506,19.169,20 --37.205,-1.592,18.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,44.617,118.8,430.05,22.326,-55.102,18.601,20 --37.205,-1.592,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,44.845,119.55,429.79,21.415,-54.71,18.036,20 --37.205,-1.592,19.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,45.074,120.29,429.52,20.508,-54.329,17.473,20 --37.205,-1.592,19.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,45.305,121.02,429.25,19.605,-53.959,16.914,20 --37.205,-1.592,20.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,45.537,121.74,428.97,18.705,-53.6,16.359,20 --37.205,-1.592,20.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,45.771,122.45,428.69,17.809,-53.252,15.806,20 --37.205,-1.592,21.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,46.007,123.14,428.4,16.917,-52.915,15.257,20 --37.205,-1.592,21.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,46.243,123.83,428.11,16.029,-52.588,14.712,20 --37.205,-1.592,22.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,46.481,124.5,427.82,15.145,-52.271,14.17,20 --37.205,-1.592,22.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,46.72,125.16,427.52,14.266,-51.963,13.632,20 --37.205,-1.592,23.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,46.959,125.81,427.22,13.391,-51.666,13.097,20 --37.205,-1.592,23.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,47.199,126.45,426.92,12.52,-51.378,12.566,20 --37.205,-1.592,24.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,47.44,127.08,426.61,11.653,-51.099,12.039,20 --37.205,-1.592,24.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,47.682,127.7,426.3,10.791,-50.83,11.516,20 --37.205,-1.092,24.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,48.726,127.75,426.22,10.333,-50.069,11.868,20 --37.205,-0.59197,24.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,49.762,127.79,426.14,9.8905,-49.314,12.224,20 --37.205,-0.091965,24.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,50.79,127.82,426.05,9.4654,-48.565,12.584,20 --37.205,0.40803,24.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,51.808,127.84,425.95,9.0578,-47.821,12.948,20 --37.205,0.90803,24.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,52.818,127.85,425.85,8.668,-47.085,13.316,20 --37.205,0.90803,24.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,52.586,127.26,426.16,9.5487,-47.328,13.861,20 --37.205,0.90803,23.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,52.355,126.65,426.47,10.434,-47.58,14.408,20 --37.205,0.90803,23.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,52.124,126.04,426.78,11.325,-47.842,14.96,20 --37.205,0.90803,23.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,52.355,126.65,426.47,10.434,-47.58,14.408,20 --37.205,0.90803,24.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,52.586,127.26,426.16,9.5487,-47.328,13.861,20 --37.205,0.90803,24.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,52.818,127.85,425.85,8.668,-47.085,13.316,20 --37.205,0.90803,25.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,53.049,128.44,425.54,7.7923,-46.85,12.776,20 --37.205,0.90803,25.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,53.281,129.02,425.22,6.9217,-46.623,12.24,20 --37.205,0.90803,26.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,53.512,129.59,424.9,6.0562,-46.405,11.707,20 --37.205,0.90803,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,53.744,130.15,424.57,5.1959,-46.195,11.178,20 --37.205,0.90803,27.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,53.976,130.7,424.25,4.3407,-45.993,10.654,20 --37.205,0.90803,27.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.207,131.25,423.92,3.4907,-45.798,10.133,20 --37.205,0.90803,28.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.439,131.78,423.59,2.6458,-45.61,9.6171,20 --37.205,0.90803,28.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.67,132.31,423.25,1.8061,-45.43,9.1049,20 --37.205,0.90803,29.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.901,132.83,422.91,0.97156,-45.257,8.5969,20 --37.205,0.90803,29.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.133,133.35,422.58,0.14215,-45.09,8.093,20 --37.205,0.90803,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.364,133.86,422.23,-0.68214,-44.93,7.5934,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.596,134.36,421.89,-1.5013,-44.776,7.098,20 --37.205,0.90803,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.364,133.86,422.23,-0.68214,-44.93,7.5934,20 --37.205,0.90803,29.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.133,133.35,422.58,0.14215,-45.09,8.093,20 --37.205,0.90803,29.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.901,132.83,422.91,0.97156,-45.257,8.5969,20 --37.205,0.90803,28.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.67,132.31,423.25,1.8061,-45.43,9.1049,20 --37.205,0.90803,28.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.439,131.78,423.59,2.6458,-45.61,9.6171,20 --37.205,0.90803,27.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.207,131.25,423.92,3.4907,-45.798,10.133,20 --37.205,0.90803,27.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,53.976,130.7,424.25,4.3407,-45.993,10.654,20 --37.205,0.90803,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,53.744,130.15,424.57,5.1959,-46.195,11.178,20 --37.205,1.408,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.733,130.13,424.47,4.8113,-45.484,11.533,20 --37.205,1.908,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,55.711,130.1,424.35,4.4454,-44.78,11.892,20 --37.205,1.408,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,54.733,130.13,424.47,4.8113,-45.484,11.533,20 --37.205,0.90803,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,53.744,130.15,424.57,5.1959,-46.195,11.178,20 --37.205,0.40803,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,52.745,130.16,424.68,5.5989,-46.912,10.828,20 --37.205,-0.091965,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,51.736,130.16,424.77,6.0202,-47.635,10.48,20 --37.205,-0.59197,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,50.717,130.14,424.86,6.4593,-48.363,10.137,20 --37.205,-1.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,49.69,130.12,424.95,6.9158,-49.097,9.7979,20 --37.205,-1.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,48.655,130.09,425.02,7.3895,-49.836,9.4623,20 --37.205,-2.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,47.612,130.05,425.09,7.8798,-50.58,9.1305,20 --37.205,-1.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,48.655,130.09,425.02,7.3895,-49.836,9.4623,20 --37.205,-1.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,49.69,130.12,424.95,6.9158,-49.097,9.7979,20 --37.205,-1.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,48.655,130.09,425.02,7.3895,-49.836,9.4623,20 --37.205,-2.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,47.612,130.05,425.09,7.8798,-50.58,9.1305,20 --37.205,-2.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,46.562,130,425.16,8.3862,-51.328,8.8023,20 --37.205,-3.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,45.506,129.94,425.21,8.9083,-52.08,8.4778,20 --37.205,-3.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,44.444,129.86,425.26,9.4455,-52.836,8.1568,20 --37.205,-4.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,43.377,129.78,425.3,9.9972,-53.595,7.8395,20 --37.205,-4.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,42.307,129.68,425.34,10.563,-54.357,7.5257,20 --37.205,-5.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,41.233,129.58,425.37,11.141,-55.122,7.2154,20 --37.205,-5.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,40.156,129.46,425.39,11.733,-55.89,6.9085,20 --37.205,-6.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,39.077,129.33,425.41,12.336,-56.659,6.605,20 --37.205,-6.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,37.998,129.2,425.41,12.95,-57.43,6.305,20 --37.205,-7.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,36.918,129.05,425.41,13.575,-58.202,6.0082,20 --37.205,-7.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,35.838,128.89,425.41,14.209,-58.976,5.7148,20 --37.205,-8.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,34.76,128.72,425.4,14.852,-59.749,5.4246,20 --37.205,-8.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,33.684,128.53,425.38,15.503,-60.523,5.1376,20 --37.205,-9.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,32.61,128.34,425.35,16.162,-61.297,4.8537,20 --37.205,-9.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,31.541,128.14,425.31,16.827,-62.07,4.5731,20 --37.205,-10.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.475,127.93,425.27,17.498,-62.842,4.2955,20 --37.205,-9.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,31.541,128.14,425.31,16.827,-62.07,4.5731,20 --37.205,-9.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,32.61,128.34,425.35,16.162,-61.297,4.8537,20 --37.205,-9.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,31.541,128.14,425.31,16.827,-62.07,4.5731,20 --37.205,-10.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.475,127.93,425.27,17.498,-62.842,4.2955,20 --37.205,-10.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.415,127.71,425.22,18.173,-63.614,4.021,20 --37.205,-11.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,28.36,127.48,425.17,18.853,-64.383,3.7495,20 --37.205,-11.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,27.312,127.25,425.11,19.536,-65.15,3.481,20 --37.205,-12.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.271,127,425.04,20.222,-65.916,3.2154,20 --37.205,-12.592,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.238,126.74,424.96,20.91,-66.678,2.9527,20 --37.205,-13.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.213,126.48,424.88,21.599,-67.438,2.6929,20 --37.205,-13.092,26.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.966,125.81,425.18,22.325,-67.802,3.1127,20 --37.205,-13.092,25.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.721,125.12,425.49,23.053,-68.175,3.5362,20 --37.205,-13.092,25.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.48,124.42,425.78,23.782,-68.555,3.9633,20 --37.205,-13.092,25.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.721,125.12,425.49,23.053,-68.175,3.5362,20 --37.205,-13.092,26.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.966,125.81,425.18,22.325,-67.802,3.1127,20 --37.205,-13.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.213,126.48,424.88,21.599,-67.438,2.6929,20 --37.205,-13.092,27.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.462,127.15,424.57,20.875,-67.082,2.2768,20 --37.205,-13.092,27.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.714,127.8,424.26,20.152,-66.734,1.8644,20 --37.205,-13.092,28.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.968,128.45,423.95,19.431,-66.393,1.4556,20 --37.205,-13.092,28.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.225,129.09,423.63,18.712,-66.061,1.0505,20 --37.205,-13.092,29.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.484,129.72,423.31,17.995,-65.736,0.64904,20 --37.205,-13.092,29.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.745,130.34,422.98,17.28,-65.418,0.25121,20 --37.205,-13.092,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.008,130.95,422.66,16.567,-65.107,-0.143,20 --37.205,-13.592,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.979,130.7,422.58,17.3,-65.829,-0.37666,20 --37.205,-13.092,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.008,130.95,422.66,16.567,-65.107,-0.143,20 --37.205,-12.592,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,27.045,131.19,422.73,15.835,-64.383,0.093261,20 --37.205,-12.092,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,28.088,131.42,422.8,15.106,-63.657,0.33215,20 --37.205,-11.592,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.138,131.65,422.86,14.379,-62.928,0.57371,20 --37.205,-11.092,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,30.194,131.86,422.91,13.656,-62.198,0.81798,20 --37.205,-11.592,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.138,131.65,422.86,14.379,-62.928,0.57371,20 --37.205,-12.092,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,28.088,131.42,422.8,15.106,-63.657,0.33215,20 --37.205,-12.592,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,27.045,131.19,422.73,15.835,-64.383,0.093261,20 --37.205,-13.092,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.008,130.95,422.66,16.567,-65.107,-0.143,20 --37.205,-13.592,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.979,130.7,422.58,17.3,-65.829,-0.37666,20 --37.205,-14.092,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.958,130.44,422.49,18.033,-66.548,-0.60775,20 --37.205,-14.092,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.22,131.05,422.16,17.333,-66.234,-0.99194,20 --37.205,-14.092,31.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.484,131.65,421.83,16.635,-65.928,-1.3726,20 --37.205,-14.092,31.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.75,132.24,421.5,15.939,-65.628,-1.7497,20 --37.205,-14.092,32.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.018,132.82,421.16,15.245,-65.335,-2.1233,20 --37.205,-14.092,32.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.288,133.39,420.82,14.552,-65.049,-2.4934,20 --37.205,-14.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.56,133.96,420.48,13.861,-64.769,-2.8601,20 --37.205,-14.592,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.537,133.71,420.39,14.628,-65.455,-3.0702,20 --37.205,-15.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.523,133.45,420.3,15.396,-66.139,-3.278,20 --37.205,-15.092,33.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.794,134.02,419.96,14.717,-65.856,-3.6352,20 --37.205,-15.592,33.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.786,133.76,419.86,15.49,-66.532,-3.8379,20 --37.205,-16.092,33.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,21.788,133.49,419.76,16.26,-67.206,-4.0383,20 --37.205,-16.592,33.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,20.799,133.21,419.65,17.029,-67.876,-4.2366,20 --37.205,-17.092,33.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,19.821,132.92,419.54,17.795,-68.542,-4.4327,20 --37.205,-17.092,34.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,20.085,133.49,419.2,17.141,-68.247,-4.7753,20 --37.205,-17.092,34.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,20.351,134.05,418.86,16.488,-67.958,-5.1147,20 --37.205,-17.092,35.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,20.62,134.6,418.51,15.836,-67.675,-5.4508,20 --37.205,-17.092,35.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,20.62,134.6,418.51,15.836,-67.675,-5.4508,20 --37.205,-17.592,35.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,19.644,134.32,418.39,16.616,-68.325,-5.6367,20 --37.205,-18.092,35.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.68,134.03,418.27,17.393,-68.971,-5.8206,20 --37.205,-18.592,35.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,17.726,133.73,418.15,18.166,-69.614,-6.0026,20 --37.205,-18.592,35.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,17.989,134.28,417.8,17.532,-69.324,-6.3276,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,36.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.254,134.83,417.46,16.9,-69.04,-6.6496,20 --37.205,-18.592,35.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,17.989,134.28,417.8,17.532,-69.324,-6.3276,20 --37.205,-18.592,35.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,17.726,133.73,418.15,18.166,-69.614,-6.0026,20 --37.205,-18.592,34.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,17.465,133.17,418.49,18.801,-69.91,-5.6744,20 --37.205,-18.592,34.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,17.206,132.61,418.83,19.437,-70.212,-5.3431,20 --37.205,-18.592,33.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,16.95,132.04,419.16,20.074,-70.519,-5.0087,20 --37.205,-18.592,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,16.696,131.46,419.5,20.711,-70.833,-4.6711,20 --37.205,-18.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,17.639,131.76,419.63,19.962,-70.174,-4.4784,20 --37.205,-17.592,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,18.593,132.06,419.76,19.208,-69.511,-4.2837,20 --37.205,-17.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,19.559,132.35,419.88,18.451,-68.844,-4.0869,20 --37.205,-16.592,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,20.535,132.64,419.99,17.691,-68.173,-3.888,20 --37.205,-16.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,21.521,132.92,420.1,16.928,-67.498,-3.6868,20 --37.205,-15.592,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.518,133.19,420.2,16.162,-66.82,-3.4835,20 --37.205,-15.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.523,133.45,420.3,15.396,-66.139,-3.278,20 --37.205,-14.592,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.537,133.71,420.39,14.628,-65.455,-3.0702,20 --37.205,-14.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.56,133.96,420.48,13.861,-64.769,-2.8601,20 --37.205,-13.592,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.59,134.2,420.56,13.094,-64.079,-2.6476,20 --37.205,-13.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,27.628,134.44,420.63,12.329,-63.388,-2.4329,20 --37.205,-12.592,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,28.672,134.66,420.7,11.565,-62.694,-2.2157,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,33.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.722,134.88,420.76,10.805,-61.999,-1.9961,20 --37.205,-12.092,32.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.445,134.32,421.1,11.516,-62.259,-1.6171,20 --37.205,-12.092,32.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,29.17,133.76,421.45,12.229,-62.525,-1.2345,20 --37.205,-12.092,31.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,28.897,133.18,421.79,12.945,-62.798,-0.84831,20 --37.205,-12.092,31.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,28.626,132.61,422.13,13.663,-63.077,-0.45847,20 --37.205,-12.092,30.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,28.356,132.02,422.46,14.383,-63.364,-0.064985,20 --37.205,-12.092,30.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,28.088,131.42,422.8,15.106,-63.657,0.33215,20 --37.205,-12.092,29.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,27.822,130.82,423.13,15.83,-63.957,0.73296,20 --37.205,-12.092,29.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,27.559,130.2,423.45,16.557,-64.264,1.1374,20 --37.205,-12.092,28.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,27.297,129.58,423.78,17.286,-64.579,1.5456,20 --37.205,-12.092,28.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,27.037,128.95,424.1,18.017,-64.902,1.9575,20 --37.205,-12.092,27.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.779,128.31,424.41,18.75,-65.232,2.3731,20 --37.205,-12.092,27.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.524,127.66,424.73,19.485,-65.57,2.7924,20 --37.205,-12.092,26.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.271,127,425.04,20.222,-65.916,3.2154,20 --37.205,-12.092,26.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,26.02,126.33,425.35,20.961,-66.27,3.6421,20 --37.205,-12.092,25.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.772,125.65,425.65,21.702,-66.632,4.0726,20 --37.205,-12.092,25.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.526,124.96,425.95,22.445,-67.003,4.5067,20 --37.205,-12.092,24.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.283,124.26,426.24,23.19,-67.382,4.9446,20 --37.205,-12.092,24.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,25.043,123.55,426.54,23.936,-67.77,5.3862,20 --37.205,-12.092,23.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.806,122.83,426.82,24.684,-68.168,5.8315,20 --37.205,-12.092,23.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.571,122.1,427.11,25.433,-68.574,6.2806,20 --37.205,-12.092,22.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.34,121.35,427.39,26.184,-68.989,6.7333,20 --37.205,-12.092,22.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,24.112,120.6,427.66,26.937,-69.413,7.1897,20 --37.205,-12.092,21.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.887,119.83,427.94,27.69,-69.847,7.6497,20 --37.205,-12.092,21.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.666,119.05,428.2,28.445,-70.29,8.1134,20 --37.205,-12.092,20.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.449,118.26,428.46,29.201,-70.743,8.5808,20 --37.205,-12.092,20.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.235,117.46,428.72,29.958,-71.205,9.0517,20 --37.205,-12.092,19.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,23.026,116.65,428.97,30.715,-71.678,9.5262,20 --37.205,-12.092,19.017,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.82,115.83,429.22,31.474,-72.16,10.004,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 --37.205,-12.092,18.517,-0.73574,0.65581,-0.16911,-0.52085,-0.3883,0.76022,0.4329,0.64741,0.62726,22.619,114.99,429.47,32.233,-72.652,10.486,20 diff --git a/run.sh b/run.sh old mode 100644 new mode 100755 index 2c22dc0204e34f42307e860132c7413d4cee3eee..646ae27390eeeb67542d6cf934573798bcc5ee53 --- a/run.sh +++ b/run.sh @@ -1,2 +1,5 @@ -export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/homa_wksp/raven_2 +export ROS_PACKAGE_PATH=/opt/ros/indigo/share:/opt/ros/indigo/stacks:~/homa_wksp/raven_2; +sudo -s; + + diff --git a/src/raven/USB_init.cpp b/src/raven/USB_init.cpp old mode 100644 new mode 100755 index 8c638d4e445c6ef2f9562656ae1e16a76ac67911..60acc0d6bca67ec1190ac743f4330de587c2cca1 --- a/src/raven/USB_init.cpp +++ b/src/raven/USB_init.cpp @@ -53,7 +53,89 @@ extern int NUM_MECH; using namespace std; +int openSerialPort(void) +{ + int serialFileDescriptor = -1; + struct termios options; + // open the serial like POSIX C + serialFileDescriptor = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NONBLOCK ); + + if (serialFileDescriptor == -1) + { + cout << "Error opening serial port" << endl; + return -1; + } + + // block non-root users from using this port + if (ioctl(serialFileDescriptor, TIOCEXCL) == -1) + { + cout << "Error setting TIOCEXCL" << endl; + return -1; + } + + // clear the O_NONBLOCK flag, so that read() will + // block and wait for data. + if (fcntl(serialFileDescriptor, F_SETFL, 0) == -1) + { + cout << "Error Clearing O_NONBLOCK" << endl; + return -1; + } + + //int iFlags = TIOCM_DTR; + //ioctl(serialFileDescriptor, TIOCMBIC, &iFlags); + + // grab the options for the serial port + if (tcgetattr(serialFileDescriptor, &gOriginalTTYAttrs) == -1) + { + cout << "Error getting tty attributes" << endl; + return -1; + } + + // setting raw-mode allows the use of tcsetattr() and ioctl() + options = gOriginalTTYAttrs; + cfmakeraw(&options); + options.c_cc[VMIN] = 0; + options.c_cc[VTIME] = 10; + // specify any arbitrary baud rate + speed_t baudRate = 9600; + cfsetospeed(&options, B9600); + /*if (ioctl(serialFileDescriptor, IOSSIOSPEED, &baudRate) ==1) + { + cout << "Error calling ioctl" << endl; + return -1; + }*/ + + //cout << "Opened connection to Arduino" << endl; + return serialFileDescriptor; +} + +int writeSerialPort(int serialFileDescriptor, void *buffer) +{ + ssize_t numBytes; + numBytes = write(serialFileDescriptor, buffer, sizeof(buffer)); + //cout << "Wrote " << numBytes << " bytes to Arduino" << endl; + //cout << "Sent the start signal through Arduino.."<< endl; + return numBytes; +} + +void closeSerialPort(int serialFileDescriptor) +{ + if (tcdrain(serialFileDescriptor) == -1) { + cout<< "Error waiting for drain" << endl; + } + + // Traditionally it is good practice to reset a serial port back to + // the state in which you found it. This is why the original termios struct + // was saved. + gOriginalTTYAttrs.c_cflag &= ~HUPCL; // disable hang-up-on-close to avoid reset + if (tcsetattr(serialFileDescriptor, TCSANOW, &gOriginalTTYAttrs) == -1) { + cout << "Error resetting tty attributes"<< endl; + } + + close(serialFileDescriptor); + //cout << "Closed connection to Arduino" << endl; +} /**\fn int getdir(string dir, vector<string> &files) * \brief List directory contents matching BOARD_FILE_STR * \param dir - directory name of interest diff --git a/src/raven/console_process.cpp b/src/raven/console_process.cpp old mode 100644 new mode 100755 diff --git a/src/raven/dof.cpp b/src/raven/dof.cpp old mode 100644 new mode 100755 diff --git a/src/raven/fwd_cable_coupling.cpp b/src/raven/fwd_cable_coupling.cpp old mode 100644 new mode 100755 index 28a0487f9af3f08dd0b435a978cd748771c75a6b..891d9e1602127d512bcba09bca79b34ecc8d996f --- a/src/raven/fwd_cable_coupling.cpp +++ b/src/raven/fwd_cable_coupling.cpp @@ -27,7 +27,6 @@ #include "fwd_cable_coupling.h" #include "log.h" #include "tool.h" -#define simulator extern struct DOF_type DOF_types[]; extern int NUM_MECH; diff --git a/src/raven/fwd_kinematics.cpp b/src/raven/fwd_kinematics.cpp old mode 100644 new mode 100755 diff --git a/src/raven/get_USB_packet.cpp b/src/raven/get_USB_packet.cpp old mode 100644 new mode 100755 diff --git a/src/raven/globals.cpp b/src/raven/globals.cpp old mode 100644 new mode 100755 diff --git a/src/raven/grav_comp.cpp b/src/raven/grav_comp.cpp old mode 100644 new mode 100755 diff --git a/src/raven/hmatrix.c b/src/raven/hmatrix.c old mode 100644 new mode 100755 diff --git a/src/raven/hmatrix.cpp b/src/raven/hmatrix.cpp old mode 100644 new mode 100755 diff --git a/src/raven/homing.cpp b/src/raven/homing.cpp old mode 100644 new mode 100755 index 35f8d4388680644e23b84afea909e871d41c02ae..271eae138cb46fd734285f3d9f59e27b95e853ef --- a/src/raven/homing.cpp +++ b/src/raven/homing.cpp @@ -38,7 +38,7 @@ #include "homing.h" #include "state_estimate.h" #include "log.h" - +#include "USB_init.h" #include <iostream> @@ -49,6 +49,9 @@ extern unsigned long int gTime; extern struct DOF_type DOF_types[]; extern unsigned int soft_estopped; +#ifdef skip_init_button +extern int serial_fd; +#endif /** * raven_homing() * @@ -76,7 +79,6 @@ int raven_homing(struct device *device0, struct param_pass *currParams, int begi struct mechanism* _mech = NULL; int i=0,j=0; - #ifdef RICKS_TOOLS // Refers to Enders Game Prop manager!! // these were wooden dummy tools for the movie. _mech = NULL; _joint = NULL; @@ -90,9 +92,15 @@ int raven_homing(struct device *device0, struct param_pass *currParams, int begi } #endif - - - +#ifdef skip_init_button + static int counter = 0; + static char buff[2] = "1"; + counter++; + if (counter == 600) + { + writeSerialPort(serial_fd, buff); + } +#endif // Only run in init mode if ( ! (currParams->runlevel == RL_INIT && currParams->sublevel == SL_AUTO_INIT )) @@ -103,7 +111,7 @@ int raven_homing(struct device *device0, struct param_pass *currParams, int begi } // Wait a short time for amps to turn on - if (gTime - delay < 1000) + if (gTime - delay < 500) { return 0; } @@ -393,8 +401,8 @@ const int homing_max_dac[8] = {2500, //shoulder 2500, //elbow 2800, //z-ins 0, - 1900, //tool_rot // was 1400, lowered to reduce calibration error //I think this is labeled improperly - AL - 1900, //wrist + 2600, //tool_rot // was 1400, lowered to reduce calibration error //I think this is labeled improperly - AL + 2000, //wrist 1700, //grasp1 1700}; // grasp2 #else diff --git a/src/raven/init.cpp b/src/raven/init.cpp old mode 100644 new mode 100755 diff --git a/src/raven/inv_cable_coupling.cpp b/src/raven/inv_cable_coupling.cpp old mode 100644 new mode 100755 diff --git a/src/raven/local_io.cpp b/src/raven/local_io.cpp old mode 100644 new mode 100755 index b257e306e3a76a5685e2313490ff77e5e6526193..7423301d6d249f15f0a5cc0f15b6fa271069f9fa --- a/src/raven/local_io.cpp +++ b/src/raven/local_io.cpp @@ -53,9 +53,8 @@ ROS publishing is at the bottom half of this file. #include "r2_kinematics.h" #include "reconfigure.h" -#define simulator -#ifdef simulator +#ifdef simulator_packet extern int program_state; #endif @@ -124,6 +123,9 @@ int initLocalioData(void) int receiveUserspace(void *u,int size) { +#ifdef simulator_packet + //log_msg("I got a new packet of size %d, but size = %d", sizeof(struct u_struct), size); +#endif if (size==sizeof(struct u_struct)) { isUpdated = TRUE; @@ -155,13 +157,17 @@ void teleopIntoDS1(struct u_struct *us_t) // TODO:: APPLY TRANSFORM TO INCOMING DATA - for (i=0;i<NUM_MECH;i++) { #ifndef simulator armserial = USBBoards.boards[i]==GREEN_ARM_SERIAL ? GREEN_ARM_SERIAL : GOLD_ARM_SERIAL; armidx = USBBoards.boards[i]==GREEN_ARM_SERIAL ? 1 : 0; +#else + armserial = (i == 1) ? GREEN_ARM_SERIAL : GOLD_ARM_SERIAL; + armidx = (i == 1) ? 1 : 0; +#endif +#ifndef simulator_packet // apply mapping to teleop data p.x = us_t->delx[armidx]; p.y = us_t->dely[armidx]; @@ -194,25 +200,24 @@ void teleopIntoDS1(struct u_struct *us_t) if (data1.rd[i].grasp>graspmax) data1.rd[i].grasp=graspmax; else if(data1.rd[i].grasp<graspmin) data1.rd[i].grasp=graspmin; #else - armserial = (i == 1) ? GREEN_ARM_SERIAL : GOLD_ARM_SERIAL; - armidx = (i == 1) ? 1 : 0; - // Set Position command - data1.xd[i].x = us_t->delx[armidx]; + data1.xd[i].x = us_t->delx[armidx]; data1.xd[i].y = us_t->dely[armidx]; data1.xd[i].z = us_t->delz[armidx]; + // commented debug output - /*log_file("Arm %d : User desired end-effector positions: (%d,%d,%d)", - i, data1.xd[i].x, data1.xd[i].y, data1.xd[i].z); -*/ + //log_file("Arm %d : User desired end-effector positions: (%d,%d,%d)", + // i, data1.xd[i].x, data1.xd[i].y, data1.xd[i].z); + // Set rotation command if (i == 0) { for (int j=0;j<3;j++) for (int k=0;k<3;k++) data1.rd[0].R[j][k] = us_t->R_l[j][k]; - // Just keep the golden results +#ifdef simulator + // Just keep the golden results double gangle = (us_t->grasp[armidx]*M_PI/180)/1000.0; data1.jpos_d[0] = (us_t->ljoints[0] - 205)*M_PI/180; data1.jpos_d[1] = (us_t->ljoints[1] - 180)*M_PI/180; @@ -221,12 +226,14 @@ void teleopIntoDS1(struct u_struct *us_t) data1.jpos_d[4] = (us_t->ljoints[4] + 90)*M_PI/180; data1.jpos_d[5] = -us_t->ljoints[5]*M_PI/180 + gangle/2; data1.jpos_d[6] = us_t->ljoints[5]*M_PI/180 + gangle/2; +#endif } else { for (int j=0;j<3;j++) for (int k=0;k<3;k++) data1.rd[1].R[j][k] = us_t->R_r[j][k]; +#ifdef simulator // Just keep the golden results double gangle = (us_t->grasp[armidx]*M_PI/180)/1000.0; data1.jpos_d[7] = (us_t->rjoints[0] - 25)*M_PI/180; @@ -236,6 +243,7 @@ void teleopIntoDS1(struct u_struct *us_t) data1.jpos_d[11] = (us_t->rjoints[4] + 90)*M_PI/180; data1.jpos_d[12] = -us_t->rjoints[5]*M_PI/180 + gangle/2; data1.jpos_d[13] = us_t->rjoints[5]*M_PI/180 + gangle/2; +#endif } //log_file("Arm %d: User desired end-effector rotations: \n(%f,%f,%f)\n(%f,%f,%f)\n(%f,%f,%f)\n",i, data1.rd[i].R[0][0],data1.rd[i].R[0][1],data1.rd[i].R[0][2],data1.rd[i].R[1][0],data1.rd[i].R[1][1],data1.rd[i].R[1][2],data1.rd[i].R[2][0],data1.rd[i].R[2][1],data1.rd[i].R[2][2]); @@ -272,7 +280,7 @@ void teleopIntoDS1(struct u_struct *us_t) */ int checkLocalUpdates() { -#ifdef simulator +#ifdef simulator_packet program_state = 3; #endif static unsigned long int lastUpdated; @@ -308,7 +316,7 @@ int checkLocalUpdates() */ struct param_pass * getRcvdParams(struct param_pass* d1) { -#ifdef simulator +#ifdef simulator_packet program_state = 4; #endif // \TODO Check performance of trylock / default priority inversion scheme diff --git a/src/raven/log.cpp b/src/raven/log.cpp old mode 100644 new mode 100755 index 5cb138e4583507a237bcd54659beb860972a6403..d7de2e89a2eb39a3ae02efa2ea297f7d5d42cf9f --- a/src/raven/log.cpp +++ b/src/raven/log.cpp @@ -27,15 +27,14 @@ #include <stdio.h> #include <stdarg.h> #include <ros/console.h> +#include <defines.h> #include <queue> std::queue<char*> msgqueue; const static size_t MAX_MSG_LEN =1024; -#define simulator //#define simulator_logging - -#ifdef simulator +#ifdef simulator_packet #include <fstream> extern int inject_mode; extern int logging; @@ -47,16 +46,19 @@ extern int logging; int log_file(const char* fmt,...) { - if (logging == 1) +#ifdef no_logging + logging = 0; +#endif + if (logging == 1) { std::ofstream logfile; - + if (inject_mode == 0) - logfile.open("/home/homa/Documents/raven_2/sim_log.txt", std::ofstream::out | std::ofstream::app); + logfile.open("/home/junjie/homa_wksp/raven_2/sim_log.txt", std::ofstream::out | std::ofstream::app); else { char buff[50]; - sprintf(buff,"/home/homa/Documents/raven_2/fault_log_%d.txt",inject_mode); + sprintf(buff,"/home/junjie/homa_wksp/raven_2/fault_log_%d.txt",inject_mode); logfile.open(buff,std::ofstream::out | std::ofstream::app); } static char buf[MAX_MSG_LEN]; @@ -85,6 +87,7 @@ int log_file(const char* fmt,...) int log_msg_later(const char* fmt,...) { +#ifndef no_logging static char buf[MAX_MSG_LEN]; char* msgbuf; va_list args; @@ -99,6 +102,7 @@ int log_msg_later(const char* fmt,...) msgqueue.push(msgbuf); // ROS_INFO("%s",buf); //std::cout << "qsiz:" << msgqueue.size() << std::endl; +#endif return 0; } @@ -110,6 +114,7 @@ int log_msg_later(const char* fmt,...) int log_msg(const char* fmt,...) { +#ifndef no_logging static char buf[MAX_MSG_LEN]; va_list args; va_start (args, fmt); @@ -118,6 +123,7 @@ int log_msg(const char* fmt,...) va_end(args); // printf("%s",buf); ROS_INFO("%s",buf); +#endif return 0; } @@ -129,6 +135,7 @@ int log_msg(const char* fmt,...) int err_msg(const char* fmt,...) { +#ifndef no_logging static char buf[MAX_MSG_LEN]; va_list args; va_start (args, fmt); @@ -137,5 +144,6 @@ int err_msg(const char* fmt,...) va_end(args); // printf("%s",buf); ROS_ERROR("%s",buf); +#endif return 0; } diff --git a/src/raven/mapping.cpp b/src/raven/mapping.cpp old mode 100644 new mode 100755 diff --git a/src/raven/motor.cpp b/src/raven/motor.cpp old mode 100644 new mode 100755 diff --git a/src/raven/network_layer.cpp b/src/raven/network_layer.cpp old mode 100644 new mode 100755 index 6d39ef21495c22a37a1aa4b1acf5c9b6fd965d65..d7f7a486141d09576a47c93e282c698760730ae3 --- a/src/raven/network_layer.cpp +++ b/src/raven/network_layer.cpp @@ -58,20 +58,27 @@ #include "DS0.h" #include "DS1.h" #include "log.h" +#include "defines.h" -#define SERVER_PORT "36000" // used if the robot needs to send data to the server + + +#define SERVER_PORT "36001" // used if the robot needs to send data to the server //#define SERVER_ADDR "192.168.0.102" #define SERVER_ADDR "128.95.205.206" // used only if the robot needs to send data to the server -#define simulator -#ifdef simulator +#ifdef simulator_packet extern int logging; +extern int done_homing; int first = 0; +extern struct device device0; #define PACK_GEN_PORT "32000" #define RUN_PY_PORT "34000" #define HOST_ADDR "127.0.0.1" // used only if the robot needs to send data to the server #endif +//#ifdef test_gdb +extern unsigned long int gTime; +//#endif extern int receiveUserspace(void *u,int size); // Defined in the local_io.cpp /**\fn int initSock (const char* port ) @@ -184,6 +191,16 @@ void* network_process(void* param1) unsigned int seq = 0; volatile int bytesread; +#ifdef test_gdb + //struct timespec tnow, tnow2; + // Set next timer-shot (must be in future) + //clock_gettime(CLOCK_REALTIME,&tnow); + //logging = 1; + //clock_gettime(CLOCK_REALTIME,&tnow2); + //log_msg("Diff = %ld",tnow2.tv_nsec-tnow.tv_nsec); + //logging = 0; +#endif + // print some status messages log_msg("Starting network services.."); log_msg(" u_struct size: %i",uSize); @@ -222,10 +239,11 @@ void* network_process(void* param1) maxfd=sock; log_msg("Network layer ready."); - + ///// Main read/write loop while ( ros::ok() ) { + //printf("Network @= %lx\n", gTime); rmask = mask; timeout.tv_sec = 2; // hack:reset timer after timeout event. timeout.tv_usec = 0; // "" @@ -246,38 +264,51 @@ void* network_process(void* param1) break; } - // Select timeout: nothing to do +// Select timeout: nothing to do if (nfound == 0) { -#ifdef simulator - if (first == 0) +#ifdef simulator_packet +#ifdef surgeon_packet_gen + // To enable recieving packets again, set first + if (device0.runlevel == 0) + first = 0; +#endif + if ((first == 0) && (device0.runlevel == 2)) { - char v[6] = "Ready"; - clientName.sin_port = htons((u_short)atoi(PACK_GEN_PORT)); + done_homing = 0; + char v[6] = "Ready"; + clientName.sin_port = htons((u_short)atoi(PACK_GEN_PORT)); inet_aton(HOST_ADDR, &clientName.sin_addr); - sendto ( sock, (void*)&v, sizeof(v), 0, - (struct sockaddr *) &clientName, clientLength); - printf("=================> Sent READY to Packet Generator at ADDR = %d, PORT = %d\n", clientName.sin_port, clientName.sin_addr); - first = 1; + sendto ( sock, (void*)&v, sizeof(v), 0, + (struct sockaddr *) &clientName, clientLength); +#ifndef no_logging + printf("=================> Sent READY to Packet Generator at ADDR = %d, PORT = %d\n", clientName.sin_addr, clientName.sin_port); +#endif } - else if (first == 1) + if ((first == 1) && (device0.runlevel == 2)) { char v[6] = "Done!"; - clientName.sin_port = htons((u_short)atoi(RUN_PY_PORT)); + clientName.sin_port = htons((u_short)atoi(RUN_PY_PORT)); inet_aton(HOST_ADDR, &clientName.sin_addr); - sendto ( sock, (void*)&v, sizeof(v), 0, - (struct sockaddr *) &clientName, clientLength); - printf("=================> Sent DONE to Run Injection at ADDR = %d, PORT = %d\n", clientName.sin_port, clientName.sin_addr); - logging = 1; - log_file("______________________________________________\n"); - logging = 0; - first = 2; - } + sendto ( sock, (void*)&v, sizeof(v), 0, + (struct sockaddr *) &clientName, clientLength); +#ifndef no_logging + printf("=================> Sent DONE to Run Injection at ADDR = %d, PORT = %d\n", clientName.sin_addr, clientName.sin_port); +#endif + logging = 0; + //log_file("______________________________________________\n"); + //logging = 0; + first = 2; + } #endif fflush(stdout); continue; } - +#ifdef simulator_packet + else + first = 1; +#endif + // Select: data on socket if (FD_ISSET( sock, &rmask)) // check whether the diescriptor sock is added to the fdset mask { @@ -288,7 +319,7 @@ void* network_process(void* param1) NULL, NULL); -#ifdef simulator +#ifdef simulator_packet //log_file("NETWORK) Receieved Data on Socket, Size = %d", uSize); #endif if (bytesread != uSize){ @@ -341,7 +372,7 @@ void* network_process(void* param1) else if (u.sequence > seq) // Valid packet { -#ifdef simulator +#ifdef simulator_packet log_msg("NETWORK) Receieved Valid Packet # %d\n", u.sequence); //log_file("NETWORK) Receieved Valid Packet # %d\n", u.sequence); #endif @@ -368,6 +399,17 @@ void* network_process(void* param1) } } +#ifdef surgeon_packet_gen + if (device0.runlevel == 0) + { + char v[8] = "Stopped"; + clientName.sin_port = htons((u_short)atoi(PACK_GEN_PORT)); + inet_aton(HOST_ADDR, &clientName.sin_addr); + sendto ( sock, (void*)&v, sizeof(v), 0, + (struct sockaddr *) &clientName, clientLength); + printf("=================> Sent Stopped to Packet Generator at ADDR = %d, PORT = %d\n", clientName.sin_addr, clientName.sin_port); + } +#endif #ifdef NET_SEND sendto ( sock, (void*)&v, vSize, 0, (struct sockaddr *) &clientName, clientLength); diff --git a/src/raven/overdrive_detect.cpp b/src/raven/overdrive_detect.cpp old mode 100644 new mode 100755 index f3f7f5e2200b1cf8be0ed75e422a3ac7aef94466..943cf35d026b5b7c5a7b2971f3cf548a99a58bd5 --- a/src/raven/overdrive_detect.cpp +++ b/src/raven/overdrive_detect.cpp @@ -64,8 +64,12 @@ int overdriveDetect(struct device *device0) if (abs(_joint->current_cmd) > MAX_INST_DAC) { log_msg("Instant i command too high. Joint type: %d DAC:%d \t tau:%0.3f\n", _joint->type, _joint->current_cmd, _joint->tau_d); + log_file("Error: Instant i command too high. Joint type: %d DAC:%d \t tau:%0.3f\n", _joint->type, _joint->current_cmd, _joint->tau_d); _joint->current_cmd = 0; + log_file("Error: E-STOP"); +//#ifndef skip_restart_button ret = TRUE; +//#endif } else if ( _joint->current_cmd > _dac_max ) @@ -73,6 +77,8 @@ int overdriveDetect(struct device *device0) //Clip current to max_torque if (gTime %100 == 0) //don't saturate the console err_msg("Joint type %d is current clipped high (%d) at DAC:%d\n", _joint->type, _dac_max, _joint->current_cmd); + log_file("Error: Joint type %d is current clipped high (%d) at DAC:%d\n", _joint->type, _dac_max, _joint->current_cmd); + _joint->current_cmd = _dac_max; } @@ -81,6 +87,7 @@ int overdriveDetect(struct device *device0) //Clip current to -1*max_torque if (gTime %100 == 0) err_msg("Joint type %d is current clipped low (%d) at DAC:%d\n", _joint->type, _dac_max*-1, _joint->current_cmd); + log_file("Error: Joint type %d is current clipped low (%d) at DAC:%d\n", _joint->type, _dac_max*-1, _joint->current_cmd); _joint->current_cmd = _dac_max*-1; } } diff --git a/src/raven/parallel.cpp b/src/raven/parallel.cpp old mode 100644 new mode 100755 diff --git a/src/raven/pid_control.cpp b/src/raven/pid_control.cpp old mode 100644 new mode 100755 index 5055e0d9b7fd12078851bbe15cca6e2d37c5245d..1cc064b7f1595c8fe5f375a8acce1e8a5f1d3aea --- a/src/raven/pid_control.cpp +++ b/src/raven/pid_control.cpp @@ -101,15 +101,15 @@ void mpos_PD_control(struct DOF *joint, int reset_I) joint->tau_d = pTerm + vTerm +iTerm + friction_feedforward; - static int count = 0; - if (count <100){ - log_msg("kp --> %d", kp); - log_msg("pterm --> %f", pTerm); - log_msg("joint->type --> %i", joint->type); - log_msg(""); - - count++; - } +// static int count = 0; +// if (count <100){ +// log_msg("kp --> %d", kp); +// log_msg("pterm --> %f", pTerm); +// log_msg("joint->type --> %i", joint->type); +// log_msg(""); +// +// count++; +// } } /** diff --git a/src/raven/put_USB_packet.cpp b/src/raven/put_USB_packet.cpp old mode 100644 new mode 100755 diff --git a/src/raven/r2_kinematics.cpp b/src/raven/r2_kinematics.cpp old mode 100644 new mode 100755 index bc4c318514a2616d498a8839f2d59abbfbfa7bf5..812945af117d18add718701a1f973286c396e7dd --- a/src/raven/r2_kinematics.cpp +++ b/src/raven/r2_kinematics.cpp @@ -68,9 +68,7 @@ double ds[2][6] = {{0, 0, V, d4, 0, 0}, double robot_thetas[2][6] = {{V, V, M_PI/2, V, V, V}, {V, V, -M_PI/2, V, V, V}}; -#define simulator - -#ifdef simulator +#ifdef simulator_packet int check_collision(ik_solution * iksols, double * gangels); /// Parameters to check for fwd_kin //int a_fwd = 0; @@ -127,8 +125,9 @@ tf::Transform getFKTransform(int a, int b) int check_collision(ik_solution *iksols, double *gangels) { - //gangels[0] = 10*d2r; - //gangels[1] = 20*d2r; + + //gangels[0] = 30*d2r; + //gangels[1] = 30*d2r; //l_r arm; tf::Transform xf; @@ -138,11 +137,12 @@ int check_collision(ik_solution *iksols, double *gangels) tf::Matrix3x3 T6; tf::Matrix3x3 env_r; - // Constant Matrices for Transformation to Base Frame + // Constant Matrices for Transformation to Base Frame R_T0.setValue(0, 0, -1, 0, 1, 0, 1, 0, 0); L_T0.setValue(0, 0, 1, 0, -1, 0, 1, 0, 0); - tf::Vector3 R_disp(-300710,61000,-7000); - tf::Vector3 L_disp(-379290,61000,-7000); + // Needs to be tuned to be more accurate + tf::Vector3 R_disp(-250710,61000,-6000); + tf::Vector3 L_disp(-379290,61000,-6000); double R[3][3]; double posx, posy, posz; @@ -179,7 +179,7 @@ int check_collision(ik_solution *iksols, double *gangels) posx = xf.getOrigin()[0] * (1000.0*1000.0); posy = xf.getOrigin()[1] * (1000.0*1000.0); posz = xf.getOrigin()[2] * (1000.0*1000.0); - //cout << "Arm " << m << ":\n"; + //cout << "Arm " << m << ":\n"; //cout << "Position = ("<< posx << "," << posy << ","<< posz << ")\n"; for (int i=0;i<3;i++) @@ -193,7 +193,6 @@ int check_collision(ik_solution *iksols, double *gangels) } T6_b.setValue(R[0][0], R[0][1], R[0][2], R[1][0], R[1][1], R[1][2], R[2][0], R[2][1], R[2][2]); - radius[m] = 10.5/cos(gangels[m])*1000; //cout << "Radius = " << radius[m] << "\n"; @@ -208,9 +207,9 @@ int check_collision(ik_solution *iksols, double *gangels) T6 = R_T0 * T6_b; tmp = R_T0*tf::Vector3(posx,posy,posz)+R_disp; } - posx = tmp[0]; - posy = tmp[1]; - posz = tmp[2]; + posx = tmp[0]; + posy = tmp[1]; + posz = tmp[2]; //cout << "TPosition = ("<< posx << "," << posy << ","<< posz << ")\n"; for (int i=0;i<3;i++) @@ -296,7 +295,7 @@ int r2_fwd_kin(struct device *d0, int runlevel) for (int j=0; j<3; j++) d0->mech[m].ori.R[i][j] = (xf.getBasis())[i][j]; -#ifdef simulator +#ifdef simulator_packet log_file("FK_Pos_Arm%d: %d, %d, %d", m, d0->mech[m].pos.x, d0->mech[m].pos.y, d0->mech[m].pos.z); log_file("FK_Ori_Arm%d: %f, %f, %f, %f, %f, %f, %f, %f, %f\n", m, d0->mech[m].ori.R[0][0], d0->mech[m].ori.R[0][1], d0->mech[m].ori.R[0][2], d0->mech[m].ori.R[1][0], d0->mech[m].ori.R[1][1], d0->mech[m].ori.R[1][2], d0->mech[m].ori.R[2][0], d0->mech[m].ori.R[2][1], d0->mech[m].ori.R[2][2]); @@ -526,9 +525,9 @@ int r2_inv_kin(struct device *d0, int runlevel) int ret = inv_kin(xf, arm, iksol); if (ret < 0) { - log_msg("ik failed gracefully (arm%d ret:%d", arm, ret); -#ifdef simulator - log_file("Error: ik failed gracefully (arm%d ret:%d", arm, ret); + log_msg("ik failed gracefully (arm%d ret:%d)", arm, ret); +#ifdef simulator_packet + log_file("Error: ik failed gracefully (arm%d ret:%d)", arm, ret); #endif } #ifdef simulator @@ -566,8 +565,8 @@ int r2_inv_kin(struct device *d0, int runlevel) if ( (check_result = check_solutions(lo_thetas, iksol, sol_idx, sol_err)) < 0) { cout << "IK failed\n"; -#ifdef simulator - log_file("Error: IK failed\n"); +#ifdef simulator_packet + log_file("Error: IK failed (arm %d)\n",arm); #endif return -1; } @@ -580,18 +579,18 @@ int r2_inv_kin(struct device *d0, int runlevel) double gangle = double(d0->mech[m].ori_d.grasp) / 1000.0; theta2joint(iksol[sol_idx], Js); -#ifdef simulator +#ifdef simulator_packet if (m == 0) { - gangles[0] = gangle; - iksols[0] = iksol[sol_idx]; + gangles[0] = gangle; + iksols[0] = iksol[sol_idx]; } else { - gangles[1] = gangle; - iksols[1] = iksol[sol_idx]; - } - log_file("IK_Thetas_Arm%d: %f, %f, %f, %f, %f, %f, %f\n", + gangles[1] = gangle; + iksols[1] = iksol[sol_idx]; + } + log_file("IK_Thetas_Arm%d: %f, %f, %f, %f, %f, %f, %f\n", m,iksol[sol_idx].th1*r2d,iksol[sol_idx].th2*r2d, iksol[sol_idx].d3, iksol[sol_idx].th4*r2d, iksol[sol_idx].th5*r2d, @@ -611,8 +610,8 @@ int r2_inv_kin(struct device *d0, int runlevel) d0->mech[m].ori_d.R[i][j] = (xf_sat.getBasis())[i][j]; updateMasterRelativeOrigin(d0); -#ifdef simulator - log_file("Error: Saturated to Joint Limits\n"); +#ifdef simulator_packet + log_file("Error: Saturated to Joint Limits (arm %d)\n", arm); #endif } else @@ -658,13 +657,19 @@ int r2_inv_kin(struct device *d0, int runlevel) } printIK=0; -#ifdef simulator +#ifdef simulator_packet int check_result = 0; + static int counter = 0; + counter++; + if (counter % 100 == 0) + { + if ((check_result = check_collision(iksols,gangles)) < 0 ) { log_msg("Collision Detected\n"); log_file("Error: Collision Detected\n"); } + } //log_file("RT_PROCESS) INV Kinematics Done.\n"); #endif return 0; diff --git a/src/raven/reconfigure.cpp b/src/raven/reconfigure.cpp old mode 100644 new mode 100755 diff --git a/src/raven/rt_process_preempt.cpp b/src/raven/rt_process_preempt.cpp old mode 100644 new mode 100755 index c92a245dee5771f83d6d9e2ca05ef4ac4f0de077..fe86c0a34fb9a16ccbb24ac15dd2915da5b9dce8 --- a/src/raven/rt_process_preempt.cpp +++ b/src/raven/rt_process_preempt.cpp @@ -76,28 +76,32 @@ using namespace std; #define MS (1000 * US) #define SEC (1000 * MS) -#define simulator //Global Variables unsigned long int gTime; int initialized=0; // State initialized flag int soft_estopped=0; // Soft estop flag- indicate desired software estop. - int deviceType = SURGICAL_ROBOT;//PULLEY_BOARD; struct device device0 ={0}; //Declaration Moved outside rt loop for access from console thread int mech_gravcomp_done[2]={0}; -#ifdef simulator +#ifdef simulator_packet #include <fstream> int inject_mode; int NUM_MECH=2; // Define NUM_MECH as a C variable, not a c++ variable int program_state = -1; +int done_homing = 0; int logging = 0; int no_pack_cnt = 0; #else int NUM_MECH=0; // Define NUM_MECH as a C variable, not a c++ variable #endif +#ifdef skip_init_button +int serial_fd = -1; +#endif + + pthread_t rt_thread; pthread_t net_thread; pthread_t console_thread; @@ -169,7 +173,7 @@ static void *rt_process(void* ) { 0 }; - struct timespec t, tnow, t2, tbz; // Tracks the timer value + struct timespec t, tnow, tnow2, t2, tbz; // Tracks the timer value int interval= 1 * MS; // task period in nanoseconds //CPU locking doesn't help timing. Oh well. @@ -185,7 +189,7 @@ static void *rt_process(void* ) // set thread priority and stuff struct sched_param param; // process / thread priority settings - param.sched_priority = 96; + param.sched_priority = 99; log_msg("Using realtime, priority: %d", param.sched_priority); int ret = pthread_setschedparam(pthread_self(), SCHED_FIFO, ¶m); if (ret != 0) @@ -217,33 +221,47 @@ static void *rt_process(void* ) log_msg("*** Ready to teleoperate ***"); - - // --- Main robot control loop --- // TODO: Break when board becomes disconnected. while (ros::ok() && !r2_kill) { - + //printf("RealTime @= %lx\n", gTime); // Initiate USB Read #ifndef simulator initiateUSBGet(&device0); +#endif +#ifdef test_gdb + clock_gettime(CLOCK_REALTIME,&tnow); + tsnorm(&tnow); + clock_gettime(CLOCK_REALTIME,&tnow2); + tsnorm(&tnow2); + long int Diff = (tnow2.tv_nsec-tnow.tv_nsec)/100000; + //if (Diff > 9) + //if ((gTime % 2) == 0) + // printf("Diff = %ld\n",Diff); #endif // Set next timer-shot (must be in future) clock_gettime(CLOCK_REALTIME,&tnow); + tsnorm(&tnow); + int sleeploops = 0; + while (isbefore(t,tnow)) { - t.tv_nsec+=interval; + t.tv_nsec+=interval; tsnorm(&t); sleeploops++; } if (sleeploops!=1) + { //std::cout<< "slplup"<< sleeploops <<std::endl; + } #ifndef simulator parport_out(0x00); #endif /// SLEEP until next timer shot clock_nanosleep(0, TIMER_ABSTIME, &t, NULL); + #ifndef simulator parport_out(0x03); #endif @@ -272,7 +290,9 @@ static void *rt_process(void* ) clock_gettime(CLOCK_REALTIME,&t2); t2 = tsSubtract(t2, tnow); if (loops!=0) - std::cout<< "bzlup"<<loops<<"0us time:" << (double)t2.tv_sec + (double)t2.tv_nsec/SEC <<std::endl; + { + //std::cout<< "bzlup"<<loops<<"0us time:" << (double)t2.tv_sec + (double)t2.tv_nsec/SEC <<std::endl; + } //Run Safety State Machine #ifndef simulator @@ -286,8 +306,8 @@ static void *rt_process(void* ) //Get state updates from master if ( checkLocalUpdates() == TRUE) { -#ifdef simulator - logging = 1; +#ifdef simulator_packet + logging = 1; no_pack_cnt++; //log_file("RT_PROCESS) Update device state based on received packet.\n"); #endif @@ -295,8 +315,8 @@ static void *rt_process(void* ) } else { -#ifdef simulator - logging = 0; +#ifdef simulator_packet + logging = 0; //log_file("RT_PROCESS) No new packets. Use previous parameters.\n"); #endif rcvdParams.runlevel = currParams.runlevel; @@ -308,7 +328,7 @@ static void *rt_process(void* ) //////////////// SURGICAL ROBOT CODE ////////////////////////// if (deviceType == SURGICAL_ROBOT) { -#ifdef simulator +#ifdef simulator_packet program_state = 6; #endif // Calculate Raven control @@ -337,6 +357,10 @@ static void *rt_process(void* ) //Done for this cycle } +#ifdef skip_init_button + closeSerialPort(serial_fd); +#endif + log_msg("Raven Control is shutdown"); return 0; } @@ -375,7 +399,7 @@ int init_ros(int argc, char **argv) */ ros::init(argc, argv, "r2_control", ros::init_options::NoSigintHandler); ros::NodeHandle n; -#ifdef simulator +#ifdef simulator_packet n.getParam("inject",inject_mode); #endif // rosrt::init(); @@ -416,18 +440,24 @@ int main(int argc, char **argv) cerr << "ERROR! Failed to init memory_pool. Exiting.\n"; exit(1); } -#ifdef simulator + +#ifdef skip_init_button + serial_fd = openSerialPort(); +#endif + +#ifdef simulator_packet std::ofstream logfile; log_msg("************** Inject mode = %d\n",inject_mode); if (inject_mode == 0) - logfile.open("/home/homa/Documents/raven_2/sim_log.txt", std::ofstream::out); + logfile.open("/home/junjie/homa_wksp/raven_2/sim_log.txt", std::ofstream::out); else { char buff[50]; - sprintf(buff,"/home/homa/Documents/raven_2/fault_log_%d.txt",inject_mode); + sprintf(buff,"/home/junjie/homa_wksp/raven_2/fault_log_%d.txt",inject_mode); logfile.open(buff,std::ofstream::out); } - //log_file("MAIN) Initiated ROS and Memory Pool.\n"); + //log_file("MAIN) Initiated ROS and Memory Pool.\n"); + #endif // init reconfigure @@ -443,7 +473,6 @@ int main(int argc, char **argv) #ifdef simulator //log_file("MAIN) Created and initiated threads.\n"); #endif - ros::spin(); #ifndef simulator diff --git a/src/raven/rt_raven.cpp b/src/raven/rt_raven.cpp old mode 100644 new mode 100755 index e9f1173539f20d70d6c1e01008ece63db7a403c5..55e83c257ef21a140e2fb42f3231484337ea7c83 --- a/src/raven/rt_raven.cpp +++ b/src/raven/rt_raven.cpp @@ -34,7 +34,6 @@ #include "rt_raven.h" #include "defines.h" - #include "init.h" // for initSurgicalArms() #include "inv_kinematics.h" #include "r2_kinematics.h" @@ -51,11 +50,15 @@ #include "update_device_state.h" #include "parallel.h" -#define simulator -#ifdef simulator + +#ifdef simulator_packet extern int program_state; +extern int done_homing; +#endif +#ifdef test_gdb +struct timespec tnow, tnow2; #endif -extern int NUM_MECH; //Defined in rt_process_preempt.cpp +extern int NUM_MECH; //Defined in rt_process_ preempt.cpp extern unsigned long int gTime; //Defined in rt_process_preempt.cpp extern struct DOF_type DOF_types[]; //Defined in DOF_type.h extern t_controlmode newRobotControlMode; //Defined in struct.h @@ -92,9 +95,18 @@ extern int initialized; //Defined in rt_process_preempt.cpp * */ int controlRaven(struct device *device0, struct param_pass *currParams){ -#ifdef simulator - program_state = 7; +#ifdef test_gdb + clock_gettime(CLOCK_REALTIME,&tnow); +#endif +#ifdef simulator_packet + program_state = 7; #endif +#ifdef test_gdb + clock_gettime(CLOCK_REALTIME,&tnow2); + long int Diff = (tnow2.tv_nsec-tnow.tv_nsec)/100000; + if (Diff > 9) + printf("Diff = %ld\n",Diff); +#endif int ret = 0; //Desired control mode t_controlmode controlmode = (t_controlmode)currParams->robotControlMode; @@ -107,13 +119,13 @@ int controlRaven(struct device *device0, struct param_pass *currParams){ stateEstimate(device0); #endif -#ifdef simulator +#ifdef simulator_packet program_state = 8; #endif //Foward Cable Coupling fwdCableCoupling(device0, currParams->runlevel); -#ifdef simulator +#ifdef simulator_packet program_state = 9; #endif //Forward kinematics @@ -124,7 +136,7 @@ int controlRaven(struct device *device0, struct param_pass *currParams){ //CHECK ME: what is the purpose of this mode? case no_control: { -#ifdef simulator +#ifdef simulator_packet program_state = 10; //log_file("RT_PROCESS) No Control"); #endif @@ -146,7 +158,8 @@ int controlRaven(struct device *device0, struct param_pass *currParams){ } //Cartesian Space Control is called to control the robot in cartesian space case cartesian_space_control: -#ifdef simulator +#ifdef simulator_packet + done_homing = 1; program_state = 11; //log_file("RT_PROCESS) Cartesian space control"); #endif @@ -164,12 +177,12 @@ int controlRaven(struct device *device0, struct param_pass *currParams){ break; //Runs homing mode case homing_mode: -#ifdef simulator - program_state = 12; - //log_file("RT_PROCESS) Homing Mode"); +#ifdef simulator_packet + program_state = 12; + //log_file("RT_PROCESS) Homing Mode"); + //log_msg("Homing"); #endif - log_msg("Homing"); - static int hom = 0; + static int hom = 0; if (hom==0){ log_msg("Entered homing mode"); hom = 1; @@ -248,19 +261,19 @@ int raven_cartesian_space_command(struct device *device0, struct param_pass *cur parport_out(0x01); #endif -#ifdef simulator +#ifdef simulator_packet program_state = 13; #endif //Inverse kinematics r2_inv_kin(device0, currParams->runlevel); -#ifdef simulator +#ifdef simulator_packet program_state = 14; #endif //Inverse Cable Coupling invCableCoupling(device0, currParams->runlevel); -#ifdef simulator +#ifdef simulator_packet program_state = 15; #endif // Set all joints to zero torque diff --git a/src/raven/state_estimate.cpp b/src/raven/state_estimate.cpp old mode 100644 new mode 100755 diff --git a/src/raven/state_machine.cpp b/src/raven/state_machine.cpp old mode 100644 new mode 100755 index 1ecfae18d540974d68bc3016cb8f8d82dbe76a29..fa354e963a188cad9b39a04c20a7e722d04d071d --- a/src/raven/state_machine.cpp +++ b/src/raven/state_machine.cpp @@ -58,12 +58,14 @@ void stateMachine(struct device *device0, struct param_pass *currParams, struct u_08 tmp; rlDesired = 9; // arbitrary large number + // Checks runlevel of all mechanisms. Lowest runlevel is chosen. for (i=0;i<NUM_MECH;i++) { tmp = ( device0->mech[i].inputs & (PIN_PS0 | PIN_PS1)) >> 6; if ( tmp < rlDesired ) { + rlDesired = tmp; } } @@ -83,8 +85,7 @@ void stateMachine(struct device *device0, struct param_pass *currParams, struct *rl = rlDesired; // Update Run Level device0->runlevel = *rl; // Log runlevels in DS0. log_msg("Entered runlevel %d", *rl); - - + if (*rl == RL_E_STOP) { if (soft_estopped) diff --git a/src/raven/t_to_DAC_val.cpp b/src/raven/t_to_DAC_val.cpp old mode 100644 new mode 100755 diff --git a/src/raven/trajectory.cpp b/src/raven/trajectory.cpp old mode 100644 new mode 100755 diff --git a/src/raven/update_atmel_io.cpp b/src/raven/update_atmel_io.cpp old mode 100644 new mode 100755 index 751c71795c4f4913bb73e90c8f3029e2f50db639..c6ff3fa64b3087461873fa561663dadc274c114f --- a/src/raven/update_atmel_io.cpp +++ b/src/raven/update_atmel_io.cpp @@ -57,7 +57,7 @@ void updateAtmelOutputs(struct device *device0, int runlevel) //Update Linux State outputs |= (runlevel & (PIN_LS0 | PIN_LS1)); - + //Update WD Timer - if not software triggered if ( !soft_estopped ) { @@ -70,7 +70,7 @@ void updateAtmelOutputs(struct device *device0, int runlevel) counter = 0; } } - + //Write Changes for (i = 0; i < NUM_MECH; i++) device0->mech[i].outputs = outputs; @@ -93,11 +93,12 @@ void updateAtmelInputs(struct device device0, int runlevel) //Update PLC State PLCState = (device0.mech[0].inputs & (PIN_PS0 | PIN_PS1)) >> 6; - - // printk("Mech0.inputs: %#x\n",device0.mech[0].inputs); - // static int j; - //if (j++ % 1000 == 0) - // printk("PLC State is %d\n",PLCState); - //if (PLCState != runlevel) - // printk("RunLevels on Linux Box and PLC do not match!!!\n"); +#ifdef skip_init_button + //log_msg("Mech0.inputs: %#x\n",device0.mech[0].inputs); + static int j; + if (j++ % 1000 == 0) + log_msg("PLC State is %d\n",PLCState); + if (PLCState != runlevel) + log_msg("RunLevels on Linux Box and PLC do not match!!!\n"); +#endif } diff --git a/src/raven/update_device_state.cpp b/src/raven/update_device_state.cpp old mode 100644 new mode 100755 index dead3d2f697ae3920bb1061ae998af50bbd63860..e89d057c43c46aa0775d8caa884aadbd8d8e78af --- a/src/raven/update_device_state.cpp +++ b/src/raven/update_device_state.cpp @@ -20,8 +20,7 @@ #include "update_device_state.h" #include "log.h" -#define simulator -#ifdef simulator +#ifdef simulator_packet extern int program_state; extern int logging; int curr_pack_no = 0; @@ -53,32 +52,33 @@ int updateDeviceState(struct param_pass *currParams, struct param_pass *rcvdPara ///log_msg("updateDeviceState %d", currParams->runlevel);///Added currParams->last_sequence = rcvdParams->last_sequence; -#ifdef simulator +#ifdef simulator_packet program_state = 5; if ((currParams->last_sequence == 111) && (curr_pack_no == 0)) - { - logging = 0; + { + logging = 0; } else + { + if (currParams->last_sequence != curr_pack_no) { - if (currParams->last_sequence != curr_pack_no) + if (curr_pack_no !=0) + { + log_file("______________________________________________\n"); + } + // Dropped + if (currParams->last_sequence > (curr_pack_no+1)) { - if (curr_pack_no !=0) - { - log_file("______________________________________________\n"); - } - // Dropped - if (currParams->last_sequence > (curr_pack_no+1)) - { - for (int i=curr_pack_no+1;i<currParams->last_sequence;i++) { - log_file("Packet: %d\n", i); - log_file("Error: Packet Dropped.\n"); - log_file("______________________________________________\n"); - } - } - curr_pack_no = currParams->last_sequence; - log_file("Packet: %d\n", curr_pack_no); + for (int i=curr_pack_no+1;i<currParams->last_sequence;i++) + { + log_file("Packet: %d\n", i); + log_file("Error: Packet Dropped.\n"); + log_file ("______________________________________________\n"); + } } + curr_pack_no = currParams->last_sequence; + log_file("Packet: %d\n", curr_pack_no); + } } #endif diff --git a/src/raven/utils.cpp b/src/raven/utils.cpp old mode 100644 new mode 100755 diff --git a/src/raven_2/__init__.py b/src/raven_2/__init__.py old mode 100644 new mode 100755 diff --git a/src/raven_2/cfg/MyStuffConfig.py b/src/raven_2/cfg/MyStuffConfig.py old mode 100644 new mode 100755 index bbc0c7ab3bb16167a317143545a1e17e1f96c48d..843f98641a377b141f3502067c29c8abe102b2c5 --- a/src/raven_2/cfg/MyStuffConfig.py +++ b/src/raven_2/cfg/MyStuffConfig.py @@ -6,6 +6,40 @@ ## ## ********************************************************/ +##********************************************************** +## Software License Agreement (BSD License) +## +## Copyright (c) 2008, Willow Garage, Inc. +## All rights reserved. +## +## Redistribution and use in source and binary forms, with or without +## modification, are permitted provided that the following conditions +## are met: +## +## * Redistributions of source code must retain the above copyright +## notice, this list of conditions and the following disclaimer. +## * Redistributions in binary form must reproduce the above +## copyright notice, this list of conditions and the following +## disclaimer in the documentation and/or other materials provided +## with the distribution. +## * Neither the name of the Willow Garage nor the names of its +## contributors may be used to endorse or promote products derived +## from this software without specific prior written permission. +## +## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +## FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +## COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +## INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +## BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +## ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +## POSSIBILITY OF SUCH DAMAGE. +##**********************************************************/ + from dynamic_reconfigure.encoding import extract_params inf = float('inf') diff --git a/src/raven_2/cfg/__init__.py b/src/raven_2/cfg/__init__.py old mode 100644 new mode 100755 diff --git a/src/raven_2/msg/__init__.py b/src/raven_2/msg/__init__.py old mode 100644 new mode 100755 diff --git a/src/raven_2/msg/_raven_automove.py b/src/raven_2/msg/_raven_automove.py old mode 100644 new mode 100755 diff --git a/src/raven_2/msg/_raven_state.py b/src/raven_2/msg/_raven_state.py old mode 100644 new mode 100755 diff --git a/workspace.workspace b/workspace.workspace old mode 100644 new mode 100755