Announcements
- Drake now supports loading MuJoCo’s MJCF format (#17358)
- Note that not all elements of the file format are supported yet, but many of the most commonly-used element are available.
- Drake’s collision filter groups in SDFormat and model directives may now span multiple robots (#17175, #17270).
Breaking changes since v1.3.0
- Direct access to MultibodyPlant’s scalar-converting copy
constructor
has been removed (#17354).
- This constructor was intended to be for internal use only, but was not marked as such; now it is.
- Anyone who was accidentally using this constructor might now receive a linker error, for certain compilers.
- To perform scalar conversion of a System, C++ users should call, e.g.,
System::ToAutoDiffXd
instead of the direct constructor. - Python users are unaffected.
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.3.0
Dynamical Systems
New features
Fixes
- Improve error messages for GetInputPort and GetOutputPort (#17255)
Mathematical Program
New features
- Add GetAvailableSolvers() (#17225)
- CsdpSolver accepts RemoveFreeVariableMethod via SolverOptions (#17275)
- Support half-angle formulas in sin/cos substitution (#17282)
- Evaluate polynomial (with affine coefficients) on a batch of indeterminates (#17357)
Fixes
- Fix SparseMatrixToTriplets to only permit sparse matrices (#17331)
- Fix exception handling in SnoptSolver on macOS (#17272)
- SdpaFreeFormat ignores empty constraints (#17368)
- Add C++ [[nodiscard]] checks (#17330, #17380)
- DecomposeAffineExpression passes coeffs as a pointer (#17348)
- Check if influence_value_offset is strictly positive and finite in MinimumValueConstraint (#17404)
Multibody Dynamics and Geometry
New features
- Add support for parsing MuJoCo’s MJCF format (#17358)
- Enable multi-robot collision filter groups in SDFormat and model directives (#17175, #17270)
- Add meshcat JointSliders::SetPositions (#17247)
- Add GeometryConfigurationVector container (#17329)
Fixes
- Improve error messages for GetBodyByName and similar functions (#17259)
- Reject duplicate-named frames for same source (#17243)
- MultibodyPlant throws exceptions on NaN input port values (#17174)
- Remove model instance restrictions in ComInPolyhedronConstraint (#15830)
- Move render_gl into new directory structure (#17410)
Tutorials and examples
- Add tutorial for using MOSEK™ on Deepnote (#17213)
- Update manipulation_station example to use Meshcat instead of Tcl/Tk (#16816, #17292 #17298)
- Update joint velocity limits for Jaco arms (#17407)
- Expose parameters in QuadrotorPlant (#17402)
Miscellaneous features and fixes
- Add DrakeLcm option for a channel name suffix (#17337)
- Add a keep_going option to ConstraintRelaxingIk (#17224)
- Update geometry_inspector to use newer meshcat (#17214)
- DRAKE_EXPECT_THROWS_MESSAGE now requires an expression (#17341)
pydrake bindings
New features
- None
Fixes
Newly bound
- pydrake.geometry.SceneGraph.RegisterGeometry (additional overloads) (#17342)
- pydrake.geometry.SceneGraph.RemoveGeometry (#17336)
Build system
- Use stable URLs for GitHub downloads where possible (#17344)
- Fail fast if setup script is invoked with sudo when already root (#17284)
Build dependencies
- Add MUMPS dependency to wheel builds (#17346)
- Remove more meshes to still fit under 100 MiB (#17401)
- Add libpython as Ubuntu binary tarball prerequisite (#17294)
- Remove macOS python-tk dependency (#17389)
- Remove msgpack boost dependency (#17286)
- Build NLopt from source; upgrade to 2.7.1 (#17288)
- Improve qhull hidden visibility (#17229)
- Upgrade abseil_cpp_internal to latest commit (#17322, #17352)
- Upgrade clang-cindex-python3 to latest commit (#17315)
- Upgrade common_robotics_utilities and voxelized_geometry_tools to latest commit (#17322, #17359)
- Upgrade dm_control to latest commit (#17322)
- Upgrade gz_utils to latest release 1.4.0 (#17417)
- Upgrade ignition_math to latest release 6.11.0 (#17322)
- Upgrade libcmaes to latest commit (#17322)
- Upgrade libsdformat to latest release 12.5.0 (#17250)
- Upgrade mosek to release 9.3.20 (#17238)
- Upgrade petsc to latest release v3.17.1 (#17273)
- Upgrade stduuid to latest commit (#17322)
Newly-deprecated APIs
- drake::lcm::DrakeLcm two-argument constructor (#17337)
- drake::solvers::CsdpSolver constructor with RemoveFreeVariableMethod argument (#17275)
- drake::symbolic::DecomposeAffineExpression overload that mis-used a const reference for the
coeffs
output (#17348) - drake/geometry/frame_kinematics_vector.h include path (#17329)
- drake/geometry/render/gl_renderer/render_engine_gl_factory.h include path (#17410)
- drake/geometry/render/gl_renderer/render_engine_gl_params.h include path (#17410)
- The entire solvers/fbstab library (#17416)
- The @boost external (#17308)
- The @clang_cindex_python3 external (#17324)
- The @dm_control external (#17324)
- The @github3_py external (#17324)
- The @ignition_math external (#17303)
- The @ignition_utils external (#17303)
- The @intel_realsense_ros external (#17324)
- The @json external (#17283)
- The @meshcat_python external (#17374)
- The @models external (#17324)
- The @nlopt external (#17288)
- The @qhull external (#17229)
- The @ros_xacro external (#17324)
- The @sdformat external (#17303)
- The @uritemplate_py external (#17324)
Removal of deprecated items
- drake::manipulation::kinova_jaco::JacoCommandReceiver::get_input_port (#17296, #16483)
- drake::manipulation::kinova_jaco::JacoCommandReceiver::set_initial_position (#17296, #16483)
- drake::math::RigidTransform::IsIdentityToEpsilon (#17296, #16541)
- drake::math::RotationMatrix::IsIdentityToInternalTolerance (#17296, #16552)
- pydrake.manipulation.simple_ui.JointSliders (#17295, #16656)
- pydrake.manipulation.simple_ui.SchunkWsgButton (#17295, #16656)
- pydrake.multibody.math.SpatialVelocity.Shift kwarg name p_BqBq_E (#17296, #16350)
- pydrake.multibody.math.SpatialVelocity.dot kwarg name F_Bp (#17296, #16350)
- pydrake.multibody.math.SpatialVelocity.dot kwarg name L_WBp_E (#17296, #16350)
- pydrake.systems.system_sliders.SystemSliders (#17295, #16656)
- DRAKE_ASSERT_THROWS_MESSAGE overload with three arguments (#17296, #16514)
- DRAKE_ASSERT_THROWS_MESSAGE_IF_ARMED overload with three arguments (#17296, #16514)
- DRAKE_EXPECT_THROWS_MESSAGE overload with three arguments (#17296, #16514)
- DRAKE_EXPECT_THROWS_MESSAGE_IF_ARMED overload with three arguments (#17296, #16514)
Notes
This release provides pre-compiled binaries named
drake-20220621-{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.