Spaces:
Running
Running
Download data.js from cetiennec/robot-setup-advisor: direct link, hf CLI and curl.
- Browser
- Download file 29.6 kB
-
https://huggingface.co/spaces/cetiennec/robot-setup-advisor/resolve/main/data.js
- Command line
-
hf download hf://spaces/cetiennec/robot-setup-advisor/data.js
-
curl -L -o data.js https://huggingface.co/spaces/cetiennec/robot-setup-advisor/resolve/main/data.js
29.6 kB
| // Catalogs used by app.js, checked October 2026. Figures are indicative. | |
| // payload: rated kg per arm (at full reach where the vendor gives both), reach: m, mass: kg per unit, | |
| // power: typical W in operation; pe:true marks an estimate (vendor publishes none), otherwise datasheet or reseller. | |
| // price: USD, list or reported street price; pn: price note. | |
| const D = 'https://huggingface.co/docs/lerobot/'; | |
| const HF = 'https://huggingface.co/datasets/'; | |
| const ex = (t, d, u) => ({t, d, u}); | |
| const ROBOTS = [ | |
| // Vendor catalog expansion. Specs checked 2026-10-23 against the linked sources. | |
| // null price means a quote is required; never count it as a free robot. | |
| // SDK/ROS access alone does not establish LeRobot compatibility. | |
| {id:'gofa5', name:'GoFa 5', maker:'ABB', kind:'arm', dof:6, payload:5, reach:0.95, mass:28, power:250, pe:true, price:null, | |
| lerobot:null, doc:'https://new.abb.com/docs/librariesprovider89/abb-ro-sp/9370_gofa-10-12_d%C3%ADptico_digital.pdf', | |
| why:'Compact industrial cobot with joint torque sensing. Reach uses the conservative 950 mm wrist rating (1,050 mm at the flange).', | |
| integration:'Use the ABB controller interfaces and validate a LeRobot adapter for your controller and software options.', examples:[]}, | |
| {id:'gofa10', name:'GoFa 10', maker:'ABB', kind:'arm', dof:6, payload:10, reach:1.52, mass:51, power:350, pe:true, price:null, | |
| lerobot:null, doc:'https://new.abb.com/docs/librariesprovider89/abb-ro-sp/9370_gofa-10-12_d%C3%ADptico_digital.pdf', | |
| why:'Longer-reach cobot for machine tending and material handling. Reach is rated at the wrist; flange reach is 1.62 m.', | |
| integration:'Use the ABB controller interfaces and validate a LeRobot adapter for your controller and software options.', examples:[]}, | |
| {id:'gofa12', name:'GoFa 12', maker:'ABB', kind:'arm', dof:6, payload:12, reach:1.27, mass:48, power:350, pe:true, price:null, | |
| lerobot:null, doc:'https://new.abb.com/docs/librariesprovider89/abb-ro-sp/9370_gofa-10-12_d%C3%ADptico_digital.pdf', | |
| why:'Higher-payload GoFa for handling heavier parts. Reach is rated at the wrist; flange reach is 1.37 m.', | |
| integration:'Use the ABB controller interfaces and validate a LeRobot adapter for your controller and software options.', examples:[]}, | |
| {id:'m0609', name:'M0609', maker:'Doosan Robotics', kind:'arm', dof:6, payload:6, reach:0.9, mass:27.5, power:370, pe:true, price:null, | |
| lerobot:null, doc:'https://www.doosanrobotics.com/en/product-solutions/product/m-series/m0609/', | |
| why:'Six-axis torque-sensing cobot for compact assembly and machine-tending cells.', | |
| integration:'Doosan provides ROS 2 drivers. A LeRobot adapter and controller compatibility check are still required.', | |
| examples:[ex('Doosan ROS 2','manufacturer-maintained driver; not a LeRobot plugin','https://github.com/DoosanRobotics/doosan-robot2')]}, | |
| {id:'m1013', name:'M1013', maker:'Doosan Robotics', kind:'arm', dof:6, payload:10, reach:1.3, mass:34, power:390, pe:true, price:null, | |
| lerobot:null, doc:'https://www.doosanrobotics.com/pdf/catalog/External_DoosanRobotics_renew_eng.pdf', | |
| why:'A longer-reach M-series cobot for larger work areas and 10 kg handling tasks.', | |
| integration:'Doosan provides ROS 2 drivers. A LeRobot adapter and controller compatibility check are still required.', | |
| examples:[ex('Doosan ROS 2','manufacturer-maintained driver; not a LeRobot plugin','https://github.com/DoosanRobotics/doosan-robot2')]}, | |
| {id:'cr5', name:'CR5', maker:'DOBOT', kind:'arm', dof:6, payload:5, reach:0.9, mass:25, power:150, price:null, | |
| lerobot:null, doc:'https://www.dobot.cn/products/cr-series/cr5.html', | |
| why:'Six-axis cobot for assembly, sorting and machine tending, with TCP/IP and Modbus interfaces.', | |
| integration:'Connect through the vendor controller API, then implement and validate a LeRobot Robot adapter.', examples:[]}, | |
| {id:'tm5900', name:'TM5-900', maker:'Techman / OMRON', kind:'arm', dof:6, payload:4, reach:0.9, mass:22.6, power:220, price:null, | |
| lerobot:null, doc:'https://www.fa.omron.com.cn/data_pdf/mnu/i623-e-02_tm5.pdf', | |
| why:'Vision-equipped cobot for inspection and tabletop handling, programmed through TMflow.', | |
| integration:'Check the external-control interface for your TM controller; a validated LeRobot adapter is required.', examples:[]}, | |
| {id:'mycobot280', name:'myCobot 280 M5', maker:'Elephant Robotics', kind:'arm', dof:6, payload:0.25, reach:0.28, mass:0.85, power:20, pe:true, price:null, | |
| lerobot:null, doc:'https://docs.elephantrobotics.com/docs/mycobot_280_m5_en/1-ProductInformation/1.ProductIntroduction/1-ProductIntroduction.html', | |
| why:'Small desktop arm for education and lightweight manipulation; check the hardware revision when ordering.', | |
| integration:'Use the vendor Python/ROS tooling as the starting point for a LeRobot adapter; native support is not verified.', examples:[]}, | |
| // ---- low-cost / open arms | |
| {id:'so101', name:'SO-101', maker:'The Robot Studio', kind:'arm', dof:6, payload:0.3, reach:0.42, mass:0.8, power:10, pe:true, price:130, open:true, | |
| lerobot:'native', type:'so101_follower', teleop:'so101_leader', doc:D+'so101', pn:'per arm in a kit; add about $110 for the leader arm used to teleoperate', | |
| why:'The reference LeRobot arm: the most community data, tutorials and pretrained checkpoints.', | |
| examples:[ex('SmolVLA SO-101 pick and place','50 episodes of cube pick-and-place used in the SmolVLA paper',HF+'lerobot/svla_so101_pickplace'), | |
| ex('SmolVLA base model','VLA pretrained on community SO-100/101 data','https://huggingface.co/lerobot/smolvla_base'), | |
| ex('Community pick and place','103 episodes recorded by a community member',HF+'kmg0620/so101_bomb_pick_place_v1')]}, | |
| {id:'omx', name:'OpenMANIPULATOR-X', maker:'ROBOTIS', kind:'arm', dof:5, payload:0.5, reach:0.38, mass:0.7, power:20, pe:true, price:1700, open:true, | |
| lerobot:'community', doc:'https://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/', why:'Dynamixel-based education arm with ROS 2 support.', | |
| examples:[ex('Pick and place, 1,114 episodes','large single-task dataset',HF+'Hadolking/openmanipulator-pickplace-dataset-1114ep'), | |
| ex('Top-and-side view dataset','1,800 episodes with two cameras',HF+'yechan3219/openmanipulator_x_18k_episode_topsideview')]}, | |
| {id:'lite6', name:'Lite 6', maker:'UFACTORY', kind:'arm', dof:6, payload:0.6, reach:0.44, mass:8, power:150, price:2999, | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Cheapest industrial-style arm from UFACTORY, same SDK as xArm.', | |
| examples:[ex('Cube in box, vacuum gripper','50 episodes',HF+'ReubenLim/xarm_lite6_vacuum_cube_in_box'), | |
| ex('Cube in box, parallel gripper','50 episodes',HF+'ReubenLim/xarm_lite6_gripper_cube_in_box')]}, | |
| {id:'piper', name:'PiPER', maker:'AgileX', kind:'arm', dof:6, payload:1.5, reach:0.626, mass:4.2, power:40, price:2499, | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Light 6-axis arm at hobby price with a real 1.5 kg payload.', | |
| examples:[ex('Bimanual fruit pick and place','2,301 episodes on two PiPER arms',HF+'Autobrik/bi_piper_pick_and_place_fruits_mantra'), | |
| ex('Single-arm pick and place','55 episodes',HF+'Benxiaogu/piper_pick_place_sprite_bbox'), | |
| ex('PiPER SDK','official Python SDK','https://github.com/agilexrobotics/piper_sdk')]}, | |
| {id:'yam', name:'YAM', maker:'I2RT', kind:'arm', dof:6, payload:2, reach:0.75, mass:5, power:60, pe:true, price:2999, | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Low-cost research arm with quasi-direct-drive joints, popular for bimanual data collection.', | |
| examples:[ex('Public YAM runs','602 bimanual episodes',HF+'andlyu/Public-YAM-runs'), | |
| ex('Bimanual cube task','teleoperated with leader arms',HF+'mliu48/telearms-yam-cube-v4'), | |
| ex('I2RT SDK','drivers and teleoperation','https://github.com/i2rt-robotics/i2rt')]}, | |
| {id:'widowxai', name:'WidowX AI', maker:'Trossen Robotics', kind:'arm', dof:6, payload:1.5, reach:0.769, mass:4, power:80, pe:true, price:5935, | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Trossen’s current research arm, successor of the WidowX and ViperX used in BridgeData and ALOHA.', | |
| examples:[ex('Orange block transfer','20 bimanual episodes from the Trossen community',HF+'TrossenRoboticsCommunity/widowx_ai_orange_block_transfer'), | |
| ex('Organize the table','50 tabletop episodes',HF+'jv-costa/widowxai-organize-the-table-cube002-v21')]}, | |
| {id:'widowx', disc:true, name:'WidowX 250 S', maker:'Trossen Robotics', kind:'arm', dof:6, payload:0.25, reach:0.65, mass:2.5, power:30, pe:true, price:3550, pn:'discontinued, last store price', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'The arm behind BridgeData; many open policies were trained on it. Discontinued.', | |
| examples:[ex('BridgeData V2','53,192 kitchen-style episodes',HF+'IPEC-COMMUNITY/bridge_orig_lerobot'), | |
| ex('BridgeData project page','dataset and paper','https://rail-berkeley.github.io/bridgedata/')]}, | |
| {id:'viperx', disc:true, name:'ViperX 300 S', maker:'Trossen Robotics', kind:'arm', dof:6, payload:0.75, reach:0.75, mass:3.6, power:40, pe:true, price:6100, pn:'discontinued, last store price', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'The follower arm of the original ALOHA bimanual kit. Discontinued.', | |
| examples:[ex('ALOHA static coffee','50 bimanual episodes of coffee making',HF+'lerobot/aloha_static_coffee'), | |
| ex('Mobile ALOHA shrimp','bimanual cooking on a mobile base',HF+'lerobot/aloha_mobile_shrimp'), | |
| ex('ALOHA and ACT','the paper that introduced ACT','https://tonyzhaozh.github.io/aloha/')]}, | |
| {id:'xarm6', name:'xArm 6', maker:'UFACTORY', kind:'arm', dof:6, payload:5, reach:0.7, mass:12.5, power:200, price:8399, | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Affordable 5 kg arm, used in many research datasets.', | |
| examples:[ex('Pick the cola','498 episodes',HF+'MINT-SJTU/xarm6-pick-cola'), | |
| ex('xArm Python SDK','official SDK','https://github.com/xArm-Developer/xArm-Python-SDK')]}, | |
| {id:'xarm7', name:'xArm 7', maker:'UFACTORY', kind:'arm', dof:7, payload:3.5, reach:0.7, mass:14.3, power:200, price:9999, | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'7-axis version of xArm for redundant, human-like motions.', | |
| examples:[ex('Pick the orange ball','56 episodes',HF+'zwonzis/xarm7-pick-orange-ball'), | |
| ex('UTokyo xArm pick and place','102 episodes from Open X-Embodiment',HF+'lerobot/utokyo_xarm_pick_and_place'), | |
| ex('UTokyo xArm bimanual','70 episodes from Open X-Embodiment',HF+'lerobot/utokyo_xarm_bimanual')]}, | |
| {id:'xarm850', name:'850', maker:'UFACTORY', kind:'arm', dof:6, payload:5, reach:0.85, mass:20, power:240, price:9498, pn:'$8,999 + $499 control box', | |
| lerobot:'plugin', doc:'https://www.ufactory.cc/ufactory-850/', why:'Longer-reach UFACTORY arm with 0.02 mm repeatability, same SDK as xArm.', examples:[]}, | |
| {id:'z1', name:'Z1 Air', maker:'Unitree', kind:'arm', dof:6, payload:2, reach:0.74, mass:4.3, power:60, pe:true, price:13000, pn:'no list price, reported $13k–21k', | |
| lerobot:'community', doc:'https://www.unitree.com/z1', why:'Light arm designed to sit on quadruped robots.', | |
| examples:[ex('Z1 stack boxes','1,265 single-arm episodes',HF+'unitreerobotics/Z1_StackBox_Dataset'), | |
| ex('Two Z1 fold clothes','83 bimanual episodes',HF+'unitreerobotics/Z1_Dual_Dex1_FoldClothes_Dataset'), | |
| ex('Two Z1 pour coffee','331 bimanual episodes',HF+'unitreerobotics/Z1_Dual_Dex1_PourCoffee_Dataset')]}, | |
| {id:'gen3lite', name:'Gen3 lite', maker:'Kinova', kind:'arm', dof:6, payload:0.5, reach:0.76, mass:5.4, power:20, price:13500, | |
| lerobot:'community', doc:'https://www.kinovarobotics.com/product/gen3-lite-robots', why:'Light, quiet arm for education and assistive research.', | |
| examples:[ex('ROS 2 driver','official driver with the Gen3 lite MoveIt configuration','https://github.com/Kinovarobotics/ros2_kortex')]}, | |
| {id:'gen3', name:'Gen3', maker:'Kinova', kind:'arm', dof:7, payload:2, reach:0.902, mass:8.2, power:36, price:36000, pn:'on quote, reported $30k–45k; 4 kg payload at mid-range', | |
| lerobot:'community', doc:'https://www.kinovarobotics.com/product/gen3-robots', why:'7-axis ultralight research arm with torque sensing in every joint.', | |
| examples:[ex('Clutter pick and place','500 episodes for VLA training',HF+'FilippoGorini/vla_kinova_gen3_clutter_pick_place'), | |
| ex('Cube stacking in simulation','360 episodes by PickNik',HF+'PickNikRobotics/kinova_gen3_cube_stack_sim'), | |
| ex('Isaac Lab sim-to-real','reinforcement learning deployed with ROS 2','https://github.com/louislelay/kinova_isaaclab_sim2real')]}, | |
| {id:'fr3', name:'FR3', maker:'Franka Robotics', kind:'arm', dof:7, payload:3, reach:0.855, mass:18.3, power:80, price:29000, pn:'reported $25k–35k', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'The research workhorse: torque control and the largest open datasets.', | |
| examples:[ex('DROID','95,658 in-the-wild episodes on Franka Panda',HF+'lerobot/droid_1.0.1'), | |
| ex('TACO-Play','3,603 episodes of Franka play data',HF+'lerobot/taco_play'), | |
| ex('WorldArena 2.0','world-model benchmark recorded on FR3',HF+'WorldArena/WorldArena2.0_Franka_FR3')]}, | |
| // ---- industrial cobots | |
| {id:'ur3e', name:'UR3e', maker:'Universal Robots', kind:'arm', dof:6, payload:3, reach:0.5, mass:11.2, power:100, price:28000, pn:'reported $23k–38k', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Smallest UR cobot, for benchtop assembly.', | |
| examples:[ex('Dual UR3e doll pick','50 episodes',HF+'cometkim97/ur3e_pick_doll')]}, | |
| {id:'ur5e', name:'UR5e', maker:'Universal Robots', kind:'arm', dof:6, payload:5, reach:0.85, mass:20.7, power:200, price:38000, pn:'reported $30k–48k', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'The most common cobot in factories and labs.', | |
| examples:[ex('UMI','in-the-wild gripper demonstrations deployed on a UR5e','https://umi-gripper.github.io/'), | |
| ex('Berkeley Autolab UR5','1,000 episodes from Open X-Embodiment (UR5 CB-series)',HF+'lerobot/berkeley_autolab_ur5'), | |
| ex('Dual UR5e hold','59 bimanual episodes',HF+'takeru01/dual_ur5e_hold')]}, | |
| {id:'ur10e', name:'UR10e', maker:'Universal Robots', kind:'arm', dof:6, payload:12.5, reach:1.3, mass:33.3, power:350, price:50000, pn:'reported $45k–60k', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Long-reach cobot for machine tending and palletizing.', | |
| examples:[ex('UR10e cup task','81 episodes',HF+'khanhnd61/ur10e-cup')]}, | |
| {id:'ur16e', name:'UR16e', maker:'Universal Robots', kind:'arm', dof:6, payload:16, reach:0.9, mass:33.1, power:350, price:55000, pn:'reported $50k–65k', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Heavy payload in a compact footprint.', | |
| examples:[ex('BWIndustrie deburring','first UR16e install, deburring 4–14 kg parts','https://industryeurope.com/sectors/technology-innovation/bwindustrie-installs-world%E2%80%99s-first-ur16e-to-optimise-throughput/')]}, | |
| {id:'ur20', name:'UR20', maker:'Universal Robots', kind:'arm', dof:6, payload:20, reach:1.75, mass:64, power:300, price:70000, pn:'reported $63k–85k', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Palletizing and heavy handling cobot.', | |
| examples:[ex('Ornua palletizing','dairy palletizing cell','https://www.universal-robots.com/case-stories/ornua/'), | |
| ex('Bob’s Red Mill','cobot palletizer for bags and cases','https://columbiaokura.com/thought-leadership/minipal-bobs-red-mill/'), | |
| ex('Vention palletizing cells','7 cells, throughput up 49% on 20 kg cases','https://www.universal-robots.com/media/1830645/ur-coe-support-mini-case-study-vention-01-03-2024-web.pdf')]}, | |
| {id:'ur30', name:'UR30', maker:'Universal Robots', kind:'arm', dof:6, payload:30, reach:1.3, mass:63.5, power:300, price:80000, pn:'no reliable figure, estimate', | |
| lerobot:'plugin', doc:D+'third_party_robots', why:'Heaviest UR, for screwdriving and heavy parts.', | |
| examples:[ex('Bimanual UR30 teleoperation','real teleoperation recordings on two UR30',HF+'zbzzbz/TELT_DATA_BIMANUAL_UR30')]}, | |
| {id:'crx5', name:'CRX-5iA', maker:'FANUC', kind:'arm', dof:6, payload:5, reach:0.994, mass:25, power:300, price:39000, pn:'reported $35k–43k', | |
| lerobot:null, doc:'https://www.fanucamerica.com/products/robots/series/collaborative-robot', why:'FANUC reliability in a light cobot.', examples:[]}, | |
| {id:'crx10', name:'CRX-10iA', maker:'FANUC', kind:'arm', dof:6, payload:10, reach:1.249, mass:40, power:300, price:45000, pn:'reported $40k–51k', | |
| lerobot:null, doc:'https://www.fanucamerica.com/products/robots/series/collaborative-robot', why:'Popular industrial cobot with tablet programming.', | |
| examples:[ex('Assembly case study','academic study of a CRX-10iA/L assembly cell','https://doi.org/10.3390/eng5020029')]}, | |
| {id:'crx20', name:'CRX-20iA/L', maker:'FANUC', kind:'arm', dof:6, payload:20, reach:1.418, mass:41, power:350, pe:true, price:58000, | |
| lerobot:null, doc:'https://www.fanucamerica.com/products/robots/series/collaborative-robot', why:'Long reach and 20 kg for packing lines.', examples:[]}, | |
| {id:'crx30', name:'CRX-30iA', maker:'FANUC', kind:'arm', dof:6, payload:30, reach:1.756, mass:135, power:400, price:60000, pn:'reported $55k–65k', | |
| lerobot:null, doc:'https://www.fanucamerica.com/products/robots/series/collaborative-robot', why:'Palletizing cobot for heavy cases.', | |
| examples:[ex('Palletizing with an AMR','CRX-30iA on an OTTO mobile robot, MODEX 2026 demo','https://www.robotics247.com/article/modex-2026-fanuc-america-showcases-robotics-and-amrs-for-warehousing-and-logistics')]}, | |
| {id:'lrmate', name:'LR Mate 200iD', maker:'FANUC', kind:'arm', dof:6, payload:7, reach:0.717, mass:25, power:500, pe:true, price:30000, pn:'reported $17.5k–45k new', | |
| lerobot:null, doc:'https://www.fanucamerica.com/products/robot/lr-mate-200id', why:'Fast industrial mini-robot (needs guarding, not a cobot).', | |
| examples:[ex('Berkeley FANUC manipulation','415 tabletop episodes from Open X-Embodiment',HF+'lerobot/berkeley_fanuc_manipulation')]}, | |
| {id:'iiwa7', name:'LBR iiwa 7 R800', maker:'KUKA', kind:'arm', dof:7, payload:7, reach:0.8, mass:23.9, power:250, pe:true, price:70000, pn:'reported $50k–100k', | |
| lerobot:null, doc:'https://www.kuka.com/en-de/products/robot-systems/industrial-robots/lbr-iiwa', why:'Sensitive 7-axis cobot with torque sensors.', | |
| examples:[ex('QT-Opt grasping','209,880 grasping episodes on iiwa arms',HF+'IPEC-COMMUNITY/kuka_lerobot'), | |
| ex('Stanford KUKA multimodal','3,000 episodes of contact-rich peg insertion',HF+'lerobot/stanford_kuka_multimodal_dataset')]}, | |
| {id:'iiwa14', name:'LBR iiwa 14 R820', maker:'KUKA', kind:'arm', dof:7, payload:14, reach:0.82, mass:29.9, power:300, pe:true, price:70000, pn:'reported $65k–70k', | |
| lerobot:null, doc:'https://www.kuka.com/en-de/products/robot-systems/industrial-robots/lbr-iiwa', why:'Heavier iiwa for force-controlled assembly.', | |
| examples:[ex('Stanford KUKA multimodal','3,000 episodes of contact-rich peg insertion',HF+'lerobot/stanford_kuka_multimodal_dataset')]}, | |
| // ---- bimanual systems (payload and reach per arm) | |
| {id:'bi_so101', model:'so101', name:'Bimanual SO-101', maker:'The Robot Studio', kind:'bimanual', dof:12, payload:0.3, reach:0.42, mass:1.6, power:20, pe:true, price:500, open:true, | |
| lerobot:'native', type:'bi_so_follower', teleop:'bi_so_leader', doc:D+'so101', pn:'two leader-follower pairs', | |
| why:'The cheapest way to learn two-arm tasks such as folding or handovers.', examples:[]}, | |
| {id:'openarm', name:'OpenArm', maker:'Enactic', kind:'bimanual', dof:14, payload:4.1, reach:0.62, mass:11, power:150, pe:true, price:6500, open:true, pn:'from $6,500 through certified builders', | |
| lerobot:'native', type:'bi_openarm_follower', teleop:'bi_openarm_leader', doc:D+'openarm', why:'Research-grade, human-scale open arms at a fraction of industrial prices.', | |
| examples:[ex('Bimanual teleoperation','289 real episodes',HF+'nkmurst/openarm_teleop_udp_d435_merged_20260725_lerobot'), | |
| ex('Cube pick in simulation','official MuJoCo dataset from Enactic',HF+'enactic/openarm-2-cell-pick_up_cube_mujoco-lerobot'), | |
| ex('OpenArm','open hardware and software','https://github.com/enactic/openarm')]}, | |
| // ---- mobile | |
| {id:'lekiwi', model:'so101', onboard:{name:'Raspberry Pi 5 on LeKiwi', vram:0}, name:'LeKiwi', maker:'SIGRobotics / LeRobot', kind:'mobile', dof:9, payload:0.3, reach:0.42, mass:3, power:20, pe:true, price:490, open:true, pn:'parts, including the SO-101 leader and follower', | |
| lerobot:'native', type:'lekiwi_client', teleop:'so101_leader', doc:D+'lekiwi', why:'Open-source SO-101 on an omnidirectional base, driven by a Raspberry Pi 5.', | |
| examples:[ex('Sort cubes while moving','37 episodes',HF+'oumeanin/lekiwi-study-sort-cubes'), | |
| ex('Ball task','100 episodes',HF+'70mmy/lekiwi_ball_10'), | |
| ex('SmolVLA on LeKiwi','fine-tuned pick-and-place policy','https://huggingface.co/Sounness/smolvla_lekiwi_pick_and_place_v2')]}, | |
| {id:'reachy2', onboard:{name:'Reachy 2 onboard computer', vram:0}, name:'Reachy 2', maker:'Pollen Robotics', kind:'mobile', dof:22, payload:3, reach:0.7, mass:50, power:95, pe:true, price:70000, pn:'reported', | |
| lerobot:'native', type:'reachy2', teleop:'reachy2_teleoperator', doc:D+'reachy2', why:'Bimanual humanoid upper body on a mobile base, built by Hugging Face’s Pollen team.', | |
| examples:[ex('Kitchen manipulation','219 episodes',HF+'CompeteSAI/reachy2-kitchen-multimodal'), | |
| ex('Active vision with the head','800 episodes',HF+'Voxel51/tavis-head-reachy2-800ep')]}, | |
| // ---- humanoids | |
| {id:'hopejr', name:'HopeJR', maker:'The Robot Studio', kind:'humanoid', dof:20, payload:1, reach:0.6, mass:10, power:150, pe:true, price:3000, open:true, pn:'Hugging Face estimate', | |
| lerobot:'native', type:'hope_jr_arm', teleop:'homunculus_arm', doc:D+'hope_jr', why:'Open-source dexterous arm and hand, teleoperated with an exoskeleton and glove.', | |
| examples:[ex('HOPEJr','open hardware: arm, hand and exoskeleton','https://github.com/TheRobotStudio/HOPEJr')]}, | |
| {id:'g1', onboard:{name:'Jetson Orin NX inside the G1 EDU', vram:16}, name:'G1 EDU', maker:'Unitree', kind:'humanoid', dof:23, payload:2, reach:0.45, mass:35, power:210, pe:true, price:43500, pn:'base G1 from $13.5k; the EDU version for development is on quote, reported from about $43.5k', | |
| lerobot:'native', type:'unitree_g1', teleop:'<your_teleop>', doc:D+'unitree_g1', why:'Full humanoid supported in LeRobot, with an onboard Jetson and MuJoCo simulation.', | |
| examples:[ex('Toasted bread','418 bimanual dexterous episodes',HF+'unitreerobotics/G1_Dex3_ToastedBread_Dataset'), | |
| ex('Stack blocks','690 episodes',HF+'unitreerobotics/G1_Dex1_Stack_Block'), | |
| ex('Humanoid Everyday','4,064 episodes of everyday tasks',HF+'USC-PSI-Lab/Humanoid-Everyday-G1')]}, | |
| // ---- interaction | |
| {id:'reachymini', name:'Reachy Mini', maker:'Pollen Robotics', kind:'interaction', dof:9, payload:0, reach:0, mass:1.35, power:7, pe:true, price:299, open:true, pn:'Lite; $449 for the wireless version', | |
| lerobot:null, doc:'https://huggingface.co/reachy-mini', why:'Small open-source expressive robot for interaction, demos and education, programmable in Python with apps shared on Spaces.', | |
| examples:[ex('Conversation app','talk to the robot with an LLM','https://huggingface.co/spaces/pollen-robotics/reachy_mini_conversation_app'), | |
| ex('Emotions library','recorded expressive motions',HF+'pollen-robotics/reachy-mini-emotions-library'), | |
| ex('Reachy Mini SDK','Python SDK','https://github.com/pollen-robotics/reachy_mini')]}, | |
| ]; | |
| // Training compute. speed: throughput relative to one A100 on LeRobot training. | |
| // w: board power under training load. price: street price Oct 2026; host: the PC or server a card needs, hostW its extra draw. | |
| const GPUS = [ | |
| {id:'mmax', name:'Apple M-series Max laptop', vram:36, w:60, price:3500, host:0, hostW:20, speed:0.08, loc:'local', note:'unified memory, MPS backend'}, | |
| {id:'rtx4060', name:'RTX 4060', vram:8, w:115, price:360, host:1000, hostW:80, speed:0.3, loc:'local'}, | |
| {id:'rtx4070tis', name:'RTX 4070 Ti Super', vram:16, w:285, price:950, host:1000, hostW:100, speed:0.55, loc:'local'}, | |
| {id:'rtx4090', name:'RTX 4090', vram:24, w:450, price:2800, host:1200, hostW:120, speed:1.0, loc:'local'}, | |
| {id:'rtx5090', name:'RTX 5090', vram:32, w:575, price:6000, host:1200, hostW:120, speed:1.3, loc:'local'}, | |
| {id:'rtxpro6000', name:'RTX PRO 6000 Blackwell', vram:96, w:600, price:12000, host:2500, hostW:150, speed:1.5, loc:'local'}, | |
| {id:'a100', name:'A100 80 GB server', vram:80, w:400, price:9000, host:6000, hostW:200, speed:1.0, loc:'local'}, | |
| {id:'h100', name:'H100 80 GB server', vram:80, w:700, price:25000, host:6000, hostW:250, speed:2.0, loc:'local'}, | |
| {id:'l4x1', name:'HF Jobs · L4', job:'l4x1', vram:24, w:72, hourly:0.80, speed:0.35, loc:'cloud', hostW:60}, | |
| {id:'a10g-small', name:'HF Jobs · A10G small', job:'a10g-small', vram:24, w:150, hourly:1.00, speed:0.4, loc:'cloud', hostW:60}, | |
| {id:'a10g-large', name:'HF Jobs · A10G large', job:'a10g-large', vram:24, w:150, hourly:1.50, speed:0.45, loc:'cloud', hostW:100}, | |
| {id:'l40sx1', name:'HF Jobs · L40S', job:'l40sx1', vram:48, w:350, hourly:1.80, speed:0.9, loc:'cloud', hostW:80}, | |
| {id:'a100-large', name:'HF Jobs · A100 80 GB', job:'a100-large', vram:80, w:400, hourly:2.50, speed:1.0, loc:'cloud', hostW:120}, | |
| {id:'rtx-pro-6000', name:'HF Jobs · RTX PRO 6000', job:'rtx-pro-6000', vram:96, w:600, hourly:2.75, speed:1.5, loc:'cloud', hostW:150}, | |
| {id:'h200', name:'HF Jobs · H200', job:'h200', vram:141, w:700, hourly:5.00, speed:2.2, loc:'cloud', hostW:200}, | |
| ]; | |
| // Computers that run the policy next to (or on) the robot. vram: memory usable by the policy; w: typical draw. | |
| // Jetson prices after NVIDIA's July 2026 increase. | |
| const BOARDS = [ | |
| {id:'laptop', name:'Laptop, no GPU', vram:0, w:30, price:1000, place:'tethered'}, | |
| {id:'laptop4060', name:'Laptop with RTX 4060', vram:8, w:90, price:1500, place:'tethered'}, | |
| {id:'desk4090', name:'Desktop with RTX 4090', vram:24, w:350, price:4000, place:'tethered'}, | |
| {id:'pi5', name:'Raspberry Pi 5 (8 GB)', vram:0, w:8, price:175, place:'embedded', note:'drives motors and cameras; the policy runs on a GPU server'}, | |
| {id:'orinnano', name:'Jetson Orin Nano Super', vram:8, w:15, price:399, place:'embedded'}, | |
| {id:'orinnx', name:'Jetson Orin NX 16 GB', vram:16, w:25, price:1200, place:'embedded'}, | |
| {id:'agxorin', name:'Jetson AGX Orin 64 GB', vram:64, w:45, price:3499, place:'embedded'}, | |
| {id:'thor', name:'Jetson AGX Thor', vram:128, w:90, price:5499, place:'embedded'}, | |
| {id:'included', name:'Robot’s own computer', vram:0, w:0, price:0, place:'embedded', note:'already in the robot’s price and power figure'}, | |
| ]; | |
| const POLICIES = { | |
| act:{name:'ACT', group:'Light imitation learning', a100h:0.6, maxSpeed:1, train:6, tight:4, infer:0, vramTxt:'about 2–6 GB', | |
| why:'Learns one task from about 50 demonstrations and trains fast. Built for bimanual ALOHA tasks too.', flag:'--policy.type=act', doc:D+'act'}, | |
| smolvla:{name:'SmolVLA', group:'Small vision-language-action model (450M)', a100h:1.5, maxSpeed:1.3, train:16, tight:12, infer:4, vramTxt:'about 10–16 GB', | |
| why:'Follows language instructions across tasks; fine-tuned from a model pretrained on community data.', flag:'--policy.path=lerobot/smolvla_base', doc:D+'smolvla', base:'lerobot/smolvla_base'}, | |
| pi05:{name:'pi0.5', group:'Large vision-language-action model', a100h:6, train:40, tight:24, infer:12, vramTxt:'about 24–40 GB', | |
| why:'Stronger generalist for varied objects and long, multi-step tasks.', flag:'--policy.pretrained_path=lerobot/pi05_base', doc:D+'pi05', base:'lerobot/pi05_base'}, | |
| groot:{name:'GR00T', group:'Large multimodal humanoid model', a100h:6, train:40, tight:24, infer:12, vramTxt:'about 24–40 GB', | |
| why:'NVIDIA’s foundation model for humanoids, integrated in LeRobot.', flag:'--policy.type=groot', doc:D+'groot'}, | |
| hilserl:{name:'HIL-SERL (reinforcement learning)', group:'RL with human corrections', a100h:3, train:8, tight:8, infer:2, vramTxt:'depends on the configuration', local:true, | |
| why:'Starts from a few demonstrations and a vision reward classifier, then improves on the robot while you correct it with a gamepad. Requires a measurable reward, repeatable resets and supervised practice. Success must be evaluated on your task.', flag:null, doc:D+'hilserl'}, | |
| }; | |
| // Ember Yearly Electricity Data, 2025, Total generation, lifecycle gCO2e/kWh. | |
| // Retrieved 2026-10-23; original rows, source URL and hash: sources/ember-grid-2025.json. | |
| // Industrial electricity price | |
| // (USD/kWh: Eurostat 2025 for EU countries, EIA 2024 for the US, business rates elsewhere). | |
| const COUNTRIES = { | |
| FR:{name:'France', g:41.224, usd:0.142}, DE:{name:'Germany', g:334.117, usd:0.218}, GB:{name:'United Kingdom', g:218.001, usd:0.25}, | |
| EU:{name:'EU average', g:210.536, usd:0.183}, US:{name:'United States', g:384.403, usd:0.081}, CN:{name:'China', g:528.278, usd:0.118}, | |
| IN:{name:'India', g:670.945, usd:0.108}, JP:{name:'Japan', g:473.735, usd:0.179}, NO:{name:'Norway', g:28.05, usd:0.081}, CA:{name:'Canada', g:191.587, usd:0.119}, | |
| }; | |
| const CLOUD_GRID = 'US'; // Assumed grid for cloud modeling, not verified provider location | |
| const CLOUD_PUE = 1.2; | |
| // Manufacturing footprint: legacy factors; original code cited BLOOM and HGX H100 without an auditable mapping. | |
| // Generic planning assumptions, not verified manufacturer LCAs. Exact source mapping for the inherited factors is unavailable. | |
| const EMBODIED = {robotPerKg:12, gpuCard:160, server:2500, board:30, pc:300}; | |