Need help with awesome-ros2?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

fkromer
817 Stars 168 Forks Other 281 Commits 0 Opened issues

Description

The Robot Operating System Version 2.0 is awesome!

Services available

!
?

Need anything else?

Contributors list

Awesome Robot Operating System 2 (ROS 2) Awesome

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

Demonstrations

  • adlink_ddsbot - The ROS 2.0/1.0 based robots swarm architecture (opensplice DDS). adlink_ddsbot
  • adlink_neuronbot - ROS2/DDS robot pkg for human following and swarm. adlink_neuronbot
  • turtlebot3 - ROS2 based TurtleBot3 demo including Bringup, Teleop and Cartographer. turtlebot3

Examples

Benchmarking

  • ros2_benchmarking - Framework for ROS2 benchmarking. ROS2 communication characteristics can be evaluated on several axes, quickly and in an automated way. ros2_benchmarking
  • performance_test - Test performance and latency of various communication means like ROS 2, FastRTPS and Connext DDS Micro. performance_test

Containerization

  • docker-ros2-ospl-ce - A dockerfile to build a ROS2 + OpenSplice CE container. docker-ros2-ospl-ce
  • ros2javadocker - Dockerfiles for building ros2_java with OpenJDK and Android. ros2_java_docker
  • micro-ROS/docker - Docker-related material to setup, configure and develop with micro-ROS hardware.
  • ros-tooling/cross_compile - Cross compile ROS and ROS 2 workspaces to non-native architectures and generate corresponding Docker images.

Ecosystem

  • Link ROS - Cloud Logging for ROS 1 and ROS 2.
  • rosbag2 - ROS2 native rosbag. rosbag2
  • rviz - 3D Robot Visualizer. rviz
  • urdfdom - URDF (U-Robot Description Format) library which provides core data structures and a simple XML parser urdfdom
  • urdfdom_headers - Headers for URDF parsers. urdfdom_headers
  • ros2cli - ROS 2 command line tools. ros2cli
  • orocoskinematicsdynamics - Orocos Kinematics and Dynamics C++ library. orocos_kinematics_dynamics
  • pydds - Simple DDS Python API for Vortex Lite and for OpenSplice. pydds
  • Webots - Robot simulator for ROS 2. webots
  • 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. foxglove studio
  • ROS2 For Unity - An asset package which enables high-performance communication between Unity3D simulations and ROS2 ecosystem. ros2-for-unity

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_control
  • ros2_controllers - Description of ros_controllers. ros2_controllers
  • geometry2 - A set of ROS packages for keeping track of coordinate transforms. geometry2
  • ros2-ORB_SLAM2 - ROS2 node wrapping the ORB_SLAM2 library. ros2-ORB_SLAM2
  • basalt_ros2 - ROS2 wrapper for Basalt VIO. basalt_ros2
  • cartographer - Real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations. cartographer
  • slam_gmapping - Slam Gmapping for ROS2. slam_gmapping
  • slam_toolbox - Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS. slam_toolbox
  • lidarslam_ros2 - ROS2 package of 3D lidar slam using ndt/gicp registration and pose-optimization. lidarslam_ros2
  • lislamros2 - ROS2 package of tightly-coupled lidar inertial ndt/gicp slam referenced from LIO-SAM. li_slam_ros2
  • octomap_server2 - ROS2 stack for mapping with OctoMap. Port of the ROS1 octomap_mapping package. octomap_server2
  • vision_opencv - Packages for interfacing ROS2 with OpenCV. vision_opencv
  • teleoptwistkeyboard - Generic Keyboard Teleop for ROS2. teleop_twist_keyboard
  • teleoptwistjoy - Simple joystick teleop for twist robots. teleop_twist_joy
  • navigation - ROS2 Navigation stack. navigation
  • diagnostics - Forked version of the original ROS1 Diagnostics for ROS 2 (currently diagnostics_updater only). diagnostics
  • robotstatepublisher - Forked version of the original ROS Robot State Publisher with all modifications to compile within a ROS2 Ecosystem. robot_state_publisher
  • common_interfaces - A set of packages which contain common interface files (.msg and .srv). common_interfaces
  • ros2objectmap - "Mark tag of objects on map when SLAM". ros2_object_map
  • ros2objectanalytics - Object Analytics (OA) is ROS2 wrapper for realtime object detection, localization and tracking. ros2_object_analytics
  • ros2intelmovidius_ncs - ROS2 wrapper for Movidius™ Neural Compute Stick (NCS) Neuronal Compute API. ros2_intel_movidius_ncs
  • ros2movingobject - Addressing moving objects based on messages generated by Object Analytics
    ros2_object_analytics
    . ros2_moving_object
  • ros2openvinotoolkit - ROS2 wrapper for CV API of OpenVINO™ (human vision emulation). ros2_openvino_toolkit
  • ros2grasplibrary - Probably a grasp library :). ros2_grasp_library
  • apriltag_ros - ROS2 node for AprilTag detection. apriltag_ros
  • ros2-web-bridge - Bridging your browser to the ROS 2.0. ros2-web-bridge
  • ros2messagefilters - ros2messagefilters blends various messages based on the conditions that filter needs to met and derives from ROS2 porting of ROS message_filters. ros2_message_filters
  • ros2-tensorflow - ROS2 nodes for computer vision tasks in Tensorflow. ros2-tensorflow
  • ros2_pytorch - ROS2 nodes for computer vision tasks in PyTorch ros2_pytorch.
  • pid - A PID controller for ROS2. pid
  • system-modes - System modes for ROS 2 and micro-ROS.
  • darknet_ros - ROS2 wrapper for deploying Darknet's YOLO Computer Vision model.
  • easyperceptiondeployment - Package that accelerates training and deployment of Computer Vision models for industries. easy_perception_deployment
  • easymanipulationdeployment - Package that integrates perception elements to establish an end-to-end pick and place task. easy_manipulation_deployment

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. rclandroid
  • rclnodejs - Node.js version of ROS2.0 client. rclnodejs
  • riot-ros2 - This project enables ROS2 to run on microcontrollers using the RIOT Operating System. riot-ros2
  • 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.
  • microrosarduino - Integration of micro-ROS into Arduino software platform projects.
  • microroszephyr_module - Integration of micro-ROS in Zeyphr OS based projects.

Driver layer

Client libraries

  • rclada - ROS Client Library for Ada. rclada
  • rclcpp - ROS Client Library for C++. rclcpp
  • rclgo - ROS Client Library for Go. rclgo
  • rclpy - ROS Client Library for Python. rclpy
  • rcljava - ROS Client Library for Java. rcljava
  • rclnodejs - ROS Client Library for Node.js. rclnodejs
  • rclobjc - ROS Client Library for Objective C (for iOS). rclobjc
  • rclc - ROS Client Library for C. rclc
  • ros2_rust - Rust bindings for ROS2. ros2_rust
  • ros2_dotnet - .NET bindings for ROS2. ros2_dotnet
  • ros2cs - an alternative to ros2_dotnet, a ROS2 C# interface supporting full range of messages and modern ROS2. ros2cs

Client libraries common

  • rcl - Library to support implementation of language specific ROS Client Libraries. rcl
  • system_tests - Tests for rclcpp and rclpy. system_tests
  • rcl_interfaces - A repository for messages and services used by the ROS client libraries. rcl_interfaces

IDL generators

RMW (ROS middleware)

  • rmw - Contains the ROS middleware API. rmw
  • rmwconnextcpp - Implement the ROS middleware interface using RTI Connext static code generation in C++. rmw_connext_cpp
  • rmwfastrtpscpp - Implement the ROS middleware interface using eProsima FastRTPS static code generation in C++. rmw_fastrtps_cpp
  • rmw_dps - Implementation of the ROS Middleware (rmw) Interface using Intel's Distributed Publish & Subscribe. rmw_dps
  • rmwopensplicecpp - Implement the ROS middleware interface using PrismTech OpenSplice static code generation in C++. rmw_opensplice_cpp
  • rmw_coredx - CoreDX DDS integration layer for ROS2. tocinc/rmw_coredx
  • rmw_freertps - RMW implementation using freertps. tocinc/rmw_coredx
  • rmw_zenoh - RMW implementation using Eclipse zenoh: Zero Overhead Pub/sub, Store/Query and Compute. atolab/rmw_zenoh
  • rcutils - Common C functions and data structures used in ROS 2. rmw
  • freertps - a free, portable, minimalist, work-in-progress RTPS implementation. rmw
  • rmw_cyclonedds - ROS2 RMW layer for Eclipse Cyclone DDS. rmw_cyclonedds
  • 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. :heavydollarsign:
  • Fast-RTPS - Implementation of RTPS Standard (RTPS is the wire interoperability protocol for DDS). Fast-RTPS
  • OpenSplice - Implementation of the OMG DDS Standard. opensplice :heavydollarsign:
  • CoreDX DDS - Implementation of Twin Oaks Computing, Inc.. :heavydollarsign:
  • freertps - A free, portable, minimalist, work-in-progress RTPS implementation. freertps
  • cdds - Cyclone DDS is developed completely in the open and is undergoing the acceptance process to become part of Eclipse IoT. cdds
  • Micro-XRCE-DDS) - An XRCE DDS implementation (supported by microROS). Micro-XRCE-DDS

Build system (Linux)

  • meta-ros2 - ROS 2 Layer for OpenEmbedded Linux. meta-ros2

Build system (ROS2)

  • ci - ROS 2 CI Infrastructure. ci
  • amentcmakeexport_jars - The ability to export Java archives to downstream packages in the ament buildsystem in CMake. ros2_java
  • rmwimplementationcmake - CMake functions which can discover and enumerate available implementations. rmw
  • rmw_implementation - CMake infrastructure and dependencies for rmw implementations. rmw

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. ReconROS
  • 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.

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

Community

Books

No books published yet

Courses

Presentations

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

Robotics Capture the Flag (RCTF)

  • rctf-list - A list of Robotics CTF (RCTF) scenarios.

Companies

Organizations

Working Groups

License

License: CC BY-NC-SA 4.0

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.