X8 octa-quad SITL gazebo

Hi. Please is there exists a basic example as iris quad demo but for octa quad configuration ? Regards

Hi, Do we have any updates about this?

The ArduPilot repos do not have an octo quad frame model configured for Gazebo. For a list of available vehicles see ardupilot_gazebo and SITL_Models.

Thanks. One more question: if you try to alter a sdf file already available and upload the params will possibly work? Or you have to create new code for gazebo?

Should be able to modify the iris:

  • add 4 more motors and props
  • add lift-drag plugins for each new prop, taking care of orientation
  • add control elements to the ardupilot plugin
  • run and update the frame type and servo params
  • will probably need retuning

Thanks. I updated the sdf files of the octoquad/H configuration. The drone does not takeoff; it says “potential thrust loss”. I doubled checked motor rotations and multiplier and also physical properties of the drone, but I am not sure I am putting the correct values (e.g. cla cda a0 area etc). Even with iris properties and four motors throws “potential thrust loss” message. I am running default param file “octoquad.parm”. Any tips of how to solve this? Its quite difficult to debug.

Hello again. Depending on your advice at this thread: Drone is too heavy to takeoff in simulation - Gazebo Plugin - #6 by rhys, I tried to changed some values. My motors are: MN1018 Navigator Type UAV Multi-Motor KV72_Navigator Type_Motors_Multi-rotor UAV Power_T-MOTOR Official Store-Multi-rotor UAV,Fixed Wing,VTOL,FPV and Robot Power and propellers are: G36*11.5 Prop-2PCS/PAIR_Glossy_Carbon Fiber_Propellers_Multi-rotor UAV Power_T-MOTOR Official Store-Multi-rotor UAV,Fixed Wing,VTOL,FPV and Robot Power. The drone is octoquad/H.

I tried to scale the Iris parameters depending on my propeller size:

My drone’s parameters are:

        <mass>68</mass>
        <inertia>
          <ixx>1.021</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1.021</iyy>
          <iyz>0</iyz>
          <izz>2.081</izz>
        </inertia>
      </inertial>
      <collision name='base_link_collision'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <box>
            <size>1.5 1.606 1</size>

and propellers:

      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_0_collision'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>

I also changed the cp and area values as you suggested depending on the above scalings. The motor 7 follow (cw, back right/ down side) as an example.

        <plugin name="rotor_7_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.3024 0 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_7</link_name>
    </plugin>
    <plugin name="rotor_7_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_7</link_name>
    </plugin>
    

Also, I have changed the multiplier to 400 (I even tried 5000) and still “potential thrust loss”. Only when I lower the drone’s weight to 5kg with smaller inertia values, the drone takes off but it is completely unstable.

Lastly, what about the .parm file? Do I add my real drones parameters? or should I not change the default octoquad.parm?

Thank you in advance, as no documentation is out there, it seem that you are the only chance to fix this.

Are you able to share the sdf model or provide a link to a repo? It’s much easier to diagnose issues in a Gazebo model when the target model is available to test. If you were willing to put the model in the public domain we could add it to SITL_Models as a working example of an octoquad (once it is working).

Hello again, I am attaching the two model.sdf files. The first one from iris_with_ardupilot, second one from iris_with_standoffs. The motors’ rotation resembles the octoquad/H. I am using the Iris stl model with four more props but with changed inertia, size, mass etc as I mentioned earlier.

iris_with_ardupilot/model.sdf

<?xml version='1.0'?>
<sdf version="1.6" xmlns:xacro='http://ros.org/wiki/xacro'>
  <model name="iris_demo">
    <include>
      <uri>model://iris_with_standoffs</uri>
    </include>

    <!-- plugins -->
    <plugin name="rotor_0_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.3024 0 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_0</link_name>
    </plugin>
    <plugin name="rotor_0_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_0</link_name>
    </plugin>

    <plugin name="rotor_1_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.3024 0 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_1</link_name>
    </plugin>
    <plugin name="rotor_1_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_1</link_name>
    </plugin>

    <plugin name="rotor_2_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.3024 0 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_2</link_name>
    </plugin>
    <plugin name="rotor_2_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_2</link_name>
    </plugin>

    <plugin name="rotor_3_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.3024 0 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_3</link_name>
    </plugin>
    <plugin name="rotor_3_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_3</link_name>
    </plugin>
    
        <plugin name="rotor_4_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.3024 0 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_4</link_name>
    </plugin>
    <plugin name="rotor_4_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_4</link_name>
    </plugin>
    
        <plugin name="rotor_5_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.30240 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_5</link_name>
    </plugin>
    <plugin name="rotor_5_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_5</link_name>
    </plugin>
    
        <plugin name="rotor_6_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.3024 0 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_6</link_name>
    </plugin>
    <plugin name="rotor_6_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_6</link_name>
    </plugin>
    
    
        <plugin name="rotor_7_blade_1" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>0.3024 0 0</cp>
      <forward>0 -1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_7</link_name>
    </plugin>
    <plugin name="rotor_7_blade_2" filename="libLiftDragPlugin.so">
      <a0>0.3</a0>
      <alpha_stall>1.4</alpha_stall>
      <cla>4.2500</cla>
      <cda>0.10</cda>
      <cma>0.00</cma>
      <cla_stall>-0.025</cla_stall>
      <cda_stall>0.0</cda_stall>
      <cma_stall>0.0</cma_stall>
      <area>0.0144</area>
      <air_density>1.2041</air_density>
      <cp>-0.3024 0 0</cp>
      <forward>0 1 0</forward>
      <upward>0 0 1</upward>
      <link_name>iris::rotor_7</link_name>
    </plugin>
    
    
    <plugin name="arducopter_plugin" filename="libArduPilotPlugin.so">
      <fdm_addr>127.0.0.1</fdm_addr>
      <fdm_port_in>9002</fdm_port_in>
      <fdm_port_out>9003</fdm_port_out>
      <!--
          Require by APM :
          Only change model and gazebo from XYZ to XY-Z coordinates
      -->
      <modelXYZToAirplaneXForwardZDown>0 0 0 3.141593 0 0</modelXYZToAirplaneXForwardZDown>
      <gazeboXYZToNED>0 0 0 3.141593 0 0</gazeboXYZToNED>
      <imuName>iris_demo::iris::iris/imu_link::imu_sensor</imuName>
      <connectionTimeoutMaxCount>5</connectionTimeoutMaxCount>
      <control channel="0">
      <!--
          incoming control command [0, 1]
          so offset it by 0 to get [0, 1]
          and divide max target by 1.
          offset = 0
          multiplier = 838 max rpm / 1 = 838
        -->
        <type>VELOCITY</type>
        <offset>0</offset>
        <p_gain>0.20</p_gain>
        <i_gain>0</i_gain>
        <d_gain>0</d_gain>
        <i_max>0</i_max>
        <i_min>0</i_min>
        <cmd_max>2.5</cmd_max>
        <cmd_min>-2.5</cmd_min>
        <jointName>iris::rotor_0_joint</jointName>
        <multiplier>-5000</multiplier>
        <controlVelocitySlowdownSim>1</controlVelocitySlowdownSim>
      </control>
      <control channel="1">
        <type>VELOCITY</type>
        <offset>0</offset>
        <p_gain>0.20</p_gain>
        <i_gain>0</i_gain>
        <d_gain>0</d_gain>
        <i_max>0</i_max>
        <i_min>0</i_min>
        <cmd_max>2.5</cmd_max>
        <cmd_min>-2.5</cmd_min>
        <jointName>iris::rotor_1_joint</jointName>
        <multiplier>-5000</multiplier>
        <controlVelocitySlowdownSim>1</controlVelocitySlowdownSim>
      </control>
      <control channel="2">
        <type>VELOCITY</type>
        <offset>0</offset>
        <p_gain>0.20</p_gain>
        <i_gain>0</i_gain>
        <d_gain>0</d_gain>
        <i_max>0</i_max>
        <i_min>0</i_min>
        <cmd_max>2.5</cmd_max>
        <cmd_min>-2.5</cmd_min>
        <jointName>iris::rotor_2_joint</jointName>
        <multiplier>5000</multiplier>
        <controlVelocitySlowdownSim>1</controlVelocitySlowdownSim>
      </control>
      <control channel="3">
        <type>VELOCITY</type>
        <offset>0</offset>
        <p_gain>0.20</p_gain>
        <i_gain>0</i_gain>
        <d_gain>0</d_gain>
        <i_max>0</i_max>
        <i_min>0</i_min>
        <cmd_max>2.5</cmd_max>
        <cmd_min>-2.5</cmd_min>
        <jointName>iris::rotor_3_joint</jointName>
        <multiplier>5000</multiplier>
        <controlVelocitySlowdownSim>1</controlVelocitySlowdownSim>
      </control>
      
           <control channel="4">
        <type>VELOCITY</type>
        <offset>0</offset>
        <p_gain>0.20</p_gain>
        <i_gain>0</i_gain>
        <d_gain>0</d_gain>
        <i_max>0</i_max>
        <i_min>0</i_min>
        <cmd_max>2.5</cmd_max>
        <cmd_min>-2.5</cmd_min>
        <jointName>iris::rotor_4_joint</jointName>
        <multiplier>5000</multiplier>
        <controlVelocitySlowdownSim>1</controlVelocitySlowdownSim>
      </control>
           <control channel="5">
        <type>VELOCITY</type>
        <offset>0</offset>
        <p_gain>0.20</p_gain>
        <i_gain>0</i_gain>
        <d_gain>0</d_gain>
        <i_max>0</i_max>
        <i_min>0</i_min>
        <cmd_max>2.5</cmd_max>
        <cmd_min>-2.5</cmd_min>
        <jointName>iris::rotor_5_joint</jointName>
        <multiplier>5000</multiplier>
        <controlVelocitySlowdownSim>1</controlVelocitySlowdownSim>
      </control>
           <control channel="6">
        <type>VELOCITY</type>
        <offset>0</offset>
        <p_gain>0.20</p_gain>
        <i_gain>0</i_gain>
        <d_gain>0</d_gain>
        <i_max>0</i_max>
        <i_min>0</i_min>
        <cmd_max>2.5</cmd_max>
        <cmd_min>-2.5</cmd_min>
        <jointName>iris::rotor_6_joint</jointName>
        <multiplier>-5000</multiplier>
        <controlVelocitySlowdownSim>1</controlVelocitySlowdownSim>
      </control>
           <control channel="7">
        <type>VELOCITY</type>
        <offset>0</offset>
        <p_gain>0.20</p_gain>
        <i_gain>0</i_gain>
        <d_gain>0</d_gain>
        <i_max>0</i_max>
        <i_min>0</i_min>
        <cmd_max>2.5</cmd_max>
        <cmd_min>-2.5</cmd_min>
        <jointName>iris::rotor_1_joint</jointName>
        <multiplier>-5000</multiplier>
        <controlVelocitySlowdownSim>1</controlVelocitySlowdownSim>
      </control>
    </plugin>

  </model>
</sdf>

iris_with_standoffs/model.sdf

<?xml version='1.0'?>
<sdf version='1.5'>
  <model name='iris'>
    <pose>0 0 0 0 0 0</pose>
    <link name='base_link'>
      <velocity_decay>
        <linear>0.0</linear>
        <angular>0.0</angular>
      </velocity_decay>
      <inertial>
        <pose>0 0 0 0 0 0</pose>
        <mass>68</mass>
        <inertia>
          <ixx>1.021</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>1.021</iyy>
          <iyz>0</iyz>
          <izz>2.081</izz>
        </inertia>
      </inertial>
      <collision name='base_link_collision'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <box>
            <size>1.5 1.606 1</size>
          </box>
        </geometry>
        <surface>
          <contact>
            <ode>
              <max_vel>100.0</max_vel>
              <min_depth>0.001</min_depth>
            </ode>
          </contact>
          <friction>
            <ode>
              <mu>100000.0</mu>
              <mu2>100000.0</mu2>
            </ode>
          </friction>
        </surface>
      </collision>
      <visual name='base_link_visual'>
        <geometry>
          <mesh>
            <uri>model://iris_with_standoffs/meshes/iris.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/DarkGrey</name>
          </script>
        </material>
      </visual>
    </link>
    <link name='iris/ground_truth/odometry_sensorgt_link'>
      <pose>0 0 0 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <mass>0.15</mass>
        <inertia>
          <ixx>0.0001</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.0002</iyy>
          <iyz>0</iyz>
          <izz>0.0002</izz>
        </inertia>
      </inertial>
    </link>
    <joint name='iris/ground_truth/odometry_sensorgt_joint' type='revolute'>
      <child>iris/ground_truth/odometry_sensorgt_link</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>0</lower>
          <upper>0</upper>
          <effort>0</effort>
          <velocity>0</velocity>
        </limit>
        <dynamics>
          <damping>1.0</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
    <link name='iris/imu_link'>
      <inertial>
        <pose>0 0 0 0 0 0</pose>
        <mass>0.15</mass>
        <inertia>
          <ixx>0.00001</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.00002</iyy>
          <iyz>0</iyz>
          <izz>0.00002</izz>
        </inertia>
      </inertial>
      <sensor name="imu_sensor" type="imu">
        <pose>0 0 0 3.141593 0 0</pose>
        <always_on>1</always_on>
        <update_rate>1000.0</update_rate>
      </sensor>
    </link>
    <joint name='iris/imu_joint' type='revolute'>
      <child>iris/imu_link</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>0</lower>
          <upper>0</upper>
          <effort>0</effort>
          <velocity>0</velocity>
        </limit>
        <dynamics>
          <damping>1.0</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>

    <link name='rotor_0'> <!--front right-->
      <pose>0.13 -0.22 0.023 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_0_collision'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>
          </cylinder>
        </geometry>
        <surface>
          <contact>
            <ode/>
          </contact>
          <friction>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='rotor_0_visual'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris_with_standoffs/meshes/iris_prop_cw.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/Blue</name>
            <uri>__default__</uri>
          </script>
        </material>
      </visual>
      <gravity>1</gravity>
      <velocity_decay/>
      <self_collide>0</self_collide>
    </link>
    <joint name='rotor_0_joint' type='revolute'>
      <child>rotor_0</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>0.004</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
    <link name='rotor_1'> <!--back left-->
      <pose>-0.13 0.2 0.023 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_1_collision'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>
          </cylinder>
        </geometry>
        <surface>
          <contact>
            <ode/>
          </contact>
          <friction>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='rotor_1_visual'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris_with_standoffs/meshes/iris_prop_cw.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/Red</name>
            <uri>__default__</uri>
          </script>
        </material>
      </visual>
      <gravity>1</gravity>
      <velocity_decay/>
      <self_collide>0</self_collide>
    </link>
    <joint name='rotor_1_joint' type='revolute'>
      <child>rotor_1</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>0.004</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
    <link name='rotor_2'> <!--front left-->
      <pose>0.13 0.22 0.023 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_2_collision'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>
          </cylinder>
        </geometry>
        <surface>
          <contact>
            <ode/>
          </contact>
          <friction>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='rotor_2_visual'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris_with_standoffs/meshes/iris_prop_ccw.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/Blue</name>
            <uri>__default__</uri>
          </script>
        </material>
      </visual>
      <gravity>1</gravity>
      <velocity_decay/>
      <self_collide>0</self_collide>
    </link>
    <joint name='rotor_2_joint' type='revolute'>
      <child>rotor_2</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>0.004</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
    <link name='rotor_3'> <!--back right-->
      <pose>-0.13 -0.2 0.023 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_3_collision'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>
          </cylinder>
        </geometry>
        <surface>
          <contact>
            <ode/>
          </contact>
          <friction>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='rotor_3_visual'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris_with_standoffs/meshes/iris_prop_ccw.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/Red</name>
            <uri>__default__</uri>
          </script>
        </material>
      </visual>
      <gravity>1</gravity>
      <velocity_decay/>
      <self_collide>0</self_collide>
    </link>
    <joint name='rotor_3_joint' type='revolute'>
      <child>rotor_3</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>0.004</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
    
    
        <link name='rotor_4'> <!--front right down-->
      <pose>0.13 -0.22 -0.023 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_4_collision'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>
          </cylinder>
        </geometry>
        <surface>
          <contact>
            <ode/>
          </contact>
          <friction>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='rotor_4_visual'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris_with_standoffs/meshes/iris_prop_ccw.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/Red</name>
            <uri>__default__</uri>
          </script>
        </material>
      </visual>
      <gravity>1</gravity>
      <velocity_decay/>
      <self_collide>0</self_collide>
    </link>
    <joint name='rotor_4_joint' type='revolute'>
      <child>rotor_4</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>0.004</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
    <link name='rotor_5'> <!--back left down-->
      <pose>-0.13 0.2 -0.023 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_5_collision'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>
          </cylinder>
        </geometry>
        <surface>
          <contact>
            <ode/>
          </contact>
          <friction>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='rotor_5_visual'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris_with_standoffs/meshes/iris_prop_ccw.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/Blue</name>
            <uri>__default__</uri>
          </script>
        </material>
      </visual>
      <gravity>1</gravity>
      <velocity_decay/>
      <self_collide>0</self_collide>
    </link>
    <joint name='rotor_5_joint' type='revolute'>
      <child>rotor_5</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>0.004</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
    <link name='rotor_6'> <!--front left down-->
      <pose>0.13 0.22 -0.023 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 -0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_6_collision'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>
          </cylinder>
        </geometry>
        <surface>
          <contact>
            <ode/>
          </contact>
          <friction>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='rotor_6_visual'>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris_with_standoffs/meshes/iris_prop_cw.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/Red</name>
            <uri>__default__</uri>
          </script>
        </material>
      </visual>
      <gravity>1</gravity>
      <velocity_decay/>
      <self_collide>0</self_collide>
    </link>
    <joint name='rotor_6_joint' type='revolute'>
      <child>rotor_6</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>0.004</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
      <link name='rotor_7'> <!--back right down-->
      <pose>-0.13 -0.2 -0.023 0 -0 0</pose>
      <inertial>
        <pose>0 0 0 0 0 0</pose>
        <mass>0.193</mass>
        <inertia>
          <ixx>9.75e-06</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000166704</iyy>
          <iyz>0</iyz>
          <izz>0.000167604</izz>
        </inertia>
      </inertial>
      <collision name='rotor_7_collision'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <cylinder>
            <length>0.005</length>
            <radius>0.945</radius>
          </cylinder>
        </geometry>
        <surface>
          <contact>
            <ode/>
          </contact>
          <friction>
            <ode/>
          </friction>
        </surface>
      </collision>
      <visual name='rotor_7_visual'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris_with_standoffs/meshes/iris_prop_cw.dae</uri>
          </mesh>
        </geometry>
        <material>
          <script>
            <name>Gazebo/Red</name>
            <uri>__default__</uri>
          </script>
        </material>
      </visual>
      <gravity>1</gravity>
      <velocity_decay/>
      <self_collide>0</self_collide>
    </link>
    <joint name='rotor_7_joint' type='revolute'>
      <child>rotor_7</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>0.004</damping>
        </dynamics>
        <use_parent_model_frame>1</use_parent_model_frame>
      </axis>
      <physics>
        <ode>
          <implicit_spring_damper>1</implicit_spring_damper>
        </ode>
      </physics>
    </joint>
    <static>0</static>
  </model>
</sdf>

Hello @Nios, what was your starting point for these SDF files? There are significant differences (aside from adding extra rotors) from the ones in GitHub - ArduPilot/ardupilot_gazebo: Plugins and models for vehicle simulation in Gazebo Sim with ArduPilot SITL controllers.

The modified iris_with_standoffs will not load in Gazebo Harmonic.

Here’s a minimal version that works: GitHub - srmainwaring/ardupilot_gazebo-1 at wips/wip-iris-octo-quad

octaquad

Run with

sim_vehicle.py --debug -v ArduCopter -f copter-octaquad --model JSON --console

and check

FRAME_CLASS = 4
FRAME_TYPE = 1

The tune is pretty rough, but it flys.

The key is to get the rotors and controls set up with existing inertia and aerodynamics settings before modifying the physical dimensions - otherwise there is too much changing to understand what might be causing an issue.

Update

A follow up with suggested rate controller params:

ATC_RAT_RLL_P    0.080000 (default 0.135000)
ATC_RAT_RLL_I    0.080000 (default 0.135000)
ATC_RAT_RLL_D    0.000100 (default 0.003600)
ATC_RAT_PIT_P    0.080000 (default 0.135000)
ATC_RAT_PIT_I    0.080000 (default 0.135000)
ATC_RAT_PIT_D    0.000100 (default 0.003600)
ATC_RAT_YAW_P    0.250000 (default 0.180000)
ATC_RAT_YAW_I    0.025000 (default 0.018000)

Figure: roll response

Figure: pitch response

Figure: yaw response

Thank you very much that you had the time to test it. I am using the branch Gazebo 11 and ubuntu 20.04 (with ArduCopter 4.5.7). Probably that’s why you see the differences in the files.

I modified the values depending on you provided sdf files and I run it with octo-quad parameters but the drone is crashing.

Do you think I should do it with the newer version of ardupilot_plugin?

Hi @Nios, we don’t support Gazebo 11. According to OSRF it’s slated to go EOL this January. The current versions of Gazebo are Garden and Harmonic, I’d recommend using Harmonic as Garden was recently marked EOL as well.

For full support please use the latest version of the ardupilot_gazebo plugin.

I ran a quick tune this morning and posted the params and PID plots above.

Once you can replicate these results with the modified Iris frame, we can consider a larger heavier frame. The 68 kg mass in your example is a large vehicle - all the dimensions will need to be scaled up appropriately for this to work (i.e. using the same frame size with larger mass and prop area and cp will not work because the physics will not make sense - the inertia will be incorrect and the forces applied on the props will be on the wrong side of the CoM on one of the blades as they rotate).

Hello again. I installed Harmonic and the newer ardupilot_plugin in VM with ubuntu 22.04. I copy/pasted the two sdf you provided and run the whole thing, but still potential thrust loss. Also, it takes too long to find position estimate.

Do you think is bug with ardupilot tag 4.5.7? Did you run it with a different branch/tag?

I ran with master, but I doubt that is the issue. It’s possibly a plugin failing to load because of resource path not being configured. What is the output on the terminal when run with full verbosity (-v4)?

The output of the terminal is:

$ gz sim -v4 -r iris_runway.sdf 

[Msg] Gazebo Sim GUI    v8.7.0

[Msg] Detected Wayland. Setting Qt to use the xcb plugin: 'QT_QPA_PLATFORM=xcb'.

[Dbg] [gz.cc:166] Subscribing to [/gazebo/starting_world].

[Dbg] [gz.cc:168] Waiting for a world to be set from the GUI...

[Dbg] [Gui.cc:275] Waiting for subscribers to [/gazebo/starting_world]...

[Msg] Received world [iris_runway.sdf] from the GUI.

[Dbg] [gz.cc:172] Unsubscribing from [/gazebo/starting_world].

[Msg] Gazebo Sim Server v8.7.0

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

[Msg] Loading SDF world file[/home/sbar/ardupilot_gazebo/worlds/iris_runway.sdf].

[Dbg] [Application.cc:96] Initializing application.

[Dbg] [Application.cc:170] Qt using OpenGL graphics interface

[GUI] [Dbg] [Application.cc:657] Create main window

[Msg] Serving entity system service on [/entity/system/add]

[Dbg] [Physics.cc:871] Loaded [gz::physics::dartsim::Plugin] from library [/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics-dartsim-plugin.so]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::Physics] for entity [1]

[GUI] [Dbg] [PathManager.cc:68] Requesting resource paths through [/gazebo/resource_paths/get]

[Dbg] [Sensors.cc:697] Configuring Sensors system

[Dbg] [Sensors.cc:557] SensorsPrivate::Run

[Dbg] [Sensors.cc:532] SensorsPrivate::RenderThread started

[Dbg] [Sensors.cc:337] Waiting for init

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::Sensors] for entity [1]

[Msg] Create service on [/world/iris_runway/create]

[Msg] Remove service on [/world/iris_runway/remove]

[Msg] Pose service on [/world/iris_runway/set_pose]

[Msg] Pose service on [/world/iris_runway/set_pose_vector]

[Msg] Light configuration service on [/world/iris_runway/light_config]

[Msg] Physics service on [/world/iris_runway/set_physics]

[Msg] SphericalCoordinates service on [/world/iris_runway/set_spherical_coordinates]

[Msg] Enable collision service on [/world/iris_runway/enable_collision]

[Msg] Disable collision service on [/world/iris_runway/disable_collision]

[Msg] Material service on [/world/iris_runway/visual_config]

[Msg] Material service on [/world/iris_runway/wheel_slip]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::UserCommands] for entity [1]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::SceneBroadcaster] for entity [1]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::Imu] for entity [1]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::NavSat] for entity [1]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::JointStatePublisher] for entity [15]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::LiftDrag] for entity [15]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::LiftDrag] for entity [15]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::LiftDrag] for entity [15]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::LiftDrag] for entity [15]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::LiftDrag] for entity [15]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::LiftDrag] for entity [15]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::LiftDrag] for entity [15]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::LiftDrag] for entity [15]

[GUI] [Dbg] [Gui.cc:355] GUI requesting list of world names. The server may be busy downloading resources. Please be patient.

[Msg] ApplyJointForce subscribing to Double messages on [/model/iris_with_gimbal/joint/iris_with_standoffs::rotor_0_joint/cmd_force]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::ApplyJointForce] for entity [15]

[Msg] ApplyJointForce subscribing to Double messages on [/model/iris_with_gimbal/joint/iris_with_standoffs::rotor_1_joint/cmd_force]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::ApplyJointForce] for entity [15]

[Msg] ApplyJointForce subscribing to Double messages on [/model/iris_with_gimbal/joint/iris_with_standoffs::rotor_2_joint/cmd_force]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::ApplyJointForce] for entity [15]

[Msg] ApplyJointForce subscribing to Double messages on [/model/iris_with_gimbal/joint/iris_with_standoffs::rotor_3_joint/cmd_force]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::ApplyJointForce] for entity [15]

[Err] [Util.cc:86] Joint with name [iris_with_standoffs::rotor_0_joint] not found. The joint will not respond to ArduPilot commands

[Err] [ArduPilotPlugin.cc:612] [iris_with_gimbal] Couldn't find specified joint [iris_with_standoffs::rotor_0_joint]. This plugin will not run.

[Dbg] [SystemManager.cc:80] Loaded system [ArduPilotPlugin] for entity [15]

[Msg] JointPositionController subscribing to Double messages on [/gimbal/cmd_roll]

[Dbg] [JointPositionController.cc:302] [JointPositionController] system parameters:

[Dbg] [JointPositionController.cc:303] p_gain: [2]

[Dbg] [JointPositionController.cc:304] i_gain: [0.1]

[Dbg] [JointPositionController.cc:305] d_gain: [0.01]

[Dbg] [JointPositionController.cc:306] i_max: [1]

[Dbg] [JointPositionController.cc:307] i_min: [-1]

[Dbg] [JointPositionController.cc:308] cmd_max: [1000]

[Dbg] [JointPositionController.cc:309] cmd_min: [-1000]

[Dbg] [JointPositionController.cc:310] cmd_offset: [0]

[Dbg] [JointPositionController.cc:311] Topic: [/gimbal/cmd_roll]

[Dbg] [JointPositionController.cc:312] initial_position: [0]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::JointPositionController] for entity [15]

[Msg] JointPositionController subscribing to Double messages on [/gimbal/cmd_pitch]

[Dbg] [JointPositionController.cc:302] [JointPositionController] system parameters:

[Dbg] [JointPositionController.cc:303] p_gain: [2]

[Dbg] [JointPositionController.cc:304] i_gain: [0.1]

[Dbg] [JointPositionController.cc:305] d_gain: [0.01]

[Dbg] [JointPositionController.cc:306] i_max: [1]

[Dbg] [JointPositionController.cc:307] i_min: [-1]

[Dbg] [JointPositionController.cc:308] cmd_max: [1000]

[Dbg] [JointPositionController.cc:309] cmd_min: [-1000]

[Dbg] [JointPositionController.cc:310] cmd_offset: [0]

[Dbg] [JointPositionController.cc:311] Topic: [/gimbal/cmd_pitch]

[Dbg] [JointPositionController.cc:312] initial_position: [0]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::JointPositionController] for entity [15]

[Msg] JointPositionController subscribing to Double messages on [/gimbal/cmd_yaw]

[Dbg] [JointPositionController.cc:302] [JointPositionController] system parameters:

[Dbg] [JointPositionController.cc:303] p_gain: [2]

[Dbg] [JointPositionController.cc:304] i_gain: [0.1]

[Dbg] [JointPositionController.cc:305] d_gain: [0.01]

[Dbg] [JointPositionController.cc:306] i_max: [1]

[Dbg] [JointPositionController.cc:307] i_min: [-1]

[Dbg] [JointPositionController.cc:308] cmd_max: [1000]

[Dbg] [JointPositionController.cc:309] cmd_min: [-1000]

[Dbg] [JointPositionController.cc:310] cmd_offset: [0]

[Dbg] [JointPositionController.cc:311] Topic: [/gimbal/cmd_yaw]

[Dbg] [JointPositionController.cc:312] initial_position: [0]

[Dbg] [SystemManager.cc:80] Loaded system [gz::sim::systems::JointPositionController] for entity [15]

[Dbg] [CameraZoomPlugin.cc:309] CameraZoomPlugin attached to sensor [camera].

[Dbg] [CameraZoomPlugin.cc:380] CameraZoomPlugin subscribing to messages on [/model/gimbal/sensor/camera/zoom/cmd_zoom]

[Dbg] [SystemManager.cc:80] Loaded system [CameraZoomPlugin] for entity [75]

[Msg] GstCameraPlugin: attached to sensor [camera]

[Msg] GstCameraPlugin: streaming video to 127.0.0.1:5600

[Dbg] [SystemManager.cc:80] Loaded system [GstCameraPlugin] for entity [75]

[Msg] Loaded level [default]

[Msg] Serving world controls on [/world/iris_runway/control], [/world/iris_runway/control/state] and [/world/iris_runway/playback/control]

[Msg] Serving GUI information on [/world/iris_runway/gui/info]

[Msg] World [iris_runway] initialized with [1ms] physics profile.

[Msg] Serving world SDF generation service on [/world/iris_runway/generate_world_sdf]

[Msg] Serving world names on [/gazebo/worlds]

[Msg] Resource path add service on [/gazebo/resource_paths/add].

[Msg] Resource path get service on [/gazebo/resource_paths/get].

[Msg] Resource path resolve service on [/gazebo/resource_paths/resolve].

[Msg] Resource paths published on [/gazebo/resource_paths].

[Msg] Server control service on [/server_control].

[GUI] [Dbg] [PathManager.cc:57] Received resource paths.

[GUI] [Dbg] [Gui.cc:413] Requesting GUI from [/world/iris_runway/gui/info]...

[GUI] [Dbg] [GuiRunner.cc:149] Requesting initial state from [/world/iris_runway/state]...

[GUI] [Msg] Loading config [/home/sbar/.gz/sim/8/gui.config]

[GUI] [Dbg] [Application.cc:528] Loading plugin [MinimalScene]

[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL

[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL

[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL

[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL

[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL

[GUI] [Msg] Added plugin [3D View] to main window

[GUI] [Msg] Loaded plugin [MinimalScene] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libMinimalScene.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [EntityContextMenuPlugin]

[GUI] [Msg] Currently tracking topic on [/gui/currently_tracked]

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Msg] Added plugin [Entity Context Menu] to main window

[GUI] [Msg] Loaded plugin [EntityContextMenuPlugin] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libEntityContextMenuPlugin.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [GzSceneManager]

[GUI] [Msg] Added plugin [Scene Manager] to main window

[GUI] [Msg] Loaded plugin [GzSceneManager] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libGzSceneManager.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [InteractiveViewControl]

[GUI] [Msg] Camera view controller topic advertised on [/gui/camera/view_control]

[GUI] [Msg] Camera reference visual topic advertised on [/gui/camera/view_control/reference_visual]

[GUI] [Msg] Camera view control sensitivity advertised on [/gui/camera/view_control/sensitivity]

[GUI] [Msg] Added plugin [Interactive view control] to main window

[GUI] [Msg] Loaded plugin [InteractiveViewControl] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libInteractiveViewControl.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [CameraTracking]

[GUI] [Msg] Added plugin [Camera tracking] to main window

[GUI] [Msg] Loaded plugin [CameraTracking] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libCameraTracking.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [MarkerManager]

[GUI] [Msg] Listening to stats on [/world/iris_runway/stats]

[GUI] [Msg] Added plugin [Marker Manager] to main window

[GUI] [Msg] Loaded plugin [MarkerManager] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libMarkerManager.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [SelectEntities]

[GUI] [Msg] Added plugin [Select entities] to main window

[GUI] [Msg] Loaded plugin [SelectEntities] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libSelectEntities.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [Spawn]

[GUI] [Msg] Added plugin [Spawn] to main window

[GUI] [Msg] Loaded plugin [Spawn] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libSpawn.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [VisualizationCapabilities]

[GUI] [Msg] View as transparent service on [/gui/view/transparent]

[GUI] [Msg] View as wireframes service on [/gui/view/wireframes]

[GUI] [Msg] View center of mass service on [/gui/view/com]

[GUI] [Msg] View inertia service on [/gui/view/inertia]

[GUI] [Msg] View collisions service on [/gui/view/collisions]

[GUI] [Msg] View joints service on [/gui/view/joints]

[GUI] [Msg] View frames service on [/gui/view/frames]

[GUI] [Msg] Added plugin [Visualization capabilities] to main window

[GUI] [Msg] Loaded plugin [VisualizationCapabilities] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libVisualizationCapabilities.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [WorldControl]

[GUI] [Msg] Using world control service [/world/iris_runway/control]

[GUI] [Msg] Listening to stats on [/world/iris_runway/stats]

[GUI] [Dbg] [WorldControl.cc:237] Using an event to share WorldControl msgs with the server

[GUI] [Msg] Added plugin [World control] to main window

[GUI] [Msg] Loaded plugin [WorldControl] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libWorldControl.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [WorldStats]

[GUI] [Msg] Listening to stats on [/world/iris_runway/stats]

[GUI] [Msg] Added plugin [World stats] to main window

[GUI] [Msg] Loaded plugin [WorldStats] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libWorldStats.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [Shapes]

[GUI] [Msg] Added plugin [Shapes] to main window

[GUI] [Msg] Loaded plugin [Shapes] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libShapes.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [Lights]

[GUI] [Msg] Added plugin [Lights] to main window

[GUI] [Msg] Loaded plugin [Lights] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libLights.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [TransformControl]

[GUI] [Msg] Added plugin [Transform control] to main window

[GUI] [Msg] Loaded plugin [TransformControl] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libTransformControl.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [Screenshot]

[GUI] [Msg] Screenshot service on [/gui/screenshot]

[GUI] [Msg] Added plugin [Screenshot] to main window

[GUI] [Msg] Loaded plugin [Screenshot] from path [/usr/lib/x86_64-linux-gnu/gz-gui-8/plugins/libScreenshot.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [CopyPaste]

[GUI] [Msg] Added plugin [Copy/Paste] to main window

[GUI] [Msg] Loaded plugin [CopyPaste] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libCopyPaste.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [ComponentInspector]

[GUI] [Msg] Added plugin [Component inspector] to main window

[GUI] [Msg] Loaded plugin [ComponentInspector] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libComponentInspector.so]

[GUI] [Dbg] [Application.cc:528] Loading plugin [EntityTree]

[GUI] [Msg] Currently tracking topic on [/gui/currently_tracked]

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityTree/EntityTree.qml:148:7: QML ToolButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Msg] Added plugin [Entity tree] to main window

[GUI] [Msg] Loaded plugin [EntityTree] from path [/usr/lib/x86_64-linux-gnu/gz-sim-8/plugins/gui/libEntityTree.so]

[GUI] [Dbg] [Application.cc:398] Loading window config

[GUI] [Msg] Using server control service [/server_control]

[GUI] [Dbg] [Application.cc:671] Applying config

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityTree/EntityTree.qml:148:7: QML ToolButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/WorldStats/WorldStats.qml:53:3: QML RowLayout: Binding loop detected for property "x"

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:52:3: QML RenderWindowOverlay: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Wrn] [Application.cc:908] [QT] file::/EntityContextMenuPlugin/EntityContextMenuPlugin.qml:67:3: QML EntityContextMenu: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

[GUI] [Dbg] [MinimalScene.cc:802] Creating gz-rendering interface for OpenGL

[GUI] [Dbg] [MinimalScene.cc:986] Creating render thread interface for OpenGL

[GUI] [Msg] Loading plugin [gz-rendering-ogre2]

[Msg] Found no publishers on /stats, adding root stats topic

[Msg] Found no publishers on /clock, adding root clock topic

[Dbg] [SimulationRunner.cc:533] Creating PostUpdate worker threads: 8

[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (0)

[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (1)

[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (2)

[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (3)

[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (4)

[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (5)

[Dbg] [SimulationRunner.cc:544] Creating postupdate worker thread (6)

[Err] [LiftDrag.cc:188] Link with name[iris_with_standoffs::rotor_0] not found. The LiftDrag will not generate forces

[Err] [LiftDrag.cc:188] Link with name[iris_with_standoffs::rotor_0] not found. The LiftDrag will not generate forces

[Err] [LiftDrag.cc:188] Link with name[iris_with_standoffs::rotor_1] not found. The LiftDrag will not generate forces

[Err] [LiftDrag.cc:188] Link with name[iris_with_standoffs::rotor_1] not found. The LiftDrag will not generate forces

[Err] [LiftDrag.cc:188] Link with name[iris_with_standoffs::rotor_2] not found. The LiftDrag will not generate forces

[Err] [LiftDrag.cc:188] Link with name[iris_with_standoffs::rotor_2] not found. The LiftDrag will not generate forces

[Err] [LiftDrag.cc:188] Link with name[iris_with_standoffs::rotor_3] not found. The LiftDrag will not generate forces

[Err] [LiftDrag.cc:188] Link with name[iris_with_standoffs::rotor_3] not found. The LiftDrag will not generate forces

[Msg] Found IMU sensor with name [iris_with_standoffs::imu_link::imu_sensor]

[Dbg] [ArduPilotPlugin.cc:1158] Computed IMU topic to be: world/iris_runway/model/iris_with_gimbal/model/iris_with_standoffs/link/imu_link/sensor/imu_sensor/imu

[Dbg] [JointPositionController.cc:376] Identified joint [gimbal::roll_joint] as Entity [77]

[Dbg] [JointPositionController.cc:376] Identified joint [gimbal::pitch_joint] as Entity [78]

[Dbg] [JointPositionController.cc:376] Identified joint [gimbal::yaw_joint] as Entity [76]

[Msg] GstCameraPlugin: camera name [iris_with_gimbal::gimbal::pitch_link::camera]

VMware: No 3D enabled (0, Success).

libEGL warning: egl: failed to create dri2 screen

VMware: No 3D enabled (0, Success).

libEGL warning: egl: failed to create dri2 screen

[Dbg] [SDFFeatures.cc:332] Mesh construction from an SDF has not been implemented yet for dartsim. Use AttachMeshShapeFeature to use mesh shapes.

[Dbg] [SDFFeatures.cc:864] The geometry element of collision [yaw_collision] couldn't be created

[Dbg] [SDFFeatures.cc:332] Mesh construction from an SDF has not been implemented yet for dartsim. Use AttachMeshShapeFeature to use mesh shapes.

[Dbg] [SDFFeatures.cc:864] The geometry element of collision [roll_collision] couldn't be created

[Dbg] [SDFFeatures.cc:332] Mesh construction from an SDF has not been implemented yet for dartsim. Use AttachMeshShapeFeature to use mesh shapes.

[Dbg] [SDFFeatures.cc:864] The geometry element of collision [pitch_collision] couldn't be created

Msg [NameManager::issueNewName] (Skeleton::BodyNode | iris_with_gimbal::iris_with_standoffs) The name [base_link] is a duplicate, so it has been renamed to [base_link(1)]

Msg [NameManager::issueNewName] (Skeleton::N4dart8dynamics9ShapeNodeE | iris_with_gimbal::iris_with_standoffs) The name [base_link:base_collision] is a duplicate, so it has been renamed to [base_link:base_collision(1)]

[GUI] [Dbg] [MinimalScene.cc:749] Create scene [scene]

[Dbg] [Sensors.cc:953] Initialization needed

[Dbg] [CameraZoomPlugin.cc:502] Camera name: [iris_with_gimbal::gimbal::pitch_link::camera].

].

[Dbg] [ImuSensor.cc:150] IMU data for [iris_with_gimbal::iris_with_standoffs::imu_link::imu_sensor] advertised on [world/iris_runway/model/iris_with_gimbal/model/iris_with_standoffs/link/imu_link/sensor/imu_sensor/imu]

[Dbg] [Sensors.cc:349] Initializing render context

[Msg] Loading plugin [gz-rendering-ogre2]

[Msg] Serving scene information on [/world/iris_runway/scene/info]

[Msg] Serving graph information on [/world/iris_runway/scene/graph]

[Msg] Serving full state on [/world/iris_runway/state]

[Msg] Serving full state (async) on [/world/iris_runway/state_async]

[Msg] Publishing scene information on [/world/iris_runway/scene/info]

[Msg] Publishing entity deletions on [/world/iris_runway/scene/deletion]

[Msg] Publishing state changes on [/world/iris_runway/state]

[Msg] Publishing pose messages on [/world/iris_runway/pose/info]

[Msg] Publishing dynamic pose messages on [/world/iris_runway/dynamic_pose/info]

[Wrn] [Model.hh:69] Skipping serialization / deserialization for models with //pose/@relative_to attribute.

[Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf3v145WorldE], which doesn't have `operator<<`. Component will not be serialized.

VMware: No 3D enabled (0, Success).

libEGL warning: egl: failed to create dri2 screen

VMware: No 3D enabled (0, Success).

libEGL warning: egl: failed to create dri2 screen

[Dbg] [RenderingIface.cc:156] No scene has been created yet

[Wrn] [CameraZoomPlugin.cc:218] No scene or camera sensors available.

[Dbg] [RenderUtil.cc:2643] Create scene [scene]

[Dbg] [EntityComponentManager.cc:1656] Updated state thread iterators: 2 threads processing around 40 entities each.

[Wrn] [Component.hh:144] Trying to serialize component with data type [St6vectorIdSaIdEE], which doesn't have `operator<<`. Component will not be serialized.

[GUI] [Wrn] [Ogre2RenderTarget.cc:668] Anti-aliasing level of ' is not supported; valid FSAA levels are: [ 0 4 ]. Setting to 1

[GUI] [Dbg] [MinimalScene.cc:1037] Creating texture node render interface for OpenGL

[GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

[GUI] [Wrn] [Component.hh:189] [GUI] [Dbg] [TransformControl.cc:453] TransformControl plugin is using camera [scene::Camera(65527)]

[GUI] [Dbg] [Spawn.cc:308] Spawn plugin is using camera [scene::Camera(65527)]

[GUI] [Dbg] [SelectEntities.cc:452] SelectEntities plugin is using camera [scene::Camera(65527)]

[GUI] [Dbg] [MarkerManager.cc:169] Advertise /marker/list service.

Trying to deserialize component with data type [[GUI] [Dbg] [MarkerManager.cc:179] Advertise /marker/list.

[GUI] [Dbg] [MarkerManager.cc:189] Advertise /marker_array.

[GUI] [Dbg] [CameraTracking.cc:205] CameraTrackingPrivate plugin is moving camera [scene::Camera(65527)]

St6vectorIdSaIdEE], which doesn't have `operator>>`. Component will not be deserialized.

[GUI] [Wrn] [Component.hh:189] Trying to deserialize component with data type [N3sdf3v145WorldE], which doesn't have `operator>>`. Component will not be deserialized.

[GUI] [Msg] Move to service on [/gui/move_to]

[GUI] [Msg] Follow service on [/gui/follow] (deprecated)

[GUI] [Msg] Tracking topic on [/gui/track]

[GUI] [Msg] Tracking status topic on [/gui/currently_tracked]

[GUI] [Msg] Move to pose service on [/gui/move_to/pose]

[GUI] [Msg] Camera pose topic advertised on [/gui/camera/pose]

[GUI] [Msg] Follow offset service on [/gui/follow/offset] (deprecated)

[GUI] [Dbg] [InteractiveViewControl.cc:176] InteractiveViewControl plugin is moving camera [scene::Camera(65527)]

[GUI] [Dbg] [EntityContextMenuPlugin.cc:79] Entity context menu plugin is using camera [scene::Camera(65527)]

[Dbg] [Sensors.cc:953] Initialization needed

[Dbg] [Sensors.cc:391] Rendering Thread initialized

[Wrn] [CameraZoomPlugin.cc:218] No scene or camera sensors available.

[GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

[GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

[GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

[GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

[GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

[GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

[GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

[Dbg] [CameraSensor.cc:398] Camera images for [iris_with_gimbal::gimbal::pitch_link::camera] advertised on [world/iris_runway/model/iris_with_gimbal/model/gimbal/link/pitch_link/sensor/camera/image]

[Dbg] [CameraSensor.cc:688] Camera info for [iris_with_gimbal::gimbal::pitch_link::camera] advertised on [/world/iris_runway/model/iris_with_gimbal/model/gimbal/link/pitch_link/sensor/camera/camera_info]

[Wrn] [Ogre2Camera.cc:421] Ogre2Camera::SetVisibilityMask: Mask bits c0000000 are set but will be ignored as they conflict with the reserved bits used internally by the ogre2 backend.

[Msg] GstCameraPlugin: image topic [world/iris_runway/model/iris_with_gimbal/model/gimbal/link/pitch_link/sensor/camera/image]

[Msg] GstCameraPlugin: enable topic [world/iris_runway/model/iris_with_gimbal/model/gimbal/link/pitch_link/sensor/camera/image/enable_streaming]

[Dbg] [CameraSensor.cc:497] Enabling camera sensor: 'iris_with_gimbal::gimbal::pitch_link::camera' data generation.




[Err] [Util.cc:86] Joint with name [iris_with_standoffs::rotor_0_joint] not found. The joint will not respond to ArduPilot commands

[Err] [ArduPilotPlugin.cc:612] [iris_with_gimbal] Couldn't find specified joint [iris_with_standoffs::rotor_0_joint]. This plugin will not run.

There are <control> elements in the ArduPilotPlugin referencing joints that are not in your model. They need to be edited / removed / commented out. The error prevents the plugin from loading, so no physics for ArduPilot…

I changed the iris_with_gimbal to iris_with_ardupilot in the uri model at the “iris_runway.sdf” and it worked now!!! Thanks!!

I also changed the following parameters (everything else is the same) and the drone flies well:

mass 68 kg
cp 0.3024
area 0.0144
inertia 14.73, 13.83, 22.57
props: radius 0.9

And when I modify the weight of the props and inertia of the props and multiplier it crashes.

props:
mass 0.19
inertia 0.00963, 0.00963, 0.01924
multiplier: 400

The motor info are in this thread above.

Can you suggest to modify anything?

What are the (x, y, z) poistions of the motors in your quad relative to the to frame CoM. Is the mass and inertia given just for the frame or the entire copter?

base_link:

  • pose: (0, 0, 0, 0, 0, 0)
  • mass: 68.0 kg
  • ixx: 14.74 kg m^2
  • iyy: 13.83 kg m^2
  • izz: 22.57 kg m^2

motor:

  • pose (x, y, z, r, p, y)
  • cylinder: radius?, height?
  • mass: ??
  • inertial: ??
  • max_ang_vel: 400 rad / s = 3820 rpm

props:

  • diameter: 1.8 m
  • mass: ??
  • area: 0.0144 m^2
  • cp: 0.3024 m

The cp given is 1/3 distance from prop hub to the tip. Is this correct? (would be correct for a triangle but for a prop I’d expect it to be a little closer to 1/2).

The positions of the motors are the same as the Iris. When Iris will be able to fly as 68kg and bigger size and motors/props, the final step is to put my custom .stl model drone.

The mass of 68kg is for entire copter. The inertia is an estimate based on a box object. Also, regarding the cp I changed it to 0.25 because the props have diameter 0.9; so the radius should be 0.45. Mass of the prop is 0.19 and inertia (estimate): 0.00963, 0.00963, 0.01924. Still takeoffs but eventually crashes.

Also, for the motors:

  • mass: 1020gr
  • Φ121*46.5mm
  • rpm at 100% : 4174

That is a very heavy drone for something the size of an Iris - may I ask what payload it is carrying. In comparision: according to specs the Iris has a max flying weight of 1.68 kg (1.28 kg frame and battery + 0.4 kg payload).