{
  "count": 84,
  "families": [
    {
      "id": "aerial",
      "name": "Drones (aerial)"
    },
    {
      "id": "cleaning",
      "name": "Cleaning robots"
    },
    {
      "id": "logistics",
      "name": "Logistics & warehouse robots"
    },
    {
      "id": "arms",
      "name": "Robot arms"
    },
    {
      "id": "legged",
      "name": "Legged & humanoid robots"
    },
    {
      "id": "ground",
      "name": "Ground vehicles & rovers"
    },
    {
      "id": "crawlers",
      "name": "Crawlers & climbing robots"
    },
    {
      "id": "marine",
      "name": "Marine & underwater robots"
    },
    {
      "id": "outdoor",
      "name": "Lawn, yard & field robots"
    },
    {
      "id": "agri",
      "name": "Farm & livestock robots"
    },
    {
      "id": "construction",
      "name": "Construction robots"
    },
    {
      "id": "mobility",
      "name": "Autonomous vehicles"
    },
    {
      "id": "service",
      "name": "Service, social & food robots"
    },
    {
      "id": "health",
      "name": "Medical & care robots"
    },
    {
      "id": "other",
      "name": "Other systems"
    }
  ],
  "types": [
    {
      "id": "multirotor-inspection-drone",
      "name": "Multirotor inspection drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A quadcopter or hexacopter that hovers close to a structure and looks at it with zoom, thermal or laser-ranging cameras. The workhorse for towers, roofs, bridges, search and rescue.",
      "url": "https://whirrwork.com/robots/types/multirotor-inspection-drone/",
      "job_count": 21,
      "model_count": 5,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "camera-drone",
      "name": "Camera drone (photo & video)",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A small multirotor built around a stabilised camera for stills and video: real estate, events, film, marketing.",
      "url": "https://whirrwork.com/robots/types/camera-drone/",
      "job_count": 15,
      "model_count": 3,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "fpv-cinema-drone",
      "name": "FPV & cinewhoop drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A small, agile drone flown through first-person goggles, often with ducted propellers (a \"cinewhoop\") for flying close to people and indoors.",
      "url": "https://whirrwork.com/robots/types/fpv-cinema-drone/",
      "job_count": 2,
      "model_count": 1,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "heavy-lift-drone",
      "name": "Heavy-lift drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A large multirotor that carries heavy payloads: cinema cameras, saws for tree trimming, cargo, fishing lines.",
      "url": "https://whirrwork.com/robots/types/heavy-lift-drone/",
      "job_count": 6,
      "model_count": 4,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "mapping-drone",
      "name": "Multirotor mapping & LiDAR drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A multirotor flying pre-planned grids with an RTK-corrected camera, LiDAR or multispectral sensor to make maps, 3D models and volume measurements.",
      "url": "https://whirrwork.com/robots/types/mapping-drone/",
      "job_count": 17,
      "model_count": 4,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        },
        {
          "key": "accuracy",
          "label": "Accuracy"
        }
      ]
    },
    {
      "id": "fixed-wing-vtol-drone",
      "name": "Fixed-wing / VTOL mapping drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A drone with wings that takes off vertically (VTOL) or by hand launch and then flies like a plane, covering far more ground per battery than a multirotor.",
      "url": "https://whirrwork.com/robots/types/fixed-wing-vtol-drone/",
      "job_count": 2,
      "model_count": 2,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        },
        {
          "key": "coverage_ha_flight",
          "label": "Area per flight"
        },
        {
          "key": "accuracy",
          "label": "Accuracy"
        }
      ]
    },
    {
      "id": "docked-drone",
      "name": "Docked drone (drone-in-a-box)",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A drone that lives in a weatherproof dock that charges it and launches it on schedule or on alarm, often flown remotely.",
      "url": "https://whirrwork.com/robots/types/docked-drone/",
      "job_count": 3,
      "model_count": 2,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "tethered-drone",
      "name": "Tethered drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A drone powered through a cable from the ground, so it can hover for hours as a mast for cameras, lights or radios.",
      "url": "https://whirrwork.com/robots/types/tethered-drone/",
      "job_count": 4,
      "model_count": 1,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "confined-space-drone",
      "name": "Caged / confined-space drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A collision-tolerant drone in a protective cage, built to fly inside tanks, boilers, tunnels, sewers and mines where GPS does not work.",
      "url": "https://whirrwork.com/robots/types/confined-space-drone/",
      "job_count": 7,
      "model_count": 1,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "agricultural-spraying-drone",
      "name": "Agricultural spraying & spreading drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A large multirotor with a liquid tank and nozzles, or a granule spreader, that flies low over crops on an RTK-guided route.",
      "url": "https://whirrwork.com/robots/types/agricultural-spraying-drone/",
      "job_count": 9,
      "model_count": 5,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "tank_l",
          "label": "Tank"
        },
        {
          "key": "spray_width_m",
          "label": "Spray width"
        },
        {
          "key": "flow_rate_lpm",
          "label": "Max flow rate"
        },
        {
          "key": "coverage_ha_h",
          "label": "Coverage rate"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "show-drone",
      "name": "Light show drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A small drone with bright RGB LEDs flown in a synchronised swarm of tens to thousands to draw shapes in the night sky.",
      "url": "https://whirrwork.com/robots/types/show-drone/",
      "job_count": 5,
      "model_count": 1,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "brightness_lm",
          "label": "Light brightness"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "accuracy",
          "label": "Accuracy"
        }
      ]
    },
    {
      "id": "delivery-drone",
      "name": "Delivery drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A drone that carries a parcel and lowers or drops it at the destination, flying long routes autonomously.",
      "url": "https://whirrwork.com/robots/types/delivery-drone/",
      "job_count": 4,
      "model_count": 1,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "cleaning-drone",
      "name": "Cleaning drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A drone that sprays water or cleaning solution through a hose fed from the ground, for windows, facades, roofs and solar panels.",
      "url": "https://whirrwork.com/robots/types/cleaning-drone/",
      "job_count": 1,
      "model_count": 1,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "flow_rate_lpm",
          "label": "Max flow rate"
        },
        {
          "key": "max_height_m",
          "label": "Max operating height"
        }
      ]
    },
    {
      "id": "sensing-drone",
      "name": "Sensing & sampling drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "A drone carrying gas sniffers, air-quality sensors, water samplers or mine detectors.",
      "url": "https://whirrwork.com/robots/types/sensing-drone/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "inventory-drone",
      "name": "Warehouse inventory drone",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "An indoor drone that scans barcodes or RFID tags on high racks to count stock.",
      "url": "https://whirrwork.com/robots/types/inventory-drone/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "counter-drone-system",
      "name": "Drone detection & counter-drone system",
      "family": "aerial",
      "family_name": "Drones (aerial)",
      "description": "Radar, radio-frequency and camera systems that detect drones, sometimes with an interceptor.",
      "url": "https://whirrwork.com/robots/types/counter-drone-system/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "autonomous-floor-scrubber",
      "name": "Autonomous floor scrubber",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A ride-on or walk-behind-sized scrubber dryer that maps a building once and then scrubs hard floors on its own.",
      "url": "https://whirrwork.com/robots/types/autonomous-floor-scrubber/",
      "job_count": 2,
      "model_count": 8,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "cleaning_width_mm",
          "label": "Cleaning width"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "tank_l",
          "label": "Tank"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "noise_db",
          "label": "Noise"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "autonomous-sweeper",
      "name": "Autonomous sweeper",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A robotic sweeper for dust and debris on hard floors, car parks or pavements.",
      "url": "https://whirrwork.com/robots/types/autonomous-sweeper/",
      "job_count": 1,
      "model_count": 1,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "cleaning_width_mm",
          "label": "Cleaning width"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "tank_l",
          "label": "Tank"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "noise_db",
          "label": "Noise"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "commercial-robot-vacuum",
      "name": "Robot vacuum (commercial & home)",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A low robot that vacuums carpet and hard floors on a schedule.",
      "url": "https://whirrwork.com/robots/types/commercial-robot-vacuum/",
      "job_count": 2,
      "model_count": 1,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "cleaning_width_mm",
          "label": "Cleaning width"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "tank_l",
          "label": "Tank"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "noise_db",
          "label": "Noise"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "uv-disinfection-robot",
      "name": "UV-C disinfection robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A mobile robot with ultraviolet-C lamps that disinfects empty rooms.",
      "url": "https://whirrwork.com/robots/types/uv-disinfection-robot/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "window-facade-robot",
      "name": "Window & facade cleaning robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A robot that hangs from a building maintenance unit or roof rig, or climbs glass, and washes windows and facades.",
      "url": "https://whirrwork.com/robots/types/window-facade-robot/",
      "job_count": 5,
      "model_count": 1,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "max_wind_ms",
          "label": "Max wind resistance"
        },
        {
          "key": "max_height_m",
          "label": "Max operating height"
        }
      ]
    },
    {
      "id": "solar-panel-cleaning-robot",
      "name": "Solar panel cleaning robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A robot that drives along rows of solar panels brushing off dust, with or without water.",
      "url": "https://whirrwork.com/robots/types/solar-panel-cleaning-robot/",
      "job_count": 2,
      "model_count": 2,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "cleaning_width_mm",
          "label": "Cleaning width"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        }
      ]
    },
    {
      "id": "pool-cleaning-robot",
      "name": "Pool cleaning robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "An underwater robot that scrubs and vacuums the floor and walls of a swimming pool and filters the water.",
      "url": "https://whirrwork.com/robots/types/pool-cleaning-robot/",
      "job_count": 1,
      "model_count": 1,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "coverage_m2",
          "label": "Rated area"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "filter_um",
          "label": "Finest filtration"
        },
        {
          "key": "cable_m",
          "label": "Tether / cable length"
        }
      ]
    },
    {
      "id": "duct-cleaning-robot",
      "name": "Duct cleaning & inspection robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A small tracked robot with a camera and rotating brush that drives inside air ducts.",
      "url": "https://whirrwork.com/robots/types/duct-cleaning-robot/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        },
        {
          "key": "cable_m",
          "label": "Tether / cable length"
        }
      ]
    },
    {
      "id": "tank-cleaning-robot",
      "name": "Tank & silo cleaning robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A remote-controlled machine that enters (or reaches into) tanks, silos and digesters to remove sludge or caked material, so people do not have to.",
      "url": "https://whirrwork.com/robots/types/tank-cleaning-robot/",
      "job_count": 3,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "hull-cleaning-robot",
      "name": "Hull & net cleaning robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "A robot that clings to a ship hull or fish-farm net underwater and removes fouling.",
      "url": "https://whirrwork.com/robots/types/hull-cleaning-robot/",
      "job_count": 3,
      "model_count": 0,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "depth_m",
          "label": "Depth rating"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "specialty-cleaning-robot",
      "name": "Specialty cleaning robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "Robots built for one cleaning task: restrooms, escalators, aircraft washing, graffiti removal, laser cleaning.",
      "url": "https://whirrwork.com/robots/types/specialty-cleaning-robot/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "litter-picking-robot",
      "name": "Beach & litter cleaning robot",
      "family": "cleaning",
      "family_name": "Cleaning robots",
      "description": "Robots that sieve sand or pick litter from grass and beaches.",
      "url": "https://whirrwork.com/robots/types/litter-picking-robot/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        }
      ]
    },
    {
      "id": "water-surface-cleaning-robot",
      "name": "Water-surface cleaning robot",
      "family": "marine",
      "family_name": "Marine & underwater robots",
      "description": "Floating robots and river interceptors that collect trash and debris from water surfaces.",
      "url": "https://whirrwork.com/robots/types/water-surface-cleaning-robot/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "capacity_l",
          "label": "Capacity"
        }
      ]
    },
    {
      "id": "amr",
      "name": "Autonomous mobile robot (AMR)",
      "family": "logistics",
      "family_name": "Logistics & warehouse robots",
      "description": "A wheeled robot that navigates warehouses, factories and hospitals by its own map, carrying totes, carts or shelves and working around people.",
      "url": "https://whirrwork.com/robots/types/amr/",
      "job_count": 8,
      "model_count": 3,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        },
        {
          "key": "safety_cert",
          "label": "Safety standards (as stated by the maker)"
        }
      ]
    },
    {
      "id": "autonomous-forklift",
      "name": "Autonomous forklift & pallet mover",
      "family": "logistics",
      "family_name": "Logistics & warehouse robots",
      "description": "A forklift or pallet truck that drives and lifts pallets by itself.",
      "url": "https://whirrwork.com/robots/types/autonomous-forklift/",
      "job_count": 2,
      "model_count": 2,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "lift_height_m",
          "label": "Lift height"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        },
        {
          "key": "safety_cert",
          "label": "Safety standards (as stated by the maker)"
        }
      ]
    },
    {
      "id": "asrs",
      "name": "Automated storage & retrieval (AS/RS)",
      "family": "logistics",
      "family_name": "Logistics & warehouse robots",
      "description": "A storage grid or rack served by robots or shuttles that bring goods to a picker.",
      "url": "https://whirrwork.com/robots/types/asrs/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        }
      ]
    },
    {
      "id": "warehouse-robot-arm",
      "name": "Picking, packing & palletizing arm",
      "family": "logistics",
      "family_name": "Logistics & warehouse robots",
      "description": "A robot arm with vision and grippers that picks items, packs orders, sorts parcels, unloads trucks or stacks pallets.",
      "url": "https://whirrwork.com/robots/types/warehouse-robot-arm/",
      "job_count": 8,
      "model_count": 1,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "reach_mm",
          "label": "Reach"
        },
        {
          "key": "picks_per_hour",
          "label": "Picks per hour"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "shelf-scanning-robot",
      "name": "Shelf & inventory scanning robot",
      "family": "logistics",
      "family_name": "Logistics & warehouse robots",
      "description": "A mobile robot that drives store or library aisles photographing shelves or reading RFID tags.",
      "url": "https://whirrwork.com/robots/types/shelf-scanning-robot/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "collaborative-arm",
      "name": "Collaborative robot arm (cobot)",
      "family": "arms",
      "family_name": "Robot arms",
      "description": "A robot arm designed to work near people at limited force and speed, easy to reprogram: machine tending, packing, screwdriving, light welding.",
      "url": "https://whirrwork.com/robots/types/collaborative-arm/",
      "job_count": 7,
      "model_count": 3,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "reach_mm",
          "label": "Reach"
        },
        {
          "key": "repeatability_mm",
          "label": "Repeatability"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "axes",
          "label": "Axes"
        },
        {
          "key": "safety_cert",
          "label": "Safety standards (as stated by the maker)"
        }
      ]
    },
    {
      "id": "industrial-arm",
      "name": "Industrial robot arm",
      "family": "arms",
      "family_name": "Robot arms",
      "description": "A fast, strong, precise arm working behind guarding: welding, painting, machining, assembly, handling.",
      "url": "https://whirrwork.com/robots/types/industrial-arm/",
      "job_count": 18,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "reach_mm",
          "label": "Reach"
        },
        {
          "key": "repeatability_mm",
          "label": "Repeatability"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "axes",
          "label": "Axes"
        },
        {
          "key": "safety_cert",
          "label": "Safety standards (as stated by the maker)"
        }
      ]
    },
    {
      "id": "mobile-manipulator",
      "name": "Mobile manipulator",
      "family": "arms",
      "family_name": "Robot arms",
      "description": "A robot arm mounted on a mobile base, so it can do arm work at several stations.",
      "url": "https://whirrwork.com/robots/types/mobile-manipulator/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "reach_mm",
          "label": "Reach"
        },
        {
          "key": "repeatability_mm",
          "label": "Repeatability"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "axes",
          "label": "Axes"
        },
        {
          "key": "safety_cert",
          "label": "Safety standards (as stated by the maker)"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        }
      ]
    },
    {
      "id": "inspection-cell",
      "name": "Machine-vision inspection robot",
      "family": "arms",
      "family_name": "Robot arms",
      "description": "A robot or cell that moves cameras or sensors over parts to check quality.",
      "url": "https://whirrwork.com/robots/types/inspection-cell/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "repeatability_mm",
          "label": "Repeatability"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "quadruped",
      "name": "Quadruped (robot dog)",
      "family": "legged",
      "family_name": "Legged & humanoid robots",
      "description": "A four-legged robot that walks over rough ground and stairs carrying cameras, gas sensors or thermal imagers on autonomous inspection rounds.",
      "url": "https://whirrwork.com/robots/types/quadruped/",
      "job_count": 5,
      "model_count": 4,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "op_temp",
          "label": "Operating temperature"
        },
        {
          "key": "max_step_m",
          "label": "Max step height"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "humanoid",
      "name": "Humanoid robot",
      "family": "legged",
      "family_name": "Legged & humanoid robots",
      "description": "A two-legged robot with arms, aimed at working in spaces designed for people. Mostly pilots and research in 2026.",
      "url": "https://whirrwork.com/robots/types/humanoid/",
      "job_count": 5,
      "model_count": 1,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "height_m",
          "label": "Height"
        },
        {
          "key": "dof",
          "label": "Degrees of freedom"
        }
      ]
    },
    {
      "id": "exoskeleton",
      "name": "Exoskeleton",
      "family": "health",
      "family_name": "Medical & care robots",
      "description": "A wearable powered or passive frame that supports a worker's back, shoulders or legs, or helps a patient walk.",
      "url": "https://whirrwork.com/robots/types/exoskeleton/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "support_nm",
          "label": "Support torque"
        }
      ]
    },
    {
      "id": "ugv-tactical",
      "name": "Tactical, EOD & firefighting UGV",
      "family": "ground",
      "family_name": "Ground vehicles & rovers",
      "description": "A tracked or wheeled remote-controlled vehicle with cameras and often an arm, for bomb disposal, firefighting, demining or dangerous reconnaissance.",
      "url": "https://whirrwork.com/robots/types/ugv-tactical/",
      "job_count": 7,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "inspection-rover",
      "name": "Inspection rover",
      "family": "ground",
      "family_name": "Ground vehicles & rovers",
      "description": "A wheeled or tracked robot that drives through crawlspaces, tunnels, plants or rail lines carrying cameras and sensors, often ATEX-certified for explosive atmospheres.",
      "url": "https://whirrwork.com/robots/types/inspection-rover/",
      "job_count": 11,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "atex",
          "label": "Explosion protection (ATEX/IECEx)"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "remote-manipulator",
      "name": "Remote manipulator & nuclear robot",
      "family": "ground",
      "family_name": "Ground vehicles & rovers",
      "description": "Teleoperated arms and vehicles for radioactive, toxic or hazardous material handling, decommissioning and abatement.",
      "url": "https://whirrwork.com/robots/types/remote-manipulator/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "reach_mm",
          "label": "Reach"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "demolition-robot",
      "name": "Demolition & hydrodemolition robot",
      "family": "construction",
      "family_name": "Construction robots",
      "description": "A remote-controlled tracked machine with a breaker, crusher or high-pressure water jet that demolishes concrete while the operator stands clear.",
      "url": "https://whirrwork.com/robots/types/demolition-robot/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "reach_mm",
          "label": "Reach"
        },
        {
          "key": "power_kw",
          "label": "Power"
        }
      ]
    },
    {
      "id": "security-robot",
      "name": "Security patrol robot",
      "family": "service",
      "family_name": "Service, social & food robots",
      "description": "A wheeled robot that patrols indoor or outdoor routes with cameras, licence-plate readers and two-way audio, reporting to a guard.",
      "url": "https://whirrwork.com/robots/types/security-robot/",
      "job_count": 6,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "magnetic-crawler",
      "name": "Magnetic & climbing crawler",
      "family": "crawlers",
      "family_name": "Crawlers & climbing robots",
      "description": "A robot that sticks to steel walls with magnets (or to blades and towers with suction or clamps) and scans thickness, welds and corrosion with ultrasonic or other NDT sensors.",
      "url": "https://whirrwork.com/robots/types/magnetic-crawler/",
      "job_count": 8,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        }
      ]
    },
    {
      "id": "pipe-crawler",
      "name": "Pipe & sewer crawler",
      "family": "crawlers",
      "family_name": "Crawlers & climbing robots",
      "description": "A tracked or wheeled robot on a tether that drives inside sewers, pipelines, chimneys and culverts with a camera, cutter or sensors.",
      "url": "https://whirrwork.com/robots/types/pipe-crawler/",
      "job_count": 9,
      "model_count": 1,
      "key_specs": [
        {
          "key": "pipe_diameter_mm",
          "label": "Pipe diameter"
        },
        {
          "key": "cable_m",
          "label": "Tether / cable length"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "line-robot",
      "name": "Power-line robot",
      "family": "crawlers",
      "family_name": "Crawlers & climbing robots",
      "description": "A robot that rides along live power lines to inspect or install markers and spacers.",
      "url": "https://whirrwork.com/robots/types/line-robot/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "observation-rov",
      "name": "Inspection ROV (underwater drone)",
      "family": "marine",
      "family_name": "Marine & underwater robots",
      "description": "A tethered underwater robot with cameras and lights, piloted from the surface, for hulls, dams, tanks, fish farms and search.",
      "url": "https://whirrwork.com/robots/types/observation-rov/",
      "job_count": 9,
      "model_count": 2,
      "key_specs": [
        {
          "key": "depth_m",
          "label": "Depth rating"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "cable_m",
          "label": "Tether / cable length"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        }
      ]
    },
    {
      "id": "work-class-rov",
      "name": "Work-class ROV",
      "family": "marine",
      "family_name": "Marine & underwater robots",
      "description": "A large, powerful tethered underwater vehicle with manipulator arms for offshore construction and intervention.",
      "url": "https://whirrwork.com/robots/types/work-class-rov/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "depth_m",
          "label": "Depth rating"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "power_kw",
          "label": "Power"
        }
      ]
    },
    {
      "id": "auv",
      "name": "Autonomous underwater vehicle (AUV)",
      "family": "marine",
      "family_name": "Marine & underwater robots",
      "description": "An untethered, torpedo-like robot that runs pre-planned survey lines underwater with sonar and sensors.",
      "url": "https://whirrwork.com/robots/types/auv/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "depth_m",
          "label": "Depth rating"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "usv",
      "name": "Uncrewed surface vessel (USV)",
      "family": "marine",
      "family_name": "Marine & underwater robots",
      "description": "A robotic boat for bathymetry, monitoring, sampling or security.",
      "url": "https://whirrwork.com/robots/types/usv/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "robotic-lawn-mower",
      "name": "Robotic lawn mower",
      "family": "outdoor",
      "family_name": "Lawn, yard & field robots",
      "description": "A battery mower that cuts grass little and often within a mapped or wired boundary and returns to its charger.",
      "url": "https://whirrwork.com/robots/types/robotic-lawn-mower/",
      "job_count": 2,
      "model_count": 2,
      "key_specs": [
        {
          "key": "coverage_m2",
          "label": "Rated area"
        },
        {
          "key": "cutting_width_mm",
          "label": "Cutting width"
        },
        {
          "key": "max_slope_pct",
          "label": "Max slope"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "noise_db",
          "label": "Noise"
        },
        {
          "key": "ip_rating",
          "label": "Ingress protection (IP)"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "positioning",
          "label": "Positioning"
        }
      ]
    },
    {
      "id": "line-marking-robot",
      "name": "Line marking robot",
      "family": "outdoor",
      "family_name": "Lawn, yard & field robots",
      "description": "A GNSS-guided robot that paints sports-field lines or construction layouts.",
      "url": "https://whirrwork.com/robots/types/line-marking-robot/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "accuracy",
          "label": "Accuracy"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "yard-robot",
      "name": "Yard, garden & snow robot",
      "family": "outdoor",
      "family_name": "Lawn, yard & field robots",
      "description": "Robots for other outdoor chores: snow clearing, weeding gardens, ball collection, pest monitoring.",
      "url": "https://whirrwork.com/robots/types/yard-robot/",
      "job_count": 6,
      "model_count": 0,
      "key_specs": [
        {
          "key": "coverage_m2",
          "label": "Rated area"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "autonomous-tractor",
      "name": "Autonomous tractor & farm vehicle",
      "family": "agri",
      "family_name": "Farm & livestock robots",
      "description": "A tractor or farm carrier that drives field routes itself, pulling or carrying implements.",
      "url": "https://whirrwork.com/robots/types/autonomous-tractor/",
      "job_count": 5,
      "model_count": 0,
      "key_specs": [
        {
          "key": "power_kw",
          "label": "Power"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "weeding-robot",
      "name": "Weeding robot",
      "family": "agri",
      "family_name": "Farm & livestock robots",
      "description": "A field robot that finds weeds with cameras and removes them with lasers, blades or micro-doses of herbicide.",
      "url": "https://whirrwork.com/robots/types/weeding-robot/",
      "job_count": 1,
      "model_count": 1,
      "key_specs": [
        {
          "key": "coverage_ha_h",
          "label": "Coverage rate"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "harvesting-robot",
      "name": "Harvesting & orchard robot",
      "family": "agri",
      "family_name": "Farm & livestock robots",
      "description": "Robots that pick fruit and vegetables, pollinate or tend orchards and greenhouses.",
      "url": "https://whirrwork.com/robots/types/harvesting-robot/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "milking-robot",
      "name": "Milking robot",
      "family": "agri",
      "family_name": "Farm & livestock robots",
      "description": "A voluntary milking box where cows walk in when they choose and a robot arm attaches the cups.",
      "url": "https://whirrwork.com/robots/types/milking-robot/",
      "job_count": 1,
      "model_count": 1,
      "key_specs": [
        {
          "key": "capacity_cows",
          "label": "Herd capacity"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "barn-robot",
      "name": "Barn & livestock robot",
      "family": "agri",
      "family_name": "Farm & livestock robots",
      "description": "Robots that push feed, clean manure alleys or walk poultry houses.",
      "url": "https://whirrwork.com/robots/types/barn-robot/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "construction-layout-robot",
      "name": "Construction layout robot",
      "family": "construction",
      "family_name": "Construction robots",
      "description": "A robot that prints floor plans and layout marks on site from BIM, positioned by a total station.",
      "url": "https://whirrwork.com/robots/types/construction-layout-robot/",
      "job_count": 3,
      "model_count": 0,
      "key_specs": [
        {
          "key": "accuracy",
          "label": "Accuracy"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        }
      ]
    },
    {
      "id": "construction-finishing-robot",
      "name": "Construction finishing robot",
      "family": "construction",
      "family_name": "Construction robots",
      "description": "Robots that sand, paint, plaster, trowel concrete, tile or paint murals.",
      "url": "https://whirrwork.com/robots/types/construction-finishing-robot/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "coverage_m2h",
          "label": "Coverage rate"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "construction-assembly-robot",
      "name": "Construction assembly robot",
      "family": "construction",
      "family_name": "Construction robots",
      "description": "Robots that tie rebar, drill ceilings, frame timber, install glazing or solar modules.",
      "url": "https://whirrwork.com/robots/types/construction-assembly-robot/",
      "job_count": 6,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "3d-construction-printer",
      "name": "3D construction printer",
      "family": "construction",
      "family_name": "Construction robots",
      "description": "A gantry or arm that extrudes concrete layer by layer to print walls and structures.",
      "url": "https://whirrwork.com/robots/types/3d-construction-printer/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "autonomous-heavy-equipment",
      "name": "Autonomous heavy equipment",
      "family": "construction",
      "family_name": "Construction robots",
      "description": "Excavators, loaders, pile drivers, drill rigs and haul trucks retrofitted or built to work autonomously.",
      "url": "https://whirrwork.com/robots/types/autonomous-heavy-equipment/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "power_kw",
          "label": "Power"
        }
      ]
    },
    {
      "id": "robotaxi",
      "name": "Robotaxi",
      "family": "mobility",
      "family_name": "Autonomous vehicles",
      "description": "A driverless car offering paid rides in a defined area.",
      "url": "https://whirrwork.com/robots/types/robotaxi/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "autonomous-shuttle",
      "name": "Autonomous shuttle & delivery vehicle",
      "family": "mobility",
      "family_name": "Autonomous vehicles",
      "description": "A low-speed driverless shuttle or road delivery vehicle on fixed routes.",
      "url": "https://whirrwork.com/robots/types/autonomous-shuttle/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        }
      ]
    },
    {
      "id": "autonomous-truck",
      "name": "Autonomous truck & yard tractor",
      "family": "mobility",
      "family_name": "Autonomous vehicles",
      "description": "Self-driving trucks for highways, depots and yards.",
      "url": "https://whirrwork.com/robots/types/autonomous-truck/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "autonomous-wheelchair",
      "name": "Autonomous wheelchair",
      "family": "mobility",
      "family_name": "Autonomous vehicles",
      "description": "A wheelchair that drives itself to a destination in airports or hospitals.",
      "url": "https://whirrwork.com/robots/types/autonomous-wheelchair/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        }
      ]
    },
    {
      "id": "evtol",
      "name": "eVTOL aircraft",
      "family": "mobility",
      "family_name": "Autonomous vehicles",
      "description": "Electric vertical take-off aircraft for passengers or cargo.",
      "url": "https://whirrwork.com/robots/types/evtol/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "range_km",
          "label": "Range"
        }
      ]
    },
    {
      "id": "sidewalk-delivery-robot",
      "name": "Sidewalk delivery robot",
      "family": "logistics",
      "family_name": "Logistics & warehouse robots",
      "description": "A small six- or four-wheeled robot that drives on pavements to deliver food and parcels.",
      "url": "https://whirrwork.com/robots/types/sidewalk-delivery-robot/",
      "job_count": 2,
      "model_count": 0,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "range_km",
          "label": "Range"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        }
      ]
    },
    {
      "id": "serving-robot",
      "name": "Serving & guide robot",
      "family": "service",
      "family_name": "Service, social & food robots",
      "description": "An indoor robot with trays or a screen that carries food to tables, guides visitors or greets guests.",
      "url": "https://whirrwork.com/robots/types/serving-robot/",
      "job_count": 7,
      "model_count": 2,
      "key_specs": [
        {
          "key": "payload_kg",
          "label": "Payload"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "sensors",
          "label": "Sensors"
        }
      ]
    },
    {
      "id": "telepresence-robot",
      "name": "Telepresence robot",
      "family": "service",
      "family_name": "Service, social & food robots",
      "description": "A screen on a mobile base that lets a remote person drive around and talk.",
      "url": "https://whirrwork.com/robots/types/telepresence-robot/",
      "job_count": 3,
      "model_count": 0,
      "key_specs": [
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        },
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        }
      ]
    },
    {
      "id": "social-robot",
      "name": "Social, educational & entertainment robot",
      "family": "service",
      "family_name": "Service, social & food robots",
      "description": "Robots for companionship, teaching, performance, mascots and animatronics.",
      "url": "https://whirrwork.com/robots/types/social-robot/",
      "job_count": 6,
      "model_count": 1,
      "key_specs": [
        {
          "key": "weight_kg",
          "label": "Weight"
        },
        {
          "key": "runtime_min",
          "label": "Runtime / flight time"
        }
      ]
    },
    {
      "id": "food-robot",
      "name": "Cooking, drink & food robot",
      "family": "service",
      "family_name": "Service, social & food robots",
      "description": "Robot kitchens, baristas, bartenders, dishwashing and food-processing robots.",
      "url": "https://whirrwork.com/robots/types/food-robot/",
      "job_count": 6,
      "model_count": 0,
      "key_specs": [
        {
          "key": "throughput_per_hour",
          "label": "Throughput"
        }
      ]
    },
    {
      "id": "household-robot",
      "name": "Household chores robot",
      "family": "service",
      "family_name": "Service, social & food robots",
      "description": "Robots for laundry folding and other home chores.",
      "url": "https://whirrwork.com/robots/types/household-robot/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": []
    },
    {
      "id": "surgical-robot",
      "name": "Surgical & clinical robot",
      "family": "health",
      "family_name": "Medical & care robots",
      "description": "Robot-assisted surgery systems and clinical robots (dental, hair transplant, blood draw), always operated or supervised by clinicians.",
      "url": "https://whirrwork.com/robots/types/surgical-robot/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": []
    },
    {
      "id": "lab-pharmacy-robot",
      "name": "Lab & pharmacy automation robot",
      "family": "health",
      "family_name": "Medical & care robots",
      "description": "Robots that handle samples, plates and medicines in labs and pharmacies.",
      "url": "https://whirrwork.com/robots/types/lab-pharmacy-robot/",
      "job_count": 4,
      "model_count": 0,
      "key_specs": [
        {
          "key": "throughput_per_hour",
          "label": "Throughput"
        }
      ]
    },
    {
      "id": "care-robot",
      "name": "Care & personal-care robot",
      "family": "health",
      "family_name": "Medical & care robots",
      "description": "Robots that help lift patients, give massages or do beauty treatments.",
      "url": "https://whirrwork.com/robots/types/care-robot/",
      "job_count": 3,
      "model_count": 0,
      "key_specs": []
    },
    {
      "id": "cable-cam",
      "name": "Cable cam",
      "family": "other",
      "family_name": "Other systems",
      "description": "A camera that runs along suspended cables over stadiums and events.",
      "url": "https://whirrwork.com/robots/types/cable-cam/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": [
        {
          "key": "max_speed_ms",
          "label": "Top speed"
        },
        {
          "key": "payload_kg",
          "label": "Payload"
        }
      ]
    },
    {
      "id": "ev-charging-robot",
      "name": "EV charging robot",
      "family": "other",
      "family_name": "Other systems",
      "description": "A robot that plugs in or brings charge to electric vehicles.",
      "url": "https://whirrwork.com/robots/types/ev-charging-robot/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": []
    },
    {
      "id": "space-robot",
      "name": "Space robot",
      "family": "other",
      "family_name": "Other systems",
      "description": "Robotic arms and servicers for satellites and space stations.",
      "url": "https://whirrwork.com/robots/types/space-robot/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": []
    },
    {
      "id": "car-wash-system",
      "name": "Robotic car wash",
      "family": "other",
      "family_name": "Other systems",
      "description": "Automated vehicle washing gantries and robots.",
      "url": "https://whirrwork.com/robots/types/car-wash-system/",
      "job_count": 1,
      "model_count": 0,
      "key_specs": []
    }
  ],
  "methodology_url": "https://whirrwork.com/robots/methodology/"
}