daneshtarapore / gazebo-asv

Plugins to model the dynamics of autonomous surface vehicles in Gazebo
10 stars 3 forks source link

README

:Author: Danesh Tarapore :Email: daneshtarapore@gmail.com :Date: November 17th, 2016

What is gazebo-asv?

Gazebo-asv comprises models and plugins to simulate the dynamics of an autonomous surface vehicle in 6-DoF (surge, sway, heave, roll, pitch and yaw).

Downloading gazebo-asv

You can download the sources of gazebo-asv through git:

$ git clone https://github.com/daneshtarapore/gazebo-asv.git gazebo-asv

Compiling gazebo-asv

Requirements and compiling instructions


Gazebo-asv requires the Gazebo simulator. Installation instructions for Gazebo can be found at http://gazebosim.org/tutorials?cat=install. The gazebo-asv has been tested on Gazebo7.

Fast compiling instructions

$ cd gazebo-asv $ cd plugins/models/asvdynamics $ mkdir build $ cd build $ cmake .. $ make

Running the gazebo-asv simulator



Before running Gazebo, make sure the GAZEBO_MODEL_PATH environment variable points to gazebo-asv/models. Also the environment variable GAZEBO_PLUGIN_PATH should points to gazebo-asv/plugins/models/asvdynamics/build. 

First create the Gazebo world by running create_swarm_world.py script. RNG_SEED is the random number generator seed used to randomly position NUM_ASV robots of the swarm. The template world file used is gazebo-asv/worlds/surface.template.world.

 $ cd gazebo-asv/worlds
 $ ./create_swarm_world.py RNG_SEED NUM_ASV

Now create the ASV model files for each of the NUM_ASV robots of the swarm by running the create_swarm_asv_models.sh script. The template ASV model files are in gazebo-asv/models/asv_model.

 $ cd gazebo-asv/models
 $ ./create_swarm_asv_models.sh NUM_ASV

The simulation can now be run as follows:

 $ cd gazebo-asv
 $ gazebo -e ode --verbose worlds/surface.world -u --profile ode

In the simulation example, gazebo-asv/worlds/surface.world describes a scenario with NUM_ASV monohull dual-propeller ASVs. The thrust forces applied on the two propellers of robot X are specified in models/surfacevehicle_X/model.sdf (xml tags: left_propeller_thrust and right_propeller_thrust). 

Note that the gazebo-asv simulator has only been tested with the ODE physics engine (specified with the -e switch). The -u switch pauses the simulation after surface.world has been loaded. A profile detailing the physics parameters for Gazebo is specified in gazebo-asv/worlds/surface.world and selected with the --profile switch.