ROS2 自带功能包按核心底层、通信接口、坐标 / 建模、感知、控制、导航、可视化、工具八大类整理,覆盖机器人开发全栈。以下为 Humble/Iron 主流版本 最常用、必掌握的清单与功能概述。


一、核心底层(运行基础)

1. rcl / rclcpp / rclpy

  • rcl:ROS2 核心 C 语言层,节点、话题、服务、参数底层实现ROS
  • rclcppC++ 客户端库(主用),写节点、发布订阅、服务动作
  • rclpy:Python 客户端库,快速原型、脚本、工具
  • 形态:纯动态库(.so),无独立节点

2. rmw / rmw_fastrtps / rmw_cyclonedds

  • rmw:ROS 中间件抽象层
  • rmw_fastrtps_cpp:默认 DDS 实现(eProsima FastDDS)
  • rmw_cyclonedds_cpp:高性能 DDS 实现
  • 形态:动态库,系统底层加载

3. ament_cmake / ament_package

  • ROS2 编译系统(替代 catkin)ROS
  • 管理依赖、编译 C++/Python、生成消息
  • 形态:构建工具,非运行时库 / 节点

4. rcl_lifecycle / rclcpp_lifecycle

  • 生命周期节点(unconfigured→inactive→active→finalized)
  • 用于控制器、传感器驱动、导航模块
  • 形态:库 + 生命周期管理接口

二、消息 / 接口包(通信数据格式)

1. std_msgs

  • 基础类型:Int32 Float64 String Bool Header
  • 纯消息定义,无库 / 节点

2. geometry_msgs

  • 空间数据:Point Vector3 Pose Twist Transform
  • 坐标、位姿、速度、变换标准定义

3. sensor_msgs

  • 传感器标准:Image LaserScan PointCloud2 Imu NavSatFix
  • 相机、激光雷达、IMU、GPS 统一接口

4. nav_msgs

  • 导航:OccupancyGrid(地图)Odometry(里程计)Path

5. trajectory_msgs / control_msgs

  • 机械臂 / 关节:JointTrajectory 等运动控制消息

6. action_msgs

  • 动作(Action)通信:目标、反馈、结果标准定义

三、坐标与机器人建模

1. tf2 / tf2_ros / tf2_geometry_msgs

  • tf2:坐标变换核心库(树状管理、时间缓存、插值)
  • tf2_ros:ROS2 接口(发布 / 监听静态 / 动态变换)
  • tf2_geometry_msgs:Pose/Transform 消息转换工具
  • 形态:库 + 可执行节点 static_transform_publisher

2. urdf / urdfdom

  • URDF 机器人模型解析(连杆、关节、惯性、视觉、碰撞)
  • 形态:纯库

3. robot_state_publisher

  • /joint_states 发布完整 TF 树(base_link→各连杆)ROS
  • 形态:独立可执行节点(必启动)

4. kdl_parser / orocos_kdl

  • 运动学库:正 / 逆解、雅可比、动力学
  • 形态:纯库

四、感知与视觉

1. cv_bridge

  • ROS sensor_msgs/Image ↔ OpenCV cv::Mat 转换ROS
  • 形态:纯动态库(无节点)

2. image_transport

  • 图像压缩传输:raw compressed theora depth
  • 订阅 / 发布自动选择压缩格式、省带宽
  • 形态:库 + 插件

3. camera_info_manager

  • 相机内参 / 畸变管理(加载 yaml、发布 CameraInfo
  • 形态:库 + 节点

4. laser_filters

  • 激光雷达滤波:遮挡、距离阈值、阴影、体素滤波ROS
  • 形态:库 + 可执行节点 scan_to_scan_filter_chain

5. pcl_ros

  • PCL 点云处理:降采样、去地面、聚类、分割ROS
  • 形态:库 + 节点

6. depth_image_proc

  • 深度图 → 点云(PointCloud2)转换
  • 形态:库 + 节点

五、控制与执行器

1. ros2_control

  • 机器人控制框架:控制器管理器、硬件接口
  • 实时安全、多关节、差速、机械臂通用
  • 核心包
    • controller_manager:加载 / 启停控制器
    • ros2_controllers
      • joint_trajectory_controller:关节轨迹
      • diff_drive_controller:差速底盘
      • forward_command_controller:直接指令
  • 形态:库 + 可执行节点

2. control_toolbox

  • PID、滤波器、限幅等控制算法库
  • 形态:纯库

3. realtime_tools

  • 实时安全缓冲区、线程、发布器
  • 形态:纯库

六、导航与定位

1. nav2(Navigation2)

  • 全套自主导航:
    • nav2_planner:全局路径(A*/Smac)
    • nav2_controller:局部避障(DWA)
    • nav2_recoveries:脱困
    • nav2_bt_navigator:行为树调度
    • nav2_map_server:地图加载 / 保存ROS
  • 形态:库 + 多节点 + launch

2. robot_localization

  • EKF/UKF 多传感器融合(IMU + 里程计 + GPS)ROS
  • 输出连续、平滑位姿 /odometry/filtered
  • 形态:库 + 节点 ekf_node/ukf_node

3. slam

4. slam_toolbox / cartographer

  • SLAM 建图(2D)
  • 形态:库 + 可执行节点

七、可视化与调试

1. rviz2

  • 3D 可视化:地图、TF、激光、相机、路径、机械臂ROS
  • 形态:独立 GUI 可执行程序

2. rqt / rqt_common_plugins

  • 插件化调试工具:
    • rqt_graph:节点拓扑
    • rqt_plot:曲线绘图
    • rqt_console:日志
    • rqt_tf_tree:TF 树ROS
  • 形态:框架 + 插件节点

3. ros2bag(rosbag2)

  • 话题录制 / 回放(db3 格式)ROS
  • 命令:ros2 bag record / play / info
  • 形态:库 + 可执行工具

八、命令行与系统工具

1. ros2cli(核心 CLI)

  • ros2 node:节点列表 / 信息
  • ros2 topic:发布 / 订阅 / 回环
  • ros2 service:调用 / 列表
  • ros2 action:动作目标 / 反馈
  • ros2 param:参数读写
  • ros2 run:启动节点
  • ros2 launch:启动 launch 文件
  • 形态:Python 工具集(无 .so)

2. launch / launch_ros

  • Python launch 系统:启动多节点、参数、命名空间、条件ROS
  • 形态:库 + 解析器

3. ros2doctor

  • 系统检查:DDS、网络、ROS 环境、依赖
  • 形态:命令行工具

4. ros2component

  • 组件容器:动态加载 / 组合节点(同进程)
  • 形态:库 + 节点

九、一张表速查(库 vs 节点)

表格

功能包 主要形态 典型用法
rclcpp/rclpy 纯库 写节点 #include/import
tf2_ros 库 + 节点 代码监听;static_transform_publisher
robot_state_publisher 节点 ros2 run 发布 TF
nav2 库 + 多节点 ros2 launch 一键启动
cv_bridge 纯库 图像转 OpenCV
ros2_control 库 + 节点 控制器管理器 + 硬件驱动
rviz2 独立程序 可视化调试
ros2cli 命令行 终端操作

十、一句话总结

  • 底层 / 算法 / 转换纯动态库(代码调用)
  • 功能模块 / 驱动 / 建图 / 导航库 + 可执行节点(可直接跑)
  • 可视化 / CLI / 工具独立程序 / 命令行
Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐