Drake v0.30.0

Back to Release Notes


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)


  • 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)


  • 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


  • 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)


  • 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)


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.