{"adoption": {"forks": 350, "observed_at": "2026-08-28T04:03:37.715202+00:00", "stars": 1111}, "canonical_url": "https://ross.abutalabs.com/products/linorobot", "card": {"archived": false, "artifact_type": "framework", "description": "Autonomous ground robots (2WD, 4WD, Ackermann Steering, Mecanum Drive)", "domain": ["robotics", "autonomous-vehicles", "embedded-systems", "hardware"], "enriched": true, "function": ["robotics", "embedded", "middleware"], "health_score": 20, "homepage": "http://linorobot.org", "language": "C++", "license": "BSD-2-Clause", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["linorobot/linorobot"], "name": "linorobot/linorobot", "platform": ["embedded", "cpp", "python"], "pushed_at": "2023-05-10T19:54:23+00:00", "repo": "linorobot/linorobot", "stars": 1111, "tags": ["ros", "ros-kinetic", "teensy", "slam", "autonomous-navigation", "robot-base-controller", "lidar", "ackermann-steering", "mecanum-drive", "diy-robot", "linux"], "topics": ["ros", "agv", "2wd", "4wd", "ackermann", "mecanum-wheel", "robotics", "autonomous-vehicles", "autonomous", "linorobot"], "urls": [], "use_cases": ["build a low-cost ROS-compatible autonomous robot from scratch", "create 2D maps with SLAM and navigate autonomously with AMCL", "set up a base controller with odometry for the ROS Navigation Stack", "integrate lidar or depth camera sensors with ROS for mapping", "experiment with different drive types like mecanum or Ackermann steering", "learn robot development with ROS through a guided tutorial"], "what_it_is": "Linorobot is a suite of open-source ROS-compatible autonomous ground robots (2WD, 4WD, Ackermann steering, mecanum drive) with Teensy-based firmware and ROS integration for SLAM and autonomous navigation. It provides students, developers, and researchers a low-cost platform for building robots on top of ROS.", "when_to_avoid": ["you're starting a new project on ROS2 - use linorobot2 instead", "you need support for modern Ubuntu/ROS distributions", "you want a ready-made commercial robot rather than a DIY build"], "when_to_choose": ["you want a complete open-source hardware and software reference for a ROS1 mobile robot", "you need a low-cost educational platform supporting multiple drive kinematics", "you're running ROS Indigo or Kinetic on Ubuntu 14.04/16.04 with an ARM dev board like Raspberry Pi"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/linorobot", "repo": "linorobot/linorobot", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.715202+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:43:24.266795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bdb0327e2596a19a9f4bb84ea4ce6419af75e3b4feaa6b5ced4d5c7d15467e1", "fetched_at": "2026-08-28T04:03:37.715202+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linorobot/linorobot"}, {"content_hash": "3c0912ecb6025993523eb75f9af96a6b9e6a34f4ed191061784c518aeb528a33", "fetched_at": "2026-08-29T12:46:42.062739+00:00", "kind": "homepage", "missing": false, "url": "http://linorobot.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3839, "days_push": 1211, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}