Gazebo Newsletter 9 May 2018

Progress has been made on various fronts during the month of April. Ignition Physics has seen the first of a series of pull requests to define a physics abstraction layer merged. Model version support is under development on Ignition Fuel. Improved support for material properties and shapes are being added to Ignition Math. Message logging and playback has been added to Ignition Transport. And finally, Ignition Rendering can now render text in a 3D scene.

Community Contributions

We'd like to thank the following people for their contributions to Gazebo.

Releases

The following lists includes releases made over the past month.

  • Gazebo 7.12.0
  • Ignition CMake 1.0.0~pre2
  • Ignition Common 1.1.0

Tip of the month

View Angle Widget

A 3D scene projected onto a flat screen can make placement or inspection of objects difficult. The toolbar, located above Gazebo's main scene view, contains a Change View icon that looks like a wire-frame box with one surface colored orange. Selecting the Change View icon displays a widget with multiple view options.

Each of the boxes with a colored face in the Change View widget will move your camera to a particular view orientation. For example, the box with a colored face on the left will move your camera to view the scene from the left. Use the button with a home icon to move your camera back to its position and orientation when Gazebo was opened.

Finally, the drop-down located at the bottom of the Change View widget allows you to select from Perspective or Orthographic projections. While not a realistic depiction of the scene, an orthographic projection can be handy when placing and scaling objects.

For more information about the toolbar visit the User Interface Tutorial

Featured Model

The featured model this week is a gazebo made of wood.

Bugs

Questions and Answers

Most recent active questions

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!