Announcements
- Drake now officially supports Ubuntu 24.04 (“Noble Numbat”).
- Refer to OS Support for background about our support timelines.
SceneGraph
now accepts and uses aSceneGraphConfig
(#21366)- This enables setting default values for proximity properties (e.g.,
hunt_crossley_dissipation
) that will be used in the absence of more specific properties given in model files being loaded. - Most importantly, users can set the default value for
compliance_type
to"compliant"
to use compliant-hydroelastic contact throughout the scene, without editing existing model files.
- This enables setting default values for proximity properties (e.g.,
- OsqpSolver runs in deterministic mode by default (#21434)
- Users who wish to keep using “adaptive rho” can set the solver option
adaptive_rho_interval=0
to restore the prior behavior.
- Users who wish to keep using “adaptive rho” can set the solver option
- macOS uses Accelerate for BLAS/LAPACK instead of OpenBLAS (#21135)
- This follows in the footsteps of
numpy
andscipy
, which have investigated and demonstrated that Accelerate is now the best choice.
- This follows in the footsteps of
Breaking changes since v1.29.0
- Multibody vector methods that operate in place (i.e., with
InPlace
in their method name) no longer return*this
(#21438).- The classes with affect methods are: articulated body inertia, rotational inertia, spatial acceleration, spatial force, spatial inertia, spatial momentum, spatial velocity, unit inertia.
- Using the return value was actually worse for performance, defeating the purpose of the efficient in-place mutation.
MultibodyPlant::set_contact_surface_representation
can no longer be called post-Finalize (#21559)
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.29.0
Dynamical Systems
New features
- None
Fixes
- None
Mathematical Program
New features
- MathematicalProgram supports parsing symbolic L2 norm costs (#21394)
- CsdpSolver obeys SolverOptions (#21449)
- IpoptSolver uses the sparsity parttern of the constraints (#21492, #21499)
Fixes
- Speed up affine hull computation (#21525)
- OsqpSolver runs in deterministic mode by default (#21434)
- OsqpSolver option
adaptive_rho_interval
is parsed as anint
instead of adouble
(#21434) - In HPolyhedron to VPolytope, fix a linear solver bug, and also a related bug where vertices with non-unique hyperplane descriptions would throw (#21527)
- Add missing
tol
argument toVPolytope(H: HPolyhedron)
(#21536) - Mute Gurobi’s warning on small coefficients (#21540)
Multibody Dynamics and Geometry
New features
SceneGraph
now accepts and uses aSceneGraphConfig
(#21366)SapSolver<AutoDiffXd>::SolveWithGuess
propagates gradients (#21431)DifferentialInverseKinematics
allows setting solver options (#21433)- Add
MultibodyPlant::EvalSceneGraphInspector
sugar accessor (#21563) - Add
MultibodyPlant::GetConstraintIds
(#21483) - Add
SpatialInertia::IsZero
sugar accessor (#21515)
Fixes
- Update default proximity properties resolution hint (#21511)
- Fix uniqueness of RenderEngineGl buffers across instances (#21466)
- Change some
...InPlace
functions to return void (#21438)
Planning
New features
GcsTrajectoryOptimization
supports adding nonlinear derivative bounds (#21459)GcsTrajectoryOptimization
supports adding nonlinear continuity constraints (#21480)
Fixes
- Fix -inf lower bound in GcsTrajectoryOptimization subspace constraint (#21384)
Tutorials and examples
Miscellaneous features and fixes
- Add model_visualizer option for hydroelastic contact (#21548)
pydrake bindings
New features
- None
Fixes
- Add
Parallelism.__repr__
(#21517) - Add
SpatialInertia.__repr__
forSpatialInertia.Zero()
(#21515) - Backfill a few missing
SpatialInertia
bindings (#21515)
Build system
- On macOS add
/usr/sbin
and/sbin
to$PATH
(#21465) - Export Drake version in drake-config.cmake (#21450)
- The
vector_gen
codegen tool has been removed (#21439)
Build dependencies
- Add rules_cc as a required dependency (#21545)
- Add tinygltf_internal as a required dependency (#21521)
- On macOS switch to use Accelerate for BLAS/LAPACK instead of OpenBLAS (#21135)
- On macOS we no longer directly use openblas (#21135)
- On macOS prune some unused dependencies (#21454)
- Upgrade abseil_cpp_internal to latest commit (#21537)
- Upgrade bazel_skylib to latest release 1.7.1 (#21537)
- Upgrade bazelisk to latest release 1.20.0 (#21537)
- Upgrade buildifier to latest release 7.1.2 (#21537)
- Upgrade clarabel_cpp_internal to latest release 0.9.0 (#21543)
- Upgrade crate_universe to latest releases (#21543)
- Upgrade curl_internal to latest release 8.8.0 (#21544)
- Upgrade dm_control_internal to latest release 1.0.20 (#21537)
- Upgrade drake_models to latest commit (#21442)
- Upgrade googlebenchmark to latest release 1.8.4 (#21537)
- Upgrade rules_python to latest release 0.33.0 (#21537, #21564)
- Upgrade rules_rust to latest release 0.46.0 (#21545)
- Upgrade rust_toolchain to latest (#21545)
- Upgrade sympy_py_internal to latest release 1.12.1 (#21537)
- Upgrade typing_extensions_internal to latest release 4.12.1 (#21537)
- Upgrade vtk_internal to latest commit (#21542)
Newly-deprecated APIs
drake::multibody::Parser.collision_filter_groups
(#21562)drake::multibody::constraint::ConstraintAccelProblemData
(#21445)drake::multibody::constraint::ConstraintSolver
(#21445)drake::multibody::constraint::ConstraintVelProblemData
(#21445)- The
@openblas
external (#21135) - The following include paths (#21439)
- For all of those, remove
gen/
directory part to use the non-deprecated include path:drake/examples/acrobot/gen/acrobot_input.h
drake/examples/acrobot/gen/acrobot_params.h
drake/examples/acrobot/gen/acrobot_state.h
drake/examples/acrobot/gen/spong_controller_params.h
drake/examples/compass_gait/gen/compass_gait_continuous_state.h
drake/examples/compass_gait/gen/compass_gait_params.h
drake/examples/pendulum/gen/pendulum_input.h
drake/examples/pendulum/gen/pendulum_params.h
drake/examples/pendulum/gen/pendulum_state.h
drake/examples/rimless_wheel/gen/rimless_wheel_continuous_state.h
drake/examples/rimless_wheel/gen/rimless_wheel_params.h
drake/manipulation/schunk_wsg/gen/schunk_wsg_trajectory_generator_state_vector.h
drake/systems/sensors/gen/beam_model_params.h
- For all of those, remove
Removal of deprecated items
drake::geometry::SceneGraphInspector::Reify
(#21503, #20872)drake::geometry::ShapeName
(#21503, #20870)drake::geometry::ShapeToString
(#21503, #20870)drake::multibody::BallRpyJoint::damping()
(#21503, #20947)drake::multibody::Joint::damping_vector()
(#21503, #20947)drake::multibody::PlanarJoint::damping()
(#21503, #20947)drake::multibody::PrismaticJoint::damping()
(#21503, #20947)drake::multibody::QuaternionFloatingJoint::angular_damping()
(#21503, #20947)drake::multibody::QuaternionFloatingJoint::translational_damping()
(#21503, #20947)drake::multibody::RevoluteJoint::damping()
(#21503, #20947)drake::multibody::RpyFloatingJoint::angular_damping()
(#21503, #20947)drake::multibody::RpyFloatingJoint::translational_damping()
(#21503, #20947)drake::multibody::ScrewJoint::damping()
(#21503, #20947)drake::multibody::UniversalJoint::damping()
(#21503, #20947)
Notes
This release provides pre-compiled binaries named
drake-1.30.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.