Announcements
- Drake now supports Python 3.10 on Ubuntu 22.04.
- Drake now supports MOSEK™ 10.
- Drake now supports macOS arm64 natively when building from source.
- Notable improvements to GraphOfConvexSets, PointCloud, and model directives.
Breaking changes since v1.7.0
- The GraphOfConvexSets::SolveShortestPath changed to use convex_relaxation=true by default (#17396).
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.7.0
Dynamical Systems
New features
Fixes
- Camera (sensor) parameters are rigorously validated (#17750)
- Improve context-system mismatch error messages (#17711)
Mathematical Program
New features
- GraphOfConvexSets SolveShortestPath accepts configuration options (#17396)
- Enable preprocessing GraphOfConvexSets before solving ShortestPath (#17397, #17876)
- Enable adding costs to vertices in GraphOfConvexSets (#17844)
- Enable rounding of GraphOfConvexSets solution when solving convex relaxation of ShortestPath (#17796)
- Add tolerance configuration to HPolyhedron functions (#17895)
- Add HPolyhedron::Serialize() (#17783)
Fixes
- Add ExpressionCell::EvaluatePartial for performance (#17727)
- GetInfeasibleConstraints only returns infeasible constraint once (#17818)
- NewSosPolynomial detects uninitialized enum values (#17754)
Multibody Dynamics and Geometry
New features
- Add MultibodyPlant::SetDefaultPositions (#17793)
- Add MultibodyPlant::CalcJacobianPositionVector (#17920)
- Add MultibodyPlant::CalcSpatialInertia (#17770)
- Add MultibodyPlant::GetBodiesKinematicallyAffectedBy (#17800)
- Add Rgba::Serialize support (#17762)
- Add RigidTransform multiply by Vector4d (#17790)
- Add LoadModelDirectivesFromString (#17810)
- Add model directives syntax for default positions (#17802)
- Add model directives optional X_PC to AddWeld (#17811)
- Add AngleBetweenVectorsCost (#17821)
Fixes
- Fix crash when visualizing almost-zero hydroelastic force or moment (#17757)
Planning
- None
Tutorials and examples
- Add first draft of a drake/examples/hardware_sim example (not yet finished).
Miscellaneous features and fixes
- Add PathParameterizedTrajectory (#17816)
- Add PointCloud::Crop and Concatenate (#17829, #17948)
- Add PointCloud::EstimateNormals (#17914, #17945)
- Add PointCloud::VoxelizedDownSample (#17885)
- Add initialization event to DiffIK Integrator (#17824)
- Add simulated iiwa driver (#17886)
- Expose measurement time as an output from received iiwa status (#17761)
- Fix colors on kinova jaco models (#17838)
pydrake bindings
New features
- None
Fixes
- Add missing items to pydrake.visualization.all (#17894)
- Enable return-None cases for System event handlers (#17859)
Newly bound
- pydrake.geometry.VolumeMesh.CalcBarycentric (#17730)
- pydrake.geometry.VolumeMesh.Equal (#17730)
- pydrake.geometry.VolumeMesh.element (#17730)
- pydrake.geometry.VolumeMesh.num_elements (#17730)
- pydrake.geometry.VolumeMesh.num_vertices (#17730)
- pydrake.geometry.VolumeMesh.vertex (#17730)
- pydrake.multibody.BodyIndex default ctor (#17825)
- pydrake.multibody.ForceElementIndex default ctor (#17825)
- pydrake.multibody.FrameIndex default ctor (#17825)
- pydrake.multibody.JointActuatorIndex default ctor (#17825)
- pydrake.multibody.JointIndex default ctor (#17825)
- pydrake.multibody.ModelInstanceIndex default ctor (#17825)
- pydrake.systems.framework.AbstractParameterIndex default ctor (#17825)
- pydrake.systems.framework.AbstractStateIndex default ctor (#17825)
- pydrake.systems.framework.CacheIndex default ctor (#17825)
- pydrake.systems.framework.ConstraintIndex default ctor (#17825)
- pydrake.systems.framework.ContinuousStateIndex default ctor (#17825)
- pydrake.systems.framework.DependencyTicket default ctor (#17825)
- pydrake.systems.framework.DiscreteStateIndex default ctor (#17825)
- pydrake.systems.framework.InputPortIndex default ctor (#17825)
- pydrake.systems.framework.NumericParameterIndex default ctor (#17825)
- pydrake.systems.framework.OutputPortIndex default ctor (#17825)
- pydrake.systems.framework.SubsystemIndex default ctor (#17825)
Build system
- Add wheels for Python 3.10 on Ubuntu 22.04 (#17778)
- Add MOSEK support on macOS arm64 (#17870)
- Add runtime detection of AVX2/FMA to support x86_64 processors without those instructions (#17760)
- Fix rpath handling for repeated CMake installs (#17779)
- Fix DrakeLcmParams for C++20 compatibility (#17845)
- Fix CMakeLists.txt arm64 compatibility (#17887)
- Fix incorrect warning on Jammy Python version (#17896)
- Fail-fast when cmake_configure_file specifies dead defines (#17747)
- Remove LD_LIBRARY_PATH from apt instructions and Dockerfiles (#17846)
- Teach clang-format about C++20 and C++23 headers (#17944)
Build dependencies
- Add dependency on nanoflann (#17914)
- Upgrade to MOSEK™ 10 (#17490)
- Upgrade abseil_cpp_internal to latest commit (#17872)
- Upgrade bazel_skylib to latest release 1.3.0 (#17872)
- Upgrade dm_control_internal to latest commit (#17872)
- Upgrade lcm to latest commit (#17872)
- Upgrade optitrack_driver to latest commit (#17872)
- Upgrade picosha2 to latest commit (#17872)
- Upgrade pycodestyle to latest release 2.9.1 (#17872)
- Upgrade rules_python to latest release 0.12.0 (#17872)
- Use bazelisk on macOS (#17764)
- Build curl from source (#17755)
- Build tinyxml2 from source (#17830)
Newly-deprecated APIs
- drake::geometry::optimization::GraphOfConvexSets::SolveShortestPath overloads that directly pass the
bool convex_relaxation
andconst solvers::SolverInterface* solver
parameters (#17396) - The @tinyxml2 external (#17830)
- The @libcurl external (#17755)
- The @ghc_filesystem external (#17834)
- pydrake.geometry.PolygonSurfaceMesh.TransformVertices (#17768)
- pydrake.geometry.PolygonSurfaceMesh.ReverseFaceWinding (#17768)
Removal of deprecated items
- Drake no longer supports Clang 9 (#17813, #16937)
- pydrake.common.set_log_level (#17813, #17069)
- drake::geometry::render::RenderEngineVtk (#17812, #17169)
- drake::geometry::render::RenderEngineVtkParams (#17812, #17169)
- drake::solvers::CsdpSolver constructor with RemoveFreeVariableMethod argument (#17813, #17275)
- drake::symbolic::Polynomial::EqualToAfterExpansion (#17813, #17202)
- drake::yaml::YamlReadArchive (#17813, #17084)
- drake::yaml::YamlWriteArchive (#17813, #17084)
- pydrake.systems.meshcat_visualizer.MeshcatPointCloudVisualizer (#17813, #17194)
- pydrake.systems.meshcat_visualizer.MeshcatVisualizer (#17813, #17194)
- drake/geometry/render/gl_renderer/render_engine_gl_factory.h include path (#17812, #17410)
- drake/geometry/render/gl_renderer/render_engine_gl_params.h include path (#17812, #17410)
Notes
This release provides pre-compiled binaries named
drake-20220919-{focal|mac}.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.