---
title: Drake v1.2.0
date: 2022-04-20
released: 2022-04-20
---

# Announcements

* Drake's binary release now incorporate the MOSEK™ solver ([#16927][_#16927]).
  * Users must supply their own ``MOSEKLM_LICENSE_FILE`` license environment
    in order to use the solver, but no longer need to build Drake from source
    to do so.
* Drake no longer supports Ubuntu 18.04 "Bionic", Python 3.6, or Python 3.7
  ([#13391][_#13391]).
* Drake no longer supports drake-visualizer on macOS ([#16945][_#16945]).
  * Instead, Drake now offers a meshcat display server named
    [meldis](https://drake.mit.edu/pydrake/pydrake.visualization.meldis.html)
    that speaks the same protocol as ``drake_visualizer`` ([#16263][_#16263]).

# Breaking changes since v1.1.0

* None

Note that ``drake::trajectories::PiecewiseQuaternionSlerp::value()`` now returns
a quaternion, instead of a rotation matrix ([#16914][_#16914]). This is not a
breaking change (because the documentation promised a quaternion), but we note
it here in case anyone was depending on the prior behavior.

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

# Changes since v1.1.0

## Dynamical Systems

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

* None

## Mathematical Program

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



New features

* Add support for convex quadratic constraints ([#16921][_#16921])
* Add the smooth formulation of augmented Lagrangian ([#16845][_#16845])
* Expose the costs and constraints of an Edge in GraphOfConvexSets ([#16892][_#16892])
* NewSosPolynomial takes degree=0 ([#16983][_#16983])
* Add Monomial::Evaluate() for a batch of data ([#16984][_#16984])

Fixes

* Fix PiecewiseQuaternionSlerp to actually return quaternion values ([#16914][_#16914])
* Speed up LinearConstraint and BoundingBoxConstraint via sparse matrices ([#16894][_#16894])
* Speed up parsing of linear constraints ([#16896][_#16896])
* Speed up symbolic polynomials via is_expanded ([#16980][_#16980])

## Multibody Dynamics and Geometry

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

New features

* Automatically filter out collisions within welded subgraphs ([#16920][_#16920])
* Add Frame::EvalAngularVelocityInWorld and Frame::CalcAngularVelocity ([#16893][_#16893])
* Add a new frame Abar to specify the PositionConstraint bound ([#16873][_#16873])

Fixes

* Fix joint locking to use correct velocity indices ([#16818][_#16818])

## Tutorials and examples

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

* Add xvfb support in Deepnote ([#16948][_#16948])
* Improve rimless_wheel meshcat animation ([#16906][_#16906])
* Remove simple_four_bar ([#16951][_#16951])

## Miscellaneous features and fixes

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

* Split the position and velocity ports in the Jaco LCM interface ([#16863][_#16863])

## pydrake bindings

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

New features

* None

Fixes

* Re-spell SpatialForce keyword arguments ([#16851][_#16851])
* Re-spell SpatialMomentum keyword arguments ([#16844][_#16844])

Newly bound

* None

## Build system

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

* Enable MOSEK in pre-built releases ([#16927][_#16927], [#16985][_#16985])

## Build dependencies

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

* Add clang-12 ([#16943][_#16943])
* Upgrade bazel recommended version to 5.1 ([#16878][_#16878], [#16926][_#16926])
* Upgrade abseil_cpp_internal to latest commit ([#16885][_#16885])
* Upgrade bazel_skylib to latest release 1.2.1 ([#16885][_#16885])
* Upgrade common_robotics_utilities to latest commit ([#16885][_#16885])
* Upgrade dm_control to latest commit ([#16885][_#16885])
* Upgrade github3_py to latest release 3.2.0 ([#16885][_#16885])
* Upgrade meshcat to latest commit ([#16925][_#16925])
* Upgrade meshcat_python to latest commit ([#16925][_#16925])
* Upgrade petsc to latest release 3.16.5 ([#16885][_#16885])
* Upgrade ros_xacro to latest release 1.14.13 ([#16967][_#16967])
* Upgrade rules_python to latest release 0.8.0 ([#16885][_#16885])

## Newly-deprecated APIs

* drake::manipulation::kinova_jaco::JacoCommandReceiver:get_output_port ([#16863][_#16863])
* drake::manipulation::kinova_jaco::JacoCommandSender::get_input_port ([#16863][_#16863])
* drake::manipulation::kinova_jaco::JacoStatusReceiver::get_state_output_port ([#16863][_#16863])
* drake::manipulation::kinova_jaco::JacoStatusReceiver::get_torque_output_port ([#16863][_#16863])
* drake::manipulation::kinova_jaco::JacoStatusSender::get_state_input_port ([#16863][_#16863])
* drake::solvers::LinearConstraint::A() ([#16976][_#16976])
* pydrake.multibody.math.SpatialForce.Shift named kwarg ``p_BqBq_E`` is now named ``offset`` ([#16851][_#16851])
* pydrake.multibody.math.SpatialMomentum.Shift named kwarg ``p_BqBq_E`` is now named ``offset``  ([#16844][_#16844])
* The superfluous install_prereqs option --with-kcov ([#16938][_#16938])
* The @pygame_py repository ([#16959][_#16959])

## Removal of deprecated items

* Remove support for Ubuntu 18.04 "Bionic" ([#16929][_#16929], [#16931][_#16931], [#16946][_#16946], [#16959][_#16959], [#16963][_#16963], [#16967][_#16967], [#16972][_#16972])
* Remove support for Python 3.6 and Python 3.7 ([#16929][_#16929], [#16931][_#16931], [#16963][_#16963], [#16973][_#16973])
* Remove drake-visualizer on macOS ([#16945][_#16945], [#16962][_#16962], [#16964][_#16964])

# Notes

This release provides [pre-compiled binaries](https://github.com/RobotLocomotion/drake/releases/tag/v1.2.0) named
``drake-20220420-{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
[_#16263]: https://github.com/RobotLocomotion/drake/pull/16263
[_#16818]: https://github.com/RobotLocomotion/drake/pull/16818
[_#16844]: https://github.com/RobotLocomotion/drake/pull/16844
[_#16845]: https://github.com/RobotLocomotion/drake/pull/16845
[_#16851]: https://github.com/RobotLocomotion/drake/pull/16851
[_#16863]: https://github.com/RobotLocomotion/drake/pull/16863
[_#16873]: https://github.com/RobotLocomotion/drake/pull/16873
[_#16878]: https://github.com/RobotLocomotion/drake/pull/16878
[_#16885]: https://github.com/RobotLocomotion/drake/pull/16885
[_#16892]: https://github.com/RobotLocomotion/drake/pull/16892
[_#16893]: https://github.com/RobotLocomotion/drake/pull/16893
[_#16894]: https://github.com/RobotLocomotion/drake/pull/16894
[_#16896]: https://github.com/RobotLocomotion/drake/pull/16896
[_#16906]: https://github.com/RobotLocomotion/drake/pull/16906
[_#16914]: https://github.com/RobotLocomotion/drake/pull/16914
[_#16920]: https://github.com/RobotLocomotion/drake/pull/16920
[_#16921]: https://github.com/RobotLocomotion/drake/pull/16921
[_#16925]: https://github.com/RobotLocomotion/drake/pull/16925
[_#16926]: https://github.com/RobotLocomotion/drake/pull/16926
[_#16927]: https://github.com/RobotLocomotion/drake/pull/16927
[_#16929]: https://github.com/RobotLocomotion/drake/pull/16929
[_#16931]: https://github.com/RobotLocomotion/drake/pull/16931
[_#16938]: https://github.com/RobotLocomotion/drake/pull/16938
[_#16943]: https://github.com/RobotLocomotion/drake/pull/16943
[_#16945]: https://github.com/RobotLocomotion/drake/pull/16945
[_#16946]: https://github.com/RobotLocomotion/drake/pull/16946
[_#16948]: https://github.com/RobotLocomotion/drake/pull/16948
[_#16951]: https://github.com/RobotLocomotion/drake/pull/16951
[_#16959]: https://github.com/RobotLocomotion/drake/pull/16959
[_#16962]: https://github.com/RobotLocomotion/drake/pull/16962
[_#16963]: https://github.com/RobotLocomotion/drake/pull/16963
[_#16964]: https://github.com/RobotLocomotion/drake/pull/16964
[_#16967]: https://github.com/RobotLocomotion/drake/pull/16967
[_#16972]: https://github.com/RobotLocomotion/drake/pull/16972
[_#16973]: https://github.com/RobotLocomotion/drake/pull/16973
[_#16976]: https://github.com/RobotLocomotion/drake/pull/16976
[_#16980]: https://github.com/RobotLocomotion/drake/pull/16980
[_#16983]: https://github.com/RobotLocomotion/drake/pull/16983
[_#16984]: https://github.com/RobotLocomotion/drake/pull/16984
[_#16985]: https://github.com/RobotLocomotion/drake/pull/16985
[_#16995]: https://github.com/RobotLocomotion/drake/pull/16995
<!-- <end issue links> -->

<!--
  Current oldest_commit c79c94b0afcf2b2691f81b5a27e15dd32a5c3a23 (exclusive).
  Current newest_commit 4e1146e7251aaff1e263b3b10a41f915827d9acb (inclusive).
-->
