From 94d2cfc3157af274c661c0d99946371f1056b9f0 Mon Sep 17 00:00:00 2001 From: m-guberina <gubi.guberina@gmail.com> Date: Thu, 3 Oct 2024 10:31:08 +0200 Subject: [PATCH] trying to get markdown to play ball --- Dockerfile | 21 ++++++++++++------ README.md | 2 +- dot_files_for_docker/.vimrc | 13 ++++++----- .../__pycache__/make_run.cpython-312.pyc | Bin 0 -> 5907 bytes .../ur_simple_control/visualize/make_run.py | 2 +- .../manipulator_visual_motion_analyzer.py | 16 ++++++------- .../InverseKinematics.cpython-312.pyc | Bin 0 -> 9838 bytes .../__pycache__/drawing.cpython-312.pyc | Bin 0 -> 2009 bytes .../drawing_for_anim.cpython-312.pyc | Bin 0 -> 1777 bytes .../__pycache__/follow_curve.cpython-312.pyc | Bin 0 -> 4037 bytes .../__pycache__/forw_kinm.cpython-312.pyc | Bin 0 -> 25813 bytes .../__pycache__/inv_kinm.cpython-312.pyc | Bin 0 -> 14188 bytes .../joint_as_hom_mat.cpython-312.pyc | Bin 0 -> 7728 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 2550 bytes .../webots_api_helper_funs.cpython-312.pyc | Bin 0 -> 9583 bytes 15 files changed, 31 insertions(+), 23 deletions(-) create mode 100644 python/ur_simple_control/visualize/__pycache__/make_run.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/InverseKinematics.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/drawing.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/drawing_for_anim.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/follow_curve.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/forw_kinm.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/inv_kinm.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/joint_as_hom_mat.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/utils.cpython-312.pyc create mode 100644 python/ur_simple_control/visualize/robot_stuff/__pycache__/webots_api_helper_funs.cpython-312.pyc diff --git a/Dockerfile b/Dockerfile index 955ab22..fa9e6d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,25 @@ FROM ubuntu:jammy - -# install pyhton3-tk without questions +# install python3-tk without questions ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Europe/Stockholm RUN apt update && apt upgrade -RUN apt install -y python3 \ +# necessary +RUN apt install -y \ + python3 \ python3-pip \ python3-tk \ ipython3 \ git \ - sudo \ + sudo +# for some reason it's needed again +RUN apt update && apt upgrade +# nice to have +RUN apt install -y \ vim \ vim-youcompleteme \ + vim-python-jedi \ zsh \ zsh-syntax-highlighting \ python3-python-qt-binding @@ -31,9 +37,10 @@ USER student # copy repo to workdir COPY --chown=student . . RUN mkdir -p .cache/zsh/ -COPY ./dot_files_for_docker/.vimrc /home/student/ -COPY ./dot_files_for_docker/.zshrc /home/student/ -COPY ./dot_files_for_docker/global_extra_conf.py /home/student/ +COPY --chown=student /dot_files_for_docker/.vimrc /home/student/ +COPY --chown=student /dot_files_for_docker/.zshrc /home/student/ +COPY --chown=student /dot_files_for_docker/global_extra_conf.py /home/student/ +RUN vam install python-jedi RUN vam install youcompleteme # this is enough to run clik diff --git a/README.md b/README.md index c6148e4..156b164 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # do this everytime you use this repo ------------- -- do git stash +[comment]: <> (- do git stash) - and then git pull diff --git a/dot_files_for_docker/.vimrc b/dot_files_for_docker/.vimrc index 345fcb4..7779382 100644 --- a/dot_files_for_docker/.vimrc +++ b/dot_files_for_docker/.vimrc @@ -30,13 +30,14 @@ nnoremap tfs :tabe +Ex<CR> set path +=** set wildmenu +" let's not complicate life with folds " automatically set fold if a c++ file is opened -autocmd FileType cpp set foldmethod=syntax -autocmd FileType hpp set foldmethod=syntax -" likewise if a python file is opened -autocmd FileType python set foldmethod=indent -autocmd FileType python nnoremap <space> za -autocmd FileType python vnoremap <space> zf +"autocmd FileType cpp set foldmethod=syntax +"autocmd FileType hpp set foldmethod=syntax +"" likewise if a python file is opened +"autocmd FileType python set foldmethod=indent +"autocmd FileType python nnoremap <space> za +"autocmd FileType python vnoremap <space> zf set nocompatible " be iMproved, required diff --git a/python/ur_simple_control/visualize/__pycache__/make_run.cpython-312.pyc b/python/ur_simple_control/visualize/__pycache__/make_run.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9c3e6925ad1e4bc8f21203deccd4c3c653c18b39 GIT binary patch literal 5907 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 literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/make_run.py b/python/ur_simple_control/visualize/make_run.py index 04ebe05..7c79e50 100644 --- a/python/ur_simple_control/visualize/make_run.py +++ b/python/ur_simple_control/visualize/make_run.py @@ -107,7 +107,7 @@ def loadRun(args, robot, log_data): # TODO fix if you want it, whatever atm man # TODO you're doubling fkine, dont if recompute_checker['p_es']: - log_data['p_es'][i] = robot.getMtool().translation + log_data['p_es'][i] = robot.getT_w_e().translation M = J_lin @ J_lin.T manip_index = np.sqrt(np.linalg.det(M)) diff --git a/python/ur_simple_control/visualize/manipulator_visual_motion_analyzer.py b/python/ur_simple_control/visualize/manipulator_visual_motion_analyzer.py index e949abd..2abb22e 100644 --- a/python/ur_simple_control/visualize/manipulator_visual_motion_analyzer.py +++ b/python/ur_simple_control/visualize/manipulator_visual_motion_analyzer.py @@ -144,10 +144,10 @@ class ManipulatorVisualMotionAnalyzer: screensize = pyautogui.size() self.SCREEN_WIDTH = screensize.width self.SCREEN_HEIGHT = screensize.height - #self.SCALING_FACTOR_HEIGHT = 0.8 - #self.SCALING_FACTOR_WIDTH = 0.5 - self.SCALING_FACTOR_HEIGHT = 0.3 - self.SCALING_FACTOR_WIDTH = 0.3 + self.SCALING_FACTOR_HEIGHT = 0.8 + self.SCALING_FACTOR_WIDTH = 0.5 + #self.SCALING_FACTOR_HEIGHT = 0.3 + #self.SCALING_FACTOR_WIDTH = 0.3 # dicts not because they have to be, but just so that # they are named because that might be useful # and because names are the only thing keeping horrendous this code together @@ -190,8 +190,8 @@ class ManipulatorVisualMotionAnalyzer: # putting it into this class so that python remembers it 'cos reasons, whatever # TODO: load this from run log files later # or just remove it since you're not generating runs from here -# self.controller1 = getController("") -# self.controller2 = getController("invKinm_Jac_T") + self.controller1 = getController("") + self.controller2 = getController("invKinm_Jac_T") # TODO: load runs, not make them # but deliver the same format. # TODO: ensure you're saving AT LEAST what's required here @@ -883,8 +883,8 @@ if __name__ == "__main__": log_data = cleanUpRun(log_data, log_data['qs'].shape[0], 200) robot = RobotManager(args) log_data = loadRun(args, robot, log_data) - gui = ManipulatorVisualMotionAnalyzer(root, queue, log_data, False) - #gui = ManipulatorVisualMotionAnalyzer(root, queue, None, False) + #gui = ManipulatorVisualMotionAnalyzer(root, queue, log_data, False) + gui = ManipulatorVisualMotionAnalyzer(root, queue, None, False) # have mainloop 'cos from tkinter import * mainloop() diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/InverseKinematics.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/InverseKinematics.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..372abb691ba194ea503d33fd754eb870bf5170fd GIT binary patch literal 9838 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 Dsh*%D literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/drawing.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/drawing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a713998bdd22d04ca21ee669a8169d573f87678c GIT binary patch literal 2009 zcmX@j%ge>Uz`)>U@+UQbm4V?ghy%k+P{!vF1_p-d3@HpLj5!QZj9{86mpO`s5hBK# z%a+W<$dJn(#Q_#!%HhoAisAyZ8FRREd7^k38B&;A7^3)6SXvmO_)}P07@`C!88z8n zf~@e<WW2@eR+^XWn3tKGSdy8am&^hZhhh!}1_ovZ28Pc+z|JUPgo-m{!5jz^U|?WK zVN794VO|YV&%nS?!<@oW#m&G_#mc}?%aYEJ!n%mDmbHWxrXhtbg?%;D6c>hAF9wEM zwi>1sHc60P#u~O1wlpR%n+0S-6$1l9Eqe`93I|vWB+r2%&r!pa!UC6P!I0;yVaQ^K z*^i)W*lRdyIBQsIz;>_UTn!BYMur|A7KTa&O)kIZFx61T2m9x<W`e*@`<Ea;Xfoeo zOuEIGev7fF2*iI03WS%S&|1lOi#0hvC%;IO<rY(3!7aALqQt!P)LX0&ilrbYzeJPk z7E@xyE$;lH%+$ORa4g(nE{QL@#g|x?9-ot$mmQyznpcu>i?z5UwV?PGb8>#pEym1S zj1{*SD{nDY6@$`|0v!CR)6dAyP1R4&FD}SWNh|{Mj1b(M(!3P?f}+HV%wqk5qWrAX z<dS0j(xUj{%-n*U)cEB5ypp2)9Q}gIl8pR3ED~jz#ifZknN_L!MfpkjCGo{2rD<vU zDMg9pnR)4Y1(mn>L2Q47XNu$*7#KiFsdzC1149GD7cK@~{(jF+&k4yhj2AFp=22O} zw?puvhSfzL>ju|PYz*8|4bFFXg(etI2<(gMV7$S@KY_8+Z9?<{!3Bm3gfEJ!u3)_= zs(X<~mjXEsu737T_6dv=3@0ScC|+PVv#f*tDu>!fP6j@S&!Ff=$p~z)jIe>^j8Myh zNS4s#iAd6{HB2e2kR%JG5pqb`0h%oka_lt>S@5g`axDad5^)WC4f7gyL?W(a(B$wd z0x2#6`JxDv1Hg&2h?jwZp$HT&MSKhl44TYE0w4iF5Frc_;3yJdU|_h#0!o2JVjw0L zI4OgZWRV0&oivD$0THqc3=G8}!(i#KNDiz6lorBLlS}f8ic}aF7(lv;v%tyV2@fAi zB4}{E!NJ|(*vU3QWJ2OZ@foHQ<u7t5G&qtZ%EH#}-ss-p*ikq^afVfc`&AaTA_WEp z29($Y<rh#6g_f>03|XM83JF3uS;LsZ2#T3>#u~;Ha8U$iF+;_eYM4MpTng(Nw$&hS zGcYj3FoKG@8kS%NO?E%DAWnyvE9Q`X_6!KTvDak1#h;s4l$~0XmYAFh4p^8#YDzj( zfDNMJ78isr&a6tk#hRE?kddg#SOktFR!Af<7Tn?in-QOxSDcxWTBHFAeb$2f%)F9f zP~?N71rjHmpg0Kt$rR}^Ffb^AV$K5`B{z8a`@=iKCnU~boR~5pY)0Y&#+fNI!WJa1 zU|g88AZ$m>h3NDP1!W%?7+jd#nLaQu_%j7Db%cLrVBia8YIJLGy}>Qe-~$eDO~G5N zd8N4pmEcr$OE5RF1XR}LWG3kqRDxKy*q}6XK~Bjn>D+>x_>%nmob1e!V!d3D0^=0D z#ER5n<CI(MQ2s48r~p%e@huS~6BA*zR}m;$Q7i)oO7Sf=D9w_bpHl=bkif|i8~`gB zz%B*{&Myv|-29Z%oK(9a8wLgjP`W5qV_;zTz|6?Vc$-1!E`$7i28|008h07=?lLHR VV&i30|D?disQy`miBS-24gi|l^~L}I literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/drawing_for_anim.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/drawing_for_anim.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ebb9affe3fb0c0e6f752cd3ec041f833d62c22c GIT binary patch literal 1777 zcmX@j%ge>Uz`)>U@+Z}qm4V?ghy%k+P{wCJ1_p-d3@HpLj5!QZj9{86mpO`s5hBK# z%a+W<$dJn(#Q_#!%HhoAisAyZ8FRREd7^k38B&;A7^3)6SXvmO_$wJTSzm$-_tRv& z#p_m@m+Y9AnVVRWnV*-;3KEB65Sy8Sf#I_hBgg?Ij8JigESS?^0t^fcDU2yhDa@-u z>KPaqYFJWOs<;^#s#qBqYFX16Qdk!;*0Pm=Oa$vmVM}3O4K>AuAvT(Up_aXdIfYFU zq?fUVJ%ufe3Cv~%nNY>Rz);Ik!<@na76Zw1V90aUFsHD<<ykP~xoVhd*g^7H>|iIL z5H%b%oG|w=GQd@Gq9_7$YPeQI!-0{ZCzgewl0lQx?>ShCfq?<a_+bBh)=UuCY5x-B zOHJlmj7hf`({C{r6@mCKLBaGAWR525EvCGJTWpC%iFxU%w^$(*M{#ONd`e<T;w?cC z%Qz*zpeVl}wWuUBwOEt;7E@xyE$;lH%+$ORaID=DMB>EfWagz7-(oI_FT2H;Se6dr zXUFHH=9OgJVl6I7EhxUloSdI?i!t*SW5q4T%3F+8#oP=G3<?PFt6e`MKQ~oBJ-@gh zKP9mU%rio8b4v44^b3j-D>94q3ySiyQj<%H^-GK5i!*Zza#G`y^YcoI@^kbHDoZl* z^RP&iWfqqv=44i->KElF<(I@4mz1WZ>8BJWmS^Ur$EW2N#V6)v=IRwx-Vz20`XhV_ zN~lHh3=9k$3=9m#TNxM_8W_HCG4S&Ddv<zGNS<N5fcY|y$_l<6f)_QcF7jA6xPD?| z;FfA|zQZdt!Ei!gUsMO<4IcgpjGb;1q8A7*FkB#fQB-vW>qSxBi#)pI%Y9&D;FOx7 zc#%WqI)~~-4%G#TD+I4_Xy4$FgbM0i<j`ADc$LHOBR>P5#Ai@?!JgO7fHONOd99We zk@BHA0Fi6hYM4`4L8-om5lSQEka8R}=ON@cYM8R%xfSGE2(DqPf#+LLKEa-s5ILlh zL6hCD2xL$Z8v_GF5h&|{b3hR<hzp8EO_m})5St%F2!aS91_lOA&LUw328LTKIhlFc zw>Uv0C?Tg7iGf79lJj%&i$DU|MG_z_(jY<xM96{?1}NXclXH<ANDCh*C55FXm*f|L z6Ok$d1A`PuZ3#FLJ>lU)NkR>-H#oRE96Q-2h)hVFC_ck<qWnb;g$74bL?5v5US|=z z$RakOaE9U)7MU9$zWhZN`2~zuS(J(tK;9I%#hO=|TTlrOgIj{Ri6sR&`6W4-NqPm9 zAl5B5D9v1uQ*ui>w;(6JBtJhVJF}!%FBhc1I7Kh9BDL5!<rX`Xe~S$&z*Jy-O9aV8 zP^JQx7e%1r2gNdQcoyGcgVHR?`8h@4d{zVsr<Dv~$ASa$7l%!5eoARhs$G#W0|Nu7 v3@cV-U|{&b%*e=in?dL<gZzC4jSCDKcNz5VGAMjv6JRv@tir*l3^oD)m5;Vj literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/follow_curve.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/follow_curve.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b4d774cabefc795b0faa295b7671c2195c7beb7 GIT binary patch literal 4037 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 literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/forw_kinm.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/forw_kinm.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e0273e90dd8b0dccdd233ddc1bbedb943a8b8b8 GIT binary patch literal 25813 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 literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/inv_kinm.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/inv_kinm.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..532c8936e60051e24d515610fd450ce5e81949a7 GIT binary patch literal 14188 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 literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/joint_as_hom_mat.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/joint_as_hom_mat.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..626f44e0d6206b0f82a09e518d1876e7bde66b57 GIT binary patch literal 7728 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 literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/utils.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dff86f7d3e01b085200a86d4e5e8e7b328b3b14f GIT binary patch literal 2550 zcmX@j%ge>Uz`)>U@+Z}hg@NHQhy%k+P{wC11_p-d3@HpLj5!QZj44bl3{gxe%q<L2 z%qc7_3{fm8tSt;ttSM|Q3{h;AjGF8(K^py%VfsNl76t|eW(Ed^&uL(@N*F<cAe@D) z3M9b5z)-_j!%)S=z_1#ss+OsSDTPszfq@}~DVvFbp-8ZXDTNt{&soEi!h*zStYocZ z(`5H60vVqEXXVFBzDWu8FG0q=1PO(>X)@hn$}70VoS0Os$$X2sAU^dLTS;P3dTPln z#?)evOBECpe%0t_<maa9r{@<J<fkMSfq6y<Zcb@lihe;+Vnt@LenC-wR%&udv3_Y$ zd~s%OK~8FXa(-S(QGSkoL1jrsejXNyvdrSr#GK5kRQ;m-r2LZj;*!#|H2u<&%$#Dq zg34Q5sYONkMe!x6#U({N3=9mQFf6uYU|?uqxWmEK&(_J-Q8t6Qv*t2~OoQVMc8(6g z#*&WIrkWXyGZbgC%qX43vqEr%;YyJWtgB>h@C!fS7x@edVC?bY28kDt0x-rFFIlW$ zDHH-du7Vj>GWuyU7qKxgFx+Cx$;?a4Nx#LCmtT~t$#jc1F*zeMwJbFyK0QA%=N1cy zECxl0f<h5DNCPiOBt9jxxFj(zIkiZHfq?-eUMvOiH8*d+Wv6AoU8mg)l?AdFrSvXy z>tA5eFXCljU`PhVF3f2lhk_#U^BS<XY8bL$GDtLbQEVQsVqsvYWh?=i3f7+m@*S9k zAWA^d1LkINfGHFr3*-$H5l}LRC2$xW%uvM7z`&r%c8fhLF*&}ZDDxI$2qY+3iVKTM ziUdG`#GH~^qRDiN6`W{pG5Vr}piFXNPI75ZVo9oRVqRuJX-;BNW=>{FrDtABYDJL@ z0|NudhGG+NfZpKX?dR>}oxwVvcP8(A{+aw2In)~*?{M?>n|GQ|F`8~U(Q>-&MB4>| zmxYxtbE{lnQNavqP%wk==S|cMYD8dS3F<6Pw2%as8L&WvloX&cqlO7vu&;({29+1V z44O=SMIg&G*^0y%7#NDgK?KN7Xjm7QrQBjmEK1MK%+q8p0;R(uX;37Hq+}+h=jSEn z#OJ5Q7nh}gC|_8?0ZGhq@TdsRP0YzjEiM5^iECzhYF=4lPLU!51A{OF14FSZzQ~Z4 zoo_kQa=z_M+ZBSBrL|W$UX<3mz#?&jTmFKA$#n(miwf446>KkZ+g)I>!;BqJk_E@k z8AebUjy=g^7sZniKmi60MQj;?xY$Wys%7S6K*}_rFbA87Ah5+=4I?a`Ygv#oBq(Db zG=f<K%m#%#SRH~um<_X|hN*@rOBA63#zIa*HOwh2bC`n}lnMC;REEP0fYK@qMdG!r zC7>(`7D-`-+04k0!dS~3$&kWO%UZ|UQwE{S8Os?em?Ig=88ulU=@wkYRVf7dd;5iY zD1<5md-}PD`Zxx8hPZ|(B7i3IE$&=Ufe@bwDhO@~7DJO{d@3|K-r_FK%u6rLNi51N zsnq1gmK%!XKq;R&Gq3Cxw@+rCV@|p&sD`@5T2PdkS5hPa$~vH2RU{8C#1OfqNC70J z3ewH$8=sk1Rs?Ew6oaB%0Sq7+MjD=B0#b|8@{4jom4I(*Nl|8UaS^By0<xia139@x zNVviK0}~6Y#2o>l>6{Zer}IwaosoE1K%s;63kQRY+<fzy=1Yv0TQ0O*ZoANSgWzRl z<IB<}Hxx}Tn0Z|{3%qC+c-buYqGHGmDb<gxOgtJN7?@Z!etcnP;Nb&RN!Pg*E^;e; zVqjvGxWmDFfzRLyhv5w|@m}uVA6S`KC4LoyTz-&K-btU~kiM+5GV@^`US~Px!*Z<7 z%FLSVw^;K^a|<fLB|W&R2iJVy(i&V!fIYvG0i3<TLG_EnCO1E&G$+-rNSA?u0aW!B rgNl<6%#4hTw;6;!v9U6We&S<fH2B29#Hjj-gPGC(GZ#0b2G|Gy?I-4p literal 0 HcmV?d00001 diff --git a/python/ur_simple_control/visualize/robot_stuff/__pycache__/webots_api_helper_funs.cpython-312.pyc b/python/ur_simple_control/visualize/robot_stuff/__pycache__/webots_api_helper_funs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1c90a64e0af7b402aaa4f234b50ea6df280c5257 GIT binary patch literal 9583 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 literal 0 HcmV?d00001 -- GitLab