From 82e3cef1e5166de6cd398e21bc3c115cf5d7fe72 Mon Sep 17 00:00:00 2001 From: Sean Gillen Date: Thu, 2 Oct 2025 16:02:47 -0400 Subject: [PATCH 1/4] update readme --- README.md | 134 +++++++++--------------------- docs/images/SERVICES.md | 37 +++++++++ docs/images/greenwave_diagram.png | Bin 0 -> 127103 bytes 3 files changed, 74 insertions(+), 97 deletions(-) create mode 100644 docs/images/SERVICES.md create mode 100644 docs/images/greenwave_diagram.png diff --git a/README.md b/README.md index 803a845..060eb58 100644 --- a/README.md +++ b/README.md @@ -1,146 +1,86 @@ # Greenwave Monitor +Greenwave monitor is a tool for runtime monitoring of ROS 2 topics. -A high-performance diagnostic tool for ROS 2 that provides real-time monitoring of topic frame rates and latency metrics. The monitor node is like a more performant `ros2 topic hz` with ROS2 Diagnostics output, and services to manage topics. The dashboard is a terminal-based interface that provides a real-time view of the monitoring data, as well as displaying diagnostic data published by sensor drivers. +![Greenwave Monitor](docs/images/greenwave_r2s_dashboard.png) -The diagnostics messages follow conventions from [Isaac ROS NITROS](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nitros), that means configured NITROS nodes can be monitored with the same tool without additional subscriber overhead. For example the drivers from [Isaac ROS NOVA](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nova) can be monitored with the same tool (also, did you know you can enable all NITROS nodes to publish diagnostics? see the bottom of [this](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nitros/isaac_ros_nitros/index.html) page). +1. Provides a node that behaves like C++ based ros2 topic hz. I.E. subscribes to topics to determine the frame rate and latency. compared to ro2s topic hs the greenwave node is more performant, publishes ROS2 Diagnostics, and offers services to manage topics and expected frequencies. -Finally, we provide monitoring code as a standalone C++ header, which can be integrated into your own nodes. +2. Provides a terminal based dashboard that displays the topic rates, latency, and status, and allows you to add/remove topics and set expected frequencies. -## Dashboard Interfaces +3. Provides a header only C++ library so you can calculate and publish compatible diagnostics directly from your own nodes for reduced overhead. -The Greenwave Monitor provides two terminal-based dashboard options: +This diagram shows an overview of the architecture ![architecture](docs/images/greenwave_diagram.png) -### r2s_gw Dashboard (Rich TUI) -Ships with a fork of [r2s](https://github.com/mjcarroll/r2s) to provide an intuitive terminal interface that displays real-time statistics for all monitored topics. Click around with your mouse and tab key, and see the bottom bar with keyboard shortcuts. +## Diagnostics Messages -![r2s_gw + Greenwave Monitor Dashboard](docs/images/greenwave_r2s_dashboard.png) +The diagnostics messages published by greenwave monitor are valid ROS2 Diagnostics messages, however the dashboard does rely on specific keys to associate the data with the correct topic, and to display the data in the correct format. -### ncurses Dashboard (Lightweight) -A lightweight ncurses-based interface focused specifically on topic monitoring with keyboard navigation. Features color-coded status indicators, interactive frequency management, and filtering options. +In particular, the messages follow conventions from [Isaac ROS NITROS](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nitros), which means configured NITROS nodes can be monitored by greenwave monitor frontends without any additional subscriber overhead. For example the drivers from [Isaac ROS NOVA](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nova) can be monitored out of the box. Furthermore, you can set ENABLE_GLOBAL_NITROS_DIAGNOSTICS=1 to configure all NITROS nodes to publish diagnostics (more info [here](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nitros/isaac_ros_nitros/index.html)). -## Key Features +## Compatibility -- **High Performance**: Up to 10x more CPU efficient than the built-in `ros2 topic hz` command -- **Multiple Dashboard Options**: Choose between rich TUI (r2s_gw) or lightweight ncurses interface -- **Real-time Monitoring**: Live visualization of topic rates, latency, and status with color-coded indicators -- **Interactive Management**: Add/remove topics and set expected frequencies directly from the interface -- **Universal Compatibility**: Displays diagnostics from any source that publishes a compatible `/diagnostics` topic, including NVIDIA Nova sensors and other hardware drivers +Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, and Rolling ROS2 releases, under Ubuntu 22.04 and Ubuntu 24.04. It does not depend on Isaac ROS *(but does play nicely with it)*. ## Installation -TODO +From source: ```bash cd ros_ws/src -git clone https://gitlab-master.nvidia.com/sgillen/ros2_monitor_node.git +git clone https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor.git cd .. -colcon build --symlink-install --packages-up-to r2s_gw -pip3 install -r requirements.txt --break-system-packages +colcon build --packages-up-to greenwave_monitor source install/setup.sh ``` ## Usage -### Monitor Dashboards - -The easiest way to use Greenwave Monitor is with one of the all-in-one dashboard commands, which provide visibility into all diagnostics, including those from drivers that publish their own diagnostic data. +Greenwave monitor provides two dashboard frontends, a lightweight ncurses interface and a rich terminal interface (a fork of [r2s](https://github.com/mjcarroll/r2s)). Note we rename the fork r2s_gw to avoid conflicts with the original r2s package. -#### r2s_gw Dashboard (Rich TUI) - -```bash -ros2 run greenwave_monitor r2s_gw_dashboard -``` - -Features: -- Mouse and keyboard navigation -- Tabbed interface (Topics, Nodes, Interfaces) -- Rich text rendering and charts -- Comprehensive ROS 2 system overview +We have found that the r2s dashboard gets sluggish when there are many topics, so we recommend using the ncurses dashboard for large deployments. #### ncurses Dashboard (Lightweight) +After installing, you can launch the ncurses dashboard with: + ```bash ros2 run greenwave_monitor ncurses_dashboard ``` -Features: -- Keyboard-only navigation (↑/↓ arrows, Enter, etc.) -- Real-time topic monitoring with color-coded status -- Interactive frequency management (`f` to set, `c` to clear) -- Topic filtering (`h` to hide unmonitored topics) -- Minimal resource usage - -##### ncurses Dashboard Controls - -- **↑/↓ arrows**: Navigate topics -- **Enter/Space**: Toggle monitoring for selected topic -- **f**: Set expected frequency for selected topic -- **c**: Clear expected frequency for selected topic -- **h**: Toggle between showing all topics vs monitored only -- **q**: Quit - -Both commands: -- Start the greenwave monitor node in the background -- Launch the respective frontend in the foreground -- Automatically handle cleanup when you exit - -#### Dashboard Options +You can also launch the dashboard with some demo publishers to see everything in action: ```bash -# Launch with demo publisher nodes -ros2 run greenwave_monitor r2s_gw_dashboard --demo -ros2 run greenwave_monitor ncurses_dashboard --demo - -# Enable logging to a directory -ros2 run greenwave_monitor r2s_gw_dashboard --log-dir /path/to/logs -ros2 run greenwave_monitor ncurses_dashboard --log-dir /path/to/logs +ros2 run greenwave_monitor ncurses_dashboard -- --demo ``` -### Manual Launch (ros2 topic hz mode) +### r2s_gw Dashboard (Rich TUI) -If you want to use the tool as C++ based ros2 topic hz, you can do so with the following: +First you need to build the r2s_gw package and some additional dependencies, r2s_gw is included in the greenwave_monitor package. ```bash -ros2 launch greenwave_monitor hz.launch.py topics:='["/topic1", "/topic2"]' +cd ros_ws/ +colcon build --packages-up-to r2s_gw +pip install -I textual # There is a requirements file in the r2s_gw package, but in case you installed from debian and that's not handy ... +source install/setup.sh +ros2 run greenwave_monitor r2s_gw_dashboard ``` -## Services - -The Greenwave Monitor provides two services. The `ManageTopic` service dynamically adds or removes topics from monitoring. The `SetExpectedFrequency` service dynamically sets or clears expected frequencies for a specified topic, which enables additional diagnostic values and statuses. - -### Manage Topic - -The monitor node exposes a `/greenwave_monitor/manage_topic` service that follows the `greenwave_monitor_interfaces/srv/ManageTopic` service definition. - -**Usage Examples** +Then you can launch the dashboard with the following. Use tab to navigate between different UI elements. -To add a topic to the monitoring list: ```bash -ros2 service call /greenwave_monitor/manage_topic greenwave_monitor_interfaces/srv/ManageTopic "{topic_name: '/topic2', add_topic: true}" -``` - -To remove a topic from the monitoring list: -```bash -ros2 service call /greenwave_monitor/manage_topic greenwave_monitor_interfaces/srv/ManageTopic "{topic_name: '/topic2', add_topic: false}" +ros2 run greenwave_monitor r2s_gw_dashboard ``` -### Set Expected Frequency +Just like before, you can also launch the dashboard with some demo publishers to see everything in action. -The monitor node exposes a `/greenwave_monitor/set_expected_frequency` service that follows the `greenwave_monitor_interfaces/srv/SetExpectedFrequency` service definition. - -**Usage Examples** - -To set the expected frequency for a topic: -```bash -ros2 service call /greenwave_monitor/set_expected_frequency greenwave_monitor_interfaces/srv/SetExpectedFrequency "{topic_name: '/topic2', expected_hz: , tolerance_percent: , add_topic_if_missing: true}" -``` - -To clear the expected frequency for a topic: ```bash -ros2 service call /greenwave_monitor/set_expected_frequency greenwave_monitor_interfaces/srv/SetExpectedFrequency "{topic_name: '/topic2', clear_expected: true}" +ros2 run greenwave_monitor r2s_gw_dashboard --demo ``` -Note: The topic name must include the leading slash (e.g., '/topic2' not 'topic2'). +### Manual Launch (ros2 topic hz mode) -## r2s_gw Dashboard +You can of course also launch the node standalone, or incorporate it into your own launch files. +If you want to use it as a command line tool, you can do so with the following launch file: -The r2s_gw dashboard displays real-time information about ROS 2 interfaces, nodes, and topics within your ROS environment. The dashboard can be navigated using key bindings or using a mouse. The full list of available key bindings for each tab can be found in the dashboard footer. +```bash +ros2 launch greenwave_monitor hz.launch.py topics:='["/topic1", "/topic2"]' +``` \ No newline at end of file diff --git a/docs/images/SERVICES.md b/docs/images/SERVICES.md new file mode 100644 index 0000000..2f6de1e --- /dev/null +++ b/docs/images/SERVICES.md @@ -0,0 +1,37 @@ +# Services + +The Greenwave Monitor provides two services. The `ManageTopic` service dynamically adds or removes topics from monitoring. The `SetExpectedFrequency` service dynamically sets or clears expected frequencies for a specified topic, which enables additional diagnostic values and statuses. + +## Manage Topic + +The monitor node exposes a `/greenwave_monitor/manage_topic` service that follows the `greenwave_monitor_interfaces/srv/ManageTopic` service definition. + +**Usage Examples** + +To add a topic to the monitoring list: +```bash +ros2 service call /greenwave_monitor/manage_topic greenwave_monitor_interfaces/srv/ManageTopic "{topic_name: '/topic2', add_topic: true}" +``` + +To remove a topic from the monitoring list: +```bash +ros2 service call /greenwave_monitor/manage_topic greenwave_monitor_interfaces/srv/ManageTopic "{topic_name: '/topic2', add_topic: false}" +``` + +## Set Expected Frequency + +The monitor node exposes a `/greenwave_monitor/set_expected_frequency` service that follows the `greenwave_monitor_interfaces/srv/SetExpectedFrequency` service definition. + +**Usage Examples** + +To set the expected frequency for a topic: +```bash +ros2 service call /greenwave_monitor/set_expected_frequency greenwave_monitor_interfaces/srv/SetExpectedFrequency "{topic_name: '/topic2', expected_hz: , tolerance_percent: , add_topic_if_missing: true}" +``` + +To clear the expected frequency for a topic: +```bash +ros2 service call /greenwave_monitor/set_expected_frequency greenwave_monitor_interfaces/srv/SetExpectedFrequency "{topic_name: '/topic2', clear_expected: true}" +``` + +Note: The topic name must include the leading slash (e.g., '/topic2' not 'topic2'). diff --git a/docs/images/greenwave_diagram.png b/docs/images/greenwave_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..31acc26a2d777fac8cb4609da0d9732e2fce97b8 GIT binary patch literal 127103 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∨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 LW1&Fk5BYS^NIZxb~sjG+ljMov>~v3*ptOJu|Jz zg8k#$qMc*?$?>i2Vv9O!pAY5iJ*MEYKsX)iivSK7d$EQ-{*urxr#Ru}1Upd%ivd00 z>|l<%9QbS~P>hxk`hsS4vZRD#U}%l^5*7jTk814mUc5KTEDKlYyv^~|VNzd8$`Yfk z_#s^rl1x{rxD5G+k+juJN62+Z^(myL_L5tm#kY5Tu#Cdeyoa+AZ08FL#Y3R#{?_gG zBA&_TJVU1IRd!HJRsX@)mSYlsto=$+D=JvVmHy>wVeu(70^aF*@n^%}35-=g+#!pX zdZwvU;6rK@rm7T{R`yzX*92c-uVV*Q1WDd_;A`Gw>g&}oiT_};{wA%DqP^xq$+CNL z!O;Qf9NjeBvw9ORU$e>mwtXb~cmT2>YCPYPn>0kvi4+CNEWTy8d-fnxDr_PE7J?l% zQ8sBqL?Y~gdF*vpF*W4?)w~VH(|=Ns=V5RvYb%rFosz@*vaSj_>I%Y@;|>hr5|$|O z#*M&=Jx@rY5pwITeEFRw#>BtBSX7WbX&YEAocc@lE}cr_@5JW{+}ur88xP|N5oFz< zuny5eya@+)Mwfe3&DmR#H%ZZMYf3egxHrT#Dx(b3@JAI55NWO3I_{-@vyPrvt6jNK0__%#4zekKA{764-*4%?x?XUR=04|Sm zW>{bRfKt(_@C%_H%i9FcL=9oLuSd*(c7$;8U60ju?08Xt`$%YS<^;ejPmzh&pyKLS zL7SpX2kx)b(97=RQ2#FYAOqRqO$>oFH&`7X%?(YI8tW^=G(XAJW&5#+unAB)z4vub zrdA|X{+iDZ47;{mG3@8_G!2`L%j-j*=-pF7BD~>eVqLjRjfFwEHgZ*Ta=lB7F4o;! z4$c(GYxc8oW-R}8}kb` zWT~=nCAN15_*Sy_szHl+M|#{Q5n)gUu8J?a|KzMo>KMu+xb*OyH+nud`x6sxOT~O% zeyf(AO&@2H7rp*D7Ve>{Yzj`H)^+;j*>sP#Y3pk*$wmB_Lucn%bbdNXIV7ZJQ)DJM z4_SrGaE%tFpjFrE1%rOxLxX41q>y*2hfa3xvvPJ5ktG&ls-BLd(8ohKWpL4t`&}*b zGDJYq%VbG>@?q+xl{FQ`uAAJ^nE<- z^wU%4ud*aRG0`_KBl*-7B`R-wJ=i)yTw9KmA(CHVg3(BIazJKGKJkRqEYml&qh?Ab zS+%2<63Z9^V4#`@bCw2h`_qRezKlg%oI;mO73OHVe_C~u$oo~ zMVSu1E^4<<29|*>wMsFqd~mGkxX>h2ewaLJF|I;|SiaHRc&?N6$!dAyX7!$uR)npY zb^8ub%N)#IqgfuY*xqJOoOHa&PJ@vr6fP-SK%H({*aC?@3l)qwZPMoVeQVpH=}e4G zyIW~XhfOU;f4m}Ip@AGL8nSV@lG(Ly_ly)%1+&h}NNfN(ks3L;Pd%x0f53B^ZJcmL zp1XoY@#Vc*45Y*bucg8n8T2NW=Bs41wqCbBzaO<~R6j+=&u?CAZ|~PTx2?0Lf5|Y( z6VPy1V_6SF8FFtWSsA@y>cJ+WEXzChy}%4?aCG{O{BwfyA6}rxDMubElTdeBUD~0R=aoVPqa5r-@ZEX%|Du&Fp zSLv!k=?hhCy`g$mB>gQa4Yz@FEa>f8nGKf+H?#^oa2DDedQgMl&Vx9zPeJrayGtR| z^3q|xc{_ekHz%<5N~ZL|Iv`jOqRXb#QEk)bYh@_qxZ3f6X^s2Ne7!!m;nt zzxOC^<}z80tdqt!#x-}i$+Q(o*B$L`b&q6-;{}Gy3>60`%}t@1-^%gwdLHaPd9w(V zl^dtdo^N#%oTDWo5e-A7-(&ehU$_PXgAFD^N_8a9Ml zpU9KUvo+PdgUnVH#O^LvmV5IvMu&@Gg6J_uT z9&e_30oC@!=}X_W-Y3vXaUXbyJvA(D(U4)4?>Zs>jF{zwnkVJm9E0{Lf;yUv^OpsB zk*hn+p>n`Q?lrBbEe}vP+jkS4=OK*S2wv&lfaFf$vr);fU1F@aQ4~j2sz1{2oOD}! zFO%2?PJ?Z6Jnd_TZw&}beu-AF>e`Un_k&5ABiYB@^WH|k*JERf6!N3-f;Q$M|B;(0 zMXtkm?LzE8c-xKPRas8Gpl=PcnuL7~I^fe#5(OtPGbeh$71q+pPd2FpNZwv8 zeRHPPH6{^b)3Ybk*x!u%MmlH4~PsyQmBH=EgqV$IAL181Fu z=(;<)4(4D4V+9|6yP^Mt+;!XL?iW*ioRfiei7c1Uc3lSvLL~R$*I;q#20E#_g8SAx z$V-N$1QVMX_zs^dZ_tMnBX?_WDw3q&8@L{AAp34Lbxo4p-AHqsCCb_;4MpI}$k>Vh z6HaO=z-E*khFPx#YA)NW#F?e~lV%PBR6&xe!8q0R-2sgqJ}e!mwV5{dp(|Y`!DDB1 zK*Vg)$NJrPh3wBX{-FHz?$47zrdQE-x!4PkugoQM!K#wSZ13+k)e_XH4Q5U%!?#ymB7~swP5eYob{-srOM3C&F29ag!Ebi(KxRj|QemhnaCLN=`Ma$|3bB zJFdE8dX2$SagVYc^-z~JO~F`rOBW&<`5e-*YBbZ_(m|MoOFpEp&g>JhvUuxOX6KOM zXf_YV_Tph#VO!&VnOttb2h5E8IOZD)hmm$(?3?+}M3}^&!uZ>yO1e)vIHH)pN$2Nu zf0BjXZ7gvALT|wfCxYZYGt!Zq@peUQw!g0b$TQkZ34wTX@suWrym&7@@vi673!{H@ zM#Ar06KPUemYky$^uP6nj>hNEtD%D#N3+50j()huN_S*X)Mhi=gaX3Ob^uy zv#G}LnJ5iqxe$|hfI6ul{XOC*8EH<}qm{?IQyn3KVSw2m- z)&cO4%{m|m1>O8WJbuj*U3^gM0M7dxk8P$A+_objqC%F8+H2U&a-Y#EXzT7;^ATSe z`#XhRr2R6f9;+!4_!NP(oma6?uNn$Hy!0@F)_!}aD^RA{D%LRz zWm!LznM#|F!X(bWA1H~&EK3}&%1pfdt>vyY@Kw^U%iCm3zU(UaIsUPWc4{^n=BW6G zC4E|P;&fZ(z5@81#bKPoM=B;4XSbNoSxja3R0+)@RZz(>tg}#d92DvMip8USs)=zy zP|VH+m}8n8SAkCHOqwM}=X|iLS4Eo%MiVm(Kyfss7}l@(Wu+HNEe zL{CaGR6U)A^1Peni-ij28dH87Mn}J5(ZHs&2}qAKk8iS%ydZT-`6$!PoVn|CAR9Bd zYrR?@H;|ho+Tdn~HfSkL!If7f-33ktkzqfeMw*v$(Q=jH?NtbTKNu*{dHaAae_$l! zNh?tDteT-U4Oc+X^9FV+oS6wu3Vj=Sq1Y06dexqX&$XNaBw~n|THocAvKcASmQ~$( z6%ZoSx10K?W<6No{Ao5k4aTYodgDNBA=H^Ubo6Xw1=qdmgLQ@d#r%$XZ9A*8=Psx^ zlxz)#H<0ffaGVm}K>%HkGn9Eytdl_!4N#m%h z+u5UzEvLXsu$orjd6;J|Z z4nRdfQ5oX%HYj+Z-!fjX*)Hrw(vATR3kdMd-k_8lj_@DNg<+? z;sp({@;_^f6(Zyydb!&ohjS`6jaK1L;DF(1m)ees5n7QS`JtHlCa%SixA~)iF@~%a zwu3drb?dGvAU`PvWZFC5Y3aiglW%d-*i+vr7nqkLtp` zp~`|b^EP;04j}R0Fo0Z->i2{-5Fc>4i*P!aJ{{+UwiaT$d;gt}QrFNU%I)PWRSW>jh;-B-O#7Yn|^N^ zsdR%)$SXEgoO$6@5mG*f=%igPm1;fp&I$=yctN9dM*Y=!I#u6Q$(&X9 zZaTtqZGT>FNC&=?_B##MV^c$l%$*qR@U=_FwRgq1Sd}X9$;!@2K2{2EC?~6Ve&HIu zOC}=l0(*aWN?Ao5hZN~emt+$m)Ym#;QG7?|*@z2|d)Achn?(P{xg#z_H6WM5+7-w_ zy%zYlYeCyd1?w)pHctJ|D!hjH2!0Rrrh;fQIX{I5fjCsA({a#V3~z{!>vN93jZ~m;>4#6dZrm*yp0qlgI9@=Z|}IK_luW*{e)$ ztu8dKmgy7i_ZI|yi5NYmCt9-$p>q}wNL`g2h`q>rMe!@d1rYimMH$R6BwwC3Q6Fz* zN`xOKu~zClgQKonev~8pH)G7tHQM_#+(Ofa&s}j36hQB601B4?xM6K8Q0dH}%wh&g z2aGS~$zG$orA;c66z)zCmwb<_c*(!fqsVsm-bC|bJ)_5I4lU=Yt+|O! z8i-B)ezO7c<_{}5xBkrEGg?eGZKNoxY#h*UuJ_oVM8?e!OXjju6eR539Gh0n5?>dPB>emZ{L!x_B$pZZkx=G1?cF(st!of=y$7oFmQoN9)0&crmHn;IUQUJ3 zR&%6wvU~h!)%AYd8T!u-TxZb99a@KrTg4veZ#mDeU-XH(z9ro>KY_0-KEY)IM zaK3E1!+B5rkAdsOPP``-?U+WUJ$^kimKSpq*bI4A_iPt8G?(IhK3)@=)euoe-)=D5vu)A{%`-wNDZ>_M`mC4B zkIh!ltJh10Re-Fz2iuoQ{Qi54EgxZ_v9G)kO|L!k(Z2Z;0fy;KGL9k@?tj%oZ$^Ph zTEQvpR+wC|4&fKSLUeN4?R;I(tPq|`@GASpEzz(v6}i1dH-qr#x4P4ByUq(PhAABC z{EktD6jaJ!uahJy|Js~?m?-^9NbI~!`9<(`KrR`tk3%d!Ak7?I<4{`ucM9B2TO5r^C#>%W8;l=AH>O9(sb|9ts>JV#_{g=~dS z`#D1JMei3#q1hzO$rHz0`aeAzg~V;wxAB~g-{4&VmUN0qO5oqO@b8!MA`ddxWU(H9 zl{FFmstJ#v`-f&ir(F@7({VB4)bUsUs_spWK&nIkb8G(;{7`cJWu_2h4;%=xe|!)m zE`0u$xDZWA0<&b5J(j`wcSrv1OKl{ep~H?$1jo)%IE;*=>4zT6e`w_i??P}d)VHbA zJdfX?8VGNfcPu;ePu)A=ZHTZVV?S$LIUbpRVKx64_5ZsN>JhKtii-WQP4k|Czq<9u zqW&M=sEF_LXv}ZJfgjb^D+9fjQGFJ>AxFMNNCgkcS4&Iacm|pYW(?`f8Rf7n>FGPn46CL zS?teFue_8@j zEc8gIKMMQ!tM$kh5z??f_ACG6!=jErgBUL|=#TU2!0Xxk7(V{PL?Ej~ z72b$fFK2$-s!mh*EB;*K#6J!wZJ0lFN+=36?T|4wLs%ZKh5z?y`!6R&AReB3vFu5S z5Cl@Dku|!xC!;JiPZ=_YjW z6WuuWKg~QGO|PJ#V=Jeu|Ga+-S*0R^%l{9nv=*8C3%b{jcat|WayDT%k|K1de`u>N zj7Dzsg}LMTPEkbcRqoB4KPA5Z@!3B@N{EMh0$Ue}Ked*H=gtpDR+96^=~B5Yo`nC0)vYJbgQxk*Tm>QTx*;Fu*+ja`*hN zefj?{1B^r;S#jpqL1wzeI$8J#i7}9<$b`}$5p+lLvYH?y639(~V7J^FE!8J?db){2 zC275wn=re=35k~kaw~+ET58$g!%}YKU*0wf9DnB?7uMcwH#6hpY-$a?JIP1H8By8X zIk^A4u1v5BxMY#2|BhIY;qEMYPQQq z?3#ZSF~9%;L1{r+M3GP$r6mOE6pkWfSZjVAT53727TV= z`M-MJb3U98=el0`AnbkLD`w5inl)?YH)jZA+wP?B%?8=uZI2VStWx6z2TOAqQS6I# zMcrG4hPab;-=pNV`@XD`hoQ^qnZ%isXGb+o7yV((HX>?|M39uScnUyOp>U$BoZHrIVl{#kYl2K zMNvEEHoa&Mlbp80bYdCCScg&;epy`n5|Se8FracjdhfT(Bq-;$gC8T8h66E6T!p<& zOM;XNOZhNrlDtMgg z{RgxEmT>L2fNaYI_MZFO-VH>*VAF>GXYr0xg&sZ8lIHu{o+kVi(HzWBBoQI1UK(yl_-PBlP%PQoQ2+aroJa&U1DU?T-ruimSD*<+4f_-9?)P7PBb#SY!W zRuhUtf)_asTbmL;p-$r5^ijVVhlEBLCym5s@Adc_B?E3qc!JBaY5xF01Aj3E8bqSe z#}$aRY&y71DO%tRC?Kx$9or{T%g=YR~9Z*GxDLz{kd;}rs6eG-)C%xR%^x~7?0s8nc%YSupDj~x36fiP%kDB0g?rI6`( z@FYA?682XpqI@lYZ-fU!8c3ir-VciV4I{SOBMa2_3L;5?rQbJNpXKuvjW2;kW2|f2SLgXF0x+d+fTsv5yIi@e|Y}@ z%9a|aNZ}a3g^X_sVSb+C`HUiRVJRh%3!tWc<#-|Pir>n*%>`gvivC#+Ao*jVLBzu0 z(o%E2iJwT+7EBK2iynUBccS0Fi+uWzWkOjYC)QS1CebXIc|2JvHueA#M^ZEcjQpn& zaJ+;kj-crF1JR6dVLUQ#ha%j8bz58$dhi)};S>G&^V9oRpugeIV0UOCZy9@KPcQ%R z`uW<2KT0nvVwE)8Qk>ZnM-+^Ri1Mj4P?NpmAuz}kl044;xIXJQo$rxGNE|s`$Pdft z?VT$aM}A>|a;_e_vrDWIzX z^OeN}!he6ixXYJdJeAF{o%<%NA)?Q`bu>nOsFSkF!|H_NdJ+4GbD0PbMt|Qz!C7d5 zwMSQR-_|047A`z|_!*ddyz4F%7CxgVj3Hhk5bsao(LM*S6gc5^2_QYpBFB8EH48s= zAc^>o5(r9f0Pd$dbRuPMh`(iT#8ZGRbZ!5lBNRD6B$Z{9hKTNaQc$vpui}nlgzX=F z75vD)kb+$b;|1<=M9zOBi8_mUV3<@qO{K(EM-&b5?6veiDjJSxcp{lLMQD#qjQ;Q! zmTr-TGH919abrB}Cd695zJXHzJr&_oG~)K#auGSXH&1HhbpC*g!tJoIRJ|b9fyY8O zk&WP(GW*`v`McE^Ksx36rWk<;Vcb(>;o@4e3)7A%n9zxVv*%|xbikia!;h~($UN@8 zq66}D{yqxapMEnQiyk&soY)ak3vp|I2oQr z-w4?o1T{BsXQ})n?HhaGxCLjiT97fE3ugM8TmGLsWporY!oX`1W5maaYDGB1db7%; z8M5z0MX-Rfr{MeP$8~@7K?;c@4xoTx*@QhcaS}#g))n%B8(UavLAnwASC@|n@Coi;naWU7LUFSQCzM}G68@v2LKfc`Uo~&v%t}V| zJ<-Q3H3_xDOry?AGFVd_UDA5XcwjN8Blnp-Qw%0JzhfzchKYnFaQ*TTBCNt)b3f;U z_u+_??OxCANQy;-XL%tm3)KA!)iA$8W>z4N^#z9^>h38(nyM|0KLsHw^h;1=m?2NY z=(YPtDVD6@YxM`QJ?Yz9+bBUX#1b$5^D<{|+4ff?LQ?1nQHwQzqy|jBr1dp20)T5$ z&#;gCy6P=ZiR0`;7DF8|;U?(ZI2(!)V)sCajqtsj((Kfy^DgsF!+8VuyjVX%vd-`< z9|QI63n*LHRoM5|6a7j4T7p#R&k+2>iNM~;6g1Fyy#hpo(#4Z+yAcE|a;t{(tKZ-v z{6U>B1zE}~K8HLAig`3X0a(3VC#VGY1PoH5u&0WxR*x6{vSZ>_j{R7Q@*zrwb*MCa zO1kIntg(Y3JJ&y{gwRZEre6S#1cjP_+tLCc1u@rDz6fi}*FfI2zAw)-BjIzx4I~i| zs?{mq58)BWk=2b}>o@&y^c`S10m_g;?aR|yeJ7^>rJL2CJQmC@hjQCUrjp{FO1GV* z*!m}1W<~vVfGJG3uw#=QN^ zmn;M!F=IuQa7KemxQV^_q8?F9eeoXnE`SH@q}^Cs^2Fj1y&%sx#B+6KZ|po*R;SH& zsIyMoE7o=w9{Wog<51XJqgrn3%{tx{(Vy-i&>HJwcy4D$ky?xNd_r?jEo~Bt9KGr7 zRX1g|9)8sO!MOh`1r~&7Wg!@dW@8XKcSTNc+ol+XKJ5Q+Ka(Gkj88JuEw?;l)lR=7 z!e$bXU)>jlZbaM*DNXOWG+&Siz!!Z&H0lbyM<9sGf=WNC-py`}?r!VQj3T*92zs)I zbu>+&1V>reDIWJnBZfI)Wv|6QY_N&J?thGq``1DoKuKfi)%$Wnv};Ud_U#m;s4N8e z7_)b!Xq7-j;$9?*j?_{S0K26SVNb@oxh_Fzw*In)$kYnYdwxiH^HU4#STF0T#y)ofNTS}a+8ai$$Bb#T5_3Kr&?2W zlSAEllqwD?w6q8$_WWu*II;#QMw<_Tl@Sn)|4w?`jI=LpSHWv34m8n*ix7|jW7q!zcUB1a1$b* zldtrApQQvs06N1e6=H4AdR%Z;>6v?uz~ew=+D^*VuU+*$Dn}8l ze+Njg)XMu&meB@Lp5~zHNSC0PX*e{}|Da^-xdEsy$wa%ONGU{lvXIqq!l8 zdIqe6805H+5?1G+Zimb2Cx(aymFg2`FH>9U*x#P*Ki;)juYNiWBkVBMfBOejw`AKa zC};x!mzid;*bw-e6$Pdkk9Q4dZi*KeHMr_-+1+&8Wecf+G&J4i$RCXiu^a?f8_Me- zxc;u&@tGs62ijGoiU3P7{A%m9_j5CXJ}9UFMeCG#yk?9<_<1pBO_zX%vmc8Uw zxakiESiT`&7RXNFyb8gs&x?~N?H)bqzYIs|<2|;9`*j{+|M*6_%u`r`kXl|Af3$bUtK#gZfSXr}hah~~l3&y1)b%g^ z*OnNS9g1fFUqY)F(2hsXxUYP*Z9%`DCDwS*u>xU(wGQsQuIj}(PEn%cPdwMloeH+Q zb6nBpGoH2dX=^SZvs!=$V5oAzTvAi;^W#I~PTSE?1Ta-Yy;|DMt(mp>o98p$o!PX_ z4s7#Yg!E@{SO^|{U$WYiBHVsB=UK~==5WR#PrJvJA|7Wgdvs^DSZOe6RrFqPc7tfC zn^Un1|8ZaUK~HOrgCm?!pU=Eklhh1$g1$>DcA@LW!&STAl7>k2ic6BsSDd9upsS*pk9&sXQrl)&F0o5k|s;+jSaH7<^(>19p(R#nYlRFS4PoCWq{V zt3_FstKBqr7H`jL;H^uNUl1VX552UyH^w7)+ph^vxSQx5@8%|GDH&uh-f)Qt30t&> zxVLf;hl&#IjO;QKnj8c~r7D?AbUYxtdJD~Vre2YEu0)T34xnAyg^wor8c&;f zWzg;)r;(*^_rzX~Y~Pkm*UuPj?tW1HUT#X=a<=7Lb^j!wk6D?d5gMmdkvu&_Zhr*% z@pL#sBP_LL_ieR&K5Nx5hc1U!A}xQgiAG{!W=!Bm2kx5^CF3W-5c-wLlJi(N$PNk4 zj*6|GXj&?+Vx(TQ3D~TUeTLhbhs^}RygDYXuc<`|oe}(Q6ZPusu_}7WgfpmY(&3_A zK#4DlKfAz*$&l!MsIXHd|Y`-8K`{<%U83TvU{30$U#O_OU;;pp?j@Cxz zwrH?sh9_t;Ry4jGWM8uvTi=Ch1fEMhvT_4~4KEMrplqK{y@}Ls{NqQJ#+lf}i$CPh)iJYE< z=s|C}c`#&g?D`knqj=Xw-Kss5kK5jId56RB>M5Q;$>2I4gDr?Hp^Vt1q`FFkqguvg zce239Z%Fx~jErv*5B1`^Uk%SG#WEKt$VsqJ??JZDP3z5 z*nB`Ja~mV8BXVQZMgPnB4-l>u|MEfOzs_1Vdxa|`f6u;GZL`yYmiVskC{24*AF#SDcsi(=-Xkst5AR`f4*w7u0DYA?Q;pG zS0sj{Zbsf|{#S9m(#x2z{ddW>A^v}ci&CC3Dt7A&1O1}wcwXM1gsQIFL`GII^aP?? z0@ebOk%&Ik0>-I1lIL1qzvFu&kvUW5!uL1T+uM#=<#S~QP~OMYii}hOgFwdos8BU8 z=n&(QPMK4A6%UCy0#(`3$PwTheCc70#Ho2`3)NzXtR6uv2_#4{FO!I?9xp8M8EzY) zgFx<>SFNDB=3Ow4hpypiX#hyd>;jnL=J8>)Ts9AqTnT54-o9`-r70G0yP@a9a87RK zuD1vcb;9lBs~;~vtxRGtv((=|(d`}8vZREnPjasH6L!tNqxHQ;6Cj%L;+uR)t4Z<| zF-n%bxHSQX=@5p!0Jiu=X69IfUP&}sw>y2dxr^(Smyna-QGPR>5lq9Ai;Zs4_<2W# zrK0gP&S5h-s!_`JFr8Y3GXzm_`Y|X+aL3vF!;jUh2u7iW?rlls-I0faxK#Hqko)W7 zD7Wn9ppGIQb5`vtDS;QScWvmR}PTTDE;LF6omek;-`EGISc$q z!5z#AD`cjA`;0ZPaZ9qjOR3kbsA^+U*(z5dp<=K8~V_KDIdMmjY=KEI0>1N$) z$1j!KExhlpCGM|qR*L=CN$UU>4psn(XgoCjZ>yU1973>fd=Q+3xD?)G55NJW+y9$c>l4k@CBIgx`Uk{6E z-}f$oe01sK)XHl5XY7pJEHbjIC?GFI42#qdkb(=Z?`|#amA7Fk4|%LLam0`r13RI& zn#ApiV$pj)7&T?%L&csHsc9HK#tb3ey8Pp7c7VM;EJvN}wUxfurQQVC0)b9|lnh!J2XT3E!sjQ4%ynaR9T zh~$*v2E~cqJ0c@1^${ul`eAK@*Z9dHw|hNFEBuK@hvSvk5bJs6#S>SKIWUq|m1V|D zmGla66*!n?lo!qN8tHAHbavN|rn{(jBvUC6WE;hE-FkVRjjbvy^kHWoIzv*)E&dKU ztzG{lg7SWgz=D>fPi)2XS$DHK%hBPcnm5`JcljY*XTOMmrm?8e7b{++hY3oa5mPbX zr5JwzD90S(nT<|a_&)bu8mvarTX4RemD5&nTGgaO4koW4a(@(nL`|BZZjF&atcz`V z{GB$v2rbCS9#(EjPGXsk5@gf>)0lbZJ4vxgav1$i)2D)E^^SAd7bR|m86JMRDDN6_ zQ7+oXO@6ld4#O3N%5*jPM^8#~+vq+zw626tlqZ#79?uh3X$+0##_wnsE{@)=e`hAR z_5J3|*n1Cl4&n0_OzaMA?REjR=+@;yF4K4VeQ$Je{4OkB9N(4Ug%YeXMEC0S_1y$F zW4N8Kl-4mI#gn4AhC2E_IM_hQvYz)d%2tj^e>*%w0zV`2tMEqoodx9)Mz;koo!a`v zZ|CV{v1yO&SUAuj`ghizx~g$-p*}u>C=^3vh$LFAJRA4rob2jjndPqNG~z=$1ugeC z6HW>rrTCJ^E`P26(`dbp+jij|GT|j$+TibjXMHi9BAAd38NKTcryhmUi&^%53DEzP zDnHkb`{2uZa%xfSIdR^tlW2?7m=}B#8Ol2XnCr+7$w57g*((cO-wds)wu}}fS(oXh z?VRhwe!IL+*Xs}M7H~^DPRcLs3al|p zdt2Aq+;yhrBG_Y-58pf)8sF4$Ur}W_Zoo}m)hD_4>q0%1U$foH%OOU)3~`RP{jAZQ z;z7@~I%*AQD#z8tGinvO#4}b2j30e&S}6{AnV`Y*;ow?V$+l5^wuXB2OXbF-WVx~cQPaK>^D#T`FyL*0IwwxEB@ni>LotdvK|FI zFX=njyTs3<2)@4GvLP363a~0|RR+H!U)o>w>11~`n{ z2@Uksx6SwI`NZVBB48M&T3k@dS!b)9-NeyWMP9Jq{~(sM}Tk=SQfwE+cnnw68Wl}og+pv zKhxE#mItS&tXd%wiceUoG2hu{WJzar9oC9uHd_~%pI#K)Rm=P#z&5|;pd7o7acBjh z_3Vo$+=MF|PPav$jwT*j9T#F^UQmyxabxZ7w zwKi+DfwrHvr=4hgu;*?ty-BVxBL9-eBZ3yXe7q)W^+>GnrSLJqWcH#S`qb!*xS}rxE>rg znh6qz04YjW!HK*yOLqGy>zJ5Pwx%1ICzg#|7L5lWRT-f*RegS3Q@`@6d~S|j=7NC- zG0mCiTRmqSx+GdO2r~mne6tzroWkgtqeU&>mm{9m+Uf?S{PLkUW~`aC^PFjB3T|R7 zcvolaJ0%&CMi@?eS*Ss??g_CMb7MKbgLcm+__}4-I{Ttc`&!yur*WS4jpX+D?!2_w zrieGE=GmsNd7(0@t6T2S6JC(^pSs?-L_XEuq~{PLPmiUWjgf4VqFk!(&0BS7^q&uZ za-FSf$dIwkFlV^B&E*K>0T_(i#rV2-@rl>S`$2a$!A~Nn`gUaDfgpzWAE^mvLH>jv=mrUr^ZZSixz)S;cba$nUTj}*4e0fRtmXl!ff$@HDApEpFb2gga44EuVm-!{NA!CxDbBJ% z1Eu?04|)bjP`25EY_C@U63NvOnCZ{oaUli4IVCiH^c@QLk(I`slF^l;Ie%l^CZZV) z$AMvyO&m0?W6k4(J51$lDs`R?l;u7lNFXlZ} z3^kG7TpxQz_^xXbah-W4Tsl6?ZFh@2`X#-%S;coGQQ3T{N!fez!A$meN$mvt#n!wVtBTWpm!DTO-@4R>C!Br8@0S;;l_? z)I0DDhwvj(BI}e)(x~U94zSQoZDA*LO0|4NWyecU{tC2YFI{1E#>yrS$I17x_TxAS z_~KQ z^?@DnM+hCx6ohR%a|n3y<=Y%T`~@&n-F=2(-G+2&Y6I%*NHIy_1CwY;uh5<;I2n?%lOe zmtA_}^2@K3Hf0oA* z*5&yVGuJMt^R@ITrpRxS4tkC~Iey7VlWjg^0=WUwOg471eF;Q0fi2QgX4HYKm26OQpfy#&;UMOgAgji-2GqKp`H9;2}n;hv# zK+5RsCHRS?eB06D!%R(){hC<}3?2IzKK120sHv69(MRhZ-Hu|zyaz{Xe=JpV_rVZn z+lghSl&DUf6uzTAF^pZS_lA}|!>3MPm=B@Tas6a7k|Dla6AgP*7-HnWDSc8sD{)*pzW2s+H@(tYXeG%-B3^D-T^IE@;az&YQrHgTly$h z(ObMOY=vn`6Vf%qDC>0P;p5U1W$Qk($wEyfdTdR;y_9sj&RZ22em1i*?p93F*G0dB zk8+rO^buTra>fiZDr|*;9-8SrX2CvYqZT(;n&2jT7E_IW2+p-NjGWah{){+O@qF6D zpMHYq9Cv+J#o1jz#5ntks`u>rmNU;2ywi$lPC9Dk0GxU>lovLs4YbG=TqP0QC`W zDG-X|!!)%`(1%}o%4i&htx&XzmljkItzQrT3-I~uS(g*X5)<7zd|qHL-fp0Ax?(gf zJbos}{=@CFSFr}jx9DQxk&lQPvGnH&uP^$C2BVF%$ zY1}VaXZh52*eY#e9ZFKEgnI+938j*U4hAZflO|Z;X7(q zs=%>VpG{E7Di%lkL}=Z?T3c+HF#-?Z+2$>1--*b)2hy7vtjE0-TTM!vtNJY7H zf`*X>j*9qnv&BM9Q-W5q6A#pUeGdZH-!=6;hzee2D_iidQ9i7IxMFr%3YNWI15N=# z^JXFmwRt6$gc}4C+NTL+W7j_#K9_#KdM9>6@gDiv`QdUq*0MC;nwujo)+T=P6N}H6 zgGy-x1o^Jotx`*`PCbXkb?TUTH@K=MMuC=-rjbQAv|s07zRML zf&y<;&nfQC=5{#(-Wem+x9Z&yWl@Mr1^!)XQG=9z1y%Z z)1DWfK_t-_>)hP?1#ZJ}V3k8?0rYci!T;z9AlV!^m}`2isC2W121kn0st9 z*|71T%y7{BNM*TYwI9!PYOd1RGo(z1xY0giieZ*VbT$WiNoR<(yfHVKS*XHL!EDZB z$9?og!-f-{mo#{oe_D!_WOEh^xjwsw#RN6j|5ET5{ns9xu8a%LvGm|<5^72vxvKD0 z-y#rgN{1YhPei#*zI|!meam%@XHK2A_3P5zTWUEut}7Xb^k;`kuPRv@k&gu~K8l1I zoD(%x7LHw!8)(r6x1l$tz1cf?xq?vFQ_XGR)}_+>cSlNGyhEBs@ZwXj;eaS#p06MMywmiC1*C_ObP=rQZqA0bZr#jZOL-k_6?9w4&{@HVf4&~A6Uu*ll_Z^krh1a049P+-1RHvb27)MFmJ+tpnr|>kZ-p>|aQAg5|c7T(svy_+?Ph1?Dz| znx~K$jw9x$lJ)h-wT$WsgRUUOW+|-v^qUyYEGp$YdTzM0X#nrD)Z&7o1fB2fPmex*g?QsdeB zl`aGp5cOe#yy`?kZQjCkn{z`>Z&SPEx=BQ`whT?h$S2xK#7kk3Y!?&Ldp)^&CCg$Z z%;U2IHd{pY;RzlFs;0*~q9j_uZIltNgM%YIYdlc4?&zdA-g$?%OY%s)N!`2QKk)f4 ziIsoZ^j|X}X#UcBN8Z4JAHTU4pMOk*UqMaZf;o0`2(z(tFFeog6{DVJxx0R;oc=k> z;o$OG+mVf)VzG`&UFFTdrmOV7)=GvtI>U$5g5zZ%Ikp1Vj(EGg*|<~k{z6&)wNTW% zH+N`uK*&87#Z+yM^36?}C_<3a{h=)~&fwwODLU6=+=Atn7A?==zMS>Om8=aihZG4X zw(kMeDb5L~;6CM%VH@q7SFWIi%Wa|Z?bxudo$!59db=7B(>%-4S%&IIb^LflA>U|a<)W)1O=HW*SrpxlFz+wAN z0pH_^&qOtiL~b+2n6+Q^4c$wmYT24 zx4oEBV{2h))0Ml94&JFK_&B4zR#pfX@Cm(#q(*K@M#R>2G&eE`EO?-LPlX%|Q{|eb zsO0fYx40N|lrDbG!Jc8Ve&ub+`C=c_aVsO9U0>4zh$6C^g|cqiUXPkKMB8Z4w~t81 zn=`~ZTjg*!O`WGto>;lD;IiQ{GvPE>Y8aO~#ZTYjXQ|oiZn*3j_}p@qxS6AJoO56e z-1Qn>wv0Jv61KKBY+|al6l7 z`_!8$p(a3>6L?6=>gwS=gLPf0^NgOb<^{ugz1=oV5#G3-|9`_dcE|tze*@{FPJOSX;n+ z(Z{@VNk2K-H|}HnQB<&~*C6HoS>uf~)`DYRB*=D`vk3&zVI2&<6p`lYV3kA1;N89OQq2j8dm@AMHYNnYjd(cYJt?`QEP zBzNP<@Nh2j_!G#rh3r0^oWDSo{@Ja{=q5E?x`F_w@?5jLI7RoUdkeNgyno3R^-#gD zn34boa8#_!1kxjTUTNl;p@UvlaOpRvIHXzMr7A8u9wKr&m1&0WE5@Grjqxkk*dQ9m zn7J%B8;oYv>+?^XI$b=`@2>1Td@}_c-7#Jy{*$AFgeb|4aAo`kdM)`UMcZh5HLY9J zE8^Ls<;3t%>$g|=R98#RHiIo2LVJ_gvhq6$&pB>1Uu>QEb@D@*3U$VJ9Qp??Oq21K zifXo^zAoE7({qqZBTu!<4005XN*sqqv^o!mzelzM?T$>o<%w&s+0P0dQ9kdVC%2WLMdkgR z>996jn5(QfWjmR6=X^`^g-95tTd$lKcrM@OUrCdrPl@34Gg5B%%aLpHsYFl`H>agM?lBS!Z zv4AJ0G@P~AzV_9N$6uja?&_+5HpC`YT6I=%K=?+r)`uNwc4x$znATQF->4hA;I$T- zrgL7gJ0~?QX0;%NGkYn4YCF}jJ42gODLgICcsi!1f6AV8rod-INw6D`WmUR$$i@OB^9{{BSX>*MU^wYu!e)dB7GrJZ5+;^^C#_vH?v zr?C(d0Nl!M)oV*&LsvO|y``gG`Qrmyc9Gd2SAL}fRBKBI?D^dE_Y_LQL1Obf^QCPr z<||DqRe1womTwMvSocNq+9@OPFe}d(_+EROmZb2ZnYP!_A{22s(+8YaJ{k(-4_H)h zZ{&|I#jGvoOw?%|T~&G2Au`-0rBr>YXk)?8O|v_vA#+-#T^T@DmomzZzG7ZolazDp z6w$zav9a>Hd#!4%avEHend4;$B5f-8bqrTlIkQ<~;PN|1L)pH5Lw5^`cDTGZBOUbH z_K22a!P9#iu}=A93IRIq%0px3D|;hf3Hqs^=b>7xH{9$j_LmUV5s% zUR`EpxbouYT=-xS(Y_KjV7+}*A$@yQFiz#$xs)hXik<2gt&W5mI@(eJq;d>z8YmS2 zMCsjYhO%kFDLKV4`)z5L;FDV-y{!q)<#Q@L80MQ^U*s0>bNnFbvSh}(s`rV|+yNXy z_toz7ulO|N;pz#B&l5XX5X$H$&(lOl+oAZ=Kl3}SW`5`jTENy*w;TEq4U4JnqUWS& zX}#`BI#YoKc1LwD5`E*b%Azf|+!edSq2ppymi8jpUOm6+TqW_PgrRp_BgX~JjnwTv z<%TtRq^OHixH&j1aG3CQmnz+K{n&#F&PsniOYrMZQ*fI)+tPM+pnJ0vi96`IoUOGu z6S~NGLr;Y(=%-Ie=y44__PDFl*2R16H=90>x-B{lC-);l>5E#WI^-yk=BIEozlO$1 z!Z=&luG%N1Y5eQ^vdu5k0e;T+SNiG&iq;eduf{BRmwr=R4pbN|$eNyem4RFquie*N z#v+uP`XI-rwU#Q*Z<21d3tRylv8f0FymIqtAI|p9`_J>6k!;FWW2HEb9oM{DR1Yb<9%K$Q_RvC1XWACP9eMamwi7ZqFzq zTS-49tmL#dH|y|$Fm*xEP^vAb*vA-Cf5&4X*!bI>0-aCj(|-0M^NpXTDw9qzqfEdV#J=@1B&eww<~N$%R%Gn0B>ipuql zLwBR>1Q$Hy9%zn){oG1`18+c6G{rPY8w5au;K2+8?hg!j6 zVmWjL?TeczjbmW>QzzEo;vhBBx}ms2`{=~6jj$X$pEq_DRR}EJJlk5XpG&4=Z}~{~ z?t>@)TCcog#}Y5zx;20YjbtW27HTpn+7xkO^=CgF1PR z4=d1HymyvF1#7+dGxFABO%f6?77J%Tw!neKrfN z2|Nz8a5yx`5B>dPB*=;w(8H@&r4A!>s38WQyS~9 zssF{r@QVfmwSV5D)uKI}97%#N(O)sv848~j$e7k2dyobL4qY6)_PbXpkalnDr73w*|6RZVq8Kp2kZ#H7|5}>A5BkkVEG(wxp|VvU7(g={bhc$yF~(0M(SJGm z3=aNTT6pzH{l(wS^w@oP_1tqw{ zWle}L5l)u%eClkSl2tJM@BWY)b z5h!ztmowA)cV@5NCc|o`0YY44H5UB)a{fI2;=d{eW~p!wfld!%Eg|isnAbNGOMJCI zlrDe@g6Ol$-t}-n+ zz}FDKgBRuXS{+re6%1I@`LM8W2vL8q{57{<@9cGrY6MoIx6UI%7{B0-5Oq@YY^SF> zPGUj)ImIV6ok&w!K?CQ1w=|O%fCU&-KOpu&%?)UW_}x&853ErB@TUl&!NYKOF>+)2 z=W*lj6MZbC0Z$Kf5=;vt^d&nDqWW^cGn3XokLIKqH_k;>So61^xqkbqA+*agXu~Xv zyju8J$n*W(M3}q;=~a-0XYd>S_sri4jTFo!Q_*@*4d!w&8XoNA{QAvSf?D4;REkFE zb2SiuxA5}sG~@vk6p&<^u=%(rG)2IK1(ohaZ(OmMG+tVCVTU5a^&sob{+)ujdl%ShTkwsTr+f|WzPR-?@JU>eT@WacCc8b+-{!o`sfLu z=mX`?2-tK}Obd;AEHc;sAy%lQGr-UT$%T6GjVcZhCB(>pR}whg7I$kYb~lp}ax#kZ ztxSHu0IVPm{o_a8I3Nx81;gqk|H%C1!T1M9|Lpp%0E~FaQfW`4UlfC>U1=@4@f&6O zYpiz>4UtxIaj#KU&{4)}Pg76*`$Ycw1O>8fNsjQfP#CO8*^uM(9#8(yneV^wrU1rs zYp}o;VFZ@*zy|~^4;X&8L_cR!1{+~#A@Lm@WX289fz`=ho`%1M@b_QTL7#O7KEHi( zk3#-Hq33;>BLBMyS0NNyQQ|>b`KSUEs;ZLu-QxdhHPkAR0vR1&BLH52w@R*=q$-homcEv_y5k8?fUS{rQ(<}#Et|_p!erT zVUdm>UKDDI5!|VA=TxLah(vu^`)>6%-W2P@Iwl6?7rXPXCrIW#54rSAzka%+tiSij zzjq3spw19C9AaYmc(->?if};QLgP-)V*PzN{>lC|R)~!)&O2}%X*HD@MI?Uk&rcsf zg&uQWikQ(*Ane{JRV1PP^sa-{$~(+<+a#{>*noC_*E=!!{b~GmjK5m{KjF<^4H&(K z^*T-_8uHJ>ph7hhh90p*kZ7)qe^7U*b{= z{XgU4{}T7V#NAgz|G(+q|8nksIrqPu`!D0-zt#d`925WFs0GySQBq%>>w;U`%?IG0 Nq^PV&_Kmww{uhm`L#+S+ literal 0 HcmV?d00001 From aeedde6c28af630a4cd53cb33ac0df7f42f60bde Mon Sep 17 00:00:00 2001 From: Sean Gillen Date: Thu, 2 Oct 2025 16:29:37 -0400 Subject: [PATCH 2/4] formatting --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 060eb58..7244863 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,15 @@ Greenwave monitor is a tool for runtime monitoring of ROS 2 topics. ![Greenwave Monitor](docs/images/greenwave_r2s_dashboard.png) -1. Provides a node that behaves like C++ based ros2 topic hz. I.E. subscribes to topics to determine the frame rate and latency. compared to ro2s topic hs the greenwave node is more performant, publishes ROS2 Diagnostics, and offers services to manage topics and expected frequencies. +It provides the following features: -2. Provides a terminal based dashboard that displays the topic rates, latency, and status, and allows you to add/remove topics and set expected frequencies. +1. A node that behaves like C++ based ros2 topic hz. I.E. subscribes to topics to determine the frame rate and latency. compared to ro2s topic hs the greenwave node is more performant, publishes ROS2 Diagnostics, and offers services to manage topics and expected frequencies. -3. Provides a header only C++ library so you can calculate and publish compatible diagnostics directly from your own nodes for reduced overhead. +2. A terminal based dashboard that displays the topic rates, latency, and status, and allows you to add/remove topics and set expected frequencies. -This diagram shows an overview of the architecture ![architecture](docs/images/greenwave_diagram.png) +3. A header only C++ library so you can calculate and publish compatible diagnostics directly from your own nodes for reduced overhead. + +This diagram shows an overview of the ![architecture](docs/images/greenwave_diagram.png) ## Diagnostics Messages @@ -19,7 +21,7 @@ In particular, the messages follow conventions from [Isaac ROS NITROS](https://g ## Compatibility -Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, and Rolling ROS2 releases, under Ubuntu 22.04 and Ubuntu 24.04. It does not depend on Isaac ROS *(but does play nicely with it)*. +Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, and Rolling ROS2 releases, under Ubuntu 22.04 and Ubuntu 24.04. It does not depend on Isaac ROS. ## Installation From 6937a1f3915dcbe1f466484e4cd25ac8804bea9a Mon Sep 17 00:00:00 2001 From: Sean Gillen Date: Thu, 2 Oct 2025 16:35:39 -0400 Subject: [PATCH 3/4] update readme and add CI for readme commands --- .github/workflows/debian-packages.yml | 3 ++- .github/workflows/ros-tests.yml | 10 ++++++++++ README.md | 19 +++++++++---------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/.github/workflows/debian-packages.yml b/.github/workflows/debian-packages.yml index e9ffb74..1f793ed 100644 --- a/.github/workflows/debian-packages.yml +++ b/.github/workflows/debian-packages.yml @@ -145,7 +145,7 @@ jobs: # Run ncurses frontend with simulated terminal and quit command # Exit code 0 means clean exit (not 11 for SIGSEGV or 134 for SIGABRT) set +e - timeout 10s script -qfec 'python3 -m greenwave_monitor.ncurses_frontend' /dev/null <<< $'q' + timeout 10s script -qfec 'ros2 run greenwave_monitor ncurses_dashboard' /dev/null <<< $'q' EXIT_CODE=$? set -e @@ -190,6 +190,7 @@ jobs: run: | source /opt/ros/${{ matrix.ros_distro }}/setup.bash timeout 10s bash -lc "script -qfec 'ros2 run r2s_gw r2s_gw' /dev/null <<< \$'q'" || true + timeout 10s bash -lc "script -qfec 'ros2 run greenwave_monitor r2s_gw_dashboard' /dev/null <<< \$'q'" || true shell: bash - name: Test greenwave_monitor execution diff --git a/.github/workflows/ros-tests.yml b/.github/workflows/ros-tests.yml index 05ca99d..e985367 100644 --- a/.github/workflows/ros-tests.yml +++ b/.github/workflows/ros-tests.yml @@ -61,6 +61,16 @@ jobs: colcon build --packages-up-to r2s_gw shell: bash + - name: Smoke test README commands + run: | + source /opt/ros/${{ matrix.ros_distro }}/setup.bash + source install/setup.bash + set -e + timeout 10s bash -lc "script -qfec 'ros2 run greenwave_monitor ncurses_dashboard' /dev/null <<< \$'q'" || true + timeout 10s bash -lc "script -qfec 'ros2 run greenwave_monitor r2s_gw_dashboard' /dev/null <<< \$'q'" || true + timeout 5s ros2 launch greenwave_monitor hz.launch.py topics:='["/topic1"]' || true + shell: bash + - name: Run tests run: | source /opt/ros/${{ matrix.ros_distro }}/setup.bash diff --git a/README.md b/README.md index 7244863..c3894fc 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Greenwave monitor is a tool for runtime monitoring of ROS 2 topics. It provides the following features: -1. A node that behaves like C++ based ros2 topic hz. I.E. subscribes to topics to determine the frame rate and latency. compared to ro2s topic hs the greenwave node is more performant, publishes ROS2 Diagnostics, and offers services to manage topics and expected frequencies. +1. A node similar to a C++ based ros2 topic hz. I.E. subscribes to topics to determine the frame rate and latency. compared to ros2 topic hz the greenwave node is more performant, publishes Diagnostics, and offers services to manage topics and expected frequencies. 2. A terminal based dashboard that displays the topic rates, latency, and status, and allows you to add/remove topics and set expected frequencies. @@ -13,15 +13,15 @@ It provides the following features: This diagram shows an overview of the ![architecture](docs/images/greenwave_diagram.png) -## Diagnostics Messages +## Diagnostic messages -The diagnostics messages published by greenwave monitor are valid ROS2 Diagnostics messages, however the dashboard does rely on specific keys to associate the data with the correct topic, and to display the data in the correct format. +The diagnostics messages published by greenwave monitor are valid ROS 2 Diagnostics messages, however the dashboard does rely on specific keys to associate the data with the correct topic, and to find frequency and latency data. -In particular, the messages follow conventions from [Isaac ROS NITROS](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nitros), which means configured NITROS nodes can be monitored by greenwave monitor frontends without any additional subscriber overhead. For example the drivers from [Isaac ROS NOVA](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nova) can be monitored out of the box. Furthermore, you can set ENABLE_GLOBAL_NITROS_DIAGNOSTICS=1 to configure all NITROS nodes to publish diagnostics (more info [here](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nitros/isaac_ros_nitros/index.html)). +In particular, the messages follow conventions from [Isaac ROS NITROS](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nitros), which means configured NITROS nodes can be monitored by greenwave monitor frontends without any additional subscriber overhead. For example the drivers from [Isaac ROS NOVA](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nova) can be monitored out of the box. Furthermore, you can set `ENABLE_GLOBAL_NITROS_DIAGNOSTICS=1` to configure all NITROS nodes to publish diagnostics (more info [here](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nitros/isaac_ros_nitros/index.html)). ## Compatibility -Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, and Rolling ROS2 releases, under Ubuntu 22.04 and Ubuntu 24.04. It does not depend on Isaac ROS. +Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, and Rolling ROS 2 releases, under Ubuntu 22.04 and Ubuntu 24.04. It does not depend on Isaac ROS. ## Installation @@ -31,7 +31,7 @@ cd ros_ws/src git clone https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor.git cd .. colcon build --packages-up-to greenwave_monitor -source install/setup.sh +source install/setup.bash ``` ## Usage @@ -61,9 +61,8 @@ First you need to build the r2s_gw package and some additional dependencies, r2s ```bash cd ros_ws/ colcon build --packages-up-to r2s_gw -pip install -I textual # There is a requirements file in the r2s_gw package, but in case you installed from debian and that's not handy ... -source install/setup.sh -ros2 run greenwave_monitor r2s_gw_dashboard +pip install -I textual # There is a requirements.txt file in the r2s_gw package, but in case you installed from debian and that's not handy ... +source install/setup.bash ``` Then you can launch the dashboard with the following. Use tab to navigate between different UI elements. @@ -75,7 +74,7 @@ ros2 run greenwave_monitor r2s_gw_dashboard Just like before, you can also launch the dashboard with some demo publishers to see everything in action. ```bash -ros2 run greenwave_monitor r2s_gw_dashboard --demo +ros2 run greenwave_monitor r2s_gw_dashboard -- --demo ``` ### Manual Launch (ros2 topic hz mode) From 9d37dd319cac541dc85aa9a3d1d59c00130d40be Mon Sep 17 00:00:00 2001 From: Sean Gillen Date: Thu, 2 Oct 2025 16:46:22 -0400 Subject: [PATCH 4/4] minor formatting --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c3894fc..7ba0e91 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Greenwave monitor provides two dashboard frontends, a lightweight ncurses interf We have found that the r2s dashboard gets sluggish when there are many topics, so we recommend using the ncurses dashboard for large deployments. -#### ncurses Dashboard (Lightweight) +### ncurses Dashboard (Lightweight) After installing, you can launch the ncurses dashboard with: @@ -51,7 +51,7 @@ ros2 run greenwave_monitor ncurses_dashboard You can also launch the dashboard with some demo publishers to see everything in action: ```bash -ros2 run greenwave_monitor ncurses_dashboard -- --demo +ros2 run greenwave_monitor ncurses_dashboard --demo ``` ### r2s_gw Dashboard (Rich TUI)