Number one on the list of suggested “What Next” at the end of ROS tutorial is an invitation to run a virtual robot in a simulation environment. Two robots were linked – first the very capable and expensive Willows Garage PR2 research platform, and the second a much more accessible TurtleBot platform. Either way, the virtual world for these simulated robots is a product called Gazebo.
The big red notification at the top of the PR2 Gazebo tutorial tells us that particular page is out of date. It implied Gazebo used to be part of ROS but has been spun off as a standalone project. This is different from the story at the bottom of Gazebo’s own front page, which implied Gazebo has always been standalone and ROS just happens to interface with it. Either way, a little poking around found that Gazebo is a peer of ROS both under the umbrella of Open Source Robotics Foundation.
The good news is that Gazebo provides tutorials to help people learn Gazebo. The bad news is… well, there is A LOT of it. The tutorial section front page has about 35 links to other pages, which seemed fine until I realized each of the links under “Categorized” leads to a page with several tutorials in that category. This drastically increases the number of tutorial pages, many of which seemed to be aimed at people who might be new to that category of Gazebo but are familiar with Gazebo in general.
I’m definitely not yet familiar with Gazebo in general.
As far as this beginner can determine so far, Gazebo provides a virtual simulation environment for robotic software, but that software need not be written with ROS. Gazebo simulation behavior is controlled by assembling multiple plugins, each written to control some aspect of the simulation world. Plugins are assembled alongside other assets in a SDF file to be loaded into a Gazebo simulation.
I haven’t yet figured out how Gazebo plugins relate to ROS nodes, or how the SDF files relate to ROS URDF files. I know the advertising pitch is to write high level robot intelligence that can be easily swapped between running on physical hardware and running in Gazebo. As of right now, it is still a mystery where that physical/virtual swap layer lives.