rotors_simulator icon indicating copy to clipboard operation
rotors_simulator copied to clipboard

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

Open ffurrer opened this issue 10 years ago • 6 comments

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

ffurrer avatar Jan 08 '15 16:01 ffurrer

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.

burrimi avatar Jan 09 '15 08:01 burrimi

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":

  • simple mode, that just applies a disturbance force
  • advanced mode with wind model etc
  • which other disturbances may exist?

markusachtelik avatar Jan 09 '15 14:01 markusachtelik

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.

ffurrer avatar Jan 12 '15 19:01 ffurrer

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.

burrimi avatar Jan 12 '15 19:01 burrimi

To wrap it up:

  • [ ] rename plugin to disturbance_plugin
  • [ ] add sdf parameters
    • [ ] force params that replace the wind and windgust, which then just apply a disturbance force
    • [ ] do we want something like a disturbance moment?
    • [ ] wind params similar to the ones which we have now, just with a wind speed instead of force
  • [ ] publish the wind from the plugin if some wind is set
  • [ ] apply the disturbance forces, just like the wind forces are currently applied
  • [ ] make a callback in gazebo_motor_model to get the current wind
  • [ ] apply the wind forces and moments in gazebo_motor_model

@markusachtelik and @burrimi any additions or changes?

ffurrer avatar Jan 13 '15 16:01 ffurrer

@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.

juanmed avatar Jun 27 '19 10:06 juanmed