Robotics StackExchange | Archived questions

The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF.

Hello! I'm using tumsimulator on ROS and Gazebo. When I do `roslaunch cvgsim_gazebo quadrotor.launch` appears the

WARN: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.

The quadrotor doesn't move correctly with respect x-y axis. My URDF are:

<?xml version="1.0"?>

<robot
xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:xacro="http://ros.org/wiki/xacro"
>


  <xacro:macro name="quadrotor_controller">
    <gazebo>
      <plugin name="quadrotor_simple_controller" filename="libhector_gazebo_quadrotor_simple_controller.so">
        <alwaysOn>true</alwaysOn>
        <updateRate>0.0</updateRate>
        <bodyName>base_link</bodyName>
        <stateTopic>ground_truth/state</stateTopic>
        <imuTopic>ardrone/imu</imuTopic>
        <topicName>cmd_vel</topicName>
        <rollpitchProportionalGain>10.0</rollpitchProportionalGain>
        <rollpitchDifferentialGain>5.0</rollpitchDifferentialGain>
        <rollpitchLimit>0.5</rollpitchLimit>
        <yawProportionalGain>2.0</yawProportionalGain>
        <yawDifferentialGain>1.0</yawDifferentialGain>
        <yawLimit>1.5</yawLimit>
        <velocityXYProportionalGain>5.0</velocityXYProportionalGain>
        <velocityXYDifferentialGain>1.0</velocityXYDifferentialGain>
        <velocityXYLimit>2</velocityXYLimit>
        <velocityZProportionalGain>5.0</velocityZProportionalGain>
        <velocityZDifferentialGain>1.0</velocityZDifferentialGain>
        <velocityZLimit>0.5</velocityZLimit>
        <maxForce>30</maxForce>
        <motionSmallNoise>0.05</motionSmallNoise>
        <motionDriftNoise>0.03</motionDriftNoise>
        <motionDriftNoiseTime>5.0</motionDriftNoiseTime>
      </plugin>

      <plugin name="quadrotor_state_controller" filename="libhector_gazebo_quadrotor_state_controller.so">
        <alwaysOn>true</alwaysOn>
        <updateRate>0.0</updateRate>
        <bodyName>base_link</bodyName>
        <stateTopic>ground_truth/state</stateTopic>
        <imuTopic>ardrone/imu</imuTopic>
        <sonarTopic>sonar_height</sonarTopic>
        <topicName>cmd_vel</topicName>
      </plugin>
    </gazebo>
  </xacro:macro>
</robot>

<?xml version="1.0"?>

<robot xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
xmlns:xacro="http://ros.org/wiki/xacro"
>

  <xacro:macro name="quadrotor_sensors">
    <gazebo>
      <plugin name="quadrotor_imu_sim" filename="libhector_gazebo_ros_imu.so">
        <alwaysOn>true</alwaysOn>
        <updateRate>100.0</updateRate>
        <bodyName>base_link</bodyName>
        <frameId>ardrone_base_link</frameId>
        <topicName>ardrone/imu</topicName>
        <rpyOffsets>0 0 0</rpyOffsets> <!-- deprecated -->
        <gaussianNoise>0</gaussianNoise>  <!-- deprecated -->
        <accelDrift>0.5 0.5 0.5</accelDrift>
        <accelGaussianNoise>0.35 0.35 0.3</accelGaussianNoise>
        <rateDrift>0.0 0.0 0.0</rateDrift>
        <rateGaussianNoise>0.00 0.00 0.00</rateGaussianNoise>
        <headingDrift>0.0</headingDrift>
        <headingGaussianNoise>0.00</headingGaussianNoise>
      </plugin>

      <plugin name="quadrotor_baro_sim" filename="libhector_gazebo_ros_baro.so">
        <alwaysOn>true</alwaysOn>
        <updateRate>10.0</updateRate>
        <bodyName>base_link</bodyName>
        <topicName>pressure_height</topicName>
        <altimeterTopicName>altimeter</altimeterTopicName>
        <offset>0</offset>
        <drift>0.1</drift>
        <gaussianNoise>0.5</gaussianNoise>
      </plugin>

      <plugin name="quadrotor_magnetic_sim" filename="libhector_gazebo_ros_magnetic.so">
        <alwaysOn>true</alwaysOn>
        <updateRate>10.0</updateRate>
        <bodyName>base_link</bodyName>
        <topicName>magnetic</topicName>
        <offset>0 0 0</offset>
        <drift>0.0 0.0 0.0</drift>
        <gaussianNoise>1.3e-2 1.3e-2 1.3e-2</gaussianNoise>
      </plugin>

      <plugin name="quadrotor_gps_sim" filename="libhector_gazebo_ros_gps.so">
        <alwaysOn>true</alwaysOn>
        <updateRate>4.0</updateRate>
        <bodyName>base_link</bodyName>
        <topicName>fix</topicName>
        <velocityTopicName>fix_velocity</velocityTopicName>
        <drift>5.0 5.0 5.0</drift>
        <gaussianNoise>0.1 0.1 0.1</gaussianNoise>
        <velocityDrift>0 0 0</velocityDrift>
        <velocityGaussianNoise>0.1 0.1 0.1</velocityGaussianNoise>
      </plugin>

      <plugin name="quadrotor_groundtruth_sim" filename="libgazebo_ros_p3d.so">
        <alwaysOn>true</alwaysOn>
        <updateRate>100.0</updateRate>
        <bodyName>base_link</bodyName>
        <topicName>ground_truth/state</topicName>
        <gaussianNoise>0.0</gaussianNoise>
        <frameName>map</frameName>
      </plugin>

    </gazebo>
  </xacro:macro>
</robot>

Can someone help me? thanks you.

Asked by viola on 2016-06-01 05:11:49 UTC

Comments

Please format code using the 101010 button. It will make it much easier to read.

Asked by jarvisschultz on 2016-06-01 12:32:19 UTC

Answers