From 1e8732272ce583dd727c2d70da3c6b630c753b22 Mon Sep 17 00:00:00 2001 From: Stella Date: Wed, 6 Dec 2023 10:18:04 -0600 Subject: [PATCH] delete __pycache__ --- .../__pycache__/__init__.cpython-310.pyc | Bin 184 -> 0 bytes ...est_copyright.cpython-310-pytest-6.2.5.pyc | Bin 1047 -> 0 bytes .../test_flake8.cpython-310-pytest-6.2.5.pyc | Bin 1014 -> 0 bytes .../test_pep257.cpython-310-pytest-6.2.5.pyc | Bin 958 -> 0 bytes ...est_copyright.cpython-310-pytest-6.2.5.pyc | Bin 1050 -> 0 bytes .../test_flake8.cpython-310-pytest-6.2.5.pyc | Bin 1017 -> 0 bytes .../test_pep257.cpython-310-pytest-6.2.5.pyc | Bin 961 -> 0 bytes ...st_quaternion.cpython-310-pytest-6.2.5.pyc | Bin 2282 -> 0 bytes ...est_copyright.cpython-310-pytest-6.2.5.pyc | Bin 1046 -> 0 bytes .../test_flake8.cpython-310-pytest-6.2.5.pyc | Bin 1013 -> 0 bytes .../test_pep257.cpython-310-pytest-6.2.5.pyc | Bin 957 -> 0 bytes .../site-packages/control/control.py | 359 ------------------ ...est_copyright.cpython-310-pytest-6.2.5.pyc | Bin 1043 -> 0 bytes .../test_flake8.cpython-310-pytest-6.2.5.pyc | Bin 1010 -> 0 bytes .../test_pep257.cpython-310-pytest-6.2.5.pyc | Bin 954 -> 0 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 176 -> 0 bytes 16 files changed, 359 deletions(-) delete mode 100644 audio_input/audio_input/__pycache__/__init__.cpython-310.pyc delete mode 100644 audio_input/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc delete mode 100644 audio_input/test/__pycache__/test_flake8.cpython-310-pytest-6.2.5.pyc delete mode 100644 audio_input/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc delete mode 100644 gun_trajectory/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc delete mode 100644 gun_trajectory/test/__pycache__/test_flake8.cpython-310-pytest-6.2.5.pyc delete mode 100644 gun_trajectory/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc delete mode 100644 gun_trajectory/test/__pycache__/test_quaternion.cpython-310-pytest-6.2.5.pyc delete mode 100644 image_yolo/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc delete mode 100644 image_yolo/test/__pycache__/test_flake8.cpython-310-pytest-6.2.5.pyc delete mode 100644 image_yolo/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc delete mode 100644 install/control/lib/python3.10/site-packages/control/control.py delete mode 100644 trigger/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc delete mode 100644 trigger/test/__pycache__/test_flake8.cpython-310-pytest-6.2.5.pyc delete mode 100644 trigger/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc delete mode 100644 trigger/trigger/__pycache__/__init__.cpython-310.pyc diff --git a/audio_input/audio_input/__pycache__/__init__.cpython-310.pyc b/audio_input/audio_input/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 0fad7ce96b2c97db30bb07f7346fed292ac4de54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmd1j<>g`kf>|$fQbF`%5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_?enx(7s(w~x zVoqsgseXB}ep+T;VorQPQGQlxa!GuUe=tNu7b>EgUX)*2V5FZ|nv$6xpP5%sT7trk f2a08u#K-FuRNmsS$<0qG%}KQbSz62lBv=>#mS`|( diff --git a/audio_input/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc b/audio_input/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc deleted file mode 100644 index e14130df8a9ed425c663906a7fcab9fe12ec3007..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1047 zcmYjQzjM=mn^`s zbz|Zfnvs8lKSL{1|AkIG*=;WJ>G{1+Pv3j`WQ+Cn27>YHD&~J3g#OuJbyOfYfT=!% zVTj=v^>Fbfi9--ZiQB7SyF%h>QtQ~nt*#k>tvRmrImY2Q-c4tty$%(pPrPcRye#K@2^=K{|WbLV)5X84rM$&9FX z8ebAtnUMizRf`YE!euq>T)GQ%hSU>SuguT_%K$vcSl|@Hy7ln_Gw(OKkLC`+S~15ZMoiaR9ewciQ|Q@|5{pN+H$sPGg@c#icIt_aGmV_JW2az-t-@ z*~C^0sWf-PK8@p0@=W$cl2OS`6PCl1Jc@OcDpQRGWGM46R3nkctVj)qu{fb|n9_us zdZ_4tTLxeo2$@h|E~+PLXj+Gb8;SJ2?akb~P2peQW>czRC8$WxHnwIfms@vMgO_Dc za=%&)UjIRI3$|YOIwO(r&N!lRKFK@hsxydE=rEIF%=Q%6t~*wg!i3Auv7Jp!s}O4mZ9+Zef@!%wuzUSYS4!KTqr9L&bQvLAB)BnQunlj6ZwRg@rnT_48bC?I85m2G^Gh!5(b& z4h%yK3)IEMm&6W17{zY4f^CKfFRpg0g^z{b^|?Q+4eNz%Fo(I{(J4N~-6q5PD5#tR zANmkrvlP=P2}hAW47rr4R6U!SFAtn5?ANf>Z!j7SV2U633z?!RW@JhxXhM$2)R{Qy zy~byRf!D{(wRoS*TvpM}nL9(rNZo^cWrAi{2H<(tOEBcEPiB~TzsM?@x)4`cRr?c| zcNH=JtTw?jyav^*wuV@J;zoc^E4mJqjY(w&b>Bc07fqchVF=FGut#&L92`pwQwR8h zbUFb(xv~B*8$S+ItJ7&&cRNsq$X-B<1GqKYClB7HdBR%jtkp{yZz(+%yj5z`YPUvI zCQ&j_FX{%@PnPPtR4FcX!L|czK(P}vC4sJ{zL$+PS30E9EQdWRL@0SCdug0e$xRc| z;Xxh=9VN^q;!+}T-s0b4pb5jcy?Q_cjZ2eTm6qt+du^Jdh@Wi;o zG)m0ks{)PE%p@>NZtmD zi_h)DH0JGLL`6Q%+auNPM+pp_$#lqjI{fr;zeF~!kd1*%^K7e4a~7pxlw`SXTb&9M z_60rS&o{HNX%ym>@d|WOO)!h_x(Fecggm;GcL4|%j6YXV+6r?kEOp;3&jY93lzb#3 z4I2K3O!W$r_7^nEpm3t+&FxQ7-l11g88@c#$av*2a9L5JK{?yM5aF7+W9j^tamsSR SckT02w!{5JAA636m+(KRt||cl diff --git a/audio_input/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc b/audio_input/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc deleted file mode 100644 index d4f9606826f605a93ff17bfc7c13f601bdd8380a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 958 zcmYjQy>AmS6t{hseX2F*GCpl2@kw3!QkrYfvot-Fv@h|K5k+$yTd@VEwuh{Jw|KUuP^YAB+Ro`aKAS z7#66Hi!Vt$f-p+_eg!)Z5!IyDuN68LK|kQZxIS(avdKK=e?u4e0{2%KK0;yT3i!}r zh^?Q{I2|}^u_~a{V84c~e}XU&myr=+-VZ!O%%9;Yn&J~OBU7T^7<@@sWlDyaRUJMg zbD!0Wcj?d3Dbf$XUzwsgRv~C`VvbV`ey8I(X2EZA8_hhhYpf1-;|^lYsTX5FeG>p) zpZasi{43P$qZygO7b;jew76q^!?kf$P&GPL7?KU~HR<(2e17ZU<81OI)a_oc?bO{+ zTcQRbu^!+~?4I9yC-aoG2a@r&HWR_yTq&t^yW2jaDvi^TK3{9>Q?0o&1(PJ;5hLc$4cHzR#4bHR$E(MZV8 zR75FFxUEN;4!L6hwxLuB1?D1pqDOZ1RiVZ*ee2S+8;c|SOD1Sa4S2$ea*t=5E^>Kw zXW4jK8YTC$W#joDq&DH|^{4K!On7%3Q;|>d?wRfm;}kN?lpOPci9UWfDv|9QWP7A! zp6zsL&SDwGX_lL=Yf2%ajAuK0FFM)8Hj7S`_69`KZoF5$?^xXhC2ZMX(JIvfz-~ol zb30`nP+dpyGZhR2Rq-1B2M+ocr~m)} diff --git a/gun_trajectory/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc b/gun_trajectory/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc deleted file mode 100644 index f982c94f271dee19998c0b15cac9204942c4085b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1050 zcmYjQ&u`N(6tZksNNBiq?%)m{K` z+l?cK^~m4AjX%RzPW%fy@tkZ`9r@+G&(Gg`{+x*Q^#+3RJB|1s2cf?IUJMm=1-N#YQMQR4P0*shScn$&u=!pE`K^SC#zj~mQk?gcLVwZb-8g;l?yuh>4l zb%u{oQ2Ph$=qSL(O=y%(508Z37uiHc!;$t!oH8!`5mo*P=c%8?w9lCzrM@0IWDNM`C11m~(;Wh`Dn-Lo<9z=43|H z8;vgstIWs%v#P}hWZ|-!b}rooIz#FatXF1efn@+5WGrxsVcq(8ftmM{+(mN-;u@<% z+_;C>+RTYCpsw}+ug}~C$nXUub4xP9A8p~#AP cV5z-ViC}rm_wA>pY_%sX4>#Q^uHp^+AMru1O?SPK?KGs? zy-=>a0f**-#53?FzH;IfdZ-xhHYk=nJM+!xoAGCFy0qjYSieQYwS&+f8!Rptf&5|nDz#~~TN5fp zBnIk*Z?J#1;_p+XxYPyP9-}_Glc3l8&2&31z%Eg$iYEhUz#S$E+v~2XT5t<519qn|i2dpIZiC>!&iIz+7}s)WA3~7sef? zkub}z3N%W^8+)Z@ZC=g4jAAONhD_keik;CbPi7i+n38R0F?do2WxJ<~!LwgT-Uf=x zZu>Y*czYPpcsw1qC#v0#1Pncr>5%ty`03+eiELdXTLYPnM?3AoScFQ3o zGDHpoVjRG&*t>l2UKAPghk|im=}E$UE~Svl@A(&0W^op&%eB@4RfrOqF4b6M?`)Z7V-dnX=LyZI22W6v_VP^IX0DFz zE*sA(qvC$PY`pk|vI(uIKq%rvswI-m=8IM$v_5;6`3a51M+4&~v}7LyCmq5m*8X&*DEXZo0=dPe#N*Uq$zFhf~p zVVTM*6;?@ER$*COA5(6OHE23CBQ0k%(=t6XxcRv;HZzi$A86xJR!Tlg?S~Er?TB&< z`;WAV!OLmoVRb_80aWnUGBTm!0JJ)41Io+Xo<%T>NXrnxF#kGW<|H8|j^14rx7a+GeG4Lp2jTw)h!C%X4 z;PI>4J7~b8u|Vv1j8Me>z=;2mSQAdzKGVhy?B6L!If|51ka83$ry%7hQcgk2`6sE& zs1P`bX?>ZhzABlMRr2}*UO&Jdr@WTXqj)u^yddHuVO;-2zR#9zlx{34QR9nqEq3`O+9(HcK z$;+!FrS777s?=+!9xJsCbGgn~8hFRMdCKzjOx~OEm4KV zMGXaBhN6LD2}KixN^t99-aAF!JMOZ;%%wJnr55+3DWc(kixLjDP?S;FC=il#ZpNb& zZgb`d*<^=a5HR7#;xGzhPx!J5ZgzXvgG+mm$WjnNL?WMN$(?8za23kBL3G;-*uV>Y zX|u#T@^J=Pe_e5f&%>KSL_)5xqez5a%KVc!@CIHA9)UIE)+wi7 z)M?DWn0RQ(iy-QB`uB(~&-7oYqfPt&q@oRhZbMp(@#v5-S)QJqcn&=B3d>J>J>M~Y zx`lr%dMTXTtV>!&pLiC>n1f*$kHi%<{^BOq=V_{{Q^zTrT^|UgV#LCvo2-LSrKWOI g3>U-(&RTvoj5z$?@ETqt34Zzw@;qIlRa({m0{-K7OaK4? diff --git a/image_yolo/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc b/image_yolo/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc deleted file mode 100644 index 7ae4db2558035c60d26809d458ef2500738dd032..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1046 zcmYjQzjM^2wq^!(nZr|&&|vc>v(3&HrEM*NS3&|ed*jv539Fx5ve z3^5#|0WRMpu?WH_u?ID5R!Ce=8iPjZfg{;Y@We7 z!^g;L`~!A$Si$wICG=a%}3k~dCDct z0Z^il0e6Q{%)3BUmz*k*28Q}(nBz2HzJ{rOfXU%VjD&<)7kG}CJ;yUN!>43UW<466s3!GwDH$Glq=KLgg(cFT#!I}`a z?jg1|vmy+rojZUxXZ8YQ_yUsJXinzv207YC8h5pwbCnxOs0_~}hGso{Mf!aYPd6Sv z%_h%0<@Wooad$nXi3~iVEx?W0ownbJB4sX@Qb;wu)!L^@ahaF-dyo%FdtOTt;MJ{z zY+|bURO;J)K;zh#Jd=S)GAg-l!?J%;L~$OaO4nln8A{*x)kqXED^vY27AG|JQ<`wy z^c5X)!vJhUArlJBW%Wdbx^q~%kx1W~-t?WD6#f}*Hl;bNcs1#m#@0;bYU|Ew@Vp8t z?iZ`U%U?)t!Pcu!y^%|B}=r2&2?*m$1ta5v1jIIrp&$+aVA8m3}q1HRdt@8#=>hxLs%XBZ^9Y zfe*cluw6-MlEtIM9K~EIsdUF><|_cF4ErT){S%BqJ(%J<{!FH5iW!-b37U{&GW8~& zerxbKVc>N!^BvwLGoO`=cka*73DS2UUz(s9RuOoC^D+#1=aU&`!4I;Irar`FRyN@T z=3PfDJg-df3~xX+t85@vo%jjh(~_w|Wo=TLLETqS#YaAB-PHy3uMioVy!oOH?N!)&ty`-P3!o;bw!}7tsV@ z((&Oi5hlsB4TOXWZLi1rNDc+dOXHr9hg8HFO}VYans&Kk0Jg4FDFx=dd#ZcZ6Fjqi zUnZGdevzYz%wD-GwQKWg{$(I&Mh#@5K$YB#L2)u$bHfyDJBz`iA}HEDUJRc6Lh2?^ zTzqOC$&@$y2^GWfusPDrZj!;!110;sW8x3*KNiT=6|&V+ayZy&CMoUlcr1l%I+=14 zcLhD>PqznSTg$a8;x%Zb>tL4QaS=i;33+g-ZUYc4*>EnRauxPQT*$s%90v}&t@ubK z1|<9s+42>p+#hIHLEy~Ho4bFaxWb^IvVKa{u?>o0;I5L)fN-vVuEB!2<>j>SMWdNFDWMg diff --git a/image_yolo/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc b/image_yolo/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc deleted file mode 100644 index d4610ab9342d28f9955c6eb8624deebdfd55ee9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 957 zcmYjQJ8#=C5GEr3f@^ZmAfUVzy zV2ELX`ndd(#32Zy#O>Fx^$<}{8vRD8W8w8Z?v0z{Rw>)eVeVISi7#<~h2bL<)cyh= zIt;LJ6B?%jYb{m{lm_hAu=NiRImBgTM40m(&k%EGc#5X@l+4JK=r=jOBCIwgL(J+H zACkGt8o6`j&e0jt55QlWqB&LpXmDbVQw)Bq<2h#DPjVa09IzX#33lraV(qCDV?f>9 z1H3tP=aBgqsM|#|GJ`KvuySZ{*SI;?xvhe#(V4=KY=EyxuNUBpTMr*+lP7`pdp+N( zyMZ=D4FX~uz^&N5xc5#LDf0)CabM>X!F{fjRN4>ybE?uf9qEg;);`smtGr~{0~WZt z7qk?CXr^_LO>7PkRc1XJP$444Gc}M&Min9wvNs@*w$r`pe8cK4C_%?~i%zKy0A?$y zdfTnafa1D}pQ|{BKK+MG;|5c0duJWGnC6S1cDAc`s#jEY+|?;OM4aYanR=B>8NaN3 dNo-jEp7kRN2?yLJ9WH<{{eE470v(v diff --git a/install/control/lib/python3.10/site-packages/control/control.py b/install/control/lib/python3.10/site-packages/control/control.py deleted file mode 100644 index 84e0d66..0000000 --- a/install/control/lib/python3.10/site-packages/control/control.py +++ /dev/null @@ -1,359 +0,0 @@ -""" -A Control node that could control the robot with various clients. - -Clients -------- - input:user input [UserInput] - coordinates: pin coordinates [Empty] - target_scan: target scan request [TargetScanRequest] - gun_scan: gun scan request [Empty] - grab: grab request [Grab] - place: place back gun request [Grab] - cali: calibration [Empty] - aim: gun aiming [Target] - fire: gun firing [Fire] - -Returns -------- - None - -""" -import time -import rclpy -import copy -from rclpy.node import Node -from std_srvs.srv import Empty -from visualization_msgs.msg import MarkerArray -from rclpy.qos import QoSProfile, QoSDurabilityPolicy -from rclpy.executors import MultiThreadedExecutor -from rclpy.callback_groups import MutuallyExclusiveCallbackGroup, ReentrantCallbackGroup -import tf2_ros -from tf2_ros.buffer import Buffer -from tf2_ros.transform_listener import TransformListener -from tf2_ros.static_transform_broadcaster import StaticTransformBroadcaster -from geometry_msgs.msg import TransformStamped, Quaternion, Pose -from trajectory_interfaces.srv import Grab, Target, TargetScanRequest, UserInput -from trigger_interfaces.srv import Fire - - -class ControlNode(Node): - """ - A Control node that could control the robot to achieve different gun shooting. - - Args: - ---- - Node (ros node): superclass of the ros node - - """ - - def __init__(self): - super().__init__("control") - # Broadcast a camera frame - self.camera_broadcaster = StaticTransformBroadcaster(self) - self._cam_hand_tf = TransformStamped() - self._cam_hand_tf.header.stamp = self.get_clock().now().to_msg() - self._cam_hand_tf.header.frame_id = "panda_hand" - self._cam_hand_tf.child_frame_id = "camera_link" - self._cam_hand_tf.transform.translation.x = 0.05 - self._cam_hand_tf.transform.translation.y = -0.02 - self._cam_hand_tf.transform.translation.z = 0.065 - self._cam_hand_tf.transform.rotation = Quaternion( - x=0.707, y=0.0, z=0.707, w=0.0 - ) - - self.camera_broadcaster.sendTransform(self._cam_hand_tf) # publish transform - - # Callback group - self._cbgrp = ReentrantCallbackGroup() - self.loop_cbgrp = MutuallyExclusiveCallbackGroup() - self.tf_cbgrp = MutuallyExclusiveCallbackGroup() - self.marker_cbgrp = MutuallyExclusiveCallbackGroup() - - # clients and publishers - self._input_client = self.create_client( - UserInput, "input", callback_group=self._cbgrp - ) - self._vision_client = self.create_client( - Empty, "coordinates", callback_group=self._cbgrp - ) - self._targets_client = self.create_client( - TargetScanRequest, "target_scan", callback_group=self._cbgrp - ) - self._gun_client = self.create_client( - Empty, "gun_scan", callback_group=self._cbgrp - ) - self._grab_client = self.create_client(Grab, "grab", callback_group=self._cbgrp) - self._place_client = self.create_client( - Grab, "place", callback_group=self._cbgrp - ) - self._calibration_client = self.create_client( - Empty, "cali", callback_group=self._cbgrp - ) - - self._aim_client = self.create_client(Target, "aim", callback_group=self._cbgrp) - - self._shoot_client = self.create_client( - Fire, "fire", callback_group=self._cbgrp - ) - - # # wait for services to become available - while not self._input_client.wait_for_service(timeout_sec=1.0): - self.get_logger().info("input service not available, waiting again...") - - while not self._vision_client.wait_for_service(timeout_sec=1.0): - self.get_logger().info("yolo service not available, waiting again...") - - while not self._gun_client.wait_for_service(timeout_sec=1.0): - self.get_logger().info("gun scan service not available, waiting again...") - - while not self._grab_client.wait_for_service(timeout_sec=1.0): - self.get_logger().info("grab service not available, waiting again...") - - while not self._place_client.wait_for_service(timeout_sec=1.0): - self.get_logger().info("place service not available, waiting again...") - - while not self._calibration_client.wait_for_service(timeout_sec=1.0): - self.get_logger().info("calibrate service not available, waiting again...") - - while not self._aim_client.wait_for_service(timeout_sec=1.0): - self.get_logger().info("aim service not available, waiting again...") - - # main loop timer - self._loop_timer = self.create_timer( - 0.01, self.loop_cb, callback_group=self.loop_cbgrp - ) - self._tf_timer = self.create_timer( - 1 / 30, self.tf_cb, callback_group=self.tf_cbgrp - ) - markerQoS = QoSProfile( - depth=10, - durability=QoSDurabilityPolicy.RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL, - ) - - self.marker_pub = self.create_subscription( - MarkerArray, - "visualization_marker_array", - self.marker_cb, - markerQoS, - callback_group=self.marker_cbgrp, - ) - - # variables - self._markers = [] # store the MarkerArray - self.t1 = Pose() - self.t1.position.x = None - self.t1.position.y = None - self.t1.position.z = None - self.t1.orientation.x = None - self.t1.orientation.y = None - self.t1.orientation.z = None - self.t1.orientation.w = None - - self.t2 = Pose() - self.t2.position.x = None - self.t2.position.y = None - self.t2.position.z = None - self.t2.orientation.x = None - self.t2.orientation.y = None - self.t2.orientation.z = None - self.t2.orientation.w = None - - self.marker_count = 0 - - # TF listener - self.buffer = Buffer() - self.listener = TransformListener(self.buffer, self) - - # run once - self._run = False - - async def loop_cb(self): - """Control main loop.""" - # calibrate gripper - - self.get_logger().error("Waiting for Input.") - - input_answer = await self._input_client.call_async(UserInput.Request()) - colour_target = input_answer.answer - self.get_logger().error(f"{colour_target}") - # RUN ONCE! - # # scan targets - await self._calibration_client.call_async(Empty.Request()) - - if not self._run: - await self.scan_targets() - - # scan guns - self._gun_scan_future = await self._gun_client.call_async(Empty.Request()) - - # wait for user input - - # grab gun - while self.t1.position.x is None: - pass - - self.get_logger().info( - f"Gun 1 coordinates: ({self.t1.position.x},{self.t1.position.y},{self.t1.position.z})" - ) - - self.get_logger().info("grabbing gun!") - # this pause helped stabilize tf tree issues we were having - for k in range(25): - time.sleep(0.1) - - if not self._run: - self.first_t = copy.deepcopy(self.t1) - self.last_t = copy.deepcopy(self.t2) - - self._run = True - if self.marker_count < 2: - self.get_logger().info(f"{self.t1}") - self._grab_future = await self._grab_client.call_async( - Grab.Request(pose=self.first_t) - ) - self.gun1 = True - else: - self._grab_future = await self._grab_client.call_async( - Grab.Request(pose=self.last_t) - ) - self.gun1 = False - - # # aim - self.get_logger().info(f"{self._markers}") - - for m in self._markers: - self.get_logger().info(f"\n{m}") - - if colour_target in m.ns: - if self.marker_count == 2 and self.gun1: - self.place_future = await self._place_client.call_async( - Grab.Request(pose=self.first_t) - ) - self.gun1 = False - self._grab_future = await self._grab_client.call_async( - Grab.Request(pose=self.last_t) - ) - target_pose = m.pose.position - await self._aim_client.call_async(Target.Request(target=target_pose)) - # shoot service - req = Fire.Request() - if self.gun1: - req.gun_id = 0 - else: - req.gun_id = 1 - - await self._shoot_client.call_async(req) - self.marker_count += 1 - self.get_logger().info(f"{self.marker_count}") - - if self.marker_count <= 2 and self.gun1: - self.get_logger().info(f"{self.first_t}") - self.place_future = await self._place_client.call_async( - Grab.Request(pose=self.first_t) - ) - else: - self.get_logger().info(f"{self.last_t}") - self.place_future = await self._place_client.call_async( - Grab.Request(pose=self.last_t) - ) - await self._calibration_client.call_async(Empty.Request()) - return - - def tf_cb(self): - """Listen to tf data to track April Tags.""" - # TF listener - try: - # get the latest transform between left and right - tag_1 = self.buffer.lookup_transform( - "panda_link0", "tag36h11:42", rclpy.time.Time() - ) - self.t1.position.x = tag_1.transform.translation.x - self.t1.position.y = tag_1.transform.translation.y - self.t1.position.z = tag_1.transform.translation.z - self.t1.orientation.x = tag_1.transform.rotation.x - self.t1.orientation.y = tag_1.transform.rotation.y - self.t1.orientation.w = tag_1.transform.rotation.w - self.t1.orientation.z = tag_1.transform.rotation.z - - tag_2 = self.buffer.lookup_transform( - "panda_link0", "tag36h11:95", rclpy.time.Time() - ) - self.t2.position.x = tag_2.transform.translation.x - self.t2.position.y = tag_2.transform.translation.y - self.t2.position.z = tag_2.transform.translation.z - self.t2.orientation.x = tag_2.transform.rotation.x - self.t2.orientation.y = tag_2.transform.rotation.y - self.t2.orientation.w = tag_2.transform.rotation.w - self.t2.orientation.z = tag_2.transform.rotation.z - except tf2_ros.LookupException as e: - # the frames don't exist yet - self.get_logger().debug(f"Lookup exception: {e}") - except tf2_ros.ConnectivityException as e: - # the tf tree has a disconnection - self.get_logger().debug(f"Connectivity exception: {e}") - except tf2_ros.ExtrapolationException as e: - # the times are two far apart to extrapolate - self.get_logger().debug(f"Extrapolation exception: {e}") - - def marker_cb(self, msg): - """ - Store the pin positions in markerArrays. - - Args: - ---- - msg (MarkerArray): Array storing Markers - - """ - for given_m in msg.markers: - duplicate = False - x = given_m.pose.position.x - y = given_m.pose.position.y - z = given_m.pose.position.z - for stored_m in self._markers: - xp = stored_m.pose.position.x - yp = stored_m.pose.position.y - zp = stored_m.pose.position.z - if abs(x - xp) < 0.01 and abs(y - yp) < 0.01 and abs(z - zp) < 0.01: - duplicate = True - if not duplicate: - self._markers.append(given_m) - - async def scan_targets(self): - """Move the robot to scanning positions and requests for detections.""" - # move robot to scan position - self.get_logger().info("position 1") - response = await self._targets_client.call_async(TargetScanRequest.Request()) - self.get_logger().info("position 1 reached") - - # scan pins - self.get_logger().info("requesting camera scan...") - await self._vision_client.call_async(Empty.Request()) - - # return - self.get_logger().info("camera scan complete") - - count = 2 - while response.more_scans: - # move robot to scan position - self.get_logger().info(f"position {count}") - response = await self._targets_client.call_async( - TargetScanRequest.Request() - ) - count += 1 - # scan pins - self.get_logger().info("requesting camera scan...") - await self._vision_client.call_async(Empty.Request()) - self.get_logger().info("camera scan complete") - return - - -def main(): - rclpy.init() - node = ControlNode() - executor = MultiThreadedExecutor() - executor.add_node(node) - executor.spin() - - -if __name__ == "__main__": - main() diff --git a/trigger/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc b/trigger/test/__pycache__/test_copyright.cpython-310-pytest-6.2.5.pyc deleted file mode 100644 index 754bb3fbafab73d3ad20a47353690de061c82ca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1043 zcmYjQPjAyO6t~^9O}nmwF#&^14uHsEEo_Vvoi_33I3y+^)Jx>mZkjHMBiq?%)m{K` z+l?cK^~h)7#>eoL6JKE`o|CPrBfq@&d(ZDZ|7?r(^(KPxJB|3C3POLau{x??9Kckc zKrqB`jQY6vlcYirMv2p}V(TGsEvfhGg^pvl?{atC7&lpkITyIl*9zHURaX0kzGD0J z*BL%We*GV0M@K$3PC}z}dUzzffygE@3P;)-amu*#MpStxoTpwE(*b8*lzMu^y^yC| zQVoC-xg2nB7{$B;scMo_CDMUSeKYKK>M&o!R6jsy*b*ZlVU-I!N6eYy8Jgi!GAA>l z-e`PDSan8*nAI#kBnyYtb>-4opfjW%fxkLK3oL!mAYy@241TNQ1!nF~au>}jVAoj# z?B+eh)@GFm1L|lO@W#wp01aP&QU}e+9R5H@>&W1aaWq%jQbJ{TCNVVY<15nZ`FOhV z_-QtI<}0t)^Q^k-D?{YKC#C|p6}!{cJCUc%<5CK#rnj2=R4FcX5x)oV5VYqvC4s!A zd5}$PwSY=-?z!p?qZB&Kq!{yo4nDj;E|KkPWIL21&vv>R zZe7S_*Ah~QV0jfg*~GL9qL$Dm)KU(Jw(}j!hoJavp)+LWopF2o6YqL~jw2#R<-{xWP%&#aC@bxF=9|$sv)`_>r6mW!`kh8h8VLQ-!QwI@IDjqQ zfuV@v81-@WC5b^0Mv2*PV4Wecl{EX!%Ez(Yx0yX^jhxE1sX@(e=p3Kpeuv^iQ5qh>@&_YE(SU?Uluq`*so!WpI{^kVT$kgGbvGtDJe;T3UWe9qcFsK zi7yBRZ-}X>@gbR+v>}ZPbB0clxCi-0fo7O{;91&BG32#RW|&$($T})bh?}%2?E>aq zN7TM(6?ld>pqjQe5OoSO0=#TU2P)e|V+M6!K@}5~MoB1w^R@NS%z%fd9K+Nez9hY# zhtFm9xu6B1lp$H#%L>Yi(gDNc%_Q zD3(zwloe-CA=FJ@9B1R0R;7LzXGcNor$NG0%NN0rX$D{$W;_Xix$2&XP#G~xl{w0y zR4u=%&?rma=qpug^J?}bkApOjknt?u&@)=~$y8epQ?u5I zspd7t_3x)vLETi&o9iEikC+t@NJyn_D$ABHFM diff --git a/trigger/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc b/trigger/test/__pycache__/test_pep257.cpython-310-pytest-6.2.5.pyc deleted file mode 100644 index b9527e00420864c4facd88324456d2b37422b16b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 954 zcmYjQJ8#=C5GEvbE_INikD)^fG@BQJF=<7PULdKY4&R-szqZAh=z|-A#{)4aOmC`2hq& z4994Qt1n3`f-p+#VFMcviJM7l*s63KJ41&%llG)j$u6^){S{r|D?D6b_!xPOzrcr% zJgn`6M(M~{i`4+71^W$b`2&Q4xQv8^S>N#tF?)tfRN^x-BPEe<6}~2{QIaucO@oig z+-5ChUE6bXj^rcoH%c_e!UGLX%yEjrZ*)Az%=t;~qL~GDi?zY-+(WEeS`h}+Ru16p z(w;-+U!ZOq&BzSCP{GQP#(ixoE|sZ*itt=uNY=wQWH9jX<($>YgVx z5hIUi3veU$E+4$lij=vdjB!`0Y0O;ns2-S;|z zKs4Ps%%>)YfC{}HjA$GOg6CqCB{>ybuYfx^DWX_KsnpFlgA-D32J$p3Vpbgu!ZvkaNm>ULQ8)qV+z+6R7WT;nPS89}{?@XF{V{wFk&SRQV1s<;<%;V{ z`L3@-6oy>*rXiIGa-Q$*zwGBz-L1M*+Zzx?n$cdhzF~166tAb9MVmwq0KFB|jqTSp zKxKWwFGQrEN&g|;y2V7-+*yYfrfLz?40ioU&6>*0x;TSZh*HIcZq~_E@vFj@#Fn9R YUL_eTVt!!eN}3<_$*O~!Ruiw`f9CfTng9R* diff --git a/trigger/trigger/__pycache__/__init__.cpython-310.pyc b/trigger/trigger/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 60ab807935d9f7ee276cb2f3e46a1ba92ade95d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmd1j<>g`kg57zUsUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o10aKO;XkRX-~; zF{iY$RKL7fKP@vaF(