import{s as pt,a as ct,n as ft,o as mt}from"../chunks/scheduler.4048030c.js";import{S as ut,i as ht,e as i,s as a,c as G,h as gt,a as l,d as o,b as r,f as lt,g as I,j as p,k as _,q as bt,l as dt,m as n,n as K,t as N,o as Q,p as W}from"../chunks/index.30ed9803.js";import{C as yt,H as st,E as vt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.53ab31a6.js";function wt(J){let s,R,T,k,u,P,h,H,c,V,M,g,Y="Now that we’ve learned some history, let’s explore the main Python library we’ll be using throughout this course: LeRobot.",E,b,Z="LeRobot is an open-source library for robotics developed by Hugging Face. Think of it as a complete toolkit that handles everything from controlling real robots to training advanced learning algorithms, all in one place using PyTorch.",O,d,tt="What makes LeRobot special is that it’s “vertically integrated.” This means it provides a unified way to work with real robots, handle complex multi-modal data (like combining camera feeds with sensor readings), and integrates smoothly with the PyTorch and Hugging Face tools you might already know. Essentially, LeRobot aims to be your one-stop library for robot learning projects.",q,f,et='<p><strong>Supported Robots:</strong> LeRobot currently supports accessible platforms such as <strong>SO-100/SO-101</strong> (3D‑printable arms) and <strong>ALOHA/ALOHA‑2</strong> (bimanual manipulation). For the up‑to‑date list of supported platforms, see the <a href="https://huggingface.co/docs/lerobot" rel="nofollow">official documentation</a>.</p>',A,y,ot="One key advantage is that LeRobot uses a standardized approach for connecting to different robot platforms. This means adding support for new robots requires much less work than starting from scratch. The library also introduces <code>LeRobotDataset</code>, a specialized format for robotics data that the open-source community is already using to share datasets efficiently.",S,v,nt="LeRobot includes implementations of many cutting-edge robot learning algorithms, all built with PyTorch for efficiency. It also provides tools for running experiments and tracking results. Perhaps most importantly for real-world applications, LeRobot separates the “thinking” part (planning what to do) from the “doing” part (executing actions). This separation is crucial because it allows robots to react quickly and adapt better when things don’t go exactly as planned.",z,m,at="<p><strong>Performance Note:</strong> LeRobot’s optimized inference stack is crucial for real-time robot control, where delays of even milliseconds can affect performance. This separation of planning and execution is a key innovation.</p>",X,w,F,L,rt='For a full list of references, check out the <a href="https://huggingface.co/spaces/lerobot/robot-learning-tutorial" rel="nofollow">tutorial</a>.',U,x,it=`<li><p><strong>RT-1: Robotics Transformer for Real-World Control at Scale</strong> (2023)<br/>
Anthony Brohan et al.<br/>
This paper demonstrates how transformer architectures can be applied to robotic control at scale, showing the power of learning from large and diverse datasets.<br/> <a href="https://huggingface.co/papers/2212.06817" rel="nofollow">arXiv:2212.06817</a></p></li> <li><p><strong>Open X-Embodiment: Robotic Learning Datasets and RT-X Models</strong> (2023)<br/>
Open X-Embodiment Collaboration<br/>
A collaborative effort to create large-scale, diverse robotic datasets across multiple embodiments, demonstrating the importance of data sharing in advancing robot learning.<br/> <a href="https://huggingface.co/papers/2310.08864" rel="nofollow">arXiv:2310.08864</a></p></li>`,j,$,B,C,D;return u=new yt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),h=new st({props:{title:"LeRobot: An End-to-End Robot Learning Library",local:"lerobot-an-end-to-end-robot-learning-library",headingTag:"h1"}}),w=new st({props:{title:"References",local:"references",headingTag:"h2"}}),$=new vt({props:{source:"https://github.com/huggingface/robotics-course/blob/main/units/en/unit1/2.mdx"}}),{c(){s=i("meta"),R=a(),T=i("p"),k=a(),G(u.$$.fragment),P=a(),G(h.$$.fragment),H=a(),c=i("img"),M=a(),g=i("p"),g.textContent=Y,E=a(),b=i("p"),b.textContent=Z,O=a(),d=i("p"),d.textContent=tt,q=a(),f=i("blockquote"),f.innerHTML=et,A=a(),y=i("p"),y.innerHTML=ot,S=a(),v=i("p"),v.textContent=nt,z=a(),m=i("blockquote"),m.innerHTML=at,X=a(),G(w.$$.fragment),F=a(),L=i("p"),L.innerHTML=rt,U=a(),x=i("ul"),x.innerHTML=it,j=a(),G($.$$.fragment),B=a(),C=i("p"),this.h()},l(t){const e=gt("svelte-u9bgzb",document.head);s=l(e,"META",{name:!0,content:!0}),e.forEach(o),R=r(t),T=l(t,"P",{}),lt(T).forEach(o),k=r(t),I(u.$$.fragment,t),P=r(t),I(h.$$.fragment,t),H=r(t),c=l(t,"IMG",{src:!0,alt:!0,style:!0}),M=r(t),g=l(t,"P",{"data-svelte-h":!0}),p(g)!=="svelte-k657p6"&&(g.textContent=Y),E=r(t),b=l(t,"P",{"data-svelte-h":!0}),p(b)!=="svelte-fnq8w0"&&(b.textContent=Z),O=r(t),d=l(t,"P",{"data-svelte-h":!0}),p(d)!=="svelte-fwkufh"&&(d.textContent=tt),q=r(t),f=l(t,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(f)!=="svelte-euf418"&&(f.innerHTML=et),A=r(t),y=l(t,"P",{"data-svelte-h":!0}),p(y)!=="svelte-op6kut"&&(y.innerHTML=ot),S=r(t),v=l(t,"P",{"data-svelte-h":!0}),p(v)!=="svelte-sophub"&&(v.textContent=nt),z=r(t),m=l(t,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(m)!=="svelte-143oc4y"&&(m.innerHTML=at),X=r(t),I(w.$$.fragment,t),F=r(t),L=l(t,"P",{"data-svelte-h":!0}),p(L)!=="svelte-12jfyok"&&(L.innerHTML=rt),U=r(t),x=l(t,"UL",{"data-svelte-h":!0}),p(x)!=="svelte-pxzxhw"&&(x.innerHTML=it),j=r(t),I($.$$.fragment,t),B=r(t),C=l(t,"P",{}),lt(C).forEach(o),this.h()},h(){_(s,"name","hf:doc:metadata"),_(s,"content",Lt),ct(c.src,V="https://huggingface.co/robotics-course/images/resolve/main/ch1/ch1-lerobot-figure1.png")||_(c,"src",V),_(c,"alt","LeRobot Library Overview"),bt(c,"width","100%"),_(f,"class","tip"),_(m,"class","warning")},m(t,e){dt(document.head,s),n(t,R,e),n(t,T,e),n(t,k,e),K(u,t,e),n(t,P,e),K(h,t,e),n(t,H,e),n(t,c,e),n(t,M,e),n(t,g,e),n(t,E,e),n(t,b,e),n(t,O,e),n(t,d,e),n(t,q,e),n(t,f,e),n(t,A,e),n(t,y,e),n(t,S,e),n(t,v,e),n(t,z,e),n(t,m,e),n(t,X,e),K(w,t,e),n(t,F,e),n(t,L,e),n(t,U,e),n(t,x,e),n(t,j,e),K($,t,e),n(t,B,e),n(t,C,e),D=!0},p:ft,i(t){D||(N(u.$$.fragment,t),N(h.$$.fragment,t),N(w.$$.fragment,t),N($.$$.fragment,t),D=!0)},o(t){Q(u.$$.fragment,t),Q(h.$$.fragment,t),Q(w.$$.fragment,t),Q($.$$.fragment,t),D=!1},d(t){t&&(o(R),o(T),o(k),o(P),o(H),o(c),o(M),o(g),o(E),o(b),o(O),o(d),o(q),o(f),o(A),o(y),o(S),o(v),o(z),o(m),o(X),o(F),o(L),o(U),o(x),o(j),o(B),o(C)),o(s),W(u,t),W(h,t),W(w,t),W($,t)}}}const Lt='{"title":"LeRobot: An End-to-End Robot Learning Library","local":"lerobot-an-end-to-end-robot-learning-library","sections":[{"title":"References","local":"references","sections":[],"depth":2}],"depth":1}';function xt(J){return mt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ct extends ut{constructor(s){super(),ht(this,s,xt,wt,pt,{})}}export{Ct as component};
