• Stars
    star
    165
  • Rank 228,906 (Top 5 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simulation Description Format (SDFormat) parser and description files.

sdformat

GitHub open issues GitHub open pull requests Discourse topics Hex.pm

Build Status
Test coverage codecov
Ubuntu Focal Build Status
Homebrew Build Status
Windows Build Status

SDFormat is an XML file format that describes environments, objects, and robots in a manner suitable for robotic applications. SDFormat is capable of representing and describing different physic engines, lighting properties, terrain, static or dynamic objects, and articulated robots with various sensors, and acutators. The format of SDFormat is also described by XML, which facilitates updates and allows conversion from previous versions.

Documentation

See the SDFormat Website for a more comprehensive description of the specification, proposals for modifications, developer information, etc. This website is published using some information from the sdf_tutorials repository.

Terminology

  • SDFormat - The specification.
    • SDF - Synonym for SDFormat, though SDFormat should be preferred, as "SDF" is an acronym with other meanings.
  • libsdformat - The C++ parsing code contained within this repository, which can be used to read SDFormat files and return a C++ interface.

http://sdformat.org/

Installation

We recommend following the Binary Installation instructions to get up and running as quickly and painlessly as possible.

The Source Installation instructions should be used if you need the very latest software improvements, you need to modify the code, or you plan to make a contribution.

Binary Installation

Ubuntu

On Ubuntu systems, apt-get can be used to install sdformat:

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update

sudo apt install libsdformat<#>-dev libsdformat<#>

Be sure to replace <#> with a number value, such as 2 or 3, depending on which version you need, or leave it empty for version 1.

macOS

On macOS, add OSRF packages:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew tap osrf/simulation

Install sdformat:

brew install sdformat<#>

Be sure to replace <#> with a number value, such as 1 or 2, depending on which version you need.

Windows

Install Conda package management system. Miniconda suffices.

Create if necessary, and activate a Conda environment:

conda create -n gz-ws
conda activate gz-ws

Install sdformat:

conda install libsdformat --channel conda-forge

You can view all the versions with

conda search libsdformat --channel conda-forge

and install a specific minor version with

conda install libsdformat=12.5.0 --channel conda-forge

Source Installation

Note: the main branch is under development for libsdformat13 and is currently unstable. A release branch (sdf12, sdf11, sdf10, sdf9, etc.) is recommended for most users.

UNIX

Build from Source

Standard installation can be performed in UNIX systems using the following steps:

mkdir build
cd build
cmake ..  # Consider specifying -DCMAKE_INSTALL_PREFIX=...
make install

sdformat supported cmake parameters at configuring time:

  • USE_INTERNAL_URDF (bool) [default False]
    Use an internal copy of urdfdom 1.0.0 instead of look for one installed in the system
  • USE_UPSTREAM_CFLAGS (bool) [default True]
    Use the sdformat team compilation flags instead of the common set defined by cmake.

Uninstallation

To uninstall the software installed with the previous steps:

cd build
make uninstall

macOS

Prerequisites

Clone the repository

git clone https://github.com/gazebosim/sdformat -b sdf<#>

Be sure to replace <#> with a number value, such as 1 or 2, depending on which version you need.

Install dependencies

brew install --only-dependencies sdformat<#>

Build from Source

  1. Configure and build
cd sdformat
mkdir build
cd build
cmake .. # Consider specifying -DCMAKE_INSTALL_PREFIX=...
make
  1. Optionally, install and uninstall
sudo make install

To uninstall the software installed with the previous steps:

cd build/
sudo make uninstall

Windows

Prerequisites

Install Conda package management system. Miniconda suffices.

Create if necessary, and activate a Conda environment:

conda create -n gz-ws
conda activate gz-ws

Install prerequisites:

conda install urdfdom --channel conda-forge

Install Gazebo dependencies:

You can view lists of dependencies:

conda search libsdformat --channel conda-forge --info

Install dependencies, replacing <#> with the desired versions:

conda install libgz-math<#> libgz-tools<#> --channel conda-forge

Build from Source

This assumes you have created and activated a Conda environment while installing the Prerequisites.

  1. Configure and build
mkdir build
cd build
cmake .. -DBUILD_TESTING=OFF  # Optionally, -DCMAKE_INSTALL_PREFIX=path\to\install
cmake --build . --config Release
  1. Install
cmake --install . --config Release

More Repositories

1

gazebo-classic

Gazebo classic. For the latest version, see https://github.com/gazebosim/gz-sim
C++
1,183
star
2

gz-sim

Open source robotics simulator. The latest version of Gazebo.
C++
674
star
3

ros_gz

Integration between ROS (1 and 2) and Gazebo simulation
C++
224
star
4

gz-omni

Connnects Gazebo to Isaac Sim
C++
118
star
5

ros_gz_project_template

A template project integrating ROS and Gazebo simulator
C++
116
star
6

gz-gui

Builds on top of Qt to provide widgets which are useful when developing robotics applications, such as a 3D view, plots, dashboard, etc, and can be used together in a convenient unified interface.
C++
72
star
7

gz-physics

Abstract physics interface designed to support simulation and rapid development of robot applications.
C++
64
star
8

gz-rviz

ROS 2 visualization using Gazebo Libraries
C++
57
star
9

gz-sensors

Provides numerous sensor models designed to generate realistic data from simulation environments.
C++
57
star
10

gz-math

General purpose math library for robot applications.
C++
54
star
11

gz-rendering

C++ library designed to provide an abstraction for different rendering engines. It offers unified APIs for creating 3D graphics applications.
C++
54
star
12

docs

High-level Gazebo documentation that gets published to https://gazebosim.org/docs/
Python
50
star
13

gz-plugin

Cross-platform C++ library for dynamically loading plugins.
C++
31
star
14

gz-transport

Transport library for component communication based on publication/subscription and service calls.
C++
29
star
15

sdf_tutorials

SDFormat documentation and proposals.
27
star
16

gz-mujoco

Python
26
star
17

gz-cmake

A set of CMake modules that are used by the C++-based Gazebo projects.
CMake
24
star
18

gz-msgs

Messages for Gazebo robot simulation.
C++
21
star
19

gz-usd

Command line tools to convert SDFormat to USD and viceversa
C++
19
star
20

gz-tools

Command line tools for the Gazebo libraries.
C++
14
star
21

gz-fuel-tools

A client library and command line tools for interacting with Gazebo Fuel servers.
C++
12
star
22

gz-launch

Run and manage programs and plugins.
JavaScript
11
star
23

gz-common

An audio-visual library supports processing audio and video files, a graphics library can load a variety 3D mesh file formats into a generic in-memory representation, and the core library of Gazebo Common contains functionality that spans Base64 encoding/decoding to thread pools.
C++
11
star
24

design

Design documents and proposals for Gazebo.
7
star
25

gz-bazel

gz-bazel provides a set of Bazel build rules that are used by the Gazebo projects.
Python
6
star
26

gz-utils

Classes and functions for robot applications
C++
6
star
27

gz-rndf

An RNDF parser.
C++
3
star
28

gz-garden

Garden, Gazebo's 7th named release
CMake
3
star
29

gz-fortress

Fortress, Gazebo's 6th named release
CMake
3
star
30

gazebo_test_cases

TypeScript
3
star
31

.github

Default Ignition health files such as issue and PR templates
2
star
32

garden-tutorial-party

1
star
33

gz-edifice

Edifice, Gazebo's 5th named release
CMake
1
star
34

gz-chrono

Connects Gazebo with the Project Chrono Physics Engine
CMake
1
star
35

gz-citadel

Citadel, Gazebo's 3rd named release
CMake
1
star
36

gz-harmonic

Harmonic, Gazebo's 8th named release
CMake
1
star
37

gz_pkg_create

A tool for setting up gazebo related projects.
Ruby
1
star
38

gz-omni-meta

1
star