Gazebo_ros_camera doesn't work in Docker


#1

Dear all,

I installed the NRP by using the Docker Installer. I found the Gazebo_ROS plugin “gazebo_ros_camera” doesn’t work and no corresponding rostopic could be found. But another one “gazebo_ros_p3d” works.

I need to gain images from the camera mounted on my robot. I add a camera in the model.sdf and it works well before using Docker.

  <sensor type="camera" name="camera">
    <update_rate>30.0</update_rate>
    <always_on>1</always_on>
    <visualize>true</visualize>
    <topic>/robot/eye</topic>
    <camera name="robot_eye">
      <horizontal_fov>1.5707963267948966</horizontal_fov>
      <image>
        <width>320</width>
        <height>240</height>
        <format>R8G8B8</format>
      </image>
      <clip>
        <near>0.01</near>
        <far>100</far>
      </clip>
      <noise>
        <type>gaussian</type>
        <mean>0.0</mean>
        <stddev>0.007</stddev>
      </noise>
    </camera>
    <plugin name="camera_controller" filename="libgazebo_ros_camera.so">
      <alwaysOn>true</alwaysOn>
      <updateRate>0.0</updateRate>
      <cameraName>robot/camera</cameraName>
      <imageTopicName>image_raw</imageTopicName>
      <cameraInfoTopicName>camera_info</cameraInfoTopicName>
      <frameName>camera_link</frameName>
      <hackBaseline>0.07</hackBaseline>
      <distortionK1>0.0</distortionK1>
      <distortionK2>0.0</distortionK2>
      <distortionK3>0.0</distortionK3>
      <distortionT1>0.0</distortionT1>
      <distortionT2>0.0</distortionT2>
    </plugin>
  </sensor>

Does anyone know how to solve this problem?

Thanks!
Zhuangyi


#2

Hi Zhuangyi!

Have you tested the camera running one of the template experiments? The Husky Braitenberg experiment, for example.

Ugo


#3

Hi Ugo,

Yes, I have. When I ran the Husky Braitenberg experiment in docker, the rostopic “/husky/husky/camera” echoed nothing. I also tested other template experiments, but all failed.

Best regards,
Zhuangyi


#4

Hi Zhuangyi,

it looks like some problem with your graphics driver setup. Could you enter the docker container and run the next command:

gzserver --verbose

then please share the output here.

thanks.