Drake v1.30.0

Back to Release Notes

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 a SceneGraphConfig (#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.
  • 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.
  • macOS uses Accelerate for BLAS/LAPACK instead of OpenBLAS (#21135)
    • This follows in the footsteps of numpy and scipy, which have investigated and demonstrated that Accelerate is now the best choice.

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 an int instead of a double (#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 to VPolytope(H: HPolyhedron) (#21536)
  • Mute Gurobi’s warning on small coefficients (#21540)

Multibody Dynamics and Geometry

New features

  • SceneGraph now accepts and uses a SceneGraphConfig (#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

  • Add new tutorial on specifying custom gradients (#21502, #21560)

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__ for SpatialInertia.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

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.