Drake v0.28.0

Back to Release Notes

Announcements

  • We are pleased to announce a major update to the Drake website, with clearer and more modern design. We welcome any and all feedback and suggestions for how we can keep making it even better in the future!

  • On macOS, Drake now supports Python 3.9 (and no longer supports 3.8).

Breaking changes since v0.27.0

  • A major bug fix for Systems with high-rate timed events (such as LCM publishers) (#14663)
    • Such systems in the past may have skipped time steps (#12620).
    • With this change they will no longer miss those time steps, which may appear to the user as a performance regression or small behaviour change.
  • The upgrade to libsdformat 10.3.0 (#14705) means that malformed <pose/> elements will now throw an error rather than having erroneous values replaced with zero (e.g. you only specify 5 floats instead of the required 6, or you use ${pi / 4} which is not valid in raw SDFormat).
    • You will need to ensure that any malformed <pose/> elements are fixed.

Changes since v0.27.0

Dynamical Systems

New features

  • None

Fixes

  • Evaluating fixed input ports with cloned contexts no longer segfaults (#14701)
  • Earlier and more explicit checks that a Context matches its System (#14738)

Mathematical Program

New features

  • None

Fixes

  • None

Multibody Dynamics

New features

  • Add capsule mesh (#14642)
  • Add capsule field (#14664)
  • Allow RenderEngine implementations that require warm starting (#14677)

Fixes

  • Give better error when a joint has multiple mobilizers (typically caused by a user typo when creating the joint) (#14655)
  • Give better error for unconnected input ports (#14773)
  • All systems::multibody::MultibodyPlant APIs that previously took const std::string& now use std::string_view instead. This does not require any changes to callers, as the types convert transparently. (#14719)

Tutorials and examples

  • Add missing tutorials to build file (#14722)
  • Add LCM period argument to AllegroCommandReceiver’s constructor (#14732)
  • Do not use yaml.CLoader in acrobot example (#14750)

Miscellaneous features and fixes

  • Fix C++20 compatibility (#14648)
  • Improve AbstractValue error message suggestions (#14709)

pydrake bindings

New features

  • None

Fixes

  • Fix the jupyter runAll mechanism when using process_ipywidget_events (#14742)

Newly bound

  • None

Build system

  • Switch to Python 3.9 on macOS (#14605)
  • Allow users to build object code using -std=c++20 mode without angering libclang (#14669)
  • Use correct suffix for Python C extensions (#14730)

Build dependencies

  • Add CLP as a direct dependency, in preparation for adding it as a MathematicalProgram solver; previously, it was was only an indirect dependency via dReal (#14729)
  • Upgrade recommended Bazel version to 4.0 (#14717)
  • Upgrade common_robotics_utilities to latest commit (#14728)
  • Upgrade ghc_filesystem to latest release 1.5.0 (#14711)
  • Upgrade intel_realsense_ros to latest release 2.2.22 (#14713)
  • Upgrade meshcat latest commit (#14715)
  • Upgrade meshcat_python to latest commit (#14715)
  • Upgrade osqp to latest release 0.6.2 (#14714)
  • Upgrade pybind11 fork to latest commit (#14225)
  • Upgrade qdldl to latest release 0.1.5 (#14714)
  • Upgrade ros_xacro to latest release 1.13.10 (#14712)
  • Upgrade sdformat to latest release 10.3.0 (#14705)
  • Upgrade tinyobjloader to new upstream repository and latest commit (#14656)
  • Upgrade voxelized_geometry_tools to latest commit (#14728)

Newly-deprecated APIs

  • The @tinyxml external is being removed from Drake on or after 2021-07-01. Downstream projects should add it to their own WORKSPACE if needed. (#14705)

Removal of deprecated items

  • None

Notes

This release provides pre-compiled binaries named drake-20210315-{bionic|focal|mac}.tar.gz. See Stable Releases for instructions on how to use them.

Drake binary releases incorporate a pre-compiled version of SNOPT as part of the Mathematical Program toolbox. Thanks to Philip E. Gill and Elizabeth Wong for their kind support.