Announcements
- Drake now supports Clang 12 on Ubuntu, and no longer supports Clang 9 (#16937).
- Drake now offers a MultibodyPlant simulation tutorial (#17148).
- Drake’s multibody model parsers now do a better job of warning about ignored
or unsupported input (#16953, #17017, #17060,
#17101).
- In SDFormat, some syntax problems which used to warn now issue errors.
- In addition, parser warnings can be optionally promoted to errors; see
Parser::SetStrictParsing
.
- Drake’s parsing for some mathematical programs is now much faster, including parsing large amount of linear constraints in the symbolic form, and constructing sum-of-squares (sos) problems.
Breaking changes since v1.2.0
- None
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.2.0
Dynamical Systems
New features
- None
Fixes
- Add controllability and observability for discrete-time systems (#17029)
- Improve error messages for planning and control input port selection (#17191)
Mathematical Program
New features and fixes
- Mathematical Program
- AddQuadraticAsRotatedLorentzConeConstraint takes optional psd_tol (#17125)
- Allow the user to specify the print out name of the Gram matrix (#17114)
- AddEqualityConstraintBetweenPolynomials now returns linear equality constraints (#17104)
- Make2NormSquaredCost should set convex flag to true (#17074)
- Add LinearConstraint::RemoveTinyCoefficient (#17182)
- Solvers
- Symbolics
- Add Polynomial::Expand (#17156)
- Determine if a polynomial is even or odd (#17021)
- Polynomial evaluates a batch of indeterminates (#17065)
- Speed up MathematicalProgram::NewFreePolynomial (#17011)
- Speed up computing polynomials using negation instead of subtraction (#17013)
- Speed up operator+= and operator-= of symbolic::Variables by returning a reference (#17018)
- Monomial.ToExpression.is_expanded is true (#17201)
- Geometry
- Exclude edges with
phi=0
constraint from optimization (#17046) - Add PontryaginDifference to HPolyhedron (#17056)
- Make
IrisOptions.enable_ibex = false
by default (#17198) - Clean up vertex labels formatting in
GraphOfConvexSets::GetGraphvizString
and add missing default forresult
in the python binding (#17190) - Fix GetSolution for
x_v
in GraphOfConvexSets (#17199)
- Exclude edges with
Multibody Dynamics and Geometry
New features
- Add hydroelastic force and moment vector visualization (#16913)
- Add API to set strict parsing (#17017)
- Add APIs to set the default joint damping (#17151)
- Add
Joint
API to retrieve viscous damping (#17019) - Implement a
Wing
class to provide basic aerodynamics (#17027, #17127) - Move
DifferentiableNorm
function tomath
(#17127) - Create methods for relative spatial acceleration to parallel spatial velocity (#17117)
Fixes
- Warn about unsupported URDF features and modify installed example files to remove unsupported elements that provoke warnings (#16953)
- Emit errors for invalid SDFormat syntax instead of warnings (#17060)
- Warn about unsupported SDFormat features and modify installed example files to remove unsupported elements that provoke warnings (#17101)
- Warn about unsupported joint actuators (#17178)
- Route package deprecations into the diagnostic channel (#17047)
- Prefer math::LinearSolver to plain eigen solvers when using autodiff (#17038, #17057)
- Change actuation port in MultibodyPlant not associated with any model instance to refer to all actuation ports instead of the only actation port (#17059, #17107)
- Improve error message for algebraic loops involving MultibodyPlant and non-contact forces (#17168)
- Move RenderEngineVtk into its own directory (#17169)
- Remove console spam in Run with timeout in meshcat (#17192)
- Remove StartMeshcat support for Google Colab Python (#16949)
Tutorials and examples
- Add MultibodyPlant simulation tutorial (#17148)
- In examples, provide default values for actuation input ports (#17025, #17145)
- Previously, the AcrobotPlant example crashed if the input port was not properly connected.
Miscellaneous features and fixes
- None
pydrake bindings
New features
- None
Fixes
- Add missing
py::return_value_policy::copy
on various bound attributes (#17126) - Changing Python logging level also changes C++ level (#17069)
- When using nicely formatted logging, emit “TRACE” not “Level 5” (#17069)
Newly bound
- pydrake.geometry.Meshcat.OrthographicCamera (#17008)
- pydrake.geometry.Meshcat.PerspectiveCamera (#17008)
- pydrake.geometry.Meshcat.SetCamera (#17008)
- pydrake.math.ToSymmetricMatrixFromLowerTriangularColumns (#17111)
- pydrake.multibody.Parser.SetStrictParsing (#17181)
- pydrake.multibody.plant.MultibodyPlant.GetRigidBodyByName (#17042)
- pydrake.solvers.mathematicalprogram.ClearVariableScaling (#17200)
- pydrake.solvers.mathematicalprogram.GetVariableScaling (#17200)
- pydrake.solvers.mathematicalprogram.SetVariableScaling (#17200)
- pydrake.symbolic.Polynomial.EqualToAfterExpansion (#17128)
- pydrake.systems.analysis.RegionOfAttraction.use_implicit_dynamics (#17032)
Build system
- Preliminary support for macOS native ARM64 is underway (#17009)
- Failure to run install_prereqs produces an error (#17082, #17062)
- Add Bazel config for compiler selection (#17043)
- Fix some undefined behavior bugs identified by Clang 12 (#17094, #17095, #17096, #17102, #17115, #17133)
- Remove support for Binder (#17158)
Build dependencies
- Upgrade to Clang 12 on Ubuntu (#16937)
- Upgrade abseil_cpp_internal to latest commit (#17097)
- Upgrade buildifier to latest release 5.1.0 (#17097)
- Upgrade common_robotics_utilities to latest commit (#17097)
- Upgrade dm_control to latest commit (#17097)
- Upgrade ghc_filesystem to latest release v1.5.12 (#17097)
- Upgrade rules_pkg to latest release 0.7.0 (#17097)
- Upgrade rules_python to latest release 0.8.1 (#17097)
- Upgrade stduuid to latest commit (#17097)
- Upgrade uwebsockets to latest release v20.14.0 (#17097)
- Upgrade voxelized_geometry_tools to latest commit (#17097)
Newly-deprecated APIs
- Drake no longer supports Clang 9 (#16937)
- pydrake.common.set_log_level (#17069)
- pydrake.systems.meshcat_visualizer.MeshcatPointCloudVisualizer (#17194)
- Use pydrake.geometry.MeshcatPointCloudVisualizer instead.
- pydrake.systems.meshcat_visualizer.MeshcatVisualizer (#17194)
- Use pydrake.geometry.MeshcatVisualizer instead.
- drake::geometry::render::RenderEngineVtk (#17169)
- Use drake::geometry::MakeRenderEngineVtk instead.
- drake::geometry::render::RenderEngineVtkParams (#17169)
- Use drake::geometry::RenderEngineVtkParms instead.
- drake::yaml::YamlReadArchive (#17084)
- drake::yaml::YamlWriteArchive (#17084)
- drake::symbolic::Polynomial::EqualToAfterExpansion (#17202)
- Use
my_polynomial.Expand().EqualTo(other_polynomial.Expand())
instead.
- Use
Removal of deprecated items
- drake::manipulation::perception::PoseSmoother (#16343, #17076)
- drake::multibody::ContactResultsToMeshcat (#16437, #17076)
- drake::multibody::ContactResultsToMeshcatParams (#16437, #17076)
- drake::multibody::PackageMap::PopulateUpstreamToDrake (#16434, #17076)
- drake::solvers::MathematicalProgram::AddMaximizeLogDeterminantSymmetricMatrixCost (#16309, #17076)
- drake::solvers::MathematicalProgram::NewNonnegativePolynomial (#16375, #17076)
- drake::systems::RandomSourced alias (#16359, #17076)
- drake::systems::trajectory_optimization::MultipleShooting no longer inherits from drake::solvers::MathematicalProgram (#16333, #17076)
Notes
This release provides pre-compiled binaries named
drake-20220517-{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.