Drake v1.12.0

Back to Release Notes

Announcements

  • Drake now provides PyPI wheels for Python 3.11 running on Linux (#18468).

Breaking changes since v1.11.0

  • Demote the InputPortBase protected constructor out of the Stable API, and change its signature (#18525).
    • We expect that nobody was using this constructor in practice.
  • MultibodyElement no longer takes the Body and BodyNodeIndex template parameters. We expect that nobody was using that class in practice, but if you were, simply delete the first and last template parameters. (#18460) (#18526)

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

Changes since v1.11.0

Dynamical Systems

New features

  • None

Fixes

  • None

Mathematical Program

New features

  • NloptSolver’s algorithm can be set via SolverOptions::SetOption; see the documentation for solver options for details. (#18535)
  • Add ability to construct an HPoyhedron from a VPolytope (#18493)

Fixes

  • None

Multibody Dynamics and Geometry

New features

  • Add ComputeQ to rational forward kinematics (#18476)
  • Add ability for SceneGraph to change geometry shape (#18513)

Fixes

  • Fix misuse of forward-declared classes (#18538)
  • Change a user-facing error to throw, not abort (#18543)
  • When directly constructing mesh objects (not via SDFormat/URDF parsers), paths to mesh geometries are no longer documented as absolute paths; relative paths will be resolved to absolute paths based on the working directory. (#18536)

Planning

New features

Fixes

  • None

Tutorials and examples

  • Add carrot scooping video to the drake gallery (#18489)

Miscellaneous features and fixes

  • Add sliders for geometry alpha in MeshcatVisualizer (#18454) (#18469) (#18481)
  • Enable manual model reloading in ModelVisualizer (#18488)

pydrake bindings

New features

  • Rational forward kinematics python bindings (#18495)
  • Begin adding typed (i.e., schema-based) YAML loading (#18564)

Fixes

  • Add __repr__ to several classes (#18529)

Build system

New features

  • Add Linux Python 3.11 wheel (#18468)

Fixes

  • Allow unsupported compilers with warning (CMake) (#18498)

Build dependencies

  • Add dependency on OpenAI Gym (#18440)
  • Add dependency on a subset of stable_baselines3 (#18440)
  • Upgrade abseil_cpp_internal to latest commit (#18516)
  • Upgrade curl_internal to latest release 7.87.0 (#18516)
  • Upgrade dm_control_internal to latest commit (#18516)
  • Upgrade googlebenchmark to 1.7.1 (#18457)
  • Upgrade petsc to latest release 3.18.3 (#18516)
  • Upgrade rules_python to latest release 0.16.1 (#18524)
  • Upgrade stable_baselines3_internal to latest release 1.6.2 (#18516)
  • Upgrade tinyobjloader to latest commit (#18516)
  • Upgrade usockets to latest release 0.8.5 (#18516)
  • Upgrade uwebsockets to latest releases 20.35.0 (#18516)
  • Drake is now compatible with NumPy 1.24 (#18486)
  • Drake is now compatible with any Gurobi 9.5.x patch version (#18464)
  • Build msgpack privately from source (#18559)
  • Fix conex build with modern compilers (#18537)
  • Add pybind11_strip to the CMake build to enable -DCMAKE_BUILD_TYPE=Release (#18453)
  • Avoid accidentally installing OpenBLAS (#18540)

Newly-deprecated APIs

  • The parameter absolute_pathname in pydrake.geometry.Mesh() and pydrake.geometry.Convex() has been renamed pathname (#18536)
  • Deprecate “register w.r.t. geometry” SceneGraph APIs (#18448)
    • geometry::SceneGraph.RegisterGeometry (the geometry-as-parent overloads)
    • geometry::SceneGraphInspector.GetPoseInParent
  • Repair some physical dependency defects in MultibodyTree (#18522)
    • Bazel label //multibody/tree:multibody_element
  • The @msgpack external (#18559)

Removal of deprecated items

  • drake::systems::ApplySimulatorConfig with simulator argument first (#18533)
  • The @tinyxml2 external (#18509)
  • The @ghc_filesystem external (#18509)
  • The @json external (#18532)
  • The @nlopt external (#18532)
  • Require Finalize() to be called before state counts are available (remove previous deprecated behavior of returning inaccurate counts) (#18515)
    • multibody::plant::MultibodyPlant.num_positions when called pre-Finalize()
    • multibody::plant::MultibodyPlant.num_velocities when called pre-Finalize()
    • multibody::plant::MultibodyPlant.num_mulitbody_states when called pre-Finalize()
  • Several Differential Inverse Kinematics parameters (#18549)
    • manipulation::planner::DifferentialInverseKinmeaticsParameters() with no arguments.
    • manipulation::planner::DifferentialInverseKinmeaticsParameters.get_timestep()
    • manipulation::planner::DifferentialInverseKinmeaticsParameters.set_timestep()
    • manipulation::planner::DifferentialInverseKinmeaticsParameters.get_end_effector_velocity_gain()
    • manipulation::planner::DifferentialInverseKinmeaticsParameters.set_end_effector_velocity_gain()
    • manipulation::planner::DifferentialInverseKinmeaticsParameters.get_unconstrained_degrees_of_freedom_velocity_limit()
    • manipulation::planner::DifferentialInverseKinmeaticsParameters.set_unconstrained_degrees_of_freedom_velocity_limit()

Notes

This release provides pre-compiled binaries named drake-20230112-{focal|jammy|mac|mac-arm64}.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.