Thanks for your quick reply! I have two wifi interfaces. Here are my two .drone files:
<?xml version="1.0" encoding="UTF-8"?>This text will be hidden
<drone
name="bebop2_1"
firmware="/home/hai/ROS/hai_ws/src/bebop2_toolbox/bebop2_sphinx/firmware/ardrone3-milos_pc.ext2_4.4.2.zip"
hardware="milosboard">
<machine_params
low_gpu="false"
with_front_cam="false"
with_hd_battery="false"
with_flir="false"
flir_pos="tilted"/>
<pose>1 0 0.2 0 0 0</pose>
<interface>eth1</interface>
<!-- 'wlan0' may need to be replaced the actual wifi interface name -->
<stolen_interface>eth0:eth0:192.168.42.1/24</stolen_interface>
</drone>
and
<?xml version="1.0" encoding="UTF-8"?>This text will be hidden
<drone
name="bebop2_2"
firmware="/home/hai/ROS/hai_ws/src/bebop2_toolbox/bebop2_sphinx/firmware/ardrone3-milos_pc.ext2_4.4.2.zip"
hardware="milosboard">
<machine_params
low_gpu="false"
with_front_cam="false"
with_hd_battery="false"
with_flir="false"
flir_pos="tilted"/>
<pose>-1 0 0.2 0 0 0</pose>
<interface>eth1</interface>
<!-- 'wlan0' may need to be replaced the actual wifi interface name -->
<stolen_interface>dev30:eth0:192.168.42.2/24</stolen_interface>
</drone>
And the bebop_driver lauch files:
<?xml version="1.0"?>
<launch>
<arg name="namespace" default="bebop2_1" />
<arg name="ip" default="10.202.0.1" />
<arg name="drone_type" default="bebop2" /> <!-- available drone types: bebop1, bebop2 -->
<arg name="config_file" default="$(find bebop_driver)/config/defaults.yaml" />
<arg name="camera_info_url" default="package://bebop_driver/data/$(arg drone_type)_camera_calib.yaml" />
<group ns="$(arg namespace)">
<node pkg="bebop_driver" name="bebop_driver" type="bebop_driver_node" output="screen">
<param name="camera_info_url" value="$(arg camera_info_url)" />
<param name="bebop_ip" value="$(arg ip)" />
<rosparam command="load" file="$(arg config_file)" />
</node>
<include file="$(find bebop_description)/launch/description.launch" />
</group>
</launch>
and
<?xml version="1.0"?>
<launch>
<arg name="namespace" default="bebop2_2" />
<arg name="ip" default="10.202.0.2" />
<arg name="drone_type" default="bebop2" /> <!-- available drone types: bebop1, bebop2 -->
<arg name="config_file" default="$(find bebop_driver)/config/defaults.yaml" />
<arg name="camera_info_url" default="package://bebop_driver/data/$(arg drone_type)_camera_calib.yaml" />
<group ns="$(arg namespace)">
<node pkg="bebop_driver" name="bebop_driver" type="bebop_driver_node" output="screen">
<param name="camera_info_url" value="$(arg camera_info_url)" />
<param name="bebop_ip" value="$(arg ip)" />
<rosparam command="load" file="$(arg config_file)" />
</node>
<include file="$(find bebop_description)/launch/description.launch" />
</group>
</launch>
Now I got the following issue:
(1) Even launch with only one drone in sphinx using the firmware version 4.4.2, I cannot run the bebop_driver launch file successfully. I got the error:
[ERROR] [1584316039.436036190]: [ARDISCOVERY_Connection] 00:47:19:436 | ARDISCOVERY_Connection_ControllerInitSocket:669 - connect() SO_ERROR: 111 Connection refused
[ERROR] [1584316039.436087379]: [ARDISCOVERY_Device] 00:47:19:436 | ARDISCOVERY_Device_NewARNetworkAL:243 - error: Socket access permission denied
[ERROR] [1584316039.436104709]: [ARCONTROLLER_Network] 00:47:19:436 | ARCONTROLLER_Network_New:355 - error: Error during the getting of the ARNETWORKAL_Manager from the device
(2) If I use the latest firmware (4.7.1), I can launch one drone in the sphinx and run the bebop_driver to connect to it successfully.
(3) However, with firmware 4.7.1, if I launch two drones in the sphinx and try to run the bebop_driver launch file, I got an error in the sphinx terminal:
[Err] [DataProvider.cc:284] Failed to write on socket 116
and could not run the bebop_driver successfully.
I am using Ubuntu 18.04 and ROS melodic. I’m not sure if this leads to the problem.