disaster-robotics-proalertas / usv_sim_lsa

Unmanned Surface Vehicle simulation on Gazebo with water current and winds
Apache License 2.0
325 stars 105 forks source link

USV dynamics on Diffboat #35

Open walidtouzout opened 4 years ago

walidtouzout commented 4 years ago

Hello, I want to apply Lift and Drag forces on the diffboat using USV_dynamics plugin, and I want to visualize all forces acting on the Diff-boat (Lift and drag forces, thrusters' forces, wind force, wave force etc.) can you help me to do that ?

marceloparavisi commented 4 years ago

Hello walidtouzout

In order to apply lift and drag forces using the usv_dynamics_plugin, you should configure the plugin by attaching it to a link.

<plugin name="usv_sail_plugin" filename="libfoil_dynamics_plugin.so"> <link_type>rudder</link_type> <mult_lift>1.5</mult_lift> <mult_drag>1</mult_drag> <cp>-0.2 0 0</cp> <area>0.02</area> <fluid_density>1000</fluid_density> <forward>1 0 0</forward> <upward>0 1 0</upward> <link_name>rudder</link_name> <fluidVelocity>${waterType}</fluidVelocity> </plugin>

I believe you should develop a plugin to visualize all forces. In last year, I asked for a plugin with this functionality to a OSRF developer and she informed me that it haven't been developed.

Regards, Marcelo Paravisi

walidtouzout commented 4 years ago

thank you so much for your reply,

so, is it faisable to create custom message, and to publish these forces to a given topic, then I create a ROS node that subscribes to that topic and gets the forces?

On Fri, Nov 29, 2019, 17:55 marceloparavisi <notifications@github.com wrote:

Hello walidtouzout

In order to apply lift and drag forces using the usv_dynamics_plugin, you should configure the plugin by attaching it to a link.

rudder 1.5 1 -0.2 0 0 0.02 1000 1 0 0 0 1 0 rudder ${waterType}

I believe you should develop a plugin to visualize all forces. In last year, I asked for a plugin with this functionality to a OSRF developer and she informed me that it haven't been developed.

Regards, Marcelo Paravisi

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/disaster-robotics-proalertas/usv_sim_lsa/issues/35?email_source=notifications&email_token=AMCGRFIEDPFDF5RRORUPG4LQWFCPPA5CNFSM4JTAT7VKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFPIWJI#issuecomment-559844133, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMCGRFJVILVLZRQMCB24T23QWFCPPANCNFSM4JTAT7VA .

davihdsantos commented 4 years ago

Hi @walidtouzout

you are correct. you have to modify the lift and drag plugin to publish the forces to a topic. then you visualize it using Rviz.

You can use this plugin as an example https://github.com/uuvsimulator/uuv_simulator/blob/master/uuv_gazebo_plugins/uuv_gazebo_ros_plugins/src/FinROSPlugin.cc

they publish the forces on a topic called joint/wrench.

walidtouzout commented 4 years ago

Hi again, when I was trying to apply Lift/drag forces by configuring the plugin in empty.world file :

<model name="model">
    <link name="link">
           <wind>true</wind>
    </link>
    <plugin name="foil_dynamics_plugin" filename="libfoil_dynamics_plugin.so">
    <link_type>rudder</link_type>
    <mult_lift>1.5</mult_lift>
<mult_drag>1</mult_drag>
<cp>-0.2 0 0</cp>
<area>0.02</area>
<fluid_density>1000</fluid_density>
<forward>1 0 0</forward>
<upward>0 1 0</upward>
<link_name>rudder</link_name>
<fluidVelocity>${waterType}</fluidVelocity>
</plugin>      

I saw in the terminal that the plugin was loaded, but when running a scenario I got this error message:

gzserver: /usr/include/boost/smart_ptr/shared_ptr.hpp:648: typename boost::detail::sp_member_access::type boost::shared_ptr::operator->() const [with T = gazebo::physics::Link; typename boost::detail::sp_member_access::type = gazebo::physics::Link*]: Assertion `px != 0' failed.

and the scenario couldn't be launched, can you help me to solve this problem ?