Announcements
- MultibodyPlant now provides function SetBaseBodyJointType() which can be
called pre-Finalize to control what type of joint is used for connecting
unattached bodies to World (#21973).
- The default choice remains QuaternionFloatingJoint but RpyFloatingJoint and WeldJoint are options that can be set globally or for particular Model Instances.
- The Joint API is extended to permit setting pose and velocity generically without knowing the underlying joint type.
Breaking changes since v1.34.0
- None
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.34.0
Dynamical Systems
New features
- None
Fixes
- Fix
RgbdSensorimage size parameterization crash (#22065)
Mathematical Program
New features
- Add a convenience method for solving mathematical programs in parallel in both C++ and Python (#21957)
- Add
CommonSolverOption::to_string(#22079) - Introduce
ImplicitGraphOfConvexSets(#22074) - Leverage parallelization where possible when checking boundedness of a
ConvexSet(#22084) - Set gradient sparsity pattern in
LorentzConeConstraintandRotatedLorentzConeConstraint(#22125) - Update single entry of coefficients in
LinearCostandQuadraticCost(#22152) - Parallelize
ComputePairwiseIntersections()for Graph of Convex Sets (with or without continuous revolute joints) (#22142) - Retrieve dual solution for
LinearMatrixInequalityConstraintfor Mosek (#22144) - Parallelize the
GraphOfConvexSetspreprocessing stage (#21965)
Fixes
- Throw when
IpoptSolveroptions are invalid (#22062) - Use
GraphOfConvexSetsOptions::preprocessing_solver_optionseven if a specificpreprocessing_solveris not specified (#22077) - Fix Gurobi console logging to obey our defaults again (#22108)
- Fix bugs where empty
HPolyhedron’s were reported to be unbounded (#22117) - Fix the boundedness check of
MinkowskiSum(#22084) - Fix
GraphOfConvexSetswhen passing in a trivially-infeasible upper bound (#22090) - Move the warning on small-size PSD matrix to each solver backend (#22136)
Multibody Dynamics and Geometry
New features
- Allow
GeometryInstanceto be registered throughMultibodyPlantwith clarifications on the related semantics (#22102) - Add precomputed values to
VolumeMeshandMeshFieldLinear(#22097) - Allow floating bodies to use
RpyFloatingJoint(#21973)
Fixes
- RenderEngineVtk now uses EGL by default on Ubuntu (#22081)
- Bug fixes for
SapHolonomicCosnstraintandSapDriver::AddWeldConstraints()(#22057) - Fix
//geometry/proximity:refine_meshfor cwd-relative paths (#22106) - Improve exception message for bad geometry (zero volume mesh) in .obj file (#21929)
Planning
New features
- Add
symbolic::Expressioncosts andsymbolic::Formulaconstraints toSubgraphsinGcsTrajectoryOptimization(#22091)
Fixes
- None
Tutorials and examples
- None
Miscellaneous features and fixes
- Implement
drake::trajectories::FunctionHandleTrajectory(#21093) - Add requires clause to
drake::math::RigidTransformanddrake::math::RotationMatrixcast (#22094) - Add
drake::schema::Rotation::Sample()(#22113) - Add
SliceByTime()fordrake::trajectories::PiecewisePolynomial(#22099)
pydrake bindings
New features
- Add
info_handlercallback topydrake.gym.DrakeGymEnv(#21900) - Bind
pydrake.trajectories.FunctionHandleTrajectory(#21093)
Fixes
- Bind
copyforpydrake.perception.PointCloud(#22148) - Bind
pydrake.solvers.LinearEqualityConstraint.UpdateCoefficientswith a sparse matrix (#22151)
Build system
- None
Build dependencies
- Force-disable CoinUtils debugging hooks (#22063)
- Upgrade abseil_cpp_internal to latest commit (#22118)
- Upgrade bazel to latest release 7.4.0 (#22066)
- Upgrade bazelisk to latest release v1.22.1 (#22119)
- Upgrade crate_universe to latest releases (#22119)
- Upgrade dm_control_internal to latest release 1.0.24 (#22119)
- Upgrade drake_models to latest commit (#22103)
- Upgrade gymnasium_py to latest release v1.0.0 (#22121)
- Upgrade msgpack_internal to latest release cpp-7.0.0 (#22119)
- Upgrade mujoco_menagerie_internal to latest commit (#22119)
- Upgrade mypy_internal to latest release v1.13.0 (#22119)
- Upgrade nanoflann_internal to latest release v1.6.2 (#22130)
- Upgrade openusd_internal to latest release 24.11 (#22082)
- Upgrade rules_python to 0.36.0 (#22129)
- Upgrade rules_rust to latest release 0.53.0 (#22119)
- Upgrade statsjs to latest commit (#22119)
- Upgrade suitesparse_internal to latest release v7.8.3 (#22119)
- Upgrade tinyobjloader_internal to latest commit (#22119)
- Upgrade vtk_internal to latest commit (#22119)
Newly-deprecated APIs
CommonSolverOption::operator<<(#22079)
Removal of deprecated items
drake::geometry::MeshcatVisualizer::ResetRealtimeRateCalculator()(#22086)drake::multibody::CalcSpatialInertia()with the default density value (#22086)drake::multibody::HydroelasticContactInfo::HydroelasticContactInfo()withquadrature_point_dataargument (#22086)drake::multibody::HydroelasticContactInfo::quadrature_point_data()(#22086)drake::systems::VectorSystem::VectorSystem()withoutdirect_feedthroughargument (#22086)//multibody/plant:deformable_contact_info(#22086)//multibody/plant:hydroelastic_contact_info(#22086)//multibody/plant:hydroelastic_quadrature_point_data(#22086)//multibody/plant:hydroelastic_traction(#22086)//multibody/plant:point_pair_contact_info(#22086)pydrake.geometry.MeshcatVisualizer.ResetRealtimeRateCalculator()(#22086)pydrake.systems.framework.VectorSystem()withoutdirect_feedthroughargument (#22086)
Notes
This release provides pre-compiled binaries named
drake-1.35.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.