ethz-asl / rotors_simulator

RotorS is a UAV gazebo simulator
1.22k stars 756 forks source link

Modify the wind plugin to also have effect on the forces and moments of the gazebo_motor_model #132

Open ffurrer opened 9 years ago

ffurrer commented 9 years ago

There are some ways how we can achieve this, but we should discuss that I think.

burrimi commented 9 years ago

We should only apply forces to the rotors I think. At least according to the identification we did with Manuel, the main influence came from the air drag. Not sure how to handle wind in z direction though.

markusachtelik commented 9 years ago

the clean way would be to apply the forces on rotors. for the z-direction, we could try to find some drag coefficient that is proportional to the speed squared. Does anyone know what happens with wind that goes through the rotor disk parallel to the rotor's axis? That would probably be the main source.

We could think about two modes, or call it somewhat "disturbance plugin":

ffurrer commented 9 years ago

Does anyone know what happens with wind that goes through the rotor disk parallel to the rotor's axis?

I guess that will basically change the angle of attack of the rotor which would lead in a different motor_constant_ in:

double force = real_motor_velocity * real_motor_velocity * motor_constant_;

Does that make sense? Not sure how we would incorporate this though, we would need to have the motor_constant_ depend on the current velocity (air + body) going through the rotor plane parallel to the rotor's axis or something similar.

burrimi commented 9 years ago

We just need to get the velocity in world coordinates and project it onto the rotor plane (which needs the orientation of the motor). I think both (the velocity and the orientation) are available in the plugin.

ffurrer commented 9 years ago

To wrap it up:

@markusachtelik and @burrimi any additions or changes?

juanmed commented 5 years ago

@ffurrer Hello. I understand this is a very old thread but, is there any reference pull-request where I can see how the functionality here was implemented? I am interested in modifying the model of the rotors to account for air drag beyond the current implementation.

Any comments will be very appreciated.