任务 2: 模拟传感器数据源 (Mock Sensor Source)

1. 模块概述

本模块提供一个模拟相机节点,作为感知链路的输入源。在没有真实相机、也没有启动 Carla 仿真的情况下,它按照固定频率往 /camera/image_raw 话题发布 sensor_msgs/Image 消息,为后续的图像处理、目标检测等节点提供一个可以稳定订阅的数据源。

图像是自己生成的:背景是一层从上到下的蓝色渐变,另有一条亮黄色的横带在画面中匀速下移。这样在 rviz2 或 rqt_image_view 里能直接看出画面在刷新,而不是一张静止图,方便确认话题真的在发布。

分辨率、帧率和坐标系都通过 ROS 2 参数暴露出来,可以在 launch 文件里改,不用动代码。本模块只负责产生数据,不做检测或识别

2. 运行环境

  • 操作系统: Ubuntu 22.04
  • ROS 版本: ROS 2 Humble
  • 依赖: rclpy、sensor_msgs、std_msgs(均为 Desktop-Full 安装自带)

3. 编译与运行步骤

# 1. 编译包
cd ~/hutb_ws
colcon build --packages-select sensor_perception
source install/setup.bash

# 2. 运行节点(两种方式任选)
ros2 launch sensor_perception main_launch.py
# 或者
ros2 run sensor_perception main_sensor

4. 参数说明

参数 默认值 说明
width 320 图像宽度(像素)
height 240 图像高度(像素)
fps 10.0 发布频率(赫兹)
frame_id camera_link 图像消息的坐标系名

修改方式:在 launch/main_launch.py 的 parameters 里改,或者命令行传参:

ros2 run sensor_perception main_sensor --ros-args -p fps:=30.0

5. 运行效果验证

# 确认话题存在
ros2 topic list | grep camera

# 确认发布频率接近 10 Hz
ros2 topic hz /camera/image_raw

# 看一帧消息的字段
ros2 topic echo /camera/image_raw --once | head -20

再用 rqt_image_view 选中 /camera/image_raw,应该能看到蓝色渐变背景和一条移动的黄色横带。

运行截图

6. 大模型声明

本模块的代码与文档编写过程使用了 AI 大模型辅助。作者已对代码进行实际运行验证,对提交内容的正确性与完整性负全部责任。