Skip to content

ROS Interface Plugin

Geoffrey Hunter edited this page Feb 15, 2017 · 1 revision

Overview

The ROS interface plugin (gazebo_ros_interface_plugin.cpp/.hpp) serves as a message communication interface between the Gazebo and ROS frameworks.

Connection Messages

Connection messages are the way of dynamically setting up Gazebo topic to ROS topic routing, and vise versa.

Note that "connection" messages must be sent to the ROS interface plugin AFTER is has been loaded. Because the plugin loading order is somewhat arbitrary, this means that the connection messages cannot be sent in the Load() method of other plugins. Instead, they have to be sent in the OnUpdate() method.

You will see the following syntax in many plugins:

void GazeboPlugin::OnUpdate(const common::UpdateInfo& _info) {

  if(!pubs_and_subs_created_) {
    CreatePubsAndSubs();
    pubs_and_subs_created_ = true;
  }
}