1 of 78

Alter Ego of Gazebo

Mabel Zhang, Ph.D.

Open Robotics team at Intrinsic

ICRA 2023 tutorial MT28 "All about ROS 2 and the new Gazebo"

29 May 2023

https:// bit.ly / icra23_ros_git

2 of 78

What will I hear about?

“New” Gazebo?

What can it do?

Can I get 3D models (that are Gazebo-ready)?

Will my Gazebo-classic stuff work in the new Gazebo?

What if I use a different simulator?

More resources?

How can I get involved?

2

3 of 78

“New” Gazebo?

3

4 of 78

“New” Gazebo?

Gazebo (formerly Ignition) gazebosim.org

A complete rewrite of Gazebo-classic classic.gazebosim.org

16 libraries, as opposed to 1 monolithic library

github.com/gazebo-tooling/gazebodistro/blob/master/collection-garden.yaml

Entry point: gz-sim, dependent on gz-math, gz-physics, gz-rendering, etc.

github.com/gazebosim/gz-sim

4

5 of 78

Physics and rendering in a nutshell

DART (default), Gazebo supports all features (uses ODE for collision detection)�Bullet, Gazebo supports partial features�Tutorial on loading different physics engines gazebosim.org/api/sim/7/physics.html�(Gazebo-classic default was ODE)

Rendering default is Ogre2 (aka Ogre Next)�Ogre2 supports Physically Based Rendering, Global Illumination, Area Lights, etc. (Ogre1 vs. Ogre2)�(Gazebo-classic used Ogre1. Can specify in SDF)

5

6 of 78

6

Gazebo-classic

Gazebo

7 of 78

Garden is the 7th release (A–G)

7

8 of 78

Currently supported releases: C, F, G

8

Dec 2019–Dec 2024

Long Term Support (LTS)

Sep 2021–Sep 2026�LTS

Sep 2022–Nov 2024

9 of 78

Edifice

demo world

9

Lightmaps for prebaked Global Illumination

Source world on Fuel

Community meeting demo

10 of 78

Edifice

demo world

10

Lightmaps for prebaked Global Illumination

Source world on Fuel

Community meeting demo

11 of 78

Edifice

demo world

11

Interactive joint control

Particle effect

Source world on Fuel

Community meeting demo

12 of 78

Fortress

demo world

12

Buoyancy�Hydrodynamics�Sky box�Height maps

Source world on Fuel

Community meeting demo

13 of 78

Fortress

demo world

13

Mobile robot�Manipulation arms�Underwater robot

Source world on Fuel

Community meeting demo

14 of 78

Garden

demo world

14

NASA VIPER moon world

Custom shaders (pixel & fragment)�Vulcan rendering backend�gl Transmission Format (glTF)

Source world on Fuel

Community meeting demo

15 of 78

Garden

demo world

15

Custom shaders

Vulcan�rendering backend

gl Transmission�Format (glTF)

Source world on Fuel

Community demo

16 of 78

Garden

demo world

16

Localized wind

MuJoCo MJCF <-> SDF

Source world on Fuel

Community meeting demo

17 of 78

Garden

new feature

17

Bullet-featherstone�(newer dynamics in Bullet, uses reduced coordinates)

Community meeting demo

18 of 78

Who said engineers have too much time?!

18

Our 3D artist made it.

19 of 78

Upcoming: Harmonic

19

Name Community voted on architectural names starting with H

Long term support (LTS) �5 years

ROS 2 pairingROS 2 J-turtle

Supported Platforms�Ubuntu Jammy (22.04) & 24.04

Best effort for macOS and Windows

Sep 2023–Sep 2028

LTS

20 of 78

Installing with ROS

Recommended combination, e.g.,�ros-humble-desktop-full ships Gazebo Fortress

Incompatible / Impossible

Work required�Compile ros_gz from source�export GZ_VERSION=garden

20

ROS 2 Rolling

ROS 2 Humble

ROS 2 Foxy

ROS 1 Noetic

C

F

G

21 of 78

What can it do?

21

22 of 78

High-fidelity physics

as in Gazebo-classic.

22

23 of 78

Better rendering with Ogre2

e.g., physically based rendering; different types of lighting.

23

24 of 78

A free and open 3D model online dataset

with Gazebo-ready models created by artists, for robotics,

so that you can spend more time on algorithms.

24

25 of 78

More visualization and debug tools

for real-world applications.

25

26 of 78

Developed closely with customers

in industry, government, and research,

deploying heterogeneous robots

to land, space, and sea.

26

27 of 78

We worked closely with maintainers of

other simulators too,

to help you load your world in multiple simulators.

27

28 of 78

Stop bluffing.

Show me the goods.

28

29 of 78

DARPA SubTerranean

Challenge

29

Physically based rendering

Distributed simulation

Levels

CloudSim

Heterogeneous robots

Open Robotics + DARPA

GitHub

3D models on Fuel

30 of 78

DARPA SubTerranean

Challenge

30

Physically based rendering

Distributed simulation

Levels

CloudSim

Heterogeneous robots

Open Robotics + DARPA

GitHub

3D models on Fuel

31 of 78

Rubicon Trail worlds

31

32 of 78

32

33 of 78

33

34 of 78

Machine learning for

manipulation

34

Gazebo +

ROS 2 +

MoveIt2

Credit:

Andrej Orsula

(community-

contributed)

GitHub

35 of 78

Got (lens) flare? (Credit: darksylinc, community-contributed)

35

36 of 78

MBARI Wave

Energy Converter

36

Dynamic controls validation

400x faster than real time

Wave physics: MBARI

Simulation: Open Robotics

GitHub, DockerHub

Wave visualization:

Rhys Mainwaring (community-contributed)

37 of 78

ArduPilot

37

Credit: Rhys Mainwaring

(community-contributed)

GitHub

38 of 78

MBARI LRAUV

38

Long-Range Autonomous Underwater Vehicle

Science mission validation

100x faster than real time

Open Robotics + MBARI

GitHub, DockerHub

Full paper at ICRA 2023

100x FTRT

39 of 78

Space ROS

39

VIPER migrating from Gazebo-classic

Certification-ready

framework for flight-quality systems

Open Robotics +

Blue Origin + NASA

space.ros.org

GitHub, DockerHub

NASA VIPER moon rover

Canadarm

40 of 78

Tools

40

41 of 78

2D plotting

41

Plot from Gazebo topics

Zoom & pan

Drag & drop

Credit: Amr Elsersy (Google Summer of Code report)

42 of 78

2D plotting

42

Plot from Gazebo topics

Zoom & pan

Drag & drop

Credit: Amr Elsersy (Google Summer of Code report)

43 of 78

2D plotting

43

Plot from Gazebo topics

Zoom & pan

Drag & drop

Credit: Amr Elsersy (Google Summer of Code report)

44 of 78

3D plotting

44

Plot robot trajectory in 3D

Here we validate proper “yoyo” for water sampling

Full paper at ICRA 2023

45 of 78

Axis visualization

45

Keep track of multiple coordinate systems

e.g., East North Up (ENU),

North East Down (NED)

used in maritime

Full paper at ICRA 2023

46 of 78

Native point cloud

visualization

46

Plot directly in Gazebo.

Marine science data

Large scale (150 miles)

Lat long

Data credit: MBARI

Full paper at ICRA 2023

47 of 78

Native point cloud

visualization

47

Plot directly in Gazebo.

Marine science data

Large scale (150 miles)

Lat long

Data credit: MBARI

Full paper at ICRA 2023

48 of 78

Other open source projects using the new Gazebo

Aerostack2: autonomous multi-aerial-robots systems�MBARI Wave Energy Buoy: Wave simulation for energy buoy control�MBARI LRAUV: Underwater simulation for glider science missions�MBZIRC: Maritime competition for surface and aerial vehicles with manipulation�Open-RMF: Warehouse robot fleet sharing and interoperability�Space ROS: Flight-quality robotic and autonomous space systems�SubT: DARPA Subterranean Challenge�Turtlebot 4: Low-cost educational robot�VRX: Virtual RobotX, maritime surface vehicle competition

Contribute yours to github.com/osrf/icra2023_ros2_gz_tutorial/blob/main/PROJECTS.md

48

49 of 78

Can I get 3D models

(that are Gazebo-ready)?

49

50 of 78

Gazebo Fuel

app.gazebosim.org

Free online 3D model dataset.

Fuel up.

50

51 of 78

51

52 of 78

52

Google Research manipulation 3D model collection (1033 models) on Fuel

53 of 78

53

MBZIRC simulation (GitHub) 3D model collection on Fuel

app.gazebosim.org/OpenRobotics/fuel/collections/mbzirc

54 of 78

54

55 of 78

Tutorials

Insert models from Fuel

gazebosim.org/docs/garden/fuel_insert

Contribute models to Fuel

gazebosim.org/api/sim/7/meshtofuel.html

55

56 of 78

Helper scripts to import from Blender

56

57 of 78

Cook up your own models: Blender tools

SDF exporter: Export 3D model from Blender to SDF file ready for Gazebo

Tutorial gazebosim.org/api/sim/7/blender_sdf_exporter.html

Secret sauce sdf_exporter.py

Blender procedural generation to SDF

(community-contributed; credit: Andrej Orsula)

Tutorial gazebosim.org/api/sim/7/blender_procedural_datasets.html

Secret sauce procedural_dataset_generator.py

57

58 of 78

58

Community-contributed; credit: Andrej Orsula

59 of 78

59

Community-contributed; credit: Andrej Orsula

60 of 78

Will my Gazebo-classic stuff work in

new Gazebo?

60

61 of 78

Feature comparison

Gazebo-classic vs. Gazebo

gazebosim.org/docs/garden/comparison

61

62 of 78

62

63 of 78

Migration Tutorials

(“Migration from Gazebo classic” at bottom) gazebosim.org/api/sim/7/tutorials.html

63

64 of 78

64

65 of 78

What if I use a different simulator?

65

66 of 78

Leverage features of multiple simulators

Use SDF format with other simulators:

66

67 of 78

NVIDIA Omniverse USD <-> Gazebo SDF

67

68 of 78

NVIDIA Omniverse USD <-> Gazebo SDF

68

69 of 78

NVIDIA Omniverse USD <-> Gazebo SDF

69

70 of 78

MuJoCo MJCF <-> Gazebo SDF

70

gz-mujoco�GitHub

Garden�release�demo

MuJoCo

Gazebo

71 of 78

More resources?

71

72 of 78

Resources

72

73 of 78

How can I get involved?

73

74 of 78

Get involved in ROS 2 / Gazebo

74

75 of 78

75

76 of 78

Questions!

76

77 of 78

77

78 of 78

78