RLBench/envs/_quadrocopter/quadrotor_dynamics.py
def wind_creator(direction, strength):
    """
    Return callable that computes the wind force on the quadrotor.

    Parameters:
    direction: 3d-array
        Direction vector for the wind.
    strength: float
        Strength of the wind in N / m^2
    """
    direction = np.asarray(direction, dtype=np.float).squeeze()
    direction /= np.linalg.norm(direction)

    quadrotor_length = 0.3
    quadrotor_height = 0.05

    norm_area = np.array((quadrotor_length * quadrotor_height,
                          quadrotor_length * quadrotor_height,
                          quadrotor_length ** 2))

    def wind_force(state):
        """Return wind force.

        Homogeneous wind, this does not create any torques.

        Parameters
        ----------
        state :
        """
        # Project surface areas into the wind direction
        area = np.abs(direction.dot(state.R)) * norm_area
        force = np.sum(area) * strength * direction
        return force

    return wind_force

    Return callable that computes the wind force on the quadrotor.

    Parameters:
    direction: 3d-array
        Direction vector for the wind.
    strength: float
        Strength of the wind in N / m^2
    
Return callable that computes the wind force on the quadrotor.
Parameters:
direction: 3d-array
Direction vector for the wind.
strength: float
Strength of the wind in N / m^2
Return callable that computes the wind force on the quadrotor . Parameters : direction : 3d - array Direction vector for the wind . strength : float Strength of the wind in N / m^2
def wind_creator(direction, strength):
    direction = np.asarray(direction, dtype=np.float).squeeze()
    direction /= np.linalg.norm(direction)
    quadrotor_length = 0.3
    quadrotor_height = 0.05
    norm_area = np.array((quadrotor_length * quadrotor_height,
                          quadrotor_length * quadrotor_height,
                          quadrotor_length ** 2))
    def wind_force(state):
        area = np.abs(direction.dot(state.R)) * norm_area
        force = np.sum(area) * strength * direction
        return force
    return wind_force
def wind_creator ( direction , strength ) : direction = np . asarray ( direction , dtype = np . float ) . squeeze ( ) direction /= np . linalg . norm ( direction ) quadrotor_length = 0.3 quadrotor_height = 0.05 norm_area = np . array ( ( quadrotor_length * quadrotor_height , quadrotor_length * quadrotor_height , quadrotor_length ** 2 ) ) def wind_force ( state ) : """Return wind force.

        Homogeneous wind, this does not create any torques.

        Parameters
        ----------
        state :
        """ area = np . abs ( direction . dot ( state . R ) ) * norm_area force = np . sum ( area ) * strength * direction return force return wind_force
Return callable that computes the wind force on the quadrotor.
Return callable that computes the wind force on the quadrotor .
"""
    Return callable that computes the wind force on the quadrotor.

    Parameters:
    direction: 3d-array
        Direction vector for the wind.
    strength: float
        Strength of the wind in N / m^2
    """ """Return wind force.

        Homogeneous wind, this does not create any torques.

        Parameters
        ----------
        state :
        """ # Project surface areas into the wind direction
direction
strength