ROS2资源整理
Awesome Robot Operating System 2 (ROS 2)中文版 
精心编排的机器人操作系统2.0版(ROS 2)资源和库列表
机器人操作系统2(ROS 2)是一套软件库和工具,可以帮助你建立机器人应用。从驱动程序到最先进的算法,以及强大的开发者工具,ROS 2拥有你的下一个机器人项目所需要的东西。而且都是开源的。
主要内容
软件包
展示
- adlink_ddsbot - 基于ROS 2.0/1.0的机器人集群架构(opensplice DDS).
- adlink_neuronbot - ROS2/DDS机器人软件包,用于人类的跟踪和集群.
- turtlebot3 - 基于ROS2的TurtleBot3演示,包括Bringup、Teleop和Cartographer.
示例
- turtlebot2_demo - 使用ROS 2的TurtleBot 2演示.
- examples/rclcpp - C++ 示例.
- examples/rclpy - Python 示例.
- rcljava_examples - 包含如何使用rcljava API的例子的软件包.
- ros2_talker_android, ros2_listener_android - ROS2 Java绑定的Android应用实例.
对比分析
- ros2_benchmarking - ROS2基准测试的框架。ROS2的通信特性可以在几个轴上进行快速和自动化的评估.
- performance_test - 测试各种通信手段的性能和延迟,如ROS 2、FastRTPS和Connext DDS Micro.
容器化
- docker-ros2-ospl-ce - 建立ROS2+OpenSplice CE容器的docker文件.
- ros2_java_docker - 用OpenJDK和Android构建ros2_java的Dockerfiles.
- micro-ROS/docker - 设置、配置和开发微型ROS硬件的Docker相关材料.
- ros-tooling/cross_compile - 将ROS和ROS 2工作空间交叉编译到非本地架构,并生成相应的Docker镜像.
- ros2-docker - 通过互联网连接运行在Docker容器中的ROS 2节点.
网络
- Husarnet VPN - 一个专门用于ROS和ROS 2的P2P、安全网络层.
生态
- Link ROS - 用于ROS 1和ROS 2的云日志.
- rosbag2 - ROS2原生的rosbag.
- rviz - 3D机器人展示台.
- urdfdom - URDF(U-Robot描述格式)库,提供核心数据结构和一个简单的XML解析器
- urdfdom_headers - 用于URDF分析器的头文件.
- ros2cli - ROS 2命令行工具.
- orocos_kinematics_dynamics - Orocos运动学和动力学C++库.
- pydds - 用于Vortex Lite和OpenSplice的简单DDS Python API.
- Webots - 用于ROS 2的机器人模拟器.
- LGSVL - 仿真软件加速自动驾驶汽车的安全开发.
- Unity Robotics Hub - 这是一个关于Unity中机器人模拟的工具、教程、资源和文档的中心库.
- Foxglove Studio - 用于机器人的综合可视化和诊断工具.
- ROS2 For Unity - 一个资产包,使Unity3D模拟和ROS2生态系统之间的高性能通信成为可能.
交互
- Jupyter ROS2 - 用于ROS2的Jupyter小组件帮助程序.
渗透测试
- aztarna - 一个用于机器人的足迹工具.
- ros2_fuzzer - ROS2主题和服务模糊器.
应用层
- Apex.Autonomy - Apex.Autonomy提供了作为独立构件的自治算法,并与Autoware.Auto兼容.
- Autoware.Auto - Autoware.Auto为自动驾驶技术提供一个基于ROS 2的开源软件栈.
- ros2_control -
ros2_control
是对ROS 2中的新功能如何在机器人控制方面进行阐述和使用的一个概念证明 (ros2_controllers
). - ros2_controllers - ros_controllers的描述.
- geometry2 - 一组用于跟踪坐标变换的ROS包.
- ros2-ORB_SLAM2 - 封装ORB_SLAM2库的ROS2节点.
- basalt_ros2 - Basalt VIO的ROS2包装器.
- cartographer - 跨越多个平台和传感器配置的二维和三维实时同步定位和测绘(SLAM).
- slam_gmapping - 用于ROS2的Slam Gmapping.
- slam_toolbox - 用ROS在潜在的大规模地图中进行终身制图和定位的Slam工具箱.
- lidarslam_ros2 - 使用ndt/gicp注册和姿势优化的三维激光雷达slam的ROS2软件包.
- li_slam_ros2 - 参考LIO-SAM的紧耦合激光雷达惯性ndt/gicp slam的ROS2软件包.
- octomap_server2 - 用OctoMap绘图的ROS2栈。ROS1的端口 octomap_mapping 软件包.
- vision_opencv - 用于连接ROS2和OpenCV的软件包.
- teleop_twist_keyboard - 用于ROS2的通用键盘远程操作.
- teleop_twist_joy - 用于扭转机器人的简单操纵杆远程操作.
- navigation - ROS2导航栈.
- diagnostics - 原始ROS1诊断程序的分叉版本,适用于ROS 2(目前只有诊断程序_updater).
- robot_state_publisher - 原始ROS机器人状态发布器的分叉版本,经过所有修改,可以在ROS2生态系统中编译.
- common_interfaces - 一组包含通用接口文件(.msg和.srv)的软件包.
- ros2_object_map - “SLAM时在地图上标记物体的标签” .
- ros2_object_analytics - 物体分析(OA)是ROS2封装器,用于实时物体检测、定位和跟踪.
- ros2_intel_movidius_ncs - Movidius™神经计算棒(NCS)神经元计算API的ROS2包装器.
- ros2_moving_object - 根据物体分析所产生的信息对移动物体进行寻址
ros2_object_analytics
. - ros2_openvino_toolkit - OpenVINO™的CV API的ROS2封装器(人类视觉仿真).
- ros2_grasp_library - 可能是一个把握的图书馆 :).
- apriltag_ros - 用于检测AprilTag的ROS2节点.
- ros2-web-bridge - 将你的浏览器与ROS 2.0相连接.
- ros2_message_filters - ros2_message_filters根据过滤器需要满足的条件来混合各种消息,源于ROS2移植的ROS message_filters.
- ros2-tensorflow - ROS2 nodes for computer vision tasks in Tensorflow.
- ros2_pytorch - PyTorch中用于计算机视觉任务的ROS2节点
.
- pid - 一个用于ROS2的PID控制器.
- system-modes - ROS 2和微型ROS的系统模式.
- darknet_ros - 用于部署Darknet的YOLO计算机视觉模型的ROS2包装器.
- easy_perception_deployment - 加快计算机视觉模型的培训和部署的软件包,适用于各行业.
- easy_manipulation_deployment - 整合感知元素以建立一个端到端的取放任务的软件包.
Middleware
- Micro XRCE-DDS Agent - Micro XRCE-DDS代理在DDS网络和Micro XRCE-DDS客户端之间充当服务器.
- Micro XRCE-DDS Agent docker - 包含Micro XRCE-DDS代理的Docker镜像.
- Micro XRCE-DDS Client - Micro XRCE-DDS实现了一个客户-服务器协议,使资源有限的设备(客户)能够参与DDS通信.
- micro-ROS-Agent - 使用Micro XRCE-DDS代理的ROS 2软件包.
- Eclipse Zenoh - Zenoh 是一个可扩展的、性能极好的协议,可以透明地用于与其他国家进行交互 ROS2 applications 以及为 R2X communication. (https://img.shields.io/github/stars/eclipse-zenoh/zenoh)
- Eclipse Zenoh-Plugin-DDS - 这是 zenoh 插件它允许在zenoh上透明地路由ROS2/DDS数据. 这通常用于 R2X communication over Wireless network or across the Internet. (https://img.shields.io/github/stars/eclipse-zenoh/zenoh-plugin-dds)
“系统” 捆绑
- rclandroid - 用于ROS2的Android API.
- rclnodejs - ROS2.0客户端的Node.js版本.
- riot-ros2 - 这个项目使ROS2能够在使用RIOT操作系统的微控制器上运行.
- ROS2-Integration-Service - ROS2集成和路由,提供了一个完整的工具,使其他技术与ROS2轻松集成,并在广域网/互联网上启用ROS2.
- soss - 系统合成器用于通过ROS2-集成服务将ROS2与其他(通信)系统集成.
- micro_ros_arduino - 将微型ROS集成到Arduino软件平台项目中.
- micro_ros_zephyr_module - 在基于Zeyphr操作系统的项目中整合微型ROS.
驱动层
- Autoware.IO - Autoware.IO提供了一个异构的硬件参考平台,使成员公司的解决方案能够整合到支持Autoware.Auto和Autoware.AI软件栈的平台上.
- ros2_xmlrpc_interface - 带有xmlrpc的ros2接口包,使用Sesto API与Sesto服务器进行通信.
- cozmo_driver_ros2 - 用于ROS2的非官方Anki Cozmo节点.
- sphero_ros2 - ROS2 sphero的驱动程序.
- flock2 - 用于DJI Tello无人机的ROS2驱动程序.
- ros2_raspicam_node - 用于Raspberry Pi相机的ROS2节点.
- joystick_drivers - 用于操纵杆的ROS2驱动程序.
- joystick_drivers_from_scratch - 用于ROS 2的操纵杆驱动包.
- joystick_ros2 - ROS2的操纵杆驱动程序,支持所有平台。Linux, macOS, Windows.
- ros2_teleop_keyboard - 用于ROS2的Teleop Twist键盘.
- ros_astra_camera - 用于Astra相机的ROS2封装.
- ros2_usb_camera - ROS2通用USB摄像头驱动程序.
- ros2_android_drivers - 用于几个安卓传感器的ROS2驱动集合.
- ros2_intel_realsense - 用于Intel® RealSense™设备的ROS2封装 .
- raspicam2_node - 用于树莓派相机模块的ROS2节点.
- ros2_track_imu - TrackIMU IMU传感器的ROS2节点
.
- HRIM - 一个机器人模块的标准接口.
- FIROS2 - 专注于ROS2和FIWARE之间互通的ROS2可整合工具.
- lino2_upper - ROS2上的Linorobot.
- RysROS2 - 用于MiniRys机器人的ROS2软件栈.
- px4_to_ros - ROS2/ROS软件包,用于将PX4与ROS进行通信.
- multiwii_ros2 - 用于MultiWii和Cleanflight飞行控制器的ROS2节点.
- ydlidar_ros2 - ydlidar的ROS2包装器.
- zed-ros2-wrapper - 用于ZED SDK的ROS 2包装器测试版.
- ros2_denso_radar - 丰田/雷克萨斯2015-2017年电装雷达驱动器,用于ROS2.
- sick_scan2 - 用于SICK TiM系列激光扫描器的ROS2驱动程序 (TiM551/TiM561/TiM571).
- ros2_ouster_drivers - 用于Ouster OS-1激光雷达的ROS2驱动器.
- micro-ROS/hardware - 有关微型ROS项目中使用和支持的硬件平台的信息和文件.
- Blickfeld Cube 1 & Cube Range - 用于Blickfeld Cube 1和Cube系列的ROS2驱动器.
客户库
- rclada - 用于Ada的ROS客户端库.
- rclcpp - 用于C++的ROS客户端库.
- rclgo - 用于Go的ROS客户端库.
- rclpy - 用于Python的ROS客户端库.
- rcljava - Java的ROS客户端库.
- rclnodejs - 用于Node.js的ROS客户端库.
- rclobjc - 适用于Objective C的ROS客户端库(iOS).
- rclc - 用于C语言的ROS客户端库.
- ros2_rust - ROS2的Rust绑定.
- ros2_dotnet - 用于ROS2的.NET绑定.
- ros2cs - an alternative to ros2_dotnet, a ROS2 C# interface supporting full range of messages and modern ROS2.
常见的客户库
- rcl - 一个替代ros2_dotnet的ROS2 C#接口,支持所有的信息和现代ROS2的功能.
- system_tests - rclcpp和rclpy的测试.
- rcl_interfaces - ROS客户端库所使用的信息和服务的存储库.
IDL生成器
- rosidl_generator_java - 在Java中生成ROS接口.
- rosidl_generator_objc - 在Objective C中生成ROS接口.
- rosidl_generator_cpp - 用C++生成ROS接口.
- rosidl_generator_c - 用C语言生成ROS接口.
- rosidl - 提供ROS IDL(.msg)定义和代码生成的软件包.
- rosidl_dds - 为ROS接口生成DDS接口.
RMW(ROS中间件)
- rmw - 包含ROS中间件API.
- rmw_connext_cpp - 使用RTI Connext静态代码生成的C++语言实现ROS中间件接口.
- rmw_fastrtps_cpp - 使用eProsima FastRTPS静态代码生成的C++实现ROS中间件接口.
- rmw_dps - 使用英特尔的分布式发布和订阅实现ROS中间件(rmw)的接口.
- rmw_opensplice_cpp - 使用PrismTech OpenSplice静态代码生成器在C++中实现ROS中间件接口.
- rmw_coredx - 用于ROS2的CoreDX DDS集成层.
- rmw_freertps - 使用freertps实现RMW.
- rmw_zenoh - 使用Eclipse zenoh实现RMW。零开销的Pub/sub、存储/查询和计算.
- rcutils - ROS 2中使用的常见C函数和数据结构.
- freertps - 一个免费的、可移植的、简约的、正在进行中的RTPS实现.
- rmw_cyclonedds - 用于Eclipse Cyclone DDS的ROS2 RMW层.
- rmw_zenoh - ROS2 RMW层为 zenoh.
- rmw_iceoryx - 启用进程间通信中间件的使用 Eclipse iceoryx.
DDS communication mechanism implementations
- Connext DDS - 用于开发和整合IIoT系统的连接软件. :heavy_dollar_sign:
- Fast-RTPS - 实施RTPS标准(RTPS是DDS的线上互操作协议).
- OpenSplice - OMG DDS标准的实施.
:heavy_dollar_sign:
- CoreDX DDS - 双橡树计算公司的实施 :heavy_dollar_sign:
- freertps - 一个免费的、可移植的、简约的、正在进行中的RTPS实现.
- cdds - Cyclone DDS是完全公开开发的,正在接受过程中,以成为Eclipse IoT的一部分.
- Micro-XRCE-DDS) - 一个XRCE DDS实现(由microROS支持).
系统编译(Linux)
- meta-ros2 - 用于OpenEmbedded Linux的ROS2层.
系统编译 (ROS2)
- ci - ROS 2 CI 基础设施.
- ament_cmake_export_jars - 在CMake的ament构建系统中,能够将Java档案导出为下游包.
- rmw_implementation_cmake - 可以发现和列举可用实现的CMake函数.
- rmw_implementation - rmw实现的CMake基础设施和依赖性.
操作系统
- NuttX - 用于微型ROS的官方NuttX分支.
- RIOT - RIOT是一个实时多线程操作系统(…),实时能力强,内存占用小,(…)API提供部分POSIX兼容性.
- eMCOS - 用于多核处理器的符合POSIX标准的实时操作系统,有望在未来支持AUTOSAR.
- PYNQ - 在XILINX FPGA上运行的基于Python的高性能ML应用的快速原型开发.
- ReconROS - 基于ROS2 FPGA的硬件加速的框架。基于 ReconOS.
- Ubuntu Core - 用Ubuntu Core构建安全的物联网设备.
- Ubuntu Server
- VxWorks - 用于关键基础设施的安全、可靠和可认证的实时操作系统
- Zephyr - Linux基金会项目的RTOS,旨在实现安全和安保.
分支
- Apex.OS - Apex.OS是ROS 2的一个分叉,它已经变得非常强大和可靠,可以用于安全关键型应用.
文档
- ROS Index - 未来进入ROS2文档的单一入口点(BETA).
- ROS 2 Design - 为ROS 2.0设计工作提供信息和指导的文章.
- ROS 2 Docs (Overview) - 关于ROS 2内部设计和组织的细节.
- ROS 2 Tutorials - 学习ROS2的概念、库、构建和开发的演示/示例.
- ROS 2 Wiki - 查找有关ROS 2的各种信息的入口点.
- ROS 2 Distribution (rosdistro) - 关于发行版和所含软件包的信息.
- ROS2 package status.
- Bouncy package status - ROS Bouncy软件包的状态.
- Ardent package status - ROS2 Ardent软件包的状态.
- ROS2 Buildfarm - 构建信息(Jenkins构建场).
- ROS2 CLI cheats sheet - ROS 2命令行界面的作弊表.
- ROS2 Quality Assurance Guidelines - 一套提高软件包质量、遵循REP-2004质量标准和整合持续集成的指南和教程.
社区
书籍
尚无书籍出版
课程
- 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
- ROS2-Industrial training material
会议
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
- 使用赛灵思和H-ROS的机器人模块化(赛灵思公司) Video
ROSCon JP 2018 (english slide presentations only)
ROSCon 2018
- 实践ROS 2:演练
- 关于自动驾驶汽车的ROS 2
- RViz - 迁移到ROS 2.0的故事
- 为ROS 2启动
- 参与到ROS 2的开发中来
- 计划到计划。一路走来的插件
- 在ROS2中利用DDS的安全性
- Arm DDS安全库:为ROS2增加安全保障
- ROS2:对捷豹4x4进行增压
- 性能测试–通信中间件性能测量的工具
- 适用于安卓、iOS和通用Windows平台的ROS2:展示ROS2的可移植性,以及跨平台和跨语言的能力
- 在基于嵌入式异构平台的混合关键型机器人系统上整合ROS和ROS2
- 争取实现ROS 2微控制器元交叉编译
- 为ROS 2.0准备的Node.js客户端和网桥
- RCLAda:ROS2的Ada客户端库
2018年嵌入式世界大会
2018
2017年ROS工业会议
ROSCon 2017
- 推进机器人技术发展的未来的ROS 2愿景 Slides Video
- ROS2微调 Slides Video
- 使用ROS2在Turtlebot2上进行SLAM测试 Slides Video
- 使用ROS2对工业机器人进行基于视觉的操纵 Slides Video
2017
- HyphaROS ROS 2.0介绍 slides
2016年ROS工业会议
- ros 2.0和opc ua:现状更新 Slides
ROSCon 2016
ROSCon 2015
论文
- Distributed and Synchronized Setup towards Real-Time Robotic Control using ROS2 on Linux
- 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)
- Real-Time Characteristics of ROS 2.0 in Multiagent Robot Systems: An Empirical Study
- Response-Time Analysis of ROS 2 Processing Chains Under Reservation-Based Scheduling
- 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.
播客
服务
机器人夺旗(RCTF)
- rctf-list - 机器人CTF(RCTF)方案清单.
相关公司
- Acutronic Robotics - 不复存在. 硬件机器人信息模型(HRIM)、硬件机器人操作系统(H-ROS)的发起者和世界上第一个模块化工业机器人手臂MARA的创造者.
- ADLINK - “领先的边缘计算机”.
- Alias Robotics - 机器人网络安全方面的产品和服务.
- Amazon - 亚马逊的机器人团队 亚马逊网络服务(AWS).
- Apex.AI - “安全和经过认证的自主流动软件”.
- AutonomouStuff - “自主化系统和解决方案的世界领导者”.
- Bosch - 博世研究院的机器人团队.
- Canonical - 乌班图背后的公司.
- Eprosima - “中间件专家”.
- Ericsson Research - 将ROS2应用程序连接到5G网络,用于M2M通信.
- FARobot - 集群机器人系统,一个基于ROS 2/DDS的车队管理系统.
- Fraunhofer Institute for Manufacturing Engineering and Automation IPA - 机器人和辅助系统.
- GESTALT ROBOTICS - 智能自动化的服务提供商.
- Husarnet - 开源的、P2P的、低延迟的机器人专用VPN.
- iRobot - 吸尘和拖地机器人制造商.
- Klepsydra Technologies.
- MathWorks - ROS Toolbox.
- Mission Robotics - 用于海洋智能新时代的硬件和软件.
- Roboception GmbH - 为您的机器人提供实时感知.
- ROBOOX - 消费机器人的开源软件生态系统.
- Rover Robotics - 坚固的工业级机器人.
- Sony Corporation.
- synapticon - 兼容ROS的运动控制和驱动产品,努力支持ROS2.
- Wind River - 用于VxWorks的ROS2.
组织
工作组
- 边缘人工智能工作小组
- 嵌入式工作组
- 硬件加速工作组
- 导航工作小组
- 安全工作小组
- 安全工作小组
- Discourse threads tagged “wg-security”
- ros-security/community - 概述了ROS 2安全工作组的治理情况.
- 技术指导委员会
- 工具工作小组