import{s as $t,n as Zt,o as Rt}from"../chunks/scheduler.eb244325.js";import{S as Bt,i as kt,e as a,s as i,c,h as _t,a as o,d as l,b as s,f as It,g as r,j as p,k as tt,l as xt,m as n,n as M,t as m,o as y,p as h}from"../chunks/index.3fe63ad3.js";import{C as Gt}from"../chunks/CopyLLMTxtMenu.88bde5f2.js";import{C as ae}from"../chunks/CodeBlock.934d290d.js";import{H as u,E as Wt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.341974a5.js";function Et(lt){let f,ce,oe,re,w,Me,T,me,U,nt='Real-Time Chunking (RTC) is an inference-time method that allows large, flow-matching based robotic policies, such as <a href="./pi0">Pi0</a>, <a href="./pi05">Pi0.5</a>, and <a href="./smolvla">SmolVLA</a>, to produce smooth, continuous, and reactive motion despite having high inference latency.',ye,b,it=`These policies generate chunks of future actions (e.g., 50 steps at a time) instead of single actions.
Because the models are large, producing each chunk takes longer than the time it takes the robot to execute it.
Naively executing chunks leads to problems such as pauses, jerky transitions, or sudden changes in strategy whenever the next chunk arrives late or disagrees with the previously executed actions.`,he,J,st="RTC solves this by asynchronously generating the next chunk while the robot continues executing the current one, and by guiding the new chunk so it aligns smoothly with the portion of the previous chunk that has already been executed.",ue,g,fe,C,at=`RTC lets the robot think ahead while it’s still moving. When the robot is carrying out one chunk of actions, RTC starts creating the next chunk early.
But since the robot has already moved a bit by the time the new chunk is ready, RTC has to make sure the new chunk still lines up smoothly with what the robot is currently doing.`,de,j,ot=`To do this, RTC treats the beginning of the new chunk like an inpainting or “fill-in-the-gaps” problem:
it gently adjusts the first part of the new chunk so it blends naturally with the robot’s ongoing motion. The result is no pauses, no sudden jumps.`,we,v,pt="In technical terms, RTC adds a guidance term to the flow-matching denoising process that forces the overlapping timesteps of the new chunk to stay close to the executed portion of the previous chunk, typically using a soft transition mask.",Te,I,Ue,$,be,Z,ct="RTC is built into LeRobot. Just install the policy dependencies you need:",Je,R,ge,B,Ce,k,rt=`You can find a complete reference implementation in <a href="examples/rtc/eval_with_real_robot.py">eval_with_real_robot.py</a>.
The snippet below provides a simplified pseudo-example of how RTC operates with Pi0 in your pipeline:`,je,_,ve,x,Ie,G,Mt="<code>RTCConfig</code> has the following parameters to tune:",$e,W,mt="<strong><code>execution_horizon</code></strong>: How many timesteps from the previous chunk to maintain consistency with. Higher values mean smoother transitions but potentially less reactivity.",Ze,E,yt="Typical values: 8-12 steps",Re,S,Be,V,ht="<strong><code>max_guidance_weight</code></strong>: How strongly to enforce consistency with the previous chunk. This is a hyperparameter that can be tuned to balance the smoothness of the transitions and the reactivity of the policy. For 10 steps flow matching (SmolVLA, Pi0, Pi0.5), a value of 10.0 is a optimal value.",ke,A,ut="<strong><code>prefix_attention_schedule</code></strong>: How to weight consistency across the overlap region.",_e,X,ft="<li><code>LINEAR</code>: Linear decay from inference_delay to execution_horizon</li> <li><code>EXP</code>: Exponential decay (recommended for getting started)</li> <li><code>ONES</code>: Full weight across entire execution_horizon</li> <li><code>ZEROS</code>: Binary (full weight up to inference_delay, then zero)</li>",xe,N,dt="<strong><code>inference_delay</code></strong>: How many timesteps of inference latency your system has. This is passed to <code>predict_action_chunk()</code> rather than the config, since it may vary at runtime.",Ge,Q,We,Y,wt="Before running on a real robot, test RTC with dataset samples to visualize how it works:",Ee,H,Se,L,Tt="The script generates a visualization of the denoising process, comparing standard generation (left) with RTC (right). In the RTC plots, you can see how the first few steps (blue/purple lines) are guided to match the red ground truth trajectory (previous chunk’s tail), ensuring a smooth transition between chunks.",Ve,d,Ut='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot/flow_matching.png" alt="Denoising steps with and without RTC" width="100%"/>',Ae,F,Xe,z,Ne,P,Qe,D,bt='Both RTC and <a href="./async">async inference</a> improve real-time robot control, but they solve different problems.',Ye,q,Jt="<thead><tr><th>Aspect</th> <th>Async Inference</th> <th>RTC</th></tr></thead> <tbody><tr><td><strong>Problem</strong></td> <td>Idle frames while waiting for inference</td> <td>Discontinuities between action chunks</td></tr> <tr><td><strong>Solution</strong></td> <td>Decouple prediction from execution</td> <td>Guide new chunks to continue smoothly from previous</td></tr> <tr><td><strong>Benefit</strong></td> <td>No waiting, continuous action</td> <td>Smooth transitions, natural motion</td></tr> <tr><td><strong>Best Used</strong></td> <td>Async inference is best used with large models with high inference latency</td> <td>Flow-matching based policies</td></tr></tbody>",He,K,gt="<strong>Use both together</strong> for maximum smoothness and reactivity!",Le,O,Fe,ee,Ct="RTC includes built-in debug tracking to help you understand what’s happening during inference:",ze,te,Pe,le,jt="See <code>examples/rtc/eval_dataset.py</code> for a complete example of visualization.",De,ne,qe,ie,vt='<li><a href="https://alexander-soare.github.io/robotics/2025/08/05/smooth-as-butter-robot-policies.html" rel="nofollow">Smooth-As-Butter Robot Policies</a> - Excellent technical explanation with real robot results</li> <li><a href="https://www.physicalintelligence.company/research/real_time_chunking" rel="nofollow">Physical Intelligence - Real-Time Chunking</a> - Original paper and research</li> <li><a href="https://github.com/Physical-Intelligence/real-time-chunking-kinetix" rel="nofollow">Kinetix RTC Implementation</a> - Reference implementation from Physical Intelligence</li>',Ke,se,Oe,pe,et;return w=new Gt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new u({props:{title:"Real-Time Chunking (RTC)",local:"real-time-chunking-rtc",headingTag:"h1"}}),g=new u({props:{title:"How RTC Works (simplified)",local:"how-rtc-works-simplified",headingTag:"h2"}}),I=new u({props:{title:"Quick Start",local:"quick-start",headingTag:"h2"}}),$=new u({props:{title:"Installation",local:"installation",headingTag:"h3"}}),R=new ae({props:{code:"JTIzJTIwRm9yJTIwUGkwJTIwb3IlMjBQaTAuNSUwQXBpcCUyMGluc3RhbGwlMjAtZSUyMCUyMi4lNUJwaSU1RCUyMiUwQSUwQSUyMyUyMEZvciUyMFNtb2xWTEElMEFwaXAlMjBpbnN0YWxsJTIwLWUlMjAlMjIuJTVCc21vbHZsYSU1RCUyMg==",highlighted:`<span class="hljs-comment"># For Pi0 or Pi0.5</span>
pip install -e <span class="hljs-string">&quot;.[pi]&quot;</span>

<span class="hljs-comment"># For SmolVLA</span>
pip install -e <span class="hljs-string">&quot;.[smolvla]&quot;</span>`,wrap:!1}}),B=new u({props:{title:"Using RTC with Pi0",local:"using-rtc-with-pi0",headingTag:"h3"}}),_=new ae({props:{code:"ZnJvbSUyMGxlcm9ib3QucG9saWNpZXMucGkwJTIwaW1wb3J0JTIwUEkwUG9saWN5JTJDJTIwUEkwQ29uZmlnJTBBZnJvbSUyMGxlcm9ib3QuY29uZmlncyUyMGltcG9ydCUyMFJUQ0F0dGVudGlvblNjaGVkdWxlJTBBZnJvbSUyMGxlcm9ib3QucG9saWNpZXMucnRjJTIwaW1wb3J0JTIwUlRDQ29uZmlnJTJDJTIwQWN0aW9uUXVldWUlMEElMEElMjMlMjBMb2FkJTIwUGkwJTIwd2l0aCUyMFJUQyUyMGVuYWJsZWQlMEFwb2xpY3lfY2ZnJTIwJTNEJTIwUEkwQ29uZmlnKCklMEElMEElMjMlMjBFbmFibGUlMjBSVEMlMEFwb2xpY3lfY2ZnLnJ0Y19jb25maWclMjAlM0QlMjBSVENDb25maWcoJTBBJTIwJTIwJTIwJTIwZW5hYmxlZCUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBleGVjdXRpb25faG9yaXpvbiUzRDEwJTJDJTIwJTIwJTIzJTIwSG93JTIwbWFueSUyMHN0ZXBzJTIwdG8lMjBibGVuZCUyMHdpdGglMjBwcmV2aW91cyUyMGNodW5rJTBBJTIwJTIwJTIwJTIwbWF4X2d1aWRhbmNlX3dlaWdodCUzRDEwLjAlMkMlMjAlMjAlMjMlMjBIb3clMjBzdHJvbmdseSUyMHRvJTIwZW5mb3JjZSUyMGNvbnNpc3RlbmN5JTBBJTIwJTIwJTIwJTIwcHJlZml4X2F0dGVudGlvbl9zY2hlZHVsZSUzRFJUQ0F0dGVudGlvblNjaGVkdWxlLkVYUCUyQyUyMCUyMCUyMyUyMEV4cG9uZW50aWFsJTIwYmxlbmQlMEEpJTBBJTBBJTIzJTIwTG9hZCUyMHRoZSUyMHBvbGljeSUwQXBvbGljeSUyMCUzRCUyMFBJMFBvbGljeS5mcm9tX3ByZXRyYWluZWQoJTIybGVyb2JvdCUyRnBpMF9iYXNlJTIyJTJDJTIwcG9saWN5X2NmZyUzRHBvbGljeV9jZmclMkMlMjBkZXZpY2UlM0QlMjJjdWRhJTIyKSUwQSUwQSUyMyUyME5vdyUyMHVzZSUyMHByZWRpY3RfYWN0aW9uX2NodW5rJTIwd2l0aCUyMFJUQyUyMHBhcmFtZXRlcnMlMEFpbmZlcmVuY2VfZGVsYXklMjAlM0QlMjA0JTIwJTIwJTIzJTIwSG93JTIwbWFueSUyMHN0ZXBzJTIwb2YlMjBpbmZlcmVuY2UlMjBsYXRlbmN5JTJDJTIwdGhpcyUyMHZhbHVlcyUyMHNob3VsZCUyMGJlJTIwY2FsY3VsYXRlZCUyMGJhc2VkJTIwb24lMjB0aGUlMjBpbmZlcmVuY2UlMjBsYXRlbmN5JTIwb2YlMjB0aGUlMjBwb2xpY3klMEElMEElMjMlMjBJbml0aWFsaXplJTIwdGhlJTIwYWN0aW9uJTIwcXVldWUlMEFhY3Rpb25fcXVldWUlMjAlM0QlMjBBY3Rpb25RdWV1ZShwb2xpY3lfY2ZnLnJ0Y19jb25maWcpJTBBJTBBJTIzJTIwU3RhcnQlMjBpbiUyMGElMjBzZXBhcmF0ZSUyMHRocmVhZCUyMHdpdGglMjB0aGUlMjBmb2xsb3dpbmclMjBmdW5jdGlvbiUwQWRlZiUyMGdldF9hY3Rpb25zKCklM0ElMEElMjAlMjB3aGlsZSUyMFRydWUlM0ElMEElMjAlMjAlMjAlMjBpZiUyMHNob3VsZF9nZXRfYWN0aW9ucyUzQSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMHByZXZfYWN0aW9ucyUyMCUzRCUyMGFjdGlvbl9xdWV1ZS5nZXRfbGVmdF9vdmVyKCklMEElMjAlMjAlMjAlMjAlMjAlMjBvYnMlMjAlM0QlMjBnZXRfcm9ib3Rfb2JzZXJ2YXRpb25zKHJvYm90KSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMEdlbmVyYXRlJTIwYWN0aW9ucyUyMFdJVEglMjBSVEMlMEElMjAlMjAlMjAlMjAlMjAlMjBhY3Rpb25zJTIwJTNEJTIwcG9saWN5LnByZWRpY3RfYWN0aW9uX2NodW5rKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG9icyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGluZmVyZW5jZV9kZWxheSUzRGluZmVyZW5jZV9kZWxheSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByZXZfY2h1bmtfbGVmdF9vdmVyJTNEcHJldl9hY3Rpb25zJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMGFjdGlvbl9xdWV1ZS5tZXJnZSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBhY3Rpb25zJTJDJTIwYWN0aW9ucyUyQyUyMGluZmVyZW5jZV9kZWxheSUwQSUyMCUyMCUyMCUyMCUyMCUyMCklMEElMEFmb3IlMjBzdGVwJTIwaW4lMjByYW5nZShudW1fc3RlcHMpJTNBJTBBJTIwJTIwJTIwJTIwYWN0aW9uJTIwJTNEJTIwYWN0aW9uX3F1ZXVlLmdldCgpJTBBJTBBJTIwJTIwJTIwJTIwJTIzJTIwRXhlY3V0ZSUyMHRoZSUyMGZpcnN0JTIwTiUyMGFjdGlvbnMlMEElMjAlMjAlMjAlMjBleGVjdXRlX2FjdGlvbnMoYWN0aW9uKQ==",highlighted:`<span class="hljs-keyword">from</span> lerobot.policies.pi0 <span class="hljs-keyword">import</span> PI0Policy, PI0Config
<span class="hljs-keyword">from</span> lerobot.configs <span class="hljs-keyword">import</span> RTCAttentionSchedule
<span class="hljs-keyword">from</span> lerobot.policies.rtc <span class="hljs-keyword">import</span> RTCConfig, ActionQueue

<span class="hljs-comment"># Load Pi0 with RTC enabled</span>
policy_cfg = PI0Config()

<span class="hljs-comment"># Enable RTC</span>
policy_cfg.rtc_config = RTCConfig(
    enabled=<span class="hljs-literal">True</span>,
    execution_horizon=<span class="hljs-number">10</span>,  <span class="hljs-comment"># How many steps to blend with previous chunk</span>
    max_guidance_weight=<span class="hljs-number">10.0</span>,  <span class="hljs-comment"># How strongly to enforce consistency</span>
    prefix_attention_schedule=RTCAttentionSchedule.EXP,  <span class="hljs-comment"># Exponential blend</span>
)

<span class="hljs-comment"># Load the policy</span>
policy = PI0Policy.from_pretrained(<span class="hljs-string">&quot;lerobot/pi0_base&quot;</span>, policy_cfg=policy_cfg, device=<span class="hljs-string">&quot;cuda&quot;</span>)

<span class="hljs-comment"># Now use predict_action_chunk with RTC parameters</span>
inference_delay = <span class="hljs-number">4</span>  <span class="hljs-comment"># How many steps of inference latency, this values should be calculated based on the inference latency of the policy</span>

<span class="hljs-comment"># Initialize the action queue</span>
action_queue = ActionQueue(policy_cfg.rtc_config)

<span class="hljs-comment"># Start in a separate thread with the following function</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_actions</span>():
  <span class="hljs-keyword">while</span> <span class="hljs-literal">True</span>:
    <span class="hljs-keyword">if</span> should_get_actions:

      prev_actions = action_queue.get_left_over()
      obs = get_robot_observations(robot)

      <span class="hljs-comment"># Generate actions WITH RTC</span>
      actions = policy.predict_action_chunk(
          obs,
          inference_delay=inference_delay,
          prev_chunk_left_over=prev_actions,
      )

      action_queue.merge(
          actions, actions, inference_delay
      )

<span class="hljs-keyword">for</span> step <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(num_steps):
    action = action_queue.get()

    <span class="hljs-comment"># Execute the first N actions</span>
    execute_actions(action)`,wrap:!1}}),x=new u({props:{title:"Key Parameters",local:"key-parameters",headingTag:"h2"}}),S=new ae({props:{code:"UlRDQ29uZmlnKGV4ZWN1dGlvbl9ob3Jpem9uJTNEMTAp",highlighted:'RTCConfig(execution_horizon=<span class="hljs-number">10</span>)',wrap:!1}}),Q=new u({props:{title:"Testing RTC Offline",local:"testing-rtc-offline",headingTag:"h2"}}),H=new ae({props:{code:"cHl0aG9uJTIwZXhhbXBsZXMlMkZydGMlMkZldmFsX2RhdGFzZXQucHklMjAlNUMlMEElMjAlMjAlMjAlMjAtLXBvbGljeS5wYXRoJTNEbGVyb2JvdCUyRnBpMF9saWJlcm9fZmluZXR1bmVkJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LnJlcG9faWQlM0RIdWdnaW5nRmFjZVZMQSUyRmxpYmVybyUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcnRjLmV4ZWN1dGlvbl9ob3Jpem9uJTNEMTAlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJ0Yy5tYXhfZ3VpZGFuY2Vfd2VpZ2h0JTNEMTAuMCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGV2aWNlJTNEY3VkYQ==",highlighted:`python examples/rtc/eval_dataset.py \\
    --policy.path=lerobot/pi0_libero_finetuned \\
    --dataset.repo_id=HuggingFaceVLA/libero \\
    --rtc.execution_horizon=10 \\
    --rtc.max_guidance_weight=10.0 \\
    --device=cuda`,wrap:!1}}),F=new u({props:{title:"Testing RTC with a Real Robot",local:"testing-rtc-with-a-real-robot",headingTag:"h2"}}),z=new ae({props:{code:"cHl0aG9uJTIwZXhhbXBsZXMlMkZydGMlMkZldmFsX3dpdGhfcmVhbF9yb2JvdC5weSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcG9saWN5LnBhdGglM0QlMjQlN0JIRl9VU0VSTkFNRSU3RCUyRnBvbGljeV9yZXBvX2lkJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC50eXBlJTNEc28xMDBfZm9sbG93ZXIlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJvYm90LnBvcnQlM0QlMkZkZXYlMkZ0dHkudXNibW9kZW01OEZBMDgzNDU5MSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3QuY2FtZXJhcyUzRCUyMiU3QiUyMGdyaXBwZXIlM0ElMjAlN0J0eXBlJTNBJTIwb3BlbmN2JTJDJTIwaW5kZXhfb3JfcGF0aCUzQSUyMDElMkMlMjB3aWR0aCUzQSUyMDY0MCUyQyUyMGhlaWdodCUzQSUyMDQ4MCUyQyUyMGZwcyUzQSUyMDMwJTdEJTJDJTIwZnJvbnQlM0ElMjAlN0J0eXBlJTNBJTIwb3BlbmN2JTJDJTIwaW5kZXhfb3JfcGF0aCUzQSUyMDAlMkMlMjB3aWR0aCUzQSUyMDY0MCUyQyUyMGhlaWdodCUzQSUyMDQ4MCUyQyUyMGZwcyUzQSUyMDMwJTdEJTdEJTIyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS10YXNrJTNEJTIyTW92ZSUyMGdyZWVuJTIwc21hbGwlMjBvYmplY3QlMjBpbnRvJTIwdGhlJTIwcHVycGxlJTIwcGxhdGZvcm0lMjIlMjAlNUMlMEElMjAlMjAlMjAlMjAtLWR1cmF0aW9uJTNEMTIwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kZXZpY2UlM0RjdWRh",highlighted:`python examples/rtc/eval_with_real_robot.py \\
    --policy.path=<span class="hljs-variable">\${HF_USERNAME}</span>/policy_repo_id \\
    --robot.type=so100_follower \\
    --robot.port=/dev/tty.usbmodem58FA0834591 \\
    --robot.cameras=<span class="hljs-string">&quot;{ gripper: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}, front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}&quot;</span> \\
    --task=<span class="hljs-string">&quot;Move green small object into the purple platform&quot;</span> \\
    --duration=120 \\
    --device=cuda`,wrap:!1}}),P=new u({props:{title:"How It Differs from the Async Inference in LeRobot",local:"how-it-differs-from-the-async-inference-in-lerobot",headingTag:"h2"}}),O=new u({props:{title:"Advanced: Debug Tracking",local:"advanced-debug-tracking",headingTag:"h2"}}),te=new ae({props:{code:"JTIzJTIwRW5hYmxlJTIwZGVidWclMjB0cmFja2luZyUwQXBvbGljeV9jZmcucnRjX2NvbmZpZy5kZWJ1ZyUyMCUzRCUyMFRydWUlMEFwb2xpY3lfY2ZnLnJ0Y19jb25maWcuZGVidWdfbWF4bGVuJTIwJTNEJTIwMTAwJTBBJTBBJTIzJTIwQWZ0ZXIlMjBpbmZlcmVuY2UlMkMlMjBhY2Nlc3MlMjBkZWJ1ZyUyMGRhdGElMEFkZWJ1Z19kYXRhJTIwJTNEJTIwcG9saWN5LnJ0Y19wcm9jZXNzb3IuZ2V0X2RlYnVnX2RhdGEoKSUwQSUwQSUyMyUyMFZpc3VhbGl6ZSUyMGRlbm9pc2luZyUyMHN0ZXBzJTJDJTIwY29ycmVjdGlvbnMlMkMlMjBldGMuJTBBZnJvbSUyMGxlcm9ib3QucG9saWNpZXMucnRjLmRlYnVnX3Zpc3VhbGl6ZXIlMjBpbXBvcnQlMjBSVENEZWJ1Z1Zpc3VhbGl6ZXIlMEF2aXN1YWxpemVyJTIwJTNEJTIwUlRDRGVidWdWaXN1YWxpemVyKCklMEElMjMlMjAuLi4lMjBjcmVhdGUlMjBwbG90cw==",highlighted:`<span class="hljs-comment"># Enable debug tracking</span>
policy_cfg.rtc_config.debug = <span class="hljs-literal">True</span>
policy_cfg.rtc_config.debug_maxlen = <span class="hljs-number">100</span>

<span class="hljs-comment"># After inference, access debug data</span>
debug_data = policy.rtc_processor.get_debug_data()

<span class="hljs-comment"># Visualize denoising steps, corrections, etc.</span>
<span class="hljs-keyword">from</span> lerobot.policies.rtc.debug_visualizer <span class="hljs-keyword">import</span> RTCDebugVisualizer
visualizer = RTCDebugVisualizer()
<span class="hljs-comment"># ... create plots</span>`,wrap:!1}}),ne=new u({props:{title:"References",local:"references",headingTag:"h2"}}),se=new Wt({props:{source:"https://github.com/huggingface/lerobot/blob/main/docs/source/rtc.mdx"}}),{c(){f=a("meta"),ce=i(),oe=a("p"),re=i(),c(w.$$.fragment),Me=i(),c(T.$$.fragment),me=i(),U=a("p"),U.innerHTML=nt,ye=i(),b=a("p"),b.textContent=it,he=i(),J=a("p"),J.textContent=st,ue=i(),c(g.$$.fragment),fe=i(),C=a("p"),C.textContent=at,de=i(),j=a("p"),j.textContent=ot,we=i(),v=a("p"),v.textContent=pt,Te=i(),c(I.$$.fragment),Ue=i(),c($.$$.fragment),be=i(),Z=a("p"),Z.textContent=ct,Je=i(),c(R.$$.fragment),ge=i(),c(B.$$.fragment),Ce=i(),k=a("p"),k.innerHTML=rt,je=i(),c(_.$$.fragment),ve=i(),c(x.$$.fragment),Ie=i(),G=a("p"),G.innerHTML=Mt,$e=i(),W=a("p"),W.innerHTML=mt,Ze=i(),E=a("p"),E.textContent=yt,Re=i(),c(S.$$.fragment),Be=i(),V=a("p"),V.innerHTML=ht,ke=i(),A=a("p"),A.innerHTML=ut,_e=i(),X=a("ul"),X.innerHTML=ft,xe=i(),N=a("p"),N.innerHTML=dt,Ge=i(),c(Q.$$.fragment),We=i(),Y=a("p"),Y.textContent=wt,Ee=i(),c(H.$$.fragment),Se=i(),L=a("p"),L.textContent=Tt,Ve=i(),d=a("p"),d.innerHTML=Ut,Ae=i(),c(F.$$.fragment),Xe=i(),c(z.$$.fragment),Ne=i(),c(P.$$.fragment),Qe=i(),D=a("p"),D.innerHTML=bt,Ye=i(),q=a("table"),q.innerHTML=Jt,He=i(),K=a("p"),K.innerHTML=gt,Le=i(),c(O.$$.fragment),Fe=i(),ee=a("p"),ee.textContent=Ct,ze=i(),c(te.$$.fragment),Pe=i(),le=a("p"),le.innerHTML=jt,De=i(),c(ne.$$.fragment),qe=i(),ie=a("ul"),ie.innerHTML=vt,Ke=i(),c(se.$$.fragment),Oe=i(),pe=a("p"),this.h()},l(e){const t=_t("svelte-u9bgzb",document.head);f=o(t,"META",{name:!0,content:!0}),t.forEach(l),ce=s(e),oe=o(e,"P",{}),It(oe).forEach(l),re=s(e),r(w.$$.fragment,e),Me=s(e),r(T.$$.fragment,e),me=s(e),U=o(e,"P",{"data-svelte-h":!0}),p(U)!=="svelte-1j47oed"&&(U.innerHTML=nt),ye=s(e),b=o(e,"P",{"data-svelte-h":!0}),p(b)!=="svelte-10lpdxf"&&(b.textContent=it),he=s(e),J=o(e,"P",{"data-svelte-h":!0}),p(J)!=="svelte-1vcb40f"&&(J.textContent=st),ue=s(e),r(g.$$.fragment,e),fe=s(e),C=o(e,"P",{"data-svelte-h":!0}),p(C)!=="svelte-1riu7p6"&&(C.textContent=at),de=s(e),j=o(e,"P",{"data-svelte-h":!0}),p(j)!=="svelte-3km27j"&&(j.textContent=ot),we=s(e),v=o(e,"P",{"data-svelte-h":!0}),p(v)!=="svelte-kaxhsx"&&(v.textContent=pt),Te=s(e),r(I.$$.fragment,e),Ue=s(e),r($.$$.fragment,e),be=s(e),Z=o(e,"P",{"data-svelte-h":!0}),p(Z)!=="svelte-1fm2p8u"&&(Z.textContent=ct),Je=s(e),r(R.$$.fragment,e),ge=s(e),r(B.$$.fragment,e),Ce=s(e),k=o(e,"P",{"data-svelte-h":!0}),p(k)!=="svelte-wy9hng"&&(k.innerHTML=rt),je=s(e),r(_.$$.fragment,e),ve=s(e),r(x.$$.fragment,e),Ie=s(e),G=o(e,"P",{"data-svelte-h":!0}),p(G)!=="svelte-49w63r"&&(G.innerHTML=Mt),$e=s(e),W=o(e,"P",{"data-svelte-h":!0}),p(W)!=="svelte-19v3ng2"&&(W.innerHTML=mt),Ze=s(e),E=o(e,"P",{"data-svelte-h":!0}),p(E)!=="svelte-1ap7gih"&&(E.textContent=yt),Re=s(e),r(S.$$.fragment,e),Be=s(e),V=o(e,"P",{"data-svelte-h":!0}),p(V)!=="svelte-c9t4hd"&&(V.innerHTML=ht),ke=s(e),A=o(e,"P",{"data-svelte-h":!0}),p(A)!=="svelte-178oq51"&&(A.innerHTML=ut),_e=s(e),X=o(e,"UL",{"data-svelte-h":!0}),p(X)!=="svelte-1ee7tcw"&&(X.innerHTML=ft),xe=s(e),N=o(e,"P",{"data-svelte-h":!0}),p(N)!=="svelte-2hfqse"&&(N.innerHTML=dt),Ge=s(e),r(Q.$$.fragment,e),We=s(e),Y=o(e,"P",{"data-svelte-h":!0}),p(Y)!=="svelte-7ysbri"&&(Y.textContent=wt),Ee=s(e),r(H.$$.fragment,e),Se=s(e),L=o(e,"P",{"data-svelte-h":!0}),p(L)!=="svelte-1adc0oe"&&(L.textContent=Tt),Ve=s(e),d=o(e,"P",{align:!0,"data-svelte-h":!0}),p(d)!=="svelte-1dpheek"&&(d.innerHTML=Ut),Ae=s(e),r(F.$$.fragment,e),Xe=s(e),r(z.$$.fragment,e),Ne=s(e),r(P.$$.fragment,e),Qe=s(e),D=o(e,"P",{"data-svelte-h":!0}),p(D)!=="svelte-1c1xyug"&&(D.innerHTML=bt),Ye=s(e),q=o(e,"TABLE",{"data-svelte-h":!0}),p(q)!=="svelte-1h1z6yz"&&(q.innerHTML=Jt),He=s(e),K=o(e,"P",{"data-svelte-h":!0}),p(K)!=="svelte-k47o3h"&&(K.innerHTML=gt),Le=s(e),r(O.$$.fragment,e),Fe=s(e),ee=o(e,"P",{"data-svelte-h":!0}),p(ee)!=="svelte-1g0slfh"&&(ee.textContent=Ct),ze=s(e),r(te.$$.fragment,e),Pe=s(e),le=o(e,"P",{"data-svelte-h":!0}),p(le)!=="svelte-1irmrvc"&&(le.innerHTML=jt),De=s(e),r(ne.$$.fragment,e),qe=s(e),ie=o(e,"UL",{"data-svelte-h":!0}),p(ie)!=="svelte-uz9e27"&&(ie.innerHTML=vt),Ke=s(e),r(se.$$.fragment,e),Oe=s(e),pe=o(e,"P",{}),It(pe).forEach(l),this.h()},h(){tt(f,"name","hf:doc:metadata"),tt(f,"content",St),tt(d,"align","center")},m(e,t){xt(document.head,f),n(e,ce,t),n(e,oe,t),n(e,re,t),M(w,e,t),n(e,Me,t),M(T,e,t),n(e,me,t),n(e,U,t),n(e,ye,t),n(e,b,t),n(e,he,t),n(e,J,t),n(e,ue,t),M(g,e,t),n(e,fe,t),n(e,C,t),n(e,de,t),n(e,j,t),n(e,we,t),n(e,v,t),n(e,Te,t),M(I,e,t),n(e,Ue,t),M($,e,t),n(e,be,t),n(e,Z,t),n(e,Je,t),M(R,e,t),n(e,ge,t),M(B,e,t),n(e,Ce,t),n(e,k,t),n(e,je,t),M(_,e,t),n(e,ve,t),M(x,e,t),n(e,Ie,t),n(e,G,t),n(e,$e,t),n(e,W,t),n(e,Ze,t),n(e,E,t),n(e,Re,t),M(S,e,t),n(e,Be,t),n(e,V,t),n(e,ke,t),n(e,A,t),n(e,_e,t),n(e,X,t),n(e,xe,t),n(e,N,t),n(e,Ge,t),M(Q,e,t),n(e,We,t),n(e,Y,t),n(e,Ee,t),M(H,e,t),n(e,Se,t),n(e,L,t),n(e,Ve,t),n(e,d,t),n(e,Ae,t),M(F,e,t),n(e,Xe,t),M(z,e,t),n(e,Ne,t),M(P,e,t),n(e,Qe,t),n(e,D,t),n(e,Ye,t),n(e,q,t),n(e,He,t),n(e,K,t),n(e,Le,t),M(O,e,t),n(e,Fe,t),n(e,ee,t),n(e,ze,t),M(te,e,t),n(e,Pe,t),n(e,le,t),n(e,De,t),M(ne,e,t),n(e,qe,t),n(e,ie,t),n(e,Ke,t),M(se,e,t),n(e,Oe,t),n(e,pe,t),et=!0},p:Zt,i(e){et||(m(w.$$.fragment,e),m(T.$$.fragment,e),m(g.$$.fragment,e),m(I.$$.fragment,e),m($.$$.fragment,e),m(R.$$.fragment,e),m(B.$$.fragment,e),m(_.$$.fragment,e),m(x.$$.fragment,e),m(S.$$.fragment,e),m(Q.$$.fragment,e),m(H.$$.fragment,e),m(F.$$.fragment,e),m(z.$$.fragment,e),m(P.$$.fragment,e),m(O.$$.fragment,e),m(te.$$.fragment,e),m(ne.$$.fragment,e),m(se.$$.fragment,e),et=!0)},o(e){y(w.$$.fragment,e),y(T.$$.fragment,e),y(g.$$.fragment,e),y(I.$$.fragment,e),y($.$$.fragment,e),y(R.$$.fragment,e),y(B.$$.fragment,e),y(_.$$.fragment,e),y(x.$$.fragment,e),y(S.$$.fragment,e),y(Q.$$.fragment,e),y(H.$$.fragment,e),y(F.$$.fragment,e),y(z.$$.fragment,e),y(P.$$.fragment,e),y(O.$$.fragment,e),y(te.$$.fragment,e),y(ne.$$.fragment,e),y(se.$$.fragment,e),et=!1},d(e){e&&(l(ce),l(oe),l(re),l(Me),l(me),l(U),l(ye),l(b),l(he),l(J),l(ue),l(fe),l(C),l(de),l(j),l(we),l(v),l(Te),l(Ue),l(be),l(Z),l(Je),l(ge),l(Ce),l(k),l(je),l(ve),l(Ie),l(G),l($e),l(W),l(Ze),l(E),l(Re),l(Be),l(V),l(ke),l(A),l(_e),l(X),l(xe),l(N),l(Ge),l(We),l(Y),l(Ee),l(Se),l(L),l(Ve),l(d),l(Ae),l(Xe),l(Ne),l(Qe),l(D),l(Ye),l(q),l(He),l(K),l(Le),l(Fe),l(ee),l(ze),l(Pe),l(le),l(De),l(qe),l(ie),l(Ke),l(Oe),l(pe)),l(f),h(w,e),h(T,e),h(g,e),h(I,e),h($,e),h(R,e),h(B,e),h(_,e),h(x,e),h(S,e),h(Q,e),h(H,e),h(F,e),h(z,e),h(P,e),h(O,e),h(te,e),h(ne,e),h(se,e)}}}const St='{"title":"Real-Time Chunking (RTC)","local":"real-time-chunking-rtc","sections":[{"title":"How RTC Works (simplified)","local":"how-rtc-works-simplified","sections":[],"depth":2},{"title":"Quick Start","local":"quick-start","sections":[{"title":"Installation","local":"installation","sections":[],"depth":3},{"title":"Using RTC with Pi0","local":"using-rtc-with-pi0","sections":[],"depth":3}],"depth":2},{"title":"Key Parameters","local":"key-parameters","sections":[],"depth":2},{"title":"Testing RTC Offline","local":"testing-rtc-offline","sections":[],"depth":2},{"title":"Testing RTC with a Real Robot","local":"testing-rtc-with-a-real-robot","sections":[],"depth":2},{"title":"How It Differs from the Async Inference in LeRobot","local":"how-it-differs-from-the-async-inference-in-lerobot","sections":[],"depth":2},{"title":"Advanced: Debug Tracking","local":"advanced-debug-tracking","sections":[],"depth":2},{"title":"References","local":"references","sections":[],"depth":2}],"depth":1}';function Vt(lt){return Rt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ht extends Bt{constructor(f){super(),kt(this,f,Vt,Et,$t,{})}}export{Ht as component};
