Courses & TutorialsOperating System

Awesome Robot Operating System 2 – Massive Collection of Resources

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
  • ros2_java_docker – 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.

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
  • orocos_kinematics_dynamics – 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

Penetration testing

  • aztarna – A footprinting tool for robots.
  • ros2_fuzzer – ROS2 Topic & Service Fuzzer.

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_controlros2_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
  • li_slam_ros2 – ROS2 package of tightly-coupled lidar inertial ndt/gicp slam referenced from LIO-SAM. li_slam_ros2
  • vision_opencv – Packages for interfacing ROS2 with OpenCV. vision_opencv
  • teleop_twist_keyboard – Generic Keyboard Teleop for ROS2. teleop_twist_keyboard
  • teleop_twist_joy – 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
  • robot_state_publisher – 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
  • ros2_object_map – “Mark tag of objects on map when SLAM”. ros2_object_map
  • ros2_object_analytics – Object Analytics (OA) is ROS2 wrapper for realtime object detection, localization and tracking. ros2_object_analytics
  • ros2_intel_movidius_ncs – ROS2 wrapper for Movidius™ Neural Compute Stick (NCS) Neuronal Compute API. ros2_intel_movidius_ncs
  • ros2_moving_object – Addressing moving objects based on messages generated by Object Analytics ros2_object_analytics. ros2_moving_object
  • ros2_openvino_toolkit – ROS2 wrapper for CV API of OpenVINO™ (human vision emulation). ros2_openvino_toolkit
  • ros2_grasp_library – 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
  • 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_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.

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.

“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.

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

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
  • rmw_connext_cpp – Implement the ROS middleware interface using RTI Connext static code generation in C++. rmw_connext_cpp
  • rmw_fastrtps_cpp – 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
  • rmw_opensplice_cpp – 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
  • rcutils – Common C functions and data structures used in ROS 2. rmw
  • freertps – a free, portable, minimalist, work-in-progress RTPS implementation. rmw
  • rmw_zhe – An ROS2 RMW implementation on top of Zhe. rmw_zhe
  • rmw_cyclonedds – ROS2 RMW layer for Eclipse Cyclone DDS. rmw_cyclonedds

DDS communication mechanism implementations

  • Connext DDS – Connectivity Software for Developing and Integrating IIoT Systems. 💲
  • Fast-RTPS – Implementation of RTPS Standard (RTPS is the wire interoperability protocol for DDS). Fast-RTPS
  • OpenSplice – Implementation of the OMG DDS Standard. opensplice 💲
  • CoreDX DDS – Implementation of Twin Oaks Computing, Inc.. 💲
  • 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
  • ament_cmake_export_jars – The ability to export Java archives to downstream packages in the ament buildsystem in CMake. ros2_java
  • rmw_implementation_cmake – 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 suppport AUTOSAR in the future.
  • PYNQ – Python-based rapid prototyping of high performance ML applications running on XILINX FPGAs.
  • 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

Working Groups

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button