Drake v1.41.0

Back to Release Notes

Announcements

  • None

Breaking changes since v1.40.0

  • None

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

Changes since v1.40.0

Dynamical Systems

New features

  • Add DiscreteTimeApproximation for converting general continuous-time systems (#22652)
  • Support symbolic scalar type integrators in DiscreteTimeApproximation (#22913)
  • Add scalar conversion for Saturation (#22934)

Fixes

  • None

Mathematical Program

New features

  • Add ProjectedGradientDescentSolver (#22947)

Fixes

  • IpoptSolver accepts integers for floating-point options (#22927)

Multibody Dynamics and Geometry

New features

  • Enable reverse revolute joints (#22883)
  • Allow reversed prismatic joints (#22949)

Fixes

  • GetBodiesKinematicallyAffectedBy no longer throws on welds (#23004)
  • GetScopedFrameByName accepts string_view (#23014)

Planning

New features

  • Set sparsity pattern for KinematicTrajectoryOptimization effort bounds (#22912)
  • Add JointLimits data type (#23000)
  • Introduce IrisCommonOptions for options shared between IRIS-ZO and IRIS-NP2 (#22982)
  • Add DofMask data type (#23010)

Fixes

  • None

Tutorials and examples

  • None

Miscellaneous features and fixes

  • Overload ExtractValue and ExtractGradient to allow preallocated output matrix (#22895)
  • Add more IiwaDriver config options (#22916)

pydrake bindings

New features

  • Add bindings for drake::geometry::QueryObject::GetConfigurationsInWorld (#23011)
  • Add bindings for drake::manipulation::schunk_wsg::SchunkWsgTrajectoryGenerator (#22900)
  • Add bindings for drake::solvers::ProjectedGradientDescentSolver (#22986)

Fixes

  • Accept pathlib.Path for paths in pydrake.multibody.parsing.{Parser.AddModels, LoadModelDirectives} (#22936)
  • Fix a memory hazard in pydrake.multibody.inverse_kinematics.InverseKinematics (#22982)
  • Fix meldis crash on gltf embedded png (#23013)

Build system

  • Support modern versions of user-provided spdlog in CMake (#22915)
  • Update CMake versioning policies for Drake source and installation (#22898)
  • Use our bazelversion pin in CMake builds also (#22901)

Build dependencies

  • Switch to libclang-17 on Noble (#22919)
  • Upgrade abseil_cpp_internal to latest commit (#22964)
  • Upgrade bazel to latest release 8.2.1 (#22929)
  • Upgrade bazelisk to latest release 1.26.0 (#22964)
  • Upgrade buildifier to latest release 8.2.0 (#22964)
  • Upgrade bzlmod eigen to 3.4.0.bcr.3 (#22918)
  • Upgrade common_robotics_utilities to latest commit (#22971)
  • Upgrade crate_universe to latest (#22964)
  • Upgrade curl_internal to latest release 8.13.0 (#22965)
  • Upgrade dm_control_internal to latest release 1.0.30 (#22964)
  • Upgrade drake_models to latest commit (#22964)
  • Upgrade gtest to latest release 1.17.0 (#22972)
  • Upgrade libpng_internal to latest release 1.6.48 (#22964)
  • Upgrade meshcat to latest commit (#22932)
  • Upgrade mujoco_menagerie_internal to latest commit (#22964)
  • Upgrade mypy_extensions_internal to latest release 1.1.0 (#22964)
  • Upgrade nlohmann_internal to latest release 3.12.0 (#22964)
  • Upgrade python venv (mac) to latest (#22984)
  • Upgrade rules_java to 8.11.0 (#22929)
  • Upgrade suitesparse_internal to latest release 7.10.2 (#22964)
  • Upgrade sympy_py_internal to latest release 1.14.0 (#22964)
  • Upgrade typing_extensions_internal to latest release 4.13.2 (#22964)
  • Upgrade voxelized_geometry_tools to latest commit (#22933)

Newly-deprecated APIs

  • drake::manipulation::kuka_iiwa::BuildIiwaControl() 8 argument overload (#22916)
  • drake::manipulation::kuka_iiwa::BuildSimplifiedIiwaControl() 7 argument overload (#22916)

Removal of deprecated items

  • drake::planning::graph_algorithms::MaxCliqueSolverBase::Clone (#22938)
  • drake::solvers::CommonSolverOption::operator<< (#22938)
  • drake::solvers::MathematicalProgram::GetSolverOptionsDouble() (#22938)
  • drake::solvers::MathematicalProgram::GetSolverOptionsInt() (#22938)
  • drake::solvers::MathematicalProgram::GetSolverOptionsStr() (#22938)
  • drake::solvers::MobyLCPSolver::SetLoggingEnabled (#22938)
  • drake::systems::analysis::SimulatorFactory (#22938)
  • drake::systems::sensors::RgbdSensorAsync::color_camera (#22938)
  • drake::systems::sensors::RgbdSensorAsync::depth_camera (#22938)
  • drake::systems::sensors::RgbdSensorAsync::parent_id (#22938)
  • drake::systems::sensors::RgbdSensorAsync::X_PB (#22938)
  • pydrake.solvers.SolverOptions.SetOption with parameters solver_option and option_value (#22938)
  • Certain yaml implicit primitive type conversions during parsing (#22940)
  • LCM install with CMake install and binary packages (#22939)
  • MUMPS as an IPOPT linear solver (#22937)
  • Subclassing drake::multibody::MultibodyPlant (#22938)
  • Support for macOS for Python 3.11 wheels (#22893)
  • The @cc external (#22941)
  • The @glx external (#22941)
  • The @ipopt external (#22937)
  • The @libblas external (#22941)
  • The @liblapack external (#22941)
  • The @opengl external (#22941)

Notes

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