[
  {
    "id": "ros2-docs-1",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Support for multiple DDS implementations, chosen at runtime",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-2",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "ROS 1 - ROS 2 communication bridge",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-3",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Quality of service settings for handling non-ideal networks",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-4",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Composition of node components at compile, link, load, or run time",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-5",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Support for nodes with managed lifecycles",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-6",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Launch system for coordinating multiple nodes",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-7",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Client-Libraries.rst",
    "excerpt": "Client libraries come in a variety of programming languages so that users may write ROS 2 code in the language that is best-suited for their application.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-8",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Command-Line-Tools.rst",
    "excerpt": "ROS 2 includes a suite of command-line tools for introspecting a ROS 2 system.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-9",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Command-Line-Tools.rst",
    "excerpt": "$ ros2 topic pub /chatter std_msgs/msg/String \"data: Hello world\"",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-10",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/Interfaces-Topics-Services-Actions.rst",
    "excerpt": "Topics: For continuous data streams. Services: For synchronous request/response interactions. Actions: For long-running tasks with feedback",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-11",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/Interfaces-Topics-Services-Actions.rst",
    "excerpt": "Topic statistics are built-in measurements that help you understand how messages behave when a subscription receives them.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-12",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Intermediate/About-Security.rst",
    "excerpt": "ROS 2 includes the ability to secure communications among nodes within the ROS 2 computational graph.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-13",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Intermediate/About-Security.rst",
    "excerpt": "A security enclave encapsulates a single policy for protecting ROS communications.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-14",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Intermediate/About-Quality-of-Service-Settings.rst",
    "excerpt": "ROS 2 can be as reliable as TCP or as best-effort as UDP, with many, many possible states in between.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-15",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Tutorials/Advanced/Security/Introducing-ros2-security.rst",
    "excerpt": "The `sros2` package provides the tools and instructions to use ROS 2 on top of DDS-Security.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-16",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Tutorials/Advanced/Simulators/Gazebo/Gazebo.rst",
    "excerpt": "Launch a Simulation with Gazebo and ROS 2",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-17",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Tutorials/Advanced/Recording-A-Bag-From-Your-Own-Node-Py.rst",
    "excerpt": "It also provides a Python API for reading from and writing to a bag from your own source code.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-18",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Installation/Ubuntu-Install-Debs.rst",
    "excerpt": "The default middleware that ROS 2 uses is `Fast DDS`, but the middleware (RMW) can be replaced at runtime.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-19",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Installation/Ubuntu-Install-Debs.rst",
    "excerpt": "This verifies both the C++ and Python APIs are working properly.",
    "fetchedAt": "2026-09-04T21:53:24.166Z"
  },
  {
    "id": "ros2-docs-20",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Publish/subscribe over topics",
    "fetchedAt": "2026-09-04T21:55:11.090Z"
  },
  {
    "id": "ros2-docs-21",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Client-Libraries.rst",
    "excerpt": "you might prefer to write visualization tools in Python because it makes prototyping iterations faster, while for parts of your system that are concerned with efficiency, the nodes might be better implemented in C++",
    "fetchedAt": "2026-09-04T21:55:11.090Z"
  },
  {
    "id": "ros2-docs-22",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Intermediate/About-Quality-of-Service-Settings.rst",
    "excerpt": "ROS 2 offers a rich variety of Quality of Service (QoS) policies that allow you to tune communication between nodes.",
    "fetchedAt": "2026-09-04T21:55:11.090Z"
  },
  {
    "id": "ros2-docs-23",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Tutorials/Advanced/Recording-A-Bag-From-Your-Own-Node-Py.rst",
    "excerpt": "This allows you to subscribe to a topic and save the received data to a bag at the same time as performing any other processing of your choice on that data.",
    "fetchedAt": "2026-09-04T21:55:11.090Z"
  },
  {
    "id": "ros2-docs-24",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/Interfaces-Topics-Services-Actions.rst",
    "excerpt": "Actions allow clients to send goals, receive feedback during the execution, cancel if needed, and return a result if availabl",
    "fetchedAt": "2026-09-04T21:55:11.090Z"
  },
  {
    "id": "ros2-docs-25",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Set/retrieve parameters",
    "fetchedAt": "2026-09-04T21:55:11.090Z"
  },
  {
    "id": "ros2-docs-26",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Clients and services",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-27",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Inter- and intra-process communication using the same API",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-28",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Multiple executors (at level of callback groups) in same node",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-29",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "DDS-Security support",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-30",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Command-line introspection tools using an extensible framework",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-31",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Static remapping of ROS names",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-32",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Preliminary support for real-time code",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-33",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Content filtering subscription",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-34",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Service Introspection",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-35",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Client-Libraries.rst",
    "excerpt": "Client libraries come in a variety of programming languages so that users may write ROS 2 code in the language that is best-suited for their application",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-36",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Client-Libraries.rst",
    "excerpt": "client libraries expose to users the core functionality that makes ROS \"ROS\"",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-37",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Command-Line-Tools.rst",
    "excerpt": "The main entry point for the tools is the command ros2, which itself has various sub-commands for introspecting and working with nodes, topics, services, and more.",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-38",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Command-Line-Tools.rst",
    "excerpt": "ros2 topic pub /chatter std_msgs/msg/String \"data: Hello world\"",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-39",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Command-Line-Tools.rst",
    "excerpt": "bag: Record/play a rosbag",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-40",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Intermediate/About-Security.rst",
    "excerpt": "Built-in ROS 2 security features enable control over communications throughout the ROS graph. This not only allows for encrypting data in transit between ROS domain participants, but also enables authentication of participants",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-41",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Intermediate/About-Quality-of-Service-Settings.rst",
    "excerpt": "ROS 2 can be as reliable as TCP or as best-effort as UDP, with many, many possible states in between",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-42",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Tutorials/Advanced/Security/Introducing-ros2-security.rst",
    "excerpt": "ros2 security create_keystore demo_keystore",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-43",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Installation/Ubuntu-Install-Debs.rst",
    "excerpt": "the middleware (RMW) can be replaced at runtime",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-44",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Installation/Ubuntu-Install-Debs.rst",
    "excerpt": "ROS-Base Install (Bare Bones): Communication libraries, message packages, command line tools. No GUI tools.",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-gh-1",
    "tier": "github",
    "url": "https://github.com/ros2/ros2",
    "excerpt": "The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms",
    "fetchedAt": "2026-09-04T21:57:15.932Z"
  },
  {
    "id": "ros2-docs-45",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/Interfaces-Topics-Services-Actions.rst",
    "excerpt": "The topic interface is meant for continuous data streams, for example, streaming sensor data or the status of your robot.",
    "fetchedAt": "2026-09-16T20:12:12.080Z"
  },
  {
    "id": "ros2-docs-46",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/Interfaces-Topics-Services-Actions.rst",
    "excerpt": "The service interface is meant for synchronous request/response interactions, for example, when you want to send a query requesting the configuration of a specific robot.",
    "fetchedAt": "2026-09-16T20:12:12.080Z"
  },
  {
    "id": "ros2-docs-47",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Intermediate/About-Quality-of-Service-Settings.rst",
    "excerpt": "With the right set of Quality of Service policies, ROS 2 can be as reliable as TCP or as best-effort as UDP, with many, many possible states in between.",
    "fetchedAt": "2026-09-16T20:12:12.080Z"
  },
  {
    "id": "ros2-docs-48",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "Support for multiple DDS implementations, chosen at runtime - Currently Eclipse Cyclone DDS, eProsima Fast DDS, and RTI Connext DDS are fully supported.",
    "fetchedAt": "2026-09-16T20:12:12.080Z"
  },
  {
    "id": "ros2-docs-49",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Intermediate/About-Security.rst",
    "excerpt": "Built-in ROS 2 security features enable control over communications throughout the ROS graph. This not only allows for encrypting data in transit between ROS domain participants, but also enables authentication of participants sending data",
    "fetchedAt": "2026-09-16T20:12:12.080Z"
  },
  {
    "id": "ros2-docs-50",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/The-ROS2-Project/Features.rst",
    "excerpt": "ROS 1 - ROS 2 communication bridge - Available for topics and services, not yet available for actions.",
    "fetchedAt": "2026-09-16T20:12:12.080Z"
  },
  {
    "id": "ros2-docs-51",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Installation/Ubuntu-Install-Debs.rst",
    "excerpt": "Desktop Install (Recommended): ROS, RViz, demos, tutorials.",
    "fetchedAt": "2026-09-16T20:12:12.080Z"
  },
  {
    "id": "ros2-docs-52",
    "tier": "claimed-docs",
    "url": "https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Concepts/Basic/About-Command-Line-Tools.rst",
    "excerpt": "ROS 2 runs a background daemon process that maintains information about the ROS graph to provide faster responses to queries, such as the list of node names.",
    "fetchedAt": "2026-09-16T20:12:12.080Z"
  },
  {
    "id": "ros2-comm-1",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/42744106",
    "excerpt": "ROS has some fundamental design flaws, but does integrate most development software from various research areas. In many cases, the sub-projects were abandoned decades ago, and only ROS developers keep these components operational.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-2",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/42744106",
    "excerpt": "My major criticism to ROS is that because robotics is already hard, ROS does not make it a single bit enjoyable or easy, all the opposite as a matter of fact.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-3",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/42744106",
    "excerpt": "Been 10 years in and around the robotics industry... I've assisted companies refuse to work with anything touching ROS. Most successful things I've seen in production that are with ROS use a large non-ROS core with a thin ROS layer on top for compatibility.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-4",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/42744106",
    "excerpt": "If you are a hobbyist, academic or garage startup, absolutely use ROS. It will take you from nothing to something faster than anything. But, the moment you ship your first product, add 'Epic: Migrate off of ROS to a custom framework'.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-5",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/42744106",
    "excerpt": "Highly recommend to avoid any companies that would touch ros with a 10ft pole. It's an unmitigated pile of endless shit, and any projects that don't recognize this are also.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-6",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/47296255",
    "excerpt": "ROS is, in my opinion, dying on the industry front. It is a dependency hell; resource-heavy on embedded systems; too slow for real-time, high speed control loops; huge chunks maintained by hobbyists and far behind state of the art (e.g. the entire navigation stack).",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-7",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/47296255",
    "excerpt": "I'd love to use something other than ROS2, if for no other reason than to get rid of the dependency hell and the convoluted build system. But there are a lot of nodes and drivers out there for ROS already.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-8",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/47296255",
    "excerpt": "As someone who has used ros2, I feel fine passing judgment; it is terrible. If its easier to write your own stack, do it... The conceptual design (nodes) is great, its just the execution that is awful.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-9",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/47296255",
    "excerpt": "I've been a ROS 1 (and now 2) user since 2010... ROS gives you some important things 'for free' if you cooperate with its ecosystem conventions. Data bagging, visualization, teleop, and sim are the some obvious ones.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-10",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/47296255",
    "excerpt": "I usually feel the same when starting something new... Installing/building ROS, the package boilerplate, etc... But then again I often end up wanting a lot of the extra stuff you get with ROS like the bags, the viewers, the cli tools, etc.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-11",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/36045938",
    "excerpt": "pub/sub is NOT a natural fit for robotics - you want bounded timing... ROS introduced 'commands' and 'actions' to attempt to work around this, but its all just shit piled on shit.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-12",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/36045938",
    "excerpt": "Actually deploying a ROS based system is about as difficult as rewriting the whole thing from scratch as a monolith. Every time something goes over a pubsub it's like using a GOTO, except your debugger can't actually follow it.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-13",
    "tier": "community",
    "url": "https://hn.algolia.com/api/v1/items/36045938",
    "excerpt": "I still remember the time before ROS, 20 years ago, when each robotics team had to designate a sub-team just for building and maintaining the middleware. That was a waste of time and effort... ROS might not be perfect but it's so much better than anything else that exists.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-14",
    "tier": "community",
    "url": "https://news.ycombinator.com/item?id=47123894",
    "excerpt": "my employer/team supported a good chunk of the work for making ROS 2 actually work on arm64... The best of these SBCs is still vastly shittier in terms of software support and stability than any random Chinese Intel ADL-N box.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-15",
    "tier": "community",
    "url": "https://news.ycombinator.com/item?id=25389266",
    "excerpt": "I'm really struggling in learning ROS in a systematic way. The tutorials are all over the place and somehow unorganized IMO. When trying to replicate stuff on my machine, all kinds of weird errors pop up.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  },
  {
    "id": "ros2-comm-16",
    "tier": "community",
    "url": "https://news.ycombinator.com/item?id=25389266",
    "excerpt": "ROS is popular because it's like a big collection of .proto or .thrift files for complex robotics datatypes that everyone agrees to use in their libraries... this makes it easier to put together complex systems that pass around highly structured data.",
    "fetchedAt": "2026-09-04T22:02:55.852Z"
  }
]
