Fact-checked by Grok 2 weeks ago

Robot Operating System

The Robot Operating System (ROS) is an framework and set of tools designed to facilitate the creation of applications, providing layers, device drivers, libraries, and APIs that enable modular, reusable code for software. It supports communication between distributed processes via a publish-subscribe messaging system, package management for easy integration of components, and visualization tools like RViz for simulation and debugging, making it suitable for prototyping, research, and production deployment across diverse robotic platforms. Originally launched on November 7, 2007, by developers at —including key contributors such as Keenan Wyrobek, Morgan Quigley, Ken Conley, and Brian Gerkey—ROS emerged from efforts at Stanford University's Personal Robotics Program to address the lack of standardized, collaborative software infrastructure in , evolving from prototypes like the PR1 and Switchyard middleware. ROS quickly gained traction through Willow Garage's PR2 Beta Program, which distributed 11 advanced humanoid robots to universities and labs in 2010 to accelerate adoption and contributions, fostering a global ecosystem with over 200,000 code commits and millions of lines of code by 2017. The framework's open-source nature under permissive licenses, including the BSD license for ROS 1 and 2.0 for ROS 2, combined with its hardware-agnostic design supporting platforms like , Windows, macOS, and embedded systems via micro-ROS, has made it the de facto standard for , powering applications in , autonomous vehicles, industrial automation, and even on the . In response to evolving needs for real-time performance, multi-robot systems, and integration with modern standards like middleware, ROS 2 was introduced in 2017 as a successor to the original ROS 1, with long-term support releases such as Jazzy (2024) and standard releases like Kilted (2025), following the end-of-life of ROS 1 in May 2025, emphasizing reliability, security, and scalability for production environments. Today, managed by the nonprofit organization, ROS continues to drive innovation through annual events like ROSCon and a vibrant , underpinning billions in value for autonomous mobile robots and beyond.

Introduction

Definition and Scope

The Robot Operating System (ROS) is a flexible, open-source designed for developing applications. It provides essential services such as , low-level device drivers, reusable libraries, visualization tools, inter-process message-passing mechanisms, and package management systems to facilitate the creation and deployment of code. Despite its name, ROS is not a traditional operating system but rather a meta-operating system that layers atop existing platforms like (primarily ), Windows, macOS, and others, enabling distributed computation across multiple machines. Its scope encompasses support for heterogeneous teams of robots, allowing seamless of diverse and software components in and settings. The primary objectives of ROS are to simplify the development of complex robotics tasks by promoting modular, reusable code structures and to accelerate prototyping and deployment through standardized tools and libraries. Originating from efforts at Stanford University to tackle challenges in multi-robot coordination and software integration for personal robotics projects, ROS emphasizes code reusability across varying hardware configurations and scales from single-robot to large distributed systems.

Role in Robotics Development

The Robot Operating System (ROS) significantly enhances robotics development by promoting extensive code reuse through its vast repository of open-source libraries and packages, which allows developers to leverage pre-existing solutions rather than building from scratch. This framework ensures interoperability between heterogeneous hardware components—such as sensors from different manufacturers—and software modules written in multiple languages like C++ and Python, fostering seamless integration in complex systems. Additionally, ROS supports scalability, enabling transitions from small-scale research prototypes to robust industrial deployments that handle fleets of robots in dynamic environments. In terms of development impact, ROS minimizes for routine tasks, including data processing, control, and algorithms, thereby accelerating prototyping. It also enables across multiple machines, allowing robotic systems to coordinate tasks like multi-robot without centralized bottlenecks, which is essential for applications requiring high computational loads. These features collectively lower for engineers, shifting focus from low-level implementation to high-level and problem-solving. By 2025, ROS has achieved widespread adoption, powering numerous robots globally and serving as a cornerstone in for educational and platforms, in for sectors like automotive testing and warehouse automation where it optimizes flows, and in space exploration through specialized variants like Space ROS developed in collaboration with . In 2024, over 530 million ROS packages were downloaded, with 72% attributed to the more advanced ROS 2 version. ROS effectively tackles persistent challenges in robotics, providing built-in support for real-time constraints via middleware like DDS that enables low-latency communication in critical scenarios. It manages hardware heterogeneity by standardizing interfaces for diverse components, from low-power microcontrollers to high-end GPUs, without requiring custom adapters. Moreover, integrated simulation tools like allow for virtual testing of algorithms on realistic physics models before hardware deployment, mitigating risks and costs associated with physical prototypes.

History

Origins and Early Development (Pre-2007)

The origins of the Robot Operating System (ROS) emerged in the mid-2000s from efforts at Stanford University's Laboratory to create modular software frameworks for research amid a landscape of fragmented, project-specific tools. Key contributors included graduate students Eric Berger and Keenan Wyrobek, who initiated a personal project to promote reusable software components and reduce redundancy in robot development, as well as Morgan Quigley, who focused on integration challenges within multi-robot systems. These early works were driven by the need for standardized to enable collaboration across diverse platforms and research teams, addressing the inefficiencies of custom-coded solutions that hindered scalability in academic . A pivotal precursor was the Switchyard project, developed by Quigley between and 2006 as part of the STAIR (Stanford AI Robot) initiative, which aimed to build a robot for home and office assistance. Switchyard served as a lightweight for coordinating heterogeneous components, such as sensors, actuators, and algorithms, in a modular, robot-independent manner that supported and subsystem interoperability. Under the guidance of advisers like Andrew Y. Ng and , the framework facilitated tasks like object grasping and navigation by enabling distributed communication among processes, drawing brief inspiration from early distributed systems models for computation graphs. Initial prototypes were tested on the STAIR platform, validating Switchyard's effectiveness in integrating vision, , and planning modules for real-time operations. Brian Gerkey, though more prominently involved post-2007, contributed foundational ideas through his prior work on the Player Project, an open-source robot device interface that influenced the emphasis on portability and extensibility in these Stanford efforts. The pre-2007 phase culminated in informal code releases and cross-lab collaborations at Stanford, setting the stage for open-source evolution as Berger and Wyrobek transitioned to in 2006, where the framework was refined into ROS. These developments prioritized conceptual modularity over hardware specifics, establishing a foundation for standardized software that emphasized community-driven reuse.

Willow Garage Era (2007–2013)

The Willow Garage era marked the foundational growth of the Robot Operating System (ROS), beginning with the company's adoption of an initial software framework originating from the Stanford AI Laboratory's STAIR project. Founded in 2007 by entrepreneur , committed to open-source principles from the outset, hosting the first ROS code commit on on November 7, 2007. This move aimed to create a collaborative that abstracted hardware complexities and enabled modular for service robots, addressing fragmentation in the field. Key early contributors, including Brian Gerkey, Morgan Quigley, Ken Conley, Josh Faust, Tully Foote, and Eric Berger, emphasized peer-to-peer communication, multi-language support (such as C++, , and ), and integration with existing tools like and . Their efforts resulted in a thin, tools-based under the BSD license, designed for distributed, large-scale applications. A pivotal milestone came in May 2009 with the presentation of the seminal ROS paper at the IEEE International on Robotics and (ICRA), co-authored by Quigley et al., which detailed the system's core features: over 400 message types for asynchronous data exchange, a computation graph model for node orchestration, and extensibility for multi- coordination. This publication, alongside Willow Garage's development of the PR1 personal prototype, solidified ROS as a practical framework rather than a theoretical exercise. By 2010, ROS 1.0 was released, providing stable libraries for , , and , and it quickly gained traction in and research. The era's hardware flagship, the PR2 mobile manipulator , was introduced in a beta program on May 27, 2010, with 11 units distributed to leading institutions at approximately $400,000 each; the PR2 served as a standardized for ROS, demonstrating capabilities like object and autonomous in real-world environments. Willow Garage also initiated the ROS-Industrial (ROS-I) consortium in collaboration with partners like Yaskawa Motoman and , extending ROS to manufacturing applications. Community expansion was a hallmark of this period, driven by 's internship program, which began with one participant in 2007 and scaled to 140 interns from top global universities and labs by 2013. These interns, often tasked with PR2 integration and ROS module development, became key evangelists, returning to their institutions to teach and implement the , effectively "spreading" its adoption organically. This effort, combined with public code repositories and forums, fostered a vibrant ecosystem, with ROS contributions surging as users built reusable packages for tasks like (SLAM) and arm navigation. By late 2013, as shifted toward commercialization and spin-offs, ROS had matured into a , boasting hundreds of nodes and libraries that powered diverse projects worldwide, setting the stage for its transition to broader stewardship.

Open Robotics and Modern Evolution (2013–Present)

In 2013, Willow Garage transitioned the stewardship of ROS to the Open Source Robotics Foundation (OSRF), a nonprofit organization established (and incorporated as a 501(c)(3) entity) to support the development, distribution, and adoption of open-source robotics software; OSRF was renamed Open Robotics in 2017. This shift provided a stable, community-driven home for ROS beyond corporate dependencies, fostering broader collaboration among researchers, educators, and industry. In 2022, Intrinsic acquired Open Source Robotics Corporation (OSRC), the for-profit commercial arm of Open Robotics, while the nonprofit continued to steward core projects like ROS. This culminated in the release of ROS Indigo Igloo in July 2014, which served as a key bridge distribution for ROS 1, introducing improvements in stability and cross-platform support while laying groundwork for future enhancements like ROS 2. ROS 2 was announced in 2014 to overcome ROS 1's limitations, including lack of capabilities, challenges in multi-robot systems, and reliance on a single-threaded . Development emphasized , quality-of-service policies, and integration with modern middleware like for better reliability in embedded and distributed environments. The first official ROS 2 release, Ardent Apalone, arrived in December 2017, marking the initial stable implementation with support for 16.04, macOS, and Windows, and focusing on core features like improved security and lifecycle management. The 2020s brought significant milestones in ROS 2's maturation, with Humble Hawksbill released in May 2022 as the second long-term support (LTS) distribution, offering five years of maintenance until May 2027 and native compatibility with 22.04 to enhance production-grade deployments. Jazzy Jalisco followed in May 2024 as the next LTS release, supported until May 2029, with advancements in performance and ecosystem integration for 24.04. The latest short-term release, Kilted , launched in May 2025 and extends support through November 2026, including optimized compatibility with 24.04 for accelerated cycles; concurrently, ROS 1's Noetic Ninjemys reached end-of-life on May 31, 2025, signaling a full pivot to ROS 2. Recent developments have deepened ROS 2's integration with and frameworks, exemplified by 's Isaac ROS suite from 2023 to 2025, which provides GPU-accelerated packages for , , and tasks, enabling low-latency processing on edge devices like Jetson platforms. At ROSCon 2025, highlights included advancements in open observability through Canonical's stack for scalable ROS 2 monitoring on and hardware, alongside collaborations with Intrinsic to enhance ROS workflows for grippers, cameras, and OpenUSD integration in robotics applications.

Design and Architecture

Core Philosophy

The Robot Operating System (ROS) is designed around a philosophy that prioritizes flexibility, reusability, and community-driven innovation in robotics software development, emerging from the need for modular systems identified during early research at Stanford's Artificial Intelligence Laboratory. This approach treats ROS not as a monolithic operating system but as a middleware framework that enables developers to compose complex robotic applications from loosely coupled components, fostering rapid prototyping and adaptation across diverse hardware and algorithms. Central to ROS's philosophy is , where software is constructed as independent, reusable packages that encapsulate specific functionalities, such as perception or , allowing developers to mix and match components without tight interdependencies. This is achieved through a microkernel-like that promotes fine-grained into small, autonomous processes, reducing complexity and enabling easy extension or replacement of individual elements. In ROS 2, this principle is further reinforced by enforcing the UNIX of "making each program do one thing well" across , message definitions, and ecosystem tools, ensuring high substitutability and vendor . Abstraction layers form another cornerstone, shielding high-level algorithms from low-level hardware and system details by providing unified interfaces for sensors, actuators, and computation resources. For instance, ROS offers that standardizes access to diverse devices like cameras or LIDARs, allowing algorithms to operate portably without reconfiguration for specific implementations. This layered design minimizes intrusion, encouraging the development of standalone libraries that can be integrated seamlessly, thereby accelerating in areas like autonomous . The decentralized approach eliminates reliance on a central controller, instead facilitating communication among distributed nodes to enhance in multi-robot or heterogeneous environments. By avoiding single points of failure and central servers—such as the roscore in early ROS versions—this model supports efficient resource utilization in large-scale systems, with ROS 2 advancing it through standards like for robust, and . Underpinning these principles is an open-source ethos, licensed under permissive terms like BSD for ROS 1 and Apache 2.0 for ROS 2, which explicitly encourages forking, modification, and community contributions without . This fosters a vibrant where users can inspect, debug, and extend the freely, driving widespread adoption through shared packages and tools available via repositories like ros.org.

Computation Graph Model

The Robot Operating System (ROS) models applications as a directed , where individual processes, known as nodes, serve as vertices that perform specific computations such as data processing or . Edges in this represent communication channels between nodes, primarily through publish-subscribe topics for asynchronous data exchange or services for synchronous request-response interactions, enabling a . This structure supports asynchronous and distributed execution, allowing nodes to operate independently across multiple machines without centralized coordination beyond name resolution. The computation in ROS is dynamic, permitting nodes to be created, destroyed, or restarted at without disrupting the overall , which facilitates modular and real-time adaptations in robotic applications. Tools such as rosgraph provide capabilities, offering a textual representation of the current , including active nodes and their connections, to aid in and . This flexibility contrasts with static architectures, as altering the simply involves starting or stopping processes via command-line tools like rosrun or roslaunch. A key advantage of the computation graph model is its inherent ; the nature of nodes ensures that a in one component, such as a sensor node crashing, does not propagate to halt the entire system, promoting robustness in complex robotic setups. Additionally, the model enables easy scaling by allowing developers to add or distribute nodes across resources, supporting the of large-scale, modular systems for tasks like autonomous navigation. Unlike traditional operating systems that rely on kernel-level process scheduling and , ROS employs an event-driven through its publish-subscribe messaging, where computations are triggered by data availability rather than fixed schedules. The framework lacks a central for low-level , instead providing a lightweight communications layer atop host operating systems to handle inter-process interactions in heterogeneous environments.

Core Components

Nodes and Processes

In the Robot Operating System (ROS), nodes represent the fundamental executable units that perform specific computational tasks, such as processing , controlling actuators, or managing input/output operations. These s are lightweight processes, typically implemented as standalone executables written in languages like C++ or , and they operate within the broader ROS computation graph where they connect via communication mechanisms. For instance, a might handle range-finding by reading inputs and publishing processed , while another controls wheel motors based on commands. This allows developers to develop, test, and deploy individual components independently. The lifecycle of a ROS node begins with initialization, during which the node registers within the ROS graph. In ROS 1, this involves connecting to the ROS Master—a central registry that coordinates the graph—using ros::init() in C++ (which parses command-line arguments, establishes a unique node name, and registers with the master) or rospy.init_node() in Python, often with options like anonymous naming to avoid conflicts in multi-instance scenarios. In ROS 2, initialization uses client libraries like rclcpp (C++) or rclpy (Python), built on the underlying ROS Client Library (rcl), with rclcpp::init(argc, argv) or rclpy.init(args) to set up the environment, followed by creating a node instance such as rclcpp::Node::make_shared("node_name") or rclpy.create_node("node_name"); discovery is distributed via DDS middleware without a central master. Once initialized, the node enters its main execution phase through "spinning," an event loop that continuously checks for and invokes callbacks triggered by incoming messages, timers, or services. In ROS 1, this is implemented as ros::spin() in roscpp or rospy.spin() in rospy, ensuring responsive handling of asynchronous events without blocking the node's core logic. In ROS 2, spinning uses rclcpp::spin(node) or rclpy.spin(node) to process callbacks via executors. Shutdown occurs gracefully upon receiving a signal like SIGINT (e.g., Ctrl+C), invoking ros::shutdown() or rospy.signal_shutdown() in ROS 1, or rclcpp::shutdown() / rclpy.shutdown() in ROS 2, to unregister from the graph, clean up resources, and execute any registered shutdown hooks, preventing abrupt termination. ROS supports flexible execution models for nodes, particularly through integration with client libraries that enable multi-threaded operation to handle concurrent callbacks efficiently. In ROS 1, the roscpp provides multi-threaded , such as ros::MultiThreadedSpinner (which blocks and uses a configurable number of threads, defaulting to the number of CPU cores) or ros::AsyncSpinner (non-blocking with explicit start/stop control), allowing callbacks to be processed in parallel queues to avoid bottlenecks in time-sensitive applications; rospy relies on Python's threading capabilities but typically uses a single-threaded spin by default, though developers can implement custom multi-threading for callbacks. In ROS 2, multi-threading is managed via executors, such as rclcpp::executors::MultiThreadedExecutor in rclcpp (configurable threads for parallel callback processing based on callback groups) or similar in rclpy, supporting reentrant or mutually exclusive groups for . Nodes integrate seamlessly with these libraries to manage their internal state, ensuring that computation, I/O, and control tasks remain isolated yet interconnected within the graph. Best practices for ROS nodes emphasize and robustness to maintain system reliability. Developers should design one node per distinct functional unit—for example, a dedicated reader to handle acquisition separately from a path planner that processes it—to facilitate reusability, , and parallel . Error handling is critical, with nodes expected to propagate issues via exit codes (e.g., non-zero for failures) and log messages through ROS's logging system, allowing supervisors like roslaunch (ROS 1) or launch (ROS 2) to detect and respond to faults without crashing the entire graph. This approach ensures that nodes remain lightweight and fault-tolerant, aligning with ROS's philosophy of distributed, composable software.

Topics and Messaging

In the Robot Operating System (ROS), topics provide a fundamental mechanism for asynchronous, many-to-many communication between nodes using a publish-subscribe (pub-sub) model. Publishers send messages to a named topic without of subscribers, while subscribers receive messages from topics they are interested in, enabling between data producers and consumers. This unidirectional streaming approach is ideal for continuous flows, such as sensor readings or robot poses, where real-time responsiveness is key but request-response interactions are not required. Messages exchanged over topics are structured as typed packets, ensuring interoperability; for instance, the sensor_msgs/[Image](/page/Image) message type encapsulates pixel , timestamps, and for camera feeds. The implementation of topics relies on a centralized registry in ROS 1, where the ROS Master maintains a list of active topics, publishers, and subscribers to facilitate connections. Nodes register their publications and subscriptions with the Master, which then brokers peer-to-peer links, but the Master does not relay data itself. Transport occurs over TCP-based TCPROS for reliable delivery or UDP-based UDPROS for low-latency, potentially lossy scenarios like teleoperation, with automatic negotiation between endpoints. In contrast, ROS 2 eliminates the single-point-of-failure Master in favor of the Data Distribution Service (DDS) middleware, which handles decentralized discovery and topic matching through built-in participant discovery protocols. ROS 2 also introduces intra-process communication optimizations, allowing publishers and subscribers within the same process to exchange data directly via shared memory, reducing latency and overhead compared to inter-process networking. Both versions support QoS (Quality of Service) policies in ROS 2 for fine-tuning reliability, durability, and history depth, though ROS 1 uses simpler transport-layer defaults. Messages in ROS are defined using plain-text .msg files located in a package's msg/ , specifying fields with primitive types (e.g., int32, float64), , or nested custom messages, along with optional constants for semantic interpretation. These files undergo into a compact format for efficient transmission: built-in types like integers are packed directly, while variable-length are prefixed with their size, and strings use null-termination. Client libraries then generate language-specific code—such as with constructors and accessors or objects with slots—for seamless integration, ensuring via checksums that verify message definitions across nodes. For example, a scan might use sensor_msgs/LaserScan.msg to define ranges as a float32[] , allowing standardized from drivers. This promotes reusability, as standard message packages like sensor_msgs and geometry_msgs are widely adopted across the ROS ecosystem. Common use cases for topics include streaming real-time sensor data, such as point clouds published at high frequencies to enable simultaneous and in multiple s, without requiring producers to track individual consumers. This allows modular system design: a camera node can publish images to /camera/image_raw while vision algorithms, display tools, and storage subsystems subscribe independently, scaling effortlessly as the robot's complexity grows. In practice, topics like /scan for ultrasonic or rangefinders exemplify how ROS handles bursty, high-volume data streams in applications, from autonomous vehicles to manipulators.

Services and Parameters

In the Robot Operating System (ROS), services provide a synchronous communication mechanism between s, enabling a client-server model for remote calls (RPC) where a client sends a request to a , which processes it and returns a response. This contrasts with asynchronous topic-based messaging by allowing blocking calls that wait for immediate results, suitable for short-lived, on-demand interactions such as querying sensor status or triggering a one-time . Service interfaces are defined in .srv files, which specify the structure of the request (input ) and response (output ), often using standard ROS types for . Clients can implement timeouts during service calls to handle unavailability, typically via methods like waitForService with a specified duration, and receive error codes such as service_not_found or transport errors to manage failures gracefully. The parameter server in ROS 1 operates as a centralized, shared key-value store accessible via XML-RPC protocols, allowing nodes to dynamically set and retrieve configuration values at runtime without recompiling code. Parameters support various data types including integers, floats, booleans, strings, lists, and dictionaries, and are commonly used for non-message-based settings like robot speed limits, joint tolerances, or algorithm thresholds that persist across node executions. In contrast to services, parameters focus on persistent, global or namespaced configuration rather than transient request-response exchanges, enabling flexible runtime adjustments through tools like rosparam for loading YAML files or direct API access. Services and parameters differ fundamentally in their interaction patterns: services facilitate ephemeral, bidirectional RPC for computational tasks, while parameters serve as a durable store for declarative tuning, often integrated in hybrid systems where parameter values influence topic-published data. In ROS 2, shift to a distributed model tied directly to individual nodes via underlying service calls over , eliminating the single-point-of-failure central server of ROS 1 and enhancing scalability in multi-node environments. ROS 2 further improves for both services and parameters through DDS plugins, supporting , , and fine-grained access controls to protect sensitive configurations and calls in distributed robotic systems.

Tools and Utilities

Visualization and Debugging Tools

RViz serves as the primary 3D visualization tool within the Robot Operating System (ROS), enabling users to render and interact with data published on ROS topics in , such as point clouds from sensors, robot kinematic models via URDF descriptions, and transform trees using the tf system. It supports a plugin-based that allows for the creation and integration of custom display types, facilitating tailored visualizations for specific robotic applications without modifying the core tool. For instance, built-in displays handle common message types like geometry_msgs/PointCloud2 for laser scan data or visualization_msgs/Marker for overlaying annotations on the scene. The rqt suite provides a modular graphical user interface (GUI) framework for ROS, composed of extensible plugins that address various introspection and debugging needs beyond 3D rendering. Key components include rqt_plot, which generates time-series plots from numerical topic data to monitor variables like joint positions or sensor readings over time, and rqt_console, a log viewer that filters and displays debug, info, warn, and error messages from ROS nodes in a searchable interface. Additional plugins such as rqt_graph offer node-topic connection diagrams for inspecting the runtime computation graph, while the framework's plugin system enables community contributions for specialized tools like image viewers or parameter editors. Debugging workflows in ROS leverage these tools for iterative development and troubleshooting, starting with real-time graph inspection via rqt_graph to verify node communications and topic publications, followed by targeted data examination using rviz for spatial validation or rqt_plot for temporal analysis. Topic echoing, often integrated through rqt's bag playback or console plugins, allows verification of message contents without halting the system, enabling developers to confirm data integrity during live operations. While rviz and rqt originated in ROS 1 and remain central to its ecosystem, their adaptations for ROS 2—such as rviz2—address distributed system challenges, though full feature parity is achieved through integrations like Foxglove Studio, an open-source tool for enhanced ROS 2 data streaming and multi-panel layouts. This evolution mitigates limitations in legacy tools for real-time, multi-robot debugging in modern, real-time constrained environments.

Build, Launch, and Data Management Tools

The build systems in ROS facilitate the compilation and management of packages within a workspace, enabling developers to handle dependencies and generate executables efficiently. In ROS 1, serves as the primary build system, which is CMake-based and designed to simplify the generation, compilation, and linking of code across multiple packages. Every package requires a package.xml to declare , dependencies, and build types, alongside a CMakeLists.txt file that defines the build instructions. workspaces are structured with a source space (src directory) for package code, and separate build, (devel), and install spaces to isolate compilation artifacts and setup files. For ROS 2, colcon replaces as the meta-build tool, supporting diverse build types such as ament_cmake for C++ packages and ament_python for ones, while maintaining compatibility with package.xml for dependency specification. Colcon builds an entire workspace in a single invocation via the colcon build command, creating isolated build, install, and log directories to avoid conflicts and enable parallel compilation. This approach allows for flexible handling of mixed-language packages and third-party dependencies resolved through tools like rosdep. Launch tools in ROS automate the startup of complex node configurations, including parameter setting and topic remapping, often in a single command. In ROS 1, roslaunch processes XML-based .launch files to spawn nodes, load parameters onto the parameter server, and handle remappings, with support for conditional execution via arguments and environment variables. It enables multi-machine deployments by specifying a machine attribute in node tags, which uses SSH to launch processes remotely after verifying network connectivity via ROS_MASTER_URI and ROS_HOSTNAME. Parameters can be loaded at launch time through <param> or <rosparam> tags in these files. In ROS 2, the ros2 launch system extends this functionality with support for Python, XML, and formats, promoting composability through actions like including sub-launches and declaring launch configurations for reusability. It focuses on declarative descriptions to configure and start multiple nodes simultaneously, with built-in substitutions for dynamic values like package paths, though multi-machine launching typically relies on shared domains via ROS_DOMAIN_ID rather than native SSH integration. Data management tools in ROS handle the recording and playback of communication data for debugging, analysis, and simulation. For ROS 1, rosbag provides command-line utilities to record messages from topics and services into bag files, which follow the format consisting of serialized chunks with optional (e.g., BZ2 or LZ4) to reduce while preserving timestamps and connection details. Playback with rosbag play replays messages at recorded rates or accelerated, supporting filtering by topic or time. ROS 2's rosbag2 enhances this with ros2 bag record and ros2 bag play commands, storing in modular storage formats like SQLite3 or MCAP, and offering compression options such as Zstandard or LZ4 for efficient handling of large datasets from topics, services, and actions. Bag files include for QoS policies and serializations, enabling selective playback and with analysis tools without altering the original recordings. The typical workflow for ROS applications begins with checking out into a workspace's src directory using like , followed by resolving dependencies with rosdep install to ensure all required packages are available. Building proceeds with catkin_make for ROS 1 workspaces, which initializes the devel space and generates setup scripts, or colcon build for ROS 2, which overlays the install space for isolated . Developers then source the generated setup.bash file to update the , allowing execution of launch files for deployment, including multi-machine setups where environment variables like ROS_MASTER_URI or ROS_DOMAIN_ID coordinate across hosts. This process supports iterative from prototyping to production deployment.

Notable Packages and Libraries

The Robot Operating System (ROS) provides a comprehensive stack for mobile robots, enabling autonomous movement in known or unknown environments by integrating localization, , and planning. At its core is the move_base , which serves as the primary for sending goals and generating commands while ensuring avoidance. This combines a global planner to compute high-level from the current pose to a target location and a local planner to execute short-term trajectories that follow the global reactively. The stack relies on costmaps—layered 2D representations of the environment that incorporate sensor data such as laser scans and to mark , inflation zones around them, and free space—allowing planners to evaluate feasibility and safety. For instance, the global planner uses algorithms like the A* search, which efficiently finds an optimal by balancing path cost and heuristic estimates of distance to the goal on a discretized grid derived from the global costmap. Similarly, the local planner often employs the Dynamic Window Approach (DWA), which samples feasible velocities within the robot's dynamic constraints, simulates short trajectories, and selects the one that maximizes progress toward the global plan while minimizing collision risk, typically using data for real-time detection. Mapping in ROS supports simultaneous localization and mapping (SLAM) through dedicated packages that build grid maps from sensor inputs. The gmapping package implements a Rao-Blackwellized particle filter-based , processing sequential laser scans and to incrementally construct 2D maps while estimating the robot's pose; it outputs an grid where cells are marked as free, occupied, or unknown based on scan matching and particle resampling. For more robust applications, cartographer provides real-time 2D and 3D using loop closure detection via branch-and-bound scan matching, enabling consistent maps in large or looped environments by fusing data with inertial measurements; it supports both backpack and robot-mounted configurations for high-fidelity submap generation. These mapping tools integrate directly with the stack by publishing map data to topics like /map, which the costmaps and planners subscribe to for environmental awareness. Localization complements mapping by estimating the robot's pose within a pre-built , primarily through the Adaptive Monte Carlo Localization (AMCL) package, which uses a to represent pose uncertainty as a set of weighted particles. AMCL adapts the number of particles dynamically via Kullback-Leibler divergence sampling to balance accuracy and efficiency, updating estimates from scans matched against the map and for motion prediction; it typically initializes with 100–5000 particles and converges to a Gaussian-distributed pose estimate with . This probabilistic approach handles drift and sensor noise effectively, publishing the localized pose via transforms (e.g., map to odom) that the stack uses to align global plans with the robot's frame. Integration with sensors like ensures robust performance in 2D environments, where scan-to-map alignment refines particle weights. In ROS 2, the navigation capabilities evolve with Nav2, a modular successor to the ROS 1 stack designed for production-grade systems, replacing move_base with a distributed of servers for , , and . Nav2 maintains core elements like costmaps and planners but enhances through behavior trees, which orchestrate navigation tasks as composable nodes—such as computing a global path, following it locally, or triggering recoveries like obstacle clearance—allowing users to customize behaviors without recompiling code. This tree-based structure supports complex missions, like multi-goal , by sequencing plugins for global (e.g., A*-inspired variants) and local (e.g., DWA extensions), while integrating and localization packages ported from ROS 1 for seamless .

Perception and Manipulation

In the Robot Operating System (ROS), involves processing raw data from cameras and depth sensors to enable robotic systems to interpret their , while focuses on and executing actions for robotic arms to interact with objects. Key packages facilitate these tasks by bridging hardware inputs to higher-level algorithms, supporting applications from to precise grasping. Perception pipelines in ROS begin with preprocessing raw image data, where the image_pipeline package handles essential operations such as camera calibration, , and color processing to correct distortions and prepare data for analysis. This package bridges the gap between camera drivers and advanced vision tasks, ensuring undistorted images for downstream processing like stereo vision or feature extraction. For 3D perception, the PCL (Point Cloud Library) integrates via the pcl_ros package, providing tools for filtering, segmentation, and to process depth data from sensors like RGB-D cameras. OpenCV, a core library, is integrated through packages like cv_bridge for converting ROS image messages to OpenCV formats and vision_opencv for real-time functions such as and image transformations, enabling efficient perception nodes. Manipulation in ROS relies on motion planning frameworks to generate safe, feasible trajectories for robotic arms. The MoveIt! package serves as the primary tool, incorporating (IK) solvers like IKFast for computing joint configurations from end-effector poses and collision checking via the PlanningScene interface to avoid obstacles during . Grasp planning libraries extend these capabilities; for instance, MoveIt's built-in grasping modules, including moveit_grasps, generate candidate grasp poses from data, often using antipodal grasp heuristics for parallel-jaw grippers. Central to perception are concepts like feature detection and , where algorithms such as (Oriented FAST and Rotated BRIEF) extract robust keypoints from images via integrations for tasks like matching and localization. builds on this by employing methods in packages like object_recognition_core, which clusters features (e.g., using or Hough transforms) to identify and localize known objects in scenes. For manipulation execution, trajectories generated by are sent to controllers like joint_trajectory_controller, which uses position feedback from encoders to implement closed-loop , ensuring accurate tracking and error correction during arm movements. ROS-Industrial extends these features for manufacturing environments, providing drivers and tools for industrial arms; notably, the universal_robot package integrates with Universal Robots via URScript, a that allows ROS nodes to upload and execute custom programs for precise control in assembly tasks.

Simulation and Specialized Systems

Gazebo serves as a primary physics-based simulator in the ROS , enabling realistic multi-robot simulations by integrating high-fidelity physics engines, rendering, and sensor models to test robotic behaviors in virtual environments. Developed as an open-source tool, it supports multi-robot scenarios and pairs with ROS distributions like Humble through dedicated packages, allowing developers to spawn worlds, models, and plugins without physical hardware. Key to its utility is the ability to simulate dynamics such as collisions, gravity, and sensor noise, facilitating iterative development for applications ranging from mobile manipulation to . As the successor to Gazebo Classic for ROS 2, Ignition Gazebo—now unified under Gazebo Sim—provides enhanced modularity and performance, replacing legacy plugins with a bridge-based architecture using the ros_gz package for seamless topic and service communication. This transition involves updating launch files and model descriptions to leverage SDFormat (SDF) files, which offer more robust simulation parameters compared to earlier versions, ensuring long-term support for distributions like Humble and Jazzy. Migration tools and examples, such as those for TurtleBot3 simulations, demonstrate how to adapt existing packages by configuring bridges for topics like joint states and transforms, minimizing disruptions in ROS 2 workflows. Robot models in ROS simulations rely on the Unified Robot Description Format (URDF), an XML-based standard for defining kinematic structures, joints, links, and basic sensors, which parsers convert into runtime representations for tools like RViz and . For advanced simulation, URDF files extend to via Gazebo-specific tags, incorporating physics properties, lighting, and environmental interactions that URDF alone cannot specify, thus enabling accurate virtual testing of robot dynamics and collisions. This dual-format approach ensures compatibility across ROS tools while optimizing for Gazebo's physics engine. In specialized domains, ROS-Industrial extends core ROS capabilities to , promoting between industrial robots, controllers, and automation systems through standardized packages for and real-time control. It addresses integration challenges by developing open-source drivers for vendors like ABB and , enabling flexible workflows in assembly lines and quality inspection, with community roadmaps emphasizing code quality and for industrial deployment. Demonstrations, such as multi-robot blending projects, highlight its role in reducing custom integration costs, which can otherwise exceed expenses by factors of 2 to 5. Space ROS, a NASA-led of ROS 2, tailors the framework for orbital and extraterrestrial , incorporating fault-tolerant communications via to handle , , and microgravity in environments like the . Used in systems such as 2 and Astrobee free-flyers, it enforces standards like NASA-STD-3001 for safety and determinism, with features for strict and cybersecurity to support autonomous operations in low-gravity or dusty conditions. Collaborations with ensure verifiable software for missions, including the VIPER lunar rover's ground node. For aerial applications, the stack integrates with ROS through MAVROS, a package that translates protocol messages into ROS topics and services, enabling offboard control, , and mission planning for drones. This bridge supports real-time communication between PX4 flight controllers and ROS nodes, as seen in examples for setpoint commands and geographic handling via GeographicLib datasets. It facilitates hybrid setups where ROS handles high-level while PX4 manages low-level flight stability. AI integrations in ROS 2, such as the ros_deep_learning package, embed inference nodes for tasks like and segmentation, leveraging TensorRT on Jetson platforms to process camera streams in real-time ROS workflows. These nodes support custom-trained models from frameworks like , allowing simulation-to-real transfer for perception-heavy applications, with compatibility across ROS 2 distributions via containerized deployments. By November 2025, Isaac Sim has advanced ROS 2 bridges with GPU-accelerated in version 5.0, adding support for Jazzy and optimized interfaces for generation in multi-robot scenarios. Updates include enhanced Interfaces for Humble and Jazzy, enabling faster physics rendering and sensor on RTX hardware. This facilitates scalable training of AI-driven robots in photorealistic environments.

Releases and Versions

ROS 1

ROS 1, the original iteration of the Robot Operating System, features a centralized centered around the , a process that serves as a directory for registering and discovering nodes, topics, services, and parameters within the ROS computation graph. The facilitates name resolution and connection negotiation among distributed nodes but does not handle data transmission itself; instead, nodes communicate directly via / for topics and for services and parameters, enabling messaging once discovery is complete. This design promotes and for multi-node systems but introduces a on the 's for initial setup. The development of ROS 1 spanned multiple distributions, starting with released on March 2, 2011, which introduced enhanced stack organization and support for over 120 packages including Kinect drivers. Subsequent releases built incrementally, culminating in Noetic Ninjemys on May 23, 2020, the final ROS 1 distribution, which fully transitioned to 3 support to align with modern language standards and deprecate Python 2. Noetic targeted 20.04 and emphasized compatibility improvements for legacy codebases. ROS 1 reached its end-of-life on May 31, 2025, marking the cessation of official updates and support from . ROS 1's strengths lie in its mature ecosystem, encompassing thousands of reusable packages contributed over a decade, covering areas from to , which accelerates prototyping and deployment in and . This vast repository, hosted on the official ROS package index, includes battle-tested libraries like those for (SLAM), fostering widespread adoption in academic and industrial . However, it has notable weaknesses, including the absence of built-in real-time guarantees, which limits its suitability for time-critical applications requiring deterministic . Additionally, the single-master design creates bottlenecks, as the central server can become a point of failure or limiter in large, distributed systems with high counts. For ongoing projects, migration to ROS 2 is recommended, but bridges enable hybrid deployments where ROS 1 nodes interoperate with ROS 2 systems via the official package, which dynamically translates messages between the two versions over a shared network. This allows incremental transitions, maintaining viability for non-critical applications even post-EOL by leveraging community-maintained extended support.

ROS 2

ROS 2 represents a major redesign of the Robot Operating System, addressing limitations in scalability, reliability, and real-time performance identified in ROS 1. Developed by the Open Source Robotics Foundation (OSRF), it shifts from a centralized to a decentralized one, enabling better support for distributed and real-time robotic systems. This evolution was driven by the need for industrial-grade robustness, with initial development starting in 2014 and the first stable release in 2019. By 2025, ROS 2 has achieved widespread adoption in research and industry, particularly following the end of life for ROS 1 on May 31, 2025, which accelerated migrations across the . At its core, ROS 2 employs the (DDS) as its layer, utilizing the Publish-Subscribe (RTPS) wire protocol for , , and communication between nodes. This eliminates the need for a central master node present in ROS 1, allowing nodes to autonomously discover and connect to each other in a manner, which enhances and in multi-robot or distributed environments. DDS implementations, such as eProsima Fast DDS, provide quality-of-service (QoS) policies that support real-time constraints, making ROS 2 suitable for safety-critical applications like autonomous vehicles. The architecture also facilitates across different DDS vendors, ensuring flexibility in deployment. Key enhancements in ROS 2 include improved security through SROS 2 (Secure ROS 2), which integrates DDS-Security plugins for encryption, authentication, and to protect communications in untrusted networks. It offers native support for multiple platforms, including and later, allowing direct installation without emulation layers like , thus broadening accessibility for developers in mixed environments. Composable nodes enable multiple ROS 2 nodes to run within a single process, reducing overhead and improving performance for resource-constrained systems by leveraging . These features, combined with tools like the ros2 (CLI) for node management and colcon for building workspaces, streamline development and deployment. Ecosystem migration tools, such as automated code converters and compatibility layers, have supported the transition from ROS 1 packages. ROS 2 follows a structured release cycle defined in REP 2000, with annual distributions released on May 23 to align with . (LTS) versions occur biennially in even-numbered years and receive five years of maintenance, while standard releases receive 1.5 years; for example, Humble Hawksbill (2022) is an LTS supported until 2027, Jazzy Jalisco (2024) until May 2029, and (May 2025) until November 2026. This cadence ensures regular updates while providing stability for use, with rolling development branches incorporating the latest features. is the most recent distribution as of November 2025. As of late 2024, downloads indicate approximately 80% adoption of ROS 2 within the community.

Specialized Variants

ROS-Industrial represents a domain-specific extension of the Robot Operating System tailored for environments, enabling the of ROS capabilities with robots and systems. Developed as an open-source initiative, it facilitates the use of ROS in production settings by providing interoperability between diverse robotic platforms and higher-level software stacks. A key feature of ROS-Industrial is its support for converting CAD models into ROS-compatible formats, such as URDF and SRDF files, through projects like CAD to ROS, which streamline the import process for industrial users by prioritizing essential data like and . This extension addresses limitations in standard URDF by incorporating annotations and structured imports, allowing seamless transition from design software to simulation and control. Safety integration is a core aspect, with ROS-Industrial incorporating protocols and components compliant with standards to ensure human-robot in . For instance, it supports safety systems like those from Pilz, which build protective layers around ROS-based mobile manipulators, and includes concepts for surveillance using RGBD cameras and distance sensors to monitor shared workspaces. Space ROS comprises variants developed by and partners, including the (JPL), to adapt ROS for autonomous space systems, emphasizing reliability in harsh environments. It serves as a based on ROS 2 for in space missions, supporting reusable software for tasks. Notable implementations include the cFS-ROS bridge, which integrates NASA's Core Flight System (cFS) flight software with ROS 2, enabling data sharing between legacy spacecraft systems and modern middleware; this has been prototyped for missions requiring hybrid architectures. Space ROS also incorporates radiation-hardened communication protocols to withstand cosmic radiation, alongside autonomy features for rover navigation, with adaptations tested in simulations drawing from missions like , where similar self-driving systems enhance terrain traversal. Micro-ROS extends ROS 2 to resource-constrained microcontrollers, bridging embedded devices with larger ROS ecosystems for distributed robotic applications. Introduced in 2020, it allows microcontrollers to run full ROS 2 entities like publishers and subscribers, supporting platforms such as and Renesas series through cross-compilation tools. Ports of Micro-ROS align with ROS 2 distributions like Foxy, enabling embedded deployments in real-time operating systems, while earlier efforts explored compatibility with ROS 1 variants such as Melodic for legacy embedded systems. As of 2025, specialized ROS variants are increasingly incorporating capabilities, with ROS 2 integrations supporting lightweight frameworks like Lite for edge-based in , facilitating on-device for and tasks.

Compatible Hardware and Platforms

Supported Robots

The Robot Operating System (ROS) supports a diverse array of robot platforms, ranging from educational mobile bases to advanced industrial manipulators, through official drivers, community-maintained packages, and manufacturer-provided integrations. These platforms leverage ROS's modular architecture for tasks such as , , and control, enabling seamless across hardware. Support is typically documented in ROS wikis, official repositories, and vendor documentation, with ongoing updates for ROS 2 distributions like Humble and Jazzy. Mobile robots form a of ROS adoption, particularly in and . The TurtleBot series, including TurtleBot3 and TurtleBot4, is a low-cost, open-source designed for ROS development, with official support for ROS 1 Noetic and ROS 2 Humble/Jazzy, facilitating applications in mapping and localization. The PR2, a legacy mobile manipulator from , was built entirely with ROS software, providing foundational capabilities for manipulation and serving as a for early ROS ecosystems. Clearpath Robotics' and s excel in outdoor navigation, with full ROS 2 integration via ros2_control, supporting models like Husky A200/A300 and Jackal for rugged environments. Industrial robots benefit from ROS's real-time extensions for collaborative applications. The Universal Robots UR series, including CB3 and e-Series cobots, uses an official ROS 2 driver for precise trajectory control and safety features, supporting integration for manipulation tasks. As of 2025, ROS 2 drivers have expanded to advanced quadruped platforms like ' Spot, with community packages such as spot_ros2 providing , , and sensor interfaces via the Spot SDK. These integrations often reference navigation stacks like Nav2 for enhanced across platforms.

Single-Board Computers and Components

Single-board computers (SBCs) play a crucial role in ROS deployments for , enabling compact, low-power processing on robots. The and 5 series are popular choices due to their architecture, GPIO pins for direct interfacing with peripherals, and compatibility with , which supports ROS 2 installations. These boards facilitate GPIO-based control for tasks like pin toggling and sensor actuation, making them suitable for prototyping and lightweight applications. For AI-intensive tasks, the Orin series offers GPU acceleration and native ROS 2 support through dedicated packages developed by NVIDIA, allowing seamless integration of models in pipelines. These SBCs handle on resource-constrained platforms, with JetPack SDK providing optimized environments for ROS 2. efficiency remains a key consideration, as Jetson boards can consume up to 60W under load, necessitating robust in mobile robots. Sensors compatible with ROS include depth cameras like the RealSense D400 series, which feature official ROS wrappers for publishing RGB-D data, point clouds, and IMU readings via topics. Hokuyo sensors, such as the UTM-30LX, are supported through the urg_node driver, which wraps the official urg_c library for SCIP 2.0 protocol communication over USB or serial. Inertial measurement units (IMUs), including the Bosch BNO08x, connect via I2C or interfaces using drivers like bno08x_driver, enabling fusion of , , and data for orientation estimation. Actuators in ROS ecosystems often leverage Dynamixel servos, with the official Dynamixel SDK providing C-based wrappers for protocol 2.0 control, integrated into ROS via packages like dynamixel_sdk for multi-servo chaining and / commands. Roboteq motor controllers, such as the SDC series, use dedicated ROS drivers for or CAN communication, publishing motor status like voltage and current while supporting velocity and control modes. These components integrate through the ros2_control framework, which defines hardware interfaces for actuators and sensors, ensuring modular plugin-based abstraction. Real-time performance on SBCs requires considerations like preemptible kernels; for instance, ROS 2 on benefits from real-time patches to achieve deterministic latencies under 1ms for control loops, though full hard guarantees depend on hardware isolation. Power budgeting is critical, as and actuation can draw 5-10W on Pi boards, impacting battery life in untethered systems. These elements enable ROS to run efficiently on edge devices without compromising responsiveness.

Ecosystem and Impact

Community and Contributions

The ROS community is organized around collaborative online platforms that facilitate discussion, development, and coordination among global contributors, including engineers, researchers, and hobbyists. The primary forum for these interactions is the Discourse, a centralized platform where users post questions, share updates, and collaborate on ROS-related topics ranging from core development to application-specific advice. Development and distribution management occur primarily through GitHub repositories under the official ROS organization, with the ros/rosdistro repository serving as a key resource for maintaining lists of packages and repositories across ROS distributions, enabling synchronized builds and releases. Specialized sub-communities operate via Special Interest Groups (SIGs) and Working Groups (WGs), which address domain-specific challenges; for instance, ROS 2 WGs cover areas like systems, , and tooling to guide targeted improvements. Contributions to ROS follow a structured process centered on Robotics Enhancement Proposals (REPs), which outline ideas for new features, standards, or architectural changes, undergoing community review and approval to ensure consensus-driven evolution. All participants are expected to adhere to the ROS Community , which promotes respectful, inclusive behavior across discussions, events, and code reviews. The annual conference serves as a major venue for in-person collaboration, with the 2025 event held in from October 27 to 29, featuring talks and workshops on advancing ROS with technologies for . Key resources support newcomers and experts alike, including comprehensive tutorials on docs.ros.org that provide step-by-step guidance on installation, node creation, and advanced topics like and . The ROS Answers archive offers a searchable repository for resolving common issues, drawing from historical expertise. Organizational backing comes from via the Open Source Robotics Alliance (OSRA), which allocates funding for infrastructure, , and initiatives, such as a $250,000 grant in 2025 for enhancing ROS tools and resources. In 2025, the community emphasized inclusivity through diversity-focused efforts at events like ROSCon, alongside ongoing updates like the refined REP process launched in October to streamline proposal handling.

Real-World Applications and Case Studies

ROS has found extensive application in industrial automation, particularly in warehouse and factory environments. has deployed over one million autonomous mobile robots in its fulfillment centers as of June 2025, optimizing navigation and task allocation for efficient package handling. The robots utilize ROS for , and while AWS previously provided the ROS-based RoboMaker cloud for , deployment, and , it was discontinued in September 2025 with migrations to services like AWS Batch. Similarly, integrates ROS 2 with its programmable logic controllers (PLCs) through the ROSie connector, enabling real-time data exchange for collaborative in factory settings, such as coordinating industrial arms with production lines. In space exploration, leverages ROS derivatives for rover development and simulation. The Space ROS framework, a ROS 2 adaptation co-developed with , supports flight software for missions like the Volatiles Investigating Polar Exploration Rover (VIPER) on the , providing modular tools for and in harsh environments. The Jet Propulsion Laboratory's Open Source Rover, modeled after the design, utilizes ROS 2 for ground-based testing of mobility, sensing, and control systems. Healthcare applications benefit from ROS integrations in surgical robotics. The da Vinci Research Kit (dVRK), an open-source platform based on Intuitive Surgical's da Vinci system, employs ROS for , , and sensor interfacing, facilitating research into autonomous procedures and feedback. Educational programs worldwide incorporate ROS through accessible hardware like TurtleBot. Universities use TurtleBot kits in undergraduate curricula to demonstrate ROS concepts such as , localization, and , often via Gazebo-integrated projects that bridge theory and hands-on experimentation. As of 2025, ROS powers emerging consumer robotics, exemplified by LG's Self-Driving AI Home Hub demonstrated at ROSCon 2024, which uses ROS 2 interfaces and an open SDK to enable AI-driven navigation and smart home interactions.

References

  1. [1]
    ROS: Home
    ### Summary of ROS from https://www.ros.org/
  2. [2]
    ROS 2 Documentation: Rolling documentation
    Since ROS was started in 2007, a lot has changed in the robotics and ROS community. The goal of the ROS 2 project is to adapt to these changes, leveraging what ...Building a movable robot model · Setting up a robot simulation... · Installation · Tf2Missing: history | Show results with:history
  3. [3]
  4. [4]
    Why ROS?
    ROS (Robot Operating System) is an open source software development kit for robotics applications. ROS offers a standard software platform to developers ...Missing: key features
  5. [5]
    A Decade of Open Robotics
    Mar 22, 2022 · Open Robotics started in 2012, has released many ROS/Gazebo distros, grew to a global community, and now has 50 employees.Missing: history | Show results with:history
  6. [6]
    ROS/Introduction - ROS Wiki
    ### Summary of ROS from http://wiki.ros.org/ROS/Introduction
  7. [7]
    Installation — ROS 2 Documentation: Rolling documentation
    We support building ROS 2 from source on the following platforms: Ubuntu Linux 24.04 · Windows 10 · RHEL-9/Fedora · macOS. Which install should you choose ...Distributions · Ubuntu (deb packages) · Ubuntu (source) · Windows (binary)
  8. [8]
    [PDF] ROS: an open-source Robot Operating System - Stanford AI Lab
    In this paper, we discuss how ROS relates to existing robot software frameworks, and briefly overview some of the available application software which uses ROS.Missing: originated | Show results with:originated
  9. [9]
    Robot Operating System (ROS): Working, Uses, and Benefits
    Feb 13, 2024 · A robot operating system (ROS) facilitates robotics development by providing tools, libraries, and communication structures for modular applications.
  10. [10]
    8 reasons why you should use ROS for robotics projects - Niryo
    The point of ROS is to create a robotics standard, so you don't need to reinvent the wheel anymore when building a new robotic software. So, why should you use ...
  11. [11]
    Why ROS 2?
    ### Benefits of ROS 2
  12. [12]
    Robot Operating System 2: Design, architecture, and uses in the wild
    May 11, 2022 · Robot Operating System 2: Design, architecture, and uses in the wild ... They have deployed thousands of robots worldwide and operate fleets ...
  13. [13]
    2023 ROS Metrics Report - Open Robotics Discourse
    Jan 29, 2024 · The ROS community is healthy and growing, with 550M+ packages downloaded, 58% ROS2 downloads, 19% Discourse post increase, and 87% ROS2 ...Missing: adoption | Show results with:adoption
  14. [14]
    Open Robotics developing Space ROS with Blue Origin, NASA
    Feb 12, 2022 · The Robot Operating System (ROS) been used in space activities for over a decade now. ... space exploration missions. For the SRC, teams were ...
  15. [15]
    On the use of simulation in robotics: Opportunities, challenges, and ...
    We discuss how simulation can help in robotics, barriers that currently prevent its broad adoption, and potential steps that can eliminate some of these ...
  16. [16]
    The Origin Story of ROS, the Linux of Robotics - IEEE Spectrum
    Oct 31, 2017 · Created by a small team at Willow Garage in Silicon Valley, ROS went on to become the world's most influential robotics software platform.
  17. [17]
    A History of ROS (Robot Operating System) - The Construct
    ROS started as a personal project of Keenan Wyrobek and Eric Berger while at Stanford, as an attempt to remove the reinventing the wheel situation.
  18. [18]
    [PDF] hardware and software systems for personal robots a dissertation ...
    Chapter 7: STAIR and Switchyard presents an overview of the STanford AI. Robot (STAIR) project to create a home and office assistant robot, and Switchyard, the ...
  19. [19]
    Robots Using ROS: STAIR 1
    Mar 3, 2010 · Morgan Quigley created the Switchyard framework to provide a robot framework for their mobile manipulation platform, and it was the lessons ...
  20. [20]
    [PDF] STAIR: Hardware and Software Architecture
    Abstract. The STanford Artificial Intelligence Robot (STAIR) project is a long-term group effort aimed at producing a viable home and office assistant robot ...
  21. [21]
    The rise of the Robot Operating System - Red Hat
    Dec 2, 2020 · Previously, Gerkey was director of open source at Willow Garage, the seminal Silicon Valley startup that launched ROS, a collection of libraries ...
  22. [22]
    None
    ### Summary of ROS Origins, Development, Key Features, and Willow Garage Contributors (up to 2009)
  23. [23]
    10th Anniversary Coverage - ROS robotics news
    Nov 8, 2017 · The Origin Story of ROS, the Linux of Robotics​​ "In this post I want to share some untold parts of the early story of the Robot Operating System ...
  24. [24]
    Willow Garage interns were 'the vectors spreading' Robot Operating ...
    May 3, 2015 · Also in 2007, Willow Garage had started an internship program, bringing in one student the first year. But in 2008, just as it took over ROS, ...
  25. [25]
    History — ROS-Industrial
    Things started to change when the Robot Operating System (ROS) – an open-source software platform founded in 2007 by Willow Garage, the Stanford AI Laboratory, ...Missing: originated | Show results with:originated
  26. [26]
    Open Source Robotics Foundation Accelerates ROS Transition ...
    Feb 14, 2013 · One of the goals in establishing OSRF was to provide a long-term home for ROS, and that's where we're headed with this transition. Through ...<|separator|>
  27. [27]
    ROS Indigo Igloo Released! - ROS robotics news
    Jul 22, 2014 · We're pleased to announce the official release of ROS Indigo Igloo! This is the first LTS release of ROS; it will be supported until April 2019 in parallel ...
  28. [28]
    ROS 2 Ardent Apalone released - ROS robotics news
    Dec 13, 2017 · We're happy to announce the ROS 2 release Ardent Apalone! Installation instructions and tutorials can be found on the ROS 2 wiki.
  29. [29]
    ROS 2 Humble Hawksbill Release! - Open Robotics
    May 25, 2022 · Humble Hawksbill is a long-term support (LTS) release that will be supported until May 2027. This is the first ROS 2 release on Ubuntu 22.04 (Jammy Jellyfish).
  30. [30]
    ROS 2 Jazzy Jalisco Released - Open Robotics
    May 30, 2024 · The OSRF is are happy to announce the tenth release of ROS 2, Jazzy Jalisco, released on May the 23rd, 2024! Jazzy is a Long Term Support ...
  31. [31]
    ROS 2 Kilted Kaiju released — Open Robotics
    May 23, 2025 · We are happy to announce the eleventh release of ROS 2: Kilted Kaiju! Kilted is a standard release, and will be supported until November, 2026.
  32. [32]
    Upcoming ROS 1 End of Life
    ROS Noetic Ninjemys, the last ROS 1 release, will reach End of Life in May 2025. Over the past five years we focused our efforts on making ROS 2 a world class ...
  33. [33]
    NVIDIA Isaac ROS — Isaac ROS
    Welcome to Isaac ROS, a collection of NVIDIA-accelerated, high performance, low latency ROS 2 packages for making autonomous robots which leverage the power of ...
  34. [34]
    ROSCon 2025
    The Canonical Observability Stack for robotics is a readily deployable, scalable, open-source full stack from server infrastructure down to robots. This ...ROSCon 2018 · ROSCon 2017 · ROSCon 2019 · ROSCon 2024
  35. [35]
    Building stronger connections between Intrinsic and ROS
    Oct 29, 2025 · Building stronger connections between Intrinsic and ROS. Grippers, cameras and community - collaborating on open source robotics at ROSCon 2025.Missing: observability | Show results with:observability
  36. [36]
    [PDF] Robot Operating System 2: Design, Architecture, and Uses In The Wild
    Nov 14, 2022 · In this review, we highlight the philosophical and architectural changes of ROS 2 powering this new chapter in the robotics revolution. We also ...
  37. [37]
    ROS/Concepts - ROS Wiki
    Sep 20, 2022 · ROS has three levels: Filesystem, Computation Graph, and Community. Key concepts include packages, nodes, messages, and services.
  38. [38]
    rosgraph - ROS Wiki
    rosgraph contains the rosgraph command-line tool, which prints information about the ROS Computation Graph. It also provides an internal library that can be ...
  39. [39]
    Nodes - ROS Wiki
    Dec 4, 2018 · A node is a process that performs computation. Nodes are combined together into a graph and communicate with one another using streaming ...<|control11|><|separator|>
  40. [40]
  41. [41]
  42. [42]
  43. [43]
  44. [44]
    Understanding ROS Nodes - ROS Wiki
    Oct 18, 2022 · Nodes: A node is an executable that uses ROS to communicate with other nodes. · Messages: ROS data type used when subscribing or publishing to a ...
  45. [45]
    Topics - ROS Wiki
    Feb 20, 2019 · Topics are named buses over which nodes exchange messages. Topics have anonymous publish/subscribe semantics, which decouples the production ...Topic Transports · Topic statistics
  46. [46]
    Topics — ROS 2 Documentation: Humble documentation
    Topics are one of the three primary styles of interfaces provided by ROS 2. Topics should be used for continuous data streams, like sensor data, robot state, ...
  47. [47]
    msg - ROS Wiki
    Jan 31, 2023 · ROS uses a simplified messages description language for describing the data values (aka messages) that ROS nodes publish.
  48. [48]
    Interfaces — ROS 2 Documentation: Humble documentation
    ROS applications typically communicate through interfaces of one of three types: topics, services, or actions.
  49. [49]
    Services — ROS 2 Documentation: Iron documentation
    In ROS 2, a service refers to a remote procedure call. In other words, a node can make a remote procedure call to another node which will do a computation and ...
  50. [50]
    Services - ROS Wiki
    Jul 18, 2019 · The ROS Wiki is for ROS 1. Are you using ROS 2 (Humble, Iron, or Rolling)? Check out the ROS 2 Project Documentation Package specific ...
  51. [51]
    Writing a simple service and client (C++) — ROS 2 Documentation
    1 Create a package. Open a new terminal and source your ROS 2 installation so that ros2 commands will work. Navigate into the ros2_ws directory created in a ...
  52. [52]
    roscpp/Overview/Services - ROS Wiki
    Mar 14, 2012 · Service definitions, request messages and response messages. See also: roscpp messages overview. ROS Services are defined by srv files, ...
  53. [53]
    Understanding parameters — ROS 2 Documentation
    A parameter is a configuration value of a node. You can think of parameters as node settings. A node can store parameters as integers, floats, booleans, strings ...
  54. [54]
    About ROS 2 interfaces — ROS 2 Documentation: Foxy documentation
    ROS applications typically communicate through interfaces of one of three types: messages, services and actions.
  55. [55]
    Migration guide from ROS 1 — ROS 2 Documentation
    In ROS 1, parameters are associated with a central server that allowed retrieving parameters at runtime through the use of the network APIs. In ROS 2, ...
  56. [56]
    ROS 2 Security — ROS 2 Documentation: Humble documentation
    ROS 2 secures communication via encryption, authentication, and access control, using the DDS and security plugins. Security is enabled by setting ROS_SECURITY ...
  57. [57]
    RViz — ROS 2 Documentation: Humble documentation
    RViz is a 3D visualizer for the Robot Operating System (ROS) framework. RViz User Guide · Building a Custom RViz Display · Building a Custom RViz Panel · Marker ...
  58. [58]
    Building a Custom RViz Display — ROS 2 Documentation
    There are two choices to see it in RViz. With the first option, there is more network traffic and limitations to how the data can be represented.
  59. [59]
    RViz User Guide — ROS 2 Documentation: Humble documentation
    RViz is a 3D visualizer for the Robot Operating System (ROS) framework. Install or build rviz. Follow the installation instructions for your operating system ...
  60. [60]
    Understanding topics — ROS 2 Documentation: Humble ...
    ROS 2 breaks complex systems down into many modular nodes. Topics are a vital element of the ROS graph that act as a bus for nodes to exchange messages.
  61. [61]
    Visualizing ROS 2 data with Foxglove Studio - ROS documentation
    Foxglove Studio is an open source visualization and debugging tool for your robotics data. It is available in a variety of ways to make development as ...
  62. [62]
    catkin/conceptual_overview - ROS Wiki
    Mar 26, 2020 · catkin is the official build system of ROS and the successor to the original ROS build system, rosbuild. catkin combines CMake macros and Python ...
  63. [63]
    Catkin configuration overview - package.xml - ROS documentation
    ROS and other packages may be configured and built using catkin. Every catkin package must include package.xml and CMakeLists.txt files in its top-level ...
  64. [64]
    About the build system — ROS 2 Documentation: Foxy documentation
    A build tool performs the task of building a workspace of packages together at once with a single invocation.
  65. [65]
    Using colcon to build packages - ROS documentation
    This is a brief tutorial on how to create and build a ROS 2 workspace with colcon. It is a practical tutorial and not designed to replace the core ...
  66. [66]
    roslaunch - ROS Wiki
    roslaunch is a tool for easily launching multiple ROS nodes locally and remotely via SSH, as well as setting parameters on the Parameter Server.
  67. [67]
    roslaunch/XML/node - ROS Wiki
    Jan 24, 2022 · The <node> tag specifies a ROS node that you wish to have launched. This is the most common roslaunch tag as it supports the most important ...Missing: definition lifecycle
  68. [68]
    ROS/Tutorials/MultipleMachines - ROS Wiki
    Mar 20, 2019 · Running ROS across multiple machines. Description: This tutorial explains how to start a ROS system using two machines.
  69. [69]
    Launch — ROS 2 Documentation: Foxy documentation
    ROS 2 Launch files allow you to start up and configure a number of executables containing ROS 2 nodes simultaneously. Creating a launch file. Learn how to ...Creating a launch file · Integrating launch files into... · Using substitutions
  70. [70]
    Creating a launch file — ROS 2 Documentation: Foxy documentation
    Launch files simplify running complex systems with many nodes and specific configuration details. You can create launch files using Python, XML, or YAML.Tasks · 2 Write The Launch File · 2.1 Examine The Launch File
  71. [71]
    rosbag: Main Page - ROS documentation
    rosbag is a set of tools and API's for recording/writing messages to bag files and playing/reading them back. codeapi. The C++ and Python API's are provided ...
  72. [72]
    Bags/Format/2.0 - ROS Wiki
    Sep 6, 2013 · Version 2.0 of the ROS bag file format adds a number of new features: compression: messages are stored in chunks which can be individually ...Overview · Format · Op codes · Bag header
  73. [73]
    rosbag/Commandline - ROS Wiki
    Aug 25, 2021 · rosbag decompress is a command-line tool for decompressing bag files. It automatically determines which compression format a bag uses. A backup ...rosbag record · rosbag info · rosbag play · rosbag check
  74. [74]
    Recording and playing back data — ROS 2 Documentation
    ros2 bag is a command line tool for recording data published on topics in your system. It accumulates the data passed on any number of topics and saves it in a ...
  75. [75]
    ros2/rosbag2 - GitHub
    By default Rosbag2 does not record with compression enabled. However, compression can be specified using the following CLI options. For example, ros2 bag ...
  76. [76]
    Building and using catkin packages in a workspace - ROS Wiki
    Jan 30, 2017 · Building Packages in a catkin Workspace. First this tutorial will cover the basics of how the catkin_make tool works.
  77. [77]
    move_base - ROS Wiki
    The move_base node provides a ROS interface for configuring, running, and interacting with the navigation stack on a robot. A high-level view of the move_base ...
  78. [78]
    navigation - ROS Wiki
    Sep 14, 2020 · The Navigation Stack is fairly simple on a conceptual level. It takes in information from odometry and sensor streams and outputs velocity ...Robot Setup Tutorial · navigation/Tutorials · Autonomous Navigation of a...
  79. [79]
    global_planner - ROS Wiki
    Feb 12, 2021 · A* Path ... Note that a lot less of the potential has been calculated (indicated by the colored areas). This is indeed faster than using ...
  80. [80]
    dwa_local_planner - ROS Wiki
    This package provides an implementation of the Dynamic Window Approach to local robot navigation on a plane. Given a global plan to follow and a costmap, ...Overview · DWAPlannerROS · API Stability · Parameters
  81. [81]
    The dynamic window approach to collision avoidance - IEEE Xplore
    In experiments, the dynamic window approach safely controlled the mobile robot RHINO at speeds of up to 95 cm/sec, in populated and dynamic environments.
  82. [82]
    gmapping - ROS Wiki
    Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot. Maintainer status ...
  83. [83]
    cartographer - ROS Wiki
    Oct 4, 2016 · Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and ...
  84. [84]
  85. [85]
    amcl - ROS Wiki
    amcl is a probabilistic localization system for a robot moving in 2D. It implements the adaptive (or KLD-sampling) Monte Carlo localization approach (as ...<|separator|>
  86. [86]
    Nav2 — Nav2 1.0.0 documentation
    Nav2 is the professionally-supported successor of the ROS Navigation Stack deploying the same kinds of technology powering Autonomous Vehicles brought down, ...Getting StartedNavigation ConceptsGeneral TutorialsFirst-Time Robot Setup GuideNavigation Plugins
  87. [87]
    Nav2 Behavior Trees — Nav2 1.0.0 documentation
    Nav2 is an incredibly reconfigurable project. It allows users to set many different plugin types, across behavior trees, core algorithms, status checkers, and ...Detailed Behavior Tree... · Introduction To Nav2 Specific... · Navigate To Pose
  88. [88]
    Navigation Plugins — Nav2 1.0.0 documentation
    Namely, the costmap layer, planner, controller, behavior tree, and behavior plugins. A list of all known plugins are listed here below for ROS 2 Navigation. If ...Migration Guides · Static Layer Parameters · FollowPath · GoalUpdated
  89. [89]
    image_pipeline - ROS Package Overview
    Package Description. image_pipeline fills the gap between getting raw images from a camera driver and higher-level vision processing. Additional Links.
  90. [90]
    pcl_ros - ROS Package Overview
    PCL (Point Cloud Library) ROS interface stack. PCL-ROS is the preferred bridge for 3D applications involving n-D Point Clouds and 3D geometry processing in ROS.
  91. [91]
    vision_opencv - ROS Wiki
    Mar 10, 2020 · Packages for interfacing ROS with OpenCV, a library of programming functions for real time computer vision. Maintainer status: maintained ...
  92. [92]
    image_pipeline - ROS Wiki
    Oct 30, 2013 · image_pipeline fills the gap between getting raw images from a camera driver and higher-level vision processing.
  93. [93]
    pcl_ros - ROS Wiki
    This package provides interfaces and tools for bridging a running ROS system to the Point Cloud Library. These include ROS nodelets, nodes, and C++ interfaces.
  94. [94]
    cv_bridge - ROS Wiki
    Oct 13, 2010 · This contains CvBridge, which converts between ROS Image messages and OpenCV images. Maintainer status: maintained; Maintainer: Vincent Rabaud < ...
  95. [95]
    MoveIt Motion Planning Framework
    Moving robots into the future. A motion planning, manipulation, and kinematics framework for ROS, ideal for students and university researchers.
  96. [96]
    Planning Scene — moveit_tutorials Kinetic documentation
    The PlanningScene class provides the main interface that you will use for collision checking and constraint checking. In this tutorial, we will explore the C++ ...
  97. [97]
    IKFast Kinematics Solver — moveit_tutorials Kinetic documentation
    This tutorial will step you through setting up your robot to utilize the power of IKFast. MoveIt IKFast is tested on ROS Kinetic with Catkin using OpenRAVE 0.8 ...
  98. [98]
    MoveIt Related Projects
    ROS2 Grasp Library ... This package provides ROS2 interfaces compliant with the MoveIt motion planning framework which is supported by most of the robot models in ...
  99. [99]
    GSoC: Creating a default grasping library - Open Robotics Discourse
    Mar 29, 2019 · We are about to officially release moveit_grasps, a package we've been developing on internally at PickNik for many years. The code is already ...
  100. [100]
    object_recognition - ROS Wiki
    Apr 27, 2017 · The object_recognition package provides object recognition using hough-transform clustering of SURF, and includes methods like TOD, transparent ...
  101. [101]
    ORB (Oriented FAST and Rotated BRIEF) - OpenCV Documentation
    ORB is basically a fusion of FAST keypoint detector and BRIEF descriptor with many modifications to enhance the performance.
  102. [102]
    joint_trajectory_controller — ROS2_Control: Rolling Nov 2025 ...
    Using Joint Trajectory Controller(s) . The controller expects at least position feedback from the hardware. Joint velocities and accelerations are optional.
  103. [103]
    Industrial - ROS Wiki
    Apr 20, 2020 · ROS-Industrial is a BSD (legacy) / Apache 2.0 (preferred) licensed program that contains libraries, tools and drivers for industrial hardware.ROS-Industrial Overview · Development · Package Summary
  104. [104]
    Installing Gazebo with ROS
    This document provides guidance on using different versions of ROS in combination with different versions of Gazebo.ROS 2 Gazebo Vendor... · Gazebo Roadmap · Continuous Integration For...
  105. [105]
    Gazebo — ROS 2 Documentation: Humble documentation
    This set of tutorials will teach you how to configure the Gazebo simulator with ROS 2. Setting up a robot simulation (Gazebo) · Using a URDF in Gazebo.
  106. [106]
    sim — Gazebo documentation
    Gazebo Sim is an open source robotics simulator. Through Gazebo Sim, users have access to high fidelity physics, rendering, and sensor models.
  107. [107]
    Migrating ROS 2 packages that use Gazebo Classic
    This tutorial will show how to migrate an existing ROS 2 package that uses the gazebo_ros_pkgs package to the new ros_gz.Modify The Model · Libgazebo_ros_diff_drive.So · Bridge Ros TopicsMissing: successor | Show results with:successor
  108. [108]
    urdf - ROS Wiki
    Dec 12, 2023 · URDF contains XML specifications for robot models, sensors, and scenes. It uses XML format and has a corresponding data structure.urdf/Tutorials · urdf/XML · urdf/XML/model · urdf/Examples
  109. [109]
    Tutorial: Using a URDF in Gazebo
    Tutorial: Using a URDF in Gazebo. The Unified Robotic Description Format (URDF) is an XML file format used in ROS to describe all elements of a robot.
  110. [110]
    ROS-Industrial
    ROS-Industrial is an Open Source robotics software project that extends the advanced capabilities of ROS to new manufacturing applications.Consortium · FAQ · About · BlogMissing: interoperability | Show results with:interoperability
  111. [111]
    Demystifying Robots Interoperability - ROS-Industrial
    Apr 8, 2022 · Responding to the interoperability challenges above, the team at ROS-Industrial Asia Pacific is developing technologies to support owners/ ...
  112. [112]
    [PDF] Multi-Robot, Multi-Machine Interoperability - ROS-Industrial
    Why is Interoperability between Automation and Robotic systems difficult? • Custom Integration Software upfront cost can be 2x to 5x the hardware costs. • Small ...
  113. [113]
    FAQ - Space ROS
    NASA has used ROS in its Robonaut 2 and Astrobee robots on the International Space Station, and will use ROS2 at the ground node of the VIPER (Volatiles ...
  114. [114]
    [PDF] An Open-Source Framework for Space Robotics and Flight Software
    Space ROS is an open-source spacecraft flight software framework for developing robotic applications for space being developed by NASA, Open Robotics, ...
  115. [115]
    ROS…in…space! - Open Robotics
    Feb 3, 2022 · We're now working with Blue Origin and NASA to develop Space ROS, which is a variant of ROS 2 specifically designed to satisfy the strict verification and ...Missing: adaptations | Show results with:adaptations
  116. [116]
    ROS (1) with MAVROS Installation Guide | PX4 Guide (main)
    This documentation explains how to set up communication between the PX4 Autopilot and a ROS 1 enabled companion computer using MAVROS.
  117. [117]
  118. [118]
    Deep learning inference nodes for ROS / ROS2 with ... - GitHub
    This package contains DNN inference nodes and camera/video streaming nodes for ROS/ROS2 with support for NVIDIA Jetson Nano / TX1 / TX2 / Xavier / Orin devices ...
  119. [119]
    Announcing General Availability for NVIDIA Isaac Sim 5.0 and ...
    Aug 11, 2025 · Isaac Sim 5.0 offers full support for ROS 2 Jazzy Jalisco, a new ZeroMQ bridge , and an updated MoveIt 2 Tutorial for motion planning workflows.
  120. [120]
    Release Notes - Isaac Sim Documentation
    Updated internal ROS 2 Humble and Jazzy libraries to now include common_interfaces, tf2_ros, sensor_msgs_py, and simulation_interfaces v1.1.0. Default ROS 2 ...
  121. [121]
    ROS 2 Installation - Isaac Sim Documentation
    NVIDIA Isaac Sim provides a ROS 2 bridge for ROS system integration. The ... Copyright © 2023-2025, NVIDIA Corporation. Last updated on Oct 21, 2025.Install Summary Steps · Install Ros 2 · Enabling The Ros 2 Bridge
  122. [122]
    ROS Diamondback
    Mar 2, 2011 · Diamondback provides over over 120 ROS stacks. To help you install these stacks more easily, we provide many different variants that organize ...
  123. [123]
    Distributions - ROS Wiki
    May 31, 2025 · EOL date. ROS Noetic Ninjemys. May 23rd, 2020. Noetic Ninjemys. https://raw.githubusercontent.com/ros/ros_tutorials/noetic-. May, 2025 (Focal ...
  124. [124]
    REP 151 -- Python 3 Support (ROS.org)
    Aug 5, 2019 · REP 151 describes the path to switch from Python 2 to 3 in ROS 1, with all ROS packages supporting Python 3 in Noetic, the first ROS 1 ...<|separator|>
  125. [125]
    noetic/Migration - ROS Wiki
    Jun 13, 2023 · ROS Noetic requires Python 3, increased CMake version, setuptools, rosdep keys for Orocos KDL/BFL, fcl rosdep key, and xacro instead of xacro. ...
  126. [126]
    ROS Noetic End-of-Life: May 31, 2025 - Open Robotics Discourse
    Apr 10, 2025 · Hello ROS Noetic users and maintainers! This week the ROS PMC formally voted to set the Noetic end-of-life (EOL) date to May 31, 2025.
  127. [127]
    ros1_bridge - ROS Package Overview
    Bridge communication between ROS 1 and ROS 2. This package provides a network bridge which enables the exchange of messages between ROS 1 and ROS 2.
  128. [128]
    ros2/ros1_bridge: ROS 2 package that provides ... - GitHub
    This package provides a network bridge which enables the exchange of messages between ROS 1 and ROS 2. The bridge is currently implemented in C++
  129. [129]
    ROS on DDS - ROS2 Design
    This article makes the case for using DDS as the middleware for ROS, outlining the pros and cons of this approach, as well as considering the impact to the ...
  130. [130]
    DDS implementations — ROS 2 Documentation: Foxy documentation
    ROS 2 uses DDS as its middleware. It is compatible with multiple DDS or RTPS (the DDS wire protocol) vendors. There is currently support for eProsima's Fast ...
  131. [131]
    Setting up security — ROS 2 Documentation: Rolling documentation
    To set up security, create a folder, generate a keystore, generate keys/certificates, and configure environment variables. The sros2 package provides tools for ...
  132. [132]
    Using colcon to build packages — ROS 2 Documentation
    This is a brief tutorial on how to create and build a ROS 2 workspace with colcon. It is a practical tutorial and not designed to replace the core ...
  133. [133]
    REP 2000 -- ROS 2 Releases and Target Platforms (ROS.org)
    Since macOS (or at least brew) as well as Windows are rolling platforms we aim to support the latest version available at the time of a ROS 2 distribution ...
  134. [134]
    Distributions — ROS 2 Documentation: Humble documentation
    List of Distributions ; Iron Irwini. May 23, 2023. Iron logo ; Humble Hawksbill. May 23, 2022. Humble logo ; Galactic Geochelone. May 23, 2021. Galactic logo.Humble Hawksbill (humble) · Jazzy Jalisco (jazzy) · Kilted Kaiju (codename ‘kilted’
  135. [135]
    ROS 2 | endoflife.date
    Ardent Apalone, 7 years and 11 months ago. (08 Dec 2017). Ended 6 years and 10 months ago. (31 Dec 2018). Show more unmaintained releases ...<|separator|>
  136. [136]
    Opinion on companies still using ROS1 - ROS General
    Dec 13, 2024 · However, about 80% of ROS users have migrated to ROS 2 and we still have six months until EOL. I think that it demonstrates that the company ...Missing: life | Show results with:life
  137. [137]
    CAD to ROS Project Launch
    Jan 13, 2016 · The CAD to ROS project aims to import CAD data into ROS, converting it to URDFs/SRDFs, with milestones including a URDF GUI editor and 3D point ...Missing: safety standards
  138. [138]
    Proposed: CAD to ROS Focused Technical Project
    Jul 21, 2015 · The ROS-Industrial Consortium is tackling a topic that is of interest to the whole ROS community: conversion of CAD data to ROS-interpretable ...Missing: CERT extensions import safety standards
  139. [139]
    [PDF] Focused Technical Project (FTP) - ROS-Industrial
    Jul 21, 2015 · URDF needs extension, SDF needs standard structure for annotations. 2. Decide on priority (which data first?) – Ask industrial users and ...Missing: safety | Show results with:safety
  140. [140]
    ROS-Industrial is buzzing
    Jan 14, 2022 · Pilz is providing a portfolio of safety components that can be used to build a safety system around ROS based mobile robots.
  141. [141]
    ROS Based Safety Concept for Collaborative Robots in Industrial ...
    Aug 4, 2025 · The proposed system consists of a RGBD camera for surveillance of the common working area, an array of optical distance sensors to compensate shadowing effects.
  142. [142]
    An Introduction to Commercial Robotic Control with ROS Industrial
    Jul 18, 2020 · Using ROS Industrial, the industries get the best of academic flexibility and industrial safety and robustness standards. Related Content.
  143. [143]
    How Space ROS Differs from ROS 2 - GitHub Pages
    The Cobra static analyzer was developed at NASA's Jet Propulsion Labratory (JPL) in 2015. ... cFS/ROS 2 Bridge. There is an active project, the BRASH Integration ...
  144. [144]
    The BRASH Integration Toolkit for ROS2 and Flight Software ...
    In the Phase I of this work, TRACLabs and the JHU/APL investigated the role of ROS2 in flight systems and how it might be integrated with NASA's cFS to leverage ...Missing: JPL | Show results with:JPL
  145. [145]
    [PDF] dustin gooding, nasa/jsc - integrating ros into nasa space exploration
    ▸ Prototypes in work to get CFS and ROS to share data. ▸ Initial success with the “bridge” approach. Next up is native support for ROS comm within CFS.
  146. [146]
    [PDF] SPACE ROS: ARCHITECTURE ROADMAP
    Space ROS is a software framework designed to be deployed across a wide set of use cases. There are a number of ways. Space ROS could be deployed: 1. Standalone.Missing: JPL radiation- hardened Perseverance<|separator|>
  147. [147]
    Autonomous Systems Help NASA's Perseverance Do More Science ...
    Sep 21, 2023 · With the help of its self-driving autonomous navigation system, AutoNav, Perseverance traversed the field much more quickly than previous rovers could have.Missing: ROS cFS- bridge radiation- hardened communications
  148. [148]
    micro-ROS | ROS 2 for microcontrollers
    Bridging the gap between resource-constrained microcontrollers and larger processors in robotic applications that are based on the Robot Operating System.Build System · Features and Architecture · Overview · Supported Hardware
  149. [149]
    micro-ROS Foxy Release
    We are glad to announce the release of micro-ROS Foxy and its compatibility with ROS 2 Foxy and Fast DDS 2.x.
  150. [150]
    Supported Hardware - micro-ROS
    Officially supported boards · Renesas EK RA6M5 and e2studio · Espressif ESP32 · Arduino Portenta H7 · Raspberry Pi Pico RP2040 · ROBOTIS OpenCR 1.0 · Teensy 3.2.
  151. [151]
    Porting Micro-ROS on Any Microcontroller with Custom Interfaces
    Oct 31, 2025 · Micro-ROS supports various microcontrollers, allowing embedded systems to use ROS2 and its features. Porting Micro-ROS on any Controller.
  152. [152]
    Top AI Tools for ROS 2 Robotics Projects (2024 Guide) - Arsturn
    Aug 10, 2025 · Here's the thing about integrating ML into ROS 2: you're basically just creating a ROS 2 node that handles the machine learning part. This ...
  153. [153]
    ROS2 nodes for computer vision tasks in Tensorflow - GitHub
    This section describes how to build the ros2-tensorflow package and the required depenencies in case you are not using the provided Dockerfile. Get the source ...Missing: specialized | Show results with:specialized
  154. [154]
    [PDF] GO HW for Unified AI and Hardware Execution - Adra Association
    Oct 20, 2025 · While ROS 2 is not limited to AI, it increasingly integrates AI modules. (for example, a node running a deep learning model subscribing to ...
  155. [155]
    Quick Start Guide - TurtleBot3
    Currently, ROS 1 Noetic and ROS 2 Humble are officially supported. In 2025, additional resources will be allocated for managing the open platform, ...
  156. [156]
    TurtleBot 4 Now Supports ROS 2 Jazzy - Clearpath Robotics
    Oct 17, 2024 · We are happy to announce that TurtleBot 4 now officially supports the latest version of ROS 2, Jazzy Jalisco!
  157. [157]
    Robots/PR2 - ROS Wiki
    Jan 4, 2022 · The PR2 is a mobile manipulation platform built by Willow Garage. The PR2 software system is written entirely in ROS. As such, all PR2 ...
  158. [158]
    PR2 - robots.ros.org
    The PR2 is a mobile manipulation platform built by Willow Garage. The PR2 software system is written entirely in ROS. As such, all PR2 capabilities are ...
  159. [159]
    Supported Components | Clearpath Robotics Documentation
    May 13, 2025 · Most Clearpath platforms use Micro ROS in their MCU firmware, which limits the ability to use middleware implementations other than Fast DDS .
  160. [160]
    Supported Robots — ROS2_Control: Rolling Nov 2025 documentation
    Official (supported by robot manufacturer) · Clearpath Robotics Dingo Dx1X0 · Clearpath Robotics Husky A200 · Clearpath Robotics Husky A300 · Clearpath Robotics ...
  161. [161]
    pepper - ROS Wiki
    Nov 15, 2017 · Pepper is a commercially available humanoid robot built by Aldebaran and Softbank Robotics. Since the robot uses Aldebaran's NaoQI framework, we ...Missing: integration | Show results with:integration
  162. [162]
    Aldebaran Nao - ROS Wiki
    Mar 27, 2019 · Nao is a commercially available humanoid robot built by Aldebaran. The ROS driver was originally developed by Freiburg's Humanoid Robots Lab and ...
  163. [163]
    ROS Interface — Aldebaran 2.5.11.14a documentation
    ROS interface is a program running both as a ROS node and a NAOqi module. It listens to NAOqi messages and publishes the translated ROS messages.
  164. [164]
    Universal Robots ROS driver supporting CB3 and e-Series - GitHub
    The goal of this driver is to provide a stable and sustainable interface between UR robots and ROS that strongly benefit all parties.
  165. [165]
    Welcome to the Universal Robots ROS 2 driver documentation
    This documentation covers everything around the Open-Source ROS (Robot Operating System) 2 driver packages for Universal Robots manipulators.Ur_controllers · Ur_calibration · Ur_description · Ur_client_library
  166. [166]
    Robots/freight - ROS Wiki
    Aug 13, 2015 · Freight is a mobile robotics platform built by Fetch Robotics. The Freight software system uses ROS extensively. All Freight capabilities are ...
  167. [167]
    ROS 2 driver package for Boston Dynamics' Spot - GitHub
    spot_ros2 is a set of ROS 2 packages for interacting with Boston Dynamics' Spot, based off the the ROS 1 equivalent.
  168. [168]
    In the Spot Light: Controlling Spot with ROS 2 - Vimeo
    Oct 31, 2024 · ... robotics and AI. This talk will introduce our various open source ROS 2 packages for controlling Boston Dynamics' Spot, discuss recent ...
  169. [169]
    ROS 2 on Raspberry Pi - ROS documentation
    The fastest and simplest way to use ROS 2 is to use a Tier 1 supported configuration. This would mean either installing 64 bit Ubuntu on to the Raspberry Pi.Using Callback Groups · This page · JazzyMissing: computers | Show results with:computers
  170. [170]
    NVIDIA ROS 2 Projects - ROS documentation
    NVIDIA Jetson is working towards developing ROS 2 packages to ease the development of AI applications for robotics.
  171. [171]
    ROS Wrapper for Intel(R) RealSense(TM) Cameras - GitHub
    PLEASE PAY ATTENTION: ROS Wrapper for Intel® RealSense™ cameras is not meant to be supported on Windows by our team, since ROS2 and its packages are still ...Releases 80 · Intel® RealSense™ SDK · Pull requests 5 · Issues 94
  172. [172]
    ros-drivers/urg_node: ROS wrapper for the Hokuyo urg_c library.
    ROS wrapper for the Hokuyo urg_c library. Contribute to ros-drivers/urg_node development by creating an account on GitHub.
  173. [173]
  174. [174]
    DYNAMIXEL SDK - ROBOTIS e-Manual
    The DYNAMIXEL SDK provides functions for managing DYNAMIXEL servos, supporting all series, and using both protocol versions. It supports Java, C, and Python.Download SDK · DYNAMIXEL Protocol 2.0 · Device Setup · XM430-W350-T/R
  175. [175]
    Software: RoboROSdriver - Roboteq
    Driver is hosted and can be downloaded from Roboteq's GitHub page. Driver details can be found in the Roboteq ROS Driver page.
  176. [176]
    Roboteq-Inc/ROS-Driver - GitHub
    Contribute to Roboteq-Inc/ROS-Driver development by creating an account on GitHub.
  177. [177]
    ros2_control hardware interface types
    The ros2_control framework provides a set of hardware interface types that can be used to implement a hardware component for a specific robot or device.Missing: ros_control | Show results with:ros_control
  178. [178]
    ROS 2 Raspberry Pi 4 image with the real-time kernel as presented ...
    Oct 27, 2022 · This image builder is designed in a generic manner and should be modifiable such that it supports other single board computers. One thing that I ...
  179. [179]
    Open Robotics Discourse
    Open Source Robotics Foundation · ROS · Project homepage · Documentation · Getting help and support · ROS Packages Index · Media and trademarks.Jobs · Categories · Site FeedbackMissing: GitHub repositories SIGs<|separator|>
  180. [180]
    ros/rosdistro: This repo maintains a lists of repositories for ... - GitHub
    This repository maintains two independent sets of packaging metadata used in ROS: The lists of repositories that curate ROS packages for each ROS distributions, ...Missing: Diamondback | Show results with:Diamondback
  181. [181]
    sig - ROS Wiki
    Aug 14, 2016 · Special Interest Group (SIG) ... ROS consists of many different parts - from core and low-level parts such as build system, networking and drivers ...Missing: WG | Show results with:WG
  182. [182]
    Project Governance — ROS 2 Documentation: Foxy documentation
    Working Groups (WGs) . As described in its charter, the TSC establishes working groups (WGs) to discuss and make progress on specific topics. The current ...Missing: Interest SIGs
  183. [183]
    Robotics Enhancement Proposals
    What is a REP? REP stands for Robotics Enhancement Proposal. A REP is a document providing information for anyone interacting with one or more of the OSRA's ...
  184. [184]
    ROS Community Code of Conduct - GitHub Pages
    This is a living document to be used to protect community members. It should not be interpreted as a hard and fast legal guide for community behavior.
  185. [185]
    Home - ROS Answers archive
    ROS Answers archive Answers Archive. This is the static archive of questions from ROS Answers archive Answers. Many questions were migrated to Robotics ...
  186. [186]
    Open Robotics
    Working with our global community, we offer three open platforms: ROS, Gazebo and Open-RMF. Program your robots with ROS, simulate them with Gazebo, ...
  187. [187]
    OSRA's Technical Governance Committee Approves $250000 ...
    Aug 1, 2025 · The Technical Governance Committee (TGC) of the Open Source Robotics Alliance (OSRA) has approved funding of US$250,000 to significantly ...
  188. [188]
    Launch of the OSRA's new Robotics Enhancement Proposal (REP ...
    Oct 23, 2025 · The new REP process specifically outlines every step in the REP review and acceptance process. To help distinguish between a Robotics ...<|separator|>
  189. [189]
    [PDF] The Impact of Warehouse Automation in Amazon's Success - IJISET
    The service uses the open-source Robot Operating System (ROS) as the framework and integrate applications with AWS services such as analytics and machine ...
  190. [190]
  191. [191]
    Overview of ROS and PLC Technology - Siemens Developer Portal
    Integrating PLCs with ROS creates a powerful synergy that leverages the strengths of both technologies. PLCs contribute industrial-grade reliability, ...
  192. [192]
    nasa-jpl/open-source-rover - GitHub
    The JPL Open Source Rover is an open source, build it yourself, scaled down version of the 6 wheel rover design that JPL uses to explore the surface of Mars.
  193. [193]
    jhu-dvrk/dvrk-ros: daVinci Research Kit ROS stack. See ... - GitHub
    Sep 17, 2024 · This repository is now archived and used for older dVRK distributions. As of August 2024, the packages listed below have been moved to different repositories.
  194. [194]
    [PDF] An Open-Source Research Kit for the Da Vinci Surgical System
    Jun 7, 2014 · The software is implemented in a component-based C++ framework, with ROS interfaces to facilitate integration with other systems and software ...
  195. [195]
    [PDF] Introducing ROS-Projects to Undergraduate Robotic Curriculum
    We believe these projects will help other educators develop ROS-based simulation projects as part of a course or a stand-alone course for teaching robotics.
  196. [196]
    Courses - ROS Wiki
    Mar 31, 2025 · There are a number of courses taught using ROS and/or the PR2. Below you'll find some examples that might help you design your own course. Are ...<|separator|>
  197. [197]
    LG Showcases Self-Driving AI Home Hub at ROSCon 2024
    Oct 23, 2024 · In addition, there will be a demo session where developers can create apps for the Self-Driving AI Home Hub using the open SDK. The SDK ...