You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Gazebo中创建的相机发布camera_info话题?

在Gazebo中配置相机发布camera_info话题

1. 修改URDF/SDF中的相机插件配置

要让Gazebo相机发布camera_info话题,核心是通过gazebo_ros_camera插件(ROS1/ROS2通用)配置对应参数。以下是URDF和SDF的具体配置示例:

URDF示例

<gazebo reference="camera_link">
  <sensor type="camera" name="camera_sensor">
    <update_rate>30.0</update_rate>
    <camera name="head">
      <horizontal_fov>1.047</horizontal_fov> <!-- 对应60度视场角 -->
      <image>
        <width>640</width>
        <height>480</height>
        <format>R8G8B8</format>
      </image>
      <clip>
        <near>0.05</near>
        <far>100.0</far>
      </clip>
    </camera>
    <plugin name="camera_controller" filename="libgazebo_ros_camera.so">
      <camera_name>my_camera</camera_name>
      <image_topic>/camera/image_raw</image_topic>
      <camera_info_topic>/camera/camera_info</camera_info_topic> <!-- 关键配置项 -->
      <frame_name>camera_link</frame_name>
      <!-- 可选:手动指定内参,不填则Gazebo自动计算 -->
      <distortion_k1>0.0</distortion_k1>
      <distortion_k2>0.0</distortion_k2>
      <distortion_k3>0.0</distortion_k3>
      <distortion_t1>0.0</distortion_t1>
      <distortion_t2>0.0</distortion_t2>
      <intrinsics_matrix>
        554.25 0.0 320.0
        0.0 554.25 240.0
        0.0 0.0 1.0
      </intrinsics_matrix>
    </plugin>
  </sensor>
</gazebo>

SDF示例

<model name="camera_model">
  <link name="camera_link">
    <sensor name="camera_sensor" type="camera">
      <update_rate>30</update_rate>
      <camera>
        <horizontal_fov>1.047</horizontal_fov>
        <image>
          <width>640</width>
          <height>480</height>
          <format>R8G8B8</format>
        </image>
        <clip>
          <near>0.05</near>
          <far>100</far>
        </clip>
      </camera>
      <plugin name="camera_controller" filename="libgazebo_ros_camera.so">
        <camera_name>my_camera</camera_name>
        <image_topic>/camera/image_raw</image_topic>
        <camera_info_topic>/camera/camera_info</camera_info_topic>
        <frame_name>camera_link</frame_name>
      </plugin>
    </sensor>
  </link>
</model>

2. 确认依赖包安装

确保ROS环境中已安装gazebo_ros_pkgs:

  • ROS1:sudo apt-get install ros-noetic-gazebo-ros-pkgs(替换noetic为你的ROS版本)
  • ROS2:sudo apt-get install ros-humble-gazebo-ros-pkgs(替换humble为你的ROS版本)

3. 验证话题发布

启动Gazebo和机器人模型后,通过以下命令检查:

  • ROS1:
    rostopic list | grep camera_info
    rostopic echo /camera/camera_info
    
  • ROS2:
    ros2 topic list | grep camera_info
    ros2 topic echo /camera/camera_info
    

能看到话题并输出包含内参、畸变参数的消息,说明配置成功。

常见问题排查

  • 话题未出现:检查插件文件名是否为libgazebo_ros_camera.so,确认<camera_info_topic>参数已添加,且Gazebo成功加载模型。
  • 内参异常:手动指定内参时,确保intrinsics_matrix数值符合相机实际参数;未指定时,Gazebo会自动计算,可通过camera_info消息验证合理性。
  • TF报错:确认<frame_name>与相机link名称一致,避免坐标系不匹配问题。

内容的提问来源于stack exchange,提问作者Kevin Ortega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:16:16