Vehicle simulation


Reposted from the OSRF Blog.

We are excited to show off a simulation of a Prius in Mcity using ROS Kinetic and Gazebo 8. ROS enabled the simulation to be developed faster by using existing software and libraries. The vehicle's throttle, brake, steering, and transmission are controlled by publishing to a ROS topic. All sensor data is published using ROS, and can be visualized with RViz.

We leveraged Gazebo's capabilities to incorporate existing models and sensors. The world contains a new model of Mcity and a freeway interchange. There are also models from the gazebo models repository including dumpsters, traffic cones, and a gas station. On the vehicle itself there is a 16 beam lidar on the roof, 8 ultrasonic sensors, 4 cameras, and 2 planar lidar.

The simulation is open source and available at on GitHub at osrf/car_demo. Try it out by installing nvidia-docker and pulling "osrf/car_demo" from Docker Hub. More information about building and running is available in the README in the source repository.

Download (8.0.0)

Changelog | Migration Guide | Roadmap

End-of-life Notice

Gazebo 6.x and 5.x have reached the end of their lives. We will continue to answer questions about these versions, but we will stop fixing bugs.

Highlights for 8.0.0

  • Plotting Utility
  • Video Recording
  • QT5 support
  • Visual markers
  • Improved quadcopter simulation
  • Import OBJ files
  • Generalization of Actor animations
  • Migration to Ignition-math

We are proud to announce the release of Gazebo 8. This version of Gazebo has short term support with an end-of-life on January 15, 2019.

A major API change comes with Gazebo8. This API change centers around the transition from Gazebo's internal math library to Ignition Math. Please refer to the changelog and migration guide to help your transition.

The ability to dynamically and programmatically add visual elements to Gazebo has been added through a visual marker interface. Visual markers can consist of simple shapes, lines, triangles, and text. Additional features associated with visual markers can be found through the gz marker -h command line tool. A C++ example demonstrates how to manipulate visual markers from a stand-alone application.

We continually strive to improve Gazebo's user experience and offer features that benefit a wide audience. To this end, a feature rich plotting utility has been integrated with Gazebo. This utility supports plotting data from topics, models, and simulation parameters. Multiple plots can be created, and data can be exported to CSV or PDF files. Try inserting a model, such as the Double Pendulum, and press ctrl-p.

Following the same rationale as the plotting utility, we are pleased to announce the integration of video recording in Gazebo 8. Simply select the camera icon on the right hand side of the tool bar to start recording into an MP4, AVI, or OGV file. Select the icon again to stop recording and save the video file.

Enjoy the new release, and thanks for all the contributions,

  OSRF Development Team

Gazebo Newsletter 7 November 2016

The Space Robotics Challenge (SRC), a NASA Centennial Challenge, has recently kicked off. The SRC "tasks teams with developing and displaying the ability of an R5 robot to assist in the procedures of a NASA mission, such as one to Mars, offering a $1 million prize pool for successful teams."

The SRC uses Gazebo and a set of plugins to simulate R5 and the challenge environments. Qualifications are underway, where competitors solve two tasks on their personal computers. Finals will take place next year, and will utilize CloudSim with Gazebo.


  • Ignition Msgs 0.6.0
  • Ignition Math 2.6.0

Tip of the month

Gazebo can generate a lot of data, especially when simulating complex robots. This data can be used to tune model parameters, debug unexpected behavior, write unit tests, and peform system introspection and identification. However, raw data is difficult for a human to consume.

Gazebo 8 will ship with a plotting utility that can display in real time data produced by Gazebo. The plotting utility is capable of processing data from simulation models and data available on topics. Below is an example image of the plotting utility.


Featured Model

A generic Mars rover is available in the model database. rover


Questions and Answers

Most recent active questions

Gazebo Newsletter 6 October 2016

Slowly and surely we are switching Gazebo from its built-in transport library to the new Ignition Transport library based on ZeroMQ and Protobuf. The Ignition Transport library is independent of Gazebo, and designed for use in robotic and in non-robotic applications.

Recently, we have added new features to Ignition Transport including

  • throttling message delivery to subscribers,
  • requesting services from the command line, and
  • publishing messages to a topic from the command line.

Ignition Transport has been available in Ubuntu since Trusty, with version 1.3 scheduled for Yakkety. Gazebo 8, to be released in January 2017, will depend on Ignition Transport 1 or greater.

OSRF has internally used Ignition Transport in a number of projects, including HAPTIX and Mentor2. We believe it is ready for prime-time use, and we will be making more use of it in Gazebo and other projects.


  • Ignition Transport 1.4.0
  • Ignition Transport 2.1.0

Tip of the month

Inertia plays an important role in simulation. An object's inertia defines how it will move and react to forces, including gravity. Incorrect inertia values can lead to strange behavior.

Gazebo has a visualization tool that helps debug inertia values. Within the Gazebo GUI, right click on a model and select ViewInertia. You should see a purple box with green axes for each link. The center of each box is aligned with the center of mass of its link. The sizes and orientations of the boxes correspond to unit-mass boxes with the same inertial behavior as their corresponding links.

A rule of thumb is to make sure the purple boxes roughly match each link in size. There are exceptions to this rule, such as an object that doesn't have uniform density.

Featured Model

A fire station is an active pull request to the model database. firehouse


Questions and Answers

Most recent active questions

Gazebo Newsletter 5 September 2016

Tip of the month

Gazebo can log and replay state information. This feature, typically called logging, allows you to save an instance of simulation to a file. This log file can be parsed using the gz log command line tool or visualized using the -p command line argument to gazebo.

Featured Model

Check out the Parrot Bebop model in the Gazebo model database. parrot_bebop


The following lists package versions that will appear in Ubuntu Yakkety.
  • Gazebo 7.3.0
  • SDFormat 4.1.0
  • Ignition Math 2.5.0
  • Ignition Transport 1.3.0
  • Ignition Messages 0.4.0


Questions and Answers

Most recent active questions