Announcements
- New tutorial “Configuring Rendering Lighting” (#22631)
- macOS packages now use Python 3.13 (#22827)
- The macOS pip wheels for Python 3.12 remain supported.
- The macOS pip wheels for Python 3.11 remain deprecated and will no longer be published in future releases (#22581).
- Drake’s Python wheels on Linux are now based on
manylinux_2_34
(instead ofmanylinux_2_35
) (#22779).- This allows wheels to install and run on more platforms such as Amazon Linux 2023, AlmaLinux 9, RHEL 9, etc.
- Linux wheels for Python 3.13 are now available (#22580).
- Drake’s python bindings no longer use a RobotLocomotion fork of pybind11; instead, the bindings use the upstream version plus two custom patches (#22738). Downstream Bazel projects that reuse Drake’s copy of pybind11 for their own bindings will probably need to adjust their code to be compatible with the updated pybind11.
- Mesh and Convex geometries now allow non-uniform scaling (including mirroring via negative scale). This allows Drake’s to load model files which use such scaling (#22046).
Breaking changes since v1.39.0
- None
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.39.0
Dynamical Systems
New features
- Add discrete-time steady-state Kalman filter (#22687)
- Support
x'Nu
term in discrete-time LQR (#22686) - Implement create IntegratorBase from integration scheme (#22838)
- Implement Integrator::Clone (#22773)
- Support scalar conversion for LuenbergerObserver (#22851)
- Compare RenderEngineParams with existing RenderEngine instances (#22871)
Fixes
- In FiniteHorizonLinearQuadraticRegulator, avoid rejecting system with floating abstract input port (#22762)
Mathematical Program
New features
- None
Fixes
- None
Multibody Dynamics and Geometry
New features
- Enable non-uniform scaling for Mesh and Convex geometries (#22772, #22785, #22822, #22824, #22823)
- Add configuration API for MultibodyPlant DistanceConstraintParams (#22778)
- Add Meshcat::GetButtonNames (#22806)
- Add MultibodyPlant::AddTendonConstraint (#22803)
Fixes
- Remove bogus SAP assertion on Kp > 0 (#22753)
- Fix crash on frame elements not added to a plant (#22821)
- Fix parsing of erroneous curvilinear joint input (#22840)
Planning
New features
- None
Fixes
- KinematicTrajectoryOptimization now leverages gradient sparsity in certain situations: AddAccelerationBounds (#22800), AddJerkBounds (#22800), and AddVelocityConstraint (#22763).
Tutorials and examples
- Add a tutorial teaching about lighting in Drake (#22631)
Miscellaneous features and fixes
- Add ApplyNamedPositionsAsDefaults (#22847, #22849)
- Fix divide-by-zero in ColorizeDepthImage (#22765)
pydrake bindings
New features
- None
Fixes
- Fix lifetime hazards with framework port references (#22775)
- Fix lifetime hazards with simulator constructors (#22781)
- Fix lifetime hazards with solver costs and constraints (#22795)
- Fix DiagramBuilder.AddSystem return value policy (#22884)
- Add missing ApplyCameraConfig overload on LcmInterfaceSystem (#22811)
- Bind DeformableContactInfo and ContactResults access (#22868)
- Add some missing SceneGraph/Inspector bindings (#22879)
Build system
- Upgrade macOS to use Python 3.13 (#22827)
- Add Linux wheels for Python 3.13 (#22580)
- Rebase Linux wheels to
manylinux_2_34
(frommanylinux_2_35
) (#22779) - Fix CMake race condition (#22766)
Build dependencies
- Switch pybind11 to use upstream version, plus two custom patches (#22738, #22832)
- Add macOS wheel deps to install_prereqs –developer (#22875)
- Upgrade Python venv (macOS) to latest versions (#22852)
- Upgrade abseil_cpp_internal to latest commit (#22846)
- Upgrade crate_universe to latest (#22846)
- Upgrade dm_control_internal to latest release 1.0.28 (#22846)
- Upgrade drake_models to latest commit (#22846, #22876)
- Upgrade fcl_internal to latest commit (#22846)
- Upgrade googlebenchmark to latest release 1.9.2 (#22854)
- Upgrade gymnasium_py to latest release 1.1.1 (#22846)
- Upgrade libpng_internal to latest release 1.6.47 (#22861)
- Upgrade mujoco_menagerie_internal to latest commit (#22846)
- Upgrade nanoflann_internal to latest release 1.7.1 (#22846)
- Upgrade pycodestyle to latest release 2.13.0 (#22846)
- Upgrade ros_xacro_internal to latest release 2.0.13 (#22846)
- Upgrade stable_baselines3_internal to latest release 2.6.0 (#22846)
- Upgrade styleguide to latest commit (#22878)
- Upgrade suitesparse_internal to latest release 7.10.1 (#22846)
- Upgrade toolchains_llvm to latest release 1.4.0 (#22888)
- Upgrade tinyxml2_internal to latest release 11.0.0 (#22846)
- Upgrade typing_extensions_internal to latest release 4.13.0 (#22846)
- Upgrade vtk_internal to latest commit (#22702, #22857)
Newly-deprecated APIs
DiscreteTimeApproximation
has moved packages; it is now part of thedrake/systems/analysis
package instead ofdrake/systems/primitives
; developers should update their include or import paths (#22867).
Removal of deprecated items
- The
@common_robotics_utilities
external (#22334, #22834) - The
@voxelized_geometry_tools
external (#22334, #22834) drake::geometry::Convex::filename
(#21881, #22834)drake::geometry::Mesh::filename
(#21881, #22834)drake::solvers::SemidefiniteRelaxationOptions::preserve_convex_quadratic_constraints
(#22123, #22834)drake::systems::controllers::JointStiffnessController::get_output_port_generalized_force()
(#22329)drake::systems::controllers::JointStiffnessController
output port namedgeneralized_force
(#22329, #22834)
Notes
This release provides pre-compiled binaries named
drake-1.40.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.