Drake v0.22.0

Back to Release Notes

Announcements

  • This is the final release to support RigidBodyPlant and the drake “attic”. That code is scheduled for removal on 2020-09-01 (#12158).

Breaking changes since v0.21.0

  • drake::multibody::Joint gained a new pure virtual method do_set_default_positions (#13757)
  • pydrake’s deprecation infrastructure now must always be given a removal date, either embedded in the message or via the new date= kwarg (#13730)
  • Several stale forks of SDFormat models were removed from the Atlas example (#13758)
  • Rename libspdlog.so to libdrake_spdlog.so (#13698)

Changes since v0.21.0:

Dynamical Systems

New features

  • Add Depth16U and Grey8U support to ImageWriter (#13871)
  • Add port names to InverseDynamicsController (#13879)

Fixes

  • Simulator warns about calls AdvanceTo after externally modifying the Context’s time without an intervening Initialize; this will be promoted to an exception in a future release (#13851)
  • Extract DiagramState into its own file (#13839)

Mathematical Program

New features

  • Add GetKnownSolvers (#13821)
  • Add three examples of sum-of-squares optimization (#13719, #13746, #13759, #13765)
  • MathematicalProgramResult::GetSolution also works for a polynomial (#13748)
  • Many improvements to ChebyshevPolynomial, ChebyshevBasisElement, and PolynomialBasisElement (#13751, #13796, #13845, #13856)

Fixes

  • Fix out-of-bounds matrix access in AutoDiff QuadraticCost (#13752)

Multibody Dynamics

New features

Fixes

  • Make contact results deterministic (#13737)
  • Contact results will differ slightly from prior releases (#13734)
  • Joint::set_default_positions updates the underlying mobilizer (#13757)
  • Fix formatting in TAMSI error message (#13802)
  • Never write to $HOME/.sdformat/sdformat.log (#13850)

Tutorials and examples

  • Use planar visualization in the ManipulationStation demos (#13755)
  • Add example of a cloth system modeled as a collection of springs (#13714)

Miscellaneous features and fixes

  • Reformat all XML files with xmllint (#13768)
  • Upgrade all models to use SDFormat 1.7 syntax (#13772, #13774, #13758)
  • drake-visualizer: Mitigate z-fighting between display grid and ground plane (#13829)
  • meshcat: Add support for “planar visualization” (#13755, #13836, #13857)
  • meshcat: Pass kwargs through MeshcatVisualizer (#13848)
  • yaml: Add YamlWriteArchive::EraseMatchingMaps (#13699)

pydrake bindings

New features

  • Redirect drake’s logs to the Python logging module instead of stderr (#13568, #13781)
  • Add PoseSliders system for Jupyter widgets integration (#13849)
  • Deprecation annotations may pass a date=YYYY-MM-DD kwarg (#13730)

Fixes

  • Fix ConnectDrakeVisualizer keep-alive behavior (#13868)

Newly bound

  • pydrake.common.eigen_geometry.Quaternion.slerp (#13810)
  • pydrake.systems.framework.LeafOutputPort.disable_caching_by_default (#13881)

Build system and dependencies

  • Add preliminary support for bootstrapping Google Colab (#13697, #13795)
  • Rename libspdlog.so to libdrake_spdlog.so (#13698)
  • Upgrade recommended Bazel version to 3.4 (#13743)
  • Upgrade buildifier to latest release 3.4.0 (#13791)
  • Upgrade fcl to latest commit (#13787)
  • Upgrade fmt to latest release 7.0.2 (#13788)
  • Upgrade meshcat to latest commit (#13755)
  • Upgrade meshcat_python to latest commit (#13755, #13806)
  • Upgrade models to latest commit (#13786)
  • Upgrade pybind11 fork to latest commit (#13801)
  • Upgrade ros_xacro to latest release 1.13.6 (#13790)
  • Upgrade scs to latest release 2.1.2 (#13789)
  • Upgrade styleguide latest commit (#13804)
  • Do not install gl_renderer’s private headers (#13807)
  • In Docker images, drake-visualizer is not supported (#13764)
  • Prune unwanted dependencies (#13753, #13827, #13830)
    • The install_prereqs script for source builds now offers a –without-test-only option to install only the dependencies needed to compile and install Drake, omitting dependencies only required for testing.

Newly-deprecated APIs

  • drake::math::Slerp (#13810)
  • examples/irb140/urdf/** (#13831)
  • examples/kuka_iiwa_arm/models/objects/big_robot_toy.urdf (#13831)
  • drake::systems::Simulator::AdvanceTo will throw exception in a future release if the Context’s time is externally changed without an intervening Initialize (#13851)

Removal of deprecated items

  • drake::Polynomial::IsApprox (#13785)
  • drake::systems::Simulator::reset_integrator (#13785)
  • drake::trajectories::PiecewisePolynomial<T>::PolynomialType (#13785)
  • pydrake.polynomial.Polynomial.IsApprox (#13785)
  • pydrake.systems.analysis.Simulator.reset_integrator (#13785)
  • pydrake.systems.framework.AbstractValue (#13785)
  • pydrake.systems.framework.Value (#13785)
  • The bitbucket.bzl macros (#13785)
  • The tinydir external (#13785)

Notes

This release provides pre-compiled binaries named drake-20200817-{bionic|focal|mac}.tar.gz. See Nightly 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.