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
- Forks
- Operating systems
- Documentation
- Community
- Books
- Courses
- Presentations
- Papers
- Podcasts
- Services
- Companies
- Working groups
Packages
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
- turtlebot2_demo – TurtleBot 2 demos using ROS 2.
- examples/rclcpp – C++ examples.
- examples/rclpy – Python examples.
- rcljava_examples – Package containing examples of how to use the rcljava API.
- ros2_talker_android, ros2_listener_android – Example Android apps for the ROS2 Java bindings.
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
- docker-ros2-ospl-ce – A dockerfile to build a ROS2 + OpenSplice CE container.
- ros2_java_docker – Dockerfiles for building ros2_java with OpenJDK and Android.
- 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.
- 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.
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_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.
- 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.
- ros2-web-bridge – 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
.
- pid – A PID controller for ROS2.
- 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.
- 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.
Driver layer
- Autoware.IO – Autoware.IO provides a heterogeneous hardware reference platform and enables the integration of member company’s solutions onto platforms which support the Autoware.Auto and Autoware.AI software stack.
- ros2_xmlrpc_interface – ros2 interface package with xmlrpc, to communicate with a Sesto server using Sesto API.
- cozmo_driver_ros2 – Unofficial Anki Cozmo node for ROS2.
- sphero_ros2 – ROS2 sphero driver.
- flock2 – ROS2 driver for DJI Tello drones.
- ros2_raspicam_node – ROS2 node for Raspberry Pi camera.
- joystick_drivers – ROS2 drivers for joysticks.
- joystick_drivers_from_scratch – Joystick driver packages for ROS 2.
- joystick_ros2 – Joystick driver for ROS2, support all platforms: Linux, macOS, Windows.
- ros2_teleop_keyboard – Teleop Twist Keyboard for ROS2.
- ros_astra_camera – ROS2 wrapper for Astra camera.
- ros2_usb_camera – ROS2 General USB camera driver.
- ros2_android_drivers – Collection of ROS2 drivers for several Android sensors.
- ros2_intel_realsense – ROS2 Wrapper for Intel® RealSense™ Devices.
- raspicam2_node – ROS2 node for camera module of Raspberry Pi.
- ros2_track_imu – ROS2 node for TrackIMU IMU sensor
.
- HRIM – A standard interface for robot modules.
- FIROS2 – ROS2 integrable tool focused in the intercommunication between ROS2 and FIWARE.
- lino2_upper – Linorobot on ROS2.
- RysROS2 – ROS2 software stack for MiniRys robots.
- px4_to_ros – ROS2/ROS packages for communicate PX4 with ROS.
- multiwii_ros2 – ROS2 Node for MultiWii and Cleanflight flight controllers.
- ydlidar_ros2 – ROS2 wrapper for ydlidar.
- zed-ros2-wrapper – ROS 2 wrapper beta for the ZED SDK.
- ros2_denso_radar – Toyota/Lexus 2015-2017 Denso Radar driver for ROS2.
- sick_scan2 – ROS2 driver for the SICK TiM series of laser scanners (TiM551/TiM561/TiM571).
- ros2_ouster_drivers – ROS2 Drivers for the Ouster OS-1 Lidars.
- micro-ROS/hardware – Information and documentation about the hardware platforms used and supported in the micro-ROS project.
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.
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
- rosidl_generator_java – Generate the ROS interfaces in Java.
- rosidl_generator_objc – Generate the ROS interfaces in Objective C.
- rosidl_generator_cpp – Generate the ROS interfaces in C++.
- rosidl_generator_c – Generate the ROS interfaces in C.
- rosidl – Packages which provide the ROS IDL (.msg) definition and code generation.
- rosidl_dds – Generate the DDS interfaces for ROS interfaces.
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.
- rcutils – Common C functions and data structures used in ROS 2.
- freertps – a free, portable, minimalist, work-in-progress RTPS implementation.
- rmw_zhe – An ROS2 RMW implementation on top of Zhe.
- rmw_cyclonedds – ROS2 RMW layer for Eclipse Cyclone DDS.
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).
- OpenSplice – Implementation of the OMG DDS Standard.
💲
- CoreDX DDS – Implementation of Twin Oaks Computing, Inc.. 💲
- 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 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
- ROS Index – Future single entry point into ROS2 documentation (BETA).
- ROS 2 Design – Articles which inform and guide the ROS 2.0 design efforts.
- ROS 2 Docs (Overview) – Details about ROS 2 internal design and organisation.
- ROS 2 Tutorials – Study about ROS2 concept, libraries, build, and development with demoes/examples.
- ROS 2 Wiki – Entry point to find all kind of information about ROS 2.
- ROS 2 Distribution (rosdistro) – Info about distributions and the included packages.
- ROS2 package status.
- Bouncy package status – Status of ROS Bouncy packages.
- Ardent package status – Status of ROS2 Ardent packages.
- ROS2 Buildfarm – Build information (Jenkins build farm).
- ROS2 CLI cheats sheet – A cheats sheet for ROS 2 Command Line Interface.
Community
Books
No books published yet
Courses
- ROS2 How To: Discover Next Generation ROS (Udemy)
- ROS 2 New Features: Skill-up with the latest features of Robot Operating System 2 (Udemy)
- ROS 2 Basics in 5 Days (C++) – Learn how to start working with ROS 2 (The Construct)
- ROS2 Autoware Course
- Autoware Course Lecture 1: Development Environment
- Autoware Course Lecture 2: ROS2 101
- Autoware Course Lecture 3: ROS 2 Tooling – Develop Like a Pro
- Autoware Course Lecture 4: Platform HW, RTOS and DDS
- Autoware Course Lecture 5: Autonomous Driving Stacks
- Autoware Course Lecture 6: Autoware 101
- Autoware Course Lecture 7: Object Perception: LIDAR
- Autoware Course Lecture 8: Object Perception: CAMERA
- Autoware Course Lecture 9: Object Perception: Radar
- Autoware Course Lecture 10: State Estimation for Localization
- Autoware Course Lecture 11: LGSVL Simulator
- Autoware Course Lecture 12: Motion Control
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)
ROSCon 2018
- 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
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
- ROS 2 on “small” embedded systems Slides Video
- State of ROS 2 – demos and the technology behind Slides Video
- Real-time Performance in ROS 2 Slides Video
Papers
- Time Synchronization in modular collaborative robots
- Open Problems in Robotic Anomaly Detection
- Towards a distributed and real-time framework for robots: Evaluation of ROS 2.0 communications for real-time robotic applications
- An information model for modular robots: the Hardware Robot Information Model (HRIM)
- Introducting the Robot Security Framework (RSF), A standardized methodology to perform security assessments in robotics
- Towards an open standard for assessing the severity of robot security vulnerabilities, The Robot Vulnerability Scoring System (RVSS)
- Robot Operating System 2 – The need for a holistic security approach to robotic architectures – Ubuntu 16.04, ROS 2 Beta 2/3, and RTI 5.3 DDS with
DDS Security. - Maruyama, Yuya et al. “Exploring the performance of ROS2.” 2016 International Conference on Embedded Software (EMSOFT) (2016): 1-10.
Podcasts
- ROS 2 and DDS for IoT devices with HaoChih Lin (from 5th minute onwards)
- Everything about ROS 2 with Dirk Thomas (from 16th minute onwards)
Services
Robotics Capture the Flag (RCTF)
- rctf-list – A list of Robotics CTF (RCTF) scenarios.
Companies
- Acutronic Robotics – Not existing anymore. Initiators of the Hardware Robot Information Model (HRIM), Hardware Robot Operating System (H-ROS) and creators of the world’s first modular industrial robot arm MARA.
- ADLINK – “Leading EDGE COMPUTING”.
- Alias Robotics – Products and services in the context of robot cybersecurity.
- Amazon – Robotics Team of Amazon Amazon Web Services (AWS).
- Apex.AI – “Safe and certified software for autonomous mobility”.
- AutonomouStuff – “The world leader in autonomy systems and solutions”.
- Bosch – Robotics Team of Bosch Research.
- Canonical – The company behind Ubuntu.
- Eprosima – “The middleware experts”.
- Ericsson Research – Connect ROS2 applications to 5G networks for M2M communication.
- Fraunhofer Institute for Manufacturing Engineering and Automation IPA – Robot and assistive systems.
- GESTALT ROBOTICS – Service provider for intelligent automation.
- Klepsydra Technologies.
- MathWorks – ROS Toolbox.
- Roboception GmbH – Real-Time Perception for Your Robot.
- ROBOOX – OPEN-SOURCE SOFTWARE ECOSYSTEM FOR CONSUMER ROBOTS.
- Rover Robotics – Rugged, industrial-grade robots.
- Sony Corporation.
- synapticon – ROS compatible motion control and drive products with efforts to support ROS2.
- Wind River – ROS2 for VxWorks.
Working Groups
- Edge AI Working Group
- Embedded Working Group
- Navigation Working Group
- Safety Working Group
- Security Working Group
- Discourse threads tagged “wg-security”
- ros-security/community – Outlines the governance of the ROS 2 Security Working Group.
- Technical Steering Committee
- Tooling Working Group
Tags
Robot