---
title: Drake v1.8.0
date: 2022-09-19
released: 2022-09-19
---

# Announcements

* Drake now supports Python 3.10 on Ubuntu 22.04.
* Drake now supports MOSEK™ 10.
* Drake now supports macOS arm64 natively when building from source.
* Notable improvements to GraphOfConvexSets, PointCloud, and model directives.

# Breaking changes since v1.7.0

* The GraphOfConvexSets::SolveShortestPath changed to use convex_relaxation=true
  by default ([#17396][_#17396]).

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

# Changes since v1.7.0

## Dynamical Systems

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

New features

* Add CameraConfig struct and ApplyCameraConfig function ([#17827][_#17827], [#17852][_#17852])

Fixes

* Camera (sensor) parameters are rigorously validated ([#17750][_#17750])
* Improve context-system mismatch error messages ([#17711][_#17711])

## Mathematical Program

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

New features

* GraphOfConvexSets SolveShortestPath accepts configuration options ([#17396][_#17396])
* Enable preprocessing GraphOfConvexSets before solving ShortestPath ([#17397][_#17397], [#17876][_#17876])
* Enable adding costs to vertices in GraphOfConvexSets ([#17844][_#17844])
* Enable rounding of GraphOfConvexSets solution when solving convex relaxation of ShortestPath ([#17796][_#17796])
* Add tolerance configuration to HPolyhedron functions ([#17895][_#17895])
* Add HPolyhedron::Serialize() ([#17783][_#17783])

Fixes

* Add ExpressionCell::EvaluatePartial for performance ([#17727][_#17727])
* GetInfeasibleConstraints only returns infeasible constraint once ([#17818][_#17818])
* NewSosPolynomial detects uninitialized enum values ([#17754][_#17754])

## Multibody Dynamics and Geometry

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

New features

* Add MultibodyPlant::SetDefaultPositions ([#17793][_#17793])
* Add MultibodyPlant::CalcJacobianPositionVector ([#17920][_#17920])
* Add MultibodyPlant::CalcSpatialInertia ([#17770][_#17770])
* Add MultibodyPlant::GetBodiesKinematicallyAffectedBy ([#17800][_#17800])
* Add Rgba::Serialize support ([#17762][_#17762])
* Add RigidTransform multiply by Vector4d ([#17790][_#17790])
* Add LoadModelDirectivesFromString ([#17810][_#17810])
* Add model directives syntax for default positions ([#17802][_#17802])
* Add model directives optional X_PC to AddWeld ([#17811][_#17811])
* Add AngleBetweenVectorsCost ([#17821][_#17821])

Fixes

* Fix crash when visualizing almost-zero hydroelastic force or moment ([#17757][_#17757])

## Planning

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

* None

## Tutorials and examples

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

* Add first draft of a drake/examples/hardware_sim example (not yet finished).

## Miscellaneous features and fixes

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

* Add PathParameterizedTrajectory ([#17816][_#17816])
* Add PointCloud::Crop and Concatenate ([#17829][_#17829], [#17948][_#17948])
* Add PointCloud::EstimateNormals ([#17914][_#17914], [#17945][_#17945])
* Add PointCloud::VoxelizedDownSample ([#17885][_#17885])
* Add initialization event to DiffIK Integrator ([#17824][_#17824])
* Add simulated iiwa driver ([#17886][_#17886])
* Expose measurement time as an output from received iiwa status ([#17761][_#17761])
* Fix colors on kinova jaco models ([#17838][_#17838])

## pydrake bindings

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

New features

* None

Fixes

* Add missing items to pydrake.visualization.all ([#17894][_#17894])
* Enable return-None cases for System event handlers ([#17859][_#17859])

Newly bound

* pydrake.geometry.VolumeMesh.CalcBarycentric ([#17730][_#17730])
* pydrake.geometry.VolumeMesh.Equal ([#17730][_#17730])
* pydrake.geometry.VolumeMesh.element ([#17730][_#17730])
* pydrake.geometry.VolumeMesh.num_elements ([#17730][_#17730])
* pydrake.geometry.VolumeMesh.num_vertices ([#17730][_#17730])
* pydrake.geometry.VolumeMesh.vertex ([#17730][_#17730])
* pydrake.multibody.BodyIndex default ctor ([#17825][_#17825])
* pydrake.multibody.ForceElementIndex default ctor ([#17825][_#17825])
* pydrake.multibody.FrameIndex default ctor ([#17825][_#17825])
* pydrake.multibody.JointActuatorIndex default ctor ([#17825][_#17825])
* pydrake.multibody.JointIndex default ctor ([#17825][_#17825])
* pydrake.multibody.ModelInstanceIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.AbstractParameterIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.AbstractStateIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.CacheIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.ConstraintIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.ContinuousStateIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.DependencyTicket default ctor ([#17825][_#17825])
* pydrake.systems.framework.DiscreteStateIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.InputPortIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.NumericParameterIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.OutputPortIndex default ctor ([#17825][_#17825])
* pydrake.systems.framework.SubsystemIndex default ctor ([#17825][_#17825])

## Build system

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

* Add wheels for Python 3.10 on Ubuntu 22.04 ([#17778][_#17778])
* Add MOSEK support on macOS arm64 ([#17870][_#17870])
* Add runtime detection of AVX2/FMA to support x86_64 processors without those instructions ([#17760][_#17760])
* Fix rpath handling for repeated CMake installs ([#17779][_#17779])
* Fix DrakeLcmParams for C++20 compatibility  ([#17845][_#17845])
* Fix CMakeLists.txt arm64 compatibility ([#17887][_#17887])
* Fix incorrect warning on Jammy Python version ([#17896][_#17896])
* Fail-fast when cmake_configure_file specifies dead defines ([#17747][_#17747])
* Remove LD_LIBRARY_PATH from apt instructions and Dockerfiles ([#17846][_#17846])
* Teach clang-format about C++20 and C++23 headers ([#17944][_#17944])

## Build dependencies

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

* Add dependency on nanoflann ([#17914][_#17914])
* Upgrade to MOSEK™ 10 ([#17490][_#17490])
* Upgrade abseil_cpp_internal to latest commit ([#17872][_#17872])
* Upgrade bazel_skylib to latest release 1.3.0 ([#17872][_#17872])
* Upgrade dm_control_internal to latest commit ([#17872][_#17872])
* Upgrade lcm to latest commit ([#17872][_#17872])
* Upgrade optitrack_driver to latest commit ([#17872][_#17872])
* Upgrade picosha2 to latest commit ([#17872][_#17872])
* Upgrade pycodestyle to latest release 2.9.1 ([#17872][_#17872])
* Upgrade rules_python to latest release 0.12.0 ([#17872][_#17872])
* Use bazelisk on macOS ([#17764][_#17764])
* Build curl from source ([#17755][_#17755])
* Build tinyxml2 from source ([#17830][_#17830])

## Newly-deprecated APIs

* drake::geometry::optimization::GraphOfConvexSets::SolveShortestPath overloads that directly pass the `bool convex_relaxation` and `const solvers::SolverInterface* solver` parameters ([#17396][_#17396])
* The @tinyxml2 external ([#17830][_#17830])
* The @libcurl external ([#17755][_#17755])
* The @ghc_filesystem external ([#17834][_#17834])
* pydrake.geometry.PolygonSurfaceMesh.TransformVertices ([#17768][_#17768])
* pydrake.geometry.PolygonSurfaceMesh.ReverseFaceWinding ([#17768][_#17768])

## Removal of deprecated items

* Drake no longer supports Clang 9 ([#17813][_#17813], [#16937][_#16937])
* pydrake.common.set_log_level ([#17813][_#17813], [#17069][_#17069])
* drake::geometry::render::RenderEngineVtk ([#17812][_#17812], [#17169][_#17169])
* drake::geometry::render::RenderEngineVtkParams ([#17812][_#17812], [#17169][_#17169])
* drake::solvers::CsdpSolver constructor with RemoveFreeVariableMethod argument ([#17813][_#17813], [#17275][_#17275])
* drake::symbolic::Polynomial::EqualToAfterExpansion ([#17813][_#17813], [#17202][_#17202])
* drake::yaml::YamlReadArchive ([#17813][_#17813], [#17084][_#17084])
* drake::yaml::YamlWriteArchive ([#17813][_#17813], [#17084][_#17084])
* pydrake.systems.meshcat_visualizer.MeshcatPointCloudVisualizer ([#17813][_#17813], [#17194][_#17194])
* pydrake.systems.meshcat_visualizer.MeshcatVisualizer ([#17813][_#17813], [#17194][_#17194])
* drake/geometry/render/gl_renderer/render_engine_gl_factory.h include path ([#17812][_#17812], [#17410][_#17410])
* drake/geometry/render/gl_renderer/render_engine_gl_params.h include path ([#17812][_#17812], [#17410][_#17410])

# Notes


This release provides [pre-compiled binaries](https://github.com/RobotLocomotion/drake/releases/tag/v1.8.0) named
``drake-20220919-{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> -->
[_#16937]: https://github.com/RobotLocomotion/drake/pull/16937
[_#17069]: https://github.com/RobotLocomotion/drake/pull/17069
[_#17084]: https://github.com/RobotLocomotion/drake/pull/17084
[_#17169]: https://github.com/RobotLocomotion/drake/pull/17169
[_#17194]: https://github.com/RobotLocomotion/drake/pull/17194
[_#17202]: https://github.com/RobotLocomotion/drake/pull/17202
[_#17275]: https://github.com/RobotLocomotion/drake/pull/17275
[_#17396]: https://github.com/RobotLocomotion/drake/pull/17396
[_#17397]: https://github.com/RobotLocomotion/drake/pull/17397
[_#17410]: https://github.com/RobotLocomotion/drake/pull/17410
[_#17490]: https://github.com/RobotLocomotion/drake/pull/17490
[_#17711]: https://github.com/RobotLocomotion/drake/pull/17711
[_#17727]: https://github.com/RobotLocomotion/drake/pull/17727
[_#17730]: https://github.com/RobotLocomotion/drake/pull/17730
[_#17747]: https://github.com/RobotLocomotion/drake/pull/17747
[_#17750]: https://github.com/RobotLocomotion/drake/pull/17750
[_#17754]: https://github.com/RobotLocomotion/drake/pull/17754
[_#17755]: https://github.com/RobotLocomotion/drake/pull/17755
[_#17757]: https://github.com/RobotLocomotion/drake/pull/17757
[_#17760]: https://github.com/RobotLocomotion/drake/pull/17760
[_#17761]: https://github.com/RobotLocomotion/drake/pull/17761
[_#17762]: https://github.com/RobotLocomotion/drake/pull/17762
[_#17764]: https://github.com/RobotLocomotion/drake/pull/17764
[_#17768]: https://github.com/RobotLocomotion/drake/pull/17768
[_#17770]: https://github.com/RobotLocomotion/drake/pull/17770
[_#17778]: https://github.com/RobotLocomotion/drake/pull/17778
[_#17779]: https://github.com/RobotLocomotion/drake/pull/17779
[_#17783]: https://github.com/RobotLocomotion/drake/pull/17783
[_#17790]: https://github.com/RobotLocomotion/drake/pull/17790
[_#17793]: https://github.com/RobotLocomotion/drake/pull/17793
[_#17796]: https://github.com/RobotLocomotion/drake/pull/17796
[_#17800]: https://github.com/RobotLocomotion/drake/pull/17800
[_#17802]: https://github.com/RobotLocomotion/drake/pull/17802
[_#17810]: https://github.com/RobotLocomotion/drake/pull/17810
[_#17811]: https://github.com/RobotLocomotion/drake/pull/17811
[_#17812]: https://github.com/RobotLocomotion/drake/pull/17812
[_#17813]: https://github.com/RobotLocomotion/drake/pull/17813
[_#17816]: https://github.com/RobotLocomotion/drake/pull/17816
[_#17818]: https://github.com/RobotLocomotion/drake/pull/17818
[_#17821]: https://github.com/RobotLocomotion/drake/pull/17821
[_#17824]: https://github.com/RobotLocomotion/drake/pull/17824
[_#17825]: https://github.com/RobotLocomotion/drake/pull/17825
[_#17827]: https://github.com/RobotLocomotion/drake/pull/17827
[_#17829]: https://github.com/RobotLocomotion/drake/pull/17829
[_#17830]: https://github.com/RobotLocomotion/drake/pull/17830
[_#17834]: https://github.com/RobotLocomotion/drake/pull/17834
[_#17838]: https://github.com/RobotLocomotion/drake/pull/17838
[_#17844]: https://github.com/RobotLocomotion/drake/pull/17844
[_#17845]: https://github.com/RobotLocomotion/drake/pull/17845
[_#17846]: https://github.com/RobotLocomotion/drake/pull/17846
[_#17852]: https://github.com/RobotLocomotion/drake/pull/17852
[_#17859]: https://github.com/RobotLocomotion/drake/pull/17859
[_#17870]: https://github.com/RobotLocomotion/drake/pull/17870
[_#17872]: https://github.com/RobotLocomotion/drake/pull/17872
[_#17876]: https://github.com/RobotLocomotion/drake/pull/17876
[_#17885]: https://github.com/RobotLocomotion/drake/pull/17885
[_#17886]: https://github.com/RobotLocomotion/drake/pull/17886
[_#17887]: https://github.com/RobotLocomotion/drake/pull/17887
[_#17894]: https://github.com/RobotLocomotion/drake/pull/17894
[_#17895]: https://github.com/RobotLocomotion/drake/pull/17895
[_#17896]: https://github.com/RobotLocomotion/drake/pull/17896
[_#17914]: https://github.com/RobotLocomotion/drake/pull/17914
[_#17920]: https://github.com/RobotLocomotion/drake/pull/17920
[_#17944]: https://github.com/RobotLocomotion/drake/pull/17944
[_#17945]: https://github.com/RobotLocomotion/drake/pull/17945
[_#17948]: https://github.com/RobotLocomotion/drake/pull/17948
<!-- <end issue links> -->

<!--
  Current oldest_commit 7abea0556ede980a5077fe1a8cfbae59b57c7c27 (exclusive).
  Current newest_commit ec6cf7cd27253d4d5066f2efc3cde35ced11a2d6 (inclusive).
-->
