Announcements
- Drake now provides an Ubuntu APT site that publishes our numbered releases (#15016). Refer to APT Packages for Monthly Tagged Releases for instructions.
Breaking changes since v0.29.0
-
On Ubuntu systems, Drake now requires the AVX2 and FMA family of SIMD intrinsics, i.e., the Intel’s “Broadwell” microarchitecture or newer (#15013).
-
Drake now enforces stricter validation of SDFormat input data, so bad files that previously parsed without complaint now generate errors. For example, the
<pose>
element now has additional syntax checking (#14852). -
Several methods on drake::systems::Diagram that were erroneously public have been made private. The affected methods are DoCalcTimeDerivatives() and DoCalcImplicitTimeDerivativesResidual(). Correct code should call EvalTimeDerivatives(), CalcTimeDerivatives(), or CalcImplicitTimeDerivativesResidual() instead (#15031).
-
Within Drake’s event support, the arguments of the rarely-used handle() methods of PublishEvent, DiscreteUpdateEvent, and UnrestrictedUpdateEvent have changed. All now require a reference to the owning system as the first argument (#14969, #15032).
-
Drake no longer supports SDFormat’s
<include>
elements. In the future, this feature will be restored with revised semantics. If you encounter issues with<include>
elements in the interim, please notify Eric Cousineau.
Changes since v0.29.0
Dynamical Systems
New features
- Support scalar conversion by template parameter (#14986)
- Add compatibility checks for System methods using SystemOutput (#15007)
- Establish AffineSystem feedthrough without symbolics (#15037)
Fixes
- Reduce heap usage during Simulator advance steps (#14912, #14950, #14969, #15032, #15010)
- Fix image_to_lcm_image_array uninitialized data (#14984)
- Do not declare state variables in AffineSystem if num_states==0 (#15003)
- Deprecate and rename System::ValidateChildOfContext() (#14999)
Mathematical Program
New features
- Enable CLP to solve QP (#14894)
Fixes
- Set the string option in GurobiSolver (#14930)
- Warn about the memory issue when solving a QP with CLP (#14934)
- Report error when snopt fails to set a solver parameter (#14947)
Multibody Dynamics
New features
- Add ComPositionConstraint (#14918)
- Add CentroidalMomentumConstraint (#14925)
- Add ComInPolyhedronConstraint (#14946)
- Add QuaternionEulerIntegrationConstraint (#14960)
- Add CalcTotalMass methods to MultibodyPlant (#14957)
- New hydroelastic contact model in progress (#14904, #14904, #14943, #14951, #14952, #14995, #14998, #15000, #15012)
Fixes
- Improve model directives diagnostic when file not found (#14923)
- Suppress PackageMap warning on different directory spellings (#14939)
- Use translational jacobian for position constraint (#14945)
- Don’t warn when parsing meshes with mtl files (#14974)
- Fix constness of JointActuator’s SetRotorInertia() and SetGearRatio() (#14983)
- Defer joint limits warning until it’s relevant (#15017)
Tutorials and examples
- Add LCM cameras to mock simulation for manipulation_station (#14982)
- Add getter for geometry frame to quadrotor example (#15046)
Miscellaneous features and fixes
- New method for forming a rotation matrix from a single unit vector (#14816, #15015)
- Add AVX infrastructure and one AVX method (#15013)
pydrake bindings
New features
- Add autodiff_equal_to (#14937)
- Add __repr__ to several classes (#14959, #14993)
- Enable numpy math functions to work with symbolic variables (#15039)
Fixes
- Fix frames_to_draw visualization in Meshcat (#14979)
Newly bound
- pydrake.multibody.plant.MultibodyPlant.get_force_element (#14953)
- pydrake.manipulation.kuka_iiwa (#14987)
Build system
- Do not pass –upgrade to pip3.9 on macOS (#14962)
- drake_visualizer: Use Drake’s native lcmtypes for builtin_scripts (#14981)
Build dependencies
- Upgrade buildifier to latest release 4.0.1 (#14964)
- Upgrade googlebenchmark to latest release (#14965)
- Upgrade lcm to latest commit (#15023)
- Upgrade libsdformat to latest release 11.0.0 (#14852)
- Upgrade rules_python to latest release 0.2.0 (#14966)
- Upgrade scs to latest release 2.1.3 (#14970)
- Upgrade tinyobjloader to latest commit (#14958)
- Upgrade voxelized_geometry_tools to latest commit (#14919)
Newly-deprecated APIs
- drake::systems::sensors::InvalidDepth (#15027)
- drake::systems::sensors::Label (#15027)
- drake::systems::System::ValidateChildOfContext() (#14999)
Removal of deprecated items
- drake::manipulation::PiecewiseCubicTrajectory (#14989)
- drake::manipulation::PiecewiseCartesianTrajectory (#14989)
- drake::multibody::MultibodyPlant::CalcCenterOfMassPosition (#15050)
Notes
This release provides pre-compiled binaries named
drake-20210517-{bionic|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.