Drake v1.26.0

Back to Release Notes

Announcements

  • macOS wheels on PyPI now support both Python 3.11 and Python 3.12 (#20616).
  • This is the last release that will support Ubuntu 20.04 (“Focal”).

Breaking changes since v1.25.0

  • The FindSeparationCertificateOptions.num_threads property is now deprecated in Python, and removed in C++. Use parallelism instead (#20776).

  • RenderEngine no longer inherits ShapeReifier (#20873).

    • This might be a breaking change for code that implemented its own custom RenderEngine and was using this as the ShapeReifier receiver. To fix the break, inherit from ShapeReifier directly yourself. See #20873 for suggestions.

Refer to our Drake Stability Guidelines for our policy on API changes.

Changes since v1.25.0

Dynamical Systems

New features

  • None

Fixes

  • Update MonteCarlo to use Parallelism API (#20785)
  • Fix broken Graphviz on systems with <,>,& characters (#20915)

Mathematical Program

New features

  • IrisOptions: add more user control over termination (#20645)

Fixes

  • Adjust “cspace free” to use the Parallelism helper (#20776)
  • Remove ShapeReifier as a public base of ConvexSet (#20832)
  • Remove explicit constructor on struct IrisOptions (#20845)
  • Adjust ClarabelSolver default tolerances (#20844)
  • Implement mixing_steps for uniform sampling in HPolyhedra (#20817)
  • When removing GCS vertex, also fully remove adjacent edges (#20875)
  • Fix QHull error when transforming between HPolyhedron and VPolytope with ambient dimension 1 (#20893)
  • Normalize rows of the matrix [A,b] in HPolyhedron::MaximumVolumeInscribedEllipsoid to prevent numerical issues (#20849)

Multibody Dynamics and Geometry

New features

  • Add support for non-world reference frames to differential inverse kinematics (#20735)
  • Add optional role parameter to GetAllGeometryIds (#20834)
  • Add Shape::type_name, Shape::to_string, and fmt formatter (#20870)
  • Add MeshcatParams option for initial_properties (#20920)
  • RenderEngineGltfClient can use non-embedded glTFs (they become embedded on the fly) (#20933)

Fixes

  • Meshcat serves the environment map over http (#20793)
  • Meshcat unbundles glTFs to improve loading times for large files (#20877)
  • Meshcat returns 404 (not 200) on failures (#20790)
  • Meshcat StaticHtml no longer has browser console error messages (#20791)
  • Meshcat recording framerate defaults to 64 fps (#20926)
  • Defer surface meshing for deformables when inactive (#20822)
  • Fast initialize compliant-hydroelastic nonconvex meshes and deformables (#20798)
  • Fix bug in glTF depth and label representations in RenderEngineVtk (#20854)
  • Allow add_directives of directives including collision filters (#20757)
  • Fix bugs in VTK’s glTF parser logic (#20818)

Planning

New features

  • Partition convex sets to satisfy convexity radius property (#20655)
  • Support wraparound edges for unbounded revolute joints when adding edges between subgraphs (#20700)

Fixes

  • Fix index query bug in PairwiseIntersectionsContinuousJoints (#20857)

Tutorials and examples

  • None

Miscellaneous features and fixes

  • Add Sha256 utility class (#20779)
  • Fix for SchunkWsgTrajectoryGenerator failing on delta=0 (#20828)
  • Add EigenMapView to aid interop with C++ containers (#20906)
  • Adjust iiwa 7 velocity and effort limits (#20917)
  • Add iiwa 7 acceleration limits (#20921)
  • Fix depth colorization to use brighter for nearer (#20940)
  • Add Meldis –meshcat–params option (#20927)

pydrake bindings

New features

  • yaml_load_typed uses schema=type(defaults) by default (#20922)
  • yaml_load_typed supports Union[List[T], ...] (#20919)

Fixes

  • Release the GIL during blocking Meshcat operations (#20810)
  • Release the GIL during “Run” functions (#20811)
  • Bind Hyperrectangle::MaybeCalcAxisAlignedBoundingBox (#20804)
  • Bind GetScopedFrameByNameMaybe (#20905)
  • Bind ConvexSet::CalcVolumeViaSampling (#20843)

Build system

  • Build macOS wheels for multiple Python versions (#20616)

Build dependencies

  • Enable ClarabelSolver during linux wheel builds (#20802)
  • Remove macOS-specific logic for zlib (#20829)
  • Upgrade abseil_cpp_internal to latest commit (#20900)
  • Upgrade common_robotics_utilities to latest commit (#20786)
  • Upgrade crate_universe to latest versions (#20814, #20900)
  • Upgrade curl_internal to latest release curl-8_6_0 (#20900)
  • Upgrade drake_models to latest commit (#20858)
  • Upgrade eigen to latest release 3.4.0 for wheel builds (#20802)
  • Upgrade ipopt_internal_fromsource to latest release releases/3.14.14 (#20900)
  • Upgrade libpng_internal to latest release v1.6.42 (#20900)
  • Upgrade meshcat to latest commit (#20805, #20876, #20904, #20938)
  • Upgrade nanoflann_internal to latest release v1.5.4 (#20900)
  • Upgrade ros_xacro_internal to latest release 1.14.17 (#20900)
  • Upgrade rules_license to latest release 0.0.8 (#20900)
  • Upgrade rules_python to latest release 0.29.0 (#20902)
  • Upgrade rules_rust, rust_toolchain to latest verions (#20901)
  • Upgrade suitesparse_internal to latest release v7.6.0 (#20900)
  • Upgrade tinyobjloader_internal to latest commit (#20900)
  • Upgrade vtk_internal to latest commit (#20765, #20867, #20900)

Newly-deprecated APIs

  • drake::geometry::optimization::FindSeparationCertificateOptions::num_threads in Python (#20776)
  • drake::geometry::render::RenderEngine::GetColorDFromLabel (#20860)
  • drake::geometry::render::RenderEngine::GetColorIFromLabel (#20860)
  • drake::geometry::render::RenderEngine::LabelFromColor (#20860)
  • drake::geometry::SceneGraphInspector::Reify (#20872)
  • drake::geometry::ShapeName (#20870)
  • drake::geometry::ShapeToString (#20870)
  • drake::systems::analysis::kNoConcurrency (#20785)
  • drake::systems::analysis::kUseHardwareConcurrency (#20785)
  • drake::systems::analysis::MonteCarloSimulation overload that accepts the num_parallel_executions bare integer (#20785)
  • drake::systems::sensors::Color (#20860)
  • drake::systems::sensors::ColorD (#20860)
  • drake::systems::sensors::ColorI (#20860)
  • drake::systems::sensors::ColorPalette (#20860)

Removal of deprecated items

  • @expat (#20846)
  • @libjpeg (#20846)
  • @libpng (#20846)
  • @libtiff (#20846)
  • drake::multibody::InverseKinematics::AddMinimumDistanceConstraint (#20846)
  • drake::multibody::MinimumDistanceConstraint (#20846)
  • drake::multibody::MinimumDistancePenaltyFunction (#20846)
  • drake::multibody::MultibodyPlant::GetMutablePositions (#20846)
  • drake::multibody::MultibodyPlant::GetMutablePositionsAndVelocities (#20846)
  • drake::multibody::MultibodyPlant::GetMutableVelocities (#20846)
  • drake::multibody::RigidBody::floating_velocities_start (#20846)
  • drake::solvers::MinimumValueConstraint (#20846)
  • drake::systems::LeafSystem::DeclarePeriodicDiscreteUpdateNoHandler (#20846)
  • drake::systems::LeafSystem::DeclarePeriodicPublishNoHandler (#20846)
  • drake::systems::LeafSystem::DeclarePeriodicUnrestrictedUpdateNoHandler (#20846)
  • drake::systems::LeafSystem::DoCalcDiscreteVariableUpdates (#20846)
  • drake::systems::LeafSystem::DoCalcUnrestrictedUpdate (#20846)
  • drake::systems::LeafSystem::DoPublish (#20846)
  • drake::systems::VectorSystem::DeclarePeriodicDiscreteUpdateNoHandler (#20846)
  • pydrake.multibody.inverse_kinematics.AddMinimumDistanceConstraint (#20846)
  • pydrake.multibody.inverse_kinematics.MinimumDistanceConstraint (#20846)
  • pydrake.multibody.plant.MultibodyPlant.GetMutablePositions (#20846)
  • pydrake.multibody.plant.MultibodyPlant.GetMutablePositionsAndVelocities (#20846)
  • pydrake.multibody.plant.MultibodyPlant.GetMutableVelocities (#20846)
  • pydrake.multibody.tree.RigidBody.floating_velocities_start (#20846)
  • pydrake.multibody.tree.RigidBody.JointActuator.set_actuation_vector kwarg name u_instance (#20846)
  • pydrake.solvers.MinimumValueConstraint (#20846)
  • pydrake.systems.framework.LeafSystem.DeclarePeriodicDiscreteUpdateNoHandler (#20846)
  • pydrake.systems.framework.LeafSystem.DeclarePeriodicPublishNoHandler (#20846)
  • pydrake.systems.framework.LeafSystem.DoCalcDiscreteVariableUpdates (#20846)
  • pydrake.systems.framework.LeafSystem.DoPublish (#20846)

Notes

This release provides pre-compiled binaries named drake-1.26.0-{focal|jammy|mac|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.