Announcements
- An important new tutorial is available, “Basic Hydroelastic Contact” (#19467).
- The OpenGL-based render engine (
MakeRenderEngineGl
) is now compatible with multi-threading, e.g., as part of aMonteCarloSimulation
(#19426).
Breaking changes since v1.17.0
- The YAML-serialized HPolyhedron no longer uses trailing underscores on the field names (#19469).
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.17.0
Dynamical Systems
New features
- Add RgbdSensorAsync (#19553)
Fixes
- None
Mathematical Program
New features
- Add binary operator overloads between a Polynomial and an Expression (#19457)
Fixes
- OsqpSolver allows for primal-only warm-start (#19499)
- Fix EqualityConstrainedQPSolver (#19528)
- Adjust names HPolyhedron::Serialize to match convention (#19469)
Multibody Dynamics and Geometry
New features
- Add MeshcatPoseSliders (#19513)
- Add MultibodyPlant::IsVelocityEqualToQDot (#19563)
- Add SceneGraphInspector::GetAllSourceIds (#19525)
- Add functions to convert SpatialInertia to equivalent dimensions and pose for a solid uniform-density ellipsoid and box (#19414)
Fixes
- MeshcatVisualizer sets visibility directly without events (#19578)
- Make RenderEngineGl intelligently thread-safe (#19426)
- MultibodyPlant no longer assigns a default perception color (#19533)
- Add context validation to SceneGraph (#19587)
- Fix warning when ball joint has an axis (#18966)
- Fix SpatialInertia::MakeFromCentralInertia() so it does not reject valid inputs (#19581)
- Fix the functional form of the SapHolonomicConstraint cost, making it consistent with its analytical gradient and Hessian (#19493)
Planning
New features
- Add a default constructor to all ConvexSet subclasses (#19321)
- ConvexSet can report when its just a point (#19279)
- Implement the more general perspective function for Spectrahedron (#19527)
- Add IrisOptions::Serialize (#19512)
Fixes
- Locked joints are held fixed during inverse kinematics (#19442)
- Fail-fast when some controllers that require v == qdot are asked to control a plant that does not meet that criterion (#19563)
- Fix caching for autodiff in direct collocation (#19468)
- Fix ConvexSet move operations (#19311)
Tutorials and examples
Miscellaneous features and fixes
- Add basic inertia visualizer (#19210)
- Update URDFs for Franka with the reflected rotor inertia values (#19500)
- Make LCM CONTACT_RESULTS from ApplyVisualizationConfig() respect publish_period (#19590)
pydrake bindings
New features
- Bind pydrake.multibody.tree.JointActuator methods for rotor inertias (#19509)
- Bind pydrake.multibody.tree.RotationalInertia.CalcPrincipalMomentsAndAxesOfInertia (#19521)
- Add SaveIrisRegionsYamlFile and LoadIrisRegionsYamlFile (#19612)
Fixes
- Fix type inference for Value constructor (#19595)
Build system
- Default clang_format_lint to be enabled in new packages (#19547)
- By accident for this release only, the DockerHub tag
1.18.0
is based on Ubuntu 20.04 instead of Ubuntu 22.04. Use the tagjammy-1.18.0
instead if you want 22.04.
Build dependencies
- Upgrade abseil_cpp_internal to latest commit (#19536)
- Upgrade bazel to latest release 6.2.0 (#19502)
- Upgrade bazel_skylib to latest release 1.4.2 (#19539)
- Upgrade curl_internal to latest release curl-8_1_2 (#19536)
- Upgrade googlebenchmark to latest release v1.8.0 (#19537)
- Upgrade mypy_internal to latest release v1.3.0 (#19536)
- Upgrade osqp_internal to latest release v0.6.3 (#19538)
- Upgrade petsc to latest release v3.19.2 (#19536)
- Upgrade ros_xacro_internal to latest release 1.14.16 (#19536)
- Upgrade rules_python to latest release 0.22.0
- Upgrade sdformat_internal to latest release sdformat13_13.5.0 (#19536)
- Upgrade tinyobjloader to latest commit (#19536)
- Upgrade typing_extensions_internal to latest release 4.6.3 (#19536)
- Upgrade voxelized_geometry_tools to latest commit (#19536)
Newly-deprecated APIs
- drake::solvers::SolutionResult::kUnknownError (#19450)
- pydrake.planning.AddDirectCollocationConstraint(timestep=…) (#19470)
- pydrake.planning.DirectCollocation(minimum_timestep=…, maximum_timestep=…) (#19470)
- pydrake.planning.DirectTranscription(fixed_timestep=…) (#19470)
- pydrake.planning.MultipleShooting.fixed_timestep (#19470)
- pydrake.planning.MultipleShooting.timestep (#19470)
- pydrake.systems.primitives.DiscreteTimeDelay(delay_timesteps=…) (#19475)
Removal of deprecated items
- On macOS, the
--with-maintainer-only
install_prereqs flag (#18665, #19307, #19518) - Referencing the world body in MultibodyPlant as “WorldBody” (#18158, #19516)
- drake::EigenSizeMinPreferDynamic (#18857, #19516)
- drake::EigenSizeMinPreferFixed (#18857, #19516)
- drake::MultiplyEigenSizes (#18857, #19516)
- drake::SortedPair::operator« (#18892, #19516)
- drake::SquareTwistMatrix (#18857, #19516)
- drake::Translation3 (#18857, #19516)
- drake::TwistMatrix (#18857, #19516)
- drake::TwistVector (#18857, #19516)
- drake::WrenchVector (#18857, #19516)
- drake::copyable_unique_ptr::operator« (#18771, #19516)
- drake::kHomogeneousTransformSize (#18857, #19516)
- drake::kQuaternionSize (#18857, #19516)
- drake::kRotmatSize (#18857, #19516)
- drake::kRpySize (#18857, #19516)
- drake::kSpaceDimension (#18857, #19516)
- drake::kTwistSize (#18857, #19516)
- drake::planning::RobotDiagramBuilder::BuildDiagram (#18770, #19516)
- drake::planning::RobotDiagramBuilder::FinalizePlant (#18772, #19516)
- drake::planning::RobotDiagramBuilder::IsPlantFinalized (#18772, #19516)
- drake::planning::RobotDiagramBuilder::mutable_builder (#18772, #19516)
- drake::planning::RobotDiagramBuilder::mutable_parser (#18772, #19516)
- drake::planning::RobotDiagramBuilder::mutable_plant (#18772, #19516)
- drake::planning::RobotDiagramBuilder::mutable_scene_graph (#18772, #19516)
- drake::solvers::SolverBase constructor with a SolverId-returning functor (#18880, #19516)
- drake::systems::controllers::ZMPPlanner (#18845, #19516)
- pydrake.manipulation.planner (#18664, #18715, #19516)
- pydrake.multibody.plant.CalcJacobianSpatialVelocity(*, p_BP) use p_BoBp_B (#18876, #19516)
Notes
This release provides pre-compiled binaries named
drake-20230620-{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.