Announcements
- Add
drake::logging::levelaliases in preparation for changes to Drake’s logging API (#24201).- For downstream code that uses
drake/common/text_logging.hand manipulates log levels, this provides a glidepath from usingspdlog::levelto configure log severity to its future replacementdrake::logging::level. - In this release, the levels are aliases into
spdlog. In the next release, Drake’s levels will become de-coupled fromspdlog. Users are advised to port to the new aliases to prevent disruption.
- For downstream code that uses
- The TAMSI solver is deprecated and will be removed from Drake on 2026-09-01 (#24089).
Previously announced
- This release will be the last version that supports Ubuntu 22.04 (“Jammy”).
- As a result, we will have some new lower bounds on supported versions
starting with the next release (v1.52.0):
- C++ standard >= 23
- GCC >= 13
- Clang >= 19
- Python >= 3.12
- fmt >= 9.1
- spdlog >= 1.12
- End of life timelines are documented as part of the Supported Configurations.
- As a result, we will have some new lower bounds on supported versions
starting with the next release (v1.52.0):
- Docker images are deprecated are will no longer be published after 2026-06-01 (#24048).
- Drake is switching to a new AutoDiff implementation (#23870).
- The old implementation is still the default, but on 2026-04-01 the default will change to the new implementation, and on 2026-07-01 the old implementation will be removed.
- Users should experiment with the new implementation as soon as practical, to
discover any problems early and file Drake issues when relevant. To switch
to the new implementation:
- CMake builds:
-DDRAKE_USE_EIGEN_LEGACY_AUTODIFF=OFF. - Bazel builds:
--@drake//tools/flags:use_eigen_legacy_autodiff=False.
- CMake builds:
Breaking changes since v1.50.0
MultibodyPlantnow enforces effort limits in all plant modes (#24115).- When computing a dynamic step, actuation effort limits set on a
MultibodyPlantare always enforced now via clamping, whether in continuous-time mode or discrete-time mode (and with all discrete solvers). Previously, effort limits were only enforced when an active PD controller was used with the SAP solver. - To remove any unwanted limit(s), users who don’t want effort limiting can
opt-out specific joints with
joint.set_effort_limit(np.inf)or all joints withplant.RemoveAllJointActuatorEffortLimits().
- When computing a dynamic step, actuation effort limits set on a
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.50.0
Dynamical Systems
New features
- None
Fixes
- None
Mathematical Program
New features
- None
Fixes
- None
Multibody Dynamics and Geometry
New features
MultibodyPlantsupports continuous-timedesired_stateinput ports (#24107)- Add
JointActuator::set_effort_limit()(#24108) - Add
MultibodyPlant::RemoveAllJointActuatorEffortLimits()(#24108) - Add
p_BQas a free variable inPositionConstraint(#23967)
Fixes
- Enforce effort limits in all plant modes (#24115)
- Refine CENIC feature support checks (#24079)
- Fix a CENIC bug with joint index handling (#24100)
Planning
New features
- None
Fixes
- None
Tutorials and examples
- None
Miscellaneous features and fixes
pydrake bindings
New features
- None
Fixes
Build system
Build dependencies
- Update dependency abseil_cpp_internal to 20260107.1 (#24178)
- Update dependency apple_support to 2.3.0 (#24153)
- Update dependency bazel_features to 1.42.0 (#24155)
- Update dependency common_robotics_utilities_internal to latest commit (#23834)
- Update dependency crate_universe to latest (#24182)
- Update dependency drake_models to latest commit (#24178)
- Update dependency eigen to 5.0.1.bcr.1 (#24156)
- Update dependency gklib_internal to latest commit (#24178)
- Update dependency implib_so_internal to latest commit (#24178)
- Update dependency libpng_internal to 1.6.55 (#24178)
- Update dependency libx11 to 1.8.12.bcr.5 (#24158)
- Update dependency nlopt_internal to 2.10.1 (#24178)
- Update dependency ruff_prebuilt to 0.15.0.1 (#24160)
- Update dependency rules_cc to 0.2.17 (#24106)
- Update dependency rules_java to 9.6.1 (#24163)
- Update dependency rules_python to 1.9.0 (#24191, #24154)
- Update dependency rules_rust to 0.69.0 (#24164)
- Update dependency suitesparse_internal to 7.12.2 (#24178)
- Update dependency tinyobjloader_internal to latest commit (#24178)
- Update dependency uwebsockets_internal to 20.75.0 (#24178)
- Update dependency voxelized_geometry_tools_internal to latest commit (#23834)
- Update dependency vtk_internal to latest commit (#24181)
- Update dependency zlib to 1.3.2 (#24159)
- Update python venv to latest (#24184)
Newly-deprecated APIs
- TAMSI solver (#24089)
drake::multibody::SpatialAcceleration::operator<<(#24195)drake::multibody::SpatialForce::operator<<(#24195)drake::multibody::SpatialMomentum::operator<<(#24195)drake::multibody::SpatialVelocity::operator<<(#24195)drake::perception::Fields::operator<<(#24093)drake::solvers::Binding::operator<<(#24173)drake::solvers::EvaluatorBase::operator<<(#24173)drake::solvers::MixedIntegerRotationConstraintGenerator::Approach::operator<<(#24132)drake::solvers::ProgramAttribute::operator<<(#24105)drake::solvers::ProgramAttributes::operator<<(#24105)drake::solvers::ProgramType::operator<<(#24105)drake::solvers::SolverId::operator<<(#24132)drake::systems::VectorBase::operator<<(#24187)
Removal of deprecated items
drake::geometry::GeometryProperties::operator<<(#23800, #24165)drake::geometry::Rgba::operator<<(#23800, #24165)drake::geometry::Role::operator<<(#23800, #24165)drake::geometry::render::LightFrame::operator<<(#23800, #24165)drake::geometry::render::LightType::operator<<(#23800, #24165)drake::geometry::render::RenderLabel::operator<<(#23800, #24165)drake::geometry::render::to_string(RenderLabel)(#23800, #24165)drake::logging::get_disk_sinkbut only when included viadrake/common/text_logging.hor if spdlog is disabled (#23815, #24166)drake::solvers::MobyLCPSolver(#23776, #24165)
Notes
This release provides pre-compiled binaries named
drake-1.51.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.