From 3231e5a8121e8a81c71f53fd3a0619552fbbbc02 Mon Sep 17 00:00:00 2001 From: CihatAltiparmak Date: Mon, 19 Aug 2024 16:49:10 +0300 Subject: [PATCH 01/13] Added blog for GSOC'24 :Zenoh Support & Benchmarking --- CNAME | 2 +- ...soc-zenoh-support-and-benchmarking-blog.md | 87 ++++++++++++++++++ .../scenario_basic_topic_sub_pub_blog.png | Bin 0 -> 21537 bytes .../scenario_moveit_task_constructor_blog.png | Bin 0 -> 23369 bytes .../scenario_perception_pipeline_blog.png | Bin 0 -> 20529 bytes 5 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 _posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md create mode 100644 assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png create mode 100644 assets/images/gsoc24/scenario_moveit_task_constructor_blog.png create mode 100644 assets/images/gsoc24/scenario_perception_pipeline_blog.png diff --git a/CNAME b/CNAME index 802179af4..b75d41b94 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -moveit.ros.org \ No newline at end of file +moveit.ros.org diff --git a/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md b/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md new file mode 100644 index 000000000..a8623af7e --- /dev/null +++ b/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md @@ -0,0 +1,87 @@ +--- +comments: false +date: 2024-08-19 +author: Cihat Kurtuluş Altıparmak, Computer Engineering Undergraduate Student at the Istanbul Technical University +layout: post +title: "Google Summer of Code : Zenoh Support & Benchmarking" +media_type: image +media_link: /assets/images/blog_posts/GSoc2024.jpg +description: "We've completed our project titled "Zenoh Support & Benchmarking". With this project, we could try to understand how to be used rmw_zenoh in MoveIt2 project and how rmw_zenoh affects MoveIt2's workflow. " +categories: +- MoveIt +- GSoC +--- + +We've completed our project titled "Zenoh Support & Benchmarking". With this project, we could try to understand how to be used rmw_zenoh in MoveIt2 project and how rmw_zenoh affects MoveIt2's workflow. + +## Movitation + +The aims of this Google Summer of Code Project was to make [rmw_zenoh_cpp](https://github.com/ros2/rmw_zenoh) enable, benchmark the midlewares such as rmw_cyclonedds and rmw_fastrtps against some scenarios from complex robotic problems like trajectory planning and task planning to basic ROS works like basic topic subscription-publishing, service-client operations, report the found bugs to rmw_zenoh team and configure CI in a way that rmw_zenoh can be supported. + +rmw_zenoh comes to the fore with some exciting features like configurability with elastic topologies, supporting a lot of protocol such as TCP, UDP, usable at WIFI networks even though it's still in development phase. + +## Progress +**Integration to Moveit2** + +Even if we couldn't run moveit2 with rmw_zenoh due to data races inside `rmw_wait` function in the starting of GSoC project, which bring about some problems in Multithreaded Executor, we could run MoveIt2 with rmw_zenoh after some bug-fixes for `rmw_wait` function in the middle of GSoC project period. Even if rmw_zenoh has some problems and is in development progress, you can run MoveIt2 using rmw_zenoh middleware. Additionaly, rmw_zenoh has some pretty good potential so that you can get approximately as same performance as rmw_fastrtps even if rmw_zenoh is used TCP protocol by default, you can help for rmw_zenoh team to completed and find the bugs! + +**Benchmarking** + +During this summer, the middleware benchmarking tool is created to compare the middlewares such as rmw_zenoh, rmw_cyclonedds and rmw_fastrtps. Some scenarios are implemented for measuring how the middlewares affect in some scenarios in robotics. Here is our middleware benhmarking tool : [moveit_middleware_bechmark](https://github.com/CihatAltiparmak/moveit_middleware_benchmark). + +Some of scenarios are: + +- Basic Service-Client Works +- Basic Topic Subscription-Publishing +- Perception Pipeline +- MoveIt Task Constructor + +**Bugs in rmw_zenoh** + +It's also reported some bugs in a case of catching it. These are + +- https://github.com/ros2/rmw_zenoh/issues/257 +- https://github.com/ros2/rmw_zenoh/issues/240 +- https://github.com/ros2/rmw_zenoh/issues/251 +- https://github.com/ros2/rmw_zenoh/issues/186 + +It's also contributed to rmw_zenoh. + +- https://github.com/ros2/rmw_zenoh/pull/252 + +I also have two open PRs in rmw_zenoh repository. + +- https://github.com/ros2/rmw_zenoh/pull/255 +- https://github.com/ros2/rmw_zenoh/pull/256 + +**Conducting Benchmarks in CI** + +Additionaly, the website for visualization of bechmark results created so that it's also configurable with CI. + +Finaly, the benchmarks have been conducted in a way to give the reliable comparisons in github-actions and the results are visualized in website. + +**Contributions to MoveIt During GSoC Project +- https://github.com/moveit/moveit2/pull/2963 +- https://github.com/moveit/moveit2/pull/2834 +- https://github.com/moveit/moveit2_tutorials/pull/906 +- https://github.com/moveit/moveit2_tutorials/pull/944 + +## Achievements + +We have benchmarked the middlewares against various scenarios and we have found below benchmark results. We have used default configurations of rmw_zenoh except the fact that we configured some tcp settings like below: + +```sh +sudo sysctl -w "net.ipv4.tcp_rmem=4096 4096 4096" +sudo sysctl -w "net.ipv4.tcp_wmem=4096 4096 4096" +sudo sysctl -w "net.ipv4.tcp_mem=4096 4096 4096" +``` + +![scenario_perception_pipeline](../assets/images/gsoc24/scenario_perception_pipeline_blog.png) + +![scenario_moveit_task_constructor](../assets/images/gsoc24/scenario_moveit_task_constructor_blog.png) + +![scenario_basic_topic_sub_pub](../assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png) + +## Additional + +Hearfelt thank you goes to my mentors [Sebastian Jahr](https://github.com/sjahr) and [Henning Kayser](https://github.com/henningkayser). An other thanks goes to [Julien Enoch](https://github.com/JEnoch) and [Zenoh Community](https://zenoh.io/community/) for trying our middleware benchmark tool and giving valuable feedbacks to us. Without valuable helps of [Zenoh Community](https://zenoh.io/community/), we couldn't complete this project. diff --git a/assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png b/assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8010d4145266b455c1bbc544ac131a3c2f91e5 GIT binary patch literal 21537 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 F{ue*+1R?+c literal 0 HcmV?d00001 diff --git a/assets/images/gsoc24/scenario_perception_pipeline_blog.png b/assets/images/gsoc24/scenario_perception_pipeline_blog.png new file mode 100644 index 0000000000000000000000000000000000000000..7839c290bf6162e91ba0eb3201eda8cf9986ef9f GIT binary patch literal 20529 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 Date: Mon, 19 Aug 2024 16:53:24 +0300 Subject: [PATCH 02/13] pre-commit fix --- ...-19-gsoc-zenoh-support-and-benchmarking-blog.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md b/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md index a8623af7e..bffb5d06d 100644 --- a/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md +++ b/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md @@ -12,18 +12,18 @@ categories: - GSoC --- -We've completed our project titled "Zenoh Support & Benchmarking". With this project, we could try to understand how to be used rmw_zenoh in MoveIt2 project and how rmw_zenoh affects MoveIt2's workflow. +We've completed our project titled "Zenoh Support & Benchmarking". With this project, we could try to understand how to be used rmw_zenoh in MoveIt2 project and how rmw_zenoh affects MoveIt2's workflow. ## Movitation The aims of this Google Summer of Code Project was to make [rmw_zenoh_cpp](https://github.com/ros2/rmw_zenoh) enable, benchmark the midlewares such as rmw_cyclonedds and rmw_fastrtps against some scenarios from complex robotic problems like trajectory planning and task planning to basic ROS works like basic topic subscription-publishing, service-client operations, report the found bugs to rmw_zenoh team and configure CI in a way that rmw_zenoh can be supported. -rmw_zenoh comes to the fore with some exciting features like configurability with elastic topologies, supporting a lot of protocol such as TCP, UDP, usable at WIFI networks even though it's still in development phase. +rmw_zenoh comes to the fore with some exciting features like configurability with elastic topologies, supporting a lot of protocol such as TCP, UDP, usable at WIFI networks even though it's still in development phase. ## Progress **Integration to Moveit2** -Even if we couldn't run moveit2 with rmw_zenoh due to data races inside `rmw_wait` function in the starting of GSoC project, which bring about some problems in Multithreaded Executor, we could run MoveIt2 with rmw_zenoh after some bug-fixes for `rmw_wait` function in the middle of GSoC project period. Even if rmw_zenoh has some problems and is in development progress, you can run MoveIt2 using rmw_zenoh middleware. Additionaly, rmw_zenoh has some pretty good potential so that you can get approximately as same performance as rmw_fastrtps even if rmw_zenoh is used TCP protocol by default, you can help for rmw_zenoh team to completed and find the bugs! +Even if we couldn't run moveit2 with rmw_zenoh due to data races inside `rmw_wait` function in the starting of GSoC project, which bring about some problems in Multithreaded Executor, we could run MoveIt2 with rmw_zenoh after some bug-fixes for `rmw_wait` function in the middle of GSoC project period. Even if rmw_zenoh has some problems and is in development progress, you can run MoveIt2 using rmw_zenoh middleware. Additionally, rmw_zenoh has some pretty good potential so that you can get approximately as same performance as rmw_fastrtps even if rmw_zenoh is used TCP protocol by default, you can help for rmw_zenoh team to completed and find the bugs! **Benchmarking** @@ -38,7 +38,7 @@ Some of scenarios are: **Bugs in rmw_zenoh** -It's also reported some bugs in a case of catching it. These are +It's also reported some bugs in a case of catching it. These are - https://github.com/ros2/rmw_zenoh/issues/257 - https://github.com/ros2/rmw_zenoh/issues/240 @@ -56,9 +56,9 @@ I also have two open PRs in rmw_zenoh repository. **Conducting Benchmarks in CI** -Additionaly, the website for visualization of bechmark results created so that it's also configurable with CI. +Additionally, the website for visualization of benchmark results created so that it's also configurable with CI. -Finaly, the benchmarks have been conducted in a way to give the reliable comparisons in github-actions and the results are visualized in website. +Finally, the benchmarks have been conducted in a way to give the reliable comparisons in github-actions and the results are visualized in website. **Contributions to MoveIt During GSoC Project - https://github.com/moveit/moveit2/pull/2963 @@ -84,4 +84,4 @@ sudo sysctl -w "net.ipv4.tcp_mem=4096 4096 4096" ## Additional -Hearfelt thank you goes to my mentors [Sebastian Jahr](https://github.com/sjahr) and [Henning Kayser](https://github.com/henningkayser). An other thanks goes to [Julien Enoch](https://github.com/JEnoch) and [Zenoh Community](https://zenoh.io/community/) for trying our middleware benchmark tool and giving valuable feedbacks to us. Without valuable helps of [Zenoh Community](https://zenoh.io/community/), we couldn't complete this project. +THe heartfelt thank you goes to my mentors [Sebastian Jahr](https://github.com/sjahr) and [Henning Kayser](https://github.com/henningkayser). An other thanks goes to [Julien Enoch](https://github.com/JEnoch) and [Zenoh Community](https://zenoh.io/community/) for trying our middleware benchmark tool and giving valuable feedbacks to us. Without valuable helps of [Zenoh Community](https://zenoh.io/community/), we couldn't complete this project. From 73a20149b75cf3464c5652d5064a819797f6d860 Mon Sep 17 00:00:00 2001 From: CihatAltiparmak Date: Mon, 19 Aug 2024 16:59:15 +0300 Subject: [PATCH 03/13] some additional content --- .../2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md b/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md index bffb5d06d..32004f901 100644 --- a/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md +++ b/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md @@ -6,7 +6,7 @@ layout: post title: "Google Summer of Code : Zenoh Support & Benchmarking" media_type: image media_link: /assets/images/blog_posts/GSoc2024.jpg -description: "We've completed our project titled "Zenoh Support & Benchmarking". With this project, we could try to understand how to be used rmw_zenoh in MoveIt2 project and how rmw_zenoh affects MoveIt2's workflow. " +description: "We've completed our project titled \"Zenoh Support & Benchmarking\". With this project, we could try to understand how to be used rmw_zenoh in MoveIt2 project and how rmw_zenoh affects MoveIt2's workflow. " categories: - MoveIt - GSoC @@ -16,9 +16,9 @@ We've completed our project titled "Zenoh Support & Benchmarking". With this pro ## Movitation -The aims of this Google Summer of Code Project was to make [rmw_zenoh_cpp](https://github.com/ros2/rmw_zenoh) enable, benchmark the midlewares such as rmw_cyclonedds and rmw_fastrtps against some scenarios from complex robotic problems like trajectory planning and task planning to basic ROS works like basic topic subscription-publishing, service-client operations, report the found bugs to rmw_zenoh team and configure CI in a way that rmw_zenoh can be supported. +The aims of this Google Summer of Code Project was to make [rmw_zenoh_cpp](https://github.com/ros2/rmw_zenoh) enable for MoveIt2, benchmark the midlewares such as rmw_cyclonedds and rmw_fastrtps against some scenarios from complex robotic problems like trajectory planning and task planning to basic ROS works like basic topic subscription-publishing, service-client operations, report the found bugs to rmw_zenoh team and configure CI in a way that rmw_zenoh can be supported. -rmw_zenoh comes to the fore with some exciting features like configurability with elastic topologies, supporting a lot of protocol such as TCP, UDP, usable at WIFI networks even though it's still in development phase. +rmw_zenoh comes to the fore with some exciting features like configurability with elastic topologies, supporting a lot of protocol such as TCP, UDP and usable at WIFI networks compared to DDS based middlewares even though it's still in development phase. ## Progress **Integration to Moveit2** From 9a8d93a922b1c8a4d519f1cbc685c0f7d45c1c1e Mon Sep 17 00:00:00 2001 From: CihatAltiparmak Date: Mon, 26 Aug 2024 08:56:36 +0300 Subject: [PATCH 04/13] Update and rename 2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md to 2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md --- ....md => 2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md => 2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md} (100%) diff --git a/_posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md similarity index 100% rename from _posts/2024-08-19-gsoc-zenoh-support-and-benchmarking-blog.md rename to _posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md From 1ff999deacd48f0316d241bd41a556249a619cf7 Mon Sep 17 00:00:00 2001 From: CihatAltiparmak Date: Mon, 26 Aug 2024 09:02:02 +0300 Subject: [PATCH 05/13] Updated outdated information --- _posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index 32004f901..fc42c7a4b 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -48,9 +48,6 @@ It's also reported some bugs in a case of catching it. These are It's also contributed to rmw_zenoh. - https://github.com/ros2/rmw_zenoh/pull/252 - -I also have two open PRs in rmw_zenoh repository. - - https://github.com/ros2/rmw_zenoh/pull/255 - https://github.com/ros2/rmw_zenoh/pull/256 From a8bbdbc6401bb32755b32e0556f3e0a6f25a4a70 Mon Sep 17 00:00:00 2001 From: CihatAltiparmak Date: Mon, 26 Aug 2024 09:02:26 +0300 Subject: [PATCH 06/13] Fixed typo --- _posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index fc42c7a4b..a19bf5d43 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -81,4 +81,4 @@ sudo sysctl -w "net.ipv4.tcp_mem=4096 4096 4096" ## Additional -THe heartfelt thank you goes to my mentors [Sebastian Jahr](https://github.com/sjahr) and [Henning Kayser](https://github.com/henningkayser). An other thanks goes to [Julien Enoch](https://github.com/JEnoch) and [Zenoh Community](https://zenoh.io/community/) for trying our middleware benchmark tool and giving valuable feedbacks to us. Without valuable helps of [Zenoh Community](https://zenoh.io/community/), we couldn't complete this project. +The heartfelt thank you goes to my mentors [Sebastian Jahr](https://github.com/sjahr) and [Henning Kayser](https://github.com/henningkayser). An other thanks goes to [Julien Enoch](https://github.com/JEnoch) and [Zenoh Community](https://zenoh.io/community/) for trying our middleware benchmark tool and giving valuable feedbacks to us. Without valuable helps of [Zenoh Community](https://zenoh.io/community/), we couldn't complete this project. From 75efae2705798a76b0b61beb861caae4a40060e0 Mon Sep 17 00:00:00 2001 From: CihatAltiparmak Date: Mon, 26 Aug 2024 10:56:26 +0300 Subject: [PATCH 07/13] Update 2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md --- ...024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index a19bf5d43..d5d4ff051 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -68,9 +68,18 @@ Finally, the benchmarks have been conducted in a way to give the reliable compar We have benchmarked the middlewares against various scenarios and we have found below benchmark results. We have used default configurations of rmw_zenoh except the fact that we configured some tcp settings like below: ```sh +# for rmw_zenoh sudo sysctl -w "net.ipv4.tcp_rmem=4096 4096 4096" sudo sysctl -w "net.ipv4.tcp_wmem=4096 4096 4096" sudo sysctl -w "net.ipv4.tcp_mem=4096 4096 4096" + +# for all middlewares +sudo sysctl -w net.ipv4.udp_mem="102400 873800 16777216" +sudo sysctl -w net.core.netdev_max_backlog="30000" +sudo sysctl -w net.core.rmem_max="20971520" +sudo sysctl -w net.core.wmem_max="20971520" +sudo sysctl -w net.core.rmem_default="20971520" +sudo sysctl -w net.core.wmem_default="20971520" ``` ![scenario_perception_pipeline](../assets/images/gsoc24/scenario_perception_pipeline_blog.png) From ac20a15910a33f065c4652f36b845baa1a31fa55 Mon Sep 17 00:00:00 2001 From: CihatAltiparmak Date: Mon, 26 Aug 2024 11:13:20 +0300 Subject: [PATCH 08/13] Modified images and added new content --- ...SoC-2024-Zenoh-Support-and-Benchmarking.md | 20 ++++++++++++------ .../scenario_basic_service_client_blog.png | Bin 0 -> 23931 bytes .../scenario_basic_topic_sub_pub_blog.png | Bin 21537 -> 25894 bytes .../scenario_moveit_task_constructor_blog.png | Bin 23369 -> 22564 bytes .../scenario_perception_pipeline_blog.png | Bin 20529 -> 21543 bytes 5 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 assets/images/gsoc24/scenario_basic_service_client_blog.png diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index d5d4ff051..d44a2e977 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -57,7 +57,7 @@ Additionally, the website for visualization of benchmark results created so that Finally, the benchmarks have been conducted in a way to give the reliable comparisons in github-actions and the results are visualized in website. -**Contributions to MoveIt During GSoC Project +**Contributions to MoveIt During GSoC Project** - https://github.com/moveit/moveit2/pull/2963 - https://github.com/moveit/moveit2/pull/2834 - https://github.com/moveit/moveit2_tutorials/pull/906 @@ -69,9 +69,9 @@ We have benchmarked the middlewares against various scenarios and we have found ```sh # for rmw_zenoh -sudo sysctl -w "net.ipv4.tcp_rmem=4096 4096 4096" -sudo sysctl -w "net.ipv4.tcp_wmem=4096 4096 4096" -sudo sysctl -w "net.ipv4.tcp_mem=4096 4096 4096" +sudo sysctl -w "net.ipv4.tcp_rmem=102400 102400 102400" +sudo sysctl -w "net.ipv4.tcp_wmem=102400 102400 102400" +sudo sysctl -w "net.ipv4.tcp_mem=102400 102400 102400" # for all middlewares sudo sysctl -w net.ipv4.udp_mem="102400 873800 16777216" @@ -82,11 +82,17 @@ sudo sysctl -w net.core.rmem_default="20971520" sudo sysctl -w net.core.wmem_default="20971520" ``` -![scenario_perception_pipeline](../assets/images/gsoc24/scenario_perception_pipeline_blog.png) +![scenario_perception_pipeline](/assets/images/gsoc24/scenario_perception_pipeline_blog.png) -![scenario_moveit_task_constructor](../assets/images/gsoc24/scenario_moveit_task_constructor_blog.png) +![scenario_moveit_task_constructor](/assets/images/gsoc24/scenario_moveit_task_constructor_blog.png) -![scenario_basic_topic_sub_pub](../assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png) +![scenario_basic_topic_sub_pub](/assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png) + +![scenario_basic_service_client](/assets/images/gsoc24/scenario_basic_service_client_blog.png) + +## Conclusion + +It was an exciting progress for me. I've contributed a lot of open source project in this period and i've learnt a lot from my works and my mentors's showing the way during Google Summer of Code. I strongly suggest you to join Google Summer of Code Program, especially in MoveIt organization side for those who interested in robotics. After this Google Summer of Code works, i'm willing to continue this project. ## Additional diff --git a/assets/images/gsoc24/scenario_basic_service_client_blog.png b/assets/images/gsoc24/scenario_basic_service_client_blog.png new file mode 100644 index 0000000000000000000000000000000000000000..db81a0d76d36874bbb187e0034454f82bbe22c6d GIT binary patch literal 23931 zcmd_SXINF~)+LITS{9a41_TwvfJzV$B}g`*lCvlhR0JgFoGhy_AVCo%2SwOql$;S2 zkR(bJk(>ksBxmUH?mFk(`nvCT?sxm?{?lDg)l&*)Y60x6-4LyKZA)Vs2w%cw?WP zo|Uzsx!DPBA?{;G_uaCwv9K2A;W7Q!1>ELV20VQ0E@t5-zgS$nVogIscb)vVCQgE4 zNJFFfP3qifRfn*VHb+hR>6P;F*{yvvX*sv|ao^^Qi+a%a^!NDqVDNSfgKG{QitgLKCzY68%=O=3B)-BFO*k=wg>@6#>Gx$Ng00wG_=O^qiMeRaN~DD@1&6P_VK}BVVo-uPli>8hv{1 zu`(ICdNMQDVWfMgF>!jX$Cq>8zEk*2!$@{VN{8EGP5g+uj%$orTORw#lb7*Qw!=-0 zIhH;C;o&0Ix`qR%_RIgo&!n-tN7^=7~ zjhDMSE+0C4I6*E{U}9=Y_44JQcGp=g%HY6<@cPMGiPUf3Zq3in$KNRRG-^%>f68^$ z?uyO{{c1%Un+z8hm)_yw#P{znQl`V2`Tf_=yQK8i2zIFUlzI2ziz@>-6D1$+3=wzD zQwh~^o0p^$pNm@i(@z)|Jgctj)Taybrrb>@b<2JgTl}7$pcH+#pr9bbvgdq@NtR~w zba&}Pz4R77_Z1f@N1dKLi>@=J@7|qks-14ualhh?iB<{Z*6JM?IKsojgWuem9%@w2 zw6!72^lD?A(%IFe0SUENHzZx>`vQkr(kc425y`FQ#chVczTyjU9O@}apQ0}q zcNDpX@EQ8u-MlB3r)ciYr^Djn+U@P_PMEg7k&)!F;#KWhiPeI-`g;EBZ`M&(e3(UI zQ?&AjBAiE+@L76B#-L&6n(As*6O$zJzSrO0Wj}gU_JqNQhTCg?vYF_WDqm!e+kQm; zThmqZ#y0zoWO3JpZ&f_S4UhJp?HwIW`I*H<(a%33A_Y@-%5`DtQ)kH^SkLUPb6xj_ zzUHR8EsbB`H*S*k%di<#o*t~fz$|R@5uZOQMP3|hcQQF~9|pZ(b!Bn4xJwRM=450H zY9ku)Tyvd8)L$Jkhv0WjEigN8Fk@Q30IlL-$zR6d&&7qWxOi*km)?X3vT7w6wJRl4BVy zKG*q^TH>XeS8^^3gB0>1vz)FC%gbZ#fvkMF)6iHUZ#^9t7%;fIg*jw6V-o{+ z(94&{wr|^ZLq6+@`ldqze~v2d)l=yG#&zCPG~M7T^(PcK-%CM4LXF(DX{b(gN2 z&b=#FuE)>B%KY6qm9 zroLU@jj1vZ{r#t(L$Cru8yZw8>$$bv9hT-SU00W9^A<<*$v#0w;^603 zLzqxOK+QC6=3d5q4$YV^cLem)u0Df5oYm@B(q*7DCo~ZMW0n zk$2)$`E3co|bjuS7OW=F#fTx9~e8!<6cweBk_NNKr6wKbuF*hyM>v+d5d-#_zS za5eZ4rgU!$a|SZYS{(xs=NS`(UQE&e1EqMzex5wct7S zU&5tijl8bAd-(LL8JA~^R|8l_TGB80O}J_gj<)6Nd40036{Fm~O+#reWnRVj3D>CP z+nG|jkjG>emK$0hB7VmrNNc&dxlK$@t0A>4%#3hKNz2GshZG~stk3(U9#g4S?6zEG z7O{Qn)~+Bo{yTsCK>|I+a`SG!N34|L6A~+Px{{KT6>s03MYJGyDVp!!Lzx|af6zDX z^dB3BzGNmEH6_K9*o#P0X+Mv|O4~h1iF^u_LPAPos*cXtds}StHcV!BxYZ*FOe2VD z&Fs=y`lBRLqUYtymsL;ek>5S;-4hAlwo=NV^S+})N3g?XlE1JPYffrG?AU5<842px z-+`ur^ISZ@5o!sl?23zTlH&JuY^FKY)xEn}ISG@72QrSRPftsma$lWwUs#%~wMFLO zH>^9yQ@oVcbC^BSZ6V%i=KJ7Wl@&rVpHTx_A-2zMVVheI@}ICO`n9>vwh{Eu{~xUf)EDDq@_QU?2#)^FXq^%=8>-K~|Sd6F1N3U*&z>~LC{AKkgX;v70FU+ne($RG!o z+rD-09~p6#tIE-EkBQ}U6{Ml@@a@z<3Kx)V%{FiL+I3Y)Bq;LCf*-(>V15{X6l;~zj?bRz`*mv zav`izU-E1dkr9H13lMD{Pc5=%J7(r;{PN2$uey;S#gH*|@C0$Am!S)OY2#5iCBbofk zVYxbNr|>UYqH9%w-BGm|Rr<5%y1B0|1%=+pacCH-Me@Q0nabtDq^sHT*jBbf!=GR2 z%D?Ta46tS@t*)%BwEb(R*H$5jt4E*rzUlR8esZ9%zdu%FH0Nx(L2Xl0@>QPDRU`49 z`}a3Wovm)%1^Hk|-mWh&`T~?29>OcUK` zd8XU4lU&$ICA?z2$XG!%)=%PWw-U7B98k=JiHevlS4FspE#MG+a2_t^ypwDwW-4 z7fMzQ3GoOw_3eeu)1&!gs7ubvU)TQ_bsB3i$E;{xAGcOnoE>WpH7|+>UJ^ zCa!K(#g$Exv}tRW8j37GKffv9>iDbKWy%` z6MM>i85|19?je94Eab|?yMydX9pQ1~bw%ktR zdI1=A;+vtprUzU(?7o zGsXDJB3e2ELWF%mybJ>UPyx1rF~7|$C4W@-1ZvXyVt04o_U>DP#!W}9G4nxy&AaUF z?Fnd@{CJj5X!&cksn{-+m$gSERAOa$1>0<%#A{?GylNeZMd98bPl-5A0M&>Olh6&6 z14j6~9*1h&wL5q2$O0KvJC7CGU-1S=tG0Fo3_9-T#hQ+5s$y5?El)Bm4@j)?lHwpD zB7(s2uc%x4QL)<_r5n~Cu1D}KcSa)MweN7vp2sq#EfDvbU!JZ1^Oxdv)Bacr_@%cIMZK2UT7|Q!qD(dLV z7LyPW`xGR6_QBcV{M`a3aRfaBR;(YT=oGtsDRj<8jjVDmfKXw#Psr1Am&!+qC%5I> zi`<umV*=g%9GuL=@E2eCG&133LF`wi>=aQ?F|0F5L!{KqNb9M*sA>&xb{VP)U74Z6I|pDy5e{=^z>Aa%wvd zp;j9#|AjslDTA~9w~E%*{Ld_*Khaolf!T|C_rTk`X7;=9qes6XtfbD-=526Xemt&> z71f9e+mo`70ZBjd&6_t9rYD@HZXsUAI?%4AxxBW7o<^~o_3+`LcMrBZ%Flv&K_qUr@fejqI?Tb(Tj8U@LJ`bNV0%nuP_i9j=btw?XeJ_g%=qN&{QPiE19@yK5kV@{$4 zyZ@6X(K_zSYKVAgEhZ`4KjT+y^j^HewnP2|iKZ}>(>&Z>lDT66EDG+(r5;Ge(_i}M zEli3vA^cie=Y!8!aCsn!ur9B7Ab8kX^5cS2gO9)hV0#J8WGlIBOo{neTK|WutLra> z_dK<~$Eu*a{6P!;{J)n2t<2A(iORWo^Cp{+P_E))b#-+EXu}=5cXKEx)Sej;5f#-$ z4earSjELg4t(r>utVfP;3JZT})Z20S#*OD8g65+`$H`L$9?W@Oy^)Si{l<+O&t`%_ z;NV6^Uos3m@84%@D0=($?WRl#To?7?051G7F~N~`FbIf|i5WZ)jps%|11iybc{e5! z|6DU%r%wKVJ7%jU8Bm(1=Pk&EH2>}bt~0u2UXN?^t(^eW2SjRt!sz$z<))*fLvA-J zxwF1hm5X{0OxS&Xv#*yC6|4$S#RM3%f^{L-bN5M$C;`(iFCxU86F{l}4;u4c`jvdB z3DbB3WudyF;-j9vv9U;lRv?>1fKI2Oc*+i7U(24dc*n_pCqy~VS2xIKUhceOytNgf zoGcZJJTn*}S7|A!iu4hb0FAG7FHkH&uQcH=5A$THA4r-=;f~@nZb^&j?&)cKdHpO1 zpo_ZYK57V98Mech=I7=#n^uskX@C9IW;X*PW8B+&bOZTe0K8xugznbY*KZowOm201 z{coBN6;UEGuljm=Dx>PB-?r^JDhy?CmPa%C-j$Xbe*gT+qltxFefbv(EkiV-NIWtl zB947Z{U3Mk*z~^NO0m4)!=$9Bs93b@vzuQU5!R;}R0M6ZKKYylzfaE2Xi_-WMu_Es zm9h?R$C#l&u_vsp?$^2)nMOcQm&MH1k+jwkk1HJbl;_!UXiX&2{~}e%-o@e#*+qswrPrKQx)u$9l&qM5Y)-x?ZXk zo%A9_2Ie|m>dE00r%m_*wsT!wU5GPB8^oXZ`88yl>wp24!vgncGIwxrcs9LWlM{;} zgje@`Q9be;_a6IZE&D-aKaS^~(h>gtI}n`n^1MV39XcemY^=7jvXY>cpOsjJEmJ*7 zwo5d1yX=>Ym$dNEi+S;a?Lfh^*8kZa)a)U$OmE4MZ~qeqQI>xM(MJ#QI+Ex3RL|d?W~n(6 zaJzic(UFb)LHT4?Dph}=$-Ri&alY(|T1sOMK^nF&7SN7 zi|=>R%80mpVXN0?rBhc|w$l6Z;w?o>iwwn&<^XG3YB-|lz4u>Mr1swXsY+&{v5~%) zYcec@M~!wmP_#`;OKvo&V1<0+oqaiP(vVvF`UamBt%?s1DNBp;DA3I>F6QTv(9_AY z9~Yo7OMcPIjHGL8%kBs|SQ(5oY6CvWa~Q!eQCyw~6q>^Q6FxF0voYmm2I5NK{nzve zO(@6yx>uBHcRw}K(8%=M=dASd^7<831A|edl$4bG>dx37KP*r<(>oR8Ca0v%T1W;z z4hu{A_U+q&!F=dLYRTAgf?oit46RKqmJH*-fR5^N`C3o&lOg(#{58`M$jh609`{?6TM?& zsTg;Rw!b1Zh3%swG$rqK&I1RYU);O=^W`;y1{~*6pAd}>O#GzDb`}<%(3<`!$SZ6` z2gvezedA=ehHO)+PAa=fEE@;Mkf$lIL8fl`mhzW1`ka+@ejXf)TwJTC0rLW&YU@;3cxb`?bBI6 zCC+YI>Nn?|RLi+v6U2L#R8kAm!^g)zryoB3r)ZC&#Lo6gs3NX$n1 z|mk7MBY?E(y3+WgC%`a}sbfOVMZp7UU->dHG8=Ha3r^+Oo|% z&W!Nz@;=Vr@%Fe$8Dr1T0qI0U|ZaQ}R`dTpV4& zN9D@bj@&nfK;r-O>0uq64rBL&cy6{Gl9uoIPn=Kz2v)guD-M;4wc4ln*%WX&m6XWAbU`N8r)RHbM0XW)vjiE3zYKVJ=H|Ur3dIkB;RM$N?m}WCCbVX>%uS zBbRI5GuD*Z|DllJS6Y_EmXx>uX-xm00ABx}$n5`&3%LHiZA}HO`(=SMtH3*>7}9uo z?ezGLjbyBMV!It4Zcc6XXIH_d2{6z9H{eo@>T4k2asx#nvI)S6GTY&<0}|px_DFBV zlg1bs1~Jt5fYBczNH-KXS{Gu0{S(PL0m04I7{E7-xk<`yf0hxiB!yxRMQnW$` zM8QWx^0Rj$oBNcZ5@c6@JLt_H!EAs{T0kgpnR^KlIlOHBh7CgimX05`gY6=0mP$Bz zn`>%JmRx60&V0PT_25*CK_rOw==V=gfR&Dki4oGqZ`jiGsJFN5xo^A`7^neSYa<@C zJO?g;v#Y3_e z{gGwT@*FTtM4L+^<0Bat{6%M{#-VtKoC_#)!^*g{@>HQiaHphELzgn*;h!k98eT|k zr&ywfRzq8Dl$q z_HJBrEkmYQ>{>r-o5iQ|nLqDG1TE;)_XC9Wo!$R4!at zZFF?h=|{=W599L^pF~7(OGrpyIaGi+Y3w849J3Zd2I7*(+!->i9=^*a&0VTpYcE27 z#t=f`?;TPm7e-a@&*|^Re1h65JS0^KbsZ`VRSM?dkOu2&XK72WQ_T8J)B4qoQd*=_ zOr-s&<}O{LxEGF>?I9#ZU-uC8b|$#p0WPkZ@vluVOAPvmj6Oo*K~YfF_9uCgsGzNy z)=Efx$y)iBAew!8F8R;~bkjvYD8~CyD>A54*P)(_qdLPi$%7Ys8nF0|n46n>{P`!F zfWW1?G0JZj&Y#cAI!V5dO?P8Tt^?5$-fkBB_WJjqFv?FV0~VKG+ko=VDWlH6=dM~y zE)R#I9r%Fa+~-<5W*N#?ttUt!viwLW;ySWUa!u zZ~!P_$dCLos`@}q|BW)QT?>#uZBcOM<&k^SuuVEJ$#X;2S4-6v`-_U8`K^RsT|spG zPk3XFj$Wlk;*|3EH@TNHjRN35i3O{kfYLPqB53`Tkad4f+;Qryobh5r!!#>iw)@+y zK*iYFQenky2@CIkxv|{8)x|tS-E@yLO9b2qA%+W=XIe`YsRM9Z#beci)H`H4A|oS- z__32qgAF1Xim+Z@35%b-TASwi(FrYH@#36#b zEd@pf3G=bA{b&*@QjP-$-joLP^Zb>oAtF9WO-)U#BKMG9Ka;L?uQS9K_(e}&KLM;? zpxCzZ%Kx}FUFPQJD{5EPZD6S*$4l7PmU-M>g@{{*a)W~cH&I}!Xn-wyn<4cI8i8}+$SO?A20jX z<12B=cdr;=eq%(QJ+jVzTJgmoIi!y$Fdkv`? z>f`f>5OXQ%@_67vH57HoY&QMXyE38H*V-XbT>_npQH+5H>K4$W`gaj{NB{ukdB_df zxUhCE7rPbib^7+Ks;n6X9UzmUgd)WB1K3F|BX(j-Ki(4Blc-t7t&sDEqJ72dhzSd1 zHalo^P_ds7%qF$YYifq|1g8UkVcwh68mT$<(s_#-k2bT~>A1cR;Ue_E{br%&3dUWL z$dlOXd^g|!Ha*s%1G2C-(-e~fiC2OcYY0bh!oUZ?5=xT4OCayx(pXNyZn9WjSK{I4 zT02%^8MGZv57b5mPA%F}kP@8WLa~L|qp7BY;FqAD8u2_jnjXm#+PTq0Z^inM>@yy; zd82v58PNG%TJe_U;ZT&wh(u-V!-hrLfo7C}_lO1WfkYGsd30FDDxeoO9vT<@I zo-$2OPbaJ@Ht}-EQ|ewjw9B6Ug9mobQ*JGM{LOvh3%f9oM6$s2 z4MRO5X=~fIZ5a;ZH>8xI(5gnC-wYX7%1_&&Ykj6sqcq%IMCm3*r;(0goj*2g=9rqL zj_slKCHyRe1~DrbFDn*ZCD|OqN0=x~f~Tiv9Ry(55spYHOG|qq)^(g71L1t@M`wvJ zzyvW{!R3~GCH-)1s1O;^Q&+B?C}UJ-xGqUhQJP-Wzv7+qNM^I9s#?j5e~;RmOG45=e+W&xASC;ffvNWCn~i zt-BzX!n~m^umW|}%G%ocv?RHMq8-xcah#yscz<8}?EF zYo>XJwsn6sQ9iXaw~{;D?hJW|Y01r7NB;JjB}a&gc>awu*zCj9y-4?!+}Ebj&!2m~ zqynnfF&k6dZ#5+aqg3?b&6O`cS)-rME+Ud2lt_m4cG|CquNL(_J*g+q#zh4RgX2)a_;yQ#c3+j-F~ zM;H#C_fmvI)Mu|42RxTpu5z50l88yg|Iwq)p$YOOQLr@2#$*1&iT}PlD&a3=px$)Qq`#ZX`f(~akVI@# zACXNA@1Ur1!DvF9IAx5)MjLYM`W-^VqfXIja)XjW?6*XRZ#B!81K->XIW`IIl>{)b z>$T1Pz9l-=){@n;&zx)tgtC15u_o~OHuZ9X74`KhWkHFwDY@~=F`lHV25`_8NVXqq z7q;&A>aUF)V{C@PMN$RK4radxmN1Zb#O6ZoMWG$&#wH-e3EYTLz^iJY0{mDvGo4ff z!g{AObOM-;R98SM5X6QxTay4X;fb-?-JEM}0K_TKQ3T@;9H669Bwir%Vi}k3b(V!3 ztB7a{!!A<~#yA<+RZC3=&Vk1;DG}Qm+*mc?BI;10D>FyB-rj>5^&21ev15wJtRL)m zVJX0NYh8e(Y^%mky>|e1=&PF*+lYCHmml3Zver4stxxaZ(@Ellk`_Tqcov^U5gp0dsKt!yAG*86DwX@d1?nH7WD*^c#N-N2^uvaxr~aD2^@lup4a#E zDj;;Q%fKWYB+t&?V@d_1$DmS5K6Fj2PfP2RVb-lr2Pj?eS_9$9{iEezBCHk}iH$8T zu8NwGw*7uErId|}OU_Rf_F0!!vLKO@01BVNEBp*eg#Lmf^`27enr}e$iYA6y{Me}O zg;c}{u@}G+e^JMEIsmveHY|)O)3E;h&vbjMts{`jL1l;(l8;AayxgVhmH3ct)7@Wp zJ;#bdWKlyH(f@rw1cs#p2M#n)6j%^}xtj$byM97o;I1y(*=k5EvN= zx{>?!*5(_>VDhhtl+Zyk%uo2pA%&3lk(d-vpA59QD0Th!aDW< zOk1c75@3+w*uVeu_3PKw+b)3GCF~HkB!8^{l|5S4kfwsasslMYpJ8x~py+|9P9-im zD5Nre08G7ugY5q?0{rJJE4MQ>^mR&ut0tx1MZX)my5VICAU=ND@arR1R9A7DxvSx? zT>n$%wN#A=k2IHQ!S{RQ++xC?|4JkOE2M7f%l+;Je#sum+82q*IAl`GD-742T*x zB`HOUyOM?k6q!=!KvIQxoe5g;MiQANnxwb-Uc4#X&y(h0q9e9NvYp}GQAsg{9XpxW zyy0>6v4no03`%ec49?D5La2U`fmM(^0fjcj*x^P|NxBlPwxA`w>gwuPrQipyNUuSG z_8+DH4C*?0nLwofr1upSpFoT@qOS#xVAfhYLg|AgsLy%*`V=_9leLauQvCx0`WWRE z6pCl=keL1Y0MU!!c}hS+Hv%n$mMv7xSo2J&@R-mqP#K-qY8z8ZuYG=bJw(F2h%i4y zzG)SJ!43+)Ooo-4Wmka)9Hh=h%=+g4VMF%h$Txy5g--Zi*6?S<$-KM{ z*q9>u4S4f0D~zPV-jV3w*zhakJ}G!Alya?BMSirw&?pxvu0`0&2*>_i1W%&Pt!nnJ zJdI)ya53pfA%$#XqPjXP6@-x>OPDTfwB>h?xCtlE?0YvVxve)h@(PDCc#f(?6BuXW*gG$u_j9Z7hSuT~5 z#aQ|PS1aPBVed&G{eQsp^7ZJwBd8jkAK+C#{NuI*xC4eJ7SL#jyd$;;tb%OBqK=1E z!_op$PDL)T)IGc-^j{isaBwhrWVGt_4Gvz3bG-+3q^c@Wad92Z5*_r_eNuS;KsY>O zjzl<|!QQj!7!A5Kp-*dBo;;h6fJG|)lIBalX#YwtZ3TFX!~nr1?n!d%&a z7bdTV=k+<5%=YLn>%>lJ9R^>Yov|=W59JO-)I%%Tv2*98I9G;#B~5pCcQV3?3u_f~ z2>W`+nEf4az2a90Xbs|d&z349t!>#4X@6O7&n5Hqw8Q$N_o;OCbr@V~lvPx0-F2gR zU$v)j$GqF~}yVAVm$ODLF*k`Z5#&9AJSXu9#Wq0 zw;e5T6LZomX-s%Os$GI78~Ralkai*~mpCaDe{nmxap-ThJho-(Vu6W+Q#kL|-qiYk3gb#Ojs;t2XmX^X z=dyJnRR#nFU5;}_=a&(TBVd~XC=`Qd(|h*r)xPDr2EpX7q_@_C^FJlfLr;)o^Y>X;-S8l6erM-3^cx|t@pR0V9(P%X{qUxo=>Zs-b>Mbt)nmAFW^>I=_+M`X6Jm%#1_$h)3N?WEMD- zM~1A(uU_k&>^9;>P;W+`ULsKzKt~f3H&7eltWoHQHvc_w@}!_u4GH@FR!y#0aEnHt zUp}MCeT1MVyp$`*-rRpmp*z(dkZ(~;f;nPc4qBcF!7EDf{hJ@o^OZ2UgiQl#=^6p^ z_9TS50iibJLbGfJT}kT4;q#RI4lzysg3RB1yTs;2dMZgrZ=}n_16D%-b=pmvRA7Lx zMa!ZqRJH}^LYXM#)eEUv)q~-C3HxUa?o~&Ob1Qnwou-(oV<-YQl_SC(2vZHdICzuKmDzLDO69-Fs$w@ z(Y3_&x8GP>u7>Ekm!kECmK4=~#5%&DPAWuyaf*C6DSZ>Gz!xE+R06^f+6mP%mV|ns zN&sE&=Lne7#JJd zU3#9WsXWDOiX5*@qxo*+pEoSc(h@ycH?(`{FKOoQHqqaWuVuFqgCKZ!u(3NhvP}KY zn>4c}f6h|cX<>bsy!Y)G%YUQDYOfKGwvw(Be+OkH?y6aCU&vzamkwQ6@6aF@f(}53nyS0}zrjLx zJ4STs1up$4#4cGhF4|X2DCKNSVcUt8eN==&=Y5#ikt8v4m@zKxg3HkA!eM{0 zovaZYM!SJVj>R)ne55@c452!Lzuybc6^YoK=(l{zYT90K1p`OAu$ilNp;H%)d{?8K zOaxl>Qo$=p`H}83I7^Aa66=ig22a;3NC@?_pm`iHG*&@kS(SJ|(K(LhrD&ijp)Y87 zFr53*MMe>7noWv~5`+upKfmk>X^NjJHYFe)L-hnNik2}Utp)#_J1)M`!kn%Q(0rIqPovud zeYYy0y+{i?n$Y7AVJ48)fmX#=m#is{20&pzqU0g)Qp6WPxer zqVR+j`ssrZs1#*oy)X~N0y0Q?Vo>Nrj|B1RvT8YAJyv$BI*6AB(@DQ`XDpWa z_q2sgX-lAwIUzD57;^n^`rTt!6yv*h?--#;Og5+}1fwT-62;qYsaQOsKKKoN#N1eD za)%EeF8hl1Bl35BES*@4k^a)$_&?gH!M_{8ooDXFtB+V+28UpVNlV?UFyy6RxOY}P zrGRAs%zU$$xPDdkGI(WCqciR<$K;4AEd)CxzT%kfx@eaU(s!~>hDRv&9@=jZp<(th zu>1b`I?-&%g-?%O>ArQa0#$D#Ib=W|rlNk#IKP>hnLccB>l2=_rhgI0g)j|=TMdpi zs0NW)gF>SQ-CKrkiz9+h9zVX0%CkC9$8GSIJBmsbnC>Q*XFK-j(q@SjpqR%fq7;)u z>0FHtwOe3auMx-fc4lT%bPq6%Y)bQ99oAVr4!KAl_6#(Vis>WYmziaU{`u!RT`yjU zvE(o1Ebd>?j}QvQI2hIO!HO{S)uSZ|tlKp*MZ|=V4%6fb$BCON@ydsKa8STyc}%Gs z5Re?OR0|pz=i#8J!8@cHhVP!l)6gp;xB}t4J-)xJ`|LNkg3c(^=2R=@N4U8C>_=4I5LK}>AKf^#~6%b8`A+DCeh0j z3h|`o&%1X+uphA8f>A%m!}ei_6H-vjdA9&jnMXw-likPQ_u^`cNHJ+qfj2V!ra6tf%JbBLjY zzVrb0lcs%}txwlO35(+8nXBbFU{nuQU@XgdN6AqOpz`g06*O=EDjRgHgi%)(b6$g> za|>RU8u*>6VFmDJ#g_Sym;lXK`vh_^bw0`%(^1m*3=bQlr)Rh!1xl_yI!w!gI@|~0 z-VFx6DW9T5I8}~s`hk2I3x&Qvy;j^>RszZNmn~ZaQVS-eBZfP%dU^e1_4WJdhjEL{ zT!;@7VS91x0Zu#V=1YML3Q&aQe#fy`%=Gea%kE3%vnzz5Qbq;IC8zv<( z2lZAPwlLiSdx>REIMG zy?Ymgxh@wjxU2&|m~PI#j%dFRMjamDFBqlt(YiRF1%f8jvHQUh9QcD?sohfg*a*2< z(Ep1EKSkfG&v{s4i-0EI14K8Jv8-hiV|pE)g;->6pJP`P8U9#+8UsdQd@{#oU=@sS z8Tw6J;4JY8ITVc0Uh?TMJA1`Nt3Mb0s*PH|#eBZ^-kGJl+uji&RNgdYhbE8P5$+Z7 zfX2kVRWCa*QFFq;*4cKaNrDZW!*$y6+L>up>8qc5IfUQr+{<~*p*7cMsv|4eH{_ue7bIc(V2BTqSnlpIQ$z(EF&u@6?$$00sCpy(`rnk`Yt;V2b zl>lXAmMY#9%wz)mRP_dt9Rfwpvu1iXZ^mI~%Xh$qF#m2`3}?KMHl6UN%L60H`%L$` zFOf42Ecg2FS<9+{$ALyF(E*gSzB`kdE>JH9o!U$b6AQQ37~Nz3}MC^g02@nA*v_;S?2ws%d~Y;&l9k zy*h=Xm3BC+6dx#_bz7J+l&Zsd4$-h9oy<%}pOQv7pp6ashlUUtKE3hSL@EpT;tzHh zI~*!HsQy;E!-K@C(=c{5y^wmcW7jUy^=;Jq{;^N!R8DTLAx;9(z=lRbeU3Y;;HZaH z3IaB;;P-@%MIB;6gobpMbOsYs&xO5?=e8e~{fNcPbJafZh6op9qG|N^vzk}1dZ00J zFCJ9RwdxBSJ+zO0#QPIzvAliz_JLuRQut)pln{d{SWJVM7yG3 zSS*gVh*MA14uKzm-uUQy;R@3h2(2*pUyYdl!Cawr-Ic*A9UbYUg8}JM4f9K&JWMb3 z@!mkcAd$$q2!!K@U(07tT26kx2(x6Zf}3e-2A2bnFRFMalobdnQD75|u=(b>d9X{s zjA{V16pe6e%>epS6;eGN^kEOi>H!3Ngm0?l5>JWvyVV`#;(wy+8O!Dc_+pXFUp8(e zge=qBmX;QI!9APk=*Sr{{y{)(-H$u=Mge!c7(W{HatDHZ=WdRxE z_Mg4`4c*XWe`f&mk;VX2Y-nxl)Nx&uCx%}%#cLv@UIGRpLK>i2OMDHW>U1S%>Ma<9 zonTtwhk*kv8gJrjApKK4R`|tkAXIWl6mB4+iCC+im}sxp+qboptsy^8(4L?i>_dOC>j|V64FyW!pBtG3QNia^v}?JO7|FLLKxa z-#!)P966FpIMcbygJBB&qlQS~q~ZZh86F{b_1T&AVrb66f(YNXeLFemk9hk8zgnFA zz1iBZoUG7h@pG6s{FsB{NKRWImDd6aM1M4PVWph(s6$jIho``+d5@`eGV1gnR$|gF zF?~1@iVdyogK;ONj|FO9e|Ws7mZ4jxApUjfo(#q(i<^0|l1%XeLww{2tMh)yUshhm zUozrxya0!Vn4gs^*wSWTIhb=C;YT2+2oSg#52>2qD<;A8isTeHf7);qz{$Iqq#7u_ zMtC#tHZwtR7PfhxPMHl~!@icc)g)Mvlnh?jZsW7Ff~b+KWH+H9AEgsNNo(U16UR|3 z>BET`n0yZqxE0J&#pe+_;Oe2AmJ5aknWlA&x)@O^P{mge3`uZjLOG-EXz{9>3Iz2k zv!(0R0onIt%#B{TuewcU7cbY4a~0<1=7RD^^QxF2!F9~e515ML^eovBz6u;&_fa)Y zv1Hx4bwRMAh9WtNd~sQxZYFgksZv1SlSAmfrA;pZI);Gl*sY+TK&rq=2-Lz&&L||H zSUAf9!IPIGpcM8T&W|-0QZnR$d8!ZkirygpAA)jW|1zO!LZSThz0Rt2S4Q$5wble9 z@amJJ!jSgmFxAz7xW?F0136uFGb62XSO9W37>OK}04&#!%x6>W4&w?r9|8xLjeJ|| zt_g~04<#frtnsrMrdzF9AP11HI;iUHH&8 z*pDC8EMZw+^2yUvRpWneP&lQG(SYv~ z;2_u_l(=4SURH-2Np|EEn7cp!${2+#w^Q01B(oZ6OJgNgm46tm5@kT(yPtuMbjlCA z28Vn|FTWk~=Eb>|cZl(}Gl5X9G0Hfqaj)x?k~fo(GI(Vor4#&1&ZH#WdtleFe8tF7 zR?4FkTDbR#+yb7;O2Rs71g4lhXlEW`>$;0U@C8Tm|M$L~pczs(?VO z;w^-0&uO|*o%t;>72psY8!E6w0tA4AW?&{&hl6Gk2zgmvegVOXdVCx9Vfhk6M>9Ys z8uz&J+fq=gXua|Q=KTiLrGkx1SW09fY@BHhalAJzky90oh*6T5JdqaTfSXle<@-d| zBX;sF&>U3D5l+wJJb17t&9OQ8Dg|ywC>__o6gZ{>IHbBS59`RA7A;N4;2@3jJcUz! z!~q8!Fx;`aVqe4$>T(dp$tNPJARZ6CD&MPuiZRn=-bzXtbRc3W3LYC9U>H)_fZ{(S z1>lrR+8D7kr2IZaN~B`l;!q(s(m0i2-XV??g*wyv$XQ>cstLeB5pi*GoK53jt!oWI zFcGGi9P|SOfzI32geG)5dX!TA7*M?5?A)^_k(h}!bCvyYI4c+W9sprwsJh7@y4SFc z@`xOdz9B-clFkwioXkf^YjkIkw8!My4uYK=P}UP?0>;7yyJ!%TZI?kxD{?RhL@b<7 z*Dnhh0PS{@@LI&+9^Z(W4#}5!@>djPME*piDFW+Ecwllo7)j|k0w@kt0Xlg<;^p`q zeq2M5_YJ|gYTDHthyls25GRft0s#py5{D;Ig5l|(l!^1$l zHaIDc>h7;kyP9#!QqA_)UB}N6=9So8eBGDM!b4Lr3E5DwfgB-%6CI?n+QaUe;(XVf zhk`dC0kJ=I;?|}tAk`4=S-u{`Fe?%BK!V3(-H?N*h)I$hi9<{^$isL>EguUfw3(2z z5%Gg2IFDm-&KEITA$UUP2vb=_Utd9jFzIvv17?hNA&oqncy#MU0d@;(xo?62f}An% z2nEGP)ar1MBBMPr4n<>4UrWC-{Ih;-X6mro9(3sk&3hi8zn<(L9Q&n&0Hg%!MB8Ot z61^8%)Ds4wtdeuZc1ySsZ|$MMSrw1e7g4rI_i^s4D?^}8Na+QJ$rHiP;uq44p35li zlJh0YG!ZnqnwZnnM{-~uvGxgoK>G-GfSehbY1(=z(sd>nm1ry~oZc@K9DzrUyAYfC ztV<*`a(EZ|m6Ej!H6WRgFM83DT1(Iy+Fhccsh8)VM@NQ0pJ?(7RVd!fi{@hqQXuCx zA^_xfJ9A!SCMRIQSV7JR#u*`our7fUoJ&mHPIKG%4L=T?>3xoc<%B@N52BRxIm$de z`U#76xFHsc*=aO)fI8=(X1)}=7sC$dXI_lE*At-%G#*O5IKW4;xnQ~Izg3^2B|<$E zZ*!qTdb~`k`DXMmqCnLD5Jt}HFa(djUi^Slj4-%8Vk;riB&x*%z literal 0 HcmV?d00001 diff --git a/assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png b/assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png index ca8010d4145266b455c1bbc544ac131a3c2f91e5..25d954f82427173ac26affa4e21e5e33502feb7c 100644 GIT binary patch literal 25894 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 literal 21537 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 AmH+?% literal 23369 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 F{ue*+1R?+c diff --git a/assets/images/gsoc24/scenario_perception_pipeline_blog.png b/assets/images/gsoc24/scenario_perception_pipeline_blog.png index 7839c290bf6162e91ba0eb3201eda8cf9986ef9f..9aafa6d7f19d941278e62af828b98188613eff31 100644 GIT binary patch literal 21543 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 literal 20529 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 Date: Mon, 26 Aug 2024 11:31:25 +0300 Subject: [PATCH 09/13] Added necessary script --- ...SoC-2024-Zenoh-Support-and-Benchmarking.md | 2 +- .../scenario_basic_topic_sub_pub_blog.png | Bin 25894 -> 26086 bytes .../scenario_perception_pipeline_blog.png | Bin 21543 -> 26176 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index d44a2e977..7e5a3085e 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -65,7 +65,7 @@ Finally, the benchmarks have been conducted in a way to give the reliable compar ## Achievements -We have benchmarked the middlewares against various scenarios and we have found below benchmark results. We have used default configurations of rmw_zenoh except the fact that we configured some tcp settings like below: +We have benchmarked the middlewares against various scenarios using [this script](https://github.com/CihatAltiparmak/moveit_middleware_benchmark/blob/24-Aug-2024-demonstration/scripts/run_all_benchmarks.sh) and we have found below benchmark results. We have used default configurations of rmw_zenoh except the fact that we configured some tcp settings like below: ```sh # for rmw_zenoh diff --git a/assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png b/assets/images/gsoc24/scenario_basic_topic_sub_pub_blog.png index 25d954f82427173ac26affa4e21e5e33502feb7c..5aecfc6cbbed088e9e1899b274d249a162a10d5b 100644 GIT binary patch literal 26086 zcmeFaXIPbI*DZ<~HMS5H>_DQR6a|r@pnxS7KsvY-DJlvA(wiVfjU^(2B7)KtVNqle zrFVl0Dk9RQi!@=0Nbj)6TzTK`d*Ab&vd=mD$G-MCxvm7uD$jF2_dVyBV~ja-LsR|W zl7(v)a&d7jQ9ksWHW$~N2rjN!pMIQ&KUqIsy9Yny9QPk})Uh#jbUA5%hD+_FqwP5x z$8+YVesMly?_h3YEhR1|zIF32XB{1F9poh>tp4K#;x_hX64E~$O2daNusw9lfs2d# zB>g)pR*7lO#dStU`L{i~=R3q1WHNlc{kxeZNl5#x!}gi4QJ=i|bF#)r^&#UkQ)>hR#L`$ca}lg(fLv6Lmg&tLlV>z}V)y~^vBFB_tEccYrQ(aLT0m$+5TZ-sQx*=Fd!D z$ekLlmz(zie|>LDam|(dXKph&y?GOrNybXGJb6{5*4vQj zutv(%r=XzVbb7sBv(qbH*ek2%XaQ*>*|UNma(+xc=tfPLc%B~wln;K z`qHIK`v(Se#`@cNSFeua6+3d8Z8<$T=KaSXxBdM5+&w(1GVDy4J)!k7PGhcK{o70m z7t2^w9x^gAia+}Fk$&2_xKhQ5cajR}mYb4UOW(a=MtH`L53!41yx512)=#y#S1~yG z^}^V({9pH7dtG0Dd_FgSWlwsuxPXAbl2u!ODavYXZ9S7*JJ_9&)NMR79<+DgzII%w zFW*j!&i7&J9(j1C{?j=dCE53cn3js^R`oF~!|b;;HH@aFrmXhB<0&U!%wx*V9b4Qc zWLe)^n|#n?V)$NCQj#cx^`tE7AiLn|qS|WL_n~sN67)Wisz zmHkco#EHmVyLRd3x;YK8Yc$MC!%Jjm@Fu4hOSZqp(rZN>(9b#lv|=!nHMV%sq6$8j zhKDki)vizh1AKy;r049?e&q!jeG&;X0*{rlfUYl$Gyn~9f z0?zyG>i;8eyj$$nD#^V|*2-4K=`d4FOV+%4^(t=v%@tV62j4PUf0{dYuKD1XvW1Hm z>lzq@=1qLtd5d2`-#^8&Mm*J~*{CXBuR=#dA-cc4n0-?sPqQ>!VQ8qvIDwI5q+YyE z&i=9JkteY?mTwYOR5Yq!YSjF(bi?3SXT;9BcMqfvV#U^Mw+_w8%^kw7>B{U3*HKaN zHgav}WlpPy$wy;hLGSdcdI~)KkyEde*Eoc7J&C#kDt$jfUL2zF!m+5fa)j;Qsy6_(*Tk zb$+))c%&8A1w3QFd^u}Xm!ez}EOS?I%ki|s^xiG$4UdA1+?4%!R<2~GTGkjnWliQN zxjvAw3_NgaO>}l|Uj5Q-&R;)1ytQ_FchiO5EgxjxJhN|C@t7X#Tq9!<@YOlH$+eTu zsjGZ{h^&=;L##-WN765Bm#%W5{Ra;w?7RMx+fWswy}jM()p*DIump$B_vWMDTe56h zE;pTTUDD`2P%_>gWUQNNp{FqU{e`^q*ZVlCF&c_vf~7-^sg^-drYD%^bhBXv|90nV58+*Pme1oVO6WB*nafHfHWvM+nyFu`vTH1eQ;hpwWcqT4{pcBdLc7m;6o z-Gi`{_u2lZbvq)l5XW&dRiFO)eW>i9fcfj&zv8%RMjf~%sC>|mUk_`H10{X3;D>t> z#zt8ESQMMOm8tgnZj z-ZGL}W8~md{QC7)>;);kcwNbr5=PR6lbK7TwrvaTP{96*(@%|e{d8&my4C}J{8k7_ zCDE!u_J$qaykb6r$){c|JlIU3sXXc+cSWpLlvvv8UFZMAjg`oHetvnQqc>k%XtlCw zao`qTyX)Knvi$t~F*q&0c8t0apEon(OZazvJhV+iVMsUJNkHE5^`ULy;o%*x?`-hx zTf5y_+W+0hrzU)@*SH13ts1AZe3x%hcU(O3wYDN7J3Hj}`P}k_xX*W^qoemjth3%o zvVMuUlyll@VrOqoh52NZpQ44}g9xwbTJtajmatB@wsZ{>A6j+1)p_xZ$4o<-Rmh#w zd6WIcVyx?et>3;`;~9TiH8N1Dv{u=)&}X%;-Ld*_A0F;gmpQa8;Ygyr&ra9=$4~2f zI-VBsJNT@{k$+ly&a^(w%GVCtaoasny|>kyxH1+p8v}Ra_1Yuf8hO{P+Z<97b9K?m z6&Zd)s)4a;A+r5_eOkMBU;LKE7FVy`^HlHQ-nmu{8CpfYe8sX>_%wOPFSqgSQ44uR zcc>N1&+QxRsu=HLMpUNT7>Dh2QCC)0MmjG?5aZ$FOQcx(r7TK)V7gUc##a8SzrKQqZu^HE{k<>uyUPK=ytzd-m*5Bkb#d!A_?@FTJP( zOPDP4K#$u~;EZ;5$6lPNBaK;3dNDo& zUcD_XExuiIm#$m)1PN;AEu^JzLAj|t-K~B~NAUdwf8O2`6Z_?t-8WZkvDf#bKsVG~ zrBlN))I$PR`2KuOEz5Nx8-ahUukEhJTObB{2KWLQ_fgwK!|dVU@h8XAt<&u2ZTkAb zt#yTBJr}h9s!lpr`z+olcU-2%MaJvUB%av4z`z(_5wnmL{QRtU?+yb=*r>M-&?CxE zQthcr)r&d&z;Zn5?8(7n$);)ueCm{|Ca0!&v8B_SJ$Dwd6=w1j9xJ6Qd!`-q>`-tY z{j<9=?rx%?dMnp+y&oflG;!fW1&bt3XV2TBdf>pdLO+2dtVk=9E-xL(C50!M9vsT5|;tE0^VcaV;BK++!}nrt<+{Y z{iNuqkAM! z_m||j4iFlzVi_J6@Em=(Lc-|Dnc~2%ju0DXeLqpX__K5sSQMwuFc*tg-n`v)sR{GA z`OmrD!gH+4c1h|ejY#^5PyP!#DgVgzpZL~!?YeERD$_V!^ zwUOirUb^AH*{SiNU?s0SO74mt^HlXZlZ8EK4n8Jl45$^pr z9zA-rIXhbEL~3N@FAC#dqVzLtAL1$>V`s4=W+s`f(i!2d-t)? zQJ&cF`}bFc$vdeybi6A=v~nuqa}h>Xvvd4narN3Yi<#-E+5*dJ^PGndAI|Lto->j6 zn$D@n0H9R%Z~ZC3*kkA(9&Ys9MJv7lnCUn=rqE~SIK)yh;?m1vVC_!bZDNv1<* z_w!40PJ^4Fepsdep_gj`r*Te zbxH>_J<_MyWWv=C$jr(6#lQ13_NFKQ0z`Sy)pjxC#?&`OEdk2RKyf}uQq&hP?e23lM2#?_h$eh0z z8#i0VkEl$0u72aQT1xQEQ}MjKy#A4q(&5+;F^};6ZYd>gZEZ)~7Sj%K=g5O?XY3o9 ziOUdoP=ru)KsMKis75*EX2|BcDAuAS7X1#-=23Bw#7|kOC$pdmHSE`1Jogamj6{JKDN2s|!dd zSk574jqJJD%1YgX#@vddk?IkOi6J(5$FRL?kbEhQVhg^rQ|oSSADMbnOb_Y#^W9WG zp=#4ZUDf2q-hx9|@>C58g1ITeT^rwA4)hp+oZ-^!!9aE?9yU<#DrHMYMMZ`2r>G+&{sF1Lk)4=s(f0a|@4>`MKp$+c4wvm0AN?h>z4q16`Zp+l zw)?h#1X&AwkII!l*=xp=S%YMCOR{j+z&oiJSn?r-n8QWSFjAy}AP| z!*-kx8B{DWNPIEo6)_!QE=_h8=_qd<@U8N7(&ptayO#b~xXR)Cr#(_z%i4^y)3WmxBP*5ffs)4OmsyIlHlvWmvy!dbG6zNlLv3ER}^d2r|O)-8D%z z9VH<_?5HEC9<1?8v+n9d_R-$_>ab=H2_^RS^WRVCVAa2DnJ$?}Sdu)3J&=m%hl)+i|{(cg^^_gJcj z?|OiX?5{90^3xv!5Gk3%z3YTU4a*9=$YG$*!zd|B{FJ7@RBBXD_q%xYD&cw^+0|R> zbL2dRLCKf`ywY0Y0B*+vld{Phi@9@p+4AKM9}Bo_J!*YgEQb8wnI?DPlxl&p0D8~W zK+*>+6=l|^%~YBADa7E&o<)fDwJY)yVA$IJSR>YEW9$`yn zXN6jBGcOlZ3*U7N%wIMzo1vllQ)$z8t0+&XsHv3<74GM<&9yBtTM!T&9N$x)zLPbv z14T`mO*0EA7?-LsXWrruk$ZkmIq}zQK6%GOU=7NtZa-VLURgWcx-rFdz*J#oa)7W% znssA53KnDRB8#S+%tbYexwzUkDkwCXk0SSs1FBX&+&BO7ri<$@St_bV0*S?fU+`_g zUR3r6rg|dh&_RjRt>x;T}Z>o2Mm0tBVfoOf9t$4Q;*?VGq;@Z^sXj6| zsEa_KWU`;pi$Czbbu0H&2#%bHu<#doy(^QW*os4do<>jA06tMW*oBGC<}%>^C)b|Q z^7G&1yTQP*%co6EyMfqH*0!81#~<$&_mPx$`4)<}p%=5bsFk&{z-)p2*N>7{uUyH< z!qel5JUR*@l6XHxke0>IimE?@lT`Nd`~wt&p}`WoLQ^{W@nZn2mwi*KYv#8k|L{h> zs=B5oh$8~DT~e)LNvPYBF7p3E7+_Ra&81Jc4Q}@d;j_`cR^(sp)2AOdG&C3(uFyQY zqn|{FjE|S+F4ASH^ErKMIEFo*gu8o!JaqQ2%X3-cON6C4%kumx@kc}v0ajEax#87v zl&R^rNb_o3`){0-DqO`_d8y!zzyErK0fN;)CoJ*#_!id;_pxWFaiWmyEn5n%it2QD z6%ugc9gxIevSnh~~ zmS~h)x1V?R)$5!U%Xp2GE2O-=!FHc-MRK88>Ktz=j(+lK{hmF0{2zl>=-8oP>3(Eq zK@8yZ*lI{aCC)R2^Nobsa>Q zuy4-wxMGiyMi*lJGHZWUxx!HrxVVH%+(y17CgqK*_$dtE2X5(HWsLF`Y*~IEX@>&19qy*RJWbd^4;+c$& z|HrzJD=)Eum*&im$9e3>(LgLrMang(FM9d%wQ2I13j~f+FW`{zu2`{=o0~h;x=|nT zEMa!{Z0`^$v-h#6Sh|rBJV#sRQ^k(L25kMQ@PTiQ*$g~t-xd^qJ3OZ+ z2TDnNC<&F*Nj#oj4aiP~Z|;Q=`P4c1#EYL_oBBwy#2@W&?T%xnAQ@vFy;R^A zxtl`_f3L7!^aV1A9*CMMriOrCoc4aC;+iMNlKW+Bl1)o^cz7P;1NAIxSWZ6q2z98W zd3kx;S21D^uin3Zzd7&MFrb>DUST`PMQUBTL8$kats6D$- zZNGO4N6ARHYwR_Zng{9y!5|g{Hwid`;3Snn@EifN6V{Oc=^~B2cgCVF#hj?woV|PZ zE;JLO%a6QmS7$W~0#pK?jy{sENdtf*l0}CYfAnNFl#6%-F-i%J2sZ$nYG9Cbh|IAH zKmU0Ff~q!%#dlBrP%WJ~eR{_=9c^u%Wy=b>Xw9GV+SVmn+O{QMynOj`<)0__G3`)` zs~kEctf>UlSC0K5s60JAO|=JT{?NKmR2`QtUCJCjnO+ZenmtH@<;6#Td_T4uIj^QE z_d-}9exbpsY0VIB5nTKSJIgBn_~XYd#(52r3Q|%!C@Ng!myzbn^@K~Ue*O);n-3z*8>2RSi%&?F72XS z*ufQGsR^+X0Y!QQ@TC)gz43?>391(h4vcP&Tx*k~)$BfSYvbYjk)07#*R}ORvZZaw|0hISy7~VR!gbCRwC8V5d~}6KQyF=EuMP%%`&Deig15mRX3TlAD(yX(V4l(e)J?^k+3yn zxTxWtdeUCT0jzm`{y7qLD@mrA?~?%rNlm3qhqw|6)gj@+$hW!-yQtvpHs8*IuiZco z-M8i08P^MRcL9qZhs<{CiVni@d4!kmEX1=P@E$k}(ZT#Yve^ZS%&@Bd^>80?qT7kT0Z= z4faV3vC9br1i@G2vARqLrn|el{nt&9hEP%YwgdzOSRT(@CcI^f+J)h-B9)326&1V! z0!he)cmgZ*^OvlVz8w_AcsN8!n@332#K+EQ>8l$cqDYfPX)9MqS3yNSK)^ugOmeAW z#XfF@$3#|mdwai4HMF;Xh7xFKoSkI(<-&zMGEUo#S zTQL@-MZfo7I{x%XQN(v)BW0#N*n09Z5Ju-J=m=Ve4jl@23fPES(mZ$W+{5A3(EkwU zfU{i}a&t?hcxGlx;yYEg6`0MU8XlX%X-ztKGLUvgc6nevo86!fNqbGZx3}JA@S=D-`~3D_jya~7kdGjuaQ1`+vq}%3_ZgeH*TmLK3s`~;l5LeV7;0zqJ)6GrH!jT;Ya(NDSEXw3l7lZIe= z&Z^0C!U{H*H!wO7c7i0cS)cQ?GxC0nnCsZ_ZZ&OH(uuj1CLjZ}d zCLn|WJW{jeyZe$v>`?4H7(#3s<;|BjmZze|2inywD=U+C?Qa`8x`m$hp8+MSObiTv zv+J+a(J+UKp^pkCuhX^v%_eZK>w(cLBv~lqAP`iecob5m%e%F`DK@>yP1QdDkqvs# zEvQo@dFBP){kI}u?$LxtLQtE5*;wKm7<>gfstM#Jl46cMn zS*ZPjgPjg47@qCTo)d|WqM``O5yBy#0@TlVi2lMgu0&|X#tJj-a4Te=5$wX1q28-P zov^N=I6x!{e~T)m$$v;Ve%Z2RJWY{#<>e9?SpmD2tlROSN~rB^am7Bn3&YEHBYJC| zrUQj2Qw6Y}fNazS#8Hilgfm4LxXcn9q}=M`t6#yLq*!T;CDY-Np zTn$$0>C>l$H*9zz8S3wEzr^y0w4jiX$d;+g9SWjX=VxaHhejI*e7^g5tJj-~#;U5* zD_st+8GS!jNJxm|4&z*fFu)UP{Yr2ELdpbRLAJ^uz#F_^>S0U7yt%u{xaN$JM9W{= zH-lNM^)5Z^>@12sk>^{k?fbW|$v|RZ4g4@~UN;`SdaHWqj$a|TA=%?p-q`~t4Yx5fs1Ij<$hmsY*OeT62lU8+m35z`L8&^dedENdXes{RN;yEWD|7vw1a`<2SE*riHoZvURC@P`Ta8}f|;4sc)s=4IOHfYD-hEX4@*Lf zMg(itoOwIy)+u>5bV)amWvT4Z{xv(DpO8&MFUiP|R66W6KC5q;o%|#qyWtlBc;2QZ z!RDYyYOVKjmgUvb(y`5ZR0;;X|B=RC zV9v14?vW)Y3(9R5r#GBuv;N+f3hV7QO;1o#keVi^Zc`P1kN^CqSya)0v8@KnuLs_W zZ6HK%2yhpYcb}eUo_WvM3Az0szw67-7W5a9gQ8{3MkDC=-YdinVly&!FoHNXMTpl?-IMi=Szuk#_I2dTiO+wFw}YK;;CSir(mc?aCEW5#x2^ z{7L4-W>fVC*xZ0J`5*6%MJ7kc*^)B-`SWLK+fTc3Ts2TzU9C!Y!bLkel(d=sAdQH*cA@g-i3iirQ!n zm=}2SqS}jt*llm_l9U%b4WCwK>^6X(h|l(SS6F|T4Y|1TN-2zOmbg7y9-^CT&&e`^ ze&E_2r)OYYUa&-;EAl&*Qx1TLWV$Q}--d>$?xOj(o6ovf&h$xGlws7+*oZsiV+0W% z=8D#)n*kp}XKXd{3#S+ikdN+2sV8Cjy$3kk zagZrP2t{nfW`9AjpMb-n^78sX;787DO*Ru!3;dBgNI%8aiC50Dxv7emt6I1W`vL)Y z-cRek>~LzqTj|gNG$bonbK=m6TgwC#XWo~VYJlQpiE{vk%Dru5iN!yf{r^WkWtQ&M z(zdqKRE`G&YJ(--qD&+QD5mbuZ|S{}*px2WjZaOkL&FA=XO51ZR~Y=Tk8^@h*MTB0 z3ENpyB}9>7_YFM@Uw2;^BtZO@0ou0X;H-jTnr?|iFaCtqj!Pv^d$}UTCpf}()Q>_b z7m<`Ko6Af4Yj>BHMFA7|37(;}K1xuKvKN8P#hxgS!iI)lN(ay<2TBUJGKxnX$kE~M z{mS$Z=XP8E?H^W8nzv+4TU{O)o7%eibF!r1m6^i-RvQC_xV`(x3c3#O``QjK9@ZFL zP=k<{j{A88L$K4=k6Hlj7Vw`JVO+1!-V5jp}P1u#l*AW{Vo6t=* z6x5mT81={#a!X1hl#CI_YU$=nT{w7LGZbg@K{Vt;$bm0pMo4G-$L1u$9|{DqDeff` zIB#UfBr|cvD69)ak-?!`S+c$P3E4~OAf`tAlSOjKis9v4;AL%I&SSt!zx*?f45P~H z%#Hw2M`43X2}toQpc63|wRXCE3-I$RcK{duvCZG0i+Gp zPDqR6pKnS?gCG`r&$&rJIP8{t6{DV0<8q$X4H-|#JPl@648S|R!CuwZLk*P};;_SF zCWn!KyqnF*ST*|)SZs3ot|^Xx*|22ww#OePSeg$nBM~wI0OarsfCUdOF%~U%&o6ba~J}Ruu{bsOjQkvGscCqv?&#A+SLen5WWGs9eGBJ_z+1n};~wc!Ny)OE%jE z8K~y-KM&r&fB#%7bWI79!@fNV3JNG${1aH5BGfwz?^MF)dQ1(~P*hD&r8~H&&8&nx z6Q?Z%7g9Z^Y(SdQMKn+Kd^A{{TPo8 zt%4r1BgxZF5Rdf|_4Q7kJXveKBL(HrO1*3O7j_gFwgi3EzMLQ?5?&yrunyS zN%@7R2VAnUe&!N7fGAY3wvwUmR;DB*q*Pk&%qyY6{i>%{m20l11?4!q&%ZH(F1o86 zmQhJx{pJN-d6%q+WL1?Om$0(GzkfiW=biz1*(2xY+Ms-j8dMG9jRcNwD|Pa7<|ufqd#yy51yHOUD}!211{{n?OhL8yKTNH%!+gr>uVVx zlmBBSKX=5TiY}hxuyvx0HV5!wiE?vYJk`?jqs!HrnX0NYJjYw~qObco#PD7$Pked3 z6aiD&pK50KuVPQ_51%!UYxkbql^3)|ez+=@v)7doq`mo-P(;mzr%G&f#>&}T;<}$- zm<3`dXJp~Fy%S&RMh!Y@#O1g&-MXXZ<`%O|$02X#2Uh-Wn~+_1t;!`C4DDU68&xkg zeJvHvz;34f+cgt$An&bsqP>&QE1itT*Eej#_VNCeBU`E5r3vVt5!H$Dp~yq| z0Qj&DhUNrS+GiJ+CE(QrYe8;uR15OdKUT6)frHJ65y-hR)EsjCuIRP+0_y(=OyE^n zPL{c_L)*K!klv64be);CYf`NN&*ygb;7x6Jf1VBr*DMt1U%mU&a9O*%^bm-pN_Rye zN~!vXdriAG!ZqaW<3mi&5d1{h8S$yps3KH=xA2XC%Pfj|d7w>D^GmC5x@|7JPQuouM!=1kSpf#<nXe;;cTq@bvV#(`v*zTt6N^MO982B?U zKSK6j^J@JLRFMgs@^lW@<|2W4i{^W+`a!b}LC3YbQiK{V#Ev|}TNP(VCc#zEbxx1w@M01(fP73F%JUoibF9GnVpBk^Dr z70DmQ+l%G_XzALiz;g#E8mrN?LW=5 zL)lz9^v6pyk~sp=@4S^<--D(OFTdrIg=bMtgFp!Mzk9bT&*MVw#JB8txQ8!U%+a*x z9S(9zu>MdGMo1A zE@=L(Au}E{7nSqCP`nw6lW~70-MO0)M^%KajLQDeN$8)I(W)znE0`Janqdfgd~41( z{_C&5sEY~G4VcChv8Kz4KtDieq~gM&Ee*6o{a*g0=0krLgz?2dqYXuBU@C?47LM7xzPeGt(AzJlpy2V|9QRC3-YTo>kCJq+l#=HJ zgvr%vW9%ukpscG(GB$?9UIWBRooMg^ye%r)bbJC|!UmD34Nb`r^g!--cLJPAVK4?o z1LcWHN^1F2#}0E09ZTK!1MeaVoyi{NdB1RCjogh8{m2ub6Omopy0_V%uF{$;fHT&3 zbGXEU$n)PRAOu~X_fyVo7ZVVS#rvSEqQ-jV!y#B-4sFG;LEj)5@2)nv{JUJ@nl^(4 zC36jqpXJ*C5fXyy(ruE^1S1zVy8)yLHY~L!$qnDFxKj$w^&dWqn!Hn7Eahs4s}<$t z28Jq6JKEc$LBY%xzPMMXa%StQ5IRMI$WjpPu2do_F0p7Kam$NM7+d@Q6e3@W{^66}l*ce&XL1i!&x++#>-yi?Qd} ze%R=<1>=xcP!v_-n)yyjp(hLiIK=H2tTnl<0>0^~#p@O$TGW4p{hDV1wFHMV9g&6 ztz5aXbI|6b#fQjCzzGX;jep7KbUi=U!{7ViIv3_PL%v(#7V)=Yxc}kEqPCSBIGUmI zA5lK&f0H`yO+Vqa72@D3+k5o6Q)f?MZ!Jnyij0N6g-iHftu5Q=s`A~9Z%mWra!FaV zoB-?-K{bwTuM4&f|3t%fA(y&(+v!7TifGt7H55;a@Z3p@1Q)7g%E^RO)o_|o4$bDRIovlXQJ2)cidcY}j6!L35&e<}r2+KWpIxw1}^3SwV2SCSE ze?iPT`C{M>J0^5Nb1hx>r)9u`3n_0PQS0V=dhjWE8o*P11Wq@Q4k7{q5xY9Qpkkq0 z?FrB3e74^CjR>P|E|_*&U0wq_=&n z0SyCm(PnADVK@HdXEv_5{GVa=Id45>A~&$Bsj#|$A8+%v0v9IayiUjSF;ss9~jHvq?VXniS*yq3ms;BIaK6&cjAtDc#R{?62vJ@PR15Y@! z5rk%MUzfG;pFF}UW(#^I#nRvbtwaMJ>!~Q`UbFu8I{wcvV8P%RO@$CLZ1}6$z;Lf` zxsvz^^!z2VErn7qovj8jH>t(V&93SkVT#U^|iM3G! z0ARyn_NFSDsBd-9Q$x4`bj zue416bBvi_octG7*1#^DI)})Xa{c;sbeTWt&7Wy9&q9YGTv_n4(eweF>YnEO=C@Ux zn_yr2?s^Y*`IszTM)2LdN$sI@n(yUBwG1FB89D#qJFO_|0P?Q}`4IO&%FF^(Akm_L z)K1XP*iYr@6HkZ~bn1y7PkS$}vE&wmjPLS^oKtc1Ixcefzc_$cRyF@3Y3rjP7NpJ;ctRX4 zT0y2G^6ac@6NH@ykNjWG@k20!!BS?vq)}0u34G1u^o431WHN!n3U;f?+yI>Vz5DmS z+z*!#PnVT@AZry2Ah<5+_U+r2$Nu&JEXG-N?5Wf97$2mTCu+gPdK;mWjHp$XCExOm zhd+=zB?-b*PnNg-3mH;ie2l0gPfo#{Qkc;a={Fr zdcN;e?r@zYVF(g{@Y!cEQG_F;w~8MQBYnKSc{LdL%)mkz#@D*XcA0QIh>+P3U%w0*I} zSC%?>sKeH4vQ>aOEb)9&aABy~3`RI+o{I&h|HVBW$X1%wW{x@rfDjI*C(r^~y6u6P ztO>1!I&*Y`|CvX|yv@o2i!%Kos@$ zZ6aeryT(9|nyPl%rTdqWb!qKSl+XW%_!l`q_df*v|1!DfjG-adLO;m^{sI2}pFa}~ zckz)Jd&0hY#LPh8O6jsT1O@-csNYsHh-TyQ0Q+zke&&Q?VVQH+GK^3CXXn8km>!+v zgpQzcgPCIx?&ddt-xlMR$7-Pk6H+P*huhgNRz-nX7XkNv=B=&J=b?f-rOO_JM?>>+ z7JVq(7-P{FmtFdgx13?yy&M?d&_Sr}-&TYNj-(pYc0{HaF0@tq7^LO@r&8486UGOW z3zuA{mvaTSa$NfVyCaG&v4tV9U`!9<21|UdkS==jV88g*y{$hrsT2c4ctv$HtYsda zJ&F!n*eN%lGwjxCsX{!c{d?`kJ-58NBDx!~DX*@7KKG|OgACg}M2~D#4?W)))PqEbeUf>)mYn?t z+u;QON6$6!tBMSxcP1__j_65*eHv*1#K=zj3eBN4Ys;d!t=&`0#zxRahBaq^NpX48 zkC5o;0bENH0#pP2EDw%eIRpKM`sL2TbOrt|sL?tI6dDi+lCcBKHr;TeRD%>BLgR|? zu3ZLzVOeOlKr8u1<#D*mbunJR5PY|P3L5TF;VTSP>iD+r8vXP;j8Z4^x-pBP)~K(q z&;K#xR|Whre0sMrjfUELrXUgfj%`A4Lpj`aS3^+?>y5}x^NCPQzc1T}d;#)L8{M?j zDNiLREUC2?H_$c-Ck9lKXz(89y-m4eO{|%zUN5KCTif44)CO?@G9<`EpB~`h2al){ z0BKA^T*#-!9J7)QX+n>i6H*2^JJ_NE(Sw=bE|H%hVlnYhkeV^!Z1V>nLi1zLx)>(s zZ~(hh4+QExw3=4tL9`-2<+>M)y7|-Mz=9Z^a63Ic9lMo~A`(b}q=M3flc{M88J|G9 zy{)LwK?PHiR_YE~j+zrO2%;*}!K|pWJBf@A$o;R;|kTj&9IjZ6MR& zQ?jak)*hS|H<<5n0=WQUK1mKtj?uMktv~d?XPeu(7t8Vm}tHGC`2A2D43#4SdCTcD@+Wb0mByRNm<=xwiVKj|QEu zdCID)$d=1_dC#Cd-dfhC=^SiMX8aevO6tH%?tnCnkA?_H*A|0PuLHcPB&4Km023WZ z&d!@nu&5h%?D$Aq$P~jCOyTW|0r%poh|c+wf)8-%A&|zCp;jzkz1o}z+9a!S*s)e4 zRt=yR`T^E01mPeAmnk1}{o1uP=<<>RWt0pJVgO4-<7|>q!yR0!90OL;6g-(JPFM$Y zY)RBurXZij;vdpEX-TuH_d%BN$lr;rp;S z+=qHYvt@!2CD&#*TB9oUkt`Gx6kLVhpjtHpV{bzJq&VQ1FN24<%EX604CSPcEBx^9 zKpmH$t>Prm-U-5v#ZYGMtcI2I#?6~jpjD)(Ca#4gUB*hsWICPOhhL#iD+0&g73&<9 zcHAf;>@&dn3`%TTj065-Fc6fWeM=2PF61!A!L|J!;~m!H-Cw`Y=d1Sw9>=yo>x=2z zz%7$3O!`HW*(j&ZdRyE9vTcha|HqK8Pb@IKZw1kd>aX#HTEx(5K7_p#aACq@ov z=>`m|nv8nh7E)^Fre&MxHEt%a)y`XN(Cjo<$Rq>o0(Cf>qC}>lLNUOTg>dKhO^D_f zZ!f%m;ag@=oDGk}6^)}YAS`3h7UbLVWag;XWZ%J}47_o*GF`2&9ZVK~-thHxUYvfm ztbm$-v4B9d=44M<169-kje8Ez_cy%xTA!Y@J2iKDoE@|G>Oy)RcpCi@3eNaehTIt zb#-;QRyU?u9hW-s{GtI9XN2>RZe>F#I*c>N_rm|(2ESdOD`T);rXT-2=_;PTL)2p8 zB%rn$@xNh;=RR&_j*!Dy3T)Fhm`e-qPxj0?mj4d&kp)`wXu5>SIP4>s*koR@(d2N` z#1O9B2Rn}1mMiSR&sZR6+xSSD7F<~ngBfD#6`1v*%=})9dXPFxccx-q*@e&oCg##% z%d4~4fgw3*BqFHcVVkTqty+m%de!?51%9qTPJ z&VLty7q`>aWl6D-H}yorXu2n6XTjn76EY_SI;Rrq6D{Qk~L^w<(x@Zo%H`poS0%sWTZ*k3}7ccrZ zfS1u*x1*2@D?pL9ZuvT z*VWYxpv=Q8ZMxTH76LM^@adA|z+70RibO8RRq1Feu0-lDeFL+k3_2+&tphdr1CU@q zz$2K~l(o@_?gTC`79ZJN!Sq9hY~K+rFM;#^&V`TRHZw8U6$NJ)_4RNo4BjRWE1EAv zN)^#sB95d$Oh9un3yxAaUV2k{X=nomI!2jf0HD??7QIr_YLFQ7v~8Eg0rD5*=Jwmg z9!tPhzzeIp6iVx^C&e7l(9kIAsuA|25-Z>wuC`Q`1y7A{1Q1z;ZFL655*68k^nsl3T?A1Ka zzrV_l$uzqZboEiHK*tb260QLdSQXJ4^;YTTILoL_wemXi*D&-)Fg`=M{L%iKx{3NS zOlRlpTut_Uv;cj}9Wg?)!y%=~@4o|+$HGBn+!uW0M(KVd@AB!0y9^`O{p7eJpEfb4 zz?o#}Z`~-3Y)MlLk&>C1&}M<@VdMET6G}8z3>MPO-?NNwVO#W|2Njq-3h_6F#y=(H z^n25=FRS_~-U-uh-gTaDMt;vB=213eOTB;>D4SNtCAp`2mgJH2dhsGx@%Z)B9sM`f zOMop0hN{S)9+D`M@PA?~js-!PqLVicZ!--(qv3hxIBe<_?fkC!pt%RU12YtCv{Fb&wEeF&2|?4oCdjxfd`z&b6Lnb`=ZTso)M@C5e_L zXoc6((o#PtJ|N{42u7JRVru)w+T082keml{HDs~>0RzE4)GDq$=0qG6_NDs3l!pMd zN?`$$J|6HVzZzODEihq+pc5>IVP?0+YB$Pl$wn6|+3iyK6<5ya9G&n|r?ChyiqRM@ zG^fT96OT+Nmx{{6qB$=Y9b8Yq$-HT7Y_xl^6nTWX;UmL7I?XkA2DrDoDL1>xeL(Hi z%a>%ACMyUlBL`O@hDHW41}o=OcE0!on(-lJMpQhLFwAOm9H5S1Q8~HH%H9ZfrO^m> z-_&y~8jY}okv6REhaZ0Uf~Ixf78*^{D4l@QK@N7b>+-ce8*WL6v%^E8W-jZ58|!_) z-&mgn{APh*r#LmJgXf01dCJh_q0dkBPX(3y!}$#dpg)>9`I7LdVxpodxF6wV}cOgj*RScv08-{;Y6m)`1q=yb!ZIq-;s7L4XMsF8&8whE{x1>;i4TR?uZluRUIGUma{qDn(BD<;Qk=Rf-mgWnK|)@(g-k(v>3 zEQz?Mkp+1g2M7E5%CLko5S%?G`-VI+&(PADj3#4Tng2Z<0JVq ziTIk+69#Ra$vXPH)i~kEDDuAN3SYhILVfR?wP67JLk30wRAc+Gk!cza4XG{4Te@OJ z46y52d=TzD>+{keG(RBgSm4~yQph{?s`So4?is`f(KuIX7?H7Q+J%ZmR9bq_o4o>` zfGotmG@t(i&0Ga&#Mb;mDB5BK<)9@#iMk^(FnB!}b*5QRAk=Mi#8u*&c+moYsj@W9 z5T`&dFWo`;<;d?dnMTdr!y}76B#XzCX3e@GDc3xC66!NyKXuL|O2G$+^+g$| zc7vZkf9_thL8Pb#lT`pRFk|*USdd`I%sNP{%a<)XHE;2%PZ`Hl)t#o;#xvVsu<&g` z?vb)@JJj0SYXb|oInHjy++jJZ-?7u>s_p~<57$X!iV@~auEniaz=~Ux^5KJ~6g)5J zq!wsJHzSB{g86r>cIF`RbW|U=k-XXDDkwp{MXp?N>ibWDseV~T)T2ZbRCa#<3dX@)^*es2vho$2^s zR}AbWF-Tw=F`w+Wg9k%kE0V99#4f@Hsg%T*|90R&Fq$HS>z${+zu;Db6m$y{ak~(A zT+s;2SFeDEt3eocu3WjY3ejo#x^?F;o90f^TC28HHJGW-(tMqHT&kB`N9_`rc#WE3bXf+qhqh4_TG%!qJ7c6OAy zd6AT=18){x3J?vd7hA=2w=$i|Vbwf=Nt>N*LsKV^l&O9Y+_Y(Dp<&MXvc+p<-|5Ed zzM&gKg}$Y}(b`Wy$r^{!6x#%iKi3}Ybg@orW{e%1hT3OJupp`D(xW$~@0!)i=V_iJ zJ0;ky+VJ!t21p0$tgkSx(i#Mi+hTz-km5hQl3xj8AVyW7;Bv6K8&Ud`iZ~;8hEgav z7`QXS=w!i_y@`@a#Woc&w{Yjt7>1j!8FY(% zy~27{O!Hy}K6&fLwQmo!$$- zeQ$Y@*|a$dkwm@p=Y3_m%Z6V(x@M*C9*{O7ia9@hhnqsN?Kz!<_D(phIpE_}_01-ui~bqx-tV--Ji{&4Oy^SQV%(PXzs z8K&=&LeA;?mIrllVJETC!aQwEepW@fJ1pTW?-qH#Xb2q<7^50Hrf zA(3EL7>1$JbS$uHG(Bbtr_$eEvB#ON0GkO`3lusMpnpW`?Fn8M?Q1|`9=`}PfS=OT zOhi{Td=AaEroITwO?fMs3)=vVRpEOwBy`C~Is;N46FN z)SC#wlBNr!ovVF>8ixiCGM<=Y!bk8<7Zx5#9BO%ji`4T9NGhU?^c;owi7v1Jdqgrk zvCE)`HYk%6k3ua5RO2CkYFSZxux-E6%w#ed@L-5UCxT$TeS}-L2${!VKi2{6*Z-uo z)-0k5n2AF!Lj%S|vp}OQN|}OP^T!a$!i+3*%q@&ZX$a5nGt_%ql<6155#zj&71Ezn zeOx<@^uZI-L{fFa`stzliq;rIR>(6dH~tk-0V3nq9rAV9NXWScXctY3!o#$pIUQE0 z?8+myuOq7z@-8Uehd2k+4@0^u-vANXWDrAuiJ|!kw7!m@>u3THilj1(+@RJv&P+PA zIMUQS45E`R8fpTqWu4P^0DQJONIh?`sklTE*hpjb@7F8BWH=GzGqSSPOq*ix5jXjn zc#eaIwVV9f(Gi2XmYRBf?ci#?C&;YOO@4_H=?KZ{tQKRbQ*Z}lQDe`;5)MvEl4k2b&d{gki#2Jr=hR!DS&O5Y+SRc8O_sF- z8dQmFuaJgvs!ZF2jtb5@Jtk@kw9e|<*yvEIK(HEWa_^7#;T2=h08tRWUGVL(SZW1%)9|^8~bw@ ztruxfKdFcNfGBkD_U%tU-j?gaU4kurh=<=r^HC}4QLO^P8%-{^QG9GtCfSunz^^oR z*8-`AfnGhb5@U%Qa9vp0YA{yh%EbN%MHu>%b1X&SKvDs-T7!{a@l=t#@fU*S?Ws-( zbtgjPfvY8&ERon5=w0cdxsmo?D~gH^Ql|`n?>+RQgO{LgX8mmEM6g*hn24wBWt1dO zlW-y6qLlEpBS$QdN9&g)BpPysBcTrhAP|3!|0#k>I6E*xKK#NrIRq8J;RDpJ18p50 z>)#U^Louf9h9$ydv^KUr@YLp9SOTbU!l=G@vvAk{wqq;7=f{B7&44C>`KRzS^ zivn>=*Sw-l?}ko94Li-zG}|E5Z=7|E@(~>xW0QLt?m!` aU9WBv>ieEm0yxFXz~JfX=d#Wzp$P!~lpa(7 literal 25894 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 diff --git a/assets/images/gsoc24/scenario_perception_pipeline_blog.png b/assets/images/gsoc24/scenario_perception_pipeline_blog.png index 9aafa6d7f19d941278e62af828b98188613eff31..ae4dbc37c0bc2548b6633c989ad6af0f5d140e33 100644 GIT binary patch literal 26176 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 literal 21543 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 From 45fa22d82cc8cb67bc67718ee41de114ee7a2e94 Mon Sep 17 00:00:00 2001 From: Henning Kayser Date: Mon, 2 Sep 2024 17:04:26 +0200 Subject: [PATCH 10/13] Improve some grammar and wordings --- ...SoC-2024-Zenoh-Support-and-Benchmarking.md | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index 7e5a3085e..9c6946ce0 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -12,24 +12,24 @@ categories: - GSoC --- -We've completed our project titled "Zenoh Support & Benchmarking". With this project, we could try to understand how to be used rmw_zenoh in MoveIt2 project and how rmw_zenoh affects MoveIt2's workflow. +We've completed our project titled "Zenoh Support & Benchmarking". With this project, investigated how rmw_zenoh would be used in MoveIt 2 and how rmw_zenoh would affect MoveIt's runtime performance. ## Movitation -The aims of this Google Summer of Code Project was to make [rmw_zenoh_cpp](https://github.com/ros2/rmw_zenoh) enable for MoveIt2, benchmark the midlewares such as rmw_cyclonedds and rmw_fastrtps against some scenarios from complex robotic problems like trajectory planning and task planning to basic ROS works like basic topic subscription-publishing, service-client operations, report the found bugs to rmw_zenoh team and configure CI in a way that rmw_zenoh can be supported. +The goal of this Google Summer of Code Project was to make [rmw_zenoh_cpp](https://github.com/ros2/rmw_zenoh) available for MoveIt 2, benchmark the different midlewares such as rmw_cyclonedds and rmw_fastrtps against scenarios from complex robotic problems, ranging from trajectory planning and task planning to basic ROS works like basic topic subscription-publishing, and service-client operations. In addition we reported the found bugs to the rmw_zenoh project and implemented a CI configuration that supports testing rmw_zenoh. -rmw_zenoh comes to the fore with some exciting features like configurability with elastic topologies, supporting a lot of protocol such as TCP, UDP and usable at WIFI networks compared to DDS based middlewares even though it's still in development phase. +rmw_zenoh comes to the fore with some exciting features like configurability with elastic topologies, supporting a lot of protocols such as TCP, UDP, making it promising in WIFI networks compared to other DDS based middlewares, even though it's still in development phase. ## Progress -**Integration to Moveit2** +**Integration to Moveit 2** -Even if we couldn't run moveit2 with rmw_zenoh due to data races inside `rmw_wait` function in the starting of GSoC project, which bring about some problems in Multithreaded Executor, we could run MoveIt2 with rmw_zenoh after some bug-fixes for `rmw_wait` function in the middle of GSoC project period. Even if rmw_zenoh has some problems and is in development progress, you can run MoveIt2 using rmw_zenoh middleware. Additionally, rmw_zenoh has some pretty good potential so that you can get approximately as same performance as rmw_fastrtps even if rmw_zenoh is used TCP protocol by default, you can help for rmw_zenoh team to completed and find the bugs! +Initially, we couldn't run MoveIt with rmw_zenoh due to data races inside the `rmw_wait` function, which brought about some problems in the Multithreaded Executor. We were able to resolve these issues in the middle of the GSoC project period, enabling MoveIt support for the rmw_zenoh middleware. With that, rmw_zenoh showed some pretty good potential with approximately the same performance as rmw_fastrtps, even if rmw_zenoh is running the TCP protocol by default. Unfortunately, there are still several issues that we found and reported, and it's up to the community and rmw_zenoh development team to finding solutions and improvements for them. **Benchmarking** -During this summer, the middleware benchmarking tool is created to compare the middlewares such as rmw_zenoh, rmw_cyclonedds and rmw_fastrtps. Some scenarios are implemented for measuring how the middlewares affect in some scenarios in robotics. Here is our middleware benhmarking tool : [moveit_middleware_bechmark](https://github.com/CihatAltiparmak/moveit_middleware_benchmark). +During this summer, the middleware benchmarking tool has been implemented to compare the different middlewares including rmw_zenoh, rmw_cyclonedds and rmw_fastrtps. Several scenarios have been implemented for measuring how the middlewares affects performance in typical robotics use cases. You can find the middleware benhmarking tool here: [moveit_middleware_bechmark](https://github.com/CihatAltiparmak/moveit_middleware_benchmark). -Some of scenarios are: +The implemented test scenarios include: - Basic Service-Client Works - Basic Topic Subscription-Publishing @@ -38,14 +38,14 @@ Some of scenarios are: **Bugs in rmw_zenoh** -It's also reported some bugs in a case of catching it. These are +Below is a list of partially unresolved issues that came up during the GSoC project work, - https://github.com/ros2/rmw_zenoh/issues/257 - https://github.com/ros2/rmw_zenoh/issues/240 - https://github.com/ros2/rmw_zenoh/issues/251 - https://github.com/ros2/rmw_zenoh/issues/186 -It's also contributed to rmw_zenoh. +and our related contributions are below. - https://github.com/ros2/rmw_zenoh/pull/252 - https://github.com/ros2/rmw_zenoh/pull/255 @@ -53,9 +53,9 @@ It's also contributed to rmw_zenoh. **Conducting Benchmarks in CI** -Additionally, the website for visualization of benchmark results created so that it's also configurable with CI. -Finally, the benchmarks have been conducted in a way to give the reliable comparisons in github-actions and the results are visualized in website. +The benchmarks have been conducted in a way to give the reliable comparisons in github-actions and exporting the metrics. +Finally, the benchmarking CI system supports visualizing benchmark results as plots on a simple GitHub pages website. **Contributions to MoveIt During GSoC Project** - https://github.com/moveit/moveit2/pull/2963 @@ -65,7 +65,8 @@ Finally, the benchmarks have been conducted in a way to give the reliable compar ## Achievements -We have benchmarked the middlewares against various scenarios using [this script](https://github.com/CihatAltiparmak/moveit_middleware_benchmark/blob/24-Aug-2024-demonstration/scripts/run_all_benchmarks.sh) and we have found below benchmark results. We have used default configurations of rmw_zenoh except the fact that we configured some tcp settings like below: +We have benchmarked the middlewares against various scenarios using [this script](https://github.com/CihatAltiparmak/moveit_middleware_benchmark/blob/24-Aug-2024-demonstration/scripts/run_all_benchmarks.sh) and we have found below benchmark results. +We have used default configurations of rmw_zenoh except the fact that we configured some tcp settings like below: ```sh # for rmw_zenoh @@ -92,7 +93,7 @@ sudo sysctl -w net.core.wmem_default="20971520" ## Conclusion -It was an exciting progress for me. I've contributed a lot of open source project in this period and i've learnt a lot from my works and my mentors's showing the way during Google Summer of Code. I strongly suggest you to join Google Summer of Code Program, especially in MoveIt organization side for those who interested in robotics. After this Google Summer of Code works, i'm willing to continue this project. +It was an exciting progress for me. I've contributed a lot of open source project in this period and i've learnt a lot from my work and my mentors showing the way during Google Summer of Code. I strongly suggest you to join Google Summer of Code Program, especially in MoveIt organization side for those who interested in robotics. After this Google Summer of Code works, i'm willing to continue this project. ## Additional From ce2c765aa4bdb2111c0aa13941184314afe1e109 Mon Sep 17 00:00:00 2001 From: Henning Kayser Date: Mon, 2 Sep 2024 17:05:26 +0200 Subject: [PATCH 11/13] Fix typo --- _posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index 9c6946ce0..bae131371 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -14,7 +14,7 @@ categories: We've completed our project titled "Zenoh Support & Benchmarking". With this project, investigated how rmw_zenoh would be used in MoveIt 2 and how rmw_zenoh would affect MoveIt's runtime performance. -## Movitation +## Motivation The goal of this Google Summer of Code Project was to make [rmw_zenoh_cpp](https://github.com/ros2/rmw_zenoh) available for MoveIt 2, benchmark the different midlewares such as rmw_cyclonedds and rmw_fastrtps against scenarios from complex robotic problems, ranging from trajectory planning and task planning to basic ROS works like basic topic subscription-publishing, and service-client operations. In addition we reported the found bugs to the rmw_zenoh project and implemented a CI configuration that supports testing rmw_zenoh. From bab47c0d733a625429fbcd16992ceb24709d9c2f Mon Sep 17 00:00:00 2001 From: Henning Kayser Date: Mon, 2 Sep 2024 17:07:04 +0200 Subject: [PATCH 12/13] Fix typo --- _posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index bae131371..c2a38768d 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -27,7 +27,7 @@ Initially, we couldn't run MoveIt with rmw_zenoh due to data races inside the `r **Benchmarking** -During this summer, the middleware benchmarking tool has been implemented to compare the different middlewares including rmw_zenoh, rmw_cyclonedds and rmw_fastrtps. Several scenarios have been implemented for measuring how the middlewares affects performance in typical robotics use cases. You can find the middleware benhmarking tool here: [moveit_middleware_bechmark](https://github.com/CihatAltiparmak/moveit_middleware_benchmark). +During this summer, the middleware benchmarking tool has been implemented to compare the different middlewares including rmw_zenoh, rmw_cyclonedds and rmw_fastrtps. Several scenarios have been implemented for measuring how the middlewares affects performance in typical robotics use cases. You can find the middleware benchmarking tool here: [moveit_middleware_bechmark](https://github.com/CihatAltiparmak/moveit_middleware_benchmark). The implemented test scenarios include: From baa2219ca87808a6b160323d362269bfc919ebd4 Mon Sep 17 00:00:00 2001 From: Henning Kayser Date: Mon, 2 Sep 2024 17:12:02 +0200 Subject: [PATCH 13/13] Improve description --- _posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md index c2a38768d..32a9431a5 100644 --- a/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md +++ b/_posts/2024-08-19-GSoC-2024-Zenoh-Support-and-Benchmarking.md @@ -6,7 +6,7 @@ layout: post title: "Google Summer of Code : Zenoh Support & Benchmarking" media_type: image media_link: /assets/images/blog_posts/GSoc2024.jpg -description: "We've completed our project titled \"Zenoh Support & Benchmarking\". With this project, we could try to understand how to be used rmw_zenoh in MoveIt2 project and how rmw_zenoh affects MoveIt2's workflow. " +description: "We've completed our project titled \"Zenoh Support & Benchmarking\". With this project, we could try to understand how to be used rmw_zenoh in MoveIt 2 and how rmw_zenoh affects MoveIt's runtime performance. " categories: - MoveIt - GSoC