---
title: Drake v0.22.0
date: 2020-08-17
released: 2020-08-17
---

# Announcements


* This is the final release to support RigidBodyPlant and the drake "attic".
  That code is scheduled for removal on 2020-09-01 ([#12158][_#12158]).

# Breaking changes since v0.21.0

* drake::multibody::Joint gained a new pure virtual method do_set_default_positions ([#13757][_#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][_#13730])
* Several stale forks of SDFormat models were removed from the Atlas example ([#13758][_#13758])
* Rename libspdlog.so to libdrake_spdlog.so ([#13698][_#13698])

# Changes since v0.21.0:

## Dynamical Systems

New features

* Add Depth16U and Grey8U support to ImageWriter ([#13871][_#13871])
* Add port names to InverseDynamicsController ([#13879][_#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][_#13851])
* Extract DiagramState into its own file ([#13839][_#13839])

## Mathematical Program

New features

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

Fixes

* Fix out-of-bounds matrix access in AutoDiff QuadraticCost ([#13752][_#13752])

## Multibody Dynamics

New features

* Add PlanarMobilizer and PlanarJoint ([#13711][_#13711], [#13747][_#13747], [#13813][_#13813], [#13824][_#13824])
* Add support for parsing SDF and URDF from strings ([#13814][_#13814], [#13826][_#13826])

Fixes

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

## Tutorials and examples


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

## Miscellaneous features and fixes


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

## pydrake bindings

New features

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

Fixes

* Fix ConnectDrakeVisualizer keep-alive behavior ([#13868][_#13868])

Newly bound

* pydrake.common.eigen_geometry.Quaternion.slerp ([#13810][_#13810])
* pydrake.systems.framework.LeafOutputPort.disable_caching_by_default ([#13881][_#13881])

## Build system and dependencies


* Add preliminary support for bootstrapping Google Colab ([#13697][_#13697], [#13795][_#13795])
* Rename libspdlog.so to libdrake_spdlog.so ([#13698][_#13698])
* Upgrade recommended Bazel version to 3.4 ([#13743][_#13743])
* Upgrade buildifier to latest release 3.4.0 ([#13791][_#13791])
* Upgrade fcl to latest commit ([#13787][_#13787])
* Upgrade fmt to latest release 7.0.2 ([#13788][_#13788])
* Upgrade meshcat to latest commit ([#13755][_#13755])
* Upgrade meshcat_python to latest commit ([#13755][_#13755], [#13806][_#13806])
* Upgrade models to latest commit ([#13786][_#13786])
* Upgrade pybind11 fork to latest commit ([#13801][_#13801])
* Upgrade ros_xacro to latest release 1.13.6 ([#13790][_#13790])
* Upgrade scs to latest release 2.1.2 ([#13789][_#13789])
* Upgrade styleguide latest commit ([#13804][_#13804])
* Do not install gl_renderer's private headers ([#13807][_#13807])
* In Docker images, drake-visualizer is not supported ([#13764][_#13764])
* Prune unwanted dependencies ([#13753][_#13753], [#13827][_#13827], [#13830][_#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][_#13810])
* examples/irb140/urdf/** ([#13831][_#13831])
* examples/kuka_iiwa_arm/models/objects/big_robot_toy.urdf ([#13831][_#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][_#13851])

## Removal of deprecated items

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

# Notes

This release provides
[pre-compiled binaries](https://github.com/RobotLocomotion/drake/releases/tag/v0.22.0)
named ``drake-20200817-{bionic|focal|mac}.tar.gz``. See
[Stable Releases](/from_binary.html#stable-releases) for instructions on how to use them.

Drake binary releases incorporate a pre-compiled version of
[SNOPT](https://ccom.ucsd.edu/~optimizers/solvers/snopt/) as part of the
[Mathematical Program toolbox](https://drake.mit.edu/doxygen_cxx/group__solvers.html).
Thanks to Philip E. Gill and Elizabeth Wong for their kind support.

[_#12158]: https://github.com/RobotLocomotion/drake/pull/12158
[_#13568]: https://github.com/RobotLocomotion/drake/pull/13568
[_#13697]: https://github.com/RobotLocomotion/drake/pull/13697
[_#13698]: https://github.com/RobotLocomotion/drake/pull/13698
[_#13699]: https://github.com/RobotLocomotion/drake/pull/13699
[_#13711]: https://github.com/RobotLocomotion/drake/pull/13711
[_#13714]: https://github.com/RobotLocomotion/drake/pull/13714
[_#13719]: https://github.com/RobotLocomotion/drake/pull/13719
[_#13730]: https://github.com/RobotLocomotion/drake/pull/13730
[_#13734]: https://github.com/RobotLocomotion/drake/pull/13734
[_#13737]: https://github.com/RobotLocomotion/drake/pull/13737
[_#13743]: https://github.com/RobotLocomotion/drake/pull/13743
[_#13746]: https://github.com/RobotLocomotion/drake/pull/13746
[_#13747]: https://github.com/RobotLocomotion/drake/pull/13747
[_#13748]: https://github.com/RobotLocomotion/drake/pull/13748
[_#13751]: https://github.com/RobotLocomotion/drake/pull/13751
[_#13752]: https://github.com/RobotLocomotion/drake/pull/13752
[_#13753]: https://github.com/RobotLocomotion/drake/pull/13753
[_#13755]: https://github.com/RobotLocomotion/drake/pull/13755
[_#13757]: https://github.com/RobotLocomotion/drake/pull/13757
[_#13758]: https://github.com/RobotLocomotion/drake/pull/13758
[_#13759]: https://github.com/RobotLocomotion/drake/pull/13759
[_#13764]: https://github.com/RobotLocomotion/drake/pull/13764
[_#13765]: https://github.com/RobotLocomotion/drake/pull/13765
[_#13768]: https://github.com/RobotLocomotion/drake/pull/13768
[_#13772]: https://github.com/RobotLocomotion/drake/pull/13772
[_#13774]: https://github.com/RobotLocomotion/drake/pull/13774
[_#13781]: https://github.com/RobotLocomotion/drake/pull/13781
[_#13785]: https://github.com/RobotLocomotion/drake/pull/13785
[_#13786]: https://github.com/RobotLocomotion/drake/pull/13786
[_#13787]: https://github.com/RobotLocomotion/drake/pull/13787
[_#13788]: https://github.com/RobotLocomotion/drake/pull/13788
[_#13789]: https://github.com/RobotLocomotion/drake/pull/13789
[_#13790]: https://github.com/RobotLocomotion/drake/pull/13790
[_#13791]: https://github.com/RobotLocomotion/drake/pull/13791
[_#13795]: https://github.com/RobotLocomotion/drake/pull/13795
[_#13796]: https://github.com/RobotLocomotion/drake/pull/13796
[_#13801]: https://github.com/RobotLocomotion/drake/pull/13801
[_#13802]: https://github.com/RobotLocomotion/drake/pull/13802
[_#13804]: https://github.com/RobotLocomotion/drake/pull/13804
[_#13806]: https://github.com/RobotLocomotion/drake/pull/13806
[_#13807]: https://github.com/RobotLocomotion/drake/pull/13807
[_#13810]: https://github.com/RobotLocomotion/drake/pull/13810
[_#13813]: https://github.com/RobotLocomotion/drake/pull/13813
[_#13814]: https://github.com/RobotLocomotion/drake/pull/13814
[_#13821]: https://github.com/RobotLocomotion/drake/pull/13821
[_#13824]: https://github.com/RobotLocomotion/drake/pull/13824
[_#13826]: https://github.com/RobotLocomotion/drake/pull/13826
[_#13827]: https://github.com/RobotLocomotion/drake/pull/13827
[_#13829]: https://github.com/RobotLocomotion/drake/pull/13829
[_#13830]: https://github.com/RobotLocomotion/drake/pull/13830
[_#13831]: https://github.com/RobotLocomotion/drake/pull/13831
[_#13836]: https://github.com/RobotLocomotion/drake/pull/13836
[_#13839]: https://github.com/RobotLocomotion/drake/pull/13839
[_#13845]: https://github.com/RobotLocomotion/drake/pull/13845
[_#13848]: https://github.com/RobotLocomotion/drake/pull/13848
[_#13849]: https://github.com/RobotLocomotion/drake/pull/13849
[_#13850]: https://github.com/RobotLocomotion/drake/pull/13850
[_#13851]: https://github.com/RobotLocomotion/drake/pull/13851
[_#13856]: https://github.com/RobotLocomotion/drake/pull/13856
[_#13857]: https://github.com/RobotLocomotion/drake/pull/13857
[_#13868]: https://github.com/RobotLocomotion/drake/pull/13868
[_#13871]: https://github.com/RobotLocomotion/drake/pull/13871
[_#13879]: https://github.com/RobotLocomotion/drake/pull/13879
[_#13881]: https://github.com/RobotLocomotion/drake/pull/13881

{% comment %}
Current oldest_commit e6aec974fbca64751e0d35a3eafc739d059e9275 (inclusive).
Current newest_commit 0de592fdd53d55132b45a7a7c86b979a99f561e4 (inclusive).
{% endcomment %}
