目录
- 1 软件包
- ① 演示套装
- ② 例子
- ③ 性能测试工具
- ④ docker 容器
- ⑤ 生态系统
- ⑥ 渗透测试工具
- ⑦ 应用层
- ⑦ 中间件
- ⑧ “系统” 绑定
- ⑨ Driver layer
- ⑩ 客户端库
- ⑪ 通用客户端库
- ⑫ 生成器
- ⑬ RMW (ROS middleware)
- ⑭ DDS通信机制的实现
- ⑮ 构建系统 (Linux)
- ⑯ 构建系统 (ROS2)
- 2 操作系统
- 3 分支
- 4 文档
- 5 社区
- 6 总结
参考下 https://fkromer.github.io/awesome-ros2/ ,整理出来方便学习
1 软件包
① 演示套装
展示几个演示套件
- adlink_ddsbot – 快速搭建一个adlink的小车
- adlink_neuronbot – 大点的移动平台
- turtlebot3 – 基于ros2的 TurtleBot3 demo 包含 Bringup, Teleop and Cartographer.
adlink 树莓派机器人
adlink_neuronbot 大一点
TurtleBot3 官网 有钱可以买
② 例子
- turtlebot3_demo – TurtleBot 3demos 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.
③ 性能测试工具
- 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中间件
- Micro XRCE-DDS Agent – Micro XRCE-DDS代理充当DDS网络和Micro XRCE-DDS客户端之间的服务器。
- Micro XRCE-DDS Agent docker – 包含Micro XRCE-DDS代理的Docker映像。
- Micro XRCE-DDS Client – MicroXRCE-DDS实现了一个客户机-服务器协议,使资源受限的设备(客户机)能够参与DDS通信。
- micro-ROS-Agent – 使用Micro XRCE-DDS试剂的ROS 2包装。
⑧ “系统” 绑定
- rclandroid – Android API.
- rclnodejs – Node.js version of ROS2.0 client.
- riot-ros2 – 该项目使ros2能够在使用riot操作系统的微控制器上运行。
riot的硬件要求
⑨ Driver layer
一些驱动的包
- 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 driver.
- flock2 – DJI Tello无人机的ROS2驱动程序。
- ros2_raspicam_node – 用于树莓派相机的ros2 node。
- joystick_drivers – 用于操纵杆的ros2驱动程序。
- joystick_drivers_from_scratch – 操纵杆驱动程序包为ros2。
- joystick_ros2 – 用于ros2的操纵杆驱动程序,支持所有平台:Linux、macOS、Windows。
- ros2_teleop_keyboard – 用于ros2的teleop扭转键盘。
- ros_astra_camera – astra camera的ros2包。
- ros2_usb_camera -ros2通用usb摄像头驱动程序。
- ros2_android_drivers – 几个android传感器的ros2驱动程序集合。
- ros2_intel_realsense – intel® realsense™的ros2包 。
- raspicam2_node – Raspberry Pi相机模块的ROS2节点
- ros2_track_imu – 用于TrackIMU imu传感器的ros2节点
- HRIM -机器人模块的标准接口.
- FIROS2 – ROS2集成工具,专注于ROS2和FIWARE之间的交互。
- lino2_upper – ROS2上的Linorobot.
- RysROS2 – 适用于MiniRys机器人的ROS2软件堆栈
- px4_to_ros -ROS2/ros包,用于与ros通信px4。
- multiwii_ros2 – mutiwii和清洁飞行控制器的ros2节点。
- ydlidar_ros2 – ydlidar ROS2 包.
- zed-ros2-wrapper – 用于zed SDK的ros2包装测试版。
- ros2_denso_radar – 丰田/雷克萨斯2015-2017年ros2 denso雷达驱动程序。
- sick_scan2 – sick TiM系列激光扫描仪的ROS2驱动程序(TiM551/TiM561/TiM571)。
- micro-ROS/hardware – 有关micro ROS项目中使用和支持的硬件平台的信息和文档。
⑩ 客户端库
支持的挺多的 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客户端库使用的消息和服务的分支。
⑫ 生成器
将自己的包导出的必备生成器,这个后面要明白
- 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 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)
- ci – ROS 2 ci 构建。.
- ament_cmake_export_jars – 将java存档导出到cmake中ament构建系统的下游包的能力。
- rmw_implementation_cmake – 可以发现和枚举可用实现的CMake函数。
- rmw_implementation – CMake基础设施和rmw实现的依赖关系。
2 操作系统
- NuttX – 用于micro-ROS的官方NuttX分支。
- RIOT – RIOT是一个实时多线程操作系统(…,)实时功能,小内存占用,(…)API提供部分POSIX兼容性。
- eMCOS – 适用于许多核心处理器的符合POSIX的实时操作系统,预计将来将支持AUTOSAR。
- Zephyr – Linux基金会项目RTOS旨在确保安全。
3 分支
- Apex.OS – Apex.OS是ROS 2的一个分支,它已经变得非常健壮和可靠,可以用于安全关键的应用程序。
4 文档
- 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 – Status of ROS Bouncy packages.
- Ardent package status – Status of ROS2 Ardent packages.
- ROS2 Buildfarm – 构建信息(Jenkins构建场)
- ROS2 CLI cheats sheet – ROS2命令行界面的备忘录。
5 社区
6 总结
下面的学习主要参考:
- ROS 2 Tutorials
- examples/rclcpp – C++ examples
- examples/rclpy – Python examples.