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
- Add PlanarMobilizer and PlanarJoint (#13711, #13747, #13813, #13824)
- Add support for parsing SDF and URDF from strings (#13814, #13826)
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
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.