Skip to content

Commit dac0fc7

Browse files
committed
deploy: 249e928
1 parent a08338c commit dac0fc7

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

blog/2024-12-12-zenoh-firesong-1.1.0/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
</span></span><span style=display:flex><span>}
6363
</span></span></code></pre></div><h3 id=rasberry-pi-pico>Rasberry Pi Pico</h3><p>We are excited to announce support for the Raspberry Pi Pico series in Zenoh-Pico! This addition makes it possible to leverage Zenoh-Pico’s lightweight and efficient communication capabilities on <code>RP2040/RP2350</code>-based devices.
6464
To get started, check out the new Raspberry Pi Pico section in the <a href="https://github.com/eclipse-zenoh/zenoh-pico?tab=readme-ov-file#226-raspberry-pi-pico">README</a>. This includes detailed instructions for building and running Zenoh-Pico on Pico devices, enabling seamless integration into your IoT projects.</p><h3 id=performance>Performance</h3><p>A lot of effort has been devoted to improving throughput and latency performance in Zenoh-Pico. A big improvement has been brought by:</p><ul><li>The rework of the internal fragmentation engine for large messages.</li><li>The addition of manual batching for small (non-fragmented) messages.</li></ul><p>Notably, the latency has been reduced to up to 1/50th (i.e. 5000% better) for large fragmented messages and up to 35% for non-fragmented messages. Moreover, the throughput has increased up to 60% for non-fragmented messages and up to 10x (i.e. 1000% better) for large fragmented messages in peer-to-peer over UDP multicast (§). In client mode, the throughput has been increased up to 10x (i.e. 1000% better) for large messages.
65-
Enabling manual batching can increase throughput of non-fragmented packets, with up to 20x (i.e. 2000% better) msg/s for 8 byte payloads.</p><p>(§) Zenoh-Pico only supports UDP multicast in peer mode.</p><h2 id=ros-2-bridge-1>ROS 2 Bridge</h2><p>ROS 2 Iron and Jazzy introduced some changes that the <code>zenoh-plugin-ros2dds</code> and <code>zenoh-bridge-ros2dds</code> now support.</p><ul><li><p>The <strong>Type Description Distribution</strong>, a.k.a. <a href=https://github.com/ros-infrastructure/rep/pull/381>REP-2016</a> or type hash: The bridge re-transmit the type hashes exposed by the ROS Nodes to the remote bridges, so they re-expose them in the same way to remote ROS Nodes.</p></li><li><p><code>ROS_AUTOMATIC_DISCOVERY_RANGE</code> and <code>ROS_STATIC_PEERS</code>: The bridge supports those new environment variables starting from Iron, and still supports the <code>ROS_LOCALHOST_ONLY</code> environment variables with ROS distributions prior to Iron.</p></li></ul><p>The <code>zenoh-bridge-ros2dds</code> now also leverages the new Querier and its matching status. This means that implementing a Zenoh Queryable which is able to act as a ROS Service Server no longer requires the declaration of a Liveliness Token to be discovered by the bridge.</p><h2 id=advanced-pubsub>Advanced Pub/Sub</h2><p>This version introduces:</p><ul><li><p>An <strong>AdvancedPublisher</strong> that can:</p><ul><li>Cache last published samples to be retrieved by AdvancedSubscribers for history or recovery.</li><li>Sequence samples to allow AdvancedSubscribers to detect missed samples.</li><li>Automatically create a Liveliness token to assert its presence.</li></ul></li><li><p>An <strong>AdvancedSubscriber</strong> that can:</p><ul><li>Retrieve historical data from AdvancedPublishers.</li><li>Detect missed samples.</li><li>Recover missed samples from AdvancedPublishers.</li><li>Monitor matching AdvancedPublishers through liveliness to query history of late joiners.</li></ul></li></ul><p>Examples:</p><div class=highlight><pre tabindex=0 style=background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-rust data-lang=rust><span style=display:flex><span><span style=color:#09f;font-style:italic>// Advanced Publisher
65+
Enabling manual batching can increase throughput of non-fragmented packets, with up to 20x (i.e. 2000% better) msg/s for 8 byte payloads.</p><p>(§) Zenoh-Pico only supports UDP multicast in peer mode.</p><h2 id=ros-2-bridge-1>ROS 2 Bridge</h2><p>ROS 2 Iron and Jazzy introduced some changes that the <code>zenoh-plugin-ros2dds</code> and <code>zenoh-bridge-ros2dds</code> now support.</p><ul><li><p>The <strong>Type Description Distribution</strong>, a.k.a. <a href=https://github.com/ros-infrastructure/rep/pull/381>REP-2016</a> or type hash: The bridge re-transmit the type hashes exposed by the ROS Nodes to the remote bridges, so they re-expose them in the same way to remote ROS Nodes.</p></li><li><p><code>ROS_AUTOMATIC_DISCOVERY_RANGE</code> and <code>ROS_STATIC_PEERS</code>: The bridge supports those new environment variables starting from Iron, and still supports the <code>ROS_LOCALHOST_ONLY</code> environment variables with ROS distributions prior to Iron.</p></li></ul><p>The <code>zenoh-bridge-ros2dds</code> now also leverages the new Querier and its matching status. This means that implementing a Zenoh Queryable which is able to act as a ROS Service Server no longer requires the declaration of a Liveliness Token to be discovered by the bridge.</p><h2 id=advanced-pubsub>Advanced Pub/Sub</h2><p>This version introduces:</p><ul><li>An <strong>AdvancedPublisher</strong> that can:<ul><li>Cache last published samples to be retrieved by AdvancedSubscribers for history or recovery.</li><li>Sequence samples to allow AdvancedSubscribers to detect missed samples.</li><li>Automatically create a Liveliness token to assert its presence.</li></ul></li><li>An <strong>AdvancedSubscriber</strong> that can:<ul><li>Retrieve historical data from AdvancedPublishers.</li><li>Detect missed samples.</li><li>Recover missed samples from AdvancedPublishers.</li><li>Monitor matching AdvancedPublishers through liveliness to query history of late joiners.</li></ul></li></ul><p>Examples:</p><div class=highlight><pre tabindex=0 style=background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-rust data-lang=rust><span style=display:flex><span><span style=color:#09f;font-style:italic>// Advanced Publisher
6666
</span></span></span><span style=display:flex><span><span style=color:#09f;font-style:italic></span><span style=color:#069;font-weight:700>use</span><span style=color:#bbb> </span>zenoh_ext::{AdvancedPublisherBuilderExt,<span style=color:#bbb> </span>CacheConfig};<span style=color:#bbb>
6767
</span></span></span><span style=display:flex><span><span style=color:#bbb>
6868
</span></span></span><span style=display:flex><span><span style=color:#bbb></span><span style=color:#069;font-weight:700>let</span><span style=color:#bbb> </span>session<span style=color:#bbb> </span><span style=color:#555>=</span><span style=color:#bbb> </span>zenoh::open(zenoh::Config::default()).<span style=color:#069;font-weight:700>await</span>.unwrap();<span style=color:#bbb>

0 commit comments

Comments
 (0)