Skip to content
Marco A. Gutiérrez edited this page Sep 14, 2022 · 19 revisions

The communication with the LRAUV is done using Gazebo transport. It provides message passing, services, and data logging. It can use either topics or services. To have a look at what are the main ones that will be used in an LRAUV simulation here is a snapshot of the common ones when running something like gz sim buoyant_tethys.sdf.

Topics

Here are the topics clasified by the Plugin or Entity responsible of them.

Topic Message Usage
/comms/internal lrauv_gazebo_plugins::msgs:: LRAUVInternalComms Default topic on which to send and listen for internal packets. A prefix can be set through conifiguration.
/comms/external/<address>/rx lrauv_gazebo_plugins::msgs:: LRAUVAcousticMessage Topic on which this plugin will publish received messages.
/comms/external/<address>/tx lrauv_gazebo_plugins::msgs:: LRAUVAcousticMessage This is where the plugin receives the data.
Topic Message Usage
/chlorophyll gz::msgs::Float_V Sensor readings for chlorophyll based on data loaded through csv.
/temperature gz::msgs::Float_V Sensor readings for temperature based on data loaded through csv.
/salinity gz::msgs::Float_V Sensor readings for salinity based on data loaded through csv.
/current gz::msgs::Vector3d Sensor readings for current based on data loaded through csv.
/science_data gz::msgs::PointCloudPacked Topic to publish the science data point cloud.
/model/tethys/chlorophyll gz::msgs::Float_V Sensor readings for chlorophyll based on data loaded through csv.
/model/tethys/current gz::msgs::Float_V Sensor readings for temperature based on data loaded through csv.
/model/tethys/salinity gz::msgs::Float_V Sensor readings for salinity based on data loaded through csv.
/model/tethys/temperature gz::msgs::Float_V Sensor readings for temperature based on data loaded through csv.
/world/science_sensor/environment_data_path gz::msgs::StringMsg Subscribes to this topic for updates on new environment data files.
Topic Message Usage
/model/tethys/battery/linear_battery/state gz::msgs.BatteryState State of the linear battery. This plugin may publish other topics if enabled through the SDF configuration.
Topic Message Usage
/model/tethys/buoyancy_engine gz::msgs::Double Subscribes to this topic. This is the set point for the engine. Defaults to /buoyancy_engine if no <namespace> was defined.
/model/tethys/buoyancy_engine/current_volume gz::msgs::Double Publishes the current volume. Defaults to /buoyancy_engine if no <namespace> was defined.
Topic Message Usage
/model/tethys/drop_weight gz::msgs::Empty Listens on this topic for deattaching connections. Topic defined through <topic>.
Topic Message Usage
/model/tethys/joint/battery_joint/0/cmd_pos gz::msgs::Double Joint position controller for the battery joint, defaults to "/model/<model_name>/joint/<joint_name>/<joint_index>/cmd_pos" if no <topic> is provided.
/model/tethys/joint/horizontal_fins_joint/0/cmd_pos gz::msgs::Double Joint position controller for the horizontal fins joint, defaults to "/model/<model_name>/joint/<joint_name>/<joint_index>/cmd_pos" if no <topic> is provided.
/model/tethys/joint/vertical_fins_joint/0/cmd_pos gz::msgs::Double Joint position controller for the vertical fins joint, defaults to "/model/<model_name>/joint/<joint_name>/<joint_index>/cmd_pos" if no <topic> is provided.
Topic Message Usage
/model/tethys/joint/propeller_joint/cmd_vel gz::msgs::Double Topic to receive joint velocity commands. The plugin will listen on the topic /model/{namespace}/joint/{joint_name}/cmd_thrustor /model/{namespace}/joint/{joint_name}/cmd_vel depending on the mode of operation (see <velocity_control>).
/model/tethys/joint/propeller_joint/force gz::msgs::Double If <use_angvel_cmd> is set to true it publishes force in Newtons instead to /model/{ns}/joint/{joint_name}/force.
Topic Message Usage
/tethys/ahrs/imu gz::msgs::IMU Topic to publish IMU vertical position, angular velocity and lienar acceleration readings.
Topic Message Usage
/tethys/ahrs/magnetometer gz::msgs::Magnetometer Topic to report the magnetic field in its current location.
Topic Message Usage
/tethys/command_topic lrauv_gazebo_plugins::msgs:: LRAUVCommand Topic on which robot commands are received.
/tethys/state_topic lrauv_gazebo_plugins::msgs:: LRAUVState Topic on which robot state is published.
/tethys/navsat gz::msgs::NavSat Topic where NavSat reports position and velocity in spherical coordinates (latitude / longitude). Defined by <topic>.
Topic Message Usage
/lrauv/init lrauv_gazebo_plugins::msgs::LRAUVInit Listens here to spawn new vehicles.
Topic Message Usage
/tethys/range_bearing/requests lrauv_gazebo_plugins::msgs:: LRAUVRangeBearingRequest Topic where the plugin listens for range bearing requests.
/tethys/range_bearing/responses lrauv_gazebo_plugins::msgs:: LRAUVRangeBearingResponse Topic where the range bearing responses are published.
Topic Message Usage
/world/buoyant_tethys/dynamic_pose/info gz::msgs::Pose_V Dynamic pose publisher, for non-static model poses.
/world/buoyant_tethys/pose/info gz::msgs::Pose_V Pose publisher.
/world/buoyant_tethys/scene/deletion gz::msgs::UInt32_V Topic used by the scene broadcaster to request entities to be removed.
/world/buoyant_tethys/state gz::msgs::SerializedSetpMap Topic where state is published
/world/buoyant_tethys/scene/info gz::msgs::Scene Topic where scene are published.
Topic Message Usage
/world/science_sensor/environment_data_path gz::msgs::StringMsg This plugin will publish the data file path here when loaded through the GUI.
Topic Message Usage
/world/buoyant_tethys/clock gz::msgs::Clock Server world clock.
/world/buoyant_tethys/stats gz::msgs::Clock Provides statistics about the world, such as the time elapsed and the paused state.

Gazebo Simulation Runner

Topic Message Usage
/clock gz::msgs::Clock Publishes Gazebo simulation time.
/stats gz::msgs::Clock Provides statistics about the simulation, such as the time elapsed and the paused state.

Services

Most of the services that appear when running gz sim buoyant_tethys.sdf belong to gazebo plugins so please refer to the [official Gazebo documentation] for more info. The services more closely related to LRAUV, clasified by their plugin or entity responsible are:

Message to receive Message sent Usage
/model/tethys/chlorophyll/set_rate gz::msgs::Double gz::msgs::Empty
/model/tethys/current/set_rate gz::msgs::Double gz::msgs::Empty
/model/tethys/salinity/set_rate gz::msgs::Double gz::msgs::Empty
/model/tethys/temperature/set_rate gz::msgs::Double gz::msgs::Empty
/science_data gz::msgs::Empty gz::msgs::PointCloudPacked
Message to receive Message sent Usage
/model/tethys/battery/linear_battery/recharge/start gz::msgs::Boolean gz::msgs::Empty
/model/tethys/battery/linear_battery/recharge/stop gz::msgs::Boolean gz::msgs::Empty
Message to receive Message sent Usage
/tethys/ahrs/imu/set_rate gz::msgs::IMU gz::msgs::Double
Message to receive Message sent Usage
/tethys/ahrs/magnetometer/set_rate gz::msgs::Double gz::msgs::Empty