About the default aerodynamics implemented in MuJoCo

Discussion in 'Support requests' started by tominku, Jul 18, 2018.

  1. Hi, I'm curious about how accurate and reliable the default aerodynamics model in MuJoCo is. I'm currently setting the density in the option greater than zero and it seems the model works fine. But I want to know more detail about the aerodynamics model implemented in MuJoCo. While it is mentioned in the document page, is it consistent with the basic aerodynamics model in the literature Lift = - 1/2 * rho * v^2 * A_ref * C_L and Drag = - 1/2 * rho * v^2 * A_ref * C_D? Let me assume that the area of the (front-facing) inertia box is equivalent to the reference area A_ref, but which term serves as the lift coefficient C_L ? Also, could you please how the i th velocity component of the body frame was computed and it can be related to the angle-of-attack dependent lift coefficient ? Since I cannot see the code of the implementation, the only thing I can do is to infer from the equations presented in the document. I would really appreciate the clarification on the default aerodynamics equations presented in the document page and how consistent it is with the basic ones in the literature.

    Thanks in advance !
    Last edited: Jul 18, 2018
  2. Emo Todorov

    Emo Todorov Administrator Staff Member

    Lift and drag coefficients are used to summarize complex effects of geometry and physics with a single number, and are usually measured empirically for a given system. We cannot do this in a general-purpose simulator because it is supposed to work with all shapes and all velocities without asking the user for empirical measurements of such coefficients. So the model used in MuJoCo is more mechanistic, in the sense that the equations shown in the documentation compute the net 3D force acting on the body, in the local coordinate system which is aligned with the equivalent-inertia box of the body. You can decompose that force into lift and drag components and measure the effective lift and drag coefficients that come out of a MuJoCo simulation, but internally MuJoCo does not use these concepts.

    The MuJoCo model is really simple. Replace each body with three orthogonal planar patches, compute the force for each patch independently and add them up. For a single patch (which is infinitely thin) there is only normal force, equal to density times area times normal velocity squared. Since the patches are orthogonal, each patch determines one component of the 3D force in the local frame. Note that if you have a non-zero angle of attack, the lift and drag forces are not going to be aligned with the local frame but instead are going to be oblique.

    Comparing to the standard equations you mention, the lift coefficient here is effectively 1, but you can think of it as being absorbed in the density rho (in the sense that the force scales with C_L * rho and the individual values of C_L and rho are not relevant). So just change rho as needed.