Gazebo Newsletter 8 April 2018

The Gazebo newsletter is back, with the addition of Community Contributions!

The Gazebo Roadmap has been updated to reflect the development direction of Gazebo and the Ignition libraries. Most new work is happening in the Ignition Libraries where a physics abstraction layer is taking shape, message logging is almost complete,new widgets are being added to a plugin-based graphical user interface, and a rendering abstraction can make use of either a path tracing or opengl rendering engine.

Community Contributions

We'd like to thank the following people for their contributions to Gazebo. This is not an exhaustive list. Apologies if we accidentally missed your contributions.

Releases

The following lists includes releases made since the release of Gazebo 9 in January of this year.

  • Gazebo 7.11.0
  • Gazebo 8.4.0
  • Gazebo 8.4.0
  • Ignition CMake 0.5.0
  • Ignition Tools 0.1.0
  • Ignition Transport 3.1.0

Tip of the month

A relatively new feature in Gazebo is the ability to use lens flares in camera sensors. Check out the lensflare_plugin example world to get started.

Featured Model

A playground that can add a bit of interest to your outdoor environments.

Bugs

Questions and Answers

Most recent active questions

Download (9.0.0)

Changelog | Migration Guide | Roadmap

Release Highlights

We are proud to announce the release of Gazebo 9. This version of Gazebo has long term support with an end-of-life on January 25, 2023.

An ongoing effort over the past few years has been to break out Gazebo's internal libraries into a set of libraries under the Ignition Robotics project. These libraries will move Gazebo away from a large monolithic code base. An additional goal is to increase development transparency and adoption of features that may have been hidden behind the veil of Gazebo.

While still in the early stages of development, a few of the Ignition libraries are ready for broad public consumption. These libraries include Ignition Math, Messages, and Transport. Libraries higher on the dependency stack, such as Rendering, Sensors, Physics, and GUI will see progress toward 1.0 releases over this year.

The 2018 roadmap for Gazebo and the Ignition libraries will be forthcoming in the next couple weeks.

The sections below describe a few projects in a bit more detail. Enjoy the new release, and thanks for all the contributions,

  Gazebo Development Team

Ignition Robotics Documentation Platform

An updated documentation platform has been created for Ignition Robotics at ignitionrobotics.org. This website details the available libraries, along with a brief description for each and links to API documentation and tutorials, which are sparse at this point. A version history for each library is also displayed with links to the version's documentation.

Ignition Fuel

Around the time of the DARPA Robotics Challenge, Gazebo faced the problem of where and how to host simulation models and related assets. At the time, we opted to use a Bitbucket repository along with a clone backed by Apache.

Gazebo has since outgrown the Bitbucket and Apache approach. Key problems that we have encountered are scalability, up-time, hosting meta-data, inclusion of worlds and other assets, and ease of use. After studying available options, such as using S3, we decided to provide a new simulation asset hosting service called Ignition Fuel.

Ignition Fuel is in Beta, and does not replace the existing Bitbucket+Apache solution. When Fuel moves out of beta, there will be an extended transition period where both hosting solutions will be active and maintained. The exact time frame will be determined when we are comfortable with the state of Fuel.

On Ignition Fuel you can find a list of available models. Logging into the site allows you to upload new models. There is also information about how to access the models programmatically through a REST API. Gazebo 9 optionally uses this API to list and download models from Fuel. In the tutorial section of Ignition Fuel Tools, you can find examples of how to manage models from a Fuel server programmatically.

The primary difference between Fuel and other asset hosting sites is that the models hosted on Fuel will contain not only visual information but also simulation information, such as links, joint, and inertia. Fuel will also move toward inclusion of worlds and potentially simulation plugins.

Ignition Transport Highlight

Gazebo makes heavy use of asynchronous message passing. For example, the Gazebo GUI operates in a separate process from the server and relies on message passing to display information and transmit user requests. Gazebo's current internal communication uses a home-grown strategy based on Protobuf and boost::asio. This has performed well but requires maintenance and has become a bit outdated.

Development of Ignition Transport provided the opportunity to choose a new strategy that would reduce our maintenance effort and offer new features. ZeroMQ has been chosen as a replacement to boost::asio, and Protobuf remains as the message definition. ZeroMQ is an open source communication library that is used across numerous domains, and has a large and active community. In addition to these aspects, ZeroMQ has a well established feature and change process, known performance, numerous language bindings, cross-platform support , and security through authentication and encryption.

In addition to the features provided by ZeroMQ, Ignition Transport provides discovery, and command line tools for topic introspection and publication of messages. Upcoming features include data logging, and integration of encryption and UDP provided in ZeroMQ. A series of benchmark tests of Ignition Transport were recently performed to evaluate the library's performance and establish a baseline. We will start with a few definitions for clarity.
  • Intraprocess: Publisher and subscriber in same process.
  • Interprocess: Publisher and subscriber in separate processes on the same physical machine.
  • Wireless: Publisher and subscriber on separate machines where one computer was connected to wireless access point and the other hardwired to the LAN.
  • Latency: Latency was measured by publishing a message on topicA, and then waiting for a response on topicB. The time between publication and reception of the response was divided in half to compute the one-way latency time.
  • Throughput: Throughput was measured by rapidly publishing N messages. Once the N messages have been published, the publisher waits for N responses. The time from start of publication to reception of all N messages is used to compute throughput.

Tests were performed on Ubuntu Xenial with the Linux 4.5.2 kernel, on a Intel i7-5930K desktop PC. The test program, called bench, is publicly available. Use the `-h` command line option with bench for usage information. Latency and throughput results are below. Click on dataset label, such as "Interprocess", to enable or disable the data.

These results can be used as one reference point, but they are by no means an exhaustive or comprehensive study of Ignition Transport.

Autonomous vehicles, and the hardware and software required to operate these vehicles, are a hot topic of conversation. At Open Robotics, we thought it would be a great time to showcase Gazebo in the autonomous vehicle domain.

We built a fictitious world consisting of a handcrafted (via GIMP) terrain, and numerous freely available models on the Gazebo Model Database. Our vehicle of choice is a Prius Hybrid, the model of which consists of a power-train and full kinematic and dynamic simulation. Human models were also placed in the world to act as pedestrians.

You can find the source code for the city environment at https://bitbucket.org/osrf/citysim. This repository contains the world description, and a few plugins for traffic light control and visual effects.

The citysim code is a work in progress. It will be ready for public consumption when Gazebo 9 is released in January 2018.

While most of the capabilities required to run this demonstration exist in Gazebo8, we did leverage a few new capabilities, such as a joystick interface, that will appear in Gazebo9. Therefore, the citysim branch of Gazebo is also required.

Gazebo has many other tools and features to support autonomous vehicle testing and development. One such tool is real-time plotting of simulation data, as demonstrated in the following video.

Have fun simulating your world!

Gazebo Community

2017-10-06

Gazebo's mailing list which used to be hosted on Google Groups is officially retired!

From now on, we invite the community to join us at community.gazebosim.org for general discussion and announcements regarding Gazebo and related projects.

Gazebo Answers, at answers.gazebosim.org, will continue to be the place for technical questions and answers.

See you at the community!

The Space Robotics Challenge (SRC) came to a close last week with a wonderful celebration event at Space Center Houston. The celebration event brought together competitors and organizers over two days with tours of Johnson Space Center (JSC), team presentations, and an award ceremony.

The SRC tasked teams with developing and displaying the ability of the Valkyrie (R5) robot to assist in a virtual NASA Mars mission. A prize pool of $1 million was available to successful teams. The following scenario served as a backdrop for the challenge.

In the not too distant future, Valkyrie has arrived on Mars along with supplies ahead of a human mission. Overnight a dust storm damaged the habitat and solar array, and caused the primary communication antenna to become misaligned. Valkyrie must now repair an air leak in the habitat, deploy a new solar panel, and align the communication antenna.

src_world

Teams developed software to control Valkyrie in order to resolve the problems caused by the dust storm. Gazebo was used as the simulation platform, with integration to a walking controller from Florida Institute for Human and Machine Cognition (IHMC). Additional ROS interfaces were provided by JSC.

Each team was evaluated according to a scoring metric that considered the number of tasks completed and the time required to complete the tasks. Unique to SRC was a focus on completing multiple tasks sequentially, without falling. The winning teams were able to complete numerous tasks, even in the presence of significant network latency and bandwidth restrictions.

The top four teams are:

First place: Coordinated Robotics

Coordinated Robotics is a one-man team from California that has previously competed in other robotics challenges. Because dexterous control of a robot requires coordination between sensors and actuators, the team name of Coordinated Robotics was formulated. Hoping to win prizes and learn more about humanoids, Coordinated Robotics will focus on manipulation of humanoids to excel in the competition.

Second place: Walk Softly

Team Walk Softly joins the fray from upstate New York. The team name is reminiscent of a phrase often attributed to former President Theodore Roosevelt, "speak softly and carry a big stick - you will go far." Team members are coworkers at GE Global Research who have an interest in humanoid robots and decided to enter on their own time. The team is excited to see the innovative solutions that come out of this challenge.

Third place: Olympus Mons

Ten robotics and software specialists representing six countries make up Team Olympus Mons. Olympus Mons is the name of the largest discovered volcano in the solar system and is located on Mars, where the simulated competition will take place; this is where they gained inspiration for their team name. The team members are all current or former employees at PAL Robotics who have stayed in touch throughout the years. Although they are not eligible for prize money, Team Olympus Mons entered the competition to have fun and become more involved in simulated space exploration.

Fourth place: ZARJ

ZARJ is represented by four engineers and programmers based in Minnesota. The Team has been interested in NASA's Centennial Challenges for the past four years, but did not have the time or resources to enter the contests. Finally, ZARJ was able to enter the Space Robotics Challenge before the deadline arrived. If ZARJ is awarded prize money, they plan to distribute it equally between team members to defray some competition travel costs.

Congratulations to all teams that participated in the competition!