[ros2学习]-Awesome Robot Operating System2

116
0
2021年2月7日 09时39分

目录

 

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

 

发表评论

后才能评论