1import{r as h,j as e,H as f,L as r}from"./index-ab38db77.js";import{L as v,q as i}from"./Layout-ae221617.js";import{A as j}from"./AdPlaceholder-9ddf71ab.js";import{R as k}from"./RoboticsQuote-b0c1f94b.js";import{P as N}from"./PromoBanner-315eadaf.js";import{C as s}from"./code-914189bc.js";import{E as l}from"./x-dbcb06f2.js";import{A as a}from"./streakUtils-4796b5f1.js";import{c as y}from"./createLucideIcon-350a23d4.js";import{T as c}from"./trending-up-39dff4f9.js";import{B as m}from"./book-open-d6b4bdaf.js";import{F as w}from"./filter-a052942a.js";import{T as R}from"./terminal-d75759e3.js";import{U as b}from"./users-e8160425.js";import{T as L}from"./target-1c7ddc66.js";import"./button-aceb6222.js";import"./index-38ea8514.js";import"./input-88a8d561.js";import"./bot-f88ad613.js";import"./mail-d6f89251.js";import"./cpu-1ebd5e89.js";import"./studyVault-4c6970a9.js";import"./shield-check-89bf9027.js";import"./authRedirect-9431f409.js";import"./search-b7443866.js";import"./chevron-left-3f1f1bc1.js";import"./trophy-93bb35a2.js";import"./code-2-e970a78e.js";import"./heart-16f11fbb.js";const p=y("GitPullRequest",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]),S=[{name:"pickplace-rl-mobile-manipulator",url:"https://github.com/darshmenon/pickplace-rl-mobile-manipulator",fork:"https://github.com/darshmenon/pickplace-rl-mobile-manipulator/fork",description:"ARES mobile manipulator: a differential-drive base with UR3 + Robotiq 2F-85 learns six-stage pick-and-place using TQC, 46D observations, 9D actions, scripted pre-grasp, Gazebo poses, and no motion planner in the RL loop.",tags:["ROS 2","Gazebo","TQC","RL","Manipulation"],blogLink:"/learn/blog/reinforcement-learning",blogLabel:"RL for Robotics",highlight:!0,difficulty:"Advanced",goodFirst:["Add a smaller Gazebo test world","Document reward weights","Add a training smoke-test command"]},{name:"isaacsim-ur-rl",url:"https://github.com/darshmenon/isaacsim-ur-rl",fork:"https://github.com/darshmenon/isaacsim-ur-rl/fork",description:"Isaac Sim reinfor
1cement-learning starter for Universal Robots. Trains SAC on a UR10 reach task with a Gymnasium wrapper, randomized 3D targets, 15D observations, 6D joint-delta actions, eval callbacks, and checkpoints.",tags:["Isaac Sim","UR Arm","RL","NVIDIA"],blogLink:"/learn/blog/isaac-lab-robot-training",blogLabel:"Isaac Lab Training",highlight:!1,difficulty:"Intermediate",goodFirst:["Add setup notes for a fresh Isaac Sim install","Document checkpoint replay","Add a troubleshooting section"]},{name:"ur-arm-rl",url:"https://github.com/darshmenon/ur-arm-rl",fork:"https://github.com/darshmenon/ur-arm-rl/fork",description:"MuJoCo 3.x RL for UR5e + Robotiq 2F-85. Includes reach, pick-place, shared-arm policies, 4-8 arm symmetric training, handover mode, auto-curriculum, domain randomization, and ROS 2 policy nodes.",tags:["MuJoCo","SAC","RL","UR5e","Manipulation"],blogLink:"/learn/blog/reinforcement-learning",blogLabel:"RL for Robotics",highlight:!1,difficulty:"Advanced",goodFirst:["Add MuJoCo install checks","Document domain randomization knobs","Add a benchmark script"]},{name:"quadruped-robotics-stack",url:"https://github.com/darshmenon/quadruped-robotics-stack",fork:"https://github.com/darshmenon/quadruped-robotics-stack/fork",description:"Quadruped locomotion workspace for Unitree Go2/Go1, Spot, Mini Cheetah, Mini Pupper, and ANYmal. Combines ROS 2 CHAMP, Gazebo Garden, MuJoCo PPO, domain randomization, terrain curriculum, teleop, and policy deployment.",tags:["Quadruped","Locomotion","RL","MuJoCo","ROS 2"],blogLink:"/learn/blog/quadruped-robots-deep-dive",blogLabel:"Quadruped Deep Dive",highlight:!0,difficulty:"Research",goodFirst:["Add terrain config examples","Document teleop commands","Add policy export notes"]},{name:"rl-bipedal-robot",url:"https://github.com/darshmenon/rl-bipedal-robot",fork:"https://github.com/darshmenon/rl-bipedal-robot/fork",description:"Bipedal locomotion training for a 12-DoF humanoid. Uses Isaac Gym PPO, MuJoCo sim-to-sim checks, headless replay/export, and a ROS 2 Humble workspace for Gazebo visualization and deployment work.",tags:["Bipedal","PPO","RL","Locomotion"],blogLink:"/learn/blog/legged-locomotion",blogLabel:"Legged Locomotion",highlight:!1,difficulty:"Advanced",goodFirst:["Add replay screenshots","Document Isaac Gym setup","Add safety-limit notes"]},{name:"rl-bipedal-robot",url:"https://github.com/darshmenon/rl-bipedal-robot",fork:"https://github.com/darshmenon/rl-bipedal-robot/fork",description:"Humanoid RL framework for XBot-L and Unitree H1 walking. Supports PPO in Isaac Gym, SAC in MuJoCo, terrain curriculum, sim-to-sim validation, ros2_control deployment, and a 100 Hz safety-guarded policy runner.",tags:["Bipedal","Curriculum RL","Python","ROS 2"],blogLink:"/learn/blog/legged-locomotion",blogLabel:"Legged Locomotion",highlight:!1,difficulty:"Research",goodFirst:["Add 100 Hz runner diagram","Document terrain curriculum","Add sim-to-sim checklist"]},{name:"UR3_ROS2_PICK_AND_PLACE",url:"https://github.com/darshmenon/UR3_ROS2_PICK_AND_PLACE",fork:"https://github.com/darshmenon/UR3_ROS2_PICK_AND_PLACE/fork",description:"ROS 2 Humble/Jazzy pick-and-place stack for UR3 with Gazebo Harmonic, patched MoveIt Task Constructor, point clouds, vision detection, Ollama task planning, demo recording, and Robotiq/OnRobot gripper options.",tags:["ROS 2","MoveIt 2","UR3","Manipulation"],blogLink:"/learn/blog/ros2-advanced",blogLabel:"Advanced ROS 2",highlight:!1,difficulty:"Intermediate",goodFirst:["Improve launch-file docs","Add a minimal pick-place demo","Document gripper variants"]},{name:"handbot_ros2",url:"https://github.com/darshmenon/handbot_ros2",fork:"https://github.com/darshmenon/handbot_ros2/fork",description:"HandBot dexterous manipulation stack on ROS 2. Includes hand model, teleoperation, and data collection scripts for imitation learning.",tags:["ROS 2","Dexterous","Imitation Learning"],blogLink:"/learn/blog/dexterous-manipulation",blogLabel:"Dexterous Manipulation",highlight:!1,difficulty:"Intermediate",goodFirst:["Add teleop walkthrough","Document data collection format","Add imitation-learning TODOs"]},{name:"rosnav",url:"https://github.com/darshmenon/rosnav",fork:"https://github.com/darshmenon/rosnav/fork",description:"Autonomous ROS 2 navigation stack with SLAM Toolbox, Nav2, Gazebo Harmonic, frontier exploration, waypoint following, collision monitoring, fleet CLI/GUI, shared-map multi-robot exploration, and automatic Humble/Jazzy config switching.",tags:["ROS 2","Nav2","SLAM","Fleet"],blogLink:"/learn/blog/rosnav-ros2-navigation-project",blogLabel:"ROSNav Stack",highlight:!0,difficulty:"Beginner",goodFirst:["Add one-command demo setup","Document map-saving flow","Add Nav2 parameter notes"]}],O={"ROS 2":"bg-blue-100 text-blue-800 ",RL:"bg-purple-100 text-purple-800 ","Isaac Lab":"bg-green-100 text-green-800 ","Isaac Sim":"bg-green-100 text-green-800 ",NVIDIA:"bg-green-100 text-green-800 ",Manipulation:"bg-orange-100 text-orange-800 ",Locomotion:"bg-yellow-100 text-yellow-800 ","Multi-Robot":"bg-teal-100 text-teal-800 ",Fleet:"bg-cyan-100 text-cyan-800 ",Nav2:"bg-indigo-100 text-indigo-800 ",SLAM:"bg-sky-100 text-sky-800 ",Gazebo:"bg-orange-100 text-orange-800 ",TQC:"bg-fuchsia-100 text-fuchsia-800 ",Quadruped:"bg-amber-100 text-amber-800 ",Bipedal:"bg-rose-100 text-rose-800 ","Curriculum RL":"bg-lime-100 text-lime-800 ",Animatronic:"bg-pink-100 text-pink-800 "},A="bg-slate-100 text-slate-700 ",C=[{title:"Unitree Go2 ROS 2 Stack",signal:"Top click page",desc:"Pair quadruped RL experiments with ROS 2 control, sensor topics, and deployment safety.",links:[{label:"Unitree Go2 guide",to:"/learn/blog/unitree-go2-ros2"},{label:"Quadruped RL repo",href:"https://github.com/darshmenon/quadruped-robotics-stack"},{label:"Legged locomotion",to:"/learn/blog/legged-locomotion"}]},{title:"ROS 2 Control and Navigation",signal:"Strong ROS 2 demand",desc:"Turn open-source robot code into a real bringup path: distro choice, controllers, localization, and Nav2.",links:[{label:"ROS 2 distros",to:"/learn/blog/ros2-distributions-2026"},{label:"ROS 2 control",to:"/learn/blog/ros2-control-guide"},{label:"Robot localization",to:"/learn/blog/robot-localization"},{label:"Nav2 guide",to:"/learn/blog/nav2-guide"}]},{title:"Robot Learning and Open Models",signal:"High impressions",de
1sc:"Connect your RL repositories to current demand around VLA models, datasets, LeRobot, and diffusion policies.",links:[{label:"LeRobot tutorial",to:"/learn/blog/lerobot-tutorial"},{label:"Robot datasets",to:"/learn/blog/robot-learning-datasets-2025"},{label:"VLA models",to:"/learn/blog/vla-models-robotics-2025"},{label:"Open weight models",to:"/learn/blog/open-weight-robot-models"}]},{title:"Manipulation Repos",signal:"Expansion target",desc:"Use the UR and HandBot repos as entry points into MoveIt 2, dexterous manipulation, and simulation training.",links:[{label:"MoveIt 2 planning",to:"/learn/blog/moveit-2-motion-planning"},{label:"Dexterous manipulation",to:"/learn/blog/dexterous-manipulation"},{label:"MuJoCo robot learning",to:"/learn/blog/mujoco-robot-learning"},{label:"UR arm RL repo",href:"https://github.com/darshmenon/ur-arm-rl"}]}],P=[{title:"Expand VLA and open robot models",desc:"The VLA and open-weight model pages have strong impressions. Add GitHub setup steps, model comparison tables, and a repo-backed demo path.",link:"/learn/blog/vla-models-robotics-2025"},{title:"Expand YOLOv8 ROS 2 custom messages",desc:"This page ranks unusually well but had no clicks. Add quick copy-paste message definitions, a GitHub example package, and troubleshooting snippets.",link:"/learn/blog/yolov8-ros2-custom-messages"},{title:"Expand Unitree G1/H1 and datasets",desc:"Humanoid and robot-dataset pages both show demand. Add dataset-to-policy workflows, sim setup notes, and GitHub starter templates.",link:"/learn/blog/unitree-g1-h1-humanoid-robot"}],ne=()=>{const[n,u]=h.useState("All"),g=["All","Beginner","ROS 2","RL","Manipulation","Locomotion","Fleet"],d=S.filter(o=>n==="All"||n===o.difficulty?!0:o.tags.includes(n)),x=[{goal:"Build a mobile robot",repo:"rosnav",icon:L,link:"https://github.com/darshmenon/rosnav",guide:"/learn/blog/rosnav-ros2-navigation-project",desc:"Start with SLAM, Nav2, waypoint following, and shared-map navigation."},{goal:"Build a robot arm",repo:"UR3_ROS2_PICK_AND_PLACE",icon:s,link:"https://github.com/darshmenon/UR3_ROS2_PICK_AND_PLACE",guide:"/learn/blog/ros2-advanced",desc:"Use ROS 2, Gazebo, MoveIt 2, point clouds, and gripper bringup."},{goal:"Train an RL arm",repo:"ur-arm-rl",icon:c,link:"https://github.com/darshmenon/ur-arm-rl",guide:"/learn/blog/reinforcement-learning",desc:"Experiment with MuJoCo, SAC, curricula, domain randomization, and ROS 2 policy nodes."},{goal:"Train a quadruped",repo:"quadruped-robotics-stack",icon:i,link:"https://github.com/darshmenon/quadruped-robotics-stack",guide:"/learn/blog/quadruped-robots-deep-dive",desc:"Study locomotion with CHAMP, MuJoCo PPO, terrain curricula, and policy deployment."}];return e.jsxs(v,{children:[e.jsxs(f,{children:[e.jsx("title",{children:"Open Source Robotics Projects: Fork & Contribute | RoboCloud Hub"}),e.jsx("meta",{name:"description",content:"Free, open-source robotics repos and build paths you can fork today: Unitree Go2 ROS 2, quadruped RL, UR arm pick-and-place, ros2_control, Nav2, MuJoCo SAC training, and robot learning projects on GitHub."}),e.jsx("link",{rel:"canonical",href:"https://robocloud-dashboard.vercel.app/open-source"}),e.jsx("meta",{property:"og:title",content:"Open Source Robotics Projects: Fork & Contribute | RoboCloud Hub"}),e.jsx("meta",{property:"og:description",content:"Free, open-source robotics repos and build paths: Unitree Go2 ROS 2, quadruped RL, UR arm pick-and-place, ros2_control, Nav2, MuJoCo, and robot learning projects. Fork on GitHub and contribute."}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{name:"keywords",content:"open source robotics, ROS 2 projects, Unitree Go2 ROS 2, ros2_control examples, Nav2 robot navigation, robot localization, reinforcement learning robotics, quadruped robot RL, UR arm MuJoCo, pick and place robot, Gazebo simulation, robot locomotion, fork GitHub robotics"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"CollectionPage",name:"Open Source Robotics Projects",description:"Free open-source robotics repositories covering RL locomotion, manipulation, ROS 2, and simulation.",url:"https://robocloud-dashboard.vercel.app/open-source",publisher:{"@type":"Person",name:"Darsh Menon",url:"https://github.com/darshmenon"}})})]}),e.jsxs("div",{className:"max-w-5xl mx-auto px-4 py-10 md:py-14",children:[e.jsxs("div",{className:"rounded-3xl bg-gradient-to-br from-slate-900 via-blue-950 to-slate-900 border border-blue-800/50 p-8 md:p-12 mb-10 text-center",children:[e.jsx("div",{className:"flex justify-center mb-4",children:e.jsx("div",{className:"p-4 bg-blue-600/20 rounded-2xl border border-blue-500/30",children:e.jsx(s,{className:"w-10 h-10 text-blue-400"})})}),e.jsx("h1",{className:"text-3xl md:text-4xl font-extrabold text-white mb-3",children:"Open Source Robotics Projects"}),e.jsx("p",{className:"text-blue-200 text-base md:text-lg max-w-2xl mx-auto mb-2 leading-relaxed",children:"Free, open-source robotics code covering reinfor
1cement learning, ROS 2, Gazebo simulation, quadruped locomotion, manipulation, and multi-robot systems."}),e.jsx("p",{className:"text-blue-300/70 text-sm max-w-xl mx-auto mb-6",children:"Fork any repo, experiment, and send a pull request: every contribution helps the robotics community grow."}),e.jsxs("div",{className:"flex flex-wrap gap-3 justify-center",children:[e.jsxs("a",{href:"https://github.com/darshmenon",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-5 py-2.5 bg-white text-slate-900 rounded-xl font-bold text-sm hover:bg-blue-50 transition-colors shadow",children:[e.jsx(l,{className:"w-4 h-4"})," View GitHub Profile"]}),e.jsxs("a",{href:"https://github.com/darshmenon?tab=repositories",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-5 py-2.5 bg-blue-600 text-white rounded-xl font-bold text-sm hover:bg-blue-700 transition-colors shadow",children:[e.jsx(i,{className:"w-4 h-4"})," All Repositories"]})]})]}),e.jsx(k,{quoteIndex:4,topic:"physical-ai",variant:"banner",className:"mb-10"}),e.jsx(N,{href:"/robotics-concepts/ros2-fundamentals",eyebrow:"Before you clone a repo",title:"Most of these projects assume you know ROS 2",description:"New to the ecosystem these repos are built on? Get the fundamentals â nodes, topics, services, and the DDS layer â before diving into the code.",cta:"Learn ROS 2 Fundamentals",image:"/assets/images/generated/ros2_beginners_guide.webp",className:"mb-10"}),e.jsx(j,{variant:"banner",className:"mb-10"}),e.jsxs("div",{className:"mb-10",children:[e.jsxs("div",{className:"mb-5 flex items-end justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[11px] font-black uppercase tracking-widest text-blue-600",children:"Start by goal"}),e.jsx("h2",{className:"mt-1 text-xl md:text-2xl font-extrabold text-foreground",children:"Pick the repo that matches what you want to build"})]}),e.jsxs(r,{to:"/roadmap",className:"hidden sm:inline-flex items-center gap-2 rounded-xl border border-blue-200 bg-blue-50 px-4 py-2 text-xs font-black text-blue-700 hover:bg-blue-100",children:["Robotics roadmap ",e.jsx(a,{className:"h-3.5 w-3.5"})]})]}),e.jsx("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-5",children:x.map(o=>e.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-4 shadow-sm transition-all hover:-translate-y-0.5 hover:border-blue-300 hover:shadow-md",children:[e.jsx("div",{className:"mb-3 flex h-10 w-10 items-center justify-center rounded-xl bg-blue-50 text-blue-700",children:e.jsx(o.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"text-sm font-black text-slate-950",children:o.goal}),e.jsx("p",{className:"mt-1 font-mono text-[11px] font-bold text-blue-700",children:o.repo}),e.jsx("p",{className:"mt-2 text-xs leading-5 text-slate-600",children:o.desc}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.jsxs("a",{href:o.link,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 rounded-lg bg-slate-950 px-2.5 py-1.5 text-[11px] font-black text-white hover:bg-blue-700",children:["Repo ",e.jsx(l,{className:"h-3 w-3"})]}),e.jsxs(r,{to:o.guide,className:"inline-flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-[11px] font-black text-slate-700 hover:border-blue-300 hover:text-blue-700",children:["Guide ",e.jsx(a,{className:"h-3 w-3"})]})]})]},o.goal))})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4 mb-10",children:[{icon:i,color:"text-blue-500",bg:"bg-blue-50 ",border:"border-blue-200 ",title:"1. Fork",desc:"Click Fork on any repo below to get your own copy. No permissions needed."},{icon:s,color:"text-purple-500",bg:"bg-purple-50 ",border:"border-purple-200 ",title:"2. Build",desc:"Add a feature, fix a bug, improve docs, or try a new RL reward function."},{icon:p,color:"text-emerald-500",bg:"bg-emerald-50 ",border:"border-emerald-200 ",title:"3. Pull Request",desc:"Open a PR. All skill levels welcome: even a README improvement counts!"}].map(o=>e.jsxs("div",{className:`rounded-2xl border-2 ${o.border} ${o.bg} p-5 flex flex-col gap-2`,children:[e.jsx(o.icon,{className:`w-6 h-6 ${o.color}`}),e.jsx("h3",{className:"font-bold text-foreground",children:o.title}),e.jsx("p",{className:"text-sm text-muted-foreground",children:o.desc})]},o.title))}),e.jsxs("div",{className:"mb-10",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[e.jsx("div",{className:"p-2 bg-emerald-50 rounded-xl border border-emerald-200 ",children:e.jsx(c,{className:"w-5 h-5 text-emerald-600 "})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl md:text-2xl font-extrabold text-foreground",children:"Popular Open Source Build Paths"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"These paths connect the repositories below with guides people are already finding in search."})]})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:C.map(o=>e.jsxs("div",{className:"rounded-2xl border border-gray-200 bg-white p-5",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3 mb-2",children:[e.jsx("h3",{className:"font-bold text-foreground leading-snug",children:o.title}),e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-emerald-700 bg-emerald-50 px-2 py-0.5 rounded-full border border-emerald-200 shrink-0",children:o.signal})]}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4",children:o.desc}),e.jsx("div",{className:"flex flex-wrap gap-2",children:o.links.map(t=>"href"in t?e.jsxs("a",{href:t.href,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-gray-200 text-xs font-bold text-gray-700 hover:border-blue-300 hover:text-blue-600 transition-colors",children:[t.label," ",e.jsx(l,{className:"w-3 h-3"})]},t.label):e.jsxs(r,{to:t.to,className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-gray-200 text-xs font-bold text-gray-700 hover:border-blue-300 hover:text-blue-600 transition-colors",children:[t.label," ",e.jsx(a,{className:"w-3 h-3"})]},t.label))})]},o.title))})]}),e.jsxs("div",{className:"mb-10",children:[e.jsx("h2",{className:"text-xl md:text-2xl font-extrabold text-foreground mb-2",children:"The Open Source Robotics Ecosystem"}),e.jsx("p",{className:"text-muted-foreground text-sm mb-6 max-w-3xl leading-relaxed",children:"Open source robotics has never been more accessible. The entire modern robotics stack: from middleware to simulation to learning algorithms: is free and community-maintained. Here are the key tools used across the projects below, each with a deep-dive guide:"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:[{name:"ROS 2",desc:"The standard open-source robotics middleware. Nodes, topics, services, lifecycle management.",link:"/learn/blog/ros2-advanced",tag:"Middleware"},{name:"Gazebo Harmonic",desc:"Open-source robot simulator. Physics, sensors, and full ROS 2 integration.",link:"/learn/blog/gazebo-simulation",tag:"Simulation"},{name:"MuJoCo",desc:"Fast, accurate physics engine for RL training. Now free and open source (Google DeepMind).",link:"/learn/blog/mujoco-robot-learning",tag:"Simulation"},{name:"Isaac Lab",desc:"NVIDIA's GPU-accelerated RL framework. Massive parallel training on top of Isaac Sim.",link:"/learn/blog/isaac-lab-robot-training",tag:"RL Training"},{name:"Stable Baselines 3",desc:"Reliable, well-tested RL implementations: SAC, PPO, TQC and more. Used across all RL repos here.",link:"/learn/blog/reinforcement-learning",tag:"RL Library"},{name:"MoveIt 2",desc:"Open-source motion planning for ROS 2. Used for arm trajectory planning and grasp planning.",link:"/learn/blog/ros2-advanced",tag:"Motion Planning"}].map(o=>
1e.jsxs(r,{to:o.link,className:"group flex flex-col gap-1.5 p-4 rounded-xl border border-gray-200 bg-white hover:border-blue-300 hover:shadow-sm transition-all",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"font-bold text-sm text-foreground group-hover:text-blue-600 transition-colors",children:o.name}),e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-blue-600 bg-blue-50 px-2 py-0.5 rounded-full",children:o.tag})]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:o.desc}),e.jsxs("span",{className:"text-xs text-blue-600 font-semibold flex items-center gap-1 mt-auto group-hover:gap-1.5 transition-all",children:["Read guide ",e.jsx(a,{className:"w-3 h-3"})]})]},o.name))})]}),e.jsxs("div",{className:"mb-10 rounded-2xl border border-amber-200 bg-amber-50/60 p-5 md:p-6",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx(m,{className:"w-5 h-5 text-amber-700 "}),e.jsx("h2",{className:"text-lg md:text-xl font-extrabold text-amber-950 ",children:"Build Guides Connected to These Repos"})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:P.map(o=>e.jsxs(r,{to:o.link,className:"group rounded-xl border border-amber-200 bg-white p-4 hover:border-amber-400 transition-colors",children:[e.jsx("h3",{className:"text-sm font-bold text-foreground group-hover:text-amber-700 transition-colors",children:o.title}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed mt-1 mb-3",children:o.desc}),e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs font-bold text-amber-700 ",children:["Open blog ",e.jsx(a,{className:"w-3 h-3"})]})]},o.title))})]}),e.jsxs("h2",{className:"text-xl md:text-2xl font-extrabold text-foreground mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"p-2 bg-gradient-to-br from-blue-500/10 to-purple-500/10 rounded-xl border border-blue-200/50 ",children:e.jsx(s,{className:"w-5 h-5 text-blue-600 "})}),"Our Open Source Repositories"]}),e.jsxs("div",{className:"mb-5 flex flex-wrap items-center gap-2 rounded-2xl border border-slate-200 bg-white p-3 shadow-sm",children:[e.jsxs("div",{className:"mr-1 flex items-center gap-2 px-1 text-xs font-black uppercase tracking-widest text-slate-500",children:[e.jsx(w,{className:"h-4 w-4 text-blue-600"}),"Filter"]}),g.map(o=>e.jsx("button",{type:"button",onClick:()=>u(o),className:`rounded-full border px-3 py-1.5 text-xs font-black transition-colors ${n===o?"border-blue-600 bg-blue-600 text-white":"border-slate-200 bg-white text-slate-600 hover:border-blue-300 hover:bg-blue-50 hover:text-blue-700"}`,children:o},o)),e.jsxs("span",{className:"ml-auto text-xs font-bold text-slate-400",children:[d.length," repos"]})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-5 mb-12",children:d.map(o=>e.jsxs("div",{className:`group relative rounded-2xl border-2 transition-all duration-300 p-5 flex flex-col gap-3 bg-white 2 ${o.highlight?"border-blue-300 hover:border-blue-400 shadow-sm hover:shadow-blue-100 ":"border-gray-200 hover:border-slate-300 "}`,children:[o.highlight&&e.jsx("div",{className:"absolute top-4 right-4 text-[10px] font-extrabold uppercase tracking-widest bg-blue-100 text-blue-700 px-2 py-0.5 rounded-full border border-blue-200 ",children:"Featured"}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("a",{href:o.url,target:"_blank",rel:"noopener noreferrer",className:"font-mono font-bold text-blue-600 text-sm hover:underline break-all leading-snug",children:["darshmenon/",o.name]})]}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:o.description}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:`rounded-full border px-2 py-0.5 text-[11px] font-black ${o.difficulty==="Beginner"?"border-emerald-200 bg-emerald-50 text-emerald-700":o.difficulty==="Intermediate"?"border-blue-200 bg-blue-50 text-blue-700":o.difficulty==="Advanced"?"border-amber-200 bg-amber-50 text-amber-700":"border-purple-200 bg-purple-50 text-purple-700"}`,children:o.difficulty}),e.jsx("span",{className:"text-[11px] font-semibold text-slate-400",children:"best first move: docs, launch, or benchmark PR"})]}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:o.tags.map(t=>e.jsx("span",{className:`text-[11px] font-semibold px-2 py-0.5 rounded-full ${O[t]??A}`,children:t},t))}),e.jsxs("div",{className:"rounded-xl border border-slate-100 bg-slate-50 p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-1.5 text-[10px] font-black uppercase tracking-widest text-slate-500",children:[e.jsx(p,{className:"h-3.5 w-3.5 text-emerald-600"}),"Good first contributions"]}),e.jsx("div",{className:"grid gap-1.5 sm:grid-cols-3",children:o.goodFirst.map(t=>e.jsx("span",{className:"rounded-lg bg-white px-2 py-1 text-[11px] font-semibold leading-snug text-slate-600 ring-1 ring-slate-200",children:t},t))})]}),o.highlight&&e.jsxs("div",{className:"rounded-xl border border-slate-800 bg-slate-950 p-3 font-mono text-[11px] leading-5 text-slate-100",children:[e.jsxs("div",{className:"mb-1 flex items-center gap-1.5 text-slate-400",children:[e.jsx(R,{className:"h-3.5 w-3.5"}),"clone preview"]}),e.jsxs("div",{children:["git clone ",o.url]}
2),e.jsxs("div",{children:["cd ",o.name]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 pt-1 mt-auto",children:[e.jsxs("a",{href:o.fork,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-3 py-1.5 bg-emerald-600 hover:bg-emerald-700 text-white rounded-lg text-xs font-bold transition-colors",children:[e.jsx(i,{className:"w-3.5 h-3.5"})," Fork"]}),e.jsxs("a",{href:o.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-3 py-1.5 border border-gray-300 text-gray-700 rounded-lg text-xs font-bold hover:bg-gray-50 transition-colors",children:[e.jsx(l,{className:"w-3.5 h-3.5"})," View Code"]}),o.blogLink&&e.jsxs(r,{to:o.blogLink,className:"inline-flex items-center gap-1 text-xs text-blue-600 hover:underline font-semibold ml-auto",children:[e.jsx(m,{className:"w-3.5 h-3.5"})," ",o.blogLabel," ",e.jsx(a,{className:"w-3 h-3"})]})]})]},o.name))}),e.jsxs("div",{className:"rounded-3xl bg-gradient-to-br from-emerald-50 via-teal-50 to-cyan-50 border-2 border-emerald-200 p-8 text-center",children:[e.jsx(b,{className:"w-8 h-8 text-emerald-600 mx-auto mb-3"}),e.jsx("h2",{className:"text-xl md:text-2xl font-extrabold text-emerald-900 mb-2",children:"Join the Community"}),e.jsx("p",{className:"text-emerald-700 text-sm md:text-base max-w-xl mx-auto mb-6",children:"Have an idea for a new robotics project? Want to port one of these to a new robot platform? Open an issue, start a discussion, or just fork and experiment: this is how open robotics grows."}),e.jsxs("div",{className:"flex flex-wrap gap-3 justify-center",children:[e.jsxs("a",{href:"https://github.com/darshmenon",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-5 py-2.5 bg-emerald-600 hover:bg-emerald-700 text-white rounded-xl font-bold text-sm transition-colors shadow",children:[e.jsx(l,{className:"w-4 h-4"})," Follow on GitHub"]}),e.jsxs(r,{to:"/community",className:"inline-flex items-center gap-2 px-5 py-2.5 border-2 border-emerald-400 text-emerald-700 rounded-xl font-bold text-sm hover:bg-emerald-50 transition-colors",children:[e.jsx(b,{className:"w-4 h-4"})," RoboCloud Community"]})]})]})]})]})};export{ne as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.