[具身智能-698]:ROS2常见的自带的功能包目录清单与功能概述!!!
底层 / 算法 / 转换→纯动态库(代码调用)功能模块 / 驱动 / 建图 / 导航→库 + 可执行节点(可直接跑)可视化 / CLI / 工具→独立程序 / 命令行。
·
ROS2 自带功能包按核心底层、通信接口、坐标 / 建模、感知、控制、导航、可视化、工具八大类整理,覆盖机器人开发全栈。以下为 Humble/Iron 主流版本 最常用、必掌握的清单与功能概述。
一、核心底层(运行基础)
1. rcl / rclcpp / rclpy
- rcl:ROS2 核心 C 语言层,节点、话题、服务、参数底层实现ROS
- rclcpp:C++ 客户端库(主用),写节点、发布订阅、服务动作
- 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
- 基础类型:
Int32Float64StringBoolHeader - 纯消息定义,无库 / 节点
2. geometry_msgs
- 空间数据:
PointVector3PoseTwistTransform - 坐标、位姿、速度、变换标准定义
3. sensor_msgs
- 传感器标准:
ImageLaserScanPointCloud2ImuNavSatFix - 相机、激光雷达、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↔ OpenCVcv::Mat转换ROS - 形态:纯动态库(无节点)
2. image_transport
- 图像压缩传输:
rawcompressedtheoradepth - 订阅 / 发布自动选择压缩格式、省带宽
- 形态:库 + 插件
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 / 工具 → 独立程序 / 命令行
更多推荐



所有评论(0)