From b9e72aa82a411cef2b7fd115efdeb761559f8d0b Mon Sep 17 00:00:00 2001 From: Binit Shah Date: Tue, 27 Aug 2024 14:29:51 -0400 Subject: [PATCH 1/2] Document experiments on thread-safety --- docs/is_thread_safe/README.md | 132 ++++++++++++++++++ .../is_thread_safe/multiprocessing_plotter.py | 103 ++++++++++++++ docs/is_thread_safe/read_write.py | 61 ++++++++ 3 files changed, 296 insertions(+) create mode 100644 docs/is_thread_safe/README.md create mode 100644 docs/is_thread_safe/multiprocessing_plotter.py create mode 100644 docs/is_thread_safe/read_write.py diff --git a/docs/is_thread_safe/README.md b/docs/is_thread_safe/README.md new file mode 100644 index 00000000..83c645bc --- /dev/null +++ b/docs/is_thread_safe/README.md @@ -0,0 +1,132 @@ +# Is Stretch Body thread safe? + +The short answer: no. This tutorial builds up to a few kinds of threading experiments that prove this, and hopefully will serve as a launching point for making this library thread-safe. + +First, let's define what it means to be thread-safe. If we create an instance of the `Robot` class, we'd like to know if we can safely use it in Python threads. Using the `Robot`, there's two ways we interact with the underlying hardware: reading sensor data and writing motion commands. Our experiments will cover: + + 1. Single threaded reading and writing + 2. Single writer, but multithreaded readers + 3. Multithreading for both reading and writing + +Having multiple readers, even if only one thread can send commands, would be useful for visualization purposes. + +## Writing + +Let's create an instance of the `Robot`: + +```python +import stretch_body.robot + +r = stretch_body.robot.Robot() +assert r.startup() +assert r.is_homed() +``` + +Then create a "writer", that will send motion commands: + +```python +import random + +def write(): + r.lift.move_to(random.uniform(0.3, 1.1)) + r.arm.move_to(random.uniform(0.0, 0.4)) + r.end_of_arm.move_to('wrist_roll', random.uniform(-1.0, 1.0)) + r.head.move_to('head_pan', random.uniform(-1.0, 1.0)) + r.push_command() +``` + +Then let's define a writing-only runner, that sends motion commands at 10hz: + +```python +def wo_runner(): + """write-only runner""" + while True: + write() + time.sleep(0.1) +``` + +### Results + +We can run `wo_runner()` in the main thread without any issues. But if we launch `wo_runner()` in a thread: + +```python +import threading +threading.Thread(target=wo_runner).start() +``` + +The program exits with no error. Likely an exception is being thrown in the thread, but isn't being surfaced to the user. Surfacing this exception is the first step towards making this library thread-safe. + +Notably, if we command out the lift and arm motion (leaving only the Dxl joints), the thread works fine. + +```python +def write(): + # r.lift.move_to(random.uniform(0.3, 1.1)) # not thread-safe + # r.arm.move_to(random.uniform(0.0, 0.4)) # not thread-safe + r.end_of_arm.move_to('wrist_roll', random.uniform(-1.0, 1.0)) + r.head.move_to('head_pan', random.uniform(-1.0, 1.0)) + r.push_command() +``` + +## Reading + +Let's create a "reader", that will plot the joint states for the four joints: + +```python +def read(plotter): + lift_pos = r.lift.status['pos'] + arm_pos = r.arm.status['pos'] + roll_pos = r.end_of_arm.get_joint('wrist_roll').status['pos'] + pan_pos = r.head.get_joint('head_pan').status['pos'] + plotter.plot(lift_pos, arm_pos, roll_pos, pan_pos) +``` + +Then let's define a reading-only runner, that will plot joint state at 10hz: + +```python +def ro_runner(): + """read-only runner""" + pl=NBPlot() + while True: + read(pl) + time.sleep(0.1) +``` + +`NBPlot` is defined within `multiprocessing_plotter.py` in this folder. It enables Matplotlib to plot within threads. + +### Results + +We can run `ro_runner()` in the main thread without any issues, but if we launch `ro_runner()` in a thread: + +```python +import threading +threading.Thread(target=ro_runner).start() +``` + +Once again, the program exits with no error. Surfacing the underlying error will be helpful to debug. + +## Reading and Writing + +For completion, we have `wr_runner()`: + +```python +def rw_runner(): + """read-and-write runner""" + pl=NBPlot() + while True: + write() + read(pl) + time.sleep(0.1) +``` + +Which runs into the same problems as above. + +## Code + +The code for this experiment lives in two files within this same directory: + + - `read_write.py`: which defines the reading and writing runners + - `multiprocessing_plotter.py`: which is a helper library for plotting within Python threads. The logic does not impact these experiments. + +## Takeaway + +This document captures a few experiments around Stretch Body's thread safety. It shows that the library is currently not thread safe, and highlights some possible ways to start debugging how to make the library thread-safe. diff --git a/docs/is_thread_safe/multiprocessing_plotter.py b/docs/is_thread_safe/multiprocessing_plotter.py new file mode 100644 index 00000000..86c88404 --- /dev/null +++ b/docs/is_thread_safe/multiprocessing_plotter.py @@ -0,0 +1,103 @@ +# Based on the multiprocessing tutorial here: +# https://matplotlib.org/stable/gallery/misc/multiprocess_sgskip.html + +import threading +import multiprocessing as mp +import time +import random + +import matplotlib.pyplot as plt +import numpy as np + + +class ProcessPlotter: + def __init__(self): + self.time = [] + self.lift = [] + self.arm = [] + self.wrist_roll = [] + self.head_pan = [] + + def terminate(self): + plt.close('all') + + def call_back(self): + while self.pipe.poll(): + command = self.pipe.recv() + if command is None: + self.terminate() + return False + else: + self.time.append(command[0]) + self.lift.append(command[1]) + self.arm.append(command[2]) + self.wrist_roll.append(command[3]) + self.head_pan.append(command[4]) + self.ax[0].plot(self.time, self.lift, color='red') + self.ax[1].plot(self.time, self.arm, color='green') + self.ax[2].plot(self.time, self.wrist_roll, color='blue') + self.ax[3].plot(self.time, self.head_pan, color='purple') + self.fig.canvas.draw() + return True + + def __call__(self, pipe): + self.pipe = pipe + self.fig, self.ax = plt.subplots(4) + self.ax[0].set_ylim([0.0, 1.1]) + self.ax[1].set_ylim([0.0, 0.5]) + self.ax[2].set_ylim([-1.57, 1.57]) + self.ax[3].set_ylim([-4.04, 1.73]) + timer = self.fig.canvas.new_timer(interval=250) + timer.add_callback(self.call_back) + timer.start() + + plt.show() + + +class NBPlot: + def __init__(self): + self.plot_pipe, plotter_pipe = mp.Pipe() + self.plotter = ProcessPlotter() + self.plot_process = mp.Process( + target=self.plotter, args=(plotter_pipe,), daemon=True) + self.plot_process.start() + self.start_time = time.time() + + def plot(self, lift_pos, arm_pos, roll_pos, pan_pos, finished=False): + send = self.plot_pipe.send + if finished: + send(None) + else: + data = np.array([time.time() - self.start_time, lift_pos, arm_pos, roll_pos, pan_pos]) + send(data) + + +def main(flag): + pl=NBPlot() + while not flag.is_set(): + pl.plot(random.uniform(0.0, 1.1), random.uniform(0.0, 0.5), random.uniform(-1.57, 1.57), random.uniform(-4.04, 1.5)) + time.sleep(0.25) + pl.plot(None, None, None, None, finished=True) + + +# if __name__ == '__main__': +# shutdown_flag = threading.Event() +# threading.Thread(target=main, args=(shutdown_flag,)).start() +# threading.Thread(target=main, args=(shutdown_flag,)).start() +# print('Press Ctrl-C to exit') +# try: +# while True: +# pass +# except: +# pass +# finally: +# shutdown_flag.set() +# time.sleep(1) + + +if __name__ == '__main__': + shutdown_flag = threading.Event() + threading.Thread(target=main, args=(shutdown_flag,)).start() + threading.Thread(target=main, args=(shutdown_flag,)).start() + time.sleep(5) + shutdown_flag.set() \ No newline at end of file diff --git a/docs/is_thread_safe/read_write.py b/docs/is_thread_safe/read_write.py new file mode 100644 index 00000000..a4ae9b7b --- /dev/null +++ b/docs/is_thread_safe/read_write.py @@ -0,0 +1,61 @@ +import time +import random +import stretch_body.robot +# Required Hack whenever importing cv2 (stretch_body does it implicitly). Details: https://forum.hello-robot.com/t/1047 +import os; os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = '/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so' +from multiprocessing_plotter import NBPlot + +r = stretch_body.robot.Robot() +assert r.startup() +assert r.is_homed() + +def write(): + r.lift.move_to(random.uniform(0.3, 1.1)) # not thread-safe + r.arm.move_to(random.uniform(0.0, 0.4)) # not thread-safe + r.end_of_arm.move_to('wrist_roll', random.uniform(-1.0, 1.0)) + r.head.move_to('head_pan', random.uniform(-1.0, 1.0)) + r.push_command() + +def read(plotter): + lift_pos = r.lift.status['pos'] + arm_pos = r.arm.status['pos'] + roll_pos = r.end_of_arm.get_joint('wrist_roll').status['pos'] + pan_pos = r.head.get_joint('head_pan').status['pos'] + plotter.plot(lift_pos, arm_pos, roll_pos, pan_pos) + +def ro_runner(): + """read-only runner""" + pl=NBPlot() + while True: + read(pl) + time.sleep(0.1) + +def rw_runner(): + """read-and-write runner""" + pl=NBPlot() + while True: + write() + read(pl) + time.sleep(0.1) + +def wo_runner(): + """write-only runner""" + while True: + write() + time.sleep(0.1) + +def read_wo_plotting(): + lift_pos = r.lift.status['pos']; print('lift:', lift_pos) + arm_pos = r.arm.status['pos']; print('arm:', arm_pos) + roll_pos = r.end_of_arm.get_joint('wrist_roll').status['pos']; print('roll:', roll_pos) + pan_pos = r.head.get_joint('head_pan').status['pos']; print('pan:', pan_pos) + +def ro_woplotter_runner(): + """read-only runner""" + while True: + read_wo_plotting() + time.sleep(0.1) + +if __name__ == "__main__": + import threading + threading.Thread(target=ro_woplotter_runner).start() From 8b27e6980d60a955b6244cf34aea973acc2c0860 Mon Sep 17 00:00:00 2001 From: Binit Shah Date: Wed, 28 Aug 2024 12:16:55 -0400 Subject: [PATCH 2/2] Disabling Asyncio makes Stretch Body thread-safe --- docs/is_thread_safe/README.md | 94 +++++++++++++++++--- docs/is_thread_safe/liveplots.png | Bin 0 -> 136017 bytes docs/is_thread_safe/low_high_competition.py | 53 +++++++++++ docs/is_thread_safe/read_write.py | 4 +- 4 files changed, 138 insertions(+), 13 deletions(-) create mode 100644 docs/is_thread_safe/liveplots.png create mode 100644 docs/is_thread_safe/low_high_competition.py diff --git a/docs/is_thread_safe/README.md b/docs/is_thread_safe/README.md index 83c645bc..2d4be7ee 100644 --- a/docs/is_thread_safe/README.md +++ b/docs/is_thread_safe/README.md @@ -1,6 +1,6 @@ # Is Stretch Body thread safe? -The short answer: no. This tutorial builds up to a few kinds of threading experiments that prove this, and hopefully will serve as a launching point for making this library thread-safe. +The short answer: yes, if you don't use asyncio. This tutorial builds up to a few kinds of threading experiments that prove this, and hopefully will serve as a launching point for further exploration. First, let's define what it means to be thread-safe. If we create an instance of the `Robot` class, we'd like to know if we can safely use it in Python threads. Using the `Robot`, there's two ways we interact with the underlying hardware: reading sensor data and writing motion commands. Our experiments will cover: @@ -47,26 +47,84 @@ def wo_runner(): ### Results -We can run `wo_runner()` in the main thread without any issues. But if we launch `wo_runner()` in a thread: +We can run `wo_runner()` in the main thread: + +```python +wo_runner() +``` + +or launch it in a thread: ```python import threading threading.Thread(target=wo_runner).start() ``` -The program exits with no error. Likely an exception is being thrown in the thread, but isn't being surfaced to the user. Surfacing this exception is the first step towards making this library thread-safe. +When AsyncIO is turned on, the program exits with no error. Likely an exception is being thrown in the thread, but isn't being surfaced to the user. Surfacing this exception is the first step towards making this library thread-safe with AsyncIO. + +However, if we [disable AsyncIO](https://github.com/hello-robot/stretch_body/blob/master/docs/robot_parameters.md#use_asyncio), we'll see the robot start to jitter and it tracks random motion goals. -Notably, if we command out the lift and arm motion (leaving only the Dxl joints), the thread works fine. +Next, we can run multiple threads with no problem: ```python -def write(): - # r.lift.move_to(random.uniform(0.3, 1.1)) # not thread-safe - # r.arm.move_to(random.uniform(0.0, 0.4)) # not thread-safe - r.end_of_arm.move_to('wrist_roll', random.uniform(-1.0, 1.0)) - r.head.move_to('head_pan', random.uniform(-1.0, 1.0)) +import threading + +threading.Thread(target=wo_runner).start() +threading.Thread(target=wo_runner).start() +``` + +### High-Low Competition + +In the previous experiment, it's hard to tell the two-thread jitter apart from the one-thread jitter. So let's write two competing writers: + +```python +def low_write(): + r.lift.move_to(0.3) + r.arm.move_to(0.0) + r.end_of_arm.move_to('wrist_roll', -1.0) + r.head.move_to('head_pan', -1.0) + r.push_command() + +def high_write(): + r.lift.move_to(1.1) + r.arm.move_to(0.4) + r.end_of_arm.move_to('wrist_roll', 1.0) + r.head.move_to('head_pan', 1.0) r.push_command() ``` +and create runners for each: + +```python +def low_rw_runner(): + """read-and-write runner""" + pl=NBPlot() + while True: + low_write() + read(pl) + time.sleep(0.1) + +def high_rw_runner(): + """read-and-write runner""" + pl=NBPlot() + s = time.time() + while time.time() - s < 10: + high_write() + read(pl) + time.sleep(0.1) +``` + +Then, launch them with: + +```python +if __name__ == "__main__": + import threading + threading.Thread(target=low_rw_runner).start() + threading.Thread(target=high_rw_runner).start() +``` + +Running this, we'll see the threads compete with one another, and the joints will oscillate between their limits, depending on which thread is given more processing time by the operating system at that moment. After 10 seconds, the high writer dies, and the robot moves to its lower joint limits. + ## Reading Let's create a "reader", that will plot the joint states for the four joints: @@ -102,7 +160,7 @@ import threading threading.Thread(target=ro_runner).start() ``` -Once again, the program exits with no error. Surfacing the underlying error will be helpful to debug. +Once again, the program exits with no error if we use asyncio and works fine if we disable it. Surfacing the underlying error will be helpful to debug. ## Reading and Writing @@ -118,15 +176,27 @@ def rw_runner(): time.sleep(0.1) ``` -Which runs into the same problems as above. +We run it with: + +```python +import threading + +threading.Thread(target=rw_runner).start() +threading.Thread(target=rw_runner).start() +``` + +And we'll see two live plots pop up and show the robot tracking the motion commands being sent by the two threads. + +![live plots](./liveplots.png) ## Code The code for this experiment lives in two files within this same directory: - `read_write.py`: which defines the reading and writing runners + - `low_high_competition.py`: which defines the low & high writers that compete in two threads - `multiprocessing_plotter.py`: which is a helper library for plotting within Python threads. The logic does not impact these experiments. ## Takeaway -This document captures a few experiments around Stretch Body's thread safety. It shows that the library is currently not thread safe, and highlights some possible ways to start debugging how to make the library thread-safe. +This document captures a few experiments around Stretch Body's thread safety. It shows that the library is currently thread safe only if you disable AsyncIO, and highlights some possible ways to start debugging how to make the library thread-safe with AsyncIO. diff --git a/docs/is_thread_safe/liveplots.png b/docs/is_thread_safe/liveplots.png new file mode 100644 index 0000000000000000000000000000000000000000..4d395d392fd3ae22268573b6bdce0682095e5af3 GIT binary patch literal 136017 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�O;2JT7ZCnMgD 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∨n$kho+|wN{sT_Q8MS5okxe1AJ-*SXq^E!_!SpC} z!%{2Z0^mh0Xm(bk)X&zg%N=6F_NMf1(0u>xY-i=E3_B3ts{u)k&9k~D2J6=FGttB- zl`@!zn_fl>Hh)tD=ZjN|`IChXdM?aV1=;SbZ(%Dn%-2s!^g;0q%0;>1Y7z37_*C^C zTe^Ae&ICF`-E4Gpwp6pm`M1%wNvHS8zo{_#3#$$P!}K$R8f*7H&4S#QA81xDtc;4V zJ_2_uuj}*AoKX6-)LDnTCWr4oISJo1l{qo8Y2e$WcZ`03EprlJ!yCcuAlqGGlbb{* ze)D>W4F$cl?&~MEFY$=G((#4{I8dvS???i7H*@6ggjO4Lz4>2%=S2lnltRg(Sx&u? zq14h47fbj{8V-7FhC?C?tyx%Za_Z=$1EJ1j;3xF}hj@(*Y53e19+rcVPmt9?!ORpd zENyGba*I4ex~d6Hhc5EP$?D+GX}(UG(VslpxO*lX@>1yp3}+J${C^*g%fbuuk4#Xq z#U4tIxg7e8=Vb9{r2_LUvkLvpKQqycjVN({u09cY=vbov&x%$anHry=igdXw-B5^w z6~RmgvzKN*a#qaTw4mg?MXhN`|W1OoYC# zK>v_P$`mL(hd{84Fh)x=Cml1amB1jJykz~!Aw^j7*k!M5^lsw+9L~GGG&{$_w)3E* z?`$^X$yQ#?sEeOa)g$J4>9fh2SO1zX6l)xFpK|*kC$^_l*=C~RmCq(O=aCt& zpapSMtezolkj5}=j38pr`?%YJC{Zam4z&|R1rirsI1NbnctWZpk0>n~KEG)maqL{y zMqfdkOgBV^(7*s$!fZSH1I|IE-A8z)(h z>1!&C(#|GoUJw1;j2fub5%@EgtfitKbH^k4plmI?I|j>1m+c(40`8I(=f@to@A?_d-aX8HnLb8?o_%_a)xlbNO4d|+SEyFVv$xC zJ49)Ff7Ycrz>(_mV*|rzvVTJ7$(f~wC;VvBui1t3WJlhrpH;gz|5VvRf*1^ zF0zREXTys-<~a61Puq`1eOhQ26>=)EWT!8YM^UC)l9x-8ku#NfT@it;TX4{)x#0Ll z;P-!TgFBYsR4$LE(!#U;6qZ|_>QIju<5U~9s4>{S2h+eZK2jv6{y!n2cRdWgWW8r< zqxy-ad#d8cPigfeX@ruvC%M^~-Nh2)`OFRT4BA22e+ao*ayv)9YKuC5?z`l3QWT`5 zdB!?nv5_jPnqExF>5m;VZc7hSBUNL*#g2%@z8ca>kDlgcFKuRVD|vo}fo)Q(Xw>L^ z67T=sJ#|RP#^pDDNGP+Cy3vE1^@BifzDJaFnp)cKGSyPto}>SQR}|szqtm-oU^v)TZCAPm7Pxe zRN@?N{n$`vsM6eg*C19+s%8F+dfL1VtF^tGjw&b`3Bq3k;=PX*5?a+DyTNaLw8DPfelm=sHSe0aJ9-x<@~zTDKQHuJl{Kb?89Bai5#EIT1ByBckc)nK9O*Xoa$03(gd zs&z3<{Mg^&7sLVV7I&%$XT%oV%5Io}Zq?5B@BfL9Bb)1Z#Gbkz{G5&01TFsl1@SSe zmZGygc>1F#-XT4kTRkG7UkcGO`eh!8{$aj zHGhR56~qMxnOwTPvc3Ao1Px2$>>SY_Cb>NU|38C(9ReEphg(051pR~TAEBz>_ z&h#}jR5S`*`wfj!FjYPxyUPqB|Prp$coCU zfhH;NUG3*ZP{EMO9^+6GP5XsK1Mk$?Q~Nx0KmWgXHeEgA)}(^ZTK@q_`H&{96De-o zTxTl4*zy3&=N$k(JW6EmH)Xx)u75?R0ZS?}MQ4VBDBAJB4PQ%3i;d8Hb-?$LqV2vv zBt=Cn6hV^mYsp|ZqGH%ZGDE@u;*7rNmsTC$brxP;Sx$od?CdWQ5fMYvHiOi$48jHf z4I!nj#)3kyP+WMA{sS^To#4%iNvX7|vQ8uw8ruiL)jW-*+$PsAqosOiq1|~$t^Yo~ zbND(Z(wjG^(S6Kvar#etxcv9eyo1BI6zihuq=89swm6x_YP3v}jp{Alc^BFHy*=FD zKet~-taCzWPH&#;Aa(6yArEt_APwMd*MInQ1+6!#Ozt z!1MtNZLgbjaA0+IeojMAPaz;cJjuqWb)STnhjHrmP>DFT4emxXXWVgVi3!QSW2MH^ zW)hU?5sKBy$RCu5zl_!2RcZ9qYa|Fa+GyK36C{n666yI|(tF%j*Z=FztQp-#%&E~e zq}!@zX{P!clUZKL22AMaia3(1Ca>VxwQrd*ou0=neMgH;WA5s?%f|(!rGVBY=~tD7 zzdW$~toJG#7CLP0Kdaau6{K|vCyu5xc}GhZ@69cbf3Fq&d#DucwbtC+o+tNoS4Wlx zBYT)%D~{Aize$tEOY>+1DVy&XX`BtNr@EA8`aM1QgoTBDQ)Xde5(I-r?1v7A$H%7U zTO-YnSM%@C5RU5C-x7K3kU9X(QY$TL{rAGc@cEd)7*Nkr*e%tyMVmEa*f9`eGBP58 zF6+E_?qQ{%fZTS|!+3KV?JN87BR+)Z_0eY2@*@KTGVcjQN=gd$R2xREb(Q=1XP=uc z;cNO## z!_i*)L&IG|F4TTEW96U6@x5BaU##a{jd|Wy%-%3+{3~Q1guh;} ztylcWR0c`_ql|hJQ1J4(3cYDI-Cy%z`=dZjvh~T;$k+Jt!w5=<3wNV^u(kd>8ha=9 z$pi*fd2JI?5}G9FBv7q)qXKcPgBx?Ebe8*;>vfPY1~ztdllL#g5)g#VPj~yx=c7Cz z-XWH}&gHNebo$RWhZwb*$jQkM{#J$LNJRgL{{cc&L*E;d6dEY-8lPwzl*2N3T+cS* z6ei~8xNR1fT0CzxIcr8P?ZfHd`?83S>bklkGp$$bSoGRXO7~HH>tFz@(&bQ_$m>KX)9Xyi}hu(tPbLlqN=Ks(&I~29jO^J zu`iDbhf~ZMQZ_!TSliRYE>=bCt1!2*G2z6>&#BsWaMJicWH!S71qEuT^5oV_Gm%|t z<-#bKfS|9V_E3h*DSwVb4t=Py7a^U--r4GYlD-!=*l+o`k4?^tfBBss`;<=+^7e$! z$9btr7FIKB9-+g|TX;y}&#r zW^Ex>7VG&unm#a*Co?cMMqJlgSs4pLh1qdSwy~+Hf-XGay~f$Df-hd%^4NN`K-7Mt z*Hu-PoW9pfvm1eNu-2=RcXaVnbBjWH1#~vqXgJZl=ZJ7vMMN5j9yJ<@+C#hYQzoCb z=Soh&e^l==IX`symU+K+ z7R^!Oza3Ce{`ir{8p;yXPutd8N^p&g0y12Gf4{-w-6fr7xqYjR?G zQbAy()%)H~Hwl>St(U)SUka_+!f9esl8U~*g10x{^7GTR`(}cMnT5q#!*-_eKr96a z<9q)(8ylOg-GZ!_ehwO)lYJG&;^Ly!T=j0r_Rp{|MDS-+${^z{_|WK_Mk0qn=VOwK`)Jc(GIvcFDQ<3N*6ysUUZ%(Q>)yuN zIzj*e`krKKl?Z=ATZ zJUu+zUXr@io9DYCbqg;mYup?B59KzCjWYaV%WQI=$1+D+u9sdj$$zr8wcXB3(t|Si zTWK;$X(2E64sCU3JZCtKBf6xdgrfEH8t3OLeBGQY7*M+irZ5E%oO_#4obIP z)s%gYUjxBK!LjVcivPi?eqwRLtdwW%l=G!GEZ_8UFbq5ep;Xt^RoO1{TUc07a{Xn* zm~nQ0yqv)$BFfLt4>n^Pv@C1seR{kHllL1k`gdrc9jjzIqK86*LiW;%0Mu2~(C7m* z0x4MLDyQ6i(Zp0>?VR_gD?X3leYsfo@bLIqT)aLmLCm+!&%w@qdQdgS!pYg+8T9(L zUxJ@yGbksHN}hdzCeNfMNJ?K6wrecLrI&>b)`Kf2ja_5ZoQN9{rrNKk!y|D>k*M&4OKI} zA-~0en|GPK+n@EzMuE*A>l9q$)Qf@sjxpg}ZVeacXXr=sCSBA&nKc!cGQq&WAbEB5 zMD_7MP0;a`Ar346N6=7y=U5zcLu9P1=ro(T{xsVn;^Hs=u)XLbU7{qN2b1`^6$4kBz*x0pM!yolL$;VRt8>Nl{r^JWx@lY4>4t zHGWo%D_~EGkI(Hn{d0JZDUdTx{d{Hn+#9FBKLA$YcG#3(L|2!vLNlUn$s^n}%R6yl zVZom4#z_=4*9bBnP2;%r-sS}of`l>|h-XJ4r>~^VGqbXiB|Z*Cr*c~j!iK2d%}-;v z>6=N3A}4rz{zpZj!g~J0(@yl$R~~R>`t{}65aane@pJN+_mQL5!#c4*89yPn)7Mgl z<4!RlA;_$|KLxQc>-k5;CR!!hHDLh$I^LWZ0>CC@Y55-T1b>27OiWDknak7lK0s?h zaJ^c(-SvYb%5H6aO22k(WkxFa=mRbR1wEPFa+o|8y{e)j+LzLN2Cz%H=e5mrnZB<) zu=3fqN5N=5_!Tg{uomkj0RsiOHJs8FMaVN-Ws2;&=sZ(>aNQk>P9WfuP9c*Ba7uT7 zKRg)V?X0!-0afsPCns829h~=XoCYA%USUE1(2y~Bg%?l;pR}Sn50DA;h zYi9I}-Q1D|p4J62s}E03m;h#E$?oM;pT z4V-nM09flW_h%{zeNQmRZc0PF$3wQ^(ies8aV##R9Wctar=suTm_5xxc%O9}9=5~d zln(h(Vps<`H$5AhtTZ1qkl|rjg1(0A9n!2ZSD`hFuy{eMd6&5wSN_~P-|s)-Q2Yf+ zzU()48&%Nw{-n->j|>bI&5qf`+TJlTG9Jp`UY7at{p$Iv z4D-tc0AzU`m}9=h$;r6POaas`CQx$>K_&lWVv?cJ1a=Zw&DS1QA7B2t|IIdH?|)XP zQs8#funhqYTa8MmJ#1KfUYh1j)g(``}gmD zFF{QEAWDu1FzF?{f+!In@%RAC}M$8 z{ijX+O8a$jtNC6wIgkcpSd3r#BLR z^5}VPP8$SvoKJ)y4qyp@L)Tw}=bpl!>3ya3GU^B79L$7rEV%^)2gA0W1TmsSio2io zV8&HM zTVg4XcqXa|j8c-3$n;YUmb)n26qy^@*GeLIYx4#c! z^1>nWb7DM@_y!glN*}k*>jHJDjxB(%?TI5(;J4Jp1*=$@M?~}O!s)8Q>FVa&vZs9o zcN@>w-(~cf7DRAvSRMOEu2A=nDcA_da?1PrM=9nRLy_L1am^Qwm28f;-B9kc@Z65I z&58|`^J_qnRBGN;FrMcj59e(b_zqm_aYuPKEMce01f%$a?)~~MMgVK55+K?7Y~n6# za+`dd_m!E91w-k4aj$LG8sp=pY7ZyHVZi=wr?}1{X6=B-)Z(4F2~e$;4BHKhkVM#4A)n83r~@{{!)ho+p|o2=)D?E-pM z1)3hvZEo({o;^RV+@0BefBM(@%TfRkH(NW> z?0!C>B3}>=B#@^QRx84kBrjv`y+Vwr4Za{^93(}DeD=o1; zU8O*tG*1@0{ruJ|J}C(uF=&)C(MdN+kvb5lTOfS}Nd%>&5Ws7{kcz!Mix(LKJPrUs zN=q56=JP8n(MX|#f`ZINI&WV(Fp$y;OG>~b)eHFhF-{H8VAi|x&!(nv85wdmHb=Sk z4d8`~io(EPInDgQ$Or`oN7B~T*7@FY&6m8~aB}*wm@uQ0ZXcgV3uH^;)}(~L1CUM* z#(5YnW?#3qu&(f7ozFijq793Z*z1HYvoXV{ye|2oJYdmS8qVQ847E%7enC2rh6(zM zur!ML1gR%(KCL<146={(*7D%7*DkW=N0wE%QpX7FCtFs>qsF+Vnc>`x{_y7UKXQK> z=HjX1{2P%^`t&`LZ^yB3_iY~{x>R<9$>JJ@Y`2&0IhcHR>Ui-HP}_70UauCI9li3} zohL5HwSFyd{}kvu3LB$a5b8{AKcxL9y`UXravKiTf_m z>~DK%HtU&h>ME)|V1-cgn%uD&AGcYpxF#fqGk)uLNyzsoAGz=NOf#g&NGYNmaSvY2 z=&fwh-|xW7Fr91K&A;+G>EO|1>r(i62?oBy^(z|OQ8fHxv<5QT&T;wOhP=*H1>}xf zyQ}c^*A<_Wi8sVQy#C;ouHdu7u+_kGv+eufn#yCmq4wwWN#Fsx%=Vt)7)hr~1C0%0 zcW@nBW)Q)%RqJP=zY_XOo7I25n^Cy0e+j$K*GG%%iFqtqW7|-bhB!A~tx~VFNTKx~ z*0BH9TH}KZRbXVKquZ#Rw*m0704AcM&q!-}w+C;t0iG8wEe1n7(q6>@)3~7Y^&iFe zX?mREe_O6k4AfRq?Mmiin11!iJFqBqOd!2d-qgv9jE&PzJ2*JFuuROz@E$$Ra$WXL z0`gJ>$oROR*Vt!4j9z{(%GKR|87n6zyjxVlTmF|`byAh}7y&j8roE88 z=R5u9eHatl7pZZv$u;ZB-+!Icba(^Cc5bD;z1_WTaeUlf$sPwFfMx(FCn?KqK;t2P zSb+m20x~o0^7nTU0&XX>!9zGWxW7Q>jNex#+Xp?6Jdsh~M?NK&_4BY~mI#0(0DG8X zYTw`80U#*VHiP*3_1L|HV;EpL6SK2!(=+d!t;$;OEbh*I_WsZS+655$yZ7(I#lo?a z^z?j$9u=i4EN2*=j*g$AM$$M67)h*_no~6C#CeHK$1?eLeMVr$Y#;7?QOAG≫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∾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�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%0DfS4i*Jmn;_V3t$s;0*l7f%(}lx{&#T_=4hy@o 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 P;XW&KJ6M&OcjEs6x(Boc literal 0 HcmV?d00001 diff --git a/docs/is_thread_safe/low_high_competition.py b/docs/is_thread_safe/low_high_competition.py new file mode 100644 index 00000000..ae86e404 --- /dev/null +++ b/docs/is_thread_safe/low_high_competition.py @@ -0,0 +1,53 @@ +import time +import random +import stretch_body.robot +# Required Hack whenever importing cv2 (stretch_body does it implicitly). Details: https://forum.hello-robot.com/t/1047 +import os; os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = '/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so' +from multiprocessing_plotter import NBPlot + +r = stretch_body.robot.Robot() +assert r.startup() +assert r.is_homed() + +def low_write(): + r.lift.move_to(0.3) + r.arm.move_to(0.0) + r.end_of_arm.move_to('wrist_roll', -1.0) + r.head.move_to('head_pan', -1.0) + r.push_command() + +def high_write(): + r.lift.move_to(1.1) + r.arm.move_to(0.4) + r.end_of_arm.move_to('wrist_roll', 1.0) + r.head.move_to('head_pan', 1.0) + r.push_command() + +def read(plotter): + lift_pos = r.lift.status['pos'] + arm_pos = r.arm.status['pos'] + roll_pos = r.end_of_arm.get_joint('wrist_roll').status['pos'] + pan_pos = r.head.get_joint('head_pan').status['pos'] + plotter.plot(lift_pos, arm_pos, roll_pos, pan_pos) + +def low_rw_runner(): + """read-and-write runner""" + pl=NBPlot() + while True: + low_write() + read(pl) + time.sleep(0.1) + +def high_rw_runner(): + """read-and-write runner""" + pl=NBPlot() + s = time.time() + while time.time() - s < 10: + high_write() + read(pl) + time.sleep(0.1) + +if __name__ == "__main__": + import threading + threading.Thread(target=low_rw_runner).start() + threading.Thread(target=high_rw_runner).start() diff --git a/docs/is_thread_safe/read_write.py b/docs/is_thread_safe/read_write.py index a4ae9b7b..1f0ed0f8 100644 --- a/docs/is_thread_safe/read_write.py +++ b/docs/is_thread_safe/read_write.py @@ -58,4 +58,6 @@ def ro_woplotter_runner(): if __name__ == "__main__": import threading - threading.Thread(target=ro_woplotter_runner).start() + threading.Thread(target=rw_runner).start() + threading.Thread(target=rw_runner).start() + #wo_runner()