From 5a1c1cbbb08d8c6baac2b55695b53eab0d4214fd Mon Sep 17 00:00:00 2001 From: Balthazar Squinabol Date: Wed, 22 May 2024 17:08:11 +0200 Subject: [PATCH] A --- bin/RedBallTracking | Bin 0 -> 40136 bytes bin/RobotServoing | Bin 0 -> 139112 bytes data/color_params_data.xml | 6 +- data/microsoft_livecam_hd3000.xml | 1501 +++++++++++++++-------------- include/DynamixelHandler.h | 88 ++ include/Kinematics.h | 20 + lib/DynamixelHandler.o | Bin 0 -> 87104 bytes lib/Kinematics.o | Bin 0 -> 192440 bytes lib/RedBallTracking.o | Bin 0 -> 40536 bytes lib/RobotServoing.o | Bin 0 -> 191304 bytes makefile | 15 +- src/DynamixelHandler.cpp | 407 ++++++++ src/Kinematics.cpp | 161 ++++ src/RobotServoing.cpp | 313 ++++++ 14 files changed, 1769 insertions(+), 742 deletions(-) create mode 100755 bin/RedBallTracking create mode 100755 bin/RobotServoing create mode 100644 include/DynamixelHandler.h create mode 100644 include/Kinematics.h create mode 100644 lib/DynamixelHandler.o create mode 100644 lib/Kinematics.o create mode 100644 lib/RedBallTracking.o create mode 100644 lib/RobotServoing.o create mode 100644 src/DynamixelHandler.cpp create mode 100644 src/Kinematics.cpp create mode 100644 src/RobotServoing.cpp diff --git a/bin/RedBallTracking b/bin/RedBallTracking new file mode 100755 index 0000000000000000000000000000000000000000..dec89bdae4a6a376a984427eecbe29cd76f0d199 GIT binary patch literal 40136 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 literal 0 HcmV?d00001 diff --git a/data/color_params_data.xml b/data/color_params_data.xml index 9f3780d..792fb88 100644 --- a/data/color_params_data.xml +++ b/data/color_params_data.xml @@ -2,8 +2,8 @@ 0 179 -0 -219 -0 +197 +255 +234 255 diff --git a/data/microsoft_livecam_hd3000.xml b/data/microsoft_livecam_hd3000.xml index e8350de..0d56bb5 100644 --- a/data/microsoft_livecam_hd3000.xml +++ b/data/microsoft_livecam_hd3000.xml @@ -1,6 +1,6 @@ -"Wed 22 May 2024 03:00:40 PM CEST" +"Wed 22 May 2024 04:54:36 PM CEST" 25 640 480 @@ -16,762 +16,787 @@ 3
d
- 7.8993822706219532e+02 0. 3.4307433743351515e+02 0. - 7.8993822706219532e+02 2.5183124505831350e+02 0. 0. 1. + 1.1077649478321432e+03 0. 3.0890303307899245e+02 0. + 1.1077649478321432e+03 2.5499716940693611e+02 0. 0. 1. 5 1
d
- 2.4323816926311218e-01 -2.2173817125645190e+00 0. 0. - -1.5527963181867324e+00
-2.1383939069153407e-01 + 5.2521339910822684e-01 -1.6388641320094351e+01 0. 0. + 1.6270593951921774e+02 +2.0369546499192046e-01 25 1
f
- 2.14562699e-01 2.25567997e-01 2.18658283e-01 2.10371181e-01 - 2.14004979e-01 2.17535660e-01 2.13526487e-01 2.16707796e-01 - 2.14099467e-01 2.12202191e-01 2.16103047e-01 2.14109659e-01 - 2.16201901e-01 2.12055907e-01 2.13706270e-01 2.12188125e-01 - 2.10541457e-01 2.12199345e-01 2.19241112e-01 2.11276889e-01 - 2.10527465e-01 2.05994576e-01 2.16049254e-01 2.09825218e-01 - 2.07806543e-01
+ 2.04096958e-01 2.04588413e-01 2.04566628e-01 2.00434029e-01 + 2.02196985e-01 2.04865456e-01 2.04160675e-01 2.03290731e-01 + 2.03406021e-01 2.02474698e-01 2.04816207e-01 2.05149025e-01 + 2.05067202e-01 2.01315403e-01 2.06973955e-01 2.03460947e-01 + 2.05040917e-01 2.00584963e-01 2.06237063e-01 1.99717492e-01 + 2.07947075e-01 2.01837957e-01 2.02554315e-01 2.00512454e-01 + 2.06806153e-01 25 6
d
- 4.4457377148017049e-02 1.9515810171716436e-01 3.0659451912653726e+00 - 9.5409914436789450e+01 7.0740027525784541e+01 4.3211433390939408e+02 - 4.3473882477083510e-02 1.9356802151001160e-01 3.0658028716639514e+00 - 9.5432070284080893e+01 7.0732049495452429e+01 4.3229086718124040e+02 - 4.4113149391398807e-02 1.9467574229283960e-01 3.0658044551528874e+00 - 9.5430061898051093e+01 7.0727318136313443e+01 4.3216146458215366e+02 - 4.3364147535960997e-02 1.9444833322440777e-01 3.0656084097944358e+00 - 9.5395941509449571e+01 7.0716456908933310e+01 4.3219868090302811e+02 - 4.4125737695082878e-02 1.9496836098004372e-01 3.0658177926862300e+00 - 9.5417745715510819e+01 7.0727867018951713e+01 4.3214676989549309e+02 - 4.3850008878086683e-02 1.9469045634223808e-01 3.0658262835728065e+00 - 9.5413761569536447e+01 7.0730532118321918e+01 4.3219267181425784e+02 - 4.4362281428889858e-02 1.9436932598892992e-01 3.0659096220181565e+00 - 9.5417735876691125e+01 7.0743082576472744e+01 4.3215902857631170e+02 - 4.4059648369912927e-02 1.9430028455631046e-01 3.0658193242331735e+00 - 9.5412785942831277e+01 7.0735290937672588e+01 4.3219646126526339e+02 - 4.3694909832977170e-02 1.9476639491568354e-01 3.0656915134360663e+00 - 9.5399519894217818e+01 7.0727049713407879e+01 4.3217748308300128e+02 - 4.3888381022132515e-02 1.9406165036830858e-01 3.0659193001754330e+00 - 9.5434112560123097e+01 7.0743040270289910e+01 4.3221039583165344e+02 - 4.4007156655840984e-02 1.9475004598709048e-01 3.0658425314346185e+00 - 9.5417517504698381e+01 7.0737567143755570e+01 4.3215849285433666e+02 - 4.3897964034785499e-02 1.9466516481270663e-01 3.0657163332611468e+00 - 9.5403751723308417e+01 7.0736040482121794e+01 4.3216679667364292e+02 - 4.4036551910894575e-02 1.9474981544627196e-01 3.0657362716641967e+00 - 9.5409107727273820e+01 7.0733213046725567e+01 4.3216656079347047e+02 - 4.4180139956754204e-02 1.9540506465981664e-01 3.0657502167587749e+00 - 9.5401313444947860e+01 7.0733313193597226e+01 4.3211297476278941e+02 - 4.4123133692393381e-02 1.9443336314578674e-01 3.0659615582000743e+00 - 9.5429035029122886e+01 7.0754387102145827e+01 4.3217404644155403e+02 - 4.4216618882677167e-02 1.9511351589934450e-01 3.0658104520012746e+00 - 9.5408815652083661e+01 7.0738048480183579e+01 4.3212187327271170e+02 - 4.4990219997402908e-02 1.9587540828723266e-01 3.0660669578006150e+00 - 9.5414104538449408e+01 7.0762027821339657e+01 4.3199584963995011e+02 - 4.4540496709769166e-02 1.9435716835860475e-01 3.0659739996912201e+00 - 9.5430849517358524e+01 7.0753616270168791e+01 4.3213197352482172e+02 - 4.4158082971078393e-02 1.9519317910248954e-01 3.0657346059431450e+00 - 9.5411920687831113e+01 7.0727636531236612e+01 4.3209116705197283e+02 - 4.4197862299608870e-02 1.9548671971423520e-01 3.0657617486796567e+00 - 9.5394734433990038e+01 7.0738286898563516e+01 4.3206515381433559e+02 - 4.4108574989957385e-02 1.9503725994255142e-01 3.0656599230756365e+00 - 9.5398772297025232e+01 7.0739869377168034e+01 4.3211560098225220e+02 - 4.2499037958835778e-02 1.9431566247447868e-01 3.0653430597833684e+00 - 9.5356498856151376e+01 7.0724740799513043e+01 4.3219909235002382e+02 - 4.4175031539729528e-02 1.9379709708972390e-01 3.0658586018403304e+00 - 9.5417056249504213e+01 7.0749490621114077e+01 4.3214905439427224e+02 - 4.4368540657318128e-02 1.9345173228824319e-01 3.0658852087399735e+00 - 9.5418945314616863e+01 7.0763740409225136e+01 4.3215835015917435e+02 - 4.4275792272702723e-02 1.9418803797353373e-01 3.0658067185359612e+00 - 9.5417570651294270e+01 7.0760089746686603e+01 4.3213891425899328e+02
+ 1.1433433691426721e-01 6.3923140612530543e-02 + -7.6580545561644254e-03 -8.9955491413423417e+01 + -6.8923334299279574e+01 6.0464345353362341e+02 + 1.1478553891916071e-01 6.2542327604923065e-02 + -7.6579299621846245e-03 -8.9957469790591901e+01 + -6.8923711789286429e+01 6.0456598591330294e+02 + 1.1466739253522236e-01 6.2925902253507277e-02 + -7.6632963186543147e-03 -8.9954398701705102e+01 + -6.8926235986349397e+01 6.0459964977977063e+02 + 1.1512594790251859e-01 6.3080290084903623e-02 + -7.7493501843512161e-03 -8.9971703091746420e+01 + -6.8911921868541071e+01 6.0459412123784841e+02 + 1.1489777922863575e-01 6.2378647680388227e-02 + -7.6924788909304900e-03 -8.9964710551530402e+01 + -6.8913442312290599e+01 6.0455156084047042e+02 + 1.1527140031488053e-01 6.2923178022243995e-02 + -7.7628099083801192e-03 -8.9977822530393823e+01 + -6.8907870636120904e+01 6.0456352720090081e+02 + 1.1492971136644914e-01 6.2279194627374745e-02 + -7.7049612977534111e-03 -8.9966485298089310e+01 + -6.8915171393929441e+01 6.0456235892108089e+02 + 1.1599968818963952e-01 6.3607561580773395e-02 + -7.7794569075228179e-03 -8.9976707373103778e+01 + -6.8897274169263440e+01 6.0458152943645757e+02 + 1.1533752520678787e-01 6.2067080769761633e-02 + -7.8829965473763454e-03 -8.9997163091575672e+01 + -6.8879051031701053e+01 6.0451869921892091e+02 + 1.1458837923180727e-01 6.2548201028193293e-02 + -7.4040220909134457e-03 -8.9914302780651525e+01 + -6.8941398130454857e+01 6.0462141338156061e+02 + 1.1593041910101949e-01 6.2973573421304954e-02 + -7.8733255209070888e-03 -8.9990517643633908e+01 + -6.8892824330723656e+01 6.0454864535479635e+02 + 1.1556859437778381e-01 6.2832611169332933e-02 + -7.5389476326519871e-03 -8.9933580922218411e+01 + -6.8928328811064929e+01 6.0459761516097785e+02 + 1.1476659865220531e-01 6.2331307561162008e-02 + -7.7860802364607962e-03 -8.9983184348968834e+01 + -6.8896678072489564e+01 6.0452586947144846e+02 + 1.1515397387165432e-01 6.3131604748741812e-02 + -7.7668742966287051e-03 -8.9970242314997378e+01 + -6.8908263209789510e+01 6.0460240749167815e+02 + 1.1618420286226326e-01 6.3354847778757495e-02 + -7.7044412681932916e-03 -8.9959274217318423e+01 + -6.8913525774584997e+01 6.0460188593692806e+02 + 1.1638749229314423e-01 6.2480648432458916e-02 + -7.6870072788619371e-03 -8.9957645646453514e+01 + -6.8909589736604460e+01 6.0451889247295560e+02 + 1.1618430593009489e-01 6.3711101351391616e-02 + -7.6849629162455942e-03 -8.9952587058696835e+01 + -6.8921212495873505e+01 6.0458325475502113e+02 + 1.1463719796619658e-01 6.5546059891201727e-02 + -7.0637516491862925e-03 -8.9823212470739762e+01 + -6.9044625318270363e+01 6.0480886011524672e+02 + 1.1594646487389894e-01 6.4288449619959123e-02 + -6.7327401131048121e-03 -8.9763281410364598e+01 + -6.9037873881540023e+01 6.0470696253474375e+02 + 1.1554898476968425e-01 6.3353735569654734e-02 + -7.0715005314110312e-03 -8.9839984179105471e+01 + -6.9018457567834048e+01 6.0463104852518302e+02 + 1.1592574789621540e-01 6.4480797853122662e-02 + -6.7825405177211933e-03 -8.9773523330726647e+01 + -6.9039968181690384e+01 6.0468197722776199e+02 + 1.1449286744251096e-01 6.3122642901614595e-02 + -6.7394337626695633e-03 -8.9781190699012825e+01 + -6.9034107904961971e+01 6.0465061490731034e+02 + 1.1639573126740974e-01 6.2864991913673021e-02 + -7.4162639784685052e-03 -8.9903033658097570e+01 + -6.8962430454195967e+01 6.0453814050547089e+02 + 1.1489822391618734e-01 6.1853217731551002e-02 + -7.0630514573148074e-03 -8.9840648085215847e+01 + -6.8997001657834332e+01 6.0455423765176465e+02 + 1.1614285667826021e-01 6.3688617583861185e-02 + -6.6482696174783732e-03 -8.9741818209042378e+01 + -6.9040772750585816e+01 6.0462353503416011e+02 25 54
"2f"
- 5.18373413e+02 3.81994781e+02 4.74257782e+02 3.84996124e+02 - 4.30500793e+02 3.87894440e+02 3.86102966e+02 3.90686646e+02 - 3.42398010e+02 3.93420288e+02 2.98931885e+02 3.96324493e+02 - 2.55042038e+02 3.99310883e+02 2.11791489e+02 4.02133484e+02 - 1.68629181e+02 4.04737030e+02 5.14496887e+02 3.37697449e+02 - 4.70374969e+02 3.40682495e+02 4.26695129e+02 3.43600769e+02 - 3.82819794e+02 3.46531036e+02 3.39584595e+02 3.49505219e+02 - 2.96432251e+02 3.52528778e+02 2.53299957e+02 3.55486877e+02 - 2.09715759e+02 3.58530792e+02 1.66849136e+02 3.61455353e+02 - 5.10124969e+02 2.93868988e+02 4.66661957e+02 2.96779999e+02 - 4.22762054e+02 2.99787933e+02 3.79714935e+02 3.02662354e+02 - 3.36803802e+02 3.05717926e+02 2.93729828e+02 3.08681427e+02 - 2.50814392e+02 3.11817169e+02 2.08138123e+02 3.14806427e+02 - 1.64743515e+02 3.17845490e+02 5.06199677e+02 2.50747757e+02 - 4.62851410e+02 2.53855499e+02 4.19417694e+02 2.56951447e+02 - 3.76540039e+02 2.59972992e+02 3.34027893e+02 2.62975464e+02 - 2.91246643e+02 2.65991577e+02 2.48387787e+02 2.69087006e+02 - 2.05603638e+02 2.72008820e+02 1.62757477e+02 2.75048553e+02 - 5.02447174e+02 2.08466873e+02 4.58848145e+02 2.11602631e+02 - 4.16250397e+02 2.14738785e+02 3.73553314e+02 2.17796494e+02 - 3.31342804e+02 2.20921906e+02 2.89001038e+02 2.23950516e+02 - 2.46087555e+02 2.26893539e+02 2.03662933e+02 2.29969604e+02 - 1.61440033e+02 2.32992737e+02 4.98261078e+02 1.66547821e+02 - 4.55421021e+02 1.69729858e+02 4.12896667e+02 1.73026031e+02 - 3.70485596e+02 1.76193481e+02 3.28465424e+02 1.79360489e+02 - 2.86442505e+02 1.82385391e+02 2.44286636e+02 1.85419983e+02 - 2.02225876e+02 1.88422897e+02 1.60184677e+02 1.91477310e+02 - 5.18420105e+02 3.82026031e+02 4.74368896e+02 3.85049866e+02 - 4.30537354e+02 3.87921021e+02 3.86154938e+02 3.90680847e+02 - 3.42499939e+02 3.93416138e+02 2.99044586e+02 3.96299591e+02 - 2.55192352e+02 3.99283020e+02 2.11878601e+02 4.02077332e+02 - 1.68754257e+02 4.04663086e+02 5.14541565e+02 3.37728760e+02 - 4.70416534e+02 3.40705963e+02 4.26746033e+02 3.43592590e+02 - 3.82913147e+02 3.46540161e+02 3.39638885e+02 3.49495728e+02 - 2.96459015e+02 3.52490875e+02 2.53354736e+02 3.55492218e+02 - 2.09761215e+02 3.58505341e+02 1.66956604e+02 3.61432159e+02 - 5.10138214e+02 2.93857971e+02 4.66674042e+02 2.96762329e+02 - 4.22774841e+02 2.99777710e+02 3.79734406e+02 3.02660919e+02 - 3.36861938e+02 3.05685852e+02 2.93740112e+02 3.08683258e+02 - 2.50851776e+02 3.11781799e+02 2.08177765e+02 3.14776672e+02 - 1.64741058e+02 3.17821167e+02 5.06175262e+02 2.50744827e+02 - 4.62807861e+02 2.53850845e+02 4.19392242e+02 2.56948456e+02 - 3.76522797e+02 2.59998627e+02 3.33998871e+02 2.63013306e+02 - 2.91240417e+02 2.65986420e+02 2.48374374e+02 2.69073151e+02 - 2.05632339e+02 2.71983063e+02 1.62785797e+02 2.75011902e+02 - 5.02380035e+02 2.08444168e+02 4.58759155e+02 2.11593658e+02 - 4.16192993e+02 2.14721924e+02 3.73509613e+02 2.17806000e+02 - 3.31329559e+02 2.20944382e+02 2.88902832e+02 2.23961731e+02 - 2.45983047e+02 2.26949066e+02 2.03630463e+02 2.29991562e+02 - 1.61411850e+02 2.33008148e+02 4.98006073e+02 1.66545120e+02 - 4.55343445e+02 1.69708084e+02 4.12773682e+02 1.73007950e+02 - 3.70437622e+02 1.76204712e+02 3.28375427e+02 1.79386856e+02 - 2.86373535e+02 1.82417679e+02 2.44151627e+02 1.85441498e+02 - 2.02063400e+02 1.88451706e+02 1.60053146e+02 1.91501953e+02 - 5.18436340e+02 3.82064697e+02 4.74361176e+02 3.85026215e+02 - 4.30542816e+02 3.87892883e+02 3.86144379e+02 3.90703613e+02 - 3.42495636e+02 3.93424866e+02 2.99006287e+02 3.96300659e+02 - 2.55169418e+02 3.99301697e+02 2.11833237e+02 4.02133667e+02 - 1.68742645e+02 4.04700684e+02 5.14559143e+02 3.37717743e+02 - 4.70417908e+02 3.40693542e+02 4.26754456e+02 3.43590942e+02 - 3.82915161e+02 3.46538757e+02 3.39650787e+02 3.49500946e+02 - 2.96448456e+02 3.52499329e+02 2.53306015e+02 3.55508972e+02 - 2.09735260e+02 3.58515167e+02 1.66942001e+02 3.61474426e+02 - 5.10183350e+02 2.93872345e+02 4.66681610e+02 2.96775940e+02 - 4.22801514e+02 2.99798004e+02 3.79732727e+02 3.02650970e+02 - 3.36851624e+02 3.05690155e+02 2.93768524e+02 3.08687012e+02 - 2.50857605e+02 3.11780457e+02 2.08157776e+02 3.14775696e+02 - 1.64712326e+02 3.17832977e+02 5.06191956e+02 2.50731979e+02 - 4.62852722e+02 2.53852432e+02 4.19423096e+02 2.56930878e+02 - 3.76538239e+02 2.59975220e+02 3.34059113e+02 2.62977539e+02 - 2.91283112e+02 2.65976013e+02 2.48370392e+02 2.69044708e+02 - 2.05636261e+02 2.72043396e+02 1.62817825e+02 2.75000641e+02 - 5.02423676e+02 2.08456406e+02 4.58798370e+02 2.11585678e+02 - 4.16204163e+02 2.14715363e+02 3.73532684e+02 2.17804138e+02 - 3.31326263e+02 2.20929214e+02 2.88950226e+02 2.23966385e+02 - 2.46011429e+02 2.26892410e+02 2.03643982e+02 2.29980820e+02 - 1.61409363e+02 2.32996384e+02 4.98160339e+02 1.66543198e+02 - 4.55370697e+02 1.69722336e+02 4.12809906e+02 1.72996887e+02 - 3.70449585e+02 1.76208130e+02 3.28415619e+02 1.79380875e+02 - 2.86402008e+02 1.82401779e+02 2.44205856e+02 1.85438797e+02 - 2.02135269e+02 1.88455017e+02 1.60175171e+02 1.91499893e+02 - 5.18369080e+02 3.81953308e+02 4.74254517e+02 3.84996002e+02 - 4.30493378e+02 3.87887054e+02 3.86079468e+02 3.90717651e+02 - 3.42395721e+02 3.93458374e+02 2.98920746e+02 3.96364136e+02 - 2.55090668e+02 3.99357391e+02 2.11757126e+02 4.02233887e+02 - 1.68632889e+02 4.04779846e+02 5.14465210e+02 3.37686005e+02 - 4.70346527e+02 3.40683929e+02 4.26637207e+02 3.43584717e+02 - 3.82804688e+02 3.46532043e+02 3.39536560e+02 3.49504669e+02 - 2.96410889e+02 3.52525146e+02 2.53239059e+02 3.55533752e+02 - 2.09686249e+02 3.58547913e+02 1.66827484e+02 3.61476807e+02 - 5.10024078e+02 2.93829651e+02 4.66617035e+02 2.96736908e+02 - 4.22673950e+02 2.99763275e+02 3.79683197e+02 3.02651855e+02 - 3.36693848e+02 3.05702789e+02 2.93676300e+02 3.08702209e+02 - 2.50737869e+02 3.11843719e+02 2.08001892e+02 3.14884888e+02 - 1.64648285e+02 3.17916504e+02 5.06105469e+02 2.50714462e+02 - 4.62709808e+02 2.53819763e+02 4.19363495e+02 2.56931824e+02 - 3.76486511e+02 2.59946442e+02 3.33893585e+02 2.63033600e+02 - 2.91115479e+02 2.66014313e+02 2.48313339e+02 2.69123505e+02 - 2.05556961e+02 2.72073822e+02 1.62631378e+02 2.75087219e+02 - 5.02329559e+02 2.08422668e+02 4.58703308e+02 2.11582748e+02 - 4.16110382e+02 2.14721939e+02 3.73470764e+02 2.17805664e+02 - 3.31232056e+02 2.20926666e+02 2.88786285e+02 2.23988693e+02 - 2.45899887e+02 2.26931778e+02 2.03570663e+02 2.30049072e+02 - 1.61371994e+02 2.33045425e+02 4.97975067e+02 1.66536621e+02 - 4.55324341e+02 1.69702286e+02 4.12767090e+02 1.72977890e+02 - 3.70415588e+02 1.76195969e+02 3.28351318e+02 1.79388855e+02 - 2.86347504e+02 1.82393509e+02 2.44105316e+02 1.85446625e+02 - 2.02028641e+02 1.88459534e+02 1.59951721e+02 1.91512253e+02 - 5.18405518e+02 3.81976624e+02 4.74300629e+02 3.85009460e+02 - 4.30511810e+02 3.87871704e+02 3.86113953e+02 3.90680817e+02 - 3.42403717e+02 3.93435303e+02 2.98945801e+02 3.96349121e+02 - 2.55122604e+02 3.99313660e+02 2.11835098e+02 4.02162933e+02 - 1.68673340e+02 4.04740875e+02 5.14505188e+02 3.37714203e+02 - 4.70391876e+02 3.40692963e+02 4.26707916e+02 3.43594269e+02 - 3.82850372e+02 3.46545105e+02 3.39585785e+02 3.49494934e+02 - 2.96446228e+02 3.52524811e+02 2.53293182e+02 3.55511108e+02 - 2.09730255e+02 3.58525421e+02 1.66900391e+02 3.61460175e+02 - 5.10146820e+02 2.93839111e+02 4.66657623e+02 2.96771179e+02 - 4.22762421e+02 2.99784088e+02 3.79718018e+02 3.02644958e+02 - 3.36809784e+02 3.05691681e+02 2.93722687e+02 3.08702332e+02 - 2.50823441e+02 3.11802277e+02 2.08110840e+02 3.14808655e+02 - 1.64717133e+02 3.17854218e+02 5.06185852e+02 2.50734741e+02 - 4.62844971e+02 2.53828812e+02 4.19413055e+02 2.56921326e+02 - 3.76520691e+02 2.59956573e+02 3.34025604e+02 2.62984161e+02 - 2.91254242e+02 2.65959259e+02 2.48374680e+02 2.69076019e+02 - 2.05635666e+02 2.72022949e+02 1.62736389e+02 2.75042328e+02 - 5.02413788e+02 2.08441574e+02 4.58813477e+02 2.11603226e+02 - 4.16225891e+02 2.14730011e+02 3.73529388e+02 2.17810318e+02 - 3.31330261e+02 2.20898819e+02 2.88971588e+02 2.23929810e+02 - 2.46037613e+02 2.26915741e+02 2.03644669e+02 2.29961914e+02 - 1.61410965e+02 2.33000076e+02 4.98174774e+02 1.66541122e+02 - 4.55383636e+02 1.69734283e+02 4.12827209e+02 1.73007919e+02 - 3.70460754e+02 1.76203949e+02 3.28445160e+02 1.79388260e+02 - 2.86395569e+02 1.82390549e+02 2.44240417e+02 1.85437500e+02 - 2.02150803e+02 1.88435364e+02 1.60172058e+02 1.91491760e+02 - 5.18384521e+02 3.81968994e+02 4.74310059e+02 3.84995148e+02 - 4.30506836e+02 3.87856720e+02 3.86114777e+02 3.90660309e+02 - 3.42417358e+02 3.93449951e+02 2.98950073e+02 3.96317566e+02 - 2.55127045e+02 3.99312439e+02 2.11817215e+02 4.02102783e+02 - 1.68677139e+02 4.04732941e+02 5.14506409e+02 3.37695435e+02 - 4.70386719e+02 3.40687561e+02 4.26682709e+02 3.43583954e+02 - 3.82850739e+02 3.46525574e+02 3.39577637e+02 3.49507965e+02 - 2.96436584e+02 3.52506744e+02 2.53283478e+02 3.55510254e+02 - 2.09722855e+02 3.58509125e+02 1.66882904e+02 3.61465698e+02 - 5.10114502e+02 2.93869598e+02 4.66650543e+02 2.96769135e+02 - 4.22739258e+02 2.99776215e+02 3.79726044e+02 3.02652283e+02 - 3.36790039e+02 3.05691620e+02 2.93717621e+02 3.08685974e+02 - 2.50800766e+02 3.11817291e+02 2.08141541e+02 3.14766174e+02 - 1.64706772e+02 3.17837097e+02 5.06148193e+02 2.50746796e+02 - 4.62817535e+02 2.53861069e+02 4.19393921e+02 2.56939972e+02 - 3.76515045e+02 2.59956238e+02 3.33996460e+02 2.62971436e+02 - 2.91212006e+02 2.66001404e+02 2.48371155e+02 2.69089020e+02 - 2.05605515e+02 2.71994598e+02 1.62710281e+02 2.75047729e+02 - 5.02413300e+02 2.08436401e+02 4.58781403e+02 2.11596222e+02 - 4.16198120e+02 2.14737198e+02 3.73532532e+02 2.17825974e+02 - 3.31311523e+02 2.20939911e+02 2.88932800e+02 2.23978317e+02 - 2.45977600e+02 2.26895493e+02 2.03630707e+02 2.30007996e+02 - 1.61405792e+02 2.33041962e+02 4.98159210e+02 1.66548676e+02 - 4.55379425e+02 1.69727524e+02 4.12820068e+02 1.73038742e+02 - 3.70448578e+02 1.76198563e+02 3.28421753e+02 1.79384048e+02 - 2.86401642e+02 1.82393890e+02 2.44226196e+02 1.85423035e+02 - 2.02113449e+02 1.88432083e+02 1.60142822e+02 1.91479263e+02 - 5.18409668e+02 3.82015442e+02 4.74296417e+02 3.84999481e+02 - 4.30526978e+02 3.87896210e+02 3.86117828e+02 3.90725555e+02 - 3.42429840e+02 3.93436035e+02 2.98922638e+02 3.96369019e+02 - 2.55137680e+02 3.99337158e+02 2.11804825e+02 4.02118805e+02 - 1.68723007e+02 4.04708740e+02 5.14519348e+02 3.37728943e+02 - 4.70401154e+02 3.40696106e+02 4.26700104e+02 3.43596375e+02 - 3.82873962e+02 3.46546082e+02 3.39593903e+02 3.49506836e+02 - 2.96441772e+02 3.52529205e+02 2.53297775e+02 3.55506653e+02 - 2.09731522e+02 3.58515594e+02 1.66916412e+02 3.61447540e+02 - 5.10139771e+02 2.93874664e+02 4.66669861e+02 2.96788422e+02 - 4.22756531e+02 2.99802338e+02 3.79721924e+02 3.02670013e+02 - 3.36818604e+02 3.05688995e+02 2.93738983e+02 3.08697662e+02 - 2.50817978e+02 3.11791565e+02 2.08154541e+02 3.14798157e+02 - 1.64734650e+02 3.17837982e+02 5.06182159e+02 2.50757904e+02 - 4.62862946e+02 2.53862976e+02 4.19430634e+02 2.56938599e+02 - 3.76539398e+02 2.59973419e+02 3.34020294e+02 2.63023468e+02 - 2.91283539e+02 2.66005585e+02 2.48378418e+02 2.69096588e+02 - 2.05625412e+02 2.72025940e+02 1.62753769e+02 2.75064056e+02 - 5.02424652e+02 2.08449753e+02 4.58828613e+02 2.11609314e+02 - 4.16235260e+02 2.14725647e+02 3.73532013e+02 2.17822403e+02 - 3.31334686e+02 2.20922333e+02 2.88994415e+02 2.23957474e+02 - 2.46030365e+02 2.26910583e+02 2.03646454e+02 2.30006577e+02 - 1.61437820e+02 2.32989014e+02 4.98239136e+02 1.66554031e+02 - 4.55398834e+02 1.69739517e+02 4.12847412e+02 1.73041672e+02 - 3.70471863e+02 1.76213715e+02 3.28433594e+02 1.79395020e+02 - 2.86419189e+02 1.82391357e+02 2.44248627e+02 1.85439438e+02 - 2.02165222e+02 1.88429779e+02 1.60137558e+02 1.91485428e+02 - 5.18389954e+02 3.82030548e+02 4.74328857e+02 3.85015717e+02 - 4.30532593e+02 3.87868347e+02 3.86102325e+02 3.90678558e+02 - 3.42419556e+02 3.93441589e+02 2.98948029e+02 3.96316742e+02 - 2.55120041e+02 3.99335449e+02 2.11851929e+02 4.02148712e+02 - 1.68710220e+02 4.04739380e+02 5.14502441e+02 3.37709991e+02 - 4.70388062e+02 3.40697113e+02 4.26682159e+02 3.43582825e+02 - 3.82827301e+02 3.46537292e+02 3.39582458e+02 3.49506256e+02 - 2.96430542e+02 3.52515381e+02 2.53294205e+02 3.55504944e+02 - 2.09703186e+02 3.58510498e+02 1.66914185e+02 3.61457428e+02 - 5.10112610e+02 2.93855560e+02 4.66649139e+02 2.96785156e+02 - 4.22748932e+02 2.99798187e+02 3.79704803e+02 3.02652313e+02 - 3.36798981e+02 3.05699860e+02 2.93720581e+02 3.08693115e+02 - 2.50823425e+02 3.11822906e+02 2.08137527e+02 3.14803284e+02 - 1.64703232e+02 3.17842834e+02 5.06162292e+02 2.50764328e+02 - 4.62804718e+02 2.53866104e+02 4.19392029e+02 2.56962555e+02 - 3.76516449e+02 2.59985901e+02 3.33977081e+02 2.63024994e+02 - 2.91245483e+02 2.65982697e+02 2.48366379e+02 2.69094330e+02 - 2.05593979e+02 2.72014984e+02 1.62742813e+02 2.75058289e+02 - 5.02397583e+02 2.08438400e+02 4.58782471e+02 2.11599228e+02 - 4.16188477e+02 2.14723709e+02 3.73523895e+02 2.17822708e+02 - 3.31307220e+02 2.20933701e+02 2.88913910e+02 2.24003082e+02 - 2.45966049e+02 2.26924438e+02 2.03627975e+02 2.29985016e+02 - 1.61391846e+02 2.33024826e+02 4.98116241e+02 1.66531693e+02 - 4.55368561e+02 1.69733765e+02 4.12806763e+02 1.73029327e+02 - 3.70447723e+02 1.76214798e+02 3.28411316e+02 1.79382095e+02 - 2.86405518e+02 1.82402908e+02 2.44208099e+02 1.85446213e+02 - 2.02110718e+02 1.88437042e+02 1.60123215e+02 1.91503098e+02 - 5.18381226e+02 3.81970184e+02 4.74289764e+02 3.84962036e+02 - 4.30496979e+02 3.87905701e+02 3.86060883e+02 3.90728882e+02 - 3.42394043e+02 3.93457153e+02 2.98911224e+02 3.96353424e+02 - 2.55085541e+02 3.99367950e+02 2.11813736e+02 4.02171997e+02 - 1.68639725e+02 4.04797394e+02 5.14469055e+02 3.37707825e+02 - 4.70367950e+02 3.40698486e+02 4.26664948e+02 3.43590607e+02 - 3.82824493e+02 3.46539490e+02 3.39550659e+02 3.49512512e+02 - 2.96417542e+02 3.52539551e+02 2.53241394e+02 3.55538788e+02 - 2.09701843e+02 3.58538239e+02 1.66841888e+02 3.61473572e+02 - 5.10043549e+02 2.93864655e+02 4.66617889e+02 2.96768463e+02 - 4.22690521e+02 2.99801300e+02 3.79681580e+02 3.02656952e+02 - 3.36741486e+02 3.05717377e+02 2.93678436e+02 3.08721527e+02 - 2.50769836e+02 3.11832764e+02 2.08041199e+02 3.14852661e+02 - 1.64640533e+02 3.17903748e+02 5.06127045e+02 2.50718094e+02 - 4.62739502e+02 2.53840775e+02 4.19371918e+02 2.56928223e+02 - 3.76494781e+02 2.60029449e+02 3.33942749e+02 2.63027740e+02 - 2.91149292e+02 2.65996124e+02 2.48323853e+02 2.69103882e+02 - 2.05575241e+02 2.72051300e+02 1.62664413e+02 2.75103180e+02 - 5.02360016e+02 2.08442184e+02 4.58722870e+02 2.11581726e+02 - 4.16141846e+02 2.14720764e+02 3.73490479e+02 2.17817474e+02 - 3.31275604e+02 2.20947678e+02 2.88851685e+02 2.24006088e+02 - 2.45906967e+02 2.26953018e+02 2.03606247e+02 2.30022171e+02 - 1.61396851e+02 2.33021362e+02 4.98050385e+02 1.66547684e+02 - 4.55347046e+02 1.69721085e+02 4.12795258e+02 1.73014084e+02 - 3.70420898e+02 1.76215149e+02 3.28382385e+02 1.79388153e+02 - 2.86370575e+02 1.82402634e+02 2.44164047e+02 1.85448166e+02 - 2.02093430e+02 1.88460678e+02 1.60044922e+02 1.91505020e+02 - 5.18415283e+02 3.82021820e+02 4.74372284e+02 3.85040009e+02 - 4.30543762e+02 3.87902435e+02 3.86151703e+02 3.90675568e+02 - 3.42447540e+02 3.93448334e+02 2.98988892e+02 3.96333740e+02 - 2.55203308e+02 3.99326538e+02 2.11850830e+02 4.02127960e+02 - 1.68738693e+02 4.04704620e+02 5.14546204e+02 3.37723022e+02 - 4.70414734e+02 3.40707458e+02 4.26750488e+02 3.43593597e+02 - 3.82900482e+02 3.46544250e+02 3.39619507e+02 3.49496765e+02 - 2.96455841e+02 3.52502808e+02 2.53320068e+02 3.55513702e+02 - 2.09757202e+02 3.58513733e+02 1.66906738e+02 3.61448547e+02 - 5.10153442e+02 2.93896393e+02 4.66678101e+02 2.96804260e+02 - 4.22796356e+02 2.99787292e+02 3.79737305e+02 3.02655212e+02 - 3.36873932e+02 3.05710358e+02 2.93772156e+02 3.08697845e+02 - 2.50868546e+02 3.11819275e+02 2.08179138e+02 3.14771667e+02 - 1.64778946e+02 3.17814728e+02 5.06199615e+02 2.50737106e+02 - 4.62870911e+02 2.53863342e+02 4.19430542e+02 2.56957550e+02 - 3.76539673e+02 2.59992065e+02 3.34069397e+02 2.62951111e+02 - 2.91300568e+02 2.66007538e+02 2.48394836e+02 2.69071320e+02 - 2.05640060e+02 2.72039795e+02 1.62818741e+02 2.74977539e+02 - 5.02432678e+02 2.08459030e+02 4.58851898e+02 2.11594574e+02 - 4.16235992e+02 2.14724762e+02 3.73549042e+02 2.17812988e+02 - 3.31335327e+02 2.20962585e+02 2.89002258e+02 2.23953796e+02 - 2.46052795e+02 2.26885895e+02 2.03669815e+02 2.29972305e+02 - 1.61421570e+02 2.32979263e+02 4.98203094e+02 1.66552094e+02 - 4.55403961e+02 1.69745407e+02 4.12842590e+02 1.73009857e+02 - 3.70468475e+02 1.76204437e+02 3.28425232e+02 1.79382385e+02 - 2.86408600e+02 1.82390091e+02 2.44253998e+02 1.85450668e+02 - 2.02148697e+02 1.88432220e+02 1.60141083e+02 1.91474976e+02 - 5.18414307e+02 3.82051086e+02 4.74323700e+02 3.85069794e+02 - 4.30527344e+02 3.87910767e+02 3.86102051e+02 3.90699768e+02 - 3.42473389e+02 3.93442169e+02 2.98958862e+02 3.96334381e+02 - 2.55130875e+02 3.99375031e+02 2.11825546e+02 4.02173431e+02 - 1.68699860e+02 4.04732391e+02 5.14519165e+02 3.37710571e+02 - 4.70393158e+02 3.40713440e+02 4.26714020e+02 3.43592773e+02 - 3.82853882e+02 3.46544006e+02 3.39598053e+02 3.49498718e+02 - 2.96443542e+02 3.52504486e+02 2.53307220e+02 3.55527588e+02 - 2.09726440e+02 3.58510742e+02 1.66876297e+02 3.61445160e+02 - 5.10132935e+02 2.93888855e+02 4.66666626e+02 2.96785706e+02 - 4.22760925e+02 2.99811768e+02 3.79714722e+02 3.02662170e+02 - 3.36839935e+02 3.05712158e+02 2.93733948e+02 3.08730743e+02 - 2.50833160e+02 3.11807831e+02 2.08129410e+02 3.14795593e+02 - 1.64701553e+02 3.17855927e+02 5.06176392e+02 2.50740005e+02 - 4.62820343e+02 2.53868256e+02 4.19413391e+02 2.56948547e+02 - 3.76526031e+02 2.59989136e+02 3.33996918e+02 2.62990845e+02 - 2.91242737e+02 2.66002197e+02 2.48383331e+02 2.69073944e+02 - 2.05591690e+02 2.72045105e+02 1.62747253e+02 2.75006287e+02 - 5.02399231e+02 2.08443680e+02 4.58782318e+02 2.11592911e+02 - 4.16211731e+02 2.14724762e+02 3.73534973e+02 2.17815262e+02 - 3.31317383e+02 2.20902618e+02 2.88936310e+02 2.23993637e+02 - 2.45977142e+02 2.26913940e+02 2.03649353e+02 2.30005783e+02 - 1.61426437e+02 2.33001251e+02 4.98130280e+02 1.66554565e+02 - 4.55383057e+02 1.69721786e+02 4.12846558e+02 1.73034775e+02 - 3.70443939e+02 1.76207443e+02 3.28432495e+02 1.79388641e+02 - 2.86407043e+02 1.82396347e+02 2.44214890e+02 1.85427414e+02 - 2.02156815e+02 1.88450897e+02 1.60153702e+02 1.91475281e+02 - 5.18391541e+02 3.82069550e+02 4.74286652e+02 3.85034149e+02 - 4.30517639e+02 3.87901855e+02 3.86105225e+02 3.90739349e+02 - 3.42419037e+02 3.93468597e+02 2.98929565e+02 3.96389069e+02 - 2.55140671e+02 3.99365387e+02 2.11791245e+02 4.02212097e+02 - 1.68620270e+02 4.04758118e+02 5.14505249e+02 3.37730621e+02 - 4.70380920e+02 3.40689117e+02 4.26679230e+02 3.43588501e+02 - 3.82835907e+02 3.46551544e+02 3.39570923e+02 3.49511139e+02 - 2.96427521e+02 3.52527069e+02 2.53259659e+02 3.55524963e+02 - 2.09739090e+02 3.58563873e+02 1.66837173e+02 3.61487762e+02 - 5.10044067e+02 2.93899841e+02 4.66629517e+02 2.96775330e+02 - 4.22703827e+02 2.99782318e+02 3.79693329e+02 3.02675232e+02 - 3.36744965e+02 3.05724091e+02 2.93705353e+02 3.08739319e+02 - 2.50770828e+02 3.11851837e+02 2.08074768e+02 3.14828156e+02 - 1.64699875e+02 3.17931732e+02 5.06119934e+02 2.50747955e+02 - 4.62755707e+02 2.53868332e+02 4.19368317e+02 2.56957397e+02 - 3.76499817e+02 2.60008392e+02 3.33932770e+02 2.63045288e+02 - 2.91178986e+02 2.66035645e+02 2.48334274e+02 2.69107635e+02 - 2.05589066e+02 2.72082581e+02 1.62693268e+02 2.75082306e+02 - 5.02356171e+02 2.08448441e+02 4.58754395e+02 2.11597275e+02 - 4.16171417e+02 2.14745422e+02 3.73490997e+02 2.17820389e+02 - 3.31301178e+02 2.20974686e+02 2.88853027e+02 2.24036621e+02 - 2.45930618e+02 2.26956604e+02 2.03587143e+02 2.30040344e+02 - 1.61401215e+02 2.33025650e+02 4.98065704e+02 1.66555878e+02 - 4.55350372e+02 1.69723923e+02 4.12794952e+02 1.73008057e+02 - 3.70432281e+02 1.76215088e+02 3.28403137e+02 1.79387939e+02 - 2.86375275e+02 1.82394424e+02 2.44144440e+02 1.85444016e+02 - 2.02107330e+02 1.88495621e+02 1.60077820e+02 1.91523361e+02 - 5.18402649e+02 3.82044617e+02 4.74294891e+02 3.85027252e+02 - 4.30513916e+02 3.87885498e+02 3.86109131e+02 3.90724426e+02 - 3.42407227e+02 3.93447998e+02 2.98920105e+02 3.96340027e+02 - 2.55111816e+02 3.99357666e+02 2.11813736e+02 4.02189606e+02 - 1.68707138e+02 4.04748352e+02 5.14524597e+02 3.37714020e+02 - 4.70393677e+02 3.40695007e+02 4.26708771e+02 3.43597534e+02 - 3.82847015e+02 3.46537598e+02 3.39575592e+02 3.49499237e+02 - 2.96425171e+02 3.52516846e+02 2.53288147e+02 3.55521515e+02 - 2.09717697e+02 3.58524353e+02 1.66910187e+02 3.61463379e+02 - 5.10108368e+02 2.93851990e+02 4.66637329e+02 2.96785095e+02 - 4.22728912e+02 2.99819397e+02 3.79703796e+02 3.02659729e+02 - 3.36773407e+02 3.05706329e+02 2.93719208e+02 3.08688080e+02 - 2.50784546e+02 3.11842834e+02 2.08086746e+02 3.14824097e+02 - 1.64686569e+02 3.17891998e+02 5.06152985e+02 2.50742905e+02 - 4.62789825e+02 2.53852615e+02 4.19398712e+02 2.56958771e+02 - 3.76505981e+02 2.59998199e+02 3.33982758e+02 2.63019379e+02 - 2.91209198e+02 2.66034607e+02 2.48346054e+02 2.69100006e+02 - 2.05578262e+02 2.72006683e+02 1.62714340e+02 2.75095703e+02 - 5.02382629e+02 2.08455673e+02 4.58746765e+02 2.11598587e+02 - 4.16172241e+02 2.14746033e+02 3.73507843e+02 2.17828995e+02 - 3.31301147e+02 2.20972000e+02 2.88911194e+02 2.24028000e+02 - 2.45942139e+02 2.26959274e+02 2.03618927e+02 2.30029678e+02 - 1.61389587e+02 2.33064194e+02 4.98079559e+02 1.66556015e+02 - 4.55359009e+02 1.69743805e+02 4.12804718e+02 1.73046402e+02 - 3.70441833e+02 1.76222351e+02 3.28399567e+02 1.79386871e+02 - 2.86371216e+02 1.82413513e+02 2.44165619e+02 1.85440277e+02 - 2.02125931e+02 1.88470139e+02 1.60081589e+02 1.91504135e+02 - 5.18363831e+02 3.81961792e+02 4.74277222e+02 3.85034882e+02 - 4.30505249e+02 3.87902130e+02 3.86072266e+02 3.90715424e+02 - 3.42383850e+02 3.93461914e+02 2.98899506e+02 3.96370605e+02 - 2.55089600e+02 3.99367126e+02 2.11773071e+02 4.02197937e+02 - 1.68610977e+02 4.04755371e+02 5.14502258e+02 3.37701752e+02 - 4.70379944e+02 3.40691315e+02 4.26674072e+02 3.43591522e+02 - 3.82830963e+02 3.46556396e+02 3.39549316e+02 3.49520142e+02 - 2.96416931e+02 3.52524750e+02 2.53262939e+02 3.55527405e+02 - 2.09695145e+02 3.58546417e+02 1.66861618e+02 3.61477356e+02 - 5.10091553e+02 2.93861053e+02 4.66631226e+02 2.96777313e+02 - 4.22721527e+02 2.99804382e+02 3.79701996e+02 3.02650848e+02 - 3.36750793e+02 3.05706146e+02 2.93702148e+02 3.08724884e+02 - 2.50775269e+02 3.11841400e+02 2.08087708e+02 3.14854889e+02 - 1.64669815e+02 3.17908386e+02 5.06149994e+02 2.50757446e+02 - 4.62794403e+02 2.53864487e+02 4.19402069e+02 2.56964935e+02 - 3.76509064e+02 2.59976807e+02 3.33973907e+02 2.63045166e+02 - 2.91198914e+02 2.66021149e+02 2.48357513e+02 2.69092194e+02 - 2.05583252e+02 2.72067413e+02 1.62696930e+02 2.75078247e+02 - 5.02394653e+02 2.08452362e+02 4.58782928e+02 2.11590393e+02 - 4.16191193e+02 2.14747910e+02 3.73516907e+02 2.17833176e+02 - 3.31299561e+02 2.20942291e+02 2.88893158e+02 2.24011185e+02 - 2.45955566e+02 2.26945847e+02 2.03618729e+02 2.30019333e+02 - 1.61413483e+02 2.33028687e+02 4.98153015e+02 1.66567719e+02 - 4.55375793e+02 1.69742188e+02 4.12821472e+02 1.73032913e+02 - 3.70447174e+02 1.76232330e+02 3.28419739e+02 1.79390625e+02 - 2.86395325e+02 1.82411560e+02 2.44210495e+02 1.85454361e+02 - 2.02104614e+02 1.88458923e+02 1.60144821e+02 1.91521133e+02 - 5.18418579e+02 3.82064972e+02 4.74335266e+02 3.85060150e+02 - 4.30522614e+02 3.87919952e+02 3.86130676e+02 3.90713135e+02 - 3.42474335e+02 3.93442505e+02 2.98976959e+02 3.96330444e+02 - 2.55132004e+02 3.99273315e+02 2.11843231e+02 4.02116791e+02 - 1.68701370e+02 4.04724274e+02 5.14537903e+02 3.37757294e+02 - 4.70410004e+02 3.40717041e+02 4.26747711e+02 3.43591522e+02 - 3.82906464e+02 3.46545105e+02 3.39648956e+02 3.49501160e+02 - 2.96459503e+02 3.52525391e+02 2.53308517e+02 3.55521759e+02 - 2.09752823e+02 3.58517120e+02 1.66888123e+02 3.61428986e+02 - 5.10190399e+02 2.93957764e+02 4.66707794e+02 2.96812012e+02 - 4.22794312e+02 2.99812653e+02 3.79736786e+02 3.02670776e+02 - 3.36888306e+02 3.05704590e+02 2.93769012e+02 3.08701630e+02 - 2.50864243e+02 3.11797821e+02 2.08161758e+02 3.14788940e+02 - 1.64730789e+02 3.17845001e+02 5.06193665e+02 2.50763550e+02 - 4.62907104e+02 2.53878708e+02 4.19442108e+02 2.56989410e+02 - 3.76529480e+02 2.60055145e+02 3.34067230e+02 2.63030212e+02 - 2.91316772e+02 2.65972260e+02 2.48399277e+02 2.69098602e+02 - 2.05653030e+02 2.72046722e+02 1.62847549e+02 2.75023743e+02 - 5.02444672e+02 2.08472656e+02 4.58866150e+02 2.11617081e+02 - 4.16249603e+02 2.14741211e+02 3.73562347e+02 2.17824265e+02 - 3.31353333e+02 2.20963150e+02 2.89037994e+02 2.24006271e+02 - 2.46061661e+02 2.26925751e+02 2.03645752e+02 2.30027527e+02 - 1.61437500e+02 2.32981750e+02 4.98220947e+02 1.66554504e+02 - 4.55393066e+02 1.69730804e+02 4.12866364e+02 1.73034790e+02 - 3.70467987e+02 1.76241440e+02 3.28444305e+02 1.79397446e+02 - 2.86428619e+02 1.82410416e+02 2.44242432e+02 1.85444992e+02 - 2.02167816e+02 1.88446823e+02 1.60151566e+02 1.91487595e+02 - 5.18407288e+02 3.82039886e+02 4.74293854e+02 3.85045135e+02 - 4.30500061e+02 3.87905518e+02 3.86098297e+02 3.90725616e+02 - 3.42411560e+02 3.93444489e+02 2.98938690e+02 3.96364227e+02 - 2.55098541e+02 3.99370331e+02 2.11808517e+02 4.02184113e+02 - 1.68666122e+02 4.04748871e+02 5.14513733e+02 3.37706116e+02 - 4.70372406e+02 3.40697052e+02 4.26708069e+02 3.43589417e+02 - 3.82850342e+02 3.46534515e+02 3.39565918e+02 3.49498871e+02 - 2.96435211e+02 3.52524414e+02 2.53284943e+02 3.55519501e+02 - 2.09712280e+02 3.58550476e+02 1.66862671e+02 3.61463104e+02 - 5.10125549e+02 2.93880798e+02 4.66650085e+02 2.96755585e+02 - 4.22735565e+02 2.99801086e+02 3.79697357e+02 3.02683075e+02 - 3.36788391e+02 3.05712982e+02 2.93718994e+02 3.08703644e+02 - 2.50795532e+02 3.11802765e+02 2.08080887e+02 3.14829315e+02 - 1.64690933e+02 3.17893341e+02 5.06165771e+02 2.50742172e+02 - 4.62790192e+02 2.53865799e+02 4.19391327e+02 2.56960602e+02 - 3.76511749e+02 2.60016327e+02 3.34012665e+02 2.63002167e+02 - 2.91242249e+02 2.66014648e+02 2.48375595e+02 2.69104858e+02 - 2.05586838e+02 2.72051453e+02 1.62704041e+02 2.75054901e+02 - 5.02412354e+02 2.08452530e+02 4.58809662e+02 2.11597656e+02 - 4.16205841e+02 2.14736115e+02 3.73527252e+02 2.17839157e+02 - 3.31318329e+02 2.20963638e+02 2.88922363e+02 2.24026215e+02 - 2.45995239e+02 2.26944138e+02 2.03636810e+02 2.30001999e+02 - 1.61428574e+02 2.33001633e+02 4.98195435e+02 1.66558411e+02 - 4.55383331e+02 1.69743317e+02 4.12845551e+02 1.73060822e+02 - 3.70446472e+02 1.76226105e+02 3.28420349e+02 1.79382065e+02 - 2.86393707e+02 1.82394913e+02 2.44228119e+02 1.85443069e+02 - 2.02145538e+02 1.88442429e+02 1.60139633e+02 1.91512726e+02 - 5.18377319e+02 3.82013947e+02 4.74275330e+02 3.85110901e+02 - 4.30506042e+02 3.87971741e+02 3.86094727e+02 3.90755859e+02 - 3.42370056e+02 3.93477570e+02 2.98875610e+02 3.96389740e+02 - 2.55039505e+02 3.99388855e+02 2.11786224e+02 4.02224365e+02 - 1.68601807e+02 4.04772247e+02 5.14528015e+02 3.37743866e+02 - 4.70387024e+02 3.40709137e+02 4.26698273e+02 3.43591949e+02 - 3.82859619e+02 3.46546814e+02 3.39584656e+02 3.49506500e+02 - 2.96429840e+02 3.52534393e+02 2.53290665e+02 3.55543274e+02 - 2.09700104e+02 3.58550964e+02 1.66859573e+02 3.61485535e+02 - 5.10196838e+02 2.93915436e+02 4.66679810e+02 2.96815948e+02 - 4.22792877e+02 2.99824341e+02 3.79720367e+02 3.02686279e+02 - 3.36851349e+02 3.05720490e+02 2.93757629e+02 3.08696228e+02 - 2.50829285e+02 3.11835266e+02 2.08146149e+02 3.14828705e+02 - 1.64739899e+02 3.17850922e+02 5.06227692e+02 2.50779984e+02 - 4.62973907e+02 2.53881226e+02 4.19463989e+02 2.57017120e+02 - 3.76554321e+02 2.60011230e+02 3.34144287e+02 2.63009674e+02 - 2.91329895e+02 2.65985657e+02 2.48414871e+02 2.69090515e+02 - 2.05642776e+02 2.72014954e+02 1.62836945e+02 2.75003815e+02 - 5.02512390e+02 2.08487732e+02 4.59036682e+02 2.11594345e+02 - 4.16300720e+02 2.14745514e+02 3.73588470e+02 2.17852097e+02 - 3.31383545e+02 2.20927704e+02 2.89116089e+02 2.23961639e+02 - 2.46153961e+02 2.26887527e+02 2.03670654e+02 2.29978516e+02 - 1.61472595e+02 2.32962570e+02 4.98377228e+02 1.66562408e+02 - 4.55456787e+02 1.69775177e+02 4.12957764e+02 1.73078125e+02 - 3.70512939e+02 1.76230637e+02 3.28506775e+02 1.79396957e+02 - 2.86474884e+02 1.82401871e+02 2.44331360e+02 1.85419952e+02 - 2.02248962e+02 1.88438934e+02 1.60276260e+02 1.91465851e+02 - 5.18432251e+02 3.82101715e+02 4.74354095e+02 3.85090607e+02 - 4.30534454e+02 3.88002136e+02 3.86144989e+02 3.90739380e+02 - 3.42474640e+02 3.93465454e+02 2.99021332e+02 3.96364502e+02 - 2.55160187e+02 3.99341187e+02 2.11840012e+02 4.02154266e+02 - 1.68725403e+02 4.04732574e+02 5.14557556e+02 3.37750885e+02 - 4.70420654e+02 3.40707092e+02 4.26751617e+02 3.43596954e+02 - 3.82909943e+02 3.46540558e+02 3.39638062e+02 3.49517944e+02 - 2.96460266e+02 3.52517700e+02 2.53322266e+02 3.55522095e+02 - 2.09782547e+02 3.58529358e+02 1.66918335e+02 3.61429749e+02 - 5.10189331e+02 2.93926514e+02 4.66677765e+02 2.96825806e+02 - 4.22800903e+02 2.99811829e+02 3.79728149e+02 3.02682495e+02 - 3.36884796e+02 3.05710480e+02 2.93760681e+02 3.08698547e+02 - 2.50850159e+02 3.11809357e+02 2.08188065e+02 3.14778351e+02 - 1.64761826e+02 3.17834503e+02 5.06224579e+02 2.50759323e+02 - 4.62917145e+02 2.53859634e+02 4.19448883e+02 2.56980988e+02 - 3.76547241e+02 2.59981995e+02 3.34074707e+02 2.62993225e+02 - 2.91315857e+02 2.65997925e+02 2.48409256e+02 2.69097900e+02 - 2.05654678e+02 2.72036743e+02 1.62847748e+02 2.75027740e+02 - 5.02453369e+02 2.08466309e+02 4.58871704e+02 2.11607773e+02 - 4.16251892e+02 2.14733688e+02 3.73564301e+02 2.17840103e+02 - 3.31359406e+02 2.20948074e+02 2.89041870e+02 2.23942505e+02 - 2.46131485e+02 2.26879028e+02 2.03665390e+02 2.29978714e+02 - 1.61455475e+02 2.32959534e+02 4.98244385e+02 1.66541855e+02 - 4.55409546e+02 1.69746216e+02 4.12855621e+02 1.73025436e+02 - 3.70480103e+02 1.76211044e+02 3.28466614e+02 1.79398621e+02 - 2.86428467e+02 1.82385605e+02 2.44270676e+02 1.85441162e+02 - 2.02218826e+02 1.88451904e+02 1.60165222e+02 1.91480377e+02 - 5.18408020e+02 3.82071869e+02 4.74326569e+02 3.85085480e+02 - 4.30525238e+02 3.87976532e+02 3.86118317e+02 3.90781097e+02 - 3.42442291e+02 3.93492493e+02 2.98947327e+02 3.96397003e+02 - 2.55140350e+02 3.99386047e+02 2.11814529e+02 4.02226105e+02 - 1.68671387e+02 4.04789581e+02 5.14511719e+02 3.37720825e+02 - 4.70406799e+02 3.40706085e+02 4.26707275e+02 3.43597321e+02 - 3.82865692e+02 3.46541260e+02 3.39589813e+02 3.49509308e+02 - 2.96428864e+02 3.52533051e+02 2.53313339e+02 3.55519684e+02 - 2.09716568e+02 3.58554474e+02 1.66885086e+02 3.61475311e+02 - 5.10133759e+02 2.93839478e+02 4.66644104e+02 2.96762360e+02 - 4.22739410e+02 2.99768738e+02 3.79706329e+02 3.02644073e+02 - 3.36776855e+02 3.05708466e+02 2.93736511e+02 3.08697540e+02 - 2.50802017e+02 3.11809418e+02 2.08074387e+02 3.14812134e+02 - 1.64709854e+02 3.17858612e+02 5.06170929e+02 2.50740585e+02 - 4.62833191e+02 2.53854462e+02 4.19399719e+02 2.56925415e+02 - 3.76513153e+02 2.59956085e+02 3.33965607e+02 2.62985962e+02 - 2.91223022e+02 2.65943665e+02 2.48366409e+02 2.69092926e+02 - 2.05591553e+02 2.72028290e+02 1.62690613e+02 2.75039398e+02 - 5.02393951e+02 2.08453033e+02 4.58778656e+02 2.11584854e+02 - 4.16201874e+02 2.14722763e+02 3.73508057e+02 2.17802261e+02 - 3.31294983e+02 2.20932419e+02 2.88905487e+02 2.23975296e+02 - 2.45938828e+02 2.26915192e+02 2.03604614e+02 2.29979202e+02 - 1.61400436e+02 2.33040894e+02 4.98115112e+02 1.66546722e+02 - 4.55357727e+02 1.69730286e+02 4.12824799e+02 1.73025848e+02 - 3.70429260e+02 1.76207947e+02 3.28389648e+02 1.79391251e+02 - 2.86396271e+02 1.82410309e+02 2.44203674e+02 1.85454422e+02 - 2.02120728e+02 1.88453751e+02 1.60135925e+02 1.91504654e+02 - 5.18390137e+02 3.82028870e+02 4.74264099e+02 3.85074158e+02 - 4.30492371e+02 3.87883270e+02 3.86075348e+02 3.90772583e+02 - 3.42387421e+02 3.93490601e+02 2.98897308e+02 3.96415039e+02 - 2.55040909e+02 3.99410278e+02 2.11771652e+02 4.02241333e+02 - 1.68587265e+02 4.04817444e+02 5.14483704e+02 3.37729889e+02 - 4.70371613e+02 3.40702637e+02 4.26658630e+02 3.43601410e+02 - 3.82793427e+02 3.46544434e+02 3.39537720e+02 3.49524048e+02 - 2.96411957e+02 3.52532349e+02 2.53262222e+02 3.55535492e+02 - 2.09658142e+02 3.58566803e+02 1.66831024e+02 3.61498535e+02 - 5.10076385e+02 2.93878571e+02 4.66626160e+02 2.96766418e+02 - 4.22700256e+02 2.99784302e+02 3.79687592e+02 3.02671234e+02 - 3.36718079e+02 3.05743347e+02 2.93687683e+02 3.08731018e+02 - 2.50753098e+02 3.11875580e+02 2.08019196e+02 3.14889893e+02 - 1.64657883e+02 3.17931519e+02 5.06143433e+02 2.50755661e+02 - 4.62777588e+02 2.53863892e+02 4.19387085e+02 2.56961609e+02 - 3.76498199e+02 2.60003510e+02 3.33947510e+02 2.63024139e+02 - 2.91178345e+02 2.66031738e+02 2.48332214e+02 2.69110901e+02 - 2.05583405e+02 2.72044922e+02 1.62655640e+02 2.75116669e+02 - 5.02401978e+02 2.08457672e+02 4.58782166e+02 2.11606308e+02 - 4.16192688e+02 2.14728622e+02 3.73518280e+02 2.17822739e+02 - 3.31299652e+02 2.20938141e+02 2.88901917e+02 2.23991989e+02 - 2.45960205e+02 2.26921188e+02 2.03616379e+02 2.30040955e+02 - 1.61386475e+02 2.32988876e+02 4.98179626e+02 1.66556885e+02 - 4.55381226e+02 1.69736908e+02 4.12835754e+02 1.73049042e+02 - 3.70457336e+02 1.76237076e+02 3.28415466e+02 1.79390823e+02 - 2.86402802e+02 1.82404892e+02 2.44209000e+02 1.85453094e+02 - 2.02111160e+02 1.88468018e+02 1.60127106e+02 1.91505386e+02 - 5.18406555e+02 3.82040802e+02 4.74273468e+02 3.85046448e+02 - 4.30519409e+02 3.87931030e+02 3.86092255e+02 3.90762848e+02 - 3.42412201e+02 3.93486389e+02 2.98919861e+02 3.96394318e+02 - 2.55055298e+02 3.99388092e+02 2.11800812e+02 4.02219147e+02 - 1.68602448e+02 4.04809082e+02 5.14494812e+02 3.37719818e+02 - 4.70381470e+02 3.40721008e+02 4.26670898e+02 3.43602570e+02 - 3.82830963e+02 3.46551758e+02 3.39556000e+02 3.49517456e+02 - 2.96415924e+02 3.52541321e+02 2.53274094e+02 3.55543091e+02 - 2.09688721e+02 3.58558502e+02 1.66839203e+02 3.61489319e+02 - 5.10070587e+02 2.93862152e+02 4.66646973e+02 2.96816101e+02 - 4.22711731e+02 2.99826691e+02 3.79681183e+02 3.02704132e+02 - 3.36711060e+02 3.05743225e+02 2.93698730e+02 3.08756714e+02 - 2.50765671e+02 3.11887451e+02 2.08052780e+02 3.14900635e+02 - 1.64622772e+02 3.17973511e+02 5.06134796e+02 2.50743759e+02 - 4.62767303e+02 2.53875412e+02 4.19372772e+02 2.56992523e+02 - 3.76492737e+02 2.60023041e+02 3.33919312e+02 2.63072632e+02 - 2.91133057e+02 2.66048340e+02 2.48342026e+02 2.69157471e+02 - 2.05562546e+02 2.72089233e+02 1.62685272e+02 2.75136841e+02 - 5.02333893e+02 2.08468475e+02 4.58730194e+02 2.11613724e+02 - 4.16163818e+02 2.14759842e+02 3.73483765e+02 2.17870392e+02 - 3.31278076e+02 2.20984818e+02 2.88853363e+02 2.24072128e+02 - 2.45916626e+02 2.27009613e+02 2.03601166e+02 2.30074402e+02 - 1.61394363e+02 2.33121597e+02 4.98120667e+02 1.66548782e+02 - 4.55360870e+02 1.69744400e+02 4.12821289e+02 1.73065887e+02 - 3.70425812e+02 1.76235443e+02 3.28379456e+02 1.79403152e+02 - 2.86377136e+02 1.82432693e+02 2.44153442e+02 1.85450943e+02 - 2.02070236e+02 1.88478577e+02 1.60073380e+02 1.91515762e+02 - 5.18313965e+02 3.81936554e+02 4.74114288e+02 3.85028992e+02 - 4.30463318e+02 3.87928009e+02 3.85981049e+02 3.90781036e+02 - 3.42264893e+02 3.93521545e+02 2.98823029e+02 3.96492310e+02 - 2.54926010e+02 3.99509155e+02 2.11706985e+02 4.02339264e+02 - 1.68445496e+02 4.04988007e+02 5.14376038e+02 3.37682831e+02 - 4.70283539e+02 3.40698700e+02 4.26565552e+02 3.43610901e+02 - 3.82713989e+02 3.46574097e+02 3.39432953e+02 3.49538177e+02 - 2.96352570e+02 3.52595856e+02 2.53107559e+02 3.55573883e+02 - 2.09579239e+02 3.58614807e+02 1.66748352e+02 3.61561371e+02 - 5.09854858e+02 2.93827332e+02 4.66532867e+02 2.96757965e+02 - 4.22592255e+02 2.99798187e+02 3.79609650e+02 3.02678925e+02 - 3.36551086e+02 3.05773956e+02 2.93586731e+02 3.08795166e+02 - 2.50655136e+02 3.11970612e+02 2.07755814e+02 3.15091187e+02 - 1.64561417e+02 3.18184601e+02 5.05949554e+02 2.50736130e+02 - 4.62570007e+02 2.53859192e+02 4.19288879e+02 2.56947357e+02 - 3.76444031e+02 2.60014679e+02 3.33703033e+02 2.63086151e+02 - 2.90912811e+02 2.66098022e+02 2.48230850e+02 2.69167786e+02 - 2.05457581e+02 2.72154755e+02 1.62425507e+02 2.75248474e+02 - 5.02200195e+02 2.08436615e+02 4.58606842e+02 2.11581772e+02 - 4.15936188e+02 2.14749817e+02 3.73372528e+02 2.17832458e+02 - 3.31093292e+02 2.21021835e+02 2.88656158e+02 2.24108932e+02 - 2.45776505e+02 2.27004669e+02 2.03496811e+02 2.30124908e+02 - 1.61246628e+02 2.33151276e+02 4.97842499e+02 1.66534668e+02 - 4.55261810e+02 1.69722183e+02 4.12717957e+02 1.73035263e+02 - 3.70348785e+02 1.76239822e+02 3.28261597e+02 1.79407669e+02 - 2.86268799e+02 1.82455475e+02 2.43874329e+02 1.85477478e+02 - 2.01810883e+02 1.88492279e+02 1.59800171e+02 1.91564957e+02 - 5.18429138e+02 3.82140503e+02 4.74340668e+02 3.85144470e+02 - 4.30536255e+02 3.87981262e+02 3.86150848e+02 3.90762421e+02 - 3.42448212e+02 3.93500641e+02 2.98963837e+02 3.96390076e+02 - 2.55158646e+02 3.99344696e+02 2.11836456e+02 4.02223145e+02 - 1.68700836e+02 4.04758179e+02 5.14537964e+02 3.37759430e+02 - 4.70404694e+02 3.40741150e+02 4.26733398e+02 3.43607147e+02 - 3.82873138e+02 3.46582794e+02 3.39615417e+02 3.49513428e+02 - 2.96445923e+02 3.52535339e+02 2.53309814e+02 3.55513306e+02 - 2.09737991e+02 3.58552216e+02 1.66898407e+02 3.61464386e+02 - 5.10157501e+02 2.93942902e+02 4.66663147e+02 2.96829895e+02 - 4.22760712e+02 2.99824860e+02 3.79729431e+02 3.02686920e+02 - 3.36826385e+02 3.05738312e+02 2.93754456e+02 3.08721039e+02 - 2.50826782e+02 3.11842438e+02 2.08116837e+02 3.14863037e+02 - 1.64722687e+02 3.17858551e+02 5.06158875e+02 2.50743713e+02 - 4.62809540e+02 2.53848434e+02 4.19415619e+02 2.56971405e+02 - 3.76518768e+02 2.59981293e+02 3.34007965e+02 2.63016418e+02 - 2.91222504e+02 2.66011658e+02 2.48370300e+02 2.69098969e+02 - 2.05610001e+02 2.72040192e+02 1.62721817e+02 2.75027344e+02 - 5.02385345e+02 2.08430374e+02 4.58773315e+02 2.11599152e+02 - 4.16188232e+02 2.14727402e+02 3.73523560e+02 2.17815704e+02 - 3.31308777e+02 2.20940460e+02 2.88927612e+02 2.23977814e+02 - 2.45999069e+02 2.26923050e+02 2.03628662e+02 2.29991226e+02 - 1.61410278e+02 2.33017166e+02 4.98089172e+02 1.66538773e+02 - 4.55362457e+02 1.69715363e+02 4.12810211e+02 1.73014725e+02 - 3.70446869e+02 1.76203384e+02 3.28392334e+02 1.79383713e+02 - 2.86378815e+02 1.82385712e+02 2.44172073e+02 1.85450241e+02 - 2.02093643e+02 1.88424011e+02 1.60109756e+02 1.91506805e+02 - 5.18414429e+02 3.82102356e+02 4.74323883e+02 3.85132263e+02 - 4.30521149e+02 3.88012115e+02 3.86129211e+02 3.90777954e+02 - 3.42449310e+02 3.93478516e+02 2.98987976e+02 3.96391174e+02 - 2.55150330e+02 3.99378510e+02 2.11820694e+02 4.02224915e+02 - 1.68680740e+02 4.04774963e+02 5.14511597e+02 3.37733063e+02 - 4.70402649e+02 3.40740509e+02 4.26707428e+02 3.43615021e+02 - 3.82883148e+02 3.46576233e+02 3.39606720e+02 3.49525574e+02 - 2.96438385e+02 3.52528259e+02 2.53288193e+02 3.55556183e+02 - 2.09719437e+02 3.58568237e+02 1.66909302e+02 3.61466339e+02 - 5.10158600e+02 2.93967560e+02 4.66655396e+02 2.96858124e+02 - 4.22766571e+02 2.99880432e+02 3.79719635e+02 3.02700195e+02 - 3.36807159e+02 3.05756805e+02 2.93752014e+02 3.08751312e+02 - 2.50823944e+02 3.11870941e+02 2.08143036e+02 3.14873077e+02 - 1.64725082e+02 3.18001007e+02 5.06175415e+02 2.50767242e+02 - 4.62834930e+02 2.53866699e+02 4.19417175e+02 2.57003845e+02 - 3.76516968e+02 2.60029755e+02 3.34035248e+02 2.63056641e+02 - 2.91257324e+02 2.66067841e+02 2.48379059e+02 2.69136841e+02 - 2.05629074e+02 2.72096924e+02 1.62727158e+02 2.75080994e+02 - 5.02416443e+02 2.08455856e+02 4.58808289e+02 2.11610596e+02 - 4.16225800e+02 2.14740799e+02 3.73537964e+02 2.17839645e+02 - 3.31321014e+02 2.20954712e+02 2.88940216e+02 2.24034775e+02 - 2.46016190e+02 2.26929138e+02 2.03632568e+02 2.30030731e+02 - 1.61426132e+02 2.33036179e+02 4.98162415e+02 1.66542343e+02 - 4.55377777e+02 1.69725357e+02 4.12827118e+02 1.73032242e+02 - 3.70454315e+02 1.76218567e+02 3.28413208e+02 1.79396698e+02 - 2.86411926e+02 1.82395203e+02 2.44216476e+02 1.85449921e+02 - 2.02122559e+02 1.88444580e+02 1.60137909e+02 1.91493958e+02 - 5.18412537e+02 3.82124756e+02 4.74332428e+02 3.85119965e+02 - 4.30522156e+02 3.87960510e+02 3.86121399e+02 3.90756256e+02 - 3.42449127e+02 3.93469391e+02 2.98982269e+02 3.96371643e+02 - 2.55130524e+02 3.99357391e+02 2.11816422e+02 4.02211456e+02 - 1.68649704e+02 4.04754944e+02 5.14538818e+02 3.37746704e+02 - 4.70398254e+02 3.40738556e+02 4.26724304e+02 3.43611816e+02 - 3.82862061e+02 3.46565277e+02 3.39596802e+02 3.49520355e+02 - 2.96440063e+02 3.52542786e+02 2.53298370e+02 3.55544250e+02 - 2.09711777e+02 3.58550598e+02 1.66869415e+02 3.61483429e+02 - 5.10167175e+02 2.93937469e+02 4.66671814e+02 2.96847809e+02 - 4.22764374e+02 2.99843750e+02 3.79719757e+02 3.02705322e+02 - 3.36806702e+02 3.05762054e+02 2.93738831e+02 3.08761841e+02 - 2.50828262e+02 3.11885345e+02 2.08063736e+02 3.14916595e+02 - 1.64738663e+02 3.18040588e+02 5.06194275e+02 2.50778137e+02 - 4.62846405e+02 2.53896286e+02 4.19423889e+02 2.57024170e+02 - 3.76528961e+02 2.60055603e+02 3.34004547e+02 2.63093048e+02 - 2.91240173e+02 2.66064819e+02 2.48376541e+02 2.69143829e+02 - 2.05602158e+02 2.72073975e+02 1.62751236e+02 2.75156799e+02 - 5.02393738e+02 2.08475967e+02 4.58804413e+02 2.11618240e+02 - 4.16203522e+02 2.14777298e+02 3.73519012e+02 2.17876953e+02 - 3.31324402e+02 2.20983719e+02 2.88958740e+02 2.24079559e+02 - 2.46005981e+02 2.26983093e+02 2.03631134e+02 2.30073547e+02 - 1.61396271e+02 2.33023651e+02 4.98148529e+02 1.66550690e+02 - 4.55378876e+02 1.69741776e+02 4.12826813e+02 1.73077896e+02 - 3.70440369e+02 1.76240707e+02 3.28413971e+02 1.79394989e+02 - 2.86387421e+02 1.82414764e+02 2.44179718e+02 1.85460876e+02 - 2.02114990e+02 1.88483795e+02 1.60115204e+02 1.91522003e+02
+ 1.43322510e+02 1.28149445e+02 1.87120865e+02 1.27614807e+02 + 2.30591217e+02 1.27192268e+02 2.75408142e+02 1.26781296e+02 + 3.19764160e+02 1.26180931e+02 3.64458893e+02 1.25539894e+02 + 4.09461578e+02 1.25071228e+02 4.54581360e+02 1.24460823e+02 + 4.99973206e+02 1.23899338e+02 1.44490982e+02 1.72427628e+02 + 1.88178848e+02 1.72147110e+02 2.32114136e+02 1.71742798e+02 + 2.75930634e+02 1.71180832e+02 3.20354034e+02 1.70811966e+02 + 3.64511108e+02 1.70460419e+02 4.09419373e+02 1.70016678e+02 + 4.54385559e+02 1.69520309e+02 4.99578491e+02 1.69185242e+02 + 1.45684448e+02 2.15939835e+02 1.89129593e+02 2.15702972e+02 + 2.32920471e+02 2.15565994e+02 2.77170898e+02 2.15449387e+02 + 3.20599030e+02 2.15216110e+02 3.64662018e+02 2.14803604e+02 + 4.09395813e+02 2.14537659e+02 4.54205994e+02 2.14296844e+02 + 4.99350372e+02 2.13996460e+02 1.46712860e+02 2.59833221e+02 + 1.90338013e+02 2.59672211e+02 2.33609070e+02 2.59531219e+02 + 2.77567078e+02 2.59418213e+02 3.20985107e+02 2.59323273e+02 + 3.64855316e+02 2.59173767e+02 4.09417908e+02 2.59039520e+02 + 4.54245453e+02 2.58809937e+02 4.99306946e+02 2.58509125e+02 + 1.48245728e+02 3.02741913e+02 1.91282547e+02 3.02678619e+02 + 2.34555420e+02 3.02598602e+02 2.78214264e+02 3.02510651e+02 + 3.21689880e+02 3.02458984e+02 3.65229858e+02 3.02382202e+02 + 4.09448914e+02 3.02402374e+02 4.53905945e+02 3.02405334e+02 + 4.98573486e+02 3.02437347e+02 1.49282837e+02 3.45673187e+02 + 1.91911652e+02 3.45724152e+02 2.35350296e+02 3.45622528e+02 + 2.78549805e+02 3.45519409e+02 3.22224304e+02 3.45432556e+02 + 3.65448303e+02 3.45474487e+02 4.09515594e+02 3.45690369e+02 + 4.53730865e+02 3.45885773e+02 4.97968658e+02 3.46073700e+02 + 1.43329788e+02 1.28141006e+02 1.87127838e+02 1.27620560e+02 + 2.30633316e+02 1.27226997e+02 2.75431030e+02 1.26790428e+02 + 3.19794312e+02 1.26196129e+02 3.64448212e+02 1.25579185e+02 + 4.09466003e+02 1.25084770e+02 4.54588379e+02 1.24504807e+02 + 5.00052094e+02 1.23976166e+02 1.44518280e+02 1.72416397e+02 + 1.88184570e+02 1.72165634e+02 2.32146713e+02 1.71733734e+02 + 2.75914154e+02 1.71200165e+02 3.20331116e+02 1.70797150e+02 + 3.64522369e+02 1.70471146e+02 4.09428070e+02 1.70014343e+02 + 4.54376160e+02 1.69520065e+02 4.99571350e+02 1.69171967e+02 + 1.45660141e+02 2.15939133e+02 1.89081528e+02 2.15690933e+02 + 2.32908829e+02 2.15546524e+02 2.77152222e+02 2.15463974e+02 + 3.20571960e+02 2.15217026e+02 3.64639740e+02 2.14774200e+02 + 4.09389984e+02 2.14519012e+02 4.54189423e+02 2.14294113e+02 + 4.99342224e+02 2.13914047e+02 1.46707275e+02 2.59848358e+02 + 1.90324387e+02 2.59660492e+02 2.33592361e+02 2.59505188e+02 + 2.77551300e+02 2.59406403e+02 3.20955902e+02 2.59298370e+02 + 3.64837036e+02 2.59146515e+02 4.09414459e+02 2.58914886e+02 + 4.54220123e+02 2.58746490e+02 4.99305969e+02 2.58433746e+02 + 1.48206253e+02 3.02747925e+02 1.91251785e+02 3.02667419e+02 + 2.34469055e+02 3.02573761e+02 2.78193878e+02 3.02496033e+02 + 3.21599823e+02 3.02426941e+02 3.65205017e+02 3.02357941e+02 + 4.09438202e+02 3.02368042e+02 4.53834808e+02 3.02385284e+02 + 4.98521820e+02 3.02391876e+02 1.49261185e+02 3.45671051e+02 + 1.91901672e+02 3.45747101e+02 2.35344940e+02 3.45578888e+02 + 2.78557892e+02 3.45499451e+02 3.22192413e+02 3.45365753e+02 + 3.65424591e+02 3.45385315e+02 4.09485840e+02 3.45613739e+02 + 4.53675995e+02 3.45766632e+02 4.97936127e+02 3.45995331e+02 + 1.43327606e+02 1.28163361e+02 1.87110672e+02 1.27608940e+02 + 2.30620575e+02 1.27200012e+02 2.75434784e+02 1.26758965e+02 + 3.19790680e+02 1.26232658e+02 3.64462646e+02 1.25554489e+02 + 4.09467285e+02 1.25106255e+02 4.54593811e+02 1.24493179e+02 + 4.99995941e+02 1.23912170e+02 1.44528214e+02 1.72427689e+02 + 1.88160477e+02 1.72149094e+02 2.32163803e+02 1.71737457e+02 + 2.75951477e+02 1.71183121e+02 3.20350677e+02 1.70812714e+02 + 3.64513855e+02 1.70465195e+02 4.09436768e+02 1.70009598e+02 + 4.54384460e+02 1.69519394e+02 4.99574890e+02 1.69142563e+02 + 1.45664795e+02 2.15925110e+02 1.89120224e+02 2.15684540e+02 + 2.32910400e+02 2.15557053e+02 2.77181854e+02 2.15452255e+02 + 3.20593597e+02 2.15219849e+02 3.64649414e+02 2.14787872e+02 + 4.09376892e+02 2.14530807e+02 4.54192047e+02 2.14314301e+02 + 4.99339020e+02 2.13951370e+02 1.46727737e+02 2.59821106e+02 + 1.90333740e+02 2.59652771e+02 2.33605377e+02 2.59507538e+02 + 2.77556427e+02 2.59417908e+02 3.20959625e+02 2.59293365e+02 + 3.64844849e+02 2.59145050e+02 4.09411621e+02 2.58933929e+02 + 4.54238892e+02 2.58742920e+02 4.99315338e+02 2.58457397e+02 + 1.48236725e+02 3.02743195e+02 1.91258087e+02 3.02655273e+02 + 2.34519135e+02 3.02574127e+02 2.78205566e+02 3.02498596e+02 + 3.21627319e+02 3.02432739e+02 3.65227753e+02 3.02352753e+02 + 4.09443512e+02 3.02361877e+02 4.53852264e+02 3.02386719e+02 + 4.98548584e+02 3.02398773e+02 1.49259232e+02 3.45672485e+02 + 1.91898697e+02 3.45717926e+02 2.35355698e+02 3.45592682e+02 + 2.78554474e+02 3.45506287e+02 3.22192505e+02 3.45341309e+02 + 3.65440521e+02 3.45399475e+02 4.09506927e+02 3.45606628e+02 + 4.53709106e+02 3.45790863e+02 4.97954193e+02 3.46031952e+02 + 1.43324570e+02 1.28176056e+02 1.87090836e+02 1.27654457e+02 + 2.30571396e+02 1.27237946e+02 2.75399445e+02 1.26794853e+02 + 3.19742065e+02 1.26220604e+02 3.64438202e+02 1.25580162e+02 + 4.09464294e+02 1.25066498e+02 4.54566223e+02 1.24496651e+02 + 4.99991943e+02 1.23934296e+02 1.44438126e+02 1.72432785e+02 + 1.88144684e+02 1.72171509e+02 2.32099762e+02 1.71768387e+02 + 2.75917358e+02 1.71234528e+02 3.20311157e+02 1.70827423e+02 + 3.64507812e+02 1.70465790e+02 4.09415466e+02 1.70007416e+02 + 4.54352020e+02 1.69526321e+02 4.99546448e+02 1.69157211e+02 + 1.45671875e+02 2.15957092e+02 1.89094406e+02 2.15691055e+02 + 2.32891220e+02 2.15558792e+02 2.77143768e+02 2.15458710e+02 + 3.20572510e+02 2.15225662e+02 3.64627045e+02 2.14793427e+02 + 4.09359711e+02 2.14530869e+02 4.54166443e+02 2.14286682e+02 + 4.99306152e+02 2.13925674e+02 1.46739197e+02 2.59846924e+02 + 1.90319458e+02 2.59660736e+02 2.33595627e+02 2.59520935e+02 + 2.77550598e+02 2.59413788e+02 3.20927063e+02 2.59304535e+02 + 3.64820282e+02 2.59139496e+02 4.09401184e+02 2.58919250e+02 + 4.54199799e+02 2.58744995e+02 4.99278442e+02 2.58462799e+02 + 1.48212708e+02 3.02757782e+02 1.91249420e+02 3.02674469e+02 + 2.34511124e+02 3.02583099e+02 2.78200623e+02 3.02496002e+02 + 3.21621429e+02 3.02428711e+02 3.65209778e+02 3.02359528e+02 + 4.09441193e+02 3.02364838e+02 4.53815704e+02 3.02386322e+02 + 4.98521271e+02 3.02401459e+02 1.49264786e+02 3.45652771e+02 + 1.91911469e+02 3.45732849e+02 2.35357513e+02 3.45587738e+02 + 2.78546967e+02 3.45519043e+02 3.22176208e+02 3.45362915e+02 + 3.65433472e+02 3.45413147e+02 4.09500488e+02 3.45610992e+02 + 4.53700958e+02 3.45803040e+02 4.97937927e+02 3.46000946e+02 + 1.43306976e+02 1.28186737e+02 1.87124161e+02 1.27641785e+02 + 2.30625916e+02 1.27223900e+02 2.75418274e+02 1.26802727e+02 + 3.19754242e+02 1.26206406e+02 3.64454468e+02 1.25582809e+02 + 4.09459259e+02 1.25093811e+02 4.54593964e+02 1.24489708e+02 + 5.00046112e+02 1.23973083e+02 1.44489319e+02 1.72441757e+02 + 1.88170670e+02 1.72156891e+02 2.32118164e+02 1.71752716e+02 + 2.75937775e+02 1.71239548e+02 3.20321899e+02 1.70808395e+02 + 3.64505066e+02 1.70487015e+02 4.09421448e+02 1.70016235e+02 + 4.54369232e+02 1.69541626e+02 4.99552094e+02 1.69172852e+02 + 1.45643082e+02 2.15972427e+02 1.89070969e+02 2.15701584e+02 + 2.32869766e+02 2.15555054e+02 2.77159698e+02 2.15459427e+02 + 3.20581757e+02 2.15231796e+02 3.64621887e+02 2.14793564e+02 + 4.09364014e+02 2.14526794e+02 4.54167297e+02 2.14289017e+02 + 4.99299957e+02 2.13939072e+02 1.46702499e+02 2.59846283e+02 + 1.90322937e+02 2.59676575e+02 2.33591660e+02 2.59517181e+02 + 2.77536194e+02 2.59419037e+02 3.20951202e+02 2.59302155e+02 + 3.64819000e+02 2.59143188e+02 4.09392151e+02 2.58938782e+02 + 4.54200165e+02 2.58755249e+02 4.99292419e+02 2.58426422e+02 + 1.48205551e+02 3.02773956e+02 1.91232864e+02 3.02680237e+02 + 2.34495407e+02 3.02584473e+02 2.78190094e+02 3.02509918e+02 + 3.21613251e+02 3.02428619e+02 3.65204742e+02 3.02364258e+02 + 4.09431335e+02 3.02380493e+02 4.53815369e+02 3.02384613e+02 + 4.98499817e+02 3.02387604e+02 1.49233734e+02 3.45680115e+02 + 1.91887878e+02 3.45751831e+02 2.35351624e+02 3.45592346e+02 + 2.78552094e+02 3.45514893e+02 3.22168488e+02 3.45373627e+02 + 3.65424591e+02 3.45390259e+02 4.09484222e+02 3.45611786e+02 + 4.53677551e+02 3.45788696e+02 4.97920227e+02 3.45998749e+02 + 1.43280228e+02 1.28202271e+02 1.87057922e+02 1.27639046e+02 + 2.30561203e+02 1.27244339e+02 2.75398834e+02 1.26826210e+02 + 3.19721741e+02 1.26232346e+02 3.64430695e+02 1.25567574e+02 + 4.09456848e+02 1.25102890e+02 4.54556152e+02 1.24480415e+02 + 4.99969360e+02 1.23927811e+02 1.44435806e+02 1.72440125e+02 + 1.88151810e+02 1.72179459e+02 2.32107834e+02 1.71761734e+02 + 2.75893768e+02 1.71218323e+02 3.20302979e+02 1.70805939e+02 + 3.64486420e+02 1.70470444e+02 4.09395447e+02 1.70001724e+02 + 4.54352020e+02 1.69528641e+02 4.99541626e+02 1.69158463e+02 + 1.45629044e+02 2.15913712e+02 1.89083466e+02 2.15693741e+02 + 2.32874237e+02 2.15570282e+02 2.77140076e+02 2.15465607e+02 + 3.20562103e+02 2.15225739e+02 3.64619965e+02 2.14800461e+02 + 4.09357605e+02 2.14529785e+02 4.54152008e+02 2.14289261e+02 + 4.99282745e+02 2.13939316e+02 1.46712875e+02 2.59832428e+02 + 1.90300964e+02 2.59676300e+02 2.33602020e+02 2.59524414e+02 + 2.77546967e+02 2.59414429e+02 3.20925629e+02 2.59293488e+02 + 3.64826874e+02 2.59151154e+02 4.09402283e+02 2.58934998e+02 + 4.54190552e+02 2.58775208e+02 4.99286194e+02 2.58446930e+02 + 1.48199951e+02 3.02757782e+02 1.91247177e+02 3.02676147e+02 + 2.34488495e+02 3.02578033e+02 2.78183899e+02 3.02513824e+02 + 3.21617432e+02 3.02430847e+02 3.65197357e+02 3.02359100e+02 + 4.09428345e+02 3.02360168e+02 4.53796753e+02 3.02374542e+02 + 4.98514923e+02 3.02400391e+02 1.49259430e+02 3.45675781e+02 + 1.91890320e+02 3.45724518e+02 2.35355209e+02 3.45597565e+02 + 2.78546143e+02 3.45505707e+02 3.22174713e+02 3.45391449e+02 + 3.65437439e+02 3.45404602e+02 4.09497040e+02 3.45600403e+02 + 4.53674835e+02 3.45793304e+02 4.97943451e+02 3.46000366e+02 + 1.43314941e+02 1.28178696e+02 1.87089203e+02 1.27638878e+02 + 2.30605347e+02 1.27228935e+02 2.75430359e+02 1.26794937e+02 + 3.19773987e+02 1.26226448e+02 3.64442505e+02 1.25573318e+02 + 4.09468506e+02 1.25099075e+02 4.54578583e+02 1.24515747e+02 + 4.99979279e+02 1.23960358e+02 1.44483795e+02 1.72435669e+02 + 1.88138855e+02 1.72142242e+02 2.32141617e+02 1.71769501e+02 + 2.75929871e+02 1.71226624e+02 3.20321777e+02 1.70809616e+02 + 3.64500946e+02 1.70477356e+02 4.09415802e+02 1.70017929e+02 + 4.54363953e+02 1.69539078e+02 4.99563232e+02 1.69172684e+02 + 1.45664658e+02 2.15969574e+02 1.89099762e+02 2.15687820e+02 + 2.32887695e+02 2.15572571e+02 2.77148621e+02 2.15462448e+02 + 3.20581146e+02 2.15217224e+02 3.64623322e+02 2.14782959e+02 + 4.09364655e+02 2.14507034e+02 4.54161530e+02 2.14283722e+02 + 4.99319458e+02 2.13932877e+02 1.46711868e+02 2.59828400e+02 + 1.90310135e+02 2.59671539e+02 2.33585754e+02 2.59514648e+02 + 2.77549866e+02 2.59414062e+02 3.20909058e+02 2.59300171e+02 + 3.64808167e+02 2.59144379e+02 4.09408325e+02 2.58917603e+02 + 4.54196930e+02 2.58714508e+02 4.99294800e+02 2.58436432e+02 + 1.48205963e+02 3.02750336e+02 1.91234665e+02 3.02668610e+02 + 2.34486038e+02 3.02584656e+02 2.78187103e+02 3.02498444e+02 + 3.21595795e+02 3.02432220e+02 3.65191010e+02 3.02346405e+02 + 4.09429810e+02 3.02357056e+02 4.53810822e+02 3.02374634e+02 + 4.98494202e+02 3.02384308e+02 1.49256271e+02 3.45709259e+02 + 1.91875412e+02 3.45730652e+02 2.35348877e+02 3.45579376e+02 + 2.78539307e+02 3.45507294e+02 3.22185730e+02 3.45373047e+02 + 3.65424103e+02 3.45378662e+02 4.09481720e+02 3.45597992e+02 + 4.53655457e+02 3.45762848e+02 4.97913025e+02 3.45977325e+02 + 1.43279587e+02 1.28207474e+02 1.87073410e+02 1.27687042e+02 + 2.30568253e+02 1.27246078e+02 2.75379028e+02 1.26857239e+02 + 3.19722290e+02 1.26275375e+02 3.64422333e+02 1.25588440e+02 + 4.09440979e+02 1.25142227e+02 4.54562042e+02 1.24502419e+02 + 4.99960693e+02 1.23921089e+02 1.44423630e+02 1.72435822e+02 + 1.88155487e+02 1.72219025e+02 2.32114532e+02 1.71793930e+02 + 2.75913757e+02 1.71260101e+02 3.20307648e+02 1.70822159e+02 + 3.64492249e+02 1.70485458e+02 4.09406738e+02 1.70042862e+02 + 4.54350586e+02 1.69535446e+02 4.99540253e+02 1.69179565e+02 + 1.45663910e+02 2.15992035e+02 1.89057785e+02 2.15709900e+02 + 2.32872528e+02 2.15581467e+02 2.77152985e+02 2.15471191e+02 + 3.20568268e+02 2.15243607e+02 3.64625275e+02 2.14829361e+02 + 4.09369476e+02 2.14546921e+02 4.54147339e+02 2.14306870e+02 + 4.99311737e+02 2.13962982e+02 1.46713699e+02 2.59847168e+02 + 1.90306274e+02 2.59657104e+02 2.33603165e+02 2.59525177e+02 + 2.77553406e+02 2.59426636e+02 3.20947723e+02 2.59314178e+02 + 3.64826691e+02 2.59157227e+02 4.09403412e+02 2.58978546e+02 + 4.54202393e+02 2.58760315e+02 4.99300873e+02 2.58493286e+02 + 1.48233612e+02 3.02738892e+02 1.91265045e+02 3.02663971e+02 + 2.34538422e+02 3.02578796e+02 2.78207184e+02 3.02503143e+02 + 3.21639984e+02 3.02432617e+02 3.65229095e+02 3.02368500e+02 + 4.09442688e+02 3.02363770e+02 4.53854065e+02 3.02402069e+02 + 4.98534302e+02 3.02419220e+02 1.49291260e+02 3.45641235e+02 + 1.91931122e+02 3.45689148e+02 2.35363281e+02 3.45575592e+02 + 2.78565369e+02 3.45500183e+02 3.22203400e+02 3.45376221e+02 + 3.65445953e+02 3.45418884e+02 4.09492157e+02 3.45634644e+02 + 4.53717468e+02 3.45830322e+02 4.97952942e+02 3.46051727e+02 + 1.43250320e+02 1.28242310e+02 1.87049866e+02 1.27690575e+02 + 2.30573883e+02 1.27271996e+02 2.75371643e+02 1.26879402e+02 + 3.19707458e+02 1.26292473e+02 3.64414337e+02 1.25582977e+02 + 4.09413757e+02 1.25135857e+02 4.54532684e+02 1.24495720e+02 + 4.99907166e+02 1.23947372e+02 1.44344009e+02 1.72449753e+02 + 1.88123001e+02 1.72230621e+02 2.32063156e+02 1.71841644e+02 + 2.75889832e+02 1.71290283e+02 3.20276062e+02 1.70870728e+02 + 3.64483185e+02 1.70482574e+02 4.09370270e+02 1.70034393e+02 + 4.54321777e+02 1.69537231e+02 4.99501495e+02 1.69157028e+02 + 1.45617142e+02 2.16046432e+02 1.88995102e+02 2.15746948e+02 + 2.32820557e+02 2.15580811e+02 2.77105743e+02 2.15478241e+02 + 3.20546661e+02 2.15249176e+02 3.64587982e+02 2.14822449e+02 + 4.09345856e+02 2.14526413e+02 4.54097778e+02 2.14300568e+02 + 4.99261688e+02 2.13929733e+02 1.46668457e+02 2.59888092e+02 + 1.90290634e+02 2.59712921e+02 2.33566132e+02 2.59535492e+02 + 2.77513733e+02 2.59428253e+02 3.20883270e+02 2.59314484e+02 + 3.64765686e+02 2.59150574e+02 4.09367676e+02 2.58933319e+02 + 4.54161621e+02 2.58751587e+02 4.99257843e+02 2.58448425e+02 + 1.48181671e+02 3.02794922e+02 1.91216232e+02 3.02692596e+02 + 2.34452362e+02 3.02590881e+02 2.78176544e+02 3.02516968e+02 + 3.21565704e+02 3.02449646e+02 3.65174072e+02 3.02347107e+02 + 4.09430267e+02 3.02368958e+02 4.53780945e+02 3.02374573e+02 + 4.98456207e+02 3.02385101e+02 1.49238861e+02 3.45761993e+02 + 1.91872604e+02 3.45795929e+02 2.35346878e+02 3.45601990e+02 + 2.78556519e+02 3.45555450e+02 3.22156525e+02 3.45407379e+02 + 3.65413055e+02 3.45406311e+02 4.09476135e+02 3.45610260e+02 + 4.53626984e+02 3.45756012e+02 4.97908234e+02 3.45980194e+02 + 1.43397812e+02 1.28105331e+02 1.87245499e+02 1.27602165e+02 + 2.30715530e+02 1.27192085e+02 2.75490082e+02 1.26801300e+02 + 3.19888672e+02 1.26224892e+02 3.64504303e+02 1.25598145e+02 + 4.09534882e+02 1.25129738e+02 4.54659424e+02 1.24545403e+02 + 5.00126770e+02 1.24015053e+02 1.44628876e+02 1.72414139e+02 + 1.88234268e+02 1.72107544e+02 2.32226913e+02 1.71698578e+02 + 2.76060333e+02 1.71193649e+02 3.20378937e+02 1.70849182e+02 + 3.64570862e+02 1.70486755e+02 4.09464813e+02 1.70067734e+02 + 4.54428772e+02 1.69561295e+02 4.99622406e+02 1.69239502e+02 + 1.45735306e+02 2.15930466e+02 1.89207153e+02 2.15675369e+02 + 2.32950897e+02 2.15554993e+02 2.77204163e+02 2.15467331e+02 + 3.20630737e+02 2.15239944e+02 3.64669586e+02 2.14832733e+02 + 4.09410034e+02 2.14547470e+02 4.54251068e+02 2.14329178e+02 + 4.99378754e+02 2.14046127e+02 1.46765793e+02 2.59815094e+02 + 1.90352570e+02 2.59651001e+02 2.33625580e+02 2.59520996e+02 + 2.77590668e+02 2.59413086e+02 3.21040710e+02 2.59317352e+02 + 3.64881866e+02 2.59145599e+02 4.09431335e+02 2.58995331e+02 + 4.54239197e+02 2.58799530e+02 4.99335419e+02 2.58530029e+02 + 1.48250885e+02 3.02729858e+02 1.91272827e+02 3.02660370e+02 + 2.34564713e+02 3.02566223e+02 2.78234131e+02 3.02506226e+02 + 3.21686066e+02 3.02447693e+02 3.65231445e+02 3.02369751e+02 + 4.09445679e+02 3.02382477e+02 4.53865479e+02 3.02407654e+02 + 4.98551697e+02 3.02425385e+02 1.49290192e+02 3.45650024e+02 + 1.91922745e+02 3.45730194e+02 2.35362213e+02 3.45571350e+02 + 2.78562286e+02 3.45503052e+02 3.22208496e+02 3.45343140e+02 + 3.65437347e+02 3.45404938e+02 4.09502380e+02 3.45634735e+02 + 4.53705933e+02 3.45835968e+02 4.97945709e+02 3.46041290e+02 + 1.43232742e+02 1.28215378e+02 1.87066971e+02 1.27680313e+02 + 2.30543625e+02 1.27255432e+02 2.75382812e+02 1.26853035e+02 + 3.19672913e+02 1.26217064e+02 3.64413635e+02 1.25570068e+02 + 4.09438080e+02 1.25113899e+02 4.54540558e+02 1.24478477e+02 + 4.99922760e+02 1.23928398e+02 1.44394852e+02 1.72441055e+02 + 1.88145920e+02 1.72189316e+02 2.32109985e+02 1.71796753e+02 + 2.75883057e+02 1.71265091e+02 3.20295074e+02 1.70813522e+02 + 3.64479095e+02 1.70473801e+02 4.09388489e+02 1.70022400e+02 + 4.54338837e+02 1.69531937e+02 4.99530457e+02 1.69157303e+02 + 1.45656418e+02 2.16045746e+02 1.89003326e+02 2.15701660e+02 + 2.32841202e+02 2.15573303e+02 2.77128296e+02 2.15466675e+02 + 3.20559235e+02 2.15230698e+02 3.64595093e+02 2.14793701e+02 + 4.09349365e+02 2.14518051e+02 4.54137054e+02 2.14278915e+02 + 4.99284088e+02 2.13906265e+02 1.46708908e+02 2.59858368e+02 + 1.90309372e+02 2.59670197e+02 2.33582153e+02 2.59522980e+02 + 2.77534576e+02 2.59416199e+02 3.20900391e+02 2.59314362e+02 + 3.64811676e+02 2.59129456e+02 4.09386383e+02 2.58914398e+02 + 4.54164948e+02 2.58731537e+02 4.99260132e+02 2.58441101e+02 + 1.48223404e+02 3.02757507e+02 1.91254303e+02 3.02665741e+02 + 2.34505966e+02 3.02572845e+02 2.78203094e+02 3.02502441e+02 + 3.21617615e+02 3.02442596e+02 3.65199982e+02 3.02344116e+02 + 4.09428467e+02 3.02362366e+02 4.53830444e+02 3.02375519e+02 + 4.98491638e+02 3.02387482e+02 1.49271469e+02 3.45668732e+02 + 1.91889053e+02 3.45735291e+02 2.35357101e+02 3.45561310e+02 + 2.78559265e+02 3.45499268e+02 3.22196655e+02 3.45328766e+02 + 3.65418304e+02 3.45370575e+02 4.09487335e+02 3.45612976e+02 + 4.53692780e+02 3.45759125e+02 4.97934021e+02 3.46008606e+02 + 1.43370224e+02 1.28153397e+02 1.87191864e+02 1.27636635e+02 + 2.30668182e+02 1.27218170e+02 2.75451843e+02 1.26810257e+02 + 3.19835297e+02 1.26269554e+02 3.64479919e+02 1.25596596e+02 + 4.09503143e+02 1.25145760e+02 4.54609344e+02 1.24525383e+02 + 5.00069427e+02 1.24021736e+02 1.44593277e+02 1.72426620e+02 + 1.88220184e+02 1.72143204e+02 2.32215576e+02 1.71754547e+02 + 2.76006348e+02 1.71208939e+02 3.20365692e+02 1.70814133e+02 + 3.64531616e+02 1.70479416e+02 4.09451111e+02 1.70055511e+02 + 4.54412201e+02 1.69566391e+02 4.99604492e+02 1.69237045e+02 + 1.45696381e+02 2.15920212e+02 1.89124527e+02 2.15689331e+02 + 2.32924530e+02 2.15557205e+02 2.77192596e+02 2.15458862e+02 + 3.20609009e+02 2.15225800e+02 3.64665558e+02 2.14790192e+02 + 4.09399902e+02 2.14525162e+02 4.54234802e+02 2.14311493e+02 + 4.99366486e+02 2.14020355e+02 1.46754852e+02 2.59811981e+02 + 1.90335831e+02 2.59633728e+02 2.33615143e+02 2.59508118e+02 + 2.77578705e+02 2.59409943e+02 3.20989746e+02 2.59305420e+02 + 3.64877228e+02 2.59140076e+02 4.09420593e+02 2.58955475e+02 + 4.54230286e+02 2.58778198e+02 4.99321350e+02 2.58500549e+02 + 1.48249863e+02 3.02739105e+02 1.91290527e+02 3.02640320e+02 + 2.34566956e+02 3.02573547e+02 2.78236389e+02 3.02494141e+02 + 3.21687073e+02 3.02435699e+02 3.65244080e+02 3.02347687e+02 + 4.09448364e+02 3.02360840e+02 4.53864838e+02 3.02388611e+02 + 4.98552887e+02 3.02411865e+02 1.49294556e+02 3.45618408e+02 + 1.91941284e+02 3.45656036e+02 2.35371582e+02 3.45540039e+02 + 2.78561371e+02 3.45462799e+02 3.22210205e+02 3.45312927e+02 + 3.65453613e+02 3.45370209e+02 4.09494446e+02 3.45603607e+02 + 4.53721252e+02 3.45800140e+02 4.97967346e+02 3.46021027e+02 + 1.43255859e+02 1.28175568e+02 1.87084625e+02 1.27612564e+02 + 2.30583405e+02 1.27243469e+02 2.75409912e+02 1.26839005e+02 + 3.19731262e+02 1.26213615e+02 3.64440063e+02 1.25554420e+02 + 4.09456207e+02 1.25112511e+02 4.54546722e+02 1.24489006e+02 + 4.99959595e+02 1.23913971e+02 1.44386337e+02 1.72429535e+02 + 1.88161758e+02 1.72213654e+02 2.32091934e+02 1.71791473e+02 + 2.75900696e+02 1.71226883e+02 3.20297241e+02 1.70819962e+02 + 3.64492096e+02 1.70469589e+02 4.09407227e+02 1.70020737e+02 + 4.54347778e+02 1.69522507e+02 4.99522461e+02 1.69179718e+02 + 1.45628067e+02 2.15976990e+02 1.88982498e+02 2.15723892e+02 + 2.32840805e+02 2.15558411e+02 2.77123718e+02 2.15476608e+02 + 3.20555237e+02 2.15249283e+02 3.64594421e+02 2.14818161e+02 + 4.09345673e+02 2.14525772e+02 4.54140747e+02 2.14308365e+02 + 4.99295471e+02 2.13929962e+02 1.46689056e+02 2.59921906e+02 + 1.90292236e+02 2.59700195e+02 2.33571320e+02 2.59526886e+02 + 2.77529602e+02 2.59434723e+02 3.20885345e+02 2.59320496e+02 + 3.64796387e+02 2.59152008e+02 4.09379669e+02 2.58923035e+02 + 4.54159973e+02 2.58767029e+02 4.99267395e+02 2.58470520e+02 + 1.48185333e+02 3.02818085e+02 1.91238342e+02 3.02702576e+02 + 2.34456741e+02 3.02598541e+02 2.78179871e+02 3.02519836e+02 + 3.21580505e+02 3.02457733e+02 3.65159393e+02 3.02370575e+02 + 4.09418457e+02 3.02374329e+02 4.53789215e+02 3.02396210e+02 + 4.98481720e+02 3.02405823e+02 1.49252914e+02 3.45744446e+02 + 1.91904556e+02 3.45796753e+02 2.35356064e+02 3.45643402e+02 + 2.78554993e+02 3.45567230e+02 3.22170227e+02 3.45411102e+02 + 3.65425385e+02 3.45418030e+02 4.09486237e+02 3.45650665e+02 + 4.53665344e+02 3.45797150e+02 4.97897888e+02 3.46002838e+02 + 1.43302383e+02 1.28204773e+02 1.87091003e+02 1.27664474e+02 + 2.30594803e+02 1.27240425e+02 2.75405792e+02 1.26823532e+02 + 3.19746613e+02 1.26235703e+02 3.64443085e+02 1.25582947e+02 + 4.09449829e+02 1.25107109e+02 4.54553406e+02 1.24480385e+02 + 4.99963287e+02 1.23934853e+02 1.44422455e+02 1.72434525e+02 + 1.88173538e+02 1.72168518e+02 2.32121063e+02 1.71804428e+02 + 2.75928680e+02 1.71232040e+02 3.20331757e+02 1.70815079e+02 + 3.64499237e+02 1.70474335e+02 4.09400665e+02 1.70025848e+02 + 4.54345154e+02 1.69536957e+02 4.99544739e+02 1.69148788e+02 + 1.45648956e+02 2.15965851e+02 1.89081787e+02 2.15705994e+02 + 2.32887833e+02 2.15552368e+02 2.77136261e+02 2.15468491e+02 + 3.20572479e+02 2.15235306e+02 3.64617889e+02 2.14793091e+02 + 4.09379791e+02 2.14520462e+02 4.54174042e+02 2.14297943e+02 + 4.99317657e+02 2.13957886e+02 1.46723557e+02 2.59829102e+02 + 1.90324432e+02 2.59654999e+02 2.33600021e+02 2.59503265e+02 + 2.77552856e+02 2.59411072e+02 3.20942780e+02 2.59316406e+02 + 3.64830475e+02 2.59130341e+02 4.09402954e+02 2.58868988e+02 + 4.54199127e+02 2.58757141e+02 4.99286255e+02 2.58461273e+02 + 1.48217361e+02 3.02757263e+02 1.91268723e+02 3.02667969e+02 + 2.34519913e+02 3.02563843e+02 2.78228027e+02 3.02498993e+02 + 3.21641754e+02 3.02441010e+02 3.65216156e+02 3.02371399e+02 + 4.09448059e+02 3.02358856e+02 4.53865295e+02 3.02396820e+02 + 4.98532928e+02 3.02399689e+02 1.49288055e+02 3.45661987e+02 + 1.91915665e+02 3.45730377e+02 2.35365082e+02 3.45603546e+02 + 2.78561401e+02 3.45508484e+02 3.22200287e+02 3.45364929e+02 + 3.65449371e+02 3.45386475e+02 4.09497498e+02 3.45615875e+02 + 4.53724060e+02 3.45831360e+02 4.97930939e+02 3.46037598e+02 + 1.43283295e+02 1.28215042e+02 1.87111160e+02 1.27649933e+02 + 2.30606979e+02 1.27264740e+02 2.75412384e+02 1.26813126e+02 + 3.19756195e+02 1.26293365e+02 3.64438660e+02 1.25600761e+02 + 4.09450439e+02 1.25136292e+02 4.54561188e+02 1.24502472e+02 + 4.99963348e+02 1.23969193e+02 1.44552368e+02 1.72442520e+02 + 1.88194443e+02 1.72204483e+02 2.32137650e+02 1.71773178e+02 + 2.75941925e+02 1.71215164e+02 3.20345551e+02 1.70806030e+02 + 3.64508514e+02 1.70480865e+02 4.09412476e+02 1.70036179e+02 + 4.54378235e+02 1.69533951e+02 4.99566895e+02 1.69201141e+02 + 1.45651215e+02 2.15918289e+02 1.89110443e+02 2.15683624e+02 + 2.32911224e+02 2.15556229e+02 2.77162933e+02 2.15459518e+02 + 3.20586700e+02 2.15225769e+02 3.64628174e+02 2.14793182e+02 + 4.09393585e+02 2.14514740e+02 4.54192505e+02 2.14315125e+02 + 4.99359589e+02 2.14047546e+02 1.46742874e+02 2.59800293e+02 + 1.90344284e+02 2.59638184e+02 2.33616928e+02 2.59500824e+02 + 2.77571442e+02 2.59404510e+02 3.20976654e+02 2.59307068e+02 + 3.64861420e+02 2.59109314e+02 4.09409576e+02 2.58880341e+02 + 4.54224243e+02 2.58763458e+02 4.99321747e+02 2.58456390e+02 + 1.48267105e+02 3.02715759e+02 1.91275864e+02 3.02648926e+02 + 2.34554245e+02 3.02564148e+02 2.78226349e+02 3.02491211e+02 + 3.21712372e+02 3.02417358e+02 3.65241028e+02 3.02336548e+02 + 4.09449402e+02 3.02352844e+02 4.53865326e+02 3.02372437e+02 + 4.98536499e+02 3.02398193e+02 1.49305984e+02 3.45590546e+02 + 1.91907349e+02 3.45621704e+02 2.35385941e+02 3.45534637e+02 + 2.78557526e+02 3.45469788e+02 3.22204865e+02 3.45327087e+02 + 3.65458862e+02 3.45380463e+02 4.09501129e+02 3.45590271e+02 + 4.53737183e+02 3.45805786e+02 4.97938721e+02 3.46000671e+02 + 1.43337921e+02 1.28148529e+02 1.87128693e+02 1.27630257e+02 + 2.30651947e+02 1.27221748e+02 2.75445068e+02 1.26812408e+02 + 3.19805054e+02 1.26226700e+02 3.64453766e+02 1.25570602e+02 + 4.09482727e+02 1.25108513e+02 4.54583496e+02 1.24514793e+02 + 5.00014343e+02 1.23965622e+02 1.44514465e+02 1.72429276e+02 + 1.88177078e+02 1.72214371e+02 2.32171005e+02 1.71784225e+02 + 2.75917267e+02 1.71255600e+02 3.20342468e+02 1.70828094e+02 + 3.64512268e+02 1.70482635e+02 4.09413177e+02 1.70044250e+02 + 4.54377289e+02 1.69562500e+02 4.99559998e+02 1.69181747e+02 + 1.45659775e+02 2.15974762e+02 1.89089600e+02 2.15702881e+02 + 2.32889877e+02 2.15574738e+02 2.77177887e+02 2.15473114e+02 + 3.20579102e+02 2.15255508e+02 3.64640991e+02 2.14799835e+02 + 4.09393921e+02 2.14535568e+02 4.54189362e+02 2.14315521e+02 + 4.99300842e+02 2.13977753e+02 1.46719650e+02 2.59843597e+02 + 1.90320389e+02 2.59660004e+02 2.33607651e+02 2.59530792e+02 + 2.77554199e+02 2.59417664e+02 3.20941925e+02 2.59302124e+02 + 3.64858124e+02 2.59135193e+02 4.09417603e+02 2.58919403e+02 + 4.54197144e+02 2.58743347e+02 4.99279297e+02 2.58497345e+02 + 1.48223587e+02 3.02763763e+02 1.91275558e+02 3.02663574e+02 + 2.34543716e+02 3.02572449e+02 2.78220337e+02 3.02494568e+02 + 3.21634125e+02 3.02432404e+02 3.65209167e+02 3.02349854e+02 + 4.09442657e+02 3.02351624e+02 4.53852478e+02 3.02388428e+02 + 4.98538452e+02 3.02384674e+02 1.49281738e+02 3.45589386e+02 + 1.91911591e+02 3.45640839e+02 2.35375214e+02 3.45510498e+02 + 2.78553101e+02 3.45442078e+02 3.22217041e+02 3.45274384e+02 + 3.65430511e+02 3.45315552e+02 4.09488525e+02 3.45573517e+02 + 4.53726746e+02 3.45757385e+02 4.97937286e+02 3.45951355e+02 + 1.43318756e+02 1.28157928e+02 1.87120926e+02 1.27644180e+02 + 2.30618942e+02 1.27235085e+02 2.75428833e+02 1.26812607e+02 + 3.19766327e+02 1.26179581e+02 3.64458405e+02 1.25569466e+02 + 4.09471741e+02 1.25106087e+02 4.54597137e+02 1.24487152e+02 + 5.00017151e+02 1.23970917e+02 1.44478973e+02 1.72414352e+02 + 1.88189865e+02 1.72168762e+02 2.32172394e+02 1.71761932e+02 + 2.75951996e+02 1.71208313e+02 3.20350739e+02 1.70789551e+02 + 3.64521271e+02 1.70470398e+02 4.09435059e+02 1.70023163e+02 + 4.54359589e+02 1.69527725e+02 4.99584290e+02 1.69155426e+02 + 1.45666473e+02 2.15899460e+02 1.89104141e+02 2.15684738e+02 + 2.32897247e+02 2.15546875e+02 2.77188049e+02 2.15457550e+02 + 3.20599426e+02 2.15214157e+02 3.64644531e+02 2.14787247e+02 + 4.09386322e+02 2.14521622e+02 4.54210846e+02 2.14308502e+02 + 4.99356201e+02 2.13992401e+02 1.46793167e+02 2.59818604e+02 + 1.90364197e+02 2.59625153e+02 2.33624954e+02 2.59502472e+02 + 2.77584351e+02 2.59395172e+02 3.20985748e+02 2.59301453e+02 + 3.64872131e+02 2.59130859e+02 4.09411743e+02 2.58895142e+02 + 4.54255310e+02 2.58754791e+02 4.99319214e+02 2.58481781e+02 + 1.48254211e+02 3.02715546e+02 1.91287796e+02 3.02652985e+02 + 2.34586044e+02 3.02567902e+02 2.78245941e+02 3.02493835e+02 + 3.21727875e+02 3.02435638e+02 3.65255127e+02 3.02342560e+02 + 4.09454132e+02 3.02359344e+02 4.53894257e+02 3.02392853e+02 + 4.98547394e+02 3.02415192e+02 1.49298767e+02 3.45573212e+02 + 1.91950043e+02 3.45621246e+02 2.35385254e+02 3.45511688e+02 + 2.78569763e+02 3.45444519e+02 3.22240997e+02 3.45286896e+02 + 3.65467499e+02 3.45374634e+02 4.09514038e+02 3.45594910e+02 + 4.53774719e+02 3.45820404e+02 4.97997437e+02 3.46061096e+02 + 1.43505447e+02 1.27874672e+02 1.87343292e+02 1.27433479e+02 + 2.30898880e+02 1.27023048e+02 2.75565521e+02 1.26636276e+02 + 3.20092255e+02 1.25958466e+02 3.64591217e+02 1.25504944e+02 + 4.09628693e+02 1.25057495e+02 4.54803223e+02 1.24450989e+02 + 5.00261169e+02 1.23958534e+02 1.44861130e+02 1.72272842e+02 + 1.88315582e+02 1.71844315e+02 2.32356735e+02 1.71390640e+02 + 2.76359558e+02 1.71000122e+02 3.20488647e+02 1.70691818e+02 + 3.64675415e+02 1.70417130e+02 4.09561768e+02 1.69982254e+02 + 4.54509674e+02 1.69534042e+02 4.99718079e+02 1.69195709e+02 + 1.45870331e+02 2.15713531e+02 1.89427536e+02 2.15578690e+02 + 2.33185333e+02 2.15471695e+02 2.77335876e+02 2.15358246e+02 + 3.20717773e+02 2.15080322e+02 3.64863586e+02 2.14717575e+02 + 4.09487305e+02 2.14494354e+02 4.54385742e+02 2.14292145e+02 + 4.99478180e+02 2.14005051e+02 1.46982910e+02 2.59625427e+02 + 1.90475876e+02 2.59513062e+02 2.33763733e+02 2.59446472e+02 + 2.77746002e+02 2.59352112e+02 3.21297058e+02 2.59239136e+02 + 3.65149567e+02 2.59061127e+02 4.09492767e+02 2.58898499e+02 + 4.54354279e+02 2.58814331e+02 4.99458160e+02 2.58582947e+02 + 1.48379242e+02 3.02594910e+02 1.91399002e+02 3.02569336e+02 + 2.34861633e+02 3.02513306e+02 2.78359772e+02 3.02440521e+02 + 3.21957611e+02 3.02399384e+02 3.65374756e+02 3.02328888e+02 + 4.09535828e+02 3.02375946e+02 4.54158600e+02 3.02440369e+02 + 4.98756989e+02 3.02470551e+02 1.49429703e+02 3.45288879e+02 + 1.92178604e+02 3.45419739e+02 2.35480392e+02 3.45339081e+02 + 2.78646545e+02 3.45316650e+02 3.22324005e+02 3.45257050e+02 + 3.65524536e+02 3.45372040e+02 4.09590546e+02 3.45658722e+02 + 4.53992249e+02 3.45898956e+02 4.98213928e+02 3.46154175e+02 + 1.43565170e+02 1.27901070e+02 1.87441406e+02 1.27473564e+02 + 2.31034607e+02 1.27079170e+02 2.75627716e+02 1.26755653e+02 + 3.20242493e+02 1.26173798e+02 3.64663849e+02 1.25583107e+02 + 4.09712769e+02 1.25172165e+02 4.54946198e+02 1.24602791e+02 + 5.00370636e+02 1.24165947e+02 1.45008652e+02 1.72260727e+02 + 1.88402908e+02 1.71865128e+02 2.32436203e+02 1.71490982e+02 + 2.76560638e+02 1.71134125e+02 3.20553802e+02 1.70771591e+02 + 3.64808746e+02 1.70484360e+02 4.09634125e+02 1.70096451e+02 + 4.54583618e+02 1.69607590e+02 4.99847198e+02 1.69307846e+02 + 1.45952637e+02 2.15699341e+02 1.89519974e+02 2.15570694e+02 + 2.33282455e+02 2.15492401e+02 2.77401489e+02 2.15378296e+02 + 3.20835175e+02 2.15143982e+02 3.64985565e+02 2.14802872e+02 + 4.09532410e+02 2.14543289e+02 4.54434814e+02 2.14373199e+02 + 4.99568970e+02 2.14142502e+02 1.47003464e+02 2.59586090e+02 + 1.90500702e+02 2.59506561e+02 2.33834808e+02 2.59452209e+02 + 2.77822693e+02 2.59357483e+02 3.21389435e+02 2.59249847e+02 + 3.65242096e+02 2.59131531e+02 4.09528107e+02 2.59035950e+02 + 4.54422791e+02 2.58870819e+02 4.99498108e+02 2.58730530e+02 + 1.48401108e+02 3.02581879e+02 1.91414551e+02 3.02552521e+02 + 2.34923965e+02 3.02515076e+02 2.78404785e+02 3.02441071e+02 + 3.22049683e+02 3.02395721e+02 3.65413269e+02 3.02335968e+02 + 4.09547455e+02 3.02389923e+02 4.54199127e+02 3.02450562e+02 + 4.98839722e+02 3.02487793e+02 1.49440445e+02 3.45229370e+02 + 1.92193665e+02 3.45380066e+02 2.35480225e+02 3.45330841e+02 + 2.78648712e+02 3.45287018e+02 3.22339630e+02 3.45261658e+02 + 3.65543579e+02 3.45375427e+02 4.09615875e+02 3.45676361e+02 + 4.53998993e+02 3.45927124e+02 4.98212311e+02 3.46165833e+02 + 1.43478546e+02 1.27925491e+02 1.87351120e+02 1.27475082e+02 + 2.30867538e+02 1.27054314e+02 2.75550079e+02 1.26677757e+02 + 3.20098022e+02 1.26102646e+02 3.64584991e+02 1.25528252e+02 + 4.09625488e+02 1.25124947e+02 4.54807800e+02 1.24512939e+02 + 5.00270508e+02 1.24020325e+02 1.44809296e+02 1.72304276e+02 + 1.88320328e+02 1.71916626e+02 2.32353378e+02 1.71500778e+02 + 2.76309967e+02 1.71079590e+02 3.20487854e+02 1.70741852e+02 + 3.64666870e+02 1.70449219e+02 4.09543640e+02 1.70037628e+02 + 4.54499969e+02 1.69557327e+02 4.99688568e+02 1.69246384e+02 + 1.45844147e+02 2.15741226e+02 1.89322556e+02 2.15586807e+02 + 2.33116302e+02 2.15496536e+02 2.77303680e+02 2.15387741e+02 + 3.20697205e+02 2.15125412e+02 3.64801849e+02 2.14757919e+02 + 4.09468811e+02 2.14510590e+02 4.54337769e+02 2.14318680e+02 + 4.99473938e+02 2.14036606e+02 1.46891418e+02 2.59657501e+02 + 1.90419983e+02 2.59538361e+02 2.33711578e+02 2.59454346e+02 + 2.77691467e+02 2.59359100e+02 3.21194672e+02 2.59248688e+02 + 3.65087646e+02 2.59068848e+02 4.09459137e+02 2.58850159e+02 + 4.54333435e+02 2.58771973e+02 4.99397888e+02 2.58542358e+02 + 1.48322418e+02 3.02634735e+02 1.91347397e+02 3.02575653e+02 + 2.34762985e+02 3.02520294e+02 2.78319580e+02 3.02457825e+02 + 3.21843872e+02 3.02387695e+02 3.65340851e+02 3.02301056e+02 + 4.09495697e+02 3.02347992e+02 4.54072906e+02 3.02388000e+02 + 4.98706299e+02 3.02440704e+02 1.49366852e+02 3.45342010e+02 + 1.92025406e+02 3.45458984e+02 2.35427994e+02 3.45365570e+02 + 2.78604370e+02 3.45307892e+02 3.22287842e+02 3.45208527e+02 + 3.65500244e+02 3.45313599e+02 4.09548828e+02 3.45565369e+02 + 4.53906036e+02 3.45810638e+02 4.98089050e+02 3.46052063e+02 + 1.43546722e+02 1.27883545e+02 1.87437637e+02 1.27470284e+02 + 2.30950180e+02 1.27051399e+02 2.75632172e+02 1.26669487e+02 + 3.20233673e+02 1.26107765e+02 3.64669647e+02 1.25573204e+02 + 4.09709747e+02 1.25138206e+02 4.54955505e+02 1.24550186e+02 + 5.00363342e+02 1.24121185e+02 1.44948532e+02 1.72246964e+02 + 1.88378662e+02 1.71850677e+02 2.32435211e+02 1.71466431e+02 + 2.76541229e+02 1.71124496e+02 3.20541229e+02 1.70760788e+02 + 3.64757996e+02 1.70472778e+02 4.09624237e+02 1.70080429e+02 + 4.54586578e+02 1.69592804e+02 4.99825226e+02 1.69303192e+02 + 1.45937286e+02 2.15701385e+02 1.89484543e+02 2.15558609e+02 + 2.33250687e+02 2.15489624e+02 2.77391449e+02 2.15357864e+02 + 3.20811218e+02 2.15138519e+02 3.64949280e+02 2.14787643e+02 + 4.09525116e+02 2.14535828e+02 4.54417419e+02 2.14356384e+02 + 4.99545502e+02 2.14112762e+02 1.47019760e+02 2.59579559e+02 + 1.90511002e+02 2.59506683e+02 2.33823837e+02 2.59450531e+02 + 2.77828278e+02 2.59354523e+02 3.21382507e+02 2.59248322e+02 + 3.65212769e+02 2.59127869e+02 4.09529053e+02 2.59007965e+02 + 4.54398834e+02 2.58878723e+02 4.99487518e+02 2.58702118e+02 + 1.48396255e+02 3.02580536e+02 1.91391586e+02 3.02553986e+02 + 2.34928604e+02 3.02519135e+02 2.78393829e+02 3.02442108e+02 + 3.22059509e+02 3.02400726e+02 3.65409760e+02 3.02336578e+02 + 4.09540497e+02 3.02375610e+02 4.54204681e+02 3.02440491e+02 + 4.98842865e+02 3.02494659e+02 1.49425217e+02 3.45259979e+02 + 1.92192337e+02 3.45379547e+02 2.35481049e+02 3.45341339e+02 + 2.78641754e+02 3.45282867e+02 3.22334412e+02 3.45253357e+02 + 3.65533295e+02 3.45355438e+02 4.09599457e+02 3.45652496e+02 + 4.54017731e+02 3.45946259e+02 4.98224213e+02 3.46165039e+02 + 1.43558548e+02 1.27894691e+02 1.87438934e+02 1.27471466e+02 + 2.30967209e+02 1.27068939e+02 2.75642303e+02 1.26713837e+02 + 3.20226898e+02 1.26103477e+02 3.64665924e+02 1.25566772e+02 + 4.09703369e+02 1.25164436e+02 4.54958191e+02 1.24567657e+02 + 5.00393890e+02 1.24130417e+02 1.44940689e+02 1.72262909e+02 + 1.88381348e+02 1.71889114e+02 2.32396942e+02 1.71476608e+02 + 2.76515717e+02 1.71101685e+02 3.20531342e+02 1.70762726e+02 + 3.64767944e+02 1.70485382e+02 4.09617950e+02 1.70084930e+02 + 4.54575684e+02 1.69602509e+02 4.99792725e+02 1.69305618e+02 + 1.45889679e+02 2.15709885e+02 1.89451950e+02 2.15593094e+02 + 2.33228271e+02 2.15505722e+02 2.77376221e+02 2.15393295e+02 + 3.20790253e+02 2.15164383e+02 3.64911896e+02 2.14791641e+02 + 4.09514954e+02 2.14537537e+02 4.54404968e+02 2.14370773e+02 + 4.99537201e+02 2.14128494e+02 1.46950104e+02 2.59641937e+02 + 1.90467117e+02 2.59536285e+02 2.33780197e+02 2.59467468e+02 + 2.77758118e+02 2.59375336e+02 3.21340271e+02 2.59257629e+02 + 3.65173065e+02 2.59118744e+02 4.09507690e+02 2.58993561e+02 + 4.54390289e+02 2.58887238e+02 4.99450012e+02 2.58706421e+02 + 1.48341934e+02 3.02634338e+02 1.91364548e+02 3.02594299e+02 + 2.34805725e+02 3.02544403e+02 2.78361145e+02 3.02464661e+02 + 3.21900391e+02 3.02428223e+02 3.65382263e+02 3.02360779e+02 + 4.09517303e+02 3.02401245e+02 4.54119049e+02 3.02434753e+02 + 4.98765259e+02 3.02491180e+02 1.49395279e+02 3.45395203e+02 + 1.92065216e+02 3.45500244e+02 2.35438629e+02 3.45424896e+02 + 2.78618622e+02 3.45391876e+02 3.22290497e+02 3.45312561e+02 + 3.65509399e+02 3.45395050e+02 4.09563385e+02 3.45671295e+02 + 4.53899445e+02 3.45916260e+02 4.98133636e+02 3.46149384e+02 + 1.43409439e+02 1.28066360e+02 1.87251526e+02 1.27532898e+02 + 2.30703873e+02 1.27152100e+02 2.75511810e+02 1.26693054e+02 + 3.19921539e+02 1.26191811e+02 3.64517639e+02 1.25548347e+02 + 4.09543671e+02 1.25131508e+02 4.54680481e+02 1.24503838e+02 + 5.00157745e+02 1.24023041e+02 1.44629929e+02 1.72389297e+02 + 1.88245499e+02 1.72068634e+02 2.32233826e+02 1.71630280e+02 + 2.76101501e+02 1.71141907e+02 3.20397125e+02 1.70788101e+02 + 3.64579498e+02 1.70455170e+02 4.09472870e+02 1.70043701e+02 + 4.54423004e+02 1.69523026e+02 4.99628845e+02 1.69229828e+02 + 1.45729218e+02 2.15845047e+02 1.89201294e+02 2.15653549e+02 + 2.33016800e+02 2.15538864e+02 2.77239380e+02 2.15434235e+02 + 3.20641785e+02 2.15158264e+02 3.64707184e+02 2.14771988e+02 + 4.09420563e+02 2.14524460e+02 4.54287537e+02 2.14322250e+02 + 4.99398438e+02 2.13981262e+02 1.46776794e+02 2.59738281e+02 + 1.90391678e+02 2.59593048e+02 2.33641235e+02 2.59478760e+02 + 2.77604248e+02 2.59383911e+02 3.21100800e+02 2.59261292e+02 + 3.64961548e+02 2.59068085e+02 4.09437042e+02 2.58847290e+02 + 4.54270416e+02 2.58721985e+02 4.99363647e+02 2.58507996e+02 + 1.48291595e+02 3.02659760e+02 1.91306641e+02 3.02598145e+02 + 2.34627411e+02 3.02533630e+02 2.78272949e+02 3.02462402e+02 + 3.21773285e+02 3.02402191e+02 3.65291687e+02 3.02303925e+02 + 4.09466675e+02 3.02343903e+02 4.53983521e+02 3.02362854e+02 + 4.98617889e+02 3.02392029e+02 1.49323730e+02 3.45467529e+02 + 1.91940506e+02 3.45543793e+02 2.35418304e+02 3.45396179e+02 + 2.78582336e+02 3.45365265e+02 3.22259827e+02 3.45242737e+02 + 3.65467438e+02 3.45297089e+02 4.09527344e+02 3.45570648e+02 + 4.53810974e+02 3.45760315e+02 4.98007263e+02 3.45977325e+02 + 1.43485870e+02 1.27980446e+02 1.87341751e+02 1.27492630e+02 + 2.30876770e+02 1.27103485e+02 2.75587708e+02 1.26702919e+02 + 3.20122223e+02 1.26164932e+02 3.64604950e+02 1.25593117e+02 + 4.09638855e+02 1.25134918e+02 4.54842224e+02 1.24562042e+02 + 5.00291351e+02 1.24121574e+02 1.44804626e+02 1.72338562e+02 + 1.88317551e+02 1.72005127e+02 2.32329300e+02 1.71593491e+02 + 2.76302704e+02 1.71140945e+02 3.20474243e+02 1.70779388e+02 + 3.64662415e+02 1.70461166e+02 4.09536987e+02 1.70050674e+02 + 4.54501953e+02 1.69575851e+02 4.99719269e+02 1.69275497e+02 + 1.45813568e+02 2.15776398e+02 1.89334839e+02 2.15612381e+02 + 2.33105972e+02 2.15514450e+02 2.77307281e+02 2.15410431e+02 + 3.20687836e+02 2.15165863e+02 3.64794495e+02 2.14782730e+02 + 4.09454529e+02 2.14530731e+02 4.54333038e+02 2.14340683e+02 + 4.99484253e+02 2.14039230e+02 1.46819733e+02 2.59698822e+02 + 1.90413162e+02 2.59575439e+02 2.33681183e+02 2.59469910e+02 + 2.77659332e+02 2.59383301e+02 3.21177826e+02 2.59263397e+02 + 3.65052429e+02 2.59098389e+02 4.09451691e+02 2.58878357e+02 + 4.54310852e+02 2.58779846e+02 4.99408417e+02 2.58527252e+02 + 1.48293869e+02 3.02665924e+02 1.91294464e+02 3.02618530e+02 + 2.34705368e+02 3.02531219e+02 2.78291016e+02 3.02469116e+02 + 3.21802856e+02 3.02402435e+02 3.65310150e+02 3.02327606e+02 + 4.09480591e+02 3.02353241e+02 4.54037354e+02 3.02383820e+02 + 4.98650177e+02 3.02427338e+02 1.49314240e+02 3.45503662e+02 + 1.91982300e+02 3.45549438e+02 2.35398346e+02 3.45448944e+02 + 2.78588470e+02 3.45419159e+02 3.22262634e+02 3.45277740e+02 + 3.65480438e+02 3.45344574e+02 4.09533813e+02 3.45581573e+02 + 4.53821289e+02 3.45788422e+02 4.98027832e+02 3.46030151e+02 + 1.43577011e+02 1.27864784e+02 1.87454956e+02 1.27448975e+02 + 2.31080139e+02 1.27061165e+02 2.75666901e+02 1.26669212e+02 + 3.20294189e+02 1.26174850e+02 3.64712769e+02 1.25576736e+02 + 4.09773621e+02 1.25176567e+02 4.55030487e+02 1.24588692e+02 + 5.00446167e+02 1.24173775e+02 1.45048126e+02 1.72287842e+02 + 1.88415298e+02 1.71825806e+02 2.32465469e+02 1.71469986e+02 + 2.76633881e+02 1.71146927e+02 3.20560303e+02 1.70781845e+02 + 3.64845093e+02 1.70474319e+02 4.09685028e+02 1.70107269e+02 + 4.54629364e+02 1.69626740e+02 4.99863312e+02 1.69327209e+02 + 1.45984634e+02 2.15697174e+02 1.89572708e+02 2.15554733e+02 + 2.33306732e+02 2.15500900e+02 2.77414764e+02 2.15402161e+02 + 3.20869843e+02 2.15160736e+02 3.65050995e+02 2.14823410e+02 + 4.09572021e+02 2.14561111e+02 4.54455231e+02 2.14399551e+02 + 4.99582520e+02 2.14186157e+02 1.47072556e+02 2.59606293e+02 + 1.90534637e+02 2.59511566e+02 2.33826355e+02 2.59443939e+02 + 2.77850128e+02 2.59361542e+02 3.21455017e+02 2.59260345e+02 + 3.65264709e+02 2.59128296e+02 4.09554840e+02 2.59020020e+02 + 4.54443542e+02 2.58932892e+02 4.99504852e+02 2.58728302e+02 + 1.48410965e+02 3.02586578e+02 1.91412201e+02 3.02550659e+02 + 2.34900909e+02 3.02513123e+02 2.78404022e+02 3.02448151e+02 + 3.22089600e+02 3.02392883e+02 3.65417175e+02 3.02328674e+02 + 4.09571899e+02 3.02382050e+02 4.54225311e+02 3.02439026e+02 + 4.98844330e+02 3.02491150e+02 1.49427032e+02 3.45254883e+02 + 1.92201111e+02 3.45374237e+02 2.35496902e+02 3.45319550e+02 + 2.78646393e+02 3.45330292e+02 3.22353485e+02 3.45258057e+02 + 3.65537537e+02 3.45347473e+02 4.09624176e+02 3.45657593e+02 + 4.54049408e+02 3.45915833e+02 4.98225098e+02 3.46166107e+02
diff --git a/include/DynamixelHandler.h b/include/DynamixelHandler.h new file mode 100644 index 0000000..c1d4ee6 --- /dev/null +++ b/include/DynamixelHandler.h @@ -0,0 +1,88 @@ +#if defined(__linux__) || defined(__APPLE__) +#include +#include +#include +#define STDIN_FILENO 0 +#elif defined(_WIN32) || defined(_WIN64) +#include +#endif + +#define _USE_MATH_DEFINES +#include + +// standard includes +#include +#include +#include +#include +#include + +// dynamixel sdk include +#include "dynamixel_sdk/dynamixel_sdk.h" + +// addresses of variables in the register +#define ADDR_XL320_CONTROL_MODE 11 +#define ADDR_XL320_TORQUE_ENABLE 24 +#define ADDR_XL320_GOAL_POSITION 30 +#define ADDR_XL320_GOAL_VELOCITY 32 +#define ADDR_XL320_PRESENT_POSITION 37 +#define ADDR_XL320_PRESENT_VELOCITY 39 +#define ADDR_XL320_HARDWARE_ERROR_STATUS 50 + +// rotation direction +#define ROT_DIRECTION_Q1 1 +#define ROT_DIRECTION_Q2 -1 +#define ROT_DIRECTION_QPEN 1 +// nb of joints +#define NB_JOINTS 3 + + +class DynamixelHandler +{ + +public: + DynamixelHandler(); + ~DynamixelHandler(); + +public: + bool openPort(); + void closePort(); + bool setBaudRate(int); + void setDeviceName(std::string); + void setProtocolVersion(float); + bool enableTorque(bool); + bool setControlMode(int iControlMode); + + bool readCurrentJointPosition(std::vector& vCurrentJointPosition); + bool readCurrentJointPosition(std::vector& vCurrentJointPosition); + bool sendTargetJointPosition(std::vector& vTargetJointPosition); + bool sendTargetJointPosition(std::vector& vTargetJointPosition); + bool sendTargetJointVelocity(std::vector& vTargetJointVelocity); + bool sendTargetJointVelocity(std::vector& vTargetJointVelocity); + int convertAngleToJointCmd(float fJointAngle); + float convertJointCmdToAngle(int iJointCmd); + int convertJointVelocityToJointCmd(float fJointVelocity); + +private: + std::string m_sDeviceName; + float m_fProtocolVersion; + int m_i32BaudRate; + + dynamixel::PortHandler* m_pPortHandler; + dynamixel::PacketHandler* m_pPacketHandler; + + bool m_bIsDeviceNameSet; + bool m_bIsProtocolVersionSet; + bool m_bIsPortOpened; + bool m_bIsBaudRateSet; + + int m_i32DxlCommunicationResult; // Communication result + uint8_t m_ui8DxlError; // Dynamixel error + std::vector m_vDxlCurrentPosition; // Present position + + float m_fMinJointCmd = 0; + float m_fMaxJointCmd = 1023; + float m_fMinJointAngle = -150.0f/180.0f*M_PI; + float m_fMaxJointAngle = 150.0f/180.0f*M_PI; + +}; \ No newline at end of file diff --git a/include/Kinematics.h b/include/Kinematics.h new file mode 100644 index 0000000..d465457 --- /dev/null +++ b/include/Kinematics.h @@ -0,0 +1,20 @@ +#define _USE_MATH_DEFINES +#include +#include +#include + +#include "opencv2/opencv.hpp" + +float deg2rad(float angle); + +float rad2deg(float angle); + +std::vector computeForwardKinematics(float q1, float q2, float L1, float L2); + +std::vector computeInverseKinematics(float x, float y, float L1, float L2); + +std::vector computeDifferentialKinematics(float q1, float q2, float L1, float L2); + +int computeJacobianMatrixRank(std::vector vJacobianMatrix, float threshold); + +cv::Mat computeInverseJacobianMatrix(std::vector vJacobianMatrix); diff --git a/lib/DynamixelHandler.o b/lib/DynamixelHandler.o new file mode 100644 index 0000000000000000000000000000000000000000..d0a886b986539c347e9a2a6f202200a7ca3e7db5 GIT binary patch literal 87104 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 H&E)?dbR^@7 literal 0 HcmV?d00001 diff --git a/lib/RedBallTracking.o b/lib/RedBallTracking.o new file mode 100644 index 0000000000000000000000000000000000000000..67e85cefe3a4d62172dd2f88894803b8e499d621 GIT binary patch literal 40536 zcmeHwd3;pW`S(eN5nL13;!+$CG$Mo~fFN}V%iu&=QUXX-9EM~9qal+f69iiY8)BIb z^AlUKwzd{OwXI#X3szBVTw3sLYiX;Nw%YQu`j)&{<)^-uT3X)cIp;a|e&;Sgx_sV$ zdOpmYbH3-<&U2o#+&lM%HSt+9%gf4?O=ap*<<=~!)X-kHT(67uDy>>H?I@}<&$;wD zPs&x4pD*RnlwTm_F_Mp^yjsfRD6f%nE#-Am9#8oMDNm&QLMcz8d@_A5lKK?NKR}<0 zrG5$JmrD6E$?GYfD&=XCPnUcK<#GDVlzM{l1}R@b`IS|kn*dfyh!qED8H6I3ljO)5Z&zS(f(8-zkLr^2;bk57;i{(QH$+)_UX4PhP}rEn-aIa{s>d%w=Ft&@L(dprBP>_ z5|p8qJ*1@=U+YLNE?Ao=Y|%W$_~u0Z=UcTxtGI-e+l@gz`^wh!<(d*j9x#nQi zR{p6(q1V{(qeT8!1{69gm1&}yGw;wm#`V1)P855Wu;sKMr6_x zx7Cr6a9d5^Z+(Ub=9(q3mxU?^>S+k7jX`?s>^*R-Jx0u7ZwfE7^?ZTSE`e#eOa2di)5uco<5#ZaV@l zJ!&QWYCHli9^g`4XAoCllrH8dJ?mc@rMvu5nm9_S{IGo1yK!uTyDHgo2?^ zWP1y}+IVLn5nJ-T`>C;K8-E|H*wnYKuVUS|DO?S5S;e~7Ntmr{C^{`&6}PW-DyfPM zT~sL;S$k4F`%kL)c#4pGU!r(QFG-;A*M=4bl_&1Dt6AC3OAqdrMV|lbM%iQ z0nXxR-1=6<)qS?F{ZW5=UiZI$FDtams^QFQfAs%cx0uCL#s)Ngms$;5&;I7za9eE6 zoo0(&xnpfH)qRfHpR6WlkRKs2W((N6z)*{`d;4-nz%%@?V)Z=e|9FLH=|BDN9AleI zy!5W+n%k>c#o|jexU-7AyC_Q(i_hz9(@x3?TMp=o;pusONTRrHHz8L!aoqDv<@(;A z0FiX1;$e-N-LK9DxOex{W1fJWje_i8|8plO^`qV&lh866_T3!i?#!q^fYnWF^&If_ zi8`z4ibc&$BdPoB?2hYue;Q~qqsHW_BQ=>U+(;99>kb;zCwO4NR&KD>f5;P`KAval zKC+6__TG1-#IvE)54u{Eg+g!k+7@S-F{VI+XH79xiV+su^He7QQ}OUp#UcA`Ok+q1q&#s_{02kD+VbKQ(~bBJ%G~-qMz_ z0b6;&c!Iw`M^#`$VG|z;3Pt{=e#M9gt|RO;C^9nzA~!!#UNWH8vnH$@&oVKOrO)MV zgU^RW?L50`ZRyZDjjPS>!(F{UU_6N-m0kV-AQC` z(N)wComckmkb0%mdF|u&p*kO3M}z8YT?^@*s&Nv6HmG=yuh=feN*U3$CX>LTALumSW|#dS}ZAOsD;q*D&VGS={1+W?z2;gTI)-$ z$h_CBo8@ppv9GT!pz67oTCwiygXr?)KKgQQn#%E8qS8J22NU#PS;DJ>P)4wSczDzA z>26Snz&lHtP$1pJ-8)FQ`d5^Y@tSD;(?6l4sRo+Jb%&m0C};0r*FrR-|9M(Z+$PU7 zMG5_%ETKGvC8!GpB3>f-{1VAW-YN0`_NBz7FHoSn{rcC)y!GE8bL_uC=C5h4xP8YV z=;vE4!A<&Cg{S*JUqXQH#o;@IKlfhe$}eG`8G=J(9!e~b#bEKG7{Ij(jl?yI$PTe6 zA=gHjVu&ANnL@HdtXIC@Z3>I`Kl`-(ZEZa-aQSVk^rh#P4$6GD!o5GL6`6{D3o|@$ z408!LCg=x0_lLbvdxtrr;1c-^yY(5ihJH|zUlQrJp_}(7^44(S4{LKgQ-TQlPK2X+Ock9jj>3pTS&oB86Pwtn?yLUM+%c*)?ODdNdw<6QrneEE9=8|ohm1#0Bxx8h3 zO-)VpsugXPrkV96b+@{b%%vNrG*4-r(lsSDB{PNP&F$cR#Kw+lj&-I#+@0x6cg0fe zu~g@>?iJLj>SNS`_8Z!>H@1_%H02T^J&#~Xp4R5&TwL| zOs866saSjZ##k%I1bt^$#8zfn(pd@%YF(k`FDFMW&$f}Zv4#~CCu(kIW?7~^)n>%1 zYZ~UvoVz%d?rM(RkX{|jbj3P|ql?Iwu8wtgk%Puw8f#kKoy)W@i?xt{hg%jcF4o;H zQI>9@5d7CCnkAIpT%**!sgCsB*?L{BzrCKPzn;}Jqx0SGB=QUBd4Tx-!h(15m0U;^ z2*@`M*+_HEp*7DEIQ041^z%{xkLE8nvYg%U>jcbaUL5pV!kT*es4Pb_s_QkSpig@^UZGs}eDnm06LfmHO)Gk84Gc1?3a)S3$W3%9EXPPhUNCn}+eJ zA$TEcMmFIc$RMk2r*zyD>JuWaF>%q(oCG6*;tp~d{jlYXMiYh7WD2Dnv@P{{cgjMX zU>jKrcF?00JJH1Af}Nz2F6ZIOk|_+wMrwmCvv%)jw%t6T;SdpxtHQmm*dyNAk?475 zGVPya@zEcQ=G14(_`U-8AjZ$;u%bkvesY3-z#Q&WdiqY;%5!*M#gmmi@0E2A*7s}o zM)l91^i0fgn$qbWiP&CmM}^CFbh&Itk<>I+8NSAt(Ik1kap?B=0Wo_|p?=Us@dGzo zW9kbF4kVg?k$Ccz@28Rjf+(EL7jhdF^GYj+6tbZ6b4fd?qm(H`f#*WQ8(zZobH|eXmg&{AvR)V!ze4&Ko9Aob251NM|RMPC`I{;Mq7GfMrX{HNu=9IO5wjov#-J#y3;RNgc=`i-$_%i!pv zqtxEPkO_B=RSzE>eSVZ$drb5b=c>;f6Mb`(>OUrW*SYEo$6ocjG3wo8qwk)p z)*T=H_POez6QXyVr@lgS<~;Rg#jsb-Q$MVXK6akkcw+SXW7MrDMPIH`>rakus#3o? znUNi*M8AE$`q`<`{wj6vX^hC5%%kF z-dAWG#A@;;gZabs)L;Tzm&^)}F-|nJm*>qc=xpUQJ4oC=LMP7-Qn2sFV7Jc?;>KN! z@7u~d&J%n{w+^9a>-Nzc*iGi{dEzKl{-kZ#$Q^JmM@&=)c#m!g$M@0Av<3V%o4&wp-U~Z>g)Pu9;9>d%nRnJC6zP1ibHDK4$@6GxaeRp%151 zOs2|iny1QERhFH3+~6S_X$;RIoIjlSSz8r9q4Ku!>Bk?nlnAKGZ5K06iJxh8+RLYE z0&c&SaY`5Qm*wwp`9I1yB`wFcce(AKGtG(~#Bup&y6ulkyS@!-`P1e@n0OVFFaM?%a28{f%5G|$r9C_N9H@)3AND+n$j2IJSS(v~xcyMgM21?CZw{SI$O}!_P#ksSQ|8d|({r4@O!9nmo60qv9wV6uL3VR{OxlBDgrCE+`kEluQSkgF^Z*=WgD{}N2 zV`*C5_RZ3MeTklwCSW`Iq&;YSxP7;@hpiEMVI(>oZ`M!cGqn5|;W1t~DV@$=w!P8V z$52?}@EfH5=U`BKL}_b%O%XNRhcOUQBSP?VeE6w^lqnaNX&~=IxN1&9n(LRiUh#C`uj}5`ch2Z>F zh(ARXzaipJ5v8NY*AP+s=7>K<%#P=4h$wwaE&#vShcOUQ`fUeaTSW1w`BOyI`$0k? zYFY?BJp`W-g7X_KrD;7?Io|9ILmLmg&NEIA3F>6=ZwjvOL+G+;{{dy?Ffa6cBz!~% z)Q5a>7>KBALh$QC@MH+S#D{O!0VA6TwEkY>c9nvLaxTka4e(Hn)7u4}RIBm99#pA$ z8n>&S+kAt@?W*VEcWB&3zl(3yxQ%`ne^BG}gtjL=t#Ll7m!=mresU>DwSJA;)4SU| zSi9^r7m(7K8mB{wC)H?ts0XEY*EEh%U`TG&xJ*Xi`mDw!cmRJ$yH$%GN->avtAqWF~JPZ8yh zTc(OAf7}|}AGZeg$F0H7;LMjI${){66mhPAOIac+ES~k%RSEHrDKtmGxybHE{Te^l zp}j&%r_jjoVe+y{23gLf@hB(T<#prF2IK{vD0G=PrFM zPCWlB1b;>2V;%YS`QHk` zpVzpxS}A>PPdfgfarfM1NBYkipXT(}mX4vNWCWZWt(?;}?w%WG2xk@H!^_?M)UGTu zH2o!xe0_aSwGR>Q-z}8NhT!8u@Q-QvetYiFxO-mxmRRtm5IH{$!Cwl&{}h5BMN91n zINw@7pP})3#}AiEsaoT69Nf;3=^D4Ap_~)&LXA&%=;KoA)VLiDrTF~H>Ay7Yp2w~< zuv$Uqkdx?~X=fhakKpuWq7NFE-641_4RjFw4Iy|T1m6^b|1<=zr7bE*Z(9g{a|nKS z2>uY^?4Q3_zsS~oENy`!;2duKKP&{V)%X?0x%6%4``i$G1>vms3$)&F;`=h3ItdTz z@0t+2F9iQ-2>yHs{@W1zeYE8V*>hG1K0E}k3c<&P;FCh|%R=yY2;LKde?A0%A_V_a z2!1>reS-WmECgQ?f`69q5pdmfy$J{PU5z(NP4071?TrvQ7toPw1YE~e3FlP8gY5ih z2>wC{K8}uVL2{Zx@Owk>cSG>wY2yx(KP&{V3c;rmKEhe`-1Ei)jn8rXY5jA(#^?I* zwHo*P|1rXY?0hW*A4J4KF0#dw}jBIA)NmC(x(}hwGJEa z521fN1XuIYEz?qMZS(1Is~hMUqUz?34wbyRDL1S3qK-_uIelZMD@~85wbKJj-OV}E zG&z~fWHapG-_) zNtY}W);@u{*p*A=GR;YLKql3exru7@2w$qbg*tEC#Pym?MkOzwHFw(7S;W%4G}(|$ zUR_ti4~3aW(HiZ8f?ac(a+8wm!P?r|x}_<4IE{4BQ)%G(ymT3b3qcl z4fCvHt;7-n6gkP*SSr`c&c;CpxC$~RQMD;^Q<^9m$;op) zht`QKG}(}egKEThM76RD8!7yALg}C-UYtI$p=DNPLVQ-HmPdcBsEx5o0?N?G|CMvthl)EZZ?9@C?m<05B8QAF@a+=o@u<&&VZ0sGS2Cz zHOT=|O=NykZE%p)IYH*oPp@^b5_O??opDcSKoa9&BG$E{MB@ywq$D1v14C)UAvnA- zTI=OJG{KB8ooJ;$Jjqm_+yE+ak!J?#Ddg&O=1gtCoT+u@jOKEkpeG&+nQ>KhXS%hT z*7{Yek{$HGZI+%<&E!@mSJv1_rRbj2nQlv`y7Y=GOW)j?Gn?Y`lk=xen-#YqG`Tg^ zm7Cd_PRAQrY*YFZJZ1k>O@u zi}dWWav5k|X~)fxKgnGTc*~6IwP4^|M9F;PZLY~YiZ0V>;9E|nX|f){ftzAOoI74y z3${$obj_vb=hH2^^G&%4^cc4}WVCfP`1ii}Ji^AC9WrYkp>AlNpNuz6Og3KGOyk>> zBfij0Gk}{SlNMvzLV1M=b4k;LBx%qKw$?Er-QLm`q$bEd(Qu)0UAC<&-Z*n!Q?@DT zghGi&GOOaIE4;s#w1^XHFVaT{eklK+J3(aTWvExqKbajiP+_@pAa`8|+DF~BCa9Hp zSEMrStVSPUY?1N-d=qICPi7VkcCSo`w`z;`iFRh5TZ`^i)T#yE9FV zW@XVcrlhHK%IGL5X`jI15wbq&!wWC96K_h>dmr(Vecv8#Cbehv0n%BIE^=NX5V3g7 z4Aj(Amo)#RbCa7_=B9JR9;pC#S#{S!@(CP_N;dlGwF5eAW!mSZ+LzIhpHF2ag5t(( z(@?U%>)A?E5{`a$j0ml(rPyoImq^`waF4g8`L&mLro_WkaoMfFi8K;?`Qf)E$O^Kr zR7xhJ$zad0f-h{zw54+Y4#|^NWVv@;K}Ii?A)nBep}pI5!GB)i$OBiVwq#Nl<>&o=%xSkMAykgrh zM9l4rd*x6kQ(Uj}c;QwzkYI-C4%f2eUfnBakt8L-l#XQ(L3HMXnTD4jZtr}TAZ`;f zxLbygL7JL!lQY?_ByH;H2@Q0)LercMg~^t#Y;rkWQ@5pgSiD5W^>oRcN>YfgqB{|i zMo7-LM(8IKb(Z{OJ5F%EU3({e=p}HS>>YZ>HvpceGAG9GqK~D2fI&)(f0{lP{~m*s z7{8l77Vo1nC&oWRAB#W7ASG)j-44|01<4ub-v%uGZv2Bfk8*w~xHlet2lN;Z?|I~Zlls6ZD)Y}f zzUFxlH~zn4$khiz=vxJ6HSC{9g#N=J^q=$4Zxi~jgwX%OL;tkUzZ^n8ggZpZ+Oxw{ z)yaZ;`+EuCn~B!Ob2H!=C+&b^eBKH;%Gm%o((~`_oH)aHei87mP@A=9ui&;{&oeWn zw}GD5KucfFgF%U#ze*pAp9nb0KUZ)oe?K!*ss?(Le+l3yKkkt;QpTyD~Eq?=fr;a27N3(DujM4(DPie^zjh-*+Bm- zpihR-FAJex9YS9KdbIy8pnnkb-WP&@BLx3`2>w(E{w&}Rf!>{f^AL@c@qJlv_W!qm z{xzUS`(FooUVE(n-wmPv8{lZqpuxmU$;R_cvFAj=z4n|A^k`2EaFl-@;N0I9kv}0s zK0lAZiS>S$KDJ*e!1=6V@p}Qk5Ag2;j_cA-1h@U&AolzcaNMVMfgIdlUJ=~8zx)a4 zaep~}2pLC-`*kaQto>(&;1dDI{w@G~6Uez9aP03I!EJvZm;T-cIQEyHo8ZKDVt@I$ z2~OVrZU%bnum0;>M9*@z(8u<72hcwZ_=|#DI}eDRF9VKtz5;U4&esL^+WBXoM>|K- z^B0`F<8le$tEt`EzYy^61D*!_BY=Ml@Y@034EQ5}KMMG#0N(-l7Xkkj;22l?07v_e zK8BbnaevW%ey)TQ<7oeQ!R@$=V*IR{=-={0(rFGxAsxN{Riml|I&<@ql*&J`Hg6=LZ2t`XwQF7Vz~T z{}#Y;+&>LC_Uj?Qv0pm@e+=aR9&oht4ZyKqe*+xtIqf(SN{Ri3_FNA57 zVtPLFTKsmvk^TX|k^V`*vA?eY{shQ>2XO3fgq}m;#P%S5QV2dAaP&_D;6ET)wqHv_ z@HK#M1p4~`?*n`*;Mm_^0*?NF9dM+tqUT~baetqrkG1myfTJI-037@KA;6J-Ip7%2 z8v#fEd^H6B5#Z>bJ%IOt{bdzYp~U^d{+u}8HxUKM zhbo{)KTHK2{m=+F`XLE8`k@{0ZnDYx`4+*gJ^c4QIhj9*XYAijbxZ$65B*2Q{;vU! z=hX)VXFuEnavl|YG+}sNeFo_9y!r~r=j&Ya{u;f11~}?{1LUCI^3#Z!65F$bKDJ-S z3GTJ$eL#=)TmU$(16PLNH-zB%5d7{C{40Pz3-&(@INI~W5d3+-F@F9Kf}i|8QbvjW zhH*6v@B+12e@*}#>E{BDdan<`djZGwc{AWRAGZUJ^sfNk4R-zy;7G5A5)mctFVa_p z;O7C3{+|Xo%K0GRsJ9Jpr2j|={;3fB>wu&D9|4Z?UjQ8GUj-cL-v%7}d&cS7Z9c!9 z4>-!73^>Za9B`E14mi@^3^>Z)065a$131cm3UH+VIp8RNH{eMBCg3Rlv@?SJQwuom zv-1GIn^^7qx*l+xU#kH}d+q=n=gU_CNBK_zj`DW`j`H^aj{W^}2wrif>j$JC7J`or z!Q+5G3;tOQILdDe!Pfzfe)v=felOs-?tKyP4Pejj0LSb1zXJXo&<{Q<*gs=J@JWE9 zJr@Ix_Ot{3Gtm1P!FgNfwa>=ey+Hp0;9mmz7XkkU;3((2g7ZH6E1-W25TFJos@!|B?rvBlNpH_&mX1_23tZoIM`=YN3DKgI_23J`Zkx zFL}p{{-OI0saxddqVKr z0mpS1`-|(<7l3{P$e#;%5%39s<9&v({_eINn4wHa^DzJ;r$)aO^LR%LnQ^&wWRNnGF@BOM>hBofa%)86^?=JQ0gc}PxSb>1uom!BHKqB=11^_hy5WAn z<&s6?-vr!_5jXq5*6qs{tpT&24aWT<}K!f#^9Bj_R8yfp5MV26AhVV+_tp1z$I|Tm|OUz2X1m+0ILq-_fwS! z5gG7G8aiLUuEnpA>UX_L9mRreyMFD<$H?!Q@_Sy`zy|x@_6nBld+{r@gZABd`CRSh7bbXnFP-JpV(Wc)r@=)AGOfK<;dhd@h@%O0V|oi(~s~u_)-`1*tzeF z$oq4LA|X@s!|pyBe2iVsbLgb+VRm;R;8$+x{dRf-TSi6ymnqcKYJT~>t@==JQdT!- zSMZw^s+#_1nRGS%A?303vU&3jQm6Oqt2;XBKb+~zS>fsBN&SC|sOn{%*={~b{&Q(6 ztjuF8lJH~vOdA0Is{#6N9{~Tp0R7Vkz`s9$|C0mYS90#e z@%z*O`0d~IM*q(k0Kfek>&PD;0DqO(kK@-q0REZ){+R>dpB%t{`2hIs^()$+7yy4l z^rQb82Eac*fd9?`@GlAAzhVIVZ2|mO4uF4^@T31`4S?U?4?zF*1n|cQV^wlnl}aYr z=d6E=7wOa_W?3?QZ9j-=^$ubRLl>I-A-Oo`^^=RXKla|jxrDJyxh$oUNz3qJ--48T z^^YNpWrp#4>Am#}MP@nWn3jwFdXHdhzoq4C(4hYB;2*On+4sb_|L4%h^4tFNp2#*G z`D$kZ~zg7}{oevVm8UVgSq+wW=EC^s;zolM7L<+Y!mwFuHbYy>q> z;xiK_j~e~%Vvzm^M1PGiv;Hdjc=h)Y7NmcX=;t#JCa?a-s4+`-iMD^yojnuj93!|891W{@;lH$wrLx z?bUyNi2lg|`uYBjSO3)^`cLA?LJ9BfaowwbL5Tk4qJJneQCdnLo~vH{w}j}g6a9zl z|LPF^YXkZ}K0yD2A^NWu{SOllCU5`07NY;50R0?G-u^!uqCYm$Xq|z|sqEGNOo;y7 z0s1Ee=>MJQFZT#;5&az7n25Y24I)0qyzA$3;r~_%wcmdFFZTlHPbL3&MX67JoA}}D zH?RMOiGHvBr;Rd<#|yvBy!JPQ*gsPEpRbtN-B; z{*A)VXLd|p{+C1eUljh&A~Th}{QP`DQ2*6UhH;7TFQt42eZ2jr{|`@(pEv$G50h<=%AvH~#mB@HYzoNXsZW4R=X;B7{FD z{8c5?{`mWK2><7fkpI09{%3?=rmZcnTYa|C)@{ze6Vg9bZwVw{ z9$^26sLk@(as7?hAMp&#qQmI7>Rzz=J^X6}^j{O8|EQ>mAMZM`MD+9ZEhfAE+Pp&e zk%r3~gx`x>K8v4C{DZ0DF<)&I{+K0{-1^VLlSIFl{~_V8r*=$U{yJ(88o#^6fA;@l zTS`Kf(8u!I@#Fq@brYoai9;8i!ZoFu>C;9ZFaObmd1H?tm5B4VQuaM4Q!`^_%bfFX R7eV|x*BGjVr~h96|36;BwyyvH literal 0 HcmV?d00001 diff --git a/lib/RobotServoing.o b/lib/RobotServoing.o new file mode 100644 index 0000000000000000000000000000000000000000..7d29a8bd6a5a012180fd8ebd8fb671b4b784fceb GIT binary patch literal 191304 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 literal 0 HcmV?d00001 diff --git a/makefile b/makefile index 0e74847..d61c5c6 100644 --- a/makefile +++ b/makefile @@ -1,11 +1,24 @@ -all: CameraCalibration RedBallDetection +all: CameraCalibration RedBallDetection RedBallTracking Kinematics Dxl RobotServoing g++ lib/CameraCalibration.o -o bin/CameraCalibration -L/usr/lib/x86_64-linux-gnu `pkg-config --libs opencv4` g++ lib/RedBallDetection.o -o bin/RedBallDetection -L/usr/lib/x86_64-linux-gnu `pkg-config --libs opencv4` + g++ lib/RedBallTracking.o -o bin/RedBallTracking -L/usr/lib/x86_64-linux-gnu `pkg-config --libs opencv4` + g++ -o bin/RobotServoing lib/RobotServoing.o lib/Kinematics.o lib/DynamixelHandler.o -L/usr/local/lib/ -ldxl_x64_cpp -lrt -L/usr/lib/x86_64-linux-gnu `pkg-config --libs opencv4` CameraCalibration: src/CameraCalibration.cpp g++ -c src/CameraCalibration.cpp -o lib/CameraCalibration.o -I./include -I/usr/include/opencv4 RedBallDetection: src/RedBallDetection.cpp g++ -c src/RedBallDetection.cpp -o lib/RedBallDetection.o -I./include -I/usr/include/opencv4 +RedBallTracking: src/RedBallTracking.cpp + g++ -c src/RedBallTracking.cpp -o lib/RedBallTracking.o -I./include -I/usr/include/opencv4 +RobotServoing: src/RobotServoing.cpp + g++ -c src/RobotServoing.cpp -o lib/RobotServoing.o -I./include -I/usr/include/opencv4 + +Kinematics: src/Kinematics.cpp + g++ -c src/Kinematics.cpp -o lib/Kinematics.o -I./include -I/usr/include/opencv4 + +Dxl: src/DynamixelHandler.cpp + g++ -c src/DynamixelHandler.cpp -o lib/DynamixelHandler.o -I./include -I/usr/local/include + clean: rm lib/*.o rm bin/* diff --git a/src/DynamixelHandler.cpp b/src/DynamixelHandler.cpp new file mode 100644 index 0000000..372d381 --- /dev/null +++ b/src/DynamixelHandler.cpp @@ -0,0 +1,407 @@ +#include "DynamixelHandler.h" + +DynamixelHandler::DynamixelHandler(): + m_sDeviceName(""), m_fProtocolVersion(0.0), m_i32BaudRate(0), + m_pPacketHandler(nullptr), m_pPortHandler(nullptr), + m_bIsDeviceNameSet(false), m_bIsProtocolVersionSet(false), m_bIsPortOpened(false), m_bIsBaudRateSet(false), + m_ui8DxlError(0), m_i32DxlCommunicationResult(COMM_TX_FAIL) +{ + +} + +DynamixelHandler::~DynamixelHandler() +{ + +} + +int DynamixelHandler::convertJointVelocityToJointCmd(float fJointVelocity) +{ + if (fJointVelocity == 0.0f) + return 0; + + float a = 0.0f; + float b = 0.0f; + if (fJointVelocity>0) + { + float l_fMaxJointCmd = 1023; + float l_fMinJointCmd = 0; + float l_fMaxJointVelocity = 114 * 60.0f * 2 * M_PI; + float l_fMinJointAngle = 0.0f; + // y = ax + b + a = (l_fMaxJointCmd-l_fMinJointCmd) / (l_fMaxJointVelocity - l_fMinJointAngle); + b = l_fMinJointCmd - a * l_fMinJointAngle; + } + + if (fJointVelocity<0) + { + float l_fMaxJointCmd = 2047; + float l_fMinJointCmd = 1024; + float l_fMaxJointVelocity = 0.0f; + float l_fMinJointAngle = -114 * 60.0f * 2 * M_PI; + // y = ax + b + a = (l_fMaxJointCmd-l_fMinJointCmd) / (l_fMaxJointVelocity - l_fMinJointAngle); + b = l_fMinJointCmd - a * l_fMinJointAngle; + } + + float jointCmd = a * fJointVelocity + b; + return (int)jointCmd; +} + +int DynamixelHandler::convertAngleToJointCmd(float fJointAngle) +{ + // y = ax + b + float a = (m_fMaxJointCmd-m_fMinJointCmd) / (m_fMaxJointAngle - m_fMinJointAngle); + float b = m_fMinJointCmd - a * m_fMinJointAngle; + float jointCmd = a * fJointAngle + b; + return (int)jointCmd; +} + +float DynamixelHandler::convertJointCmdToAngle(int iJointCmd) +{ + // y = ax + b + float a = (m_fMaxJointAngle - m_fMinJointAngle) / (m_fMaxJointCmd-m_fMinJointCmd); + float b = m_fMinJointAngle - a * m_fMinJointCmd; + float jointAngle = a * iJointCmd + b; + return jointAngle; +} + +bool DynamixelHandler::openPort() +{ + if (m_pPortHandler == nullptr) + { + std::cout << "[ERROR](DynamixelHandler::openPort) m_pPortHandler is null!" << std::endl; + m_bIsPortOpened = false; + return m_bIsPortOpened; + } + + if (!m_bIsDeviceNameSet) + { + std::cout << "[ERROR](DynamixelHandler::openPort) m_sDeviceName is not set!" << std::endl; + m_bIsPortOpened = false; + return m_bIsPortOpened; + } + + if (m_bIsPortOpened) + { + std::cout << "[WARNING](DynamixelHandler::openPort) port is already opened!" << std::endl; + return m_bIsPortOpened; + } + + if (m_pPortHandler->openPort()) + { + std::cout << "[INFO](DynamixelHandler::openPort) Succeeded to open the port!" << std::endl; + m_bIsPortOpened = true; + } + else + { + std::cout << "[ERROR](DynamixelHandler::openPort) Failed to open the port!" << std::endl; + m_bIsPortOpened = false; + } + return m_bIsPortOpened; +} + +void DynamixelHandler::closePort() +{ + if (m_pPortHandler == nullptr) + { + std::cout << "[ERROR](DynamixelHandler::closePort) m_pPortHandler is null!" << std::endl; + m_bIsPortOpened = false; + return; + } + + if (!m_bIsPortOpened) + { + std::cout << "[WARNING](DynamixelHandler::openPort) port is already closed!" << std::endl; + return; + } + + m_pPortHandler->closePort(); + + std::cout << "[INFO](DynamixelHandler::closePort) Succeeded to close the port!" << std::endl; + m_bIsPortOpened = false; +} + +bool DynamixelHandler::setBaudRate(int i32BaudRate) +{ + m_i32BaudRate = i32BaudRate; + + if (nullptr != m_pPortHandler) + { + if (m_pPortHandler->setBaudRate(m_i32BaudRate)) + { + std::cout << "[INFO](DynamixelHandler::setBaudRate) Succeeded to change the baudrate!" << std::endl; + m_bIsBaudRateSet = true; + } + else + { + std::cout << "[ERROR](DynamixelHandler::setBaudRate) Failed to change the baudrate!" << std::endl; + m_bIsBaudRateSet = false; + } + } + else + { + std::cout << "[ERROR](DynamixelHandler::setBaudRate) m_pPortHandler is null!" << std::endl; + m_bIsBaudRateSet = false; + } + return m_bIsBaudRateSet; +} + +void DynamixelHandler::setDeviceName(std::string sDeviceName) +{ + m_sDeviceName = sDeviceName; + m_bIsDeviceNameSet = true; + + if (nullptr != m_pPortHandler) + { + delete m_pPortHandler; + m_pPortHandler = nullptr; + } + + // Initialize PortHandler instance + m_pPortHandler = dynamixel::PortHandler::getPortHandler(m_sDeviceName.c_str()); +} + +void DynamixelHandler::setProtocolVersion(float fProtocolVersion) +{ + m_fProtocolVersion = fProtocolVersion; + m_bIsProtocolVersionSet = true; + + if (nullptr != m_pPacketHandler) + { + delete m_pPacketHandler; + m_pPacketHandler = nullptr; + } + + m_pPacketHandler = dynamixel::PacketHandler::getPacketHandler(m_fProtocolVersion); +} + +bool DynamixelHandler::readCurrentJointPosition(std::vector& vCurrentJointPosition) +{ + // Creates a vector of joint position + std::vector l_vCurrentJointPosition; + // Reads the current joint positions in motor command unit + bool bIsReadSuccessfull = this->readCurrentJointPosition(l_vCurrentJointPosition); + //std::cout << "l_vCurrentJointPosition= " << l_vCurrentJointPosition[0] << ", " << l_vCurrentJointPosition[1] << ", " << l_vCurrentJointPosition[2]<< std::endl; + + // q1 + vCurrentJointPosition.push_back(ROT_DIRECTION_Q1*convertJointCmdToAngle(l_vCurrentJointPosition[0])); + // qpen + vCurrentJointPosition.push_back(ROT_DIRECTION_QPEN*convertJointCmdToAngle(l_vCurrentJointPosition[1])); + // q2 + vCurrentJointPosition.push_back(ROT_DIRECTION_Q2*convertJointCmdToAngle(l_vCurrentJointPosition[2])); + + //std::cout << "vCurrentJointPosition= " << vCurrentJointPosition[0] << ", " << vCurrentJointPosition[1] << ", " << vCurrentJointPosition[2]<< std::endl; + + return bIsReadSuccessfull; +} + +bool DynamixelHandler::readCurrentJointPosition(std::vector& vCurrentJointPosition) +{ + bool bIsReadSuccessfull = false; + + for (unsigned int l_joint = 0; l_joint < NB_JOINTS; l_joint++) + { + int dxl_comm_result = COMM_TX_FAIL; // Communication result + uint8_t dxl_error = 0; + uint16_t dxl_present_position = 0; + + dxl_comm_result = m_pPacketHandler->read2ByteTxRx(m_pPortHandler, l_joint + 1, ADDR_XL320_PRESENT_POSITION, &dxl_present_position, &dxl_error); + if (dxl_comm_result != COMM_SUCCESS) + { + //std::cout << "[ERROR] " << m_pPacketHandler->getTxRxResult(dxl_comm_result) << std::endl; + bIsReadSuccessfull = false; + } + else if (dxl_error != 0) + { + //std::cout << "[ERROR] " << m_pPacketHandler->getRxPacketError(dxl_error) << std::endl; + bIsReadSuccessfull = false; + } + else + { + vCurrentJointPosition.push_back(dxl_present_position); + bIsReadSuccessfull = true; + } + } + + return bIsReadSuccessfull; +} + +bool DynamixelHandler::sendTargetJointPosition(std::vector& vTargetJointPosition) +{ + // Checks if the input vector has the right size + if (vTargetJointPosition.size() != NB_JOINTS) + { + std::cout << "[ERROR] (sendTargetJointPosition) Input vector has not the right size!" << std::endl; + return false; + } + + // Creates a vector of motor commands + std::vector l_vTargetJointPosition; + // q1 + l_vTargetJointPosition.push_back(convertAngleToJointCmd(ROT_DIRECTION_Q1*vTargetJointPosition[0])); + // qpen + l_vTargetJointPosition.push_back(convertAngleToJointCmd(ROT_DIRECTION_QPEN*vTargetJointPosition[1])); + // q2 + l_vTargetJointPosition.push_back(convertAngleToJointCmd(ROT_DIRECTION_Q2*vTargetJointPosition[2])); + + //std::cout << "l_vTargetJointPosition= " << l_vTargetJointPosition[0] << ", " << l_vTargetJointPosition[1] << ", " << l_vTargetJointPosition[2]<< std::endl; + + // call the dxl sendTargetJointPosition + bool bIsSendSuccessfull = this->sendTargetJointPosition(l_vTargetJointPosition); + + return bIsSendSuccessfull; +} + +bool DynamixelHandler::sendTargetJointPosition(std::vector& vTargetJointPosition) +{ + bool bIsSendSuccessfull = false; + + // checks if the vector size is correct + if (vTargetJointPosition.size() != NB_JOINTS) + { + std::cout << "[ERROR] (DynamixelHandler::sendTargetJointPosition): Size of command vector is not correct: " << vTargetJointPosition.size() << " instead of " << NB_JOINTS << "!" << std::endl; + bIsSendSuccessfull = false; + } + + for (unsigned int l_joint = 0; l_joint < NB_JOINTS; l_joint++) + { + int dxl_comm_result = COMM_TX_FAIL; // Communication result + uint8_t dxl_error = 0; + uint16_t dxl_present_position = 0; + dxl_comm_result = m_pPacketHandler->write2ByteTxRx(m_pPortHandler, l_joint + 1, ADDR_XL320_GOAL_POSITION, vTargetJointPosition[l_joint], &dxl_error); + if (dxl_comm_result != COMM_SUCCESS) + { + //std::cout << "[ERROR] (DynamixelHandler::sendTargetJointPosition): " << m_pPacketHandler->getTxRxResult(dxl_comm_result) << std::endl; + bIsSendSuccessfull = false; + } + else if (dxl_error != 0) + { + //std::cout << "[ERROR] (DynamixelHandler::sendTargetJointPosition): " << m_pPacketHandler->getRxPacketError(dxl_error) << std::endl; + bIsSendSuccessfull = false; + } + else + { + bIsSendSuccessfull = true; + } + } + return bIsSendSuccessfull; + +} + +bool DynamixelHandler::sendTargetJointVelocity(std::vector& vTargetJointVelocity) +{ + // Checks if the input vector has the right size + if (vTargetJointVelocity.size() != NB_JOINTS) + { + std::cout << "[ERROR] (sendTargetJointVelocity) Input vector has not the right size!" << std::endl; + return false; + } + + // Creates a vector of motor commands + std::vector l_vTargetJointVelocity; + // q1 + l_vTargetJointVelocity.push_back(convertJointVelocityToJointCmd(ROT_DIRECTION_Q1*vTargetJointVelocity[0])); + // qpen + l_vTargetJointVelocity.push_back(convertJointVelocityToJointCmd(ROT_DIRECTION_QPEN*vTargetJointVelocity[1])); + // q2 + l_vTargetJointVelocity.push_back(convertJointVelocityToJointCmd(ROT_DIRECTION_Q2*vTargetJointVelocity[2])); + + std::cout << "l_vTargetJointVelocity= " << l_vTargetJointVelocity[0] << ", " << l_vTargetJointVelocity[1] << ", " << l_vTargetJointVelocity[2]<< std::endl; + + // call the dxl sendTargetJointPosition + bool bIsSendSuccessfull = this->sendTargetJointVelocity(l_vTargetJointVelocity); + + return bIsSendSuccessfull; +} + +bool DynamixelHandler::sendTargetJointVelocity(std::vector& vTargetJointVelocity) +{ + bool bIsSendSuccessfull = false; + + // checks if the vector size is correct + if (vTargetJointVelocity.size() != NB_JOINTS) + { + std::cout << "[ERROR] (DynamixelHandler::sendTargetJointVelocity): Size of command vector is not correct: " << vTargetJointVelocity.size() << " instead of " << NB_JOINTS << "!" << std::endl; + bIsSendSuccessfull = false; + } + + for (unsigned int l_joint = 0; l_joint < NB_JOINTS; l_joint++) + { + int dxl_comm_result = COMM_TX_FAIL; // Communication result + uint8_t dxl_error = 0; + uint16_t dxl_present_position = 0; + dxl_comm_result = m_pPacketHandler->write2ByteTxRx(m_pPortHandler, l_joint + 1, ADDR_XL320_GOAL_VELOCITY, vTargetJointVelocity[l_joint], &dxl_error); + if (dxl_comm_result != COMM_SUCCESS) + { + //std::cout << "[ERROR] (DynamixelHandler::sendTargetJointPosition): " << m_pPacketHandler->getTxRxResult(dxl_comm_result) << std::endl; + bIsSendSuccessfull = false; + } + else if (dxl_error != 0) + { + //std::cout << "[ERROR] (DynamixelHandler::sendTargetJointPosition): " << m_pPacketHandler->getRxPacketError(dxl_error) << std::endl; + bIsSendSuccessfull = false; + } + else + { + bIsSendSuccessfull = true; + } + } + return bIsSendSuccessfull; + +} + +bool DynamixelHandler::enableTorque(bool bEnableTorque) +{ + bool bIsSendSuccessfull = false; + + for (unsigned int l_joint = 0; l_joint < NB_JOINTS; l_joint++) + { + int dxl_comm_result = COMM_TX_FAIL; // Communication result + uint8_t dxl_error = 0; + + dxl_comm_result = m_pPacketHandler->write1ByteTxRx(m_pPortHandler, l_joint + 1, ADDR_XL320_TORQUE_ENABLE, bEnableTorque, &dxl_error); + if (dxl_comm_result != COMM_SUCCESS) + { + //std::cout << "[ERROR] (DynamixelHandler::enableTorque): " << m_pPacketHandler->getTxRxResult(dxl_comm_result) << std::endl; + bIsSendSuccessfull = false; + } + else if (dxl_error != 0) + { + //std::cout << "[ERROR] (DynamixelHandler::enableTorque): " << m_pPacketHandler->getRxPacketError(dxl_error) << std::endl; + bIsSendSuccessfull = false; + } + else + { + bIsSendSuccessfull = true; + } + } + return bIsSendSuccessfull; +} + +bool DynamixelHandler::setControlMode(int iControlMode) +{ + bool bIsSendSuccessfull = false; + + for (unsigned int l_joint = 0; l_joint < NB_JOINTS; l_joint++) + { + int dxl_comm_result = COMM_TX_FAIL; // Communication result + uint8_t dxl_error = 0; + + dxl_comm_result = m_pPacketHandler->write1ByteTxRx(m_pPortHandler, l_joint + 1, ADDR_XL320_CONTROL_MODE, iControlMode, &dxl_error); + if (dxl_comm_result != COMM_SUCCESS) + { + //std::cout << "[ERROR] (DynamixelHandler::enableTorque): " << m_pPacketHandler->getTxRxResult(dxl_comm_result) << std::endl; + bIsSendSuccessfull = false; + } + else if (dxl_error != 0) + { + //std::cout << "[ERROR] (DynamixelHandler::enableTorque): " << m_pPacketHandler->getRxPacketError(dxl_error) << std::endl; + bIsSendSuccessfull = false; + } + else + { + bIsSendSuccessfull = true; + } + } + return bIsSendSuccessfull; +} diff --git a/src/Kinematics.cpp b/src/Kinematics.cpp new file mode 100644 index 0000000..9c154fc --- /dev/null +++ b/src/Kinematics.cpp @@ -0,0 +1,161 @@ +#include "Kinematics.h" + + +float deg2rad(float angle) +{ + return angle/180.0*M_PI; +} + +float rad2deg(float angle) +{ + return angle*180.0/M_PI; +} + +std::vector computeForwardKinematics(float q1, float q2, float L1, float L2) +{ + float x = L1 * cos(q1) + L2 * cos(q1+q2); + float y = L1 * sin(q1) + L2 * sin(q1+q2); + std::cout << "[INFO] Forward Kinematics : (q1, q2)->(x, y) = (" << rad2deg(q1) << ", " << rad2deg(q2) << ")->(" << x << ", " << y << ")" << std::endl; + std::vector X; + X.push_back(x); + X.push_back(y); + + return X; +} + +std::vector computeInverseKinematics(float x, float y, float L1, float L2) +{ + std::vector qi; + + float cos_q2 = (x*x+y*y-(L1*L1+L2*L2)) / (2.0 * L1 * L2); + + std::cout << "[INFO] cos_q2= " << cos_q2 << std::endl; + + if (cos_q2 >1 | cos_q2 <-1) + { + qi.push_back(0.0); + std::cout << "[INFO] Inverse Kinematics: No solution!" << std::endl; + } + else if (cos_q2 == 1) + { + qi.push_back(1.0); + float q1 = atan2(y, x); + float q2 = 0; + std::cout << "[INFO] Inverse Kinematics: One solution: (x, y)->(q1, q2) = (" << x << ", " << y << ")->(" << rad2deg(q1) << ", " << rad2deg(q2) << ")" << std::endl; + qi.push_back(q1); + qi.push_back(q2); + } + else if (cos_q2 == -1) + { + qi.push_back(1.0); + float q1 = atan2(y, x); + float q2 = M_PI; + std::cout << "[INFO] Inverse Kinematics: One solution: (x, y)->(q1, q2) = (" << x << ", " << y << ")->(" << rad2deg(q1) << ", " << rad2deg(q2) << ")" << std::endl; + qi.push_back(q1); + qi.push_back(q2); + } + else + { + qi.push_back(2.0); + std::cout << "[INFO] Inverse Kinematics: Two solutions: "<< std::endl; + + float q2 = acos(cos_q2); + float q1 = (float)(atan2(y, x) - atan2(L2*sin(q2), L1+L2*cos_q2)); + std::cout << "\t(x, y)->(q1, q2) = (" << x << ", " << y << ")->(" << rad2deg(q1) << ", " << rad2deg(q2) << ")" << std::endl; + qi.push_back(q1); + qi.push_back(q2); + + + q2 = -acos(cos_q2); + q1 = (float)(atan2(y, x) - atan2(L2*sin(q2), L1+L2*cos_q2)); + + std::cout << "\t(x, y)->(q1, q2) = (" << x << ", " << y << ")->(" << rad2deg(q1) << ", " << rad2deg(q2) << ")" << std::endl; + qi.push_back(q1); + qi.push_back(q2); + } + + return qi; +} + +std::vector computeDifferentialKinematics(float q1, float q2, float L1, float L2) +{ + std::vector jacobian; + + float j11 = -L2*sin(q1+q2) - L1*sin(q1); + float j12 = -L2*sin(q1+q2); + float j21 = L2*cos(q1+q2) + L1*cos(q1); + float j22 = L2*cos(q1+q2); + + jacobian.push_back(j11); + jacobian.push_back(j12); + jacobian.push_back(j21); + jacobian.push_back(j22); + + return jacobian; +} + +int computeJacobianMatrixRank(std::vector vJacobianMatrix, float threshold) +{ + int rank = -1; + cv::Mat1f oJacobianMatrix(2, 2); + + if (vJacobianMatrix.size() == 4) + { + // Converts the Jacobian matrix from std::vector to cv::Mat + oJacobianMatrix.at(0, 0) = vJacobianMatrix[0]; + oJacobianMatrix.at(0, 1) = vJacobianMatrix[1]; + oJacobianMatrix.at(1, 0) = vJacobianMatrix[2]; + oJacobianMatrix.at(1, 1) = vJacobianMatrix[3]; + std::cout << "=====Jacobian Matrix=====" << std::endl; + std::cout << "[ " << oJacobianMatrix.at(0,0) << ", " << oJacobianMatrix.at(0,1) << " ]" << std::endl; + std::cout << "[ " << oJacobianMatrix.at(1,0) << ", " << oJacobianMatrix.at(1,1) << " ]" << std::endl; + // Computes the determinant of the Jacobian matrix + float determinant = abs(vJacobianMatrix[0] * vJacobianMatrix[3] - vJacobianMatrix[1]*vJacobianMatrix[2]); + std::cout << "=====Determinant of the Jacobian matrix=====" << std::endl << determinant << std::endl; + // Computes SVD + cv::Mat1f w, u, vt; + cv::SVD::compute(oJacobianMatrix, w, u, vt); + // Finds non zero singular values + cv::Mat1f nonZeroSingularValues = w/w.at(0,0) > threshold; + // Counts the number of non zero singular values + rank = cv::countNonZero(nonZeroSingularValues); + std::cout << "=====Rank of the Jacobian matrix=====" << std::endl << rank << " / " << oJacobianMatrix.rows << std::endl; + // Determines the inverse of the Jacobian matrix + cv::Mat oJacobianInverse = oJacobianMatrix.inv(); + std::cout << "=====Inverse of the Jacobian Matrix=====" << std::endl; + std::cout << "[ " << oJacobianInverse.at(0,0) << ", " << oJacobianInverse.at(0,1) << " ]" << std::endl; + std::cout << "[ " << oJacobianInverse.at(1,0) << ", " << oJacobianInverse.at(1,1) << " ]" << std::endl; + } + else + std::cout << "[ERROR] Jacobian matrix has a size of "<< vJacobianMatrix.size() << " instead of 4" << std::endl; + + return rank; +} + +cv::Mat computeInverseJacobianMatrix(std::vector vJacobianMatrix) +{ + cv::Mat1f oJacobianMatrix(2, 2); + cv::Mat oJacobianInverse; + + if (vJacobianMatrix.size() == 4) + { + // Converts the Jacobian matrix from std::vector to cv::Mat + oJacobianMatrix.at(0, 0) = vJacobianMatrix[0]; + oJacobianMatrix.at(0, 1) = vJacobianMatrix[1]; + oJacobianMatrix.at(1, 0) = vJacobianMatrix[2]; + oJacobianMatrix.at(1, 1) = vJacobianMatrix[3]; + std::cout << "=====Jacobian Matrix=====" << std::endl; + std::cout << "[ " << oJacobianMatrix.at(0,0) << ", " << oJacobianMatrix.at(0,1) << " ]" << std::endl; + std::cout << "[ " << oJacobianMatrix.at(1,0) << ", " << oJacobianMatrix.at(1,1) << " ]" << std::endl; + // Determines the inverse of the Jacobian matrix + cv::invert(oJacobianMatrix, oJacobianInverse, cv::DECOMP_SVD); + //oJacobianInverse = oJacobianMatrix.inv(); + std::cout << "=====Inverse of the Jacobian Matrix=====" << std::endl; + std::cout << "[ " << oJacobianInverse.at(0,0) << ", " << oJacobianInverse.at(0,1) << " ]" << std::endl; + std::cout << "[ " << oJacobianInverse.at(1,0) << ", " << oJacobianInverse.at(1,1) << " ]" << std::endl; + } + else + std::cout << "[ERROR] Jacobian matrix has a size of "<< vJacobianMatrix.size() << " instead of 4" << std::endl; + + return oJacobianInverse; +} \ No newline at end of file diff --git a/src/RobotServoing.cpp b/src/RobotServoing.cpp new file mode 100644 index 0000000..e3cac82 --- /dev/null +++ b/src/RobotServoing.cpp @@ -0,0 +1,313 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "opencv2/highgui/highgui.hpp" +#include "opencv2/imgproc/imgproc.hpp" +#include + +#include "Kinematics.h" +#include "DynamixelHandler.h" + +#define CAM_PARAMS_FILENAME "./data/microsoft_livecam_hd3000.xml" +#define COLOR_PARAMS_FILENAME "./data/color_params_data.xml" +#define FPS 30.0 +#define STRUCTURAL_ELEMENTS_SIZE 5 +#define AREA_THRESOLD 1000 +#define ROBOT_L1 5 +#define ROBOT_L2 6 + + +using namespace cv; +using namespace std; + +DynamixelHandler _oDxlHandler; +std::string _robotDxlPortName = "/dev/ttyUSB0"; +float _robotDxlProtocol = 2.0; +int _robotDxlBaudRate = 1000000; + + +void initRobot(DynamixelHandler& dxlHandler, std::string portName, float protocol, int baudRate) +{ + std::cout << "===Initialization of the Dynamixel Motor communication====" << std::endl; + dxlHandler.setDeviceName(portName); + dxlHandler.setProtocolVersion(protocol); + dxlHandler.openPort(); + dxlHandler.setBaudRate(baudRate); + dxlHandler.enableTorque(true); + std::cout << std::endl; +} + +void closeRobot(DynamixelHandler& dxlHandler) +{ + dxlHandler.enableTorque(false); + dxlHandler.closePort(); +} + +bool readCameraParameters(std::string filename, cv::Mat &camMatrix, cv::Mat & distCoeffs) +{ + cv::FileStorage fs(filename, cv::FileStorage::READ); + if (!fs.isOpened()) + { + std::cout << "[ERROR] Could not open the camera parameter file storage: " << filename << " !"<< std::endl; + return false; + } + + fs["camera_matrix"] >> camMatrix; + fs["distortion_coefficients"] >> distCoeffs; + + return true; +} + +bool readColorParameters(std::string filename, int& iLowH, int& iHighH, int& iLowS, int& iHighS, int& iLowV, int& iHighV) +{ + cv::FileStorage fs(filename, cv::FileStorage::READ); + if (!fs.isOpened()) + { + std::cout << "[ERROR] Could not open the color paramter file storage: " << filename << " !"<< std::endl; + return false; + } + + fs["lowH"] >> iLowH; + fs["highH"] >> iHighH; + + fs["lowS"] >> iLowS; + fs["highS"] >> iHighS; + + fs["lowV"] >> iLowV; + fs["highV"] >> iHighV; + + return true; +} + + +int main(int argc, char** argv) +{ + // initializes main parameters + float L1 = ROBOT_L1; + float L2 = ROBOT_L2; + float qpen = deg2rad(-90); // in rad + std::string sCameraParamFilename = CAM_PARAMS_FILENAME; + std::string sColorParamFilename = COLOR_PARAMS_FILENAME; + float fFPS = FPS; + int iStructuralElementSize = STRUCTURAL_ELEMENTS_SIZE; + int iAreaThresold = AREA_THRESOLD; + + // updates main parameters from arguments + int opt; + while ((opt = getopt (argc, argv, ":c:f:s:a:i:p:l:m:")) != -1) + { + switch (opt) + { + case 'c': + sColorParamFilename = optarg; + break; + case 'f': + fFPS = atof(optarg); + break; + case 'p': + qpen = atof(optarg); + break; + case 'l': + L1 = atof(optarg); + break; + case 'm': + L2 = atof(optarg); + break; + case 's': + iStructuralElementSize = atoi(optarg); + break; + case 'a': + iAreaThresold = atoi(optarg); + break; + case 'i': + sCameraParamFilename = optarg; + break; + case '?': + if (optopt == 'c' || optopt == 'f' || optopt == 's' || optopt == 'a' || optopt == 'p' || optopt == 'l' || optopt == 'm' || optopt == 'i') + fprintf (stderr, "Option -%c requires an argument.\n", optopt); + else if (isprint (optopt)) + fprintf (stderr, "Unknown option `-%c'.\n", optopt); + else + fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt); + return 1; + default: + abort (); + } + } + + // Initializes the robot + initRobot(_oDxlHandler, _robotDxlPortName, _robotDxlProtocol, _robotDxlBaudRate); + + + // reads color parameters from the file storage + int iLowH, iHighH, iLowS, iHighS, iLowV, iHighV; + bool isColorParamsSet = readColorParameters(sColorParamFilename, iLowH, iHighH, iLowS, iHighS, iLowV, iHighV); + + // checks if the color parameters were successfully read + if (!isColorParamsSet) + { + std::cout << "[ERROR] Color parameters could not be loaded!" << std::endl; + return -1; + } + + // distorted/undistorted image + bool bIsImageUndistorted = true; + + // reads camera intrinsic parameters + cv::Mat cameraMatrix, distCoeffs; + bool isCamParamsSet = readCameraParameters(sCameraParamFilename, cameraMatrix, distCoeffs); + + // checks if the camera parameters were successfully read + if (!isCamParamsSet) + { + std::cout << "[WARNING] Camera intrinsic parameters could not be loaded!" << std::endl; + } + + // creates a camera grabber + VideoCapture cap(0, cv::CAP_V4L2); //capture the video from webcam + + // checks if the camera was successfully opened + if ( !cap.isOpened() ) // if not success, exit program + { + cout << "[ERROR] Could not open the camera!" << endl; + return -1; + } + + // inits previous x,y location of the ball + int iLastX = -1; + int iLastY = -1; + + // captures a temporary image from the camera + Mat imgTmp; + cap.read(imgTmp); + + // main loop launched every FPS + while (true) + { + // creates a black image with the size as the camera output + Mat imgLines = Mat::zeros( imgTmp.size(), CV_8UC3 ); + + // reads a new frame from video + cv::Mat imgOriginal; + bool bSuccess = cap.read(imgOriginal); + + // checks if a new frame was grabbed + if (!bSuccess) //if not success, break loop + { + std::cout << "[WARNING] Could not read a new frame from video stream" << std::endl; + break; + } + + if (bIsImageUndistorted && isCamParamsSet) + { + cv::Mat temp = imgOriginal.clone(); + cv::undistort(temp, imgOriginal, cameraMatrix, distCoeffs); + } + + // converts the captured frame from BGR to HSV + cv::Mat imgHSV; + cvtColor(imgOriginal, imgHSV, cv::COLOR_BGR2HSV); + + // thresholds the image based on the trackbar values + cv::Mat imgThresholded; + inRange(imgHSV, cv::Scalar(iLowH, iLowS, iLowV), cv::Scalar(iHighH, iHighS, iHighV), imgThresholded); + + // applies morphological opening (removes small objects from the foreground) + cv::erode(imgThresholded, imgThresholded, getStructuringElement(MORPH_ELLIPSE, Size(iStructuralElementSize, iStructuralElementSize)) ); + cv::dilate( imgThresholded, imgThresholded, getStructuringElement(MORPH_ELLIPSE, Size(iStructuralElementSize, iStructuralElementSize)) ); + + // applies morphological closing (removes small holes from the foreground) + cv::dilate( imgThresholded, imgThresholded, getStructuringElement(MORPH_ELLIPSE, Size(iStructuralElementSize, iStructuralElementSize)) ); + cv::erode(imgThresholded, imgThresholded, getStructuringElement(MORPH_ELLIPSE, Size(iStructuralElementSize, iStructuralElementSize)) ); + + // calculates the moments of the thresholded image + Moments oMoments = moments(imgThresholded); + double dM01 = oMoments.m01; + double dM10 = oMoments.m10; + double dArea = oMoments.m00; + + // if the area <= iAreaThresold, considers that the there are no object in the image and it's because of the noise, the area is not zero + int posX, posY; + + if (dArea > iAreaThresold) + { + // calculates the position of the ball + posX = dM10 / dArea; + posY = dM01 / dArea; + + if (iLastX >= 0 && iLastY >= 0 && posX >= 0 && posY >= 0) + { + // draww a red line from the previous point to the current point + line(imgLines, Point(posX, posY), Point(iLastX, iLastY), Scalar(0,0,255), 2); + } + + // stores the current position for enxt frame + iLastX = posX; + iLastY = posY; + } + + // displays the thresholded image + imshow("Thresholded Image", imgThresholded); + + // adds a cross at the centre of the image + cv::drawMarker(imgOriginal, cv::Point(imgTmp.size().width/2, imgTmp.size().height/2), 10, cv::MARKER_CROSS, cv::LINE_8); + + // shows the original image with the tracking (red) lines + imgOriginal = imgOriginal + imgLines; + imshow("Original", imgOriginal); + + // converts posX, posY in mm in the world reference frame + float img_width = imgTmp.size().width; + float img_height = imgTmp.size().height; + + float x = (posY - (img_height/2))*0.053+10; + float y = (posX - (img_width/2))*0.052; + + std::cout << "(pixel -> cm) = (" << posX << ", " << posY << ") - > (" << x << ", " << y << ")" << std::endl; + + // Computes IK + std::vector qi = computeInverseKinematics(x, y, L1, L2); + + // Computes FK + //computeForwardKinematics(qi[1], qi[2], L1, L2); + + // Sends the target joint values received only if there is at least a solution + if (qi.size() >= 3) + { + std::vector vTargetJointPosition; + vTargetJointPosition.push_back(qi[1]); + vTargetJointPosition.push_back(qpen); + vTargetJointPosition.push_back(qi[2]); + _oDxlHandler.sendTargetJointPosition(vTargetJointPosition); + } + + // waits for awhile depending on the FPS value + char key = (char)cv::waitKey(1000.0/fFPS); + // checks if ESC was pressed to exit + if (key == 27) // if 'esc' key is pressed, break loop + { + std::cout << "[INFO] esc key is pressed by user -> Shutting down!" << std::endl; + break; + } + if (key == 'u') + { + bIsImageUndistorted = !bIsImageUndistorted; + std::cout << "[INFO] Image undistorted: " << bIsImageUndistorted<< std::endl; + } + } + + + + + + + // Closes robot connection + _oDxlHandler.closePort(); + + return 0; +}