---
title: Drake v1.1.0
date: 2022-03-28
released: 2022-03-28
---

# Announcements

* Drake's binary releases currently depend on scipy (via apt on Ubuntu, or brew
  on macOS); that dependency is now deprecated and will be removed on or after
  2022-07-01. Users who want to take advantage of pydrake's scipy.sparse
  matrices after that date need to add their own dependency on scipy to their
  project directly. (There are exceedingly few uses of sparse matrices in
  pydrake, so most users need not take any action.)
* Reminder: Drake will no longer support Ubuntu 18.04 "Bionic" as of
  April 1st, 2022 ([#13391][_#13391]).
  * Ubuntu users should plan to upgrade to Ubuntu 20.04 "Focal" before that
    time.
  * Drake will add support for Ubuntu 22.04 "Jammy" as soon as possible
    after it's release date, most likely by June 1st, 2022.
  * The last published package for Ubuntu 18.04 (Bionic) is available here:
    * [https://github.com/RobotLocomotion/drake/releases/tag/v1.1.0](https://github.com/RobotLocomotion/drake/releases/tag/v1.1.0)
* Reminder: Drake will no longer support Python 3.6 or Python 3.7 of
  April 1st, 2022 ([#13391][_#13391]).
  * Ubuntu users should plan to upgrade to Ubuntu 20.04 "Focal" before that
    time (in order to switch to Python 3.8 or Python 3.9).
  * macOS users already use Python 3.9, so will not be affected.
* Reminder: The use of ``drake-visualizer`` on macOS is deprecated and will be
  removed from Drake on or after April 1st, 2022 ([#16386][_#16386]).
  * On Ubuntu 20.04, support of ``drake-visualizer`` remains intact.
  * On Ubuntu 18.04, support of ``drake-visualizer`` will remain intact as
    long as our overall support of 18.04 (which ends on April 1st, 2022).

# Breaking changes since v1.0.0

* None

Refer to our [Drake Stability Guidelines](/stable.html) for our policy
on API changes.

# Changes since v1.0.0

## Dynamical Systems

<!-- <relnotes for systems go here> -->

New features

* Implement RegionOfAttraction for implicit dynamics ([#16704][_#16704])
* Implement the square-root form of finite-horizon LQR ([#16812][_#16812])
* Add `MultipleShooting::AddConstraintToAllKnotPoints` variants ([#16847][_#16847])

Fixes

* None

## Mathematical Program

<!-- <relnotes for solvers go here> -->

New features

* Throw error for false formula in MathematicalProgram ([#16813][_#16813])
* Ignore empty constraints in MathematicalProgram ([#16825][_#16825])
* Ignore formulas that are always true in MathematicalProgram  ([#16854][_#16854])
* Add ability to create a VPolytope from a non-minimal set of vertices ([#16729][_#16729])

Fixes

* Use longjmp to avoid full-program exits in CsdpSolver ([#16736][_#16736])
* Combine MathematicalProgram::AddConstraint overloads ([#16778][_#16778])

## Multibody Dynamics and Geometry

<!-- <relnotes for geometry,multibody go here> -->

New features

* Add compliant convex mesh support ([#16753][_#16753])
* Add Frame methods CalcRelativeSpatialVelocity() and CalcRelativeSpatialVelocityInWorld() ([#16691][_#16691])
* Update SpatialAcceleration methods to parallel SpatialVelocity ([#16699][_#16699])
* Create new method Frame::CalcSpatialAcceleration() and improve related documentation and tests ([#16760][_#16760])
* Add `MultibodyPlant::GetEffortLowerLimits` (and friends) ([#16835][_#16835])
* Progress toward configurable Parser errors and warnings ([#16819][_#16819], [#16820][_#16820])

Fixes

* Fix Meshcat crash on unknown message ([#16703][_#16703])
* Fix Meshcat crash with duplicated controls names ([#16726][_#16726])
* Be sure to print exceptions from Meshcat's worker thread ([#16659][_#16659])
* Repeated Meshcat::AddButton calls reset the click count ([#16808][_#16808])
* Fix lost visualization elements when disabling/enabling hydroelastic contact plugin ([#16852][_#16852], [#16867][_#16867])

## Tutorials and examples

<!-- <relnotes for examples,tutorials go here> -->

* Add realsense camera geometries to manipulation station ([#16719][_#16719], [#16754][_#16754])
* Remove uses of interactive matplotlib from tutorials to support deepnote/colab ([#16837][_#16837])
* Switch tutorial links to point to Deepnote ([#16860][_#16860])

## Miscellaneous features and fixes

<!-- <relnotes for common,math,lcm,lcmtypes,manipulation,perception go here> -->

* Add support for SinCosSubstitution in Expression ([#16690][_#16690])
* Display matrix/vector variables using subscript for indices in ToLatex ([#16720][_#16720])
* Extract Options struct out of YamlReadArchive ([#16801][_#16801])

## pydrake bindings

<!-- <relnotes for bindings go here> -->

New features

* Add DefAttributesUsingSerialize helper function ([#16718][_#16718])

Fixes

* Ensure GIL is locked when logging from a C++ worker thread ([#16724][_#16724])
* Use NginX when on Deepnote for Meshcat connections ([#16805][_#16805], [#16830][_#16830])
* Use VPolytope::GetMinimalRepresentation to compute the convex hull in PlanarSceneGraphVisualizer ([#16765][_#16765])

Newly bound

* pydrake.math.BsplineBasis.EvaluateCurve ([#16721][_#16721])
* pydrake.multibody.plant.AddMultibodyPlant ([#16717][_#16717])
* pydrake.multibody.plant.MultibodyPlantConfig ([#16717][_#16717])
* pydrake.systems.analysis.ApplySimulatorConfig ([#16717][_#16717])
* pydrake.systems.analysis.ExtractSimulatorConfig ([#16717][_#16717])
* pydrake.systems.analysis.Simulator.set_publish_at_initialization ([#16762][_#16762])
* pydrake.systems.analysis.Simulator.set_publish_every_time_step with kwargs publish ([#16762][_#16762])
* pydrake.systems.analysis.Simulator.set_target_realtime_rate with kwargs realtime_rate ([#16762][_#16762])
* pydrake.systems.analysis.SimulatorConfig ([#16717][_#16717])
* pydrake.systems.LcmPublisherSystem.Make with kwargs publish_triggers ([#16762][_#16762])

## Build system

<!-- <relnotes for cmake,doc,setup,third_party,tools go here> -->

* Enable split debug symbols on Ubuntu ([#16587][_#16587], [#16788][_#16788])
* Don't build libsdformat's URDF parser ([#16772][_#16772])
* Stop using mutable globals from SDFormat ([#16791][_#16791])
* Add interface_deps option to drake_cc_library ([#16787][_#16787])
* Install deprecated contact_results_to_meshcat.h header ([#16789][_#16789])

## Build dependencies

<!-- Manually relocate any "Upgrade foo_external to latest" lines to here, -->
<!-- and then sort them alphabetically. -->

* Add abseil-cpp dependency ([#16774][_#16774])
* Build yaml-cpp from source; upgrade to 0.7.0 on all platforms ([#16701][_#16701], [#16728][_#16728], [#16756][_#16756])
* Progress toward removing scipy dependency ([#16840][_#16840])
* Upgrade gurobi to 9.5.1 (which includes macOS arm64 support) ([#16716][_#16716], [#16794][_#16794], [#16803][_#16803])
* Upgrade scs to latest release 3.2.0 ([#16686][_#16686])

## Newly-deprecated APIs

* drake::solvers::NonsmoothAugmentedLagrangian ([#16798][_#16798])
* drake::solvers::SystemIdentification ([#16741][_#16741])
* drake::systems::AntiDerivativeFunction::IntegrableFunctionContext ([#16739][_#16739])
* drake::systems::InitialValueProblem::OdeContext ([#16739][_#16739])
* drake::systems::ScalarInitialValueProblem::ScalarOdeContext ([#16739][_#16739])
* drake::TrigPoly ([#16741][_#16741])

## Removal of deprecated items

* drake:elastic_modulus in URDF, SDFormat files ([#16786][_#16786])

# Notes

This release provides [pre-compiled binaries](https://github.com/RobotLocomotion/drake/releases/tag/v1.1.0) named
``drake-20220328-{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.

<!-- <begin issue links> -->
[_#13391]: https://github.com/RobotLocomotion/drake/pull/13391
[_#16386]: https://github.com/RobotLocomotion/drake/pull/16386
[_#16587]: https://github.com/RobotLocomotion/drake/pull/16587
[_#16659]: https://github.com/RobotLocomotion/drake/pull/16659
[_#16686]: https://github.com/RobotLocomotion/drake/pull/16686
[_#16690]: https://github.com/RobotLocomotion/drake/pull/16690
[_#16691]: https://github.com/RobotLocomotion/drake/pull/16691
[_#16699]: https://github.com/RobotLocomotion/drake/pull/16699
[_#16701]: https://github.com/RobotLocomotion/drake/pull/16701
[_#16703]: https://github.com/RobotLocomotion/drake/pull/16703
[_#16704]: https://github.com/RobotLocomotion/drake/pull/16704
[_#16716]: https://github.com/RobotLocomotion/drake/pull/16716
[_#16717]: https://github.com/RobotLocomotion/drake/pull/16717
[_#16718]: https://github.com/RobotLocomotion/drake/pull/16718
[_#16719]: https://github.com/RobotLocomotion/drake/pull/16719
[_#16720]: https://github.com/RobotLocomotion/drake/pull/16720
[_#16721]: https://github.com/RobotLocomotion/drake/pull/16721
[_#16724]: https://github.com/RobotLocomotion/drake/pull/16724
[_#16726]: https://github.com/RobotLocomotion/drake/pull/16726
[_#16728]: https://github.com/RobotLocomotion/drake/pull/16728
[_#16729]: https://github.com/RobotLocomotion/drake/pull/16729
[_#16736]: https://github.com/RobotLocomotion/drake/pull/16736
[_#16739]: https://github.com/RobotLocomotion/drake/pull/16739
[_#16741]: https://github.com/RobotLocomotion/drake/pull/16741
[_#16753]: https://github.com/RobotLocomotion/drake/pull/16753
[_#16754]: https://github.com/RobotLocomotion/drake/pull/16754
[_#16756]: https://github.com/RobotLocomotion/drake/pull/16756
[_#16760]: https://github.com/RobotLocomotion/drake/pull/16760
[_#16762]: https://github.com/RobotLocomotion/drake/pull/16762
[_#16765]: https://github.com/RobotLocomotion/drake/pull/16765
[_#16772]: https://github.com/RobotLocomotion/drake/pull/16772
[_#16774]: https://github.com/RobotLocomotion/drake/pull/16774
[_#16778]: https://github.com/RobotLocomotion/drake/pull/16778
[_#16786]: https://github.com/RobotLocomotion/drake/pull/16786
[_#16787]: https://github.com/RobotLocomotion/drake/pull/16787
[_#16788]: https://github.com/RobotLocomotion/drake/pull/16788
[_#16789]: https://github.com/RobotLocomotion/drake/pull/16789
[_#16791]: https://github.com/RobotLocomotion/drake/pull/16791
[_#16794]: https://github.com/RobotLocomotion/drake/pull/16794
[_#16798]: https://github.com/RobotLocomotion/drake/pull/16798
[_#16801]: https://github.com/RobotLocomotion/drake/pull/16801
[_#16803]: https://github.com/RobotLocomotion/drake/pull/16803
[_#16805]: https://github.com/RobotLocomotion/drake/pull/16805
[_#16808]: https://github.com/RobotLocomotion/drake/pull/16808
[_#16812]: https://github.com/RobotLocomotion/drake/pull/16812
[_#16813]: https://github.com/RobotLocomotion/drake/pull/16813
[_#16819]: https://github.com/RobotLocomotion/drake/pull/16819
[_#16820]: https://github.com/RobotLocomotion/drake/pull/16820
[_#16825]: https://github.com/RobotLocomotion/drake/pull/16825
[_#16830]: https://github.com/RobotLocomotion/drake/pull/16830
[_#16835]: https://github.com/RobotLocomotion/drake/pull/16835
[_#16837]: https://github.com/RobotLocomotion/drake/pull/16837
[_#16840]: https://github.com/RobotLocomotion/drake/pull/16840
[_#16847]: https://github.com/RobotLocomotion/drake/pull/16847
[_#16852]: https://github.com/RobotLocomotion/drake/pull/16852
[_#16854]: https://github.com/RobotLocomotion/drake/pull/16854
[_#16860]: https://github.com/RobotLocomotion/drake/pull/16860
[_#16867]: https://github.com/RobotLocomotion/drake/pull/16867
<!-- <end issue links> -->

<!--
  Current oldest_commit 06e1deb12539f05eff968c5bd9e11d259916f268 (exclusive).
  Current newest_commit c79c94b0afcf2b2691f81b5a27e15dd32a5c3a23 (inclusive).
-->
