Add camera to iris.sdf but no ros2 topic

UBUNTU 20.04

hi everyone,
i’m trying to modify the /PX4-Autopilot/Tools/sitl_gazebo/models/iris/iris.sdf in order to add a camera to the model and take its feed in ros2. In the end of the iris.sdf.jinja file i added the following:

<link name='cam_link'>
  <pose frame=''>-0.118317 0.002195 0.004205 -0 -0 -3.12703</pose>
    <pose frame=''>0 0 0 0 -0 0</pose>
  <sensor name='camera1' type='camera'>
    <camera name="head">
    <plugin name="camera_controller" filename="">

i also delete the iris.sdf file before ‘make_px4_sitl_rtps gazebo’ such that the changes are overwritten. The compilation gives no problem, when gazebo starts i can see the ‘camera link’ and also the camera image in the gazebo topic visualization but there is no ‘image_raw’ topic in ros2 when i run ‘ros2 topic list’… i’m doing something wrong?? thanks.

@FedeUnibo Simply adding a camera to the vehicle will not make it publish images as ros2 topics

Thanks, but i thought that using the ‘libgazebo_ros_camera’ plugin the topic will be published on ros2 enviroment but i’m wrong, any tip? I’m going crazy about this… i’ve seen a lot of question about this argument but all with reference to ros not ros2. Also in the ros2-Gazebo tutorial this is the code to add to the sdf file in order to get the image published in ros2. I’ve really no idea about how to solve it.

@FedeUnibo I can see two things going wrong from your descriptions

  • As far as I know, libgazebo_ros_camera is a plugin written for ROS1 and not ROS2. Therefore, you either need to use a ros1 to ros2 bridge or use a ros2 plugin to transfer your images to ros2 topics
  • You are launching the gazebo simulation with a make command. This will NOT start ros automatically. Therefore you would need to start PX4 simulation using a roslaunch / or you need to run this separately.

I hope these comments would be a useful hint for solving your problems.

You can use ROS2 gazebo plugins from foxy branch of gazebo_ros_pkgs repository: