Repository to simulate the Aquanaute boat in maritime conditions such as wind and waves and with autopilot provided by ardupilot, using the plugins created for the VRX and VRX-Challenge in Gazebo and ROS and the plugin ardupilot-gazebo.
Note T. SIMON 13/10/19: Project need to be study more for the simulation part, the position is correctly apply through ardupilot_plugin with the correct set of parameters but not the velocity nore the effort on the propeller joint. An identification of the real motor should be made to get the function between thrust and command to coorespond to the real motor
Clone this repo to a Catkin Workspace
Clone the VRX repo (hosted at ensta) to the same Workspace (http://git-u2is.ensta.fr/ssh/vrx) and change to the branch "aquanaute"
in the file "vehiculeinfo.py" (/ardupilot/Tools/autotest/pysim) you need to change the default parameters file for the "gazebo-rover" in the line 280 to the aquanaute.parm file provided in /aquanaute/aquanaute_description/ardu_params you can copy and paste the file in the default_params folder located inside (/ardupilot/Tools/autotest). There is an error when you launch ardupilot, the motors in the gazebo simulation will start to turn in a fixed direction and wont respond to commands, this issue has not yet been fixed and it's root cause has not yet been found, It's believed that the ardupilot-gazebo plugin doesnt know how to interpret the signals sended by ardupilot
in the ocean.world.xacro (/vrx_gazebo/worlds) you have
<!--Waves--> <xacro:include filename="$(find wave_gazebo)/world_models/ocean_waves/model.xacro"/> <xacro:ocean_waves gain="0.0" period="5" direction_x="-1.0" direction_y="0.0" angle="0.0"/> <!--Wind--> <xacro:include filename="$(find vrx_gazebo)/worlds/xacros/usv_wind_plugin.xacro"/> <xacro:usv_wind_gazebo direction="90" mean_vel="0" var_gain="5" var_time="1"> <wind_objs> <wind_obj> <name>aquanaute</name> <link_name>base_link</link_name> <coeff_vector>0.5 0.5 0.33</coeff_vector> </wind_obj> </wind_objs> </xacro:usv_wind_gazebo>
It is configured to have no waves and no wind, also the wind and the waves move in the same direction, to activate wind and waves change the "mean_vel" and "gain" parameters respectively (recomended values are smaller than 1.0).
Even when these values are set to 0, the boat will move from right to left.
in the workspace run the command at the beginning (and every time you change a parameter in the vrx xacros)
then launch the file you created
roslaunch aquanaute_gazebo aquanaute.launch testing:=false
this parameter can be changed to true to deactivate the plugins from vrx (the world will be changed to an empty world without gravity).
You will have an error "Missing Model.../dock_permutations) this is normal.
on another terminal (inside the ardupilot root) run
./Tools/autotest/sim_vehicle.py -v APMrover2 -f gazebo-rover --map --console -l 48.71603264538473,2.213283777236939,155,0
Ricardo RICO URIBE intern at U2IS in the summer of 2020