ros2_humble/src 整体架构图(目录反向分析)

ros2_humble/src 整体架构图(目录反向分析)

本文基于工作区实际目录 ros2_humble/src 进行分层抽象,用一张图展示“从构建基础到机器人应用工具链”的整体架构。


1. 架构总图

L0 基础构建与依赖层L1 通信中间件与抽象层L2 客户端运行时层L3 接口与代码生成层L4 系统能力与开发者工具层ament/*\n(ament_cmake, ament_index, ament_lint, ament_package)*_vendor + CMake modules\n(eigen3_cmake_module, python_cmake_module,\nspdlog/tinyxml/yaml/pybind11 ... )ros2/rmw\nRMW C 抽象接口ros2/rmw_implementation\n运行时选择/加载 RMWros2/rmw_fastrtps\nros2/rmw_cyclonedds\nros2/rmw_connextdds\n+ rmw_dds_commoneProsima/Fast-DDS\nCycloneDDS\n(及 iceoryx 等 IPC 相关能力)ros2/rcutils + rcpputils + rpyutilsros2/rcl\n(rcl, rcl_action, rcl_lifecycle,\nrcl_yaml_param_parser)ros2/rclcpp\n(rclcpp, components, lifecycle, action)ros2/rclpyros2/rcl_loggingcommon_interfaces\nrcl_interfaces\nexample_interfaces\nunique_identifier_msgs\n...rosidl / rosidl_defaults\nrosidl_python\nrosidl_typesupport*\nrosidl_ddslaunch + launch_rosros2cli + ros2cli_common_extensionsrosbag2rviz + ros-visualization/* (rqt/qt_gui)geometry2(tf2), urdf, message_filterssros2ros2_tracingros_testing + system_tests + demos/examples

2. 读图说明(简版)

  • L0 提供构建系统与第三方依赖管理,是整棵源码树的地基。
  • L1 把通信“抽象”和“具体 DDS 实现”解耦:上层只依赖 rmw,底层可切换实现。
  • L2 是开发者常直接接触的客户端运行时:C 层 rcl + C++/Python 封装。
  • L3 是接口工程化核心:消息/服务/动作定义经 rosidl 生成后接入运行时与中间件。
  • L4 是工程落地层:启动、命令行、录包、可视化、安全、追踪、系统测试。

3. 结论

src 目录可以看出,ROS 2 并非单一通信库,而是一个由 构建系统 + 接口生成 + 中间件抽象 + 多语言运行时 + 完整工具链 组成的分层机器人软件平台。

文章互动

阅读 --

留言

0 条留言

正在加载留言…