Spawn drone to GAZEBO simulation running in another Computer

Hello,
I have two computers in the same network PC1, PC2.Ubuntu 18.04, GAZEBO 9 and the latest version of px4 installed at both. I am trying to run GAZEBO in PC1 and spawn an iris drone from PC2 to the PC1’s GAZEBO but the dorne does not connect to the FCU.
At PC1 I run:

export ROS_MASTER_URI=http://IP4 of PC1:11311
export ROS_IP=IP4 of PC1
export GAZEBO_MASTER_URI=http://IP4 of PC1:11345
roslaunch px4 simulation.launch

At PC2 I run:
> export ROS_MASTER_URI=http://IP4 of PC1:11311
> export ROS_IP=IP4 of PC2
> export GAZEBO_MASTER_URI=http://IP4 of PC1:11345
> roslaunch px4 add.launch

I also changed the mavlink_addr tag at the iris.sdf file as suugested here:https://discuss.px4.io/t/sitl-with-px4-firmware-on-remote-machine/10630 to the IP4 of PC2 and tried the XXX.XXX.XXX.XXX and the inte_addr format.
Here are the launch files:
simulation.launch:

<?xml version="1.0"?>
<!-- gazebo configs -->
<arg name="gui" default="true"/>
<arg name="debug" default="false"/>
<arg name="verbose" default="false"/>
<arg name="paused" default="false"/>
<arg name="respawn_gazebo" default="false"/>
<!-- PX4 configs -->
<arg name="interactive" default="true"/>
<!-- PX4 SITL -->
<arg unless="$(arg interactive)" name="px4_command_arg1" value="-d"/>
<arg     if="$(arg interactive)" name="px4_command_arg1" value=""/>
<node name="sitl" pkg="px4" type="px4" output="screen"
    args="$(find px4)/build/px4_sitl_default/etc -s etc/init.d-posix/rcS $(arg px4_command_arg1)" required="true"/>

<!-- Gazebo sim -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="gui" value="$(arg gui)"/>
    <arg name="world_name" value="$(arg world)"/>
    <arg name="debug" value="$(arg debug)"/>
    <arg name="verbose" value="$(arg verbose)"/>
    <arg name="paused" value="$(arg paused)"/>
    <arg name="respawn_gazebo" value="$(arg respawn_gazebo)"/>
</include>

add.launch:

<?xml version="1.0"?>
<!-- UAV0 -->
<group ns="uav0">
    <!-- MAVROS and vehicle configs -->
    <arg name="ID" value="0"/>
    <arg name="fcu_url" default="udp://:14540@192.168.1.4:14580"/>
    <!-- PX4 SITL and vehicle spawn -->
    <include file="$(find px4)/launch/single.launch">
        <arg name="x" value="0"/>
        <arg name="y" value="0"/>
        <arg name="z" value="0"/>
        <arg name="R" value="0"/>
        <arg name="P" value="0"/>
        <arg name="Y" value="0"/>
        <arg name="vehicle" value="$(arg vehicle)"/>
        <arg name="vehicle_name" value="drone_0"/>
        <arg name="mavlink_udp_port" value="14560"/>
        <arg name="mavlink_tcp_port" value="4560"/>
        <arg name="ID" value="$(arg ID)"/>
    </include>
    <!-- MAVROS -->
    <include file="$(find mavros)/launch/px4.launch">
        <arg name="fcu_url" value="$(arg fcu_url)"/>
        <arg name="gcs_url" value=""/>
        <arg name="tgt_system" value="$(eval 1 + arg('ID'))"/>
        <arg name="tgt_component" value="1"/>
    </include>

single.launch:

<?xml version="1.0"?>
<arg name="sdf" default="$(find mavlink_sitl_gazebo)/models/$(arg vehicle)/$(arg vehicle).sdf"/>

<env name="PX4_SIM_MODEL" value="$(arg vehicle)" />
<env name="PX4_ESTIMATOR" value="$(arg est)" />

<!-- PX4 configs -->
<arg name="interactive" default="true"/>
<!-- PX4 SITL -->
<arg unless="$(arg interactive)" name="px4_command_arg1" value=""/>
<arg     if="$(arg interactive)" name="px4_command_arg1" value="-d"/>
<node name="sitl_$(arg ID)" pkg="px4" type="px4" output="screen" args="$(find px4)/build/px4_sitl_default/etc -s etc/init.d-posix/rcS -i $(arg ID) -w sitl_$(arg vehicle)_$(arg ID) $(arg px4_command_arg1)">
</node>

<!-- gazebo model -->
<node name="$(anon vehicle_spawn)" pkg="gazebo_ros" type="spawn_model" output="screen" args="-sdf -file $(arg sdf) -model $(arg vehicle_name) -x $(arg x) -y $(arg y) -z $(arg z) -R $(arg R) -P $(arg P) -Y $(arg Y)"/>

When I run the add.launch the simulation dies giving that message:
[ INFO] [1602848922.318336876]: waitForService: Service [/gazebo/set_physics_properties] is now available.

[ INFO] [1602848922.338981012, 0.020000000]: Physics dynamic reconfigure ready.

bind failed: Cannot assign requested address, aborting

Aborted (core dumped)

[gazebo-2] process has died [pid 7797, exit code 134, cmd /opt/ros/melodic/lib/gazebo_ros/gzserver -e ode /home/niki/src/Firmware/Tools/sitl_gazebo/worlds/empty.world __name:=gazebo __log:=/home/niki/.ros/log/89100038-0fa5-11eb-8979-d46d6d06e38e/gazebo-2.log].

log file: /home/niki/.ros/log/89100038-0fa5-11eb-8979-d46d6d06e38e/gazebo-2*.log

This problem does not occur if the mavlink_addr in the sdf file is not changed, but in that case the drone does not connect at the FCU as well.
Can anyone help me figure out why it fails?
Thank you!

Hi @nipat,

Did you finally solve the problem? I am interested in doing the same as you and I would like to know if it works well for you.

Thanks in advance,

Sergi