---
title: Drake v1.11.0
date: 2022-12-14
released: 2022-12-14
---

# Announcements

* A new 6-dof joint type, QuaternionFloatingJoint, is now supported. It is a breaking change; see below.

# Breaking changes since v1.10.0

* A QuaternionFloatingJoint is added for each free body. MultibodyPlant::num_joints() will change in all existing plants that had previously declared at least one free body. `is_floating` is explicitly declared to mean: is outboard to a 6-dof joint AND the parent body of the joint is world. ([#18390][_#18390])
  - If your code loops through all joints in the plant, you may need to update your code to explicitly check if the child of a joint is floating and ignore those joints (if they break your current analysis).
  - Free body APIs that MultibodyPlant provides (SetFreeBodyPose(), SetFreeBodySpatialVelocity(), etc.) still exist and are equivalent alternatives to the corresponding QuaternionFloatingJoint APIs that affect a given body. If you wrote code that had separate logic for handling dofs corresponding to bodies with explicitly created joints using Joint APIs and dofs corresponding to floating bodies using plant's free body API, you might be doing some duplicate work.
* Allow for torque-only mode for KUKA IIWA ([#18295][_#18295])  
  - The contract for `lcmt_iiwa_command` has changed. It can now have zero-size positions when its control mode does not have positions enabled.
  - BuildIiwaControl and BuildSimplifiedIiwaControl no longer accept `bool enable_feedforward_torque`, but instead accept `IiwaControlMode control_mode`.
  - IiwaControlPorts::`commanded_feedforward_torque` is now renamed to `IiwaControlPorts::commanded_torque`.
* `optitrack`'s LCM type is changed. Existing LCM logs will not decode using the new definitions. However, the changes to the existing types were only to add new fields, the existing fields have no behavioral changes so users who don't care about the additional data shouldn't have to change any code. ([#18330][_#18330])


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

# Changes since v1.10.0

## Dynamical Systems

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

New features

* Add InputPort::Allocate() method ([#18431][_#18431])
* Add TrajectorySource::UpdateTrajectory ([#18434][_#18434])

Fixes

* None

## Mathematical Program

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

New features

* ScsSolver returns the dual solution for bounding-box, linear, second order cone constraints ([#18360][_#18360]) 
* ScsSolver returns the dual solution for linear equality constraints ([#18388][_#18388])
* Add SpatialVelocityConstraint of a frame C, fixed to frame B, relative to another frame A ([#18364][_#18364])
* Add Iris support for Convex mesh geometries ([#18376][_#18376])
* Add HPolyhedron::FindRedundant ([#18432][_#18432])

Fixes

* Change the returned dual solution for rotated Lorentz cone constraint in MosekSolver ([#18361][_#18361])
* GurobiSolver returns the best solution for all non-error results ([#18367][_#18367])
* Snopt handles duplicated variables ([#18401][_#18401])
* Fix Iris Hit and Run failure bug ([#18439][_#18439])

## Multibody Dynamics and Geometry

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

New features

* Add a new 6-dof joint type: QuaternionFloatingJoint ([#18279][_#18279])
* Add SDFormat support for weld-type `//world/joint` ([#18322][_#18322])
* Calculate SpatialInertia from Shape and TriangleSurfaceMesh ([#18345][_#18345])
* Add a QuaternionFloatingJoint for each free body ([#18390][_#18390])
* Compute generalized forces resulting from MultibodyForce ([#18406][_#18406])
* Add PrismaticSpring force element and support its SDFormat parsing ([#18240][_#18240])

Fixes

* Render server and clients use color images for label communication ([#18344][_#18344])
* Fix issue setting meldis realtime rate display ([#18412][_#18412])
* Fix bug for infinitely stiff SAP holonomic constraints ([#18414][_#18414])
* Support fixed-distance constraints with SAP ([#18196][_#18196])

## Planning

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

New features

* Add RobotCollisionType ([#18405][_#18405])
* Add RobotClearance ([#18418][_#18418])

Fixes

* None

## Tutorials and examples

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

* None

## Miscellaneous features and fixes

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

* Compute a polynomial from monomial basis and the lower triangular of the Gram ([#18429][_#18429])
* Allow for torque-only mode for KUKA IIWA ([#18295][_#18295])
* BSplineTrajectory::EvalDerivative now clamps time ([#18383][_#18383])
* Enhance ApplyVisualizationConfig with meshcat support ([#18409][_#18409])
* Allow pressing Escape to stop ModelVisualizer ([#18411][_#18411])
* Fix Meshcat::StaticHtml() ([#18349][_#18349])

## pydrake bindings

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

New features

* None

Fixes

* Add Preferred Ordering mechanism and tests ([#18357][_#18357])

Newly bound

* pydrake.geometry.optimization.HPolyhedron.FindRedundant ([#18432][_#18432])
* pydrake.manipulation.kuka_iiwa.IiwaControlMode ([#18295][_#18295])
* pydrake.multibody.optimization.SpatialVelocityConstraint ([#18364][_#18364])
* pydrake.multibody.PrismaticSpring ([#18240][_#18240])
* pydrake.multibody.tree.CalcSpatialInertia ([#18345][_#18345])
* pydrake.multibody.tree.QuaternionFloatingJoint ([#18420][_#18420])
* pydrake.multibody.tree.UnitInertia.SolidCapsule ([#18341][_#18341])
* pydrake.multibody.tree.UnitInertia.SolidEllipsoid ([#18341][_#18341])
* pydrake.symbolic.CalcPolynomialWLowerTriangularPart ([#18429][_#18429])
* pydrake.systems.CacheEntry.Eval ([#18354][_#18354])
* pydrake.systems.CacheEntry.EvalAbstract ([#18354][_#18354])
* pydrake.systems.CacheEntry.get_cache_entry_value ([#18354][_#18354])
* pydrake.systems.CacheEntryValue.GetValueOrThrow ([#18354][_#18354])
* pydrake.systems.framework.InputPort.Allocate ([#18431][_#18431])
* pydrake.systems.framework.System.AllocateInputAbstract ([#18430][_#18430])
* pydrake.systems.framework.System.AllocateInputVector ([#18430][_#18430])

## Build system

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

* None

## Build dependencies

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

* Remove libcurl dependency ([#18441][_#18441])
* Use host OS VTK 9.1 when on Ubuntu 22.04 ([#18340][_#18340])
* Upgrade optitrack_driver to latest commit ([#18330][_#18330])
* Upgrade meshcat to latest commit ([#18349][_#18349])
* Upgrade abseil_cpp_internal to latest commit ([#18394][_#18394])
* Upgrade dm_control_internal to latest commit ([#18394][_#18394])
* Upgrade gz_math_internal to latest release gz-math7_7.1.0 ([#18394][_#18394])
* Upgrade lcm to latest commit ([#18394][_#18394])
* Upgrade mypy_internal to latest release v0.991 ([#18394][_#18394])
* Upgrade petsc to latest release v3.18.2 ([#18394][_#18394])
* Upgrade pycodestyle to latest release 2.10.0 ([#18394][_#18394])
* Upgrade rules_pkg to latest release 0.8.0 ([#18394][_#18394])
* Upgrade rules_python to latest release 0.15.1 ([#18394][_#18394])

## Newly-deprecated APIs

* drake::multibody::FixedOffsetFrame::SetPoseInBodyFrame ([#18198][_#18198])
* drake::trajectories::PiecewisePolynomial::Cubic ([#18319][_#18319])

## Removal of deprecated items

* The @libcurl external ([#18441][_#18441])
* The build target drake::solvers::bilinear_product_util, the function drake::solvers::ReplaceBilinearTerms, and the corresponding file ([#18441][_#18441])
* drake::multibody::WeldJoint::X_PC ([#18441][_#18441])
* drake::geometry::optimization::GraphOfConvexSets::SolveShortestPath overloads that directly pass the bool `convex_relaxation` and `const solvers::SolverInterface*` solver parameters ([#18441][_#18441])
* drake::multibody::FixedOffsetFrame ctor without the `name` argument ([#18441][_#18441])
* drake::multibody::Frame ctor without the `name` argument ([#18441][_#18441])
* drake::multibody::RigidBody ctor without the `body_name` argument ([#18441][_#18441])
* pydrake.geometry.PolygonSurfaceMesh.TransformVertices ([#18441][_#18441])
* pydrake.geometry.PolygonSurfaceMesh.ReverseFaceWinding ([#18441][_#18441])

# Notes


This release provides [pre-compiled binaries](https://github.com/RobotLocomotion/drake/releases/tag/v1.11.0) named
``drake-20221214-{focal|jammy|mac|mac-arm64}.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> -->
[_#18196]: https://github.com/RobotLocomotion/drake/pull/18196
[_#18198]: https://github.com/RobotLocomotion/drake/pull/18198
[_#18240]: https://github.com/RobotLocomotion/drake/pull/18240
[_#18279]: https://github.com/RobotLocomotion/drake/pull/18279
[_#18295]: https://github.com/RobotLocomotion/drake/pull/18295
[_#18319]: https://github.com/RobotLocomotion/drake/pull/18319
[_#18322]: https://github.com/RobotLocomotion/drake/pull/18322
[_#18330]: https://github.com/RobotLocomotion/drake/pull/18330
[_#18340]: https://github.com/RobotLocomotion/drake/pull/18340
[_#18341]: https://github.com/RobotLocomotion/drake/pull/18341
[_#18344]: https://github.com/RobotLocomotion/drake/pull/18344
[_#18345]: https://github.com/RobotLocomotion/drake/pull/18345
[_#18349]: https://github.com/RobotLocomotion/drake/pull/18349
[_#18354]: https://github.com/RobotLocomotion/drake/pull/18354
[_#18357]: https://github.com/RobotLocomotion/drake/pull/18357
[_#18360]: https://github.com/RobotLocomotion/drake/pull/18360
[_#18361]: https://github.com/RobotLocomotion/drake/pull/18361
[_#18364]: https://github.com/RobotLocomotion/drake/pull/18364
[_#18367]: https://github.com/RobotLocomotion/drake/pull/18367
[_#18376]: https://github.com/RobotLocomotion/drake/pull/18376
[_#18383]: https://github.com/RobotLocomotion/drake/pull/18383
[_#18388]: https://github.com/RobotLocomotion/drake/pull/18388
[_#18390]: https://github.com/RobotLocomotion/drake/pull/18390
[_#18394]: https://github.com/RobotLocomotion/drake/pull/18394
[_#18401]: https://github.com/RobotLocomotion/drake/pull/18401
[_#18405]: https://github.com/RobotLocomotion/drake/pull/18405
[_#18406]: https://github.com/RobotLocomotion/drake/pull/18406
[_#18409]: https://github.com/RobotLocomotion/drake/pull/18409
[_#18411]: https://github.com/RobotLocomotion/drake/pull/18411
[_#18412]: https://github.com/RobotLocomotion/drake/pull/18412
[_#18414]: https://github.com/RobotLocomotion/drake/pull/18414
[_#18418]: https://github.com/RobotLocomotion/drake/pull/18418
[_#18420]: https://github.com/RobotLocomotion/drake/pull/18420
[_#18429]: https://github.com/RobotLocomotion/drake/pull/18429
[_#18430]: https://github.com/RobotLocomotion/drake/pull/18430
[_#18431]: https://github.com/RobotLocomotion/drake/pull/18431
[_#18432]: https://github.com/RobotLocomotion/drake/pull/18432
[_#18434]: https://github.com/RobotLocomotion/drake/pull/18434
[_#18439]: https://github.com/RobotLocomotion/drake/pull/18439
[_#18441]: https://github.com/RobotLocomotion/drake/pull/18441
<!-- <end issue links> -->

<!--
  Current oldest_commit 2ae55dd652945cc26ab8ae7f56f945dde1b6e021 (exclusive).
  Current newest_commit d735ad725492253b9dbd71d8aeef6702178b2dfb (inclusive).
-->
