Robotics StackExchange | Archived questions

Ardrones are unable to takeoff after launching in gazebo.When i tried to roswtf i getting tf multiple authority contention

Here's my launch file :

<?xml version="1.0"?>
<launch>

  <!-- Include the world -->
  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" value="$(find cvg_sim_gazebo)/worlds/empty.world"/>
    <arg name="paused" value="false"/>
    <arg name="use_sim_time" value="true"/>
    <arg name="gui" value="true"/>
    <arg name="headless" value="false"/>
    <arg name="debug" value="false"/>
  </include>


  <!-- send the robot XML to param server -->
  <arg name="model_urdf" value="$(find cvg_sim_gazebo)/urdf/quadrotor_sensors.urdf.xacro"/>

  <!-- Spawn 1st simulated quadrotor uav -->
  <group ns="ardrone_1">  
    <param name="robot_description" command="$(find xacro)/xacro.py '$(arg model_urdf)'"/>
    <node name="spawn_robot_ardrone" pkg="gazebo_ros" type="spawn_model"
          args="-param robot_description
                -urdf
                -x 0
                -y 0
                -z 0.5
                -R 0
                -P 0 
                -Y 0
                -model ardrone_1"
           respawn="false" output="screen"/>

    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" output="screen" >
      <param name="publish_frequency" type="double" value="50.0" />
      <param name="tf_prefix" value="ardrone_1" />
    </node>
    <node name="ground_truth_to_tf" pkg="message_to_tf" type="message_to_tf" output="screen">
      <param name="odometry_topic" value="ground_truth/state" />
      <param name="frame_id" value="nav" />
      <param name="tf_prefix" value="ardrone_1" />
    </node>
  </group> 


  <!-- Spawn 2nd simulated quadrotor uav -->
  <group ns="ardrone_2">
    <param name="robot_description" command="$(find xacro)/xacro.py '$(arg model_urdf)'"/>
    <node name="spawn_robot_ardrone_2" pkg="gazebo_ros" type="spawn_model"
          args="-param robot_description
                -urdf
                -x 1.0 
                -y 1.0
                -z 0.5
                -R 0
                -P 0 
                -Y 0
                -model ardrone_2"
          respawn="false" output="screen"/>

    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher_2" output="screen" >
      <param name="publish_frequency" type="double" value="50.0" />
      <param name="tf_prefix" value="ardrone_2" />
    </node>

    <node name="ground_truth_to_tf_2" pkg="message_to_tf" type="message_to_tf" output="screen">
      <param name="odometry_topic" value="ground_truth/state" />
      <param name="frame_id" value="nav" />
      <param name="tf_prefix" value="ardrone_2" />
    </node>
  </group>

  <!-- Spawn 3rd simulated quadrotor uav -->
 <group ns="ardrone_3">
    <param name="robot_description" command="$(find xacro)/xacro.py '$(arg model_urdf)'"/>
    <node name="spawn_robot_ardrone_3" pkg="gazebo_ros" type="spawn_model"
          args="-param robot_description
                -urdf
                -x 0 
                -y 1
                -z 0.5
                -R 0
                -P 0 
                -Y 0
                -model ardrone_3"
          respawn="false" output="screen"/>

    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher_3" output="screen" >   
      <param name="publish_frequency" type="double" value="50.0" />
      <param name="tf_prefix" value="ardrone_3"/>
    </node>

    <node name="ground_truth_to_tf_3" pkg="message_to_tf" type="message_to_tf" output="screen">
      <param name="odometry_topic" value="ground_truth/state" />
      <param name="frame_id" value="map" />
      <param name="tf_prefix" value="ardrone_3"/>
    </node> 
  </group>

</launch>

and Iam getting errors like this in roswtf:

WARNING These nodes have died:
 * ardrone_2/spawn_robot_ardrone_2-7
 * ardrone_1/spawn_robot_ardrone-4
 * ardrone_3/spawn_robot_ardrone_3-10


Found 2 error(s).

ERROR TF multiple authority contention:
 * node [/ardrone_3/ground_truth_to_tf_3] publishing transform [base_footprint] with parent [map] already published by node [/ardrone_1/ground_truth_to_tf]
 * node [/ardrone_3/ground_truth_to_tf_3] publishing transform [base_stabilized] with parent [base_footprint] already published by node [/ardrone_1/ground_truth_to_tf]
 * node [/ardrone_3/ground_truth_to_tf_3] publishing transform [base_link] with parent [base_stabilized] already published by node [/ardrone_1/ground_truth_to_tf]
 * node [/ardrone_2/ground_truth_to_tf_2] publishing transform [base_footprint] with parent [map] already published by node [/ardrone_3/ground_truth_to_tf_3]
 * node [/ardrone_2/ground_truth_to_tf_2] publishing transform [base_stabilized] with parent [base_footprint] already published by node [/ardrone_3/ground_truth_to_tf_3]
 * node [/ardrone_2/ground_truth_to_tf_2] publishing transform [base_link] with parent [base_stabilized] already published by node [/ardrone_3/ground_truth_to_tf_3]
 * node [/ardrone_1/ground_truth_to_tf] publishing transform [base_footprint] with parent [map] already published by node [/ardrone_2/ground_truth_to_tf_2]
 * node [/ardrone_1/ground_truth_to_tf] publishing transform [base_stabilized] with parent [base_footprint] already published by node [/ardrone_2/ground_truth_to_tf_2]
 * node [/ardrone_1/ground_truth_to_tf] publishing transform [base_link] with parent [base_stabilized] already published by node [/ardrone_2/ground_truth_to_tf_2]
 * node [/ardrone_2/ground_truth_to_tf_2] publishing transform [base_footprint] with parent [map] already published by node [/ardrone_1/ground_truth_to_tf]
 * node [/ardrone_2/ground_truth_to_tf_2] publishing transform [base_stabilized] with parent [base_footprint] already published by node [/ardrone_1/ground_truth_to_tf]
 * node [/ardrone_2/ground_truth_to_tf_2] publishing transform [base_link] with parent [base_stabilized] already published by node [/ardrone_1/ground_truth_to_tf]
 * node [/ardrone_1/ground_truth_to_tf] publishing transform [base_footprint] with parent [map] already published by node [/ardrone_3/ground_truth_to_tf_3]
 * node [/ardrone_1/ground_truth_to_tf] publishing transform [base_stabilized] with parent [base_footprint] already published by node [/ardrone_3/ground_truth_to_tf_3]
 * node [/ardrone_1/ground_truth_to_tf] publishing transform [base_link] with parent [base_stabilized] already published by node [/ardrone_3/ground_truth_to_tf_3]
 * node [/ardrone_3/ground_truth_to_tf_3] publishing transform [base_footprint] with parent [map] already published by node [/ardrone_2/ground_truth_to_tf_2]
 * node [/ardrone_3/ground_truth_to_tf_3] publishing transform [base_stabilized] with parent [base_footprint] already published by node [/ardrone_2/ground_truth_to_tf_2]
 * node [/ardrone_3/ground_truth_to_tf_3] publishing transform [base_link] with parent [base_stabilized] already published by node [/ardrone_2/ground_truth_to_tf_2]

Thankyou in advance :)

Asked by Pramod on 2019-04-10 02:29:32 UTC

Comments

How are you running this and what package(s) did you install to simulate the AR.Drone?

Asked by jayess on 2019-04-12 02:00:08 UTC

iam running it in gazebo.I installed tum_simulator,tum_ardrone,robot_state_publisher,ardrone_autonomy.I tried navigating on 1 drone.its working.But while trying with multiple ardrones,the nodes are dieing as you can see in the errors.Thank you for the response :)

Asked by Pramod on 2019-04-12 02:25:14 UTC

Can you provide links? There's more than one tum_simulator as far as I'm aware. As for the tf issue, you should look into using a tf_prefix for each drone and checkout the answer to this question

Asked by jayess on 2019-04-12 02:39:52 UTC

https://github.com/angelsantamaria/tum_simulator . This is the version of tum_simulator im using and im using tf_prefix for each node.You can see it in launch file above.

Asked by Pramod on 2019-04-13 00:50:17 UTC

I changed files in message_to_tf .Those errors are not coming now but still those nodes are dying.Iam getting errors in shell.

Asked by Pramod on 2019-04-13 03:46:50 UTC

Answers