【ROS2】代码仓内容概述

ROS2 : https://github.com/ros2

ROS2 由一系列的软件、库、工具组合,热门的库如下:
在这里插入图片描述

查看ROS2的 .repos文件,总结了ROS2核心内容进行了归类。
在这里插入图片描述

以下是对这些仓库的分类梳理,主要基于功能、所属组织及在ROS 2生态中的角色进行归类:

1. 基础构建与工具链(ament系列)

提供ROS 2核心构建系统、包管理、代码检查等基础工具。

  • ament/ament_cmake:ament构建系统核心(基于CMake)
  • ament/ament_index:ament索引系统(管理包路径等)
  • ament/ament_lint:代码检查工具集(如cpplint、flake8等)
  • ament/ament_package:ament包格式定义与解析
  • ament/google_benchmark_vendor:Google Benchmark性能测试工具封装
  • ament/googletest:Google Test单元测试框架封装

2. DDS中间件及通信相关

ROS 2默认基于DDS实现分布式通信,此类包含DDS实现及ROS适配层。

  • DDS实现
    • eProsima/Fast-CDR:Fast DDS的CDR序列化库
    • eProsima/Fast-DDS:Fast DDS中间件(ROS 2默认之一)
    • eProsima/foonathan_memory_vendor:Fast DDS依赖的内存分配库
    • eclipse-cyclonedds/cyclonedds:Cyclone DDS中间件(ROS 2支持的另一种DDS)
  • ROS与DDS适配
    • ros2/rmw:ROS中间件接口(抽象DDS层)
    • ros2/rmw_connextdds:Connext DDS的RMW适配
    • ros2/rmw_cyclonedds:Cyclone DDS的RMW适配
    • ros2/rmw_dds_common:各DDS实现的通用工具
    • ros2/rmw_fastrtps:Fast DDS的RMW适配
    • ros2/rmw_implementation:RMW实现的动态加载工具
    • ros2/rmw_zenoh:Zenoh通信协议的RMW适配(实验性)

3. ROS核心库与运行时

ROS 2核心功能模块,包括节点通信、消息处理、工具链等。

  • 核心框架
    • ros2/rcl:ROS客户端库(C语言核心)
    • ros2/rclcpp:C++客户端库(基于rcl)
    • ros2/rclpy:Python客户端库(基于rcl)
    • ros2/rcutils:ROS通用工具函数(日志、内存等)
    • ros2/rcpputils:C++工具函数(基于rcutils)
    • ros2/rpyutils:Python工具函数
  • 消息与接口
    • ros2/rosidl:ROS接口定义语言(IDL)处理框架
    • ros2/rosidl_core:rosidl核心类型与工具
    • ros2/rosidl_dds:rosidl与DDS类型映射
    • ros2/rosidl_defaults:默认rosidl生成配置
    • ros2/rosidl_dynamic_typesupport:动态类型支持(实验性)
    • ros2/rosidl_dynamic_typesupport_fastrtps:Fast DDS的动态类型支持
    • ros2/rosidl_python:Python消息生成工具
    • ros2/rosidl_runtime_py:Python消息运行时库
    • ros2/rosidl_typesupport:类型支持框架(适配不同DDS)
    • ros2/rosidl_typesupport_fastrtps:Fast DDS的类型支持
    • ros2/example_interfaces:示例消息/服务接口
    • ros2/test_interface_files:测试用接口文件
    • ros2/unique_identifier_msgs:唯一标识符消息类型
  • 其他核心工具
    • ros2/ament_cmake_ros:ament与ROS的CMake集成
    • ros2/common_interfaces:通用消息接口(如std_msgs、sensor_msgs等)
    • ros2/message_filters:消息同步与过滤工具
    • ros2/realtime_support:实时性支持工具(如实时节点)
    • ros2/ros_environment:ROS环境变量定义
    • ros2/ros2_tracing:ROS 2性能追踪工具(基于LTTng)

4. 工具与命令行

ROS 2开发与运行工具,包括命令行、测试、调试等。

  • 命令行工具
    • ros2/ros2cli:ROS 2命令行接口(如ros2 run、ros2 topic等)
    • ros2/ros2cli_common_extensions:cli扩展命令
  • 测试与性能
    • ros2/performance_test_fixture:性能测试框架
    • ros2/ros_testing:ROS测试工具(集成gtest等)
    • osrf/osrf_testing_tools_cpp:OSRF测试工具(C++)
  • 日志与调试
    • ros2/rcl_logging:ROS日志系统(支持spdlog等)
    • ros2/spdlog_vendor:spdlog日志库封装
    • ros2/console_bridge_vendor:日志桥接库封装
  • 数据记录
    • ros2/rosbag2:ROS 2数据记录与回放工具

5. 插件与扩展机制

ROS 2的插件化框架,支持动态加载功能模块。

  • ros/class_loader:C++类加载器(插件基础)
  • ros/pluginlib:ROS插件管理库(基于class_loader)
  • ros/resource_retriever:资源文件检索工具(用于插件等加载资源)

6. 可视化与交互工具

ROS 2的可视化、调试与交互界面工具。

  • 可视化
    • ros2/rviz:3D可视化工具(ROS 2版本)
    • ros-visualization/interactive_markers:交互式标记(用于rviz交互)
  • RQT工具集(ROS Qt-based工具):
    • ros-visualization/rqt:rqt核心框架
    • ros-visualization/rqt_action:动作可视化
    • ros-visualization/rqt_bag:rosbag数据查看
    • ros-visualization/rqt_console:日志查看器
    • ros-visualization/rqt_graph:节点通信图
    • ros-visualization/rqt_msg:消息类型查看
    • ros-visualization/rqt_plot:数据绘图
    • ros-visualization/rqt_publisher:消息发布工具
    • ros-visualization/rqt_py_console:Python控制台
    • ros-visualization/rqt_reconfigure:动态参数配置
    • ros-visualization/rqt_service_caller:服务调用工具
    • ros-visualization/rqt_shell:终端集成
    • ros-visualization/rqt_srv:服务类型查看
    • ros-visualization/rqt_topic:话题查看与监控
  • UI支持
    • ros-visualization/python_qt_binding:Python与Qt绑定
    • ros-visualization/qt_gui_core:Qt GUI核心框架
    • ros-visualization/tango_icons_vendor:Tango图标库封装

7. 机器人模型与几何

机器人模型描述、运动学相关库。

  • ros/urdfdom:URDF模型解析库
  • ros/urdfdom_headers:URDF头文件定义
  • ros2/urdf:ROS 2的URDF处理工具
  • ros/kdl_parser:KDL运动学库的URDF解析器
  • ros/robot_state_publisher:机器人状态发布器(从URDF生成TF)
  • ros2/geometry2:几何变换库(tf2及其扩展)

8. 第三方依赖封装(vendor)

ROS 2对第三方库的封装(统一版本管理)。

  • ros2/eigen3_cmake_module:Eigen3数学库的CMake模块
  • ros2/libyaml_vendor:libyaml库封装
  • ros2/mimick_vendor:Mimick mocking库封装
  • ros2/orocos_kdl_vendor:Orocos KDL运动学库封装
  • ros2/pybind11_vendor:pybind11(C++/Python绑定)封装
  • ros2/tinyxml2_vendor:tinyxml2 XML解析库封装
  • ros2/tlsf:TLSF内存分配器(实时性场景)
  • ros2/yaml_cpp_vendor:yaml-cpp库封装
  • gazebo-release/gz_cmake_vendor:Gazebo CMake模块封装
  • gazebo-release/gz_math_vendor:Gazebo数学库封装
  • gazebo-release/gz_utils_vendor:Gazebo工具库封装
  • eclipse-iceoryx/iceoryx:零拷贝通信库(用于高实时场景)

9. 示例与教程

ROS 2使用示例与教程代码。

  • ros2/demos:ROS 2演示程序(基础功能示例)
  • ros2/examples:更详细的代码示例(C++/Python)
  • ros/ros_tutorials:ROS教程代码(适配ROS 2)

10. 其他功能模块

  • 感知相关
    • ros-perception/image_common:图像处理基础(如image_transport)
    • ros-perception/laser_geometry:激光雷达数据处理
    • ros-perception/point_cloud_transport:点云传输工具
  • 规划相关
    • ros-planning/navigation_msgs:导航相关消息接口
  • 统计与工具
    • ros-tooling/keyboard_handler:键盘输入处理工具
    • ros-tooling/libstatistics_collector:统计数据收集库
  • 安全相关
    • ros2/sros2:ROS 2安全框架(加密、访问控制等)
  • 系统测试
    • ros2/system_tests:ROS 2系统级测试用例
  • Python工具
    • osrf/osrf_pycommon:OSRF Python通用工具
  • Rust支持
    • ros2-rust/rosidl_rust:Rust语言的rosidl生成工具

以上分类覆盖了ROS 2生态的核心组件,从基础构建到上层应用,便于理解各仓库的角色和依赖关系。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ray.so

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值