Awesome Robot Operating System 2 (ROS 2) 
<img src="https://raw.githubusercontent.com/fkromer/awesome-ros2/master/ros_logo.svg?sanitize=true" align="right" width="86">
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.
DEPRECATION NOTICE: This repository is in the process of beeing handed over to Open Robotics.
Feel free to checkout the GitHub ROS2 organization to find the repo there in the future.
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.