osrf / vrx

Virtual RobotX (VRX) resources.
Apache License 2.0
415 stars 188 forks source link

Replicate wind induced motion to course objects #195

Open osrf-migration opened 4 years ago

osrf-migration commented 4 years ago

Original report (archived issue) by Brian Bingham (Bitbucket: brian_bingham).


This feature has been mentioned by a few RobotX teams. The course elements move around in a “watch circle” due to environmental effects - primarily wind. Additionally, the attitude of the buoys is affected by wind. Simulating these motions of the course objects (buoys, obstacles, docks, etc. ) would add functionality so that teams could test their solutions against moving course objects.

Depending on how this is implemented, could make use of a solution to issue #194

osrf-migration commented 4 years ago

Original comment by Brian Bingham (Bitbucket: brian_bingham).


HashirZahir commented 4 years ago

Hi Brian, do you mind providing some guidance or tips on how this could possibly be implemented at the high level? I'm not too familiar with how the current static wind is simulated and what more is needed to achieve wind induced motion for course objects. I would not mind helping out if no one has started on this yet as I feel this would greatly improve the testing for the upcoming RobotX 2020.

caguero commented 4 years ago

@HashirZahir , it's great to hear that you're interested on this. As a first step, I suggest to improve the wind model in a way that wind changes direction. Right now, we change its intensity only.

See issue #194. Relevant files:

Then, we can discuss how to add motion to the course objects. We had some ideas in mind...

Thanks!

bsb808 commented 4 years ago

I believe there are at least two issues here.

  1. Creating a more authentic model of the wind velocity that accounts for variability in both speed and direction. I've attached some notes on how we are looking at modeling the wind with a more authentic spectra-based model. Including directionality is another feature that would be helpful.

  2. Modeling how the wind affects objects. For the WAM-V vessel we've done this based on empirical coefficients. This would be a good first start for other objects in the scene (buoys, docks, etc.). As currently formulated this would just induce x, y and yaw forces - for small objects, such as navigation markers, it would be ideal if the wind also induced changes in pitch/roll of the objects. This could be coefficient based. It make get tricky with the interplay between wind and buoyancy forces, but it would be a great addition to improve testing ability.

Attached are some of our notes on these subjects. Happy to have some help implementing these ideas if it is of interest. vrx_wind.pdf PID6131719.pdf

HashirZahir commented 4 years ago

Thanks @caguero for the advice, I'll try to explore how this can be done. Thanks @bsb808 for the notes on the subject. It looks quite involved and interesting :+1:

Hopefully I can be of help to implement some of these ideas, starting with a wind model that supports changing directions.

acxz commented 2 years ago

It may be a good idea to take a look at Gazebo's built in WindPlugin: https://osrf-distributions.s3.amazonaws.com/gazebo/api/dev/classgazebo_1_1WindPlugin.html

and maybe utilize that directly instead of rolling our own. It may also be beneficial to upstream our wind computations to Gazebo.