Curated list of awesome lists
Awesome Robot Operating System 2 (ROS 2) 
A curated list of awesome Robot Operating System Version 2.0 (ROS 2) resources and libraries.
The Robot Operating System 2 (ROS 2) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS 2 has what you need for your next robotics project. And it’s all open source.
Contents
Packages
Data collection
-
ros2_data_collection - Collect, validate and send data reliably from ROS 2 to create APIs and dashboards.
Demonstrations
-
adlink_ddsbot - The ROS 2.0/1.0 based robots swarm architecture (opensplice DDS).
-
adlink_neuronbot - ROS2/DDS robot pkg for human following and swarm.
-
turtlebot3 - ROS2 based TurtleBot3 demo including Bringup, Teleop and Cartographer.
Examples
Benchmarking
-
ros2_benchmarking - Framework for ROS2 benchmarking. ROS2 communication characteristics can be evaluated on several axes, quickly and in an automated way.
-
performance_test - Test performance and latency of various communication means like ROS 2, FastRTPS and Connext DDS Micro.
Containerization
Networking
-
Husarnet VPN - A P2P, secure network layer dedicated for ROS & ROS 2.
Ecosystem
-
Link ROS - Cloud Logging for ROS 1 and ROS 2.
-
rosbag2 - ROS2 native rosbag.
-
rviz - 3D Robot Visualizer.
-
urdfdom - URDF (U-Robot Description Format) library which provides core data structures and a simple XML parser
-
urdfdom_headers - Headers for URDF parsers.
-
ros2cli - ROS 2 command line tools.
-
orocos_kinematics_dynamics - Orocos Kinematics and Dynamics C++ library.
-
pydds - Simple DDS Python API for Vortex Lite and for OpenSplice.
-
Webots - Robot simulator for ROS 2.
-
LGSVL - Simulation software to accelerate safe autonomous vehicle development.
-
Unity Robotics Hub - This is a central repository for tools, tutorials, resources, and documentation for robotic simulation in Unity.
-
Foxglove Studio - Integrated visualization and diagnosis tool for robotics.
-
ROS2 For Unity - An asset package which enables high-performance communication between Unity3D simulations and ROS2 ecosystem.
Interactivity
Penetration testing
Application layer
-
Apex.Autonomy - Apex.Autonomy provides autonomy algorithms as individual building blocks and is compatible with Autoware.Auto.
-
Autoware.Auto - Autoware.Auto provides an open-source software stack based on ROS 2 for self-driving technology.
-
ros2_control -
ros2_control
is a proof of concept on how new features within ROS 2 can be elaborated and used in the context of robot control (ros2_controllers
).
-
ros2_controllers - Description of ros_controllers.
-
geometry2 - A set of ROS packages for keeping track of coordinate transforms.
-
ros2-ORB_SLAM2 - ROS2 node wrapping the ORB_SLAM2 library.
-
basalt_ros2 - ROS2 wrapper for Basalt VIO.
-
cartographer - Real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
-
slam_gmapping - Slam Gmapping for ROS2.
-
slam_toolbox - Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS.
-
lidarslam_ros2 - ROS2 package of 3D lidar slam using ndt/gicp registration and pose-optimization.
-
li_slam_ros2 - ROS2 package of tightly-coupled lidar inertial ndt/gicp slam referenced from LIO-SAM.
-
octomap_server2 - ROS2 stack for mapping with OctoMap. Port of the ROS1 octomap_mapping package.
-
vision_opencv - Packages for interfacing ROS2 with OpenCV.
-
teleop_twist_keyboard - Generic Keyboard Teleop for ROS2.
-
teleop_twist_joy - Simple joystick teleop for twist robots.
-
navigation - ROS2 Navigation stack.
-
diagnostics - Forked version of the original ROS1 Diagnostics for ROS 2 (currently diagnostics_updater only).
-
robot_state_publisher - Forked version of the original ROS Robot State Publisher with all modifications to compile within a ROS2 Ecosystem.
-
common_interfaces - A set of packages which contain common interface files (.msg and .srv).
-
ros2_object_map - "Mark tag of objects on map when SLAM".
-
ros2_object_analytics - Object Analytics (OA) is ROS2 wrapper for realtime object detection, localization and tracking.
-
ros2_intel_movidius_ncs - ROS2 wrapper for Movidius™ Neural Compute Stick (NCS) Neuronal Compute API.
-
ros2_moving_object - Addressing moving objects based on messages generated by Object Analytics
ros2_object_analytics
.
-
ros2_openvino_toolkit - ROS2 wrapper for CV API of OpenVINO™ (human vision emulation).
-
ros2_grasp_library - Probably a grasp library :).
-
apriltag_ros - ROS2 node for AprilTag detection.
-
rosbridge_suite - Bridging your browser to the ROS 2.0.
-
ros2_message_filters - ros2_message_filters blends various messages based on the conditions that filter needs to met and derives from ROS2 porting of ROS message_filters.
-
ros2-tensorflow - ROS2 nodes for computer vision tasks in Tensorflow.
-
ros2_pytorch - ROS2 nodes for computer vision tasks in PyTorch
.
-
ros2_pytorch_cuda - Extension of ros2_pytorch for CUDA devices with containerization.
-
pid - A PID controller for ROS2.
-
system-modes - System modes for ROS 2 and micro-ROS.
-
darknet_ros - ROS2 wrapper for deploying Darknet's YOLO Computer Vision model.
-
easy_perception_deployment - Package that accelerates training and deployment of Computer Vision models for industries.
-
easy_manipulation_deployment - Package that integrates perception elements to establish an end-to-end pick and place task.
-
ros2_pid_library - A ROS2 Humble fully configurable PID library
Middleware
-
Micro XRCE-DDS Agent - Micro XRCE-DDS Agent acts as a server between DDS Network and Micro XRCE-DDS Clients.
-
Micro XRCE-DDS Agent docker - Docker image containing the Micro XRCE-DDS Agent.
-
Micro XRCE-DDS Client - Micro XRCE-DDS implements a client-server protocol to enable resource-constrained devices (clients) to take part in DDS communications.
-
micro-ROS-Agent - ROS 2 package using Micro XRCE-DDS Agent.
-
Eclipse Zenoh - Zenoh is a scalable and extremely performant protocol that can be used transparently used to interact with ROS2 applications as well as for R2X communication. (https://img.shields.io/github/stars/eclipse-zenoh/zenoh)
-
Eclipse Zenoh-Plugin-DDS - This is a zenoh plugin that allows to transparently route ROS2/DDS data over zenoh. This is commonly used for R2X communication over Wireless network or across the Internet. (https://img.shields.io/github/stars/eclipse-zenoh/zenoh-plugin-dds)
"System" bindings
-
rclandroid - Android API for ROS2.
-
rclnodejs - Node.js version of ROS2.0 client.
-
riot-ros2 - This project enables ROS2 to run on microcontrollers using the RIOT Operating System.
-
ROS2-Integration-Service - ROS2 Integration and Routing which provides a complete tool to integrate other technologies with ROS2 easily and enable ROS2 on WAN/Internet.
-
soss - The System Of Systems Synthesizer is used to integrate ROS2 via ROS2-Integration-Service with other (communication) systems.
-
micro_ros_arduino - Integration of micro-ROS into Arduino software platform projects.
-
micro_ros_zephyr_module - Integration of micro-ROS in Zeyphr OS based projects.
Driver layer
Client libraries
-
rclada - ROS Client Library for Ada.
-
rclcpp - ROS Client Library for C++.
-
rclgo - ROS Client Library for Go.
-
rclpy - ROS Client Library for Python.
-
rcljava - ROS Client Library for Java.
-
rclnodejs - ROS Client Library for Node.js.
-
rclobjc - ROS Client Library for Objective C (for iOS).
-
rclc - ROS Client Library for C.
-
ros2_rust - Rust bindings for ROS2.
-
ros2_dotnet - .NET bindings for ROS2.
-
ros2cs - an alternative to ros2_dotnet, a ROS2 C# interface supporting full range of messages and modern ROS2.
Client libraries common
-
rcl - Library to support implementation of language specific ROS Client Libraries.
-
system_tests - Tests for rclcpp and rclpy.
-
rcl_interfaces - A repository for messages and services used by the ROS client libraries.
IDL generators
RMW (ROS middleware)
-
rmw - Contains the ROS middleware API.
-
rmw_connext_cpp - Implement the ROS middleware interface using RTI Connext static code generation in C++.
-
rmw_fastrtps_cpp - Implement the ROS middleware interface using eProsima FastRTPS static code generation in C++.
-
rmw_dps - Implementation of the ROS Middleware (rmw) Interface using Intel's Distributed Publish & Subscribe.
-
rmw_opensplice_cpp - Implement the ROS middleware interface using PrismTech OpenSplice static code generation in C++.
-
rmw_coredx - CoreDX DDS integration layer for ROS2.
-
rmw_freertps - RMW implementation using freertps.
-
rmw_zenoh - RMW implementation using Eclipse zenoh: Zero Overhead Pub/sub, Store/Query and Compute.
-
rcutils - Common C functions and data structures used in ROS 2.
-
freertps - a free, portable, minimalist, work-in-progress RTPS implementation.
-
rmw_cyclonedds - ROS2 RMW layer for Eclipse Cyclone DDS.
-
rmw_zenoh - ROS2 RMW layer for zenoh.
-
rmw_iceoryx - Enables usage of the inter-process-communication middleware Eclipse iceoryx.
DDS communication mechanism implementations
-
Connext DDS - Connectivity Software for Developing and Integrating IIoT Systems. :heavy_dollar_sign:
-
Fast-RTPS - Implementation of RTPS Standard (RTPS is the wire interoperability protocol for DDS).
-
OpenSplice - Implementation of the OMG DDS Standard.
:heavy_dollar_sign:
-
CoreDX DDS - Implementation of Twin Oaks Computing, Inc.. :heavy_dollar_sign:
-
freertps - A free, portable, minimalist, work-in-progress RTPS implementation.
-
cdds - Cyclone DDS is developed completely in the open and is undergoing the acceptance process to become part of Eclipse IoT.
-
Micro-XRCE-DDS) - An XRCE DDS implementation (supported by microROS).
Build system (Linux)
-
meta-ros2 - ROS 2 Layer for OpenEmbedded Linux.
Build system (ROS2)
-
ci - ROS 2 CI Infrastructure.
-
ament_cmake_export_jars - The ability to export Java archives to downstream packages in the ament buildsystem in CMake.
-
rmw_implementation_cmake - CMake functions which can discover and enumerate available implementations.
-
rmw_implementation - CMake infrastructure and dependencies for rmw implementations.
Operating systems
-
NuttX - NuttX fork of the official one for use with micro-ROS.
-
RIOT - RIOT is a real-time multi-threading operating system (...,) real-time capabilities, small memory footprint, (...) API offers partial POSIX compliance.
-
eMCOS - POSIX-compliant real-time OS for many-core processors expected to support AUTOSAR in the future.
-
PYNQ - Python-based rapid prototyping of high performance ML applications running on XILINX FPGAs.
-
ReconROS - Framework for ROS2 FPGA-based hardware acceleration. Based on ReconOS.
-
Ubuntu Core - Build secure IoT devices with Ubuntu Core.
-
Ubuntu Server
-
VxWorks - The Secure, Safe, Reliable, and Certifiable real-time OS for Critical Infrastructure
-
Zephyr - Linux Foundation Projects RTOS aiming at beeing secure and safe.
Packaging
-
ros2-snap - Create a snap for your ROS 2 application.
Forks
-
Apex.OS - Apex.OS is a fork of ROS 2 that has been made so robust and reliable that it can be used in safety-critical applications.
Documentation
Books
No books published yet
Courses
Presentations
ROSCon 2022
Program announcement(slides + videos)
- Panel: The ROS 2 Developer Experience video
- Wearable ROS: Development of wearable robot system using ROS 2 video slides
- Building ROS 2 enabled Android apps with C++ video slides
- Distributed Robotics Simulator with Unreal Engine video slides
- Tools and processes for improving the certifiability of ROS 2 video slides
- Failover ROS Framework : Consensus-based node redundancy video slides
- ROS 2 and Gazebo Integration Best Practices video slides
- Chain-Aware ROS Evaluation Tool (CARET) video slides
- ROS 2 network monitoring video slides
- How custom tasks are defined, assigned, and executed in Open-RMF video slides
- A practitioner's guide to ros2_control video slides
- Zenoh: How to Make ROS 2 Work at any Scale and Integrate with Anything video slides
- A case study in optics manufacturing with MoveIt2 and ros2_control video slides
- 20/20 Robot Vision - How to setup cameras in ROS 1 & ROS 2 using camera_aravis video slides
- Filter your ROS 2 content video slides
- Evolving Message Types, and Other Interfaces, Over Time video slides
- Migrating from ROS1 to ROS 2 - choosing the right bridge video slides
- On Use of Nav2 Smac Planners video slides
- Bazel and ROS 2 – building large scale safety applications video slides
- Native Rust components for ROS 2 video slides
- The ROS build farm and you: How ROS packages you release become binary packages. video slides
- mROS 2: yet another runtime environment onto embedded devices video slides
- ROS 2 & Edge Impulse: Embedded AI in robotics applications video slides
- micro-ROS goes Automotive: supporting AUTOSAR-based microcontrollers video slides
- An open architecture for Hardware Acceleration in ROS 2 video slides
- ROS 2 and the Crazyflie: Aerial swarms and Autonomy with a tiny flying robot video slides
- A Raspberry Pi image with ROS 2 + RT and a customizable image builder video slides
ROSCon 2021
Program announcement(slides + videos)
ROSCon Jp 2021
Program announcement(slides + videos)
ROSCon 2020
Program announcement(slides + videos)
ROSCon 2019
Program announcement(slides + videos)
ROSCon Fr 2019
Program announcement(slides + videos)
ROS-I EU Spring 2019 Workshop
- Current Status of ROS 2 Hands-on Feature Overview Slides
2019
- Robot Modularity with Xilinx and H-ROS (Xilinx Inc.) Video
ROSCon JP 2018 (english slide presentations only)
- What's next for ROS? (from slide 24 onwards) Slides Video
ROSCon 2018
program announcement
- Hands-on ROS 2: A Walkthrough
- ROS 2 on Autonomous Driving Vehicles
- RViz – The tale of a migration to ROS 2.0
- Launch for ROS 2
- Getting involved in ROS 2 development
- Planning to Plan: Plugins All The Way Down
- Leveraging DDS Security in ROS2
- Arm DDS Security library: Adding secure security to ROS2
- ROS2: Supercharging the Jaguar4x4
- Performance Test - A Tool for Communication Middleware Performance Measuring
- ROS2 for Android, iOS and Universal Windows Platform: a demonstration of ROS2’s portability, and cross-platform and cross-language capabilities
- Integrating ROS and ROS2 on mixed-critical robotic systems based on embedded heterogeneous platforms
- Towards ROS 2 microcontroller meta cross-compilation
- Node.js Client & Web Bridge Ready for ROS 2.0
- RCLAda: the Ada client library for ROS2
Embedded World Conference 2018
2018
- ROS2 - The Robot Operating System Version 2 (TNG Technology Consulting GmbH) Slides Video
ROS Industrial Conference 2017
- micro Robot Operating System: ROS for highly resource-constrained devices Slides
- ROS2 - it's coming Slides
ROSCon 2017
- The ROS 2 vision for advancing the future of robotics development Slides Video
- ROS2 Fine Tuning Slides Video
- SLAM on Turtlebot2 using ROS2 Slides Video
- Using ROS2 for Vision-Based Manipulation with Industrial Robots Slides Video
2017
- HyphaROS ROS 2.0 Introduction slides
ROS Industrial Conference 2016
- ROS 2.0 AND OPC UA: A STATUS UPDATE Slides
ROSCon 2016
ROSCon 2015
Papers
Podcasts
Services
Cloud robotics
Robotics Capture the Flag (RCTF)
-
rctf-list - A list of Robotics CTF (RCTF) scenarios.
Companies
Organizations
Working Groups
- Edge AI Working Group
- Embedded Working Group
- Hardware Acceleration Working Group
- Navigation Working Group
- Safety Working Group
- Security Working Group
- Technical Steering Committee
- Tooling Working Group
License
