Skip to content

tutorials PropulsionConfiguration

Brian Bingham edited this page Sep 21, 2021 · 11 revisions

The effect of thrusters on the WAM-V is simulated by the usv_gazebo_thrust_plugin Gazebo model plugin. The plugin is configured using "thruster" tags within the SDF description. For this example, we are using the default configuration - the differential thrust with two thrusters. The propulsion configuration takes place in the wamv_aft_thrusters.xacro definition file which makes use of the general purpose xacro macro defined in wamv_gazebo_thruster_config.xacro. Within each thruster definition the "cmdTopic" tag specifies the ROS topic to which the plugin is subscribed. Messages of type std_msgs/Float32 are used to describe each thruster input. Each command is a normalized value between -1.0 to 1.0, where 1.0 is maximum forward force and -1.0 is maximum reverse force. The mapping between this normalized thruster command and the actual force applied to the model is discussed in Theory of Operation document.

Example Configurations

The image below illustrates a few possible thruster configurations. Note that all the thrusters support variable stern.

Propulsion Options.png

The topics below illustrate how to run three of the four configurations.

"H": Differential Thrust with Two Aft Thrusters

The default configuration is the "H" configuration with two aft-mounted thrusters.

If you run the example simulation without any command line options

roslaunch vrx_gazebo sydneyregatta.launch

The thruster configuration should like similar to the image below.

wamv_full_H.png

"T": Differential Thrust with An Additional Lateral/Bow Thruster

To add a single lateral thruster requires the following changes:

  1. Set the "T" thruster configuration of the WAM-V in wamv_gazebo.urdf.xacro.
  2. This WAM-V xacro file includes a propulsion layout definition. For this example, the new thruster layout is defined in wamv_t_thruster.xacro

This example is already available in the repository and can be specified using the thrust_config command line option of the launch file ...

roslaunch vrx_gazebo sydneyregatta.launch thrust_config:=T

To generate a WAM-V propulsion/thruster configuration that looks like the image below.

wamv_full_t.png

"X": Holonomic Thruster Configuration with Four Thrusters

Using the same process describe above, we can add a new set of URDF descriptions (visual and plugin) to define the holonomic configuration. As an example, we can call this new setup by specifying the "X" thrust configuration...

roslaunch vrx_gazebo sydneyregatta.launch thrust_config:=X

wamv_full_x.png

Demonstration

For the purposes of illustration, we can spawn all three possible propulsion variants in a single world with the following:

roslaunch vrx_gazebo demo_thrusterconfigs.launch 

Which should spawn three WAM-V models with the corresponding propulsion configurations shown in the image below.

propulsion_demo.png

Clone this wiki locally