目录

 
  • 1 软件包
    • ① 演示套装
    • ② 例子
    • ③ 性能测试工具
    • ④ docker 容器
    • ⑤ 生态系统
    • ⑥ 渗透测试工具
    • ⑦ 应用层
    • ⑦ 中间件
    • ⑧ "系统" 绑定
    • ⑨ Driver layer
    • ⑩ 客户端库
    • ⑪ 通用客户端库
    • ⑫ 生成器
    • ⑬ RMW (ROS middleware)
    • ⑭ DDS通信机制的实现
    • ⑮ 构建系统 (Linux)
    • ⑯ 构建系统 (ROS2)
  • 2 操作系统
  • 3 分支
  • 4 文档
  • 5 社区
  • 6 总结
  参考下 https://fkromer.github.io/awesome-ros2/ ,整理出来方便学习  

1 软件包

 

① 演示套装

  展示几个演示套件     adlink 树莓派机器人   在这里插入图片描述   adlink_neuronbot 大一点   在这里插入图片描述   TurtleBot3 官网 有钱可以买   在这里插入图片描述  

② 例子

   

③ 性能测试工具

 
  • ros2_benchmarking - ROS2基准测试框架。ROS2通信特性可以在多个方向上快速、自动化地进行评估。
  • performance_test - 测试ROS 2、FastRTPS、Connext-DDS-Micro等多种通信方式的性能和延时。
 

④ docker 容器

  主要是ce jdk 和 micro-ROS 的docker  
  • 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
 

⑤ 生态系统

  ros2 的生态主要包括这些  
  • rosbag2-ros2本地rosbag。
  • rviz-3D机器人可视化程序。
  • urdfdom-URDF(U-Robot描述格式)库,提供核心数据结构和简单的XML解析器
  • urdfdom_headers-用于URDF解析器的头。
  • ros2cli-ros2命令行工具。
  • orocos_kinematics_dynamics - orocos运动学和动力学C++库。
  • pydds-用于Vortex Lite和OpenSplice的简单DDS Python API。
 

⑥ 渗透测试工具

   

⑦ 应用层

  各种好用的包,值得收藏  
  • Apex.Autonomy - Autonomy作为独立的构建块提供自动控制算法,并且与Autoware.Auto兼容。
  • Autoware.Auto - Autoware.Auto为自动驾驶技术提供了一个基于ROS 2的开源软件栈。
  • ros2_control - `ros2_control“是一个概念的证明,说明了ros2中的新特性如何在机器人控制的上下文中被阐述和使用(“ros2_controllers”)。
  • ros2_controllers - ros_controllers 的说明.
  • geometry2 - 一套用于跟踪坐标变换的ROS包。
  • cartographer - 跨多个平台和传感器配置的二维和三维实时同步定位和映射(SLAM)。
  • vision_opencv - OpenCV 和ROS 的接口包.
  • teleop_twist_keyboard - ROS2通用键盘遥控器。
  • teleop_twist_joy - 简单的操纵杆遥控两轮差速机器人。.
  • navigation - ROS2导航堆栈.
  • diagnostics - ROS 2原始ROS1诊断的分叉版本(当前仅限Diagnostics_updater)。
  • robot_state_publisher - 原始ROS Robot State Publisher的分叉版本,包含在ROS2生态系统中编译的所有修改。
  • common_interfaces - 一组包含公共接口文件(.msg和.srv)的包。
  • ros2_object_map - “SLAM 时 在地图上标记对象的标记”.
  • ros2_object_analytics - Object Analytics(OA)是用于实时对象检测、定位和跟踪的ROS2包装器。
  • ros2_intel_movidius_ncs - ROS2包装的 Movidius™ 神经计算棒(NCS)神经计算API。
  • ros2_moving_object - 目标追踪,显示目标速度的包,已经合并到 ros2_object_analytics里
  • ros2_openvino_toolkit - ROS2 包装的 OpenVINO™ 的 cv api (人眼视觉仿真).
  • ros2_grasp_library - 一个抓取包,机械手臂的那种
  • apriltag_ros - 用于aprltag检测的ROS2节点
  • ros2-web-bridge - 将浏览器连接到ROS 2.0。
  • ros2_message_filters - ros2_message_filters根据需要满足的条件混合各种消息,并从ROS message_filters的ros2移植派生。
  • ros2-tensorflow - Tensorflow中计算机视觉任务的ROS2节点。
  • ros2_pytorch - PyTorch中用于计算机视觉任务的ROS2节点
  • pid - ROS2的PID控制器。
  • system-modes -ROS 2和micro ROS的系统模式。
 

⑦ 中间件

  DDS中间件    

⑧ “系统” 绑定

 
  • rclandroid - Android API.
  • rclnodejs - Node.js version of ROS2.0 client.
  • riot-ros2 - 该项目使ros2能够在使用riot操作系统的微控制器上运行。
  riot的硬件要求在这里插入图片描述

⑨ Driver layer

  一些驱动的包    

⑩ 客户端库

  支持的挺多的 iso竟然也有  
  • 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.
 

⑪ 通用客户端库

 
  • rcl - 支持特定语言ROS客户端库实现的库。
  • system_tests - Trclcpp和rclpy 测试库。
  • rcl_interfaces - ROS客户端库使用的消息和服务的分支。
 

⑫ 生成器

  将自己的包导出的必备生成器,这个后面要明白    

⑬ RMW (ROS middleware)

  ros的中间件,就是好多中间件可以自己选择  
  • rmw - 包含ROS中间件API
  • rmw_connext_cpp - 使用C++中的RTI CONNECT静态代码生成实现ROS中间件接口。
  • rmw_fastrtps_cpp - 使用C++中的EPRIMSIMA FATTRTPS静态代码生成实现ROS中间件接口。
  • rmw_dps - 使用Intel的分布式发布和订阅实现ROS中间件(rmw)接口。
  • rmw_opensplice_cpp - 使用PrimMeTe+OpenSpice静态代码生成在C++中实现ROS中间件接口。
  • rmw_coredx - 用于ROS2的coredx DDS集成层。
  • rmw_freertps - 使用freertps的rmw实现。
  • rcutils - ros2中使用的常见C函数和数据结构
  • freertps - 一个免费的、可移植的、极简的、正在工作的RTPS实现。
  • rmw_zhe - 在zhe之上的ROS2 rmw实现。.
  • rmw_cyclonedds - 用于Eclipse Cyclone DDS的ROS2 rmw层。
 

⑭ DDS通信机制的实现

 
  • Connext DDS - 用于开发和集成IIoT系统的连接软件。 ?
  • Fast-RTPS - RTPS标准的实现(RTPS是DDS的有线互操作协议)。
  • OpenSplice - OMG DDS标准的实现。?
  • CoreDX DDS - Twin Oaks Computing, Inc… 的实现 ?
  • freertps - 一个免费的、可移植的、极简的、正在工作的RTPS实现。
  • cdds - Cyclone DDS完全开放式开发,并正在接受过程中成为EclipseIoT的一部分。
  • Micro-XRCE-DDS) - 一个XRCE DDS实现(由micros支持)。
 

⑮ 构建系统 (Linux)

 
  • meta-ros2 - 开放嵌入式Linux的ros2层。
 

⑯ 构建系统 (ROS2)

   

2 操作系统

 
  • NuttX - 用于micro-ROS的官方NuttX分支。
  • RIOT - RIOT是一个实时多线程操作系统(…,)实时功能,小内存占用,(…)API提供部分POSIX兼容性。
  • eMCOS - 适用于许多核心处理器的符合POSIX的实时操作系统,预计将来将支持AUTOSAR。
  • Zephyr - Linux基金会项目RTOS旨在确保安全。
 

3 分支

 
  • Apex.OS - Apex.OS是ROS 2的一个分支,它已经变得非常健壮和可靠,可以用于安全关键的应用程序。
 

4 文档

   

5 社区

   

6 总结

  下面的学习主要参考:  
  1. ROS 2 Tutorials
  2. examples/rclcpp - C++ examples
  3. examples/rclpy - Python examples.