import{s as Dt,o as el,n as G}from"../chunks/scheduler.eb244325.js";import{S as tl,i as ll,e as w,s as c,c as $,h as nl,a as T,d as o,b as f,f as xe,g as d,j as J,k as Ce,l as je,m as i,n as u,t as M,o as h,p as g}from"../chunks/index.3fe63ad3.js";import{C as sl}from"../chunks/CopyLLMTxtMenu.88bde5f2.js";import{C as j}from"../chunks/CodeBlock.934d290d.js";import{H as _,E as ol}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.341974a5.js";import{H as _e,a as x}from"../chunks/HfOption.0914e9f3.js";function il(U){let l,r;return l=new j({props:{code:"Y29uZGElMjBjcmVhdGUlMjAteSUyMC1uJTIwbGVyb2JvdCUyMHB5dGhvbiUzRDMuMTI=",highlighted:"conda create -y -n lerobot python=3.12",wrap:!1}}),{c(){$(l.$$.fragment)},l(t){d(l.$$.fragment,t)},m(t,p){u(l,t,p),r=!0},p:G,i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){h(l.$$.fragment,t),r=!1},d(t){g(l,t)}}}function al(U){let l,r;return l=new j({props:{code:"dXYlMjBweXRob24lMjBpbnN0YWxsJTIwMy4xMiUwQXV2JTIwdmVudiUyMC0tcHl0aG9uJTIwMy4xMg==",highlighted:`uv python install 3.12
uv venv --python 3.12`,wrap:!1}}),{c(){$(l.$$.fragment)},l(t){d(l.$$.fragment,t)},m(t,p){u(l,t,p),r=!0},p:G,i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){h(l.$$.fragment,t),r=!1},d(t){g(l,t)}}}function rl(U){let l,r,t,p;return l=new x({props:{id:"create_venv",option:"conda",$$slots:{default:[il]},$$scope:{ctx:U}}}),t=new x({props:{id:"create_venv",option:"uv (PyTorch >= 2.10 only)",$$slots:{default:[al]},$$scope:{ctx:U}}}),{c(){$(l.$$.fragment),r=c(),$(t.$$.fragment)},l(n){d(l.$$.fragment,n),r=f(n),d(t.$$.fragment,n)},m(n,a){u(l,n,a),i(n,r,a),u(t,n,a),p=!0},p(n,a){const y={};a&2&&(y.$$scope={dirty:a,ctx:n}),l.$set(y);const b={};a&2&&(b.$$scope={dirty:a,ctx:n}),t.$set(b)},i(n){p||(M(l.$$.fragment,n),M(t.$$.fragment,n),p=!0)},o(n){h(l.$$.fragment,n),h(t.$$.fragment,n),p=!1},d(n){n&&o(r),g(l,n),g(t,n)}}}function pl(U){let l,r,t,p,n="When installing LeRobot inside WSL (Windows Subsystem for Linux), make sure to also install <code>evdev</code>:",a,y,b;return l=new j({props:{code:"Y29uZGElMjBhY3RpdmF0ZSUyMGxlcm9ib3Q=",highlighted:"conda activate lerobot",wrap:!1}}),y=new j({props:{code:"Y29uZGElMjBpbnN0YWxsJTIwZXZkZXYlMjAtYyUyMGNvbmRhLWZvcmdl",highlighted:"conda install evdev -c conda-forge",wrap:!1}}),{c(){$(l.$$.fragment),r=c(),t=w("blockquote"),p=w("p"),p.innerHTML=n,a=c(),$(y.$$.fragment),this.h()},l(m){d(l.$$.fragment,m),r=f(m),t=T(m,"BLOCKQUOTE",{class:!0});var v=xe(t);p=T(v,"P",{"data-svelte-h":!0}),J(p)!=="svelte-10fwv7l"&&(p.innerHTML=n),a=f(v),d(y.$$.fragment,v),v.forEach(o),this.h()},h(){Ce(t,"class","note")},m(m,v){u(l,m,v),i(m,r,v),i(m,t,v),je(t,p),je(t,a),u(y,t,null),b=!0},p:G,i(m){b||(M(l.$$.fragment,m),M(y.$$.fragment,m),b=!0)},o(m){h(l.$$.fragment,m),h(y.$$.fragment,m),b=!1},d(m){m&&(o(r),o(t)),g(l,m),g(y)}}}function cl(U){let l,r,t,p,n="When installing LeRobot inside WSL (Windows Subsystem for Linux), make sure to also install <code>evdev</code>:",a,y,b;return l=new j({props:{code:"JTIzJTIwTGludXglMkZtYWNPUyUwQXNvdXJjZSUyMC52ZW52JTJGYmluJTJGYWN0aXZhdGUlMEElMjMlMjBXaW5kb3dzJTIwUG93ZXJTaGVsbCUwQS52ZW52JTVDU2NyaXB0cyU1Q2FjdGl2YXRl",highlighted:`<span class="hljs-comment"># Linux/macOS</span>
<span class="hljs-built_in">source</span> .venv/bin/activate
<span class="hljs-comment"># Windows PowerShell</span>
.venv\\Scripts\\activate`,wrap:!1}}),y=new j({props:{code:"c3VkbyUyMGFwdCUyMGluc3RhbGwlMjBsaWJldmRldi1kZXYlMEF1diUyMHBpcCUyMGluc3RhbGwlMjBldmRldg==",highlighted:`sudo apt install libevdev-dev
uv pip install evdev`,wrap:!1}}),{c(){$(l.$$.fragment),r=c(),t=w("blockquote"),p=w("p"),p.innerHTML=n,a=c(),$(y.$$.fragment),this.h()},l(m){d(l.$$.fragment,m),r=f(m),t=T(m,"BLOCKQUOTE",{class:!0});var v=xe(t);p=T(v,"P",{"data-svelte-h":!0}),J(p)!=="svelte-10fwv7l"&&(p.innerHTML=n),a=f(v),d(y.$$.fragment,v),v.forEach(o),this.h()},h(){Ce(t,"class","note")},m(m,v){u(l,m,v),i(m,r,v),i(m,t,v),je(t,p),je(t,a),u(y,t,null),b=!0},p:G,i(m){b||(M(l.$$.fragment,m),M(y.$$.fragment,m),b=!0)},o(m){h(l.$$.fragment,m),h(y.$$.fragment,m),b=!1},d(m){m&&(o(r),o(t)),g(l,m),g(y)}}}function fl(U){let l,r,t,p;return l=new x({props:{id:"activate_venv",option:"conda",$$slots:{default:[pl]},$$scope:{ctx:U}}}),t=new x({props:{id:"activate_venv",option:"uv (PyTorch >= 2.10 only)",$$slots:{default:[cl]},$$scope:{ctx:U}}}),{c(){$(l.$$.fragment),r=c(),$(t.$$.fragment)},l(n){d(l.$$.fragment,n),r=f(n),d(t.$$.fragment,n)},m(n,a){u(l,n,a),i(n,r,a),u(t,n,a),p=!0},p(n,a){const y={};a&2&&(y.$$scope={dirty:a,ctx:n}),l.$set(y);const b={};a&2&&(b.$$scope={dirty:a,ctx:n}),t.$set(b)},i(n){p||(M(l.$$.fragment,n),M(t.$$.fragment,n),p=!0)},o(n){h(l.$$.fragment,n),h(t.$$.fragment,n),p=!1},d(n){n&&o(r),g(l,n),g(t,n)}}}function ml(U){let l,r="Install <code>ffmpeg</code> in your conda environment. This works with <strong>all PyTorch versions</strong> and is <strong>required for PyTorch &lt; 2.10</strong>:",t,p,n,a,y,b="This usually installs <code>ffmpeg 8.X</code> with the <code>libsvtav1</code> encoder. If you run into issues (e.g. <code>libsvtav1</code> missing — check with <code>ffmpeg -encoders</code> — or a version mismatch with <code>torchcodec</code>), you can explicitly install <code>ffmpeg 7.1.1</code> using:",m,v,k;return p=new j({props:{code:"Y29uZGElMjBpbnN0YWxsJTIwZmZtcGVnJTIwLWMlMjBjb25kYS1mb3JnZQ==",highlighted:"conda install ffmpeg -c conda-forge",wrap:!1}}),v=new j({props:{code:"Y29uZGElMjBpbnN0YWxsJTIwZmZtcGVnJTNENy4xLjElMjAtYyUyMGNvbmRhLWZvcmdl",highlighted:"conda install ffmpeg=7.1.1 -c conda-forge",wrap:!1}}),{c(){l=w("p"),l.innerHTML=r,t=c(),$(p.$$.fragment),n=c(),a=w("blockquote"),y=w("p"),y.innerHTML=b,m=c(),$(v.$$.fragment),this.h()},l(C){l=T(C,"P",{"data-svelte-h":!0}),J(l)!=="svelte-1fe95z3"&&(l.innerHTML=r),t=f(C),d(p.$$.fragment,C),n=f(C),a=T(C,"BLOCKQUOTE",{class:!0});var I=xe(a);y=T(I,"P",{"data-svelte-h":!0}),J(y)!=="svelte-16ki38l"&&(y.innerHTML=b),m=f(I),d(v.$$.fragment,I),I.forEach(o),this.h()},h(){Ce(a,"class","tip")},m(C,I){i(C,l,I),i(C,t,I),u(p,C,I),i(C,n,I),i(C,a,I),je(a,y),je(a,m),u(v,a,null),k=!0},p:G,i(C){k||(M(p.$$.fragment,C),M(v.$$.fragment,C),k=!0)},o(C){h(p.$$.fragment,C),h(v.$$.fragment,C),k=!1},d(C){C&&(o(l),o(t),o(n),o(a)),g(p,C),g(v)}}}function $l(U){let l,r="Starting with <strong>PyTorch &gt;= 2.10</strong> (TorchCodec ≥ 0.10), TorchCodec can dynamically link to a system-wide <code>ffmpeg</code> installation. This is useful when using <code>uv</code> or other non-<code>conda</code> environment managers:",t,p,n,a,y="<p>System-wide <code>ffmpeg</code> is <strong>only supported with PyTorch &gt;= 2.10</strong> (TorchCodec ≥ 0.10). For older PyTorch versions, you <strong>must</strong> use <code>conda install ffmpeg -c conda-forge</code> instead.</p>",b;return p=new j({props:{code:"JTIzJTIwVWJ1bnR1JTJGRGViaWFuJTBBc3VkbyUyMGFwdCUyMGluc3RhbGwlMjBmZm1wZWclMEElMEElMjMlMjBtYWNPUyUyMChBcHBsZSUyMFNpbGljb24pJTBBYnJldyUyMGluc3RhbGwlMjBmZm1wZWc=",highlighted:`<span class="hljs-comment"># Ubuntu/Debian</span>
sudo apt install ffmpeg

<span class="hljs-comment"># macOS (Apple Silicon)</span>
brew install ffmpeg`,wrap:!1}}),{c(){l=w("p"),l.innerHTML=r,t=c(),$(p.$$.fragment),n=c(),a=w("blockquote"),a.innerHTML=y,this.h()},l(m){l=T(m,"P",{"data-svelte-h":!0}),J(l)!=="svelte-10srpvr"&&(l.innerHTML=r),t=f(m),d(p.$$.fragment,m),n=f(m),a=T(m,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),J(a)!=="svelte-12jvwpg"&&(a.innerHTML=y),this.h()},h(){Ce(a,"class","important")},m(m,v){i(m,l,v),i(m,t,v),u(p,m,v),i(m,n,v),i(m,a,v),b=!0},p:G,i(m){b||(M(p.$$.fragment,m),b=!0)},o(m){h(p.$$.fragment,m),b=!1},d(m){m&&(o(l),o(t),o(n),o(a)),g(p,m)}}}function dl(U){let l,r,t,p;return l=new x({props:{id:"install_ffmpeg",option:"conda (any PyTorch version)",$$slots:{default:[ml]},$$scope:{ctx:U}}}),t=new x({props:{id:"install_ffmpeg",option:"uv (PyTorch >= 2.10 only)",$$slots:{default:[$l]},$$scope:{ctx:U}}}),{c(){$(l.$$.fragment),r=c(),$(t.$$.fragment)},l(n){d(l.$$.fragment,n),r=f(n),d(t.$$.fragment,n)},m(n,a){u(l,n,a),i(n,r,a),u(t,n,a),p=!0},p(n,a){const y={};a&2&&(y.$$scope={dirty:a,ctx:n}),l.$set(y);const b={};a&2&&(b.$$scope={dirty:a,ctx:n}),t.$set(b)},i(n){p||(M(l.$$.fragment,n),M(t.$$.fragment,n),p=!0)},o(n){h(l.$$.fragment,n),h(t.$$.fragment,n),p=!1},d(n){n&&o(r),g(l,n),g(t,n)}}}function ul(U){let l,r;return l=new j({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1lJTIwJTIyLiU1QmNvcmVfc2NyaXB0cyU1RCUyMiUyMCUyMCUyMyUyMEZvciUyMHJvYm90JTIwd29ya2Zsb3dzJTIwKHJlY29yZGluZyUyQyUyMHJlcGxheWluZyUyQyUyMGNhbGlicmF0ZSklMEFwaXAlMjBpbnN0YWxsJTIwLWUlMjAlMjIuJTVCdHJhaW5pbmclNUQlMjIlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBGb3IlMjB0cmFpbmluZyUyMHBvbGljaWVzJTBBcGlwJTIwaW5zdGFsbCUyMC1lJTIwJTIyLiU1QmFsbCU1RCUyMiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMEV2ZXJ5dGhpbmclMjAoYWxsJTIwcG9saWNpZXMlMkMlMjBlbnZzJTJDJTIwaGFyZHdhcmUlMkMlMjBkZXYlMjB0b29scyk=",highlighted:`pip install -e <span class="hljs-string">&quot;.[core_scripts]&quot;</span>  <span class="hljs-comment"># For robot workflows (recording, replaying, calibrate)</span>
pip install -e <span class="hljs-string">&quot;.[training]&quot;</span>      <span class="hljs-comment"># For training policies</span>
pip install -e <span class="hljs-string">&quot;.[all]&quot;</span>           <span class="hljs-comment"># Everything (all policies, envs, hardware, dev tools)</span>`,wrap:!1}}),{c(){$(l.$$.fragment)},l(t){d(l.$$.fragment,t)},m(t,p){u(l,t,p),r=!0},p:G,i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){h(l.$$.fragment,t),r=!1},d(t){g(l,t)}}}function Ml(U){let l,r;return l=new j({props:{code:"dXYlMjBwaXAlMjBpbnN0YWxsJTIwLWUlMjAlMjIuJTVCY29yZV9zY3JpcHRzJTVEJTIyJTIwJTIwJTIzJTIwRm9yJTIwcm9ib3QlMjB3b3JrZmxvd3MlMjAocmVjb3JkaW5nJTJDJTIwcmVwbGF5aW5nJTJDJTIwY2FsaWJyYXRlKSUwQXV2JTIwcGlwJTIwaW5zdGFsbCUyMC1lJTIwJTIyLiU1QnRyYWluaW5nJTVEJTIyJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwRm9yJTIwdHJhaW5pbmclMjBwb2xpY2llcyUwQXV2JTIwcGlwJTIwaW5zdGFsbCUyMC1lJTIwJTIyLiU1QmFsbCU1RCUyMiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMEV2ZXJ5dGhpbmclMjAoYWxsJTIwcG9saWNpZXMlMkMlMjBlbnZzJTJDJTIwaGFyZHdhcmUlMkMlMjBkZXYlMjB0b29scyk=",highlighted:`uv pip install -e <span class="hljs-string">&quot;.[core_scripts]&quot;</span>  <span class="hljs-comment"># For robot workflows (recording, replaying, calibrate)</span>
uv pip install -e <span class="hljs-string">&quot;.[training]&quot;</span>      <span class="hljs-comment"># For training policies</span>
uv pip install -e <span class="hljs-string">&quot;.[all]&quot;</span>           <span class="hljs-comment"># Everything (all policies, envs, hardware, dev tools)</span>`,wrap:!1}}),{c(){$(l.$$.fragment)},l(t){d(l.$$.fragment,t)},m(t,p){u(l,t,p),r=!0},p:G,i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){h(l.$$.fragment,t),r=!1},d(t){g(l,t)}}}function hl(U){let l,r,t,p;return l=new x({props:{id:"install_lerobot_src",option:"conda",$$slots:{default:[ul]},$$scope:{ctx:U}}}),t=new x({props:{id:"install_lerobot_src",option:"uv",$$slots:{default:[Ml]},$$scope:{ctx:U}}}),{c(){$(l.$$.fragment),r=c(),$(t.$$.fragment)},l(n){d(l.$$.fragment,n),r=f(n),d(t.$$.fragment,n)},m(n,a){u(l,n,a),i(n,r,a),u(t,n,a),p=!0},p(n,a){const y={};a&2&&(y.$$scope={dirty:a,ctx:n}),l.$set(y);const b={};a&2&&(b.$$scope={dirty:a,ctx:n}),t.$set(b)},i(n){p||(M(l.$$.fragment,n),M(t.$$.fragment,n),p=!0)},o(n){h(l.$$.fragment,n),h(t.$$.fragment,n),p=!1},d(n){n&&o(r),g(l,n),g(t,n)}}}function gl(U){let l,r;return l=new j({props:{code:"cGlwJTIwaW5zdGFsbCUyMGxlcm9ib3Q=",highlighted:"pip install lerobot",wrap:!1}}),{c(){$(l.$$.fragment)},l(t){d(l.$$.fragment,t)},m(t,p){u(l,t,p),r=!0},p:G,i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){h(l.$$.fragment,t),r=!1},d(t){g(l,t)}}}function yl(U){let l,r;return l=new j({props:{code:"dXYlMjBwaXAlMjBpbnN0YWxsJTIwbGVyb2JvdA==",highlighted:"uv pip install lerobot",wrap:!1}}),{c(){$(l.$$.fragment)},l(t){d(l.$$.fragment,t)},m(t,p){u(l,t,p),r=!0},p:G,i(t){r||(M(l.$$.fragment,t),r=!0)},o(t){h(l.$$.fragment,t),r=!1},d(t){g(l,t)}}}function bl(U){let l,r,t,p;return l=new x({props:{id:"install_lerobot_pypi",option:"conda",$$slots:{default:[gl]},$$scope:{ctx:U}}}),t=new x({props:{id:"install_lerobot_pypi",option:"uv",$$slots:{default:[yl]},$$scope:{ctx:U}}}),{c(){$(l.$$.fragment),r=c(),$(t.$$.fragment)},l(n){d(l.$$.fragment,n),r=f(n),d(t.$$.fragment,n)},m(n,a){u(l,n,a),i(n,r,a),u(t,n,a),p=!0},p(n,a){const y={};a&2&&(y.$$scope={dirty:a,ctx:n}),l.$set(y);const b={};a&2&&(b.$$scope={dirty:a,ctx:n}),t.$set(b)},i(n){p||(M(l.$$.fragment,n),M(t.$$.fragment,n),p=!0)},o(n){h(l.$$.fragment,n),h(t.$$.fragment,n),p=!1},d(n){n&&o(r),g(l,n),g(t,n)}}}function wl(U){let l,r,t,p,n,a,y,b,m,v='This guide uses <code>conda</code> (via miniforge) to manage environments (recommended). If you prefer another environment manager (e.g. <code>uv</code>, <code>venv</code>), ensure you have Python &gt;=3.12 and support PyTorch &gt;= 2.10, then skip ahead to <a href="#step-2-environment-setup">Environment Setup</a>.',k,C,I,R,Ge,F,ke,P,Jt="Create a virtual environment with Python 3.12:",Ze,Z,Le,V,Ct="Then activate your virtual environment, you have to do this each time you open a shell to use lerobot:",We,L,Be,A,He,E,jt='LeRobot uses <a href="https://github.com/meta-pytorch/torchcodec" rel="nofollow">TorchCodec</a> for video decoding by default, which requires <code>ffmpeg</code>.',Ye,W,It="<p><strong>Platform support:</strong> TorchCodec is <strong>not available</strong> on macOS Intel (x86_64), Linux ARM (aarch64, arm64, armv7l), or Windows with PyTorch &lt; 2.8. On these platforms, LeRobot automatically falls back to <code>pyav</code> — so you do not need to install <code>ffmpeg</code> and can skip to Step 3.</p>",Re,S,_t="If your platform supports TorchCodec, install <code>ffmpeg</code> using one of the methods below:",Fe,B,Pe,X,Ve,z,xt="The base <code>lerobot</code> install is intentionally <strong>lightweight</strong> — it includes only core ML dependencies (PyTorch, torchvision, numpy, opencv, einops, draccus, huggingface-hub, gymnasium, safetensors). Heavier dependencies are gated behind optional extras so you only install what you need.",Ae,Q,Ee,N,Gt="First, clone the repository and navigate into the directory:",Se,q,Xe,O,kt="Then, install the library in editable mode. This is useful if you plan to contribute to the code.",ze,H,Qe,K,Ne,D,Zt=`<strong>Core Library:</strong>
Install the base package with:`,qe,Y,Oe,ee,Lt="<em>This installs only the core ML dependencies. You will need to add extras for most workflows.</em>",Ke,te,Wt=`<strong>Feature Extras:</strong>
LeRobot provides <strong>feature-scoped extras</strong> that map to common workflows. If you are using <code>uv</code>, replace <code>pip install</code> with <code>uv pip install</code> in the commands below.`,De,le,Bt="<thead><tr><th>Extra</th> <th>What it adds</th> <th>Typical use case</th></tr></thead> <tbody><tr><td><code>dataset</code></td> <td><code>datasets</code>, <code>av</code>, <code>torchcodec</code>, <code>jsonlines</code></td> <td>Loading &amp; creating datasets</td></tr> <tr><td><code>training</code></td> <td><code>dataset</code> + <code>accelerate</code>, <code>wandb</code></td> <td>Training policies</td></tr> <tr><td><code>hardware</code></td> <td><code>pynput</code>, <code>pyserial</code>, <code>deepdiff</code></td> <td>Connecting to real robots</td></tr> <tr><td><code>viz</code></td> <td><code>rerun-sdk</code></td> <td>Visualization during recording/eval</td></tr></tbody>",et,ne,Ht="<strong>Composite Extras</strong> combine feature extras for common CLI scripts:",tt,se,Yt="<thead><tr><th>Extra</th> <th>Includes</th> <th>Typical use case</th></tr></thead> <tbody><tr><td><code>core_scripts</code></td> <td><code>dataset</code> + <code>hardware</code> + <code>viz</code></td> <td><code>lerobot-record</code>, <code>lerobot-replay</code>, <code>lerobot-calibrate</code></td></tr> <tr><td><code>evaluation</code></td> <td><code>av</code></td> <td><code>lerobot-eval</code> (add policy + env extras as needed)</td></tr> <tr><td><code>dataset_viz</code></td> <td><code>dataset</code> + <code>viz</code></td> <td><code>lerobot-dataset-viz</code>, <code>lerobot-imgtransform-viz</code></td></tr></tbody>",lt,oe,nt,ie,Rt="<strong>Policy, environment, and hardware extras</strong> are still available for specific dependencies:",st,ae,ot,re,Ft="<em>Multiple extras can be combined (e.g., <code>.[core_scripts,pi,pusht]</code>). For a full list of available extras, refer to <code>pyproject.toml</code>.</em>",it,pe,at,ce,Pt=`If you encounter build errors, you may need to install additional system dependencies: <code>cmake</code>, <code>build-essential</code>, and <code>ffmpeg libs</code>.
To install these for Linux run:`,rt,fe,pt,me,Vt='For other systems, see: <a href="https://pyav.org/docs/develop/overview/installation.html#bring-your-own-ffmpeg" rel="nofollow">Compiling PyAV</a>',ct,$e,ft,de,At="LeRobot provides optional extras for specific functionalities. Multiple extras can be combined (e.g., <code>.[aloha,feetech]</code>). For all available extras, refer to <code>pyproject.toml</code>. If you are using <code>uv</code>, replace <code>pip install</code> with <code>uv pip install</code> in the commands below.",mt,ue,$t,Me,Et=`Install environment packages: <code>aloha</code> (<a href="https://github.com/huggingface/gym-aloha" rel="nofollow">gym-aloha</a>), or <code>pusht</code> (<a href="https://github.com/huggingface/gym-pusht" rel="nofollow">gym-pusht</a>).
These automatically include the <code>dataset</code> extra.`,dt,he,ut,ge,Mt,ye,St="For Koch v1.1 install the Dynamixel SDK, for SO100/SO101/Moss install the Feetech SDK.",ht,be,gt,we,yt,Te,Xt='Weights and Biases is included in the <code>training</code> extra. To use <a href="https://docs.wandb.ai/quickstart" rel="nofollow">Weights and Biases</a> for experiment tracking, log in with:',bt,ve,wt,Ue,zt="You can now assemble your robot if it’s not ready yet, look for your robot type on the left. Then follow the link below to use Lerobot with your robot.",Tt,Je,vt,Ie,Ut;return n=new sl({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),y=new _({props:{title:"Installation",local:"installation",headingTag:"h1"}}),C=new _({props:{title:"Step 1 ( conda only): Install miniforge",local:"step-1--conda-only-install-miniforge",headingTag:"h2"}}),R=new j({props:{code:"d2dldCUyMCUyMmh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmNvbmRhLWZvcmdlJTJGbWluaWZvcmdlJTJGcmVsZWFzZXMlMkZsYXRlc3QlMkZkb3dubG9hZCUyRk1pbmlmb3JnZTMtJTI0KHVuYW1lKS0lMjQodW5hbWUlMjAtbSkuc2glMjIlMEFiYXNoJTIwTWluaWZvcmdlMy0lMjQodW5hbWUpLSUyNCh1bmFtZSUyMC1tKS5zaA==",highlighted:`wget <span class="hljs-string">&quot;https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-<span class="hljs-subst">$(uname)</span>-<span class="hljs-subst">$(uname -m)</span>.sh&quot;</span>
bash Miniforge3-$(<span class="hljs-built_in">uname</span>)-$(<span class="hljs-built_in">uname</span> -m).sh`,wrap:!1}}),F=new _({props:{title:"Step 2: Environment Setup",local:"step-2-environment-setup",headingTag:"h2"}}),Z=new _e({props:{id:"create_venv",options:["conda","uv (PyTorch >= 2.10 only)"],$$slots:{default:[rl]},$$scope:{ctx:U}}}),L=new _e({props:{id:"activate_venv",options:["conda","uv (PyTorch >= 2.10 only)"],$$slots:{default:[fl]},$$scope:{ctx:U}}}),A=new _({props:{title:"Install ffmpeg (for video decoding)",local:"install-ffmpeg-for-video-decoding",headingTag:"h3"}}),B=new _e({props:{id:"install_ffmpeg",options:["conda (any PyTorch version)","uv (PyTorch >= 2.10 only)"],$$slots:{default:[dl]},$$scope:{ctx:U}}}),X=new _({props:{title:"Step 3: Install LeRobot 🤗",local:"step-3-install-lerobot-",headingTag:"h2"}}),Q=new _({props:{title:"From Source",local:"from-source",headingTag:"h3"}}),q=new j({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZodWdnaW5nZmFjZSUyRmxlcm9ib3QuZ2l0JTBBY2QlMjBsZXJvYm90",highlighted:`git <span class="hljs-built_in">clone</span> https://github.com/huggingface/lerobot.git
<span class="hljs-built_in">cd</span> lerobot`,wrap:!1}}),H=new _e({props:{id:"install_lerobot_src",options:["conda","uv"],$$slots:{default:[hl]},$$scope:{ctx:U}}}),K=new _({props:{title:"Installation from PyPI",local:"installation-from-pypi",headingTag:"h3"}}),Y=new _e({props:{id:"install_lerobot_pypi",options:["conda","uv"],$$slots:{default:[bl]},$$scope:{ctx:U}}}),oe=new j({props:{code:"cGlwJTIwaW5zdGFsbCUyMCdsZXJvYm90JTVCY29yZV9zY3JpcHRzJTVEJyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMFJlY29yZCUyQyUyMHJlcGxheSUyQyUyMGNhbGlicmF0ZSUwQXBpcCUyMGluc3RhbGwlMjAnbGVyb2JvdCU1QnRyYWluaW5nJTVEJyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMFRyYWluJTIwcG9saWNpZXMlMEFwaXAlMjBpbnN0YWxsJTIwJ2xlcm9ib3QlNUJjb3JlX3NjcmlwdHMlMkN0cmFpbmluZyU1RCclMjAlMjMlMjBSZWNvcmQlMjAlMkIlMjB0cmFpbiUwQXBpcCUyMGluc3RhbGwlMjAnbGVyb2JvdCU1QmFsbCU1RCclMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBFdmVyeXRoaW5n",highlighted:`pip install <span class="hljs-string">&#x27;lerobot[core_scripts]&#x27;</span>          <span class="hljs-comment"># Record, replay, calibrate</span>
pip install <span class="hljs-string">&#x27;lerobot[training]&#x27;</span>              <span class="hljs-comment"># Train policies</span>
pip install <span class="hljs-string">&#x27;lerobot[core_scripts,training]&#x27;</span> <span class="hljs-comment"># Record + train</span>
pip install <span class="hljs-string">&#x27;lerobot[all]&#x27;</span>                   <span class="hljs-comment"># Everything</span>`,wrap:!1}}),ae=new j({props:{code:"cGlwJTIwaW5zdGFsbCUyMCdsZXJvYm90JTVCcGklNUQnJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwUGkwJTJGUGkwLjUlMkZQaTAtRkFTVCUyMHBvbGljeSUyMGRlcHMlMEFwaXAlMjBpbnN0YWxsJTIwJ2xlcm9ib3QlNUJzbW9sdmxhJTVEJyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMFNtb2xWTEElMjBwb2xpY3klMjBkZXBzJTBBcGlwJTIwaW5zdGFsbCUyMCdsZXJvYm90JTVCZGlmZnVzaW9uJTVEJyUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMERpZmZ1c2lvbiUyMHBvbGljeSUyMGRlcHMlMjAoZGlmZnVzZXJzKSUwQXBpcCUyMGluc3RhbGwlMjAnbGVyb2JvdCU1QmFsb2hhJTJDcHVzaHQlNUQnJTIwJTIwJTIwJTIwJTIzJTIwU2ltdWxhdGlvbiUyMGVudmlyb25tZW50cyUwQXBpcCUyMGluc3RhbGwlMjAnbGVyb2JvdCU1QmZlZXRlY2glNUQnJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwRmVldGVjaCUyMG1vdG9yJTIwc3VwcG9ydA==",highlighted:`pip install <span class="hljs-string">&#x27;lerobot[pi]&#x27;</span>             <span class="hljs-comment"># Pi0/Pi0.5/Pi0-FAST policy deps</span>
pip install <span class="hljs-string">&#x27;lerobot[smolvla]&#x27;</span>        <span class="hljs-comment"># SmolVLA policy deps</span>
pip install <span class="hljs-string">&#x27;lerobot[diffusion]&#x27;</span>      <span class="hljs-comment"># Diffusion policy deps (diffusers)</span>
pip install <span class="hljs-string">&#x27;lerobot[aloha,pusht]&#x27;</span>    <span class="hljs-comment"># Simulation environments</span>
pip install <span class="hljs-string">&#x27;lerobot[feetech]&#x27;</span>        <span class="hljs-comment"># Feetech motor support</span>`,wrap:!1}}),pe=new _({props:{title:"Troubleshooting",local:"troubleshooting",headingTag:"h3"}}),fe=new j({props:{code:"c3VkbyUyMGFwdC1nZXQlMjBpbnN0YWxsJTIwY21ha2UlMjBidWlsZC1lc3NlbnRpYWwlMjBweXRob24zLWRldiUyMHBrZy1jb25maWclMjBsaWJhdmZvcm1hdC1kZXYlMjBsaWJhdmNvZGVjLWRldiUyMGxpYmF2ZGV2aWNlLWRldiUyMGxpYmF2dXRpbC1kZXYlMjBsaWJzd3NjYWxlLWRldiUyMGxpYnN3cmVzYW1wbGUtZGV2JTIwbGliYXZmaWx0ZXItZGV2",highlighted:"sudo apt-get install cmake build-essential python3-dev pkg-config libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libavfilter-dev",wrap:!1}}),$e=new _({props:{title:"Optional dependencies",local:"optional-dependencies",headingTag:"h2"}}),ue=new _({props:{title:"Simulations",local:"simulations",headingTag:"h3"}}),he=new j({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1lJTIwJTIyLiU1QmFsb2hhJTVEJTIyJTIwJTIzJTIwb3IlMjAlMjIlNUJwdXNodCU1RCUyMiUyMGZvciUyMGV4YW1wbGU=",highlighted:'pip install -e <span class="hljs-string">&quot;.[aloha]&quot;</span> <span class="hljs-comment"># or &quot;[pusht]&quot; for example</span>',wrap:!1}}),ge=new _({props:{title:"Motor Control",local:"motor-control",headingTag:"h3"}}),be=new j({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1lJTIwJTIyLiU1QmZlZXRlY2glNUQlMjIlMjAlMjMlMjBvciUyMCUyMiU1QmR5bmFtaXhlbCU1RCUyMiUyMGZvciUyMGV4YW1wbGU=",highlighted:'pip install -e <span class="hljs-string">&quot;.[feetech]&quot;</span> <span class="hljs-comment"># or &quot;[dynamixel]&quot; for example</span>',wrap:!1}}),we=new _({props:{title:"Experiment Tracking",local:"experiment-tracking",headingTag:"h3"}}),ve=new j({props:{code:"d2FuZGIlMjBsb2dpbg==",highlighted:"wandb login",wrap:!1}}),Je=new ol({props:{source:"https://github.com/huggingface/lerobot/blob/main/docs/source/installation.mdx"}}),{c(){l=w("meta"),r=c(),t=w("p"),p=c(),$(n.$$.fragment),a=c(),$(y.$$.fragment),b=c(),m=w("p"),m.innerHTML=v,k=c(),$(C.$$.fragment),I=c(),$(R.$$.fragment),Ge=c(),$(F.$$.fragment),ke=c(),P=w("p"),P.textContent=Jt,Ze=c(),$(Z.$$.fragment),Le=c(),V=w("p"),V.textContent=Ct,We=c(),$(L.$$.fragment),Be=c(),$(A.$$.fragment),He=c(),E=w("p"),E.innerHTML=jt,Ye=c(),W=w("blockquote"),W.innerHTML=It,Re=c(),S=w("p"),S.innerHTML=_t,Fe=c(),$(B.$$.fragment),Pe=c(),$(X.$$.fragment),Ve=c(),z=w("p"),z.innerHTML=xt,Ae=c(),$(Q.$$.fragment),Ee=c(),N=w("p"),N.textContent=Gt,Se=c(),$(q.$$.fragment),Xe=c(),O=w("p"),O.textContent=kt,ze=c(),$(H.$$.fragment),Qe=c(),$(K.$$.fragment),Ne=c(),D=w("p"),D.innerHTML=Zt,qe=c(),$(Y.$$.fragment),Oe=c(),ee=w("p"),ee.innerHTML=Lt,Ke=c(),te=w("p"),te.innerHTML=Wt,De=c(),le=w("table"),le.innerHTML=Bt,et=c(),ne=w("p"),ne.innerHTML=Ht,tt=c(),se=w("table"),se.innerHTML=Yt,lt=c(),$(oe.$$.fragment),nt=c(),ie=w("p"),ie.innerHTML=Rt,st=c(),$(ae.$$.fragment),ot=c(),re=w("p"),re.innerHTML=Ft,it=c(),$(pe.$$.fragment),at=c(),ce=w("p"),ce.innerHTML=Pt,rt=c(),$(fe.$$.fragment),pt=c(),me=w("p"),me.innerHTML=Vt,ct=c(),$($e.$$.fragment),ft=c(),de=w("p"),de.innerHTML=At,mt=c(),$(ue.$$.fragment),$t=c(),Me=w("p"),Me.innerHTML=Et,dt=c(),$(he.$$.fragment),ut=c(),$(ge.$$.fragment),Mt=c(),ye=w("p"),ye.textContent=St,ht=c(),$(be.$$.fragment),gt=c(),$(we.$$.fragment),yt=c(),Te=w("p"),Te.innerHTML=Xt,bt=c(),$(ve.$$.fragment),wt=c(),Ue=w("p"),Ue.textContent=zt,Tt=c(),$(Je.$$.fragment),vt=c(),Ie=w("p"),this.h()},l(e){const s=nl("svelte-u9bgzb",document.head);l=T(s,"META",{name:!0,content:!0}),s.forEach(o),r=f(e),t=T(e,"P",{}),xe(t).forEach(o),p=f(e),d(n.$$.fragment,e),a=f(e),d(y.$$.fragment,e),b=f(e),m=T(e,"P",{"data-svelte-h":!0}),J(m)!=="svelte-1lyxpnn"&&(m.innerHTML=v),k=f(e),d(C.$$.fragment,e),I=f(e),d(R.$$.fragment,e),Ge=f(e),d(F.$$.fragment,e),ke=f(e),P=T(e,"P",{"data-svelte-h":!0}),J(P)!=="svelte-1tepeg9"&&(P.textContent=Jt),Ze=f(e),d(Z.$$.fragment,e),Le=f(e),V=T(e,"P",{"data-svelte-h":!0}),J(V)!=="svelte-hqcufj"&&(V.textContent=Ct),We=f(e),d(L.$$.fragment,e),Be=f(e),d(A.$$.fragment,e),He=f(e),E=T(e,"P",{"data-svelte-h":!0}),J(E)!=="svelte-18qllzs"&&(E.innerHTML=jt),Ye=f(e),W=T(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),J(W)!=="svelte-b3d3m"&&(W.innerHTML=It),Re=f(e),S=T(e,"P",{"data-svelte-h":!0}),J(S)!=="svelte-qfh2hf"&&(S.innerHTML=_t),Fe=f(e),d(B.$$.fragment,e),Pe=f(e),d(X.$$.fragment,e),Ve=f(e),z=T(e,"P",{"data-svelte-h":!0}),J(z)!=="svelte-1s1bzxp"&&(z.innerHTML=xt),Ae=f(e),d(Q.$$.fragment,e),Ee=f(e),N=T(e,"P",{"data-svelte-h":!0}),J(N)!=="svelte-1dfga14"&&(N.textContent=Gt),Se=f(e),d(q.$$.fragment,e),Xe=f(e),O=T(e,"P",{"data-svelte-h":!0}),J(O)!=="svelte-fyk5j4"&&(O.textContent=kt),ze=f(e),d(H.$$.fragment,e),Qe=f(e),d(K.$$.fragment,e),Ne=f(e),D=T(e,"P",{"data-svelte-h":!0}),J(D)!=="svelte-1glf4pu"&&(D.innerHTML=Zt),qe=f(e),d(Y.$$.fragment,e),Oe=f(e),ee=T(e,"P",{"data-svelte-h":!0}),J(ee)!=="svelte-19bb437"&&(ee.innerHTML=Lt),Ke=f(e),te=T(e,"P",{"data-svelte-h":!0}),J(te)!=="svelte-trknm9"&&(te.innerHTML=Wt),De=f(e),le=T(e,"TABLE",{"data-svelte-h":!0}),J(le)!=="svelte-1jedgvb"&&(le.innerHTML=Bt),et=f(e),ne=T(e,"P",{"data-svelte-h":!0}),J(ne)!=="svelte-bjijgh"&&(ne.innerHTML=Ht),tt=f(e),se=T(e,"TABLE",{"data-svelte-h":!0}),J(se)!=="svelte-1xi5lgb"&&(se.innerHTML=Yt),lt=f(e),d(oe.$$.fragment,e),nt=f(e),ie=T(e,"P",{"data-svelte-h":!0}),J(ie)!=="svelte-ktfs2j"&&(ie.innerHTML=Rt),st=f(e),d(ae.$$.fragment,e),ot=f(e),re=T(e,"P",{"data-svelte-h":!0}),J(re)!=="svelte-kvr1x5"&&(re.innerHTML=Ft),it=f(e),d(pe.$$.fragment,e),at=f(e),ce=T(e,"P",{"data-svelte-h":!0}),J(ce)!=="svelte-choist"&&(ce.innerHTML=Pt),rt=f(e),d(fe.$$.fragment,e),pt=f(e),me=T(e,"P",{"data-svelte-h":!0}),J(me)!=="svelte-v7ps6i"&&(me.innerHTML=Vt),ct=f(e),d($e.$$.fragment,e),ft=f(e),de=T(e,"P",{"data-svelte-h":!0}),J(de)!=="svelte-vt1h0i"&&(de.innerHTML=At),mt=f(e),d(ue.$$.fragment,e),$t=f(e),Me=T(e,"P",{"data-svelte-h":!0}),J(Me)!=="svelte-e9x4vx"&&(Me.innerHTML=Et),dt=f(e),d(he.$$.fragment,e),ut=f(e),d(ge.$$.fragment,e),Mt=f(e),ye=T(e,"P",{"data-svelte-h":!0}),J(ye)!=="svelte-1y1fp15"&&(ye.textContent=St),ht=f(e),d(be.$$.fragment,e),gt=f(e),d(we.$$.fragment,e),yt=f(e),Te=T(e,"P",{"data-svelte-h":!0}),J(Te)!=="svelte-spfz2a"&&(Te.innerHTML=Xt),bt=f(e),d(ve.$$.fragment,e),wt=f(e),Ue=T(e,"P",{"data-svelte-h":!0}),J(Ue)!=="svelte-gx5qo"&&(Ue.textContent=zt),Tt=f(e),d(Je.$$.fragment,e),vt=f(e),Ie=T(e,"P",{}),xe(Ie).forEach(o),this.h()},h(){Ce(l,"name","hf:doc:metadata"),Ce(l,"content",Tl),Ce(W,"class","note")},m(e,s){je(document.head,l),i(e,r,s),i(e,t,s),i(e,p,s),u(n,e,s),i(e,a,s),u(y,e,s),i(e,b,s),i(e,m,s),i(e,k,s),u(C,e,s),i(e,I,s),u(R,e,s),i(e,Ge,s),u(F,e,s),i(e,ke,s),i(e,P,s),i(e,Ze,s),u(Z,e,s),i(e,Le,s),i(e,V,s),i(e,We,s),u(L,e,s),i(e,Be,s),u(A,e,s),i(e,He,s),i(e,E,s),i(e,Ye,s),i(e,W,s),i(e,Re,s),i(e,S,s),i(e,Fe,s),u(B,e,s),i(e,Pe,s),u(X,e,s),i(e,Ve,s),i(e,z,s),i(e,Ae,s),u(Q,e,s),i(e,Ee,s),i(e,N,s),i(e,Se,s),u(q,e,s),i(e,Xe,s),i(e,O,s),i(e,ze,s),u(H,e,s),i(e,Qe,s),u(K,e,s),i(e,Ne,s),i(e,D,s),i(e,qe,s),u(Y,e,s),i(e,Oe,s),i(e,ee,s),i(e,Ke,s),i(e,te,s),i(e,De,s),i(e,le,s),i(e,et,s),i(e,ne,s),i(e,tt,s),i(e,se,s),i(e,lt,s),u(oe,e,s),i(e,nt,s),i(e,ie,s),i(e,st,s),u(ae,e,s),i(e,ot,s),i(e,re,s),i(e,it,s),u(pe,e,s),i(e,at,s),i(e,ce,s),i(e,rt,s),u(fe,e,s),i(e,pt,s),i(e,me,s),i(e,ct,s),u($e,e,s),i(e,ft,s),i(e,de,s),i(e,mt,s),u(ue,e,s),i(e,$t,s),i(e,Me,s),i(e,dt,s),u(he,e,s),i(e,ut,s),u(ge,e,s),i(e,Mt,s),i(e,ye,s),i(e,ht,s),u(be,e,s),i(e,gt,s),u(we,e,s),i(e,yt,s),i(e,Te,s),i(e,bt,s),u(ve,e,s),i(e,wt,s),i(e,Ue,s),i(e,Tt,s),u(Je,e,s),i(e,vt,s),i(e,Ie,s),Ut=!0},p(e,[s]){const Qt={};s&2&&(Qt.$$scope={dirty:s,ctx:e}),Z.$set(Qt);const Nt={};s&2&&(Nt.$$scope={dirty:s,ctx:e}),L.$set(Nt);const qt={};s&2&&(qt.$$scope={dirty:s,ctx:e}),B.$set(qt);const Ot={};s&2&&(Ot.$$scope={dirty:s,ctx:e}),H.$set(Ot);const Kt={};s&2&&(Kt.$$scope={dirty:s,ctx:e}),Y.$set(Kt)},i(e){Ut||(M(n.$$.fragment,e),M(y.$$.fragment,e),M(C.$$.fragment,e),M(R.$$.fragment,e),M(F.$$.fragment,e),M(Z.$$.fragment,e),M(L.$$.fragment,e),M(A.$$.fragment,e),M(B.$$.fragment,e),M(X.$$.fragment,e),M(Q.$$.fragment,e),M(q.$$.fragment,e),M(H.$$.fragment,e),M(K.$$.fragment,e),M(Y.$$.fragment,e),M(oe.$$.fragment,e),M(ae.$$.fragment,e),M(pe.$$.fragment,e),M(fe.$$.fragment,e),M($e.$$.fragment,e),M(ue.$$.fragment,e),M(he.$$.fragment,e),M(ge.$$.fragment,e),M(be.$$.fragment,e),M(we.$$.fragment,e),M(ve.$$.fragment,e),M(Je.$$.fragment,e),Ut=!0)},o(e){h(n.$$.fragment,e),h(y.$$.fragment,e),h(C.$$.fragment,e),h(R.$$.fragment,e),h(F.$$.fragment,e),h(Z.$$.fragment,e),h(L.$$.fragment,e),h(A.$$.fragment,e),h(B.$$.fragment,e),h(X.$$.fragment,e),h(Q.$$.fragment,e),h(q.$$.fragment,e),h(H.$$.fragment,e),h(K.$$.fragment,e),h(Y.$$.fragment,e),h(oe.$$.fragment,e),h(ae.$$.fragment,e),h(pe.$$.fragment,e),h(fe.$$.fragment,e),h($e.$$.fragment,e),h(ue.$$.fragment,e),h(he.$$.fragment,e),h(ge.$$.fragment,e),h(be.$$.fragment,e),h(we.$$.fragment,e),h(ve.$$.fragment,e),h(Je.$$.fragment,e),Ut=!1},d(e){e&&(o(r),o(t),o(p),o(a),o(b),o(m),o(k),o(I),o(Ge),o(ke),o(P),o(Ze),o(Le),o(V),o(We),o(Be),o(He),o(E),o(Ye),o(W),o(Re),o(S),o(Fe),o(Pe),o(Ve),o(z),o(Ae),o(Ee),o(N),o(Se),o(Xe),o(O),o(ze),o(Qe),o(Ne),o(D),o(qe),o(Oe),o(ee),o(Ke),o(te),o(De),o(le),o(et),o(ne),o(tt),o(se),o(lt),o(nt),o(ie),o(st),o(ot),o(re),o(it),o(at),o(ce),o(rt),o(pt),o(me),o(ct),o(ft),o(de),o(mt),o($t),o(Me),o(dt),o(ut),o(Mt),o(ye),o(ht),o(gt),o(yt),o(Te),o(bt),o(wt),o(Ue),o(Tt),o(vt),o(Ie)),o(l),g(n,e),g(y,e),g(C,e),g(R,e),g(F,e),g(Z,e),g(L,e),g(A,e),g(B,e),g(X,e),g(Q,e),g(q,e),g(H,e),g(K,e),g(Y,e),g(oe,e),g(ae,e),g(pe,e),g(fe,e),g($e,e),g(ue,e),g(he,e),g(ge,e),g(be,e),g(we,e),g(ve,e),g(Je,e)}}}const Tl='{"title":"Installation","local":"installation","sections":[{"title":"Step 1 ( conda only): Install miniforge","local":"step-1--conda-only-install-miniforge","sections":[],"depth":2},{"title":"Step 2: Environment Setup","local":"step-2-environment-setup","sections":[{"title":"Install ffmpeg (for video decoding)","local":"install-ffmpeg-for-video-decoding","sections":[],"depth":3}],"depth":2},{"title":"Step 3: Install LeRobot 🤗","local":"step-3-install-lerobot-","sections":[{"title":"From Source","local":"from-source","sections":[],"depth":3},{"title":"Installation from PyPI","local":"installation-from-pypi","sections":[],"depth":3},{"title":"Troubleshooting","local":"troubleshooting","sections":[],"depth":3}],"depth":2},{"title":"Optional dependencies","local":"optional-dependencies","sections":[{"title":"Simulations","local":"simulations","sections":[],"depth":3},{"title":"Motor Control","local":"motor-control","sections":[],"depth":3},{"title":"Experiment Tracking","local":"experiment-tracking","sections":[],"depth":3}],"depth":2}],"depth":1}';function vl(U){return el(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class xl extends tl{constructor(l){super(),ll(this,l,vl,wl,Dt,{})}}export{xl as component};
