import{s as as,n as ns,o as is}from"../chunks/scheduler.eb244325.js";import{S as os,i as rs,e as i,s as a,c as p,h as ps,a as o,d as l,b as n,f as dl,g as M,j as r,k as Jl,l as Ul,m as s,n as c,t as y,o as m,p as h}from"../chunks/index.3fe63ad3.js";import{C as Ms}from"../chunks/CopyLLMTxtMenu.88bde5f2.js";import{C as J}from"../chunks/CodeBlock.934d290d.js";import{H as d,E as cs}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.341974a5.js";function ys(Tl){let U,ke,Ye,Ge,u,Be,w,Fe,f,ul=`Reachy 2 is an open-source humanoid robot made by Pollen Robotics, specifically designed for the development of embodied AI and real-world applications.
Check out <a href="https://www.pollen-robotics.com/reachy/" rel="nofollow">Pollen Robotics website</a>, or access <a href="https://docs.pollen-robotics.com/" rel="nofollow">Reachy 2 documentation</a> for more information on the platform!`,He,b,ze,j,wl="Currently, there are two ways to teleoperate Reachy 2:",qe,C,fl="<li>Pollen Robotics’ VR teleoperation (not included in LeRobot).</li> <li>Robot-to-robot teleoperation (use one Reachy 2 to control another).</li>",De,$,Pe,g,bl='<strong>(Linux only)</strong> You can run Reachy 2 in simulation (Gazebo or MuJoCo) using the provided <a href="https://hub.docker.com/r/pollenrobotics/reachy2_core" rel="nofollow">Docker image</a>.',Oe,R,jl='<li>Install <a href="https://docs.docker.com/engine/" rel="nofollow">Docker Engine</a>.</li> <li>Run (for MuJoCo):</li>',Ke,_,et,T,We,Cl="If MuJoCo runs slowly (low simulation frequency), append <code>-e LD_LIBRARY_PATH=&quot;/opt/host-libs:$LD_LIBRARY_PATH&quot; \\</code> to the previous command to improve performance:",hl,v,tt,I,lt,Z,st,E,$l=`<li>On your robot, check the <strong>service images</strong> meet the minimum versions:
<ul><li><strong>reachy2-core &gt;= 1.7.5.2</strong></li> <li><strong>webrtc &gt;= 2.0.1.1</strong></li></ul></li>`,at,L,gl="Then, if you want to use VR teleoperation:",nt,N,Rl=`<li>Install the <a href="https://docs.pollen-robotics.com/teleoperation/teleoperation-introduction/discover-teleoperation/" rel="nofollow">Reachy 2 teleoperation application</a>.
Use version <strong>&gt;=v1.2.0</strong></li>`,it,V,_l="We recommend using two computers: one for teleoperation (Windows required) and another for recording with LeRobot.",ot,A,rt,S,vl='Follow the <a href="https://github.com/huggingface/lerobot#installation" rel="nofollow">installation instructions</a> to install LeRobot.',pt,X,Il="Install LeRobot with Reachy 2 dependencies:",Mt,Q,ct,W,yt,Y,Zl="How you manage Reachy 2 recording sessions is up to you, but the <strong>easiest</strong> way is to use this server so you can control sessions directly from the VR teleoperation app.",mt,x,El="<p><strong>Note:</strong> Currently, only the VR teleoperation application works as a client for this server, so this step primarily targets teleoperation. You’re free to develop custom clients to manage sessions to your needs.</p>",ht,k,Ll="In your LeRobot environment, install the server from source:",dt,G,Jt,B,Nl='Find the <a href="https://github.com/pollen-robotics/pollen_data_acquisition_server" rel="nofollow">pollen_data_acquisition_server documentation here</a>.',Ut,F,Tt,H,ut,z,Vl=`Before starting teleoperation and data recording, find the <a href="https://docs.pollen-robotics.com/getting-started/setup-reachy2/connect-reachy2/" rel="nofollow">robot’s IP address</a>.
We strongly recommend connecting all devices (PC and robot) via <strong>Ethernet</strong>.`,wt,q,ft,D,Al="There are two ways to manage recording sessions when using the Reachy 2 VR teleoperation application:",bt,P,Sl="<li><strong>Using the data acquisition server (recommended for VR teleop)</strong>: The VR app orchestrates sessions (via the server it tells LeRobot when to create datasets, start/stop episodes) while also controlling the robot’s motions.</li> <li><strong>Using LeRobot’s record script</strong>: LeRobot owns session control and decides when to start/stop episodes. If you also use the VR teleop app, it’s only for motion control.</li>",jt,O,Ct,K,Xl="Make sure you have installed pollen_data_acquisition_server, as explained in the Setup section.",$t,ee,Ql="Launch the data acquisition server to be able to manage your session directly from the teleoperation application:",gt,te,Rt,le,Wl=`Then get into the teleoperation application and choose “Data acquisition session”.
You can finally setup your session by following the screens displayed.`,_t,se,Yl="<p>Even without the VR app, you can use the <code>pollen_data_acquisition_server</code> with your own client implementation.</p>",vt,ae,It,ne,xl=`Reachy 2 is fully supported by LeRobot’s recording features.
If you choose this option but still want to use the VR teleoperation application, select “Standard session” in the app.`,Zt,ie,kl=`<strong>Example: start a recording without the mobile base:</strong>
First add reachy2 and reachy2_teleoperator to the imports of the record script. Then you can use the following command:`,Et,oe,Lt,re,Nt,pe,Gl="<strong>Extended setup overview (all options included):</strong>",Vt,Me,At,ce,St,ye,Bl=`Determine whether LeRobot robot.send_action() sends commands to the robot.
<strong>Must</strong> be set to false while using the VR teleoperation application, as the app already sends commands.`,Xt,me,Qt,he,Fl=`Determine whether the teleoperator reads the goal or present position of the robot.
Must be set to true if a compliant Reachy 2 is used to control another one.`,Wt,de,Yt,Je,Hl=`From our initial tests, recording <strong>all</strong> joints when only some are moving can reduce model quality with certain policies.
To avoid this, you can exclude specific parts from recording and replay using:`,xt,Ue,kt,Te,zl="with <code>&lt;part&gt;</code> being one of : <code>mobile_base</code>, <code>l_arm</code>, <code>r_arm&quot;, </code>neck<code>, </code>antennas`.\nIt determine whether the corresponding part is recorded in the observations. True if not set.",Gt,ue,ql="By default, <strong>all parts are recorded</strong>.",Bt,we,Dl="The same per-part mechanism is available in <code>reachy2_teleoperator</code> as well.",Ft,fe,Ht,be,Pl="with <code>&lt;part&gt;</code> being one of : <code>mobile_base</code>, <code>l_arm</code>, <code>r_arm&quot;, </code>neck<code>, </code>antennas`.\nDetermine whether the corresponding part is recorded in the actions. True if not set.",zt,je,Ol=`<p><strong>Important:</strong> In a given session, the <strong>enabled parts must match</strong> on both the robot and the teleoperator.
For example, if the robot runs with <code>--robot.with_mobile_base=false</code>, the teleoperator must disable the same part <code>--teleoperator.with_mobile_base=false</code>.</p>`,qt,Ce,Dt,$e,Kl="You can do the same for <strong>cameras</strong>. Enable or disable each camera with default parameters using:",Pt,ge,Ot,Re,es=`By default, no camera is recorded, all camera arguments are set to <code>false</code>.
If you want to, you can use custom <code>width</code> and <code>height</code> parameters for Reachy 2’s cameras using the <code>--robot.camera_width</code> &amp; <code>--robot.camera_height</code> argument:`,Kt,_e,el,ve,ts="This will change the resolution of all 3 default robot cameras (enabled by the above bool arguments).",tl,Ie,ls="If you want, you can add additional cameras other than the ones in the robot as usual with:",ll,Ze,sl,Ee,al,Le,ss="Make sure the robot is configured with the same parts as the dataset:",nl,Ne,il,Ve,ol,Ae,rl,Se,pl,Xe,Ml,Qe,cl,xe,yl;return u=new Ms({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),w=new d({props:{title:"Reachy 2",local:"reachy-2",headingTag:"h1"}}),b=new d({props:{title:"Teleoperate Reachy 2",local:"teleoperate-reachy-2",headingTag:"h2"}}),$=new d({props:{title:"Reachy 2 Simulation",local:"reachy-2-simulation",headingTag:"h2"}}),_=new J({props:{code:"ZG9ja2VyJTIwcnVuJTIwLS1ybSUyMC1pdCUyMCU1QyUwQSUyMCUyMC0tbmFtZSUyMHJlYWNoeSUyMCU1QyUwQSUyMCUyMC0tcHJpdmlsZWdlZCUyMCU1QyUwQSUyMCUyMC0tbmV0d29yayUyMGhvc3QlMjAlNUMlMEElMjAlMjAtLWlwYyUyMGhvc3QlMjAlNUMlMEElMjAlMjAtLWRldmljZS1jZ3JvdXAtcnVsZSUzRCdjJTIwMTg5JTNBKiUyMHJ3bSclMjAlNUMlMEElMjAlMjAtLWdyb3VwLWFkZCUyMGF1ZGlvJTIwJTVDJTBBJTIwJTIwLWUlMjBST1NfRE9NQUlOX0lEJTNEJTIyJTI0Uk9TX0RPTUFJTl9JRCUyMiUyMCU1QyUwQSUyMCUyMC1lJTIwRElTUExBWSUzRCUyMiUyNERJU1BMQVklMjIlMjAlNUMlMEElMjAlMjAtZSUyMFJDVVRJTFNfQ09OU09MRV9PVVRQVVRfRk9STUFUJTNEJTIyJTVCJTdCc2V2ZXJpdHklN0QlNUQlM0ElMjAlN0JtZXNzYWdlJTdEJTIyJTIwJTVDJTBBJTIwJTIwLWUlMjBSRUFDSFkyX0NPUkVfU0VSVklDRV9GQUtFJTNEJTIyJTI0JTdCUkVBQ0hZMl9DT1JFX1NFUlZJQ0VfRkFLRSUzQS10cnVlJTdEJTIyJTIwJTVDJTBBJTIwJTIwLXYlMjAlMkZkZXYlM0ElMkZkZXYlMjAlNUMlMEElMjAlMjAtdiUyMCUyMiUyNEhPTUUlMkYucmVhY2h5X2NvbmZpZyUyMiUzQSUyRmhvbWUlMkZyZWFjaHklMkYucmVhY2h5X2NvbmZpZ19vdmVycmlkZSUyMCU1QyUwQSUyMCUyMC12JTIwJTIyJTI0SE9NRSUyRi5yZWFjaHkubG9nJTIyJTNBJTJGaG9tZSUyRnJlYWNoeSUyRi5yb3MlMkZsb2clMjAlNUMlMEElMjAlMjAtdiUyMCUyRnVzciUyRmxpYiUyRng4Nl82NC1saW51eC1nbnUlM0ElMkZvcHQlMkZob3N0LWxpYnMlMjAlNUMlMEElMjAlMjAtLWVudHJ5cG9pbnQlMjAlMkZwYWNrYWdlJTJGbGF1bmNoLnNoJTIwJTVDJTBBJTIwJTIwcG9sbGVucm9ib3RpY3MlMkZyZWFjaHkyX2NvcmUlM0ExLjcuNS45X2RlcGxveSUyMCU1QyUwQSUyMCUyMHN0YXJ0X3J2aXolM0ElM0R0cnVlJTIwc3RhcnRfc2RrX3NlcnZlciUzQSUzRHRydWUlMjBtdWpvY28lM0ElM0R0cnVl",highlighted:`docker run --rm -<span class="hljs-literal">it</span> <span class="hljs-string">\\</span>
  --name reachy <span class="hljs-string">\\</span>
  --privileged <span class="hljs-string">\\</span>
  --network host <span class="hljs-string">\\</span>
  --ipc host <span class="hljs-string">\\</span>
  --device-cgroup-rule=<span class="hljs-string">&#x27;c 189:* rwm&#x27;</span> <span class="hljs-string">\\</span>
  --group-add audio <span class="hljs-string">\\</span>
  -e ROS_DOMAIN_ID=<span class="hljs-string">&quot;$ROS_DOMAIN_ID&quot;</span> <span class="hljs-string">\\</span>
  -e DISPLAY=<span class="hljs-string">&quot;$DISPLAY&quot;</span> <span class="hljs-string">\\</span>
  -e RCUTILS_CONSOLE_OUTPUT_FORMAT=<span class="hljs-string">&quot;[{severity}]: {message}&quot;</span> <span class="hljs-string">\\</span>
  -e REACHY2_CORE_SERVICE_FAKE=<span class="hljs-string">&quot;\${REACHY2_CORE_SERVICE_FAKE:-true}&quot;</span> <span class="hljs-string">\\</span>
  -v /dev:/dev <span class="hljs-string">\\</span>
  -v <span class="hljs-string">&quot;$HOME/.reachy_config&quot;</span>:<span class="hljs-regexp">/home/reachy/</span>.reachy_config_override <span class="hljs-string">\\</span>
  -v <span class="hljs-string">&quot;$HOME/.reachy.log&quot;</span>:<span class="hljs-regexp">/home/reachy/</span>.ros/log <span class="hljs-string">\\</span>
  -v /usr/lib/x86_64-linux-gnu:/opt/host-libs <span class="hljs-string">\\</span>
  --entrypoint /package/launch.sh <span class="hljs-string">\\</span>
  pollenrobotics/reachy2_core:<span class="hljs-number">1.7</span>.<span class="hljs-number">5.9_deploy</span> <span class="hljs-string">\\</span>
  start_rviz:=<span class="hljs-literal">true</span> start_sdk_server:=<span class="hljs-literal">true</span> mujoco:=<span class="hljs-literal">true</span>`,wrap:!1}}),v=new J({props:{code:"ZG9ja2VyJTIwcnVuJTIwLS1ybSUyMC1pdCUyMCU1QyUwQSUyMCUyMC0tbmFtZSUyMHJlYWNoeSUyMCU1QyUwQSUyMCUyMC0tcHJpdmlsZWdlZCUyMCU1QyUwQSUyMCUyMC0tbmV0d29yayUyMGhvc3QlMjAlNUMlMEElMjAlMjAtLWlwYyUyMGhvc3QlMjAlNUMlMEElMjAlMjAtLWRldmljZS1jZ3JvdXAtcnVsZSUzRCdjJTIwMTg5JTNBKiUyMHJ3bSclMjAlNUMlMEElMjAlMjAtLWdyb3VwLWFkZCUyMGF1ZGlvJTIwJTVDJTBBJTIwJTIwLWUlMjBST1NfRE9NQUlOX0lEJTNEJTIyJTI0Uk9TX0RPTUFJTl9JRCUyMiUyMCU1QyUwQSUyMCUyMC1lJTIwRElTUExBWSUzRCUyMiUyNERJU1BMQVklMjIlMjAlNUMlMEElMjAlMjAtZSUyMFJDVVRJTFNfQ09OU09MRV9PVVRQVVRfRk9STUFUJTNEJTIyJTVCJTdCc2V2ZXJpdHklN0QlNUQlM0ElMjAlN0JtZXNzYWdlJTdEJTIyJTIwJTVDJTBBJTIwJTIwLWUlMjBSRUFDSFkyX0NPUkVfU0VSVklDRV9GQUtFJTNEJTIyJTI0JTdCUkVBQ0hZMl9DT1JFX1NFUlZJQ0VfRkFLRSUzQS10cnVlJTdEJTIyJTIwJTVDJTBBJTIwJTIwLWUlMjBMRF9MSUJSQVJZX1BBVEglM0QlMjIlMkZvcHQlMkZob3N0LWxpYnMlM0ElMjRMRF9MSUJSQVJZX1BBVEglMjIlMjAlNUMlMEElMjAlMjAtdiUyMCUyRmRldiUzQSUyRmRldiUyMCU1QyUwQSUyMCUyMC12JTIwJTIyJTI0SE9NRSUyRi5yZWFjaHlfY29uZmlnJTIyJTNBJTJGaG9tZSUyRnJlYWNoeSUyRi5yZWFjaHlfY29uZmlnX292ZXJyaWRlJTIwJTVDJTBBJTIwJTIwLXYlMjAlMjIlMjRIT01FJTJGLnJlYWNoeS5sb2clMjIlM0ElMkZob21lJTJGcmVhY2h5JTJGLnJvcyUyRmxvZyUyMCU1QyUwQSUyMCUyMC12JTIwJTJGdXNyJTJGbGliJTJGeDg2XzY0LWxpbnV4LWdudSUzQSUyRm9wdCUyRmhvc3QtbGlicyUyMCU1QyUwQSUyMCUyMC0tZW50cnlwb2ludCUyMCUyRnBhY2thZ2UlMkZsYXVuY2guc2glMjAlNUMlMEElMjAlMjBwb2xsZW5yb2JvdGljcyUyRnJlYWNoeTJfY29yZSUzQTEuNy41LjlfZGVwbG95JTIwJTVDJTBBJTIwJTIwc3RhcnRfcnZpeiUzQSUzRHRydWUlMjBzdGFydF9zZGtfc2VydmVyJTNBJTNEdHJ1ZSUyMG11am9jbyUzQSUzRHRydWU=",highlighted:`docker run --rm -<span class="hljs-literal">it</span> <span class="hljs-string">\\</span>
  --name reachy <span class="hljs-string">\\</span>
  --privileged <span class="hljs-string">\\</span>
  --network host <span class="hljs-string">\\</span>
  --ipc host <span class="hljs-string">\\</span>
  --device-cgroup-rule=<span class="hljs-string">&#x27;c 189:* rwm&#x27;</span> <span class="hljs-string">\\</span>
  --group-add audio <span class="hljs-string">\\</span>
  -e ROS_DOMAIN_ID=<span class="hljs-string">&quot;$ROS_DOMAIN_ID&quot;</span> <span class="hljs-string">\\</span>
  -e DISPLAY=<span class="hljs-string">&quot;$DISPLAY&quot;</span> <span class="hljs-string">\\</span>
  -e RCUTILS_CONSOLE_OUTPUT_FORMAT=<span class="hljs-string">&quot;[{severity}]: {message}&quot;</span> <span class="hljs-string">\\</span>
  -e REACHY2_CORE_SERVICE_FAKE=<span class="hljs-string">&quot;\${REACHY2_CORE_SERVICE_FAKE:-true}&quot;</span> <span class="hljs-string">\\</span>
  -e LD_LIBRARY_PATH=<span class="hljs-string">&quot;/opt/host-libs:$LD_LIBRARY_PATH&quot;</span> <span class="hljs-string">\\</span>
  -v /dev:/dev <span class="hljs-string">\\</span>
  -v <span class="hljs-string">&quot;$HOME/.reachy_config&quot;</span>:<span class="hljs-regexp">/home/reachy/</span>.reachy_config_override <span class="hljs-string">\\</span>
  -v <span class="hljs-string">&quot;$HOME/.reachy.log&quot;</span>:<span class="hljs-regexp">/home/reachy/</span>.ros/log <span class="hljs-string">\\</span>
  -v /usr/lib/x86_64-linux-gnu:/opt/host-libs <span class="hljs-string">\\</span>
  --entrypoint /package/launch.sh <span class="hljs-string">\\</span>
  pollenrobotics/reachy2_core:<span class="hljs-number">1.7</span>.<span class="hljs-number">5.9_deploy</span> <span class="hljs-string">\\</span>
  start_rviz:=<span class="hljs-literal">true</span> start_sdk_server:=<span class="hljs-literal">true</span> mujoco:=<span class="hljs-literal">true</span>`,wrap:!1}}),I=new d({props:{title:"Setup",local:"setup",headingTag:"h2"}}),Z=new d({props:{title:"Prerequisites",local:"prerequisites",headingTag:"h3"}}),A=new d({props:{title:"Install LeRobot",local:"install-lerobot",headingTag:"h3"}}),Q=new J({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1lJTIwJTIyLiU1QnJlYWNoeTIlNUQlMjI=",highlighted:'pip install -e <span class="hljs-string">&quot;.[reachy2]&quot;</span>',wrap:!1}}),W=new d({props:{title:"(Optional but recommended) Install pollen_data_acquisition_server",local:"optional-but-recommended-install-pollendataacquisitionserver",headingTag:"h3"}}),G=new J({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZwb2xsZW4tcm9ib3RpY3MlMkZwb2xsZW5fZGF0YV9hY3F1aXNpdGlvbl9zZXJ2ZXIuZ2l0JTBBY2QlMjBwb2xsZW5fZGF0YV9hY3F1aXNpdGlvbl9zZXJ2ZXIlMEFwaXAlMjBpbnN0YWxsJTIwLWUlMjAu",highlighted:`git <span class="hljs-built_in">clone</span> https://github.com/pollen-robotics/pollen_data_acquisition_server.git
<span class="hljs-built_in">cd</span> pollen_data_acquisition_server
pip install -e .`,wrap:!1}}),F=new d({props:{title:"Step 1: Recording",local:"step-1-recording",headingTag:"h2"}}),H=new d({props:{title:"Get Reachy 2 IP address",local:"get-reachy-2-ip-address",headingTag:"h3"}}),q=new d({props:{title:"Launch recording",local:"launch-recording",headingTag:"h3"}}),O=new d({props:{title:"Option 1: Using Pollen data acquisition server (recommended for VR teleop)",local:"option-1-using-pollen-data-acquisition-server-recommended-for-vr-teleop",headingTag:"h3"}}),te=new J({props:{code:"cHl0aG9uJTIwLW0lMjBwb2xsZW5fZGF0YV9hY3F1aXNpdGlvbl9zZXJ2ZXIuc2VydmVy",highlighted:"python -m pollen_data_acquisition_server.server",wrap:!1}}),ae=new d({props:{title:"Option 2: Using lerobot.record",local:"option-2-using-lerobotrecord",headingTag:"h3"}}),oe=new J({props:{code:"bGVyb2JvdC1yZWNvcmQlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJvYm90LnR5cGUlM0RyZWFjaHkyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC5pcF9hZGRyZXNzJTNEMTkyLjE2OC4wLjIwMCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3QuaWQlM0RyMi0wMDAwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC51c2VfZXh0ZXJuYWxfY29tbWFuZHMlM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC53aXRoX21vYmlsZV9iYXNlJTNEZmFsc2UlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXRlbGVvcC50eXBlJTNEcmVhY2h5Ml90ZWxlb3BlcmF0b3IlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXRlbGVvcC5pcF9hZGRyZXNzJTNEMTkyLjE2OC4wLjIwMCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tdGVsZW9wLndpdGhfbW9iaWxlX2Jhc2UlM0RmYWxzZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3Qud2l0aF90b3Jzb19jYW1lcmElM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LnJlcG9faWQlM0Rwb2xsZW5fcm9ib3RpY3MlMkZyZWNvcmRfdGVzdCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldC5zaW5nbGVfdGFzayUzRCUyMlJlYWNoeSUyMDIlMjByZWNvcmRpbmclMjB0ZXN0JTIyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0Lm51bV9lcGlzb2RlcyUzRDElMjAlNUMlMEElMjAlMjAlMjAlMjAtLWRhdGFzZXQuZXBpc29kZV90aW1lX3MlM0Q1JTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LmZwcyUzRDE1JTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LnB1c2hfdG9faHViJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldC5wcml2YXRlJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldC5zdHJlYW1pbmdfZW5jb2RpbmclM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LmVuY29kZXJfdGhyZWFkcyUzRDIlMjAlNUMlMEElMjAlMjAlMjAlMjAlMjMlMjAtLWRhdGFzZXQudmNvZGVjJTNEYXV0byUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGlzcGxheV9kYXRhJTNEdHJ1ZQ==",highlighted:`lerobot-record \\
    --robot.type=reachy2 \\
    --robot.ip_address=192.168.0.200 \\
    --robot.id=r2-0000 \\
    --robot.use_external_commands=<span class="hljs-literal">true</span> \\
    --robot.with_mobile_base=<span class="hljs-literal">false</span> \\
    --teleop.type=reachy2_teleoperator \\
    --teleop.ip_address=192.168.0.200 \\
    --teleop.with_mobile_base=<span class="hljs-literal">false</span> \\
    --robot.with_torso_camera=<span class="hljs-literal">true</span> \\
    --dataset.repo_id=pollen_robotics/record_test \\
    --dataset.single_task=<span class="hljs-string">&quot;Reachy 2 recording test&quot;</span> \\
    --dataset.num_episodes=1 \\
    --dataset.episode_time_s=5 \\
    --dataset.fps=15 \\
    --dataset.push_to_hub=<span class="hljs-literal">true</span> \\
    --dataset.private=<span class="hljs-literal">true</span> \\
    --dataset.streaming_encoding=<span class="hljs-literal">true</span> \\
    --dataset.encoder_threads=2 \\
    <span class="hljs-comment"># --dataset.vcodec=auto \\</span>
    --display_data=<span class="hljs-literal">true</span>`,wrap:!1}}),re=new d({props:{title:"Specific Options",local:"specific-options",headingTag:"h4"}}),Me=new J({props:{code:"bGVyb2JvdC1yZWNvcmQlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJvYm90LnR5cGUlM0RyZWFjaHkyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC5pcF9hZGRyZXNzJTNEMTkyLjE2OC4wLjIwMCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3QudXNlX2V4dGVybmFsX2NvbW1hbmRzJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3Qud2l0aF9tb2JpbGVfYmFzZSUzRHRydWUlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJvYm90LndpdGhfbF9hcm0lM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC53aXRoX3JfYXJtJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3Qud2l0aF9uZWNrJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3Qud2l0aF9hbnRlbm5hcyUzRHRydWUlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJvYm90LndpdGhfbGVmdF90ZWxlb3BfY2FtZXJhJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3Qud2l0aF9yaWdodF90ZWxlb3BfY2FtZXJhJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3Qud2l0aF90b3Jzb19jYW1lcmElM0RmYWxzZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3QuY2FtZXJhX3dpZHRoJTNENjQwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC5jYW1lcmFfaGVpZ2h0JTNENDgwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC5kaXNhYmxlX3RvcnF1ZV9vbl9kaXNjb25uZWN0JTNEZmFsc2UlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJvYm90Lm1heF9yZWxhdGl2ZV90YXJnZXQlM0Q1LjAlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXRlbGVvcC50eXBlJTNEcmVhY2h5Ml90ZWxlb3BlcmF0b3IlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXRlbGVvcC5pcF9hZGRyZXNzJTNEMTkyLjE2OC4wLjIwMCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tdGVsZW9wLnVzZV9wcmVzZW50X3Bvc2l0aW9uJTNEZmFsc2UlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXRlbGVvcC53aXRoX21vYmlsZV9iYXNlJTNEZmFsc2UlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXRlbGVvcC53aXRoX2xfYXJtJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tdGVsZW9wLndpdGhfcl9hcm0lM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS10ZWxlb3Aud2l0aF9uZWNrJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tdGVsZW9wLndpdGhfYW50ZW5uYXMlM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LnJlcG9faWQlM0Rwb2xsZW5fcm9ib3RpY3MlMkZyZWNvcmRfdGVzdCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldC5zaW5nbGVfdGFzayUzRCUyMlJlYWNoeSUyMDIlMjByZWNvcmRpbmclMjB0ZXN0JTIyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0Lm51bV9lcGlzb2RlcyUzRDElMjAlNUMlMEElMjAlMjAlMjAlMjAtLWRhdGFzZXQuZXBpc29kZV90aW1lX3MlM0Q1JTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LmZwcyUzRDE1JTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LnB1c2hfdG9faHViJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldC5wcml2YXRlJTNEdHJ1ZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldC5zdHJlYW1pbmdfZW5jb2RpbmclM0R0cnVlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0LmVuY29kZXJfdGhyZWFkcyUzRDIlMjAlNUMlMEElMjAlMjAlMjAlMjAlMjMlMjAtLWRhdGFzZXQudmNvZGVjJTNEYXV0byUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGlzcGxheV9kYXRhJTNEdHJ1ZQ==",highlighted:`lerobot-record \\
    --robot.type=reachy2 \\
    --robot.ip_address=192.168.0.200 \\
    --robot.use_external_commands=<span class="hljs-literal">true</span> \\
    --robot.with_mobile_base=<span class="hljs-literal">true</span> \\
    --robot.with_l_arm=<span class="hljs-literal">true</span> \\
    --robot.with_r_arm=<span class="hljs-literal">true</span> \\
    --robot.with_neck=<span class="hljs-literal">true</span> \\
    --robot.with_antennas=<span class="hljs-literal">true</span> \\
    --robot.with_left_teleop_camera=<span class="hljs-literal">true</span> \\
    --robot.with_right_teleop_camera=<span class="hljs-literal">true</span> \\
    --robot.with_torso_camera=<span class="hljs-literal">false</span> \\
    --robot.camera_width=640 \\
    --robot.camera_height=480 \\
    --robot.disable_torque_on_disconnect=<span class="hljs-literal">false</span> \\
    --robot.max_relative_target=5.0 \\
    --teleop.type=reachy2_teleoperator \\
    --teleop.ip_address=192.168.0.200 \\
    --teleop.use_present_position=<span class="hljs-literal">false</span> \\
    --teleop.with_mobile_base=<span class="hljs-literal">false</span> \\
    --teleop.with_l_arm=<span class="hljs-literal">true</span> \\
    --teleop.with_r_arm=<span class="hljs-literal">true</span> \\
    --teleop.with_neck=<span class="hljs-literal">true</span> \\
    --teleop.with_antennas=<span class="hljs-literal">true</span> \\
    --dataset.repo_id=pollen_robotics/record_test \\
    --dataset.single_task=<span class="hljs-string">&quot;Reachy 2 recording test&quot;</span> \\
    --dataset.num_episodes=1 \\
    --dataset.episode_time_s=5 \\
    --dataset.fps=15 \\
    --dataset.push_to_hub=<span class="hljs-literal">true</span> \\
    --dataset.private=<span class="hljs-literal">true</span> \\
    --dataset.streaming_encoding=<span class="hljs-literal">true</span> \\
    --dataset.encoder_threads=2 \\
    <span class="hljs-comment"># --dataset.vcodec=auto \\</span>
    --display_data=<span class="hljs-literal">true</span>`,wrap:!1}}),ce=new d({props:{title:"--robot.use_external_commands",local:"--robotuseexternalcommands",headingTag:"h5"}}),me=new d({props:{title:"--teleop.use_present_position",local:"--teleopusepresentposition",headingTag:"h5"}}),de=new d({props:{title:"Use the relevant parts",local:"use-the-relevant-parts",headingTag:"h5"}}),Ue=new J({props:{code:"LS1yb2JvdC53aXRoXyUzQ3BhcnQlM0UlM0RmYWxzZQ==",highlighted:'--robot.with_&lt;part&gt;=<span class="hljs-literal">false</span>',wrap:!1}}),fe=new J({props:{code:"LS10ZWxlb3Aud2l0aCU1Q18lM0NwYXJ0JTNF",highlighted:"--teleop.with\\_&lt;part&gt;",wrap:!1}}),Ce=new d({props:{title:"Use the relevant cameras",local:"use-the-relevant-cameras",headingTag:"h5"}}),ge=new J({props:{code:"LS1yb2JvdC53aXRoX2xlZnRfdGVsZW9wX2NhbWVyYSUzRCUzQ3RydWUlN0NmYWxzZSUzRSUyMCU1QyUwQS0tcm9ib3Qud2l0aF9yaWdodF90ZWxlb3BfY2FtZXJhJTNEJTNDdHJ1ZSU3Q2ZhbHNlJTNFJTIwJTVDJTBBLS1yb2JvdC53aXRoX3RvcnNvX2NhbWVyYSUzRCUzQ3RydWUlN0NmYWxzZSUzRQ==",highlighted:`--robot.with_left_teleop_camera=&lt;<span class="hljs-literal">true</span>|<span class="hljs-literal">false</span>&gt; \\
--robot.with_right_teleop_camera=&lt;<span class="hljs-literal">true</span>|<span class="hljs-literal">false</span>&gt; \\
--robot.with_torso_camera=&lt;<span class="hljs-literal">true</span>|<span class="hljs-literal">false</span>&gt;`,wrap:!1}}),_e=new J({props:{code:"LS1yb2JvdC5jYW1lcmFfd2lkdGglM0QxOTIwJTIwJTVDJTBBLS1yb2JvdC5jYW1lcmFfaGVpZ2h0JTNEMTA4MA==",highlighted:`--robot.camera_width=1920 \\
--robot.camera_height=1080`,wrap:!1}}),Ze=new J({props:{code:"LS1yb2JvdC5jYW1lcmFzJTNEJTIyJTdCJTIwZXh0cmElM0ElMjAlN0J0eXBlJTNBJTIwb3BlbmN2JTJDJTIwaW5kZXhfb3JfcGF0aCUzQSUyMDQyJTJDJTIwd2lkdGglM0ElMjA2NDAlMkMlMjBoZWlnaHQlM0ElMjA0ODAlMkMlMjBmcHMlM0ElMjAzMCU3RCU3RCUyMiUyMCU1Qw==",highlighted:'--robot.cameras=<span class="hljs-string">&quot;{ extra: {type: opencv, index_or_path: 42, width: 640, height: 480, fps: 30}}&quot;</span> \\',wrap:!1}}),Ee=new d({props:{title:"Step 2: Replay",local:"step-2-replay",headingTag:"h2"}}),Ne=new J({props:{code:"bGVyb2JvdC1yZXBsYXklMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJvYm90LnR5cGUlM0RyZWFjaHkyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yb2JvdC5pcF9hZGRyZXNzJTNEMTkyLjE2OC4wLjIwMCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcm9ib3QudXNlX2V4dGVybmFsX2NvbW1hbmRzJTNEZmFsc2UlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJvYm90LndpdGhfbW9iaWxlX2Jhc2UlM0RmYWxzZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZGF0YXNldC5yZXBvX2lkJTNEcG9sbGVuX3JvYm90aWNzJTJGcmVjb3JkX3Rlc3QlMjAlNUMlMEElMjAlMjAlMjAlMjAtLWRhdGFzZXQuZXBpc29kZSUzRDA=",highlighted:`lerobot-replay \\
    --robot.type=reachy2 \\
    --robot.ip_address=192.168.0.200 \\
    --robot.use_external_commands=<span class="hljs-literal">false</span> \\
    --robot.with_mobile_base=<span class="hljs-literal">false</span> \\
    --dataset.repo_id=pollen_robotics/record_test \\
    --dataset.episode=0`,wrap:!1}}),Ve=new d({props:{title:"Step 3: Train",local:"step-3-train",headingTag:"h2"}}),Ae=new J({props:{code:"bGVyb2JvdC10cmFpbiUyMCU1QyUwQSUyMCUyMC0tZGF0YXNldC5yZXBvX2lkJTNEcG9sbGVuX3JvYm90aWNzJTJGcmVjb3JkX3Rlc3QlMjAlNUMlMEElMjAlMjAtLXBvbGljeS50eXBlJTNEYWN0JTIwJTVDJTBBJTIwJTIwLS1vdXRwdXRfZGlyJTNEb3V0cHV0cyUyRnRyYWluJTJGcmVhY2h5Ml90ZXN0JTIwJTVDJTBBJTIwJTIwLS1qb2JfbmFtZSUzRHJlYWNoeTIlMjAlNUMlMEElMjAlMjAtLXBvbGljeS5kZXZpY2UlM0RtcHMlMjAlNUMlMEElMjAlMjAtLXdhbmRiLmVuYWJsZSUzRHRydWUlMjAlNUMlMEElMjAlMjAtLXBvbGljeS5yZXBvX2lkJTNEcG9sbGVuX3JvYm90aWNzJTJGcmVjb3JkX3Rlc3RfcG9saWN5",highlighted:`lerobot-train \\
  --dataset.repo_id=pollen_robotics/record_test \\
  --policy.type=act \\
  --output_dir=outputs/train/reachy2_test \\
  --job_name=reachy2 \\
  --policy.device=mps \\
  --wandb.enable=<span class="hljs-literal">true</span> \\
  --policy.repo_id=pollen_robotics/record_test_policy`,wrap:!1}}),Se=new d({props:{title:"Step 4: Evaluate",local:"step-4-evaluate",headingTag:"h2"}}),Xe=new J({props:{code:"bGVyb2JvdC1ldmFsJTIwJTVDJTBBJTIwJTIwLS1yb2JvdC50eXBlJTNEcmVhY2h5MiUyMCU1QyUwQSUyMCUyMC0tcm9ib3QuaXBfYWRkcmVzcyUzRDE5Mi4xNjguMC4yMDAlMjAlNUMlMEElMjAlMjAtLWRhdGFzZXQucmVwb19pZCUzRHBvbGxlbl9yb2JvdGljcyUyRmV2YWxfcmVjb3JkX3Rlc3QlMjAlNUMlMEElMjAlMjAtLWRhdGFzZXQuc2luZ2xlX3Rhc2slM0QlMjJFdmFsdWF0ZSUyMHJlYWNoeTIlMjBwb2xpY3klMjIlMjAlNUMlMEElMjAlMjAtLWRhdGFzZXQubnVtX2VwaXNvZGVzJTNEMTAlMjAlNUMlMEElMjAlMjAtLXBvbGljeS5wYXRoJTNEb3V0cHV0cyUyRnRyYWluJTJGcmVhY2h5Ml90ZXN0JTJGY2hlY2twb2ludHMlMkZsYXN0JTJGcHJldHJhaW5lZF9tb2RlbA==",highlighted:`lerobot-eval \\
  --robot.type=reachy2 \\
  --robot.ip_address=192.168.0.200 \\
  --dataset.repo_id=pollen_robotics/eval_record_test \\
  --dataset.single_task=<span class="hljs-string">&quot;Evaluate reachy2 policy&quot;</span> \\
  --dataset.num_episodes=10 \\
  --policy.path=outputs/train/reachy2_test/checkpoints/last/pretrained_model`,wrap:!1}}),Qe=new cs({props:{source:"https://github.com/huggingface/lerobot/blob/main/docs/source/reachy2.mdx"}}),{c(){U=i("meta"),ke=a(),Ye=i("p"),Ge=a(),p(u.$$.fragment),Be=a(),p(w.$$.fragment),Fe=a(),f=i("p"),f.innerHTML=ul,He=a(),p(b.$$.fragment),ze=a(),j=i("p"),j.textContent=wl,qe=a(),C=i("ul"),C.innerHTML=fl,De=a(),p($.$$.fragment),Pe=a(),g=i("p"),g.innerHTML=bl,Oe=a(),R=i("ol"),R.innerHTML=jl,Ke=a(),p(_.$$.fragment),et=a(),T=i("blockquote"),We=i("p"),We.innerHTML=Cl,hl=a(),p(v.$$.fragment),tt=a(),p(I.$$.fragment),lt=a(),p(Z.$$.fragment),st=a(),E=i("ul"),E.innerHTML=$l,at=a(),L=i("p"),L.textContent=gl,nt=a(),N=i("ul"),N.innerHTML=Rl,it=a(),V=i("p"),V.textContent=_l,ot=a(),p(A.$$.fragment),rt=a(),S=i("p"),S.innerHTML=vl,pt=a(),X=i("p"),X.textContent=Il,Mt=a(),p(Q.$$.fragment),ct=a(),p(W.$$.fragment),yt=a(),Y=i("p"),Y.innerHTML=Zl,mt=a(),x=i("blockquote"),x.innerHTML=El,ht=a(),k=i("p"),k.textContent=Ll,dt=a(),p(G.$$.fragment),Jt=a(),B=i("p"),B.innerHTML=Nl,Ut=a(),p(F.$$.fragment),Tt=a(),p(H.$$.fragment),ut=a(),z=i("p"),z.innerHTML=Vl,wt=a(),p(q.$$.fragment),ft=a(),D=i("p"),D.textContent=Al,bt=a(),P=i("ul"),P.innerHTML=Sl,jt=a(),p(O.$$.fragment),Ct=a(),K=i("p"),K.textContent=Xl,$t=a(),ee=i("p"),ee.textContent=Ql,gt=a(),p(te.$$.fragment),Rt=a(),le=i("p"),le.textContent=Wl,_t=a(),se=i("blockquote"),se.innerHTML=Yl,vt=a(),p(ae.$$.fragment),It=a(),ne=i("p"),ne.textContent=xl,Zt=a(),ie=i("p"),ie.innerHTML=kl,Et=a(),p(oe.$$.fragment),Lt=a(),p(re.$$.fragment),Nt=a(),pe=i("p"),pe.innerHTML=Gl,Vt=a(),p(Me.$$.fragment),At=a(),p(ce.$$.fragment),St=a(),ye=i("p"),ye.innerHTML=Bl,Xt=a(),p(me.$$.fragment),Qt=a(),he=i("p"),he.textContent=Fl,Wt=a(),p(de.$$.fragment),Yt=a(),Je=i("p"),Je.innerHTML=Hl,xt=a(),p(Ue.$$.fragment),kt=a(),Te=i("p"),Te.innerHTML=zl,Gt=a(),ue=i("p"),ue.innerHTML=ql,Bt=a(),we=i("p"),we.innerHTML=Dl,Ft=a(),p(fe.$$.fragment),Ht=a(),be=i("p"),be.innerHTML=Pl,zt=a(),je=i("blockquote"),je.innerHTML=Ol,qt=a(),p(Ce.$$.fragment),Dt=a(),$e=i("p"),$e.innerHTML=Kl,Pt=a(),p(ge.$$.fragment),Ot=a(),Re=i("p"),Re.innerHTML=es,Kt=a(),p(_e.$$.fragment),el=a(),ve=i("p"),ve.textContent=ts,tl=a(),Ie=i("p"),Ie.textContent=ls,ll=a(),p(Ze.$$.fragment),sl=a(),p(Ee.$$.fragment),al=a(),Le=i("p"),Le.textContent=ss,nl=a(),p(Ne.$$.fragment),il=a(),p(Ve.$$.fragment),ol=a(),p(Ae.$$.fragment),rl=a(),p(Se.$$.fragment),pl=a(),p(Xe.$$.fragment),Ml=a(),p(Qe.$$.fragment),cl=a(),xe=i("p"),this.h()},l(e){const t=ps("svelte-u9bgzb",document.head);U=o(t,"META",{name:!0,content:!0}),t.forEach(l),ke=n(e),Ye=o(e,"P",{}),dl(Ye).forEach(l),Ge=n(e),M(u.$$.fragment,e),Be=n(e),M(w.$$.fragment,e),Fe=n(e),f=o(e,"P",{"data-svelte-h":!0}),r(f)!=="svelte-1xdnuz6"&&(f.innerHTML=ul),He=n(e),M(b.$$.fragment,e),ze=n(e),j=o(e,"P",{"data-svelte-h":!0}),r(j)!=="svelte-1ojqvg1"&&(j.textContent=wl),qe=n(e),C=o(e,"UL",{"data-svelte-h":!0}),r(C)!=="svelte-1ggvo7o"&&(C.innerHTML=fl),De=n(e),M($.$$.fragment,e),Pe=n(e),g=o(e,"P",{"data-svelte-h":!0}),r(g)!=="svelte-1dog53k"&&(g.innerHTML=bl),Oe=n(e),R=o(e,"OL",{"data-svelte-h":!0}),r(R)!=="svelte-156hqyr"&&(R.innerHTML=jl),Ke=n(e),M(_.$$.fragment,e),et=n(e),T=o(e,"BLOCKQUOTE",{class:!0});var ml=dl(T);We=o(ml,"P",{"data-svelte-h":!0}),r(We)!=="svelte-kr41dh"&&(We.innerHTML=Cl),hl=n(ml),M(v.$$.fragment,ml),ml.forEach(l),tt=n(e),M(I.$$.fragment,e),lt=n(e),M(Z.$$.fragment,e),st=n(e),E=o(e,"UL",{"data-svelte-h":!0}),r(E)!=="svelte-ok645w"&&(E.innerHTML=$l),at=n(e),L=o(e,"P",{"data-svelte-h":!0}),r(L)!=="svelte-w8lpge"&&(L.textContent=gl),nt=n(e),N=o(e,"UL",{"data-svelte-h":!0}),r(N)!=="svelte-vlq1xy"&&(N.innerHTML=Rl),it=n(e),V=o(e,"P",{"data-svelte-h":!0}),r(V)!=="svelte-bssrcw"&&(V.textContent=_l),ot=n(e),M(A.$$.fragment,e),rt=n(e),S=o(e,"P",{"data-svelte-h":!0}),r(S)!=="svelte-1smiryk"&&(S.innerHTML=vl),pt=n(e),X=o(e,"P",{"data-svelte-h":!0}),r(X)!=="svelte-pzjrtr"&&(X.textContent=Il),Mt=n(e),M(Q.$$.fragment,e),ct=n(e),M(W.$$.fragment,e),yt=n(e),Y=o(e,"P",{"data-svelte-h":!0}),r(Y)!=="svelte-1a4w6qg"&&(Y.innerHTML=Zl),mt=n(e),x=o(e,"BLOCKQUOTE",{"data-svelte-h":!0}),r(x)!=="svelte-qn2ame"&&(x.innerHTML=El),ht=n(e),k=o(e,"P",{"data-svelte-h":!0}),r(k)!=="svelte-1d48kde"&&(k.textContent=Ll),dt=n(e),M(G.$$.fragment,e),Jt=n(e),B=o(e,"P",{"data-svelte-h":!0}),r(B)!=="svelte-8g2vrm"&&(B.innerHTML=Nl),Ut=n(e),M(F.$$.fragment,e),Tt=n(e),M(H.$$.fragment,e),ut=n(e),z=o(e,"P",{"data-svelte-h":!0}),r(z)!=="svelte-1qas93h"&&(z.innerHTML=Vl),wt=n(e),M(q.$$.fragment,e),ft=n(e),D=o(e,"P",{"data-svelte-h":!0}),r(D)!=="svelte-182f064"&&(D.textContent=Al),bt=n(e),P=o(e,"UL",{"data-svelte-h":!0}),r(P)!=="svelte-v2es0o"&&(P.innerHTML=Sl),jt=n(e),M(O.$$.fragment,e),Ct=n(e),K=o(e,"P",{"data-svelte-h":!0}),r(K)!=="svelte-dkxq35"&&(K.textContent=Xl),$t=n(e),ee=o(e,"P",{"data-svelte-h":!0}),r(ee)!=="svelte-n8f1lt"&&(ee.textContent=Ql),gt=n(e),M(te.$$.fragment,e),Rt=n(e),le=o(e,"P",{"data-svelte-h":!0}),r(le)!=="svelte-14vis0y"&&(le.textContent=Wl),_t=n(e),se=o(e,"BLOCKQUOTE",{"data-svelte-h":!0}),r(se)!=="svelte-12ihg6i"&&(se.innerHTML=Yl),vt=n(e),M(ae.$$.fragment,e),It=n(e),ne=o(e,"P",{"data-svelte-h":!0}),r(ne)!=="svelte-1q05r0g"&&(ne.textContent=xl),Zt=n(e),ie=o(e,"P",{"data-svelte-h":!0}),r(ie)!=="svelte-13igkbi"&&(ie.innerHTML=kl),Et=n(e),M(oe.$$.fragment,e),Lt=n(e),M(re.$$.fragment,e),Nt=n(e),pe=o(e,"P",{"data-svelte-h":!0}),r(pe)!=="svelte-cf4c7q"&&(pe.innerHTML=Gl),Vt=n(e),M(Me.$$.fragment,e),At=n(e),M(ce.$$.fragment,e),St=n(e),ye=o(e,"P",{"data-svelte-h":!0}),r(ye)!=="svelte-18zqixh"&&(ye.innerHTML=Bl),Xt=n(e),M(me.$$.fragment,e),Qt=n(e),he=o(e,"P",{"data-svelte-h":!0}),r(he)!=="svelte-cyhye1"&&(he.textContent=Fl),Wt=n(e),M(de.$$.fragment,e),Yt=n(e),Je=o(e,"P",{"data-svelte-h":!0}),r(Je)!=="svelte-wfg4kf"&&(Je.innerHTML=Hl),xt=n(e),M(Ue.$$.fragment,e),kt=n(e),Te=o(e,"P",{"data-svelte-h":!0}),r(Te)!=="svelte-1r1o40z"&&(Te.innerHTML=zl),Gt=n(e),ue=o(e,"P",{"data-svelte-h":!0}),r(ue)!=="svelte-1o4tsl4"&&(ue.innerHTML=ql),Bt=n(e),we=o(e,"P",{"data-svelte-h":!0}),r(we)!=="svelte-1wf6lpl"&&(we.innerHTML=Dl),Ft=n(e),M(fe.$$.fragment,e),Ht=n(e),be=o(e,"P",{"data-svelte-h":!0}),r(be)!=="svelte-1uo0syw"&&(be.innerHTML=Pl),zt=n(e),je=o(e,"BLOCKQUOTE",{"data-svelte-h":!0}),r(je)!=="svelte-ao69ey"&&(je.innerHTML=Ol),qt=n(e),M(Ce.$$.fragment,e),Dt=n(e),$e=o(e,"P",{"data-svelte-h":!0}),r($e)!=="svelte-1pw41ws"&&($e.innerHTML=Kl),Pt=n(e),M(ge.$$.fragment,e),Ot=n(e),Re=o(e,"P",{"data-svelte-h":!0}),r(Re)!=="svelte-1ax4b1l"&&(Re.innerHTML=es),Kt=n(e),M(_e.$$.fragment,e),el=n(e),ve=o(e,"P",{"data-svelte-h":!0}),r(ve)!=="svelte-1ilik7a"&&(ve.textContent=ts),tl=n(e),Ie=o(e,"P",{"data-svelte-h":!0}),r(Ie)!=="svelte-8vnq56"&&(Ie.textContent=ls),ll=n(e),M(Ze.$$.fragment,e),sl=n(e),M(Ee.$$.fragment,e),al=n(e),Le=o(e,"P",{"data-svelte-h":!0}),r(Le)!=="svelte-12eaufy"&&(Le.textContent=ss),nl=n(e),M(Ne.$$.fragment,e),il=n(e),M(Ve.$$.fragment,e),ol=n(e),M(Ae.$$.fragment,e),rl=n(e),M(Se.$$.fragment,e),pl=n(e),M(Xe.$$.fragment,e),Ml=n(e),M(Qe.$$.fragment,e),cl=n(e),xe=o(e,"P",{}),dl(xe).forEach(l),this.h()},h(){Jl(U,"name","hf:doc:metadata"),Jl(U,"content",ms),Jl(T,"class","note")},m(e,t){Ul(document.head,U),s(e,ke,t),s(e,Ye,t),s(e,Ge,t),c(u,e,t),s(e,Be,t),c(w,e,t),s(e,Fe,t),s(e,f,t),s(e,He,t),c(b,e,t),s(e,ze,t),s(e,j,t),s(e,qe,t),s(e,C,t),s(e,De,t),c($,e,t),s(e,Pe,t),s(e,g,t),s(e,Oe,t),s(e,R,t),s(e,Ke,t),c(_,e,t),s(e,et,t),s(e,T,t),Ul(T,We),Ul(T,hl),c(v,T,null),s(e,tt,t),c(I,e,t),s(e,lt,t),c(Z,e,t),s(e,st,t),s(e,E,t),s(e,at,t),s(e,L,t),s(e,nt,t),s(e,N,t),s(e,it,t),s(e,V,t),s(e,ot,t),c(A,e,t),s(e,rt,t),s(e,S,t),s(e,pt,t),s(e,X,t),s(e,Mt,t),c(Q,e,t),s(e,ct,t),c(W,e,t),s(e,yt,t),s(e,Y,t),s(e,mt,t),s(e,x,t),s(e,ht,t),s(e,k,t),s(e,dt,t),c(G,e,t),s(e,Jt,t),s(e,B,t),s(e,Ut,t),c(F,e,t),s(e,Tt,t),c(H,e,t),s(e,ut,t),s(e,z,t),s(e,wt,t),c(q,e,t),s(e,ft,t),s(e,D,t),s(e,bt,t),s(e,P,t),s(e,jt,t),c(O,e,t),s(e,Ct,t),s(e,K,t),s(e,$t,t),s(e,ee,t),s(e,gt,t),c(te,e,t),s(e,Rt,t),s(e,le,t),s(e,_t,t),s(e,se,t),s(e,vt,t),c(ae,e,t),s(e,It,t),s(e,ne,t),s(e,Zt,t),s(e,ie,t),s(e,Et,t),c(oe,e,t),s(e,Lt,t),c(re,e,t),s(e,Nt,t),s(e,pe,t),s(e,Vt,t),c(Me,e,t),s(e,At,t),c(ce,e,t),s(e,St,t),s(e,ye,t),s(e,Xt,t),c(me,e,t),s(e,Qt,t),s(e,he,t),s(e,Wt,t),c(de,e,t),s(e,Yt,t),s(e,Je,t),s(e,xt,t),c(Ue,e,t),s(e,kt,t),s(e,Te,t),s(e,Gt,t),s(e,ue,t),s(e,Bt,t),s(e,we,t),s(e,Ft,t),c(fe,e,t),s(e,Ht,t),s(e,be,t),s(e,zt,t),s(e,je,t),s(e,qt,t),c(Ce,e,t),s(e,Dt,t),s(e,$e,t),s(e,Pt,t),c(ge,e,t),s(e,Ot,t),s(e,Re,t),s(e,Kt,t),c(_e,e,t),s(e,el,t),s(e,ve,t),s(e,tl,t),s(e,Ie,t),s(e,ll,t),c(Ze,e,t),s(e,sl,t),c(Ee,e,t),s(e,al,t),s(e,Le,t),s(e,nl,t),c(Ne,e,t),s(e,il,t),c(Ve,e,t),s(e,ol,t),c(Ae,e,t),s(e,rl,t),c(Se,e,t),s(e,pl,t),c(Xe,e,t),s(e,Ml,t),c(Qe,e,t),s(e,cl,t),s(e,xe,t),yl=!0},p:ns,i(e){yl||(y(u.$$.fragment,e),y(w.$$.fragment,e),y(b.$$.fragment,e),y($.$$.fragment,e),y(_.$$.fragment,e),y(v.$$.fragment,e),y(I.$$.fragment,e),y(Z.$$.fragment,e),y(A.$$.fragment,e),y(Q.$$.fragment,e),y(W.$$.fragment,e),y(G.$$.fragment,e),y(F.$$.fragment,e),y(H.$$.fragment,e),y(q.$$.fragment,e),y(O.$$.fragment,e),y(te.$$.fragment,e),y(ae.$$.fragment,e),y(oe.$$.fragment,e),y(re.$$.fragment,e),y(Me.$$.fragment,e),y(ce.$$.fragment,e),y(me.$$.fragment,e),y(de.$$.fragment,e),y(Ue.$$.fragment,e),y(fe.$$.fragment,e),y(Ce.$$.fragment,e),y(ge.$$.fragment,e),y(_e.$$.fragment,e),y(Ze.$$.fragment,e),y(Ee.$$.fragment,e),y(Ne.$$.fragment,e),y(Ve.$$.fragment,e),y(Ae.$$.fragment,e),y(Se.$$.fragment,e),y(Xe.$$.fragment,e),y(Qe.$$.fragment,e),yl=!0)},o(e){m(u.$$.fragment,e),m(w.$$.fragment,e),m(b.$$.fragment,e),m($.$$.fragment,e),m(_.$$.fragment,e),m(v.$$.fragment,e),m(I.$$.fragment,e),m(Z.$$.fragment,e),m(A.$$.fragment,e),m(Q.$$.fragment,e),m(W.$$.fragment,e),m(G.$$.fragment,e),m(F.$$.fragment,e),m(H.$$.fragment,e),m(q.$$.fragment,e),m(O.$$.fragment,e),m(te.$$.fragment,e),m(ae.$$.fragment,e),m(oe.$$.fragment,e),m(re.$$.fragment,e),m(Me.$$.fragment,e),m(ce.$$.fragment,e),m(me.$$.fragment,e),m(de.$$.fragment,e),m(Ue.$$.fragment,e),m(fe.$$.fragment,e),m(Ce.$$.fragment,e),m(ge.$$.fragment,e),m(_e.$$.fragment,e),m(Ze.$$.fragment,e),m(Ee.$$.fragment,e),m(Ne.$$.fragment,e),m(Ve.$$.fragment,e),m(Ae.$$.fragment,e),m(Se.$$.fragment,e),m(Xe.$$.fragment,e),m(Qe.$$.fragment,e),yl=!1},d(e){e&&(l(ke),l(Ye),l(Ge),l(Be),l(Fe),l(f),l(He),l(ze),l(j),l(qe),l(C),l(De),l(Pe),l(g),l(Oe),l(R),l(Ke),l(et),l(T),l(tt),l(lt),l(st),l(E),l(at),l(L),l(nt),l(N),l(it),l(V),l(ot),l(rt),l(S),l(pt),l(X),l(Mt),l(ct),l(yt),l(Y),l(mt),l(x),l(ht),l(k),l(dt),l(Jt),l(B),l(Ut),l(Tt),l(ut),l(z),l(wt),l(ft),l(D),l(bt),l(P),l(jt),l(Ct),l(K),l($t),l(ee),l(gt),l(Rt),l(le),l(_t),l(se),l(vt),l(It),l(ne),l(Zt),l(ie),l(Et),l(Lt),l(Nt),l(pe),l(Vt),l(At),l(St),l(ye),l(Xt),l(Qt),l(he),l(Wt),l(Yt),l(Je),l(xt),l(kt),l(Te),l(Gt),l(ue),l(Bt),l(we),l(Ft),l(Ht),l(be),l(zt),l(je),l(qt),l(Dt),l($e),l(Pt),l(Ot),l(Re),l(Kt),l(el),l(ve),l(tl),l(Ie),l(ll),l(sl),l(al),l(Le),l(nl),l(il),l(ol),l(rl),l(pl),l(Ml),l(cl),l(xe)),l(U),h(u,e),h(w,e),h(b,e),h($,e),h(_,e),h(v),h(I,e),h(Z,e),h(A,e),h(Q,e),h(W,e),h(G,e),h(F,e),h(H,e),h(q,e),h(O,e),h(te,e),h(ae,e),h(oe,e),h(re,e),h(Me,e),h(ce,e),h(me,e),h(de,e),h(Ue,e),h(fe,e),h(Ce,e),h(ge,e),h(_e,e),h(Ze,e),h(Ee,e),h(Ne,e),h(Ve,e),h(Ae,e),h(Se,e),h(Xe,e),h(Qe,e)}}}const ms='{"title":"Reachy 2","local":"reachy-2","sections":[{"title":"Teleoperate Reachy 2","local":"teleoperate-reachy-2","sections":[],"depth":2},{"title":"Reachy 2 Simulation","local":"reachy-2-simulation","sections":[],"depth":2},{"title":"Setup","local":"setup","sections":[{"title":"Prerequisites","local":"prerequisites","sections":[],"depth":3},{"title":"Install LeRobot","local":"install-lerobot","sections":[],"depth":3},{"title":"(Optional but recommended) Install pollen_data_acquisition_server","local":"optional-but-recommended-install-pollendataacquisitionserver","sections":[],"depth":3}],"depth":2},{"title":"Step 1: Recording","local":"step-1-recording","sections":[{"title":"Get Reachy 2 IP address","local":"get-reachy-2-ip-address","sections":[],"depth":3},{"title":"Launch recording","local":"launch-recording","sections":[],"depth":3},{"title":"Option 1: Using Pollen data acquisition server (recommended for VR teleop)","local":"option-1-using-pollen-data-acquisition-server-recommended-for-vr-teleop","sections":[],"depth":3},{"title":"Option 2: Using lerobot.record","local":"option-2-using-lerobotrecord","sections":[{"title":"Specific Options","local":"specific-options","sections":[{"title":"--robot.use_external_commands","local":"--robotuseexternalcommands","sections":[],"depth":5},{"title":"--teleop.use_present_position","local":"--teleopusepresentposition","sections":[],"depth":5},{"title":"Use the relevant parts","local":"use-the-relevant-parts","sections":[],"depth":5},{"title":"Use the relevant cameras","local":"use-the-relevant-cameras","sections":[],"depth":5}],"depth":4}],"depth":3}],"depth":2},{"title":"Step 2: Replay","local":"step-2-replay","sections":[],"depth":2},{"title":"Step 3: Train","local":"step-3-train","sections":[],"depth":2},{"title":"Step 4: Evaluate","local":"step-4-evaluate","sections":[],"depth":2}],"depth":1}';function hs(Tl){return is(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ws extends os{constructor(U){super(),rs(this,U,hs,ys,as,{})}}export{ws as component};
