Aerodynamics Plugin - Help with parameters

asked 2020-02-23 23:41:02 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hello all. I have written a quadcopter model in .xacro file format, and for the propellers and the motors, i have used a mesh file. I am using the aerodynamics plugin to generate thrust when the propeller rotates. For your convenience, i have enclosed the code snippet that defines these meshes and the joints. Could you guys please help me in choosing the parameters of the aerodynamics plugin (libLiftDragPlugin.so)?

Further, in a quadcopter, the propeller rotates about a point. Unlike a propeller aircraft (like cessena), where the direction of forward movement of the aircraft defines the "forward" parameter, and the direction of lift hence produced determines the "upward" parameter of the plugin, how do we decide the "forward" parameter for the quadcopter the plugin? (the "upward" tag will be the positive z-axis).

Propeller's Definition:

<link name="prop1">
    <visual>
        <origin xyz="0 0 0.025" rpy="0 0 0" />
        <geometry>
            <mesh filename="package://fly_bot_cpp/meshes/prop1.dae" scale="0.02 0.02 0.02" />
        </geometry>

        <material name="black" />
    </visual>

    <collision>
        <origin xyz="0 0 0.025" rpy="0 0 0" />
        <geometry>
            <box size="0.00055 0.00008 0.00001" /> 
        </geometry>
    </collision>
    <xacro:default_inertial mass="${0.05}" p="${0}" ix_value="${2.7e-7}" iy_value="${1.26e-5}" iz_value="${1.285e-5}" />
</link>

Motor's Definition:

<link name="motor1">
    <visual>
        <origin xyz="0 0 0" rpy="0 0 0" />
        <geometry>
            <mesh filename="package://fly_bot_cpp/meshes/motors.dae" scale="0.01 0.01 0.01" />
        </geometry>

        <material name="black" />
    </visual>

    <collision>
        <origin xyz="0 0 0" rpy="0 0 0" />
        <geometry>
            <box size="0.0007 0.0007 0.0025" /> 
        </geometry>
    </collision>
    <xacro:default_inertial mass="${0.01}" p="${0}" ix_value="${5.5145e-7}" iy_value="${5.5145e-7}" iz_value="${6.125e-10}" />
</link>

Definition of the Joint:

<joint name="joint_motor_prop1" type="continuous">
    <parent link="motor1" />
    <child link="prop1" />
    <origin xyz="0 0 0.025" rpy="0 0 0" />
    <axis xyz="0 0 1" /> 
</joint>

and so on for the other 3 propellers and the motors. Here are the aerodynamics plugin parameters that i need some help. (The parameters that i cannot figure out are marked as ?)

<gazebo>
    <plugin name="quad_prop1_left" filename="libLiftDragPlugin.so">
        <a0>0.1</a0>
        <cla>0.1</cla>
        <cda>0.01</cda>
        <cma>0.0</cma>
        <alpha_stall>0.2</alpha_stall>
        <cla_stall>-0.2</cla_stall>
        <cda_stall>1.0</cda_stall>
        <cma_stall>0.0</cma_stall>
        <cp>? ? ?</cp>
        <area>?</area>
        <air_density>1.2041</air_density>
        <forward>? ? ?</forward>
        <upward>0 0 1</upward>
        <link_name>prop1</link_name>
    </plugin>
</gazebo>

Thank you so much for your time.

edit retag flag offensive close merge delete