Drake v1.8.0

Back to Release Notes

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).

Refer to our Drake Stability Guidelines for our policy on API changes.

Changes since v1.7.0

Dynamical Systems

New features

  • Add CameraConfig struct and ApplyCameraConfig function (#17827, #17852)

Fixes

  • Camera (sensor) parameters are rigorously validated (#17750)
  • Improve context-system mismatch error messages (#17711)

Mathematical Program

New features

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

Fixes

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

Multibody Dynamics and Geometry

New features

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

Fixes

  • Fix crash when visualizing almost-zero hydroelastic force or moment (#17757)

Planning

  • None

Tutorials and examples

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

Miscellaneous features and fixes

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

pydrake bindings

New features

  • None

Fixes

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

Newly bound

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

Build system

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

Build dependencies

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

Newly-deprecated APIs

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

Removal of deprecated items

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

Notes

This release provides pre-compiled binaries named drake-20220919-{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.