From 5ee5c36f41fadd4c582c2f9548174ccfba188003 Mon Sep 17 00:00:00 2001 From: m-guberina <gubi.guberina@gmail.com> Date: Wed, 29 Jan 2025 19:28:54 +0100 Subject: [PATCH] client for graziano ready (executes clik it receives via networking). the only other thing that needs to happen is to translate between ros1 messages and my protobuf messages --- .../graz/cartesian_pose_command_server.py | 66 ++ python/examples/graz/clik_client.py | 121 +++ .../examples/graz/point_impedance_server.py | 2 +- python/examples/joint_trajectory.csv | 750 +++++------------- python/examples/path_in_pixels.csv | 609 ++------------ .../__pycache__/managers.cpython-311.pyc | Bin 61103 -> 61250 bytes python/ur_simple_control/managers.py | 2 +- python/ur_simple_control/networking/client.py | 7 +- .../networking/message_specs.proto | 9 +- .../networking/message_specs_pb2.py | 6 +- python/ur_simple_control/networking/util.py | 40 +- 11 files changed, 476 insertions(+), 1136 deletions(-) create mode 100644 python/examples/graz/cartesian_pose_command_server.py create mode 100644 python/examples/graz/clik_client.py diff --git a/python/examples/graz/cartesian_pose_command_server.py b/python/examples/graz/cartesian_pose_command_server.py new file mode 100644 index 0000000..8611aad --- /dev/null +++ b/python/examples/graz/cartesian_pose_command_server.py @@ -0,0 +1,66 @@ +import pinocchio as pin +import numpy as np +from ur_simple_control.managers import ( + ProcessManager, + getMinimalArgParser, +) +from ur_simple_control.networking.server import server +from ur_simple_control.networking.client import client +import time + + +def getArgs(): + parser = getMinimalArgParser() + parser.description = "simple test program. sends commands to go in a circle, receives and prints out wrenches received by the client executing the go-in-circle commands" + parser.add_argument("--host", type=str, help="host ip address", default="127.0.0.1") + parser.add_argument("--port", type=int, help="host's port", default=7777) + + args = parser.parse_args() + return args + + +def sendCircleGoalReceiveWrench(freq, i): + save_past_dict = {} + log_item = {} + breakFlag = False + + # create command to go in a circle + radius = 0.6 + t = (i / freq) / 6 + pose = pin.SE3.Identity() + pose.translation = radius * np.array([np.cos(t), np.sin(t), 0.0]) + + transform = pin.SE3.Identity() + # transform = pin.SE3( + # pin.rpy.rpyToMatrix(0.0, np.pi / 2, 0.0), np.array([0.3, 0.0, 0.3]) + # ) + + pose = pose.act(transform) + if i % freq == 0: + print(pose.translation) + print("translation:", pose.translation) + print("rotation:", pin.Quaternion(pose.rotation)) + + return {"T_goal": pose, "v": np.zeros(6)} + + +if __name__ == "__main__": + args = getArgs() + + # command_sender: 7777 + sender = ProcessManager( + args, server, {"T_goal": pin.SE3.Identity(), "v": np.zeros(6)}, 0 + ) + # wrench_receiver: 6666 + args.port = 6666 + receiver = ProcessManager( + args, client, {"wrench": np.zeros(6)}, 4, init_value={"wrench": np.zeros(6)} + ) + freq = 200 + i = 0 + while True: + i += 1 + sender.sendCommand(sendCircleGoalReceiveWrench(freq, i)) + if i % freq == 0: + print(receiver.getData()) + time.sleep(1 / 200) diff --git a/python/examples/graz/clik_client.py b/python/examples/graz/clik_client.py new file mode 100644 index 0000000..f7f29d0 --- /dev/null +++ b/python/examples/graz/clik_client.py @@ -0,0 +1,121 @@ +import pinocchio as pin +import numpy as np +from functools import partial +from ur_simple_control.networking.client import client +from ur_simple_control.networking.server import server +from ur_simple_control.clik.clik import * +from ur_simple_control.managers import ( + ProcessManager, + getMinimalArgParser, + ControlLoopManager, + RobotManager, +) + + +def get_args(): + parser = getMinimalArgParser() + parser = getClikArgs(parser) + parser.description = "the robot will received joint angles from a socket and go to them in joint space" + # add more arguments here from different Simple Manipulator Control modules + parser.add_argument("--host", type=str, help="host ip address", default="127.0.0.1") + parser.add_argument("--port", type=int, help="host's port", default=7777) + args = parser.parse_args() + return args + + +def controlLoopClikExternalGoal( + robot: RobotManager, + receiver: ProcessManager, + sender: ProcessManager, + clik_controller, + i, + past_data, +): + """ + controlLoop + ----------------------------- + controller description + """ + breakFlag = False + log_item = {} + save_past_dict = {} + + q = robot.getQ() + T_w_e = robot.getT_w_e() + data = receiver.getData() + T_goal = data["T_goal"] + print("translation:", T_goal.translation) + print("rotation:", pin.Quaternion(T_goal.rotation)) + SEerror = T_w_e.actInv(T_goal) + err_vector = pin.log6(SEerror).vector + J = pin.computeFrameJacobian(robot.model, robot.data, q, robot.ee_frame_id) + + qd_cmd = ( + J.T + @ np.linalg.inv(J @ J.T + np.eye(J.shape[0], J.shape[0]) * args.tikhonov_damp) + @ (err_vector + data["v"]) + ) + if qd_cmd is None: + print("the controller you chose didn't work, using dampedPseudoinverse instead") + qd_cmd = dampedPseudoinverse(1e-2, J, err_vector) + + # NOTE: this will also receive a velocity + # i have no idea what to do with that velocity + robot.sendQd(qd_cmd) + # NOTE: this one is in the base frame! (as it should be) + # it is saved in robotmanager (because it's a private variable, + # yes this is evil bla bla) + wrench_in_robot = robot.getWrench() + robot._getWrench() + wrench = robot.getWrench() + robot.wrench = wrench_in_robot + sender.sendCommand({"wrench": wrench}) + + log_item["qs"] = robot.getQ().reshape((robot.model.nq,)) + log_item["dqs"] = robot.getQd().reshape((robot.model.nv,)) + log_item["err_vector"] = err_vector + return breakFlag, save_past_dict, log_item + + +if __name__ == "__main__": + args = get_args() + robot = RobotManager(args) + + # get expected behaviour here (library can't know what the end is - you have to do this here) + if not args.pinocchio_only: + robot.stopRobot() + + # VERY important that the first q we'll pass as desired is the current q, meaning the robot won't move + # this is set with init_value + # command_sender: 7777 + receiver = ProcessManager( + args, + client, + {"T_goal": pin.SE3.Identity(), "v": np.zeros(6)}, + 4, + init_value={"T_goal": robot.getT_w_e(), "v": np.zeros(6)}, + ) + # wrench_sender: 6666 + args.port = 6666 + sender = ProcessManager(args, server, {"wrench": np.zeros(6)}, 0) + log_item = { + "qs": np.zeros((robot.model.nq,)), + "dqs": np.zeros((robot.model.nv,)), + "err_vector": np.zeros((6,)), + } + clik_controller = getClikController(args, robot) + control_loop = partial( + controlLoopClikExternalGoal, robot, receiver, sender, clik_controller + ) + loop_manager = ControlLoopManager(robot, control_loop, args, {}, log_item) + loop_manager.run() + + if args.save_log: + robot.log_manager.plotAllControlLoops() + + if args.visualizer: + robot.killManipulatorVisualizer() + + if args.save_log: + robot.log_manager.saveLog() + # loop_manager.stopHandler(None, None) diff --git a/python/examples/graz/point_impedance_server.py b/python/examples/graz/point_impedance_server.py index f525008..260efaf 100644 --- a/python/examples/graz/point_impedance_server.py +++ b/python/examples/graz/point_impedance_server.py @@ -227,5 +227,5 @@ if __name__ == "__main__": robot.log_manager.saveLog() robot.log_manager.plotAllControlLoops() - if args.visualize_manipulator: + if args.visualizer: robot.killManipulatorVisualizer() diff --git a/python/examples/joint_trajectory.csv b/python/examples/joint_trajectory.csv index f2401c0..179460b 100644 --- a/python/examples/joint_trajectory.csv +++ b/python/examples/joint_trajectory.csv @@ -1,563 +1,187 @@ -0.00000,0.78295,-1.13575,-1.51349,-1.07472,2.27753,-0.40069 -0.02669,0.76500,-1.13780,-1.52114,-1.07109,2.29259,-0.41171 -0.05338,0.74778,-1.14049,-1.52837,-1.06810,2.30696,-0.42320 -0.08007,0.72877,-1.14414,-1.53623,-1.06523,2.32272,-0.43675 -0.10676,0.70673,-1.14912,-1.54515,-1.06239,2.34084,-0.45337 -0.13345,0.68745,-1.15349,-1.55369,-1.05991,2.35656,-0.46860 -0.16014,0.67447,-1.15652,-1.55965,-1.05832,2.36707,-0.47920 -0.18683,0.66159,-1.16003,-1.56506,-1.05703,2.37744,-0.48999 -0.21352,0.63371,-1.17002,-1.57409,-1.05556,2.39965,-0.51430 -0.24021,0.61938,-1.17525,-1.57906,-1.05489,2.41095,-0.52727 -0.26690,0.60982,-1.17873,-1.58257,-1.05443,2.41844,-0.53611 -0.29359,0.59596,-1.18436,-1.58711,-1.05406,2.42923,-0.54921 -0.32028,0.58547,-1.18861,-1.59079,-1.05377,2.43733,-0.55935 -0.34698,0.57711,-1.19215,-1.59364,-1.05362,2.44376,-0.56757 -0.37367,0.56816,-1.19626,-1.59635,-1.05362,2.45060,-0.57651 -0.40036,0.55760,-1.20085,-1.60016,-1.05345,2.45861,-0.58724 -0.42705,0.54930,-1.20415,-1.60381,-1.05313,2.46487,-0.59583 -0.45374,0.54301,-1.20657,-1.60680,-1.05284,2.46959,-0.60242 -0.48043,0.53618,-1.20868,-1.61094,-1.05224,2.47469,-0.60966 -0.50712,0.53193,-1.21007,-1.61345,-1.05190,2.47785,-0.61422 -0.53381,0.52058,-1.21360,-1.62065,-1.05085,2.48623,-0.62655 -0.56050,0.51293,-1.21571,-1.62609,-1.05000,2.49185,-0.63502 -0.58719,0.50599,-1.21755,-1.63123,-1.04919,2.49690,-0.64281 -0.61388,0.50014,-1.21868,-1.63630,-1.04828,2.50115,-0.64946 -0.64057,0.49499,-1.21946,-1.64114,-1.04737,2.50486,-0.65536 -0.66726,0.49030,-1.21981,-1.64614,-1.04636,2.50823,-0.66079 -0.69395,0.48719,-1.22015,-1.64933,-1.04574,2.51046,-0.66442 -0.72064,0.48185,-1.22083,-1.65469,-1.04474,2.51426,-0.67069 -0.74733,0.47440,-1.22189,-1.66215,-1.04338,2.51953,-0.67956 -0.77402,0.46814,-1.22305,-1.66809,-1.04239,2.52395,-0.68712 -0.80071,0.45976,-1.22482,-1.67585,-1.04119,2.52980,-0.69737 -0.82740,0.45644,-1.22539,-1.67916,-1.04066,2.53210,-0.70149 -0.85409,0.45302,-1.22622,-1.68224,-1.04023,2.53447,-0.70575 -0.88078,0.44896,-1.22736,-1.68569,-1.03981,2.53727,-0.71085 -0.90747,0.44531,-1.22835,-1.68887,-1.03941,2.53977,-0.71547 -0.93416,0.44183,-1.22950,-1.69164,-1.03913,2.54215,-0.71990 -0.96085,0.43578,-1.23187,-1.69598,-1.03882,2.54627,-0.72769 -0.98754,0.43073,-1.23404,-1.69941,-1.03866,2.54968,-0.73427 -1.01423,0.42523,-1.23675,-1.70269,-1.03864,2.55338,-0.74150 -1.04093,0.42068,-1.23917,-1.70519,-1.03872,2.55641,-0.74755 -1.06762,0.41667,-1.24130,-1.70745,-1.03879,2.55908,-0.75292 -1.09431,0.41468,-1.24242,-1.70848,-1.03886,2.56039,-0.75560 -1.12100,0.41221,-1.24383,-1.70977,-1.03895,2.56202,-0.75894 -1.14769,0.40972,-1.24526,-1.71107,-1.03905,2.56366,-0.76234 -1.17438,0.40630,-1.24729,-1.71280,-1.03920,2.56590,-0.76702 -1.20107,0.40289,-1.24957,-1.71417,-1.03947,2.56813,-0.77173 -1.22776,0.39899,-1.25211,-1.71589,-1.03974,2.57066,-0.77714 -1.25445,0.38703,-1.25933,-1.72231,-1.04026,2.57834,-0.79401 -1.28114,0.37845,-1.26382,-1.72816,-1.04033,2.58376,-0.80637 -1.30783,0.37052,-1.26770,-1.73413,-1.04029,2.58871,-0.81797 -1.33452,0.36728,-1.26926,-1.73666,-1.04027,2.59072,-0.82277 -1.36121,0.36624,-1.26971,-1.73754,-1.04025,2.59136,-0.82431 -1.38790,0.36467,-1.27029,-1.73902,-1.04017,2.59233,-0.82664 -1.41459,0.36414,-1.27047,-1.73953,-1.04014,2.59265,-0.82744 -1.44128,0.36411,-1.27048,-1.73956,-1.04014,2.59267,-0.82748 -1.46797,0.36409,-1.27050,-1.73956,-1.04015,2.59268,-0.82751 -1.49466,0.36408,-1.27053,-1.73954,-1.04016,2.59269,-0.82753 -1.52135,0.36406,-1.27058,-1.73950,-1.04017,2.59270,-0.82755 -1.54804,0.36393,-1.28387,-1.72040,-1.04623,2.59281,-0.82787 -1.57473,0.36733,-1.30667,-1.68164,-1.05807,2.59076,-0.82302 -1.60142,0.36909,-1.31603,-1.66493,-1.06329,2.58969,-0.82051 -1.62811,0.37203,-1.32690,-1.64397,-1.06980,2.58789,-0.81628 -1.65480,0.37481,-1.33497,-1.62737,-1.07496,2.58618,-0.81231 -1.68149,0.37823,-1.34470,-1.60713,-1.08135,2.58405,-0.80743 -1.70819,0.38129,-1.35462,-1.58707,-1.08786,2.58215,-0.80312 -1.73488,0.38417,-1.36653,-1.56404,-1.09557,2.58035,-0.79910 -1.76157,0.38620,-1.37464,-1.54813,-1.10100,2.57908,-0.79627 -1.78826,0.38819,-1.38330,-1.53134,-1.10682,2.57783,-0.79353 -1.81495,0.39031,-1.39262,-1.51319,-1.11320,2.57650,-0.79062 -1.84164,0.39251,-1.40142,-1.49565,-1.11942,2.57511,-0.78762 -1.86833,0.39397,-1.40759,-1.48341,-1.12382,2.57418,-0.78562 -1.89502,0.39577,-1.41545,-1.46786,-1.12947,2.57304,-0.78319 -1.92171,0.39717,-1.42175,-1.45540,-1.13405,2.57215,-0.78131 -1.94840,0.39902,-1.43087,-1.43759,-1.14066,2.57098,-0.77883 -1.97509,0.40057,-1.43962,-1.42078,-1.14701,2.56999,-0.77678 -2.00178,0.40196,-1.44686,-1.40659,-1.15240,2.56910,-0.77493 -2.02847,0.40335,-1.45461,-1.39154,-1.15817,2.56821,-0.77310 -2.05516,0.40463,-1.46080,-1.37919,-1.16293,2.56740,-0.77142 -2.08185,0.40512,-1.46306,-1.37463,-1.16469,2.56708,-0.77078 -2.10854,0.40546,-1.46470,-1.37133,-1.16597,2.56686,-0.77032 -2.13523,0.40554,-1.46511,-1.37053,-1.16629,2.56681,-0.77022 -2.16192,0.40566,-1.46573,-1.36928,-1.16677,2.56673,-0.77006 -2.18861,0.40700,-1.47190,-1.35679,-1.17162,2.56587,-0.76830 -2.21530,0.40914,-1.48134,-1.33747,-1.17917,2.56449,-0.76549 -2.24199,0.41085,-1.48754,-1.32421,-1.18435,2.56338,-0.76325 -2.26868,0.41248,-1.49351,-1.31145,-1.18937,2.56233,-0.76112 -2.29537,0.41410,-1.49952,-1.29858,-1.19447,2.56127,-0.75900 -2.32206,0.41705,-1.50945,-1.27681,-1.20311,2.55934,-0.75516 -2.34875,0.41874,-1.51548,-1.26370,-1.20837,2.55823,-0.75297 -2.37544,0.42040,-1.52161,-1.25045,-1.21372,2.55714,-0.75083 -2.40214,0.42143,-1.52555,-1.24198,-1.21716,2.55647,-0.74952 -2.42883,0.42265,-1.52970,-1.23279,-1.22089,2.55566,-0.74795 -2.45552,0.42310,-1.53132,-1.22925,-1.22234,2.55536,-0.74737 -2.48221,0.42455,-1.53695,-1.21711,-1.22731,2.55441,-0.74553 -2.50890,0.42535,-1.54034,-1.20991,-1.23028,2.55388,-0.74451 -2.53559,0.42593,-1.54274,-1.20479,-1.23240,2.55350,-0.74379 -2.56228,0.42632,-1.54446,-1.20114,-1.23392,2.55324,-0.74329 -2.58897,0.42670,-1.54621,-1.19747,-1.23544,2.55298,-0.74281 -2.61566,0.42704,-1.54759,-1.19450,-1.23668,2.55276,-0.74238 -2.64235,0.42783,-1.55104,-1.18718,-1.23973,2.55224,-0.74139 -2.66904,0.42858,-1.55461,-1.17970,-1.24286,2.55174,-0.74045 -2.69573,0.42967,-1.55957,-1.16923,-1.24724,2.55101,-0.73909 -2.72242,0.43042,-1.56319,-1.16165,-1.25044,2.55052,-0.73817 -2.74911,0.43062,-1.56431,-1.15935,-1.25141,2.55039,-0.73791 -2.77580,0.43092,-1.56573,-1.15637,-1.25267,2.55019,-0.73754 -2.80249,0.43107,-1.56644,-1.15486,-1.25331,2.55009,-0.73735 -2.82918,0.43146,-1.56824,-1.15106,-1.25492,2.54983,-0.73688 -2.85587,0.43162,-1.56898,-1.14946,-1.25559,2.54972,-0.73667 -2.88256,0.43179,-1.56969,-1.14796,-1.25623,2.54961,-0.73646 -2.90925,0.43180,-1.56970,-1.14790,-1.25625,2.54960,-0.73645 -2.93594,0.43182,-1.56969,-1.14790,-1.25625,2.54959,-0.73642 -2.96263,0.43184,-1.56965,-1.14793,-1.25624,2.54957,-0.73639 -2.98932,0.43548,-1.56182,-1.15545,-1.25263,2.54711,-0.73163 -3.01601,0.43881,-1.55364,-1.16424,-1.24846,2.54484,-0.72728 -3.04270,0.44158,-1.54573,-1.17353,-1.24412,2.54294,-0.72367 -3.06940,0.44384,-1.53841,-1.18267,-1.23988,2.54139,-0.72073 -3.09609,0.44631,-1.53007,-1.19327,-1.23498,2.53969,-0.71751 -3.12278,0.44898,-1.51954,-1.20741,-1.22853,2.53784,-0.71403 -3.14947,0.45358,-1.49851,-1.23678,-1.21530,2.53464,-0.70804 -3.17616,0.45586,-1.48870,-1.25030,-1.20918,2.53304,-0.70509 -3.20285,0.45733,-1.48189,-1.25985,-1.20489,2.53201,-0.70318 -3.22954,0.45897,-1.47365,-1.27160,-1.19964,2.53086,-0.70106 -3.25623,0.46108,-1.46396,-1.28512,-1.19360,2.52937,-0.69835 -3.28292,0.46419,-1.45049,-1.30361,-1.18535,2.52718,-0.69439 -3.30961,0.47077,-1.42542,-1.33678,-1.17056,2.52253,-0.68613 -3.33630,0.47307,-1.41640,-1.34884,-1.16520,2.52089,-0.68325 -3.36299,0.47638,-1.40176,-1.36892,-1.15642,2.51853,-0.67913 -3.38968,0.47989,-1.38671,-1.38936,-1.14752,2.51601,-0.67479 -3.41637,0.48396,-1.37118,-1.40977,-1.13863,2.51309,-0.66981 -3.44306,0.48629,-1.36272,-1.42075,-1.13385,2.51141,-0.66699 -3.46975,0.48903,-1.35289,-1.43344,-1.12834,2.50944,-0.66370 -3.49644,0.49184,-1.34346,-1.44535,-1.12316,2.50741,-0.66034 -3.52313,0.49660,-1.32755,-1.46537,-1.11453,2.50396,-0.65468 -3.54982,0.49959,-1.31776,-1.47762,-1.10926,2.50178,-0.65116 -3.57651,0.50255,-1.30709,-1.49133,-1.10346,2.49962,-0.64769 -3.60320,0.50532,-1.29642,-1.50524,-1.09763,2.49759,-0.64445 -3.62989,0.50762,-1.28672,-1.51815,-1.09229,2.49591,-0.64177 -3.65658,0.51143,-1.27160,-1.53789,-1.08418,2.49310,-0.63736 -3.68327,0.51488,-1.25967,-1.55288,-1.07799,2.49056,-0.63341 -3.70996,0.51788,-1.24949,-1.56561,-1.07275,2.48834,-0.63001 -3.73665,0.52013,-1.24215,-1.57465,-1.06904,2.48668,-0.62746 -3.76335,0.52249,-1.23429,-1.58441,-1.06506,2.48493,-0.62481 -3.79004,0.52554,-1.22367,-1.59768,-1.05971,2.48266,-0.62139 -3.81673,0.52859,-1.21352,-1.61022,-1.05467,2.48039,-0.61801 -3.84342,0.53220,-1.20293,-1.62277,-1.04959,2.47769,-0.61403 -3.87011,0.53570,-1.19322,-1.63406,-1.04502,2.47507,-0.61020 -3.89680,0.54038,-1.18105,-1.64787,-1.03943,2.47157,-0.60514 -3.92349,0.54282,-1.17495,-1.65470,-1.03666,2.46973,-0.60252 -3.95018,0.54632,-1.16694,-1.66335,-1.03312,2.46710,-0.59879 -3.97687,0.55011,-1.15883,-1.67184,-1.02963,2.46424,-0.59477 -4.00356,0.55477,-1.14925,-1.68170,-1.02557,2.46072,-0.58989 -4.03025,0.55959,-1.13927,-1.69204,-1.02135,2.45706,-0.58487 -4.05694,0.56386,-1.12941,-1.70276,-1.01709,2.45381,-0.58046 -4.08363,0.56832,-1.11807,-1.71555,-1.01214,2.45040,-0.57588 -4.11032,0.57235,-1.10522,-1.73102,-1.00637,2.44730,-0.57176 -4.13701,0.57375,-1.10047,-1.73682,-1.00422,2.44622,-0.57032 -4.16370,0.57505,-1.09576,-1.74266,-1.00208,2.44522,-0.56899 -4.19039,0.57615,-1.09218,-1.74697,-1.00050,2.44437,-0.56788 -4.21708,0.57736,-1.08857,-1.75122,-0.99893,2.44344,-0.56666 -4.24377,0.57815,-1.08635,-1.75378,-0.99798,2.44283,-0.56586 -4.27046,0.57916,-1.08351,-1.75706,-0.99677,2.44205,-0.56484 -4.29715,0.57966,-1.08211,-1.75868,-0.99617,2.44166,-0.56434 -4.32384,0.58016,-1.08070,-1.76031,-0.99558,2.44128,-0.56384 -4.35053,0.58068,-1.07925,-1.76198,-0.99496,2.44088,-0.56332 -4.37722,0.58152,-1.07701,-1.76451,-0.99402,2.44023,-0.56248 -4.40391,0.58205,-1.07560,-1.76612,-0.99343,2.43982,-0.56195 -4.43060,0.58200,-1.07563,-1.76612,-0.99344,2.43986,-0.56200 -4.45730,0.57606,-1.08020,-1.76525,-0.99417,2.44440,-0.56785 -4.48399,0.56139,-1.09411,-1.75930,-0.99748,2.45558,-0.58260 -4.51068,0.54657,-1.11041,-1.75016,-1.00216,2.46676,-0.59794 -4.53737,0.53585,-1.12284,-1.74277,-1.00597,2.47478,-0.60932 -4.56406,0.52728,-1.13317,-1.73639,-1.00927,2.48116,-0.61860 -4.59075,0.51815,-1.14458,-1.72913,-1.01301,2.48789,-0.62864 -4.61744,0.50664,-1.16041,-1.71809,-1.01845,2.49633,-0.64157 -4.64413,0.48370,-1.19521,-1.69217,-1.03086,2.51289,-0.66823 -4.67082,0.46985,-1.21855,-1.67349,-1.03968,2.52273,-0.68492 -4.69751,0.46333,-1.23032,-1.66361,-1.04430,2.52731,-0.69295 -4.72420,0.45703,-1.24191,-1.65387,-1.04885,2.53172,-0.70082 -4.75089,0.45257,-1.25032,-1.64670,-1.05220,2.53482,-0.70643 -4.77758,0.44546,-1.26394,-1.63511,-1.05759,2.53973,-0.71550 -4.80427,0.43880,-1.27786,-1.62258,-1.06328,2.54430,-0.72413 -4.83096,0.43229,-1.29148,-1.61041,-1.06886,2.54873,-0.73265 -4.85765,0.42837,-1.29990,-1.60277,-1.07236,2.55138,-0.73785 -4.88434,0.42163,-1.31448,-1.58963,-1.07839,2.55591,-0.74688 -4.91103,0.41552,-1.32800,-1.57736,-1.08403,2.55999,-0.75517 -4.93772,0.41048,-1.33945,-1.56682,-1.08887,2.56333,-0.76209 -4.96441,0.40694,-1.34778,-1.55901,-1.09245,2.56566,-0.76700 -4.99110,0.39983,-1.36573,-1.54154,-1.10029,2.57031,-0.77695 -5.01779,0.39584,-1.37639,-1.53084,-1.10508,2.57291,-0.78262 -5.04448,0.39312,-1.38377,-1.52337,-1.10843,2.57467,-0.78651 -5.07117,0.39006,-1.39214,-1.51487,-1.11225,2.57664,-0.79090 -5.09786,0.38854,-1.39646,-1.51041,-1.11424,2.57761,-0.79310 -5.12456,0.38667,-1.40160,-1.50519,-1.11660,2.57881,-0.79581 -5.15125,0.38516,-1.40591,-1.50073,-1.11859,2.57977,-0.79800 -5.17794,0.38178,-1.41519,-1.49138,-1.12282,2.58192,-0.80294 -5.20463,0.37912,-1.42239,-1.48420,-1.12610,2.58361,-0.80685 -5.23132,0.37575,-1.43180,-1.47469,-1.13042,2.58574,-0.81183 -5.25801,0.37248,-1.44121,-1.46503,-1.13479,2.58779,-0.81671 -5.28470,0.37103,-1.44533,-1.46082,-1.13671,2.58870,-0.81887 -5.31139,0.36883,-1.45157,-1.45449,-1.13961,2.59007,-0.82218 -5.33808,0.36738,-1.45566,-1.45035,-1.14151,2.59097,-0.82437 -5.36477,0.36595,-1.45989,-1.44595,-1.14352,2.59186,-0.82653 -5.39146,0.36453,-1.46406,-1.44165,-1.14548,2.59274,-0.82868 -5.41815,0.36313,-1.46816,-1.43742,-1.14742,2.59361,-0.83082 -5.44484,0.36099,-1.47439,-1.43104,-1.15034,2.59492,-0.83408 -5.47153,0.35958,-1.47849,-1.42684,-1.15227,2.59579,-0.83624 -5.49822,0.35745,-1.48471,-1.42049,-1.15520,2.59709,-0.83951 -5.52491,0.35640,-1.48779,-1.41733,-1.15666,2.59773,-0.84113 -5.55160,0.35495,-1.49184,-1.41330,-1.15854,2.59861,-0.84337 -5.57829,0.35345,-1.49591,-1.40935,-1.16041,2.59953,-0.84570 -5.60498,0.35271,-1.49794,-1.40737,-1.16134,2.59998,-0.84685 -5.63167,0.35197,-1.49997,-1.40537,-1.16228,2.60042,-0.84799 -5.65836,0.35160,-1.50099,-1.40437,-1.16276,2.60064,-0.84856 -5.68505,0.35124,-1.50201,-1.40336,-1.16323,2.60087,-0.84913 -5.71174,0.35122,-1.50205,-1.40332,-1.16325,2.60087,-0.84916 -5.73843,0.35121,-1.50209,-1.40328,-1.16327,2.60088,-0.84918 -5.76512,0.35119,-1.50213,-1.40324,-1.16329,2.60089,-0.84920 -5.79181,0.35118,-1.50217,-1.40320,-1.16331,2.60090,-0.84923 -5.81851,0.35116,-1.50221,-1.40316,-1.16333,2.60091,-0.84925 -5.84520,0.35115,-1.50224,-1.40313,-1.16334,2.60092,-0.84927 -5.87189,0.35114,-1.50228,-1.40309,-1.16336,2.60093,-0.84929 -5.89858,0.35113,-1.50231,-1.40306,-1.16337,2.60093,-0.84930 -5.92527,0.35112,-1.50234,-1.40303,-1.16339,2.60094,-0.84931 -5.95196,0.35112,-1.50236,-1.40300,-1.16340,2.60094,-0.84932 -5.97865,0.35112,-1.50236,-1.40298,-1.16341,2.60093,-0.84931 -6.00534,0.35113,-1.50235,-1.40297,-1.16341,2.60093,-0.84930 -6.03203,0.35129,-1.50216,-1.40298,-1.16339,2.60083,-0.84905 -6.05872,0.36641,-1.47926,-1.41253,-1.15734,2.59164,-0.82624 -6.08541,0.37094,-1.47256,-1.41546,-1.15541,2.58883,-0.81951 -6.11210,0.37875,-1.46070,-1.42130,-1.15173,2.58395,-0.80804 -6.13879,0.38821,-1.44682,-1.42802,-1.14737,2.57795,-0.79436 -6.16548,0.39402,-1.43829,-1.43237,-1.14458,2.57422,-0.78607 -6.19217,0.40248,-1.42687,-1.43734,-1.14107,2.56875,-0.77418 -6.21886,0.42735,-1.39363,-1.45298,-1.13057,2.55229,-0.74039 -6.24555,0.46348,-1.34433,-1.48139,-1.11350,2.52749,-0.69412 -6.27224,0.47184,-1.33369,-1.48749,-1.10972,2.52161,-0.68386 -6.29893,0.48703,-1.31600,-1.49631,-1.10391,2.51081,-0.66566 -6.32562,0.50730,-1.29446,-1.50577,-1.09728,2.49618,-0.64222 -6.35231,0.51761,-1.28425,-1.50987,-1.09422,2.48863,-0.63064 -6.37900,0.53545,-1.26743,-1.51615,-1.08943,2.47543,-0.61114 -6.40569,0.54867,-1.25577,-1.52008,-1.08624,2.46553,-0.59710 -6.43238,0.56028,-1.24665,-1.52208,-1.08407,2.45676,-0.58507 -6.45907,0.56520,-1.24318,-1.52240,-1.08336,2.45303,-0.58005 -6.48577,0.56771,-1.24150,-1.52245,-1.08304,2.45112,-0.57751 -6.51246,0.56896,-1.24068,-1.52244,-1.08290,2.45017,-0.57624 -6.53915,0.58370,-1.22968,-1.52473,-1.08043,2.43887,-0.56156 -6.56584,0.59087,-1.22428,-1.52612,-1.07915,2.43334,-0.55456 -6.59253,0.60266,-1.21546,-1.52853,-1.07706,2.42420,-0.54324 -6.61922,0.61018,-1.20984,-1.53021,-1.07569,2.41833,-0.53614 -6.64591,0.61478,-1.20653,-1.53110,-1.07492,2.41473,-0.53184 -6.67260,0.62020,-1.20254,-1.53233,-1.07396,2.41047,-0.52682 -6.69929,0.62257,-1.20084,-1.53283,-1.07356,2.40861,-0.52464 -6.72598,0.62598,-1.19840,-1.53354,-1.07299,2.40592,-0.52152 -6.75267,0.62973,-1.19584,-1.53415,-1.07243,2.40297,-0.51811 -6.77936,0.63463,-1.19257,-1.53484,-1.07176,2.39909,-0.51368 -6.80605,0.63960,-1.18935,-1.53545,-1.07112,2.39515,-0.50923 -6.83274,0.64464,-1.18617,-1.53598,-1.07053,2.39114,-0.50476 -6.85943,0.64980,-1.18298,-1.53645,-1.06996,2.38703,-0.50023 -6.88612,0.65496,-1.17986,-1.53686,-1.06942,2.38291,-0.49572 -6.91281,0.65869,-1.17760,-1.53719,-1.06903,2.37992,-0.49249 -6.93950,0.66174,-1.17586,-1.53732,-1.06876,2.37748,-0.48987 -6.96619,0.66554,-1.17366,-1.53753,-1.06842,2.37443,-0.48662 -6.99288,0.66936,-1.17143,-1.53780,-1.06807,2.37135,-0.48337 -7.01957,0.67206,-1.16988,-1.53797,-1.06782,2.36918,-0.48109 -7.04626,0.67364,-1.16899,-1.53803,-1.06770,2.36790,-0.47975 -7.07295,0.67637,-1.16748,-1.53813,-1.06749,2.36571,-0.47746 -7.09964,0.67911,-1.16598,-1.53822,-1.06728,2.36349,-0.47517 -7.12633,0.68188,-1.16447,-1.53830,-1.06709,2.36126,-0.47287 -7.15302,0.68516,-1.16278,-1.53826,-1.06691,2.35860,-0.47015 -7.17972,0.68904,-1.16096,-1.53794,-1.06681,2.35545,-0.46695 -7.20641,0.69697,-1.15743,-1.53702,-1.06673,2.34900,-0.46049 -7.23310,0.70042,-1.15598,-1.53654,-1.06674,2.34620,-0.45771 -7.25979,0.70278,-1.15506,-1.53609,-1.06679,2.34427,-0.45581 -7.28648,0.70453,-1.15439,-1.53575,-1.06683,2.34284,-0.45441 -7.31317,0.70696,-1.15353,-1.53516,-1.06694,2.34086,-0.45247 -7.33986,0.70877,-1.15289,-1.53472,-1.06702,2.33938,-0.45103 -7.36655,0.71052,-1.15229,-1.53428,-1.06711,2.33795,-0.44964 -7.39324,0.71227,-1.15170,-1.53383,-1.06720,2.33651,-0.44825 -7.41993,0.71409,-1.15109,-1.53335,-1.06730,2.33502,-0.44682 -7.44662,0.71586,-1.15051,-1.53288,-1.06740,2.33358,-0.44543 -7.47331,0.71694,-1.15013,-1.53262,-1.06745,2.33268,-0.44457 -7.50000,0.71804,-1.14973,-1.53239,-1.06749,2.33178,-0.44371 -7.52669,0.71914,-1.14932,-1.53218,-1.06752,2.33088,-0.44285 -7.55338,0.71920,-1.14929,-1.53217,-1.06752,2.33083,-0.44280 -7.58007,0.72031,-1.14886,-1.53200,-1.06754,2.32992,-0.44194 -7.60676,0.72149,-1.14838,-1.53184,-1.06756,2.32895,-0.44102 -7.63345,0.72210,-1.14811,-1.53180,-1.06755,2.32845,-0.44054 -7.66014,0.72216,-1.14808,-1.53180,-1.06755,2.32840,-0.44050 -7.68683,0.72222,-1.14804,-1.53181,-1.06754,2.32835,-0.44045 -7.71352,0.72226,-1.14800,-1.53184,-1.06752,2.32832,-0.44042 -7.74021,0.72309,-1.14674,-1.53325,-1.06694,2.32764,-0.43977 -7.76690,0.72496,-1.14259,-1.53856,-1.06477,2.32608,-0.43829 -7.79359,0.72599,-1.13639,-1.54791,-1.06105,2.32521,-0.43744 -7.82028,0.72344,-1.12666,-1.56588,-1.05410,2.32727,-0.43933 -7.84698,0.71996,-1.12024,-1.57913,-1.04908,2.33010,-0.44198 -7.87367,0.71619,-1.11543,-1.58995,-1.04506,2.33318,-0.44488 -7.90036,0.71429,-1.11349,-1.59461,-1.04334,2.33473,-0.44635 -7.92705,0.71279,-1.11200,-1.59822,-1.04202,2.33595,-0.44752 -7.95374,0.71126,-1.11052,-1.60182,-1.04071,2.33720,-0.44870 -7.98043,0.70870,-1.10812,-1.60773,-1.03858,2.33928,-0.45070 -8.00712,0.70558,-1.10530,-1.61476,-1.03606,2.34182,-0.45316 -8.03381,0.70293,-1.10298,-1.62060,-1.03399,2.34397,-0.45525 -8.06050,0.70025,-1.10068,-1.62642,-1.03194,2.34615,-0.45737 -8.08719,0.69755,-1.09841,-1.63220,-1.02992,2.34834,-0.45953 -8.11388,0.69482,-1.09617,-1.63796,-1.02793,2.35056,-0.46171 -8.14057,0.69150,-1.09349,-1.64487,-1.02556,2.35325,-0.46439 -8.16726,0.68442,-1.08860,-1.65833,-1.02102,2.35897,-0.47014 -8.19395,0.67818,-1.08481,-1.66937,-1.01739,2.36400,-0.47526 -8.22064,0.67268,-1.08136,-1.67926,-1.01418,2.36843,-0.47983 -8.24733,0.66666,-1.07750,-1.69020,-1.01068,2.37326,-0.48487 -8.27402,0.66247,-1.07481,-1.69782,-1.00828,2.37661,-0.48841 -8.30071,0.65948,-1.07289,-1.70326,-1.00658,2.37901,-0.49095 -8.32740,0.65668,-1.07080,-1.70878,-1.00486,2.38124,-0.49334 -8.35409,0.65498,-1.06955,-1.71211,-1.00383,2.38260,-0.49480 -8.38078,0.65386,-1.06874,-1.71428,-1.00316,2.38349,-0.49576 -8.40747,0.65271,-1.06791,-1.71651,-1.00248,2.38441,-0.49675 -8.43416,0.65216,-1.06751,-1.71757,-1.00215,2.38485,-0.49722 -8.46085,0.65043,-1.06629,-1.72087,-1.00115,2.38622,-0.49871 -8.48754,0.64582,-1.06311,-1.72957,-0.99852,2.38988,-0.50272 -8.51423,0.64236,-1.06078,-1.73603,-0.99660,2.39263,-0.50575 -8.54093,0.63678,-1.05759,-1.74556,-0.99384,2.39704,-0.51066 -8.56762,0.63349,-1.05598,-1.75078,-0.99236,2.39965,-0.51359 -8.59431,0.63072,-1.05482,-1.75488,-0.99123,2.40183,-0.51606 -8.62100,0.62868,-1.05394,-1.75794,-0.99039,2.40344,-0.51789 -8.64769,0.62651,-1.05314,-1.76100,-0.98956,2.40514,-0.51985 -8.67438,0.62513,-1.05261,-1.76297,-0.98903,2.40623,-0.52110 -8.70107,0.62376,-1.05208,-1.76495,-0.98851,2.40730,-0.52233 -8.72776,0.62056,-1.05118,-1.76905,-0.98745,2.40982,-0.52525 -8.75445,0.61483,-1.05053,-1.77503,-0.98602,2.41431,-0.53051 -8.78114,0.60736,-1.05005,-1.78231,-0.98437,2.42014,-0.53745 -8.80783,0.60004,-1.05019,-1.78860,-0.98308,2.42583,-0.54435 -8.83452,0.59449,-1.05060,-1.79297,-0.98227,2.43013,-0.54963 -8.86121,0.59073,-1.05081,-1.79603,-0.98171,2.43304,-0.55325 -8.88790,0.58650,-1.05115,-1.79935,-0.98114,2.43630,-0.55734 -8.91459,0.58225,-1.05158,-1.80259,-0.98061,2.43957,-0.56149 -8.94128,0.57739,-1.05232,-1.80597,-0.98012,2.44330,-0.56627 -8.96797,0.57099,-1.05365,-1.80995,-0.97966,2.44819,-0.57263 -8.99466,0.56228,-1.05617,-1.81445,-0.97936,2.45481,-0.58141 -9.02135,0.55039,-1.06011,-1.82007,-0.97920,2.46379,-0.59362 -9.04804,0.54302,-1.06292,-1.82314,-0.97930,2.46932,-0.60134 -9.07473,0.53565,-1.06574,-1.82630,-0.97943,2.47483,-0.60917 -9.10142,0.53130,-1.06752,-1.82802,-0.97957,2.47807,-0.61383 -9.12811,0.52475,-1.07029,-1.83057,-0.97982,2.48291,-0.62093 -9.15480,0.51518,-1.07527,-1.83313,-0.98056,2.48995,-0.63146 -9.18149,0.48518,-1.09614,-1.83520,-0.98497,2.51166,-0.66578 -9.20819,0.47606,-1.10304,-1.83533,-0.98665,2.51815,-0.67663 -9.23488,0.46768,-1.10992,-1.83491,-0.98840,2.52407,-0.68677 -9.26157,0.46230,-1.11447,-1.83453,-0.98959,2.52784,-0.69337 -9.28826,0.46024,-1.11624,-1.83435,-0.99006,2.52928,-0.69591 -9.31495,0.45904,-1.11727,-1.83426,-0.99034,2.53011,-0.69740 -9.34164,0.45780,-1.11832,-1.83418,-0.99062,2.53098,-0.69894 -9.36833,0.45738,-1.11866,-1.83418,-0.99071,2.53127,-0.69947 -9.39502,0.44712,-1.12815,-1.83273,-0.99321,2.53837,-0.71237 -9.42171,0.44022,-1.13472,-1.83162,-0.99498,2.54309,-0.72119 -9.44840,0.43198,-1.14308,-1.82979,-0.99727,2.54870,-0.73190 -9.47509,0.42903,-1.14607,-1.82915,-0.99810,2.55068,-0.73576 -9.50178,0.42577,-1.14957,-1.82823,-0.99909,2.55288,-0.74008 -9.52847,0.42219,-1.15345,-1.82719,-1.00019,2.55527,-0.74484 -9.55516,0.41867,-1.15733,-1.82613,-1.00128,2.55763,-0.74957 -9.58185,0.41408,-1.16278,-1.82425,-1.00286,2.56067,-0.75576 -9.60854,0.40868,-1.16953,-1.82168,-1.00482,2.56423,-0.76313 -9.63523,0.40501,-1.17434,-1.81966,-1.00625,2.56664,-0.76820 -9.66192,0.40076,-1.18021,-1.81697,-1.00800,2.56941,-0.77410 -9.68861,0.39878,-1.18306,-1.81556,-1.00888,2.57070,-0.77687 -9.71530,0.39618,-1.18699,-1.81347,-1.01009,2.57238,-0.78052 -9.74199,0.39367,-1.19098,-1.81122,-1.01134,2.57400,-0.78408 -9.76868,0.39240,-1.19302,-1.81004,-1.01198,2.57481,-0.78587 -9.79537,0.39059,-1.19604,-1.80823,-1.01294,2.57598,-0.78846 -9.82206,0.38647,-1.20328,-1.80366,-1.01524,2.57862,-0.79435 -9.84875,0.38361,-1.20848,-1.80025,-1.01692,2.58044,-0.79848 -9.87544,0.38136,-1.21269,-1.79742,-1.01829,2.58186,-0.80175 -9.90214,0.37852,-1.21794,-1.79396,-1.01998,2.58365,-0.80587 -9.92883,0.37632,-1.22213,-1.79112,-1.02135,2.58504,-0.80910 -9.95552,0.37471,-1.22526,-1.78897,-1.02237,2.58605,-0.81147 -9.98221,0.37209,-1.23049,-1.78530,-1.02409,2.58769,-0.81534 -10.00890,0.37054,-1.23363,-1.78306,-1.02513,2.58866,-0.81764 -10.03559,0.36850,-1.23786,-1.78001,-1.02653,2.58993,-0.82069 -10.06228,0.36651,-1.24204,-1.77696,-1.02793,2.59116,-0.82366 -10.08897,0.36509,-1.24521,-1.77453,-1.02900,2.59204,-0.82579 -10.11566,0.36326,-1.24949,-1.77111,-1.03047,2.59316,-0.82855 -10.14235,0.36112,-1.25500,-1.76643,-1.03240,2.59448,-0.83179 -10.16904,0.35954,-1.25965,-1.76213,-1.03409,2.59545,-0.83420 -10.19573,0.35711,-1.26754,-1.75451,-1.03701,2.59694,-0.83793 -10.22242,0.35489,-1.27574,-1.74609,-1.04013,2.59830,-0.84135 -10.24911,0.35294,-1.28388,-1.73734,-1.04332,2.59949,-0.84438 -10.27580,0.35138,-1.29076,-1.72980,-1.04606,2.60043,-0.84681 -10.30249,0.35011,-1.29606,-1.72409,-1.04817,2.60121,-0.84881 -10.32918,0.34879,-1.30165,-1.71803,-1.05040,2.60200,-0.85087 -10.35587,0.34728,-1.30851,-1.71043,-1.05319,2.60292,-0.85326 -10.38256,0.34585,-1.31534,-1.70271,-1.05600,2.60378,-0.85552 -10.40925,0.34430,-1.32346,-1.69329,-1.05942,2.60471,-0.85799 -10.43594,0.34281,-1.33122,-1.68426,-1.06270,2.60560,-0.86036 -10.46263,0.34116,-1.34027,-1.67359,-1.06660,2.60659,-0.86301 -10.48932,0.33996,-1.34708,-1.66547,-1.06957,2.60731,-0.86494 -10.51601,0.33900,-1.35286,-1.65843,-1.07215,2.60788,-0.86649 -10.54270,0.33845,-1.35677,-1.65349,-1.07394,2.60820,-0.86738 -10.56940,0.33768,-1.36249,-1.64623,-1.07657,2.60866,-0.86864 -10.59609,0.33709,-1.36732,-1.63996,-1.07884,2.60902,-0.86962 -10.62278,0.33619,-1.37558,-1.62906,-1.08276,2.60956,-0.87111 -10.64947,0.33571,-1.38036,-1.62265,-1.08508,2.60985,-0.87191 -10.67616,0.33523,-1.38474,-1.61682,-1.08721,2.61013,-0.87271 -10.70285,0.33487,-1.38819,-1.61222,-1.08889,2.61035,-0.87332 -10.72954,0.33440,-1.39298,-1.60574,-1.09126,2.61063,-0.87410 -10.75623,0.33418,-1.39516,-1.60279,-1.09234,2.61076,-0.87447 -10.78292,0.33408,-1.39603,-1.60163,-1.09277,2.61082,-0.87464 -10.80961,0.33397,-1.39695,-1.60043,-1.09322,2.61089,-0.87482 -10.83630,0.33454,-1.41807,-1.56700,-1.10492,2.61059,-0.87413 -10.86299,0.33460,-1.41915,-1.56521,-1.10556,2.61056,-0.87404 -10.88968,0.33558,-1.43117,-1.54477,-1.11276,2.61001,-0.87263 -10.91637,0.33635,-1.43844,-1.53200,-1.11729,2.60957,-0.87150 -10.94306,0.33696,-1.44471,-1.52105,-1.12121,2.60923,-0.87061 -10.96975,0.33767,-1.45146,-1.50912,-1.12551,2.60883,-0.86958 -10.99644,0.33883,-1.46413,-1.48693,-1.13358,2.60817,-0.86789 -11.02313,0.33929,-1.46932,-1.47781,-1.13695,2.60791,-0.86724 -11.04982,0.33995,-1.47625,-1.46550,-1.14150,2.60753,-0.86628 -11.07651,0.34032,-1.48097,-1.45723,-1.14460,2.60732,-0.86575 -11.10320,0.34078,-1.48493,-1.45000,-1.14730,2.60706,-0.86509 -11.12989,0.34123,-1.48896,-1.44268,-1.15004,2.60680,-0.86444 -11.15658,0.34167,-1.49296,-1.43540,-1.15278,2.60655,-0.86380 -11.18327,0.34243,-1.49985,-1.42279,-1.15754,2.60611,-0.86269 -11.20996,0.34243,-1.49989,-1.42272,-1.15757,2.60611,-0.86269 -11.23665,0.34255,-1.50101,-1.42069,-1.15834,2.60604,-0.86252 -11.26335,0.34266,-1.50217,-1.41858,-1.15915,2.60598,-0.86236 -11.29004,0.34273,-1.50276,-1.41751,-1.15956,2.60594,-0.86227 -11.31673,0.34281,-1.50337,-1.41636,-1.15999,2.60590,-0.86215 -11.34342,0.34317,-1.50620,-1.41106,-1.16201,2.60568,-0.86162 -11.37011,0.34380,-1.51071,-1.40252,-1.16525,2.60532,-0.86071 -11.39680,0.34407,-1.51297,-1.39830,-1.16687,2.60517,-0.86031 -11.42349,0.34453,-1.51586,-1.39271,-1.16900,2.60490,-0.85964 -11.45018,0.34509,-1.51918,-1.38620,-1.17148,2.60457,-0.85881 -11.47687,0.34651,-1.52569,-1.37281,-1.17656,2.60374,-0.85671 -11.50356,0.34717,-1.52841,-1.36706,-1.17874,2.60335,-0.85572 -11.53025,0.34849,-1.53222,-1.35827,-1.18204,2.60258,-0.85375 -11.55694,0.34982,-1.53532,-1.35060,-1.18490,2.60179,-0.85175 -11.58363,0.35245,-1.53961,-1.33852,-1.18934,2.60022,-0.84781 -11.61032,0.35553,-1.54310,-1.32688,-1.19354,2.59837,-0.84318 -11.63701,0.36000,-1.54691,-1.31214,-1.19879,2.59567,-0.83651 -11.66370,0.36426,-1.55028,-1.29856,-1.20363,2.59308,-0.83020 -11.69039,0.36717,-1.55242,-1.28959,-1.20684,2.59130,-0.82593 -11.71708,0.36940,-1.55393,-1.28293,-1.20922,2.58992,-0.82266 -11.74377,0.37093,-1.55486,-1.27854,-1.21078,2.58898,-0.82043 -11.77046,0.37131,-1.55510,-1.27743,-1.21117,2.58874,-0.81987 -11.79715,0.37205,-1.55559,-1.27526,-1.21195,2.58829,-0.81879 -11.82384,0.37207,-1.55560,-1.27520,-1.21197,2.58827,-0.81877 -11.85053,0.37241,-1.55583,-1.27419,-1.21234,2.58806,-0.81827 -11.87722,0.37856,-1.56079,-1.25461,-1.21945,2.58424,-0.80940 -11.90391,0.38106,-1.56299,-1.24634,-1.22250,2.58267,-0.80583 -11.93060,0.38494,-1.56669,-1.23304,-1.22745,2.58023,-0.80031 -11.95730,0.38713,-1.56860,-1.22584,-1.23013,2.57885,-0.79722 -11.98399,0.39011,-1.57107,-1.21629,-1.23370,2.57696,-0.79304 -12.01068,0.39083,-1.57169,-1.21393,-1.23459,2.57650,-0.79203 -12.03737,0.39155,-1.57233,-1.21154,-1.23548,2.57604,-0.79102 -12.06406,0.39233,-1.57294,-1.20910,-1.23640,2.57554,-0.78993 -12.09075,0.39272,-1.57324,-1.20790,-1.23685,2.57530,-0.78939 -12.11744,0.39426,-1.57436,-1.20323,-1.23859,2.57431,-0.78724 -12.14413,0.39735,-1.57659,-1.19390,-1.24209,2.57232,-0.78295 -12.17082,0.40033,-1.57909,-1.18435,-1.24571,2.57041,-0.77886 -12.19751,0.40263,-1.58095,-1.17708,-1.24848,2.56892,-0.77570 -12.22420,0.40486,-1.58293,-1.16976,-1.25129,2.56748,-0.77267 -12.25089,0.40751,-1.58521,-1.16116,-1.25459,2.56575,-0.76907 -12.27758,0.40827,-1.58590,-1.15865,-1.25556,2.56526,-0.76804 -12.30427,0.40863,-1.58623,-1.15744,-1.25603,2.56502,-0.76756 -12.33096,0.40865,-1.58624,-1.15738,-1.25606,2.56501,-0.76753 -12.35765,0.40938,-1.58694,-1.15490,-1.25702,2.56453,-0.76654 -12.38434,0.41055,-1.58793,-1.15114,-1.25848,2.56377,-0.76497 -12.41103,0.41214,-1.58919,-1.14619,-1.26039,2.56273,-0.76284 -12.43772,0.41337,-1.59008,-1.14249,-1.26181,2.56192,-0.76118 -12.46441,0.41463,-1.59092,-1.13886,-1.26321,2.56109,-0.75951 -12.49110,0.41550,-1.59145,-1.13644,-1.26414,2.56052,-0.75834 -12.51779,0.41641,-1.59193,-1.13402,-1.26506,2.55992,-0.75713 -12.54448,0.41790,-1.59253,-1.13042,-1.26642,2.55893,-0.75514 -12.57117,0.41945,-1.59299,-1.12696,-1.26771,2.55791,-0.75308 -12.59786,0.42103,-1.59331,-1.12368,-1.26891,2.55685,-0.75098 -12.62456,0.42359,-1.59333,-1.11930,-1.27047,2.55515,-0.74760 -12.65125,0.42547,-1.59292,-1.11683,-1.27130,2.55390,-0.74512 -12.67794,0.42901,-1.59141,-1.11353,-1.27226,2.55153,-0.74047 -12.70463,0.43274,-1.58924,-1.11113,-1.27280,2.54901,-0.73559 -12.73132,0.43586,-1.58709,-1.10978,-1.27297,2.54691,-0.73154 -12.75801,0.43868,-1.58475,-1.10927,-1.27280,2.54499,-0.72789 -12.78470,0.44516,-1.57875,-1.10937,-1.27187,2.54057,-0.71956 -12.81139,0.45223,-1.57164,-1.11068,-1.27032,2.53570,-0.71058 -12.83808,0.46487,-1.55741,-1.11621,-1.26616,2.52691,-0.69482 -12.86477,0.46858,-1.55311,-1.11821,-1.26476,2.52431,-0.69026 -12.89146,0.47712,-1.54318,-1.12301,-1.26149,2.51828,-0.67989 -12.91815,0.48614,-1.53236,-1.12897,-1.25767,2.51186,-0.66911 -12.94484,0.49396,-1.52286,-1.13458,-1.25418,2.50625,-0.65991 -12.97153,0.49891,-1.51644,-1.13895,-1.25162,2.50267,-0.65415 -12.99822,0.50586,-1.50714,-1.14574,-1.24775,2.49763,-0.64615 -13.02491,0.51351,-1.49673,-1.15370,-1.24331,2.49204,-0.63747 -13.05160,0.51538,-1.49415,-1.15575,-1.24218,2.49067,-0.63537 -13.07829,0.51665,-1.49238,-1.15718,-1.24139,2.48973,-0.63394 -13.10498,0.51726,-1.49152,-1.15788,-1.24101,2.48929,-0.63326 -13.13167,0.52378,-1.48252,-1.16511,-1.23706,2.48448,-0.62600 -13.15836,0.54068,-1.45863,-1.18533,-1.22631,2.47191,-0.60761 -13.18505,0.54597,-1.45121,-1.19177,-1.22290,2.46794,-0.60196 -13.21174,0.55265,-1.44175,-1.20016,-1.21850,2.46291,-0.59491 -13.23843,0.55941,-1.43222,-1.20869,-1.21406,2.45779,-0.58787 -13.26512,0.56628,-1.42264,-1.21729,-1.20961,2.45257,-0.58080 -13.29181,0.57187,-1.41495,-1.22417,-1.20605,2.44830,-0.57510 -13.31851,0.57756,-1.40726,-1.23103,-1.20251,2.44394,-0.56938 -13.34520,0.58039,-1.40333,-1.23467,-1.20066,2.44177,-0.56655 -13.37189,0.58533,-1.39633,-1.24126,-1.19733,2.43796,-0.56164 -13.39858,0.59173,-1.38731,-1.24982,-1.19304,2.43301,-0.55535 -13.42527,0.59750,-1.37922,-1.25752,-1.18920,2.42853,-0.54974 -13.45196,0.60257,-1.37190,-1.26472,-1.18564,2.42459,-0.54485 -13.47865,0.60839,-1.36369,-1.27273,-1.18171,2.42004,-0.53930 -13.50534,0.61284,-1.35749,-1.27876,-1.17874,2.41656,-0.53509 -13.53203,0.61740,-1.35144,-1.28446,-1.17592,2.41298,-0.53082 -13.55872,0.62206,-1.34551,-1.28988,-1.17322,2.40931,-0.52649 -13.58541,0.62852,-1.33764,-1.29684,-1.16974,2.40421,-0.52054 -13.61210,0.63180,-1.33360,-1.30050,-1.16793,2.40162,-0.51755 -13.63879,0.63672,-1.32752,-1.30605,-1.16520,2.39771,-0.51309 -13.66548,0.64005,-1.32337,-1.30989,-1.16332,2.39507,-0.51009 -13.69217,0.64418,-1.31823,-1.31467,-1.16098,2.39178,-0.50639 -13.71886,0.64754,-1.31386,-1.31891,-1.15895,2.38910,-0.50341 -13.74555,0.65090,-1.30933,-1.32345,-1.15679,2.38642,-0.50043 -13.77224,0.65426,-1.30447,-1.32857,-1.15439,2.38373,-0.49747 -13.79893,0.65837,-1.29804,-1.33569,-1.15111,2.38043,-0.49388 -13.82562,0.66156,-1.29283,-1.34161,-1.14840,2.37787,-0.49109 -13.85231,0.66541,-1.28618,-1.34938,-1.14488,2.37476,-0.48775 -13.87900,0.66920,-1.27940,-1.35747,-1.14125,2.37171,-0.48448 -13.90569,0.67213,-1.27407,-1.36387,-1.13838,2.36934,-0.48196 -13.93238,0.67566,-1.26778,-1.37139,-1.13503,2.36648,-0.47895 -13.95907,0.68293,-1.25514,-1.38630,-1.12840,2.36058,-0.47281 -13.98577,0.68519,-1.25128,-1.39085,-1.12638,2.35875,-0.47091 -14.01246,0.68664,-1.24885,-1.39368,-1.12512,2.35757,-0.46970 -14.03915,0.68877,-1.24545,-1.39758,-1.12339,2.35584,-0.46793 -14.06584,0.69033,-1.24298,-1.40039,-1.12214,2.35457,-0.46663 -14.09253,0.69208,-1.24012,-1.40369,-1.12068,2.35314,-0.46518 -14.11922,0.69444,-1.23626,-1.40816,-1.11870,2.35121,-0.46322 -14.14591,0.69850,-1.22946,-1.41613,-1.11521,2.34790,-0.45989 -14.17260,0.70086,-1.22554,-1.42070,-1.11321,2.34597,-0.45796 -14.19929,0.70259,-1.22263,-1.42415,-1.11171,2.34456,-0.45655 -14.22598,0.70427,-1.21971,-1.42763,-1.11019,2.34318,-0.45518 -14.25267,0.70819,-1.21286,-1.43583,-1.10665,2.33996,-0.45200 -14.27936,0.71132,-1.20748,-1.44223,-1.10389,2.33740,-0.44949 -14.30605,0.71621,-1.19864,-1.45296,-1.09931,2.33337,-0.44557 -14.33274,0.71785,-1.19568,-1.45657,-1.09777,2.33202,-0.44426 -14.35943,0.71983,-1.19238,-1.46047,-1.09611,2.33039,-0.44270 -14.38612,0.72219,-1.18850,-1.46500,-1.09417,2.32845,-0.44083 -14.41281,0.72397,-1.18553,-1.46850,-1.09268,2.32697,-0.43942 -14.43950,0.72485,-1.18406,-1.47024,-1.09194,2.32625,-0.43873 -14.46619,0.72573,-1.18259,-1.47199,-1.09120,2.32553,-0.43804 -14.49288,0.72659,-1.18112,-1.47374,-1.09046,2.32481,-0.43736 -14.51957,0.72748,-1.17960,-1.47555,-1.08969,2.32407,-0.43666 -14.54626,0.72834,-1.17813,-1.47731,-1.08895,2.32337,-0.43599 -14.57295,0.72919,-1.17666,-1.47907,-1.08821,2.32266,-0.43533 -14.59964,0.73003,-1.17519,-1.48083,-1.08747,2.32196,-0.43467 -14.62633,0.73091,-1.17368,-1.48266,-1.08670,2.32124,-0.43399 -14.65302,0.73145,-1.17277,-1.48372,-1.08625,2.32079,-0.43356 -14.67972,0.73233,-1.17130,-1.48546,-1.08552,2.32007,-0.43288 -14.70641,0.73379,-1.16893,-1.48824,-1.08435,2.31885,-0.43174 -14.73310,0.73473,-1.16741,-1.49002,-1.08360,2.31808,-0.43102 -14.75979,0.73563,-1.16593,-1.49175,-1.08288,2.31733,-0.43032 -14.78648,0.73652,-1.16446,-1.49348,-1.08215,2.31659,-0.42963 -14.81317,0.73741,-1.16299,-1.49521,-1.08143,2.31585,-0.42894 -14.83986,0.73799,-1.16209,-1.49626,-1.08099,2.31538,-0.42850 -14.86655,0.73802,-1.16204,-1.49632,-1.08096,2.31535,-0.42848 -14.89324,0.73835,-1.16149,-1.49697,-1.08069,2.31508,-0.42823 -14.91993,0.73892,-1.16058,-1.49802,-1.08025,2.31461,-0.42779 -14.94662,0.74013,-1.15854,-1.50046,-1.07924,2.31360,-0.42685 -14.97331,0.74131,-1.15644,-1.50300,-1.07819,2.31262,-0.42595 -15.00000,0.74134,-1.15639,-1.50306,-1.07816,2.31260,-0.42593 +0.00000,0.53253,-1.30334,-1.52085,-1.05683,2.47804,-0.62074 +0.08065,0.53252,-1.30337,-1.52080,-1.05684,2.47805,-0.62074 +0.16129,0.53453,-1.30974,-1.50563,-1.06203,2.47638,-0.61634 +0.24194,0.54595,-1.31977,-1.47230,-1.07385,2.46769,-0.60187 +0.32258,0.55266,-1.32414,-1.45596,-1.07980,2.46260,-0.59417 +0.40323,0.56163,-1.32845,-1.43722,-1.08672,2.45579,-0.58450 +0.48387,0.56504,-1.32991,-1.43048,-1.08923,2.45320,-0.58091 +0.56452,0.57036,-1.33149,-1.42126,-1.09265,2.44914,-0.57542 +0.64516,0.57777,-1.33292,-1.40990,-1.09687,2.44348,-0.56795 +0.72581,0.58637,-1.33341,-1.39890,-1.10092,2.43687,-0.55944 +0.80645,0.59562,-1.33387,-1.38741,-1.10518,2.42973,-0.55048 +0.88710,0.60467,-1.33393,-1.37703,-1.10904,2.42271,-0.54187 +0.96774,0.61330,-1.33305,-1.36893,-1.11201,2.41599,-0.53381 +1.04839,0.61886,-1.33212,-1.36441,-1.11364,2.41163,-0.52866 +1.12903,0.62256,-1.33100,-1.36231,-1.11435,2.40872,-0.52526 +1.20968,0.62513,-1.32995,-1.36136,-1.11463,2.40670,-0.52292 +1.29032,0.62947,-1.32740,-1.36109,-1.11455,2.40328,-0.51898 +1.37097,0.63595,-1.32285,-1.36208,-1.11383,2.39815,-0.51313 +1.45161,0.64183,-1.31805,-1.36422,-1.11266,2.39349,-0.50788 +1.53226,0.64623,-1.31412,-1.36648,-1.11151,2.38998,-0.50398 +1.61290,0.65053,-1.30980,-1.36955,-1.11001,2.38655,-0.50019 +1.69355,0.65600,-1.30380,-1.37439,-1.10773,2.38218,-0.49540 +1.77419,0.65985,-1.29884,-1.37912,-1.10555,2.37909,-0.49206 +1.85484,0.66525,-1.29033,-1.38849,-1.10135,2.37474,-0.48738 +1.93548,0.66732,-1.28692,-1.39235,-1.09962,2.37307,-0.48560 +2.01613,0.66955,-1.28287,-1.39718,-1.09748,2.37127,-0.48368 +2.09677,0.67181,-1.27808,-1.40327,-1.09480,2.36944,-0.48174 +2.17742,0.67563,-1.26385,-1.42413,-1.08582,2.36632,-0.47841 +2.25806,0.67728,-1.24987,-1.44660,-1.07627,2.36495,-0.47690 +2.33871,0.67695,-1.23938,-1.46488,-1.06860,2.36518,-0.47708 +2.41935,0.67529,-1.22718,-1.48725,-1.05933,2.36649,-0.47835 +2.50000,0.67136,-1.21267,-1.51552,-1.04781,2.36961,-0.48150 +2.58065,0.66755,-1.20228,-1.53659,-1.03934,2.37264,-0.48462 +2.66129,0.66488,-1.19618,-1.54932,-1.03428,2.37476,-0.48682 +2.74194,0.66309,-1.19252,-1.55713,-1.03119,2.37619,-0.48830 +2.82258,0.66108,-1.18910,-1.56473,-1.02821,2.37779,-0.48998 +2.90323,0.65850,-1.18505,-1.57391,-1.02464,2.37984,-0.49215 +2.98387,0.65621,-1.18188,-1.58134,-1.02177,2.38166,-0.49409 +3.06452,0.65273,-1.17767,-1.59160,-1.01784,2.38442,-0.49705 +3.14516,0.64717,-1.17222,-1.60590,-1.01245,2.38884,-0.50183 +3.22581,0.64224,-1.16836,-1.61697,-1.00835,2.39274,-0.50612 +3.30645,0.63673,-1.16503,-1.62777,-1.00441,2.39709,-0.51096 +3.38710,0.62993,-1.16190,-1.63951,-1.00022,2.40245,-0.51702 +3.46774,0.62148,-1.15930,-1.65207,-0.99587,2.40909,-0.52464 +3.54839,0.61533,-1.15783,-1.66057,-0.99299,2.41390,-0.53026 +3.62903,0.60983,-1.15685,-1.66768,-0.99064,2.41820,-0.53535 +3.70968,0.60149,-1.15640,-1.67688,-0.98771,2.42468,-0.54316 +3.79032,0.58864,-1.15810,-1.68750,-0.98462,2.43462,-0.55544 +3.87097,0.57937,-1.16053,-1.69343,-0.98311,2.44175,-0.56449 +3.95161,0.56884,-1.16450,-1.69843,-0.98209,2.44979,-0.57495 +4.03226,0.55160,-1.17429,-1.70202,-0.98225,2.46284,-0.59255 +4.11290,0.54299,-1.17938,-1.70369,-0.98246,2.46931,-0.60156 +4.19355,0.53290,-1.18552,-1.70559,-0.98279,2.47684,-0.61230 +4.27419,0.52106,-1.19308,-1.70758,-0.98333,2.48559,-0.62515 +4.35484,0.51236,-1.19860,-1.70931,-0.98369,2.49198,-0.63480 +4.43548,0.50632,-1.20249,-1.71052,-0.98397,2.49638,-0.64158 +4.51613,0.49999,-1.20671,-1.71166,-0.98433,2.50098,-0.64878 +4.59677,0.49309,-1.21128,-1.71308,-0.98468,2.50595,-0.65673 +4.67742,0.48695,-1.21552,-1.71420,-0.98507,2.51036,-0.66390 +4.75806,0.48267,-1.21851,-1.71498,-0.98535,2.51341,-0.66894 +4.83871,0.47825,-1.22142,-1.71609,-0.98555,2.51655,-0.67418 +4.91935,0.47286,-1.22476,-1.71786,-0.98565,2.52037,-0.68065 +5.00000,0.46388,-1.22867,-1.72353,-0.98491,2.52667,-0.69155 +5.08065,0.45727,-1.23095,-1.72875,-0.98405,2.53128,-0.69971 +5.16129,0.45393,-1.23198,-1.73161,-0.98355,2.53358,-0.70386 +5.24194,0.45040,-1.23267,-1.73526,-0.98282,2.53602,-0.70828 +5.32258,0.44743,-1.23312,-1.73856,-0.98214,2.53806,-0.71202 +5.40323,0.44312,-1.23344,-1.74387,-0.98097,2.54101,-0.71749 +5.48387,0.42071,-1.22869,-1.78190,-0.97171,2.55610,-0.74660 +5.56452,0.41356,-1.22662,-1.79498,-0.96866,2.56083,-0.75618 +5.64516,0.40657,-1.22419,-1.80841,-0.96555,2.56541,-0.76565 +5.72581,0.39830,-1.22042,-1.82567,-0.96157,2.57077,-0.77703 +5.80645,0.39668,-1.21962,-1.82915,-0.96079,2.57182,-0.77929 +5.88710,0.39558,-1.21903,-1.83157,-0.96024,2.57253,-0.78083 +5.96774,0.39506,-1.21876,-1.83270,-0.95998,2.57286,-0.78155 +6.04839,0.39400,-1.21815,-1.83510,-0.95944,2.57354,-0.78303 +6.12903,0.39395,-1.21812,-1.83519,-0.95942,2.57357,-0.78309 +6.20968,0.39393,-1.21811,-1.83524,-0.95941,2.57358,-0.78312 +6.29032,0.39392,-1.21809,-1.83529,-0.95940,2.57359,-0.78314 +6.37097,0.39390,-1.21808,-1.83533,-0.95939,2.57361,-0.78317 +6.45161,0.39388,-1.21807,-1.83537,-0.95938,2.57362,-0.78319 +6.53226,0.39387,-1.21806,-1.83540,-0.95937,2.57362,-0.78321 +6.61290,0.39386,-1.21805,-1.83544,-0.95936,2.57363,-0.78323 +6.69355,0.39384,-1.21804,-1.83547,-0.95936,2.57364,-0.78324 +6.77419,0.39384,-1.21803,-1.83549,-0.95935,2.57364,-0.78325 +6.85484,0.39384,-1.21803,-1.83550,-0.95935,2.57365,-0.78325 +6.93548,0.39384,-1.21803,-1.83549,-0.95935,2.57364,-0.78325 +7.01613,0.39384,-1.21804,-1.83546,-0.95936,2.57364,-0.78324 +7.09677,0.39386,-1.21806,-1.83541,-0.95937,2.57363,-0.78323 +7.17742,0.39561,-1.22187,-1.82734,-0.96160,2.57252,-0.78081 +7.25806,0.39777,-1.22730,-1.81630,-0.96471,2.57114,-0.77782 +7.33871,0.39941,-1.23309,-1.80547,-0.96788,2.57010,-0.77560 +7.41935,0.40055,-1.23808,-1.79648,-0.97058,2.56937,-0.77405 +7.50000,0.40098,-1.24049,-1.79230,-0.97186,2.56909,-0.77346 +7.58065,0.40173,-1.24659,-1.78220,-0.97503,2.56862,-0.77248 +7.66129,0.40204,-1.25576,-1.76813,-0.97961,2.56843,-0.77211 +7.74194,0.40195,-1.26246,-1.75827,-0.98292,2.56850,-0.77228 +7.82258,0.40199,-1.27002,-1.74687,-0.98677,2.56850,-0.77229 +7.90323,0.40205,-1.27504,-1.73918,-0.98940,2.56846,-0.77224 +7.98387,0.40287,-1.28373,-1.72475,-0.99426,2.56795,-0.77119 +8.06452,0.40408,-1.29249,-1.70950,-0.99941,2.56718,-0.76960 +8.14516,0.40521,-1.30089,-1.69485,-1.00444,2.56646,-0.76813 +8.22581,0.40654,-1.30992,-1.67882,-1.00998,2.56561,-0.76638 +8.30645,0.40962,-1.32552,-1.64971,-1.02012,2.56364,-0.76234 +8.38710,0.41177,-1.33339,-1.63392,-1.02567,2.56224,-0.75950 +8.46774,0.41319,-1.33808,-1.62427,-1.02908,2.56132,-0.75763 +8.54839,0.41494,-1.34358,-1.61278,-1.03315,2.56018,-0.75533 +8.62903,0.41620,-1.34790,-1.60393,-1.03633,2.55936,-0.75369 +8.70968,0.42136,-1.36182,-1.57351,-1.04722,2.55598,-0.74695 +8.79032,0.42246,-1.36447,-1.56748,-1.04941,2.55525,-0.74551 +8.87097,0.42545,-1.37157,-1.55127,-1.05531,2.55327,-0.74164 +8.95161,0.42921,-1.37948,-1.53248,-1.06219,2.55077,-0.73679 +9.03226,0.43285,-1.38644,-1.51537,-1.06849,2.54834,-0.73214 +9.11290,0.43638,-1.39227,-1.50025,-1.07408,2.54597,-0.72763 +9.19355,0.44474,-1.40602,-1.46444,-1.08748,2.54032,-0.71710 +9.27419,0.44878,-1.41255,-1.44726,-1.09401,2.53757,-0.71209 +9.35484,0.45180,-1.41705,-1.43504,-1.09869,2.53550,-0.70835 +9.43548,0.45453,-1.42093,-1.42429,-1.10281,2.53363,-0.70499 +9.51613,0.45691,-1.42425,-1.41502,-1.10639,2.53199,-0.70208 +9.59677,0.46020,-1.42840,-1.40294,-1.11104,2.52972,-0.69807 +9.67742,0.46317,-1.43192,-1.39244,-1.11511,2.52767,-0.69448 +9.75806,0.46666,-1.43588,-1.38038,-1.11979,2.52524,-0.69027 +9.83871,0.46982,-1.43913,-1.37004,-1.12381,2.52304,-0.68649 +9.91935,0.47222,-1.44125,-1.36280,-1.12662,2.52136,-0.68363 +10.00000,0.47620,-1.44443,-1.35136,-1.13106,2.51856,-0.67891 +10.08065,0.47890,-1.44620,-1.34428,-1.13380,2.51665,-0.67572 +10.16129,0.48215,-1.44822,-1.33597,-1.13702,2.51436,-0.67191 +10.24194,0.48553,-1.45008,-1.32776,-1.14019,2.51196,-0.66796 +10.32258,0.48945,-1.45229,-1.31818,-1.14392,2.50917,-0.66342 +10.40323,0.49282,-1.45420,-1.30995,-1.14713,2.50676,-0.65954 +10.48387,0.49568,-1.45577,-1.30307,-1.14982,2.50471,-0.65628 +10.56452,0.49803,-1.45700,-1.29754,-1.15199,2.50302,-0.65360 +10.64516,0.50042,-1.45818,-1.29205,-1.15414,2.50130,-0.65090 +10.72581,0.50391,-1.45999,-1.28388,-1.15736,2.49878,-0.64696 +10.80645,0.50862,-1.46248,-1.27282,-1.16174,2.49537,-0.64169 +10.88710,0.51348,-1.46490,-1.26171,-1.16616,2.49184,-0.63630 +10.96774,0.51984,-1.46766,-1.24796,-1.17163,2.48719,-0.62933 +11.04839,0.52395,-1.46912,-1.23968,-1.17492,2.48417,-0.62485 +11.12903,0.52786,-1.47061,-1.23168,-1.17813,2.48129,-0.62064 +11.20968,0.53059,-1.47157,-1.22624,-1.18031,2.47928,-0.61771 +11.29032,0.53221,-1.47201,-1.22326,-1.18150,2.47808,-0.61597 +11.37097,0.53371,-1.47237,-1.22059,-1.18256,2.47697,-0.61438 +11.45161,0.53585,-1.47290,-1.21674,-1.18409,2.47538,-0.61211 +11.53226,0.53753,-1.47321,-1.21392,-1.18521,2.47413,-0.61032 +11.61290,0.54076,-1.47324,-1.20952,-1.18692,2.47173,-0.60691 +11.69355,0.54449,-1.47270,-1.20550,-1.18843,2.46894,-0.60300 +11.77419,0.54792,-1.47168,-1.20276,-1.18941,2.46637,-0.59941 +11.85484,0.55091,-1.47013,-1.20158,-1.18973,2.46412,-0.59629 +11.93548,0.55316,-1.46869,-1.20121,-1.18974,2.46243,-0.59396 +12.01613,0.55555,-1.46673,-1.20157,-1.18942,2.46063,-0.59149 +12.09677,0.55806,-1.46398,-1.20323,-1.18852,2.45873,-0.58889 +12.17742,0.56098,-1.46002,-1.20652,-1.18687,2.45651,-0.58588 +12.25806,0.56399,-1.45497,-1.21168,-1.18439,2.45422,-0.58278 +12.33871,0.56669,-1.44956,-1.21791,-1.18145,2.45217,-0.58002 +12.41935,0.56885,-1.44496,-1.22338,-1.17888,2.45051,-0.57780 +12.50000,0.57041,-1.44118,-1.22815,-1.17666,2.44931,-0.57620 +12.58065,0.57179,-1.43762,-1.23278,-1.17452,2.44825,-0.57479 +12.66129,0.57285,-1.43467,-1.23672,-1.17270,2.44744,-0.57370 +12.74194,0.57364,-1.43226,-1.24003,-1.17118,2.44683,-0.57289 +12.82258,0.57444,-1.42980,-1.24342,-1.16963,2.44621,-0.57207 +12.90323,0.57549,-1.42607,-1.24877,-1.16719,2.44540,-0.57099 +12.98387,0.57729,-1.41634,-1.26384,-1.16042,2.44400,-0.56911 +13.06452,0.57807,-1.41113,-1.27213,-1.15671,2.44339,-0.56828 +13.14516,0.57856,-1.40557,-1.28138,-1.15261,2.44300,-0.56774 +13.22581,0.57879,-1.39758,-1.29523,-1.14651,2.44281,-0.56743 +13.30645,0.57853,-1.39012,-1.30871,-1.14063,2.44298,-0.56760 +13.38710,0.57808,-1.38369,-1.32057,-1.13548,2.44331,-0.56797 +13.46774,0.57703,-1.37429,-1.33830,-1.12786,2.44409,-0.56890 +13.54839,0.57641,-1.36900,-1.34830,-1.12357,2.44455,-0.56945 +13.62903,0.57521,-1.36105,-1.36361,-1.11706,2.44545,-0.57056 +13.70968,0.57255,-1.35067,-1.38480,-1.10817,2.44745,-0.57309 +13.79032,0.56969,-1.34283,-1.40177,-1.10114,2.44960,-0.57584 +13.87097,0.56703,-1.33701,-1.41501,-1.09572,2.45161,-0.57845 +13.95161,0.56487,-1.33281,-1.42482,-1.09173,2.45324,-0.58057 +14.03226,0.56089,-1.32626,-1.44084,-1.08531,2.45624,-0.58453 +14.11290,0.55835,-1.32261,-1.45013,-1.08162,2.45814,-0.58707 +14.19355,0.55612,-1.31967,-1.45784,-1.07858,2.45982,-0.58932 +14.27419,0.55381,-1.31685,-1.46544,-1.07561,2.46155,-0.59166 +14.35484,0.55192,-1.31465,-1.47146,-1.07327,2.46297,-0.59359 +14.43548,0.55048,-1.31305,-1.47593,-1.07154,2.46404,-0.59505 +14.51613,0.54952,-1.31200,-1.47888,-1.07041,2.46476,-0.59604 +14.59677,0.54806,-1.31044,-1.48330,-1.06871,2.46586,-0.59754 +14.67742,0.54804,-1.31042,-1.48336,-1.06868,2.46587,-0.59756 +14.75806,0.54756,-1.30992,-1.48479,-1.06814,2.46623,-0.59805 +14.83871,0.54706,-1.30940,-1.48628,-1.06757,2.46660,-0.59857 +14.91935,0.54656,-1.30888,-1.48776,-1.06700,2.46698,-0.59908 +15.00000,0.54654,-1.30886,-1.48782,-1.06698,2.46699,-0.59911 diff --git a/python/examples/path_in_pixels.csv b/python/examples/path_in_pixels.csv index 2040e1f..c28926c 100644 --- a/python/examples/path_in_pixels.csv +++ b/python/examples/path_in_pixels.csv @@ -1,563 +1,46 @@ -0.17153,0.75297 -0.18626,0.73858 -0.19952,0.72550 -0.21424,0.71111 -0.23191,0.69411 -0.24664,0.67710 -0.25695,0.66533 -0.26873,0.65487 -0.29671,0.63394 -0.30997,0.62086 -0.31880,0.61170 -0.33353,0.59993 -0.34384,0.58946 -0.35267,0.58162 -0.36298,0.57377 -0.37329,0.56200 -0.38066,0.55153 -0.38655,0.54368 -0.39096,0.53322 -0.39538,0.52799 -0.40569,0.51229 -0.41158,0.50052 -0.41747,0.49005 -0.42042,0.47959 -0.42336,0.47043 -0.42484,0.46128 -0.42778,0.45604 -0.43220,0.44689 -0.43809,0.43381 -0.44398,0.42334 -0.45134,0.40896 -0.45282,0.40242 -0.45723,0.39718 -0.46165,0.39064 -0.46460,0.38410 -0.46902,0.37887 -0.47638,0.36971 -0.48227,0.36187 -0.48963,0.35402 -0.49552,0.34748 -0.49994,0.34094 -0.50289,0.33832 -0.50583,0.33440 -0.50878,0.33047 -0.51320,0.32524 -0.51909,0.32132 -0.52350,0.31478 -0.53676,0.29385 -0.54412,0.27684 -0.55149,0.26115 -0.55443,0.25461 -0.55443,0.25199 -0.55443,0.24807 -0.55443,0.24676 -0.55443,0.24676 -0.55885,0.26246 -0.56327,0.27423 -0.57063,0.28862 -0.58241,0.31347 -0.60303,0.35140 -0.61187,0.36710 -0.62070,0.38803 -0.62659,0.40503 -0.63543,0.42465 -0.64574,0.44296 -0.65899,0.46258 -0.66635,0.47697 -0.67519,0.49136 -0.68403,0.50706 -0.69139,0.52275 -0.69728,0.53322 -0.70464,0.54630 -0.71054,0.55676 -0.71937,0.57115 -0.72821,0.58423 -0.73410,0.59600 -0.74146,0.60778 -0.74588,0.61824 -0.74735,0.62217 -0.74882,0.62478 -0.75030,0.62478 -0.75030,0.62609 -0.75472,0.63655 -0.76208,0.65225 -0.76502,0.66402 -0.76944,0.67449 -0.77386,0.68495 -0.77975,0.70326 -0.78417,0.71373 -0.78859,0.72419 -0.79153,0.73073 -0.79301,0.73858 -0.79448,0.74120 -0.79890,0.75035 -0.80184,0.75559 -0.80331,0.75951 -0.80479,0.76213 -0.80626,0.76474 -0.80626,0.76736 -0.80920,0.77259 -0.81215,0.77782 -0.81510,0.78567 -0.81804,0.79090 -0.81951,0.79221 -0.81951,0.79483 -0.81951,0.79613 -0.82099,0.79875 -0.82099,0.80006 -0.82099,0.80137 -0.80920,0.79613 -0.78859,0.78567 -0.77681,0.78044 -0.76355,0.77521 -0.75177,0.77128 -0.74146,0.76605 -0.73263,0.76082 -0.72232,0.75689 -0.71054,0.74904 -0.68697,0.73466 -0.67519,0.72942 -0.66783,0.72419 -0.65899,0.71765 -0.64721,0.71242 -0.63101,0.70457 -0.60008,0.69149 -0.58978,0.68495 -0.57358,0.67318 -0.55590,0.66271 -0.53676,0.65356 -0.52645,0.64833 -0.51467,0.64179 -0.50289,0.63655 -0.48374,0.62609 -0.47196,0.61955 -0.46018,0.61039 -0.44840,0.60124 -0.43809,0.59208 -0.42042,0.58031 -0.40569,0.57246 -0.39391,0.56461 -0.38507,0.55938 -0.37624,0.55284 -0.36446,0.54368 -0.35267,0.53583 -0.33942,0.52929 -0.32764,0.52275 -0.31291,0.51491 -0.30555,0.51098 -0.29524,0.50706 -0.28493,0.50313 -0.27315,0.49790 -0.26137,0.49136 -0.25106,0.48221 -0.23928,0.47174 -0.22750,0.45735 -0.22308,0.45212 -0.21866,0.44689 -0.21424,0.44427 -0.20982,0.44166 -0.20688,0.44035 -0.20393,0.43773 -0.20246,0.43642 -0.20099,0.43512 -0.19952,0.43381 -0.19657,0.43250 -0.19510,0.43119 -0.24959,0.43773 -0.25990,0.43773 -0.28199,0.44035 -0.30555,0.44296 -0.32322,0.44296 -0.33795,0.44296 -0.35415,0.44296 -0.37624,0.44558 -0.42484,0.44950 -0.45723,0.45343 -0.47343,0.45604 -0.48963,0.45735 -0.50141,0.45866 -0.52056,0.45997 -0.53970,0.46389 -0.55885,0.46520 -0.57063,0.46651 -0.59125,0.46782 -0.61039,0.46913 -0.62659,0.47043 -0.63837,0.47174 -0.66341,0.47567 -0.67814,0.47828 -0.68844,0.47959 -0.70023,0.48090 -0.70612,0.48221 -0.71348,0.48221 -0.71937,0.48351 -0.73263,0.48351 -0.74293,0.48351 -0.75619,0.48482 -0.76944,0.48613 -0.77533,0.48613 -0.78417,0.48613 -0.79006,0.48613 -0.79595,0.48744 -0.80184,0.48744 -0.80773,0.48744 -0.81657,0.48744 -0.82246,0.48744 -0.83129,0.48744 -0.83571,0.48744 -0.84160,0.48613 -0.84749,0.48482 -0.85044,0.48482 -0.85338,0.48482 -0.85486,0.48482 -0.85633,0.48482 -0.85486,0.48482 -0.85486,0.48482 -0.85338,0.48482 -0.85191,0.48482 -0.85044,0.48482 -0.84897,0.48482 -0.84897,0.48482 -0.84455,0.48744 -0.84160,0.48875 -0.83719,0.49136 -0.82393,0.49529 -0.81510,0.50052 -0.79742,0.50706 -0.75472,0.52275 -0.74293,0.52799 -0.72232,0.53583 -0.69875,0.54630 -0.68403,0.55153 -0.66488,0.56200 -0.60745,0.58423 -0.52498,0.60385 -0.50731,0.60778 -0.47785,0.61824 -0.44103,0.63132 -0.42336,0.63786 -0.39391,0.64833 -0.37329,0.65617 -0.35709,0.66533 -0.35120,0.67056 -0.34826,0.67318 -0.34678,0.67449 -0.32469,0.67972 -0.31438,0.68234 -0.29819,0.68757 -0.28788,0.69018 -0.28199,0.69280 -0.27462,0.69411 -0.27168,0.69542 -0.26726,0.69672 -0.26284,0.69934 -0.25695,0.70196 -0.25106,0.70457 -0.24517,0.70719 -0.23928,0.70980 -0.23339,0.71242 -0.22897,0.71373 -0.22602,0.71634 -0.22161,0.71765 -0.21719,0.71896 -0.21424,0.72027 -0.21277,0.72158 -0.20982,0.72288 -0.20688,0.72419 -0.20393,0.72550 -0.20099,0.72812 -0.19804,0.73204 -0.19068,0.73727 -0.18773,0.73989 -0.18626,0.74250 -0.18479,0.74381 -0.18332,0.74643 -0.18184,0.74774 -0.18037,0.74904 -0.17890,0.75035 -0.17743,0.75166 -0.17595,0.75297 -0.17448,0.75297 -0.17301,0.75297 -0.17153,0.75297 -0.17153,0.75297 -0.17006,0.75297 -0.16859,0.75297 -0.16712,0.75166 -0.16712,0.74904 -0.16712,0.74381 -0.16712,0.73073 -0.16712,0.71765 -0.16712,0.70850 -0.16859,0.69542 -0.17153,0.67449 -0.17301,0.66010 -0.17448,0.64833 -0.17595,0.64309 -0.17595,0.63917 -0.17595,0.63525 -0.17595,0.62871 -0.17595,0.62086 -0.17595,0.61432 -0.17595,0.60778 -0.17595,0.60124 -0.17595,0.59470 -0.17595,0.58685 -0.17743,0.57115 -0.17890,0.55807 -0.17890,0.54630 -0.17890,0.53322 -0.17890,0.52406 -0.17890,0.51752 -0.17743,0.51098 -0.17743,0.50706 -0.17743,0.50444 -0.17743,0.50183 -0.17743,0.50052 -0.17743,0.49659 -0.17743,0.48613 -0.17743,0.47828 -0.17890,0.46651 -0.18037,0.45997 -0.18184,0.45474 -0.18184,0.45081 -0.18332,0.44689 -0.18332,0.44427 -0.18332,0.44166 -0.18626,0.43642 -0.19215,0.42858 -0.19657,0.41811 -0.20246,0.40896 -0.20688,0.40242 -0.20835,0.39718 -0.21130,0.39195 -0.21424,0.38672 -0.21866,0.38149 -0.22455,0.37495 -0.23339,0.36710 -0.24370,0.35533 -0.25106,0.34879 -0.25695,0.34094 -0.26137,0.33701 -0.26726,0.33047 -0.27904,0.32393 -0.31733,0.30431 -0.32911,0.29777 -0.34089,0.29254 -0.34826,0.28862 -0.35120,0.28731 -0.35267,0.28600 -0.35415,0.28469 -0.35415,0.28338 -0.37035,0.27815 -0.38066,0.27292 -0.39391,0.26769 -0.39833,0.26507 -0.40422,0.26376 -0.41011,0.26115 -0.41600,0.25853 -0.42484,0.25722 -0.43514,0.25461 -0.44251,0.25330 -0.45134,0.25199 -0.45576,0.25199 -0.46165,0.25199 -0.46754,0.25199 -0.47049,0.25199 -0.47491,0.25199 -0.48522,0.25199 -0.49258,0.25199 -0.49847,0.25199 -0.50583,0.25068 -0.51172,0.25068 -0.51614,0.25068 -0.52350,0.25068 -0.52792,0.25068 -0.53381,0.25068 -0.53970,0.25068 -0.54412,0.25199 -0.55001,0.25330 -0.55738,0.25592 -0.56327,0.25984 -0.57358,0.26376 -0.58388,0.26900 -0.59419,0.27423 -0.60303,0.27815 -0.61039,0.27946 -0.61776,0.28208 -0.62659,0.28600 -0.63543,0.28992 -0.64574,0.29516 -0.65605,0.29908 -0.66783,0.30431 -0.67666,0.30824 -0.68403,0.31216 -0.68844,0.31608 -0.69581,0.32001 -0.70170,0.32393 -0.71201,0.33047 -0.71790,0.33440 -0.72379,0.33701 -0.72821,0.33963 -0.73410,0.34355 -0.73704,0.34486 -0.73852,0.34486 -0.73999,0.34486 -0.76061,0.37495 -0.76061,0.37756 -0.77386,0.39326 -0.78122,0.40372 -0.78859,0.41157 -0.79595,0.42073 -0.81068,0.43642 -0.81657,0.44296 -0.82393,0.45212 -0.82982,0.45735 -0.83277,0.46389 -0.83719,0.46913 -0.84160,0.47436 -0.84897,0.48351 -0.84897,0.48351 -0.85044,0.48482 -0.85191,0.48613 -0.85191,0.48744 -0.85191,0.48875 -0.85486,0.49267 -0.85928,0.49921 -0.86222,0.50183 -0.86369,0.50706 -0.86664,0.51229 -0.87106,0.52406 -0.87253,0.52929 -0.87253,0.53845 -0.87253,0.54630 -0.87106,0.55938 -0.86811,0.57246 -0.86517,0.58946 -0.86369,0.60516 -0.86222,0.61563 -0.86075,0.62347 -0.85928,0.62871 -0.85928,0.63001 -0.85928,0.63263 -0.85928,0.63263 -0.85928,0.63394 -0.85928,0.65617 -0.85928,0.66533 -0.85928,0.67972 -0.85780,0.68757 -0.85633,0.69803 -0.85633,0.70065 -0.85633,0.70326 -0.85486,0.70588 -0.85486,0.70719 -0.85338,0.71242 -0.85191,0.72288 -0.85191,0.73335 -0.85044,0.74120 -0.85044,0.74904 -0.84897,0.75820 -0.84897,0.76082 -0.84897,0.76213 -0.84897,0.76213 -0.84897,0.76474 -0.84749,0.76867 -0.84602,0.77390 -0.84455,0.77782 -0.84308,0.78175 -0.84160,0.78436 -0.84013,0.78698 -0.83719,0.79090 -0.83424,0.79483 -0.83129,0.79875 -0.82540,0.80398 -0.81951,0.80660 -0.81068,0.81183 -0.80184,0.81706 -0.79448,0.82099 -0.78711,0.82360 -0.77239,0.83145 -0.75619,0.83930 -0.72673,0.85107 -0.71790,0.85369 -0.69875,0.86154 -0.67814,0.86808 -0.66046,0.87331 -0.64868,0.87462 -0.63248,0.87723 -0.61481,0.87985 -0.61039,0.87985 -0.60745,0.87985 -0.60597,0.87985 -0.59125,0.88246 -0.55296,0.88508 -0.54118,0.88508 -0.52645,0.88508 -0.51172,0.88508 -0.49700,0.88508 -0.48522,0.88508 -0.47343,0.88508 -0.46754,0.88377 -0.45723,0.88246 -0.44398,0.88116 -0.43220,0.87985 -0.42189,0.87723 -0.41011,0.87592 -0.40127,0.87462 -0.39244,0.87462 -0.38360,0.87462 -0.37182,0.87462 -0.36593,0.87331 -0.35709,0.87200 -0.35120,0.87069 -0.34384,0.86938 -0.33795,0.86677 -0.33206,0.86415 -0.32617,0.86023 -0.31880,0.85500 -0.31291,0.85107 -0.30555,0.84584 -0.29819,0.84061 -0.29229,0.83668 -0.28493,0.83276 -0.27020,0.82491 -0.26579,0.82229 -0.26284,0.82099 -0.25842,0.81968 -0.25548,0.81837 -0.25253,0.81575 -0.24811,0.81314 -0.24075,0.80791 -0.23633,0.80529 -0.23339,0.80267 -0.23044,0.80006 -0.22308,0.79483 -0.21719,0.79090 -0.20835,0.78305 -0.20541,0.78044 -0.20099,0.77913 -0.19657,0.77651 -0.19363,0.77390 -0.19215,0.77259 -0.19068,0.77128 -0.18921,0.76997 -0.18773,0.76867 -0.18626,0.76736 -0.18479,0.76605 -0.18332,0.76474 -0.18184,0.76343 -0.18037,0.76343 -0.17890,0.76213 -0.17595,0.76082 -0.17448,0.75951 -0.17301,0.75820 -0.17153,0.75689 -0.17006,0.75559 -0.16859,0.75559 -0.16859,0.75559 -0.16859,0.75428 -0.16712,0.75428 -0.16564,0.75166 -0.16417,0.74904 -0.16417,0.74904 +0.28846,0.66239 +0.29140,0.66108 +0.29287,0.66108 +0.29434,0.66108 +0.29581,0.66108 +0.31638,0.65586 +0.35166,0.65455 +0.37370,0.65194 +0.44278,0.65194 +0.46483,0.64803 +0.52215,0.64672 +0.52362,0.64541 +0.52656,0.64411 +0.52803,0.64411 +0.52950,0.64280 +0.53097,0.63367 +0.52950,0.62714 +0.52509,0.62061 +0.51921,0.61278 +0.50451,0.60364 +0.48834,0.59189 +0.46483,0.57231 +0.37076,0.50965 +0.32520,0.49268 +0.25171,0.46396 +0.23848,0.45090 +0.21644,0.43263 +0.20909,0.42741 +0.20615,0.42610 +0.20468,0.42479 +0.20321,0.42349 +0.20321,0.42349 +0.21056,0.41957 +0.23408,0.41566 +0.30168,0.41305 +0.32961,0.41174 +0.40310,0.40913 +0.42221,0.40652 +0.48394,0.40130 +0.54273,0.39607 +0.54860,0.39346 +0.55448,0.39216 +0.55595,0.39216 +0.55742,0.39216 +0.55889,0.39216 +0.55889,0.39216 diff --git a/python/ur_simple_control/__pycache__/managers.cpython-311.pyc b/python/ur_simple_control/__pycache__/managers.cpython-311.pyc index 2f3690a363cf4d9c51db5e28701a6d2339495f7b..a442dff4d7668a4df729fb1036c21f76ede319ca 100644 GIT binary patch delta 513 zcmZ2~m-)~=X5Qtzyj%<n3=DROv(imB^5&djEZbalW)d^wlgYdnvZP8ZL6Q($A_k#B zWR~n?T{}6h6vh<(WlRhVtC=Pn1dFj$F)%PpF25ivDzJuQ88ZXJYG#mH5Uyc}m!Ir? zUT*U73*wCOlN-+~PP%BMr~r}z;Sx>|3Bff?HH<aPHEcBuSqhUso>gNiah_a#QCiUj zA`K$5nLuQbcnwpQGKdAjSt^qgyhW_yRY4pO&J(F&%2ENbKsZGZ<hUA!ELIQ?gb^xh zSZf&K)j-;r7N}2VG*h44tH-6T0a66QMRFy<AR2;Ggpdu%Ql0GZRE0@Xc=F6k?JO^t z85kzZUp8da+8lUUkx{tFf`Ngd=o<qA!!7or#JrTuypqX9R~|7&Zw|ex!6d&{cx}*{ z$m_axmvrrR6dq8ysOx@3*ZrcV#}!SFi{c)eYp>UH8DuarFcigrh$0XX$H>5Ni!~=d zF{QXD79<b_B8ovo8i+{Utn<i&g*zR@4h9j0i|d~;F;;GFcrlZSv2L=|>lutwH*bFZ GhY0{f;d`V2 delta 397 zcmX?fk9qxFX5Qtzyj%<n3=Cy;lhTDZ^5&djl-gW%W)d^ww#mE~vgB&nO87z25S+yU zp&1xz*izV2_$Pn7Aj~K;+55cQ<d8K29JO3ETr~_?GLsw6D^8BNXv8Qxx&NX(qwM65 zXVvUVY+-sC7;2c7F)}c$W`v29*uhu~4B1Q|c9D1uQ<egV1;Sa1lM^qASj8)WI3S!S zQp1#`2x5V7ia-?u149i%7AuGc!U&Z$tThbr%99f>i8888W;9cuJns^hx++Kw2p7qf z_=0E%P7y>lBTH%W`Ae#dLX*E<YM<PA*?>`f^QOy+jFX>TdBkY5`Q%j%rp*F3>bbbn z85tOgVn9UU<XMlTxQjr{R1lG}dH*917Vb0<I~YV1EEams#8|Oe_~lF{#@fkiU(aBi Kvf1s;A0_}%&tI<q diff --git a/python/ur_simple_control/managers.py b/python/ur_simple_control/managers.py index e09c5dc..f43ee36 100644 --- a/python/ur_simple_control/managers.py +++ b/python/ur_simple_control/managers.py @@ -1201,7 +1201,7 @@ class ProcessManager: self.encoder_decoder = DictPb2EncoderDecoder() self.msg_code = self.encoder_decoder.dictToMsgCode(init_command) # TODO: the name should be random and send over as function argument - shm_name = "client_socket" + shm_name = "client_socket" + str(np.random.randint(0, 1000)) # NOTE: size is max size of the recv buffer too, # and the everything blows up if you manage to fill it atm self.shm_msg = shared_memory.SharedMemory(shm_name, create=True, size=1024) diff --git a/python/ur_simple_control/networking/client.py b/python/ur_simple_control/networking/client.py index 4c3d219..2e23f47 100644 --- a/python/ur_simple_control/networking/client.py +++ b/python/ur_simple_control/networking/client.py @@ -59,7 +59,12 @@ def client(args, init_command, shm_name, lock): shm = shared_memory.SharedMemory(name=shm_name) host_addr = (args.host, args.port) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - s.connect(host_addr) + while True: + try: + s.connect(host_addr) + break + except ConnectionRefusedError: + time.sleep(0.005) if args.debug_prints: print("NETWORKING CLIENT: connected to server") diff --git a/python/ur_simple_control/networking/message_specs.proto b/python/ur_simple_control/networking/message_specs.proto index a0af620..2dbe216 100644 --- a/python/ur_simple_control/networking/message_specs.proto +++ b/python/ur_simple_control/networking/message_specs.proto @@ -9,8 +9,11 @@ message wrenches { repeated double wrench_estimate = 2; } -message robot_target { +message wrench { repeated double wrench = 1; } + +// NOTE: you better know in which frame this will be +message T_goal { repeated double position = 1; // 3 double - repeated double rotation = 2; // 3 double - repeated double velocity = 2; // 6 double + repeated double rotation = 2; // 4 double (quaternion) + repeated double velocity = 3; // 6 double ( } diff --git a/python/ur_simple_control/networking/message_specs_pb2.py b/python/ur_simple_control/networking/message_specs_pb2.py index 3d2d21d..01ac585 100644 --- a/python/ur_simple_control/networking/message_specs_pb2.py +++ b/python/ur_simple_control/networking/message_specs_pb2.py @@ -24,7 +24,7 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13message_specs.proto\"\x19\n\x0cjoint_angles\x12\t\n\x01q\x18\x01 \x03(\x01\"3\n\x08wrenches\x12\x0e\n\x06wrench\x18\x01 \x03(\x01\x12\x17\n\x0fwrench_estimate\x18\x02 \x03(\x01\x62\x08\x65\x64itionsp\xe8\x07') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13message_specs.proto\"\x19\n\x0cjoint_angles\x12\t\n\x01q\x18\x01 \x03(\x01\"3\n\x08wrenches\x12\x0e\n\x06wrench\x18\x01 \x03(\x01\x12\x17\n\x0fwrench_estimate\x18\x02 \x03(\x01\"\x18\n\x06wrench\x12\x0e\n\x06wrench\x18\x01 \x03(\x01\">\n\x06T_goal\x12\x10\n\x08position\x18\x01 \x03(\x01\x12\x10\n\x08rotation\x18\x02 \x03(\x01\x12\x10\n\x08velocity\x18\x03 \x03(\x01\x62\x08\x65\x64itionsp\xe8\x07') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -35,4 +35,8 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_JOINT_ANGLES']._serialized_end=48 _globals['_WRENCHES']._serialized_start=50 _globals['_WRENCHES']._serialized_end=101 + _globals['_WRENCH']._serialized_start=103 + _globals['_WRENCH']._serialized_end=127 + _globals['_T_GOAL']._serialized_start=129 + _globals['_T_GOAL']._serialized_end=191 # @@protoc_insertion_point(module_scope) diff --git a/python/ur_simple_control/networking/util.py b/python/ur_simple_control/networking/util.py index 909a3ba..a3b5e98 100644 --- a/python/ur_simple_control/networking/util.py +++ b/python/ur_simple_control/networking/util.py @@ -2,6 +2,7 @@ import ur_simple_control.networking.message_specs_pb2 as message_specs_pb2 from google.protobuf.internal.encoder import _VarintBytes from google.protobuf.internal.decoder import _DecodeVarint32 import numpy as np +import pinocchio as pin """ to make the data API uniform across the library (dictionaries), @@ -32,7 +33,13 @@ class DictPb2EncoderDecoder: def __init__(self): # TODO: fill this in with more messages # int_to_message = {0: message_specs_pb2.joint_angles, 6: message_specs_pb2.wrenches} - self.key_to_index = {"q": 0, "wrench": 1, "wrench_estimate": 2} + self.key_to_index = { + "q": 0, + "wrench": 1, + "wrench_estimate": 2, + "T_goal": 3, + "v": 4, + } # if you want to embed message codes into messages, # you'll need to use this # stupidest possible solution @@ -75,15 +82,27 @@ class DictPb2EncoderDecoder: pb2_msg = message_specs_pb2.joint_angles() # if i could go from string to class atribute somehow # that'd be amazing - # TODO: see if that's possible pb2_msg.q.extend(dict_msg["q"]) + if msg_code == 2: + pb2_msg = message_specs_pb2.wrench() + # if i could go from string to class atribute somehow + # that'd be amazing + pb2_msg.wrench.extend(dict_msg["wrench"]) if msg_code == 6: pb2_msg = message_specs_pb2.wrenches() # if i could go from string to class atribute somehow # that'd be amazing - # TODO: see if that's possible pb2_msg.wrench.extend(dict_msg["wrench"]) pb2_msg.wrench_estimate.extend(dict_msg["wrench_estimate"]) + if msg_code == 24: + pb2_msg = message_specs_pb2.T_goal() + # if i could go from string to class atribute somehow + # that'd be amazing + pb2_msg.position.extend(dict_msg["T_goal"].translation) + pb2_msg.rotation.extend( + pin.Quaternion(dict_msg["T_goal"].rotation).coeffs() + ) + pb2_msg.velocity.extend(dict_msg["v"]) # NOTE: possible extension: # prepend the message code as well so that i can send different @@ -135,6 +154,12 @@ class DictPb2EncoderDecoder: # that'd be amazing # TODO: see if that's possible dict_msg["q"] = np.array(pb2_msg.q) + if msg_code == 2: + pb2_msg = message_specs_pb2.wrench() + pb2_msg.ParseFromString(pb2_msg_in_bytes_cut) + # if i could go from string to class atribute somehow + # that'd be amazing + dict_msg["wrench"] = np.array(pb2_msg.wrench) if msg_code == 6: pb2_msg = message_specs_pb2.wrenches() pb2_msg.ParseFromString(pb2_msg_in_bytes_cut) @@ -143,5 +168,14 @@ class DictPb2EncoderDecoder: # TODO: see if that's possible dict_msg["wrench"] = np.array(pb2_msg.wrench) dict_msg["wrench_estimate"] = np.array(pb2_msg.wrench_estimate) + if msg_code == 24: + pb2_msg = message_specs_pb2.T_goal() + pb2_msg.ParseFromString(pb2_msg_in_bytes_cut) + # if i could go from string to class atribute somehow + # that'd be amazing + dict_msg["T_goal"] = pin.XYZQUATToSE3( + list(pb2_msg.position) + list(pb2_msg.rotation) + ) + dict_msg["v"] = np.array(pb2_msg.velocity) return dict_msg -- GitLab