The Robot Operating System Version 2.0 is awesome!
Switch branches/tags
Nothing to show
Clone or download
Latest commit cf559a5 Oct 10, 2018

README.md

Awesome Robot Operating System 2 (ROS 2) Awesome

A curated list of awesome Robot Operating System Version 2.0 (ROS 2) resources and libraries.

Contents

Packages

Demostrations

  • 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.
  • microROS/docker - Docker-related material to setup, configure and develop with micro-ROS hardware.

Ecosystem

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

Application layer

  • 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.
  • cartographer - Real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations cartographer.
  • 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.
  • apriltag2_node - ROS2 node for AprilTag detection apriltag2_node.
  • 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.
  • pid - A PID controller for ROS2 pid.

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

Driver layer

Client libraries

  • rclada - ROS Client Library for Ada rclada.
  • rclcpp - ROS Client Library for C++ rclcpp.
  • 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.

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.

Documentation

Community

Books

No books published yet

Courses

Presentations

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

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 playground - Online playground to challenge robot security from your browser.
  • rctf-list - A list of Robotics CTF (RCTF) scenarios.

License

License: CC BY-NC-SA 4.0