sdformat#

sdformat

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

Build

Status

Test coverage

codecov

Ubuntu Jammy

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 actuators. 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 14 or 15, depending on which version you need, or leave it empty for version 1.

macOS

On macOS, after installing the Homebrew package manager, add OSRF packages:

brew tap osrf/simulation

Install sdformat:

brew install sdformat<#>

Be sure to replace <#> with a number value, such as 14 or 15, 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 libsdformat15 and is currently unstable. A release branch (sdf12, sdf11, sdf10, sdf9, etc.) is recommended for most users.

UNIX

Prerequisites

Clone the repository

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

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

Install dependencies

Ubuntu

cd sdformat
sudo apt -y install \
  $(sort -u $(find . -iname 'packages-'`lsb_release -cs`'.apt' -o -iname 'packages.apt' | tr '\n' ' '))

macOS

brew install --only-dependencies sdformat<#>

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

Build from Source

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

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

sdformat supported cmake parameters at configuring time:

Name

Type

Default

Description

SKIP_PYBIND11

BOOL

False

Skip generating Python bindings via pybind11

USE_INTERNAL_URDF

BOOL

False

Use an internal copy of urdfdom 1.0.0 instead of looking for one installed in the system

USE_UPSTREAM_CFLAGS

BOOL

True

Use the sdformat team compilation flags instead of the common set defined by cmake.

Build python bindings separately from main library

If you want to build Python bindings separately from the main libsdformat library (for example if you want to build Python bindings for multiple versions of Python), you can invoke cmake on the python folder instead of the root folder. Specify the path to the python executable with which you wish to build bindings in the Python3_EXECUTABLE cmake variable. Specify the install path for the bindings in the CMAKE_INSTALL_PREFIX variable, and be sure to set your PYTHONPATH accordingly after install.

cd sdformat
mkdir build_python3
cd build_python3
cmake ../python \
    -DPython3_EXECUTABLE=/usr/local/bin/python3.12 \
    -DCMAKE_INSTALL_PREFIX=<prefix>

See the homebrew sdformat15 formula for an example of building bindings for multiple versions of Python.

Uninstallation

To uninstall the software installed with the previous steps:

cd build
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 cmake git vcstool colcon-common-extensions ^
tinyxml2 urdfdom pybind11 -channel conda-forge

Getting the sources and building from Source

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

  1. Getting the sources

mkdir ws\src
cd ws
vcs import src --input https://raw.githubusercontent.com/gazebo-tooling/gazebodistro/master/sdformat<#>.yaml
  1. Build from source

Note: the Gazebo library dependencies are going to be compiled from source with sdformat although it should be possible to install them from conda-forge on stable Gazebo releases using the standard conda install command.

Build the gazebo libraries needed as dependencies (skip testing to speed up the compilation) using the colcon tool:

  colcon build --cmake-args -DBUILD_TESTING=OFF --merge-install --packages-skip sdformat<#>

Build sdformat with its test suite:

  colcon build --cmake-args -DBUILD_TESTING=ON --merge-install --packages-select sdformat<#>

libsdformat 15.X

libsdformat 15.1.1 (2024-11-15)

  1. Baseline: this includes all changes from 15.1.0 and earlier.

  2. Fix bazel rules for layering_check and parse_headers with clang

  3. Enable header layering checks for bazel build

libsdformat 15.1.0 (2024-11-13)

  1. Bazel CI

  2. Add bzlmod support to sdf15

  3. Support removing the actor, light, or model from the root

  4. Only look for psutil if testing is enabled

  5. Improve installation instructions

  6. Permit building python bindings separately from libsdformat library

  7. Change sdf_config.h to sdf/config.hh everywhere

  8. Improve installation instructions

  9. Fix symbol checking test when compiled with debug symbols

libsdformat 15.0.0 (2024-09-25)

  1. Baseline: this includes all changes from 14.5.0 and earlier.

  2. Use colcon for Windows building compilation

  3. Spec 1.12: link_state, joint_state changes

  4. Fix symbol checking test when compiled with debug symbols

  5. README: update badges for sdf15

  6. Ionic Changelog

  7. Spec 1.12: add _state suffix to //state subelements

  8. Add optional binary relocatability

  9. FrameSemantics: fix NullVertex warnings

  10. Remove deprecated APIs

  11. Spec 1.12: add //sensor/frame_id

  12. Disable latex and class hierarchy generation

  13. Print auto inertial values with gz sdf --print --expand-auto-inertials

  14. Add cone shape to SDFormat spec

  15. Enable 24.04 CI, remove distutils dependency

  16. Change behavior of Param::Get<bool>

  17. Parse kinematic property in Link, expand spec documentation of property

  18. Spec 1.11+: add //mesh/@optimization, //mesh/convex_decomposition

  19. Copy 1.11 spec to 1.12 for libsdformat15

  20. Fix find Python3 logic and macOS workflow

  21. Remove HIDE_SYMBOLS_BY_DEFAULT: replace by a default configuration in gz-cmake.

  22. Dependency version bumps in ionic: use gz-cmake4, gz-utils3, gz-math8

  23. Bump major version to 15

libsdformat 14.X

libsdformat 14.5.0 (2024-08-05)

  1. Adding Errors structure to XmlUtils

  2. Disable latex and class hierarchy generation

  3. Added SetHeightMap and Heighmap to Geometry Python binding

  4. workflows/ci.yml fix push branch regex

  5. SDF.cc update calls to use sdf::Errors output

  6. Added World::ActorByName

libsdformat 14.4.0 (2024-06-20)

  1. Add Cone as a primitive parametric shape.

  2. Add custom attribute to custom element in test

libsdformat 14.3.0 (2024-06-14)

  1. Backport voxel_resolution sdf element

  2. Added Automatic Moment of Inertia Calculations for Basic Shapes Python wrappers

  3. Add support for no gravity link

  4. Update default camera instrinsics skew to 0, which matches spec

  5. Allow empty strings in plugin and custom attributes

  6. (Backport) Enable 24.04 CI, remove distutils dependency

  7. Fix macOS workflow and backport windows fix

  8. Fix warning with pybind11 2.12

  9. Add bullet and torsional friction DOM

libsdformat 14.2.0 (2024-04-23)

  1. Fix trivial warning on 24.04 for JointAxis_TEST.cc

  2. Add package.xml, fix gz sdf tests on Windows

  3. Backport mesh optimization feature

  4. Param_TEST: Check return values of Param::Get/Set

libsdformat 14.1.1 (2024-03-28)

  1. Fix warning with pybind11 2.12

  2. Use relative install paths in CMake

libsdformat 14.1.0 (2024-03-14)

  1. Resolve URIs relative to file path

  2. Use //link/inertial/density for auto-inertials

  3. Fix a little typo in the README.md

  4. Fix version variable in reference manual PDF filename

  5. In parser config test, use a filename less likely to exist

  6. Update CI badges in README

  7. Bazel updates for Garden build

  8. Fix static builds and optimize test compilation

  9. Install ruby commands on Windows

  10. Infrastructure

  11. URDF parser: use SDFormat 1.11, parse joint mimic

  12. URDF->SDF handle links with no inertia or small mass

libsdformat 14.0.0 (2023-09-29)

  1. Add missing conda dependencies

  2. Correct spelling of Python variable in CMake

  3. Remove hard dependence on ruby

  4. Documentation fixes

  5. Automatic Moment of Inertia Calculations for Basic Shapes

  6. Joint axis mimic constraints: add sdf element

  7. Add python bindings for sdf::Element and sdf::Param

  8. World: handle name collisions like Model

  9. ign -> gz

  10. Copy 1.10 spec to 1.11 for sdformat14

  11. Make sure the deprecated kSdfScopeDelimiter still works

  12. Python script to replace ruby xmlschema generator

  13. Make dataPtr private in sdf::Plugin

  14. Fix GSG violations on non-trivially destructible types

  15. Port embedSdf script from Ruby to Python3 and provide unittests

  16. World: sdfwarns to sdf::Errors when warnings policy set to sdf::EnforcementPolicy::ERR

  17. Add sdf::Errors output to API methods

  18. ⬆️ Bump main to 14.0.0~pre1

libsdformat 13.X

libsdformat 13.8.0 (2024-06-25)

  1. Added World::ActorByName

  2. Backport #1367 to Garden: Fix find Python3 logic.

libsdformat 13.7.0 (2024-06-13)

  1. Add support for no gravity link

  2. Fix macOS workflow and backport windows fix

  3. Fix warning with pybind11 2.12

  4. Add bullet and torsional friction DOM

  5. Resolve URIs relative to file path

  6. Bazel updates for Garden build

  7. Fix static builds and optimize test compilation

  8. Install ruby commands on Windows

  9. Update github action workflows

  10. URDF->SDF handle links with no inertia or small mass

libsdformat 13.6.0 (2023-08-30)

  1. Use relative path in an urdf include to avoid confusion between internal and system headers

  2. parser.cc update calls to use sdf::Errors output

  3. Fix deeply nested merge-include for custom parsed files

  4. Updated findfile() to search localpath first

  5. World requires a scene and atmosphere

  6. Infrastructure

  7. Remove robot not found error when parsing fails

  8. Make some sdfdbg messages sdfmsgs

  9. Minor clean up of tests

libsdformat 13.5.0 (2023-05-18)

  1. Added projector Python wrapper

  2. Added new error codes in Python

  3. Fixed 1.9/light.sdf

  4. Add Projector DOM

  5. Disable pybind11 tests on windows

  6. Geometry and others: update calls to use sdf::Errors parameters

  7. Fix GitHub Actions on macOS

  8. JointAxis: improve code coverage in Load()

  9. Scene: update calls to use sdf::Errors parameters

  10. ForceTorque: update calls to use sdf::Errors output

  11. Fix Element::Set method return value

  12. Sky: update calls to use sdf::Errors output

  13. Add missing values in Surface ToElement method

  14. Atmosphere: update calls to use sdf::Errors output

  15. Altimeter: update calls to use sdf::Errors output

  16. AirPressure: update calls to use sdf::Errors output

  17. ParticleEmitter: update calls to use sdf::Errors output

  18. Physics: update calls to use sdf::Errors output

  19. Frame: update calls to use sdf::Errors output

  20. Material: update calls to use sdf::Errors output

  21. Light: update calls to use sdf::Errors parameters

  22. Imu: update calls to use sdf::Errors output

  23. JointAxis: update calls to use sdf::Errors output

  24. Noise: update calls to use sdf::Errors parameters

  25. Plugin: update calls to use sdf::Errors output

  26. URDF->SDF handle links with no inertia or small mass

  27. Element: update calls to use sdf::Errors output

  28. Add: new error enums to Python

  29. Rename COPYING to LICENSE

  30. Allowing relative paths in URDF

libsdformat 13.4.1 (2023-03-08)

  1. Fix camera_info_topic default value

  2. CI workflow: use checkout v3

libsdformat 13.4.0 (2023-03-03)

  1. Fix camera info topic default value

  2. Add support for merge-includes in worlds

  3. Backport the python3 embedSdf script variant

  4. Go back to SDF_ASSERT instead of FATAL_ERROR

  5. Add missing sdf files from xsd generation

  6. CI workflow: use checkout v3

  7. Use File.exist? for Ruby 3.2 compatibility

libsdformat 13.3.0 (2023-02-07)

  1. Add airspeed sensor

  2. Use File.exist? for Ruby 3.2 compatibility

  3. Make ThrowOrPrintError a free internal function

  4. macos workflow: don’t upgrade existing packages

  5. update Param calls to use error vectors parameters

  6. ign -> gz Migrate Ignition Headers : sdformat

  7. Sensor: add sdf::Errors output to API methods

  8. Warn child joint that resolves to world

  9. Converter: add sdf::Errors output to API methods

  10. ParamPassing: sdfwarns to sdf::Errors when warnings policy set to sdf::EnforcementPolicy::ERR

  11. Camera: added HasLensProjection

  12. Change default camera_info_topic value to __default__

  13. Check JointAxis expressed-in values during Load

  14. Added camera info topic to Camera

  15. Fix static URDF models with fixed joints

libsdformat 13.2.0 (2022-10-20)

  1. sdf/1.10/joint.sdf: add screw_thread_pitch

  2. sdf/1.10: support //world/joint specification

  3. Model: add sdf::Errors output to API methods

  4. Added Root::WorldByName

  5. Python: add OpticalFrameID APIs to pyCamera

  6. Fix GZ_PYTHON_INSTALL_PATH value

  7. Rename python bindings import library for Windows

libsdformat 13.1.0 (2022-10-12)

  1. Add test helper python package for encapsulating versioned python packages

  2. Add a configuration option to resolve URIs

  3. World: sdfwarns to sdf::Errors when warnings policy set to sdf::EnforcementPolicy::ERR

  4. PrintConfig: add sdf::Errors output to API methods

  5. Element: add sdf::Errors output to API methods

  6. python: Import gz.math at startup to fix #1129

  7. parser_urdf: add //frame for reduced links/joints

  8. Param::Set: fix truncation of floating-point values

  9. Reduce the number of include dirs for sdformat

  10. urdf: fix test and clean up internals

  11. sdf/camera.sdf: fields for projection matrix

  12. Add camera optical_frame_id element

libsdformat 13.0.1 (2022-09-27)

  1. Fix arm tests

libsdformat 13.0.0 (2022-09-23)

  1. Add camera optical_frame_id element

  2. sdf/1.10: remove unused spec files

  3. 1.10/joint.sdf: better default limit values

  4. Remove unused macros from config.hh

  5. Make //plugin/@name optional

  6. Add Error enums and update Migration guide

  7. Warn by default on unrecognized elements

  8. InterfaceElements: remove deprecated data members

  9. Add fluid added mass to inertial

  10. Change Root to non-unique impl pointer

  11. Add python interfaces

  12. Copy skybox uri field to sdf/1.10/scene.sdf

  13. Accept moon and custom surfaces in world spherical coordinates

  14. Migrate ign -> gz

  15. Copy 1.9 spec to 1.10

  16. Root: get the world name

  17. Add SDF::SetRoot and deprecate non-const SDF::Root

  18. Update GoogleTest to latest version

  19. Update return types for Plugin’s Name and Filename

  20. Surface::ToElement: add //friction/ode/mu

  21. Joint: rename parent/child *LinkName APIs

  22. Deprecate sdf::Inertia class

  23. Don’t include the gz/math.hh header from library code

  24. Use pose multiplication instead of subtraction

  25. Remove deprecation warnings

  26. Added light methods to Link, Root and World

  27. Add sdf::Error logging in sdf::Param

  28. Changes for replacing PythonInterp with Python3

  29. Combine find_package(ignition-utils) calls

  30. Change default floating point precision to max

  31. Clean up compiler warnings

  32. Switch to utils version of env functions

  33. Updated tests for ign-math’s ostream fix

  34. Infrastructure

  35. Remove completely unused define

libsdformat 12.X

libsdformat 12.8.0 (2024-06-06)

  1. Add support for no gravity link

  2. Add bullet and torsional friction DOM

  3. Fix static builds and optimize test compilation

  4. Update github action workflows

libsdformat 12.7.2 (2023-09-01)

  1. Fixed 1.9/light.sdf

  2. URDF->SDF handle links with no inertia or small mass

  3. Fix Element::Set method return value

  4. Add missing values in Surace ToElement method

  5. Rename COPYING to LICENSE

  6. Infrastructure

  7. Allow relative paths in URDF

libsdformat 12.7.1 (2023-02-28)

  1. Fix camera info topic default value

libsdformat 12.7.0 (2023-02-03)

  1. Forward port libsdformat9.10.0. This includes the ign to gz headers.

  2. Use File.exist? for Ruby 3.2 compatibility.

  3. Infrastructure

  4. CI workflow: use checkout v3.

  5. macos workflow: don’t upgrade existing packages.

libsdformat 12.6.0 (2022-09-07)

  1. Reduce the number of include dirs for sdformat.

  2. Add camera optical_frame_id element

  3. urdf: fix sensor/light pose for links lumped by fixed joints

  4. Removed USD component from SDFormat and move to gz-usd

  5. Fix URDF fixed joint reduction of SDF joints

  6. Test model name as placement_frame

  7. Test using __model__, world in @attached_to, @relative_to

  8. Remove unused sdf.hh.in template

  9. Readme: Ignition -> Gazebo

  10. Document major and minor SDFormat version numbers

  11. Add skybox URI

  12. Bash completion for flags

  13. Fix bug with resolving poses for joint sensors.

  14. sdf::Joint: Mutable versions of SensorByName and SensorByIndex

  15. Add Link::ResolveInertial API

libsdformat 12.5.0 (2022-05-12)

  1. Add visibility mask to Lidar / Ray sensor

  2. Camera: fix default trigger topic

  3. Polyline geometry DOM

  4. Added <shininess> to <material>

  5. inertial.sdf: fix ambiguities in documentation

  6. Added equality operators to Plugin

  7. Added convenience constructor to plugin

  8. Use gz-utils instead of gz-cmake utilities

  9. Added Friction and ODE classes

  10. Add L16 pixel format to Camera pixel format conversion function

  11. Added --inertial-stats option to gz sdf

  12. Added anti_aliasing element to camera’s SDF

  13. DOC 1.9: clarify behavior of //model/model/static

  14. SDF to USD

  15. USD to SDF

libsdformat 12.4.0 (2022-03-29)

  1. Use ParserConfig more in parser.cc

  2. Added option to visualize light in GUI

  3. Make computeMergedModelProxyFrameName public

  4. SDFormat to USD conversion

  5. Add ToElement conversions for various classes

  6. Fix compiler warnings

  7. Infrastructure and Documentation

  8. Use the Plugin DOM in other DOM objects

  9. Add SDFormat tags for Triggered Cameras

  10. Fix bug where //include/pose was ignored when using the Interface API

  11. Fix joint parent/child frame existence checks to include interface elements

  12. Remove USD visibility macro from internal APIs

  13. Added non-const mutable accessors for world child objects

  14. Added non-const accessors for Model child objects

  15. Added to light if the light is on or off

  16. Added Root mutable accessors, and Root::Clone function

  17. Hide USDUtils.hh file from public API

  18. Added non-const accessors for Link child objects

  19. Add USDError class

  20. Use USD component visibility macro

  21. Add support for merge-include in the Interface API

  22. Handle __model__ in joint parent or child when using merge-include

  23. Allow model frames (model) to be used as joint parent or child

  24. Fix bug where a sdf::ParserConfig object was not passed to all sdf::readFile calls

  25. Make SDF to USD a separate component of sdformat

  26. Add ParserConfig flag for preserveFixedJoint

  27. Fix parsing ‘type’ attibutes in plugins

  28. sdf_custom: fix nested model expectations

  29. Replace custom cmake code with gz-cmake2

  30. Support printing sdf poses in degrees and allow snapping to commonly used angles

  31. Refactor FrameSemantics.cc

  32. Fix loading nested include with custom attributes

  33. Added plugin to SDF DOM

  34. Support URI in the Model DOM

  35. Support adding and clearing sensors from a joint

  36. PrintConfig option to preserve includes when converting to string

libsdformat 12.3.0 (2021-12-01)

  1. Fix empty pose parsing fail for rotation_format=‘quat_xyzw’

  2. Added Add & Clear function to World, Model, and Link.

libsdformat 12.2.0 (2021-11-23)

  1. Convert Joint DOM to Element.

  2. Populate light sdf::ElementPtr from Light DOM

  3. Add function to convert Sensor DOM to sdf::ElementPtr

  4. Support wide angle camera.

  5. Forward ports

  6. Changelog links to BitBucket backup.

  7. Update BitBucket links.

  8. Cherry-pick [sdf4] Update BitBucket links -> sdf6

  9. Patch popen/pclose method for Windows.

  10. Parse rpyOffset as radians

  11. Fix flattening logic for nested model names (sdf6)

  12. Translate poses of nested models inside other nested models (sdf6).

  13. Use Ubuntu bionic in CI

  14. Create CODEOWNERS with azeey and scpeters.

  15. Remove bitbucket-pipelines.

  16. Check joint parent/child names in Root::Load.

  17. Check joint parent link names in Model::Load.

  18. Add Joint DOM API to access joint sensors

  19. Remove outdated deprecation note from parser_urdf.hh

  20. DOC: only allow one canonical_link attribute

  21. Fix URDF fixed joint reduction of plugins

libsdformat 12.1.0 (2021-11-09)

  1. Support accessing mutable sensor types.

libsdformat 12.0.0 (2021-09-30)

  1. Make exception for plugins when checking for name uniqueness

  2. Remove empty //inertial/pose/@relative_to during 1_7->1.8 conversion

  3. Added macos install instructions to README.md

  4. Do not automatically remove //axis/initial_position

  5. DOC: don’t mention elements that can’t be included

  6. Prefix merged frames with an underscore

  7. Add API changes for PrintConfig

  8. Add Force Torque Noise functions + Unit tests

  9. Support quaternions representation for poses

  10. Support merge-include of nested models

  11. Fix documentation on Euler angle convention in pose.sdf

  12. Clarify documentation on //pose/@relative_to in the spec

  13. 🌐 Parse spherical coordinates

  14. Fix bug when using degrees in //include/pose

  15. Support rotation in degrees (#589)

  16. Add segmentation and bounding box sensor types

  17. Add support for custom sensors

  18. Remove deprecated functions and classes

  19. Emit an error instead of a warning when a file has multiple root level

  20. Copy spec 1.8 to 1.9

  21. Use encapsulated string constants for non-file sources

  22. Forward ports

  23. Infrastructure

libsdformat 11.X

libsdformat 11.4.1 (2022-03-21)

  1. Install sdf/1.8 to versioned path

libsdformat 11.4.0 (2022-03-14)

  1. Added option to visualize light on the GUI

  2. Fix joint parent/child frame existence checks to include interface elements

  3. Added to light whether it is on or off

  4. Allow model frames (model) to be used as joint parent or child

  5. Add ParserConfig flag for preserveFixedJoint

  6. Fix compiler warnings

  7. sdf_custom: fix nested model expectations

  8. Fix test compilation with USE_INTERNAL_URDF

  9. Replace custom CMake code with gz-cmake2

  10. Fix loading nested include with custom attributes

  11. Documentation

    1. Clarify behavior of //model/model/static

    2. Only allow one canonical_link attribute for model

    3. Don’t mention elements that can’t be included

    4. Clarify documentation on //pose/@relative_to in the spec

    5. Remove duplicate link documentation

  12. Fix URDF fixed joint reduction of plugins

  13. Add enable_orientation to 1.6 spec

  14. Remove outdated deprecation note from parser_urdf.hh

  15. Add Joint DOM API to access joint sensors

  16. Add force torque sensor

  17. Check joint parent link names in Model::Load

  18. Check joint parent/child names in Root::Load

  19. Remove empty //inertial/pose/@relative_to during 1_7->1.8 conversion

  20. Fix xyz and rpy offsets in fixed joint reduction

  21. Infrastructure updates

  22. Translate poses of nested models inside other nested models

  23. Fix flattening logic for nested model names

  24. Parse rpyOffset as radians

libsdformat 11.3.0 (2021-09-10)

  1. Fix world-complete.sdf and add particle_scatter_ratio to v1.8

  2. Parse URDF continuous joint effort/velocity limits

  3. Add enable_orientation SDF element to imu

  4. Add a codecheck make target

  5. Refactor sdf::readXml

  6. Upgrade cpplint and fix new errors

  7. Infrastructure and documentation

  8. Added comment reminder to update functions

  9. BUG: add missing plugin element to include

  10. Adds enable_metrics flag to Sensor.

  11. BUG: make time type string [s ns]

  12. Add GPS sensor to sdf9

  13. Spec change booleans from 0/1 to false/true

  14. Support parsing elements that are not part of the schema

  15. Add lightmap to 1.7 spec and PBR material DOM

  16. Fix urdf link extension tags

  17. Fix unreported invalid model when reference frame is unavailable

  18. Updated material spec

  19. BUG: add missing sdf files to CMakeLists

  20. Update build system to allow overriding CXX flags and using clang on Linux

  21. Error: move << operator from .hh to .cc file

  22. Add Element::FindElement as an alternative to Element::GetElement

  23. Parameter passing prototype

  24. Port particle scatter ratio param to sdf 1.6

libsdformat 11.2.2 (2021-07-01)

  1. Fix segfault when checking for required elements in joint

  2. Add ValidateGraphs methods to Model/World

  3. Making PrintValues() and ToString() able to not print default elements

libsdformat 11.2.1 (2021-06-28)

  1. Fix ABI break on sdf11

  2. Add triage, remove ticket templates

libsdformat 11.2.0 (2021-06-23)

  1. Revert behavior of FilePath() for elements loaded from strings

  2. Adding comment and modifications to element_tracing test regarding path sanitization

  3. Allow to convert URDF color to SDF material tag

  4. Encode XML path and line number in Element and add XML path setter Error.

  5. Merge sdf 1.7 changes forward to 1.8

  6. Add API for determining if an element was set by the user

  7. Add scatter ratio parameter to Particle Emitter DOM

  8. Fix bug where included URDFs are not parsed when there are no custom parsers

libsdformat 11.1.0 (2021-04-30)

  1. Clean up use of PROJECT_SOURCE_PATH in tests

  2. Methods for removing attributes from an element

  3. Add an EnforcementPolicy for deprecated elements

  4. Fixed application of tags in lumped linkes during URDF conversion

  5. Particle emitter

  6. Improve docs of collision_bitmask.

libsdformat 11.0.0 (2021-03-30)

  1. Add ParserConfig class to encapsulate file path settings.

  2. Add EnforcementPolicy in ParserConfig to configure parsing strictness.

  3. Use ImplPtr / UniqueImplPtr from gz-utils

  4. Allow files paths for include URIs

  5. Add split/join for separating the link name from fully-qualified name.

  6. SDFormat 1.8: Add ellipsoid geometry type.

  7. SDFormat 1.8: Add capsule geometry type.

  8. SDFormat 1.8: Add light intensity field.

  9. SDFormat 1.8: reduce default heightmap sampling from 2 to 1.

  10. SDFormat 1.8: remove //inertial/pose/@relative_to from spec.

  11. Allow only one of actor/light/model for tags.

  12. Add support for building static library.

  13. Add force torque sensor.

  14. Simplify data embedding.

  15. Properly handle the requirement of C++17 at the CMake exported target level.

  16. Update documentation for Cylinder length.

  17. Root: fix grammar in error message.

  18. Ensure relocatable config files.

  19. Update CI.

  20. Update README, Changelog, Contributing Guide, and Code of Conduct.

  21. Implement SDFormat 1.8 Model Composition.

  22. Fix precision loss when adding nested models.

  23. Initial version of SDFormat 1.8 specification.

  24. SDFormat 1.8: Deprecate //joint/axis/initial_position.

  25. Implement SDFormat 1.8 Interface API

  26. Add Joint DOM API to access joint sensors

  27. Store include info in Element

  28. Updated loading //material colors

  29. Include file path and line number in parsing errors

  30. Error when delimiter “::” found in element name in SDFormat 1.8

  31. Add camera type aliases to docs.

  32. Fix lidar resolution description about interpolation

  33. Added issue & PR templates

  34. Add L16 pixel format to Camera pixel format conversion function

  35. Quietly search for urdfdom

  36. tests: Ensure removed SDFormat elements raise errors in newer versions

  37. sdformat.pc.in: requires ignition-utils1

  38. Wrap description tags in CDATA

  39. Fix temperature gradient default value in Atmosphere DOM

  40. Add laser_retro in Visual

  41. Add Windows installation

  42. Replace PROJECT_SOURCE_DIR in tests

libsdformat 10.X

libsdformat 10.7.0 (2021-12-27)

  1. Fix flattening logic for nested model names (merged forward from sdf6)

  2. Create CODEOWNERS with azeey and scpeters

  3. Fix xyz and rpy offsets in fixed joint reduction

  4. Check joint parent link names in Model::Load

  5. Make exception for plugins when checking for name uniqueness

  6. Added Force Torque Noise functions + Unit tests

  7. Add Joint DOM API to access joint sensors

  8. Add force torque sensor

  9. Remove outdated deprecation note from parser_urdf.hh

  10. Fix URDF fixed joint reduction of plugins

  11. Fix loading nested include with custom attributes

  12. Replace custom cmake code with gz-cmake2

  13. Fix test compilation with USE_INTERNAL_URDF

libsdformat 10.6.0 (2021-09-08)

  1. Parse URDF continuous joint effort/velocity limits

  2. Add enable_orientation SDF element to imu

  3. Add a codecheck make target

  4. Refactor sdf::readXml

  5. Upgrade cpplint and fix new errors

  6. BUG: add missing plugin element to include

  7. Added comment reminder to update functions

  8. Adds enable_metrics flag to Sensor.

  9. Add GPS / NavSat sensor to sdf9

  10. Support parsing elements that are not part of the schema

  11. Add lightmap to 1.7 spec and PBR material DOM

  12. Fix urdf link extension tags

  13. Updated material spec

  14. Minor fix to Migration guide

  15. Error: move << operator from .hh to .cc file

  16. Update build system to allow overriding CXX flags and using clang on Linux

  17. Add Element::FindElement as an alternative to Element::GetElement

  18. Add ValidateGraphs methods to Model/World (sdf9)

  19. Fix ABI break

  20. Parameter passing prototype

  21. Port particle scatter ratio param to sdf 1.6

  22. Making PrintValues() and ToString() able to not print default elements

  23. Add API for determining if an element was set by the user

libsdformat 10.5.0 (2021-05-17)

  1. Add scatter ratio parameter to Particle Emitter DOM.

  2. Methods for removing attributes from an element.

  3. Improve docs of collision bitmask.

libsdformat 10.4.0 (2021-04-06)

  1. Added particle emitter.

  2. Fixed application of tags in lumped linkes during URDF conversion.

  3. Add camera type aliases to docs.

libsdformat 10.3.0 (2021-02-18)

  1. Replace PROJECT_SOURCE_DIR in tests

  2. Add Windows installation

  3. Add laser_retro in Visual

  4. Fix temperature gradient default value in Atmosphere DOM

  5. Wrap description tags in CDATA

  6. Add L16 pixel format to Camera pixel format conversion function

libsdformat 10.2.0 (2021-01-12)

  1. Disable gz test on Windows

  2. Add Heightmap class

  3. Added render_order to material

libsdformat 10.1.0 (2020-12-15)

  1. Fix supported shader types (normal_map_X_space)

  2. Prefix nested model names when flattening

  3. Move list of debian dependencies to packages.apt

  4. Remove custom element warning/error.

  5. Add Sky DOM.

  6. Add <double_sided> to material spec.

  7. Decrease far clip lower bound.

  8. Enable/disable tests for issue #202, add macOS workflow.

  9. Make labeler work with PRs from forks.

  10. Test included model folder missing model.config

  11. Add lightmap to 1.7 spec and PBR material DOM

libsdformat 10.0.0 (2020-09-28)

  1. Return positive INF instead of -1 in DOM API for unbounded symmetric joint limits.

  2. Add cmake option to disable console logfile.

  3. CMake fixes: include CMakePackageConfigHelpers and use modern cmake target for gz math.

  4. Cmake: add tinyxml2 to Config names.

  5. Define PATH_MAX for Debian Hurd system.

  6. Normalize joint axis xyz vector when parsing from SDFormat.

  7. Migrate to using TinyXML2.

  8. Enforce minimum/maximum values specified in SDFormat description files.

  9. Make parsing of values syntactically more strict with bad values generating an error.

  10. Don’t install deprecated parser_urdf.hh header file, fix cmake warning about newline file, fix cmake warning about newlines.

  11. Remove deprecated Pose(), PoseFrame() functions from DOM objects.

  12. Remove deprecated UseParentModelFrame methods from JointAxis DOM.

  13. Changed the default radius of a Cylinder from 1.0 to 0.5 meters.

libsdformat 9.X

libsdformat 9.10.1 (2024-01-05)

  1. URDF->SDF handle links with no inertia or small mass

  2. Fix Element::Set method return value

  3. Allowing relative paths in URDF

  4. Use File.exist? for Ruby 3.2 compatibility

  5. Infrastructure

libsdformat 9.10.0 (2022-11-30)

  1. Ign to gz header migration.

  2. Added HasLensProjection.

  3. Added camera info topic to Camera

libsdformat 9.9.1 (2022-11-08)

  1. Fix static URDF models with fixed joints

  2. Don’t assume CMAKE_INSTALL_*DIR variables are relative

libsdformat 9.9.0 (2022-09-07)

  1. sdf/camera.sdf: fields for projection matrix

  2. urdf: add //frame for reduced links/joints

  3. urdf: fix sensor/light pose for links lumped by fixed joints

  4. urdf: fix test and clean up internals

  5. Ensure relocatable config files

  6. Test using __model__, world in @attached_to, @relative_to

  7. Readme: Ignition -> Gazebo

  8. Document major and minor SDFormat version numbers

  9. Bash completion for flags

  10. Add Link::ResolveInertial API

libsdformat 9.8.0 (2022-04-26)

  1. Polyline geometry DOM

  2. Added <shininess> to <material>

  3. Backport gz sdf --inertial-stats

  4. Add L16 pixel format to Camera pixel format conversion function

  5. Anti-aliasing element for <camera><image>

  6. Fix loading nested include with custom attributes

  7. add enable_orientation to 1.6 spec

  8. Fix xyz and rpy offsets in fixed joint reduction

  9. 👩‍🌾 Remove bitbucket-pipelines and backport labeler / triage

  10. Create CODEOWNERS with azeey and scpeters

  11. Use Ubuntu bionic in CI

  12. Translate poses of nested models inside other nested models (sdf6)

  13. Fix flattening logic for nested model names (sdf6)

  14. Parse rpyOffset as radians

  15. BitBucket

libsdformat 9.7.0 (2021-11-03)

  1. Make exception for plugins when checking for name uniqueness

  2. Backport test utilities from sdf10

  3. Added Force Torque Noise functions + Unit tests

  4. Add Joint DOM API to access joint sensors

  5. Add force torque sensor

libsdformat 9.6.1 (2021-09-07)

  1. Parse URDF continuous joint effort/velocity limits

  2. Add a codecheck make target

  3. Refactor sdf::readXml

  4. Upgrade cpplint and fix new errors

  5. BUG: add missing plugin element to include

  6. Added comment reminder to update functions

libsdformat 9.6.0 (2021-08-18)

  1. Adds enable_metrics flag to Sensor.

  2. Add GPS / NavSat sensor DOM to sdf9

  3. Support parsing elements that are not part of the schema

  4. Add lightmap to 1.7 spec and PBR material DOM

  5. Fix urdf link extension tags

  6. Updated material spec

  7. Minor fix to Migration guide

  8. Error: move << operator from .hh to .cc file

  9. Update build system to allow overriding CXX flags and using clang on Linux

  10. Add Element::FindElement as an alternative to Element::GetElement

  11. Add ValidateGraphs methods to Model/World (sdf9)

  12. Fix ABI break

  13. Making PrintValues() and ToString() able to not print default elements

  14. Add API for determining if an element was set by the user

  15. Methods for removing attributes from an element

  16. Improve docs of collision_bitmask.

  17. Add camera type aliases to docs.

  18. Add action-gz-ci

libsdformat 9.5.0 (2021-02-11)

  1. Add Windows installation

  2. Add laser_retro in Visual

  3. Wrap description tags in CDATA

libsdformat 9.4.0 (2021-01-08)

  1. Define PATH_MAX for Debian Hurd system

  2. Fix supported shader types (normal_map_X_space)

  3. Move list of debian dependencies to packages.apt

  4. Enable/disable tests for issue #202, add macOS workflow

  5. Test included model folder missing model.config

  6. Prefix nested model names when flattening

  7. Add Sky DOM

  8. camera.sdf: decrease far clip lower bound

  9. material.sdf: add double_sided parameter

  10. Migration to GitHub: CI, links…

  11. Fix Actor copy operators and increase test coverage.

  12. Add Heightmap class

libsdformat 9.3.0 (2020-XX-XX)

  1. Store material file path information.

  2. Support nested models in DOM and frame semantics.

  3. Find python3 in cmake, fix cmake warning.

  4. Fix Actor copy operators and increase test coverage.

  5. GitHub Actions CI, pull request labels.

  6. Change bitbucket links to GitHub.

  7. Param_TEST: test parsing +Inf and -Inf.

  8. SearchForStuff: add logic to find urdfdom without pkg-config.

  9. Observe the CMake variable BUILD_TESTING if it is defined.

  10. Collision: don’t load Surface without <surface>.

  11. Properly handle the requirement of C++17 at the CMake exported target level.

  12. Fix homebrew build with external urdfdom.

libsdformat 9.2.0 (2020-04-02)

  1. Remove URI scheme, if present, when finding files.

  2. Build Utils_TEST with Utils.cc explicitly passed since its symbols are not visible.

  3. Keep the URDF style of specifying kinematics when converting URDF to SDF by using frame semantics.

  4. Increase output precision of URDF to SDF conversion, output -0 as 0.

  5. Add test of URDF frame semantics.

  6. Support frame semantics for models nested with

  7. Add surface DOM

  8. Add Transparency to visual DOM

  9. Add camera visibility mask and visual visibility flags

  10. Include overrides for actor and light

  11. Add functionality to generate aggregated SDFormat descriptions via CMake.

  12. parser addNestedModel: check //axis/xyz/@expressed_in before rotating joint axis.

  13. Remove TinyXML symbols from public API: Deprecate URDF2SDF

  14. Remove TinyXML symbols from public API: Move uninstalled headers

  15. Install the Windows .dll shared libraries to bin folder.

  16. Fix cmake type for tinyxml_INCLUDE_DIRS.

  17. Rename SDF to SDFormat / libsdformat on documentation

libsdformat 9.1.0 (2020-01-29)

  1. Remove URI scheme, if present, when finding files.

  2. Fix parsing of pose elements under <include>

  3. Parser: add readFileWithoutConversion and readStringWithoutConversion.

  4. Added accessors to gz::math::[Boxd, Cylinderd, Planed, Sphered] in the matching sdf::[Box, Cylinder, Plane, Sphere] classes.

  5. Forward port of adjustments for memory leaks:

  6. SDFormat 1.7: remove //world/joint element since it has never been used.

  7. Add clipping for depth camera on rgbd camera sensor

  8. Add tests to confirm that world is not allowed as child link of a joint.

  9. Fix link pose multiplication for URDF.

  10. Enable linter for URDF parser and fix style.

  11. Converter: fix memory leak pointed out by ASan.

  12. Access the original parsed version of an SDF document with Element::OriginalVersion.

  13. Model::Load: fail fast if an SDFormat 1.7 file has name collisions.

  14. Keep DOM objects even if they were loaded with errors.

libsdformat 9.0.0 (2019-12-10)

  1. Move recursiveSameTypeUniqueNames from gz.cc to parser.cc and make public.

  2. Check that joints have valid parent and child names in gz sdf --check.

  3. Model DOM: error when trying to load nested models, which aren’t yet supported.

  4. Use consistent namespaces in Filesystem.

  5. Enforce rules about reserved names and unique names among sibling elements.

  6. Relax name checking, so name collisions generate warnings and names are automatically changed.

  7. Unversioned library name for gz tool commands.

  8. Initial version of SDFormat 1.7 specification.

  9. Converter: add <map> element for converting fixed values.

  10. Converter: add descendant_name attribute to recursively search for elements to convert.

  11. SDFormat 1.7: replace use_parent_model_frame element with //axis/xyz/@expressed_in attribute.

  12. SDFormat 1.7: replace //pose/@frame attribute with //pose/@relative_to attribute.

  13. SDFormat 1.7: add //model/@canonical_link attribute and require models to have at least one link.

  14. Static models: allow them to have no links and skip building FrameAttachedToGraph.

  15. SDFormat 1.7: add //frame/attached_to, only allow frames in model and world, add Frame DOM.

  16. FrameSemantics API: add FrameAttachedToGraph and functions for building graph and resolving attached-to body.

  17. FrameSemantics API: add PoseRelativeToGraph and functions for building graph and resolving poses.

  18. Build and validate graphs during Model::Load and World::Load.

  19. Add SemanticPose class with implementation for Link.

  20. Add JointAxis::ResolveXyz and Joint::SemanticPose.

  21. Implement SemanticPose() for Collision, Frame, Light, Model, Sensor, Visual.

  22. Add Frame::ResolveAttachedToBody API for resolving the attached-to body of a frame.

  23. DOM API: deprecate (Set)?PoseFrame API and replace with (Set)?PoseRelativeTo

  24. DOM API: deprecate (Set)?Pose API and replace with (Set)?RawPose

  25. Hide FrameSemantics implementation.

libsdformat 8.0

libsdformat 8.X.X (202X-XX-XX)

libsdformat 8.9.0 (2020-09-04)

  1. Find python3 in cmake, fix warning

  2. Store material file path information

  3. Fix Actor copy operators and increase test coverage.

  4. Migration to GitHub: CI, links…

  5. Increase output precision of URDF to SDF conversion, output -0 as 0.

  6. Fix homebrew build with external urdfdom.

libsdformat 8.8.0 (2020-03-18)

  1. Add Transparency to visual DOM

  2. Install the Windows .dll shared libraries to bin folder.

  3. Fix cmake type for tinyxml_INCLUDE_DIRS.

  4. Add functionality to generate aggregated SDFormat descriptions via CMake.

  5. Remove URI scheme, if present, when finding files.

  6. Rename SDF to SDFormat / libsdformat on documentation

libsdformat 8.7.1 (2020-01-13)

  1. Fix memory leaks in move assignment operator.

  2. Refactoring based on rule-of-five guidance to address memory leaks

libsdformat 8.7.0 (2019-12-13)

  1. Remove some URDF error messages

  2. Fix parsing URDF without inside

  3. Backport URDF multiplication and linter

  4. Add clipping for depth camera on rgbd camera sensor

libsdformat 8.6.1 (2019-12-05)

  1. Unversioned lib name for cmds

libsdformat 8.6.0 (2019-11-20)

  1. configure.bat: use gz-math6, not gz11

  2. Set sdformat8_PKGCONFIG_* variables in cmake config instead of SDFormat_PKGCONFIG*.

  3. Relax cmake check to allow compiling with gcc-7.

  4. Use custom callbacks when reading file (support Fuel URIs).

  5. Update visual DOM to parse cast_shadows property of a visual.

  6. Build Utils_TEST with Utils.cc explicitly passed since its symbols are not visible.

libsdformat 8.5.0 (2019-11-06)

  1. Add thermal_camera sensor type

  2. Use inline namespaces in Utils.cc

  3. Convert gz sdf file inputs to absolute paths before processing them

  4. Add emissive_map to material sdf

  5. Converter: fix bug when converting across multiple versions.

libsdformat 8.4.0 (2019-10-22)

  1. Accept relative path in <uri>.

  2. Element: don’t print unset attributes.

  3. Lidar.hh: remove ‘using namespace ignition’.

  4. Parse urdf files to sdf 1.5 instead of 1.4 to avoid use_parent_model_frame.

  5. Set camera intrinsics axis skew (s) default value to 0

  6. SDF Root DOM: add ActorCount, ActorByIndex, and ActorNameExists.

  7. Avoid hardcoding /machine:x64 flag on 64-bit on MSVC with CMake >= 3.5.

  8. Move private headers from include/sdf to src folder.

  9. Fix gz library path on macOS.

  10. Use gz sdf --check to check sibling elements of the same type for non-unique names.

  11. Converter: remove all matching elements specified by <remove> tag.

libsdformat 8.3.0 (2019-08-17)

  1. Added Actor DOM

  2. Print cmake build warnings and errors to std_err

libsdformat 8.2.0 (2019-06-18)

  1. Added RGBD Camera Sensor type.

libsdformat 8.1.0 (2019-05-20)

  1. Change installation path of SDF description files to allow side-by-side installation.

  2. Added Lidar Sensor DOM. Also added lidar and gpu_lidar as sensor types. These two types are equivalent to ray and gpu_ray.

  3. SDF Sensor DOM: copy update rate in copy constructor.

  4. Added IMU Sensor DOM.

  5. Added Camera Sensor DOM.

  6. Added wind to link dom.

  7. Added Sensor DOM == operator.

  8. Added AirPressure SDF DOM

  9. Update SDFormat noise elements

  10. Apply rule of five for various DOM classes

  11. Support setting sensor types from a string.

  12. Added Altimeter SDF DOM

  13. Added Magnetometer SDF DOM

  14. Add Scene SDF DOM

  15. Add PBR material SDF element

  16. Set geometry shapes

  17. Clarify names of libsdformat parser and SDF specification in Readme.

  18. Disable macOS tests failing due to issue 202.

libsdformat 8.0.0 (2019-03-01)

  1. Rename depth camera from ‘depth’ to ‘depth_camera’

  2. Rename enum Ray to Lidar

  3. Add support for files that have light tags in the root

  4. Fix locale problems of std::stringstream and of Param::ValueFromString

  5. Add functions to set visual dom’s geometry and material

  6. Change cmake project name to sdformat8, export cmake targets

  7. SDF DOM: Add copy constructor and assignment operator to Light. Add lights to Link

  8. Make <limit> a required element for <axis2>

  9. SDF DOM: Add DOM methods for setting axis and thread pitch in sdf::Joint

  10. SDF DOM: Add copy constructors and assignment operator to JointAxis

  11. Removed boost

  12. Versioned namespace

  13. Versioned library install

  14. Add SetGeom to Collision

  15. SDF DOM: Add copy/move constructors and assignment operator to Geometry

  16. SDF DOM: Add copy/move constructors and assignment operator to Material

  17. Add collision_detector to dart physics config

  18. Fix cpack now that project name has version number

  19. Animation tension

  20. Add “geometry” for sonar collision shape

  21. Fix Gui copy constructor

  22. Sensor DOM

libsdformat 7.0

libsdformat 7.0.0 (xxxx-xx-xx)

  1. Build Utils_TEST with Utils.cc explicitly passed since its symbols are not visible.

  2. Parse urdf files to SDFormat 1.5 instead of 1.4 to avoid use_parent_model_frame.

  3. Set camera intrinsics axis skew (s) default value to 0

  4. Avoid hardcoding /machine:x64 flag on 64-bit on MSVC with CMake >= 3.5.

  5. Prevent duplicate use_parent_model_frame tags during file conversion.

  6. Backport inline versioned namespace from version 8.

  7. Backport cmake and SDFormat spec changes from version 8.

  8. Fix gz library path on macOS.

  9. Preserve XML elements that are not part of the SDF specification.

  10. Embed SDF specification files directly in libsdformat.so.

  11. Removed support for SDF spec versions 1.0 and 1.2

  12. SDF DOM: Additions to the document object model.

  13. SDF DOM: Add Element() accessor to Gui, JointAxis and World classes.

  14. Adds the equalivent of gz sdf -d to libsdformat. The command line option will print the full description of the SDF spec.

  15. Adds the equalivent of gz sdf -p to libsdformat. The command line option will convert and print the specified SDFormat file.

  16. SDF DOM: Additions to the document object model.

libsdformat 6.0

libsdformat 6.3.1 (2021-07-06)

  1. Fix flattening logic for nested model names

  2. Translate poses of nested models inside other nested models

libsdformat 6.3.0 (2021-06-21)

  1. Move recursiveSameTypeUniqueNames from gz.cc to parser.cc and make public.

  2. Parse rpyOffset as radians

  3. Parse urdf files to SDFormat 1.5 instead of 1.4 to avoid use_parent_model_frame.

  4. Set camera intrinsics axis skew (s) default value to 0

  5. Avoid hardcoding /machine:x64 flag on 64-bit on MSVC with CMake >= 3.5.

  6. Fix gz library path on macOS.

  7. Use gz sdf --check to check sibling elements of the same type for non-unique names.

  8. Converter: remove all matching elements specified by <remove> tag.

libsdformat 6.2.0 (2019-01-17)

  1. Add geometry for sonar collision shape

  2. Add camera intrinsics (fx, fy, cx, cy, s)

  3. Add actor trajectory tension parameter

libsdformat 6.1.0 (2018-10-04)

  1. Add collision_detector to dart physics config

  2. Fix Windows support for libsdformat6

  3. root.sdf: default SDFormat version 1.6

  4. parser_urdf: print value of highstop instead of pointer address

  5. Tweak error output so jenkins doesn’t think it’s a compiler warning

libsdformat 6.0.0 (2018-01-25)

  1. SDF DOM: Added a document object model.

  2. Add simplified readFile function.

  3. Remove boost::lexical cast instances

  4. Remove boost regex and iostreams as dependencies

  5. Change certain error checks from asserts to throwing sdf::AssertionInternalError, which is more appropriate for a library.

  6. Updated the internal copy of urdfdom to 1.0, removing more of boost.

  7. urdfdom 1.0 is now required on all platforms.

  8. Remove boost filesystem as a dependency

  9. Deprecated sdf::Color, and switch to use gz::math::Color

libsdformat 5.x

libsdformat 5.x.x (2017-xx-xx)

libsdformat 5.3.0 (2017-11-13)

  1. Added wrapper around root SDF for an SDF element

  2. Add ODE parallelization parameters: threaded islands and position correction

  3. surface.sdf: expand documentation of friction and slip coefficients

  4. Add preserveFixedJoint option to the URDF parser

  5. Add light as child of link

libsdformat 5.2.0 (2017-08-03)

  1. Added a block for DART-specific physics properties.

  2. Fix parser to read plugin child elements within an <include>

  3. Choosing models with more recent SDFormat version with <include> tag

  4. Added <category_bitmask> to 1.6 surface contact parameters

  5. Support light insertion in state

  6. Case insensitive boolean strings

  7. Enable coverage testing

  8. Add friction_model parameter to ode solver

  9. Add cmake @PKG_NAME@_LIBRARY_DIRS variable to cmake config file

libsdformat 5.1.0 (2017-02-22)

  1. Fixed sdf::convertFile and sdf::convertString always converting to latest version

  2. Added back the ability to set SDFormat version at runtime

libsdformat 5.0.0 (2017-01-25)

  1. Removed libsdformat 4 deprecations

  2. Added an example

  3. Move functions that use TinyXML classes in private headers A contribution from Silvio Traversaro

  4. Fix issues found by the Coverity tool A contribution from Olivier Crave

  5. Add tag to allow for specification of initial joint position

  6. Require ignition-math3 as dependency

  7. Simplifier way of retrieving a value from SDF using Get

libsdformat 4.0

libsdformat 4.x.x (2017-xx-xx)

libsdformat 4.4.0 (2017-10-26)

  1. Add ODE parallelization parameters: threaded islands and position correction

  2. surface.sdf: expand documentation of friction and slip coefficients

  3. Add preserveFixedJoint option to the URDF parser

  4. Add light as child of link

libsdformat 4.3.2 (2017-07-19)

  1. Add documentation for Element::GetFirstElement() and Element::GetNextElement()

  2. Fix parser to read plugin child elements within an <include>

libsdformat 4.3.1 (2017-03-24)

  1. Fix segmentation Fault in sdf::getBestSupportedModelVersion

libsdformat 4.3.0 (2017-03-20)

  1. Choosing models with more recent SDFormat version with <include> tag

  2. Added <category_bitmask> to 1.6 surface contact parameters

  3. Support light insertion in state

  4. Case insensitive boolean strings

  5. Enable coverage testing

  6. Add friction_model parameter to ode solver

  7. Added sampling parameter to <heightmap> SDF element.

  8. Added Migration guide

  9. Add cmake @PKG_NAME@_LIBRARY_DIRS variable to cmake config file

libsdformat 4.2.0 (2016-10-10)

  1. Added tag to specify ODE friction model.

  2. Fix URDF to SDF self_collide bug.

  3. Added IMU orientation specification to SDF.

libsdformat 4.1.1 (2016-07-08)

  1. Added documentation and animation to <actor> element.

  2. Added tag to specify initial joint position

libsdformat 4.1.0 (2016-04-01)

  1. Added SDF conversion functions to parser including sdf::convertFile and sdf::convertString.

  2. Added an upload script

libsdformat 4.0.0 (2015-01-12)

  1. Boost pointers and boost::function in the public API have been replaced by their std::equivalents (C++11 standard)

  2. Move gravity and magnetic_field tags from physics to world

  3. Switch lump link prefix from lump:: to lump_

  4. New element. A contribution from Olivier Crave

  5. Add scale to model state

  6. Use stof functions to parse hex strings as floating point params. A contribution from Rich Mattes

  7. Fix memory leaks. A contribution from Silvio Traversaro

  8. Update SDF to version 1.6: new style for representing the noise properties of an imu

libsdformat 3.0

libsdformat 3.X.X (201X-XX-XX)

  1. Improve precision of floating point parameters

libsdformat 3.7.0 (2015-11-20)

  1. Add spring pass through for sdf3

  2. Support frame specification in SDF

  3. Remove boost from SDFExtension

libsdformat 3.6.0 (2015-10-27)

  1. Add light state

  2. redo pull request #222 for sdf3 branch

  3. Fix links in API documentation

libsdformat 3.5.0 (2015-10-07)

  1. Camera lens description (Replaces #213)

  2. Fix shared pointer reference loop in Element and memory leak (#104)

libsdformat 3.4.0 (2015-10-05)

  1. Support nested model states

  2. Cleaner way to set SDF_PATH for tests

libsdformat 3.3.0 (2015-09-15)

  1. Windows Boost linking errors

  2. Nested SDF -> sdf3

  3. Pointer types

  4. Torsional friction default surface radius not infinity

libsdformat 3.2.2 (2015-08-24)

  1. Added battery element (contribution from Olivier Crave)

  2. Torsional friction backport

  3. Allow Visual Studio 2015

libsdformat 3.1.1 (2015-08-03)

  1. Fix tinyxml linking error

libsdformat 3.1.0 (2015-08-02)

  1. Added logical camera sensor to SDF

libsdformat 3.0.0 (2015-07-24)

  1. Added battery to SDF

  2. Added altimeter sensor to SDF

  3. Added magnetometer sensor to SDF

  4. Fix detection of XML parsing errors

  5. Support for fixed joints

  6. Adding iterations to state

  7. Convert to use gz-math

  8. Add world origin to scene

  9. Fix collide bitmask

  10. Adding meta information to visuals

  11. Add projection type to gui camera

  12. Fix print description to include attribute description

  13. Add -std=c++11 flag to sdf_config.cmake.in and sdformat.pc.in, needed by downstream code

  14. Added boost::any accessor for Param and Element

  15. Remove tinyxml from dependency list

  16. Added self_collide element for model

  17. Added a collision bitmask field to sdf-1.5 and c++11 support

  18. Fix problems with latin locales and decimal numbers (issue #60)

libsdformat 2.x

  1. rename cfm_damping –> implicit_spring_damper

  2. add gear_ratio and reference_body for gearbox joint.

  3. Update joint stop stiffness and dissipation

  4. Support for GNUInstallDirs

  5. <use_true_size> element used by DEM heightmaps

  6. Do not export urdf symbols in SDFormat 1.4

  7. adding deformable properties per issue #32

  8. Support to use external URDF

  9. Add lighting element to visual

  10. SDF 1.5: add flag to fix joint axis frame #43 (gazebo issue 494)

  11. Implement SDF_PROTOCOL_VERSION (issue #51)

  12. Port libsdformat to compile on Windows (MSVC)

  13. Separate material properties in material.sdf

  14. Add road textures (repeat pull request #104 for sdf_2.0)

  15. Add Extruded Polylines as a model

  16. Added polyline for sdf_2.0

  17. Add spring_reference and spring_stiffness tags to joint axis dynamics

  18. Fix actor static

  19. New element

  20. Add camera distortion element

  21. Inclusion of magnetic field strength sensor

  22. Properly add URDF gazebo extensions blobs to SDF joint elements

  23. Allow gui plugins to be specified in SDF

  24. Backport magnetometer

  25. Add flag for MOI rescaling to SDFormat 1.4

  26. Parse urdf joint friction parameters, add corresponding test

  27. Allow reading of boolean values from plugin elements.

  28. Implement generation of XML Schema files (issue #2)

  29. Fix build for OS X 10.10

  30. Improve performance in loading SDF elements

  31. Added urdf gazebo extension option to disable fixed joint lumping

  32. Support urdfdom 0.3 (alternative to pull request #122)

  33. Update list of supported joint types

  34. Ignore unknown elements

  35. Physics preset attributes

  36. Backport fix for latin locales (pull request #147)

libsdformat 1.4

libsdformat 1.4.8 (2013-09-06)

  1. Fix inertia transformations when reducing fixed joints in URDF

  2. Add <use_terrain_paging> element to support terrain paging in gazebo

  3. Further reduce console output when using URDF models

libsdformat 1.4.7 (2013-08-22)

  1. Direct console messages to std_err

libsdformat 1.4.6 (2013-08-20)

  1. Add tags for GPS sensor and sensor noise

  2. Add tags for wireless transmitter/receiver models

  3. Add tags for playback of audio files in Gazebo

  4. Add tags for simbody physics parameters

  5. Log messages to a file, reduce console output

  6. Generalize ode’s <provide_feedback> element

  7. Various bug, style and test fixes

libsdformat 1.4.5 (2013-07-23)

  1. Deprecated Gazebo’s internal SDF code

  2. Use templatized Get functions for retrieving values from SDF files

  3. Removed dependency on ROS